Files
SpaghettiKart/asm/non_matchings/code_80005FD0/func_80017054.s
Tyler McGavran 18e7c8939b Matches in code_80005FD0 (#580)
Signed-off-by: Taggerung <tyler.taggerung@email.com>
Co-authored-by: Taggerung <tyler.taggerung@email.com>
2024-03-04 11:26:36 -05:00

467 lines
23 KiB
ArmAsm

.section .late_rodata
glabel D_800ED270
.double -10000.0
glabel D_800ED278
.double 10000.0
glabel D_800ED280
.double 10000.0
.section .text
glabel func_80017054
/* 017C54 80017054 00077080 */ sll $t6, $a3, 2
/* 017C58 80017058 3C0F8016 */ lui $t7, %hi(D_80164648) # $t7, 0x8016
/* 017C5C 8001705C 25EF4648 */ addiu $t7, %lo(D_80164648) # addiu $t7, $t7, 0x4648
/* 017C60 80017060 3C018016 */ lui $at, %hi(D_80164658)
/* 017C64 80017064 002E0821 */ addu $at, $at, $t6
/* 017C68 80017068 01CF4821 */ addu $t1, $t6, $t7
/* 017C6C 8001706C C5220000 */ lwc1 $f2, ($t1)
/* 017C70 80017070 C4244658 */ lwc1 $f4, %lo(D_80164658)($at)
/* 017C74 80017074 3C013F00 */ li $at, 0x3F000000 # 0.500000
/* 017C78 80017078 44814000 */ mtc1 $at, $f8
/* 017C7C 8001707C 46022181 */ sub.s $f6, $f4, $f2
/* 017C80 80017080 27BDFF48 */ addiu $sp, $sp, -0xb8
/* 017C84 80017084 3C188016 */ lui $t8, %hi(D_80163DD8) # $t8, 0x8016
/* 017C88 80017088 AFA500BC */ sw $a1, 0xbc($sp)
/* 017C8C 8001708C 46083282 */ mul.s $f10, $f6, $f8
/* 017C90 80017090 27183DD8 */ addiu $t8, %lo(D_80163DD8) # addiu $t8, $t8, 0x3dd8
/* 017C94 80017094 01D82821 */ addu $a1, $t6, $t8
/* 017C98 80017098 8CAA0000 */ lw $t2, ($a1)
/* 017C9C 8001709C AFBF0024 */ sw $ra, 0x24($sp)
/* 017CA0 800170A0 AFB00020 */ sw $s0, 0x20($sp)
/* 017CA4 800170A4 AFA600C0 */ sw $a2, 0xc0($sp)
/* 017CA8 800170A8 460A1100 */ add.s $f4, $f2, $f10
/* 017CAC 800170AC AFA700C4 */ sw $a3, 0xc4($sp)
/* 017CB0 800170B0 848200AE */ lh $v0, 0xae($a0)
/* 017CB4 800170B4 01C01825 */ move $v1, $t6
/* 017CB8 800170B8 3C0F8016 */ lui $t7, %hi(gNearestWaypointByCameraId) # $t7, 0x8016
/* 017CBC 800170BC E5240000 */ swc1 $f4, ($t1)
/* 017CC0 800170C0 3C0C8016 */ lui $t4, %hi(gWaypointCountByPathIndex) # 0x8016
/* 017CC4 800170C4 3C018016 */ lui $at, %hi(D_80163238) # $at, 0x8016
/* 017CC8 800170C8 25EF4668 */ addiu $t7, %lo(gNearestWaypointByCameraId) # addiu $t7, $t7, 0x4668
/* 017CCC 800170CC 00077040 */ sll $t6, $a3, 1
/* 017CD0 800170D0 000AC840 */ sll $t9, $t2, 1
/* 017CD4 800170D4 01996021 */ addu $t4, $t4, $t9
/* 017CD8 800170D8 01CF4021 */ addu $t0, $t6, $t7
/* 017CDC 800170DC AC223238 */ sw $v0, %lo(D_80163238)($at)
/* 017CE0 800170E0 958C45C8 */ lhu $t4, %lo(gWaypointCountByPathIndex)($t4) # 0x45c8($t4)
/* 017CE4 800170E4 85070000 */ lh $a3, ($t0)
/* 017CE8 800170E8 00808025 */ move $s0, $a0
/* 017CEC 800170EC AFAC0058 */ sw $t4, 0x58($sp)
/* 017CF0 800170F0 A7A70056 */ sh $a3, 0x56($sp)
/* 017CF4 800170F4 8C860008 */ lw $a2, 8($a0)
/* 017CF8 800170F8 C48E0004 */ lwc1 $f14, 4($a0)
/* 017CFC 800170FC C48C0000 */ lwc1 $f12, ($a0)
/* 017D00 80017100 AFA90048 */ sw $t1, 0x48($sp)
/* 017D04 80017104 AFA80040 */ sw $t0, 0x40($sp)
/* 017D08 80017108 AFA50044 */ sw $a1, 0x44($sp)
/* 017D0C 8001710C AFA3004C */ sw $v1, 0x4c($sp)
/* 017D10 80017110 AFAA005C */ sw $t2, 0x5c($sp)
/* 017D14 80017114 0C0034CF */ jal func_8000D33C
/* 017D18 80017118 AFAA0010 */ sw $t2, 0x10($sp)
/* 017D1C 8001711C 8FA90040 */ lw $t1, 0x40($sp)
/* 017D20 80017120 3C18800E */ lui $t8, %hi(gCurrentCourseId)
/* 017D24 80017124 24010004 */ li $at, 4
/* 017D28 80017128 A5220000 */ sh $v0, ($t1)
/* 017D2C 8001712C 8718C5A0 */ lh $t8, %lo(gCurrentCourseId)($t8)
/* 017D30 80017130 57010018 */ bnel $t8, $at, .L80017194
/* 017D34 80017134 8FA80058 */ lw $t0, 0x58($sp)
/* 017D38 80017138 85270000 */ lh $a3, ($t1)
/* 017D3C 8001713C 87B90056 */ lh $t9, 0x56($sp)
/* 017D40 80017140 53270014 */ beql $t9, $a3, .L80017194
/* 017D44 80017144 8FA80058 */ lw $t0, 0x58($sp)
/* 017D48 80017148 24010001 */ li $at, 1
/* 017D4C 8001714C 54E10011 */ bnel $a3, $at, .L80017194
/* 017D50 80017150 8FA80058 */ lw $t0, 0x58($sp)
/* 017D54 80017154 0C0ADF8D */ jal random_int
/* 017D58 80017158 24040004 */ li $a0, 4
/* 017D5C 8001715C 8FAC0044 */ lw $t4, 0x44($sp)
/* 017D60 80017160 AD820000 */ sw $v0, ($t4)
/* 017D64 80017164 AFA2005C */ sw $v0, 0x5c($sp)
/* 017D68 80017168 8FAD0040 */ lw $t5, 0x40($sp)
/* 017D6C 8001716C 8E060008 */ lw $a2, 8($s0)
/* 017D70 80017170 C60E0004 */ lwc1 $f14, 4($s0)
/* 017D74 80017174 C60C0000 */ lwc1 $f12, ($s0)
/* 017D78 80017178 85A70000 */ lh $a3, ($t5)
/* 017D7C 8001717C 0C0034CF */ jal func_8000D33C
/* 017D80 80017180 AFA20010 */ sw $v0, 0x10($sp)
/* 017D84 80017184 8FAE0040 */ lw $t6, 0x40($sp)
/* 017D88 80017188 A5C20000 */ sh $v0, ($t6)
/* 017D8C 8001718C 8FA90040 */ lw $t1, 0x40($sp)
/* 017D90 80017190 8FA80058 */ lw $t0, 0x58($sp)
.L80017194:
/* 017D94 80017194 85270000 */ lh $a3, ($t1)
/* 017D98 80017198 8FAE004C */ lw $t6, 0x4c($sp)
/* 017D9C 8001719C 87A6005E */ lh $a2, 0x5e($sp)
/* 017DA0 800171A0 24EF000A */ addiu $t7, $a3, 0xa
/* 017DA4 800171A4 01E8001A */ div $zero, $t7, $t0
/* 017DA8 800171A8 24EC000B */ addiu $t4, $a3, 0xb
/* 017DAC 800171AC 00001010 */ mfhi $v0
/* 017DB0 800171B0 0002C400 */ sll $t8, $v0, 0x10
/* 017DB4 800171B4 15000002 */ bnez $t0, .L800171C0
/* 017DB8 800171B8 00000000 */ nop
/* 017DBC 800171BC 0007000D */ break 7
.L800171C0:
/* 017DC0 800171C0 2401FFFF */ li $at, -1
/* 017DC4 800171C4 15010004 */ bne $t0, $at, .L800171D8
/* 017DC8 800171C8 3C018000 */ lui $at, 0x8000
/* 017DCC 800171CC 15E10002 */ bne $t7, $at, .L800171D8
/* 017DD0 800171D0 00000000 */ nop
/* 017DD4 800171D4 0006000D */ break 6
.L800171D8:
/* 017DD8 800171D8 0188001A */ div $zero, $t4, $t0
/* 017DDC 800171DC 3C0F8016 */ lui $t7, %hi(D_80164688) # $t7, 0x8016
/* 017DE0 800171E0 0018CC03 */ sra $t9, $t8, 0x10
/* 017DE4 800171E4 25EF4688 */ addiu $t7, %lo(D_80164688) # addiu $t7, $t7, 0x4688
/* 017DE8 800171E8 03201025 */ move $v0, $t9
/* 017DEC 800171EC 00006810 */ mfhi $t5
/* 017DF0 800171F0 01CF1821 */ addu $v1, $t6, $t7
/* 017DF4 800171F4 15000002 */ bnez $t0, .L80017200
/* 017DF8 800171F8 00000000 */ nop
/* 017DFC 800171FC 0007000D */ break 7
.L80017200:
/* 017E00 80017200 2401FFFF */ li $at, -1
/* 017E04 80017204 15010004 */ bne $t0, $at, .L80017218
/* 017E08 80017208 3C018000 */ lui $at, 0x8000
/* 017E0C 8001720C 15810002 */ bne $t4, $at, .L80017218
/* 017E10 80017210 00000000 */ nop
/* 017E14 80017214 0006000D */ break 6
.L80017218:
/* 017E18 80017218 A7AD006C */ sh $t5, 0x6c($sp)
/* 017E1C 8001721C 8C650000 */ lw $a1, ($v1)
/* 017E20 80017220 AFA30044 */ sw $v1, 0x44($sp)
/* 017E24 80017224 3044FFFF */ andi $a0, $v0, 0xffff
/* 017E28 80017228 0C002EF6 */ jal func_8000BBD8
/* 017E2C 8001722C AFA6003C */ sw $a2, 0x3c($sp)
/* 017E30 80017230 3C038016 */ lui $v1, %hi(D_80162FA0) # $v1, 0x8016
/* 017E34 80017234 24632FA0 */ addiu $v1, %lo(D_80162FA0) # addiu $v1, $v1, 0x2fa0
/* 017E38 80017238 C4660000 */ lwc1 $f6, ($v1)
/* 017E3C 8001723C 3C013FE0 */ li $at, 0x3FE00000 # 1.750000
/* 017E40 80017240 44810800 */ mtc1 $at, $f1
/* 017E44 80017244 44800000 */ mtc1 $zero, $f0
/* 017E48 80017248 46003221 */ cvt.d.s $f8, $f6
/* 017E4C 8001724C C4660008 */ lwc1 $f6, 8($v1)
/* 017E50 80017250 46204282 */ mul.d $f10, $f8, $f0
/* 017E54 80017254 8FB80044 */ lw $t8, 0x44($sp)
/* 017E58 80017258 46003221 */ cvt.d.s $f8, $f6
/* 017E5C 8001725C 97A4006C */ lhu $a0, 0x6c($sp)
/* 017E60 80017260 87A6003E */ lh $a2, 0x3e($sp)
/* 017E64 80017264 46205120 */ cvt.s.d $f4, $f10
/* 017E68 80017268 46204282 */ mul.d $f10, $f8, $f0
/* 017E6C 8001726C E7A4008C */ swc1 $f4, 0x8c($sp)
/* 017E70 80017270 46205120 */ cvt.s.d $f4, $f10
/* 017E74 80017274 E7A40084 */ swc1 $f4, 0x84($sp)
/* 017E78 80017278 0C002EF6 */ jal func_8000BBD8
/* 017E7C 8001727C 8F050000 */ lw $a1, ($t8)
/* 017E80 80017280 3C038016 */ lui $v1, %hi(D_80162FA0) # $v1, 0x8016
/* 017E84 80017284 24632FA0 */ addiu $v1, %lo(D_80162FA0) # addiu $v1, $v1, 0x2fa0
/* 017E88 80017288 C46A0000 */ lwc1 $f10, ($v1)
/* 017E8C 8001728C C7A6008C */ lwc1 $f6, 0x8c($sp)
/* 017E90 80017290 3C013FE0 */ li $at, 0x3FE00000 # 1.750000
/* 017E94 80017294 44810800 */ mtc1 $at, $f1
/* 017E98 80017298 44800000 */ mtc1 $zero, $f0
/* 017E9C 8001729C 46005121 */ cvt.d.s $f4, $f10
/* 017EA0 800172A0 46003221 */ cvt.d.s $f8, $f6
/* 017EA4 800172A4 46202182 */ mul.d $f6, $f4, $f0
/* 017EA8 800172A8 8FAB0058 */ lw $t3, 0x58($sp)
/* 017EAC 800172AC 8FB90040 */ lw $t9, 0x40($sp)
/* 017EB0 800172B0 87A6003E */ lh $a2, 0x3e($sp)
/* 017EB4 800172B4 46264280 */ add.d $f10, $f8, $f6
/* 017EB8 800172B8 C7A80084 */ lwc1 $f8, 0x84($sp)
/* 017EBC 800172BC 46205120 */ cvt.s.d $f4, $f10
/* 017EC0 800172C0 C46A0008 */ lwc1 $f10, 8($v1)
/* 017EC4 800172C4 460041A1 */ cvt.d.s $f6, $f8
/* 017EC8 800172C8 E7A4008C */ swc1 $f4, 0x8c($sp)
/* 017ECC 800172CC 46005121 */ cvt.d.s $f4, $f10
/* 017ED0 800172D0 46202202 */ mul.d $f8, $f4, $f0
/* 017ED4 800172D4 46283280 */ add.d $f10, $f6, $f8
/* 017ED8 800172D8 46205120 */ cvt.s.d $f4, $f10
/* 017EDC 800172DC E7A40084 */ swc1 $f4, 0x84($sp)
/* 017EE0 800172E0 87270000 */ lh $a3, ($t9)
/* 017EE4 800172E4 24EC0005 */ addiu $t4, $a3, 5
/* 017EE8 800172E8 018B001A */ div $zero, $t4, $t3
/* 017EEC 800172EC 24EF0006 */ addiu $t7, $a3, 6
/* 017EF0 800172F0 00001010 */ mfhi $v0
/* 017EF4 800172F4 00026C00 */ sll $t5, $v0, 0x10
/* 017EF8 800172F8 15600002 */ bnez $t3, .L80017304
/* 017EFC 800172FC 00000000 */ nop
/* 017F00 80017300 0007000D */ break 7
.L80017304:
/* 017F04 80017304 2401FFFF */ li $at, -1
/* 017F08 80017308 15610004 */ bne $t3, $at, .L8001731C
/* 017F0C 8001730C 3C018000 */ lui $at, 0x8000
/* 017F10 80017310 15810002 */ bne $t4, $at, .L8001731C
/* 017F14 80017314 00000000 */ nop
/* 017F18 80017318 0006000D */ break 6
.L8001731C:
/* 017F1C 8001731C 01EB001A */ div $zero, $t7, $t3
/* 017F20 80017320 8FAC005C */ lw $t4, 0x5c($sp)
/* 017F24 80017324 000D7403 */ sra $t6, $t5, 0x10
/* 017F28 80017328 01C01025 */ move $v0, $t6
/* 017F2C 8001732C 3C0E8016 */ lui $t6, %hi(D_80164550) # $t6, 0x8016
/* 017F30 80017330 00004810 */ mfhi $t1
/* 017F34 80017334 25CE4550 */ addiu $t6, %lo(D_80164550) # addiu $t6, $t6, 0x4550
/* 017F38 80017338 000C6880 */ sll $t5, $t4, 2
/* 017F3C 8001733C 0009C400 */ sll $t8, $t1, 0x10
/* 017F40 80017340 01AE5021 */ addu $t2, $t5, $t6
/* 017F44 80017344 8D480000 */ lw $t0, ($t2)
/* 017F48 80017348 0018CC03 */ sra $t9, $t8, 0x10
/* 017F4C 8001734C 15600002 */ bnez $t3, .L80017358
/* 017F50 80017350 00000000 */ nop
/* 017F54 80017354 0007000D */ break 7
.L80017358:
/* 017F58 80017358 2401FFFF */ li $at, -1
/* 017F5C 8001735C 15610004 */ bne $t3, $at, .L80017370
/* 017F60 80017360 3C018000 */ lui $at, 0x8000
/* 017F64 80017364 15E10002 */ bne $t7, $at, .L80017370
/* 017F68 80017368 00000000 */ nop
/* 017F6C 8001736C 0006000D */ break 6
.L80017370:
/* 017F70 80017370 001978C0 */ sll $t7, $t9, 3
/* 017F74 80017374 03204825 */ move $t1, $t9
/* 017F78 80017378 010FC021 */ addu $t8, $t0, $t7
/* 017F7C 8001737C 87190002 */ lh $t9, 2($t8)
/* 017F80 80017380 24F80001 */ addiu $t8, $a3, 1
/* 017F84 80017384 030B001A */ div $zero, $t8, $t3
/* 017F88 80017388 000260C0 */ sll $t4, $v0, 3
/* 017F8C 8001738C 010C6821 */ addu $t5, $t0, $t4
/* 017F90 80017390 85AE0002 */ lh $t6, 2($t5)
/* 017F94 80017394 00001010 */ mfhi $v0
/* 017F98 80017398 3C013F00 */ li $at, 0x3F000000 # 0.500000
/* 017F9C 8001739C 032E7821 */ addu $t7, $t9, $t6
/* 017FA0 800173A0 24F90002 */ addiu $t9, $a3, 2
/* 017FA4 800173A4 032B001A */ div $zero, $t9, $t3
/* 017FA8 800173A8 448F3000 */ mtc1 $t7, $f6
/* 017FAC 800173AC 44815000 */ mtc1 $at, $f10
/* 017FB0 800173B0 00026400 */ sll $t4, $v0, 0x10
/* 017FB4 800173B4 46803220 */ cvt.s.w $f8, $f6
/* 017FB8 800173B8 000C6C03 */ sra $t5, $t4, 0x10
/* 017FBC 800173BC 01A01025 */ move $v0, $t5
/* 017FC0 800173C0 00007810 */ mfhi $t7
/* 017FC4 800173C4 3044FFFF */ andi $a0, $v0, 0xffff
/* 017FC8 800173C8 460A4102 */ mul.s $f4, $f8, $f10
/* 017FCC 800173CC E7A40088 */ swc1 $f4, 0x88($sp)
/* 017FD0 800173D0 15600002 */ bnez $t3, .L800173DC
/* 017FD4 800173D4 00000000 */ nop
/* 017FD8 800173D8 0007000D */ break 7
.L800173DC:
/* 017FDC 800173DC 2401FFFF */ li $at, -1
/* 017FE0 800173E0 15610004 */ bne $t3, $at, .L800173F4
/* 017FE4 800173E4 3C018000 */ lui $at, 0x8000
/* 017FE8 800173E8 17010002 */ bne $t8, $at, .L800173F4
/* 017FEC 800173EC 00000000 */ nop
/* 017FF0 800173F0 0006000D */ break 6
.L800173F4:
/* 017FF4 800173F4 8FB80044 */ lw $t8, 0x44($sp)
/* 017FF8 800173F8 15600002 */ bnez $t3, .L80017404
/* 017FFC 800173FC 00000000 */ nop
/* 018000 80017400 0007000D */ break 7
.L80017404:
/* 018004 80017404 2401FFFF */ li $at, -1
/* 018008 80017408 15610004 */ bne $t3, $at, .L8001741C
/* 01800C 8001740C 3C018000 */ lui $at, 0x8000
/* 018010 80017410 17210002 */ bne $t9, $at, .L8001741C
/* 018014 80017414 00000000 */ nop
/* 018018 80017418 0006000D */ break 6
.L8001741C:
/* 01801C 8001741C 8F050000 */ lw $a1, ($t8)
/* 018020 80017420 AFAA002C */ sw $t2, 0x2c($sp)
/* 018024 80017424 A7AF006C */ sh $t7, 0x6c($sp)
/* 018028 80017428 0C002EF6 */ jal func_8000BBD8
/* 01802C 8001742C A7A2006E */ sh $v0, 0x6e($sp)
/* 018030 80017430 3C038016 */ lui $v1, %hi(D_80162FA0) # $v1, 0x8016
/* 018034 80017434 24632FA0 */ addiu $v1, %lo(D_80162FA0) # addiu $v1, $v1, 0x2fa0
/* 018038 80017438 C4660000 */ lwc1 $f6, ($v1)
/* 01803C 8001743C 3C013FE0 */ li $at, 0x3FE00000 # 1.750000
/* 018040 80017440 44810800 */ mtc1 $at, $f1
/* 018044 80017444 44800000 */ mtc1 $zero, $f0
/* 018048 80017448 C4640008 */ lwc1 $f4, 8($v1)
/* 01804C 8001744C 46003221 */ cvt.d.s $f8, $f6
/* 018050 80017450 8FAC0044 */ lw $t4, 0x44($sp)
/* 018054 80017454 46204282 */ mul.d $f10, $f8, $f0
/* 018058 80017458 460021A1 */ cvt.d.s $f6, $f4
/* 01805C 8001745C 8D850000 */ lw $a1, ($t4)
/* 018060 80017460 97A4006C */ lhu $a0, 0x6c($sp)
/* 018064 80017464 46203202 */ mul.d $f8, $f6, $f0
/* 018068 80017468 87A6003E */ lh $a2, 0x3e($sp)
/* 01806C 8001746C 462053A0 */ cvt.s.d $f14, $f10
/* 018070 80017470 46204420 */ cvt.s.d $f16, $f8
/* 018074 80017474 E7AE0098 */ swc1 $f14, 0x98($sp)
/* 018078 80017478 0C002EF6 */ jal func_8000BBD8
/* 01807C 8001747C E7B00090 */ swc1 $f16, 0x90($sp)
/* 018080 80017480 3C038016 */ lui $v1, %hi(D_80162FA0) # $v1, 0x8016
/* 018084 80017484 24632FA0 */ addiu $v1, %lo(D_80162FA0) # addiu $v1, $v1, 0x2fa0
/* 018088 80017488 C4640000 */ lwc1 $f4, ($v1)
/* 01808C 8001748C 3C013FE0 */ li $at, 0x3FE00000 # 1.750000
/* 018090 80017490 44810800 */ mtc1 $at, $f1
/* 018094 80017494 44800000 */ mtc1 $zero, $f0
/* 018098 80017498 460021A1 */ cvt.d.s $f6, $f4
/* 01809C 8001749C C7AE0098 */ lwc1 $f14, 0x98($sp)
/* 0180A0 800174A0 46203202 */ mul.d $f8, $f6, $f0
/* 0180A4 800174A4 8FAD002C */ lw $t5, 0x2c($sp)
/* 0180A8 800174A8 460072A1 */ cvt.d.s $f10, $f14
/* 0180AC 800174AC 87A2006E */ lh $v0, 0x6e($sp)
/* 0180B0 800174B0 87B9006C */ lh $t9, 0x6c($sp)
/* 0180B4 800174B4 8DA80000 */ lw $t0, ($t5)
/* 0180B8 800174B8 000260C0 */ sll $t4, $v0, 3
/* 0180BC 800174BC 001970C0 */ sll $t6, $t9, 3
/* 0180C0 800174C0 46285100 */ add.d $f4, $f10, $f8
/* 0180C4 800174C4 C46A0008 */ lwc1 $f10, 8($v1)
/* 0180C8 800174C8 010E7821 */ addu $t7, $t0, $t6
/* 0180CC 800174CC 010C6821 */ addu $t5, $t0, $t4
/* 0180D0 800174D0 46005221 */ cvt.d.s $f8, $f10
/* 0180D4 800174D4 462023A0 */ cvt.s.d $f14, $f4
/* 0180D8 800174D8 46204102 */ mul.d $f4, $f8, $f0
/* 0180DC 800174DC 85B90002 */ lh $t9, 2($t5)
/* 0180E0 800174E0 85F80002 */ lh $t8, 2($t7)
/* 0180E4 800174E4 C7B00090 */ lwc1 $f16, 0x90($sp)
/* 0180E8 800174E8 3C013F00 */ li $at, 0x3F000000 # 0.500000
/* 0180EC 800174EC 03197021 */ addu $t6, $t8, $t9
/* 0180F0 800174F0 448E4000 */ mtc1 $t6, $f8
/* 0180F4 800174F4 460081A1 */ cvt.d.s $f6, $f16
/* 0180F8 800174F8 8FA7004C */ lw $a3, 0x4c($sp)
/* 0180FC 800174FC 46243280 */ add.d $f10, $f6, $f4
/* 018100 80017500 44812000 */ mtc1 $at, $f4
/* 018104 80017504 3C0F8016 */ lui $t7, %hi(D_801645F8) # $t7, 0x8016
/* 018108 80017508 468041A0 */ cvt.s.w $f6, $f8
/* 01810C 8001750C 25EF45F8 */ addiu $t7, %lo(D_801645F8) # addiu $t7, $t7, 0x45f8
/* 018110 80017510 3C0C8016 */ lui $t4, %hi(D_80164618) # $t4, 0x8016
/* 018114 80017514 00EF2021 */ addu $a0, $a3, $t7
/* 018118 80017518 C4880000 */ lwc1 $f8, ($a0)
/* 01811C 8001751C 46205420 */ cvt.s.d $f16, $f10
/* 018120 80017520 46043282 */ mul.s $f10, $f6, $f4
/* 018124 80017524 258C4618 */ addiu $t4, %lo(D_80164618) # addiu $t4, $t4, 0x4618
/* 018128 80017528 00EC2821 */ addu $a1, $a3, $t4
/* 01812C 8001752C C4A60000 */ lwc1 $f6, ($a1)
/* 018130 80017530 3C0D8016 */ lui $t5, %hi(D_80164638) # $t5, 0x8016
/* 018134 80017534 46087481 */ sub.s $f18, $f14, $f8
/* 018138 80017538 25AD4638 */ addiu $t5, %lo(D_80164638) # addiu $t5, $t5, 0x4638
/* 01813C 8001753C E7AA0094 */ swc1 $f10, 0x94($sp)
/* 018140 80017540 46065081 */ sub.s $f2, $f10, $f6
/* 018144 80017544 00ED3021 */ addu $a2, $a3, $t5
/* 018148 80017548 46129282 */ mul.s $f10, $f18, $f18
/* 01814C 8001754C C4C40000 */ lwc1 $f4, ($a2)
/* 018150 80017550 AFA6003C */ sw $a2, 0x3c($sp)
/* 018154 80017554 46021182 */ mul.s $f6, $f2, $f2
/* 018158 80017558 E7A2007C */ swc1 $f2, 0x7c($sp)
/* 01815C 8001755C 46048201 */ sub.s $f8, $f16, $f4
/* 018160 80017560 E7B20080 */ swc1 $f18, 0x80($sp)
/* 018164 80017564 AFA50040 */ sw $a1, 0x40($sp)
/* 018168 80017568 AFA40044 */ sw $a0, 0x44($sp)
/* 01816C 8001756C E7A80078 */ swc1 $f8, 0x78($sp)
/* 018170 80017570 C7A80078 */ lwc1 $f8, 0x78($sp)
/* 018174 80017574 46065100 */ add.s $f4, $f10, $f6
/* 018178 80017578 46084282 */ mul.s $f10, $f8, $f8
/* 01817C 8001757C 0C033850 */ jal sqrtf
/* 018180 80017580 460A2300 */ add.s $f12, $f4, $f10
/* 018184 80017584 44803800 */ mtc1 $zero, $f7
/* 018188 80017588 44803000 */ mtc1 $zero, $f6
/* 01818C 8001758C 46000221 */ cvt.d.s $f8, $f0
/* 018190 80017590 8FA40044 */ lw $a0, 0x44($sp)
/* 018194 80017594 46283032 */ c.eq.d $f6, $f8
/* 018198 80017598 8FA50040 */ lw $a1, 0x40($sp)
/* 01819C 8001759C 8FA6003C */ lw $a2, 0x3c($sp)
/* 0181A0 800175A0 C7B20080 */ lwc1 $f18, 0x80($sp)
/* 0181A4 800175A4 45010013 */ bc1t .L800175F4
/* 0181A8 800175A8 3C01800F */ lui $at, %hi(D_800ED270)
/* 0181AC 800175AC 8FB80048 */ lw $t8, 0x48($sp)
/* 0181B0 800175B0 C7A8007C */ lwc1 $f8, 0x7c($sp)
/* 0181B4 800175B4 C4860000 */ lwc1 $f6, ($a0)
/* 0181B8 800175B8 C7020000 */ lwc1 $f2, ($t8)
/* 0181BC 800175BC 46121102 */ mul.s $f4, $f2, $f18
/* 0181C0 800175C0 46002283 */ div.s $f10, $f4, $f0
/* 0181C4 800175C4 46081102 */ mul.s $f4, $f2, $f8
/* 0181C8 800175C8 46065380 */ add.s $f14, $f10, $f6
/* 0181CC 800175CC C4A60000 */ lwc1 $f6, ($a1)
/* 0181D0 800175D0 46002283 */ div.s $f10, $f4, $f0
/* 0181D4 800175D4 C7A40078 */ lwc1 $f4, 0x78($sp)
/* 0181D8 800175D8 46065200 */ add.s $f8, $f10, $f6
/* 0181DC 800175DC 46041282 */ mul.s $f10, $f2, $f4
/* 0181E0 800175E0 E7A80094 */ swc1 $f8, 0x94($sp)
/* 0181E4 800175E4 C4C80000 */ lwc1 $f8, ($a2)
/* 0181E8 800175E8 46005183 */ div.s $f6, $f10, $f0
/* 0181EC 800175EC 10000005 */ b .L80017604
/* 0181F0 800175F0 46083400 */ add.s $f16, $f6, $f8
.L800175F4:
/* 0181F4 800175F4 C4A40000 */ lwc1 $f4, ($a1)
/* 0181F8 800175F8 C48E0000 */ lwc1 $f14, ($a0)
/* 0181FC 800175FC C4D00000 */ lwc1 $f16, ($a2)
/* 018200 80017600 E7A40094 */ swc1 $f4, 0x94($sp)
.L80017604:
/* 018204 80017604 D422D270 */ ldc1 $f2, %lo(D_800ED270)($at)
/* 018208 80017608 46007021 */ cvt.d.s $f0, $f14
/* 01820C 8001760C 44804000 */ mtc1 $zero, $f8
/* 018210 80017610 4622003C */ c.lt.d $f0, $f2
/* 018214 80017614 3C01800F */ lui $at, %hi(D_800ED278)
/* 018218 80017618 C7B2008C */ lwc1 $f18, 0x8c($sp)
/* 01821C 8001761C 45010006 */ bc1t .L80017638
/* 018220 80017620 00000000 */ nop
/* 018224 80017624 D42CD278 */ ldc1 $f12, %lo(D_800ED278)($at)
/* 018228 80017628 4620603C */ c.lt.d $f12, $f0
/* 01822C 8001762C 00000000 */ nop
/* 018230 80017630 45020002 */ bc1fl .L8001763C
/* 018234 80017634 E60E0000 */ swc1 $f14, ($s0)
.L80017638:
/* 018238 80017638 E60E0000 */ swc1 $f14, ($s0)
.L8001763C:
/* 01823C 8001763C E6100008 */ swc1 $f16, 8($s0)
/* 018240 80017640 C7AA0094 */ lwc1 $f10, 0x94($sp)
/* 018244 80017644 3C014024 */ li $at, 0x40240000 # 2.562500
/* 018248 80017648 44814800 */ mtc1 $at, $f9
/* 01824C 8001764C 460051A1 */ cvt.d.s $f6, $f10
/* 018250 80017650 3C014020 */ li $at, 0x40200000 # 2.500000
/* 018254 80017654 46283100 */ add.d $f4, $f6, $f8
/* 018258 80017658 462022A0 */ cvt.s.d $f10, $f4
/* 01825C 8001765C 44815800 */ mtc1 $at, $f11
/* 018260 80017660 E60A0004 */ swc1 $f10, 4($s0)
/* 018264 80017664 C7A60094 */ lwc1 $f6, 0x94($sp)
/* 018268 80017668 E48E0000 */ swc1 $f14, ($a0)
/* 01826C 8001766C E4D00000 */ swc1 $f16, ($a2)
/* 018270 80017670 E4A60000 */ swc1 $f6, ($a1)
/* 018274 80017674 C7AE0084 */ lwc1 $f14, 0x84($sp)
/* 018278 80017678 E612000C */ swc1 $f18, 0xc($s0)
/* 01827C 8001767C C7A80088 */ lwc1 $f8, 0x88($sp)
/* 018280 80017680 44805000 */ mtc1 $zero, $f10
/* 018284 80017684 E60E0014 */ swc1 $f14, 0x14($s0)
/* 018288 80017688 46004121 */ cvt.d.s $f4, $f8
/* 01828C 8001768C 462A2180 */ add.d $f6, $f4, $f10
/* 018290 80017690 46203220 */ cvt.s.d $f8, $f6
/* 018294 80017694 E6080010 */ swc1 $f8, 0x10($s0)
/* 018298 80017698 8FA5005C */ lw $a1, 0x5c($sp)
/* 01829C 8001769C 0C00534C */ jal func_80014D30
/* 0182A0 800176A0 8FA400C4 */ lw $a0, 0xc4($sp)
/* 0182A4 800176A4 C604000C */ lwc1 $f4, 0xc($s0)
/* 0182A8 800176A8 C60A0000 */ lwc1 $f10, ($s0)
/* 0182AC 800176AC C6060010 */ lwc1 $f6, 0x10($s0)
/* 0182B0 800176B0 C6080004 */ lwc1 $f8, 4($s0)
/* 0182B4 800176B4 460A2301 */ sub.s $f12, $f4, $f10
/* 0182B8 800176B8 46083101 */ sub.s $f4, $f6, $f8
/* 0182BC 800176BC E7A400A8 */ swc1 $f4, 0xa8($sp)
/* 0182C0 800176C0 C6060008 */ lwc1 $f6, 8($s0)
/* 0182C4 800176C4 C60A0014 */ lwc1 $f10, 0x14($s0)
/* 0182C8 800176C8 E7AC00AC */ swc1 $f12, 0xac($sp)
/* 0182CC 800176CC 46065381 */ sub.s $f14, $f10, $f6
/* 0182D0 800176D0 0C0ADE0C */ jal atan2s
/* 0182D4 800176D4 E7AE00A4 */ swc1 $f14, 0xa4($sp)
/* 0182D8 800176D8 C7A000AC */ lwc1 $f0, 0xac($sp)
/* 0182DC 800176DC C7AE00A4 */ lwc1 $f14, 0xa4($sp)
/* 0182E0 800176E0 A6020026 */ sh $v0, 0x26($s0)
/* 0182E4 800176E4 46000202 */ mul.s $f8, $f0, $f0
/* 0182E8 800176E8 00000000 */ nop
/* 0182EC 800176EC 460E7102 */ mul.s $f4, $f14, $f14
/* 0182F0 800176F0 0C033850 */ jal sqrtf
/* 0182F4 800176F4 46044300 */ add.s $f12, $f8, $f4
/* 0182F8 800176F8 46000306 */ mov.s $f12, $f0
/* 0182FC 800176FC 0C0ADE0C */ jal atan2s
/* 018300 80017700 C7AE00A8 */ lwc1 $f14, 0xa8($sp)
/* 018304 80017704 A6020024 */ sh $v0, 0x24($s0)
/* 018308 80017708 A6000028 */ sh $zero, 0x28($s0)
/* 01830C 8001770C 8FBF0024 */ lw $ra, 0x24($sp)
/* 018310 80017710 8FB00020 */ lw $s0, 0x20($sp)
/* 018314 80017714 27BD00B8 */ addiu $sp, $sp, 0xb8
/* 018318 80017718 03E00008 */ jr $ra
/* 01831C 8001771C 00000000 */ nop