.set noat # allow manual use of $at .set noreorder # don't insert nops after branches glabel func_8005D7B0 /* 38BB0 8005D7B0 27BDFFD8 */ addiu $sp, $sp, -0x28 /* 38BB4 8005D7B4 AFB20018 */ sw $s2, 0x18($sp) /* 38BB8 8005D7B8 0080902D */ daddu $s2, $a0, $zero /* 38BBC 8005D7BC AFBF0020 */ sw $ra, 0x20($sp) /* 38BC0 8005D7C0 AFB3001C */ sw $s3, 0x1c($sp) /* 38BC4 8005D7C4 AFB10014 */ sw $s1, 0x14($sp) /* 38BC8 8005D7C8 AFB00010 */ sw $s0, 0x10($sp) /* 38BCC 8005D7CC 8E420148 */ lw $v0, 0x148($s2) /* 38BD0 8005D7D0 84440008 */ lh $a0, 8($v0) /* 38BD4 8005D7D4 0C00E9EB */ jal func_8003A7AC /* 38BD8 8005D7D8 00A0802D */ daddu $s0, $a1, $zero /* 38BDC 8005D7DC 3C138011 */ lui $s3, %hi(D_8010F188) /* 38BE0 8005D7E0 2673F188 */ addiu $s3, $s3, %lo(D_8010F188) /* 38BE4 8005D7E4 12000002 */ beqz $s0, .L8005D7F0 /* 38BE8 8005D7E8 0040882D */ daddu $s1, $v0, $zero /* 38BEC 8005D7EC AE400070 */ sw $zero, 0x70($s2) .L8005D7F0: /* 38BF0 8005D7F0 8E440070 */ lw $a0, 0x70($s2) /* 38BF4 8005D7F4 10800005 */ beqz $a0, .L8005D80C /* 38BF8 8005D7F8 24020001 */ addiu $v0, $zero, 1 /* 38BFC 8005D7FC 1082001F */ beq $a0, $v0, .L8005D87C /* 38C00 8005D800 0000102D */ daddu $v0, $zero, $zero /* 38C04 8005D804 0801767A */ j .L8005D9E8 /* 38C08 8005D808 00000000 */ nop .L8005D80C: /* 38C0C 8005D80C 0240202D */ daddu $a0, $s2, $zero /* 38C10 8005D810 3C05FE36 */ lui $a1, 0xfe36 /* 38C14 8005D814 0C0B210B */ jal func_802C842C /* 38C18 8005D818 34A53C80 */ ori $a1, $a1, 0x3c80 /* 38C1C 8005D81C 0240202D */ daddu $a0, $s2, $zero /* 38C20 8005D820 3C05FE36 */ lui $a1, 0xfe36 /* 38C24 8005D824 34A53C81 */ ori $a1, $a1, 0x3c81 /* 38C28 8005D828 0C0B1EAF */ jal func_802C7ABC /* 38C2C 8005D82C E6200010 */ swc1 $f0, 0x10($s1) /* 38C30 8005D830 0240202D */ daddu $a0, $s2, $zero /* 38C34 8005D834 3C05FE36 */ lui $a1, 0xfe36 /* 38C38 8005D838 34A53C82 */ ori $a1, $a1, 0x3c82 /* 38C3C 8005D83C 0C0B1EAF */ jal func_802C7ABC /* 38C40 8005D840 A622008E */ sh $v0, 0x8e($s1) /* 38C44 8005D844 0240202D */ daddu $a0, $s2, $zero /* 38C48 8005D848 3C05FE36 */ lui $a1, 0xfe36 /* 38C4C 8005D84C 34A53C83 */ ori $a1, $a1, 0x3c83 /* 38C50 8005D850 0C0B1EAF */ jal func_802C7ABC /* 38C54 8005D854 AE420074 */ sw $v0, 0x74($s2) /* 38C58 8005D858 00021FC2 */ srl $v1, $v0, 0x1f /* 38C5C 8005D85C 00621821 */ addu $v1, $v1, $v0 /* 38C60 8005D860 8E4200AC */ lw $v0, 0xac($s2) /* 38C64 8005D864 00031843 */ sra $v1, $v1, 1 /* 38C68 8005D868 AE430078 */ sw $v1, 0x78($s2) /* 38C6C 8005D86C AE220028 */ sw $v0, 0x28($s1) /* 38C70 8005D870 24020001 */ addiu $v0, $zero, 1 /* 38C74 8005D874 08017679 */ j .L8005D9E4 /* 38C78 8005D878 AE420070 */ sw $v0, 0x70($s2) .L8005D87C: /* 38C7C 8005D87C 3C028011 */ lui $v0, %hi(D_8010ED70) /* 38C80 8005D880 2442ED70 */ addiu $v0, $v0, %lo(D_8010ED70) /* 38C84 8005D884 80430003 */ lb $v1, 3($v0) /* 38C88 8005D888 24020009 */ addiu $v0, $zero, 9 /* 38C8C 8005D88C 10620056 */ beq $v1, $v0, .L8005D9E8 /* 38C90 8005D890 0000102D */ daddu $v0, $zero, $zero /* 38C94 8005D894 8622008E */ lh $v0, 0x8e($s1) /* 38C98 8005D898 10400005 */ beqz $v0, .L8005D8B0 /* 38C9C 8005D89C 00000000 */ nop /* 38CA0 8005D8A0 1044002C */ beq $v0, $a0, .L8005D954 /* 38CA4 8005D8A4 0000102D */ daddu $v0, $zero, $zero /* 38CA8 8005D8A8 0801767A */ j .L8005D9E8 /* 38CAC 8005D8AC 00000000 */ nop .L8005D8B0: /* 38CB0 8005D8B0 C6620028 */ lwc1 $f2, 0x28($s3) /* 38CB4 8005D8B4 C6200038 */ lwc1 $f0, 0x38($s1) /* 38CB8 8005D8B8 46001081 */ sub.s $f2, $f2, $f0 /* 38CBC 8005D8BC 46021082 */ mul.s $f2, $f2, $f2 /* 38CC0 8005D8C0 00000000 */ nop /* 38CC4 8005D8C4 C666002C */ lwc1 $f6, 0x2c($s3) /* 38CC8 8005D8C8 C620003C */ lwc1 $f0, 0x3c($s1) /* 38CCC 8005D8CC 46003181 */ sub.s $f6, $f6, $f0 /* 38CD0 8005D8D0 46063182 */ mul.s $f6, $f6, $f6 /* 38CD4 8005D8D4 00000000 */ nop /* 38CD8 8005D8D8 C6240040 */ lwc1 $f4, 0x40($s1) /* 38CDC 8005D8DC C6600030 */ lwc1 $f0, 0x30($s3) /* 38CE0 8005D8E0 46040001 */ sub.s $f0, $f0, $f4 /* 38CE4 8005D8E4 46000002 */ mul.s $f0, $f0, $f0 /* 38CE8 8005D8E8 00000000 */ nop /* 38CEC 8005D8EC 46061080 */ add.s $f2, $f2, $f6 /* 38CF0 8005D8F0 46001300 */ add.s $f12, $f2, $f0 /* 38CF4 8005D8F4 46006104 */ sqrt.s $f4, $f12 /* 38CF8 8005D8F8 46042032 */ c.eq.s $f4, $f4 /* 38CFC 8005D8FC 00000000 */ nop /* 38D00 8005D900 45010004 */ bc1t .L8005D914 /* 38D04 8005D904 00000000 */ nop /* 38D08 8005D908 0C0187B0 */ jal func_80061EC0 /* 38D0C 8005D90C 00000000 */ nop /* 38D10 8005D910 46000106 */ mov.s $f4, $f0 .L8005D914: /* 38D14 8005D914 C6200010 */ lwc1 $f0, 0x10($s1) /* 38D18 8005D918 4600203E */ c.le.s $f4, $f0 /* 38D1C 8005D91C 00000000 */ nop /* 38D20 8005D920 45000031 */ bc1f .L8005D9E8 /* 38D24 8005D924 0000102D */ daddu $v0, $zero, $zero /* 38D28 8005D928 C62C0038 */ lwc1 $f12, 0x38($s1) /* 38D2C 8005D92C C62E0040 */ lwc1 $f14, 0x40($s1) /* 38D30 8005D930 8E660028 */ lw $a2, 0x28($s3) /* 38D34 8005D934 0C00A710 */ jal func_80029C40 /* 38D38 8005D938 8E670030 */ lw $a3, 0x30($s3) /* 38D3C 8005D93C 8E430074 */ lw $v1, 0x74($s2) /* 38D40 8005D940 2402FFFF */ addiu $v0, $zero, -1 /* 38D44 8005D944 10620016 */ beq $v1, $v0, .L8005D9A0 /* 38D48 8005D948 00000000 */ nop /* 38D4C 8005D94C 0801766A */ j .L8005D9A8 /* 38D50 8005D950 00000000 */ nop .L8005D954: /* 38D54 8005D954 C62C0038 */ lwc1 $f12, 0x38($s1) /* 38D58 8005D958 C62E0040 */ lwc1 $f14, 0x40($s1) /* 38D5C 8005D95C 8E660028 */ lw $a2, 0x28($s3) /* 38D60 8005D960 0C00A7A5 */ jal func_80029E94 /* 38D64 8005D964 8E670030 */ lw $a3, 0x30($s3) /* 38D68 8005D968 C6220010 */ lwc1 $f2, 0x10($s1) /* 38D6C 8005D96C 4602003E */ c.le.s $f0, $f2 /* 38D70 8005D970 00000000 */ nop /* 38D74 8005D974 4500001C */ bc1f .L8005D9E8 /* 38D78 8005D978 0000102D */ daddu $v0, $zero, $zero /* 38D7C 8005D97C C62C0038 */ lwc1 $f12, 0x38($s1) /* 38D80 8005D980 C62E0040 */ lwc1 $f14, 0x40($s1) /* 38D84 8005D984 8E660028 */ lw $a2, 0x28($s3) /* 38D88 8005D988 0C00A710 */ jal func_80029C40 /* 38D8C 8005D98C 8E670030 */ lw $a3, 0x30($s3) /* 38D90 8005D990 8E430074 */ lw $v1, 0x74($s2) /* 38D94 8005D994 2402FFFF */ addiu $v0, $zero, -1 /* 38D98 8005D998 14620003 */ bne $v1, $v0, .L8005D9A8 /* 38D9C 8005D99C 00000000 */ nop .L8005D9A0: /* 38DA0 8005D9A0 0801766D */ j .L8005D9B4 /* 38DA4 8005D9A4 C62C000C */ lwc1 $f12, 0xc($s1) .L8005D9A8: /* 38DA8 8005D9A8 44836000 */ mtc1 $v1, $f12 /* 38DAC 8005D9AC 00000000 */ nop /* 38DB0 8005D9B0 46806320 */ cvt.s.w $f12, $f12 .L8005D9B4: /* 38DB4 8005D9B4 0C00A6FA */ jal func_80029BE8 /* 38DB8 8005D9B8 46000386 */ mov.s $f14, $f0 /* 38DBC 8005D9BC C6420078 */ lwc1 $f2, 0x78($s2) /* 38DC0 8005D9C0 468010A0 */ cvt.s.w $f2, $f2 /* 38DC4 8005D9C4 46000005 */ abs.s $f0, $f0 /* 38DC8 8005D9C8 4602003C */ c.lt.s $f0, $f2 /* 38DCC 8005D9CC 00000000 */ nop /* 38DD0 8005D9D0 45000004 */ bc1f .L8005D9E4 /* 38DD4 8005D9D4 24020001 */ addiu $v0, $zero, 1 /* 38DD8 8005D9D8 AE420084 */ sw $v0, 0x84($s2) /* 38DDC 8005D9DC 0801767A */ j .L8005D9E8 /* 38DE0 8005D9E0 24020002 */ addiu $v0, $zero, 2 .L8005D9E4: /* 38DE4 8005D9E4 0000102D */ daddu $v0, $zero, $zero .L8005D9E8: /* 38DE8 8005D9E8 8FBF0020 */ lw $ra, 0x20($sp) /* 38DEC 8005D9EC 8FB3001C */ lw $s3, 0x1c($sp) /* 38DF0 8005D9F0 8FB20018 */ lw $s2, 0x18($sp) /* 38DF4 8005D9F4 8FB10014 */ lw $s1, 0x14($sp) /* 38DF8 8005D9F8 8FB00010 */ lw $s0, 0x10($sp) /* 38DFC 8005D9FC 03E00008 */ jr $ra /* 38E00 8005DA00 27BD0028 */ addiu $sp, $sp, 0x28