papermario/ver/jp/asm/nonmatchings/35F50/func_8005D0F8.s

455 lines
23 KiB
ArmAsm
Raw Normal View History

.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
glabel func_8005D0F8
/* 384F8 8005D0F8 27BDFE60 */ addiu $sp, $sp, -0x1a0
/* 384FC 8005D0FC 44800000 */ mtc1 $zero, $f0
/* 38500 8005D100 2409FFFF */ addiu $t1, $zero, -1
/* 38504 8005D104 AFA90140 */ sw $t1, 0x140($sp)
/* 38508 8005D108 8FA901C4 */ lw $t1, 0x1c4($sp)
/* 3850C 8005D10C AFA701AC */ sw $a3, 0x1ac($sp)
/* 38510 8005D110 C7A801AC */ lwc1 $f8, 0x1ac($sp)
/* 38514 8005D114 F7BE0198 */ sdc1 $f30, 0x198($sp)
/* 38518 8005D118 46006786 */ mov.s $f30, $f12
/* 3851C 8005D11C F7BA0188 */ sdc1 $f26, 0x188($sp)
/* 38520 8005D120 46007686 */ mov.s $f26, $f14
/* 38524 8005D124 AFB60160 */ sw $s6, 0x160($sp)
/* 38528 8005D128 0000B02D */ daddu $s6, $zero, $zero
/* 3852C 8005D12C AFB20150 */ sw $s2, 0x150($sp)
/* 38530 8005D130 27B20100 */ addiu $s2, $sp, 0x100
/* 38534 8005D134 AFBF016C */ sw $ra, 0x16c($sp)
/* 38538 8005D138 AFBE0168 */ sw $fp, 0x168($sp)
/* 3853C 8005D13C AFB70164 */ sw $s7, 0x164($sp)
/* 38540 8005D140 AFB5015C */ sw $s5, 0x15c($sp)
/* 38544 8005D144 AFB40158 */ sw $s4, 0x158($sp)
/* 38548 8005D148 AFB30154 */ sw $s3, 0x154($sp)
/* 3854C 8005D14C AFB1014C */ sw $s1, 0x14c($sp)
/* 38550 8005D150 AFB00148 */ sw $s0, 0x148($sp)
/* 38554 8005D154 F7BC0190 */ sdc1 $f28, 0x190($sp)
/* 38558 8005D158 F7B80180 */ sdc1 $f24, 0x180($sp)
/* 3855C 8005D15C F7B60178 */ sdc1 $f22, 0x178($sp)
/* 38560 8005D160 F7B40170 */ sdc1 $f20, 0x170($sp)
/* 38564 8005D164 AFA601A8 */ sw $a2, 0x1a8($sp)
/* 38568 8005D168 C5360000 */ lwc1 $f22, ($t1)
/* 3856C 8005D16C 46004032 */ c.eq.s $f8, $f0
/* 38570 8005D170 00000000 */ nop
/* 38574 8005D174 4500000E */ bc1f .L8005D1B0
/* 38578 8005D178 4600B606 */ mov.s $f24, $f22
/* 3857C 8005D17C C7A801B4 */ lwc1 $f8, 0x1b4($sp)
/* 38580 8005D180 46004032 */ c.eq.s $f8, $f0
/* 38584 8005D184 00000000 */ nop
/* 38588 8005D188 45000009 */ bc1f .L8005D1B0
/* 3858C 8005D18C 00000000 */ nop
/* 38590 8005D190 C7A801B0 */ lwc1 $f8, 0x1b0($sp)
/* 38594 8005D194 4600403C */ c.lt.s $f8, $f0
/* 38598 8005D198 00000000 */ nop
/* 3859C 8005D19C 45000005 */ bc1f .L8005D1B4
/* 385A0 8005D1A0 00000000 */ nop
/* 385A4 8005D1A4 46000586 */ mov.s $f22, $f0
/* 385A8 8005D1A8 08017473 */ j .L8005D1CC
/* 385AC 8005D1AC 24160001 */ addiu $s6, $zero, 1
.L8005D1B0:
/* 385B0 8005D1B0 C7A801B0 */ lwc1 $f8, 0x1b0($sp)
.L8005D1B4:
/* 385B4 8005D1B4 46004032 */ c.eq.s $f8, $f0
/* 385B8 8005D1B8 00000000 */ nop
/* 385BC 8005D1BC 45000004 */ bc1f .L8005D1D0
/* 385C0 8005D1C0 0000F02D */ daddu $fp, $zero, $zero
/* 385C4 8005D1C4 46000606 */ mov.s $f24, $f0
/* 385C8 8005D1C8 24160002 */ addiu $s6, $zero, 2
.L8005D1CC:
/* 385CC 8005D1CC 0000F02D */ daddu $fp, $zero, $zero
.L8005D1D0:
/* 385D0 8005D1D0 27B700A0 */ addiu $s7, $sp, 0xa0
/* 385D4 8005D1D4 4480A000 */ mtc1 $zero, $f20
/* 385D8 8005D1D8 3C013F80 */ lui $at, 0x3f80
/* 385DC 8005D1DC 4481E000 */ mtc1 $at, $f28
/* 385E0 8005D1E0 3C01BF80 */ lui $at, 0xbf80
/* 385E4 8005D1E4 44810000 */ mtc1 $at, $f0
/* 385E8 8005D1E8 24020001 */ addiu $v0, $zero, 1
/* 385EC 8005D1EC A642003C */ sh $v0, 0x3c($s2)
/* 385F0 8005D1F0 3C01800A */ lui $at, %hi(D_800A2064)
/* 385F4 8005D1F4 E4202064 */ swc1 $f0, %lo(D_800A2064)($at)
.L8005D1F8:
/* 385F8 8005D1F8 0C0455FE */ jal func_801157F8
/* 385FC 8005D1FC 03C0202D */ daddu $a0, $fp, $zero
/* 38600 8005D200 0040882D */ daddu $s1, $v0, $zero
/* 38604 8005D204 52200154 */ beql $s1, $zero, .L8005D758
/* 38608 8005D208 27DE0001 */ addiu $fp, $fp, 1
/* 3860C 8005D20C 3C034000 */ lui $v1, 0x4000
/* 38610 8005D210 8E220000 */ lw $v0, ($s1)
/* 38614 8005D214 34630020 */ ori $v1, $v1, 0x20
/* 38618 8005D218 00431024 */ and $v0, $v0, $v1
/* 3861C 8005D21C 5440014E */ bnel $v0, $zero, .L8005D758
/* 38620 8005D220 27DE0001 */ addiu $fp, $fp, 1
/* 38624 8005D224 C62600B0 */ lwc1 $f6, 0xb0($s1)
/* 38628 8005D228 4606B080 */ add.s $f2, $f22, $f6
/* 3862C 8005D22C C6240048 */ lwc1 $f4, 0x48($s1)
/* 38630 8005D230 46022000 */ add.s $f0, $f4, $f2
/* 38634 8005D234 461E003C */ c.lt.s $f0, $f30
/* 38638 8005D238 00000000 */ nop
/* 3863C 8005D23C 45030146 */ bc1tl .L8005D758
/* 38640 8005D240 27DE0001 */ addiu $fp, $fp, 1
/* 38644 8005D244 46022001 */ sub.s $f0, $f4, $f2
/* 38648 8005D248 4600F03C */ c.lt.s $f30, $f0
/* 3864C 8005D24C 00000000 */ nop
/* 38650 8005D250 45030141 */ bc1tl .L8005D758
/* 38654 8005D254 27DE0001 */ addiu $fp, $fp, 1
/* 38658 8005D258 C6240050 */ lwc1 $f4, 0x50($s1)
/* 3865C 8005D25C 46022000 */ add.s $f0, $f4, $f2
/* 38660 8005D260 C7A801A8 */ lwc1 $f8, 0x1a8($sp)
/* 38664 8005D264 4608003C */ c.lt.s $f0, $f8
/* 38668 8005D268 00000000 */ nop
/* 3866C 8005D26C 4503013A */ bc1tl .L8005D758
/* 38670 8005D270 27DE0001 */ addiu $fp, $fp, 1
/* 38674 8005D274 46022001 */ sub.s $f0, $f4, $f2
/* 38678 8005D278 4600403C */ c.lt.s $f8, $f0
/* 3867C 8005D27C 00000000 */ nop
/* 38680 8005D280 45030135 */ bc1tl .L8005D758
/* 38684 8005D284 27DE0001 */ addiu $fp, $fp, 1
/* 38688 8005D288 06C00016 */ bltz $s6, .L8005D2E4
/* 3868C 8005D28C 2AC20002 */ slti $v0, $s6, 2
/* 38690 8005D290 54400006 */ bnel $v0, $zero, .L8005D2AC
/* 38694 8005D294 46063000 */ add.s $f0, $f6, $f6
/* 38698 8005D298 24020002 */ addiu $v0, $zero, 2
/* 3869C 8005D29C 12C20005 */ beq $s6, $v0, .L8005D2B4
/* 386A0 8005D2A0 26300070 */ addiu $s0, $s1, 0x70
/* 386A4 8005D2A4 080174BB */ j .L8005D2EC
/* 386A8 8005D2A8 0200202D */ daddu $a0, $s0, $zero
.L8005D2AC:
/* 386AC 8005D2AC 080174AE */ j .L8005D2B8
/* 386B0 8005D2B0 4600C100 */ add.s $f4, $f24, $f0
.L8005D2B4:
/* 386B4 8005D2B4 46063100 */ add.s $f4, $f6, $f6
.L8005D2B8:
/* 386B8 8005D2B8 C622004C */ lwc1 $f2, 0x4c($s1)
/* 386BC 8005D2BC 46041000 */ add.s $f0, $f2, $f4
/* 386C0 8005D2C0 461A003C */ c.lt.s $f0, $f26
/* 386C4 8005D2C4 00000000 */ nop
/* 386C8 8005D2C8 45030123 */ bc1tl .L8005D758
/* 386CC 8005D2CC 27DE0001 */ addiu $fp, $fp, 1
/* 386D0 8005D2D0 46041001 */ sub.s $f0, $f2, $f4
/* 386D4 8005D2D4 4600D03C */ c.lt.s $f26, $f0
/* 386D8 8005D2D8 00000000 */ nop
/* 386DC 8005D2DC 4503011E */ bc1tl .L8005D758
/* 386E0 8005D2E0 27DE0001 */ addiu $fp, $fp, 1
.L8005D2E4:
/* 386E4 8005D2E4 26300070 */ addiu $s0, $s1, 0x70
/* 386E8 8005D2E8 0200202D */ daddu $a0, $s0, $zero
.L8005D2EC:
/* 386EC 8005D2EC 0000A82D */ daddu $s5, $zero, $zero
/* 386F0 8005D2F0 3C148009 */ lui $s4, %hi(D_8008FF88)
/* 386F4 8005D2F4 2694FF88 */ addiu $s4, $s4, %lo(D_8008FF88)
/* 386F8 8005D2F8 8FA501AC */ lw $a1, 0x1ac($sp)
/* 386FC 8005D2FC 8FA601B0 */ lw $a2, 0x1b0($sp)
/* 38700 8005D300 8FA701B4 */ lw $a3, 0x1b4($sp)
/* 38704 8005D304 9623000C */ lhu $v1, 0xc($s1)
/* 38708 8005D308 96280010 */ lhu $t0, 0x10($s1)
/* 3870C 8005D30C 3C138009 */ lui $s3, %hi(D_8008FF40)
/* 38710 8005D310 2673FF40 */ addiu $s3, $s3, %lo(D_8008FF40)
/* 38714 8005D314 E7B400C8 */ swc1 $f20, 0xc8($sp)
/* 38718 8005D318 E7B400BC */ swc1 $f20, 0xbc($sp)
/* 3871C 8005D31C E7B400B0 */ swc1 $f20, 0xb0($sp)
/* 38720 8005D320 E7B400A4 */ swc1 $f20, 0xa4($sp)
/* 38724 8005D324 00031C00 */ sll $v1, $v1, 0x10
/* 38728 8005D328 00031403 */ sra $v0, $v1, 0x10
/* 3872C 8005D32C 00031FC2 */ srl $v1, $v1, 0x1f
/* 38730 8005D330 00431021 */ addu $v0, $v0, $v1
/* 38734 8005D334 00021043 */ sra $v0, $v0, 1
/* 38738 8005D338 44821000 */ mtc1 $v0, $f2
/* 3873C 8005D33C 00000000 */ nop
/* 38740 8005D340 468010A0 */ cvt.s.w $f2, $f2
/* 38744 8005D344 00084400 */ sll $t0, $t0, 0x10
/* 38748 8005D348 00081403 */ sra $v0, $t0, 0x10
/* 3874C 8005D34C 000847C2 */ srl $t0, $t0, 0x1f
/* 38750 8005D350 00481021 */ addu $v0, $v0, $t0
/* 38754 8005D354 00021043 */ sra $v0, $v0, 1
/* 38758 8005D358 46001007 */ neg.s $f0, $f2
/* 3875C 8005D35C E7A000E8 */ swc1 $f0, 0xe8($sp)
/* 38760 8005D360 E7A000DC */ swc1 $f0, 0xdc($sp)
/* 38764 8005D364 E7A000B8 */ swc1 $f0, 0xb8($sp)
/* 38768 8005D368 E7A000AC */ swc1 $f0, 0xac($sp)
/* 3876C 8005D36C 44820000 */ mtc1 $v0, $f0
/* 38770 8005D370 00000000 */ nop
/* 38774 8005D374 46800020 */ cvt.s.w $f0, $f0
/* 38778 8005D378 E7A200F4 */ swc1 $f2, 0xf4($sp)
/* 3877C 8005D37C E7A200D0 */ swc1 $f2, 0xd0($sp)
/* 38780 8005D380 E7A200C4 */ swc1 $f2, 0xc4($sp)
/* 38784 8005D384 E7A200A0 */ swc1 $f2, 0xa0($sp)
/* 38788 8005D388 8623000E */ lh $v1, 0xe($s1)
/* 3878C 8005D38C 3C02800A */ lui $v0, %hi(D_800A204C)
/* 38790 8005D390 2442204C */ addiu $v0, $v0, %lo(D_800A204C)
/* 38794 8005D394 E7A000E4 */ swc1 $f0, 0xe4($sp)
/* 38798 8005D398 E7A000D8 */ swc1 $f0, 0xd8($sp)
/* 3879C 8005D39C E7A000B4 */ swc1 $f0, 0xb4($sp)
/* 387A0 8005D3A0 E7A000A8 */ swc1 $f0, 0xa8($sp)
/* 387A4 8005D3A4 46000007 */ neg.s $f0, $f0
/* 387A8 8005D3A8 E7A000FC */ swc1 $f0, 0xfc($sp)
/* 387AC 8005D3AC E7A000F0 */ swc1 $f0, 0xf0($sp)
/* 387B0 8005D3B0 E7A000CC */ swc1 $f0, 0xcc($sp)
/* 387B4 8005D3B4 E7A000C0 */ swc1 $f0, 0xc0($sp)
/* 387B8 8005D3B8 44830000 */ mtc1 $v1, $f0
/* 387BC 8005D3BC 00000000 */ nop
/* 387C0 8005D3C0 46800020 */ cvt.s.w $f0, $f0
/* 387C4 8005D3C4 E7A000F8 */ swc1 $f0, 0xf8($sp)
/* 387C8 8005D3C8 E7A000EC */ swc1 $f0, 0xec($sp)
/* 387CC 8005D3CC E7A000E0 */ swc1 $f0, 0xe0($sp)
/* 387D0 8005D3D0 E7A000D4 */ swc1 $f0, 0xd4($sp)
/* 387D4 8005D3D4 AFA20010 */ sw $v0, 0x10($sp)
/* 387D8 8005D3D8 3C02800A */ lui $v0, %hi(D_800A2050)
/* 387DC 8005D3DC 24422050 */ addiu $v0, $v0, %lo(D_800A2050)
/* 387E0 8005D3E0 AFA20014 */ sw $v0, 0x14($sp)
/* 387E4 8005D3E4 3C02800A */ lui $v0, %hi(D_800A2054)
/* 387E8 8005D3E8 24422054 */ addiu $v0, $v0, %lo(D_800A2054)
/* 387EC 8005D3EC 0C019E94 */ jal func_80067A50
/* 387F0 8005D3F0 AFA20018 */ sw $v0, 0x18($sp)
/* 387F4 8005D3F4 C6200048 */ lwc1 $f0, 0x48($s1)
/* 387F8 8005D3F8 C6220050 */ lwc1 $f2, 0x50($s1)
/* 387FC 8005D3FC 4600F001 */ sub.s $f0, $f30, $f0
/* 38800 8005D400 C7A801A8 */ lwc1 $f8, 0x1a8($sp)
/* 38804 8005D404 0200202D */ daddu $a0, $s0, $zero
/* 38808 8005D408 46024201 */ sub.s $f8, $f8, $f2
/* 3880C 8005D40C 44050000 */ mfc1 $a1, $f0
/* 38810 8005D410 C620004C */ lwc1 $f0, 0x4c($s1)
/* 38814 8005D414 44074000 */ mfc1 $a3, $f8
/* 38818 8005D418 3C02800A */ lui $v0, %hi(D_800A2040)
/* 3881C 8005D41C 24422040 */ addiu $v0, $v0, %lo(D_800A2040)
/* 38820 8005D420 AFA20010 */ sw $v0, 0x10($sp)
/* 38824 8005D424 4600D001 */ sub.s $f0, $f26, $f0
/* 38828 8005D428 3C02800A */ lui $v0, %hi(D_800A2044)
/* 3882C 8005D42C 24422044 */ addiu $v0, $v0, %lo(D_800A2044)
/* 38830 8005D430 AFA20014 */ sw $v0, 0x14($sp)
/* 38834 8005D434 44060000 */ mfc1 $a2, $f0
/* 38838 8005D438 3C02800A */ lui $v0, %hi(D_800A2048)
/* 3883C 8005D43C 24422048 */ addiu $v0, $v0, %lo(D_800A2048)
/* 38840 8005D440 0C019E94 */ jal func_80067A50
/* 38844 8005D444 AFA20018 */ sw $v0, 0x18($sp)
.L8005D448:
/* 38848 8005D448 86620000 */ lh $v0, ($s3)
/* 3884C 8005D44C 00021840 */ sll $v1, $v0, 1
/* 38850 8005D450 00621821 */ addu $v1, $v1, $v0
/* 38854 8005D454 00031880 */ sll $v1, $v1, 2
/* 38858 8005D458 02E31821 */ addu $v1, $s7, $v1
/* 3885C 8005D45C AE430000 */ sw $v1, ($s2)
/* 38860 8005D460 86620002 */ lh $v0, 2($s3)
/* 38864 8005D464 00022840 */ sll $a1, $v0, 1
/* 38868 8005D468 00A22821 */ addu $a1, $a1, $v0
/* 3886C 8005D46C 00052880 */ sll $a1, $a1, 2
/* 38870 8005D470 02E52821 */ addu $a1, $s7, $a1
/* 38874 8005D474 AE450004 */ sw $a1, 4($s2)
/* 38878 8005D478 86620004 */ lh $v0, 4($s3)
/* 3887C 8005D47C 00022040 */ sll $a0, $v0, 1
/* 38880 8005D480 00822021 */ addu $a0, $a0, $v0
/* 38884 8005D484 00042080 */ sll $a0, $a0, 2
/* 38888 8005D488 02E42021 */ addu $a0, $s7, $a0
/* 3888C 8005D48C AE440008 */ sw $a0, 8($s2)
/* 38890 8005D490 C4800000 */ lwc1 $f0, ($a0)
/* 38894 8005D494 C4620000 */ lwc1 $f2, ($v1)
/* 38898 8005D498 46020001 */ sub.s $f0, $f0, $f2
/* 3889C 8005D49C E640000C */ swc1 $f0, 0xc($s2)
/* 388A0 8005D4A0 C4800004 */ lwc1 $f0, 4($a0)
/* 388A4 8005D4A4 C4620004 */ lwc1 $f2, 4($v1)
/* 388A8 8005D4A8 46020001 */ sub.s $f0, $f0, $f2
/* 388AC 8005D4AC E6400010 */ swc1 $f0, 0x10($s2)
/* 388B0 8005D4B0 C4800008 */ lwc1 $f0, 8($a0)
/* 388B4 8005D4B4 C4620008 */ lwc1 $f2, 8($v1)
/* 388B8 8005D4B8 46020001 */ sub.s $f0, $f0, $f2
/* 388BC 8005D4BC E6400014 */ swc1 $f0, 0x14($s2)
/* 388C0 8005D4C0 C4600000 */ lwc1 $f0, ($v1)
/* 388C4 8005D4C4 C4A20000 */ lwc1 $f2, ($a1)
/* 388C8 8005D4C8 46020001 */ sub.s $f0, $f0, $f2
/* 388CC 8005D4CC E6400018 */ swc1 $f0, 0x18($s2)
/* 388D0 8005D4D0 C4600004 */ lwc1 $f0, 4($v1)
/* 388D4 8005D4D4 C4A20004 */ lwc1 $f2, 4($a1)
/* 388D8 8005D4D8 46020001 */ sub.s $f0, $f0, $f2
/* 388DC 8005D4DC E640001C */ swc1 $f0, 0x1c($s2)
/* 388E0 8005D4E0 C4600008 */ lwc1 $f0, 8($v1)
/* 388E4 8005D4E4 C4A20008 */ lwc1 $f2, 8($a1)
/* 388E8 8005D4E8 46020001 */ sub.s $f0, $f0, $f2
/* 388EC 8005D4EC E6400020 */ swc1 $f0, 0x20($s2)
/* 388F0 8005D4F0 C4A00000 */ lwc1 $f0, ($a1)
/* 388F4 8005D4F4 C4820000 */ lwc1 $f2, ($a0)
/* 388F8 8005D4F8 46020001 */ sub.s $f0, $f0, $f2
/* 388FC 8005D4FC E6400024 */ swc1 $f0, 0x24($s2)
/* 38900 8005D500 C4A00004 */ lwc1 $f0, 4($a1)
/* 38904 8005D504 C4820004 */ lwc1 $f2, 4($a0)
/* 38908 8005D508 46020001 */ sub.s $f0, $f0, $f2
/* 3890C 8005D50C E6400028 */ swc1 $f0, 0x28($s2)
/* 38910 8005D510 C4A00008 */ lwc1 $f0, 8($a1)
/* 38914 8005D514 C4820008 */ lwc1 $f2, 8($a0)
/* 38918 8005D518 46020001 */ sub.s $f0, $f0, $f2
/* 3891C 8005D51C E640002C */ swc1 $f0, 0x2c($s2)
/* 38920 8005D520 C6800000 */ lwc1 $f0, ($s4)
/* 38924 8005D524 E6400030 */ swc1 $f0, 0x30($s2)
/* 38928 8005D528 C6800004 */ lwc1 $f0, 4($s4)
/* 3892C 8005D52C 27A40100 */ addiu $a0, $sp, 0x100
/* 38930 8005D530 E6400034 */ swc1 $f0, 0x34($s2)
/* 38934 8005D534 C6800008 */ lwc1 $f0, 8($s4)
/* 38938 8005D538 02E0282D */ daddu $a1, $s7, $zero
/* 3893C 8005D53C 0C016ECD */ jal func_8005BB34
/* 38940 8005D540 E6400038 */ swc1 $f0, 0x38($s2)
/* 38944 8005D544 0040182D */ daddu $v1, $v0, $zero
/* 38948 8005D548 14600008 */ bnez $v1, .L8005D56C
/* 3894C 8005D54C 00000000 */ nop
/* 38950 8005D550 2694000C */ addiu $s4, $s4, 0xc
/* 38954 8005D554 26B50001 */ addiu $s5, $s5, 1
/* 38958 8005D558 2AA2000C */ slti $v0, $s5, 0xc
/* 3895C 8005D55C 1440FFBA */ bnez $v0, .L8005D448
/* 38960 8005D560 26730006 */ addiu $s3, $s3, 6
/* 38964 8005D564 5060007C */ beql $v1, $zero, .L8005D758
/* 38968 8005D568 27DE0001 */ addiu $fp, $fp, 1
.L8005D56C:
/* 3896C 8005D56C 3C03800A */ lui $v1, %hi(D_800A2064)
/* 38970 8005D570 24632064 */ addiu $v1, $v1, %lo(D_800A2064)
/* 38974 8005D574 8FA901C4 */ lw $t1, 0x1c4($sp)
/* 38978 8005D578 C4620000 */ lwc1 $f2, ($v1)
/* 3897C 8005D57C C5200000 */ lwc1 $f0, ($t1)
/* 38980 8005D580 4600103C */ c.lt.s $f2, $f0
/* 38984 8005D584 00000000 */ nop
/* 38988 8005D588 45020073 */ bc1fl .L8005D758
/* 3898C 8005D58C 27DE0001 */ addiu $fp, $fp, 1
/* 38990 8005D590 24020001 */ addiu $v0, $zero, 1
/* 38994 8005D594 AFBE0140 */ sw $fp, 0x140($sp)
/* 38998 8005D598 12C2000F */ beq $s6, $v0, .L8005D5D8
/* 3899C 8005D59C E5220000 */ swc1 $f2, ($t1)
/* 389A0 8005D5A0 2AC20002 */ slti $v0, $s6, 2
/* 389A4 8005D5A4 10400005 */ beqz $v0, .L8005D5BC
/* 389A8 8005D5A8 24020002 */ addiu $v0, $zero, 2
/* 389AC 8005D5AC 12C00007 */ beqz $s6, .L8005D5CC
/* 389B0 8005D5B0 00000000 */ nop
/* 389B4 8005D5B4 0801757B */ j .L8005D5EC
/* 389B8 8005D5B8 E7B40010 */ swc1 $f20, 0x10($sp)
.L8005D5BC:
/* 389BC 8005D5BC 12C20009 */ beq $s6, $v0, .L8005D5E4
/* 389C0 8005D5C0 00000000 */ nop
/* 389C4 8005D5C4 0801757B */ j .L8005D5EC
/* 389C8 8005D5C8 E7B40010 */ swc1 $f20, 0x10($sp)
.L8005D5CC:
/* 389CC 8005D5CC C4760000 */ lwc1 $f22, ($v1)
/* 389D0 8005D5D0 0801757A */ j .L8005D5E8
/* 389D4 8005D5D4 4600B606 */ mov.s $f24, $f22
.L8005D5D8:
/* 389D8 8005D5D8 C4780000 */ lwc1 $f24, ($v1)
/* 389DC 8005D5DC 0801757B */ j .L8005D5EC
/* 389E0 8005D5E0 E7B40010 */ swc1 $f20, 0x10($sp)
.L8005D5E4:
/* 389E4 8005D5E4 C4760000 */ lwc1 $f22, ($v1)
.L8005D5E8:
/* 389E8 8005D5E8 E7B40010 */ swc1 $f20, 0x10($sp)
.L8005D5EC:
/* 389EC 8005D5EC 8E250060 */ lw $a1, 0x60($s1)
/* 389F0 8005D5F0 4406E000 */ mfc1 $a2, $f28
/* 389F4 8005D5F4 4407A000 */ mfc1 $a3, $f20
/* 389F8 8005D5F8 0C019EC0 */ jal func_80067B00
/* 389FC 8005D5FC 27A40020 */ addiu $a0, $sp, 0x20
/* 38A00 8005D600 27B00060 */ addiu $s0, $sp, 0x60
/* 38A04 8005D604 E7BC0010 */ swc1 $f28, 0x10($sp)
/* 38A08 8005D608 8E250068 */ lw $a1, 0x68($s1)
/* 38A0C 8005D60C 4406A000 */ mfc1 $a2, $f20
/* 38A10 8005D610 4407A000 */ mfc1 $a3, $f20
/* 38A14 8005D614 0C019EC0 */ jal func_80067B00
/* 38A18 8005D618 0200202D */ daddu $a0, $s0, $zero
/* 38A1C 8005D61C 27A40020 */ addiu $a0, $sp, 0x20
/* 38A20 8005D620 0200282D */ daddu $a1, $s0, $zero
/* 38A24 8005D624 0C019D78 */ jal func_800675E0
/* 38A28 8005D628 0080302D */ daddu $a2, $a0, $zero
/* 38A2C 8005D62C E7B40010 */ swc1 $f20, 0x10($sp)
/* 38A30 8005D630 8E250064 */ lw $a1, 0x64($s1)
/* 38A34 8005D634 4406A000 */ mfc1 $a2, $f20
/* 38A38 8005D638 4407E000 */ mfc1 $a3, $f28
/* 38A3C 8005D63C 0C019EC0 */ jal func_80067B00
/* 38A40 8005D640 0200202D */ daddu $a0, $s0, $zero
/* 38A44 8005D644 27A40020 */ addiu $a0, $sp, 0x20
/* 38A48 8005D648 0200282D */ daddu $a1, $s0, $zero
/* 38A4C 8005D64C 0C019D78 */ jal func_800675E0
/* 38A50 8005D650 0080302D */ daddu $a2, $a0, $zero
/* 38A54 8005D654 8E250048 */ lw $a1, 0x48($s1)
/* 38A58 8005D658 8E26004C */ lw $a2, 0x4c($s1)
/* 38A5C 8005D65C 8E270050 */ lw $a3, 0x50($s1)
/* 38A60 8005D660 0C019E38 */ jal func_800678E0
/* 38A64 8005D664 0200202D */ daddu $a0, $s0, $zero
/* 38A68 8005D668 27A40020 */ addiu $a0, $sp, 0x20
/* 38A6C 8005D66C 0200282D */ daddu $a1, $s0, $zero
/* 38A70 8005D670 0C019D78 */ jal func_800675E0
/* 38A74 8005D674 0080302D */ daddu $a2, $a0, $zero
/* 38A78 8005D678 8FA901B8 */ lw $t1, 0x1b8($sp)
/* 38A7C 8005D67C 3C05800A */ lui $a1, %hi(D_800A2058)
/* 38A80 8005D680 8CA52058 */ lw $a1, %lo(D_800A2058)($a1)
/* 38A84 8005D684 3C06800A */ lui $a2, %hi(D_800A205C)
/* 38A88 8005D688 8CC6205C */ lw $a2, %lo(D_800A205C)($a2)
/* 38A8C 8005D68C 3C07800A */ lui $a3, %hi(D_800A2060)
/* 38A90 8005D690 8CE72060 */ lw $a3, %lo(D_800A2060)($a3)
/* 38A94 8005D694 AFA90010 */ sw $t1, 0x10($sp)
/* 38A98 8005D698 8FA901BC */ lw $t1, 0x1bc($sp)
/* 38A9C 8005D69C AFA90014 */ sw $t1, 0x14($sp)
/* 38AA0 8005D6A0 8FA901C0 */ lw $t1, 0x1c0($sp)
/* 38AA4 8005D6A4 27A40020 */ addiu $a0, $sp, 0x20
/* 38AA8 8005D6A8 0C019E94 */ jal func_80067A50
/* 38AAC 8005D6AC AFA90018 */ sw $t1, 0x18($sp)
/* 38AB0 8005D6B0 3C10800A */ lui $s0, %hi(D_800A2068)
/* 38AB4 8005D6B4 26102068 */ addiu $s0, $s0, %lo(D_800A2068)
/* 38AB8 8005D6B8 C6040000 */ lwc1 $f4, ($s0)
/* 38ABC 8005D6BC 46042102 */ mul.s $f4, $f4, $f4
/* 38AC0 8005D6C0 00000000 */ nop
/* 38AC4 8005D6C4 3C11800A */ lui $s1, %hi(D_800A206C)
/* 38AC8 8005D6C8 2631206C */ addiu $s1, $s1, %lo(D_800A206C)
/* 38ACC 8005D6CC C6220000 */ lwc1 $f2, ($s1)
/* 38AD0 8005D6D0 46021082 */ mul.s $f2, $f2, $f2
/* 38AD4 8005D6D4 00000000 */ nop
/* 38AD8 8005D6D8 3C13800A */ lui $s3, %hi(D_800A2070)
/* 38ADC 8005D6DC 26732070 */ addiu $s3, $s3, %lo(D_800A2070)
/* 38AE0 8005D6E0 C6600000 */ lwc1 $f0, ($s3)
/* 38AE4 8005D6E4 46000002 */ mul.s $f0, $f0, $f0
/* 38AE8 8005D6E8 00000000 */ nop
/* 38AEC 8005D6EC 46022100 */ add.s $f4, $f4, $f2
/* 38AF0 8005D6F0 46002300 */ add.s $f12, $f4, $f0
/* 38AF4 8005D6F4 46006084 */ sqrt.s $f2, $f12
/* 38AF8 8005D6F8 46021032 */ c.eq.s $f2, $f2
/* 38AFC 8005D6FC 00000000 */ nop
/* 38B00 8005D700 45010004 */ bc1t .L8005D714
/* 38B04 8005D704 00000000 */ nop
/* 38B08 8005D708 0C0187B0 */ jal func_80061EC0
/* 38B0C 8005D70C 00000000 */ nop
/* 38B10 8005D710 46000086 */ mov.s $f2, $f0
.L8005D714:
/* 38B14 8005D714 C6000000 */ lwc1 $f0, ($s0)
/* 38B18 8005D718 4602E083 */ div.s $f2, $f28, $f2
/* 38B1C 8005D71C 46020002 */ mul.s $f0, $f0, $f2
/* 38B20 8005D720 00000000 */ nop
/* 38B24 8005D724 8FA901C8 */ lw $t1, 0x1c8($sp)
/* 38B28 8005D728 E5200000 */ swc1 $f0, ($t1)
/* 38B2C 8005D72C C6200000 */ lwc1 $f0, ($s1)
/* 38B30 8005D730 46020002 */ mul.s $f0, $f0, $f2
/* 38B34 8005D734 00000000 */ nop
/* 38B38 8005D738 8FA901CC */ lw $t1, 0x1cc($sp)
/* 38B3C 8005D73C E5200000 */ swc1 $f0, ($t1)
/* 38B40 8005D740 C6600000 */ lwc1 $f0, ($s3)
/* 38B44 8005D744 46020002 */ mul.s $f0, $f0, $f2
/* 38B48 8005D748 00000000 */ nop
/* 38B4C 8005D74C 8FA901D0 */ lw $t1, 0x1d0($sp)
/* 38B50 8005D750 E5200000 */ swc1 $f0, ($t1)
/* 38B54 8005D754 27DE0001 */ addiu $fp, $fp, 1
.L8005D758:
/* 38B58 8005D758 2BC2001E */ slti $v0, $fp, 0x1e
/* 38B5C 8005D75C 1440FEA6 */ bnez $v0, .L8005D1F8
/* 38B60 8005D760 00000000 */ nop
/* 38B64 8005D764 8FA20140 */ lw $v0, 0x140($sp)
/* 38B68 8005D768 8FBF016C */ lw $ra, 0x16c($sp)
/* 38B6C 8005D76C 8FBE0168 */ lw $fp, 0x168($sp)
/* 38B70 8005D770 8FB70164 */ lw $s7, 0x164($sp)
/* 38B74 8005D774 8FB60160 */ lw $s6, 0x160($sp)
/* 38B78 8005D778 8FB5015C */ lw $s5, 0x15c($sp)
/* 38B7C 8005D77C 8FB40158 */ lw $s4, 0x158($sp)
/* 38B80 8005D780 8FB30154 */ lw $s3, 0x154($sp)
/* 38B84 8005D784 8FB20150 */ lw $s2, 0x150($sp)
/* 38B88 8005D788 8FB1014C */ lw $s1, 0x14c($sp)
/* 38B8C 8005D78C 8FB00148 */ lw $s0, 0x148($sp)
/* 38B90 8005D790 D7BE0198 */ ldc1 $f30, 0x198($sp)
/* 38B94 8005D794 D7BC0190 */ ldc1 $f28, 0x190($sp)
/* 38B98 8005D798 D7BA0188 */ ldc1 $f26, 0x188($sp)
/* 38B9C 8005D79C D7B80180 */ ldc1 $f24, 0x180($sp)
/* 38BA0 8005D7A0 D7B60178 */ ldc1 $f22, 0x178($sp)
/* 38BA4 8005D7A4 D7B40170 */ ldc1 $f20, 0x170($sp)
/* 38BA8 8005D7A8 03E00008 */ jr $ra
/* 38BAC 8005D7AC 27BD01A0 */ addiu $sp, $sp, 0x1a0