some more work on decomping funcs

This commit is contained in:
Seth Barberee 2020-11-01 11:12:39 -06:00
parent 90655520b3
commit a0d2d8e951
4 changed files with 245 additions and 383 deletions

View File

@ -5,303 +5,6 @@
.text
thumb_func_start sub_8041F08
sub_8041F08:
push {lr}
sub sp, 0x8
movs r1, 0x2
str r1, [sp]
movs r1, 0
str r1, [sp, 0x4]
movs r1, 0x15
movs r2, 0x1
movs r3, 0x3
bl sub_8041550
add sp, 0x8
pop {r0}
bx r0
thumb_func_end sub_8041F08
thumb_func_start nullsub_90
nullsub_90:
bx lr
thumb_func_end nullsub_90
thumb_func_start sub_8041F28
sub_8041F28:
push {lr}
cmp r1, 0
bne _08041F3A
movs r1, 0xCA
lsls r1, 1
movs r2, 0x1
bl sub_804151C
b _08041F42
_08041F3A:
ldr r1, _08041F48
movs r2, 0x1
bl sub_804151C
_08041F42:
pop {r0}
bx r0
.align 2, 0
_08041F48: .4byte 0x00000193
thumb_func_end sub_8041F28
thumb_func_start sub_8041F4C
sub_8041F4C:
push {lr}
cmp r1, 0
bne _08041F60
ldr r1, _08041F5C
movs r2, 0x1
bl sub_804151C
b _08041F68
.align 2, 0
_08041F5C: .4byte 0x0000018f
_08041F60:
ldr r1, _08041F6C
movs r2, 0x1
bl sub_804151C
_08041F68:
pop {r0}
bx r0
.align 2, 0
_08041F6C: .4byte 0x00000191
thumb_func_end sub_8041F4C
thumb_func_start sub_8041F70
sub_8041F70:
push {lr}
cmp r1, 0
bne _08041F84
ldr r1, _08041F80
movs r2, 0x1
bl sub_804151C
b _08041F8E
.align 2, 0
_08041F80: .4byte 0x000001a9
_08041F84:
movs r1, 0xC9
lsls r1, 1
movs r2, 0x1
bl sub_804151C
_08041F8E:
pop {r0}
bx r0
thumb_func_end sub_8041F70
thumb_func_start sub_8041F94
sub_8041F94:
push {lr}
cmp r1, 0
bne _08041FA6
movs r1, 0xC7
lsls r1, 1
movs r2, 0x1
bl sub_804151C
b _08041FB0
_08041FA6:
movs r1, 0xC8
lsls r1, 1
movs r2, 0x1
bl sub_804151C
_08041FB0:
pop {r0}
bx r0
thumb_func_end sub_8041F94
thumb_func_start sub_8041FB4
sub_8041FB4:
push {lr}
cmp r1, 0
bne _08041FC8
ldr r1, _08041FC4
movs r2, 0x1
bl sub_804151C
b _08041FD2
.align 2, 0
_08041FC4: .4byte 0x000001a9
_08041FC8:
movs r1, 0xC9
lsls r1, 1
movs r2, 0x1
bl sub_804151C
_08041FD2:
pop {r0}
bx r0
thumb_func_end sub_8041FB4
thumb_func_start sub_8041FD8
sub_8041FD8:
push {lr}
cmp r1, 0
bne _08041FEA
movs r1, 0xCA
lsls r1, 1
movs r2, 0x1
bl sub_804151C
b _08041FF2
_08041FEA:
ldr r1, _08041FF8
movs r2, 0x1
bl sub_804151C
_08041FF2:
pop {r0}
bx r0
.align 2, 0
_08041FF8: .4byte 0x00000193
thumb_func_end sub_8041FD8
thumb_func_start sub_8041FFC
sub_8041FFC:
push {lr}
cmp r1, 0
bne _0804200E
movs r1, 0xC7
lsls r1, 1
movs r2, 0x1
bl sub_804151C
b _08042018
_0804200E:
movs r1, 0xC8
lsls r1, 1
movs r2, 0x1
bl sub_804151C
_08042018:
pop {r0}
bx r0
thumb_func_end sub_8041FFC
thumb_func_start sub_804201C
sub_804201C:
push {lr}
cmp r1, 0
bne _08042030
ldr r1, _0804202C
movs r2, 0x1
bl sub_804151C
b _08042038
.align 2, 0
_0804202C: .4byte 0x0000018f
_08042030:
ldr r1, _0804203C
movs r2, 0x1
bl sub_804151C
_08042038:
pop {r0}
bx r0
.align 2, 0
_0804203C: .4byte 0x00000191
thumb_func_end sub_804201C
thumb_func_start sub_8042040
sub_8042040:
push {lr}
cmp r1, 0
bne _08042052
movs r1, 0xC6
lsls r1, 1
movs r2, 0x1
bl sub_804151C
b _0804205A
_08042052:
movs r1, 0xD
movs r2, 0x1
bl sub_804151C
_0804205A:
pop {r0}
bx r0
thumb_func_end sub_8042040
thumb_func_start sub_8042060
sub_8042060:
push {lr}
cmp r1, 0
bne _08042074
ldr r1, _08042070
movs r2, 0x1
bl sub_804151C
b _0804207C
.align 2, 0
_08042070: .4byte 0x0000018d
_08042074:
movs r1, 0xE
movs r2, 0x1
bl sub_804151C
_0804207C:
pop {r0}
bx r0
thumb_func_end sub_8042060
thumb_func_start sub_8042080
sub_8042080:
push {lr}
cmp r1, 0
bne _08042092
movs r1, 0xC6
lsls r1, 1
movs r2, 0x1
bl sub_804151C
b _0804209A
_08042092:
movs r1, 0xD
movs r2, 0x1
bl sub_804151C
_0804209A:
pop {r0}
bx r0
thumb_func_end sub_8042080
thumb_func_start sub_80420A0
sub_80420A0:
push {lr}
ldr r1, _080420B0
movs r2, 0x1
bl sub_804151C
pop {r0}
bx r0
.align 2, 0
_080420B0: .4byte 0x00000143
thumb_func_end sub_80420A0
thumb_func_start nullsub_91
nullsub_91:
bx lr
thumb_func_end nullsub_91
thumb_func_start sub_80420B8
sub_80420B8:
push {lr}
movs r1, 0x19
movs r2, 0x1
bl sub_804151C
pop {r0}
bx r0
thumb_func_end sub_80420B8
thumb_func_start sub_80420C8
sub_80420C8:
push {lr}
sub sp, 0x8
movs r1, 0x2
str r1, [sp]
movs r1, 0
str r1, [sp, 0x4]
movs r1, 0x15
movs r2, 0x1
movs r3, 0x3
bl sub_8041550
add sp, 0x8
pop {r0}
bx r0
thumb_func_end sub_80420C8
thumb_func_start nullsub_92
nullsub_92:
bx lr
thumb_func_end nullsub_92
thumb_func_start sub_80420E8
sub_80420E8:
push {r4,lr}

View File

@ -188,89 +188,4 @@ _080121CE:
bx r1
thumb_func_end sub_801203C
thumb_func_start sub_80121D4
sub_80121D4:
push {lr}
bl WriteSaveSector
pop {r1}
bx r1
thumb_func_end sub_80121D4
thumb_func_start sub_80121E0
sub_80121E0:
push {r4-r6,lr}
sub sp, 0x4
adds r5, r0, 0
movs r6, 0x80
lsls r6, 4
adds r0, r6, 0
movs r1, 0x5
bl MemoryAlloc
adds r4, r0, 0
movs r0, 0x1F
str r0, [sp]
str r5, [r4, 0x18]
bl sub_809769C
ldr r0, [r0]
str r0, [r4, 0x1C]
ldr r0, _0801223C
str r0, [r4, 0x14]
bl sub_8011C4C
adds r1, r0, 0
adds r0, r4, 0x4
movs r2, 0x10
bl strncpy
adds r0, r4, 0
adds r0, 0x20
movs r1, 0
bl sub_80958E4
mov r0, sp
adds r1, r4, 0
adds r2, r6, 0
bl WriteSaveSector
adds r5, r0, 0
adds r0, r4, 0
bl MemoryFree
adds r0, r5, 0
add sp, 0x4
pop {r4-r6}
pop {r1}
bx r1
.align 2, 0
_0801223C: .4byte 0x05071412
thumb_func_end sub_80121E0
thumb_func_start sub_8012240
sub_8012240:
push {r4,r5,lr}
movs r4, 0x80
lsls r4, 4
adds r0, r4, 0
movs r1, 0x5
bl MemoryAlloc
adds r5, r0, 0
movs r1, 0xFF
movs r2, 0x4
bl MemoryFill8
bl sub_8011830
movs r0, 0x1F
adds r1, r5, 0
adds r2, r4, 0
bl WriteFlashData
adds r4, r0, 0
bl sub_8011854
adds r0, r5, 0
bl MemoryFree
cmp r4, 0
bne _0801227A
movs r0, 0
b _0801227C
_0801227A:
movs r0, 0x2
_0801227C:
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end sub_8012240
.align 2, 0 @ Don't pad with nop.

View File

@ -6,6 +6,13 @@ struct unkStruct_8041D5C
u8 *unk70[100];
};
struct unk_struct_8041F08
{
u32 unk0;
u32 unk4;
};
extern void sub_803ED30(u8, struct unkStruct_8041D5C *r0, u8, u8);
extern void sub_804151C(u32 r0, u32 r1, u8 r2);
extern void sub_80421C0(u32 r0, u32 r1);
@ -13,6 +20,8 @@ extern u8 sub_8042768(void);
extern void sub_806CDD4(u32 r0, u8, u32);
extern u8 sub_8071858(u32, u8);
extern void sub_8041550(u32 r0, u32, u32, u32);
void sub_8041AD0(u32 r0)
{
@ -442,3 +451,173 @@ void sub_8041EF8(u32 r0)
{
sub_804151C(r0, 0xF, 1);
}
void sub_8041F08(u32 r0)
{
volatile struct unk_struct_8041F08 temp;
temp.unk0 = 2;
temp.unk4 = 0;
sub_8041550(r0, 0x15, 1, 3);
}
void nullsub_90(void)
{
}
void sub_8041F28(u32 r0, u32 r1)
{
if(r1 == 0)
{
sub_804151C(r0, 0xCA << 1, 1);
}
else
{
sub_804151C(r0, 0x193, 1);
}
}
void sub_8041F4C(u32 r0, u32 r1)
{
if(r1 == 0)
{
sub_804151C(r0, 0x18f, 1);
}
else
{
sub_804151C(r0, 0x191, 1);
}
}
void sub_8041F70(u32 r0, u32 r1)
{
if(r1 == 0)
{
sub_804151C(r0, 0x1a9, 1);
}
else
{
sub_804151C(r0, 0xC9 << 1, 1);
}
}
void sub_8041F94(u32 r0, u32 r1)
{
if(r1 == 0)
{
sub_804151C(r0, 0xC7 << 1, 1);
}
else
{
sub_804151C(r0, 0xC8 << 1, 1);
}
}
void sub_8041FB4(u32 r0, u32 r1)
{
if(r1 == 0)
{
sub_804151C(r0, 0x1a9, 1);
}
else
{
sub_804151C(r0, 0xC9 << 1, 1);
}
}
void sub_8041FD8(u32 r0, u32 r1)
{
if(r1 == 0)
{
sub_804151C(r0, 0xCA << 1, 1);
}
else
{
sub_804151C(r0, 0x193, 1);
}
}
void sub_8041FFC(u32 r0, u32 r1)
{
if(r1 == 0)
{
sub_804151C(r0, 0xC7 << 1, 1);
}
else
{
sub_804151C(r0, 0xC8 << 1, 1);
}
}
void sub_804201C(u32 r0, u32 r1)
{
if(r1 == 0)
{
sub_804151C(r0, 0x18f, 1);
}
else
{
sub_804151C(r0, 0x191, 1);
}
}
void sub_8042040(u32 r0, u32 r1)
{
if(r1 == 0)
{
sub_804151C(r0, 0xC6 << 1, 1);
}
else
{
sub_804151C(r0, 0xD, 1);
}
}
void sub_8042060(u32 r0, u32 r1)
{
if(r1 == 0)
{
sub_804151C(r0, 0x18d, 1);
}
else
{
sub_804151C(r0, 0xE, 1);
}
}
void sub_8042080(u32 r0, u32 r1)
{
if(r1 == 0)
{
sub_804151C(r0, 0xC6 << 1, 1);
}
else
{
sub_804151C(r0, 0xD, 1);
}
}
void sub_80420A0(u32 r0, u32 r1)
{
sub_804151C(r0, 0x143, 1);
}
void nullsub_91(void)
{
}
void sub_80420B8(u32 r0, u32 r1)
{
sub_804151C(r0, 0x19, 1);
}
void sub_80420C8(u32 r0)
{
volatile struct unk_struct_8041F08 temp;
temp.unk0 = 2;
temp.unk4 = 0;
sub_8041550(r0, 0x15, 1, 3);
}
void nullsub_92(void)
{
}

View File

@ -10,6 +10,19 @@ struct unk_203B188
u32 unk4;
};
struct unk_struct
{
u32 unk0;
u32 unk4;
u32 unk8;
u32 unkC;
u32 unk10;
u32 unk14;
u32 unk18;
u32 unk1C;
u32 padding[504];
};
extern struct unk_203B188 *gUnknown_203B188;
extern u32 gUnknown_203B460;
@ -52,13 +65,21 @@ extern void sub_8097F74(void);
extern void sub_8011C28(u32 r0);
extern void sub_8011C40(s32 r0);
extern void sub_8097748(void);
extern void sub_8012240();
extern void sub_8094FA8(struct unkTimeStruct *Time); // defined in src/code_8094F88.c
extern struct unkTimeStruct *sub_8094FA0(void);
extern void* MemoryAlloc(u32 a, u32 b);
extern void MemoryFree(void* a);
extern void MemoryFill8(u8 *dest, u8 value, s32 size);
extern void sub_8011830(void);
extern s32 WriteFlashData(s32 sector, u8 *src, s32 size);
extern void sub_8011854(void);
extern u32 *sub_809769C(void);
u32 *sub_8011C4C(void);
extern void sub_80958E4(u8 *a, u32 b);
extern s32 WriteSaveSector(s32 *a, u8 *src, s32 size);
void sub_80122D0();
void sub_80122F4();
@ -66,6 +87,50 @@ void sub_8012300();
void sub_80976A8();
void sub_80122A8();
s32 sub_80121D4(s32 *a, u8 *src, s32 size)
{
return WriteSaveSector(a, src, size);
}
u32 sub_80121E0(u32 r0)
{
u32 temp;
u32 *temp2;
u32 temp3;
struct unk_struct *r4 = MemoryAlloc(sizeof(struct unk_struct), 5);
temp = 0x1F;
r4->unk18 = r0;
r4->unk1C = *sub_809769C();
r4->unk14 = 0x5071412;
temp2 = sub_8011C4C();
strncpy((u8 *)r4 + 4, (u8*)temp2, 16);
sub_80958E4((u8 *)r4 + 32, 0);
temp3 = WriteSaveSector(&temp, (u8 *)r4, sizeof(struct unk_struct));
MemoryFree(r4);
return temp3;
}
u32 sub_8012240(void)
{
s32 temp;
struct unk_struct *r5 = MemoryAlloc(sizeof(struct unk_struct), 5);
MemoryFill8((u8 *)r5, 0xFF, 0x4);
sub_8011830();
temp = WriteFlashData(0x1F, (u8 *)r5, sizeof(struct unk_struct));
sub_8011854();
MemoryFree(r5);
if(temp != 0)
{
return 2;
}
else
{
return 0;
}
}
void sub_8012284(void)
{
sub_80122D0();