papermario/asm/nonmatchings/code_20ec0_len_5040/func_800494C0.s
2020-08-12 22:37:16 -04:00

67 lines
3.0 KiB
ArmAsm

.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
glabel func_800494C0
/* 0248C0 800494C0 27BDFFD8 */ addiu $sp, $sp, -0x28
/* 0248C4 800494C4 AFB1001C */ sw $s1, 0x1c($sp)
/* 0248C8 800494C8 0080882D */ daddu $s1, $a0, $zero
/* 0248CC 800494CC AFB20020 */ sw $s2, 0x20($sp)
/* 0248D0 800494D0 00A0902D */ daddu $s2, $a1, $zero
/* 0248D4 800494D4 AFBF0024 */ sw $ra, 0x24($sp)
/* 0248D8 800494D8 AFB00018 */ sw $s0, 0x18($sp)
/* 0248DC 800494DC 822400A4 */ lb $a0, 0xa4($s1)
/* 0248E0 800494E0 0C00FB3A */ jal get_enemy
/* 0248E4 800494E4 00C0802D */ daddu $s0, $a2, $zero
/* 0248E8 800494E8 3C03FFFF */ lui $v1, 0xffff
/* 0248EC 800494EC 02031824 */ and $v1, $s0, $v1
/* 0248F0 800494F0 34650002 */ ori $a1, $v1, 2
/* 0248F4 800494F4 32100001 */ andi $s0, $s0, 1
/* 0248F8 800494F8 12000003 */ beqz $s0, .L80049508
/* 0248FC 800494FC 0040182D */ daddu $v1, $v0, $zero
/* 024900 80049500 3C020001 */ lui $v0, 1
/* 024904 80049504 00A22825 */ or $a1, $a1, $v0
.L80049508:
/* 024908 80049508 8C620018 */ lw $v0, 0x18($v1)
/* 02490C 8004950C 9442002A */ lhu $v0, 0x2a($v0)
/* 024910 80049510 30420020 */ andi $v0, $v0, 0x20
/* 024914 80049514 10400002 */ beqz $v0, .L80049520
/* 024918 80049518 3C020002 */ lui $v0, 2
/* 02491C 8004951C 00A22825 */ or $a1, $a1, $v0
.L80049520:
/* 024920 80049520 C6200040 */ lwc1 $f0, 0x40($s1)
/* 024924 80049524 E7A00010 */ swc1 $f0, 0x10($sp)
/* 024928 80049528 8E260038 */ lw $a2, 0x38($s1)
/* 02492C 8004952C 8E27003C */ lw $a3, 0x3c($s1)
/* 024930 80049530 0C052757 */ jal play_sound_at_position
/* 024934 80049534 0240202D */ daddu $a0, $s2, $zero
/* 024938 80049538 8FBF0024 */ lw $ra, 0x24($sp)
/* 02493C 8004953C 8FB20020 */ lw $s2, 0x20($sp)
/* 024940 80049540 8FB1001C */ lw $s1, 0x1c($sp)
/* 024944 80049544 8FB00018 */ lw $s0, 0x18($sp)
/* 024948 80049548 03E00008 */ jr $ra
/* 02494C 8004954C 27BD0028 */ addiu $sp, $sp, 0x28
/* 024950 80049550 27BDFFE0 */ addiu $sp, $sp, -0x20
/* 024954 80049554 AFB00010 */ sw $s0, 0x10($sp)
/* 024958 80049558 0080802D */ daddu $s0, $a0, $zero
/* 02495C 8004955C AFBF0018 */ sw $ra, 0x18($sp)
/* 024960 80049560 AFB10014 */ sw $s1, 0x14($sp)
/* 024964 80049564 8E020148 */ lw $v0, 0x148($s0)
/* 024968 80049568 84440008 */ lh $a0, 8($v0)
/* 02496C 8004956C 0C00EABB */ jal get_npc_unsafe
/* 024970 80049570 00A0882D */ daddu $s1, $a1, $zero
/* 024974 80049574 9443008E */ lhu $v1, 0x8e($v0)
/* 024978 80049578 2463FFFF */ addiu $v1, $v1, -1
/* 02497C 8004957C A443008E */ sh $v1, 0x8e($v0)
/* 024980 80049580 00031C00 */ sll $v1, $v1, 0x10
/* 024984 80049584 58600001 */ blezl $v1, .L8004958C
/* 024988 80049588 AE110070 */ sw $s1, 0x70($s0)
.L8004958C:
/* 02498C 8004958C 8FBF0018 */ lw $ra, 0x18($sp)
/* 024990 80049590 8FB10014 */ lw $s1, 0x14($sp)
/* 024994 80049594 8FB00010 */ lw $s0, 0x10($sp)
/* 024998 80049598 03E00008 */ jr $ra
/* 02499C 8004959C 27BD0020 */ addiu $sp, $sp, 0x20