mirror of
https://github.com/pmret/papermario.git
synced 2024-11-18 08:52:40 +01:00
a8c85b377a
* split jp gfxRetrace_Callback * func_80025F70 * use 1370_len_7d0 on jp * rename 1370_len_7d0 to main * coverage.py
122 lines
5.9 KiB
ArmAsm
122 lines
5.9 KiB
ArmAsm
.set noat # allow manual use of $at
|
|
.set noreorder # don't insert nops after branches
|
|
|
|
glabel func_80059A00
|
|
/* 34E00 80059A00 3C02800A */ lui $v0, %hi(D_8009A630)
|
|
/* 34E04 80059A04 8C42A630 */ lw $v0, %lo(D_8009A630)($v0)
|
|
/* 34E08 80059A08 27BDFFD8 */ addiu $sp, $sp, -0x28
|
|
/* 34E0C 80059A0C AFBF0020 */ sw $ra, 0x20($sp)
|
|
/* 34E10 80059A10 AFB3001C */ sw $s3, 0x1c($sp)
|
|
/* 34E14 80059A14 AFB20018 */ sw $s2, 0x18($sp)
|
|
/* 34E18 80059A18 AFB10014 */ sw $s1, 0x14($sp)
|
|
/* 34E1C 80059A1C 30420C00 */ andi $v0, $v0, 0xc00
|
|
/* 34E20 80059A20 14400059 */ bnez $v0, .L80059B88
|
|
/* 34E24 80059A24 AFB00010 */ sw $s0, 0x10($sp)
|
|
/* 34E28 80059A28 0000902D */ daddu $s2, $zero, $zero
|
|
/* 34E2C 80059A2C 3C10800A */ lui $s0, %hi(D_800A1E10)
|
|
/* 34E30 80059A30 26101E10 */ addiu $s0, $s0, %lo(D_800A1E10)
|
|
/* 34E34 80059A34 24040003 */ addiu $a0, $zero, 3
|
|
.L80059A38:
|
|
/* 34E38 80059A38 8E030000 */ lw $v1, ($s0)
|
|
/* 34E3C 80059A3C 30620001 */ andi $v0, $v1, 1
|
|
/* 34E40 80059A40 10400007 */ beqz $v0, .L80059A60
|
|
/* 34E44 80059A44 26520001 */ addiu $s2, $s2, 1
|
|
/* 34E48 80059A48 30620002 */ andi $v0, $v1, 2
|
|
/* 34E4C 80059A4C 14400004 */ bnez $v0, .L80059A60
|
|
/* 34E50 80059A50 00000000 */ nop
|
|
/* 34E54 80059A54 34620002 */ ori $v0, $v1, 2
|
|
/* 34E58 80059A58 AE020000 */ sw $v0, ($s0)
|
|
/* 34E5C 80059A5C AE04000C */ sw $a0, 0xc($s0)
|
|
.L80059A60:
|
|
/* 34E60 80059A60 2A42000F */ slti $v0, $s2, 0xf
|
|
/* 34E64 80059A64 1440FFF4 */ bnez $v0, .L80059A38
|
|
/* 34E68 80059A68 26100020 */ addiu $s0, $s0, 0x20
|
|
/* 34E6C 80059A6C 0000902D */ daddu $s2, $zero, $zero
|
|
/* 34E70 80059A70 2413FFFD */ addiu $s3, $zero, -3
|
|
/* 34E74 80059A74 3C11800B */ lui $s1, %hi(D_800B4378)
|
|
/* 34E78 80059A78 26314378 */ addiu $s1, $s1, %lo(D_800B4378)
|
|
.L80059A7C:
|
|
/* 34E7C 80059A7C 8E300000 */ lw $s0, ($s1)
|
|
/* 34E80 80059A80 52000020 */ beql $s0, $zero, .L80059B04
|
|
/* 34E84 80059A84 26520001 */ addiu $s2, $s2, 1
|
|
/* 34E88 80059A88 8E020000 */ lw $v0, ($s0)
|
|
/* 34E8C 80059A8C 30420001 */ andi $v0, $v0, 1
|
|
/* 34E90 80059A90 5040001C */ beql $v0, $zero, .L80059B04
|
|
/* 34E94 80059A94 26520001 */ addiu $s2, $s2, 1
|
|
/* 34E98 80059A98 8E030010 */ lw $v1, 0x10($s0)
|
|
/* 34E9C 80059A9C 8C620000 */ lw $v0, ($v1)
|
|
/* 34EA0 80059AA0 3C048007 */ lui $a0, %hi(gGameStatusPtr)
|
|
/* 34EA4 80059AA4 8C84417C */ lw $a0, %lo(gGameStatusPtr)($a0)
|
|
/* 34EA8 80059AA8 00531024 */ and $v0, $v0, $s3
|
|
/* 34EAC 80059AAC AC620000 */ sw $v0, ($v1)
|
|
/* 34EB0 80059AB0 80820070 */ lb $v0, 0x70($a0)
|
|
/* 34EB4 80059AB4 10400007 */ beqz $v0, .L80059AD4
|
|
/* 34EB8 80059AB8 00000000 */ nop
|
|
/* 34EBC 80059ABC 8E020000 */ lw $v0, ($s0)
|
|
/* 34EC0 80059AC0 30420004 */ andi $v0, $v0, 4
|
|
/* 34EC4 80059AC4 5040000F */ beql $v0, $zero, .L80059B04
|
|
/* 34EC8 80059AC8 26520001 */ addiu $s2, $s2, 1
|
|
/* 34ECC 80059ACC 080166B9 */ j .L80059AE4
|
|
/* 34ED0 80059AD0 00000000 */ nop
|
|
.L80059AD4:
|
|
/* 34ED4 80059AD4 8E020000 */ lw $v0, ($s0)
|
|
/* 34ED8 80059AD8 30420004 */ andi $v0, $v0, 4
|
|
/* 34EDC 80059ADC 54400009 */ bnel $v0, $zero, .L80059B04
|
|
/* 34EE0 80059AE0 26520001 */ addiu $s2, $s2, 1
|
|
.L80059AE4:
|
|
/* 34EE4 80059AE4 8E020010 */ lw $v0, 0x10($s0)
|
|
/* 34EE8 80059AE8 8C420010 */ lw $v0, 0x10($v0)
|
|
/* 34EEC 80059AEC 0040F809 */ jalr $v0
|
|
/* 34EF0 80059AF0 0200202D */ daddu $a0, $s0, $zero
|
|
/* 34EF4 80059AF4 8E020000 */ lw $v0, ($s0)
|
|
/* 34EF8 80059AF8 34420008 */ ori $v0, $v0, 8
|
|
/* 34EFC 80059AFC AE020000 */ sw $v0, ($s0)
|
|
/* 34F00 80059B00 26520001 */ addiu $s2, $s2, 1
|
|
.L80059B04:
|
|
/* 34F04 80059B04 2A420060 */ slti $v0, $s2, 0x60
|
|
/* 34F08 80059B08 1440FFDC */ bnez $v0, .L80059A7C
|
|
/* 34F0C 80059B0C 26310004 */ addiu $s1, $s1, 4
|
|
/* 34F10 80059B10 0000902D */ daddu $s2, $zero, $zero
|
|
/* 34F14 80059B14 3C10800A */ lui $s0, %hi(D_800A1E10)
|
|
/* 34F18 80059B18 26101E10 */ addiu $s0, $s0, %lo(D_800A1E10)
|
|
/* 34F1C 80059B1C 2611001C */ addiu $s1, $s0, 0x1c
|
|
.L80059B20:
|
|
/* 34F20 80059B20 8E030000 */ lw $v1, ($s0)
|
|
/* 34F24 80059B24 30620001 */ andi $v0, $v1, 1
|
|
/* 34F28 80059B28 50400013 */ beql $v0, $zero, .L80059B78
|
|
/* 34F2C 80059B2C 26520001 */ addiu $s2, $s2, 1
|
|
/* 34F30 80059B30 30620002 */ andi $v0, $v1, 2
|
|
/* 34F34 80059B34 50400010 */ beql $v0, $zero, .L80059B78
|
|
/* 34F38 80059B38 26520001 */ addiu $s2, $s2, 1
|
|
/* 34F3C 80059B3C 8E22FFF0 */ lw $v0, -0x10($s1)
|
|
/* 34F40 80059B40 10400003 */ beqz $v0, .L80059B50
|
|
/* 34F44 80059B44 2442FFFF */ addiu $v0, $v0, -1
|
|
/* 34F48 80059B48 080166DD */ j .L80059B74
|
|
/* 34F4C 80059B4C AE22FFF0 */ sw $v0, -0x10($s1)
|
|
.L80059B50:
|
|
/* 34F50 80059B50 8E240000 */ lw $a0, ($s1)
|
|
/* 34F54 80059B54 50800005 */ beql $a0, $zero, .L80059B6C
|
|
/* 34F58 80059B58 AE000000 */ sw $zero, ($s0)
|
|
/* 34F5C 80059B5C 0C00AB0E */ jal func_8002AC38
|
|
/* 34F60 80059B60 00000000 */ nop
|
|
/* 34F64 80059B64 AE200000 */ sw $zero, ($s1)
|
|
/* 34F68 80059B68 AE000000 */ sw $zero, ($s0)
|
|
.L80059B6C:
|
|
/* 34F6C 80059B6C 0C019A3C */ jal func_800668F0
|
|
/* 34F70 80059B70 0240202D */ daddu $a0, $s2, $zero
|
|
.L80059B74:
|
|
/* 34F74 80059B74 26520001 */ addiu $s2, $s2, 1
|
|
.L80059B78:
|
|
/* 34F78 80059B78 26310020 */ addiu $s1, $s1, 0x20
|
|
/* 34F7C 80059B7C 2A42000F */ slti $v0, $s2, 0xf
|
|
/* 34F80 80059B80 1440FFE7 */ bnez $v0, .L80059B20
|
|
/* 34F84 80059B84 26100020 */ addiu $s0, $s0, 0x20
|
|
.L80059B88:
|
|
/* 34F88 80059B88 8FBF0020 */ lw $ra, 0x20($sp)
|
|
/* 34F8C 80059B8C 8FB3001C */ lw $s3, 0x1c($sp)
|
|
/* 34F90 80059B90 8FB20018 */ lw $s2, 0x18($sp)
|
|
/* 34F94 80059B94 8FB10014 */ lw $s1, 0x14($sp)
|
|
/* 34F98 80059B98 8FB00010 */ lw $s0, 0x10($sp)
|
|
/* 34F9C 80059B9C 03E00008 */ jr $ra
|
|
/* 34FA0 80059BA0 27BD0028 */ addiu $sp, $sp, 0x28
|