mirror of
https://github.com/pmret/papermario.git
synced 2024-11-12 14:03:56 +01:00
294 lines
12 KiB
ArmAsm
294 lines
12 KiB
ArmAsm
.set noat # allow manual use of $at
|
|
.set noreorder # don't insert nops after branches
|
|
|
|
|
|
glabel func_8013F350
|
|
/* 0D5A50 8013F350 27BDFFD0 */ addiu $sp, $sp, -0x30
|
|
/* 0D5A54 8013F354 AFB50024 */ sw $s5, 0x24($sp)
|
|
/* 0D5A58 8013F358 0080A82D */ daddu $s5, $a0, $zero
|
|
/* 0D5A5C 8013F35C AFB00010 */ sw $s0, 0x10($sp)
|
|
/* 0D5A60 8013F360 00A0802D */ daddu $s0, $a1, $zero
|
|
/* 0D5A64 8013F364 AFBF002C */ sw $ra, 0x2c($sp)
|
|
/* 0D5A68 8013F368 AFB60028 */ sw $s6, 0x28($sp)
|
|
/* 0D5A6C 8013F36C AFB40020 */ sw $s4, 0x20($sp)
|
|
/* 0D5A70 8013F370 AFB3001C */ sw $s3, 0x1c($sp)
|
|
/* 0D5A74 8013F374 AFB20018 */ sw $s2, 0x18($sp)
|
|
/* 0D5A78 8013F378 120000D8 */ beqz $s0, .L8013F6DC
|
|
/* 0D5A7C 8013F37C AFB10014 */ sw $s1, 0x14($sp)
|
|
/* 0D5A80 8013F380 0000982D */ daddu $s3, $zero, $zero
|
|
/* 0D5A84 8013F384 3C168015 */ lui $s6, 0x8015
|
|
/* 0D5A88 8013F388 26D6EFCC */ addiu $s6, $s6, -0x1034
|
|
.L8013F38C:
|
|
/* 0D5A8C 8013F38C 8E030000 */ lw $v1, ($s0)
|
|
/* 0D5A90 8013F390 2C62001C */ sltiu $v0, $v1, 0x1c
|
|
/* 0D5A94 8013F394 1040FFFD */ beqz $v0, .L8013F38C
|
|
/* 0D5A98 8013F398 26100004 */ addiu $s0, $s0, 4
|
|
/* 0D5A9C 8013F39C 00031080 */ sll $v0, $v1, 2
|
|
/* 0D5AA0 8013F3A0 3C018015 */ lui $at, 0x8015
|
|
/* 0D5AA4 8013F3A4 00220821 */ addu $at, $at, $v0
|
|
/* 0D5AA8 8013F3A8 8C221140 */ lw $v0, 0x1140($at)
|
|
/* 0D5AAC 8013F3AC 00400008 */ jr $v0
|
|
/* 0D5AB0 8013F3B0 00000000 */ nop
|
|
/* 0D5AB4 8013F3B4 0804FCE3 */ j .L8013F38C
|
|
/* 0D5AB8 8013F3B8 2610000C */ addiu $s0, $s0, 0xc
|
|
|
|
/* 0D5ABC 8013F3BC 8E130000 */ lw $s3, ($s0)
|
|
/* 0D5AC0 8013F3C0 0804FCF4 */ j .L8013F3D0
|
|
/* 0D5AC4 8013F3C4 26100004 */ addiu $s0, $s0, 4
|
|
|
|
/* 0D5AC8 8013F3C8 8E130000 */ lw $s3, ($s0)
|
|
/* 0D5ACC 8013F3CC 26100008 */ addiu $s0, $s0, 8
|
|
.L8013F3D0:
|
|
/* 0D5AD0 8013F3D0 A2B30046 */ sb $s3, 0x46($s5)
|
|
/* 0D5AD4 8013F3D4 0804FCE3 */ j .L8013F38C
|
|
/* 0D5AD8 8013F3D8 A2B30045 */ sb $s3, 0x45($s5)
|
|
|
|
/* 0D5ADC 8013F3DC 92020003 */ lbu $v0, 3($s0)
|
|
/* 0D5AE0 8013F3E0 26100004 */ addiu $s0, $s0, 4
|
|
/* 0D5AE4 8013F3E4 3C030010 */ lui $v1, 0x10
|
|
/* 0D5AE8 8013F3E8 A2A2004E */ sb $v0, 0x4e($s5)
|
|
/* 0D5AEC 8013F3EC A2A20050 */ sb $v0, 0x50($s5)
|
|
/* 0D5AF0 8013F3F0 92040003 */ lbu $a0, 3($s0)
|
|
/* 0D5AF4 8013F3F4 8EA20000 */ lw $v0, ($s5)
|
|
/* 0D5AF8 8013F3F8 26100004 */ addiu $s0, $s0, 4
|
|
/* 0D5AFC 8013F3FC 00431025 */ or $v0, $v0, $v1
|
|
/* 0D5B00 8013F400 AEA20000 */ sw $v0, ($s5)
|
|
/* 0D5B04 8013F404 A2A4004F */ sb $a0, 0x4f($s5)
|
|
/* 0D5B08 8013F408 0804FCE3 */ j .L8013F38C
|
|
/* 0D5B0C 8013F40C A2A40051 */ sb $a0, 0x51($s5)
|
|
|
|
/* 0D5B10 8013F410 0804FCE3 */ j .L8013F38C
|
|
/* 0D5B14 8013F414 26100004 */ addiu $s0, $s0, 4
|
|
|
|
/* 0D5B18 8013F418 0804FCE3 */ j .L8013F38C
|
|
/* 0D5B1C 8013F41C 26100008 */ addiu $s0, $s0, 8
|
|
|
|
.L8013F420:
|
|
/* 0D5B20 8013F420 0804FD62 */ j .L8013F588
|
|
/* 0D5B24 8013F424 AE110000 */ sw $s1, ($s0)
|
|
|
|
.L8013F428:
|
|
/* 0D5B28 8013F428 0804FDB2 */ j .L8013F6C8
|
|
/* 0D5B2C 8013F42C AE110000 */ sw $s1, ($s0)
|
|
|
|
/* 0D5B30 8013F430 26100004 */ addiu $s0, $s0, 4
|
|
/* 0D5B34 8013F434 8E070000 */ lw $a3, ($s0)
|
|
/* 0D5B38 8013F438 26100004 */ addiu $s0, $s0, 4
|
|
/* 0D5B3C 8013F43C 8E140000 */ lw $s4, ($s0)
|
|
/* 0D5B40 8013F440 26100004 */ addiu $s0, $s0, 4
|
|
/* 0D5B44 8013F444 0000882D */ daddu $s1, $zero, $zero
|
|
/* 0D5B48 8013F448 00131040 */ sll $v0, $s3, 1
|
|
/* 0D5B4C 8013F44C 00531021 */ addu $v0, $v0, $s3
|
|
/* 0D5B50 8013F450 00021040 */ sll $v0, $v0, 1
|
|
/* 0D5B54 8013F454 3C048015 */ lui $a0, 0x8015
|
|
/* 0D5B58 8013F458 8C8412C8 */ lw $a0, 0x12c8($a0)
|
|
/* 0D5B5C 8013F45C 00569021 */ addu $s2, $v0, $s6
|
|
/* 0D5B60 8013F460 24850004 */ addiu $a1, $a0, 4
|
|
.L8013F464:
|
|
/* 0D5B64 8013F464 8C830000 */ lw $v1, ($a0)
|
|
/* 0D5B68 8013F468 2402FFFF */ addiu $v0, $zero, -1
|
|
/* 0D5B6C 8013F46C 14620038 */ bne $v1, $v0, .L8013F550
|
|
/* 0D5B70 8013F470 00000000 */ nop
|
|
/* 0D5B74 8013F474 3C038015 */ lui $v1, 0x8015
|
|
/* 0D5B78 8013F478 8C63133C */ lw $v1, 0x133c($v1)
|
|
/* 0D5B7C 8013F47C 3C028015 */ lui $v0, 0x8015
|
|
/* 0D5B80 8013F480 8C421314 */ lw $v0, 0x1314($v0)
|
|
/* 0D5B84 8013F484 AC870000 */ sw $a3, ($a0)
|
|
/* 0D5B88 8013F488 8C630000 */ lw $v1, ($v1)
|
|
/* 0D5B8C 8013F48C 3C048007 */ lui $a0, 0x8007
|
|
/* 0D5B90 8013F490 8C84419C */ lw $a0, 0x419c($a0)
|
|
/* 0D5B94 8013F494 00431021 */ addu $v0, $v0, $v1
|
|
/* 0D5B98 8013F498 ACA20000 */ sw $v0, ($a1)
|
|
/* 0D5B9C 8013F49C 80820070 */ lb $v0, 0x70($a0)
|
|
/* 0D5BA0 8013F4A0 14400004 */ bnez $v0, .L8013F4B4
|
|
/* 0D5BA4 8013F4A4 00000000 */ nop
|
|
/* 0D5BA8 8013F4A8 3C048015 */ lui $a0, 0x8015
|
|
/* 0D5BAC 8013F4AC 0804FD32 */ j .L8013F4C8
|
|
/* 0D5BB0 8013F4B0 8C84EFC4 */ lw $a0, -0x103c($a0)
|
|
|
|
.L8013F4B4:
|
|
/* 0D5BB4 8013F4B4 3C028015 */ lui $v0, 0x8015
|
|
/* 0D5BB8 8013F4B8 8C42EFC4 */ lw $v0, -0x103c($v0)
|
|
/* 0D5BBC 8013F4BC 00021FC2 */ srl $v1, $v0, 0x1f
|
|
/* 0D5BC0 8013F4C0 00431021 */ addu $v0, $v0, $v1
|
|
/* 0D5BC4 8013F4C4 00022043 */ sra $a0, $v0, 1
|
|
.L8013F4C8:
|
|
/* 0D5BC8 8013F4C8 3C028015 */ lui $v0, 0x8015
|
|
/* 0D5BCC 8013F4CC 8C42133C */ lw $v0, 0x133c($v0)
|
|
/* 0D5BD0 8013F4D0 86430004 */ lh $v1, 4($s2)
|
|
/* 0D5BD4 8013F4D4 8C420000 */ lw $v0, ($v0)
|
|
/* 0D5BD8 8013F4D8 00431021 */ addu $v0, $v0, $v1
|
|
/* 0D5BDC 8013F4DC 0044102A */ slt $v0, $v0, $a0
|
|
/* 0D5BE0 8013F4E0 14400003 */ bnez $v0, .L8013F4F0
|
|
/* 0D5BE4 8013F4E4 00000000 */ nop
|
|
.L8013F4E8:
|
|
/* 0D5BE8 8013F4E8 0804FD3A */ j .L8013F4E8
|
|
/* 0D5BEC 8013F4EC 00000000 */ nop
|
|
|
|
.L8013F4F0:
|
|
/* 0D5BF0 8013F4F0 3C04001D */ lui $a0, 0x1d
|
|
/* 0D5BF4 8013F4F4 2484C310 */ addiu $a0, $a0, -0x3cf0
|
|
/* 0D5BF8 8013F4F8 8CA50000 */ lw $a1, ($a1)
|
|
/* 0D5BFC 8013F4FC 86460004 */ lh $a2, 4($s2)
|
|
/* 0D5C00 8013F500 0C017D24 */ jal nuPiReadRom
|
|
/* 0D5C04 8013F504 00E42021 */ addu $a0, $a3, $a0
|
|
/* 0D5C08 8013F508 3C038015 */ lui $v1, 0x8015
|
|
/* 0D5C0C 8013F50C 8C63133C */ lw $v1, 0x133c($v1)
|
|
/* 0D5C10 8013F510 86440004 */ lh $a0, 4($s2)
|
|
/* 0D5C14 8013F514 8C620000 */ lw $v0, ($v1)
|
|
/* 0D5C18 8013F518 00441021 */ addu $v0, $v0, $a0
|
|
/* 0D5C1C 8013F51C AC620000 */ sw $v0, ($v1)
|
|
/* 0D5C20 8013F520 3C028007 */ lui $v0, 0x8007
|
|
/* 0D5C24 8013F524 8C42419C */ lw $v0, 0x419c($v0)
|
|
/* 0D5C28 8013F528 80420070 */ lb $v0, 0x70($v0)
|
|
/* 0D5C2C 8013F52C 14400003 */ bnez $v0, .L8013F53C
|
|
/* 0D5C30 8013F530 00111C00 */ sll $v1, $s1, 0x10
|
|
/* 0D5C34 8013F534 0804FD52 */ j .L8013F548
|
|
/* 0D5C38 8013F538 AE110000 */ sw $s1, ($s0)
|
|
|
|
.L8013F53C:
|
|
/* 0D5C3C 8013F53C 96020002 */ lhu $v0, 2($s0)
|
|
/* 0D5C40 8013F540 00431025 */ or $v0, $v0, $v1
|
|
/* 0D5C44 8013F544 AE020000 */ sw $v0, ($s0)
|
|
.L8013F548:
|
|
/* 0D5C48 8013F548 0804FD62 */ j .L8013F588
|
|
/* 0D5C4C 8013F54C 26310001 */ addiu $s1, $s1, 1
|
|
|
|
.L8013F550:
|
|
/* 0D5C50 8013F550 5467000A */ bnel $v1, $a3, .L8013F57C
|
|
/* 0D5C54 8013F554 24A50008 */ addiu $a1, $a1, 8
|
|
/* 0D5C58 8013F558 3C028007 */ lui $v0, 0x8007
|
|
/* 0D5C5C 8013F55C 8C42419C */ lw $v0, 0x419c($v0)
|
|
/* 0D5C60 8013F560 80420070 */ lb $v0, 0x70($v0)
|
|
/* 0D5C64 8013F564 1040FFAE */ beqz $v0, .L8013F420
|
|
/* 0D5C68 8013F568 00111C00 */ sll $v1, $s1, 0x10
|
|
/* 0D5C6C 8013F56C 96020002 */ lhu $v0, 2($s0)
|
|
/* 0D5C70 8013F570 00431025 */ or $v0, $v0, $v1
|
|
/* 0D5C74 8013F574 0804FD62 */ j .L8013F588
|
|
/* 0D5C78 8013F578 AE020000 */ sw $v0, ($s0)
|
|
|
|
.L8013F57C:
|
|
/* 0D5C7C 8013F57C 24840008 */ addiu $a0, $a0, 8
|
|
/* 0D5C80 8013F580 0804FD19 */ j .L8013F464
|
|
/* 0D5C84 8013F584 26310001 */ addiu $s1, $s1, 1
|
|
|
|
.L8013F588:
|
|
/* 0D5C88 8013F588 2A2200C0 */ slti $v0, $s1, 0xc0
|
|
/* 0D5C8C 8013F58C 14400003 */ bnez $v0, .L8013F59C
|
|
/* 0D5C90 8013F590 26100004 */ addiu $s0, $s0, 4
|
|
.L8013F594:
|
|
/* 0D5C94 8013F594 0804FD65 */ j .L8013F594
|
|
/* 0D5C98 8013F598 00000000 */ nop
|
|
|
|
.L8013F59C:
|
|
/* 0D5C9C 8013F59C 3C048015 */ lui $a0, 0x8015
|
|
/* 0D5CA0 8013F5A0 8C8412D0 */ lw $a0, 0x12d0($a0)
|
|
/* 0D5CA4 8013F5A4 0000882D */ daddu $s1, $zero, $zero
|
|
/* 0D5CA8 8013F5A8 24850004 */ addiu $a1, $a0, 4
|
|
.L8013F5AC:
|
|
/* 0D5CAC 8013F5AC 8C830000 */ lw $v1, ($a0)
|
|
/* 0D5CB0 8013F5B0 2402FFFF */ addiu $v0, $zero, -1
|
|
/* 0D5CB4 8013F5B4 14620036 */ bne $v1, $v0, .L8013F690
|
|
/* 0D5CB8 8013F5B8 00000000 */ nop
|
|
/* 0D5CBC 8013F5BC 3C038015 */ lui $v1, 0x8015
|
|
/* 0D5CC0 8013F5C0 8C63133C */ lw $v1, 0x133c($v1)
|
|
/* 0D5CC4 8013F5C4 3C028015 */ lui $v0, 0x8015
|
|
/* 0D5CC8 8013F5C8 8C421314 */ lw $v0, 0x1314($v0)
|
|
/* 0D5CCC 8013F5CC AC940000 */ sw $s4, ($a0)
|
|
/* 0D5CD0 8013F5D0 8C630000 */ lw $v1, ($v1)
|
|
/* 0D5CD4 8013F5D4 3C048007 */ lui $a0, 0x8007
|
|
/* 0D5CD8 8013F5D8 8C84419C */ lw $a0, 0x419c($a0)
|
|
/* 0D5CDC 8013F5DC 00431021 */ addu $v0, $v0, $v1
|
|
/* 0D5CE0 8013F5E0 ACA20000 */ sw $v0, ($a1)
|
|
/* 0D5CE4 8013F5E4 80820070 */ lb $v0, 0x70($a0)
|
|
/* 0D5CE8 8013F5E8 14400004 */ bnez $v0, .L8013F5FC
|
|
/* 0D5CEC 8013F5EC 00000000 */ nop
|
|
/* 0D5CF0 8013F5F0 3C048015 */ lui $a0, 0x8015
|
|
/* 0D5CF4 8013F5F4 0804FD84 */ j .L8013F610
|
|
/* 0D5CF8 8013F5F8 8C84EFC4 */ lw $a0, -0x103c($a0)
|
|
|
|
.L8013F5FC:
|
|
/* 0D5CFC 8013F5FC 3C028015 */ lui $v0, 0x8015
|
|
/* 0D5D00 8013F600 8C42EFC4 */ lw $v0, -0x103c($v0)
|
|
/* 0D5D04 8013F604 00021FC2 */ srl $v1, $v0, 0x1f
|
|
/* 0D5D08 8013F608 00431021 */ addu $v0, $v0, $v1
|
|
/* 0D5D0C 8013F60C 00022043 */ sra $a0, $v0, 1
|
|
.L8013F610:
|
|
/* 0D5D10 8013F610 3C028015 */ lui $v0, 0x8015
|
|
/* 0D5D14 8013F614 8C42133C */ lw $v0, 0x133c($v0)
|
|
/* 0D5D18 8013F618 8C420000 */ lw $v0, ($v0)
|
|
/* 0D5D1C 8013F61C 24420020 */ addiu $v0, $v0, 0x20
|
|
/* 0D5D20 8013F620 0044102A */ slt $v0, $v0, $a0
|
|
/* 0D5D24 8013F624 14400003 */ bnez $v0, .L8013F634
|
|
/* 0D5D28 8013F628 00000000 */ nop
|
|
.L8013F62C:
|
|
/* 0D5D2C 8013F62C 0804FD8B */ j .L8013F62C
|
|
/* 0D5D30 8013F630 00000000 */ nop
|
|
|
|
.L8013F634:
|
|
/* 0D5D34 8013F634 3C04001D */ lui $a0, 0x1d
|
|
/* 0D5D38 8013F638 2484C310 */ addiu $a0, $a0, -0x3cf0
|
|
/* 0D5D3C 8013F63C 02842021 */ addu $a0, $s4, $a0
|
|
/* 0D5D40 8013F640 8CA50000 */ lw $a1, ($a1)
|
|
/* 0D5D44 8013F644 0C017D24 */ jal nuPiReadRom
|
|
/* 0D5D48 8013F648 24060020 */ addiu $a2, $zero, 0x20
|
|
/* 0D5D4C 8013F64C 3C038015 */ lui $v1, 0x8015
|
|
/* 0D5D50 8013F650 8C63133C */ lw $v1, 0x133c($v1)
|
|
/* 0D5D54 8013F654 8C620000 */ lw $v0, ($v1)
|
|
/* 0D5D58 8013F658 24420020 */ addiu $v0, $v0, 0x20
|
|
/* 0D5D5C 8013F65C AC620000 */ sw $v0, ($v1)
|
|
/* 0D5D60 8013F660 3C028007 */ lui $v0, 0x8007
|
|
/* 0D5D64 8013F664 8C42419C */ lw $v0, 0x419c($v0)
|
|
/* 0D5D68 8013F668 80420070 */ lb $v0, 0x70($v0)
|
|
/* 0D5D6C 8013F66C 14400003 */ bnez $v0, .L8013F67C
|
|
/* 0D5D70 8013F670 00111C00 */ sll $v1, $s1, 0x10
|
|
/* 0D5D74 8013F674 0804FDA2 */ j .L8013F688
|
|
/* 0D5D78 8013F678 AE110000 */ sw $s1, ($s0)
|
|
|
|
.L8013F67C:
|
|
/* 0D5D7C 8013F67C 96020002 */ lhu $v0, 2($s0)
|
|
/* 0D5D80 8013F680 00431025 */ or $v0, $v0, $v1
|
|
/* 0D5D84 8013F684 AE020000 */ sw $v0, ($s0)
|
|
.L8013F688:
|
|
/* 0D5D88 8013F688 0804FDB2 */ j .L8013F6C8
|
|
/* 0D5D8C 8013F68C 26310001 */ addiu $s1, $s1, 1
|
|
|
|
.L8013F690:
|
|
/* 0D5D90 8013F690 5474000A */ bnel $v1, $s4, .L8013F6BC
|
|
/* 0D5D94 8013F694 24A50008 */ addiu $a1, $a1, 8
|
|
/* 0D5D98 8013F698 3C028007 */ lui $v0, 0x8007
|
|
/* 0D5D9C 8013F69C 8C42419C */ lw $v0, 0x419c($v0)
|
|
/* 0D5DA0 8013F6A0 80420070 */ lb $v0, 0x70($v0)
|
|
/* 0D5DA4 8013F6A4 1040FF60 */ beqz $v0, .L8013F428
|
|
/* 0D5DA8 8013F6A8 00111C00 */ sll $v1, $s1, 0x10
|
|
/* 0D5DAC 8013F6AC 96020002 */ lhu $v0, 2($s0)
|
|
/* 0D5DB0 8013F6B0 00431025 */ or $v0, $v0, $v1
|
|
/* 0D5DB4 8013F6B4 0804FDB2 */ j .L8013F6C8
|
|
/* 0D5DB8 8013F6B8 AE020000 */ sw $v0, ($s0)
|
|
|
|
.L8013F6BC:
|
|
/* 0D5DBC 8013F6BC 24840008 */ addiu $a0, $a0, 8
|
|
/* 0D5DC0 8013F6C0 0804FD6B */ j .L8013F5AC
|
|
/* 0D5DC4 8013F6C4 26310001 */ addiu $s1, $s1, 1
|
|
|
|
.L8013F6C8:
|
|
/* 0D5DC8 8013F6C8 2A2200C0 */ slti $v0, $s1, 0xc0
|
|
/* 0D5DCC 8013F6CC 1440FF2F */ bnez $v0, .L8013F38C
|
|
/* 0D5DD0 8013F6D0 26100004 */ addiu $s0, $s0, 4
|
|
.L8013F6D4:
|
|
/* 0D5DD4 8013F6D4 0804FDB5 */ j .L8013F6D4
|
|
/* 0D5DD8 8013F6D8 00000000 */ nop
|
|
|
|
.L8013F6DC:
|
|
/* 0D5DDC 8013F6DC 8FBF002C */ lw $ra, 0x2c($sp)
|
|
/* 0D5DE0 8013F6E0 8FB60028 */ lw $s6, 0x28($sp)
|
|
/* 0D5DE4 8013F6E4 8FB50024 */ lw $s5, 0x24($sp)
|
|
/* 0D5DE8 8013F6E8 8FB40020 */ lw $s4, 0x20($sp)
|
|
/* 0D5DEC 8013F6EC 8FB3001C */ lw $s3, 0x1c($sp)
|
|
/* 0D5DF0 8013F6F0 8FB20018 */ lw $s2, 0x18($sp)
|
|
/* 0D5DF4 8013F6F4 8FB10014 */ lw $s1, 0x14($sp)
|
|
/* 0D5DF8 8013F6F8 8FB00010 */ lw $s0, 0x10($sp)
|
|
/* 0D5DFC 8013F6FC 03E00008 */ jr $ra
|
|
/* 0D5E00 8013F700 27BD0030 */ addiu $sp, $sp, 0x30
|
|
|