1
0
Fork 0
mirror of https://github.com/zeldaret/oot.git synced 2024-11-25 09:45:02 +00:00
oot/asm/code_800E88C0.s
2020-03-17 00:31:30 -04:00

764 lines
35 KiB
ArmAsm

.include "macro.inc"
# assembler directives
.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
.set gp=64 # allow use of 64-bit general purposee registers
.section .text
.align 4
glabel func_800E88C0
/* B5FA60 800E88C0 8C820000 */ lw $v0, ($a0)
/* B5FA64 800E88C4 00803825 */ move $a3, $a0
/* B5FA68 800E88C8 24090010 */ li $t1, 16
/* B5FA6C 800E88CC 00027A40 */ sll $t7, $v0, 9
/* B5FA70 800E88D0 05E00003 */ bltz $t7, .L800E88E0
/* B5FA74 800E88D4 24080080 */ li $t0, 128
/* B5FA78 800E88D8 50A00016 */ beql $a1, $zero, .L800E8934
/* B5FA7C 800E88DC 00027280 */ sll $t6, $v0, 0xa
.L800E88E0:
/* B5FA80 800E88E0 C484002C */ lwc1 $f4, 0x2c($a0)
/* B5FA84 800E88E4 C4860028 */ lwc1 $f6, 0x28($a0)
/* B5FA88 800E88E8 8C82004C */ lw $v0, 0x4c($a0)
/* B5FA8C 800E88EC 46062202 */ mul.s $f8, $f4, $f6
/* B5FA90 800E88F0 C44A0030 */ lwc1 $f10, 0x30($v0)
/* B5FA94 800E88F4 8C580000 */ lw $t8, ($v0)
/* B5FA98 800E88F8 00185080 */ sll $t2, $t8, 2
/* B5FA9C 800E88FC 460A4002 */ mul.s $f0, $f8, $f10
/* B5FAA0 800E8900 05410008 */ bgez $t2, .L800E8924
/* B5FAA4 800E8904 00000000 */ nop
/* B5FAA8 800E8908 908B0003 */ lbu $t3, 3($a0)
/* B5FAAC 800E890C 316C0020 */ andi $t4, $t3, 0x20
/* B5FAB0 800E8910 11800004 */ beqz $t4, .L800E8924
/* B5FAB4 800E8914 00000000 */ nop
/* B5FAB8 800E8918 C4500028 */ lwc1 $f16, 0x28($v0)
/* B5FABC 800E891C 46008002 */ mul.s $f0, $f16, $f0
/* B5FAC0 800E8920 00000000 */ nop
.L800E8924:
/* B5FAC4 800E8924 46000482 */ mul.s $f18, $f0, $f0
/* B5FAC8 800E8928 8C820000 */ lw $v0, ($a0)
/* B5FACC 800E892C E4920034 */ swc1 $f18, 0x34($a0)
/* B5FAD0 800E8930 00027280 */ sll $t6, $v0, 0xa
.L800E8934:
/* B5FAD4 800E8934 05C10007 */ bgez $t6, .L800E8954
/* B5FAD8 800E8938 00000000 */ nop
/* B5FADC 800E893C 908F000A */ lbu $t7, 0xa($a0)
/* B5FAE0 800E8940 9098000B */ lbu $t8, 0xb($a0)
/* B5FAE4 800E8944 01F80019 */ multu $t7, $t8
/* B5FAE8 800E8948 0000C812 */ mflo $t9
/* B5FAEC 800E894C AC990030 */ sw $t9, 0x30($a0)
/* B5FAF0 800E8950 00000000 */ nop
.L800E8954:
/* B5FAF4 800E8954 10C00008 */ beqz $a2, .L800E8978
/* B5FAF8 800E8958 C4800038 */ lwc1 $f0, 0x38($a0)
/* B5FAFC 800E895C 8C8A004C */ lw $t2, 0x4c($a0)
/* B5FB00 800E8960 908C0001 */ lbu $t4, 1($a0)
/* B5FB04 800E8964 C5440034 */ lwc1 $f4, 0x34($t2)
/* B5FB08 800E8968 358D0080 */ ori $t5, $t4, 0x80
/* B5FB0C 800E896C A08D0001 */ sb $t5, 1($a0)
/* B5FB10 800E8970 46040002 */ mul.s $f0, $f0, $f4
/* B5FB14 800E8974 00000000 */ nop
.L800E8978:
/* B5FB18 800E8978 00003025 */ move $a2, $zero
.L800E897C:
/* B5FB1C 800E897C 8CE30050 */ lw $v1, 0x50($a3)
/* B5FB20 800E8980 24C60004 */ addiu $a2, $a2, 4
/* B5FB24 800E8984 1060003C */ beqz $v1, .L800E8A78
/* B5FB28 800E8988 00000000 */ nop
/* B5FB2C 800E898C 8C6E0000 */ lw $t6, ($v1)
/* B5FB30 800E8990 000E7FC2 */ srl $t7, $t6, 0x1f
/* B5FB34 800E8994 11E00038 */ beqz $t7, .L800E8A78
/* B5FB38 800E8998 00000000 */ nop
/* B5FB3C 800E899C 8C78002C */ lw $t8, 0x2c($v1)
/* B5FB40 800E89A0 13000035 */ beqz $t8, .L800E8A78
/* B5FB44 800E89A4 00000000 */ nop
/* B5FB48 800E89A8 90620000 */ lbu $v0, ($v1)
/* B5FB4C 800E89AC 30590001 */ andi $t9, $v0, 1
/* B5FB50 800E89B0 53200015 */ beql $t9, $zero, .L800E8A08
/* B5FB54 800E89B4 808A0001 */ lb $t2, 1($a0)
/* B5FB58 800E89B8 C4660030 */ lwc1 $f6, 0x30($v1)
/* B5FB5C 800E89BC C46A0038 */ lwc1 $f10, 0x38($v1)
/* B5FB60 800E89C0 906A0006 */ lbu $t2, 6($v1)
/* B5FB64 800E89C4 46003202 */ mul.s $f8, $f6, $f0
/* B5FB68 800E89C8 3059FFFE */ andi $t9, $v0, 0xfffe
/* B5FB6C 800E89CC E4680044 */ swc1 $f8, 0x44($v1)
/* B5FB70 800E89D0 C4900034 */ lwc1 $f16, 0x34($a0)
/* B5FB74 800E89D4 46105482 */ mul.s $f18, $f10, $f16
/* B5FB78 800E89D8 E4720040 */ swc1 $f18, 0x40($v1)
/* B5FB7C 800E89DC 908B000B */ lbu $t3, 0xb($a0)
/* B5FB80 800E89E0 8C8E0030 */ lw $t6, 0x30($a0)
/* B5FB84 800E89E4 A0790000 */ sb $t9, ($v1)
/* B5FB88 800E89E8 010B6023 */ subu $t4, $t0, $t3
/* B5FB8C 800E89EC 014C0019 */ multu $t2, $t4
/* B5FB90 800E89F0 00006812 */ mflo $t5
/* B5FB94 800E89F4 01CD7821 */ addu $t7, $t6, $t5
/* B5FB98 800E89F8 000FC1C3 */ sra $t8, $t7, 7
/* B5FB9C 800E89FC 1000001E */ b .L800E8A78
/* B5FBA0 800E8A00 A0780007 */ sb $t8, 7($v1)
/* B5FBA4 800E8A04 808A0001 */ lb $t2, 1($a0)
.L800E8A08:
/* B5FBA8 800E8A08 05430005 */ bgezl $t2, .L800E8A20
/* B5FBAC 800E8A0C 8C820000 */ lw $v0, ($a0)
/* B5FBB0 800E8A10 C4640030 */ lwc1 $f4, 0x30($v1)
/* B5FBB4 800E8A14 46002182 */ mul.s $f6, $f4, $f0
/* B5FBB8 800E8A18 E4660044 */ swc1 $f6, 0x44($v1)
/* B5FBBC 800E8A1C 8C820000 */ lw $v0, ($a0)
.L800E8A20:
/* B5FBC0 800E8A20 00027240 */ sll $t6, $v0, 9
/* B5FBC4 800E8A24 05C20004 */ bltzl $t6, .L800E8A38
/* B5FBC8 800E8A28 C4680038 */ lwc1 $f8, 0x38($v1)
/* B5FBCC 800E8A2C 50A00007 */ beql $a1, $zero, .L800E8A4C
/* B5FBD0 800E8A30 00027A80 */ sll $t7, $v0, 0xa
/* B5FBD4 800E8A34 C4680038 */ lwc1 $f8, 0x38($v1)
.L800E8A38:
/* B5FBD8 800E8A38 C48A0034 */ lwc1 $f10, 0x34($a0)
/* B5FBDC 800E8A3C 460A4402 */ mul.s $f16, $f8, $f10
/* B5FBE0 800E8A40 E4700040 */ swc1 $f16, 0x40($v1)
/* B5FBE4 800E8A44 8C820000 */ lw $v0, ($a0)
/* B5FBE8 800E8A48 00027A80 */ sll $t7, $v0, 0xa
.L800E8A4C:
/* B5FBEC 800E8A4C 05E1000A */ bgez $t7, .L800E8A78
/* B5FBF0 800E8A50 00000000 */ nop
/* B5FBF4 800E8A54 9099000B */ lbu $t9, 0xb($a0)
/* B5FBF8 800E8A58 90780006 */ lbu $t8, 6($v1)
/* B5FBFC 800E8A5C 8C8C0030 */ lw $t4, 0x30($a0)
/* B5FC00 800E8A60 01195823 */ subu $t3, $t0, $t9
/* B5FC04 800E8A64 030B0019 */ multu $t8, $t3
/* B5FC08 800E8A68 00005012 */ mflo $t2
/* B5FC0C 800E8A6C 018A7021 */ addu $t6, $t4, $t2
/* B5FC10 800E8A70 000E69C3 */ sra $t5, $t6, 7
/* B5FC14 800E8A74 A06D0007 */ sb $t5, 7($v1)
.L800E8A78:
/* B5FC18 800E8A78 14C9FFC0 */ bne $a2, $t1, .L800E897C
/* B5FC1C 800E8A7C 24E70004 */ addiu $a3, $a3, 4
/* B5FC20 800E8A80 03E00008 */ jr $ra
/* B5FC24 800E8A84 A0800001 */ sb $zero, 1($a0)
glabel func_800E8A88
/* B5FC28 800E8A88 27BDFFD0 */ addiu $sp, $sp, -0x30
/* B5FC2C 800E8A8C AFBF002C */ sw $ra, 0x2c($sp)
/* B5FC30 800E8A90 AFB40028 */ sw $s4, 0x28($sp)
/* B5FC34 800E8A94 AFB30024 */ sw $s3, 0x24($sp)
/* B5FC38 800E8A98 AFB20020 */ sw $s2, 0x20($sp)
/* B5FC3C 800E8A9C AFB1001C */ sw $s1, 0x1c($sp)
/* B5FC40 800E8AA0 AFB00018 */ sw $s0, 0x18($sp)
/* B5FC44 800E8AA4 948E0012 */ lhu $t6, 0x12($a0)
/* B5FC48 800E8AA8 00809025 */ move $s2, $a0
/* B5FC4C 800E8AAC 02408825 */ move $s1, $s2
/* B5FC50 800E8AB0 11C00025 */ beqz $t6, .L800E8B48
/* B5FC54 800E8AB4 00008025 */ move $s0, $zero
/* B5FC58 800E8AB8 C484001C */ lwc1 $f4, 0x1c($a0)
/* B5FC5C 800E8ABC C4860020 */ lwc1 $f6, 0x20($a0)
/* B5FC60 800E8AC0 3C013F80 */ li $at, 0x3F800000 # 0.000000
/* B5FC64 800E8AC4 44811000 */ mtc1 $at, $f2
/* B5FC68 800E8AC8 46062200 */ add.s $f8, $f4, $f6
/* B5FC6C 800E8ACC 90980000 */ lbu $t8, ($a0)
/* B5FC70 800E8AD0 E488001C */ swc1 $f8, 0x1c($a0)
/* B5FC74 800E8AD4 C480001C */ lwc1 $f0, 0x1c($a0)
/* B5FC78 800E8AD8 37190004 */ ori $t9, $t8, 4
/* B5FC7C 800E8ADC A0990000 */ sb $t9, ($a0)
/* B5FC80 800E8AE0 4600103C */ c.lt.s $f2, $f0
/* B5FC84 800E8AE4 00000000 */ nop
/* B5FC88 800E8AE8 45020004 */ bc1fl .L800E8AFC
/* B5FC8C 800E8AEC 44801000 */ mtc1 $zero, $f2
/* B5FC90 800E8AF0 E482001C */ swc1 $f2, 0x1c($a0)
/* B5FC94 800E8AF4 C480001C */ lwc1 $f0, 0x1c($a0)
/* B5FC98 800E8AF8 44801000 */ mtc1 $zero, $f2
.L800E8AFC:
/* B5FC9C 800E8AFC 00000000 */ nop
/* B5FCA0 800E8B00 4602003C */ c.lt.s $f0, $f2
/* B5FCA4 800E8B04 00000000 */ nop
/* B5FCA8 800E8B08 45020003 */ bc1fl .L800E8B18
/* B5FCAC 800E8B0C 96480012 */ lhu $t0, 0x12($s2)
/* B5FCB0 800E8B10 E642001C */ swc1 $f2, 0x1c($s2)
/* B5FCB4 800E8B14 96480012 */ lhu $t0, 0x12($s2)
.L800E8B18:
/* B5FCB8 800E8B18 2509FFFF */ addiu $t1, $t0, -1
/* B5FCBC 800E8B1C 312AFFFF */ andi $t2, $t1, 0xffff
/* B5FCC0 800E8B20 15400009 */ bnez $t2, .L800E8B48
/* B5FCC4 800E8B24 A6490012 */ sh $t1, 0x12($s2)
/* B5FCC8 800E8B28 924B0001 */ lbu $t3, 1($s2)
/* B5FCCC 800E8B2C 24010002 */ li $at, 2
/* B5FCD0 800E8B30 55610006 */ bnel $t3, $at, .L800E8B4C
/* B5FCD4 800E8B34 8E4C0000 */ lw $t4, ($s2)
/* B5FCD8 800E8B38 0C03A6DB */ jal func_800E9B6C
/* B5FCDC 800E8B3C 02402025 */ move $a0, $s2
/* B5FCE0 800E8B40 1000001D */ b .L800E8BB8
/* B5FCE4 800E8B44 8FBF002C */ lw $ra, 0x2c($sp)
.L800E8B48:
/* B5FCE8 800E8B48 8E4C0000 */ lw $t4, ($s2)
.L800E8B4C:
/* B5FCEC 800E8B4C 24140040 */ li $s4, 64
/* B5FCF0 800E8B50 24130001 */ li $s3, 1
/* B5FCF4 800E8B54 000C7140 */ sll $t6, $t4, 5
/* B5FCF8 800E8B58 05C10005 */ bgez $t6, .L800E8B70
/* B5FCFC 800E8B5C 00000000 */ nop
/* B5FD00 800E8B60 C64A001C */ lwc1 $f10, 0x1c($s2)
/* B5FD04 800E8B64 C650002C */ lwc1 $f16, 0x2c($s2)
/* B5FD08 800E8B68 46105482 */ mul.s $f18, $f10, $f16
/* B5FD0C 800E8B6C E6520030 */ swc1 $f18, 0x30($s2)
.L800E8B70:
/* B5FD10 800E8B70 8E240038 */ lw $a0, 0x38($s1)
/* B5FD14 800E8B74 8C8F0000 */ lw $t7, ($a0)
/* B5FD18 800E8B78 000FC7C2 */ srl $t8, $t7, 0x1f
/* B5FD1C 800E8B7C 56780008 */ bnel $s3, $t8, .L800E8BA0
/* B5FD20 800E8B80 26100004 */ addiu $s0, $s0, 4
/* B5FD24 800E8B84 8E450000 */ lw $a1, ($s2)
/* B5FD28 800E8B88 92460000 */ lbu $a2, ($s2)
/* B5FD2C 800E8B8C 00052940 */ sll $a1, $a1, 5
/* B5FD30 800E8B90 00052FC2 */ srl $a1, $a1, 0x1f
/* B5FD34 800E8B94 0C03A230 */ jal func_800E88C0
/* B5FD38 800E8B98 30C60001 */ andi $a2, $a2, 1
/* B5FD3C 800E8B9C 26100004 */ addiu $s0, $s0, 4
.L800E8BA0:
/* B5FD40 800E8BA0 1614FFF3 */ bne $s0, $s4, .L800E8B70
/* B5FD44 800E8BA4 26310004 */ addiu $s1, $s1, 4
/* B5FD48 800E8BA8 92590000 */ lbu $t9, ($s2)
/* B5FD4C 800E8BAC 3328FFFB */ andi $t0, $t9, 0xfffb
/* B5FD50 800E8BB0 A2480000 */ sb $t0, ($s2)
/* B5FD54 800E8BB4 8FBF002C */ lw $ra, 0x2c($sp)
.L800E8BB8:
/* B5FD58 800E8BB8 8FB00018 */ lw $s0, 0x18($sp)
/* B5FD5C 800E8BBC 8FB1001C */ lw $s1, 0x1c($sp)
/* B5FD60 800E8BC0 8FB20020 */ lw $s2, 0x20($sp)
/* B5FD64 800E8BC4 8FB30024 */ lw $s3, 0x24($sp)
/* B5FD68 800E8BC8 8FB40028 */ lw $s4, 0x28($sp)
/* B5FD6C 800E8BCC 03E00008 */ jr $ra
/* B5FD70 800E8BD0 27BD0030 */ addiu $sp, $sp, 0x30
glabel func_800E8BD4
/* B5FD74 800E8BD4 948E0002 */ lhu $t6, 2($a0)
/* B5FD78 800E8BD8 948F0004 */ lhu $t7, 4($a0)
/* B5FD7C 800E8BDC 01CF1021 */ addu $v0, $t6, $t7
/* B5FD80 800E8BE0 A4820002 */ sh $v0, 2($a0)
/* B5FD84 800E8BE4 00021203 */ sra $v0, $v0, 8
/* B5FD88 800E8BE8 304200FF */ andi $v0, $v0, 0xff
/* B5FD8C 800E8BEC 2C41007F */ sltiu $at, $v0, 0x7f
/* B5FD90 800E8BF0 54200004 */ bnezl $at, .L800E8C04
/* B5FD94 800E8BF4 3C013F80 */ lui $at, 0x3f80
/* B5FD98 800E8BF8 2402007F */ li $v0, 127
/* B5FD9C 800E8BFC A0800000 */ sb $zero, ($a0)
/* B5FDA0 800E8C00 3C013F80 */ li $at, 0x3F800000 # 0.000000
.L800E8C04:
/* B5FDA4 800E8C04 44816000 */ mtc1 $at, $f12
/* B5FDA8 800E8C08 3C018013 */ lui $at, %hi(D_8012F2B4)
/* B5FDAC 800E8C0C 0002C880 */ sll $t9, $v0, 2
/* B5FDB0 800E8C10 00390821 */ addu $at, $at, $t9
/* B5FDB4 800E8C14 C424F2B4 */ lwc1 $f4, %lo(D_8012F2B4)($at)
/* B5FDB8 800E8C18 C4880008 */ lwc1 $f8, 8($a0)
/* B5FDBC 800E8C1C 460C2181 */ sub.s $f6, $f4, $f12
/* B5FDC0 800E8C20 46083282 */ mul.s $f10, $f6, $f8
/* B5FDC4 800E8C24 460C5080 */ add.s $f2, $f10, $f12
/* B5FDC8 800E8C28 03E00008 */ jr $ra
/* B5FDCC 800E8C2C 46001006 */ mov.s $f0, $f2
glabel func_800E8C30
/* B5FDD0 800E8C30 C4840010 */ lwc1 $f4, 0x10($a0)
/* B5FDD4 800E8C34 8C8E0004 */ lw $t6, 4($a0)
/* B5FDD8 800E8C38 8C880008 */ lw $t0, 8($a0)
/* B5FDDC 800E8C3C 4600218D */ trunc.w.s $f6, $f4
/* B5FDE0 800E8C40 44183000 */ mfc1 $t8, $f6
/* B5FDE4 800E8C44 00000000 */ nop
/* B5FDE8 800E8C48 01D8C821 */ addu $t9, $t6, $t8
/* B5FDEC 800E8C4C 00191A82 */ srl $v1, $t9, 0xa
/* B5FDF0 800E8C50 3063003F */ andi $v1, $v1, 0x3f
/* B5FDF4 800E8C54 00034840 */ sll $t1, $v1, 1
/* B5FDF8 800E8C58 AC990004 */ sw $t9, 4($a0)
/* B5FDFC 800E8C5C 01095021 */ addu $t2, $t0, $t1
/* B5FE00 800E8C60 03E00008 */ jr $ra
/* B5FE04 800E8C64 85420000 */ lh $v0, ($t2)
glabel func_800E8C68
/* B5FE08 800E8C68 27BDFFE8 */ addiu $sp, $sp, -0x18
/* B5FE0C 800E8C6C AFBF0014 */ sw $ra, 0x14($sp)
/* B5FE10 800E8C70 9482001A */ lhu $v0, 0x1a($a0)
/* B5FE14 800E8C74 8C830000 */ lw $v1, ($a0)
/* B5FE18 800E8C78 2401FFFF */ li $at, -1
/* B5FE1C 800E8C7C 10400005 */ beqz $v0, .L800E8C94
/* B5FE20 800E8C80 244EFFFF */ addiu $t6, $v0, -1
/* B5FE24 800E8C84 3C013F80 */ li $at, 0x3F800000 # 0.000000
/* B5FE28 800E8C88 44810000 */ mtc1 $at, $f0
/* B5FE2C 800E8C8C 10000081 */ b .L800E8E94
/* B5FE30 800E8C90 A48E001A */ sh $t6, 0x1a($a0)
.L800E8C94:
/* B5FE34 800E8C94 50610056 */ beql $v1, $at, .L800E8DF0
/* B5FE38 800E8C98 44802000 */ mtc1 $zero, $f4
/* B5FE3C 800E8C9C 94820018 */ lhu $v0, 0x18($a0)
/* B5FE40 800E8CA0 24010001 */ li $at, 1
/* B5FE44 800E8CA4 50400019 */ beql $v0, $zero, .L800E8D0C
/* B5FE48 800E8CA8 C484000C */ lwc1 $f4, 0xc($a0)
/* B5FE4C 800E8CAC 14410008 */ bne $v0, $at, .L800E8CD0
/* B5FE50 800E8CB0 00402825 */ move $a1, $v0
/* B5FE54 800E8CB4 946F0016 */ lhu $t7, 0x16($v1)
/* B5FE58 800E8CB8 94820018 */ lhu $v0, 0x18($a0)
/* B5FE5C 800E8CBC 448F2000 */ mtc1 $t7, $f4
/* B5FE60 800E8CC0 00000000 */ nop
/* B5FE64 800E8CC4 468021A0 */ cvt.s.w $f6, $f4
/* B5FE68 800E8CC8 1000000C */ b .L800E8CFC
/* B5FE6C 800E8CCC E486000C */ swc1 $f6, 0xc($a0)
.L800E8CD0:
/* B5FE70 800E8CD0 94780016 */ lhu $t8, 0x16($v1)
/* B5FE74 800E8CD4 44853000 */ mtc1 $a1, $f6
/* B5FE78 800E8CD8 C480000C */ lwc1 $f0, 0xc($a0)
/* B5FE7C 800E8CDC 44984000 */ mtc1 $t8, $f8
/* B5FE80 800E8CE0 00000000 */ nop
/* B5FE84 800E8CE4 468042A0 */ cvt.s.w $f10, $f8
/* B5FE88 800E8CE8 46803220 */ cvt.s.w $f8, $f6
/* B5FE8C 800E8CEC 46005101 */ sub.s $f4, $f10, $f0
/* B5FE90 800E8CF0 46082283 */ div.s $f10, $f4, $f8
/* B5FE94 800E8CF4 460A0180 */ add.s $f6, $f0, $f10
/* B5FE98 800E8CF8 E486000C */ swc1 $f6, 0xc($a0)
.L800E8CFC:
/* B5FE9C 800E8CFC 2459FFFF */ addiu $t9, $v0, -1
/* B5FEA0 800E8D00 10000010 */ b .L800E8D44
/* B5FEA4 800E8D04 A4990018 */ sh $t9, 0x18($a0)
/* B5FEA8 800E8D08 C484000C */ lwc1 $f4, 0xc($a0)
.L800E8D0C:
/* B5FEAC 800E8D0C 946A0016 */ lhu $t2, 0x16($v1)
/* B5FEB0 800E8D10 4600220D */ trunc.w.s $f8, $f4
/* B5FEB4 800E8D14 44094000 */ mfc1 $t1, $f8
/* B5FEB8 800E8D18 00000000 */ nop
/* B5FEBC 800E8D1C 512A000A */ beql $t1, $t2, .L800E8D48
/* B5FEC0 800E8D20 94820016 */ lhu $v0, 0x16($a0)
/* B5FEC4 800E8D24 9462001A */ lhu $v0, 0x1a($v1)
/* B5FEC8 800E8D28 14400006 */ bnez $v0, .L800E8D44
/* B5FECC 800E8D2C A4820018 */ sh $v0, 0x18($a0)
/* B5FED0 800E8D30 946B0016 */ lhu $t3, 0x16($v1)
/* B5FED4 800E8D34 448B5000 */ mtc1 $t3, $f10
/* B5FED8 800E8D38 00000000 */ nop
/* B5FEDC 800E8D3C 468051A0 */ cvt.s.w $f6, $f10
/* B5FEE0 800E8D40 E486000C */ swc1 $f6, 0xc($a0)
.L800E8D44:
/* B5FEE4 800E8D44 94820016 */ lhu $v0, 0x16($a0)
.L800E8D48:
/* B5FEE8 800E8D48 24010001 */ li $at, 1
/* B5FEEC 800E8D4C 50400019 */ beql $v0, $zero, .L800E8DB4
/* B5FEF0 800E8D50 C4840010 */ lwc1 $f4, 0x10($a0)
/* B5FEF4 800E8D54 14410008 */ bne $v0, $at, .L800E8D78
/* B5FEF8 800E8D58 00402825 */ move $a1, $v0
/* B5FEFC 800E8D5C 946C0014 */ lhu $t4, 0x14($v1)
/* B5FF00 800E8D60 94820016 */ lhu $v0, 0x16($a0)
/* B5FF04 800E8D64 448C2000 */ mtc1 $t4, $f4
/* B5FF08 800E8D68 00000000 */ nop
/* B5FF0C 800E8D6C 46802220 */ cvt.s.w $f8, $f4
/* B5FF10 800E8D70 1000000C */ b .L800E8DA4
/* B5FF14 800E8D74 E4880010 */ swc1 $f8, 0x10($a0)
.L800E8D78:
/* B5FF18 800E8D78 946D0014 */ lhu $t5, 0x14($v1)
/* B5FF1C 800E8D7C 44854000 */ mtc1 $a1, $f8
/* B5FF20 800E8D80 C4800010 */ lwc1 $f0, 0x10($a0)
/* B5FF24 800E8D84 448D5000 */ mtc1 $t5, $f10
/* B5FF28 800E8D88 00000000 */ nop
/* B5FF2C 800E8D8C 468051A0 */ cvt.s.w $f6, $f10
/* B5FF30 800E8D90 468042A0 */ cvt.s.w $f10, $f8
/* B5FF34 800E8D94 46003101 */ sub.s $f4, $f6, $f0
/* B5FF38 800E8D98 460A2183 */ div.s $f6, $f4, $f10
/* B5FF3C 800E8D9C 46060200 */ add.s $f8, $f0, $f6
/* B5FF40 800E8DA0 E4880010 */ swc1 $f8, 0x10($a0)
.L800E8DA4:
/* B5FF44 800E8DA4 244EFFFF */ addiu $t6, $v0, -1
/* B5FF48 800E8DA8 10000010 */ b .L800E8DEC
/* B5FF4C 800E8DAC A48E0016 */ sh $t6, 0x16($a0)
/* B5FF50 800E8DB0 C4840010 */ lwc1 $f4, 0x10($a0)
.L800E8DB4:
/* B5FF54 800E8DB4 94790014 */ lhu $t9, 0x14($v1)
/* B5FF58 800E8DB8 4600228D */ trunc.w.s $f10, $f4
/* B5FF5C 800E8DBC 44185000 */ mfc1 $t8, $f10
/* B5FF60 800E8DC0 00000000 */ nop
/* B5FF64 800E8DC4 5319000A */ beql $t8, $t9, .L800E8DF0
/* B5FF68 800E8DC8 44802000 */ mtc1 $zero, $f4
/* B5FF6C 800E8DCC 94620018 */ lhu $v0, 0x18($v1)
/* B5FF70 800E8DD0 14400006 */ bnez $v0, .L800E8DEC
/* B5FF74 800E8DD4 A4820016 */ sh $v0, 0x16($a0)
/* B5FF78 800E8DD8 94680014 */ lhu $t0, 0x14($v1)
/* B5FF7C 800E8DDC 44883000 */ mtc1 $t0, $f6
/* B5FF80 800E8DE0 00000000 */ nop
/* B5FF84 800E8DE4 46803220 */ cvt.s.w $f8, $f6
/* B5FF88 800E8DE8 E4880010 */ swc1 $f8, 0x10($a0)
.L800E8DEC:
/* B5FF8C 800E8DEC 44802000 */ mtc1 $zero, $f4
.L800E8DF0:
/* B5FF90 800E8DF0 C48A000C */ lwc1 $f10, 0xc($a0)
/* B5FF94 800E8DF4 3C013F80 */ li $at, 0x3F800000 # 0.000000
/* B5FF98 800E8DF8 460A2032 */ c.eq.s $f4, $f10
/* B5FF9C 800E8DFC 00000000 */ nop
/* B5FFA0 800E8E00 45000004 */ bc1f .L800E8E14
/* B5FFA4 800E8E04 00000000 */ nop
/* B5FFA8 800E8E08 44810000 */ mtc1 $at, $f0
/* B5FFAC 800E8E0C 10000022 */ b .L800E8E98
/* B5FFB0 800E8E10 8FBF0014 */ lw $ra, 0x14($sp)
.L800E8E14:
/* B5FFB4 800E8E14 0C03A30C */ jal func_800E8C30
/* B5FFB8 800E8E18 AFA40018 */ sw $a0, 0x18($sp)
/* B5FFBC 800E8E1C 8FA40018 */ lw $a0, 0x18($sp)
/* B5FFC0 800E8E20 3C013F80 */ li $at, 0x3F800000 # 0.000000
/* B5FFC4 800E8E24 44819000 */ mtc1 $at, $f18
/* B5FFC8 800E8E28 3C013980 */ li $at, 0x39800000 # 0.000000
/* B5FFCC 800E8E2C 44814000 */ mtc1 $at, $f8
/* B5FFD0 800E8E30 C486000C */ lwc1 $f6, 0xc($a0)
/* B5FFD4 800E8E34 44822000 */ mtc1 $v0, $f4
/* B5FFD8 800E8E38 3C014700 */ li $at, 0x47000000 # 0.000000
/* B5FFDC 800E8E3C 46083402 */ mul.s $f16, $f6, $f8
/* B5FFE0 800E8E40 44813000 */ mtc1 $at, $f6
/* B5FFE4 800E8E44 3C014780 */ lui $at, 0x4780
/* B5FFE8 800E8E48 3C098013 */ lui $t1, %hi(D_80130514)
/* B5FFEC 800E8E4C 8D290514 */ lw $t1, %lo(D_80130514)($t1)
/* B5FFF0 800E8E50 468022A0 */ cvt.s.w $f10, $f4
/* B5FFF4 800E8E54 252A0001 */ addiu $t2, $t1, 1
/* B5FFF8 800E8E58 46128080 */ add.s $f2, $f16, $f18
/* B5FFFC 800E8E5C 46065200 */ add.s $f8, $f10, $f6
/* B60000 800E8E60 44813000 */ mtc1 $at, $f6
/* B60004 800E8E64 3C018013 */ lui $at, %hi(D_80130510)
/* B60008 800E8E68 46029303 */ div.s $f12, $f18, $f2
/* B6000C 800E8E6C 460C1101 */ sub.s $f4, $f2, $f12
/* B60010 800E8E70 46082282 */ mul.s $f10, $f4, $f8
/* B60014 800E8E74 46065103 */ div.s $f4, $f10, $f6
/* B60018 800E8E78 C42A0510 */ lwc1 $f10, %lo(D_80130510)($at)
/* B6001C 800E8E7C 460C2200 */ add.s $f8, $f4, $f12
/* B60020 800E8E80 46089003 */ div.s $f0, $f18, $f8
/* B60024 800E8E84 46005180 */ add.s $f6, $f10, $f0
/* B60028 800E8E88 E4260510 */ swc1 $f6, %lo(D_80130510)($at)
/* B6002C 800E8E8C 3C018013 */ lui $at, %hi(D_80130514) # $at, 0x8013
/* B60030 800E8E90 AC2A0514 */ sw $t2, %lo(D_80130514)($at)
.L800E8E94:
/* B60034 800E8E94 8FBF0014 */ lw $ra, 0x14($sp)
.L800E8E98:
/* B60038 800E8E98 27BD0018 */ addiu $sp, $sp, 0x18
/* B6003C 800E8E9C 03E00008 */ jr $ra
/* B60040 800E8EA0 00000000 */ nop
glabel func_800E8EA4
/* B60044 800E8EA4 27BDFFE8 */ addiu $sp, $sp, -0x18
/* B60048 800E8EA8 AFBF0014 */ sw $ra, 0x14($sp)
/* B6004C 800E8EAC 908E0090 */ lbu $t6, 0x90($a0)
/* B60050 800E8EB0 00802825 */ move $a1, $a0
/* B60054 800E8EB4 24840090 */ addiu $a0, $a0, 0x90
/* B60058 800E8EB8 51C00006 */ beql $t6, $zero, .L800E8ED4
/* B6005C 800E8EBC 90AF00B0 */ lbu $t7, 0xb0($a1)
/* B60060 800E8EC0 0C03A2F5 */ jal func_800E8BD4
/* B60064 800E8EC4 AFA50018 */ sw $a1, 0x18($sp)
/* B60068 800E8EC8 8FA50018 */ lw $a1, 0x18($sp)
/* B6006C 800E8ECC E4A00038 */ swc1 $f0, 0x38($a1)
/* B60070 800E8ED0 90AF00B0 */ lbu $t7, 0xb0($a1)
.L800E8ED4:
/* B60074 800E8ED4 24A4009C */ addiu $a0, $a1, 0x9c
/* B60078 800E8ED8 51E00006 */ beql $t7, $zero, .L800E8EF4
/* B6007C 800E8EDC 8FBF0014 */ lw $ra, 0x14($sp)
/* B60080 800E8EE0 0C03A31A */ jal func_800E8C68
/* B60084 800E8EE4 AFA50018 */ sw $a1, 0x18($sp)
/* B60088 800E8EE8 8FA50018 */ lw $a1, 0x18($sp)
/* B6008C 800E8EEC E4A0003C */ swc1 $f0, 0x3c($a1)
/* B60090 800E8EF0 8FBF0014 */ lw $ra, 0x14($sp)
.L800E8EF4:
/* B60094 800E8EF4 27BD0018 */ addiu $sp, $sp, 0x18
/* B60098 800E8EF8 03E00008 */ jr $ra
/* B6009C 800E8EFC 00000000 */ nop
glabel func_800E8F00
/* B600A0 800E8F00 3C013F80 */ li $at, 0x3F800000 # 0.000000
/* B600A4 800E8F04 44812000 */ mtc1 $at, $f4
/* B600A8 800E8F08 240E0001 */ li $t6, 1
/* B600AC 800E8F0C A08E00B0 */ sb $t6, 0xb0($a0)
/* B600B0 800E8F10 AC8000A0 */ sw $zero, 0xa0($a0)
/* B600B4 800E8F14 3C0F8013 */ lui $t7, %hi(D_8012F098) # $t7, 0x8013
/* B600B8 800E8F18 E484003C */ swc1 $f4, 0x3c($a0)
/* B600BC 800E8F1C 8DEFF098 */ lw $t7, %lo(D_8012F098)($t7)
/* B600C0 800E8F20 8C980044 */ lw $t8, 0x44($a0)
/* B600C4 800E8F24 AC8F00A4 */ sw $t7, 0xa4($a0)
/* B600C8 800E8F28 8F190050 */ lw $t9, 0x50($t8)
/* B600CC 800E8F2C AC99009C */ sw $t9, 0x9c($a0)
/* B600D0 800E8F30 9725001A */ lhu $a1, 0x1a($t9)
/* B600D4 800E8F34 03201825 */ move $v1, $t9
/* B600D8 800E8F38 14A00008 */ bnez $a1, .L800E8F5C
/* B600DC 800E8F3C A48500B4 */ sh $a1, 0xb4($a0)
/* B600E0 800E8F40 97280016 */ lhu $t0, 0x16($t9)
/* B600E4 800E8F44 2482009C */ addiu $v0, $a0, 0x9c
/* B600E8 800E8F48 44883000 */ mtc1 $t0, $f6
/* B600EC 800E8F4C 00000000 */ nop
/* B600F0 800E8F50 46803220 */ cvt.s.w $f8, $f6
/* B600F4 800E8F54 10000007 */ b .L800E8F74
/* B600F8 800E8F58 E448000C */ swc1 $f8, 0xc($v0)
.L800E8F5C:
/* B600FC 800E8F5C 94690012 */ lhu $t1, 0x12($v1)
/* B60100 800E8F60 2482009C */ addiu $v0, $a0, 0x9c
/* B60104 800E8F64 44895000 */ mtc1 $t1, $f10
/* B60108 800E8F68 00000000 */ nop
/* B6010C 800E8F6C 46805420 */ cvt.s.w $f16, $f10
/* B60110 800E8F70 E450000C */ swc1 $f16, 0xc($v0)
.L800E8F74:
/* B60114 800E8F74 94650018 */ lhu $a1, 0x18($v1)
/* B60118 800E8F78 14A00007 */ bnez $a1, .L800E8F98
/* B6011C 800E8F7C A4450016 */ sh $a1, 0x16($v0)
/* B60120 800E8F80 946A0014 */ lhu $t2, 0x14($v1)
/* B60124 800E8F84 448A9000 */ mtc1 $t2, $f18
/* B60128 800E8F88 00000000 */ nop
/* B6012C 800E8F8C 46809120 */ cvt.s.w $f4, $f18
/* B60130 800E8F90 10000006 */ b .L800E8FAC
/* B60134 800E8F94 E4440010 */ swc1 $f4, 0x10($v0)
.L800E8F98:
/* B60138 800E8F98 946B0010 */ lhu $t3, 0x10($v1)
/* B6013C 800E8F9C 448B3000 */ mtc1 $t3, $f6
/* B60140 800E8FA0 00000000 */ nop
/* B60144 800E8FA4 46803220 */ cvt.s.w $f8, $f6
/* B60148 800E8FA8 E4480010 */ swc1 $f8, 0x10($v0)
.L800E8FAC:
/* B6014C 800E8FAC 946C001C */ lhu $t4, 0x1c($v1)
/* B60150 800E8FB0 03E00008 */ jr $ra
/* B60154 800E8FB4 A44C001A */ sh $t4, 0x1a($v0)
glabel func_800E8FB8
/* B60158 800E8FB8 3C013F80 */ li $at, 0x3F800000 # 0.000000
/* B6015C 800E8FBC 44812000 */ mtc1 $at, $f4
/* B60160 800E8FC0 8C8E0044 */ lw $t6, 0x44($a0)
/* B60164 800E8FC4 E4840038 */ swc1 $f4, 0x38($a0)
/* B60168 800E8FC8 8DD80020 */ lw $t8, 0x20($t6)
/* B6016C 800E8FCC AC980090 */ sw $t8, 0x90($a0)
/* B60170 800E8FD0 8DCF0024 */ lw $t7, 0x24($t6)
/* B60174 800E8FD4 AC8F0094 */ sw $t7, 0x94($a0)
/* B60178 800E8FD8 8DD80028 */ lw $t8, 0x28($t6)
/* B6017C 800E8FDC 03E00008 */ jr $ra
/* B60180 800E8FE0 AC980098 */ sw $t8, 0x98($a0)
glabel func_800E8FE4
/* B60184 800E8FE4 AFA60008 */ sw $a2, 8($sp)
/* B60188 800E8FE8 44800000 */ mtc1 $zero, $f0
/* B6018C 800E8FEC A0800000 */ sb $zero, ($a0)
/* B60190 800E8FF0 A4800002 */ sh $zero, 2($a0)
/* B60194 800E8FF4 AC85001C */ sw $a1, 0x1c($a0)
/* B60198 800E8FF8 E4800004 */ swc1 $f0, 4($a0)
/* B6019C 800E8FFC 03E00008 */ jr $ra
/* B601A0 800E9000 E4800010 */ swc1 $f0, 0x10($a0)
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