Files
SpaghettiKart/asm/non_matchings/code_80091750/func_800AF4DC.s
T
Tyler McGavran 5fe0f55e6d Match a couple functions concerning string display width (#73)
* Match a couple string related functions

Signed-off-by: Taggerung <tyler.taggerung@gmail.com>
2021-12-01 14:24:07 -07:00

165 lines
8.0 KiB
ArmAsm

glabel func_800AF4DC
/* 0B00DC 800AF4DC 27BDFFD0 */ addiu $sp, $sp, -0x30
/* 0B00E0 800AF4E0 AFBF001C */ sw $ra, 0x1c($sp)
/* 0B00E4 800AF4E4 AFB00018 */ sw $s0, 0x18($sp)
/* 0B00E8 800AF4E8 8C820000 */ lw $v0, ($a0)
/* 0B00EC 800AF4EC 3C0F8028 */ lui $t7, %hi(D_802850C0) # $t7, 0x8028
/* 0B00F0 800AF4F0 8C990004 */ lw $t9, 4($a0)
/* 0B00F4 800AF4F4 2442FE70 */ addiu $v0, $v0, -0x190
/* 0B00F8 800AF4F8 00027100 */ sll $t6, $v0, 4
/* 0B00FC 800AF4FC 25EF50C0 */ addiu $t7, %lo(D_802850C0) # addiu $t7, $t7, 0x50c0
/* 0B0100 800AF500 01CF1821 */ addu $v1, $t6, $t7
/* 0B0104 800AF504 84780006 */ lh $t8, 6($v1)
/* 0B0108 800AF508 2F210005 */ sltiu $at, $t9, 5
/* 0B010C 800AF50C 00808025 */ move $s0, $a0
/* 0B0110 800AF510 10200086 */ beqz $at, .L800AF72C
/* 0B0114 800AF514 AC980010 */ sw $t8, 0x10($a0)
/* 0B0118 800AF518 0019C880 */ sll $t9, $t9, 2
/* 0B011C 800AF51C 3C01800F */ lui $at, %hi(jpt_800F2AD0)
/* 0B0120 800AF520 00390821 */ addu $at, $at, $t9
/* 0B0124 800AF524 8C392AD0 */ lw $t9, %lo(jpt_800F2AD0)($at)
/* 0B0128 800AF528 03200008 */ jr $t9
/* 0B012C 800AF52C 00000000 */ nop
glabel L800AF530
/* 0B0130 800AF530 84680004 */ lh $t0, 4($v1)
/* 0B0134 800AF534 24090001 */ li $t1, 1
/* 0B0138 800AF538 00025080 */ sll $t2, $v0, 2
/* 0B013C 800AF53C 3C048028 */ lui $a0, %hi(D_802854B0) # 0x8028
/* 0B0140 800AF540 AE090004 */ sw $t1, 4($s0)
/* 0B0144 800AF544 008A2021 */ addu $a0, $a0, $t2
/* 0B0148 800AF548 AE08000C */ sw $t0, 0xc($s0)
/* 0B014C 800AF54C AFA30020 */ sw $v1, 0x20($sp)
/* 0B0150 800AF550 0C024C0D */ jal get_string_width
/* 0B0154 800AF554 8C8454B0 */ lw $a0, %lo(D_802854B0)($a0) # 0x54b0($a0)
/* 0B0158 800AF558 44822000 */ mtc1 $v0, $f4
/* 0B015C 800AF55C 8FA30020 */ lw $v1, 0x20($sp)
/* 0B0160 800AF560 3C014000 */ li $at, 0x40000000 # 2.000000
/* 0B0164 800AF564 468021A0 */ cvt.s.w $f6, $f4
/* 0B0168 800AF568 C4680000 */ lwc1 $f8, ($v1)
/* 0B016C 800AF56C 44818000 */ mtc1 $at, $f16
/* 0B0170 800AF570 846B0008 */ lh $t3, 8($v1)
/* 0B0174 800AF574 46083282 */ mul.s $f10, $f6, $f8
/* 0B0178 800AF578 448B2000 */ mtc1 $t3, $f4
/* 0B017C 800AF57C 00000000 */ nop
/* 0B0180 800AF580 468021A0 */ cvt.s.w $f6, $f4
/* 0B0184 800AF584 46105483 */ div.s $f18, $f10, $f16
/* 0B0188 800AF588 46069200 */ add.s $f8, $f18, $f6
/* 0B018C 800AF58C 4600428D */ trunc.w.s $f10, $f8
/* 0B0190 800AF590 440D5000 */ mfc1 $t5, $f10
/* 0B0194 800AF594 00000000 */ nop
/* 0B0198 800AF598 AE0D0020 */ sw $t5, 0x20($s0)
glabel L800AF59C
/* 0B019C 800AF59C 02002025 */ move $a0, $s0
/* 0B01A0 800AF5A0 0C02A482 */ jal func_800A9208
/* 0B01A4 800AF5A4 8E050020 */ lw $a1, 0x20($s0)
/* 0B01A8 800AF5A8 8E030020 */ lw $v1, 0x20($s0)
/* 0B01AC 800AF5AC 8E04000C */ lw $a0, 0xc($s0)
/* 0B01B0 800AF5B0 240F0008 */ li $t7, 8
/* 0B01B4 800AF5B4 24080002 */ li $t0, 2
/* 0B01B8 800AF5B8 00641023 */ subu $v0, $v1, $a0
/* 0B01BC 800AF5BC 04410003 */ bgez $v0, .L800AF5CC
/* 0B01C0 800AF5C0 00027083 */ sra $t6, $v0, 2
/* 0B01C4 800AF5C4 24410003 */ addiu $at, $v0, 3
/* 0B01C8 800AF5C8 00017083 */ sra $t6, $at, 2
.L800AF5CC:
/* 0B01CC 800AF5CC 29C10009 */ slti $at, $t6, 9
/* 0B01D0 800AF5D0 14200004 */ bnez $at, .L800AF5E4
/* 0B01D4 800AF5D4 AE0E001C */ sw $t6, 0x1c($s0)
/* 0B01D8 800AF5D8 AE0F001C */ sw $t7, 0x1c($s0)
/* 0B01DC 800AF5DC 8E030020 */ lw $v1, 0x20($s0)
/* 0B01E0 800AF5E0 8E04000C */ lw $a0, 0xc($s0)
.L800AF5E4:
/* 0B01E4 800AF5E4 8E18001C */ lw $t8, 0x1c($s0)
/* 0B01E8 800AF5E8 3C01800F */ lui $at, %hi(D_800F2AE8)
/* 0B01EC 800AF5EC D4322AE8 */ ldc1 $f18, %lo(D_800F2AE8)($at)
/* 0B01F0 800AF5F0 44988000 */ mtc1 $t8, $f16
/* 0B01F4 800AF5F4 3C013FF0 */ li $at, 0x3FF00000 # 1.875000
/* 0B01F8 800AF5F8 44814800 */ mtc1 $at, $f9
/* 0B01FC 800AF5FC 46808121 */ cvt.d.w $f4, $f16
/* 0B0200 800AF600 44804000 */ mtc1 $zero, $f8
/* 0B0204 800AF604 2479FFEC */ addiu $t9, $v1, -0x14
/* 0B0208 800AF608 0099082A */ slt $at, $a0, $t9
/* 0B020C 800AF60C 46322182 */ mul.d $f6, $f4, $f18
/* 0B0210 800AF610 46283280 */ add.d $f10, $f6, $f8
/* 0B0214 800AF614 46205420 */ cvt.s.d $f16, $f10
/* 0B0218 800AF618 14200044 */ bnez $at, .L800AF72C
/* 0B021C 800AF61C E6100024 */ swc1 $f16, 0x24($s0)
/* 0B0220 800AF620 AE080004 */ sw $t0, 4($s0)
/* 0B0224 800AF624 10000041 */ b .L800AF72C
/* 0B0228 800AF628 AE000018 */ sw $zero, 0x18($s0)
glabel L800AF62C
/* 0B022C 800AF62C 02002025 */ move $a0, $s0
/* 0B0230 800AF630 0C02A482 */ jal func_800A9208
/* 0B0234 800AF634 8E050020 */ lw $a1, 0x20($s0)
/* 0B0238 800AF638 8E0D0018 */ lw $t5, 0x18($s0)
/* 0B023C 800AF63C 8E090020 */ lw $t1, 0x20($s0)
/* 0B0240 800AF640 8E0A000C */ lw $t2, 0xc($s0)
/* 0B0244 800AF644 25AE0001 */ addiu $t6, $t5, 1
/* 0B0248 800AF648 25CFFFF6 */ addiu $t7, $t6, -0xa
/* 0B024C 800AF64C 448F2000 */ mtc1 $t7, $f4
/* 0B0250 800AF650 012A5823 */ subu $t3, $t1, $t2
/* 0B0254 800AF654 05610003 */ bgez $t3, .L800AF664
/* 0B0258 800AF658 000B6083 */ sra $t4, $t3, 2
/* 0B025C 800AF65C 25610003 */ addiu $at, $t3, 3
/* 0B0260 800AF660 00016083 */ sra $t4, $at, 2
.L800AF664:
/* 0B0264 800AF664 46802021 */ cvt.d.w $f0, $f4
/* 0B0268 800AF668 AE0C001C */ sw $t4, 0x1c($s0)
/* 0B026C 800AF66C AE0E0018 */ sw $t6, 0x18($s0)
/* 0B0270 800AF670 3C01800F */ lui $at, %hi(D_800F2AF0)
/* 0B0274 800AF674 D4322AF0 */ ldc1 $f18, %lo(D_800F2AF0)($at)
/* 0B0278 800AF678 3C01800F */ lui $at, %hi(D_800F2AF8)
/* 0B027C 800AF67C D42A2AF8 */ ldc1 $f10, %lo(D_800F2AF8)($at)
/* 0B0280 800AF680 46320182 */ mul.d $f6, $f0, $f18
/* 0B0284 800AF684 29C10009 */ slti $at, $t6, 9
/* 0B0288 800AF688 46203202 */ mul.d $f8, $f6, $f0
/* 0B028C 800AF68C 462A4400 */ add.d $f16, $f8, $f10
/* 0B0290 800AF690 46208120 */ cvt.s.d $f4, $f16
/* 0B0294 800AF694 14200025 */ bnez $at, .L800AF72C
/* 0B0298 800AF698 E6040024 */ swc1 $f4, 0x24($s0)
/* 0B029C 800AF69C C6060024 */ lwc1 $f6, 0x24($s0)
/* 0B02A0 800AF6A0 3C013FF0 */ li $at, 0x3FF00000 # 1.875000
/* 0B02A4 800AF6A4 44819800 */ mtc1 $at, $f19
/* 0B02A8 800AF6A8 44809000 */ mtc1 $zero, $f18
/* 0B02AC 800AF6AC 46003221 */ cvt.d.s $f8, $f6
/* 0B02B0 800AF6B0 3C013F80 */ li $at, 0x3F800000 # 1.000000
/* 0B02B4 800AF6B4 4628903C */ c.lt.d $f18, $f8
/* 0B02B8 800AF6B8 24180003 */ li $t8, 3
/* 0B02BC 800AF6BC 4502001C */ bc1fl .L800AF730
/* 0B02C0 800AF6C0 8FBF001C */ lw $ra, 0x1c($sp)
/* 0B02C4 800AF6C4 44815000 */ mtc1 $at, $f10
/* 0B02C8 800AF6C8 AE180004 */ sw $t8, 4($s0)
/* 0B02CC 800AF6CC 10000017 */ b .L800AF72C
/* 0B02D0 800AF6D0 E60A0024 */ swc1 $f10, 0x24($s0)
glabel L800AF6D4
/* 0B02D4 800AF6D4 3C198019 */ lui $t9, %hi(D_8018ED91) # $t9, 0x8019
/* 0B02D8 800AF6D8 9339ED91 */ lbu $t9, %lo(D_8018ED91)($t9)
/* 0B02DC 800AF6DC 24080004 */ li $t0, 4
/* 0B02E0 800AF6E0 53200013 */ beql $t9, $zero, .L800AF730
/* 0B02E4 800AF6E4 8FBF001C */ lw $ra, 0x1c($sp)
/* 0B02E8 800AF6E8 10000010 */ b .L800AF72C
/* 0B02EC 800AF6EC AE080004 */ sw $t0, 4($s0)
glabel L800AF6F0
/* 0B02F0 800AF6F0 02002025 */ move $a0, $s0
/* 0B02F4 800AF6F4 8E050020 */ lw $a1, 0x20($s0)
/* 0B02F8 800AF6F8 0C02A532 */ jal func_800A94C8
/* 0B02FC 800AF6FC 24060001 */ li $a2, 1
/* 0B0300 800AF700 8E090010 */ lw $t1, 0x10($s0)
/* 0B0304 800AF704 3C01407E */ li $at, 0x407E0000 # 3.968750
/* 0B0308 800AF708 44818800 */ mtc1 $at, $f17
/* 0B030C 800AF70C 44892000 */ mtc1 $t1, $f4
/* 0B0310 800AF710 44808000 */ mtc1 $zero, $f16
/* 0B0314 800AF714 468021A1 */ cvt.d.w $f6, $f4
/* 0B0318 800AF718 4626803C */ c.lt.d $f16, $f6
/* 0B031C 800AF71C 00000000 */ nop
/* 0B0320 800AF720 45020003 */ bc1fl .L800AF730
/* 0B0324 800AF724 8FBF001C */ lw $ra, 0x1c($sp)
/* 0B0328 800AF728 AE000000 */ sw $zero, ($s0)
.L800AF72C:
/* 0B032C 800AF72C 8FBF001C */ lw $ra, 0x1c($sp)
.L800AF730:
/* 0B0330 800AF730 8FB00018 */ lw $s0, 0x18($sp)
/* 0B0334 800AF734 27BD0030 */ addiu $sp, $sp, 0x30
/* 0B0338 800AF738 03E00008 */ jr $ra
/* 0B033C 800AF73C 00000000 */ nop