papermario/asm/nonmatchings/code_362a0_len_2f70/test_ray_entities.s
2020-11-29 02:13:07 -05:00

455 lines
23 KiB
ArmAsm

.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
glabel test_ray_entities
/* 38848 8005D448 27BDFE60 */ addiu $sp, $sp, -0x1a0
/* 3884C 8005D44C 44800000 */ mtc1 $zero, $f0
/* 38850 8005D450 2409FFFF */ addiu $t1, $zero, -1
/* 38854 8005D454 AFA90140 */ sw $t1, 0x140($sp)
/* 38858 8005D458 8FA901C4 */ lw $t1, 0x1c4($sp)
/* 3885C 8005D45C AFA701AC */ sw $a3, 0x1ac($sp)
/* 38860 8005D460 C7A801AC */ lwc1 $f8, 0x1ac($sp)
/* 38864 8005D464 F7BE0198 */ sdc1 $f30, 0x198($sp)
/* 38868 8005D468 46006786 */ mov.s $f30, $f12
/* 3886C 8005D46C F7BA0188 */ sdc1 $f26, 0x188($sp)
/* 38870 8005D470 46007686 */ mov.s $f26, $f14
/* 38874 8005D474 AFB60160 */ sw $s6, 0x160($sp)
/* 38878 8005D478 0000B02D */ daddu $s6, $zero, $zero
/* 3887C 8005D47C AFB20150 */ sw $s2, 0x150($sp)
/* 38880 8005D480 27B20100 */ addiu $s2, $sp, 0x100
/* 38884 8005D484 AFBF016C */ sw $ra, 0x16c($sp)
/* 38888 8005D488 AFBE0168 */ sw $fp, 0x168($sp)
/* 3888C 8005D48C AFB70164 */ sw $s7, 0x164($sp)
/* 38890 8005D490 AFB5015C */ sw $s5, 0x15c($sp)
/* 38894 8005D494 AFB40158 */ sw $s4, 0x158($sp)
/* 38898 8005D498 AFB30154 */ sw $s3, 0x154($sp)
/* 3889C 8005D49C AFB1014C */ sw $s1, 0x14c($sp)
/* 388A0 8005D4A0 AFB00148 */ sw $s0, 0x148($sp)
/* 388A4 8005D4A4 F7BC0190 */ sdc1 $f28, 0x190($sp)
/* 388A8 8005D4A8 F7B80180 */ sdc1 $f24, 0x180($sp)
/* 388AC 8005D4AC F7B60178 */ sdc1 $f22, 0x178($sp)
/* 388B0 8005D4B0 F7B40170 */ sdc1 $f20, 0x170($sp)
/* 388B4 8005D4B4 AFA601A8 */ sw $a2, 0x1a8($sp)
/* 388B8 8005D4B8 C5360000 */ lwc1 $f22, ($t1)
/* 388BC 8005D4BC 46004032 */ c.eq.s $f8, $f0
/* 388C0 8005D4C0 00000000 */ nop
/* 388C4 8005D4C4 4500000E */ bc1f .L8005D500
/* 388C8 8005D4C8 4600B606 */ mov.s $f24, $f22
/* 388CC 8005D4CC C7A801B4 */ lwc1 $f8, 0x1b4($sp)
/* 388D0 8005D4D0 46004032 */ c.eq.s $f8, $f0
/* 388D4 8005D4D4 00000000 */ nop
/* 388D8 8005D4D8 45000009 */ bc1f .L8005D500
/* 388DC 8005D4DC 00000000 */ nop
/* 388E0 8005D4E0 C7A801B0 */ lwc1 $f8, 0x1b0($sp)
/* 388E4 8005D4E4 4600403C */ c.lt.s $f8, $f0
/* 388E8 8005D4E8 00000000 */ nop
/* 388EC 8005D4EC 45000005 */ bc1f .L8005D504
/* 388F0 8005D4F0 00000000 */ nop
/* 388F4 8005D4F4 46000586 */ mov.s $f22, $f0
/* 388F8 8005D4F8 08017547 */ j .L8005D51C
/* 388FC 8005D4FC 24160001 */ addiu $s6, $zero, 1
.L8005D500:
/* 38900 8005D500 C7A801B0 */ lwc1 $f8, 0x1b0($sp)
.L8005D504:
/* 38904 8005D504 46004032 */ c.eq.s $f8, $f0
/* 38908 8005D508 00000000 */ nop
/* 3890C 8005D50C 45000004 */ bc1f .L8005D520
/* 38910 8005D510 0000F02D */ daddu $fp, $zero, $zero
/* 38914 8005D514 46000606 */ mov.s $f24, $f0
/* 38918 8005D518 24160002 */ addiu $s6, $zero, 2
.L8005D51C:
/* 3891C 8005D51C 0000F02D */ daddu $fp, $zero, $zero
.L8005D520:
/* 38920 8005D520 27B700A0 */ addiu $s7, $sp, 0xa0
/* 38924 8005D524 4480A000 */ mtc1 $zero, $f20
/* 38928 8005D528 3C013F80 */ lui $at, 0x3f80
/* 3892C 8005D52C 4481E000 */ mtc1 $at, $f28
/* 38930 8005D530 3C01BF80 */ lui $at, %hi(D_BF804254)
/* 38934 8005D534 44810000 */ mtc1 $at, $f0
/* 38938 8005D538 24020001 */ addiu $v0, $zero, 1
/* 3893C 8005D53C A642003C */ sh $v0, 0x3c($s2)
/* 38940 8005D540 3C01800A */ lui $at, %hi(D_800A4254)
/* 38944 8005D544 E4204254 */ swc1 $f0, %lo(D_BF804254)($at)
.L8005D548:
/* 38948 8005D548 0C04417A */ jal get_entity_by_index
/* 3894C 8005D54C 03C0202D */ daddu $a0, $fp, $zero
/* 38950 8005D550 0040882D */ daddu $s1, $v0, $zero
/* 38954 8005D554 52200154 */ beql $s1, $zero, .L8005DAA8
/* 38958 8005D558 27DE0001 */ addiu $fp, $fp, 1
/* 3895C 8005D55C 3C034000 */ lui $v1, 0x4000
/* 38960 8005D560 8E220000 */ lw $v0, ($s1)
/* 38964 8005D564 34630020 */ ori $v1, $v1, 0x20
/* 38968 8005D568 00431024 */ and $v0, $v0, $v1
/* 3896C 8005D56C 5440014E */ bnel $v0, $zero, .L8005DAA8
/* 38970 8005D570 27DE0001 */ addiu $fp, $fp, 1
/* 38974 8005D574 C62600B0 */ lwc1 $f6, 0xb0($s1)
/* 38978 8005D578 4606B080 */ add.s $f2, $f22, $f6
/* 3897C 8005D57C C6240048 */ lwc1 $f4, 0x48($s1)
/* 38980 8005D580 46022000 */ add.s $f0, $f4, $f2
/* 38984 8005D584 461E003C */ c.lt.s $f0, $f30
/* 38988 8005D588 00000000 */ nop
/* 3898C 8005D58C 45030146 */ bc1tl .L8005DAA8
/* 38990 8005D590 27DE0001 */ addiu $fp, $fp, 1
/* 38994 8005D594 46022001 */ sub.s $f0, $f4, $f2
/* 38998 8005D598 4600F03C */ c.lt.s $f30, $f0
/* 3899C 8005D59C 00000000 */ nop
/* 389A0 8005D5A0 45030141 */ bc1tl .L8005DAA8
/* 389A4 8005D5A4 27DE0001 */ addiu $fp, $fp, 1
/* 389A8 8005D5A8 C6240050 */ lwc1 $f4, 0x50($s1)
/* 389AC 8005D5AC 46022000 */ add.s $f0, $f4, $f2
/* 389B0 8005D5B0 C7A801A8 */ lwc1 $f8, 0x1a8($sp)
/* 389B4 8005D5B4 4608003C */ c.lt.s $f0, $f8
/* 389B8 8005D5B8 00000000 */ nop
/* 389BC 8005D5BC 4503013A */ bc1tl .L8005DAA8
/* 389C0 8005D5C0 27DE0001 */ addiu $fp, $fp, 1
/* 389C4 8005D5C4 46022001 */ sub.s $f0, $f4, $f2
/* 389C8 8005D5C8 4600403C */ c.lt.s $f8, $f0
/* 389CC 8005D5CC 00000000 */ nop
/* 389D0 8005D5D0 45030135 */ bc1tl .L8005DAA8
/* 389D4 8005D5D4 27DE0001 */ addiu $fp, $fp, 1
/* 389D8 8005D5D8 06C00016 */ bltz $s6, .L8005D634
/* 389DC 8005D5DC 2AC20002 */ slti $v0, $s6, 2
/* 389E0 8005D5E0 54400006 */ bnel $v0, $zero, .L8005D5FC
/* 389E4 8005D5E4 46063000 */ add.s $f0, $f6, $f6
/* 389E8 8005D5E8 24020002 */ addiu $v0, $zero, 2
/* 389EC 8005D5EC 12C20005 */ beq $s6, $v0, .L8005D604
/* 389F0 8005D5F0 26300070 */ addiu $s0, $s1, 0x70
/* 389F4 8005D5F4 0801758F */ j .L8005D63C
/* 389F8 8005D5F8 0200202D */ daddu $a0, $s0, $zero
.L8005D5FC:
/* 389FC 8005D5FC 08017582 */ j .L8005D608
/* 38A00 8005D600 4600C100 */ add.s $f4, $f24, $f0
.L8005D604:
/* 38A04 8005D604 46063100 */ add.s $f4, $f6, $f6
.L8005D608:
/* 38A08 8005D608 C622004C */ lwc1 $f2, 0x4c($s1)
/* 38A0C 8005D60C 46041000 */ add.s $f0, $f2, $f4
/* 38A10 8005D610 461A003C */ c.lt.s $f0, $f26
/* 38A14 8005D614 00000000 */ nop
/* 38A18 8005D618 45030123 */ bc1tl .L8005DAA8
/* 38A1C 8005D61C 27DE0001 */ addiu $fp, $fp, 1
/* 38A20 8005D620 46041001 */ sub.s $f0, $f2, $f4
/* 38A24 8005D624 4600D03C */ c.lt.s $f26, $f0
/* 38A28 8005D628 00000000 */ nop
/* 38A2C 8005D62C 4503011E */ bc1tl .L8005DAA8
/* 38A30 8005D630 27DE0001 */ addiu $fp, $fp, 1
.L8005D634:
/* 38A34 8005D634 26300070 */ addiu $s0, $s1, 0x70
/* 38A38 8005D638 0200202D */ daddu $a0, $s0, $zero
.L8005D63C:
/* 38A3C 8005D63C 0000A82D */ daddu $s5, $zero, $zero
/* 38A40 8005D640 3C148009 */ lui $s4, %hi(D_8008FFB8)
/* 38A44 8005D644 2694FFB8 */ addiu $s4, $s4, %lo(D_8008FFB8)
/* 38A48 8005D648 8FA501AC */ lw $a1, 0x1ac($sp)
/* 38A4C 8005D64C 8FA601B0 */ lw $a2, 0x1b0($sp)
/* 38A50 8005D650 8FA701B4 */ lw $a3, 0x1b4($sp)
/* 38A54 8005D654 9623000C */ lhu $v1, 0xc($s1)
/* 38A58 8005D658 96280010 */ lhu $t0, 0x10($s1)
/* 38A5C 8005D65C 3C138009 */ lui $s3, %hi(D_8008FF70)
/* 38A60 8005D660 2673FF70 */ addiu $s3, $s3, %lo(D_8008FF70)
/* 38A64 8005D664 E7B400C8 */ swc1 $f20, 0xc8($sp)
/* 38A68 8005D668 E7B400BC */ swc1 $f20, 0xbc($sp)
/* 38A6C 8005D66C E7B400B0 */ swc1 $f20, 0xb0($sp)
/* 38A70 8005D670 E7B400A4 */ swc1 $f20, 0xa4($sp)
/* 38A74 8005D674 00031C00 */ sll $v1, $v1, 0x10
/* 38A78 8005D678 00031403 */ sra $v0, $v1, 0x10
/* 38A7C 8005D67C 00031FC2 */ srl $v1, $v1, 0x1f
/* 38A80 8005D680 00431021 */ addu $v0, $v0, $v1
/* 38A84 8005D684 00021043 */ sra $v0, $v0, 1
/* 38A88 8005D688 44821000 */ mtc1 $v0, $f2
/* 38A8C 8005D68C 00000000 */ nop
/* 38A90 8005D690 468010A0 */ cvt.s.w $f2, $f2
/* 38A94 8005D694 00084400 */ sll $t0, $t0, 0x10
/* 38A98 8005D698 00081403 */ sra $v0, $t0, 0x10
/* 38A9C 8005D69C 000847C2 */ srl $t0, $t0, 0x1f
/* 38AA0 8005D6A0 00481021 */ addu $v0, $v0, $t0
/* 38AA4 8005D6A4 00021043 */ sra $v0, $v0, 1
/* 38AA8 8005D6A8 46001007 */ neg.s $f0, $f2
/* 38AAC 8005D6AC E7A000E8 */ swc1 $f0, 0xe8($sp)
/* 38AB0 8005D6B0 E7A000DC */ swc1 $f0, 0xdc($sp)
/* 38AB4 8005D6B4 E7A000B8 */ swc1 $f0, 0xb8($sp)
/* 38AB8 8005D6B8 E7A000AC */ swc1 $f0, 0xac($sp)
/* 38ABC 8005D6BC 44820000 */ mtc1 $v0, $f0
/* 38AC0 8005D6C0 00000000 */ nop
/* 38AC4 8005D6C4 46800020 */ cvt.s.w $f0, $f0
/* 38AC8 8005D6C8 E7A200F4 */ swc1 $f2, 0xf4($sp)
/* 38ACC 8005D6CC E7A200D0 */ swc1 $f2, 0xd0($sp)
/* 38AD0 8005D6D0 E7A200C4 */ swc1 $f2, 0xc4($sp)
/* 38AD4 8005D6D4 E7A200A0 */ swc1 $f2, 0xa0($sp)
/* 38AD8 8005D6D8 8623000E */ lh $v1, 0xe($s1)
/* 38ADC 8005D6DC 3C02800A */ lui $v0, %hi(D_800A423C)
/* 38AE0 8005D6E0 2442423C */ addiu $v0, $v0, %lo(D_800A423C)
/* 38AE4 8005D6E4 E7A000E4 */ swc1 $f0, 0xe4($sp)
/* 38AE8 8005D6E8 E7A000D8 */ swc1 $f0, 0xd8($sp)
/* 38AEC 8005D6EC E7A000B4 */ swc1 $f0, 0xb4($sp)
/* 38AF0 8005D6F0 E7A000A8 */ swc1 $f0, 0xa8($sp)
/* 38AF4 8005D6F4 46000007 */ neg.s $f0, $f0
/* 38AF8 8005D6F8 E7A000FC */ swc1 $f0, 0xfc($sp)
/* 38AFC 8005D6FC E7A000F0 */ swc1 $f0, 0xf0($sp)
/* 38B00 8005D700 E7A000CC */ swc1 $f0, 0xcc($sp)
/* 38B04 8005D704 E7A000C0 */ swc1 $f0, 0xc0($sp)
/* 38B08 8005D708 44830000 */ mtc1 $v1, $f0
/* 38B0C 8005D70C 00000000 */ nop
/* 38B10 8005D710 46800020 */ cvt.s.w $f0, $f0
/* 38B14 8005D714 E7A000F8 */ swc1 $f0, 0xf8($sp)
/* 38B18 8005D718 E7A000EC */ swc1 $f0, 0xec($sp)
/* 38B1C 8005D71C E7A000E0 */ swc1 $f0, 0xe0($sp)
/* 38B20 8005D720 E7A000D4 */ swc1 $f0, 0xd4($sp)
/* 38B24 8005D724 AFA20010 */ sw $v0, 0x10($sp)
/* 38B28 8005D728 3C02800A */ lui $v0, %hi(D_800A4240)
/* 38B2C 8005D72C 24424240 */ addiu $v0, $v0, %lo(D_800A4240)
/* 38B30 8005D730 AFA20014 */ sw $v0, 0x14($sp)
/* 38B34 8005D734 3C02800A */ lui $v0, %hi(D_800A4244)
/* 38B38 8005D738 24424244 */ addiu $v0, $v0, %lo(D_800A4244)
/* 38B3C 8005D73C 0C019E9C */ jal guMtxXFMF
/* 38B40 8005D740 AFA20018 */ sw $v0, 0x18($sp)
/* 38B44 8005D744 C6200048 */ lwc1 $f0, 0x48($s1)
/* 38B48 8005D748 C6220050 */ lwc1 $f2, 0x50($s1)
/* 38B4C 8005D74C 4600F001 */ sub.s $f0, $f30, $f0
/* 38B50 8005D750 C7A801A8 */ lwc1 $f8, 0x1a8($sp)
/* 38B54 8005D754 0200202D */ daddu $a0, $s0, $zero
/* 38B58 8005D758 46024201 */ sub.s $f8, $f8, $f2
/* 38B5C 8005D75C 44050000 */ mfc1 $a1, $f0
/* 38B60 8005D760 C620004C */ lwc1 $f0, 0x4c($s1)
/* 38B64 8005D764 44074000 */ mfc1 $a3, $f8
/* 38B68 8005D768 3C02800A */ lui $v0, %hi(D_800A4230)
/* 38B6C 8005D76C 24424230 */ addiu $v0, $v0, %lo(D_800A4230)
/* 38B70 8005D770 AFA20010 */ sw $v0, 0x10($sp)
/* 38B74 8005D774 4600D001 */ sub.s $f0, $f26, $f0
/* 38B78 8005D778 3C02800A */ lui $v0, %hi(D_800A4234)
/* 38B7C 8005D77C 24424234 */ addiu $v0, $v0, %lo(D_800A4234)
/* 38B80 8005D780 AFA20014 */ sw $v0, 0x14($sp)
/* 38B84 8005D784 44060000 */ mfc1 $a2, $f0
/* 38B88 8005D788 3C02800A */ lui $v0, %hi(D_800A4238)
/* 38B8C 8005D78C 24424238 */ addiu $v0, $v0, %lo(D_800A4238)
/* 38B90 8005D790 0C019E9C */ jal guMtxXFMF
/* 38B94 8005D794 AFA20018 */ sw $v0, 0x18($sp)
.L8005D798:
/* 38B98 8005D798 86620000 */ lh $v0, ($s3)
/* 38B9C 8005D79C 00021840 */ sll $v1, $v0, 1
/* 38BA0 8005D7A0 00621821 */ addu $v1, $v1, $v0
/* 38BA4 8005D7A4 00031880 */ sll $v1, $v1, 2
/* 38BA8 8005D7A8 02E31821 */ addu $v1, $s7, $v1
/* 38BAC 8005D7AC AE430000 */ sw $v1, ($s2)
/* 38BB0 8005D7B0 86620002 */ lh $v0, 2($s3)
/* 38BB4 8005D7B4 00022840 */ sll $a1, $v0, 1
/* 38BB8 8005D7B8 00A22821 */ addu $a1, $a1, $v0
/* 38BBC 8005D7BC 00052880 */ sll $a1, $a1, 2
/* 38BC0 8005D7C0 02E52821 */ addu $a1, $s7, $a1
/* 38BC4 8005D7C4 AE450004 */ sw $a1, 4($s2)
/* 38BC8 8005D7C8 86620004 */ lh $v0, 4($s3)
/* 38BCC 8005D7CC 00022040 */ sll $a0, $v0, 1
/* 38BD0 8005D7D0 00822021 */ addu $a0, $a0, $v0
/* 38BD4 8005D7D4 00042080 */ sll $a0, $a0, 2
/* 38BD8 8005D7D8 02E42021 */ addu $a0, $s7, $a0
/* 38BDC 8005D7DC AE440008 */ sw $a0, 8($s2)
/* 38BE0 8005D7E0 C4800000 */ lwc1 $f0, ($a0)
/* 38BE4 8005D7E4 C4620000 */ lwc1 $f2, ($v1)
/* 38BE8 8005D7E8 46020001 */ sub.s $f0, $f0, $f2
/* 38BEC 8005D7EC E640000C */ swc1 $f0, 0xc($s2)
/* 38BF0 8005D7F0 C4800004 */ lwc1 $f0, 4($a0)
/* 38BF4 8005D7F4 C4620004 */ lwc1 $f2, 4($v1)
/* 38BF8 8005D7F8 46020001 */ sub.s $f0, $f0, $f2
/* 38BFC 8005D7FC E6400010 */ swc1 $f0, 0x10($s2)
/* 38C00 8005D800 C4800008 */ lwc1 $f0, 8($a0)
/* 38C04 8005D804 C4620008 */ lwc1 $f2, 8($v1)
/* 38C08 8005D808 46020001 */ sub.s $f0, $f0, $f2
/* 38C0C 8005D80C E6400014 */ swc1 $f0, 0x14($s2)
/* 38C10 8005D810 C4600000 */ lwc1 $f0, ($v1)
/* 38C14 8005D814 C4A20000 */ lwc1 $f2, ($a1)
/* 38C18 8005D818 46020001 */ sub.s $f0, $f0, $f2
/* 38C1C 8005D81C E6400018 */ swc1 $f0, 0x18($s2)
/* 38C20 8005D820 C4600004 */ lwc1 $f0, 4($v1)
/* 38C24 8005D824 C4A20004 */ lwc1 $f2, 4($a1)
/* 38C28 8005D828 46020001 */ sub.s $f0, $f0, $f2
/* 38C2C 8005D82C E640001C */ swc1 $f0, 0x1c($s2)
/* 38C30 8005D830 C4600008 */ lwc1 $f0, 8($v1)
/* 38C34 8005D834 C4A20008 */ lwc1 $f2, 8($a1)
/* 38C38 8005D838 46020001 */ sub.s $f0, $f0, $f2
/* 38C3C 8005D83C E6400020 */ swc1 $f0, 0x20($s2)
/* 38C40 8005D840 C4A00000 */ lwc1 $f0, ($a1)
/* 38C44 8005D844 C4820000 */ lwc1 $f2, ($a0)
/* 38C48 8005D848 46020001 */ sub.s $f0, $f0, $f2
/* 38C4C 8005D84C E6400024 */ swc1 $f0, 0x24($s2)
/* 38C50 8005D850 C4A00004 */ lwc1 $f0, 4($a1)
/* 38C54 8005D854 C4820004 */ lwc1 $f2, 4($a0)
/* 38C58 8005D858 46020001 */ sub.s $f0, $f0, $f2
/* 38C5C 8005D85C E6400028 */ swc1 $f0, 0x28($s2)
/* 38C60 8005D860 C4A00008 */ lwc1 $f0, 8($a1)
/* 38C64 8005D864 C4820008 */ lwc1 $f2, 8($a0)
/* 38C68 8005D868 46020001 */ sub.s $f0, $f0, $f2
/* 38C6C 8005D86C E640002C */ swc1 $f0, 0x2c($s2)
/* 38C70 8005D870 C6800000 */ lwc1 $f0, ($s4)
/* 38C74 8005D874 E6400030 */ swc1 $f0, 0x30($s2)
/* 38C78 8005D878 C6800004 */ lwc1 $f0, 4($s4)
/* 38C7C 8005D87C 27A40100 */ addiu $a0, $sp, 0x100
/* 38C80 8005D880 E6400034 */ swc1 $f0, 0x34($s2)
/* 38C84 8005D884 C6800008 */ lwc1 $f0, 8($s4)
/* 38C88 8005D888 02E0282D */ daddu $a1, $s7, $zero
/* 38C8C 8005D88C 0C016FA1 */ jal test_ray_triangle_general
/* 38C90 8005D890 E6400038 */ swc1 $f0, 0x38($s2)
/* 38C94 8005D894 0040182D */ daddu $v1, $v0, $zero
/* 38C98 8005D898 14600008 */ bnez $v1, .L8005D8BC
/* 38C9C 8005D89C 00000000 */ nop
/* 38CA0 8005D8A0 2694000C */ addiu $s4, $s4, 0xc
/* 38CA4 8005D8A4 26B50001 */ addiu $s5, $s5, 1
/* 38CA8 8005D8A8 2AA2000C */ slti $v0, $s5, 0xc
/* 38CAC 8005D8AC 1440FFBA */ bnez $v0, .L8005D798
/* 38CB0 8005D8B0 26730006 */ addiu $s3, $s3, 6
/* 38CB4 8005D8B4 5060007C */ beql $v1, $zero, .L8005DAA8
/* 38CB8 8005D8B8 27DE0001 */ addiu $fp, $fp, 1
.L8005D8BC:
/* 38CBC 8005D8BC 3C03800A */ lui $v1, %hi(D_800A4254)
/* 38CC0 8005D8C0 24634254 */ addiu $v1, $v1, %lo(D_800A4254)
/* 38CC4 8005D8C4 8FA901C4 */ lw $t1, 0x1c4($sp)
/* 38CC8 8005D8C8 C4620000 */ lwc1 $f2, ($v1)
/* 38CCC 8005D8CC C5200000 */ lwc1 $f0, ($t1)
/* 38CD0 8005D8D0 4600103C */ c.lt.s $f2, $f0
/* 38CD4 8005D8D4 00000000 */ nop
/* 38CD8 8005D8D8 45020073 */ bc1fl .L8005DAA8
/* 38CDC 8005D8DC 27DE0001 */ addiu $fp, $fp, 1
/* 38CE0 8005D8E0 24020001 */ addiu $v0, $zero, 1
/* 38CE4 8005D8E4 AFBE0140 */ sw $fp, 0x140($sp)
/* 38CE8 8005D8E8 12C2000F */ beq $s6, $v0, .L8005D928
/* 38CEC 8005D8EC E5220000 */ swc1 $f2, ($t1)
/* 38CF0 8005D8F0 2AC20002 */ slti $v0, $s6, 2
/* 38CF4 8005D8F4 10400005 */ beqz $v0, .L8005D90C
/* 38CF8 8005D8F8 24020002 */ addiu $v0, $zero, 2
/* 38CFC 8005D8FC 12C00007 */ beqz $s6, .L8005D91C
/* 38D00 8005D900 00000000 */ nop
/* 38D04 8005D904 0801764F */ j .L8005D93C
/* 38D08 8005D908 E7B40010 */ swc1 $f20, 0x10($sp)
.L8005D90C:
/* 38D0C 8005D90C 12C20009 */ beq $s6, $v0, .L8005D934
/* 38D10 8005D910 00000000 */ nop
/* 38D14 8005D914 0801764F */ j .L8005D93C
/* 38D18 8005D918 E7B40010 */ swc1 $f20, 0x10($sp)
.L8005D91C:
/* 38D1C 8005D91C C4760000 */ lwc1 $f22, ($v1)
/* 38D20 8005D920 0801764E */ j .L8005D938
/* 38D24 8005D924 4600B606 */ mov.s $f24, $f22
.L8005D928:
/* 38D28 8005D928 C4780000 */ lwc1 $f24, ($v1)
/* 38D2C 8005D92C 0801764F */ j .L8005D93C
/* 38D30 8005D930 E7B40010 */ swc1 $f20, 0x10($sp)
.L8005D934:
/* 38D34 8005D934 C4760000 */ lwc1 $f22, ($v1)
.L8005D938:
/* 38D38 8005D938 E7B40010 */ swc1 $f20, 0x10($sp)
.L8005D93C:
/* 38D3C 8005D93C 8E250060 */ lw $a1, 0x60($s1)
/* 38D40 8005D940 4406E000 */ mfc1 $a2, $f28
/* 38D44 8005D944 4407A000 */ mfc1 $a3, $f20
/* 38D48 8005D948 0C019EC8 */ jal guRotateF
/* 38D4C 8005D94C 27A40020 */ addiu $a0, $sp, 0x20
/* 38D50 8005D950 27B00060 */ addiu $s0, $sp, 0x60
/* 38D54 8005D954 E7BC0010 */ swc1 $f28, 0x10($sp)
/* 38D58 8005D958 8E250068 */ lw $a1, 0x68($s1)
/* 38D5C 8005D95C 4406A000 */ mfc1 $a2, $f20
/* 38D60 8005D960 4407A000 */ mfc1 $a3, $f20
/* 38D64 8005D964 0C019EC8 */ jal guRotateF
/* 38D68 8005D968 0200202D */ daddu $a0, $s0, $zero
/* 38D6C 8005D96C 27A40020 */ addiu $a0, $sp, 0x20
/* 38D70 8005D970 0200282D */ daddu $a1, $s0, $zero
/* 38D74 8005D974 0C019D80 */ jal guMtxCatF
/* 38D78 8005D978 0080302D */ daddu $a2, $a0, $zero
/* 38D7C 8005D97C E7B40010 */ swc1 $f20, 0x10($sp)
/* 38D80 8005D980 8E250064 */ lw $a1, 0x64($s1)
/* 38D84 8005D984 4406A000 */ mfc1 $a2, $f20
/* 38D88 8005D988 4407E000 */ mfc1 $a3, $f28
/* 38D8C 8005D98C 0C019EC8 */ jal guRotateF
/* 38D90 8005D990 0200202D */ daddu $a0, $s0, $zero
/* 38D94 8005D994 27A40020 */ addiu $a0, $sp, 0x20
/* 38D98 8005D998 0200282D */ daddu $a1, $s0, $zero
/* 38D9C 8005D99C 0C019D80 */ jal guMtxCatF
/* 38DA0 8005D9A0 0080302D */ daddu $a2, $a0, $zero
/* 38DA4 8005D9A4 8E250048 */ lw $a1, 0x48($s1)
/* 38DA8 8005D9A8 8E26004C */ lw $a2, 0x4c($s1)
/* 38DAC 8005D9AC 8E270050 */ lw $a3, 0x50($s1)
/* 38DB0 8005D9B0 0C019E40 */ jal guTranslateF
/* 38DB4 8005D9B4 0200202D */ daddu $a0, $s0, $zero
/* 38DB8 8005D9B8 27A40020 */ addiu $a0, $sp, 0x20
/* 38DBC 8005D9BC 0200282D */ daddu $a1, $s0, $zero
/* 38DC0 8005D9C0 0C019D80 */ jal guMtxCatF
/* 38DC4 8005D9C4 0080302D */ daddu $a2, $a0, $zero
/* 38DC8 8005D9C8 8FA901B8 */ lw $t1, 0x1b8($sp)
/* 38DCC 8005D9CC 3C05800A */ lui $a1, %hi(D_800A4248)
/* 38DD0 8005D9D0 8CA54248 */ lw $a1, %lo(D_800A4248)($a1)
/* 38DD4 8005D9D4 3C06800A */ lui $a2, %hi(D_800A424C)
/* 38DD8 8005D9D8 8CC6424C */ lw $a2, %lo(D_800A424C)($a2)
/* 38DDC 8005D9DC 3C07800A */ lui $a3, %hi(D_800A4250)
/* 38DE0 8005D9E0 8CE74250 */ lw $a3, %lo(D_800A4250)($a3)
/* 38DE4 8005D9E4 AFA90010 */ sw $t1, 0x10($sp)
/* 38DE8 8005D9E8 8FA901BC */ lw $t1, 0x1bc($sp)
/* 38DEC 8005D9EC AFA90014 */ sw $t1, 0x14($sp)
/* 38DF0 8005D9F0 8FA901C0 */ lw $t1, 0x1c0($sp)
/* 38DF4 8005D9F4 27A40020 */ addiu $a0, $sp, 0x20
/* 38DF8 8005D9F8 0C019E9C */ jal guMtxXFMF
/* 38DFC 8005D9FC AFA90018 */ sw $t1, 0x18($sp)
/* 38E00 8005DA00 3C10800A */ lui $s0, %hi(D_800A4258)
/* 38E04 8005DA04 26104258 */ addiu $s0, $s0, %lo(D_800A4258)
/* 38E08 8005DA08 C6040000 */ lwc1 $f4, ($s0)
/* 38E0C 8005DA0C 46042102 */ mul.s $f4, $f4, $f4
/* 38E10 8005DA10 00000000 */ nop
/* 38E14 8005DA14 3C11800A */ lui $s1, %hi(D_800A425C)
/* 38E18 8005DA18 2631425C */ addiu $s1, $s1, %lo(D_800A425C)
/* 38E1C 8005DA1C C6220000 */ lwc1 $f2, ($s1)
/* 38E20 8005DA20 46021082 */ mul.s $f2, $f2, $f2
/* 38E24 8005DA24 00000000 */ nop
/* 38E28 8005DA28 3C13800A */ lui $s3, %hi(D_800A4260)
/* 38E2C 8005DA2C 26734260 */ addiu $s3, $s3, %lo(D_800A4260)
/* 38E30 8005DA30 C6600000 */ lwc1 $f0, ($s3)
/* 38E34 8005DA34 46000002 */ mul.s $f0, $f0, $f0
/* 38E38 8005DA38 00000000 */ nop
/* 38E3C 8005DA3C 46022100 */ add.s $f4, $f4, $f2
/* 38E40 8005DA40 46002300 */ add.s $f12, $f4, $f0
/* 38E44 8005DA44 46006084 */ sqrt.s $f2, $f12
/* 38E48 8005DA48 46021032 */ c.eq.s $f2, $f2
/* 38E4C 8005DA4C 00000000 */ nop
/* 38E50 8005DA50 45010004 */ bc1t .L8005DA64
/* 38E54 8005DA54 00000000 */ nop
/* 38E58 8005DA58 0C0187BC */ jal sqrtf
/* 38E5C 8005DA5C 00000000 */ nop
/* 38E60 8005DA60 46000086 */ mov.s $f2, $f0
.L8005DA64:
/* 38E64 8005DA64 C6000000 */ lwc1 $f0, ($s0)
/* 38E68 8005DA68 4602E083 */ div.s $f2, $f28, $f2
/* 38E6C 8005DA6C 46020002 */ mul.s $f0, $f0, $f2
/* 38E70 8005DA70 00000000 */ nop
/* 38E74 8005DA74 8FA901C8 */ lw $t1, 0x1c8($sp)
/* 38E78 8005DA78 E5200000 */ swc1 $f0, ($t1)
/* 38E7C 8005DA7C C6200000 */ lwc1 $f0, ($s1)
/* 38E80 8005DA80 46020002 */ mul.s $f0, $f0, $f2
/* 38E84 8005DA84 00000000 */ nop
/* 38E88 8005DA88 8FA901CC */ lw $t1, 0x1cc($sp)
/* 38E8C 8005DA8C E5200000 */ swc1 $f0, ($t1)
/* 38E90 8005DA90 C6600000 */ lwc1 $f0, ($s3)
/* 38E94 8005DA94 46020002 */ mul.s $f0, $f0, $f2
/* 38E98 8005DA98 00000000 */ nop
/* 38E9C 8005DA9C 8FA901D0 */ lw $t1, 0x1d0($sp)
/* 38EA0 8005DAA0 E5200000 */ swc1 $f0, ($t1)
/* 38EA4 8005DAA4 27DE0001 */ addiu $fp, $fp, 1
.L8005DAA8:
/* 38EA8 8005DAA8 2BC2001E */ slti $v0, $fp, 0x1e
/* 38EAC 8005DAAC 1440FEA6 */ bnez $v0, .L8005D548
/* 38EB0 8005DAB0 00000000 */ nop
/* 38EB4 8005DAB4 8FA20140 */ lw $v0, 0x140($sp)
/* 38EB8 8005DAB8 8FBF016C */ lw $ra, 0x16c($sp)
/* 38EBC 8005DABC 8FBE0168 */ lw $fp, 0x168($sp)
/* 38EC0 8005DAC0 8FB70164 */ lw $s7, 0x164($sp)
/* 38EC4 8005DAC4 8FB60160 */ lw $s6, 0x160($sp)
/* 38EC8 8005DAC8 8FB5015C */ lw $s5, 0x15c($sp)
/* 38ECC 8005DACC 8FB40158 */ lw $s4, 0x158($sp)
/* 38ED0 8005DAD0 8FB30154 */ lw $s3, 0x154($sp)
/* 38ED4 8005DAD4 8FB20150 */ lw $s2, 0x150($sp)
/* 38ED8 8005DAD8 8FB1014C */ lw $s1, 0x14c($sp)
/* 38EDC 8005DADC 8FB00148 */ lw $s0, 0x148($sp)
/* 38EE0 8005DAE0 D7BE0198 */ ldc1 $f30, 0x198($sp)
/* 38EE4 8005DAE4 D7BC0190 */ ldc1 $f28, 0x190($sp)
/* 38EE8 8005DAE8 D7BA0188 */ ldc1 $f26, 0x188($sp)
/* 38EEC 8005DAEC D7B80180 */ ldc1 $f24, 0x180($sp)
/* 38EF0 8005DAF0 D7B60178 */ ldc1 $f22, 0x178($sp)
/* 38EF4 8005DAF4 D7B40170 */ ldc1 $f20, 0x170($sp)
/* 38EF8 8005DAF8 03E00008 */ jr $ra
/* 38EFC 8005DAFC 27BD01A0 */ addiu $sp, $sp, 0x1a0