glabel func_80040284 /* AB7424 80040284 27BDFF28 */ addiu $sp, $sp, -0xd8 /* AB7428 80040288 AFBF0064 */ sw $ra, 0x64($sp) /* AB742C 8004028C AFB50060 */ sw $s5, 0x60($sp) /* AB7430 80040290 AFB4005C */ sw $s4, 0x5c($sp) /* AB7434 80040294 AFB30058 */ sw $s3, 0x58($sp) /* AB7438 80040298 AFB20054 */ sw $s2, 0x54($sp) /* AB743C 8004029C AFB10050 */ sw $s1, 0x50($sp) /* AB7440 800402A0 AFB0004C */ sw $s0, 0x4c($sp) /* AB7444 800402A4 F7B80040 */ sdc1 $f24, 0x40($sp) /* AB7448 800402A8 F7B60038 */ sdc1 $f22, 0x38($sp) /* AB744C 800402AC F7B40030 */ sdc1 $f20, 0x30($sp) /* AB7450 800402B0 AFA400D8 */ sw $a0, 0xd8($sp) /* AB7454 800402B4 AFA500DC */ sw $a1, 0xdc($sp) /* AB7458 800402B8 AFA700E4 */ sw $a3, 0xe4($sp) /* AB745C 800402BC AFA000CC */ sw $zero, 0xcc($sp) /* AB7460 800402C0 94EF0000 */ lhu $t7, ($a3) /* AB7464 800402C4 3413FFFF */ li $s3, 65535 /* AB7468 800402C8 00C09025 */ move $s2, $a2 /* AB746C 800402CC 166F0003 */ bne $s3, $t7, .L800402DC /* AB7470 800402D0 8FB800F8 */ lw $t8, 0xf8($sp) /* AB7474 800402D4 100001A8 */ b .L80040978 /* AB7478 800402D8 00001025 */ move $v0, $zero .L800402DC: /* AB747C 800402DC 8F080000 */ lw $t0, ($t8) /* AB7480 800402E0 27B500AC */ addiu $s5, $sp, 0xac /* AB7484 800402E4 24140006 */ li $s4, 6 /* AB7488 800402E8 AEA80000 */ sw $t0, ($s5) /* AB748C 800402EC 8F190004 */ lw $t9, 4($t8) /* AB7490 800402F0 AEB90004 */ sw $t9, 4($s5) /* AB7494 800402F4 8F080008 */ lw $t0, 8($t8) /* AB7498 800402F8 AEA80008 */ sw $t0, 8($s5) /* AB749C 800402FC 8FAA00E4 */ lw $t2, 0xe4($sp) /* AB74A0 80040300 8E4913F8 */ lw $t1, 0x13f8($s2) /* AB74A4 80040304 C7B600FC */ lwc1 $f22, 0xfc($sp) /* AB74A8 80040308 954B0000 */ lhu $t3, ($t2) /* AB74AC 8004030C 000B6080 */ sll $t4, $t3, 2 /* AB74B0 80040310 012C8821 */ addu $s1, $t1, $t4 .L80040314: /* AB74B4 80040314 86220000 */ lh $v0, ($s1) /* AB74B8 80040318 8E4D13F0 */ lw $t5, 0x13f0($s2) /* AB74BC 8004031C 27A500C0 */ addiu $a1, $sp, 0xc0 /* AB74C0 80040320 00027100 */ sll $t6, $v0, 4 /* AB74C4 80040324 01AE8021 */ addu $s0, $t5, $t6 /* AB74C8 80040328 02002025 */ move $a0, $s0 /* AB74CC 8004032C 27A600BC */ addiu $a2, $sp, 0xbc /* AB74D0 80040330 0C00E275 */ jal func_800389D4 /* AB74D4 80040334 27A700B8 */ addiu $a3, $sp, 0xb8 /* AB74D8 80040338 C7AC00C0 */ lwc1 $f12, 0xc0($sp) /* AB74DC 8004033C C7AE00B8 */ lwc1 $f14, 0xb8($sp) /* AB74E0 80040340 3C018014 */ lui $at, %hi(D_80138FB4) /* AB74E4 80040344 460C6102 */ mul.s $f4, $f12, $f12 /* AB74E8 80040348 C4288FB4 */ lwc1 $f8, %lo(D_80138FB4)($at) /* AB74EC 8004034C 3C048014 */ lui $a0, %hi(D_80138EF0) # $a0, 0x8014 /* AB74F0 80040350 460E7182 */ mul.s $f6, $f14, $f14 /* AB74F4 80040354 3C058014 */ lui $a1, %hi(D_80138F04) # $a1, 0x8014 /* AB74F8 80040358 24A58F04 */ addiu $a1, %lo(D_80138F04) # addiu $a1, $a1, -0x70fc /* AB74FC 8004035C 24848EF0 */ addiu $a0, %lo(D_80138EF0) # addiu $a0, $a0, -0x7110 /* AB7500 80040360 46062000 */ add.s $f0, $f4, $f6 /* AB7504 80040364 46000504 */ sqrt.s $f20, $f0 /* AB7508 80040368 4600A005 */ abs.s $f0, $f20 /* AB750C 8004036C 4608003C */ c.lt.s $f0, $f8 /* AB7510 80040370 00000000 */ nop /* AB7514 80040374 45020004 */ bc1fl .L80040388 /* AB7518 80040378 860F000E */ lh $t7, 0xe($s0) /* AB751C 8004037C 0C0007FC */ jal __assert /* AB7520 80040380 24061CD6 */ li $a2, 7382 /* AB7524 80040384 860F000E */ lh $t7, 0xe($s0) .L80040388: /* AB7528 80040388 AFB50010 */ sw $s5, 0x10($sp) /* AB752C 8004038C C7AC00C0 */ lwc1 $f12, 0xc0($sp) /* AB7530 80040390 448F5000 */ mtc1 $t7, $f10 /* AB7534 80040394 C7AE00BC */ lwc1 $f14, 0xbc($sp) /* AB7538 80040398 8FA600B8 */ lw $a2, 0xb8($sp) /* AB753C 8004039C 468052A0 */ cvt.s.w $f10, $f10 /* AB7540 800403A0 44075000 */ mfc1 $a3, $f10 /* AB7544 800403A4 0C0332C3 */ jal func_800CCB0C /* AB7548 800403A8 00000000 */ nop /* AB754C 800403AC 46000606 */ mov.s $f24, $f0 /* AB7550 800403B0 46000005 */ abs.s $f0, $f0 /* AB7554 800403B4 97B800DE */ lhu $t8, 0xde($sp) /* AB7558 800403B8 4600B03C */ c.lt.s $f22, $f0 /* AB755C 800403BC 00000000 */ nop /* AB7560 800403C0 45030008 */ bc1tl .L800403E4 /* AB7564 800403C4 96220002 */ lhu $v0, 2($s1) /* AB7568 800403C8 96020002 */ lhu $v0, 2($s0) /* AB756C 800403CC 33190007 */ andi $t9, $t8, 7 /* AB7570 800403D0 00194340 */ sll $t0, $t9, 0xd /* AB7574 800403D4 00485024 */ and $t2, $v0, $t0 /* AB7578 800403D8 11400008 */ beqz $t2, .L800403FC /* AB757C 800403DC 3C013F80 */ li $at, 0x3F800000 # 0.000000 /* AB7580 800403E0 96220002 */ lhu $v0, 2($s1) .L800403E4: /* AB7584 800403E4 52620093 */ beql $s3, $v0, .L80040634 /* AB7588 800403E8 8FA800E4 */ lw $t0, 0xe4($sp) /* AB758C 800403EC 8E4B13F8 */ lw $t3, 0x13f8($s2) /* AB7590 800403F0 00024880 */ sll $t1, $v0, 2 /* AB7594 800403F4 1000FFC7 */ b .L80040314 /* AB7598 800403F8 01698821 */ addu $s1, $t3, $t1 .L800403FC: /* AB759C 800403FC 44812000 */ mtc1 $at, $f4 /* AB75A0 80040400 C7AE00B8 */ lwc1 $f14, 0xb8($sp) /* AB75A4 80040404 3C018014 */ lui $at, %hi(D_80138FB8) /* AB75A8 80040408 46142403 */ div.s $f16, $f4, $f20 /* AB75AC 8004040C C4268FB8 */ lwc1 $f6, %lo(D_80138FB8)($at) /* AB75B0 80040410 304E1FFF */ andi $t6, $v0, 0x1fff /* AB75B4 80040414 46007005 */ abs.s $f0, $f14 /* AB75B8 80040418 46100482 */ mul.s $f18, $f0, $f16 /* AB75BC 8004041C 4606903C */ c.lt.s $f18, $f6 /* AB75C0 80040420 00000000 */ nop /* AB75C4 80040424 45000008 */ bc1f .L80040448 /* AB75C8 80040428 00000000 */ nop /* AB75CC 8004042C 96220002 */ lhu $v0, 2($s1) /* AB75D0 80040430 52620080 */ beql $s3, $v0, .L80040634 /* AB75D4 80040434 8FA800E4 */ lw $t0, 0xe4($sp) /* AB75D8 80040438 8E4C13F8 */ lw $t4, 0x13f8($s2) /* AB75DC 8004043C 00026880 */ sll $t5, $v0, 2 /* AB75E0 80040440 1000FFB4 */ b .L80040314 /* AB75E4 80040444 018D8821 */ addu $s1, $t4, $t5 .L80040448: /* AB75E8 80040448 01D40019 */ multu $t6, $s4 /* AB75EC 8004044C 96080004 */ lhu $t0, 4($s0) /* AB75F0 80040450 8E4513F4 */ lw $a1, 0x13f4($s2) /* AB75F4 80040454 310A1FFF */ andi $t2, $t0, 0x1fff /* AB75F8 80040458 00007812 */ mflo $t7 /* AB75FC 8004045C 00AFC021 */ addu $t8, $a1, $t7 /* AB7600 80040460 87190004 */ lh $t9, 4($t8) /* AB7604 80040464 01540019 */ multu $t2, $s4 /* AB7608 80040468 44994000 */ mtc1 $t9, $f8 /* AB760C 8004046C 00000000 */ nop /* AB7610 80040470 46804320 */ cvt.s.w $f12, $f8 /* AB7614 80040474 00005812 */ mflo $t3 /* AB7618 80040478 00AB4821 */ addu $t1, $a1, $t3 /* AB761C 8004047C 852C0004 */ lh $t4, 4($t1) /* AB7620 80040480 46006086 */ mov.s $f2, $f12 /* AB7624 80040484 448C5000 */ mtc1 $t4, $f10 /* AB7628 80040488 00000000 */ nop /* AB762C 8004048C 46805020 */ cvt.s.w $f0, $f10 /* AB7630 80040490 4602003C */ c.lt.s $f0, $f2 /* AB7634 80040494 00000000 */ nop /* AB7638 80040498 45020004 */ bc1fl .L800404AC /* AB763C 8004049C 4600603C */ c.lt.s $f12, $f0 /* AB7640 800404A0 10000006 */ b .L800404BC /* AB7644 800404A4 46000086 */ mov.s $f2, $f0 /* AB7648 800404A8 4600603C */ c.lt.s $f12, $f0 .L800404AC: /* AB764C 800404AC 00000000 */ nop /* AB7650 800404B0 45020003 */ bc1fl .L800404C0 /* AB7654 800404B4 960D0006 */ lhu $t5, 6($s0) /* AB7658 800404B8 46000306 */ mov.s $f12, $f0 .L800404BC: /* AB765C 800404BC 960D0006 */ lhu $t5, 6($s0) .L800404C0: /* AB7660 800404C0 000D7080 */ sll $t6, $t5, 2 /* AB7664 800404C4 01CD7023 */ subu $t6, $t6, $t5 /* AB7668 800404C8 000E7040 */ sll $t6, $t6, 1 /* AB766C 800404CC 00AE7821 */ addu $t7, $a1, $t6 /* AB7670 800404D0 85F80004 */ lh $t8, 4($t7) /* AB7674 800404D4 44982000 */ mtc1 $t8, $f4 /* AB7678 800404D8 00000000 */ nop /* AB767C 800404DC 46802020 */ cvt.s.w $f0, $f4 /* AB7680 800404E0 4602003C */ c.lt.s $f0, $f2 /* AB7684 800404E4 00000000 */ nop /* AB7688 800404E8 45020004 */ bc1fl .L800404FC /* AB768C 800404EC 4600603C */ c.lt.s $f12, $f0 /* AB7690 800404F0 10000006 */ b .L8004050C /* AB7694 800404F4 46000086 */ mov.s $f2, $f0 /* AB7698 800404F8 4600603C */ c.lt.s $f12, $f0 .L800404FC: /* AB769C 800404FC 00000000 */ nop /* AB76A0 80040500 45020003 */ bc1fl .L80040510 /* AB76A4 80040504 46161081 */ sub.s $f2, $f2, $f22 /* AB76A8 80040508 46000306 */ mov.s $f12, $f0 .L8004050C: /* AB76AC 8004050C 46161081 */ sub.s $f2, $f2, $f22 .L80040510: /* AB76B0 80040510 C7AE00B4 */ lwc1 $f14, 0xb4($sp) /* AB76B4 80040514 46166300 */ add.s $f12, $f12, $f22 /* AB76B8 80040518 4602703C */ c.lt.s $f14, $f2 /* AB76BC 8004051C 00000000 */ nop /* AB76C0 80040520 45030008 */ bc1tl .L80040544 /* AB76C4 80040524 96220002 */ lhu $v0, 2($s1) /* AB76C8 80040528 460E603C */ c.lt.s $f12, $f14 /* AB76CC 8004052C 02002025 */ move $a0, $s0 /* AB76D0 80040530 8FAA00F8 */ lw $t2, 0xf8($sp) /* AB76D4 80040534 27AB00D0 */ addiu $t3, $sp, 0xd0 /* AB76D8 80040538 45020009 */ bc1fl .L80040560 /* AB76DC 8004053C 8D470004 */ lw $a3, 4($t2) /* AB76E0 80040540 96220002 */ lhu $v0, 2($s1) .L80040544: /* AB76E4 80040544 5262003B */ beql $s3, $v0, .L80040634 /* AB76E8 80040548 8FA800E4 */ lw $t0, 0xe4($sp) /* AB76EC 8004054C 8E5913F8 */ lw $t9, 0x13f8($s2) /* AB76F0 80040550 00024080 */ sll $t0, $v0, 2 /* AB76F4 80040554 1000FF6F */ b .L80040314 /* AB76F8 80040558 03288821 */ addu $s1, $t9, $t0 /* AB76FC 8004055C 8D470004 */ lw $a3, 4($t2) .L80040560: /* AB7700 80040560 E7B20090 */ swc1 $f18, 0x90($sp) /* AB7704 80040564 E7B00070 */ swc1 $f16, 0x70($sp) /* AB7708 80040568 AFAB0010 */ sw $t3, 0x10($sp) /* AB770C 8004056C 0C00E400 */ jal func_80039000 /* AB7710 80040570 8FA600AC */ lw $a2, 0xac($sp) /* AB7714 80040574 C7B00070 */ lwc1 $f16, 0x70($sp) /* AB7718 80040578 10400026 */ beqz $v0, .L80040614 /* AB771C 8004057C C7B20090 */ lwc1 $f18, 0x90($sp) /* AB7720 80040580 4612B203 */ div.s $f8, $f22, $f18 /* AB7724 80040584 C7AE00B4 */ lwc1 $f14, 0xb4($sp) /* AB7728 80040588 C7A600D0 */ lwc1 $f6, 0xd0($sp) /* AB772C 8004058C 460E3081 */ sub.s $f2, $f6, $f14 /* AB7730 80040590 C7AE00B8 */ lwc1 $f14, 0xb8($sp) /* AB7734 80040594 46001005 */ abs.s $f0, $f2 /* AB7738 80040598 4608003E */ c.le.s $f0, $f8 /* AB773C 8004059C 00000000 */ nop /* AB7740 800405A0 4502001D */ bc1fl .L80040618 /* AB7744 800405A4 96220002 */ lhu $v0, 2($s1) /* AB7748 800405A8 460E1102 */ mul.s $f4, $f2, $f14 /* AB774C 800405AC 3C014080 */ li $at, 0x40800000 # 0.000000 /* AB7750 800405B0 44815000 */ mtc1 $at, $f10 /* AB7754 800405B4 C7AC00C0 */ lwc1 $f12, 0xc0($sp) /* AB7758 800405B8 8FA400D8 */ lw $a0, 0xd8($sp) /* AB775C 800405BC 02002825 */ move $a1, $s0 /* AB7760 800405C0 02A03025 */ move $a2, $s5 /* AB7764 800405C4 460A203E */ c.le.s $f4, $f10 /* AB7768 800405C8 27A700B4 */ addiu $a3, $sp, 0xb4 /* AB776C 800405CC 240C0001 */ li $t4, 1 /* AB7770 800405D0 45020011 */ bc1fl .L80040618 /* AB7774 800405D4 96220002 */ lhu $v0, 2($s1) /* AB7778 800405D8 C7A600BC */ lwc1 $f6, 0xbc($sp) /* AB777C 800405DC 8FA900F0 */ lw $t1, 0xf0($sp) /* AB7780 800405E0 E7AC0010 */ swc1 $f12, 0x10($sp) /* AB7784 800405E4 E7AE0018 */ swc1 $f14, 0x18($sp) /* AB7788 800405E8 E7B0001C */ swc1 $f16, 0x1c($sp) /* AB778C 800405EC E7B80020 */ swc1 $f24, 0x20($sp) /* AB7790 800405F0 E7B60024 */ swc1 $f22, 0x24($sp) /* AB7794 800405F4 AFAC00CC */ sw $t4, 0xcc($sp) /* AB7798 800405F8 E7A60014 */ swc1 $f6, 0x14($sp) /* AB779C 800405FC 0C00E68F */ jal func_80039A3C /* AB77A0 80040600 AFA90028 */ sw $t1, 0x28($sp) /* AB77A4 80040604 10400003 */ beqz $v0, .L80040614 /* AB77A8 80040608 8FAD0100 */ lw $t5, 0x100($sp) /* AB77AC 8004060C 8FAE00F4 */ lw $t6, 0xf4($sp) /* AB77B0 80040610 ADCD0000 */ sw $t5, ($t6) .L80040614: /* AB77B4 80040614 96220002 */ lhu $v0, 2($s1) .L80040618: /* AB77B8 80040618 52620006 */ beql $s3, $v0, .L80040634 /* AB77BC 8004061C 8FA800E4 */ lw $t0, 0xe4($sp) /* AB77C0 80040620 8E4F13F8 */ lw $t7, 0x13f8($s2) /* AB77C4 80040624 0002C080 */ sll $t8, $v0, 2 /* AB77C8 80040628 1000FF3A */ b .L80040314 /* AB77CC 8004062C 01F88821 */ addu $s1, $t7, $t8 /* AB77D0 80040630 8FA800E4 */ lw $t0, 0xe4($sp) .L80040634: /* AB77D4 80040634 8E5913F8 */ lw $t9, 0x13f8($s2) /* AB77D8 80040638 950A0000 */ lhu $t2, ($t0) /* AB77DC 8004063C 000A5880 */ sll $t3, $t2, 2 /* AB77E0 80040640 032B8821 */ addu $s1, $t9, $t3 .L80040644: /* AB77E4 80040644 86220000 */ lh $v0, ($s1) /* AB77E8 80040648 8E4913F0 */ lw $t1, 0x13f0($s2) /* AB77EC 8004064C 27A500C0 */ addiu $a1, $sp, 0xc0 /* AB77F0 80040650 00026100 */ sll $t4, $v0, 4 /* AB77F4 80040654 012C8021 */ addu $s0, $t1, $t4 /* AB77F8 80040658 02002025 */ move $a0, $s0 /* AB77FC 8004065C 27A600BC */ addiu $a2, $sp, 0xbc /* AB7800 80040660 0C00E275 */ jal func_800389D4 /* AB7804 80040664 27A700B8 */ addiu $a3, $sp, 0xb8 /* AB7808 80040668 C7AC00C0 */ lwc1 $f12, 0xc0($sp) /* AB780C 8004066C C7AE00B8 */ lwc1 $f14, 0xb8($sp) /* AB7810 80040670 3C018014 */ lui $at, %hi(D_80138FBC) /* AB7814 80040674 460C6202 */ mul.s $f8, $f12, $f12 /* AB7818 80040678 C4248FBC */ lwc1 $f4, %lo(D_80138FBC)($at) /* AB781C 8004067C 3C048014 */ lui $a0, %hi(D_80138F14) # $a0, 0x8014 /* AB7820 80040680 460E7282 */ mul.s $f10, $f14, $f14 /* AB7824 80040684 3C058014 */ lui $a1, %hi(D_80138F28) # $a1, 0x8014 /* AB7828 80040688 24A58F28 */ addiu $a1, %lo(D_80138F28) # addiu $a1, $a1, -0x70d8 /* AB782C 8004068C 24848F14 */ addiu $a0, %lo(D_80138F14) # addiu $a0, $a0, -0x70ec /* AB7830 80040690 460A4000 */ add.s $f0, $f8, $f10 /* AB7834 80040694 46000504 */ sqrt.s $f20, $f0 /* AB7838 80040698 4600A005 */ abs.s $f0, $f20 /* AB783C 8004069C 4604003C */ c.lt.s $f0, $f4 /* AB7840 800406A0 00000000 */ nop /* AB7844 800406A4 45020004 */ bc1fl .L800406B8 /* AB7848 800406A8 860D000E */ lh $t5, 0xe($s0) /* AB784C 800406AC 0C0007FC */ jal __assert /* AB7850 800406B0 24061D41 */ li $a2, 7489 /* AB7854 800406B4 860D000E */ lh $t5, 0xe($s0) .L800406B8: /* AB7858 800406B8 AFB50010 */ sw $s5, 0x10($sp) /* AB785C 800406BC C7AC00C0 */ lwc1 $f12, 0xc0($sp) /* AB7860 800406C0 448D3000 */ mtc1 $t5, $f6 /* AB7864 800406C4 C7AE00BC */ lwc1 $f14, 0xbc($sp) /* AB7868 800406C8 8FA600B8 */ lw $a2, 0xb8($sp) /* AB786C 800406CC 468031A0 */ cvt.s.w $f6, $f6 /* AB7870 800406D0 44073000 */ mfc1 $a3, $f6 /* AB7874 800406D4 0C0332C3 */ jal func_800CCB0C /* AB7878 800406D8 00000000 */ nop /* AB787C 800406DC 46000606 */ mov.s $f24, $f0 /* AB7880 800406E0 46000005 */ abs.s $f0, $f0 /* AB7884 800406E4 97AE00DE */ lhu $t6, 0xde($sp) /* AB7888 800406E8 4600B03C */ c.lt.s $f22, $f0 /* AB788C 800406EC 00000000 */ nop /* AB7890 800406F0 45030008 */ bc1tl .L80040714 /* AB7894 800406F4 96220002 */ lhu $v0, 2($s1) /* AB7898 800406F8 96020002 */ lhu $v0, 2($s0) /* AB789C 800406FC 31CF0007 */ andi $t7, $t6, 7 /* AB78A0 80040700 000FC340 */ sll $t8, $t7, 0xd /* AB78A4 80040704 00584024 */ and $t0, $v0, $t8 /* AB78A8 80040708 11000008 */ beqz $t0, .L8004072C /* AB78AC 8004070C 3C013F80 */ li $at, 0x3F800000 # 0.000000 /* AB78B0 80040710 96220002 */ lhu $v0, 2($s1) .L80040714: /* AB78B4 80040714 52620092 */ beql $s3, $v0, .L80040960 /* AB78B8 80040718 C7A400AC */ lwc1 $f4, 0xac($sp) /* AB78BC 8004071C 8E4A13F8 */ lw $t2, 0x13f8($s2) /* AB78C0 80040720 0002C880 */ sll $t9, $v0, 2 /* AB78C4 80040724 1000FFC7 */ b .L80040644 /* AB78C8 80040728 01598821 */ addu $s1, $t2, $t9 .L8004072C: /* AB78CC 8004072C 44814000 */ mtc1 $at, $f8 /* AB78D0 80040730 C7AC00C0 */ lwc1 $f12, 0xc0($sp) /* AB78D4 80040734 3C018014 */ lui $at, %hi(D_80138FC0) /* AB78D8 80040738 46144403 */ div.s $f16, $f8, $f20 /* AB78DC 8004073C C42A8FC0 */ lwc1 $f10, %lo(D_80138FC0)($at) /* AB78E0 80040740 304C1FFF */ andi $t4, $v0, 0x1fff /* AB78E4 80040744 46006005 */ abs.s $f0, $f12 /* AB78E8 80040748 46100482 */ mul.s $f18, $f0, $f16 /* AB78EC 8004074C 460A903C */ c.lt.s $f18, $f10 /* AB78F0 80040750 00000000 */ nop /* AB78F4 80040754 45000008 */ bc1f .L80040778 /* AB78F8 80040758 00000000 */ nop /* AB78FC 8004075C 96220002 */ lhu $v0, 2($s1) /* AB7900 80040760 5262007F */ beql $s3, $v0, .L80040960 /* AB7904 80040764 C7A400AC */ lwc1 $f4, 0xac($sp) /* AB7908 80040768 8E4B13F8 */ lw $t3, 0x13f8($s2) /* AB790C 8004076C 00024880 */ sll $t1, $v0, 2 /* AB7910 80040770 1000FFB4 */ b .L80040644 /* AB7914 80040774 01698821 */ addu $s1, $t3, $t1 .L80040778: /* AB7918 80040778 01940019 */ multu $t4, $s4 /* AB791C 8004077C 96180004 */ lhu $t8, 4($s0) /* AB7920 80040780 8E4513F4 */ lw $a1, 0x13f4($s2) /* AB7924 80040784 33081FFF */ andi $t0, $t8, 0x1fff /* AB7928 80040788 00006812 */ mflo $t5 /* AB792C 8004078C 00AD7021 */ addu $t6, $a1, $t5 /* AB7930 80040790 85CF0000 */ lh $t7, ($t6) /* AB7934 80040794 01140019 */ multu $t0, $s4 /* AB7938 80040798 448F2000 */ mtc1 $t7, $f4 /* AB793C 8004079C 00000000 */ nop /* AB7940 800407A0 46802320 */ cvt.s.w $f12, $f4 /* AB7944 800407A4 00005012 */ mflo $t2 /* AB7948 800407A8 00AAC821 */ addu $t9, $a1, $t2 /* AB794C 800407AC 872B0000 */ lh $t3, ($t9) /* AB7950 800407B0 46006086 */ mov.s $f2, $f12 /* AB7954 800407B4 448B3000 */ mtc1 $t3, $f6 /* AB7958 800407B8 00000000 */ nop /* AB795C 800407BC 46803020 */ cvt.s.w $f0, $f6 /* AB7960 800407C0 4602003C */ c.lt.s $f0, $f2 /* AB7964 800407C4 00000000 */ nop /* AB7968 800407C8 45020004 */ bc1fl .L800407DC /* AB796C 800407CC 4600603C */ c.lt.s $f12, $f0 /* AB7970 800407D0 10000006 */ b .L800407EC /* AB7974 800407D4 46000086 */ mov.s $f2, $f0 /* AB7978 800407D8 4600603C */ c.lt.s $f12, $f0 .L800407DC: /* AB797C 800407DC 00000000 */ nop /* AB7980 800407E0 45020003 */ bc1fl .L800407F0 /* AB7984 800407E4 96090006 */ lhu $t1, 6($s0) /* AB7988 800407E8 46000306 */ mov.s $f12, $f0 .L800407EC: /* AB798C 800407EC 96090006 */ lhu $t1, 6($s0) .L800407F0: /* AB7990 800407F0 00096080 */ sll $t4, $t1, 2 /* AB7994 800407F4 01896023 */ subu $t4, $t4, $t1 /* AB7998 800407F8 000C6040 */ sll $t4, $t4, 1 /* AB799C 800407FC 00AC6821 */ addu $t5, $a1, $t4 /* AB79A0 80040800 85AE0000 */ lh $t6, ($t5) /* AB79A4 80040804 448E4000 */ mtc1 $t6, $f8 /* AB79A8 80040808 00000000 */ nop /* AB79AC 8004080C 46804020 */ cvt.s.w $f0, $f8 /* AB79B0 80040810 4602003C */ c.lt.s $f0, $f2 /* AB79B4 80040814 00000000 */ nop /* AB79B8 80040818 45020004 */ bc1fl .L8004082C /* AB79BC 8004081C 4600603C */ c.lt.s $f12, $f0 /* AB79C0 80040820 10000006 */ b .L8004083C /* AB79C4 80040824 46000086 */ mov.s $f2, $f0 /* AB79C8 80040828 4600603C */ c.lt.s $f12, $f0 .L8004082C: /* AB79CC 8004082C 00000000 */ nop /* AB79D0 80040830 45020003 */ bc1fl .L80040840 /* AB79D4 80040834 46161081 */ sub.s $f2, $f2, $f22 /* AB79D8 80040838 46000306 */ mov.s $f12, $f0 .L8004083C: /* AB79DC 8004083C 46161081 */ sub.s $f2, $f2, $f22 .L80040840: /* AB79E0 80040840 C7AE00AC */ lwc1 $f14, 0xac($sp) /* AB79E4 80040844 46166300 */ add.s $f12, $f12, $f22 /* AB79E8 80040848 4602703C */ c.lt.s $f14, $f2 /* AB79EC 8004084C 00000000 */ nop /* AB79F0 80040850 45030008 */ bc1tl .L80040874 /* AB79F4 80040854 96220002 */ lhu $v0, 2($s1) /* AB79F8 80040858 460E603C */ c.lt.s $f12, $f14 /* AB79FC 8004085C 02002025 */ move $a0, $s0 /* AB7A00 80040860 8FA800F8 */ lw $t0, 0xf8($sp) /* AB7A04 80040864 8FA700B4 */ lw $a3, 0xb4($sp) /* AB7A08 80040868 45000008 */ bc1f .L8004088C /* AB7A0C 8004086C 27AA00D0 */ addiu $t2, $sp, 0xd0 /* AB7A10 80040870 96220002 */ lhu $v0, 2($s1) .L80040874: /* AB7A14 80040874 5262003A */ beql $s3, $v0, .L80040960 /* AB7A18 80040878 C7A400AC */ lwc1 $f4, 0xac($sp) /* AB7A1C 8004087C 8E4F13F8 */ lw $t7, 0x13f8($s2) /* AB7A20 80040880 0002C080 */ sll $t8, $v0, 2 /* AB7A24 80040884 1000FF6F */ b .L80040644 /* AB7A28 80040888 01F88821 */ addu $s1, $t7, $t8 .L8004088C: /* AB7A2C 8004088C 8D060004 */ lw $a2, 4($t0) /* AB7A30 80040890 E7B20090 */ swc1 $f18, 0x90($sp) /* AB7A34 80040894 E7B00070 */ swc1 $f16, 0x70($sp) /* AB7A38 80040898 0C00E3D8 */ jal func_80038F60 /* AB7A3C 8004089C AFAA0010 */ sw $t2, 0x10($sp) /* AB7A40 800408A0 C7B00070 */ lwc1 $f16, 0x70($sp) /* AB7A44 800408A4 10400026 */ beqz $v0, .L80040940 /* AB7A48 800408A8 C7B20090 */ lwc1 $f18, 0x90($sp) /* AB7A4C 800408AC 4612B103 */ div.s $f4, $f22, $f18 /* AB7A50 800408B0 C7AE00AC */ lwc1 $f14, 0xac($sp) /* AB7A54 800408B4 C7AA00D0 */ lwc1 $f10, 0xd0($sp) /* AB7A58 800408B8 C7AC00C0 */ lwc1 $f12, 0xc0($sp) /* AB7A5C 800408BC 460E5081 */ sub.s $f2, $f10, $f14 /* AB7A60 800408C0 46001005 */ abs.s $f0, $f2 /* AB7A64 800408C4 4604003E */ c.le.s $f0, $f4 /* AB7A68 800408C8 00000000 */ nop /* AB7A6C 800408CC 4502001D */ bc1fl .L80040944 /* AB7A70 800408D0 96220002 */ lhu $v0, 2($s1) /* AB7A74 800408D4 460C1202 */ mul.s $f8, $f2, $f12 /* AB7A78 800408D8 3C014080 */ li $at, 0x40800000 # 0.000000 /* AB7A7C 800408DC 44813000 */ mtc1 $at, $f6 /* AB7A80 800408E0 C7AE00B8 */ lwc1 $f14, 0xb8($sp) /* AB7A84 800408E4 8FA400D8 */ lw $a0, 0xd8($sp) /* AB7A88 800408E8 02002825 */ move $a1, $s0 /* AB7A8C 800408EC 02A03025 */ move $a2, $s5 /* AB7A90 800408F0 4606403E */ c.le.s $f8, $f6 /* AB7A94 800408F4 27A700B4 */ addiu $a3, $sp, 0xb4 /* AB7A98 800408F8 240B0001 */ li $t3, 1 /* AB7A9C 800408FC 45020011 */ bc1fl .L80040944 /* AB7AA0 80040900 96220002 */ lhu $v0, 2($s1) /* AB7AA4 80040904 C7AA00BC */ lwc1 $f10, 0xbc($sp) /* AB7AA8 80040908 8FB900F0 */ lw $t9, 0xf0($sp) /* AB7AAC 8004090C E7AC0010 */ swc1 $f12, 0x10($sp) /* AB7AB0 80040910 E7AE0018 */ swc1 $f14, 0x18($sp) /* AB7AB4 80040914 E7B0001C */ swc1 $f16, 0x1c($sp) /* AB7AB8 80040918 E7B80020 */ swc1 $f24, 0x20($sp) /* AB7ABC 8004091C E7B60024 */ swc1 $f22, 0x24($sp) /* AB7AC0 80040920 AFAB00CC */ sw $t3, 0xcc($sp) /* AB7AC4 80040924 E7AA0014 */ swc1 $f10, 0x14($sp) /* AB7AC8 80040928 0C00E68F */ jal func_80039A3C /* AB7ACC 8004092C AFB90028 */ sw $t9, 0x28($sp) /* AB7AD0 80040930 10400003 */ beqz $v0, .L80040940 /* AB7AD4 80040934 8FA90100 */ lw $t1, 0x100($sp) /* AB7AD8 80040938 8FAC00F4 */ lw $t4, 0xf4($sp) /* AB7ADC 8004093C AD890000 */ sw $t1, ($t4) .L80040940: /* AB7AE0 80040940 96220002 */ lhu $v0, 2($s1) .L80040944: /* AB7AE4 80040944 52620006 */ beql $s3, $v0, .L80040960 /* AB7AE8 80040948 C7A400AC */ lwc1 $f4, 0xac($sp) /* AB7AEC 8004094C 8E4D13F8 */ lw $t5, 0x13f8($s2) /* AB7AF0 80040950 00027080 */ sll $t6, $v0, 2 /* AB7AF4 80040954 1000FF3B */ b .L80040644 /* AB7AF8 80040958 01AE8821 */ addu $s1, $t5, $t6 /* AB7AFC 8004095C C7A400AC */ lwc1 $f4, 0xac($sp) .L80040960: /* AB7B00 80040960 8FAF00E8 */ lw $t7, 0xe8($sp) /* AB7B04 80040964 E5E40000 */ swc1 $f4, ($t7) /* AB7B08 80040968 8FB800EC */ lw $t8, 0xec($sp) /* AB7B0C 8004096C C7A600B4 */ lwc1 $f6, 0xb4($sp) /* AB7B10 80040970 E7060000 */ swc1 $f6, ($t8) /* AB7B14 80040974 8FA200CC */ lw $v0, 0xcc($sp) .L80040978: /* AB7B18 80040978 8FBF0064 */ lw $ra, 0x64($sp) /* AB7B1C 8004097C D7B40030 */ ldc1 $f20, 0x30($sp) /* AB7B20 80040980 D7B60038 */ ldc1 $f22, 0x38($sp) /* AB7B24 80040984 D7B80040 */ ldc1 $f24, 0x40($sp) /* AB7B28 80040988 8FB0004C */ lw $s0, 0x4c($sp) /* AB7B2C 8004098C 8FB10050 */ lw $s1, 0x50($sp) /* AB7B30 80040990 8FB20054 */ lw $s2, 0x54($sp) /* AB7B34 80040994 8FB30058 */ lw $s3, 0x58($sp) /* AB7B38 80040998 8FB4005C */ lw $s4, 0x5c($sp) /* AB7B3C 8004099C 8FB50060 */ lw $s5, 0x60($sp) /* AB7B40 800409A0 03E00008 */ jr $ra /* AB7B44 800409A4 27BD00D8 */ addiu $sp, $sp, 0xd8