papermario/asm/nonmatchings/code_42e0_len_1f60/int_to_string.s
2020-08-12 21:56:23 -04:00

92 lines
4.2 KiB
ArmAsm

.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
.include "include/macro.inc"
glabel int_to_string
/* 0048C4 800294C4 27BDFF88 */ addiu $sp, $sp, -0x78
/* 0048C8 800294C8 AFB7006C */ sw $s7, 0x6c($sp)
/* 0048CC 800294CC 00C0B82D */ daddu $s7, $a2, $zero
/* 0048D0 800294D0 AFB40060 */ sw $s4, 0x60($sp)
/* 0048D4 800294D4 24140026 */ addiu $s4, $zero, 0x26
/* 0048D8 800294D8 AFBE0070 */ sw $fp, 0x70($sp)
/* 0048DC 800294DC 0000F02D */ daddu $fp, $zero, $zero
/* 0048E0 800294E0 AFB3005C */ sw $s3, 0x5c($sp)
/* 0048E4 800294E4 AFB20058 */ sw $s2, 0x58($sp)
/* 0048E8 800294E8 0080982D */ daddu $s3, $a0, $zero
/* 0048EC 800294EC 000497C3 */ sra $s2, $a0, 0x1f
/* 0048F0 800294F0 AFBF0074 */ sw $ra, 0x74($sp)
/* 0048F4 800294F4 AFB60068 */ sw $s6, 0x68($sp)
/* 0048F8 800294F8 AFB50064 */ sw $s5, 0x64($sp)
/* 0048FC 800294FC AFB10054 */ sw $s1, 0x54($sp)
/* 004900 80029500 AFB00050 */ sw $s0, 0x50($sp)
/* 004904 80029504 0641000A */ bgez $s2, .L80029530
/* 004908 80029508 AFA5007C */ sw $a1, 0x7c($sp)
/* 00490C 8002950C 2402FFFF */ addiu $v0, $zero, -1
/* 004910 80029510 02620019 */ multu $s3, $v0
/* 004914 80029514 241E0001 */ addiu $fp, $zero, 1
/* 004918 80029518 00001010 */ mfhi $v0
/* 00491C 8002951C 00001812 */ mflo $v1
/* 004920 80029520 00531023 */ subu $v0, $v0, $s3
/* 004924 80029524 00521023 */ subu $v0, $v0, $s2
/* 004928 80029528 0040902D */ daddu $s2, $v0, $zero
/* 00492C 8002952C 0060982D */ daddu $s3, $v1, $zero
.L80029530:
/* 004930 80029530 A3A00037 */ sb $zero, 0x37($sp)
/* 004934 80029534 27B60010 */ addiu $s6, $sp, 0x10
/* 004938 80029538 0017AFC3 */ sra $s5, $s7, 0x1f
.L8002953C:
/* 00493C 8002953C 02E0882D */ daddu $s1, $s7, $zero
/* 004940 80029540 02A0802D */ daddu $s0, $s5, $zero
/* 004944 80029544 0240202D */ daddu $a0, $s2, $zero
/* 004948 80029548 0260282D */ daddu $a1, $s3, $zero
/* 00494C 8002954C 0200302D */ daddu $a2, $s0, $zero
/* 004950 80029550 0C01B770 */ jal func_8006DDC0
/* 004954 80029554 0220382D */ daddu $a3, $s1, $zero
/* 004958 80029558 0240202D */ daddu $a0, $s2, $zero
/* 00495C 8002955C 0260282D */ daddu $a1, $s3, $zero
/* 004960 80029560 0200302D */ daddu $a2, $s0, $zero
/* 004964 80029564 0220382D */ daddu $a3, $s1, $zero
/* 004968 80029568 3C088007 */ lui $t0, 0x8007
/* 00496C 8002956C 250843E0 */ addiu $t0, $t0, 0x43e0
/* 004970 80029570 00681021 */ addu $v0, $v1, $t0
/* 004974 80029574 90430000 */ lbu $v1, ($v0)
/* 004978 80029578 02D41021 */ addu $v0, $s6, $s4
/* 00497C 8002957C 0C01B600 */ jal func_8006D800
/* 004980 80029580 A0430000 */ sb $v1, ($v0)
/* 004984 80029584 0040902D */ daddu $s2, $v0, $zero
/* 004988 80029588 0060982D */ daddu $s3, $v1, $zero
/* 00498C 8002958C 02721025 */ or $v0, $s3, $s2
/* 004990 80029590 10400005 */ beqz $v0, .L800295A8
/* 004994 80029594 00000000 */ nop
/* 004998 80029598 12800003 */ beqz $s4, .L800295A8
/* 00499C 8002959C 00000000 */ nop
/* 0049A0 800295A0 0800A54F */ j .L8002953C
/* 0049A4 800295A4 2694FFFF */ addiu $s4, $s4, -1
.L800295A8:
/* 0049A8 800295A8 13C00004 */ beqz $fp, .L800295BC
/* 0049AC 800295AC 2402002D */ addiu $v0, $zero, 0x2d
/* 0049B0 800295B0 2694FFFF */ addiu $s4, $s4, -1
/* 0049B4 800295B4 03B41821 */ addu $v1, $sp, $s4
/* 0049B8 800295B8 A0620010 */ sb $v0, 0x10($v1)
.L800295BC:
/* 0049BC 800295BC 27A50010 */ addiu $a1, $sp, 0x10
/* 0049C0 800295C0 8FA4007C */ lw $a0, 0x7c($sp)
/* 0049C4 800295C4 0C01BB50 */ jal strcpy
/* 0049C8 800295C8 00B42821 */ addu $a1, $a1, $s4
/* 0049CC 800295CC 8FA2007C */ lw $v0, 0x7c($sp)
/* 0049D0 800295D0 8FBF0074 */ lw $ra, 0x74($sp)
/* 0049D4 800295D4 8FBE0070 */ lw $fp, 0x70($sp)
/* 0049D8 800295D8 8FB7006C */ lw $s7, 0x6c($sp)
/* 0049DC 800295DC 8FB60068 */ lw $s6, 0x68($sp)
/* 0049E0 800295E0 8FB50064 */ lw $s5, 0x64($sp)
/* 0049E4 800295E4 8FB40060 */ lw $s4, 0x60($sp)
/* 0049E8 800295E8 8FB3005C */ lw $s3, 0x5c($sp)
/* 0049EC 800295EC 8FB20058 */ lw $s2, 0x58($sp)
/* 0049F0 800295F0 8FB10054 */ lw $s1, 0x54($sp)
/* 0049F4 800295F4 8FB00050 */ lw $s0, 0x50($sp)
/* 0049F8 800295F8 03E00008 */ jr $ra
/* 0049FC 800295FC 27BD0078 */ addiu $sp, $sp, 0x78