NAKED sub_8007AA4

This commit is contained in:
Kermalis
2023-08-07 11:11:58 -04:00
parent e414e4c113
commit a10e7454fc
4 changed files with 126 additions and 118 deletions

View File

@@ -5,122 +5,6 @@
.text
thumb_func_start sub_8007AA4
sub_8007AA4:
push {r4-r7,lr}
mov r7, r9
mov r6, r8
push {r6,r7}
sub sp, 0x20
mov r9, r2
adds r5, r3, 0
ldr r7, [sp, 0x3C]
ldr r3, [sp, 0x40]
lsls r2, r1, 3
adds r2, r1
lsls r2, 3
adds r4, r0, r2
ldr r1, _08007B28
movs r0, 0xF
ands r3, r0
lsls r3, 2
adds r3, r1
ldr r0, [r3]
ldr r1, _08007B2C
adds r1, r0
mov r12, r1
mov r1, sp
ldr r0, _08007B30
ldm r0!, {r2,r3,r6}
stm r1!, {r2,r3,r6}
ldm r0!, {r2,r3,r6}
stm r1!, {r2,r3,r6}
ldm r0!, {r2,r3}
stm r1!, {r2,r3}
adds r0, r5, 0
cmp r5, 0
bge _08007AE8
adds r0, r5, 0x7
_08007AE8:
asrs r3, r0, 3
movs r0, 0x4
ldrsh r6, [r4, r0]
mov r8, r6
mov r0, r8
muls r0, r3
mov r2, r9
cmp r2, 0
bge _08007AFC
adds r2, 0x7
_08007AFC:
asrs r2, 3
adds r0, r2
lsls r0, 5
ldr r1, [r4, 0x18]
adds r1, r0
lsls r0, r3, 3
subs r0, r5, r0
lsls r0, 2
adds r1, r0
movs r0, 0x7
mov r6, r9
ands r0, r6
lsls r0, 2
add r0, sp
ldr r0, [r0]
mov r6, r12
ands r6, r0
mov r12, r6
cmp r2, r8
bge _08007B6E
b _08007B48
.align 2, 0
_08007B28: .4byte gUnknown_80B853C
_08007B2C: .4byte 0x11111111
_08007B30: .4byte gUnknown_80B8848
_08007B34:
adds r5, 0x1
adds r1, 0x4
movs r0, 0x7
ands r0, r5
cmp r0, 0
bne _08007B46
ldr r0, [r4, 0x20]
lsls r0, 2
adds r1, r0
_08007B46:
subs r7, 0x1
_08007B48:
cmp r7, 0
ble _08007B6E
movs r2, 0x8
ldrsh r0, [r4, r2]
cmp r3, r0
bge _08007B6E
ldr r0, [r1]
mov r6, r12
orrs r0, r6
str r0, [r1]
ldr r0, [r4, 0x3C]
cmp r0, r1
bls _08007B64
str r1, [r4, 0x3C]
_08007B64:
ldr r0, [r4, 0x40]
cmp r0, r1
bcs _08007B34
str r1, [r4, 0x40]
b _08007B34
_08007B6E:
add sp, 0x20
pop {r3,r4}
mov r8, r3
mov r9, r4
pop {r4-r7}
pop {r0}
bx r0
thumb_func_end sub_8007AA4
thumb_func_start sub_8007B7C
sub_8007B7C:
push {r4-r6,lr}

View File

@@ -1927,6 +1927,7 @@ gUnknown_80B8824: @ 80B8824
.global gUnknown_80B8848
gUnknown_80B8848: @ 80B8848
@ Type: unkStruct_80B8848
.byte 0x0F, 0x00, 0x00, 0x00
.byte 0xF0, 0x00, 0x00, 0x00
.byte 0x00, 0x0F, 0x00, 0x00

View File

@@ -24,6 +24,10 @@ struct unkStruct_80B8824
{
u32 arr[9];
};
struct unkStruct_80B8848
{
u32 arr[8];
};
u32 xxx_call_draw_char(s32, s32, u32, u32, u32);

View File

@@ -7,9 +7,9 @@ extern const u32 gUnknown_80B853C[16];
extern const struct unkShiftData gUnknown_80B85DC[8];
extern const u32 gUnknown_80B8814[];
extern const struct unkStruct_80B8824 gUnknown_80B8824;
extern const struct unkStruct_80B8848 gUnknown_80B8848;
// text.s
extern void sub_8007AA4(struct UnkTextStruct1 *, u32, u32, u32, u32, u32);
extern void sub_8008C6C(struct UnkTextStruct1 *, u32);
void nullsub_129(u32, s32, s32, u32, u32);
@@ -22,6 +22,7 @@ void sub_8006B70(struct UnkTextStruct1 *, s32, s32, s32, u16 *);
void sub_8006C44(struct UnkTextStruct1 *, s32, u16 *, u8);
void sub_8006E94(struct UnkTextStruct1 *, s32, u32, const u8 *, u16 *);
void sub_8007958(struct UnkTextStruct1 *, u32, s32, s32, s32, u32);
void sub_8007AA4(struct UnkTextStruct1 *, u32, s32, s32, s32, u32);
void nullsub_152(void)
{
@@ -1938,7 +1939,7 @@ void sub_8007958(struct UnkTextStruct1 *a0, u32 a1, s32 x, s32 y, s32 a4, u32 co
struct UnkTextStruct1 *r5;
s32 r6;
u32 r9;
const struct unkShiftData *shiftData;
struct unkStruct_80B8824 dataLOL;
s32 lol;
@@ -2171,4 +2172,122 @@ void sub_8007A78(u32 a0, u32 a1, u32 a2, u32 a3, u32 a4)
// Unused
void nullsub_157()
{
}
NAKED // https://decomp.me/scratch/xE2Tn
void sub_8007AA4(struct UnkTextStruct1 *a0, u32 a1, s32 x, s32 y, s32 a4, u32 color)
{
asm_unified(
"push {r4-r7,lr}\n"
"\tmov r7, r9\n"
"\tmov r6, r8\n"
"\tpush {r6,r7}\n"
"\tsub sp, 0x20\n"
"\tmov r9, r2\n"
"\tadds r5, r3, 0\n"
"\tldr r7, [sp, 0x3C]\n"
"\tldr r3, [sp, 0x40]\n"
"\tlsls r2, r1, 3\n"
"\tadds r2, r1\n"
"\tlsls r2, 3\n"
"\tadds r4, r0, r2\n"
"\tldr r1, _08007B28\n"
"\tmovs r0, 0xF\n"
"\tands r3, r0\n"
"\tlsls r3, 2\n"
"\tadds r3, r1\n"
"\tldr r0, [r3]\n"
"\tldr r1, _08007B2C\n"
"\tadds r1, r0\n"
"\tmov r12, r1\n"
"\tmov r1, sp\n"
"\tldr r0, _08007B30\n"
"\tldm r0!, {r2,r3,r6}\n"
"\tstm r1!, {r2,r3,r6}\n"
"\tldm r0!, {r2,r3,r6}\n"
"\tstm r1!, {r2,r3,r6}\n"
"\tldm r0!, {r2,r3}\n"
"\tstm r1!, {r2,r3}\n"
"\tadds r0, r5, 0\n"
"\tcmp r5, 0\n"
"\tbge _08007AE8\n"
"\tadds r0, r5, 0x7\n"
"_08007AE8:\n"
"\tasrs r3, r0, 3\n"
"\tmovs r0, 0x4\n"
"\tldrsh r6, [r4, r0]\n"
"\tmov r8, r6\n"
"\tmov r0, r8\n"
"\tmuls r0, r3\n"
"\tmov r2, r9\n"
"\tcmp r2, 0\n"
"\tbge _08007AFC\n"
"\tadds r2, 0x7\n"
"_08007AFC:\n"
"\tasrs r2, 3\n"
"\tadds r0, r2\n"
"\tlsls r0, 5\n"
"\tldr r1, [r4, 0x18]\n"
"\tadds r1, r0\n"
"\tlsls r0, r3, 3\n"
"\tsubs r0, r5, r0\n"
"\tlsls r0, 2\n"
"\tadds r1, r0\n"
"\tmovs r0, 0x7\n"
"\tmov r6, r9\n"
"\tands r0, r6\n"
"\tlsls r0, 2\n"
"\tadd r0, sp\n"
"\tldr r0, [r0]\n"
"\tmov r6, r12\n"
"\tands r6, r0\n"
"\tmov r12, r6\n"
"\tcmp r2, r8\n"
"\tbge _08007B6E\n"
"\tb _08007B48\n"
"\t.align 2, 0\n"
"_08007B28: .4byte gUnknown_80B853C\n"
"_08007B2C: .4byte 0x11111111\n"
"_08007B30: .4byte gUnknown_80B8848\n"
"_08007B34:\n"
"\tadds r5, 0x1\n"
"\tadds r1, 0x4\n"
"\tmovs r0, 0x7\n"
"\tands r0, r5\n"
"\tcmp r0, 0\n"
"\tbne _08007B46\n"
"\tldr r0, [r4, 0x20]\n"
"\tlsls r0, 2\n"
"\tadds r1, r0\n"
"_08007B46:\n"
"\tsubs r7, 0x1\n"
"_08007B48:\n"
"\tcmp r7, 0\n"
"\tble _08007B6E\n"
"\tmovs r2, 0x8\n"
"\tldrsh r0, [r4, r2]\n"
"\tcmp r3, r0\n"
"\tbge _08007B6E\n"
"\tldr r0, [r1]\n"
"\tmov r6, r12\n"
"\torrs r0, r6\n"
"\tstr r0, [r1]\n"
"\tldr r0, [r4, 0x3C]\n"
"\tcmp r0, r1\n"
"\tbls _08007B64\n"
"\tstr r1, [r4, 0x3C]\n"
"_08007B64:\n"
"\tldr r0, [r4, 0x40]\n"
"\tcmp r0, r1\n"
"\tbcs _08007B34\n"
"\tstr r1, [r4, 0x40]\n"
"\tb _08007B34\n"
"_08007B6E:\n"
"\tadd sp, 0x20\n"
"\tpop {r3,r4}\n"
"\tmov r8, r3\n"
"\tmov r9, r4\n"
"\tpop {r4-r7}\n"
"\tpop {r0}\n"
"\tbx r0");
}