.set noat # allow manual use of $at .set noreorder # don't insert nops after branches glabel update_camera_from_zone /* B8FC 800304FC 27BDFF80 */ addiu $sp, $sp, -0x80 /* B900 80030500 AFB20030 */ sw $s2, 0x30($sp) /* B904 80030504 00A0902D */ daddu $s2, $a1, $zero /* B908 80030508 AFB40038 */ sw $s4, 0x38($sp) /* B90C 8003050C 00C0A02D */ daddu $s4, $a2, $zero /* B910 80030510 AFB30034 */ sw $s3, 0x34($sp) /* B914 80030514 00E0982D */ daddu $s3, $a3, $zero /* B918 80030518 AFB1002C */ sw $s1, 0x2c($sp) /* B91C 8003051C AFBF0048 */ sw $ra, 0x48($sp) /* B920 80030520 AFB70044 */ sw $s7, 0x44($sp) /* B924 80030524 AFB60040 */ sw $s6, 0x40($sp) /* B928 80030528 AFB5003C */ sw $s5, 0x3c($sp) /* B92C 8003052C AFB00028 */ sw $s0, 0x28($sp) /* B930 80030530 F7BE0078 */ sdc1 $f30, 0x78($sp) /* B934 80030534 F7BC0070 */ sdc1 $f28, 0x70($sp) /* B938 80030538 F7BA0068 */ sdc1 $f26, 0x68($sp) /* B93C 8003053C F7B80060 */ sdc1 $f24, 0x60($sp) /* B940 80030540 F7B60058 */ sdc1 $f22, 0x58($sp) /* B944 80030544 F7B40050 */ sdc1 $f20, 0x50($sp) /* B948 80030548 8E900000 */ lw $s0, ($s4) /* B94C 8003054C C7B80094 */ lwc1 $f24, 0x94($sp) /* B950 80030550 C7BE0098 */ lwc1 $f30, 0x98($sp) /* B954 80030554 C7BA009C */ lwc1 $f26, 0x9c($sp) /* B958 80030558 8FB500AC */ lw $s5, 0xac($sp) /* B95C 8003055C 8FB600B0 */ lw $s6, 0xb0($sp) /* B960 80030560 8FB700B4 */ lw $s7, 0xb4($sp) /* B964 80030564 26020002 */ addiu $v0, $s0, 2 /* B968 80030568 2C420002 */ sltiu $v0, $v0, 2 /* B96C 8003056C 144000C4 */ bnez $v0, .L80030880 /* B970 80030570 0240882D */ daddu $s1, $s2, $zero /* B974 80030574 16000005 */ bnez $s0, .L8003058C /* B978 80030578 00000000 */ nop /* B97C 8003057C E6580010 */ swc1 $f24, 0x10($s2) /* B980 80030580 E65E0014 */ swc1 $f30, 0x14($s2) /* B984 80030584 0800C220 */ j .L80030880 /* B988 80030588 E65A0018 */ swc1 $f26, 0x18($s2) .L8003058C: /* B98C 8003058C 8E030000 */ lw $v1, ($s0) /* B990 80030590 2C620007 */ sltiu $v0, $v1, 7 /* B994 80030594 104000BA */ beqz $v0, .L80030880 /* B998 80030598 00031080 */ sll $v0, $v1, 2 /* B99C 8003059C 3C01800A */ lui $at, %hi(jtbl_80098210) /* B9A0 800305A0 00220821 */ addu $at, $at, $v0 /* B9A4 800305A4 8C228210 */ lw $v0, %lo(jtbl_80098210)($at) /* B9A8 800305A8 00400008 */ jr $v0 /* B9AC 800305AC 00000000 */ nop glabel L800305B0_B9B0 /* B9B0 800305B0 8E020028 */ lw $v0, 0x28($s0) /* B9B4 800305B4 504000B0 */ beql $v0, $zero, .L80030878 /* B9B8 800305B8 E6380010 */ swc1 $f24, 0x10($s1) /* B9BC 800305BC C60A0014 */ lwc1 $f10, 0x14($s0) /* B9C0 800305C0 C60C0020 */ lwc1 $f12, 0x20($s0) /* B9C4 800305C4 460C5281 */ sub.s $f10, $f10, $f12 /* B9C8 800305C8 C6000018 */ lwc1 $f0, 0x18($s0) /* B9CC 800305CC 46005287 */ neg.s $f10, $f10 /* B9D0 800305D0 46005280 */ add.s $f10, $f10, $f0 /* B9D4 800305D4 460A0201 */ sub.s $f8, $f0, $f10 /* B9D8 800305D8 46084102 */ mul.s $f4, $f8, $f8 /* B9DC 800305DC 00000000 */ nop /* B9E0 800305E0 C606000C */ lwc1 $f6, 0xc($s0) /* B9E4 800305E4 46003181 */ sub.s $f6, $f6, $f0 /* B9E8 800305E8 460C3180 */ add.s $f6, $f6, $f12 /* B9EC 800305EC 46066301 */ sub.s $f12, $f12, $f6 /* B9F0 800305F0 460C6382 */ mul.s $f14, $f12, $f12 /* B9F4 800305F4 00000000 */ nop /* B9F8 800305F8 460AC081 */ sub.s $f2, $f24, $f10 /* B9FC 800305FC 46081082 */ mul.s $f2, $f2, $f8 /* BA00 80030600 00000000 */ nop /* BA04 80030604 4606D001 */ sub.s $f0, $f26, $f6 /* BA08 80030608 460C0002 */ mul.s $f0, $f0, $f12 /* BA0C 8003060C 00000000 */ nop /* BA10 80030610 460E2100 */ add.s $f4, $f4, $f14 /* BA14 80030614 46001080 */ add.s $f2, $f2, $f0 /* BA18 80030618 46041103 */ div.s $f4, $f2, $f4 /* BA1C 8003061C 46082202 */ mul.s $f8, $f4, $f8 /* BA20 80030620 00000000 */ nop /* BA24 80030624 460C2102 */ mul.s $f4, $f4, $f12 /* BA28 80030628 00000000 */ nop /* BA2C 8003062C 460A4200 */ add.s $f8, $f8, $f10 /* BA30 80030630 46062100 */ add.s $f4, $f4, $f6 /* BA34 80030634 E63E0014 */ swc1 $f30, 0x14($s1) /* BA38 80030638 E6280010 */ swc1 $f8, 0x10($s1) /* BA3C 8003063C 0800C220 */ j .L80030880 /* BA40 80030640 E6240018 */ swc1 $f4, 0x18($s1) glabel L80030644_BA44 /* BA44 80030644 C60E000C */ lwc1 $f14, 0xc($s0) /* BA48 80030648 C61C0018 */ lwc1 $f28, 0x18($s0) /* BA4C 8003064C 460EE201 */ sub.s $f8, $f28, $f14 /* BA50 80030650 46084502 */ mul.s $f20, $f8, $f8 /* BA54 80030654 00000000 */ nop /* BA58 80030658 460EC081 */ sub.s $f2, $f24, $f14 /* BA5C 8003065C 46081082 */ mul.s $f2, $f2, $f8 /* BA60 80030660 00000000 */ nop /* BA64 80030664 E7BC0010 */ swc1 $f28, 0x10($sp) /* BA68 80030668 C60C0014 */ lwc1 $f12, 0x14($s0) /* BA6C 8003066C C61C0020 */ lwc1 $f28, 0x20($s0) /* BA70 80030670 460CE181 */ sub.s $f6, $f28, $f12 /* BA74 80030674 46063482 */ mul.s $f18, $f6, $f6 /* BA78 80030678 00000000 */ nop /* BA7C 8003067C 460CD001 */ sub.s $f0, $f26, $f12 /* BA80 80030680 46060002 */ mul.s $f0, $f0, $f6 /* BA84 80030684 00000000 */ nop /* BA88 80030688 4612A100 */ add.s $f4, $f20, $f18 /* BA8C 8003068C 46001080 */ add.s $f2, $f2, $f0 /* BA90 80030690 46041103 */ div.s $f4, $f2, $f4 /* BA94 80030694 46082002 */ mul.s $f0, $f4, $f8 /* BA98 80030698 00000000 */ nop /* BA9C 8003069C 46062102 */ mul.s $f4, $f4, $f6 /* BAA0 800306A0 00000000 */ nop /* BAA4 800306A4 460E0400 */ add.s $f16, $f0, $f14 /* BAA8 800306A8 46007586 */ mov.s $f22, $f14 /* BAAC 800306AC 46004386 */ mov.s $f14, $f8 /* BAB0 800306B0 46168201 */ sub.s $f8, $f16, $f22 /* BAB4 800306B4 46087082 */ mul.s $f2, $f14, $f8 /* BAB8 800306B8 00000000 */ nop /* BABC 800306BC 460C2280 */ add.s $f10, $f4, $f12 /* BAC0 800306C0 46006106 */ mov.s $f4, $f12 /* BAC4 800306C4 46003306 */ mov.s $f12, $f6 /* BAC8 800306C8 46045181 */ sub.s $f6, $f10, $f4 /* BACC 800306CC 46066002 */ mul.s $f0, $f12, $f6 /* BAD0 800306D0 00000000 */ nop /* BAD4 800306D4 4610C501 */ sub.s $f20, $f24, $f16 /* BAD8 800306D8 460AD481 */ sub.s $f18, $f26, $f10 /* BADC 800306DC 46001080 */ add.s $f2, $f2, $f0 /* BAE0 800306E0 44800000 */ mtc1 $zero, $f0 /* BAE4 800306E4 00000000 */ nop /* BAE8 800306E8 4600103C */ c.lt.s $f2, $f0 /* BAEC 800306EC 00000000 */ nop /* BAF0 800306F0 45000004 */ bc1f .L80030704 /* BAF4 800306F4 E7BC0020 */ swc1 $f28, 0x20($sp) /* BAF8 800306F8 4600B406 */ mov.s $f16, $f22 /* BAFC 800306FC 0800C1D1 */ j .L80030744 /* BB00 80030700 46002286 */ mov.s $f10, $f4 .L80030704: /* BB04 80030704 46084082 */ mul.s $f2, $f8, $f8 /* BB08 80030708 00000000 */ nop /* BB0C 8003070C 46063182 */ mul.s $f6, $f6, $f6 /* BB10 80030710 00000000 */ nop /* BB14 80030714 460E7002 */ mul.s $f0, $f14, $f14 /* BB18 80030718 00000000 */ nop /* BB1C 8003071C 460C6102 */ mul.s $f4, $f12, $f12 /* BB20 80030720 00000000 */ nop /* BB24 80030724 46061080 */ add.s $f2, $f2, $f6 /* BB28 80030728 46040000 */ add.s $f0, $f0, $f4 /* BB2C 8003072C 4602003C */ c.lt.s $f0, $f2 /* BB30 80030730 00000000 */ nop /* BB34 80030734 45000003 */ bc1f .L80030744 /* BB38 80030738 00000000 */ nop /* BB3C 8003073C C7B00010 */ lwc1 $f16, 0x10($sp) /* BB40 80030740 C7AA0020 */ lwc1 $f10, 0x20($sp) .L80030744: /* BB44 80030744 8E020028 */ lw $v0, 0x28($s0) /* BB48 80030748 54400004 */ bnel $v0, $zero, .L8003075C /* BB4C 8003074C E6300010 */ swc1 $f16, 0x10($s1) /* BB50 80030750 46148400 */ add.s $f16, $f16, $f20 /* BB54 80030754 46125280 */ add.s $f10, $f10, $f18 /* BB58 80030758 E6300010 */ swc1 $f16, 0x10($s1) .L8003075C: /* BB5C 8003075C E63E0014 */ swc1 $f30, 0x14($s1) /* BB60 80030760 0800C220 */ j .L80030880 /* BB64 80030764 E62A0018 */ swc1 $f10, 0x18($s1) glabel L80030768_BB68 /* BB68 80030768 8E020028 */ lw $v0, 0x28($s0) /* BB6C 8003076C 50400042 */ beql $v0, $zero, .L80030878 /* BB70 80030770 E6380010 */ swc1 $f24, 0x10($s1) /* BB74 80030774 C600000C */ lwc1 $f0, 0xc($s0) /* BB78 80030778 4600C581 */ sub.s $f22, $f24, $f0 /* BB7C 8003077C 4616B082 */ mul.s $f2, $f22, $f22 /* BB80 80030780 00000000 */ nop /* BB84 80030784 C6000014 */ lwc1 $f0, 0x14($s0) /* BB88 80030788 4600D501 */ sub.s $f20, $f26, $f0 /* BB8C 8003078C 4614A002 */ mul.s $f0, $f20, $f20 /* BB90 80030790 00000000 */ nop /* BB94 80030794 46001600 */ add.s $f24, $f2, $f0 /* BB98 80030798 44800000 */ mtc1 $zero, $f0 /* BB9C 8003079C 00000000 */ nop /* BBA0 800307A0 4600C032 */ c.eq.s $f24, $f0 /* BBA4 800307A4 00000000 */ nop /* BBA8 800307A8 45010035 */ bc1t .L80030880 /* BBAC 800307AC 00000000 */ nop /* BBB0 800307B0 4600C184 */ sqrt.s $f6, $f24 /* BBB4 800307B4 46063032 */ c.eq.s $f6, $f6 /* BBB8 800307B8 00000000 */ nop /* BBBC 800307BC 45010004 */ bc1t .L800307D0 /* BBC0 800307C0 00000000 */ nop /* BBC4 800307C4 0C0187BC */ jal sqrtf /* BBC8 800307C8 4600C306 */ mov.s $f12, $f24 /* BBCC 800307CC 46000186 */ mov.s $f6, $f0 .L800307D0: /* BBD0 800307D0 C6040018 */ lwc1 $f4, 0x18($s0) /* BBD4 800307D4 C600000C */ lwc1 $f0, 0xc($s0) /* BBD8 800307D8 46002101 */ sub.s $f4, $f4, $f0 /* BBDC 800307DC 46042102 */ mul.s $f4, $f4, $f4 /* BBE0 800307E0 00000000 */ nop /* BBE4 800307E4 C6020014 */ lwc1 $f2, 0x14($s0) /* BBE8 800307E8 C6000020 */ lwc1 $f0, 0x20($s0) /* BBEC 800307EC 46020001 */ sub.s $f0, $f0, $f2 /* BBF0 800307F0 46000002 */ mul.s $f0, $f0, $f0 /* BBF4 800307F4 00000000 */ nop /* BBF8 800307F8 3C013F80 */ lui $at, 0x3f80 /* BBFC 800307FC 44811000 */ mtc1 $at, $f2 /* BC00 80030800 46002300 */ add.s $f12, $f4, $f0 /* BC04 80030804 46061603 */ div.s $f24, $f2, $f6 /* BC08 80030808 46006084 */ sqrt.s $f2, $f12 /* BC0C 8003080C 46021032 */ c.eq.s $f2, $f2 /* BC10 80030810 00000000 */ nop /* BC14 80030814 45010004 */ bc1t .L80030828 /* BC18 80030818 00000000 */ nop /* BC1C 8003081C 0C0187BC */ jal sqrtf /* BC20 80030820 00000000 */ nop /* BC24 80030824 46000086 */ mov.s $f2, $f0 .L80030828: /* BC28 80030828 4602B002 */ mul.s $f0, $f22, $f2 /* BC2C 8003082C 00000000 */ nop /* BC30 80030830 4602A102 */ mul.s $f4, $f20, $f2 /* BC34 80030834 00000000 */ nop /* BC38 80030838 46180002 */ mul.s $f0, $f0, $f24 /* BC3C 8003083C 00000000 */ nop /* BC40 80030840 C602000C */ lwc1 $f2, 0xc($s0) /* BC44 80030844 46001080 */ add.s $f2, $f2, $f0 /* BC48 80030848 46182102 */ mul.s $f4, $f4, $f24 /* BC4C 8003084C 00000000 */ nop /* BC50 80030850 E63E0014 */ swc1 $f30, 0x14($s1) /* BC54 80030854 E6220010 */ swc1 $f2, 0x10($s1) /* BC58 80030858 C6000014 */ lwc1 $f0, 0x14($s0) /* BC5C 8003085C 46040000 */ add.s $f0, $f0, $f4 /* BC60 80030860 0800C220 */ j .L80030880 /* BC64 80030864 E6200018 */ swc1 $f0, 0x18($s1) glabel L80030868_BC68 /* BC68 80030868 2402FFFF */ addiu $v0, $zero, -1 /* BC6C 8003086C 0800C220 */ j .L80030880 /* BC70 80030870 AE820000 */ sw $v0, ($s4) glabel L80030874_BC74 /* BC74 80030874 E6380010 */ swc1 $f24, 0x10($s1) .L80030878: /* BC78 80030878 E63E0014 */ swc1 $f30, 0x14($s1) /* BC7C 8003087C E63A0018 */ swc1 $f26, 0x18($s1) .L80030880: glabel L80030880_BC80 /* BC80 80030880 8FA20090 */ lw $v0, 0x90($sp) /* BC84 80030884 C7B800A0 */ lwc1 $f24, 0xa0($sp) /* BC88 80030888 C7BE00A4 */ lwc1 $f30, 0xa4($sp) /* BC8C 8003088C 8C500000 */ lw $s0, ($v0) /* BC90 80030890 C7BA00A8 */ lwc1 $f26, 0xa8($sp) /* BC94 80030894 16000005 */ bnez $s0, .L800308AC /* BC98 80030898 0260882D */ daddu $s1, $s3, $zero /* BC9C 8003089C E6780010 */ swc1 $f24, 0x10($s3) /* BCA0 800308A0 E67E0014 */ swc1 $f30, 0x14($s3) /* BCA4 800308A4 0800C4F0 */ j .L800313C0 /* BCA8 800308A8 E67A0018 */ swc1 $f26, 0x18($s3) .L800308AC: /* BCAC 800308AC 8E030000 */ lw $v1, ($s0) /* BCB0 800308B0 2C620007 */ sltiu $v0, $v1, 7 /* BCB4 800308B4 10400279 */ beqz $v0, .L8003129C /* BCB8 800308B8 00031080 */ sll $v0, $v1, 2 /* BCBC 800308BC 3C01800A */ lui $at, %hi(jtbl_80098230) /* BCC0 800308C0 00220821 */ addu $at, $at, $v0 /* BCC4 800308C4 8C228230 */ lw $v0, %lo(jtbl_80098230)($at) /* BCC8 800308C8 00400008 */ jr $v0 /* BCCC 800308CC 00000000 */ nop glabel L800308D0_BCD0 /* BCD0 800308D0 C6020018 */ lwc1 $f2, 0x18($s0) /* BCD4 800308D4 C600000C */ lwc1 $f0, 0xc($s0) /* BCD8 800308D8 46001081 */ sub.s $f2, $f2, $f0 /* BCDC 800308DC C6000014 */ lwc1 $f0, 0x14($s0) /* BCE0 800308E0 44061000 */ mfc1 $a2, $f2 /* BCE4 800308E4 C6020020 */ lwc1 $f2, 0x20($s0) /* BCE8 800308E8 4480A000 */ mtc1 $zero, $f20 /* BCEC 800308EC 46001081 */ sub.s $f2, $f2, $f0 /* BCF0 800308F0 4600A306 */ mov.s $f12, $f20 /* BCF4 800308F4 44071000 */ mfc1 $a3, $f2 /* BCF8 800308F8 0C00A720 */ jal atan2 /* BCFC 800308FC 4600A386 */ mov.s $f14, $f20 /* BD00 80030900 E6200000 */ swc1 $f0, ($s1) /* BD04 80030904 C6000004 */ lwc1 $f0, 4($s0) /* BD08 80030908 4614003C */ c.lt.s $f0, $f20 /* BD0C 8003090C 00000000 */ nop /* BD10 80030910 45030001 */ bc1tl .L80030918 /* BD14 80030914 46000007 */ neg.s $f0, $f0 .L80030918: /* BD18 80030918 E6200004 */ swc1 $f0, 4($s1) /* BD1C 8003091C C6000008 */ lwc1 $f0, 8($s0) /* BD20 80030920 E6200008 */ swc1 $f0, 8($s1) /* BD24 80030924 C6000024 */ lwc1 $f0, 0x24($s0) /* BD28 80030928 E620000C */ swc1 $f0, 0xc($s1) /* BD2C 8003092C 8E020028 */ lw $v0, 0x28($s0) /* BD30 80030930 50400023 */ beql $v0, $zero, .L800309C0 /* BD34 80030934 E6380010 */ swc1 $f24, 0x10($s1) /* BD38 80030938 C60A0014 */ lwc1 $f10, 0x14($s0) /* BD3C 8003093C C60C0020 */ lwc1 $f12, 0x20($s0) /* BD40 80030940 460C5281 */ sub.s $f10, $f10, $f12 /* BD44 80030944 C6000018 */ lwc1 $f0, 0x18($s0) /* BD48 80030948 46005287 */ neg.s $f10, $f10 /* BD4C 8003094C 46005280 */ add.s $f10, $f10, $f0 /* BD50 80030950 460A0201 */ sub.s $f8, $f0, $f10 /* BD54 80030954 46084102 */ mul.s $f4, $f8, $f8 /* BD58 80030958 00000000 */ nop /* BD5C 8003095C C606000C */ lwc1 $f6, 0xc($s0) /* BD60 80030960 46003181 */ sub.s $f6, $f6, $f0 /* BD64 80030964 460C3180 */ add.s $f6, $f6, $f12 /* BD68 80030968 46066301 */ sub.s $f12, $f12, $f6 /* BD6C 8003096C 460C6382 */ mul.s $f14, $f12, $f12 /* BD70 80030970 00000000 */ nop /* BD74 80030974 460AC081 */ sub.s $f2, $f24, $f10 /* BD78 80030978 46081082 */ mul.s $f2, $f2, $f8 /* BD7C 8003097C 00000000 */ nop /* BD80 80030980 4606D001 */ sub.s $f0, $f26, $f6 /* BD84 80030984 460C0002 */ mul.s $f0, $f0, $f12 /* BD88 80030988 00000000 */ nop /* BD8C 8003098C 460E2100 */ add.s $f4, $f4, $f14 /* BD90 80030990 46001080 */ add.s $f2, $f2, $f0 /* BD94 80030994 46041103 */ div.s $f4, $f2, $f4 /* BD98 80030998 46082202 */ mul.s $f8, $f4, $f8 /* BD9C 8003099C 00000000 */ nop /* BDA0 800309A0 460C2102 */ mul.s $f4, $f4, $f12 /* BDA4 800309A4 00000000 */ nop /* BDA8 800309A8 460A4200 */ add.s $f8, $f8, $f10 /* BDAC 800309AC 46062100 */ add.s $f4, $f4, $f6 /* BDB0 800309B0 E63E0014 */ swc1 $f30, 0x14($s1) /* BDB4 800309B4 E6280010 */ swc1 $f8, 0x10($s1) /* BDB8 800309B8 0800C2D4 */ j .L80030B50 /* BDBC 800309BC E6240018 */ swc1 $f4, 0x18($s1) .L800309C0: /* BDC0 800309C0 E63E0014 */ swc1 $f30, 0x14($s1) /* BDC4 800309C4 0800C2D4 */ j .L80030B50 /* BDC8 800309C8 E63A0018 */ swc1 $f26, 0x18($s1) glabel L800309CC_BDCC /* BDCC 800309CC C6020018 */ lwc1 $f2, 0x18($s0) /* BDD0 800309D0 C600000C */ lwc1 $f0, 0xc($s0) /* BDD4 800309D4 46001581 */ sub.s $f22, $f2, $f0 /* BDD8 800309D8 C6020020 */ lwc1 $f2, 0x20($s0) /* BDDC 800309DC C6000014 */ lwc1 $f0, 0x14($s0) /* BDE0 800309E0 46001081 */ sub.s $f2, $f2, $f0 /* BDE4 800309E4 44806000 */ mtc1 $zero, $f12 /* BDE8 800309E8 4600B587 */ neg.s $f22, $f22 /* BDEC 800309EC 4407B000 */ mfc1 $a3, $f22 /* BDF0 800309F0 44061000 */ mfc1 $a2, $f2 /* BDF4 800309F4 0C00A720 */ jal atan2 /* BDF8 800309F8 46006386 */ mov.s $f14, $f12 /* BDFC 800309FC E6200000 */ swc1 $f0, ($s1) /* BE00 80030A00 C6000004 */ lwc1 $f0, 4($s0) /* BE04 80030A04 4480E000 */ mtc1 $zero, $f28 /* BE08 80030A08 00000000 */ nop /* BE0C 80030A0C 461C003C */ c.lt.s $f0, $f28 /* BE10 80030A10 00000000 */ nop /* BE14 80030A14 45030001 */ bc1tl .L80030A1C /* BE18 80030A18 46000007 */ neg.s $f0, $f0 .L80030A1C: /* BE1C 80030A1C E6200004 */ swc1 $f0, 4($s1) /* BE20 80030A20 C6000008 */ lwc1 $f0, 8($s0) /* BE24 80030A24 E6200008 */ swc1 $f0, 8($s1) /* BE28 80030A28 C6000024 */ lwc1 $f0, 0x24($s0) /* BE2C 80030A2C E620000C */ swc1 $f0, 0xc($s1) /* BE30 80030A30 C60E000C */ lwc1 $f14, 0xc($s0) /* BE34 80030A34 C61C0018 */ lwc1 $f28, 0x18($s0) /* BE38 80030A38 460EE201 */ sub.s $f8, $f28, $f14 /* BE3C 80030A3C 46084502 */ mul.s $f20, $f8, $f8 /* BE40 80030A40 00000000 */ nop /* BE44 80030A44 460EC081 */ sub.s $f2, $f24, $f14 /* BE48 80030A48 46081082 */ mul.s $f2, $f2, $f8 /* BE4C 80030A4C 00000000 */ nop /* BE50 80030A50 E7BC0014 */ swc1 $f28, 0x14($sp) /* BE54 80030A54 C60C0014 */ lwc1 $f12, 0x14($s0) /* BE58 80030A58 C61C0020 */ lwc1 $f28, 0x20($s0) /* BE5C 80030A5C 460CE181 */ sub.s $f6, $f28, $f12 /* BE60 80030A60 46063482 */ mul.s $f18, $f6, $f6 /* BE64 80030A64 00000000 */ nop /* BE68 80030A68 460CD001 */ sub.s $f0, $f26, $f12 /* BE6C 80030A6C 46060002 */ mul.s $f0, $f0, $f6 /* BE70 80030A70 00000000 */ nop /* BE74 80030A74 4612A100 */ add.s $f4, $f20, $f18 /* BE78 80030A78 46001080 */ add.s $f2, $f2, $f0 /* BE7C 80030A7C 46041103 */ div.s $f4, $f2, $f4 /* BE80 80030A80 46082002 */ mul.s $f0, $f4, $f8 /* BE84 80030A84 00000000 */ nop /* BE88 80030A88 46062102 */ mul.s $f4, $f4, $f6 /* BE8C 80030A8C 00000000 */ nop /* BE90 80030A90 460E0400 */ add.s $f16, $f0, $f14 /* BE94 80030A94 46007586 */ mov.s $f22, $f14 /* BE98 80030A98 46004386 */ mov.s $f14, $f8 /* BE9C 80030A9C 46168201 */ sub.s $f8, $f16, $f22 /* BEA0 80030AA0 46087002 */ mul.s $f0, $f14, $f8 /* BEA4 80030AA4 00000000 */ nop /* BEA8 80030AA8 460C2280 */ add.s $f10, $f4, $f12 /* BEAC 80030AAC 46006106 */ mov.s $f4, $f12 /* BEB0 80030AB0 46003306 */ mov.s $f12, $f6 /* BEB4 80030AB4 46045181 */ sub.s $f6, $f10, $f4 /* BEB8 80030AB8 46066082 */ mul.s $f2, $f12, $f6 /* BEBC 80030ABC 00000000 */ nop /* BEC0 80030AC0 4610C501 */ sub.s $f20, $f24, $f16 /* BEC4 80030AC4 E7BC0018 */ swc1 $f28, 0x18($sp) /* BEC8 80030AC8 46020000 */ add.s $f0, $f0, $f2 /* BECC 80030ACC 4480E000 */ mtc1 $zero, $f28 /* BED0 80030AD0 00000000 */ nop /* BED4 80030AD4 461C003C */ c.lt.s $f0, $f28 /* BED8 80030AD8 00000000 */ nop /* BEDC 80030ADC 45000004 */ bc1f .L80030AF0 /* BEE0 80030AE0 460AD481 */ sub.s $f18, $f26, $f10 /* BEE4 80030AE4 4600B406 */ mov.s $f16, $f22 /* BEE8 80030AE8 0800C2CC */ j .L80030B30 /* BEEC 80030AEC 46002286 */ mov.s $f10, $f4 .L80030AF0: /* BEF0 80030AF0 46084082 */ mul.s $f2, $f8, $f8 /* BEF4 80030AF4 00000000 */ nop /* BEF8 80030AF8 46063182 */ mul.s $f6, $f6, $f6 /* BEFC 80030AFC 00000000 */ nop /* BF00 80030B00 460E7002 */ mul.s $f0, $f14, $f14 /* BF04 80030B04 00000000 */ nop /* BF08 80030B08 460C6102 */ mul.s $f4, $f12, $f12 /* BF0C 80030B0C 00000000 */ nop /* BF10 80030B10 46061080 */ add.s $f2, $f2, $f6 /* BF14 80030B14 46040000 */ add.s $f0, $f0, $f4 /* BF18 80030B18 4602003C */ c.lt.s $f0, $f2 /* BF1C 80030B1C 00000000 */ nop /* BF20 80030B20 45000003 */ bc1f .L80030B30 /* BF24 80030B24 00000000 */ nop /* BF28 80030B28 C7B00014 */ lwc1 $f16, 0x14($sp) /* BF2C 80030B2C C7AA0018 */ lwc1 $f10, 0x18($sp) .L80030B30: /* BF30 80030B30 8E020028 */ lw $v0, 0x28($s0) /* BF34 80030B34 54400004 */ bnel $v0, $zero, .L80030B48 /* BF38 80030B38 E6300010 */ swc1 $f16, 0x10($s1) /* BF3C 80030B3C 46148400 */ add.s $f16, $f16, $f20 /* BF40 80030B40 46125280 */ add.s $f10, $f10, $f18 /* BF44 80030B44 E6300010 */ swc1 $f16, 0x10($s1) .L80030B48: /* BF48 80030B48 E63E0014 */ swc1 $f30, 0x14($s1) /* BF4C 80030B4C E62A0018 */ swc1 $f10, 0x18($s1) .L80030B50: /* BF50 80030B50 12E0021B */ beqz $s7, .L800313C0 /* BF54 80030B54 00000000 */ nop /* BF58 80030B58 C6C00000 */ lwc1 $f0, ($s6) /* BF5C 80030B5C 3C013F80 */ lui $at, 0x3f80 /* BF60 80030B60 44812000 */ mtc1 $at, $f4 /* BF64 80030B64 00000000 */ nop /* BF68 80030B68 46040032 */ c.eq.s $f0, $f4 /* BF6C 80030B6C 00000000 */ nop /* BF70 80030B70 450101CA */ bc1t .L8003129C /* BF74 80030B74 00000000 */ nop /* BF78 80030B78 8E840000 */ lw $a0, ($s4) /* BF7C 80030B7C 24820002 */ addiu $v0, $a0, 2 /* BF80 80030B80 2C420003 */ sltiu $v0, $v0, 3 /* BF84 80030B84 144001C5 */ bnez $v0, .L8003129C /* BF88 80030B88 00000000 */ nop /* BF8C 80030B8C 8C830000 */ lw $v1, ($a0) /* BF90 80030B90 8E020000 */ lw $v0, ($s0) /* BF94 80030B94 146201C1 */ bne $v1, $v0, .L8003129C /* BF98 80030B98 00000000 */ nop /* BF9C 80030B9C C4820004 */ lwc1 $f2, 4($a0) /* BFA0 80030BA0 C6000004 */ lwc1 $f0, 4($s0) /* BFA4 80030BA4 46001032 */ c.eq.s $f2, $f0 /* BFA8 80030BA8 00000000 */ nop /* BFAC 80030BAC 450001BB */ bc1f .L8003129C /* BFB0 80030BB0 00000000 */ nop /* BFB4 80030BB4 C4820008 */ lwc1 $f2, 8($a0) /* BFB8 80030BB8 C6000008 */ lwc1 $f0, 8($s0) /* BFBC 80030BBC 46001032 */ c.eq.s $f2, $f0 /* BFC0 80030BC0 00000000 */ nop /* BFC4 80030BC4 450001B5 */ bc1f .L8003129C /* BFC8 80030BC8 00000000 */ nop /* BFCC 80030BCC C4820024 */ lwc1 $f2, 0x24($a0) /* BFD0 80030BD0 C6000024 */ lwc1 $f0, 0x24($s0) /* BFD4 80030BD4 46001032 */ c.eq.s $f2, $f0 /* BFD8 80030BD8 00000000 */ nop /* BFDC 80030BDC 450001AF */ bc1f .L8003129C /* BFE0 80030BE0 00000000 */ nop /* BFE4 80030BE4 8C830028 */ lw $v1, 0x28($a0) /* BFE8 80030BE8 8E020028 */ lw $v0, 0x28($s0) /* BFEC 80030BEC 546201AB */ bnel $v1, $v0, .L8003129C /* BFF0 80030BF0 E6C40000 */ swc1 $f4, ($s6) /* BFF4 80030BF4 0800C4A7 */ j .L8003129C /* BFF8 80030BF8 00000000 */ nop glabel L80030BFC_BFFC /* BFFC 80030BFC C6040004 */ lwc1 $f4, 4($s0) /* C000 80030C00 44800000 */ mtc1 $zero, $f0 /* C004 80030C04 00000000 */ nop /* C008 80030C08 4600203C */ c.lt.s $f4, $f0 /* C00C 80030C0C 00000000 */ nop /* C010 80030C10 45000008 */ bc1f .L80030C34 /* C014 80030C14 00000000 */ nop /* C018 80030C18 C600000C */ lwc1 $f0, 0xc($s0) /* C01C 80030C1C 4600C581 */ sub.s $f22, $f24, $f0 /* C020 80030C20 C6020014 */ lwc1 $f2, 0x14($s0) /* C024 80030C24 46002007 */ neg.s $f0, $f4 /* C028 80030C28 E6200004 */ swc1 $f0, 4($s1) /* C02C 80030C2C 0800C312 */ j .L80030C48 /* C030 80030C30 4602D501 */ sub.s $f20, $f26, $f2 .L80030C34: /* C034 80030C34 C600000C */ lwc1 $f0, 0xc($s0) /* C038 80030C38 46180581 */ sub.s $f22, $f0, $f24 /* C03C 80030C3C C6000014 */ lwc1 $f0, 0x14($s0) /* C040 80030C40 E6240004 */ swc1 $f4, 4($s1) /* C044 80030C44 461A0501 */ sub.s $f20, $f0, $f26 .L80030C48: /* C048 80030C48 4406B000 */ mfc1 $a2, $f22 /* C04C 80030C4C 44806000 */ mtc1 $zero, $f12 /* C050 80030C50 4407A000 */ mfc1 $a3, $f20 /* C054 80030C54 0C00A720 */ jal atan2 /* C058 80030C58 46006386 */ mov.s $f14, $f12 /* C05C 80030C5C E6200000 */ swc1 $f0, ($s1) /* C060 80030C60 C6000008 */ lwc1 $f0, 8($s0) /* C064 80030C64 E6200008 */ swc1 $f0, 8($s1) /* C068 80030C68 C6000024 */ lwc1 $f0, 0x24($s0) /* C06C 80030C6C E620000C */ swc1 $f0, 0xc($s1) /* C070 80030C70 8E020028 */ lw $v0, 0x28($s0) /* C074 80030C74 5040003E */ beql $v0, $zero, .L80030D70 /* C078 80030C78 E6380010 */ swc1 $f24, 0x10($s1) /* C07C 80030C7C C600000C */ lwc1 $f0, 0xc($s0) /* C080 80030C80 4600C581 */ sub.s $f22, $f24, $f0 /* C084 80030C84 4616B082 */ mul.s $f2, $f22, $f22 /* C088 80030C88 00000000 */ nop /* C08C 80030C8C C6000014 */ lwc1 $f0, 0x14($s0) /* C090 80030C90 4600D501 */ sub.s $f20, $f26, $f0 /* C094 80030C94 4614A002 */ mul.s $f0, $f20, $f20 /* C098 80030C98 00000000 */ nop /* C09C 80030C9C 46001600 */ add.s $f24, $f2, $f0 /* C0A0 80030CA0 4480E000 */ mtc1 $zero, $f28 /* C0A4 80030CA4 00000000 */ nop /* C0A8 80030CA8 461CC032 */ c.eq.s $f24, $f28 /* C0AC 80030CAC 00000000 */ nop /* C0B0 80030CB0 45010031 */ bc1t .L80030D78 /* C0B4 80030CB4 00000000 */ nop /* C0B8 80030CB8 4600C184 */ sqrt.s $f6, $f24 /* C0BC 80030CBC 46063032 */ c.eq.s $f6, $f6 /* C0C0 80030CC0 00000000 */ nop /* C0C4 80030CC4 45010004 */ bc1t .L80030CD8 /* C0C8 80030CC8 00000000 */ nop /* C0CC 80030CCC 0C0187BC */ jal sqrtf /* C0D0 80030CD0 4600C306 */ mov.s $f12, $f24 /* C0D4 80030CD4 46000186 */ mov.s $f6, $f0 .L80030CD8: /* C0D8 80030CD8 C6040018 */ lwc1 $f4, 0x18($s0) /* C0DC 80030CDC C600000C */ lwc1 $f0, 0xc($s0) /* C0E0 80030CE0 46002101 */ sub.s $f4, $f4, $f0 /* C0E4 80030CE4 46042102 */ mul.s $f4, $f4, $f4 /* C0E8 80030CE8 00000000 */ nop /* C0EC 80030CEC C6020014 */ lwc1 $f2, 0x14($s0) /* C0F0 80030CF0 C6000020 */ lwc1 $f0, 0x20($s0) /* C0F4 80030CF4 46020001 */ sub.s $f0, $f0, $f2 /* C0F8 80030CF8 46000002 */ mul.s $f0, $f0, $f0 /* C0FC 80030CFC 00000000 */ nop /* C100 80030D00 3C013F80 */ lui $at, 0x3f80 /* C104 80030D04 44811000 */ mtc1 $at, $f2 /* C108 80030D08 46002300 */ add.s $f12, $f4, $f0 /* C10C 80030D0C 46061603 */ div.s $f24, $f2, $f6 /* C110 80030D10 46006084 */ sqrt.s $f2, $f12 /* C114 80030D14 46021032 */ c.eq.s $f2, $f2 /* C118 80030D18 00000000 */ nop /* C11C 80030D1C 45010004 */ bc1t .L80030D30 /* C120 80030D20 00000000 */ nop /* C124 80030D24 0C0187BC */ jal sqrtf /* C128 80030D28 00000000 */ nop /* C12C 80030D2C 46000086 */ mov.s $f2, $f0 .L80030D30: /* C130 80030D30 4602B002 */ mul.s $f0, $f22, $f2 /* C134 80030D34 00000000 */ nop /* C138 80030D38 4602A102 */ mul.s $f4, $f20, $f2 /* C13C 80030D3C 00000000 */ nop /* C140 80030D40 46180002 */ mul.s $f0, $f0, $f24 /* C144 80030D44 00000000 */ nop /* C148 80030D48 C602000C */ lwc1 $f2, 0xc($s0) /* C14C 80030D4C 46001080 */ add.s $f2, $f2, $f0 /* C150 80030D50 46182102 */ mul.s $f4, $f4, $f24 /* C154 80030D54 00000000 */ nop /* C158 80030D58 E63E0014 */ swc1 $f30, 0x14($s1) /* C15C 80030D5C E6220010 */ swc1 $f2, 0x10($s1) /* C160 80030D60 C6000014 */ lwc1 $f0, 0x14($s0) /* C164 80030D64 46040000 */ add.s $f0, $f0, $f4 /* C168 80030D68 0800C35E */ j .L80030D78 /* C16C 80030D6C E6200018 */ swc1 $f0, 0x18($s1) .L80030D70: /* C170 80030D70 E63E0014 */ swc1 $f30, 0x14($s1) /* C174 80030D74 E63A0018 */ swc1 $f26, 0x18($s1) .L80030D78: /* C178 80030D78 12E00191 */ beqz $s7, .L800313C0 /* C17C 80030D7C 00000000 */ nop /* C180 80030D80 C6C00000 */ lwc1 $f0, ($s6) /* C184 80030D84 3C013F80 */ lui $at, 0x3f80 /* C188 80030D88 44812000 */ mtc1 $at, $f4 /* C18C 80030D8C 00000000 */ nop /* C190 80030D90 46040032 */ c.eq.s $f0, $f4 /* C194 80030D94 00000000 */ nop /* C198 80030D98 45010140 */ bc1t .L8003129C /* C19C 80030D9C 00000000 */ nop /* C1A0 80030DA0 8E840000 */ lw $a0, ($s4) /* C1A4 80030DA4 24820002 */ addiu $v0, $a0, 2 /* C1A8 80030DA8 2C420003 */ sltiu $v0, $v0, 3 /* C1AC 80030DAC 1440013B */ bnez $v0, .L8003129C /* C1B0 80030DB0 00000000 */ nop /* C1B4 80030DB4 8C830000 */ lw $v1, ($a0) /* C1B8 80030DB8 8E020000 */ lw $v0, ($s0) /* C1BC 80030DBC 14620137 */ bne $v1, $v0, .L8003129C /* C1C0 80030DC0 00000000 */ nop /* C1C4 80030DC4 C4820004 */ lwc1 $f2, 4($a0) /* C1C8 80030DC8 C6000004 */ lwc1 $f0, 4($s0) /* C1CC 80030DCC 46001032 */ c.eq.s $f2, $f0 /* C1D0 80030DD0 00000000 */ nop /* C1D4 80030DD4 45000131 */ bc1f .L8003129C /* C1D8 80030DD8 00000000 */ nop /* C1DC 80030DDC C4820008 */ lwc1 $f2, 8($a0) /* C1E0 80030DE0 C6000008 */ lwc1 $f0, 8($s0) /* C1E4 80030DE4 46001032 */ c.eq.s $f2, $f0 /* C1E8 80030DE8 00000000 */ nop /* C1EC 80030DEC 4500012B */ bc1f .L8003129C /* C1F0 80030DF0 00000000 */ nop /* C1F4 80030DF4 C4820024 */ lwc1 $f2, 0x24($a0) /* C1F8 80030DF8 C6000024 */ lwc1 $f0, 0x24($s0) /* C1FC 80030DFC 46001032 */ c.eq.s $f2, $f0 /* C200 80030E00 00000000 */ nop /* C204 80030E04 45000125 */ bc1f .L8003129C /* C208 80030E08 00000000 */ nop /* C20C 80030E0C 8C830028 */ lw $v1, 0x28($a0) /* C210 80030E10 8E020028 */ lw $v0, 0x28($s0) /* C214 80030E14 10620121 */ beq $v1, $v0, .L8003129C /* C218 80030E18 00000000 */ nop /* C21C 80030E1C C482000C */ lwc1 $f2, 0xc($a0) /* C220 80030E20 C600000C */ lwc1 $f0, 0xc($s0) /* C224 80030E24 46001032 */ c.eq.s $f2, $f0 /* C228 80030E28 00000000 */ nop /* C22C 80030E2C 4500011B */ bc1f .L8003129C /* C230 80030E30 00000000 */ nop /* C234 80030E34 C4820014 */ lwc1 $f2, 0x14($a0) /* C238 80030E38 C6000014 */ lwc1 $f0, 0x14($s0) /* C23C 80030E3C 46001032 */ c.eq.s $f2, $f0 /* C240 80030E40 00000000 */ nop /* C244 80030E44 45030115 */ bc1tl .L8003129C /* C248 80030E48 E6C40000 */ swc1 $f4, ($s6) /* C24C 80030E4C 0800C4A7 */ j .L8003129C /* C250 80030E50 00000000 */ nop glabel L80030E54_C254 /* C254 80030E54 8E020028 */ lw $v0, 0x28($s0) /* C258 80030E58 1440005D */ bnez $v0, .L80030FD0 /* C25C 80030E5C 00000000 */ nop /* C260 80030E60 C612000C */ lwc1 $f18, 0xc($s0) /* C264 80030E64 C6100018 */ lwc1 $f16, 0x18($s0) /* C268 80030E68 C60A0014 */ lwc1 $f10, 0x14($s0) /* C26C 80030E6C C60C0020 */ lwc1 $f12, 0x20($s0) /* C270 80030E70 C6040010 */ lwc1 $f4, 0x10($s0) /* C274 80030E74 C60E001C */ lwc1 $f14, 0x1c($s0) /* C278 80030E78 46109032 */ c.eq.s $f18, $f16 /* C27C 80030E7C 00000000 */ nop /* C280 80030E80 45000007 */ bc1f .L80030EA0 /* C284 80030E84 46048201 */ sub.s $f8, $f16, $f4 /* C288 80030E88 460C5032 */ c.eq.s $f10, $f12 /* C28C 80030E8C 00000000 */ nop /* C290 80030E90 45000003 */ bc1f .L80030EA0 /* C294 80030E94 00000000 */ nop /* C298 80030E98 46002486 */ mov.s $f18, $f4 /* C29C 80030E9C 46007286 */ mov.s $f10, $f14 .L80030EA0: /* C2A0 80030EA0 44800000 */ mtc1 $zero, $f0 /* C2A4 80030EA4 00000000 */ nop /* C2A8 80030EA8 46004032 */ c.eq.s $f8, $f0 /* C2AC 80030EAC 00000000 */ nop /* C2B0 80030EB0 45020017 */ bc1fl .L80030F10 /* C2B4 80030EB4 460C5181 */ sub.s $f6, $f10, $f12 /* C2B8 80030EB8 46128181 */ sub.s $f6, $f16, $f18 /* C2BC 80030EBC 46064102 */ mul.s $f4, $f8, $f6 /* C2C0 80030EC0 00000000 */ nop /* C2C4 80030EC4 461A6081 */ sub.s $f2, $f12, $f26 /* C2C8 80030EC8 46081082 */ mul.s $f2, $f2, $f8 /* C2CC 80030ECC 00000000 */ nop /* C2D0 80030ED0 460C5281 */ sub.s $f10, $f10, $f12 /* C2D4 80030ED4 460E6201 */ sub.s $f8, $f12, $f14 /* C2D8 80030ED8 4610C001 */ sub.s $f0, $f24, $f16 /* C2DC 80030EDC 46081083 */ div.s $f2, $f2, $f8 /* C2E0 80030EE0 46020000 */ add.s $f0, $f0, $f2 /* C2E4 80030EE4 46005082 */ mul.s $f2, $f10, $f0 /* C2E8 80030EE8 00000000 */ nop /* C2EC 80030EEC 46003182 */ mul.s $f6, $f6, $f0 /* C2F0 80030EF0 00000000 */ nop /* C2F4 80030EF4 46082103 */ div.s $f4, $f4, $f8 /* C2F8 80030EF8 460A2101 */ sub.s $f4, $f4, $f10 /* C2FC 80030EFC 46041083 */ div.s $f2, $f2, $f4 /* C300 80030F00 46181200 */ add.s $f8, $f2, $f24 /* C304 80030F04 46043183 */ div.s $f6, $f6, $f4 /* C308 80030F08 0800C3D8 */ j .L80030F60 /* C30C 80030F0C 461A3000 */ add.s $f0, $f6, $f26 .L80030F10: /* C310 80030F10 460E6081 */ sub.s $f2, $f12, $f14 /* C314 80030F14 46023102 */ mul.s $f4, $f6, $f2 /* C318 80030F18 00000000 */ nop /* C31C 80030F1C 46188001 */ sub.s $f0, $f16, $f24 /* C320 80030F20 46020002 */ mul.s $f0, $f0, $f2 /* C324 80030F24 00000000 */ nop /* C328 80030F28 460CD081 */ sub.s $f2, $f26, $f12 /* C32C 80030F2C 46080003 */ div.s $f0, $f0, $f8 /* C330 80030F30 46001080 */ add.s $f2, $f2, $f0 /* C334 80030F34 46023182 */ mul.s $f6, $f6, $f2 /* C338 80030F38 00000000 */ nop /* C33C 80030F3C 46128001 */ sub.s $f0, $f16, $f18 /* C340 80030F40 46020082 */ mul.s $f2, $f0, $f2 /* C344 80030F44 00000000 */ nop /* C348 80030F48 46082103 */ div.s $f4, $f4, $f8 /* C34C 80030F4C 46002101 */ sub.s $f4, $f4, $f0 /* C350 80030F50 46043183 */ div.s $f6, $f6, $f4 /* C354 80030F54 46183200 */ add.s $f8, $f6, $f24 /* C358 80030F58 46041083 */ div.s $f2, $f2, $f4 /* C35C 80030F5C 461A1000 */ add.s $f0, $f2, $f26 .L80030F60: /* C360 80030F60 E6280010 */ swc1 $f8, 0x10($s1) /* C364 80030F64 E63E0014 */ swc1 $f30, 0x14($s1) /* C368 80030F68 12A0003E */ beqz $s5, .L80031064 /* C36C 80030F6C E6200018 */ swc1 $f0, 0x18($s1) /* C370 80030F70 C6020018 */ lwc1 $f2, 0x18($s0) /* C374 80030F74 C600000C */ lwc1 $f0, 0xc($s0) /* C378 80030F78 46001081 */ sub.s $f2, $f2, $f0 /* C37C 80030F7C C6000014 */ lwc1 $f0, 0x14($s0) /* C380 80030F80 44061000 */ mfc1 $a2, $f2 /* C384 80030F84 C6020020 */ lwc1 $f2, 0x20($s0) /* C388 80030F88 4480A000 */ mtc1 $zero, $f20 /* C38C 80030F8C 46001081 */ sub.s $f2, $f2, $f0 /* C390 80030F90 4600A306 */ mov.s $f12, $f20 /* C394 80030F94 44071000 */ mfc1 $a3, $f2 /* C398 80030F98 0C00A720 */ jal atan2 /* C39C 80030F9C 4600A386 */ mov.s $f14, $f20 /* C3A0 80030FA0 E6200000 */ swc1 $f0, ($s1) /* C3A4 80030FA4 C6000004 */ lwc1 $f0, 4($s0) /* C3A8 80030FA8 4614003C */ c.lt.s $f0, $f20 /* C3AC 80030FAC 00000000 */ nop /* C3B0 80030FB0 45030001 */ bc1tl .L80030FB8 /* C3B4 80030FB4 46000007 */ neg.s $f0, $f0 .L80030FB8: /* C3B8 80030FB8 E6200004 */ swc1 $f0, 4($s1) /* C3BC 80030FBC C6000008 */ lwc1 $f0, 8($s0) /* C3C0 80030FC0 E6200008 */ swc1 $f0, 8($s1) /* C3C4 80030FC4 C6000024 */ lwc1 $f0, 0x24($s0) /* C3C8 80030FC8 0800C419 */ j .L80031064 /* C3CC 80030FCC E620000C */ swc1 $f0, 0xc($s1) .L80030FD0: /* C3D0 80030FD0 12A0001D */ beqz $s5, .L80031048 /* C3D4 80030FD4 00000000 */ nop /* C3D8 80030FD8 C6020018 */ lwc1 $f2, 0x18($s0) /* C3DC 80030FDC C600000C */ lwc1 $f0, 0xc($s0) /* C3E0 80030FE0 46001081 */ sub.s $f2, $f2, $f0 /* C3E4 80030FE4 C6000014 */ lwc1 $f0, 0x14($s0) /* C3E8 80030FE8 44061000 */ mfc1 $a2, $f2 /* C3EC 80030FEC C6020020 */ lwc1 $f2, 0x20($s0) /* C3F0 80030FF0 4480A000 */ mtc1 $zero, $f20 /* C3F4 80030FF4 46001081 */ sub.s $f2, $f2, $f0 /* C3F8 80030FF8 4600A306 */ mov.s $f12, $f20 /* C3FC 80030FFC 44071000 */ mfc1 $a3, $f2 /* C400 80031000 0C00A720 */ jal atan2 /* C404 80031004 4600A386 */ mov.s $f14, $f20 /* C408 80031008 E6200000 */ swc1 $f0, ($s1) /* C40C 8003100C C6000004 */ lwc1 $f0, 4($s0) /* C410 80031010 4614003C */ c.lt.s $f0, $f20 /* C414 80031014 00000000 */ nop /* C418 80031018 45030001 */ bc1tl .L80031020 /* C41C 8003101C 46000007 */ neg.s $f0, $f0 .L80031020: /* C420 80031020 E6200004 */ swc1 $f0, 4($s1) /* C424 80031024 C6000008 */ lwc1 $f0, 8($s0) /* C428 80031028 E6200008 */ swc1 $f0, 8($s1) /* C42C 8003102C C6000024 */ lwc1 $f0, 0x24($s0) /* C430 80031030 E620000C */ swc1 $f0, 0xc($s1) /* C434 80031034 C6000018 */ lwc1 $f0, 0x18($s0) /* C438 80031038 E6200010 */ swc1 $f0, 0x10($s1) /* C43C 8003103C C6000020 */ lwc1 $f0, 0x20($s0) /* C440 80031040 0800C418 */ j .L80031060 /* C444 80031044 E6200018 */ swc1 $f0, 0x18($s1) .L80031048: /* C448 80031048 52E00006 */ beql $s7, $zero, .L80031064 /* C44C 8003104C E63E0014 */ swc1 $f30, 0x14($s1) /* C450 80031050 C6400010 */ lwc1 $f0, 0x10($s2) /* C454 80031054 E6200010 */ swc1 $f0, 0x10($s1) /* C458 80031058 C6400018 */ lwc1 $f0, 0x18($s2) /* C45C 8003105C E6200018 */ swc1 $f0, 0x18($s1) .L80031060: /* C460 80031060 E63E0014 */ swc1 $f30, 0x14($s1) .L80031064: /* C464 80031064 0800C4A6 */ j .L80031298 /* C468 80031068 2402FFFF */ addiu $v0, $zero, -1 glabel L8003106C_C46C /* C46C 8003106C 8E020028 */ lw $v0, 0x28($s0) /* C470 80031070 1440003A */ bnez $v0, .L8003115C /* C474 80031074 00000000 */ nop /* C478 80031078 C60C0010 */ lwc1 $f12, 0x10($s0) /* C47C 8003107C C6060018 */ lwc1 $f6, 0x18($s0) /* C480 80031080 460C3181 */ sub.s $f6, $f6, $f12 /* C484 80031084 46063102 */ mul.s $f4, $f6, $f6 /* C488 80031088 00000000 */ nop /* C48C 8003108C C60A001C */ lwc1 $f10, 0x1c($s0) /* C490 80031090 C6080020 */ lwc1 $f8, 0x20($s0) /* C494 80031094 460A4201 */ sub.s $f8, $f8, $f10 /* C498 80031098 46084382 */ mul.s $f14, $f8, $f8 /* C49C 8003109C 00000000 */ nop /* C4A0 800310A0 460CC081 */ sub.s $f2, $f24, $f12 /* C4A4 800310A4 46061082 */ mul.s $f2, $f2, $f6 /* C4A8 800310A8 00000000 */ nop /* C4AC 800310AC 460AD001 */ sub.s $f0, $f26, $f10 /* C4B0 800310B0 46080002 */ mul.s $f0, $f0, $f8 /* C4B4 800310B4 00000000 */ nop /* C4B8 800310B8 460E2100 */ add.s $f4, $f4, $f14 /* C4BC 800310BC 46001080 */ add.s $f2, $f2, $f0 /* C4C0 800310C0 46041103 */ div.s $f4, $f2, $f4 /* C4C4 800310C4 46062182 */ mul.s $f6, $f4, $f6 /* C4C8 800310C8 00000000 */ nop /* C4CC 800310CC 46082102 */ mul.s $f4, $f4, $f8 /* C4D0 800310D0 00000000 */ nop /* C4D4 800310D4 460C3080 */ add.s $f2, $f6, $f12 /* C4D8 800310D8 44800000 */ mtc1 $zero, $f0 /* C4DC 800310DC 460A2100 */ add.s $f4, $f4, $f10 /* C4E0 800310E0 E63E0014 */ swc1 $f30, 0x14($s1) /* C4E4 800310E4 E6220010 */ swc1 $f2, 0x10($s1) /* C4E8 800310E8 E6240018 */ swc1 $f4, 0x18($s1) /* C4EC 800310EC C6080004 */ lwc1 $f8, 4($s0) /* C4F0 800310F0 4600403C */ c.lt.s $f8, $f0 /* C4F4 800310F4 00000000 */ nop /* C4F8 800310F8 45000008 */ bc1f .L8003111C /* C4FC 800310FC 00000000 */ nop /* C500 80031100 C600000C */ lwc1 $f0, 0xc($s0) /* C504 80031104 46001581 */ sub.s $f22, $f2, $f0 /* C508 80031108 C6020014 */ lwc1 $f2, 0x14($s0) /* C50C 8003110C 46004007 */ neg.s $f0, $f8 /* C510 80031110 E6200004 */ swc1 $f0, 4($s1) /* C514 80031114 0800C44C */ j .L80031130 /* C518 80031118 46022501 */ sub.s $f20, $f4, $f2 .L8003111C: /* C51C 8003111C C600000C */ lwc1 $f0, 0xc($s0) /* C520 80031120 46020581 */ sub.s $f22, $f0, $f2 /* C524 80031124 C6000014 */ lwc1 $f0, 0x14($s0) /* C528 80031128 E6280004 */ swc1 $f8, 4($s1) /* C52C 8003112C 46040501 */ sub.s $f20, $f0, $f4 .L80031130: /* C530 80031130 4406B000 */ mfc1 $a2, $f22 /* C534 80031134 44806000 */ mtc1 $zero, $f12 /* C538 80031138 4407A000 */ mfc1 $a3, $f20 /* C53C 8003113C 0C00A720 */ jal atan2 /* C540 80031140 46006386 */ mov.s $f14, $f12 /* C544 80031144 E6200000 */ swc1 $f0, ($s1) /* C548 80031148 C6000008 */ lwc1 $f0, 8($s0) /* C54C 8003114C E6200008 */ swc1 $f0, 8($s1) /* C550 80031150 C6000024 */ lwc1 $f0, 0x24($s0) /* C554 80031154 0800C482 */ j .L80031208 /* C558 80031158 E620000C */ swc1 $f0, 0xc($s1) .L8003115C: /* C55C 8003115C 12A00023 */ beqz $s5, .L800311EC /* C560 80031160 00000000 */ nop /* C564 80031164 C6060004 */ lwc1 $f6, 4($s0) /* C568 80031168 44800000 */ mtc1 $zero, $f0 /* C56C 8003116C 00000000 */ nop /* C570 80031170 4600303C */ c.lt.s $f6, $f0 /* C574 80031174 00000000 */ nop /* C578 80031178 4500000A */ bc1f .L800311A4 /* C57C 8003117C 00000000 */ nop /* C580 80031180 C6020018 */ lwc1 $f2, 0x18($s0) /* C584 80031184 C600000C */ lwc1 $f0, 0xc($s0) /* C588 80031188 46001581 */ sub.s $f22, $f2, $f0 /* C58C 8003118C C6040020 */ lwc1 $f4, 0x20($s0) /* C590 80031190 C6020014 */ lwc1 $f2, 0x14($s0) /* C594 80031194 46003007 */ neg.s $f0, $f6 /* C598 80031198 E6200004 */ swc1 $f0, 4($s1) /* C59C 8003119C 0800C470 */ j .L800311C0 /* C5A0 800311A0 46022501 */ sub.s $f20, $f4, $f2 .L800311A4: /* C5A4 800311A4 C602000C */ lwc1 $f2, 0xc($s0) /* C5A8 800311A8 C6000018 */ lwc1 $f0, 0x18($s0) /* C5AC 800311AC 46001581 */ sub.s $f22, $f2, $f0 /* C5B0 800311B0 C6020014 */ lwc1 $f2, 0x14($s0) /* C5B4 800311B4 C6000020 */ lwc1 $f0, 0x20($s0) /* C5B8 800311B8 E6260004 */ swc1 $f6, 4($s1) /* C5BC 800311BC 46001501 */ sub.s $f20, $f2, $f0 .L800311C0: /* C5C0 800311C0 4406B000 */ mfc1 $a2, $f22 /* C5C4 800311C4 44806000 */ mtc1 $zero, $f12 /* C5C8 800311C8 4407A000 */ mfc1 $a3, $f20 /* C5CC 800311CC 0C00A720 */ jal atan2 /* C5D0 800311D0 46006386 */ mov.s $f14, $f12 /* C5D4 800311D4 E6200000 */ swc1 $f0, ($s1) /* C5D8 800311D8 C6000008 */ lwc1 $f0, 8($s0) /* C5DC 800311DC E6200008 */ swc1 $f0, 8($s1) /* C5E0 800311E0 C6000024 */ lwc1 $f0, 0x24($s0) /* C5E4 800311E4 0800C47D */ j .L800311F4 /* C5E8 800311E8 E620000C */ swc1 $f0, 0xc($s1) .L800311EC: /* C5EC 800311EC 52E00006 */ beql $s7, $zero, .L80031208 /* C5F0 800311F0 E63E0014 */ swc1 $f30, 0x14($s1) .L800311F4: /* C5F4 800311F4 C6000018 */ lwc1 $f0, 0x18($s0) /* C5F8 800311F8 E6200010 */ swc1 $f0, 0x10($s1) /* C5FC 800311FC C6000020 */ lwc1 $f0, 0x20($s0) /* C600 80031200 E6200018 */ swc1 $f0, 0x18($s1) /* C604 80031204 E63E0014 */ swc1 $f30, 0x14($s1) .L80031208: /* C608 80031208 0800C4A6 */ j .L80031298 /* C60C 8003120C 2402FFFF */ addiu $v0, $zero, -1 glabel L80031210_C610 /* C610 80031210 E6380010 */ swc1 $f24, 0x10($s1) /* C614 80031214 E63E0014 */ swc1 $f30, 0x14($s1) /* C618 80031218 0800C4A7 */ j .L8003129C /* C61C 8003121C E63A0018 */ swc1 $f26, 0x18($s1) glabel L80031220_C620 /* C620 80031220 C6020018 */ lwc1 $f2, 0x18($s0) /* C624 80031224 C600000C */ lwc1 $f0, 0xc($s0) /* C628 80031228 46001081 */ sub.s $f2, $f2, $f0 /* C62C 8003122C C6000014 */ lwc1 $f0, 0x14($s0) /* C630 80031230 44061000 */ mfc1 $a2, $f2 /* C634 80031234 C6020020 */ lwc1 $f2, 0x20($s0) /* C638 80031238 4480A000 */ mtc1 $zero, $f20 /* C63C 8003123C 46001081 */ sub.s $f2, $f2, $f0 /* C640 80031240 4600A306 */ mov.s $f12, $f20 /* C644 80031244 44071000 */ mfc1 $a3, $f2 /* C648 80031248 0C00A720 */ jal atan2 /* C64C 8003124C 4600A386 */ mov.s $f14, $f20 /* C650 80031250 E6200000 */ swc1 $f0, ($s1) /* C654 80031254 C6000004 */ lwc1 $f0, 4($s0) /* C658 80031258 4614003C */ c.lt.s $f0, $f20 /* C65C 8003125C 00000000 */ nop /* C660 80031260 45030001 */ bc1tl .L80031268 /* C664 80031264 46000007 */ neg.s $f0, $f0 .L80031268: /* C668 80031268 E6200004 */ swc1 $f0, 4($s1) /* C66C 8003126C C6000008 */ lwc1 $f0, 8($s0) /* C670 80031270 E6200008 */ swc1 $f0, 8($s1) /* C674 80031274 C6000024 */ lwc1 $f0, 0x24($s0) /* C678 80031278 E620000C */ swc1 $f0, 0xc($s1) /* C67C 8003127C C6000018 */ lwc1 $f0, 0x18($s0) /* C680 80031280 E6200010 */ swc1 $f0, 0x10($s1) /* C684 80031284 C600001C */ lwc1 $f0, 0x1c($s0) /* C688 80031288 E6200014 */ swc1 $f0, 0x14($s1) /* C68C 8003128C C6000020 */ lwc1 $f0, 0x20($s0) /* C690 80031290 2402FFFE */ addiu $v0, $zero, -2 /* C694 80031294 E6200018 */ swc1 $f0, 0x18($s1) .L80031298: /* C698 80031298 AE820000 */ sw $v0, ($s4) .L8003129C: /* C69C 8003129C 12E00048 */ beqz $s7, .L800313C0 /* C6A0 800312A0 24020005 */ addiu $v0, $zero, 5 /* C6A4 800312A4 8E030000 */ lw $v1, ($s0) /* C6A8 800312A8 10620007 */ beq $v1, $v0, .L800312C8 /* C6AC 800312AC 00000000 */ nop /* C6B0 800312B0 C6420000 */ lwc1 $f2, ($s2) /* C6B4 800312B4 C6600000 */ lwc1 $f0, ($s3) /* C6B8 800312B8 46001032 */ c.eq.s $f2, $f0 /* C6BC 800312BC 00000000 */ nop /* C6C0 800312C0 4501003F */ bc1t .L800313C0 /* C6C4 800312C4 00000000 */ nop .L800312C8: /* C6C8 800312C8 C6400000 */ lwc1 $f0, ($s2) /* C6CC 800312CC C6620000 */ lwc1 $f2, ($s3) /* C6D0 800312D0 46020001 */ sub.s $f0, $f0, $f2 /* C6D4 800312D4 3C014040 */ lui $at, 0x4040 /* C6D8 800312D8 44811000 */ mtc1 $at, $f2 /* C6DC 800312DC 46000005 */ abs.s $f0, $f0 /* C6E0 800312E0 4602003C */ c.lt.s $f0, $f2 /* C6E4 800312E4 00000000 */ nop /* C6E8 800312E8 45000035 */ bc1f .L800313C0 /* C6EC 800312EC 00000000 */ nop /* C6F0 800312F0 C6400004 */ lwc1 $f0, 4($s2) /* C6F4 800312F4 C6620004 */ lwc1 $f2, 4($s3) /* C6F8 800312F8 46020001 */ sub.s $f0, $f0, $f2 /* C6FC 800312FC 3C014120 */ lui $at, 0x4120 /* C700 80031300 44812000 */ mtc1 $at, $f4 /* C704 80031304 46000005 */ abs.s $f0, $f0 /* C708 80031308 4604003C */ c.lt.s $f0, $f4 /* C70C 8003130C 00000000 */ nop /* C710 80031310 4500002B */ bc1f .L800313C0 /* C714 80031314 00000000 */ nop /* C718 80031318 C6400008 */ lwc1 $f0, 8($s2) /* C71C 8003131C C6620008 */ lwc1 $f2, 8($s3) /* C720 80031320 46020001 */ sub.s $f0, $f0, $f2 /* C724 80031324 3C013F80 */ lui $at, 0x3f80 /* C728 80031328 44813000 */ mtc1 $at, $f6 /* C72C 8003132C 46000005 */ abs.s $f0, $f0 /* C730 80031330 4606003C */ c.lt.s $f0, $f6 /* C734 80031334 00000000 */ nop /* C738 80031338 45000021 */ bc1f .L800313C0 /* C73C 8003133C 00000000 */ nop /* C740 80031340 C640000C */ lwc1 $f0, 0xc($s2) /* C744 80031344 C662000C */ lwc1 $f2, 0xc($s3) /* C748 80031348 46020001 */ sub.s $f0, $f0, $f2 /* C74C 8003134C 46000005 */ abs.s $f0, $f0 /* C750 80031350 4606003C */ c.lt.s $f0, $f6 /* C754 80031354 00000000 */ nop /* C758 80031358 45000019 */ bc1f .L800313C0 /* C75C 8003135C 00000000 */ nop /* C760 80031360 C6400010 */ lwc1 $f0, 0x10($s2) /* C764 80031364 C6620010 */ lwc1 $f2, 0x10($s3) /* C768 80031368 46020001 */ sub.s $f0, $f0, $f2 /* C76C 8003136C 46000005 */ abs.s $f0, $f0 /* C770 80031370 4604003C */ c.lt.s $f0, $f4 /* C774 80031374 00000000 */ nop /* C778 80031378 45000011 */ bc1f .L800313C0 /* C77C 8003137C 00000000 */ nop /* C780 80031380 C6400014 */ lwc1 $f0, 0x14($s2) /* C784 80031384 C6620014 */ lwc1 $f2, 0x14($s3) /* C788 80031388 46020001 */ sub.s $f0, $f0, $f2 /* C78C 8003138C 46000005 */ abs.s $f0, $f0 /* C790 80031390 4604003C */ c.lt.s $f0, $f4 /* C794 80031394 00000000 */ nop /* C798 80031398 45000009 */ bc1f .L800313C0 /* C79C 8003139C 00000000 */ nop /* C7A0 800313A0 C6400018 */ lwc1 $f0, 0x18($s2) /* C7A4 800313A4 C6620018 */ lwc1 $f2, 0x18($s3) /* C7A8 800313A8 46020001 */ sub.s $f0, $f0, $f2 /* C7AC 800313AC 46000005 */ abs.s $f0, $f0 /* C7B0 800313B0 4604003C */ c.lt.s $f0, $f4 /* C7B4 800313B4 00000000 */ nop /* C7B8 800313B8 45030001 */ bc1tl .L800313C0 /* C7BC 800313BC E6C60000 */ swc1 $f6, ($s6) .L800313C0: /* C7C0 800313C0 8E830000 */ lw $v1, ($s4) /* C7C4 800313C4 2402FFFF */ addiu $v0, $zero, -1 /* C7C8 800313C8 14620021 */ bne $v1, $v0, .L80031450 /* C7CC 800313CC 00000000 */ nop /* C7D0 800313D0 12E00010 */ beqz $s7, .L80031414 /* C7D4 800313D4 00000000 */ nop /* C7D8 800313D8 C6460010 */ lwc1 $f6, 0x10($s2) /* C7DC 800313DC C6600010 */ lwc1 $f0, 0x10($s3) /* C7E0 800313E0 C6440014 */ lwc1 $f4, 0x14($s2) /* C7E4 800313E4 46003181 */ sub.s $f6, $f6, $f0 /* C7E8 800313E8 C6600014 */ lwc1 $f0, 0x14($s3) /* C7EC 800313EC C6420018 */ lwc1 $f2, 0x18($s2) /* C7F0 800313F0 46002101 */ sub.s $f4, $f4, $f0 /* C7F4 800313F4 C6600018 */ lwc1 $f0, 0x18($s3) /* C7F8 800313F8 46001081 */ sub.s $f2, $f2, $f0 /* C7FC 800313FC 3C01800A */ lui $at, %hi(D_800A08E4) /* C800 80031400 E42608E4 */ swc1 $f6, %lo(D_800A08E4)($at) /* C804 80031404 3C01800A */ lui $at, %hi(D_800A08E8) /* C808 80031408 E42408E8 */ swc1 $f4, %lo(D_800A08E8)($at) /* C80C 8003140C 3C01800A */ lui $at, %hi(D_800A08EC) /* C810 80031410 E42208EC */ swc1 $f2, %lo(D_800A08EC)($at) .L80031414: /* C814 80031414 C6600010 */ lwc1 $f0, 0x10($s3) /* C818 80031418 3C01800A */ lui $at, %hi(D_800A08E4) /* C81C 8003141C C42208E4 */ lwc1 $f2, %lo(D_800A08E4)($at) /* C820 80031420 46020000 */ add.s $f0, $f0, $f2 /* C824 80031424 3C01800A */ lui $at, %hi(D_800A08E8) /* C828 80031428 C42208E8 */ lwc1 $f2, %lo(D_800A08E8)($at) /* C82C 8003142C E6400010 */ swc1 $f0, 0x10($s2) /* C830 80031430 C6600014 */ lwc1 $f0, 0x14($s3) /* C834 80031434 46020000 */ add.s $f0, $f0, $f2 /* C838 80031438 3C01800A */ lui $at, %hi(D_800A08EC) /* C83C 8003143C C42208EC */ lwc1 $f2, %lo(D_800A08EC)($at) /* C840 80031440 E6400014 */ swc1 $f0, 0x14($s2) /* C844 80031444 C6600018 */ lwc1 $f0, 0x18($s3) /* C848 80031448 46020000 */ add.s $f0, $f0, $f2 /* C84C 8003144C E6400018 */ swc1 $f0, 0x18($s2) .L80031450: /* C850 80031450 8FBF0048 */ lw $ra, 0x48($sp) /* C854 80031454 8FB70044 */ lw $s7, 0x44($sp) /* C858 80031458 8FB60040 */ lw $s6, 0x40($sp) /* C85C 8003145C 8FB5003C */ lw $s5, 0x3c($sp) /* C860 80031460 8FB40038 */ lw $s4, 0x38($sp) /* C864 80031464 8FB30034 */ lw $s3, 0x34($sp) /* C868 80031468 8FB20030 */ lw $s2, 0x30($sp) /* C86C 8003146C 8FB1002C */ lw $s1, 0x2c($sp) /* C870 80031470 8FB00028 */ lw $s0, 0x28($sp) /* C874 80031474 D7BE0078 */ ldc1 $f30, 0x78($sp) /* C878 80031478 D7BC0070 */ ldc1 $f28, 0x70($sp) /* C87C 8003147C D7BA0068 */ ldc1 $f26, 0x68($sp) /* C880 80031480 D7B80060 */ ldc1 $f24, 0x60($sp) /* C884 80031484 D7B60058 */ ldc1 $f22, 0x58($sp) /* C888 80031488 D7B40050 */ ldc1 $f20, 0x50($sp) /* C88C 8003148C 03E00008 */ jr $ra /* C890 80031490 27BD0080 */ addiu $sp, $sp, 0x80