.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_800FFA50 /* B76BF0 800FFA50 27BDFF98 */ addiu $sp, $sp, -0x68 /* B76BF4 800FFA54 AFBF003C */ sw $ra, 0x3c($sp) /* B76BF8 800FFA58 AFBE0038 */ sw $fp, 0x38($sp) /* B76BFC 800FFA5C AFB70034 */ sw $s7, 0x34($sp) /* B76C00 800FFA60 AFB60030 */ sw $s6, 0x30($sp) /* B76C04 800FFA64 AFB5002C */ sw $s5, 0x2c($sp) /* B76C08 800FFA68 AFB40028 */ sw $s4, 0x28($sp) /* B76C0C 800FFA6C AFB30024 */ sw $s3, 0x24($sp) /* B76C10 800FFA70 AFB20020 */ sw $s2, 0x20($sp) /* B76C14 800FFA74 AFB1001C */ sw $s1, 0x1c($sp) /* B76C18 800FFA78 AFB00018 */ sw $s0, 0x18($sp) /* B76C1C 800FFA7C AFA70074 */ sw $a3, 0x74($sp) /* B76C20 800FFA80 AFA00058 */ sw $zero, 0x58($sp) /* B76C24 800FFA84 8C8F0000 */ lw $t7, ($a0) /* B76C28 800FFA88 3C018017 */ lui $at, %hi(D_80175660) # $at, 0x8017 /* B76C2C 800FFA8C 30EE00FF */ andi $t6, $a3, 0xff /* B76C30 800FFA90 AC2F5660 */ sw $t7, %lo(D_80175660)($at) /* B76C34 800FFA94 90980004 */ lbu $t8, 4($a0) /* B76C38 800FFA98 01C03825 */ move $a3, $t6 /* B76C3C 800FFA9C 00A08825 */ move $s1, $a1 /* B76C40 800FFAA0 17000003 */ bnez $t8, .L800FFAB0 /* B76C44 800FFAA4 00C0B025 */ move $s6, $a2 /* B76C48 800FFAA8 10000007 */ b .L800FFAC8 /* B76C4C 800FFAAC 24020002 */ li $v0, 2 .L800FFAB0: /* B76C50 800FFAB0 90990005 */ lbu $t9, 5($a0) /* B76C54 800FFAB4 24010001 */ li $at, 1 /* B76C58 800FFAB8 24020004 */ li $v0, 4 /* B76C5C 800FFABC 17210002 */ bne $t9, $at, .L800FFAC8 /* B76C60 800FFAC0 24080080 */ li $t0, 128 /* B76C64 800FFAC4 AFA80058 */ sw $t0, 0x58($sp) .L800FFAC8: /* B76C68 800FFAC8 8C940008 */ lw $s4, 8($a0) /* B76C6C 800FFACC 8C95000C */ lw $s5, 0xc($a0) /* B76C70 800FFAD0 8C970010 */ lw $s7, 0x10($a0) /* B76C74 800FFAD4 14E0000E */ bnez $a3, .L800FFB10 /* B76C78 800FFAD8 8C9E0014 */ lw $fp, 0x14($a0) /* B76C7C 800FFADC 3C018017 */ lui $at, %hi(D_80175664) # $at, 0x8017 /* B76C80 800FFAE0 AC205664 */ sw $zero, %lo(D_80175664)($at) /* B76C84 800FFAE4 3C018017 */ lui $at, %hi(D_80175668) # $at, 0x8017 /* B76C88 800FFAE8 24090020 */ li $t1, 32 /* B76C8C 800FFAEC A0295668 */ sb $t1, %lo(D_80175668)($at) /* B76C90 800FFAF0 3C018017 */ lui $at, %hi(D_8017566C) # $at, 0x8017 /* B76C94 800FFAF4 AC20566C */ sw $zero, %lo(D_8017566C)($at) /* B76C98 800FFAF8 3C018017 */ lui $at, %hi(D_80175669) # $at, 0x8017 /* B76C9C 800FFAFC A0205669 */ sb $zero, %lo(D_80175669)($at) /* B76CA0 800FFB00 A7A00064 */ sh $zero, 0x64($sp) /* B76CA4 800FFB04 A7A00062 */ sh $zero, 0x62($sp) /* B76CA8 800FFB08 10000014 */ b .L800FFB5C /* B76CAC 800FFB0C A7A00060 */ sh $zero, 0x60($sp) .L800FFB10: /* B76CB0 800FFB10 8FAA0078 */ lw $t2, 0x78($sp) /* B76CB4 800FFB14 3C018017 */ lui $at, %hi(D_80175664) # $at, 0x8017 /* B76CB8 800FFB18 8D4B0000 */ lw $t3, ($t2) /* B76CBC 800FFB1C AC2B5664 */ sw $t3, %lo(D_80175664)($at) /* B76CC0 800FFB20 914C0004 */ lbu $t4, 4($t2) /* B76CC4 800FFB24 3C018017 */ lui $at, %hi(D_80175668) # $at, 0x8017 /* B76CC8 800FFB28 A02C5668 */ sb $t4, %lo(D_80175668)($at) /* B76CCC 800FFB2C 8D4D0008 */ lw $t5, 8($t2) /* B76CD0 800FFB30 3C018017 */ lui $at, %hi(D_8017566C) # $at, 0x8017 /* B76CD4 800FFB34 AC2D566C */ sw $t5, %lo(D_8017566C)($at) /* B76CD8 800FFB38 914E0005 */ lbu $t6, 5($t2) /* B76CDC 800FFB3C 3C018017 */ lui $at, %hi(D_80175669) # $at, 0x8017 /* B76CE0 800FFB40 A02E5669 */ sb $t6, %lo(D_80175669)($at) /* B76CE4 800FFB44 854F000C */ lh $t7, 0xc($t2) /* B76CE8 800FFB48 A7AF0064 */ sh $t7, 0x64($sp) /* B76CEC 800FFB4C 8558000E */ lh $t8, 0xe($t2) /* B76CF0 800FFB50 A7B80062 */ sh $t8, 0x62($sp) /* B76CF4 800FFB54 85590010 */ lh $t9, 0x10($t2) /* B76CF8 800FFB58 A7B90060 */ sh $t9, 0x60($sp) .L800FFB5C: /* B76CFC 800FFB5C 12C00026 */ beqz $s6, .L800FFBF8 /* B76D00 800FFB60 00409025 */ move $s2, $v0 /* B76D04 800FFB64 27B30064 */ addiu $s3, $sp, 0x64 .L800FFB68: /* B76D08 800FFB68 1240000C */ beqz $s2, .L800FFB9C /* B76D0C 800FFB6C 00008025 */ move $s0, $zero .L800FFB70: /* B76D10 800FFB70 02802025 */ move $a0, $s4 /* B76D14 800FFB74 02A02825 */ move $a1, $s5 /* B76D18 800FFB78 02203025 */ move $a2, $s1 /* B76D1C 800FFB7C 0C03FF1E */ jal func_800FFC78 /* B76D20 800FFB80 02603825 */ move $a3, $s3 /* B76D24 800FFB84 10400003 */ beqz $v0, .L800FFB94 /* B76D28 800FFB88 26100001 */ addiu $s0, $s0, 1 /* B76D2C 800FFB8C 1000002E */ b .L800FFC48 /* B76D30 800FFB90 24020002 */ li $v0, 2 .L800FFB94: /* B76D34 800FFB94 1612FFF6 */ bne $s0, $s2, .L800FFB70 /* B76D38 800FFB98 26310080 */ addiu $s1, $s1, 0x80 .L800FFB9C: /* B76D3C 800FFB9C 02E02025 */ move $a0, $s7 /* B76D40 800FFBA0 03C02825 */ move $a1, $fp /* B76D44 800FFBA4 02203025 */ move $a2, $s1 /* B76D48 800FFBA8 0C03FF1E */ jal func_800FFC78 /* B76D4C 800FFBAC 27A70062 */ addiu $a3, $sp, 0x62 /* B76D50 800FFBB0 10400003 */ beqz $v0, .L800FFBC0 /* B76D54 800FFBB4 26310080 */ addiu $s1, $s1, 0x80 /* B76D58 800FFBB8 10000023 */ b .L800FFC48 /* B76D5C 800FFBBC 24020002 */ li $v0, 2 .L800FFBC0: /* B76D60 800FFBC0 02E02025 */ move $a0, $s7 /* B76D64 800FFBC4 03C02825 */ move $a1, $fp /* B76D68 800FFBC8 02203025 */ move $a2, $s1 /* B76D6C 800FFBCC 0C03FF1E */ jal func_800FFC78 /* B76D70 800FFBD0 27A70060 */ addiu $a3, $sp, 0x60 /* B76D74 800FFBD4 10400003 */ beqz $v0, .L800FFBE4 /* B76D78 800FFBD8 8FA80058 */ lw $t0, 0x58($sp) /* B76D7C 800FFBDC 1000001A */ b .L800FFC48 /* B76D80 800FFBE0 24020002 */ li $v0, 2 .L800FFBE4: /* B76D84 800FFBE4 26D6FFFF */ addiu $s6, $s6, -1 /* B76D88 800FFBE8 26310080 */ addiu $s1, $s1, 0x80 /* B76D8C 800FFBEC 00084840 */ sll $t1, $t0, 1 /* B76D90 800FFBF0 16C0FFDD */ bnez $s6, .L800FFB68 /* B76D94 800FFBF4 02298821 */ addu $s1, $s1, $t1 .L800FFBF8: /* B76D98 800FFBF8 3C0B8017 */ lui $t3, %hi(D_80175664) # $t3, 0x8017 /* B76D9C 800FFBFC 8FA30078 */ lw $v1, 0x78($sp) /* B76DA0 800FFC00 8D6B5664 */ lw $t3, %lo(D_80175664)($t3) /* B76DA4 800FFC04 3C0C8017 */ lui $t4, %hi(D_80175668) # $t4, 0x8017 /* B76DA8 800FFC08 3C0D8017 */ lui $t5, %hi(D_8017566C) # $t5, 0x8017 /* B76DAC 800FFC0C AC6B0000 */ sw $t3, ($v1) /* B76DB0 800FFC10 918C5668 */ lbu $t4, %lo(D_80175668)($t4) /* B76DB4 800FFC14 3C0E8017 */ lui $t6, %hi(D_80175669) # $t6, 0x8017 /* B76DB8 800FFC18 00001025 */ move $v0, $zero /* B76DBC 800FFC1C A06C0004 */ sb $t4, 4($v1) /* B76DC0 800FFC20 8DAD566C */ lw $t5, %lo(D_8017566C)($t5) /* B76DC4 800FFC24 AC6D0008 */ sw $t5, 8($v1) /* B76DC8 800FFC28 91CE5669 */ lbu $t6, %lo(D_80175669)($t6) /* B76DCC 800FFC2C A06E0005 */ sb $t6, 5($v1) /* B76DD0 800FFC30 87AF0064 */ lh $t7, 0x64($sp) /* B76DD4 800FFC34 A46F000C */ sh $t7, 0xc($v1) /* B76DD8 800FFC38 87B80062 */ lh $t8, 0x62($sp) /* B76DDC 800FFC3C A478000E */ sh $t8, 0xe($v1) /* B76DE0 800FFC40 87AA0060 */ lh $t2, 0x60($sp) /* B76DE4 800FFC44 A46A0010 */ sh $t2, 0x10($v1) .L800FFC48: /* B76DE8 800FFC48 8FBF003C */ lw $ra, 0x3c($sp) /* B76DEC 800FFC4C 8FB00018 */ lw $s0, 0x18($sp) /* B76DF0 800FFC50 8FB1001C */ lw $s1, 0x1c($sp) /* B76DF4 800FFC54 8FB20020 */ lw $s2, 0x20($sp) /* B76DF8 800FFC58 8FB30024 */ lw $s3, 0x24($sp) /* B76DFC 800FFC5C 8FB40028 */ lw $s4, 0x28($sp) /* B76E00 800FFC60 8FB5002C */ lw $s5, 0x2c($sp) /* B76E04 800FFC64 8FB60030 */ lw $s6, 0x30($sp) /* B76E08 800FFC68 8FB70034 */ lw $s7, 0x34($sp) /* B76E0C 800FFC6C 8FBE0038 */ lw $fp, 0x38($sp) /* B76E10 800FFC70 03E00008 */ jr $ra /* B76E14 800FFC74 27BD0068 */ addiu $sp, $sp, 0x68 glabel func_800FFC78 /* B76E18 800FFC78 27BDFFC8 */ addiu $sp, $sp, -0x38 /* B76E1C 800FFC7C AFB50028 */ sw $s5, 0x28($sp) /* B76E20 800FFC80 AFB40024 */ sw $s4, 0x24($sp) /* B76E24 800FFC84 AFB30020 */ sw $s3, 0x20($sp) /* B76E28 800FFC88 AFB10018 */ sw $s1, 0x18($sp) /* B76E2C 800FFC8C 00C08825 */ move $s1, $a2 /* B76E30 800FFC90 00A09825 */ move $s3, $a1 /* B76E34 800FFC94 27B40034 */ addiu $s4, $sp, 0x34 /* B76E38 800FFC98 27B50036 */ addiu $s5, $sp, 0x36 /* B76E3C 800FFC9C AFBF002C */ sw $ra, 0x2c($sp) /* B76E40 800FFCA0 AFB2001C */ sw $s2, 0x1c($sp) /* B76E44 800FFCA4 00E09025 */ move $s2, $a3 /* B76E48 800FFCA8 AFB00014 */ sw $s0, 0x14($sp) /* B76E4C 800FFCAC 02A03025 */ move $a2, $s5 /* B76E50 800FFCB0 0C03FF85 */ jal func_800FFE14 /* B76E54 800FFCB4 02802825 */ move $a1, $s4 /* B76E58 800FFCB8 10400003 */ beqz $v0, .L800FFCC8 /* B76E5C 800FFCBC 87AF0034 */ lh $t7, 0x34($sp) /* B76E60 800FFCC0 1000004B */ b .L800FFDF0 /* B76E64 800FFCC4 24020001 */ li $v0, 1 .L800FFCC8: /* B76E68 800FFCC8 864E0000 */ lh $t6, ($s2) /* B76E6C 800FFCCC 24100001 */ li $s0, 1 /* B76E70 800FFCD0 2A010040 */ slti $at, $s0, 0x40 /* B76E74 800FFCD4 01CFC021 */ addu $t8, $t6, $t7 /* B76E78 800FFCD8 A6580000 */ sh $t8, ($s2) /* B76E7C 800FFCDC 86590000 */ lh $t9, ($s2) /* B76E80 800FFCE0 2412000F */ li $s2, 15 /* B76E84 800FFCE4 10200041 */ beqz $at, .L800FFDEC /* B76E88 800FFCE8 A6390000 */ sh $t9, ($s1) /* B76E8C 800FFCEC 02602025 */ move $a0, $s3 .L800FFCF0: /* B76E90 800FFCF0 02802825 */ move $a1, $s4 /* B76E94 800FFCF4 0C03FF85 */ jal func_800FFE14 /* B76E98 800FFCF8 02A03025 */ move $a2, $s5 /* B76E9C 800FFCFC 10400003 */ beqz $v0, .L800FFD0C /* B76EA0 800FFD00 87A80034 */ lh $t0, 0x34($sp) /* B76EA4 800FFD04 1000003A */ b .L800FFDF0 /* B76EA8 800FFD08 24020001 */ li $v0, 1 .L800FFD0C: /* B76EAC 800FFD0C 1500001E */ bnez $t0, .L800FFD88 /* B76EB0 800FFD10 83A30036 */ lb $v1, 0x36($sp) /* B76EB4 800FFD14 83A30036 */ lb $v1, 0x36($sp) /* B76EB8 800FFD18 1472000F */ bne $v1, $s2, .L800FFD58 /* B76EBC 800FFD1C 246AFFFF */ addiu $t2, $v1, -1 /* B76EC0 800FFD20 0460002F */ bltz $v1, .L800FFDE0 /* B76EC4 800FFD24 A3AA0036 */ sb $t2, 0x36($sp) .L800FFD28: /* B76EC8 800FFD28 00105840 */ sll $t3, $s0, 1 /* B76ECC 800FFD2C 022B6021 */ addu $t4, $s1, $t3 /* B76ED0 800FFD30 A5800000 */ sh $zero, ($t4) /* B76ED4 800FFD34 83AF0036 */ lb $t7, 0x36($sp) /* B76ED8 800FFD38 26100001 */ addiu $s0, $s0, 1 /* B76EDC 800FFD3C 00106E00 */ sll $t5, $s0, 0x18 /* B76EE0 800FFD40 25F8FFFF */ addiu $t8, $t7, -1 /* B76EE4 800FFD44 A3B80036 */ sb $t8, 0x36($sp) /* B76EE8 800FFD48 05E1FFF7 */ bgez $t7, .L800FFD28 /* B76EEC 800FFD4C 000D8603 */ sra $s0, $t5, 0x18 /* B76EF0 800FFD50 10000024 */ b .L800FFDE4 /* B76EF4 800FFD54 2A010040 */ slti $at, $s0, 0x40 .L800FFD58: /* B76EF8 800FFD58 2A010040 */ slti $at, $s0, 0x40 /* B76EFC 800FFD5C 10200023 */ beqz $at, .L800FFDEC .L800FFD60: /* B76F00 800FFD60 0010C840 */ sll $t9, $s0, 1 /* B76F04 800FFD64 26100001 */ addiu $s0, $s0, 1 /* B76F08 800FFD68 00104E00 */ sll $t1, $s0, 0x18 /* B76F0C 800FFD6C 00098603 */ sra $s0, $t1, 0x18 /* B76F10 800FFD70 2A010040 */ slti $at, $s0, 0x40 /* B76F14 800FFD74 02394021 */ addu $t0, $s1, $t9 /* B76F18 800FFD78 1420FFF9 */ bnez $at, .L800FFD60 /* B76F1C 800FFD7C A5000000 */ sh $zero, ($t0) /* B76F20 800FFD80 1000001B */ b .L800FFDF0 /* B76F24 800FFD84 00001025 */ move $v0, $zero .L800FFD88: /* B76F28 800FFD88 0003102A */ slt $v0, $zero, $v1 /* B76F2C 800FFD8C 246CFFFF */ addiu $t4, $v1, -1 /* B76F30 800FFD90 1040000C */ beqz $v0, .L800FFDC4 /* B76F34 800FFD94 A3AC0036 */ sb $t4, 0x36($sp) .L800FFD98: /* B76F38 800FFD98 00106840 */ sll $t5, $s0, 1 /* B76F3C 800FFD9C 022D7021 */ addu $t6, $s1, $t5 /* B76F40 800FFDA0 A5C00000 */ sh $zero, ($t6) /* B76F44 800FFDA4 83B90036 */ lb $t9, 0x36($sp) /* B76F48 800FFDA8 26100001 */ addiu $s0, $s0, 1 /* B76F4C 800FFDAC 00107E00 */ sll $t7, $s0, 0x18 /* B76F50 800FFDB0 0019102A */ slt $v0, $zero, $t9 /* B76F54 800FFDB4 2728FFFF */ addiu $t0, $t9, -1 /* B76F58 800FFDB8 A3A80036 */ sb $t0, 0x36($sp) /* B76F5C 800FFDBC 1440FFF6 */ bnez $v0, .L800FFD98 /* B76F60 800FFDC0 000F8603 */ sra $s0, $t7, 0x18 .L800FFDC4: /* B76F64 800FFDC4 87A90034 */ lh $t1, 0x34($sp) /* B76F68 800FFDC8 00105040 */ sll $t2, $s0, 1 /* B76F6C 800FFDCC 26100001 */ addiu $s0, $s0, 1 /* B76F70 800FFDD0 00106600 */ sll $t4, $s0, 0x18 /* B76F74 800FFDD4 022A5821 */ addu $t3, $s1, $t2 /* B76F78 800FFDD8 000C8603 */ sra $s0, $t4, 0x18 /* B76F7C 800FFDDC A5690000 */ sh $t1, ($t3) .L800FFDE0: /* B76F80 800FFDE0 2A010040 */ slti $at, $s0, 0x40 .L800FFDE4: /* B76F84 800FFDE4 5420FFC2 */ bnezl $at, .L800FFCF0 /* B76F88 800FFDE8 02602025 */ move $a0, $s3 .L800FFDEC: /* B76F8C 800FFDEC 00001025 */ move $v0, $zero .L800FFDF0: /* B76F90 800FFDF0 8FBF002C */ lw $ra, 0x2c($sp) /* B76F94 800FFDF4 8FB00014 */ lw $s0, 0x14($sp) /* B76F98 800FFDF8 8FB10018 */ lw $s1, 0x18($sp) /* B76F9C 800FFDFC 8FB2001C */ lw $s2, 0x1c($sp) /* B76FA0 800FFE00 8FB30020 */ lw $s3, 0x20($sp) /* B76FA4 800FFE04 8FB40024 */ lw $s4, 0x24($sp) /* B76FA8 800FFE08 8FB50028 */ lw $s5, 0x28($sp) /* B76FAC 800FFE0C 03E00008 */ jr $ra /* B76FB0 800FFE10 27BD0038 */ addiu $sp, $sp, 0x38 glabel func_800FFE14 /* B76FB4 800FFE14 27BDFFD8 */ addiu $sp, $sp, -0x28 /* B76FB8 800FFE18 AFB00018 */ sw $s0, 0x18($sp) /* B76FBC 800FFE1C 00808025 */ move $s0, $a0 /* B76FC0 800FFE20 AFBF001C */ sw $ra, 0x1c($sp) /* B76FC4 800FFE24 AFA5002C */ sw $a1, 0x2c($sp) /* B76FC8 800FFE28 AFA60030 */ sw $a2, 0x30($sp) /* B76FCC 800FFE2C 24040010 */ li $a0, 16 /* B76FD0 800FFE30 0C03FFD4 */ jal func_800FFF50 /* B76FD4 800FFE34 A7A00024 */ sh $zero, 0x24($sp) /* B76FD8 800FFE38 97A90024 */ lhu $t1, 0x24($sp) /* B76FDC 800FFE3C 8FAA002C */ lw $t2, 0x2c($sp) /* B76FE0 800FFE40 00003025 */ move $a2, $zero /* B76FE4 800FFE44 2408000F */ li $t0, 15 /* B76FE8 800FFE48 3407FFFF */ li $a3, 65535 .L800FFE4C: /* B76FEC 800FFE4C 00067040 */ sll $t6, $a2, 1 /* B76FF0 800FFE50 020E7821 */ addu $t7, $s0, $t6 /* B76FF4 800FFE54 95E40030 */ lhu $a0, 0x30($t7) /* B76FF8 800FFE58 0106C023 */ subu $t8, $t0, $a2 /* B76FFC 800FFE5C 03021807 */ srav $v1, $v0, $t8 /* B77000 800FFE60 10E40005 */ beq $a3, $a0, .L800FFE78 /* B77004 800FFE64 00C02825 */ move $a1, $a2 /* B77008 800FFE68 3079FFFF */ andi $t9, $v1, 0xffff /* B7700C 800FFE6C 0099082A */ slt $at, $a0, $t9 /* B77010 800FFE70 10200006 */ beqz $at, .L800FFE8C /* B77014 800FFE74 3069FFFF */ andi $t1, $v1, 0xffff .L800FFE78: /* B77018 800FFE78 24C60001 */ addiu $a2, $a2, 1 /* B7701C 800FFE7C 30C500FF */ andi $a1, $a2, 0xff /* B77020 800FFE80 28A10010 */ slti $at, $a1, 0x10 /* B77024 800FFE84 1420FFF1 */ bnez $at, .L800FFE4C /* B77028 800FFE88 00A03025 */ move $a2, $a1 .L800FFE8C: /* B7702C 800FFE8C 28A10010 */ slti $at, $a1, 0x10 /* B77030 800FFE90 14200003 */ bnez $at, .L800FFEA0 /* B77034 800FFE94 3C028017 */ lui $v0, %hi(D_80175668) # $v0, 0x8017 /* B77038 800FFE98 10000028 */ b .L800FFF3C /* B7703C 800FFE9C 24020001 */ li $v0, 1 .L800FFEA0: /* B77040 800FFEA0 02066021 */ addu $t4, $s0, $a2 /* B77044 800FFEA4 00067840 */ sll $t7, $a2, 1 /* B77048 800FFEA8 918D0000 */ lbu $t5, ($t4) /* B7704C 800FFEAC 020FC021 */ addu $t8, $s0, $t7 /* B77050 800FFEB0 97190010 */ lhu $t9, 0x10($t8) /* B77054 800FFEB4 8E0C0050 */ lw $t4, 0x50($s0) /* B77058 800FFEB8 01A97021 */ addu $t6, $t5, $t1 /* B7705C 800FFEBC 01D95823 */ subu $t3, $t6, $t9 /* B77060 800FFEC0 016C6821 */ addu $t5, $t3, $t4 /* B77064 800FFEC4 91A40000 */ lbu $a0, ($t5) /* B77068 800FFEC8 8FB80030 */ lw $t8, 0x30($sp) /* B7706C 800FFECC 24425668 */ addiu $v0, %lo(D_80175668) # addiu $v0, $v0, 0x5668 /* B77070 800FFED0 00047903 */ sra $t7, $a0, 4 /* B77074 800FFED4 A30F0000 */ sb $t7, ($t8) /* B77078 800FFED8 90590000 */ lbu $t9, ($v0) /* B7707C 800FFEDC 308E000F */ andi $t6, $a0, 0xf /* B77080 800FFEE0 01C02025 */ move $a0, $t6 /* B77084 800FFEE4 03255821 */ addu $t3, $t9, $a1 /* B77088 800FFEE8 256CFFF1 */ addiu $t4, $t3, -0xf /* B7708C 800FFEEC A04C0000 */ sb $t4, ($v0) /* B77090 800FFEF0 11C00011 */ beqz $t6, .L800FFF38 /* B77094 800FFEF4 A5400000 */ sh $zero, ($t2) /* B77098 800FFEF8 0C03FFD4 */ jal func_800FFF50 /* B7709C 800FFEFC A3AE0026 */ sb $t6, 0x26($sp) /* B770A0 800FFF00 8FAA002C */ lw $t2, 0x2c($sp) /* B770A4 800FFF04 93A40026 */ lbu $a0, 0x26($sp) /* B770A8 800FFF08 240F0001 */ li $t7, 1 /* B770AC 800FFF0C A5420000 */ sh $v0, ($t2) /* B770B0 800FFF10 85450000 */ lh $a1, ($t2) /* B770B4 800FFF14 248D001F */ addiu $t5, $a0, 0x1f /* B770B8 800FFF18 01AFC004 */ sllv $t8, $t7, $t5 /* B770BC 800FFF1C 00B8082A */ slt $at, $a1, $t8 /* B770C0 800FFF20 10200005 */ beqz $at, .L800FFF38 /* B770C4 800FFF24 240EFFFF */ li $t6, -1 /* B770C8 800FFF28 008EC804 */ sllv $t9, $t6, $a0 /* B770CC 800FFF2C 00B95821 */ addu $t3, $a1, $t9 /* B770D0 800FFF30 256C0001 */ addiu $t4, $t3, 1 /* B770D4 800FFF34 A54C0000 */ sh $t4, ($t2) .L800FFF38: /* B770D8 800FFF38 00001025 */ move $v0, $zero .L800FFF3C: /* B770DC 800FFF3C 8FBF001C */ lw $ra, 0x1c($sp) /* B770E0 800FFF40 8FB00018 */ lw $s0, 0x18($sp) /* B770E4 800FFF44 27BD0028 */ addiu $sp, $sp, 0x28 /* B770E8 800FFF48 03E00008 */ jr $ra /* B770EC 800FFF4C 00000000 */ nop glabel func_800FFF50 /* B770F0 800FFF50 3C088017 */ lui $t0, %hi(D_80175668) # $t0, 0x8017 /* B770F4 800FFF54 25085668 */ addiu $t0, %lo(D_80175668) # addiu $t0, $t0, 0x5668 /* B770F8 800FFF58 91050000 */ lbu $a1, ($t0) /* B770FC 800FFF5C AFA40000 */ sw $a0, ($sp) /* B77100 800FFF60 308700FF */ andi $a3, $a0, 0xff /* B77104 800FFF64 000510C3 */ sra $v0, $a1, 3 /* B77108 800FFF68 304E00FF */ andi $t6, $v0, 0xff /* B7710C 800FFF6C 19C00029 */ blez $t6, .L80100014 /* B77110 800FFF70 01C01025 */ move $v0, $t6 /* B77114 800FFF74 3C068017 */ lui $a2, %hi(D_80175660) # $a2, 0x8017 /* B77118 800FFF78 3C0D8017 */ lui $t5, %hi(D_8017566C) # $t5, 0x8017 /* B7711C 800FFF7C 3C0A8017 */ lui $t2, %hi(D_80175669) # $t2, 0x8017 /* B77120 800FFF80 3C098017 */ lui $t1, %hi(D_80175664) # $t1, 0x8017 /* B77124 800FFF84 25295664 */ addiu $t1, %lo(D_80175664) # addiu $t1, $t1, 0x5664 /* B77128 800FFF88 254A5669 */ addiu $t2, %lo(D_80175669) # addiu $t2, $t2, 0x5669 /* B7712C 800FFF8C 25AD566C */ addiu $t5, %lo(D_8017566C) # addiu $t5, $t5, 0x566c /* B77130 800FFF90 8CC65660 */ lw $a2, %lo(D_80175660)($a2) /* B77134 800FFF94 240C0001 */ li $t4, 1 /* B77138 800FFF98 240B00FF */ li $t3, 255 .L800FFF9C: /* B7713C 800FFF9C 8D240000 */ lw $a0, ($t1) /* B77140 800FFFA0 91590000 */ lbu $t9, ($t2) /* B77144 800FFFA4 91050000 */ lbu $a1, ($t0) /* B77148 800FFFA8 00867821 */ addu $t7, $a0, $a2 /* B7714C 800FFFAC 91E30000 */ lbu $v1, ($t7) /* B77150 800FFFB0 24980001 */ addiu $t8, $a0, 1 /* B77154 800FFFB4 13200006 */ beqz $t9, .L800FFFD0 /* B77158 800FFFB8 AD380000 */ sw $t8, ($t1) /* B7715C 800FFFBC 14600004 */ bnez $v1, .L800FFFD0 /* B77160 800FFFC0 03067021 */ addu $t6, $t8, $a2 /* B77164 800FFFC4 91C30000 */ lbu $v1, ($t6) /* B77168 800FFFC8 270F0001 */ addiu $t7, $t8, 1 /* B7716C 800FFFCC AD2F0000 */ sw $t7, ($t1) .L800FFFD0: /* B77170 800FFFD0 15630003 */ bne $t3, $v1, .L800FFFE0 /* B77174 800FFFD4 00602025 */ move $a0, $v1 /* B77178 800FFFD8 10000002 */ b .L800FFFE4 /* B7717C 800FFFDC A14C0000 */ sb $t4, ($t2) .L800FFFE0: /* B77180 800FFFE0 A1400000 */ sb $zero, ($t2) .L800FFFE4: /* B77184 800FFFE4 8DB80000 */ lw $t8, ($t5) /* B77188 800FFFE8 2442FFFF */ addiu $v0, $v0, -1 /* B7718C 800FFFEC 0018CA00 */ sll $t9, $t8, 8 /* B77190 800FFFF0 ADB90000 */ sw $t9, ($t5) /* B77194 800FFFF4 03247825 */ or $t7, $t9, $a0 /* B77198 800FFFF8 305900FF */ andi $t9, $v0, 0xff /* B7719C 800FFFFC 24B8FFF8 */ addiu $t8, $a1, -8 /* B771A0 80100000 03201025 */ move $v0, $t9 /* B771A4 80100004 ADAF0000 */ sw $t7, ($t5) /* B771A8 80100008 1F20FFE4 */ bgtz $t9, .L800FFF9C /* B771AC 8010000C A1180000 */ sb $t8, ($t0) /* B771B0 80100010 330500FF */ andi $a1, $t8, 0xff .L80100014: /* B771B4 80100014 3C0D8017 */ lui $t5, %hi(D_8017566C) # $t5, 0x8017 /* B771B8 80100018 25AD566C */ addiu $t5, %lo(D_8017566C) # addiu $t5, $t5, 0x566c /* B771BC 8010001C 8DAE0000 */ lw $t6, ($t5) /* B771C0 80100020 00077823 */ negu $t7, $a3 /* B771C4 80100024 00A7C021 */ addu $t8, $a1, $a3 /* B771C8 80100028 00AE1804 */ sllv $v1, $t6, $a1 /* B771CC 8010002C 01E31806 */ srlv $v1, $v1, $t7 /* B771D0 80100030 A1180000 */ sb $t8, ($t0) /* B771D4 80100034 03E00008 */ jr $ra /* B771D8 80100038 3062FFFF */ andi $v0, $v1, 0xffff