diff --git a/asm/non_matchings/math_util/code_802B4F60.s b/asm/non_matchings/math_util/code_802B4F60.s new file mode 100644 index 000000000..bc965df98 --- /dev/null +++ b/asm/non_matchings/math_util/code_802B4F60.s @@ -0,0 +1,175 @@ +glabel func_802B4F60 +/* 11E570 802B4F60 27BDFF90 */ addiu $sp, $sp, -0x70 +/* 11E574 802B4F64 AFBF0014 */ sw $ra, 0x14($sp) +/* 11E578 802B4F68 AFA40070 */ sw $a0, 0x70($sp) +/* 11E57C 802B4F6C AFA60078 */ sw $a2, 0x78($sp) +/* 11E580 802B4F70 AFA7007C */ sw $a3, 0x7c($sp) +/* 11E584 802B4F74 0C0AD4B6 */ jal vec3f_copy +/* 11E588 802B4F78 27A4001C */ addiu $a0, $sp, 0x1c +/* 11E58C 802B4F7C C7AC001C */ lwc1 $f12, 0x1c($sp) +/* 11E590 802B4F80 C7A4003C */ lwc1 $f4, 0x3c($sp) +/* 11E594 802B4F84 C7AE0020 */ lwc1 $f14, 0x20($sp) +/* 11E598 802B4F88 C7A8004C */ lwc1 $f8, 0x4c($sp) +/* 11E59C 802B4F8C 460C2182 */ mul.s $f6, $f4, $f12 +/* 11E5A0 802B4F90 C7A40024 */ lwc1 $f4, 0x24($sp) +/* 11E5A4 802B4F94 C7B2005C */ lwc1 $f18, 0x5c($sp) +/* 11E5A8 802B4F98 460E4282 */ mul.s $f10, $f8, $f14 +/* 11E5AC 802B4F9C 27A4001C */ addiu $a0, $sp, 0x1c +/* 11E5B0 802B4FA0 27A50030 */ addiu $a1, $sp, 0x30 +/* 11E5B4 802B4FA4 46049202 */ mul.s $f8, $f18, $f4 +/* 11E5B8 802B4FA8 460A3400 */ add.s $f16, $f6, $f10 +/* 11E5BC 802B4FAC C7AA006C */ lwc1 $f10, 0x6c($sp) +/* 11E5C0 802B4FB0 46088180 */ add.s $f6, $f16, $f8 +/* 11E5C4 802B4FB4 46065080 */ add.s $f2, $f10, $f6 +/* 11E5C8 802B4FB8 0C0AD90D */ jal func_802B6434 +/* 11E5CC 802B4FBC E7A2002C */ swc1 $f2, 0x2c($sp) +/* 11E5D0 802B4FC0 C7A2002C */ lwc1 $f2, 0x2c($sp) +/* 11E5D4 802B4FC4 44809000 */ mtc1 $zero, $f18 +/* 11E5D8 802B4FC8 8FBF0014 */ lw $ra, 0x14($sp) +/* 11E5DC 802B4FCC 24020001 */ li $v0, 1 +/* 11E5E0 802B4FD0 4612103E */ c.le.s $f2, $f18 +/* 11E5E4 802B4FD4 00000000 */ nop +/* 11E5E8 802B4FD8 45000003 */ bc1f .L802B4FE8 +/* 11E5EC 802B4FDC 00000000 */ nop +/* 11E5F0 802B4FE0 10000001 */ b .L802B4FE8 +/* 11E5F4 802B4FE4 00001025 */ move $v0, $zero +.L802B4FE8: +/* 11E5F8 802B4FE8 03E00008 */ jr $ra +/* 11E5FC 802B4FEC 27BD0070 */ addiu $sp, $sp, 0x70 + +/* 11E600 802B4FF0 03E00008 */ jr $ra +/* 11E604 802B4FF4 00000000 */ nop + +glabel func_802B4FF8 +/* 11E608 802B4FF8 3C068015 */ lui $a2, %hi(D_80150112) # $a2, 0x8015 +/* 11E60C 802B4FFC 24C60112 */ addiu $a2, %lo(D_80150112) # addiu $a2, $a2, 0x112 +/* 11E610 802B5000 94C20000 */ lhu $v0, ($a2) +/* 11E614 802B5004 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 11E618 802B5008 AFBF0014 */ sw $ra, 0x14($sp) +/* 11E61C 802B500C 28410080 */ slti $at, $v0, 0x80 +/* 11E620 802B5010 AFA40018 */ sw $a0, 0x18($sp) +/* 11E624 802B5014 14200003 */ bnez $at, .L802B5024 +/* 11E628 802B5018 00A03825 */ move $a3, $a1 +/* 11E62C 802B501C 1000006E */ b .L802B51D8 +/* 11E630 802B5020 00001025 */ move $v0, $zero +.L802B5024: +/* 11E634 802B5024 3C088015 */ lui $t0, %hi(gGfxPool) # $t0, 0x8015 +/* 11E638 802B5028 2508EF40 */ addiu $t0, %lo(gGfxPool) # addiu $t0, $t0, -0x10c0 +/* 11E63C 802B502C 8D0E0000 */ lw $t6, ($t0) +/* 11E640 802B5030 00027980 */ sll $t7, $v0, 6 +/* 11E644 802B5034 3409CAC0 */ li $t1, 51904 +/* 11E648 802B5038 01CFC021 */ addu $t8, $t6, $t7 +/* 11E64C 802B503C 03092021 */ addu $a0, $t8, $t1 +/* 11E650 802B5040 8FA50018 */ lw $a1, 0x18($sp) +/* 11E654 802B5044 0C0ADD7E */ jal func_802B75F8 +/* 11E658 802B5048 AFA7001C */ sw $a3, 0x1c($sp) +/* 11E65C 802B504C 8FA7001C */ lw $a3, 0x1c($sp) +/* 11E660 802B5050 3C068015 */ lui $a2, %hi(D_80150112) # $a2, 0x8015 +/* 11E664 802B5054 3C088015 */ lui $t0, %hi(gGfxPool) # $t0, 0x8015 +/* 11E668 802B5058 2508EF40 */ addiu $t0, %lo(gGfxPool) # addiu $t0, $t0, -0x10c0 +/* 11E66C 802B505C 24C60112 */ addiu $a2, %lo(D_80150112) # addiu $a2, $a2, 0x112 +/* 11E670 802B5060 10E0000C */ beqz $a3, .L802B5094 +/* 11E674 802B5064 3409CAC0 */ li $t1, 51904 +/* 11E678 802B5068 24010001 */ li $at, 1 +/* 11E67C 802B506C 10E1001E */ beq $a3, $at, .L802B50E8 +/* 11E680 802B5070 3C048015 */ lui $a0, %hi(gDisplayListHead) # 0x8015 +/* 11E684 802B5074 24010002 */ li $at, 2 +/* 11E688 802B5078 10E10043 */ beq $a3, $at, .L802B5188 +/* 11E68C 802B507C 3C048015 */ lui $a0, %hi(gDisplayListHead) # 0x8015 +/* 11E690 802B5080 24010003 */ li $at, 3 +/* 11E694 802B5084 10E1002C */ beq $a3, $at, .L802B5138 +/* 11E698 802B5088 3C048015 */ lui $a0, %hi(gDisplayListHead) # 0x8015 +/* 11E69C 802B508C 10000052 */ b .L802B51D8 +/* 11E6A0 802B5090 24020001 */ li $v0, 1 +.L802B5094: +/* 11E6A4 802B5094 3C048015 */ lui $a0, %hi(gDisplayListHead) # $a0, 0x8015 +/* 11E6A8 802B5098 24840298 */ addiu $a0, %lo(gDisplayListHead) # addiu $a0, $a0, 0x298 +/* 11E6AC 802B509C 8C820000 */ lw $v0, ($a0) +/* 11E6B0 802B50A0 3C0A0102 */ lui $t2, (0x01020040 >> 16) # lui $t2, 0x102 +/* 11E6B4 802B50A4 354A0040 */ ori $t2, (0x01020040 & 0xFFFF) # ori $t2, $t2, 0x40 +/* 11E6B8 802B50A8 24590008 */ addiu $t9, $v0, 8 +/* 11E6BC 802B50AC AC990000 */ sw $t9, ($a0) +/* 11E6C0 802B50B0 AC4A0000 */ sw $t2, ($v0) +/* 11E6C4 802B50B4 94CC0000 */ lhu $t4, ($a2) +/* 11E6C8 802B50B8 8D0B0000 */ lw $t3, ($t0) +/* 11E6CC 802B50BC 3C011FFF */ lui $at, (0x1FFFFFFF >> 16) # lui $at, 0x1fff +/* 11E6D0 802B50C0 000C6980 */ sll $t5, $t4, 6 +/* 11E6D4 802B50C4 016D7021 */ addu $t6, $t3, $t5 +/* 11E6D8 802B50C8 01C97821 */ addu $t7, $t6, $t1 +/* 11E6DC 802B50CC 3421FFFF */ ori $at, (0x1FFFFFFF & 0xFFFF) # ori $at, $at, 0xffff +/* 11E6E0 802B50D0 01E1C024 */ and $t8, $t7, $at +/* 11E6E4 802B50D4 AC580004 */ sw $t8, 4($v0) +/* 11E6E8 802B50D8 94D90000 */ lhu $t9, ($a2) +/* 11E6EC 802B50DC 272A0001 */ addiu $t2, $t9, 1 +/* 11E6F0 802B50E0 1000003C */ b .L802B51D4 +/* 11E6F4 802B50E4 A4CA0000 */ sh $t2, ($a2) +.L802B50E8: +/* 11E6F8 802B50E8 24840298 */ addiu $a0, $a0, %lo(gDisplayListHead) # 0x298 +/* 11E6FC 802B50EC 8C820000 */ lw $v0, ($a0) +/* 11E700 802B50F0 3C0B0106 */ lui $t3, (0x01060040 >> 16) # lui $t3, 0x106 +/* 11E704 802B50F4 356B0040 */ ori $t3, (0x01060040 & 0xFFFF) # ori $t3, $t3, 0x40 +/* 11E708 802B50F8 244C0008 */ addiu $t4, $v0, 8 +/* 11E70C 802B50FC AC8C0000 */ sw $t4, ($a0) +/* 11E710 802B5100 AC4B0000 */ sw $t3, ($v0) +/* 11E714 802B5104 94CE0000 */ lhu $t6, ($a2) +/* 11E718 802B5108 8D0D0000 */ lw $t5, ($t0) +/* 11E71C 802B510C 3C011FFF */ lui $at, (0x1FFFFFFF >> 16) # lui $at, 0x1fff +/* 11E720 802B5110 000E7980 */ sll $t7, $t6, 6 +/* 11E724 802B5114 01AFC021 */ addu $t8, $t5, $t7 +/* 11E728 802B5118 0309C821 */ addu $t9, $t8, $t1 +/* 11E72C 802B511C 3421FFFF */ ori $at, (0x1FFFFFFF & 0xFFFF) # ori $at, $at, 0xffff +/* 11E730 802B5120 03215024 */ and $t2, $t9, $at +/* 11E734 802B5124 AC4A0004 */ sw $t2, 4($v0) +/* 11E738 802B5128 94CC0000 */ lhu $t4, ($a2) +/* 11E73C 802B512C 258B0001 */ addiu $t3, $t4, 1 +/* 11E740 802B5130 10000028 */ b .L802B51D4 +/* 11E744 802B5134 A4CB0000 */ sh $t3, ($a2) +.L802B5138: +/* 11E748 802B5138 24840298 */ addiu $a0, $a0, %lo(gDisplayListHead) # 0x298 +/* 11E74C 802B513C 8C820000 */ lw $v0, ($a0) +/* 11E750 802B5140 3C0D0104 */ lui $t5, (0x01040040 >> 16) # lui $t5, 0x104 +/* 11E754 802B5144 35AD0040 */ ori $t5, (0x01040040 & 0xFFFF) # ori $t5, $t5, 0x40 +/* 11E758 802B5148 244E0008 */ addiu $t6, $v0, 8 +/* 11E75C 802B514C AC8E0000 */ sw $t6, ($a0) +/* 11E760 802B5150 AC4D0000 */ sw $t5, ($v0) +/* 11E764 802B5154 94D80000 */ lhu $t8, ($a2) +/* 11E768 802B5158 8D0F0000 */ lw $t7, ($t0) +/* 11E76C 802B515C 3C011FFF */ lui $at, (0x1FFFFFFF >> 16) # lui $at, 0x1fff +/* 11E770 802B5160 0018C980 */ sll $t9, $t8, 6 +/* 11E774 802B5164 01F95021 */ addu $t2, $t7, $t9 +/* 11E778 802B5168 01496021 */ addu $t4, $t2, $t1 +/* 11E77C 802B516C 3421FFFF */ ori $at, (0x1FFFFFFF & 0xFFFF) # ori $at, $at, 0xffff +/* 11E780 802B5170 01815824 */ and $t3, $t4, $at +/* 11E784 802B5174 AC4B0004 */ sw $t3, 4($v0) +/* 11E788 802B5178 94CE0000 */ lhu $t6, ($a2) +/* 11E78C 802B517C 25CD0001 */ addiu $t5, $t6, 1 +/* 11E790 802B5180 10000014 */ b .L802B51D4 +/* 11E794 802B5184 A4CD0000 */ sh $t5, ($a2) +.L802B5188: +/* 11E798 802B5188 24840298 */ addiu $a0, $a0, %lo(gDisplayListHead) # 0x298 +/* 11E79C 802B518C 8C820000 */ lw $v0, ($a0) +/* 11E7A0 802B5190 3C0F0100 */ lui $t7, (0x01000040 >> 16) # lui $t7, 0x100 +/* 11E7A4 802B5194 35EF0040 */ ori $t7, (0x01000040 & 0xFFFF) # ori $t7, $t7, 0x40 +/* 11E7A8 802B5198 24580008 */ addiu $t8, $v0, 8 +/* 11E7AC 802B519C AC980000 */ sw $t8, ($a0) +/* 11E7B0 802B51A0 AC4F0000 */ sw $t7, ($v0) +/* 11E7B4 802B51A4 94CA0000 */ lhu $t2, ($a2) +/* 11E7B8 802B51A8 8D190000 */ lw $t9, ($t0) +/* 11E7BC 802B51AC 3C011FFF */ lui $at, (0x1FFFFFFF >> 16) # lui $at, 0x1fff +/* 11E7C0 802B51B0 000A6180 */ sll $t4, $t2, 6 +/* 11E7C4 802B51B4 032C5821 */ addu $t3, $t9, $t4 +/* 11E7C8 802B51B8 01697021 */ addu $t6, $t3, $t1 +/* 11E7CC 802B51BC 3421FFFF */ ori $at, (0x1FFFFFFF & 0xFFFF) # ori $at, $at, 0xffff +/* 11E7D0 802B51C0 01C16824 */ and $t5, $t6, $at +/* 11E7D4 802B51C4 AC4D0004 */ sw $t5, 4($v0) +/* 11E7D8 802B51C8 94D80000 */ lhu $t8, ($a2) +/* 11E7DC 802B51CC 270F0001 */ addiu $t7, $t8, 1 +/* 11E7E0 802B51D0 A4CF0000 */ sh $t7, ($a2) +.L802B51D4: +/* 11E7E4 802B51D4 24020001 */ li $v0, 1 +.L802B51D8: +/* 11E7E8 802B51D8 8FBF0014 */ lw $ra, 0x14($sp) +/* 11E7EC 802B51DC 27BD0018 */ addiu $sp, $sp, 0x18 +/* 11E7F0 802B51E0 03E00008 */ jr $ra +/* 11E7F4 802B51E4 00000000 */ nop + diff --git a/asm/non_matchings/math_util/code_cont.s b/asm/non_matchings/math_util/code_cont.s new file mode 100644 index 000000000..9a0df8f3c --- /dev/null +++ b/asm/non_matchings/math_util/code_cont.s @@ -0,0 +1,3521 @@ + +glabel func_802B53C8 +/* 11E9D8 802B53C8 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 11E9DC 802B53CC 00801825 */ move $v1, $a0 +/* 11E9E0 802B53D0 44810000 */ mtc1 $at, $f0 +/* 11E9E4 802B53D4 44801000 */ mtc1 $zero, $f2 +/* 11E9E8 802B53D8 24040001 */ li $a0, 1 +/* 11E9EC 802B53DC 00001025 */ move $v0, $zero +/* 11E9F0 802B53E0 24070004 */ li $a3, 4 +/* 11E9F4 802B53E4 24060003 */ li $a2, 3 +/* 11E9F8 802B53E8 24050002 */ li $a1, 2 +.L802B53EC: +/* 11E9FC 802B53EC 54400004 */ bnel $v0, $zero, .L802B5400 +/* 11EA00 802B53F0 E4620000 */ swc1 $f2, ($v1) +/* 11EA04 802B53F4 10000002 */ b .L802B5400 +/* 11EA08 802B53F8 E4600000 */ swc1 $f0, ($v1) +/* 11EA0C 802B53FC E4620000 */ swc1 $f2, ($v1) +.L802B5400: +/* 11EA10 802B5400 54440004 */ bnel $v0, $a0, .L802B5414 +/* 11EA14 802B5404 E4620004 */ swc1 $f2, 4($v1) +/* 11EA18 802B5408 10000002 */ b .L802B5414 +/* 11EA1C 802B540C E4600004 */ swc1 $f0, 4($v1) +/* 11EA20 802B5410 E4620004 */ swc1 $f2, 4($v1) +.L802B5414: +/* 11EA24 802B5414 54450004 */ bnel $v0, $a1, .L802B5428 +/* 11EA28 802B5418 E4620008 */ swc1 $f2, 8($v1) +/* 11EA2C 802B541C 10000002 */ b .L802B5428 +/* 11EA30 802B5420 E4600008 */ swc1 $f0, 8($v1) +/* 11EA34 802B5424 E4620008 */ swc1 $f2, 8($v1) +.L802B5428: +/* 11EA38 802B5428 54460004 */ bnel $v0, $a2, .L802B543C +/* 11EA3C 802B542C E462000C */ swc1 $f2, 0xc($v1) +/* 11EA40 802B5430 10000002 */ b .L802B543C +/* 11EA44 802B5434 E460000C */ swc1 $f0, 0xc($v1) +/* 11EA48 802B5438 E462000C */ swc1 $f2, 0xc($v1) +.L802B543C: +/* 11EA4C 802B543C 24420001 */ addiu $v0, $v0, 1 +/* 11EA50 802B5440 1447FFEA */ bne $v0, $a3, .L802B53EC +/* 11EA54 802B5444 24630010 */ addiu $v1, $v1, 0x10 +/* 11EA58 802B5448 03E00008 */ jr $ra +/* 11EA5C 802B544C 00000000 */ nop + +glabel func_802B5450 +/* 11EA60 802B5450 C4C40000 */ lwc1 $f4, ($a2) +/* 11EA64 802B5454 C4860030 */ lwc1 $f6, 0x30($a0) +/* 11EA68 802B5458 46062200 */ add.s $f8, $f4, $f6 +/* 11EA6C 802B545C E4A80030 */ swc1 $f8, 0x30($a1) +/* 11EA70 802B5460 C4900034 */ lwc1 $f16, 0x34($a0) +/* 11EA74 802B5464 C4CA0004 */ lwc1 $f10, 4($a2) +/* 11EA78 802B5468 46105480 */ add.s $f18, $f10, $f16 +/* 11EA7C 802B546C E4B20034 */ swc1 $f18, 0x34($a1) +/* 11EA80 802B5470 C4860038 */ lwc1 $f6, 0x38($a0) +/* 11EA84 802B5474 C4C40008 */ lwc1 $f4, 8($a2) +/* 11EA88 802B5478 46062200 */ add.s $f8, $f4, $f6 +/* 11EA8C 802B547C E4A80038 */ swc1 $f8, 0x38($a1) +/* 11EA90 802B5480 C48A003C */ lwc1 $f10, 0x3c($a0) +/* 11EA94 802B5484 E4AA003C */ swc1 $f10, 0x3c($a1) +/* 11EA98 802B5488 C4900000 */ lwc1 $f16, ($a0) +/* 11EA9C 802B548C E4B00000 */ swc1 $f16, ($a1) +/* 11EAA0 802B5490 C4920004 */ lwc1 $f18, 4($a0) +/* 11EAA4 802B5494 E4B20004 */ swc1 $f18, 4($a1) +/* 11EAA8 802B5498 C4840008 */ lwc1 $f4, 8($a0) +/* 11EAAC 802B549C E4A40008 */ swc1 $f4, 8($a1) +/* 11EAB0 802B54A0 C486000C */ lwc1 $f6, 0xc($a0) +/* 11EAB4 802B54A4 E4A6000C */ swc1 $f6, 0xc($a1) +/* 11EAB8 802B54A8 C4880010 */ lwc1 $f8, 0x10($a0) +/* 11EABC 802B54AC E4A80010 */ swc1 $f8, 0x10($a1) +/* 11EAC0 802B54B0 C48A0014 */ lwc1 $f10, 0x14($a0) +/* 11EAC4 802B54B4 E4AA0014 */ swc1 $f10, 0x14($a1) +/* 11EAC8 802B54B8 C4900018 */ lwc1 $f16, 0x18($a0) +/* 11EACC 802B54BC E4B00018 */ swc1 $f16, 0x18($a1) +/* 11EAD0 802B54C0 C492001C */ lwc1 $f18, 0x1c($a0) +/* 11EAD4 802B54C4 E4B2001C */ swc1 $f18, 0x1c($a1) +/* 11EAD8 802B54C8 C4840020 */ lwc1 $f4, 0x20($a0) +/* 11EADC 802B54CC E4A40020 */ swc1 $f4, 0x20($a1) +/* 11EAE0 802B54D0 C4860024 */ lwc1 $f6, 0x24($a0) +/* 11EAE4 802B54D4 E4A60024 */ swc1 $f6, 0x24($a1) +/* 11EAE8 802B54D8 C4880028 */ lwc1 $f8, 0x28($a0) +/* 11EAEC 802B54DC E4A80028 */ swc1 $f8, 0x28($a1) +/* 11EAF0 802B54E0 C48A002C */ lwc1 $f10, 0x2c($a0) +/* 11EAF4 802B54E4 03E00008 */ jr $ra +/* 11EAF8 802B54E8 E4AA002C */ swc1 $f10, 0x2c($a1) + +/* 11EAFC 802B54EC C4C40000 */ lwc1 $f4, ($a2) +/* 11EB00 802B54F0 C4860030 */ lwc1 $f6, 0x30($a0) +/* 11EB04 802B54F4 46062200 */ add.s $f8, $f4, $f6 +/* 11EB08 802B54F8 E4A80030 */ swc1 $f8, 0x30($a1) +/* 11EB0C 802B54FC C4900034 */ lwc1 $f16, 0x34($a0) +/* 11EB10 802B5500 C4CA0004 */ lwc1 $f10, 4($a2) +/* 11EB14 802B5504 46105480 */ add.s $f18, $f10, $f16 +/* 11EB18 802B5508 E4B20034 */ swc1 $f18, 0x34($a1) +/* 11EB1C 802B550C C4860038 */ lwc1 $f6, 0x38($a0) +/* 11EB20 802B5510 C4C40008 */ lwc1 $f4, 8($a2) +/* 11EB24 802B5514 46062200 */ add.s $f8, $f4, $f6 +/* 11EB28 802B5518 03E00008 */ jr $ra +/* 11EB2C 802B551C E4A80038 */ swc1 $f8, 0x38($a1) + +glabel func_802B5520 +/* 11EB30 802B5520 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 11EB34 802B5524 AFBF0014 */ sw $ra, 0x14($sp) +/* 11EB38 802B5528 AFA40018 */ sw $a0, 0x18($sp) +/* 11EB3C 802B552C 0C0AD4F2 */ jal func_802B53C8 +/* 11EB40 802B5530 AFA5001C */ sw $a1, 0x1c($sp) +/* 11EB44 802B5534 8FA5001C */ lw $a1, 0x1c($sp) +/* 11EB48 802B5538 8FA40018 */ lw $a0, 0x18($sp) +/* 11EB4C 802B553C C4A40000 */ lwc1 $f4, ($a1) +/* 11EB50 802B5540 E4840030 */ swc1 $f4, 0x30($a0) +/* 11EB54 802B5544 C4A60004 */ lwc1 $f6, 4($a1) +/* 11EB58 802B5548 E4860034 */ swc1 $f6, 0x34($a0) +/* 11EB5C 802B554C C4A80008 */ lwc1 $f8, 8($a1) +/* 11EB60 802B5550 E4880038 */ swc1 $f8, 0x38($a0) +/* 11EB64 802B5554 8FBF0014 */ lw $ra, 0x14($sp) +/* 11EB68 802B5558 27BD0018 */ addiu $sp, $sp, 0x18 +/* 11EB6C 802B555C 03E00008 */ jr $ra +/* 11EB70 802B5560 00000000 */ nop + +glabel func_802B5564 +/* 11EB74 802B5564 27BDFFD0 */ addiu $sp, $sp, -0x30 +/* 11EB78 802B5568 44867000 */ mtc1 $a2, $f14 +/* 11EB7C 802B556C AFBF0014 */ sw $ra, 0x14($sp) +/* 11EB80 802B5570 AFA7003C */ sw $a3, 0x3c($sp) +/* 11EB84 802B5574 AFA40030 */ sw $a0, 0x30($sp) +/* 11EB88 802B5578 AFA50034 */ sw $a1, 0x34($sp) +/* 11EB8C 802B557C 0C0AD4F2 */ jal func_802B53C8 +/* 11EB90 802B5580 E7AE0038 */ swc1 $f14, 0x38($sp) +/* 11EB94 802B5584 C7AE0038 */ lwc1 $f14, 0x38($sp) +/* 11EB98 802B5588 3C01802C */ lui $at, %hi(D_802B9FB0) +/* 11EB9C 802B558C D4269FB0 */ ldc1 $f6, %lo(D_802B9FB0)($at) +/* 11EBA0 802B5590 46007121 */ cvt.d.s $f4, $f14 +/* 11EBA4 802B5594 3C014000 */ li $at, 0x40000000 # 2.000000 +/* 11EBA8 802B5598 46262202 */ mul.d $f8, $f4, $f6 +/* 11EBAC 802B559C 44815000 */ mtc1 $at, $f10 +/* 11EBB0 802B55A0 462043A0 */ cvt.s.d $f14, $f8 +/* 11EBB4 802B55A4 460A7303 */ div.s $f12, $f14, $f10 +/* 11EBB8 802B55A8 0C0358AC */ jal cosf +/* 11EBBC 802B55AC E7AC001C */ swc1 $f12, 0x1c($sp) +/* 11EBC0 802B55B0 C7AC001C */ lwc1 $f12, 0x1c($sp) +/* 11EBC4 802B55B4 0C03583C */ jal sinf +/* 11EBC8 802B55B8 E7A00020 */ swc1 $f0, 0x20($sp) +/* 11EBCC 802B55BC C7A40020 */ lwc1 $f4, 0x20($sp) +/* 11EBD0 802B55C0 C7A6003C */ lwc1 $f6, 0x3c($sp) +/* 11EBD4 802B55C4 C7AE0040 */ lwc1 $f14, 0x40($sp) +/* 11EBD8 802B55C8 46002083 */ div.s $f2, $f4, $f0 +/* 11EBDC 802B55CC C7B00044 */ lwc1 $f16, 0x44($sp) +/* 11EBE0 802B55D0 3C01BF80 */ li $at, 0xBF800000 # -1.000000 +/* 11EBE4 802B55D4 44812000 */ mtc1 $at, $f4 +/* 11EBE8 802B55D8 46107480 */ add.s $f18, $f14, $f16 +/* 11EBEC 802B55DC 8FA20030 */ lw $v0, 0x30($sp) +/* 11EBF0 802B55E0 3C014000 */ li $at, 0x40000000 # 2.000000 +/* 11EBF4 802B55E4 46107301 */ sub.s $f12, $f14, $f16 +/* 11EBF8 802B55E8 8FA50034 */ lw $a1, 0x34($sp) +/* 11EBFC 802B55EC E444002C */ swc1 $f4, 0x2c($v0) +/* 11EC00 802B55F0 00001825 */ move $v1, $zero +/* 11EC04 802B55F4 24040004 */ li $a0, 4 +/* 11EC08 802B55F8 460C9283 */ div.s $f10, $f18, $f12 +/* 11EC0C 802B55FC E4420014 */ swc1 $f2, 0x14($v0) +/* 11EC10 802B5600 46061203 */ div.s $f8, $f2, $f6 +/* 11EC14 802B5604 44813000 */ mtc1 $at, $f6 +/* 11EC18 802B5608 E44A0028 */ swc1 $f10, 0x28($v0) +/* 11EC1C 802B560C E4480000 */ swc1 $f8, ($v0) +/* 11EC20 802B5610 460E3202 */ mul.s $f8, $f6, $f14 +/* 11EC24 802B5614 44803000 */ mtc1 $zero, $f6 +/* 11EC28 802B5618 00000000 */ nop +/* 11EC2C 802B561C E446003C */ swc1 $f6, 0x3c($v0) +/* 11EC30 802B5620 46104282 */ mul.s $f10, $f8, $f16 +/* 11EC34 802B5624 460C5103 */ div.s $f4, $f10, $f12 +/* 11EC38 802B5628 E4440038 */ swc1 $f4, 0x38($v0) +/* 11EC3C 802B562C C7A00048 */ lwc1 $f0, 0x48($sp) +/* 11EC40 802B5630 C4460000 */ lwc1 $f6, ($v0) +/* 11EC44 802B5634 24630001 */ addiu $v1, $v1, 1 +/* 11EC48 802B5638 C4500004 */ lwc1 $f16, 4($v0) +/* 11EC4C 802B563C 46003282 */ mul.s $f10, $f6, $f0 +/* 11EC50 802B5640 C44C0008 */ lwc1 $f12, 8($v0) +/* 11EC54 802B5644 10640010 */ beq $v1, $a0, .L802B5688 +/* 11EC58 802B5648 C44E000C */ lwc1 $f14, 0xc($v0) +.L802B564C: +/* 11EC5C 802B564C 46008202 */ mul.s $f8, $f16, $f0 +/* 11EC60 802B5650 C4460010 */ lwc1 $f6, 0x10($v0) +/* 11EC64 802B5654 C4500014 */ lwc1 $f16, 0x14($v0) +/* 11EC68 802B5658 46006102 */ mul.s $f4, $f12, $f0 +/* 11EC6C 802B565C C44C0018 */ lwc1 $f12, 0x18($v0) +/* 11EC70 802B5660 24630001 */ addiu $v1, $v1, 1 +/* 11EC74 802B5664 46007082 */ mul.s $f2, $f14, $f0 +/* 11EC78 802B5668 C44E001C */ lwc1 $f14, 0x1c($v0) +/* 11EC7C 802B566C E44A0000 */ swc1 $f10, ($v0) +/* 11EC80 802B5670 46003282 */ mul.s $f10, $f6, $f0 +/* 11EC84 802B5674 E4480004 */ swc1 $f8, 4($v0) +/* 11EC88 802B5678 E4440008 */ swc1 $f4, 8($v0) +/* 11EC8C 802B567C 24420010 */ addiu $v0, $v0, 0x10 +/* 11EC90 802B5680 1464FFF2 */ bne $v1, $a0, .L802B564C +/* 11EC94 802B5684 E442FFFC */ swc1 $f2, -4($v0) +.L802B5688: +/* 11EC98 802B5688 46008202 */ mul.s $f8, $f16, $f0 +/* 11EC9C 802B568C 24420010 */ addiu $v0, $v0, 0x10 +/* 11ECA0 802B5690 E44AFFF0 */ swc1 $f10, -0x10($v0) +/* 11ECA4 802B5694 46006102 */ mul.s $f4, $f12, $f0 +/* 11ECA8 802B5698 00000000 */ nop +/* 11ECAC 802B569C 46007082 */ mul.s $f2, $f14, $f0 +/* 11ECB0 802B56A0 E448FFF4 */ swc1 $f8, -0xc($v0) +/* 11ECB4 802B56A4 E444FFF8 */ swc1 $f4, -8($v0) +/* 11ECB8 802B56A8 E442FFFC */ swc1 $f2, -4($v0) +/* 11ECBC 802B56AC 10A00035 */ beqz $a1, .L802B5784 +/* 11ECC0 802B56B0 3C014000 */ li $at, 0x40000000 # 2.000000 +/* 11ECC4 802B56B4 44814800 */ mtc1 $at, $f9 +/* 11ECC8 802B56B8 44804000 */ mtc1 $zero, $f8 +/* 11ECCC 802B56BC 46009021 */ cvt.d.s $f0, $f18 +/* 11ECD0 802B56C0 340EFFFF */ li $t6, 65535 +/* 11ECD4 802B56C4 4628003E */ c.le.d $f0, $f8 +/* 11ECD8 802B56C8 3C014100 */ li $at, 0x41000000 # 8.000000 +/* 11ECDC 802B56CC 45020004 */ bc1fl .L802B56E0 +/* 11ECE0 802B56D0 44815800 */ mtc1 $at, $f11 +/* 11ECE4 802B56D4 1000002B */ b .L802B5784 +/* 11ECE8 802B56D8 A4AE0000 */ sh $t6, ($a1) +/* 11ECEC 802B56DC 44815800 */ mtc1 $at, $f11 +.L802B56E0: +/* 11ECF0 802B56E0 44805000 */ mtc1 $zero, $f10 +/* 11ECF4 802B56E4 24180001 */ li $t8, 1 +/* 11ECF8 802B56E8 3C0141E0 */ li $at, 0x41E00000 # 28.000000 +/* 11ECFC 802B56EC 46205103 */ div.d $f4, $f10, $f0 +/* 11ED00 802B56F0 24080001 */ li $t0, 1 +/* 11ED04 802B56F4 444FF800 */ cfc1 $t7, $31 +/* 11ED08 802B56F8 44D8F800 */ ctc1 $t8, $31 +/* 11ED0C 802B56FC 00000000 */ nop +/* 11ED10 802B5700 462021A4 */ cvt.w.d $f6, $f4 +/* 11ED14 802B5704 4458F800 */ cfc1 $t8, $31 +/* 11ED18 802B5708 00000000 */ nop +/* 11ED1C 802B570C 33180078 */ andi $t8, $t8, 0x78 +/* 11ED20 802B5710 53000014 */ beql $t8, $zero, .L802B5764 +/* 11ED24 802B5714 44183000 */ mfc1 $t8, $f6 +/* 11ED28 802B5718 44813800 */ mtc1 $at, $f7 +/* 11ED2C 802B571C 44803000 */ mtc1 $zero, $f6 +/* 11ED30 802B5720 24180001 */ li $t8, 1 +/* 11ED34 802B5724 46262181 */ sub.d $f6, $f4, $f6 +/* 11ED38 802B5728 44D8F800 */ ctc1 $t8, $31 +/* 11ED3C 802B572C 00000000 */ nop +/* 11ED40 802B5730 462031A4 */ cvt.w.d $f6, $f6 +/* 11ED44 802B5734 4458F800 */ cfc1 $t8, $31 +/* 11ED48 802B5738 00000000 */ nop +/* 11ED4C 802B573C 33180078 */ andi $t8, $t8, 0x78 +/* 11ED50 802B5740 17000005 */ bnez $t8, .L802B5758 +/* 11ED54 802B5744 00000000 */ nop +/* 11ED58 802B5748 44183000 */ mfc1 $t8, $f6 +/* 11ED5C 802B574C 3C018000 */ lui $at, 0x8000 +/* 11ED60 802B5750 10000007 */ b .L802B5770 +/* 11ED64 802B5754 0301C025 */ or $t8, $t8, $at +.L802B5758: +/* 11ED68 802B5758 10000005 */ b .L802B5770 +/* 11ED6C 802B575C 2418FFFF */ li $t8, -1 +/* 11ED70 802B5760 44183000 */ mfc1 $t8, $f6 +.L802B5764: +/* 11ED74 802B5764 00000000 */ nop +/* 11ED78 802B5768 0700FFFB */ bltz $t8, .L802B5758 +/* 11ED7C 802B576C 00000000 */ nop +.L802B5770: +/* 11ED80 802B5770 44CFF800 */ ctc1 $t7, $31 +/* 11ED84 802B5774 3319FFFF */ andi $t9, $t8, 0xffff +/* 11ED88 802B5778 1F200002 */ bgtz $t9, .L802B5784 +/* 11ED8C 802B577C A4B80000 */ sh $t8, ($a1) +/* 11ED90 802B5780 A4A80000 */ sh $t0, ($a1) +.L802B5784: +/* 11ED94 802B5784 8FBF0014 */ lw $ra, 0x14($sp) +/* 11ED98 802B5788 27BD0030 */ addiu $sp, $sp, 0x30 +/* 11ED9C 802B578C 03E00008 */ jr $ra +/* 11EDA0 802B5790 00000000 */ nop + +glabel func_802B5794 +/* 11EDA4 802B5794 27BDFFA8 */ addiu $sp, $sp, -0x58 +/* 11EDA8 802B5798 F7BC0028 */ sdc1 $f28, 0x28($sp) +/* 11EDAC 802B579C F7BA0020 */ sdc1 $f26, 0x20($sp) +/* 11EDB0 802B57A0 F7B80018 */ sdc1 $f24, 0x18($sp) +/* 11EDB4 802B57A4 F7B60010 */ sdc1 $f22, 0x10($sp) +/* 11EDB8 802B57A8 F7B40008 */ sdc1 $f20, 8($sp) +/* 11EDBC 802B57AC C4A60000 */ lwc1 $f6, ($a1) +/* 11EDC0 802B57B0 C4C40000 */ lwc1 $f4, ($a2) +/* 11EDC4 802B57B4 C4AA0004 */ lwc1 $f10, 4($a1) +/* 11EDC8 802B57B8 C4C80004 */ lwc1 $f8, 4($a2) +/* 11EDCC 802B57BC 46062301 */ sub.s $f12, $f4, $f6 +/* 11EDD0 802B57C0 C4A60008 */ lwc1 $f6, 8($a1) +/* 11EDD4 802B57C4 C4C40008 */ lwc1 $f4, 8($a2) +/* 11EDD8 802B57C8 460A4381 */ sub.s $f14, $f8, $f10 +/* 11EDDC 802B57CC 460C6202 */ mul.s $f8, $f12, $f12 +/* 11EDE0 802B57D0 3C01BFF0 */ li $at, 0xBFF00000 # -1.875000 +/* 11EDE4 802B57D4 46062081 */ sub.s $f2, $f4, $f6 +/* 11EDE8 802B57D8 460E7282 */ mul.s $f10, $f14, $f14 +/* 11EDEC 802B57DC 44814800 */ mtc1 $at, $f9 +/* 11EDF0 802B57E0 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 11EDF4 802B57E4 46021182 */ mul.s $f6, $f2, $f2 +/* 11EDF8 802B57E8 4480D000 */ mtc1 $zero, $f26 +/* 11EDFC 802B57EC 00000000 */ nop +/* 11EE00 802B57F0 4600D606 */ mov.s $f24, $f26 +/* 11EE04 802B57F4 460A4100 */ add.s $f4, $f8, $f10 +/* 11EE08 802B57F8 44804000 */ mtc1 $zero, $f8 +/* 11EE0C 802B57FC 46062000 */ add.s $f0, $f4, $f6 +/* 11EE10 802B5800 44813000 */ mtc1 $at, $f6 +/* 11EE14 802B5804 3C013FF0 */ li $at, 0x3FF00000 # 1.875000 +/* 11EE18 802B5808 46000004 */ sqrt.s $f0, $f0 +/* 11EE1C 802B580C 460002A1 */ cvt.d.s $f10, $f0 +/* 11EE20 802B5810 462A4103 */ div.d $f4, $f8, $f10 +/* 11EE24 802B5814 46202420 */ cvt.s.d $f16, $f4 +/* 11EE28 802B5818 46106302 */ mul.s $f12, $f12, $f16 +/* 11EE2C 802B581C 00000000 */ nop +/* 11EE30 802B5820 46107382 */ mul.s $f14, $f14, $f16 +/* 11EE34 802B5824 00000000 */ nop +/* 11EE38 802B5828 46101082 */ mul.s $f2, $f2, $f16 +/* 11EE3C 802B582C 00000000 */ nop +/* 11EE40 802B5830 460C3202 */ mul.s $f8, $f6, $f12 +/* 11EE44 802B5834 44814800 */ mtc1 $at, $f9 +/* 11EE48 802B5838 46021282 */ mul.s $f10, $f2, $f2 +/* 11EE4C 802B583C 4608D401 */ sub.s $f16, $f26, $f8 +/* 11EE50 802B5840 44804000 */ mtc1 $zero, $f8 +/* 11EE54 802B5844 461A5100 */ add.s $f4, $f10, $f26 +/* 11EE58 802B5848 46108182 */ mul.s $f6, $f16, $f16 +/* 11EE5C 802B584C 46062000 */ add.s $f0, $f4, $f6 +/* 11EE60 802B5850 46000004 */ sqrt.s $f0, $f0 +/* 11EE64 802B5854 460002A1 */ cvt.d.s $f10, $f0 +/* 11EE68 802B5858 462A4103 */ div.d $f4, $f8, $f10 +/* 11EE6C 802B585C 462025A0 */ cvt.s.d $f22, $f4 +/* 11EE70 802B5860 46161702 */ mul.s $f28, $f2, $f22 +/* 11EE74 802B5864 00000000 */ nop +/* 11EE78 802B5868 46168482 */ mul.s $f18, $f16, $f22 +/* 11EE7C 802B586C 00000000 */ nop +/* 11EE80 802B5870 46127182 */ mul.s $f6, $f14, $f18 +/* 11EE84 802B5874 E7B20030 */ swc1 $f18, 0x30($sp) +/* 11EE88 802B5878 C7A40030 */ lwc1 $f4, 0x30($sp) +/* 11EE8C 802B587C 461A1202 */ mul.s $f8, $f2, $f26 +/* 11EE90 802B5880 46083501 */ sub.s $f20, $f6, $f8 +/* 11EE94 802B5884 461C1282 */ mul.s $f10, $f2, $f28 +/* 11EE98 802B5888 00000000 */ nop +/* 11EE9C 802B588C 46046182 */ mul.s $f6, $f12, $f4 +/* 11EEA0 802B5890 00000000 */ nop +/* 11EEA4 802B5894 461A6202 */ mul.s $f8, $f12, $f26 +/* 11EEA8 802B5898 00000000 */ nop +/* 11EEAC 802B589C 461C7102 */ mul.s $f4, $f14, $f28 +/* 11EEB0 802B58A0 46065401 */ sub.s $f16, $f10, $f6 +/* 11EEB4 802B58A4 4614A282 */ mul.s $f10, $f20, $f20 +/* 11EEB8 802B58A8 44815800 */ mtc1 $at, $f11 +/* 11EEBC 802B58AC 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 11EEC0 802B58B0 46108182 */ mul.s $f6, $f16, $f16 +/* 11EEC4 802B58B4 46044481 */ sub.s $f18, $f8, $f4 +/* 11EEC8 802B58B8 46129102 */ mul.s $f4, $f18, $f18 +/* 11EECC 802B58BC 46065200 */ add.s $f8, $f10, $f6 +/* 11EED0 802B58C0 44805000 */ mtc1 $zero, $f10 +/* 11EED4 802B58C4 46044000 */ add.s $f0, $f8, $f4 +/* 11EED8 802B58C8 46000004 */ sqrt.s $f0, $f0 +/* 11EEDC 802B58CC 460001A1 */ cvt.d.s $f6, $f0 +/* 11EEE0 802B58D0 46265203 */ div.d $f8, $f10, $f6 +/* 11EEE4 802B58D4 462045A0 */ cvt.s.d $f22, $f8 +/* 11EEE8 802B58D8 4616A502 */ mul.s $f20, $f20, $f22 +/* 11EEEC 802B58DC 00000000 */ nop +/* 11EEF0 802B58E0 46168102 */ mul.s $f4, $f16, $f22 +/* 11EEF4 802B58E4 00000000 */ nop +/* 11EEF8 802B58E8 46169282 */ mul.s $f10, $f18, $f22 +/* 11EEFC 802B58EC E7A4004C */ swc1 $f4, 0x4c($sp) +/* 11EF00 802B58F0 E7AA0048 */ swc1 $f10, 0x48($sp) +/* 11EF04 802B58F4 E49C0000 */ swc1 $f28, ($a0) +/* 11EF08 802B58F8 E4980010 */ swc1 $f24, 0x10($a0) +/* 11EF0C 802B58FC C7A60030 */ lwc1 $f6, 0x30($sp) +/* 11EF10 802B5900 E4860020 */ swc1 $f6, 0x20($a0) +/* 11EF14 802B5904 C4A80008 */ lwc1 $f8, 8($a1) +/* 11EF18 802B5908 C7A40030 */ lwc1 $f4, 0x30($sp) +/* 11EF1C 802B590C C4A60000 */ lwc1 $f6, ($a1) +/* 11EF20 802B5910 46044282 */ mul.s $f10, $f8, $f4 +/* 11EF24 802B5914 C4A40004 */ lwc1 $f4, 4($a1) +/* 11EF28 802B5918 461C3202 */ mul.s $f8, $f6, $f28 +/* 11EF2C 802B591C 00000000 */ nop +/* 11EF30 802B5920 461A2182 */ mul.s $f6, $f4, $f26 +/* 11EF34 802B5924 46064100 */ add.s $f4, $f8, $f6 +/* 11EF38 802B5928 46045200 */ add.s $f8, $f10, $f4 +/* 11EF3C 802B592C 46004187 */ neg.s $f6, $f8 +/* 11EF40 802B5930 E4860030 */ swc1 $f6, 0x30($a0) +/* 11EF44 802B5934 C7B00048 */ lwc1 $f16, 0x48($sp) +/* 11EF48 802B5938 C7A0004C */ lwc1 $f0, 0x4c($sp) +/* 11EF4C 802B593C E4940004 */ swc1 $f20, 4($a0) +/* 11EF50 802B5940 E4900024 */ swc1 $f16, 0x24($a0) +/* 11EF54 802B5944 E4800014 */ swc1 $f0, 0x14($a0) +/* 11EF58 802B5948 C4AA0000 */ lwc1 $f10, ($a1) +/* 11EF5C 802B594C C4A80004 */ lwc1 $f8, 4($a1) +/* 11EF60 802B5950 46145102 */ mul.s $f4, $f10, $f20 +/* 11EF64 802B5954 00000000 */ nop +/* 11EF68 802B5958 46004182 */ mul.s $f6, $f8, $f0 +/* 11EF6C 802B595C C4A80008 */ lwc1 $f8, 8($a1) +/* 11EF70 802B5960 E48C0008 */ swc1 $f12, 8($a0) +/* 11EF74 802B5964 E48E0018 */ swc1 $f14, 0x18($a0) +/* 11EF78 802B5968 E4820028 */ swc1 $f2, 0x28($a0) +/* 11EF7C 802B596C 46062280 */ add.s $f10, $f4, $f6 +/* 11EF80 802B5970 46104102 */ mul.s $f4, $f8, $f16 +/* 11EF84 802B5974 460A2180 */ add.s $f6, $f4, $f10 +/* 11EF88 802B5978 46003207 */ neg.s $f8, $f6 +/* 11EF8C 802B597C E4880034 */ swc1 $f8, 0x34($a0) +/* 11EF90 802B5980 C4A40000 */ lwc1 $f4, ($a1) +/* 11EF94 802B5984 C4A60004 */ lwc1 $f6, 4($a1) +/* 11EF98 802B5988 460C2282 */ mul.s $f10, $f4, $f12 +/* 11EF9C 802B598C 00000000 */ nop +/* 11EFA0 802B5990 460E3202 */ mul.s $f8, $f6, $f14 +/* 11EFA4 802B5994 C4A60008 */ lwc1 $f6, 8($a1) +/* 11EFA8 802B5998 E49A000C */ swc1 $f26, 0xc($a0) +/* 11EFAC 802B599C E49A001C */ swc1 $f26, 0x1c($a0) +/* 11EFB0 802B59A0 E49A002C */ swc1 $f26, 0x2c($a0) +/* 11EFB4 802B59A4 46085100 */ add.s $f4, $f10, $f8 +/* 11EFB8 802B59A8 46023282 */ mul.s $f10, $f6, $f2 +/* 11EFBC 802B59AC 46045200 */ add.s $f8, $f10, $f4 +/* 11EFC0 802B59B0 44815000 */ mtc1 $at, $f10 +/* 11EFC4 802B59B4 46004187 */ neg.s $f6, $f8 +/* 11EFC8 802B59B8 E48A003C */ swc1 $f10, 0x3c($a0) +/* 11EFCC 802B59BC E4860038 */ swc1 $f6, 0x38($a0) +/* 11EFD0 802B59C0 D7BC0028 */ ldc1 $f28, 0x28($sp) +/* 11EFD4 802B59C4 D7BA0020 */ ldc1 $f26, 0x20($sp) +/* 11EFD8 802B59C8 D7B80018 */ ldc1 $f24, 0x18($sp) +/* 11EFDC 802B59CC D7B60010 */ ldc1 $f22, 0x10($sp) +/* 11EFE0 802B59D0 D7B40008 */ ldc1 $f20, 8($sp) +/* 11EFE4 802B59D4 03E00008 */ jr $ra +/* 11EFE8 802B59D8 27BD0058 */ addiu $sp, $sp, 0x58 + +glabel func_802B59DC +/* 11EFEC 802B59DC 27BDFFD0 */ addiu $sp, $sp, -0x30 +/* 11EFF0 802B59E0 AFB00018 */ sw $s0, 0x18($sp) +/* 11EFF4 802B59E4 00808025 */ move $s0, $a0 +/* 11EFF8 802B59E8 AFBF001C */ sw $ra, 0x1c($sp) +/* 11EFFC 802B59EC 30A4FFFF */ andi $a0, $a1, 0xffff +/* 11F000 802B59F0 AFA50034 */ sw $a1, 0x34($sp) +/* 11F004 802B59F4 0C0AE006 */ jal func_802B8018 +/* 11F008 802B59F8 AFA40024 */ sw $a0, 0x24($sp) +/* 11F00C 802B59FC 8FA40024 */ lw $a0, 0x24($sp) +/* 11F010 802B5A00 0C0AE00E */ jal func_802B8038 +/* 11F014 802B5A04 E7A0002C */ swc1 $f0, 0x2c($sp) +/* 11F018 802B5A08 02002025 */ move $a0, $s0 +/* 11F01C 802B5A0C 0C0AD4F2 */ jal func_802B53C8 +/* 11F020 802B5A10 E7A00028 */ swc1 $f0, 0x28($sp) +/* 11F024 802B5A14 C7A0002C */ lwc1 $f0, 0x2c($sp) +/* 11F028 802B5A18 C7A20028 */ lwc1 $f2, 0x28($sp) +/* 11F02C 802B5A1C 46000107 */ neg.s $f4, $f0 +/* 11F030 802B5A20 E6000018 */ swc1 $f0, 0x18($s0) +/* 11F034 802B5A24 E6040024 */ swc1 $f4, 0x24($s0) +/* 11F038 802B5A28 E6020014 */ swc1 $f2, 0x14($s0) +/* 11F03C 802B5A2C E6020028 */ swc1 $f2, 0x28($s0) +/* 11F040 802B5A30 8FBF001C */ lw $ra, 0x1c($sp) +/* 11F044 802B5A34 8FB00018 */ lw $s0, 0x18($sp) +/* 11F048 802B5A38 27BD0030 */ addiu $sp, $sp, 0x30 +/* 11F04C 802B5A3C 03E00008 */ jr $ra +/* 11F050 802B5A40 00000000 */ nop + +/* 11F054 802B5A44 27BDFFD0 */ addiu $sp, $sp, -0x30 +/* 11F058 802B5A48 AFB00018 */ sw $s0, 0x18($sp) +/* 11F05C 802B5A4C 00808025 */ move $s0, $a0 +/* 11F060 802B5A50 AFBF001C */ sw $ra, 0x1c($sp) +/* 11F064 802B5A54 30A4FFFF */ andi $a0, $a1, 0xffff +/* 11F068 802B5A58 AFA50034 */ sw $a1, 0x34($sp) +/* 11F06C 802B5A5C 0C0AE006 */ jal func_802B8018 +/* 11F070 802B5A60 AFA40024 */ sw $a0, 0x24($sp) +/* 11F074 802B5A64 8FA40024 */ lw $a0, 0x24($sp) +/* 11F078 802B5A68 0C0AE00E */ jal func_802B8038 +/* 11F07C 802B5A6C E7A0002C */ swc1 $f0, 0x2c($sp) +/* 11F080 802B5A70 02002025 */ move $a0, $s0 +/* 11F084 802B5A74 0C0AD4F2 */ jal func_802B53C8 +/* 11F088 802B5A78 E7A00028 */ swc1 $f0, 0x28($sp) +/* 11F08C 802B5A7C C7A0002C */ lwc1 $f0, 0x2c($sp) +/* 11F090 802B5A80 C7A20028 */ lwc1 $f2, 0x28($sp) +/* 11F094 802B5A84 46000107 */ neg.s $f4, $f0 +/* 11F098 802B5A88 E6000020 */ swc1 $f0, 0x20($s0) +/* 11F09C 802B5A8C E6040008 */ swc1 $f4, 8($s0) +/* 11F0A0 802B5A90 E6020000 */ swc1 $f2, ($s0) +/* 11F0A4 802B5A94 E6020028 */ swc1 $f2, 0x28($s0) +/* 11F0A8 802B5A98 8FBF001C */ lw $ra, 0x1c($sp) +/* 11F0AC 802B5A9C 8FB00018 */ lw $s0, 0x18($sp) +/* 11F0B0 802B5AA0 27BD0030 */ addiu $sp, $sp, 0x30 +/* 11F0B4 802B5AA4 03E00008 */ jr $ra +/* 11F0B8 802B5AA8 00000000 */ nop + +/* 11F0BC 802B5AAC 27BDFFD0 */ addiu $sp, $sp, -0x30 +/* 11F0C0 802B5AB0 AFB00018 */ sw $s0, 0x18($sp) +/* 11F0C4 802B5AB4 00808025 */ move $s0, $a0 +/* 11F0C8 802B5AB8 AFBF001C */ sw $ra, 0x1c($sp) +/* 11F0CC 802B5ABC 30A4FFFF */ andi $a0, $a1, 0xffff +/* 11F0D0 802B5AC0 AFA50034 */ sw $a1, 0x34($sp) +/* 11F0D4 802B5AC4 0C0AE006 */ jal func_802B8018 +/* 11F0D8 802B5AC8 AFA40024 */ sw $a0, 0x24($sp) +/* 11F0DC 802B5ACC 8FA40024 */ lw $a0, 0x24($sp) +/* 11F0E0 802B5AD0 0C0AE00E */ jal func_802B8038 +/* 11F0E4 802B5AD4 E7A0002C */ swc1 $f0, 0x2c($sp) +/* 11F0E8 802B5AD8 02002025 */ move $a0, $s0 +/* 11F0EC 802B5ADC 0C0AD4F2 */ jal func_802B53C8 +/* 11F0F0 802B5AE0 E7A00028 */ swc1 $f0, 0x28($sp) +/* 11F0F4 802B5AE4 C7A0002C */ lwc1 $f0, 0x2c($sp) +/* 11F0F8 802B5AE8 C7A20028 */ lwc1 $f2, 0x28($sp) +/* 11F0FC 802B5AEC 46000107 */ neg.s $f4, $f0 +/* 11F100 802B5AF0 E6000004 */ swc1 $f0, 4($s0) +/* 11F104 802B5AF4 E6040010 */ swc1 $f4, 0x10($s0) +/* 11F108 802B5AF8 E6020000 */ swc1 $f2, ($s0) +/* 11F10C 802B5AFC E6020014 */ swc1 $f2, 0x14($s0) +/* 11F110 802B5B00 8FBF001C */ lw $ra, 0x1c($sp) +/* 11F114 802B5B04 8FB00018 */ lw $s0, 0x18($sp) +/* 11F118 802B5B08 27BD0030 */ addiu $sp, $sp, 0x30 +/* 11F11C 802B5B0C 03E00008 */ jr $ra +/* 11F120 802B5B10 00000000 */ nop + +/* 11F124 802B5B14 27BDFF78 */ addiu $sp, $sp, -0x88 +/* 11F128 802B5B18 AFB10020 */ sw $s1, 0x20($sp) +/* 11F12C 802B5B1C 00808825 */ move $s1, $a0 +/* 11F130 802B5B20 AFBF0024 */ sw $ra, 0x24($sp) +/* 11F134 802B5B24 AFB0001C */ sw $s0, 0x1c($sp) +/* 11F138 802B5B28 F7B40010 */ sdc1 $f20, 0x10($sp) +/* 11F13C 802B5B2C 00A08025 */ move $s0, $a1 +/* 11F140 802B5B30 0C0AE006 */ jal func_802B8018 +/* 11F144 802B5B34 94A40000 */ lhu $a0, ($a1) +/* 11F148 802B5B38 E7A00038 */ swc1 $f0, 0x38($sp) +/* 11F14C 802B5B3C 0C0AE00E */ jal func_802B8038 +/* 11F150 802B5B40 96040000 */ lhu $a0, ($s0) +/* 11F154 802B5B44 46000506 */ mov.s $f20, $f0 +/* 11F158 802B5B48 0C0AE006 */ jal func_802B8018 +/* 11F15C 802B5B4C 96040002 */ lhu $a0, 2($s0) +/* 11F160 802B5B50 96040002 */ lhu $a0, 2($s0) +/* 11F164 802B5B54 0C0AE00E */ jal func_802B8038 +/* 11F168 802B5B58 E7A00030 */ swc1 $f0, 0x30($sp) +/* 11F16C 802B5B5C 96040004 */ lhu $a0, 4($s0) +/* 11F170 802B5B60 0C0AE006 */ jal func_802B8018 +/* 11F174 802B5B64 E7A0002C */ swc1 $f0, 0x2c($sp) +/* 11F178 802B5B68 96040004 */ lhu $a0, 4($s0) +/* 11F17C 802B5B6C 0C0AE00E */ jal func_802B8038 +/* 11F180 802B5B70 E7A00028 */ swc1 $f0, 0x28($sp) +/* 11F184 802B5B74 C7AE0030 */ lwc1 $f14, 0x30($sp) +/* 11F188 802B5B78 C7A80038 */ lwc1 $f8, 0x38($sp) +/* 11F18C 802B5B7C C7B0002C */ lwc1 $f16, 0x2c($sp) +/* 11F190 802B5B80 C6240000 */ lwc1 $f4, ($s1) +/* 11F194 802B5B84 460E4302 */ mul.s $f12, $f8, $f14 +/* 11F198 802B5B88 C7A20028 */ lwc1 $f2, 0x28($sp) +/* 11F19C 802B5B8C E7A4003C */ swc1 $f4, 0x3c($sp) +/* 11F1A0 802B5B90 46008282 */ mul.s $f10, $f16, $f0 +/* 11F1A4 802B5B94 C6260004 */ lwc1 $f6, 4($s1) +/* 11F1A8 802B5B98 46026102 */ mul.s $f4, $f12, $f2 +/* 11F1AC 802B5B9C E7A60040 */ swc1 $f6, 0x40($sp) +/* 11F1B0 802B5BA0 46045180 */ add.s $f6, $f10, $f4 +/* 11F1B4 802B5BA4 46008287 */ neg.s $f10, $f16 +/* 11F1B8 802B5BA8 E7A60048 */ swc1 $f6, 0x48($sp) +/* 11F1BC 802B5BAC 46025102 */ mul.s $f4, $f10, $f2 +/* 11F1C0 802B5BB0 00000000 */ nop +/* 11F1C4 802B5BB4 46006282 */ mul.s $f10, $f12, $f0 +/* 11F1C8 802B5BB8 460A2100 */ add.s $f4, $f4, $f10 +/* 11F1CC 802B5BBC 460EA282 */ mul.s $f10, $f20, $f14 +/* 11F1D0 802B5BC0 E7A40058 */ swc1 $f4, 0x58($sp) +/* 11F1D4 802B5BC4 4602A102 */ mul.s $f4, $f20, $f2 +/* 11F1D8 802B5BC8 E7AA0068 */ swc1 $f10, 0x68($sp) +/* 11F1DC 802B5BCC 4600A282 */ mul.s $f10, $f20, $f0 +/* 11F1E0 802B5BD0 E7A4004C */ swc1 $f4, 0x4c($sp) +/* 11F1E4 802B5BD4 46104482 */ mul.s $f18, $f8, $f16 +/* 11F1E8 802B5BD8 46004107 */ neg.s $f4, $f8 +/* 11F1EC 802B5BDC E7AA005C */ swc1 $f10, 0x5c($sp) +/* 11F1F0 802B5BE0 46007287 */ neg.s $f10, $f14 +/* 11F1F4 802B5BE4 E7A4006C */ swc1 $f4, 0x6c($sp) +/* 11F1F8 802B5BE8 46005102 */ mul.s $f4, $f10, $f0 +/* 11F1FC 802B5BEC 00000000 */ nop +/* 11F200 802B5BF0 46029202 */ mul.s $f8, $f18, $f2 +/* 11F204 802B5BF4 46082280 */ add.s $f10, $f4, $f8 +/* 11F208 802B5BF8 46027102 */ mul.s $f4, $f14, $f2 +/* 11F20C 802B5BFC 00000000 */ nop +/* 11F210 802B5C00 46009202 */ mul.s $f8, $f18, $f0 +/* 11F214 802B5C04 E7AA0050 */ swc1 $f10, 0x50($sp) +/* 11F218 802B5C08 46082100 */ add.s $f4, $f4, $f8 +/* 11F21C 802B5C0C 4610A202 */ mul.s $f8, $f20, $f16 +/* 11F220 802B5C10 E7A40060 */ swc1 $f4, 0x60($sp) +/* 11F224 802B5C14 C7A4003C */ lwc1 $f4, 0x3c($sp) +/* 11F228 802B5C18 E7A80070 */ swc1 $f8, 0x70($sp) +/* 11F22C 802B5C1C 46062202 */ mul.s $f8, $f4, $f6 +/* 11F230 802B5C20 C7A6004C */ lwc1 $f6, 0x4c($sp) +/* 11F234 802B5C24 C7A40040 */ lwc1 $f4, 0x40($sp) +/* 11F238 802B5C28 46062182 */ mul.s $f6, $f4, $f6 +/* 11F23C 802B5C2C 46064200 */ add.s $f8, $f8, $f6 +/* 11F240 802B5C30 46045182 */ mul.s $f6, $f10, $f4 +/* 11F244 802B5C34 46083280 */ add.s $f10, $f6, $f8 +/* 11F248 802B5C38 E62A0000 */ swc1 $f10, ($s1) +/* 11F24C 802B5C3C C7A4003C */ lwc1 $f4, 0x3c($sp) +/* 11F250 802B5C40 C7A60058 */ lwc1 $f6, 0x58($sp) +/* 11F254 802B5C44 C7AA0040 */ lwc1 $f10, 0x40($sp) +/* 11F258 802B5C48 46062202 */ mul.s $f8, $f4, $f6 +/* 11F25C 802B5C4C C7A4005C */ lwc1 $f4, 0x5c($sp) +/* 11F260 802B5C50 46045182 */ mul.s $f6, $f10, $f4 +/* 11F264 802B5C54 46064100 */ add.s $f4, $f8, $f6 +/* 11F268 802B5C58 C7A80060 */ lwc1 $f8, 0x60($sp) +/* 11F26C 802B5C5C 460A4182 */ mul.s $f6, $f8, $f10 +/* 11F270 802B5C60 46043200 */ add.s $f8, $f6, $f4 +/* 11F274 802B5C64 E6280004 */ swc1 $f8, 4($s1) +/* 11F278 802B5C68 C7A60068 */ lwc1 $f6, 0x68($sp) +/* 11F27C 802B5C6C C7AA003C */ lwc1 $f10, 0x3c($sp) +/* 11F280 802B5C70 C7A80040 */ lwc1 $f8, 0x40($sp) +/* 11F284 802B5C74 46065102 */ mul.s $f4, $f10, $f6 +/* 11F288 802B5C78 C7AA006C */ lwc1 $f10, 0x6c($sp) +/* 11F28C 802B5C7C 460A4182 */ mul.s $f6, $f8, $f10 +/* 11F290 802B5C80 46062280 */ add.s $f10, $f4, $f6 +/* 11F294 802B5C84 C7A40070 */ lwc1 $f4, 0x70($sp) +/* 11F298 802B5C88 46082182 */ mul.s $f6, $f4, $f8 +/* 11F29C 802B5C8C 460A3100 */ add.s $f4, $f6, $f10 +/* 11F2A0 802B5C90 E6240008 */ swc1 $f4, 8($s1) +/* 11F2A4 802B5C94 8FBF0024 */ lw $ra, 0x24($sp) +/* 11F2A8 802B5C98 8FB10020 */ lw $s1, 0x20($sp) +/* 11F2AC 802B5C9C 8FB0001C */ lw $s0, 0x1c($sp) +/* 11F2B0 802B5CA0 D7B40010 */ ldc1 $f20, 0x10($sp) +/* 11F2B4 802B5CA4 03E00008 */ jr $ra +/* 11F2B8 802B5CA8 27BD0088 */ addiu $sp, $sp, 0x88 + +glabel func_802B5CAC +/* 11F2BC 802B5CAC 27BDFFD0 */ addiu $sp, $sp, -0x30 +/* 11F2C0 802B5CB0 AFA40030 */ sw $a0, 0x30($sp) +/* 11F2C4 802B5CB4 AFBF0014 */ sw $ra, 0x14($sp) +/* 11F2C8 802B5CB8 30A4FFFF */ andi $a0, $a1, 0xffff +/* 11F2CC 802B5CBC AFA50034 */ sw $a1, 0x34($sp) +/* 11F2D0 802B5CC0 AFA60038 */ sw $a2, 0x38($sp) +/* 11F2D4 802B5CC4 0C0AE006 */ jal func_802B8018 +/* 11F2D8 802B5CC8 AFA4001C */ sw $a0, 0x1c($sp) +/* 11F2DC 802B5CCC 8FA4001C */ lw $a0, 0x1c($sp) +/* 11F2E0 802B5CD0 0C0AE00E */ jal func_802B8038 +/* 11F2E4 802B5CD4 E7A0002C */ swc1 $f0, 0x2c($sp) +/* 11F2E8 802B5CD8 97A40032 */ lhu $a0, 0x32($sp) +/* 11F2EC 802B5CDC E7A00028 */ swc1 $f0, 0x28($sp) +/* 11F2F0 802B5CE0 0C0AE006 */ jal func_802B8018 +/* 11F2F4 802B5CE4 AFA4001C */ sw $a0, 0x1c($sp) +/* 11F2F8 802B5CE8 8FA4001C */ lw $a0, 0x1c($sp) +/* 11F2FC 802B5CEC 0C0AE00E */ jal func_802B8038 +/* 11F300 802B5CF0 E7A00024 */ swc1 $f0, 0x24($sp) +/* 11F304 802B5CF4 C7A20028 */ lwc1 $f2, 0x28($sp) +/* 11F308 802B5CF8 C7A40024 */ lwc1 $f4, 0x24($sp) +/* 11F30C 802B5CFC 8FA20038 */ lw $v0, 0x38($sp) +/* 11F310 802B5D00 46041182 */ mul.s $f6, $f2, $f4 +/* 11F314 802B5D04 00000000 */ nop +/* 11F318 802B5D08 46001282 */ mul.s $f10, $f2, $f0 +/* 11F31C 802B5D0C E4460000 */ swc1 $f6, ($v0) +/* 11F320 802B5D10 C7A8002C */ lwc1 $f8, 0x2c($sp) +/* 11F324 802B5D14 46005407 */ neg.s $f16, $f10 +/* 11F328 802B5D18 E4480004 */ swc1 $f8, 4($v0) +/* 11F32C 802B5D1C E4500008 */ swc1 $f16, 8($v0) +/* 11F330 802B5D20 8FBF0014 */ lw $ra, 0x14($sp) +/* 11F334 802B5D24 27BD0030 */ addiu $sp, $sp, 0x30 +/* 11F338 802B5D28 03E00008 */ jr $ra +/* 11F33C 802B5D2C 00000000 */ nop + +/* 11F340 802B5D30 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 11F344 802B5D34 AFBF0014 */ sw $ra, 0x14($sp) +/* 11F348 802B5D38 AFA40018 */ sw $a0, 0x18($sp) +/* 11F34C 802B5D3C AFA5001C */ sw $a1, 0x1c($sp) +/* 11F350 802B5D40 00C03825 */ move $a3, $a2 +/* 11F354 802B5D44 87A6001E */ lh $a2, 0x1e($sp) +/* 11F358 802B5D48 87A5001A */ lh $a1, 0x1a($sp) +/* 11F35C 802B5D4C 0C0AD759 */ jal func_802B5D64 +/* 11F360 802B5D50 3C040900 */ lui $a0, 0x900 +/* 11F364 802B5D54 8FBF0014 */ lw $ra, 0x14($sp) +/* 11F368 802B5D58 27BD0018 */ addiu $sp, $sp, 0x18 +/* 11F36C 802B5D5C 03E00008 */ jr $ra +/* 11F370 802B5D60 00000000 */ nop + +glabel func_802B5D64 +/* 11F374 802B5D64 0004CE02 */ srl $t9, $a0, 0x18 +/* 11F378 802B5D68 27BDFFA8 */ addiu $sp, $sp, -0x58 +/* 11F37C 802B5D6C 00194080 */ sll $t0, $t9, 2 +/* 11F380 802B5D70 3C098015 */ lui $t1, %hi(gSegmentTable) +/* 11F384 802B5D74 3C0100FF */ lui $at, (0x00FFFFFF >> 16) # lui $at, 0xff +/* 11F388 802B5D78 3421FFFF */ ori $at, (0x00FFFFFF & 0xFFFF) # ori $at, $at, 0xffff +/* 11F38C 802B5D7C 01284821 */ addu $t1, $t1, $t0 +/* 11F390 802B5D80 8D290258 */ lw $t1, %lo(gSegmentTable)($t1) +/* 11F394 802B5D84 00815024 */ and $t2, $a0, $at +/* 11F398 802B5D88 AFB00014 */ sw $s0, 0x14($sp) +/* 11F39C 802B5D8C AFA40058 */ sw $a0, 0x58($sp) +/* 11F3A0 802B5D90 AFBF001C */ sw $ra, 0x1c($sp) +/* 11F3A4 802B5D94 AFB10018 */ sw $s1, 0x18($sp) +/* 11F3A8 802B5D98 3C018000 */ lui $at, 0x8000 +/* 11F3AC 802B5D9C 30C4FFFF */ andi $a0, $a2, 0xffff +/* 11F3B0 802B5DA0 012A8021 */ addu $s0, $t1, $t2 +/* 11F3B4 802B5DA4 00E08825 */ move $s1, $a3 +/* 11F3B8 802B5DA8 AFA5005C */ sw $a1, 0x5c($sp) +/* 11F3BC 802B5DAC AFA60060 */ sw $a2, 0x60($sp) +/* 11F3C0 802B5DB0 02018021 */ addu $s0, $s0, $at +/* 11F3C4 802B5DB4 0C0AE006 */ jal func_802B8018 +/* 11F3C8 802B5DB8 AFA40020 */ sw $a0, 0x20($sp) +/* 11F3CC 802B5DBC 8FA40020 */ lw $a0, 0x20($sp) +/* 11F3D0 802B5DC0 0C0AE00E */ jal func_802B8038 +/* 11F3D4 802B5DC4 E7A00048 */ swc1 $f0, 0x48($sp) +/* 11F3D8 802B5DC8 97A4005E */ lhu $a0, 0x5e($sp) +/* 11F3DC 802B5DCC E7A00044 */ swc1 $f0, 0x44($sp) +/* 11F3E0 802B5DD0 0C0AE006 */ jal func_802B8018 +/* 11F3E4 802B5DD4 AFA40020 */ sw $a0, 0x20($sp) +/* 11F3E8 802B5DD8 8FA40020 */ lw $a0, 0x20($sp) +/* 11F3EC 802B5DDC 0C0AE00E */ jal func_802B8038 +/* 11F3F0 802B5DE0 E7A00040 */ swc1 $f0, 0x40($sp) +/* 11F3F4 802B5DE4 C7AC0044 */ lwc1 $f12, 0x44($sp) +/* 11F3F8 802B5DE8 C7A40040 */ lwc1 $f4, 0x40($sp) +/* 11F3FC 802B5DEC 3C0142F0 */ li $at, 0x42F00000 # 120.000000 +/* 11F400 802B5DF0 44811000 */ mtc1 $at, $f2 +/* 11F404 802B5DF4 46046182 */ mul.s $f6, $f12, $f4 +/* 11F408 802B5DF8 C7B00048 */ lwc1 $f16, 0x48($sp) +/* 11F40C 802B5DFC 3C01C2F0 */ li $at, 0xC2F00000 # -120.000000 +/* 11F410 802B5E00 00001025 */ move $v0, $zero +/* 11F414 802B5E04 32240003 */ andi $a0, $s1, 3 +/* 11F418 802B5E08 46023202 */ mul.s $f8, $f6, $f2 +/* 11F41C 802B5E0C 00000000 */ nop +/* 11F420 802B5E10 46101482 */ mul.s $f18, $f2, $f16 +/* 11F424 802B5E14 00000000 */ nop +/* 11F428 802B5E18 46006182 */ mul.s $f6, $f12, $f0 +/* 11F42C 802B5E1C 4600428D */ trunc.w.s $f10, $f8 +/* 11F430 802B5E20 44814000 */ mtc1 $at, $f8 +/* 11F434 802B5E24 4600910D */ trunc.w.s $f4, $f18 +/* 11F438 802B5E28 440C5000 */ mfc1 $t4, $f10 +/* 11F43C 802B5E2C 46083282 */ mul.s $f10, $f6, $f8 +/* 11F440 802B5E30 440E2000 */ mfc1 $t6, $f4 +/* 11F444 802B5E34 A3AC002C */ sb $t4, 0x2c($sp) +/* 11F448 802B5E38 A3AE002D */ sb $t6, 0x2d($sp) +/* 11F44C 802B5E3C 4600540D */ trunc.w.s $f16, $f10 +/* 11F450 802B5E40 44198000 */ mfc1 $t9, $f16 +/* 11F454 802B5E44 1A200029 */ blez $s1, .L802B5EEC +/* 11F458 802B5E48 A3B9002E */ sb $t9, 0x2e($sp) +/* 11F45C 802B5E4C 1080000C */ beqz $a0, .L802B5E80 +/* 11F460 802B5E50 00801825 */ move $v1, $a0 +.L802B5E54: +/* 11F464 802B5E54 83A8002C */ lb $t0, 0x2c($sp) +/* 11F468 802B5E58 24420001 */ addiu $v0, $v0, 1 +/* 11F46C 802B5E5C 26100018 */ addiu $s0, $s0, 0x18 +/* 11F470 802B5E60 A208FFF8 */ sb $t0, -8($s0) +/* 11F474 802B5E64 83B8002D */ lb $t8, 0x2d($sp) +/* 11F478 802B5E68 A218FFF9 */ sb $t8, -7($s0) +/* 11F47C 802B5E6C 83A9002E */ lb $t1, 0x2e($sp) +/* 11F480 802B5E70 1462FFF8 */ bne $v1, $v0, .L802B5E54 +/* 11F484 802B5E74 A209FFFA */ sb $t1, -6($s0) +/* 11F488 802B5E78 5051001D */ beql $v0, $s1, .L802B5EF0 +/* 11F48C 802B5E7C 8FBF001C */ lw $ra, 0x1c($sp) +.L802B5E80: +/* 11F490 802B5E80 83AA002C */ lb $t2, 0x2c($sp) +/* 11F494 802B5E84 24420004 */ addiu $v0, $v0, 4 +/* 11F498 802B5E88 26100060 */ addiu $s0, $s0, 0x60 +/* 11F49C 802B5E8C A20AFFB0 */ sb $t2, -0x50($s0) +/* 11F4A0 802B5E90 83AB002D */ lb $t3, 0x2d($sp) +/* 11F4A4 802B5E94 A20BFFB1 */ sb $t3, -0x4f($s0) +/* 11F4A8 802B5E98 83AC002E */ lb $t4, 0x2e($sp) +/* 11F4AC 802B5E9C A20CFFB2 */ sb $t4, -0x4e($s0) +/* 11F4B0 802B5EA0 83AD002C */ lb $t5, 0x2c($sp) +/* 11F4B4 802B5EA4 A20DFFC8 */ sb $t5, -0x38($s0) +/* 11F4B8 802B5EA8 83AE002D */ lb $t6, 0x2d($sp) +/* 11F4BC 802B5EAC A20EFFC9 */ sb $t6, -0x37($s0) +/* 11F4C0 802B5EB0 83AF002E */ lb $t7, 0x2e($sp) +/* 11F4C4 802B5EB4 A20FFFCA */ sb $t7, -0x36($s0) +/* 11F4C8 802B5EB8 83B9002C */ lb $t9, 0x2c($sp) +/* 11F4CC 802B5EBC A219FFE0 */ sb $t9, -0x20($s0) +/* 11F4D0 802B5EC0 83A8002D */ lb $t0, 0x2d($sp) +/* 11F4D4 802B5EC4 A208FFE1 */ sb $t0, -0x1f($s0) +/* 11F4D8 802B5EC8 83B8002E */ lb $t8, 0x2e($sp) +/* 11F4DC 802B5ECC A218FFE2 */ sb $t8, -0x1e($s0) +/* 11F4E0 802B5ED0 83A9002C */ lb $t1, 0x2c($sp) +/* 11F4E4 802B5ED4 A209FFF8 */ sb $t1, -8($s0) +/* 11F4E8 802B5ED8 83AA002D */ lb $t2, 0x2d($sp) +/* 11F4EC 802B5EDC A20AFFF9 */ sb $t2, -7($s0) +/* 11F4F0 802B5EE0 83AB002E */ lb $t3, 0x2e($sp) +/* 11F4F4 802B5EE4 1451FFE6 */ bne $v0, $s1, .L802B5E80 +/* 11F4F8 802B5EE8 A20BFFFA */ sb $t3, -6($s0) +.L802B5EEC: +/* 11F4FC 802B5EEC 8FBF001C */ lw $ra, 0x1c($sp) +.L802B5EF0: +/* 11F500 802B5EF0 8FB00014 */ lw $s0, 0x14($sp) +/* 11F504 802B5EF4 8FB10018 */ lw $s1, 0x18($sp) +/* 11F508 802B5EF8 03E00008 */ jr $ra +/* 11F50C 802B5EFC 27BD0058 */ addiu $sp, $sp, 0x58 + +glabel func_802B5F00 +/* 11F510 802B5F00 44856000 */ mtc1 $a1, $f12 +/* 11F514 802B5F04 C4840000 */ lwc1 $f4, ($a0) +/* 11F518 802B5F08 C4880010 */ lwc1 $f8, 0x10($a0) +/* 11F51C 802B5F0C C4900020 */ lwc1 $f16, 0x20($a0) +/* 11F520 802B5F10 460C2182 */ mul.s $f6, $f4, $f12 +/* 11F524 802B5F14 C4840004 */ lwc1 $f4, 4($a0) +/* 11F528 802B5F18 460C4282 */ mul.s $f10, $f8, $f12 +/* 11F52C 802B5F1C C4880014 */ lwc1 $f8, 0x14($a0) +/* 11F530 802B5F20 460C8482 */ mul.s $f18, $f16, $f12 +/* 11F534 802B5F24 E4860000 */ swc1 $f6, ($a0) +/* 11F538 802B5F28 C4900024 */ lwc1 $f16, 0x24($a0) +/* 11F53C 802B5F2C 460C2182 */ mul.s $f6, $f4, $f12 +/* 11F540 802B5F30 E48A0010 */ swc1 $f10, 0x10($a0) +/* 11F544 802B5F34 C4840008 */ lwc1 $f4, 8($a0) +/* 11F548 802B5F38 460C4282 */ mul.s $f10, $f8, $f12 +/* 11F54C 802B5F3C E4920020 */ swc1 $f18, 0x20($a0) +/* 11F550 802B5F40 C4880018 */ lwc1 $f8, 0x18($a0) +/* 11F554 802B5F44 460C8482 */ mul.s $f18, $f16, $f12 +/* 11F558 802B5F48 E4860004 */ swc1 $f6, 4($a0) +/* 11F55C 802B5F4C C4900028 */ lwc1 $f16, 0x28($a0) +/* 11F560 802B5F50 460C2182 */ mul.s $f6, $f4, $f12 +/* 11F564 802B5F54 E48A0014 */ swc1 $f10, 0x14($a0) +/* 11F568 802B5F58 460C4282 */ mul.s $f10, $f8, $f12 +/* 11F56C 802B5F5C E4920024 */ swc1 $f18, 0x24($a0) +/* 11F570 802B5F60 460C8482 */ mul.s $f18, $f16, $f12 +/* 11F574 802B5F64 E4860008 */ swc1 $f6, 8($a0) +/* 11F578 802B5F68 E48A0018 */ swc1 $f10, 0x18($a0) +/* 11F57C 802B5F6C 03E00008 */ jr $ra +/* 11F580 802B5F70 E4920028 */ swc1 $f18, 0x28($a0) + +glabel func_802B5F74 +/* 11F584 802B5F74 27BDFFC0 */ addiu $sp, $sp, -0x40 +/* 11F588 802B5F78 AFB0001C */ sw $s0, 0x1c($sp) +/* 11F58C 802B5F7C 00808025 */ move $s0, $a0 +/* 11F590 802B5F80 AFBF0024 */ sw $ra, 0x24($sp) +/* 11F594 802B5F84 AFB10020 */ sw $s1, 0x20($sp) +/* 11F598 802B5F88 F7B40010 */ sdc1 $f20, 0x10($sp) +/* 11F59C 802B5F8C AFA50044 */ sw $a1, 0x44($sp) +/* 11F5A0 802B5F90 00C08825 */ move $s1, $a2 +/* 11F5A4 802B5F94 0C0AE006 */ jal func_802B8018 +/* 11F5A8 802B5F98 94C40000 */ lhu $a0, ($a2) +/* 11F5AC 802B5F9C E7A0003C */ swc1 $f0, 0x3c($sp) +/* 11F5B0 802B5FA0 0C0AE00E */ jal func_802B8038 +/* 11F5B4 802B5FA4 96240000 */ lhu $a0, ($s1) +/* 11F5B8 802B5FA8 46000506 */ mov.s $f20, $f0 +/* 11F5BC 802B5FAC 0C0AE006 */ jal func_802B8018 +/* 11F5C0 802B5FB0 96240002 */ lhu $a0, 2($s1) +/* 11F5C4 802B5FB4 96240002 */ lhu $a0, 2($s1) +/* 11F5C8 802B5FB8 0C0AE00E */ jal func_802B8038 +/* 11F5CC 802B5FBC E7A00034 */ swc1 $f0, 0x34($sp) +/* 11F5D0 802B5FC0 96240004 */ lhu $a0, 4($s1) +/* 11F5D4 802B5FC4 0C0AE006 */ jal func_802B8018 +/* 11F5D8 802B5FC8 E7A00030 */ swc1 $f0, 0x30($sp) +/* 11F5DC 802B5FCC 96240004 */ lhu $a0, 4($s1) +/* 11F5E0 802B5FD0 0C0AE00E */ jal func_802B8038 +/* 11F5E4 802B5FD4 E7A0002C */ swc1 $f0, 0x2c($sp) +/* 11F5E8 802B5FD8 C7AE0034 */ lwc1 $f14, 0x34($sp) +/* 11F5EC 802B5FDC C7B2003C */ lwc1 $f18, 0x3c($sp) +/* 11F5F0 802B5FE0 C7B00030 */ lwc1 $f16, 0x30($sp) +/* 11F5F4 802B5FE4 C7A2002C */ lwc1 $f2, 0x2c($sp) +/* 11F5F8 802B5FE8 460E9302 */ mul.s $f12, $f18, $f14 +/* 11F5FC 802B5FEC 46008287 */ neg.s $f10, $f16 +/* 11F600 802B5FF0 8FA20044 */ lw $v0, 0x44($sp) +/* 11F604 802B5FF4 46008102 */ mul.s $f4, $f16, $f0 +/* 11F608 802B5FF8 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 11F60C 802B5FFC 46026182 */ mul.s $f6, $f12, $f2 +/* 11F610 802B6000 46062200 */ add.s $f8, $f4, $f6 +/* 11F614 802B6004 46025102 */ mul.s $f4, $f10, $f2 +/* 11F618 802B6008 00000000 */ nop +/* 11F61C 802B600C 46006182 */ mul.s $f6, $f12, $f0 +/* 11F620 802B6010 E6080000 */ swc1 $f8, ($s0) +/* 11F624 802B6014 460EA282 */ mul.s $f10, $f20, $f14 +/* 11F628 802B6018 46062200 */ add.s $f8, $f4, $f6 +/* 11F62C 802B601C 4602A182 */ mul.s $f6, $f20, $f2 +/* 11F630 802B6020 E60A0020 */ swc1 $f10, 0x20($s0) +/* 11F634 802B6024 46009287 */ neg.s $f10, $f18 +/* 11F638 802B6028 E6080010 */ swc1 $f8, 0x10($s0) +/* 11F63C 802B602C 4600A202 */ mul.s $f8, $f20, $f0 +/* 11F640 802B6030 C4440000 */ lwc1 $f4, ($v0) +/* 11F644 802B6034 E60A0024 */ swc1 $f10, 0x24($s0) +/* 11F648 802B6038 46109302 */ mul.s $f12, $f18, $f16 +/* 11F64C 802B603C E6060004 */ swc1 $f6, 4($s0) +/* 11F650 802B6040 E6040030 */ swc1 $f4, 0x30($s0) +/* 11F654 802B6044 46007187 */ neg.s $f6, $f14 +/* 11F658 802B6048 E6080014 */ swc1 $f8, 0x14($s0) +/* 11F65C 802B604C 46003202 */ mul.s $f8, $f6, $f0 +/* 11F660 802B6050 C4440004 */ lwc1 $f4, 4($v0) +/* 11F664 802B6054 46026282 */ mul.s $f10, $f12, $f2 +/* 11F668 802B6058 E6040034 */ swc1 $f4, 0x34($s0) +/* 11F66C 802B605C 46027182 */ mul.s $f6, $f14, $f2 +/* 11F670 802B6060 460A4100 */ add.s $f4, $f8, $f10 +/* 11F674 802B6064 46006202 */ mul.s $f8, $f12, $f0 +/* 11F678 802B6068 44800000 */ mtc1 $zero, $f0 +/* 11F67C 802B606C E6040008 */ swc1 $f4, 8($s0) +/* 11F680 802B6070 4610A102 */ mul.s $f4, $f20, $f16 +/* 11F684 802B6074 46083280 */ add.s $f10, $f6, $f8 +/* 11F688 802B6078 44814000 */ mtc1 $at, $f8 +/* 11F68C 802B607C E6040028 */ swc1 $f4, 0x28($s0) +/* 11F690 802B6080 E60A0018 */ swc1 $f10, 0x18($s0) +/* 11F694 802B6084 C4460008 */ lwc1 $f6, 8($v0) +/* 11F698 802B6088 E600000C */ swc1 $f0, 0xc($s0) +/* 11F69C 802B608C E600001C */ swc1 $f0, 0x1c($s0) +/* 11F6A0 802B6090 E600002C */ swc1 $f0, 0x2c($s0) +/* 11F6A4 802B6094 E608003C */ swc1 $f8, 0x3c($s0) +/* 11F6A8 802B6098 E6060038 */ swc1 $f6, 0x38($s0) +/* 11F6AC 802B609C 8FBF0024 */ lw $ra, 0x24($sp) +/* 11F6B0 802B60A0 8FB10020 */ lw $s1, 0x20($sp) +/* 11F6B4 802B60A4 8FB0001C */ lw $s0, 0x1c($sp) +/* 11F6B8 802B60A8 D7B40010 */ ldc1 $f20, 0x10($sp) +/* 11F6BC 802B60AC 03E00008 */ jr $ra +/* 11F6C0 802B60B0 27BD0040 */ addiu $sp, $sp, 0x40 + +/* 11F6C4 802B60B4 27BDFFC0 */ addiu $sp, $sp, -0x40 +/* 11F6C8 802B60B8 AFB0001C */ sw $s0, 0x1c($sp) +/* 11F6CC 802B60BC 00808025 */ move $s0, $a0 +/* 11F6D0 802B60C0 AFBF0024 */ sw $ra, 0x24($sp) +/* 11F6D4 802B60C4 AFB10020 */ sw $s1, 0x20($sp) +/* 11F6D8 802B60C8 F7B40010 */ sdc1 $f20, 0x10($sp) +/* 11F6DC 802B60CC AFA50044 */ sw $a1, 0x44($sp) +/* 11F6E0 802B60D0 00C08825 */ move $s1, $a2 +/* 11F6E4 802B60D4 0C0AE006 */ jal func_802B8018 +/* 11F6E8 802B60D8 94C40000 */ lhu $a0, ($a2) +/* 11F6EC 802B60DC E7A0003C */ swc1 $f0, 0x3c($sp) +/* 11F6F0 802B60E0 0C0AE00E */ jal func_802B8038 +/* 11F6F4 802B60E4 96240000 */ lhu $a0, ($s1) +/* 11F6F8 802B60E8 46000506 */ mov.s $f20, $f0 +/* 11F6FC 802B60EC 0C0AE006 */ jal func_802B8018 +/* 11F700 802B60F0 96240002 */ lhu $a0, 2($s1) +/* 11F704 802B60F4 96240002 */ lhu $a0, 2($s1) +/* 11F708 802B60F8 0C0AE00E */ jal func_802B8038 +/* 11F70C 802B60FC E7A00034 */ swc1 $f0, 0x34($sp) +/* 11F710 802B6100 96240004 */ lhu $a0, 4($s1) +/* 11F714 802B6104 0C0AE006 */ jal func_802B8018 +/* 11F718 802B6108 E7A00030 */ swc1 $f0, 0x30($sp) +/* 11F71C 802B610C 96240004 */ lhu $a0, 4($s1) +/* 11F720 802B6110 0C0AE00E */ jal func_802B8038 +/* 11F724 802B6114 E7A0002C */ swc1 $f0, 0x2c($sp) +/* 11F728 802B6118 C7AE0034 */ lwc1 $f14, 0x34($sp) +/* 11F72C 802B611C C7B2003C */ lwc1 $f18, 0x3c($sp) +/* 11F730 802B6120 C7B00030 */ lwc1 $f16, 0x30($sp) +/* 11F734 802B6124 C7A2002C */ lwc1 $f2, 0x2c($sp) +/* 11F738 802B6128 460E9302 */ mul.s $f12, $f18, $f14 +/* 11F73C 802B612C 46008287 */ neg.s $f10, $f16 +/* 11F740 802B6130 8FA20044 */ lw $v0, 0x44($sp) +/* 11F744 802B6134 46008102 */ mul.s $f4, $f16, $f0 +/* 11F748 802B6138 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 11F74C 802B613C 46026182 */ mul.s $f6, $f12, $f2 +/* 11F750 802B6140 46062200 */ add.s $f8, $f4, $f6 +/* 11F754 802B6144 46025102 */ mul.s $f4, $f10, $f2 +/* 11F758 802B6148 00000000 */ nop +/* 11F75C 802B614C 46006182 */ mul.s $f6, $f12, $f0 +/* 11F760 802B6150 E6080000 */ swc1 $f8, ($s0) +/* 11F764 802B6154 460EA282 */ mul.s $f10, $f20, $f14 +/* 11F768 802B6158 46062200 */ add.s $f8, $f4, $f6 +/* 11F76C 802B615C E60A0008 */ swc1 $f10, 8($s0) +/* 11F770 802B6160 E6080004 */ swc1 $f8, 4($s0) +/* 11F774 802B6164 844E0000 */ lh $t6, ($v0) +/* 11F778 802B6168 4602A202 */ mul.s $f8, $f20, $f2 +/* 11F77C 802B616C 448E2000 */ mtc1 $t6, $f4 +/* 11F780 802B6170 4600A282 */ mul.s $f10, $f20, $f0 +/* 11F784 802B6174 E6080010 */ swc1 $f8, 0x10($s0) +/* 11F788 802B6178 46109302 */ mul.s $f12, $f18, $f16 +/* 11F78C 802B617C E60A0014 */ swc1 $f10, 0x14($s0) +/* 11F790 802B6180 46007287 */ neg.s $f10, $f14 +/* 11F794 802B6184 468021A0 */ cvt.s.w $f6, $f4 +/* 11F798 802B6188 46009107 */ neg.s $f4, $f18 +/* 11F79C 802B618C E606000C */ swc1 $f6, 0xc($s0) +/* 11F7A0 802B6190 E6040018 */ swc1 $f4, 0x18($s0) +/* 11F7A4 802B6194 844F0002 */ lh $t7, 2($v0) +/* 11F7A8 802B6198 46005102 */ mul.s $f4, $f10, $f0 +/* 11F7AC 802B619C 448F3000 */ mtc1 $t7, $f6 +/* 11F7B0 802B61A0 00000000 */ nop +/* 11F7B4 802B61A4 46803220 */ cvt.s.w $f8, $f6 +/* 11F7B8 802B61A8 46026182 */ mul.s $f6, $f12, $f2 +/* 11F7BC 802B61AC 00000000 */ nop +/* 11F7C0 802B61B0 46027282 */ mul.s $f10, $f14, $f2 +/* 11F7C4 802B61B4 E608001C */ swc1 $f8, 0x1c($s0) +/* 11F7C8 802B61B8 46062200 */ add.s $f8, $f4, $f6 +/* 11F7CC 802B61BC 46006102 */ mul.s $f4, $f12, $f0 +/* 11F7D0 802B61C0 44800000 */ mtc1 $zero, $f0 +/* 11F7D4 802B61C4 E6080020 */ swc1 $f8, 0x20($s0) +/* 11F7D8 802B61C8 4610A202 */ mul.s $f8, $f20, $f16 +/* 11F7DC 802B61CC 46045180 */ add.s $f6, $f10, $f4 +/* 11F7E0 802B61D0 E6080028 */ swc1 $f8, 0x28($s0) +/* 11F7E4 802B61D4 E6060024 */ swc1 $f6, 0x24($s0) +/* 11F7E8 802B61D8 84580004 */ lh $t8, 4($v0) +/* 11F7EC 802B61DC 44813000 */ mtc1 $at, $f6 +/* 11F7F0 802B61E0 E6000030 */ swc1 $f0, 0x30($s0) +/* 11F7F4 802B61E4 44985000 */ mtc1 $t8, $f10 +/* 11F7F8 802B61E8 E6000034 */ swc1 $f0, 0x34($s0) +/* 11F7FC 802B61EC E6000038 */ swc1 $f0, 0x38($s0) +/* 11F800 802B61F0 46805120 */ cvt.s.w $f4, $f10 +/* 11F804 802B61F4 E606003C */ swc1 $f6, 0x3c($s0) +/* 11F808 802B61F8 E604002C */ swc1 $f4, 0x2c($s0) +/* 11F80C 802B61FC 8FBF0024 */ lw $ra, 0x24($sp) +/* 11F810 802B6200 8FB10020 */ lw $s1, 0x20($sp) +/* 11F814 802B6204 8FB0001C */ lw $s0, 0x1c($sp) +/* 11F818 802B6208 D7B40010 */ ldc1 $f20, 0x10($sp) +/* 11F81C 802B620C 03E00008 */ jr $ra +/* 11F820 802B6210 27BD0040 */ addiu $sp, $sp, 0x40 + +/* 11F824 802B6214 27BDFFC0 */ addiu $sp, $sp, -0x40 +/* 11F828 802B6218 AFB0001C */ sw $s0, 0x1c($sp) +/* 11F82C 802B621C 00808025 */ move $s0, $a0 +/* 11F830 802B6220 AFBF0024 */ sw $ra, 0x24($sp) +/* 11F834 802B6224 AFB10020 */ sw $s1, 0x20($sp) +/* 11F838 802B6228 F7B40010 */ sdc1 $f20, 0x10($sp) +/* 11F83C 802B622C AFA50044 */ sw $a1, 0x44($sp) +/* 11F840 802B6230 00C08825 */ move $s1, $a2 +/* 11F844 802B6234 0C0AE006 */ jal func_802B8018 +/* 11F848 802B6238 94C40000 */ lhu $a0, ($a2) +/* 11F84C 802B623C E7A0003C */ swc1 $f0, 0x3c($sp) +/* 11F850 802B6240 0C0AE00E */ jal func_802B8038 +/* 11F854 802B6244 96240000 */ lhu $a0, ($s1) +/* 11F858 802B6248 46000506 */ mov.s $f20, $f0 +/* 11F85C 802B624C 0C0AE006 */ jal func_802B8018 +/* 11F860 802B6250 96240002 */ lhu $a0, 2($s1) +/* 11F864 802B6254 96240002 */ lhu $a0, 2($s1) +/* 11F868 802B6258 0C0AE00E */ jal func_802B8038 +/* 11F86C 802B625C E7A00034 */ swc1 $f0, 0x34($sp) +/* 11F870 802B6260 96240004 */ lhu $a0, 4($s1) +/* 11F874 802B6264 0C0AE006 */ jal func_802B8018 +/* 11F878 802B6268 E7A00030 */ swc1 $f0, 0x30($sp) +/* 11F87C 802B626C 96240004 */ lhu $a0, 4($s1) +/* 11F880 802B6270 0C0AE00E */ jal func_802B8038 +/* 11F884 802B6274 E7A0002C */ swc1 $f0, 0x2c($sp) +/* 11F888 802B6278 C7AE0034 */ lwc1 $f14, 0x34($sp) +/* 11F88C 802B627C C7B2003C */ lwc1 $f18, 0x3c($sp) +/* 11F890 802B6280 C7B00030 */ lwc1 $f16, 0x30($sp) +/* 11F894 802B6284 C7A2002C */ lwc1 $f2, 0x2c($sp) +/* 11F898 802B6288 460E9302 */ mul.s $f12, $f18, $f14 +/* 11F89C 802B628C 46008287 */ neg.s $f10, $f16 +/* 11F8A0 802B6290 8FA20044 */ lw $v0, 0x44($sp) +/* 11F8A4 802B6294 46008102 */ mul.s $f4, $f16, $f0 +/* 11F8A8 802B6298 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 11F8AC 802B629C 46026182 */ mul.s $f6, $f12, $f2 +/* 11F8B0 802B62A0 46062200 */ add.s $f8, $f4, $f6 +/* 11F8B4 802B62A4 46025102 */ mul.s $f4, $f10, $f2 +/* 11F8B8 802B62A8 00000000 */ nop +/* 11F8BC 802B62AC 46006182 */ mul.s $f6, $f12, $f0 +/* 11F8C0 802B62B0 E6080000 */ swc1 $f8, ($s0) +/* 11F8C4 802B62B4 460EA282 */ mul.s $f10, $f20, $f14 +/* 11F8C8 802B62B8 46062200 */ add.s $f8, $f4, $f6 +/* 11F8CC 802B62BC E60A0020 */ swc1 $f10, 0x20($s0) +/* 11F8D0 802B62C0 E6080010 */ swc1 $f8, 0x10($s0) +/* 11F8D4 802B62C4 844E0000 */ lh $t6, ($v0) +/* 11F8D8 802B62C8 4602A202 */ mul.s $f8, $f20, $f2 +/* 11F8DC 802B62CC 448E2000 */ mtc1 $t6, $f4 +/* 11F8E0 802B62D0 4600A282 */ mul.s $f10, $f20, $f0 +/* 11F8E4 802B62D4 E6080004 */ swc1 $f8, 4($s0) +/* 11F8E8 802B62D8 46109302 */ mul.s $f12, $f18, $f16 +/* 11F8EC 802B62DC E60A0014 */ swc1 $f10, 0x14($s0) +/* 11F8F0 802B62E0 46007287 */ neg.s $f10, $f14 +/* 11F8F4 802B62E4 468021A0 */ cvt.s.w $f6, $f4 +/* 11F8F8 802B62E8 46009107 */ neg.s $f4, $f18 +/* 11F8FC 802B62EC E6060030 */ swc1 $f6, 0x30($s0) +/* 11F900 802B62F0 E6040024 */ swc1 $f4, 0x24($s0) +/* 11F904 802B62F4 844F0002 */ lh $t7, 2($v0) +/* 11F908 802B62F8 46005102 */ mul.s $f4, $f10, $f0 +/* 11F90C 802B62FC 448F3000 */ mtc1 $t7, $f6 +/* 11F910 802B6300 00000000 */ nop +/* 11F914 802B6304 46803220 */ cvt.s.w $f8, $f6 +/* 11F918 802B6308 46026182 */ mul.s $f6, $f12, $f2 +/* 11F91C 802B630C 00000000 */ nop +/* 11F920 802B6310 46027282 */ mul.s $f10, $f14, $f2 +/* 11F924 802B6314 E6080034 */ swc1 $f8, 0x34($s0) +/* 11F928 802B6318 46062200 */ add.s $f8, $f4, $f6 +/* 11F92C 802B631C 46006102 */ mul.s $f4, $f12, $f0 +/* 11F930 802B6320 44800000 */ mtc1 $zero, $f0 +/* 11F934 802B6324 E6080008 */ swc1 $f8, 8($s0) +/* 11F938 802B6328 4610A202 */ mul.s $f8, $f20, $f16 +/* 11F93C 802B632C 46045180 */ add.s $f6, $f10, $f4 +/* 11F940 802B6330 E6080028 */ swc1 $f8, 0x28($s0) +/* 11F944 802B6334 E6060018 */ swc1 $f6, 0x18($s0) +/* 11F948 802B6338 84580004 */ lh $t8, 4($v0) +/* 11F94C 802B633C 44813000 */ mtc1 $at, $f6 +/* 11F950 802B6340 E600000C */ swc1 $f0, 0xc($s0) +/* 11F954 802B6344 44985000 */ mtc1 $t8, $f10 +/* 11F958 802B6348 E600001C */ swc1 $f0, 0x1c($s0) +/* 11F95C 802B634C E600002C */ swc1 $f0, 0x2c($s0) +/* 11F960 802B6350 46805120 */ cvt.s.w $f4, $f10 +/* 11F964 802B6354 E606003C */ swc1 $f6, 0x3c($s0) +/* 11F968 802B6358 E6040038 */ swc1 $f4, 0x38($s0) +/* 11F96C 802B635C 8FBF0024 */ lw $ra, 0x24($sp) +/* 11F970 802B6360 8FB10020 */ lw $s1, 0x20($sp) +/* 11F974 802B6364 8FB0001C */ lw $s0, 0x1c($sp) +/* 11F978 802B6368 D7B40010 */ ldc1 $f20, 0x10($sp) +/* 11F97C 802B636C 03E00008 */ jr $ra +/* 11F980 802B6370 27BD0040 */ addiu $sp, $sp, 0x40 + +/* 11F984 802B6374 C48C0000 */ lwc1 $f12, ($a0) +/* 11F988 802B6378 C48E0004 */ lwc1 $f14, 4($a0) +/* 11F98C 802B637C C4820008 */ lwc1 $f2, 8($a0) +/* 11F990 802B6380 460C6102 */ mul.s $f4, $f12, $f12 +/* 11F994 802B6384 00000000 */ nop +/* 11F998 802B6388 460E7182 */ mul.s $f6, $f14, $f14 +/* 11F99C 802B638C 46062200 */ add.s $f8, $f4, $f6 +/* 11F9A0 802B6390 46021282 */ mul.s $f10, $f2, $f2 +/* 11F9A4 802B6394 46085000 */ add.s $f0, $f10, $f8 +/* 11F9A8 802B6398 46000004 */ sqrt.s $f0, $f0 +/* 11F9AC 802B639C 46006403 */ div.s $f16, $f12, $f0 +/* 11F9B0 802B63A0 46007483 */ div.s $f18, $f14, $f0 +/* 11F9B4 802B63A4 E4900000 */ swc1 $f16, ($a0) +/* 11F9B8 802B63A8 46001103 */ div.s $f4, $f2, $f0 +/* 11F9BC 802B63AC E4920004 */ swc1 $f18, 4($a0) +/* 11F9C0 802B63B0 03E00008 */ jr $ra +/* 11F9C4 802B63B4 E4840008 */ swc1 $f4, 8($a0) + +glabel func_802B63B8 +/* 11F9C8 802B63B8 C48C0000 */ lwc1 $f12, ($a0) +/* 11F9CC 802B63BC C4A40000 */ lwc1 $f4, ($a1) +/* 11F9D0 802B63C0 C48E0004 */ lwc1 $f14, 4($a0) +/* 11F9D4 802B63C4 C4A80004 */ lwc1 $f8, 4($a1) +/* 11F9D8 802B63C8 460C2182 */ mul.s $f6, $f4, $f12 +/* 11F9DC 802B63CC C4820008 */ lwc1 $f2, 8($a0) +/* 11F9E0 802B63D0 460E4282 */ mul.s $f10, $f8, $f14 +/* 11F9E4 802B63D4 C4A80008 */ lwc1 $f8, 8($a1) +/* 11F9E8 802B63D8 460A3100 */ add.s $f4, $f6, $f10 +/* 11F9EC 802B63DC 46081182 */ mul.s $f6, $f2, $f8 +/* 11F9F0 802B63E0 C4AA000C */ lwc1 $f10, 0xc($a1) +/* 11F9F4 802B63E4 460C5202 */ mul.s $f8, $f10, $f12 +/* 11F9F8 802B63E8 46043000 */ add.s $f0, $f6, $f4 +/* 11F9FC 802B63EC C4A60010 */ lwc1 $f6, 0x10($a1) +/* 11FA00 802B63F0 460E3102 */ mul.s $f4, $f6, $f14 +/* 11FA04 802B63F4 C4A60014 */ lwc1 $f6, 0x14($a1) +/* 11FA08 802B63F8 46044280 */ add.s $f10, $f8, $f4 +/* 11FA0C 802B63FC 46061202 */ mul.s $f8, $f2, $f6 +/* 11FA10 802B6400 C4A40018 */ lwc1 $f4, 0x18($a1) +/* 11FA14 802B6404 460C2182 */ mul.s $f6, $f4, $f12 +/* 11FA18 802B6408 460A4400 */ add.s $f16, $f8, $f10 +/* 11FA1C 802B640C C4A8001C */ lwc1 $f8, 0x1c($a1) +/* 11FA20 802B6410 460E4282 */ mul.s $f10, $f8, $f14 +/* 11FA24 802B6414 C4A80020 */ lwc1 $f8, 0x20($a1) +/* 11FA28 802B6418 E4800000 */ swc1 $f0, ($a0) +/* 11FA2C 802B641C E4900004 */ swc1 $f16, 4($a0) +/* 11FA30 802B6420 460A3100 */ add.s $f4, $f6, $f10 +/* 11FA34 802B6424 46081182 */ mul.s $f6, $f2, $f8 +/* 11FA38 802B6428 46043480 */ add.s $f18, $f6, $f4 +/* 11FA3C 802B642C 03E00008 */ jr $ra +/* 11FA40 802B6430 E4920008 */ swc1 $f18, 8($a0) + +glabel func_802B6434 +/* 11FA44 802B6434 C48C0000 */ lwc1 $f12, ($a0) +/* 11FA48 802B6438 C4A40000 */ lwc1 $f4, ($a1) +/* 11FA4C 802B643C C48E0004 */ lwc1 $f14, 4($a0) +/* 11FA50 802B6440 C4A80004 */ lwc1 $f8, 4($a1) +/* 11FA54 802B6444 460C2182 */ mul.s $f6, $f4, $f12 +/* 11FA58 802B6448 C4820008 */ lwc1 $f2, 8($a0) +/* 11FA5C 802B644C 460E4282 */ mul.s $f10, $f8, $f14 +/* 11FA60 802B6450 C4A80008 */ lwc1 $f8, 8($a1) +/* 11FA64 802B6454 460A3100 */ add.s $f4, $f6, $f10 +/* 11FA68 802B6458 46081182 */ mul.s $f6, $f2, $f8 +/* 11FA6C 802B645C C4AA0010 */ lwc1 $f10, 0x10($a1) +/* 11FA70 802B6460 460C5202 */ mul.s $f8, $f10, $f12 +/* 11FA74 802B6464 46043000 */ add.s $f0, $f6, $f4 +/* 11FA78 802B6468 C4A60014 */ lwc1 $f6, 0x14($a1) +/* 11FA7C 802B646C 460E3102 */ mul.s $f4, $f6, $f14 +/* 11FA80 802B6470 C4A60018 */ lwc1 $f6, 0x18($a1) +/* 11FA84 802B6474 46044280 */ add.s $f10, $f8, $f4 +/* 11FA88 802B6478 46061202 */ mul.s $f8, $f2, $f6 +/* 11FA8C 802B647C C4A40020 */ lwc1 $f4, 0x20($a1) +/* 11FA90 802B6480 460C2182 */ mul.s $f6, $f4, $f12 +/* 11FA94 802B6484 460A4400 */ add.s $f16, $f8, $f10 +/* 11FA98 802B6488 C4A80024 */ lwc1 $f8, 0x24($a1) +/* 11FA9C 802B648C 460E4282 */ mul.s $f10, $f8, $f14 +/* 11FAA0 802B6490 C4A80028 */ lwc1 $f8, 0x28($a1) +/* 11FAA4 802B6494 E4800000 */ swc1 $f0, ($a0) +/* 11FAA8 802B6498 E4900004 */ swc1 $f16, 4($a0) +/* 11FAAC 802B649C 460A3100 */ add.s $f4, $f6, $f10 +/* 11FAB0 802B64A0 46081182 */ mul.s $f6, $f2, $f8 +/* 11FAB4 802B64A4 46043480 */ add.s $f18, $f6, $f4 +/* 11FAB8 802B64A8 03E00008 */ jr $ra +/* 11FABC 802B64AC E4920008 */ swc1 $f18, 8($a0) + +/* 11FAC0 802B64B0 AFA40000 */ sw $a0, ($sp) +/* 11FAC4 802B64B4 AFA50004 */ sw $a1, 4($sp) +/* 11FAC8 802B64B8 AFA60008 */ sw $a2, 8($sp) +/* 11FACC 802B64BC 03E00008 */ jr $ra +/* 11FAD0 802B64C0 AFA7000C */ sw $a3, 0xc($sp) + +glabel func_802B64C4 +/* 11FAD4 802B64C4 27BDFFD0 */ addiu $sp, $sp, -0x30 +/* 11FAD8 802B64C8 00803025 */ move $a2, $a0 +/* 11FADC 802B64CC AFBF0014 */ sw $ra, 0x14($sp) +/* 11FAE0 802B64D0 30A4FFFF */ andi $a0, $a1, 0xffff +/* 11FAE4 802B64D4 AFA50034 */ sw $a1, 0x34($sp) +/* 11FAE8 802B64D8 AFA40018 */ sw $a0, 0x18($sp) +/* 11FAEC 802B64DC 0C0AE006 */ jal func_802B8018 +/* 11FAF0 802B64E0 AFA60030 */ sw $a2, 0x30($sp) +/* 11FAF4 802B64E4 8FA40018 */ lw $a0, 0x18($sp) +/* 11FAF8 802B64E8 0C0AE00E */ jal func_802B8038 +/* 11FAFC 802B64EC E7A0002C */ swc1 $f0, 0x2c($sp) +/* 11FB00 802B64F0 8FA60030 */ lw $a2, 0x30($sp) +/* 11FB04 802B64F4 C7B0002C */ lwc1 $f16, 0x2c($sp) +/* 11FB08 802B64F8 C4C20000 */ lwc1 $f2, ($a2) +/* 11FB0C 802B64FC C4CC0008 */ lwc1 $f12, 8($a2) +/* 11FB10 802B6500 C4CE0004 */ lwc1 $f14, 4($a2) +/* 11FB14 802B6504 46020102 */ mul.s $f4, $f0, $f2 +/* 11FB18 802B6508 E4CE0004 */ swc1 $f14, 4($a2) +/* 11FB1C 802B650C 460C8182 */ mul.s $f6, $f16, $f12 +/* 11FB20 802B6510 00000000 */ nop +/* 11FB24 802B6514 46028282 */ mul.s $f10, $f16, $f2 +/* 11FB28 802B6518 00000000 */ nop +/* 11FB2C 802B651C 460C0482 */ mul.s $f18, $f0, $f12 +/* 11FB30 802B6520 46062201 */ sub.s $f8, $f4, $f6 +/* 11FB34 802B6524 E4C80000 */ swc1 $f8, ($a2) +/* 11FB38 802B6528 46125100 */ add.s $f4, $f10, $f18 +/* 11FB3C 802B652C E4C40008 */ swc1 $f4, 8($a2) +/* 11FB40 802B6530 8FBF0014 */ lw $ra, 0x14($sp) +/* 11FB44 802B6534 27BD0030 */ addiu $sp, $sp, 0x30 +/* 11FB48 802B6538 03E00008 */ jr $ra +/* 11FB4C 802B653C 00000000 */ nop + +glabel func_802B6540 +/* 11FB50 802B6540 27BDFF50 */ addiu $sp, $sp, -0xb0 +/* 11FB54 802B6544 AFB00020 */ sw $s0, 0x20($sp) +/* 11FB58 802B6548 00808025 */ move $s0, $a0 +/* 11FB5C 802B654C 97A400C2 */ lhu $a0, 0xc2($sp) +/* 11FB60 802B6550 AFBF0024 */ sw $ra, 0x24($sp) +/* 11FB64 802B6554 AFA500B4 */ sw $a1, 0xb4($sp) +/* 11FB68 802B6558 AFA600B8 */ sw $a2, 0xb8($sp) +/* 11FB6C 802B655C AFA700BC */ sw $a3, 0xbc($sp) +/* 11FB70 802B6560 0C0AE006 */ jal func_802B8018 +/* 11FB74 802B6564 AFA40038 */ sw $a0, 0x38($sp) +/* 11FB78 802B6568 8FA40038 */ lw $a0, 0x38($sp) +/* 11FB7C 802B656C 0C0AE00E */ jal func_802B8038 +/* 11FB80 802B6570 E7A00040 */ swc1 $f0, 0x40($sp) +/* 11FB84 802B6574 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 11FB88 802B6578 44816000 */ mtc1 $at, $f12 +/* 11FB8C 802B657C C7A600B8 */ lwc1 $f6, 0xb8($sp) +/* 11FB90 802B6580 44807000 */ mtc1 $zero, $f14 +/* 11FB94 802B6584 C7A20040 */ lwc1 $f2, 0x40($sp) +/* 11FB98 802B6588 460C3032 */ c.eq.s $f6, $f12 +/* 11FB9C 802B658C E7A0008C */ swc1 $f0, 0x8c($sp) +/* 11FBA0 802B6590 46001107 */ neg.s $f4, $f2 +/* 11FBA4 802B6594 E7A000AC */ swc1 $f0, 0xac($sp) +/* 11FBA8 802B6598 E7A40094 */ swc1 $f4, 0x94($sp) +/* 11FBAC 802B659C E7AC009C */ swc1 $f12, 0x9c($sp) +/* 11FBB0 802B65A0 E7AE00A8 */ swc1 $f14, 0xa8($sp) +/* 11FBB4 802B65A4 E7AE00A0 */ swc1 $f14, 0xa0($sp) +/* 11FBB8 802B65A8 E7A200A4 */ swc1 $f2, 0xa4($sp) +/* 11FBBC 802B65AC E7AE0098 */ swc1 $f14, 0x98($sp) +/* 11FBC0 802B65B0 45000018 */ bc1f .L802B6614 +/* 11FBC4 802B65B4 E7AE0090 */ swc1 $f14, 0x90($sp) +/* 11FBC8 802B65B8 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 11FBCC 802B65BC 44810000 */ mtc1 $at, $f0 +/* 11FBD0 802B65C0 44801000 */ mtc1 $zero, $f2 +/* 11FBD4 802B65C4 00002025 */ move $a0, $zero +/* 11FBD8 802B65C8 27A70068 */ addiu $a3, $sp, 0x68 +/* 11FBDC 802B65CC 24090003 */ li $t1, 3 +/* 11FBE0 802B65D0 2406000C */ li $a2, 12 +.L802B65D4: +/* 11FBE4 802B65D4 00042880 */ sll $a1, $a0, 2 +/* 11FBE8 802B65D8 00001025 */ move $v0, $zero +/* 11FBEC 802B65DC 00E01825 */ move $v1, $a3 +.L802B65E0: +/* 11FBF0 802B65E0 54A20004 */ bnel $a1, $v0, .L802B65F4 +/* 11FBF4 802B65E4 E4620000 */ swc1 $f2, ($v1) +/* 11FBF8 802B65E8 10000002 */ b .L802B65F4 +/* 11FBFC 802B65EC E4600000 */ swc1 $f0, ($v1) +/* 11FC00 802B65F0 E4620000 */ swc1 $f2, ($v1) +.L802B65F4: +/* 11FC04 802B65F4 24420004 */ addiu $v0, $v0, 4 +/* 11FC08 802B65F8 1446FFF9 */ bne $v0, $a2, .L802B65E0 +/* 11FC0C 802B65FC 24630004 */ addiu $v1, $v1, 4 +/* 11FC10 802B6600 24840001 */ addiu $a0, $a0, 1 +/* 11FC14 802B6604 1489FFF3 */ bne $a0, $t1, .L802B65D4 +/* 11FC18 802B6608 24E7000C */ addiu $a3, $a3, 0xc +/* 11FC1C 802B660C 10000041 */ b .L802B6714 +/* 11FC20 802B6610 C7AA008C */ lwc1 $f10, 0x8c($sp) +.L802B6614: +/* 11FC24 802B6614 3C01BF80 */ li $at, 0xBF800000 # -1.000000 +/* 11FC28 802B6618 44816000 */ mtc1 $at, $f12 +/* 11FC2C 802B661C C7A800B8 */ lwc1 $f8, 0xb8($sp) +/* 11FC30 802B6620 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 11FC34 802B6624 00002025 */ move $a0, $zero +/* 11FC38 802B6628 460C4032 */ c.eq.s $f8, $f12 +/* 11FC3C 802B662C 27A70068 */ addiu $a3, $sp, 0x68 +/* 11FC40 802B6630 24090003 */ li $t1, 3 +/* 11FC44 802B6634 45000014 */ bc1f .L802B6688 +/* 11FC48 802B6638 00000000 */ nop +/* 11FC4C 802B663C 44801000 */ mtc1 $zero, $f2 +/* 11FC50 802B6640 44810000 */ mtc1 $at, $f0 +/* 11FC54 802B6644 2406000C */ li $a2, 12 +.L802B6648: +/* 11FC58 802B6648 00001025 */ move $v0, $zero +/* 11FC5C 802B664C 00E01825 */ move $v1, $a3 +/* 11FC60 802B6650 00042880 */ sll $a1, $a0, 2 +.L802B6654: +/* 11FC64 802B6654 54A20004 */ bnel $a1, $v0, .L802B6668 +/* 11FC68 802B6658 E4620000 */ swc1 $f2, ($v1) +/* 11FC6C 802B665C 10000002 */ b .L802B6668 +/* 11FC70 802B6660 E4600000 */ swc1 $f0, ($v1) +/* 11FC74 802B6664 E4620000 */ swc1 $f2, ($v1) +.L802B6668: +/* 11FC78 802B6668 24420004 */ addiu $v0, $v0, 4 +/* 11FC7C 802B666C 1446FFF9 */ bne $v0, $a2, .L802B6654 +/* 11FC80 802B6670 24630004 */ addiu $v1, $v1, 4 +/* 11FC84 802B6674 24840001 */ addiu $a0, $a0, 1 +/* 11FC88 802B6678 1489FFF3 */ bne $a0, $t1, .L802B6648 +/* 11FC8C 802B667C 24E7000C */ addiu $a3, $a3, 0xc +/* 11FC90 802B6680 10000023 */ b .L802B6710 +/* 11FC94 802B6684 E7AC0078 */ swc1 $f12, 0x78($sp) +.L802B6688: +/* 11FC98 802B6688 0C0ADF3A */ jal func_802B7CE8 +/* 11FC9C 802B668C C7AC00B8 */ lwc1 $f12, 0xb8($sp) +/* 11FCA0 802B6690 3C014334 */ li $at, 0x43340000 # 180.000000 +/* 11FCA4 802B6694 44815000 */ mtc1 $at, $f10 +/* 11FCA8 802B6698 3C01802C */ lui $at, %hi(D_802B9FB8) +/* 11FCAC 802B669C D4269FB8 */ ldc1 $f6, %lo(D_802B9FB8)($at) +/* 11FCB0 802B66A0 460A0482 */ mul.s $f18, $f0, $f10 +/* 11FCB4 802B66A4 C7AC00B4 */ lwc1 $f12, 0xb4($sp) +/* 11FCB8 802B66A8 3C01802C */ lui $at, %hi(D_802B9FC0) +/* 11FCBC 802B66AC D42A9FC0 */ ldc1 $f10, %lo(D_802B9FC0)($at) +/* 11FCC0 802B66B0 C7B000BC */ lwc1 $f16, 0xbc($sp) +/* 11FCC4 802B66B4 44807000 */ mtc1 $zero, $f14 +/* 11FCC8 802B66B8 27A40068 */ addiu $a0, $sp, 0x68 +/* 11FCCC 802B66BC 46009121 */ cvt.d.s $f4, $f18 +/* 11FCD0 802B66C0 44077000 */ mfc1 $a3, $f14 +/* 11FCD4 802B66C4 46262203 */ div.d $f8, $f4, $f6 +/* 11FCD8 802B66C8 460C6182 */ mul.s $f6, $f12, $f12 +/* 11FCDC 802B66CC 46285481 */ sub.d $f18, $f10, $f8 +/* 11FCE0 802B66D0 46108282 */ mul.s $f10, $f16, $f16 +/* 11FCE4 802B66D4 46209107 */ neg.d $f4, $f18 +/* 11FCE8 802B66D8 46008487 */ neg.s $f18, $f16 +/* 11FCEC 802B66DC 462020A0 */ cvt.s.d $f2, $f4 +/* 11FCF0 802B66E0 460A3000 */ add.s $f0, $f6, $f10 +/* 11FCF4 802B66E4 4600120D */ trunc.w.s $f8, $f2 +/* 11FCF8 802B66E8 46000004 */ sqrt.s $f0, $f0 +/* 11FCFC 802B66EC 44054000 */ mfc1 $a1, $f8 +/* 11FD00 802B66F0 00000000 */ nop +/* 11FD04 802B66F4 00057C00 */ sll $t7, $a1, 0x10 +/* 11FD08 802B66F8 000F2C03 */ sra $a1, $t7, 0x10 +/* 11FD0C 802B66FC 46009103 */ div.s $f4, $f18, $f0 +/* 11FD10 802B6700 46006183 */ div.s $f6, $f12, $f0 +/* 11FD14 802B6704 44062000 */ mfc1 $a2, $f4 +/* 11FD18 802B6708 0C0ADAA1 */ jal func_802B6A84 +/* 11FD1C 802B670C E7A60010 */ swc1 $f6, 0x10($sp) +.L802B6710: +/* 11FD20 802B6710 C7AA008C */ lwc1 $f10, 0x8c($sp) +.L802B6714: +/* 11FD24 802B6714 C7A80068 */ lwc1 $f8, 0x68($sp) +/* 11FD28 802B6718 C7A40090 */ lwc1 $f4, 0x90($sp) +/* 11FD2C 802B671C C7A60074 */ lwc1 $f6, 0x74($sp) +/* 11FD30 802B6720 46085482 */ mul.s $f18, $f10, $f8 +/* 11FD34 802B6724 00000000 */ nop +/* 11FD38 802B6728 46062282 */ mul.s $f10, $f4, $f6 +/* 11FD3C 802B672C C7A60094 */ lwc1 $f6, 0x94($sp) +/* 11FD40 802B6730 C7A40080 */ lwc1 $f4, 0x80($sp) +/* 11FD44 802B6734 460A9200 */ add.s $f8, $f18, $f10 +/* 11FD48 802B6738 46062482 */ mul.s $f18, $f4, $f6 +/* 11FD4C 802B673C 46089280 */ add.s $f10, $f18, $f8 +/* 11FD50 802B6740 E60A0000 */ swc1 $f10, ($s0) +/* 11FD54 802B6744 C7A40098 */ lwc1 $f4, 0x98($sp) +/* 11FD58 802B6748 C7A60068 */ lwc1 $f6, 0x68($sp) +/* 11FD5C 802B674C C7A8009C */ lwc1 $f8, 0x9c($sp) +/* 11FD60 802B6750 C7AA0074 */ lwc1 $f10, 0x74($sp) +/* 11FD64 802B6754 46062482 */ mul.s $f18, $f4, $f6 +/* 11FD68 802B6758 00000000 */ nop +/* 11FD6C 802B675C 460A4102 */ mul.s $f4, $f8, $f10 +/* 11FD70 802B6760 C7AA00A0 */ lwc1 $f10, 0xa0($sp) +/* 11FD74 802B6764 C7A80080 */ lwc1 $f8, 0x80($sp) +/* 11FD78 802B6768 46049180 */ add.s $f6, $f18, $f4 +/* 11FD7C 802B676C 460A4482 */ mul.s $f18, $f8, $f10 +/* 11FD80 802B6770 46069100 */ add.s $f4, $f18, $f6 +/* 11FD84 802B6774 E604000C */ swc1 $f4, 0xc($s0) +/* 11FD88 802B6778 C7A800A4 */ lwc1 $f8, 0xa4($sp) +/* 11FD8C 802B677C C7AA0068 */ lwc1 $f10, 0x68($sp) +/* 11FD90 802B6780 C7A600A8 */ lwc1 $f6, 0xa8($sp) +/* 11FD94 802B6784 C7A40074 */ lwc1 $f4, 0x74($sp) +/* 11FD98 802B6788 460A4482 */ mul.s $f18, $f8, $f10 +/* 11FD9C 802B678C 00000000 */ nop +/* 11FDA0 802B6790 46043202 */ mul.s $f8, $f6, $f4 +/* 11FDA4 802B6794 C7A400AC */ lwc1 $f4, 0xac($sp) +/* 11FDA8 802B6798 C7A60080 */ lwc1 $f6, 0x80($sp) +/* 11FDAC 802B679C 46089280 */ add.s $f10, $f18, $f8 +/* 11FDB0 802B67A0 46043482 */ mul.s $f18, $f6, $f4 +/* 11FDB4 802B67A4 460A9200 */ add.s $f8, $f18, $f10 +/* 11FDB8 802B67A8 E6080018 */ swc1 $f8, 0x18($s0) +/* 11FDBC 802B67AC C7A6008C */ lwc1 $f6, 0x8c($sp) +/* 11FDC0 802B67B0 C7A4006C */ lwc1 $f4, 0x6c($sp) +/* 11FDC4 802B67B4 C7AA0090 */ lwc1 $f10, 0x90($sp) +/* 11FDC8 802B67B8 C7A80078 */ lwc1 $f8, 0x78($sp) +/* 11FDCC 802B67BC 46043482 */ mul.s $f18, $f6, $f4 +/* 11FDD0 802B67C0 00000000 */ nop +/* 11FDD4 802B67C4 46085182 */ mul.s $f6, $f10, $f8 +/* 11FDD8 802B67C8 C7A80094 */ lwc1 $f8, 0x94($sp) +/* 11FDDC 802B67CC C7AA0084 */ lwc1 $f10, 0x84($sp) +/* 11FDE0 802B67D0 46069100 */ add.s $f4, $f18, $f6 +/* 11FDE4 802B67D4 46085482 */ mul.s $f18, $f10, $f8 +/* 11FDE8 802B67D8 46049180 */ add.s $f6, $f18, $f4 +/* 11FDEC 802B67DC E6060004 */ swc1 $f6, 4($s0) +/* 11FDF0 802B67E0 C7AA0098 */ lwc1 $f10, 0x98($sp) +/* 11FDF4 802B67E4 C7A8006C */ lwc1 $f8, 0x6c($sp) +/* 11FDF8 802B67E8 C7A4009C */ lwc1 $f4, 0x9c($sp) +/* 11FDFC 802B67EC C7A60078 */ lwc1 $f6, 0x78($sp) +/* 11FE00 802B67F0 46085482 */ mul.s $f18, $f10, $f8 +/* 11FE04 802B67F4 00000000 */ nop +/* 11FE08 802B67F8 46062282 */ mul.s $f10, $f4, $f6 +/* 11FE0C 802B67FC C7A600A0 */ lwc1 $f6, 0xa0($sp) +/* 11FE10 802B6800 C7A40084 */ lwc1 $f4, 0x84($sp) +/* 11FE14 802B6804 460A9200 */ add.s $f8, $f18, $f10 +/* 11FE18 802B6808 46062482 */ mul.s $f18, $f4, $f6 +/* 11FE1C 802B680C 46089280 */ add.s $f10, $f18, $f8 +/* 11FE20 802B6810 E60A0010 */ swc1 $f10, 0x10($s0) +/* 11FE24 802B6814 C7A400A4 */ lwc1 $f4, 0xa4($sp) +/* 11FE28 802B6818 C7A6006C */ lwc1 $f6, 0x6c($sp) +/* 11FE2C 802B681C C7A800A8 */ lwc1 $f8, 0xa8($sp) +/* 11FE30 802B6820 C7AA0078 */ lwc1 $f10, 0x78($sp) +/* 11FE34 802B6824 46062482 */ mul.s $f18, $f4, $f6 +/* 11FE38 802B6828 00000000 */ nop +/* 11FE3C 802B682C 460A4102 */ mul.s $f4, $f8, $f10 +/* 11FE40 802B6830 C7AA00AC */ lwc1 $f10, 0xac($sp) +/* 11FE44 802B6834 C7A80084 */ lwc1 $f8, 0x84($sp) +/* 11FE48 802B6838 46049180 */ add.s $f6, $f18, $f4 +/* 11FE4C 802B683C 460A4482 */ mul.s $f18, $f8, $f10 +/* 11FE50 802B6840 46069100 */ add.s $f4, $f18, $f6 +/* 11FE54 802B6844 E604001C */ swc1 $f4, 0x1c($s0) +/* 11FE58 802B6848 C7AA0070 */ lwc1 $f10, 0x70($sp) +/* 11FE5C 802B684C C7A8008C */ lwc1 $f8, 0x8c($sp) +/* 11FE60 802B6850 C7A4007C */ lwc1 $f4, 0x7c($sp) +/* 11FE64 802B6854 C7A60090 */ lwc1 $f6, 0x90($sp) +/* 11FE68 802B6858 460A4482 */ mul.s $f18, $f8, $f10 +/* 11FE6C 802B685C 00000000 */ nop +/* 11FE70 802B6860 46043202 */ mul.s $f8, $f6, $f4 +/* 11FE74 802B6864 C7A40094 */ lwc1 $f4, 0x94($sp) +/* 11FE78 802B6868 C7A60088 */ lwc1 $f6, 0x88($sp) +/* 11FE7C 802B686C 46089280 */ add.s $f10, $f18, $f8 +/* 11FE80 802B6870 46043482 */ mul.s $f18, $f6, $f4 +/* 11FE84 802B6874 460A9200 */ add.s $f8, $f18, $f10 +/* 11FE88 802B6878 E6080008 */ swc1 $f8, 8($s0) +/* 11FE8C 802B687C C7A40070 */ lwc1 $f4, 0x70($sp) +/* 11FE90 802B6880 C7A60098 */ lwc1 $f6, 0x98($sp) +/* 11FE94 802B6884 C7A8007C */ lwc1 $f8, 0x7c($sp) +/* 11FE98 802B6888 C7AA009C */ lwc1 $f10, 0x9c($sp) +/* 11FE9C 802B688C 46043482 */ mul.s $f18, $f6, $f4 +/* 11FEA0 802B6890 00000000 */ nop +/* 11FEA4 802B6894 46085182 */ mul.s $f6, $f10, $f8 +/* 11FEA8 802B6898 C7A800A0 */ lwc1 $f8, 0xa0($sp) +/* 11FEAC 802B689C C7AA0088 */ lwc1 $f10, 0x88($sp) +/* 11FEB0 802B68A0 46069100 */ add.s $f4, $f18, $f6 +/* 11FEB4 802B68A4 46085482 */ mul.s $f18, $f10, $f8 +/* 11FEB8 802B68A8 46049180 */ add.s $f6, $f18, $f4 +/* 11FEBC 802B68AC E6060014 */ swc1 $f6, 0x14($s0) +/* 11FEC0 802B68B0 C7A80070 */ lwc1 $f8, 0x70($sp) +/* 11FEC4 802B68B4 C7AA00A4 */ lwc1 $f10, 0xa4($sp) +/* 11FEC8 802B68B8 C7A6007C */ lwc1 $f6, 0x7c($sp) +/* 11FECC 802B68BC C7A400A8 */ lwc1 $f4, 0xa8($sp) +/* 11FED0 802B68C0 46085482 */ mul.s $f18, $f10, $f8 +/* 11FED4 802B68C4 00000000 */ nop +/* 11FED8 802B68C8 46062282 */ mul.s $f10, $f4, $f6 +/* 11FEDC 802B68CC C7A600AC */ lwc1 $f6, 0xac($sp) +/* 11FEE0 802B68D0 C7A40088 */ lwc1 $f4, 0x88($sp) +/* 11FEE4 802B68D4 460A9200 */ add.s $f8, $f18, $f10 +/* 11FEE8 802B68D8 46062482 */ mul.s $f18, $f4, $f6 +/* 11FEEC 802B68DC 46089280 */ add.s $f10, $f18, $f8 +/* 11FEF0 802B68E0 E60A0020 */ swc1 $f10, 0x20($s0) +/* 11FEF4 802B68E4 8FBF0024 */ lw $ra, 0x24($sp) +/* 11FEF8 802B68E8 8FB00020 */ lw $s0, 0x20($sp) +/* 11FEFC 802B68EC 27BD00B0 */ addiu $sp, $sp, 0xb0 +/* 11FF00 802B68F0 03E00008 */ jr $ra +/* 11FF04 802B68F4 00000000 */ nop + +/* 11FF08 802B68F8 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 11FF0C 802B68FC 44866000 */ mtc1 $a2, $f12 +/* 11FF10 802B6900 44812000 */ mtc1 $at, $f4 +/* 11FF14 802B6904 27BDFFE0 */ addiu $sp, $sp, -0x20 +/* 11FF18 802B6908 44857000 */ mtc1 $a1, $f14 +/* 11FF1C 802B690C 46046032 */ c.eq.s $f12, $f4 +/* 11FF20 802B6910 AFBF001C */ sw $ra, 0x1c($sp) +/* 11FF24 802B6914 AFA40020 */ sw $a0, 0x20($sp) +/* 11FF28 802B6918 AFA7002C */ sw $a3, 0x2c($sp) +/* 11FF2C 802B691C 45000018 */ bc1f .L802B6980 +/* 11FF30 802B6920 3C01BF80 */ li $at, 0xBF800000 # -1.000000 +/* 11FF34 802B6924 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 11FF38 802B6928 44810000 */ mtc1 $at, $f0 +/* 11FF3C 802B692C 44801000 */ mtc1 $zero, $f2 +/* 11FF40 802B6930 00002025 */ move $a0, $zero +/* 11FF44 802B6934 8FA70020 */ lw $a3, 0x20($sp) +/* 11FF48 802B6938 24090003 */ li $t1, 3 +/* 11FF4C 802B693C 2406000C */ li $a2, 12 +.L802B6940: +/* 11FF50 802B6940 00042880 */ sll $a1, $a0, 2 +/* 11FF54 802B6944 00001025 */ move $v0, $zero +/* 11FF58 802B6948 00E01825 */ move $v1, $a3 +.L802B694C: +/* 11FF5C 802B694C 54A20004 */ bnel $a1, $v0, .L802B6960 +/* 11FF60 802B6950 E4620000 */ swc1 $f2, ($v1) +/* 11FF64 802B6954 10000002 */ b .L802B6960 +/* 11FF68 802B6958 E4600000 */ swc1 $f0, ($v1) +/* 11FF6C 802B695C E4620000 */ swc1 $f2, ($v1) +.L802B6960: +/* 11FF70 802B6960 24420004 */ addiu $v0, $v0, 4 +/* 11FF74 802B6964 1446FFF9 */ bne $v0, $a2, .L802B694C +/* 11FF78 802B6968 24630004 */ addiu $v1, $v1, 4 +/* 11FF7C 802B696C 24840001 */ addiu $a0, $a0, 1 +/* 11FF80 802B6970 1489FFF3 */ bne $a0, $t1, .L802B6940 +/* 11FF84 802B6974 24E7000C */ addiu $a3, $a3, 0xc +/* 11FF88 802B6978 1000003F */ b .L802B6A78 +/* 11FF8C 802B697C 8FBF001C */ lw $ra, 0x1c($sp) +.L802B6980: +/* 11FF90 802B6980 44818000 */ mtc1 $at, $f16 +/* 11FF94 802B6984 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 11FF98 802B6988 00002025 */ move $a0, $zero +/* 11FF9C 802B698C 46106032 */ c.eq.s $f12, $f16 +/* 11FFA0 802B6990 8FA70020 */ lw $a3, 0x20($sp) +/* 11FFA4 802B6994 24090003 */ li $t1, 3 +/* 11FFA8 802B6998 45000015 */ bc1f .L802B69F0 +/* 11FFAC 802B699C 00000000 */ nop +/* 11FFB0 802B69A0 44801000 */ mtc1 $zero, $f2 +/* 11FFB4 802B69A4 44810000 */ mtc1 $at, $f0 +/* 11FFB8 802B69A8 2406000C */ li $a2, 12 +.L802B69AC: +/* 11FFBC 802B69AC 00001025 */ move $v0, $zero +/* 11FFC0 802B69B0 00E01825 */ move $v1, $a3 +/* 11FFC4 802B69B4 00042880 */ sll $a1, $a0, 2 +.L802B69B8: +/* 11FFC8 802B69B8 54A20004 */ bnel $a1, $v0, .L802B69CC +/* 11FFCC 802B69BC E4620000 */ swc1 $f2, ($v1) +/* 11FFD0 802B69C0 10000002 */ b .L802B69CC +/* 11FFD4 802B69C4 E4600000 */ swc1 $f0, ($v1) +/* 11FFD8 802B69C8 E4620000 */ swc1 $f2, ($v1) +.L802B69CC: +/* 11FFDC 802B69CC 24420004 */ addiu $v0, $v0, 4 +/* 11FFE0 802B69D0 1446FFF9 */ bne $v0, $a2, .L802B69B8 +/* 11FFE4 802B69D4 24630004 */ addiu $v1, $v1, 4 +/* 11FFE8 802B69D8 24840001 */ addiu $a0, $a0, 1 +/* 11FFEC 802B69DC 1489FFF3 */ bne $a0, $t1, .L802B69AC +/* 11FFF0 802B69E0 24E7000C */ addiu $a3, $a3, 0xc +/* 11FFF4 802B69E4 8FAE0020 */ lw $t6, 0x20($sp) +/* 11FFF8 802B69E8 10000022 */ b .L802B6A74 +/* 11FFFC 802B69EC E5D00010 */ swc1 $f16, 0x10($t6) +.L802B69F0: +/* 120000 802B69F0 0C0ADF3A */ jal func_802B7CE8 +/* 120004 802B69F4 E7AE0024 */ swc1 $f14, 0x24($sp) +/* 120008 802B69F8 3C014334 */ li $at, 0x43340000 # 180.000000 +/* 12000C 802B69FC 44813000 */ mtc1 $at, $f6 +/* 120010 802B6A00 3C01802C */ lui $at, %hi(D_802B9FC8) +/* 120014 802B6A04 D4329FC8 */ ldc1 $f18, %lo(D_802B9FC8)($at) +/* 120018 802B6A08 46060202 */ mul.s $f8, $f0, $f6 +/* 12001C 802B6A0C C7AE0024 */ lwc1 $f14, 0x24($sp) +/* 120020 802B6A10 3C01802C */ lui $at, %hi(D_802B9FD0) +/* 120024 802B6A14 D4269FD0 */ ldc1 $f6, %lo(D_802B9FD0)($at) +/* 120028 802B6A18 C7AC002C */ lwc1 $f12, 0x2c($sp) +/* 12002C 802B6A1C 8FA40020 */ lw $a0, 0x20($sp) +/* 120030 802B6A20 24070000 */ li $a3, 0 +/* 120034 802B6A24 460042A1 */ cvt.d.s $f10, $f8 +/* 120038 802B6A28 46325103 */ div.d $f4, $f10, $f18 +/* 12003C 802B6A2C 460E7482 */ mul.s $f18, $f14, $f14 +/* 120040 802B6A30 46243201 */ sub.d $f8, $f6, $f4 +/* 120044 802B6A34 460C6182 */ mul.s $f6, $f12, $f12 +/* 120048 802B6A38 46204287 */ neg.d $f10, $f8 +/* 12004C 802B6A3C 46006207 */ neg.s $f8, $f12 +/* 120050 802B6A40 462050A0 */ cvt.s.d $f2, $f10 +/* 120054 802B6A44 46069000 */ add.s $f0, $f18, $f6 +/* 120058 802B6A48 4600110D */ trunc.w.s $f4, $f2 +/* 12005C 802B6A4C 46000004 */ sqrt.s $f0, $f0 +/* 120060 802B6A50 44052000 */ mfc1 $a1, $f4 +/* 120064 802B6A54 00000000 */ nop +/* 120068 802B6A58 0005C400 */ sll $t8, $a1, 0x10 +/* 12006C 802B6A5C 00182C03 */ sra $a1, $t8, 0x10 +/* 120070 802B6A60 46004283 */ div.s $f10, $f8, $f0 +/* 120074 802B6A64 46007483 */ div.s $f18, $f14, $f0 +/* 120078 802B6A68 44065000 */ mfc1 $a2, $f10 +/* 12007C 802B6A6C 0C0ADAA1 */ jal func_802B6A84 +/* 120080 802B6A70 E7B20010 */ swc1 $f18, 0x10($sp) +.L802B6A74: +/* 120084 802B6A74 8FBF001C */ lw $ra, 0x1c($sp) +.L802B6A78: +/* 120088 802B6A78 27BD0020 */ addiu $sp, $sp, 0x20 +/* 12008C 802B6A7C 03E00008 */ jr $ra +/* 120090 802B6A80 00000000 */ nop + +glabel func_802B6A84 +/* 120094 802B6A84 27BDFFA8 */ addiu $sp, $sp, -0x58 +/* 120098 802B6A88 F7B40010 */ sdc1 $f20, 0x10($sp) +/* 12009C 802B6A8C 4486A000 */ mtc1 $a2, $f20 +/* 1200A0 802B6A90 00803025 */ move $a2, $a0 +/* 1200A4 802B6A94 F7B60018 */ sdc1 $f22, 0x18($sp) +/* 1200A8 802B6A98 AFA40058 */ sw $a0, 0x58($sp) +/* 1200AC 802B6A9C 4487B000 */ mtc1 $a3, $f22 +/* 1200B0 802B6AA0 AFBF0024 */ sw $ra, 0x24($sp) +/* 1200B4 802B6AA4 30A4FFFF */ andi $a0, $a1, 0xffff +/* 1200B8 802B6AA8 AFA5005C */ sw $a1, 0x5c($sp) +/* 1200BC 802B6AAC AFA40034 */ sw $a0, 0x34($sp) +/* 1200C0 802B6AB0 0C0AE006 */ jal func_802B8018 +/* 1200C4 802B6AB4 AFA60058 */ sw $a2, 0x58($sp) +/* 1200C8 802B6AB8 8FA40034 */ lw $a0, 0x34($sp) +/* 1200CC 802B6ABC 0C0AE00E */ jal func_802B8038 +/* 1200D0 802B6AC0 E7A00054 */ swc1 $f0, 0x54($sp) +/* 1200D4 802B6AC4 4614A302 */ mul.s $f12, $f20, $f20 +/* 1200D8 802B6AC8 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 1200DC 802B6ACC 44812000 */ mtc1 $at, $f4 +/* 1200E0 802B6AD0 8FA60058 */ lw $a2, 0x58($sp) +/* 1200E4 802B6AD4 C7B20054 */ lwc1 $f18, 0x54($sp) +/* 1200E8 802B6AD8 460C2181 */ sub.s $f6, $f4, $f12 +/* 1200EC 802B6ADC 44812000 */ mtc1 $at, $f4 +/* 1200F0 802B6AE0 46003202 */ mul.s $f8, $f6, $f0 +/* 1200F4 802B6AE4 46002181 */ sub.s $f6, $f4, $f0 +/* 1200F8 802B6AE8 460C4280 */ add.s $f10, $f8, $f12 +/* 1200FC 802B6AEC E4CA0000 */ swc1 $f10, ($a2) +/* 120100 802B6AF0 C7A80068 */ lwc1 $f8, 0x68($sp) +/* 120104 802B6AF4 E7A60034 */ swc1 $f6, 0x34($sp) +/* 120108 802B6AF8 4608B282 */ mul.s $f10, $f22, $f8 +/* 12010C 802B6AFC 00000000 */ nop +/* 120110 802B6B00 46065082 */ mul.s $f2, $f10, $f6 +/* 120114 802B6B04 44815000 */ mtc1 $at, $f10 +/* 120118 802B6B08 4612A382 */ mul.s $f14, $f20, $f18 +/* 12011C 802B6B0C 00000000 */ nop +/* 120120 802B6B10 4616B402 */ mul.s $f16, $f22, $f22 +/* 120124 802B6B14 460E1101 */ sub.s $f4, $f2, $f14 +/* 120128 802B6B18 46105181 */ sub.s $f6, $f10, $f16 +/* 12012C 802B6B1C E4C4001C */ swc1 $f4, 0x1c($a2) +/* 120130 802B6B20 46027200 */ add.s $f8, $f14, $f2 +/* 120134 802B6B24 46003102 */ mul.s $f4, $f6, $f0 +/* 120138 802B6B28 E4C80014 */ swc1 $f8, 0x14($a2) +/* 12013C 802B6B2C 4612B282 */ mul.s $f10, $f22, $f18 +/* 120140 802B6B30 46102200 */ add.s $f8, $f4, $f16 +/* 120144 802B6B34 E4C80010 */ swc1 $f8, 0x10($a2) +/* 120148 802B6B38 C7A60068 */ lwc1 $f6, 0x68($sp) +/* 12014C 802B6B3C C7A80034 */ lwc1 $f8, 0x34($sp) +/* 120150 802B6B40 E7AA002C */ swc1 $f10, 0x2c($sp) +/* 120154 802B6B44 46143102 */ mul.s $f4, $f6, $f20 +/* 120158 802B6B48 C7A6002C */ lwc1 $f6, 0x2c($sp) +/* 12015C 802B6B4C 46082282 */ mul.s $f10, $f4, $f8 +/* 120160 802B6B50 460A3100 */ add.s $f4, $f6, $f10 +/* 120164 802B6B54 E7AA0030 */ swc1 $f10, 0x30($sp) +/* 120168 802B6B58 E4C40018 */ swc1 $f4, 0x18($a2) +/* 12016C 802B6B5C C7B00068 */ lwc1 $f16, 0x68($sp) +/* 120170 802B6B60 C7A6002C */ lwc1 $f6, 0x2c($sp) +/* 120174 802B6B64 C7A80030 */ lwc1 $f8, 0x30($sp) +/* 120178 802B6B68 46108302 */ mul.s $f12, $f16, $f16 +/* 12017C 802B6B6C 44812000 */ mtc1 $at, $f4 +/* 120180 802B6B70 46064281 */ sub.s $f10, $f8, $f6 +/* 120184 802B6B74 E4CA0008 */ swc1 $f10, 8($a2) +/* 120188 802B6B78 460C2201 */ sub.s $f8, $f4, $f12 +/* 12018C 802B6B7C 46004182 */ mul.s $f6, $f8, $f0 +/* 120190 802B6B80 460C3280 */ add.s $f10, $f6, $f12 +/* 120194 802B6B84 4616A102 */ mul.s $f4, $f20, $f22 +/* 120198 802B6B88 E4CA0020 */ swc1 $f10, 0x20($a2) +/* 12019C 802B6B8C C7A80034 */ lwc1 $f8, 0x34($sp) +/* 1201A0 802B6B90 46082082 */ mul.s $f2, $f4, $f8 +/* 1201A4 802B6B94 00000000 */ nop +/* 1201A8 802B6B98 46128382 */ mul.s $f14, $f16, $f18 +/* 1201AC 802B6B9C 460E1181 */ sub.s $f6, $f2, $f14 +/* 1201B0 802B6BA0 46027280 */ add.s $f10, $f14, $f2 +/* 1201B4 802B6BA4 E4C6000C */ swc1 $f6, 0xc($a2) +/* 1201B8 802B6BA8 E4CA0004 */ swc1 $f10, 4($a2) +/* 1201BC 802B6BAC 8FBF0024 */ lw $ra, 0x24($sp) +/* 1201C0 802B6BB0 D7B60018 */ ldc1 $f22, 0x18($sp) +/* 1201C4 802B6BB4 D7B40010 */ ldc1 $f20, 0x10($sp) +/* 1201C8 802B6BB8 03E00008 */ jr $ra +/* 1201CC 802B6BBC 27BD0058 */ addiu $sp, $sp, 0x58 + +/* 1201D0 802B6BC0 27BDFFC0 */ addiu $sp, $sp, -0x40 +/* 1201D4 802B6BC4 44867000 */ mtc1 $a2, $f14 +/* 1201D8 802B6BC8 00803025 */ move $a2, $a0 +/* 1201DC 802B6BCC AFA40040 */ sw $a0, 0x40($sp) +/* 1201E0 802B6BD0 AFBF001C */ sw $ra, 0x1c($sp) +/* 1201E4 802B6BD4 30A4FFFF */ andi $a0, $a1, 0xffff +/* 1201E8 802B6BD8 F7B40010 */ sdc1 $f20, 0x10($sp) +/* 1201EC 802B6BDC AFA50044 */ sw $a1, 0x44($sp) +/* 1201F0 802B6BE0 AFA7004C */ sw $a3, 0x4c($sp) +/* 1201F4 802B6BE4 AFA4002C */ sw $a0, 0x2c($sp) +/* 1201F8 802B6BE8 AFA60040 */ sw $a2, 0x40($sp) +/* 1201FC 802B6BEC 0C0AE006 */ jal func_802B8018 +/* 120200 802B6BF0 E7AE0048 */ swc1 $f14, 0x48($sp) +/* 120204 802B6BF4 8FA4002C */ lw $a0, 0x2c($sp) +/* 120208 802B6BF8 0C0AE00E */ jal func_802B8038 +/* 12020C 802B6BFC E7A0003C */ swc1 $f0, 0x3c($sp) +/* 120210 802B6C00 C7AE0048 */ lwc1 $f14, 0x48($sp) +/* 120214 802B6C04 C7B40050 */ lwc1 $f20, 0x50($sp) +/* 120218 802B6C08 46000486 */ mov.s $f18, $f0 +/* 12021C 802B6C0C 460E7102 */ mul.s $f4, $f14, $f14 +/* 120220 802B6C10 44801000 */ mtc1 $zero, $f2 +/* 120224 802B6C14 8FA60040 */ lw $a2, 0x40($sp) +/* 120228 802B6C18 4614A182 */ mul.s $f6, $f20, $f20 +/* 12022C 802B6C1C C7B0003C */ lwc1 $f16, 0x3c($sp) +/* 120230 802B6C20 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 120234 802B6C24 46062000 */ add.s $f0, $f4, $f6 +/* 120238 802B6C28 46000004 */ sqrt.s $f0, $f0 +/* 12023C 802B6C2C 46020032 */ c.eq.s $f0, $f2 +/* 120240 802B6C30 00000000 */ nop +/* 120244 802B6C34 45030039 */ bc1tl .L802B6D1C +/* 120248 802B6C38 44810000 */ mtc1 $at, $f0 +/* 12024C 802B6C3C 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 120250 802B6C40 44814000 */ mtc1 $at, $f8 +/* 120254 802B6C44 C7A4004C */ lwc1 $f4, 0x4c($sp) +/* 120258 802B6C48 4600A287 */ neg.s $f10, $f20 +/* 12025C 802B6C4C 46004303 */ div.s $f12, $f8, $f0 +/* 120260 802B6C50 E7AA002C */ swc1 $f10, 0x2c($sp) +/* 120264 802B6C54 C7A8002C */ lwc1 $f8, 0x2c($sp) +/* 120268 802B6C58 46048182 */ mul.s $f6, $f16, $f4 +/* 12026C 802B6C5C E7A60028 */ swc1 $f6, 0x28($sp) +/* 120270 802B6C60 C7A40028 */ lwc1 $f4, 0x28($sp) +/* 120274 802B6C64 46124282 */ mul.s $f10, $f8, $f18 +/* 120278 802B6C68 E7AC0030 */ swc1 $f12, 0x30($sp) +/* 12027C 802B6C6C 460E2182 */ mul.s $f6, $f4, $f14 +/* 120280 802B6C70 46065201 */ sub.s $f8, $f10, $f6 +/* 120284 802B6C74 460C4102 */ mul.s $f4, $f8, $f12 +/* 120288 802B6C78 E4C40000 */ swc1 $f4, ($a2) +/* 12028C 802B6C7C C7AA004C */ lwc1 $f10, 0x4c($sp) +/* 120290 802B6C80 460A9182 */ mul.s $f6, $f18, $f10 +/* 120294 802B6C84 E7A60024 */ swc1 $f6, 0x24($sp) +/* 120298 802B6C88 4610A202 */ mul.s $f8, $f20, $f16 +/* 12029C 802B6C8C C7A40024 */ lwc1 $f4, 0x24($sp) +/* 1202A0 802B6C90 460E2282 */ mul.s $f10, $f4, $f14 +/* 1202A4 802B6C94 460A4181 */ sub.s $f6, $f8, $f10 +/* 1202A8 802B6C98 46007207 */ neg.s $f8, $f14 +/* 1202AC 802B6C9C 460C3102 */ mul.s $f4, $f6, $f12 +/* 1202B0 802B6CA0 E4C80018 */ swc1 $f8, 0x18($a2) +/* 1202B4 802B6CA4 46008282 */ mul.s $f10, $f16, $f0 +/* 1202B8 802B6CA8 00000000 */ nop +/* 1202BC 802B6CAC 46009182 */ mul.s $f6, $f18, $f0 +/* 1202C0 802B6CB0 E4C4000C */ swc1 $f4, 0xc($a2) +/* 1202C4 802B6CB4 E4CA0004 */ swc1 $f10, 4($a2) +/* 1202C8 802B6CB8 460E9282 */ mul.s $f10, $f18, $f14 +/* 1202CC 802B6CBC E4C60010 */ swc1 $f6, 0x10($a2) +/* 1202D0 802B6CC0 C7A4004C */ lwc1 $f4, 0x4c($sp) +/* 1202D4 802B6CC4 C7A00030 */ lwc1 $f0, 0x30($sp) +/* 1202D8 802B6CC8 46002207 */ neg.s $f8, $f4 +/* 1202DC 802B6CCC E4C8001C */ swc1 $f8, 0x1c($a2) +/* 1202E0 802B6CD0 C7A60028 */ lwc1 $f6, 0x28($sp) +/* 1202E4 802B6CD4 46143102 */ mul.s $f4, $f6, $f20 +/* 1202E8 802B6CD8 46045201 */ sub.s $f8, $f10, $f4 +/* 1202EC 802B6CDC 46008287 */ neg.s $f10, $f16 +/* 1202F0 802B6CE0 46004182 */ mul.s $f6, $f8, $f0 +/* 1202F4 802B6CE4 E4C60008 */ swc1 $f6, 8($a2) +/* 1202F8 802B6CE8 460E5102 */ mul.s $f4, $f10, $f14 +/* 1202FC 802B6CEC C7A80024 */ lwc1 $f8, 0x24($sp) +/* 120300 802B6CF0 46144182 */ mul.s $f6, $f8, $f20 +/* 120304 802B6CF4 46062281 */ sub.s $f10, $f4, $f6 +/* 120308 802B6CF8 46005202 */ mul.s $f8, $f10, $f0 +/* 12030C 802B6CFC E4C80014 */ swc1 $f8, 0x14($a2) +/* 120310 802B6D00 C7A4002C */ lwc1 $f4, 0x2c($sp) +/* 120314 802B6D04 E4C2000C */ swc1 $f2, 0xc($a2) +/* 120318 802B6D08 E4C20018 */ swc1 $f2, 0x18($a2) +/* 12031C 802B6D0C E4C20024 */ swc1 $f2, 0x24($a2) +/* 120320 802B6D10 1000000C */ b .L802B6D44 +/* 120324 802B6D14 E4C40020 */ swc1 $f4, 0x20($a2) +/* 120328 802B6D18 44810000 */ mtc1 $at, $f0 +.L802B6D1C: +/* 12032C 802B6D1C E4C20004 */ swc1 $f2, 4($a2) +/* 120330 802B6D20 E4C2001C */ swc1 $f2, 0x1c($a2) +/* 120334 802B6D24 E4C20008 */ swc1 $f2, 8($a2) +/* 120338 802B6D28 E4C20014 */ swc1 $f2, 0x14($a2) +/* 12033C 802B6D2C E4C2000C */ swc1 $f2, 0xc($a2) +/* 120340 802B6D30 E4C20018 */ swc1 $f2, 0x18($a2) +/* 120344 802B6D34 E4C20024 */ swc1 $f2, 0x24($a2) +/* 120348 802B6D38 E4C00000 */ swc1 $f0, ($a2) +/* 12034C 802B6D3C E4C00010 */ swc1 $f0, 0x10($a2) +/* 120350 802B6D40 E4C00020 */ swc1 $f0, 0x20($a2) +.L802B6D44: +/* 120354 802B6D44 8FBF001C */ lw $ra, 0x1c($sp) +/* 120358 802B6D48 D7B40010 */ ldc1 $f20, 0x10($sp) +/* 12035C 802B6D4C 27BD0040 */ addiu $sp, $sp, 0x40 +/* 120360 802B6D50 03E00008 */ jr $ra +/* 120364 802B6D54 00000000 */ nop + +/* 120368 802B6D58 27BDFFC0 */ addiu $sp, $sp, -0x40 +/* 12036C 802B6D5C AFB0001C */ sw $s0, 0x1c($sp) +/* 120370 802B6D60 00808025 */ move $s0, $a0 +/* 120374 802B6D64 AFBF0024 */ sw $ra, 0x24($sp) +/* 120378 802B6D68 AFB10020 */ sw $s1, 0x20($sp) +/* 12037C 802B6D6C F7B40010 */ sdc1 $f20, 0x10($sp) +/* 120380 802B6D70 AFA50044 */ sw $a1, 0x44($sp) +/* 120384 802B6D74 24040001 */ li $a0, 1 +/* 120388 802B6D78 444EF800 */ cfc1 $t6, $31 +/* 12038C 802B6D7C 44C4F800 */ ctc1 $a0, $31 +/* 120390 802B6D80 C4C40000 */ lwc1 $f4, ($a2) +/* 120394 802B6D84 00C08825 */ move $s1, $a2 +/* 120398 802B6D88 460021A4 */ cvt.w.s $f6, $f4 +/* 12039C 802B6D8C 4444F800 */ cfc1 $a0, $31 +/* 1203A0 802B6D90 00000000 */ nop +/* 1203A4 802B6D94 30840078 */ andi $a0, $a0, 0x78 +/* 1203A8 802B6D98 10800012 */ beqz $a0, .L802B6DE4 +/* 1203AC 802B6D9C 3C014F00 */ li $at, 0x4F000000 # 2147483648.000000 +/* 1203B0 802B6DA0 44813000 */ mtc1 $at, $f6 +/* 1203B4 802B6DA4 24040001 */ li $a0, 1 +/* 1203B8 802B6DA8 46062181 */ sub.s $f6, $f4, $f6 +/* 1203BC 802B6DAC 44C4F800 */ ctc1 $a0, $31 +/* 1203C0 802B6DB0 00000000 */ nop +/* 1203C4 802B6DB4 460031A4 */ cvt.w.s $f6, $f6 +/* 1203C8 802B6DB8 4444F800 */ cfc1 $a0, $31 +/* 1203CC 802B6DBC 00000000 */ nop +/* 1203D0 802B6DC0 30840078 */ andi $a0, $a0, 0x78 +/* 1203D4 802B6DC4 14800005 */ bnez $a0, .L802B6DDC +/* 1203D8 802B6DC8 00000000 */ nop +/* 1203DC 802B6DCC 44043000 */ mfc1 $a0, $f6 +/* 1203E0 802B6DD0 3C018000 */ lui $at, 0x8000 +/* 1203E4 802B6DD4 10000007 */ b .L802B6DF4 +/* 1203E8 802B6DD8 00812025 */ or $a0, $a0, $at +.L802B6DDC: +/* 1203EC 802B6DDC 10000005 */ b .L802B6DF4 +/* 1203F0 802B6DE0 2404FFFF */ li $a0, -1 +.L802B6DE4: +/* 1203F4 802B6DE4 44043000 */ mfc1 $a0, $f6 +/* 1203F8 802B6DE8 00000000 */ nop +/* 1203FC 802B6DEC 0480FFFB */ bltz $a0, .L802B6DDC +/* 120400 802B6DF0 00000000 */ nop +.L802B6DF4: +/* 120404 802B6DF4 44CEF800 */ ctc1 $t6, $31 +/* 120408 802B6DF8 308FFFFF */ andi $t7, $a0, 0xffff +/* 12040C 802B6DFC 0C0AE006 */ jal func_802B8018 +/* 120410 802B6E00 01E02025 */ move $a0, $t7 +/* 120414 802B6E04 E7A0003C */ swc1 $f0, 0x3c($sp) +/* 120418 802B6E08 4458F800 */ cfc1 $t8, $31 +/* 12041C 802B6E0C 24040001 */ li $a0, 1 +/* 120420 802B6E10 44C4F800 */ ctc1 $a0, $31 +/* 120424 802B6E14 C6280000 */ lwc1 $f8, ($s1) +/* 120428 802B6E18 460042A4 */ cvt.w.s $f10, $f8 +/* 12042C 802B6E1C 4444F800 */ cfc1 $a0, $31 +/* 120430 802B6E20 00000000 */ nop +/* 120434 802B6E24 30840078 */ andi $a0, $a0, 0x78 +/* 120438 802B6E28 10800012 */ beqz $a0, .L802B6E74 +/* 12043C 802B6E2C 3C014F00 */ li $at, 0x4F000000 # 2147483648.000000 +/* 120440 802B6E30 44815000 */ mtc1 $at, $f10 +/* 120444 802B6E34 24040001 */ li $a0, 1 +/* 120448 802B6E38 460A4281 */ sub.s $f10, $f8, $f10 +/* 12044C 802B6E3C 44C4F800 */ ctc1 $a0, $31 +/* 120450 802B6E40 00000000 */ nop +/* 120454 802B6E44 460052A4 */ cvt.w.s $f10, $f10 +/* 120458 802B6E48 4444F800 */ cfc1 $a0, $31 +/* 12045C 802B6E4C 00000000 */ nop +/* 120460 802B6E50 30840078 */ andi $a0, $a0, 0x78 +/* 120464 802B6E54 14800005 */ bnez $a0, .L802B6E6C +/* 120468 802B6E58 00000000 */ nop +/* 12046C 802B6E5C 44045000 */ mfc1 $a0, $f10 +/* 120470 802B6E60 3C018000 */ lui $at, 0x8000 +/* 120474 802B6E64 10000007 */ b .L802B6E84 +/* 120478 802B6E68 00812025 */ or $a0, $a0, $at +.L802B6E6C: +/* 12047C 802B6E6C 10000005 */ b .L802B6E84 +/* 120480 802B6E70 2404FFFF */ li $a0, -1 +.L802B6E74: +/* 120484 802B6E74 44045000 */ mfc1 $a0, $f10 +/* 120488 802B6E78 00000000 */ nop +/* 12048C 802B6E7C 0480FFFB */ bltz $a0, .L802B6E6C +/* 120490 802B6E80 00000000 */ nop +.L802B6E84: +/* 120494 802B6E84 44D8F800 */ ctc1 $t8, $31 +/* 120498 802B6E88 3099FFFF */ andi $t9, $a0, 0xffff +/* 12049C 802B6E8C 0C0AE00E */ jal func_802B8038 +/* 1204A0 802B6E90 03202025 */ move $a0, $t9 +/* 1204A4 802B6E94 46000506 */ mov.s $f20, $f0 +/* 1204A8 802B6E98 4448F800 */ cfc1 $t0, $31 +/* 1204AC 802B6E9C 24040001 */ li $a0, 1 +/* 1204B0 802B6EA0 44C4F800 */ ctc1 $a0, $31 +/* 1204B4 802B6EA4 C6240004 */ lwc1 $f4, 4($s1) +/* 1204B8 802B6EA8 3C014F00 */ li $at, 0x4F000000 # 2147483648.000000 +/* 1204BC 802B6EAC 460021A4 */ cvt.w.s $f6, $f4 +/* 1204C0 802B6EB0 4444F800 */ cfc1 $a0, $31 +/* 1204C4 802B6EB4 00000000 */ nop +/* 1204C8 802B6EB8 30840078 */ andi $a0, $a0, 0x78 +/* 1204CC 802B6EBC 50800013 */ beql $a0, $zero, .L802B6F0C +/* 1204D0 802B6EC0 44043000 */ mfc1 $a0, $f6 +/* 1204D4 802B6EC4 44813000 */ mtc1 $at, $f6 +/* 1204D8 802B6EC8 24040001 */ li $a0, 1 +/* 1204DC 802B6ECC 46062181 */ sub.s $f6, $f4, $f6 +/* 1204E0 802B6ED0 44C4F800 */ ctc1 $a0, $31 +/* 1204E4 802B6ED4 00000000 */ nop +/* 1204E8 802B6ED8 460031A4 */ cvt.w.s $f6, $f6 +/* 1204EC 802B6EDC 4444F800 */ cfc1 $a0, $31 +/* 1204F0 802B6EE0 00000000 */ nop +/* 1204F4 802B6EE4 30840078 */ andi $a0, $a0, 0x78 +/* 1204F8 802B6EE8 14800005 */ bnez $a0, .L802B6F00 +/* 1204FC 802B6EEC 00000000 */ nop +/* 120500 802B6EF0 44043000 */ mfc1 $a0, $f6 +/* 120504 802B6EF4 3C018000 */ lui $at, 0x8000 +/* 120508 802B6EF8 10000007 */ b .L802B6F18 +/* 12050C 802B6EFC 00812025 */ or $a0, $a0, $at +.L802B6F00: +/* 120510 802B6F00 10000005 */ b .L802B6F18 +/* 120514 802B6F04 2404FFFF */ li $a0, -1 +/* 120518 802B6F08 44043000 */ mfc1 $a0, $f6 +.L802B6F0C: +/* 12051C 802B6F0C 00000000 */ nop +/* 120520 802B6F10 0480FFFB */ bltz $a0, .L802B6F00 +/* 120524 802B6F14 00000000 */ nop +.L802B6F18: +/* 120528 802B6F18 44C8F800 */ ctc1 $t0, $31 +/* 12052C 802B6F1C 3089FFFF */ andi $t1, $a0, 0xffff +/* 120530 802B6F20 0C0AE006 */ jal func_802B8018 +/* 120534 802B6F24 01202025 */ move $a0, $t1 +/* 120538 802B6F28 46000386 */ mov.s $f14, $f0 +/* 12053C 802B6F2C 444AF800 */ cfc1 $t2, $31 +/* 120540 802B6F30 24040001 */ li $a0, 1 +/* 120544 802B6F34 44C4F800 */ ctc1 $a0, $31 +/* 120548 802B6F38 C6280004 */ lwc1 $f8, 4($s1) +/* 12054C 802B6F3C 3C014F00 */ li $at, 0x4F000000 # 2147483648.000000 +/* 120550 802B6F40 460042A4 */ cvt.w.s $f10, $f8 +/* 120554 802B6F44 4444F800 */ cfc1 $a0, $31 +/* 120558 802B6F48 00000000 */ nop +/* 12055C 802B6F4C 30840078 */ andi $a0, $a0, 0x78 +/* 120560 802B6F50 50800013 */ beql $a0, $zero, .L802B6FA0 +/* 120564 802B6F54 44045000 */ mfc1 $a0, $f10 +/* 120568 802B6F58 44815000 */ mtc1 $at, $f10 +/* 12056C 802B6F5C 24040001 */ li $a0, 1 +/* 120570 802B6F60 460A4281 */ sub.s $f10, $f8, $f10 +/* 120574 802B6F64 44C4F800 */ ctc1 $a0, $31 +/* 120578 802B6F68 00000000 */ nop +/* 12057C 802B6F6C 460052A4 */ cvt.w.s $f10, $f10 +/* 120580 802B6F70 4444F800 */ cfc1 $a0, $31 +/* 120584 802B6F74 00000000 */ nop +/* 120588 802B6F78 30840078 */ andi $a0, $a0, 0x78 +/* 12058C 802B6F7C 14800005 */ bnez $a0, .L802B6F94 +/* 120590 802B6F80 00000000 */ nop +/* 120594 802B6F84 44045000 */ mfc1 $a0, $f10 +/* 120598 802B6F88 3C018000 */ lui $at, 0x8000 +/* 12059C 802B6F8C 10000007 */ b .L802B6FAC +/* 1205A0 802B6F90 00812025 */ or $a0, $a0, $at +.L802B6F94: +/* 1205A4 802B6F94 10000005 */ b .L802B6FAC +/* 1205A8 802B6F98 2404FFFF */ li $a0, -1 +/* 1205AC 802B6F9C 44045000 */ mfc1 $a0, $f10 +.L802B6FA0: +/* 1205B0 802B6FA0 00000000 */ nop +/* 1205B4 802B6FA4 0480FFFB */ bltz $a0, .L802B6F94 +/* 1205B8 802B6FA8 00000000 */ nop +.L802B6FAC: +/* 1205BC 802B6FAC 44CAF800 */ ctc1 $t2, $31 +/* 1205C0 802B6FB0 308BFFFF */ andi $t3, $a0, 0xffff +/* 1205C4 802B6FB4 01602025 */ move $a0, $t3 +/* 1205C8 802B6FB8 0C0AE00E */ jal func_802B8038 +/* 1205CC 802B6FBC E7AE0034 */ swc1 $f14, 0x34($sp) +/* 1205D0 802B6FC0 46000406 */ mov.s $f16, $f0 +/* 1205D4 802B6FC4 444CF800 */ cfc1 $t4, $31 +/* 1205D8 802B6FC8 24040001 */ li $a0, 1 +/* 1205DC 802B6FCC 44C4F800 */ ctc1 $a0, $31 +/* 1205E0 802B6FD0 C6240008 */ lwc1 $f4, 8($s1) +/* 1205E4 802B6FD4 3C014F00 */ li $at, 0x4F000000 # 2147483648.000000 +/* 1205E8 802B6FD8 460021A4 */ cvt.w.s $f6, $f4 +/* 1205EC 802B6FDC 4444F800 */ cfc1 $a0, $31 +/* 1205F0 802B6FE0 00000000 */ nop +/* 1205F4 802B6FE4 30840078 */ andi $a0, $a0, 0x78 +/* 1205F8 802B6FE8 50800013 */ beql $a0, $zero, .L802B7038 +/* 1205FC 802B6FEC 44043000 */ mfc1 $a0, $f6 +/* 120600 802B6FF0 44813000 */ mtc1 $at, $f6 +/* 120604 802B6FF4 24040001 */ li $a0, 1 +/* 120608 802B6FF8 46062181 */ sub.s $f6, $f4, $f6 +/* 12060C 802B6FFC 44C4F800 */ ctc1 $a0, $31 +/* 120610 802B7000 00000000 */ nop +/* 120614 802B7004 460031A4 */ cvt.w.s $f6, $f6 +/* 120618 802B7008 4444F800 */ cfc1 $a0, $31 +/* 12061C 802B700C 00000000 */ nop +/* 120620 802B7010 30840078 */ andi $a0, $a0, 0x78 +/* 120624 802B7014 14800005 */ bnez $a0, .L802B702C +/* 120628 802B7018 00000000 */ nop +/* 12062C 802B701C 44043000 */ mfc1 $a0, $f6 +/* 120630 802B7020 3C018000 */ lui $at, 0x8000 +/* 120634 802B7024 10000007 */ b .L802B7044 +/* 120638 802B7028 00812025 */ or $a0, $a0, $at +.L802B702C: +/* 12063C 802B702C 10000005 */ b .L802B7044 +/* 120640 802B7030 2404FFFF */ li $a0, -1 +/* 120644 802B7034 44043000 */ mfc1 $a0, $f6 +.L802B7038: +/* 120648 802B7038 00000000 */ nop +/* 12064C 802B703C 0480FFFB */ bltz $a0, .L802B702C +/* 120650 802B7040 00000000 */ nop +.L802B7044: +/* 120654 802B7044 44CCF800 */ ctc1 $t4, $31 +/* 120658 802B7048 308DFFFF */ andi $t5, $a0, 0xffff +/* 12065C 802B704C 01A02025 */ move $a0, $t5 +/* 120660 802B7050 0C0AE006 */ jal func_802B8018 +/* 120664 802B7054 E7B00030 */ swc1 $f16, 0x30($sp) +/* 120668 802B7058 46000086 */ mov.s $f2, $f0 +/* 12066C 802B705C 444EF800 */ cfc1 $t6, $31 +/* 120670 802B7060 24040001 */ li $a0, 1 +/* 120674 802B7064 44C4F800 */ ctc1 $a0, $31 +/* 120678 802B7068 C6280008 */ lwc1 $f8, 8($s1) +/* 12067C 802B706C 3C014F00 */ li $at, 0x4F000000 # 2147483648.000000 +/* 120680 802B7070 460042A4 */ cvt.w.s $f10, $f8 +/* 120684 802B7074 4444F800 */ cfc1 $a0, $31 +/* 120688 802B7078 00000000 */ nop +/* 12068C 802B707C 30840078 */ andi $a0, $a0, 0x78 +/* 120690 802B7080 50800013 */ beql $a0, $zero, .L802B70D0 +/* 120694 802B7084 44045000 */ mfc1 $a0, $f10 +/* 120698 802B7088 44815000 */ mtc1 $at, $f10 +/* 12069C 802B708C 24040001 */ li $a0, 1 +/* 1206A0 802B7090 460A4281 */ sub.s $f10, $f8, $f10 +/* 1206A4 802B7094 44C4F800 */ ctc1 $a0, $31 +/* 1206A8 802B7098 00000000 */ nop +/* 1206AC 802B709C 460052A4 */ cvt.w.s $f10, $f10 +/* 1206B0 802B70A0 4444F800 */ cfc1 $a0, $31 +/* 1206B4 802B70A4 00000000 */ nop +/* 1206B8 802B70A8 30840078 */ andi $a0, $a0, 0x78 +/* 1206BC 802B70AC 14800005 */ bnez $a0, .L802B70C4 +/* 1206C0 802B70B0 00000000 */ nop +/* 1206C4 802B70B4 44045000 */ mfc1 $a0, $f10 +/* 1206C8 802B70B8 3C018000 */ lui $at, 0x8000 +/* 1206CC 802B70BC 10000007 */ b .L802B70DC +/* 1206D0 802B70C0 00812025 */ or $a0, $a0, $at +.L802B70C4: +/* 1206D4 802B70C4 10000005 */ b .L802B70DC +/* 1206D8 802B70C8 2404FFFF */ li $a0, -1 +/* 1206DC 802B70CC 44045000 */ mfc1 $a0, $f10 +.L802B70D0: +/* 1206E0 802B70D0 00000000 */ nop +/* 1206E4 802B70D4 0480FFFB */ bltz $a0, .L802B70C4 +/* 1206E8 802B70D8 00000000 */ nop +.L802B70DC: +/* 1206EC 802B70DC 44CEF800 */ ctc1 $t6, $31 +/* 1206F0 802B70E0 308FFFFF */ andi $t7, $a0, 0xffff +/* 1206F4 802B70E4 01E02025 */ move $a0, $t7 +/* 1206F8 802B70E8 0C0AE00E */ jal func_802B8038 +/* 1206FC 802B70EC E7A2002C */ swc1 $f2, 0x2c($sp) +/* 120700 802B70F0 C7AE0034 */ lwc1 $f14, 0x34($sp) +/* 120704 802B70F4 C7B2003C */ lwc1 $f18, 0x3c($sp) +/* 120708 802B70F8 C7B00030 */ lwc1 $f16, 0x30($sp) +/* 12070C 802B70FC C7A2002C */ lwc1 $f2, 0x2c($sp) +/* 120710 802B7100 460E9302 */ mul.s $f12, $f18, $f14 +/* 120714 802B7104 46008287 */ neg.s $f10, $f16 +/* 120718 802B7108 8FA20044 */ lw $v0, 0x44($sp) +/* 12071C 802B710C 46008102 */ mul.s $f4, $f16, $f0 +/* 120720 802B7110 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 120724 802B7114 46026182 */ mul.s $f6, $f12, $f2 +/* 120728 802B7118 46062200 */ add.s $f8, $f4, $f6 +/* 12072C 802B711C 46025102 */ mul.s $f4, $f10, $f2 +/* 120730 802B7120 00000000 */ nop +/* 120734 802B7124 46006182 */ mul.s $f6, $f12, $f0 +/* 120738 802B7128 E6080000 */ swc1 $f8, ($s0) +/* 12073C 802B712C 460EA282 */ mul.s $f10, $f20, $f14 +/* 120740 802B7130 46062200 */ add.s $f8, $f4, $f6 +/* 120744 802B7134 4602A182 */ mul.s $f6, $f20, $f2 +/* 120748 802B7138 E60A0020 */ swc1 $f10, 0x20($s0) +/* 12074C 802B713C 46009287 */ neg.s $f10, $f18 +/* 120750 802B7140 E6080010 */ swc1 $f8, 0x10($s0) +/* 120754 802B7144 4600A202 */ mul.s $f8, $f20, $f0 +/* 120758 802B7148 C4440000 */ lwc1 $f4, ($v0) +/* 12075C 802B714C E60A0024 */ swc1 $f10, 0x24($s0) +/* 120760 802B7150 46109302 */ mul.s $f12, $f18, $f16 +/* 120764 802B7154 E6060004 */ swc1 $f6, 4($s0) +/* 120768 802B7158 E6040030 */ swc1 $f4, 0x30($s0) +/* 12076C 802B715C 46007187 */ neg.s $f6, $f14 +/* 120770 802B7160 E6080014 */ swc1 $f8, 0x14($s0) +/* 120774 802B7164 46003202 */ mul.s $f8, $f6, $f0 +/* 120778 802B7168 C4440004 */ lwc1 $f4, 4($v0) +/* 12077C 802B716C 46026282 */ mul.s $f10, $f12, $f2 +/* 120780 802B7170 E6040034 */ swc1 $f4, 0x34($s0) +/* 120784 802B7174 46027182 */ mul.s $f6, $f14, $f2 +/* 120788 802B7178 460A4100 */ add.s $f4, $f8, $f10 +/* 12078C 802B717C 46006202 */ mul.s $f8, $f12, $f0 +/* 120790 802B7180 44800000 */ mtc1 $zero, $f0 +/* 120794 802B7184 E6040008 */ swc1 $f4, 8($s0) +/* 120798 802B7188 4610A102 */ mul.s $f4, $f20, $f16 +/* 12079C 802B718C 46083280 */ add.s $f10, $f6, $f8 +/* 1207A0 802B7190 44814000 */ mtc1 $at, $f8 +/* 1207A4 802B7194 E6040028 */ swc1 $f4, 0x28($s0) +/* 1207A8 802B7198 E60A0018 */ swc1 $f10, 0x18($s0) +/* 1207AC 802B719C C4460008 */ lwc1 $f6, 8($v0) +/* 1207B0 802B71A0 E600000C */ swc1 $f0, 0xc($s0) +/* 1207B4 802B71A4 E600001C */ swc1 $f0, 0x1c($s0) +/* 1207B8 802B71A8 E600002C */ swc1 $f0, 0x2c($s0) +/* 1207BC 802B71AC E608003C */ swc1 $f8, 0x3c($s0) +/* 1207C0 802B71B0 E6060038 */ swc1 $f6, 0x38($s0) +/* 1207C4 802B71B4 8FBF0024 */ lw $ra, 0x24($sp) +/* 1207C8 802B71B8 8FB10020 */ lw $s1, 0x20($sp) +/* 1207CC 802B71BC 8FB0001C */ lw $s0, 0x1c($sp) +/* 1207D0 802B71C0 D7B40010 */ ldc1 $f20, 0x10($sp) +/* 1207D4 802B71C4 03E00008 */ jr $ra +/* 1207D8 802B71C8 27BD0040 */ addiu $sp, $sp, 0x40 + +glabel func_802B71CC +/* 1207DC 802B71CC 27BDFFA0 */ addiu $sp, $sp, -0x60 +/* 1207E0 802B71D0 AFBF001C */ sw $ra, 0x1c($sp) +/* 1207E4 802B71D4 AFB00018 */ sw $s0, 0x18($sp) +/* 1207E8 802B71D8 C4C60000 */ lwc1 $f6, ($a2) +/* 1207EC 802B71DC C4A40000 */ lwc1 $f4, ($a1) +/* 1207F0 802B71E0 C4D00010 */ lwc1 $f16, 0x10($a2) +/* 1207F4 802B71E4 C4AA0004 */ lwc1 $f10, 4($a1) +/* 1207F8 802B71E8 46062202 */ mul.s $f8, $f4, $f6 +/* 1207FC 802B71EC C4A60008 */ lwc1 $f6, 8($a1) +/* 120800 802B71F0 46105482 */ mul.s $f18, $f10, $f16 +/* 120804 802B71F4 C4CA0020 */ lwc1 $f10, 0x20($a2) +/* 120808 802B71F8 460A3402 */ mul.s $f16, $f6, $f10 +/* 12080C 802B71FC C4A6000C */ lwc1 $f6, 0xc($a1) +/* 120810 802B7200 46124100 */ add.s $f4, $f8, $f18 +/* 120814 802B7204 C4D20030 */ lwc1 $f18, 0x30($a2) +/* 120818 802B7208 46069282 */ mul.s $f10, $f18, $f6 +/* 12081C 802B720C 46102200 */ add.s $f8, $f4, $f16 +/* 120820 802B7210 46085100 */ add.s $f4, $f10, $f8 +/* 120824 802B7214 E7A40020 */ swc1 $f4, 0x20($sp) +/* 120828 802B7218 C4D20004 */ lwc1 $f18, 4($a2) +/* 12082C 802B721C C4B00000 */ lwc1 $f16, ($a1) +/* 120830 802B7220 C4C80014 */ lwc1 $f8, 0x14($a2) +/* 120834 802B7224 C4AA0004 */ lwc1 $f10, 4($a1) +/* 120838 802B7228 46128182 */ mul.s $f6, $f16, $f18 +/* 12083C 802B722C C4B20008 */ lwc1 $f18, 8($a1) +/* 120840 802B7230 46085102 */ mul.s $f4, $f10, $f8 +/* 120844 802B7234 C4CA0024 */ lwc1 $f10, 0x24($a2) +/* 120848 802B7238 460A9202 */ mul.s $f8, $f18, $f10 +/* 12084C 802B723C C4B2000C */ lwc1 $f18, 0xc($a1) +/* 120850 802B7240 46043400 */ add.s $f16, $f6, $f4 +/* 120854 802B7244 C4C40034 */ lwc1 $f4, 0x34($a2) +/* 120858 802B7248 46122282 */ mul.s $f10, $f4, $f18 +/* 12085C 802B724C 46088180 */ add.s $f6, $f16, $f8 +/* 120860 802B7250 46065400 */ add.s $f16, $f10, $f6 +/* 120864 802B7254 E7B00024 */ swc1 $f16, 0x24($sp) +/* 120868 802B7258 C4C40008 */ lwc1 $f4, 8($a2) +/* 12086C 802B725C C4A80000 */ lwc1 $f8, ($a1) +/* 120870 802B7260 C4C60018 */ lwc1 $f6, 0x18($a2) +/* 120874 802B7264 C4AA0004 */ lwc1 $f10, 4($a1) +/* 120878 802B7268 46044482 */ mul.s $f18, $f8, $f4 +/* 12087C 802B726C C4A40008 */ lwc1 $f4, 8($a1) +/* 120880 802B7270 46065402 */ mul.s $f16, $f10, $f6 +/* 120884 802B7274 C4CA0028 */ lwc1 $f10, 0x28($a2) +/* 120888 802B7278 460A2182 */ mul.s $f6, $f4, $f10 +/* 12088C 802B727C C4A4000C */ lwc1 $f4, 0xc($a1) +/* 120890 802B7280 46109200 */ add.s $f8, $f18, $f16 +/* 120894 802B7284 C4D00038 */ lwc1 $f16, 0x38($a2) +/* 120898 802B7288 46048282 */ mul.s $f10, $f16, $f4 +/* 12089C 802B728C 46064480 */ add.s $f18, $f8, $f6 +/* 1208A0 802B7290 46125200 */ add.s $f8, $f10, $f18 +/* 1208A4 802B7294 E7A80028 */ swc1 $f8, 0x28($sp) +/* 1208A8 802B7298 C4D0000C */ lwc1 $f16, 0xc($a2) +/* 1208AC 802B729C C4A60000 */ lwc1 $f6, ($a1) +/* 1208B0 802B72A0 C4D2001C */ lwc1 $f18, 0x1c($a2) +/* 1208B4 802B72A4 C4AA0004 */ lwc1 $f10, 4($a1) +/* 1208B8 802B72A8 46103102 */ mul.s $f4, $f6, $f16 +/* 1208BC 802B72AC C4B00008 */ lwc1 $f16, 8($a1) +/* 1208C0 802B72B0 46125202 */ mul.s $f8, $f10, $f18 +/* 1208C4 802B72B4 C4CA002C */ lwc1 $f10, 0x2c($a2) +/* 1208C8 802B72B8 460A8482 */ mul.s $f18, $f16, $f10 +/* 1208CC 802B72BC C4B0000C */ lwc1 $f16, 0xc($a1) +/* 1208D0 802B72C0 46082180 */ add.s $f6, $f4, $f8 +/* 1208D4 802B72C4 C4C8003C */ lwc1 $f8, 0x3c($a2) +/* 1208D8 802B72C8 46104282 */ mul.s $f10, $f8, $f16 +/* 1208DC 802B72CC 46123100 */ add.s $f4, $f6, $f18 +/* 1208E0 802B72D0 46045180 */ add.s $f6, $f10, $f4 +/* 1208E4 802B72D4 E7A6002C */ swc1 $f6, 0x2c($sp) +/* 1208E8 802B72D8 C4C80000 */ lwc1 $f8, ($a2) +/* 1208EC 802B72DC C4B20010 */ lwc1 $f18, 0x10($a1) +/* 1208F0 802B72E0 C4C40010 */ lwc1 $f4, 0x10($a2) +/* 1208F4 802B72E4 C4AA0014 */ lwc1 $f10, 0x14($a1) +/* 1208F8 802B72E8 46089402 */ mul.s $f16, $f18, $f8 +/* 1208FC 802B72EC C4A80018 */ lwc1 $f8, 0x18($a1) +/* 120900 802B72F0 46045182 */ mul.s $f6, $f10, $f4 +/* 120904 802B72F4 C4CA0020 */ lwc1 $f10, 0x20($a2) +/* 120908 802B72F8 460A4102 */ mul.s $f4, $f8, $f10 +/* 12090C 802B72FC C4A8001C */ lwc1 $f8, 0x1c($a1) +/* 120910 802B7300 46068480 */ add.s $f18, $f16, $f6 +/* 120914 802B7304 C4C60030 */ lwc1 $f6, 0x30($a2) +/* 120918 802B7308 46083282 */ mul.s $f10, $f6, $f8 +/* 12091C 802B730C 46049400 */ add.s $f16, $f18, $f4 +/* 120920 802B7310 46105480 */ add.s $f18, $f10, $f16 +/* 120924 802B7314 E7B20030 */ swc1 $f18, 0x30($sp) +/* 120928 802B7318 C4C60004 */ lwc1 $f6, 4($a2) +/* 12092C 802B731C C4A40010 */ lwc1 $f4, 0x10($a1) +/* 120930 802B7320 C4D00014 */ lwc1 $f16, 0x14($a2) +/* 120934 802B7324 C4AA0014 */ lwc1 $f10, 0x14($a1) +/* 120938 802B7328 46062202 */ mul.s $f8, $f4, $f6 +/* 12093C 802B732C C4A60018 */ lwc1 $f6, 0x18($a1) +/* 120940 802B7330 46105482 */ mul.s $f18, $f10, $f16 +/* 120944 802B7334 C4CA0024 */ lwc1 $f10, 0x24($a2) +/* 120948 802B7338 460A3402 */ mul.s $f16, $f6, $f10 +/* 12094C 802B733C C4A6001C */ lwc1 $f6, 0x1c($a1) +/* 120950 802B7340 46124100 */ add.s $f4, $f8, $f18 +/* 120954 802B7344 C4D20034 */ lwc1 $f18, 0x34($a2) +/* 120958 802B7348 46069282 */ mul.s $f10, $f18, $f6 +/* 12095C 802B734C 46102200 */ add.s $f8, $f4, $f16 +/* 120960 802B7350 46085100 */ add.s $f4, $f10, $f8 +/* 120964 802B7354 E7A40034 */ swc1 $f4, 0x34($sp) +/* 120968 802B7358 C4D20008 */ lwc1 $f18, 8($a2) +/* 12096C 802B735C C4B00010 */ lwc1 $f16, 0x10($a1) +/* 120970 802B7360 C4C80018 */ lwc1 $f8, 0x18($a2) +/* 120974 802B7364 C4AA0014 */ lwc1 $f10, 0x14($a1) +/* 120978 802B7368 46128182 */ mul.s $f6, $f16, $f18 +/* 12097C 802B736C C4B20018 */ lwc1 $f18, 0x18($a1) +/* 120980 802B7370 46085102 */ mul.s $f4, $f10, $f8 +/* 120984 802B7374 C4CA0028 */ lwc1 $f10, 0x28($a2) +/* 120988 802B7378 460A9202 */ mul.s $f8, $f18, $f10 +/* 12098C 802B737C C4B2001C */ lwc1 $f18, 0x1c($a1) +/* 120990 802B7380 46043400 */ add.s $f16, $f6, $f4 +/* 120994 802B7384 C4C40038 */ lwc1 $f4, 0x38($a2) +/* 120998 802B7388 46122282 */ mul.s $f10, $f4, $f18 +/* 12099C 802B738C 46088180 */ add.s $f6, $f16, $f8 +/* 1209A0 802B7390 46065400 */ add.s $f16, $f10, $f6 +/* 1209A4 802B7394 E7B00038 */ swc1 $f16, 0x38($sp) +/* 1209A8 802B7398 C4C4000C */ lwc1 $f4, 0xc($a2) +/* 1209AC 802B739C C4A80010 */ lwc1 $f8, 0x10($a1) +/* 1209B0 802B73A0 C4C6001C */ lwc1 $f6, 0x1c($a2) +/* 1209B4 802B73A4 C4AA0014 */ lwc1 $f10, 0x14($a1) +/* 1209B8 802B73A8 46044482 */ mul.s $f18, $f8, $f4 +/* 1209BC 802B73AC C4A40018 */ lwc1 $f4, 0x18($a1) +/* 1209C0 802B73B0 46065402 */ mul.s $f16, $f10, $f6 +/* 1209C4 802B73B4 C4CA002C */ lwc1 $f10, 0x2c($a2) +/* 1209C8 802B73B8 460A2182 */ mul.s $f6, $f4, $f10 +/* 1209CC 802B73BC C4A4001C */ lwc1 $f4, 0x1c($a1) +/* 1209D0 802B73C0 46109200 */ add.s $f8, $f18, $f16 +/* 1209D4 802B73C4 C4D0003C */ lwc1 $f16, 0x3c($a2) +/* 1209D8 802B73C8 46048282 */ mul.s $f10, $f16, $f4 +/* 1209DC 802B73CC 46064480 */ add.s $f18, $f8, $f6 +/* 1209E0 802B73D0 46125200 */ add.s $f8, $f10, $f18 +/* 1209E4 802B73D4 E7A8003C */ swc1 $f8, 0x3c($sp) +/* 1209E8 802B73D8 C4D00000 */ lwc1 $f16, ($a2) +/* 1209EC 802B73DC C4A60020 */ lwc1 $f6, 0x20($a1) +/* 1209F0 802B73E0 C4D20010 */ lwc1 $f18, 0x10($a2) +/* 1209F4 802B73E4 C4AA0024 */ lwc1 $f10, 0x24($a1) +/* 1209F8 802B73E8 46103102 */ mul.s $f4, $f6, $f16 +/* 1209FC 802B73EC C4B00028 */ lwc1 $f16, 0x28($a1) +/* 120A00 802B73F0 46125202 */ mul.s $f8, $f10, $f18 +/* 120A04 802B73F4 C4CA0020 */ lwc1 $f10, 0x20($a2) +/* 120A08 802B73F8 460A8482 */ mul.s $f18, $f16, $f10 +/* 120A0C 802B73FC C4B0002C */ lwc1 $f16, 0x2c($a1) +/* 120A10 802B7400 46082180 */ add.s $f6, $f4, $f8 +/* 120A14 802B7404 C4C80030 */ lwc1 $f8, 0x30($a2) +/* 120A18 802B7408 46104282 */ mul.s $f10, $f8, $f16 +/* 120A1C 802B740C 46123100 */ add.s $f4, $f6, $f18 +/* 120A20 802B7410 46045180 */ add.s $f6, $f10, $f4 +/* 120A24 802B7414 E7A60040 */ swc1 $f6, 0x40($sp) +/* 120A28 802B7418 C4C80004 */ lwc1 $f8, 4($a2) +/* 120A2C 802B741C C4B20020 */ lwc1 $f18, 0x20($a1) +/* 120A30 802B7420 C4C40014 */ lwc1 $f4, 0x14($a2) +/* 120A34 802B7424 C4AA0024 */ lwc1 $f10, 0x24($a1) +/* 120A38 802B7428 46089402 */ mul.s $f16, $f18, $f8 +/* 120A3C 802B742C C4A80028 */ lwc1 $f8, 0x28($a1) +/* 120A40 802B7430 46045182 */ mul.s $f6, $f10, $f4 +/* 120A44 802B7434 C4CA0024 */ lwc1 $f10, 0x24($a2) +/* 120A48 802B7438 460A4102 */ mul.s $f4, $f8, $f10 +/* 120A4C 802B743C C4A8002C */ lwc1 $f8, 0x2c($a1) +/* 120A50 802B7440 46068480 */ add.s $f18, $f16, $f6 +/* 120A54 802B7444 C4C60034 */ lwc1 $f6, 0x34($a2) +/* 120A58 802B7448 46083282 */ mul.s $f10, $f6, $f8 +/* 120A5C 802B744C 46049400 */ add.s $f16, $f18, $f4 +/* 120A60 802B7450 46105480 */ add.s $f18, $f10, $f16 +/* 120A64 802B7454 E7B20044 */ swc1 $f18, 0x44($sp) +/* 120A68 802B7458 C4C60008 */ lwc1 $f6, 8($a2) +/* 120A6C 802B745C C4A40020 */ lwc1 $f4, 0x20($a1) +/* 120A70 802B7460 C4D00018 */ lwc1 $f16, 0x18($a2) +/* 120A74 802B7464 C4AA0024 */ lwc1 $f10, 0x24($a1) +/* 120A78 802B7468 46062202 */ mul.s $f8, $f4, $f6 +/* 120A7C 802B746C C4A60028 */ lwc1 $f6, 0x28($a1) +/* 120A80 802B7470 46105482 */ mul.s $f18, $f10, $f16 +/* 120A84 802B7474 C4CA0028 */ lwc1 $f10, 0x28($a2) +/* 120A88 802B7478 460A3402 */ mul.s $f16, $f6, $f10 +/* 120A8C 802B747C C4A6002C */ lwc1 $f6, 0x2c($a1) +/* 120A90 802B7480 46124100 */ add.s $f4, $f8, $f18 +/* 120A94 802B7484 C4D20038 */ lwc1 $f18, 0x38($a2) +/* 120A98 802B7488 46069282 */ mul.s $f10, $f18, $f6 +/* 120A9C 802B748C 46102200 */ add.s $f8, $f4, $f16 +/* 120AA0 802B7490 46085100 */ add.s $f4, $f10, $f8 +/* 120AA4 802B7494 E7A40048 */ swc1 $f4, 0x48($sp) +/* 120AA8 802B7498 C4D2000C */ lwc1 $f18, 0xc($a2) +/* 120AAC 802B749C C4B00020 */ lwc1 $f16, 0x20($a1) +/* 120AB0 802B74A0 C4C8001C */ lwc1 $f8, 0x1c($a2) +/* 120AB4 802B74A4 C4AA0024 */ lwc1 $f10, 0x24($a1) +/* 120AB8 802B74A8 46128182 */ mul.s $f6, $f16, $f18 +/* 120ABC 802B74AC C4B20028 */ lwc1 $f18, 0x28($a1) +/* 120AC0 802B74B0 46085102 */ mul.s $f4, $f10, $f8 +/* 120AC4 802B74B4 C4CA002C */ lwc1 $f10, 0x2c($a2) +/* 120AC8 802B74B8 460A9202 */ mul.s $f8, $f18, $f10 +/* 120ACC 802B74BC C4B2002C */ lwc1 $f18, 0x2c($a1) +/* 120AD0 802B74C0 46043400 */ add.s $f16, $f6, $f4 +/* 120AD4 802B74C4 C4C4003C */ lwc1 $f4, 0x3c($a2) +/* 120AD8 802B74C8 46122282 */ mul.s $f10, $f4, $f18 +/* 120ADC 802B74CC 46088180 */ add.s $f6, $f16, $f8 +/* 120AE0 802B74D0 46065400 */ add.s $f16, $f10, $f6 +/* 120AE4 802B74D4 E7B0004C */ swc1 $f16, 0x4c($sp) +/* 120AE8 802B74D8 C4A80030 */ lwc1 $f8, 0x30($a1) +/* 120AEC 802B74DC C4C40000 */ lwc1 $f4, ($a2) +/* 120AF0 802B74E0 C4AA0034 */ lwc1 $f10, 0x34($a1) +/* 120AF4 802B74E4 C4C60010 */ lwc1 $f6, 0x10($a2) +/* 120AF8 802B74E8 46044482 */ mul.s $f18, $f8, $f4 +/* 120AFC 802B74EC C4A40038 */ lwc1 $f4, 0x38($a1) +/* 120B00 802B74F0 46065402 */ mul.s $f16, $f10, $f6 +/* 120B04 802B74F4 C4CA0020 */ lwc1 $f10, 0x20($a2) +/* 120B08 802B74F8 460A2182 */ mul.s $f6, $f4, $f10 +/* 120B0C 802B74FC C4A4003C */ lwc1 $f4, 0x3c($a1) +/* 120B10 802B7500 46109200 */ add.s $f8, $f18, $f16 +/* 120B14 802B7504 C4D00030 */ lwc1 $f16, 0x30($a2) +/* 120B18 802B7508 46048282 */ mul.s $f10, $f16, $f4 +/* 120B1C 802B750C 46064480 */ add.s $f18, $f8, $f6 +/* 120B20 802B7510 46125200 */ add.s $f8, $f10, $f18 +/* 120B24 802B7514 E7A80050 */ swc1 $f8, 0x50($sp) +/* 120B28 802B7518 C4A60030 */ lwc1 $f6, 0x30($a1) +/* 120B2C 802B751C C4D00004 */ lwc1 $f16, 4($a2) +/* 120B30 802B7520 C4AA0034 */ lwc1 $f10, 0x34($a1) +/* 120B34 802B7524 C4D20014 */ lwc1 $f18, 0x14($a2) +/* 120B38 802B7528 46103102 */ mul.s $f4, $f6, $f16 +/* 120B3C 802B752C C4B00038 */ lwc1 $f16, 0x38($a1) +/* 120B40 802B7530 46125202 */ mul.s $f8, $f10, $f18 +/* 120B44 802B7534 C4CA0024 */ lwc1 $f10, 0x24($a2) +/* 120B48 802B7538 460A8482 */ mul.s $f18, $f16, $f10 +/* 120B4C 802B753C C4B0003C */ lwc1 $f16, 0x3c($a1) +/* 120B50 802B7540 46082180 */ add.s $f6, $f4, $f8 +/* 120B54 802B7544 C4C80034 */ lwc1 $f8, 0x34($a2) +/* 120B58 802B7548 46104282 */ mul.s $f10, $f8, $f16 +/* 120B5C 802B754C 46123100 */ add.s $f4, $f6, $f18 +/* 120B60 802B7550 46045180 */ add.s $f6, $f10, $f4 +/* 120B64 802B7554 E7A60054 */ swc1 $f6, 0x54($sp) +/* 120B68 802B7558 C4B20030 */ lwc1 $f18, 0x30($a1) +/* 120B6C 802B755C C4C80008 */ lwc1 $f8, 8($a2) +/* 120B70 802B7560 C4AA0034 */ lwc1 $f10, 0x34($a1) +/* 120B74 802B7564 C4C40018 */ lwc1 $f4, 0x18($a2) +/* 120B78 802B7568 46089402 */ mul.s $f16, $f18, $f8 +/* 120B7C 802B756C C4A80038 */ lwc1 $f8, 0x38($a1) +/* 120B80 802B7570 46045182 */ mul.s $f6, $f10, $f4 +/* 120B84 802B7574 C4CA0028 */ lwc1 $f10, 0x28($a2) +/* 120B88 802B7578 460A4102 */ mul.s $f4, $f8, $f10 +/* 120B8C 802B757C C4A8003C */ lwc1 $f8, 0x3c($a1) +/* 120B90 802B7580 46068480 */ add.s $f18, $f16, $f6 +/* 120B94 802B7584 C4C60038 */ lwc1 $f6, 0x38($a2) +/* 120B98 802B7588 46083282 */ mul.s $f10, $f6, $f8 +/* 120B9C 802B758C 46049400 */ add.s $f16, $f18, $f4 +/* 120BA0 802B7590 46105480 */ add.s $f18, $f10, $f16 +/* 120BA4 802B7594 E7B20058 */ swc1 $f18, 0x58($sp) +/* 120BA8 802B7598 C4C6000C */ lwc1 $f6, 0xc($a2) +/* 120BAC 802B759C C4A40030 */ lwc1 $f4, 0x30($a1) +/* 120BB0 802B75A0 C4D0001C */ lwc1 $f16, 0x1c($a2) +/* 120BB4 802B75A4 C4AA0034 */ lwc1 $f10, 0x34($a1) +/* 120BB8 802B75A8 46062202 */ mul.s $f8, $f4, $f6 +/* 120BBC 802B75AC C4A60038 */ lwc1 $f6, 0x38($a1) +/* 120BC0 802B75B0 46105482 */ mul.s $f18, $f10, $f16 +/* 120BC4 802B75B4 C4CA002C */ lwc1 $f10, 0x2c($a2) +/* 120BC8 802B75B8 460A3402 */ mul.s $f16, $f6, $f10 +/* 120BCC 802B75BC C4A6003C */ lwc1 $f6, 0x3c($a1) +/* 120BD0 802B75C0 27A50020 */ addiu $a1, $sp, 0x20 +/* 120BD4 802B75C4 46124100 */ add.s $f4, $f8, $f18 +/* 120BD8 802B75C8 C4D2003C */ lwc1 $f18, 0x3c($a2) +/* 120BDC 802B75CC 24060010 */ li $a2, 16 +/* 120BE0 802B75D0 46069282 */ mul.s $f10, $f18, $f6 +/* 120BE4 802B75D4 46102200 */ add.s $f8, $f4, $f16 +/* 120BE8 802B75D8 46085100 */ add.s $f4, $f10, $f8 +/* 120BEC 802B75DC 0C0AD4E6 */ jal func_802B5398 +/* 120BF0 802B75E0 E7A4005C */ swc1 $f4, 0x5c($sp) +/* 120BF4 802B75E4 8FBF001C */ lw $ra, 0x1c($sp) +/* 120BF8 802B75E8 8FB00018 */ lw $s0, 0x18($sp) +/* 120BFC 802B75EC 27BD0060 */ addiu $sp, $sp, 0x60 +/* 120C00 802B75F0 03E00008 */ jr $ra +/* 120C04 802B75F4 00000000 */ nop + +glabel func_802B75F8 +/* 120C08 802B75F8 3C014780 */ li $at, 0x47800000 # 65536.000000 +/* 120C0C 802B75FC 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 120C10 802B7600 00801025 */ move $v0, $a0 +/* 120C14 802B7604 24830020 */ addiu $v1, $a0, 0x20 +/* 120C18 802B7608 00A03025 */ move $a2, $a1 +/* 120C1C 802B760C 44810000 */ mtc1 $at, $f0 +/* 120C20 802B7610 24050010 */ li $a1, 16 +/* 120C24 802B7614 27A40014 */ addiu $a0, $sp, 0x14 +/* 120C28 802B7618 00003825 */ move $a3, $zero +/* 120C2C 802B761C C4D00000 */ lwc1 $f16, ($a2) +/* 120C30 802B7620 24E70004 */ addiu $a3, $a3, 4 +/* 120C34 802B7624 46008482 */ mul.s $f18, $f16, $f0 +/* 120C38 802B7628 50E5002F */ beql $a3, $a1, .L802B76E8 +/* 120C3C 802B762C 4600940D */ trunc.w.s $f16, $f18 +/* 120C40 802B7630 4600940D */ trunc.w.s $f16, $f18 +.L802B7634: +/* 120C44 802B7634 24E70004 */ addiu $a3, $a3, 4 +/* 120C48 802B7638 24C60010 */ addiu $a2, $a2, 0x10 +/* 120C4C 802B763C 24420008 */ addiu $v0, $v0, 8 +/* 120C50 802B7640 440F8000 */ mfc1 $t7, $f16 +/* 120C54 802B7644 24630008 */ addiu $v1, $v1, 8 +/* 120C58 802B7648 AFAF0014 */ sw $t7, 0x14($sp) +/* 120C5C 802B764C 84980000 */ lh $t8, ($a0) +/* 120C60 802B7650 A458FFF8 */ sh $t8, -8($v0) +/* 120C64 802B7654 84990002 */ lh $t9, 2($a0) +/* 120C68 802B7658 A479FFF8 */ sh $t9, -8($v1) +/* 120C6C 802B765C C4D0FFF4 */ lwc1 $f16, -0xc($a2) +/* 120C70 802B7660 46008402 */ mul.s $f16, $f16, $f0 +/* 120C74 802B7664 4600840D */ trunc.w.s $f16, $f16 +/* 120C78 802B7668 44098000 */ mfc1 $t1, $f16 +/* 120C7C 802B766C 00000000 */ nop +/* 120C80 802B7670 AFA90014 */ sw $t1, 0x14($sp) +/* 120C84 802B7674 848A0000 */ lh $t2, ($a0) +/* 120C88 802B7678 A44AFFFA */ sh $t2, -6($v0) +/* 120C8C 802B767C 848B0002 */ lh $t3, 2($a0) +/* 120C90 802B7680 A46BFFFA */ sh $t3, -6($v1) +/* 120C94 802B7684 C4D0FFF8 */ lwc1 $f16, -8($a2) +/* 120C98 802B7688 46008402 */ mul.s $f16, $f16, $f0 +/* 120C9C 802B768C 4600840D */ trunc.w.s $f16, $f16 +/* 120CA0 802B7690 440D8000 */ mfc1 $t5, $f16 +/* 120CA4 802B7694 00000000 */ nop +/* 120CA8 802B7698 AFAD0014 */ sw $t5, 0x14($sp) +/* 120CAC 802B769C 848E0000 */ lh $t6, ($a0) +/* 120CB0 802B76A0 A44EFFFC */ sh $t6, -4($v0) +/* 120CB4 802B76A4 848F0002 */ lh $t7, 2($a0) +/* 120CB8 802B76A8 A46FFFFC */ sh $t7, -4($v1) +/* 120CBC 802B76AC C4D0FFFC */ lwc1 $f16, -4($a2) +/* 120CC0 802B76B0 46008402 */ mul.s $f16, $f16, $f0 +/* 120CC4 802B76B4 4600840D */ trunc.w.s $f16, $f16 +/* 120CC8 802B76B8 44198000 */ mfc1 $t9, $f16 +/* 120CCC 802B76BC 00000000 */ nop +/* 120CD0 802B76C0 AFB90014 */ sw $t9, 0x14($sp) +/* 120CD4 802B76C4 84880000 */ lh $t0, ($a0) +/* 120CD8 802B76C8 A448FFFE */ sh $t0, -2($v0) +/* 120CDC 802B76CC 84890002 */ lh $t1, 2($a0) +/* 120CE0 802B76D0 A469FFFE */ sh $t1, -2($v1) +/* 120CE4 802B76D4 C4D00000 */ lwc1 $f16, ($a2) +/* 120CE8 802B76D8 46008482 */ mul.s $f18, $f16, $f0 +/* 120CEC 802B76DC 54E5FFD5 */ bnel $a3, $a1, .L802B7634 +/* 120CF0 802B76E0 4600940D */ trunc.w.s $f16, $f18 +/* 120CF4 802B76E4 4600940D */ trunc.w.s $f16, $f18 +.L802B76E8: +/* 120CF8 802B76E8 24C60010 */ addiu $a2, $a2, 0x10 +/* 120CFC 802B76EC 24420008 */ addiu $v0, $v0, 8 +/* 120D00 802B76F0 24630008 */ addiu $v1, $v1, 8 +/* 120D04 802B76F4 440F8000 */ mfc1 $t7, $f16 +/* 120D08 802B76F8 00000000 */ nop +/* 120D0C 802B76FC AFAF0014 */ sw $t7, 0x14($sp) +/* 120D10 802B7700 84980000 */ lh $t8, ($a0) +/* 120D14 802B7704 A458FFF8 */ sh $t8, -8($v0) +/* 120D18 802B7708 84990002 */ lh $t9, 2($a0) +/* 120D1C 802B770C A479FFF8 */ sh $t9, -8($v1) +/* 120D20 802B7710 C4D0FFF4 */ lwc1 $f16, -0xc($a2) +/* 120D24 802B7714 46008402 */ mul.s $f16, $f16, $f0 +/* 120D28 802B7718 4600840D */ trunc.w.s $f16, $f16 +/* 120D2C 802B771C 44098000 */ mfc1 $t1, $f16 +/* 120D30 802B7720 00000000 */ nop +/* 120D34 802B7724 AFA90014 */ sw $t1, 0x14($sp) +/* 120D38 802B7728 848A0000 */ lh $t2, ($a0) +/* 120D3C 802B772C A44AFFFA */ sh $t2, -6($v0) +/* 120D40 802B7730 848B0002 */ lh $t3, 2($a0) +/* 120D44 802B7734 A46BFFFA */ sh $t3, -6($v1) +/* 120D48 802B7738 C4D0FFF8 */ lwc1 $f16, -8($a2) +/* 120D4C 802B773C 46008402 */ mul.s $f16, $f16, $f0 +/* 120D50 802B7740 4600840D */ trunc.w.s $f16, $f16 +/* 120D54 802B7744 440D8000 */ mfc1 $t5, $f16 +/* 120D58 802B7748 00000000 */ nop +/* 120D5C 802B774C AFAD0014 */ sw $t5, 0x14($sp) +/* 120D60 802B7750 848E0000 */ lh $t6, ($a0) +/* 120D64 802B7754 A44EFFFC */ sh $t6, -4($v0) +/* 120D68 802B7758 848F0002 */ lh $t7, 2($a0) +/* 120D6C 802B775C A46FFFFC */ sh $t7, -4($v1) +/* 120D70 802B7760 C4D0FFFC */ lwc1 $f16, -4($a2) +/* 120D74 802B7764 46008402 */ mul.s $f16, $f16, $f0 +/* 120D78 802B7768 4600840D */ trunc.w.s $f16, $f16 +/* 120D7C 802B776C 44198000 */ mfc1 $t9, $f16 +/* 120D80 802B7770 00000000 */ nop +/* 120D84 802B7774 AFB90014 */ sw $t9, 0x14($sp) +/* 120D88 802B7778 84880000 */ lh $t0, ($a0) +/* 120D8C 802B777C A448FFFE */ sh $t0, -2($v0) +/* 120D90 802B7780 84890002 */ lh $t1, 2($a0) +/* 120D94 802B7784 A469FFFE */ sh $t1, -2($v1) +/* 120D98 802B7788 03E00008 */ jr $ra +/* 120D9C 802B778C 27BD0018 */ addiu $sp, $sp, 0x18 + +glabel func_802B7790 +/* 120DA0 802B7790 44802000 */ mtc1 $zero, $f4 +/* 120DA4 802B7794 3C03802C */ lui $v1, %hi(D_802BF370) # 0x802c +/* 120DA8 802B7798 46047032 */ c.eq.s $f14, $f4 +/* 120DAC 802B779C 00000000 */ nop +/* 120DB0 802B77A0 45020004 */ bc1fl .L802B77B4 +/* 120DB4 802B77A4 460E6003 */ div.s $f0, $f12, $f14 +/* 120DB8 802B77A8 03E00008 */ jr $ra +/* 120DBC 802B77AC 9462F370 */ lhu $v0, %lo(D_802BF370)($v1) # -0xc90 + +/* 120DC0 802B77B0 460E6003 */ div.s $f0, $f12, $f14 +.L802B77B4: +/* 120DC4 802B77B4 3C01802C */ lui $at, %hi(D_802B9FD8) # $at, 0x802c +/* 120DC8 802B77B8 C4269FD8 */ lwc1 $f6, %lo(D_802B9FD8)($at) +/* 120DCC 802B77BC 3C014480 */ li $at, 0x44800000 # 1024.000000 +/* 120DD0 802B77C0 4600303C */ c.lt.s $f6, $f0 +/* 120DD4 802B77C4 00000000 */ nop +/* 120DD8 802B77C8 4502000C */ bc1fl .L802B77FC +/* 120DDC 802B77CC 44815000 */ mtc1 $at, $f10 +/* 120DE0 802B77D0 44804000 */ mtc1 $zero, $f8 +/* 120DE4 802B77D4 00000000 */ nop +/* 120DE8 802B77D8 460C403C */ c.lt.s $f8, $f12 +/* 120DEC 802B77DC 00000000 */ nop +/* 120DF0 802B77E0 45000003 */ bc1f .L802B77F0 +/* 120DF4 802B77E4 00000000 */ nop +/* 120DF8 802B77E8 03E00008 */ jr $ra +/* 120DFC 802B77EC 24024000 */ li $v0, 16384 + +.L802B77F0: +/* 120E00 802B77F0 03E00008 */ jr $ra +/* 120E04 802B77F4 3402C000 */ li $v0, 49152 + +/* 120E08 802B77F8 44815000 */ mtc1 $at, $f10 +.L802B77FC: +/* 120E0C 802B77FC 3C013F00 */ li $at, 0x3F000000 # 0.500000 +/* 120E10 802B7800 44819000 */ mtc1 $at, $f18 +/* 120E14 802B7804 460A0402 */ mul.s $f16, $f0, $f10 +/* 120E18 802B7808 3C03802C */ lui $v1, %hi(D_802BF370) # 0x802c +/* 120E1C 802B780C 46128100 */ add.s $f4, $f16, $f18 +/* 120E20 802B7810 4600218D */ trunc.w.s $f6, $f4 +/* 120E24 802B7814 440F3000 */ mfc1 $t7, $f6 +/* 120E28 802B7818 00000000 */ nop +/* 120E2C 802B781C 000FC040 */ sll $t8, $t7, 1 +/* 120E30 802B7820 00781821 */ addu $v1, $v1, $t8 +/* 120E34 802B7824 9463F370 */ lhu $v1, %lo(D_802BF370)($v1) # -0xc90 +/* 120E38 802B7828 03E00008 */ jr $ra +/* 120E3C 802B782C 00601025 */ move $v0, $v1 + +glabel func_802B7830 +/* 120E40 802B7830 44800000 */ mtc1 $zero, $f0 +/* 120E44 802B7834 27BDFFD8 */ addiu $sp, $sp, -0x28 +/* 120E48 802B7838 F7B60018 */ sdc1 $f22, 0x18($sp) +/* 120E4C 802B783C 460C003E */ c.le.s $f0, $f12 +/* 120E50 802B7840 F7B40010 */ sdc1 $f20, 0x10($sp) +/* 120E54 802B7844 46007506 */ mov.s $f20, $f14 +/* 120E58 802B7848 46006586 */ mov.s $f22, $f12 +/* 120E5C 802B784C 45000029 */ bc1f .L802B78F4 +/* 120E60 802B7850 AFBF0024 */ sw $ra, 0x24($sp) +/* 120E64 802B7854 460E003E */ c.le.s $f0, $f14 +/* 120E68 802B7858 00000000 */ nop +/* 120E6C 802B785C 45020012 */ bc1fl .L802B78A8 +/* 120E70 802B7860 4600A507 */ neg.s $f20, $f20 +/* 120E74 802B7864 460E603E */ c.le.s $f12, $f14 +/* 120E78 802B7868 00000000 */ nop +/* 120E7C 802B786C 45020006 */ bc1fl .L802B7888 +/* 120E80 802B7870 4600A306 */ mov.s $f12, $f20 +/* 120E84 802B7874 0C0ADDE4 */ jal func_802B7790 +/* 120E88 802B7878 00000000 */ nop +/* 120E8C 802B787C 10000048 */ b .L802B79A0 +/* 120E90 802B7880 3043FFFF */ andi $v1, $v0, 0xffff +/* 120E94 802B7884 4600A306 */ mov.s $f12, $f20 +.L802B7888: +/* 120E98 802B7888 0C0ADDE4 */ jal func_802B7790 +/* 120E9C 802B788C 4600B386 */ mov.s $f14, $f22 +/* 120EA0 802B7890 240E4000 */ li $t6, 16384 +/* 120EA4 802B7894 01C21823 */ subu $v1, $t6, $v0 +/* 120EA8 802B7898 306FFFFF */ andi $t7, $v1, 0xffff +/* 120EAC 802B789C 10000040 */ b .L802B79A0 +/* 120EB0 802B78A0 01E01825 */ move $v1, $t7 +/* 120EB4 802B78A4 4600A507 */ neg.s $f20, $f20 +.L802B78A8: +/* 120EB8 802B78A8 4616A03C */ c.lt.s $f20, $f22 +/* 120EBC 802B78AC 00000000 */ nop +/* 120EC0 802B78B0 45020009 */ bc1fl .L802B78D8 +/* 120EC4 802B78B4 4600B306 */ mov.s $f12, $f22 +/* 120EC8 802B78B8 4600A306 */ mov.s $f12, $f20 +/* 120ECC 802B78BC 0C0ADDE4 */ jal func_802B7790 +/* 120ED0 802B78C0 4600B386 */ mov.s $f14, $f22 +/* 120ED4 802B78C4 24434000 */ addiu $v1, $v0, 0x4000 +/* 120ED8 802B78C8 3078FFFF */ andi $t8, $v1, 0xffff +/* 120EDC 802B78CC 10000034 */ b .L802B79A0 +/* 120EE0 802B78D0 03001825 */ move $v1, $t8 +/* 120EE4 802B78D4 4600B306 */ mov.s $f12, $f22 +.L802B78D8: +/* 120EE8 802B78D8 0C0ADDE4 */ jal func_802B7790 +/* 120EEC 802B78DC 4600A386 */ mov.s $f14, $f20 +/* 120EF0 802B78E0 34198000 */ li $t9, 32768 +/* 120EF4 802B78E4 03221823 */ subu $v1, $t9, $v0 +/* 120EF8 802B78E8 3068FFFF */ andi $t0, $v1, 0xffff +/* 120EFC 802B78EC 1000002C */ b .L802B79A0 +/* 120F00 802B78F0 01001825 */ move $v1, $t0 +.L802B78F4: +/* 120F04 802B78F4 4600A03C */ c.lt.s $f20, $f0 +/* 120F08 802B78F8 4600B587 */ neg.s $f22, $f22 +/* 120F0C 802B78FC 45020017 */ bc1fl .L802B795C +/* 120F10 802B7900 4616A03C */ c.lt.s $f20, $f22 +/* 120F14 802B7904 4600A507 */ neg.s $f20, $f20 +/* 120F18 802B7908 4614B03E */ c.le.s $f22, $f20 +/* 120F1C 802B790C 00000000 */ nop +/* 120F20 802B7910 4502000A */ bc1fl .L802B793C +/* 120F24 802B7914 4600A306 */ mov.s $f12, $f20 +/* 120F28 802B7918 4600B306 */ mov.s $f12, $f22 +/* 120F2C 802B791C 0C0ADDE4 */ jal func_802B7790 +/* 120F30 802B7920 4600A386 */ mov.s $f14, $f20 +/* 120F34 802B7924 34018000 */ li $at, 32768 +/* 120F38 802B7928 00411821 */ addu $v1, $v0, $at +/* 120F3C 802B792C 3069FFFF */ andi $t1, $v1, 0xffff +/* 120F40 802B7930 1000001B */ b .L802B79A0 +/* 120F44 802B7934 01201825 */ move $v1, $t1 +/* 120F48 802B7938 4600A306 */ mov.s $f12, $f20 +.L802B793C: +/* 120F4C 802B793C 0C0ADDE4 */ jal func_802B7790 +/* 120F50 802B7940 4600B386 */ mov.s $f14, $f22 +/* 120F54 802B7944 340AC000 */ li $t2, 49152 +/* 120F58 802B7948 01421823 */ subu $v1, $t2, $v0 +/* 120F5C 802B794C 306BFFFF */ andi $t3, $v1, 0xffff +/* 120F60 802B7950 10000013 */ b .L802B79A0 +/* 120F64 802B7954 01601825 */ move $v1, $t3 +/* 120F68 802B7958 4616A03C */ c.lt.s $f20, $f22 +.L802B795C: +/* 120F6C 802B795C 00000000 */ nop +/* 120F70 802B7960 4502000A */ bc1fl .L802B798C +/* 120F74 802B7964 4600B306 */ mov.s $f12, $f22 +/* 120F78 802B7968 4600A306 */ mov.s $f12, $f20 +/* 120F7C 802B796C 0C0ADDE4 */ jal func_802B7790 +/* 120F80 802B7970 4600B386 */ mov.s $f14, $f22 +/* 120F84 802B7974 3401C000 */ li $at, 49152 +/* 120F88 802B7978 00411821 */ addu $v1, $v0, $at +/* 120F8C 802B797C 306CFFFF */ andi $t4, $v1, 0xffff +/* 120F90 802B7980 10000007 */ b .L802B79A0 +/* 120F94 802B7984 01801825 */ move $v1, $t4 +/* 120F98 802B7988 4600B306 */ mov.s $f12, $f22 +.L802B798C: +/* 120F9C 802B798C 0C0ADDE4 */ jal func_802B7790 +/* 120FA0 802B7990 4600A386 */ mov.s $f14, $f20 +/* 120FA4 802B7994 00021823 */ negu $v1, $v0 +/* 120FA8 802B7998 306DFFFF */ andi $t5, $v1, 0xffff +/* 120FAC 802B799C 01A01825 */ move $v1, $t5 +.L802B79A0: +/* 120FB0 802B79A0 8FBF0024 */ lw $ra, 0x24($sp) +/* 120FB4 802B79A4 D7B40010 */ ldc1 $f20, 0x10($sp) +/* 120FB8 802B79A8 D7B60018 */ ldc1 $f22, 0x18($sp) +/* 120FBC 802B79AC 27BD0028 */ addiu $sp, $sp, 0x28 +/* 120FC0 802B79B0 03E00008 */ jr $ra +/* 120FC4 802B79B4 00601025 */ move $v0, $v1 + +glabel func_802B79B8 +/* 120FC8 802B79B8 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 120FCC 802B79BC AFBF0014 */ sw $ra, 0x14($sp) +/* 120FD0 802B79C0 0C0ADE0C */ jal func_802B7830 +/* 120FD4 802B79C4 00000000 */ nop +/* 120FD8 802B79C8 44822000 */ mtc1 $v0, $f4 +/* 120FDC 802B79CC 8FBF0014 */ lw $ra, 0x14($sp) +/* 120FE0 802B79D0 04410005 */ bgez $v0, .L802B79E8 +/* 120FE4 802B79D4 46802020 */ cvt.s.w $f0, $f4 +/* 120FE8 802B79D8 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 120FEC 802B79DC 44813000 */ mtc1 $at, $f6 +/* 120FF0 802B79E0 00000000 */ nop +/* 120FF4 802B79E4 46060000 */ add.s $f0, $f0, $f6 +.L802B79E8: +/* 120FF8 802B79E8 03E00008 */ jr $ra +/* 120FFC 802B79EC 27BD0018 */ addiu $sp, $sp, 0x18 + +/* 121000 802B79F0 46007021 */ cvt.d.s $f0, $f14 +/* 121004 802B79F4 460E6403 */ div.s $f16, $f12, $f14 +/* 121008 802B79F8 00001025 */ move $v0, $zero +/* 12100C 802B79FC 46200085 */ abs.d $f2, $f0 +/* 121010 802B7A00 46006021 */ cvt.d.s $f0, $f12 +/* 121014 802B7A04 46200005 */ abs.d $f0, $f0 +/* 121018 802B7A08 4620103C */ c.lt.d $f2, $f0 +/* 12101C 802B7A0C 00000000 */ nop +/* 121020 802B7A10 45000002 */ bc1f .L802B7A1C +/* 121024 802B7A14 00000000 */ nop +/* 121028 802B7A18 24020001 */ li $v0, 1 +.L802B7A1C: +/* 12102C 802B7A1C 10400002 */ beqz $v0, .L802B7A28 +/* 121030 802B7A20 00000000 */ nop +/* 121034 802B7A24 460C7403 */ div.s $f16, $f14, $f12 +.L802B7A28: +/* 121038 802B7A28 46108002 */ mul.s $f0, $f16, $f16 +/* 12103C 802B7A2C 3C01802C */ lui $at, %hi(D_802B9FDC) # $at, 0x802c +/* 121040 802B7A30 C4249FDC */ lwc1 $f4, %lo(D_802B9FDC)($at) +/* 121044 802B7A34 3C01802C */ lui $at, %hi(D_802B9FE0) # $at, 0x802c +/* 121048 802B7A38 C4269FE0 */ lwc1 $f6, %lo(D_802B9FE0)($at) +/* 12104C 802B7A3C 3C01802C */ lui $at, %hi(D_802B9FE4) # $at, 0x802c +/* 121050 802B7A40 46000082 */ mul.s $f2, $f0, $f0 +/* 121054 802B7A44 00000000 */ nop +/* 121058 802B7A48 46060202 */ mul.s $f8, $f0, $f6 +/* 12105C 802B7A4C C4269FE4 */ lwc1 $f6, %lo(D_802B9FE4)($at) +/* 121060 802B7A50 3C01802C */ lui $at, %hi(D_802B9FE8) # $at, 0x802c +/* 121064 802B7A54 46082280 */ add.s $f10, $f4, $f8 +/* 121068 802B7A58 C4289FE8 */ lwc1 $f8, %lo(D_802B9FE8)($at) +/* 12106C 802B7A5C 3C01802C */ lui $at, %hi(D_802B9FEC) # $at, 0x802c +/* 121070 802B7A60 460A1482 */ mul.s $f18, $f2, $f10 +/* 121074 802B7A64 46069100 */ add.s $f4, $f18, $f6 +/* 121078 802B7A68 46080282 */ mul.s $f10, $f0, $f8 +/* 12107C 802B7A6C 460A2480 */ add.s $f18, $f4, $f10 +/* 121080 802B7A70 46021182 */ mul.s $f6, $f2, $f2 +/* 121084 802B7A74 C4249FEC */ lwc1 $f4, %lo(D_802B9FEC)($at) +/* 121088 802B7A78 3C01802C */ lui $at, %hi(D_802B9FF0) # $at, 0x802c +/* 12108C 802B7A7C C42A9FF0 */ lwc1 $f10, %lo(D_802B9FF0)($at) +/* 121090 802B7A80 3C01802C */ lui $at, %hi(D_802B9FF4) # $at, 0x802c +/* 121094 802B7A84 46069202 */ mul.s $f8, $f18, $f6 +/* 121098 802B7A88 00000000 */ nop +/* 12109C 802B7A8C 460A0482 */ mul.s $f18, $f0, $f10 +/* 1210A0 802B7A90 46122180 */ add.s $f6, $f4, $f18 +/* 1210A4 802B7A94 C4329FF4 */ lwc1 $f18, %lo(D_802B9FF4)($at) +/* 1210A8 802B7A98 3C01802C */ lui $at, %hi(D_802B9FF8) # $at, 0x802c +/* 1210AC 802B7A9C 46023282 */ mul.s $f10, $f6, $f2 +/* 1210B0 802B7AA0 460A4100 */ add.s $f4, $f8, $f10 +/* 1210B4 802B7AA4 C4289FF8 */ lwc1 $f8, %lo(D_802B9FF8)($at) +/* 1210B8 802B7AA8 46080282 */ mul.s $f10, $f0, $f8 +/* 1210BC 802B7AAC 46122180 */ add.s $f6, $f4, $f18 +/* 1210C0 802B7AB0 46008482 */ mul.s $f18, $f16, $f0 +/* 1210C4 802B7AB4 460A3100 */ add.s $f4, $f6, $f10 +/* 1210C8 802B7AB8 46122202 */ mul.s $f8, $f4, $f18 +/* 1210CC 802B7ABC 10400013 */ beqz $v0, .L802B7B0C +/* 1210D0 802B7AC0 46088400 */ add.s $f16, $f16, $f8 +/* 1210D4 802B7AC4 44800000 */ mtc1 $zero, $f0 +/* 1210D8 802B7AC8 3C01802C */ lui $at, %hi(D_802BA008) +/* 1210DC 802B7ACC 4600603C */ c.lt.s $f12, $f0 +/* 1210E0 802B7AD0 00000000 */ nop +/* 1210E4 802B7AD4 45000008 */ bc1f .L802B7AF8 +/* 1210E8 802B7AD8 00000000 */ nop +/* 1210EC 802B7ADC 3C01802C */ lui $at, %hi(D_802BA000) +/* 1210F0 802B7AE0 D422A000 */ ldc1 $f2, %lo(D_802BA000)($at) +/* 1210F4 802B7AE4 460081A1 */ cvt.d.s $f6, $f16 +/* 1210F8 802B7AE8 46201087 */ neg.d $f2, $f2 +/* 1210FC 802B7AEC 46261281 */ sub.d $f10, $f2, $f6 +/* 121100 802B7AF0 03E00008 */ jr $ra +/* 121104 802B7AF4 46205020 */ cvt.s.d $f0, $f10 + +.L802B7AF8: +/* 121108 802B7AF8 D422A008 */ ldc1 $f2, %lo(D_802BA008)($at) +/* 12110C 802B7AFC 460081A1 */ cvt.d.s $f6, $f16 +/* 121110 802B7B00 46261281 */ sub.d $f10, $f2, $f6 +/* 121114 802B7B04 03E00008 */ jr $ra +/* 121118 802B7B08 46205020 */ cvt.s.d $f0, $f10 + +.L802B7B0C: +/* 12111C 802B7B0C 44800000 */ mtc1 $zero, $f0 +/* 121120 802B7B10 00000000 */ nop +/* 121124 802B7B14 460E003E */ c.le.s $f0, $f14 +/* 121128 802B7B18 00000000 */ nop +/* 12112C 802B7B1C 45020004 */ bc1fl .L802B7B30 +/* 121130 802B7B20 4600603C */ c.lt.s $f12, $f0 +/* 121134 802B7B24 03E00008 */ jr $ra +/* 121138 802B7B28 46008006 */ mov.s $f0, $f16 + +/* 12113C 802B7B2C 4600603C */ c.lt.s $f12, $f0 +.L802B7B30: +/* 121140 802B7B30 3C01802C */ lui $at, %hi(D_802BA010) # $at, 0x802c +/* 121144 802B7B34 C42EA010 */ lwc1 $f14, %lo(D_802BA010)($at) +/* 121148 802B7B38 45000002 */ bc1f .L802B7B44 +/* 12114C 802B7B3C 460E8080 */ add.s $f2, $f16, $f14 +/* 121150 802B7B40 460E8081 */ sub.s $f2, $f16, $f14 +.L802B7B44: +/* 121154 802B7B44 46001006 */ mov.s $f0, $f2 +/* 121158 802B7B48 03E00008 */ jr $ra +/* 12115C 802B7B4C 00000000 */ nop + +/* 121160 802B7B50 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 121164 802B7B54 AFBF0014 */ sw $ra, 0x14($sp) +/* 121168 802B7B58 0C0ADE6E */ jal func_802B79B8 +/* 12116C 802B7B5C 00000000 */ nop +/* 121170 802B7B60 3C014700 */ li $at, 0x47000000 # 32768.000000 +/* 121174 802B7B64 44812000 */ mtc1 $at, $f4 +/* 121178 802B7B68 3C01802C */ lui $at, %hi(D_802BA018) +/* 12117C 802B7B6C D42AA018 */ ldc1 $f10, %lo(D_802BA018)($at) +/* 121180 802B7B70 46040182 */ mul.s $f6, $f0, $f4 +/* 121184 802B7B74 24020001 */ li $v0, 1 +/* 121188 802B7B78 8FBF0014 */ lw $ra, 0x14($sp) +/* 12118C 802B7B7C 27BD0018 */ addiu $sp, $sp, 0x18 +/* 121190 802B7B80 3C0141E0 */ li $at, 0x41E00000 # 28.000000 +/* 121194 802B7B84 46003221 */ cvt.d.s $f8, $f6 +/* 121198 802B7B88 462A4403 */ div.d $f16, $f8, $f10 +/* 12119C 802B7B8C 444EF800 */ cfc1 $t6, $31 +/* 1211A0 802B7B90 44C2F800 */ ctc1 $v0, $31 +/* 1211A4 802B7B94 00000000 */ nop +/* 1211A8 802B7B98 462084A4 */ cvt.w.d $f18, $f16 +/* 1211AC 802B7B9C 4442F800 */ cfc1 $v0, $31 +/* 1211B0 802B7BA0 00000000 */ nop +/* 1211B4 802B7BA4 30420078 */ andi $v0, $v0, 0x78 +/* 1211B8 802B7BA8 50400014 */ beql $v0, $zero, .L802B7BFC +/* 1211BC 802B7BAC 44029000 */ mfc1 $v0, $f18 +/* 1211C0 802B7BB0 44819800 */ mtc1 $at, $f19 +/* 1211C4 802B7BB4 44809000 */ mtc1 $zero, $f18 +/* 1211C8 802B7BB8 24020001 */ li $v0, 1 +/* 1211CC 802B7BBC 46328481 */ sub.d $f18, $f16, $f18 +/* 1211D0 802B7BC0 44C2F800 */ ctc1 $v0, $31 +/* 1211D4 802B7BC4 00000000 */ nop +/* 1211D8 802B7BC8 462094A4 */ cvt.w.d $f18, $f18 +/* 1211DC 802B7BCC 4442F800 */ cfc1 $v0, $31 +/* 1211E0 802B7BD0 00000000 */ nop +/* 1211E4 802B7BD4 30420078 */ andi $v0, $v0, 0x78 +/* 1211E8 802B7BD8 14400005 */ bnez $v0, .L802B7BF0 +/* 1211EC 802B7BDC 00000000 */ nop +/* 1211F0 802B7BE0 44029000 */ mfc1 $v0, $f18 +/* 1211F4 802B7BE4 3C018000 */ lui $at, 0x8000 +/* 1211F8 802B7BE8 10000007 */ b .L802B7C08 +/* 1211FC 802B7BEC 00411025 */ or $v0, $v0, $at +.L802B7BF0: +/* 121200 802B7BF0 10000005 */ b .L802B7C08 +/* 121204 802B7BF4 2402FFFF */ li $v0, -1 +/* 121208 802B7BF8 44029000 */ mfc1 $v0, $f18 +.L802B7BFC: +/* 12120C 802B7BFC 00000000 */ nop +/* 121210 802B7C00 0440FFFB */ bltz $v0, .L802B7BF0 +/* 121214 802B7C04 00000000 */ nop +.L802B7C08: +/* 121218 802B7C08 44CEF800 */ ctc1 $t6, $31 +/* 12121C 802B7C0C 304FFFFF */ andi $t7, $v0, 0xffff +/* 121220 802B7C10 03E00008 */ jr $ra +/* 121224 802B7C14 01E01025 */ move $v0, $t7 + +/* 121228 802B7C18 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 12122C 802B7C1C 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 121230 802B7C20 AFBF0014 */ sw $ra, 0x14($sp) +/* 121234 802B7C24 44817000 */ mtc1 $at, $f14 +/* 121238 802B7C28 0C0ADE6E */ jal func_802B79B8 +/* 12123C 802B7C2C 00000000 */ nop +/* 121240 802B7C30 8FBF0014 */ lw $ra, 0x14($sp) +/* 121244 802B7C34 27BD0018 */ addiu $sp, $sp, 0x18 +/* 121248 802B7C38 03E00008 */ jr $ra +/* 12124C 802B7C3C 00000000 */ nop + +glabel func_802B7C40 +/* 121250 802B7C40 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 121254 802B7C44 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 121258 802B7C48 AFBF0014 */ sw $ra, 0x14($sp) +/* 12125C 802B7C4C 44817000 */ mtc1 $at, $f14 +/* 121260 802B7C50 0C0ADE0C */ jal func_802B7830 +/* 121264 802B7C54 00000000 */ nop +/* 121268 802B7C58 8FBF0014 */ lw $ra, 0x14($sp) +/* 12126C 802B7C5C 00027400 */ sll $t6, $v0, 0x10 +/* 121270 802B7C60 000E1403 */ sra $v0, $t6, 0x10 +/* 121274 802B7C64 03E00008 */ jr $ra +/* 121278 802B7C68 27BD0018 */ addiu $sp, $sp, 0x18 + +/* 12127C 802B7C6C 460C6182 */ mul.s $f6, $f12, $f12 +/* 121280 802B7C70 3C013FF0 */ li $at, 0x3FF00000 # 1.875000 +/* 121284 802B7C74 44812800 */ mtc1 $at, $f5 +/* 121288 802B7C78 44802000 */ mtc1 $zero, $f4 +/* 12128C 802B7C7C 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 121290 802B7C80 AFBF0014 */ sw $ra, 0x14($sp) +/* 121294 802B7C84 46003221 */ cvt.d.s $f8, $f6 +/* 121298 802B7C88 46282281 */ sub.d $f10, $f4, $f8 +/* 12129C 802B7C8C 46205020 */ cvt.s.d $f0, $f10 +/* 1212A0 802B7C90 0C0ADE6E */ jal func_802B79B8 +/* 1212A4 802B7C94 46000384 */ sqrt.s $f14, $f0 +/* 1212A8 802B7C98 8FBF0014 */ lw $ra, 0x14($sp) +/* 1212AC 802B7C9C 27BD0018 */ addiu $sp, $sp, 0x18 +/* 1212B0 802B7CA0 03E00008 */ jr $ra +/* 1212B4 802B7CA4 00000000 */ nop + +glabel func_802B7CA8 +/* 1212B8 802B7CA8 460C6182 */ mul.s $f6, $f12, $f12 +/* 1212BC 802B7CAC 3C013FF0 */ li $at, 0x3FF00000 # 1.875000 +/* 1212C0 802B7CB0 44812800 */ mtc1 $at, $f5 +/* 1212C4 802B7CB4 44802000 */ mtc1 $zero, $f4 +/* 1212C8 802B7CB8 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 1212CC 802B7CBC AFBF0014 */ sw $ra, 0x14($sp) +/* 1212D0 802B7CC0 46003221 */ cvt.d.s $f8, $f6 +/* 1212D4 802B7CC4 46282281 */ sub.d $f10, $f4, $f8 +/* 1212D8 802B7CC8 46205020 */ cvt.s.d $f0, $f10 +/* 1212DC 802B7CCC 0C0ADE0C */ jal func_802B7830 +/* 1212E0 802B7CD0 46000384 */ sqrt.s $f14, $f0 +/* 1212E4 802B7CD4 8FBF0014 */ lw $ra, 0x14($sp) +/* 1212E8 802B7CD8 00027400 */ sll $t6, $v0, 0x10 +/* 1212EC 802B7CDC 000E1403 */ sra $v0, $t6, 0x10 +/* 1212F0 802B7CE0 03E00008 */ jr $ra +/* 1212F4 802B7CE4 27BD0018 */ addiu $sp, $sp, 0x18 + +glabel func_802B7CE8 +/* 1212F8 802B7CE8 460C6182 */ mul.s $f6, $f12, $f12 +/* 1212FC 802B7CEC 3C013FF0 */ li $at, 0x3FF00000 # 1.875000 +/* 121300 802B7CF0 44812800 */ mtc1 $at, $f5 +/* 121304 802B7CF4 44802000 */ mtc1 $zero, $f4 +/* 121308 802B7CF8 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 12130C 802B7CFC AFBF0014 */ sw $ra, 0x14($sp) +/* 121310 802B7D00 46006386 */ mov.s $f14, $f12 +/* 121314 802B7D04 46003221 */ cvt.d.s $f8, $f6 +/* 121318 802B7D08 46282281 */ sub.d $f10, $f4, $f8 +/* 12131C 802B7D0C 46205020 */ cvt.s.d $f0, $f10 +/* 121320 802B7D10 0C0ADE6E */ jal func_802B79B8 +/* 121324 802B7D14 46000304 */ sqrt.s $f12, $f0 +/* 121328 802B7D18 8FBF0014 */ lw $ra, 0x14($sp) +/* 12132C 802B7D1C 27BD0018 */ addiu $sp, $sp, 0x18 +/* 121330 802B7D20 03E00008 */ jr $ra +/* 121334 802B7D24 00000000 */ nop + +/* 121338 802B7D28 460C6182 */ mul.s $f6, $f12, $f12 +/* 12133C 802B7D2C 3C013FF0 */ li $at, 0x3FF00000 # 1.875000 +/* 121340 802B7D30 44812800 */ mtc1 $at, $f5 +/* 121344 802B7D34 44802000 */ mtc1 $zero, $f4 +/* 121348 802B7D38 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 12134C 802B7D3C AFBF0014 */ sw $ra, 0x14($sp) +/* 121350 802B7D40 46006386 */ mov.s $f14, $f12 +/* 121354 802B7D44 46003221 */ cvt.d.s $f8, $f6 +/* 121358 802B7D48 46282281 */ sub.d $f10, $f4, $f8 +/* 12135C 802B7D4C 46205020 */ cvt.s.d $f0, $f10 +/* 121360 802B7D50 0C0ADE6E */ jal func_802B79B8 +/* 121364 802B7D54 46000304 */ sqrt.s $f12, $f0 +/* 121368 802B7D58 3C014700 */ li $at, 0x47000000 # 32768.000000 +/* 12136C 802B7D5C 44818000 */ mtc1 $at, $f16 +/* 121370 802B7D60 3C01802C */ lui $at, %hi(D_802BA020) +/* 121374 802B7D64 D424A020 */ ldc1 $f4, %lo(D_802BA020)($at) +/* 121378 802B7D68 46100482 */ mul.s $f18, $f0, $f16 +/* 12137C 802B7D6C 8FBF0014 */ lw $ra, 0x14($sp) +/* 121380 802B7D70 27BD0018 */ addiu $sp, $sp, 0x18 +/* 121384 802B7D74 460091A1 */ cvt.d.s $f6, $f18 +/* 121388 802B7D78 46243203 */ div.d $f8, $f6, $f4 +/* 12138C 802B7D7C 4620428D */ trunc.w.d $f10, $f8 +/* 121390 802B7D80 44025000 */ mfc1 $v0, $f10 +/* 121394 802B7D84 00000000 */ nop +/* 121398 802B7D88 00027C00 */ sll $t7, $v0, 0x10 +/* 12139C 802B7D8C 03E00008 */ jr $ra +/* 1213A0 802B7D90 000F1403 */ sra $v0, $t7, 0x10 + +glabel random_u16 +/* 1213A4 802B7D94 3C06802C */ lui $a2, %hi(D_802BA290) # $a2, 0x802c +/* 1213A8 802B7D98 24C6A290 */ addiu $a2, %lo(D_802BA290) # addiu $a2, $a2, -0x5d70 +/* 1213AC 802B7D9C 94C20000 */ lhu $v0, ($a2) +/* 1213B0 802B7DA0 2401560A */ li $at, 22026 +/* 1213B4 802B7DA4 54410004 */ bnel $v0, $at, .L802B7DB8 +/* 1213B8 802B7DA8 00027A00 */ sll $t7, $v0, 8 +/* 1213BC 802B7DAC A4C00000 */ sh $zero, ($a2) +/* 1213C0 802B7DB0 3002FFFF */ andi $v0, $zero, 0xffff +/* 1213C4 802B7DB4 00027A00 */ sll $t7, $v0, 8 +.L802B7DB8: +/* 1213C8 802B7DB8 01E2C026 */ xor $t8, $t7, $v0 +/* 1213CC 802B7DBC 330500FF */ andi $a1, $t8, 0xff +/* 1213D0 802B7DC0 3308FF00 */ andi $t0, $t8, 0xff00 +/* 1213D4 802B7DC4 00084A03 */ sra $t1, $t0, 8 +/* 1213D8 802B7DC8 0005CA00 */ sll $t9, $a1, 8 +/* 1213DC 802B7DCC 03296021 */ addu $t4, $t9, $t1 +/* 1213E0 802B7DD0 00055840 */ sll $t3, $a1, 1 +/* 1213E4 802B7DD4 016C1826 */ xor $v1, $t3, $t4 +/* 1213E8 802B7DD8 306DFFFF */ andi $t5, $v1, 0xffff +/* 1213EC 802B7DDC 31AE0001 */ andi $t6, $t5, 1 +/* 1213F0 802B7DE0 A4CC0000 */ sh $t4, ($a2) +/* 1213F4 802B7DE4 15C0000C */ bnez $t6, .L802B7E18 +/* 1213F8 802B7DE8 01A02025 */ move $a0, $t5 +/* 1213FC 802B7DEC 000D1043 */ sra $v0, $t5, 1 +/* 121400 802B7DF0 384FFF80 */ xori $t7, $v0, 0xff80 +/* 121404 802B7DF4 31E2FFFF */ andi $v0, $t7, 0xffff +/* 121408 802B7DF8 3401AA55 */ li $at, 43605 +/* 12140C 802B7DFC 14410003 */ bne $v0, $at, .L802B7E0C +/* 121410 802B7E00 38481FF4 */ xori $t0, $v0, 0x1ff4 +/* 121414 802B7E04 10000009 */ b .L802B7E2C +/* 121418 802B7E08 A4C00000 */ sh $zero, ($a2) +.L802B7E0C: +/* 12141C 802B7E0C 3C01802C */ lui $at, %hi(D_802BA290) # $at, 0x802c +/* 121420 802B7E10 10000006 */ b .L802B7E2C +/* 121424 802B7E14 A428A290 */ sh $t0, %lo(D_802BA290)($at) +.L802B7E18: +/* 121428 802B7E18 0004C843 */ sra $t9, $a0, 1 +/* 12142C 802B7E1C 3B2AFF80 */ xori $t2, $t9, 0xff80 +/* 121430 802B7E20 394B8180 */ xori $t3, $t2, 0x8180 +/* 121434 802B7E24 3C01802C */ lui $at, %hi(D_802BA290) # $at, 0x802c +/* 121438 802B7E28 A42BA290 */ sh $t3, %lo(D_802BA290)($at) +.L802B7E2C: +/* 12143C 802B7E2C 03E00008 */ jr $ra +/* 121440 802B7E30 94C20000 */ lhu $v0, ($a2) + +glabel random_int +/* 121444 802B7E34 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 121448 802B7E38 AFBF0014 */ sw $ra, 0x14($sp) +/* 12144C 802B7E3C 0C0ADF65 */ jal random_u16 +/* 121450 802B7E40 AFA40018 */ sw $a0, 0x18($sp) +/* 121454 802B7E44 44822000 */ mtc1 $v0, $f4 +/* 121458 802B7E48 97AE001A */ lhu $t6, 0x1a($sp) +/* 12145C 802B7E4C 04410005 */ bgez $v0, .L802B7E64 +/* 121460 802B7E50 468021A0 */ cvt.s.w $f6, $f4 +/* 121464 802B7E54 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 121468 802B7E58 44814000 */ mtc1 $at, $f8 +/* 12146C 802B7E5C 00000000 */ nop +/* 121470 802B7E60 46083180 */ add.s $f6, $f6, $f8 +.L802B7E64: +/* 121474 802B7E64 3C01802C */ lui $at, %hi(D_802BA028) +/* 121478 802B7E68 D430A028 */ ldc1 $f16, %lo(D_802BA028)($at) +/* 12147C 802B7E6C 448E2000 */ mtc1 $t6, $f4 +/* 121480 802B7E70 460032A1 */ cvt.d.s $f10, $f6 +/* 121484 802B7E74 8FBF0014 */ lw $ra, 0x14($sp) +/* 121488 802B7E78 46305483 */ div.d $f18, $f10, $f16 +/* 12148C 802B7E7C 05C10006 */ bgez $t6, .L802B7E98 +/* 121490 802B7E80 46802221 */ cvt.d.w $f8, $f4 +/* 121494 802B7E84 3C0141F0 */ li $at, 0x41F00000 # 30.000000 +/* 121498 802B7E88 44813800 */ mtc1 $at, $f7 +/* 12149C 802B7E8C 44803000 */ mtc1 $zero, $f6 +/* 1214A0 802B7E90 00000000 */ nop +/* 1214A4 802B7E94 46264200 */ add.d $f8, $f8, $f6 +.L802B7E98: +/* 1214A8 802B7E98 46289282 */ mul.d $f10, $f18, $f8 +/* 1214AC 802B7E9C 24020001 */ li $v0, 1 +/* 1214B0 802B7EA0 27BD0018 */ addiu $sp, $sp, 0x18 +/* 1214B4 802B7EA4 3C0141E0 */ li $at, 0x41E00000 # 28.000000 +/* 1214B8 802B7EA8 444FF800 */ cfc1 $t7, $31 +/* 1214BC 802B7EAC 44C2F800 */ ctc1 $v0, $31 +/* 1214C0 802B7EB0 00000000 */ nop +/* 1214C4 802B7EB4 46205424 */ cvt.w.d $f16, $f10 +/* 1214C8 802B7EB8 4442F800 */ cfc1 $v0, $31 +/* 1214CC 802B7EBC 00000000 */ nop +/* 1214D0 802B7EC0 30420078 */ andi $v0, $v0, 0x78 +/* 1214D4 802B7EC4 50400014 */ beql $v0, $zero, .L802B7F18 +/* 1214D8 802B7EC8 44028000 */ mfc1 $v0, $f16 +/* 1214DC 802B7ECC 44818800 */ mtc1 $at, $f17 +/* 1214E0 802B7ED0 44808000 */ mtc1 $zero, $f16 +/* 1214E4 802B7ED4 24020001 */ li $v0, 1 +/* 1214E8 802B7ED8 46305401 */ sub.d $f16, $f10, $f16 +/* 1214EC 802B7EDC 44C2F800 */ ctc1 $v0, $31 +/* 1214F0 802B7EE0 00000000 */ nop +/* 1214F4 802B7EE4 46208424 */ cvt.w.d $f16, $f16 +/* 1214F8 802B7EE8 4442F800 */ cfc1 $v0, $31 +/* 1214FC 802B7EEC 00000000 */ nop +/* 121500 802B7EF0 30420078 */ andi $v0, $v0, 0x78 +/* 121504 802B7EF4 14400005 */ bnez $v0, .L802B7F0C +/* 121508 802B7EF8 00000000 */ nop +/* 12150C 802B7EFC 44028000 */ mfc1 $v0, $f16 +/* 121510 802B7F00 3C018000 */ lui $at, 0x8000 +/* 121514 802B7F04 10000007 */ b .L802B7F24 +/* 121518 802B7F08 00411025 */ or $v0, $v0, $at +.L802B7F0C: +/* 12151C 802B7F0C 10000005 */ b .L802B7F24 +/* 121520 802B7F10 2402FFFF */ li $v0, -1 +/* 121524 802B7F14 44028000 */ mfc1 $v0, $f16 +.L802B7F18: +/* 121528 802B7F18 00000000 */ nop +/* 12152C 802B7F1C 0440FFFB */ bltz $v0, .L802B7F0C +/* 121530 802B7F20 00000000 */ nop +.L802B7F24: +/* 121534 802B7F24 44CFF800 */ ctc1 $t7, $31 +/* 121538 802B7F28 3058FFFF */ andi $t8, $v0, 0xffff +/* 12153C 802B7F2C 03E00008 */ jr $ra +/* 121540 802B7F30 03001025 */ move $v0, $t8 + +glabel func_802B7F34 +/* 121544 802B7F34 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 121548 802B7F38 E7AC0018 */ swc1 $f12, 0x18($sp) +/* 12154C 802B7F3C C7B20018 */ lwc1 $f18, 0x18($sp) +/* 121550 802B7F40 E7AE001C */ swc1 $f14, 0x1c($sp) +/* 121554 802B7F44 C7B0001C */ lwc1 $f16, 0x1c($sp) +/* 121558 802B7F48 AFA60020 */ sw $a2, 0x20($sp) +/* 12155C 802B7F4C C7AA0020 */ lwc1 $f10, 0x20($sp) +/* 121560 802B7F50 AFA70024 */ sw $a3, 0x24($sp) +/* 121564 802B7F54 C7A80024 */ lwc1 $f8, 0x24($sp) +/* 121568 802B7F58 46125301 */ sub.s $f12, $f10, $f18 +/* 12156C 802B7F5C AFBF0014 */ sw $ra, 0x14($sp) +/* 121570 802B7F60 0C0ADE0C */ jal func_802B7830 +/* 121574 802B7F64 46104381 */ sub.s $f14, $f8, $f16 +/* 121578 802B7F68 8FBF0014 */ lw $ra, 0x14($sp) +/* 12157C 802B7F6C 00027400 */ sll $t6, $v0, 0x10 +/* 121580 802B7F70 000E1403 */ sra $v0, $t6, 0x10 +/* 121584 802B7F74 03E00008 */ jr $ra +/* 121588 802B7F78 27BD0018 */ addiu $sp, $sp, 0x18 + +glabel func_802B7F7C +/* 12158C 802B7F7C 27BDFFD0 */ addiu $sp, $sp, -0x30 +/* 121590 802B7F80 AFBF0014 */ sw $ra, 0x14($sp) +/* 121594 802B7F84 AFA60038 */ sw $a2, 0x38($sp) +/* 121598 802B7F88 C4840004 */ lwc1 $f4, 4($a0) +/* 12159C 802B7F8C C48E0000 */ lwc1 $f14, ($a0) +/* 1215A0 802B7F90 E7A40028 */ swc1 $f4, 0x28($sp) +/* 1215A4 802B7F94 C4A60004 */ lwc1 $f6, 4($a1) +/* 1215A8 802B7F98 C48C0008 */ lwc1 $f12, 8($a0) +/* 1215AC 802B7F9C C4A20000 */ lwc1 $f2, ($a1) +/* 1215B0 802B7FA0 E7A6001C */ swc1 $f6, 0x1c($sp) +/* 1215B4 802B7FA4 C4A00008 */ lwc1 $f0, 8($a1) +/* 1215B8 802B7FA8 44071000 */ mfc1 $a3, $f2 +/* 1215BC 802B7FAC E7AE002C */ swc1 $f14, 0x2c($sp) +/* 1215C0 802B7FB0 44060000 */ mfc1 $a2, $f0 +/* 1215C4 802B7FB4 E7AC0024 */ swc1 $f12, 0x24($sp) +/* 1215C8 802B7FB8 E7A20020 */ swc1 $f2, 0x20($sp) +/* 1215CC 802B7FBC 0C0ADFCD */ jal func_802B7F34 +/* 1215D0 802B7FC0 E7A00018 */ swc1 $f0, 0x18($sp) +/* 1215D4 802B7FC4 8FAE0038 */ lw $t6, 0x38($sp) +/* 1215D8 802B7FC8 C7A00018 */ lwc1 $f0, 0x18($sp) +/* 1215DC 802B7FCC A5C20002 */ sh $v0, 2($t6) +/* 1215E0 802B7FD0 44070000 */ mfc1 $a3, $f0 +/* 1215E4 802B7FD4 8FA6001C */ lw $a2, 0x1c($sp) +/* 1215E8 802B7FD8 C7AE0024 */ lwc1 $f14, 0x24($sp) +/* 1215EC 802B7FDC 0C0ADFCD */ jal func_802B7F34 +/* 1215F0 802B7FE0 C7AC0028 */ lwc1 $f12, 0x28($sp) +/* 1215F4 802B7FE4 8FAF0038 */ lw $t7, 0x38($sp) +/* 1215F8 802B7FE8 A5E20000 */ sh $v0, ($t7) +/* 1215FC 802B7FEC 8FA7001C */ lw $a3, 0x1c($sp) +/* 121600 802B7FF0 8FA60020 */ lw $a2, 0x20($sp) +/* 121604 802B7FF4 C7AE0028 */ lwc1 $f14, 0x28($sp) +/* 121608 802B7FF8 0C0ADFCD */ jal func_802B7F34 +/* 12160C 802B7FFC C7AC002C */ lwc1 $f12, 0x2c($sp) +/* 121610 802B8000 8FB80038 */ lw $t8, 0x38($sp) +/* 121614 802B8004 A7020004 */ sh $v0, 4($t8) +/* 121618 802B8008 8FBF0014 */ lw $ra, 0x14($sp) +/* 12161C 802B800C 27BD0030 */ addiu $sp, $sp, 0x30 +/* 121620 802B8010 03E00008 */ jr $ra +/* 121624 802B8014 00000000 */ nop + +glabel func_802B8018 +/* 121628 802B8018 308EFFFF */ andi $t6, $a0, 0xffff +/* 12162C 802B801C 000E7903 */ sra $t7, $t6, 4 +/* 121630 802B8020 000FC080 */ sll $t8, $t7, 2 +/* 121634 802B8024 3C01802C */ lui $at, %hi(D_802BA370) +/* 121638 802B8028 00380821 */ addu $at, $at, $t8 +/* 12163C 802B802C AFA40000 */ sw $a0, ($sp) +/* 121640 802B8030 03E00008 */ jr $ra +/* 121644 802B8034 C420A370 */ lwc1 $f0, %lo(D_802BA370)($at) + +glabel func_802B8038 +/* 121648 802B8038 308EFFFF */ andi $t6, $a0, 0xffff +/* 12164C 802B803C 000E7903 */ sra $t7, $t6, 4 +/* 121650 802B8040 000FC080 */ sll $t8, $t7, 2 +/* 121654 802B8044 3C01802C */ lui $at, %hi(D_802BB370) +/* 121658 802B8048 00380821 */ addu $at, $at, $t8 +/* 12165C 802B804C AFA40000 */ sw $a0, ($sp) +/* 121660 802B8050 03E00008 */ jr $ra +/* 121664 802B8054 C420B370 */ lwc1 $f0, %lo(D_802BB370)($at) + +glabel func_802B8058 +/* 121668 802B8058 3083FFFF */ andi $v1, $a0, 0xffff +/* 12166C 802B805C 30AFFFFF */ andi $t7, $a1, 0xffff +/* 121670 802B8060 AFA60008 */ sw $a2, 8($sp) +/* 121674 802B8064 30D8FFFF */ andi $t8, $a2, 0xffff +/* 121678 802B8068 01E3082A */ slt $at, $t7, $v1 +/* 12167C 802B806C 03003025 */ move $a2, $t8 +/* 121680 802B8070 AFA40000 */ sw $a0, ($sp) +/* 121684 802B8074 AFA50004 */ sw $a1, 4($sp) +/* 121688 802B8078 1020000B */ beqz $at, .L802B80A8 +/* 12168C 802B807C 01E01025 */ move $v0, $t7 +/* 121690 802B8080 01F8082A */ slt $at, $t7, $t8 +/* 121694 802B8084 14200003 */ bnez $at, .L802B8094 +/* 121698 802B8088 03002025 */ move $a0, $t8 +/* 12169C 802B808C 03E00008 */ jr $ra +/* 1216A0 802B8090 00001025 */ move $v0, $zero + +.L802B8094: +/* 1216A4 802B8094 0083082A */ slt $at, $a0, $v1 +/* 1216A8 802B8098 5420000B */ bnel $at, $zero, .L802B80C8 +/* 1216AC 802B809C 24020001 */ li $v0, 1 +/* 1216B0 802B80A0 03E00008 */ jr $ra +/* 1216B4 802B80A4 00001025 */ move $v0, $zero + +.L802B80A8: +/* 1216B8 802B80A8 0046082A */ slt $at, $v0, $a2 +/* 1216BC 802B80AC 14200005 */ bnez $at, .L802B80C4 +/* 1216C0 802B80B0 00C3082A */ slt $at, $a2, $v1 +/* 1216C4 802B80B4 54200004 */ bnel $at, $zero, .L802B80C8 +/* 1216C8 802B80B8 24020001 */ li $v0, 1 +/* 1216CC 802B80BC 03E00008 */ jr $ra +/* 1216D0 802B80C0 00001025 */ move $v0, $zero + +.L802B80C4: +/* 1216D4 802B80C4 24020001 */ li $v0, 1 +.L802B80C8: +/* 1216D8 802B80C8 03E00008 */ jr $ra +/* 1216DC 802B80CC 00000000 */ nop + +glabel func_802B80D0 +/* 1216E0 802B80D0 27BDFFA0 */ addiu $sp, $sp, -0x60 +/* 1216E4 802B80D4 AFBF001C */ sw $ra, 0x1c($sp) +/* 1216E8 802B80D8 F7B40010 */ sdc1 $f20, 0x10($sp) +/* 1216EC 802B80DC AFA60068 */ sw $a2, 0x68($sp) +/* 1216F0 802B80E0 C4860000 */ lwc1 $f6, ($a0) +/* 1216F4 802B80E4 C4A40000 */ lwc1 $f4, ($a1) +/* 1216F8 802B80E8 C7AC0074 */ lwc1 $f12, 0x74($sp) +/* 1216FC 802B80EC 44877000 */ mtc1 $a3, $f14 +/* 121700 802B80F0 46062001 */ sub.s $f0, $f4, $f6 +/* 121704 802B80F4 97A7006A */ lhu $a3, 0x6a($sp) +/* 121708 802B80F8 3C01BF80 */ li $at, 0xBF800000 # -1.000000 +/* 12170C 802B80FC 46000002 */ mul.s $f0, $f0, $f0 +/* 121710 802B8100 4600603C */ c.lt.s $f12, $f0 +/* 121714 802B8104 00000000 */ nop +/* 121718 802B8108 45020005 */ bc1fl .L802B8120 +/* 12171C 802B810C C4A80008 */ lwc1 $f8, 8($a1) +/* 121720 802B8110 44810000 */ mtc1 $at, $f0 +/* 121724 802B8114 100000BB */ b .L802B8404 +/* 121728 802B8118 8FBF001C */ lw $ra, 0x1c($sp) +/* 12172C 802B811C C4A80008 */ lwc1 $f8, 8($a1) +.L802B8120: +/* 121730 802B8120 C48A0008 */ lwc1 $f10, 8($a0) +/* 121734 802B8124 3C01BF80 */ li $at, 0xBF800000 # -1.000000 +/* 121738 802B8128 460A4081 */ sub.s $f2, $f8, $f10 +/* 12173C 802B812C 46021082 */ mul.s $f2, $f2, $f2 +/* 121740 802B8130 4602603C */ c.lt.s $f12, $f2 +/* 121744 802B8134 00000000 */ nop +/* 121748 802B8138 45020005 */ bc1fl .L802B8150 +/* 12174C 802B813C 46020500 */ add.s $f20, $f0, $f2 +/* 121750 802B8140 44810000 */ mtc1 $at, $f0 +/* 121754 802B8144 100000AF */ b .L802B8404 +/* 121758 802B8148 8FBF001C */ lw $ra, 0x1c($sp) +/* 12175C 802B814C 46020500 */ add.s $f20, $f0, $f2 +.L802B8150: +/* 121760 802B8150 460EA03C */ c.lt.s $f20, $f14 +/* 121764 802B8154 00000000 */ nop +/* 121768 802B8158 45020004 */ bc1fl .L802B816C +/* 12176C 802B815C 4614603C */ c.lt.s $f12, $f20 +/* 121770 802B8160 100000A7 */ b .L802B8400 +/* 121774 802B8164 4600A006 */ mov.s $f0, $f20 +/* 121778 802B8168 4614603C */ c.lt.s $f12, $f20 +.L802B816C: +/* 12177C 802B816C 3C01BF80 */ li $at, 0xBF800000 # -1.000000 +/* 121780 802B8170 45020005 */ bc1fl .L802B8188 +/* 121784 802B8174 A7A7006A */ sh $a3, 0x6a($sp) +/* 121788 802B8178 44810000 */ mtc1 $at, $f0 +/* 12178C 802B817C 100000A1 */ b .L802B8404 +/* 121790 802B8180 8FBF001C */ lw $ra, 0x1c($sp) +/* 121794 802B8184 A7A7006A */ sh $a3, 0x6a($sp) +.L802B8188: +/* 121798 802B8188 0C0AD489 */ jal func_802B5224 +/* 12179C 802B818C E7AE006C */ swc1 $f14, 0x6c($sp) +/* 1217A0 802B8190 C7AE006C */ lwc1 $f14, 0x6c($sp) +/* 1217A4 802B8194 44808000 */ mtc1 $zero, $f16 +/* 1217A8 802B8198 97A7006A */ lhu $a3, 0x6a($sp) +/* 1217AC 802B819C 3046FFFF */ andi $a2, $v0, 0xffff +/* 1217B0 802B81A0 46107032 */ c.eq.s $f14, $f16 +/* 1217B4 802B81A4 C7B20070 */ lwc1 $f18, 0x70($sp) +/* 1217B8 802B81A8 C7A60070 */ lwc1 $f6, 0x70($sp) +/* 1217BC 802B81AC 24030001 */ li $v1, 1 +/* 1217C0 802B81B0 4502003C */ bc1fl .L802B82A4 +/* 1217C4 802B81B4 444AF800 */ cfc1 $t2, $31 +/* 1217C8 802B81B8 444EF800 */ cfc1 $t6, $31 +/* 1217CC 802B81BC 24030001 */ li $v1, 1 +/* 1217D0 802B81C0 44C3F800 */ ctc1 $v1, $31 +/* 1217D4 802B81C4 00E01025 */ move $v0, $a3 +/* 1217D8 802B81C8 3C014F00 */ li $at, 0x4F000000 # 2147483648.000000 +/* 1217DC 802B81CC 46009124 */ cvt.w.s $f4, $f18 +/* 1217E0 802B81D0 4443F800 */ cfc1 $v1, $31 +/* 1217E4 802B81D4 00000000 */ nop +/* 1217E8 802B81D8 30630078 */ andi $v1, $v1, 0x78 +/* 1217EC 802B81DC 50600013 */ beql $v1, $zero, .L802B822C +/* 1217F0 802B81E0 44032000 */ mfc1 $v1, $f4 +/* 1217F4 802B81E4 44812000 */ mtc1 $at, $f4 +/* 1217F8 802B81E8 24030001 */ li $v1, 1 +/* 1217FC 802B81EC 46049101 */ sub.s $f4, $f18, $f4 +/* 121800 802B81F0 44C3F800 */ ctc1 $v1, $31 +/* 121804 802B81F4 00000000 */ nop +/* 121808 802B81F8 46002124 */ cvt.w.s $f4, $f4 +/* 12180C 802B81FC 4443F800 */ cfc1 $v1, $31 +/* 121810 802B8200 00000000 */ nop +/* 121814 802B8204 30630078 */ andi $v1, $v1, 0x78 +/* 121818 802B8208 14600005 */ bnez $v1, .L802B8220 +/* 12181C 802B820C 00000000 */ nop +/* 121820 802B8210 44032000 */ mfc1 $v1, $f4 +/* 121824 802B8214 3C018000 */ lui $at, 0x8000 +/* 121828 802B8218 10000007 */ b .L802B8238 +/* 12182C 802B821C 00611825 */ or $v1, $v1, $at +.L802B8220: +/* 121830 802B8220 10000005 */ b .L802B8238 +/* 121834 802B8224 2403FFFF */ li $v1, -1 +/* 121838 802B8228 44032000 */ mfc1 $v1, $f4 +.L802B822C: +/* 12183C 802B822C 00000000 */ nop +/* 121840 802B8230 0460FFFB */ bltz $v1, .L802B8220 +/* 121844 802B8234 00000000 */ nop +.L802B8238: +/* 121848 802B8238 00607825 */ move $t7, $v1 +/* 12184C 802B823C 000FC080 */ sll $t8, $t7, 2 +/* 121850 802B8240 030FC023 */ subu $t8, $t8, $t7 +/* 121854 802B8244 0018C0C0 */ sll $t8, $t8, 3 +/* 121858 802B8248 030FC023 */ subu $t8, $t8, $t7 +/* 12185C 802B824C 0018C080 */ sll $t8, $t8, 2 +/* 121860 802B8250 030FC023 */ subu $t8, $t8, $t7 +/* 121864 802B8254 0018C040 */ sll $t8, $t8, 1 +/* 121868 802B8258 3303FFFF */ andi $v1, $t8, 0xffff +/* 12186C 802B825C 00432021 */ addu $a0, $v0, $v1 +/* 121870 802B8260 00432823 */ subu $a1, $v0, $v1 +/* 121874 802B8264 30A9FFFF */ andi $t1, $a1, 0xffff +/* 121878 802B8268 3088FFFF */ andi $t0, $a0, 0xffff +/* 12187C 802B826C 44CEF800 */ ctc1 $t6, $31 +/* 121880 802B8270 01002025 */ move $a0, $t0 +/* 121884 802B8274 0C0AE016 */ jal func_802B8058 +/* 121888 802B8278 01202825 */ move $a1, $t1 +/* 12188C 802B827C 24010001 */ li $at, 1 +/* 121890 802B8280 54410004 */ bnel $v0, $at, .L802B8294 +/* 121894 802B8284 3C01BF80 */ lui $at, 0xbf80 +/* 121898 802B8288 1000005D */ b .L802B8400 +/* 12189C 802B828C 4600A006 */ mov.s $f0, $f20 +/* 1218A0 802B8290 3C01BF80 */ li $at, 0xBF800000 # -1.000000 +.L802B8294: +/* 1218A4 802B8294 44810000 */ mtc1 $at, $f0 +/* 1218A8 802B8298 1000005A */ b .L802B8404 +/* 1218AC 802B829C 8FBF001C */ lw $ra, 0x1c($sp) +/* 1218B0 802B82A0 444AF800 */ cfc1 $t2, $31 +.L802B82A4: +/* 1218B4 802B82A4 44C3F800 */ ctc1 $v1, $31 +/* 1218B8 802B82A8 00E01025 */ move $v0, $a3 +/* 1218BC 802B82AC 3C014F00 */ li $at, 0x4F000000 # 2147483648.000000 +/* 1218C0 802B82B0 46003224 */ cvt.w.s $f8, $f6 +/* 1218C4 802B82B4 4443F800 */ cfc1 $v1, $31 +/* 1218C8 802B82B8 00000000 */ nop +/* 1218CC 802B82BC 30630078 */ andi $v1, $v1, 0x78 +/* 1218D0 802B82C0 50600013 */ beql $v1, $zero, .L802B8310 +/* 1218D4 802B82C4 44034000 */ mfc1 $v1, $f8 +/* 1218D8 802B82C8 44814000 */ mtc1 $at, $f8 +/* 1218DC 802B82CC 24030001 */ li $v1, 1 +/* 1218E0 802B82D0 46083201 */ sub.s $f8, $f6, $f8 +/* 1218E4 802B82D4 44C3F800 */ ctc1 $v1, $31 +/* 1218E8 802B82D8 00000000 */ nop +/* 1218EC 802B82DC 46004224 */ cvt.w.s $f8, $f8 +/* 1218F0 802B82E0 4443F800 */ cfc1 $v1, $31 +/* 1218F4 802B82E4 00000000 */ nop +/* 1218F8 802B82E8 30630078 */ andi $v1, $v1, 0x78 +/* 1218FC 802B82EC 14600005 */ bnez $v1, .L802B8304 +/* 121900 802B82F0 00000000 */ nop +/* 121904 802B82F4 44034000 */ mfc1 $v1, $f8 +/* 121908 802B82F8 3C018000 */ lui $at, 0x8000 +/* 12190C 802B82FC 10000007 */ b .L802B831C +/* 121910 802B8300 00611825 */ or $v1, $v1, $at +.L802B8304: +/* 121914 802B8304 10000005 */ b .L802B831C +/* 121918 802B8308 2403FFFF */ li $v1, -1 +/* 12191C 802B830C 44034000 */ mfc1 $v1, $f8 +.L802B8310: +/* 121920 802B8310 00000000 */ nop +/* 121924 802B8314 0460FFFB */ bltz $v1, .L802B8304 +/* 121928 802B8318 00000000 */ nop +.L802B831C: +/* 12192C 802B831C 00605825 */ move $t3, $v1 +/* 121930 802B8320 000B6080 */ sll $t4, $t3, 2 +/* 121934 802B8324 018B6023 */ subu $t4, $t4, $t3 +/* 121938 802B8328 000C60C0 */ sll $t4, $t4, 3 +/* 12193C 802B832C 018B6023 */ subu $t4, $t4, $t3 +/* 121940 802B8330 000C6080 */ sll $t4, $t4, 2 +/* 121944 802B8334 018B6023 */ subu $t4, $t4, $t3 +/* 121948 802B8338 000C6040 */ sll $t4, $t4, 1 +/* 12194C 802B833C 3183FFFF */ andi $v1, $t4, 0xffff +/* 121950 802B8340 00432021 */ addu $a0, $v0, $v1 +/* 121954 802B8344 00432823 */ subu $a1, $v0, $v1 +/* 121958 802B8348 30AFFFFF */ andi $t7, $a1, 0xffff +/* 12195C 802B834C 308EFFFF */ andi $t6, $a0, 0xffff +/* 121960 802B8350 44CAF800 */ ctc1 $t2, $31 +/* 121964 802B8354 01C02025 */ move $a0, $t6 +/* 121968 802B8358 AFAE0024 */ sw $t6, 0x24($sp) +/* 12196C 802B835C 01E02825 */ move $a1, $t7 +/* 121970 802B8360 AFAF0020 */ sw $t7, 0x20($sp) +/* 121974 802B8364 A7A6005E */ sh $a2, 0x5e($sp) +/* 121978 802B8368 0C0AE016 */ jal func_802B8058 +/* 12197C 802B836C E7AE006C */ swc1 $f14, 0x6c($sp) +/* 121980 802B8370 24010001 */ li $at, 1 +/* 121984 802B8374 14410003 */ bne $v0, $at, .L802B8384 +/* 121988 802B8378 C7AE006C */ lwc1 $f14, 0x6c($sp) +/* 12198C 802B837C 10000020 */ b .L802B8400 +/* 121990 802B8380 4600A006 */ mov.s $f0, $f20 +.L802B8384: +/* 121994 802B8384 0C0ADF2A */ jal func_802B7CA8 +/* 121998 802B8388 46147303 */ div.s $f12, $f14, $f20 +/* 12199C 802B838C 97A7005E */ lhu $a3, 0x5e($sp) +/* 1219A0 802B8390 A7A2005A */ sh $v0, 0x5a($sp) +/* 1219A4 802B8394 97A40026 */ lhu $a0, 0x26($sp) +/* 1219A8 802B8398 00E23021 */ addu $a2, $a3, $v0 +/* 1219AC 802B839C 30D9FFFF */ andi $t9, $a2, 0xffff +/* 1219B0 802B83A0 03203025 */ move $a2, $t9 +/* 1219B4 802B83A4 97A50022 */ lhu $a1, 0x22($sp) +/* 1219B8 802B83A8 0C0AE016 */ jal func_802B8058 +/* 1219BC 802B83AC AFA70028 */ sw $a3, 0x28($sp) +/* 1219C0 802B83B0 24010001 */ li $at, 1 +/* 1219C4 802B83B4 14410003 */ bne $v0, $at, .L802B83C4 +/* 1219C8 802B83B8 8FA70028 */ lw $a3, 0x28($sp) +/* 1219CC 802B83BC 10000010 */ b .L802B8400 +/* 1219D0 802B83C0 4600A006 */ mov.s $f0, $f20 +.L802B83C4: +/* 1219D4 802B83C4 97A8005A */ lhu $t0, 0x5a($sp) +/* 1219D8 802B83C8 97A40026 */ lhu $a0, 0x26($sp) +/* 1219DC 802B83CC 97A50022 */ lhu $a1, 0x22($sp) +/* 1219E0 802B83D0 00E83023 */ subu $a2, $a3, $t0 +/* 1219E4 802B83D4 30C9FFFF */ andi $t1, $a2, 0xffff +/* 1219E8 802B83D8 0C0AE016 */ jal func_802B8058 +/* 1219EC 802B83DC 01203025 */ move $a2, $t1 +/* 1219F0 802B83E0 24010001 */ li $at, 1 +/* 1219F4 802B83E4 54410004 */ bnel $v0, $at, .L802B83F8 +/* 1219F8 802B83E8 3C01BF80 */ lui $at, 0xbf80 +/* 1219FC 802B83EC 10000004 */ b .L802B8400 +/* 121A00 802B83F0 4600A006 */ mov.s $f0, $f20 +/* 121A04 802B83F4 3C01BF80 */ li $at, 0xBF800000 # -1.000000 +.L802B83F8: +/* 121A08 802B83F8 44810000 */ mtc1 $at, $f0 +/* 121A0C 802B83FC 00000000 */ nop +.L802B8400: +/* 121A10 802B8400 8FBF001C */ lw $ra, 0x1c($sp) +.L802B8404: +/* 121A14 802B8404 D7B40010 */ ldc1 $f20, 0x10($sp) +/* 121A18 802B8408 27BD0060 */ addiu $sp, $sp, 0x60 +/* 121A1C 802B840C 03E00008 */ jr $ra +/* 121A20 802B8410 00000000 */ nop + +/* 121A24 802B8414 0004CE02 */ srl $t9, $a0, 0x18 +/* 121A28 802B8418 27BDFFA8 */ addiu $sp, $sp, -0x58 +/* 121A2C 802B841C 00194080 */ sll $t0, $t9, 2 +/* 121A30 802B8420 3C098015 */ lui $t1, %hi(gSegmentTable) +/* 121A34 802B8424 3C0100FF */ lui $at, (0x00FFFFFF >> 16) # lui $at, 0xff +/* 121A38 802B8428 3421FFFF */ ori $at, (0x00FFFFFF & 0xFFFF) # ori $at, $at, 0xffff +/* 121A3C 802B842C 01284821 */ addu $t1, $t1, $t0 +/* 121A40 802B8430 8D290258 */ lw $t1, %lo(gSegmentTable)($t1) +/* 121A44 802B8434 00815024 */ and $t2, $a0, $at +/* 121A48 802B8438 AFB00014 */ sw $s0, 0x14($sp) +/* 121A4C 802B843C AFA40058 */ sw $a0, 0x58($sp) +/* 121A50 802B8440 AFBF001C */ sw $ra, 0x1c($sp) +/* 121A54 802B8444 AFB10018 */ sw $s1, 0x18($sp) +/* 121A58 802B8448 3C018000 */ lui $at, 0x8000 +/* 121A5C 802B844C 30E4FFFF */ andi $a0, $a3, 0xffff +/* 121A60 802B8450 012A8021 */ addu $s0, $t1, $t2 +/* 121A64 802B8454 00A08825 */ move $s1, $a1 +/* 121A68 802B8458 AFA60060 */ sw $a2, 0x60($sp) +/* 121A6C 802B845C AFA70064 */ sw $a3, 0x64($sp) +/* 121A70 802B8460 02018021 */ addu $s0, $s0, $at +/* 121A74 802B8464 0C0AE006 */ jal func_802B8018 +/* 121A78 802B8468 AFA40020 */ sw $a0, 0x20($sp) +/* 121A7C 802B846C 0C0AE00E */ jal func_802B8038 +/* 121A80 802B8470 8FA40020 */ lw $a0, 0x20($sp) +/* 121A84 802B8474 97A40062 */ lhu $a0, 0x62($sp) +/* 121A88 802B8478 0C0AE006 */ jal func_802B8018 +/* 121A8C 802B847C AFA40020 */ sw $a0, 0x20($sp) +/* 121A90 802B8480 0C0AE00E */ jal func_802B8038 +/* 121A94 802B8484 8FA40020 */ lw $a0, 0x20($sp) +/* 121A98 802B8488 3C0142FE */ li $at, 0x42FE0000 # 127.000000 +/* 121A9C 802B848C 44810000 */ mtc1 $at, $f0 +/* 121AA0 802B8490 44801000 */ mtc1 $zero, $f2 +/* 121AA4 802B8494 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 121AA8 802B8498 44812000 */ mtc1 $at, $f4 +/* 121AAC 802B849C E7A20040 */ swc1 $f2, 0x40($sp) +/* 121AB0 802B84A0 E7A20044 */ swc1 $f2, 0x44($sp) +/* 121AB4 802B84A4 E7A40048 */ swc1 $f4, 0x48($sp) +/* 121AB8 802B84A8 C6280000 */ lwc1 $f8, ($s1) +/* 121ABC 802B84AC C7A60040 */ lwc1 $f6, 0x40($sp) +/* 121AC0 802B84B0 C6320010 */ lwc1 $f18, 0x10($s1) +/* 121AC4 802B84B4 C7B00044 */ lwc1 $f16, 0x44($sp) +/* 121AC8 802B84B8 46083282 */ mul.s $f10, $f6, $f8 +/* 121ACC 802B84BC 8FA40068 */ lw $a0, 0x68($sp) +/* 121AD0 802B84C0 00001025 */ move $v0, $zero +/* 121AD4 802B84C4 46128202 */ mul.s $f8, $f16, $f18 +/* 121AD8 802B84C8 30850003 */ andi $a1, $a0, 3 +/* 121ADC 802B84CC 46085480 */ add.s $f18, $f10, $f8 +/* 121AE0 802B84D0 C62A0020 */ lwc1 $f10, 0x20($s1) +/* 121AE4 802B84D4 46045202 */ mul.s $f8, $f10, $f4 +/* 121AE8 802B84D8 46124280 */ add.s $f10, $f8, $f18 +/* 121AEC 802B84DC 46005202 */ mul.s $f8, $f10, $f0 +/* 121AF0 802B84E0 4600448D */ trunc.w.s $f18, $f8 +/* 121AF4 802B84E4 440C9000 */ mfc1 $t4, $f18 +/* 121AF8 802B84E8 00000000 */ nop +/* 121AFC 802B84EC A3AC003C */ sb $t4, 0x3c($sp) +/* 121B00 802B84F0 C62A0004 */ lwc1 $f10, 4($s1) +/* 121B04 802B84F4 C6320014 */ lwc1 $f18, 0x14($s1) +/* 121B08 802B84F8 460A3202 */ mul.s $f8, $f6, $f10 +/* 121B0C 802B84FC 00000000 */ nop +/* 121B10 802B8500 46128282 */ mul.s $f10, $f16, $f18 +/* 121B14 802B8504 460A4480 */ add.s $f18, $f8, $f10 +/* 121B18 802B8508 C6280024 */ lwc1 $f8, 0x24($s1) +/* 121B1C 802B850C 46044282 */ mul.s $f10, $f8, $f4 +/* 121B20 802B8510 46125200 */ add.s $f8, $f10, $f18 +/* 121B24 802B8514 46004282 */ mul.s $f10, $f8, $f0 +/* 121B28 802B8518 4600548D */ trunc.w.s $f18, $f10 +/* 121B2C 802B851C 440E9000 */ mfc1 $t6, $f18 +/* 121B30 802B8520 00000000 */ nop +/* 121B34 802B8524 A3AE003D */ sb $t6, 0x3d($sp) +/* 121B38 802B8528 C6280008 */ lwc1 $f8, 8($s1) +/* 121B3C 802B852C C6320018 */ lwc1 $f18, 0x18($s1) +/* 121B40 802B8530 46083282 */ mul.s $f10, $f6, $f8 +/* 121B44 802B8534 00000000 */ nop +/* 121B48 802B8538 46128182 */ mul.s $f6, $f16, $f18 +/* 121B4C 802B853C C6300028 */ lwc1 $f16, 0x28($s1) +/* 121B50 802B8540 46048482 */ mul.s $f18, $f16, $f4 +/* 121B54 802B8544 46065200 */ add.s $f8, $f10, $f6 +/* 121B58 802B8548 46089280 */ add.s $f10, $f18, $f8 +/* 121B5C 802B854C 46005182 */ mul.s $f6, $f10, $f0 +/* 121B60 802B8550 4600340D */ trunc.w.s $f16, $f6 +/* 121B64 802B8554 44198000 */ mfc1 $t9, $f16 +/* 121B68 802B8558 18800029 */ blez $a0, .L802B8600 +/* 121B6C 802B855C A3B9003E */ sb $t9, 0x3e($sp) +/* 121B70 802B8560 10A0000C */ beqz $a1, .L802B8594 +/* 121B74 802B8564 00A01825 */ move $v1, $a1 +.L802B8568: +/* 121B78 802B8568 83A8003C */ lb $t0, 0x3c($sp) +/* 121B7C 802B856C 24420001 */ addiu $v0, $v0, 1 +/* 121B80 802B8570 26100018 */ addiu $s0, $s0, 0x18 +/* 121B84 802B8574 A208FFF8 */ sb $t0, -8($s0) +/* 121B88 802B8578 83B8003D */ lb $t8, 0x3d($sp) +/* 121B8C 802B857C A218FFF9 */ sb $t8, -7($s0) +/* 121B90 802B8580 83A9003E */ lb $t1, 0x3e($sp) +/* 121B94 802B8584 1462FFF8 */ bne $v1, $v0, .L802B8568 +/* 121B98 802B8588 A209FFFA */ sb $t1, -6($s0) +/* 121B9C 802B858C 5044001D */ beql $v0, $a0, .L802B8604 +/* 121BA0 802B8590 8FBF001C */ lw $ra, 0x1c($sp) +.L802B8594: +/* 121BA4 802B8594 83AA003C */ lb $t2, 0x3c($sp) +/* 121BA8 802B8598 24420004 */ addiu $v0, $v0, 4 +/* 121BAC 802B859C 26100060 */ addiu $s0, $s0, 0x60 +/* 121BB0 802B85A0 A20AFFB0 */ sb $t2, -0x50($s0) +/* 121BB4 802B85A4 83AB003D */ lb $t3, 0x3d($sp) +/* 121BB8 802B85A8 A20BFFB1 */ sb $t3, -0x4f($s0) +/* 121BBC 802B85AC 83AC003E */ lb $t4, 0x3e($sp) +/* 121BC0 802B85B0 A20CFFB2 */ sb $t4, -0x4e($s0) +/* 121BC4 802B85B4 83AD003C */ lb $t5, 0x3c($sp) +/* 121BC8 802B85B8 A20DFFC8 */ sb $t5, -0x38($s0) +/* 121BCC 802B85BC 83AE003D */ lb $t6, 0x3d($sp) +/* 121BD0 802B85C0 A20EFFC9 */ sb $t6, -0x37($s0) +/* 121BD4 802B85C4 83AF003E */ lb $t7, 0x3e($sp) +/* 121BD8 802B85C8 A20FFFCA */ sb $t7, -0x36($s0) +/* 121BDC 802B85CC 83B9003C */ lb $t9, 0x3c($sp) +/* 121BE0 802B85D0 A219FFE0 */ sb $t9, -0x20($s0) +/* 121BE4 802B85D4 83A8003D */ lb $t0, 0x3d($sp) +/* 121BE8 802B85D8 A208FFE1 */ sb $t0, -0x1f($s0) +/* 121BEC 802B85DC 83B8003E */ lb $t8, 0x3e($sp) +/* 121BF0 802B85E0 A218FFE2 */ sb $t8, -0x1e($s0) +/* 121BF4 802B85E4 83A9003C */ lb $t1, 0x3c($sp) +/* 121BF8 802B85E8 A209FFF8 */ sb $t1, -8($s0) +/* 121BFC 802B85EC 83AA003D */ lb $t2, 0x3d($sp) +/* 121C00 802B85F0 A20AFFF9 */ sb $t2, -7($s0) +/* 121C04 802B85F4 83AB003E */ lb $t3, 0x3e($sp) +/* 121C08 802B85F8 1444FFE6 */ bne $v0, $a0, .L802B8594 +/* 121C0C 802B85FC A20BFFFA */ sb $t3, -6($s0) +.L802B8600: +/* 121C10 802B8600 8FBF001C */ lw $ra, 0x1c($sp) +.L802B8604: +/* 121C14 802B8604 8FB00014 */ lw $s0, 0x14($sp) +/* 121C18 802B8608 8FB10018 */ lw $s1, 0x18($sp) +/* 121C1C 802B860C 03E00008 */ jr $ra +/* 121C20 802B8610 27BD0058 */ addiu $sp, $sp, 0x58 + +/* 121C24 802B8614 27BDFF60 */ addiu $sp, $sp, -0xa0 +/* 121C28 802B8618 F7BE0030 */ sdc1 $f30, 0x30($sp) +/* 121C2C 802B861C F7BC0028 */ sdc1 $f28, 0x28($sp) +/* 121C30 802B8620 F7BA0020 */ sdc1 $f26, 0x20($sp) +/* 121C34 802B8624 F7B80018 */ sdc1 $f24, 0x18($sp) +/* 121C38 802B8628 F7B60010 */ sdc1 $f22, 0x10($sp) +/* 121C3C 802B862C F7B40008 */ sdc1 $f20, 8($sp) +/* 121C40 802B8630 C48401B0 */ lwc1 $f4, 0x1b0($a0) +/* 121C44 802B8634 4480E000 */ mtc1 $zero, $f28 +/* 121C48 802B8638 4480E800 */ mtc1 $zero, $f29 +/* 121C4C 802B863C 460021A1 */ cvt.d.s $f6, $f4 +/* 121C50 802B8640 F7A60078 */ sdc1 $f6, 0x78($sp) +/* 121C54 802B8644 C48801C0 */ lwc1 $f8, 0x1c0($a0) +/* 121C58 802B8648 463CE032 */ c.eq.d $f28, $f28 +/* 121C5C 802B864C 460042A1 */ cvt.d.s $f10, $f8 +/* 121C60 802B8650 F7AA0070 */ sdc1 $f10, 0x70($sp) +/* 121C64 802B8654 C48401B8 */ lwc1 $f4, 0x1b8($a0) +/* 121C68 802B8658 460021A1 */ cvt.d.s $f6, $f4 +/* 121C6C 802B865C F7A60068 */ sdc1 $f6, 0x68($sp) +/* 121C70 802B8660 C48A01A8 */ lwc1 $f10, 0x1a8($a0) +/* 121C74 802B8664 C4880198 */ lwc1 $f8, 0x198($a0) +/* 121C78 802B8668 46005121 */ cvt.d.s $f4, $f10 +/* 121C7C 802B866C 460047A1 */ cvt.d.s $f30, $f8 +/* 121C80 802B8670 F7A40058 */ sdc1 $f4, 0x58($sp) +/* 121C84 802B8674 C48601A0 */ lwc1 $f6, 0x1a0($a0) +/* 121C88 802B8678 46003221 */ cvt.d.s $f8, $f6 +/* 121C8C 802B867C F7A80050 */ sdc1 $f8, 0x50($sp) +/* 121C90 802B8680 C48A01E0 */ lwc1 $f10, 0x1e0($a0) +/* 121C94 802B8684 46005121 */ cvt.d.s $f4, $f10 +/* 121C98 802B8688 F7A40048 */ sdc1 $f4, 0x48($sp) +/* 121C9C 802B868C C48601F0 */ lwc1 $f6, 0x1f0($a0) +/* 121CA0 802B8690 46003221 */ cvt.d.s $f8, $f6 +/* 121CA4 802B8694 D7A60058 */ ldc1 $f6, 0x58($sp) +/* 121CA8 802B8698 F7A80040 */ sdc1 $f8, 0x40($sp) +/* 121CAC 802B869C C48A01E8 */ lwc1 $f10, 0x1e8($a0) +/* 121CB0 802B86A0 D7A80070 */ ldc1 $f8, 0x70($sp) +/* 121CB4 802B86A4 46005121 */ cvt.d.s $f4, $f10 +/* 121CB8 802B86A8 46283081 */ sub.d $f2, $f6, $f8 +/* 121CBC 802B86AC F7A40038 */ sdc1 $f4, 0x38($sp) +/* 121CC0 802B86B0 46202286 */ mov.d $f10, $f4 +/* 121CC4 802B86B4 D7A40050 */ ldc1 $f4, 0x50($sp) +/* 121CC8 802B86B8 D7A80068 */ ldc1 $f8, 0x68($sp) +/* 121CCC 802B86BC 46245301 */ sub.d $f12, $f10, $f4 +/* 121CD0 802B86C0 D7AA0040 */ ldc1 $f10, 0x40($sp) +/* 121CD4 802B86C4 46282381 */ sub.d $f14, $f4, $f8 +/* 121CD8 802B86C8 462C1102 */ mul.d $f4, $f2, $f12 +/* 121CDC 802B86CC 46265401 */ sub.d $f16, $f10, $f6 +/* 121CE0 802B86D0 D7AA0048 */ ldc1 $f10, 0x48($sp) +/* 121CE4 802B86D4 D7A60078 */ ldc1 $f6, 0x78($sp) +/* 121CE8 802B86D8 46307202 */ mul.d $f8, $f14, $f16 +/* 121CEC 802B86DC 463E5481 */ sub.d $f18, $f10, $f30 +/* 121CF0 802B86E0 4626F501 */ sub.d $f20, $f30, $f6 +/* 121CF4 802B86E4 46282581 */ sub.d $f22, $f4, $f8 +/* 121CF8 802B86E8 46327102 */ mul.d $f4, $f14, $f18 +/* 121CFC 802B86EC 00000000 */ nop +/* 121D00 802B86F0 462CA202 */ mul.d $f8, $f20, $f12 +/* 121D04 802B86F4 00000000 */ nop +/* 121D08 802B86F8 4630A282 */ mul.d $f10, $f20, $f16 +/* 121D0C 802B86FC 00000000 */ nop +/* 121D10 802B8700 46321182 */ mul.d $f6, $f2, $f18 +/* 121D14 802B8704 46282601 */ sub.d $f24, $f4, $f8 +/* 121D18 802B8708 45000008 */ bc1f .L802B872C +/* 121D1C 802B870C 46265681 */ sub.d $f26, $f10, $f6 +/* 121D20 802B8710 44800000 */ mtc1 $zero, $f0 +/* 121D24 802B8714 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 121D28 802B8718 44814000 */ mtc1 $at, $f8 +/* 121D2C 802B871C E4800058 */ swc1 $f0, 0x58($a0) +/* 121D30 802B8720 E4800060 */ swc1 $f0, 0x60($a0) +/* 121D34 802B8724 10000010 */ b .L802B8768 +/* 121D38 802B8728 E488005C */ swc1 $f8, 0x5c($a0) +.L802B872C: +/* 121D3C 802B872C 4620B2A0 */ cvt.s.d $f10, $f22 +/* 121D40 802B8730 460051A1 */ cvt.d.s $f6, $f10 +/* 121D44 802B8734 4620C2A0 */ cvt.s.d $f10, $f24 +/* 121D48 802B8738 463C3103 */ div.d $f4, $f6, $f28 +/* 121D4C 802B873C 460051A1 */ cvt.d.s $f6, $f10 +/* 121D50 802B8740 4620D2A0 */ cvt.s.d $f10, $f26 +/* 121D54 802B8744 46202220 */ cvt.s.d $f8, $f4 +/* 121D58 802B8748 463C3103 */ div.d $f4, $f6, $f28 +/* 121D5C 802B874C E4880058 */ swc1 $f8, 0x58($a0) +/* 121D60 802B8750 460051A1 */ cvt.d.s $f6, $f10 +/* 121D64 802B8754 46202220 */ cvt.s.d $f8, $f4 +/* 121D68 802B8758 463C3103 */ div.d $f4, $f6, $f28 +/* 121D6C 802B875C E488005C */ swc1 $f8, 0x5c($a0) +/* 121D70 802B8760 46202220 */ cvt.s.d $f8, $f4 +/* 121D74 802B8764 E4880060 */ swc1 $f8, 0x60($a0) +.L802B8768: +/* 121D78 802B8768 D7B40008 */ ldc1 $f20, 8($sp) +/* 121D7C 802B876C D7B60010 */ ldc1 $f22, 0x10($sp) +/* 121D80 802B8770 D7B80018 */ ldc1 $f24, 0x18($sp) +/* 121D84 802B8774 D7BA0020 */ ldc1 $f26, 0x20($sp) +/* 121D88 802B8778 D7BC0028 */ ldc1 $f28, 0x28($sp) +/* 121D8C 802B877C D7BE0030 */ ldc1 $f30, 0x30($sp) +/* 121D90 802B8780 03E00008 */ jr $ra +/* 121D94 802B8784 27BD00A0 */ addiu $sp, $sp, 0xa0 + +/* 121D98 802B8788 00000000 */ nop +/* 121D9C 802B878C 00000000 */ nop + diff --git a/asm/non_matchings/math_util/func_802B51E8.s b/asm/non_matchings/math_util/func_802B51E8.s new file mode 100644 index 000000000..a183a1d88 --- /dev/null +++ b/asm/non_matchings/math_util/func_802B51E8.s @@ -0,0 +1,17 @@ +glabel func_802B51E8 +/* 11E7F8 802B51E8 C4A40000 */ lwc1 $f4, ($a1) +/* 11E7FC 802B51EC C4860000 */ lwc1 $f6, ($a0) +/* 11E800 802B51F0 C4A80004 */ lwc1 $f8, 4($a1) +/* 11E804 802B51F4 C48A0004 */ lwc1 $f10, 4($a0) +/* 11E808 802B51F8 46062081 */ sub.s $f2, $f4, $f6 +/* 11E80C 802B51FC C4B00008 */ lwc1 $f16, 8($a1) +/* 11E810 802B5200 C4920008 */ lwc1 $f18, 8($a0) +/* 11E814 802B5204 460A4301 */ sub.s $f12, $f8, $f10 +/* 11E818 802B5208 46021102 */ mul.s $f4, $f2, $f2 +/* 11E81C 802B520C 46128381 */ sub.s $f14, $f16, $f18 +/* 11E820 802B5210 460C6182 */ mul.s $f6, $f12, $f12 +/* 11E824 802B5214 46062200 */ add.s $f8, $f4, $f6 +/* 11E828 802B5218 460E4280 */ add.s $f10, $f8, $f14 +/* 11E82C 802B521C 03E00008 */ jr $ra +/* 11E830 802B5220 460E5000 */ add.s $f0, $f10, $f14 + diff --git a/asm/non_matchings/math_util/func_802B5350.s b/asm/non_matchings/math_util/func_802B5350.s new file mode 100644 index 000000000..d91a70819 --- /dev/null +++ b/asm/non_matchings/math_util/func_802B5350.s @@ -0,0 +1,21 @@ +glabel func_802B5350 +/* 11E960 802B5350 00803025 */ move $a2, $a0 +/* 11E964 802B5354 24040004 */ li $a0, 4 +/* 11E968 802B5358 00001025 */ move $v0, $zero +/* 11E96C 802B535C 00A01825 */ move $v1, $a1 +.L802B5360: +/* 11E970 802B5360 C4C40000 */ lwc1 $f4, ($a2) +/* 11E974 802B5364 24420001 */ addiu $v0, $v0, 1 +/* 11E978 802B5368 24630010 */ addiu $v1, $v1, 0x10 +/* 11E97C 802B536C E464FFF0 */ swc1 $f4, -0x10($v1) +/* 11E980 802B5370 C4C60004 */ lwc1 $f6, 4($a2) +/* 11E984 802B5374 24C60010 */ addiu $a2, $a2, 0x10 +/* 11E988 802B5378 E466FFF4 */ swc1 $f6, -0xc($v1) +/* 11E98C 802B537C C4C8FFF8 */ lwc1 $f8, -8($a2) +/* 11E990 802B5380 E468FFF8 */ swc1 $f8, -8($v1) +/* 11E994 802B5384 C4CAFFFC */ lwc1 $f10, -4($a2) +/* 11E998 802B5388 1444FFF5 */ bne $v0, $a0, .L802B5360 +/* 11E99C 802B538C E46AFFFC */ swc1 $f10, -4($v1) +/* 11E9A0 802B5390 03E00008 */ jr $ra +/* 11E9A4 802B5394 00000000 */ nop + diff --git a/asm/non_matchings/math_util/func_802B5398.s b/asm/non_matchings/math_util/func_802B5398.s new file mode 100644 index 000000000..21a6e3069 --- /dev/null +++ b/asm/non_matchings/math_util/func_802B5398.s @@ -0,0 +1,16 @@ +glabel func_802B5398 +/* 11E9A8 802B5398 0006102A */ slt $v0, $zero, $a2 +/* 11E9AC 802B539C 10400008 */ beqz $v0, .L802B53C0 +/* 11E9B0 802B53A0 24C6FFFF */ addiu $a2, $a2, -1 +.L802B53A4: +/* 11E9B4 802B53A4 8CAE0000 */ lw $t6, ($a1) +/* 11E9B8 802B53A8 0006102A */ slt $v0, $zero, $a2 +/* 11E9BC 802B53AC 24C6FFFF */ addiu $a2, $a2, -1 +/* 11E9C0 802B53B0 24840004 */ addiu $a0, $a0, 4 +/* 11E9C4 802B53B4 24A50004 */ addiu $a1, $a1, 4 +/* 11E9C8 802B53B8 1440FFFA */ bnez $v0, .L802B53A4 +/* 11E9CC 802B53BC AC8EFFFC */ sw $t6, -4($a0) +.L802B53C0: +/* 11E9D0 802B53C0 03E00008 */ jr $ra +/* 11E9D4 802B53C4 00000000 */ nop + diff --git a/include/common_structs.h b/include/common_structs.h index 9b60c0bea..83be35daf 100644 --- a/include/common_structs.h +++ b/include/common_structs.h @@ -3,9 +3,9 @@ #include "ultra64.h" -typedef struct { - f32 x, y, z; - } Vec3f; +typedef f32 Vec3f[3]; + +typedef s16 Vec3s[3]; typedef enum { /* 0x00 */ COURSE_MARIO_RACEWAY = 0, diff --git a/include/types.h b/include/types.h index f43588176..dfefe947d 100644 --- a/include/types.h +++ b/include/types.h @@ -53,7 +53,33 @@ struct UnkStruct_800DC5EC { u16 unk30; u16 unk32; }; +// math util structs +struct UnkStruct_802B51E8 { + f32 unk0; + f32 unk4; + f32 unk8; + f32 unkC; +}; +struct UnkStruct_802B52D8 { + f32 unk0; + f32 unk4; + f32 unk8; +}; + +struct UnkStruct_802B52BC { + s16 unk0; + s16 unk2; + s16 unk4; +}; + +struct UnkStruct_802B53C8 { + f32 unk0; + f32 unk4; + f32 unk8; + f32 unkC; +}; +// end math util structs typedef struct { s16 ob[3]; /* x, y, z */ s16 tc[2]; /* texture coord */ diff --git a/mk64.ld b/mk64.ld index 3b3d63ea2..d509144c7 100644 --- a/mk64.ld +++ b/mk64.ld @@ -296,7 +296,7 @@ SECTIONS BUILD_DIR/asm/code_802A3730.o(.text); BUILD_DIR/src/memory.o(.text); BUILD_DIR/asm/code_802B0210.o(.text); - BUILD_DIR/asm/code_802B4F60.o(.text); + BUILD_DIR/src/math_util.o(.text); BUILD_DIR/data/data_121DA0.o(.data); BUILD_DIR/courses/courseTable.inc.o(.data); BUILD_DIR/data/data_121DA0_2.o(.data); diff --git a/src/math_util.c b/src/math_util.c new file mode 100644 index 000000000..9f7d66204 --- /dev/null +++ b/src/math_util.c @@ -0,0 +1,171 @@ +#include +#include +#include +#include + +f32 func_802B4F60(s32 arg0, f32 arg2, f32 arg3); // static +f32 func_802B6434(f32, f32, f32 *, f32 *); // static +s16 func_802B7830(f32 y, f32 x); + + +GLOBAL_ASM("asm/non_matchings/math_util/code_802B4F60.s") + + +f32 func_802B51E8(struct UnkStruct_802B51E8 *arg0, struct UnkStruct_802B51E8 *arg1) { + f32 temp_f12; + f32 temp_f14; + f32 temp_f2; + + temp_f2 = arg1->unk0 - arg0->unk0; + temp_f12 = arg1->unk4 - arg0->unk4; + temp_f14 = arg1->unk8 - arg0->unk8; + return (temp_f2 * temp_f2) + (temp_f12 * temp_f12) + temp_f14 + temp_f14; +} + +u32 func_802B5224(Vec3f arg0, Vec3f arg1) { + f32 temp_v1; + f32 temp_v2; + temp_v1 = arg1[0] - arg0[0]; + temp_v2 = arg1[2] - arg0[2]; + + return func_802B7830(temp_v1, temp_v2); +} + +u32 func_802B5258(Vec3f arg0, Vec3s arg1) { + f32 temp_v1; + f32 temp_v2; + temp_v1 = arg1[0] - arg0[0]; + temp_v2 = arg1[2] - arg0[2]; + + return func_802B7830(temp_v1, temp_v2); +} + +void load_giant_egg(struct UnkStruct_802B51E8 *arg0, f32 arg1, f32 arg2, f32 arg3) { + arg0->unk0 = arg1; + arg0->unk4 = arg2; + arg0->unk8 = arg3; +} + +void func_802B52BC(struct UnkStruct_802B52BC *arg0, s16 arg1, s16 arg2, s16 arg3) { + arg0->unk0 = arg1; + arg0->unk2 = arg2; + arg0->unk4 = arg3; +} + +// These functions have bogus return values. +// Disable the compiler warning. +#pragma GCC diagnostic push + +#ifdef __GNUC__ +#if defined(__clang__) + #pragma GCC diagnostic ignored "-Wreturn-stack-address" +#else + #pragma GCC diagnostic ignored "-Wreturn-local-addr" +#endif +#endif + +void *vec3f_copy(Vec3f dest, Vec3f src) { + dest[0] = src[0]; + dest[1] = src[1]; + dest[2] = src[2]; + return &dest; //! warning: function returns address of local variable +} + +void func_802B5304(Vec3s dest, Vec3s src) { + dest[0] = src[0]; + dest[1] = src[1]; + dest[2] = src[2]; +} + +void *func_802B5320(Vec3f dest, f32 x, f32 y, f32 z) { + dest[0] = x; + dest[1] = y; + dest[2] = z; + return &dest; +} +/* +void func_802B5350(void *arg0, void *arg1) { + s32 temp_v0; + void *temp_a2; + void *temp_v1; + void *phi_a2; + void *phi_v1; + s32 phi_v0; + + phi_a2 = arg0; + phi_v1 = arg1; + phi_v0 = 0; + do { + temp_v0 = phi_v0 + 1; + temp_v1 = phi_v1 + 0x10; + temp_v1->unk-10 = (f32) phi_a2->unk0; + temp_a2 = phi_a2 + 0x10; + temp_v1->unk-C = (f32) phi_a2->unk4; + temp_v1->unk-8 = (f32) temp_a2->unk-8; + temp_v1->unk-4 = (f32) temp_a2->unk-4; + phi_a2 = temp_a2; + phi_v1 = temp_v1; + phi_v0 = temp_v0; + } while (temp_v0 != 4); +} +*/ +GLOBAL_ASM("asm/non_matchings/math_util/func_802B5350.s") +/* +void func_802B5398(void *arg0, s32 *arg1, s32 arg2) { + void *temp_a0; + s32 *phi_a1; + void *phi_a0; + s32 phi_a2; + + phi_a1 = arg1; + phi_a0 = arg0; + phi_a2 = arg2 - 1; + if (arg2 > 0) { + do { + temp_a0 = phi_a0 + 4; + temp_a0->unk-4 = (s32) *phi_a1; + phi_a1 += 4; + phi_a0 = temp_a0; + phi_a2 += -1; + } while ((phi_a2 > 0) != 0); + } +} +*/ +GLOBAL_ASM("asm/non_matchings/math_util/func_802B5398.s") +/* +void func_802B53C8(struct UnkStruct_802B53C8 *arg0) { + s32 temp_v0; + s32 phi_v0; + + phi_v0 = 0; + do { + if (phi_v0 == 0) { + arg0->unk0 = 1.0f; + } else { + arg0->unk0 = 0.0f; + } + if (phi_v0 == 1) { + arg0->unk4 = 1.0f; + } else { + arg0->unk4 = 0.0f; + } + if (phi_v0 == 2) { + arg0->unk8 = 1.0f; + } else { + arg0->unk8 = 0.0f; + } + if (phi_v0 == 3) { + arg0->unkC = 1.0f; + } else { + arg0->unkC = 0.0f; + } + temp_v0 = phi_v0 + 1; + phi_v0 = temp_v0; + arg0 += 0x10; + } while (temp_v0 != 4); +} +*/ + + +GLOBAL_ASM("asm/non_matchings/math_util/code_cont.s") +