through sub_81138F8
This commit is contained in:
-249
@@ -5,255 +5,6 @@
|
|||||||
|
|
||||||
.text
|
.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
|
thumb_func_start sub_811390C
|
||||||
sub_811390C: @ 811390C
|
sub_811390C: @ 811390C
|
||||||
push {r4,r5,lr}
|
push {r4,r5,lr}
|
||||||
|
|||||||
+111
-12
@@ -93,11 +93,13 @@ EWRAM_DATA u16 *gUnknown_203AE90 = NULL;
|
|||||||
EWRAM_DATA struct UnkStruct_203AE94 gUnknown_203AE94 = {0};
|
EWRAM_DATA struct UnkStruct_203AE94 gUnknown_203AE94 = {0};
|
||||||
EWRAM_DATA struct UnkStruct_203AE98 gUnknown_203AE98[32] = {0};
|
EWRAM_DATA struct UnkStruct_203AE98 gUnknown_203AE98[32] = {0};
|
||||||
EWRAM_DATA u16 gUnknown_203AF98 = 0;
|
EWRAM_DATA u16 gUnknown_203AF98 = 0;
|
||||||
EWRAM_DATA u8 gUnknown_203AF9A[64][2];
|
EWRAM_DATA u8 gUnknown_203AF9A[64][2] = {{0}};
|
||||||
EWRAM_DATA u16 gUnknown_203B01A;
|
EWRAM_DATA u16 gUnknown_203B01A = 0;
|
||||||
EWRAM_DATA u16 gUnknown_203B01C;
|
EWRAM_DATA u16 gUnknown_203B01C = 0;
|
||||||
EWRAM_DATA u16 gUnknown_203B01E;
|
EWRAM_DATA u16 gUnknown_203B01E = 0;
|
||||||
EWRAM_DATA u8 gUnknown_203B020;
|
EWRAM_DATA u8 gUnknown_203B020 = 0;
|
||||||
|
|
||||||
|
EWRAM_DATA ALIGNED(2) u16 gUnknown_203B024[16] = {0};
|
||||||
|
|
||||||
EWRAM_DATA u16 gUnknown_203B044[2] = {0};
|
EWRAM_DATA u16 gUnknown_203B044[2] = {0};
|
||||||
EWRAM_DATA u8 gUnknown_203B048 = 0;
|
EWRAM_DATA u8 gUnknown_203B048 = 0;
|
||||||
@@ -156,11 +158,12 @@ void sub_81134CC(struct Var4038Struct *);
|
|||||||
bool8 sub_8113508(struct Var4038Struct * );
|
bool8 sub_8113508(struct Var4038Struct * );
|
||||||
void sub_8113524(struct Var4038Struct *);
|
void sub_8113524(struct Var4038Struct *);
|
||||||
bool8 sub_81136D4(void);
|
bool8 sub_81136D4(void);
|
||||||
bool8 sub_8113778(u16, void*);
|
bool8 sub_8113778(u16, u16 *);
|
||||||
void* sub_8113828(u16, void*);
|
bool8 sub_81137E4(u16, u16 *);
|
||||||
bool8 sub_81138A0(u16, void*);
|
void * sub_8113828(u16, u16 *);
|
||||||
bool8 sub_8113954(u16, void*);
|
bool8 sub_81138A0(u16, u16 *);
|
||||||
bool8 sub_8113A44(u16, void*);
|
bool8 sub_8113954(u16, u16 *);
|
||||||
|
bool8 sub_8113A44(u16, u16 *);
|
||||||
void sub_8113B94(u16);
|
void sub_8113B94(u16);
|
||||||
void *sub_8113F14(void *, void *);
|
void *sub_8113F14(void *, void *);
|
||||||
void *sub_8113F80(void *, void *);
|
void *sub_8113F80(void *, void *);
|
||||||
@@ -2639,7 +2642,7 @@ void * (*const gUnknown_8456948[])(void *, void *) = {
|
|||||||
};
|
};
|
||||||
|
|
||||||
#ifdef NONMATCHING
|
#ifdef NONMATCHING
|
||||||
void sub_8113550(u16 a0, void * a1)
|
void sub_8113550(u16 a0, u16 * a1)
|
||||||
{
|
{
|
||||||
void * r1;
|
void * r1;
|
||||||
|
|
||||||
@@ -2726,7 +2729,7 @@ void sub_8113550(u16 a0, void * a1)
|
|||||||
}
|
}
|
||||||
#else
|
#else
|
||||||
NAKED
|
NAKED
|
||||||
void sub_8113550(u16 a0, void * a1)
|
void sub_8113550(u16 a0, u16 * a1)
|
||||||
{
|
{
|
||||||
asm_unified("\tpush {r4,r5,lr}\n"
|
asm_unified("\tpush {r4,r5,lr}\n"
|
||||||
"\tadds r5, r1, 0\n"
|
"\tadds r5, r1, 0\n"
|
||||||
@@ -2926,3 +2929,99 @@ bool8 sub_81136D4(void)
|
|||||||
|
|
||||||
return FALSE;
|
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));
|
||||||
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user