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
211 lines
9.7 KiB
ArmAsm
211 lines
9.7 KiB
ArmAsm
glabel func_8002CD48
|
|
/* 02D948 8002CD48 27BDFFE0 */ addiu $sp, $sp, -0x20
|
|
/* 02D94C 8002CD4C AFBF001C */ sw $ra, 0x1c($sp)
|
|
/* 02D950 8002CD50 AFB00018 */ sw $s0, 0x18($sp)
|
|
/* 02D954 8002CD54 AFA50024 */ sw $a1, 0x24($sp)
|
|
/* 02D958 8002CD58 AFA60028 */ sw $a2, 0x28($sp)
|
|
/* 02D95C 8002CD5C 848200CA */ lh $v0, 0xca($a0)
|
|
/* 02D960 8002CD60 00067600 */ sll $t6, $a2, 0x18
|
|
/* 02D964 8002CD64 24010002 */ li $at, 2
|
|
/* 02D968 8002CD68 30580002 */ andi $t8, $v0, 2
|
|
/* 02D96C 8002CD6C 000E3603 */ sra $a2, $t6, 0x18
|
|
/* 02D970 8002CD70 13010004 */ beq $t8, $at, .L8002CD84
|
|
/* 02D974 8002CD74 00808025 */ move $s0, $a0
|
|
/* 02D978 8002CD78 30590008 */ andi $t9, $v0, 8
|
|
/* 02D97C 8002CD7C 24010008 */ li $at, 8
|
|
/* 02D980 8002CD80 17210003 */ bne $t9, $at, .L8002CD90
|
|
.L8002CD84:
|
|
/* 02D984 8002CD84 02002025 */ move $a0, $s0
|
|
/* 02D988 8002CD88 0C02425C */ jal func_80090970
|
|
/* 02D98C 8002CD8C 83A50027 */ lb $a1, 0x27($sp)
|
|
.L8002CD90:
|
|
/* 02D990 8002CD90 8E0800BC */ lw $t0, 0xbc($s0)
|
|
/* 02D994 8002CD94 24010800 */ li $at, 2048
|
|
/* 02D998 8002CD98 31090800 */ andi $t1, $t0, 0x800
|
|
/* 02D99C 8002CD9C 15210003 */ bne $t1, $at, .L8002CDAC
|
|
/* 02D9A0 8002CDA0 02002025 */ move $a0, $s0
|
|
/* 02D9A4 8002CDA4 0C0233AC */ jal func_8008CEB0
|
|
/* 02D9A8 8002CDA8 83A50027 */ lb $a1, 0x27($sp)
|
|
.L8002CDAC:
|
|
/* 02D9AC 8002CDAC 860A0044 */ lh $t2, 0x44($s0)
|
|
/* 02D9B0 8002CDB0 314B4000 */ andi $t3, $t2, 0x4000
|
|
/* 02D9B4 8002CDB4 11600003 */ beqz $t3, .L8002CDC4
|
|
/* 02D9B8 8002CDB8 02002025 */ move $a0, $s0
|
|
/* 02D9BC 8002CDBC 0C02345C */ jal func_8008D170
|
|
/* 02D9C0 8002CDC0 83A50027 */ lb $a1, 0x27($sp)
|
|
.L8002CDC4:
|
|
/* 02D9C4 8002CDC4 8E0200BC */ lw $v0, 0xbc($s0)
|
|
/* 02D9C8 8002CDC8 24012000 */ li $at, 8192
|
|
/* 02D9CC 8002CDCC 304C2000 */ andi $t4, $v0, 0x2000
|
|
/* 02D9D0 8002CDD0 55810005 */ bnel $t4, $at, .L8002CDE8
|
|
/* 02D9D4 8002CDD4 3C030010 */ lui $v1, 0x10
|
|
/* 02D9D8 8002CDD8 0C02352D */ jal func_8008D4B4
|
|
/* 02D9DC 8002CDDC 02002025 */ move $a0, $s0
|
|
/* 02D9E0 8002CDE0 8E0200BC */ lw $v0, 0xbc($s0)
|
|
/* 02D9E4 8002CDE4 3C030010 */ lui $v1, 0x10
|
|
.L8002CDE8:
|
|
/* 02D9E8 8002CDE8 00436824 */ and $t5, $v0, $v1
|
|
/* 02D9EC 8002CDEC 546D0005 */ bnel $v1, $t5, .L8002CE04
|
|
/* 02D9F0 8002CDF0 304E0004 */ andi $t6, $v0, 4
|
|
/* 02D9F4 8002CDF4 0C023B70 */ jal func_8008EDC0
|
|
/* 02D9F8 8002CDF8 02002025 */ move $a0, $s0
|
|
/* 02D9FC 8002CDFC 8E0200BC */ lw $v0, 0xbc($s0)
|
|
/* 02DA00 8002CE00 304E0004 */ andi $t6, $v0, 4
|
|
.L8002CE04:
|
|
/* 02DA04 8002CE04 24010004 */ li $at, 4
|
|
/* 02DA08 8002CE08 55C10005 */ bnel $t6, $at, .L8002CE20
|
|
/* 02DA0C 8002CE0C 3C010400 */ lui $at, 0x400
|
|
/* 02DA10 8002CE10 0C023C02 */ jal func_8008F008
|
|
/* 02DA14 8002CE14 02002025 */ move $a0, $s0
|
|
/* 02DA18 8002CE18 8E0200BC */ lw $v0, 0xbc($s0)
|
|
/* 02DA1C 8002CE1C 3C010400 */ lui $at, 0x400
|
|
.L8002CE20:
|
|
/* 02DA20 8002CE20 00417824 */ and $t7, $v0, $at
|
|
/* 02DA24 8002CE24 15E10004 */ bne $t7, $at, .L8002CE38
|
|
/* 02DA28 8002CE28 02002025 */ move $a0, $s0
|
|
/* 02DA2C 8002CE2C 0C023702 */ jal func_8008DC08
|
|
/* 02DA30 8002CE30 83A50027 */ lb $a1, 0x27($sp)
|
|
/* 02DA34 8002CE34 8E0200BC */ lw $v0, 0xbc($s0)
|
|
.L8002CE38:
|
|
/* 02DA38 8002CE38 3C034000 */ lui $v1, 0x4000
|
|
/* 02DA3C 8002CE3C 0043C024 */ and $t8, $v0, $v1
|
|
/* 02DA40 8002CE40 14780004 */ bne $v1, $t8, .L8002CE54
|
|
/* 02DA44 8002CE44 02002025 */ move $a0, $s0
|
|
/* 02DA48 8002CE48 0C023846 */ jal func_8008E118
|
|
/* 02DA4C 8002CE4C 83A50027 */ lb $a1, 0x27($sp)
|
|
/* 02DA50 8002CE50 8E0200BC */ lw $v0, 0xbc($s0)
|
|
.L8002CE54:
|
|
/* 02DA54 8002CE54 3C030001 */ lui $v1, 1
|
|
/* 02DA58 8002CE58 0043C824 */ and $t9, $v0, $v1
|
|
/* 02DA5C 8002CE5C 14790004 */ bne $v1, $t9, .L8002CE70
|
|
/* 02DA60 8002CE60 02002025 */ move $a0, $s0
|
|
/* 02DA64 8002CE64 0C023CFD */ jal func_8008F3F4
|
|
/* 02DA68 8002CE68 83A50027 */ lb $a1, 0x27($sp)
|
|
/* 02DA6C 8002CE6C 8E0200BC */ lw $v0, 0xbc($s0)
|
|
.L8002CE70:
|
|
/* 02DA70 8002CE70 30480200 */ andi $t0, $v0, 0x200
|
|
/* 02DA74 8002CE74 24010200 */ li $at, 512
|
|
/* 02DA78 8002CE78 15010004 */ bne $t0, $at, .L8002CE8C
|
|
/* 02DA7C 8002CE7C 02002025 */ move $a0, $s0
|
|
/* 02DA80 8002CE80 0C023D94 */ jal func_8008F650
|
|
/* 02DA84 8002CE84 83A50027 */ lb $a1, 0x27($sp)
|
|
/* 02DA88 8002CE88 8E0200BC */ lw $v0, 0xbc($s0)
|
|
.L8002CE8C:
|
|
/* 02DA8C 8002CE8C 3C038000 */ lui $v1, 0x8000
|
|
/* 02DA90 8002CE90 00434824 */ and $t1, $v0, $v1
|
|
/* 02DA94 8002CE94 14690004 */ bne $v1, $t1, .L8002CEA8
|
|
/* 02DA98 8002CE98 02002025 */ move $a0, $s0
|
|
/* 02DA9C 8002CE9C 0C023E37 */ jal func_8008F8DC
|
|
/* 02DAA0 8002CEA0 83A50027 */ lb $a1, 0x27($sp)
|
|
/* 02DAA4 8002CEA4 8E0200BC */ lw $v0, 0xbc($s0)
|
|
.L8002CEA8:
|
|
/* 02DAA8 8002CEA8 3C032000 */ lui $v1, 0x2000
|
|
/* 02DAAC 8002CEAC 00435024 */ and $t2, $v0, $v1
|
|
/* 02DAB0 8002CEB0 546A000A */ bnel $v1, $t2, .L8002CEDC
|
|
/* 02DAB4 8002CEB4 304C0080 */ andi $t4, $v0, 0x80
|
|
/* 02DAB8 8002CEB8 860B0228 */ lh $t3, 0x228($s0)
|
|
/* 02DABC 8002CEBC 02002025 */ move $a0, $s0
|
|
/* 02DAC0 8002CEC0 29610064 */ slti $at, $t3, 0x64
|
|
/* 02DAC4 8002CEC4 54200005 */ bnel $at, $zero, .L8002CEDC
|
|
/* 02DAC8 8002CEC8 304C0080 */ andi $t4, $v0, 0x80
|
|
/* 02DACC 8002CECC 0C00C7D2 */ jal func_80031F48
|
|
/* 02DAD0 8002CED0 3C054080 */ lui $a1, 0x4080
|
|
/* 02DAD4 8002CED4 8E0200BC */ lw $v0, 0xbc($s0)
|
|
/* 02DAD8 8002CED8 304C0080 */ andi $t4, $v0, 0x80
|
|
.L8002CEDC:
|
|
/* 02DADC 8002CEDC 24010080 */ li $at, 128
|
|
/* 02DAE0 8002CEE0 11810003 */ beq $t4, $at, .L8002CEF0
|
|
/* 02DAE4 8002CEE4 304D0040 */ andi $t5, $v0, 0x40
|
|
/* 02DAE8 8002CEE8 24010040 */ li $at, 64
|
|
/* 02DAEC 8002CEEC 15A10004 */ bne $t5, $at, .L8002CF00
|
|
.L8002CEF0:
|
|
/* 02DAF0 8002CEF0 02002025 */ move $a0, $s0
|
|
/* 02DAF4 8002CEF4 0C02327B */ jal func_8008C9EC
|
|
/* 02DAF8 8002CEF8 83A50027 */ lb $a1, 0x27($sp)
|
|
/* 02DAFC 8002CEFC 8E0200BC */ lw $v0, 0xbc($s0)
|
|
.L8002CF00:
|
|
/* 02DB00 8002CF00 304E0400 */ andi $t6, $v0, 0x400
|
|
/* 02DB04 8002CF04 24010400 */ li $at, 1024
|
|
/* 02DB08 8002CF08 15C10004 */ bne $t6, $at, .L8002CF1C
|
|
/* 02DB0C 8002CF0C 02002025 */ move $a0, $s0
|
|
/* 02DB10 8002CF10 0C02318B */ jal func_8008C62C
|
|
/* 02DB14 8002CF14 83A50027 */ lb $a1, 0x27($sp)
|
|
/* 02DB18 8002CF18 8E0200BC */ lw $v0, 0xbc($s0)
|
|
.L8002CF1C:
|
|
/* 02DB1C 8002CF1C 3C030100 */ lui $v1, 0x100
|
|
/* 02DB20 8002CF20 00437824 */ and $t7, $v0, $v1
|
|
/* 02DB24 8002CF24 146F0004 */ bne $v1, $t7, .L8002CF38
|
|
/* 02DB28 8002CF28 02002025 */ move $a0, $s0
|
|
/* 02DB2C 8002CF2C 0C023929 */ jal func_8008E4A4
|
|
/* 02DB30 8002CF30 83A50027 */ lb $a1, 0x27($sp)
|
|
/* 02DB34 8002CF34 8E0200BC */ lw $v0, 0xbc($s0)
|
|
.L8002CF38:
|
|
/* 02DB38 8002CF38 3C030200 */ lui $v1, 0x200
|
|
/* 02DB3C 8002CF3C 0043C024 */ and $t8, $v0, $v1
|
|
/* 02DB40 8002CF40 14780004 */ bne $v1, $t8, .L8002CF54
|
|
/* 02DB44 8002CF44 02002025 */ move $a0, $s0
|
|
/* 02DB48 8002CF48 0C023A36 */ jal func_8008E8D8
|
|
/* 02DB4C 8002CF4C 83A50027 */ lb $a1, 0x27($sp)
|
|
/* 02DB50 8002CF50 8E0200BC */ lw $v0, 0xbc($s0)
|
|
.L8002CF54:
|
|
/* 02DB54 8002CF54 30594000 */ andi $t9, $v0, 0x4000
|
|
/* 02DB58 8002CF58 24014000 */ li $at, 16384
|
|
/* 02DB5C 8002CF5C 17210004 */ bne $t9, $at, .L8002CF70
|
|
/* 02DB60 8002CF60 02002025 */ move $a0, $s0
|
|
/* 02DB64 8002CF64 0C023C6E */ jal func_8008F1B8
|
|
/* 02DB68 8002CF68 83A50027 */ lb $a1, 0x27($sp)
|
|
/* 02DB6C 8002CF6C 8E0200BC */ lw $v0, 0xbc($s0)
|
|
.L8002CF70:
|
|
/* 02DB70 8002CF70 3C030008 */ lui $v1, 8
|
|
/* 02DB74 8002CF74 00434024 */ and $t0, $v0, $v1
|
|
/* 02DB78 8002CF78 14680004 */ bne $v1, $t0, .L8002CF8C
|
|
/* 02DB7C 8002CF7C 02002025 */ move $a0, $s0
|
|
/* 02DB80 8002CF80 0C0235A6 */ jal func_8008D698
|
|
/* 02DB84 8002CF84 83A50027 */ lb $a1, 0x27($sp)
|
|
/* 02DB88 8002CF88 8E0200BC */ lw $v0, 0xbc($s0)
|
|
.L8002CF8C:
|
|
/* 02DB8C 8002CF8C 3C030080 */ lui $v1, 0x80
|
|
/* 02DB90 8002CF90 00434824 */ and $t1, $v0, $v1
|
|
/* 02DB94 8002CF94 14690006 */ bne $v1, $t1, .L8002CFB0
|
|
/* 02DB98 8002CF98 02002025 */ move $a0, $s0
|
|
/* 02DB9C 8002CF9C 0C02362D */ jal func_8008D8B4
|
|
/* 02DBA0 8002CFA0 83A50027 */ lb $a1, 0x27($sp)
|
|
/* 02DBA4 8002CFA4 02002025 */ move $a0, $s0
|
|
/* 02DBA8 8002CFA8 0C00C7D2 */ jal func_80031F48
|
|
/* 02DBAC 8002CFAC 3C054120 */ lui $a1, 0x4120
|
|
.L8002CFB0:
|
|
/* 02DBB0 8002CFB0 3C0A800E */ lui $t2, %hi(D_800DC510) # $t2, 0x800e
|
|
/* 02DBB4 8002CFB4 8D4AC510 */ lw $t2, %lo(D_800DC510)($t2)
|
|
/* 02DBB8 8002CFB8 24010005 */ li $at, 5
|
|
/* 02DBBC 8002CFBC 5141000F */ beql $t2, $at, .L8002CFFC
|
|
/* 02DBC0 8002CFC0 860D0044 */ lh $t5, 0x44($s0)
|
|
/* 02DBC4 8002CFC4 8E02000C */ lw $v0, 0xc($s0)
|
|
/* 02DBC8 8002CFC8 02002025 */ move $a0, $s0
|
|
/* 02DBCC 8002CFCC 00025940 */ sll $t3, $v0, 5
|
|
/* 02DBD0 8002CFD0 05630005 */ bgezl $t3, .L8002CFE8
|
|
/* 02DBD4 8002CFD4 00026100 */ sll $t4, $v0, 4
|
|
/* 02DBD8 8002CFD8 0C023F19 */ jal func_8008FC64
|
|
/* 02DBDC 8002CFDC 83A50027 */ lb $a1, 0x27($sp)
|
|
/* 02DBE0 8002CFE0 8E02000C */ lw $v0, 0xc($s0)
|
|
/* 02DBE4 8002CFE4 00026100 */ sll $t4, $v0, 4
|
|
.L8002CFE8:
|
|
/* 02DBE8 8002CFE8 05810003 */ bgez $t4, .L8002CFF8
|
|
/* 02DBEC 8002CFEC 02002025 */ move $a0, $s0
|
|
/* 02DBF0 8002CFF0 0C023F37 */ jal func_8008FCDC
|
|
/* 02DBF4 8002CFF4 83A50027 */ lb $a1, 0x27($sp)
|
|
.L8002CFF8:
|
|
/* 02DBF8 8002CFF8 860D0044 */ lh $t5, 0x44($s0)
|
|
.L8002CFFC:
|
|
/* 02DBFC 8002CFFC 02002025 */ move $a0, $s0
|
|
/* 02DC00 8002D000 31AE0800 */ andi $t6, $t5, 0x800
|
|
/* 02DC04 8002D004 51C00004 */ beql $t6, $zero, .L8002D018
|
|
/* 02DC08 8002D008 8FBF001C */ lw $ra, 0x1c($sp)
|
|
/* 02DC0C 8002D00C 0C0244A6 */ jal func_80091298
|
|
/* 02DC10 8002D010 83A50027 */ lb $a1, 0x27($sp)
|
|
/* 02DC14 8002D014 8FBF001C */ lw $ra, 0x1c($sp)
|
|
.L8002D018:
|
|
/* 02DC18 8002D018 8FB00018 */ lw $s0, 0x18($sp)
|
|
/* 02DC1C 8002D01C 27BD0020 */ addiu $sp, $sp, 0x20
|
|
/* 02DC20 8002D020 03E00008 */ jr $ra
|
|
/* 02DC24 8002D024 00000000 */ nop
|