Super Mario 64s source code (from a leak on 4chan so be careful)
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 

999 lines
46 KiB

.late_rodata
glabel jtbl_80337C90
.word L_U_8031C2DC
.word L_U_8031C298
.word L_U_8031C6A0
.word L_U_8031C6A0
.word L_U_8031C328
.word L_U_8031C23C
.word L_U_8031C6A0
.word L_U_8031C6A0
.word L_U_8031C200
glabel jtbl_80337CB4
.word L_U_8031C36C
.word L_U_8031C3BC
.word L_U_8031C454
.word L_U_8031C3E8
.word L_U_8031C3E8
.word L_U_8031C4A4
.word L_U_8031C5C8
.word L_U_8031C698
.word L_U_8031C3BC
.word L_U_8031C36C
glabel jtbl_80337CDC
.word L_U_8031CBE0
.word L_U_8031CBEC
.word L_U_8031CBE0
.word L_U_8031CBEC
.word L_U_8031CBE0
.text
glabel func_8031B0A4
/* 0D70C4 8031C0C4 27BDFFA0 */ addiu $sp, $sp, -0x60
/* 0D70C8 8031C0C8 240E0001 */ li $t6, 1
/* 0D70CC 8031C0CC AFBF001C */ sw $ra, 0x1c($sp)
/* 0D70D0 8031C0D0 AFB00018 */ sw $s0, 0x18($sp)
/* 0D70D4 8031C0D4 A3AE003F */ sb $t6, 0x3f($sp)
/* 0D70D8 8031C0D8 8C820000 */ lw $v0, ($a0)
/* 0D70DC 8031C0DC 00808025 */ move $s0, $a0
/* 0D70E0 8031C0E0 00027FC2 */ srl $t7, $v0, 0x1f
/* 0D70E4 8031C0E4 51E00357 */ beql $t7, $zero, .L8031CE44
/* 0D70E8 8031C0E8 8FBF001C */ lw $ra, 0x1c($sp)
/* 0D70EC 8031C0EC 8483003C */ lh $v1, 0x3c($a0)
/* 0D70F0 8031C0F0 00027080 */ sll $t6, $v0, 2
/* 0D70F4 8031C0F4 0002C8C0 */ sll $t9, $v0, 3
/* 0D70F8 8031C0F8 28610002 */ slti $at, $v1, 2
/* 0D70FC 8031C0FC 1420000E */ bnez $at, .L8031C138
/* 0D7100 8031C100 2478FFFF */ addiu $t8, $v1, -1
/* 0D7104 8031C104 05C0034E */ bltz $t6, .L8031CE40
/* 0D7108 8031C108 A498003C */ sh $t8, 0x3c($a0)
/* 0D710C 8031C10C 848F003E */ lh $t7, 0x3e($a0)
/* 0D7110 8031C110 8498003C */ lh $t8, 0x3c($a0)
/* 0D7114 8031C114 01F8082A */ slt $at, $t7, $t8
/* 0D7118 8031C118 5420034A */ bnezl $at, .L8031CE44
/* 0D711C 8031C11C 8FBF001C */ lw $ra, 0x1c($sp)
/* 0D7120 8031C120 0C0C67D9 */ jal func_80318EC4
/* 0D7124 8031C124 00000000 */ nop
/* 0D7128 8031C128 920E0000 */ lbu $t6, ($s0)
/* 0D712C 8031C12C 35CF0020 */ ori $t7, $t6, 0x20
/* 0D7130 8031C130 10000343 */ b .L8031CE40
/* 0D7134 8031C134 A20F0000 */ sb $t7, ($s0)
.L8031C138:
/* 0D7138 8031C138 07220004 */ bltzl $t9, .L8031C14C_2
/* 0D713C 8031C13C 92020004 */ lbu $v0, 4($s0)
/* 0D7140 8031C140 0C0C67D9 */ jal func_80318EC4
/* 0D7144 8031C144 02002025 */ move $a0, $s0
/* 0D7148 8031C148 92020004 */ lbu $v0, 4($s0)
.L8031C14C_2:
/* 0D714C 8031C14C 2401FF7F */ li $at, -129
/* 0D7150 8031C150 3C1F8022 */ lui $ra, %hi(D_80226D60) # $ra, 0x8022
/* 0D7154 8031C154 00417024 */ and $t6, $v0, $at
/* 0D7158 8031C158 24010001 */ li $at, 1
/* 0D715C 8031C15C 11C10004 */ beq $t6, $at, .L8031C170
/* 0D7160 8031C160 27FF6B60 */ addiu $ra, %lo(D_80226D60) # addiu $ra, $ra, 0x6b60
/* 0D7164 8031C164 24010002 */ li $at, 2
/* 0D7168 8031C168 55C10003 */ bnel $t6, $at, .L8031C178
/* 0D716C 8031C16C 8E0D0050 */ lw $t5, 0x50($s0)
.L8031C170:
/* 0D7170 8031C170 A2000004 */ sb $zero, 4($s0)
/* 0D7174 8031C174 8E0D0050 */ lw $t5, 0x50($s0)
.L8031C178:
/* 0D7178 8031C178 3C013C00 */ li $at, 0x3C000000 # 0.007812
/* 0D717C 8031C17C 3C0B8022 */ lui $t3, %hi(D_802214F8) # $t3, 0x8022
/* 0D7180 8031C180 44810000 */ mtc1 $at, $f0
/* 0D7184 8031C184 256B10F8 */ addiu $t3, %lo(D_802214F8) # addiu $t3, $t3, 0x10f8
/* 0D7188 8031C188 97AA003A */ lhu $t2, 0x3a($sp)
/* 0D718C 8031C18C 240900FF */ li $t1, 255
/* 0D7190 8031C190 8DAC0040 */ lw $t4, 0x40($t5)
.L8031C194:
/* 0D7194 8031C194 8E020054 */ lw $v0, 0x54($s0)
.L8031C198:
/* 0D7198 8031C198 244F0001 */ addiu $t7, $v0, 1
/* 0D719C 8031C19C AE0F0054 */ sw $t7, 0x54($s0)
/* 0D71A0 8031C1A0 90440000 */ lbu $a0, ($v0)
/* 0D71A4 8031C1A4 288100C1 */ slti $at, $a0, 0xc1
/* 0D71A8 8031C1A8 14200156 */ bnez $at, .L8031C704
/* 0D71AC 8031C1AC 00802825 */ move $a1, $a0
/* 0D71B0 8031C1B0 288100CB */ slti $at, $a0, 0xcb
/* 0D71B4 8031C1B4 1420000A */ bnez $at, .L8031C1E0
/* 0D71B8 8031C1B8 24B9FF3F */ addiu $t9, $a1, -0xc1
/* 0D71BC 8031C1BC 2498FF09 */ addiu $t8, $a0, -0xf7
/* 0D71C0 8031C1C0 2F010009 */ sltiu $at, $t8, 9
/* 0D71C4 8031C1C4 10200136 */ beqz $at, .L8031C6A0
/* 0D71C8 8031C1C8 0018C080 */ sll $t8, $t8, 2
/* 0D71CC 8031C1CC 3C018034 */ lui $at, %hi(jtbl_80337C90)
/* 0D71D0 8031C1D0 00380821 */ addu $at, $at, $t8
/* 0D71D4 8031C1D4 8C388E60 */ lw $t8, %lo(jtbl_80337C90)($at)
/* 0D71D8 8031C1D8 03000008 */ jr $t8
/* 0D71DC 8031C1DC 00000000 */ nop
.L8031C1E0:
/* 0D71E0 8031C1E0 2F21000A */ sltiu $at, $t9, 0xa
/* 0D71E4 8031C1E4 1020012E */ beqz $at, .L8031C6A0
/* 0D71E8 8031C1E8 0019C880 */ sll $t9, $t9, 2
/* 0D71EC 8031C1EC 3C018034 */ lui $at, %hi(jtbl_80337CB4)
/* 0D71F0 8031C1F0 00390821 */ addu $at, $at, $t9
/* 0D71F4 8031C1F4 8C398E84 */ lw $t9, %lo(jtbl_80337CB4)($at)
/* 0D71F8 8031C1F8 03200008 */ jr $t9
/* 0D71FC 8031C1FC 00000000 */ nop
glabel L_U_8031C200
/* 0D7200 8031C200 26020054 */ addiu $v0, $s0, 0x54
/* 0D7204 8031C204 90430018 */ lbu $v1, 0x18($v0)
/* 0D7208 8031C208 14600005 */ bnez $v1, .L8031C220
/* 0D720C 8031C20C 246EFFFF */ addiu $t6, $v1, -1
/* 0D7210 8031C210 0C0C6E8C */ jal func_8031AA10
/* 0D7214 8031C214 02002025 */ move $a0, $s0
/* 0D7218 8031C218 1000030A */ b .L8031CE44
/* 0D721C 8031C21C 8FBF001C */ lw $ra, 0x1c($sp)
.L8031C220:
/* 0D7220 8031C220 31CF00FF */ andi $t7, $t6, 0xff
/* 0D7224 8031C224 000FC080 */ sll $t8, $t7, 2
/* 0D7228 8031C228 0058C821 */ addu $t9, $v0, $t8
/* 0D722C 8031C22C A04E0018 */ sb $t6, 0x18($v0)
/* 0D7230 8031C230 8F2E0004 */ lw $t6, 4($t9)
/* 0D7234 8031C234 1000FFD7 */ b .L8031C194
/* 0D7238 8031C238 AC4E0000 */ sw $t6, ($v0)
glabel L_U_8031C23C
/* 0D723C 8031C23C 26020054 */ addiu $v0, $s0, 0x54
/* 0D7240 8031C240 8C430000 */ lw $v1, ($v0)
/* 0D7244 8031C244 90640000 */ lbu $a0, ($v1)
/* 0D7248 8031C248 246E0001 */ addiu $t6, $v1, 1
/* 0D724C 8031C24C AC4E0000 */ sw $t6, ($v0)
/* 0D7250 8031C250 91CF0000 */ lbu $t7, ($t6)
/* 0D7254 8031C254 0004CA00 */ sll $t9, $a0, 8
/* 0D7258 8031C258 01F92825 */ or $a1, $t7, $t9
/* 0D725C 8031C25C 904F0018 */ lbu $t7, 0x18($v0)
/* 0D7260 8031C260 25D90001 */ addiu $t9, $t6, 1
/* 0D7264 8031C264 AC590000 */ sw $t9, ($v0)
/* 0D7268 8031C268 25F80001 */ addiu $t8, $t7, 1
/* 0D726C 8031C26C 330E00FF */ andi $t6, $t8, 0xff
/* 0D7270 8031C270 000E7880 */ sll $t7, $t6, 2
/* 0D7274 8031C274 A0580018 */ sb $t8, 0x18($v0)
/* 0D7278 8031C278 004FC021 */ addu $t8, $v0, $t7
/* 0D727C 8031C27C AF190000 */ sw $t9, ($t8)
/* 0D7280 8031C280 8D8E0014 */ lw $t6, 0x14($t4)
/* 0D7284 8031C284 30AFFFFF */ andi $t7, $a1, 0xffff
/* 0D7288 8031C288 30AAFFFF */ andi $t2, $a1, 0xffff
/* 0D728C 8031C28C 01CFC821 */ addu $t9, $t6, $t7
/* 0D7290 8031C290 1000FFC0 */ b .L8031C194
/* 0D7294 8031C294 AC590000 */ sw $t9, ($v0)
glabel L_U_8031C298
/* 0D7298 8031C298 26020054 */ addiu $v0, $s0, 0x54
/* 0D729C 8031C29C 8C430000 */ lw $v1, ($v0)
/* 0D72A0 8031C2A0 904E0018 */ lbu $t6, 0x18($v0)
/* 0D72A4 8031C2A4 24780001 */ addiu $t8, $v1, 1
/* 0D72A8 8031C2A8 AC580000 */ sw $t8, ($v0)
/* 0D72AC 8031C2AC 90650000 */ lbu $a1, ($v1)
/* 0D72B0 8031C2B0 004E7821 */ addu $t7, $v0, $t6
/* 0D72B4 8031C2B4 A1E50014 */ sb $a1, 0x14($t7)
/* 0D72B8 8031C2B8 90590018 */ lbu $t9, 0x18($v0)
/* 0D72BC 8031C2BC 8C4E0000 */ lw $t6, ($v0)
/* 0D72C0 8031C2C0 27380001 */ addiu $t8, $t9, 1
/* 0D72C4 8031C2C4 330F00FF */ andi $t7, $t8, 0xff
/* 0D72C8 8031C2C8 000FC880 */ sll $t9, $t7, 2
/* 0D72CC 8031C2CC A0580018 */ sb $t8, 0x18($v0)
/* 0D72D0 8031C2D0 0059C021 */ addu $t8, $v0, $t9
/* 0D72D4 8031C2D4 1000FFAF */ b .L8031C194
/* 0D72D8 8031C2D8 AF0E0000 */ sw $t6, ($t8)
glabel L_U_8031C2DC
/* 0D72DC 8031C2DC 26020054 */ addiu $v0, $s0, 0x54
/* 0D72E0 8031C2E0 904F0018 */ lbu $t7, 0x18($v0)
/* 0D72E4 8031C2E4 004F2021 */ addu $a0, $v0, $t7
/* 0D72E8 8031C2E8 90990013 */ lbu $t9, 0x13($a0)
/* 0D72EC 8031C2EC 272EFFFF */ addiu $t6, $t9, -1
/* 0D72F0 8031C2F0 A08E0013 */ sb $t6, 0x13($a0)
/* 0D72F4 8031C2F4 90430018 */ lbu $v1, 0x18($v0)
/* 0D72F8 8031C2F8 0043C021 */ addu $t8, $v0, $v1
/* 0D72FC 8031C2FC 930F0013 */ lbu $t7, 0x13($t8)
/* 0D7300 8031C300 00602825 */ move $a1, $v1
/* 0D7304 8031C304 0005C880 */ sll $t9, $a1, 2
/* 0D7308 8031C308 11E00004 */ beqz $t7, .L8031C31C
/* 0D730C 8031C30C 00597021 */ addu $t6, $v0, $t9
/* 0D7310 8031C310 8DD80000 */ lw $t8, ($t6)
/* 0D7314 8031C314 1000FF9F */ b .L8031C194
/* 0D7318 8031C318 AC580000 */ sw $t8, ($v0)
.L8031C31C:
/* 0D731C 8031C31C 246FFFFF */ addiu $t7, $v1, -1
/* 0D7320 8031C320 1000FF9C */ b .L8031C194
/* 0D7324 8031C324 A04F0018 */ sb $t7, 0x18($v0)
glabel L_U_8031C328
/* 0D7328 8031C328 26020054 */ addiu $v0, $s0, 0x54
/* 0D732C 8031C32C 8C430000 */ lw $v1, ($v0)
/* 0D7330 8031C330 90640000 */ lbu $a0, ($v1)
/* 0D7334 8031C334 246F0001 */ addiu $t7, $v1, 1
/* 0D7338 8031C338 AC4F0000 */ sw $t7, ($v0)
/* 0D733C 8031C33C 91F90000 */ lbu $t9, ($t7)
/* 0D7340 8031C340 0004C200 */ sll $t8, $a0, 8
/* 0D7344 8031C344 25EF0001 */ addiu $t7, $t7, 1
/* 0D7348 8031C348 03387025 */ or $t6, $t9, $t8
/* 0D734C 8031C34C AC4F0000 */ sw $t7, ($v0)
/* 0D7350 8031C350 8D990014 */ lw $t9, 0x14($t4)
/* 0D7354 8031C354 01C0C025 */ move $t8, $t6
/* 0D7358 8031C358 330AFFFF */ andi $t2, $t8, 0xffff
/* 0D735C 8031C35C 330EFFFF */ andi $t6, $t8, 0xffff
/* 0D7360 8031C360 032EC021 */ addu $t8, $t9, $t6
/* 0D7364 8031C364 1000FF8B */ b .L8031C194
/* 0D7368 8031C368 AC580000 */ sw $t8, ($v0)
glabel L_U_8031C36C
/* 0D736C 8031C36C 26020054 */ addiu $v0, $s0, 0x54
/* 0D7370 8031C370 8C430000 */ lw $v1, ($v0)
/* 0D7374 8031C374 240100C1 */ li $at, 193
/* 0D7378 8031C378 90640000 */ lbu $a0, ($v1)
/* 0D737C 8031C37C 246F0001 */ addiu $t7, $v1, 1
/* 0D7380 8031C380 14A10008 */ bne $a1, $at, .L8031C3A4
/* 0D7384 8031C384 AC4F0000 */ sw $t7, ($v0)
/* 0D7388 8031C388 00840019 */ multu $a0, $a0
/* 0D738C 8031C38C 0000C812 */ mflo $t9
/* 0D7390 8031C390 44992000 */ mtc1 $t9, $f4
/* 0D7394 8031C394 00000000 */ nop
/* 0D7398 8031C398 468021A0 */ cvt.s.w $f6, $f4
/* 0D739C 8031C39C 1000FF7D */ b .L8031C194
/* 0D73A0 8031C3A0 E6060024 */ swc1 $f6, 0x24($s0)
.L8031C3A4:
/* 0D73A4 8031C3A4 44844000 */ mtc1 $a0, $f8
/* 0D73A8 8031C3A8 00000000 */ nop
/* 0D73AC 8031C3AC 468042A0 */ cvt.s.w $f10, $f8
/* 0D73B0 8031C3B0 46005402 */ mul.s $f16, $f10, $f0
/* 0D73B4 8031C3B4 1000FF77 */ b .L8031C194
/* 0D73B8 8031C3B8 E6100028 */ swc1 $f16, 0x28($s0)
glabel L_U_8031C3BC
/* 0D73BC 8031C3BC 26020054 */ addiu $v0, $s0, 0x54
/* 0D73C0 8031C3C0 8C430000 */ lw $v1, ($v0)
/* 0D73C4 8031C3C4 240100C9 */ li $at, 201
/* 0D73C8 8031C3C8 90640000 */ lbu $a0, ($v1)
/* 0D73CC 8031C3CC 246E0001 */ addiu $t6, $v1, 1
/* 0D73D0 8031C3D0 14A10003 */ bne $a1, $at, .L8031C3E0
/* 0D73D4 8031C3D4 AC4E0000 */ sw $t6, ($v0)
/* 0D73D8 8031C3D8 1000FF6E */ b .L8031C194
/* 0D73DC 8031C3DC A2040002 */ sb $a0, 2($s0)
.L8031C3E0:
/* 0D73E0 8031C3E0 1000FF6C */ b .L8031C194
/* 0D73E4 8031C3E4 A604001E */ sh $a0, 0x1e($s0)
glabel L_U_8031C3E8
/* 0D73E8 8031C3E8 240100C4 */ li $at, 196
/* 0D73EC 8031C3EC 14A10003 */ bne $a1, $at, .L8031C3FC
/* 0D73F0 8031C3F0 02002025 */ move $a0, $s0
/* 0D73F4 8031C3F4 10000002 */ b .L8031C400
/* 0D73F8 8031C3F8 24020001 */ li $v0, 1
.L8031C3FC:
/* 0D73FC 8031C3FC 00001025 */ move $v0, $zero
.L8031C400:
/* 0D7400 8031C400 920E0000 */ lbu $t6, ($s0)
/* 0D7404 8031C404 00027900 */ sll $t7, $v0, 4
/* 0D7408 8031C408 31F90010 */ andi $t9, $t7, 0x10
/* 0D740C 8031C40C 31D8FFEF */ andi $t8, $t6, 0xffef
/* 0D7410 8031C410 03387825 */ or $t7, $t9, $t8
/* 0D7414 8031C414 A20F0000 */ sb $t7, ($s0)
/* 0D7418 8031C418 AFAD0058 */ sw $t5, 0x58($sp)
/* 0D741C 8031C41C AFAC005C */ sw $t4, 0x5c($sp)
/* 0D7420 8031C420 0C0C67D9 */ jal func_80318EC4
/* 0D7424 8031C424 A7AA003A */ sh $t2, 0x3a($sp)
/* 0D7428 8031C428 3C013C00 */ li $at, 0x3C000000 # 0.007812
/* 0D742C 8031C42C 44810000 */ mtc1 $at, $f0
/* 0D7430 8031C430 3C0B8022 */ lui $t3, %hi(D_802214F8) # $t3, 0x8022
/* 0D7434 8031C434 3C1F8022 */ lui $ra, %hi(D_80226D60) # $ra, 0x8022
/* 0D7438 8031C438 27FF6B60 */ addiu $ra, %lo(D_80226D60) # addiu $ra, $ra, 0x6b60
/* 0D743C 8031C43C 256B10F8 */ addiu $t3, %lo(D_802214F8) # addiu $t3, $t3, 0x10f8
/* 0D7440 8031C440 240900FF */ li $t1, 255
/* 0D7444 8031C444 97AA003A */ lhu $t2, 0x3a($sp)
/* 0D7448 8031C448 8FAC005C */ lw $t4, 0x5c($sp)
/* 0D744C 8031C44C 1000FF51 */ b .L8031C194
/* 0D7450 8031C450 8FAD0058 */ lw $t5, 0x58($sp)
glabel L_U_8031C454
/* 0D7454 8031C454 26020054 */ addiu $v0, $s0, 0x54
/* 0D7458 8031C458 8C430000 */ lw $v1, ($v0)
/* 0D745C 8031C45C 90640000 */ lbu $a0, ($v1)
/* 0D7460 8031C460 246E0001 */ addiu $t6, $v1, 1
/* 0D7464 8031C464 AC4E0000 */ sw $t6, ($v0)
/* 0D7468 8031C468 30990080 */ andi $t9, $a0, 0x80
/* 0D746C 8031C46C 1320000A */ beqz $t9, .L8031C498
/* 0D7470 8031C470 00802825 */ move $a1, $a0
/* 0D7474 8031C474 01C01825 */ move $v1, $t6
/* 0D7478 8031C478 91CE0000 */ lbu $t6, ($t6)
/* 0D747C 8031C47C 00052200 */ sll $a0, $a1, 8
/* 0D7480 8031C480 308F7F00 */ andi $t7, $a0, 0x7f00
/* 0D7484 8031C484 01CF2025 */ or $a0, $t6, $t7
/* 0D7488 8031C488 3085FFFF */ andi $a1, $a0, 0xffff
/* 0D748C 8031C48C 24780001 */ addiu $t8, $v1, 1
/* 0D7490 8031C490 AC580000 */ sw $t8, ($v0)
/* 0D7494 8031C494 00A02025 */ move $a0, $a1
.L8031C498:
/* 0D7498 8031C498 308AFFFF */ andi $t2, $a0, 0xffff
/* 0D749C 8031C49C 1000FF3D */ b .L8031C194
/* 0D74A0 8031C4A0 A6050038 */ sh $a1, 0x38($s0)
glabel L_U_8031C4A4
/* 0D74A4 8031C4A4 26020054 */ addiu $v0, $s0, 0x54
/* 0D74A8 8031C4A8 8C430000 */ lw $v1, ($v0)
/* 0D74AC 8031C4AC 246F0001 */ addiu $t7, $v1, 1
/* 0D74B0 8031C4B0 AC4F0000 */ sw $t7, ($v0)
/* 0D74B4 8031C4B4 90650000 */ lbu $a1, ($v1)
/* 0D74B8 8031C4B8 28A1007F */ slti $at, $a1, 0x7f
/* 0D74BC 8031C4BC 5020FF36 */ beql $at, $zero, .L8031C198
/* 0D74C0 8031C4C0 8E020054 */ lw $v0, 0x54($s0)
/* 0D74C4 8031C4C4 91B90005 */ lbu $t9, 5($t5)
/* 0D74C8 8031C4C8 8FEE0000 */ lw $t6, ($ra)
/* 0D74CC 8031C4CC 30A200FF */ andi $v0, $a1, 0xff
/* 0D74D0 8031C4D0 0019C080 */ sll $t8, $t9, 2
/* 0D74D4 8031C4D4 0319C023 */ subu $t8, $t8, $t9
/* 0D74D8 8031C4D8 0018C080 */ sll $t8, $t8, 2
/* 0D74DC 8031C4DC 01D83821 */ addu $a3, $t6, $t8
/* 0D74E0 8031C4E0 90E30001 */ lbu $v1, 1($a3)
/* 0D74E4 8031C4E4 00A3082A */ slt $at, $a1, $v1
/* 0D74E8 8031C4E8 54200008 */ bnezl $at, .L8031C50C
/* 0D74EC 8031C4EC 8CE30004 */ lw $v1, 4($a3)
/* 0D74F0 8031C4F0 306200FF */ andi $v0, $v1, 0xff
/* 0D74F4 8031C4F4 5040FF28 */ beql $v0, $zero, .L8031C198
/* 0D74F8 8031C4F8 8E020054 */ lw $v0, 0x54($s0)
/* 0D74FC 8031C4FC 2442FFFF */ addiu $v0, $v0, -1
/* 0D7500 8031C500 304F00FF */ andi $t7, $v0, 0xff
/* 0D7504 8031C504 01E01025 */ move $v0, $t7
/* 0D7508 8031C508 8CE30004 */ lw $v1, 4($a3)
.L8031C50C:
/* 0D750C 8031C50C 0002C880 */ sll $t9, $v0, 2
/* 0D7510 8031C510 26050048 */ addiu $a1, $s0, 0x48
/* 0D7514 8031C514 00797021 */ addu $t6, $v1, $t9
/* 0D7518 8031C518 8DC40000 */ lw $a0, ($t6)
/* 0D751C 8031C51C 5480000C */ bnezl $a0, .L8031C550
/* 0D7520 8031C520 8D630004 */ lw $v1, 4($t3)
/* 0D7524 8031C524 11220009 */ beq $t1, $v0, .L8031C54C
.L8031C528:
/* 0D7528 8031C528 0002C080 */ sll $t8, $v0, 2
/* 0D752C 8031C52C 00787821 */ addu $t7, $v1, $t8
/* 0D7530 8031C530 8DE40000 */ lw $a0, ($t7)
/* 0D7534 8031C534 54800006 */ bnezl $a0, .L8031C550
/* 0D7538 8031C538 8D630004 */ lw $v1, 4($t3)
/* 0D753C 8031C53C 2442FFFF */ addiu $v0, $v0, -1
/* 0D7540 8031C540 305900FF */ andi $t9, $v0, 0xff
/* 0D7544 8031C544 1539FFF8 */ bne $t1, $t9, .L8031C528
/* 0D7548 8031C548 03201025 */ move $v0, $t9
.L8031C54C:
/* 0D754C 8031C54C 8D630004 */ lw $v1, 4($t3)
.L8031C550:
/* 0D7550 8031C550 0083082B */ sltu $at, $a0, $v1
/* 0D7554 8031C554 54200007 */ bnezl $at, .L8031C574
/* 0D7558 8031C558 8D630198 */ lw $v1, 0x198($t3)
/* 0D755C 8031C55C 8D6E000C */ lw $t6, 0xc($t3)
/* 0D7560 8031C560 006EC021 */ addu $t8, $v1, $t6
/* 0D7564 8031C564 0304082B */ sltu $at, $t8, $a0
/* 0D7568 8031C568 5020000B */ beql $at, $zero, .L8031C598
/* 0D756C 8031C56C 8C8E0004 */ lw $t6, 4($a0)
/* 0D7570 8031C570 8D630198 */ lw $v1, 0x198($t3)
.L8031C574:
/* 0D7574 8031C574 0083082B */ sltu $at, $a0, $v1
/* 0D7578 8031C578 5420000E */ bnezl $at, .L8031C5B4
/* 0D757C 8031C57C 3C010002 */ lui $at, 2
/* 0D7580 8031C580 8D6F01A0 */ lw $t7, 0x1a0($t3)
/* 0D7584 8031C584 006FC821 */ addu $t9, $v1, $t7
/* 0D7588 8031C588 0324082B */ sltu $at, $t9, $a0
/* 0D758C 8031C58C 54200009 */ bnezl $at, .L8031C5B4
/* 0D7590 8031C590 3C010002 */ lui $at, 2
/* 0D7594 8031C594 8C8E0004 */ lw $t6, 4($a0)
.L8031C598:
/* 0D7598 8031C598 26020014 */ addiu $v0, $s0, 0x14
/* 0D759C 8031C59C AC4E0004 */ sw $t6, 4($v0)
/* 0D75A0 8031C5A0 90980003 */ lbu $t8, 3($a0)
/* 0D75A4 8031C5A4 A0580000 */ sb $t8, ($v0)
/* 0D75A8 8031C5A8 1000FEFA */ b .L8031C194
/* 0D75AC 8031C5AC ACA40000 */ sw $a0, ($a1)
/* 0D75B0 8031C5B0 3C010002 */ lui $at, 2
.L8031C5B4:
/* 0D75B4 8031C5B4 00417821 */ addu $t7, $v0, $at
/* 0D75B8 8031C5B8 3C018033 */ lui $at, %hi(D_80331D40) # $at, 0x8033
/* 0D75BC 8031C5BC AC2F2E50 */ sw $t7, %lo(D_80331D40)($at)
/* 0D75C0 8031C5C0 1000FEF4 */ b .L8031C194
/* 0D75C4 8031C5C4 ACA00000 */ sw $zero, ($a1)
glabel L_U_8031C5C8
/* 0D75C8 8031C5C8 26020054 */ addiu $v0, $s0, 0x54
/* 0D75CC 8031C5CC 8C430000 */ lw $v1, ($v0)
/* 0D75D0 8031C5D0 24790001 */ addiu $t9, $v1, 1
/* 0D75D4 8031C5D4 AC590000 */ sw $t9, ($v0)
/* 0D75D8 8031C5D8 90650000 */ lbu $a1, ($v1)
/* 0D75DC 8031C5DC A2050004 */ sb $a1, 4($s0)
/* 0D75E0 8031C5E0 8C430000 */ lw $v1, ($v0)
/* 0D75E4 8031C5E4 246E0001 */ addiu $t6, $v1, 1
/* 0D75E8 8031C5E8 AC4E0000 */ sw $t6, ($v0)
/* 0D75EC 8031C5EC 85B8001A */ lh $t8, 0x1a($t5)
/* 0D75F0 8031C5F0 90670000 */ lbu $a3, ($v1)
/* 0D75F4 8031C5F4 8619001E */ lh $t9, 0x1e($s0)
/* 0D75F8 8031C5F8 03077821 */ addu $t7, $t8, $a3
/* 0D75FC 8031C5FC 85980010 */ lh $t8, 0x10($t4)
/* 0D7600 8031C600 01F97021 */ addu $t6, $t7, $t9
/* 0D7604 8031C604 01D84021 */ addu $t0, $t6, $t8
/* 0D7608 8031C608 310F00FF */ andi $t7, $t0, 0xff
/* 0D760C 8031C60C 29E10080 */ slti $at, $t7, 0x80
/* 0D7610 8031C610 14200002 */ bnez $at, .L8031C61C
/* 0D7614 8031C614 01E04025 */ move $t0, $t7
/* 0D7618 8031C618 00004025 */ move $t0, $zero
.L8031C61C:
/* 0D761C 8031C61C 92190004 */ lbu $t9, 4($s0)
/* 0D7620 8031C620 A2080003 */ sb $t0, 3($s0)
/* 0D7624 8031C624 332E0080 */ andi $t6, $t9, 0x80
/* 0D7628 8031C628 51C00009 */ beql $t6, $zero, .L8031C650
/* 0D762C 8031C62C 8C430000 */ lw $v1, ($v0)
/* 0D7630 8031C630 8C580000 */ lw $t8, ($v0)
/* 0D7634 8031C634 930F0000 */ lbu $t7, ($t8)
/* 0D7638 8031C638 A60F001C */ sh $t7, 0x1c($s0)
/* 0D763C 8031C63C 8C590000 */ lw $t9, ($v0)
/* 0D7640 8031C640 272E0001 */ addiu $t6, $t9, 1
/* 0D7644 8031C644 1000FED3 */ b .L8031C194
/* 0D7648 8031C648 AC4E0000 */ sw $t6, ($v0)
/* 0D764C 8031C64C 8C430000 */ lw $v1, ($v0)
.L8031C650:
/* 0D7650 8031C650 90640000 */ lbu $a0, ($v1)
/* 0D7654 8031C654 24780001 */ addiu $t8, $v1, 1
/* 0D7658 8031C658 AC580000 */ sw $t8, ($v0)
/* 0D765C 8031C65C 308F0080 */ andi $t7, $a0, 0x80
/* 0D7660 8031C660 11E0000A */ beqz $t7, .L8031C68C
/* 0D7664 8031C664 00802825 */ move $a1, $a0
/* 0D7668 8031C668 03001825 */ move $v1, $t8
/* 0D766C 8031C66C 93180000 */ lbu $t8, ($t8)
/* 0D7670 8031C670 00052200 */ sll $a0, $a1, 8
/* 0D7674 8031C674 308E7F00 */ andi $t6, $a0, 0x7f00
/* 0D7678 8031C678 030E2025 */ or $a0, $t8, $t6
/* 0D767C 8031C67C 308FFFFF */ andi $t7, $a0, 0xffff
/* 0D7680 8031C680 24790001 */ addiu $t9, $v1, 1
/* 0D7684 8031C684 AC590000 */ sw $t9, ($v0)
/* 0D7688 8031C688 01E02025 */ move $a0, $t7
.L8031C68C:
/* 0D768C 8031C68C 308AFFFF */ andi $t2, $a0, 0xffff
/* 0D7690 8031C690 1000FEC0 */ b .L8031C194
/* 0D7694 8031C694 A604001C */ sh $a0, 0x1c($s0)
glabel L_U_8031C698
/* 0D7698 8031C698 1000FEBE */ b .L8031C194
/* 0D769C 8031C69C A2000004 */ sb $zero, 4($s0)
glabel L_U_8031C6A0
.L8031C6A0:
/* 0D76A0 8031C6A0 30A200F0 */ andi $v0, $a1, 0xf0
/* 0D76A4 8031C6A4 240100D0 */ li $at, 208
/* 0D76A8 8031C6A8 10410005 */ beq $v0, $at, .L8031C6C0
/* 0D76AC 8031C6AC 240100E0 */ li $at, 224
/* 0D76B0 8031C6B0 5041000F */ beql $v0, $at, .L8031C6F0
/* 0D76B4 8031C6B4 8D8E008C */ lw $t6, 0x8c($t4)
/* 0D76B8 8031C6B8 1000FEB7 */ b .L8031C198
/* 0D76BC 8031C6BC 8E020054 */ lw $v0, 0x54($s0)
.L8031C6C0:
/* 0D76C0 8031C6C0 8D8E0088 */ lw $t6, 0x88($t4)
/* 0D76C4 8031C6C4 30B8000F */ andi $t8, $a1, 0xf
/* 0D76C8 8031C6C8 01D87821 */ addu $t7, $t6, $t8
/* 0D76CC 8031C6CC 91EA0000 */ lbu $t2, ($t7)
/* 0D76D0 8031C6D0 014A0019 */ multu $t2, $t2
/* 0D76D4 8031C6D4 0000C812 */ mflo $t9
/* 0D76D8 8031C6D8 44999000 */ mtc1 $t9, $f18
/* 0D76DC 8031C6DC 00000000 */ nop
/* 0D76E0 8031C6E0 46809120 */ cvt.s.w $f4, $f18
/* 0D76E4 8031C6E4 1000FEAB */ b .L8031C194
/* 0D76E8 8031C6E8 E6040024 */ swc1 $f4, 0x24($s0)
/* 0D76EC 8031C6EC 8D8E008C */ lw $t6, 0x8c($t4)
.L8031C6F0:
/* 0D76F0 8031C6F0 30B8000F */ andi $t8, $a1, 0xf
/* 0D76F4 8031C6F4 01D87821 */ addu $t7, $t6, $t8
/* 0D76F8 8031C6F8 91F90000 */ lbu $t9, ($t7)
/* 0D76FC 8031C6FC 1000FEA5 */ b .L8031C194
/* 0D7700 8031C700 A2190002 */ sb $t9, 2($s0)
.L8031C704:
/* 0D7704 8031C704 240100C0 */ li $at, 192
/* 0D7708 8031C708 14A10015 */ bne $a1, $at, .L8031C760
/* 0D770C 8031C70C 26020054 */ addiu $v0, $s0, 0x54
/* 0D7710 8031C710 8C430000 */ lw $v1, ($v0)
/* 0D7714 8031C714 90640000 */ lbu $a0, ($v1)
/* 0D7718 8031C718 246E0001 */ addiu $t6, $v1, 1
/* 0D771C 8031C71C AC4E0000 */ sw $t6, ($v0)
/* 0D7720 8031C720 30980080 */ andi $t8, $a0, 0x80
/* 0D7724 8031C724 13000009 */ beqz $t8, .L8031C74C
/* 0D7728 8031C728 00802825 */ move $a1, $a0
/* 0D772C 8031C72C 01C01825 */ move $v1, $t6
/* 0D7730 8031C730 91CE0000 */ lbu $t6, ($t6)
/* 0D7734 8031C734 00042200 */ sll $a0, $a0, 8
/* 0D7738 8031C738 30997F00 */ andi $t9, $a0, 0x7f00
/* 0D773C 8031C73C 246F0001 */ addiu $t7, $v1, 1
/* 0D7740 8031C740 01D92025 */ or $a0, $t6, $t9
/* 0D7744 8031C744 3085FFFF */ andi $a1, $a0, 0xffff
/* 0D7748 8031C748 AC4F0000 */ sw $t7, ($v0)
.L8031C74C:
/* 0D774C 8031C74C 920E0000 */ lbu $t6, ($s0)
/* 0D7750 8031C750 A605003C */ sh $a1, 0x3c($s0)
/* 0D7754 8031C754 35D80020 */ ori $t8, $t6, 0x20
/* 0D7758 8031C758 10000181 */ b .L8031CD60
/* 0D775C 8031C75C A2180000 */ sb $t8, ($s0)
.L8031C760:
/* 0D7760 8031C760 920F0000 */ lbu $t7, ($s0)
/* 0D7764 8031C764 24010001 */ li $at, 1
/* 0D7768 8031C768 30A900C0 */ andi $t1, $a1, 0xc0
/* 0D776C 8031C76C 31F9FFDF */ andi $t9, $t7, 0xffdf
/* 0D7770 8031C770 A2190000 */ sb $t9, ($s0)
/* 0D7774 8031C774 8DAE0000 */ lw $t6, ($t5)
/* 0D7778 8031C778 000EC180 */ sll $t8, $t6, 6
/* 0D777C 8031C77C 00187FC2 */ srl $t7, $t8, 0x1f
/* 0D7780 8031C780 15E10057 */ bne $t7, $at, .L8031C8E0
/* 0D7784 8031C784 00000000 */ nop
/* 0D7788 8031C788 30A900C0 */ andi $t1, $a1, 0xc0
/* 0D778C 8031C78C 11200009 */ beqz $t1, .L8031C7B4
/* 0D7790 8031C790 26020054 */ addiu $v0, $s0, 0x54
/* 0D7794 8031C794 24010040 */ li $at, 64
/* 0D7798 8031C798 11210023 */ beq $t1, $at, .L8031C828
/* 0D779C 8031C79C 26020054 */ addiu $v0, $s0, 0x54
/* 0D77A0 8031C7A0 24010080 */ li $at, 128
/* 0D77A4 8031C7A4 11210039 */ beq $t1, $at, .L8031C88C
/* 0D77A8 8031C7A8 26020054 */ addiu $v0, $s0, 0x54
/* 0D77AC 8031C7AC 10000043 */ b .L8031C8BC
/* 0D77B0 8031C7B0 01402025 */ move $a0, $t2
.L8031C7B4:
/* 0D77B4 8031C7B4 8C430000 */ lw $v1, ($v0)
/* 0D77B8 8031C7B8 90660000 */ lbu $a2, ($v1)
/* 0D77BC 8031C7BC 24790001 */ addiu $t9, $v1, 1
/* 0D77C0 8031C7C0 AC590000 */ sw $t9, ($v0)
/* 0D77C4 8031C7C4 30CE0080 */ andi $t6, $a2, 0x80
/* 0D77C8 8031C7C8 11C0000A */ beqz $t6, .L8031C7F4
/* 0D77CC 8031C7CC 00C03825 */ move $a3, $a2
/* 0D77D0 8031C7D0 03201825 */ move $v1, $t9
/* 0D77D4 8031C7D4 93390000 */ lbu $t9, ($t9)
/* 0D77D8 8031C7D8 00073200 */ sll $a2, $a3, 8
/* 0D77DC 8031C7DC 30CF7F00 */ andi $t7, $a2, 0x7f00
/* 0D77E0 8031C7E0 032F3025 */ or $a2, $t9, $t7
/* 0D77E4 8031C7E4 30C7FFFF */ andi $a3, $a2, 0xffff
/* 0D77E8 8031C7E8 24780001 */ addiu $t8, $v1, 1
/* 0D77EC 8031C7EC AC580000 */ sw $t8, ($v0)
/* 0D77F0 8031C7F0 00E03025 */ move $a2, $a3
.L8031C7F4:
/* 0D77F4 8031C7F4 8C430000 */ lw $v1, ($v0)
/* 0D77F8 8031C7F8 30CAFFFF */ andi $t2, $a2, 0xffff
/* 0D77FC 8031C7FC 01402025 */ move $a0, $t2
/* 0D7800 8031C800 906B0000 */ lbu $t3, ($v1)
/* 0D7804 8031C804 246F0001 */ addiu $t7, $v1, 1
/* 0D7808 8031C808 AC4F0000 */ sw $t7, ($v0)
/* 0D780C 8031C80C 91EE0000 */ lbu $t6, ($t7)
/* 0D7810 8031C810 A20E0002 */ sb $t6, 2($s0)
/* 0D7814 8031C814 8C580000 */ lw $t8, ($v0)
/* 0D7818 8031C818 270F0001 */ addiu $t7, $t8, 1
/* 0D781C 8031C81C AC4F0000 */ sw $t7, ($v0)
/* 0D7820 8031C820 10000027 */ b .L8031C8C0
/* 0D7824 8031C824 A607003A */ sh $a3, 0x3a($s0)
.L8031C828:
/* 0D7828 8031C828 8C430000 */ lw $v1, ($v0)
/* 0D782C 8031C82C 90660000 */ lbu $a2, ($v1)
/* 0D7830 8031C830 24790001 */ addiu $t9, $v1, 1
/* 0D7834 8031C834 AC590000 */ sw $t9, ($v0)
/* 0D7838 8031C838 30CE0080 */ andi $t6, $a2, 0x80
/* 0D783C 8031C83C 11C0000A */ beqz $t6, .L8031C868
/* 0D7840 8031C840 00C03825 */ move $a3, $a2
/* 0D7844 8031C844 03201825 */ move $v1, $t9
/* 0D7848 8031C848 93390000 */ lbu $t9, ($t9)
/* 0D784C 8031C84C 00073200 */ sll $a2, $a3, 8
/* 0D7850 8031C850 30CF7F00 */ andi $t7, $a2, 0x7f00
/* 0D7854 8031C854 032F3025 */ or $a2, $t9, $t7
/* 0D7858 8031C858 30C7FFFF */ andi $a3, $a2, 0xffff
/* 0D785C 8031C85C 24780001 */ addiu $t8, $v1, 1
/* 0D7860 8031C860 AC580000 */ sw $t8, ($v0)
/* 0D7864 8031C864 00E03025 */ move $a2, $a3
.L8031C868:
/* 0D7868 8031C868 8C430000 */ lw $v1, ($v0)
/* 0D786C 8031C86C 30CAFFFF */ andi $t2, $a2, 0xffff
/* 0D7870 8031C870 01402025 */ move $a0, $t2
/* 0D7874 8031C874 906B0000 */ lbu $t3, ($v1)
/* 0D7878 8031C878 246F0001 */ addiu $t7, $v1, 1
/* 0D787C 8031C87C AC4F0000 */ sw $t7, ($v0)
/* 0D7880 8031C880 A2000002 */ sb $zero, 2($s0)
/* 0D7884 8031C884 1000000E */ b .L8031C8C0
/* 0D7888 8031C888 A607003A */ sh $a3, 0x3a($s0)
.L8031C88C:
/* 0D788C 8031C88C 8C430000 */ lw $v1, ($v0)
/* 0D7890 8031C890 960A003A */ lhu $t2, 0x3a($s0)
/* 0D7894 8031C894 906B0000 */ lbu $t3, ($v1)
/* 0D7898 8031C898 24790001 */ addiu $t9, $v1, 1
/* 0D789C 8031C89C AC590000 */ sw $t9, ($v0)
/* 0D78A0 8031C8A0 93380000 */ lbu $t8, ($t9)
/* 0D78A4 8031C8A4 01402025 */ move $a0, $t2
/* 0D78A8 8031C8A8 A2180002 */ sb $t8, 2($s0)
/* 0D78AC 8031C8AC 8C4F0000 */ lw $t7, ($v0)
/* 0D78B0 8031C8B0 25F90001 */ addiu $t9, $t7, 1
/* 0D78B4 8031C8B4 10000002 */ b .L8031C8C0
/* 0D78B8 8031C8B8 AC590000 */ sw $t9, ($v0)
.L8031C8BC:
/* 0D78BC 8031C8BC 8FAB0030 */ lw $t3, 0x30($sp)
.L8031C8C0:
/* 0D78C0 8031C8C0 016B0019 */ multu $t3, $t3
/* 0D78C4 8031C8C4 00A91823 */ subu $v1, $a1, $t1
/* 0D78C8 8031C8C8 00007012 */ mflo $t6
/* 0D78CC 8031C8CC 448E3000 */ mtc1 $t6, $f6
/* 0D78D0 8031C8D0 00000000 */ nop
/* 0D78D4 8031C8D4 46803220 */ cvt.s.w $f8, $f6
/* 0D78D8 8031C8D8 10000024 */ b .L8031C96C
/* 0D78DC 8031C8DC E6080024 */ swc1 $f8, 0x24($s0)
.L8031C8E0:
/* 0D78E0 8031C8E0 11200008 */ beqz $t1, .L8031C904
/* 0D78E4 8031C8E4 26020054 */ addiu $v0, $s0, 0x54
/* 0D78E8 8031C8E8 24010040 */ li $at, 64
/* 0D78EC 8031C8EC 11210019 */ beq $t1, $at, .L8031C954
/* 0D78F0 8031C8F0 24010080 */ li $at, 128
/* 0D78F4 8031C8F4 5121001B */ beql $t1, $at, .L8031C964
/* 0D78F8 8031C8F8 960A003A */ lhu $t2, 0x3a($s0)
/* 0D78FC 8031C8FC 1000001A */ b .L8031C968
/* 0D7900 8031C900 01402025 */ move $a0, $t2
.L8031C904:
/* 0D7904 8031C904 8C430000 */ lw $v1, ($v0)
/* 0D7908 8031C908 90660000 */ lbu $a2, ($v1)
/* 0D790C 8031C90C 24780001 */ addiu $t8, $v1, 1
/* 0D7910 8031C910 AC580000 */ sw $t8, ($v0)
/* 0D7914 8031C914 30CF0080 */ andi $t7, $a2, 0x80
/* 0D7918 8031C918 11E0000A */ beqz $t7, .L8031C944
/* 0D791C 8031C91C 00C03825 */ move $a3, $a2
/* 0D7920 8031C920 03001825 */ move $v1, $t8
/* 0D7924 8031C924 93180000 */ lbu $t8, ($t8)
/* 0D7928 8031C928 00073200 */ sll $a2, $a3, 8
/* 0D792C 8031C92C 30CE7F00 */ andi $t6, $a2, 0x7f00
/* 0D7930 8031C930 030E3025 */ or $a2, $t8, $t6
/* 0D7934 8031C934 30C7FFFF */ andi $a3, $a2, 0xffff
/* 0D7938 8031C938 24790001 */ addiu $t9, $v1, 1
/* 0D793C 8031C93C AC590000 */ sw $t9, ($v0)
/* 0D7940 8031C940 00E03025 */ move $a2, $a3
.L8031C944:
/* 0D7944 8031C944 30CAFFFF */ andi $t2, $a2, 0xffff
/* 0D7948 8031C948 A607003A */ sh $a3, 0x3a($s0)
/* 0D794C 8031C94C 10000006 */ b .L8031C968
/* 0D7950 8031C950 01402025 */ move $a0, $t2
.L8031C954:
/* 0D7954 8031C954 960A0038 */ lhu $t2, 0x38($s0)
/* 0D7958 8031C958 10000003 */ b .L8031C968
/* 0D795C 8031C95C 01402025 */ move $a0, $t2
/* 0D7960 8031C960 960A003A */ lhu $t2, 0x3a($s0)
.L8031C964:
/* 0D7964 8031C964 01402025 */ move $a0, $t2
.L8031C968:
/* 0D7968 8031C968 00A91823 */ subu $v1, $a1, $t1
.L8031C96C:
/* 0D796C 8031C96C 920E0002 */ lbu $t6, 2($s0)
/* 0D7970 8031C970 A604003C */ sh $a0, 0x3c($s0)
/* 0D7974 8031C974 01C40019 */ multu $t6, $a0
/* 0D7978 8031C978 0000C012 */ mflo $t8
/* 0D797C 8031C97C 07010003 */ bgez $t8, .L8031C98C
/* 0D7980 8031C980 00187A03 */ sra $t7, $t8, 8
/* 0D7984 8031C984 270100FF */ addiu $at, $t8, 0xff
/* 0D7988 8031C988 00017A03 */ sra $t7, $at, 8
.L8031C98C:
/* 0D798C 8031C98C A60F003E */ sh $t7, 0x3e($s0)
/* 0D7990 8031C990 8D990000 */ lw $t9, ($t4)
/* 0D7994 8031C994 0019C080 */ sll $t8, $t9, 2
/* 0D7998 8031C998 07030006 */ bgezl $t8, .L8031C9B4
/* 0D799C 8031C99C 8DA20000 */ lw $v0, ($t5)
/* 0D79A0 8031C9A0 91AF0002 */ lbu $t7, 2($t5)
/* 0D79A4 8031C9A4 31F90040 */ andi $t9, $t7, 0x40
/* 0D79A8 8031C9A8 57200008 */ bnezl $t9, .L8031C9CC
/* 0D79AC 8031C9AC 92180000 */ lbu $t8, ($s0)
/* 0D79B0 8031C9B0 8DA20000 */ lw $v0, ($t5)
.L8031C9B4:
/* 0D79B4 8031C9B4 0002C0C0 */ sll $t8, $v0, 3
/* 0D79B8 8031C9B8 07000003 */ bltz $t8, .L8031C9C8
/* 0D79BC 8031C9BC 0002C900 */ sll $t9, $v0, 4
/* 0D79C0 8031C9C0 07220006 */ bltzl $t9, .L8031C9DC
/* 0D79C4 8031C9C4 85B90018 */ lh $t9, 0x18($t5)
.L8031C9C8:
/* 0D79C8 8031C9C8 92180000 */ lbu $t8, ($s0)
.L8031C9CC:
/* 0D79CC 8031C9CC 370F0020 */ ori $t7, $t8, 0x20
/* 0D79D0 8031C9D0 100000E3 */ b .L8031CD60
/* 0D79D4 8031C9D4 A20F0000 */ sb $t7, ($s0)
/* 0D79D8 8031C9D8 85B90018 */ lh $t9, 0x18($t5)
.L8031C9DC:
/* 0D79DC 8031C9DC 57200035 */ bnezl $t9, .L8031CAB4
/* 0D79E0 8031C9E0 85980010 */ lh $t8, 0x10($t4)
/* 0D79E4 8031C9E4 85B8001A */ lh $t8, 0x1a($t5)
/* 0D79E8 8031C9E8 8619001E */ lh $t9, 0x1e($s0)
/* 0D79EC 8031C9EC 00787821 */ addu $t7, $v1, $t8
/* 0D79F0 8031C9F0 01F94021 */ addu $t0, $t7, $t9
/* 0D79F4 8031C9F4 91AF0005 */ lbu $t7, 5($t5)
/* 0D79F8 8031C9F8 8FF80000 */ lw $t8, ($ra)
/* 0D79FC 8031C9FC 310E00FF */ andi $t6, $t0, 0xff
/* 0D7A00 8031CA00 000FC880 */ sll $t9, $t7, 2
/* 0D7A04 8031CA04 032FC823 */ subu $t9, $t9, $t7
/* 0D7A08 8031CA08 0019C880 */ sll $t9, $t9, 2
/* 0D7A0C 8031CA0C 03193821 */ addu $a3, $t8, $t9
/* 0D7A10 8031CA10 90E20002 */ lbu $v0, 2($a3)
/* 0D7A14 8031CA14 01C04025 */ move $t0, $t6
/* 0D7A18 8031CA18 01C2082A */ slt $at, $t6, $v0
/* 0D7A1C 8031CA1C 5420000C */ bnezl $at, .L8031CA50
/* 0D7A20 8031CA20 8CEE0008 */ lw $t6, 8($a3)
/* 0D7A24 8031CA24 304800FF */ andi $t0, $v0, 0xff
/* 0D7A28 8031CA28 55000006 */ bnezl $t0, .L8031CA44
/* 0D7A2C 8031CA2C 2508FFFF */ addiu $t0, $t0, -1
/* 0D7A30 8031CA30 920F0000 */ lbu $t7, ($s0)
/* 0D7A34 8031CA34 35F80020 */ ori $t8, $t7, 0x20
/* 0D7A38 8031CA38 100000C7 */ b .L8031CD58
/* 0D7A3C 8031CA3C A2180000 */ sb $t8, ($s0)
/* 0D7A40 8031CA40 2508FFFF */ addiu $t0, $t0, -1
.L8031CA44:
/* 0D7A44 8031CA44 311900FF */ andi $t9, $t0, 0xff
/* 0D7A48 8031CA48 03204025 */ move $t0, $t9
/* 0D7A4C 8031CA4C 8CEE0008 */ lw $t6, 8($a3)
.L8031CA50:
/* 0D7A50 8031CA50 00087880 */ sll $t7, $t0, 2
/* 0D7A54 8031CA54 01CFC021 */ addu $t8, $t6, $t7
/* 0D7A58 8031CA58 8F020000 */ lw $v0, ($t8)
/* 0D7A5C 8031CA5C 54400006 */ bnezl $v0, .L8031CA78
/* 0D7A60 8031CA60 8C58000C */ lw $t8, 0xc($v0)
/* 0D7A64 8031CA64 920E0000 */ lbu $t6, ($s0)
/* 0D7A68 8031CA68 35CF0020 */ ori $t7, $t6, 0x20
/* 0D7A6C 8031CA6C 100000BA */ b .L8031CD58
/* 0D7A70 8031CA70 A20F0000 */ sb $t7, ($s0)
/* 0D7A74 8031CA74 8C58000C */ lw $t8, 0xc($v0)
.L8031CA78:
/* 0D7A78 8031CA78 24430004 */ addiu $v1, $v0, 4
/* 0D7A7C 8031CA7C AE180018 */ sw $t8, 0x18($s0)
/* 0D7A80 8031CA80 90590000 */ lbu $t9, ($v0)
/* 0D7A84 8031CA84 A2190014 */ sb $t9, 0x14($s0)
/* 0D7A88 8031CA88 904E0001 */ lbu $t6, 1($v0)
/* 0D7A8C 8031CA8C AE03004C */ sw $v1, 0x4c($s0)
/* 0D7A90 8031CA90 448E5000 */ mtc1 $t6, $f10
/* 0D7A94 8031CA94 00000000 */ nop
/* 0D7A98 8031CA98 46805420 */ cvt.s.w $f16, $f10
/* 0D7A9C 8031CA9C 46008482 */ mul.s $f18, $f16, $f0
/* 0D7AA0 8031CAA0 E6120028 */ swc1 $f18, 0x28($s0)
/* 0D7AA4 8031CAA4 C4640004 */ lwc1 $f4, 4($v1)
/* 0D7AA8 8031CAA8 100000AB */ b .L8031CD58
/* 0D7AAC 8031CAAC E6040020 */ swc1 $f4, 0x20($s0)
/* 0D7AB0 8031CAB0 85980010 */ lh $t8, 0x10($t4)
.L8031CAB4:
/* 0D7AB4 8031CAB4 85AE001A */ lh $t6, 0x1a($t5)
/* 0D7AB8 8031CAB8 0078C821 */ addu $t9, $v1, $t8
/* 0D7ABC 8031CABC 8618001E */ lh $t8, 0x1e($s0)
/* 0D7AC0 8031CAC0 032E7821 */ addu $t7, $t9, $t6
/* 0D7AC4 8031CAC4 01F84021 */ addu $t0, $t7, $t8
/* 0D7AC8 8031CAC8 310200FF */ andi $v0, $t0, 0xff
/* 0D7ACC 8031CACC 28410080 */ slti $at, $v0, 0x80
/* 0D7AD0 8031CAD0 14200005 */ bnez $at, .L8031CAE8
/* 0D7AD4 8031CAD4 00404025 */ move $t0, $v0
/* 0D7AD8 8031CAD8 920F0000 */ lbu $t7, ($s0)
/* 0D7ADC 8031CADC 35F80020 */ ori $t8, $t7, 0x20
/* 0D7AE0 8031CAE0 1000009D */ b .L8031CD58
/* 0D7AE4 8031CAE4 A2180000 */ sb $t8, ($s0)
.L8031CAE8:
/* 0D7AE8 8031CAE8 8E030048 */ lw $v1, 0x48($s0)
/* 0D7AEC 8031CAEC 54600003 */ bnezl $v1, .L8031CAFC
/* 0D7AF0 8031CAF0 92190004 */ lbu $t9, 4($s0)
/* 0D7AF4 8031CAF4 8DA3003C */ lw $v1, 0x3c($t5)
/* 0D7AF8 8031CAF8 92190004 */ lbu $t9, 4($s0)
.L8031CAFC:
/* 0D7AFC 8031CAFC 13200073 */ beqz $t9, .L8031CCCC
/* 0D7B00 8031CB00 00000000 */ nop
/* 0D7B04 8031CB04 92040003 */ lbu $a0, 3($s0)
/* 0D7B08 8031CB08 0082082A */ slt $at, $a0, $v0
/* 0D7B0C 8031CB0C 10200003 */ beqz $at, .L8031CB1C
/* 0D7B10 8031CB10 00802825 */ move $a1, $a0
/* 0D7B14 8031CB14 10000001 */ b .L8031CB1C
/* 0D7B18 8031CB18 00402825 */ move $a1, $v0
.L8031CB1C:
/* 0D7B1C 8031CB1C 10600017 */ beqz $v1, .L8031CB7C
/* 0D7B20 8031CB20 3C013F80 */ li $at, 0x3F800000 # 1.000000
/* 0D7B24 8031CB24 906E0001 */ lbu $t6, 1($v1)
/* 0D7B28 8031CB28 30A200FF */ andi $v0, $a1, 0xff
/* 0D7B2C 8031CB2C 004E082A */ slt $at, $v0, $t6
/* 0D7B30 8031CB30 50200004 */ beql $at, $zero, .L8031CB44
/* 0D7B34 8031CB34 906F0002 */ lbu $t7, 2($v1)
/* 0D7B38 8031CB38 10000009 */ b .L8031CB60
/* 0D7B3C 8031CB3C 24620008 */ addiu $v0, $v1, 8
/* 0D7B40 8031CB40 906F0002 */ lbu $t7, 2($v1)
.L8031CB44:
/* 0D7B44 8031CB44 24640018 */ addiu $a0, $v1, 0x18
/* 0D7B48 8031CB48 01E2082A */ slt $at, $t7, $v0
/* 0D7B4C 8031CB4C 14200003 */ bnez $at, .L8031CB5C
/* 0D7B50 8031CB50 00000000 */ nop
/* 0D7B54 8031CB54 10000001 */ b .L8031CB5C
/* 0D7B58 8031CB58 24640010 */ addiu $a0, $v1, 0x10
.L8031CB5C:
/* 0D7B5C 8031CB5C 00801025 */ move $v0, $a0
.L8031CB60:
/* 0D7B60 8031CB60 8E18004C */ lw $t8, 0x4c($s0)
/* 0D7B64 8031CB64 0058C826 */ xor $t9, $v0, $t8
/* 0D7B68 8031CB68 2F390001 */ sltiu $t9, $t9, 1
/* 0D7B6C 8031CB6C A3B9003F */ sb $t9, 0x3f($sp)
/* 0D7B70 8031CB70 AE02004C */ sw $v0, 0x4c($s0)
/* 0D7B74 8031CB74 10000003 */ b .L8031CB84
/* 0D7B78 8031CB78 C4400004 */ lwc1 $f0, 4($v0)
.L8031CB7C:
/* 0D7B7C 8031CB7C 44810000 */ mtc1 $at, $f0
/* 0D7B80 8031CB80 AE00004C */ sw $zero, 0x4c($s0)
.L8031CB84:
/* 0D7B84 8031CB84 3C038033 */ lui $v1, %hi(D_80332884) # $v1, 0x8033
/* 0D7B88 8031CB88 24633994 */ addiu $v1, %lo(D_80332884) # addiu $v1, $v1, 0x3994
/* 0D7B8C 8031CB8C 00087080 */ sll $t6, $t0, 2
/* 0D7B90 8031CB90 92180003 */ lbu $t8, 3($s0)
/* 0D7B94 8031CB94 006E7821 */ addu $t7, $v1, $t6
/* 0D7B98 8031CB98 C5E60000 */ lwc1 $f6, ($t7)
/* 0D7B9C 8031CB9C 920F0004 */ lbu $t7, 4($s0)
/* 0D7BA0 8031CBA0 0018C880 */ sll $t9, $t8, 2
/* 0D7BA4 8031CBA4 00797021 */ addu $t6, $v1, $t9
/* 0D7BA8 8031CBA8 C5C80000 */ lwc1 $f8, ($t6)
/* 0D7BAC 8031CBAC 46003082 */ mul.s $f2, $f6, $f0
/* 0D7BB0 8031CBB0 2401FF7F */ li $at, -129
/* 0D7BB4 8031CBB4 01E1C024 */ and $t8, $t7, $at
/* 0D7BB8 8031CBB8 2719FFFF */ addiu $t9, $t8, -1
/* 0D7BBC 8031CBBC 2F210005 */ sltiu $at, $t9, 5
/* 0D7BC0 8031CBC0 46004302 */ mul.s $f12, $f8, $f0
/* 0D7BC4 8031CBC4 1020000C */ beqz $at, .L8031CBF8
/* 0D7BC8 8031CBC8 0019C880 */ sll $t9, $t9, 2
/* 0D7BCC 8031CBCC 3C018034 */ lui $at, %hi(jtbl_80337CDC)
/* 0D7BD0 8031CBD0 00390821 */ addu $at, $at, $t9
/* 0D7BD4 8031CBD4 8C398EAC */ lw $t9, %lo(jtbl_80337CDC)($at)
/* 0D7BD8 8031CBD8 03200008 */ jr $t9
/* 0D7BDC 8031CBDC 00000000 */ nop
glabel L_U_8031CBE0
/* 0D7BE0 8031CBE0 E7A20024 */ swc1 $f2, 0x24($sp)
/* 0D7BE4 8031CBE4 10000005 */ b .L8031CBFC
/* 0D7BE8 8031CBE8 46006006 */ mov.s $f0, $f12
glabel L_U_8031CBEC
/* 0D7BEC 8031CBEC 46001006 */ mov.s $f0, $f2
/* 0D7BF0 8031CBF0 10000002 */ b .L8031CBFC
/* 0D7BF4 8031CBF4 E7AC0024 */ swc1 $f12, 0x24($sp)
.L8031CBF8:
/* 0D7BF8 8031CBF8 C7A00028 */ lwc1 $f0, 0x28($sp)
.L8031CBFC:
/* 0D7BFC 8031CBFC C7AA0024 */ lwc1 $f10, 0x24($sp)
/* 0D7C00 8031CC00 3C013F80 */ li $at, 0x3F800000 # 1.000000
/* 0D7C04 8031CC04 44819000 */ mtc1 $at, $f18
/* 0D7C08 8031CC08 46005403 */ div.s $f16, $f10, $f0
/* 0D7C0C 8031CC0C 26020004 */ addiu $v0, $s0, 4
/* 0D7C10 8031CC10 3C0146FE */ li $at, 0x46FE0000 # 32512.000000
/* 0D7C14 8031CC14 46128101 */ sub.s $f4, $f16, $f18
/* 0D7C18 8031CC18 E444000C */ swc1 $f4, 0xc($v0)
/* 0D7C1C 8031CC1C 920E0004 */ lbu $t6, 4($s0)
/* 0D7C20 8031CC20 31CF0080 */ andi $t7, $t6, 0x80
/* 0D7C24 8031CC24 51E00017 */ beql $t7, $zero, .L8031CC84
/* 0D7C28 8031CC28 9618001C */ lhu $t8, 0x1c($s0)
/* 0D7C2C 8031CC2C 9598000A */ lhu $t8, 0xa($t4)
/* 0D7C30 8031CC30 3C0E8022 */ lui $t6, %hi(D_80226D7C) # $t6, 0x8022
/* 0D7C34 8031CC34 85CE6B7C */ lh $t6, %lo(D_80226D7C)($t6)
/* 0D7C38 8031CC38 44984000 */ mtc1 $t8, $f8
/* 0D7C3C 8031CC3C 8619003C */ lh $t9, 0x3c($s0)
/* 0D7C40 8031CC40 44813000 */ mtc1 $at, $f6
/* 0D7C44 8031CC44 468042A0 */ cvt.s.w $f10, $f8
/* 0D7C48 8031CC48 448E4000 */ mtc1 $t6, $f8
/* 0D7C4C 8031CC4C 44999000 */ mtc1 $t9, $f18
/* 0D7C50 8031CC50 960F001C */ lhu $t7, 0x1c($s0)
/* 0D7C54 8031CC54 46809120 */ cvt.s.w $f4, $f18
/* 0D7C58 8031CC58 460A3402 */ mul.s $f16, $f6, $f10
/* 0D7C5C 8031CC5C 448F9000 */ mtc1 $t7, $f18
/* 0D7C60 8031CC60 468041A0 */ cvt.s.w $f6, $f8
/* 0D7C64 8031CC64 46809220 */ cvt.s.w $f8, $f18
/* 0D7C68 8031CC68 46062282 */ mul.s $f10, $f4, $f6
/* 0D7C6C 8031CC6C 00000000 */ nop
/* 0D7C70 8031CC70 460A4102 */ mul.s $f4, $f8, $f10
/* 0D7C74 8031CC74 46048183 */ div.s $f6, $f16, $f4
/* 0D7C78 8031CC78 10000009 */ b .L8031CCA0
/* 0D7C7C 8031CC7C E4460008 */ swc1 $f6, 8($v0)
/* 0D7C80 8031CC80 9618001C */ lhu $t8, 0x1c($s0)
.L8031CC84:
/* 0D7C84 8031CC84 3C0142FE */ li $at, 0x42FE0000 # 127.000000
/* 0D7C88 8031CC88 44819000 */ mtc1 $at, $f18
/* 0D7C8C 8031CC8C 44984000 */ mtc1 $t8, $f8
/* 0D7C90 8031CC90 00000000 */ nop
/* 0D7C94 8031CC94 468042A0 */ cvt.s.w $f10, $f8
/* 0D7C98 8031CC98 460A9403 */ div.s $f16, $f18, $f10
/* 0D7C9C 8031CC9C E4500008 */ swc1 $f16, 8($v0)
.L8031CCA0:
/* 0D7CA0 8031CCA0 44802000 */ mtc1 $zero, $f4
/* 0D7CA4 8031CCA4 2401FF7F */ li $at, -129
/* 0D7CA8 8031CCA8 E4440004 */ swc1 $f4, 4($v0)
/* 0D7CAC 8031CCAC 92190004 */ lbu $t9, 4($s0)
/* 0D7CB0 8031CCB0 E6000020 */ swc1 $f0, 0x20($s0)
/* 0D7CB4 8031CCB4 03217024 */ and $t6, $t9, $at
/* 0D7CB8 8031CCB8 24010005 */ li $at, 5
/* 0D7CBC 8031CCBC 55C10027 */ bnel $t6, $at, .L8031CD5C
/* 0D7CC0 8031CCC0 860F003C */ lh $t7, 0x3c($s0)
/* 0D7CC4 8031CCC4 10000024 */ b .L8031CD58
/* 0D7CC8 8031CCC8 A2080003 */ sb $t0, 3($s0)
.L8031CCCC:
/* 0D7CCC 8031CCCC 1060001C */ beqz $v1, .L8031CD40
/* 0D7CD0 8031CCD0 0008C880 */ sll $t9, $t0, 2
/* 0D7CD4 8031CCD4 906F0001 */ lbu $t7, 1($v1)
/* 0D7CD8 8031CCD8 004F082A */ slt $at, $v0, $t7
/* 0D7CDC 8031CCDC 10200003 */ beqz $at, .L8031CCEC
/* 0D7CE0 8031CCE0 00087880 */ sll $t7, $t0, 2
/* 0D7CE4 8031CCE4 10000009 */ b .L8031CD0C
/* 0D7CE8 8031CCE8 24620008 */ addiu $v0, $v1, 8
.L8031CCEC:
/* 0D7CEC 8031CCEC 90780002 */ lbu $t8, 2($v1)
/* 0D7CF0 8031CCF0 24640018 */ addiu $a0, $v1, 0x18
/* 0D7CF4 8031CCF4 0302082A */ slt $at, $t8, $v0
/* 0D7CF8 8031CCF8 14200003 */ bnez $at, .L8031CD08
/* 0D7CFC 8031CCFC 00000000 */ nop
/* 0D7D00 8031CD00 10000001 */ b .L8031CD08
/* 0D7D04 8031CD04 24640010 */ addiu $a0, $v1, 0x10
.L8031CD08:
/* 0D7D08 8031CD08 00801025 */ move $v0, $a0
.L8031CD0C:
/* 0D7D0C 8031CD0C 8E19004C */ lw $t9, 0x4c($s0)
/* 0D7D10 8031CD10 3C038033 */ lui $v1, %hi(D_80332884) # $v1, 0x8033
/* 0D7D14 8031CD14 24633994 */ addiu $v1, %lo(D_80332884) # addiu $v1, $v1, 0x3994
/* 0D7D18 8031CD18 00597026 */ xor $t6, $v0, $t9
/* 0D7D1C 8031CD1C 2DCE0001 */ sltiu $t6, $t6, 1
/* 0D7D20 8031CD20 A3AE003F */ sb $t6, 0x3f($sp)
/* 0D7D24 8031CD24 AE02004C */ sw $v0, 0x4c($s0)
/* 0D7D28 8031CD28 006FC021 */ addu $t8, $v1, $t7
/* 0D7D2C 8031CD2C C7080000 */ lwc1 $f8, ($t8)
/* 0D7D30 8031CD30 C4460004 */ lwc1 $f6, 4($v0)
/* 0D7D34 8031CD34 46083482 */ mul.s $f18, $f6, $f8
/* 0D7D38 8031CD38 10000007 */ b .L8031CD58
/* 0D7D3C 8031CD3C E6120020 */ swc1 $f18, 0x20($s0)
.L8031CD40:
/* 0D7D40 8031CD40 3C038033 */ lui $v1, %hi(D_80332884) # $v1, 0x8033
/* 0D7D44 8031CD44 24633994 */ addiu $v1, %lo(D_80332884) # addiu $v1, $v1, 0x3994
/* 0D7D48 8031CD48 AE00004C */ sw $zero, 0x4c($s0)
/* 0D7D4C 8031CD4C 00797021 */ addu $t6, $v1, $t9
/* 0D7D50 8031CD50 C5CA0000 */ lwc1 $f10, ($t6)
/* 0D7D54 8031CD54 E60A0020 */ swc1 $f10, 0x20($s0)
.L8031CD58:
/* 0D7D58 8031CD58 860F003C */ lh $t7, 0x3c($s0)
.L8031CD5C:
/* 0D7D5C 8031CD5C A60F0040 */ sh $t7, 0x40($s0)
.L8031CD60:
/* 0D7D60 8031CD60 8E020000 */ lw $v0, ($s0)
/* 0D7D64 8031CD64 24010001 */ li $at, 1
/* 0D7D68 8031CD68 0002C080 */ sll $t8, $v0, 2
/* 0D7D6C 8031CD6C 0018CFC2 */ srl $t9, $t8, 0x1f
/* 0D7D70 8031CD70 5721000C */ bnel $t9, $at, .L8031CDA4
/* 0D7D74 8031CD74 000270C0 */ sll $t6, $v0, 3
/* 0D7D78 8031CD78 8E0E0044 */ lw $t6, 0x44($s0)
/* 0D7D7C 8031CD7C 0002C0C0 */ sll $t8, $v0, 3
/* 0D7D80 8031CD80 15C00003 */ bnez $t6, .L8031CD90
/* 0D7D84 8031CD84 00000000 */ nop
/* 0D7D88 8031CD88 0703002E */ bgezl $t8, .L8031CE44
/* 0D7D8C 8031CD8C 8FBF001C */ lw $ra, 0x1c($sp)
.L8031CD90:
/* 0D7D90 8031CD90 0C0C67D9 */ jal func_80318EC4
/* 0D7D94 8031CD94 02002025 */ move $a0, $s0
/* 0D7D98 8031CD98 1000002A */ b .L8031CE44
/* 0D7D9C 8031CD9C 8FBF001C */ lw $ra, 0x1c($sp)
/* 0D7DA0 8031CDA0 000270C0 */ sll $t6, $v0, 3
.L8031CDA4:
/* 0D7DA4 8031CDA4 05C00003 */ bltz $t6, .L8031CDB4
/* 0D7DA8 8031CDA8 00004025 */ move $t0, $zero
/* 0D7DAC 8031CDAC 10000017 */ b .L8031CE0C
/* 0D7DB0 8031CDB0 24080001 */ li $t0, 1
.L8031CDB4:
/* 0D7DB4 8031CDB4 8E040044 */ lw $a0, 0x44($s0)
/* 0D7DB8 8031CDB8 10800005 */ beqz $a0, .L8031CDD0
/* 0D7DBC 8031CDBC 00000000 */ nop
/* 0D7DC0 8031CDC0 920F0001 */ lbu $t7, 1($s0)
/* 0D7DC4 8031CDC4 93B8003F */ lbu $t8, 0x3f($sp)
/* 0D7DC8 8031CDC8 15E00003 */ bnez $t7, .L8031CDD8
/* 0D7DCC 8031CDCC 00000000 */ nop
.L8031CDD0:
/* 0D7DD0 8031CDD0 1000000E */ b .L8031CE0C
/* 0D7DD4 8031CDD4 24080001 */ li $t0, 1
.L8031CDD8:
/* 0D7DD8 8031CDD8 57000006 */ bnezl $t8, .L8031CDF4
/* 0D7DDC 8031CDDC 8E19004C */ lw $t9, 0x4c($s0)
/* 0D7DE0 8031CDE0 0C0C67D9 */ jal func_80318EC4
/* 0D7DE4 8031CDE4 02002025 */ move $a0, $s0
/* 0D7DE8 8031CDE8 10000008 */ b .L8031CE0C
/* 0D7DEC 8031CDEC 24080001 */ li $t0, 1
/* 0D7DF0 8031CDF0 8E19004C */ lw $t9, 0x4c($s0)
.L8031CDF4:
/* 0D7DF4 8031CDF4 02002825 */ move $a1, $s0
/* 0D7DF8 8031CDF8 17200004 */ bnez $t9, .L8031CE0C
/* 0D7DFC 8031CDFC 00000000 */ nop
/* 0D7E00 8031CE00 0C0C6874 */ jal func_80319164
/* 0D7E04 8031CE04 A3A8003D */ sb $t0, 0x3d($sp)
/* 0D7E08 8031CE08 93A8003D */ lbu $t0, 0x3d($sp)
.L8031CE0C:
/* 0D7E0C 8031CE0C 51000005 */ beql $t0, $zero, .L8031CE24
/* 0D7E10 8031CE10 8E040044 */ lw $a0, 0x44($s0)
/* 0D7E14 8031CE14 0C0C6A53 */ jal func_803198E0
/* 0D7E18 8031CE18 02002025 */ move $a0, $s0
/* 0D7E1C 8031CE1C AE020044 */ sw $v0, 0x44($s0)
/* 0D7E20 8031CE20 8E040044 */ lw $a0, 0x44($s0)
.L8031CE24:
/* 0D7E24 8031CE24 50800007 */ beql $a0, $zero, .L8031CE44
/* 0D7E28 8031CE28 8FBF001C */ lw $ra, 0x1c($sp)
/* 0D7E2C 8031CE2C 8C8E002C */ lw $t6, 0x2c($a0)
/* 0D7E30 8031CE30 560E0004 */ bnel $s0, $t6, .L8031CE44
/* 0D7E34 8031CE34 8FBF001C */ lw $ra, 0x1c($sp)
/* 0D7E38 8031CE38 0C0C6D28 */ jal func_8031A478
/* 0D7E3C 8031CE3C 00000000 */ nop
.L8031CE40:
/* 0D7E40 8031CE40 8FBF001C */ lw $ra, 0x1c($sp)
.L8031CE44:
/* 0D7E44 8031CE44 8FB00018 */ lw $s0, 0x18($sp)
/* 0D7E48 8031CE48 27BD0060 */ addiu $sp, $sp, 0x60
/* 0D7E4C 8031CE4C 03E00008 */ jr $ra
/* 0D7E50 8031CE50 00000000 */ nop