diff options
author | Seth Barberee <seth.barberee@gmail.com> | 2020-12-15 16:28:03 -0600 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-12-15 16:28:03 -0600 |
commit | f90f3affeb9b0a66aa7df68f5fdecd692033faf9 (patch) | |
tree | 9c5af2e04dea05221c71946a5dfc06471f77801d /src | |
parent | 4a5c6cd7d384479096ebdd0ecc1f7b3962b86107 (diff) |
Wonder mail Pt. 1 (#11)
Some work on decomping/labeling wonder mail. Renamed corresponding assembly/C files. Labeled a few strings in data too.
Diffstat (limited to 'src')
-rw-r--r-- | src/code_8028DE8.c | 294 | ||||
-rw-r--r-- | src/wonder_mail.c | 1444 |
2 files changed, 1444 insertions, 294 deletions
diff --git a/src/code_8028DE8.c b/src/code_8028DE8.c deleted file mode 100644 index f65fecb..0000000 --- a/src/code_8028DE8.c +++ /dev/null @@ -1,294 +0,0 @@ -#include "global.h" - -extern u32 sub_80144A4(s32 *r0); -extern void sub_8028B04(u32); -extern void sub_8011C28(u32); -extern void sub_8012574(u32); -extern u8 sub_8012600(); -extern void sub_8012750(); -extern void sub_8095240(u8); - -extern void sub_809927C(u8); -extern u32 *gUnknown_203B2C0; -extern u8 sub_8030C20(u32); -extern u32 sub_8031050(); -extern void sub_80310B4(); -extern u32 sub_8095350(); - -void sub_8028CE0() -{ - s32 temp; - - if(sub_80144A4(&temp) != 0) - { - return; - } - sub_8028B04(3); -} - -void sub_8028CFC() -{ - s32 temp; - u32 temp2; - - if(sub_80144A4(&temp) != 0) - { - return; - } - switch(sub_8031050()) - { - case 2: - case 3: - temp2 = sub_8095350(); - sub_80310B4(); - if(temp2 != gUnknown_203B2C0[0xA8 << 1]) - { - sub_8028B04(0x17); - } - else - { - sub_8028B04(0x19); - } - break; - default: - break; - } -} - -void sub_8028D4C() -{ - s32 temp; - - if(sub_80144A4(&temp) != 0) - { - return; - } - gUnknown_203B2C0[0xA7 << 1] = temp; - switch((s32)gUnknown_203B2C0[0xA7 << 1]) - { - case 5: - if(sub_8030C20(2) != 0) - { - sub_8028B04(12); - } - else - { - sub_8028B04(13); - } - break; - case 6: - if(sub_8030C20(4) != 0) - { - sub_8028B04(14); - } - else - { - sub_8028B04(15); - } - break; - case 7: - if(sub_8030C20(0) != 0) - { - sub_8028B04(16); - } - else - { - sub_8028B04(17); - } - break; - case 0xA: - sub_8028B04(1); - break; - default: - break; - } -} - -void sub_8028DE8(u32 r0) -{ - s32 temp; - - if(sub_80144A4(&temp) != 0) - { - return; - } - sub_8028B04(r0); -} - -void sub_8028E08() -{ - s32 temp; - - if(sub_80144A4(&temp) != 0) - { - return; - } - sub_8028B04(0x12); -} - -void sub_8028E24() -{ - s32 temp; - - if(sub_80144A4(&temp) != 0) - { - return; - } - switch(temp) - { - case 0x8: - sub_8028B04(0x13); - break; - case 0xA: - sub_8028B04(1); - break; - default: - break; - } -} - -void sub_8028E54() -{ - s32 temp; - - if(sub_80144A4(&temp) != 0) - { - return; - } - switch(temp) - { - case 0x8: - sub_8028B04(0x14); - break; - case 0xA: - sub_8028B04(1); - break; - default: - break; - } -} - -void sub_8028E84() -{ - s32 temp; - - if(sub_80144A4(&temp) != 0) - { - return; - } - sub_8028B04(0x18); - sub_8011C28(1); - sub_8012574(0); -} - -void sub_8028EAC() -{ - s32 temp; - - if(sub_80144A4(&temp) != 0) - { - return; - } - if(sub_8012600() == 0) - { - sub_8012750(); - sub_8028B04(0x19); - } -} - -void sub_8028ED4() -{ - s32 temp; - - if(sub_80144A4(&temp) != 0) - { - return; - } - if(temp == 8) - { - sub_8028B04(0xB); - } - else - { - switch(temp){ - case 0x8: - sub_8028B04(0x2); - break; - case 0x9: - case 0xA: - sub_8028B04(0x2); - break; - default: - break; - } - } -} - -void sub_8028F04() -{ - s32 temp; - s32 counter; - - if(sub_80144A4(&temp) != 0) - { - return; - } - for(counter = 0; counter <= 0x1F; counter++) - { - sub_8095240(counter); - } - sub_8028B04(0x15); -} - -void sub_8028F30() -{ - s32 temp; - - if(sub_80144A4(&temp) != 0) - { - return; - } - sub_8028B04(0x16); - sub_8011C28(1); - sub_8012574(0); -} - -void sub_8028F58() -{ - s32 temp; - - if(sub_80144A4(&temp) != 0) - { - return; - } - if(sub_8012600() == 0) - { - sub_8012750(); - sub_8028B04(2); - } -} - -void sub_8028F80() -{ - s32 temp; - - if(sub_80144A4(&temp) != 0) - { - return; - } - sub_809927C(gUnknown_203B2C0[0x86]); - gUnknown_203B2C0[335] = 1; - sub_8028B04(3); -} - -void sub_8028FC0() -{ - s32 temp; - - if(sub_80144A4(&temp) != 0) - { - return; - } - sub_8028B04(1); -} - diff --git a/src/wonder_mail.c b/src/wonder_mail.c new file mode 100644 index 0000000..c3fa39b --- /dev/null +++ b/src/wonder_mail.c @@ -0,0 +1,1444 @@ +#include "global.h" + +// Wonder Mail Related +struct WonderMailStruct_203B2C0 +{ + u32 unk0; + u32 unk4; + u8 padding2[0x38]; + u32 unk40; + u32 unk44; + u16 unk48[232]; + u8 unk218; + u8 padding7[3]; + u32 unk21C; + u8 padding[0x7C]; + u32 unk29C; + u8 padding6[0x6C]; + u32 unk30C; + u8 padding8[0x4C]; + u32 unk35C; + u8 padding5[0x5C]; + u32 unk3BC; + u8 padding4[0x60]; + u32 unk420; + u8 padding3[0x110]; + u32 unk534; + s32 unk538; // A7 << 3 + u32 unk53C; + u32 unk540; // A8 << 4 + s16 unk544; +}; + +struct unkStruct_8095228 +{ + u32 unk0; + u8 unk4; + u8 padding[0x27]; + s8 unk30; +}; + +struct unkStruct_80293F4 +{ + // size of 0x44 + u32 unk0; + u32 unk4; + u32 unk8; + u32 *unkC; + u32 unk10; + u8 unk14[0xA]; // very unsure about this one + u32 unk20; + u32 unk24; + u32 padding[7]; +}; + + +extern struct WonderMailStruct_203B2C0 *gUnknown_203B2C0; + +extern u32 sub_80144A4(s32 *r0); +extern void sub_8011C28(u32); +extern void sub_8012574(u32); +extern u8 sub_8012600(); +extern void sub_8012750(); +extern void sub_8095240(u8); + +extern void sub_809927C(u8); +extern u8 sub_8030C20(u32); +extern u32 sub_8031050(); +extern void sub_80310B4(); +extern u32 sub_8095350(); + +extern struct unkStruct_8095228 *sub_8095228(u8); +extern u8 sub_80A2824(u32); + +extern u32 gWonderMailErrorText; +extern u32 gWonderMailNumGBAsText; +extern u32 gWonderMailWrongModeText; +extern u32 gWonderMailStorageFullText; +extern u32 gWonderMailDuplicateText; +extern u32 gWonderMailNotEligibleReceiveText; +extern u32 gWonderMailNoRoomText; +extern u32 gWonderMailFriendErrorText; +extern u32 gWonderMailPasswordIncorrectText; +extern u32 gWonderMailSOSPasswordIncorrectText; +extern u32 gWonderMailDuplicateText; +extern u32 gWonderMailAOKMailReceivedText; + +extern s32 sub_8095190(void); +extern u32 sub_8095324(u32); +extern void sub_80141B4(u32 *r0, u32, u32 *r1, u32); +extern void nullsub_130(void); +extern void sub_8028348(void); +extern void sub_800641C(void *r0, u8, u8); +extern void sub_8004914(); +extern void sub_803084C(); +extern u32 sub_8030768(u32); +extern u8 sub_80307EC(); +extern void sub_8030D40(u8, u32); +extern void sub_8006518(u32 *r0); +extern u8 sub_8012FD8(u32 *r0); +extern void sub_8030810(u32); +extern void sub_8035CC0(u32 *r0, u32); +extern void sub_8035CF4(u32 *r0, u32, u32); +extern u32 sub_8030DA0(void); +extern void sub_8030DE4(void); +extern void sub_803092C(void); +extern void sub_8011C28(u32); +extern void sub_8012574(u32); +extern u8 sub_8012600(); +extern u32 sub_8012744(); +extern void sub_8012750(); + + +extern u32 sub_80154F0(); +void MemoryFill8(u8 *dest, u8 value, s32 size); +extern u32 sub_8039068(u32, u32 *r1, u8 *r0); +extern u32 gUnknown_80DDA48; +extern void sub_8014248(u32 *r0, u32, u32, u32 *r1); +extern void sub_8095274(u32); +extern void sub_80155F0(); +extern void sub_80951BC(u8 *r0); +extern void sub_8013114(u32 *r0, s32 *r1); +extern void sub_8035CC0(u32 *r0, u32); +extern void sub_8023C60(); +extern u32 sub_8023A94(u32); +extern void sub_8024458(s16, u32); +extern u16 sub_8023B44(); +extern void sub_8023B7C(u32); +extern u32 sub_80244E4(); +extern void sub_802452C(); +extern void sub_802453C(); +extern u8 sub_8024108(u32); +extern u32 sub_8031DCC(); +extern void sub_8031E10(); +extern void sub_8031E00(); + +void sub_8028B04(u32 r0) +{ + gUnknown_203B2C0->unk4 = r0; + nullsub_130(); + sub_8028348(); +} + +// Wonder Mail Linking... +void sub_8028B1C(u32 r0) +{ + switch(r0) + { + case 0: + break; + case 1: + case 2: + sub_80141B4(&gWonderMailErrorText, 0, &gUnknown_203B2C0->unk420, 0x10d); + break; + case 3: + sub_80141B4(&gWonderMailNumGBAsText, 0, &gUnknown_203B2C0->unk420, 0x10d); + break; + case 4: + sub_80141B4(&gWonderMailWrongModeText, 0, &gUnknown_203B2C0->unk420, 0x10d); + break; + case 5: + sub_80141B4(&gWonderMailErrorText, 0, &gUnknown_203B2C0->unk420, 0x10d); + break; + case 6: + sub_80141B4(&gWonderMailStorageFullText, 0, &gUnknown_203B2C0->unk420, 0x10d); + break; + case 7: + sub_80141B4(&gWonderMailDuplicateText, 0, &gUnknown_203B2C0->unk420, 0x10d); + break; + case 8: + break; + case 9: + sub_80141B4(&gWonderMailNotEligibleReceiveText, 0, &gUnknown_203B2C0->unk420, 0x10d); + break; + case 10: + break; + case 11: + sub_80141B4(&gWonderMailNotEligibleReceiveText, 0, &gUnknown_203B2C0->unk420, 0x10d); + break; + case 12: + break; + case 13: + sub_80141B4(&gWonderMailNoRoomText, 0, &gUnknown_203B2C0->unk420, 0x10d); + break; + case 14: + sub_80141B4(&gWonderMailErrorText, 0, &gUnknown_203B2C0->unk420, 0x10d); + break; + case 15: + sub_80141B4(&gWonderMailFriendErrorText, 0, &gUnknown_203B2C0->unk420, 0x10d); + break; + default: + break; + } +} + +void sub_8028BF0(void) +{ + u32 temp; + if(sub_80144A4(&temp) != 0) + { + return; + } + gUnknown_203B2C0->unk40 = 8; + gUnknown_203B2C0->unk544 = 0xffff; + switch(temp) + { + case 0: + gUnknown_203B2C0->unk40 = 3; + gUnknown_203B2C0->unk538 = 0; + if(sub_8095190() != -1) + { + sub_8028B04(8); + } + else + { + sub_8028B04(9); + } + break; + case 1: + if(sub_8095324(2) != 0) + { + sub_8028B04(30); + } + else + { + sub_8028B04(26); + } + break; + case 2: + gUnknown_203B2C0->unk40 = 4; + gUnknown_203B2C0->unk538 = 2; + if(sub_8095324(4) != 0) + { + sub_8028B04(41); + } + else + { + sub_8028B04(47); + } + break; + case 3: + sub_8028B04(11); + break; + case 4: + case 5: + case 6: + case 7: + case 8: + case 9: + break; + case 10: + sub_8028B04(2); + break; + default: + break; + } +} + + +void sub_8028CE0() +{ + s32 temp; + + if(sub_80144A4(&temp) != 0) + { + return; + } + sub_8028B04(3); +} + +void sub_8028CFC() +{ + s32 temp; + u32 temp2; + + if(sub_80144A4(&temp) != 0) + { + return; + } + switch(sub_8031050()) + { + case 2: + case 3: + temp2 = sub_8095350(); + sub_80310B4(); + if(temp2 != gUnknown_203B2C0->unk540) + { + sub_8028B04(23); + } + else + { + sub_8028B04(25); + } + break; + default: + break; + } +} + +void sub_8028D4C() +{ + s32 temp; + + if(sub_80144A4(&temp) != 0) + { + return; + } + gUnknown_203B2C0->unk538 = temp; + switch(gUnknown_203B2C0->unk538) + { + case 5: + if(sub_8030C20(2) != 0) + { + sub_8028B04(12); + } + else + { + sub_8028B04(13); + } + break; + case 6: + if(sub_8030C20(4) != 0) + { + sub_8028B04(14); + } + else + { + sub_8028B04(15); + } + break; + case 7: + if(sub_8030C20(0) != 0) + { + sub_8028B04(16); + } + else + { + sub_8028B04(17); + } + break; + case 10: + sub_8028B04(1); + break; + default: + break; + } +} + +void sub_8028DE8(u32 r0) +{ + s32 temp; + + if(sub_80144A4(&temp) != 0) + { + return; + } + sub_8028B04(r0); +} + +void sub_8028E08() +{ + s32 temp; + + if(sub_80144A4(&temp) != 0) + { + return; + } + sub_8028B04(18); +} + +void sub_8028E24() +{ + s32 temp; + + if(sub_80144A4(&temp) != 0) + { + return; + } + switch(temp) + { + case 8: + sub_8028B04(19); + break; + case 10: + sub_8028B04(1); + break; + default: + break; + } +} + +void sub_8028E54() +{ + s32 temp; + + if(sub_80144A4(&temp) != 0) + { + return; + } + switch(temp) + { + case 8: + sub_8028B04(20); + break; + case 10: + sub_8028B04(1); + break; + default: + break; + } +} + +void sub_8028E84() +{ + s32 temp; + + if(sub_80144A4(&temp) != 0) + { + return; + } + sub_8028B04(24); + sub_8011C28(1); + sub_8012574(0); +} + +void sub_8028EAC() +{ + s32 temp; + + if(sub_80144A4(&temp) != 0) + { + return; + } + if(sub_8012600() == 0) + { + sub_8012750(); + sub_8028B04(25); + } +} + +void sub_8028ED4() +{ + s32 temp; + + if(sub_80144A4(&temp) != 0) + { + return; + } + if(temp == 8) + { + sub_8028B04(11); + } + else + { + switch(temp){ + case 8: + sub_8028B04(2); + break; + case 9: + case 10: + sub_8028B04(2); + break; + default: + break; + } + } +} + +void sub_8028F04() +{ + s32 temp; + s32 counter; + + if(sub_80144A4(&temp) != 0) + { + return; + } + for(counter = 0; counter <= 31; counter++) + { + sub_8095240(counter); + } + sub_8028B04(21); +} + +void sub_8028F30() +{ + s32 temp; + + if(sub_80144A4(&temp) != 0) + { + return; + } + sub_8028B04(22); + sub_8011C28(1); + sub_8012574(0); +} + +void sub_8028F58() +{ + s32 temp; + + if(sub_80144A4(&temp) != 0) + { + return; + } + if(sub_8012600() == 0) + { + sub_8012750(); + sub_8028B04(2); + } +} + +void sub_8028F80() +{ + s32 temp; + + if(sub_80144A4(&temp) != 0) + { + return; + } + sub_809927C(gUnknown_203B2C0->unk218); + gUnknown_203B2C0->unk53C = 1; + sub_8028B04(3); +} + +void sub_8028FC0() +{ + s32 temp; + + if(sub_80144A4(&temp) != 0) + { + return; + } + sub_8028B04(1); +} + +void sub_8028FDC(void) +{ + s32 temp; + struct unkStruct_8095228 *return_var; + + if(sub_80144A4(&temp) != 0) + { + return; + } + switch(temp) + { + case 8: + return_var = sub_8095228(gUnknown_203B2C0->unk218); + if(sub_80A2824(return_var->unk4) == 0) + { + sub_8028B04(0x1C); + } + else + { + if(return_var->unk30 <= 0) + { + sub_8028B04(0x1D); + } + else + { + sub_8028B04(0x1B); + } + } + break; + case 9: + case 10: + sub_8028B04(1); + break; + default: + break; + } +} + +void sub_8029044(void) +{ + switch(sub_8030768(1)) + { + case 2: + sub_803084C(); + sub_8028B04(1); + break; + case 3: + gUnknown_203B2C0->unk218 = sub_80307EC(); + sub_8028B04(32); + break; + case 4: + gUnknown_203B2C0->unk0 = 0x1F; + gUnknown_203B2C0->unk218 = sub_80307EC(); + sub_8006518(&(gUnknown_203B2C0->unk3BC)); + sub_8004914(); + sub_800641C(0, 1, 1); + sub_8030D40(gUnknown_203B2C0->unk218, 0); + sub_8028B04(33); + break; + } +} + +void sub_80290D4(void) +{ + s32 temp; + if(sub_80144A4(&temp) != 0) + { + return; + } + sub_8028B04(31); +} + +void sub_80290F0(void) +{ + s32 temp; + temp = -1; + sub_8030768(0); + if(sub_8012FD8(&(gUnknown_203B2C0->unk30C)) == 0) + { + sub_8013114(&(gUnknown_203B2C0->unk30C), &temp); + } + switch(temp) + { + case 11: + sub_803084C(); + sub_8028B04(34); + break; + case 12: + gUnknown_203B2C0->unk0 = 0x3D; + sub_8006518(&(gUnknown_203B2C0->unk3BC)); + sub_8004914(); + sub_800641C(0, 1, 1); + sub_8030D40(gUnknown_203B2C0->unk218, 0); + sub_8028B04(33); + break; + case 4: + case 10: + sub_8035CC0(&(gUnknown_203B2C0->unk35C), 2); + sub_8030810(1); + sub_8028B04(31); + break; + default: + break; + } +} + +void sub_80291AC(void) +{ + switch(sub_8030DA0()) + { + case 2: + case 3: + sub_8030DE4(); + sub_8004914(); + sub_800641C(&(gUnknown_203B2C0->unk3BC), 1, 1); + sub_803092C(); + if(gUnknown_203B2C0->unk0 == 0x3D) + { + sub_8035CF4(&(gUnknown_203B2C0->unk21C), 3, 1); + sub_8028B04(0x20); + } + else + { + sub_8028B04(gUnknown_203B2C0->unk0); + } + default: + break; + } +} + +void sub_8029208(void) +{ + s32 temp; + if(sub_80144A4(&temp) != 0) + { + return; + } + switch(temp) + { + + case 13: + case 14: + gUnknown_203B2C0->unk534 = 0xD; + switch(gUnknown_203B2C0->unk538) + { + case 0: + sub_8028B04(4); + break; + case 2: + sub_8028B04(0x30); + break; + default: + return; + } + break; + case 15: + gUnknown_203B2C0->unk534 = temp; + switch(gUnknown_203B2C0->unk538) + { + case 0: + sub_8028B04(0x26); + break; + case 2: + sub_8028B04(0x3A); + break; + default: + return; + } + break; + case 10: + sub_8028B04(1); + break; + } +} + +void sub_80292A4(void) +{ + s32 temp; + if(sub_80144A4(&temp) != 0) + { + return; + } + switch(temp) + { + case 8: + switch(gUnknown_203B2C0->unk538) + { + case 0: + case 2: + sub_8028B04(5); + break; + } + break; + case 10: + sub_8028B04(1); + break; + } +} + +void sub_80292EC(void) +{ + s32 temp; + if(sub_80144A4(&temp) != 0) + { + return; + } + if(gUnknown_203B2C0->unk44 == 0) + { + switch(gUnknown_203B2C0->unk538) + { + case 0: + sub_8028B04(0x23); + break; + case 2: + sub_8028B04(0x37); + break; + } + } + else + { + sub_8028B1C(gUnknown_203B2C0->unk44); + sub_8028B04(0x7); + } +} + +void sub_802933C(void) +{ + s32 temp; + if(sub_80144A4(&temp) != 0) + { + return; + } + sub_8028B04(1); +} + +void sub_8029358(void) +{ + s32 temp; + if(sub_80144A4(&temp) != 0) + { + return; + } + sub_8028B04(1); +} + +void sub_8029374(void) +{ + s32 temp; + if(sub_80144A4(&temp) != 0) + { + return; + } + sub_8028B04(0x24); + sub_8011C28(1); + sub_8012574(0); +} + +void sub_802939C(void) +{ + s32 temp; + u32 return_var; + if(sub_80144A4(&temp) != 0) + { + return; + } + if(sub_8012600() == 0) + { + return_var = sub_8012744(); + sub_8012750(); + if(return_var == 0) + { + sub_8028B04(0x25); + } + else + { + sub_8028B04(0x2); + } + } +} + +void sub_80293D8(void) +{ + s32 temp; + if(sub_80144A4(&temp) != 0) + { + return; + } + sub_8028B04(0x27); +} + +#ifndef NONMATCHING +NAKED +#endif +void sub_80293F4(void) +{ +#ifdef NONMATCHING + u32 return_var; + u32 temp_var; + struct unkStruct_80293F4 temp; + return_var = sub_80154F0(); + MemoryFill8(temp.unk14, 0, 0x30); + switch(return_var) + { + case 3: + return_var = sub_8039068(0x1C, &(gUnknown_203B2C0->unk8), temp.unk14) - 7; + if(return_var <= 0x11) + { + switch(return_var) + { + case 1: + case 2: + case 3: + case 4: + case 5: + case 6: + case 7: + case 8: + case 9: + break; + case 10: + // TODO one register off from matching + temp.unk0 = 0; + temp.unk4 = 4; + temp.unk8 = 0; + temp.unkC = &(gUnknown_203B2C0->unk420); + temp.unk10 = 0xC; + sub_8014248(&gWonderMailPasswordIncorrectText, 0, 8, &gUnknown_80DDA48); + sub_8028B04(0x28); + break; + case 11: + sub_80141B4(&gWonderMailSOSPasswordIncorrectText, 0, &gUnknown_203B2C0->unk420, 0x10d); + sub_8028B04(7); + break; + case 0: + sub_80141B4(&gWonderMailDuplicateText, 0, &gUnknown_203B2C0->unk420, 0x10d); + sub_8028B04(7); + break; + case 12: + case 13: + case 14: + break; + case 15: + sub_8095274(temp.unk24); + // This one is iffy.. not sure + temp.unk14[0] = 2; + sub_80951BC(temp.unk14); + sub_80141B4(&gWonderMailAOKMailReceivedText, 0, &gUnknown_203B2C0->unk420, 0x101); + sub_8028B04(0x23); + break; + case 16: + case 17: + default: + break; + } + } + sub_80155F0(); + break; + case 2: + sub_80155F0(); + sub_8004914(); + sub_800641C(&(gUnknown_203B2C0->unk3BC), 1, 1); + sub_8028B04(1); + break; + default: + break; + } +#else + asm_unified("\tpush {r4,lr}\n" + "\tsub sp, 0x44\n" + "\tbl sub_80154F0\n" + "\tadds r4, r0, 0\n" + "\tadd r0, sp, 0x14\n" + "\tmovs r1, 0\n" + "\tmovs r2, 0x30\n" + "\tbl MemoryFill8\n" + "\tcmp r4, 0x2\n" + "\tbne _0802940E\n" + "\tb _08029530\n" +"_0802940E:\n" + "\tcmp r4, 0x3\n" + "\tbeq _08029414\n" + "\tb _08029550\n" +"_08029414:\n" + "\tldr r0, _08029434\n" + "\tldr r1, [r0]\n" + "\tadds r1, 0x8\n" + "\tmovs r0, 0x1C\n" + "\tadd r2, sp, 0x14\n" + "\tbl sub_8039068\n" + "\tsubs r0, 0x7\n" + "\tcmp r0, 0x11\n" + "\tbls _0802942A\n" + "\tb _0802951C\n" +"_0802942A:\n" + "\tlsls r0, 2\n" + "\tldr r1, _08029438\n" + "\tadds r0, r1\n" + "\tldr r0, [r0]\n" + "\tmov pc, r0\n" + "\t.align 2, 0\n" +"_08029434: .4byte gUnknown_203B2C0\n" +"_08029438: .4byte _0802943C\n" + "\t.align 2, 0\n" +"_0802943C:\n" + "\t.4byte _080294C8\n" + "\t.4byte _0802951C\n" + "\t.4byte _0802951C\n" + "\t.4byte _0802951C\n" + "\t.4byte _0802951C\n" + "\t.4byte _0802951C\n" + "\t.4byte _0802951C\n" + "\t.4byte _0802951C\n" + "\t.4byte _0802951C\n" + "\t.4byte _0802951C\n" + "\t.4byte _08029484\n" + "\t.4byte _080294C0\n" + "\t.4byte _0802951C\n" + "\t.4byte _0802951C\n" + "\t.4byte _0802951C\n" + "\t.4byte _080294F0\n" + "\t.4byte _0802951C\n" + "\t.4byte _0802951C\n" +"_08029484:\n" + "\tldr r0, _080294B4\n" + "\tldr r3, _080294B8\n" + "\tmovs r2, 0\n" + "\tstr r2, [sp]\n" + "\tmovs r1, 0x4\n" + "\tstr r1, [sp, 0x4]\n" + "\tstr r2, [sp, 0x8]\n" + "\tldr r1, _080294BC\n" + "\tldr r1, [r1]\n" + "\tmovs r2, 0x84\n" + "\tlsls r2, 3\n" + "\tadds r1, r2\n" + "\tstr r1, [sp, 0xC]\n" + "\tmovs r1, 0xC\n" + "\tstr r1, [sp, 0x10]\n" + "\tmovs r1, 0\n" + "\tmovs r2, 0x8\n" + "\tbl sub_8014248\n" + "\tmovs r0, 0x28\n" + "\tbl sub_8028B04\n" + "\tb _0802951C\n" + "\t.align 2, 0\n" +"_080294B4: .4byte gWonderMailPasswordIncorrectText\n" +"_080294B8: .4byte gUnknown_80DDA48\n" +"_080294BC: .4byte gUnknown_203B2C0\n" +"_080294C0:\n" + "\tldr r0, _080294C4\n" + "\tb _080294CA\n" + "\t.align 2, 0\n" +"_080294C4: .4byte gWonderMailSOSPasswordIncorrectText\n" +"_080294C8:\n" + "\tldr r0, _080294E4\n" +"_080294CA:\n" + "\tldr r1, _080294E8\n" + "\tldr r2, [r1]\n" + "\tmovs r1, 0x84\n" + "\tlsls r1, 3\n" + "\tadds r2, r1\n" + "\tldr r3, _080294EC\n" + "\tmovs r1, 0\n" + "\tbl sub_80141B4\n" + "\tmovs r0, 0x7\n" + "\tbl sub_8028B04\n" + "\tb _0802951C\n" + "\t.align 2, 0\n" +"_080294E4: .4byte gWonderMailDuplicateText\n" +"_080294E8: .4byte gUnknown_203B2C0\n" +"_080294EC: .4byte 0x0000010d\n" +"_080294F0:\n" + "\tldr r0, [sp, 0x24]\n" + "\tbl sub_8095274\n" + "\tadd r1, sp, 0x14\n" + "\tmovs r0, 0x2\n" + "\tstrb r0, [r1]\n" + "\tadds r0, r1, 0\n" + "\tbl sub_80951BC\n" + "\tldr r0, _08029524\n" + "\tldr r1, _08029528\n" + "\tldr r2, [r1]\n" + "\tmovs r1, 0x84\n" + "\tlsls r1, 3\n" + "\tadds r2, r1\n" + "\tldr r3, _0802952C\n" + "\tmovs r1, 0\n" + "\tbl sub_80141B4\n" + "\tmovs r0, 0x23\n" + "\tbl sub_8028B04\n" +"_0802951C:\n" + "\tbl sub_80155F0\n" + "\tb _08029550\n" + "\t.align 2, 0\n" +"_08029524: .4byte gWonderMailAOKMailReceivedText\n" +"_08029528: .4byte gUnknown_203B2C0\n" +"_0802952C: .4byte 0x00000101\n" +"_08029530:\n" + "\tbl sub_80155F0\n" + "\tbl sub_8004914\n" + "\tldr r0, _08029558\n" + "\tldr r0, [r0]\n" + "\tmovs r2, 0xEF\n" + "\tlsls r2, 2\n" + "\tadds r0, r2\n" + "\tmovs r1, 0x1\n" + "\tmovs r2, 0x1\n" + "\tbl sub_800641C\n" + "\tmovs r0, 0x1\n" + "\tbl sub_8028B04\n" +"_08029550:\n" + "\tadd sp, 0x44\n" + "\tpop {r4}\n" + "\tpop {r0}\n" + "\tbx r0\n" + "\t.align 2, 0\n" +"_08029558: .4byte gUnknown_203B2C0\n"); +#endif +} + +void sub_802955C(void) +{ + s32 temp; + if(sub_80144A4(&temp) != 0) + { + return; + } + switch(temp) + { + case 8: + sub_8028B04(0x26); + break; + case 10: + sub_8028B04(1); + break; + } +} + +void sub_802958C(void) +{ + s32 temp; + if(sub_80144A4(&temp) != 0) + { + return; + } + sub_8028B04(6); +} + +void sub_80295A8(void) +{ + s32 temp; + if(sub_80144A4(&temp) != 0) + { + return; + } + switch(temp) + { + case 8: + sub_8028B04(0x8); + break; + case 9: + case 10: + sub_8028B04(1); + break; + + } +} + +void sub_80295D8(void) +{ + switch(sub_8030768(1)) + { + case 2: + sub_803084C(); + sub_8028B04(1); + break; + case 3: + gUnknown_203B2C0->unk218 = sub_80307EC(); + sub_8028B04(0x2B); + break; + case 4: + gUnknown_203B2C0->unk0 = 0x2A; + gUnknown_203B2C0->unk218 = sub_80307EC(); + sub_8006518(&(gUnknown_203B2C0->unk3BC)); + sub_8004914(); + sub_800641C(0, 1, 1); + sub_8030D40(gUnknown_203B2C0->unk218, 0); + sub_8028B04(0x2C); + break; + } +} + +void sub_8029668(void) +{ + s32 temp; + if(sub_80144A4(&temp) != 0) + { + return; + } + sub_8028B04(0x2A); +} + +void sub_8029684(void) +{ + s32 temp; + temp = -1; + sub_8030768(0); + if(sub_8012FD8(&(gUnknown_203B2C0->unk30C)) == 0) + { + sub_8013114(&(gUnknown_203B2C0->unk30C), &temp); + } + switch(temp) + { + case 0xB: + sub_803084C(); + sub_8028B04(0x2D); + break; + case 0xC: + gUnknown_203B2C0->unk0 = 0x3D; + sub_8006518(&(gUnknown_203B2C0->unk3BC)); + sub_8004914(); + sub_800641C(0, 1, 1); + sub_8030D40(gUnknown_203B2C0->unk218, 0); + sub_8028B04(0x2C); + break; + case 0x4: + case 0xA: + sub_8035CC0(&(gUnknown_203B2C0->unk35C),2); + sub_8030810(1); + sub_8028B04(0x2A); + break; + } +} + +void sub_8029740(void) +{ + switch(sub_8030DA0()) + { + case 2: + case 3: + sub_8030DE4(); + sub_8004914(); + sub_800641C(&(gUnknown_203B2C0->unk3BC), 1, 1); + sub_803092C(); + if(gUnknown_203B2C0->unk0 == 0x3D) + { + sub_8035CF4(&(gUnknown_203B2C0->unk21C), 3, 1); + sub_8028B04(0x2B); + } + else + { + sub_8028B04(gUnknown_203B2C0->unk0); + } + break; + } +} + +void sub_802979C(void) +{ + s32 temp; + if(sub_80144A4(&temp) != 0) + { + return; + } + sub_8028B04(1); +} + +void sub_80297B8(void) +{ + s32 temp; + if(sub_80144A4(&temp) != 0) + { + return; + } + sub_8028B04(0x33); +} + +void sub_80297D4(void) +{ + switch(sub_8023A94(1)) + { + case 2: + sub_8023C60(); + sub_8028B04(1); + gUnknown_203B2C0->unk544 = 0xffff; + break; + case 3: + gUnknown_203B2C0->unk544 = sub_8023B44(); + sub_8028B04(0x34); + break; + case 4: + gUnknown_203B2C0->unk0 = 0x33; + gUnknown_203B2C0->unk544 = sub_8023B44(); + sub_8006518(&(gUnknown_203B2C0->unk3BC)); + sub_8004914(); + sub_800641C(0, 1, 1); + sub_8024458(gUnknown_203B2C0->unk544, 0); + sub_8028B04(0x35); + break; + } +} + +void sub_8029884(void) +{ + s32 temp; + temp = -1; + sub_8023A94(0); + if(sub_8012FD8(&(gUnknown_203B2C0->unk30C)) == 0) + { + sub_8013114(&(gUnknown_203B2C0->unk30C), &temp); + } + switch(temp) + { + case 0xB: + sub_8023C60(); + sub_8028B04(4); + break; + case 0xC: + gUnknown_203B2C0->unk0 = 0x3D; + sub_8006518(&(gUnknown_203B2C0->unk3BC)); + sub_8004914(); + sub_800641C(0, 1, 1); + sub_8024458(gUnknown_203B2C0->unk544, 0); + sub_8028B04(0x35); + break; + case 0x4: + case 0xA: + sub_8035CC0(&(gUnknown_203B2C0->unk35C), 3); + sub_8023B7C(1); + sub_8028B04(0x33); + break; + } +} + +void sub_8029944(void) +{ + u32 temp; + temp = sub_80244E4(); + if(temp == 1) + { + sub_802452C(); + return; + } + switch(temp) + { + case 1: + break; + case 2: + case 3: + sub_802453C(); + sub_8004914(); + sub_800641C(&(gUnknown_203B2C0->unk3BC), 1, 1); + sub_8023B7C(1); + if(gUnknown_203B2C0->unk0 == 0x3D) + { + sub_8035CF4(&(gUnknown_203B2C0->unk21C), 3, 1); + sub_8028B04(0x34); + } + else + { + sub_8028B04(gUnknown_203B2C0->unk0); + } + + } +} + +void sub_80299AC(void) +{ + s32 temp; + if(sub_80144A4(&temp) != 0) + { + return; + } + switch(temp) + { + case 0x12: + sub_8028B04(4); + break; + case 0xA: + sub_8028B04(1); + break; + default: + break; + } +} + +void sub_80299D8(void) +{ + s32 temp; + if(sub_80144A4(&temp) != 0) + { + return; + } + switch(temp) + { + + case 8: + sub_8028B04(4); + break; + case 9: + sub_8028B04(0x32); + break; + case 0xA: + sub_8028B04(1); + break; + } +} + +void sub_8029A18(void) +{ + s32 temp; + if(sub_80144A4(&temp) != 0) + { + return; + } + switch(temp) + { + case 0x11: + if(sub_8024108(3) != 0) + { + sub_8028B04(0x31); + } + else + { + sub_8028B04(0x32); + } + break; + case 0x12: + sub_8028B04(0x4); + break; + case 0xA: + sub_8028B04(1); + break; + } +} + +void sub_8029A6C(void) +{ + s32 temp; + if(sub_80144A4(&temp) != 0) + { + return; + } + sub_8028B04(0x2E); +} + +void sub_8029A88(void) +{ + s32 temp; + if(sub_80144A4(&temp) != 0) + { + return; + } + if(sub_8012600() == 0) + { + sub_8012750(); + sub_8028B04(0x39); + } +} + +void sub_8029AB0(void) +{ + s32 temp; + if(sub_80144A4(&temp) != 0) + { + return; + } + sub_8028B04(0x38); + sub_8011C28(1); + sub_8012574(0); +} + +void sub_8029AD8(void) +{ + s32 temp; + if(sub_80144A4(&temp) != 0) + { + return; + } + sub_8028B04(0x3B); +} + +void sub_8029AF4(void) +{ + switch(sub_8031DCC()) + { + + case 2: + case 3: + sub_8031E10(); + sub_8004914(); + sub_800641C(&(gUnknown_203B2C0->unk3BC), 1, 1); + sub_8028B04(0x3C); + break; + case 1: + sub_8031E00(); + break; + } +} + +void sub_8029B34(void) +{ + s32 temp; + if(sub_80144A4(&temp) != 0) + { + return; + } + sub_8028B04(3); +} |