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

488 lines
22 KiB
ArmAsm

.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
glabel func_8004FED0
/* 02B2D0 8004FED0 908200D6 */ lbu $v0, 0xd6($a0)
/* 02B2D4 8004FED4 948600D4 */ lhu $a2, 0xd4($a0)
/* 02B2D8 8004FED8 3044007F */ andi $a0, $v0, 0x7f
/* 02B2DC 8004FEDC 54800001 */ bnel $a0, $zero, .L8004FEE4
/* 02B2E0 8004FEE0 00042600 */ sll $a0, $a0, 0x18
.L8004FEE4:
/* 02B2E4 8004FEE4 8CA20018 */ lw $v0, 0x18($a1)
/* 02B2E8 8004FEE8 10820012 */ beq $a0, $v0, .L8004FF34
/* 02B2EC 8004FEEC 00000000 */ nop
/* 02B2F0 8004FEF0 58C00002 */ blezl $a2, .L8004FEFC
/* 02B2F4 8004FEF4 24060001 */ addiu $a2, $zero, 1
/* 02B2F8 8004FEF8 8CA20018 */ lw $v0, 0x18($a1)
.L8004FEFC:
/* 02B2FC 8004FEFC 00821023 */ subu $v0, $a0, $v0
/* 02B300 8004FF00 14C00002 */ bnez $a2, .L8004FF0C
/* 02B304 8004FF04 0046001A */ div $zero, $v0, $a2
/* 02B308 8004FF08 0007000D */ break 7
.L8004FF0C:
/* 02B30C 8004FF0C 2401FFFF */ addiu $at, $zero, -1
/* 02B310 8004FF10 14C10004 */ bne $a2, $at, .L8004FF24
/* 02B314 8004FF14 3C018000 */ lui $at, 0x8000
/* 02B318 8004FF18 14410002 */ bne $v0, $at, .L8004FF24
/* 02B31C 8004FF1C 00000000 */ nop
/* 02B320 8004FF20 0006000D */ break 6
.L8004FF24:
/* 02B324 8004FF24 00001012 */ mflo $v0
/* 02B328 8004FF28 ACA60024 */ sw $a2, 0x24($a1)
/* 02B32C 8004FF2C ACA40020 */ sw $a0, 0x20($a1)
/* 02B330 8004FF30 ACA2001C */ sw $v0, 0x1c($a1)
.L8004FF34:
/* 02B334 8004FF34 03E00008 */ jr $ra
/* 02B338 8004FF38 00000000 */ nop
/* 02B33C 8004FF3C 908300D4 */ lbu $v1, 0xd4($a0)
/* 02B340 8004FF40 24020001 */ addiu $v0, $zero, 1
/* 02B344 8004FF44 A0A00057 */ sb $zero, 0x57($a1)
/* 02B348 8004FF48 A0A20042 */ sb $v0, 0x42($a1)
/* 02B34C 8004FF4C 3063007F */ andi $v1, $v1, 0x7f
/* 02B350 8004FF50 03E00008 */ jr $ra
/* 02B354 8004FF54 A0A3004A */ sb $v1, 0x4a($a1)
/* 02B358 8004FF58 908200D4 */ lbu $v0, 0xd4($a0)
/* 02B35C 8004FF5C 24030001 */ addiu $v1, $zero, 1
/* 02B360 8004FF60 A0A30043 */ sb $v1, 0x43($a1)
/* 02B364 8004FF64 3042007F */ andi $v0, $v0, 0x7f
/* 02B368 8004FF68 03E00008 */ jr $ra
/* 02B36C 8004FF6C A0A2004B */ sb $v0, 0x4b($a1)
/* 02B370 8004FF70 908200D4 */ lbu $v0, 0xd4($a0)
/* 02B374 8004FF74 24030001 */ addiu $v1, $zero, 1
/* 02B378 8004FF78 A0A30041 */ sb $v1, 0x41($a1)
/* 02B37C 8004FF7C 3042007F */ andi $v0, $v0, 0x7f
/* 02B380 8004FF80 03E00008 */ jr $ra
/* 02B384 8004FF84 A0A20049 */ sb $v0, 0x49($a1)
/* 02B388 8004FF88 808300D4 */ lb $v1, 0xd4($a0)
/* 02B38C 8004FF8C 00031040 */ sll $v0, $v1, 1
/* 02B390 8004FF90 00431021 */ addu $v0, $v0, $v1
/* 02B394 8004FF94 000210C0 */ sll $v0, $v0, 3
/* 02B398 8004FF98 00431021 */ addu $v0, $v0, $v1
/* 02B39C 8004FF9C 00021080 */ sll $v0, $v0, 2
/* 02B3A0 8004FFA0 03E00008 */ jr $ra
/* 02B3A4 8004FFA4 A4A20046 */ sh $v0, 0x46($a1)
/* 02B3A8 8004FFA8 908200D4 */ lbu $v0, 0xd4($a0)
/* 02B3AC 8004FFAC 03E00008 */ jr $ra
/* 02B3B0 8004FFB0 A0A20048 */ sb $v0, 0x48($a1)
/* 02B3B4 8004FFB4 948300D4 */ lhu $v1, 0xd4($a0)
/* 02B3B8 8004FFB8 24020001 */ addiu $v0, $zero, 1
/* 02B3BC 8004FFBC A0A20040 */ sb $v0, 0x40($a1)
/* 02B3C0 8004FFC0 03E00008 */ jr $ra
/* 02B3C4 8004FFC4 A4A30038 */ sh $v1, 0x38($a1)
/* 02B3C8 8004FFC8 908200D4 */ lbu $v0, 0xd4($a0)
/* 02B3CC 8004FFCC A4A2003A */ sh $v0, 0x3a($a1)
/* 02B3D0 8004FFD0 908200D5 */ lbu $v0, 0xd5($a0)
/* 02B3D4 8004FFD4 A0A20055 */ sb $v0, 0x55($a1)
/* 02B3D8 8004FFD8 908200D6 */ lbu $v0, 0xd6($a0)
/* 02B3DC 8004FFDC 03E00008 */ jr $ra
/* 02B3E0 8004FFE0 A0A20056 */ sb $v0, 0x56($a1)
/* 02B3E4 8004FFE4 908200D4 */ lbu $v0, 0xd4($a0)
/* 02B3E8 8004FFE8 03E00008 */ jr $ra
/* 02B3EC 8004FFEC A0A20055 */ sb $v0, 0x55($a1)
/* 02B3F0 8004FFF0 908200D4 */ lbu $v0, 0xd4($a0)
/* 02B3F4 8004FFF4 03E00008 */ jr $ra
/* 02B3F8 8004FFF8 A0A20056 */ sb $v0, 0x56($a1)
/* 02B3FC 8004FFFC 03E00008 */ jr $ra
/* 02B400 80050000 A0A00056 */ sb $zero, 0x56($a1)
/* 02B404 80050004 908200D4 */ lbu $v0, 0xd4($a0)
/* 02B408 80050008 3042007F */ andi $v0, $v0, 0x7f
/* 02B40C 8005000C A0A2004A */ sb $v0, 0x4a($a1)
/* 02B410 80050010 908200D5 */ lbu $v0, 0xd5($a0)
/* 02B414 80050014 3042007F */ andi $v0, $v0, 0x7f
/* 02B418 80050018 03E00008 */ jr $ra
/* 02B41C 8005001C A0A20057 */ sb $v0, 0x57($a1)
/* 02B420 80050020 27BDFFE0 */ addiu $sp, $sp, -0x20
/* 02B424 80050024 AFB20018 */ sw $s2, 0x18($sp)
/* 02B428 80050028 00A0902D */ daddu $s2, $a1, $zero
/* 02B42C 8005002C AFBF001C */ sw $ra, 0x1c($sp)
/* 02B430 80050030 AFB10014 */ sw $s1, 0x14($sp)
/* 02B434 80050034 AFB00010 */ sw $s0, 0x10($sp)
/* 02B438 80050038 908500D4 */ lbu $a1, 0xd4($a0)
/* 02B43C 8005003C 2CA20080 */ sltiu $v0, $a1, 0x80
/* 02B440 80050040 50400008 */ beql $v0, $zero, .L80050064
/* 02B444 80050044 24A5FF80 */ addiu $a1, $a1, -0x80
/* 02B448 80050048 9082021D */ lbu $v0, 0x21d($a0)
/* 02B44C 8005004C 00A2102B */ sltu $v0, $a1, $v0
/* 02B450 80050050 1040000C */ beqz $v0, .L80050084
/* 02B454 80050054 000510C0 */ sll $v0, $a1, 3
/* 02B458 80050058 8C83007C */ lw $v1, 0x7c($a0)
/* 02B45C 8005005C 08014023 */ j .L8005008C
/* 02B460 80050060 00628821 */ addu $s1, $v1, $v0
.L80050064:
/* 02B464 80050064 2CA20040 */ sltiu $v0, $a1, 0x40
/* 02B468 80050068 10400006 */ beqz $v0, .L80050084
/* 02B46C 8005006C 00000000 */ nop
/* 02B470 80050070 8C820000 */ lw $v0, ($a0)
/* 02B474 80050074 8C430058 */ lw $v1, 0x58($v0)
/* 02B478 80050078 000510C0 */ sll $v0, $a1, 3
/* 02B47C 8005007C 08014023 */ j .L8005008C
/* 02B480 80050080 00628821 */ addu $s1, $v1, $v0
.L80050084:
/* 02B484 80050084 8C820000 */ lw $v0, ($a0)
/* 02B488 80050088 24510014 */ addiu $s1, $v0, 0x14
.L8005008C:
/* 02B48C 8005008C 26470010 */ addiu $a3, $s2, 0x10
/* 02B490 80050090 96250000 */ lhu $a1, ($s1)
/* 02B494 80050094 92220002 */ lbu $v0, 2($s1)
/* 02B498 80050098 92260001 */ lbu $a2, 1($s1)
/* 02B49C 8005009C 3050007F */ andi $s0, $v0, 0x7f
/* 02B4A0 800500A0 A6460044 */ sh $a2, 0x44($s2)
/* 02B4A4 800500A4 8C840000 */ lw $a0, ($a0)
/* 02B4A8 800500A8 0C014EFA */ jal func_80053BE8
/* 02B4AC 800500AC 00052A02 */ srl $a1, $a1, 8
/* 02B4B0 800500B0 12000002 */ beqz $s0, .L800500BC
/* 02B4B4 800500B4 AE42000C */ sw $v0, 0xc($s2)
/* 02B4B8 800500B8 00108600 */ sll $s0, $s0, 0x18
.L800500BC:
/* 02B4BC 800500BC AE500018 */ sw $s0, 0x18($s2)
/* 02B4C0 800500C0 92220003 */ lbu $v0, 3($s1)
/* 02B4C4 800500C4 3042007F */ andi $v0, $v0, 0x7f
/* 02B4C8 800500C8 A242004A */ sb $v0, 0x4a($s2)
/* 02B4CC 800500CC 92220004 */ lbu $v0, 4($s1)
/* 02B4D0 800500D0 3C040001 */ lui $a0, 1
/* 02B4D4 800500D4 3042007F */ andi $v0, $v0, 0x7f
/* 02B4D8 800500D8 A242004B */ sb $v0, 0x4b($s2)
/* 02B4DC 800500DC 82230005 */ lb $v1, 5($s1)
/* 02B4E0 800500E0 34840101 */ ori $a0, $a0, 0x101
/* 02B4E4 800500E4 00031040 */ sll $v0, $v1, 1
/* 02B4E8 800500E8 00431021 */ addu $v0, $v0, $v1
/* 02B4EC 800500EC 000210C0 */ sll $v0, $v0, 3
/* 02B4F0 800500F0 00431021 */ addu $v0, $v0, $v1
/* 02B4F4 800500F4 00021080 */ sll $v0, $v0, 2
/* 02B4F8 800500F8 A6420046 */ sh $v0, 0x46($s2)
/* 02B4FC 800500FC 8E420040 */ lw $v0, 0x40($s2)
/* 02B500 80050100 92230006 */ lbu $v1, 6($s1)
/* 02B504 80050104 00441025 */ or $v0, $v0, $a0
/* 02B508 80050108 AE420040 */ sw $v0, 0x40($s2)
/* 02B50C 8005010C A2430048 */ sb $v1, 0x48($s2)
/* 02B510 80050110 8FBF001C */ lw $ra, 0x1c($sp)
/* 02B514 80050114 8FB20018 */ lw $s2, 0x18($sp)
/* 02B518 80050118 8FB10014 */ lw $s1, 0x14($sp)
/* 02B51C 8005011C 8FB00010 */ lw $s0, 0x10($sp)
/* 02B520 80050120 03E00008 */ jr $ra
/* 02B524 80050124 27BD0020 */ addiu $sp, $sp, 0x20
/* 02B528 80050128 908200D4 */ lbu $v0, 0xd4($a0)
/* 02B52C 8005012C 00821821 */ addu $v1, $a0, $v0
/* 02B530 80050130 2C420004 */ sltiu $v0, $v0, 4
/* 02B534 80050134 9063004C */ lbu $v1, 0x4c($v1)
/* 02B538 80050138 10400005 */ beqz $v0, .L80050150
/* 02B53C 8005013C 00031600 */ sll $v0, $v1, 0x18
/* 02B540 80050140 04400003 */ bltz $v0, .L80050150
/* 02B544 80050144 00000000 */ nop
/* 02B548 80050148 03E00008 */ jr $ra
/* 02B54C 8005014C A0A3005B */ sb $v1, 0x5b($a1)
.L80050150:
/* 02B550 80050150 90820235 */ lbu $v0, 0x235($a0)
/* 02B554 80050154 03E00008 */ jr $ra
/* 02B558 80050158 A0A2005B */ sb $v0, 0x5b($a1)
/* 02B55C 8005015C 27BDFFE8 */ addiu $sp, $sp, -0x18
/* 02B560 80050160 AFBF0010 */ sw $ra, 0x10($sp)
/* 02B564 80050164 8C8600D4 */ lw $a2, 0xd4($a0)
/* 02B568 80050168 90840234 */ lbu $a0, 0x234($a0)
/* 02B56C 8005016C 90A5005C */ lbu $a1, 0x5c($a1)
/* 02B570 80050170 0C01582F */ jal func_800560BC
/* 02B574 80050174 00063202 */ srl $a2, $a2, 8
/* 02B578 80050178 8FBF0010 */ lw $ra, 0x10($sp)
/* 02B57C 8005017C 03E00008 */ jr $ra
/* 02B580 80050180 27BD0018 */ addiu $sp, $sp, 0x18
/* 02B584 80050184 908600D6 */ lbu $a2, 0xd6($a0)
/* 02B588 80050188 948200D4 */ lhu $v0, 0xd4($a0)
/* 02B58C 8005018C 8C840064 */ lw $a0, 0x64($a0)
/* 02B590 80050190 8CA30000 */ lw $v1, ($a1)
/* 02B594 80050194 00441021 */ addu $v0, $v0, $a0
/* 02B598 80050198 A4A6003E */ sh $a2, 0x3e($a1)
/* 02B59C 8005019C ACA30004 */ sw $v1, 4($a1)
/* 02B5A0 800501A0 03E00008 */ jr $ra
/* 02B5A4 800501A4 ACA20000 */ sw $v0, ($a1)
/* 02B5A8 800501A8 27BDFFD8 */ addiu $sp, $sp, -0x28
/* 02B5AC 800501AC AFB3001C */ sw $s3, 0x1c($sp)
/* 02B5B0 800501B0 0080982D */ daddu $s3, $a0, $zero
/* 02B5B4 800501B4 AFB20018 */ sw $s2, 0x18($sp)
/* 02B5B8 800501B8 00A0902D */ daddu $s2, $a1, $zero
/* 02B5BC 800501BC AFBF0020 */ sw $ra, 0x20($sp)
/* 02B5C0 800501C0 AFB10014 */ sw $s1, 0x14($sp)
/* 02B5C4 800501C4 AFB00010 */ sw $s0, 0x10($sp)
/* 02B5C8 800501C8 966500D4 */ lhu $a1, 0xd4($s3)
/* 02B5CC 800501CC 8E640064 */ lw $a0, 0x64($s3)
/* 02B5D0 800501D0 92620170 */ lbu $v0, 0x170($s3)
/* 02B5D4 800501D4 926300D6 */ lbu $v1, 0xd6($s3)
/* 02B5D8 800501D8 0043102B */ sltu $v0, $v0, $v1
/* 02B5DC 800501DC 10400005 */ beqz $v0, .L800501F4
/* 02B5E0 800501E0 00A42821 */ addu $a1, $a1, $a0
/* 02B5E4 800501E4 92630170 */ lbu $v1, 0x170($s3)
/* 02B5E8 800501E8 00031040 */ sll $v0, $v1, 1
/* 02B5EC 800501EC 00431021 */ addu $v0, $v0, $v1
/* 02B5F0 800501F0 00A22821 */ addu $a1, $a1, $v0
.L800501F4:
/* 02B5F4 800501F4 8E420000 */ lw $v0, ($s2)
/* 02B5F8 800501F8 AE420008 */ sw $v0, 8($s2)
/* 02B5FC 800501FC 90A20000 */ lbu $v0, ($a1)
/* 02B600 80050200 90A30001 */ lbu $v1, 1($a1)
/* 02B604 80050204 8E640064 */ lw $a0, 0x64($s3)
/* 02B608 80050208 00021200 */ sll $v0, $v0, 8
/* 02B60C 8005020C 00431021 */ addu $v0, $v0, $v1
/* 02B610 80050210 00441021 */ addu $v0, $v0, $a0
/* 02B614 80050214 AE420000 */ sw $v0, ($s2)
/* 02B618 80050218 90A20002 */ lbu $v0, 2($a1)
/* 02B61C 8005021C 9243004D */ lbu $v1, 0x4d($s2)
/* 02B620 80050220 1060001B */ beqz $v1, .L80050290
/* 02B624 80050224 A2420058 */ sb $v0, 0x58($s2)
/* 02B628 80050228 92500052 */ lbu $s0, 0x52($s2)
/* 02B62C 8005022C 92420053 */ lbu $v0, 0x53($s2)
/* 02B630 80050230 A240004D */ sb $zero, 0x4d($s2)
/* 02B634 80050234 0202102B */ sltu $v0, $s0, $v0
/* 02B638 80050238 10400015 */ beqz $v0, .L80050290
/* 02B63C 8005023C AE40002C */ sw $zero, 0x2c($s2)
/* 02B640 80050240 001010C0 */ sll $v0, $s0, 3
/* 02B644 80050244 00501021 */ addu $v0, $v0, $s0
/* 02B648 80050248 000210C0 */ sll $v0, $v0, 3
/* 02B64C 8005024C 24511320 */ addiu $s1, $v0, 0x1320
.L80050250:
/* 02B650 80050250 8E620000 */ lw $v0, ($s3)
/* 02B654 80050254 00512021 */ addu $a0, $v0, $s1
/* 02B658 80050258 90830045 */ lbu $v1, 0x45($a0)
/* 02B65C 8005025C 92620234 */ lbu $v0, 0x234($s3)
/* 02B660 80050260 14620006 */ bne $v1, $v0, .L8005027C
/* 02B664 80050264 00000000 */ nop
/* 02B668 80050268 8C82001C */ lw $v0, 0x1c($a0)
/* 02B66C 8005026C 10400003 */ beqz $v0, .L8005027C
/* 02B670 80050270 00000000 */ nop
/* 02B674 80050274 0C014E31 */ jal func_800538C4
/* 02B678 80050278 320500FF */ andi $a1, $s0, 0xff
.L8005027C:
/* 02B67C 8005027C 92420053 */ lbu $v0, 0x53($s2)
/* 02B680 80050280 26100001 */ addiu $s0, $s0, 1
/* 02B684 80050284 0202102B */ sltu $v0, $s0, $v0
/* 02B688 80050288 1440FFF1 */ bnez $v0, .L80050250
/* 02B68C 8005028C 26310048 */ addiu $s1, $s1, 0x48
.L80050290:
/* 02B690 80050290 9242004E */ lbu $v0, 0x4e($s2)
/* 02B694 80050294 10400006 */ beqz $v0, .L800502B0
/* 02B698 80050298 0260202D */ daddu $a0, $s3, $zero
/* 02B69C 8005029C 0240282D */ daddu $a1, $s2, $zero
/* 02B6A0 800502A0 A240004E */ sb $zero, 0x4e($s2)
/* 02B6A4 800502A4 92660171 */ lbu $a2, 0x171($s3)
/* 02B6A8 800502A8 0C014222 */ jal func_80050888
/* 02B6AC 800502AC 24070090 */ addiu $a3, $zero, 0x90
.L800502B0:
/* 02B6B0 800502B0 A6400046 */ sh $zero, 0x46($s2)
/* 02B6B4 800502B4 A2400048 */ sb $zero, 0x48($s2)
/* 02B6B8 800502B8 A240004C */ sb $zero, 0x4c($s2)
/* 02B6BC 800502BC A6400038 */ sh $zero, 0x38($s2)
/* 02B6C0 800502C0 A2400056 */ sb $zero, 0x56($s2)
/* 02B6C4 800502C4 AE400024 */ sw $zero, 0x24($s2)
/* 02B6C8 800502C8 A2400057 */ sb $zero, 0x57($s2)
/* 02B6CC 800502CC 92620235 */ lbu $v0, 0x235($s3)
/* 02B6D0 800502D0 A242005B */ sb $v0, 0x5b($s2)
/* 02B6D4 800502D4 8FBF0020 */ lw $ra, 0x20($sp)
/* 02B6D8 800502D8 8FB3001C */ lw $s3, 0x1c($sp)
/* 02B6DC 800502DC 8FB20018 */ lw $s2, 0x18($sp)
/* 02B6E0 800502E0 8FB10014 */ lw $s1, 0x14($sp)
/* 02B6E4 800502E4 8FB00010 */ lw $s0, 0x10($sp)
/* 02B6E8 800502E8 03E00008 */ jr $ra
/* 02B6EC 800502EC 27BD0028 */ addiu $sp, $sp, 0x28
/* 02B6F0 800502F0 27BDFFD8 */ addiu $sp, $sp, -0x28
/* 02B6F4 800502F4 AFB20018 */ sw $s2, 0x18($sp)
/* 02B6F8 800502F8 0080902D */ daddu $s2, $a0, $zero
/* 02B6FC 800502FC AFBF0020 */ sw $ra, 0x20($sp)
/* 02B700 80050300 AFB3001C */ sw $s3, 0x1c($sp)
/* 02B704 80050304 AFB10014 */ sw $s1, 0x14($sp)
/* 02B708 80050308 AFB00010 */ sw $s0, 0x10($sp)
/* 02B70C 8005030C 924200D4 */ lbu $v0, 0xd4($s2)
/* 02B710 80050310 924300D5 */ lbu $v1, 0xd5($s2)
/* 02B714 80050314 924600D6 */ lbu $a2, 0xd6($s2)
/* 02B718 80050318 2444FFFF */ addiu $a0, $v0, -1
/* 02B71C 8005031C 2C820006 */ sltiu $v0, $a0, 6
/* 02B720 80050320 10400088 */ beqz $v0, .L80050544
/* 02B724 80050324 00041080 */ sll $v0, $a0, 2
/* 02B728 80050328 3C01800A */ lui $at, 0x800a
/* 02B72C 8005032C 00220821 */ addu $at, $at, $v0
/* 02B730 80050330 8C2288D8 */ lw $v0, -0x7728($at)
/* 02B734 80050334 00400008 */ jr $v0
/* 02B738 80050338 00000000 */ nop
/* 02B73C 8005033C 2C620004 */ sltiu $v0, $v1, 4
/* 02B740 80050340 10400080 */ beqz $v0, .L80050544
/* 02B744 80050344 02431021 */ addu $v0, $s2, $v1
/* 02B748 80050348 8043004C */ lb $v1, 0x4c($v0)
/* 02B74C 8005034C 0460007D */ bltz $v1, .L80050544
/* 02B750 80050350 9044004C */ lbu $a0, 0x4c($v0)
/* 02B754 80050354 8E420000 */ lw $v0, ($s2)
/* 02B758 80050358 10C00010 */ beqz $a2, .L8005039C
/* 02B75C 8005035C A0440051 */ sb $a0, 0x51($v0)
/* 02B760 80050360 30C7000F */ andi $a3, $a2, 0xf
/* 02B764 80050364 00061102 */ srl $v0, $a2, 4
/* 02B768 80050368 30420001 */ andi $v0, $v0, 1
/* 02B76C 8005036C 8E430000 */ lw $v1, ($s2)
/* 02B770 80050370 24450001 */ addiu $a1, $v0, 1
/* 02B774 80050374 90620052 */ lbu $v0, 0x52($v1)
/* 02B778 80050378 14470004 */ bne $v0, $a3, .L8005038C
/* 02B77C 8005037C 00A0202D */ daddu $a0, $a1, $zero
/* 02B780 80050380 90620053 */ lbu $v0, 0x53($v1)
/* 02B784 80050384 1044006F */ beq $v0, $a0, .L80050544
/* 02B788 80050388 00000000 */ nop
.L8005038C:
/* 02B78C 8005038C A0670052 */ sb $a3, 0x52($v1)
/* 02B790 80050390 8E420000 */ lw $v0, ($s2)
/* 02B794 80050394 080140EC */ j .L800503B0
/* 02B798 80050398 A0450053 */ sb $a1, 0x53($v0)
.L8005039C:
/* 02B79C 8005039C 8E430000 */ lw $v1, ($s2)
/* 02B7A0 800503A0 90620053 */ lbu $v0, 0x53($v1)
/* 02B7A4 800503A4 10400067 */ beqz $v0, .L80050544
/* 02B7A8 800503A8 00000000 */ nop
/* 02B7AC 800503AC A0600053 */ sb $zero, 0x53($v1)
.L800503B0:
/* 02B7B0 800503B0 8E430000 */ lw $v1, ($s2)
/* 02B7B4 800503B4 24020001 */ addiu $v0, $zero, 1
/* 02B7B8 800503B8 08014151 */ j .L80050544
/* 02B7BC 800503BC A0620050 */ sb $v0, 0x50($v1)
/* 02B7C0 800503C0 2465FFFF */ addiu $a1, $v1, -1
/* 02B7C4 800503C4 2CA20008 */ sltiu $v0, $a1, 8
/* 02B7C8 800503C8 5040005E */ beql $v0, $zero, .L80050544
/* 02B7CC 800503CC A2400211 */ sb $zero, 0x211($s2)
/* 02B7D0 800503D0 A2430211 */ sb $v1, 0x211($s2)
/* 02B7D4 800503D4 0C013A11 */ jal func_8004E844
/* 02B7D8 800503D8 0240202D */ daddu $a0, $s2, $zero
/* 02B7DC 800503DC 08014151 */ j .L80050544
/* 02B7E0 800503E0 00000000 */ nop
/* 02B7E4 800503E4 92500211 */ lbu $s0, 0x211($s2)
/* 02B7E8 800503E8 2604FFFF */ addiu $a0, $s0, -1
/* 02B7EC 800503EC 2C820008 */ sltiu $v0, $a0, 8
/* 02B7F0 800503F0 10400054 */ beqz $v0, .L80050544
/* 02B7F4 800503F4 0080802D */ daddu $s0, $a0, $zero
/* 02B7F8 800503F8 02501021 */ addu $v0, $s2, $s0
/* 02B7FC 800503FC 90440212 */ lbu $a0, 0x212($v0)
/* 02B800 80050400 2C820008 */ sltiu $v0, $a0, 8
/* 02B804 80050404 1040004F */ beqz $v0, .L80050544
/* 02B808 80050408 2C620028 */ sltiu $v0, $v1, 0x28
/* 02B80C 8005040C 14400005 */ bnez $v0, .L80050424
/* 02B810 80050410 001010C0 */ sll $v0, $s0, 3
/* 02B814 80050414 00501021 */ addu $v0, $v0, $s0
/* 02B818 80050418 00441021 */ addu $v0, $v0, $a0
/* 02B81C 8005041C 0801410F */ j .L8005043C
/* 02B820 80050420 00021040 */ sll $v0, $v0, 1
.L80050424:
/* 02B824 80050424 00501021 */ addu $v0, $v0, $s0
/* 02B828 80050428 00441021 */ addu $v0, $v0, $a0
/* 02B82C 8005042C 00021040 */ sll $v0, $v0, 1
/* 02B830 80050430 3C018008 */ lui $at, 0x8008
/* 02B834 80050434 00230821 */ addu $at, $at, $v1
/* 02B838 80050438 90238558 */ lbu $v1, -0x7aa8($at)
.L8005043C:
/* 02B83C 8005043C 02421021 */ addu $v0, $s2, $v0
/* 02B840 80050440 00031A00 */ sll $v1, $v1, 8
/* 02B844 80050444 00661821 */ addu $v1, $v1, $a2
/* 02B848 80050448 A4430174 */ sh $v1, 0x174($v0)
/* 02B84C 8005044C 02501821 */ addu $v1, $s2, $s0
/* 02B850 80050450 24820001 */ addiu $v0, $a0, 1
/* 02B854 80050454 08014151 */ j .L80050544
/* 02B858 80050458 A0620212 */ sb $v0, 0x212($v1)
/* 02B85C 8005045C 2C620009 */ sltiu $v0, $v1, 9
/* 02B860 80050460 50400038 */ beql $v0, $zero, .L80050544
/* 02B864 80050464 A0A0004C */ sb $zero, 0x4c($a1)
/* 02B868 80050468 08014151 */ j .L80050544
/* 02B86C 8005046C A0A3004C */ sb $v1, 0x4c($a1)
/* 02B870 80050470 8E420004 */ lw $v0, 4($s2)
/* 02B874 80050474 10400033 */ beqz $v0, .L80050544
/* 02B878 80050478 0000802D */ daddu $s0, $zero, $zero
/* 02B87C 8005047C 0040282D */ daddu $a1, $v0, $zero
.L80050480:
/* 02B880 80050480 00A0202D */ daddu $a0, $a1, $zero
/* 02B884 80050484 90820090 */ lbu $v0, 0x90($a0)
/* 02B888 80050488 10400022 */ beqz $v0, .L80050514
/* 02B88C 8005048C 00103080 */ sll $a2, $s0, 2
/* 02B890 80050490 26100001 */ addiu $s0, $s0, 1
/* 02B894 80050494 2E020004 */ sltiu $v0, $s0, 4
/* 02B898 80050498 1440FFF9 */ bnez $v0, .L80050480
/* 02B89C 8005049C 24850004 */ addiu $a1, $a0, 4
/* 02B8A0 800504A0 08014151 */ j .L80050544
/* 02B8A4 800504A4 00000000 */ nop
/* 02B8A8 800504A8 54600025 */ bnel $v1, $zero, .L80050540
/* 02B8AC 800504AC A0A3004F */ sb $v1, 0x4f($a1)
/* 02B8B0 800504B0 90A2004E */ lbu $v0, 0x4e($a1)
/* 02B8B4 800504B4 10400023 */ beqz $v0, .L80050544
/* 02B8B8 800504B8 0000802D */ daddu $s0, $zero, $zero
/* 02B8BC 800504BC A0A0004E */ sb $zero, 0x4e($a1)
/* 02B8C0 800504C0 2413007F */ addiu $s3, $zero, 0x7f
/* 02B8C4 800504C4 2411025C */ addiu $s1, $zero, 0x25c
.L800504C8:
/* 02B8C8 800504C8 92420171 */ lbu $v0, 0x171($s2)
/* 02B8CC 800504CC 14530004 */ bne $v0, $s3, .L800504E0
/* 02B8D0 800504D0 02512821 */ addu $a1, $s2, $s1
/* 02B8D4 800504D4 90A2004F */ lbu $v0, 0x4f($a1)
/* 02B8D8 800504D8 08014139 */ j .L800504E4
/* 02B8DC 800504DC 00000000 */ nop
.L800504E0:
/* 02B8E0 800504E0 90A20050 */ lbu $v0, 0x50($a1)
.L800504E4:
/* 02B8E4 800504E4 10400005 */ beqz $v0, .L800504FC
/* 02B8E8 800504E8 0240202D */ daddu $a0, $s2, $zero
/* 02B8EC 800504EC 0040302D */ daddu $a2, $v0, $zero
/* 02B8F0 800504F0 24070048 */ addiu $a3, $zero, 0x48
/* 02B8F4 800504F4 0C014222 */ jal func_80050888
/* 02B8F8 800504F8 A0A0004E */ sb $zero, 0x4e($a1)
.L800504FC:
/* 02B8FC 800504FC 26100001 */ addiu $s0, $s0, 1
/* 02B900 80050500 2E020010 */ sltiu $v0, $s0, 0x10
/* 02B904 80050504 1440FFF0 */ bnez $v0, .L800504C8
/* 02B908 80050508 26310060 */ addiu $s1, $s1, 0x60
/* 02B90C 8005050C 08014151 */ j .L80050544
/* 02B910 80050510 00000000 */ nop
.L80050514:
/* 02B914 80050514 A0A30090 */ sb $v1, 0x90($a1)
/* 02B918 80050518 9643002C */ lhu $v1, 0x2c($s2)
/* 02B91C 8005051C 9642003C */ lhu $v0, 0x3c($s2)
/* 02B920 80050520 00620018 */ mult $v1, $v0
/* 02B924 80050524 8E430004 */ lw $v1, 4($s2)
/* 02B928 80050528 00661821 */ addu $v1, $v1, $a2
/* 02B92C 8005052C 00004012 */ mflo $t0
/* 02B930 80050530 25027FFF */ addiu $v0, $t0, 0x7fff
/* 02B934 80050534 000215C3 */ sra $v0, $v0, 0x17
/* 02B938 80050538 08014151 */ j .L80050544
/* 02B93C 8005053C A0620093 */ sb $v0, 0x93($v1)
.L80050540:
/* 02B940 80050540 A0A60050 */ sb $a2, 0x50($a1)
.L80050544:
/* 02B944 80050544 8FBF0020 */ lw $ra, 0x20($sp)
/* 02B948 80050548 8FB3001C */ lw $s3, 0x1c($sp)
/* 02B94C 8005054C 8FB20018 */ lw $s2, 0x18($sp)
/* 02B950 80050550 8FB10014 */ lw $s1, 0x14($sp)
/* 02B954 80050554 8FB00010 */ lw $s0, 0x10($sp)
/* 02B958 80050558 03E00008 */ jr $ra
/* 02B95C 8005055C 27BD0028 */ addiu $sp, $sp, 0x28
/* 02B960 80050560 03E00008 */ jr $ra
/* 02B964 80050564 00000000 */ nop