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

129 lines
6.1 KiB
ArmAsm
Generated

.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
glabel func_802B6738_E23E18
/* E23E18 802B6738 27BDFFE0 */ addiu $sp, $sp, -0x20
/* E23E1C 802B673C AFB00018 */ sw $s0, 0x18($sp)
/* E23E20 802B6740 3C108011 */ lui $s0, %hi(gPlayerStatus)
/* E23E24 802B6744 2610EFC8 */ addiu $s0, $s0, %lo(gPlayerStatus)
/* E23E28 802B6748 AFBF001C */ sw $ra, 0x1c($sp)
/* E23E2C 802B674C 8E030000 */ lw $v1, ($s0)
/* E23E30 802B6750 0461002E */ bgez $v1, .L802B680C
/* E23E34 802B6754 3C027FFF */ lui $v0, 0x7fff
/* E23E38 802B6758 3442FFFF */ ori $v0, $v0, 0xffff
/* E23E3C 802B675C 00621024 */ and $v0, $v1, $v0
/* E23E40 802B6760 AE020000 */ sw $v0, ($s0)
/* E23E44 802B6764 30624000 */ andi $v0, $v1, 0x4000
/* E23E48 802B6768 14400003 */ bnez $v0, .L802B6778
/* E23E4C 802B676C AE000060 */ sw $zero, 0x60($s0)
/* E23E50 802B6770 C600005C */ lwc1 $f0, 0x5c($s0)
/* E23E54 802B6774 E6000054 */ swc1 $f0, 0x54($s0)
.L802B6778:
/* E23E58 802B6778 8E020004 */ lw $v0, 4($s0)
/* E23E5C 802B677C 30422000 */ andi $v0, $v0, 0x2000
/* E23E60 802B6780 14400019 */ bnez $v0, .L802B67E8
/* E23E64 802B6784 00000000 */ nop
/* E23E68 802B6788 3C038007 */ lui $v1, %hi(gGameStatusPtr)
/* E23E6C 802B678C 8C63419C */ lw $v1, %lo(gGameStatusPtr)($v1)
/* E23E70 802B6790 9062007E */ lbu $v0, 0x7e($v1)
/* E23E74 802B6794 30420010 */ andi $v0, $v0, 0x10
/* E23E78 802B6798 1440000F */ bnez $v0, .L802B67D8
/* E23E7C 802B679C 3C04000D */ lui $a0, 0xd
/* E23E80 802B67A0 90620080 */ lbu $v0, 0x80($v1)
/* E23E84 802B67A4 14400006 */ bnez $v0, .L802B67C0
/* E23E88 802B67A8 00021080 */ sll $v0, $v0, 2
/* E23E8C 802B67AC 3C04000A */ lui $a0, 0xa
/* E23E90 802B67B0 0C037FBF */ jal func_800DFEFC
/* E23E94 802B67B4 34840003 */ ori $a0, $a0, 3
/* E23E98 802B67B8 080ADA03 */ j .L802B680C
/* E23E9C 802B67BC 00000000 */ nop
.L802B67C0:
/* E23EA0 802B67C0 3C04802B */ lui $a0, %hi(D_802B6910)
/* E23EA4 802B67C4 00822021 */ addu $a0, $a0, $v0
/* E23EA8 802B67C8 0C037FBF */ jal func_800DFEFC
/* E23EAC 802B67CC 8C846910 */ lw $a0, %lo(D_802B6910)($a0)
/* E23EB0 802B67D0 080ADA03 */ j .L802B680C
/* E23EB4 802B67D4 00000000 */ nop
.L802B67D8:
/* E23EB8 802B67D8 0C037FBF */ jal func_800DFEFC
/* E23EBC 802B67DC 3484000D */ ori $a0, $a0, 0xd
/* E23EC0 802B67E0 080ADA03 */ j .L802B680C
/* E23EC4 802B67E4 00000000 */ nop
.L802B67E8:
/* E23EC8 802B67E8 8203000C */ lb $v1, 0xc($s0)
/* E23ECC 802B67EC 00031040 */ sll $v0, $v1, 1
/* E23ED0 802B67F0 00431021 */ addu $v0, $v0, $v1
/* E23ED4 802B67F4 000210C0 */ sll $v0, $v0, 3
/* E23ED8 802B67F8 3C04800F */ lui $a0, %hi(D_800F7C24)
/* E23EDC 802B67FC 00822021 */ addu $a0, $a0, $v0
/* E23EE0 802B6800 8C847C24 */ lw $a0, %lo(D_800F7C24)($a0)
/* E23EE4 802B6804 0C0398DB */ jal func_800E636C
/* E23EE8 802B6808 00000000 */ nop
.L802B680C:
/* E23EEC 802B680C 8E020000 */ lw $v0, ($s0)
/* E23EF0 802B6810 30424000 */ andi $v0, $v0, 0x4000
/* E23EF4 802B6814 10400004 */ beqz $v0, .L802B6828
/* E23EF8 802B6818 24040004 */ addiu $a0, $zero, 4
/* E23EFC 802B681C C60000A0 */ lwc1 $f0, 0xa0($s0)
/* E23F00 802B6820 080ADA3B */ j .L802B68EC
/* E23F04 802B6824 E6000080 */ swc1 $f0, 0x80($s0)
.L802B6828:
/* E23F08 802B6828 27A40010 */ addiu $a0, $sp, 0x10
/* E23F0C 802B682C C600005C */ lwc1 $f0, 0x5c($s0)
/* E23F10 802B6830 27A50014 */ addiu $a1, $sp, 0x14
/* E23F14 802B6834 0C0388C1 */ jal input_to_move_vector
/* E23F18 802B6838 E6000054 */ swc1 $f0, 0x54($s0)
/* E23F1C 802B683C 0C039454 */ jal func_800E5150
/* E23F20 802B6840 00000000 */ nop
/* E23F24 802B6844 C7A20014 */ lwc1 $f2, 0x14($sp)
/* E23F28 802B6848 44800000 */ mtc1 $zero, $f0
/* E23F2C 802B684C 00000000 */ nop
/* E23F30 802B6850 46001032 */ c.eq.s $f2, $f0
/* E23F34 802B6854 00000000 */ nop
/* E23F38 802B6858 45000005 */ bc1f .L802B6870
/* E23F3C 802B685C 00000000 */ nop
/* E23F40 802B6860 0C039769 */ jal set_action_state
/* E23F44 802B6864 0000202D */ daddu $a0, $zero, $zero
/* E23F48 802B6868 080ADA3D */ j .L802B68F4
/* E23F4C 802B686C 00000000 */ nop
.L802B6870:
/* E23F50 802B6870 8E0200E8 */ lw $v0, 0xe8($s0)
/* E23F54 802B6874 00420018 */ mult $v0, $v0
/* E23F58 802B6878 00001812 */ mflo $v1
/* E23F5C 802B687C 8E0200EC */ lw $v0, 0xec($s0)
/* E23F60 802B6880 00000000 */ nop
/* E23F64 802B6884 00420018 */ mult $v0, $v0
/* E23F68 802B6888 C7A00010 */ lwc1 $f0, 0x10($sp)
/* E23F6C 802B688C 00001012 */ mflo $v0
/* E23F70 802B6890 00621021 */ addu $v0, $v1, $v0
/* E23F74 802B6894 44826000 */ mtc1 $v0, $f12
/* E23F78 802B6898 00000000 */ nop
/* E23F7C 802B689C 46806320 */ cvt.s.w $f12, $f12
/* E23F80 802B68A0 46006084 */ sqrt.s $f2, $f12
/* E23F84 802B68A4 46021032 */ c.eq.s $f2, $f2
/* E23F88 802B68A8 00000000 */ nop
/* E23F8C 802B68AC 45010004 */ bc1t .L802B68C0
/* E23F90 802B68B0 E6000080 */ swc1 $f0, 0x80($s0)
/* E23F94 802B68B4 0C0187BC */ jal sqrtf
/* E23F98 802B68B8 00000000 */ nop
/* E23F9C 802B68BC 46000086 */ mov.s $f2, $f0
.L802B68C0:
/* E23FA0 802B68C0 3C01425C */ lui $at, 0x425c
/* E23FA4 802B68C4 44810000 */ mtc1 $at, $f0
/* E23FA8 802B68C8 00000000 */ nop
/* E23FAC 802B68CC 4600103C */ c.lt.s $f2, $f0
/* E23FB0 802B68D0 00000000 */ nop
/* E23FB4 802B68D4 45000005 */ bc1f .L802B68EC
/* E23FB8 802B68D8 24040004 */ addiu $a0, $zero, 4
/* E23FBC 802B68DC 0C039769 */ jal set_action_state
/* E23FC0 802B68E0 24040001 */ addiu $a0, $zero, 1
/* E23FC4 802B68E4 080ADA3D */ j .L802B68F4
/* E23FC8 802B68E8 00000000 */ nop
.L802B68EC:
/* E23FCC 802B68EC 0C039426 */ jal func_800E5098
/* E23FD0 802B68F0 00000000 */ nop
.L802B68F4:
/* E23FD4 802B68F4 8FBF001C */ lw $ra, 0x1c($sp)
/* E23FD8 802B68F8 8FB00018 */ lw $s0, 0x18($sp)
/* E23FDC 802B68FC 03E00008 */ jr $ra