oot/asm/non_matchings/code/code_800E88C0/func_800E9004.s

250 lines
11 KiB
ArmAsm

.late_rodata
glabel jtbl_801495F0
.word L800E9034
.word L800E9040
.word L800E9060
.word L800E9070
.word L800E91B0
.word L800E92A0
.word L800E91E8
.word L800E91E8
.word L800E9278
glabel D_80149614
.float 32767
glabel D_80149618
.float 1.0E-5
.text
glabel func_800E9004
/* B601A4 800E9004 90830000 */ lbu $v1, ($a0)
/* B601A8 800E9008 00601025 */ move $v0, $v1
/* B601AC 800E900C 3042000F */ andi $v0, $v0, 0xf
/* B601B0 800E9010 2C410009 */ sltiu $at, $v0, 9
/* B601B4 800E9014 102000A2 */ beqz $at, .L800E92A0
/* B601B8 800E9018 00402825 */ move $a1, $v0
/* B601BC 800E901C 00027080 */ sll $t6, $v0, 2
/* B601C0 800E9020 3C018015 */ lui $at, %hi(jtbl_801495F0)
/* B601C4 800E9024 002E0821 */ addu $at, $at, $t6
/* B601C8 800E9028 8C2E95F0 */ lw $t6, %lo(jtbl_801495F0)($at)
/* B601CC 800E902C 01C00008 */ jr $t6
/* B601D0 800E9030 00000000 */ nop
glabel L800E9034
/* B601D4 800E9034 44800000 */ mtc1 $zero, $f0
/* B601D8 800E9038 03E00008 */ jr $ra
/* B601DC 800E903C 00000000 */ nop
glabel L800E9040
/* B601E0 800E9040 8C8F0000 */ lw $t7, ($a0)
/* B601E4 800E9044 3068FFF0 */ andi $t0, $v1, 0xfff0
/* B601E8 800E9048 35090005 */ ori $t1, $t0, 5
/* B601EC 800E904C 000FC840 */ sll $t9, $t7, 1
/* B601F0 800E9050 07230004 */ bgezl $t9, .L800E9064
/* B601F4 800E9054 306AFFF0 */ andi $t2, $v1, 0xfff0
/* B601F8 800E9058 10000091 */ b .L800E92A0
/* B601FC 800E905C A0890000 */ sb $t1, ($a0)
glabel L800E9060
/* B60200 800E9060 306AFFF0 */ andi $t2, $v1, 0xfff0
.L800E9064:
/* B60204 800E9064 354B0003 */ ori $t3, $t2, 3
/* B60208 800E9068 A0800001 */ sb $zero, 1($a0)
/* B6020C 800E906C A08B0000 */ sb $t3, ($a0)
.L800E9070:
glabel L800E9070
/* B60210 800E9070 908D0001 */ lbu $t5, 1($a0)
/* B60214 800E9074 8C8C001C */ lw $t4, 0x1c($a0)
/* B60218 800E9078 2401FFFD */ li $at, -3
/* B6021C 800E907C 000D7080 */ sll $t6, $t5, 2
/* B60220 800E9080 018E1021 */ addu $v0, $t4, $t6
/* B60224 800E9084 844F0000 */ lh $t7, ($v0)
/* B60228 800E9088 A48F0002 */ sh $t7, 2($a0)
/* B6022C 800E908C 84850002 */ lh $a1, 2($a0)
/* B60230 800E9090 10A10013 */ beq $a1, $at, .L800E90E0
/* B60234 800E9094 2401FFFE */ li $at, -2
/* B60238 800E9098 10A1000E */ beq $a1, $at, .L800E90D4
/* B6023C 800E909C 2401FFFF */ li $at, -1
/* B60240 800E90A0 50A10008 */ beql $a1, $at, .L800E90C4
/* B60244 800E90A4 90880000 */ lbu $t0, ($a0)
/* B60248 800E90A8 54A00013 */ bnezl $a1, .L800E90F8
/* B6024C 800E90AC 44852000 */ mtc1 $a1, $f4
/* B60250 800E90B0 90980000 */ lbu $t8, ($a0)
/* B60254 800E90B4 3319FFF0 */ andi $t9, $t8, 0xfff0
/* B60258 800E90B8 10000038 */ b .L800E919C
/* B6025C 800E90BC A0990000 */ sb $t9, ($a0)
/* B60260 800E90C0 90880000 */ lbu $t0, ($a0)
.L800E90C4:
/* B60264 800E90C4 3109FFF0 */ andi $t1, $t0, 0xfff0
/* B60268 800E90C8 352A0005 */ ori $t2, $t1, 5
/* B6026C 800E90CC 10000033 */ b .L800E919C
/* B60270 800E90D0 A08A0000 */ sb $t2, ($a0)
.L800E90D4:
/* B60274 800E90D4 844B0002 */ lh $t3, 2($v0)
/* B60278 800E90D8 1000FFE5 */ b .L800E9070
/* B6027C 800E90DC A08B0001 */ sb $t3, 1($a0)
.L800E90E0:
/* B60280 800E90E0 908D0000 */ lbu $t5, ($a0)
/* B60284 800E90E4 31ACFFF0 */ andi $t4, $t5, 0xfff0
/* B60288 800E90E8 358E0001 */ ori $t6, $t4, 1
/* B6028C 800E90EC 1000002B */ b .L800E919C
/* B60290 800E90F0 A08E0000 */ sb $t6, ($a0)
/* B60294 800E90F4 44852000 */ mtc1 $a1, $f4
.L800E90F8:
/* B60298 800E90F8 3C018017 */ lui $at, %hi(D_801719EC)
/* B6029C 800E90FC C42819EC */ lwc1 $f8, %lo(D_801719EC)($at)
/* B602A0 800E9100 468021A0 */ cvt.s.w $f6, $f4
/* B602A4 800E9104 24190001 */ li $t9, 1
/* B602A8 800E9108 46083282 */ mul.s $f10, $f6, $f8
/* B602AC 800E910C 4600540D */ trunc.w.s $f16, $f10
/* B602B0 800E9110 44188000 */ mfc1 $t8, $f16
/* B602B4 800E9114 00000000 */ nop
/* B602B8 800E9118 A4980002 */ sh $t8, 2($a0)
/* B602BC 800E911C 84850002 */ lh $a1, 2($a0)
/* B602C0 800E9120 54A00004 */ bnezl $a1, .L800E9134
/* B602C4 800E9124 90820001 */ lbu $v0, 1($a0)
/* B602C8 800E9128 A4990002 */ sh $t9, 2($a0)
/* B602CC 800E912C 84850002 */ lh $a1, 2($a0)
/* B602D0 800E9130 90820001 */ lbu $v0, 1($a0)
.L800E9134:
/* B602D4 800E9134 8C88001C */ lw $t0, 0x1c($a0)
/* B602D8 800E9138 3C018015 */ lui $at, %hi(D_80149614)
/* B602DC 800E913C 00024880 */ sll $t1, $v0, 2
/* B602E0 800E9140 01095021 */ addu $t2, $t0, $t1
/* B602E4 800E9144 854B0002 */ lh $t3, 2($t2)
/* B602E8 800E9148 C4269614 */ lwc1 $f6, %lo(D_80149614)($at)
/* B602EC 800E914C 908D0000 */ lbu $t5, ($a0)
/* B602F0 800E9150 448B9000 */ mtc1 $t3, $f18
/* B602F4 800E9154 244F0001 */ addiu $t7, $v0, 1
/* B602F8 800E9158 31ACFFF0 */ andi $t4, $t5, 0xfff0
/* B602FC 800E915C 46809120 */ cvt.s.w $f4, $f18
/* B60300 800E9160 C4920010 */ lwc1 $f18, 0x10($a0)
/* B60304 800E9164 358E0004 */ ori $t6, $t4, 4
/* B60308 800E9168 A08E0000 */ sb $t6, ($a0)
/* B6030C 800E916C A08F0001 */ sb $t7, 1($a0)
/* B60310 800E9170 46062203 */ div.s $f8, $f4, $f6
/* B60314 800E9174 44853000 */ mtc1 $a1, $f6
/* B60318 800E9178 E4880014 */ swc1 $f8, 0x14($a0)
/* B6031C 800E917C C4800014 */ lwc1 $f0, 0x14($a0)
/* B60320 800E9180 46803220 */ cvt.s.w $f8, $f6
/* B60324 800E9184 46000282 */ mul.s $f10, $f0, $f0
/* B60328 800E9188 E48A0014 */ swc1 $f10, 0x14($a0)
/* B6032C 800E918C C4900014 */ lwc1 $f16, 0x14($a0)
/* B60330 800E9190 46128101 */ sub.s $f4, $f16, $f18
/* B60334 800E9194 46082283 */ div.s $f10, $f4, $f8
/* B60338 800E9198 E48A0008 */ swc1 $f10, 8($a0)
.L800E919C:
/* B6033C 800E919C 90980000 */ lbu $t8, ($a0)
/* B60340 800E91A0 24010004 */ li $at, 4
/* B60344 800E91A4 3319000F */ andi $t9, $t8, 0xf
/* B60348 800E91A8 5721003E */ bnel $t9, $at, .L800E92A4
/* B6034C 800E91AC 8C820000 */ lw $v0, ($a0)
glabel L800E91B0
/* B60350 800E91B0 84880002 */ lh $t0, 2($a0)
/* B60354 800E91B4 C4900010 */ lwc1 $f16, 0x10($a0)
/* B60358 800E91B8 C4920008 */ lwc1 $f18, 8($a0)
/* B6035C 800E91BC 2509FFFF */ addiu $t1, $t0, -1
/* B60360 800E91C0 A4890002 */ sh $t1, 2($a0)
/* B60364 800E91C4 46128180 */ add.s $f6, $f16, $f18
/* B60368 800E91C8 848A0002 */ lh $t2, 2($a0)
/* B6036C 800E91CC 1D400034 */ bgtz $t2, .L800E92A0
/* B60370 800E91D0 E4860010 */ swc1 $f6, 0x10($a0)
/* B60374 800E91D4 908B0000 */ lbu $t3, ($a0)
/* B60378 800E91D8 316DFFF0 */ andi $t5, $t3, 0xfff0
/* B6037C 800E91DC 35AC0003 */ ori $t4, $t5, 3
/* B60380 800E91E0 1000002F */ b .L800E92A0
/* B60384 800E91E4 A08C0000 */ sb $t4, ($a0)
glabel L800E91E8
/* B60388 800E91E8 44806000 */ mtc1 $zero, $f12
/* B6038C 800E91EC C4800004 */ lwc1 $f0, 4($a0)
/* B60390 800E91F0 C4840010 */ lwc1 $f4, 0x10($a0)
/* B60394 800E91F4 C488000C */ lwc1 $f8, 0xc($a0)
/* B60398 800E91F8 46006032 */ c.eq.s $f12, $f0
/* B6039C 800E91FC 24010006 */ li $at, 6
/* B603A0 800E9200 46082281 */ sub.s $f10, $f4, $f8
/* B603A4 800E9204 45010010 */ bc1t .L800E9248
/* B603A8 800E9208 E48A0010 */ swc1 $f10, 0x10($a0)
/* B603AC 800E920C 14A1000E */ bne $a1, $at, .L800E9248
/* B603B0 800E9210 00000000 */ nop
/* B603B4 800E9214 C4900010 */ lwc1 $f16, 0x10($a0)
/* B603B8 800E9218 240E0080 */ li $t6, 128
/* B603BC 800E921C 4600803C */ c.lt.s $f16, $f0
/* B603C0 800E9220 00000000 */ nop
/* B603C4 800E9224 4502001F */ bc1fl .L800E92A4
/* B603C8 800E9228 8C820000 */ lw $v0, ($a0)
/* B603CC 800E922C 908F0000 */ lbu $t7, ($a0)
/* B603D0 800E9230 E4800010 */ swc1 $f0, 0x10($a0)
/* B603D4 800E9234 A48E0002 */ sh $t6, 2($a0)
/* B603D8 800E9238 31F8FFF0 */ andi $t8, $t7, 0xfff0
/* B603DC 800E923C 37190008 */ ori $t9, $t8, 8
/* B603E0 800E9240 10000017 */ b .L800E92A0
/* B603E4 800E9244 A0990000 */ sb $t9, ($a0)
.L800E9248:
/* B603E8 800E9248 3C018015 */ lui $at, %hi(D_80149618)
/* B603EC 800E924C C4269618 */ lwc1 $f6, %lo(D_80149618)($at)
/* B603F0 800E9250 C4920010 */ lwc1 $f18, 0x10($a0)
/* B603F4 800E9254 4606903C */ c.lt.s $f18, $f6
/* B603F8 800E9258 00000000 */ nop
/* B603FC 800E925C 45020011 */ bc1fl .L800E92A4
/* B60400 800E9260 8C820000 */ lw $v0, ($a0)
/* B60404 800E9264 90880000 */ lbu $t0, ($a0)
/* B60408 800E9268 E48C0010 */ swc1 $f12, 0x10($a0)
/* B6040C 800E926C 3109FFF0 */ andi $t1, $t0, 0xfff0
/* B60410 800E9270 1000000B */ b .L800E92A0
/* B60414 800E9274 A0890000 */ sb $t1, ($a0)
glabel L800E9278
/* B60418 800E9278 848A0002 */ lh $t2, 2($a0)
/* B6041C 800E927C 254BFFFF */ addiu $t3, $t2, -1
/* B60420 800E9280 A48B0002 */ sh $t3, 2($a0)
/* B60424 800E9284 848D0002 */ lh $t5, 2($a0)
/* B60428 800E9288 55A00006 */ bnezl $t5, .L800E92A4
/* B6042C 800E928C 8C820000 */ lw $v0, ($a0)
/* B60430 800E9290 908C0000 */ lbu $t4, ($a0)
/* B60434 800E9294 318EFFF0 */ andi $t6, $t4, 0xfff0
/* B60438 800E9298 35CF0007 */ ori $t7, $t6, 7
/* B6043C 800E929C A08F0000 */ sb $t7, ($a0)
.L800E92A0:
glabel L800E92A0
/* B60440 800E92A0 8C820000 */ lw $v0, ($a0)
.L800E92A4:
/* B60444 800E92A4 44806000 */ mtc1 $zero, $f12
/* B60448 800E92A8 3C013F80 */ li $at, 0x3F800000 # 0.000000
/* B6044C 800E92AC 0002C880 */ sll $t9, $v0, 2
/* B60450 800E92B0 07230009 */ bgezl $t9, .L800E92D8
/* B60454 800E92B4 000270C0 */ sll $t6, $v0, 3
/* B60458 800E92B8 90880000 */ lbu $t0, ($a0)
/* B6045C 800E92BC 3109FFF0 */ andi $t1, $t0, 0xfff0
/* B60460 800E92C0 352B0006 */ ori $t3, $t1, 6
/* B60464 800E92C4 A08B0000 */ sb $t3, ($a0)
/* B60468 800E92C8 316D00DF */ andi $t5, $t3, 0xdf
/* B6046C 800E92CC A08D0000 */ sb $t5, ($a0)
/* B60470 800E92D0 8C820000 */ lw $v0, ($a0)
/* B60474 800E92D4 000270C0 */ sll $t6, $v0, 3
.L800E92D8:
/* B60478 800E92D8 05C30008 */ bgezl $t6, .L800E92FC
/* B6047C 800E92DC C4820010 */ lwc1 $f2, 0x10($a0)
/* B60480 800E92E0 908F0000 */ lbu $t7, ($a0)
/* B60484 800E92E4 31F8FFF0 */ andi $t8, $t7, 0xfff0
/* B60488 800E92E8 37080007 */ ori $t0, $t8, 7
/* B6048C 800E92EC A0880000 */ sb $t0, ($a0)
/* B60490 800E92F0 310900EF */ andi $t1, $t0, 0xef
/* B60494 800E92F4 A0890000 */ sb $t1, ($a0)
/* B60498 800E92F8 C4820010 */ lwc1 $f2, 0x10($a0)
.L800E92FC:
/* B6049C 800E92FC 460C103C */ c.lt.s $f2, $f12
/* B604A0 800E9300 00000000 */ nop
/* B604A4 800E9304 45020004 */ bc1fl .L800E9318
/* B604A8 800E9308 44816000 */ mtc1 $at, $f12
/* B604AC 800E930C 03E00008 */ jr $ra
/* B604B0 800E9310 46006006 */ mov.s $f0, $f12
/* B604B4 800E9314 44816000 */ mtc1 $at, $f12
.L800E9318:
/* B604B8 800E9318 00000000 */ nop
/* B604BC 800E931C 4602603C */ c.lt.s $f12, $f2
/* B604C0 800E9320 00000000 */ nop
/* B604C4 800E9324 45020004 */ bc1fl .L800E9338
/* B604C8 800E9328 46001006 */ mov.s $f0, $f2
/* B604CC 800E932C 03E00008 */ jr $ra
/* B604D0 800E9330 46006006 */ mov.s $f0, $f12
/* B604D4 800E9334 46001006 */ mov.s $f0, $f2
.L800E9338:
/* B604D8 800E9338 03E00008 */ jr $ra
/* B604DC 800E933C 00000000 */ nop