through sub_81138F8

This commit is contained in:
PikalaxALT 2018-11-03 16:21:34 -04:00
parent 8dcea40e58
commit be7cda00a1
2 changed files with 111 additions and 261 deletions

View File

@ -5,255 +5,6 @@
.text
thumb_func_start sub_8113748
sub_8113748: @ 8113748
push {lr}
bl sub_81136D4
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
bne _08113770
ldr r0, _08113764 @ =gUnknown_203ADFA
ldrb r0, [r0]
cmp r0, 0x2
bne _08113768
movs r0, 0x1
b _08113772
.align 2, 0
_08113764: .4byte gUnknown_203ADFA
_08113768:
cmp r0, 0x1
bne _08113770
bl sub_8112364
_08113770:
movs r0, 0
_08113772:
pop {r1}
bx r1
thumb_func_end sub_8113748
thumb_func_start sub_8113778
sub_8113778: @ 8113778
push {r4,r5,lr}
adds r5, r1, 0
lsls r0, 16
lsrs r4, r0, 16
cmp r4, 0x24
beq _081137CE
cmp r4, 0xB
beq _081137CE
ldr r0, _081137D4 @ =0x0000082c
bl FlagGet
lsls r0, 24
cmp r0, 0
bne _081137AC
cmp r4, 0x3
beq _081137CE
cmp r4, 0x1F
beq _081137CE
adds r0, r4, 0
adds r1, r5, 0
bl sub_81137E4
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
beq _081137CE
_081137AC:
ldr r0, _081137D8 @ =0x00000844
bl FlagGet
lsls r0, 24
cmp r0, 0
bne _081137DC
subs r0, r4, 0x4
lsls r0, 16
lsrs r0, 16
cmp r0, 0x6
bls _081137CE
cmp r4, 0x16
beq _081137CE
cmp r4, 0x19
beq _081137CE
cmp r4, 0x1A
bne _081137DC
_081137CE:
movs r0, 0x1
b _081137DE
.align 2, 0
_081137D4: .4byte 0x0000082c
_081137D8: .4byte 0x00000844
_081137DC:
movs r0, 0
_081137DE:
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end sub_8113778
thumb_func_start sub_81137E4
sub_81137E4: @ 81137E4
push {lr}
lsls r0, 16
lsrs r0, 16
cmp r0, 0x22
bne _08113814
ldr r2, _08113810 @ =gTrainers
ldrh r1, [r1]
lsls r0, r1, 2
adds r0, r1
lsls r0, 3
adds r0, r2
ldrb r1, [r0, 0x1]
cmp r1, 0x51
beq _08113814
cmp r1, 0x59
beq _08113814
cmp r1, 0x5A
beq _08113814
cmp r1, 0x53
beq _08113814
movs r0, 0x1
b _08113816
.align 2, 0
_08113810: .4byte gTrainers
_08113814:
movs r0, 0
_08113816:
pop {r1}
bx r1
thumb_func_end sub_81137E4
thumb_func_start sub_811381C
sub_811381C: @ 811381C
ldr r1, _08113824 @ =gUnknown_203B048
movs r0, 0
strb r0, [r1]
bx lr
.align 2, 0
_08113824: .4byte gUnknown_203B048
thumb_func_end sub_811381C
thumb_func_start sub_8113828
sub_8113828: @ 8113828
push {r4,r5,lr}
adds r5, r1, 0
lsls r0, 16
lsrs r4, r0, 16
adds r0, r4, 0
bl sub_8113778
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
beq _0811384C
adds r0, r4, 0
adds r1, r5, 0
bl sub_81153A8
lsls r0, 24
cmp r0, 0
bne _08113850
_0811384C:
movs r0, 0
b _0811388C
_08113850:
adds r0, r4, 0
bl sub_8110AEC
adds r0, r4, 0
bl sub_8113B94
cmp r4, 0x1F
bne _08113874
ldr r2, _0811386C @ =gUnknown_203AE04
ldr r1, _08113870 @ =gUnknown_203AE08
ldr r0, [r1]
str r0, [r2]
adds r2, r1, 0
b _0811387C
.align 2, 0
_0811386C: .4byte gUnknown_203AE04
_08113870: .4byte gUnknown_203AE08
_08113874:
ldr r1, _08113894 @ =gUnknown_203AE04
movs r0, 0
str r0, [r1]
ldr r2, _08113898 @ =gUnknown_203AE08
_0811387C:
ldr r0, _0811389C @ =gUnknown_8456948
lsls r1, r4, 2
adds r1, r0
ldr r0, [r2]
ldr r2, [r1]
adds r1, r5, 0
bl _call_via_r2
_0811388C:
pop {r4,r5}
pop {r1}
bx r1
.align 2, 0
_08113894: .4byte gUnknown_203AE04
_08113898: .4byte gUnknown_203AE08
_0811389C: .4byte gUnknown_8456948
thumb_func_end sub_8113828
thumb_func_start sub_81138A0
sub_81138A0: @ 81138A0
push {r4,r5,lr}
adds r5, r1, 0
lsls r0, 16
lsrs r0, 16
adds r4, r0, 0
subs r0, 0xC
lsls r0, 16
lsrs r0, 16
cmp r0, 0x7
bls _081138B8
movs r0, 0
b _081138F0
_081138B8:
bl sub_81138F8
ldr r1, _081138E0 @ =gUnknown_203B024
strh r4, [r1]
adds r0, r4, 0
subs r0, 0x10
lsls r0, 16
lsrs r0, 16
cmp r0, 0x1
bls _081138EE
cmp r4, 0xC
beq _081138D4
cmp r4, 0x12
bne _081138E4
_081138D4:
adds r0, r1, 0x4
adds r1, r5, 0
movs r2, 0xC
bl memcpy
b _081138EE
.align 2, 0
_081138E0: .4byte gUnknown_203B024
_081138E4:
adds r0, r1, 0x4
adds r1, r5, 0
movs r2, 0x18
bl memcpy
_081138EE:
movs r0, 0x1
_081138F0:
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end sub_81138A0
thumb_func_start sub_81138F8
sub_81138F8: @ 81138F8
push {lr}
ldr r0, _08113908 @ =gUnknown_203B024
movs r1, 0
movs r2, 0x20
bl memset
pop {r0}
bx r0
.align 2, 0
_08113908: .4byte gUnknown_203B024
thumb_func_end sub_81138F8
thumb_func_start sub_811390C
sub_811390C: @ 811390C
push {r4,r5,lr}

View File

@ -93,11 +93,13 @@ EWRAM_DATA u16 *gUnknown_203AE90 = NULL;
EWRAM_DATA struct UnkStruct_203AE94 gUnknown_203AE94 = {0};
EWRAM_DATA struct UnkStruct_203AE98 gUnknown_203AE98[32] = {0};
EWRAM_DATA u16 gUnknown_203AF98 = 0;
EWRAM_DATA u8 gUnknown_203AF9A[64][2];
EWRAM_DATA u16 gUnknown_203B01A;
EWRAM_DATA u16 gUnknown_203B01C;
EWRAM_DATA u16 gUnknown_203B01E;
EWRAM_DATA u8 gUnknown_203B020;
EWRAM_DATA u8 gUnknown_203AF9A[64][2] = {{0}};
EWRAM_DATA u16 gUnknown_203B01A = 0;
EWRAM_DATA u16 gUnknown_203B01C = 0;
EWRAM_DATA u16 gUnknown_203B01E = 0;
EWRAM_DATA u8 gUnknown_203B020 = 0;
EWRAM_DATA ALIGNED(2) u16 gUnknown_203B024[16] = {0};
EWRAM_DATA u16 gUnknown_203B044[2] = {0};
EWRAM_DATA u8 gUnknown_203B048 = 0;
@ -156,11 +158,12 @@ void sub_81134CC(struct Var4038Struct *);
bool8 sub_8113508(struct Var4038Struct * );
void sub_8113524(struct Var4038Struct *);
bool8 sub_81136D4(void);
bool8 sub_8113778(u16, void*);
void* sub_8113828(u16, void*);
bool8 sub_81138A0(u16, void*);
bool8 sub_8113954(u16, void*);
bool8 sub_8113A44(u16, void*);
bool8 sub_8113778(u16, u16 *);
bool8 sub_81137E4(u16, u16 *);
void * sub_8113828(u16, u16 *);
bool8 sub_81138A0(u16, u16 *);
bool8 sub_8113954(u16, u16 *);
bool8 sub_8113A44(u16, u16 *);
void sub_8113B94(u16);
void *sub_8113F14(void *, void *);
void *sub_8113F80(void *, void *);
@ -2639,7 +2642,7 @@ void * (*const gUnknown_8456948[])(void *, void *) = {
};
#ifdef NONMATCHING
void sub_8113550(u16 a0, void * a1)
void sub_8113550(u16 a0, u16 * a1)
{
void * r1;
@ -2726,7 +2729,7 @@ void sub_8113550(u16 a0, void * a1)
}
#else
NAKED
void sub_8113550(u16 a0, void * a1)
void sub_8113550(u16 a0, u16 * a1)
{
asm_unified("\tpush {r4,r5,lr}\n"
"\tadds r5, r1, 0\n"
@ -2926,3 +2929,99 @@ bool8 sub_81136D4(void)
return FALSE;
}
bool8 sub_8113748(void)
{
if (sub_81136D4() != TRUE)
return FALSE;
if (gUnknown_203ADFA == 2)
return TRUE;
if (gUnknown_203ADFA == 1)
sub_8112364();
return FALSE;
}
bool8 sub_8113778(u16 a0, u16 * a1)
{
if (a0 == 36 || a0 == 11)
return TRUE;
if (!FlagGet(0x82C))
{
if (a0 == 3 || a0 == 31 || sub_81137E4(a0, a1) == TRUE)
return TRUE;
}
if (!FlagGet(0x844))
{
if (a0 == 4 || a0 == 5 || a0 == 6 || a0 == 7 || a0 == 8 || a0 == 9 || a0 == 10 || a0 == 22 || a0 == 25 || a0 == 26)
return TRUE;
}
return FALSE;
}
bool8 sub_81137E4(u16 a0, u16 * a1)
{
if (a0 == 34)
{
u8 trainerClass = gTrainers[*a1].trainerClass;
if ( trainerClass == 0x51
|| trainerClass == 0x59
|| trainerClass == 0x5A
|| trainerClass == 0x53)
return FALSE;
return TRUE;
}
return FALSE;
}
void sub_811381C(void)
{
gUnknown_203B048 = 0;
}
void * sub_8113828(u16 a0, u16 * a1)
{
if (sub_8113778(a0, a1) == TRUE)
return NULL;
if (sub_81153A8(a0, a1) == FALSE)
return NULL;
sub_8110AEC(a0);
sub_8113B94(a0);
if (a0 == 31)
gUnknown_203AE04 = gUnknown_203AE08;
else
gUnknown_203AE04 = NULL;
return gUnknown_8456948[a0](gUnknown_203AE08, a1);
}
bool8 sub_81138A0(u16 a0, u16 * a1)
{
if (a0 < 12 || a0 > 19)
return FALSE;
sub_81138F8();
gUnknown_203B024[0] = a0;
if (a0 < 16 || a0 > 17)
{
if (a0 == 12 || a0 == 18)
memcpy(gUnknown_203B024 + 2, a1, 12);
else
memcpy(gUnknown_203B024 + 2, a1, 24);
}
return TRUE;
}
void sub_81138F8(void)
{
memset(gUnknown_203B024, 0, sizeof(gUnknown_203B024));
}