Files
SpaghettiKart/asm/non_matchings/code_800431B0/func_800528EC.s
T
CoderStig 8ab4557b39 Split asm using autodecompiler (#49)
* Split asm using autodecompiler

* Placed libultra bss and linked more C
2021-11-05 05:17:09 -06:00

229 lines
13 KiB
ArmAsm

glabel func_800528EC
/* 0534EC 800528EC 27BDFFC0 */ addiu $sp, $sp, -0x40
/* 0534F0 800528F0 AFBF003C */ sw $ra, 0x3c($sp)
/* 0534F4 800528F4 3C1F8016 */ lui $ra, %hi(D_8016582C) # $ra, 0x8016
/* 0534F8 800528F8 AFB20020 */ sw $s2, 0x20($sp)
/* 0534FC 800528FC 3C128015 */ lui $s2, %hi(gDisplayListHead) # $s2, 0x8015
/* 053500 80052900 27FF582C */ addiu $ra, %lo(D_8016582C) # addiu $ra, $ra, 0x582c
/* 053504 80052904 26520298 */ addiu $s2, %lo(gDisplayListHead) # addiu $s2, $s2, 0x298
/* 053508 80052908 97EE0000 */ lhu $t6, ($ra)
/* 05350C 8005290C 97EF0002 */ lhu $t7, 2($ra)
/* 053510 80052910 8E420000 */ lw $v0, ($s2)
/* 053514 80052914 3C0D8018 */ lui $t5, %hi(D_80183E80) # $t5, 0x8018
/* 053518 80052918 97F80004 */ lhu $t8, 4($ra)
/* 05351C 8005291C 25AD3E80 */ addiu $t5, %lo(D_80183E80) # addiu $t5, $t5, 0x3e80
/* 053520 80052920 A5AE0000 */ sh $t6, ($t5)
/* 053524 80052924 A5AF0002 */ sh $t7, 2($t5)
/* 053528 80052928 24590008 */ addiu $t9, $v0, 8
/* 05352C 8005292C AFBE0038 */ sw $fp, 0x38($sp)
/* 053530 80052930 AFB70034 */ sw $s7, 0x34($sp)
/* 053534 80052934 AFB60030 */ sw $s6, 0x30($sp)
/* 053538 80052938 AFB5002C */ sw $s5, 0x2c($sp)
/* 05353C 8005293C AFB40028 */ sw $s4, 0x28($sp)
/* 053540 80052940 AFB30024 */ sw $s3, 0x24($sp)
/* 053544 80052944 AFB1001C */ sw $s1, 0x1c($sp)
/* 053548 80052948 AFB00018 */ sw $s0, 0x18($sp)
/* 05354C 8005294C AFA40040 */ sw $a0, 0x40($sp)
/* 053550 80052950 AE590000 */ sw $t9, ($s2)
/* 053554 80052954 3C0F0D00 */ lui $t7, %hi(D_0D007B00) # $t7, 0xd00
/* 053558 80052958 A5B80004 */ sh $t8, 4($t5)
/* 05355C 8005295C 25EF7B00 */ addiu $t7, %lo(D_0D007B00) # addiu $t7, $t7, 0x7b00
/* 053560 80052960 3C0E0600 */ lui $t6, 0x600
/* 053564 80052964 AC4E0000 */ sw $t6, ($v0)
/* 053568 80052968 AC4F0004 */ sw $t7, 4($v0)
/* 05356C 8005296C 8E420000 */ lw $v0, ($s2)
/* 053570 80052970 3C0E8000 */ lui $t6, (0x80000040 >> 16) # lui $t6, 0x8000
/* 053574 80052974 3C19BC00 */ lui $t9, (0xBC000002 >> 16) # lui $t9, 0xbc00
/* 053578 80052978 24580008 */ addiu $t8, $v0, 8
/* 05357C 8005297C AE580000 */ sw $t8, ($s2)
/* 053580 80052980 37390002 */ ori $t9, (0xBC000002 & 0xFFFF) # ori $t9, $t9, 2
/* 053584 80052984 35CE0040 */ ori $t6, (0x80000040 & 0xFFFF) # ori $t6, $t6, 0x40
/* 053588 80052988 AC4E0004 */ sw $t6, 4($v0)
/* 05358C 8005298C AC590000 */ sw $t9, ($v0)
/* 053590 80052990 8E420000 */ lw $v0, ($s2)
/* 053594 80052994 3C19800E */ lui $t9, %hi(D_800E4628) # $t9, 0x800e
/* 053598 80052998 3C180386 */ lui $t8, (0x03860010 >> 16) # lui $t8, 0x386
/* 05359C 8005299C 244F0008 */ addiu $t7, $v0, 8
/* 0535A0 800529A0 AE4F0000 */ sw $t7, ($s2)
/* 0535A4 800529A4 37180010 */ ori $t8, (0x03860010 & 0xFFFF) # ori $t8, $t8, 0x10
/* 0535A8 800529A8 27394628 */ addiu $t9, %lo(D_800E4628) # addiu $t9, $t9, 0x4628
/* 0535AC 800529AC AC590004 */ sw $t9, 4($v0)
/* 0535B0 800529B0 AC580000 */ sw $t8, ($v0)
/* 0535B4 800529B4 8E420000 */ lw $v0, ($s2)
/* 0535B8 800529B8 3C18800E */ lui $t8, %hi(D_800E4620) # $t8, 0x800e
/* 0535BC 800529BC 3C0F0388 */ lui $t7, (0x03880010 >> 16) # lui $t7, 0x388
/* 0535C0 800529C0 244E0008 */ addiu $t6, $v0, 8
/* 0535C4 800529C4 AE4E0000 */ sw $t6, ($s2)
/* 0535C8 800529C8 35EF0010 */ ori $t7, (0x03880010 & 0xFFFF) # ori $t7, $t7, 0x10
/* 0535CC 800529CC 27184620 */ addiu $t8, %lo(D_800E4620) # addiu $t8, $t8, 0x4620
/* 0535D0 800529D0 AC580004 */ sw $t8, 4($v0)
/* 0535D4 800529D4 AC4F0000 */ sw $t7, ($v0)
/* 0535D8 800529D8 8E420000 */ lw $v0, ($s2)
/* 0535DC 800529DC 3C0FFF33 */ lui $t7, (0xFF33FFFF >> 16) # lui $t7, 0xff33
/* 0535E0 800529E0 3C0EFC12 */ lui $t6, (0xFC121824 >> 16) # lui $t6, 0xfc12
/* 0535E4 800529E4 24590008 */ addiu $t9, $v0, 8
/* 0535E8 800529E8 AE590000 */ sw $t9, ($s2)
/* 0535EC 800529EC 35CE1824 */ ori $t6, (0xFC121824 & 0xFFFF) # ori $t6, $t6, 0x1824
/* 0535F0 800529F0 35EFFFFF */ ori $t7, (0xFF33FFFF & 0xFFFF) # ori $t7, $t7, 0xffff
/* 0535F4 800529F4 AC4F0004 */ sw $t7, 4($v0)
/* 0535F8 800529F8 AC4E0000 */ sw $t6, ($v0)
/* 0535FC 800529FC 8E420000 */ lw $v0, ($s2)
/* 053600 80052A00 240E3000 */ li $t6, 12288
/* 053604 80052A04 3C19B600 */ lui $t9, 0xb600
/* 053608 80052A08 24580008 */ addiu $t8, $v0, 8
/* 05360C 80052A0C AE580000 */ sw $t8, ($s2)
/* 053610 80052A10 AC4E0004 */ sw $t6, 4($v0)
/* 053614 80052A14 AC590000 */ sw $t9, ($v0)
/* 053618 80052A18 8E420000 */ lw $v0, ($s2)
/* 05361C 80052A1C 3C190002 */ lui $t9, (0x00020204 >> 16) # lui $t9, 2
/* 053620 80052A20 37390204 */ ori $t9, (0x00020204 & 0xFFFF) # ori $t9, $t9, 0x204
/* 053624 80052A24 244F0008 */ addiu $t7, $v0, 8
/* 053628 80052A28 AE4F0000 */ sw $t7, ($s2)
/* 05362C 80052A2C 3C18B700 */ lui $t8, 0xb700
/* 053630 80052A30 3C040600 */ lui $a0, %hi(D_060068E8) # $a0, 0x600
/* 053634 80052A34 248468E8 */ addiu $a0, %lo(D_060068E8) # addiu $a0, $a0, 0x68e8
/* 053638 80052A38 24050020 */ li $a1, 32
/* 05363C 80052A3C 24060020 */ li $a2, 32
/* 053640 80052A40 AC580000 */ sw $t8, ($v0)
/* 053644 80052A44 0C011078 */ jal func_800441E0
/* 053648 80052A48 AC590004 */ sw $t9, 4($v0)
/* 05364C 80052A4C 3C0E800E */ lui $t6, %hi(gPlayerCountSelection1) # $t6, 0x800e
/* 053650 80052A50 8DCEC538 */ lw $t6, %lo(gPlayerCountSelection1)($t6)
/* 053654 80052A54 3C138019 */ lui $s3, %hi(D_8018C3F0) # $s3, 0x8019
/* 053658 80052A58 2673C3F0 */ addiu $s3, %lo(D_8018C3F0) # addiu $s3, $s3, -0x3c10
/* 05365C 80052A5C 29C10003 */ slti $at, $t6, 3
/* 053660 80052A60 1020002D */ beqz $at, .L80052B18
/* 053664 80052A64 3C1E8019 */ lui $fp, %hi(D_8018D120) # 0x8019
/* 053668 80052A68 3C138019 */ lui $s3, %hi(D_8018C3F0) # $s3, 0x8019
/* 05366C 80052A6C 3C1E8019 */ lui $fp, %hi(D_8018C5F0) # $fp, 0x8019
/* 053670 80052A70 3C170400 */ lui $s7, (0x04000C2F >> 16) # lui $s7, 0x400
/* 053674 80052A74 3C158016 */ lui $s5, %hi(D_80165C18) # $s5, 0x8016
/* 053678 80052A78 26B55C18 */ addiu $s5, %lo(D_80165C18) # addiu $s5, $s5, 0x5c18
/* 05367C 80052A7C 36F70C2F */ ori $s7, (0x04000C2F & 0xFFFF) # ori $s7, $s7, 0xc2f
/* 053680 80052A80 27DEC5F0 */ addiu $fp, %lo(D_8018C5F0) # addiu $fp, $fp, -0x3a10
/* 053684 80052A84 2673C3F0 */ addiu $s3, %lo(D_8018C3F0) # addiu $s3, $s3, -0x3c10
/* 053688 80052A88 241600E0 */ li $s6, 224
/* 05368C 80052A8C 2414FFFF */ li $s4, -1
/* 053690 80052A90 8E620000 */ lw $v0, ($s3)
.L80052A94:
/* 053694 80052A94 5054001C */ beql $v0, $s4, .L80052B08
/* 053698 80052A98 26730004 */ addiu $s3, $s3, 4
/* 05369C 80052A9C 00560019 */ multu $v0, $s6
/* 0536A0 80052AA0 3C058018 */ lui $a1, %hi(D_80183E80) # $a1, 0x8018
/* 0536A4 80052AA4 3C100D00 */ lui $s0, %hi(D_0D005BD0) # $s0, 0xd00
/* 0536A8 80052AA8 3C110D00 */ lui $s1, %hi(D_0D006930) # $s1, 0xd00
/* 0536AC 80052AAC 26316930 */ addiu $s1, %lo(D_0D006930) # addiu $s1, $s1, 0x6930
/* 0536B0 80052AB0 26105BD0 */ addiu $s0, %lo(D_0D005BD0) # addiu $s0, $s0, 0x5bd0
/* 0536B4 80052AB4 24A53E80 */ addiu $a1, %lo(D_80183E80) # addiu $a1, $a1, 0x3e80
/* 0536B8 80052AB8 00007812 */ mflo $t7
/* 0536BC 80052ABC 02AF1821 */ addu $v1, $s5, $t7
/* 0536C0 80052AC0 847800A6 */ lh $t8, 0xa6($v1)
/* 0536C4 80052AC4 24640004 */ addiu $a0, $v1, 4
/* 0536C8 80052AC8 5B00000F */ blezl $t8, .L80052B08
/* 0536CC 80052ACC 26730004 */ addiu $s3, $s3, 4
/* 0536D0 80052AD0 0C010B80 */ jal func_80042E00
/* 0536D4 80052AD4 8C660000 */ lw $a2, ($v1)
/* 0536D8 80052AD8 8E420000 */ lw $v0, ($s2)
/* 0536DC 80052ADC 3C0F0600 */ lui $t7, 0x600
/* 0536E0 80052AE0 24590008 */ addiu $t9, $v0, 8
/* 0536E4 80052AE4 AE590000 */ sw $t9, ($s2)
/* 0536E8 80052AE8 AC500004 */ sw $s0, 4($v0)
/* 0536EC 80052AEC AC570000 */ sw $s7, ($v0)
/* 0536F0 80052AF0 8E420000 */ lw $v0, ($s2)
/* 0536F4 80052AF4 244E0008 */ addiu $t6, $v0, 8
/* 0536F8 80052AF8 AE4E0000 */ sw $t6, ($s2)
/* 0536FC 80052AFC AC510004 */ sw $s1, 4($v0)
/* 053700 80052B00 AC4F0000 */ sw $t7, ($v0)
/* 053704 80052B04 26730004 */ addiu $s3, $s3, 4
.L80052B08:
/* 053708 80052B08 567EFFE2 */ bnel $s3, $fp, .L80052A94
/* 05370C 80052B0C 8E620000 */ lw $v0, ($s3)
/* 053710 80052B10 10000032 */ b .L80052BDC
/* 053714 80052B14 8E420000 */ lw $v0, ($s2)
.L80052B18:
/* 053718 80052B18 3C170400 */ lui $s7, (0x04000C2F >> 16) # lui $s7, 0x400
/* 05371C 80052B1C 3C158016 */ lui $s5, %hi(D_80165C18) # $s5, 0x8016
/* 053720 80052B20 26B55C18 */ addiu $s5, %lo(D_80165C18) # addiu $s5, $s5, 0x5c18
/* 053724 80052B24 36F70C2F */ ori $s7, (0x04000C2F & 0xFFFF) # ori $s7, $s7, 0xc2f
/* 053728 80052B28 27DED120 */ addiu $fp, $fp, %lo(D_8018D120) # -0x2ee0
/* 05372C 80052B2C 241600E0 */ li $s6, 224
/* 053730 80052B30 2414FFFF */ li $s4, -1
/* 053734 80052B34 8E620000 */ lw $v0, ($s3)
.L80052B38:
/* 053738 80052B38 10540022 */ beq $v0, $s4, .L80052BC4
/* 05373C 80052B3C 00000000 */ nop
/* 053740 80052B40 00560019 */ multu $v0, $s6
/* 053744 80052B44 8FAE0040 */ lw $t6, 0x40($sp)
/* 053748 80052B48 0000C012 */ mflo $t8
/* 05374C 80052B4C 02B81821 */ addu $v1, $s5, $t8
/* 053750 80052B50 847900A6 */ lh $t9, 0xa6($v1)
/* 053754 80052B54 1B20001B */ blez $t9, .L80052BC4
/* 053758 80052B58 00000000 */ nop
/* 05375C 80052B5C 846F0092 */ lh $t7, 0x92($v1)
/* 053760 80052B60 15CF0018 */ bne $t6, $t7, .L80052BC4
/* 053764 80052B64 00000000 */ nop
/* 053768 80052B68 8FD80000 */ lw $t8, ($fp)
/* 05376C 80052B6C 3C058018 */ lui $a1, %hi(D_80183E80) # $a1, 0x8018
/* 053770 80052B70 24A53E80 */ addiu $a1, %lo(D_80183E80) # addiu $a1, $a1, 0x3e80
/* 053774 80052B74 2B0102EF */ slti $at, $t8, 0x2ef
/* 053778 80052B78 10200012 */ beqz $at, .L80052BC4
/* 05377C 80052B7C 24640004 */ addiu $a0, $v1, 4
/* 053780 80052B80 3C100D00 */ lui $s0, %hi(D_0D005BD0) # $s0, 0xd00
/* 053784 80052B84 3C110D00 */ lui $s1, %hi(D_0D006930) # $s1, 0xd00
/* 053788 80052B88 26316930 */ addiu $s1, %lo(D_0D006930) # addiu $s1, $s1, 0x6930
/* 05378C 80052B8C 26105BD0 */ addiu $s0, %lo(D_0D005BD0) # addiu $s0, $s0, 0x5bd0
/* 053790 80052B90 0C010B80 */ jal func_80042E00
/* 053794 80052B94 8C660000 */ lw $a2, ($v1)
/* 053798 80052B98 8E420000 */ lw $v0, ($s2)
/* 05379C 80052B9C 3C0F0600 */ lui $t7, 0x600
/* 0537A0 80052BA0 24590008 */ addiu $t9, $v0, 8
/* 0537A4 80052BA4 AE590000 */ sw $t9, ($s2)
/* 0537A8 80052BA8 AC500004 */ sw $s0, 4($v0)
/* 0537AC 80052BAC AC570000 */ sw $s7, ($v0)
/* 0537B0 80052BB0 8E420000 */ lw $v0, ($s2)
/* 0537B4 80052BB4 244E0008 */ addiu $t6, $v0, 8
/* 0537B8 80052BB8 AE4E0000 */ sw $t6, ($s2)
/* 0537BC 80052BBC AC510004 */ sw $s1, 4($v0)
/* 0537C0 80052BC0 AC4F0000 */ sw $t7, ($v0)
.L80052BC4:
/* 0537C4 80052BC4 3C188019 */ lui $t8, %hi(D_8018C5F0) # $t8, 0x8019
/* 0537C8 80052BC8 2718C5F0 */ addiu $t8, %lo(D_8018C5F0) # addiu $t8, $t8, -0x3a10
/* 0537CC 80052BCC 26730004 */ addiu $s3, $s3, 4
/* 0537D0 80052BD0 5678FFD9 */ bnel $s3, $t8, .L80052B38
/* 0537D4 80052BD4 8E620000 */ lw $v0, ($s3)
/* 0537D8 80052BD8 8E420000 */ lw $v0, ($s2)
.L80052BDC:
/* 0537DC 80052BDC 3C0EB700 */ lui $t6, 0xb700
/* 0537E0 80052BE0 240F2000 */ li $t7, 8192
/* 0537E4 80052BE4 24590008 */ addiu $t9, $v0, 8
/* 0537E8 80052BE8 AE590000 */ sw $t9, ($s2)
/* 0537EC 80052BEC AC4F0004 */ sw $t7, 4($v0)
/* 0537F0 80052BF0 AC4E0000 */ sw $t6, ($v0)
/* 0537F4 80052BF4 8E420000 */ lw $v0, ($s2)
/* 0537F8 80052BF8 3C0E0002 */ lui $t6, 2
/* 0537FC 80052BFC 3C19B600 */ lui $t9, 0xb600
/* 053800 80052C00 24580008 */ addiu $t8, $v0, 8
/* 053804 80052C04 AE580000 */ sw $t8, ($s2)
/* 053808 80052C08 AC4E0004 */ sw $t6, 4($v0)
/* 05380C 80052C0C AC590000 */ sw $t9, ($v0)
/* 053810 80052C10 8E420000 */ lw $v0, ($s2)
/* 053814 80052C14 3C190001 */ lui $t9, (0x00010001 >> 16) # lui $t9, 1
/* 053818 80052C18 37390001 */ ori $t9, (0x00010001 & 0xFFFF) # ori $t9, $t9, 1
/* 05381C 80052C1C 244F0008 */ addiu $t7, $v0, 8
/* 053820 80052C20 AE4F0000 */ sw $t7, ($s2)
/* 053824 80052C24 3C18BB00 */ lui $t8, 0xbb00
/* 053828 80052C28 AC580000 */ sw $t8, ($v0)
/* 05382C 80052C2C AC590004 */ sw $t9, 4($v0)
/* 053830 80052C30 8FBF003C */ lw $ra, 0x3c($sp)
/* 053834 80052C34 8FBE0038 */ lw $fp, 0x38($sp)
/* 053838 80052C38 8FB70034 */ lw $s7, 0x34($sp)
/* 05383C 80052C3C 8FB60030 */ lw $s6, 0x30($sp)
/* 053840 80052C40 8FB5002C */ lw $s5, 0x2c($sp)
/* 053844 80052C44 8FB40028 */ lw $s4, 0x28($sp)
/* 053848 80052C48 8FB30024 */ lw $s3, 0x24($sp)
/* 05384C 80052C4C 8FB20020 */ lw $s2, 0x20($sp)
/* 053850 80052C50 8FB1001C */ lw $s1, 0x1c($sp)
/* 053854 80052C54 8FB00018 */ lw $s0, 0x18($sp)
/* 053858 80052C58 03E00008 */ jr $ra
/* 05385C 80052C5C 27BD0040 */ addiu $sp, $sp, 0x40