Files
SpaghettiKart/asm/non_matchings/code_80027D00/func_8002F730.s
T

363 lines
18 KiB
ArmAsm

glabel func_8002F730
/* 030330 8002F730 27BDFF00 */ addiu $sp, $sp, -0x100
/* 030334 8002F734 3C0F800E */ lui $t7, %hi(D_800E3DC8) # $t7, 0x800e
/* 030338 8002F738 AFBF002C */ sw $ra, 0x2c($sp)
/* 03033C 8002F73C AFB00028 */ sw $s0, 0x28($sp)
/* 030340 8002F740 AFA50104 */ sw $a1, 0x104($sp)
/* 030344 8002F744 AFA60108 */ sw $a2, 0x108($sp)
/* 030348 8002F748 AFA7010C */ sw $a3, 0x10c($sp)
/* 03034C 8002F74C 25EF3DC8 */ addiu $t7, %lo(D_800E3DC8) # addiu $t7, $t7, 0x3dc8
/* 030350 8002F750 8DE10000 */ lw $at, ($t7)
/* 030354 8002F754 27AE00F4 */ addiu $t6, $sp, 0xf4
/* 030358 8002F758 8DE80004 */ lw $t0, 4($t7)
/* 03035C 8002F75C ADC10000 */ sw $at, ($t6)
/* 030360 8002F760 8DE10008 */ lw $at, 8($t7)
/* 030364 8002F764 3C0A800E */ lui $t2, %hi(D_800E3DD4) # $t2, 0x800e
/* 030368 8002F768 254A3DD4 */ addiu $t2, %lo(D_800E3DD4) # addiu $t2, $t2, 0x3dd4
/* 03036C 8002F76C ADC80004 */ sw $t0, 4($t6)
/* 030370 8002F770 ADC10008 */ sw $at, 8($t6)
/* 030374 8002F774 8D410000 */ lw $at, ($t2)
/* 030378 8002F778 27A900E8 */ addiu $t1, $sp, 0xe8
/* 03037C 8002F77C 8D4D0004 */ lw $t5, 4($t2)
/* 030380 8002F780 AD210000 */ sw $at, ($t1)
/* 030384 8002F784 8D410008 */ lw $at, 8($t2)
/* 030388 8002F788 3C18800E */ lui $t8, %hi(D_800E3DE0) # $t8, 0x800e
/* 03038C 8002F78C 27183DE0 */ addiu $t8, %lo(D_800E3DE0) # addiu $t8, $t8, 0x3de0
/* 030390 8002F790 AD2D0004 */ sw $t5, 4($t1)
/* 030394 8002F794 AD210008 */ sw $at, 8($t1)
/* 030398 8002F798 8F010000 */ lw $at, ($t8)
/* 03039C 8002F79C 27B900DC */ addiu $t9, $sp, 0xdc
/* 0303A0 8002F7A0 8F080004 */ lw $t0, 4($t8)
/* 0303A4 8002F7A4 AF210000 */ sw $at, ($t9)
/* 0303A8 8002F7A8 8F010008 */ lw $at, 8($t8)
/* 0303AC 8002F7AC 3C0C800E */ lui $t4, %hi(D_800E3DEC) # $t4, 0x800e
/* 0303B0 8002F7B0 258C3DEC */ addiu $t4, %lo(D_800E3DEC) # addiu $t4, $t4, 0x3dec
/* 0303B4 8002F7B4 AF280004 */ sw $t0, 4($t9)
/* 0303B8 8002F7B8 AF210008 */ sw $at, 8($t9)
/* 0303BC 8002F7BC 8D810000 */ lw $at, ($t4)
/* 0303C0 8002F7C0 27A500D0 */ addiu $a1, $sp, 0xd0
/* 0303C4 8002F7C4 00808025 */ move $s0, $a0
/* 0303C8 8002F7C8 ACA10000 */ sw $at, ($a1)
/* 0303CC 8002F7CC 8D8A0004 */ lw $t2, 4($t4)
/* 0303D0 8002F7D0 ACAA0004 */ sw $t2, 4($a1)
/* 0303D4 8002F7D4 8D810008 */ lw $at, 8($t4)
/* 0303D8 8002F7D8 0C00DEED */ jal func_80037BB4
/* 0303DC 8002F7DC ACA10008 */ sw $at, 8($a1)
/* 0303E0 8002F7E0 44800000 */ mtc1 $zero, $f0
/* 0303E4 8002F7E4 C6040064 */ lwc1 $f4, 0x64($s0)
/* 0303E8 8002F7E8 02002025 */ move $a0, $s0
/* 0303EC 8002F7EC 83A5010F */ lb $a1, 0x10f($sp)
/* 0303F0 8002F7F0 46002182 */ mul.s $f6, $f4, $f0
/* 0303F4 8002F7F4 E7A60084 */ swc1 $f6, 0x84($sp)
/* 0303F8 8002F7F8 C608006C */ lwc1 $f8, 0x6c($s0)
/* 0303FC 8002F7FC 46004282 */ mul.s $f10, $f8, $f0
/* 030400 8002F800 0C00C054 */ jal func_80030150
/* 030404 8002F804 E7AA007C */ swc1 $f10, 0x7c($sp)
/* 030408 8002F808 26050174 */ addiu $a1, $s0, 0x174
/* 03040C 8002F80C E7A000FC */ swc1 $f0, 0xfc($sp)
/* 030410 8002F810 AFA5004C */ sw $a1, 0x4c($sp)
/* 030414 8002F814 0C0AD8EE */ jal func_802B63B8
/* 030418 8002F818 27A400F4 */ addiu $a0, $sp, 0xf4
/* 03041C 8002F81C C6040034 */ lwc1 $f4, 0x34($s0)
/* 030420 8002F820 3C01800F */ lui $at, %hi(D_800ED8A8)
/* 030424 8002F824 D430D8A8 */ ldc1 $f16, %lo(D_800ED8A8)($at)
/* 030428 8002F828 E7A40068 */ swc1 $f4, 0x68($sp)
/* 03042C 8002F82C C6060038 */ lwc1 $f6, 0x38($s0)
/* 030430 8002F830 C7AA0068 */ lwc1 $f10, 0x68($sp)
/* 030434 8002F834 C7A400F4 */ lwc1 $f4, 0xf4($sp)
/* 030438 8002F838 E7A6006C */ swc1 $f6, 0x6c($sp)
/* 03043C 8002F83C C608003C */ lwc1 $f8, 0x3c($s0)
/* 030440 8002F840 C7A60084 */ lwc1 $f6, 0x84($sp)
/* 030444 8002F844 46005021 */ cvt.d.s $f0, $f10
/* 030448 8002F848 E7A80070 */ swc1 $f8, 0x70($sp)
/* 03044C 8002F84C 46062200 */ add.s $f8, $f4, $f6
/* 030450 8002F850 46300102 */ mul.d $f4, $f0, $f16
/* 030454 8002F854 3C01800F */ lui $at, %hi(D_800ED8B0)
/* 030458 8002F858 D432D8B0 */ ldc1 $f18, %lo(D_800ED8B0)($at)
/* 03045C 8002F85C 460042A1 */ cvt.d.s $f10, $f8
/* 030460 8002F860 3C01800F */ lui $at, %hi(D_800ED8B8) # $at, 0x800f
/* 030464 8002F864 02002025 */ move $a0, $s0
/* 030468 8002F868 46245181 */ sub.d $f6, $f10, $f4
/* 03046C 8002F86C 46323203 */ div.d $f8, $f6, $f18
/* 030470 8002F870 C7A60070 */ lwc1 $f6, 0x70($sp)
/* 030474 8002F874 460030A1 */ cvt.d.s $f2, $f6
/* 030478 8002F878 46280280 */ add.d $f10, $f0, $f8
/* 03047C 8002F87C C7A800FC */ lwc1 $f8, 0xfc($sp)
/* 030480 8002F880 46205120 */ cvt.s.d $f4, $f10
/* 030484 8002F884 C7AA007C */ lwc1 $f10, 0x7c($sp)
/* 030488 8002F888 E7A40068 */ swc1 $f4, 0x68($sp)
/* 03048C 8002F88C 460A4100 */ add.s $f4, $f8, $f10
/* 030490 8002F890 46301202 */ mul.d $f8, $f2, $f16
/* 030494 8002F894 460021A1 */ cvt.d.s $f6, $f4
/* 030498 8002F898 46283281 */ sub.d $f10, $f6, $f8
/* 03049C 8002F89C 46325103 */ div.d $f4, $f10, $f18
/* 0304A0 8002F8A0 C7AA006C */ lwc1 $f10, 0x6c($sp)
/* 0304A4 8002F8A4 46005321 */ cvt.d.s $f12, $f10
/* 0304A8 8002F8A8 46241180 */ add.d $f6, $f2, $f4
/* 0304AC 8002F8AC C7A400F8 */ lwc1 $f4, 0xf8($sp)
/* 0304B0 8002F8B0 46203220 */ cvt.s.d $f8, $f6
/* 0304B4 8002F8B4 C426D8B8 */ lwc1 $f6, %lo(D_800ED8B8)($at)
/* 0304B8 8002F8B8 E7A80070 */ swc1 $f8, 0x70($sp)
/* 0304BC 8002F8BC 46062200 */ add.s $f8, $f4, $f6
/* 0304C0 8002F8C0 46306102 */ mul.d $f4, $f12, $f16
/* 0304C4 8002F8C4 460042A1 */ cvt.d.s $f10, $f8
/* 0304C8 8002F8C8 46245181 */ sub.d $f6, $f10, $f4
/* 0304CC 8002F8CC 46323203 */ div.d $f8, $f6, $f18
/* 0304D0 8002F8D0 46286280 */ add.d $f10, $f12, $f8
/* 0304D4 8002F8D4 46205120 */ cvt.s.d $f4, $f10
/* 0304D8 8002F8D8 E7A4006C */ swc1 $f4, 0x6c($sp)
/* 0304DC 8002F8DC C60E0014 */ lwc1 $f14, 0x14($s0)
/* 0304E0 8002F8E0 E7AE00C0 */ swc1 $f14, 0xc0($sp)
/* 0304E4 8002F8E4 C6060018 */ lwc1 $f6, 0x18($s0)
/* 0304E8 8002F8E8 E7A60044 */ swc1 $f6, 0x44($sp)
/* 0304EC 8002F8EC C7A80044 */ lwc1 $f8, 0x44($sp)
/* 0304F0 8002F8F0 E7A800BC */ swc1 $f8, 0xbc($sp)
/* 0304F4 8002F8F4 C60A001C */ lwc1 $f10, 0x1c($s0)
/* 0304F8 8002F8F8 E7AA0034 */ swc1 $f10, 0x34($sp)
/* 0304FC 8002F8FC C7A40034 */ lwc1 $f4, 0x34($sp)
/* 030500 8002F900 E7A400B8 */ swc1 $f4, 0xb8($sp)
/* 030504 8002F904 E60E0020 */ swc1 $f14, 0x20($s0)
/* 030508 8002F908 C7A60044 */ lwc1 $f6, 0x44($sp)
/* 03050C 8002F90C C60A0034 */ lwc1 $f10, 0x34($s0)
/* 030510 8002F910 E6060024 */ swc1 $f6, 0x24($s0)
/* 030514 8002F914 460E5100 */ add.s $f4, $f10, $f14
/* 030518 8002F918 C7A80034 */ lwc1 $f8, 0x34($sp)
/* 03051C 8002F91C E6080028 */ swc1 $f8, 0x28($s0)
/* 030520 8002F920 E7A400CC */ swc1 $f4, 0xcc($sp)
/* 030524 8002F924 C6060038 */ lwc1 $f6, 0x38($s0)
/* 030528 8002F928 C7A800BC */ lwc1 $f8, 0xbc($sp)
/* 03052C 8002F92C 46083280 */ add.s $f10, $f6, $f8
/* 030530 8002F930 C7A600B8 */ lwc1 $f6, 0xb8($sp)
/* 030534 8002F934 E7AA00C8 */ swc1 $f10, 0xc8($sp)
/* 030538 8002F938 C604003C */ lwc1 $f4, 0x3c($s0)
/* 03053C 8002F93C 46062200 */ add.s $f8, $f4, $f6
/* 030540 8002F940 0C00AAB0 */ jal func_8002AAC0
/* 030544 8002F944 E7A800C4 */ swc1 $f8, 0xc4($sp)
/* 030548 8002F948 C7AA00C8 */ lwc1 $f10, 0xc8($sp)
/* 03054C 8002F94C C60400EC */ lwc1 $f4, 0xec($s0)
/* 030550 8002F950 C7A800C4 */ lwc1 $f8, 0xc4($sp)
/* 030554 8002F954 26040110 */ addiu $a0, $s0, 0x110
/* 030558 8002F958 46045180 */ add.s $f6, $f10, $f4
/* 03055C 8002F95C 8FA600CC */ lw $a2, 0xcc($sp)
/* 030560 8002F960 E7A600C8 */ swc1 $f6, 0xc8($sp)
/* 030564 8002F964 8E050070 */ lw $a1, 0x70($s0)
/* 030568 8002F968 E7A80010 */ swc1 $f8, 0x10($sp)
/* 03056C 8002F96C C60A0020 */ lwc1 $f10, 0x20($s0)
/* 030570 8002F970 44073000 */ mfc1 $a3, $f6
/* 030574 8002F974 E7AA0014 */ swc1 $f10, 0x14($sp)
/* 030578 8002F978 C6040024 */ lwc1 $f4, 0x24($s0)
/* 03057C 8002F97C E7A40018 */ swc1 $f4, 0x18($sp)
/* 030580 8002F980 C6060028 */ lwc1 $f6, 0x28($s0)
/* 030584 8002F984 0C0AB654 */ jal func_802AD950
/* 030588 8002F988 E7A6001C */ swc1 $f6, 0x1c($sp)
/* 03058C 8002F98C 44801000 */ mtc1 $zero, $f2
/* 030590 8002F990 3C013F80 */ li $at, 0x3F800000 # 1.000000
/* 030594 8002F994 44810000 */ mtc1 $at, $f0
/* 030598 8002F998 860D002E */ lh $t5, 0x2e($s0)
/* 03059C 8002F99C E6020058 */ swc1 $f2, 0x58($s0)
/* 0305A0 8002F9A0 E6020060 */ swc1 $f2, 0x60($s0)
/* 0305A4 8002F9A4 44051000 */ mfc1 $a1, $f2
/* 0305A8 8002F9A8 44071000 */ mfc1 $a3, $f2
/* 0305AC 8002F9AC E600005C */ swc1 $f0, 0x5c($s0)
/* 0305B0 8002F9B0 44060000 */ mfc1 $a2, $f0
/* 0305B4 8002F9B4 8FA4004C */ lw $a0, 0x4c($sp)
/* 0305B8 8002F9B8 0C0AD950 */ jal func_802B6540
/* 0305BC 8002F9BC AFAD0010 */ sw $t5, 0x10($sp)
/* 0305C0 8002F9C0 8E0F00BC */ lw $t7, 0xbc($s0)
/* 0305C4 8002F9C4 C6080124 */ lwc1 $f8, 0x124($s0)
/* 0305C8 8002F9C8 2401FFF7 */ li $at, -9
/* 0305CC 8002F9CC 01E17024 */ and $t6, $t7, $at
/* 0305D0 8002F9D0 AE0E00BC */ sw $t6, 0xbc($s0)
/* 0305D4 8002F9D4 E7A80078 */ swc1 $f8, 0x78($sp)
/* 0305D8 8002F9D8 C7A40078 */ lwc1 $f4, 0x78($sp)
/* 0305DC 8002F9DC 44805000 */ mtc1 $zero, $f10
/* 0305E0 8002F9E0 02002025 */ move $a0, $s0
/* 0305E4 8002F9E4 27A5005C */ addiu $a1, $sp, 0x5c
/* 0305E8 8002F9E8 460A203E */ c.le.s $f4, $f10
/* 0305EC 8002F9EC 27A60068 */ addiu $a2, $sp, 0x68
/* 0305F0 8002F9F0 27A700E8 */ addiu $a3, $sp, 0xe8
/* 0305F4 8002F9F4 27B90078 */ addiu $t9, $sp, 0x78
/* 0305F8 8002F9F8 45000008 */ bc1f .L8002FA1C
/* 0305FC 8002F9FC 27B800CC */ addiu $t8, $sp, 0xcc
/* 030600 8002FA00 27A800C8 */ addiu $t0, $sp, 0xc8
/* 030604 8002FA04 27A900C4 */ addiu $t1, $sp, 0xc4
/* 030608 8002FA08 AFA9001C */ sw $t1, 0x1c($sp)
/* 03060C 8002FA0C AFA80018 */ sw $t0, 0x18($sp)
/* 030610 8002FA10 AFB90010 */ sw $t9, 0x10($sp)
/* 030614 8002FA14 0C00FD1B */ jal func_8003F46C
/* 030618 8002FA18 AFB80014 */ sw $t8, 0x14($sp)
.L8002FA1C:
/* 03061C 8002FA1C C7AC00CC */ lwc1 $f12, 0xcc($sp)
/* 030620 8002FA20 C7AE00C8 */ lwc1 $f14, 0xc8($sp)
/* 030624 8002FA24 8FA600C4 */ lw $a2, 0xc4($sp)
/* 030628 8002FA28 0C0AAF8C */ jal func_802ABE30
/* 03062C 8002FA2C 9607011A */ lhu $a3, 0x11a($s0)
/* 030630 8002FA30 960B0000 */ lhu $t3, ($s0)
/* 030634 8002FA34 24014000 */ li $at, 16384
/* 030638 8002FA38 E6000074 */ swc1 $f0, 0x74($s0)
/* 03063C 8002FA3C 316C4000 */ andi $t4, $t3, 0x4000
/* 030640 8002FA40 1581000F */ bne $t4, $at, .L8002FA80
/* 030644 8002FA44 3C02800E */ lui $v0, %hi(gActiveScreenMode) # $v0, 0x800e
/* 030648 8002FA48 8C42C52C */ lw $v0, %lo(gActiveScreenMode)($v0)
/* 03064C 8002FA4C 24010002 */ li $at, 2
/* 030650 8002FA50 02002025 */ move $a0, $s0
/* 030654 8002FA54 10400005 */ beqz $v0, .L8002FA6C
/* 030658 8002FA58 8FA500CC */ lw $a1, 0xcc($sp)
/* 03065C 8002FA5C 10410003 */ beq $v0, $at, .L8002FA6C
/* 030660 8002FA60 24010001 */ li $at, 1
/* 030664 8002FA64 54410007 */ bnel $v0, $at, .L8002FA84
/* 030668 8002FA68 02002025 */ move $a0, $s0
.L8002FA6C:
/* 03066C 8002FA6C 8FA600C8 */ lw $a2, 0xc8($sp)
/* 030670 8002FA70 0C00A6D3 */ jal func_80029B4C
/* 030674 8002FA74 8FA700C4 */ lw $a3, 0xc4($sp)
/* 030678 8002FA78 10000007 */ b .L8002FA98
/* 03067C 8002FA7C C7A600CC */ lwc1 $f6, 0xcc($sp)
.L8002FA80:
/* 030680 8002FA80 02002025 */ move $a0, $s0
.L8002FA84:
/* 030684 8002FA84 8FA500CC */ lw $a1, 0xcc($sp)
/* 030688 8002FA88 8FA600C8 */ lw $a2, 0xc8($sp)
/* 03068C 8002FA8C 0C00A865 */ jal func_8002A194
/* 030690 8002FA90 8FA700C4 */ lw $a3, 0xc4($sp)
/* 030694 8002FA94 C7A600CC */ lwc1 $f6, 0xcc($sp)
.L8002FA98:
/* 030698 8002FA98 C7A800C4 */ lwc1 $f8, 0xc4($sp)
/* 03069C 8002FA9C 02002025 */ move $a0, $s0
/* 0306A0 8002FAA0 83A5010F */ lb $a1, 0x10f($sp)
/* 0306A4 8002FAA4 8FA600C0 */ lw $a2, 0xc0($sp)
/* 0306A8 8002FAA8 8FA700B8 */ lw $a3, 0xb8($sp)
/* 0306AC 8002FAAC E7A60010 */ swc1 $f6, 0x10($sp)
/* 0306B0 8002FAB0 0C00AB8E */ jal func_8002AE38
/* 0306B4 8002FAB4 E7A80014 */ swc1 $f8, 0x14($sp)
/* 0306B8 8002FAB8 C7AA0068 */ lwc1 $f10, 0x68($sp)
/* 0306BC 8002FABC C7A6006C */ lwc1 $f6, 0x6c($sp)
/* 0306C0 8002FAC0 460A5102 */ mul.s $f4, $f10, $f10
/* 0306C4 8002FAC4 00000000 */ nop
/* 0306C8 8002FAC8 46063202 */ mul.s $f8, $f6, $f6
/* 0306CC 8002FACC C7A60070 */ lwc1 $f6, 0x70($sp)
/* 0306D0 8002FAD0 46082280 */ add.s $f10, $f4, $f8
/* 0306D4 8002FAD4 46063102 */ mul.s $f4, $f6, $f6
/* 0306D8 8002FAD8 C6080094 */ lwc1 $f8, 0x94($s0)
/* 0306DC 8002FADC E608022C */ swc1 $f8, 0x22c($s0)
/* 0306E0 8002FAE0 0C033850 */ jal sqrtf
/* 0306E4 8002FAE4 460A2300 */ add.s $f12, $f4, $f10
/* 0306E8 8002FAE8 C602008C */ lwc1 $f2, 0x8c($s0)
/* 0306EC 8002FAEC 44803000 */ mtc1 $zero, $f6
/* 0306F0 8002FAF0 E6000094 */ swc1 $f0, 0x94($s0)
/* 0306F4 8002FAF4 3C0C800E */ lui $t4, %hi(gKartTopSpeedTable) # $t4, 0x800e
/* 0306F8 8002FAF8 4606103E */ c.le.s $f2, $f6
/* 0306FC 8002FAFC 00000000 */ nop
/* 030700 8002FB00 4502000A */ bc1fl .L8002FB2C
/* 030704 8002FB04 44803000 */ mtc1 $zero, $f6
/* 030708 8002FB08 C6040094 */ lwc1 $f4, 0x94($s0)
/* 03070C 8002FB0C 3C01800F */ lui $at, %hi(D_800ED8C0)
/* 030710 8002FB10 D428D8C0 */ ldc1 $f8, %lo(D_800ED8C0)($at)
/* 030714 8002FB14 460022A1 */ cvt.d.s $f10, $f4
/* 030718 8002FB18 4628503C */ c.lt.d $f10, $f8
/* 03071C 8002FB1C 00000000 */ nop
/* 030720 8002FB20 45030014 */ bc1tl .L8002FB74
/* 030724 8002FB24 3C01BF80 */ lui $at, 0xbf80
/* 030728 8002FB28 44803000 */ mtc1 $zero, $f6
.L8002FB2C:
/* 03072C 8002FB2C 00000000 */ nop
/* 030730 8002FB30 4606103E */ c.le.s $f2, $f6
/* 030734 8002FB34 00000000 */ nop
/* 030738 8002FB38 4502001A */ bc1fl .L8002FBA4
/* 03073C 8002FB3C C7AA00CC */ lwc1 $f10, 0xcc($sp)
/* 030740 8002FB40 C6040094 */ lwc1 $f4, 0x94($s0)
/* 030744 8002FB44 3C01800F */ lui $at, %hi(D_800ED8C8)
/* 030748 8002FB48 D428D8C8 */ ldc1 $f8, %lo(D_800ED8C8)($at)
/* 03074C 8002FB4C 460022A1 */ cvt.d.s $f10, $f4
/* 030750 8002FB50 4628503C */ c.lt.d $f10, $f8
/* 030754 8002FB54 00000000 */ nop
/* 030758 8002FB58 45020012 */ bc1fl .L8002FBA4
/* 03075C 8002FB5C C7AA00CC */ lwc1 $f10, 0xcc($sp)
/* 030760 8002FB60 8E0A00BC */ lw $t2, 0xbc($s0)
/* 030764 8002FB64 24010001 */ li $at, 1
/* 030768 8002FB68 314D0001 */ andi $t5, $t2, 1
/* 03076C 8002FB6C 15A1000C */ bne $t5, $at, .L8002FBA0
/* 030770 8002FB70 3C01BF80 */ li $at, 0xBF800000 # -1.000000
.L8002FB74:
/* 030774 8002FB74 44816000 */ mtc1 $at, $f12
/* 030778 8002FB78 C7A00068 */ lwc1 $f0, 0x68($sp)
/* 03077C 8002FB7C C7A20070 */ lwc1 $f2, 0x70($sp)
/* 030780 8002FB80 460C0182 */ mul.s $f6, $f0, $f12
/* 030784 8002FB84 00000000 */ nop
/* 030788 8002FB88 460C1102 */ mul.s $f4, $f2, $f12
/* 03078C 8002FB8C 46003000 */ add.s $f0, $f6, $f0
/* 030790 8002FB90 46022080 */ add.s $f2, $f4, $f2
/* 030794 8002FB94 E7A00068 */ swc1 $f0, 0x68($sp)
/* 030798 8002FB98 10000005 */ b .L8002FBB0
/* 03079C 8002FB9C E7A20070 */ swc1 $f2, 0x70($sp)
.L8002FBA0:
/* 0307A0 8002FBA0 C7AA00CC */ lwc1 $f10, 0xcc($sp)
.L8002FBA4:
/* 0307A4 8002FBA4 E60A0014 */ swc1 $f10, 0x14($s0)
/* 0307A8 8002FBA8 C7A800C4 */ lwc1 $f8, 0xc4($sp)
/* 0307AC 8002FBAC E608001C */ swc1 $f8, 0x1c($s0)
.L8002FBB0:
/* 0307B0 8002FBB0 C7A600C8 */ lwc1 $f6, 0xc8($sp)
/* 0307B4 8002FBB4 3C01800F */ lui $at, %hi(D_800ED8D0)
/* 0307B8 8002FBB8 D42AD8D0 */ ldc1 $f10, %lo(D_800ED8D0)($at)
/* 0307BC 8002FBBC 46003121 */ cvt.d.s $f4, $f6
/* 0307C0 8002FBC0 3C198016 */ lui $t9, %hi(D_80165070) # $t9, 0x8016
/* 0307C4 8002FBC4 462A2201 */ sub.d $f8, $f4, $f10
/* 0307C8 8002FBC8 27395070 */ addiu $t9, %lo(D_80165070) # addiu $t9, $t9, 0x5070
/* 0307CC 8002FBCC 24014000 */ li $at, 16384
/* 0307D0 8002FBD0 462041A0 */ cvt.s.d $f6, $f8
/* 0307D4 8002FBD4 E6060018 */ swc1 $f6, 0x18($s0)
/* 0307D8 8002FBD8 C7A400E8 */ lwc1 $f4, 0xe8($sp)
/* 0307DC 8002FBDC E6040064 */ swc1 $f4, 0x64($s0)
/* 0307E0 8002FBE0 C7AA00F0 */ lwc1 $f10, 0xf0($sp)
/* 0307E4 8002FBE4 E60A006C */ swc1 $f10, 0x6c($s0)
/* 0307E8 8002FBE8 C7A80068 */ lwc1 $f8, 0x68($sp)
/* 0307EC 8002FBEC E6080034 */ swc1 $f8, 0x34($s0)
/* 0307F0 8002FBF0 C7A6006C */ lwc1 $f6, 0x6c($sp)
/* 0307F4 8002FBF4 E6060038 */ swc1 $f6, 0x38($s0)
/* 0307F8 8002FBF8 C7A40070 */ lwc1 $f4, 0x70($sp)
/* 0307FC 8002FBFC E604003C */ swc1 $f4, 0x3c($s0)
/* 030800 8002FC00 83AF010F */ lb $t7, 0x10f($sp)
/* 030804 8002FC04 C7AA0068 */ lwc1 $f10, 0x68($sp)
/* 030808 8002FC08 C7A8006C */ lwc1 $f8, 0x6c($sp)
/* 03080C 8002FC0C 000F7080 */ sll $t6, $t7, 2
/* 030810 8002FC10 01CF7023 */ subu $t6, $t6, $t7
/* 030814 8002FC14 000E7080 */ sll $t6, $t6, 2
/* 030818 8002FC18 C7A60070 */ lwc1 $f6, 0x70($sp)
/* 03081C 8002FC1C 01D91021 */ addu $v0, $t6, $t9
/* 030820 8002FC20 E44A0000 */ swc1 $f10, ($v0)
/* 030824 8002FC24 E4480004 */ swc1 $f8, 4($v0)
/* 030828 8002FC28 E4460008 */ swc1 $f6, 8($v0)
/* 03082C 8002FC2C 96180000 */ lhu $t8, ($s0)
/* 030830 8002FC30 33084000 */ andi $t0, $t8, 0x4000
/* 030834 8002FC34 55010018 */ bnel $t0, $at, .L8002FC98
/* 030838 8002FC38 8FBF002C */ lw $ra, 0x2c($sp)
/* 03083C 8002FC3C 96090254 */ lhu $t1, 0x254($s0)
/* 030840 8002FC40 258C2690 */ addiu $t4, %lo(gKartTopSpeedTable) # addiu $t4, $t4, 0x2690
/* 030844 8002FC44 C6020094 */ lwc1 $f2, 0x94($s0)
/* 030848 8002FC48 00095880 */ sll $t3, $t1, 2
/* 03084C 8002FC4C 016C1021 */ addu $v0, $t3, $t4
/* 030850 8002FC50 C44C0000 */ lwc1 $f12, ($v0)
/* 030854 8002FC54 4602603C */ c.lt.s $f12, $f2
/* 030858 8002FC58 00000000 */ nop
/* 03085C 8002FC5C 4502000E */ bc1fl .L8002FC98
/* 030860 8002FC60 8FBF002C */ lw $ra, 0x2c($sp)
/* 030864 8002FC64 46026003 */ div.s $f0, $f12, $f2
/* 030868 8002FC68 C6040034 */ lwc1 $f4, 0x34($s0)
/* 03086C 8002FC6C C6080038 */ lwc1 $f8, 0x38($s0)
/* 030870 8002FC70 46002282 */ mul.s $f10, $f4, $f0
/* 030874 8002FC74 C604003C */ lwc1 $f4, 0x3c($s0)
/* 030878 8002FC78 46004182 */ mul.s $f6, $f8, $f0
/* 03087C 8002FC7C E60A0034 */ swc1 $f10, 0x34($s0)
/* 030880 8002FC80 46002282 */ mul.s $f10, $f4, $f0
/* 030884 8002FC84 E6060038 */ swc1 $f6, 0x38($s0)
/* 030888 8002FC88 E60A003C */ swc1 $f10, 0x3c($s0)
/* 03088C 8002FC8C C4480000 */ lwc1 $f8, ($v0)
/* 030890 8002FC90 E6080094 */ swc1 $f8, 0x94($s0)
/* 030894 8002FC94 8FBF002C */ lw $ra, 0x2c($sp)
.L8002FC98:
/* 030898 8002FC98 8FB00028 */ lw $s0, 0x28($sp)
/* 03089C 8002FC9C 27BD0100 */ addiu $sp, $sp, 0x100
/* 0308A0 8002FCA0 03E00008 */ jr $ra
/* 0308A4 8002FCA4 00000000 */ nop