.set noat # allow manual use of $at .set noreorder # don't insert nops after branches glabel func_8004A784 /* 025B84 8004A784 27BDFF68 */ addiu $sp, $sp, -0x98 /* 025B88 8004A788 F7BC0088 */ sdc1 $f28, 0x88($sp) /* 025B8C 8004A78C 4485E000 */ mtc1 $a1, $f28 /* 025B90 8004A790 AFB40058 */ sw $s4, 0x58($sp) /* 025B94 8004A794 8FB400A8 */ lw $s4, 0xa8($sp) /* 025B98 8004A798 AFB00048 */ sw $s0, 0x48($sp) /* 025B9C 8004A79C 0080802D */ daddu $s0, $a0, $zero /* 025BA0 8004A7A0 AFB1004C */ sw $s1, 0x4c($sp) /* 025BA4 8004A7A4 00C0882D */ daddu $s1, $a2, $zero /* 025BA8 8004A7A8 AFB30054 */ sw $s3, 0x54($sp) /* 025BAC 8004A7AC 00E0982D */ daddu $s3, $a3, $zero /* 025BB0 8004A7B0 AFB5005C */ sw $s5, 0x5c($sp) /* 025BB4 8004A7B4 8FB500AC */ lw $s5, 0xac($sp) /* 025BB8 8004A7B8 27A50020 */ addiu $a1, $sp, 0x20 /* 025BBC 8004A7BC AFBF0060 */ sw $ra, 0x60($sp) /* 025BC0 8004A7C0 AFB20050 */ sw $s2, 0x50($sp) /* 025BC4 8004A7C4 F7BE0090 */ sdc1 $f30, 0x90($sp) /* 025BC8 8004A7C8 F7BA0080 */ sdc1 $f26, 0x80($sp) /* 025BCC 8004A7CC F7B80078 */ sdc1 $f24, 0x78($sp) /* 025BD0 8004A7D0 F7B60070 */ sdc1 $f22, 0x70($sp) /* 025BD4 8004A7D4 F7B40068 */ sdc1 $f20, 0x68($sp) /* 025BD8 8004A7D8 C6000038 */ lwc1 $f0, 0x38($s0) /* 025BDC 8004A7DC C602003C */ lwc1 $f2, 0x3c($s0) /* 025BE0 8004A7E0 27A60024 */ addiu $a2, $sp, 0x24 /* 025BE4 8004A7E4 E7A00020 */ swc1 $f0, 0x20($sp) /* 025BE8 8004A7E8 E7A20024 */ swc1 $f2, 0x24($sp) /* 025BEC 8004A7EC C6000018 */ lwc1 $f0, 0x18($s0) /* 025BF0 8004A7F0 C6020040 */ lwc1 $f2, 0x40($s0) /* 025BF4 8004A7F4 461C0002 */ mul.s $f0, $f0, $f28 /* 025BF8 8004A7F8 00000000 */ nop /* 025BFC 8004A7FC E7A20028 */ swc1 $f2, 0x28($sp) /* 025C00 8004A800 C63A0000 */ lwc1 $f26, ($s1) /* 025C04 8004A804 27A70028 */ addiu $a3, $sp, 0x28 /* 025C08 8004A808 E7BA0014 */ swc1 $f26, 0x14($sp) /* 025C0C 8004A80C E7A00010 */ swc1 $f0, 0x10($sp) /* 025C10 8004A810 860200A8 */ lh $v0, 0xa8($s0) /* 025C14 8004A814 3C01BF80 */ lui $at, 0xbf80 /* 025C18 8004A818 4481A000 */ mtc1 $at, $f20 /* 025C1C 8004A81C 44820000 */ mtc1 $v0, $f0 /* 025C20 8004A820 00000000 */ nop /* 025C24 8004A824 46800020 */ cvt.s.w $f0, $f0 /* 025C28 8004A828 E7A00018 */ swc1 $f0, 0x18($sp) /* 025C2C 8004A82C 860200A6 */ lh $v0, 0xa6($s0) /* 025C30 8004A830 4600A586 */ mov.s $f22, $f20 /* 025C34 8004A834 44820000 */ mtc1 $v0, $f0 /* 025C38 8004A838 00000000 */ nop /* 025C3C 8004A83C 46800020 */ cvt.s.w $f0, $f0 /* 025C40 8004A840 E7A0001C */ swc1 $f0, 0x1c($sp) /* 025C44 8004A844 8E040080 */ lw $a0, 0x80($s0) /* 025C48 8004A848 0C037711 */ jal func_800DDC44 /* 025C4C 8004A84C 4600A606 */ mov.s $f24, $f20 /* 025C50 8004A850 0040902D */ daddu $s2, $v0, $zero /* 025C54 8004A854 1240008D */ beqz $s2, .L8004AA8C /* 025C58 8004A858 00000000 */ nop /* 025C5C 8004A85C C60C0038 */ lwc1 $f12, 0x38($s0) /* 025C60 8004A860 C60E0040 */ lwc1 $f14, 0x40($s0) /* 025C64 8004A864 8FA60020 */ lw $a2, 0x20($sp) /* 025C68 8004A868 0C00A7B5 */ jal dist2D /* 025C6C 8004A86C 8FA70028 */ lw $a3, 0x28($sp) /* 025C70 8004A870 46000586 */ mov.s $f22, $f0 /* 025C74 8004A874 C6020038 */ lwc1 $f2, 0x38($s0) /* 025C78 8004A878 C604003C */ lwc1 $f4, 0x3c($s0) /* 025C7C 8004A87C 3C01420C */ lui $at, 0x420c /* 025C80 8004A880 4481F000 */ mtc1 $at, $f30 /* 025C84 8004A884 C6000040 */ lwc1 $f0, 0x40($s0) /* 025C88 8004A888 461ED300 */ add.s $f12, $f26, $f30 /* 025C8C 8004A88C E7A2002C */ swc1 $f2, 0x2c($sp) /* 025C90 8004A890 E7A40030 */ swc1 $f4, 0x30($sp) /* 025C94 8004A894 0C00A6C9 */ jal clamp_angle /* 025C98 8004A898 E7A00034 */ swc1 $f0, 0x34($sp) /* 025C9C 8004A89C C6020018 */ lwc1 $f2, 0x18($s0) /* 025CA0 8004A8A0 461C1082 */ mul.s $f2, $f2, $f28 /* 025CA4 8004A8A4 00000000 */ nop /* 025CA8 8004A8A8 E7A00014 */ swc1 $f0, 0x14($sp) /* 025CAC 8004A8AC E7A20010 */ swc1 $f2, 0x10($sp) /* 025CB0 8004A8B0 860200A8 */ lh $v0, 0xa8($s0) /* 025CB4 8004A8B4 27A5002C */ addiu $a1, $sp, 0x2c /* 025CB8 8004A8B8 44820000 */ mtc1 $v0, $f0 /* 025CBC 8004A8BC 00000000 */ nop /* 025CC0 8004A8C0 46800020 */ cvt.s.w $f0, $f0 /* 025CC4 8004A8C4 E7A00018 */ swc1 $f0, 0x18($sp) /* 025CC8 8004A8C8 860200A6 */ lh $v0, 0xa6($s0) /* 025CCC 8004A8CC 27A60030 */ addiu $a2, $sp, 0x30 /* 025CD0 8004A8D0 44820000 */ mtc1 $v0, $f0 /* 025CD4 8004A8D4 00000000 */ nop /* 025CD8 8004A8D8 46800020 */ cvt.s.w $f0, $f0 /* 025CDC 8004A8DC E7A0001C */ swc1 $f0, 0x1c($sp) /* 025CE0 8004A8E0 8E040080 */ lw $a0, 0x80($s0) /* 025CE4 8004A8E4 0C037711 */ jal func_800DDC44 /* 025CE8 8004A8E8 27A70034 */ addiu $a3, $sp, 0x34 /* 025CEC 8004A8EC 10400007 */ beqz $v0, .L8004A90C /* 025CF0 8004A8F0 00000000 */ nop /* 025CF4 8004A8F4 C60C0038 */ lwc1 $f12, 0x38($s0) /* 025CF8 8004A8F8 C60E0040 */ lwc1 $f14, 0x40($s0) /* 025CFC 8004A8FC 8FA6002C */ lw $a2, 0x2c($sp) /* 025D00 8004A900 0C00A7B5 */ jal dist2D /* 025D04 8004A904 8FA70034 */ lw $a3, 0x34($sp) /* 025D08 8004A908 46000506 */ mov.s $f20, $f0 .L8004A90C: /* 025D0C 8004A90C C6000038 */ lwc1 $f0, 0x38($s0) /* 025D10 8004A910 C602003C */ lwc1 $f2, 0x3c($s0) /* 025D14 8004A914 C6040040 */ lwc1 $f4, 0x40($s0) /* 025D18 8004A918 461ED301 */ sub.s $f12, $f26, $f30 /* 025D1C 8004A91C E7A00038 */ swc1 $f0, 0x38($sp) /* 025D20 8004A920 E7A2003C */ swc1 $f2, 0x3c($sp) /* 025D24 8004A924 0C00A6C9 */ jal clamp_angle /* 025D28 8004A928 E7A40040 */ swc1 $f4, 0x40($sp) /* 025D2C 8004A92C C6020018 */ lwc1 $f2, 0x18($s0) /* 025D30 8004A930 461C1082 */ mul.s $f2, $f2, $f28 /* 025D34 8004A934 00000000 */ nop /* 025D38 8004A938 E7A00014 */ swc1 $f0, 0x14($sp) /* 025D3C 8004A93C E7A20010 */ swc1 $f2, 0x10($sp) /* 025D40 8004A940 860200A8 */ lh $v0, 0xa8($s0) /* 025D44 8004A944 27A50038 */ addiu $a1, $sp, 0x38 /* 025D48 8004A948 44820000 */ mtc1 $v0, $f0 /* 025D4C 8004A94C 00000000 */ nop /* 025D50 8004A950 46800020 */ cvt.s.w $f0, $f0 /* 025D54 8004A954 E7A00018 */ swc1 $f0, 0x18($sp) /* 025D58 8004A958 860200A6 */ lh $v0, 0xa6($s0) /* 025D5C 8004A95C 27A6003C */ addiu $a2, $sp, 0x3c /* 025D60 8004A960 44820000 */ mtc1 $v0, $f0 /* 025D64 8004A964 00000000 */ nop /* 025D68 8004A968 46800020 */ cvt.s.w $f0, $f0 /* 025D6C 8004A96C E7A0001C */ swc1 $f0, 0x1c($sp) /* 025D70 8004A970 8E040080 */ lw $a0, 0x80($s0) /* 025D74 8004A974 0C037711 */ jal func_800DDC44 /* 025D78 8004A978 27A70040 */ addiu $a3, $sp, 0x40 /* 025D7C 8004A97C 10400007 */ beqz $v0, .L8004A99C /* 025D80 8004A980 00000000 */ nop /* 025D84 8004A984 C60C0038 */ lwc1 $f12, 0x38($s0) /* 025D88 8004A988 C60E0040 */ lwc1 $f14, 0x40($s0) /* 025D8C 8004A98C 8FA60038 */ lw $a2, 0x38($sp) /* 025D90 8004A990 0C00A7B5 */ jal dist2D /* 025D94 8004A994 8FA70040 */ lw $a3, 0x40($sp) /* 025D98 8004A998 46000606 */ mov.s $f24, $f0 .L8004A99C: /* 025D9C 8004A99C 4616A03C */ c.lt.s $f20, $f22 /* 025DA0 8004A9A0 00000000 */ nop /* 025DA4 8004A9A4 45000005 */ bc1f .L8004A9BC /* 025DA8 8004A9A8 00000000 */ nop /* 025DAC 8004A9AC 4614C03C */ c.lt.s $f24, $f20 /* 025DB0 8004A9B0 00000000 */ nop /* 025DB4 8004A9B4 45010009 */ bc1t .L8004A9DC /* 025DB8 8004A9B8 00000000 */ nop .L8004A9BC: /* 025DBC 8004A9BC 4616C03C */ c.lt.s $f24, $f22 /* 025DC0 8004A9C0 00000000 */ nop /* 025DC4 8004A9C4 45000007 */ bc1f .L8004A9E4 /* 025DC8 8004A9C8 00000000 */ nop /* 025DCC 8004A9CC 4618A03C */ c.lt.s $f20, $f24 /* 025DD0 8004A9D0 00000000 */ nop /* 025DD4 8004A9D4 45000003 */ bc1f .L8004A9E4 /* 025DD8 8004A9D8 00000000 */ nop .L8004A9DC: /* 025DDC 8004A9DC 08012AA3 */ j .L8004AA8C /* 025DE0 8004A9E0 C61A000C */ lwc1 $f26, 0xc($s0) .L8004A9E4: /* 025DE4 8004A9E4 4614B03C */ c.lt.s $f22, $f20 /* 025DE8 8004A9E8 00000000 */ nop /* 025DEC 8004A9EC 45000005 */ bc1f .L8004AA04 /* 025DF0 8004A9F0 00000000 */ nop /* 025DF4 8004A9F4 4616C03C */ c.lt.s $f24, $f22 /* 025DF8 8004A9F8 00000000 */ nop /* 025DFC 8004A9FC 45010009 */ bc1t .L8004AA24 /* 025E00 8004AA00 00000000 */ nop .L8004AA04: /* 025E04 8004AA04 4614C03C */ c.lt.s $f24, $f20 /* 025E08 8004AA08 00000000 */ nop /* 025E0C 8004AA0C 4500000A */ bc1f .L8004AA38 /* 025E10 8004AA10 00000000 */ nop /* 025E14 8004AA14 4618B03C */ c.lt.s $f22, $f24 /* 025E18 8004AA18 00000000 */ nop /* 025E1C 8004AA1C 45000008 */ bc1f .L8004AA40 /* 025E20 8004AA20 00000000 */ nop .L8004AA24: /* 025E24 8004AA24 C602000C */ lwc1 $f2, 0xc($s0) /* 025E28 8004AA28 3C01420C */ lui $at, 0x420c /* 025E2C 8004AA2C 44810000 */ mtc1 $at, $f0 /* 025E30 8004AA30 08012AA3 */ j .L8004AA8C /* 025E34 8004AA34 46001680 */ add.s $f26, $f2, $f0 .L8004AA38: /* 025E38 8004AA38 4618B03C */ c.lt.s $f22, $f24 /* 025E3C 8004AA3C 00000000 */ nop .L8004AA40: /* 025E40 8004AA40 45000005 */ bc1f .L8004AA58 /* 025E44 8004AA44 00000000 */ nop /* 025E48 8004AA48 4616A03C */ c.lt.s $f20, $f22 /* 025E4C 8004AA4C 00000000 */ nop /* 025E50 8004AA50 45010009 */ bc1t .L8004AA78 /* 025E54 8004AA54 00000000 */ nop .L8004AA58: /* 025E58 8004AA58 4618A03C */ c.lt.s $f20, $f24 /* 025E5C 8004AA5C 00000000 */ nop /* 025E60 8004AA60 4500000A */ bc1f .L8004AA8C /* 025E64 8004AA64 00000000 */ nop /* 025E68 8004AA68 4614B03C */ c.lt.s $f22, $f20 /* 025E6C 8004AA6C 00000000 */ nop /* 025E70 8004AA70 45000006 */ bc1f .L8004AA8C /* 025E74 8004AA74 00000000 */ nop .L8004AA78: /* 025E78 8004AA78 C602000C */ lwc1 $f2, 0xc($s0) /* 025E7C 8004AA7C 3C01420C */ lui $at, 0x420c /* 025E80 8004AA80 44810000 */ mtc1 $at, $f0 /* 025E84 8004AA84 00000000 */ nop /* 025E88 8004AA88 46001681 */ sub.s $f26, $f2, $f0 .L8004AA8C: /* 025E8C 8004AA8C 12200004 */ beqz $s1, .L8004AAA0 /* 025E90 8004AA90 00000000 */ nop /* 025E94 8004AA94 0C00A6C9 */ jal clamp_angle /* 025E98 8004AA98 4600D306 */ mov.s $f12, $f26 /* 025E9C 8004AA9C E6200000 */ swc1 $f0, ($s1) .L8004AAA0: /* 025EA0 8004AAA0 56600001 */ bnel $s3, $zero, .L8004AAA8 /* 025EA4 8004AAA4 E6760000 */ swc1 $f22, ($s3) .L8004AAA8: /* 025EA8 8004AAA8 56800001 */ bnel $s4, $zero, .L8004AAB0 /* 025EAC 8004AAAC E6940000 */ swc1 $f20, ($s4) .L8004AAB0: /* 025EB0 8004AAB0 56A00001 */ bnel $s5, $zero, .L8004AAB8 /* 025EB4 8004AAB4 E6B80000 */ swc1 $f24, ($s5) .L8004AAB8: /* 025EB8 8004AAB8 0240102D */ daddu $v0, $s2, $zero /* 025EBC 8004AABC 8FBF0060 */ lw $ra, 0x60($sp) /* 025EC0 8004AAC0 8FB5005C */ lw $s5, 0x5c($sp) /* 025EC4 8004AAC4 8FB40058 */ lw $s4, 0x58($sp) /* 025EC8 8004AAC8 8FB30054 */ lw $s3, 0x54($sp) /* 025ECC 8004AACC 8FB20050 */ lw $s2, 0x50($sp) /* 025ED0 8004AAD0 8FB1004C */ lw $s1, 0x4c($sp) /* 025ED4 8004AAD4 8FB00048 */ lw $s0, 0x48($sp) /* 025ED8 8004AAD8 D7BE0090 */ ldc1 $f30, 0x90($sp) /* 025EDC 8004AADC D7BC0088 */ ldc1 $f28, 0x88($sp) /* 025EE0 8004AAE0 D7BA0080 */ ldc1 $f26, 0x80($sp) /* 025EE4 8004AAE4 D7B80078 */ ldc1 $f24, 0x78($sp) /* 025EE8 8004AAE8 D7B60070 */ ldc1 $f22, 0x70($sp) /* 025EEC 8004AAEC D7B40068 */ ldc1 $f20, 0x68($sp) /* 025EF0 8004AAF0 03E00008 */ jr $ra /* 025EF4 8004AAF4 27BD0098 */ addiu $sp, $sp, 0x98 /* 025EF8 8004AAF8 00000000 */ nop /* 025EFC 8004AAFC 00000000 */ nop