1
0
Fork 0
mirror of https://github.com/zeldaret/oot.git synced 2024-11-29 03:34:07 +00:00
oot/asm/code_80105250.s
silv3rwing07 5aef81071e
padmgr and related (#71)
* In process of moving changes over from old repo

* Merged in changes

* Finished import of padmgr changes from old repo

* Adjusted some volatile

* Improving padmgr volatile situation

* Almost matched osReadMempak

* Working on osMempakDataCRC

* Explanations and equivalents but no matches for osMempakAddrCRC and osMempakDataCRC

* OK after merge

* Matched osMempakAddrCRC and osMempakDataCRC

* Matched osReadMempak

* Updated PadMgr function names to be less like original code

* Changed variable names to make them further from original code

* Changed names and it stopped matching

* Undid clang-format steamrollering whitespace memes

* Cleaned up Input names

* More formatting changes

* Moved padmgr to z64.h, deleted padmgr.h
2020-04-14 13:17:25 -04:00

719 lines
33 KiB
ArmAsm

.include "macro.inc"
# assembler directives
.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
.set gp=64 # allow use of 64-bit general purposee registers
.section .text
.align 4
glabel func_80105250
/* B7C3F0 80105250 27BDFB38 */ addiu $sp, $sp, -0x4c8
/* B7C3F4 80105254 AFBF0044 */ sw $ra, 0x44($sp)
/* B7C3F8 80105258 AFBE0040 */ sw $fp, 0x40($sp)
/* B7C3FC 8010525C AFB3002C */ sw $s3, 0x2c($sp)
/* B7C400 80105260 00809825 */ move $s3, $a0
/* B7C404 80105264 AFB7003C */ sw $s7, 0x3c($sp)
/* B7C408 80105268 AFB60038 */ sw $s6, 0x38($sp)
/* B7C40C 8010526C AFB50034 */ sw $s5, 0x34($sp)
/* B7C410 80105270 AFB40030 */ sw $s4, 0x30($sp)
/* B7C414 80105274 AFB20028 */ sw $s2, 0x28($sp)
/* B7C418 80105278 AFB10024 */ sw $s1, 0x24($sp)
/* B7C41C 8010527C AFB00020 */ sw $s0, 0x20($sp)
/* B7C420 80105280 AFA00074 */ sw $zero, 0x74($sp)
/* B7C424 80105284 0C040AFC */ jal func_80102BF0
/* B7C428 80105288 241E00FE */ li $fp, 254
/* B7C42C 8010528C 24010002 */ li $at, 2
/* B7C430 80105290 14410004 */ bne $v0, $at, .L801052A4
/* B7C434 80105294 0040B825 */ move $s7, $v0
/* B7C438 80105298 0C040A91 */ jal func_80102A44
/* B7C43C 8010529C 02602025 */ move $a0, $s3
/* B7C440 801052A0 0040B825 */ move $s7, $v0
.L801052A4:
/* B7C444 801052A4 10400003 */ beqz $v0, .L801052B4
/* B7C448 801052A8 02602025 */ move $a0, $s3
/* B7C44C 801052AC 1000012A */ b .L80105758
/* B7C450 801052B0 02E01025 */ move $v0, $s7
.L801052B4:
/* B7C454 801052B4 0C0415E2 */ jal func_80105788
/* B7C458 801052B8 27A50078 */ addiu $a1, $sp, 0x78
/* B7C45C 801052BC 50400004 */ beql $v0, $zero, .L801052D0
/* B7C460 801052C0 8E620050 */ lw $v0, 0x50($s3)
/* B7C464 801052C4 10000125 */ b .L8010575C
/* B7C468 801052C8 8FBF0044 */ lw $ra, 0x44($sp)
/* B7C46C 801052CC 8E620050 */ lw $v0, 0x50($s3)
.L801052D0:
/* B7C470 801052D0 0000A025 */ move $s4, $zero
/* B7C474 801052D4 27B502BC */ addiu $s5, $sp, 0x2bc
/* B7C478 801052D8 18400082 */ blez $v0, .L801054E4
/* B7C47C 801052DC 27B204BC */ addiu $s2, $sp, 0x4bc
/* B7C480 801052E0 8E6E005C */ lw $t6, 0x5c($s3)
.L801052E4:
/* B7C484 801052E4 8E640004 */ lw $a0, 4($s3)
/* B7C488 801052E8 8E650008 */ lw $a1, 8($s3)
/* B7C48C 801052EC 01D43021 */ addu $a2, $t6, $s4
/* B7C490 801052F0 30CFFFFF */ andi $t7, $a2, 0xffff
/* B7C494 801052F4 01E03025 */ move $a2, $t7
/* B7C498 801052F8 0C0417D0 */ jal osReadMempak
/* B7C49C 801052FC 27A7029C */ addiu $a3, $sp, 0x29c
/* B7C4A0 80105300 10400003 */ beqz $v0, .L80105310
/* B7C4A4 80105304 0040B825 */ move $s7, $v0
/* B7C4A8 80105308 10000114 */ b .L8010575C
/* B7C4AC 8010530C 8FBF0044 */ lw $ra, 0x44($sp)
.L80105310:
/* B7C4B0 80105310 97A202A0 */ lhu $v0, 0x2a0($sp)
/* B7C4B4 80105314 8FB8029C */ lw $t8, 0x29c($sp)
/* B7C4B8 80105318 14400003 */ bnez $v0, .L80105328
/* B7C4BC 8010531C 00000000 */ nop
/* B7C4C0 80105320 5300006B */ beql $t8, $zero, .L801054D0
/* B7C4C4 80105324 8E620050 */ lw $v0, 0x50($s3)
.L80105328:
/* B7C4C8 80105328 10400003 */ beqz $v0, .L80105338
/* B7C4CC 8010532C 8FB9029C */ lw $t9, 0x29c($sp)
/* B7C4D0 80105330 17200003 */ bnez $t9, .L80105340
/* B7C4D4 80105334 27A902A2 */ addiu $t1, $sp, 0x2a2
.L80105338:
/* B7C4D8 80105338 10000044 */ b .L8010544C
/* B7C4DC 8010533C 2404FFFF */ li $a0, -1
.L80105340:
/* B7C4E0 80105340 95210000 */ lhu $at, ($t1)
/* B7C4E4 80105344 00002025 */ move $a0, $zero
/* B7C4E8 80105348 00008025 */ move $s0, $zero
/* B7C4EC 8010534C A6410000 */ sh $at, ($s2)
/* B7C4F0 80105350 8E6D0060 */ lw $t5, 0x60($s3)
/* B7C4F4 80105354 97AC04BC */ lhu $t4, 0x4bc($sp)
/* B7C4F8 80105358 241600FF */ li $s6, 255
/* B7C4FC 8010535C 93AE04BC */ lbu $t6, 0x4bc($sp)
/* B7C500 80105360 018D082A */ slt $at, $t4, $t5
/* B7C504 80105364 14200039 */ bnez $at, .L8010544C
/* B7C508 80105368 00000000 */ nop
/* B7C50C 8010536C 926F0064 */ lbu $t7, 0x64($s3)
/* B7C510 80105370 93B804BD */ lbu $t8, 0x4bd($sp)
/* B7C514 80105374 01CF082A */ slt $at, $t6, $t7
/* B7C518 80105378 10200034 */ beqz $at, .L8010544C
/* B7C51C 8010537C 00000000 */ nop
/* B7C520 80105380 1B000032 */ blez $t8, .L8010544C
/* B7C524 80105384 2B010080 */ slti $at, $t8, 0x80
/* B7C528 80105388 10200030 */ beqz $at, .L8010544C
/* B7C52C 8010538C 02C08825 */ move $s1, $s6
/* B7C530 80105390 93B904BC */ lbu $t9, 0x4bc($sp)
.L80105394:
/* B7C534 80105394 13310010 */ beq $t9, $s1, .L801053D8
/* B7C538 80105398 0320B025 */ move $s6, $t9
/* B7C53C 8010539C 133E0008 */ beq $t9, $fp, .L801053C0
/* B7C540 801053A0 03208825 */ move $s1, $t9
/* B7C544 801053A4 02602025 */ move $a0, $s3
/* B7C548 801053A8 02A02825 */ move $a1, $s5
/* B7C54C 801053AC 00003025 */ move $a2, $zero
/* B7C550 801053B0 0C040B31 */ jal func_80102CC4
/* B7C554 801053B4 332700FF */ andi $a3, $t9, 0xff
/* B7C558 801053B8 0040B825 */ move $s7, $v0
/* B7C55C 801053BC 32DE00FF */ andi $fp, $s6, 0xff
.L801053C0:
/* B7C560 801053C0 12E00005 */ beqz $s7, .L801053D8
/* B7C564 801053C4 24010003 */ li $at, 3
/* B7C568 801053C8 52E10004 */ beql $s7, $at, .L801053DC
/* B7C56C 801053CC 96410000 */ lhu $at, ($s2)
/* B7C570 801053D0 100000E1 */ b .L80105758
/* B7C574 801053D4 02E01025 */ move $v0, $s7
.L801053D8:
/* B7C578 801053D8 96410000 */ lhu $at, ($s2)
.L801053DC:
/* B7C57C 801053DC 02602025 */ move $a0, $s3
/* B7C580 801053E0 27A60078 */ addiu $a2, $sp, 0x78
/* B7C584 801053E4 A7A10004 */ sh $at, 4($sp)
/* B7C588 801053E8 0C041698 */ jal func_80105A60
/* B7C58C 801053EC 8FA50004 */ lw $a1, 4($sp)
/* B7C590 801053F0 00502023 */ subu $a0, $v0, $s0
/* B7C594 801053F4 14800015 */ bnez $a0, .L8010544C
/* B7C598 801053F8 93AB04BD */ lbu $t3, 0x4bd($sp)
/* B7C59C 801053FC 000B6040 */ sll $t4, $t3, 1
/* B7C5A0 80105400 02AC6821 */ addu $t5, $s5, $t4
/* B7C5A4 80105404 95A10000 */ lhu $at, ($t5)
/* B7C5A8 80105408 24100001 */ li $s0, 1
/* B7C5AC 8010540C A6410000 */ sh $at, ($s2)
/* B7C5B0 80105410 8E790060 */ lw $t9, 0x60($s3)
/* B7C5B4 80105414 97B804BC */ lhu $t8, 0x4bc($sp)
/* B7C5B8 80105418 93AB04BD */ lbu $t3, 0x4bd($sp)
/* B7C5BC 8010541C 93AA04BC */ lbu $t2, 0x4bc($sp)
/* B7C5C0 80105420 0319082A */ slt $at, $t8, $t9
/* B7C5C4 80105424 14200009 */ bnez $at, .L8010544C
/* B7C5C8 80105428 00000000 */ nop
/* B7C5CC 8010542C 92690064 */ lbu $t1, 0x64($s3)
/* B7C5D0 80105430 0149082A */ slt $at, $t2, $t1
/* B7C5D4 80105434 10200005 */ beqz $at, .L8010544C
/* B7C5D8 80105438 00000000 */ nop
/* B7C5DC 8010543C 19600003 */ blez $t3, .L8010544C
/* B7C5E0 80105440 29610080 */ slti $at, $t3, 0x80
/* B7C5E4 80105444 5420FFD3 */ bnezl $at, .L80105394
/* B7C5E8 80105448 93B904BC */ lbu $t9, 0x4bc($sp)
.L8010544C:
/* B7C5EC 8010544C 14800003 */ bnez $a0, .L8010545C
/* B7C5F0 80105450 97AC04BC */ lhu $t4, 0x4bc($sp)
/* B7C5F4 80105454 24010001 */ li $at, 1
/* B7C5F8 80105458 1181001C */ beq $t4, $at, .L801054CC
.L8010545C:
/* B7C5FC 8010545C 27A4029C */ addiu $a0, $sp, 0x29c
/* B7C600 80105460 0C001114 */ jal bzero
/* B7C604 80105464 24050020 */ li $a1, 32
/* B7C608 80105468 926E0065 */ lbu $t6, 0x65($s3)
/* B7C60C 8010546C 02602025 */ move $a0, $s3
/* B7C610 80105470 51C00008 */ beql $t6, $zero, .L80105494
/* B7C614 80105474 8E6D005C */ lw $t5, 0x5c($s3)
/* B7C618 80105478 0C041320 */ jal func_80104C80
/* B7C61C 8010547C 00002825 */ move $a1, $zero
/* B7C620 80105480 50400004 */ beql $v0, $zero, .L80105494
/* B7C624 80105484 8E6D005C */ lw $t5, 0x5c($s3)
/* B7C628 80105488 100000B4 */ b .L8010575C
/* B7C62C 8010548C 8FBF0044 */ lw $ra, 0x44($sp)
/* B7C630 80105490 8E6D005C */ lw $t5, 0x5c($s3)
.L80105494:
/* B7C634 80105494 8E640004 */ lw $a0, 4($s3)
/* B7C638 80105498 8E650008 */ lw $a1, 8($s3)
/* B7C63C 8010549C 01B43021 */ addu $a2, $t5, $s4
/* B7C640 801054A0 30CFFFFF */ andi $t7, $a2, 0xffff
/* B7C644 801054A4 01E03025 */ move $a2, $t7
/* B7C648 801054A8 AFA00010 */ sw $zero, 0x10($sp)
/* B7C64C 801054AC 0C04173C */ jal func_80105CF0
/* B7C650 801054B0 27A7029C */ addiu $a3, $sp, 0x29c
/* B7C654 801054B4 10400003 */ beqz $v0, .L801054C4
/* B7C658 801054B8 8FB80074 */ lw $t8, 0x74($sp)
/* B7C65C 801054BC 100000A7 */ b .L8010575C
/* B7C660 801054C0 8FBF0044 */ lw $ra, 0x44($sp)
.L801054C4:
/* B7C664 801054C4 27190001 */ addiu $t9, $t8, 1
/* B7C668 801054C8 AFB90074 */ sw $t9, 0x74($sp)
.L801054CC:
/* B7C66C 801054CC 8E620050 */ lw $v0, 0x50($s3)
.L801054D0:
/* B7C670 801054D0 26940001 */ addiu $s4, $s4, 1
/* B7C674 801054D4 0282082A */ slt $at, $s4, $v0
/* B7C678 801054D8 5420FF82 */ bnezl $at, .L801052E4
/* B7C67C 801054DC 8E6E005C */ lw $t6, 0x5c($s3)
/* B7C680 801054E0 0000A025 */ move $s4, $zero
.L801054E4:
/* B7C684 801054E4 18400021 */ blez $v0, .L8010556C
/* B7C688 801054E8 27B502BC */ addiu $s5, $sp, 0x2bc
/* B7C68C 801054EC 8E6A005C */ lw $t2, 0x5c($s3)
.L801054F0:
/* B7C690 801054F0 8E640004 */ lw $a0, 4($s3)
/* B7C694 801054F4 8E650008 */ lw $a1, 8($s3)
/* B7C698 801054F8 01543021 */ addu $a2, $t2, $s4
/* B7C69C 801054FC 30C9FFFF */ andi $t1, $a2, 0xffff
/* B7C6A0 80105500 01203025 */ move $a2, $t1
/* B7C6A4 80105504 0C0417D0 */ jal osReadMempak
/* B7C6A8 80105508 27A7029C */ addiu $a3, $sp, 0x29c
/* B7C6AC 8010550C 10400003 */ beqz $v0, .L8010551C
/* B7C6B0 80105510 97AE02A0 */ lhu $t6, 0x2a0($sp)
/* B7C6B4 80105514 10000091 */ b .L8010575C
/* B7C6B8 80105518 8FBF0044 */ lw $ra, 0x44($sp)
.L8010551C:
/* B7C6BC 8010551C 00145840 */ sll $t3, $s4, 1
/* B7C6C0 80105520 27AC027C */ addiu $t4, $sp, 0x27c
/* B7C6C4 80105524 11C0000B */ beqz $t6, .L80105554
/* B7C6C8 80105528 016C2021 */ addu $a0, $t3, $t4
/* B7C6CC 8010552C 8FAD029C */ lw $t5, 0x29c($sp)
/* B7C6D0 80105530 97AF02A2 */ lhu $t7, 0x2a2($sp)
/* B7C6D4 80105534 51A00008 */ beql $t5, $zero, .L80105558
/* B7C6D8 80105538 A4800000 */ sh $zero, ($a0)
/* B7C6DC 8010553C 96780062 */ lhu $t8, 0x62($s3)
/* B7C6E0 80105540 01F8082A */ slt $at, $t7, $t8
/* B7C6E4 80105544 54200004 */ bnezl $at, .L80105558
/* B7C6E8 80105548 A4800000 */ sh $zero, ($a0)
/* B7C6EC 8010554C 10000002 */ b .L80105558
/* B7C6F0 80105550 A48F0000 */ sh $t7, ($a0)
.L80105554:
/* B7C6F4 80105554 A4800000 */ sh $zero, ($a0)
.L80105558:
/* B7C6F8 80105558 8E790050 */ lw $t9, 0x50($s3)
/* B7C6FC 8010555C 26940001 */ addiu $s4, $s4, 1
/* B7C700 80105560 0299082A */ slt $at, $s4, $t9
/* B7C704 80105564 5420FFE2 */ bnezl $at, .L801054F0
/* B7C708 80105568 8E6A005C */ lw $t2, 0x5c($s3)
.L8010556C:
/* B7C70C 8010556C 926A0064 */ lbu $t2, 0x64($s3)
/* B7C710 80105570 0000B025 */ move $s6, $zero
/* B7C714 80105574 241E0003 */ li $fp, 3
/* B7C718 80105578 1940006B */ blez $t2, .L80105728
/* B7C71C 8010557C 27B203BC */ addiu $s2, $sp, 0x3bc
/* B7C720 80105580 27B00060 */ addiu $s0, $sp, 0x60
.L80105584:
/* B7C724 80105584 02602025 */ move $a0, $s3
/* B7C728 80105588 02A02825 */ move $a1, $s5
/* B7C72C 8010558C 00003025 */ move $a2, $zero
/* B7C730 80105590 0C040B31 */ jal func_80102CC4
/* B7C734 80105594 32C700FF */ andi $a3, $s6, 0xff
/* B7C738 80105598 10400006 */ beqz $v0, .L801055B4
/* B7C73C 8010559C 27A804BC */ addiu $t0, $sp, 0x4bc
/* B7C740 801055A0 24010003 */ li $at, 3
/* B7C744 801055A4 50410004 */ beql $v0, $at, .L801055B8
/* B7C748 801055A8 02C08825 */ move $s1, $s6
/* B7C74C 801055AC 1000006B */ b .L8010575C
/* B7C750 801055B0 8FBF0044 */ lw $ra, 0x44($sp)
.L801055B4:
/* B7C754 801055B4 02C08825 */ move $s1, $s6
.L801055B8:
/* B7C758 801055B8 1AC00003 */ blez $s6, .L801055C8
/* B7C75C 801055BC 0000A025 */ move $s4, $zero
/* B7C760 801055C0 10000002 */ b .L801055CC
/* B7C764 801055C4 24050001 */ li $a1, 1
.L801055C8:
/* B7C768 801055C8 8E650060 */ lw $a1, 0x60($s3)
.L801055CC:
/* B7C76C 801055CC 18A0001C */ blez $a1, .L80105640
/* B7C770 801055D0 30A70003 */ andi $a3, $a1, 3
/* B7C774 801055D4 10E0000B */ beqz $a3, .L80105604
/* B7C778 801055D8 00E02025 */ move $a0, $a3
/* B7C77C 801055DC 00143040 */ sll $a2, $s4, 1
/* B7C780 801055E0 02461821 */ addu $v1, $s2, $a2
/* B7C784 801055E4 02A61021 */ addu $v0, $s5, $a2
.L801055E8:
/* B7C788 801055E8 94490000 */ lhu $t1, ($v0)
/* B7C78C 801055EC 26940001 */ addiu $s4, $s4, 1
/* B7C790 801055F0 24630002 */ addiu $v1, $v1, 2
/* B7C794 801055F4 24420002 */ addiu $v0, $v0, 2
/* B7C798 801055F8 1494FFFB */ bne $a0, $s4, .L801055E8
/* B7C79C 801055FC A469FFFE */ sh $t1, -2($v1)
/* B7C7A0 80105600 1285000F */ beq $s4, $a1, .L80105640
.L80105604:
/* B7C7A4 80105604 00143040 */ sll $a2, $s4, 1
/* B7C7A8 80105608 02461821 */ addu $v1, $s2, $a2
/* B7C7AC 8010560C 02A61021 */ addu $v0, $s5, $a2
.L80105610:
/* B7C7B0 80105610 944C0002 */ lhu $t4, 2($v0)
/* B7C7B4 80105614 944E0004 */ lhu $t6, 4($v0)
/* B7C7B8 80105618 944D0006 */ lhu $t5, 6($v0)
/* B7C7BC 8010561C 944B0000 */ lhu $t3, ($v0)
/* B7C7C0 80105620 26940004 */ addiu $s4, $s4, 4
/* B7C7C4 80105624 24630008 */ addiu $v1, $v1, 8
/* B7C7C8 80105628 24420008 */ addiu $v0, $v0, 8
/* B7C7CC 8010562C A46CFFFA */ sh $t4, -6($v1)
/* B7C7D0 80105630 A46EFFFC */ sh $t6, -4($v1)
/* B7C7D4 80105634 A46DFFFE */ sh $t5, -2($v1)
/* B7C7D8 80105638 1685FFF5 */ bne $s4, $a1, .L80105610
/* B7C7DC 8010563C A46BFFF8 */ sh $t3, -8($v1)
.L80105640:
/* B7C7E0 80105640 2A810080 */ slti $at, $s4, 0x80
/* B7C7E4 80105644 10200007 */ beqz $at, .L80105664
/* B7C7E8 80105648 02402825 */ move $a1, $s2
/* B7C7EC 8010564C 0014C040 */ sll $t8, $s4, 1
/* B7C7F0 80105650 02581821 */ addu $v1, $s2, $t8
.L80105654:
/* B7C7F4 80105654 24630002 */ addiu $v1, $v1, 2
/* B7C7F8 80105658 0068082B */ sltu $at, $v1, $t0
/* B7C7FC 8010565C 1420FFFD */ bnez $at, .L80105654
/* B7C800 80105660 A47EFFFE */ sh $fp, -2($v1)
.L80105664:
/* B7C804 80105664 8E6F0050 */ lw $t7, 0x50($s3)
/* B7C808 80105668 0000A025 */ move $s4, $zero
/* B7C80C 8010566C 24060001 */ li $a2, 1
/* B7C810 80105670 19E00021 */ blez $t7, .L801056F8
/* B7C814 80105674 32C700FF */ andi $a3, $s6, 0xff
/* B7C818 80105678 27A4027C */ addiu $a0, $sp, 0x27c
/* B7C81C 8010567C 90990000 */ lbu $t9, ($a0)
.L80105680:
/* B7C820 80105680 56390018 */ bnel $s1, $t9, .L801056E4
/* B7C824 80105684 8E6E0050 */ lw $t6, 0x50($s3)
/* B7C828 80105688 948A0000 */ lhu $t2, ($a0)
/* B7C82C 8010568C 96690062 */ lhu $t1, 0x62($s3)
/* B7C830 80105690 0149082A */ slt $at, $t2, $t1
/* B7C834 80105694 54200013 */ bnezl $at, .L801056E4
/* B7C838 80105698 8E6E0050 */ lw $t6, 0x50($s3)
/* B7C83C 8010569C 90830001 */ lbu $v1, 1($a0)
.L801056A0:
/* B7C840 801056A0 00031040 */ sll $v0, $v1, 1
/* B7C844 801056A4 02A25821 */ addu $t3, $s5, $v0
/* B7C848 801056A8 95610000 */ lhu $at, ($t3)
/* B7C84C 801056AC 02426821 */ addu $t5, $s2, $v0
/* B7C850 801056B0 A6010000 */ sh $at, ($s0)
/* B7C854 801056B4 A5A10000 */ sh $at, ($t5)
/* B7C858 801056B8 96010000 */ lhu $at, ($s0)
/* B7C85C 801056BC A4810000 */ sh $at, ($a0)
/* B7C860 801056C0 90890000 */ lbu $t1, ($a0)
/* B7C864 801056C4 56290007 */ bnel $s1, $t1, .L801056E4
/* B7C868 801056C8 8E6E0050 */ lw $t6, 0x50($s3)
/* B7C86C 801056CC 966B0062 */ lhu $t3, 0x62($s3)
/* B7C870 801056D0 302CFFFF */ andi $t4, $at, 0xffff
/* B7C874 801056D4 018B082A */ slt $at, $t4, $t3
/* B7C878 801056D8 5020FFF1 */ beql $at, $zero, .L801056A0
/* B7C87C 801056DC 90830001 */ lbu $v1, 1($a0)
/* B7C880 801056E0 8E6E0050 */ lw $t6, 0x50($s3)
.L801056E4:
/* B7C884 801056E4 26940001 */ addiu $s4, $s4, 1
/* B7C888 801056E8 24840002 */ addiu $a0, $a0, 2
/* B7C88C 801056EC 028E082A */ slt $at, $s4, $t6
/* B7C890 801056F0 5420FFE3 */ bnezl $at, .L80105680
/* B7C894 801056F4 90990000 */ lbu $t9, ($a0)
.L801056F8:
/* B7C898 801056F8 0C040B31 */ jal func_80102CC4
/* B7C89C 801056FC 02602025 */ move $a0, $s3
/* B7C8A0 80105700 50400004 */ beql $v0, $zero, .L80105714
/* B7C8A4 80105704 926D0064 */ lbu $t5, 0x64($s3)
/* B7C8A8 80105708 10000014 */ b .L8010575C
/* B7C8AC 8010570C 8FBF0044 */ lw $ra, 0x44($sp)
/* B7C8B0 80105710 926D0064 */ lbu $t5, 0x64($s3)
.L80105714:
/* B7C8B4 80105714 26D60001 */ addiu $s6, $s6, 1
/* B7C8B8 80105718 32D800FF */ andi $t8, $s6, 0xff
/* B7C8BC 8010571C 030D082A */ slt $at, $t8, $t5
/* B7C8C0 80105720 1420FF98 */ bnez $at, .L80105584
/* B7C8C4 80105724 0300B025 */ move $s6, $t8
.L80105728:
/* B7C8C8 80105728 8FAF0074 */ lw $t7, 0x74($sp)
/* B7C8CC 8010572C 00001025 */ move $v0, $zero
/* B7C8D0 80105730 51E00006 */ beql $t7, $zero, .L8010574C
/* B7C8D4 80105734 8E690000 */ lw $t1, ($s3)
/* B7C8D8 80105738 8E790000 */ lw $t9, ($s3)
/* B7C8DC 8010573C 372A0002 */ ori $t2, $t9, 2
/* B7C8E0 80105740 10000005 */ b .L80105758
/* B7C8E4 80105744 AE6A0000 */ sw $t2, ($s3)
/* B7C8E8 80105748 8E690000 */ lw $t1, ($s3)
.L8010574C:
/* B7C8EC 8010574C 2401FFFD */ li $at, -3
/* B7C8F0 80105750 01216024 */ and $t4, $t1, $at
/* B7C8F4 80105754 AE6C0000 */ sw $t4, ($s3)
.L80105758:
/* B7C8F8 80105758 8FBF0044 */ lw $ra, 0x44($sp)
.L8010575C:
/* B7C8FC 8010575C 8FB00020 */ lw $s0, 0x20($sp)
/* B7C900 80105760 8FB10024 */ lw $s1, 0x24($sp)
/* B7C904 80105764 8FB20028 */ lw $s2, 0x28($sp)
/* B7C908 80105768 8FB3002C */ lw $s3, 0x2c($sp)
/* B7C90C 8010576C 8FB40030 */ lw $s4, 0x30($sp)
/* B7C910 80105770 8FB50034 */ lw $s5, 0x34($sp)
/* B7C914 80105774 8FB60038 */ lw $s6, 0x38($sp)
/* B7C918 80105778 8FB7003C */ lw $s7, 0x3c($sp)
/* B7C91C 8010577C 8FBE0040 */ lw $fp, 0x40($sp)
/* B7C920 80105780 03E00008 */ jr $ra
/* B7C924 80105784 27BD04C8 */ addiu $sp, $sp, 0x4c8
glabel func_80105788
/* B7C928 80105788 27BDFE98 */ addiu $sp, $sp, -0x168
/* B7C92C 8010578C AFB30024 */ sw $s3, 0x24($sp)
/* B7C930 80105790 00809825 */ move $s3, $a0
/* B7C934 80105794 AFB40028 */ sw $s4, 0x28($sp)
/* B7C938 80105798 00A0A025 */ move $s4, $a1
/* B7C93C 8010579C AFBF003C */ sw $ra, 0x3c($sp)
/* B7C940 801057A0 AFBE0038 */ sw $fp, 0x38($sp)
/* B7C944 801057A4 AFB70034 */ sw $s7, 0x34($sp)
/* B7C948 801057A8 AFB60030 */ sw $s6, 0x30($sp)
/* B7C94C 801057AC AFB5002C */ sw $s5, 0x2c($sp)
/* B7C950 801057B0 AFB20020 */ sw $s2, 0x20($sp)
/* B7C954 801057B4 AFB1001C */ sw $s1, 0x1c($sp)
/* B7C958 801057B8 AFB00018 */ sw $s0, 0x18($sp)
/* B7C95C 801057BC 24040100 */ li $a0, 256
/* B7C960 801057C0 00001025 */ move $v0, $zero
/* B7C964 801057C4 00A01825 */ move $v1, $a1
.L801057C8:
/* B7C968 801057C8 24420004 */ addiu $v0, $v0, 4
/* B7C96C 801057CC A0600102 */ sb $zero, 0x102($v1)
/* B7C970 801057D0 A0600103 */ sb $zero, 0x103($v1)
/* B7C974 801057D4 A0600104 */ sb $zero, 0x104($v1)
/* B7C978 801057D8 24630004 */ addiu $v1, $v1, 4
/* B7C97C 801057DC 1444FFFA */ bne $v0, $a0, .L801057C8
/* B7C980 801057E0 A06000FD */ sb $zero, 0xfd($v1)
/* B7C984 801057E4 240E00FF */ li $t6, 255
/* B7C988 801057E8 A28E0100 */ sb $t6, 0x100($s4)
/* B7C98C 801057EC 926F0064 */ lbu $t7, 0x64($s3)
/* B7C990 801057F0 0000B825 */ move $s7, $zero
/* B7C994 801057F4 00008025 */ move $s0, $zero
/* B7C998 801057F8 19E0008C */ blez $t7, .L80105A2C
/* B7C99C 801057FC 241E0080 */ li $fp, 128
/* B7C9A0 80105800 27B6015A */ addiu $s6, $sp, 0x15a
/* B7C9A4 80105804 27B50058 */ addiu $s5, $sp, 0x58
/* B7C9A8 80105808 27B20158 */ addiu $s2, $sp, 0x158
.L8010580C:
/* B7C9AC 8010580C 1A000003 */ blez $s0, .L8010581C
/* B7C9B0 80105810 02602025 */ move $a0, $s3
/* B7C9B4 80105814 10000002 */ b .L80105820
/* B7C9B8 80105818 24110001 */ li $s1, 1
.L8010581C:
/* B7C9BC 8010581C 8E710060 */ lw $s1, 0x60($s3)
.L80105820:
/* B7C9C0 80105820 02A02825 */ move $a1, $s5
/* B7C9C4 80105824 00003025 */ move $a2, $zero
/* B7C9C8 80105828 0C040B31 */ jal func_80102CC4
/* B7C9CC 8010582C 32E700FF */ andi $a3, $s7, 0xff
/* B7C9D0 80105830 10400005 */ beqz $v0, .L80105848
/* B7C9D4 80105834 24010003 */ li $at, 3
/* B7C9D8 80105838 50410004 */ beql $v0, $at, .L8010584C
/* B7C9DC 8010583C 2A210080 */ slti $at, $s1, 0x80
/* B7C9E0 80105840 1000007C */ b .L80105A34
/* B7C9E4 80105844 8FBF003C */ lw $ra, 0x3c($sp)
.L80105848:
/* B7C9E8 80105848 2A210080 */ slti $at, $s1, 0x80
.L8010584C:
/* B7C9EC 8010584C 10200071 */ beqz $at, .L80105A14
/* B7C9F0 80105850 02201025 */ move $v0, $s1
/* B7C9F4 80105854 03D11823 */ subu $v1, $fp, $s1
/* B7C9F8 80105858 30780001 */ andi $t8, $v1, 1
/* B7C9FC 8010585C 13000025 */ beqz $t8, .L801058F4
/* B7CA00 80105860 0011C840 */ sll $t9, $s1, 1
/* B7CA04 80105864 02B94021 */ addu $t0, $s5, $t9
/* B7CA08 80105868 95010000 */ lhu $at, ($t0)
/* B7CA0C 8010586C A6410000 */ sh $at, ($s2)
/* B7CA10 80105870 8E6C0060 */ lw $t4, 0x60($s3)
/* B7CA14 80105874 97AB0158 */ lhu $t3, 0x158($sp)
/* B7CA18 80105878 93AD0158 */ lbu $t5, 0x158($sp)
/* B7CA1C 8010587C 016C082A */ slt $at, $t3, $t4
/* B7CA20 80105880 5420001B */ bnezl $at, .L801058F0
/* B7CA24 80105884 26220001 */ addiu $v0, $s1, 1
/* B7CA28 80105888 120D0018 */ beq $s0, $t5, .L801058EC
/* B7CA2C 8010588C 93AE0159 */ lbu $t6, 0x159($sp)
/* B7CA30 80105890 31CF007F */ andi $t7, $t6, 0x7f
/* B7CA34 80105894 05E10003 */ bgez $t7, .L801058A4
/* B7CA38 80105898 000FC083 */ sra $t8, $t7, 2
/* B7CA3C 8010589C 25E10003 */ addiu $at, $t7, 3
/* B7CA40 801058A0 0001C083 */ sra $t8, $at, 2
.L801058A4:
/* B7CA44 801058A4 05A10004 */ bgez $t5, .L801058B8
/* B7CA48 801058A8 31B90007 */ andi $t9, $t5, 7
/* B7CA4C 801058AC 13200002 */ beqz $t9, .L801058B8
/* B7CA50 801058B0 00000000 */ nop
/* B7CA54 801058B4 2739FFF8 */ addiu $t9, $t9, -8
.L801058B8:
/* B7CA58 801058B8 00194940 */ sll $t1, $t9, 5
/* B7CA5C 801058BC 03091821 */ addu $v1, $t8, $t1
/* B7CA60 801058C0 02831021 */ addu $v0, $s4, $v1
/* B7CA64 801058C4 90480101 */ lbu $t0, 0x101($v0)
/* B7CA68 801058C8 06010004 */ bgez $s0, .L801058DC
/* B7CA6C 801058CC 320A0007 */ andi $t2, $s0, 7
/* B7CA70 801058D0 11400002 */ beqz $t2, .L801058DC
/* B7CA74 801058D4 00000000 */ nop
/* B7CA78 801058D8 254AFFF8 */ addiu $t2, $t2, -8
.L801058DC:
/* B7CA7C 801058DC 240B0001 */ li $t3, 1
/* B7CA80 801058E0 014B6004 */ sllv $t4, $t3, $t2
/* B7CA84 801058E4 010C7025 */ or $t6, $t0, $t4
/* B7CA88 801058E8 A04E0101 */ sb $t6, 0x101($v0)
.L801058EC:
/* B7CA8C 801058EC 26220001 */ addiu $v0, $s1, 1
.L801058F0:
/* B7CA90 801058F0 105E0048 */ beq $v0, $fp, .L80105A14
.L801058F4:
/* B7CA94 801058F4 00027840 */ sll $t7, $v0, 1
/* B7CA98 801058F8 02AF2821 */ addu $a1, $s5, $t7
/* B7CA9C 801058FC 24A40002 */ addiu $a0, $a1, 2
.L80105900:
/* B7CAA0 80105900 94A10000 */ lhu $at, ($a1)
/* B7CAA4 80105904 A6410000 */ sh $at, ($s2)
/* B7CAA8 80105908 8E690060 */ lw $t1, 0x60($s3)
/* B7CAAC 8010590C 97B80158 */ lhu $t8, 0x158($sp)
/* B7CAB0 80105910 93AB0158 */ lbu $t3, 0x158($sp)
/* B7CAB4 80105914 0309082A */ slt $at, $t8, $t1
/* B7CAB8 80105918 5420001B */ bnezl $at, .L80105988
/* B7CABC 8010591C 94810000 */ lhu $at, ($a0)
/* B7CAC0 80105920 120B0018 */ beq $s0, $t3, .L80105984
/* B7CAC4 80105924 93AA0159 */ lbu $t2, 0x159($sp)
/* B7CAC8 80105928 3148007F */ andi $t0, $t2, 0x7f
/* B7CACC 8010592C 05010003 */ bgez $t0, .L8010593C
/* B7CAD0 80105930 00086083 */ sra $t4, $t0, 2
/* B7CAD4 80105934 25010003 */ addiu $at, $t0, 3
/* B7CAD8 80105938 00016083 */ sra $t4, $at, 2
.L8010593C:
/* B7CADC 8010593C 05610004 */ bgez $t3, .L80105950
/* B7CAE0 80105940 316E0007 */ andi $t6, $t3, 7
/* B7CAE4 80105944 11C00002 */ beqz $t6, .L80105950
/* B7CAE8 80105948 00000000 */ nop
/* B7CAEC 8010594C 25CEFFF8 */ addiu $t6, $t6, -8
.L80105950:
/* B7CAF0 80105950 000E7940 */ sll $t7, $t6, 5
/* B7CAF4 80105954 018F1821 */ addu $v1, $t4, $t7
/* B7CAF8 80105958 02831021 */ addu $v0, $s4, $v1
/* B7CAFC 8010595C 904D0101 */ lbu $t5, 0x101($v0)
/* B7CB00 80105960 06010004 */ bgez $s0, .L80105974
/* B7CB04 80105964 32190007 */ andi $t9, $s0, 7
/* B7CB08 80105968 13200002 */ beqz $t9, .L80105974
/* B7CB0C 8010596C 00000000 */ nop
/* B7CB10 80105970 2739FFF8 */ addiu $t9, $t9, -8
.L80105974:
/* B7CB14 80105974 24180001 */ li $t8, 1
/* B7CB18 80105978 03384804 */ sllv $t1, $t8, $t9
/* B7CB1C 8010597C 01A95025 */ or $t2, $t5, $t1
/* B7CB20 80105980 A04A0101 */ sb $t2, 0x101($v0)
.L80105984:
/* B7CB24 80105984 94810000 */ lhu $at, ($a0)
.L80105988:
/* B7CB28 80105988 24840004 */ addiu $a0, $a0, 4
/* B7CB2C 8010598C A6410000 */ sh $at, ($s2)
/* B7CB30 80105990 8E6C0060 */ lw $t4, 0x60($s3)
/* B7CB34 80105994 97AE0158 */ lhu $t6, 0x158($sp)
/* B7CB38 80105998 93AF0158 */ lbu $t7, 0x158($sp)
/* B7CB3C 8010599C 01CC082A */ slt $at, $t6, $t4
/* B7CB40 801059A0 1420001A */ bnez $at, .L80105A0C
/* B7CB44 801059A4 00000000 */ nop
/* B7CB48 801059A8 120F0018 */ beq $s0, $t7, .L80105A0C
/* B7CB4C 801059AC 93B80159 */ lbu $t8, 0x159($sp)
/* B7CB50 801059B0 3319007F */ andi $t9, $t8, 0x7f
/* B7CB54 801059B4 07210003 */ bgez $t9, .L801059C4
/* B7CB58 801059B8 00196883 */ sra $t5, $t9, 2
/* B7CB5C 801059BC 27210003 */ addiu $at, $t9, 3
/* B7CB60 801059C0 00016883 */ sra $t5, $at, 2
.L801059C4:
/* B7CB64 801059C4 05E10004 */ bgez $t7, .L801059D8
/* B7CB68 801059C8 31E90007 */ andi $t1, $t7, 7
/* B7CB6C 801059CC 11200002 */ beqz $t1, .L801059D8
/* B7CB70 801059D0 00000000 */ nop
/* B7CB74 801059D4 2529FFF8 */ addiu $t1, $t1, -8
.L801059D8:
/* B7CB78 801059D8 00095140 */ sll $t2, $t1, 5
/* B7CB7C 801059DC 01AA1821 */ addu $v1, $t5, $t2
/* B7CB80 801059E0 02831021 */ addu $v0, $s4, $v1
/* B7CB84 801059E4 90480101 */ lbu $t0, 0x101($v0)
/* B7CB88 801059E8 06010004 */ bgez $s0, .L801059FC
/* B7CB8C 801059EC 320B0007 */ andi $t3, $s0, 7
/* B7CB90 801059F0 11600002 */ beqz $t3, .L801059FC
/* B7CB94 801059F4 00000000 */ nop
/* B7CB98 801059F8 256BFFF8 */ addiu $t3, $t3, -8
.L801059FC:
/* B7CB9C 801059FC 240E0001 */ li $t6, 1
/* B7CBA0 80105A00 016E6004 */ sllv $t4, $t6, $t3
/* B7CBA4 80105A04 010CC025 */ or $t8, $t0, $t4
/* B7CBA8 80105A08 A0580101 */ sb $t8, 0x101($v0)
.L80105A0C:
/* B7CBAC 80105A0C 1496FFBC */ bne $a0, $s6, .L80105900
/* B7CBB0 80105A10 24A50004 */ addiu $a1, $a1, 4
.L80105A14:
/* B7CBB4 80105A14 926F0064 */ lbu $t7, 0x64($s3)
/* B7CBB8 80105A18 26F70001 */ addiu $s7, $s7, 1
/* B7CBBC 80105A1C 32F000FF */ andi $s0, $s7, 0xff
/* B7CBC0 80105A20 020F082A */ slt $at, $s0, $t7
/* B7CBC4 80105A24 1420FF79 */ bnez $at, .L8010580C
/* B7CBC8 80105A28 0200B825 */ move $s7, $s0
.L80105A2C:
/* B7CBCC 80105A2C 00001025 */ move $v0, $zero
/* B7CBD0 80105A30 8FBF003C */ lw $ra, 0x3c($sp)
.L80105A34:
/* B7CBD4 80105A34 8FB00018 */ lw $s0, 0x18($sp)
/* B7CBD8 80105A38 8FB1001C */ lw $s1, 0x1c($sp)
/* B7CBDC 80105A3C 8FB20020 */ lw $s2, 0x20($sp)
/* B7CBE0 80105A40 8FB30024 */ lw $s3, 0x24($sp)
/* B7CBE4 80105A44 8FB40028 */ lw $s4, 0x28($sp)
/* B7CBE8 80105A48 8FB5002C */ lw $s5, 0x2c($sp)
/* B7CBEC 80105A4C 8FB60030 */ lw $s6, 0x30($sp)
/* B7CBF0 80105A50 8FB70034 */ lw $s7, 0x34($sp)
/* B7CBF4 80105A54 8FBE0038 */ lw $fp, 0x38($sp)
/* B7CBF8 80105A58 03E00008 */ jr $ra
/* B7CBFC 80105A5C 27BD0168 */ addiu $sp, $sp, 0x168
glabel func_80105A60
/* B7CC00 80105A60 27BDFFC8 */ addiu $sp, $sp, -0x38
/* B7CC04 80105A64 AFA5003C */ sw $a1, 0x3c($sp)
/* B7CC08 80105A68 93B8003C */ lbu $t8, 0x3c($sp)
/* B7CC0C 80105A6C AFB40028 */ sw $s4, 0x28($sp)
/* B7CC10 80105A70 93AE003D */ lbu $t6, 0x3d($sp)
/* B7CC14 80105A74 0080A025 */ move $s4, $a0
/* B7CC18 80105A78 AFBF0034 */ sw $ra, 0x34($sp)
/* B7CC1C 80105A7C AFB60030 */ sw $s6, 0x30($sp)
/* B7CC20 80105A80 AFB5002C */ sw $s5, 0x2c($sp)
/* B7CC24 80105A84 AFB30024 */ sw $s3, 0x24($sp)
/* B7CC28 80105A88 AFB20020 */ sw $s2, 0x20($sp)
/* B7CC2C 80105A8C AFB1001C */ sw $s1, 0x1c($sp)
/* B7CC30 80105A90 AFB00018 */ sw $s0, 0x18($sp)
/* B7CC34 80105A94 92890064 */ lbu $t1, 0x64($s4)
/* B7CC38 80105A98 00C09825 */ move $s3, $a2
/* B7CC3C 80105A9C 00008025 */ move $s0, $zero
/* B7CC40 80105AA0 05C10003 */ bgez $t6, .L80105AB0
/* B7CC44 80105AA4 000E7883 */ sra $t7, $t6, 2
/* B7CC48 80105AA8 25C10003 */ addiu $at, $t6, 3
/* B7CC4C 80105AAC 00017883 */ sra $t7, $at, 2
.L80105AB0:
/* B7CC50 80105AB0 07010004 */ bgez $t8, .L80105AC4
/* B7CC54 80105AB4 33190007 */ andi $t9, $t8, 7
/* B7CC58 80105AB8 13200002 */ beqz $t9, .L80105AC4
/* B7CC5C 80105ABC 00000000 */ nop
/* B7CC60 80105AC0 2739FFF8 */ addiu $t9, $t9, -8
.L80105AC4:
/* B7CC64 80105AC4 00194140 */ sll $t0, $t9, 5
/* B7CC68 80105AC8 01E8B021 */ addu $s6, $t7, $t0
/* B7CC6C 80105ACC 19200040 */ blez $t1, .L80105BD0
/* B7CC70 80105AD0 00009025 */ move $s2, $zero
/* B7CC74 80105AD4 00001025 */ move $v0, $zero
/* B7CC78 80105AD8 24150003 */ li $s5, 3
.L80105ADC:
/* B7CC7C 80105ADC 18400003 */ blez $v0, .L80105AEC
/* B7CC80 80105AE0 93AA003C */ lbu $t2, 0x3c($sp)
/* B7CC84 80105AE4 10000002 */ b .L80105AF0
/* B7CC88 80105AE8 24110001 */ li $s1, 1
.L80105AEC:
/* B7CC8C 80105AEC 8E910060 */ lw $s1, 0x60($s4)
.L80105AF0:
/* B7CC90 80105AF0 1142000C */ beq $t2, $v0, .L80105B24
/* B7CC94 80105AF4 02765821 */ addu $t3, $s3, $s6
/* B7CC98 80105AF8 916C0101 */ lbu $t4, 0x101($t3)
/* B7CC9C 80105AFC 04410004 */ bgez $v0, .L80105B10
/* B7CCA0 80105B00 304D0007 */ andi $t5, $v0, 7
/* B7CCA4 80105B04 11A00002 */ beqz $t5, .L80105B10
/* B7CCA8 80105B08 00000000 */ nop
/* B7CCAC 80105B0C 25ADFFF8 */ addiu $t5, $t5, -8
.L80105B10:
/* B7CCB0 80105B10 240E0001 */ li $t6, 1
/* B7CCB4 80105B14 01AEC004 */ sllv $t8, $t6, $t5
/* B7CCB8 80105B18 0198C824 */ and $t9, $t4, $t8
/* B7CCBC 80105B1C 53200027 */ beql $t9, $zero, .L80105BBC
/* B7CCC0 80105B20 928B0064 */ lbu $t3, 0x64($s4)
.L80105B24:
/* B7CCC4 80105B24 926F0100 */ lbu $t7, 0x100($s3)
/* B7CCC8 80105B28 02802025 */ move $a0, $s4
/* B7CCCC 80105B2C 02602825 */ move $a1, $s3
/* B7CCD0 80105B30 11E2000A */ beq $t7, $v0, .L80105B5C
/* B7CCD4 80105B34 00003025 */ move $a2, $zero
/* B7CCD8 80105B38 0C040B31 */ jal func_80102CC4
/* B7CCDC 80105B3C 324700FF */ andi $a3, $s2, 0xff
/* B7CCE0 80105B40 50400006 */ beql $v0, $zero, .L80105B5C
/* B7CCE4 80105B44 A2720100 */ sb $s2, 0x100($s3)
/* B7CCE8 80105B48 50550004 */ beql $v0, $s5, .L80105B5C
/* B7CCEC 80105B4C A2720100 */ sb $s2, 0x100($s3)
/* B7CCF0 80105B50 10000021 */ b .L80105BD8
/* B7CCF4 80105B54 8FBF0034 */ lw $ra, 0x34($sp)
/* B7CCF8 80105B58 A2720100 */ sb $s2, 0x100($s3)
.L80105B5C:
/* B7CCFC 80105B5C 2A010002 */ slti $at, $s0, 2
/* B7CD00 80105B60 10200010 */ beqz $at, .L80105BA4
/* B7CD04 80105B64 2A210080 */ slti $at, $s1, 0x80
/* B7CD08 80105B68 1020000E */ beqz $at, .L80105BA4
/* B7CD0C 80105B6C 00111040 */ sll $v0, $s1, 1
/* B7CD10 80105B70 02621821 */ addu $v1, $s3, $v0
/* B7CD14 80105B74 97A8003C */ lhu $t0, 0x3c($sp)
.L80105B78:
/* B7CD18 80105B78 94690000 */ lhu $t1, ($v1)
/* B7CD1C 80105B7C 24420002 */ addiu $v0, $v0, 2
/* B7CD20 80105B80 55090003 */ bnel $t0, $t1, .L80105B90
/* B7CD24 80105B84 2A010002 */ slti $at, $s0, 2
/* B7CD28 80105B88 26100001 */ addiu $s0, $s0, 1
/* B7CD2C 80105B8C 2A010002 */ slti $at, $s0, 2
.L80105B90:
/* B7CD30 80105B90 10200004 */ beqz $at, .L80105BA4
/* B7CD34 80105B94 24630002 */ addiu $v1, $v1, 2
/* B7CD38 80105B98 28410100 */ slti $at, $v0, 0x100
/* B7CD3C 80105B9C 5420FFF6 */ bnezl $at, .L80105B78
/* B7CD40 80105BA0 97A8003C */ lhu $t0, 0x3c($sp)
.L80105BA4:
/* B7CD44 80105BA4 2A010002 */ slti $at, $s0, 2
/* B7CD48 80105BA8 54200004 */ bnezl $at, .L80105BBC
/* B7CD4C 80105BAC 928B0064 */ lbu $t3, 0x64($s4)
/* B7CD50 80105BB0 10000008 */ b .L80105BD4
/* B7CD54 80105BB4 24020002 */ li $v0, 2
/* B7CD58 80105BB8 928B0064 */ lbu $t3, 0x64($s4)
.L80105BBC:
/* B7CD5C 80105BBC 26520001 */ addiu $s2, $s2, 1
/* B7CD60 80105BC0 324200FF */ andi $v0, $s2, 0xff
/* B7CD64 80105BC4 004B082A */ slt $at, $v0, $t3
/* B7CD68 80105BC8 1420FFC4 */ bnez $at, .L80105ADC
/* B7CD6C 80105BCC 00409025 */ move $s2, $v0
.L80105BD0:
/* B7CD70 80105BD0 02001025 */ move $v0, $s0
.L80105BD4:
/* B7CD74 80105BD4 8FBF0034 */ lw $ra, 0x34($sp)
.L80105BD8:
/* B7CD78 80105BD8 8FB00018 */ lw $s0, 0x18($sp)
/* B7CD7C 80105BDC 8FB1001C */ lw $s1, 0x1c($sp)
/* B7CD80 80105BE0 8FB20020 */ lw $s2, 0x20($sp)
/* B7CD84 80105BE4 8FB30024 */ lw $s3, 0x24($sp)
/* B7CD88 80105BE8 8FB40028 */ lw $s4, 0x28($sp)
/* B7CD8C 80105BEC 8FB5002C */ lw $s5, 0x2c($sp)
/* B7CD90 80105BF0 8FB60030 */ lw $s6, 0x30($sp)
/* B7CD94 80105BF4 03E00008 */ jr $ra
/* B7CD98 80105BF8 27BD0038 */ addiu $sp, $sp, 0x38