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

119 lines
5.9 KiB
ArmAsm

glabel func_8000BA14
/* 00C614 8000BA14 3C0C8016 */ lui $t4, %hi(D_80164430) # $t4, 0x8016
/* 00C618 8000BA18 958C4430 */ lhu $t4, %lo(D_80164430)($t4)
/* 00C61C 8000BA1C 308EFFFF */ andi $t6, $a0, 0xffff
/* 00C620 8000BA20 25CB0001 */ addiu $t3, $t6, 1
/* 00C624 8000BA24 016C001A */ div $zero, $t3, $t4
/* 00C628 8000BA28 00077C00 */ sll $t7, $a3, 0x10
/* 00C62C 8000BA2C 000FC403 */ sra $t8, $t7, 0x10
/* 00C630 8000BA30 27BDFF98 */ addiu $sp, $sp, -0x68
/* 00C634 8000BA34 0018C880 */ sll $t9, $t8, 2
/* 00C638 8000BA38 3C038016 */ lui $v1, %hi(D_80164550) # 0x8016
/* 00C63C 8000BA3C 00791821 */ addu $v1, $v1, $t9
/* 00C640 8000BA40 8C634550 */ lw $v1, %lo(D_80164550)($v1) # 0x4550($v1)
/* 00C644 8000BA44 AFA40068 */ sw $a0, 0x68($sp)
/* 00C648 8000BA48 000E40C0 */ sll $t0, $t6, 3
/* 00C64C 8000BA4C 01C02025 */ move $a0, $t6
/* 00C650 8000BA50 AFA5006C */ sw $a1, 0x6c($sp)
/* 00C654 8000BA54 AFA70074 */ sw $a3, 0x74($sp)
/* 00C658 8000BA58 00006810 */ mfhi $t5
/* 00C65C 8000BA5C AFBF0014 */ sw $ra, 0x14($sp)
/* 00C660 8000BA60 AFA60070 */ sw $a2, 0x70($sp)
/* 00C664 8000BA64 000D70C0 */ sll $t6, $t5, 3
/* 00C668 8000BA68 00681021 */ addu $v0, $v1, $t0
/* 00C66C 8000BA6C 84490000 */ lh $t1, ($v0)
/* 00C670 8000BA70 03003825 */ move $a3, $t8
/* 00C674 8000BA74 006E2821 */ addu $a1, $v1, $t6
/* 00C678 8000BA78 84B80004 */ lh $t8, 4($a1)
/* 00C67C 8000BA7C 84AF0000 */ lh $t7, ($a1)
/* 00C680 8000BA80 44892000 */ mtc1 $t1, $f4
/* 00C684 8000BA84 44985000 */ mtc1 $t8, $f10
/* 00C688 8000BA88 844A0004 */ lh $t2, 4($v0)
/* 00C68C 8000BA8C 448F4000 */ mtc1 $t7, $f8
/* 00C690 8000BA90 468024A0 */ cvt.s.w $f18, $f4
/* 00C694 8000BA94 448A3000 */ mtc1 $t2, $f6
/* 00C698 8000BA98 46805120 */ cvt.s.w $f4, $f10
/* 00C69C 8000BA9C E7B20054 */ swc1 $f18, 0x54($sp)
/* 00C6A0 8000BAA0 468040A0 */ cvt.s.w $f2, $f8
/* 00C6A4 8000BAA4 E7A40048 */ swc1 $f4, 0x48($sp)
/* 00C6A8 8000BAA8 46803020 */ cvt.s.w $f0, $f6
/* 00C6AC 8000BAAC C7A60048 */ lwc1 $f6, 0x48($sp)
/* 00C6B0 8000BAB0 15800002 */ bnez $t4, .L8000BABC
/* 00C6B4 8000BAB4 00000000 */ nop
/* 00C6B8 8000BAB8 0007000D */ break 7
.L8000BABC:
/* 00C6BC 8000BABC 2401FFFF */ li $at, -1
/* 00C6C0 8000BAC0 15810004 */ bne $t4, $at, .L8000BAD4
/* 00C6C4 8000BAC4 3C018000 */ lui $at, 0x8000
/* 00C6C8 8000BAC8 15610002 */ bne $t3, $at, .L8000BAD4
/* 00C6CC 8000BACC 00000000 */ nop
/* 00C6D0 8000BAD0 0006000D */ break 6
.L8000BAD4:
/* 00C6D4 8000BAD4 46121401 */ sub.s $f16, $f2, $f18
/* 00C6D8 8000BAD8 E7A00050 */ swc1 $f0, 0x50($sp)
/* 00C6DC 8000BADC E7A2004C */ swc1 $f2, 0x4c($sp)
/* 00C6E0 8000BAE0 46003381 */ sub.s $f14, $f6, $f0
/* 00C6E4 8000BAE4 46108202 */ mul.s $f8, $f16, $f16
/* 00C6E8 8000BAE8 E7B0001C */ swc1 $f16, 0x1c($sp)
/* 00C6EC 8000BAEC 460E7282 */ mul.s $f10, $f14, $f14
/* 00C6F0 8000BAF0 E7AE0020 */ swc1 $f14, 0x20($sp)
/* 00C6F4 8000BAF4 0C033850 */ jal sqrtf
/* 00C6F8 8000BAF8 460A4300 */ add.s $f12, $f8, $f10
/* 00C6FC 8000BAFC 3C01800F */ lui $at, %hi(D_800ECFE4) # 0x800F0000 # -0.000000
/* 00C700 8000BB00 C424CFE4 */ lwc1 $f4, %lo(D_800ECFE4)($at)
/* 00C704 8000BB04 3C028016 */ lui $v0, %hi(D_80162FA0) # $v0, 0x8016
/* 00C708 8000BB08 C7A2004C */ lwc1 $f2, 0x4c($sp)
/* 00C70C 8000BB0C 4604003C */ c.lt.s $f0, $f4
/* 00C710 8000BB10 C7AE0020 */ lwc1 $f14, 0x20($sp)
/* 00C714 8000BB14 C7B0001C */ lwc1 $f16, 0x1c($sp)
/* 00C718 8000BB18 C7B20054 */ lwc1 $f18, 0x54($sp)
/* 00C71C 8000BB1C 45000005 */ bc1f .L8000BB34
/* 00C720 8000BB20 24422FA0 */ addiu $v0, %lo(D_80162FA0) # addiu $v0, $v0, 0x2fa0
/* 00C724 8000BB24 C7A60048 */ lwc1 $f6, 0x48($sp)
/* 00C728 8000BB28 E4420000 */ swc1 $f2, ($v0)
/* 00C72C 8000BB2C 10000026 */ b .L8000BBC8
/* 00C730 8000BB30 E4460008 */ swc1 $f6, 8($v0)
.L8000BB34:
/* 00C734 8000BB34 3C013F00 */ li $at, 0x3F000000 # 0.500000
/* 00C738 8000BB38 44815000 */ mtc1 $at, $f10
/* 00C73C 8000BB3C C7A8006C */ lwc1 $f8, 0x6c($sp)
/* 00C740 8000BB40 44813000 */ mtc1 $at, $f6
/* 00C744 8000BB44 3C013F80 */ li $at, 0x3F800000 # 1.000000
/* 00C748 8000BB48 460A4102 */ mul.s $f4, $f8, $f10
/* 00C74C 8000BB4C C7AA0070 */ lwc1 $f10, 0x70($sp)
/* 00C750 8000BB50 44814000 */ mtc1 $at, $f8
/* 00C754 8000BB54 3C018016 */ lui $at, %hi(D_80162FA0) # $at, 0x8016
/* 00C758 8000BB58 46043081 */ sub.s $f2, $f6, $f4
/* 00C75C 8000BB5C 46007187 */ neg.s $f6, $f14
/* 00C760 8000BB60 46024301 */ sub.s $f12, $f8, $f2
/* 00C764 8000BB64 46065102 */ mul.s $f4, $f10, $f6
/* 00C768 8000BB68 46002203 */ div.s $f8, $f4, $f0
/* 00C76C 8000BB6C 46124180 */ add.s $f6, $f8, $f18
/* 00C770 8000BB70 46066102 */ mul.s $f4, $f12, $f6
/* 00C774 8000BB74 00000000 */ nop
/* 00C778 8000BB78 460E5202 */ mul.s $f8, $f10, $f14
/* 00C77C 8000BB7C 46004183 */ div.s $f6, $f8, $f0
/* 00C780 8000BB80 46123200 */ add.s $f8, $f6, $f18
/* 00C784 8000BB84 46081182 */ mul.s $f6, $f2, $f8
/* 00C788 8000BB88 46043200 */ add.s $f8, $f6, $f4
/* 00C78C 8000BB8C 46008187 */ neg.s $f6, $f16
/* 00C790 8000BB90 E4282FA0 */ swc1 $f8, %lo(D_80162FA0)($at)
/* 00C794 8000BB94 46065102 */ mul.s $f4, $f10, $f6
/* 00C798 8000BB98 C7A60050 */ lwc1 $f6, 0x50($sp)
/* 00C79C 8000BB9C 3C018016 */ lui $at, %hi(D_80162FA8) # $at, 0x8016
/* 00C7A0 8000BBA0 46002203 */ div.s $f8, $f4, $f0
/* 00C7A4 8000BBA4 46064100 */ add.s $f4, $f8, $f6
/* 00C7A8 8000BBA8 46041202 */ mul.s $f8, $f2, $f4
/* 00C7AC 8000BBAC 00000000 */ nop
/* 00C7B0 8000BBB0 46105102 */ mul.s $f4, $f10, $f16
/* 00C7B4 8000BBB4 46002283 */ div.s $f10, $f4, $f0
/* 00C7B8 8000BBB8 46065100 */ add.s $f4, $f10, $f6
/* 00C7BC 8000BBBC 46046282 */ mul.s $f10, $f12, $f4
/* 00C7C0 8000BBC0 460A4180 */ add.s $f6, $f8, $f10
/* 00C7C4 8000BBC4 E4262FA8 */ swc1 $f6, %lo(D_80162FA8)($at)
.L8000BBC8:
/* 00C7C8 8000BBC8 8FBF0014 */ lw $ra, 0x14($sp)
/* 00C7CC 8000BBCC 27BD0068 */ addiu $sp, $sp, 0x68
/* 00C7D0 8000BBD0 03E00008 */ jr $ra
/* 00C7D4 8000BBD4 00000000 */ nop