.set noat # allow manual use of $at .set noreorder # don't insert nops after branches glabel func_800EFE2C /* 892DC 800EFE2C 27BDFFC8 */ addiu $sp, $sp, -0x38 /* 892E0 800EFE30 3C038007 */ lui $v1, %hi(gGameStatusPtr) /* 892E4 800EFE34 8C63419C */ lw $v1, %lo(gGameStatusPtr)($v1) /* 892E8 800EFE38 AFB00030 */ sw $s0, 0x30($sp) /* 892EC 800EFE3C 3C108011 */ lui $s0, %hi(gPlayerStatus) /* 892F0 800EFE40 2610EFC8 */ addiu $s0, $s0, %lo(gPlayerStatus) /* 892F4 800EFE44 AFBF0034 */ sw $ra, 0x34($sp) /* 892F8 800EFE48 84620086 */ lh $v0, 0x86($v1) /* 892FC 800EFE4C 24080005 */ addiu $t0, $zero, 5 /* 89300 800EFE50 14480004 */ bne $v0, $t0, .L800EFE64 /* 89304 800EFE54 0000282D */ daddu $a1, $zero, $zero /* 89308 800EFE58 8462008C */ lh $v0, 0x8c($v1) /* 8930C 800EFE5C 38420002 */ xori $v0, $v0, 2 /* 89310 800EFE60 2C450001 */ sltiu $a1, $v0, 1 .L800EFE64: /* 89314 800EFE64 820300B4 */ lb $v1, 0xb4($s0) /* 89318 800EFE68 2402000A */ addiu $v0, $zero, 0xa /* 8931C 800EFE6C 14620020 */ bne $v1, $v0, .L800EFEF0 /* 89320 800EFE70 2402000E */ addiu $v0, $zero, 0xe /* 89324 800EFE74 8E020000 */ lw $v0, ($s0) /* 89328 800EFE78 0441001D */ bgez $v0, .L800EFEF0 /* 8932C 800EFE7C 2402000E */ addiu $v0, $zero, 0xe /* 89330 800EFE80 3C028011 */ lui $v0, %hi(D_8010CFF4) /* 89334 800EFE84 8C42CFF4 */ lw $v0, %lo(D_8010CFF4)($v0) /* 89338 800EFE88 2842000A */ slti $v0, $v0, 0xa /* 8933C 800EFE8C 14400018 */ bnez $v0, .L800EFEF0 /* 89340 800EFE90 2402000E */ addiu $v0, $zero, 0xe /* 89344 800EFE94 C6040028 */ lwc1 $f4, 0x28($s0) /* 89348 800EFE98 C602002C */ lwc1 $f2, 0x2c($s0) /* 8934C 800EFE9C 44800000 */ mtc1 $zero, $f0 /* 89350 800EFEA0 C6060030 */ lwc1 $f6, 0x30($s0) /* 89354 800EFEA4 10A00020 */ beqz $a1, .L800EFF28 /* 89358 800EFEA8 46001080 */ add.s $f2, $f2, $f0 /* 8935C 800EFEAC 24040003 */ addiu $a0, $zero, 3 /* 89360 800EFEB0 44052000 */ mfc1 $a1, $f4 /* 89364 800EFEB4 44061000 */ mfc1 $a2, $f2 /* 89368 800EFEB8 44073000 */ mfc1 $a3, $f6 /* 8936C 800EFEBC 3C014150 */ lui $at, 0x4150 /* 89370 800EFEC0 44810000 */ mtc1 $at, $f0 /* 89374 800EFEC4 3C014120 */ lui $at, 0x4120 /* 89378 800EFEC8 44811000 */ mtc1 $at, $f2 /* 8937C 800EFECC 3C013F80 */ lui $at, 0x3f80 /* 89380 800EFED0 44812000 */ mtc1 $at, $f4 /* 89384 800EFED4 2402001E */ addiu $v0, $zero, 0x1e /* 89388 800EFED8 AFA8001C */ sw $t0, 0x1c($sp) /* 8938C 800EFEDC AFA20020 */ sw $v0, 0x20($sp) /* 89390 800EFEE0 E7A00010 */ swc1 $f0, 0x10($sp) /* 89394 800EFEE4 E7A20014 */ swc1 $f2, 0x14($sp) /* 89398 800EFEE8 0803C08C */ j .L800F0230 /* 8939C 800EFEEC E7A40018 */ swc1 $f4, 0x18($sp) .L800EFEF0: /* 893A0 800EFEF0 10620003 */ beq $v1, $v0, .L800EFF00 /* 893A4 800EFEF4 24020010 */ addiu $v0, $zero, 0x10 /* 893A8 800EFEF8 14620029 */ bne $v1, $v0, .L800EFFA0 /* 893AC 800EFEFC 00000000 */ nop .L800EFF00: /* 893B0 800EFF00 8E020000 */ lw $v0, ($s0) /* 893B4 800EFF04 30420400 */ andi $v0, $v0, 0x400 /* 893B8 800EFF08 10400025 */ beqz $v0, .L800EFFA0 /* 893BC 800EFF0C 00000000 */ nop /* 893C0 800EFF10 C6040028 */ lwc1 $f4, 0x28($s0) /* 893C4 800EFF14 C602002C */ lwc1 $f2, 0x2c($s0) /* 893C8 800EFF18 44800000 */ mtc1 $zero, $f0 /* 893CC 800EFF1C C6060030 */ lwc1 $f6, 0x30($s0) /* 893D0 800EFF20 14A0000B */ bnez $a1, .L800EFF50 /* 893D4 800EFF24 46001080 */ add.s $f2, $f2, $f0 .L800EFF28: /* 893D8 800EFF28 44052000 */ mfc1 $a1, $f4 /* 893DC 800EFF2C 44061000 */ mfc1 $a2, $f2 /* 893E0 800EFF30 44073000 */ mfc1 $a3, $f6 /* 893E4 800EFF34 3C018011 */ lui $at, %hi(D_80109484) /* 893E8 800EFF38 C4209484 */ lwc1 $f0, %lo(D_80109484)($at) /* 893EC 800EFF3C 0000202D */ daddu $a0, $zero, $zero /* 893F0 800EFF40 0C01BEB4 */ jal fx_walk_large /* 893F4 800EFF44 E7A00010 */ swc1 $f0, 0x10($sp) /* 893F8 800EFF48 0803C08E */ j .L800F0238 /* 893FC 800EFF4C 00000000 */ nop .L800EFF50: /* 89400 800EFF50 24040003 */ addiu $a0, $zero, 3 /* 89404 800EFF54 44052000 */ mfc1 $a1, $f4 /* 89408 800EFF58 44061000 */ mfc1 $a2, $f2 /* 8940C 800EFF5C 44073000 */ mfc1 $a3, $f6 /* 89410 800EFF60 24020005 */ addiu $v0, $zero, 5 /* 89414 800EFF64 AFA2001C */ sw $v0, 0x1c($sp) /* 89418 800EFF68 24020028 */ addiu $v0, $zero, 0x28 /* 8941C 800EFF6C AFA20020 */ sw $v0, 0x20($sp) /* 89420 800EFF70 860200B2 */ lh $v0, 0xb2($s0) /* 89424 800EFF74 3C014120 */ lui $at, 0x4120 /* 89428 800EFF78 44811000 */ mtc1 $at, $f2 /* 8942C 800EFF7C 3C013F80 */ lui $at, 0x3f80 /* 89430 800EFF80 44812000 */ mtc1 $at, $f4 /* 89434 800EFF84 44820000 */ mtc1 $v0, $f0 /* 89438 800EFF88 00000000 */ nop /* 8943C 800EFF8C 46800020 */ cvt.s.w $f0, $f0 /* 89440 800EFF90 E7A00010 */ swc1 $f0, 0x10($sp) /* 89444 800EFF94 E7A20014 */ swc1 $f2, 0x14($sp) /* 89448 800EFF98 0803C08C */ j .L800F0230 /* 8944C 800EFF9C E7A40018 */ swc1 $f4, 0x18($sp) .L800EFFA0: /* 89450 800EFFA0 820300B4 */ lb $v1, 0xb4($s0) /* 89454 800EFFA4 2402001A */ addiu $v0, $zero, 0x1a /* 89458 800EFFA8 14620029 */ bne $v1, $v0, .L800F0050 /* 8945C 800EFFAC 24020002 */ addiu $v0, $zero, 2 /* 89460 800EFFB0 C6020054 */ lwc1 $f2, 0x54($s0) /* 89464 800EFFB4 44800000 */ mtc1 $zero, $f0 /* 89468 800EFFB8 00000000 */ nop /* 8946C 800EFFBC 46001032 */ c.eq.s $f2, $f0 /* 89470 800EFFC0 00000000 */ nop /* 89474 800EFFC4 45010022 */ bc1t .L800F0050 /* 89478 800EFFC8 00000000 */ nop /* 8947C 800EFFCC 3C048011 */ lui $a0, %hi(D_80109488) /* 89480 800EFFD0 24849488 */ addiu $a0, $a0, %lo(D_80109488) /* 89484 800EFFD4 94820000 */ lhu $v0, ($a0) /* 89488 800EFFD8 24430001 */ addiu $v1, $v0, 1 /* 8948C 800EFFDC 00021400 */ sll $v0, $v0, 0x10 /* 89490 800EFFE0 00021403 */ sra $v0, $v0, 0x10 /* 89494 800EFFE4 28420004 */ slti $v0, $v0, 4 /* 89498 800EFFE8 14400093 */ bnez $v0, .L800F0238 /* 8949C 800EFFEC A4830000 */ sh $v1, ($a0) /* 894A0 800EFFF0 24020002 */ addiu $v0, $zero, 2 /* 894A4 800EFFF4 10A0002C */ beqz $a1, .L800F00A8 /* 894A8 800EFFF8 A4820000 */ sh $v0, ($a0) /* 894AC 800EFFFC C60C0080 */ lwc1 $f12, 0x80($s0) /* 894B0 800F0000 0C00A6C9 */ jal clamp_angle /* 894B4 800F0004 00000000 */ nop /* 894B8 800F0008 3C0140C9 */ lui $at, 0x40c9 /* 894BC 800F000C 34210FD0 */ ori $at, $at, 0xfd0 /* 894C0 800F0010 44811000 */ mtc1 $at, $f2 /* 894C4 800F0014 00000000 */ nop /* 894C8 800F0018 46020002 */ mul.s $f0, $f0, $f2 /* 894CC 800F001C 00000000 */ nop /* 894D0 800F0020 27A50028 */ addiu $a1, $sp, 0x28 /* 894D4 800F0024 3C0143B4 */ lui $at, 0x43b4 /* 894D8 800F0028 44816000 */ mtc1 $at, $f12 /* 894DC 800F002C 27A6002C */ addiu $a2, $sp, 0x2c /* 894E0 800F0030 0C00A82D */ jal sin_cos_rad /* 894E4 800F0034 460C0303 */ div.s $f12, $f0, $f12 /* 894E8 800F0038 860200B2 */ lh $v0, 0xb2($s0) /* 894EC 800F003C C7A40028 */ lwc1 $f4, 0x28($sp) /* 894F0 800F0040 44823000 */ mtc1 $v0, $f6 /* 894F4 800F0044 00000000 */ nop /* 894F8 800F0048 0803C06D */ j .L800F01B4 /* 894FC 800F004C 468031A0 */ cvt.s.w $f6, $f6 .L800F0050: /* 89500 800F0050 1062000A */ beq $v1, $v0, .L800F007C /* 89504 800F0054 3C02FF00 */ lui $v0, 0xff00 /* 89508 800F0058 8E0300B4 */ lw $v1, 0xb4($s0) /* 8950C 800F005C 3442FF00 */ ori $v0, $v0, 0xff00 /* 89510 800F0060 00621824 */ and $v1, $v1, $v0 /* 89514 800F0064 3C021A00 */ lui $v0, 0x1a00 /* 89518 800F0068 10620004 */ beq $v1, $v0, .L800F007C /* 8951C 800F006C 24020004 */ addiu $v0, $zero, 4 /* 89520 800F0070 3C018011 */ lui $at, %hi(D_80109488) /* 89524 800F0074 0803C08E */ j .L800F0238 /* 89528 800F0078 A4229488 */ sh $v0, %lo(D_80109488)($at) .L800F007C: /* 8952C 800F007C 3C048011 */ lui $a0, %hi(D_80109488) /* 89530 800F0080 24849488 */ addiu $a0, $a0, %lo(D_80109488) /* 89534 800F0084 94820000 */ lhu $v0, ($a0) /* 89538 800F0088 24430001 */ addiu $v1, $v0, 1 /* 8953C 800F008C 00021400 */ sll $v0, $v0, 0x10 /* 89540 800F0090 00021403 */ sra $v0, $v0, 0x10 /* 89544 800F0094 28420004 */ slti $v0, $v0, 4 /* 89548 800F0098 14400067 */ bnez $v0, .L800F0238 /* 8954C 800F009C A4830000 */ sh $v1, ($a0) /* 89550 800F00A0 14A00034 */ bnez $a1, .L800F0174 /* 89554 800F00A4 A4800000 */ sh $zero, ($a0) .L800F00A8: /* 89558 800F00A8 C60C0084 */ lwc1 $f12, 0x84($s0) /* 8955C 800F00AC 0C00A6C9 */ jal clamp_angle /* 89560 800F00B0 46006307 */ neg.s $f12, $f12 /* 89564 800F00B4 3C0140C9 */ lui $at, 0x40c9 /* 89568 800F00B8 34210FD0 */ ori $at, $at, 0xfd0 /* 8956C 800F00BC 44811000 */ mtc1 $at, $f2 /* 89570 800F00C0 00000000 */ nop /* 89574 800F00C4 46020002 */ mul.s $f0, $f0, $f2 /* 89578 800F00C8 00000000 */ nop /* 8957C 800F00CC 27A50028 */ addiu $a1, $sp, 0x28 /* 89580 800F00D0 3C0143B4 */ lui $at, 0x43b4 /* 89584 800F00D4 44816000 */ mtc1 $at, $f12 /* 89588 800F00D8 27A6002C */ addiu $a2, $sp, 0x2c /* 8958C 800F00DC 0C00A82D */ jal sin_cos_rad /* 89590 800F00E0 460C0303 */ div.s $f12, $f0, $f12 /* 89594 800F00E4 860200B2 */ lh $v0, 0xb2($s0) /* 89598 800F00E8 C7AA0028 */ lwc1 $f10, 0x28($sp) /* 8959C 800F00EC 44821000 */ mtc1 $v0, $f2 /* 895A0 800F00F0 00000000 */ nop /* 895A4 800F00F4 468010A0 */ cvt.s.w $f2, $f2 /* 895A8 800F00F8 460A1182 */ mul.s $f6, $f2, $f10 /* 895AC 800F00FC 00000000 */ nop /* 895B0 800F0100 C7A8002C */ lwc1 $f8, 0x2c($sp) /* 895B4 800F0104 46081082 */ mul.s $f2, $f2, $f8 /* 895B8 800F0108 00000000 */ nop /* 895BC 800F010C 3C013E4C */ lui $at, 0x3e4c /* 895C0 800F0110 3421CCCD */ ori $at, $at, 0xcccd /* 895C4 800F0114 44810000 */ mtc1 $at, $f0 /* 895C8 800F0118 00000000 */ nop /* 895CC 800F011C 46003182 */ mul.s $f6, $f6, $f0 /* 895D0 800F0120 00000000 */ nop /* 895D4 800F0124 46001082 */ mul.s $f2, $f2, $f0 /* 895D8 800F0128 00000000 */ nop /* 895DC 800F012C C604002C */ lwc1 $f4, 0x2c($s0) /* 895E0 800F0130 3C013FC0 */ lui $at, 0x3fc0 /* 895E4 800F0134 44810000 */ mtc1 $at, $f0 /* 895E8 800F0138 00000000 */ nop /* 895EC 800F013C 46002100 */ add.s $f4, $f4, $f0 /* 895F0 800F0140 C6000028 */ lwc1 $f0, 0x28($s0) /* 895F4 800F0144 46060000 */ add.s $f0, $f0, $f6 /* 895F8 800F0148 44050000 */ mfc1 $a1, $f0 /* 895FC 800F014C C6000030 */ lwc1 $f0, 0x30($s0) /* 89600 800F0150 46020000 */ add.s $f0, $f0, $f2 /* 89604 800F0154 44062000 */ mfc1 $a2, $f4 /* 89608 800F0158 44070000 */ mfc1 $a3, $f0 /* 8960C 800F015C 0000202D */ daddu $a0, $zero, $zero /* 89610 800F0160 E7AA0010 */ swc1 $f10, 0x10($sp) /* 89614 800F0164 0C01BECC */ jal fx_walk_normal /* 89618 800F0168 E7A80014 */ swc1 $f8, 0x14($sp) /* 8961C 800F016C 0803C08E */ j .L800F0238 /* 89620 800F0170 00000000 */ nop .L800F0174: /* 89624 800F0174 0C00A6C9 */ jal clamp_angle /* 89628 800F0178 C60C0080 */ lwc1 $f12, 0x80($s0) /* 8962C 800F017C 3C0140C9 */ lui $at, 0x40c9 /* 89630 800F0180 34210FD0 */ ori $at, $at, 0xfd0 /* 89634 800F0184 44811000 */ mtc1 $at, $f2 /* 89638 800F0188 00000000 */ nop /* 8963C 800F018C 46020002 */ mul.s $f0, $f0, $f2 /* 89640 800F0190 00000000 */ nop /* 89644 800F0194 27A50028 */ addiu $a1, $sp, 0x28 /* 89648 800F0198 3C0143B4 */ lui $at, 0x43b4 /* 8964C 800F019C 44816000 */ mtc1 $at, $f12 /* 89650 800F01A0 27A6002C */ addiu $a2, $sp, 0x2c /* 89654 800F01A4 0C00A82D */ jal sin_cos_rad /* 89658 800F01A8 460C0303 */ div.s $f12, $f0, $f12 /* 8965C 800F01AC C6060054 */ lwc1 $f6, 0x54($s0) /* 89660 800F01B0 C7A40028 */ lwc1 $f4, 0x28($sp) .L800F01B4: /* 89664 800F01B4 46043102 */ mul.s $f4, $f6, $f4 /* 89668 800F01B8 00000000 */ nop /* 8966C 800F01BC C602002C */ lwc1 $f2, 0x2c($s0) /* 89670 800F01C0 3C013FC0 */ lui $at, 0x3fc0 /* 89674 800F01C4 44810000 */ mtc1 $at, $f0 /* 89678 800F01C8 00000000 */ nop /* 8967C 800F01CC 46001080 */ add.s $f2, $f2, $f0 /* 89680 800F01D0 C7A0002C */ lwc1 $f0, 0x2c($sp) /* 89684 800F01D4 24020005 */ addiu $v0, $zero, 5 /* 89688 800F01D8 AFA2001C */ sw $v0, 0x1c($sp) /* 8968C 800F01DC 46003182 */ mul.s $f6, $f6, $f0 /* 89690 800F01E0 00000000 */ nop /* 89694 800F01E4 3C014150 */ lui $at, 0x4150 /* 89698 800F01E8 44810000 */ mtc1 $at, $f0 /* 8969C 800F01EC 44061000 */ mfc1 $a2, $f2 /* 896A0 800F01F0 C6020028 */ lwc1 $f2, 0x28($s0) /* 896A4 800F01F4 2402001E */ addiu $v0, $zero, 0x1e /* 896A8 800F01F8 AFA20020 */ sw $v0, 0x20($sp) /* 896AC 800F01FC E7A00010 */ swc1 $f0, 0x10($sp) /* 896B0 800F0200 46041080 */ add.s $f2, $f2, $f4 /* 896B4 800F0204 C6000030 */ lwc1 $f0, 0x30($s0) /* 896B8 800F0208 3C013F80 */ lui $at, 0x3f80 /* 896BC 800F020C 44812000 */ mtc1 $at, $f4 /* 896C0 800F0210 46060000 */ add.s $f0, $f0, $f6 /* 896C4 800F0214 44051000 */ mfc1 $a1, $f2 /* 896C8 800F0218 3C014120 */ lui $at, 0x4120 /* 896CC 800F021C 44811000 */ mtc1 $at, $f2 /* 896D0 800F0220 44070000 */ mfc1 $a3, $f0 /* 896D4 800F0224 24040003 */ addiu $a0, $zero, 3 /* 896D8 800F0228 E7A40018 */ swc1 $f4, 0x18($sp) /* 896DC 800F022C E7A20014 */ swc1 $f2, 0x14($sp) .L800F0230: /* 896E0 800F0230 0C01C8D4 */ jal func_80072350 /* 896E4 800F0234 00000000 */ nop .L800F0238: /* 896E8 800F0238 8FBF0034 */ lw $ra, 0x34($sp) /* 896EC 800F023C 8FB00030 */ lw $s0, 0x30($sp) /* 896F0 800F0240 03E00008 */ jr $ra /* 896F4 800F0244 27BD0038 */ addiu $sp, $sp, 0x38