papermario/asm/nonmatchings/code_13870_len_6980/func_8003B1B0.s
Ethan Roseman 51c076bd8e symbols!
2020-09-27 21:13:56 -04:00

114 lines
5.6 KiB
ArmAsm

.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
glabel func_8003B1B0
/* 165B0 8003B1B0 27BDFFD8 */ addiu $sp, $sp, -0x28
/* 165B4 8003B1B4 AFB20018 */ sw $s2, 0x18($sp)
/* 165B8 8003B1B8 0000902D */ daddu $s2, $zero, $zero
/* 165BC 8003B1BC AFB40020 */ sw $s4, 0x20($sp)
/* 165C0 8003B1C0 3C144000 */ lui $s4, 0x4000
/* 165C4 8003B1C4 AFB3001C */ sw $s3, 0x1c($sp)
/* 165C8 8003B1C8 3C130100 */ lui $s3, 0x100
/* 165CC 8003B1CC AFBF0024 */ sw $ra, 0x24($sp)
/* 165D0 8003B1D0 AFB10014 */ sw $s1, 0x14($sp)
/* 165D4 8003B1D4 AFB00010 */ sw $s0, 0x10($sp)
.L8003B1D8:
/* 165D8 8003B1D8 3C03800A */ lui $v1, %hi(gCurrentNpcListPtr)
/* 165DC 8003B1DC 8C630B90 */ lw $v1, %lo(gCurrentNpcListPtr)($v1)
/* 165E0 8003B1E0 00121080 */ sll $v0, $s2, 2
/* 165E4 8003B1E4 00431021 */ addu $v0, $v0, $v1
/* 165E8 8003B1E8 8C510000 */ lw $s1, ($v0)
/* 165EC 8003B1EC 52200049 */ beql $s1, $zero, .L8003B314
/* 165F0 8003B1F0 26520001 */ addiu $s2, $s2, 1
/* 165F4 8003B1F4 8E230000 */ lw $v1, ($s1)
/* 165F8 8003B1F8 50600046 */ beql $v1, $zero, .L8003B314
/* 165FC 8003B1FC 26520001 */ addiu $s2, $s2, 1
/* 16600 8003B200 00741024 */ and $v0, $v1, $s4
/* 16604 8003B204 54400043 */ bnel $v0, $zero, .L8003B314
/* 16608 8003B208 26520001 */ addiu $s2, $s2, 1
/* 1660C 8003B20C 00731024 */ and $v0, $v1, $s3
/* 16610 8003B210 14400010 */ bnez $v0, .L8003B254
/* 16614 8003B214 00741024 */ and $v0, $v1, $s4
/* 16618 8003B218 3C020400 */ lui $v0, 0x400
/* 1661C 8003B21C 00621024 */ and $v0, $v1, $v0
/* 16620 8003B220 14400004 */ bnez $v0, .L8003B234
/* 16624 8003B224 3C048000 */ lui $a0, 0x8000
/* 16628 8003B228 8E240028 */ lw $a0, 0x28($s1)
/* 1662C 8003B22C 0800EC90 */ j .L8003B240
/* 16630 8003B230 8E2500B0 */ lw $a1, 0xb0($s1)
.L8003B234:
/* 16634 8003B234 8E220028 */ lw $v0, 0x28($s1)
/* 16638 8003B238 8E2500B0 */ lw $a1, 0xb0($s1)
/* 1663C 8003B23C 00442025 */ or $a0, $v0, $a0
.L8003B240:
/* 16640 8003B240 0C0B783B */ jal func_802DE0EC
/* 16644 8003B244 00000000 */ nop
/* 16648 8003B248 AE220024 */ sw $v0, 0x24($s1)
/* 1664C 8003B24C 8E230000 */ lw $v1, ($s1)
/* 16650 8003B250 00741024 */ and $v0, $v1, $s4
.L8003B254:
/* 16654 8003B254 5440002F */ bnel $v0, $zero, .L8003B314
/* 16658 8003B258 26520001 */ addiu $s2, $s2, 1
/* 1665C 8003B25C 00731024 */ and $v0, $v1, $s3
/* 16660 8003B260 1440001A */ bnez $v0, .L8003B2CC
/* 16664 8003B264 00000000 */ nop
/* 16668 8003B268 822200B4 */ lb $v0, 0xb4($s1)
/* 1666C 8003B26C 10400017 */ beqz $v0, .L8003B2CC
/* 16670 8003B270 00000000 */ nop
/* 16674 8003B274 0C0B7A90 */ jal func_802DEA40
/* 16678 8003B278 96240028 */ lhu $a0, 0x28($s1)
/* 1667C 8003B27C AE2200C4 */ sw $v0, 0xc4($s1)
/* 16680 8003B280 0040202D */ daddu $a0, $v0, $zero
/* 16684 8003B284 A22000C1 */ sb $zero, 0xc1($s1)
/* 16688 8003B288 8C830000 */ lw $v1, ($a0)
/* 1668C 8003B28C 2402FFFF */ addiu $v0, $zero, -1
/* 16690 8003B290 1062000B */ beq $v1, $v0, .L8003B2C0
/* 16694 8003B294 0080182D */ daddu $v1, $a0, $zero
/* 16698 8003B298 0040202D */ daddu $a0, $v0, $zero
.L8003B29C:
/* 1669C 8003B29C 922200C1 */ lbu $v0, 0xc1($s1)
/* 166A0 8003B2A0 24420001 */ addiu $v0, $v0, 1
/* 166A4 8003B2A4 A22200C1 */ sb $v0, 0xc1($s1)
/* 166A8 8003B2A8 00021600 */ sll $v0, $v0, 0x18
/* 166AC 8003B2AC 00021583 */ sra $v0, $v0, 0x16
/* 166B0 8003B2B0 00431021 */ addu $v0, $v0, $v1
/* 166B4 8003B2B4 8C420000 */ lw $v0, ($v0)
/* 166B8 8003B2B8 1444FFF8 */ bne $v0, $a0, .L8003B29C
/* 166BC 8003B2BC 00000000 */ nop
.L8003B2C0:
/* 166C0 8003B2C0 0C0B7A9B */ jal func_802DEA6C
/* 166C4 8003B2C4 96240028 */ lhu $a0, 0x28($s1)
/* 166C8 8003B2C8 A22200C0 */ sb $v0, 0xc0($s1)
.L8003B2CC:
/* 166CC 8003B2CC 8E230000 */ lw $v1, ($s1)
/* 166D0 8003B2D0 00741024 */ and $v0, $v1, $s4
/* 166D4 8003B2D4 5440000F */ bnel $v0, $zero, .L8003B314
/* 166D8 8003B2D8 26520001 */ addiu $s2, $s2, 1
/* 166DC 8003B2DC 00731024 */ and $v0, $v1, $s3
/* 166E0 8003B2E0 5440000C */ bnel $v0, $zero, .L8003B314
/* 166E4 8003B2E4 26520001 */ addiu $s2, $s2, 1
/* 166E8 8003B2E8 0000802D */ daddu $s0, $zero, $zero
/* 166EC 8003B2EC 0220202D */ daddu $a0, $s1, $zero
.L8003B2F0:
/* 166F0 8003B2F0 0C00F187 */ jal func_8003C61C
/* 166F4 8003B2F4 0200282D */ daddu $a1, $s0, $zero
/* 166F8 8003B2F8 26100001 */ addiu $s0, $s0, 1
/* 166FC 8003B2FC 2A020002 */ slti $v0, $s0, 2
/* 16700 8003B300 1440FFFB */ bnez $v0, .L8003B2F0
/* 16704 8003B304 0220202D */ daddu $a0, $s1, $zero
/* 16708 8003B308 0C00F4EF */ jal func_8003D3BC
/* 1670C 8003B30C 0220202D */ daddu $a0, $s1, $zero
/* 16710 8003B310 26520001 */ addiu $s2, $s2, 1
.L8003B314:
/* 16714 8003B314 2A420040 */ slti $v0, $s2, 0x40
/* 16718 8003B318 1440FFAF */ bnez $v0, .L8003B1D8
/* 1671C 8003B31C 00000000 */ nop
/* 16720 8003B320 8FBF0024 */ lw $ra, 0x24($sp)
/* 16724 8003B324 8FB40020 */ lw $s4, 0x20($sp)
/* 16728 8003B328 8FB3001C */ lw $s3, 0x1c($sp)
/* 1672C 8003B32C 8FB20018 */ lw $s2, 0x18($sp)
/* 16730 8003B330 8FB10014 */ lw $s1, 0x14($sp)
/* 16734 8003B334 8FB00010 */ lw $s0, 0x10($sp)
/* 16738 8003B338 03E00008 */ jr $ra
/* 1673C 8003B33C 27BD0028 */ addiu $sp, $sp, 0x28