mirror of
https://github.com/HarbourMasters/SpaghettiKart
synced 2026-09-06 03:18:17 -04:00
cf33e2ea5f
Signed-off-by: Taggerung <tyler.taggerung@email.com>
420 lines
21 KiB
ArmAsm
420 lines
21 KiB
ArmAsm
.section .late_rodata
|
|
|
|
glabel D_800ED230
|
|
.double 3000.0
|
|
|
|
.section .text
|
|
|
|
glabel func_80015C94
|
|
/* 016894 80015C94 27BDFF48 */ addiu $sp, $sp, -0xb8
|
|
/* 016898 80015C98 AFBF0034 */ sw $ra, 0x34($sp)
|
|
/* 01689C 80015C9C AFB20030 */ sw $s2, 0x30($sp)
|
|
/* 0168A0 80015CA0 AFB1002C */ sw $s1, 0x2c($sp)
|
|
/* 0168A4 80015CA4 AFB00028 */ sw $s0, 0x28($sp)
|
|
/* 0168A8 80015CA8 F7B40020 */ sdc1 $f20, 0x20($sp)
|
|
/* 0168AC 80015CAC AFA500BC */ sw $a1, 0xbc($sp)
|
|
/* 0168B0 80015CB0 AFA600C0 */ sw $a2, 0xc0($sp)
|
|
/* 0168B4 80015CB4 848300AE */ lh $v1, 0xae($a0)
|
|
/* 0168B8 80015CB8 3C018016 */ lui $at, %hi(D_80163238) # $at, 0x8016
|
|
/* 0168BC 80015CBC 3C08800E */ lui $t0, %hi(gPlayerOne)
|
|
/* 0168C0 80015CC0 000370C0 */ sll $t6, $v1, 3
|
|
/* 0168C4 80015CC4 AC233238 */ sw $v1, %lo(D_80163238)($at)
|
|
/* 0168C8 80015CC8 01C37023 */ subu $t6, $t6, $v1
|
|
/* 0168CC 80015CCC 000E7100 */ sll $t6, $t6, 4
|
|
/* 0168D0 80015CD0 3C098016 */ lui $t1, %hi(gPathIndexByPlayerId) # 0x8016
|
|
/* 0168D4 80015CD4 8C860008 */ lw $a2, 8($a0)
|
|
/* 0168D8 80015CD8 C48E0004 */ lwc1 $f14, 4($a0)
|
|
/* 0168DC 80015CDC C48C0000 */ lwc1 $f12, ($a0)
|
|
/* 0168E0 80015CE0 01C37023 */ subu $t6, $t6, $v1
|
|
/* 0168E4 80015CE4 00038840 */ sll $s1, $v1, 1
|
|
/* 0168E8 80015CE8 8D08C4DC */ lw $t0, %lo(gPlayerOne)($t0)
|
|
/* 0168EC 80015CEC 000E7080 */ sll $t6, $t6, 2
|
|
/* 0168F0 80015CF0 01314821 */ addu $t1, $t1, $s1
|
|
/* 0168F4 80015CF4 952945B0 */ lhu $t1, %lo(gPathIndexByPlayerId)($t1) # 0x45b0($t1)
|
|
/* 0168F8 80015CF8 3C0F8016 */ lui $t7, %hi(gNearestWaypointByCameraId) # $t7, 0x8016
|
|
/* 0168FC 80015CFC 01C37023 */ subu $t6, $t6, $v1
|
|
/* 016900 80015D00 000E70C0 */ sll $t6, $t6, 3
|
|
/* 016904 80015D04 25EF4668 */ addiu $t7, %lo(gNearestWaypointByCameraId) # addiu $t7, $t7, 0x4668
|
|
/* 016908 80015D08 00071040 */ sll $v0, $a3, 1
|
|
/* 01690C 80015D0C 00E09025 */ move $s2, $a3
|
|
/* 016910 80015D10 004F2821 */ addu $a1, $v0, $t7
|
|
/* 016914 80015D14 010E4021 */ addu $t0, $t0, $t6
|
|
/* 016918 80015D18 00808025 */ move $s0, $a0
|
|
/* 01691C 80015D1C AFA800A0 */ sw $t0, 0xa0($sp)
|
|
/* 016920 80015D20 84A70000 */ lh $a3, ($a1)
|
|
/* 016924 80015D24 AFA50058 */ sw $a1, 0x58($sp)
|
|
/* 016928 80015D28 AFA2005C */ sw $v0, 0x5c($sp)
|
|
/* 01692C 80015D2C AFA3009C */ sw $v1, 0x9c($sp)
|
|
/* 016930 80015D30 AFA90010 */ sw $t1, 0x10($sp)
|
|
/* 016934 80015D34 0C0034CF */ jal func_8000D33C
|
|
/* 016938 80015D38 AFA90068 */ sw $t1, 0x68($sp)
|
|
/* 01693C 80015D3C 8FAB0058 */ lw $t3, 0x58($sp)
|
|
/* 016940 80015D40 8FB80068 */ lw $t8, 0x68($sp)
|
|
/* 016944 80015D44 3C0C8016 */ lui $t4, %hi(gWaypointCountByPathIndex) # $t4, 0x8016
|
|
/* 016948 80015D48 3C088016 */ lui $t0, %hi(gNearestWaypointByPlayerId) # 0x8016
|
|
/* 01694C 80015D4C 258C45C8 */ addiu $t4, %lo(gWaypointCountByPathIndex) # addiu $t4, $t4, 0x45c8
|
|
/* 016950 80015D50 A5620000 */ sh $v0, ($t3)
|
|
/* 016954 80015D54 0018C840 */ sll $t9, $t8, 1
|
|
/* 016958 80015D58 01114021 */ addu $t0, $t0, $s1
|
|
/* 01695C 80015D5C 032C5021 */ addu $t2, $t9, $t4
|
|
/* 016960 80015D60 85084438 */ lh $t0, %lo(gNearestWaypointByPlayerId)($t0) # 0x4438($t0)
|
|
/* 016964 80015D64 954D0000 */ lhu $t5, ($t2)
|
|
/* 016968 80015D68 85690000 */ lh $t1, ($t3)
|
|
/* 01696C 80015D6C AFAA0054 */ sw $t2, 0x54($sp)
|
|
/* 016970 80015D70 24060032 */ li $a2, 50
|
|
/* 016974 80015D74 2407000F */ li $a3, 15
|
|
/* 016978 80015D78 3104FFFF */ andi $a0, $t0, 0xffff
|
|
/* 01697C 80015D7C AFAD0010 */ sw $t5, 0x10($sp)
|
|
/* 016980 80015D80 0C001EFE */ jal func_80007BF8
|
|
/* 016984 80015D84 3125FFFF */ andi $a1, $t1, 0xffff
|
|
/* 016988 80015D88 1C400013 */ bgtz $v0, .L80015DD8
|
|
/* 01698C 80015D8C 8FA3009C */ lw $v1, 0x9c($sp)
|
|
/* 016990 80015D90 8FAF005C */ lw $t7, 0x5c($sp)
|
|
/* 016994 80015D94 3C0E8016 */ lui $t6, %hi(D_80164688) # $t6, 0x8016
|
|
/* 016998 80015D98 25CE4688 */ addiu $t6, %lo(D_80164688) # addiu $t6, $t6, 0x4688
|
|
/* 01699C 80015D9C 00128880 */ sll $s1, $s2, 2
|
|
/* 0169A0 80015DA0 3C068016 */ lui $a2, %hi(D_80164680) # 0x8016
|
|
/* 0169A4 80015DA4 022E3821 */ addu $a3, $s1, $t6
|
|
/* 0169A8 80015DA8 00CF3021 */ addu $a2, $a2, $t7
|
|
/* 0169AC 80015DAC 84C64680 */ lh $a2, %lo(D_80164680)($a2) # 0x4680($a2)
|
|
/* 0169B0 80015DB0 8CE50000 */ lw $a1, ($a3)
|
|
/* 0169B4 80015DB4 AFA70050 */ sw $a3, 0x50($sp)
|
|
/* 0169B8 80015DB8 0C0068D2 */ jal func_8001A348
|
|
/* 0169BC 80015DBC 02402025 */ move $a0, $s2
|
|
/* 0169C0 80015DC0 8FA70050 */ lw $a3, 0x50($sp)
|
|
/* 0169C4 80015DC4 3C013FE0 */ li $at, 0x3FE00000 # 1.750000
|
|
/* 0169C8 80015DC8 44811800 */ mtc1 $at, $f3
|
|
/* 0169CC 80015DCC 44801000 */ mtc1 $zero, $f2
|
|
/* 0169D0 80015DD0 1000003C */ b .L80015EC4
|
|
/* 0169D4 80015DD4 C4EC0000 */ lwc1 $f12, ($a3)
|
|
.L80015DD8:
|
|
/* 0169D8 80015DD8 3C01BFE0 */ li $at, 0xBFE00000 # -1.750000
|
|
/* 0169DC 80015DDC 44811800 */ mtc1 $at, $f3
|
|
/* 0169E0 80015DE0 3C018016 */ lui $at, %hi(D_80163068)
|
|
/* 0169E4 80015DE4 0003C080 */ sll $t8, $v1, 2
|
|
/* 0169E8 80015DE8 00380821 */ addu $at, $at, $t8
|
|
/* 0169EC 80015DEC C4243068 */ lwc1 $f4, %lo(D_80163068)($at)
|
|
/* 0169F0 80015DF0 44801000 */ mtc1 $zero, $f2
|
|
/* 0169F4 80015DF4 46002021 */ cvt.d.s $f0, $f4
|
|
/* 0169F8 80015DF8 4622003C */ c.lt.d $f0, $f2
|
|
/* 0169FC 80015DFC 00000000 */ nop
|
|
/* 016A00 80015E00 45020017 */ bc1fl .L80015E60
|
|
/* 016A04 80015E04 3C013FE0 */ lui $at, 0x3fe0
|
|
/* 016A08 80015E08 3C198016 */ lui $t9, %hi(D_80164688) # $t9, 0x8016
|
|
/* 016A0C 80015E0C 27394688 */ addiu $t9, %lo(D_80164688) # addiu $t9, $t9, 0x4688
|
|
/* 016A10 80015E10 00128880 */ sll $s1, $s2, 2
|
|
/* 016A14 80015E14 02393821 */ addu $a3, $s1, $t9
|
|
/* 016A18 80015E18 C4E60000 */ lwc1 $f6, ($a3)
|
|
/* 016A1C 80015E1C 46003221 */ cvt.d.s $f8, $f6
|
|
/* 016A20 80015E20 4622403C */ c.lt.d $f8, $f2
|
|
/* 016A24 80015E24 00000000 */ nop
|
|
/* 016A28 80015E28 4502000D */ bc1fl .L80015E60
|
|
/* 016A2C 80015E2C 3C013FE0 */ lui $at, 0x3fe0
|
|
/* 016A30 80015E30 02402025 */ move $a0, $s2
|
|
/* 016A34 80015E34 3C053F80 */ lui $a1, 0x3f80
|
|
/* 016A38 80015E38 24060007 */ li $a2, 7
|
|
/* 016A3C 80015E3C 0C0068D2 */ jal func_8001A348
|
|
/* 016A40 80015E40 AFA70050 */ sw $a3, 0x50($sp)
|
|
/* 016A44 80015E44 8FA70050 */ lw $a3, 0x50($sp)
|
|
/* 016A48 80015E48 3C013FE0 */ li $at, 0x3FE00000 # 1.750000
|
|
/* 016A4C 80015E4C 44811800 */ mtc1 $at, $f3
|
|
/* 016A50 80015E50 44801000 */ mtc1 $zero, $f2
|
|
/* 016A54 80015E54 1000001B */ b .L80015EC4
|
|
/* 016A58 80015E58 C4EC0000 */ lwc1 $f12, ($a3)
|
|
/* 016A5C 80015E5C 3C013FE0 */ li $at, 0x3FE00000 # 1.750000
|
|
.L80015E60:
|
|
/* 016A60 80015E60 44811800 */ mtc1 $at, $f3
|
|
/* 016A64 80015E64 44801000 */ mtc1 $zero, $f2
|
|
/* 016A68 80015E68 3C0C8016 */ lui $t4, %hi(D_80164688) # $t4, 0x8016
|
|
/* 016A6C 80015E6C 258C4688 */ addiu $t4, %lo(D_80164688) # addiu $t4, $t4, 0x4688
|
|
/* 016A70 80015E70 4620103C */ c.lt.d $f2, $f0
|
|
/* 016A74 80015E74 00128880 */ sll $s1, $s2, 2
|
|
/* 016A78 80015E78 022C3821 */ addu $a3, $s1, $t4
|
|
/* 016A7C 80015E7C C4EC0000 */ lwc1 $f12, ($a3)
|
|
/* 016A80 80015E80 45020011 */ bc1fl .L80015EC8
|
|
/* 016A84 80015E84 8FAE0054 */ lw $t6, 0x54($sp)
|
|
/* 016A88 80015E88 460062A1 */ cvt.d.s $f10, $f12
|
|
/* 016A8C 80015E8C 462A103C */ c.lt.d $f2, $f10
|
|
/* 016A90 80015E90 00000000 */ nop
|
|
/* 016A94 80015E94 4502000C */ bc1fl .L80015EC8
|
|
/* 016A98 80015E98 8FAE0054 */ lw $t6, 0x54($sp)
|
|
/* 016A9C 80015E9C 02402025 */ move $a0, $s2
|
|
/* 016AA0 80015EA0 3C05BF80 */ lui $a1, 0xbf80
|
|
/* 016AA4 80015EA4 24060006 */ li $a2, 6
|
|
/* 016AA8 80015EA8 0C0068D2 */ jal func_8001A348
|
|
/* 016AAC 80015EAC AFA70050 */ sw $a3, 0x50($sp)
|
|
/* 016AB0 80015EB0 8FA70050 */ lw $a3, 0x50($sp)
|
|
/* 016AB4 80015EB4 3C013FE0 */ li $at, 0x3FE00000 # 1.750000
|
|
/* 016AB8 80015EB8 44811800 */ mtc1 $at, $f3
|
|
/* 016ABC 80015EBC 44801000 */ mtc1 $zero, $f2
|
|
/* 016AC0 80015EC0 C4EC0000 */ lwc1 $f12, ($a3)
|
|
.L80015EC4:
|
|
/* 016AC4 80015EC4 8FAE0054 */ lw $t6, 0x54($sp)
|
|
.L80015EC8:
|
|
/* 016AC8 80015EC8 8FAD0058 */ lw $t5, 0x58($sp)
|
|
/* 016ACC 80015ECC 87A6006A */ lh $a2, 0x6a($sp)
|
|
/* 016AD0 80015ED0 95C30000 */ lhu $v1, ($t6)
|
|
/* 016AD4 80015ED4 85A20000 */ lh $v0, ($t5)
|
|
/* 016AD8 80015ED8 44056000 */ mfc1 $a1, $f12
|
|
/* 016ADC 80015EDC AFA70050 */ sw $a3, 0x50($sp)
|
|
/* 016AE0 80015EE0 244F0001 */ addiu $t7, $v0, 1
|
|
/* 016AE4 80015EE4 01E3001A */ div $zero, $t7, $v1
|
|
/* 016AE8 80015EE8 244C0002 */ addiu $t4, $v0, 2
|
|
/* 016AEC 80015EEC 00004010 */ mfhi $t0
|
|
/* 016AF0 80015EF0 0008C400 */ sll $t8, $t0, 0x10
|
|
/* 016AF4 80015EF4 14600002 */ bnez $v1, .L80015F00
|
|
/* 016AF8 80015EF8 00000000 */ nop
|
|
/* 016AFC 80015EFC 0007000D */ break 7
|
|
.L80015F00:
|
|
/* 016B00 80015F00 2401FFFF */ li $at, -1
|
|
/* 016B04 80015F04 14610004 */ bne $v1, $at, .L80015F18
|
|
/* 016B08 80015F08 3C018000 */ lui $at, 0x8000
|
|
/* 016B0C 80015F0C 15E10002 */ bne $t7, $at, .L80015F18
|
|
/* 016B10 80015F10 00000000 */ nop
|
|
/* 016B14 80015F14 0006000D */ break 6
|
|
.L80015F18:
|
|
/* 016B18 80015F18 0183001A */ div $zero, $t4, $v1
|
|
/* 016B1C 80015F1C 0018CC03 */ sra $t9, $t8, 0x10
|
|
/* 016B20 80015F20 03204025 */ move $t0, $t9
|
|
/* 016B24 80015F24 00006810 */ mfhi $t5
|
|
/* 016B28 80015F28 A7AD0078 */ sh $t5, 0x78($sp)
|
|
/* 016B2C 80015F2C 14600002 */ bnez $v1, .L80015F38
|
|
/* 016B30 80015F30 00000000 */ nop
|
|
/* 016B34 80015F34 0007000D */ break 7
|
|
.L80015F38:
|
|
/* 016B38 80015F38 2401FFFF */ li $at, -1
|
|
/* 016B3C 80015F3C 14610004 */ bne $v1, $at, .L80015F50
|
|
/* 016B40 80015F40 3C018000 */ li $at, 0x80000000 # -0.000000
|
|
/* 016B44 80015F44 15810002 */ bne $t4, $at, .L80015F50
|
|
/* 016B48 80015F48 00000000 */ nop
|
|
/* 016B4C 80015F4C 0006000D */ break 6
|
|
.L80015F50:
|
|
/* 016B50 80015F50 3104FFFF */ andi $a0, $t0, 0xffff
|
|
/* 016B54 80015F54 A7A8007A */ sh $t0, 0x7a($sp)
|
|
/* 016B58 80015F58 0C002EF6 */ jal func_8000BBD8
|
|
/* 016B5C 80015F5C AFA60044 */ sw $a2, 0x44($sp)
|
|
/* 016B60 80015F60 3C038016 */ lui $v1, %hi(D_80162FA0) # $v1, 0x8016
|
|
/* 016B64 80015F64 24632FA0 */ addiu $v1, %lo(D_80162FA0) # addiu $v1, $v1, 0x2fa0
|
|
/* 016B68 80015F68 C4640000 */ lwc1 $f4, ($v1)
|
|
/* 016B6C 80015F6C 3C013FE0 */ li $at, 0x3FE00000 # 1.750000
|
|
/* 016B70 80015F70 44811800 */ mtc1 $at, $f3
|
|
/* 016B74 80015F74 44801000 */ mtc1 $zero, $f2
|
|
/* 016B78 80015F78 C46A0008 */ lwc1 $f10, 8($v1)
|
|
/* 016B7C 80015F7C 460021A1 */ cvt.d.s $f6, $f4
|
|
/* 016B80 80015F80 8FA70050 */ lw $a3, 0x50($sp)
|
|
/* 016B84 80015F84 46223202 */ mul.d $f8, $f6, $f2
|
|
/* 016B88 80015F88 46005121 */ cvt.d.s $f4, $f10
|
|
/* 016B8C 80015F8C 8FA60044 */ lw $a2, 0x44($sp)
|
|
/* 016B90 80015F90 97A40078 */ lhu $a0, 0x78($sp)
|
|
/* 016B94 80015F94 46222182 */ mul.d $f6, $f4, $f2
|
|
/* 016B98 80015F98 8CE50000 */ lw $a1, ($a3)
|
|
/* 016B9C 80015F9C 46204520 */ cvt.s.d $f20, $f8
|
|
/* 016BA0 80015FA0 462034A0 */ cvt.s.d $f18, $f6
|
|
/* 016BA4 80015FA4 0C002EF6 */ jal func_8000BBD8
|
|
/* 016BA8 80015FA8 E7B20090 */ swc1 $f18, 0x90($sp)
|
|
/* 016BAC 80015FAC 3C038016 */ lui $v1, %hi(D_80162FA0) # $v1, 0x8016
|
|
/* 016BB0 80015FB0 24632FA0 */ addiu $v1, %lo(D_80162FA0) # addiu $v1, $v1, 0x2fa0
|
|
/* 016BB4 80015FB4 C46A0000 */ lwc1 $f10, ($v1)
|
|
/* 016BB8 80015FB8 3C013FE0 */ li $at, 0x3FE00000 # 1.750000
|
|
/* 016BBC 80015FBC 44811800 */ mtc1 $at, $f3
|
|
/* 016BC0 80015FC0 44801000 */ mtc1 $zero, $f2
|
|
/* 016BC4 80015FC4 46005121 */ cvt.d.s $f4, $f10
|
|
/* 016BC8 80015FC8 4600A221 */ cvt.d.s $f8, $f20
|
|
/* 016BCC 80015FCC 46222182 */ mul.d $f6, $f4, $f2
|
|
/* 016BD0 80015FD0 8FAE0068 */ lw $t6, 0x68($sp)
|
|
/* 016BD4 80015FD4 3C028016 */ lui $v0, %hi(D_80164550) # 0x8016
|
|
/* 016BD8 80015FD8 87B80078 */ lh $t8, 0x78($sp)
|
|
/* 016BDC 80015FDC 000E7880 */ sll $t7, $t6, 2
|
|
/* 016BE0 80015FE0 004F1021 */ addu $v0, $v0, $t7
|
|
/* 016BE4 80015FE4 8C424550 */ lw $v0, %lo(D_80164550)($v0) # 0x4550($v0)
|
|
/* 016BE8 80015FE8 87AE007A */ lh $t6, 0x7a($sp)
|
|
/* 016BEC 80015FEC 46264280 */ add.d $f10, $f8, $f6
|
|
/* 016BF0 80015FF0 C4680008 */ lwc1 $f8, 8($v1)
|
|
/* 016BF4 80015FF4 0018C8C0 */ sll $t9, $t8, 3
|
|
/* 016BF8 80015FF8 00596021 */ addu $t4, $v0, $t9
|
|
/* 016BFC 80015FFC 460041A1 */ cvt.d.s $f6, $f8
|
|
/* 016C00 80016000 46205520 */ cvt.s.d $f20, $f10
|
|
/* 016C04 80016004 46223282 */ mul.d $f10, $f6, $f2
|
|
/* 016C08 80016008 000E78C0 */ sll $t7, $t6, 3
|
|
/* 016C0C 8001600C 004FC021 */ addu $t8, $v0, $t7
|
|
/* 016C10 80016010 C7B20090 */ lwc1 $f18, 0x90($sp)
|
|
/* 016C14 80016014 87190002 */ lh $t9, 2($t8)
|
|
/* 016C18 80016018 858D0002 */ lh $t5, 2($t4)
|
|
/* 016C1C 8001601C 3C0E8016 */ lui $t6, %hi(D_801645F8) # $t6, 0x8016
|
|
/* 016C20 80016020 46009121 */ cvt.d.s $f4, $f18
|
|
/* 016C24 80016024 01B96021 */ addu $t4, $t5, $t9
|
|
/* 016C28 80016028 448C3000 */ mtc1 $t4, $f6
|
|
/* 016C2C 8001602C 462A2200 */ add.d $f8, $f4, $f10
|
|
/* 016C30 80016030 44805000 */ mtc1 $zero, $f10
|
|
/* 016C34 80016034 44815800 */ mtc1 $at, $f11
|
|
/* 016C38 80016038 46803121 */ cvt.d.w $f4, $f6
|
|
/* 016C3C 8001603C 25CE45F8 */ addiu $t6, %lo(D_801645F8) # addiu $t6, $t6, 0x45f8
|
|
/* 016C40 80016040 022E3821 */ addu $a3, $s1, $t6
|
|
/* 016C44 80016044 3C0F8016 */ lui $t7, %hi(D_80164618) # $t7, 0x8016
|
|
/* 016C48 80016048 462044A0 */ cvt.s.d $f18, $f8
|
|
/* 016C4C 8001604C 462A2202 */ mul.d $f8, $f4, $f10
|
|
/* 016C50 80016050 C4E40000 */ lwc1 $f4, ($a3)
|
|
/* 016C54 80016054 25EF4618 */ addiu $t7, %lo(D_80164618) # addiu $t7, $t7, 0x4618
|
|
/* 016C58 80016058 022F4021 */ addu $t0, $s1, $t7
|
|
/* 016C5C 8001605C C50A0000 */ lwc1 $f10, ($t0)
|
|
/* 016C60 80016060 3C188016 */ lui $t8, %hi(D_80164638) # $t8, 0x8016
|
|
/* 016C64 80016064 4604A381 */ sub.s $f14, $f20, $f4
|
|
/* 016C68 80016068 27184638 */ addiu $t8, %lo(D_80164638) # addiu $t8, $t8, 0x4638
|
|
/* 016C6C 8001606C 02384821 */ addu $t1, $s1, $t8
|
|
/* 016C70 80016070 462041A0 */ cvt.s.d $f6, $f8
|
|
/* 016C74 80016074 460E7102 */ mul.s $f4, $f14, $f14
|
|
/* 016C78 80016078 C5280000 */ lwc1 $f8, ($t1)
|
|
/* 016C7C 8001607C AFA90054 */ sw $t1, 0x54($sp)
|
|
/* 016C80 80016080 E7A60094 */ swc1 $f6, 0x94($sp)
|
|
/* 016C84 80016084 E7AE008C */ swc1 $f14, 0x8c($sp)
|
|
/* 016C88 80016088 460A3401 */ sub.s $f16, $f6, $f10
|
|
/* 016C8C 8001608C AFA80058 */ sw $t0, 0x58($sp)
|
|
/* 016C90 80016090 AFA7005C */ sw $a3, 0x5c($sp)
|
|
/* 016C94 80016094 46089001 */ sub.s $f0, $f18, $f8
|
|
/* 016C98 80016098 46108182 */ mul.s $f6, $f16, $f16
|
|
/* 016C9C 8001609C E7B00088 */ swc1 $f16, 0x88($sp)
|
|
/* 016CA0 800160A0 46000202 */ mul.s $f8, $f0, $f0
|
|
/* 016CA4 800160A4 E7A00084 */ swc1 $f0, 0x84($sp)
|
|
/* 016CA8 800160A8 46062280 */ add.s $f10, $f4, $f6
|
|
/* 016CAC 800160AC 0C033850 */ jal sqrtf
|
|
/* 016CB0 800160B0 46085300 */ add.s $f12, $f10, $f8
|
|
/* 016CB4 800160B4 44802800 */ mtc1 $zero, $f5
|
|
/* 016CB8 800160B8 44802000 */ mtc1 $zero, $f4
|
|
/* 016CBC 800160BC 460001A1 */ cvt.d.s $f6, $f0
|
|
/* 016CC0 800160C0 8FA7005C */ lw $a3, 0x5c($sp)
|
|
/* 016CC4 800160C4 46262032 */ c.eq.d $f4, $f6
|
|
/* 016CC8 800160C8 8FA80058 */ lw $t0, 0x58($sp)
|
|
/* 016CCC 800160CC 8FA90054 */ lw $t1, 0x54($sp)
|
|
/* 016CD0 800160D0 C7AE008C */ lwc1 $f14, 0x8c($sp)
|
|
/* 016CD4 800160D4 45010013 */ bc1t .L80016124
|
|
/* 016CD8 800160D8 C7B00088 */ lwc1 $f16, 0x88($sp)
|
|
/* 016CDC 800160DC 3C018016 */ lui $at, %hi(D_80164648)
|
|
/* 016CE0 800160E0 00310821 */ addu $at, $at, $s1
|
|
/* 016CE4 800160E4 C4224648 */ lwc1 $f2, %lo(D_80164648)($at)
|
|
/* 016CE8 800160E8 C4E40000 */ lwc1 $f4, ($a3)
|
|
/* 016CEC 800160EC 460E1282 */ mul.s $f10, $f2, $f14
|
|
/* 016CF0 800160F0 46005203 */ div.s $f8, $f10, $f0
|
|
/* 016CF4 800160F4 46101182 */ mul.s $f6, $f2, $f16
|
|
/* 016CF8 800160F8 46003283 */ div.s $f10, $f6, $f0
|
|
/* 016CFC 800160FC C7A60084 */ lwc1 $f6, 0x84($sp)
|
|
/* 016D00 80016100 46044500 */ add.s $f20, $f8, $f4
|
|
/* 016D04 80016104 C5080000 */ lwc1 $f8, ($t0)
|
|
/* 016D08 80016108 46085100 */ add.s $f4, $f10, $f8
|
|
/* 016D0C 8001610C 46061282 */ mul.s $f10, $f2, $f6
|
|
/* 016D10 80016110 E7A40094 */ swc1 $f4, 0x94($sp)
|
|
/* 016D14 80016114 C5240000 */ lwc1 $f4, ($t1)
|
|
/* 016D18 80016118 46005203 */ div.s $f8, $f10, $f0
|
|
/* 016D1C 8001611C 10000005 */ b .L80016134
|
|
/* 016D20 80016120 46044480 */ add.s $f18, $f8, $f4
|
|
.L80016124:
|
|
/* 016D24 80016124 C5060000 */ lwc1 $f6, ($t0)
|
|
/* 016D28 80016128 C4F40000 */ lwc1 $f20, ($a3)
|
|
/* 016D2C 8001612C C5320000 */ lwc1 $f18, ($t1)
|
|
/* 016D30 80016130 E7A60094 */ swc1 $f6, 0x94($sp)
|
|
.L80016134:
|
|
/* 016D34 80016134 E6140000 */ swc1 $f20, ($s0)
|
|
/* 016D38 80016138 E6120008 */ swc1 $f18, 8($s0)
|
|
/* 016D3C 8001613C C7AA0094 */ lwc1 $f10, 0x94($sp)
|
|
/* 016D40 80016140 3C01403E */ li $at, 0x403E0000 # 2.968750
|
|
/* 016D44 80016144 44814800 */ mtc1 $at, $f9
|
|
/* 016D48 80016148 44804000 */ mtc1 $zero, $f8
|
|
/* 016D4C 8001614C 46005421 */ cvt.d.s $f16, $f10
|
|
/* 016D50 80016150 44069000 */ mfc1 $a2, $f18
|
|
/* 016D54 80016154 46288100 */ add.d $f4, $f16, $f8
|
|
/* 016D58 80016158 F7B00038 */ sdc1 $f16, 0x38($sp)
|
|
/* 016D5C 8001615C E7B20090 */ swc1 $f18, 0x90($sp)
|
|
/* 016D60 80016160 AFA90054 */ sw $t1, 0x54($sp)
|
|
/* 016D64 80016164 462023A0 */ cvt.s.d $f14, $f4
|
|
/* 016D68 80016168 AFA80058 */ sw $t0, 0x58($sp)
|
|
/* 016D6C 8001616C AFA7005C */ sw $a3, 0x5c($sp)
|
|
/* 016D70 80016170 0C0AB870 */ jal func_802AE1C0
|
|
/* 016D74 80016174 4600A306 */ mov.s $f12, $f20
|
|
/* 016D78 80016178 3C014034 */ li $at, 0x40340000 # 2.812500
|
|
/* 016D7C 8001617C D7B00038 */ ldc1 $f16, 0x38($sp)
|
|
/* 016D80 80016180 44813800 */ mtc1 $at, $f7
|
|
/* 016D84 80016184 44803000 */ mtc1 $zero, $f6
|
|
/* 016D88 80016188 460000A1 */ cvt.d.s $f2, $f0
|
|
/* 016D8C 8001618C 8FA7005C */ lw $a3, 0x5c($sp)
|
|
/* 016D90 80016190 46268281 */ sub.d $f10, $f16, $f6
|
|
/* 016D94 80016194 8FA80058 */ lw $t0, 0x58($sp)
|
|
/* 016D98 80016198 8FA90054 */ lw $t1, 0x54($sp)
|
|
/* 016D9C 8001619C C7B20090 */ lwc1 $f18, 0x90($sp)
|
|
/* 016DA0 800161A0 462A103C */ c.lt.d $f2, $f10
|
|
/* 016DA4 800161A4 3C01800F */ lui $at, %hi(D_800ED230)
|
|
/* 016DA8 800161A8 45030008 */ bc1tl .L800161CC
|
|
/* 016DAC 800161AC 3C014024 */ li $at, 0x40240000 # 2.562500
|
|
/* 016DB0 800161B0 D428D230 */ ldc1 $f8, %lo(D_800ED230)($at)
|
|
/* 016DB4 800161B4 3C014020 */ li $at, 0x40200000 # 2.500000
|
|
/* 016DB8 800161B8 4622403E */ c.le.d $f8, $f2
|
|
/* 016DBC 800161BC 00000000 */ nop
|
|
/* 016DC0 800161C0 4502000A */ bc1fl .L800161EC
|
|
/* 016DC4 800161C4 44814800 */ mtc1 $at, $f9
|
|
/* 016DC8 800161C8 3C014024 */ li $at, 0x40240000 # 2.562500
|
|
.L800161CC:
|
|
/* 016DCC 800161CC 44812800 */ mtc1 $at, $f5
|
|
/* 016DD0 800161D0 44802000 */ mtc1 $zero, $f4
|
|
/* 016DD4 800161D4 00000000 */ nop
|
|
/* 016DD8 800161D8 46248180 */ add.d $f6, $f16, $f4
|
|
/* 016DDC 800161DC 462032A0 */ cvt.s.d $f10, $f6
|
|
/* 016DE0 800161E0 10000007 */ b .L80016200
|
|
/* 016DE4 800161E4 E60A0004 */ swc1 $f10, 4($s0)
|
|
/* 016DE8 800161E8 44814800 */ mtc1 $at, $f9
|
|
.L800161EC:
|
|
/* 016DEC 800161EC 44804000 */ mtc1 $zero, $f8
|
|
/* 016DF0 800161F0 00000000 */ nop
|
|
/* 016DF4 800161F4 46281100 */ add.d $f4, $f2, $f8
|
|
/* 016DF8 800161F8 462021A0 */ cvt.s.d $f6, $f4
|
|
/* 016DFC 800161FC E6060004 */ swc1 $f6, 4($s0)
|
|
.L80016200:
|
|
/* 016E00 80016200 C7AA0094 */ lwc1 $f10, 0x94($sp)
|
|
/* 016E04 80016204 8FA200A0 */ lw $v0, 0xa0($sp)
|
|
/* 016E08 80016208 E4F40000 */ swc1 $f20, ($a3)
|
|
/* 016E0C 8001620C E5320000 */ swc1 $f18, ($t1)
|
|
/* 016E10 80016210 E50A0000 */ swc1 $f10, ($t0)
|
|
/* 016E14 80016214 C4480014 */ lwc1 $f8, 0x14($v0)
|
|
/* 016E18 80016218 3C014018 */ li $at, 0x40180000 # 2.375000
|
|
/* 016E1C 8001621C 44815800 */ mtc1 $at, $f11
|
|
/* 016E20 80016220 E608000C */ swc1 $f8, 0xc($s0)
|
|
/* 016E24 80016224 C4440018 */ lwc1 $f4, 0x18($v0)
|
|
/* 016E28 80016228 44805000 */ mtc1 $zero, $f10
|
|
/* 016E2C 8001622C 02402025 */ move $a0, $s2
|
|
/* 016E30 80016230 460021A1 */ cvt.d.s $f6, $f4
|
|
/* 016E34 80016234 462A3200 */ add.d $f8, $f6, $f10
|
|
/* 016E38 80016238 46204120 */ cvt.s.d $f4, $f8
|
|
/* 016E3C 8001623C E6040010 */ swc1 $f4, 0x10($s0)
|
|
/* 016E40 80016240 C446001C */ lwc1 $f6, 0x1c($v0)
|
|
/* 016E44 80016244 E6060014 */ swc1 $f6, 0x14($s0)
|
|
/* 016E48 80016248 0C00534C */ jal func_80014D30
|
|
/* 016E4C 8001624C 8FA50068 */ lw $a1, 0x68($sp)
|
|
/* 016E50 80016250 C60A000C */ lwc1 $f10, 0xc($s0)
|
|
/* 016E54 80016254 C6080000 */ lwc1 $f8, ($s0)
|
|
/* 016E58 80016258 C6040010 */ lwc1 $f4, 0x10($s0)
|
|
/* 016E5C 8001625C C6060004 */ lwc1 $f6, 4($s0)
|
|
/* 016E60 80016260 46085501 */ sub.s $f20, $f10, $f8
|
|
/* 016E64 80016264 46062281 */ sub.s $f10, $f4, $f6
|
|
/* 016E68 80016268 4600A306 */ mov.s $f12, $f20
|
|
/* 016E6C 8001626C E7AA00A8 */ swc1 $f10, 0xa8($sp)
|
|
/* 016E70 80016270 C6040008 */ lwc1 $f4, 8($s0)
|
|
/* 016E74 80016274 C6080014 */ lwc1 $f8, 0x14($s0)
|
|
/* 016E78 80016278 46044381 */ sub.s $f14, $f8, $f4
|
|
/* 016E7C 8001627C 0C0ADE0C */ jal atan2s
|
|
/* 016E80 80016280 E7AE00A4 */ swc1 $f14, 0xa4($sp)
|
|
/* 016E84 80016284 4614A182 */ mul.s $f6, $f20, $f20
|
|
/* 016E88 80016288 C7AE00A4 */ lwc1 $f14, 0xa4($sp)
|
|
/* 016E8C 8001628C A6020026 */ sh $v0, 0x26($s0)
|
|
/* 016E90 80016290 460E7282 */ mul.s $f10, $f14, $f14
|
|
/* 016E94 80016294 0C033850 */ jal sqrtf
|
|
/* 016E98 80016298 460A3300 */ add.s $f12, $f6, $f10
|
|
/* 016E9C 8001629C 46000306 */ mov.s $f12, $f0
|
|
/* 016EA0 800162A0 0C0ADE0C */ jal atan2s
|
|
/* 016EA4 800162A4 C7AE00A8 */ lwc1 $f14, 0xa8($sp)
|
|
/* 016EA8 800162A8 A6020024 */ sh $v0, 0x24($s0)
|
|
/* 016EAC 800162AC A6000028 */ sh $zero, 0x28($s0)
|
|
/* 016EB0 800162B0 8FBF0034 */ lw $ra, 0x34($sp)
|
|
/* 016EB4 800162B4 8FB20030 */ lw $s2, 0x30($sp)
|
|
/* 016EB8 800162B8 8FB1002C */ lw $s1, 0x2c($sp)
|
|
/* 016EBC 800162BC 8FB00028 */ lw $s0, 0x28($sp)
|
|
/* 016EC0 800162C0 D7B40020 */ ldc1 $f20, 0x20($sp)
|
|
/* 016EC4 800162C4 03E00008 */ jr $ra
|
|
/* 016EC8 800162C8 27BD00B8 */ addiu $sp, $sp, 0xb8
|