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

307 lines
15 KiB
ArmAsm

glabel func_80007FA4
/* 008BA4 80007FA4 00041080 */ sll $v0, $a0, 2
/* 008BA8 80007FA8 3C018016 */ lui $at, %hi(D_80163418)
/* 008BAC 80007FAC 27BDFFE8 */ addiu $sp, $sp, -0x18
/* 008BB0 80007FB0 00220821 */ addu $at, $at, $v0
/* 008BB4 80007FB4 C4243418 */ lwc1 $f4, %lo(D_80163418)($at)
/* 008BB8 80007FB8 AFBF0014 */ sw $ra, 0x14($sp)
/* 008BBC 80007FBC AFA5001C */ sw $a1, 0x1c($sp)
/* 008BC0 80007FC0 3C018016 */ lui $at, %hi(D_80163438)
/* 008BC4 80007FC4 00220821 */ addu $at, $at, $v0
/* 008BC8 80007FC8 C4A60014 */ lwc1 $f6, 0x14($a1)
/* 008BCC 80007FCC C4283438 */ lwc1 $f8, %lo(D_80163438)($at)
/* 008BD0 80007FD0 C4AA001C */ lwc1 $f10, 0x1c($a1)
/* 008BD4 80007FD4 44867000 */ mtc1 $a2, $f14
/* 008BD8 80007FD8 24070003 */ li $a3, 3
/* 008BDC 80007FDC 00A03025 */ move $a2, $a1
/* 008BE0 80007FE0 46062001 */ sub.s $f0, $f4, $f6
/* 008BE4 80007FE4 14870053 */ bne $a0, $a3, .L80008134
/* 008BE8 80007FE8 460A4081 */ sub.s $f2, $f8, $f10
/* 008BEC 80007FEC 46000402 */ mul.s $f16, $f0, $f0
/* 008BF0 80007FF0 3C0141C8 */ li $at, 0x41C80000 # 25.000000
/* 008BF4 80007FF4 44812000 */ mtc1 $at, $f4
/* 008BF8 80007FF8 46021482 */ mul.s $f18, $f2, $f2
/* 008BFC 80007FFC 3C0F8016 */ lui $t7, %hi(D_80163410) # $t7, 0x8016
/* 008C00 80008000 25EF3410 */ addiu $t7, %lo(D_80163410) # addiu $t7, $t7, 0x3410
/* 008C04 80008004 00047040 */ sll $t6, $a0, 1
/* 008C08 80008008 01CF1021 */ addu $v0, $t6, $t7
/* 008C0C 8000800C 46128300 */ add.s $f12, $f16, $f18
/* 008C10 80008010 4604603C */ c.lt.s $f12, $f4
/* 008C14 80008014 00000000 */ nop
/* 008C18 80008018 45020019 */ bc1fl .L80008080
/* 008C1C 8000801C 3C014561 */ lui $at, 0x4561 # 3600.0
/* 008C20 80008020 84580000 */ lh $t8, ($v0)
/* 008C24 80008024 24190004 */ li $t9, 4
/* 008C28 80008028 2B010005 */ slti $at, $t8, 5
/* 008C2C 8000802C 50200014 */ beql $at, $zero, .L80008080
/* 008C30 80008030 3C014561 */ lui $at, 0x4561 # 3600.0
/* 008C34 80008034 A4590000 */ sh $t9, ($v0)
/* 008C38 80008038 3C01800F */ lui $at, %hi(D_800ECF78)
/* 008C3C 8000803C D428CF78 */ ldc1 $f8, %lo(D_800ECF78)($at)
/* 008C40 80008040 460071A1 */ cvt.d.s $f6, $f14
/* 008C44 80008044 00C02025 */ move $a0, $a2
/* 008C48 80008048 4628303C */ c.lt.d $f6, $f8
/* 008C4C 8000804C 00000000 */ nop
/* 008C50 80008050 45000006 */ bc1f .L8000806C
/* 008C54 80008054 00000000 */ nop
/* 008C58 80008058 00A02025 */ move $a0, $a1
/* 008C5C 8000805C 0C00E2F9 */ jal func_80038BE4
/* 008C60 80008060 24050001 */ li $a1, 1
/* 008C64 80008064 100000EC */ b .L80008418
/* 008C68 80008068 8FBF0014 */ lw $ra, 0x14($sp)
.L8000806C:
/* 008C6C 8000806C 0C00C7D2 */ jal func_80031F48
/* 008C70 80008070 3C053F80 */ lui $a1, 0x3f80
/* 008C74 80008074 100000E8 */ b .L80008418
/* 008C78 80008078 8FBF0014 */ lw $ra, 0x14($sp)
/* 008C7C 8000807C 3C014561 */ li $at, 0x45610000 # 3600.000000
.L80008080:
/* 008C80 80008080 44815000 */ mtc1 $at, $f10
/* 008C84 80008084 3C098016 */ lui $t1, %hi(D_80163410) # $t1, 0x8016
/* 008C88 80008088 25293410 */ addiu $t1, %lo(D_80163410) # addiu $t1, $t1, 0x3410
/* 008C8C 8000808C 460A603C */ c.lt.s $f12, $f10
/* 008C90 80008090 00044040 */ sll $t0, $a0, 1
/* 008C94 80008094 01091021 */ addu $v0, $t0, $t1
/* 008C98 80008098 45000016 */ bc1f .L800080F4
/* 008C9C 8000809C 00000000 */ nop
/* 008CA0 800080A0 844A0000 */ lh $t2, ($v0)
/* 008CA4 800080A4 29410004 */ slti $at, $t2, 4
/* 008CA8 800080A8 10200012 */ beqz $at, .L800080F4
/* 008CAC 800080AC 00000000 */ nop
/* 008CB0 800080B0 A4470000 */ sh $a3, ($v0)
/* 008CB4 800080B4 3C01800F */ lui $at, %hi(D_800ECF80)
/* 008CB8 800080B8 D432CF80 */ ldc1 $f18, %lo(D_800ECF80)($at)
/* 008CBC 800080BC 46007421 */ cvt.d.s $f16, $f14
/* 008CC0 800080C0 00C02025 */ move $a0, $a2
/* 008CC4 800080C4 4632803C */ c.lt.d $f16, $f18
/* 008CC8 800080C8 24050001 */ li $a1, 1
/* 008CCC 800080CC 45000005 */ bc1f .L800080E4
/* 008CD0 800080D0 00000000 */ nop
/* 008CD4 800080D4 0C00E2F9 */ jal func_80038BE4
/* 008CD8 800080D8 00C02025 */ move $a0, $a2
/* 008CDC 800080DC 100000CE */ b .L80008418
/* 008CE0 800080E0 8FBF0014 */ lw $ra, 0x14($sp)
.L800080E4:
/* 008CE4 800080E4 0C00C7D2 */ jal func_80031F48
/* 008CE8 800080E8 3C0540A0 */ lui $a1, 0x40a0
/* 008CEC 800080EC 100000CA */ b .L80008418
/* 008CF0 800080F0 8FBF0014 */ lw $ra, 0x14($sp)
.L800080F4:
/* 008CF4 800080F4 3C01800F */ lui $at, %hi(D_800ECF88)
/* 008CF8 800080F8 D426CF88 */ ldc1 $f6, %lo(D_800ECF88)($at)
/* 008CFC 800080FC 46007121 */ cvt.d.s $f4, $f14
/* 008D00 80008100 00C02025 */ move $a0, $a2
/* 008D04 80008104 4626203C */ c.lt.d $f4, $f6
/* 008D08 80008108 2405000A */ li $a1, 10
/* 008D0C 8000810C 45000005 */ bc1f .L80008124
/* 008D10 80008110 00000000 */ nop
/* 008D14 80008114 0C00E2F9 */ jal func_80038BE4
/* 008D18 80008118 00C02025 */ move $a0, $a2
/* 008D1C 8000811C 100000BE */ b .L80008418
/* 008D20 80008120 8FBF0014 */ lw $ra, 0x14($sp)
.L80008124:
/* 008D24 80008124 0C00C7D2 */ jal func_80031F48
/* 008D28 80008128 3C053F80 */ lui $a1, 0x3f80
/* 008D2C 8000812C 100000BA */ b .L80008418
/* 008D30 80008130 8FBF0014 */ lw $ra, 0x14($sp)
.L80008134:
/* 008D34 80008134 46000202 */ mul.s $f8, $f0, $f0
/* 008D38 80008138 3C0141C8 */ li $at, 0x41C80000 # 25.000000
/* 008D3C 8000813C 44818000 */ mtc1 $at, $f16
/* 008D40 80008140 46021282 */ mul.s $f10, $f2, $f2
/* 008D44 80008144 3C0C8016 */ lui $t4, %hi(D_80163410) # $t4, 0x8016
/* 008D48 80008148 258C3410 */ addiu $t4, %lo(D_80163410) # addiu $t4, $t4, 0x3410
/* 008D4C 8000814C 00045840 */ sll $t3, $a0, 1
/* 008D50 80008150 016C1021 */ addu $v0, $t3, $t4
/* 008D54 80008154 460A4300 */ add.s $f12, $f8, $f10
/* 008D58 80008158 4610603C */ c.lt.s $f12, $f16
/* 008D5C 8000815C 00000000 */ nop
/* 008D60 80008160 45000020 */ bc1f .L800081E4
/* 008D64 80008164 00000000 */ nop
/* 008D68 80008168 844D0000 */ lh $t5, ($v0)
/* 008D6C 8000816C 29A10005 */ slti $at, $t5, 5
/* 008D70 80008170 1020001C */ beqz $at, .L800081E4
/* 008D74 80008174 3C014000 */ li $at, 0x40000000 # 2.000000
/* 008D78 80008178 44812800 */ mtc1 $at, $f5
/* 008D7C 8000817C 3C014032 */ li $at, 0x40320000 # 2.781250
/* 008D80 80008180 44813800 */ mtc1 $at, $f7
/* 008D84 80008184 44802000 */ mtc1 $zero, $f4
/* 008D88 80008188 44803000 */ mtc1 $zero, $f6
/* 008D8C 8000818C 3C01406B */ li $at, 0x406B0000 # 3.671875
/* 008D90 80008190 44815800 */ mtc1 $at, $f11
/* 008D94 80008194 46262202 */ mul.d $f8, $f4, $f6
/* 008D98 80008198 44805000 */ mtc1 $zero, $f10
/* 008D9C 8000819C 460074A1 */ cvt.d.s $f18, $f14
/* 008DA0 800081A0 240E0004 */ li $t6, 4
/* 008DA4 800081A4 A44E0000 */ sh $t6, ($v0)
/* 008DA8 800081A8 00C02025 */ move $a0, $a2
/* 008DAC 800081AC 24050001 */ li $a1, 1
/* 008DB0 800081B0 462A4403 */ div.d $f16, $f8, $f10
/* 008DB4 800081B4 4630903C */ c.lt.d $f18, $f16
/* 008DB8 800081B8 00000000 */ nop
/* 008DBC 800081BC 45000005 */ bc1f .L800081D4
/* 008DC0 800081C0 00000000 */ nop
/* 008DC4 800081C4 0C00E2F9 */ jal func_80038BE4
/* 008DC8 800081C8 00C02025 */ move $a0, $a2
/* 008DCC 800081CC 10000092 */ b .L80008418
/* 008DD0 800081D0 8FBF0014 */ lw $ra, 0x14($sp)
.L800081D4:
/* 008DD4 800081D4 0C00C7D2 */ jal func_80031F48
/* 008DD8 800081D8 3C053F80 */ lui $a1, 0x3f80
/* 008DDC 800081DC 1000008E */ b .L80008418
/* 008DE0 800081E0 8FBF0014 */ lw $ra, 0x14($sp)
.L800081E4:
/* 008DE4 800081E4 3C01800F */ lui $at, %hi(D_800ECF90) # $at, 0x800f
/* 008DE8 800081E8 C424CF90 */ lwc1 $f4, %lo(D_800ECF90)($at)
/* 008DEC 800081EC 3C188016 */ lui $t8, %hi(D_80163410) # $t8, 0x8016
/* 008DF0 800081F0 27183410 */ addiu $t8, %lo(D_80163410) # addiu $t8, $t8, 0x3410
/* 008DF4 800081F4 4604603C */ c.lt.s $f12, $f4
/* 008DF8 800081F8 00047840 */ sll $t7, $a0, 1
/* 008DFC 800081FC 01F81021 */ addu $v0, $t7, $t8
/* 008E00 80008200 84430000 */ lh $v1, ($v0)
/* 008E04 80008204 4500001D */ bc1f .L8000827C
/* 008E08 80008208 28610004 */ slti $at, $v1, 4
/* 008E0C 8000820C 1020001B */ beqz $at, .L8000827C
/* 008E10 80008210 3C014014 */ li $at, 0x40140000 # 2.312500
/* 008E14 80008214 44814800 */ mtc1 $at, $f9
/* 008E18 80008218 3C014032 */ li $at, 0x40320000 # 2.781250
/* 008E1C 8000821C 44815800 */ mtc1 $at, $f11
/* 008E20 80008220 44804000 */ mtc1 $zero, $f8
/* 008E24 80008224 44805000 */ mtc1 $zero, $f10
/* 008E28 80008228 3C01406B */ li $at, 0x406B0000 # 3.671875
/* 008E2C 8000822C 44818800 */ mtc1 $at, $f17
/* 008E30 80008230 462A4482 */ mul.d $f18, $f8, $f10
/* 008E34 80008234 44808000 */ mtc1 $zero, $f16
/* 008E38 80008238 460071A1 */ cvt.d.s $f6, $f14
/* 008E3C 8000823C A4470000 */ sh $a3, ($v0)
/* 008E40 80008240 00C02025 */ move $a0, $a2
/* 008E44 80008244 24050001 */ li $a1, 1
/* 008E48 80008248 46309103 */ div.d $f4, $f18, $f16
/* 008E4C 8000824C 4624303C */ c.lt.d $f6, $f4
/* 008E50 80008250 00000000 */ nop
/* 008E54 80008254 45000005 */ bc1f .L8000826C
/* 008E58 80008258 00000000 */ nop
/* 008E5C 8000825C 0C00E2F9 */ jal func_80038BE4
/* 008E60 80008260 00C02025 */ move $a0, $a2
/* 008E64 80008264 1000006C */ b .L80008418
/* 008E68 80008268 8FBF0014 */ lw $ra, 0x14($sp)
.L8000826C:
/* 008E6C 8000826C 0C00C7D2 */ jal func_80031F48
/* 008E70 80008270 3C054170 */ lui $a1, 0x4170
/* 008E74 80008274 10000068 */ b .L80008418
/* 008E78 80008278 8FBF0014 */ lw $ra, 0x14($sp)
.L8000827C:
/* 008E7C 8000827C 3C01800F */ lui $at, %hi(D_800ECF94) # $at, 0x800f
/* 008E80 80008280 C428CF94 */ lwc1 $f8, %lo(D_800ECF94)($at)
/* 008E84 80008284 28610003 */ slti $at, $v1, 3
/* 008E88 80008288 4608603C */ c.lt.s $f12, $f8
/* 008E8C 8000828C 00000000 */ nop
/* 008E90 80008290 4500001E */ bc1f .L8000830C
/* 008E94 80008294 00000000 */ nop
/* 008E98 80008298 1020001C */ beqz $at, .L8000830C
/* 008E9C 8000829C 3C014034 */ li $at, 0x40340000 # 2.812500
/* 008EA0 800082A0 44819800 */ mtc1 $at, $f19
/* 008EA4 800082A4 3C014032 */ li $at, 0x40320000 # 2.781250
/* 008EA8 800082A8 44818800 */ mtc1 $at, $f17
/* 008EAC 800082AC 44809000 */ mtc1 $zero, $f18
/* 008EB0 800082B0 44808000 */ mtc1 $zero, $f16
/* 008EB4 800082B4 3C01406B */ li $at, 0x406B0000 # 3.671875
/* 008EB8 800082B8 44812800 */ mtc1 $at, $f5
/* 008EBC 800082BC 46309182 */ mul.d $f6, $f18, $f16
/* 008EC0 800082C0 44802000 */ mtc1 $zero, $f4
/* 008EC4 800082C4 460072A1 */ cvt.d.s $f10, $f14
/* 008EC8 800082C8 24190002 */ li $t9, 2
/* 008ECC 800082CC A4590000 */ sh $t9, ($v0)
/* 008ED0 800082D0 00C02025 */ move $a0, $a2
/* 008ED4 800082D4 24050005 */ li $a1, 5
/* 008ED8 800082D8 46243203 */ div.d $f8, $f6, $f4
/* 008EDC 800082DC 4628503C */ c.lt.d $f10, $f8
/* 008EE0 800082E0 00000000 */ nop
/* 008EE4 800082E4 45000005 */ bc1f .L800082FC
/* 008EE8 800082E8 00000000 */ nop
/* 008EEC 800082EC 0C00E2F9 */ jal func_80038BE4
/* 008EF0 800082F0 00C02025 */ move $a0, $a2
/* 008EF4 800082F4 10000048 */ b .L80008418
/* 008EF8 800082F8 8FBF0014 */ lw $ra, 0x14($sp)
.L800082FC:
/* 008EFC 800082FC 0C00C7D2 */ jal func_80031F48
/* 008F00 80008300 3C053F80 */ lui $a1, 0x3f80
/* 008F04 80008304 10000044 */ b .L80008418
/* 008F08 80008308 8FBF0014 */ lw $ra, 0x14($sp)
.L8000830C:
/* 008F0C 8000830C 3C01800F */ lui $at, %hi(D_800ECF98) # $at, 0x800f
/* 008F10 80008310 C432CF98 */ lwc1 $f18, %lo(D_800ECF98)($at)
/* 008F14 80008314 28610002 */ slti $at, $v1, 2
/* 008F18 80008318 4612603C */ c.lt.s $f12, $f18
/* 008F1C 8000831C 00000000 */ nop
/* 008F20 80008320 4500001E */ bc1f .L8000839C
/* 008F24 80008324 00000000 */ nop
/* 008F28 80008328 1020001C */ beqz $at, .L8000839C
/* 008F2C 8000832C 3C01403E */ li $at, 0x403E0000 # 2.968750
/* 008F30 80008330 44813800 */ mtc1 $at, $f7
/* 008F34 80008334 3C014032 */ li $at, 0x40320000 # 2.781250
/* 008F38 80008338 44812800 */ mtc1 $at, $f5
/* 008F3C 8000833C 44803000 */ mtc1 $zero, $f6
/* 008F40 80008340 44802000 */ mtc1 $zero, $f4
/* 008F44 80008344 3C01406B */ li $at, 0x406B0000 # 3.671875
/* 008F48 80008348 44814800 */ mtc1 $at, $f9
/* 008F4C 8000834C 46243282 */ mul.d $f10, $f6, $f4
/* 008F50 80008350 44804000 */ mtc1 $zero, $f8
/* 008F54 80008354 46007421 */ cvt.d.s $f16, $f14
/* 008F58 80008358 24080001 */ li $t0, 1
/* 008F5C 8000835C A4480000 */ sh $t0, ($v0)
/* 008F60 80008360 00C02025 */ move $a0, $a2
/* 008F64 80008364 24050006 */ li $a1, 6
/* 008F68 80008368 46285483 */ div.d $f18, $f10, $f8
/* 008F6C 8000836C 4632803C */ c.lt.d $f16, $f18
/* 008F70 80008370 00000000 */ nop
/* 008F74 80008374 45000005 */ bc1f .L8000838C
/* 008F78 80008378 00000000 */ nop
/* 008F7C 8000837C 0C00E2F9 */ jal func_80038BE4
/* 008F80 80008380 00C02025 */ move $a0, $a2
/* 008F84 80008384 10000024 */ b .L80008418
/* 008F88 80008388 8FBF0014 */ lw $ra, 0x14($sp)
.L8000838C:
/* 008F8C 8000838C 0C00C7D2 */ jal func_80031F48
/* 008F90 80008390 3C053F80 */ lui $a1, 0x3f80
/* 008F94 80008394 10000020 */ b .L80008418
/* 008F98 80008398 8FBF0014 */ lw $ra, 0x14($sp)
.L8000839C:
/* 008F9C 8000839C 1460001B */ bnez $v1, .L8000840C
/* 008FA0 800083A0 00C02025 */ move $a0, $a2
/* 008FA4 800083A4 24090023 */ li $t1, 35
/* 008FA8 800083A8 44892000 */ mtc1 $t1, $f4
/* 008FAC 800083AC 3C014032 */ li $at, 0x40320000 # 2.781250
/* 008FB0 800083B0 44814800 */ mtc1 $at, $f9
/* 008FB4 800083B4 468022A1 */ cvt.d.w $f10, $f4
/* 008FB8 800083B8 44804000 */ mtc1 $zero, $f8
/* 008FBC 800083BC 3C01406B */ li $at, 0x406B0000 # 3.671875
/* 008FC0 800083C0 44819800 */ mtc1 $at, $f19
/* 008FC4 800083C4 44809000 */ mtc1 $zero, $f18
/* 008FC8 800083C8 46285402 */ mul.d $f16, $f10, $f8
/* 008FCC 800083CC 460071A1 */ cvt.d.s $f6, $f14
/* 008FD0 800083D0 00C02025 */ move $a0, $a2
/* 008FD4 800083D4 24050002 */ li $a1, 2
/* 008FD8 800083D8 46328103 */ div.d $f4, $f16, $f18
/* 008FDC 800083DC 4624303C */ c.lt.d $f6, $f4
/* 008FE0 800083E0 00000000 */ nop
/* 008FE4 800083E4 45000005 */ bc1f .L800083FC
/* 008FE8 800083E8 00000000 */ nop
/* 008FEC 800083EC 0C00E2F9 */ jal func_80038BE4
/* 008FF0 800083F0 00C02025 */ move $a0, $a2
/* 008FF4 800083F4 10000008 */ b .L80008418
/* 008FF8 800083F8 8FBF0014 */ lw $ra, 0x14($sp)
.L800083FC:
/* 008FFC 800083FC 0C00C7D2 */ jal func_80031F48
/* 009000 80008400 3C053F80 */ lui $a1, 0x3f80
/* 009004 80008404 10000004 */ b .L80008418
/* 009008 80008408 8FBF0014 */ lw $ra, 0x14($sp)
.L8000840C:
/* 00900C 8000840C 0C00C7D2 */ jal func_80031F48
/* 009010 80008410 3C053F80 */ lui $a1, 0x3f80
/* 009014 80008414 8FBF0014 */ lw $ra, 0x14($sp)
.L80008418:
/* 009018 80008418 27BD0018 */ addiu $sp, $sp, 0x18
/* 00901C 8000841C 03E00008 */ jr $ra
/* 009020 80008420 00000000 */ nop