Files
SpaghettiKart/asm/non_matchings/code_80005FD0/func_80011014.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

403 lines
19 KiB
ArmAsm

glabel func_80011014
/* 011C14 80011014 27BDFF10 */ addiu $sp, $sp, -0xf0
/* 011C18 80011018 AFBF0074 */ sw $ra, 0x74($sp)
/* 011C1C 8001101C AFBE0070 */ sw $fp, 0x70($sp)
/* 011C20 80011020 AFB7006C */ sw $s7, 0x6c($sp)
/* 011C24 80011024 AFB60068 */ sw $s6, 0x68($sp)
/* 011C28 80011028 AFB50064 */ sw $s5, 0x64($sp)
/* 011C2C 8001102C AFB40060 */ sw $s4, 0x60($sp)
/* 011C30 80011030 AFB3005C */ sw $s3, 0x5c($sp)
/* 011C34 80011034 AFB20058 */ sw $s2, 0x58($sp)
/* 011C38 80011038 AFB10054 */ sw $s1, 0x54($sp)
/* 011C3C 8001103C AFB00050 */ sw $s0, 0x50($sp)
/* 011C40 80011040 F7BE0048 */ sdc1 $f30, 0x48($sp)
/* 011C44 80011044 F7BC0040 */ sdc1 $f28, 0x40($sp)
/* 011C48 80011048 F7BA0038 */ sdc1 $f26, 0x38($sp)
/* 011C4C 8001104C F7B80030 */ sdc1 $f24, 0x30($sp)
/* 011C50 80011050 F7B60028 */ sdc1 $f22, 0x28($sp)
/* 011C54 80011054 F7B40020 */ sdc1 $f20, 0x20($sp)
/* 011C58 80011058 AFA600F8 */ sw $a2, 0xf8($sp)
/* 011C5C 8001105C AFA700FC */ sw $a3, 0xfc($sp)
/* 011C60 80011060 84AF0004 */ lh $t7, 4($a1)
/* 011C64 80011064 84AE0000 */ lh $t6, ($a1)
/* 011C68 80011068 3C12800E */ lui $s2, %hi(gCurrentCourseId)
/* 011C6C 8001106C 448F3000 */ mtc1 $t7, $f6
/* 011C70 80011070 448E2000 */ mtc1 $t6, $f4
/* 011C74 80011074 3C0144FA */ li $at, 0x44FA0000 # 2000.000000
/* 011C78 80011078 468035A0 */ cvt.s.w $f22, $f6
/* 011C7C 8001107C 2652C5A0 */ addiu $s2, %lo(gCurrentCourseId) # addiu $s2, $s2, -0x3a60
/* 011C80 80011080 4480F000 */ mtc1 $zero, $f30
/* 011C84 80011084 44817000 */ mtc1 $at, $f14
/* 011C88 80011088 00808825 */ move $s1, $a0
/* 011C8C 8001108C 46802520 */ cvt.s.w $f20, $f4
/* 011C90 80011090 4406B000 */ mfc1 $a2, $f22
/* 011C94 80011094 00008025 */ move $s0, $zero
/* 011C98 80011098 86470000 */ lh $a3, ($s2)
/* 011C9C 8001109C AFA500F4 */ sw $a1, 0xf4($sp)
/* 011CA0 800110A0 AFA00010 */ sw $zero, 0x10($sp)
/* 011CA4 800110A4 0C0043D0 */ jal func_80010F40
/* 011CA8 800110A8 4600A306 */ mov.s $f12, $f20
/* 011CAC 800110AC 8FA500F8 */ lw $a1, 0xf8($sp)
/* 011CB0 800110B0 46000706 */ mov.s $f28, $f0
/* 011CB4 800110B4 00009825 */ move $s3, $zero
/* 011CB8 800110B8 18A0013B */ blez $a1, .L800115A8
/* 011CBC 800110BC 241E0012 */ li $fp, 18
/* 011CC0 800110C0 44804000 */ mtc1 $zero, $f8
/* 011CC4 800110C4 3C158016 */ lui $s5, %hi(D_80162E70) # $s5, 0x8016
/* 011CC8 800110C8 3C14800E */ lui $s4, %hi(gIsMirrorMode)
/* 011CCC 800110CC 460042A1 */ cvt.d.s $f10, $f8
/* 011CD0 800110D0 2694C604 */ addiu $s4, %lo(gIsMirrorMode) # addiu $s4, $s4, -0x39fc
/* 011CD4 800110D4 F7AA0078 */ sdc1 $f10, 0x78($sp)
/* 011CD8 800110D8 26B52E70 */ addiu $s5, %lo(D_80162E70) # addiu $s5, $s5, 0x2e70
/* 011CDC 800110DC E7B400C0 */ swc1 $f20, 0xc0($sp)
/* 011CE0 800110E0 E7B600B8 */ swc1 $f22, 0xb8($sp)
/* 011CE4 800110E4 2417000E */ li $s7, 14
/* 011CE8 800110E8 2416000D */ li $s6, 13
/* 011CEC 800110EC 8FA500F8 */ lw $a1, 0xf8($sp)
.L800110F0:
/* 011CF0 800110F0 26660001 */ addiu $a2, $s3, 1
/* 011CF4 800110F4 266E0002 */ addiu $t6, $s3, 2
/* 011CF8 800110F8 0265001A */ div $zero, $s3, $a1
/* 011CFC 800110FC 0000C010 */ mfhi $t8
/* 011D00 80011100 8FA700F4 */ lw $a3, 0xf4($sp)
/* 011D04 80011104 0018C8C0 */ sll $t9, $t8, 3
/* 011D08 80011108 00C5001A */ div $zero, $a2, $a1
/* 011D0C 8001110C 00005010 */ mfhi $t2
/* 011D10 80011110 03271021 */ addu $v0, $t9, $a3
/* 011D14 80011114 84480000 */ lh $t0, ($v0)
/* 011D18 80011118 01C5001A */ div $zero, $t6, $a1
/* 011D1C 8001111C 000A58C0 */ sll $t3, $t2, 3
/* 011D20 80011120 00007810 */ mfhi $t7
/* 011D24 80011124 000FC0C0 */ sll $t8, $t7, 3
/* 011D28 80011128 01671821 */ addu $v1, $t3, $a3
/* 011D2C 8001112C 84490004 */ lh $t1, 4($v0)
/* 011D30 80011130 846C0000 */ lh $t4, ($v1)
/* 011D34 80011134 44882000 */ mtc1 $t0, $f4
/* 011D38 80011138 03072021 */ addu $a0, $t8, $a3
/* 011D3C 8001113C 84990000 */ lh $t9, ($a0)
/* 011D40 80011140 468026A0 */ cvt.s.w $f26, $f4
/* 011D44 80011144 846D0004 */ lh $t5, 4($v1)
/* 011D48 80011148 44893000 */ mtc1 $t1, $f6
/* 011D4C 8001114C 448C4000 */ mtc1 $t4, $f8
/* 011D50 80011150 44992000 */ mtc1 $t9, $f4
/* 011D54 80011154 468033A0 */ cvt.s.w $f14, $f6
/* 011D58 80011158 448D5000 */ mtc1 $t5, $f10
/* 011D5C 8001115C 14A00002 */ bnez $a1, .L80011168
/* 011D60 80011160 00000000 */ nop
/* 011D64 80011164 0007000D */ break 7
.L80011168:
/* 011D68 80011168 2401FFFF */ li $at, -1
/* 011D6C 8001116C 14A10004 */ bne $a1, $at, .L80011180
/* 011D70 80011170 3C018000 */ lui $at, 0x8000
/* 011D74 80011174 16610002 */ bne $s3, $at, .L80011180
/* 011D78 80011178 00000000 */ nop
/* 011D7C 8001117C 0006000D */ break 6
.L80011180:
/* 011D80 80011180 46804520 */ cvt.s.w $f20, $f8
/* 011D84 80011184 14A00002 */ bnez $a1, .L80011190
/* 011D88 80011188 00000000 */ nop
/* 011D8C 8001118C 0007000D */ break 7
.L80011190:
/* 011D90 80011190 2401FFFF */ li $at, -1
/* 011D94 80011194 14A10004 */ bne $a1, $at, .L800111A8
/* 011D98 80011198 3C018000 */ lui $at, 0x8000
/* 011D9C 8001119C 14C10002 */ bne $a2, $at, .L800111A8
/* 011DA0 800111A0 00000000 */ nop
/* 011DA4 800111A4 0006000D */ break 6
.L800111A8:
/* 011DA8 800111A8 468021A0 */ cvt.s.w $f6, $f4
/* 011DAC 800111AC 468055A0 */ cvt.s.w $f22, $f10
/* 011DB0 800111B0 E7A600D0 */ swc1 $f6, 0xd0($sp)
/* 011DB4 800111B4 84880004 */ lh $t0, 4($a0)
/* 011DB8 800111B8 14A00002 */ bnez $a1, .L800111C4
/* 011DBC 800111BC 00000000 */ nop
/* 011DC0 800111C0 0007000D */ break 7
.L800111C4:
/* 011DC4 800111C4 2401FFFF */ li $at, -1
/* 011DC8 800111C8 14A10004 */ bne $a1, $at, .L800111DC
/* 011DCC 800111CC 3C018000 */ li $at, 0x80000000 # -0.000000
/* 011DD0 800111D0 15C10002 */ bne $t6, $at, .L800111DC
/* 011DD4 800111D4 00000000 */ nop
/* 011DD8 800111D8 0006000D */ break 6
.L800111DC:
/* 011DDC 800111DC 461AA001 */ sub.s $f0, $f20, $f26
/* 011DE0 800111E0 44884000 */ mtc1 $t0, $f8
/* 011DE4 800111E4 E7AE00DC */ swc1 $f14, 0xdc($sp)
/* 011DE8 800111E8 460EB081 */ sub.s $f2, $f22, $f14
/* 011DEC 800111EC 46000102 */ mul.s $f4, $f0, $f0
/* 011DF0 800111F0 AFA60084 */ sw $a2, 0x84($sp)
/* 011DF4 800111F4 46021182 */ mul.s $f6, $f2, $f2
/* 011DF8 800111F8 468042A0 */ cvt.s.w $f10, $f8
/* 011DFC 800111FC 44804000 */ mtc1 $zero, $f8
/* 011E00 80011200 00000000 */ nop
/* 011E04 80011204 E7A800AC */ swc1 $f8, 0xac($sp)
/* 011E08 80011208 46062300 */ add.s $f12, $f4, $f6
/* 011E0C 8001120C 0C033850 */ jal sqrtf
/* 011E10 80011210 E7AA00CC */ swc1 $f10, 0xcc($sp)
/* 011E14 80011214 C7AA00D0 */ lwc1 $f10, 0xd0($sp)
/* 011E18 80011218 C7A400CC */ lwc1 $f4, 0xcc($sp)
/* 011E1C 8001121C 46000606 */ mov.s $f24, $f0
/* 011E20 80011220 46145081 */ sub.s $f2, $f10, $f20
/* 011E24 80011224 E7B400D8 */ swc1 $f20, 0xd8($sp)
/* 011E28 80011228 E7B600D4 */ swc1 $f22, 0xd4($sp)
/* 011E2C 8001122C 46162381 */ sub.s $f14, $f4, $f22
/* 011E30 80011230 46021182 */ mul.s $f6, $f2, $f2
/* 011E34 80011234 E7BA00E0 */ swc1 $f26, 0xe0($sp)
/* 011E38 80011238 460E7202 */ mul.s $f8, $f14, $f14
/* 011E3C 8001123C 0C033850 */ jal sqrtf
/* 011E40 80011240 46083300 */ add.s $f12, $f6, $f8
/* 011E44 80011244 46180100 */ add.s $f4, $f0, $f24
/* 011E48 80011248 3C01800F */ lui $at, %hi(D_800ED068)
/* 011E4C 8001124C D42AD068 */ ldc1 $f10, %lo(D_800ED068)($at)
/* 011E50 80011250 3C013FF0 */ li $at, 0x3FF00000 # 1.875000
/* 011E54 80011254 460021A1 */ cvt.d.s $f6, $f4
/* 011E58 80011258 46265203 */ div.d $f8, $f10, $f6
/* 011E5C 8001125C D7A60078 */ ldc1 $f6, 0x78($sp)
/* 011E60 80011260 44805000 */ mtc1 $zero, $f10
/* 011E64 80011264 44815800 */ mtc1 $at, $f11
/* 011E68 80011268 00000000 */ nop
/* 011E6C 8001126C 462A303E */ c.le.d $f6, $f10
/* 011E70 80011270 46204120 */ cvt.s.d $f4, $f8
/* 011E74 80011274 450000C8 */ bc1f .L80011598
/* 011E78 80011278 E7A40094 */ swc1 $f4, 0x94($sp)
/* 011E7C 8001127C C7A800AC */ lwc1 $f8, 0xac($sp)
/* 011E80 80011280 46004521 */ cvt.d.s $f20, $f8
/* 011E84 80011284 3C013FF0 */ li $at, 0x3FF00000 # 1.875000
.L80011288:
/* 011E88 80011288 44812800 */ mtc1 $at, $f5
/* 011E8C 8001128C 44802000 */ mtc1 $zero, $f4
/* 011E90 80011290 3C013FE0 */ li $at, 0x3FE00000 # 1.750000
/* 011E94 80011294 44815800 */ mtc1 $at, $f11
/* 011E98 80011298 46342001 */ sub.d $f0, $f4, $f20
/* 011E9C 8001129C 44805000 */ mtc1 $zero, $f10
/* 011EA0 800112A0 00000000 */ nop
/* 011EA4 800112A4 462A0182 */ mul.d $f6, $f0, $f10
/* 011EA8 800112A8 44805000 */ mtc1 $zero, $f10
/* 011EAC 800112AC 44815800 */ mtc1 $at, $f11
/* 011EB0 800112B0 46203202 */ mul.d $f8, $f6, $f0
/* 011EB4 800112B4 462040A0 */ cvt.s.d $f2, $f8
/* 011EB8 800112B8 46340102 */ mul.d $f4, $f0, $f20
/* 011EBC 800112BC 44804000 */ mtc1 $zero, $f8
/* 011EC0 800112C0 44814800 */ mtc1 $at, $f9
/* 011EC4 800112C4 462A2180 */ add.d $f6, $f4, $f10
/* 011EC8 800112C8 4628A102 */ mul.d $f4, $f20, $f8
/* 011ECC 800112CC 462033A0 */ cvt.s.d $f14, $f6
/* 011ED0 800112D0 46342282 */ mul.d $f10, $f4, $f20
/* 011ED4 800112D4 C7A600E0 */ lwc1 $f6, 0xe0($sp)
/* 011ED8 800112D8 C7A400D8 */ lwc1 $f4, 0xd8($sp)
/* 011EDC 800112DC 46061202 */ mul.s $f8, $f2, $f6
/* 011EE0 800112E0 46205420 */ cvt.s.d $f16, $f10
/* 011EE4 800112E4 46047282 */ mul.s $f10, $f14, $f4
/* 011EE8 800112E8 C7A400D0 */ lwc1 $f4, 0xd0($sp)
/* 011EEC 800112EC 460A4180 */ add.s $f6, $f8, $f10
/* 011EF0 800112F0 46048202 */ mul.s $f8, $f16, $f4
/* 011EF4 800112F4 C7A400DC */ lwc1 $f4, 0xdc($sp)
/* 011EF8 800112F8 C7AA00C0 */ lwc1 $f10, 0xc0($sp)
/* 011EFC 800112FC 46083600 */ add.s $f24, $f6, $f8
/* 011F00 80011300 46041182 */ mul.s $f6, $f2, $f4
/* 011F04 80011304 C7A800D4 */ lwc1 $f8, 0xd4($sp)
/* 011F08 80011308 460AC481 */ sub.s $f18, $f24, $f10
/* 011F0C 8001130C 46087282 */ mul.s $f10, $f14, $f8
/* 011F10 80011310 C7A800CC */ lwc1 $f8, 0xcc($sp)
/* 011F14 80011314 460A3100 */ add.s $f4, $f6, $f10
/* 011F18 80011318 46088182 */ mul.s $f6, $f16, $f8
/* 011F1C 8001131C C7AA00B8 */ lwc1 $f10, 0xb8($sp)
/* 011F20 80011320 46129202 */ mul.s $f8, $f18, $f18
/* 011F24 80011324 46062680 */ add.s $f26, $f4, $f6
/* 011F28 80011328 460AD581 */ sub.s $f22, $f26, $f10
/* 011F2C 8001132C 4616B102 */ mul.s $f4, $f22, $f22
/* 011F30 80011330 0C033850 */ jal sqrtf
/* 011F34 80011334 46044300 */ add.s $f12, $f8, $f4
/* 011F38 80011338 4600F780 */ add.s $f30, $f30, $f0
/* 011F3C 8001133C 3C0141A0 */ li $at, 0x41A00000 # 20.000000
/* 011F40 80011340 44813000 */ mtc1 $at, $f6
/* 011F44 80011344 E7B800C0 */ swc1 $f24, 0xc0($sp)
/* 011F48 80011348 E7BA00B8 */ swc1 $f26, 0xb8($sp)
/* 011F4C 8001134C 461E303C */ c.lt.s $f6, $f30
/* 011F50 80011350 00000000 */ nop
/* 011F54 80011354 4503000B */ bc1tl .L80011384
/* 011F58 80011358 8E890000 */ lw $t1, ($s4)
/* 011F5C 8001135C 56600083 */ bnel $s3, $zero, .L8001156C
/* 011F60 80011360 C7A40094 */ lwc1 $f4, 0x94($sp)
/* 011F64 80011364 44805800 */ mtc1 $zero, $f11
/* 011F68 80011368 44805000 */ mtc1 $zero, $f10
/* 011F6C 8001136C 00000000 */ nop
/* 011F70 80011370 46345032 */ c.eq.d $f10, $f20
/* 011F74 80011374 00000000 */ nop
/* 011F78 80011378 4502007C */ bc1fl .L8001156C
/* 011F7C 8001137C C7A40094 */ lwc1 $f4, 0x94($sp)
/* 011F80 80011380 8E890000 */ lw $t1, ($s4)
.L80011384:
/* 011F84 80011384 5120000E */ beql $t1, $zero, .L800113C0
/* 011F88 80011388 4600C10D */ trunc.w.s $f4, $f24
/* 011F8C 8001138C 4600C307 */ neg.s $f12, $f24
/* 011F90 80011390 4406D000 */ mfc1 $a2, $f26
/* 011F94 80011394 4600620D */ trunc.w.s $f8, $f12
/* 011F98 80011398 4600E386 */ mov.s $f14, $f28
/* 011F9C 8001139C 440B4000 */ mfc1 $t3, $f8
/* 011FA0 800113A0 00000000 */ nop
/* 011FA4 800113A4 A62B0000 */ sh $t3, ($s1)
/* 011FA8 800113A8 AFB00010 */ sw $s0, 0x10($sp)
/* 011FAC 800113AC 0C0043E8 */ jal func_80010FA0
/* 011FB0 800113B0 86470000 */ lh $a3, ($s2)
/* 011FB4 800113B4 1000000C */ b .L800113E8
/* 011FB8 800113B8 46000506 */ mov.s $f20, $f0
/* 011FBC 800113BC 4600C10D */ trunc.w.s $f4, $f24
.L800113C0:
/* 011FC0 800113C0 4406D000 */ mfc1 $a2, $f26
/* 011FC4 800113C4 4600C306 */ mov.s $f12, $f24
/* 011FC8 800113C8 4600E386 */ mov.s $f14, $f28
/* 011FCC 800113CC 440D2000 */ mfc1 $t5, $f4
/* 011FD0 800113D0 00000000 */ nop
/* 011FD4 800113D4 A62D0000 */ sh $t5, ($s1)
/* 011FD8 800113D8 AFB00010 */ sw $s0, 0x10($sp)
/* 011FDC 800113DC 0C0043E8 */ jal func_80010FA0
/* 011FE0 800113E0 86470000 */ lh $a3, ($s2)
/* 011FE4 800113E4 46000506 */ mov.s $f20, $f0
.L800113E8:
/* 011FE8 800113E8 4600D18D */ trunc.w.s $f6, $f26
/* 011FEC 800113EC 440F3000 */ mfc1 $t7, $f6
/* 011FF0 800113F0 00000000 */ nop
/* 011FF4 800113F4 A62F0004 */ sh $t7, 4($s1)
/* 011FF8 800113F8 0C0AAF50 */ jal func_802ABD40
/* 011FFC 800113FC 96A4000A */ lhu $a0, 0xa($s5)
/* 012000 80011400 A6220006 */ sh $v0, 6($s1)
/* 012004 80011404 3C01800F */ lui $at, %hi(D_800ED070)
/* 012008 80011408 D42AD070 */ ldc1 $f10, %lo(D_800ED070)($at)
/* 01200C 8001140C 4600A0A1 */ cvt.d.s $f2, $f20
/* 012010 80011410 462A103C */ c.lt.d $f2, $f10
/* 012014 80011414 00000000 */ nop
/* 012018 80011418 45020004 */ bc1fl .L8001142C
/* 01201C 8001141C 86420000 */ lh $v0, ($s2)
/* 012020 80011420 1000004A */ b .L8001154C
/* 012024 80011424 4600E506 */ mov.s $f20, $f28
/* 012028 80011428 86420000 */ lh $v0, ($s2)
.L8001142C:
/* 01202C 8001142C 3C01402E */ li $at, 0x402E0000 # 2.718750
/* 012030 80011430 50560008 */ beql $v0, $s6, .L80011454
/* 012034 80011434 44812800 */ mtc1 $at, $f5
/* 012038 80011438 1057000F */ beq $v0, $s7, .L80011478
/* 01203C 8001143C 2A010474 */ slti $at, $s0, 0x474
/* 012040 80011440 105E0023 */ beq $v0, $fp, .L800114D0
/* 012044 80011444 2A0100CD */ slti $at, $s0, 0xcd
/* 012048 80011448 10000037 */ b .L80011528
/* 01204C 8001144C 3C014024 */ li $at, 0x40240000 # 2.562500
/* 012050 80011450 44812800 */ mtc1 $at, $f5
.L80011454:
/* 012054 80011454 44802000 */ mtc1 $zero, $f4
/* 012058 80011458 4600E221 */ cvt.d.s $f8, $f28
/* 01205C 8001145C 46244001 */ sub.d $f0, $f8, $f4
/* 012060 80011460 4620103C */ c.lt.d $f2, $f0
/* 012064 80011464 00000000 */ nop
/* 012068 80011468 45020039 */ bc1fl .L80011550
/* 01206C 8001146C 4600A20D */ trunc.w.s $f8, $f20
/* 012070 80011470 10000036 */ b .L8001154C
/* 012074 80011474 46200520 */ cvt.s.d $f20, $f0
.L80011478:
/* 012078 80011478 14200005 */ bnez $at, .L80011490
/* 01207C 8001147C 2A010481 */ slti $at, $s0, 0x481
/* 012080 80011480 50200004 */ beql $at, $zero, .L80011494
/* 012084 80011484 3C014024 */ lui $at, 0x4024
/* 012088 80011488 10000030 */ b .L8001154C
/* 01208C 8001148C 4600E506 */ mov.s $f20, $f28
.L80011490:
/* 012090 80011490 3C014024 */ li $at, 0x40240000 # 2.562500
.L80011494:
/* 012094 80011494 44813800 */ mtc1 $at, $f7
/* 012098 80011498 44803000 */ mtc1 $zero, $f6
/* 01209C 8001149C 4600E021 */ cvt.d.s $f0, $f28
/* 0120A0 800114A0 3C014010 */ li $at, 0x40100000 # 2.250000
/* 0120A4 800114A4 46260281 */ sub.d $f10, $f0, $f6
/* 0120A8 800114A8 462A103C */ c.lt.d $f2, $f10
/* 0120AC 800114AC 00000000 */ nop
/* 0120B0 800114B0 45020027 */ bc1fl .L80011550
/* 0120B4 800114B4 4600A20D */ trunc.w.s $f8, $f20
/* 0120B8 800114B8 44814800 */ mtc1 $at, $f9
/* 0120BC 800114BC 44804000 */ mtc1 $zero, $f8
/* 0120C0 800114C0 00000000 */ nop
/* 0120C4 800114C4 46280101 */ sub.d $f4, $f0, $f8
/* 0120C8 800114C8 10000020 */ b .L8001154C
/* 0120CC 800114CC 46202520 */ cvt.s.d $f20, $f4
.L800114D0:
/* 0120D0 800114D0 14200005 */ bnez $at, .L800114E8
/* 0120D4 800114D4 2A0100DC */ slti $at, $s0, 0xdc
/* 0120D8 800114D8 50200004 */ beql $at, $zero, .L800114EC
/* 0120DC 800114DC 3C014024 */ li $at, 0x40240000 # 2.562500
/* 0120E0 800114E0 1000001A */ b .L8001154C
/* 0120E4 800114E4 4600E506 */ mov.s $f20, $f28
.L800114E8:
/* 0120E8 800114E8 3C014024 */ li $at, 0x40240000 # 2.562500
.L800114EC:
/* 0120EC 800114EC 44813800 */ mtc1 $at, $f7
/* 0120F0 800114F0 44803000 */ mtc1 $zero, $f6
/* 0120F4 800114F4 4600E021 */ cvt.d.s $f0, $f28
/* 0120F8 800114F8 3C014010 */ li $at, 0x40100000 # 2.250000
/* 0120FC 800114FC 46260281 */ sub.d $f10, $f0, $f6
/* 012100 80011500 462A103C */ c.lt.d $f2, $f10
/* 012104 80011504 00000000 */ nop
/* 012108 80011508 45020011 */ bc1fl .L80011550
/* 01210C 8001150C 4600A20D */ trunc.w.s $f8, $f20
/* 012110 80011510 44814800 */ mtc1 $at, $f9
/* 012114 80011514 44804000 */ mtc1 $zero, $f8
/* 012118 80011518 00000000 */ nop
/* 01211C 8001151C 46280101 */ sub.d $f4, $f0, $f8
/* 012120 80011520 1000000A */ b .L8001154C
/* 012124 80011524 46202520 */ cvt.s.d $f20, $f4
.L80011528:
/* 012128 80011528 44815800 */ mtc1 $at, $f11
/* 01212C 8001152C 44805000 */ mtc1 $zero, $f10
/* 012130 80011530 4600E1A1 */ cvt.d.s $f6, $f28
/* 012134 80011534 462A3001 */ sub.d $f0, $f6, $f10
/* 012138 80011538 4620103C */ c.lt.d $f2, $f0
/* 01213C 8001153C 00000000 */ nop
/* 012140 80011540 45020003 */ bc1fl .L80011550
/* 012144 80011544 4600A20D */ trunc.w.s $f8, $f20
/* 012148 80011548 46200520 */ cvt.s.d $f20, $f0
.L8001154C:
/* 01214C 8001154C 4600A20D */ trunc.w.s $f8, $f20
.L80011550:
/* 012150 80011550 4480F000 */ mtc1 $zero, $f30
/* 012154 80011554 4600A706 */ mov.s $f28, $f20
/* 012158 80011558 26310008 */ addiu $s1, $s1, 8
/* 01215C 8001155C 44194000 */ mfc1 $t9, $f8
/* 012160 80011560 26100001 */ addiu $s0, $s0, 1
/* 012164 80011564 A639FFFA */ sh $t9, -6($s1)
/* 012168 80011568 C7A40094 */ lwc1 $f4, 0x94($sp)
.L8001156C:
/* 01216C 8001156C C7A000AC */ lwc1 $f0, 0xac($sp)
/* 012170 80011570 3C013FF0 */ li $at, 0x3FF00000 # 1.875000
/* 012174 80011574 44813800 */ mtc1 $at, $f7
/* 012178 80011578 46040000 */ add.s $f0, $f0, $f4
/* 01217C 8001157C 44803000 */ mtc1 $zero, $f6
/* 012180 80011580 46000521 */ cvt.d.s $f20, $f0
/* 012184 80011584 E7A000AC */ swc1 $f0, 0xac($sp)
/* 012188 80011588 4626A03E */ c.le.d $f20, $f6
/* 01218C 8001158C 00000000 */ nop
/* 012190 80011590 4503FF3D */ bc1tl .L80011288
/* 012194 80011594 3C013FF0 */ lui $at, 0x3ff0
.L80011598:
/* 012198 80011598 8FB30084 */ lw $s3, 0x84($sp)
/* 01219C 8001159C 8FA800F8 */ lw $t0, 0xf8($sp)
/* 0121A0 800115A0 5668FED3 */ bnel $s3, $t0, .L800110F0
/* 0121A4 800115A4 8FA500F8 */ lw $a1, 0xf8($sp)
.L800115A8:
/* 0121A8 800115A8 8FBF0074 */ lw $ra, 0x74($sp)
/* 0121AC 800115AC 02001025 */ move $v0, $s0
/* 0121B0 800115B0 8FB00050 */ lw $s0, 0x50($sp)
/* 0121B4 800115B4 D7B40020 */ ldc1 $f20, 0x20($sp)
/* 0121B8 800115B8 D7B60028 */ ldc1 $f22, 0x28($sp)
/* 0121BC 800115BC D7B80030 */ ldc1 $f24, 0x30($sp)
/* 0121C0 800115C0 D7BA0038 */ ldc1 $f26, 0x38($sp)
/* 0121C4 800115C4 D7BC0040 */ ldc1 $f28, 0x40($sp)
/* 0121C8 800115C8 D7BE0048 */ ldc1 $f30, 0x48($sp)
/* 0121CC 800115CC 8FB10054 */ lw $s1, 0x54($sp)
/* 0121D0 800115D0 8FB20058 */ lw $s2, 0x58($sp)
/* 0121D4 800115D4 8FB3005C */ lw $s3, 0x5c($sp)
/* 0121D8 800115D8 8FB40060 */ lw $s4, 0x60($sp)
/* 0121DC 800115DC 8FB50064 */ lw $s5, 0x64($sp)
/* 0121E0 800115E0 8FB60068 */ lw $s6, 0x68($sp)
/* 0121E4 800115E4 8FB7006C */ lw $s7, 0x6c($sp)
/* 0121E8 800115E8 8FBE0070 */ lw $fp, 0x70($sp)
/* 0121EC 800115EC 03E00008 */ jr $ra
/* 0121F0 800115F0 27BD00F0 */ addiu $sp, $sp, 0xf0