Nonmatch sub_8007334 and match nullsub_154

This commit is contained in:
Kermalis
2023-08-06 20:01:46 -04:00
parent 05e48f1e81
commit 4d8fae99dd
2 changed files with 105 additions and 77 deletions

View File

@@ -5,82 +5,6 @@
.text
thumb_func_start sub_8007334
sub_8007334:
push {r4-r7,lr}
mov r7, r9
mov r6, r8
push {r6,r7}
lsls r1, r0, 3
adds r1, r0
lsls r1, 3
ldr r0, _080073AC
adds r3, r1, r0
ldr r5, [r3, 0x14]
movs r0, 0x2
ldrsh r6, [r3, r0]
movs r2, 0
movs r1, 0x6
ldrsh r0, [r3, r1]
cmp r2, r0
bge _080073A0
ldr r7, _080073B0
mov r9, r7
_0800735A:
movs r0, 0
ldrsh r1, [r3, r0]
movs r4, 0
movs r7, 0x4
ldrsh r0, [r3, r7]
adds r7, r6, 0x1
adds r2, 0x1
mov r12, r2
cmp r4, r0
bge _08007394
movs r0, 0xFC
lsls r0, 8
mov r8, r0
lsls r1, 1
lsls r0, r6, 6
add r0, r9
adds r2, r1, r0
_0800737C:
ldrh r0, [r2]
mov r1, r8
ands r1, r0
orrs r1, r5
strh r1, [r2]
adds r2, 0x2
adds r5, 0x1
adds r4, 0x1
movs r1, 0x4
ldrsh r0, [r3, r1]
cmp r4, r0
blt _0800737C
_08007394:
adds r6, r7, 0
mov r2, r12
movs r7, 0x6
ldrsh r0, [r3, r7]
cmp r2, r0
blt _0800735A
_080073A0:
pop {r3,r4}
mov r8, r3
mov r9, r4
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
_080073AC: .4byte gUnknown_2027370
_080073B0: .4byte gUnknown_202B038
thumb_func_end sub_8007334
thumb_func_start nullsub_154
nullsub_154:
bx lr
thumb_func_end nullsub_154
thumb_func_start sub_80073B8
sub_80073B8:
lsls r1, r0, 3

View File

@@ -1164,4 +1164,108 @@ void sub_8006E94(struct UnkTextStruct1 *a0, s32 a1, u32 a2, const u8 *a3, u16 *a
"_0800732C: .4byte 0x0000f27a\n"
"_08007330: .4byte 0x0000f6d8");
}
#endif // NONMATCHING
#endif // NONMATCHING
#ifdef NONMATCHING // https://decomp.me/scratch/zVTOf
void sub_8007334(s32 a0)
{
s32 r1;
s32 r2;
struct UnkTextStruct1 *r3;
s32 r4;
u32 r5;
s32 r6;
s16 typeCheater;
r3 = &gUnknown_2027370[a0];
r5 = r3->unk14;
r6 = r3->unk2;
for (r2 = 0; r2 < r3->unk6; r6++, r2++) {
typeCheater = r3->unk0;
r1 = typeCheater;
for (r4 = 0; r4 < r3->unk4; r4++) {
typeCheater = r1;
gUnknown_202B038[0][r6][typeCheater + r4] &= 0xFC00;
gUnknown_202B038[0][r6][typeCheater + r4] |= r5++;
}
}
}
#else
NAKED
void sub_8007334(s32 a0)
{
asm_unified(
"\tpush {r4-r7,lr}\n"
"\tmov r7, r9\n"
"\tmov r6, r8\n"
"\tpush {r6,r7}\n"
"\tlsls r1, r0, 3\n"
"\tadds r1, r0\n"
"\tlsls r1, 3\n"
"\tldr r0, _080073AC\n"
"\tadds r3, r1, r0\n"
"\tldr r5, [r3, 0x14]\n"
"\tmovs r0, 0x2\n"
"\tldrsh r6, [r3, r0]\n"
"\tmovs r2, 0\n"
"\tmovs r1, 0x6\n"
"\tldrsh r0, [r3, r1]\n"
"\tcmp r2, r0\n"
"\tbge _080073A0\n"
"\tldr r7, _080073B0\n"
"\tmov r9, r7\n"
"_0800735A:\n"
"\tmovs r0, 0\n"
"\tldrsh r1, [r3, r0]\n"
"\tmovs r4, 0\n"
"\tmovs r7, 0x4\n"
"\tldrsh r0, [r3, r7]\n"
"\tadds r7, r6, 0x1\n"
"\tadds r2, 0x1\n"
"\tmov r12, r2\n"
"\tcmp r4, r0\n"
"\tbge _08007394\n"
"\tmovs r0, 0xFC\n"
"\tlsls r0, 8\n"
"\tmov r8, r0\n"
"\tlsls r1, 1\n"
"\tlsls r0, r6, 6\n"
"\tadd r0, r9\n"
"\tadds r2, r1, r0\n"
"_0800737C:\n"
"\tldrh r0, [r2]\n"
"\tmov r1, r8\n"
"\tands r1, r0\n"
"\torrs r1, r5\n"
"\tstrh r1, [r2]\n"
"\tadds r2, 0x2\n"
"\tadds r5, 0x1\n"
"\tadds r4, 0x1\n"
"\tmovs r1, 0x4\n"
"\tldrsh r0, [r3, r1]\n"
"\tcmp r4, r0\n"
"\tblt _0800737C\n"
"_08007394:\n"
"\tadds r6, r7, 0\n"
"\tmov r2, r12\n"
"\tmovs r7, 0x6\n"
"\tldrsh r0, [r3, r7]\n"
"\tcmp r2, r0\n"
"\tblt _0800735A\n"
"_080073A0:\n"
"\tpop {r3,r4}\n"
"\tmov r8, r3\n"
"\tmov r9, r4\n"
"\tpop {r4-r7}\n"
"\tpop {r0}\n"
"\tbx r0\n"
"\t.align 2, 0\n"
"_080073AC: .4byte gUnknown_2027370\n"
"_080073B0: .4byte gUnknown_202B038");
}
#endif // NONMATCHING
// Unused?
void nullsub_154(void)
{
}