papermario/asm/nonmatchings/code_E24920/func_802B644C_E24D6C.s
2021-01-11 01:38:51 +09:00

99 lines
4.9 KiB
ArmAsm

.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
glabel func_802B644C_E24D6C
/* E24D6C 802B644C 27BDFFD8 */ addiu $sp, $sp, -0x28
/* E24D70 802B6450 3C058016 */ lui $a1, %hi(gCollisionStatus)
/* E24D74 802B6454 24A5A550 */ addiu $a1, $a1, %lo(gCollisionStatus)
/* E24D78 802B6458 AFB00018 */ sw $s0, 0x18($sp)
/* E24D7C 802B645C 3C108011 */ lui $s0, %hi(gPlayerStatus)
/* E24D80 802B6460 2610EFC8 */ addiu $s0, $s0, %lo(gPlayerStatus)
/* E24D84 802B6464 AFBF0020 */ sw $ra, 0x20($sp)
/* E24D88 802B6468 AFB1001C */ sw $s1, 0x1c($sp)
/* E24D8C 802B646C 8E020000 */ lw $v0, ($s0)
/* E24D90 802B6470 04410016 */ bgez $v0, .L802B64CC
/* E24D94 802B6474 00A0882D */ daddu $s1, $a1, $zero
/* E24D98 802B6478 3C037FFF */ lui $v1, 0x7fff
/* E24D9C 802B647C 3463FFFF */ ori $v1, $v1, 0xffff
/* E24DA0 802B6480 00431824 */ and $v1, $v0, $v1
/* E24DA4 802B6484 C6000028 */ lwc1 $f0, 0x28($s0)
/* E24DA8 802B6488 C6020030 */ lwc1 $f2, 0x30($s0)
/* E24DAC 802B648C 2404FFF1 */ addiu $a0, $zero, -0xf
/* E24DB0 802B6490 AE030000 */ sw $v1, ($s0)
/* E24DB4 802B6494 A20000B6 */ sb $zero, 0xb6($s0)
/* E24DB8 802B6498 A60000C0 */ sh $zero, 0xc0($s0)
/* E24DBC 802B649C A60000C2 */ sh $zero, 0xc2($s0)
/* E24DC0 802B64A0 94A20002 */ lhu $v0, 2($a1)
/* E24DC4 802B64A4 00641824 */ and $v1, $v1, $a0
/* E24DC8 802B64A8 AE030000 */ sw $v1, ($s0)
/* E24DCC 802B64AC 30424000 */ andi $v0, $v0, 0x4000
/* E24DD0 802B64B0 E6000044 */ swc1 $f0, 0x44($s0)
/* E24DD4 802B64B4 14400003 */ bnez $v0, .L802B64C4
/* E24DD8 802B64B8 E6020048 */ swc1 $f2, 0x48($s0)
/* E24DDC 802B64BC 0C03954C */ jal func_800E5530
/* E24DE0 802B64C0 00000000 */ nop
.L802B64C4:
/* E24DE4 802B64C4 2402FFFF */ addiu $v0, $zero, -1
/* E24DE8 802B64C8 A6220004 */ sh $v0, 4($s1)
.L802B64CC:
/* E24DEC 802B64CC C6020054 */ lwc1 $f2, 0x54($s0)
/* E24DF0 802B64D0 3C013F19 */ lui $at, 0x3f19
/* E24DF4 802B64D4 3421999A */ ori $at, $at, 0x999a
/* E24DF8 802B64D8 44810000 */ mtc1 $at, $f0
/* E24DFC 802B64DC 27A40010 */ addiu $a0, $sp, 0x10
/* E24E00 802B64E0 46001082 */ mul.s $f2, $f2, $f0
/* E24E04 802B64E4 00000000 */ nop
/* E24E08 802B64E8 920200B6 */ lbu $v0, 0xb6($s0)
/* E24E0C 802B64EC 27A50014 */ addiu $a1, $sp, 0x14
/* E24E10 802B64F0 24420001 */ addiu $v0, $v0, 1
/* E24E14 802B64F4 A20200B6 */ sb $v0, 0xb6($s0)
/* E24E18 802B64F8 0C0388C1 */ jal input_to_move_vector
/* E24E1C 802B64FC E6020054 */ swc1 $f2, 0x54($s0)
/* E24E20 802B6500 C7A20014 */ lwc1 $f2, 0x14($sp)
/* E24E24 802B6504 44800000 */ mtc1 $zero, $f0
/* E24E28 802B6508 00000000 */ nop
/* E24E2C 802B650C 46001032 */ c.eq.s $f2, $f0
/* E24E30 802B6510 00000000 */ nop
/* E24E34 802B6514 45010003 */ bc1t .L802B6524
/* E24E38 802B6518 00000000 */ nop
/* E24E3C 802B651C C7A00010 */ lwc1 $f0, 0x10($sp)
/* E24E40 802B6520 E6000080 */ swc1 $f0, 0x80($s0)
.L802B6524:
/* E24E44 802B6524 8E0200E8 */ lw $v0, 0xe8($s0)
/* E24E48 802B6528 00420018 */ mult $v0, $v0
/* E24E4C 802B652C 00001812 */ mflo $v1
/* E24E50 802B6530 8E0200EC */ lw $v0, 0xec($s0)
/* E24E54 802B6534 00000000 */ nop
/* E24E58 802B6538 00420018 */ mult $v0, $v0
/* E24E5C 802B653C 00003812 */ mflo $a3
/* E24E60 802B6540 00671021 */ addu $v0, $v1, $a3
/* E24E64 802B6544 44826000 */ mtc1 $v0, $f12
/* E24E68 802B6548 00000000 */ nop
/* E24E6C 802B654C 46806320 */ cvt.s.w $f12, $f12
/* E24E70 802B6550 46006084 */ sqrt.s $f2, $f12
/* E24E74 802B6554 46021032 */ c.eq.s $f2, $f2
/* E24E78 802B6558 00000000 */ nop
/* E24E7C 802B655C 45010004 */ bc1t .L802B6570
/* E24E80 802B6560 00000000 */ nop
/* E24E84 802B6564 0C0187BC */ jal sqrtf
/* E24E88 802B6568 00000000 */ nop
/* E24E8C 802B656C 46000086 */ mov.s $f2, $f0
.L802B6570:
/* E24E90 802B6570 3C01425C */ lui $at, 0x425c
/* E24E94 802B6574 44810000 */ mtc1 $at, $f0
/* E24E98 802B6578 00000000 */ nop
/* E24E9C 802B657C 4602003C */ c.lt.s $f0, $f2
/* E24EA0 802B6580 00000000 */ nop
/* E24EA4 802B6584 45000002 */ bc1f .L802B6590
/* E24EA8 802B6588 24040001 */ addiu $a0, $zero, 1
/* E24EAC 802B658C 24040002 */ addiu $a0, $zero, 2
.L802B6590:
/* E24EB0 802B6590 0C039769 */ jal set_action_state
/* E24EB4 802B6594 00000000 */ nop
/* E24EB8 802B6598 8FBF0020 */ lw $ra, 0x20($sp)
/* E24EBC 802B659C 8FB1001C */ lw $s1, 0x1c($sp)
/* E24EC0 802B65A0 8FB00018 */ lw $s0, 0x18($sp)
/* E24EC4 802B65A4 03E00008 */ jr $ra
/* E24EC8 802B65A8 27BD0028 */ addiu $sp, $sp, 0x28
/* E24ECC 802B65AC 00000000 */ nop