papermario/asm/nonmatchings/code_28910_len_5090/func_800501A8.s
2021-01-11 21:40:52 +09:00

92 lines
4.6 KiB
ArmAsm

.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
glabel func_800501A8
/* 2B5A8 800501A8 27BDFFD8 */ addiu $sp, $sp, -0x28
/* 2B5AC 800501AC AFB3001C */ sw $s3, 0x1c($sp)
/* 2B5B0 800501B0 0080982D */ daddu $s3, $a0, $zero
/* 2B5B4 800501B4 AFB20018 */ sw $s2, 0x18($sp)
/* 2B5B8 800501B8 00A0902D */ daddu $s2, $a1, $zero
/* 2B5BC 800501BC AFBF0020 */ sw $ra, 0x20($sp)
/* 2B5C0 800501C0 AFB10014 */ sw $s1, 0x14($sp)
/* 2B5C4 800501C4 AFB00010 */ sw $s0, 0x10($sp)
/* 2B5C8 800501C8 966500D4 */ lhu $a1, 0xd4($s3)
/* 2B5CC 800501CC 8E640064 */ lw $a0, 0x64($s3)
/* 2B5D0 800501D0 92620170 */ lbu $v0, 0x170($s3)
/* 2B5D4 800501D4 926300D6 */ lbu $v1, 0xd6($s3)
/* 2B5D8 800501D8 0043102B */ sltu $v0, $v0, $v1
/* 2B5DC 800501DC 10400005 */ beqz $v0, .L800501F4
/* 2B5E0 800501E0 00A42821 */ addu $a1, $a1, $a0
/* 2B5E4 800501E4 92630170 */ lbu $v1, 0x170($s3)
/* 2B5E8 800501E8 00031040 */ sll $v0, $v1, 1
/* 2B5EC 800501EC 00431021 */ addu $v0, $v0, $v1
/* 2B5F0 800501F0 00A22821 */ addu $a1, $a1, $v0
.L800501F4:
/* 2B5F4 800501F4 8E420000 */ lw $v0, ($s2)
/* 2B5F8 800501F8 AE420008 */ sw $v0, 8($s2)
/* 2B5FC 800501FC 90A20000 */ lbu $v0, ($a1)
/* 2B600 80050200 90A30001 */ lbu $v1, 1($a1)
/* 2B604 80050204 8E640064 */ lw $a0, 0x64($s3)
/* 2B608 80050208 00021200 */ sll $v0, $v0, 8
/* 2B60C 8005020C 00431021 */ addu $v0, $v0, $v1
/* 2B610 80050210 00441021 */ addu $v0, $v0, $a0
/* 2B614 80050214 AE420000 */ sw $v0, ($s2)
/* 2B618 80050218 90A20002 */ lbu $v0, 2($a1)
/* 2B61C 8005021C 9243004D */ lbu $v1, 0x4d($s2)
/* 2B620 80050220 1060001B */ beqz $v1, .L80050290
/* 2B624 80050224 A2420058 */ sb $v0, 0x58($s2)
/* 2B628 80050228 92500052 */ lbu $s0, 0x52($s2)
/* 2B62C 8005022C 92420053 */ lbu $v0, 0x53($s2)
/* 2B630 80050230 A240004D */ sb $zero, 0x4d($s2)
/* 2B634 80050234 0202102B */ sltu $v0, $s0, $v0
/* 2B638 80050238 10400015 */ beqz $v0, .L80050290
/* 2B63C 8005023C AE40002C */ sw $zero, 0x2c($s2)
/* 2B640 80050240 001010C0 */ sll $v0, $s0, 3
/* 2B644 80050244 00501021 */ addu $v0, $v0, $s0
/* 2B648 80050248 000210C0 */ sll $v0, $v0, 3
/* 2B64C 8005024C 24511320 */ addiu $s1, $v0, 0x1320
.L80050250:
/* 2B650 80050250 8E620000 */ lw $v0, ($s3)
/* 2B654 80050254 00512021 */ addu $a0, $v0, $s1
/* 2B658 80050258 90830045 */ lbu $v1, 0x45($a0)
/* 2B65C 8005025C 92620234 */ lbu $v0, 0x234($s3)
/* 2B660 80050260 14620006 */ bne $v1, $v0, .L8005027C
/* 2B664 80050264 00000000 */ nop
/* 2B668 80050268 8C82001C */ lw $v0, 0x1c($a0)
/* 2B66C 8005026C 10400003 */ beqz $v0, .L8005027C
/* 2B670 80050270 00000000 */ nop
/* 2B674 80050274 0C014E31 */ jal func_800538C4
/* 2B678 80050278 320500FF */ andi $a1, $s0, 0xff
.L8005027C:
/* 2B67C 8005027C 92420053 */ lbu $v0, 0x53($s2)
/* 2B680 80050280 26100001 */ addiu $s0, $s0, 1
/* 2B684 80050284 0202102B */ sltu $v0, $s0, $v0
/* 2B688 80050288 1440FFF1 */ bnez $v0, .L80050250
/* 2B68C 8005028C 26310048 */ addiu $s1, $s1, 0x48
.L80050290:
/* 2B690 80050290 9242004E */ lbu $v0, 0x4e($s2)
/* 2B694 80050294 10400006 */ beqz $v0, .L800502B0
/* 2B698 80050298 0260202D */ daddu $a0, $s3, $zero
/* 2B69C 8005029C 0240282D */ daddu $a1, $s2, $zero
/* 2B6A0 800502A0 A240004E */ sb $zero, 0x4e($s2)
/* 2B6A4 800502A4 92660171 */ lbu $a2, 0x171($s3)
/* 2B6A8 800502A8 0C014222 */ jal func_80050888
/* 2B6AC 800502AC 24070090 */ addiu $a3, $zero, 0x90
.L800502B0:
/* 2B6B0 800502B0 A6400046 */ sh $zero, 0x46($s2)
/* 2B6B4 800502B4 A2400048 */ sb $zero, 0x48($s2)
/* 2B6B8 800502B8 A240004C */ sb $zero, 0x4c($s2)
/* 2B6BC 800502BC A6400038 */ sh $zero, 0x38($s2)
/* 2B6C0 800502C0 A2400056 */ sb $zero, 0x56($s2)
/* 2B6C4 800502C4 AE400024 */ sw $zero, 0x24($s2)
/* 2B6C8 800502C8 A2400057 */ sb $zero, 0x57($s2)
/* 2B6CC 800502CC 92620235 */ lbu $v0, 0x235($s3)
/* 2B6D0 800502D0 A242005B */ sb $v0, 0x5b($s2)
/* 2B6D4 800502D4 8FBF0020 */ lw $ra, 0x20($sp)
/* 2B6D8 800502D8 8FB3001C */ lw $s3, 0x1c($sp)
/* 2B6DC 800502DC 8FB20018 */ lw $s2, 0x18($sp)
/* 2B6E0 800502E0 8FB10014 */ lw $s1, 0x14($sp)
/* 2B6E4 800502E4 8FB00010 */ lw $s0, 0x10($sp)
/* 2B6E8 800502E8 03E00008 */ jr $ra
/* 2B6EC 800502EC 27BD0028 */ addiu $sp, $sp, 0x28