papermario/asm/nonmatchings/code_109660_len_1270/func_802E7F6C.s
2020-08-12 21:56:23 -04:00

929 lines
43 KiB
ArmAsm

.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
.include "include/macro.inc"
glabel func_802E7F6C
/* 1097EC 802E7F6C 27BDFFE8 */ addiu $sp, $sp, -0x18
/* 1097F0 802E7F70 3C050A00 */ lui $a1, 0xa00
/* 1097F4 802E7F74 24A54350 */ addiu $a1, $a1, 0x4350
/* 1097F8 802E7F78 AFBF0010 */ sw $ra, 0x10($sp)
/* 1097FC 802E7F7C 8C820040 */ lw $v0, 0x40($a0)
/* 109800 802E7F80 C480004C */ lwc1 $f0, 0x4c($a0)
/* 109804 802E7F84 3C060A00 */ lui $a2, 0xa00
/* 109808 802E7F88 24C626F0 */ addiu $a2, $a2, 0x26f0
/* 10980C 802E7F8C 0C0B9F78 */ jal func_802E7DE0
/* 109810 802E7F90 E440000C */ swc1 $f0, 0xc($v0)
/* 109814 802E7F94 8FBF0010 */ lw $ra, 0x10($sp)
/* 109818 802E7F98 03E00008 */ jr $ra
/* 10981C 802E7F9C 27BD0018 */ addiu $sp, $sp, 0x18
/* 109820 802E7FA0 27BDFF78 */ addiu $sp, $sp, -0x88
/* 109824 802E7FA4 F7B80068 */ sdc1 $f24, 0x68($sp)
/* 109828 802E7FA8 4480C000 */ mtc1 $zero, $f24
/* 10982C 802E7FAC F7BC0078 */ sdc1 $f28, 0x78($sp)
/* 109830 802E7FB0 3C014100 */ lui $at, 0x4100
/* 109834 802E7FB4 4481E000 */ mtc1 $at, $f28
/* 109838 802E7FB8 AFBE0050 */ sw $fp, 0x50($sp)
/* 10983C 802E7FBC 0080F02D */ daddu $fp, $a0, $zero
/* 109840 802E7FC0 AFB3003C */ sw $s3, 0x3c($sp)
/* 109844 802E7FC4 0000982D */ daddu $s3, $zero, $zero
/* 109848 802E7FC8 AFB60048 */ sw $s6, 0x48($sp)
/* 10984C 802E7FCC 27B60020 */ addiu $s6, $sp, 0x20
/* 109850 802E7FD0 AFB50044 */ sw $s5, 0x44($sp)
/* 109854 802E7FD4 27B50024 */ addiu $s5, $sp, 0x24
/* 109858 802E7FD8 AFB40040 */ sw $s4, 0x40($sp)
/* 10985C 802E7FDC 27B40028 */ addiu $s4, $sp, 0x28
/* 109860 802E7FE0 AFB7004C */ sw $s7, 0x4c($sp)
/* 109864 802E7FE4 3C178000 */ lui $s7, 0x8000
/* 109868 802E7FE8 AFBF0054 */ sw $ra, 0x54($sp)
/* 10986C 802E7FEC AFB20038 */ sw $s2, 0x38($sp)
/* 109870 802E7FF0 AFB10034 */ sw $s1, 0x34($sp)
/* 109874 802E7FF4 AFB00030 */ sw $s0, 0x30($sp)
/* 109878 802E7FF8 F7BE0080 */ sdc1 $f30, 0x80($sp)
/* 10987C 802E7FFC F7BA0070 */ sdc1 $f26, 0x70($sp)
/* 109880 802E8000 F7B60060 */ sdc1 $f22, 0x60($sp)
/* 109884 802E8004 F7B40058 */ sdc1 $f20, 0x58($sp)
/* 109888 802E8008 8FD20040 */ lw $s2, 0x40($fp)
/* 10988C 802E800C 4600C786 */ mov.s $f30, $f24
/* 109890 802E8010 4600C686 */ mov.s $f26, $f24
/* 109894 802E8014 0240882D */ daddu $s1, $s2, $zero
/* 109898 802E8018 0240802D */ daddu $s0, $s2, $zero
.L802E801C:
/* 10989C 802E801C 82230010 */ lb $v1, 0x10($s1)
/* 1098A0 802E8020 24020001 */ addiu $v0, $zero, 1
/* 1098A4 802E8024 10620028 */ beq $v1, $v0, .L802E80C8
/* 1098A8 802E8028 28620002 */ slti $v0, $v1, 2
/* 1098AC 802E802C 10400005 */ beqz $v0, .L802E8044
/* 1098B0 802E8030 24020002 */ addiu $v0, $zero, 2
/* 1098B4 802E8034 10600009 */ beqz $v1, .L802E805C
/* 1098B8 802E8038 00000000 */ nop
/* 1098BC 802E803C 080BA05A */ j .L802E8168
/* 1098C0 802E8040 00000000 */ nop
.L802E8044:
/* 1098C4 802E8044 10620029 */ beq $v1, $v0, .L802E80EC
/* 1098C8 802E8048 24020003 */ addiu $v0, $zero, 3
/* 1098CC 802E804C 50620046 */ beql $v1, $v0, .L802E8168
/* 1098D0 802E8050 26730001 */ addiu $s3, $s3, 1
/* 1098D4 802E8054 080BA05A */ j .L802E8168
/* 1098D8 802E8058 00000000 */ nop
.L802E805C:
/* 1098DC 802E805C 3C014000 */ lui $at, 0x4000
/* 1098E0 802E8060 4481F000 */ mtc1 $at, $f30
/* 1098E4 802E8064 922200A0 */ lbu $v0, 0xa0($s1)
/* 1098E8 802E8068 C61800C4 */ lwc1 $f24, 0xc4($s0)
/* 1098EC 802E806C 3C014120 */ lui $at, 0x4120
/* 1098F0 802E8070 44810000 */ mtc1 $at, $f0
/* 1098F4 802E8074 44801000 */ mtc1 $zero, $f2
/* 1098F8 802E8078 44822000 */ mtc1 $v0, $f4
/* 1098FC 802E807C 00000000 */ nop
/* 109900 802E8080 46802120 */ cvt.s.w $f4, $f4
/* 109904 802E8084 4618103E */ c.le.s $f2, $f24
/* 109908 802E8088 00000000 */ nop
/* 10990C 802E808C 45000006 */ bc1f .L802E80A8
/* 109910 802E8090 46002683 */ div.s $f26, $f4, $f0
/* 109914 802E8094 3C01802F */ lui $at, 0x802f
/* 109918 802E8098 D422B350 */ ldc1 $f2, -0x4cb0($at)
/* 10991C 802E809C 4600C021 */ cvt.d.s $f0, $f24
/* 109920 802E80A0 080BA02F */ j .L802E80BC
/* 109924 802E80A4 46220001 */ sub.d $f0, $f0, $f2
.L802E80A8:
/* 109928 802E80A8 3C013FE0 */ lui $at, 0x3fe0
/* 10992C 802E80AC 44811800 */ mtc1 $at, $f3
/* 109930 802E80B0 44801000 */ mtc1 $zero, $f2
/* 109934 802E80B4 4600C021 */ cvt.d.s $f0, $f24
/* 109938 802E80B8 46220000 */ add.d $f0, $f0, $f2
.L802E80BC:
/* 10993C 802E80BC 46200020 */ cvt.s.d $f0, $f0
/* 109940 802E80C0 080BA05A */ j .L802E8168
/* 109944 802E80C4 E60000C4 */ swc1 $f0, 0xc4($s0)
.L802E80C8:
/* 109948 802E80C8 3C013F80 */ lui $at, 0x3f80
/* 10994C 802E80CC 4481D000 */ mtc1 $at, $f26
/* 109950 802E80D0 C60200C4 */ lwc1 $f2, 0xc4($s0)
/* 109954 802E80D4 3C013E80 */ lui $at, 0x3e80
/* 109958 802E80D8 44810000 */ mtc1 $at, $f0
/* 10995C 802E80DC 4480F000 */ mtc1 $zero, $f30
/* 109960 802E80E0 46001602 */ mul.s $f24, $f2, $f0
/* 109964 802E80E4 080BA05A */ j .L802E8168
/* 109968 802E80E8 00000000 */ nop
.L802E80EC:
/* 10996C 802E80EC C60200C4 */ lwc1 $f2, 0xc4($s0)
/* 109970 802E80F0 3C013F80 */ lui $at, 0x3f80
/* 109974 802E80F4 44810000 */ mtc1 $at, $f0
/* 109978 802E80F8 00000000 */ nop
/* 10997C 802E80FC 46001080 */ add.s $f2, $f2, $f0
/* 109980 802E8100 3C0141A0 */ lui $at, 0x41a0
/* 109984 802E8104 44810000 */ mtc1 $at, $f0
/* 109988 802E8108 00000000 */ nop
/* 10998C 802E810C 4602003C */ c.lt.s $f0, $f2
/* 109990 802E8110 00000000 */ nop
/* 109994 802E8114 45000002 */ bc1f .L802E8120
/* 109998 802E8118 E60200C4 */ swc1 $f2, 0xc4($s0)
/* 10999C 802E811C E60000C4 */ swc1 $f0, 0xc4($s0)
.L802E8120:
/* 1099A0 802E8120 C60200C4 */ lwc1 $f2, 0xc4($s0)
/* 1099A4 802E8124 3C01428C */ lui $at, 0x428c
/* 1099A8 802E8128 44812000 */ mtc1 $at, $f4
/* 1099AC 802E812C C60001E4 */ lwc1 $f0, 0x1e4($s0)
/* 1099B0 802E8130 46041083 */ div.s $f2, $f2, $f4
/* 1099B4 802E8134 46020001 */ sub.s $f0, $f0, $f2
/* 1099B8 802E8138 E60001E4 */ swc1 $f0, 0x1e4($s0)
/* 1099BC 802E813C 92220034 */ lbu $v0, 0x34($s1)
/* 1099C0 802E8140 2442FFFB */ addiu $v0, $v0, -5
/* 1099C4 802E8144 A2220034 */ sb $v0, 0x34($s1)
/* 1099C8 802E8148 304200FF */ andi $v0, $v0, 0xff
/* 1099CC 802E814C 2C420006 */ sltiu $v0, $v0, 6
/* 1099D0 802E8150 10400005 */ beqz $v0, .L802E8168
/* 1099D4 802E8154 00000000 */ nop
/* 1099D8 802E8158 92220010 */ lbu $v0, 0x10($s1)
/* 1099DC 802E815C A2200034 */ sb $zero, 0x34($s1)
/* 1099E0 802E8160 24420001 */ addiu $v0, $v0, 1
/* 1099E4 802E8164 A2220010 */ sb $v0, 0x10($s1)
.L802E8168:
/* 1099E8 802E8168 82220010 */ lb $v0, 0x10($s1)
/* 1099EC 802E816C 28420002 */ slti $v0, $v0, 2
/* 1099F0 802E8170 504000DB */ beql $v0, $zero, .L802E84E0
/* 1099F4 802E8174 26310001 */ addiu $s1, $s1, 1
/* 1099F8 802E8178 C6020304 */ lwc1 $f2, 0x304($s0)
/* 1099FC 802E817C 44800000 */ mtc1 $zero, $f0
/* 109A00 802E8180 00000000 */ nop
/* 109A04 802E8184 4602003E */ c.le.s $f0, $f2
/* 109A08 802E8188 3C01802F */ lui $at, 0x802f
/* 109A0C 802E818C D420B358 */ ldc1 $f0, -0x4ca8($at)
/* 109A10 802E8190 45000003 */ bc1f .L802E81A0
/* 109A14 802E8194 460010A1 */ cvt.d.s $f2, $f2
/* 109A18 802E8198 3C01802F */ lui $at, 0x802f
/* 109A1C 802E819C D420B360 */ ldc1 $f0, -0x4ca0($at)
.L802E81A0:
/* 109A20 802E81A0 46201081 */ sub.d $f2, $f2, $f0
/* 109A24 802E81A4 3C01802F */ lui $at, 0x802f
/* 109A28 802E81A8 D424B368 */ ldc1 $f4, -0x4c98($at)
/* 109A2C 802E81AC 462010A0 */ cvt.s.d $f2, $f2
/* 109A30 802E81B0 46001021 */ cvt.d.s $f0, $f2
/* 109A34 802E81B4 4624003C */ c.lt.d $f0, $f4
/* 109A38 802E81B8 00000000 */ nop
/* 109A3C 802E81BC 45000006 */ bc1f .L802E81D8
/* 109A40 802E81C0 E6020304 */ swc1 $f2, 0x304($s0)
/* 109A44 802E81C4 3C01C123 */ lui $at, 0xc123
/* 109A48 802E81C8 34213333 */ ori $at, $at, 0x3333
/* 109A4C 802E81CC 44810000 */ mtc1 $at, $f0
/* 109A50 802E81D0 00000000 */ nop
/* 109A54 802E81D4 E6000304 */ swc1 $f0, 0x304($s0)
.L802E81D8:
/* 109A58 802E81D8 C60001E4 */ lwc1 $f0, 0x1e4($s0)
/* 109A5C 802E81DC C6020304 */ lwc1 $f2, 0x304($s0)
/* 109A60 802E81E0 46020000 */ add.s $f0, $f0, $f2
/* 109A64 802E81E4 E60001E4 */ swc1 $f0, 0x1e4($s0)
/* 109A68 802E81E8 92220034 */ lbu $v0, 0x34($s1)
/* 109A6C 802E81EC 3C0143B4 */ lui $at, 0x43b4
/* 109A70 802E81F0 44814000 */ mtc1 $at, $f8
/* 109A74 802E81F4 4482A000 */ mtc1 $v0, $f20
/* 109A78 802E81F8 00000000 */ nop
/* 109A7C 802E81FC 4680A520 */ cvt.s.w $f20, $f20
/* 109A80 802E8200 4608A502 */ mul.s $f20, $f20, $f8
/* 109A84 802E8204 00000000 */ nop
/* 109A88 802E8208 3C013B80 */ lui $at, 0x3b80
/* 109A8C 802E820C 44814000 */ mtc1 $at, $f8
/* 109A90 802E8210 00000000 */ nop
/* 109A94 802E8214 4608A502 */ mul.s $f20, $f20, $f8
/* 109A98 802E8218 00000000 */ nop
/* 109A9C 802E821C 3C0140C9 */ lui $at, 0x40c9
/* 109AA0 802E8220 34210FD0 */ ori $at, $at, 0xfd0
/* 109AA4 802E8224 44814000 */ mtc1 $at, $f8
/* 109AA8 802E8228 00000000 */ nop
/* 109AAC 802E822C 4608A002 */ mul.s $f0, $f20, $f8
/* 109AB0 802E8230 00000000 */ nop
/* 109AB4 802E8234 3C0143B4 */ lui $at, 0x43b4
/* 109AB8 802E8238 44814000 */ mtc1 $at, $f8
/* 109ABC 802E823C 00000000 */ nop
/* 109AC0 802E8240 46080583 */ div.s $f22, $f0, $f8
/* 109AC4 802E8244 0C00A85B */ jal sin_rad
/* 109AC8 802E8248 4600B306 */ mov.s $f12, $f22
/* 109ACC 802E824C 4600D002 */ mul.s $f0, $f26, $f0
/* 109AD0 802E8250 00000000 */ nop
/* 109AD4 802E8254 C6020154 */ lwc1 $f2, 0x154($s0)
/* 109AD8 802E8258 46001080 */ add.s $f2, $f2, $f0
/* 109ADC 802E825C 4600B306 */ mov.s $f12, $f22
/* 109AE0 802E8260 0C00A874 */ jal cos_rad
/* 109AE4 802E8264 E6020154 */ swc1 $f2, 0x154($s0)
/* 109AE8 802E8268 4600D002 */ mul.s $f0, $f26, $f0
/* 109AEC 802E826C 00000000 */ nop
/* 109AF0 802E8270 3C040004 */ lui $a0, 4
/* 109AF4 802E8274 C6020274 */ lwc1 $f2, 0x274($s0)
/* 109AF8 802E8278 02C0282D */ daddu $a1, $s6, $zero
/* 109AFC 802E827C 46001080 */ add.s $f2, $f2, $f0
/* 109B00 802E8280 C6000154 */ lwc1 $f0, 0x154($s0)
/* 109B04 802E8284 02A0302D */ daddu $a2, $s5, $zero
/* 109B08 802E8288 E6020274 */ swc1 $f2, 0x274($s0)
/* 109B0C 802E828C C60201E4 */ lwc1 $f2, 0x1e4($s0)
/* 109B10 802E8290 C6040274 */ lwc1 $f4, 0x274($s0)
/* 109B14 802E8294 0280382D */ daddu $a3, $s4, $zero
/* 109B18 802E8298 E7A00020 */ swc1 $f0, 0x20($sp)
/* 109B1C 802E829C E7A20024 */ swc1 $f2, 0x24($sp)
/* 109B20 802E82A0 E7A40028 */ swc1 $f4, 0x28($sp)
/* 109B24 802E82A4 E7BA0010 */ swc1 $f26, 0x10($sp)
/* 109B28 802E82A8 E7B40014 */ swc1 $f20, 0x14($sp)
/* 109B2C 802E82AC E7BC0018 */ swc1 $f28, 0x18($sp)
/* 109B30 802E82B0 0C0376B9 */ jal func_800DDAE4
/* 109B34 802E82B4 E7BC001C */ swc1 $f28, 0x1c($sp)
/* 109B38 802E82B8 10400031 */ beqz $v0, .L802E8380
/* 109B3C 802E82BC 3C040004 */ lui $a0, 4
/* 109B40 802E82C0 C7A00020 */ lwc1 $f0, 0x20($sp)
/* 109B44 802E82C4 C7A20024 */ lwc1 $f2, 0x24($sp)
/* 109B48 802E82C8 C7A40028 */ lwc1 $f4, 0x28($sp)
/* 109B4C 802E82CC E6000154 */ swc1 $f0, 0x154($s0)
/* 109B50 802E82D0 E60201E4 */ swc1 $f2, 0x1e4($s0)
/* 109B54 802E82D4 E6040274 */ swc1 $f4, 0x274($s0)
/* 109B58 802E82D8 92220034 */ lbu $v0, 0x34($s1)
/* 109B5C 802E82DC 3C0143B4 */ lui $at, 0x43b4
/* 109B60 802E82E0 44814000 */ mtc1 $at, $f8
/* 109B64 802E82E4 24420080 */ addiu $v0, $v0, 0x80
/* 109B68 802E82E8 A2220034 */ sb $v0, 0x34($s1)
/* 109B6C 802E82EC 304200FF */ andi $v0, $v0, 0xff
/* 109B70 802E82F0 44820000 */ mtc1 $v0, $f0
/* 109B74 802E82F4 00000000 */ nop
/* 109B78 802E82F8 46800020 */ cvt.s.w $f0, $f0
/* 109B7C 802E82FC 46080002 */ mul.s $f0, $f0, $f8
/* 109B80 802E8300 00000000 */ nop
/* 109B84 802E8304 3C013B80 */ lui $at, 0x3b80
/* 109B88 802E8308 44814000 */ mtc1 $at, $f8
/* 109B8C 802E830C 00000000 */ nop
/* 109B90 802E8310 46080002 */ mul.s $f0, $f0, $f8
/* 109B94 802E8314 00000000 */ nop
/* 109B98 802E8318 3C0140C9 */ lui $at, 0x40c9
/* 109B9C 802E831C 34210FD0 */ ori $at, $at, 0xfd0
/* 109BA0 802E8320 44814000 */ mtc1 $at, $f8
/* 109BA4 802E8324 00000000 */ nop
/* 109BA8 802E8328 46080002 */ mul.s $f0, $f0, $f8
/* 109BAC 802E832C 00000000 */ nop
/* 109BB0 802E8330 3C0143B4 */ lui $at, 0x43b4
/* 109BB4 802E8334 44814000 */ mtc1 $at, $f8
/* 109BB8 802E8338 00000000 */ nop
/* 109BBC 802E833C 46080583 */ div.s $f22, $f0, $f8
/* 109BC0 802E8340 0C00A85B */ jal sin_rad
/* 109BC4 802E8344 4600B306 */ mov.s $f12, $f22
/* 109BC8 802E8348 461C0002 */ mul.s $f0, $f0, $f28
/* 109BCC 802E834C 00000000 */ nop
/* 109BD0 802E8350 C6020154 */ lwc1 $f2, 0x154($s0)
/* 109BD4 802E8354 46001080 */ add.s $f2, $f2, $f0
/* 109BD8 802E8358 4600B306 */ mov.s $f12, $f22
/* 109BDC 802E835C 0C00A874 */ jal cos_rad
/* 109BE0 802E8360 E6020154 */ swc1 $f2, 0x154($s0)
/* 109BE4 802E8364 461C0002 */ mul.s $f0, $f0, $f28
/* 109BE8 802E8368 00000000 */ nop
/* 109BEC 802E836C C6020274 */ lwc1 $f2, 0x274($s0)
/* 109BF0 802E8370 46001080 */ add.s $f2, $f2, $f0
/* 109BF4 802E8374 4600E686 */ mov.s $f26, $f28
/* 109BF8 802E8378 E6020274 */ swc1 $f2, 0x274($s0)
/* 109BFC 802E837C 3C040004 */ lui $a0, 4
.L802E8380:
/* 109C00 802E8380 02C0282D */ daddu $a1, $s6, $zero
/* 109C04 802E8384 02A0302D */ daddu $a2, $s5, $zero
/* 109C08 802E8388 0280382D */ daddu $a3, $s4, $zero
/* 109C0C 802E838C 27A2002C */ addiu $v0, $sp, 0x2c
/* 109C10 802E8390 C60201E4 */ lwc1 $f2, 0x1e4($s0)
/* 109C14 802E8394 C6060154 */ lwc1 $f6, 0x154($s0)
/* 109C18 802E8398 461C1080 */ add.s $f2, $f2, $f28
/* 109C1C 802E839C C6000304 */ lwc1 $f0, 0x304($s0)
/* 109C20 802E83A0 C6040274 */ lwc1 $f4, 0x274($s0)
/* 109C24 802E83A4 46000005 */ abs.s $f0, $f0
/* 109C28 802E83A8 E7A60020 */ swc1 $f6, 0x20($sp)
/* 109C2C 802E83AC E7A40028 */ swc1 $f4, 0x28($sp)
/* 109C30 802E83B0 E7A0002C */ swc1 $f0, 0x2c($sp)
/* 109C34 802E83B4 E7A20024 */ swc1 $f2, 0x24($sp)
/* 109C38 802E83B8 0C0372DF */ jal func_800DCB7C
/* 109C3C 802E83BC AFA20010 */ sw $v0, 0x10($sp)
/* 109C40 802E83C0 1440000B */ bnez $v0, .L802E83F0
/* 109C44 802E83C4 00000000 */ nop
/* 109C48 802E83C8 C640000C */ lwc1 $f0, 0xc($s2)
/* 109C4C 802E83CC 3C014348 */ lui $at, 0x4348
/* 109C50 802E83D0 44811000 */ mtc1 $at, $f2
/* 109C54 802E83D4 00000000 */ nop
/* 109C58 802E83D8 46020001 */ sub.s $f0, $f0, $f2
/* 109C5C 802E83DC C7A20024 */ lwc1 $f2, 0x24($sp)
/* 109C60 802E83E0 4600103C */ c.lt.s $f2, $f0
/* 109C64 802E83E4 00000000 */ nop
/* 109C68 802E83E8 45000010 */ bc1f .L802E842C
/* 109C6C 802E83EC 00000000 */ nop
.L802E83F0:
/* 109C70 802E83F0 92220010 */ lbu $v0, 0x10($s1)
/* 109C74 802E83F4 24420001 */ addiu $v0, $v0, 1
/* 109C78 802E83F8 A2220010 */ sb $v0, 0x10($s1)
/* 109C7C 802E83FC C6000304 */ lwc1 $f0, 0x304($s0)
/* 109C80 802E8400 C7A20024 */ lwc1 $f2, 0x24($sp)
/* 109C84 802E8404 46000005 */ abs.s $f0, $f0
/* 109C88 802E8408 46001080 */ add.s $f2, $f2, $f0
/* 109C8C 802E840C E61E0304 */ swc1 $f30, 0x304($s0)
/* 109C90 802E8410 E60201E4 */ swc1 $f2, 0x1e4($s0)
/* 109C94 802E8414 82230010 */ lb $v1, 0x10($s1)
/* 109C98 802E8418 24020002 */ addiu $v0, $zero, 2
/* 109C9C 802E841C 14620003 */ bne $v1, $v0, .L802E842C
/* 109CA0 802E8420 240200FE */ addiu $v0, $zero, 0xfe
/* 109CA4 802E8424 A2220034 */ sb $v0, 0x34($s1)
/* 109CA8 802E8428 AE0000C4 */ sw $zero, 0xc4($s0)
.L802E842C:
/* 109CAC 802E842C 92220058 */ lbu $v0, 0x58($s1)
/* 109CB0 802E8430 44820000 */ mtc1 $v0, $f0
/* 109CB4 802E8434 00000000 */ nop
/* 109CB8 802E8438 46800020 */ cvt.s.w $f0, $f0
/* 109CBC 802E843C 46180000 */ add.s $f0, $f0, $f24
/* 109CC0 802E8440 3C014F00 */ lui $at, 0x4f00
/* 109CC4 802E8444 44814000 */ mtc1 $at, $f8
/* 109CC8 802E8448 00000000 */ nop
/* 109CCC 802E844C 4600403E */ c.le.s $f8, $f0
/* 109CD0 802E8450 00000000 */ nop
/* 109CD4 802E8454 45010005 */ bc1t .L802E846C
/* 109CD8 802E8458 26230058 */ addiu $v1, $s1, 0x58
/* 109CDC 802E845C 4600020D */ trunc.w.s $f8, $f0
/* 109CE0 802E8460 44024000 */ mfc1 $v0, $f8
/* 109CE4 802E8464 080BA121 */ j .L802E8484
/* 109CE8 802E8468 A0620000 */ sb $v0, ($v1)
.L802E846C:
/* 109CEC 802E846C 46080001 */ sub.s $f0, $f0, $f8
/* 109CF0 802E8470 4600020D */ trunc.w.s $f8, $f0
/* 109CF4 802E8474 44024000 */ mfc1 $v0, $f8
/* 109CF8 802E8478 00000000 */ nop
/* 109CFC 802E847C 00571025 */ or $v0, $v0, $s7
/* 109D00 802E8480 A0620000 */ sb $v0, ($v1)
.L802E8484:
/* 109D04 802E8484 9222007C */ lbu $v0, 0x7c($s1)
/* 109D08 802E8488 44820000 */ mtc1 $v0, $f0
/* 109D0C 802E848C 00000000 */ nop
/* 109D10 802E8490 46800020 */ cvt.s.w $f0, $f0
/* 109D14 802E8494 46180001 */ sub.s $f0, $f0, $f24
/* 109D18 802E8498 3C014F00 */ lui $at, 0x4f00
/* 109D1C 802E849C 44814000 */ mtc1 $at, $f8
/* 109D20 802E84A0 00000000 */ nop
/* 109D24 802E84A4 4600403E */ c.le.s $f8, $f0
/* 109D28 802E84A8 00000000 */ nop
/* 109D2C 802E84AC 45010005 */ bc1t .L802E84C4
/* 109D30 802E84B0 2623007C */ addiu $v1, $s1, 0x7c
/* 109D34 802E84B4 4600020D */ trunc.w.s $f8, $f0
/* 109D38 802E84B8 44024000 */ mfc1 $v0, $f8
/* 109D3C 802E84BC 080BA137 */ j .L802E84DC
/* 109D40 802E84C0 A0620000 */ sb $v0, ($v1)
.L802E84C4:
/* 109D44 802E84C4 46080001 */ sub.s $f0, $f0, $f8
/* 109D48 802E84C8 4600020D */ trunc.w.s $f8, $f0
/* 109D4C 802E84CC 44024000 */ mfc1 $v0, $f8
/* 109D50 802E84D0 00000000 */ nop
/* 109D54 802E84D4 00571025 */ or $v0, $v0, $s7
/* 109D58 802E84D8 A0620000 */ sb $v0, ($v1)
.L802E84DC:
/* 109D5C 802E84DC 26310001 */ addiu $s1, $s1, 1
.L802E84E0:
/* 109D60 802E84E0 26420023 */ addiu $v0, $s2, 0x23
/* 109D64 802E84E4 0222102A */ slt $v0, $s1, $v0
/* 109D68 802E84E8 1440FECC */ bnez $v0, .L802E801C
/* 109D6C 802E84EC 26100004 */ addiu $s0, $s0, 4
/* 109D70 802E84F0 2A620023 */ slti $v0, $s3, 0x23
/* 109D74 802E84F4 14400003 */ bnez $v0, .L802E8504
/* 109D78 802E84F8 00000000 */ nop
/* 109D7C 802E84FC 0C043F5A */ jal func_8010FD68
/* 109D80 802E8500 03C0202D */ daddu $a0, $fp, $zero
.L802E8504:
/* 109D84 802E8504 8FBF0054 */ lw $ra, 0x54($sp)
/* 109D88 802E8508 8FBE0050 */ lw $fp, 0x50($sp)
/* 109D8C 802E850C 8FB7004C */ lw $s7, 0x4c($sp)
/* 109D90 802E8510 8FB60048 */ lw $s6, 0x48($sp)
/* 109D94 802E8514 8FB50044 */ lw $s5, 0x44($sp)
/* 109D98 802E8518 8FB40040 */ lw $s4, 0x40($sp)
/* 109D9C 802E851C 8FB3003C */ lw $s3, 0x3c($sp)
/* 109DA0 802E8520 8FB20038 */ lw $s2, 0x38($sp)
/* 109DA4 802E8524 8FB10034 */ lw $s1, 0x34($sp)
/* 109DA8 802E8528 8FB00030 */ lw $s0, 0x30($sp)
/* 109DAC 802E852C D7BE0080 */ ldc1 $f30, 0x80($sp)
/* 109DB0 802E8530 D7BC0078 */ ldc1 $f28, 0x78($sp)
/* 109DB4 802E8534 D7BA0070 */ ldc1 $f26, 0x70($sp)
/* 109DB8 802E8538 D7B80068 */ ldc1 $f24, 0x68($sp)
/* 109DBC 802E853C D7B60060 */ ldc1 $f22, 0x60($sp)
/* 109DC0 802E8540 D7B40058 */ ldc1 $f20, 0x58($sp)
/* 109DC4 802E8544 03E00008 */ jr $ra
/* 109DC8 802E8548 27BD0088 */ addiu $sp, $sp, 0x88
/* 109DCC 802E854C 27BDFE80 */ addiu $sp, $sp, -0x180
/* 109DD0 802E8550 AFBE0148 */ sw $fp, 0x148($sp)
/* 109DD4 802E8554 0000F02D */ daddu $fp, $zero, $zero
/* 109DD8 802E8558 27A80098 */ addiu $t0, $sp, 0x98
/* 109DDC 802E855C AFB5013C */ sw $s5, 0x13c($sp)
/* 109DE0 802E8560 27B500D8 */ addiu $s5, $sp, 0xd8
/* 109DE4 802E8564 AFB40138 */ sw $s4, 0x138($sp)
/* 109DE8 802E8568 27B40058 */ addiu $s4, $sp, 0x58
/* 109DEC 802E856C AFA8011C */ sw $t0, 0x11c($sp)
/* 109DF0 802E8570 3C080001 */ lui $t0, 1
/* 109DF4 802E8574 AFB1012C */ sw $s1, 0x12c($sp)
/* 109DF8 802E8578 3C11800A */ lui $s1, 0x800a
/* 109DFC 802E857C 8E31A66C */ lw $s1, -0x5994($s1)
/* 109E00 802E8580 35081630 */ ori $t0, $t0, 0x1630
/* 109E04 802E8584 AFBF014C */ sw $ra, 0x14c($sp)
/* 109E08 802E8588 AFB70144 */ sw $s7, 0x144($sp)
/* 109E0C 802E858C AFB60140 */ sw $s6, 0x140($sp)
/* 109E10 802E8590 AFB30134 */ sw $s3, 0x134($sp)
/* 109E14 802E8594 AFB20130 */ sw $s2, 0x130($sp)
/* 109E18 802E8598 AFB00128 */ sw $s0, 0x128($sp)
/* 109E1C 802E859C F7BE0178 */ sdc1 $f30, 0x178($sp)
/* 109E20 802E85A0 F7BC0170 */ sdc1 $f28, 0x170($sp)
/* 109E24 802E85A4 F7BA0168 */ sdc1 $f26, 0x168($sp)
/* 109E28 802E85A8 F7B80160 */ sdc1 $f24, 0x160($sp)
/* 109E2C 802E85AC F7B60158 */ sdc1 $f22, 0x158($sp)
/* 109E30 802E85B0 F7B40150 */ sdc1 $f20, 0x150($sp)
/* 109E34 802E85B4 0C04417A */ jal get_entity_by_index
/* 109E38 802E85B8 AFA80120 */ sw $t0, 0x120($sp)
/* 109E3C 802E85BC 0040B82D */ daddu $s7, $v0, $zero
/* 109E40 802E85C0 3C0143B4 */ lui $at, 0x43b4
/* 109E44 802E85C4 4481D000 */ mtc1 $at, $f26
/* 109E48 802E85C8 3C013B80 */ lui $at, 0x3b80
/* 109E4C 802E85CC 4481C000 */ mtc1 $at, $f24
/* 109E50 802E85D0 3C013F80 */ lui $at, 0x3f80
/* 109E54 802E85D4 4481B000 */ mtc1 $at, $f22
/* 109E58 802E85D8 8EE20040 */ lw $v0, 0x40($s7)
/* 109E5C 802E85DC 4480A000 */ mtc1 $zero, $f20
/* 109E60 802E85E0 C6E00048 */ lwc1 $f0, 0x48($s7)
/* 109E64 802E85E4 0040902D */ daddu $s2, $v0, $zero
/* 109E68 802E85E8 0240982D */ daddu $s3, $s2, $zero
/* 109E6C 802E85EC 2630FFFC */ addiu $s0, $s1, -4
/* 109E70 802E85F0 46000007 */ neg.s $f0, $f0
/* 109E74 802E85F4 E7A00118 */ swc1 $f0, 0x118($sp)
/* 109E78 802E85F8 C6E0004C */ lwc1 $f0, 0x4c($s7)
/* 109E7C 802E85FC C6E20050 */ lwc1 $f2, 0x50($s7)
/* 109E80 802E8600 8E560008 */ lw $s6, 8($s2)
/* 109E84 802E8604 46000787 */ neg.s $f30, $f0
/* 109E88 802E8608 46001707 */ neg.s $f28, $f2
.L802E860C:
/* 109E8C 802E860C 82420010 */ lb $v0, 0x10($s2)
/* 109E90 802E8610 28420002 */ slti $v0, $v0, 2
/* 109E94 802E8614 1040000F */ beqz $v0, .L802E8654
/* 109E98 802E8618 3C03E200 */ lui $v1, 0xe200
/* 109E9C 802E861C 26100008 */ addiu $s0, $s0, 8
/* 109EA0 802E8620 3463001C */ ori $v1, $v1, 0x1c
/* 109EA4 802E8624 3C020055 */ lui $v0, 0x55
/* 109EA8 802E8628 34422078 */ ori $v0, $v0, 0x2078
/* 109EAC 802E862C AE03FFFC */ sw $v1, -4($s0)
/* 109EB0 802E8630 AE020000 */ sw $v0, ($s0)
/* 109EB4 802E8634 26100008 */ addiu $s0, $s0, 8
/* 109EB8 802E8638 26310010 */ addiu $s1, $s1, 0x10
/* 109EBC 802E863C 3C03FC12 */ lui $v1, 0xfc12
/* 109EC0 802E8640 34631824 */ ori $v1, $v1, 0x1824
/* 109EC4 802E8644 3C02FF33 */ lui $v0, 0xff33
/* 109EC8 802E8648 3442FFFF */ ori $v0, $v0, 0xffff
/* 109ECC 802E864C 080BA1A1 */ j .L802E8684
/* 109ED0 802E8650 AE03FFFC */ sw $v1, -4($s0)
.L802E8654:
/* 109ED4 802E8654 26100008 */ addiu $s0, $s0, 8
/* 109ED8 802E8658 3C03FCFF */ lui $v1, 0xfcff
/* 109EDC 802E865C 3463C3FF */ ori $v1, $v1, 0xc3ff
/* 109EE0 802E8660 3C02FF30 */ lui $v0, 0xff30
/* 109EE4 802E8664 3442FE7F */ ori $v0, $v0, 0xfe7f
/* 109EE8 802E8668 AE03FFFC */ sw $v1, -4($s0)
/* 109EEC 802E866C AE020000 */ sw $v0, ($s0)
/* 109EF0 802E8670 26100008 */ addiu $s0, $s0, 8
/* 109EF4 802E8674 3C02FA00 */ lui $v0, 0xfa00
/* 109EF8 802E8678 AE02FFFC */ sw $v0, -4($s0)
/* 109EFC 802E867C 92420034 */ lbu $v0, 0x34($s2)
/* 109F00 802E8680 26310010 */ addiu $s1, $s1, 0x10
.L802E8684:
/* 109F04 802E8684 AE020000 */ sw $v0, ($s0)
/* 109F08 802E8688 8FA50118 */ lw $a1, 0x118($sp)
/* 109F0C 802E868C 4406F000 */ mfc1 $a2, $f30
/* 109F10 802E8690 4407E000 */ mfc1 $a3, $f28
/* 109F14 802E8694 0C019E40 */ jal guTranslateF
/* 109F18 802E8698 27A40018 */ addiu $a0, $sp, 0x18
/* 109F1C 802E869C 92420058 */ lbu $v0, 0x58($s2)
/* 109F20 802E86A0 44820000 */ mtc1 $v0, $f0
/* 109F24 802E86A4 00000000 */ nop
/* 109F28 802E86A8 46800020 */ cvt.s.w $f0, $f0
/* 109F2C 802E86AC 461A0002 */ mul.s $f0, $f0, $f26
/* 109F30 802E86B0 00000000 */ nop
/* 109F34 802E86B4 46180002 */ mul.s $f0, $f0, $f24
/* 109F38 802E86B8 00000000 */ nop
/* 109F3C 802E86BC 4406B000 */ mfc1 $a2, $f22
/* 109F40 802E86C0 4407A000 */ mfc1 $a3, $f20
/* 109F44 802E86C4 8FA4011C */ lw $a0, 0x11c($sp)
/* 109F48 802E86C8 44050000 */ mfc1 $a1, $f0
/* 109F4C 802E86CC 0C019EC8 */ jal guRotateF
/* 109F50 802E86D0 E7B40010 */ swc1 $f20, 0x10($sp)
/* 109F54 802E86D4 9242007C */ lbu $v0, 0x7c($s2)
/* 109F58 802E86D8 44820000 */ mtc1 $v0, $f0
/* 109F5C 802E86DC 00000000 */ nop
/* 109F60 802E86E0 46800020 */ cvt.s.w $f0, $f0
/* 109F64 802E86E4 461A0002 */ mul.s $f0, $f0, $f26
/* 109F68 802E86E8 00000000 */ nop
/* 109F6C 802E86EC 26100008 */ addiu $s0, $s0, 8
/* 109F70 802E86F0 26310018 */ addiu $s1, $s1, 0x18
/* 109F74 802E86F4 46180002 */ mul.s $f0, $f0, $f24
/* 109F78 802E86F8 00000000 */ nop
/* 109F7C 802E86FC 27DE0001 */ addiu $fp, $fp, 1
/* 109F80 802E8700 02A0202D */ daddu $a0, $s5, $zero
/* 109F84 802E8704 4406A000 */ mfc1 $a2, $f20
/* 109F88 802E8708 4407B000 */ mfc1 $a3, $f22
/* 109F8C 802E870C 44050000 */ mfc1 $a1, $f0
/* 109F90 802E8710 26520001 */ addiu $s2, $s2, 1
/* 109F94 802E8714 0C019EC8 */ jal guRotateF
/* 109F98 802E8718 E7B40010 */ swc1 $f20, 0x10($sp)
/* 109F9C 802E871C 02A0282D */ daddu $a1, $s5, $zero
/* 109FA0 802E8720 8FA4011C */ lw $a0, 0x11c($sp)
/* 109FA4 802E8724 0C019D80 */ jal guMtxCatF
/* 109FA8 802E8728 02A0302D */ daddu $a2, $s5, $zero
/* 109FAC 802E872C 02A0202D */ daddu $a0, $s5, $zero
/* 109FB0 802E8730 27A50018 */ addiu $a1, $sp, 0x18
/* 109FB4 802E8734 0C019D80 */ jal guMtxCatF
/* 109FB8 802E8738 00A0302D */ daddu $a2, $a1, $zero
/* 109FBC 802E873C 0280202D */ daddu $a0, $s4, $zero
/* 109FC0 802E8740 8E650154 */ lw $a1, 0x154($s3)
/* 109FC4 802E8744 8E6601E4 */ lw $a2, 0x1e4($s3)
/* 109FC8 802E8748 8E670274 */ lw $a3, 0x274($s3)
/* 109FCC 802E874C 0C019E40 */ jal guTranslateF
/* 109FD0 802E8750 26730004 */ addiu $s3, $s3, 4
/* 109FD4 802E8754 27A40018 */ addiu $a0, $sp, 0x18
/* 109FD8 802E8758 0280282D */ daddu $a1, $s4, $zero
/* 109FDC 802E875C 0C019D80 */ jal guMtxCatF
/* 109FE0 802E8760 0280302D */ daddu $a2, $s4, $zero
/* 109FE4 802E8764 0280202D */ daddu $a0, $s4, $zero
/* 109FE8 802E8768 3C058007 */ lui $a1, 0x8007
/* 109FEC 802E876C 94A541F0 */ lhu $a1, 0x41f0($a1)
/* 109FF0 802E8770 3C02800A */ lui $v0, 0x800a
/* 109FF4 802E8774 8C42A674 */ lw $v0, -0x598c($v0)
/* 109FF8 802E8778 8FA80120 */ lw $t0, 0x120($sp)
/* 109FFC 802E877C 00052980 */ sll $a1, $a1, 6
/* 10A000 802E8780 00A82821 */ addu $a1, $a1, $t0
/* 10A004 802E8784 0C019D40 */ jal guMtxF2L
/* 10A008 802E8788 00452821 */ addu $a1, $v0, $a1
/* 10A00C 802E878C 3C05D838 */ lui $a1, 0xd838
/* 10A010 802E8790 34A50002 */ ori $a1, $a1, 2
/* 10A014 802E8794 3C028007 */ lui $v0, 0x8007
/* 10A018 802E8798 944241F0 */ lhu $v0, 0x41f0($v0)
/* 10A01C 802E879C 3C03DA38 */ lui $v1, 0xda38
/* 10A020 802E87A0 AE03FFFC */ sw $v1, -4($s0)
/* 10A024 802E87A4 8FA80120 */ lw $t0, 0x120($sp)
/* 10A028 802E87A8 24430001 */ addiu $v1, $v0, 1
/* 10A02C 802E87AC 3042FFFF */ andi $v0, $v0, 0xffff
/* 10A030 802E87B0 00021180 */ sll $v0, $v0, 6
/* 10A034 802E87B4 3C018007 */ lui $at, 0x8007
/* 10A038 802E87B8 A42341F0 */ sh $v1, 0x41f0($at)
/* 10A03C 802E87BC 3C03800A */ lui $v1, 0x800a
/* 10A040 802E87C0 8C63A674 */ lw $v1, -0x598c($v1)
/* 10A044 802E87C4 00481021 */ addu $v0, $v0, $t0
/* 10A048 802E87C8 00621821 */ addu $v1, $v1, $v0
/* 10A04C 802E87CC AE030000 */ sw $v1, ($s0)
/* 10A050 802E87D0 96C40002 */ lhu $a0, 2($s6)
/* 10A054 802E87D4 26D60004 */ addiu $s6, $s6, 4
/* 10A058 802E87D8 26100008 */ addiu $s0, $s0, 8
/* 10A05C 802E87DC 8EE30044 */ lw $v1, 0x44($s7)
/* 10A060 802E87E0 3C02DE00 */ lui $v0, 0xde00
/* 10A064 802E87E4 AE02FFFC */ sw $v0, -4($s0)
/* 10A068 802E87E8 24020040 */ addiu $v0, $zero, 0x40
/* 10A06C 802E87EC 00641821 */ addu $v1, $v1, $a0
/* 10A070 802E87F0 AE030000 */ sw $v1, ($s0)
/* 10A074 802E87F4 26100008 */ addiu $s0, $s0, 8
/* 10A078 802E87F8 AE020000 */ sw $v0, ($s0)
/* 10A07C 802E87FC 2BC20023 */ slti $v0, $fp, 0x23
/* 10A080 802E8800 1440FF82 */ bnez $v0, .L802E860C
/* 10A084 802E8804 AE05FFFC */ sw $a1, -4($s0)
/* 10A088 802E8808 8FBF014C */ lw $ra, 0x14c($sp)
/* 10A08C 802E880C 8FBE0148 */ lw $fp, 0x148($sp)
/* 10A090 802E8810 8FB70144 */ lw $s7, 0x144($sp)
/* 10A094 802E8814 8FB60140 */ lw $s6, 0x140($sp)
/* 10A098 802E8818 8FB5013C */ lw $s5, 0x13c($sp)
/* 10A09C 802E881C 8FB40138 */ lw $s4, 0x138($sp)
/* 10A0A0 802E8820 8FB30134 */ lw $s3, 0x134($sp)
/* 10A0A4 802E8824 8FB20130 */ lw $s2, 0x130($sp)
/* 10A0A8 802E8828 3C01800A */ lui $at, 0x800a
/* 10A0AC 802E882C AC31A66C */ sw $s1, -0x5994($at)
/* 10A0B0 802E8830 8FB1012C */ lw $s1, 0x12c($sp)
/* 10A0B4 802E8834 8FB00128 */ lw $s0, 0x128($sp)
/* 10A0B8 802E8838 D7BE0178 */ ldc1 $f30, 0x178($sp)
/* 10A0BC 802E883C D7BC0170 */ ldc1 $f28, 0x170($sp)
/* 10A0C0 802E8840 D7BA0168 */ ldc1 $f26, 0x168($sp)
/* 10A0C4 802E8844 D7B80160 */ ldc1 $f24, 0x160($sp)
/* 10A0C8 802E8848 D7B60158 */ ldc1 $f22, 0x158($sp)
/* 10A0CC 802E884C D7B40150 */ ldc1 $f20, 0x150($sp)
/* 10A0D0 802E8850 03E00008 */ jr $ra
/* 10A0D4 802E8854 27BD0180 */ addiu $sp, $sp, 0x180
/* 10A0D8 802E8858 27BDFFE8 */ addiu $sp, $sp, -0x18
/* 10A0DC 802E885C AFB00010 */ sw $s0, 0x10($sp)
/* 10A0E0 802E8860 0080802D */ daddu $s0, $a0, $zero
/* 10A0E4 802E8864 AFBF0014 */ sw $ra, 0x14($sp)
/* 10A0E8 802E8868 92020006 */ lbu $v0, 6($s0)
/* 10A0EC 802E886C 30420001 */ andi $v0, $v0, 1
/* 10A0F0 802E8870 1040000C */ beqz $v0, .L802E88A4
/* 10A0F4 802E8874 0000202D */ daddu $a0, $zero, $zero
/* 10A0F8 802E8878 3C028011 */ lui $v0, 0x8011
/* 10A0FC 802E887C 2442EFC8 */ addiu $v0, $v0, -0x1038
/* 10A100 802E8880 804300B4 */ lb $v1, 0xb4($v0)
/* 10A104 802E8884 2402000E */ addiu $v0, $zero, 0xe
/* 10A108 802E8888 10620003 */ beq $v1, $v0, .L802E8898
/* 10A10C 802E888C 24020010 */ addiu $v0, $zero, 0x10
/* 10A110 802E8890 14620004 */ bne $v1, $v0, .L802E88A4
/* 10A114 802E8894 00000000 */ nop
.L802E8898:
/* 10A118 802E8898 0C039769 */ jal set_action_state
/* 10A11C 802E889C 24040008 */ addiu $a0, $zero, 8
/* 10A120 802E88A0 24040001 */ addiu $a0, $zero, 1
.L802E88A4:
/* 10A124 802E88A4 1080000D */ beqz $a0, .L802E88DC
/* 10A128 802E88A8 00000000 */ nop
/* 10A12C 802E88AC 0C0B9FDB */ jal func_802E7F6C
/* 10A130 802E88B0 0200202D */ daddu $a0, $s0, $zero
/* 10A134 802E88B4 3C05802F */ lui $a1, 0x802f
/* 10A138 802E88B8 24A5AE7C */ addiu $a1, $a1, -0x5184
/* 10A13C 802E88BC 0C0442F3 */ jal func_80110BCC
/* 10A140 802E88C0 0200202D */ daddu $a0, $s0, $zero
/* 10A144 802E88C4 0C04419E */ jal func_80110678
/* 10A148 802E88C8 0200202D */ daddu $a0, $s0, $zero
/* 10A14C 802E88CC 0C043F5A */ jal func_8010FD68
/* 10A150 802E88D0 0200202D */ daddu $a0, $s0, $zero
/* 10A154 802E88D4 0C05272D */ jal play_sound
/* 10A158 802E88D8 240420AE */ addiu $a0, $zero, 0x20ae
.L802E88DC:
/* 10A15C 802E88DC 8FBF0014 */ lw $ra, 0x14($sp)
/* 10A160 802E88E0 8FB00010 */ lw $s0, 0x10($sp)
/* 10A164 802E88E4 03E00008 */ jr $ra
/* 10A168 802E88E8 27BD0018 */ addiu $sp, $sp, 0x18
/* 10A16C 802E88EC 27BDFFD0 */ addiu $sp, $sp, -0x30
/* 10A170 802E88F0 AFB20028 */ sw $s2, 0x28($sp)
/* 10A174 802E88F4 0080902D */ daddu $s2, $a0, $zero
/* 10A178 802E88F8 AFBF002C */ sw $ra, 0x2c($sp)
/* 10A17C 802E88FC AFB10024 */ sw $s1, 0x24($sp)
/* 10A180 802E8900 AFB00020 */ sw $s0, 0x20($sp)
/* 10A184 802E8904 8E510040 */ lw $s1, 0x40($s2)
/* 10A188 802E8908 8E230000 */ lw $v1, ($s1)
/* 10A18C 802E890C 2402FFFF */ addiu $v0, $zero, -1
/* 10A190 802E8910 10620021 */ beq $v1, $v0, .L802E8998
/* 10A194 802E8914 3402FFFF */ ori $v0, $zero, 0xffff
/* 10A198 802E8918 96230004 */ lhu $v1, 4($s1)
/* 10A19C 802E891C 10620006 */ beq $v1, $v0, .L802E8938
/* 10A1A0 802E8920 0000802D */ daddu $s0, $zero, $zero
/* 10A1A4 802E8924 96240004 */ lhu $a0, 4($s1)
/* 10A1A8 802E8928 0C05152F */ jal get_global_flag
/* 10A1AC 802E892C 00000000 */ nop
/* 10A1B0 802E8930 14400002 */ bnez $v0, .L802E893C
/* 10A1B4 802E8934 00000000 */ nop
.L802E8938:
/* 10A1B8 802E8938 24100001 */ addiu $s0, $zero, 1
.L802E893C:
/* 10A1BC 802E893C 12000016 */ beqz $s0, .L802E8998
/* 10A1C0 802E8940 00000000 */ nop
/* 10A1C4 802E8944 0C03951B */ jal func_800E546C
/* 10A1C8 802E8948 00000000 */ nop
/* 10A1CC 802E894C C642004C */ lwc1 $f2, 0x4c($s2)
/* 10A1D0 802E8950 4600010D */ trunc.w.s $f4, $f0
/* 10A1D4 802E8954 E7A40018 */ swc1 $f4, 0x18($sp)
/* 10A1D8 802E8958 2402000A */ addiu $v0, $zero, 0xa
/* 10A1DC 802E895C AFA20010 */ sw $v0, 0x10($sp)
/* 10A1E0 802E8960 AFA00014 */ sw $zero, 0x14($sp)
/* 10A1E4 802E8964 96220004 */ lhu $v0, 4($s1)
/* 10A1E8 802E8968 3C01802F */ lui $at, 0x802f
/* 10A1EC 802E896C D420B370 */ ldc1 $f0, -0x4c90($at)
/* 10A1F0 802E8970 460010A1 */ cvt.d.s $f2, $f2
/* 10A1F4 802E8974 46201080 */ add.d $f2, $f2, $f0
/* 10A1F8 802E8978 AFA2001C */ sw $v0, 0x1c($sp)
/* 10A1FC 802E897C 8E240000 */ lw $a0, ($s1)
/* 10A200 802E8980 8E450048 */ lw $a1, 0x48($s2)
/* 10A204 802E8984 8E470050 */ lw $a3, 0x50($s2)
/* 10A208 802E8988 462010A0 */ cvt.s.d $f2, $f2
/* 10A20C 802E898C 44061000 */ mfc1 $a2, $f2
/* 10A210 802E8990 0C04C4FD */ jal make_item_entity
/* 10A214 802E8994 00000000 */ nop
.L802E8998:
/* 10A218 802E8998 8FBF002C */ lw $ra, 0x2c($sp)
/* 10A21C 802E899C 8FB20028 */ lw $s2, 0x28($sp)
/* 10A220 802E89A0 8FB10024 */ lw $s1, 0x24($sp)
/* 10A224 802E89A4 8FB00020 */ lw $s0, 0x20($sp)
/* 10A228 802E89A8 03E00008 */ jr $ra
/* 10A22C 802E89AC 27BD0030 */ addiu $sp, $sp, 0x30
/* 10A230 802E89B0 27BDFFE0 */ addiu $sp, $sp, -0x20
/* 10A234 802E89B4 AFB10014 */ sw $s1, 0x14($sp)
/* 10A238 802E89B8 0080882D */ daddu $s1, $a0, $zero
/* 10A23C 802E89BC AFBF0018 */ sw $ra, 0x18($sp)
/* 10A240 802E89C0 AFB00010 */ sw $s0, 0x10($sp)
/* 10A244 802E89C4 8E300040 */ lw $s0, 0x40($s1)
/* 10A248 802E89C8 0C05152F */ jal get_global_flag
/* 10A24C 802E89CC 8E040014 */ lw $a0, 0x14($s0)
/* 10A250 802E89D0 10400004 */ beqz $v0, .L802E89E4
/* 10A254 802E89D4 24020010 */ addiu $v0, $zero, 0x10
/* 10A258 802E89D8 AE020004 */ sw $v0, 4($s0)
/* 10A25C 802E89DC 0C043F5A */ jal func_8010FD68
/* 10A260 802E89E0 0220202D */ daddu $a0, $s1, $zero
.L802E89E4:
/* 10A264 802E89E4 8FBF0018 */ lw $ra, 0x18($sp)
/* 10A268 802E89E8 8FB10014 */ lw $s1, 0x14($sp)
/* 10A26C 802E89EC 8FB00010 */ lw $s0, 0x10($sp)
/* 10A270 802E89F0 03E00008 */ jr $ra
/* 10A274 802E89F4 27BD0020 */ addiu $sp, $sp, 0x20
/* 10A278 802E89F8 27BDFFE8 */ addiu $sp, $sp, -0x18
/* 10A27C 802E89FC AFBF0010 */ sw $ra, 0x10($sp)
/* 10A280 802E8A00 8C850040 */ lw $a1, 0x40($a0)
/* 10A284 802E8A04 8CA20004 */ lw $v0, 4($a1)
/* 10A288 802E8A08 2403FFFF */ addiu $v1, $zero, -1
/* 10A28C 802E8A0C 2442FFFF */ addiu $v0, $v0, -1
/* 10A290 802E8A10 1043000C */ beq $v0, $v1, .L802E8A44
/* 10A294 802E8A14 ACA20004 */ sw $v0, 4($a1)
/* 10A298 802E8A18 8CA20008 */ lw $v0, 8($a1)
/* 10A29C 802E8A1C 14400009 */ bnez $v0, .L802E8A44
/* 10A2A0 802E8A20 00000000 */ nop
/* 10A2A4 802E8A24 C480004C */ lwc1 $f0, 0x4c($a0)
/* 10A2A8 802E8A28 3C01802F */ lui $at, 0x802f
/* 10A2AC 802E8A2C D422B380 */ ldc1 $f2, -0x4c80($at)
/* 10A2B0 802E8A30 46000021 */ cvt.d.s $f0, $f0
/* 10A2B4 802E8A34 46220000 */ add.d $f0, $f0, $f2
/* 10A2B8 802E8A38 46200020 */ cvt.s.d $f0, $f0
/* 10A2BC 802E8A3C 080BA293 */ j .L802E8A4C
/* 10A2C0 802E8A40 E480004C */ swc1 $f0, 0x4c($a0)
.L802E8A44:
/* 10A2C4 802E8A44 0C043F5A */ jal func_8010FD68
/* 10A2C8 802E8A48 ACA00004 */ sw $zero, 4($a1)
.L802E8A4C:
/* 10A2CC 802E8A4C 8FBF0010 */ lw $ra, 0x10($sp)
/* 10A2D0 802E8A50 03E00008 */ jr $ra
/* 10A2D4 802E8A54 27BD0018 */ addiu $sp, $sp, 0x18
/* 10A2D8 802E8A58 3C028007 */ lui $v0, 0x8007
/* 10A2DC 802E8A5C 8C42419C */ lw $v0, 0x419c($v0)
/* 10A2E0 802E8A60 27BDFFE8 */ addiu $sp, $sp, -0x18
/* 10A2E4 802E8A64 AFBF0010 */ sw $ra, 0x10($sp)
/* 10A2E8 802E8A68 8C850040 */ lw $a1, 0x40($a0)
/* 10A2EC 802E8A6C 8443008E */ lh $v1, 0x8e($v0)
/* 10A2F0 802E8A70 8CA2000C */ lw $v0, 0xc($a1)
/* 10A2F4 802E8A74 14430014 */ bne $v0, $v1, .L802E8AC8
/* 10A2F8 802E8A78 00000000 */ nop
/* 10A2FC 802E8A7C 8CA30004 */ lw $v1, 4($a1)
/* 10A300 802E8A80 10600005 */ beqz $v1, .L802E8A98
/* 10A304 802E8A84 24020001 */ addiu $v0, $zero, 1
/* 10A308 802E8A88 10620009 */ beq $v1, $v0, .L802E8AB0
/* 10A30C 802E8A8C 00000000 */ nop
/* 10A310 802E8A90 080BA2B2 */ j .L802E8AC8
/* 10A314 802E8A94 00000000 */ nop
.L802E8A98:
/* 10A318 802E8A98 3C028016 */ lui $v0, 0x8016
/* 10A31C 802E8A9C 8442A552 */ lh $v0, -0x5aae($v0)
/* 10A320 802E8AA0 1840000B */ blez $v0, .L802E8AD0
/* 10A324 802E8AA4 24020001 */ addiu $v0, $zero, 1
/* 10A328 802E8AA8 080BA2B4 */ j .L802E8AD0
/* 10A32C 802E8AAC ACA20004 */ sw $v0, 4($a1)
.L802E8AB0:
/* 10A330 802E8AB0 3C028016 */ lui $v0, 0x8016
/* 10A334 802E8AB4 8442A552 */ lh $v0, -0x5aae($v0)
/* 10A338 802E8AB8 04410005 */ bgez $v0, .L802E8AD0
/* 10A33C 802E8ABC 24020002 */ addiu $v0, $zero, 2
/* 10A340 802E8AC0 080BA2B4 */ j .L802E8AD0
/* 10A344 802E8AC4 ACA20004 */ sw $v0, 4($a1)
.L802E8AC8:
/* 10A348 802E8AC8 0C043F5A */ jal func_8010FD68
/* 10A34C 802E8ACC 00000000 */ nop
.L802E8AD0:
/* 10A350 802E8AD0 8FBF0010 */ lw $ra, 0x10($sp)
/* 10A354 802E8AD4 03E00008 */ jr $ra
/* 10A358 802E8AD8 27BD0018 */ addiu $sp, $sp, 0x18
/* 10A35C 802E8ADC 27BDFFE8 */ addiu $sp, $sp, -0x18
/* 10A360 802E8AE0 AFB00010 */ sw $s0, 0x10($sp)
/* 10A364 802E8AE4 0080802D */ daddu $s0, $a0, $zero
/* 10A368 802E8AE8 AFBF0014 */ sw $ra, 0x14($sp)
/* 10A36C 802E8AEC 92020006 */ lbu $v0, 6($s0)
/* 10A370 802E8AF0 3C078011 */ lui $a3, 0x8011
/* 10A374 802E8AF4 24E7EFC8 */ addiu $a3, $a3, -0x1038
/* 10A378 802E8AF8 30420001 */ andi $v0, $v0, 1
/* 10A37C 802E8AFC 10400027 */ beqz $v0, .L802E8B9C
/* 10A380 802E8B00 2404FFBF */ addiu $a0, $zero, -0x41
/* 10A384 802E8B04 3C02800A */ lui $v0, 0x800a
/* 10A388 802E8B08 2442A650 */ addiu $v0, $v0, -0x59b0
/* 10A38C 802E8B0C 8C430000 */ lw $v1, ($v0)
/* 10A390 802E8B10 8CE40000 */ lw $a0, ($a3)
/* 10A394 802E8B14 34630040 */ ori $v1, $v1, 0x40
/* 10A398 802E8B18 30843000 */ andi $a0, $a0, 0x3000
/* 10A39C 802E8B1C 14800024 */ bnez $a0, .L802E8BB0
/* 10A3A0 802E8B20 AC430000 */ sw $v1, ($v0)
/* 10A3A4 802E8B24 8CE200E8 */ lw $v0, 0xe8($a3)
/* 10A3A8 802E8B28 8CE400EC */ lw $a0, 0xec($a3)
/* 10A3AC 802E8B2C 04420001 */ bltzl $v0, .L802E8B34
/* 10A3B0 802E8B30 00021023 */ negu $v0, $v0
.L802E8B34:
/* 10A3B4 802E8B34 14400003 */ bnez $v0, .L802E8B44
/* 10A3B8 802E8B38 00000000 */ nop
/* 10A3BC 802E8B3C 1080001C */ beqz $a0, .L802E8BB0
/* 10A3C0 802E8B40 00000000 */ nop
.L802E8B44:
/* 10A3C4 802E8B44 44822000 */ mtc1 $v0, $f4
/* 10A3C8 802E8B48 00000000 */ nop
/* 10A3CC 802E8B4C 46802120 */ cvt.s.w $f4, $f4
/* 10A3D0 802E8B50 44062000 */ mfc1 $a2, $f4
/* 10A3D4 802E8B54 44842000 */ mtc1 $a0, $f4
/* 10A3D8 802E8B58 00000000 */ nop
/* 10A3DC 802E8B5C 46802120 */ cvt.s.w $f4, $f4
/* 10A3E0 802E8B60 44806000 */ mtc1 $zero, $f12
/* 10A3E4 802E8B64 44072000 */ mfc1 $a3, $f4
/* 10A3E8 802E8B68 0C00A720 */ jal atan2
/* 10A3EC 802E8B6C 46006386 */ mov.s $f14, $f12
/* 10A3F0 802E8B70 3C014270 */ lui $at, 0x4270
/* 10A3F4 802E8B74 44811000 */ mtc1 $at, $f2
/* 10A3F8 802E8B78 00000000 */ nop
/* 10A3FC 802E8B7C 4602003C */ c.lt.s $f0, $f2
/* 10A400 802E8B80 00000000 */ nop
/* 10A404 802E8B84 4500000A */ bc1f .L802E8BB0
/* 10A408 802E8B88 00000000 */ nop
/* 10A40C 802E8B8C 0C043F5A */ jal func_8010FD68
/* 10A410 802E8B90 0200202D */ daddu $a0, $s0, $zero
/* 10A414 802E8B94 080BA2EC */ j .L802E8BB0
/* 10A418 802E8B98 00000000 */ nop
.L802E8B9C:
/* 10A41C 802E8B9C 3C02800A */ lui $v0, 0x800a
/* 10A420 802E8BA0 2442A650 */ addiu $v0, $v0, -0x59b0
/* 10A424 802E8BA4 8C430000 */ lw $v1, ($v0)
/* 10A428 802E8BA8 00641824 */ and $v1, $v1, $a0
/* 10A42C 802E8BAC AC430000 */ sw $v1, ($v0)
.L802E8BB0:
/* 10A430 802E8BB0 8FBF0014 */ lw $ra, 0x14($sp)
/* 10A434 802E8BB4 8FB00010 */ lw $s0, 0x10($sp)
/* 10A438 802E8BB8 03E00008 */ jr $ra
/* 10A43C 802E8BBC 27BD0018 */ addiu $sp, $sp, 0x18
/* 10A440 802E8BC0 27BDFFD8 */ addiu $sp, $sp, -0x28
/* 10A444 802E8BC4 AFBF001C */ sw $ra, 0x1c($sp)
/* 10A448 802E8BC8 AFB20018 */ sw $s2, 0x18($sp)
/* 10A44C 802E8BCC AFB10014 */ sw $s1, 0x14($sp)
/* 10A450 802E8BD0 AFB00010 */ sw $s0, 0x10($sp)
/* 10A454 802E8BD4 F7B40020 */ sdc1 $f20, 0x20($sp)
/* 10A458 802E8BD8 0C016AFA */ jal get_current_map_header
/* 10A45C 802E8BDC 8C900040 */ lw $s0, 0x40($a0)
/* 10A460 802E8BE0 0040902D */ daddu $s2, $v0, $zero
/* 10A464 802E8BE4 8E02000C */ lw $v0, 0xc($s0)
/* 10A468 802E8BE8 8E430014 */ lw $v1, 0x14($s2)
/* 10A46C 802E8BEC 00021100 */ sll $v0, $v0, 4
/* 10A470 802E8BF0 00431021 */ addu $v0, $v0, $v1
/* 10A474 802E8BF4 C44C0000 */ lwc1 $f12, ($v0)
/* 10A478 802E8BF8 0C038022 */ jal func_800E0088
/* 10A47C 802E8BFC C44E0008 */ lwc1 $f14, 8($v0)
/* 10A480 802E8C00 3C038011 */ lui $v1, 0x8011
/* 10A484 802E8C04 2463EFC8 */ addiu $v1, $v1, -0x1038
/* 10A488 802E8C08 C462005C */ lwc1 $f2, 0x5c($v1)
/* 10A48C 802E8C0C 0060882D */ daddu $s1, $v1, $zero
/* 10A490 802E8C10 46020003 */ div.s $f0, $f0, $f2
/* 10A494 802E8C14 4600010D */ trunc.w.s $f4, $f0
/* 10A498 802E8C18 44022000 */ mfc1 $v0, $f4
/* 10A49C 802E8C1C 00000000 */ nop
/* 10A4A0 802E8C20 14400003 */ bnez $v0, .L802E8C30
/* 10A4A4 802E8C24 AE020004 */ sw $v0, 4($s0)
/* 10A4A8 802E8C28 24020001 */ addiu $v0, $zero, 1
/* 10A4AC 802E8C2C AE020004 */ sw $v0, 4($s0)
.L802E8C30:
/* 10A4B0 802E8C30 C62C0028 */ lwc1 $f12, 0x28($s1)
/* 10A4B4 802E8C34 C62E0030 */ lwc1 $f14, 0x30($s1)
/* 10A4B8 802E8C38 8E02000C */ lw $v0, 0xc($s0)
/* 10A4BC 802E8C3C 8E430014 */ lw $v1, 0x14($s2)
/* 10A4C0 802E8C40 00021100 */ sll $v0, $v0, 4
/* 10A4C4 802E8C44 00431021 */ addu $v0, $v0, $v1
/* 10A4C8 802E8C48 8C460000 */ lw $a2, ($v0)
/* 10A4CC 802E8C4C 0C00A720 */ jal atan2
/* 10A4D0 802E8C50 8C470008 */ lw $a3, 8($v0)
/* 10A4D4 802E8C54 0C03805E */ jal func_800E0178
/* 10A4D8 802E8C58 46000506 */ mov.s $f20, $f0
/* 10A4DC 802E8C5C 0C038045 */ jal enable_player_physics
/* 10A4E0 802E8C60 00000000 */ nop
/* 10A4E4 802E8C64 8E26005C */ lw $a2, 0x5c($s1)
/* 10A4E8 802E8C68 8E040004 */ lw $a0, 4($s0)
/* 10A4EC 802E8C6C 4405A000 */ mfc1 $a1, $f20
/* 10A4F0 802E8C70 0C0389DE */ jal move_player
/* 10A4F4 802E8C74 00000000 */ nop
/* 10A4F8 802E8C78 8FBF001C */ lw $ra, 0x1c($sp)
/* 10A4FC 802E8C7C 8FB20018 */ lw $s2, 0x18($sp)
/* 10A500 802E8C80 8FB10014 */ lw $s1, 0x14($sp)
/* 10A504 802E8C84 8FB00010 */ lw $s0, 0x10($sp)
/* 10A508 802E8C88 D7B40020 */ ldc1 $f20, 0x20($sp)
/* 10A50C 802E8C8C 03E00008 */ jr $ra
/* 10A510 802E8C90 27BD0028 */ addiu $sp, $sp, 0x28
/* 10A514 802E8C94 27BDFFE8 */ addiu $sp, $sp, -0x18
/* 10A518 802E8C98 AFBF0010 */ sw $ra, 0x10($sp)
/* 10A51C 802E8C9C 8C820040 */ lw $v0, 0x40($a0)
/* 10A520 802E8CA0 8C430004 */ lw $v1, 4($v0)
/* 10A524 802E8CA4 2463FFFF */ addiu $v1, $v1, -1
/* 10A528 802E8CA8 AC430004 */ sw $v1, 4($v0)
/* 10A52C 802E8CAC 2402FFFF */ addiu $v0, $zero, -1
/* 10A530 802E8CB0 14620003 */ bne $v1, $v0, .L802E8CC0
/* 10A534 802E8CB4 00000000 */ nop
/* 10A538 802E8CB8 0C043F5A */ jal func_8010FD68
/* 10A53C 802E8CBC 00000000 */ nop
.L802E8CC0:
/* 10A540 802E8CC0 8FBF0010 */ lw $ra, 0x10($sp)
/* 10A544 802E8CC4 03E00008 */ jr $ra
/* 10A548 802E8CC8 27BD0018 */ addiu $sp, $sp, 0x18