papermario/asm/nonmatchings/code_7bb60_len_41b0/func_800E363C.s
2020-08-12 22:37:16 -04:00

878 lines
41 KiB
ArmAsm

.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
glabel func_800E363C
/* 07CAEC 800E363C 27BDFF80 */ addiu $sp, $sp, -0x80
/* 07CAF0 800E3640 AFB1005C */ sw $s1, 0x5c($sp)
/* 07CAF4 800E3644 3C118011 */ lui $s1, 0x8011
/* 07CAF8 800E3648 2631EFC8 */ addiu $s1, $s1, -0x1038
/* 07CAFC 800E364C AFB40068 */ sw $s4, 0x68($sp)
/* 07CB00 800E3650 3C148016 */ lui $s4, 0x8016
/* 07CB04 800E3654 2694A550 */ addiu $s4, $s4, -0x5ab0
/* 07CB08 800E3658 AFBF006C */ sw $ra, 0x6c($sp)
/* 07CB0C 800E365C AFB30064 */ sw $s3, 0x64($sp)
/* 07CB10 800E3660 AFB20060 */ sw $s2, 0x60($sp)
/* 07CB14 800E3664 AFB00058 */ sw $s0, 0x58($sp)
/* 07CB18 800E3668 F7B60078 */ sdc1 $f22, 0x78($sp)
/* 07CB1C 800E366C F7B40070 */ sdc1 $f20, 0x70($sp)
/* 07CB20 800E3670 8E230000 */ lw $v1, ($s1)
/* 07CB24 800E3674 2402FFFF */ addiu $v0, $zero, -1
/* 07CB28 800E3678 A6820000 */ sh $v0, ($s4)
/* 07CB2C 800E367C 30624000 */ andi $v0, $v1, 0x4000
/* 07CB30 800E3680 10400012 */ beqz $v0, .L800E36CC
/* 07CB34 800E3684 3C020004 */ lui $v0, 4
/* 07CB38 800E3688 C6220054 */ lwc1 $f2, 0x54($s1)
/* 07CB3C 800E368C 00621024 */ and $v0, $v1, $v0
/* 07CB40 800E3690 10400007 */ beqz $v0, .L800E36B0
/* 07CB44 800E3694 E7A20030 */ swc1 $f2, 0x30($sp)
/* 07CB48 800E3698 3C013F00 */ lui $at, 0x3f00
/* 07CB4C 800E369C 44810000 */ mtc1 $at, $f0
/* 07CB50 800E36A0 00000000 */ nop
/* 07CB54 800E36A4 46001002 */ mul.s $f0, $f2, $f0
/* 07CB58 800E36A8 00000000 */ nop
/* 07CB5C 800E36AC E7A00030 */ swc1 $f0, 0x30($sp)
.L800E36B0:
/* 07CB60 800E36B0 26240028 */ addiu $a0, $s1, 0x28
/* 07CB64 800E36B4 8FA60030 */ lw $a2, 0x30($sp)
/* 07CB68 800E36B8 8E2700A0 */ lw $a3, 0xa0($s1)
/* 07CB6C 800E36BC 0C00A7E7 */ jal add_vec2D_polar
/* 07CB70 800E36C0 26250030 */ addiu $a1, $s1, 0x30
/* 07CB74 800E36C4 080390B8 */ j .L800E42E0
/* 07CB78 800E36C8 00000000 */ nop
.L800E36CC:
/* 07CB7C 800E36CC 922200B4 */ lbu $v0, 0xb4($s1)
/* 07CB80 800E36D0 2442FFF9 */ addiu $v0, $v0, -7
/* 07CB84 800E36D4 00021600 */ sll $v0, $v0, 0x18
/* 07CB88 800E36D8 00021E03 */ sra $v1, $v0, 0x18
/* 07CB8C 800E36DC 2C620020 */ sltiu $v0, $v1, 0x20
/* 07CB90 800E36E0 1040010D */ beqz $v0, .L800E3B18
/* 07CB94 800E36E4 00031080 */ sll $v0, $v1, 2
/* 07CB98 800E36E8 3C018011 */ lui $at, 0x8011
/* 07CB9C 800E36EC 00220821 */ addu $at, $at, $v0
/* 07CBA0 800E36F0 8C22BE58 */ lw $v0, -0x41a8($at)
/* 07CBA4 800E36F4 00400008 */ jr $v0
/* 07CBA8 800E36F8 00000000 */ nop
/* 07CBAC 800E36FC 3C038007 */ lui $v1, 0x8007
/* 07CBB0 800E3700 8C637410 */ lw $v1, 0x7410($v1)
/* 07CBB4 800E3704 C62200A8 */ lwc1 $f2, 0xa8($s1)
/* 07CBB8 800E3708 3C0142B4 */ lui $at, 0x42b4
/* 07CBBC 800E370C 44810000 */ mtc1 $at, $f0
/* 07CBC0 800E3710 00031080 */ sll $v0, $v1, 2
/* 07CBC4 800E3714 00431021 */ addu $v0, $v0, $v1
/* 07CBC8 800E3718 00021080 */ sll $v0, $v0, 2
/* 07CBCC 800E371C 00431023 */ subu $v0, $v0, $v1
/* 07CBD0 800E3720 000218C0 */ sll $v1, $v0, 3
/* 07CBD4 800E3724 00431021 */ addu $v0, $v0, $v1
/* 07CBD8 800E3728 000210C0 */ sll $v0, $v0, 3
/* 07CBDC 800E372C 46001081 */ sub.s $f2, $f2, $f0
/* 07CBE0 800E3730 3C01800B */ lui $at, 0x800b
/* 07CBE4 800E3734 00220821 */ addu $at, $at, $v0
/* 07CBE8 800E3738 C4201DEC */ lwc1 $f0, 0x1dec($at)
/* 07CBEC 800E373C 46001080 */ add.s $f2, $f2, $f0
/* 07CBF0 800E3740 0000202D */ daddu $a0, $zero, $zero
/* 07CBF4 800E3744 44061000 */ mfc1 $a2, $f2
/* 07CBF8 800E3748 080390B6 */ j .L800E42D8
/* 07CBFC 800E374C 0080282D */ daddu $a1, $a0, $zero
/* 07CC00 800E3750 0C039422 */ jal func_800E5088
/* 07CC04 800E3754 00000000 */ nop
/* 07CC08 800E3758 00021600 */ sll $v0, $v0, 0x18
/* 07CC0C 800E375C 00021603 */ sra $v0, $v0, 0x18
/* 07CC10 800E3760 24030009 */ addiu $v1, $zero, 9
/* 07CC14 800E3764 144302DE */ bne $v0, $v1, .L800E42E0
/* 07CC18 800E3768 00000000 */ nop
/* 07CC1C 800E376C C6260028 */ lwc1 $f6, 0x28($s1)
/* 07CC20 800E3770 C620001C */ lwc1 $f0, 0x1c($s1)
/* 07CC24 800E3774 C624002C */ lwc1 $f4, 0x2c($s1)
/* 07CC28 800E3778 C628001C */ lwc1 $f8, 0x1c($s1)
/* 07CC2C 800E377C 46003180 */ add.s $f6, $f6, $f0
/* 07CC30 800E3780 C6200020 */ lwc1 $f0, 0x20($s1)
/* 07CC34 800E3784 44805000 */ mtc1 $zero, $f10
/* 07CC38 800E3788 46002100 */ add.s $f4, $f4, $f0
/* 07CC3C 800E378C C6220024 */ lwc1 $f2, 0x24($s1)
/* 07CC40 800E3790 C6200030 */ lwc1 $f0, 0x30($s1)
/* 07CC44 800E3794 460A4032 */ c.eq.s $f8, $f10
/* 07CC48 800E3798 46020000 */ add.s $f0, $f0, $f2
/* 07CC4C 800E379C E6260028 */ swc1 $f6, 0x28($s1)
/* 07CC50 800E37A0 E624002C */ swc1 $f4, 0x2c($s1)
/* 07CC54 800E37A4 4500000A */ bc1f .L800E37D0
/* 07CC58 800E37A8 E6200030 */ swc1 $f0, 0x30($s1)
/* 07CC5C 800E37AC C6200020 */ lwc1 $f0, 0x20($s1)
/* 07CC60 800E37B0 460A0032 */ c.eq.s $f0, $f10
/* 07CC64 800E37B4 00000000 */ nop
/* 07CC68 800E37B8 45000005 */ bc1f .L800E37D0
/* 07CC6C 800E37BC 46001006 */ mov.s $f0, $f2
/* 07CC70 800E37C0 460A0032 */ c.eq.s $f0, $f10
/* 07CC74 800E37C4 00000000 */ nop
/* 07CC78 800E37C8 450102C5 */ bc1t .L800E42E0
/* 07CC7C 800E37CC 00000000 */ nop
.L800E37D0:
/* 07CC80 800E37D0 C6200028 */ lwc1 $f0, 0x28($s1)
/* 07CC84 800E37D4 C622002C */ lwc1 $f2, 0x2c($s1)
/* 07CC88 800E37D8 C6240030 */ lwc1 $f4, 0x30($s1)
/* 07CC8C 800E37DC 3C02800B */ lui $v0, 0x800b
/* 07CC90 800E37E0 24421D80 */ addiu $v0, $v0, 0x1d80
/* 07CC94 800E37E4 E4400060 */ swc1 $f0, 0x60($v0)
/* 07CC98 800E37E8 E4420064 */ swc1 $f2, 0x64($v0)
/* 07CC9C 800E37EC E4440068 */ swc1 $f4, 0x68($v0)
/* 07CCA0 800E37F0 9223000E */ lbu $v1, 0xe($s1)
/* 07CCA4 800E37F4 24020080 */ addiu $v0, $zero, 0x80
/* 07CCA8 800E37F8 106202B9 */ beq $v1, $v0, .L800E42E0
/* 07CCAC 800E37FC 00000000 */ nop
/* 07CCB0 800E3800 8E26001C */ lw $a2, 0x1c($s1)
/* 07CCB4 800E3804 44806000 */ mtc1 $zero, $f12
/* 07CCB8 800E3808 8E270024 */ lw $a3, 0x24($s1)
/* 07CCBC 800E380C 0C00A720 */ jal atan2
/* 07CCC0 800E3810 46006386 */ mov.s $f14, $f12
/* 07CCC4 800E3814 0000202D */ daddu $a0, $zero, $zero
/* 07CCC8 800E3818 44060000 */ mfc1 $a2, $f0
/* 07CCCC 800E381C 080390B6 */ j .L800E42D8
/* 07CCD0 800E3820 0080282D */ daddu $a1, $a0, $zero
/* 07CCD4 800E3824 C6260028 */ lwc1 $f6, 0x28($s1)
/* 07CCD8 800E3828 C620001C */ lwc1 $f0, 0x1c($s1)
/* 07CCDC 800E382C C624002C */ lwc1 $f4, 0x2c($s1)
/* 07CCE0 800E3830 C628001C */ lwc1 $f8, 0x1c($s1)
/* 07CCE4 800E3834 46003180 */ add.s $f6, $f6, $f0
/* 07CCE8 800E3838 C6200020 */ lwc1 $f0, 0x20($s1)
/* 07CCEC 800E383C 44805000 */ mtc1 $zero, $f10
/* 07CCF0 800E3840 46002100 */ add.s $f4, $f4, $f0
/* 07CCF4 800E3844 C6220024 */ lwc1 $f2, 0x24($s1)
/* 07CCF8 800E3848 C6200030 */ lwc1 $f0, 0x30($s1)
/* 07CCFC 800E384C 460A4032 */ c.eq.s $f8, $f10
/* 07CD00 800E3850 46020000 */ add.s $f0, $f0, $f2
/* 07CD04 800E3854 E6260028 */ swc1 $f6, 0x28($s1)
/* 07CD08 800E3858 E624002C */ swc1 $f4, 0x2c($s1)
/* 07CD0C 800E385C 4500000A */ bc1f .L800E3888
/* 07CD10 800E3860 E6200030 */ swc1 $f0, 0x30($s1)
/* 07CD14 800E3864 C6200020 */ lwc1 $f0, 0x20($s1)
/* 07CD18 800E3868 460A0032 */ c.eq.s $f0, $f10
/* 07CD1C 800E386C 00000000 */ nop
/* 07CD20 800E3870 45000005 */ bc1f .L800E3888
/* 07CD24 800E3874 46001006 */ mov.s $f0, $f2
/* 07CD28 800E3878 460A0032 */ c.eq.s $f0, $f10
/* 07CD2C 800E387C 00000000 */ nop
/* 07CD30 800E3880 45010009 */ bc1t .L800E38A8
/* 07CD34 800E3884 00000000 */ nop
.L800E3888:
/* 07CD38 800E3888 C6200028 */ lwc1 $f0, 0x28($s1)
/* 07CD3C 800E388C C622002C */ lwc1 $f2, 0x2c($s1)
/* 07CD40 800E3890 C6240030 */ lwc1 $f4, 0x30($s1)
/* 07CD44 800E3894 3C02800B */ lui $v0, 0x800b
/* 07CD48 800E3898 24421D80 */ addiu $v0, $v0, 0x1d80
/* 07CD4C 800E389C E4400060 */ swc1 $f0, 0x60($v0)
/* 07CD50 800E38A0 E4420064 */ swc1 $f2, 0x64($v0)
/* 07CD54 800E38A4 E4440068 */ swc1 $f4, 0x68($v0)
.L800E38A8:
/* 07CD58 800E38A8 C620001C */ lwc1 $f0, 0x1c($s1)
/* 07CD5C 800E38AC 44801000 */ mtc1 $zero, $f2
/* 07CD60 800E38B0 00000000 */ nop
/* 07CD64 800E38B4 46020032 */ c.eq.s $f0, $f2
/* 07CD68 800E38B8 00000000 */ nop
/* 07CD6C 800E38BC 4500000B */ bc1f .L800E38EC
/* 07CD70 800E38C0 00000000 */ nop
/* 07CD74 800E38C4 C6200020 */ lwc1 $f0, 0x20($s1)
/* 07CD78 800E38C8 46020032 */ c.eq.s $f0, $f2
/* 07CD7C 800E38CC 00000000 */ nop
/* 07CD80 800E38D0 45000006 */ bc1f .L800E38EC
/* 07CD84 800E38D4 00000000 */ nop
/* 07CD88 800E38D8 C6200024 */ lwc1 $f0, 0x24($s1)
/* 07CD8C 800E38DC 46020032 */ c.eq.s $f0, $f2
/* 07CD90 800E38E0 00000000 */ nop
/* 07CD94 800E38E4 4501027E */ bc1t .L800E42E0
/* 07CD98 800E38E8 00000000 */ nop
.L800E38EC:
/* 07CD9C 800E38EC 3C038007 */ lui $v1, 0x8007
/* 07CDA0 800E38F0 8C637410 */ lw $v1, 0x7410($v1)
/* 07CDA4 800E38F4 C62200A8 */ lwc1 $f2, 0xa8($s1)
/* 07CDA8 800E38F8 3C0142B4 */ lui $at, 0x42b4
/* 07CDAC 800E38FC 44810000 */ mtc1 $at, $f0
/* 07CDB0 800E3900 00031080 */ sll $v0, $v1, 2
/* 07CDB4 800E3904 00431021 */ addu $v0, $v0, $v1
/* 07CDB8 800E3908 00021080 */ sll $v0, $v0, 2
/* 07CDBC 800E390C 00431023 */ subu $v0, $v0, $v1
/* 07CDC0 800E3910 000218C0 */ sll $v1, $v0, 3
/* 07CDC4 800E3914 00431021 */ addu $v0, $v0, $v1
/* 07CDC8 800E3918 000210C0 */ sll $v0, $v0, 3
/* 07CDCC 800E391C 46001081 */ sub.s $f2, $f2, $f0
/* 07CDD0 800E3920 3C01800B */ lui $at, 0x800b
/* 07CDD4 800E3924 00220821 */ addu $at, $at, $v0
/* 07CDD8 800E3928 C4201DEC */ lwc1 $f0, 0x1dec($at)
/* 07CDDC 800E392C 46001080 */ add.s $f2, $f2, $f0
/* 07CDE0 800E3930 0000202D */ daddu $a0, $zero, $zero
/* 07CDE4 800E3934 44061000 */ mfc1 $a2, $f2
/* 07CDE8 800E3938 080390B6 */ j .L800E42D8
/* 07CDEC 800E393C 0080282D */ daddu $a1, $a0, $zero
/* 07CDF0 800E3940 C6260028 */ lwc1 $f6, 0x28($s1)
/* 07CDF4 800E3944 C620001C */ lwc1 $f0, 0x1c($s1)
/* 07CDF8 800E3948 C624002C */ lwc1 $f4, 0x2c($s1)
/* 07CDFC 800E394C C628001C */ lwc1 $f8, 0x1c($s1)
/* 07CE00 800E3950 46003180 */ add.s $f6, $f6, $f0
/* 07CE04 800E3954 C6200020 */ lwc1 $f0, 0x20($s1)
/* 07CE08 800E3958 44805000 */ mtc1 $zero, $f10
/* 07CE0C 800E395C 46002100 */ add.s $f4, $f4, $f0
/* 07CE10 800E3960 C6220024 */ lwc1 $f2, 0x24($s1)
/* 07CE14 800E3964 C6200030 */ lwc1 $f0, 0x30($s1)
/* 07CE18 800E3968 460A4032 */ c.eq.s $f8, $f10
/* 07CE1C 800E396C 46020000 */ add.s $f0, $f0, $f2
/* 07CE20 800E3970 E6260028 */ swc1 $f6, 0x28($s1)
/* 07CE24 800E3974 E624002C */ swc1 $f4, 0x2c($s1)
/* 07CE28 800E3978 4500000A */ bc1f .L800E39A4
/* 07CE2C 800E397C E6200030 */ swc1 $f0, 0x30($s1)
/* 07CE30 800E3980 C6200020 */ lwc1 $f0, 0x20($s1)
/* 07CE34 800E3984 460A0032 */ c.eq.s $f0, $f10
/* 07CE38 800E3988 00000000 */ nop
/* 07CE3C 800E398C 45000005 */ bc1f .L800E39A4
/* 07CE40 800E3990 46001006 */ mov.s $f0, $f2
/* 07CE44 800E3994 460A0032 */ c.eq.s $f0, $f10
/* 07CE48 800E3998 00000000 */ nop
/* 07CE4C 800E399C 45010009 */ bc1t .L800E39C4
/* 07CE50 800E39A0 00000000 */ nop
.L800E39A4:
/* 07CE54 800E39A4 C6200028 */ lwc1 $f0, 0x28($s1)
/* 07CE58 800E39A8 C622002C */ lwc1 $f2, 0x2c($s1)
/* 07CE5C 800E39AC C6240030 */ lwc1 $f4, 0x30($s1)
/* 07CE60 800E39B0 3C02800B */ lui $v0, 0x800b
/* 07CE64 800E39B4 24421D80 */ addiu $v0, $v0, 0x1d80
/* 07CE68 800E39B8 E4400060 */ swc1 $f0, 0x60($v0)
/* 07CE6C 800E39BC E4420064 */ swc1 $f2, 0x64($v0)
/* 07CE70 800E39C0 E4440068 */ swc1 $f4, 0x68($v0)
.L800E39C4:
/* 07CE74 800E39C4 C6260028 */ lwc1 $f6, 0x28($s1)
/* 07CE78 800E39C8 C628002C */ lwc1 $f8, 0x2c($s1)
/* 07CE7C 800E39CC C6220054 */ lwc1 $f2, 0x54($s1)
/* 07CE80 800E39D0 44800000 */ mtc1 $zero, $f0
/* 07CE84 800E39D4 C6240030 */ lwc1 $f4, 0x30($s1)
/* 07CE88 800E39D8 46001032 */ c.eq.s $f2, $f0
/* 07CE8C 800E39DC E7A60020 */ swc1 $f6, 0x20($sp)
/* 07CE90 800E39E0 E7A80024 */ swc1 $f8, 0x24($sp)
/* 07CE94 800E39E4 45010004 */ bc1t .L800E39F8
/* 07CE98 800E39E8 E7A40028 */ swc1 $f4, 0x28($sp)
/* 07CE9C 800E39EC C6200080 */ lwc1 $f0, 0x80($s1)
/* 07CEA0 800E39F0 08038E90 */ j .L800E3A40
/* 07CEA4 800E39F4 E7A0002C */ swc1 $f0, 0x2c($sp)
.L800E39F8:
/* 07CEA8 800E39F8 3C038007 */ lui $v1, 0x8007
/* 07CEAC 800E39FC 8C637410 */ lw $v1, 0x7410($v1)
/* 07CEB0 800E3A00 C62000A8 */ lwc1 $f0, 0xa8($s1)
/* 07CEB4 800E3A04 3C0142B4 */ lui $at, 0x42b4
/* 07CEB8 800E3A08 44811000 */ mtc1 $at, $f2
/* 07CEBC 800E3A0C 00031080 */ sll $v0, $v1, 2
/* 07CEC0 800E3A10 00431021 */ addu $v0, $v0, $v1
/* 07CEC4 800E3A14 00021080 */ sll $v0, $v0, 2
/* 07CEC8 800E3A18 00431023 */ subu $v0, $v0, $v1
/* 07CECC 800E3A1C 000218C0 */ sll $v1, $v0, 3
/* 07CED0 800E3A20 00431021 */ addu $v0, $v0, $v1
/* 07CED4 800E3A24 000210C0 */ sll $v0, $v0, 3
/* 07CED8 800E3A28 46020001 */ sub.s $f0, $f0, $f2
/* 07CEDC 800E3A2C 3C01800B */ lui $at, 0x800b
/* 07CEE0 800E3A30 00220821 */ addu $at, $at, $v0
/* 07CEE4 800E3A34 C4221DEC */ lwc1 $f2, 0x1dec($at)
/* 07CEE8 800E3A38 46020000 */ add.s $f0, $f0, $f2
/* 07CEEC 800E3A3C E7A0002C */ swc1 $f0, 0x2c($sp)
.L800E3A40:
/* 07CEF0 800E3A40 862200B2 */ lh $v0, 0xb2($s1)
/* 07CEF4 800E3A44 3C013F00 */ lui $at, 0x3f00
/* 07CEF8 800E3A48 44811000 */ mtc1 $at, $f2
/* 07CEFC 800E3A4C 44820000 */ mtc1 $v0, $f0
/* 07CF00 800E3A50 00000000 */ nop
/* 07CF04 800E3A54 46800020 */ cvt.s.w $f0, $f0
/* 07CF08 800E3A58 46020002 */ mul.s $f0, $f0, $f2
/* 07CF0C 800E3A5C 00000000 */ nop
/* 07CF10 800E3A60 0220202D */ daddu $a0, $s1, $zero
/* 07CF14 800E3A64 27A50020 */ addiu $a1, $sp, 0x20
/* 07CF18 800E3A68 27A60024 */ addiu $a2, $sp, 0x24
/* 07CF1C 800E3A6C E7A00010 */ swc1 $f0, 0x10($sp)
/* 07CF20 800E3A70 C7A0002C */ lwc1 $f0, 0x2c($sp)
/* 07CF24 800E3A74 27A70028 */ addiu $a3, $sp, 0x28
/* 07CF28 800E3A78 0C037D18 */ jal test_player_lateral
/* 07CF2C 800E3A7C E7A00014 */ swc1 $f0, 0x14($sp)
/* 07CF30 800E3A80 C620001C */ lwc1 $f0, 0x1c($s1)
/* 07CF34 800E3A84 44801000 */ mtc1 $zero, $f2
/* 07CF38 800E3A88 00000000 */ nop
/* 07CF3C 800E3A8C 46020032 */ c.eq.s $f0, $f2
/* 07CF40 800E3A90 00000000 */ nop
/* 07CF44 800E3A94 4500000B */ bc1f .L800E3AC4
/* 07CF48 800E3A98 A6820012 */ sh $v0, 0x12($s4)
/* 07CF4C 800E3A9C C6200020 */ lwc1 $f0, 0x20($s1)
/* 07CF50 800E3AA0 46020032 */ c.eq.s $f0, $f2
/* 07CF54 800E3AA4 00000000 */ nop
/* 07CF58 800E3AA8 45000006 */ bc1f .L800E3AC4
/* 07CF5C 800E3AAC 00000000 */ nop
/* 07CF60 800E3AB0 C6200024 */ lwc1 $f0, 0x24($s1)
/* 07CF64 800E3AB4 46020032 */ c.eq.s $f0, $f2
/* 07CF68 800E3AB8 00000000 */ nop
/* 07CF6C 800E3ABC 45010208 */ bc1t .L800E42E0
/* 07CF70 800E3AC0 00000000 */ nop
.L800E3AC4:
/* 07CF74 800E3AC4 3C038007 */ lui $v1, 0x8007
/* 07CF78 800E3AC8 8C637410 */ lw $v1, 0x7410($v1)
/* 07CF7C 800E3ACC C62200A8 */ lwc1 $f2, 0xa8($s1)
/* 07CF80 800E3AD0 3C0142B4 */ lui $at, 0x42b4
/* 07CF84 800E3AD4 44810000 */ mtc1 $at, $f0
/* 07CF88 800E3AD8 00031080 */ sll $v0, $v1, 2
/* 07CF8C 800E3ADC 00431021 */ addu $v0, $v0, $v1
/* 07CF90 800E3AE0 00021080 */ sll $v0, $v0, 2
/* 07CF94 800E3AE4 00431023 */ subu $v0, $v0, $v1
/* 07CF98 800E3AE8 000218C0 */ sll $v1, $v0, 3
/* 07CF9C 800E3AEC 00431021 */ addu $v0, $v0, $v1
/* 07CFA0 800E3AF0 000210C0 */ sll $v0, $v0, 3
/* 07CFA4 800E3AF4 46001081 */ sub.s $f2, $f2, $f0
/* 07CFA8 800E3AF8 3C01800B */ lui $at, 0x800b
/* 07CFAC 800E3AFC 00220821 */ addu $at, $at, $v0
/* 07CFB0 800E3B00 C4201DEC */ lwc1 $f0, 0x1dec($at)
/* 07CFB4 800E3B04 46001080 */ add.s $f2, $f2, $f0
/* 07CFB8 800E3B08 0000202D */ daddu $a0, $zero, $zero
/* 07CFBC 800E3B0C 44061000 */ mfc1 $a2, $f2
/* 07CFC0 800E3B10 080390B6 */ j .L800E42D8
/* 07CFC4 800E3B14 0080282D */ daddu $a1, $a0, $zero
.L800E3B18:
/* 07CFC8 800E3B18 8E220000 */ lw $v0, ($s1)
/* 07CFCC 800E3B1C 30420008 */ andi $v0, $v0, 8
/* 07CFD0 800E3B20 144001EF */ bnez $v0, .L800E42E0
/* 07CFD4 800E3B24 3C030080 */ lui $v1, 0x80
/* 07CFD8 800E3B28 8E220000 */ lw $v0, ($s1)
/* 07CFDC 800E3B2C 34632000 */ ori $v1, $v1, 0x2000
/* 07CFE0 800E3B30 00431024 */ and $v0, $v0, $v1
/* 07CFE4 800E3B34 144000AA */ bnez $v0, .L800E3DE0
/* 07CFE8 800E3B38 AFA00030 */ sw $zero, 0x30($sp)
/* 07CFEC 800E3B3C 27A4002C */ addiu $a0, $sp, 0x2c
/* 07CFF0 800E3B40 0C0388C1 */ jal func_800E2304
/* 07CFF4 800E3B44 27A50030 */ addiu $a1, $sp, 0x30
/* 07CFF8 800E3B48 8E220004 */ lw $v0, 4($s1)
/* 07CFFC 800E3B4C 3C030001 */ lui $v1, 1
/* 07D000 800E3B50 00431024 */ and $v0, $v0, $v1
/* 07D004 800E3B54 1440002C */ bnez $v0, .L800E3C08
/* 07D008 800E3B58 00000000 */ nop
/* 07D00C 800E3B5C C7A20030 */ lwc1 $f2, 0x30($sp)
/* 07D010 800E3B60 3C013D00 */ lui $at, 0x3d00
/* 07D014 800E3B64 44810000 */ mtc1 $at, $f0
/* 07D018 800E3B68 00000000 */ nop
/* 07D01C 800E3B6C 46001002 */ mul.s $f0, $f2, $f0
/* 07D020 800E3B70 00000000 */ nop
/* 07D024 800E3B74 8E220000 */ lw $v0, ($s1)
/* 07D028 800E3B78 30420006 */ andi $v0, $v0, 6
/* 07D02C 800E3B7C 14400009 */ bnez $v0, .L800E3BA4
/* 07D030 800E3B80 E7A00030 */ swc1 $f0, 0x30($sp)
/* 07D034 800E3B84 3C013FD0 */ lui $at, 0x3fd0
/* 07D038 800E3B88 44811800 */ mtc1 $at, $f3
/* 07D03C 800E3B8C 44801000 */ mtc1 $zero, $f2
/* 07D040 800E3B90 46000021 */ cvt.d.s $f0, $f0
/* 07D044 800E3B94 46220002 */ mul.d $f0, $f0, $f2
/* 07D048 800E3B98 00000000 */ nop
/* 07D04C 800E3B9C 46200020 */ cvt.s.d $f0, $f0
/* 07D050 800E3BA0 E7A00030 */ swc1 $f0, 0x30($sp)
.L800E3BA4:
/* 07D054 800E3BA4 822300B4 */ lb $v1, 0xb4($s1)
/* 07D058 800E3BA8 24020006 */ addiu $v0, $zero, 6
/* 07D05C 800E3BAC 1462000A */ bne $v1, $v0, .L800E3BD8
/* 07D060 800E3BB0 00000000 */ nop
/* 07D064 800E3BB4 C7A00030 */ lwc1 $f0, 0x30($sp)
/* 07D068 800E3BB8 3C013FF8 */ lui $at, 0x3ff8
/* 07D06C 800E3BBC 44811800 */ mtc1 $at, $f3
/* 07D070 800E3BC0 44801000 */ mtc1 $zero, $f2
/* 07D074 800E3BC4 46000021 */ cvt.d.s $f0, $f0
/* 07D078 800E3BC8 46220002 */ mul.d $f0, $f0, $f2
/* 07D07C 800E3BCC 00000000 */ nop
/* 07D080 800E3BD0 46200020 */ cvt.s.d $f0, $f0
/* 07D084 800E3BD4 E7A00030 */ swc1 $f0, 0x30($sp)
.L800E3BD8:
/* 07D088 800E3BD8 8E220000 */ lw $v0, ($s1)
/* 07D08C 800E3BDC 3C030004 */ lui $v1, 4
/* 07D090 800E3BE0 00431024 */ and $v0, $v0, $v1
/* 07D094 800E3BE4 10400008 */ beqz $v0, .L800E3C08
/* 07D098 800E3BE8 00000000 */ nop
/* 07D09C 800E3BEC C7A00030 */ lwc1 $f0, 0x30($sp)
/* 07D0A0 800E3BF0 3C013F00 */ lui $at, 0x3f00
/* 07D0A4 800E3BF4 44811000 */ mtc1 $at, $f2
/* 07D0A8 800E3BF8 00000000 */ nop
/* 07D0AC 800E3BFC 46020002 */ mul.s $f0, $f0, $f2
/* 07D0B0 800E3C00 00000000 */ nop
/* 07D0B4 800E3C04 E7A00030 */ swc1 $f0, 0x30($sp)
.L800E3C08:
/* 07D0B8 800E3C08 C7AC002C */ lwc1 $f12, 0x2c($sp)
/* 07D0BC 800E3C0C 3C0140C9 */ lui $at, 0x40c9
/* 07D0C0 800E3C10 34210FD0 */ ori $at, $at, 0xfd0
/* 07D0C4 800E3C14 44810000 */ mtc1 $at, $f0
/* 07D0C8 800E3C18 00000000 */ nop
/* 07D0CC 800E3C1C 46006302 */ mul.s $f12, $f12, $f0
/* 07D0D0 800E3C20 00000000 */ nop
/* 07D0D4 800E3C24 27A50034 */ addiu $a1, $sp, 0x34
/* 07D0D8 800E3C28 3C0143B4 */ lui $at, 0x43b4
/* 07D0DC 800E3C2C 44810000 */ mtc1 $at, $f0
/* 07D0E0 800E3C30 27A60038 */ addiu $a2, $sp, 0x38
/* 07D0E4 800E3C34 0C00A82D */ jal sin_cos_rad
/* 07D0E8 800E3C38 46006303 */ div.s $f12, $f12, $f0
/* 07D0EC 800E3C3C 822300B4 */ lb $v1, 0xb4($s1)
/* 07D0F0 800E3C40 24020014 */ addiu $v0, $zero, 0x14
/* 07D0F4 800E3C44 14620014 */ bne $v1, $v0, .L800E3C98
/* 07D0F8 800E3C48 3C030001 */ lui $v1, 1
/* 07D0FC 800E3C4C C7A60034 */ lwc1 $f6, 0x34($sp)
/* 07D100 800E3C50 C7A40038 */ lwc1 $f4, 0x38($sp)
/* 07D104 800E3C54 46003085 */ abs.s $f2, $f6
/* 07D108 800E3C58 46002005 */ abs.s $f0, $f4
/* 07D10C 800E3C5C 4602003C */ c.lt.s $f0, $f2
/* 07D110 800E3C60 00000000 */ nop
/* 07D114 800E3C64 45000006 */ bc1f .L800E3C80
/* 07D118 800E3C68 00000000 */ nop
/* 07D11C 800E3C6C C7A00030 */ lwc1 $f0, 0x30($sp)
/* 07D120 800E3C70 4480A000 */ mtc1 $zero, $f20
/* 07D124 800E3C74 46060582 */ mul.s $f22, $f0, $f6
/* 07D128 800E3C78 08038F36 */ j .L800E3CD8
/* 07D12C 800E3C7C 00000000 */ nop
.L800E3C80:
/* 07D130 800E3C80 C7A00030 */ lwc1 $f0, 0x30($sp)
/* 07D134 800E3C84 4480B000 */ mtc1 $zero, $f22
/* 07D138 800E3C88 46000007 */ neg.s $f0, $f0
/* 07D13C 800E3C8C 46040502 */ mul.s $f20, $f0, $f4
/* 07D140 800E3C90 08038F36 */ j .L800E3CD8
/* 07D144 800E3C94 00000000 */ nop
.L800E3C98:
/* 07D148 800E3C98 8E220004 */ lw $v0, 4($s1)
/* 07D14C 800E3C9C 00431024 */ and $v0, $v0, $v1
/* 07D150 800E3CA0 1440000A */ bnez $v0, .L800E3CCC
/* 07D154 800E3CA4 00000000 */ nop
/* 07D158 800E3CA8 C7A00030 */ lwc1 $f0, 0x30($sp)
/* 07D15C 800E3CAC C7A20034 */ lwc1 $f2, 0x34($sp)
/* 07D160 800E3CB0 46020582 */ mul.s $f22, $f0, $f2
/* 07D164 800E3CB4 00000000 */ nop
/* 07D168 800E3CB8 C7A20038 */ lwc1 $f2, 0x38($sp)
/* 07D16C 800E3CBC 46000007 */ neg.s $f0, $f0
/* 07D170 800E3CC0 46020502 */ mul.s $f20, $f0, $f2
/* 07D174 800E3CC4 08038F36 */ j .L800E3CD8
/* 07D178 800E3CC8 00000000 */ nop
.L800E3CCC:
/* 07D17C 800E3CCC 4480A000 */ mtc1 $zero, $f20
/* 07D180 800E3CD0 00000000 */ nop
/* 07D184 800E3CD4 4600A586 */ mov.s $f22, $f20
.L800E3CD8:
/* 07D188 800E3CD8 C62C0080 */ lwc1 $f12, 0x80($s1)
/* 07D18C 800E3CDC 3C0140C9 */ lui $at, 0x40c9
/* 07D190 800E3CE0 34210FD0 */ ori $at, $at, 0xfd0
/* 07D194 800E3CE4 44810000 */ mtc1 $at, $f0
/* 07D198 800E3CE8 00000000 */ nop
/* 07D19C 800E3CEC 46006302 */ mul.s $f12, $f12, $f0
/* 07D1A0 800E3CF0 00000000 */ nop
/* 07D1A4 800E3CF4 27A50034 */ addiu $a1, $sp, 0x34
/* 07D1A8 800E3CF8 3C0143B4 */ lui $at, 0x43b4
/* 07D1AC 800E3CFC 44810000 */ mtc1 $at, $f0
/* 07D1B0 800E3D00 27A60038 */ addiu $a2, $sp, 0x38
/* 07D1B4 800E3D04 0C00A82D */ jal sin_cos_rad
/* 07D1B8 800E3D08 46006303 */ div.s $f12, $f12, $f0
/* 07D1BC 800E3D0C C6220054 */ lwc1 $f2, 0x54($s1)
/* 07D1C0 800E3D10 E7A20030 */ swc1 $f2, 0x30($sp)
/* 07D1C4 800E3D14 8E220000 */ lw $v0, ($s1)
/* 07D1C8 800E3D18 3C030004 */ lui $v1, 4
/* 07D1CC 800E3D1C 00431024 */ and $v0, $v0, $v1
/* 07D1D0 800E3D20 10400007 */ beqz $v0, .L800E3D40
/* 07D1D4 800E3D24 00000000 */ nop
/* 07D1D8 800E3D28 3C013F00 */ lui $at, 0x3f00
/* 07D1DC 800E3D2C 44810000 */ mtc1 $at, $f0
/* 07D1E0 800E3D30 00000000 */ nop
/* 07D1E4 800E3D34 46001002 */ mul.s $f0, $f2, $f0
/* 07D1E8 800E3D38 00000000 */ nop
/* 07D1EC 800E3D3C E7A00030 */ swc1 $f0, 0x30($sp)
.L800E3D40:
/* 07D1F0 800E3D40 C7A40030 */ lwc1 $f4, 0x30($sp)
/* 07D1F4 800E3D44 C7A20034 */ lwc1 $f2, 0x34($sp)
/* 07D1F8 800E3D48 46022082 */ mul.s $f2, $f4, $f2
/* 07D1FC 800E3D4C 00000000 */ nop
/* 07D200 800E3D50 C7A00038 */ lwc1 $f0, 0x38($sp)
/* 07D204 800E3D54 46002102 */ mul.s $f4, $f4, $f0
/* 07D208 800E3D58 00000000 */ nop
/* 07D20C 800E3D5C 4602B080 */ add.s $f2, $f22, $f2
/* 07D210 800E3D60 4604A101 */ sub.s $f4, $f20, $f4
/* 07D214 800E3D64 44806000 */ mtc1 $zero, $f12
/* 07D218 800E3D68 44061000 */ mfc1 $a2, $f2
/* 07D21C 800E3D6C 44072000 */ mfc1 $a3, $f4
/* 07D220 800E3D70 46006386 */ mov.s $f14, $f12
/* 07D224 800E3D74 AFA60020 */ sw $a2, 0x20($sp)
/* 07D228 800E3D78 0C00A720 */ jal atan2
/* 07D22C 800E3D7C AFA70028 */ sw $a3, 0x28($sp)
/* 07D230 800E3D80 C7A40020 */ lwc1 $f4, 0x20($sp)
/* 07D234 800E3D84 46042102 */ mul.s $f4, $f4, $f4
/* 07D238 800E3D88 00000000 */ nop
/* 07D23C 800E3D8C C7A20028 */ lwc1 $f2, 0x28($sp)
/* 07D240 800E3D90 46021082 */ mul.s $f2, $f2, $f2
/* 07D244 800E3D94 00000000 */ nop
/* 07D248 800E3D98 46022300 */ add.s $f12, $f4, $f2
/* 07D24C 800E3D9C E7A0002C */ swc1 $f0, 0x2c($sp)
/* 07D250 800E3DA0 46006004 */ sqrt.s $f0, $f12
/* 07D254 800E3DA4 46000032 */ c.eq.s $f0, $f0
/* 07D258 800E3DA8 00000000 */ nop
/* 07D25C 800E3DAC 45010003 */ bc1t .L800E3DBC
/* 07D260 800E3DB0 00000000 */ nop
/* 07D264 800E3DB4 0C0187BC */ jal sqrtf
/* 07D268 800E3DB8 00000000 */ nop
.L800E3DBC:
/* 07D26C 800E3DBC 8E220000 */ lw $v0, ($s1)
/* 07D270 800E3DC0 30420006 */ andi $v0, $v0, 6
/* 07D274 800E3DC4 10400006 */ beqz $v0, .L800E3DE0
/* 07D278 800E3DC8 E7A00030 */ swc1 $f0, 0x30($sp)
/* 07D27C 800E3DCC C622005C */ lwc1 $f2, 0x5c($s1)
/* 07D280 800E3DD0 4600103C */ c.lt.s $f2, $f0
/* 07D284 800E3DD4 00000000 */ nop
/* 07D288 800E3DD8 45030001 */ bc1tl .L800E3DE0
/* 07D28C 800E3DDC E7A20030 */ swc1 $f2, 0x30($sp)
.L800E3DE0:
/* 07D290 800E3DE0 C6240028 */ lwc1 $f4, 0x28($s1)
/* 07D294 800E3DE4 C620001C */ lwc1 $f0, 0x1c($s1)
/* 07D298 800E3DE8 C6220030 */ lwc1 $f2, 0x30($s1)
/* 07D29C 800E3DEC 46002100 */ add.s $f4, $f4, $f0
/* 07D2A0 800E3DF0 C6200024 */ lwc1 $f0, 0x24($s1)
/* 07D2A4 800E3DF4 862200C0 */ lh $v0, 0xc0($s1)
/* 07D2A8 800E3DF8 46001080 */ add.s $f2, $f2, $f0
/* 07D2AC 800E3DFC E6240028 */ swc1 $f4, 0x28($s1)
/* 07D2B0 800E3E00 14400005 */ bnez $v0, .L800E3E18
/* 07D2B4 800E3E04 E6220030 */ swc1 $f2, 0x30($s1)
/* 07D2B8 800E3E08 C620002C */ lwc1 $f0, 0x2c($s1)
/* 07D2BC 800E3E0C C6220020 */ lwc1 $f2, 0x20($s1)
/* 07D2C0 800E3E10 46020000 */ add.s $f0, $f0, $f2
/* 07D2C4 800E3E14 E620002C */ swc1 $f0, 0x2c($s1)
.L800E3E18:
/* 07D2C8 800E3E18 C620001C */ lwc1 $f0, 0x1c($s1)
/* 07D2CC 800E3E1C 44801000 */ mtc1 $zero, $f2
/* 07D2D0 800E3E20 00000000 */ nop
/* 07D2D4 800E3E24 46020032 */ c.eq.s $f0, $f2
/* 07D2D8 800E3E28 00000000 */ nop
/* 07D2DC 800E3E2C 4500000B */ bc1f .L800E3E5C
/* 07D2E0 800E3E30 00000000 */ nop
/* 07D2E4 800E3E34 C6200020 */ lwc1 $f0, 0x20($s1)
/* 07D2E8 800E3E38 46020032 */ c.eq.s $f0, $f2
/* 07D2EC 800E3E3C 00000000 */ nop
/* 07D2F0 800E3E40 45000006 */ bc1f .L800E3E5C
/* 07D2F4 800E3E44 00000000 */ nop
/* 07D2F8 800E3E48 C6200024 */ lwc1 $f0, 0x24($s1)
/* 07D2FC 800E3E4C 46020032 */ c.eq.s $f0, $f2
/* 07D300 800E3E50 00000000 */ nop
/* 07D304 800E3E54 4501000A */ bc1t .L800E3E80
/* 07D308 800E3E58 0220202D */ daddu $a0, $s1, $zero
.L800E3E5C:
/* 07D30C 800E3E5C C6200028 */ lwc1 $f0, 0x28($s1)
/* 07D310 800E3E60 C622002C */ lwc1 $f2, 0x2c($s1)
/* 07D314 800E3E64 C6240030 */ lwc1 $f4, 0x30($s1)
/* 07D318 800E3E68 3C02800B */ lui $v0, 0x800b
/* 07D31C 800E3E6C 24421D80 */ addiu $v0, $v0, 0x1d80
/* 07D320 800E3E70 E4400060 */ swc1 $f0, 0x60($v0)
/* 07D324 800E3E74 E4420064 */ swc1 $f2, 0x64($v0)
/* 07D328 800E3E78 E4440068 */ swc1 $f4, 0x68($v0)
/* 07D32C 800E3E7C 0220202D */ daddu $a0, $s1, $zero
.L800E3E80:
/* 07D330 800E3E80 27B30020 */ addiu $s3, $sp, 0x20
/* 07D334 800E3E84 0260282D */ daddu $a1, $s3, $zero
/* 07D338 800E3E88 27B00024 */ addiu $s0, $sp, 0x24
/* 07D33C 800E3E8C 0200302D */ daddu $a2, $s0, $zero
/* 07D340 800E3E90 27B20028 */ addiu $s2, $sp, 0x28
/* 07D344 800E3E94 0240382D */ daddu $a3, $s2, $zero
/* 07D348 800E3E98 862200B2 */ lh $v0, 0xb2($s1)
/* 07D34C 800E3E9C C6240028 */ lwc1 $f4, 0x28($s1)
/* 07D350 800E3EA0 C626002C */ lwc1 $f6, 0x2c($s1)
/* 07D354 800E3EA4 C6280030 */ lwc1 $f8, 0x30($s1)
/* 07D358 800E3EA8 3C013F00 */ lui $at, 0x3f00
/* 07D35C 800E3EAC 4481B000 */ mtc1 $at, $f22
/* 07D360 800E3EB0 C6220080 */ lwc1 $f2, 0x80($s1)
/* 07D364 800E3EB4 44820000 */ mtc1 $v0, $f0
/* 07D368 800E3EB8 00000000 */ nop
/* 07D36C 800E3EBC 46800020 */ cvt.s.w $f0, $f0
/* 07D370 800E3EC0 46160002 */ mul.s $f0, $f0, $f22
/* 07D374 800E3EC4 00000000 */ nop
/* 07D378 800E3EC8 E7A40020 */ swc1 $f4, 0x20($sp)
/* 07D37C 800E3ECC E7A60024 */ swc1 $f6, 0x24($sp)
/* 07D380 800E3ED0 E7A80028 */ swc1 $f8, 0x28($sp)
/* 07D384 800E3ED4 E7A20014 */ swc1 $f2, 0x14($sp)
/* 07D388 800E3ED8 0C037D18 */ jal test_player_lateral
/* 07D38C 800E3EDC E7A00010 */ swc1 $f0, 0x10($sp)
/* 07D390 800E3EE0 C7A20030 */ lwc1 $f2, 0x30($sp)
/* 07D394 800E3EE4 44800000 */ mtc1 $zero, $f0
/* 07D398 800E3EE8 00000000 */ nop
/* 07D39C 800E3EEC 46001032 */ c.eq.s $f2, $f0
/* 07D3A0 800E3EF0 00000000 */ nop
/* 07D3A4 800E3EF4 45020045 */ bc1fl .L800E400C
/* 07D3A8 800E3EF8 A6820012 */ sh $v0, 0x12($s4)
/* 07D3AC 800E3EFC 04430043 */ bgezl $v0, .L800E400C
/* 07D3B0 800E3F00 A6820012 */ sh $v0, 0x12($s4)
/* 07D3B4 800E3F04 3C038007 */ lui $v1, 0x8007
/* 07D3B8 800E3F08 8C637410 */ lw $v1, 0x7410($v1)
/* 07D3BC 800E3F0C C62200A8 */ lwc1 $f2, 0xa8($s1)
/* 07D3C0 800E3F10 3C0142B4 */ lui $at, 0x42b4
/* 07D3C4 800E3F14 44810000 */ mtc1 $at, $f0
/* 07D3C8 800E3F18 00031080 */ sll $v0, $v1, 2
/* 07D3CC 800E3F1C 00431021 */ addu $v0, $v0, $v1
/* 07D3D0 800E3F20 00021080 */ sll $v0, $v0, 2
/* 07D3D4 800E3F24 00431023 */ subu $v0, $v0, $v1
/* 07D3D8 800E3F28 000218C0 */ sll $v1, $v0, 3
/* 07D3DC 800E3F2C 00431021 */ addu $v0, $v0, $v1
/* 07D3E0 800E3F30 000210C0 */ sll $v0, $v0, 3
/* 07D3E4 800E3F34 46001081 */ sub.s $f2, $f2, $f0
/* 07D3E8 800E3F38 3C01800B */ lui $at, 0x800b
/* 07D3EC 800E3F3C 00220821 */ addu $at, $at, $v0
/* 07D3F0 800E3F40 C4201DEC */ lwc1 $f0, 0x1dec($at)
/* 07D3F4 800E3F44 46001500 */ add.s $f20, $f2, $f0
/* 07D3F8 800E3F48 3C014334 */ lui $at, 0x4334
/* 07D3FC 800E3F4C 44816000 */ mtc1 $at, $f12
/* 07D400 800E3F50 00000000 */ nop
/* 07D404 800E3F54 460CA300 */ add.s $f12, $f20, $f12
/* 07D408 800E3F58 3C0140C9 */ lui $at, 0x40c9
/* 07D40C 800E3F5C 34210FD0 */ ori $at, $at, 0xfd0
/* 07D410 800E3F60 44810000 */ mtc1 $at, $f0
/* 07D414 800E3F64 00000000 */ nop
/* 07D418 800E3F68 46006302 */ mul.s $f12, $f12, $f0
/* 07D41C 800E3F6C 00000000 */ nop
/* 07D420 800E3F70 27A50034 */ addiu $a1, $sp, 0x34
/* 07D424 800E3F74 3C0143B4 */ lui $at, 0x43b4
/* 07D428 800E3F78 44810000 */ mtc1 $at, $f0
/* 07D42C 800E3F7C 27A60038 */ addiu $a2, $sp, 0x38
/* 07D430 800E3F80 0C00A82D */ jal sin_cos_rad
/* 07D434 800E3F84 46006303 */ div.s $f12, $f12, $f0
/* 07D438 800E3F88 862200B2 */ lh $v0, 0xb2($s1)
/* 07D43C 800E3F8C C7A60034 */ lwc1 $f6, 0x34($sp)
/* 07D440 800E3F90 44820000 */ mtc1 $v0, $f0
/* 07D444 800E3F94 00000000 */ nop
/* 07D448 800E3F98 46800020 */ cvt.s.w $f0, $f0
/* 07D44C 800E3F9C 46003182 */ mul.s $f6, $f6, $f0
/* 07D450 800E3FA0 00000000 */ nop
/* 07D454 800E3FA4 C7A40038 */ lwc1 $f4, 0x38($sp)
/* 07D458 800E3FA8 46002102 */ mul.s $f4, $f4, $f0
/* 07D45C 800E3FAC 00000000 */ nop
/* 07D460 800E3FB0 46163182 */ mul.s $f6, $f6, $f22
/* 07D464 800E3FB4 00000000 */ nop
/* 07D468 800E3FB8 46162102 */ mul.s $f4, $f4, $f22
/* 07D46C 800E3FBC 00000000 */ nop
/* 07D470 800E3FC0 0220202D */ daddu $a0, $s1, $zero
/* 07D474 800E3FC4 0260282D */ daddu $a1, $s3, $zero
/* 07D478 800E3FC8 C6220028 */ lwc1 $f2, 0x28($s1)
/* 07D47C 800E3FCC 0200302D */ daddu $a2, $s0, $zero
/* 07D480 800E3FD0 46061080 */ add.s $f2, $f2, $f6
/* 07D484 800E3FD4 C6200030 */ lwc1 $f0, 0x30($s1)
/* 07D488 800E3FD8 C626002C */ lwc1 $f6, 0x2c($s1)
/* 07D48C 800E3FDC 46040001 */ sub.s $f0, $f0, $f4
/* 07D490 800E3FE0 0240382D */ daddu $a3, $s2, $zero
/* 07D494 800E3FE4 E7A60024 */ swc1 $f6, 0x24($sp)
/* 07D498 800E3FE8 E7A00028 */ swc1 $f0, 0x28($sp)
/* 07D49C 800E3FEC 44820000 */ mtc1 $v0, $f0
/* 07D4A0 800E3FF0 00000000 */ nop
/* 07D4A4 800E3FF4 46800020 */ cvt.s.w $f0, $f0
/* 07D4A8 800E3FF8 E7A20020 */ swc1 $f2, 0x20($sp)
/* 07D4AC 800E3FFC E7A00010 */ swc1 $f0, 0x10($sp)
/* 07D4B0 800E4000 0C037D18 */ jal test_player_lateral
/* 07D4B4 800E4004 E7B40014 */ swc1 $f20, 0x14($sp)
/* 07D4B8 800E4008 A6820012 */ sh $v0, 0x12($s4)
.L800E400C:
/* 07D4BC 800E400C 8E220000 */ lw $v0, ($s1)
/* 07D4C0 800E4010 3C030040 */ lui $v1, 0x40
/* 07D4C4 800E4014 00431024 */ and $v0, $v0, $v1
/* 07D4C8 800E4018 144000B1 */ bnez $v0, .L800E42E0
/* 07D4CC 800E401C 24020012 */ addiu $v0, $zero, 0x12
/* 07D4D0 800E4020 822300B4 */ lb $v1, 0xb4($s1)
/* 07D4D4 800E4024 106200AE */ beq $v1, $v0, .L800E42E0
/* 07D4D8 800E4028 00000000 */ nop
/* 07D4DC 800E402C C7A60030 */ lwc1 $f6, 0x30($sp)
/* 07D4E0 800E4030 44800000 */ mtc1 $zero, $f0
/* 07D4E4 800E4034 00000000 */ nop
/* 07D4E8 800E4038 46003032 */ c.eq.s $f6, $f0
/* 07D4EC 800E403C 00000000 */ nop
/* 07D4F0 800E4040 45000015 */ bc1f .L800E4098
/* 07D4F4 800E4044 0000202D */ daddu $a0, $zero, $zero
/* 07D4F8 800E4048 3C038007 */ lui $v1, 0x8007
/* 07D4FC 800E404C 8C637410 */ lw $v1, 0x7410($v1)
/* 07D500 800E4050 C62200A8 */ lwc1 $f2, 0xa8($s1)
/* 07D504 800E4054 3C0142B4 */ lui $at, 0x42b4
/* 07D508 800E4058 44810000 */ mtc1 $at, $f0
/* 07D50C 800E405C 00031080 */ sll $v0, $v1, 2
/* 07D510 800E4060 00431021 */ addu $v0, $v0, $v1
/* 07D514 800E4064 00021080 */ sll $v0, $v0, 2
/* 07D518 800E4068 00431023 */ subu $v0, $v0, $v1
/* 07D51C 800E406C 000218C0 */ sll $v1, $v0, 3
/* 07D520 800E4070 00431021 */ addu $v0, $v0, $v1
/* 07D524 800E4074 000210C0 */ sll $v0, $v0, 3
/* 07D528 800E4078 46001081 */ sub.s $f2, $f2, $f0
/* 07D52C 800E407C 3C01800B */ lui $at, 0x800b
/* 07D530 800E4080 00220821 */ addu $at, $at, $v0
/* 07D534 800E4084 C4201DEC */ lwc1 $f0, 0x1dec($at)
/* 07D538 800E4088 46001080 */ add.s $f2, $f2, $f0
/* 07D53C 800E408C 44061000 */ mfc1 $a2, $f2
/* 07D540 800E4090 080390B6 */ j .L800E42D8
/* 07D544 800E4094 0080282D */ daddu $a1, $a0, $zero
.L800E4098:
/* 07D548 800E4098 C7B4002C */ lwc1 $f20, 0x2c($sp)
/* 07D54C 800E409C C6200028 */ lwc1 $f0, 0x28($s1)
/* 07D550 800E40A0 C6240030 */ lwc1 $f4, 0x30($s1)
/* 07D554 800E40A4 3C014080 */ lui $at, 0x4080
/* 07D558 800E40A8 4481B000 */ mtc1 $at, $f22
/* 07D55C 800E40AC C622002C */ lwc1 $f2, 0x2c($s1)
/* 07D560 800E40B0 4606B03C */ c.lt.s $f22, $f6
/* 07D564 800E40B4 E7A00020 */ swc1 $f0, 0x20($sp)
/* 07D568 800E40B8 E7A40028 */ swc1 $f4, 0x28($sp)
/* 07D56C 800E40BC 45000016 */ bc1f .L800E4118
/* 07D570 800E40C0 E7A20024 */ swc1 $f2, 0x24($sp)
/* 07D574 800E40C4 0220202D */ daddu $a0, $s1, $zero
/* 07D578 800E40C8 27B00020 */ addiu $s0, $sp, 0x20
/* 07D57C 800E40CC 0200282D */ daddu $a1, $s0, $zero
/* 07D580 800E40D0 27B20024 */ addiu $s2, $sp, 0x24
/* 07D584 800E40D4 0240302D */ daddu $a2, $s2, $zero
/* 07D588 800E40D8 27B30028 */ addiu $s3, $sp, 0x28
/* 07D58C 800E40DC 0260382D */ daddu $a3, $s3, $zero
/* 07D590 800E40E0 E7B60010 */ swc1 $f22, 0x10($sp)
/* 07D594 800E40E4 0C037D18 */ jal test_player_lateral
/* 07D598 800E40E8 E7B40014 */ swc1 $f20, 0x14($sp)
/* 07D59C 800E40EC 04430013 */ bgezl $v0, .L800E413C
/* 07D5A0 800E40F0 A6820000 */ sh $v0, ($s4)
/* 07D5A4 800E40F4 0220202D */ daddu $a0, $s1, $zero
/* 07D5A8 800E40F8 0200282D */ daddu $a1, $s0, $zero
/* 07D5AC 800E40FC C7A00030 */ lwc1 $f0, 0x30($sp)
/* 07D5B0 800E4100 0240302D */ daddu $a2, $s2, $zero
/* 07D5B4 800E4104 46160001 */ sub.s $f0, $f0, $f22
/* 07D5B8 800E4108 0260382D */ daddu $a3, $s3, $zero
/* 07D5BC 800E410C E7B40014 */ swc1 $f20, 0x14($sp)
/* 07D5C0 800E4110 0803904C */ j .L800E4130
/* 07D5C4 800E4114 E7A00010 */ swc1 $f0, 0x10($sp)
.L800E4118:
/* 07D5C8 800E4118 0220202D */ daddu $a0, $s1, $zero
/* 07D5CC 800E411C 27A50020 */ addiu $a1, $sp, 0x20
/* 07D5D0 800E4120 27A60024 */ addiu $a2, $sp, 0x24
/* 07D5D4 800E4124 27A70028 */ addiu $a3, $sp, 0x28
/* 07D5D8 800E4128 E7A60010 */ swc1 $f6, 0x10($sp)
/* 07D5DC 800E412C E7B40014 */ swc1 $f20, 0x14($sp)
.L800E4130:
/* 07D5E0 800E4130 0C037D18 */ jal test_player_lateral
/* 07D5E4 800E4134 00000000 */ nop
/* 07D5E8 800E4138 A6820000 */ sh $v0, ($s4)
.L800E413C:
/* 07D5EC 800E413C C7A00020 */ lwc1 $f0, 0x20($sp)
/* 07D5F0 800E4140 C7A20024 */ lwc1 $f2, 0x24($sp)
/* 07D5F4 800E4144 3C018011 */ lui $at, 0x8011
/* 07D5F8 800E4148 D436BED8 */ ldc1 $f22, -0x4128($at)
/* 07D5FC 800E414C 4600A521 */ cvt.d.s $f20, $f20
/* 07D600 800E4150 E7A0003C */ swc1 $f0, 0x3c($sp)
/* 07D604 800E4154 C7A00028 */ lwc1 $f0, 0x28($sp)
/* 07D608 800E4158 4636A301 */ sub.d $f12, $f20, $f22
/* 07D60C 800E415C E7A20040 */ swc1 $f2, 0x40($sp)
/* 07D610 800E4160 E7A00044 */ swc1 $f0, 0x44($sp)
/* 07D614 800E4164 0C00A6C9 */ jal clamp_angle
/* 07D618 800E4168 46206320 */ cvt.s.d $f12, $f12
/* 07D61C 800E416C 0000202D */ daddu $a0, $zero, $zero
/* 07D620 800E4170 0220282D */ daddu $a1, $s1, $zero
/* 07D624 800E4174 27A6003C */ addiu $a2, $sp, 0x3c
/* 07D628 800E4178 27A70040 */ addiu $a3, $sp, 0x40
/* 07D62C 800E417C 27A20044 */ addiu $v0, $sp, 0x44
/* 07D630 800E4180 E7A0002C */ swc1 $f0, 0x2c($sp)
/* 07D634 800E4184 AFA20010 */ sw $v0, 0x10($sp)
/* 07D638 800E4188 AFA00014 */ sw $zero, 0x14($sp)
/* 07D63C 800E418C 0C037B01 */ jal func_800DEC04
/* 07D640 800E4190 E7A00018 */ swc1 $f0, 0x18($sp)
/* 07D644 800E4194 C7A00020 */ lwc1 $f0, 0x20($sp)
/* 07D648 800E4198 C7A20028 */ lwc1 $f2, 0x28($sp)
/* 07D64C 800E419C 4636A500 */ add.d $f20, $f20, $f22
/* 07D650 800E41A0 E7A00048 */ swc1 $f0, 0x48($sp)
/* 07D654 800E41A4 C7A00024 */ lwc1 $f0, 0x24($sp)
/* 07D658 800E41A8 0040802D */ daddu $s0, $v0, $zero
/* 07D65C 800E41AC E7A20050 */ swc1 $f2, 0x50($sp)
/* 07D660 800E41B0 4620A320 */ cvt.s.d $f12, $f20
/* 07D664 800E41B4 0C00A6C9 */ jal clamp_angle
/* 07D668 800E41B8 E7A0004C */ swc1 $f0, 0x4c($sp)
/* 07D66C 800E41BC 0000202D */ daddu $a0, $zero, $zero
/* 07D670 800E41C0 0220282D */ daddu $a1, $s1, $zero
/* 07D674 800E41C4 27A60048 */ addiu $a2, $sp, 0x48
/* 07D678 800E41C8 27A7004C */ addiu $a3, $sp, 0x4c
/* 07D67C 800E41CC 27A20050 */ addiu $v0, $sp, 0x50
/* 07D680 800E41D0 E7A0002C */ swc1 $f0, 0x2c($sp)
/* 07D684 800E41D4 AFA20010 */ sw $v0, 0x10($sp)
/* 07D688 800E41D8 AFA00014 */ sw $zero, 0x14($sp)
/* 07D68C 800E41DC 0C037B01 */ jal func_800DEC04
/* 07D690 800E41E0 E7A00018 */ swc1 $f0, 0x18($sp)
/* 07D694 800E41E4 0601000B */ bgez $s0, .L800E4214
/* 07D698 800E41E8 00000000 */ nop
/* 07D69C 800E41EC 04410005 */ bgez $v0, .L800E4204
/* 07D6A0 800E41F0 00000000 */ nop
/* 07D6A4 800E41F4 C7A00020 */ lwc1 $f0, 0x20($sp)
/* 07D6A8 800E41F8 C7A20028 */ lwc1 $f2, 0x28($sp)
/* 07D6AC 800E41FC 0803908A */ j .L800E4228
/* 07D6B0 800E4200 E6200028 */ swc1 $f0, 0x28($s1)
.L800E4204:
/* 07D6B4 800E4204 C7A0003C */ lwc1 $f0, 0x3c($sp)
/* 07D6B8 800E4208 C7A20044 */ lwc1 $f2, 0x44($sp)
/* 07D6BC 800E420C 0803908A */ j .L800E4228
/* 07D6C0 800E4210 E6200028 */ swc1 $f0, 0x28($s1)
.L800E4214:
/* 07D6C4 800E4214 04410005 */ bgez $v0, .L800E422C
/* 07D6C8 800E4218 00000000 */ nop
/* 07D6CC 800E421C C7A00048 */ lwc1 $f0, 0x48($sp)
/* 07D6D0 800E4220 C7A20050 */ lwc1 $f2, 0x50($sp)
/* 07D6D4 800E4224 E6200028 */ swc1 $f0, 0x28($s1)
.L800E4228:
/* 07D6D8 800E4228 E6220030 */ swc1 $f2, 0x30($s1)
.L800E422C:
/* 07D6DC 800E422C 82220014 */ lb $v0, 0x14($s1)
/* 07D6E0 800E4230 1440002B */ bnez $v0, .L800E42E0
/* 07D6E4 800E4234 3C030001 */ lui $v1, 1
/* 07D6E8 800E4238 8E220004 */ lw $v0, 4($s1)
/* 07D6EC 800E423C 00431024 */ and $v0, $v0, $v1
/* 07D6F0 800E4240 10400004 */ beqz $v0, .L800E4254
/* 07D6F4 800E4244 0000202D */ daddu $a0, $zero, $zero
/* 07D6F8 800E4248 C6340080 */ lwc1 $f20, 0x80($s1)
/* 07D6FC 800E424C 080390A6 */ j .L800E4298
/* 07D700 800E4250 00000000 */ nop
.L800E4254:
/* 07D704 800E4254 3C038007 */ lui $v1, 0x8007
/* 07D708 800E4258 8C637410 */ lw $v1, 0x7410($v1)
/* 07D70C 800E425C C62200A8 */ lwc1 $f2, 0xa8($s1)
/* 07D710 800E4260 3C0142B4 */ lui $at, 0x42b4
/* 07D714 800E4264 44810000 */ mtc1 $at, $f0
/* 07D718 800E4268 00031080 */ sll $v0, $v1, 2
/* 07D71C 800E426C 00431021 */ addu $v0, $v0, $v1
/* 07D720 800E4270 00021080 */ sll $v0, $v0, 2
/* 07D724 800E4274 00431023 */ subu $v0, $v0, $v1
/* 07D728 800E4278 000218C0 */ sll $v1, $v0, 3
/* 07D72C 800E427C 00431021 */ addu $v0, $v0, $v1
/* 07D730 800E4280 000210C0 */ sll $v0, $v0, 3
/* 07D734 800E4284 46001081 */ sub.s $f2, $f2, $f0
/* 07D738 800E4288 3C01800B */ lui $at, 0x800b
/* 07D73C 800E428C 00220821 */ addu $at, $at, $v0
/* 07D740 800E4290 C4201DEC */ lwc1 $f0, 0x1dec($at)
/* 07D744 800E4294 46001500 */ add.s $f20, $f2, $f0
.L800E4298:
/* 07D748 800E4298 4406A000 */ mfc1 $a2, $f20
/* 07D74C 800E429C 0C0390C2 */ jal func_800E4308
/* 07D750 800E42A0 0080282D */ daddu $a1, $a0, $zero
/* 07D754 800E42A4 0441000E */ bgez $v0, .L800E42E0
/* 07D758 800E42A8 24040001 */ addiu $a0, $zero, 1
/* 07D75C 800E42AC 862200B0 */ lh $v0, 0xb0($s1)
/* 07D760 800E42B0 3C013F40 */ lui $at, 0x3f40
/* 07D764 800E42B4 44811000 */ mtc1 $at, $f2
/* 07D768 800E42B8 44820000 */ mtc1 $v0, $f0
/* 07D76C 800E42BC 00000000 */ nop
/* 07D770 800E42C0 46800020 */ cvt.s.w $f0, $f0
/* 07D774 800E42C4 46020002 */ mul.s $f0, $f0, $f2
/* 07D778 800E42C8 00000000 */ nop
/* 07D77C 800E42CC 4406A000 */ mfc1 $a2, $f20
/* 07D780 800E42D0 4600040D */ trunc.w.s $f16, $f0
/* 07D784 800E42D4 44058000 */ mfc1 $a1, $f16
.L800E42D8:
/* 07D788 800E42D8 0C0390C2 */ jal func_800E4308
/* 07D78C 800E42DC 00000000 */ nop
.L800E42E0:
/* 07D790 800E42E0 8FBF006C */ lw $ra, 0x6c($sp)
/* 07D794 800E42E4 8FB40068 */ lw $s4, 0x68($sp)
/* 07D798 800E42E8 8FB30064 */ lw $s3, 0x64($sp)
/* 07D79C 800E42EC 8FB20060 */ lw $s2, 0x60($sp)
/* 07D7A0 800E42F0 8FB1005C */ lw $s1, 0x5c($sp)
/* 07D7A4 800E42F4 8FB00058 */ lw $s0, 0x58($sp)
/* 07D7A8 800E42F8 D7B60078 */ ldc1 $f22, 0x78($sp)
/* 07D7AC 800E42FC D7B40070 */ ldc1 $f20, 0x70($sp)
/* 07D7B0 800E4300 03E00008 */ jr $ra
/* 07D7B4 800E4304 27BD0080 */ addiu $sp, $sp, 0x80