1
0
Fork 0
mirror of https://github.com/zeldaret/oot.git synced 2024-12-27 15:16:13 +00:00
oot/asm/code_80102420.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

836 lines
38 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_80102420
/* B795C0 80102420 00001825 */ move $v1, $zero
/* B795C4 80102424 00801025 */ move $v0, $a0
/* B795C8 80102428 18A00016 */ blez $a1, .L80102484
/* B795CC 8010242C 00003025 */ move $a2, $zero
/* B795D0 80102430 30A70003 */ andi $a3, $a1, 3
/* B795D4 80102434 10E00008 */ beqz $a3, .L80102458
/* B795D8 80102438 00E02025 */ move $a0, $a3
.L8010243C:
/* B795DC 8010243C 904E0000 */ lbu $t6, ($v0)
/* B795E0 80102440 24C60001 */ addiu $a2, $a2, 1
/* B795E4 80102444 24420001 */ addiu $v0, $v0, 1
/* B795E8 80102448 1486FFFC */ bne $a0, $a2, .L8010243C
/* B795EC 8010244C 006E1821 */ addu $v1, $v1, $t6
/* B795F0 80102450 50C5000D */ beql $a2, $a1, .L80102488
/* B795F4 80102454 00601025 */ move $v0, $v1
.L80102458:
/* B795F8 80102458 904F0000 */ lbu $t7, ($v0)
/* B795FC 8010245C 90580001 */ lbu $t8, 1($v0)
/* B79600 80102460 90590002 */ lbu $t9, 2($v0)
/* B79604 80102464 006F1821 */ addu $v1, $v1, $t7
/* B79608 80102468 90480003 */ lbu $t0, 3($v0)
/* B7960C 8010246C 00781821 */ addu $v1, $v1, $t8
/* B79610 80102470 24C60004 */ addiu $a2, $a2, 4
/* B79614 80102474 00791821 */ addu $v1, $v1, $t9
/* B79618 80102478 24420004 */ addiu $v0, $v0, 4
/* B7961C 8010247C 14C5FFF6 */ bne $a2, $a1, .L80102458
/* B79620 80102480 00681821 */ addu $v1, $v1, $t0
.L80102484:
/* B79624 80102484 00601025 */ move $v0, $v1
.L80102488:
/* B79628 80102488 3049FFFF */ andi $t1, $v0, 0xffff
/* B7962C 8010248C 03E00008 */ jr $ra
/* B79630 80102490 01201025 */ move $v0, $t1
glabel func_80102494
/* B79634 80102494 A4C00000 */ sh $zero, ($a2)
/* B79638 80102498 A4A00000 */ sh $zero, ($a1)
/* B7963C 8010249C 94820000 */ lhu $v0, ($a0)
/* B79640 801024A0 24870004 */ addiu $a3, $a0, 4
/* B79644 801024A4 24E90002 */ addiu $t1, $a3, 2
/* B79648 801024A8 0002C021 */ addu $t8, $zero, $v0
/* B7964C 801024AC A4B80000 */ sh $t8, ($a1)
/* B79650 801024B0 94D90000 */ lhu $t9, ($a2)
/* B79654 801024B4 00406827 */ not $t5, $v0
/* B79658 801024B8 24EA0004 */ addiu $t2, $a3, 4
/* B7965C 801024BC 032D7021 */ addu $t6, $t9, $t5
/* B79660 801024C0 A4CE0000 */ sh $t6, ($a2)
/* B79664 801024C4 94AF0000 */ lhu $t7, ($a1)
/* B79668 801024C8 94820002 */ lhu $v0, 2($a0)
/* B7966C 801024CC 2404001C */ li $a0, 28
/* B79670 801024D0 24EB0006 */ addiu $t3, $a3, 6
/* B79674 801024D4 01E2C021 */ addu $t8, $t7, $v0
/* B79678 801024D8 A4B80000 */ sh $t8, ($a1)
/* B7967C 801024DC 94D90000 */ lhu $t9, ($a2)
/* B79680 801024E0 00406827 */ not $t5, $v0
/* B79684 801024E4 24030004 */ li $v1, 4
/* B79688 801024E8 032D7021 */ addu $t6, $t9, $t5
/* B7968C 801024EC A4CE0000 */ sh $t6, ($a2)
.L801024F0:
/* B79690 801024F0 94E20000 */ lhu $v0, ($a3)
/* B79694 801024F4 94AF0000 */ lhu $t7, ($a1)
/* B79698 801024F8 24630008 */ addiu $v1, $v1, 8
/* B7969C 801024FC 00406827 */ not $t5, $v0
/* B796A0 80102500 01E2C021 */ addu $t8, $t7, $v0
/* B796A4 80102504 A4B80000 */ sh $t8, ($a1)
/* B796A8 80102508 94D90000 */ lhu $t9, ($a2)
/* B796AC 8010250C 24E70008 */ addiu $a3, $a3, 8
/* B796B0 80102510 25290008 */ addiu $t1, $t1, 8
/* B796B4 80102514 032D7021 */ addu $t6, $t9, $t5
/* B796B8 80102518 A4CE0000 */ sh $t6, ($a2)
/* B796BC 8010251C 94AF0000 */ lhu $t7, ($a1)
/* B796C0 80102520 9522FFF8 */ lhu $v0, -8($t1)
/* B796C4 80102524 254A0008 */ addiu $t2, $t2, 8
/* B796C8 80102528 256B0008 */ addiu $t3, $t3, 8
/* B796CC 8010252C 01E2C021 */ addu $t8, $t7, $v0
/* B796D0 80102530 A4B80000 */ sh $t8, ($a1)
/* B796D4 80102534 94D90000 */ lhu $t9, ($a2)
/* B796D8 80102538 00406827 */ not $t5, $v0
/* B796DC 8010253C 032D7021 */ addu $t6, $t9, $t5
/* B796E0 80102540 A4CE0000 */ sh $t6, ($a2)
/* B796E4 80102544 94AF0000 */ lhu $t7, ($a1)
/* B796E8 80102548 9542FFF8 */ lhu $v0, -8($t2)
/* B796EC 8010254C 01E2C021 */ addu $t8, $t7, $v0
/* B796F0 80102550 A4B80000 */ sh $t8, ($a1)
/* B796F4 80102554 94D90000 */ lhu $t9, ($a2)
/* B796F8 80102558 00406827 */ not $t5, $v0
/* B796FC 8010255C 032D7021 */ addu $t6, $t9, $t5
/* B79700 80102560 A4CE0000 */ sh $t6, ($a2)
/* B79704 80102564 94AF0000 */ lhu $t7, ($a1)
/* B79708 80102568 9562FFF8 */ lhu $v0, -8($t3)
/* B7970C 8010256C 01E2C021 */ addu $t8, $t7, $v0
/* B79710 80102570 A4B80000 */ sh $t8, ($a1)
/* B79714 80102574 94D90000 */ lhu $t9, ($a2)
/* B79718 80102578 00406827 */ not $t5, $v0
/* B7971C 8010257C 032D7021 */ addu $t6, $t9, $t5
/* B79720 80102580 1464FFDB */ bne $v1, $a0, .L801024F0
/* B79724 80102584 A4CE0000 */ sh $t6, ($a2)
/* B79728 80102588 03E00008 */ jr $ra
/* B7972C 8010258C 00001025 */ move $v0, $zero
glabel func_80102590
/* B79730 80102590 27BDFF60 */ addiu $sp, $sp, -0xa0
/* B79734 80102594 AFBF003C */ sw $ra, 0x3c($sp)
/* B79738 80102598 AFB60038 */ sw $s6, 0x38($sp)
/* B7973C 8010259C AFB50034 */ sw $s5, 0x34($sp)
/* B79740 801025A0 AFB40030 */ sw $s4, 0x30($sp)
/* B79744 801025A4 AFB3002C */ sw $s3, 0x2c($sp)
/* B79748 801025A8 AFB20028 */ sw $s2, 0x28($sp)
/* B7974C 801025AC AFB10024 */ sw $s1, 0x24($sp)
/* B79750 801025B0 AFB00020 */ sw $s0, 0x20($sp)
/* B79754 801025B4 240EFFFF */ li $t6, -1
/* B79758 801025B8 00809025 */ move $s2, $a0
/* B7975C 801025BC 00C0A025 */ move $s4, $a2
/* B79760 801025C0 00A0B025 */ move $s6, $a1
/* B79764 801025C4 00009825 */ move $s3, $zero
/* B79768 801025C8 0C001BA8 */ jal osGetCount
/* B7976C 801025CC ACCE0000 */ sw $t6, ($a2)
/* B79770 801025D0 AE820004 */ sw $v0, 4($s4)
/* B79774 801025D4 8ED9000C */ lw $t9, 0xc($s6)
/* B79778 801025D8 8ED80008 */ lw $t8, 8($s6)
/* B7977C 801025DC 02402025 */ move $a0, $s2
/* B79780 801025E0 AE99000C */ sw $t9, 0xc($s4)
/* B79784 801025E4 AE980008 */ sw $t8, 8($s4)
/* B79788 801025E8 8EC90014 */ lw $t1, 0x14($s6)
/* B7978C 801025EC 8EC80010 */ lw $t0, 0x10($s6)
/* B79790 801025F0 AE890014 */ sw $t1, 0x14($s4)
/* B79794 801025F4 AE880010 */ sw $t0, 0x10($s4)
/* B79798 801025F8 924F0065 */ lbu $t7, 0x65($s2)
/* B7979C 801025FC 51E00008 */ beql $t7, $zero, .L80102620
/* B797A0 80102600 27B1007C */ addiu $s1, $sp, 0x7c
/* B797A4 80102604 0C041320 */ jal func_80104C80
/* B797A8 80102608 00002825 */ move $a1, $zero
/* B797AC 8010260C 50400004 */ beql $v0, $zero, .L80102620
/* B797B0 80102610 27B1007C */ addiu $s1, $sp, 0x7c
/* B797B4 80102614 100000A9 */ b .L801028BC
/* B797B8 80102618 8FBF003C */ lw $ra, 0x3c($sp)
/* B797BC 8010261C 27B1007C */ addiu $s1, $sp, 0x7c
.L80102620:
/* B797C0 80102620 0220A825 */ move $s5, $s1
/* B797C4 80102624 27B0009C */ addiu $s0, $sp, 0x9c
/* B797C8 80102628 02402025 */ move $a0, $s2
.L8010262C:
/* B797CC 8010262C 0C041320 */ jal func_80104C80
/* B797D0 80102630 326500FF */ andi $a1, $s3, 0xff
/* B797D4 80102634 10400003 */ beqz $v0, .L80102644
/* B797D8 80102638 00003025 */ move $a2, $zero
/* B797DC 8010263C 1000009F */ b .L801028BC
/* B797E0 80102640 8FBF003C */ lw $ra, 0x3c($sp)
.L80102644:
/* B797E4 80102644 8E440004 */ lw $a0, 4($s2)
/* B797E8 80102648 8E450008 */ lw $a1, 8($s2)
/* B797EC 8010264C 0C0417D0 */ jal osReadMempak
/* B797F0 80102650 02A03825 */ move $a3, $s5
/* B797F4 80102654 10400003 */ beqz $v0, .L80102664
/* B797F8 80102658 366B0080 */ ori $t3, $s3, 0x80
/* B797FC 8010265C 10000097 */ b .L801028BC
/* B79800 80102660 8FBF003C */ lw $ra, 0x3c($sp)
.L80102664:
/* B79804 80102664 A3AB007C */ sb $t3, 0x7c($sp)
/* B79808 80102668 27A2007D */ addiu $v0, $sp, 0x7d
.L8010266C:
/* B7980C 8010266C 904C0000 */ lbu $t4, ($v0)
/* B79810 80102670 24420001 */ addiu $v0, $v0, 1
/* B79814 80102674 0050082B */ sltu $at, $v0, $s0
/* B79818 80102678 01806827 */ not $t5, $t4
/* B7981C 8010267C 1420FFFB */ bnez $at, .L8010266C
/* B79820 80102680 A04DFFFF */ sb $t5, -1($v0)
/* B79824 80102684 8E440004 */ lw $a0, 4($s2)
/* B79828 80102688 8E450008 */ lw $a1, 8($s2)
/* B7982C 8010268C AFA00010 */ sw $zero, 0x10($sp)
/* B79830 80102690 00003025 */ move $a2, $zero
/* B79834 80102694 0C04173C */ jal func_80105CF0
/* B79838 80102698 02A03825 */ move $a3, $s5
/* B7983C 8010269C 10400003 */ beqz $v0, .L801026AC
/* B79840 801026A0 00003025 */ move $a2, $zero
/* B79844 801026A4 10000085 */ b .L801028BC
/* B79848 801026A8 8FBF003C */ lw $ra, 0x3c($sp)
.L801026AC:
/* B7984C 801026AC 8E440004 */ lw $a0, 4($s2)
/* B79850 801026B0 8E450008 */ lw $a1, 8($s2)
/* B79854 801026B4 0C0417D0 */ jal osReadMempak
/* B79858 801026B8 27A7005C */ addiu $a3, $sp, 0x5c
/* B7985C 801026BC 10400003 */ beqz $v0, .L801026CC
/* B79860 801026C0 27A3005C */ addiu $v1, $sp, 0x5c
/* B79864 801026C4 1000007D */ b .L801028BC
/* B79868 801026C8 8FBF003C */ lw $ra, 0x3c($sp)
.L801026CC:
/* B7986C 801026CC 27A2007C */ addiu $v0, $sp, 0x7c
.L801026D0:
/* B79870 801026D0 906E0000 */ lbu $t6, ($v1)
/* B79874 801026D4 90580000 */ lbu $t8, ($v0)
/* B79878 801026D8 55D80006 */ bnel $t6, $t8, .L801026F4
/* B7987C 801026DC 27B9007C */ addiu $t9, $sp, 0x7c
/* B79880 801026E0 24630001 */ addiu $v1, $v1, 1
/* B79884 801026E4 0071082B */ sltu $at, $v1, $s1
/* B79888 801026E8 1420FFF9 */ bnez $at, .L801026D0
/* B7988C 801026EC 24420001 */ addiu $v0, $v0, 1
/* B79890 801026F0 27B9007C */ addiu $t9, $sp, 0x7c
.L801026F4:
/* B79894 801026F4 14790018 */ bne $v1, $t9, .L80102758
/* B79898 801026F8 02402025 */ move $a0, $s2
/* B7989C 801026FC 5A600013 */ blezl $s3, .L8010274C
/* B798A0 80102700 26730001 */ addiu $s3, $s3, 1
/* B798A4 80102704 0C041320 */ jal func_80104C80
/* B798A8 80102708 00002825 */ move $a1, $zero
/* B798AC 8010270C 10400003 */ beqz $v0, .L8010271C
/* B798B0 80102710 00003025 */ move $a2, $zero
/* B798B4 80102714 10000069 */ b .L801028BC
/* B798B8 80102718 8FBF003C */ lw $ra, 0x3c($sp)
.L8010271C:
/* B798BC 8010271C 8E440004 */ lw $a0, 4($s2)
/* B798C0 80102720 8E450008 */ lw $a1, 8($s2)
/* B798C4 80102724 0C0417D0 */ jal osReadMempak
/* B798C8 80102728 02A03825 */ move $a3, $s5
/* B798CC 8010272C 10400003 */ beqz $v0, .L8010273C
/* B798D0 80102730 93A8007C */ lbu $t0, 0x7c($sp)
/* B798D4 80102734 10000061 */ b .L801028BC
/* B798D8 80102738 8FBF003C */ lw $ra, 0x3c($sp)
.L8010273C:
/* B798DC 8010273C 24010080 */ li $at, 128
/* B798E0 80102740 55010006 */ bnel $t0, $at, .L8010275C
/* B798E4 80102744 92490065 */ lbu $t1, 0x65($s2)
/* B798E8 80102748 26730001 */ addiu $s3, $s3, 1
.L8010274C:
/* B798EC 8010274C 2A61003E */ slti $at, $s3, 0x3e
/* B798F0 80102750 5420FFB6 */ bnezl $at, .L8010262C
/* B798F4 80102754 02402025 */ move $a0, $s2
.L80102758:
/* B798F8 80102758 92490065 */ lbu $t1, 0x65($s2)
.L8010275C:
/* B798FC 8010275C 02402025 */ move $a0, $s2
/* B79900 80102760 11200007 */ beqz $t1, .L80102780
/* B79904 80102764 00000000 */ nop
/* B79908 80102768 0C041320 */ jal func_80104C80
/* B7990C 8010276C 00002825 */ move $a1, $zero
/* B79910 80102770 10400003 */ beqz $v0, .L80102780
/* B79914 80102774 00000000 */ nop
/* B79918 80102778 10000050 */ b .L801028BC
/* B7991C 8010277C 8FBF003C */ lw $ra, 0x3c($sp)
.L80102780:
/* B79920 80102780 1A600003 */ blez $s3, .L80102790
/* B79924 80102784 02802025 */ move $a0, $s4
/* B79928 80102788 10000002 */ b .L80102794
/* B7992C 8010278C 24020001 */ li $v0, 1
.L80102790:
/* B79930 80102790 00001025 */ move $v0, $zero
.L80102794:
/* B79934 80102794 96CF0018 */ lhu $t7, 0x18($s6)
/* B79938 80102798 A293001A */ sb $s3, 0x1a($s4)
/* B7993C 8010279C 2685001C */ addiu $a1, $s4, 0x1c
/* B79940 801027A0 31EAFFFE */ andi $t2, $t7, 0xfffe
/* B79944 801027A4 01425825 */ or $t3, $t2, $v0
/* B79948 801027A8 A68B0018 */ sh $t3, 0x18($s4)
/* B7994C 801027AC 92CC001B */ lbu $t4, 0x1b($s6)
/* B79950 801027B0 2686001E */ addiu $a2, $s4, 0x1e
/* B79954 801027B4 0C040925 */ jal func_80102494
/* B79958 801027B8 A28C001B */ sb $t4, 0x1b($s4)
/* B7995C 801027BC 240D0001 */ li $t5, 1
/* B79960 801027C0 240E0003 */ li $t6, 3
/* B79964 801027C4 24180004 */ li $t8, 4
/* B79968 801027C8 24190006 */ li $t9, 6
/* B7996C 801027CC A7AD0048 */ sh $t5, 0x48($sp)
/* B79970 801027D0 A7AE004A */ sh $t6, 0x4a($sp)
/* B79974 801027D4 A7B8004C */ sh $t8, 0x4c($sp)
/* B79978 801027D8 A7B9004E */ sh $t9, 0x4e($sp)
/* B7997C 801027DC 27B00048 */ addiu $s0, $sp, 0x48
/* B79980 801027E0 27B10050 */ addiu $s1, $sp, 0x50
/* B79984 801027E4 8E440004 */ lw $a0, 4($s2)
.L801027E8:
/* B79988 801027E8 8E450008 */ lw $a1, 8($s2)
/* B7998C 801027EC 96060000 */ lhu $a2, ($s0)
/* B79990 801027F0 24080001 */ li $t0, 1
/* B79994 801027F4 AFA80010 */ sw $t0, 0x10($sp)
/* B79998 801027F8 0C04173C */ jal func_80105CF0
/* B7999C 801027FC 02803825 */ move $a3, $s4
/* B799A0 80102800 10400003 */ beqz $v0, .L80102810
/* B799A4 80102804 26100002 */ addiu $s0, $s0, 2
/* B799A8 80102808 1000002C */ b .L801028BC
/* B799AC 8010280C 8FBF003C */ lw $ra, 0x3c($sp)
.L80102810:
/* B799B0 80102810 0211082B */ sltu $at, $s0, $s1
/* B799B4 80102814 5420FFF4 */ bnezl $at, .L801027E8
/* B799B8 80102818 8E440004 */ lw $a0, 4($s2)
/* B799BC 8010281C 8E440004 */ lw $a0, 4($s2)
/* B799C0 80102820 8E450008 */ lw $a1, 8($s2)
/* B799C4 80102824 24060001 */ li $a2, 1
/* B799C8 80102828 0C0417D0 */ jal osReadMempak
/* B799CC 8010282C 02A03825 */ move $a3, $s5
/* B799D0 80102830 10400003 */ beqz $v0, .L80102840
/* B799D4 80102834 02801825 */ move $v1, $s4
/* B799D8 80102838 10000020 */ b .L801028BC
/* B799DC 8010283C 8FBF003C */ lw $ra, 0x3c($sp)
.L80102840:
/* B799E0 80102840 27A2007C */ addiu $v0, $sp, 0x7c
/* B799E4 80102844 27A4009C */ addiu $a0, $sp, 0x9c
.L80102848:
/* B799E8 80102848 90490000 */ lbu $t1, ($v0)
/* B799EC 8010284C 906F0000 */ lbu $t7, ($v1)
/* B799F0 80102850 512F0004 */ beql $t1, $t7, .L80102864
/* B799F4 80102854 904A0001 */ lbu $t2, 1($v0)
/* B799F8 80102858 10000017 */ b .L801028B8
/* B799FC 8010285C 2402000B */ li $v0, 11
/* B79A00 80102860 904A0001 */ lbu $t2, 1($v0)
.L80102864:
/* B79A04 80102864 906B0001 */ lbu $t3, 1($v1)
/* B79A08 80102868 514B0004 */ beql $t2, $t3, .L8010287C
/* B79A0C 8010286C 904C0002 */ lbu $t4, 2($v0)
/* B79A10 80102870 10000011 */ b .L801028B8
/* B79A14 80102874 2402000B */ li $v0, 11
/* B79A18 80102878 904C0002 */ lbu $t4, 2($v0)
.L8010287C:
/* B79A1C 8010287C 906D0002 */ lbu $t5, 2($v1)
/* B79A20 80102880 518D0004 */ beql $t4, $t5, .L80102894
/* B79A24 80102884 904E0003 */ lbu $t6, 3($v0)
/* B79A28 80102888 1000000B */ b .L801028B8
/* B79A2C 8010288C 2402000B */ li $v0, 11
/* B79A30 80102890 904E0003 */ lbu $t6, 3($v0)
.L80102894:
/* B79A34 80102894 90780003 */ lbu $t8, 3($v1)
/* B79A38 80102898 24420004 */ addiu $v0, $v0, 4
/* B79A3C 8010289C 11D80003 */ beq $t6, $t8, .L801028AC
/* B79A40 801028A0 00000000 */ nop
/* B79A44 801028A4 10000004 */ b .L801028B8
/* B79A48 801028A8 2402000B */ li $v0, 11
.L801028AC:
/* B79A4C 801028AC 1444FFE6 */ bne $v0, $a0, .L80102848
/* B79A50 801028B0 24630004 */ addiu $v1, $v1, 4
/* B79A54 801028B4 00001025 */ move $v0, $zero
.L801028B8:
/* B79A58 801028B8 8FBF003C */ lw $ra, 0x3c($sp)
.L801028BC:
/* B79A5C 801028BC 8FB00020 */ lw $s0, 0x20($sp)
/* B79A60 801028C0 8FB10024 */ lw $s1, 0x24($sp)
/* B79A64 801028C4 8FB20028 */ lw $s2, 0x28($sp)
/* B79A68 801028C8 8FB3002C */ lw $s3, 0x2c($sp)
/* B79A6C 801028CC 8FB40030 */ lw $s4, 0x30($sp)
/* B79A70 801028D0 8FB50034 */ lw $s5, 0x34($sp)
/* B79A74 801028D4 8FB60038 */ lw $s6, 0x38($sp)
/* B79A78 801028D8 03E00008 */ jr $ra
/* B79A7C 801028DC 27BD00A0 */ addiu $sp, $sp, 0xa0
glabel func_801028E0
/* B79A80 801028E0 27BDFFA0 */ addiu $sp, $sp, -0x60
/* B79A84 801028E4 AFBF003C */ sw $ra, 0x3c($sp)
/* B79A88 801028E8 AFB60038 */ sw $s6, 0x38($sp)
/* B79A8C 801028EC AFB50034 */ sw $s5, 0x34($sp)
/* B79A90 801028F0 AFB40030 */ sw $s4, 0x30($sp)
/* B79A94 801028F4 AFB3002C */ sw $s3, 0x2c($sp)
/* B79A98 801028F8 AFB20028 */ sw $s2, 0x28($sp)
/* B79A9C 801028FC AFB10024 */ sw $s1, 0x24($sp)
/* B79AA0 80102900 AFB00020 */ sw $s0, 0x20($sp)
/* B79AA4 80102904 908E0065 */ lbu $t6, 0x65($a0)
/* B79AA8 80102908 00A09025 */ move $s2, $a1
/* B79AAC 8010290C 00809825 */ move $s3, $a0
/* B79AB0 80102910 51C00008 */ beql $t6, $zero, .L80102934
/* B79AB4 80102914 240F0001 */ li $t7, 1
/* B79AB8 80102918 0C041320 */ jal func_80104C80
/* B79ABC 8010291C 00002825 */ move $a1, $zero
/* B79AC0 80102920 50400004 */ beql $v0, $zero, .L80102934
/* B79AC4 80102924 240F0001 */ li $t7, 1
/* B79AC8 80102928 1000003D */ b .L80102A20
/* B79ACC 8010292C 8FBF003C */ lw $ra, 0x3c($sp)
/* B79AD0 80102930 240F0001 */ li $t7, 1
.L80102934:
/* B79AD4 80102934 24180003 */ li $t8, 3
/* B79AD8 80102938 24190004 */ li $t9, 4
/* B79ADC 8010293C 24080006 */ li $t0, 6
/* B79AE0 80102940 A7AF0058 */ sh $t7, 0x58($sp)
/* B79AE4 80102944 A7B8005A */ sh $t8, 0x5a($sp)
/* B79AE8 80102948 A7B9005C */ sh $t9, 0x5c($sp)
/* B79AEC 8010294C A7A8005E */ sh $t0, 0x5e($sp)
/* B79AF0 80102950 24110001 */ li $s1, 1
/* B79AF4 80102954 27B0005A */ addiu $s0, $sp, 0x5a
/* B79AF8 80102958 27B60050 */ addiu $s6, $sp, 0x50
/* B79AFC 8010295C 24150004 */ li $s5, 4
/* B79B00 80102960 27B40052 */ addiu $s4, $sp, 0x52
.L80102964:
/* B79B04 80102964 8E640004 */ lw $a0, 4($s3)
/* B79B08 80102968 8E650008 */ lw $a1, 8($s3)
/* B79B0C 8010296C 96060000 */ lhu $a2, ($s0)
/* B79B10 80102970 0C0417D0 */ jal osReadMempak
/* B79B14 80102974 02403825 */ move $a3, $s2
/* B79B18 80102978 10400003 */ beqz $v0, .L80102988
/* B79B1C 8010297C 02402025 */ move $a0, $s2
/* B79B20 80102980 10000027 */ b .L80102A20
/* B79B24 80102984 8FBF003C */ lw $ra, 0x3c($sp)
.L80102988:
/* B79B28 80102988 02802825 */ move $a1, $s4
/* B79B2C 8010298C 0C040925 */ jal func_80102494
/* B79B30 80102990 02C03025 */ move $a2, $s6
/* B79B34 80102994 97A90052 */ lhu $t1, 0x52($sp)
/* B79B38 80102998 964A001C */ lhu $t2, 0x1c($s2)
/* B79B3C 8010299C 97AB0050 */ lhu $t3, 0x50($sp)
/* B79B40 801029A0 552A0005 */ bnel $t1, $t2, .L801029B8
/* B79B44 801029A4 26310001 */ addiu $s1, $s1, 1
/* B79B48 801029A8 964C001E */ lhu $t4, 0x1e($s2)
/* B79B4C 801029AC 116C0004 */ beq $t3, $t4, .L801029C0
/* B79B50 801029B0 00000000 */ nop
/* B79B54 801029B4 26310001 */ addiu $s1, $s1, 1
.L801029B8:
/* B79B58 801029B8 1635FFEA */ bne $s1, $s5, .L80102964
/* B79B5C 801029BC 26100002 */ addiu $s0, $s0, 2
.L801029C0:
/* B79B60 801029C0 16350003 */ bne $s1, $s5, .L801029D0
/* B79B64 801029C4 00008025 */ move $s0, $zero
/* B79B68 801029C8 10000014 */ b .L80102A1C
/* B79B6C 801029CC 2402000A */ li $v0, 10
.L801029D0:
/* B79B70 801029D0 27B40058 */ addiu $s4, $sp, 0x58
.L801029D4:
/* B79B74 801029D4 1211000D */ beq $s0, $s1, .L80102A0C
/* B79B78 801029D8 00106840 */ sll $t5, $s0, 1
/* B79B7C 801029DC 028D7021 */ addu $t6, $s4, $t5
/* B79B80 801029E0 95C60000 */ lhu $a2, ($t6)
/* B79B84 801029E4 8E640004 */ lw $a0, 4($s3)
/* B79B88 801029E8 8E650008 */ lw $a1, 8($s3)
/* B79B8C 801029EC 240F0001 */ li $t7, 1
/* B79B90 801029F0 AFAF0010 */ sw $t7, 0x10($sp)
/* B79B94 801029F4 0C04173C */ jal func_80105CF0
/* B79B98 801029F8 02403825 */ move $a3, $s2
/* B79B9C 801029FC 50400004 */ beql $v0, $zero, .L80102A10
/* B79BA0 80102A00 26100001 */ addiu $s0, $s0, 1
/* B79BA4 80102A04 10000006 */ b .L80102A20
/* B79BA8 80102A08 8FBF003C */ lw $ra, 0x3c($sp)
.L80102A0C:
/* B79BAC 80102A0C 26100001 */ addiu $s0, $s0, 1
.L80102A10:
/* B79BB0 80102A10 1615FFF0 */ bne $s0, $s5, .L801029D4
/* B79BB4 80102A14 00000000 */ nop
/* B79BB8 80102A18 00001025 */ move $v0, $zero
.L80102A1C:
/* B79BBC 80102A1C 8FBF003C */ lw $ra, 0x3c($sp)
.L80102A20:
/* B79BC0 80102A20 8FB00020 */ lw $s0, 0x20($sp)
/* B79BC4 80102A24 8FB10024 */ lw $s1, 0x24($sp)
/* B79BC8 80102A28 8FB20028 */ lw $s2, 0x28($sp)
/* B79BCC 80102A2C 8FB3002C */ lw $s3, 0x2c($sp)
/* B79BD0 80102A30 8FB40030 */ lw $s4, 0x30($sp)
/* B79BD4 80102A34 8FB50034 */ lw $s5, 0x34($sp)
/* B79BD8 80102A38 8FB60038 */ lw $s6, 0x38($sp)
/* B79BDC 80102A3C 03E00008 */ jr $ra
/* B79BE0 80102A40 27BD0060 */ addiu $sp, $sp, 0x60
glabel func_80102A44
/* B79BE4 80102A44 27BDFF90 */ addiu $sp, $sp, -0x70
/* B79BE8 80102A48 AFBF001C */ sw $ra, 0x1c($sp)
/* B79BEC 80102A4C AFB10018 */ sw $s1, 0x18($sp)
/* B79BF0 80102A50 AFB00014 */ sw $s0, 0x14($sp)
/* B79BF4 80102A54 908E0065 */ lbu $t6, 0x65($a0)
/* B79BF8 80102A58 00808025 */ move $s0, $a0
/* B79BFC 80102A5C 51C00008 */ beql $t6, $zero, .L80102A80
/* B79C00 80102A60 8E040004 */ lw $a0, 4($s0)
/* B79C04 80102A64 0C041320 */ jal func_80104C80
/* B79C08 80102A68 00002825 */ move $a1, $zero
/* B79C0C 80102A6C 50400004 */ beql $v0, $zero, .L80102A80
/* B79C10 80102A70 8E040004 */ lw $a0, 4($s0)
/* B79C14 80102A74 1000005A */ b .L80102BE0
/* B79C18 80102A78 8FBF001C */ lw $ra, 0x1c($sp)
/* B79C1C 80102A7C 8E040004 */ lw $a0, 4($s0)
.L80102A80:
/* B79C20 80102A80 8E050008 */ lw $a1, 8($s0)
/* B79C24 80102A84 24060001 */ li $a2, 1
/* B79C28 80102A88 0C0417D0 */ jal osReadMempak
/* B79C2C 80102A8C 27A7004C */ addiu $a3, $sp, 0x4c
/* B79C30 80102A90 10400003 */ beqz $v0, .L80102AA0
/* B79C34 80102A94 27A4004C */ addiu $a0, $sp, 0x4c
/* B79C38 80102A98 10000051 */ b .L80102BE0
/* B79C3C 80102A9C 8FBF001C */ lw $ra, 0x1c($sp)
.L80102AA0:
/* B79C40 80102AA0 27A5006E */ addiu $a1, $sp, 0x6e
/* B79C44 80102AA4 0C040925 */ jal func_80102494
/* B79C48 80102AA8 27A6006C */ addiu $a2, $sp, 0x6c
/* B79C4C 80102AAC 97AF006E */ lhu $t7, 0x6e($sp)
/* B79C50 80102AB0 97B80068 */ lhu $t8, 0x68($sp)
/* B79C54 80102AB4 27A5004C */ addiu $a1, $sp, 0x4c
/* B79C58 80102AB8 00A08825 */ move $s1, $a1
/* B79C5C 80102ABC 15F80004 */ bne $t7, $t8, .L80102AD0
/* B79C60 80102AC0 97B9006C */ lhu $t9, 0x6c($sp)
/* B79C64 80102AC4 97A9006A */ lhu $t1, 0x6a($sp)
/* B79C68 80102AC8 53290015 */ beql $t9, $t1, .L80102B20
/* B79C6C 80102ACC 962A0018 */ lhu $t2, 0x18($s1)
.L80102AD0:
/* B79C70 80102AD0 0C040A38 */ jal func_801028E0
/* B79C74 80102AD4 02002025 */ move $a0, $s0
/* B79C78 80102AD8 2401000A */ li $at, 10
/* B79C7C 80102ADC 1441000B */ bne $v0, $at, .L80102B0C
/* B79C80 80102AE0 00401825 */ move $v1, $v0
/* B79C84 80102AE4 02002025 */ move $a0, $s0
/* B79C88 80102AE8 27A5004C */ addiu $a1, $sp, 0x4c
/* B79C8C 80102AEC 0C040964 */ jal func_80102590
/* B79C90 80102AF0 27A60028 */ addiu $a2, $sp, 0x28
/* B79C94 80102AF4 10400003 */ beqz $v0, .L80102B04
/* B79C98 80102AF8 00000000 */ nop
/* B79C9C 80102AFC 10000038 */ b .L80102BE0
/* B79CA0 80102B00 8FBF001C */ lw $ra, 0x1c($sp)
.L80102B04:
/* B79CA4 80102B04 10000005 */ b .L80102B1C
/* B79CA8 80102B08 27B10028 */ addiu $s1, $sp, 0x28
.L80102B0C:
/* B79CAC 80102B0C 50400004 */ beql $v0, $zero, .L80102B20
/* B79CB0 80102B10 962A0018 */ lhu $t2, 0x18($s1)
/* B79CB4 80102B14 10000031 */ b .L80102BDC
/* B79CB8 80102B18 00601025 */ move $v0, $v1
.L80102B1C:
/* B79CBC 80102B1C 962A0018 */ lhu $t2, 0x18($s1)
.L80102B20:
/* B79CC0 80102B20 02002025 */ move $a0, $s0
/* B79CC4 80102B24 02202825 */ move $a1, $s1
/* B79CC8 80102B28 314B0001 */ andi $t3, $t2, 1
/* B79CCC 80102B2C 5560000D */ bnezl $t3, .L80102B64
/* B79CD0 80102B30 02202025 */ move $a0, $s1
/* B79CD4 80102B34 0C040964 */ jal func_80102590
/* B79CD8 80102B38 27A60028 */ addiu $a2, $sp, 0x28
/* B79CDC 80102B3C 10400003 */ beqz $v0, .L80102B4C
/* B79CE0 80102B40 97AC0040 */ lhu $t4, 0x40($sp)
/* B79CE4 80102B44 10000026 */ b .L80102BE0
/* B79CE8 80102B48 8FBF001C */ lw $ra, 0x1c($sp)
.L80102B4C:
/* B79CEC 80102B4C 318D0001 */ andi $t5, $t4, 1
/* B79CF0 80102B50 15A00003 */ bnez $t5, .L80102B60
/* B79CF4 80102B54 27B10028 */ addiu $s1, $sp, 0x28
/* B79CF8 80102B58 10000020 */ b .L80102BDC
/* B79CFC 80102B5C 2402000B */ li $v0, 11
.L80102B60:
/* B79D00 80102B60 02202025 */ move $a0, $s1
.L80102B64:
/* B79D04 80102B64 2605000C */ addiu $a1, $s0, 0xc
/* B79D08 80102B68 0C001BC4 */ jal bcopy
/* B79D0C 80102B6C 24060020 */ li $a2, 32
/* B79D10 80102B70 922E001B */ lbu $t6, 0x1b($s1)
/* B79D14 80102B74 24090010 */ li $t1, 16
/* B79D18 80102B78 240A0008 */ li $t2, 8
/* B79D1C 80102B7C AE0E004C */ sw $t6, 0x4c($s0)
/* B79D20 80102B80 922F001A */ lbu $t7, 0x1a($s1)
/* B79D24 80102B84 AE090050 */ sw $t1, 0x50($s0)
/* B79D28 80102B88 AE0A0054 */ sw $t2, 0x54($s0)
/* B79D2C 80102B8C 31E200FF */ andi $v0, $t7, 0xff
/* B79D30 80102B90 000218C0 */ sll $v1, $v0, 3
/* B79D34 80102B94 0002C040 */ sll $t8, $v0, 1
/* B79D38 80102B98 24680008 */ addiu $t0, $v1, 8
/* B79D3C 80102B9C 27190003 */ addiu $t9, $t8, 3
/* B79D40 80102BA0 01035821 */ addu $t3, $t0, $v1
/* B79D44 80102BA4 AE190060 */ sw $t9, 0x60($s0)
/* B79D48 80102BA8 AE080058 */ sw $t0, 0x58($s0)
/* B79D4C 80102BAC AE0B005C */ sw $t3, 0x5c($s0)
/* B79D50 80102BB0 8E040004 */ lw $a0, 4($s0)
/* B79D54 80102BB4 8E050008 */ lw $a1, 8($s0)
/* B79D58 80102BB8 24060007 */ li $a2, 7
/* B79D5C 80102BBC 2607002C */ addiu $a3, $s0, 0x2c
/* B79D60 80102BC0 0C0417D0 */ jal osReadMempak
/* B79D64 80102BC4 A20F0064 */ sb $t7, 0x64($s0)
/* B79D68 80102BC8 50400004 */ beql $v0, $zero, .L80102BDC
/* B79D6C 80102BCC 00001025 */ move $v0, $zero
/* B79D70 80102BD0 10000003 */ b .L80102BE0
/* B79D74 80102BD4 8FBF001C */ lw $ra, 0x1c($sp)
/* B79D78 80102BD8 00001025 */ move $v0, $zero
.L80102BDC:
/* B79D7C 80102BDC 8FBF001C */ lw $ra, 0x1c($sp)
.L80102BE0:
/* B79D80 80102BE0 8FB00014 */ lw $s0, 0x14($sp)
/* B79D84 80102BE4 8FB10018 */ lw $s1, 0x18($sp)
/* B79D88 80102BE8 03E00008 */ jr $ra
/* B79D8C 80102BEC 27BD0070 */ addiu $sp, $sp, 0x70
glabel func_80102BF0
/* B79D90 80102BF0 27BDFFB8 */ addiu $sp, $sp, -0x48
/* B79D94 80102BF4 AFBF001C */ sw $ra, 0x1c($sp)
/* B79D98 80102BF8 AFB00018 */ sw $s0, 0x18($sp)
/* B79D9C 80102BFC 908E0065 */ lbu $t6, 0x65($a0)
/* B79DA0 80102C00 00808025 */ move $s0, $a0
/* B79DA4 80102C04 51C0000F */ beql $t6, $zero, .L80102C44
/* B79DA8 80102C08 8E040004 */ lw $a0, 4($s0)
/* B79DAC 80102C0C 0C041320 */ jal func_80104C80
/* B79DB0 80102C10 00002825 */ move $a1, $zero
/* B79DB4 80102C14 24010002 */ li $at, 2
/* B79DB8 80102C18 14410005 */ bne $v0, $at, .L80102C30
/* B79DBC 80102C1C 00401825 */ move $v1, $v0
/* B79DC0 80102C20 02002025 */ move $a0, $s0
/* B79DC4 80102C24 0C041320 */ jal func_80104C80
/* B79DC8 80102C28 00002825 */ move $a1, $zero
/* B79DCC 80102C2C 00401825 */ move $v1, $v0
.L80102C30:
/* B79DD0 80102C30 50400004 */ beql $v0, $zero, .L80102C44
/* B79DD4 80102C34 8E040004 */ lw $a0, 4($s0)
/* B79DD8 80102C38 1000001D */ b .L80102CB0
/* B79DDC 80102C3C 00601025 */ move $v0, $v1
/* B79DE0 80102C40 8E040004 */ lw $a0, 4($s0)
.L80102C44:
/* B79DE4 80102C44 8E050008 */ lw $a1, 8($s0)
/* B79DE8 80102C48 24060001 */ li $a2, 1
/* B79DEC 80102C4C 0C0417D0 */ jal osReadMempak
/* B79DF0 80102C50 27A70028 */ addiu $a3, $sp, 0x28
/* B79DF4 80102C54 1040000D */ beqz $v0, .L80102C8C
/* B79DF8 80102C58 24010002 */ li $at, 2
/* B79DFC 80102C5C 10410003 */ beq $v0, $at, .L80102C6C
/* B79E00 80102C60 24060001 */ li $a2, 1
/* B79E04 80102C64 10000013 */ b .L80102CB4
/* B79E08 80102C68 8FBF001C */ lw $ra, 0x1c($sp)
.L80102C6C:
/* B79E0C 80102C6C 8E040004 */ lw $a0, 4($s0)
/* B79E10 80102C70 8E050008 */ lw $a1, 8($s0)
/* B79E14 80102C74 0C0417D0 */ jal osReadMempak
/* B79E18 80102C78 27A70028 */ addiu $a3, $sp, 0x28
/* B79E1C 80102C7C 50400004 */ beql $v0, $zero, .L80102C90
/* B79E20 80102C80 2604000C */ addiu $a0, $s0, 0xc
/* B79E24 80102C84 1000000B */ b .L80102CB4
/* B79E28 80102C88 8FBF001C */ lw $ra, 0x1c($sp)
.L80102C8C:
/* B79E2C 80102C8C 2604000C */ addiu $a0, $s0, 0xc
.L80102C90:
/* B79E30 80102C90 27A50028 */ addiu $a1, $sp, 0x28
/* B79E34 80102C94 0C001A30 */ jal bcmp
/* B79E38 80102C98 24060020 */ li $a2, 32
/* B79E3C 80102C9C 50400004 */ beql $v0, $zero, .L80102CB0
/* B79E40 80102CA0 00001025 */ move $v0, $zero
/* B79E44 80102CA4 10000002 */ b .L80102CB0
/* B79E48 80102CA8 24020002 */ li $v0, 2
/* B79E4C 80102CAC 00001025 */ move $v0, $zero
.L80102CB0:
/* B79E50 80102CB0 8FBF001C */ lw $ra, 0x1c($sp)
.L80102CB4:
/* B79E54 80102CB4 8FB00018 */ lw $s0, 0x18($sp)
/* B79E58 80102CB8 27BD0048 */ addiu $sp, $sp, 0x48
/* B79E5C 80102CBC 03E00008 */ jr $ra
/* B79E60 80102CC0 00000000 */ nop
glabel func_80102CC4
/* B79E64 80102CC4 27BDFFA8 */ addiu $sp, $sp, -0x58
/* B79E68 80102CC8 AFB40030 */ sw $s4, 0x30($sp)
/* B79E6C 80102CCC 30D400FF */ andi $s4, $a2, 0xff
/* B79E70 80102CD0 AFB20028 */ sw $s2, 0x28($sp)
/* B79E74 80102CD4 00809025 */ move $s2, $a0
/* B79E78 80102CD8 AFBF0034 */ sw $ra, 0x34($sp)
/* B79E7C 80102CDC AFB3002C */ sw $s3, 0x2c($sp)
/* B79E80 80102CE0 AFB10024 */ sw $s1, 0x24($sp)
/* B79E84 80102CE4 AFB00020 */ sw $s0, 0x20($sp)
/* B79E88 80102CE8 AFA5005C */ sw $a1, 0x5c($sp)
/* B79E8C 80102CEC AFA60060 */ sw $a2, 0x60($sp)
/* B79E90 80102CF0 16800011 */ bnez $s4, .L80102D38
/* B79E94 80102CF4 AFA70064 */ sw $a3, 0x64($sp)
/* B79E98 80102CF8 3C0F8013 */ lui $t7, %hi(D_80134CF4) # $t7, 0x8013
/* B79E9C 80102CFC 91EF4CF4 */ lbu $t7, %lo(D_80134CF4)($t7)
/* B79EA0 80102D00 93B80067 */ lbu $t8, 0x67($sp)
/* B79EA4 80102D04 3C198013 */ lui $t9, %hi(D_80134CF0) # $t9, 0x8013
/* B79EA8 80102D08 55F8000C */ bnel $t7, $t8, .L80102D3C
/* B79EAC 80102D0C 92490065 */ lbu $t1, 0x65($s2)
/* B79EB0 80102D10 8F394CF0 */ lw $t9, %lo(D_80134CF0)($t9)
/* B79EB4 80102D14 8C880008 */ lw $t0, 8($a0)
/* B79EB8 80102D18 3C048017 */ lui $a0, %hi(D_80175860) # $a0, 0x8017
/* B79EBC 80102D1C 24845860 */ addiu $a0, %lo(D_80175860) # addiu $a0, $a0, 0x5860
/* B79EC0 80102D20 57280006 */ bnel $t9, $t0, .L80102D3C
/* B79EC4 80102D24 92490065 */ lbu $t1, 0x65($s2)
/* B79EC8 80102D28 0C001BC4 */ jal bcopy
/* B79ECC 80102D2C 24060100 */ li $a2, 256
/* B79ED0 80102D30 10000091 */ b .L80102F78
/* B79ED4 80102D34 00001025 */ move $v0, $zero
.L80102D38:
/* B79ED8 80102D38 92490065 */ lbu $t1, 0x65($s2)
.L80102D3C:
/* B79EDC 80102D3C 02402025 */ move $a0, $s2
/* B79EE0 80102D40 51200008 */ beql $t1, $zero, .L80102D64
/* B79EE4 80102D44 93A30067 */ lbu $v1, 0x67($sp)
/* B79EE8 80102D48 0C041320 */ jal func_80104C80
/* B79EEC 80102D4C 00002825 */ move $a1, $zero
/* B79EF0 80102D50 50400004 */ beql $v0, $zero, .L80102D64
/* B79EF4 80102D54 93A30067 */ lbu $v1, 0x67($sp)
/* B79EF8 80102D58 10000088 */ b .L80102F7C
/* B79EFC 80102D5C 8FBF0034 */ lw $ra, 0x34($sp)
/* B79F00 80102D60 93A30067 */ lbu $v1, 0x67($sp)
.L80102D64:
/* B79F04 80102D64 24020001 */ li $v0, 1
/* B79F08 80102D68 240A0001 */ li $t2, 1
/* B79F0C 80102D6C 58600004 */ blezl $v1, .L80102D80
/* B79F10 80102D70 8E4B0060 */ lw $t3, 0x60($s2)
/* B79F14 80102D74 10000003 */ b .L80102D84
/* B79F18 80102D78 AFAA0048 */ sw $t2, 0x48($sp)
/* B79F1C 80102D7C 8E4B0060 */ lw $t3, 0x60($s2)
.L80102D80:
/* B79F20 80102D80 AFAB0048 */ sw $t3, 0x48($sp)
.L80102D84:
/* B79F24 80102D84 1454000C */ bne $v0, $s4, .L80102DB8
/* B79F28 80102D88 8FAD0048 */ lw $t5, 0x48($sp)
/* B79F2C 80102D8C 8FAC005C */ lw $t4, 0x5c($sp)
/* B79F30 80102D90 000D2823 */ negu $a1, $t5
/* B79F34 80102D94 00057840 */ sll $t7, $a1, 1
/* B79F38 80102D98 000D7040 */ sll $t6, $t5, 1
/* B79F3C 80102D9C 25E50100 */ addiu $a1, $t7, 0x100
/* B79F40 80102DA0 AFA3003C */ sw $v1, 0x3c($sp)
/* B79F44 80102DA4 0C040908 */ jal func_80102420
/* B79F48 80102DA8 018E2021 */ addu $a0, $t4, $t6
/* B79F4C 80102DAC 8FB8005C */ lw $t8, 0x5c($sp)
/* B79F50 80102DB0 8FA3003C */ lw $v1, 0x3c($sp)
/* B79F54 80102DB4 A3020001 */ sb $v0, 1($t8)
.L80102DB8:
/* B79F58 80102DB8 00008025 */ move $s0, $zero
/* B79F5C 80102DBC 8FB1005C */ lw $s1, 0x5c($sp)
/* B79F60 80102DC0 000398C0 */ sll $s3, $v1, 3
.L80102DC4:
/* B79F64 80102DC4 24020001 */ li $v0, 1
/* B79F68 80102DC8 14540016 */ bne $v0, $s4, .L80102E24
/* B79F6C 80102DCC 8E450008 */ lw $a1, 8($s2)
/* B79F70 80102DD0 8E590054 */ lw $t9, 0x54($s2)
/* B79F74 80102DD4 8E440004 */ lw $a0, 4($s2)
/* B79F78 80102DD8 AFA00010 */ sw $zero, 0x10($sp)
/* B79F7C 80102DDC 03334021 */ addu $t0, $t9, $s3
/* B79F80 80102DE0 01103021 */ addu $a2, $t0, $s0
/* B79F84 80102DE4 30C9FFFF */ andi $t1, $a2, 0xffff
/* B79F88 80102DE8 01203025 */ move $a2, $t1
/* B79F8C 80102DEC 0C04173C */ jal func_80105CF0
/* B79F90 80102DF0 02203825 */ move $a3, $s1
/* B79F94 80102DF4 8E4A0058 */ lw $t2, 0x58($s2)
/* B79F98 80102DF8 8E440004 */ lw $a0, 4($s2)
/* B79F9C 80102DFC 8E450008 */ lw $a1, 8($s2)
/* B79FA0 80102E00 01535821 */ addu $t3, $t2, $s3
/* B79FA4 80102E04 01703021 */ addu $a2, $t3, $s0
/* B79FA8 80102E08 30CCFFFF */ andi $t4, $a2, 0xffff
/* B79FAC 80102E0C 01803025 */ move $a2, $t4
/* B79FB0 80102E10 AFA00010 */ sw $zero, 0x10($sp)
/* B79FB4 80102E14 0C04173C */ jal func_80105CF0
/* B79FB8 80102E18 02203825 */ move $a3, $s1
/* B79FBC 80102E1C 1000000A */ b .L80102E48
/* B79FC0 80102E20 00401825 */ move $v1, $v0
.L80102E24:
/* B79FC4 80102E24 8E4E0054 */ lw $t6, 0x54($s2)
/* B79FC8 80102E28 8E440004 */ lw $a0, 4($s2)
/* B79FCC 80102E2C 02203825 */ move $a3, $s1
/* B79FD0 80102E30 01D36821 */ addu $t5, $t6, $s3
/* B79FD4 80102E34 01B03021 */ addu $a2, $t5, $s0
/* B79FD8 80102E38 30CFFFFF */ andi $t7, $a2, 0xffff
/* B79FDC 80102E3C 0C0417D0 */ jal osReadMempak
/* B79FE0 80102E40 01E03025 */ move $a2, $t7
/* B79FE4 80102E44 00401825 */ move $v1, $v0
.L80102E48:
/* B79FE8 80102E48 10400003 */ beqz $v0, .L80102E58
/* B79FEC 80102E4C 26100001 */ addiu $s0, $s0, 1
/* B79FF0 80102E50 10000049 */ b .L80102F78
/* B79FF4 80102E54 00601025 */ move $v0, $v1
.L80102E58:
/* B79FF8 80102E58 2A010008 */ slti $at, $s0, 8
/* B79FFC 80102E5C 1420FFD9 */ bnez $at, .L80102DC4
/* B7A000 80102E60 26310020 */ addiu $s1, $s1, 0x20
/* B7A004 80102E64 16800038 */ bnez $s4, .L80102F48
/* B7A008 80102E68 8FB90048 */ lw $t9, 0x48($sp)
/* B7A00C 80102E6C 8FB8005C */ lw $t8, 0x5c($sp)
/* B7A010 80102E70 00192823 */ negu $a1, $t9
/* B7A014 80102E74 00054840 */ sll $t1, $a1, 1
/* B7A018 80102E78 00194040 */ sll $t0, $t9, 1
/* B7A01C 80102E7C 25250100 */ addiu $a1, $t1, 0x100
/* B7A020 80102E80 0308A021 */ addu $s4, $t8, $t0
/* B7A024 80102E84 02802025 */ move $a0, $s4
/* B7A028 80102E88 0C040908 */ jal func_80102420
/* B7A02C 80102E8C AFA5003C */ sw $a1, 0x3c($sp)
/* B7A030 80102E90 8FAB005C */ lw $t3, 0x5c($sp)
/* B7A034 80102E94 304A00FF */ andi $t2, $v0, 0xff
/* B7A038 80102E98 00008025 */ move $s0, $zero
/* B7A03C 80102E9C 916C0001 */ lbu $t4, 1($t3)
/* B7A040 80102EA0 01608825 */ move $s1, $t3
/* B7A044 80102EA4 514C0029 */ beql $t2, $t4, .L80102F4C
/* B7A048 80102EA8 93AB0067 */ lbu $t3, 0x67($sp)
.L80102EAC:
/* B7A04C 80102EAC 8E4E0058 */ lw $t6, 0x58($s2)
/* B7A050 80102EB0 8E440004 */ lw $a0, 4($s2)
/* B7A054 80102EB4 8E450008 */ lw $a1, 8($s2)
/* B7A058 80102EB8 01D36821 */ addu $t5, $t6, $s3
/* B7A05C 80102EBC 01B03021 */ addu $a2, $t5, $s0
/* B7A060 80102EC0 30CFFFFF */ andi $t7, $a2, 0xffff
/* B7A064 80102EC4 01E03025 */ move $a2, $t7
/* B7A068 80102EC8 0C0417D0 */ jal osReadMempak
/* B7A06C 80102ECC 02203825 */ move $a3, $s1
/* B7A070 80102ED0 26100001 */ addiu $s0, $s0, 1
/* B7A074 80102ED4 2A010008 */ slti $at, $s0, 8
/* B7A078 80102ED8 1420FFF4 */ bnez $at, .L80102EAC
/* B7A07C 80102EDC 26310020 */ addiu $s1, $s1, 0x20
/* B7A080 80102EE0 02802025 */ move $a0, $s4
/* B7A084 80102EE4 0C040908 */ jal func_80102420
/* B7A088 80102EE8 8FA5003C */ lw $a1, 0x3c($sp)
/* B7A08C 80102EEC 8FA8005C */ lw $t0, 0x5c($sp)
/* B7A090 80102EF0 305800FF */ andi $t8, $v0, 0xff
/* B7A094 80102EF4 00008025 */ move $s0, $zero
/* B7A098 80102EF8 91190001 */ lbu $t9, 1($t0)
/* B7A09C 80102EFC 8FB1005C */ lw $s1, 0x5c($sp)
/* B7A0A0 80102F00 13190003 */ beq $t8, $t9, .L80102F10
/* B7A0A4 80102F04 00000000 */ nop
/* B7A0A8 80102F08 1000001B */ b .L80102F78
/* B7A0AC 80102F0C 24020003 */ li $v0, 3
.L80102F10:
/* B7A0B0 80102F10 8E490054 */ lw $t1, 0x54($s2)
/* B7A0B4 80102F14 8E440004 */ lw $a0, 4($s2)
/* B7A0B8 80102F18 8E450008 */ lw $a1, 8($s2)
/* B7A0BC 80102F1C 01335021 */ addu $t2, $t1, $s3
/* B7A0C0 80102F20 01503021 */ addu $a2, $t2, $s0
/* B7A0C4 80102F24 30CCFFFF */ andi $t4, $a2, 0xffff
/* B7A0C8 80102F28 01803025 */ move $a2, $t4
/* B7A0CC 80102F2C AFA00010 */ sw $zero, 0x10($sp)
/* B7A0D0 80102F30 0C04173C */ jal func_80105CF0
/* B7A0D4 80102F34 02203825 */ move $a3, $s1
/* B7A0D8 80102F38 26100001 */ addiu $s0, $s0, 1
/* B7A0DC 80102F3C 24010008 */ li $at, 8
/* B7A0E0 80102F40 1601FFF3 */ bne $s0, $at, .L80102F10
/* B7A0E4 80102F44 26310020 */ addiu $s1, $s1, 0x20
.L80102F48:
/* B7A0E8 80102F48 93AB0067 */ lbu $t3, 0x67($sp)
.L80102F4C:
/* B7A0EC 80102F4C 3C018013 */ lui $at, %hi(D_80134CF4) # $at, 0x8013
/* B7A0F0 80102F50 3C058017 */ lui $a1, %hi(D_80175860) # $a1, 0x8017
/* B7A0F4 80102F54 24A55860 */ addiu $a1, %lo(D_80175860) # addiu $a1, $a1, 0x5860
/* B7A0F8 80102F58 8FA4005C */ lw $a0, 0x5c($sp)
/* B7A0FC 80102F5C 24060100 */ li $a2, 256
/* B7A100 80102F60 0C001BC4 */ jal bcopy
/* B7A104 80102F64 A02B4CF4 */ sb $t3, %lo(D_80134CF4)($at)
/* B7A108 80102F68 8E4E0008 */ lw $t6, 8($s2)
/* B7A10C 80102F6C 3C018013 */ lui $at, %hi(D_80134CF0) # $at, 0x8013
/* B7A110 80102F70 00001025 */ move $v0, $zero
/* B7A114 80102F74 AC2E4CF0 */ sw $t6, %lo(D_80134CF0)($at)
.L80102F78:
/* B7A118 80102F78 8FBF0034 */ lw $ra, 0x34($sp)
.L80102F7C:
/* B7A11C 80102F7C 8FB00020 */ lw $s0, 0x20($sp)
/* B7A120 80102F80 8FB10024 */ lw $s1, 0x24($sp)
/* B7A124 80102F84 8FB20028 */ lw $s2, 0x28($sp)
/* B7A128 80102F88 8FB3002C */ lw $s3, 0x2c($sp)
/* B7A12C 80102F8C 8FB40030 */ lw $s4, 0x30($sp)
/* B7A130 80102F90 03E00008 */ jr $ra
/* B7A134 80102F94 27BD0058 */ addiu $sp, $sp, 0x58