mirror of
https://github.com/pmret/papermario.git
synced 2024-11-19 01:12:28 +01:00
122 lines
5.8 KiB
ArmAsm
122 lines
5.8 KiB
ArmAsm
|
.set noat # allow manual use of $at
|
||
|
.set noreorder # don't insert nops after branches
|
||
|
|
||
|
glabel func_8003E46C
|
||
|
/* 1986C 8003E46C 27BDFFD8 */ addiu $sp, $sp, -0x28
|
||
|
/* 19870 8003E470 AFB00010 */ sw $s0, 0x10($sp)
|
||
|
/* 19874 8003E474 0080802D */ daddu $s0, $a0, $zero
|
||
|
/* 19878 8003E478 AFBF0020 */ sw $ra, 0x20($sp)
|
||
|
/* 1987C 8003E47C AFB3001C */ sw $s3, 0x1c($sp)
|
||
|
/* 19880 8003E480 AFB20018 */ sw $s2, 0x18($sp)
|
||
|
/* 19884 8003E484 AFB10014 */ sw $s1, 0x14($sp)
|
||
|
/* 19888 8003E488 82020004 */ lb $v0, 4($s0)
|
||
|
/* 1988C 8003E48C 00021080 */ sll $v0, $v0, 2
|
||
|
/* 19890 8003E490 3C13800B */ lui $s3, %hi(D_800B0F18)
|
||
|
/* 19894 8003E494 02629821 */ addu $s3, $s3, $v0
|
||
|
/* 19898 8003E498 8E730F18 */ lw $s3, %lo(D_800B0F18)($s3)
|
||
|
/* 1989C 8003E49C 8E640000 */ lw $a0, ($s3)
|
||
|
/* 198A0 8003E4A0 3C12800B */ lui $s2, %hi(D_800B0EF0)
|
||
|
/* 198A4 8003E4A4 26520EF0 */ addiu $s2, $s2, %lo(D_800B0EF0)
|
||
|
/* 198A8 8003E4A8 18800009 */ blez $a0, .L8003E4D0
|
||
|
/* 198AC 8003E4AC 0000882D */ daddu $s1, $zero, $zero
|
||
|
/* 198B0 8003E4B0 0260182D */ daddu $v1, $s3, $zero
|
||
|
.L8003E4B4:
|
||
|
/* 198B4 8003E4B4 8C620004 */ lw $v0, 4($v1)
|
||
|
/* 198B8 8003E4B8 10500005 */ beq $v0, $s0, .L8003E4D0
|
||
|
/* 198BC 8003E4BC 00000000 */ nop
|
||
|
/* 198C0 8003E4C0 26310001 */ addiu $s1, $s1, 1
|
||
|
/* 198C4 8003E4C4 0224102A */ slt $v0, $s1, $a0
|
||
|
/* 198C8 8003E4C8 1440FFFA */ bnez $v0, .L8003E4B4
|
||
|
/* 198CC 8003E4CC 24630004 */ addiu $v1, $v1, 4
|
||
|
.L8003E4D0:
|
||
|
/* 198D0 8003E4D0 8E020034 */ lw $v0, 0x34($s0)
|
||
|
/* 198D4 8003E4D4 10400003 */ beqz $v0, .L8003E4E4
|
||
|
/* 198D8 8003E4D8 00000000 */ nop
|
||
|
/* 198DC 8003E4DC 0C0B102B */ jal func_802C40AC
|
||
|
/* 198E0 8003E4E0 8E04004C */ lw $a0, 0x4c($s0)
|
||
|
.L8003E4E4:
|
||
|
/* 198E4 8003E4E4 8E020038 */ lw $v0, 0x38($s0)
|
||
|
/* 198E8 8003E4E8 10400003 */ beqz $v0, .L8003E4F8
|
||
|
/* 198EC 8003E4EC 00000000 */ nop
|
||
|
/* 198F0 8003E4F0 0C0B102B */ jal func_802C40AC
|
||
|
/* 198F4 8003E4F4 8E040050 */ lw $a0, 0x50($s0)
|
||
|
.L8003E4F8:
|
||
|
/* 198F8 8003E4F8 8E02003C */ lw $v0, 0x3c($s0)
|
||
|
/* 198FC 8003E4FC 10400003 */ beqz $v0, .L8003E50C
|
||
|
/* 19900 8003E500 00000000 */ nop
|
||
|
/* 19904 8003E504 0C0B102B */ jal func_802C40AC
|
||
|
/* 19908 8003E508 8E040054 */ lw $a0, 0x54($s0)
|
||
|
.L8003E50C:
|
||
|
/* 1990C 8003E50C 8E020040 */ lw $v0, 0x40($s0)
|
||
|
/* 19910 8003E510 10400003 */ beqz $v0, .L8003E520
|
||
|
/* 19914 8003E514 00000000 */ nop
|
||
|
/* 19918 8003E518 0C0B102B */ jal func_802C40AC
|
||
|
/* 1991C 8003E51C 8E040058 */ lw $a0, 0x58($s0)
|
||
|
.L8003E520:
|
||
|
/* 19920 8003E520 8E020044 */ lw $v0, 0x44($s0)
|
||
|
/* 19924 8003E524 10400003 */ beqz $v0, .L8003E534
|
||
|
/* 19928 8003E528 00000000 */ nop
|
||
|
/* 1992C 8003E52C 0C0B102B */ jal func_802C40AC
|
||
|
/* 19930 8003E530 8E04005C */ lw $a0, 0x5c($s0)
|
||
|
.L8003E534:
|
||
|
/* 19934 8003E534 8E020048 */ lw $v0, 0x48($s0)
|
||
|
/* 19938 8003E538 10400003 */ beqz $v0, .L8003E548
|
||
|
/* 1993C 8003E53C 00000000 */ nop
|
||
|
/* 19940 8003E540 0C0B102B */ jal func_802C40AC
|
||
|
/* 19944 8003E544 8E040060 */ lw $a0, 0x60($s0)
|
||
|
.L8003E548:
|
||
|
/* 19948 8003E548 86040008 */ lh $a0, 8($s0)
|
||
|
/* 1994C 8003E54C AE000020 */ sw $zero, 0x20($s0)
|
||
|
/* 19950 8003E550 AE000024 */ sw $zero, 0x24($s0)
|
||
|
/* 19954 8003E554 AE000028 */ sw $zero, 0x28($s0)
|
||
|
/* 19958 8003E558 AE00002C */ sw $zero, 0x2c($s0)
|
||
|
/* 1995C 8003E55C 0C00E9EB */ jal func_8003A7AC
|
||
|
/* 19960 8003E560 AE000030 */ sw $zero, 0x30($s0)
|
||
|
/* 19964 8003E564 0C00E1A3 */ jal func_8003868C
|
||
|
/* 19968 8003E568 0040202D */ daddu $a0, $v0, $zero
|
||
|
/* 1996C 8003E56C 8E040064 */ lw $a0, 0x64($s0)
|
||
|
/* 19970 8003E570 50800004 */ beql $a0, $zero, .L8003E584
|
||
|
/* 19974 8003E574 0000202D */ daddu $a0, $zero, $zero
|
||
|
/* 19978 8003E578 0C00AB3B */ jal func_8002ACEC
|
||
|
/* 1997C 8003E57C 00000000 */ nop
|
||
|
/* 19980 8003E580 0000202D */ daddu $a0, $zero, $zero
|
||
|
.L8003E584:
|
||
|
/* 19984 8003E584 0260182D */ daddu $v1, $s3, $zero
|
||
|
.L8003E588:
|
||
|
/* 19988 8003E588 8C620004 */ lw $v0, 4($v1)
|
||
|
/* 1998C 8003E58C 50500001 */ beql $v0, $s0, .L8003E594
|
||
|
/* 19990 8003E590 AC600004 */ sw $zero, 4($v1)
|
||
|
.L8003E594:
|
||
|
/* 19994 8003E594 24840001 */ addiu $a0, $a0, 1
|
||
|
/* 19998 8003E598 28820010 */ slti $v0, $a0, 0x10
|
||
|
/* 1999C 8003E59C 1440FFFA */ bnez $v0, .L8003E588
|
||
|
/* 199A0 8003E5A0 24630004 */ addiu $v1, $v1, 4
|
||
|
/* 199A4 8003E5A4 8E030000 */ lw $v1, ($s0)
|
||
|
/* 199A8 8003E5A8 30620004 */ andi $v0, $v1, 4
|
||
|
/* 199AC 8003E5AC 1440000E */ bnez $v0, .L8003E5E8
|
||
|
/* 199B0 8003E5B0 30620008 */ andi $v0, $v1, 8
|
||
|
/* 199B4 8003E5B4 10400004 */ beqz $v0, .L8003E5C8
|
||
|
/* 199B8 8003E5B8 30620001 */ andi $v0, $v1, 1
|
||
|
/* 199BC 8003E5BC 8E42008C */ lw $v0, 0x8c($s2)
|
||
|
/* 199C0 8003E5C0 16020009 */ bne $s0, $v0, .L8003E5E8
|
||
|
/* 199C4 8003E5C4 30620001 */ andi $v0, $v1, 1
|
||
|
.L8003E5C8:
|
||
|
/* 199C8 8003E5C8 14400007 */ bnez $v0, .L8003E5E8
|
||
|
/* 199CC 8003E5CC 30620010 */ andi $v0, $v1, 0x10
|
||
|
/* 199D0 8003E5D0 14400005 */ bnez $v0, .L8003E5E8
|
||
|
/* 199D4 8003E5D4 00000000 */ nop
|
||
|
/* 199D8 8003E5D8 86650048 */ lh $a1, 0x48($s3)
|
||
|
/* 199DC 8003E5DC 82440020 */ lb $a0, 0x20($s2)
|
||
|
/* 199E0 8003E5E0 0C00F7E8 */ jal func_8003DFA0
|
||
|
/* 199E4 8003E5E4 00B12821 */ addu $a1, $a1, $s1
|
||
|
.L8003E5E8:
|
||
|
/* 199E8 8003E5E8 0C00AB3B */ jal func_8002ACEC
|
||
|
/* 199EC 8003E5EC 0200202D */ daddu $a0, $s0, $zero
|
||
|
/* 199F0 8003E5F0 8FBF0020 */ lw $ra, 0x20($sp)
|
||
|
/* 199F4 8003E5F4 8FB3001C */ lw $s3, 0x1c($sp)
|
||
|
/* 199F8 8003E5F8 8FB20018 */ lw $s2, 0x18($sp)
|
||
|
/* 199FC 8003E5FC 8FB10014 */ lw $s1, 0x14($sp)
|
||
|
/* 19A00 8003E600 8FB00010 */ lw $s0, 0x10($sp)
|
||
|
/* 19A04 8003E604 03E00008 */ jr $ra
|
||
|
/* 19A08 8003E608 27BD0028 */ addiu $sp, $sp, 0x28
|