.set noat # allow manual use of $at .set noreorder # don't insert nops after branches glabel func_E002254C /* 33778C E002254C 27BDFFA0 */ addiu $sp, $sp, -0x60 /* 337790 E0022550 AFB50024 */ sw $s5, 0x24($sp) /* 337794 E0022554 0080A82D */ daddu $s5, $a0, $zero /* 337798 E0022558 AFBF0034 */ sw $ra, 0x34($sp) /* 33779C E002255C AFBE0030 */ sw $fp, 0x30($sp) /* 3377A0 E0022560 AFB7002C */ sw $s7, 0x2c($sp) /* 3377A4 E0022564 AFB60028 */ sw $s6, 0x28($sp) /* 3377A8 E0022568 AFB40020 */ sw $s4, 0x20($sp) /* 3377AC E002256C AFB3001C */ sw $s3, 0x1c($sp) /* 3377B0 E0022570 AFB20018 */ sw $s2, 0x18($sp) /* 3377B4 E0022574 AFB10014 */ sw $s1, 0x14($sp) /* 3377B8 E0022578 AFB00010 */ sw $s0, 0x10($sp) /* 3377BC E002257C F7BC0058 */ sdc1 $f28, 0x58($sp) /* 3377C0 E0022580 F7BA0050 */ sdc1 $f26, 0x50($sp) /* 3377C4 E0022584 F7B80048 */ sdc1 $f24, 0x48($sp) /* 3377C8 E0022588 F7B60040 */ sdc1 $f22, 0x40($sp) /* 3377CC E002258C F7B40038 */ sdc1 $f20, 0x38($sp) /* 3377D0 E0022590 8EA4000C */ lw $a0, 0xc($s5) /* 3377D4 E0022594 0000A02D */ daddu $s4, $zero, $zero /* 3377D8 E0022598 0080F02D */ daddu $fp, $a0, $zero /* 3377DC E002259C 8C830020 */ lw $v1, 0x20($a0) /* 3377E0 E00225A0 8C820024 */ lw $v0, 0x24($a0) /* 3377E4 E00225A4 8C930000 */ lw $s3, ($a0) /* 3377E8 E00225A8 24630001 */ addiu $v1, $v1, 1 /* 3377EC E00225AC 0060902D */ daddu $s2, $v1, $zero /* 3377F0 E00225B0 2442FFFF */ addiu $v0, $v0, -1 /* 3377F4 E00225B4 AC820024 */ sw $v0, 0x24($a0) /* 3377F8 E00225B8 12600004 */ beqz $s3, .LE00225CC /* 3377FC E00225BC AC920020 */ sw $s2, 0x20($a0) /* 337800 E00225C0 2402000A */ addiu $v0, $zero, 0xa /* 337804 E00225C4 56620004 */ bnel $s3, $v0, .LE00225D8 /* 337808 E00225C8 24840030 */ addiu $a0, $a0, 0x30 .LE00225CC: /* 33780C E00225CC 8C820024 */ lw $v0, 0x24($a0) /* 337810 E00225D0 044000D0 */ bltz $v0, .LE0022914 /* 337814 E00225D4 24840030 */ addiu $a0, $a0, 0x30 .LE00225D8: /* 337818 E00225D8 8EA20008 */ lw $v0, 8($s5) /* 33781C E00225DC 2442FFFF */ addiu $v0, $v0, -1 /* 337820 E00225E0 184000C3 */ blez $v0, .LE00228F0 /* 337824 E00225E4 0000882D */ daddu $s1, $zero, $zero /* 337828 E00225E8 2417000A */ addiu $s7, $zero, 0xa /* 33782C E00225EC 3C16E002 */ lui $s6, 0xe002 /* 337830 E00225F0 26D62D1C */ addiu $s6, $s6, 0x2d1c /* 337834 E00225F4 2490001C */ addiu $s0, $a0, 0x1c /* 337838 E00225F8 3C01E002 */ lui $at, 0xe002 /* 33783C E00225FC D43A2D58 */ ldc1 $f26, 0x2d58($at) /* 337840 E0022600 3C01E002 */ lui $at, 0xe002 /* 337844 E0022604 D43C2D60 */ ldc1 $f28, 0x2d60($at) /* 337848 E0022608 3C01E002 */ lui $at, 0xe002 /* 33784C E002260C D4382D68 */ ldc1 $f24, 0x2d68($at) .LE0022610: /* 337850 E0022610 02511021 */ addu $v0, $s2, $s1 /* 337854 E0022614 30420007 */ andi $v0, $v0, 7 /* 337858 E0022618 12600005 */ beqz $s3, .LE0022630 /* 33785C E002261C AE020010 */ sw $v0, 0x10($s0) /* 337860 E0022620 12770057 */ beq $s3, $s7, .LE0022780 /* 337864 E0022624 00000000 */ nop /* 337868 E0022628 08008A00 */ j .LE0022800 /* 33786C E002262C 00000000 */ nop .LE0022630: /* 337870 E0022630 C600FFFC */ lwc1 $f0, -4($s0) /* 337874 E0022634 3C01E002 */ lui $at, 0xe002 /* 337878 E0022638 D4222D70 */ ldc1 $f2, 0x2d70($at) /* 33787C E002263C 46000021 */ cvt.d.s $f0, $f0 /* 337880 E0022640 46220000 */ add.d $f0, $f0, $f2 /* 337884 E0022644 2644FFFF */ addiu $a0, $s2, -1 /* 337888 E0022648 28820007 */ slti $v0, $a0, 7 /* 33788C E002264C 46200020 */ cvt.s.d $f0, $f0 /* 337890 E0022650 10400029 */ beqz $v0, .LE00226F8 /* 337894 E0022654 E600FFFC */ swc1 $f0, -4($s0) /* 337898 E0022658 3C03E002 */ lui $v1, 0xe002 /* 33789C E002265C 24632D14 */ addiu $v1, $v1, 0x2d14 /* 3378A0 E0022660 00831821 */ addu $v1, $a0, $v1 /* 3378A4 E0022664 90620000 */ lbu $v0, ($v1) /* 3378A8 E0022668 C600FFF4 */ lwc1 $f0, -0xc($s0) /* 3378AC E002266C 44821000 */ mtc1 $v0, $f2 /* 3378B0 E0022670 00000000 */ nop /* 3378B4 E0022674 468010A0 */ cvt.s.w $f2, $f2 /* 3378B8 E0022678 46020002 */ mul.s $f0, $f0, $f2 /* 3378BC E002267C 00000000 */ nop /* 3378C0 E0022680 46000021 */ cvt.d.s $f0, $f0 /* 3378C4 E0022684 463A0002 */ mul.d $f0, $f0, $f26 /* 3378C8 E0022688 00000000 */ nop /* 3378CC E002268C 46200020 */ cvt.s.d $f0, $f0 /* 3378D0 E0022690 E600FFE8 */ swc1 $f0, -0x18($s0) /* 3378D4 E0022694 90620000 */ lbu $v0, ($v1) /* 3378D8 E0022698 C602FFF8 */ lwc1 $f2, -8($s0) /* 3378DC E002269C 44820000 */ mtc1 $v0, $f0 /* 3378E0 E00226A0 00000000 */ nop /* 3378E4 E00226A4 46800020 */ cvt.s.w $f0, $f0 /* 3378E8 E00226A8 46001082 */ mul.s $f2, $f2, $f0 /* 3378EC E00226AC 00000000 */ nop /* 3378F0 E00226B0 460010A1 */ cvt.d.s $f2, $f2 /* 3378F4 E00226B4 463A1082 */ mul.d $f2, $f2, $f26 /* 3378F8 E00226B8 00000000 */ nop /* 3378FC E00226BC C600FFFC */ lwc1 $f0, -4($s0) /* 337900 E00226C0 46000021 */ cvt.d.s $f0, $f0 /* 337904 E00226C4 46201080 */ add.d $f2, $f2, $f0 /* 337908 E00226C8 00961021 */ addu $v0, $a0, $s6 /* 33790C E00226CC 462010A0 */ cvt.s.d $f2, $f2 /* 337910 E00226D0 E602FFEC */ swc1 $f2, -0x14($s0) /* 337914 E00226D4 90420000 */ lbu $v0, ($v0) /* 337918 E00226D8 44820000 */ mtc1 $v0, $f0 /* 33791C E00226DC 00000000 */ nop /* 337920 E00226E0 46800020 */ cvt.s.w $f0, $f0 /* 337924 E00226E4 46000021 */ cvt.d.s $f0, $f0 /* 337928 E00226E8 463A0002 */ mul.d $f0, $f0, $f26 /* 33792C E00226EC 00000000 */ nop /* 337930 E00226F0 08008A35 */ j .LE00228D4 /* 337934 E00226F4 46200020 */ cvt.s.d $f0, $f0 .LE00226F8: /* 337938 E00226F8 24040168 */ addiu $a0, $zero, 0x168 /* 33793C E00226FC 0C080011 */ jal func_E0200044 /* 337940 E0022700 262500B1 */ addiu $a1, $s1, 0xb1 /* 337944 E0022704 32230003 */ andi $v1, $s1, 3 /* 337948 E0022708 3C013F00 */ lui $at, 0x3f00 /* 33794C E002270C 44810000 */ mtc1 $at, $f0 /* 337950 E0022710 4483A000 */ mtc1 $v1, $f20 /* 337954 E0022714 00000000 */ nop /* 337958 E0022718 4680A520 */ cvt.s.w $f20, $f20 /* 33795C E002271C 4600A502 */ mul.s $f20, $f20, $f0 /* 337960 E0022720 00000000 */ nop /* 337964 E0022724 4482B000 */ mtc1 $v0, $f22 /* 337968 E0022728 00000000 */ nop /* 33796C E002272C 4680B5A0 */ cvt.s.w $f22, $f22 /* 337970 E0022730 3C013F80 */ lui $at, 0x3f80 /* 337974 E0022734 44810000 */ mtc1 $at, $f0 /* 337978 E0022738 4600B306 */ mov.s $f12, $f22 /* 33797C E002273C 4600A500 */ add.s $f20, $f20, $f0 /* 337980 E0022740 0C080140 */ jal func_E0200500 /* 337984 E0022744 AFD70000 */ sw $s7, ($fp) /* 337988 E0022748 4600A002 */ mul.s $f0, $f20, $f0 /* 33798C E002274C 00000000 */ nop /* 337990 E0022750 4600B306 */ mov.s $f12, $f22 /* 337994 E0022754 0C080144 */ jal func_E0200510 /* 337998 E0022758 E600FFF4 */ swc1 $f0, -0xc($s0) /* 33799C E002275C 4600A502 */ mul.s $f20, $f20, $f0 /* 3379A0 E0022760 00000000 */ nop /* 3379A4 E0022764 3C01BD4C */ lui $at, 0xbd4c /* 3379A8 E0022768 3421CCCD */ ori $at, $at, 0xcccd /* 3379AC E002276C 44810000 */ mtc1 $at, $f0 /* 3379B0 E0022770 00000000 */ nop /* 3379B4 E0022774 E600FFFC */ swc1 $f0, -4($s0) /* 3379B8 E0022778 08008A36 */ j .LE00228D8 /* 3379BC E002277C E614FFF8 */ swc1 $f20, -8($s0) .LE0022780: /* 3379C0 E0022780 C600FFF4 */ lwc1 $f0, -0xc($s0) /* 3379C4 E0022784 46000021 */ cvt.d.s $f0, $f0 /* 3379C8 E0022788 463C0002 */ mul.d $f0, $f0, $f28 /* 3379CC E002278C 00000000 */ nop /* 3379D0 E0022790 C602FFF8 */ lwc1 $f2, -8($s0) /* 3379D4 E0022794 460010A1 */ cvt.d.s $f2, $f2 /* 3379D8 E0022798 463C1082 */ mul.d $f2, $f2, $f28 /* 3379DC E002279C 00000000 */ nop /* 3379E0 E00227A0 C6040000 */ lwc1 $f4, ($s0) /* 3379E4 E00227A4 46002121 */ cvt.d.s $f4, $f4 /* 3379E8 E00227A8 4624C181 */ sub.d $f6, $f24, $f4 /* 3379EC E00227AC 46383182 */ mul.d $f6, $f6, $f24 /* 3379F0 E00227B0 00000000 */ nop /* 3379F4 E00227B4 C608FFE8 */ lwc1 $f8, -0x18($s0) /* 3379F8 E00227B8 46200020 */ cvt.s.d $f0, $f0 /* 3379FC E00227BC E600FFF4 */ swc1 $f0, -0xc($s0) /* 337A00 E00227C0 C600FFFC */ lwc1 $f0, -4($s0) /* 337A04 E00227C4 462010A0 */ cvt.s.d $f2, $f2 /* 337A08 E00227C8 46001000 */ add.s $f0, $f2, $f0 /* 337A0C E00227CC C60AFFF4 */ lwc1 $f10, -0xc($s0) /* 337A10 E00227D0 460A4200 */ add.s $f8, $f8, $f10 /* 337A14 E00227D4 E602FFF8 */ swc1 $f2, -8($s0) /* 337A18 E00227D8 46262100 */ add.d $f4, $f4, $f6 /* 337A1C E00227DC E600FFF8 */ swc1 $f0, -8($s0) /* 337A20 E00227E0 C600FFEC */ lwc1 $f0, -0x14($s0) /* 337A24 E00227E4 C602FFF8 */ lwc1 $f2, -8($s0) /* 337A28 E00227E8 E608FFE8 */ swc1 $f8, -0x18($s0) /* 337A2C E00227EC 46020000 */ add.s $f0, $f0, $f2 /* 337A30 E00227F0 46202120 */ cvt.s.d $f4, $f4 /* 337A34 E00227F4 E6040000 */ swc1 $f4, ($s0) /* 337A38 E00227F8 08008A36 */ j .LE00228D8 /* 337A3C E00227FC E600FFEC */ swc1 $f0, -0x14($s0) .LE0022800: /* 337A40 E0022800 C600FFF4 */ lwc1 $f0, -0xc($s0) /* 337A44 E0022804 3C01E002 */ lui $at, 0xe002 /* 337A48 E0022808 D4222D78 */ ldc1 $f2, 0x2d78($at) /* 337A4C E002280C 46000021 */ cvt.d.s $f0, $f0 /* 337A50 E0022810 46220002 */ mul.d $f0, $f0, $f2 /* 337A54 E0022814 00000000 */ nop /* 337A58 E0022818 C604FFF8 */ lwc1 $f4, -8($s0) /* 337A5C E002281C C602FFFC */ lwc1 $f2, -4($s0) /* 337A60 E0022820 46022100 */ add.s $f4, $f4, $f2 /* 337A64 E0022824 8E020008 */ lw $v0, 8($s0) /* 337A68 E0022828 E604FFF8 */ swc1 $f4, -8($s0) /* 337A6C E002282C 46200020 */ cvt.s.d $f0, $f0 /* 337A70 E0022830 E600FFF4 */ swc1 $f0, -0xc($s0) /* 337A74 E0022834 04410002 */ bgez $v0, .LE0022840 /* 337A78 E0022838 46000086 */ mov.s $f2, $f0 /* 337A7C E002283C 26940001 */ addiu $s4, $s4, 1 .LE0022840: /* 337A80 E0022840 C600FFE8 */ lwc1 $f0, -0x18($s0) /* 337A84 E0022844 8E020008 */ lw $v0, 8($s0) /* 337A88 E0022848 46020000 */ add.s $f0, $f0, $f2 /* 337A8C E002284C C602FFEC */ lwc1 $f2, -0x14($s0) /* 337A90 E0022850 2442FFFF */ addiu $v0, $v0, -1 /* 337A94 E0022854 AE020008 */ sw $v0, 8($s0) /* 337A98 E0022858 46041080 */ add.s $f2, $f2, $f4 /* 337A9C E002285C 2C420015 */ sltiu $v0, $v0, 0x15 /* 337AA0 E0022860 E600FFE8 */ swc1 $f0, -0x18($s0) /* 337AA4 E0022864 14400004 */ bnez $v0, .LE0022878 /* 337AA8 E0022868 E602FFEC */ swc1 $f2, -0x14($s0) /* 337AAC E002286C 2402FFFF */ addiu $v0, $zero, -1 /* 337AB0 E0022870 08008A36 */ j .LE00228D8 /* 337AB4 E0022874 AE020010 */ sw $v0, 0x10($s0) .LE0022878: /* 337AB8 E0022878 8E030004 */ lw $v1, 4($s0) /* 337ABC E002287C 24620001 */ addiu $v0, $v1, 1 /* 337AC0 E0022880 0040902D */ daddu $s2, $v0, $zero /* 337AC4 E0022884 28620007 */ slti $v0, $v1, 7 /* 337AC8 E0022888 1040000B */ beqz $v0, .LE00228B8 /* 337ACC E002288C AE120004 */ sw $s2, 4($s0) /* 337AD0 E0022890 00761021 */ addu $v0, $v1, $s6 /* 337AD4 E0022894 90420000 */ lbu $v0, ($v0) /* 337AD8 E0022898 44820000 */ mtc1 $v0, $f0 /* 337ADC E002289C 00000000 */ nop /* 337AE0 E00228A0 46800020 */ cvt.s.w $f0, $f0 /* 337AE4 E00228A4 46000021 */ cvt.d.s $f0, $f0 /* 337AE8 E00228A8 463A0002 */ mul.d $f0, $f0, $f26 /* 337AEC E00228AC 00000000 */ nop /* 337AF0 E00228B0 08008A35 */ j .LE00228D4 /* 337AF4 E00228B4 46200020 */ cvt.s.d $f0, $f0 .LE00228B8: /* 337AF8 E00228B8 C6000000 */ lwc1 $f0, ($s0) /* 337AFC E00228BC 46000021 */ cvt.d.s $f0, $f0 /* 337B00 E00228C0 4620C081 */ sub.d $f2, $f24, $f0 /* 337B04 E00228C4 46381082 */ mul.d $f2, $f2, $f24 /* 337B08 E00228C8 00000000 */ nop /* 337B0C E00228CC 46220000 */ add.d $f0, $f0, $f2 /* 337B10 E00228D0 46200020 */ cvt.s.d $f0, $f0 .LE00228D4: /* 337B14 E00228D4 E6000000 */ swc1 $f0, ($s0) .LE00228D8: /* 337B18 E00228D8 26310001 */ addiu $s1, $s1, 1 /* 337B1C E00228DC 8EA20008 */ lw $v0, 8($s5) /* 337B20 E00228E0 2442FFFF */ addiu $v0, $v0, -1 /* 337B24 E00228E4 0222102A */ slt $v0, $s1, $v0 /* 337B28 E00228E8 1440FF49 */ bnez $v0, .LE0022610 /* 337B2C E00228EC 26100030 */ addiu $s0, $s0, 0x30 .LE00228F0: /* 337B30 E00228F0 1260000A */ beqz $s3, .LE002291C /* 337B34 E00228F4 2402000A */ addiu $v0, $zero, 0xa /* 337B38 E00228F8 12620008 */ beq $s3, $v0, .LE002291C /* 337B3C E00228FC 00000000 */ nop /* 337B40 E0022900 8EA20008 */ lw $v0, 8($s5) /* 337B44 E0022904 2442FFFF */ addiu $v0, $v0, -1 /* 337B48 E0022908 0282102A */ slt $v0, $s4, $v0 /* 337B4C E002290C 14400003 */ bnez $v0, .LE002291C /* 337B50 E0022910 00000000 */ nop .LE0022914: /* 337B54 E0022914 0C080128 */ jal func_E02004A0 /* 337B58 E0022918 02A0202D */ daddu $a0, $s5, $zero .LE002291C: /* 337B5C E002291C 8FBF0034 */ lw $ra, 0x34($sp) /* 337B60 E0022920 8FBE0030 */ lw $fp, 0x30($sp) /* 337B64 E0022924 8FB7002C */ lw $s7, 0x2c($sp) /* 337B68 E0022928 8FB60028 */ lw $s6, 0x28($sp) /* 337B6C E002292C 8FB50024 */ lw $s5, 0x24($sp) /* 337B70 E0022930 8FB40020 */ lw $s4, 0x20($sp) /* 337B74 E0022934 8FB3001C */ lw $s3, 0x1c($sp) /* 337B78 E0022938 8FB20018 */ lw $s2, 0x18($sp) /* 337B7C E002293C 8FB10014 */ lw $s1, 0x14($sp) /* 337B80 E0022940 8FB00010 */ lw $s0, 0x10($sp) /* 337B84 E0022944 D7BC0058 */ ldc1 $f28, 0x58($sp) /* 337B88 E0022948 D7BA0050 */ ldc1 $f26, 0x50($sp) /* 337B8C E002294C D7B80048 */ ldc1 $f24, 0x48($sp) /* 337B90 E0022950 D7B60040 */ ldc1 $f22, 0x40($sp) /* 337B94 E0022954 D7B40038 */ ldc1 $f20, 0x38($sp) /* 337B98 E0022958 03E00008 */ jr $ra /* 337B9C E002295C 27BD0060 */ addiu $sp, $sp, 0x60