mirror of
https://github.com/HarbourMasters/SpaghettiKart
synced 2026-08-19 06:12:03 -04:00
8ab4557b39
* Split asm using autodecompiler * Placed libultra bss and linked more C
197 lines
9.4 KiB
ArmAsm
197 lines
9.4 KiB
ArmAsm
glabel func_8002FE84
|
|
/* 030A84 8002FE84 8C8200BC */ lw $v0, 0xbc($a0)
|
|
/* 030A88 8002FE88 44856000 */ mtc1 $a1, $f12
|
|
/* 030A8C 8002FE8C 24014000 */ li $at, 16384
|
|
/* 030A90 8002FE90 304E4000 */ andi $t6, $v0, 0x4000
|
|
/* 030A94 8002FE94 15C1000D */ bne $t6, $at, .L8002FECC
|
|
/* 030A98 8002FE98 304F0008 */ andi $t7, $v0, 8
|
|
/* 030A9C 8002FE9C C480009C */ lwc1 $f0, 0x9c($a0)
|
|
/* 030AA0 8002FEA0 3C0141C8 */ li $at, 0x41C80000 # 25.000000
|
|
/* 030AA4 8002FEA4 44813000 */ mtc1 $at, $f6
|
|
/* 030AA8 8002FEA8 46000102 */ mul.s $f4, $f0, $f0
|
|
/* 030AAC 8002FEAC 3C01800F */ lui $at, %hi(D_800ED8D8)
|
|
/* 030AB0 8002FEB0 D430D8D8 */ ldc1 $f16, %lo(D_800ED8D8)($at)
|
|
/* 030AB4 8002FEB4 46062203 */ div.s $f8, $f4, $f6
|
|
/* 030AB8 8002FEB8 460042A1 */ cvt.d.s $f10, $f8
|
|
/* 030ABC 8002FEBC 46305482 */ mul.d $f18, $f10, $f16
|
|
/* 030AC0 8002FEC0 46209120 */ cvt.s.d $f4, $f18
|
|
/* 030AC4 8002FEC4 03E00008 */ jr $ra
|
|
/* 030AC8 8002FEC8 E4840098 */ swc1 $f4, 0x98($a0)
|
|
|
|
.L8002FECC:
|
|
/* 030ACC 8002FECC 24010008 */ li $at, 8
|
|
/* 030AD0 8002FED0 55E1000E */ bnel $t7, $at, .L8002FF0C
|
|
/* 030AD4 8002FED4 849800C4 */ lh $t8, 0xc4($a0)
|
|
/* 030AD8 8002FED8 C480009C */ lwc1 $f0, 0x9c($a0)
|
|
/* 030ADC 8002FEDC 3C0141C8 */ li $at, 0x41C80000 # 25.000000
|
|
/* 030AE0 8002FEE0 44814000 */ mtc1 $at, $f8
|
|
/* 030AE4 8002FEE4 46000182 */ mul.s $f6, $f0, $f0
|
|
/* 030AE8 8002FEE8 3C01800F */ lui $at, %hi(D_800ED8E0)
|
|
/* 030AEC 8002FEEC D432D8E0 */ ldc1 $f18, %lo(D_800ED8E0)($at)
|
|
/* 030AF0 8002FEF0 46083283 */ div.s $f10, $f6, $f8
|
|
/* 030AF4 8002FEF4 46005421 */ cvt.d.s $f16, $f10
|
|
/* 030AF8 8002FEF8 46328102 */ mul.d $f4, $f16, $f18
|
|
/* 030AFC 8002FEFC 462021A0 */ cvt.s.d $f6, $f4
|
|
/* 030B00 8002FF00 03E00008 */ jr $ra
|
|
/* 030B04 8002FF04 E4860098 */ swc1 $f6, 0x98($a0)
|
|
|
|
/* 030B08 8002FF08 849800C4 */ lh $t8, 0xc4($a0)
|
|
.L8002FF0C:
|
|
/* 030B0C 8002FF0C 240300B6 */ li $v1, 182
|
|
/* 030B10 8002FF10 E48C0098 */ swc1 $f12, 0x98($a0)
|
|
/* 030B14 8002FF14 0303001A */ div $zero, $t8, $v1
|
|
/* 030B18 8002FF18 14600002 */ bnez $v1, .L8002FF24
|
|
/* 030B1C 8002FF1C 00000000 */ nop
|
|
/* 030B20 8002FF20 0007000D */ break 7
|
|
.L8002FF24:
|
|
/* 030B24 8002FF24 2401FFFF */ li $at, -1
|
|
/* 030B28 8002FF28 14610004 */ bne $v1, $at, .L8002FF3C
|
|
/* 030B2C 8002FF2C 3C018000 */ lui $at, 0x8000
|
|
/* 030B30 8002FF30 17010002 */ bne $t8, $at, .L8002FF3C
|
|
/* 030B34 8002FF34 00000000 */ nop
|
|
/* 030B38 8002FF38 0006000D */ break 6
|
|
.L8002FF3C:
|
|
/* 030B3C 8002FF3C 00001012 */ mflo $v0
|
|
/* 030B40 8002FF40 0002CC00 */ sll $t9, $v0, 0x10
|
|
/* 030B44 8002FF44 00194403 */ sra $t0, $t9, 0x10
|
|
/* 030B48 8002FF48 29010012 */ slti $at, $t0, 0x12
|
|
/* 030B4C 8002FF4C 10200004 */ beqz $at, .L8002FF60
|
|
/* 030B50 8002FF50 01001025 */ move $v0, $t0
|
|
/* 030B54 8002FF54 2841FFEF */ slti $at, $v0, -0x11
|
|
/* 030B58 8002FF58 5020000F */ beql $at, $zero, .L8002FF98
|
|
/* 030B5C 8002FF5C 44829000 */ mtc1 $v0, $f18
|
|
.L8002FF60:
|
|
/* 030B60 8002FF60 44824000 */ mtc1 $v0, $f8
|
|
/* 030B64 8002FF64 3C01800F */ lui $at, %hi(D_800ED8E8)
|
|
/* 030B68 8002FF68 D430D8E8 */ ldc1 $f16, %lo(D_800ED8E8)($at)
|
|
/* 030B6C 8002FF6C 468042A1 */ cvt.d.w $f10, $f8
|
|
/* 030B70 8002FF70 3C01800F */ lui $at, %hi(D_800ED8F0)
|
|
/* 030B74 8002FF74 D424D8F0 */ ldc1 $f4, %lo(D_800ED8F0)($at)
|
|
/* 030B78 8002FF78 44804000 */ mtc1 $zero, $f8
|
|
/* 030B7C 8002FF7C 46305482 */ mul.d $f18, $f10, $f16
|
|
/* 030B80 8002FF80 460042A1 */ cvt.d.s $f10, $f8
|
|
/* 030B84 8002FF84 46249183 */ div.d $f6, $f18, $f4
|
|
/* 030B88 8002FF88 46265400 */ add.d $f16, $f10, $f6
|
|
/* 030B8C 8002FF8C 1000000D */ b .L8002FFC4
|
|
/* 030B90 8002FF90 46208020 */ cvt.s.d $f0, $f16
|
|
/* 030B94 8002FF94 44829000 */ mtc1 $v0, $f18
|
|
.L8002FF98:
|
|
/* 030B98 8002FF98 3C01800F */ lui $at, %hi(D_800ED8F8)
|
|
/* 030B9C 8002FF9C D428D8F8 */ ldc1 $f8, %lo(D_800ED8F8)($at)
|
|
/* 030BA0 8002FFA0 46809121 */ cvt.d.w $f4, $f18
|
|
/* 030BA4 8002FFA4 3C01800F */ lui $at, %hi(D_800ED900)
|
|
/* 030BA8 8002FFA8 D426D900 */ ldc1 $f6, %lo(D_800ED900)($at)
|
|
/* 030BAC 8002FFAC 44809000 */ mtc1 $zero, $f18
|
|
/* 030BB0 8002FFB0 46282282 */ mul.d $f10, $f4, $f8
|
|
/* 030BB4 8002FFB4 46009121 */ cvt.d.s $f4, $f18
|
|
/* 030BB8 8002FFB8 46265403 */ div.d $f16, $f10, $f6
|
|
/* 030BBC 8002FFBC 46302200 */ add.d $f8, $f4, $f16
|
|
/* 030BC0 8002FFC0 46204020 */ cvt.s.d $f0, $f8
|
|
.L8002FFC4:
|
|
/* 030BC4 8002FFC4 3C013F80 */ li $at, 0x3F800000 # 1.000000
|
|
/* 030BC8 8002FFC8 44815000 */ mtc1 $at, $f10
|
|
/* 030BCC 8002FFCC 908201EC */ lbu $v0, 0x1ec($a0)
|
|
/* 030BD0 8002FFD0 24050008 */ li $a1, 8
|
|
/* 030BD4 8002FFD4 46005181 */ sub.s $f6, $f10, $f0
|
|
/* 030BD8 8002FFD8 460C3482 */ mul.s $f18, $f6, $f12
|
|
/* 030BDC 8002FFDC 14A20010 */ bne $a1, $v0, .L80030020
|
|
/* 030BE0 8002FFE0 E4920098 */ swc1 $f18, 0x98($a0)
|
|
/* 030BE4 8002FFE4 94890254 */ lhu $t1, 0x254($a0)
|
|
/* 030BE8 8002FFE8 3C0B800E */ lui $t3, %hi(D_800E2E90)
|
|
/* 030BEC 8002FFEC 00026080 */ sll $t4, $v0, 2
|
|
/* 030BF0 8002FFF0 00095080 */ sll $t2, $t1, 2
|
|
/* 030BF4 8002FFF4 016A5821 */ addu $t3, $t3, $t2
|
|
/* 030BF8 8002FFF8 8D6B2E90 */ lw $t3, %lo(D_800E2E90)($t3)
|
|
/* 030BFC 8002FFFC 3C01800F */ lui $at, %hi(D_800ED908)
|
|
/* 030C00 80030000 D428D908 */ ldc1 $f8, %lo(D_800ED908)($at)
|
|
/* 030C04 80030004 016C6821 */ addu $t5, $t3, $t4
|
|
/* 030C08 80030008 C5A40000 */ lwc1 $f4, ($t5)
|
|
/* 030C0C 8003000C 460001A1 */ cvt.d.s $f6, $f0
|
|
/* 030C10 80030010 46002421 */ cvt.d.s $f16, $f4
|
|
/* 030C14 80030014 46288282 */ mul.d $f10, $f16, $f8
|
|
/* 030C18 80030018 462A3480 */ add.d $f18, $f6, $f10
|
|
/* 030C1C 8003001C 46209020 */ cvt.s.d $f0, $f18
|
|
.L80030020:
|
|
/* 030C20 80030020 908201D4 */ lbu $v0, 0x1d4($a0)
|
|
/* 030C24 80030024 54A20011 */ bnel $a1, $v0, .L8003006C
|
|
/* 030C28 80030028 848900C0 */ lh $t1, 0xc0($a0)
|
|
/* 030C2C 8003002C 948E0254 */ lhu $t6, 0x254($a0)
|
|
/* 030C30 80030030 3C18800E */ lui $t8, %hi(D_800E2E90)
|
|
/* 030C34 80030034 0002C880 */ sll $t9, $v0, 2
|
|
/* 030C38 80030038 000E7880 */ sll $t7, $t6, 2
|
|
/* 030C3C 8003003C 030FC021 */ addu $t8, $t8, $t7
|
|
/* 030C40 80030040 8F182E90 */ lw $t8, %lo(D_800E2E90)($t8)
|
|
/* 030C44 80030044 3C01800F */ lui $at, %hi(D_800ED910)
|
|
/* 030C48 80030048 D428D910 */ ldc1 $f8, %lo(D_800ED910)($at)
|
|
/* 030C4C 8003004C 03194021 */ addu $t0, $t8, $t9
|
|
/* 030C50 80030050 C5040000 */ lwc1 $f4, ($t0)
|
|
/* 030C54 80030054 460002A1 */ cvt.d.s $f10, $f0
|
|
/* 030C58 80030058 46002421 */ cvt.d.s $f16, $f4
|
|
/* 030C5C 8003005C 46288182 */ mul.d $f6, $f16, $f8
|
|
/* 030C60 80030060 46265480 */ add.d $f18, $f10, $f6
|
|
/* 030C64 80030064 46209020 */ cvt.s.d $f0, $f18
|
|
/* 030C68 80030068 848900C0 */ lh $t1, 0xc0($a0)
|
|
.L8003006C:
|
|
/* 030C6C 8003006C 0123001A */ div $zero, $t1, $v1
|
|
/* 030C70 80030070 14600002 */ bnez $v1, .L8003007C
|
|
/* 030C74 80030074 00000000 */ nop
|
|
/* 030C78 80030078 0007000D */ break 7
|
|
.L8003007C:
|
|
/* 030C7C 8003007C 2401FFFF */ li $at, -1
|
|
/* 030C80 80030080 14610004 */ bne $v1, $at, .L80030094
|
|
/* 030C84 80030084 3C018000 */ lui $at, 0x8000
|
|
/* 030C88 80030088 15210002 */ bne $t1, $at, .L80030094
|
|
/* 030C8C 8003008C 00000000 */ nop
|
|
/* 030C90 80030090 0006000D */ break 6
|
|
.L80030094:
|
|
/* 030C94 80030094 00001012 */ mflo $v0
|
|
/* 030C98 80030098 00025023 */ negu $t2, $v0
|
|
/* 030C9C 8003009C 0441000A */ bgez $v0, .L800300C8
|
|
/* 030CA0 800300A0 3C01800F */ lui $at, %hi(D_800ED920)
|
|
/* 030CA4 800300A4 448A2000 */ mtc1 $t2, $f4
|
|
/* 030CA8 800300A8 3C01800F */ lui $at, %hi(D_800ED918)
|
|
/* 030CAC 800300AC D428D918 */ ldc1 $f8, %lo(D_800ED918)($at)
|
|
/* 030CB0 800300B0 46802421 */ cvt.d.w $f16, $f4
|
|
/* 030CB4 800300B4 460001A1 */ cvt.d.s $f6, $f0
|
|
/* 030CB8 800300B8 46288282 */ mul.d $f10, $f16, $f8
|
|
/* 030CBC 800300BC 462A3480 */ add.d $f18, $f6, $f10
|
|
/* 030CC0 800300C0 10000008 */ b .L800300E4
|
|
/* 030CC4 800300C4 46209020 */ cvt.s.d $f0, $f18
|
|
.L800300C8:
|
|
/* 030CC8 800300C8 44822000 */ mtc1 $v0, $f4
|
|
/* 030CCC 800300CC D428D920 */ ldc1 $f8, %lo(D_800ED920)($at)
|
|
/* 030CD0 800300D0 460002A1 */ cvt.d.s $f10, $f0
|
|
/* 030CD4 800300D4 46802421 */ cvt.d.w $f16, $f4
|
|
/* 030CD8 800300D8 46288182 */ mul.d $f6, $f16, $f8
|
|
/* 030CDC 800300DC 46265480 */ add.d $f18, $f10, $f6
|
|
/* 030CE0 800300E0 46209020 */ cvt.s.d $f0, $f18
|
|
.L800300E4:
|
|
/* 030CE4 800300E4 3C01800F */ lui $at, %hi(D_800ED928)
|
|
/* 030CE8 800300E8 D430D928 */ ldc1 $f16, %lo(D_800ED928)($at)
|
|
/* 030CEC 800300EC 46000121 */ cvt.d.s $f4, $f0
|
|
/* 030CF0 800300F0 3C013FF0 */ li $at, 0x3FF00000 # 1.875000
|
|
/* 030CF4 800300F4 46302202 */ mul.d $f8, $f4, $f16
|
|
/* 030CF8 800300F8 44815800 */ mtc1 $at, $f11
|
|
/* 030CFC 800300FC 44805000 */ mtc1 $zero, $f10
|
|
/* 030D00 80030100 460064A1 */ cvt.d.s $f18, $f12
|
|
/* 030D04 80030104 8C8B00BC */ lw $t3, 0xbc($a0)
|
|
/* 030D08 80030108 24010020 */ li $at, 32
|
|
/* 030D0C 8003010C 316C0020 */ andi $t4, $t3, 0x20
|
|
/* 030D10 80030110 46285180 */ add.d $f6, $f10, $f8
|
|
/* 030D14 80030114 46269102 */ mul.d $f4, $f18, $f6
|
|
/* 030D18 80030118 46202420 */ cvt.s.d $f16, $f4
|
|
/* 030D1C 8003011C 1581000A */ bne $t4, $at, .L80030148
|
|
/* 030D20 80030120 E4900098 */ swc1 $f16, 0x98($a0)
|
|
/* 030D24 80030124 3C014334 */ li $at, 0x43340000 # 180.000000
|
|
/* 030D28 80030128 44814000 */ mtc1 $at, $f8
|
|
/* 030D2C 8003012C C48A009C */ lwc1 $f10, 0x9c($a0)
|
|
/* 030D30 80030130 3C0141C8 */ li $at, 0x41C80000 # 25.000000
|
|
/* 030D34 80030134 44813000 */ mtc1 $at, $f6
|
|
/* 030D38 80030138 46085000 */ add.s $f0, $f10, $f8
|
|
/* 030D3C 8003013C 46000482 */ mul.s $f18, $f0, $f0
|
|
/* 030D40 80030140 46069103 */ div.s $f4, $f18, $f6
|
|
/* 030D44 80030144 E4840098 */ swc1 $f4, 0x98($a0)
|
|
.L80030148:
|
|
/* 030D48 80030148 03E00008 */ jr $ra
|
|
/* 030D4C 8003014C 00000000 */ nop
|