papermario/asm/nonmatchings/code_2e230_len_2190/func_80053654.s
2020-08-12 22:37:16 -04:00

169 lines
7.5 KiB
ArmAsm

.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
glabel func_80053654
/* 02EA54 80053654 27BDFFC8 */ addiu $sp, $sp, -0x38
/* 02EA58 80053658 AFB3002C */ sw $s3, 0x2c($sp)
/* 02EA5C 8005365C 0080982D */ daddu $s3, $a0, $zero
/* 02EA60 80053660 AFBF0034 */ sw $ra, 0x34($sp)
/* 02EA64 80053664 AFB40030 */ sw $s4, 0x30($sp)
/* 02EA68 80053668 AFB20028 */ sw $s2, 0x28($sp)
/* 02EA6C 8005366C AFB10024 */ sw $s1, 0x24($sp)
/* 02EA70 80053670 AFB00020 */ sw $s0, 0x20($sp)
/* 02EA74 80053674 9262130C */ lbu $v0, 0x130c($s3)
/* 02EA78 80053678 24100002 */ addiu $s0, $zero, 2
/* 02EA7C 8005367C 14500003 */ bne $v0, $s0, .L8005368C
/* 02EA80 80053680 24020001 */ addiu $v0, $zero, 1
/* 02EA84 80053684 0C015FAC */ jal func_80057EB0
/* 02EA88 80053688 A262130C */ sb $v0, 0x130c($s3)
.L8005368C:
/* 02EA8C 8005368C 92620050 */ lbu $v0, 0x50($s3)
/* 02EA90 80053690 1040001B */ beqz $v0, .L80053700
/* 02EA94 80053694 00000000 */ nop
/* 02EA98 80053698 9262130C */ lbu $v0, 0x130c($s3)
/* 02EA9C 8005369C 14400018 */ bnez $v0, .L80053700
/* 02EAA0 800536A0 24020001 */ addiu $v0, $zero, 1
/* 02EAA4 800536A4 92630053 */ lbu $v1, 0x53($s3)
/* 02EAA8 800536A8 10620005 */ beq $v1, $v0, .L800536C0
/* 02EAAC 800536AC 00000000 */ nop
/* 02EAB0 800536B0 10700009 */ beq $v1, $s0, .L800536D8
/* 02EAB4 800536B4 00000000 */ nop
/* 02EAB8 800536B8 08014DBD */ j .L800536F4
/* 02EABC 800536BC 00000000 */ nop
.L800536C0:
/* 02EAC0 800536C0 0C015F72 */ jal func_80057DC8
/* 02EAC4 800536C4 92640052 */ lbu $a0, 0x52($s3)
/* 02EAC8 800536C8 0C015F82 */ jal func_80057E08
/* 02EACC 800536CC 92640051 */ lbu $a0, 0x51($s3)
/* 02EAD0 800536D0 08014DC0 */ j .L80053700
/* 02EAD4 800536D4 A2600050 */ sb $zero, 0x50($s3)
.L800536D8:
/* 02EAD8 800536D8 92640052 */ lbu $a0, 0x52($s3)
/* 02EADC 800536DC 0C015F72 */ jal func_80057DC8
/* 02EAE0 800536E0 00000000 */ nop
/* 02EAE4 800536E4 0C015F97 */ jal func_80057E5C
/* 02EAE8 800536E8 92640051 */ lbu $a0, 0x51($s3)
/* 02EAEC 800536EC 08014DC0 */ j .L80053700
/* 02EAF0 800536F0 A2600050 */ sb $zero, 0x50($s3)
.L800536F4:
/* 02EAF4 800536F4 0C015FAC */ jal func_80057EB0
/* 02EAF8 800536F8 00000000 */ nop
/* 02EAFC 800536FC A2600050 */ sb $zero, 0x50($s3)
.L80053700:
/* 02EB00 80053700 92620041 */ lbu $v0, 0x41($s3)
/* 02EB04 80053704 10400005 */ beqz $v0, .L8005371C
/* 02EB08 80053708 00000000 */ nop
/* 02EB0C 8005370C 92650040 */ lbu $a1, 0x40($s3)
/* 02EB10 80053710 0C015B73 */ jal func_80056DCC
/* 02EB14 80053714 0000202D */ daddu $a0, $zero, $zero
/* 02EB18 80053718 A2600041 */ sb $zero, 0x41($s3)
.L8005371C:
/* 02EB1C 8005371C 92620045 */ lbu $v0, 0x45($s3)
/* 02EB20 80053720 10400005 */ beqz $v0, .L80053738
/* 02EB24 80053724 00000000 */ nop
/* 02EB28 80053728 92650044 */ lbu $a1, 0x44($s3)
/* 02EB2C 8005372C 0C015B73 */ jal func_80056DCC
/* 02EB30 80053730 24040001 */ addiu $a0, $zero, 1
/* 02EB34 80053734 A2600045 */ sb $zero, 0x45($s3)
.L80053738:
/* 02EB38 80053738 92620049 */ lbu $v0, 0x49($s3)
/* 02EB3C 8005373C 10400005 */ beqz $v0, .L80053754
/* 02EB40 80053740 00000000 */ nop
/* 02EB44 80053744 92650048 */ lbu $a1, 0x48($s3)
/* 02EB48 80053748 0C015B73 */ jal func_80056DCC
/* 02EB4C 8005374C 24040002 */ addiu $a0, $zero, 2
/* 02EB50 80053750 A2600049 */ sb $zero, 0x49($s3)
.L80053754:
/* 02EB54 80053754 9262004D */ lbu $v0, 0x4d($s3)
/* 02EB58 80053758 10400006 */ beqz $v0, .L80053774
/* 02EB5C 8005375C 0000902D */ daddu $s2, $zero, $zero
/* 02EB60 80053760 9265004C */ lbu $a1, 0x4c($s3)
/* 02EB64 80053764 0C015B73 */ jal func_80056DCC
/* 02EB68 80053768 24040003 */ addiu $a0, $zero, 3
/* 02EB6C 8005376C A260004D */ sb $zero, 0x4d($s3)
/* 02EB70 80053770 0000902D */ daddu $s2, $zero, $zero
.L80053774:
/* 02EB74 80053774 24141320 */ addiu $s4, $zero, 0x1320
.L80053778:
/* 02EB78 80053778 02748021 */ addu $s0, $s3, $s4
/* 02EB7C 8005377C 92020042 */ lbu $v0, 0x42($s0)
/* 02EB80 80053780 92110043 */ lbu $s1, 0x43($s0)
/* 02EB84 80053784 10400007 */ beqz $v0, .L800537A4
/* 02EB88 80053788 32220002 */ andi $v0, $s1, 2
/* 02EB8C 8005378C 0C015BBA */ jal func_80056EE8
/* 02EB90 80053790 324400FF */ andi $a0, $s2, 0xff
/* 02EB94 80053794 A2000042 */ sb $zero, 0x42($s0)
/* 02EB98 80053798 AE00001C */ sw $zero, 0x1c($s0)
/* 02EB9C 8005379C A2000045 */ sb $zero, 0x45($s0)
/* 02EBA0 800537A0 32220002 */ andi $v0, $s1, 2
.L800537A4:
/* 02EBA4 800537A4 10400013 */ beqz $v0, .L800537F4
/* 02EBA8 800537A8 0200202D */ daddu $a0, $s0, $zero
/* 02EBAC 800537AC 0C014AFE */ jal func_80052BF8
/* 02EBB0 800537B0 26050014 */ addiu $a1, $s0, 0x14
/* 02EBB4 800537B4 8602000C */ lh $v0, 0xc($s0)
/* 02EBB8 800537B8 92050010 */ lbu $a1, 0x10($s0)
/* 02EBBC 800537BC AFA20010 */ sw $v0, 0x10($sp)
/* 02EBC0 800537C0 9202000E */ lbu $v0, 0xe($s0)
/* 02EBC4 800537C4 AFA20014 */ sw $v0, 0x14($sp)
/* 02EBC8 800537C8 9202000F */ lbu $v0, 0xf($s0)
/* 02EBCC 800537CC AFA20018 */ sw $v0, 0x18($sp)
/* 02EBD0 800537D0 8E020008 */ lw $v0, 8($s0)
/* 02EBD4 800537D4 AFA2001C */ sw $v0, 0x1c($sp)
/* 02EBD8 800537D8 8E060000 */ lw $a2, ($s0)
/* 02EBDC 800537DC 8E070004 */ lw $a3, 4($s0)
/* 02EBE0 800537E0 0C015BE9 */ jal func_80056FA4
/* 02EBE4 800537E4 324400FF */ andi $a0, $s2, 0xff
/* 02EBE8 800537E8 92020044 */ lbu $v0, 0x44($s0)
/* 02EBEC 800537EC 08014E15 */ j .L80053854
/* 02EBF0 800537F0 A2020045 */ sb $v0, 0x45($s0)
.L800537F4:
/* 02EBF4 800537F4 32220008 */ andi $v0, $s1, 8
/* 02EBF8 800537F8 10400005 */ beqz $v0, .L80053810
/* 02EBFC 800537FC 32220004 */ andi $v0, $s1, 4
/* 02EC00 80053800 8E050004 */ lw $a1, 4($s0)
/* 02EC04 80053804 0C015CD1 */ jal func_80057344
/* 02EC08 80053808 324400FF */ andi $a0, $s2, 0xff
/* 02EC0C 8005380C 32220004 */ andi $v0, $s1, 4
.L80053810:
/* 02EC10 80053810 1040000A */ beqz $v0, .L8005383C
/* 02EC14 80053814 32220010 */ andi $v0, $s1, 0x10
/* 02EC18 80053818 9202000F */ lbu $v0, 0xf($s0)
/* 02EC1C 8005381C 8605000C */ lh $a1, 0xc($s0)
/* 02EC20 80053820 9207000E */ lbu $a3, 0xe($s0)
/* 02EC24 80053824 AFA20010 */ sw $v0, 0x10($sp)
/* 02EC28 80053828 8E060008 */ lw $a2, 8($s0)
/* 02EC2C 8005382C 0C015CDB */ jal func_8005736C
/* 02EC30 80053830 324400FF */ andi $a0, $s2, 0xff
/* 02EC34 80053834 08014E16 */ j .L80053858
/* 02EC38 80053838 A2000043 */ sb $zero, 0x43($s0)
.L8005383C:
/* 02EC3C 8005383C 50400006 */ beql $v0, $zero, .L80053858
/* 02EC40 80053840 A2000043 */ sb $zero, 0x43($s0)
/* 02EC44 80053844 9205000E */ lbu $a1, 0xe($s0)
/* 02EC48 80053848 9206000F */ lbu $a2, 0xf($s0)
/* 02EC4C 8005384C 0C015D52 */ jal func_80057548
/* 02EC50 80053850 324400FF */ andi $a0, $s2, 0xff
.L80053854:
/* 02EC54 80053854 A2000043 */ sb $zero, 0x43($s0)
.L80053858:
/* 02EC58 80053858 26520001 */ addiu $s2, $s2, 1
/* 02EC5C 8005385C 2E420018 */ sltiu $v0, $s2, 0x18
/* 02EC60 80053860 1440FFC5 */ bnez $v0, .L80053778
/* 02EC64 80053864 26940048 */ addiu $s4, $s4, 0x48
/* 02EC68 80053868 8FBF0034 */ lw $ra, 0x34($sp)
/* 02EC6C 8005386C 8FB40030 */ lw $s4, 0x30($sp)
/* 02EC70 80053870 8FB3002C */ lw $s3, 0x2c($sp)
/* 02EC74 80053874 8FB20028 */ lw $s2, 0x28($sp)
/* 02EC78 80053878 8FB10024 */ lw $s1, 0x24($sp)
/* 02EC7C 8005387C 8FB00020 */ lw $s0, 0x20($sp)
/* 02EC80 80053880 03E00008 */ jr $ra
/* 02EC84 80053884 27BD0038 */ addiu $sp, $sp, 0x38