Files
SpaghettiKart/asm/non_matchings/memory/func_802AE434.s
T
CoderStig 8ab4557b39 Split asm using autodecompiler (#49)
* Split asm using autodecompiler

* Placed libultra bss and linked more C
2021-11-05 05:17:09 -06:00

482 lines
23 KiB
ArmAsm

glabel func_802AE434
/* 117A44 802AE434 3C0E8016 */ lui $t6, %hi(D_8015F588) # $t6, 0x8016
/* 117A48 802AE438 95CEF588 */ lhu $t6, %lo(D_8015F588)($t6)
/* 117A4C 802AE43C 27BDFF38 */ addiu $sp, $sp, -0xc8
/* 117A50 802AE440 3C188016 */ lui $t8, %hi(D_8015F580) # $t8, 0x8016
/* 117A54 802AE444 000E7880 */ sll $t7, $t6, 2
/* 117A58 802AE448 01EE7823 */ subu $t7, $t7, $t6
/* 117A5C 802AE44C 8F18F580 */ lw $t8, %lo(D_8015F580)($t8)
/* 117A60 802AE450 000F7880 */ sll $t7, $t7, 2
/* 117A64 802AE454 01EE7823 */ subu $t7, $t7, $t6
/* 117A68 802AE458 000F7880 */ sll $t7, $t7, 2
/* 117A6C 802AE45C AFA400C8 */ sw $a0, 0xc8($sp)
/* 117A70 802AE460 AFA500CC */ sw $a1, 0xcc($sp)
/* 117A74 802AE464 AFA600D0 */ sw $a2, 0xd0($sp)
/* 117A78 802AE468 AFA700D4 */ sw $a3, 0xd4($sp)
/* 117A7C 802AE46C 01F84021 */ addu $t0, $t7, $t8
/* 117A80 802AE470 AD040010 */ sw $a0, 0x10($t0)
/* 117A84 802AE474 8FAE00CC */ lw $t6, 0xcc($sp)
/* 117A88 802AE478 24020004 */ li $v0, 4
/* 117A8C 802AE47C AD0E0014 */ sw $t6, 0x14($t0)
/* 117A90 802AE480 8FAF00D0 */ lw $t7, 0xd0($sp)
/* 117A94 802AE484 AD0F0018 */ sw $t7, 0x18($t0)
/* 117A98 802AE488 8FB800C8 */ lw $t8, 0xc8($sp)
/* 117A9C 802AE48C 97190006 */ lhu $t9, 6($t8)
/* 117AA0 802AE490 54590009 */ bnel $v0, $t9, .L802AE4B8
/* 117AA4 802AE494 8D0E0010 */ lw $t6, 0x10($t0)
/* 117AA8 802AE498 95CF0006 */ lhu $t7, 6($t6)
/* 117AAC 802AE49C 544F0006 */ bnel $v0, $t7, .L802AE4B8
/* 117AB0 802AE4A0 8D0E0010 */ lw $t6, 0x10($t0)
/* 117AB4 802AE4A4 8D180018 */ lw $t8, 0x18($t0)
/* 117AB8 802AE4A8 97190006 */ lhu $t9, 6($t8)
/* 117ABC 802AE4AC 10590197 */ beq $v0, $t9, .L802AEB0C
/* 117AC0 802AE4B0 00000000 */ nop
/* 117AC4 802AE4B4 8D0E0010 */ lw $t6, 0x10($t0)
.L802AE4B8:
/* 117AC8 802AE4B8 AFAE001C */ sw $t6, 0x1c($sp)
/* 117ACC 802AE4BC 8D090014 */ lw $t1, 0x14($t0)
/* 117AD0 802AE4C0 8D0A0018 */ lw $t2, 0x18($t0)
/* 117AD4 802AE4C4 85C40000 */ lh $a0, ($t6)
/* 117AD8 802AE4C8 852B0000 */ lh $t3, ($t1)
/* 117ADC 802AE4CC 85C60002 */ lh $a2, 2($t6)
/* 117AE0 802AE4D0 85C50004 */ lh $a1, 4($t6)
/* 117AE4 802AE4D4 85270002 */ lh $a3, 2($t1)
/* 117AE8 802AE4D8 852C0004 */ lh $t4, 4($t1)
/* 117AEC 802AE4DC 854D0000 */ lh $t5, ($t2)
/* 117AF0 802AE4E0 85420002 */ lh $v0, 2($t2)
/* 117AF4 802AE4E4 148B0012 */ bne $a0, $t3, .L802AE530
/* 117AF8 802AE4E8 85430004 */ lh $v1, 4($t2)
/* 117AFC 802AE4EC 14AC0010 */ bne $a1, $t4, .L802AE530
/* 117B00 802AE4F0 8FB800CC */ lw $t8, 0xcc($sp)
/* 117B04 802AE4F4 AD180018 */ sw $t8, 0x18($t0)
/* 117B08 802AE4F8 8FB900D0 */ lw $t9, 0xd0($sp)
/* 117B0C 802AE4FC AD190014 */ sw $t9, 0x14($t0)
/* 117B10 802AE500 8FAE00C8 */ lw $t6, 0xc8($sp)
/* 117B14 802AE504 8FAF00CC */ lw $t7, 0xcc($sp)
/* 117B18 802AE508 8FB800D0 */ lw $t8, 0xd0($sp)
/* 117B1C 802AE50C 85C40000 */ lh $a0, ($t6)
/* 117B20 802AE510 85C60002 */ lh $a2, 2($t6)
/* 117B24 802AE514 85C50004 */ lh $a1, 4($t6)
/* 117B28 802AE518 85EB0000 */ lh $t3, ($t7)
/* 117B2C 802AE51C 85E70002 */ lh $a3, 2($t7)
/* 117B30 802AE520 85EC0004 */ lh $t4, 4($t7)
/* 117B34 802AE524 870D0000 */ lh $t5, ($t8)
/* 117B38 802AE528 87020002 */ lh $v0, 2($t8)
/* 117B3C 802AE52C 87030004 */ lh $v1, 4($t8)
.L802AE530:
/* 117B40 802AE530 008B082A */ slt $at, $a0, $t3
/* 117B44 802AE534 14200007 */ bnez $at, .L802AE554
/* 117B48 802AE538 008D082A */ slt $at, $a0, $t5
/* 117B4C 802AE53C 14200003 */ bnez $at, .L802AE54C
/* 117B50 802AE540 00000000 */ nop
/* 117B54 802AE544 10000009 */ b .L802AE56C
/* 117B58 802AE548 A7A4004A */ sh $a0, 0x4a($sp)
.L802AE54C:
/* 117B5C 802AE54C 10000007 */ b .L802AE56C
/* 117B60 802AE550 A7AD004A */ sh $t5, 0x4a($sp)
.L802AE554:
/* 117B64 802AE554 016D082A */ slt $at, $t3, $t5
/* 117B68 802AE558 54200004 */ bnel $at, $zero, .L802AE56C
/* 117B6C 802AE55C A7AD004A */ sh $t5, 0x4a($sp)
/* 117B70 802AE560 10000002 */ b .L802AE56C
/* 117B74 802AE564 A7AB004A */ sh $t3, 0x4a($sp)
/* 117B78 802AE568 A7AD004A */ sh $t5, 0x4a($sp)
.L802AE56C:
/* 117B7C 802AE56C 00AC082A */ slt $at, $a1, $t4
/* 117B80 802AE570 14200007 */ bnez $at, .L802AE590
/* 117B84 802AE574 00A3082A */ slt $at, $a1, $v1
/* 117B88 802AE578 14200003 */ bnez $at, .L802AE588
/* 117B8C 802AE57C 00000000 */ nop
/* 117B90 802AE580 10000009 */ b .L802AE5A8
/* 117B94 802AE584 A7A50048 */ sh $a1, 0x48($sp)
.L802AE588:
/* 117B98 802AE588 10000007 */ b .L802AE5A8
/* 117B9C 802AE58C A7A30048 */ sh $v1, 0x48($sp)
.L802AE590:
/* 117BA0 802AE590 0183082A */ slt $at, $t4, $v1
/* 117BA4 802AE594 54200004 */ bnel $at, $zero, .L802AE5A8
/* 117BA8 802AE598 A7A30048 */ sh $v1, 0x48($sp)
/* 117BAC 802AE59C 10000002 */ b .L802AE5A8
/* 117BB0 802AE5A0 A7AC0048 */ sh $t4, 0x48($sp)
/* 117BB4 802AE5A4 A7A30048 */ sh $v1, 0x48($sp)
.L802AE5A8:
/* 117BB8 802AE5A8 00C7082A */ slt $at, $a2, $a3
/* 117BBC 802AE5AC 14200007 */ bnez $at, .L802AE5CC
/* 117BC0 802AE5B0 00C2082A */ slt $at, $a2, $v0
/* 117BC4 802AE5B4 14200003 */ bnez $at, .L802AE5C4
/* 117BC8 802AE5B8 00000000 */ nop
/* 117BCC 802AE5BC 10000009 */ b .L802AE5E4
/* 117BD0 802AE5C0 A7A60042 */ sh $a2, 0x42($sp)
.L802AE5C4:
/* 117BD4 802AE5C4 10000007 */ b .L802AE5E4
/* 117BD8 802AE5C8 A7A20042 */ sh $v0, 0x42($sp)
.L802AE5CC:
/* 117BDC 802AE5CC 00E2082A */ slt $at, $a3, $v0
/* 117BE0 802AE5D0 54200004 */ bnel $at, $zero, .L802AE5E4
/* 117BE4 802AE5D4 A7A20042 */ sh $v0, 0x42($sp)
/* 117BE8 802AE5D8 10000002 */ b .L802AE5E4
/* 117BEC 802AE5DC A7A70042 */ sh $a3, 0x42($sp)
/* 117BF0 802AE5E0 A7A20042 */ sh $v0, 0x42($sp)
.L802AE5E4:
/* 117BF4 802AE5E4 0164082A */ slt $at, $t3, $a0
/* 117BF8 802AE5E8 14200007 */ bnez $at, .L802AE608
/* 117BFC 802AE5EC 01A4082A */ slt $at, $t5, $a0
/* 117C00 802AE5F0 14200003 */ bnez $at, .L802AE600
/* 117C04 802AE5F4 00000000 */ nop
/* 117C08 802AE5F8 10000009 */ b .L802AE620
/* 117C0C 802AE5FC A7A40044 */ sh $a0, 0x44($sp)
.L802AE600:
/* 117C10 802AE600 10000007 */ b .L802AE620
/* 117C14 802AE604 A7AD0044 */ sh $t5, 0x44($sp)
.L802AE608:
/* 117C18 802AE608 01AB082A */ slt $at, $t5, $t3
/* 117C1C 802AE60C 54200004 */ bnel $at, $zero, .L802AE620
/* 117C20 802AE610 A7AD0044 */ sh $t5, 0x44($sp)
/* 117C24 802AE614 10000002 */ b .L802AE620
/* 117C28 802AE618 A7AB0044 */ sh $t3, 0x44($sp)
/* 117C2C 802AE61C A7AD0044 */ sh $t5, 0x44($sp)
.L802AE620:
/* 117C30 802AE620 00E6082A */ slt $at, $a3, $a2
/* 117C34 802AE624 1420000A */ bnez $at, .L802AE650
/* 117C38 802AE628 0046082A */ slt $at, $v0, $a2
/* 117C3C 802AE62C 14200005 */ bnez $at, .L802AE644
/* 117C40 802AE630 00025400 */ sll $t2, $v0, 0x10
/* 117C44 802AE634 00065400 */ sll $t2, $a2, 0x10
/* 117C48 802AE638 000ACC03 */ sra $t9, $t2, 0x10
/* 117C4C 802AE63C 1000000D */ b .L802AE674
/* 117C50 802AE640 03205025 */ move $t2, $t9
.L802AE644:
/* 117C54 802AE644 000A7403 */ sra $t6, $t2, 0x10
/* 117C58 802AE648 1000000A */ b .L802AE674
/* 117C5C 802AE64C 01C05025 */ move $t2, $t6
.L802AE650:
/* 117C60 802AE650 0047082A */ slt $at, $v0, $a3
/* 117C64 802AE654 14200005 */ bnez $at, .L802AE66C
/* 117C68 802AE658 00025400 */ sll $t2, $v0, 0x10
/* 117C6C 802AE65C 00075400 */ sll $t2, $a3, 0x10
/* 117C70 802AE660 000A7C03 */ sra $t7, $t2, 0x10
/* 117C74 802AE664 10000003 */ b .L802AE674
/* 117C78 802AE668 01E05025 */ move $t2, $t7
.L802AE66C:
/* 117C7C 802AE66C 000AC403 */ sra $t8, $t2, 0x10
/* 117C80 802AE670 03005025 */ move $t2, $t8
.L802AE674:
/* 117C84 802AE674 0185082A */ slt $at, $t4, $a1
/* 117C88 802AE678 1420000A */ bnez $at, .L802AE6A4
/* 117C8C 802AE67C 0065082A */ slt $at, $v1, $a1
/* 117C90 802AE680 14200005 */ bnez $at, .L802AE698
/* 117C94 802AE684 00034C00 */ sll $t1, $v1, 0x10
/* 117C98 802AE688 00054C00 */ sll $t1, $a1, 0x10
/* 117C9C 802AE68C 0009CC03 */ sra $t9, $t1, 0x10
/* 117CA0 802AE690 1000000D */ b .L802AE6C8
/* 117CA4 802AE694 03204825 */ move $t1, $t9
.L802AE698:
/* 117CA8 802AE698 00097403 */ sra $t6, $t1, 0x10
/* 117CAC 802AE69C 1000000A */ b .L802AE6C8
/* 117CB0 802AE6A0 01C04825 */ move $t1, $t6
.L802AE6A4:
/* 117CB4 802AE6A4 006C082A */ slt $at, $v1, $t4
/* 117CB8 802AE6A8 14200005 */ bnez $at, .L802AE6C0
/* 117CBC 802AE6AC 00034C00 */ sll $t1, $v1, 0x10
/* 117CC0 802AE6B0 000C4C00 */ sll $t1, $t4, 0x10
/* 117CC4 802AE6B4 00097C03 */ sra $t7, $t1, 0x10
/* 117CC8 802AE6B8 10000003 */ b .L802AE6C8
/* 117CCC 802AE6BC 01E04825 */ move $t1, $t7
.L802AE6C0:
/* 117CD0 802AE6C0 0009C403 */ sra $t8, $t1, 0x10
/* 117CD4 802AE6C4 03004825 */ move $t1, $t8
.L802AE6C8:
/* 117CD8 802AE6C8 A7A300AA */ sh $v1, 0xaa($sp)
/* 117CDC 802AE6CC A7A600B8 */ sh $a2, 0xb8($sp)
/* 117CE0 802AE6D0 A7A700B2 */ sh $a3, 0xb2($sp)
/* 117CE4 802AE6D4 87B900B2 */ lh $t9, 0xb2($sp)
/* 117CE8 802AE6D8 87AE00B8 */ lh $t6, 0xb8($sp)
/* 117CEC 802AE6DC 87AF00AA */ lh $t7, 0xaa($sp)
/* 117CF0 802AE6E0 A7A200AC */ sh $v0, 0xac($sp)
/* 117CF4 802AE6E4 032E1023 */ subu $v0, $t9, $t6
/* 117CF8 802AE6E8 01EC1823 */ subu $v1, $t7, $t4
/* 117CFC 802AE6EC 00430019 */ multu $v0, $v1
/* 117D00 802AE6F0 A7A500B6 */ sh $a1, 0xb6($sp)
/* 117D04 802AE6F4 87B800B6 */ lh $t8, 0xb6($sp)
/* 117D08 802AE6F8 87AE00AC */ lh $t6, 0xac($sp)
/* 117D0C 802AE6FC A7A400BA */ sh $a0, 0xba($sp)
/* 117D10 802AE700 01982023 */ subu $a0, $t4, $t8
/* 117D14 802AE704 01D92823 */ subu $a1, $t6, $t9
/* 117D18 802AE708 01AB3023 */ subu $a2, $t5, $t3
/* 117D1C 802AE70C 87B900BA */ lh $t9, 0xba($sp)
/* 117D20 802AE710 44803800 */ mtc1 $zero, $f7
/* 117D24 802AE714 00007812 */ mflo $t7
/* 117D28 802AE718 01793823 */ subu $a3, $t3, $t9
/* 117D2C 802AE71C 00000000 */ nop
/* 117D30 802AE720 00850019 */ multu $a0, $a1
/* 117D34 802AE724 0000C012 */ mflo $t8
/* 117D38 802AE728 01F87023 */ subu $t6, $t7, $t8
/* 117D3C 802AE72C 448E2000 */ mtc1 $t6, $f4
/* 117D40 802AE730 00860019 */ multu $a0, $a2
/* 117D44 802AE734 46802321 */ cvt.d.w $f12, $f4
/* 117D48 802AE738 462C6482 */ mul.d $f18, $f12, $f12
/* 117D4C 802AE73C 00007812 */ mflo $t7
/* 117D50 802AE740 00000000 */ nop
/* 117D54 802AE744 00000000 */ nop
/* 117D58 802AE748 00E30019 */ multu $a3, $v1
/* 117D5C 802AE74C F7B20010 */ sdc1 $f18, 0x10($sp)
/* 117D60 802AE750 0000C012 */ mflo $t8
/* 117D64 802AE754 01F87023 */ subu $t6, $t7, $t8
/* 117D68 802AE758 448E3000 */ mtc1 $t6, $f6
/* 117D6C 802AE75C 00E50019 */ multu $a3, $a1
/* 117D70 802AE760 468033A1 */ cvt.d.w $f14, $f6
/* 117D74 802AE764 44803000 */ mtc1 $zero, $f6
/* 117D78 802AE768 462E7202 */ mul.d $f8, $f14, $f14
/* 117D7C 802AE76C 0000C812 */ mflo $t9
/* 117D80 802AE770 00000000 */ nop
/* 117D84 802AE774 00000000 */ nop
/* 117D88 802AE778 00460019 */ multu $v0, $a2
/* 117D8C 802AE77C F7A80008 */ sdc1 $f8, 8($sp)
/* 117D90 802AE780 46289200 */ add.d $f8, $f18, $f8
/* 117D94 802AE784 00007812 */ mflo $t7
/* 117D98 802AE788 032FC023 */ subu $t8, $t9, $t7
/* 117D9C 802AE78C 44985000 */ mtc1 $t8, $f10
/* 117DA0 802AE790 00000000 */ nop
/* 117DA4 802AE794 46805421 */ cvt.d.w $f16, $f10
/* 117DA8 802AE798 46308102 */ mul.d $f4, $f16, $f16
/* 117DAC 802AE79C F7A40000 */ sdc1 $f4, ($sp)
/* 117DB0 802AE7A0 46244100 */ add.d $f4, $f8, $f4
/* 117DB4 802AE7A4 46202020 */ cvt.s.d $f0, $f4
/* 117DB8 802AE7A8 46000004 */ sqrt.s $f0, $f0
/* 117DBC 802AE7AC 460000A1 */ cvt.d.s $f2, $f0
/* 117DC0 802AE7B0 46223032 */ c.eq.d $f6, $f2
/* 117DC4 802AE7B4 00000000 */ nop
/* 117DC8 802AE7B8 450100D4 */ bc1t .L802AEB0C
/* 117DCC 802AE7BC 00000000 */ nop
/* 117DD0 802AE7C0 46206220 */ cvt.s.d $f8, $f12
/* 117DD4 802AE7C4 87AE00B8 */ lh $t6, 0xb8($sp)
/* 117DD8 802AE7C8 87B900BA */ lh $t9, 0xba($sp)
/* 117DDC 802AE7CC 462071A0 */ cvt.s.d $f6, $f14
/* 117DE0 802AE7D0 87AF00B6 */ lh $t7, 0xb6($sp)
/* 117DE4 802AE7D4 3C188016 */ lui $t8, %hi(D_8015F59C) # $t8, 0x8016
/* 117DE8 802AE7D8 460042A1 */ cvt.d.s $f10, $f8
/* 117DEC 802AE7DC 46003221 */ cvt.d.s $f8, $f6
/* 117DF0 802AE7E0 46225103 */ div.d $f4, $f10, $f2
/* 117DF4 802AE7E4 8F18F59C */ lw $t8, %lo(D_8015F59C)($t8)
/* 117DF8 802AE7E8 3C01802C */ lui $at, %hi(D_802B9E64) # $at, 0x802c
/* 117DFC 802AE7EC 462081A0 */ cvt.s.d $f6, $f16
/* 117E00 802AE7F0 46224283 */ div.d $f10, $f8, $f2
/* 117E04 802AE7F4 46202020 */ cvt.s.d $f0, $f4
/* 117E08 802AE7F8 46003221 */ cvt.d.s $f8, $f6
/* 117E0C 802AE7FC 448E3000 */ mtc1 $t6, $f6
/* 117E10 802AE800 E7A00058 */ swc1 $f0, 0x58($sp)
/* 117E14 802AE804 3C0E8016 */ lui $t6, %hi(D_8015F5A0) # $t6, 0x8016
/* 117E18 802AE808 46205120 */ cvt.s.d $f4, $f10
/* 117E1C 802AE80C 46224283 */ div.d $f10, $f8, $f2
/* 117E20 802AE810 E7A4001C */ swc1 $f4, 0x1c($sp)
/* 117E24 802AE814 E7A40054 */ swc1 $f4, 0x54($sp)
/* 117E28 802AE818 46803220 */ cvt.s.w $f8, $f6
/* 117E2C 802AE81C 44993000 */ mtc1 $t9, $f6
/* 117E30 802AE820 462054A0 */ cvt.s.d $f18, $f10
/* 117E34 802AE824 46082282 */ mul.s $f10, $f4, $f8
/* 117E38 802AE828 E7B20050 */ swc1 $f18, 0x50($sp)
/* 117E3C 802AE82C 46803220 */ cvt.s.w $f8, $f6
/* 117E40 802AE830 46004182 */ mul.s $f6, $f8, $f0
/* 117E44 802AE834 460A3200 */ add.s $f8, $f6, $f10
/* 117E48 802AE838 448F3000 */ mtc1 $t7, $f6
/* 117E4C 802AE83C 00000000 */ nop
/* 117E50 802AE840 468032A0 */ cvt.s.w $f10, $f6
/* 117E54 802AE844 460A9182 */ mul.s $f6, $f18, $f10
/* 117E58 802AE848 46064280 */ add.s $f10, $f8, $f6
/* 117E5C 802AE84C 46005207 */ neg.s $f8, $f10
/* 117E60 802AE850 1300000C */ beqz $t8, .L802AE884
/* 117E64 802AE854 E7A8004C */ swc1 $f8, 0x4c($sp)
/* 117E68 802AE858 C4269E64 */ lwc1 $f6, %lo(D_802B9E64)($at)
/* 117E6C 802AE85C 3C01802C */ lui $at, %hi(D_802B9E68) # $at, 0x802c
/* 117E70 802AE860 4606203C */ c.lt.s $f4, $f6
/* 117E74 802AE864 00000000 */ nop
/* 117E78 802AE868 450100A8 */ bc1t .L802AEB0C
/* 117E7C 802AE86C 00000000 */ nop
/* 117E80 802AE870 C42A9E68 */ lwc1 $f10, %lo(D_802B9E68)($at)
/* 117E84 802AE874 4604503C */ c.lt.s $f10, $f4
/* 117E88 802AE878 00000000 */ nop
/* 117E8C 802AE87C 450100A3 */ bc1t .L802AEB0C
/* 117E90 802AE880 00000000 */ nop
.L802AE884:
/* 117E94 802AE884 8DCEF5A0 */ lw $t6, %lo(D_8015F5A0)($t6)
/* 117E98 802AE888 C7A0001C */ lwc1 $f0, 0x1c($sp)
/* 117E9C 802AE88C 3C01802C */ lui $at, %hi(D_802B9E6C) # $at, 0x802c
/* 117EA0 802AE890 11C0000C */ beqz $t6, .L802AE8C4
/* 117EA4 802AE894 3C028016 */ lui $v0, %hi(D_8015F6EA) # $v0, 0x8016
/* 117EA8 802AE898 C4289E6C */ lwc1 $f8, %lo(D_802B9E6C)($at)
/* 117EAC 802AE89C 3C01802C */ lui $at, %hi(D_802B9E70) # $at, 0x802c
/* 117EB0 802AE8A0 4608003C */ c.lt.s $f0, $f8
/* 117EB4 802AE8A4 00000000 */ nop
/* 117EB8 802AE8A8 45020007 */ bc1fl .L802AE8C8
/* 117EBC 802AE8AC 87B9004A */ lh $t9, 0x4a($sp)
/* 117EC0 802AE8B0 C4249E70 */ lwc1 $f4, %lo(D_802B9E70)($at)
/* 117EC4 802AE8B4 4600203C */ c.lt.s $f4, $f0
/* 117EC8 802AE8B8 00000000 */ nop
/* 117ECC 802AE8BC 45010093 */ bc1t .L802AEB0C
/* 117ED0 802AE8C0 00000000 */ nop
.L802AE8C4:
/* 117ED4 802AE8C4 87B9004A */ lh $t9, 0x4a($sp)
.L802AE8C8:
/* 117ED8 802AE8C8 87A30044 */ lh $v1, 0x44($sp)
/* 117EDC 802AE8CC 87A40042 */ lh $a0, 0x42($sp)
/* 117EE0 802AE8D0 A519000A */ sh $t9, 0xa($t0)
/* 117EE4 802AE8D4 87AF0048 */ lh $t7, 0x48($sp)
/* 117EE8 802AE8D8 2442F6EA */ addiu $v0, %lo(D_8015F6EA) # addiu $v0, $v0, -0x916
/* 117EEC 802AE8DC A5090008 */ sh $t1, 8($t0)
/* 117EF0 802AE8E0 A50A0006 */ sh $t2, 6($t0)
/* 117EF4 802AE8E4 A5030004 */ sh $v1, 4($t0)
/* 117EF8 802AE8E8 A504000C */ sh $a0, 0xc($t0)
/* 117EFC 802AE8EC A50F000E */ sh $t7, 0xe($t0)
/* 117F00 802AE8F0 84580000 */ lh $t8, ($v0)
/* 117F04 802AE8F4 0078082A */ slt $at, $v1, $t8
/* 117F08 802AE8F8 10200002 */ beqz $at, .L802AE904
/* 117F0C 802AE8FC 00000000 */ nop
/* 117F10 802AE900 A4430000 */ sh $v1, ($v0)
.L802AE904:
/* 117F14 802AE904 3C028016 */ lui $v0, %hi(D_8015F6EE) # $v0, 0x8016
/* 117F18 802AE908 2442F6EE */ addiu $v0, %lo(D_8015F6EE) # addiu $v0, $v0, -0x912
/* 117F1C 802AE90C 844E0000 */ lh $t6, ($v0)
/* 117F20 802AE910 014E082A */ slt $at, $t2, $t6
/* 117F24 802AE914 10200002 */ beqz $at, .L802AE920
/* 117F28 802AE918 00000000 */ nop
/* 117F2C 802AE91C A44A0000 */ sh $t2, ($v0)
.L802AE920:
/* 117F30 802AE920 3C028016 */ lui $v0, %hi(D_8015F6F2) # $v0, 0x8016
/* 117F34 802AE924 2442F6F2 */ addiu $v0, %lo(D_8015F6F2) # addiu $v0, $v0, -0x90e
/* 117F38 802AE928 84590000 */ lh $t9, ($v0)
/* 117F3C 802AE92C 0139082A */ slt $at, $t1, $t9
/* 117F40 802AE930 10200002 */ beqz $at, .L802AE93C
/* 117F44 802AE934 00000000 */ nop
/* 117F48 802AE938 A4490000 */ sh $t1, ($v0)
.L802AE93C:
/* 117F4C 802AE93C 3C028016 */ lui $v0, %hi(D_8015F6E8) # $v0, 0x8016
/* 117F50 802AE940 2442F6E8 */ addiu $v0, %lo(D_8015F6E8) # addiu $v0, $v0, -0x918
/* 117F54 802AE944 844F0000 */ lh $t7, ($v0)
/* 117F58 802AE948 87B8004A */ lh $t8, 0x4a($sp)
/* 117F5C 802AE94C 01F8082A */ slt $at, $t7, $t8
/* 117F60 802AE950 10200002 */ beqz $at, .L802AE95C
/* 117F64 802AE954 00000000 */ nop
/* 117F68 802AE958 A4580000 */ sh $t8, ($v0)
.L802AE95C:
/* 117F6C 802AE95C 3C028016 */ lui $v0, %hi(D_8015F6EC) # $v0, 0x8016
/* 117F70 802AE960 2442F6EC */ addiu $v0, %lo(D_8015F6EC) # addiu $v0, $v0, -0x914
/* 117F74 802AE964 844E0000 */ lh $t6, ($v0)
/* 117F78 802AE968 01C4082A */ slt $at, $t6, $a0
/* 117F7C 802AE96C 10200002 */ beqz $at, .L802AE978
/* 117F80 802AE970 00000000 */ nop
/* 117F84 802AE974 A4440000 */ sh $a0, ($v0)
.L802AE978:
/* 117F88 802AE978 3C028016 */ lui $v0, %hi(D_8015F6F0) # $v0, 0x8016
/* 117F8C 802AE97C 2442F6F0 */ addiu $v0, %lo(D_8015F6F0) # addiu $v0, $v0, -0x910
/* 117F90 802AE980 84590000 */ lh $t9, ($v0)
/* 117F94 802AE984 87AF0048 */ lh $t7, 0x48($sp)
/* 117F98 802AE988 032F082A */ slt $at, $t9, $t7
/* 117F9C 802AE98C 50200003 */ beql $at, $zero, .L802AE99C
/* 117FA0 802AE990 C7A60058 */ lwc1 $f6, 0x58($sp)
/* 117FA4 802AE994 A44F0000 */ sh $t7, ($v0)
/* 117FA8 802AE998 C7A60058 */ lwc1 $f6, 0x58($sp)
.L802AE99C:
/* 117FAC 802AE99C 97A600DA */ lhu $a2, 0xda($sp)
/* 117FB0 802AE9A0 3C018016 */ lui $at, %hi(D_8015F6FA) # $at, 0x8016
/* 117FB4 802AE9A4 E506001C */ swc1 $f6, 0x1c($t0)
/* 117FB8 802AE9A8 C7AA0054 */ lwc1 $f10, 0x54($sp)
/* 117FBC 802AE9AC 24090001 */ li $t1, 1
/* 117FC0 802AE9B0 24020002 */ li $v0, 2
/* 117FC4 802AE9B4 E50A0020 */ swc1 $f10, 0x20($t0)
/* 117FC8 802AE9B8 C7A80050 */ lwc1 $f8, 0x50($sp)
/* 117FCC 802AE9BC 00C02825 */ move $a1, $a2
/* 117FD0 802AE9C0 E5080024 */ swc1 $f8, 0x24($t0)
/* 117FD4 802AE9C4 C7A4004C */ lwc1 $f4, 0x4c($sp)
/* 117FD8 802AE9C8 E5040028 */ swc1 $f4, 0x28($t0)
/* 117FDC 802AE9CC 83B800D7 */ lb $t8, 0xd7($sp)
/* 117FE0 802AE9D0 A5180002 */ sh $t8, 2($t0)
/* 117FE4 802AE9D4 A420F6FA */ sh $zero, %lo(D_8015F6FA)($at)
/* 117FE8 802AE9D8 3C018016 */ lui $at, %hi(D_8015F6FC) # $at, 0x8016
/* 117FEC 802AE9DC A420F6FC */ sh $zero, %lo(D_8015F6FC)($at)
/* 117FF0 802AE9E0 8D0E0010 */ lw $t6, 0x10($t0)
/* 117FF4 802AE9E4 8D190014 */ lw $t9, 0x14($t0)
/* 117FF8 802AE9E8 8D0F0018 */ lw $t7, 0x18($t0)
/* 117FFC 802AE9EC 95C70006 */ lhu $a3, 6($t6)
/* 118000 802AE9F0 D7A00010 */ ldc1 $f0, 0x10($sp)
/* 118004 802AE9F4 D7A20008 */ ldc1 $f2, 8($sp)
/* 118008 802AE9F8 D7AC0000 */ ldc1 $f12, ($sp)
/* 11800C 802AE9FC 97230006 */ lhu $v1, 6($t9)
/* 118010 802AEA00 15270009 */ bne $t1, $a3, .L802AEA28
/* 118014 802AEA04 95E40006 */ lhu $a0, 6($t7)
/* 118018 802AEA08 15230007 */ bne $t1, $v1, .L802AEA28
/* 11801C 802AEA0C 00000000 */ nop
/* 118020 802AEA10 15240005 */ bne $t1, $a0, .L802AEA28
/* 118024 802AEA14 00000000 */ nop
/* 118028 802AEA18 34C50400 */ ori $a1, $a2, 0x400
/* 11802C 802AEA1C 30B8FFFF */ andi $t8, $a1, 0xffff
/* 118030 802AEA20 1000001C */ b .L802AEA94
/* 118034 802AEA24 03002825 */ move $a1, $t8
.L802AEA28:
/* 118038 802AEA28 5447000A */ bnel $v0, $a3, .L802AEA54
/* 11803C 802AEA2C 24020003 */ li $v0, 3
/* 118040 802AEA30 54430008 */ bnel $v0, $v1, .L802AEA54
/* 118044 802AEA34 24020003 */ li $v0, 3
/* 118048 802AEA38 54440006 */ bnel $v0, $a0, .L802AEA54
/* 11804C 802AEA3C 24020003 */ li $v0, 3
/* 118050 802AEA40 34C50800 */ ori $a1, $a2, 0x800
/* 118054 802AEA44 30AEFFFF */ andi $t6, $a1, 0xffff
/* 118058 802AEA48 10000012 */ b .L802AEA94
/* 11805C 802AEA4C 01C02825 */ move $a1, $t6
/* 118060 802AEA50 24020003 */ li $v0, 3
.L802AEA54:
/* 118064 802AEA54 14470009 */ bne $v0, $a3, .L802AEA7C
/* 118068 802AEA58 3C0F8016 */ lui $t7, %hi(D_8015F5A4) # $t7, 0x8016
/* 11806C 802AEA5C 14430007 */ bne $v0, $v1, .L802AEA7C
/* 118070 802AEA60 00000000 */ nop
/* 118074 802AEA64 14440005 */ bne $v0, $a0, .L802AEA7C
/* 118078 802AEA68 00000000 */ nop
/* 11807C 802AEA6C 34C51000 */ ori $a1, $a2, 0x1000
/* 118080 802AEA70 30B9FFFF */ andi $t9, $a1, 0xffff
/* 118084 802AEA74 10000007 */ b .L802AEA94
/* 118088 802AEA78 03202825 */ move $a1, $t9
.L802AEA7C:
/* 11808C 802AEA7C 8DEFF5A4 */ lw $t7, %lo(D_8015F5A4)($t7)
/* 118090 802AEA80 51E00005 */ beql $t7, $zero, .L802AEA98
/* 118094 802AEA84 4622003E */ c.le.d $f0, $f2
/* 118098 802AEA88 34C50200 */ ori $a1, $a2, 0x200
/* 11809C 802AEA8C 30B8FFFF */ andi $t8, $a1, 0xffff
/* 1180A0 802AEA90 03002825 */ move $a1, $t8
.L802AEA94:
/* 1180A4 802AEA94 4622003E */ c.le.d $f0, $f2
.L802AEA98:
/* 1180A8 802AEA98 A5050000 */ sh $a1, ($t0)
/* 1180AC 802AEA9C 45020008 */ bc1fl .L802AEAC0
/* 1180B0 802AEAA0 4620103C */ c.lt.d $f2, $f0
/* 1180B4 802AEAA4 4622603E */ c.le.d $f12, $f2
/* 1180B8 802AEAA8 34B94000 */ ori $t9, $a1, 0x4000
/* 1180BC 802AEAAC 45020004 */ bc1fl .L802AEAC0
/* 1180C0 802AEAB0 4620103C */ c.lt.d $f2, $f0
/* 1180C4 802AEAB4 10000010 */ b .L802AEAF8
/* 1180C8 802AEAB8 A5190000 */ sh $t9, ($t0)
/* 1180CC 802AEABC 4620103C */ c.lt.d $f2, $f0
.L802AEAC0:
/* 1180D0 802AEAC0 00000000 */ nop
/* 1180D4 802AEAC4 4502000A */ bc1fl .L802AEAF0
/* 1180D8 802AEAC8 950E0000 */ lhu $t6, ($t0)
/* 1180DC 802AEACC 4620603E */ c.le.d $f12, $f0
/* 1180E0 802AEAD0 00000000 */ nop
/* 1180E4 802AEAD4 45020006 */ bc1fl .L802AEAF0
/* 1180E8 802AEAD8 950E0000 */ lhu $t6, ($t0)
/* 1180EC 802AEADC 950F0000 */ lhu $t7, ($t0)
/* 1180F0 802AEAE0 35F88000 */ ori $t8, $t7, 0x8000
/* 1180F4 802AEAE4 10000004 */ b .L802AEAF8
/* 1180F8 802AEAE8 A5180000 */ sh $t8, ($t0)
/* 1180FC 802AEAEC 950E0000 */ lhu $t6, ($t0)
.L802AEAF0:
/* 118100 802AEAF0 35D92000 */ ori $t9, $t6, 0x2000
/* 118104 802AEAF4 A5190000 */ sh $t9, ($t0)
.L802AEAF8:
/* 118108 802AEAF8 3C0F8016 */ lui $t7, %hi(D_8015F588) # $t7, 0x8016
/* 11810C 802AEAFC 95EFF588 */ lhu $t7, %lo(D_8015F588)($t7)
/* 118110 802AEB00 3C018016 */ lui $at, %hi(D_8015F588) # $at, 0x8016
/* 118114 802AEB04 25F80001 */ addiu $t8, $t7, 1
/* 118118 802AEB08 A438F588 */ sh $t8, %lo(D_8015F588)($at)
.L802AEB0C:
/* 11811C 802AEB0C 03E00008 */ jr $ra
/* 118120 802AEB10 27BD00C8 */ addiu $sp, $sp, 0xc8