papermario/asm/nonmatchings/code_E236E0/func_802B6000_E236E0.s
2021-01-13 00:42:27 +09:00

184 lines
8.8 KiB
ArmAsm

.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
glabel func_802B6000_E236E0
/* E236E0 802B6000 27BDFFD0 */ addiu $sp, $sp, -0x30
/* E236E4 802B6004 AFB30024 */ sw $s3, 0x24($sp)
/* E236E8 802B6008 AFB00018 */ sw $s0, 0x18($sp)
/* E236EC 802B600C 3C108011 */ lui $s0, %hi(gPlayerStatus)
/* E236F0 802B6010 2610EFC8 */ addiu $s0, $s0, %lo(gPlayerStatus)
/* E236F4 802B6014 AFBF002C */ sw $ra, 0x2c($sp)
/* E236F8 802B6018 AFB40028 */ sw $s4, 0x28($sp)
/* E236FC 802B601C AFB20020 */ sw $s2, 0x20($sp)
/* E23700 802B6020 AFB1001C */ sw $s1, 0x1c($sp)
/* E23704 802B6024 8E050004 */ lw $a1, 4($s0)
/* E23708 802B6028 3C148011 */ lui $s4, %hi(gPlayerData)
/* E2370C 802B602C 2694F290 */ addiu $s4, $s4, %lo(gPlayerData)
/* E23710 802B6030 30A21000 */ andi $v0, $a1, 0x1000
/* E23714 802B6034 10400005 */ beqz $v0, .L802B604C
/* E23718 802B6038 0000982D */ daddu $s3, $zero, $zero
/* E2371C 802B603C 0C0AD97A */ jal func_802B65E8_E23CC8
/* E23720 802B6040 00000000 */ nop
/* E23724 802B6044 080AD89A */ j .L802B6268
/* E23728 802B6048 00000000 */ nop
.L802B604C:
/* E2372C 802B604C 8E030000 */ lw $v1, ($s0)
/* E23730 802B6050 04610016 */ bgez $v1, .L802B60AC
/* E23734 802B6054 3C027F77 */ lui $v0, 0x7f77
/* E23738 802B6058 3442FFFF */ ori $v0, $v0, 0xffff
/* E2373C 802B605C 24130001 */ addiu $s3, $zero, 1
/* E23740 802B6060 00621024 */ and $v0, $v1, $v0
/* E23744 802B6064 AE020000 */ sw $v0, ($s0)
/* E23748 802B6068 30624000 */ andi $v0, $v1, 0x4000
/* E2374C 802B606C 14400003 */ bnez $v0, .L802B607C
/* E23750 802B6070 AE000060 */ sw $zero, 0x60($s0)
/* E23754 802B6074 C6000058 */ lwc1 $f0, 0x58($s0)
/* E23758 802B6078 E6000054 */ swc1 $f0, 0x54($s0)
.L802B607C:
/* E2375C 802B607C 30A24000 */ andi $v0, $a1, 0x4000
/* E23760 802B6080 10400003 */ beqz $v0, .L802B6090
/* E23764 802B6084 3C040009 */ lui $a0, 9
/* E23768 802B6088 080AD829 */ j .L802B60A4
/* E2376C 802B608C 34840003 */ ori $a0, $a0, 3
.L802B6090:
/* E23770 802B6090 30A20001 */ andi $v0, $a1, 1
/* E23774 802B6094 14400003 */ bnez $v0, .L802B60A4
/* E23778 802B6098 3C040006 */ lui $a0, 6
/* E2377C 802B609C 3C040001 */ lui $a0, 1
/* E23780 802B60A0 34840004 */ ori $a0, $a0, 4
.L802B60A4:
/* E23784 802B60A4 0C037FBF */ jal func_800DFEFC
/* E23788 802B60A8 00000000 */ nop
.L802B60AC:
/* E2378C 802B60AC 8E020000 */ lw $v0, ($s0)
/* E23790 802B60B0 30424000 */ andi $v0, $v0, 0x4000
/* E23794 802B60B4 10400006 */ beqz $v0, .L802B60D0
/* E23798 802B60B8 24040008 */ addiu $a0, $zero, 8
/* E2379C 802B60BC C60000A0 */ lwc1 $f0, 0xa0($s0)
/* E237A0 802B60C0 0C039426 */ jal func_800E5098
/* E237A4 802B60C4 E6000080 */ swc1 $f0, 0x80($s0)
/* E237A8 802B60C8 080AD89A */ j .L802B6268
/* E237AC 802B60CC 00000000 */ nop
.L802B60D0:
/* E237B0 802B60D0 27B20010 */ addiu $s2, $sp, 0x10
/* E237B4 802B60D4 0240202D */ daddu $a0, $s2, $zero
/* E237B8 802B60D8 27B10014 */ addiu $s1, $sp, 0x14
/* E237BC 802B60DC 0C0388C1 */ jal input_to_move_vector
/* E237C0 802B60E0 0220282D */ daddu $a1, $s1, $zero
/* E237C4 802B60E4 0C039454 */ jal func_800E5150
/* E237C8 802B60E8 00000000 */ nop
/* E237CC 802B60EC 0C039858 */ jal check_input_jump
/* E237D0 802B60F0 00000000 */ nop
/* E237D4 802B60F4 1440005C */ bnez $v0, .L802B6268
/* E237D8 802B60F8 00000000 */ nop
/* E237DC 802B60FC 16600006 */ bnez $s3, .L802B6118
/* E237E0 802B6100 0240202D */ daddu $a0, $s2, $zero
/* E237E4 802B6104 0C039838 */ jal check_input_hammer
/* E237E8 802B6108 00000000 */ nop
/* E237EC 802B610C 14400056 */ bnez $v0, .L802B6268
/* E237F0 802B6110 00000000 */ nop
/* E237F4 802B6114 0240202D */ daddu $a0, $s2, $zero
.L802B6118:
/* E237F8 802B6118 0C0388C1 */ jal input_to_move_vector
/* E237FC 802B611C 0220282D */ daddu $a1, $s1, $zero
/* E23800 802B6120 C7A40014 */ lwc1 $f4, 0x14($sp)
/* E23804 802B6124 44800000 */ mtc1 $zero, $f0
/* E23808 802B6128 00000000 */ nop
/* E2380C 802B612C 46002032 */ c.eq.s $f4, $f0
/* E23810 802B6130 00000000 */ nop
/* E23814 802B6134 45000005 */ bc1f .L802B614C
/* E23818 802B6138 00000000 */ nop
/* E2381C 802B613C 0C039769 */ jal set_action_state
/* E23820 802B6140 0000202D */ daddu $a0, $zero, $zero
/* E23824 802B6144 080AD89A */ j .L802B6268
/* E23828 802B6148 00000000 */ nop
.L802B614C:
/* E2382C 802B614C C7A60010 */ lwc1 $f6, 0x10($sp)
/* E23830 802B6150 3C01800F */ lui $at, %hi(D_800F7B40)
/* E23834 802B6154 C4207B40 */ lwc1 $f0, %lo(D_800F7B40)($at)
/* E23838 802B6158 46800020 */ cvt.s.w $f0, $f0
/* E2383C 802B615C 46060001 */ sub.s $f0, $f0, $f6
/* E23840 802B6160 3C0142B4 */ lui $at, 0x42b4
/* E23844 802B6164 44811000 */ mtc1 $at, $f2
/* E23848 802B6168 46000005 */ abs.s $f0, $f0
/* E2384C 802B616C 4602003E */ c.le.s $f0, $f2
/* E23850 802B6170 00000000 */ nop
/* E23854 802B6174 4500001C */ bc1f .L802B61E8
/* E23858 802B6178 00000000 */ nop
/* E2385C 802B617C 3C01800F */ lui $at, %hi(D_800F7B44)
/* E23860 802B6180 C4207B44 */ lwc1 $f0, %lo(D_800F7B44)($at)
/* E23864 802B6184 46800020 */ cvt.s.w $f0, $f0
/* E23868 802B6188 46002001 */ sub.s $f0, $f4, $f0
/* E2386C 802B618C 4600020D */ trunc.w.s $f8, $f0
/* E23870 802B6190 44024000 */ mfc1 $v0, $f8
/* E23874 802B6194 00000000 */ nop
/* E23878 802B6198 04420001 */ bltzl $v0, .L802B61A0
/* E2387C 802B619C 00021023 */ negu $v0, $v0
.L802B61A0:
/* E23880 802B61A0 28420014 */ slti $v0, $v0, 0x14
/* E23884 802B61A4 10400010 */ beqz $v0, .L802B61E8
/* E23888 802B61A8 00000000 */ nop
/* E2388C 802B61AC 8E020004 */ lw $v0, 4($s0)
/* E23890 802B61B0 0440000A */ bltz $v0, .L802B61DC
/* E23894 802B61B4 3C037FFF */ lui $v1, 0x7fff
/* E23898 802B61B8 3C0141A0 */ lui $at, 0x41a0
/* E2389C 802B61BC 44810000 */ mtc1 $at, $f0
/* E238A0 802B61C0 00000000 */ nop
/* E238A4 802B61C4 4604003E */ c.le.s $f0, $f4
/* E238A8 802B61C8 00000000 */ nop
/* E238AC 802B61CC 45030002 */ bc1tl .L802B61D8
/* E238B0 802B61D0 E6060080 */ swc1 $f6, 0x80($s0)
/* E238B4 802B61D4 3C037FFF */ lui $v1, 0x7fff
.L802B61D8:
/* E238B8 802B61D8 8E020004 */ lw $v0, 4($s0)
.L802B61DC:
/* E238BC 802B61DC 3463FFFF */ ori $v1, $v1, 0xffff
/* E238C0 802B61E0 080AD881 */ j .L802B6204
/* E238C4 802B61E4 00431024 */ and $v0, $v0, $v1
.L802B61E8:
/* E238C8 802B61E8 8E020004 */ lw $v0, 4($s0)
/* E238CC 802B61EC 04410004 */ bgez $v0, .L802B6200
/* E238D0 802B61F0 3C038000 */ lui $v1, 0x8000
/* E238D4 802B61F4 C7A00010 */ lwc1 $f0, 0x10($sp)
/* E238D8 802B61F8 080AD882 */ j .L802B6208
/* E238DC 802B61FC E6000080 */ swc1 $f0, 0x80($s0)
.L802B6200:
/* E238E0 802B6200 00431025 */ or $v0, $v0, $v1
.L802B6204:
/* E238E4 802B6204 AE020004 */ sw $v0, 4($s0)
.L802B6208:
/* E238E8 802B6208 0C03A752 */ jal is_ability_active
/* E238EC 802B620C 2404000B */ addiu $a0, $zero, 0xb
/* E238F0 802B6210 14400010 */ bnez $v0, .L802B6254
/* E238F4 802B6214 00000000 */ nop
/* E238F8 802B6218 8E0200E8 */ lw $v0, 0xe8($s0)
/* E238FC 802B621C 00420018 */ mult $v0, $v0
/* E23900 802B6220 00001812 */ mflo $v1
/* E23904 802B6224 8E0200EC */ lw $v0, 0xec($s0)
/* E23908 802B6228 00000000 */ nop
/* E2390C 802B622C 00420018 */ mult $v0, $v0
/* E23910 802B6230 00003812 */ mflo $a3
/* E23914 802B6234 00671021 */ addu $v0, $v1, $a3
/* E23918 802B6238 28420BD2 */ slti $v0, $v0, 0xbd2
/* E2391C 802B623C 14400005 */ bnez $v0, .L802B6254
/* E23920 802B6240 00000000 */ nop
/* E23924 802B6244 0C039769 */ jal set_action_state
/* E23928 802B6248 24040002 */ addiu $a0, $zero, 2
/* E2392C 802B624C 080AD89A */ j .L802B6268
/* E23930 802B6250 00000000 */ nop
.L802B6254:
/* E23934 802B6254 0C039426 */ jal func_800E5098
/* E23938 802B6258 24040008 */ addiu $a0, $zero, 8
/* E2393C 802B625C 8E8202AC */ lw $v0, 0x2ac($s4)
/* E23940 802B6260 24420001 */ addiu $v0, $v0, 1
/* E23944 802B6264 AE8202AC */ sw $v0, 0x2ac($s4)
.L802B6268:
/* E23948 802B6268 8FBF002C */ lw $ra, 0x2c($sp)
/* E2394C 802B626C 8FB40028 */ lw $s4, 0x28($sp)
/* E23950 802B6270 8FB30024 */ lw $s3, 0x24($sp)
/* E23954 802B6274 8FB20020 */ lw $s2, 0x20($sp)
/* E23958 802B6278 8FB1001C */ lw $s1, 0x1c($sp)
/* E2395C 802B627C 8FB00018 */ lw $s0, 0x18($sp)
/* E23960 802B6280 03E00008 */ jr $ra
/* E23964 802B6284 27BD0030 */ addiu $sp, $sp, 0x30