mirror of
https://github.com/HarbourMasters/SpaghettiKart
synced 2026-06-30 20:11:40 -04:00
5fe0f55e6d
* Match a couple string related functions Signed-off-by: Taggerung <tyler.taggerung@gmail.com>
121 lines
5.8 KiB
ArmAsm
121 lines
5.8 KiB
ArmAsm
glabel func_800ABCF4
|
|
/* 0AC8F4 800ABCF4 27BDFFE0 */ addiu $sp, $sp, -0x20
|
|
/* 0AC8F8 800ABCF8 AFBF001C */ sw $ra, 0x1c($sp)
|
|
/* 0AC8FC 800ABCFC AFB00018 */ sw $s0, 0x18($sp)
|
|
/* 0AC900 800ABD00 8C820004 */ lw $v0, 4($a0)
|
|
/* 0AC904 800ABD04 00808025 */ move $s0, $a0
|
|
/* 0AC908 800ABD08 240E0001 */ li $t6, 1
|
|
/* 0AC90C 800ABD0C 10400008 */ beqz $v0, .L800ABD30
|
|
/* 0AC910 800ABD10 3C0F800E */ lui $t7, %hi(D_800DC540) # $t7, 0x800e
|
|
/* 0AC914 800ABD14 24010001 */ li $at, 1
|
|
/* 0AC918 800ABD18 10410013 */ beq $v0, $at, .L800ABD68
|
|
/* 0AC91C 800ABD1C 24010002 */ li $at, 2
|
|
/* 0AC920 800ABD20 10410035 */ beq $v0, $at, .L800ABDF8
|
|
/* 0AC924 800ABD24 02002025 */ move $a0, $s0
|
|
/* 0AC928 800ABD28 1000005C */ b .L800ABE9C
|
|
/* 0AC92C 800ABD2C 8FBF001C */ lw $ra, 0x1c($sp)
|
|
.L800ABD30:
|
|
/* 0AC930 800ABD30 AE00000C */ sw $zero, 0xc($s0)
|
|
/* 0AC934 800ABD34 AE0E0004 */ sw $t6, 4($s0)
|
|
/* 0AC938 800ABD38 8DEFC540 */ lw $t7, %lo(D_800DC540)($t7)
|
|
/* 0AC93C 800ABD3C 3C04800E */ lui $a0, %hi(D_800E7500)
|
|
/* 0AC940 800ABD40 000FC080 */ sll $t8, $t7, 2
|
|
/* 0AC944 800ABD44 00982021 */ addu $a0, $a0, $t8
|
|
/* 0AC948 800ABD48 0C024C0D */ jal get_string_width
|
|
/* 0AC94C 800ABD4C 8C847500 */ lw $a0, %lo(D_800E7500)($a0)
|
|
/* 0AC950 800ABD50 04410003 */ bgez $v0, .L800ABD60
|
|
/* 0AC954 800ABD54 0002C843 */ sra $t9, $v0, 1
|
|
/* 0AC958 800ABD58 24410001 */ addiu $at, $v0, 1
|
|
/* 0AC95C 800ABD5C 0001C843 */ sra $t9, $at, 1
|
|
.L800ABD60:
|
|
/* 0AC960 800ABD60 272800A0 */ addiu $t0, $t9, 0xa0
|
|
/* 0AC964 800ABD64 AE080020 */ sw $t0, 0x20($s0)
|
|
.L800ABD68:
|
|
/* 0AC968 800ABD68 02002025 */ move $a0, $s0
|
|
/* 0AC96C 800ABD6C 0C02A482 */ jal func_800A9208
|
|
/* 0AC970 800ABD70 8E050020 */ lw $a1, 0x20($s0)
|
|
/* 0AC974 800ABD74 8E030020 */ lw $v1, 0x20($s0)
|
|
/* 0AC978 800ABD78 8E04000C */ lw $a0, 0xc($s0)
|
|
/* 0AC97C 800ABD7C 240A0008 */ li $t2, 8
|
|
/* 0AC980 800ABD80 240D0002 */ li $t5, 2
|
|
/* 0AC984 800ABD84 00641023 */ subu $v0, $v1, $a0
|
|
/* 0AC988 800ABD88 04410003 */ bgez $v0, .L800ABD98
|
|
/* 0AC98C 800ABD8C 00024883 */ sra $t1, $v0, 2
|
|
/* 0AC990 800ABD90 24410003 */ addiu $at, $v0, 3
|
|
/* 0AC994 800ABD94 00014883 */ sra $t1, $at, 2
|
|
.L800ABD98:
|
|
/* 0AC998 800ABD98 29210009 */ slti $at, $t1, 9
|
|
/* 0AC99C 800ABD9C 14200004 */ bnez $at, .L800ABDB0
|
|
/* 0AC9A0 800ABDA0 AE09001C */ sw $t1, 0x1c($s0)
|
|
/* 0AC9A4 800ABDA4 AE0A001C */ sw $t2, 0x1c($s0)
|
|
/* 0AC9A8 800ABDA8 8E030020 */ lw $v1, 0x20($s0)
|
|
/* 0AC9AC 800ABDAC 8E04000C */ lw $a0, 0xc($s0)
|
|
.L800ABDB0:
|
|
/* 0AC9B0 800ABDB0 8E0B001C */ lw $t3, 0x1c($s0)
|
|
/* 0AC9B4 800ABDB4 3C01800F */ lui $at, %hi(D_800F2630)
|
|
/* 0AC9B8 800ABDB8 D4282630 */ ldc1 $f8, %lo(D_800F2630)($at)
|
|
/* 0AC9BC 800ABDBC 448B2000 */ mtc1 $t3, $f4
|
|
/* 0AC9C0 800ABDC0 3C013FF0 */ li $at, 0x3FF00000 # 1.875000
|
|
/* 0AC9C4 800ABDC4 44818800 */ mtc1 $at, $f17
|
|
/* 0AC9C8 800ABDC8 468021A1 */ cvt.d.w $f6, $f4
|
|
/* 0AC9CC 800ABDCC 44808000 */ mtc1 $zero, $f16
|
|
/* 0AC9D0 800ABDD0 246CFFEC */ addiu $t4, $v1, -0x14
|
|
/* 0AC9D4 800ABDD4 008C082A */ slt $at, $a0, $t4
|
|
/* 0AC9D8 800ABDD8 46283282 */ mul.d $f10, $f6, $f8
|
|
/* 0AC9DC 800ABDDC 46305480 */ add.d $f18, $f10, $f16
|
|
/* 0AC9E0 800ABDE0 46209120 */ cvt.s.d $f4, $f18
|
|
/* 0AC9E4 800ABDE4 1420002C */ bnez $at, .L800ABE98
|
|
/* 0AC9E8 800ABDE8 E6040024 */ swc1 $f4, 0x24($s0)
|
|
/* 0AC9EC 800ABDEC AE0D0004 */ sw $t5, 4($s0)
|
|
/* 0AC9F0 800ABDF0 10000029 */ b .L800ABE98
|
|
/* 0AC9F4 800ABDF4 AE000018 */ sw $zero, 0x18($s0)
|
|
.L800ABDF8:
|
|
/* 0AC9F8 800ABDF8 0C02A482 */ jal func_800A9208
|
|
/* 0AC9FC 800ABDFC 8E050020 */ lw $a1, 0x20($s0)
|
|
/* 0ACA00 800ABE00 8E080018 */ lw $t0, 0x18($s0)
|
|
/* 0ACA04 800ABE04 8E0E0020 */ lw $t6, 0x20($s0)
|
|
/* 0ACA08 800ABE08 8E0F000C */ lw $t7, 0xc($s0)
|
|
/* 0ACA0C 800ABE0C 25090001 */ addiu $t1, $t0, 1
|
|
/* 0ACA10 800ABE10 252AFFF6 */ addiu $t2, $t1, -0xa
|
|
/* 0ACA14 800ABE14 448A3000 */ mtc1 $t2, $f6
|
|
/* 0ACA18 800ABE18 01CFC023 */ subu $t8, $t6, $t7
|
|
/* 0ACA1C 800ABE1C 07010003 */ bgez $t8, .L800ABE2C
|
|
/* 0ACA20 800ABE20 0018C883 */ sra $t9, $t8, 2
|
|
/* 0ACA24 800ABE24 27010003 */ addiu $at, $t8, 3
|
|
/* 0ACA28 800ABE28 0001C883 */ sra $t9, $at, 2
|
|
.L800ABE2C:
|
|
/* 0ACA2C 800ABE2C 46803021 */ cvt.d.w $f0, $f6
|
|
/* 0ACA30 800ABE30 AE19001C */ sw $t9, 0x1c($s0)
|
|
/* 0ACA34 800ABE34 AE090018 */ sw $t1, 0x18($s0)
|
|
/* 0ACA38 800ABE38 3C01800F */ lui $at, %hi(D_800F2638)
|
|
/* 0ACA3C 800ABE3C D4282638 */ ldc1 $f8, %lo(D_800F2638)($at)
|
|
/* 0ACA40 800ABE40 3C01800F */ lui $at, %hi(D_800F2640)
|
|
/* 0ACA44 800ABE44 D4322640 */ ldc1 $f18, %lo(D_800F2640)($at)
|
|
/* 0ACA48 800ABE48 46280282 */ mul.d $f10, $f0, $f8
|
|
/* 0ACA4C 800ABE4C 29210009 */ slti $at, $t1, 9
|
|
/* 0ACA50 800ABE50 46205402 */ mul.d $f16, $f10, $f0
|
|
/* 0ACA54 800ABE54 46328100 */ add.d $f4, $f16, $f18
|
|
/* 0ACA58 800ABE58 462021A0 */ cvt.s.d $f6, $f4
|
|
/* 0ACA5C 800ABE5C 1420000E */ bnez $at, .L800ABE98
|
|
/* 0ACA60 800ABE60 E6060024 */ swc1 $f6, 0x24($s0)
|
|
/* 0ACA64 800ABE64 C60A0024 */ lwc1 $f10, 0x24($s0)
|
|
/* 0ACA68 800ABE68 3C013FF0 */ li $at, 0x3FF00000 # 1.875000
|
|
/* 0ACA6C 800ABE6C 44814800 */ mtc1 $at, $f9
|
|
/* 0ACA70 800ABE70 44804000 */ mtc1 $zero, $f8
|
|
/* 0ACA74 800ABE74 46005421 */ cvt.d.s $f16, $f10
|
|
/* 0ACA78 800ABE78 3C013F80 */ li $at, 0x3F800000 # 1.000000
|
|
/* 0ACA7C 800ABE7C 4630403C */ c.lt.d $f8, $f16
|
|
/* 0ACA80 800ABE80 00000000 */ nop
|
|
/* 0ACA84 800ABE84 45020005 */ bc1fl .L800ABE9C
|
|
/* 0ACA88 800ABE88 8FBF001C */ lw $ra, 0x1c($sp)
|
|
/* 0ACA8C 800ABE8C 44819000 */ mtc1 $at, $f18
|
|
/* 0ACA90 800ABE90 00000000 */ nop
|
|
/* 0ACA94 800ABE94 E6120024 */ swc1 $f18, 0x24($s0)
|
|
.L800ABE98:
|
|
/* 0ACA98 800ABE98 8FBF001C */ lw $ra, 0x1c($sp)
|
|
.L800ABE9C:
|
|
/* 0ACA9C 800ABE9C 8FB00018 */ lw $s0, 0x18($sp)
|
|
/* 0ACAA0 800ABEA0 27BD0020 */ addiu $sp, $sp, 0x20
|
|
/* 0ACAA4 800ABEA4 03E00008 */ jr $ra
|
|
/* 0ACAA8 800ABEA8 00000000 */ nop
|