nonmatching sub_8112B3C
This commit is contained in:
-184
@@ -5,190 +5,6 @@
|
||||
|
||||
.text
|
||||
|
||||
thumb_func_start sub_8112B3C
|
||||
sub_8112B3C: @ 8112B3C
|
||||
push {r4-r7,lr}
|
||||
ldr r0, _08112B54 @ =gUnknown_3005E88
|
||||
ldrb r0, [r0]
|
||||
cmp r0, 0x4
|
||||
bls _08112B48
|
||||
b _08112C84
|
||||
_08112B48:
|
||||
lsls r0, 2
|
||||
ldr r1, _08112B58 @ =_08112B5C
|
||||
adds r0, r1
|
||||
ldr r0, [r0]
|
||||
mov pc, r0
|
||||
.align 2, 0
|
||||
_08112B54: .4byte gUnknown_3005E88
|
||||
_08112B58: .4byte _08112B5C
|
||||
.align 2, 0
|
||||
_08112B5C:
|
||||
.4byte _08112C84
|
||||
.4byte _08112B70
|
||||
.4byte _08112C5E
|
||||
.4byte _08112C84
|
||||
.4byte _08112C84
|
||||
_08112B70:
|
||||
bl sub_8112CEC
|
||||
lsls r0, 24
|
||||
cmp r0, 0
|
||||
beq _08112B7C
|
||||
b _08112C72
|
||||
_08112B7C:
|
||||
ldr r0, _08112B8C @ =gUnknown_203B01A
|
||||
ldrh r1, [r0]
|
||||
adds r7, r0, 0
|
||||
cmp r1, 0
|
||||
beq _08112B90
|
||||
subs r0, r1, 0x1
|
||||
strh r0, [r7]
|
||||
b _08112C84
|
||||
.align 2, 0
|
||||
_08112B8C: .4byte gUnknown_203B01A
|
||||
_08112B90:
|
||||
ldr r5, _08112B98 @ =gUnknown_3005E88
|
||||
ldr r4, _08112B9C @ =gUnknown_203AF98
|
||||
ldr r6, _08112BA0 @ =gUnknown_3005E94
|
||||
b _08112BD4
|
||||
.align 2, 0
|
||||
_08112B98: .4byte gUnknown_3005E88
|
||||
_08112B9C: .4byte gUnknown_203AF98
|
||||
_08112BA0: .4byte gUnknown_3005E94
|
||||
_08112BA4:
|
||||
ldrh r0, [r4]
|
||||
adds r0, 0x1
|
||||
strh r0, [r4]
|
||||
ldr r1, _08112BF0 @ =gUnknown_3005E8C
|
||||
lsls r0, 16
|
||||
lsrs r0, 16
|
||||
ldrh r1, [r1]
|
||||
cmp r0, r1
|
||||
bcs _08112C58
|
||||
ldrh r0, [r4]
|
||||
ldr r1, [r6]
|
||||
lsls r0, 3
|
||||
adds r0, r1
|
||||
ldrh r0, [r0, 0x4]
|
||||
strh r0, [r7]
|
||||
cmp r2, 0x3
|
||||
beq _08112C84
|
||||
lsls r0, 16
|
||||
lsrs r1, r0, 16
|
||||
cmp r1, 0
|
||||
beq _08112BD4
|
||||
ldr r0, _08112BF4 @ =0x0000ffff
|
||||
cmp r1, r0
|
||||
bne _08112C84
|
||||
_08112BD4:
|
||||
ldrh r0, [r4]
|
||||
ldr r1, [r6]
|
||||
lsls r0, 3
|
||||
adds r3, r0, r1
|
||||
ldrb r0, [r3, 0x6]
|
||||
cmp r0, 0x2
|
||||
beq _08112C2C
|
||||
cmp r0, 0x2
|
||||
bgt _08112BF8
|
||||
cmp r0, 0
|
||||
beq _08112C0C
|
||||
cmp r0, 0x1
|
||||
beq _08112C18
|
||||
b _08112C50
|
||||
.align 2, 0
|
||||
_08112BF0: .4byte gUnknown_3005E8C
|
||||
_08112BF4: .4byte 0x0000ffff
|
||||
_08112BF8:
|
||||
cmp r0, 0xFE
|
||||
beq _08112C50
|
||||
cmp r0, 0xFE
|
||||
bgt _08112C06
|
||||
cmp r0, 0x3
|
||||
beq _08112C4E
|
||||
b _08112C50
|
||||
_08112C06:
|
||||
cmp r0, 0xFF
|
||||
beq _08112C4C
|
||||
b _08112C50
|
||||
_08112C0C:
|
||||
ldr r0, _08112C14 @ =gUnknown_203AF9A
|
||||
ldrb r1, [r3]
|
||||
lsls r1, 1
|
||||
b _08112C20
|
||||
.align 2, 0
|
||||
_08112C14: .4byte gUnknown_203AF9A
|
||||
_08112C18:
|
||||
ldr r0, _08112C28 @ =gUnknown_203AF9A
|
||||
ldrb r1, [r3]
|
||||
lsls r1, 1
|
||||
adds r0, 0x1
|
||||
_08112C20:
|
||||
adds r1, r0
|
||||
ldrb r0, [r3, 0x3]
|
||||
strb r0, [r1]
|
||||
b _08112C50
|
||||
.align 2, 0
|
||||
_08112C28: .4byte gUnknown_203AF9A
|
||||
_08112C2C:
|
||||
ldr r2, _08112C48 @ =gUnknown_3005E90
|
||||
ldrb r1, [r3, 0x3]
|
||||
lsls r1, 24
|
||||
ldrb r0, [r3, 0x2]
|
||||
lsls r0, 16
|
||||
orrs r1, r0
|
||||
ldrb r0, [r3, 0x1]
|
||||
lsls r0, 8
|
||||
orrs r1, r0
|
||||
ldrb r0, [r3]
|
||||
orrs r1, r0
|
||||
str r1, [r2]
|
||||
b _08112C50
|
||||
.align 2, 0
|
||||
_08112C48: .4byte gUnknown_3005E90
|
||||
_08112C4C:
|
||||
movs r0, 0
|
||||
_08112C4E:
|
||||
strb r0, [r5]
|
||||
_08112C50:
|
||||
ldrb r2, [r5]
|
||||
cmp r2, 0
|
||||
bne _08112BA4
|
||||
b _08112C84
|
||||
_08112C58:
|
||||
movs r0, 0
|
||||
strb r0, [r5]
|
||||
b _08112C84
|
||||
_08112C5E:
|
||||
bl ScriptContext2_IsEnabled
|
||||
lsls r0, 24
|
||||
lsrs r0, 24
|
||||
cmp r0, 0x1
|
||||
beq _08112C84
|
||||
ldr r1, _08112C8C @ =gUnknown_203B01A
|
||||
ldrh r0, [r1]
|
||||
adds r0, 0x1
|
||||
strh r0, [r1]
|
||||
_08112C72:
|
||||
ldr r0, _08112C90 @ =gUnknown_203AF98
|
||||
ldr r1, _08112C94 @ =gUnknown_3005E8C
|
||||
ldrh r0, [r0]
|
||||
ldrh r1, [r1]
|
||||
cmp r0, r1
|
||||
bcc _08112C84
|
||||
ldr r1, _08112C98 @ =gUnknown_3005E88
|
||||
movs r0, 0
|
||||
strb r0, [r1]
|
||||
_08112C84:
|
||||
pop {r4-r7}
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_08112C8C: .4byte gUnknown_203B01A
|
||||
_08112C90: .4byte gUnknown_203AF98
|
||||
_08112C94: .4byte gUnknown_3005E8C
|
||||
_08112C98: .4byte gUnknown_3005E88
|
||||
thumb_func_end sub_8112B3C
|
||||
|
||||
thumb_func_start sub_8112C9C
|
||||
sub_8112C9C: @ 8112C9C
|
||||
ldr r1, _08112CA8 @ =gUnknown_203B01A
|
||||
|
||||
+257
-2
@@ -1550,11 +1550,11 @@ void sub_811278C(u8 a0, u8 a1)
|
||||
}
|
||||
}
|
||||
|
||||
void sub_81127F8(u32 * a0)
|
||||
void sub_81127F8(struct UnkStruct_3005E90 * a0)
|
||||
{
|
||||
if (gUnknown_203AF98 < gUnknown_3005E8C)
|
||||
{
|
||||
u32 r2 = *a0 & 0x00FF00F3;
|
||||
u32 r2 = *(u32 *)a0 & 0x00FF00F3;
|
||||
gUnknown_3005E94[gUnknown_203AF98].unk_4 = gUnknown_203B01A;
|
||||
gUnknown_3005E94[gUnknown_203AF98].unk_6 = 2;
|
||||
gUnknown_3005E94[gUnknown_203AF98].unk_0 = r2;
|
||||
@@ -1677,3 +1677,258 @@ void sub_8112940(u8 a0, struct UnkStruct_203AE98 *a1, u16 a2)
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
#ifdef NONMATCHING
|
||||
void sub_8112B3C(void)
|
||||
{
|
||||
switch (gUnknown_3005E88)
|
||||
{
|
||||
case 0:
|
||||
break;
|
||||
case 1:
|
||||
if (sub_8112CEC())
|
||||
{
|
||||
if (gUnknown_203B01A != 0)
|
||||
gUnknown_203B01A--;
|
||||
else
|
||||
{
|
||||
while (1)
|
||||
{
|
||||
switch (gUnknown_3005E94[gUnknown_203AF98].unk_6)
|
||||
{
|
||||
case 0:
|
||||
gUnknown_203AF9A[gUnknown_3005E94[gUnknown_203AF98].unk_0][0] = gUnknown_3005E94[gUnknown_203AF98].unk_3;
|
||||
break;
|
||||
case 1:
|
||||
gUnknown_203AF9A[gUnknown_3005E94[gUnknown_203AF98].unk_0][1] = gUnknown_3005E94[gUnknown_203AF98].unk_3;
|
||||
break;
|
||||
case 2:
|
||||
*(u32 *)&gUnknown_3005E90 = ((gUnknown_3005E94[gUnknown_203AF98].unk_3 << 24) | (gUnknown_3005E94[gUnknown_203AF98].unk_2 << 16) | (gUnknown_3005E94[gUnknown_203AF98].unk_1 << 8) | (gUnknown_3005E94[gUnknown_203AF98].unk_0 << 0));
|
||||
break;
|
||||
case 3:
|
||||
gUnknown_3005E88 = 3;
|
||||
break;
|
||||
case 0xFE:
|
||||
break;
|
||||
case 0xFF:
|
||||
gUnknown_3005E88 = 0;
|
||||
break;
|
||||
}
|
||||
if (gUnknown_3005E88 == 0)
|
||||
break;
|
||||
if (++gUnknown_203AF98 >= gUnknown_3005E8C)
|
||||
{
|
||||
gUnknown_3005E88 = 0;
|
||||
break;
|
||||
}
|
||||
gUnknown_203B01A = gUnknown_3005E94[gUnknown_203AF98].unk_4;
|
||||
if (gUnknown_3005E88 == 3)
|
||||
break;
|
||||
if (gUnknown_203B01A == 0)
|
||||
continue;
|
||||
if (gUnknown_203B01A == 0xFFFF)
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
else if (gUnknown_203AF98 >= gUnknown_3005E8C)
|
||||
gUnknown_3005E88 = 0;
|
||||
break;
|
||||
case 2:
|
||||
if (ScriptContext2_IsEnabled() != 1)
|
||||
gUnknown_203B01A++;
|
||||
if (gUnknown_203AF98 >= gUnknown_3005E8C)
|
||||
gUnknown_3005E88 = 0;
|
||||
break;
|
||||
case 3:
|
||||
break;
|
||||
case 4:
|
||||
break;
|
||||
}
|
||||
}
|
||||
#else
|
||||
NAKED
|
||||
void sub_8112B3C(void)
|
||||
{
|
||||
asm_unified("\tpush {r4-r7,lr}\n"
|
||||
"\tldr r0, _08112B54 @ =gUnknown_3005E88\n"
|
||||
"\tldrb r0, [r0]\n"
|
||||
"\tcmp r0, 0x4\n"
|
||||
"\tbls _08112B48\n"
|
||||
"\tb _08112C84\n"
|
||||
"_08112B48:\n"
|
||||
"\tlsls r0, 2\n"
|
||||
"\tldr r1, _08112B58 @ =_08112B5C\n"
|
||||
"\tadds r0, r1\n"
|
||||
"\tldr r0, [r0]\n"
|
||||
"\tmov pc, r0\n"
|
||||
"\t.align 2, 0\n"
|
||||
"_08112B54: .4byte gUnknown_3005E88\n"
|
||||
"_08112B58: .4byte _08112B5C\n"
|
||||
"\t.align 2, 0\n"
|
||||
"_08112B5C:\n"
|
||||
"\t.4byte _08112C84\n"
|
||||
"\t.4byte _08112B70\n"
|
||||
"\t.4byte _08112C5E\n"
|
||||
"\t.4byte _08112C84\n"
|
||||
"\t.4byte _08112C84\n"
|
||||
"_08112B70:\n"
|
||||
"\tbl sub_8112CEC\n"
|
||||
"\tlsls r0, 24\n"
|
||||
"\tcmp r0, 0\n"
|
||||
"\tbeq _08112B7C\n"
|
||||
"\tb _08112C72\n"
|
||||
"_08112B7C:\n"
|
||||
"\tldr r0, _08112B8C @ =gUnknown_203B01A\n"
|
||||
"\tldrh r1, [r0]\n"
|
||||
"\tadds r7, r0, 0\n"
|
||||
"\tcmp r1, 0\n"
|
||||
"\tbeq _08112B90\n"
|
||||
"\tsubs r0, r1, 0x1\n"
|
||||
"\tstrh r0, [r7]\n"
|
||||
"\tb _08112C84\n"
|
||||
"\t.align 2, 0\n"
|
||||
"_08112B8C: .4byte gUnknown_203B01A\n"
|
||||
"_08112B90:\n"
|
||||
"\tldr r5, _08112B98 @ =gUnknown_3005E88\n"
|
||||
"\tldr r4, _08112B9C @ =gUnknown_203AF98\n"
|
||||
"\tldr r6, _08112BA0 @ =gUnknown_3005E94\n"
|
||||
"\tb _08112BD4\n"
|
||||
"\t.align 2, 0\n"
|
||||
"_08112B98: .4byte gUnknown_3005E88\n"
|
||||
"_08112B9C: .4byte gUnknown_203AF98\n"
|
||||
"_08112BA0: .4byte gUnknown_3005E94\n"
|
||||
"_08112BA4:\n"
|
||||
"\tldrh r0, [r4]\n"
|
||||
"\tadds r0, 0x1\n"
|
||||
"\tstrh r0, [r4]\n"
|
||||
"\tldr r1, _08112BF0 @ =gUnknown_3005E8C\n"
|
||||
"\tlsls r0, 16\n"
|
||||
"\tlsrs r0, 16\n"
|
||||
"\tldrh r1, [r1]\n"
|
||||
"\tcmp r0, r1\n"
|
||||
"\tbcs _08112C58\n"
|
||||
"\tldrh r0, [r4]\n"
|
||||
"\tldr r1, [r6]\n"
|
||||
"\tlsls r0, 3\n"
|
||||
"\tadds r0, r1\n"
|
||||
"\tldrh r0, [r0, 0x4]\n"
|
||||
"\tstrh r0, [r7]\n"
|
||||
"\tcmp r2, 0x3\n"
|
||||
"\tbeq _08112C84\n"
|
||||
"\tlsls r0, 16\n"
|
||||
"\tlsrs r1, r0, 16\n"
|
||||
"\tcmp r1, 0\n"
|
||||
"\tbeq _08112BD4\n"
|
||||
"\tldr r0, _08112BF4 @ =0x0000ffff\n"
|
||||
"\tcmp r1, r0\n"
|
||||
"\tbne _08112C84\n"
|
||||
"_08112BD4:\n"
|
||||
"\tldrh r0, [r4]\n"
|
||||
"\tldr r1, [r6]\n"
|
||||
"\tlsls r0, 3\n"
|
||||
"\tadds r3, r0, r1\n"
|
||||
"\tldrb r0, [r3, 0x6]\n"
|
||||
"\tcmp r0, 0x2\n"
|
||||
"\tbeq _08112C2C\n"
|
||||
"\tcmp r0, 0x2\n"
|
||||
"\tbgt _08112BF8\n"
|
||||
"\tcmp r0, 0\n"
|
||||
"\tbeq _08112C0C\n"
|
||||
"\tcmp r0, 0x1\n"
|
||||
"\tbeq _08112C18\n"
|
||||
"\tb _08112C50\n"
|
||||
"\t.align 2, 0\n"
|
||||
"_08112BF0: .4byte gUnknown_3005E8C\n"
|
||||
"_08112BF4: .4byte 0x0000ffff\n"
|
||||
"_08112BF8:\n"
|
||||
"\tcmp r0, 0xFE\n"
|
||||
"\tbeq _08112C50\n"
|
||||
"\tcmp r0, 0xFE\n"
|
||||
"\tbgt _08112C06\n"
|
||||
"\tcmp r0, 0x3\n"
|
||||
"\tbeq _08112C4E\n"
|
||||
"\tb _08112C50\n"
|
||||
"_08112C06:\n"
|
||||
"\tcmp r0, 0xFF\n"
|
||||
"\tbeq _08112C4C\n"
|
||||
"\tb _08112C50\n"
|
||||
"_08112C0C:\n"
|
||||
"\tldr r0, _08112C14 @ =gUnknown_203AF9A\n"
|
||||
"\tldrb r1, [r3]\n"
|
||||
"\tlsls r1, 1\n"
|
||||
"\tb _08112C20\n"
|
||||
"\t.align 2, 0\n"
|
||||
"_08112C14: .4byte gUnknown_203AF9A\n"
|
||||
"_08112C18:\n"
|
||||
"\tldr r0, _08112C28 @ =gUnknown_203AF9A\n"
|
||||
"\tldrb r1, [r3]\n"
|
||||
"\tlsls r1, 1\n"
|
||||
"\tadds r0, 0x1\n"
|
||||
"_08112C20:\n"
|
||||
"\tadds r1, r0\n"
|
||||
"\tldrb r0, [r3, 0x3]\n"
|
||||
"\tstrb r0, [r1]\n"
|
||||
"\tb _08112C50\n"
|
||||
"\t.align 2, 0\n"
|
||||
"_08112C28: .4byte gUnknown_203AF9A\n"
|
||||
"_08112C2C:\n"
|
||||
"\tldr r2, _08112C48 @ =gUnknown_3005E90\n"
|
||||
"\tldrb r1, [r3, 0x3]\n"
|
||||
"\tlsls r1, 24\n"
|
||||
"\tldrb r0, [r3, 0x2]\n"
|
||||
"\tlsls r0, 16\n"
|
||||
"\torrs r1, r0\n"
|
||||
"\tldrb r0, [r3, 0x1]\n"
|
||||
"\tlsls r0, 8\n"
|
||||
"\torrs r1, r0\n"
|
||||
"\tldrb r0, [r3]\n"
|
||||
"\torrs r1, r0\n"
|
||||
"\tstr r1, [r2]\n"
|
||||
"\tb _08112C50\n"
|
||||
"\t.align 2, 0\n"
|
||||
"_08112C48: .4byte gUnknown_3005E90\n"
|
||||
"_08112C4C:\n"
|
||||
"\tmovs r0, 0\n"
|
||||
"_08112C4E:\n"
|
||||
"\tstrb r0, [r5]\n"
|
||||
"_08112C50:\n"
|
||||
"\tldrb r2, [r5]\n"
|
||||
"\tcmp r2, 0\n"
|
||||
"\tbne _08112BA4\n"
|
||||
"\tb _08112C84\n"
|
||||
"_08112C58:\n"
|
||||
"\tmovs r0, 0\n"
|
||||
"\tstrb r0, [r5]\n"
|
||||
"\tb _08112C84\n"
|
||||
"_08112C5E:\n"
|
||||
"\tbl ScriptContext2_IsEnabled\n"
|
||||
"\tlsls r0, 24\n"
|
||||
"\tlsrs r0, 24\n"
|
||||
"\tcmp r0, 0x1\n"
|
||||
"\tbeq _08112C84\n"
|
||||
"\tldr r1, _08112C8C @ =gUnknown_203B01A\n"
|
||||
"\tldrh r0, [r1]\n"
|
||||
"\tadds r0, 0x1\n"
|
||||
"\tstrh r0, [r1]\n"
|
||||
"_08112C72:\n"
|
||||
"\tldr r0, _08112C90 @ =gUnknown_203AF98\n"
|
||||
"\tldr r1, _08112C94 @ =gUnknown_3005E8C\n"
|
||||
"\tldrh r0, [r0]\n"
|
||||
"\tldrh r1, [r1]\n"
|
||||
"\tcmp r0, r1\n"
|
||||
"\tbcc _08112C84\n"
|
||||
"\tldr r1, _08112C98 @ =gUnknown_3005E88\n"
|
||||
"\tmovs r0, 0\n"
|
||||
"\tstrb r0, [r1]\n"
|
||||
"_08112C84:\n"
|
||||
"\tpop {r4-r7}\n"
|
||||
"\tpop {r0}\n"
|
||||
"\tbx r0\n"
|
||||
"\t.align 2, 0\n"
|
||||
"_08112C8C: .4byte gUnknown_203B01A\n"
|
||||
"_08112C90: .4byte gUnknown_203AF98\n"
|
||||
"_08112C94: .4byte gUnknown_3005E8C\n"
|
||||
"_08112C98: .4byte gUnknown_3005E88");
|
||||
}
|
||||
#endif
|
||||
|
||||
Reference in New Issue
Block a user