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
171 lines
8.0 KiB
ArmAsm
171 lines
8.0 KiB
ArmAsm
glabel func_800AF9E4
|
|
/* 0B05E4 800AF9E4 00C70019 */ multu $a2, $a3
|
|
/* 0B05E8 800AF9E8 27BDFFF0 */ addiu $sp, $sp, -0x10
|
|
/* 0B05EC 800AF9EC AFB00004 */ sw $s0, 4($sp)
|
|
/* 0B05F0 800AF9F0 00E08025 */ move $s0, $a3
|
|
/* 0B05F4 800AF9F4 AFB2000C */ sw $s2, 0xc($sp)
|
|
/* 0B05F8 800AF9F8 AFB10008 */ sw $s1, 8($sp)
|
|
/* 0B05FC 800AF9FC AFA60018 */ sw $a2, 0x18($sp)
|
|
/* 0B0600 800AFA00 3C01800F */ lui $at, %hi(D_800F2B30) # $at, 0x800f
|
|
/* 0B0604 800AFA04 00A08825 */ move $s1, $a1
|
|
/* 0B0608 800AFA08 C4202B30 */ lwc1 $f0, %lo(D_800F2B30)($at)
|
|
/* 0B060C 800AFA0C 00004012 */ mflo $t0
|
|
/* 0B0610 800AFA10 8FA6002C */ lw $a2, 0x2c($sp)
|
|
/* 0B0614 800AFA14 24120004 */ li $s2, 4
|
|
/* 0B0618 800AFA18 8FA70028 */ lw $a3, 0x28($sp)
|
|
/* 0B061C 800AFA1C 87AB0026 */ lh $t3, 0x26($sp)
|
|
/* 0B0620 800AFA20 87AA0022 */ lh $t2, 0x22($sp)
|
|
/* 0B0624 800AFA24 00001025 */ move $v0, $zero
|
|
/* 0B0628 800AFA28 240D00FF */ li $t5, 255
|
|
/* 0B062C 800AFA2C 240C0078 */ li $t4, 120
|
|
/* 0B0630 800AFA30 00027900 */ sll $t7, $v0, 4
|
|
.L800AFA34:
|
|
/* 0B0634 800AFA34 008F1821 */ addu $v1, $a0, $t7
|
|
/* 0B0638 800AFA38 04410004 */ bgez $v0, .L800AFA4C
|
|
/* 0B063C 800AFA3C 30450001 */ andi $a1, $v0, 1
|
|
/* 0B0640 800AFA40 10A00002 */ beqz $a1, .L800AFA4C
|
|
/* 0B0644 800AFA44 00000000 */ nop
|
|
/* 0B0648 800AFA48 24A5FFFE */ addiu $a1, $a1, -2
|
|
.L800AFA4C:
|
|
/* 0B064C 800AFA4C 00A60019 */ multu $a1, $a2
|
|
/* 0B0650 800AFA50 26290001 */ addiu $t1, $s1, 1
|
|
/* 0B0654 800AFA54 0000C012 */ mflo $t8
|
|
/* 0B0658 800AFA58 0307C821 */ addu $t9, $t8, $a3
|
|
/* 0B065C 800AFA5C 272EFE08 */ addiu $t6, $t9, -0x1f8
|
|
/* 0B0660 800AFA60 A46E0000 */ sh $t6, ($v1)
|
|
/* 0B0664 800AFA64 04410003 */ bgez $v0, .L800AFA74
|
|
/* 0B0668 800AFA68 00027843 */ sra $t7, $v0, 1
|
|
/* 0B066C 800AFA6C 24410001 */ addiu $at, $v0, 1
|
|
/* 0B0670 800AFA70 00017843 */ sra $t7, $at, 1
|
|
.L800AFA74:
|
|
/* 0B0674 800AFA74 15E00004 */ bnez $t7, .L800AFA88
|
|
/* 0B0678 800AFA78 24420001 */ addiu $v0, $v0, 1
|
|
/* 0B067C 800AFA7C 2518FE5C */ addiu $t8, $t0, -0x1a4
|
|
/* 0B0680 800AFA80 10000004 */ b .L800AFA94
|
|
/* 0B0684 800AFA84 A4780002 */ sh $t8, 2($v1)
|
|
.L800AFA88:
|
|
/* 0B0688 800AFA88 0110C821 */ addu $t9, $t0, $s0
|
|
/* 0B068C 800AFA8C 272EFE5C */ addiu $t6, $t9, -0x1a4
|
|
/* 0B0690 800AFA90 A46E0002 */ sh $t6, 2($v1)
|
|
.L800AFA94:
|
|
/* 0B0694 800AFA94 14A00010 */ bnez $a1, .L800AFAD8
|
|
/* 0B0698 800AFA98 00000000 */ nop
|
|
/* 0B069C 800AFA9C 02310019 */ multu $s1, $s1
|
|
/* 0B06A0 800AFAA0 846F0002 */ lh $t7, 2($v1)
|
|
/* 0B06A4 800AFAA4 448F2000 */ mtc1 $t7, $f4
|
|
/* 0B06A8 800AFAA8 00000000 */ nop
|
|
/* 0B06AC 800AFAAC 468021A0 */ cvt.s.w $f6, $f4
|
|
/* 0B06B0 800AFAB0 0000C012 */ mflo $t8
|
|
/* 0B06B4 800AFAB4 44984000 */ mtc1 $t8, $f8
|
|
/* 0B06B8 800AFAB8 00000000 */ nop
|
|
/* 0B06BC 800AFABC 468042A0 */ cvt.s.w $f10, $f8
|
|
/* 0B06C0 800AFAC0 46005402 */ mul.s $f16, $f10, $f0
|
|
/* 0B06C4 800AFAC4 46103480 */ add.s $f18, $f6, $f16
|
|
/* 0B06C8 800AFAC8 4600910D */ trunc.w.s $f4, $f18
|
|
/* 0B06CC 800AFACC 440E2000 */ mfc1 $t6, $f4
|
|
/* 0B06D0 800AFAD0 10000010 */ b .L800AFB14
|
|
/* 0B06D4 800AFAD4 A46E0002 */ sh $t6, 2($v1)
|
|
.L800AFAD8:
|
|
/* 0B06D8 800AFAD8 01290019 */ multu $t1, $t1
|
|
/* 0B06DC 800AFADC 846F0002 */ lh $t7, 2($v1)
|
|
/* 0B06E0 800AFAE0 448F4000 */ mtc1 $t7, $f8
|
|
/* 0B06E4 800AFAE4 00000000 */ nop
|
|
/* 0B06E8 800AFAE8 468042A0 */ cvt.s.w $f10, $f8
|
|
/* 0B06EC 800AFAEC 0000C012 */ mflo $t8
|
|
/* 0B06F0 800AFAF0 44983000 */ mtc1 $t8, $f6
|
|
/* 0B06F4 800AFAF4 00000000 */ nop
|
|
/* 0B06F8 800AFAF8 46803420 */ cvt.s.w $f16, $f6
|
|
/* 0B06FC 800AFAFC 46008482 */ mul.s $f18, $f16, $f0
|
|
/* 0B0700 800AFB00 46125100 */ add.s $f4, $f10, $f18
|
|
/* 0B0704 800AFB04 4600220D */ trunc.w.s $f8, $f4
|
|
/* 0B0708 800AFB08 440E4000 */ mfc1 $t6, $f8
|
|
/* 0B070C 800AFB0C 00000000 */ nop
|
|
/* 0B0710 800AFB10 A46E0002 */ sh $t6, 2($v1)
|
|
.L800AFB14:
|
|
/* 0B0714 800AFB14 A060000C */ sb $zero, 0xc($v1)
|
|
/* 0B0718 800AFB18 A060000D */ sb $zero, 0xd($v1)
|
|
/* 0B071C 800AFB1C A06C000E */ sb $t4, 0xe($v1)
|
|
/* 0B0720 800AFB20 14A00003 */ bnez $a1, .L800AFB30
|
|
/* 0B0724 800AFB24 A06D000F */ sb $t5, 0xf($v1)
|
|
/* 0B0728 800AFB28 10000002 */ b .L800AFB34
|
|
/* 0B072C 800AFB2C A46A0004 */ sh $t2, 4($v1)
|
|
.L800AFB30:
|
|
/* 0B0730 800AFB30 A46B0004 */ sh $t3, 4($v1)
|
|
.L800AFB34:
|
|
/* 0B0734 800AFB34 5452FFBF */ bnel $v0, $s2, .L800AFA34
|
|
/* 0B0738 800AFB38 00027900 */ sll $t7, $v0, 4
|
|
/* 0B073C 800AFB3C 06210003 */ bgez $s1, .L800AFB4C
|
|
/* 0B0740 800AFB40 00117843 */ sra $t7, $s1, 1
|
|
/* 0B0744 800AFB44 26210001 */ addiu $at, $s1, 1
|
|
/* 0B0748 800AFB48 00017843 */ sra $t7, $at, 1
|
|
.L800AFB4C:
|
|
/* 0B074C 800AFB4C 8FB80018 */ lw $t8, 0x18($sp)
|
|
/* 0B0750 800AFB50 3C0C8015 */ lui $t4, %hi(gDisplayListHead) # $t4, 0x8015
|
|
/* 0B0754 800AFB54 258C0298 */ addiu $t4, %lo(gDisplayListHead) # addiu $t4, $t4, 0x298
|
|
/* 0B0758 800AFB58 07010003 */ bgez $t8, .L800AFB68
|
|
/* 0B075C 800AFB5C 0018C843 */ sra $t9, $t8, 1
|
|
/* 0B0760 800AFB60 27010001 */ addiu $at, $t8, 1
|
|
/* 0B0764 800AFB64 0001C843 */ sra $t9, $at, 1
|
|
.L800AFB68:
|
|
/* 0B0768 800AFB68 01F97021 */ addu $t6, $t7, $t9
|
|
/* 0B076C 800AFB6C 31D80001 */ andi $t8, $t6, 1
|
|
/* 0B0770 800AFB70 17000005 */ bnez $t8, .L800AFB88
|
|
/* 0B0774 800AFB74 3C0DBF00 */ lui $t5, 0xbf00
|
|
/* 0B0778 800AFB78 00001025 */ move $v0, $zero
|
|
/* 0B077C 800AFB7C 00001825 */ move $v1, $zero
|
|
/* 0B0780 800AFB80 10000004 */ b .L800AFB94
|
|
/* 0B0784 800AFB84 00002825 */ move $a1, $zero
|
|
.L800AFB88:
|
|
/* 0B0788 800AFB88 240200FF */ li $v0, 255
|
|
/* 0B078C 800AFB8C 240300FF */ li $v1, 255
|
|
/* 0B0790 800AFB90 240500FF */ li $a1, 255
|
|
.L800AFB94:
|
|
/* 0B0794 800AFB94 8D870000 */ lw $a3, ($t4)
|
|
/* 0B0798 800AFB98 3C19FA00 */ lui $t9, 0xfa00
|
|
/* 0B079C 800AFB9C 0005C600 */ sll $t8, $a1, 0x18
|
|
/* 0B07A0 800AFBA0 24EF0008 */ addiu $t7, $a3, 8
|
|
/* 0B07A4 800AFBA4 AD8F0000 */ sw $t7, ($t4)
|
|
/* 0B07A8 800AFBA8 306F00FF */ andi $t7, $v1, 0xff
|
|
/* 0B07AC 800AFBAC ACF90000 */ sw $t9, ($a3)
|
|
/* 0B07B0 800AFBB0 000FCC00 */ sll $t9, $t7, 0x10
|
|
/* 0B07B4 800AFBB4 03197025 */ or $t6, $t8, $t9
|
|
/* 0B07B8 800AFBB8 304F00FF */ andi $t7, $v0, 0xff
|
|
/* 0B07BC 800AFBBC 000FC200 */ sll $t8, $t7, 8
|
|
/* 0B07C0 800AFBC0 01D8C825 */ or $t9, $t6, $t8
|
|
/* 0B07C4 800AFBC4 372F00FF */ ori $t7, $t9, 0xff
|
|
/* 0B07C8 800AFBC8 ACEF0004 */ sw $t7, 4($a3)
|
|
/* 0B07CC 800AFBCC 8D870000 */ lw $a3, ($t4)
|
|
/* 0B07D0 800AFBD0 3C18E700 */ lui $t8, 0xe700
|
|
/* 0B07D4 800AFBD4 3C0F0400 */ lui $t7, (0x0400103F >> 16) # lui $t7, 0x400
|
|
/* 0B07D8 800AFBD8 24EE0008 */ addiu $t6, $a3, 8
|
|
/* 0B07DC 800AFBDC AD8E0000 */ sw $t6, ($t4)
|
|
/* 0B07E0 800AFBE0 ACE00004 */ sw $zero, 4($a3)
|
|
/* 0B07E4 800AFBE4 ACF80000 */ sw $t8, ($a3)
|
|
/* 0B07E8 800AFBE8 8D870000 */ lw $a3, ($t4)
|
|
/* 0B07EC 800AFBEC 3C018000 */ lui $at, 0x8000
|
|
/* 0B07F0 800AFBF0 00817021 */ addu $t6, $a0, $at
|
|
/* 0B07F4 800AFBF4 24F90008 */ addiu $t9, $a3, 8
|
|
/* 0B07F8 800AFBF8 AD990000 */ sw $t9, ($t4)
|
|
/* 0B07FC 800AFBFC 35EF103F */ ori $t7, (0x0400103F & 0xFFFF) # ori $t7, $t7, 0x103f
|
|
/* 0B0800 800AFC00 ACEF0000 */ sw $t7, ($a3)
|
|
/* 0B0804 800AFC04 ACEE0004 */ sw $t6, 4($a3)
|
|
/* 0B0808 800AFC08 8D870000 */ lw $a3, ($t4)
|
|
/* 0B080C 800AFC0C 3C190002 */ lui $t9, (0x00020400 >> 16) # lui $t9, 2
|
|
/* 0B0810 800AFC10 37390400 */ ori $t9, (0x00020400 & 0xFFFF) # ori $t9, $t9, 0x400
|
|
/* 0B0814 800AFC14 24F80008 */ addiu $t8, $a3, 8
|
|
/* 0B0818 800AFC18 AD980000 */ sw $t8, ($t4)
|
|
/* 0B081C 800AFC1C ACF90004 */ sw $t9, 4($a3)
|
|
/* 0B0820 800AFC20 ACED0000 */ sw $t5, ($a3)
|
|
/* 0B0824 800AFC24 8D870000 */ lw $a3, ($t4)
|
|
/* 0B0828 800AFC28 3C0E0006 */ lui $t6, (0x00060402 >> 16) # lui $t6, 6
|
|
/* 0B082C 800AFC2C 35CE0402 */ ori $t6, (0x00060402 & 0xFFFF) # ori $t6, $t6, 0x402
|
|
/* 0B0830 800AFC30 24EF0008 */ addiu $t7, $a3, 8
|
|
/* 0B0834 800AFC34 AD8F0000 */ sw $t7, ($t4)
|
|
/* 0B0838 800AFC38 ACEE0004 */ sw $t6, 4($a3)
|
|
/* 0B083C 800AFC3C ACED0000 */ sw $t5, ($a3)
|
|
/* 0B0840 800AFC40 8FB2000C */ lw $s2, 0xc($sp)
|
|
/* 0B0844 800AFC44 8FB10008 */ lw $s1, 8($sp)
|
|
/* 0B0848 800AFC48 8FB00004 */ lw $s0, 4($sp)
|
|
/* 0B084C 800AFC4C 03E00008 */ jr $ra
|
|
/* 0B0850 800AFC50 27BD0010 */ addiu $sp, $sp, 0x10
|