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

96 lines
4.1 KiB
ArmAsm

.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
glabel func_80055110
/* 030510 80055110 24030007 */ addiu $v1, $zero, 7
/* 030514 80055114 2482001C */ addiu $v0, $a0, 0x1c
.L80055118:
/* 030518 80055118 AC400238 */ sw $zero, 0x238($v0)
/* 03051C 8005511C 2463FFFF */ addiu $v1, $v1, -1
/* 030520 80055120 0461FFFD */ bgez $v1, .L80055118
/* 030524 80055124 2442FFFC */ addiu $v0, $v0, -4
/* 030528 80055128 A080025B */ sb $zero, 0x25b($a0)
/* 03052C 8005512C A080025A */ sb $zero, 0x25a($a0)
/* 030530 80055130 A0800259 */ sb $zero, 0x259($a0)
/* 030534 80055134 03E00008 */ jr $ra
/* 030538 80055138 A0800258 */ sb $zero, 0x258($a0)
/* 03053C 8005513C 3085000F */ andi $a1, $a0, 0xf
/* 030540 80055140 10A00025 */ beqz $a1, .L800551D8
/* 030544 80055144 0000302D */ daddu $a2, $zero, $zero
/* 030548 80055148 24020001 */ addiu $v0, $zero, 1
/* 03054C 8005514C 14A20005 */ bne $a1, $v0, .L80055164
/* 030550 80055150 24020002 */ addiu $v0, $zero, 2
/* 030554 80055154 3C06800A */ lui $a2, 0x800a
/* 030558 80055158 8CC6A664 */ lw $a2, -0x599c($a2)
/* 03055C 8005515C 0801545D */ j .L80055174
/* 030560 80055160 00000000 */ nop
.L80055164:
/* 030564 80055164 14A20003 */ bne $a1, $v0, .L80055174
/* 030568 80055168 00000000 */ nop
/* 03056C 8005516C 3C06800A */ lui $a2, 0x800a
/* 030570 80055170 8CC6A5FC */ lw $a2, -0x5a04($a2)
.L80055174:
/* 030574 80055174 10C00018 */ beqz $a2, .L800551D8
/* 030578 80055178 00000000 */ nop
/* 03057C 8005517C 90C20258 */ lbu $v0, 0x258($a2)
/* 030580 80055180 2C420008 */ sltiu $v0, $v0, 8
/* 030584 80055184 1040000E */ beqz $v0, .L800551C0
/* 030588 80055188 00041902 */ srl $v1, $a0, 4
/* 03058C 8005518C 90C5025A */ lbu $a1, 0x25a($a2)
/* 030590 80055190 00051080 */ sll $v0, $a1, 2
/* 030594 80055194 24A50001 */ addiu $a1, $a1, 1
/* 030598 80055198 00C21021 */ addu $v0, $a2, $v0
/* 03059C 8005519C AC430238 */ sw $v1, 0x238($v0)
/* 0305A0 800551A0 2CA20008 */ sltiu $v0, $a1, 8
/* 0305A4 800551A4 50400001 */ beql $v0, $zero, .L800551AC
/* 0305A8 800551A8 0000282D */ daddu $a1, $zero, $zero
.L800551AC:
/* 0305AC 800551AC 90C20258 */ lbu $v0, 0x258($a2)
/* 0305B0 800551B0 A0C5025A */ sb $a1, 0x25a($a2)
/* 0305B4 800551B4 24420001 */ addiu $v0, $v0, 1
/* 0305B8 800551B8 03E00008 */ jr $ra
/* 0305BC 800551BC A0C20258 */ sb $v0, 0x258($a2)
.L800551C0:
/* 0305C0 800551C0 90C2025B */ lbu $v0, 0x25b($a2)
/* 0305C4 800551C4 24450001 */ addiu $a1, $v0, 1
/* 0305C8 800551C8 2CA20064 */ sltiu $v0, $a1, 0x64
/* 0305CC 800551CC 50400001 */ beql $v0, $zero, .L800551D4
/* 0305D0 800551D0 24050063 */ addiu $a1, $zero, 0x63
.L800551D4:
/* 0305D4 800551D4 A0C5025B */ sb $a1, 0x25b($a2)
.L800551D8:
/* 0305D8 800551D8 03E00008 */ jr $ra
/* 0305DC 800551DC 00000000 */ nop
/* 0305E0 800551E0 27BDFFE0 */ addiu $sp, $sp, -0x20
/* 0305E4 800551E4 0080482D */ daddu $t1, $a0, $zero
/* 0305E8 800551E8 00C0402D */ daddu $t0, $a2, $zero
/* 0305EC 800551EC 30A500FF */ andi $a1, $a1, 0xff
/* 0305F0 800551F0 00051A00 */ sll $v1, $a1, 8
/* 0305F4 800551F4 3C04800A */ lui $a0, 0x800a
/* 0305F8 800551F8 8C84A640 */ lw $a0, -0x59c0($a0)
/* 0305FC 800551FC 0060382D */ daddu $a3, $v1, $zero
/* 030600 80055200 10A00002 */ beqz $a1, .L8005520C
/* 030604 80055204 AFBF0018 */ sw $ra, 0x18($sp)
/* 030608 80055208 346700FF */ ori $a3, $v1, 0xff
.L8005520C:
/* 03060C 8005520C 00061600 */ sll $v0, $a2, 0x18
/* 030610 80055210 04420001 */ bltzl $v0, .L80055218
/* 030614 80055214 2408007F */ addiu $t0, $zero, 0x7f
.L80055218:
/* 030618 80055218 310200FF */ andi $v0, $t0, 0xff
/* 03061C 8005521C 00073400 */ sll $a2, $a3, 0x10
/* 030620 80055220 0120282D */ daddu $a1, $t1, $zero
/* 030624 80055224 00063403 */ sra $a2, $a2, 0x10
/* 030628 80055228 0000382D */ daddu $a3, $zero, $zero
/* 03062C 8005522C 0C012DB6 */ jal func_8004B6D8
/* 030630 80055230 AFA20010 */ sw $v0, 0x10($sp)
/* 030634 80055234 8FBF0018 */ lw $ra, 0x18($sp)
/* 030638 80055238 03E00008 */ jr $ra
/* 03063C 8005523C 27BD0020 */ addiu $sp, $sp, 0x20