mirror of
https://github.com/HarbourMasters/SpaghettiKart
synced 2026-06-30 20:11:40 -04:00
8ab4557b39
* Split asm using autodecompiler * Placed libultra bss and linked more C
112 lines
5.8 KiB
ArmAsm
112 lines
5.8 KiB
ArmAsm
glabel func_80051ABC
|
|
/* 0526BC 80051ABC 27BDFFD0 */ addiu $sp, $sp, -0x30
|
|
/* 0526C0 80051AC0 3C068015 */ lui $a2, %hi(gDisplayListHead) # $a2, 0x8015
|
|
/* 0526C4 80051AC4 240F00FF */ li $t7, 255
|
|
/* 0526C8 80051AC8 3C018019 */ lui $at, %hi(D_8018D228) # $at, 0x8019
|
|
/* 0526CC 80051ACC 24C60298 */ addiu $a2, %lo(gDisplayListHead) # addiu $a2, $a2, 0x298
|
|
/* 0526D0 80051AD0 A02FD228 */ sb $t7, %lo(D_8018D228)($at)
|
|
/* 0526D4 80051AD4 8CC30000 */ lw $v1, ($a2)
|
|
/* 0526D8 80051AD8 AFBF002C */ sw $ra, 0x2c($sp)
|
|
/* 0526DC 80051ADC AFB50028 */ sw $s5, 0x28($sp)
|
|
/* 0526E0 80051AE0 24780008 */ addiu $t8, $v1, 8
|
|
/* 0526E4 80051AE4 AFB40024 */ sw $s4, 0x24($sp)
|
|
/* 0526E8 80051AE8 AFB30020 */ sw $s3, 0x20($sp)
|
|
/* 0526EC 80051AEC AFB2001C */ sw $s2, 0x1c($sp)
|
|
/* 0526F0 80051AF0 AFB10018 */ sw $s1, 0x18($sp)
|
|
/* 0526F4 80051AF4 AFB00014 */ sw $s0, 0x14($sp)
|
|
/* 0526F8 80051AF8 AFA40030 */ sw $a0, 0x30($sp)
|
|
/* 0526FC 80051AFC ACD80000 */ sw $t8, ($a2)
|
|
/* 052700 80051B00 3C080D00 */ lui $t0, %hi(D_0D007A60) # $t0, 0xd00
|
|
/* 052704 80051B04 25087A60 */ addiu $t0, %lo(D_0D007A60) # addiu $t0, $t0, 0x7a60
|
|
/* 052708 80051B08 3C190600 */ lui $t9, 0x600
|
|
/* 05270C 80051B0C 3C098019 */ lui $t1, %hi(D_8018D230) # $t1, 0x8019
|
|
/* 052710 80051B10 AC790000 */ sw $t9, ($v1)
|
|
/* 052714 80051B14 AC680004 */ sw $t0, 4($v1)
|
|
/* 052718 80051B18 9129D230 */ lbu $t1, %lo(D_8018D230)($t1)
|
|
/* 05271C 80051B1C 0004AC00 */ sll $s5, $a0, 0x10
|
|
/* 052720 80051B20 00157403 */ sra $t6, $s5, 0x10
|
|
/* 052724 80051B24 01C0A825 */ move $s5, $t6
|
|
/* 052728 80051B28 11200024 */ beqz $t1, .L80051BBC
|
|
/* 05272C 80051B2C 00A09025 */ move $s2, $a1
|
|
/* 052730 80051B30 240400FF */ li $a0, 255
|
|
/* 052734 80051B34 240500FF */ li $a1, 255
|
|
/* 052738 80051B38 240600FF */ li $a2, 255
|
|
/* 05273C 80051B3C 0C012D05 */ jal func_8004B414
|
|
/* 052740 80051B40 240700FF */ li $a3, 255
|
|
/* 052744 80051B44 3C148019 */ lui $s4, %hi(D_8018D1F0) # $s4, 0x8019
|
|
/* 052748 80051B48 2694D1F0 */ addiu $s4, %lo(D_8018D1F0) # addiu $s4, $s4, -0x2e10
|
|
/* 05274C 80051B4C 8E8A0000 */ lw $t2, ($s4)
|
|
/* 052750 80051B50 00008025 */ move $s0, $zero
|
|
/* 052754 80051B54 00125880 */ sll $t3, $s2, 2
|
|
/* 052758 80051B58 19400038 */ blez $t2, .L80051C3C
|
|
/* 05275C 80051B5C 3C0C8019 */ lui $t4, %hi(D_8018CC80) # $t4, 0x8019
|
|
/* 052760 80051B60 258CCC80 */ addiu $t4, %lo(D_8018CC80) # addiu $t4, $t4, -0x3380
|
|
/* 052764 80051B64 3C128016 */ lui $s2, %hi(D_80165C18) # $s2, 0x8016
|
|
/* 052768 80051B68 26525C18 */ addiu $s2, %lo(D_80165C18) # addiu $s2, $s2, 0x5c18
|
|
/* 05276C 80051B6C 016C8821 */ addu $s1, $t3, $t4
|
|
/* 052770 80051B70 241300E0 */ li $s3, 224
|
|
/* 052774 80051B74 8E240000 */ lw $a0, ($s1)
|
|
.L80051B78:
|
|
/* 052778 80051B78 00930019 */ multu $a0, $s3
|
|
/* 05277C 80051B7C 00006812 */ mflo $t5
|
|
/* 052780 80051B80 024D1021 */ addu $v0, $s2, $t5
|
|
/* 052784 80051B84 844E009E */ lh $t6, 0x9e($v0)
|
|
/* 052788 80051B88 8445009C */ lh $a1, 0x9c($v0)
|
|
/* 05278C 80051B8C 02AE3023 */ subu $a2, $s5, $t6
|
|
/* 052790 80051B90 00067C00 */ sll $t7, $a2, 0x10
|
|
/* 052794 80051B94 0C014675 */ jal func_800519D4
|
|
/* 052798 80051B98 000F3403 */ sra $a2, $t7, 0x10
|
|
/* 05279C 80051B9C 8E990000 */ lw $t9, ($s4)
|
|
/* 0527A0 80051BA0 26100001 */ addiu $s0, $s0, 1
|
|
/* 0527A4 80051BA4 26310004 */ addiu $s1, $s1, 4
|
|
/* 0527A8 80051BA8 0219082A */ slt $at, $s0, $t9
|
|
/* 0527AC 80051BAC 5420FFF2 */ bnel $at, $zero, .L80051B78
|
|
/* 0527B0 80051BB0 8E240000 */ lw $a0, ($s1)
|
|
/* 0527B4 80051BB4 10000022 */ b .L80051C40
|
|
/* 0527B8 80051BB8 8FBF002C */ lw $ra, 0x2c($sp)
|
|
.L80051BBC:
|
|
/* 0527BC 80051BBC 240400FF */ li $a0, 255
|
|
/* 0527C0 80051BC0 240500FF */ li $a1, 255
|
|
/* 0527C4 80051BC4 0C012DB1 */ jal func_8004B6C4
|
|
/* 0527C8 80051BC8 240600FF */ li $a2, 255
|
|
/* 0527CC 80051BCC 3C148019 */ lui $s4, %hi(D_8018D1F0) # $s4, 0x8019
|
|
/* 0527D0 80051BD0 2694D1F0 */ addiu $s4, %lo(D_8018D1F0) # addiu $s4, $s4, -0x2e10
|
|
/* 0527D4 80051BD4 8E880000 */ lw $t0, ($s4)
|
|
/* 0527D8 80051BD8 00008025 */ move $s0, $zero
|
|
/* 0527DC 80051BDC 00124880 */ sll $t1, $s2, 2
|
|
/* 0527E0 80051BE0 19000016 */ blez $t0, .L80051C3C
|
|
/* 0527E4 80051BE4 3C0A8019 */ lui $t2, %hi(D_8018CC80) # $t2, 0x8019
|
|
/* 0527E8 80051BE8 254ACC80 */ addiu $t2, %lo(D_8018CC80) # addiu $t2, $t2, -0x3380
|
|
/* 0527EC 80051BEC 3C128016 */ lui $s2, %hi(D_80165C18) # $s2, 0x8016
|
|
/* 0527F0 80051BF0 26525C18 */ addiu $s2, %lo(D_80165C18) # addiu $s2, $s2, 0x5c18
|
|
/* 0527F4 80051BF4 012A8821 */ addu $s1, $t1, $t2
|
|
/* 0527F8 80051BF8 241300E0 */ li $s3, 224
|
|
/* 0527FC 80051BFC 8E240000 */ lw $a0, ($s1)
|
|
.L80051C00:
|
|
/* 052800 80051C00 00930019 */ multu $a0, $s3
|
|
/* 052804 80051C04 00005812 */ mflo $t3
|
|
/* 052808 80051C08 024B1021 */ addu $v0, $s2, $t3
|
|
/* 05280C 80051C0C 844C009E */ lh $t4, 0x9e($v0)
|
|
/* 052810 80051C10 8445009C */ lh $a1, 0x9c($v0)
|
|
/* 052814 80051C14 02AC3023 */ subu $a2, $s5, $t4
|
|
/* 052818 80051C18 00066C00 */ sll $t5, $a2, 0x10
|
|
/* 05281C 80051C1C 0C01463E */ jal func_800518F8
|
|
/* 052820 80051C20 000D3403 */ sra $a2, $t5, 0x10
|
|
/* 052824 80051C24 8E8F0000 */ lw $t7, ($s4)
|
|
/* 052828 80051C28 26100001 */ addiu $s0, $s0, 1
|
|
/* 05282C 80051C2C 26310004 */ addiu $s1, $s1, 4
|
|
/* 052830 80051C30 020F082A */ slt $at, $s0, $t7
|
|
/* 052834 80051C34 5420FFF2 */ bnel $at, $zero, .L80051C00
|
|
/* 052838 80051C38 8E240000 */ lw $a0, ($s1)
|
|
.L80051C3C:
|
|
/* 05283C 80051C3C 8FBF002C */ lw $ra, 0x2c($sp)
|
|
.L80051C40:
|
|
/* 052840 80051C40 8FB00014 */ lw $s0, 0x14($sp)
|
|
/* 052844 80051C44 8FB10018 */ lw $s1, 0x18($sp)
|
|
/* 052848 80051C48 8FB2001C */ lw $s2, 0x1c($sp)
|
|
/* 05284C 80051C4C 8FB30020 */ lw $s3, 0x20($sp)
|
|
/* 052850 80051C50 8FB40024 */ lw $s4, 0x24($sp)
|
|
/* 052854 80051C54 8FB50028 */ lw $s5, 0x28($sp)
|
|
/* 052858 80051C58 03E00008 */ jr $ra
|
|
/* 05285C 80051C5C 27BD0030 */ addiu $sp, $sp, 0x30
|