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