papermario/asm/nonmatchings/code_16c8e0/save_tattle_flags.s

104 lines
5.1 KiB
ArmAsm
Raw Normal View History

2020-09-24 05:16:13 +02:00
.set noat # allow manual use of $at
2020-08-04 08:49:11 +02:00
.set noreorder # don't insert nops after branches
glabel save_tattle_flags
2020-09-24 05:16:13 +02:00
/* 1825F0 80253D10 27BDFFC8 */ addiu $sp, $sp, -0x38
/* 1825F4 80253D14 AFB40020 */ sw $s4, 0x20($sp)
/* 1825F8 80253D18 0080A02D */ daddu $s4, $a0, $zero
/* 1825FC 80253D1C AFB7002C */ sw $s7, 0x2c($sp)
/* 182600 80253D20 3C17800E */ lui $s7, 0x800e
/* 182604 80253D24 26F7C070 */ addiu $s7, $s7, -0x3f90
/* 182608 80253D28 240600FF */ addiu $a2, $zero, 0xff
/* 18260C 80253D2C AFB60028 */ sw $s6, 0x28($sp)
/* 182610 80253D30 24160001 */ addiu $s6, $zero, 1
/* 182614 80253D34 3C058028 */ lui $a1, 0x8028
/* 182618 80253D38 24A54044 */ addiu $a1, $a1, 0x4044
/* 18261C 80253D3C AFBF0030 */ sw $ra, 0x30($sp)
/* 182620 80253D40 AFB50024 */ sw $s5, 0x24($sp)
/* 182624 80253D44 AFB3001C */ sw $s3, 0x1c($sp)
/* 182628 80253D48 AFB20018 */ sw $s2, 0x18($sp)
/* 18262C 80253D4C AFB10014 */ sw $s1, 0x14($sp)
/* 182630 80253D50 AFB00010 */ sw $s0, 0x10($sp)
2020-08-04 08:49:11 +02:00
.L80253D54:
2020-09-24 05:16:13 +02:00
/* 182634 80253D54 8CA40000 */ lw $a0, ($a1)
/* 182638 80253D58 10800029 */ beqz $a0, .L80253E00
/* 18263C 80253D5C 00000000 */ nop
/* 182640 80253D60 90820000 */ lbu $v0, ($a0)
/* 182644 80253D64 10460024 */ beq $v0, $a2, .L80253DF8
/* 182648 80253D68 0080182D */ daddu $v1, $a0, $zero
2020-08-04 08:49:11 +02:00
.L80253D6C:
2020-09-24 05:16:13 +02:00
/* 18264C 80253D6C 90620000 */ lbu $v0, ($v1)
/* 182650 80253D70 5682001E */ bnel $s4, $v0, .L80253DEC
/* 182654 80253D74 24630001 */ addiu $v1, $v1, 1
/* 182658 80253D78 90820000 */ lbu $v0, ($a0)
/* 18265C 80253D7C 10460033 */ beq $v0, $a2, .L80253E4C
/* 182660 80253D80 241500FF */ addiu $s5, $zero, 0xff
/* 182664 80253D84 0080982D */ daddu $s3, $a0, $zero
2020-08-04 08:49:11 +02:00
.L80253D88:
2020-09-24 05:16:13 +02:00
/* 182668 80253D88 92740000 */ lbu $s4, ($s3)
/* 18266C 80253D8C 06810002 */ bgez $s4, .L80253D98
/* 182670 80253D90 0280802D */ daddu $s0, $s4, $zero
/* 182674 80253D94 26900007 */ addiu $s0, $s4, 7
2020-08-04 08:49:11 +02:00
.L80253D98:
2020-09-24 05:16:13 +02:00
/* 182678 80253D98 001080C3 */ sra $s0, $s0, 3
/* 18267C 80253D9C 2611016D */ addiu $s1, $s0, 0x16d
/* 182680 80253DA0 0C05154E */ jal get_global_byte
/* 182684 80253DA4 0220202D */ daddu $a0, $s1, $zero
/* 182688 80253DA8 001018C0 */ sll $v1, $s0, 3
/* 18268C 80253DAC 02831823 */ subu $v1, $s4, $v1
/* 182690 80253DB0 00761804 */ sllv $v1, $s6, $v1
/* 182694 80253DB4 00439025 */ or $s2, $v0, $v1
/* 182698 80253DB8 0220202D */ daddu $a0, $s1, $zero
/* 18269C 80253DBC 0C051548 */ jal set_global_byte
/* 1826A0 80253DC0 0240282D */ daddu $a1, $s2, $zero
/* 1826A4 80253DC4 02F08021 */ addu $s0, $s7, $s0
/* 1826A8 80253DC8 92020440 */ lbu $v0, 0x440($s0)
/* 1826AC 80253DCC 26730001 */ addiu $s3, $s3, 1
/* 1826B0 80253DD0 00521025 */ or $v0, $v0, $s2
/* 1826B4 80253DD4 A2020440 */ sb $v0, 0x440($s0)
/* 1826B8 80253DD8 92620000 */ lbu $v0, ($s3)
/* 1826BC 80253DDC 1055001B */ beq $v0, $s5, .L80253E4C
/* 1826C0 80253DE0 00000000 */ nop
/* 1826C4 80253DE4 08094F62 */ j .L80253D88
/* 1826C8 80253DE8 00000000 */ nop
2020-08-04 08:49:11 +02:00
.L80253DEC:
2020-09-24 05:16:13 +02:00
/* 1826CC 80253DEC 90620000 */ lbu $v0, ($v1)
/* 1826D0 80253DF0 1446FFDE */ bne $v0, $a2, .L80253D6C
/* 1826D4 80253DF4 00000000 */ nop
2020-08-04 08:49:11 +02:00
.L80253DF8:
2020-09-24 05:16:13 +02:00
/* 1826D8 80253DF8 08094F55 */ j .L80253D54
/* 1826DC 80253DFC 24A50004 */ addiu $a1, $a1, 4
2020-08-04 08:49:11 +02:00
.L80253E00:
2020-09-24 05:16:13 +02:00
/* 1826E0 80253E00 06810002 */ bgez $s4, .L80253E0C
/* 1826E4 80253E04 0280202D */ daddu $a0, $s4, $zero
/* 1826E8 80253E08 26840007 */ addiu $a0, $s4, 7
2020-08-04 08:49:11 +02:00
.L80253E0C:
2020-09-24 05:16:13 +02:00
/* 1826EC 80253E0C 000488C3 */ sra $s1, $a0, 3
/* 1826F0 80253E10 2630016D */ addiu $s0, $s1, 0x16d
/* 1826F4 80253E14 0C05154E */ jal get_global_byte
/* 1826F8 80253E18 0200202D */ daddu $a0, $s0, $zero
/* 1826FC 80253E1C 001120C0 */ sll $a0, $s1, 3
/* 182700 80253E20 02842023 */ subu $a0, $s4, $a0
/* 182704 80253E24 24030001 */ addiu $v1, $zero, 1
/* 182708 80253E28 00831804 */ sllv $v1, $v1, $a0
/* 18270C 80253E2C 00439025 */ or $s2, $v0, $v1
/* 182710 80253E30 0200202D */ daddu $a0, $s0, $zero
/* 182714 80253E34 0C051548 */ jal set_global_byte
/* 182718 80253E38 0240282D */ daddu $a1, $s2, $zero
/* 18271C 80253E3C 02F11821 */ addu $v1, $s7, $s1
/* 182720 80253E40 90620440 */ lbu $v0, 0x440($v1)
/* 182724 80253E44 00521025 */ or $v0, $v0, $s2
/* 182728 80253E48 A0620440 */ sb $v0, 0x440($v1)
2020-08-04 08:49:11 +02:00
.L80253E4C:
2020-09-24 05:16:13 +02:00
/* 18272C 80253E4C 8FBF0030 */ lw $ra, 0x30($sp)
/* 182730 80253E50 8FB7002C */ lw $s7, 0x2c($sp)
/* 182734 80253E54 8FB60028 */ lw $s6, 0x28($sp)
/* 182738 80253E58 8FB50024 */ lw $s5, 0x24($sp)
/* 18273C 80253E5C 8FB40020 */ lw $s4, 0x20($sp)
/* 182740 80253E60 8FB3001C */ lw $s3, 0x1c($sp)
/* 182744 80253E64 8FB20018 */ lw $s2, 0x18($sp)
/* 182748 80253E68 8FB10014 */ lw $s1, 0x14($sp)
/* 18274C 80253E6C 8FB00010 */ lw $s0, 0x10($sp)
/* 182750 80253E70 03E00008 */ jr $ra
/* 182754 80253E74 27BD0038 */ addiu $sp, $sp, 0x38