Files
SpaghettiKart/asm/non_matchings/code_80005FD0/func_8000C9DC.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

125 lines
5.8 KiB
ArmAsm

glabel func_8000C9DC
/* 00D5DC 8000C9DC 27BDFFE8 */ addiu $sp, $sp, -0x18
/* 00D5E0 8000C9E0 8FA50028 */ lw $a1, 0x28($sp)
/* 00D5E4 8000C9E4 00077400 */ sll $t6, $a3, 0x10
/* 00D5E8 8000C9E8 000E7C03 */ sra $t7, $t6, 0x10
/* 00D5EC 8000C9EC F7B60010 */ sdc1 $f22, 0x10($sp)
/* 00D5F0 8000C9F0 25E9FFFD */ addiu $t1, $t7, -3
/* 00D5F4 8000C9F4 4486B000 */ mtc1 $a2, $f22
/* 00D5F8 8000C9F8 3C01800F */ lui $at, %hi(D_800ECFF4) # $at, 0x800f
/* 00D5FC 8000C9FC 00095400 */ sll $t2, $t1, 0x10
/* 00D600 8000CA00 C420CFF4 */ lwc1 $f0, %lo(D_800ECFF4)($at)
/* 00D604 8000CA04 3C048016 */ lui $a0, %hi(D_801645C8) # 0x8016
/* 00D608 8000CA08 3C068016 */ lui $a2, %hi(D_80164550) # 0x8016
/* 00D60C 8000CA0C 000A6C03 */ sra $t5, $t2, 0x10
/* 00D610 8000CA10 00094400 */ sll $t0, $t1, 0x10
/* 00D614 8000CA14 25EB0007 */ addiu $t3, $t7, 7
/* 00D618 8000CA18 0005C040 */ sll $t8, $a1, 1
/* 00D61C 8000CA1C 0005C880 */ sll $t9, $a1, 2
/* 00D620 8000CA20 F7B40008 */ sdc1 $f20, 8($sp)
/* 00D624 8000CA24 AFA70024 */ sw $a3, 0x24($sp)
/* 00D628 8000CA28 00982021 */ addu $a0, $a0, $t8
/* 00D62C 8000CA2C 00D93021 */ addu $a2, $a2, $t9
/* 00D630 8000CA30 01AB082A */ slt $at, $t5, $t3
/* 00D634 8000CA34 00086403 */ sra $t4, $t0, 0x10
/* 00D638 8000CA38 01E03825 */ move $a3, $t7
/* 00D63C 8000CA3C 46007506 */ mov.s $f20, $f14
/* 00D640 8000CA40 00001025 */ move $v0, $zero
/* 00D644 8000CA44 2403FFFF */ li $v1, -1
/* 00D648 8000CA48 948445C8 */ lhu $a0, %lo(D_801645C8)($a0) # 0x45c8($a0)
/* 00D64C 8000CA4C 8CC64550 */ lw $a2, %lo(D_80164550)($a2) # 0x4550($a2)
/* 00D650 8000CA50 01804025 */ move $t0, $t4
/* 00D654 8000CA54 10200032 */ beqz $at, .L8000CB20
/* 00D658 8000CA58 01A05025 */ move $t2, $t5
.L8000CA5C:
/* 00D65C 8000CA5C 01047021 */ addu $t6, $t0, $a0
/* 00D660 8000CA60 01C4001A */ div $zero, $t6, $a0
/* 00D664 8000CA64 00002810 */ mfhi $a1
/* 00D668 8000CA68 00057C00 */ sll $t7, $a1, 0x10
/* 00D66C 8000CA6C 000FC403 */ sra $t8, $t7, 0x10
/* 00D670 8000CA70 0018C8C0 */ sll $t9, $t8, 3
/* 00D674 8000CA74 03263821 */ addu $a3, $t9, $a2
/* 00D678 8000CA78 84EC0000 */ lh $t4, ($a3)
/* 00D67C 8000CA7C 84ED0002 */ lh $t5, 2($a3)
/* 00D680 8000CA80 14800002 */ bnez $a0, .L8000CA8C
/* 00D684 8000CA84 00000000 */ nop
/* 00D688 8000CA88 0007000D */ break 7
.L8000CA8C:
/* 00D68C 8000CA8C 2401FFFF */ li $at, -1
/* 00D690 8000CA90 14810004 */ bne $a0, $at, .L8000CAA4
/* 00D694 8000CA94 3C018000 */ lui $at, 0x8000
/* 00D698 8000CA98 15C10002 */ bne $t6, $at, .L8000CAA4
/* 00D69C 8000CA9C 00000000 */ nop
/* 00D6A0 8000CAA0 0006000D */ break 6
.L8000CAA4:
/* 00D6A4 8000CAA4 448C2000 */ mtc1 $t4, $f4
/* 00D6A8 8000CAA8 448D4000 */ mtc1 $t5, $f8
/* 00D6AC 8000CAAC 84EE0004 */ lh $t6, 4($a3)
/* 00D6B0 8000CAB0 468021A0 */ cvt.s.w $f6, $f4
/* 00D6B4 8000CAB4 25080001 */ addiu $t0, $t0, 1
/* 00D6B8 8000CAB8 448E2000 */ mtc1 $t6, $f4
/* 00D6BC 8000CABC 03002825 */ move $a1, $t8
/* 00D6C0 8000CAC0 468042A0 */ cvt.s.w $f10, $f8
/* 00D6C4 8000CAC4 460C3081 */ sub.s $f2, $f6, $f12
/* 00D6C8 8000CAC8 468021A0 */ cvt.s.w $f6, $f4
/* 00D6CC 8000CACC 46021202 */ mul.s $f8, $f2, $f2
/* 00D6D0 8000CAD0 46145381 */ sub.s $f14, $f10, $f20
/* 00D6D4 8000CAD4 46163401 */ sub.s $f16, $f6, $f22
/* 00D6D8 8000CAD8 460E7282 */ mul.s $f10, $f14, $f14
/* 00D6DC 8000CADC 460A4100 */ add.s $f4, $f8, $f10
/* 00D6E0 8000CAE0 46108182 */ mul.s $f6, $f16, $f16
/* 00D6E4 8000CAE4 46062480 */ add.s $f18, $f4, $f6
/* 00D6E8 8000CAE8 4600903C */ c.lt.s $f18, $f0
/* 00D6EC 8000CAEC 00000000 */ nop
/* 00D6F0 8000CAF0 45020007 */ bc1fl .L8000CB10
/* 00D6F4 8000CAF4 0008C400 */ sll $t8, $t0, 0x10
/* 00D6F8 8000CAF8 00181C00 */ sll $v1, $t8, 0x10
/* 00D6FC 8000CAFC 00037C03 */ sra $t7, $v1, 0x10
/* 00D700 8000CB00 46009006 */ mov.s $f0, $f18
/* 00D704 8000CB04 01E01825 */ move $v1, $t7
/* 00D708 8000CB08 24020001 */ li $v0, 1
/* 00D70C 8000CB0C 0008C400 */ sll $t8, $t0, 0x10
.L8000CB10:
/* 00D710 8000CB10 0018CC03 */ sra $t9, $t8, 0x10
/* 00D714 8000CB14 032B082A */ slt $at, $t9, $t3
/* 00D718 8000CB18 1420FFD0 */ bnez $at, .L8000CA5C
/* 00D71C 8000CB1C 03204025 */ move $t0, $t9
.L8000CB20:
/* 00D720 8000CB20 1440001C */ bnez $v0, .L8000CB94
/* 00D724 8000CB24 D7B40008 */ ldc1 $f20, 8($sp)
/* 00D728 8000CB28 00094400 */ sll $t0, $t1, 0x10
/* 00D72C 8000CB2C 00086403 */ sra $t4, $t0, 0x10
/* 00D730 8000CB30 014B082A */ slt $at, $t2, $t3
/* 00D734 8000CB34 10200017 */ beqz $at, .L8000CB94
/* 00D738 8000CB38 01804025 */ move $t0, $t4
.L8000CB3C:
/* 00D73C 8000CB3C 01046821 */ addu $t5, $t0, $a0
/* 00D740 8000CB40 01A4001A */ div $zero, $t5, $a0
/* 00D744 8000CB44 14800002 */ bnez $a0, .L8000CB50
/* 00D748 8000CB48 00000000 */ nop
/* 00D74C 8000CB4C 0007000D */ break 7
.L8000CB50:
/* 00D750 8000CB50 2401FFFF */ li $at, -1
/* 00D754 8000CB54 14810004 */ bne $a0, $at, .L8000CB68
/* 00D758 8000CB58 3C018000 */ lui $at, 0x8000
/* 00D75C 8000CB5C 15A10002 */ bne $t5, $at, .L8000CB68
/* 00D760 8000CB60 00000000 */ nop
/* 00D764 8000CB64 0006000D */ break 6
.L8000CB68:
/* 00D768 8000CB68 25080001 */ addiu $t0, $t0, 1
/* 00D76C 8000CB6C 00007010 */ mfhi $t6
/* 00D770 8000CB70 00086400 */ sll $t4, $t0, 0x10
/* 00D774 8000CB74 000E7C00 */ sll $t7, $t6, 0x10
/* 00D778 8000CB78 000C6C03 */ sra $t5, $t4, 0x10
/* 00D77C 8000CB7C 000FC403 */ sra $t8, $t7, 0x10
/* 00D780 8000CB80 01AB082A */ slt $at, $t5, $t3
/* 00D784 8000CB84 0018C8C0 */ sll $t9, $t8, 3
/* 00D788 8000CB88 01A04025 */ move $t0, $t5
/* 00D78C 8000CB8C 1420FFEB */ bnez $at, .L8000CB3C
/* 00D790 8000CB90 03263821 */ addu $a3, $t9, $a2
.L8000CB94:
/* 00D794 8000CB94 D7B60010 */ ldc1 $f22, 0x10($sp)
/* 00D798 8000CB98 27BD0018 */ addiu $sp, $sp, 0x18
/* 00D79C 8000CB9C 03E00008 */ jr $ra
/* 00D7A0 8000CBA0 00601025 */ move $v0, $v1