through sub_8144C80

This commit is contained in:
PikalaxALT 2018-11-30 11:48:13 -05:00
parent 5a80a339cd
commit de6cf9f0de
2 changed files with 113 additions and 249 deletions

View File

@ -5,253 +5,6 @@
.text
thumb_func_start sub_8144AEC
sub_8144AEC: @ 8144AEC
push {r4,lr}
ldr r4, _08144B08 @ =gUnknown_203F3C0
movs r0, 0x4C
bl AllocZeroed
str r0, [r4]
movs r1, 0x1
movs r2, 0
bl mevent_srv_ish_init
pop {r4}
pop {r0}
bx r0
.align 2, 0
_08144B08: .4byte gUnknown_203F3C0
thumb_func_end sub_8144AEC
thumb_func_start sub_8144B0C
sub_8144B0C: @ 8144B0C
push {r4-r6,lr}
adds r6, r0, 0
ldr r4, _08144B1C @ =gUnknown_203F3C0
ldr r0, [r4]
cmp r0, 0
bne _08144B20
movs r0, 0x6
b _08144B40
.align 2, 0
_08144B1C: .4byte gUnknown_203F3C0
_08144B20:
bl mevent_srv_ish_exec
adds r5, r0, 0
cmp r5, 0x6
bne _08144B3E
ldr r0, [r4]
ldr r1, [r0, 0x4]
strh r1, [r6]
bl sub_8144BC0
ldr r0, [r4]
bl Free
movs r0, 0
str r0, [r4]
_08144B3E:
adds r0, r5, 0
_08144B40:
pop {r4-r6}
pop {r1}
bx r1
thumb_func_end sub_8144B0C
thumb_func_start sub_8144B48
sub_8144B48: @ 8144B48
ldr r0, _08144B54 @ =gUnknown_203F3C0
ldr r1, [r0]
ldr r0, [r1, 0xC]
adds r0, 0x1
str r0, [r1, 0xC]
bx lr
.align 2, 0
_08144B54: .4byte gUnknown_203F3C0
thumb_func_end sub_8144B48
thumb_func_start sub_8144B58
sub_8144B58: @ 8144B58
ldr r0, _08144B60 @ =gUnknown_203F3C0
ldr r0, [r0]
ldr r0, [r0, 0x20]
bx lr
.align 2, 0
_08144B60: .4byte gUnknown_203F3C0
thumb_func_end sub_8144B58
thumb_func_start sub_8144B64
sub_8144B64: @ 8144B64
ldr r1, _08144B6C @ =gUnknown_203F3C0
ldr r1, [r1]
str r0, [r1, 0x4]
bx lr
.align 2, 0
_08144B6C: .4byte gUnknown_203F3C0
thumb_func_end sub_8144B64
thumb_func_start mevent_srv_ish_init
mevent_srv_ish_init: @ 8144B70
push {r4-r6,lr}
mov r6, r8
push {r6}
adds r4, r0, 0
adds r6, r1, 0
mov r8, r2
movs r0, 0
str r0, [r4]
str r0, [r4, 0x8]
str r0, [r4, 0xC]
movs r5, 0x80
lsls r5, 3
adds r0, r5, 0
bl AllocZeroed
str r0, [r4, 0x14]
adds r0, r5, 0
bl AllocZeroed
str r0, [r4, 0x18]
adds r0, r5, 0
bl AllocZeroed
str r0, [r4, 0x1C]
movs r0, 0x40
bl AllocZeroed
str r0, [r4, 0x20]
adds r4, 0x24
adds r0, r4, 0
adds r1, r6, 0
mov r2, r8
bl sub_814485C
pop {r3}
mov r8, r3
pop {r4-r6}
pop {r0}
bx r0
thumb_func_end mevent_srv_ish_init
thumb_func_start sub_8144BC0
sub_8144BC0: @ 8144BC0
push {r4,lr}
adds r4, r0, 0
ldr r0, [r4, 0x14]
bl Free
ldr r0, [r4, 0x18]
bl Free
ldr r0, [r4, 0x1C]
bl Free
ldr r0, [r4, 0x20]
bl Free
pop {r4}
pop {r0}
bx r0
thumb_func_end sub_8144BC0
thumb_func_start sub_8144BE4
sub_8144BE4: @ 8144BE4
push {r4,lr}
adds r4, r0, 0
ldr r0, [r4, 0x1C]
ldr r1, [r4, 0x18]
movs r2, 0x80
lsls r2, 3
bl memcpy
movs r0, 0
str r0, [r4, 0x10]
pop {r4}
pop {r0}
bx r0
thumb_func_end sub_8144BE4
thumb_func_start sub_8144C00
sub_8144C00: @ 8144C00
push {r4-r6,lr}
sub sp, 0x4
adds r4, r0, 0
adds r6, r1, 0
adds r5, r2, 0
movs r0, 0
str r0, [sp]
ldr r1, [r4, 0x14]
ldr r2, _08144C30 @ =0x05000100
mov r0, sp
bl CpuSet
ldr r2, [r4, 0x14]
str r5, [r2]
adds r4, 0x24
adds r0, r4, 0
adds r1, r6, 0
movs r3, 0x4
bl sub_8144888
add sp, 0x4
pop {r4-r6}
pop {r0}
bx r0
.align 2, 0
_08144C30: .4byte 0x05000100
thumb_func_end sub_8144C00
thumb_func_start sub_8144C34
sub_8144C34: @ 8144C34
push {r4,lr}
adds r4, r0, 0
ldr r0, [r4, 0x1C]
ldr r1, _08144C58 @ =gUnknown_84687E0
movs r2, 0x80
lsls r2, 3
bl memcpy
movs r1, 0
str r1, [r4, 0x10]
movs r0, 0x4
str r0, [r4, 0x8]
str r1, [r4, 0xC]
movs r0, 0
pop {r4}
pop {r1}
bx r1
.align 2, 0
_08144C58: .4byte gUnknown_84687E0
thumb_func_end sub_8144C34
thumb_func_start sub_8144C5C
sub_8144C5C: @ 8144C5C
movs r0, 0x6
bx lr
thumb_func_end sub_8144C5C
thumb_func_start sub_8144C60
sub_8144C60: @ 8144C60
push {r4,lr}
adds r4, r0, 0
adds r0, 0x24
bl sub_8144844
cmp r0, 0
beq _08144C76
movs r0, 0x4
str r0, [r4, 0x8]
movs r0, 0
str r0, [r4, 0xC]
_08144C76:
movs r0, 0x1
pop {r4}
pop {r1}
bx r1
thumb_func_end sub_8144C60
thumb_func_start sub_8144C80
sub_8144C80: @ 8144C80
push {r4,lr}
adds r4, r0, 0
adds r0, 0x24
bl sub_8144850
cmp r0, 0
beq _08144C96
movs r0, 0x4
str r0, [r4, 0x8]
movs r0, 0
str r0, [r4, 0xC]
_08144C96:
movs r0, 0x1
pop {r4}
pop {r1}
bx r1
thumb_func_end sub_8144C80
thumb_func_start sub_8144CA0
sub_8144CA0: @ 8144CA0
push {r4,lr}

View File

@ -51,6 +51,11 @@ EWRAM_DATA struct mevent_srv_ish * gUnknown_203F3C0 = NULL;
u32 sub_814490C(struct mevent_srv_sub *);
u32 sub_81449E0(struct mevent_srv_sub *);
void mevent_srv_ish_init(struct mevent_srv_ish *, u32, u32);
u32 mevent_srv_ish_exec(struct mevent_srv_ish *);
void sub_8144BC0(struct mevent_srv_ish *);
extern u8 gUnknown_84687E0[0x400];
u32 sub_8144844(struct mevent_srv_sub * srv)
{
@ -62,7 +67,7 @@ u32 sub_8144850(struct mevent_srv_sub * srv)
return srv->unk_24(srv);
}
void sub_814485C(struct mevent_srv_sub * srv, u8 a1, u8 a2)
void sub_814485C(struct mevent_srv_sub * srv, u32 a1, u32 a2)
{
srv->unk_04 = a1;
srv->unk_05 = a2;
@ -79,7 +84,7 @@ void sub_814485C(struct mevent_srv_sub * srv, u8 a1, u8 a2)
srv->unk_20 = sub_814490C;
}
void sub_8144888(struct mevent_srv_sub * srv, u16 a1, void * a2, u32 a3)
void sub_8144888(struct mevent_srv_sub * srv, u32 a1, void * a2, u32 a3)
{
srv->unk_00 = 0;
srv->unk_0E = a1;
@ -247,3 +252,109 @@ bool32 sub_81449E0(struct mevent_srv_sub * srv)
return FALSE;
}
void sub_8144AEC(void)
{
gUnknown_203F3C0 = AllocZeroed(sizeof(struct mevent_srv_ish));
mevent_srv_ish_init(gUnknown_203F3C0, 1, 0);
}
u32 sub_8144B0C(u16 * a0)
{
u32 result;
if (gUnknown_203F3C0 == NULL)
return 6;
result = mevent_srv_ish_exec(gUnknown_203F3C0);
if (result == 6)
{
*a0 = gUnknown_203F3C0->unk_04;
sub_8144BC0(gUnknown_203F3C0);
Free(gUnknown_203F3C0);
gUnknown_203F3C0 = NULL;
}
return result;
}
void sub_8144B48(void)
{
gUnknown_203F3C0->unk_0C++;
}
void * sub_8144B58(void)
{
return gUnknown_203F3C0->unk_20;
}
void sub_8144B64(u32 a0)
{
gUnknown_203F3C0->unk_04 = a0;
}
void mevent_srv_ish_init(struct mevent_srv_ish * srv, u32 a1, u32 a2)
{
srv->unk_00 = 0;
srv->unk_08 = 0;
srv->unk_0C = 0;
srv->unk_14 = AllocZeroed(0x400);
srv->unk_18 = AllocZeroed(0x400);
srv->unk_1C = AllocZeroed(0x400);
srv->unk_20 = AllocZeroed(0x40);
sub_814485C(&srv->unk_24, a1, a2);
}
void sub_8144BC0(struct mevent_srv_ish * srv)
{
Free(srv->unk_14);
Free(srv->unk_18);
Free(srv->unk_1C);
Free(srv->unk_20);
}
void sub_8144BE4(struct mevent_srv_ish * srv)
{
memcpy(srv->unk_1C, srv->unk_18, 0x400);
srv->unk_10 = 0;
}
void sub_8144C00(struct mevent_srv_ish * srv, u32 a1, u32 a2)
{
CpuFill32(0, srv->unk_14, 0x400);
*(u32 *)srv->unk_14 = a2;
sub_8144888(&srv->unk_24, a1, srv->unk_14, 4);
}
// funcs in array gUnknown_8466F60
u32 sub_8144C34(struct mevent_srv_ish * srv)
{
memcpy(srv->unk_1C, gUnknown_84687E0, sizeof(gUnknown_84687E0));
srv->unk_10 = 0;
srv->unk_08 = 4;
srv->unk_0C = 0;
return 0;
}
u32 sub_8144C5C(struct mevent_srv_ish * srv)
{
return 6;
}
u32 sub_8144C60(struct mevent_srv_ish * srv)
{
if (sub_8144844(&srv->unk_24))
{
srv->unk_08 = 4;
srv->unk_0C = 0;
}
return 1;
}
u32 sub_8144C80(struct mevent_srv_ish * srv)
{
if (sub_8144850(&srv->unk_24))
{
srv->unk_08 = 4;
srv->unk_0C = 0;
}
return 1;
}