mirror of
https://github.com/HarbourMasters/SpaghettiKart
synced 2026-07-01 12:28:56 -04:00
8ab4557b39
* Split asm using autodecompiler * Placed libultra bss and linked more C
223 lines
10 KiB
ArmAsm
223 lines
10 KiB
ArmAsm
glabel func_80010480
|
|
/* 011080 80010480 3C0E800E */ lui $t6, %hi(gCurrentCourseId)
|
|
/* 011084 80010484 85CEC5A0 */ lh $t6, %lo(gCurrentCourseId)($t6)
|
|
/* 011088 80010488 3C01800E */ lui $at, %hi(D_800DCA4C)
|
|
/* 01108C 8001048C 27BDFF98 */ addiu $sp, $sp, -0x68
|
|
/* 011090 80010490 000E7880 */ sll $t7, $t6, 2
|
|
/* 011094 80010494 002F0821 */ addu $at, $at, $t7
|
|
/* 011098 80010498 C424CA4C */ lwc1 $f4, %lo(D_800DCA4C)($at)
|
|
/* 01109C 8001049C AFA40068 */ sw $a0, 0x68($sp)
|
|
/* 0110A0 800104A0 8FA80068 */ lw $t0, 0x68($sp)
|
|
/* 0110A4 800104A4 4600218D */ trunc.w.s $f6, $f4
|
|
/* 0110A8 800104A8 3C038016 */ lui $v1, %hi(D_801645C8) # 0x8016
|
|
/* 0110AC 800104AC 00084840 */ sll $t1, $t0, 1
|
|
/* 0110B0 800104B0 AFBF0014 */ sw $ra, 0x14($sp)
|
|
/* 0110B4 800104B4 44193000 */ mfc1 $t9, $f6
|
|
/* 0110B8 800104B8 AFA5006C */ sw $a1, 0x6c($sp)
|
|
/* 0110BC 800104BC 3C013FE0 */ li $at, 0x3FE00000 # 1.750000
|
|
/* 0110C0 800104C0 07210004 */ bgez $t9, .L800104D4
|
|
/* 0110C4 800104C4 00691821 */ addu $v1, $v1, $t1
|
|
/* 0110C8 800104C8 44800000 */ mtc1 $zero, $f0
|
|
/* 0110CC 800104CC 100000BA */ b .L800107B8
|
|
/* 0110D0 800104D0 8FBF0014 */ lw $ra, 0x14($sp)
|
|
.L800104D4:
|
|
/* 0110D4 800104D4 946345C8 */ lhu $v1, %lo(D_801645C8)($v1) # 0x45c8($v1)
|
|
/* 0110D8 800104D8 97AB006E */ lhu $t3, 0x6e($sp)
|
|
/* 0110DC 800104DC 00085080 */ sll $t2, $t0, 2
|
|
/* 0110E0 800104E0 3C028016 */ lui $v0, %hi(D_80164550) # 0x8016
|
|
/* 0110E4 800104E4 256F0001 */ addiu $t7, $t3, 1
|
|
/* 0110E8 800104E8 01E3001A */ div $zero, $t7, $v1
|
|
/* 0110EC 800104EC 0000C010 */ mfhi $t8
|
|
/* 0110F0 800104F0 004A1021 */ addu $v0, $v0, $t2
|
|
/* 0110F4 800104F4 01602025 */ move $a0, $t3
|
|
/* 0110F8 800104F8 248A0002 */ addiu $t2, $a0, 2
|
|
/* 0110FC 800104FC 0143001A */ div $zero, $t2, $v1
|
|
/* 011100 80010500 8C424550 */ lw $v0, %lo(D_80164550)($v0) # 0x4550($v0)
|
|
/* 011104 80010504 000B60C0 */ sll $t4, $t3, 3
|
|
/* 011108 80010508 44811800 */ mtc1 $at, $f3
|
|
/* 01110C 8001050C 01823021 */ addu $a2, $t4, $v0
|
|
/* 011110 80010510 00006010 */ mfhi $t4
|
|
/* 011114 80010514 0018C8C0 */ sll $t9, $t8, 3
|
|
/* 011118 80010518 84CD0000 */ lh $t5, ($a2)
|
|
/* 01111C 8001051C 84CE0004 */ lh $t6, 4($a2)
|
|
/* 011120 80010520 03223821 */ addu $a3, $t9, $v0
|
|
/* 011124 80010524 448D4000 */ mtc1 $t5, $f8
|
|
/* 011128 80010528 000C68C0 */ sll $t5, $t4, 3
|
|
/* 01112C 8001052C 448E5000 */ mtc1 $t6, $f10
|
|
/* 011130 80010530 01A22821 */ addu $a1, $t5, $v0
|
|
/* 011134 80010534 84E90000 */ lh $t1, ($a3)
|
|
/* 011138 80010538 84AE0000 */ lh $t6, ($a1)
|
|
/* 01113C 8001053C 468043A0 */ cvt.s.w $f14, $f8
|
|
/* 011140 80010540 44892000 */ mtc1 $t1, $f4
|
|
/* 011144 80010544 448E4000 */ mtc1 $t6, $f8
|
|
/* 011148 80010548 84E80004 */ lh $t0, 4($a3)
|
|
/* 01114C 8001054C 84AB0004 */ lh $t3, 4($a1)
|
|
/* 011150 80010550 468024A0 */ cvt.s.w $f18, $f4
|
|
/* 011154 80010554 44883000 */ mtc1 $t0, $f6
|
|
/* 011158 80010558 44801000 */ mtc1 $zero, $f2
|
|
/* 01115C 8001055C 46804320 */ cvt.s.w $f12, $f8
|
|
/* 011160 80010560 46803020 */ cvt.s.w $f0, $f6
|
|
/* 011164 80010564 46805420 */ cvt.s.w $f16, $f10
|
|
/* 011168 80010568 14600002 */ bnez $v1, .L80010574
|
|
/* 01116C 8001056C 00000000 */ nop
|
|
/* 011170 80010570 0007000D */ break 7
|
|
.L80010574:
|
|
/* 011174 80010574 2401FFFF */ li $at, -1
|
|
/* 011178 80010578 14610004 */ bne $v1, $at, .L8001058C
|
|
/* 01117C 8001057C 3C018000 */ lui $at, 0x8000
|
|
/* 011180 80010580 15E10002 */ bne $t7, $at, .L8001058C
|
|
/* 011184 80010584 00000000 */ nop
|
|
/* 011188 80010588 0006000D */ break 6
|
|
.L8001058C:
|
|
/* 01118C 8001058C 248F0003 */ addiu $t7, $a0, 3
|
|
/* 011190 80010590 01E3001A */ div $zero, $t7, $v1
|
|
/* 011194 80010594 0000C010 */ mfhi $t8
|
|
/* 011198 80010598 460C9180 */ add.s $f6, $f18, $f12
|
|
/* 01119C 8001059C 14600002 */ bnez $v1, .L800105A8
|
|
/* 0111A0 800105A0 00000000 */ nop
|
|
/* 0111A4 800105A4 0007000D */ break 7
|
|
.L800105A8:
|
|
/* 0111A8 800105A8 2401FFFF */ li $at, -1
|
|
/* 0111AC 800105AC 14610004 */ bne $v1, $at, .L800105C0
|
|
/* 0111B0 800105B0 3C018000 */ lui $at, 0x8000
|
|
/* 0111B4 800105B4 15410002 */ bne $t2, $at, .L800105C0
|
|
/* 0111B8 800105B8 00000000 */ nop
|
|
/* 0111BC 800105BC 0006000D */ break 6
|
|
.L800105C0:
|
|
/* 0111C0 800105C0 248A0004 */ addiu $t2, $a0, 4
|
|
/* 0111C4 800105C4 0143001A */ div $zero, $t2, $v1
|
|
/* 0111C8 800105C8 00006010 */ mfhi $t4
|
|
/* 0111CC 800105CC 448B5000 */ mtc1 $t3, $f10
|
|
/* 0111D0 800105D0 46003221 */ cvt.d.s $f8, $f6
|
|
/* 0111D4 800105D4 0018C8C0 */ sll $t9, $t8, 3
|
|
/* 0111D8 800105D8 46805120 */ cvt.s.w $f4, $f10
|
|
/* 0111DC 800105DC 46224282 */ mul.d $f10, $f8, $f2
|
|
/* 0111E0 800105E0 03222821 */ addu $a1, $t9, $v0
|
|
/* 0111E4 800105E4 000C68C0 */ sll $t5, $t4, 3
|
|
/* 0111E8 800105E8 01A23021 */ addu $a2, $t5, $v0
|
|
/* 0111EC 800105EC E7A40040 */ swc1 $f4, 0x40($sp)
|
|
/* 0111F0 800105F0 46007121 */ cvt.d.s $f4, $f14
|
|
/* 0111F4 800105F4 46245181 */ sub.d $f6, $f10, $f4
|
|
/* 0111F8 800105F8 C7AA0040 */ lwc1 $f10, 0x40($sp)
|
|
/* 0111FC 800105FC 460A0100 */ add.s $f4, $f0, $f10
|
|
/* 011200 80010600 46203220 */ cvt.s.d $f8, $f6
|
|
/* 011204 80010604 460021A1 */ cvt.d.s $f6, $f4
|
|
/* 011208 80010608 46008121 */ cvt.d.s $f4, $f16
|
|
/* 01120C 8001060C 46223282 */ mul.d $f10, $f6, $f2
|
|
/* 011210 80010610 E7A8003C */ swc1 $f8, 0x3c($sp)
|
|
/* 011214 80010614 46245181 */ sub.d $f6, $f10, $f4
|
|
/* 011218 80010618 462032A0 */ cvt.s.d $f10, $f6
|
|
/* 01121C 8001061C E7AA0038 */ swc1 $f10, 0x38($sp)
|
|
/* 011220 80010620 14600002 */ bnez $v1, .L8001062C
|
|
/* 011224 80010624 00000000 */ nop
|
|
/* 011228 80010628 0007000D */ break 7
|
|
.L8001062C:
|
|
/* 01122C 8001062C 2401FFFF */ li $at, -1
|
|
/* 011230 80010630 14610004 */ bne $v1, $at, .L80010644
|
|
/* 011234 80010634 3C018000 */ lui $at, 0x8000
|
|
/* 011238 80010638 15E10002 */ bne $t7, $at, .L80010644
|
|
/* 01123C 8001063C 00000000 */ nop
|
|
/* 011240 80010640 0006000D */ break 6
|
|
.L80010644:
|
|
/* 011244 80010644 248F0005 */ addiu $t7, $a0, 5
|
|
/* 011248 80010648 01E3001A */ div $zero, $t7, $v1
|
|
/* 01124C 8001064C 84A90000 */ lh $t1, ($a1)
|
|
/* 011250 80010650 84A80004 */ lh $t0, 4($a1)
|
|
/* 011254 80010654 84CB0004 */ lh $t3, 4($a2)
|
|
/* 011258 80010658 44892000 */ mtc1 $t1, $f4
|
|
/* 01125C 8001065C 44883000 */ mtc1 $t0, $f6
|
|
/* 011260 80010660 84CE0000 */ lh $t6, ($a2)
|
|
/* 011264 80010664 468023A0 */ cvt.s.w $f14, $f4
|
|
/* 011268 80010668 448B2000 */ mtc1 $t3, $f4
|
|
/* 01126C 8001066C 0000C010 */ mfhi $t8
|
|
/* 011270 80010670 0018C8C0 */ sll $t9, $t8, 3
|
|
/* 011274 80010674 448E5000 */ mtc1 $t6, $f10
|
|
/* 011278 80010678 46803420 */ cvt.s.w $f16, $f6
|
|
/* 01127C 8001067C 03223821 */ addu $a3, $t9, $v0
|
|
/* 011280 80010680 14600002 */ bnez $v1, .L8001068C
|
|
/* 011284 80010684 00000000 */ nop
|
|
/* 011288 80010688 0007000D */ break 7
|
|
.L8001068C:
|
|
/* 01128C 8001068C 2401FFFF */ li $at, -1
|
|
/* 011290 80010690 14610004 */ bne $v1, $at, .L800106A4
|
|
/* 011294 80010694 3C018000 */ lui $at, 0x8000
|
|
/* 011298 80010698 15410002 */ bne $t2, $at, .L800106A4
|
|
/* 01129C 8001069C 00000000 */ nop
|
|
/* 0112A0 800106A0 0006000D */ break 6
|
|
.L800106A4:
|
|
/* 0112A4 800106A4 468021A0 */ cvt.s.w $f6, $f4
|
|
/* 0112A8 800106A8 468054A0 */ cvt.s.w $f18, $f10
|
|
/* 0112AC 800106AC E7A60048 */ swc1 $f6, 0x48($sp)
|
|
/* 0112B0 800106B0 84E90000 */ lh $t1, ($a3)
|
|
/* 0112B4 800106B4 14600002 */ bnez $v1, .L800106C0
|
|
/* 0112B8 800106B8 00000000 */ nop
|
|
/* 0112BC 800106BC 0007000D */ break 7
|
|
.L800106C0:
|
|
/* 0112C0 800106C0 2401FFFF */ li $at, -1
|
|
/* 0112C4 800106C4 14610004 */ bne $v1, $at, .L800106D8
|
|
/* 0112C8 800106C8 3C018000 */ lui $at, 0x8000
|
|
/* 0112CC 800106CC 15E10002 */ bne $t7, $at, .L800106D8
|
|
/* 0112D0 800106D0 00000000 */ nop
|
|
/* 0112D4 800106D4 0006000D */ break 6
|
|
.L800106D8:
|
|
/* 0112D8 800106D8 44895000 */ mtc1 $t1, $f10
|
|
/* 0112DC 800106DC 00000000 */ nop
|
|
/* 0112E0 800106E0 46805120 */ cvt.s.w $f4, $f10
|
|
/* 0112E4 800106E4 E7A40044 */ swc1 $f4, 0x44($sp)
|
|
/* 0112E8 800106E8 84E80004 */ lh $t0, 4($a3)
|
|
/* 0112EC 800106EC 46084102 */ mul.s $f4, $f8, $f8
|
|
/* 0112F0 800106F0 E7B2004C */ swc1 $f18, 0x4c($sp)
|
|
/* 0112F4 800106F4 44883000 */ mtc1 $t0, $f6
|
|
/* 0112F8 800106F8 E7B00050 */ swc1 $f16, 0x50($sp)
|
|
/* 0112FC 800106FC E7AE0054 */ swc1 $f14, 0x54($sp)
|
|
/* 011300 80010700 468032A0 */ cvt.s.w $f10, $f6
|
|
/* 011304 80010704 C7A60038 */ lwc1 $f6, 0x38($sp)
|
|
/* 011308 80010708 E7AA0040 */ swc1 $f10, 0x40($sp)
|
|
/* 01130C 8001070C 46063282 */ mul.s $f10, $f6, $f6
|
|
/* 011310 80010710 0C033850 */ jal sqrtf
|
|
/* 011314 80010714 46045300 */ add.s $f12, $f10, $f4
|
|
/* 011318 80010718 C7B2004C */ lwc1 $f18, 0x4c($sp)
|
|
/* 01131C 8001071C C7A80044 */ lwc1 $f8, 0x44($sp)
|
|
/* 011320 80010720 3C013FE0 */ li $at, 0x3FE00000 # 1.750000
|
|
/* 011324 80010724 44811800 */ mtc1 $at, $f3
|
|
/* 011328 80010728 46089180 */ add.s $f6, $f18, $f8
|
|
/* 01132C 8001072C 44801000 */ mtc1 $zero, $f2
|
|
/* 011330 80010730 C7AE0054 */ lwc1 $f14, 0x54($sp)
|
|
/* 011334 80010734 C7B00050 */ lwc1 $f16, 0x50($sp)
|
|
/* 011338 80010738 460032A1 */ cvt.d.s $f10, $f6
|
|
/* 01133C 8001073C 46007221 */ cvt.d.s $f8, $f14
|
|
/* 011340 80010740 46225102 */ mul.d $f4, $f10, $f2
|
|
/* 011344 80010744 E7A00020 */ swc1 $f0, 0x20($sp)
|
|
/* 011348 80010748 46282181 */ sub.d $f6, $f4, $f8
|
|
/* 01134C 8001074C C7A80040 */ lwc1 $f8, 0x40($sp)
|
|
/* 011350 80010750 C7A40048 */ lwc1 $f4, 0x48($sp)
|
|
/* 011354 80010754 462032A0 */ cvt.s.d $f10, $f6
|
|
/* 011358 80010758 46082180 */ add.s $f6, $f4, $f8
|
|
/* 01135C 8001075C E7AA001C */ swc1 $f10, 0x1c($sp)
|
|
/* 011360 80010760 46003121 */ cvt.d.s $f4, $f6
|
|
/* 011364 80010764 460081A1 */ cvt.d.s $f6, $f16
|
|
/* 011368 80010768 46222202 */ mul.d $f8, $f4, $f2
|
|
/* 01136C 8001076C 46264101 */ sub.d $f4, $f8, $f6
|
|
/* 011370 80010770 460A5182 */ mul.s $f6, $f10, $f10
|
|
/* 011374 80010774 46202220 */ cvt.s.d $f8, $f4
|
|
/* 011378 80010778 46084102 */ mul.s $f4, $f8, $f8
|
|
/* 01137C 8001077C E7A80018 */ swc1 $f8, 0x18($sp)
|
|
/* 011380 80010780 0C033850 */ jal sqrtf
|
|
/* 011384 80010784 46043300 */ add.s $f12, $f6, $f4
|
|
/* 011388 80010788 C7AA0038 */ lwc1 $f10, 0x38($sp)
|
|
/* 01138C 8001078C C7A8001C */ lwc1 $f8, 0x1c($sp)
|
|
/* 011390 80010790 C7A4003C */ lwc1 $f4, 0x3c($sp)
|
|
/* 011394 80010794 46085182 */ mul.s $f6, $f10, $f8
|
|
/* 011398 80010798 C7AA0018 */ lwc1 $f10, 0x18($sp)
|
|
/* 01139C 8001079C 460A2202 */ mul.s $f8, $f4, $f10
|
|
/* 0113A0 800107A0 46083101 */ sub.s $f4, $f6, $f8
|
|
/* 0113A4 800107A4 C7A60020 */ lwc1 $f6, 0x20($sp)
|
|
/* 0113A8 800107A8 46060202 */ mul.s $f8, $f0, $f6
|
|
/* 0113AC 800107AC 46002287 */ neg.s $f10, $f4
|
|
/* 0113B0 800107B0 46085003 */ div.s $f0, $f10, $f8
|
|
/* 0113B4 800107B4 8FBF0014 */ lw $ra, 0x14($sp)
|
|
.L800107B8:
|
|
/* 0113B8 800107B8 27BD0068 */ addiu $sp, $sp, 0x68
|
|
/* 0113BC 800107BC 03E00008 */ jr $ra
|
|
/* 0113C0 800107C0 00000000 */ nop
|