SpaghettiKart/asm/non_matchings/code_80005FD0/func_80009B60.s

1536 lines
78 KiB
ArmAsm

.section .late_rodata
glabel D_800ECFB0
.float 4.3
glabel D_800ECFB4
.float 8.33333333
glabel D_800ECFB8
.float 0.9
glabel D_800ECFBC
.float -0.9
glabel D_800ECFC0
.float 0.9
glabel D_800ECFC4
.float -0.9
glabel D_800ECFC8
.float 3.33333333
.section .text
glabel func_80009B60
/* 00A760 80009B60 3C0E800E */ lui $t6, %hi(gCurrentCourseId)
/* 00A764 80009B64 85CEC5A0 */ lh $t6, %lo(gCurrentCourseId)($t6)
/* 00A768 80009B68 3C01800E */ lui $at, %hi(D_800DCA4C)
/* 00A76C 80009B6C 3C0A8016 */ lui $t2, %hi(D_80163100) # $t2, 0x8016
/* 00A770 80009B70 000E7880 */ sll $t7, $t6, 2
/* 00A774 80009B74 002F0821 */ addu $at, $at, $t7
/* 00A778 80009B78 C424CA4C */ lwc1 $f4, %lo(D_800DCA4C)($at)
/* 00A77C 80009B7C 27BDFF30 */ addiu $sp, $sp, -0xd0
/* 00A780 80009B80 254A3100 */ addiu $t2, %lo(D_80163100) # addiu $t2, $t2, 0x3100
/* 00A784 80009B84 4600218D */ trunc.w.s $f6, $f4
/* 00A788 80009B88 00043880 */ sll $a3, $a0, 2
/* 00A78C 80009B8C AFBF0014 */ sw $ra, 0x14($sp)
/* 00A790 80009B90 00802825 */ move $a1, $a0
/* 00A794 80009B94 44193000 */ mfc1 $t9, $f6
/* 00A798 80009B98 00EA1021 */ addu $v0, $a3, $t2
/* 00A79C 80009B9C 07220565 */ bltzl $t9, .L8000B134
/* 00A7A0 80009BA0 8FBF0014 */ lw $ra, 0x14($sp)
/* 00A7A4 80009BA4 8C4B0000 */ lw $t3, ($v0)
/* 00A7A8 80009BA8 3C088016 */ lui $t0, %hi(D_80163378) # $t0, 0x8016
/* 00A7AC 80009BAC 25083378 */ addiu $t0, %lo(D_80163378) # addiu $t0, $t0, 0x3378
/* 00A7B0 80009BB0 256C0001 */ addiu $t4, $t3, 1
/* 00A7B4 80009BB4 1480000B */ bnez $a0, .L80009BE4
/* 00A7B8 80009BB8 AC4C0000 */ sw $t4, ($v0)
/* 00A7BC 80009BBC 8D0D0000 */ lw $t5, ($t0)
/* 00A7C0 80009BC0 3C028016 */ lui $v0, %hi(D_80163488) # $v0, 0x8016
/* 00A7C4 80009BC4 24423488 */ addiu $v0, %lo(D_80163488) # addiu $v0, $v0, 0x3488
/* 00A7C8 80009BC8 25AE0001 */ addiu $t6, $t5, 1
/* 00A7CC 80009BCC 31D80001 */ andi $t8, $t6, 1
/* 00A7D0 80009BD0 13000004 */ beqz $t8, .L80009BE4
/* 00A7D4 80009BD4 AD0E0000 */ sw $t6, ($t0)
/* 00A7D8 80009BD8 8C590000 */ lw $t9, ($v0)
/* 00A7DC 80009BDC 272A0001 */ addiu $t2, $t9, 1
/* 00A7E0 80009BE0 AC4A0000 */ sw $t2, ($v0)
.L80009BE4:
/* 00A7E4 80009BE4 000558C0 */ sll $t3, $a1, 3
/* 00A7E8 80009BE8 01655823 */ subu $t3, $t3, $a1
/* 00A7EC 80009BEC 000B5900 */ sll $t3, $t3, 4
/* 00A7F0 80009BF0 01655823 */ subu $t3, $t3, $a1
/* 00A7F4 80009BF4 000B5880 */ sll $t3, $t3, 2
/* 00A7F8 80009BF8 01655823 */ subu $t3, $t3, $a1
/* 00A7FC 80009BFC 3C0C800F */ lui $t4, %hi(gPlayers) # $t4, 0x800f
/* 00A800 80009C00 258C6990 */ addiu $t4, %lo(gPlayers) # addiu $t4, $t4, 0x6990
/* 00A804 80009C04 000B58C0 */ sll $t3, $t3, 3
/* 00A808 80009C08 016C1821 */ addu $v1, $t3, $t4
/* 00A80C 80009C0C 946D0000 */ lhu $t5, ($v1)
/* 00A810 80009C10 3C188016 */ lui $t8, %hi(D_801633E0) # $t8, 0x8016
/* 00A814 80009C14 271833E0 */ addiu $t8, %lo(D_801633E0) # addiu $t8, $t8, 0x33e0
/* 00A818 80009C18 31AE8000 */ andi $t6, $t5, 0x8000
/* 00A81C 80009C1C 15C0000E */ bnez $t6, .L80009C58
/* 00A820 80009C20 00053040 */ sll $a2, $a1, 1
/* 00A824 80009C24 3C01C47A */ li $at, 0xC47A0000 # -1000.000000
/* 00A828 80009C28 44810000 */ mtc1 $at, $f0
/* 00A82C 80009C2C 3C018016 */ lui $at, %hi(D_80164450) # 0x8016
/* 00A830 80009C30 00270821 */ addu $at, $at, $a3
/* 00A834 80009C34 240FFFEC */ li $t7, -20
/* 00A838 80009C38 AC2F4450 */ sw $t7, %lo(D_80164450)($at) # 0x4450($at)
/* 00A83C 80009C3C 3C018016 */ lui $at, %hi(gCourseCompletionPercentByPlayerId)
/* 00A840 80009C40 00270821 */ addu $at, $at, $a3
/* 00A844 80009C44 E42044D0 */ swc1 $f0, %lo(gCourseCompletionPercentByPlayerId)($at)
/* 00A848 80009C48 3C018016 */ lui $at, %hi(gLapCompletionPercentByPlayerId)
/* 00A84C 80009C4C 00270821 */ addu $at, $at, $a3
/* 00A850 80009C50 10000537 */ b .L8000B130
/* 00A854 80009C54 E42044A8 */ swc1 $f0, %lo(gLapCompletionPercentByPlayerId)($at)
.L80009C58:
/* 00A858 80009C58 00D81021 */ addu $v0, $a2, $t8
/* 00A85C 80009C5C A4400000 */ sh $zero, ($v0)
/* 00A860 80009C60 3C198016 */ lui $t9, %hi(D_8015F6EA) # $t9, 0x8016
/* 00A864 80009C64 8739F6EA */ lh $t9, %lo(D_8015F6EA)($t9)
/* 00A868 80009C68 C4600014 */ lwc1 $f0, 0x14($v1)
/* 00A86C 80009C6C 240A0001 */ li $t2, 1
/* 00A870 80009C70 44994000 */ mtc1 $t9, $f8
/* 00A874 80009C74 3C0B8016 */ lui $t3, %hi(D_8015F6E8) # $t3, 0x8016
/* 00A878 80009C78 240C0002 */ li $t4, 2
/* 00A87C 80009C7C 468042A0 */ cvt.s.w $f10, $f8
/* 00A880 80009C80 3C0D8016 */ lui $t5, %hi(D_8015F6F2) # $t5, 0x8016
/* 00A884 80009C84 240E0003 */ li $t6, 3
/* 00A888 80009C88 24180004 */ li $t8, 4
/* 00A88C 80009C8C 3C0F8016 */ lui $t7, %hi(D_8015F6F0) # $t7, 0x8016
/* 00A890 80009C90 460A003C */ c.lt.s $f0, $f10
/* 00A894 80009C94 00000000 */ nop
/* 00A898 80009C98 45000003 */ bc1f .L80009CA8
/* 00A89C 80009C9C 00000000 */ nop
/* 00A8A0 80009CA0 A44A0000 */ sh $t2, ($v0)
/* 00A8A4 80009CA4 C4600014 */ lwc1 $f0, 0x14($v1)
.L80009CA8:
/* 00A8A8 80009CA8 856BF6E8 */ lh $t3, %lo(D_8015F6E8)($t3)
/* 00A8AC 80009CAC 448B8000 */ mtc1 $t3, $f16
/* 00A8B0 80009CB0 00000000 */ nop
/* 00A8B4 80009CB4 468084A0 */ cvt.s.w $f18, $f16
/* 00A8B8 80009CB8 4600903C */ c.lt.s $f18, $f0
/* 00A8BC 80009CBC 00000000 */ nop
/* 00A8C0 80009CC0 45000002 */ bc1f .L80009CCC
/* 00A8C4 80009CC4 00000000 */ nop
/* 00A8C8 80009CC8 A44C0000 */ sh $t4, ($v0)
.L80009CCC:
/* 00A8CC 80009CCC 85ADF6F2 */ lh $t5, %lo(D_8015F6F2)($t5)
/* 00A8D0 80009CD0 C460001C */ lwc1 $f0, 0x1c($v1)
/* 00A8D4 80009CD4 448D2000 */ mtc1 $t5, $f4
/* 00A8D8 80009CD8 00000000 */ nop
/* 00A8DC 80009CDC 468021A0 */ cvt.s.w $f6, $f4
/* 00A8E0 80009CE0 4606003C */ c.lt.s $f0, $f6
/* 00A8E4 80009CE4 00000000 */ nop
/* 00A8E8 80009CE8 45000003 */ bc1f .L80009CF8
/* 00A8EC 80009CEC 00000000 */ nop
/* 00A8F0 80009CF0 A44E0000 */ sh $t6, ($v0)
/* 00A8F4 80009CF4 C460001C */ lwc1 $f0, 0x1c($v1)
.L80009CF8:
/* 00A8F8 80009CF8 85EFF6F0 */ lh $t7, %lo(D_8015F6F0)($t7)
/* 00A8FC 80009CFC 448F4000 */ mtc1 $t7, $f8
/* 00A900 80009D00 00000000 */ nop
/* 00A904 80009D04 468042A0 */ cvt.s.w $f10, $f8
/* 00A908 80009D08 4600503C */ c.lt.s $f10, $f0
/* 00A90C 80009D0C 00000000 */ nop
/* 00A910 80009D10 45020003 */ bc1fl .L80009D20
/* 00A914 80009D14 846200CA */ lh $v0, 0xca($v1)
/* 00A918 80009D18 A4580000 */ sh $t8, ($v0)
/* 00A91C 80009D1C 846200CA */ lh $v0, 0xca($v1)
.L80009D20:
/* 00A920 80009D20 30590002 */ andi $t9, $v0, 2
/* 00A924 80009D24 17200502 */ bnez $t9, .L8000B130
/* 00A928 80009D28 304A0008 */ andi $t2, $v0, 8
/* 00A92C 80009D2C 15400500 */ bnez $t2, .L8000B130
/* 00A930 80009D30 3C028016 */ lui $v0, %hi(D_80163448) # $v0, 0x8016
/* 00A934 80009D34 3C0B8016 */ lui $t3, %hi(gPathIndexByPlayerId) # 0x8016
/* 00A938 80009D38 01665821 */ addu $t3, $t3, $a2
/* 00A93C 80009D3C 956445B0 */ lhu $a0, %lo(gPathIndexByPlayerId)($t3) # 0x45b0($t3)
/* 00A940 80009D40 24423448 */ addiu $v0, %lo(D_80163448) # addiu $v0, $v0, 0x3448
/* 00A944 80009D44 AFA30040 */ sw $v1, 0x40($sp)
/* 00A948 80009D48 AFA500D0 */ sw $a1, 0xd0($sp)
/* 00A94C 80009D4C AFA60034 */ sw $a2, 0x34($sp)
/* 00A950 80009D50 AFA70038 */ sw $a3, 0x38($sp)
/* 00A954 80009D54 0C002370 */ jal func_80008DC0
/* 00A958 80009D58 AC440000 */ sw $a0, ($v0)
/* 00A95C 80009D5C 3C02800E */ lui $v0, %hi(gCurrentCourseId)
/* 00A960 80009D60 8442C5A0 */ lh $v0, %lo(gCurrentCourseId)($v0)
/* 00A964 80009D64 2401000A */ li $at, 10
/* 00A968 80009D68 8FA400D0 */ lw $a0, 0xd0($sp)
/* 00A96C 80009D6C 10410015 */ beq $v0, $at, .L80009DC4
/* 00A970 80009D70 2401000B */ li $at, 11
/* 00A974 80009D74 10410006 */ beq $v0, $at, .L80009D90
/* 00A978 80009D78 8FA400D0 */ lw $a0, 0xd0($sp)
/* 00A97C 80009D7C 24010012 */ li $at, 18
/* 00A980 80009D80 1041000C */ beq $v0, $at, .L80009DB4
/* 00A984 80009D84 00000000 */ nop
/* 00A988 80009D88 1000001A */ b .L80009DF4
/* 00A98C 80009D8C 8FA50040 */ lw $a1, 0x40($sp)
.L80009D90:
/* 00A990 80009D90 0C004B70 */ jal func_80012DC0
/* 00A994 80009D94 8FA50040 */ lw $a1, 0x40($sp)
/* 00A998 80009D98 8FAC00D0 */ lw $t4, 0xd0($sp)
/* 00A99C 80009D9C 55800015 */ bnel $t4, $zero, .L80009DF4
/* 00A9A0 80009DA0 8FA50040 */ lw $a1, 0x40($sp)
/* 00A9A4 80009DA4 0C004C15 */ jal func_80013054
/* 00A9A8 80009DA8 00000000 */ nop
/* 00A9AC 80009DAC 10000011 */ b .L80009DF4
/* 00A9B0 80009DB0 8FA50040 */ lw $a1, 0x40($sp)
.L80009DB4:
/* 00A9B4 80009DB4 0C004E15 */ jal func_80013854
/* 00A9B8 80009DB8 8FA40040 */ lw $a0, 0x40($sp)
/* 00A9BC 80009DBC 1000000D */ b .L80009DF4
/* 00A9C0 80009DC0 8FA50040 */ lw $a1, 0x40($sp)
.L80009DC4:
/* 00A9C4 80009DC4 0C005231 */ jal func_800148C4
/* 00A9C8 80009DC8 8FA50040 */ lw $a1, 0x40($sp)
/* 00A9CC 80009DCC 8FA400D0 */ lw $a0, 0xd0($sp)
/* 00A9D0 80009DD0 0C005286 */ jal func_80014A18
/* 00A9D4 80009DD4 8FA50040 */ lw $a1, 0x40($sp)
/* 00A9D8 80009DD8 8FA400D0 */ lw $a0, 0xd0($sp)
/* 00A9DC 80009DDC 0C0052DB */ jal func_80014B6C
/* 00A9E0 80009DE0 8FA50040 */ lw $a1, 0x40($sp)
/* 00A9E4 80009DE4 8FA400D0 */ lw $a0, 0xd0($sp)
/* 00A9E8 80009DE8 0C005330 */ jal func_80014CC0
/* 00A9EC 80009DEC 8FA50040 */ lw $a1, 0x40($sp)
/* 00A9F0 80009DF0 8FA50040 */ lw $a1, 0x40($sp)
.L80009DF4:
/* 00A9F4 80009DF4 3C01FFBF */ lui $at, (0xFFBFFFFF >> 16) # lui $at, 0xffbf
/* 00A9F8 80009DF8 94AD0000 */ lhu $t5, ($a1)
/* 00A9FC 80009DFC 31AE0800 */ andi $t6, $t5, 0x800
/* 00AA00 80009E00 11C00008 */ beqz $t6, .L80009E24
/* 00AA04 80009E04 00000000 */ nop
/* 00AA08 80009E08 8CAF00BC */ lw $t7, 0xbc($a1)
/* 00AA0C 80009E0C 84B90044 */ lh $t9, 0x44($a1)
/* 00AA10 80009E10 3421FFFF */ ori $at, (0xFFBFFFFF & 0xFFFF) # ori $at, $at, 0xffff
/* 00AA14 80009E14 01E1C024 */ and $t8, $t7, $at
/* 00AA18 80009E18 332AFFFE */ andi $t2, $t9, 0xfffe
/* 00AA1C 80009E1C ACB800BC */ sw $t8, 0xbc($a1)
/* 00AA20 80009E20 A4AA0044 */ sh $t2, 0x44($a1)
.L80009E24:
/* 00AA24 80009E24 0C0024A7 */ jal func_8000929C
/* 00AA28 80009E28 8FA400D0 */ lw $a0, 0xd0($sp)
/* 00AA2C 80009E2C 3C0B800E */ lui $t3, %hi(gCurrentCourseId)
/* 00AA30 80009E30 856BC5A0 */ lh $t3, %lo(gCurrentCourseId)($t3)
/* 00AA34 80009E34 24010014 */ li $at, 20
/* 00AA38 80009E38 8FAC0034 */ lw $t4, 0x34($sp)
/* 00AA3C 80009E3C 1161000B */ beq $t3, $at, .L80009E6C
/* 00AA40 80009E40 3C0D8016 */ lui $t5, %hi(D_80163240) # 0x8016
/* 00AA44 80009E44 01AC6821 */ addu $t5, $t5, $t4
/* 00AA48 80009E48 95AD3240 */ lhu $t5, %lo(D_80163240)($t5) # 0x3240($t5)
/* 00AA4C 80009E4C 24010001 */ li $at, 1
/* 00AA50 80009E50 8FAE00D0 */ lw $t6, 0xd0($sp)
/* 00AA54 80009E54 11A10003 */ beq $t5, $at, .L80009E64
/* 00AA58 80009E58 00000000 */ nop
/* 00AA5C 80009E5C 55C00004 */ bnel $t6, $zero, .L80009E70
/* 00AA60 80009E60 8FAF0040 */ lw $t7, 0x40($sp)
.L80009E64:
/* 00AA64 80009E64 0C0019F1 */ jal set_places
/* 00AA68 80009E68 00000000 */ nop
.L80009E6C:
/* 00AA6C 80009E6C 8FAF0040 */ lw $t7, 0x40($sp)
.L80009E70:
/* 00AA70 80009E70 3C0A8016 */ lui $t2, %hi(D_801630E2) # $t2, 0x8016
/* 00AA74 80009E74 95F80000 */ lhu $t8, ($t7)
/* 00AA78 80009E78 33191000 */ andi $t9, $t8, 0x1000
/* 00AA7C 80009E7C 532004AD */ beql $t9, $zero, .L8000B134
/* 00AA80 80009E80 8FBF0014 */ lw $ra, 0x14($sp)
/* 00AA84 80009E84 854A30E2 */ lh $t2, %lo(D_801630E2)($t2)
/* 00AA88 80009E88 24010001 */ li $at, 1
/* 00AA8C 80009E8C 15410007 */ bne $t2, $at, .L80009EAC
/* 00AA90 80009E90 3C0B800E */ lui $t3, %hi(gCurrentCourseId)
/* 00AA94 80009E94 856BC5A0 */ lh $t3, %lo(gCurrentCourseId)($t3)
/* 00AA98 80009E98 24010014 */ li $at, 20
/* 00AA9C 80009E9C 11610003 */ beq $t3, $at, .L80009EAC
/* 00AAA0 80009EA0 00000000 */ nop
/* 00AAA4 80009EA4 0C00478E */ jal func_80011E38
/* 00AAA8 80009EA8 8FA400D0 */ lw $a0, 0xd0($sp)
.L80009EAC:
/* 00AAAC 80009EAC 3C0E8016 */ lui $t6, %hi(D_80163378) # $t6, 0x8016
/* 00AAB0 80009EB0 8DCE3378 */ lw $t6, %lo(D_80163378)($t6)
/* 00AAB4 80009EB4 8FAC00D0 */ lw $t4, 0xd0($sp)
/* 00AAB8 80009EB8 31CF0001 */ andi $t7, $t6, 1
/* 00AABC 80009EBC 318D0001 */ andi $t5, $t4, 1
/* 00AAC0 80009EC0 11ED0003 */ beq $t7, $t5, .L80009ED0
/* 00AAC4 80009EC4 AFAD0030 */ sw $t5, 0x30($sp)
/* 00AAC8 80009EC8 0C006B04 */ jal cpu_use_item_strategy
/* 00AACC 80009ECC 01802025 */ move $a0, $t4
.L80009ED0:
/* 00AAD0 80009ED0 8FA400D0 */ lw $a0, 0xd0($sp)
/* 00AAD4 80009ED4 0C00267B */ jal func_800099EC
/* 00AAD8 80009ED8 8FA50040 */ lw $a1, 0x40($sp)
/* 00AADC 80009EDC 3C02800E */ lui $v0, %hi(gModeSelection)
/* 00AAE0 80009EE0 8C42C53C */ lw $v0, %lo(gModeSelection)($v0)
/* 00AAE4 80009EE4 3C018016 */ lui $at, %hi(D_80162FD0) # $at, 0x8016
/* 00AAE8 80009EE8 A4202FD0 */ sh $zero, %lo(D_80162FD0)($at)
/* 00AAEC 80009EEC 1040000A */ beqz $v0, .L80009F18
/* 00AAF0 80009EF0 8FA80034 */ lw $t0, 0x34($sp)
/* 00AAF4 80009EF4 24090001 */ li $t1, 1
/* 00AAF8 80009EF8 10490008 */ beq $v0, $t1, .L80009F1C
/* 00AAFC 80009EFC 24010002 */ li $at, 2
/* 00AB00 80009F00 10410006 */ beq $v0, $at, .L80009F1C
/* 00AB04 80009F04 24010003 */ li $at, 3
/* 00AB08 80009F08 10410004 */ beq $v0, $at, .L80009F1C
/* 00AB0C 80009F0C 00000000 */ nop
/* 00AB10 80009F10 10000002 */ b .L80009F1C
/* 00AB14 80009F14 00000000 */ nop
.L80009F18:
/* 00AB18 80009F18 24090001 */ li $t1, 1
.L80009F1C:
/* 00AB1C 80009F1C 3C188016 */ lui $t8, %hi(D_801631E0) # $t8, 0x8016
/* 00AB20 80009F20 8FB90040 */ lw $t9, 0x40($sp)
/* 00AB24 80009F24 271831E0 */ addiu $t8, %lo(D_801631E0) # addiu $t8, $t8, 0x31e0
/* 00AB28 80009F28 01182821 */ addu $a1, $t0, $t8
/* 00AB2C 80009F2C A4A00000 */ sh $zero, ($a1)
/* 00AB30 80009F30 8F2A00BC */ lw $t2, 0xbc($t9)
/* 00AB34 80009F34 3C0E800E */ lui $t6, %hi(gCurrentCourseId)
/* 00AB38 80009F38 3C0D8016 */ lui $t5, %hi(D_801646CC) # $t5, 0x8016
/* 00AB3C 80009F3C 314B1000 */ andi $t3, $t2, 0x1000
/* 00AB40 80009F40 11600007 */ beqz $t3, .L80009F60
/* 00AB44 80009F44 00000000 */ nop
/* 00AB48 80009F48 85CEC5A0 */ lh $t6, %lo(gCurrentCourseId)($t6)
/* 00AB4C 80009F4C 24010014 */ li $at, 20
/* 00AB50 80009F50 240F0001 */ li $t7, 1
/* 00AB54 80009F54 11C10002 */ beq $t6, $at, .L80009F60
/* 00AB58 80009F58 00000000 */ nop
/* 00AB5C 80009F5C A4AF0000 */ sh $t7, ($a1)
.L80009F60:
/* 00AB60 80009F60 95AD46CC */ lhu $t5, %lo(D_801646CC)($t5)
/* 00AB64 80009F64 3C02800E */ lui $v0, %hi(gCurrentCourseId)
/* 00AB68 80009F68 8442C5A0 */ lh $v0, %lo(gCurrentCourseId)($v0)
/* 00AB6C 80009F6C 112D0007 */ beq $t1, $t5, .L80009F8C
/* 00AB70 80009F70 8FAC0040 */ lw $t4, 0x40($sp)
/* 00AB74 80009F74 95980000 */ lhu $t8, ($t4)
/* 00AB78 80009F78 24010014 */ li $at, 20
/* 00AB7C 80009F7C 33190800 */ andi $t9, $t8, 0x800
/* 00AB80 80009F80 57200003 */ bnel $t9, $zero, .L80009F90
/* 00AB84 80009F84 2401000A */ li $at, 10
/* 00AB88 80009F88 1441000E */ bne $v0, $at, .L80009FC4
.L80009F8C:
/* 00AB8C 80009F8C 2401000A */ li $at, 10
.L80009F90:
/* 00AB90 80009F90 10410006 */ beq $v0, $at, .L80009FAC
/* 00AB94 80009F94 8FAA00D0 */ lw $t2, 0xd0($sp)
/* 00AB98 80009F98 44808000 */ mtc1 $zero, $f16
/* 00AB9C 80009F9C 000A5900 */ sll $t3, $t2, 4
/* 00ABA0 80009FA0 3C018016 */ lui $at, %hi(D_801634F8 + 4)
/* 00ABA4 80009FA4 002B0821 */ addu $at, $at, $t3
/* 00ABA8 80009FA8 E43034FC */ swc1 $f16, %lo(D_801634F8 + 4)($at)
.L80009FAC:
/* 00ABAC 80009FAC 8FAE00D0 */ lw $t6, 0xd0($sp)
/* 00ABB0 80009FB0 44809000 */ mtc1 $zero, $f18
/* 00ABB4 80009FB4 3C018016 */ lui $at, %hi(D_801634F8 + 12)
/* 00ABB8 80009FB8 000E7900 */ sll $t7, $t6, 4
/* 00ABBC 80009FBC 002F0821 */ addu $at, $at, $t7
/* 00ABC0 80009FC0 E4323504 */ swc1 $f18, %lo(D_801634F8 + 12)($at)
.L80009FC4:
/* 00ABC4 80009FC4 3C028016 */ lui $v0, %hi(D_80163448) # $v0, 0x8016
/* 00ABC8 80009FC8 8C423448 */ lw $v0, %lo(D_80163448)($v0)
/* 00ABCC 80009FCC 3C0A8016 */ lui $t2, %hi(D_80164510) # $t2, 0x8016
/* 00ABD0 80009FD0 254A4510 */ addiu $t2, %lo(D_80164510) # addiu $t2, $t2, 0x4510
/* 00ABD4 80009FD4 1840000A */ blez $v0, .L8000A000
/* 00ABD8 80009FD8 3C0B8016 */ lui $t3, %hi(gNearestWaypointByPlayerId) # $t3, 0x8016
/* 00ABDC 80009FDC 8FAD00D0 */ lw $t5, 0xd0($sp)
/* 00ABE0 80009FE0 3C188016 */ lui $t8, %hi(D_801634F8) # $t8, 0x8016
/* 00ABE4 80009FE4 44802000 */ mtc1 $zero, $f4
/* 00ABE8 80009FE8 44803000 */ mtc1 $zero, $f6
/* 00ABEC 80009FEC 271834F8 */ addiu $t8, %lo(D_801634F8) # addiu $t8, $t8, 0x34f8
/* 00ABF0 80009FF0 000D6100 */ sll $t4, $t5, 4
/* 00ABF4 80009FF4 01981821 */ addu $v1, $t4, $t8
/* 00ABF8 80009FF8 E4640004 */ swc1 $f4, 4($v1)
/* 00ABFC 80009FFC E466000C */ swc1 $f6, 0xc($v1)
.L8000A000:
/* 00AC00 8000A000 256B4438 */ addiu $t3, %lo(gNearestWaypointByPlayerId) # addiu $t3, $t3, 0x4438
/* 00AC04 8000A004 010B7021 */ addu $t6, $t0, $t3
/* 00AC08 8000A008 8FB90038 */ lw $t9, 0x38($sp)
/* 00AC0C 8000A00C AFAE0024 */ sw $t6, 0x24($sp)
/* 00AC10 8000A010 00027880 */ sll $t7, $v0, 2
/* 00AC14 8000A014 3C0D8016 */ lui $t5, %hi(D_80164550) # 0x8016
/* 00AC18 8000A018 95D80000 */ lhu $t8, ($t6)
/* 00AC1C 8000A01C 01AF6821 */ addu $t5, $t5, $t7
/* 00AC20 8000A020 8DAD4550 */ lw $t5, %lo(D_80164550)($t5) # 0x4550($t5)
/* 00AC24 8000A024 032A3021 */ addu $a2, $t9, $t2
/* 00AC28 8000A028 0018C8C0 */ sll $t9, $t8, 3
/* 00AC2C 8000A02C 01B95021 */ addu $t2, $t5, $t9
/* 00AC30 8000A030 854B0002 */ lh $t3, 2($t2)
/* 00AC34 8000A034 3C01800F */ lui $at, %hi(D_800ECFB0) # $at, 0x800f
/* 00AC38 8000A038 C430CFB0 */ lwc1 $f16, %lo(D_800ECFB0)($at)
/* 00AC3C 8000A03C 448B4000 */ mtc1 $t3, $f8
/* 00AC40 8000A040 3C0E8016 */ lui $t6, %hi(D_801631F8) # $t6, 0x8016
/* 00AC44 8000A044 25CE31F8 */ addiu $t6, %lo(D_801631F8) # addiu $t6, $t6, 0x31f8
/* 00AC48 8000A048 468042A0 */ cvt.s.w $f10, $f8
/* 00AC4C 8000A04C 010E3821 */ addu $a3, $t0, $t6
/* 00AC50 8000A050 94EF0000 */ lhu $t7, ($a3)
/* 00AC54 8000A054 46105480 */ add.s $f18, $f10, $f16
/* 00AC58 8000A058 152F000E */ bne $t1, $t7, .L8000A094
/* 00AC5C 8000A05C E4D20000 */ swc1 $f18, ($a2)
/* 00AC60 8000A060 94AC0000 */ lhu $t4, ($a1)
/* 00AC64 8000A064 8FA40040 */ lw $a0, 0x40($sp)
/* 00AC68 8000A068 5580000B */ bnel $t4, $zero, .L8000A098
/* 00AC6C 8000A06C 94A30000 */ lhu $v1, ($a1)
/* 00AC70 8000A070 AFA5002C */ sw $a1, 0x2c($sp)
/* 00AC74 8000A074 AFA60028 */ sw $a2, 0x28($sp)
/* 00AC78 8000A078 0C00B931 */ jal func_8002E4C4
/* 00AC7C 8000A07C AFA70020 */ sw $a3, 0x20($sp)
/* 00AC80 8000A080 8FA5002C */ lw $a1, 0x2c($sp)
/* 00AC84 8000A084 8FA60028 */ lw $a2, 0x28($sp)
/* 00AC88 8000A088 8FA70020 */ lw $a3, 0x20($sp)
/* 00AC8C 8000A08C 24090001 */ li $t1, 1
/* 00AC90 8000A090 8FA80034 */ lw $t0, 0x34($sp)
.L8000A094:
/* 00AC94 8000A094 94A30000 */ lhu $v1, ($a1)
.L8000A098:
/* 00AC98 8000A098 8FB80040 */ lw $t8, 0x40($sp)
/* 00AC9C 8000A09C 3C02800E */ lui $v0, %hi(gCurrentCourseId)
/* 00ACA0 8000A0A0 55230005 */ bnel $t1, $v1, .L8000A0B8
/* 00ACA4 8000A0A4 A4E30000 */ sh $v1, ($a3)
/* 00ACA8 8000A0A8 C4C40000 */ lwc1 $f4, ($a2)
/* 00ACAC 8000A0AC E7040018 */ swc1 $f4, 0x18($t8)
/* 00ACB0 8000A0B0 94A30000 */ lhu $v1, ($a1)
/* 00ACB4 8000A0B4 A4E30000 */ sh $v1, ($a3)
.L8000A0B8:
/* 00ACB8 8000A0B8 8442C5A0 */ lh $v0, %lo(gCurrentCourseId)($v0)
/* 00ACBC 8000A0BC 8FAD00D0 */ lw $t5, 0xd0($sp)
/* 00ACC0 8000A0C0 24010004 */ li $at, 4
/* 00ACC4 8000A0C4 10410009 */ beq $v0, $at, .L8000A0EC
/* 00ACC8 8000A0C8 000DC900 */ sll $t9, $t5, 4
/* 00ACCC 8000A0CC 2401000A */ li $at, 10
/* 00ACD0 8000A0D0 1041000C */ beq $v0, $at, .L8000A104
/* 00ACD4 8000A0D4 8FA400D0 */ lw $a0, 0xd0($sp)
/* 00ACD8 8000A0D8 24010014 */ li $at, 20
/* 00ACDC 8000A0DC 10410004 */ beq $v0, $at, .L8000A0F0
/* 00ACE0 8000A0E0 00602025 */ move $a0, $v1
/* 00ACE4 8000A0E4 10000013 */ b .L8000A134
/* 00ACE8 8000A0E8 00000000 */ nop
.L8000A0EC:
/* 00ACEC 8000A0EC 00602025 */ move $a0, $v1
.L8000A0F0:
/* 00ACF0 8000A0F0 44803000 */ mtc1 $zero, $f6
/* 00ACF4 8000A0F4 3C018016 */ lui $at, %hi(D_801634F8 + 4)
/* 00ACF8 8000A0F8 00390821 */ addu $at, $at, $t9
/* 00ACFC 8000A0FC 1000000D */ b .L8000A134
/* 00AD00 8000A100 E42634FC */ swc1 $f6, %lo(D_801634F8 + 4)($at)
.L8000A104:
/* 00AD04 8000A104 0C005243 */ jal func_8001490C
/* 00AD08 8000A108 AFA5002C */ sw $a1, 0x2c($sp)
/* 00AD0C 8000A10C 0C005298 */ jal func_80014A60
/* 00AD10 8000A110 8FA400D0 */ lw $a0, 0xd0($sp)
/* 00AD14 8000A114 0C0052ED */ jal func_80014BB4
/* 00AD18 8000A118 8FA400D0 */ lw $a0, 0xd0($sp)
/* 00AD1C 8000A11C 0C005342 */ jal func_80014D08
/* 00AD20 8000A120 8FA400D0 */ lw $a0, 0xd0($sp)
/* 00AD24 8000A124 8FA5002C */ lw $a1, 0x2c($sp)
/* 00AD28 8000A128 24090001 */ li $t1, 1
/* 00AD2C 8000A12C 8FA80034 */ lw $t0, 0x34($sp)
/* 00AD30 8000A130 94A40000 */ lhu $a0, ($a1)
.L8000A134:
/* 00AD34 8000A134 152400FE */ bne $t1, $a0, .L8000A530
/* 00AD38 8000A138 3C0C8016 */ lui $t4, %hi(D_801630E8) # 0x8016
/* 00AD3C 8000A13C 8FAA0040 */ lw $t2, 0x40($sp)
/* 00AD40 8000A140 3C018016 */ lui $at, %hi(D_801630E8) # 0x8016
/* 00AD44 8000A144 00280821 */ addu $at, $at, $t0
/* 00AD48 8000A148 A42030E8 */ sh $zero, %lo(D_801630E8)($at) # 0x30e8($at)
/* 00AD4C 8000A14C 8D4B00BC */ lw $t3, 0xbc($t2)
/* 00AD50 8000A150 2401FFEF */ li $at, -17
/* 00AD54 8000A154 3C0F8016 */ lui $t7, %hi(D_80163378) # $t7, 0x8016
/* 00AD58 8000A158 01617024 */ and $t6, $t3, $at
/* 00AD5C 8000A15C AD4E00BC */ sw $t6, 0xbc($t2)
/* 00AD60 8000A160 8DEF3378 */ lw $t7, %lo(D_80163378)($t7)
/* 00AD64 8000A164 8FB80030 */ lw $t8, 0x30($sp)
/* 00AD68 8000A168 3C028019 */ lui $v0, %hi(gPlayerCount) # $v0, 0x8019
/* 00AD6C 8000A16C 31EC0001 */ andi $t4, $t7, 1
/* 00AD70 8000A170 1198000C */ beq $t4, $t8, .L8000A1A4
/* 00AD74 8000A174 01402025 */ move $a0, $t2
/* 00AD78 8000A178 0C00DA03 */ jal func_8003680C
/* 00AD7C 8000A17C 00002825 */ move $a1, $zero
/* 00AD80 8000A180 8FAD0038 */ lw $t5, 0x38($sp)
/* 00AD84 8000A184 3C058016 */ lui $a1, %hi(D_80163210) # 0x8016
/* 00AD88 8000A188 8FA400D0 */ lw $a0, 0xd0($sp)
/* 00AD8C 8000A18C 00AD2821 */ addu $a1, $a1, $t5
/* 00AD90 8000A190 8CA53210 */ lw $a1, %lo(D_80163210)($a1) # 0x3210($a1)
/* 00AD94 8000A194 0C002109 */ jal func_80008424
/* 00AD98 8000A198 8FA60040 */ lw $a2, 0x40($sp)
/* 00AD9C 8000A19C 100003E5 */ b .L8000B134
/* 00ADA0 8000A1A0 8FBF0014 */ lw $ra, 0x14($sp)
.L8000A1A4:
/* 00ADA4 8000A1A4 8042EDF3 */ lb $v0, %lo(gPlayerCount)($v0)
/* 00ADA8 8000A1A8 18400016 */ blez $v0, .L8000A204
/* 00ADAC 8000A1AC 28410003 */ slti $at, $v0, 3
/* 00ADB0 8000A1B0 10200014 */ beqz $at, .L8000A204
/* 00ADB4 8000A1B4 3C198016 */ lui $t9, %hi(D_80163330) # 0x8016
/* 00ADB8 8000A1B8 0328C821 */ addu $t9, $t9, $t0
/* 00ADBC 8000A1BC 97393330 */ lhu $t9, %lo(D_80163330)($t9) # 0x3330($t9)
/* 00ADC0 8000A1C0 3C0B8016 */ lui $t3, %hi(D_8016334C) # 0x8016
/* 00ADC4 8000A1C4 01685821 */ addu $t3, $t3, $t0
/* 00ADC8 8000A1C8 1539000E */ bne $t1, $t9, .L8000A204
/* 00ADCC 8000A1CC 8FAE0038 */ lw $t6, 0x38($sp)
/* 00ADD0 8000A1D0 3C0F8016 */ lui $t7, %hi(gGPCurrentRaceRankByPlayerId)
/* 00ADD4 8000A1D4 01EE7821 */ addu $t7, $t7, $t6
/* 00ADD8 8000A1D8 8DEF43B8 */ lw $t7, %lo(gGPCurrentRaceRankByPlayerId)($t7)
/* 00ADDC 8000A1DC 956B334C */ lhu $t3, %lo(D_8016334C)($t3) # 0x334c($t3)
/* 00ADE0 8000A1E0 3C0C8016 */ lui $t4, %hi(D_80163210) # $t4, 0x8016
/* 00ADE4 8000A1E4 258C3210 */ addiu $t4, %lo(D_80163210) # addiu $t4, $t4, 0x3210
/* 00ADE8 8000A1E8 016F082A */ slt $at, $t3, $t7
/* 00ADEC 8000A1EC 10200005 */ beqz $at, .L8000A204
/* 00ADF0 8000A1F0 3C01800F */ lui $at, %hi(D_800ECFB4) # $at, 0x800f
/* 00ADF4 8000A1F4 C428CFB4 */ lwc1 $f8, %lo(D_800ECFB4)($at)
/* 00ADF8 8000A1F8 01CC4021 */ addu $t0, $t6, $t4
/* 00ADFC 8000A1FC 1000004B */ b .L8000A32C
/* 00AE00 8000A200 E5080000 */ swc1 $f8, ($t0)
.L8000A204:
/* 00AE04 8000A204 3C188016 */ lui $t8, %hi(D_80162FD0) # $t8, 0x8016
/* 00AE08 8000A208 87182FD0 */ lh $t8, %lo(D_80162FD0)($t8)
/* 00AE0C 8000A20C 1538001C */ bne $t1, $t8, .L8000A280
/* 00AE10 8000A210 3C0A800E */ lui $t2, %hi(gCurrentCourseId)
/* 00AE14 8000A214 854AC5A0 */ lh $t2, %lo(gCurrentCourseId)($t2)
/* 00AE18 8000A218 3C19800E */ lui $t9, %hi(gCCSelection)
/* 00AE1C 8000A21C 8F39C548 */ lw $t9, %lo(gCCSelection)($t9)
/* 00AE20 8000A220 8FAC00D0 */ lw $t4, 0xd0($sp)
/* 00AE24 8000A224 000A6900 */ sll $t5, $t2, 4
/* 00AE28 8000A228 3C0A8016 */ lui $t2, %hi(D_801634F8) # $t2, 0x8016
/* 00AE2C 8000A22C 254A34F8 */ addiu $t2, %lo(D_801634F8) # addiu $t2, $t2, 0x34f8
/* 00AE30 8000A230 3C0E0D01 */ lui $t6, %hi(D_0D0096B8) # $t6, 0xd01
/* 00AE34 8000A234 00195880 */ sll $t3, $t9, 2
/* 00AE38 8000A238 000CC100 */ sll $t8, $t4, 4
/* 00AE3C 8000A23C 030A1821 */ addu $v1, $t8, $t2
/* 00AE40 8000A240 01AB7821 */ addu $t7, $t5, $t3
/* 00AE44 8000A244 25CE96B8 */ addiu $t6, %lo(D_0D0096B8) # addiu $t6, $t6, -0x6948
/* 00AE48 8000A248 01EE2021 */ addu $a0, $t7, $t6
/* 00AE4C 8000A24C 0C026455 */ jal segmented_to_virtual_dupe_2
/* 00AE50 8000A250 AFA30030 */ sw $v1, 0x30($sp)
/* 00AE54 8000A254 8FB90038 */ lw $t9, 0x38($sp)
/* 00AE58 8000A258 3C0D8016 */ lui $t5, %hi(D_80163210) # $t5, 0x8016
/* 00AE5C 8000A25C 3C01BF00 */ li $at, 0xBF000000 # -0.500000
/* 00AE60 8000A260 8FA30030 */ lw $v1, 0x30($sp)
/* 00AE64 8000A264 C44A0000 */ lwc1 $f10, ($v0)
/* 00AE68 8000A268 44818000 */ mtc1 $at, $f16
/* 00AE6C 8000A26C 25AD3210 */ addiu $t5, %lo(D_80163210) # addiu $t5, $t5, 0x3210
/* 00AE70 8000A270 032D4021 */ addu $t0, $t9, $t5
/* 00AE74 8000A274 E50A0000 */ swc1 $f10, ($t0)
/* 00AE78 8000A278 1000002C */ b .L8000A32C
/* 00AE7C 8000A27C E4700004 */ swc1 $f16, 4($v1)
.L8000A280:
/* 00AE80 8000A280 3C0F8016 */ lui $t7, %hi(D_80162FCE) # $t7, 0x8016
/* 00AE84 8000A284 85EF2FCE */ lh $t7, %lo(D_80162FCE)($t7)
/* 00AE88 8000A288 3C0B8016 */ lui $t3, %hi(D_801645E0) # $t3, 0x8016
/* 00AE8C 8000A28C 8D6B45E0 */ lw $t3, %lo(D_801645E0)($t3)
/* 00AE90 8000A290 000F7040 */ sll $t6, $t7, 1
/* 00AE94 8000A294 016E6021 */ addu $t4, $t3, $t6
/* 00AE98 8000A298 85980000 */ lh $t8, ($t4)
/* 00AE9C 8000A29C 1B000012 */ blez $t8, .L8000A2E8
/* 00AEA0 8000A2A0 3C0A800E */ lui $t2, %hi(gCurrentCourseId)
/* 00AEA4 8000A2A4 3C0D800E */ lui $t5, %hi(gCCSelection)
/* 00AEA8 8000A2A8 8DADC548 */ lw $t5, %lo(gCCSelection)($t5)
/* 00AEAC 8000A2AC 854AC5A0 */ lh $t2, %lo(gCurrentCourseId)($t2)
/* 00AEB0 8000A2B0 3C0E0D01 */ lui $t6, %hi(D_0D009418) # $t6, 0xd01
/* 00AEB4 8000A2B4 000D7880 */ sll $t7, $t5, 2
/* 00AEB8 8000A2B8 000AC900 */ sll $t9, $t2, 4
/* 00AEBC 8000A2BC 032F5821 */ addu $t3, $t9, $t7
/* 00AEC0 8000A2C0 25CE9418 */ addiu $t6, %lo(D_0D009418) # addiu $t6, $t6, -0x6be8
/* 00AEC4 8000A2C4 0C026455 */ jal segmented_to_virtual_dupe_2
/* 00AEC8 8000A2C8 016E2021 */ addu $a0, $t3, $t6
/* 00AECC 8000A2CC 8FAC0038 */ lw $t4, 0x38($sp)
/* 00AED0 8000A2D0 3C188016 */ lui $t8, %hi(D_80163210) # $t8, 0x8016
/* 00AED4 8000A2D4 C4520000 */ lwc1 $f18, ($v0)
/* 00AED8 8000A2D8 27183210 */ addiu $t8, %lo(D_80163210) # addiu $t8, $t8, 0x3210
/* 00AEDC 8000A2DC 01984021 */ addu $t0, $t4, $t8
/* 00AEE0 8000A2E0 10000012 */ b .L8000A32C
/* 00AEE4 8000A2E4 E5120000 */ swc1 $f18, ($t0)
.L8000A2E8:
/* 00AEE8 8000A2E8 3C0A800E */ lui $t2, %hi(gCurrentCourseId)
/* 00AEEC 8000A2EC 3C19800E */ lui $t9, %hi(gCCSelection)
/* 00AEF0 8000A2F0 8F39C548 */ lw $t9, %lo(gCCSelection)($t9)
/* 00AEF4 8000A2F4 854AC5A0 */ lh $t2, %lo(gCurrentCourseId)($t2)
/* 00AEF8 8000A2F8 3C0E0D01 */ lui $t6, %hi(D_0D009568) # $t6, 0xd01
/* 00AEFC 8000A2FC 00197880 */ sll $t7, $t9, 2
/* 00AF00 8000A300 000A6900 */ sll $t5, $t2, 4
/* 00AF04 8000A304 01AF5821 */ addu $t3, $t5, $t7
/* 00AF08 8000A308 25CE9568 */ addiu $t6, %lo(D_0D009568) # addiu $t6, $t6, -0x6a98
/* 00AF0C 8000A30C 0C026455 */ jal segmented_to_virtual_dupe_2
/* 00AF10 8000A310 016E2021 */ addu $a0, $t3, $t6
/* 00AF14 8000A314 8FAC0038 */ lw $t4, 0x38($sp)
/* 00AF18 8000A318 C4440000 */ lwc1 $f4, ($v0)
/* 00AF1C 8000A31C 3C188016 */ lui $t8, %hi(D_80163210) # $t8, 0x8016
/* 00AF20 8000A320 27183210 */ addiu $t8, %lo(D_80163210) # addiu $t8, $t8, 0x3210
/* 00AF24 8000A324 01984021 */ addu $t0, $t4, $t8
/* 00AF28 8000A328 E5040000 */ swc1 $f4, ($t0)
.L8000A32C:
/* 00AF2C 8000A32C 8FA400D0 */ lw $a0, 0xd0($sp)
/* 00AF30 8000A330 0C004C77 */ jal func_800131DC
/* 00AF34 8000A334 AFA8003C */ sw $t0, 0x3c($sp)
/* 00AF38 8000A338 0C0034EE */ jal func_8000D3B8
/* 00AF3C 8000A33C 8FA400D0 */ lw $a0, 0xd0($sp)
/* 00AF40 8000A340 3C058016 */ lui $a1, %hi(D_801630E0) # $a1, 0x8016
/* 00AF44 8000A344 94A530E0 */ lhu $a1, %lo(D_801630E0)($a1)
/* 00AF48 8000A348 0C00350E */ jal func_8000D438
/* 00AF4C 8000A34C 8FA400D0 */ lw $a0, 0xd0($sp)
/* 00AF50 8000A350 8FA60040 */ lw $a2, 0x40($sp)
/* 00AF54 8000A354 3C078016 */ lui $a3, %hi(D_80162FA0) # $a3, 0x8016
/* 00AF58 8000A358 24E72FA0 */ addiu $a3, %lo(D_80162FA0) # addiu $a3, $a3, 0x2fa0
/* 00AF5C 8000A35C 8CC200BC */ lw $v0, 0xbc($a2)
/* 00AF60 8000A360 C4E80000 */ lwc1 $f8, ($a3)
/* 00AF64 8000A364 C4EA0008 */ lwc1 $f10, 8($a3)
/* 00AF68 8000A368 C4C60014 */ lwc1 $f6, 0x14($a2)
/* 00AF6C 8000A36C C4D0001C */ lwc1 $f16, 0x1c($a2)
/* 00AF70 8000A370 304A0080 */ andi $t2, $v0, 0x80
/* 00AF74 8000A374 46064001 */ sub.s $f0, $f8, $f6
/* 00AF78 8000A378 8FA8003C */ lw $t0, 0x3c($sp)
/* 00AF7C 8000A37C 15400061 */ bnez $t2, .L8000A504
/* 00AF80 8000A380 46105081 */ sub.s $f2, $f10, $f16
/* 00AF84 8000A384 30590040 */ andi $t9, $v0, 0x40
/* 00AF88 8000A388 1720005E */ bnez $t9, .L8000A504
/* 00AF8C 8000A38C 304D0800 */ andi $t5, $v0, 0x800
/* 00AF90 8000A390 55A0005D */ bnel $t5, $zero, .L8000A508
/* 00AF94 8000A394 00C02025 */ move $a0, $a2
/* 00AF98 8000A398 46000102 */ mul.s $f4, $f0, $f0
/* 00AF9C 8000A39C 3C0145C8 */ li $at, 0x45C80000 # 6400.000000
/* 00AFA0 8000A3A0 44819000 */ mtc1 $at, $f18
/* 00AFA4 8000A3A4 46021182 */ mul.s $f6, $f2, $f2
/* 00AFA8 8000A3A8 3C0B8016 */ lui $t3, %hi(D_801630E0) # 0x8016
/* 00AFAC 8000A3AC 3C0C8016 */ lui $t4, %hi(D_80164430) # $t4, 0x8016
/* 00AFB0 8000A3B0 3C198016 */ lui $t9, %hi(D_80163448) # 0x8016
/* 00AFB4 8000A3B4 3C0F8016 */ lui $t7, %hi(D_80164590) # 0x8016
/* 00AFB8 8000A3B8 46062200 */ add.s $f8, $f4, $f6
/* 00AFBC 8000A3BC 4608903C */ c.lt.s $f18, $f8
/* 00AFC0 8000A3C0 00000000 */ nop
/* 00AFC4 8000A3C4 45000039 */ bc1f .L8000A4AC
/* 00AFC8 8000A3C8 00000000 */ nop
/* 00AFCC 8000A3CC 3C0F8016 */ lui $t7, %hi(D_80163448) # $t7, 0x8016
/* 00AFD0 8000A3D0 8DEF3448 */ lw $t7, %lo(D_80163448)($t7)
/* 00AFD4 8000A3D4 8FA400D0 */ lw $a0, 0xd0($sp)
/* 00AFD8 8000A3D8 55E0002B */ bnel $t7, $zero, .L8000A488
/* 00AFDC 8000A3DC 8FA60040 */ lw $a2, 0x40($sp)
/* 00AFE0 8000A3E0 0C002C50 */ jal func_8000B140
/* 00AFE4 8000A3E4 AFA8003C */ sw $t0, 0x3c($sp)
/* 00AFE8 8000A3E8 8FAB0034 */ lw $t3, 0x34($sp)
/* 00AFEC 8000A3EC 3C0E8016 */ lui $t6, %hi(D_80162FF8) # 0x8016
/* 00AFF0 8000A3F0 3C078016 */ lui $a3, %hi(D_80162FA0) # $a3, 0x8016
/* 00AFF4 8000A3F4 01CB7021 */ addu $t6, $t6, $t3
/* 00AFF8 8000A3F8 85CE2FF8 */ lh $t6, %lo(D_80162FF8)($t6) # 0x2ff8($t6)
/* 00AFFC 8000A3FC 24E72FA0 */ addiu $a3, %lo(D_80162FA0) # addiu $a3, $a3, 0x2fa0
/* 00B000 8000A400 8FA8003C */ lw $t0, 0x3c($sp)
/* 00B004 8000A404 19C0001F */ blez $t6, .L8000A484
/* 00B008 8000A408 3C048016 */ lui $a0, %hi(D_801630E0) # $a0, 0x8016
/* 00B00C 8000A40C 948430E0 */ lhu $a0, %lo(D_801630E0)($a0)
/* 00B010 8000A410 3C188016 */ lui $t8, %hi(D_80164430) # $t8, 0x8016
/* 00B014 8000A414 97184430 */ lhu $t8, %lo(D_80164430)($t8)
/* 00B018 8000A418 24840005 */ addiu $a0, $a0, 5
/* 00B01C 8000A41C 308CFFFF */ andi $t4, $a0, 0xffff
/* 00B020 8000A420 0198001A */ div $zero, $t4, $t8
/* 00B024 8000A424 01802025 */ move $a0, $t4
/* 00B028 8000A428 8FB90038 */ lw $t9, 0x38($sp)
/* 00B02C 8000A42C 17000002 */ bnez $t8, .L8000A438
/* 00B030 8000A430 00000000 */ nop
/* 00B034 8000A434 0007000D */ break 7
.L8000A438:
/* 00B038 8000A438 2401FFFF */ li $at, -1
/* 00B03C 8000A43C 17010004 */ bne $t8, $at, .L8000A450
/* 00B040 8000A440 3C018000 */ lui $at, 0x8000
/* 00B044 8000A444 14810002 */ bne $a0, $at, .L8000A450
/* 00B048 8000A448 00000000 */ nop
/* 00B04C 8000A44C 0006000D */ break 6
.L8000A450:
/* 00B050 8000A450 00002010 */ mfhi $a0
/* 00B054 8000A454 3C058016 */ lui $a1, %hi(D_80163090) # 0x8016
/* 00B058 8000A458 308AFFFF */ andi $t2, $a0, 0xffff
/* 00B05C 8000A45C 3C068016 */ lui $a2, %hi(D_80163448 + 2) # $a2, 0x8016
/* 00B060 8000A460 00B92821 */ addu $a1, $a1, $t9
/* 00B064 8000A464 01402025 */ move $a0, $t2
/* 00B068 8000A468 8CA53090 */ lw $a1, %lo(D_80163090)($a1) # 0x3090($a1)
/* 00B06C 8000A46C 84C6344A */ lh $a2, %lo(D_80163448 + 2)($a2)
/* 00B070 8000A470 0C002EF6 */ jal func_8000BBD8
/* 00B074 8000A474 AFA8003C */ sw $t0, 0x3c($sp)
/* 00B078 8000A478 3C078016 */ lui $a3, %hi(D_80162FA0) # $a3, 0x8016
/* 00B07C 8000A47C 24E72FA0 */ addiu $a3, %lo(D_80162FA0) # addiu $a3, $a3, 0x2fa0
/* 00B080 8000A480 8FA8003C */ lw $t0, 0x3c($sp)
.L8000A484:
/* 00B084 8000A484 8FA60040 */ lw $a2, 0x40($sp)
.L8000A488:
/* 00B088 8000A488 00E02825 */ move $a1, $a3
/* 00B08C 8000A48C AFA8003C */ sw $t0, 0x3c($sp)
/* 00B090 8000A490 0C0AD489 */ jal get_angle_between_two_vectors
/* 00B094 8000A494 24C40014 */ addiu $a0, $a2, 0x14
/* 00B098 8000A498 8FA60040 */ lw $a2, 0x40($sp)
/* 00B09C 8000A49C 8FA8003C */ lw $t0, 0x3c($sp)
/* 00B0A0 8000A4A0 00026823 */ negu $t5, $v0
/* 00B0A4 8000A4A4 10000017 */ b .L8000A504
/* 00B0A8 8000A4A8 A4CD002E */ sh $t5, 0x2e($a2)
.L8000A4AC:
/* 00B0AC 8000A4AC 956B30E0 */ lhu $t3, %lo(D_801630E0)($t3) # 0x30e0($t3)
/* 00B0B0 8000A4B0 958C4430 */ lhu $t4, %lo(D_80164430)($t4)
/* 00B0B4 8000A4B4 8F393448 */ lw $t9, %lo(D_80163448)($t9) # 0x3448($t9)
/* 00B0B8 8000A4B8 256E0004 */ addiu $t6, $t3, 4
/* 00B0BC 8000A4BC 01CC001A */ div $zero, $t6, $t4
/* 00B0C0 8000A4C0 00196880 */ sll $t5, $t9, 2
/* 00B0C4 8000A4C4 01ED7821 */ addu $t7, $t7, $t5
/* 00B0C8 8000A4C8 8DEF4590 */ lw $t7, %lo(D_80164590)($t7) # 0x4590($t7)
/* 00B0CC 8000A4CC 0000C010 */ mfhi $t8
/* 00B0D0 8000A4D0 00185040 */ sll $t2, $t8, 1
/* 00B0D4 8000A4D4 15800002 */ bnez $t4, .L8000A4E0
/* 00B0D8 8000A4D8 00000000 */ nop
/* 00B0DC 8000A4DC 0007000D */ break 7
.L8000A4E0:
/* 00B0E0 8000A4E0 2401FFFF */ li $at, -1
/* 00B0E4 8000A4E4 15810004 */ bne $t4, $at, .L8000A4F8
/* 00B0E8 8000A4E8 3C018000 */ lui $at, 0x8000
/* 00B0EC 8000A4EC 15C10002 */ bne $t6, $at, .L8000A4F8
/* 00B0F0 8000A4F0 00000000 */ nop
/* 00B0F4 8000A4F4 0006000D */ break 6
.L8000A4F8:
/* 00B0F8 8000A4F8 01EA5821 */ addu $t3, $t7, $t2
/* 00B0FC 8000A4FC 856E0000 */ lh $t6, ($t3)
/* 00B100 8000A500 A4CE002E */ sh $t6, 0x2e($a2)
.L8000A504:
/* 00B104 8000A504 00C02025 */ move $a0, $a2
.L8000A508:
/* 00B108 8000A508 00002825 */ move $a1, $zero
/* 00B10C 8000A50C 0C00DA03 */ jal func_8003680C
/* 00B110 8000A510 AFA8003C */ sw $t0, 0x3c($sp)
/* 00B114 8000A514 8FA8003C */ lw $t0, 0x3c($sp)
/* 00B118 8000A518 8FA400D0 */ lw $a0, 0xd0($sp)
/* 00B11C 8000A51C 8FA60040 */ lw $a2, 0x40($sp)
/* 00B120 8000A520 0C002109 */ jal func_80008424
/* 00B124 8000A524 8D050000 */ lw $a1, ($t0)
/* 00B128 8000A528 10000302 */ b .L8000B134
/* 00B12C 8000A52C 8FBF0014 */ lw $ra, 0x14($sp)
.L8000A530:
/* 00B130 8000A530 258C30E8 */ addiu $t4, %lo(D_801630E8) # addiu $t4, $t4, 0x30e8
/* 00B134 8000A534 010CC021 */ addu $t8, $t0, $t4
/* 00B138 8000A538 AFB8002C */ sw $t8, 0x2c($sp)
/* 00B13C 8000A53C 87020000 */ lh $v0, ($t8)
/* 00B140 8000A540 2401FFFF */ li $at, -1
/* 00B144 8000A544 8FAD0040 */ lw $t5, 0x40($sp)
/* 00B148 8000A548 51220004 */ beql $t1, $v0, .L8000A55C
/* 00B14C 8000A54C 8DAF00BC */ lw $t7, 0xbc($t5)
/* 00B150 8000A550 14410006 */ bne $v0, $at, .L8000A56C
/* 00B154 8000A554 00000000 */ nop
/* 00B158 8000A558 8DAF00BC */ lw $t7, 0xbc($t5)
.L8000A55C:
/* 00B15C 8000A55C 35EA0010 */ ori $t2, $t7, 0x10
/* 00B160 8000A560 ADAA00BC */ sw $t2, 0xbc($t5)
/* 00B164 8000A564 8FAB002C */ lw $t3, 0x2c($sp)
/* 00B168 8000A568 85620000 */ lh $v0, ($t3)
.L8000A56C:
/* 00B16C 8000A56C 1040008A */ beqz $v0, .L8000A798
/* 00B170 8000A570 8FAE0040 */ lw $t6, 0x40($sp)
/* 00B174 8000A574 25C40020 */ addiu $a0, $t6, 0x20
/* 00B178 8000A578 0C0AD489 */ jal get_angle_between_two_vectors
/* 00B17C 8000A57C 25C50014 */ addiu $a1, $t6, 0x14
/* 00B180 8000A580 8FAC0034 */ lw $t4, 0x34($sp)
/* 00B184 8000A584 3C188016 */ lui $t8, %hi(D_80163300) # $t8, 0x8016
/* 00B188 8000A588 27183300 */ addiu $t8, %lo(D_80163300) # addiu $t8, $t8, 0x3300
/* 00B18C 8000A58C 0002C823 */ negu $t9, $v0
/* 00B190 8000A590 01981821 */ addu $v1, $t4, $t8
/* 00B194 8000A594 A4790000 */ sh $t9, ($v1)
/* 00B198 8000A598 3C0F8016 */ lui $t7, %hi(D_80162FCE) # $t7, 0x8016
/* 00B19C 8000A59C 85EF2FCE */ lh $t7, %lo(D_80162FCE)($t7)
/* 00B1A0 8000A5A0 3C0D8016 */ lui $t5, %hi(D_80164430) # $t5, 0x8016
/* 00B1A4 8000A5A4 95AD4430 */ lhu $t5, %lo(D_80164430)($t5)
/* 00B1A8 8000A5A8 25EA0002 */ addiu $t2, $t7, 2
/* 00B1AC 8000A5AC 3C0C8016 */ lui $t4, %hi(D_801631DC) # $t4, 0x8016
/* 00B1B0 8000A5B0 014D001A */ div $zero, $t2, $t5
/* 00B1B4 8000A5B4 8D8C31DC */ lw $t4, %lo(D_801631DC)($t4)
/* 00B1B8 8000A5B8 00005810 */ mfhi $t3
/* 00B1BC 8000A5BC 000B7040 */ sll $t6, $t3, 1
/* 00B1C0 8000A5C0 018EC021 */ addu $t8, $t4, $t6
/* 00B1C4 8000A5C4 87190000 */ lh $t9, ($t8)
/* 00B1C8 8000A5C8 24060168 */ li $a2, 360
/* 00B1CC 8000A5CC 3407FFFF */ li $a3, 65535
/* 00B1D0 8000A5D0 03260019 */ multu $t9, $a2
/* 00B1D4 8000A5D4 846B0000 */ lh $t3, ($v1)
/* 00B1D8 8000A5D8 15A00002 */ bnez $t5, .L8000A5E4
/* 00B1DC 8000A5DC 00000000 */ nop
/* 00B1E0 8000A5E0 0007000D */ break 7
.L8000A5E4:
/* 00B1E4 8000A5E4 2401FFFF */ li $at, -1
/* 00B1E8 8000A5E8 15A10004 */ bne $t5, $at, .L8000A5FC
/* 00B1EC 8000A5EC 3C018000 */ lui $at, 0x8000
/* 00B1F0 8000A5F0 15410002 */ bne $t2, $at, .L8000A5FC
/* 00B1F4 8000A5F4 00000000 */ nop
/* 00B1F8 8000A5F8 0006000D */ break 6
.L8000A5FC:
/* 00B1FC 8000A5FC 00007812 */ mflo $t7
/* 00B200 8000A600 00000000 */ nop
/* 00B204 8000A604 00000000 */ nop
/* 00B208 8000A608 01E7001A */ div $zero, $t7, $a3
/* 00B20C 8000A60C 00002012 */ mflo $a0
/* 00B210 8000A610 00045400 */ sll $t2, $a0, 0x10
/* 00B214 8000A614 14E00002 */ bnez $a3, .L8000A620
/* 00B218 8000A618 00000000 */ nop
/* 00B21C 8000A61C 0007000D */ break 7
.L8000A620:
/* 00B220 8000A620 2401FFFF */ li $at, -1
/* 00B224 8000A624 14E10004 */ bne $a3, $at, .L8000A638
/* 00B228 8000A628 3C018000 */ lui $at, 0x8000
/* 00B22C 8000A62C 15E10002 */ bne $t7, $at, .L8000A638
/* 00B230 8000A630 00000000 */ nop
/* 00B234 8000A634 0006000D */ break 6
.L8000A638:
/* 00B238 8000A638 01660019 */ multu $t3, $a2
/* 00B23C 8000A63C 000A6C03 */ sra $t5, $t2, 0x10
/* 00B240 8000A640 01A02025 */ move $a0, $t5
/* 00B244 8000A644 00006012 */ mflo $t4
/* 00B248 8000A648 00000000 */ nop
/* 00B24C 8000A64C 00000000 */ nop
/* 00B250 8000A650 0187001A */ div $zero, $t4, $a3
/* 00B254 8000A654 14E00002 */ bnez $a3, .L8000A660
/* 00B258 8000A658 00000000 */ nop
/* 00B25C 8000A65C 0007000D */ break 7
.L8000A660:
/* 00B260 8000A660 2401FFFF */ li $at, -1
/* 00B264 8000A664 14E10004 */ bne $a3, $at, .L8000A678
/* 00B268 8000A668 3C018000 */ lui $at, 0x8000
/* 00B26C 8000A66C 15810002 */ bne $t4, $at, .L8000A678
/* 00B270 8000A670 00000000 */ nop
/* 00B274 8000A674 0006000D */ break 6
.L8000A678:
/* 00B278 8000A678 00002812 */ mflo $a1
/* 00B27C 8000A67C 00057400 */ sll $t6, $a1, 0x10
/* 00B280 8000A680 000EC403 */ sra $t8, $t6, 0x10
/* 00B284 8000A684 2881FF4C */ slti $at, $a0, -0xb4
/* 00B288 8000A688 10200004 */ beqz $at, .L8000A69C
/* 00B28C 8000A68C 03002825 */ move $a1, $t8
/* 00B290 8000A690 24840168 */ addiu $a0, $a0, 0x168
/* 00B294 8000A694 0004CC00 */ sll $t9, $a0, 0x10
/* 00B298 8000A698 00192403 */ sra $a0, $t9, 0x10
.L8000A69C:
/* 00B29C 8000A69C 288100B5 */ slti $at, $a0, 0xb5
/* 00B2A0 8000A6A0 54200005 */ bnel $at, $zero, .L8000A6B8
/* 00B2A4 8000A6A4 28A1FF4C */ slti $at, $a1, -0xb4
/* 00B2A8 8000A6A8 2484FE98 */ addiu $a0, $a0, -0x168
/* 00B2AC 8000A6AC 00045400 */ sll $t2, $a0, 0x10
/* 00B2B0 8000A6B0 000A2403 */ sra $a0, $t2, 0x10
/* 00B2B4 8000A6B4 28A1FF4C */ slti $at, $a1, -0xb4
.L8000A6B8:
/* 00B2B8 8000A6B8 50200005 */ beql $at, $zero, .L8000A6D0
/* 00B2BC 8000A6BC 28A100B5 */ slti $at, $a1, 0xb5
/* 00B2C0 8000A6C0 24A50168 */ addiu $a1, $a1, 0x168
/* 00B2C4 8000A6C4 00055C00 */ sll $t3, $a1, 0x10
/* 00B2C8 8000A6C8 000B2C03 */ sra $a1, $t3, 0x10
/* 00B2CC 8000A6CC 28A100B5 */ slti $at, $a1, 0xb5
.L8000A6D0:
/* 00B2D0 8000A6D0 54200005 */ bnel $at, $zero, .L8000A6E8
/* 00B2D4 8000A6D4 00851023 */ subu $v0, $a0, $a1
/* 00B2D8 8000A6D8 24A5FE98 */ addiu $a1, $a1, -0x168
/* 00B2DC 8000A6DC 00057400 */ sll $t6, $a1, 0x10
/* 00B2E0 8000A6E0 000E2C03 */ sra $a1, $t6, 0x10
/* 00B2E4 8000A6E4 00851023 */ subu $v0, $a0, $a1
.L8000A6E8:
/* 00B2E8 8000A6E8 00023400 */ sll $a2, $v0, 0x10
/* 00B2EC 8000A6EC 00021C00 */ sll $v1, $v0, 0x10
/* 00B2F0 8000A6F0 00067C03 */ sra $t7, $a2, 0x10
/* 00B2F4 8000A6F4 0003CC03 */ sra $t9, $v1, 0x10
/* 00B2F8 8000A6F8 29E1FF4C */ slti $at, $t7, -0xb4
/* 00B2FC 8000A6FC 10200004 */ beqz $at, .L8000A710
/* 00B300 8000A700 03201825 */ move $v1, $t9
/* 00B304 8000A704 25E30168 */ addiu $v1, $t7, 0x168
/* 00B308 8000A708 00035400 */ sll $t2, $v1, 0x10
/* 00B30C 8000A70C 000A1C03 */ sra $v1, $t2, 0x10
.L8000A710:
/* 00B310 8000A710 286100B5 */ slti $at, $v1, 0xb5
/* 00B314 8000A714 14200004 */ bnez $at, .L8000A728
/* 00B318 8000A718 8FA4002C */ lw $a0, 0x2c($sp)
/* 00B31C 8000A71C 2463FE98 */ addiu $v1, $v1, -0x168
/* 00B320 8000A720 00035C00 */ sll $t3, $v1, 0x10
/* 00B324 8000A724 000B1C03 */ sra $v1, $t3, 0x10
.L8000A728:
/* 00B328 8000A728 84820000 */ lh $v0, ($a0)
/* 00B32C 8000A72C 2401FFFF */ li $at, -1
/* 00B330 8000A730 10410005 */ beq $v0, $at, .L8000A748
/* 00B334 8000A734 24010001 */ li $at, 1
/* 00B338 8000A738 5041000F */ beql $v0, $at, .L8000A778
/* 00B33C 8000A73C 2861FFFB */ slti $at, $v1, -5
/* 00B340 8000A740 10000015 */ b .L8000A798
/* 00B344 8000A744 00000000 */ nop
.L8000A748:
/* 00B348 8000A748 28610006 */ slti $at, $v1, 6
/* 00B34C 8000A74C 14200007 */ bnez $at, .L8000A76C
/* 00B350 8000A750 00000000 */ nop
/* 00B354 8000A754 8FAE0040 */ lw $t6, 0x40($sp)
/* 00B358 8000A758 A4800000 */ sh $zero, ($a0)
/* 00B35C 8000A75C 2401FFEF */ li $at, -17
/* 00B360 8000A760 8DD800BC */ lw $t8, 0xbc($t6)
/* 00B364 8000A764 0301C824 */ and $t9, $t8, $at
/* 00B368 8000A768 ADD900BC */ sw $t9, 0xbc($t6)
.L8000A76C:
/* 00B36C 8000A76C 1000000A */ b .L8000A798
/* 00B370 8000A770 00000000 */ nop
/* 00B374 8000A774 2861FFFB */ slti $at, $v1, -5
.L8000A778:
/* 00B378 8000A778 10200007 */ beqz $at, .L8000A798
/* 00B37C 8000A77C 00000000 */ nop
/* 00B380 8000A780 8FAF0040 */ lw $t7, 0x40($sp)
/* 00B384 8000A784 A4800000 */ sh $zero, ($a0)
/* 00B388 8000A788 2401FFEF */ li $at, -17
/* 00B38C 8000A78C 8DEA00BC */ lw $t2, 0xbc($t7)
/* 00B390 8000A790 01416824 */ and $t5, $t2, $at
/* 00B394 8000A794 ADED00BC */ sw $t5, 0xbc($t7)
.L8000A798:
/* 00B398 8000A798 3C0B8016 */ lui $t3, %hi(D_80163378) # $t3, 0x8016
/* 00B39C 8000A79C 8D6B3378 */ lw $t3, %lo(D_80163378)($t3)
/* 00B3A0 8000A7A0 8FB80030 */ lw $t8, 0x30($sp)
/* 00B3A4 8000A7A4 8FA400D0 */ lw $a0, 0xd0($sp)
/* 00B3A8 8000A7A8 316C0001 */ andi $t4, $t3, 1
/* 00B3AC 8000A7AC 11980010 */ beq $t4, $t8, .L8000A7F0
/* 00B3B0 8000A7B0 8FAA0040 */ lw $t2, 0x40($sp)
/* 00B3B4 8000A7B4 8FB90034 */ lw $t9, 0x34($sp)
/* 00B3B8 8000A7B8 3C058016 */ lui $a1, %hi(D_80163050) # 0x8016
/* 00B3BC 8000A7BC 8FA40040 */ lw $a0, 0x40($sp)
/* 00B3C0 8000A7C0 00B92821 */ addu $a1, $a1, $t9
/* 00B3C4 8000A7C4 0C00DA03 */ jal func_8003680C
/* 00B3C8 8000A7C8 84A53050 */ lh $a1, %lo(D_80163050)($a1) # 0x3050($a1)
/* 00B3CC 8000A7CC 8FAE0038 */ lw $t6, 0x38($sp)
/* 00B3D0 8000A7D0 3C058016 */ lui $a1, %hi(D_80163210) # 0x8016
/* 00B3D4 8000A7D4 8FA400D0 */ lw $a0, 0xd0($sp)
/* 00B3D8 8000A7D8 00AE2821 */ addu $a1, $a1, $t6
/* 00B3DC 8000A7DC 8CA53210 */ lw $a1, %lo(D_80163210)($a1) # 0x3210($a1)
/* 00B3E0 8000A7E0 0C002109 */ jal func_80008424
/* 00B3E4 8000A7E4 8FA60040 */ lw $a2, 0x40($sp)
/* 00B3E8 8000A7E8 10000252 */ b .L8000B134
/* 00B3EC 8000A7EC 8FBF0014 */ lw $ra, 0x14($sp)
.L8000A7F0:
/* 00B3F0 8000A7F0 3C058016 */ lui $a1, %hi(D_80162FCE) # $a1, 0x8016
/* 00B3F4 8000A7F4 254D0014 */ addiu $t5, $t2, 0x14
/* 00B3F8 8000A7F8 AFAD001C */ sw $t5, 0x1c($sp)
/* 00B3FC 8000A7FC 0C002DF9 */ jal func_8000B7E4
/* 00B400 8000A800 94A52FCE */ lhu $a1, %lo(D_80162FCE)($a1)
/* 00B404 8000A804 8FAF0038 */ lw $t7, 0x38($sp)
/* 00B408 8000A808 3C0B8016 */ lui $t3, %hi(D_801630B8) # $t3, 0x8016
/* 00B40C 8000A80C 256B30B8 */ addiu $t3, %lo(D_801630B8) # addiu $t3, $t3, 0x30b8
/* 00B410 8000A810 01EB1821 */ addu $v1, $t7, $t3
/* 00B414 8000A814 AC620000 */ sw $v0, ($v1)
/* 00B418 8000A818 3C058016 */ lui $a1, %hi(D_80162FCE) # $a1, 0x8016
/* 00B41C 8000A81C 94A52FCE */ lhu $a1, %lo(D_80162FCE)($a1)
/* 00B420 8000A820 AFA30028 */ sw $v1, 0x28($sp)
/* 00B424 8000A824 0C00350E */ jal func_8000D438
/* 00B428 8000A828 8FA400D0 */ lw $a0, 0xd0($sp)
/* 00B42C 8000A82C 3C02800E */ lui $v0, %hi(gCurrentCourseId)
/* 00B430 8000A830 8442C5A0 */ lh $v0, %lo(gCurrentCourseId)($v0)
/* 00B434 8000A834 24010014 */ li $at, 20
/* 00B438 8000A838 8FA90038 */ lw $t1, 0x38($sp)
/* 00B43C 8000A83C 10410099 */ beq $v0, $at, .L8000AAA4
/* 00B440 8000A840 00000000 */ nop
/* 00B444 8000A844 3C058016 */ lui $a1, %hi(D_80164450) # 0x8016
/* 00B448 8000A848 00A92821 */ addu $a1, $a1, $t1
/* 00B44C 8000A84C 8CA54450 */ lw $a1, %lo(D_80164450)($a1) # 0x4450($a1)
/* 00B450 8000A850 3C198016 */ lui $t9, %hi(D_801634F8) # $t9, 0x8016
/* 00B454 8000A854 273934F8 */ addiu $t9, %lo(D_801634F8) # addiu $t9, $t9, 0x34f8
/* 00B458 8000A858 28A1000B */ slti $at, $a1, 0xb
/* 00B45C 8000A85C 10200045 */ beqz $at, .L8000A974
/* 00B460 8000A860 00000000 */ nop
/* 00B464 8000A864 8FAC00D0 */ lw $t4, 0xd0($sp)
/* 00B468 8000A868 3C048016 */ lui $a0, %hi(D_801630E0) # $a0, 0x8016
/* 00B46C 8000A86C 948430E0 */ lhu $a0, %lo(D_801630E0)($a0)
/* 00B470 8000A870 000CC100 */ sll $t8, $t4, 4
/* 00B474 8000A874 18A0001F */ blez $a1, .L8000A8F4
/* 00B478 8000A878 03191821 */ addu $v1, $t8, $t9
/* 00B47C 8000A87C 2401000A */ li $at, 10
/* 00B480 8000A880 5441001D */ bnel $v0, $at, .L8000A8F8
/* 00B484 8000A884 24840008 */ addiu $a0, $a0, 8
/* 00B488 8000A888 24840014 */ addiu $a0, $a0, 0x14
/* 00B48C 8000A88C 308EFFFF */ andi $t6, $a0, 0xffff
/* 00B490 8000A890 3C0A8016 */ lui $t2, %hi(D_80164430) # $t2, 0x8016
/* 00B494 8000A894 954A4430 */ lhu $t2, %lo(D_80164430)($t2)
/* 00B498 8000A898 01C02025 */ move $a0, $t6
/* 00B49C 8000A89C 24050000 */ li $a1, 0
/* 00B4A0 8000A8A0 01CA001A */ div $zero, $t6, $t2
/* 00B4A4 8000A8A4 15400002 */ bnez $t2, .L8000A8B0
/* 00B4A8 8000A8A8 00000000 */ nop
/* 00B4AC 8000A8AC 0007000D */ break 7
.L8000A8B0:
/* 00B4B0 8000A8B0 2401FFFF */ li $at, -1
/* 00B4B4 8000A8B4 15410004 */ bne $t2, $at, .L8000A8C8
/* 00B4B8 8000A8B8 3C018000 */ lui $at, 0x8000
/* 00B4BC 8000A8BC 14810002 */ bne $a0, $at, .L8000A8C8
/* 00B4C0 8000A8C0 00000000 */ nop
/* 00B4C4 8000A8C4 0006000D */ break 6
.L8000A8C8:
/* 00B4C8 8000A8C8 00002010 */ mfhi $a0
/* 00B4CC 8000A8CC 308DFFFF */ andi $t5, $a0, 0xffff
/* 00B4D0 8000A8D0 01A02025 */ move $a0, $t5
/* 00B4D4 8000A8D4 00003025 */ move $a2, $zero
/* 00B4D8 8000A8D8 0C002EF6 */ jal func_8000BBD8
/* 00B4DC 8000A8DC AFA30030 */ sw $v1, 0x30($sp)
/* 00B4E0 8000A8E0 8FA30030 */ lw $v1, 0x30($sp)
/* 00B4E4 8000A8E4 44805000 */ mtc1 $zero, $f10
/* 00B4E8 8000A8E8 8FA90038 */ lw $t1, 0x38($sp)
/* 00B4EC 8000A8EC 10000021 */ b .L8000A974
/* 00B4F0 8000A8F0 E46A0004 */ swc1 $f10, 4($v1)
.L8000A8F4:
/* 00B4F4 8000A8F4 24840008 */ addiu $a0, $a0, 8
.L8000A8F8:
/* 00B4F8 8000A8F8 308FFFFF */ andi $t7, $a0, 0xffff
/* 00B4FC 8000A8FC 3C0B8016 */ lui $t3, %hi(D_80164430) # $t3, 0x8016
/* 00B500 8000A900 956B4430 */ lhu $t3, %lo(D_80164430)($t3)
/* 00B504 8000A904 01E02025 */ move $a0, $t7
/* 00B508 8000A908 3C188016 */ lui $t8, %hi(D_80163068) # $t8, 0x8016
/* 00B50C 8000A90C 01EB001A */ div $zero, $t7, $t3
/* 00B510 8000A910 15600002 */ bnez $t3, .L8000A91C
/* 00B514 8000A914 00000000 */ nop
/* 00B518 8000A918 0007000D */ break 7
.L8000A91C:
/* 00B51C 8000A91C 2401FFFF */ li $at, -1
/* 00B520 8000A920 15610004 */ bne $t3, $at, .L8000A934
/* 00B524 8000A924 3C018000 */ lui $at, 0x8000
/* 00B528 8000A928 14810002 */ bne $a0, $at, .L8000A934
/* 00B52C 8000A92C 00000000 */ nop
/* 00B530 8000A930 0006000D */ break 6
.L8000A934:
/* 00B534 8000A934 00002010 */ mfhi $a0
/* 00B538 8000A938 27183068 */ addiu $t8, %lo(D_80163068) # addiu $t8, $t8, 0x3068
/* 00B53C 8000A93C 308CFFFF */ andi $t4, $a0, 0xffff
/* 00B540 8000A940 01384021 */ addu $t0, $t1, $t8
/* 00B544 8000A944 3C068016 */ lui $a2, %hi(D_80163448 + 2) # $a2, 0x8016
/* 00B548 8000A948 01802025 */ move $a0, $t4
/* 00B54C 8000A94C 84C6344A */ lh $a2, %lo(D_80163448 + 2)($a2)
/* 00B550 8000A950 8D050000 */ lw $a1, ($t0)
/* 00B554 8000A954 AFA80020 */ sw $t0, 0x20($sp)
/* 00B558 8000A958 0C002EF6 */ jal func_8000BBD8
/* 00B55C 8000A95C AFA30030 */ sw $v1, 0x30($sp)
/* 00B560 8000A960 8FA80020 */ lw $t0, 0x20($sp)
/* 00B564 8000A964 8FA30030 */ lw $v1, 0x30($sp)
/* 00B568 8000A968 8FA90038 */ lw $t1, 0x38($sp)
/* 00B56C 8000A96C C5100000 */ lwc1 $f16, ($t0)
/* 00B570 8000A970 E4700000 */ swc1 $f16, ($v1)
.L8000A974:
/* 00B574 8000A974 3C198016 */ lui $t9, %hi(D_80162FD0) # $t9, 0x8016
/* 00B578 8000A978 87392FD0 */ lh $t9, %lo(D_80162FD0)($t9)
/* 00B57C 8000A97C 24010001 */ li $at, 1
/* 00B580 8000A980 8FAE0034 */ lw $t6, 0x34($sp)
/* 00B584 8000A984 1721001E */ bne $t9, $at, .L8000AA00
/* 00B588 8000A988 3C0A8016 */ lui $t2, %hi(D_80162FF8) # 0x8016
/* 00B58C 8000A98C 014E5021 */ addu $t2, $t2, $t6
/* 00B590 8000A990 854A2FF8 */ lh $t2, %lo(D_80162FF8)($t2) # 0x2ff8($t2)
/* 00B594 8000A994 3C0F8016 */ lui $t7, %hi(D_80164430) # $t7, 0x8016
/* 00B598 8000A998 15400019 */ bnez $t2, .L8000AA00
/* 00B59C 8000A99C 00000000 */ nop
/* 00B5A0 8000A9A0 3C048016 */ lui $a0, %hi(D_801630E0) # $a0, 0x8016
/* 00B5A4 8000A9A4 948430E0 */ lhu $a0, %lo(D_801630E0)($a0)
/* 00B5A8 8000A9A8 95EF4430 */ lhu $t7, %lo(D_80164430)($t7)
/* 00B5AC 8000A9AC 3C05BF33 */ lui $a1, (0xBF333333 >> 16) # lui $a1, 0xbf33
/* 00B5B0 8000A9B0 24840007 */ addiu $a0, $a0, 7
/* 00B5B4 8000A9B4 308DFFFF */ andi $t5, $a0, 0xffff
/* 00B5B8 8000A9B8 01AF001A */ div $zero, $t5, $t7
/* 00B5BC 8000A9BC 01A02025 */ move $a0, $t5
/* 00B5C0 8000A9C0 15E00002 */ bnez $t7, .L8000A9CC
/* 00B5C4 8000A9C4 00000000 */ nop
/* 00B5C8 8000A9C8 0007000D */ break 7
.L8000A9CC:
/* 00B5CC 8000A9CC 2401FFFF */ li $at, -1
/* 00B5D0 8000A9D0 15E10004 */ bne $t7, $at, .L8000A9E4
/* 00B5D4 8000A9D4 3C018000 */ lui $at, 0x8000
/* 00B5D8 8000A9D8 14810002 */ bne $a0, $at, .L8000A9E4
/* 00B5DC 8000A9DC 00000000 */ nop
/* 00B5E0 8000A9E0 0006000D */ break 6
.L8000A9E4:
/* 00B5E4 8000A9E4 00002010 */ mfhi $a0
/* 00B5E8 8000A9E8 308BFFFF */ andi $t3, $a0, 0xffff
/* 00B5EC 8000A9EC 3C068016 */ lui $a2, %hi(D_80163448 + 2) # $a2, 0x8016
/* 00B5F0 8000A9F0 01602025 */ move $a0, $t3
/* 00B5F4 8000A9F4 84C6344A */ lh $a2, %lo(D_80163448 + 2)($a2)
/* 00B5F8 8000A9F8 0C002EF6 */ jal func_8000BBD8
/* 00B5FC 8000A9FC 34A53333 */ ori $a1, (0xBF333333 & 0xFFFF) # ori $a1, $a1, 0x3333
.L8000AA00:
/* 00B600 8000AA00 3C0C8016 */ lui $t4, %hi(D_80163448) # $t4, 0x8016
/* 00B604 8000AA04 8D8C3448 */ lw $t4, %lo(D_80163448)($t4)
/* 00B608 8000AA08 3C198016 */ lui $t9, %hi(D_80162FF8) # $t9, 0x8016
/* 00B60C 8000AA0C 27392FF8 */ addiu $t9, %lo(D_80162FF8) # addiu $t9, $t9, 0x2ff8
/* 00B610 8000AA10 15800024 */ bnez $t4, .L8000AAA4
/* 00B614 8000AA14 8FB80034 */ lw $t8, 0x34($sp)
/* 00B618 8000AA18 03197021 */ addu $t6, $t8, $t9
/* 00B61C 8000AA1C AFAE003C */ sw $t6, 0x3c($sp)
/* 00B620 8000AA20 0C002C50 */ jal func_8000B140
/* 00B624 8000AA24 8FA400D0 */ lw $a0, 0xd0($sp)
/* 00B628 8000AA28 8FAA003C */ lw $t2, 0x3c($sp)
/* 00B62C 8000AA2C 3C0B8016 */ lui $t3, %hi(D_80164430) # $t3, 0x8016
/* 00B630 8000AA30 8FB80038 */ lw $t8, 0x38($sp)
/* 00B634 8000AA34 854D0000 */ lh $t5, ($t2)
/* 00B638 8000AA38 19A0001A */ blez $t5, .L8000AAA4
/* 00B63C 8000AA3C 00000000 */ nop
/* 00B640 8000AA40 3C048016 */ lui $a0, %hi(D_801630E0) # $a0, 0x8016
/* 00B644 8000AA44 948430E0 */ lhu $a0, %lo(D_801630E0)($a0)
/* 00B648 8000AA48 956B4430 */ lhu $t3, %lo(D_80164430)($t3)
/* 00B64C 8000AA4C 3C058016 */ lui $a1, %hi(D_80163090) # 0x8016
/* 00B650 8000AA50 24840005 */ addiu $a0, $a0, 5
/* 00B654 8000AA54 308FFFFF */ andi $t7, $a0, 0xffff
/* 00B658 8000AA58 01EB001A */ div $zero, $t7, $t3
/* 00B65C 8000AA5C 01E02025 */ move $a0, $t7
/* 00B660 8000AA60 15600002 */ bnez $t3, .L8000AA6C
/* 00B664 8000AA64 00000000 */ nop
/* 00B668 8000AA68 0007000D */ break 7
.L8000AA6C:
/* 00B66C 8000AA6C 2401FFFF */ li $at, -1
/* 00B670 8000AA70 15610004 */ bne $t3, $at, .L8000AA84
/* 00B674 8000AA74 3C018000 */ lui $at, 0x8000
/* 00B678 8000AA78 14810002 */ bne $a0, $at, .L8000AA84
/* 00B67C 8000AA7C 00000000 */ nop
/* 00B680 8000AA80 0006000D */ break 6
.L8000AA84:
/* 00B684 8000AA84 00002010 */ mfhi $a0
/* 00B688 8000AA88 308CFFFF */ andi $t4, $a0, 0xffff
/* 00B68C 8000AA8C 00B82821 */ addu $a1, $a1, $t8
/* 00B690 8000AA90 3C068016 */ lui $a2, %hi(D_80163448 + 2) # $a2, 0x8016
/* 00B694 8000AA94 01802025 */ move $a0, $t4
/* 00B698 8000AA98 84C6344A */ lh $a2, %lo(D_80163448 + 2)($a2)
/* 00B69C 8000AA9C 0C002EF6 */ jal func_8000BBD8
/* 00B6A0 8000AAA0 8CA53090 */ lw $a1, %lo(D_80163090)($a1) # 0x3090($a1)
.L8000AAA4:
/* 00B6A4 8000AAA4 3C0E800E */ lui $t6, %hi(gCurrentCourseId)
/* 00B6A8 8000AAA8 85CEC5A0 */ lh $t6, %lo(gCurrentCourseId)($t6)
/* 00B6AC 8000AAAC 8FA90038 */ lw $t1, 0x38($sp)
/* 00B6B0 8000AAB0 3C198016 */ lui $t9, %hi(D_80163068) # $t9, 0x8016
/* 00B6B4 8000AAB4 27393068 */ addiu $t9, %lo(D_80163068) # addiu $t9, $t9, 0x3068
/* 00B6B8 8000AAB8 24010014 */ li $at, 20
/* 00B6BC 8000AABC 15C10038 */ bne $t6, $at, .L8000ABA0
/* 00B6C0 8000AAC0 01394021 */ addu $t0, $t1, $t9
/* 00B6C4 8000AAC4 8FAA0034 */ lw $t2, 0x34($sp)
/* 00B6C8 8000AAC8 3C028016 */ lui $v0, %hi(D_80163410) # 0x8016
/* 00B6CC 8000AACC 24010003 */ li $at, 3
/* 00B6D0 8000AAD0 004A1021 */ addu $v0, $v0, $t2
/* 00B6D4 8000AAD4 84423410 */ lh $v0, %lo(D_80163410)($v0) # 0x3410($v0)
/* 00B6D8 8000AAD8 3C078016 */ lui $a3, %hi(D_80162FA0) # $a3, 0x8016
/* 00B6DC 8000AADC 24E72FA0 */ addiu $a3, %lo(D_80162FA0) # addiu $a3, $a3, 0x2fa0
/* 00B6E0 8000AAE0 10410005 */ beq $v0, $at, .L8000AAF8
/* 00B6E4 8000AAE4 24010004 */ li $at, 4
/* 00B6E8 8000AAE8 1041000C */ beq $v0, $at, .L8000AB1C
/* 00B6EC 8000AAEC 8FAD0024 */ lw $t5, 0x24($sp)
/* 00B6F0 8000AAF0 1000002B */ b .L8000ABA0
/* 00B6F4 8000AAF4 00000000 */ nop
.L8000AAF8:
/* 00B6F8 8000AAF8 3C018016 */ lui $at, %hi(D_80163418)
/* 00B6FC 8000AAFC 00290821 */ addu $at, $at, $t1
/* 00B700 8000AB00 C4243418 */ lwc1 $f4, %lo(D_80163418)($at)
/* 00B704 8000AB04 3C018016 */ lui $at, %hi(D_80163438)
/* 00B708 8000AB08 00290821 */ addu $at, $at, $t1
/* 00B70C 8000AB0C E4E40000 */ swc1 $f4, ($a3)
/* 00B710 8000AB10 C4263438 */ lwc1 $f6, %lo(D_80163438)($at)
/* 00B714 8000AB14 10000022 */ b .L8000ABA0
/* 00B718 8000AB18 E4E60008 */ swc1 $f6, 8($a3)
.L8000AB1C:
/* 00B71C 8000AB1C 8FAC0034 */ lw $t4, 0x34($sp)
/* 00B720 8000AB20 3C188016 */ lui $t8, %hi(gWaypointCountByPathIndex) # 0x8016
/* 00B724 8000AB24 95AF0000 */ lhu $t7, ($t5)
/* 00B728 8000AB28 030CC021 */ addu $t8, $t8, $t4
/* 00B72C 8000AB2C 971845C8 */ lhu $t8, %lo(gWaypointCountByPathIndex)($t8) # 0x45c8($t8)
/* 00B730 8000AB30 25EB000A */ addiu $t3, $t7, 0xa
/* 00B734 8000AB34 3C0A8016 */ lui $t2, %hi(D_80164550) # 0x8016
/* 00B738 8000AB38 0178001A */ div $zero, $t3, $t8
/* 00B73C 8000AB3C 01495021 */ addu $t2, $t2, $t1
/* 00B740 8000AB40 8D4A4550 */ lw $t2, %lo(D_80164550)($t2) # 0x4550($t2)
/* 00B744 8000AB44 0000C810 */ mfhi $t9
/* 00B748 8000AB48 001970C0 */ sll $t6, $t9, 3
/* 00B74C 8000AB4C 01CA1021 */ addu $v0, $t6, $t2
/* 00B750 8000AB50 844D0000 */ lh $t5, ($v0)
/* 00B754 8000AB54 3C078016 */ lui $a3, %hi(D_80162FA0) # $a3, 0x8016
/* 00B758 8000AB58 24E72FA0 */ addiu $a3, %lo(D_80162FA0) # addiu $a3, $a3, 0x2fa0
/* 00B75C 8000AB5C 448D9000 */ mtc1 $t5, $f18
/* 00B760 8000AB60 17000002 */ bnez $t8, .L8000AB6C
/* 00B764 8000AB64 00000000 */ nop
/* 00B768 8000AB68 0007000D */ break 7
.L8000AB6C:
/* 00B76C 8000AB6C 2401FFFF */ li $at, -1
/* 00B770 8000AB70 17010004 */ bne $t8, $at, .L8000AB84
/* 00B774 8000AB74 3C018000 */ lui $at, 0x8000
/* 00B778 8000AB78 15610002 */ bne $t3, $at, .L8000AB84
/* 00B77C 8000AB7C 00000000 */ nop
/* 00B780 8000AB80 0006000D */ break 6
.L8000AB84:
/* 00B784 8000AB84 46809220 */ cvt.s.w $f8, $f18
/* 00B788 8000AB88 E4E80000 */ swc1 $f8, ($a3)
/* 00B78C 8000AB8C 844F0004 */ lh $t7, 4($v0)
/* 00B790 8000AB90 448F5000 */ mtc1 $t7, $f10
/* 00B794 8000AB94 00000000 */ nop
/* 00B798 8000AB98 46805420 */ cvt.s.w $f16, $f10
/* 00B79C 8000AB9C E4F00008 */ swc1 $f16, 8($a3)
.L8000ABA0:
/* 00B7A0 8000ABA0 3C0C8016 */ lui $t4, %hi(D_80163178) # $t4, 0x8016
/* 00B7A4 8000ABA4 3C078016 */ lui $a3, %hi(D_80162FA0) # 0x8016
/* 00B7A8 8000ABA8 258C3178 */ addiu $t4, %lo(D_80163178) # addiu $t4, $t4, 0x3178
/* 00B7AC 8000ABAC 24E52FA0 */ addiu $a1, $a3, %lo(D_80162FA0) # 0x2fa0
/* 00B7B0 8000ABB0 012C1021 */ addu $v0, $t1, $t4
/* 00B7B4 8000ABB4 C4460000 */ lwc1 $f6, ($v0)
/* 00B7B8 8000ABB8 C4A40000 */ lwc1 $f4, ($a1)
/* 00B7BC 8000ABBC 3C013F00 */ li $at, 0x3F000000 # 0.500000
/* 00B7C0 8000ABC0 44810000 */ mtc1 $at, $f0
/* 00B7C4 8000ABC4 46062480 */ add.s $f18, $f4, $f6
/* 00B7C8 8000ABC8 3C0B8016 */ lui $t3, %hi(D_801631A0) # $t3, 0x8016
/* 00B7CC 8000ABCC 256B31A0 */ addiu $t3, %lo(D_801631A0) # addiu $t3, $t3, 0x31a0
/* 00B7D0 8000ABD0 012B1821 */ addu $v1, $t1, $t3
/* 00B7D4 8000ABD4 46009202 */ mul.s $f8, $f18, $f0
/* 00B7D8 8000ABD8 C4AA0008 */ lwc1 $f10, 8($a1)
/* 00B7DC 8000ABDC E4A80000 */ swc1 $f8, ($a1)
/* 00B7E0 8000ABE0 C4700000 */ lwc1 $f16, ($v1)
/* 00B7E4 8000ABE4 C4B20000 */ lwc1 $f18, ($a1)
/* 00B7E8 8000ABE8 46105100 */ add.s $f4, $f10, $f16
/* 00B7EC 8000ABEC 46002182 */ mul.s $f6, $f4, $f0
/* 00B7F0 8000ABF0 E4A60008 */ swc1 $f6, 8($a1)
/* 00B7F4 8000ABF4 E4520000 */ swc1 $f18, ($v0)
/* 00B7F8 8000ABF8 C4A80008 */ lwc1 $f8, 8($a1)
/* 00B7FC 8000ABFC AFA80020 */ sw $t0, 0x20($sp)
/* 00B800 8000AC00 8FA4001C */ lw $a0, 0x1c($sp)
/* 00B804 8000AC04 0C0AD489 */ jal get_angle_between_two_vectors
/* 00B808 8000AC08 E4680000 */ swc1 $f8, ($v1)
/* 00B80C 8000AC0C 3C013FC0 */ li $at, 0x3FC00000 # 1.500000
/* 00B810 8000AC10 44810000 */ mtc1 $at, $f0
/* 00B814 8000AC14 3C014336 */ li $at, 0x43360000 # 182.000000
/* 00B818 8000AC18 44816000 */ mtc1 $at, $f12
/* 00B81C 8000AC1C 46000407 */ neg.s $f16, $f0
/* 00B820 8000AC20 8FA70040 */ lw $a3, 0x40($sp)
/* 00B824 8000AC24 460C0082 */ mul.s $f2, $f0, $f12
/* 00B828 8000AC28 00027023 */ negu $t6, $v0
/* 00B82C 8000AC2C 84E4002E */ lh $a0, 0x2e($a3)
/* 00B830 8000AC30 460C8102 */ mul.s $f4, $f16, $f12
/* 00B834 8000AC34 8FA80020 */ lw $t0, 0x20($sp)
/* 00B838 8000AC38 01C41823 */ subu $v1, $t6, $a0
/* 00B83C 8000AC3C 00033400 */ sll $a2, $v1, 0x10
/* 00B840 8000AC40 00035C00 */ sll $t3, $v1, 0x10
/* 00B844 8000AC44 00065403 */ sra $t2, $a2, 0x10
/* 00B848 8000AC48 4600128D */ trunc.w.s $f10, $f2
/* 00B84C 8000AC4C 000BC403 */ sra $t8, $t3, 0x10
/* 00B850 8000AC50 01403025 */ move $a2, $t2
/* 00B854 8000AC54 4600218D */ trunc.w.s $f6, $f4
/* 00B858 8000AC58 44055000 */ mfc1 $a1, $f10
/* 00B85C 8000AC5C 3C0B800E */ lui $t3, %hi(gCurrentCourseId)
/* 00B860 8000AC60 3C03800E */ lui $v1, %hi(D_800DCA20)
/* 00B864 8000AC64 00057C00 */ sll $t7, $a1, 0x10
/* 00B868 8000AC68 44023000 */ mfc1 $v0, $f6
/* 00B86C 8000AC6C 000F6403 */ sra $t4, $t7, 0x10
/* 00B870 8000AC70 0198082A */ slt $at, $t4, $t8
/* 00B874 8000AC74 10200004 */ beqz $at, .L8000AC88
/* 00B878 8000AC78 00025400 */ sll $t2, $v0, 0x10
/* 00B87C 8000AC7C 00053400 */ sll $a2, $a1, 0x10
/* 00B880 8000AC80 0006CC03 */ sra $t9, $a2, 0x10
/* 00B884 8000AC84 03203025 */ move $a2, $t9
.L8000AC88:
/* 00B888 8000AC88 000A6C03 */ sra $t5, $t2, 0x10
/* 00B88C 8000AC8C 00CD082A */ slt $at, $a2, $t5
/* 00B890 8000AC90 10200004 */ beqz $at, .L8000ACA4
/* 00B894 8000AC94 3C188016 */ lui $t8, %hi(D_801631D8) # $t8, 0x8016
/* 00B898 8000AC98 00023400 */ sll $a2, $v0, 0x10
/* 00B89C 8000AC9C 00067C03 */ sra $t7, $a2, 0x10
/* 00B8A0 8000ACA0 01E03025 */ move $a2, $t7
.L8000ACA4:
/* 00B8A4 8000ACA4 8F1831D8 */ lw $t8, %lo(D_801631D8)($t8)
/* 00B8A8 8000ACA8 8FB90034 */ lw $t9, 0x34($sp)
/* 00B8AC 8000ACAC 856BC5A0 */ lh $t3, %lo(gCurrentCourseId)($t3)
/* 00B8B0 8000ACB0 24010002 */ li $at, 2
/* 00B8B4 8000ACB4 03197021 */ addu $t6, $t8, $t9
/* 00B8B8 8000ACB8 85C20000 */ lh $v0, ($t6)
/* 00B8BC 8000ACBC 000B6040 */ sll $t4, $t3, 1
/* 00B8C0 8000ACC0 006C1821 */ addu $v1, $v1, $t4
/* 00B8C4 8000ACC4 10410006 */ beq $v0, $at, .L8000ACE0
/* 00B8C8 8000ACC8 8463CA20 */ lh $v1, %lo(D_800DCA20)($v1)
/* 00B8CC 8000ACCC 24010003 */ li $at, 3
/* 00B8D0 8000ACD0 50410014 */ beql $v0, $at, .L8000AD24
/* 00B8D4 8000ACD4 3C013F00 */ lui $at, 0x3f00
/* 00B8D8 8000ACD8 10000021 */ b .L8000AD60
/* 00B8DC 8000ACDC 8FAA0034 */ lw $t2, 0x34($sp)
.L8000ACE0:
/* 00B8E0 8000ACE0 3C013F00 */ li $at, 0x3F000000 # 0.500000
/* 00B8E4 8000ACE4 44819000 */ mtc1 $at, $f18
/* 00B8E8 8000ACE8 C5000000 */ lwc1 $f0, ($t0)
/* 00B8EC 8000ACEC 3C01BF00 */ li $at, 0xBF000000 # -0.500000
/* 00B8F0 8000ACF0 44814000 */ mtc1 $at, $f8
/* 00B8F4 8000ACF4 4600903C */ c.lt.s $f18, $f0
/* 00B8F8 8000ACF8 00000000 */ nop
/* 00B8FC 8000ACFC 45020003 */ bc1fl .L8000AD0C
/* 00B900 8000AD00 4608003C */ c.lt.s $f0, $f8
/* 00B904 8000AD04 24030014 */ li $v1, 20
/* 00B908 8000AD08 4608003C */ c.lt.s $f0, $f8
.L8000AD0C:
/* 00B90C 8000AD0C 00000000 */ nop
/* 00B910 8000AD10 45020013 */ bc1fl .L8000AD60
/* 00B914 8000AD14 8FAA0034 */ lw $t2, 0x34($sp)
/* 00B918 8000AD18 10000010 */ b .L8000AD5C
/* 00B91C 8000AD1C 24030035 */ li $v1, 53
/* 00B920 8000AD20 3C013F00 */ li $at, 0x3F000000 # 0.500000
.L8000AD24:
/* 00B924 8000AD24 44815000 */ mtc1 $at, $f10
/* 00B928 8000AD28 C5000000 */ lwc1 $f0, ($t0)
/* 00B92C 8000AD2C 3C01BF00 */ li $at, 0xBF000000 # -0.500000
/* 00B930 8000AD30 44818000 */ mtc1 $at, $f16
/* 00B934 8000AD34 4600503C */ c.lt.s $f10, $f0
/* 00B938 8000AD38 00000000 */ nop
/* 00B93C 8000AD3C 45020003 */ bc1fl .L8000AD4C
/* 00B940 8000AD40 4610003C */ c.lt.s $f0, $f16
/* 00B944 8000AD44 24030035 */ li $v1, 53
/* 00B948 8000AD48 4610003C */ c.lt.s $f0, $f16
.L8000AD4C:
/* 00B94C 8000AD4C 00000000 */ nop
/* 00B950 8000AD50 45020003 */ bc1fl .L8000AD60
/* 00B954 8000AD54 8FAA0034 */ lw $t2, 0x34($sp)
/* 00B958 8000AD58 24030014 */ li $v1, 20
.L8000AD5C:
/* 00B95C 8000AD5C 8FAA0034 */ lw $t2, 0x34($sp)
.L8000AD60:
/* 00B960 8000AD60 3C0D8016 */ lui $t5, %hi(D_801632E8) # 0x8016
/* 00B964 8000AD64 24010002 */ li $at, 2
/* 00B968 8000AD68 01AA6821 */ addu $t5, $t5, $t2
/* 00B96C 8000AD6C 95AD32E8 */ lhu $t5, %lo(D_801632E8)($t5) # 0x32e8($t5)
/* 00B970 8000AD70 15A10013 */ bne $t5, $at, .L8000ADC0
/* 00B974 8000AD74 3C01800F */ lui $at, %hi(D_800ECFB8) # $at, 0x800f
/* 00B978 8000AD78 C424CFB8 */ lwc1 $f4, %lo(D_800ECFB8)($at)
/* 00B97C 8000AD7C C5000000 */ lwc1 $f0, ($t0)
/* 00B980 8000AD80 3C01800F */ lui $at, %hi(D_800ECFBC) # $at, 0x800f
/* 00B984 8000AD84 8FAF002C */ lw $t7, 0x2c($sp)
/* 00B988 8000AD88 4600203C */ c.lt.s $f4, $f0
/* 00B98C 8000AD8C 00000000 */ nop
/* 00B990 8000AD90 45030007 */ bc1tl .L8000ADB0
/* 00B994 8000AD94 A5E00000 */ sh $zero, ($t7)
/* 00B998 8000AD98 C426CFBC */ lwc1 $f6, %lo(D_800ECFBC)($at)
/* 00B99C 8000AD9C 4606003C */ c.lt.s $f0, $f6
/* 00B9A0 8000ADA0 00000000 */ nop
/* 00B9A4 8000ADA4 45020007 */ bc1fl .L8000ADC4
/* 00B9A8 8000ADA8 8CE200BC */ lw $v0, 0xbc($a3)
/* 00B9AC 8000ADAC A5E00000 */ sh $zero, ($t7)
.L8000ADB0:
/* 00B9B0 8000ADB0 8CEB00BC */ lw $t3, 0xbc($a3)
/* 00B9B4 8000ADB4 2401FFEF */ li $at, -17
/* 00B9B8 8000ADB8 01616024 */ and $t4, $t3, $at
/* 00B9BC 8000ADBC ACEC00BC */ sw $t4, 0xbc($a3)
.L8000ADC0:
/* 00B9C0 8000ADC0 8CE200BC */ lw $v0, 0xbc($a3)
.L8000ADC4:
/* 00B9C4 8000ADC4 8FB9002C */ lw $t9, 0x2c($sp)
/* 00B9C8 8000ADC8 30580002 */ andi $t8, $v0, 2
/* 00B9CC 8000ADCC 53000029 */ beql $t8, $zero, .L8000AE74
/* 00B9D0 8000ADD0 3C011000 */ lui $at, 0x1000
/* 00B9D4 8000ADD4 87220000 */ lh $v0, ($t9)
/* 00B9D8 8000ADD8 2401FFFF */ li $at, -1
/* 00B9DC 8000ADDC 2405FFCB */ li $a1, -53
/* 00B9E0 8000ADE0 1041001F */ beq $v0, $at, .L8000AE60
/* 00B9E4 8000ADE4 8FAA0034 */ lw $t2, 0x34($sp)
/* 00B9E8 8000ADE8 24010001 */ li $at, 1
/* 00B9EC 8000ADEC 10410017 */ beq $v0, $at, .L8000AE4C
/* 00B9F0 8000ADF0 24050035 */ li $a1, 53
/* 00B9F4 8000ADF4 00C30019 */ multu $a2, $v1
/* 00B9F8 8000ADF8 8FAE0034 */ lw $t6, 0x34($sp)
/* 00B9FC 8000ADFC 3C0A8016 */ lui $t2, %hi(D_80163050) # $t2, 0x8016
/* 00BA00 8000AE00 254A3050 */ addiu $t2, %lo(D_80163050) # addiu $t2, $t2, 0x3050
/* 00BA04 8000AE04 01CA1021 */ addu $v0, $t6, $t2
/* 00BA08 8000AE08 844D0000 */ lh $t5, ($v0)
/* 00BA0C 8000AE0C 3C014000 */ li $at, 0x40000000 # 2.000000
/* 00BA10 8000AE10 448D9000 */ mtc1 $t5, $f18
/* 00BA14 8000AE14 00007812 */ mflo $t7
/* 00BA18 8000AE18 448F5000 */ mtc1 $t7, $f10
/* 00BA1C 8000AE1C 46809220 */ cvt.s.w $f8, $f18
/* 00BA20 8000AE20 44819000 */ mtc1 $at, $f18
/* 00BA24 8000AE24 46805420 */ cvt.s.w $f16, $f10
/* 00BA28 8000AE28 46028103 */ div.s $f4, $f16, $f2
/* 00BA2C 8000AE2C 46044180 */ add.s $f6, $f8, $f4
/* 00BA30 8000AE30 46123283 */ div.s $f10, $f6, $f18
/* 00BA34 8000AE34 4600540D */ trunc.w.s $f16, $f10
/* 00BA38 8000AE38 44058000 */ mfc1 $a1, $f16
/* 00BA3C 8000AE3C 00000000 */ nop
/* 00BA40 8000AE40 00056400 */ sll $t4, $a1, 0x10
/* 00BA44 8000AE44 1000002A */ b .L8000AEF0
/* 00BA48 8000AE48 000C2C03 */ sra $a1, $t4, 0x10
.L8000AE4C:
/* 00BA4C 8000AE4C 8FB90034 */ lw $t9, 0x34($sp)
/* 00BA50 8000AE50 3C0E8016 */ lui $t6, %hi(D_80163050) # $t6, 0x8016
/* 00BA54 8000AE54 25CE3050 */ addiu $t6, %lo(D_80163050) # addiu $t6, $t6, 0x3050
/* 00BA58 8000AE58 10000025 */ b .L8000AEF0
/* 00BA5C 8000AE5C 032E1021 */ addu $v0, $t9, $t6
.L8000AE60:
/* 00BA60 8000AE60 3C0D8016 */ lui $t5, %hi(D_80163050) # $t5, 0x8016
/* 00BA64 8000AE64 25AD3050 */ addiu $t5, %lo(D_80163050) # addiu $t5, $t5, 0x3050
/* 00BA68 8000AE68 10000021 */ b .L8000AEF0
/* 00BA6C 8000AE6C 014D1021 */ addu $v0, $t2, $t5
/* 00BA70 8000AE70 3C011000 */ lui $at, (0x1000000C >> 16) # lui $at, 0x1000
.L8000AE74:
/* 00BA74 8000AE74 3421000C */ ori $at, (0x1000000C & 0xFFFF) # ori $at, $at, 0xc
/* 00BA78 8000AE78 00417824 */ and $t7, $v0, $at
/* 00BA7C 8000AE7C 11E00007 */ beqz $t7, .L8000AE9C
/* 00BA80 8000AE80 00000000 */ nop
/* 00BA84 8000AE84 8FAB0034 */ lw $t3, 0x34($sp)
/* 00BA88 8000AE88 3C0C8016 */ lui $t4, %hi(D_80163050) # $t4, 0x8016
/* 00BA8C 8000AE8C 258C3050 */ addiu $t4, %lo(D_80163050) # addiu $t4, $t4, 0x3050
/* 00BA90 8000AE90 00002825 */ move $a1, $zero
/* 00BA94 8000AE94 10000016 */ b .L8000AEF0
/* 00BA98 8000AE98 016C1021 */ addu $v0, $t3, $t4
.L8000AE9C:
/* 00BA9C 8000AE9C 00C30019 */ multu $a2, $v1
/* 00BAA0 8000AEA0 8FB80034 */ lw $t8, 0x34($sp)
/* 00BAA4 8000AEA4 3C198016 */ lui $t9, %hi(D_80163050) # $t9, 0x8016
/* 00BAA8 8000AEA8 27393050 */ addiu $t9, %lo(D_80163050) # addiu $t9, $t9, 0x3050
/* 00BAAC 8000AEAC 03191021 */ addu $v0, $t8, $t9
/* 00BAB0 8000AEB0 844E0000 */ lh $t6, ($v0)
/* 00BAB4 8000AEB4 3C014000 */ li $at, 0x40000000 # 2.000000
/* 00BAB8 8000AEB8 448E4000 */ mtc1 $t6, $f8
/* 00BABC 8000AEBC 00005012 */ mflo $t2
/* 00BAC0 8000AEC0 448A3000 */ mtc1 $t2, $f6
/* 00BAC4 8000AEC4 46804120 */ cvt.s.w $f4, $f8
/* 00BAC8 8000AEC8 44814000 */ mtc1 $at, $f8
/* 00BACC 8000AECC 468034A0 */ cvt.s.w $f18, $f6
/* 00BAD0 8000AED0 46029283 */ div.s $f10, $f18, $f2
/* 00BAD4 8000AED4 460A2400 */ add.s $f16, $f4, $f10
/* 00BAD8 8000AED8 46088183 */ div.s $f6, $f16, $f8
/* 00BADC 8000AEDC 4600348D */ trunc.w.s $f18, $f6
/* 00BAE0 8000AEE0 44059000 */ mfc1 $a1, $f18
/* 00BAE4 8000AEE4 00000000 */ nop
/* 00BAE8 8000AEE8 00057C00 */ sll $t7, $a1, 0x10
/* 00BAEC 8000AEEC 000F2C03 */ sra $a1, $t7, 0x10
.L8000AEF0:
/* 00BAF0 8000AEF0 00E02025 */ move $a0, $a3
/* 00BAF4 8000AEF4 AFA2003C */ sw $v0, 0x3c($sp)
/* 00BAF8 8000AEF8 A7A50094 */ sh $a1, 0x94($sp)
/* 00BAFC 8000AEFC 0C00DA03 */ jal func_8003680C
/* 00BB00 8000AF00 AFA80020 */ sw $t0, 0x20($sp)
/* 00BB04 8000AF04 8FA2003C */ lw $v0, 0x3c($sp)
/* 00BB08 8000AF08 87A50094 */ lh $a1, 0x94($sp)
/* 00BB0C 8000AF0C 8FAC0028 */ lw $t4, 0x28($sp)
/* 00BB10 8000AF10 24010001 */ li $at, 1
/* 00BB14 8000AF14 A4450000 */ sh $a1, ($v0)
/* 00BB18 8000AF18 8D980000 */ lw $t8, ($t4)
/* 00BB1C 8000AF1C 8FA80020 */ lw $t0, 0x20($sp)
/* 00BB20 8000AF20 1301000D */ beq $t8, $at, .L8000AF58
/* 00BB24 8000AF24 00000000 */ nop
/* 00BB28 8000AF28 8FB9002C */ lw $t9, 0x2c($sp)
/* 00BB2C 8000AF2C 24010001 */ li $at, 1
/* 00BB30 8000AF30 87220000 */ lh $v0, ($t9)
/* 00BB34 8000AF34 10410008 */ beq $v0, $at, .L8000AF58
/* 00BB38 8000AF38 2401FFFF */ li $at, -1
/* 00BB3C 8000AF3C 10410006 */ beq $v0, $at, .L8000AF58
/* 00BB40 8000AF40 8FAE0040 */ lw $t6, 0x40($sp)
/* 00BB44 8000AF44 8DCA00BC */ lw $t2, 0xbc($t6)
/* 00BB48 8000AF48 3C011000 */ lui $at, (0x1000000C >> 16) # lui $at, 0x1000
/* 00BB4C 8000AF4C 3421000C */ ori $at, (0x1000000C & 0xFFFF) # ori $at, $at, 0xc
/* 00BB50 8000AF50 01416824 */ and $t5, $t2, $at
/* 00BB54 8000AF54 11A00014 */ beqz $t5, .L8000AFA8
.L8000AF58:
/* 00BB58 8000AF58 3C0F800E */ lui $t7, %hi(gCurrentCourseId)
/* 00BB5C 8000AF5C 3C0C800E */ lui $t4, %hi(gCCSelection)
/* 00BB60 8000AF60 8D8CC548 */ lw $t4, %lo(gCCSelection)($t4)
/* 00BB64 8000AF64 85EFC5A0 */ lh $t7, %lo(gCurrentCourseId)($t7)
/* 00BB68 8000AF68 3C0E0D01 */ lui $t6, %hi(D_0D009418) # $t6, 0xd01
/* 00BB6C 8000AF6C 000CC080 */ sll $t8, $t4, 2
/* 00BB70 8000AF70 000F5900 */ sll $t3, $t7, 4
/* 00BB74 8000AF74 0178C821 */ addu $t9, $t3, $t8
/* 00BB78 8000AF78 25CE9418 */ addiu $t6, %lo(D_0D009418) # addiu $t6, $t6, -0x6be8
/* 00BB7C 8000AF7C 032E2021 */ addu $a0, $t9, $t6
/* 00BB80 8000AF80 0C026455 */ jal segmented_to_virtual_dupe_2
/* 00BB84 8000AF84 AFA80020 */ sw $t0, 0x20($sp)
/* 00BB88 8000AF88 8FAA0038 */ lw $t2, 0x38($sp)
/* 00BB8C 8000AF8C 3C0D8016 */ lui $t5, %hi(D_80163028) # $t5, 0x8016
/* 00BB90 8000AF90 C4440000 */ lwc1 $f4, ($v0)
/* 00BB94 8000AF94 25AD3028 */ addiu $t5, %lo(D_80163028) # addiu $t5, $t5, 0x3028
/* 00BB98 8000AF98 014D1821 */ addu $v1, $t2, $t5
/* 00BB9C 8000AF9C 8FA80020 */ lw $t0, 0x20($sp)
/* 00BBA0 8000AFA0 10000014 */ b .L8000AFF4
/* 00BBA4 8000AFA4 E4640000 */ swc1 $f4, ($v1)
.L8000AFA8:
/* 00BBA8 8000AFA8 3C0F800E */ lui $t7, %hi(gCurrentCourseId)
/* 00BBAC 8000AFAC 3C0B800E */ lui $t3, %hi(gCCSelection)
/* 00BBB0 8000AFB0 8D6BC548 */ lw $t3, %lo(gCCSelection)($t3)
/* 00BBB4 8000AFB4 85EFC5A0 */ lh $t7, %lo(gCurrentCourseId)($t7)
/* 00BBB8 8000AFB8 3C0E0D01 */ lui $t6, %hi(D_0D009568) # $t6, 0xd01
/* 00BBBC 8000AFBC 000BC080 */ sll $t8, $t3, 2
/* 00BBC0 8000AFC0 000F6100 */ sll $t4, $t7, 4
/* 00BBC4 8000AFC4 0198C821 */ addu $t9, $t4, $t8
/* 00BBC8 8000AFC8 25CE9568 */ addiu $t6, %lo(D_0D009568) # addiu $t6, $t6, -0x6a98
/* 00BBCC 8000AFCC 032E2021 */ addu $a0, $t9, $t6
/* 00BBD0 8000AFD0 0C026455 */ jal segmented_to_virtual_dupe_2
/* 00BBD4 8000AFD4 AFA80020 */ sw $t0, 0x20($sp)
/* 00BBD8 8000AFD8 8FAA0038 */ lw $t2, 0x38($sp)
/* 00BBDC 8000AFDC C44A0000 */ lwc1 $f10, ($v0)
/* 00BBE0 8000AFE0 3C0D8016 */ lui $t5, %hi(D_80163028) # $t5, 0x8016
/* 00BBE4 8000AFE4 25AD3028 */ addiu $t5, %lo(D_80163028) # addiu $t5, $t5, 0x3028
/* 00BBE8 8000AFE8 014D1821 */ addu $v1, $t2, $t5
/* 00BBEC 8000AFEC 8FA80020 */ lw $t0, 0x20($sp)
/* 00BBF0 8000AFF0 E46A0000 */ swc1 $f10, ($v1)
.L8000AFF4:
/* 00BBF4 8000AFF4 3C01800F */ lui $at, %hi(D_800ECFC0) # $at, 0x800f
/* 00BBF8 8000AFF8 C430CFC0 */ lwc1 $f16, %lo(D_800ECFC0)($at)
/* 00BBFC 8000AFFC C5000000 */ lwc1 $f0, ($t0)
/* 00BC00 8000B000 3C0E0D01 */ lui $t6, %hi(D_0D009808) # $t6, 0xd01
/* 00BC04 8000B004 3C01800F */ lui $at, %hi(D_800ECFC4) # $at, 0x800f
/* 00BC08 8000B008 4600803C */ c.lt.s $f16, $f0
/* 00BC0C 8000B00C 25CE9808 */ addiu $t6, %lo(D_0D009808) # addiu $t6, $t6, -0x67f8
/* 00BC10 8000B010 3C0F800E */ lui $t7, %hi(gCurrentCourseId)
/* 00BC14 8000B014 3C0C800E */ lui $t4, %hi(gCCSelection)
/* 00BC18 8000B018 45010006 */ bc1t .L8000B034
/* 00BC1C 8000B01C 00000000 */ nop
/* 00BC20 8000B020 C428CFC4 */ lwc1 $f8, %lo(D_800ECFC4)($at)
/* 00BC24 8000B024 4608003C */ c.lt.s $f0, $f8
/* 00BC28 8000B028 00000000 */ nop
/* 00BC2C 8000B02C 4500000C */ bc1f .L8000B060
/* 00BC30 8000B030 00000000 */ nop
.L8000B034:
/* 00BC34 8000B034 85EFC5A0 */ lh $t7, %lo(gCurrentCourseId)($t7)
/* 00BC38 8000B038 8D8CC548 */ lw $t4, %lo(gCCSelection)($t4)
/* 00BC3C 8000B03C AFA30034 */ sw $v1, 0x34($sp)
/* 00BC40 8000B040 000F5900 */ sll $t3, $t7, 4
/* 00BC44 8000B044 000CC080 */ sll $t8, $t4, 2
/* 00BC48 8000B048 0178C821 */ addu $t9, $t3, $t8
/* 00BC4C 8000B04C 0C026455 */ jal segmented_to_virtual_dupe_2
/* 00BC50 8000B050 032E2021 */ addu $a0, $t9, $t6
/* 00BC54 8000B054 8FA30034 */ lw $v1, 0x34($sp)
/* 00BC58 8000B058 C4460000 */ lwc1 $f6, ($v0)
/* 00BC5C 8000B05C E4660000 */ swc1 $f6, ($v1)
.L8000B060:
/* 00BC60 8000B060 3C0A8016 */ lui $t2, %hi(D_80162FD0) # $t2, 0x8016
/* 00BC64 8000B064 854A2FD0 */ lh $t2, %lo(D_80162FD0)($t2)
/* 00BC68 8000B068 24010001 */ li $at, 1
/* 00BC6C 8000B06C 3C0D800E */ lui $t5, %hi(gCurrentCourseId)
/* 00BC70 8000B070 1541000E */ bne $t2, $at, .L8000B0AC
/* 00BC74 8000B074 3C0C800E */ lui $t4, %hi(gCCSelection)
/* 00BC78 8000B078 85ADC5A0 */ lh $t5, %lo(gCurrentCourseId)($t5)
/* 00BC7C 8000B07C 8D8CC548 */ lw $t4, %lo(gCCSelection)($t4)
/* 00BC80 8000B080 3C190D01 */ lui $t9, %hi(D_0D0096B8) # $t9, 0xd01
/* 00BC84 8000B084 000D7900 */ sll $t7, $t5, 4
/* 00BC88 8000B088 000C5880 */ sll $t3, $t4, 2
/* 00BC8C 8000B08C 01EBC021 */ addu $t8, $t7, $t3
/* 00BC90 8000B090 273996B8 */ addiu $t9, %lo(D_0D0096B8) # addiu $t9, $t9, -0x6948
/* 00BC94 8000B094 03192021 */ addu $a0, $t8, $t9
/* 00BC98 8000B098 0C026455 */ jal segmented_to_virtual_dupe_2
/* 00BC9C 8000B09C AFA30034 */ sw $v1, 0x34($sp)
/* 00BCA0 8000B0A0 8FA30034 */ lw $v1, 0x34($sp)
/* 00BCA4 8000B0A4 C4520000 */ lwc1 $f18, ($v0)
/* 00BCA8 8000B0A8 E4720000 */ swc1 $f18, ($v1)
.L8000B0AC:
/* 00BCAC 8000B0AC 8FAE002C */ lw $t6, 0x2c($sp)
/* 00BCB0 8000B0B0 24010002 */ li $at, 2
/* 00BCB4 8000B0B4 85C20000 */ lh $v0, ($t6)
/* 00BCB8 8000B0B8 10410004 */ beq $v0, $at, .L8000B0CC
/* 00BCBC 8000B0BC 2401FFFE */ li $at, -2
/* 00BCC0 8000B0C0 10410002 */ beq $v0, $at, .L8000B0CC
/* 00BCC4 8000B0C4 24010003 */ li $at, 3
/* 00BCC8 8000B0C8 14410003 */ bne $v0, $at, .L8000B0D8
.L8000B0CC:
/* 00BCCC 8000B0CC 3C01800F */ lui $at, %hi(D_800ECFC8) # $at, 0x800f
/* 00BCD0 8000B0D0 C424CFC8 */ lwc1 $f4, %lo(D_800ECFC8)($at)
/* 00BCD4 8000B0D4 E4640000 */ swc1 $f4, ($v1)
.L8000B0D8:
/* 00BCD8 8000B0D8 C46A0000 */ lwc1 $f10, ($v1)
/* 00BCDC 8000B0DC 8FAA0040 */ lw $t2, 0x40($sp)
/* 00BCE0 8000B0E0 3C028016 */ lui $v0, %hi(D_8016320C) # $v0, 0x8016
/* 00BCE4 8000B0E4 2442320C */ addiu $v0, %lo(D_8016320C) # addiu $v0, $v0, 0x320c
/* 00BCE8 8000B0E8 E44A0000 */ swc1 $f10, ($v0)
/* 00BCEC 8000B0EC 8D4D00BC */ lw $t5, 0xbc($t2)
/* 00BCF0 8000B0F0 3C01FFDF */ lui $at, (0xFFDFFFFF >> 16) # lui $at, 0xffdf
/* 00BCF4 8000B0F4 3421FFFF */ ori $at, (0xFFDFFFFF & 0xFFFF) # ori $at, $at, 0xffff
/* 00BCF8 8000B0F8 01A16024 */ and $t4, $t5, $at
/* 00BCFC 8000B0FC AD4C00BC */ sw $t4, 0xbc($t2)
/* 00BD00 8000B100 8FAF0038 */ lw $t7, 0x38($sp)
/* 00BD04 8000B104 C4500000 */ lwc1 $f16, ($v0)
/* 00BD08 8000B108 3C018016 */ lui $at, %hi(D_80163210)
/* 00BD0C 8000B10C 002F0821 */ addu $at, $at, $t7
/* 00BD10 8000B110 8FA400D0 */ lw $a0, 0xd0($sp)
/* 00BD14 8000B114 0C004C77 */ jal func_800131DC
/* 00BD18 8000B118 E4303210 */ swc1 $f16, %lo(D_80163210)($at)
/* 00BD1C 8000B11C 3C058016 */ lui $a1, %hi(D_8016320C) # $a1, 0x8016
/* 00BD20 8000B120 8CA5320C */ lw $a1, %lo(D_8016320C)($a1)
/* 00BD24 8000B124 8FA400D0 */ lw $a0, 0xd0($sp)
/* 00BD28 8000B128 0C002109 */ jal func_80008424
/* 00BD2C 8000B12C 8FA60040 */ lw $a2, 0x40($sp)
.L8000B130:
/* 00BD30 8000B130 8FBF0014 */ lw $ra, 0x14($sp)
.L8000B134:
/* 00BD34 8000B134 27BD00D0 */ addiu $sp, $sp, 0xd0
/* 00BD38 8000B138 03E00008 */ jr $ra
/* 00BD3C 8000B13C 00000000 */ nop