mirror of
https://github.com/HarbourMasters/SpaghettiKart
synced 2026-06-30 20:11:40 -04:00
8ab4557b39
* Split asm using autodecompiler * Placed libultra bss and linked more C
183 lines
8.9 KiB
ArmAsm
183 lines
8.9 KiB
ArmAsm
glabel func_8000D438
|
|
/* 00E038 8000D438 3C0E8016 */ lui $t6, %hi(D_801645E0) # $t6, 0x8016
|
|
/* 00E03C 8000D43C 8DCE45E0 */ lw $t6, %lo(D_801645E0)($t6)
|
|
/* 00E040 8000D440 27BDFFB0 */ addiu $sp, $sp, -0x50
|
|
/* 00E044 8000D444 30A7FFFF */ andi $a3, $a1, 0xffff
|
|
/* 00E048 8000D448 00074040 */ sll $t0, $a3, 1
|
|
/* 00E04C 8000D44C AFBF0014 */ sw $ra, 0x14($sp)
|
|
/* 00E050 8000D450 AFA40050 */ sw $a0, 0x50($sp)
|
|
/* 00E054 8000D454 AFA50054 */ sw $a1, 0x54($sp)
|
|
/* 00E058 8000D458 01C87821 */ addu $t7, $t6, $t0
|
|
/* 00E05C 8000D45C 85E30000 */ lh $v1, ($t7)
|
|
/* 00E060 8000D460 24060006 */ li $a2, 6
|
|
/* 00E064 8000D464 AFA60028 */ sw $a2, 0x28($sp)
|
|
/* 00E068 8000D468 AFA8001C */ sw $t0, 0x1c($sp)
|
|
/* 00E06C 8000D46C A7A70056 */ sh $a3, 0x56($sp)
|
|
/* 00E070 8000D470 0C0034EE */ jal func_8000D3B8
|
|
/* 00E074 8000D474 A7A30026 */ sh $v1, 0x26($sp)
|
|
/* 00E078 8000D478 3C02800E */ lui $v0, %hi(gCurrentCourseId)
|
|
/* 00E07C 8000D47C 8442C5A0 */ lh $v0, %lo(gCurrentCourseId)($v0)
|
|
/* 00E080 8000D480 24010004 */ li $at, 4
|
|
/* 00E084 8000D484 87A30026 */ lh $v1, 0x26($sp)
|
|
/* 00E088 8000D488 8FA60028 */ lw $a2, 0x28($sp)
|
|
/* 00E08C 8000D48C 97A70056 */ lhu $a3, 0x56($sp)
|
|
/* 00E090 8000D490 8FA8001C */ lw $t0, 0x1c($sp)
|
|
/* 00E094 8000D494 10410013 */ beq $v0, $at, .L8000D4E4
|
|
/* 00E098 8000D498 E7A0002C */ swc1 $f0, 0x2c($sp)
|
|
/* 00E09C 8000D49C 2401000A */ li $at, 10
|
|
/* 00E0A0 8000D4A0 10410005 */ beq $v0, $at, .L8000D4B8
|
|
/* 00E0A4 8000D4A4 24010014 */ li $at, 20
|
|
/* 00E0A8 8000D4A8 54410006 */ bnel $v0, $at, .L8000D4C4
|
|
/* 00E0AC 8000D4AC 28610006 */ slti $at, $v1, 6
|
|
/* 00E0B0 8000D4B0 1000000C */ b .L8000D4E4
|
|
/* 00E0B4 8000D4B4 24060001 */ li $a2, 1
|
|
.L8000D4B8:
|
|
/* 00E0B8 8000D4B8 1000000A */ b .L8000D4E4
|
|
/* 00E0BC 8000D4BC 24060007 */ li $a2, 7
|
|
/* 00E0C0 8000D4C0 28610006 */ slti $at, $v1, 6
|
|
.L8000D4C4:
|
|
/* 00E0C4 8000D4C4 50200004 */ beql $at, $zero, .L8000D4D8
|
|
/* 00E0C8 8000D4C8 28610015 */ slti $at, $v1, 0x15
|
|
/* 00E0CC 8000D4CC 10000005 */ b .L8000D4E4
|
|
/* 00E0D0 8000D4D0 24060008 */ li $a2, 8
|
|
/* 00E0D4 8000D4D4 28610015 */ slti $at, $v1, 0x15
|
|
.L8000D4D8:
|
|
/* 00E0D8 8000D4D8 54200003 */ bnel $at, $zero, .L8000D4E8
|
|
/* 00E0DC 8000D4DC 28C10008 */ slti $at, $a2, 8
|
|
/* 00E0E0 8000D4E0 24060014 */ li $a2, 20
|
|
.L8000D4E4:
|
|
/* 00E0E4 8000D4E4 28C10008 */ slti $at, $a2, 8
|
|
.L8000D4E8:
|
|
/* 00E0E8 8000D4E8 14200020 */ bnez $at, .L8000D56C
|
|
/* 00E0EC 8000D4EC 8FA40050 */ lw $a0, 0x50($sp)
|
|
/* 00E0F0 8000D4F0 8FB80050 */ lw $t8, 0x50($sp)
|
|
/* 00E0F4 8000D4F4 3C018016 */ lui $at, %hi(D_80163068)
|
|
/* 00E0F8 8000D4F8 3C098016 */ lui $t1, %hi(D_801631D8) # $t1, 0x8016
|
|
/* 00E0FC 8000D4FC 0018C880 */ sll $t9, $t8, 2
|
|
/* 00E100 8000D500 00390821 */ addu $at, $at, $t9
|
|
/* 00E104 8000D504 C4203068 */ lwc1 $f0, %lo(D_80163068)($at)
|
|
/* 00E108 8000D508 3C013F40 */ li $at, 0x3F400000 # 0.750000
|
|
/* 00E10C 8000D50C 44812000 */ mtc1 $at, $f4
|
|
/* 00E110 8000D510 3C01BF40 */ li $at, 0xBF400000 # -0.750000
|
|
/* 00E114 8000D514 44813000 */ mtc1 $at, $f6
|
|
/* 00E118 8000D518 4600203C */ c.lt.s $f4, $f0
|
|
/* 00E11C 8000D51C 3C0C8016 */ lui $t4, %hi(D_801631D8) # $t4, 0x8016
|
|
/* 00E120 8000D520 45020008 */ bc1fl .L8000D544
|
|
/* 00E124 8000D524 4606003C */ c.lt.s $f0, $f6
|
|
/* 00E128 8000D528 8D2931D8 */ lw $t1, %lo(D_801631D8)($t1)
|
|
/* 00E12C 8000D52C 01285021 */ addu $t2, $t1, $t0
|
|
/* 00E130 8000D530 854B0000 */ lh $t3, ($t2)
|
|
/* 00E134 8000D534 55600003 */ bnel $t3, $zero, .L8000D544
|
|
/* 00E138 8000D538 4606003C */ c.lt.s $f0, $f6
|
|
/* 00E13C 8000D53C 24060007 */ li $a2, 7
|
|
/* 00E140 8000D540 4606003C */ c.lt.s $f0, $f6
|
|
.L8000D544:
|
|
/* 00E144 8000D544 00000000 */ nop
|
|
/* 00E148 8000D548 45020009 */ bc1fl .L8000D570
|
|
/* 00E14C 8000D54C AFA60028 */ sw $a2, 0x28($sp)
|
|
/* 00E150 8000D550 8D8C31D8 */ lw $t4, %lo(D_801631D8)($t4)
|
|
/* 00E154 8000D554 24010001 */ li $at, 1
|
|
/* 00E158 8000D558 01886821 */ addu $t5, $t4, $t0
|
|
/* 00E15C 8000D55C 85AE0000 */ lh $t6, ($t5)
|
|
/* 00E160 8000D560 55C10003 */ bnel $t6, $at, .L8000D570
|
|
/* 00E164 8000D564 AFA60028 */ sw $a2, 0x28($sp)
|
|
/* 00E168 8000D568 24060007 */ li $a2, 7
|
|
.L8000D56C:
|
|
/* 00E16C 8000D56C AFA60028 */ sw $a2, 0x28($sp)
|
|
.L8000D570:
|
|
/* 00E170 8000D570 0C002E08 */ jal func_8000B820
|
|
/* 00E174 8000D574 A7A70056 */ sh $a3, 0x56($sp)
|
|
/* 00E178 8000D578 24010001 */ li $at, 1
|
|
/* 00E17C 8000D57C 8FA60028 */ lw $a2, 0x28($sp)
|
|
/* 00E180 8000D580 14410002 */ bne $v0, $at, .L8000D58C
|
|
/* 00E184 8000D584 97A70056 */ lhu $a3, 0x56($sp)
|
|
/* 00E188 8000D588 24060005 */ li $a2, 5
|
|
.L8000D58C:
|
|
/* 00E18C 8000D58C 8FAF0050 */ lw $t7, 0x50($sp)
|
|
/* 00E190 8000D590 3C198016 */ lui $t9, %hi(D_80163380) # $t9, 0x8016
|
|
/* 00E194 8000D594 27393380 */ addiu $t9, %lo(D_80163380) # addiu $t9, $t9, 0x3380
|
|
/* 00E198 8000D598 000FC040 */ sll $t8, $t7, 1
|
|
/* 00E19C 8000D59C 03191821 */ addu $v1, $t8, $t9
|
|
/* 00E1A0 8000D5A0 84620000 */ lh $v0, ($v1)
|
|
/* 00E1A4 8000D5A4 3C0C8016 */ lui $t4, %hi(D_80164430) # $t4, 0x8016
|
|
/* 00E1A8 8000D5A8 0046082A */ slt $at, $v0, $a2
|
|
/* 00E1AC 8000D5AC 50200005 */ beql $at, $zero, .L8000D5C4
|
|
/* 00E1B0 8000D5B0 00C2082A */ slt $at, $a2, $v0
|
|
/* 00E1B4 8000D5B4 24490001 */ addiu $t1, $v0, 1
|
|
/* 00E1B8 8000D5B8 A4690000 */ sh $t1, ($v1)
|
|
/* 00E1BC 8000D5BC 84620000 */ lh $v0, ($v1)
|
|
/* 00E1C0 8000D5C0 00C2082A */ slt $at, $a2, $v0
|
|
.L8000D5C4:
|
|
/* 00E1C4 8000D5C4 10200004 */ beqz $at, .L8000D5D8
|
|
/* 00E1C8 8000D5C8 3C068016 */ lui $a2, %hi(D_8016344A) # $a2, 0x8016
|
|
/* 00E1CC 8000D5CC 244AFFFF */ addiu $t2, $v0, -1
|
|
/* 00E1D0 8000D5D0 A46A0000 */ sh $t2, ($v1)
|
|
/* 00E1D4 8000D5D4 84620000 */ lh $v0, ($v1)
|
|
.L8000D5D8:
|
|
/* 00E1D8 8000D5D8 958C4430 */ lhu $t4, %lo(D_80164430)($t4)
|
|
/* 00E1DC 8000D5DC 00475821 */ addu $t3, $v0, $a3
|
|
/* 00E1E0 8000D5E0 8FA5002C */ lw $a1, 0x2c($sp)
|
|
/* 00E1E4 8000D5E4 016C001A */ div $zero, $t3, $t4
|
|
/* 00E1E8 8000D5E8 00006810 */ mfhi $t5
|
|
/* 00E1EC 8000D5EC 31A4FFFF */ andi $a0, $t5, 0xffff
|
|
/* 00E1F0 8000D5F0 15800002 */ bnez $t4, .L8000D5FC
|
|
/* 00E1F4 8000D5F4 00000000 */ nop
|
|
/* 00E1F8 8000D5F8 0007000D */ break 7
|
|
.L8000D5FC:
|
|
/* 00E1FC 8000D5FC 2401FFFF */ li $at, -1
|
|
/* 00E200 8000D600 15810004 */ bne $t4, $at, .L8000D614
|
|
/* 00E204 8000D604 3C018000 */ lui $at, 0x8000
|
|
/* 00E208 8000D608 15610002 */ bne $t3, $at, .L8000D614
|
|
/* 00E20C 8000D60C 00000000 */ nop
|
|
/* 00E210 8000D610 0006000D */ break 6
|
|
.L8000D614:
|
|
/* 00E214 8000D614 A7AD0056 */ sh $t5, 0x56($sp)
|
|
/* 00E218 8000D618 0C002EF6 */ jal func_8000BBD8
|
|
/* 00E21C 8000D61C 84C6344A */ lh $a2, %lo(D_8016344A)($a2)
|
|
/* 00E220 8000D620 97A70056 */ lhu $a3, 0x56($sp)
|
|
/* 00E224 8000D624 3C0F8016 */ lui $t7, %hi(D_80164430) # $t7, 0x8016
|
|
/* 00E228 8000D628 95EF4430 */ lhu $t7, %lo(D_80164430)($t7)
|
|
/* 00E22C 8000D62C 24EE0001 */ addiu $t6, $a3, 1
|
|
/* 00E230 8000D630 3C028016 */ lui $v0, %hi(D_80162FA0) # $v0, 0x8016
|
|
/* 00E234 8000D634 01CF001A */ div $zero, $t6, $t7
|
|
/* 00E238 8000D638 24422FA0 */ addiu $v0, %lo(D_80162FA0) # addiu $v0, $v0, 0x2fa0
|
|
/* 00E23C 8000D63C C4480000 */ lwc1 $f8, ($v0)
|
|
/* 00E240 8000D640 C44A0008 */ lwc1 $f10, 8($v0)
|
|
/* 00E244 8000D644 0000C010 */ mfhi $t8
|
|
/* 00E248 8000D648 3C068016 */ lui $a2, %hi(D_8016344A) # $a2, 0x8016
|
|
/* 00E24C 8000D64C 84C6344A */ lh $a2, %lo(D_8016344A)($a2)
|
|
/* 00E250 8000D650 3304FFFF */ andi $a0, $t8, 0xffff
|
|
/* 00E254 8000D654 8FA5002C */ lw $a1, 0x2c($sp)
|
|
/* 00E258 8000D658 E7A80048 */ swc1 $f8, 0x48($sp)
|
|
/* 00E25C 8000D65C E7AA0044 */ swc1 $f10, 0x44($sp)
|
|
/* 00E260 8000D660 15E00002 */ bnez $t7, .L8000D66C
|
|
/* 00E264 8000D664 00000000 */ nop
|
|
/* 00E268 8000D668 0007000D */ break 7
|
|
.L8000D66C:
|
|
/* 00E26C 8000D66C 2401FFFF */ li $at, -1
|
|
/* 00E270 8000D670 15E10004 */ bne $t7, $at, .L8000D684
|
|
/* 00E274 8000D674 3C018000 */ lui $at, 0x8000
|
|
/* 00E278 8000D678 15C10002 */ bne $t6, $at, .L8000D684
|
|
/* 00E27C 8000D67C 00000000 */ nop
|
|
/* 00E280 8000D680 0006000D */ break 6
|
|
.L8000D684:
|
|
/* 00E284 8000D684 0C002EF6 */ jal func_8000BBD8
|
|
/* 00E288 8000D688 00000000 */ nop
|
|
/* 00E28C 8000D68C 3C028016 */ lui $v0, %hi(D_80162FA0) # $v0, 0x8016
|
|
/* 00E290 8000D690 24422FA0 */ addiu $v0, %lo(D_80162FA0) # addiu $v0, $v0, 0x2fa0
|
|
/* 00E294 8000D694 C4400000 */ lwc1 $f0, ($v0)
|
|
/* 00E298 8000D698 C7B00048 */ lwc1 $f16, 0x48($sp)
|
|
/* 00E29C 8000D69C C4420008 */ lwc1 $f2, 8($v0)
|
|
/* 00E2A0 8000D6A0 C7A60044 */ lwc1 $f6, 0x44($sp)
|
|
/* 00E2A4 8000D6A4 46008480 */ add.s $f18, $f16, $f0
|
|
/* 00E2A8 8000D6A8 3C013F00 */ li $at, 0x3F000000 # 0.500000
|
|
/* 00E2AC 8000D6AC 44816000 */ mtc1 $at, $f12
|
|
/* 00E2B0 8000D6B0 46023200 */ add.s $f8, $f6, $f2
|
|
/* 00E2B4 8000D6B4 8FBF0014 */ lw $ra, 0x14($sp)
|
|
/* 00E2B8 8000D6B8 460C9102 */ mul.s $f4, $f18, $f12
|
|
/* 00E2BC 8000D6BC 27BD0050 */ addiu $sp, $sp, 0x50
|
|
/* 00E2C0 8000D6C0 460C4282 */ mul.s $f10, $f8, $f12
|
|
/* 00E2C4 8000D6C4 E4440000 */ swc1 $f4, ($v0)
|
|
/* 00E2C8 8000D6C8 03E00008 */ jr $ra
|
|
/* 00E2CC 8000D6CC E44A0008 */ swc1 $f10, 8($v0)
|