papermario/asm/nonmatchings/code_E25D60/func_802B6000_E25D60.s
Ethan Roseman 20a99f4037 OK
2021-02-03 15:40:16 +09:00

664 lines
33 KiB
ArmAsm
Generated

.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
glabel func_802B6000_E25D60
/* E25D60 802B6000 27BDFFB0 */ addiu $sp, $sp, -0x50
/* E25D64 802B6004 AFB5002C */ sw $s5, 0x2c($sp)
/* E25D68 802B6008 AFB1001C */ sw $s1, 0x1c($sp)
/* E25D6C 802B600C 3C118011 */ lui $s1, %hi(gPlayerStatus)
/* E25D70 802B6010 2631EFC8 */ addiu $s1, $s1, %lo(gPlayerStatus)
/* E25D74 802B6014 AFBF0030 */ sw $ra, 0x30($sp)
/* E25D78 802B6018 AFB40028 */ sw $s4, 0x28($sp)
/* E25D7C 802B601C AFB30024 */ sw $s3, 0x24($sp)
/* E25D80 802B6020 AFB20020 */ sw $s2, 0x20($sp)
/* E25D84 802B6024 AFB00018 */ sw $s0, 0x18($sp)
/* E25D88 802B6028 F7B80048 */ sdc1 $f24, 0x48($sp)
/* E25D8C 802B602C F7B60040 */ sdc1 $f22, 0x40($sp)
/* E25D90 802B6030 F7B40038 */ sdc1 $f20, 0x38($sp)
/* E25D94 802B6034 8E220000 */ lw $v0, ($s1)
/* E25D98 802B6038 3C108011 */ lui $s0, %hi(D_8010F250)
/* E25D9C 802B603C 2610F250 */ addiu $s0, $s0, %lo(D_8010F250)
/* E25DA0 802B6040 0441009D */ bgez $v0, .L802B62B8
/* E25DA4 802B6044 0000A82D */ daddu $s5, $zero, $zero
/* E25DA8 802B6048 3C037FF7 */ lui $v1, 0x7ff7
/* E25DAC 802B604C 3463FFFF */ ori $v1, $v1, 0xffff
/* E25DB0 802B6050 3C05FFFB */ lui $a1, 0xfffb
/* E25DB4 802B6054 34A5FFFF */ ori $a1, $a1, 0xffff
/* E25DB8 802B6058 24150001 */ addiu $s5, $zero, 1
/* E25DBC 802B605C 24040028 */ addiu $a0, $zero, 0x28
/* E25DC0 802B6060 00431824 */ and $v1, $v0, $v1
/* E25DC4 802B6064 3C020002 */ lui $v0, 2
/* E25DC8 802B6068 AE230000 */ sw $v1, ($s1)
/* E25DCC 802B606C 00621825 */ or $v1, $v1, $v0
/* E25DD0 802B6070 24020019 */ addiu $v0, $zero, 0x19
/* E25DD4 802B6074 AE230000 */ sw $v1, ($s1)
/* E25DD8 802B6078 A6200008 */ sh $zero, 8($s1)
/* E25DDC 802B607C A22000B6 */ sb $zero, 0xb6($s1)
/* E25DE0 802B6080 A2000000 */ sb $zero, ($s0)
/* E25DE4 802B6084 A2000001 */ sb $zero, 1($s0)
/* E25DE8 802B6088 AE000010 */ sw $zero, 0x10($s0)
/* E25DEC 802B608C AE000014 */ sw $zero, 0x14($s0)
/* E25DF0 802B6090 AE000018 */ sw $zero, 0x18($s0)
/* E25DF4 802B6094 A2000002 */ sb $zero, 2($s0)
/* E25DF8 802B6098 AE000008 */ sw $zero, 8($s0)
/* E25DFC 802B609C AE00000C */ sw $zero, 0xc($s0)
/* E25E00 802B60A0 AE000030 */ sw $zero, 0x30($s0)
/* E25E04 802B60A4 AE2000D8 */ sw $zero, 0xd8($s1)
/* E25E08 802B60A8 A602002C */ sh $v0, 0x2c($s0)
/* E25E0C 802B60AC 8E230004 */ lw $v1, 4($s1)
/* E25E10 802B60B0 2402000F */ addiu $v0, $zero, 0xf
/* E25E14 802B60B4 A602002E */ sh $v0, 0x2e($s0)
/* E25E18 802B60B8 3C020001 */ lui $v0, 1
/* E25E1C 802B60BC 3C014220 */ lui $at, 0x4220
/* E25E20 802B60C0 4481A000 */ mtc1 $at, $f20
/* E25E24 802B60C4 3C014000 */ lui $at, 0x4000
/* E25E28 802B60C8 44810000 */ mtc1 $at, $f0
/* E25E2C 802B60CC 3C013F00 */ lui $at, 0x3f00
/* E25E30 802B60D0 44811000 */ mtc1 $at, $f2
/* E25E34 802B60D4 00651824 */ and $v1, $v1, $a1
/* E25E38 802B60D8 9205002D */ lbu $a1, 0x2d($s0)
/* E25E3C 802B60DC 00621825 */ or $v1, $v1, $v0
/* E25E40 802B60E0 AE230004 */ sw $v1, 4($s1)
/* E25E44 802B60E4 E6140020 */ swc1 $f20, 0x20($s0)
/* E25E48 802B60E8 E6000024 */ swc1 $f0, 0x24($s0)
/* E25E4C 802B60EC E6020028 */ swc1 $f2, 0x28($s0)
/* E25E50 802B60F0 0C03A752 */ jal is_ability_active
/* E25E54 802B60F4 A2050003 */ sb $a1, 3($s0)
/* E25E58 802B60F8 0002102B */ sltu $v0, $zero, $v0
/* E25E5C 802B60FC 00029080 */ sll $s2, $v0, 2
/* E25E60 802B6100 0C03A752 */ jal is_ability_active
/* E25E64 802B6104 2404002D */ addiu $a0, $zero, 0x2d
/* E25E68 802B6108 54400001 */ bnel $v0, $zero, .L802B6110
/* E25E6C 802B610C 36520002 */ ori $s2, $s2, 2
.L802B6110:
/* E25E70 802B6110 0C03A752 */ jal is_ability_active
/* E25E74 802B6114 24040027 */ addiu $a0, $zero, 0x27
/* E25E78 802B6118 10400010 */ beqz $v0, .L802B615C
/* E25E7C 802B611C 2402001E */ addiu $v0, $zero, 0x1e
/* E25E80 802B6120 36520001 */ ori $s2, $s2, 1
/* E25E84 802B6124 A602002C */ sh $v0, 0x2c($s0)
/* E25E88 802B6128 9203002D */ lbu $v1, 0x2d($s0)
/* E25E8C 802B612C 3C01402C */ lui $at, 0x402c
/* E25E90 802B6130 3421CCCD */ ori $at, $at, 0xcccd
/* E25E94 802B6134 44810000 */ mtc1 $at, $f0
/* E25E98 802B6138 3C013F66 */ lui $at, 0x3f66
/* E25E9C 802B613C 34216666 */ ori $at, $at, 0x6666
/* E25EA0 802B6140 44811000 */ mtc1 $at, $f2
/* E25EA4 802B6144 24020014 */ addiu $v0, $zero, 0x14
/* E25EA8 802B6148 E6140020 */ swc1 $f20, 0x20($s0)
/* E25EAC 802B614C A602002E */ sh $v0, 0x2e($s0)
/* E25EB0 802B6150 A2030003 */ sb $v1, 3($s0)
/* E25EB4 802B6154 E6000024 */ swc1 $f0, 0x24($s0)
/* E25EB8 802B6158 E6020028 */ swc1 $f2, 0x28($s0)
.L802B615C:
/* E25EBC 802B615C 2414FFFF */ addiu $s4, $zero, -1
/* E25EC0 802B6160 3C130001 */ lui $s3, 1
/* E25EC4 802B6164 12400011 */ beqz $s2, .L802B61AC
/* E25EC8 802B6168 36730010 */ ori $s3, $s3, 0x10
/* E25ECC 802B616C 32420004 */ andi $v0, $s2, 4
/* E25ED0 802B6170 10400005 */ beqz $v0, .L802B6188
/* E25ED4 802B6174 32420002 */ andi $v0, $s2, 2
/* E25ED8 802B6178 24140002 */ addiu $s4, $zero, 2
/* E25EDC 802B617C 3C130001 */ lui $s3, 1
/* E25EE0 802B6180 080AD86B */ j .L802B61AC
/* E25EE4 802B6184 36730012 */ ori $s3, $s3, 0x12
.L802B6188:
/* E25EE8 802B6188 10400003 */ beqz $v0, .L802B6198
/* E25EEC 802B618C 32420001 */ andi $v0, $s2, 1
/* E25EF0 802B6190 080AD86B */ j .L802B61AC
/* E25EF4 802B6194 24140004 */ addiu $s4, $zero, 4
.L802B6198:
/* E25EF8 802B6198 10400005 */ beqz $v0, .L802B61B0
/* E25EFC 802B619C 24022111 */ addiu $v0, $zero, 0x2111
/* E25F00 802B61A0 0000A02D */ daddu $s4, $zero, $zero
/* E25F04 802B61A4 3C130001 */ lui $s3, 1
/* E25F08 802B61A8 36730011 */ ori $s3, $s3, 0x11
.L802B61AC:
/* E25F0C 802B61AC 24022111 */ addiu $v0, $zero, 0x2111
.L802B61B0:
/* E25F10 802B61B0 AE020030 */ sw $v0, 0x30($s0)
/* E25F14 802B61B4 2402FFFD */ addiu $v0, $zero, -3
/* E25F18 802B61B8 02421824 */ and $v1, $s2, $v0
/* E25F1C 802B61BC 24020004 */ addiu $v0, $zero, 4
/* E25F20 802B61C0 14620004 */ bne $v1, $v0, .L802B61D4
/* E25F24 802B61C4 24020001 */ addiu $v0, $zero, 1
/* E25F28 802B61C8 24022113 */ addiu $v0, $zero, 0x2113
/* E25F2C 802B61CC AE020030 */ sw $v0, 0x30($s0)
/* E25F30 802B61D0 24020001 */ addiu $v0, $zero, 1
.L802B61D4:
/* E25F34 802B61D4 14620004 */ bne $v1, $v0, .L802B61E8
/* E25F38 802B61D8 24020005 */ addiu $v0, $zero, 5
/* E25F3C 802B61DC 24022112 */ addiu $v0, $zero, 0x2112
/* E25F40 802B61E0 AE020030 */ sw $v0, 0x30($s0)
/* E25F44 802B61E4 24020005 */ addiu $v0, $zero, 5
.L802B61E8:
/* E25F48 802B61E8 14620002 */ bne $v1, $v0, .L802B61F4
/* E25F4C 802B61EC 24022114 */ addiu $v0, $zero, 0x2114
/* E25F50 802B61F0 AE020030 */ sw $v0, 0x30($s0)
.L802B61F4:
/* E25F54 802B61F4 8E040030 */ lw $a0, 0x30($s0)
/* E25F58 802B61F8 0C052736 */ jal play_sound_at_player
/* E25F5C 802B61FC 0000282D */ daddu $a1, $zero, $zero
/* E25F60 802B6200 0C037FDE */ jal func_800DFF78
/* E25F64 802B6204 0260202D */ daddu $a0, $s3, $zero
/* E25F68 802B6208 3C038007 */ lui $v1, %hi(gCurrentCameraID)
/* E25F6C 802B620C 8C637410 */ lw $v1, %lo(gCurrentCameraID)($v1)
/* E25F70 802B6210 C6200080 */ lwc1 $f0, 0x80($s1)
/* E25F74 802B6214 00031080 */ sll $v0, $v1, 2
/* E25F78 802B6218 00431021 */ addu $v0, $v0, $v1
/* E25F7C 802B621C 00021080 */ sll $v0, $v0, 2
/* E25F80 802B6220 00431023 */ subu $v0, $v0, $v1
/* E25F84 802B6224 000218C0 */ sll $v1, $v0, 3
/* E25F88 802B6228 00431021 */ addu $v0, $v0, $v1
/* E25F8C 802B622C 000210C0 */ sll $v0, $v0, 3
/* E25F90 802B6230 3C01800B */ lui $at, %hi(D_800B1DEC)
/* E25F94 802B6234 00220821 */ addu $at, $at, $v0
/* E25F98 802B6238 C42C1DEC */ lwc1 $f12, %lo(D_800B1DEC)($at)
/* E25F9C 802B623C 0C00A6C9 */ jal clamp_angle
/* E25FA0 802B6240 460C0301 */ sub.s $f12, $f0, $f12
/* E25FA4 802B6244 3C014334 */ lui $at, 0x4334
/* E25FA8 802B6248 44811000 */ mtc1 $at, $f2
/* E25FAC 802B624C 00000000 */ nop
/* E25FB0 802B6250 4602003E */ c.le.s $f0, $f2
/* E25FB4 802B6254 00000000 */ nop
/* E25FB8 802B6258 45020004 */ bc1fl .L802B626C
/* E25FBC 802B625C 26940001 */ addiu $s4, $s4, 1
/* E25FC0 802B6260 C6000020 */ lwc1 $f0, 0x20($s0)
/* E25FC4 802B6264 080AD89E */ j .L802B6278
/* E25FC8 802B6268 E62000D4 */ swc1 $f0, 0xd4($s1)
.L802B626C:
/* E25FCC 802B626C C6000020 */ lwc1 $f0, 0x20($s0)
/* E25FD0 802B6270 46000007 */ neg.s $f0, $f0
/* E25FD4 802B6274 E62000D4 */ swc1 $f0, 0xd4($s1)
.L802B6278:
/* E25FD8 802B6278 12400006 */ beqz $s2, .L802B6294
/* E25FDC 802B627C 0280202D */ daddu $a0, $s4, $zero
/* E25FE0 802B6280 0220282D */ daddu $a1, $s1, $zero
/* E25FE4 802B6284 3C063F80 */ lui $a2, 0x3f80
/* E25FE8 802B6288 0C01C4B4 */ jal func_800712D0
/* E25FEC 802B628C 240703E8 */ addiu $a3, $zero, 0x3e8
/* E25FF0 802B6290 AE2200D8 */ sw $v0, 0xd8($s1)
.L802B6294:
/* E25FF4 802B6294 0C03963C */ jal func_800E58F0
/* E25FF8 802B6298 00000000 */ nop
/* E25FFC 802B629C 27A40010 */ addiu $a0, $sp, 0x10
/* E26000 802B62A0 0C0388C1 */ jal input_to_move_vector
/* E26004 802B62A4 27A50014 */ addiu $a1, $sp, 0x14
/* E26008 802B62A8 C7A00010 */ lwc1 $f0, 0x10($sp)
/* E2600C 802B62AC C7A20014 */ lwc1 $f2, 0x14($sp)
/* E26010 802B62B0 E6200080 */ swc1 $f0, 0x80($s1)
/* E26014 802B62B4 E602001C */ swc1 $f2, 0x1c($s0)
.L802B62B8:
/* E26018 802B62B8 3C058011 */ lui $a1, %hi(D_8010C944)
/* E2601C 802B62BC 24A5C944 */ addiu $a1, $a1, %lo(D_8010C944)
/* E26020 802B62C0 3C068011 */ lui $a2, %hi(D_8010F6B8)
/* E26024 802B62C4 24C6F6B8 */ addiu $a2, $a2, %lo(D_8010F6B8)
/* E26028 802B62C8 8CA20000 */ lw $v0, ($a1)
/* E2602C 802B62CC C62000A8 */ lwc1 $f0, 0xa8($s1)
/* E26030 802B62D0 00022040 */ sll $a0, $v0, 1
/* E26034 802B62D4 24420001 */ addiu $v0, $v0, 1
/* E26038 802B62D8 4600018D */ trunc.w.s $f6, $f0
/* E2603C 802B62DC 44033000 */ mfc1 $v1, $f6
/* E26040 802B62E0 3C018011 */ lui $at, %hi(D_8010F6B8)
/* E26044 802B62E4 00240821 */ addu $at, $at, $a0
/* E26048 802B62E8 A423F6B8 */ sh $v1, %lo(D_8010F6B8)($at)
/* E2604C 802B62EC ACA20000 */ sw $v0, ($a1)
/* E26050 802B62F0 28420006 */ slti $v0, $v0, 6
/* E26054 802B62F4 50400001 */ beql $v0, $zero, .L802B62FC
/* E26058 802B62F8 ACA00000 */ sw $zero, ($a1)
.L802B62FC:
/* E2605C 802B62FC 8CA30000 */ lw $v1, ($a1)
/* E26060 802B6300 C6200028 */ lwc1 $f0, 0x28($s1)
/* E26064 802B6304 00031080 */ sll $v0, $v1, 2
/* E26068 802B6308 4600018D */ trunc.w.s $f6, $f0
/* E2606C 802B630C 3C018011 */ lui $at, %hi(D_8010EF28)
/* E26070 802B6310 00220821 */ addu $at, $at, $v0
/* E26074 802B6314 E426EF28 */ swc1 $f6, %lo(D_8010EF28)($at)
/* E26078 802B6318 24640001 */ addiu $a0, $v1, 1
/* E2607C 802B631C C620002C */ lwc1 $f0, 0x2c($s1)
/* E26080 802B6320 00031840 */ sll $v1, $v1, 1
/* E26084 802B6324 4600018D */ trunc.w.s $f6, $f0
/* E26088 802B6328 3C018011 */ lui $at, %hi(D_8010EF10)
/* E2608C 802B632C 00220821 */ addu $at, $at, $v0
/* E26090 802B6330 E426EF10 */ swc1 $f6, %lo(D_8010EF10)($at)
/* E26094 802B6334 C6200030 */ lwc1 $f0, 0x30($s1)
/* E26098 802B6338 00661821 */ addu $v1, $v1, $a2
/* E2609C 802B633C ACA40000 */ sw $a0, ($a1)
/* E260A0 802B6340 4600018D */ trunc.w.s $f6, $f0
/* E260A4 802B6344 3C018011 */ lui $at, %hi(D_8010EF40)
/* E260A8 802B6348 00220821 */ addu $at, $at, $v0
/* E260AC 802B634C E426EF40 */ swc1 $f6, %lo(D_8010EF40)($at)
/* E260B0 802B6350 C62000A8 */ lwc1 $f0, 0xa8($s1)
/* E260B4 802B6354 28840006 */ slti $a0, $a0, 6
/* E260B8 802B6358 4600018D */ trunc.w.s $f6, $f0
/* E260BC 802B635C 44023000 */ mfc1 $v0, $f6
/* E260C0 802B6360 14800002 */ bnez $a0, .L802B636C
/* E260C4 802B6364 A4620000 */ sh $v0, ($v1)
/* E260C8 802B6368 ACA00000 */ sw $zero, ($a1)
.L802B636C:
/* E260CC 802B636C 16A0001A */ bnez $s5, .L802B63D8
/* E260D0 802B6370 00000000 */ nop
/* E260D4 802B6374 0C039838 */ jal check_input_hammer
/* E260D8 802B6378 00000000 */ nop
/* E260DC 802B637C 14400005 */ bnez $v0, .L802B6394
/* E260E0 802B6380 3C05FFFE */ lui $a1, 0xfffe
/* E260E4 802B6384 0C039858 */ jal check_input_jump
/* E260E8 802B6388 00000000 */ nop
/* E260EC 802B638C 10400012 */ beqz $v0, .L802B63D8
/* E260F0 802B6390 3C05FFFE */ lui $a1, 0xfffe
.L802B6394:
/* E260F4 802B6394 34A5FFFF */ ori $a1, $a1, 0xffff
/* E260F8 802B6398 3C06FFFD */ lui $a2, 0xfffd
/* E260FC 802B639C 34C6FFFF */ ori $a2, $a2, 0xffff
/* E26100 802B63A0 8E040030 */ lw $a0, 0x30($s0)
/* E26104 802B63A4 8E220004 */ lw $v0, 4($s1)
/* E26108 802B63A8 8E230000 */ lw $v1, ($s1)
/* E2610C 802B63AC 00451024 */ and $v0, $v0, $a1
/* E26110 802B63B0 00661824 */ and $v1, $v1, $a2
/* E26114 802B63B4 AE220004 */ sw $v0, 4($s1)
/* E26118 802B63B8 0C05271B */ jal stop_sound
/* E2611C 802B63BC AE230000 */ sw $v1, ($s1)
/* E26120 802B63C0 27A40010 */ addiu $a0, $sp, 0x10
/* E26124 802B63C4 0C0388C1 */ jal input_to_move_vector
/* E26128 802B63C8 27A50014 */ addiu $a1, $sp, 0x14
/* E2612C 802B63CC C7A00010 */ lwc1 $f0, 0x10($sp)
/* E26130 802B63D0 080ADA5B */ j .L802B696C
/* E26134 802B63D4 E6200080 */ swc1 $f0, 0x80($s1)
.L802B63D8:
/* E26138 802B63D8 82020003 */ lb $v0, 3($s0)
/* E2613C 802B63DC 2842000B */ slti $v0, $v0, 0xb
/* E26140 802B63E0 1040000C */ beqz $v0, .L802B6414
/* E26144 802B63E4 00000000 */ nop
/* E26148 802B63E8 8E2200E0 */ lw $v0, 0xe0($s1)
/* E2614C 802B63EC 30422000 */ andi $v0, $v0, 0x2000
/* E26150 802B63F0 10400008 */ beqz $v0, .L802B6414
/* E26154 802B63F4 24020001 */ addiu $v0, $zero, 1
/* E26158 802B63F8 822300B5 */ lb $v1, 0xb5($s1)
/* E2615C 802B63FC 8E2400E8 */ lw $a0, 0xe8($s1)
/* E26160 802B6400 8E2500EC */ lw $a1, 0xec($s1)
/* E26164 802B6404 A2020001 */ sb $v0, 1($s0)
/* E26168 802B6408 AE030004 */ sw $v1, 4($s0)
/* E2616C 802B640C AE040008 */ sw $a0, 8($s0)
/* E26170 802B6410 AE05000C */ sw $a1, 0xc($s0)
.L802B6414:
/* E26174 802B6414 822300B6 */ lb $v1, 0xb6($s1)
/* E26178 802B6418 28620002 */ slti $v0, $v1, 2
/* E2617C 802B641C 1440004C */ bnez $v0, .L802B6550
/* E26180 802B6420 00000000 */ nop
/* E26184 802B6424 C6000010 */ lwc1 $f0, 0x10($s0)
/* E26188 802B6428 3C013F80 */ lui $at, 0x3f80
/* E2618C 802B642C 44811000 */ mtc1 $at, $f2
/* E26190 802B6430 00000000 */ nop
/* E26194 802B6434 46020001 */ sub.s $f0, $f0, $f2
/* E26198 802B6438 4480C000 */ mtc1 $zero, $f24
/* E2619C 802B643C 00000000 */ nop
/* E261A0 802B6440 4618003C */ c.lt.s $f0, $f24
/* E261A4 802B6444 00000000 */ nop
/* E261A8 802B6448 45000002 */ bc1f .L802B6454
/* E261AC 802B644C E6000010 */ swc1 $f0, 0x10($s0)
/* E261B0 802B6450 E6180010 */ swc1 $f24, 0x10($s0)
.L802B6454:
/* E261B4 802B6454 3C038007 */ lui $v1, %hi(gCurrentCameraID)
/* E261B8 802B6458 8C637410 */ lw $v1, %lo(gCurrentCameraID)($v1)
/* E261BC 802B645C C6200080 */ lwc1 $f0, 0x80($s1)
/* E261C0 802B6460 00031080 */ sll $v0, $v1, 2
/* E261C4 802B6464 00431021 */ addu $v0, $v0, $v1
/* E261C8 802B6468 00021080 */ sll $v0, $v0, 2
/* E261CC 802B646C 00431023 */ subu $v0, $v0, $v1
/* E261D0 802B6470 000218C0 */ sll $v1, $v0, 3
/* E261D4 802B6474 00431021 */ addu $v0, $v0, $v1
/* E261D8 802B6478 000210C0 */ sll $v0, $v0, 3
/* E261DC 802B647C 3C01800B */ lui $at, %hi(D_800B1DEC)
/* E261E0 802B6480 00220821 */ addu $at, $at, $v0
/* E261E4 802B6484 C42C1DEC */ lwc1 $f12, %lo(D_800B1DEC)($at)
/* E261E8 802B6488 0C00A6C9 */ jal clamp_angle
/* E261EC 802B648C 460C0301 */ sub.s $f12, $f0, $f12
/* E261F0 802B6490 3C0140C9 */ lui $at, 0x40c9
/* E261F4 802B6494 34210FD0 */ ori $at, $at, 0xfd0
/* E261F8 802B6498 4481A000 */ mtc1 $at, $f20
/* E261FC 802B649C 00000000 */ nop
/* E26200 802B64A0 46140302 */ mul.s $f12, $f0, $f20
/* E26204 802B64A4 00000000 */ nop
/* E26208 802B64A8 3C0143B4 */ lui $at, 0x43b4
/* E2620C 802B64AC 4481B000 */ mtc1 $at, $f22
/* E26210 802B64B0 E7A00010 */ swc1 $f0, 0x10($sp)
/* E26214 802B64B4 0C00A85B */ jal sin_rad
/* E26218 802B64B8 46166303 */ div.s $f12, $f12, $f22
/* E2621C 802B64BC C7AC0010 */ lwc1 $f12, 0x10($sp)
/* E26220 802B64C0 46146302 */ mul.s $f12, $f12, $f20
/* E26224 802B64C4 00000000 */ nop
/* E26228 802B64C8 C6020010 */ lwc1 $f2, 0x10($s0)
/* E2622C 802B64CC 46020002 */ mul.s $f0, $f0, $f2
/* E26230 802B64D0 00000000 */ nop
/* E26234 802B64D4 46166303 */ div.s $f12, $f12, $f22
/* E26238 802B64D8 0C00A874 */ jal cos_rad
/* E2623C 802B64DC E6000014 */ swc1 $f0, 0x14($s0)
/* E26240 802B64E0 46000007 */ neg.s $f0, $f0
/* E26244 802B64E4 C6020010 */ lwc1 $f2, 0x10($s0)
/* E26248 802B64E8 96220008 */ lhu $v0, 8($s1)
/* E2624C 802B64EC 46020002 */ mul.s $f0, $f0, $f2
/* E26250 802B64F0 00000000 */ nop
/* E26254 802B64F4 2442FFFF */ addiu $v0, $v0, -1
/* E26258 802B64F8 A6220008 */ sh $v0, 8($s1)
/* E2625C 802B64FC 00021400 */ sll $v0, $v0, 0x10
/* E26260 802B6500 14400011 */ bnez $v0, .L802B6548
/* E26264 802B6504 E6000018 */ swc1 $f0, 0x18($s0)
/* E26268 802B6508 0000202D */ daddu $a0, $zero, $zero
/* E2626C 802B650C 24020004 */ addiu $v0, $zero, 4
/* E26270 802B6510 0C039769 */ jal set_action_state
/* E26274 802B6514 A2020000 */ sb $v0, ($s0)
/* E26278 802B6518 3C05FFFD */ lui $a1, 0xfffd
/* E2627C 802B651C 34A5FFFF */ ori $a1, $a1, 0xffff
/* E26280 802B6520 3C06FFFE */ lui $a2, 0xfffe
/* E26284 802B6524 34C6FFFF */ ori $a2, $a2, 0xffff
/* E26288 802B6528 8E040030 */ lw $a0, 0x30($s0)
/* E2628C 802B652C 8E220000 */ lw $v0, ($s1)
/* E26290 802B6530 8E230004 */ lw $v1, 4($s1)
/* E26294 802B6534 00451024 */ and $v0, $v0, $a1
/* E26298 802B6538 00661824 */ and $v1, $v1, $a2
/* E2629C 802B653C AE220000 */ sw $v0, ($s1)
/* E262A0 802B6540 0C05271B */ jal stop_sound
/* E262A4 802B6544 AE230004 */ sw $v1, 4($s1)
.L802B6548:
/* E262A8 802B6548 080ADA5B */ j .L802B696C
/* E262AC 802B654C E6380054 */ swc1 $f24, 0x54($s1)
.L802B6550:
/* E262B0 802B6550 14600012 */ bnez $v1, .L802B659C
/* E262B4 802B6554 3C030004 */ lui $v1, 4
/* E262B8 802B6558 8E220004 */ lw $v0, 4($s1)
/* E262BC 802B655C 00431024 */ and $v0, $v0, $v1
/* E262C0 802B6560 1440000D */ bnez $v0, .L802B6598
/* E262C4 802B6564 24020001 */ addiu $v0, $zero, 1
/* E262C8 802B6568 3C028016 */ lui $v0, %hi(gCollisionStatus)
/* E262CC 802B656C 8442A550 */ lh $v0, %lo(gCollisionStatus)($v0)
/* E262D0 802B6570 0440000A */ bltz $v0, .L802B659C
/* E262D4 802B6574 00000000 */ nop
/* E262D8 802B6578 92020002 */ lbu $v0, 2($s0)
/* E262DC 802B657C 24420001 */ addiu $v0, $v0, 1
/* E262E0 802B6580 A2020002 */ sb $v0, 2($s0)
/* E262E4 802B6584 00021600 */ sll $v0, $v0, 0x18
/* E262E8 802B6588 00021603 */ sra $v0, $v0, 0x18
/* E262EC 802B658C 2842000A */ slti $v0, $v0, 0xa
/* E262F0 802B6590 14400002 */ bnez $v0, .L802B659C
/* E262F4 802B6594 24020001 */ addiu $v0, $zero, 1
.L802B6598:
/* E262F8 802B6598 A22200B6 */ sb $v0, 0xb6($s1)
.L802B659C:
/* E262FC 802B659C 86240008 */ lh $a0, 8($s1)
/* E26300 802B65A0 8603002E */ lh $v1, 0x2e($s0)
/* E26304 802B65A4 0064102A */ slt $v0, $v1, $a0
/* E26308 802B65A8 5440003F */ bnel $v0, $zero, .L802B66A8
/* E2630C 802B65AC 00831023 */ subu $v0, $a0, $v1
/* E26310 802B65B0 C600001C */ lwc1 $f0, 0x1c($s0)
/* E26314 802B65B4 44801000 */ mtc1 $zero, $f2
/* E26318 802B65B8 00000000 */ nop
/* E2631C 802B65BC 46020032 */ c.eq.s $f0, $f2
/* E26320 802B65C0 00000000 */ nop
/* E26324 802B65C4 45010002 */ bc1t .L802B65D0
/* E26328 802B65C8 46001606 */ mov.s $f24, $f2
/* E2632C 802B65CC C6180024 */ lwc1 $f24, 0x24($s0)
.L802B65D0:
/* E26330 802B65D0 C6000010 */ lwc1 $f0, 0x10($s0)
/* E26334 802B65D4 3C01802B */ lui $at, %hi(D_802B69A0_E26700)
/* E26338 802B65D8 D42269A0 */ ldc1 $f2, %lo(D_802B69A0_E26700)($at)
/* E2633C 802B65DC 46000021 */ cvt.d.s $f0, $f0
/* E26340 802B65E0 46220000 */ add.d $f0, $f0, $f2
/* E26344 802B65E4 3C014110 */ lui $at, 0x4110
/* E26348 802B65E8 44811000 */ mtc1 $at, $f2
/* E2634C 802B65EC 46200020 */ cvt.s.d $f0, $f0
/* E26350 802B65F0 4600103C */ c.lt.s $f2, $f0
/* E26354 802B65F4 00000000 */ nop
/* E26358 802B65F8 45000002 */ bc1f .L802B6604
/* E2635C 802B65FC E6000010 */ swc1 $f0, 0x10($s0)
/* E26360 802B6600 E6020010 */ swc1 $f2, 0x10($s0)
.L802B6604:
/* E26364 802B6604 3C038007 */ lui $v1, %hi(gCurrentCameraID)
/* E26368 802B6608 8C637410 */ lw $v1, %lo(gCurrentCameraID)($v1)
/* E2636C 802B660C C6200080 */ lwc1 $f0, 0x80($s1)
/* E26370 802B6610 00031080 */ sll $v0, $v1, 2
/* E26374 802B6614 00431021 */ addu $v0, $v0, $v1
/* E26378 802B6618 00021080 */ sll $v0, $v0, 2
/* E2637C 802B661C 00431023 */ subu $v0, $v0, $v1
/* E26380 802B6620 000218C0 */ sll $v1, $v0, 3
/* E26384 802B6624 00431021 */ addu $v0, $v0, $v1
/* E26388 802B6628 000210C0 */ sll $v0, $v0, 3
/* E2638C 802B662C 3C01800B */ lui $at, %hi(D_800B1DEC)
/* E26390 802B6630 00220821 */ addu $at, $at, $v0
/* E26394 802B6634 C42C1DEC */ lwc1 $f12, %lo(D_800B1DEC)($at)
/* E26398 802B6638 0C00A6C9 */ jal clamp_angle
/* E2639C 802B663C 460C0301 */ sub.s $f12, $f0, $f12
/* E263A0 802B6640 3C0140C9 */ lui $at, 0x40c9
/* E263A4 802B6644 34210FD0 */ ori $at, $at, 0xfd0
/* E263A8 802B6648 4481A000 */ mtc1 $at, $f20
/* E263AC 802B664C 00000000 */ nop
/* E263B0 802B6650 46140302 */ mul.s $f12, $f0, $f20
/* E263B4 802B6654 00000000 */ nop
/* E263B8 802B6658 3C0143B4 */ lui $at, 0x43b4
/* E263BC 802B665C 4481B000 */ mtc1 $at, $f22
/* E263C0 802B6660 E7A00010 */ swc1 $f0, 0x10($sp)
/* E263C4 802B6664 0C00A85B */ jal sin_rad
/* E263C8 802B6668 46166303 */ div.s $f12, $f12, $f22
/* E263CC 802B666C C7AC0010 */ lwc1 $f12, 0x10($sp)
/* E263D0 802B6670 46146302 */ mul.s $f12, $f12, $f20
/* E263D4 802B6674 00000000 */ nop
/* E263D8 802B6678 C6020010 */ lwc1 $f2, 0x10($s0)
/* E263DC 802B667C 46020002 */ mul.s $f0, $f0, $f2
/* E263E0 802B6680 00000000 */ nop
/* E263E4 802B6684 46166303 */ div.s $f12, $f12, $f22
/* E263E8 802B6688 0C00A874 */ jal cos_rad
/* E263EC 802B668C E6000014 */ swc1 $f0, 0x14($s0)
/* E263F0 802B6690 C6020010 */ lwc1 $f2, 0x10($s0)
/* E263F4 802B6694 46000007 */ neg.s $f0, $f0
/* E263F8 802B6698 46020002 */ mul.s $f0, $f0, $f2
/* E263FC 802B669C 00000000 */ nop
/* E26400 802B66A0 080AD9CE */ j .L802B6738
/* E26404 802B66A4 E6000018 */ swc1 $f0, 0x18($s0)
.L802B66A8:
/* E26408 802B66A8 2442FFFF */ addiu $v0, $v0, -1
/* E2640C 802B66AC C6020028 */ lwc1 $f2, 0x28($s0)
/* E26410 802B66B0 44820000 */ mtc1 $v0, $f0
/* E26414 802B66B4 00000000 */ nop
/* E26418 802B66B8 46800020 */ cvt.s.w $f0, $f0
/* E2641C 802B66BC 46020002 */ mul.s $f0, $f0, $f2
/* E26420 802B66C0 00000000 */ nop
/* E26424 802B66C4 C6020024 */ lwc1 $f2, 0x24($s0)
/* E26428 802B66C8 46001601 */ sub.s $f24, $f2, $f0
/* E2642C 802B66CC 3C01802B */ lui $at, %hi(D_802B69A8_E26708)
/* E26430 802B66D0 D42269A8 */ ldc1 $f2, %lo(D_802B69A8_E26708)($at)
/* E26434 802B66D4 4600C021 */ cvt.d.s $f0, $f24
/* E26438 802B66D8 4622003C */ c.lt.d $f0, $f2
/* E2643C 802B66DC 00000000 */ nop
/* E26440 802B66E0 45000004 */ bc1f .L802B66F4
/* E26444 802B66E4 00000000 */ nop
/* E26448 802B66E8 3C013DCC */ lui $at, 0x3dcc
/* E2644C 802B66EC 3421CCCD */ ori $at, $at, 0xcccd
/* E26450 802B66F0 4481C000 */ mtc1 $at, $f24
.L802B66F4:
/* E26454 802B66F4 C600001C */ lwc1 $f0, 0x1c($s0)
/* E26458 802B66F8 44802000 */ mtc1 $zero, $f4
/* E2645C 802B66FC 00000000 */ nop
/* E26460 802B6700 46040032 */ c.eq.s $f0, $f4
/* E26464 802B6704 00000000 */ nop
/* E26468 802B6708 45030001 */ bc1tl .L802B6710
/* E2646C 802B670C 46002606 */ mov.s $f24, $f4
.L802B6710:
/* E26470 802B6710 C6000010 */ lwc1 $f0, 0x10($s0)
/* E26474 802B6714 3C013F80 */ lui $at, 0x3f80
/* E26478 802B6718 44811000 */ mtc1 $at, $f2
/* E2647C 802B671C 00000000 */ nop
/* E26480 802B6720 46020001 */ sub.s $f0, $f0, $f2
/* E26484 802B6724 4604003C */ c.lt.s $f0, $f4
/* E26488 802B6728 00000000 */ nop
/* E2648C 802B672C 45000002 */ bc1f .L802B6738
/* E26490 802B6730 E6000010 */ swc1 $f0, 0x10($s0)
/* E26494 802B6734 E6040010 */ swc1 $f4, 0x10($s0)
.L802B6738:
/* E26498 802B6738 96220008 */ lhu $v0, 8($s1)
/* E2649C 802B673C 822300B5 */ lb $v1, 0xb5($s1)
/* E264A0 802B6740 24420001 */ addiu $v0, $v0, 1
/* E264A4 802B6744 10600007 */ beqz $v1, .L802B6764
/* E264A8 802B6748 A6220008 */ sh $v0, 8($s1)
/* E264AC 802B674C 04600030 */ bltz $v1, .L802B6810
/* E264B0 802B6750 28620003 */ slti $v0, $v1, 3
/* E264B4 802B6754 1040002E */ beqz $v0, .L802B6810
/* E264B8 802B6758 00000000 */ nop
/* E264BC 802B675C 080ADA00 */ j .L802B6800
/* E264C0 802B6760 00000000 */ nop
.L802B6764:
/* E264C4 802B6764 27A40010 */ addiu $a0, $sp, 0x10
/* E264C8 802B6768 0C0388C1 */ jal input_to_move_vector
/* E264CC 802B676C 27A50014 */ addiu $a1, $sp, 0x14
/* E264D0 802B6770 0C039454 */ jal func_800E5150
/* E264D4 802B6774 00000000 */ nop
/* E264D8 802B6778 0C039858 */ jal check_input_jump
/* E264DC 802B677C 00000000 */ nop
/* E264E0 802B6780 10400010 */ beqz $v0, .L802B67C4
/* E264E4 802B6784 00000000 */ nop
/* E264E8 802B6788 C7A20014 */ lwc1 $f2, 0x14($sp)
/* E264EC 802B678C 44800000 */ mtc1 $zero, $f0
/* E264F0 802B6790 00000000 */ nop
/* E264F4 802B6794 46001032 */ c.eq.s $f2, $f0
/* E264F8 802B6798 00000000 */ nop
/* E264FC 802B679C 45000007 */ bc1f .L802B67BC
/* E26500 802B67A0 00000000 */ nop
/* E26504 802B67A4 C6220080 */ lwc1 $f2, 0x80($s1)
/* E26508 802B67A8 C7A00010 */ lwc1 $f0, 0x10($sp)
/* E2650C 802B67AC 46001032 */ c.eq.s $f2, $f0
/* E26510 802B67B0 00000000 */ nop
/* E26514 802B67B4 45010003 */ bc1t .L802B67C4
/* E26518 802B67B8 00000000 */ nop
.L802B67BC:
/* E2651C 802B67BC C7A00010 */ lwc1 $f0, 0x10($sp)
/* E26520 802B67C0 E6200080 */ swc1 $f0, 0x80($s1)
.L802B67C4:
/* E26524 802B67C4 C7A00014 */ lwc1 $f0, 0x14($sp)
/* E26528 802B67C8 44801000 */ mtc1 $zero, $f2
/* E2652C 802B67CC 00000000 */ nop
/* E26530 802B67D0 46020032 */ c.eq.s $f0, $f2
/* E26534 802B67D4 00000000 */ nop
/* E26538 802B67D8 45010006 */ bc1t .L802B67F4
/* E2653C 802B67DC 26220054 */ addiu $v0, $s1, 0x54
/* E26540 802B67E0 C620005C */ lwc1 $f0, 0x5c($s1)
/* E26544 802B67E4 46180002 */ mul.s $f0, $f0, $f24
/* E26548 802B67E8 00000000 */ nop
/* E2654C 802B67EC 080ADA04 */ j .L802B6810
/* E26550 802B67F0 E4400000 */ swc1 $f0, ($v0)
.L802B67F4:
/* E26554 802B67F4 46001006 */ mov.s $f0, $f2
/* E26558 802B67F8 080ADA04 */ j .L802B6810
/* E2655C 802B67FC E4400000 */ swc1 $f0, ($v0)
.L802B6800:
/* E26560 802B6800 C620005C */ lwc1 $f0, 0x5c($s1)
/* E26564 802B6804 46180002 */ mul.s $f0, $f0, $f24
/* E26568 802B6808 00000000 */ nop
/* E2656C 802B680C E6200054 */ swc1 $f0, 0x54($s1)
.L802B6810:
/* E26570 802B6810 822200B6 */ lb $v0, 0xb6($s1)
/* E26574 802B6814 14400010 */ bnez $v0, .L802B6858
/* E26578 802B6818 00000000 */ nop
/* E2657C 802B681C 92020003 */ lbu $v0, 3($s0)
/* E26580 802B6820 2442FFFF */ addiu $v0, $v0, -1
/* E26584 802B6824 A2020003 */ sb $v0, 3($s0)
/* E26588 802B6828 00021600 */ sll $v0, $v0, 0x18
/* E2658C 802B682C 18400009 */ blez $v0, .L802B6854
/* E26590 802B6830 24020001 */ addiu $v0, $zero, 1
/* E26594 802B6834 86220008 */ lh $v0, 8($s1)
/* E26598 802B6838 28420002 */ slti $v0, $v0, 2
/* E2659C 802B683C 1440004B */ bnez $v0, .L802B696C
/* E265A0 802B6840 00000000 */ nop
/* E265A4 802B6844 C62000A8 */ lwc1 $f0, 0xa8($s1)
/* E265A8 802B6848 C62C00D4 */ lwc1 $f12, 0xd4($s1)
/* E265AC 802B684C 080ADA58 */ j .L802B6960
/* E265B0 802B6850 460C0300 */ add.s $f12, $f0, $f12
.L802B6854:
/* E265B4 802B6854 A22200B6 */ sb $v0, 0xb6($s1)
.L802B6858:
/* E265B8 802B6858 822300B6 */ lb $v1, 0xb6($s1)
/* E265BC 802B685C 24020001 */ addiu $v0, $zero, 1
/* E265C0 802B6860 14620042 */ bne $v1, $v0, .L802B696C
/* E265C4 802B6864 00000000 */ nop
/* E265C8 802B6868 C62200A8 */ lwc1 $f2, 0xa8($s1)
/* E265CC 802B686C C62000D4 */ lwc1 $f0, 0xd4($s1)
/* E265D0 802B6870 82020001 */ lb $v0, 1($s0)
/* E265D4 802B6874 46001000 */ add.s $f0, $f2, $f0
/* E265D8 802B6878 E7A20010 */ swc1 $f2, 0x10($sp)
/* E265DC 802B687C 10400008 */ beqz $v0, .L802B68A0
/* E265E0 802B6880 E62000A8 */ swc1 $f0, 0xa8($s1)
/* E265E4 802B6884 3C02FFFD */ lui $v0, 0xfffd
/* E265E8 802B6888 3442FFFF */ ori $v0, $v0, 0xffff
/* E265EC 802B688C 3C040001 */ lui $a0, 1
/* E265F0 802B6890 34840002 */ ori $a0, $a0, 2
/* E265F4 802B6894 8E230000 */ lw $v1, ($s1)
/* E265F8 802B6898 080ADA52 */ j .L802B6948
/* E265FC 802B689C 24050002 */ addiu $a1, $zero, 2
.L802B68A0:
/* E26600 802B68A0 46001106 */ mov.s $f4, $f2
/* E26604 802B68A4 4600203C */ c.lt.s $f4, $f0
/* E26608 802B68A8 00000000 */ nop
/* E2660C 802B68AC 45000013 */ bc1f .L802B68FC
/* E26610 802B68B0 00000000 */ nop
/* E26614 802B68B4 3C014334 */ lui $at, 0x4334
/* E26618 802B68B8 44811000 */ mtc1 $at, $f2
/* E2661C 802B68BC 00000000 */ nop
/* E26620 802B68C0 4600103E */ c.le.s $f2, $f0
/* E26624 802B68C4 00000000 */ nop
/* E26628 802B68C8 45000024 */ bc1f .L802B695C
/* E2662C 802B68CC 00000000 */ nop
/* E26630 802B68D0 4602203C */ c.lt.s $f4, $f2
/* E26634 802B68D4 00000000 */ nop
/* E26638 802B68D8 45000020 */ bc1f .L802B695C
/* E2663C 802B68DC 3C02FFFD */ lui $v0, 0xfffd
/* E26640 802B68E0 3442FFFF */ ori $v0, $v0, 0xffff
/* E26644 802B68E4 3C040001 */ lui $a0, 1
/* E26648 802B68E8 34840002 */ ori $a0, $a0, 2
/* E2664C 802B68EC 8E230000 */ lw $v1, ($s1)
/* E26650 802B68F0 24050002 */ addiu $a1, $zero, 2
/* E26654 802B68F4 080ADA52 */ j .L802B6948
/* E26658 802B68F8 E62200A8 */ swc1 $f2, 0xa8($s1)
.L802B68FC:
/* E2665C 802B68FC 44802000 */ mtc1 $zero, $f4
/* E26660 802B6900 00000000 */ nop
/* E26664 802B6904 4604003E */ c.le.s $f0, $f4
/* E26668 802B6908 00000000 */ nop
/* E2666C 802B690C 45000013 */ bc1f .L802B695C
/* E26670 802B6910 00000000 */ nop
/* E26674 802B6914 3C0142B4 */ lui $at, 0x42b4
/* E26678 802B6918 44810000 */ mtc1 $at, $f0
/* E2667C 802B691C 00000000 */ nop
/* E26680 802B6920 4600103C */ c.lt.s $f2, $f0
/* E26684 802B6924 00000000 */ nop
/* E26688 802B6928 4500000C */ bc1f .L802B695C
/* E2668C 802B692C 3C02FFFD */ lui $v0, 0xfffd
/* E26690 802B6930 3442FFFF */ ori $v0, $v0, 0xffff
/* E26694 802B6934 3C040001 */ lui $a0, 1
/* E26698 802B6938 34840002 */ ori $a0, $a0, 2
/* E2669C 802B693C 8E230000 */ lw $v1, ($s1)
/* E266A0 802B6940 24050002 */ addiu $a1, $zero, 2
/* E266A4 802B6944 E62400A8 */ swc1 $f4, 0xa8($s1)
.L802B6948:
/* E266A8 802B6948 A6250008 */ sh $a1, 8($s1)
/* E266AC 802B694C A22500B6 */ sb $a1, 0xb6($s1)
/* E266B0 802B6950 00621824 */ and $v1, $v1, $v0
/* E266B4 802B6954 0C037FBF */ jal func_800DFEFC
/* E266B8 802B6958 AE230000 */ sw $v1, ($s1)
.L802B695C:
/* E266BC 802B695C C62C00A8 */ lwc1 $f12, 0xa8($s1)
.L802B6960:
/* E266C0 802B6960 0C00A6C9 */ jal clamp_angle
/* E266C4 802B6964 00000000 */ nop
/* E266C8 802B6968 E62000A8 */ swc1 $f0, 0xa8($s1)
.L802B696C:
/* E266CC 802B696C 8FBF0030 */ lw $ra, 0x30($sp)
/* E266D0 802B6970 8FB5002C */ lw $s5, 0x2c($sp)
/* E266D4 802B6974 8FB40028 */ lw $s4, 0x28($sp)
/* E266D8 802B6978 8FB30024 */ lw $s3, 0x24($sp)
/* E266DC 802B697C 8FB20020 */ lw $s2, 0x20($sp)
/* E266E0 802B6980 8FB1001C */ lw $s1, 0x1c($sp)
/* E266E4 802B6984 8FB00018 */ lw $s0, 0x18($sp)
/* E266E8 802B6988 D7B80048 */ ldc1 $f24, 0x48($sp)
/* E266EC 802B698C D7B60040 */ ldc1 $f22, 0x40($sp)
/* E266F0 802B6990 D7B40038 */ ldc1 $f20, 0x38($sp)
/* E266F4 802B6994 03E00008 */ jr $ra
/* E266F8 802B6998 27BD0050 */ addiu $sp, $sp, 0x50
/* E266FC 802B699C 00000000 */ nop