papermario/asm/nonmatchings/code_28910_len_5090/func_800511BC.s
2020-09-23 23:16:13 -04:00

110 lines
5.4 KiB
ArmAsm

.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
glabel func_800511BC
/* 2C5BC 800511BC 27BDFFD8 */ addiu $sp, $sp, -0x28
/* 2C5C0 800511C0 AFB10014 */ sw $s1, 0x14($sp)
/* 2C5C4 800511C4 0080882D */ daddu $s1, $a0, $zero
/* 2C5C8 800511C8 0000382D */ daddu $a3, $zero, $zero
/* 2C5CC 800511CC 24080001 */ addiu $t0, $zero, 1
/* 2C5D0 800511D0 00E0302D */ daddu $a2, $a3, $zero
/* 2C5D4 800511D4 240507B4 */ addiu $a1, $zero, 0x7b4
/* 2C5D8 800511D8 AFBF0024 */ sw $ra, 0x24($sp)
/* 2C5DC 800511DC AFB40020 */ sw $s4, 0x20($sp)
/* 2C5E0 800511E0 AFB3001C */ sw $s3, 0x1c($sp)
/* 2C5E4 800511E4 AFB20018 */ sw $s2, 0x18($sp)
/* 2C5E8 800511E8 AFB00010 */ sw $s0, 0x10($sp)
.L800511EC:
/* 2C5EC 800511EC 02252021 */ addu $a0, $s1, $a1
/* 2C5F0 800511F0 90820003 */ lbu $v0, 3($a0)
/* 2C5F4 800511F4 54480008 */ bnel $v0, $t0, .L80051218
/* 2C5F8 800511F8 24C60048 */ addiu $a2, $a2, 0x48
/* 2C5FC 800511FC 8E220000 */ lw $v0, ($s1)
/* 2C600 80051200 00461021 */ addu $v0, $v0, $a2
/* 2C604 80051204 90431365 */ lbu $v1, 0x1365($v0)
/* 2C608 80051208 92220022 */ lbu $v0, 0x22($s1)
/* 2C60C 8005120C 54620001 */ bnel $v1, $v0, .L80051214
/* 2C610 80051210 AC800000 */ sw $zero, ($a0)
.L80051214:
/* 2C614 80051214 24C60048 */ addiu $a2, $a2, 0x48
.L80051218:
/* 2C618 80051218 24E70001 */ addiu $a3, $a3, 1
/* 2C61C 8005121C 2CE20010 */ sltiu $v0, $a3, 0x10
/* 2C620 80051220 1440FFF2 */ bnez $v0, .L800511EC
/* 2C624 80051224 24A50008 */ addiu $a1, $a1, 8
/* 2C628 80051228 0000982D */ daddu $s3, $zero, $zero
/* 2C62C 8005122C 24140001 */ addiu $s4, $zero, 1
/* 2C630 80051230 24120024 */ addiu $s2, $zero, 0x24
/* 2C634 80051234 02328021 */ addu $s0, $s1, $s2
.L80051238:
/* 2C638 80051238 8E020008 */ lw $v0, 8($s0)
/* 2C63C 8005123C 50400030 */ beql $v0, $zero, .L80051300
/* 2C640 80051240 265201E4 */ addiu $s2, $s2, 0x1e4
/* 2C644 80051244 92220021 */ lbu $v0, 0x21($s1)
/* 2C648 80051248 10400003 */ beqz $v0, .L80051258
/* 2C64C 8005124C 0220202D */ daddu $a0, $s1, $zero
/* 2C650 80051250 0C0144CD */ jal func_80051334
/* 2C654 80051254 0200282D */ daddu $a1, $s0, $zero
.L80051258:
/* 2C658 80051258 92030024 */ lbu $v1, 0x24($s0)
/* 2C65C 8005125C 10600018 */ beqz $v1, .L800512C0
/* 2C660 80051260 24020003 */ addiu $v0, $zero, 3
/* 2C664 80051264 1462000A */ bne $v1, $v0, .L80051290
/* 2C668 80051268 24020002 */ addiu $v0, $zero, 2
/* 2C66C 8005126C A2020024 */ sb $v0, 0x24($s0)
/* 2C670 80051270 0220202D */ daddu $a0, $s1, $zero
/* 2C674 80051274 0C0148AA */ jal func_800522A8
/* 2C678 80051278 0200282D */ daddu $a1, $s0, $zero
/* 2C67C 8005127C 0220202D */ daddu $a0, $s1, $zero
/* 2C680 80051280 0C01487A */ jal func_800521E8
/* 2C684 80051284 0200282D */ daddu $a1, $s0, $zero
/* 2C688 80051288 080144C0 */ j .L80051300
/* 2C68C 8005128C 265201E4 */ addiu $s2, $s2, 0x1e4
.L80051290:
/* 2C690 80051290 5474001B */ bnel $v1, $s4, .L80051300
/* 2C694 80051294 265201E4 */ addiu $s2, $s2, 0x1e4
/* 2C698 80051298 96020028 */ lhu $v0, 0x28($s0)
/* 2C69C 8005129C 10400003 */ beqz $v0, .L800512AC
/* 2C6A0 800512A0 A2000024 */ sb $zero, 0x24($s0)
/* 2C6A4 800512A4 0C014354 */ jal func_80050D50
/* 2C6A8 800512A8 0200202D */ daddu $a0, $s0, $zero
.L800512AC:
/* 2C6AC 800512AC 0220202D */ daddu $a0, $s1, $zero
/* 2C6B0 800512B0 0C0148CB */ jal func_8005232C
/* 2C6B4 800512B4 0200282D */ daddu $a1, $s0, $zero
/* 2C6B8 800512B8 080144C0 */ j .L80051300
/* 2C6BC 800512BC 265201E4 */ addiu $s2, $s2, 0x1e4
.L800512C0:
/* 2C6C0 800512C0 96020028 */ lhu $v0, 0x28($s0)
/* 2C6C4 800512C4 10400003 */ beqz $v0, .L800512D4
/* 2C6C8 800512C8 00000000 */ nop
/* 2C6CC 800512CC 0C014354 */ jal func_80050D50
/* 2C6D0 800512D0 0200202D */ daddu $a0, $s0, $zero
.L800512D4:
/* 2C6D4 800512D4 92030025 */ lbu $v1, 0x25($s0)
/* 2C6D8 800512D8 24020002 */ addiu $v0, $zero, 2
/* 2C6DC 800512DC 14620005 */ bne $v1, $v0, .L800512F4
/* 2C6E0 800512E0 0220202D */ daddu $a0, $s1, $zero
/* 2C6E4 800512E4 0C01487A */ jal func_800521E8
/* 2C6E8 800512E8 0200282D */ daddu $a1, $s0, $zero
/* 2C6EC 800512EC A2140025 */ sb $s4, 0x25($s0)
/* 2C6F0 800512F0 0220202D */ daddu $a0, $s1, $zero
.L800512F4:
/* 2C6F4 800512F4 0C01450D */ jal func_80051434
/* 2C6F8 800512F8 0200282D */ daddu $a1, $s0, $zero
/* 2C6FC 800512FC 265201E4 */ addiu $s2, $s2, 0x1e4
.L80051300:
/* 2C700 80051300 26730001 */ addiu $s3, $s3, 1
/* 2C704 80051304 2A620004 */ slti $v0, $s3, 4
/* 2C708 80051308 1440FFCB */ bnez $v0, .L80051238
/* 2C70C 8005130C 02328021 */ addu $s0, $s1, $s2
/* 2C710 80051310 A2200021 */ sb $zero, 0x21($s1)
/* 2C714 80051314 8FBF0024 */ lw $ra, 0x24($sp)
/* 2C718 80051318 8FB40020 */ lw $s4, 0x20($sp)
/* 2C71C 8005131C 8FB3001C */ lw $s3, 0x1c($sp)
/* 2C720 80051320 8FB20018 */ lw $s2, 0x18($sp)
/* 2C724 80051324 8FB10014 */ lw $s1, 0x14($sp)
/* 2C728 80051328 8FB00010 */ lw $s0, 0x10($sp)
/* 2C72C 8005132C 03E00008 */ jr $ra
/* 2C730 80051330 27BD0028 */ addiu $sp, $sp, 0x28