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.
 
 
 
 
 

922 lines
36 KiB

.late_rodata
.late_rodata_alignment 8
glabel jtbl_80337D08 # US: 80338EC0
.word L_U_8031D3A8
.word L_U_8031D354
.word L_U_8031D3C4
.word L_U_8031D3D4
.word L_U_8031D370
.word L_U_8031D5E4
.word L_U_8031D640
.word L_U_8031D678
.word L_U_8031D678
.word L_U_8031D6C4
.word L_U_8031D6D4
.word L_U_8031D678
.word L_U_8031D144
.word L_U_8031D144
.word L_U_8031D144
.word L_U_8031D6F4
.word L_U_8031D718
.word L_U_8031D728
.word L_U_8031D44C
.word L_U_8031D5D4
.word L_U_8031D144
.word L_U_8031D5B4
.word L_U_8031D51C
.word L_U_8031D500
.word L_U_8031D4F0
.word L_U_8031D4D4
.word L_U_8031D4BC
.word L_U_8031D498
.word L_U_8031D474
.word L_U_8031D424
.word L_U_8031D3E4
.word L_U_8031D400
.word L_U_8031D56C
.word L_U_8031D538
.word L_U_8031D5A0
.word L_U_8031D73C
.word L_U_8031D144
.word L_U_8031D144
.word L_U_8031D144
.word L_U_8031D144
.word L_U_8031D144
.word L_U_8031D144
.word L_U_8031D144
.word L_U_8031D144
.word L_U_8031D144
.word L_U_8031D144
.word L_U_8031D144
.word L_U_8031D144
.word L_U_8031D344
.word L_U_8031D31C
.word L_U_8031D144
.word L_U_8031D144
.word L_U_8031D2C4
.word L_U_8031D2B4
.word L_U_8031D26C
.word L_U_8031D234
.word L_U_8031D2C4
.word L_U_8031D2C4
.word L_U_8031D2C4
.word L_U_8031D1F8
.word L_U_8031D144
.word L_U_8031D144
.word L_U_8031D144
glabel jtbl_80337E04 # US: 80338FBC
.word L_U_8031D7B8
.word L_U_8031D144
.word L_U_8031D144
.word L_U_8031D144
.word L_U_8031D144
.word L_U_8031D144
.word L_U_8031D144
.word L_U_8031D144
.word L_U_8031D144
.word L_U_8031D144
.word L_U_8031D144
.word L_U_8031D144
.word L_U_8031D144
.word L_U_8031D144
.word L_U_8031D144
.word L_U_8031D144
.word L_U_8031D900
.word L_U_8031D144
.word L_U_8031D144
.word L_U_8031D144
.word L_U_8031D144
.word L_U_8031D144
.word L_U_8031D144
.word L_U_8031D144
.word L_U_8031D144
.word L_U_8031D144
.word L_U_8031D144
.word L_U_8031D144
.word L_U_8031D144
.word L_U_8031D144
.word L_U_8031D144
.word L_U_8031D144
.word L_U_8031D930
.word L_U_8031D144
.word L_U_8031D144
.word L_U_8031D144
.word L_U_8031D144
.word L_U_8031D144
.word L_U_8031D144
.word L_U_8031D144
.word L_U_8031D144
.word L_U_8031D144
.word L_U_8031D144
.word L_U_8031D144
.word L_U_8031D144
.word L_U_8031D144
.word L_U_8031D144
.word L_U_8031D144
.word L_U_8031D94C
.word L_U_8031D144
.word L_U_8031D144
.word L_U_8031D144
.word L_U_8031D144
.word L_U_8031D144
.word L_U_8031D144
.word L_U_8031D144
.word L_U_8031D144
.word L_U_8031D144
.word L_U_8031D144
.word L_U_8031D144
.word L_U_8031D144
.word L_U_8031D144
.word L_U_8031D144
.word L_U_8031D144
.word L_U_8031D974
.word L_U_8031D144
.word L_U_8031D144
.word L_U_8031D144
.word L_U_8031D144
.word L_U_8031D144
.word L_U_8031D144
.word L_U_8031D144
.word L_U_8031D144
.word L_U_8031D144
.word L_U_8031D144
.word L_U_8031D144
.word L_U_8031D144
.word L_U_8031D144
.word L_U_8031D144
.word L_U_8031D144
.word L_U_8031D814
.word L_U_8031D144
.word L_U_8031D144
.word L_U_8031D144
.word L_U_8031D144
.word L_U_8031D144
.word L_U_8031D144
.word L_U_8031D144
.word L_U_8031D144
.word L_U_8031D144
.word L_U_8031D144
.word L_U_8031D144
.word L_U_8031D144
.word L_U_8031D144
.word L_U_8031D144
.word L_U_8031D144
.word L_U_8031D8F8
.word L_U_8031D144
.word L_U_8031D144
.word L_U_8031D144
.word L_U_8031D144
.word L_U_8031D144
.word L_U_8031D144
.word L_U_8031D144
.word L_U_8031D144
.word L_U_8031D144
.word L_U_8031D144
.word L_U_8031D144
.word L_U_8031D144
.word L_U_8031D144
.word L_U_8031D144
.word L_U_8031D144
.word L_U_8031D7E8
.word L_U_8031D144
.word L_U_8031D144
.word L_U_8031D144
.word L_U_8031D144
.word L_U_8031D144
.word L_U_8031D144
.word L_U_8031D144
.word L_U_8031D144
.word L_U_8031D144
.word L_U_8031D144
.word L_U_8031D144
.word L_U_8031D144
.word L_U_8031D144
.word L_U_8031D144
.word L_U_8031D144
.word L_U_8031D7F8
.word L_U_8031D144
.word L_U_8031D144
.word L_U_8031D144
.word L_U_8031D144
.word L_U_8031D144
.word L_U_8031D144
.word L_U_8031D144
.word L_U_8031D144
.word L_U_8031D144
.word L_U_8031D144
.word L_U_8031D144
.word L_U_8031D144
.word L_U_8031D144
.word L_U_8031D144
.word L_U_8031D144
.word L_U_8031D830
.word L_U_8031D144
.word L_U_8031D144
.word L_U_8031D144
.word L_U_8031D144
.word L_U_8031D144
.word L_U_8031D144
.word L_U_8031D144
.word L_U_8031D144
.word L_U_8031D144
.word L_U_8031D144
.word L_U_8031D144
.word L_U_8031D144
.word L_U_8031D144
.word L_U_8031D144
.word L_U_8031D144
.word L_U_8031D87C
.word L_U_8031D144
.word L_U_8031D144
.word L_U_8031D144
.word L_U_8031D144
.word L_U_8031D144
.word L_U_8031D144
.word L_U_8031D144
.word L_U_8031D144
.word L_U_8031D144
.word L_U_8031D144
.word L_U_8031D144
.word L_U_8031D144
.word L_U_8031D144
.word L_U_8031D144
.word L_U_8031D144
.word L_U_8031D898
.text
glabel func_8031C104
/* 0D808C 8031D08C 27BDFFA0 */ addiu $sp, $sp, -0x60
/* 0D8090 8031D090 AFBF002C */ sw $ra, 0x2c($sp)
/* 0D8094 8031D094 AFB50028 */ sw $s5, 0x28($sp)
/* 0D8098 8031D098 AFB40024 */ sw $s4, 0x24($sp)
/* 0D809C 8031D09C AFB30020 */ sw $s3, 0x20($sp)
/* 0D80A0 8031D0A0 AFB2001C */ sw $s2, 0x1c($sp)
/* 0D80A4 8031D0A4 AFB10018 */ sw $s1, 0x18($sp)
/* 0D80A8 8031D0A8 AFB00014 */ sw $s0, 0x14($sp)
/* 0D80AC 8031D0AC 8C820000 */ lw $v0, ($a0)
/* 0D80B0 8031D0B0 00809025 */ move $s2, $a0
/* 0D80B4 8031D0B4 000277C2 */ srl $t6, $v0, 0x1f
/* 0D80B8 8031D0B8 11C00243 */ beqz $t6, .L8031D9C8
/* 0D80BC 8031D0BC 0002C080 */ sll $t8, $v0, 2
/* 0D80C0 8031D0C0 0701000D */ bgez $t8, .L8031D0F8
/* 0D80C4 8031D0C4 00008025 */ move $s0, $zero
/* 0D80C8 8031D0C8 00808825 */ move $s1, $a0
/* 0D80CC 8031D0CC 24120010 */ li $s2, 16
.L8031D0D0:
/* 0D80D0 8031D0D0 8E240044 */ lw $a0, 0x44($s1)
/* 0D80D4 8031D0D4 50800004 */ beql $a0, $zero, .L8031D0E8
/* 0D80D8 8031D0D8 26100004 */ addiu $s0, $s0, 4
/* 0D80DC 8031D0DC 0C0C7031 */ jal func_8031B0A4
/* 0D80E0 8031D0E0 00000000 */ nop
/* 0D80E4 8031D0E4 26100004 */ addiu $s0, $s0, 4
.L8031D0E8:
/* 0D80E8 8031D0E8 1612FFF9 */ bne $s0, $s2, .L8031D0D0
/* 0D80EC 8031D0EC 26310004 */ addiu $s1, $s1, 4
/* 0D80F0 8031D0F0 10000236 */ b .L8031D9CC
/* 0D80F4 8031D0F4 8FBF002C */ lw $ra, 0x2c($sp)
.L8031D0F8:
/* 0D80F8 8031D0F8 8E540040 */ lw $s4, 0x40($s2)
/* 0D80FC 8031D0FC 8E990000 */ lw $t9, ($s4)
/* 0D8100 8031D100 00195080 */ sll $t2, $t9, 2
/* 0D8104 8031D104 05430006 */ bgezl $t2, .L8031D120
/* 0D8108 8031D108 96430016 */ lhu $v1, 0x16($s2)
/* 0D810C 8031D10C 924B0002 */ lbu $t3, 2($s2)
/* 0D8110 8031D110 316C0080 */ andi $t4, $t3, 0x80
/* 0D8114 8031D114 5580022D */ bnezl $t4, .L8031D9CC
/* 0D8118 8031D118 8FBF002C */ lw $ra, 0x2c($sp)
/* 0D811C 8031D11C 96430016 */ lhu $v1, 0x16($s2)
.L8031D120:
/* 0D8120 8031D120 2650005C */ addiu $s0, $s2, 0x5c
/* 0D8124 8031D124 2415FFFF */ li $s5, -1
/* 0D8128 8031D128 10600004 */ beqz $v1, .L8031D13C
/* 0D812C 8031D12C 00601025 */ move $v0, $v1
/* 0D8130 8031D130 246DFFFF */ addiu $t5, $v1, -1
/* 0D8134 8031D134 A64D0016 */ sh $t5, 0x16($s2)
/* 0D8138 8031D138 31A2FFFF */ andi $v0, $t5, 0xffff
.L8031D13C:
/* 0D813C 8031D13C 14400217 */ bnez $v0, .L8031D99C
/* 0D8140 8031D140 83B3004B */ lb $s3, 0x4b($sp)
glabel L_U_8031D144
.L8031D144:
/* 0D8144 8031D144 0C0C700F */ jal func_8031B01C
/* 0D8148 8031D148 02002025 */ move $a0, $s0
/* 0D814C 8031D14C 240100FF */ li $at, 255
/* 0D8150 8031D150 305100FF */ andi $s1, $v0, 0xff
/* 0D8154 8031D154 1441000E */ bne $v0, $at, .L8031D190
/* 0D8158 8031D158 00401825 */ move $v1, $v0
/* 0D815C 8031D15C 92040018 */ lbu $a0, 0x18($s0)
/* 0D8160 8031D160 14800005 */ bnez $a0, .L8031D178
/* 0D8164 8031D164 248EFFFF */ addiu $t6, $a0, -1
/* 0D8168 8031D168 0C0C6EBC */ jal func_8031AAD0
/* 0D816C 8031D16C 02402025 */ move $a0, $s2
/* 0D8170 8031D170 1000020B */ b .L8031D9A0
/* 0D8174 8031D174 02408825 */ move $s1, $s2
.L8031D178:
/* 0D8178 8031D178 31CF00FF */ andi $t7, $t6, 0xff
/* 0D817C 8031D17C 000FC080 */ sll $t8, $t7, 2
/* 0D8180 8031D180 0218C821 */ addu $t9, $s0, $t8
/* 0D8184 8031D184 A20E0018 */ sb $t6, 0x18($s0)
/* 0D8188 8031D188 8F290004 */ lw $t1, 4($t9)
/* 0D818C 8031D18C AE090000 */ sw $t1, ($s0)
.L8031D190:
/* 0D8190 8031D190 240100FE */ li $at, 254
/* 0D8194 8031D194 10610201 */ beq $v1, $at, .L8031D99C
/* 0D8198 8031D198 240100FD */ li $at, 253
/* 0D819C 8031D19C 14610005 */ bne $v1, $at, .L8031D1B4
/* 0D81A0 8031D1A0 307900F0 */ andi $t9, $v1, 0xf0
/* 0D81A4 8031D1A4 0C0C7020 */ jal func_8031B060
/* 0D81A8 8031D1A8 02002025 */ move $a0, $s0
/* 0D81AC 8031D1AC 100001FB */ b .L8031D99C
/* 0D81B0 8031D1B0 A6420016 */ sh $v0, 0x16($s2)
.L8031D1B4:
/* 0D81B4 8031D1B4 240100F3 */ li $at, 243
/* 0D81B8 8031D1B8 14610005 */ bne $v1, $at, .L8031D1D0
/* 0D81BC 8031D1BC 246DFF3F */ addiu $t5, $v1, -0xc1
/* 0D81C0 8031D1C0 924B0000 */ lbu $t3, ($s2)
/* 0D81C4 8031D1C4 356C0020 */ ori $t4, $t3, 0x20
/* 0D81C8 8031D1C8 100001F4 */ b .L8031D99C
/* 0D81CC 8031D1CC A24C0000 */ sb $t4, ($s2)
.L8031D1D0:
/* 0D81D0 8031D1D0 286100C1 */ slti $at, $v1, 0xc1
/* 0D81D4 8031D1D4 1420016E */ bnez $at, .L8031D790
/* 0D81D8 8031D1D8 2DA1003F */ sltiu $at, $t5, 0x3f
/* 0D81DC 8031D1DC 1020FFD9 */ beqz $at, .L8031D144
/* 0D81E0 8031D1E0 000D6880 */ sll $t5, $t5, 2
/* 0D81E4 8031D1E4 3C018034 */ lui $at, %hi(jtbl_80337D08)
/* 0D81E8 8031D1E8 002D0821 */ addu $at, $at, $t5
/* 0D81EC 8031D1EC 8C2D8EC0 */ lw $t5, %lo(jtbl_80337D08)($at)
/* 0D81F0 8031D1F0 01A00008 */ jr $t5
/* 0D81F4 8031D1F4 00000000 */ nop
glabel L_U_8031D1F8
/* 0D81F8 8031D1F8 0C0C7014 */ jal func_8031B030
/* 0D81FC 8031D1FC 02002025 */ move $a0, $s0
/* 0D8200 8031D200 920E0018 */ lbu $t6, 0x18($s0)
/* 0D8204 8031D204 8E180000 */ lw $t8, ($s0)
/* 0D8208 8031D208 304CFFFF */ andi $t4, $v0, 0xffff
/* 0D820C 8031D20C 25CF0001 */ addiu $t7, $t6, 1
/* 0D8210 8031D210 31F900FF */ andi $t9, $t7, 0xff
/* 0D8214 8031D214 00194880 */ sll $t1, $t9, 2
/* 0D8218 8031D218 02095021 */ addu $t2, $s0, $t1
/* 0D821C 8031D21C A20F0018 */ sb $t7, 0x18($s0)
/* 0D8220 8031D220 AD580000 */ sw $t8, ($t2)
/* 0D8224 8031D224 8E8B0014 */ lw $t3, 0x14($s4)
/* 0D8228 8031D228 016C6821 */ addu $t5, $t3, $t4
/* 0D822C 8031D22C 1000FFC5 */ b .L8031D144
/* 0D8230 8031D230 AE0D0000 */ sw $t5, ($s0)
glabel L_U_8031D234
/* 0D8234 8031D234 0C0C700F */ jal func_8031B01C
/* 0D8238 8031D238 02002025 */ move $a0, $s0
/* 0D823C 8031D23C 920E0018 */ lbu $t6, 0x18($s0)
/* 0D8240 8031D240 020E7821 */ addu $t7, $s0, $t6
/* 0D8244 8031D244 A1E20014 */ sb $v0, 0x14($t7)
/* 0D8248 8031D248 92190018 */ lbu $t9, 0x18($s0)
/* 0D824C 8031D24C 8E180000 */ lw $t8, ($s0)
/* 0D8250 8031D250 27290001 */ addiu $t1, $t9, 1
/* 0D8254 8031D254 312A00FF */ andi $t2, $t1, 0xff
/* 0D8258 8031D258 000A5880 */ sll $t3, $t2, 2
/* 0D825C 8031D25C 020B6021 */ addu $t4, $s0, $t3
/* 0D8260 8031D260 A2090018 */ sb $t1, 0x18($s0)
/* 0D8264 8031D264 1000FFB7 */ b .L8031D144
/* 0D8268 8031D268 AD980000 */ sw $t8, ($t4)
glabel L_U_8031D26C
/* 0D826C 8031D26C 920D0018 */ lbu $t5, 0x18($s0)
/* 0D8270 8031D270 020D1021 */ addu $v0, $s0, $t5
/* 0D8274 8031D274 904E0013 */ lbu $t6, 0x13($v0)
/* 0D8278 8031D278 25CFFFFF */ addiu $t7, $t6, -1
/* 0D827C 8031D27C A04F0013 */ sb $t7, 0x13($v0)
/* 0D8280 8031D280 92040018 */ lbu $a0, 0x18($s0)
/* 0D8284 8031D284 0204C821 */ addu $t9, $s0, $a0
/* 0D8288 8031D288 93290013 */ lbu $t1, 0x13($t9)
/* 0D828C 8031D28C 00801825 */ move $v1, $a0
/* 0D8290 8031D290 00035080 */ sll $t2, $v1, 2
/* 0D8294 8031D294 11200005 */ beqz $t1, .L8031D2AC
/* 0D8298 8031D298 248CFFFF */ addiu $t4, $a0, -1
/* 0D829C 8031D29C 020A5821 */ addu $t3, $s0, $t2
/* 0D82A0 8031D2A0 8D780000 */ lw $t8, ($t3)
/* 0D82A4 8031D2A4 1000FFA7 */ b .L8031D144
/* 0D82A8 8031D2A8 AE180000 */ sw $t8, ($s0)
.L8031D2AC:
/* 0D82AC 8031D2AC 1000FFA5 */ b .L8031D144
/* 0D82B0 8031D2B0 A20C0018 */ sb $t4, 0x18($s0)
glabel L_U_8031D2B4
/* 0D82B4 8031D2B4 920D0018 */ lbu $t5, 0x18($s0)
/* 0D82B8 8031D2B8 25AEFFFF */ addiu $t6, $t5, -1
/* 0D82BC 8031D2BC 1000FFA1 */ b .L8031D144
/* 0D82C0 8031D2C0 A20E0018 */ sb $t6, 0x18($s0)
glabel L_U_8031D2C4
/* 0D82C4 8031D2C4 0C0C7014 */ jal func_8031B030
/* 0D82C8 8031D2C8 02002025 */ move $a0, $s0
/* 0D82CC 8031D2CC 240100FA */ li $at, 250
/* 0D82D0 8031D2D0 16210003 */ bne $s1, $at, .L8031D2E0
/* 0D82D4 8031D2D4 02201825 */ move $v1, $s1
/* 0D82D8 8031D2D8 1660FF9A */ bnez $s3, .L8031D144
/* 0D82DC 8031D2DC 00000000 */ nop
.L8031D2E0:
/* 0D82E0 8031D2E0 240100F9 */ li $at, 249
/* 0D82E4 8031D2E4 54610004 */ bnel $v1, $at, .L8031D2F8
/* 0D82E8 8031D2E8 240100F5 */ li $at, 245
/* 0D82EC 8031D2EC 0661FF95 */ bgez $s3, .L8031D144
/* 0D82F0 8031D2F0 00000000 */ nop
/* 0D82F4 8031D2F4 240100F5 */ li $at, 245
.L8031D2F8:
/* 0D82F8 8031D2F8 54610004 */ bnel $v1, $at, .L8031D30C
/* 0D82FC 8031D2FC 8E8F0014 */ lw $t7, 0x14($s4)
/* 0D8300 8031D300 0660FF90 */ bltz $s3, .L8031D144
/* 0D8304 8031D304 00000000 */ nop
/* 0D8308 8031D308 8E8F0014 */ lw $t7, 0x14($s4)
.L8031D30C:
/* 0D830C 8031D30C 3059FFFF */ andi $t9, $v0, 0xffff
/* 0D8310 8031D310 01F94821 */ addu $t1, $t7, $t9
/* 0D8314 8031D314 1000FF8B */ b .L8031D144
/* 0D8318 8031D318 AE090000 */ sw $t1, ($s0)
glabel L_U_8031D31C
/* 0D831C 8031D31C 26510080 */ addiu $s1, $s2, 0x80
/* 0D8320 8031D320 0C0C68DA */ jal func_803192FC
/* 0D8324 8031D324 02202025 */ move $a0, $s1
/* 0D8328 8031D328 0C0C700F */ jal func_8031B01C
/* 0D832C 8031D32C 02002025 */ move $a0, $s0
/* 0D8330 8031D330 02202025 */ move $a0, $s1
/* 0D8334 8031D334 0C0C6925 */ jal func_80319428
/* 0D8338 8031D338 00402825 */ move $a1, $v0
/* 0D833C 8031D33C 1000FF81 */ b .L8031D144
/* 0D8340 8031D340 00000000 */ nop
glabel L_U_8031D344
/* 0D8344 8031D344 0C0C68DA */ jal func_803192FC
/* 0D8348 8031D348 26440080 */ addiu $a0, $s2, 0x80
/* 0D834C 8031D34C 1000FF7D */ b .L8031D144
/* 0D8350 8031D350 00000000 */ nop
glabel L_U_8031D354
/* 0D8354 8031D354 0C0C7014 */ jal func_8031B030
/* 0D8358 8031D358 02002025 */ move $a0, $s0
/* 0D835C 8031D35C 8E8A0014 */ lw $t2, 0x14($s4)
/* 0D8360 8031D360 304BFFFF */ andi $t3, $v0, 0xffff
/* 0D8364 8031D364 014BC021 */ addu $t8, $t2, $t3
/* 0D8368 8031D368 1000FF76 */ b .L8031D144
/* 0D836C 8031D36C AE580030 */ sw $t8, 0x30($s2)
glabel L_U_8031D370
/* 0D8370 8031D370 1275FF74 */ beq $s3, $s5, .L8031D144
/* 0D8374 8031D374 00000000 */ nop
/* 0D8378 8031D378 8E4C0030 */ lw $t4, 0x30($s2)
/* 0D837C 8031D37C 00136840 */ sll $t5, $s3, 1
/* 0D8380 8031D380 8E8A0014 */ lw $t2, 0x14($s4)
/* 0D8384 8031D384 018D1021 */ addu $v0, $t4, $t5
/* 0D8388 8031D388 904F0000 */ lbu $t7, ($v0)
/* 0D838C 8031D38C 904E0001 */ lbu $t6, 1($v0)
/* 0D8390 8031D390 000FCA00 */ sll $t9, $t7, 8
/* 0D8394 8031D394 01D93821 */ addu $a3, $t6, $t9
/* 0D8398 8031D398 30E9FFFF */ andi $t1, $a3, 0xffff
/* 0D839C 8031D39C 01495821 */ addu $t3, $t2, $t1
/* 0D83A0 8031D3A0 1000FF68 */ b .L8031D144
/* 0D83A4 8031D3A4 AE4B0030 */ sw $t3, 0x30($s2)
glabel L_U_8031D3A8
/* 0D83A8 8031D3A8 0C0C700F */ jal func_8031B01C
/* 0D83AC 8031D3AC 02002025 */ move $a0, $s0
/* 0D83B0 8031D3B0 02402025 */ move $a0, $s2
/* 0D83B4 8031D3B4 0C0C73F5 */ jal SetInstrument
/* 0D83B8 8031D3B8 304500FF */ andi $a1, $v0, 0xff
/* 0D83BC 8031D3BC 1000FF61 */ b .L8031D144
/* 0D83C0 8031D3C0 00000000 */ nop
glabel L_U_8031D3C4
/* 0D83C4 8031D3C4 92580000 */ lbu $t8, ($s2)
/* 0D83C8 8031D3C8 330CFFFD */ andi $t4, $t8, 0xfffd
/* 0D83CC 8031D3CC 1000FF5D */ b .L8031D144
/* 0D83D0 8031D3D0 A24C0000 */ sb $t4, ($s2)
glabel L_U_8031D3D4
/* 0D83D4 8031D3D4 924F0000 */ lbu $t7, ($s2)
/* 0D83D8 8031D3D8 35EE0002 */ ori $t6, $t7, 2
/* 0D83DC 8031D3DC 1000FF59 */ b .L8031D144
/* 0D83E0 8031D3E0 A24E0000 */ sb $t6, ($s2)
glabel L_U_8031D3E4
/* 0D83E4 8031D3E4 0C0C700F */ jal func_8031B01C
/* 0D83E8 8031D3E8 02002025 */ move $a0, $s0
/* 0D83EC 8031D3EC 02402025 */ move $a0, $s2
/* 0D83F0 8031D3F0 0C0C741A */ jal func_8031C0C4
/* 0D83F4 8031D3F4 304500FF */ andi $a1, $v0, 0xff
/* 0D83F8 8031D3F8 1000FF52 */ b .L8031D144
/* 0D83FC 8031D3FC 00000000 */ nop
glabel L_U_8031D400
/* 0D8400 8031D400 0C0C700F */ jal func_8031B01C
/* 0D8404 8031D404 02002025 */ move $a0, $s0
/* 0D8408 8031D408 44822000 */ mtc1 $v0, $f4
/* 0D840C 8031D40C 3C013C00 */ li $at, 0x3C000000 # 0.007812
/* 0D8410 8031D410 44814000 */ mtc1 $at, $f8
/* 0D8414 8031D414 468021A0 */ cvt.s.w $f6, $f4
/* 0D8418 8031D418 46083282 */ mul.s $f10, $f6, $f8
/* 0D841C 8031D41C 1000FF49 */ b .L8031D144
/* 0D8420 8031D420 E64A001C */ swc1 $f10, 0x1c($s2)
glabel L_U_8031D424
/* 0D8424 8031D424 0C0C7014 */ jal func_8031B030
/* 0D8428 8031D428 02002025 */ move $a0, $s0
/* 0D842C 8031D42C 3059FFFF */ andi $t9, $v0, 0xffff
/* 0D8430 8031D430 44998000 */ mtc1 $t9, $f16
/* 0D8434 8031D434 3C014700 */ li $at, 0x47000000 # 32768.000000
/* 0D8438 8031D438 44812000 */ mtc1 $at, $f4
/* 0D843C 8031D43C 468084A0 */ cvt.s.w $f18, $f16
/* 0D8440 8031D440 46049183 */ div.s $f6, $f18, $f4
/* 0D8444 8031D444 1000FF3F */ b .L8031D144
/* 0D8448 8031D448 E646002C */ swc1 $f6, 0x2c($s2)
glabel L_U_8031D44C
/* 0D844C 8031D44C 0C0C700F */ jal func_8031B01C
/* 0D8450 8031D450 02002025 */ move $a0, $s0
/* 0D8454 8031D454 2449007F */ addiu $t1, $v0, 0x7f
/* 0D8458 8031D458 312A00FF */ andi $t2, $t1, 0xff
/* 0D845C 8031D45C 000A5880 */ sll $t3, $t2, 2
/* 0D8460 8031D460 3C018033 */ lui $at, %hi(D_80332488)
/* 0D8464 8031D464 002B0821 */ addu $at, $at, $t3
/* 0D8468 8031D468 C4283598 */ lwc1 $f8, %lo(D_80332488)($at)
/* 0D846C 8031D46C 1000FF35 */ b .L8031D144
/* 0D8470 8031D470 E648002C */ swc1 $f8, 0x2c($s2)
glabel L_U_8031D474
/* 0D8474 8031D474 0C0C700F */ jal func_8031B01C
/* 0D8478 8031D478 02002025 */ move $a0, $s0
/* 0D847C 8031D47C 44825000 */ mtc1 $v0, $f10
/* 0D8480 8031D480 3C013C00 */ li $at, 0x3C000000 # 0.007812
/* 0D8484 8031D484 44819000 */ mtc1 $at, $f18
/* 0D8488 8031D488 46805420 */ cvt.s.w $f16, $f10
/* 0D848C 8031D48C 46128102 */ mul.s $f4, $f16, $f18
/* 0D8490 8031D490 1000FF2C */ b .L8031D144
/* 0D8494 8031D494 E6440024 */ swc1 $f4, 0x24($s2)
glabel L_U_8031D498
/* 0D8498 8031D498 0C0C700F */ jal func_8031B01C
/* 0D849C 8031D49C 02002025 */ move $a0, $s0
/* 0D84A0 8031D4A0 44823000 */ mtc1 $v0, $f6
/* 0D84A4 8031D4A4 3C013C00 */ li $at, 0x3C000000 # 0.007812
/* 0D84A8 8031D4A8 44815000 */ mtc1 $at, $f10
/* 0D84AC 8031D4AC 46803220 */ cvt.s.w $f8, $f6
/* 0D84B0 8031D4B0 460A4402 */ mul.s $f16, $f8, $f10
/* 0D84B4 8031D4B4 1000FF23 */ b .L8031D144
/* 0D84B8 8031D4B8 E6500028 */ swc1 $f16, 0x28($s2)
glabel L_U_8031D4BC
/* 0D84BC 8031D4BC 8E020000 */ lw $v0, ($s0)
/* 0D84C0 8031D4C0 80430000 */ lb $v1, ($v0)
/* 0D84C4 8031D4C4 24580001 */ addiu $t8, $v0, 1
/* 0D84C8 8031D4C8 AE180000 */ sw $t8, ($s0)
/* 0D84CC 8031D4CC 1000FF1D */ b .L8031D144
/* 0D84D0 8031D4D0 A643001A */ sh $v1, 0x1a($s2)
glabel L_U_8031D4D4
/* 0D84D4 8031D4D4 0C0C7014 */ jal func_8031B030
/* 0D84D8 8031D4D8 02002025 */ move $a0, $s0
/* 0D84DC 8031D4DC 8E8C0014 */ lw $t4, 0x14($s4)
/* 0D84E0 8031D4E0 304DFFFF */ andi $t5, $v0, 0xffff
/* 0D84E4 8031D4E4 018D7821 */ addu $t7, $t4, $t5
/* 0D84E8 8031D4E8 1000FF16 */ b .L8031D144
/* 0D84EC 8031D4EC AE4F007C */ sw $t7, 0x7c($s2)
glabel L_U_8031D4F0
/* 0D84F0 8031D4F0 0C0C700F */ jal func_8031B01C
/* 0D84F4 8031D4F4 02002025 */ move $a0, $s0
/* 0D84F8 8031D4F8 1000FF12 */ b .L8031D144
/* 0D84FC 8031D4FC A2420078 */ sb $v0, 0x78($s2)
glabel L_U_8031D500
/* 0D8500 8031D500 0C0C700F */ jal func_8031B01C
/* 0D8504 8031D504 02002025 */ move $a0, $s0
/* 0D8508 8031D508 000270C0 */ sll $t6, $v0, 3
/* 0D850C 8031D50C A64E000E */ sh $t6, 0xe($s2)
/* 0D8510 8031D510 A640000A */ sh $zero, 0xa($s2)
/* 0D8514 8031D514 1000FF0B */ b .L8031D144
/* 0D8518 8031D518 A6400012 */ sh $zero, 0x12($s2)
glabel L_U_8031D51C
/* 0D851C 8031D51C 0C0C700F */ jal func_8031B01C
/* 0D8520 8031D520 02002025 */ move $a0, $s0
/* 0D8524 8031D524 00021940 */ sll $v1, $v0, 5
/* 0D8528 8031D528 A643000C */ sh $v1, 0xc($s2)
/* 0D852C 8031D52C A6430008 */ sh $v1, 8($s2)
/* 0D8530 8031D530 1000FF04 */ b .L8031D144
/* 0D8534 8031D534 A6400010 */ sh $zero, 0x10($s2)
glabel L_U_8031D538
/* 0D8538 8031D538 0C0C700F */ jal func_8031B01C
/* 0D853C 8031D53C 02002025 */ move $a0, $s0
/* 0D8540 8031D540 0002C8C0 */ sll $t9, $v0, 3
/* 0D8544 8031D544 A659000A */ sh $t9, 0xa($s2)
/* 0D8548 8031D548 0C0C700F */ jal func_8031B01C
/* 0D854C 8031D54C 02002025 */ move $a0, $s0
/* 0D8550 8031D550 000248C0 */ sll $t1, $v0, 3
/* 0D8554 8031D554 A649000E */ sh $t1, 0xe($s2)
/* 0D8558 8031D558 0C0C700F */ jal func_8031B01C
/* 0D855C 8031D55C 02002025 */ move $a0, $s0
/* 0D8560 8031D560 00025100 */ sll $t2, $v0, 4
/* 0D8564 8031D564 1000FEF7 */ b .L8031D144
/* 0D8568 8031D568 A64A0012 */ sh $t2, 0x12($s2)
glabel L_U_8031D56C
/* 0D856C 8031D56C 0C0C700F */ jal func_8031B01C
/* 0D8570 8031D570 02002025 */ move $a0, $s0
/* 0D8574 8031D574 00025940 */ sll $t3, $v0, 5
/* 0D8578 8031D578 A64B0008 */ sh $t3, 8($s2)
/* 0D857C 8031D57C 0C0C700F */ jal func_8031B01C
/* 0D8580 8031D580 02002025 */ move $a0, $s0
/* 0D8584 8031D584 0002C140 */ sll $t8, $v0, 5
/* 0D8588 8031D588 A658000C */ sh $t8, 0xc($s2)
/* 0D858C 8031D58C 0C0C700F */ jal func_8031B01C
/* 0D8590 8031D590 02002025 */ move $a0, $s0
/* 0D8594 8031D594 00026100 */ sll $t4, $v0, 4
/* 0D8598 8031D598 1000FEEA */ b .L8031D144
/* 0D859C 8031D59C A64C0010 */ sh $t4, 0x10($s2)
glabel L_U_8031D5A0
/* 0D85A0 8031D5A0 0C0C700F */ jal func_8031B01C
/* 0D85A4 8031D5A4 02002025 */ move $a0, $s0
/* 0D85A8 8031D5A8 00026900 */ sll $t5, $v0, 4
/* 0D85AC 8031D5AC 1000FEE5 */ b .L8031D144
/* 0D85B0 8031D5B0 A64D0014 */ sh $t5, 0x14($s2)
glabel L_U_8031D5B4
/* 0D85B4 8031D5B4 0C0C700F */ jal func_8031B01C
/* 0D85B8 8031D5B8 02002025 */ move $a0, $s0
/* 0D85BC 8031D5BC 14400003 */ bnez $v0, .L8031D5CC
/* 0D85C0 8031D5C0 305100FF */ andi $s1, $v0, 0xff
/* 0D85C4 8031D5C4 3C118022 */ lui $s1, %hi(D_80226D7E) # $s1, 0x8022
/* 0D85C8 8031D5C8 92316B7E */ lbu $s1, %lo(D_80226D7E)($s1)
.L8031D5CC:
/* 0D85CC 8031D5CC 1000FEDD */ b .L8031D144
/* 0D85D0 8031D5D0 A2510006 */ sb $s1, 6($s2)
glabel L_U_8031D5D4
/* 0D85D4 8031D5D4 0C0C700F */ jal func_8031B01C
/* 0D85D8 8031D5D8 02002025 */ move $a0, $s0
/* 0D85DC 8031D5DC 1000FED9 */ b .L8031D144
/* 0D85E0 8031D5E0 A2420003 */ sb $v0, 3($s2)
glabel L_U_8031D5E4
/* 0D85E4 8031D5E4 0C0C700F */ jal func_8031B01C
/* 0D85E8 8031D5E8 02002025 */ move $a0, $s0
/* 0D85EC 8031D5EC 928F0005 */ lbu $t7, 5($s4)
/* 0D85F0 8031D5F0 3C038022 */ lui $v1, %hi(D_80226D58) # $v1, 0x8022
/* 0D85F4 8031D5F4 8C636B58 */ lw $v1, %lo(D_80226D58)($v1)
/* 0D85F8 8031D5F8 000F7040 */ sll $t6, $t7, 1
/* 0D85FC 8031D5FC 3C048022 */ lui $a0, %hi(D_802214F8) # $a0, 0x8022
/* 0D8600 8031D600 006EC821 */ addu $t9, $v1, $t6
/* 0D8604 8031D604 97270000 */ lhu $a3, ($t9)
/* 0D8608 8031D608 248410F8 */ addiu $a0, %lo(D_802214F8) # addiu $a0, $a0, 0x10f8
/* 0D860C 8031D60C 24050002 */ li $a1, 2
/* 0D8610 8031D610 00E34821 */ addu $t1, $a3, $v1
/* 0D8614 8031D614 91280000 */ lbu $t0, ($t1)
/* 0D8618 8031D618 00E85021 */ addu $t2, $a3, $t0
/* 0D861C 8031D61C 01425823 */ subu $t3, $t2, $v0
/* 0D8620 8031D620 0163C021 */ addu $t8, $t3, $v1
/* 0D8624 8031D624 93110000 */ lbu $s1, ($t8)
/* 0D8628 8031D628 0C0C5E0B */ jal func_8031680C
/* 0D862C 8031D62C 02203025 */ move $a2, $s1
/* 0D8630 8031D630 1040FEC4 */ beqz $v0, .L8031D144
/* 0D8634 8031D634 00000000 */ nop
/* 0D8638 8031D638 1000FEC2 */ b .L8031D144
/* 0D863C 8031D63C A2510005 */ sb $s1, 5($s2)
glabel L_U_8031D640
/* 0D8640 8031D640 326C00FF */ andi $t4, $s3, 0xff
/* 0D8644 8031D644 AFAC0030 */ sw $t4, 0x30($sp)
/* 0D8648 8031D648 0C0C700F */ jal func_8031B01C
/* 0D864C 8031D64C 02002025 */ move $a0, $s0
/* 0D8650 8031D650 305100FF */ andi $s1, $v0, 0xff
/* 0D8654 8031D654 0C0C7014 */ jal func_8031B030
/* 0D8658 8031D658 02002025 */ move $a0, $s0
/* 0D865C 8031D65C 8E8D0014 */ lw $t5, 0x14($s4)
/* 0D8660 8031D660 8FAE0030 */ lw $t6, 0x30($sp)
/* 0D8664 8031D664 304FFFFF */ andi $t7, $v0, 0xffff
/* 0D8668 8031D668 01AF1821 */ addu $v1, $t5, $t7
/* 0D866C 8031D66C 01D1C821 */ addu $t9, $t6, $s1
/* 0D8670 8031D670 1000FEB4 */ b .L8031D144
/* 0D8674 8031D674 A0790000 */ sb $t9, ($v1)
glabel L_U_8031D678
/* 0D8678 8031D678 0C0C700F */ jal func_8031B01C
/* 0D867C 8031D67C 02002025 */ move $a0, $s0
/* 0D8680 8031D680 240100C8 */ li $at, 200
/* 0D8684 8031D684 16210005 */ bne $s1, $at, .L8031D69C
/* 0D8688 8031D688 02201825 */ move $v1, $s1
/* 0D868C 8031D68C 02629823 */ subu $s3, $s3, $v0
/* 0D8690 8031D690 00135E00 */ sll $t3, $s3, 0x18
/* 0D8694 8031D694 1000FEAB */ b .L8031D144
/* 0D8698 8031D698 000B9E03 */ sra $s3, $t3, 0x18
.L8031D69C:
/* 0D869C 8031D69C 240100CC */ li $at, 204
/* 0D86A0 8031D6A0 14610005 */ bne $v1, $at, .L8031D6B8
/* 0D86A4 8031D6A4 02629824 */ and $s3, $s3, $v0
/* 0D86A8 8031D6A8 00029E00 */ sll $s3, $v0, 0x18
/* 0D86AC 8031D6AC 00136603 */ sra $t4, $s3, 0x18
/* 0D86B0 8031D6B0 1000FEA4 */ b .L8031D144
/* 0D86B4 8031D6B4 01809825 */ move $s3, $t4
.L8031D6B8:
/* 0D86B8 8031D6B8 00137600 */ sll $t6, $s3, 0x18
/* 0D86BC 8031D6BC 1000FEA1 */ b .L8031D144
/* 0D86C0 8031D6C0 000E9E03 */ sra $s3, $t6, 0x18
glabel L_U_8031D6C4
/* 0D86C4 8031D6C4 0C0C700F */ jal func_8031B01C
/* 0D86C8 8031D6C8 02002025 */ move $a0, $s0
/* 0D86CC 8031D6CC 1000FE9D */ b .L8031D144
/* 0D86D0 8031D6D0 A2420002 */ sb $v0, 2($s2)
glabel L_U_8031D6D4
/* 0D86D4 8031D6D4 0C0C7014 */ jal func_8031B030
/* 0D86D8 8031D6D8 02002025 */ move $a0, $s0
/* 0D86DC 8031D6DC 8E890014 */ lw $t1, 0x14($s4)
/* 0D86E0 8031D6E0 304AFFFF */ andi $t2, $v0, 0xffff
/* 0D86E4 8031D6E4 01535821 */ addu $t3, $t2, $s3
/* 0D86E8 8031D6E8 012BC021 */ addu $t8, $t1, $t3
/* 0D86EC 8031D6EC 1000FE95 */ b .L8031D144
/* 0D86F0 8031D6F0 83130000 */ lb $s3, ($t8)
glabel L_U_8031D6F4
/* 0D86F4 8031D6F4 0C0C700F */ jal func_8031B01C
/* 0D86F8 8031D6F8 02002025 */ move $a0, $s0
/* 0D86FC 8031D6FC 924E0000 */ lbu $t6, ($s2)
/* 0D8700 8031D700 00026880 */ sll $t5, $v0, 2
/* 0D8704 8031D704 31AF0004 */ andi $t7, $t5, 4
/* 0D8708 8031D708 31D9FFFB */ andi $t9, $t6, 0xfffb
/* 0D870C 8031D70C 01F95025 */ or $t2, $t7, $t9
/* 0D8710 8031D710 1000FE8C */ b .L8031D144
/* 0D8714 8031D714 A24A0000 */ sb $t2, ($s2)
glabel L_U_8031D718
/* 0D8718 8031D718 0C0C700F */ jal func_8031B01C
/* 0D871C 8031D71C 02002025 */ move $a0, $s0
/* 0D8720 8031D720 1000FE88 */ b .L8031D144
/* 0D8724 8031D724 A2420001 */ sb $v0, 1($s2)
glabel L_U_8031D728
/* 0D8728 8031D728 0C0C700F */ jal func_8031B01C
/* 0D872C 8031D72C 02002025 */ move $a0, $s0
/* 0D8730 8031D730 00024A00 */ sll $t1, $v0, 8
/* 0D8734 8031D734 1000FE83 */ b .L8031D144
/* 0D8738 8031D738 A649007A */ sh $t1, 0x7a($s2)
glabel L_U_8031D73C
/* 0D873C 8031D73C 1275FE81 */ beq $s3, $s5, .L8031D144
/* 0D8740 8031D740 0013C040 */ sll $t8, $s3, 1
/* 0D8744 8031D744 920C0018 */ lbu $t4, 0x18($s0)
/* 0D8748 8031D748 8E4B0030 */ lw $t3, 0x30($s2)
/* 0D874C 8031D74C 8E0E0000 */ lw $t6, ($s0)
/* 0D8750 8031D750 258D0001 */ addiu $t5, $t4, 1
/* 0D8754 8031D754 31AF00FF */ andi $t7, $t5, 0xff
/* 0D8758 8031D758 000FC880 */ sll $t9, $t7, 2
/* 0D875C 8031D75C 02195021 */ addu $t2, $s0, $t9
/* 0D8760 8031D760 A20D0018 */ sb $t5, 0x18($s0)
/* 0D8764 8031D764 01781021 */ addu $v0, $t3, $t8
/* 0D8768 8031D768 AD4E0000 */ sw $t6, ($t2)
/* 0D876C 8031D76C 904B0000 */ lbu $t3, ($v0)
/* 0D8770 8031D770 90490001 */ lbu $t1, 1($v0)
/* 0D8774 8031D774 8E8D0014 */ lw $t5, 0x14($s4)
/* 0D8778 8031D778 000BC200 */ sll $t8, $t3, 8
/* 0D877C 8031D77C 01383821 */ addu $a3, $t1, $t8
/* 0D8780 8031D780 30ECFFFF */ andi $t4, $a3, 0xffff
/* 0D8784 8031D784 01AC7821 */ addu $t7, $t5, $t4
/* 0D8788 8031D788 1000FE6E */ b .L8031D144
/* 0D878C 8031D78C AE0F0000 */ sw $t7, ($s0)
.L8031D790:
/* 0D8790 8031D790 3064000F */ andi $a0, $v1, 0xf
/* 0D8794 8031D794 2F2100B1 */ sltiu $at, $t9, 0xb1
/* 0D8798 8031D798 1020FE6A */ beqz $at, .L8031D144
/* 0D879C 8031D79C 308800FF */ andi $t0, $a0, 0xff
/* 0D87A0 8031D7A0 0019C880 */ sll $t9, $t9, 2
/* 0D87A4 8031D7A4 3C018034 */ lui $at, %hi(jtbl_80337E04)
/* 0D87A8 8031D7A8 00390821 */ addu $at, $at, $t9
/* 0D87AC 8031D7AC 8C398FBC */ lw $t9, %lo(jtbl_80337E04)($at)
/* 0D87B0 8031D7B0 03200008 */ jr $t9
/* 0D87B4 8031D7B4 00000000 */ nop
glabel L_U_8031D7B8
/* 0D87B8 8031D7B8 308E00FF */ andi $t6, $a0, 0xff
/* 0D87BC 8031D7BC 000E5080 */ sll $t2, $t6, 2
/* 0D87C0 8031D7C0 024A5821 */ addu $t3, $s2, $t2
/* 0D87C4 8031D7C4 8D630044 */ lw $v1, 0x44($t3)
/* 0D87C8 8031D7C8 1060FE5E */ beqz $v1, .L8031D144
/* 0D87CC 8031D7CC 00000000 */ nop
/* 0D87D0 8031D7D0 8C730000 */ lw $s3, ($v1)
/* 0D87D4 8031D7D4 00134840 */ sll $t1, $s3, 1
/* 0D87D8 8031D7D8 0009C7C2 */ srl $t8, $t1, 0x1f
/* 0D87DC 8031D7DC 00186600 */ sll $t4, $t8, 0x18
/* 0D87E0 8031D7E0 1000FE58 */ b .L8031D144
/* 0D87E4 8031D7E4 000C9E03 */ sra $s3, $t4, 0x18
glabel L_U_8031D7E8
/* 0D87E8 8031D7E8 308F00FF */ andi $t7, $a0, 0xff
/* 0D87EC 8031D7EC 024FC821 */ addu $t9, $s2, $t7
/* 0D87F0 8031D7F0 1000FE54 */ b .L8031D144
/* 0D87F4 8031D7F4 A3330054 */ sb $s3, 0x54($t9)
glabel L_U_8031D7F8
/* 0D87F8 8031D7F8 308300FF */ andi $v1, $a0, 0xff
/* 0D87FC 8031D7FC 02432821 */ addu $a1, $s2, $v1
/* 0D8800 8031D800 28610004 */ slti $at, $v1, 4
/* 0D8804 8031D804 1020FE4F */ beqz $at, .L8031D144
/* 0D8808 8031D808 80B30054 */ lb $s3, 0x54($a1)
/* 0D880C 8031D80C 1000FE4D */ b .L8031D144
/* 0D8810 8031D810 A0B50054 */ sb $s5, 0x54($a1)
glabel L_U_8031D814
/* 0D8814 8031D814 308E00FF */ andi $t6, $a0, 0xff
/* 0D8818 8031D818 024E5021 */ addu $t2, $s2, $t6
/* 0D881C 8031D81C 814B0054 */ lb $t3, 0x54($t2)
/* 0D8820 8031D820 026B9823 */ subu $s3, $s3, $t3
/* 0D8824 8031D824 00134E00 */ sll $t1, $s3, 0x18
/* 0D8828 8031D828 1000FE46 */ b .L8031D144
/* 0D882C 8031D82C 00099E03 */ sra $s3, $t1, 0x18
glabel L_U_8031D830
/* 0D8830 8031D830 0C0C7014 */ jal func_8031B030
/* 0D8834 8031D834 02002025 */ move $a0, $s0
/* 0D8838 8031D838 02201825 */ move $v1, $s1
/* 0D883C 8031D83C 3065000F */ andi $a1, $v1, 0xf
/* 0D8840 8031D840 00A01825 */ move $v1, $a1
/* 0D8844 8031D844 AFA50030 */ sw $a1, 0x30($sp)
/* 0D8848 8031D848 02402025 */ move $a0, $s2
/* 0D884C 8031D84C 0C0C6E50 */ jal func_8031A920
/* 0D8850 8031D850 A7A20052 */ sh $v0, 0x52($sp)
/* 0D8854 8031D854 8FA30030 */ lw $v1, 0x30($sp)
/* 0D8858 8031D858 1440FE3A */ bnez $v0, .L8031D144
/* 0D885C 8031D85C 97A70052 */ lhu $a3, 0x52($sp)
/* 0D8860 8031D860 8E8D0014 */ lw $t5, 0x14($s4)
/* 0D8864 8031D864 0003C880 */ sll $t9, $v1, 2
/* 0D8868 8031D868 02597021 */ addu $t6, $s2, $t9
/* 0D886C 8031D86C 8DCA0044 */ lw $t2, 0x44($t6)
/* 0D8870 8031D870 01A77821 */ addu $t7, $t5, $a3
/* 0D8874 8031D874 1000FE33 */ b .L8031D144
/* 0D8878 8031D878 AD4F0054 */ sw $t7, 0x54($t2)
glabel L_U_8031D87C
/* 0D887C 8031D87C 02202825 */ move $a1, $s1
/* 0D8880 8031D880 30AB000F */ andi $t3, $a1, 0xf
/* 0D8884 8031D884 01602825 */ move $a1, $t3
/* 0D8888 8031D888 0C0C6E9B */ jal func_8031AA4C
/* 0D888C 8031D88C 02402025 */ move $a0, $s2
/* 0D8890 8031D890 1000FE2C */ b .L8031D144
/* 0D8894 8031D894 00000000 */ nop
glabel L_U_8031D898
/* 0D8898 8031D898 1275FE2A */ beq $s3, $s5, .L8031D144
/* 0D889C 8031D89C 02402025 */ move $a0, $s2
/* 0D88A0 8031D8A0 02201825 */ move $v1, $s1
/* 0D88A4 8031D8A4 3065000F */ andi $a1, $v1, 0xf
/* 0D88A8 8031D8A8 00A01825 */ move $v1, $a1
/* 0D88AC 8031D8AC 0C0C6E50 */ jal func_8031A920
/* 0D88B0 8031D8B0 AFA50030 */ sw $a1, 0x30($sp)
/* 0D88B4 8031D8B4 1055FE23 */ beq $v0, $s5, .L8031D144
/* 0D88B8 8031D8B8 8FA30030 */ lw $v1, 0x30($sp)
/* 0D88BC 8031D8BC 8E580030 */ lw $t8, 0x30($s2)
/* 0D88C0 8031D8C0 00136040 */ sll $t4, $s3, 1
/* 0D88C4 8031D8C4 8E8A0014 */ lw $t2, 0x14($s4)
/* 0D88C8 8031D8C8 030C1021 */ addu $v0, $t8, $t4
/* 0D88CC 8031D8CC 90590000 */ lbu $t9, ($v0)
/* 0D88D0 8031D8D0 904D0001 */ lbu $t5, 1($v0)
/* 0D88D4 8031D8D4 00034880 */ sll $t1, $v1, 2
/* 0D88D8 8031D8D8 00197200 */ sll $t6, $t9, 8
/* 0D88DC 8031D8DC 0249C021 */ addu $t8, $s2, $t1
/* 0D88E0 8031D8E0 01AE3821 */ addu $a3, $t5, $t6
/* 0D88E4 8031D8E4 8F0C0044 */ lw $t4, 0x44($t8)
/* 0D88E8 8031D8E8 30EFFFFF */ andi $t7, $a3, 0xffff
/* 0D88EC 8031D8EC 014F5821 */ addu $t3, $t2, $t7
/* 0D88F0 8031D8F0 1000FE14 */ b .L8031D144
/* 0D88F4 8031D8F4 AD8B0054 */ sw $t3, 0x54($t4)
glabel L_U_8031D8F8
/* 0D88F8 8031D8F8 1000FE12 */ b .L8031D144
/* 0D88FC 8031D8FC A2440004 */ sb $a0, 4($s2)
glabel L_U_8031D900
/* 0D8900 8031D900 0C0C7014 */ jal func_8031B030
/* 0D8904 8031D904 02002025 */ move $a0, $s0
/* 0D8908 8031D908 8E8D0014 */ lw $t5, 0x14($s4)
/* 0D890C 8031D90C 02202825 */ move $a1, $s1
/* 0D8910 8031D910 30B9000F */ andi $t9, $a1, 0xf
/* 0D8914 8031D914 304EFFFF */ andi $t6, $v0, 0xffff
/* 0D8918 8031D918 03202825 */ move $a1, $t9
/* 0D891C 8031D91C 02802025 */ move $a0, $s4
/* 0D8920 8031D920 0C0C6F68 */ jal func_8031AD80
/* 0D8924 8031D924 01AE3021 */ addu $a2, $t5, $t6
/* 0D8928 8031D928 1000FE06 */ b .L8031D144
/* 0D892C 8031D92C 00000000 */ nop
glabel L_U_8031D930
/* 0D8930 8031D930 322A000F */ andi $t2, $s1, 0xf
/* 0D8934 8031D934 000A4880 */ sll $t1, $t2, 2
/* 0D8938 8031D938 0289C021 */ addu $t8, $s4, $t1
/* 0D893C 8031D93C 0C0C6EBC */ jal func_8031AAD0
/* 0D8940 8031D940 8F04002C */ lw $a0, 0x2c($t8)
/* 0D8944 8031D944 1000FDFF */ b .L8031D144
/* 0D8948 8031D948 00000000 */ nop
glabel L_U_8031D94C
/* 0D894C 8031D94C 02002025 */ move $a0, $s0
/* 0D8950 8031D950 0C0C700F */ jal func_8031B01C
/* 0D8954 8031D954 A3A80055 */ sb $t0, 0x55($sp)
/* 0D8958 8031D958 93A80055 */ lbu $t0, 0x55($sp)
/* 0D895C 8031D95C 00085880 */ sll $t3, $t0, 2
/* 0D8960 8031D960 028B6021 */ addu $t4, $s4, $t3
/* 0D8964 8031D964 8D99002C */ lw $t9, 0x2c($t4)
/* 0D8968 8031D968 03226821 */ addu $t5, $t9, $v0
/* 0D896C 8031D96C 1000FDF5 */ b .L8031D144
/* 0D8970 8031D970 A1B30054 */ sb $s3, 0x54($t5)
glabel L_U_8031D974
/* 0D8974 8031D974 02002025 */ move $a0, $s0
/* 0D8978 8031D978 0C0C700F */ jal func_8031B01C
/* 0D897C 8031D97C A3A80055 */ sb $t0, 0x55($sp)
/* 0D8980 8031D980 93A80055 */ lbu $t0, 0x55($sp)
/* 0D8984 8031D984 00087080 */ sll $t6, $t0, 2
/* 0D8988 8031D988 028E7821 */ addu $t7, $s4, $t6
/* 0D898C 8031D98C 8DEA002C */ lw $t2, 0x2c($t7)
/* 0D8990 8031D990 01424821 */ addu $t1, $t2, $v0
/* 0D8994 8031D994 1000FDEB */ b .L8031D144
/* 0D8998 8031D998 81330054 */ lb $s3, 0x54($t1)
.L8031D99C:
/* 0D899C 8031D99C 02408825 */ move $s1, $s2
.L8031D9A0:
/* 0D89A0 8031D9A0 24120010 */ li $s2, 16
/* 0D89A4 8031D9A4 00008025 */ move $s0, $zero
.L8031D9A8:
/* 0D89A8 8031D9A8 8E240044 */ lw $a0, 0x44($s1)
/* 0D89AC 8031D9AC 50800004 */ beql $a0, $zero, .L8031D9C0
/* 0D89B0 8031D9B0 26100004 */ addiu $s0, $s0, 4
/* 0D89B4 8031D9B4 0C0C7031 */ jal func_8031B0A4
/* 0D89B8 8031D9B8 00000000 */ nop
/* 0D89BC 8031D9BC 26100004 */ addiu $s0, $s0, 4
.L8031D9C0:
/* 0D89C0 8031D9C0 1612FFF9 */ bne $s0, $s2, .L8031D9A8
/* 0D89C4 8031D9C4 26310004 */ addiu $s1, $s1, 4
.L8031D9C8:
/* 0D89C8 8031D9C8 8FBF002C */ lw $ra, 0x2c($sp)
.L8031D9CC:
/* 0D89CC 8031D9CC 8FB00014 */ lw $s0, 0x14($sp)
/* 0D89D0 8031D9D0 8FB10018 */ lw $s1, 0x18($sp)
/* 0D89D4 8031D9D4 8FB2001C */ lw $s2, 0x1c($sp)
/* 0D89D8 8031D9D8 8FB30020 */ lw $s3, 0x20($sp)
/* 0D89DC 8031D9DC 8FB40024 */ lw $s4, 0x24($sp)
/* 0D89E0 8031D9E0 8FB50028 */ lw $s5, 0x28($sp)
/* 0D89E4 8031D9E4 03E00008 */ jr $ra
/* 0D89E8 8031D9E8 27BD0060 */ addiu $sp, $sp, 0x60