diff options
author | Seth Barberee <seth.barberee@gmail.com> | 2021-03-30 13:11:51 -0500 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-03-30 13:11:51 -0500 |
commit | a2d206665c6fffbd962375f262b7fbb05c7b7478 (patch) | |
tree | 6710109c4d9098b74da68ca8f18024d6c184ebc2 | |
parent | 2fd4f339b42c010191c199772b09ac34c580de94 (diff) |
Move some data and Splitting (#32)
* move friend area settings to src
* split out playtime into different C file and decomp a few more funcs
* time -> play_time
* fix include
* split out more wonder mail stuff
* unify 203B2C0 and unkDungeon structs. snuck in a decomp func too
* split out more menu screens
* work some more on trade items
* doc a few more things
* add a close nonmatch and decomp nullsub and small func
* rollback struct attempt since it causes nonmatchings
* only one func left in asm
* death to trade_item asm and unify into one C file
* more docing and cleanup
* label main menu and trade items menu global menu struct
* doc itemMode
37 files changed, 23951 insertions, 24468 deletions
diff --git a/asm/code_8027C84.s b/asm/code_8027C84.s index d385681..992a53c 100644 --- a/asm/code_8027C84.s +++ b/asm/code_8027C84.s @@ -387,1351 +387,5 @@ _08027F82: bx r0 thumb_func_end sub_8027EB8 - thumb_func_start sub_8027F88 -sub_8027F88: - push {r4-r6,lr} - bl ResetUnusedInputStruct - movs r0, 0 - movs r1, 0x1 - movs r2, 0x1 - bl sub_800641C - ldr r5, _08028050 - movs r4, 0xA9 - lsls r4, 3 - adds r0, r4, 0 - movs r1, 0x8 - bl MemoryAlloc - str r0, [r5] - movs r1, 0 - adds r2, r4, 0 - bl MemoryFill8 - ldr r1, [r5] - ldr r2, _08028054 - adds r0, r1, r2 - movs r6, 0 - str r6, [r0] - movs r3, 0x86 - lsls r3, 2 - adds r1, r3 - movs r0, 0xFF - strb r0, [r1] - ldr r0, [r5] - ldr r1, _08028058 - adds r0, r1 - ldr r1, _0802805C - strh r1, [r0] - ldr r0, _08028060 - movs r4, 0x98 - lsls r4, 1 - adds r1, r4, 0 - bl sub_808D8E0 - adds r0, r4, 0 - bl GetMonSpecies - adds r1, r0, 0 - ldr r0, _08028064 - bl strcpy - adds r0, r4, 0 - bl GetDialogueSpriteDataPtr - ldr r2, [r5] - movs r3, 0x84 - lsls r3, 3 - adds r1, r2, r3 - str r0, [r1] - adds r3, 0x4 - adds r1, r2, r3 - ldr r0, [r0, 0x4] - str r0, [r1] - ldr r0, _08028068 - adds r2, r0 - strb r6, [r2] - ldr r0, [r5] - ldr r1, _0802806C - adds r0, r1 - strb r6, [r0] - ldr r0, [r5] - ldr r2, _08028070 - adds r0, r2 - strb r6, [r0] - ldr r1, [r5] - adds r3, 0x4 - adds r2, r1, r3 - movs r0, 0x2 - strh r0, [r2] - ldr r0, _08028074 - adds r1, r0 - movs r0, 0x8 - strh r0, [r1] - movs r2, 0 - movs r3, 0 - adds r1, r5, 0 -_0802802E: - ldr r0, [r5] - adds r0, 0x8 - adds r0, r2 - strb r3, [r0] - adds r2, 0x1 - cmp r2, 0x35 - ble _0802802E - ldr r1, [r1] - movs r0, 0x3D - str r0, [r1] - movs r0, 0 - bl sub_8028B04 - movs r0, 0x1 - pop {r4-r6} - pop {r1} - bx r1 - .align 2, 0 -_08028050: .4byte gUnknown_203B2C0 -_08028054: .4byte 0x0000053c -_08028058: .4byte 0x00000544 -_0802805C: .4byte 0x0000ffff -_08028060: .4byte gUnknown_202E5D8 -_08028064: .4byte gAvailablePokemonNames -_08028068: .4byte 0x0000042c -_0802806C: .4byte 0x0000042d -_08028070: .4byte 0x0000042e -_08028074: .4byte 0x0000042a - thumb_func_end sub_8027F88 - - thumb_func_start sub_8028078 -sub_8028078: - push {lr} - ldr r0, _08028090 - ldr r0, [r0] - ldr r0, [r0, 0x4] - cmp r0, 0x3C - bls _08028086 - b _080282D4 -_08028086: - lsls r0, 2 - ldr r1, _08028094 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08028090: .4byte gUnknown_203B2C0 -_08028094: .4byte _08028098 - .align 2, 0 -_08028098: - .4byte _080282C4 - .4byte _080282C4 - .4byte _080282CA - .4byte _080282D0 - .4byte _08028222 - .4byte _08028234 - .4byte _08028228 - .4byte _0802822E - .4byte _0802823A - .4byte _080281FE - .4byte _08028272 - .4byte _08028278 - .4byte _0802828C - .4byte _0802827E - .4byte _0802828C - .4byte _0802827E - .4byte _0802828C - .4byte _08028286 - .4byte _08028294 - .4byte _0802829A - .4byte _080282B2 - .4byte _080282B8 - .4byte _080282BE - .4byte _080282A0 - .4byte _080282A6 - .4byte _080282AC - .4byte _08028240 - .4byte _08028248 - .4byte _0802824E - .4byte _0802824E - .4byte _0802825A - .4byte _0802826C - .4byte _08028260 - .4byte _08028266 - .4byte _08028254 - .4byte _08028204 - .4byte _0802820A - .4byte _080282CA - .4byte _08028210 - .4byte _08028216 - .4byte _0802821C - .4byte _080281E0 - .4byte _080281F2 - .4byte _080281E6 - .4byte _080281EC - .4byte _080281DA - .4byte _080281D4 - .4byte _080281F8 - .4byte _080281CE - .4byte _080281C2 - .4byte _080281AA - .4byte _080281B0 - .4byte _080281B6 - .4byte _080281BC - .4byte _080281C8 - .4byte _080281A4 - .4byte _0802819E - .4byte _080282CA - .4byte _08028192 - .4byte _08028198 - .4byte _0802818C -_0802818C: - bl sub_8029B34 - b _080282D4 -_08028192: - bl sub_8029AD8 - b _080282D4 -_08028198: - bl sub_8029AF4 - b _080282D4 -_0802819E: - bl sub_8029A88 - b _080282D4 -_080281A4: - bl sub_8029AB0 - b _080282D4 -_080281AA: - bl sub_80297B8 - b _080282D4 -_080281B0: - bl sub_80297D4 - b _080282D4 -_080281B6: - bl sub_8029884 - b _080282D4 -_080281BC: - bl sub_8029944 - b _080282D4 -_080281C2: - bl sub_80299AC - b _080282D4 -_080281C8: - bl sub_80299D8 - b _080282D4 -_080281CE: - bl sub_8029A6C - b _080282D4 -_080281D4: - bl sub_8029A18 - b _080282D4 -_080281DA: - bl sub_80295A8 - b _080282D4 -_080281E0: - bl sub_8029668 - b _080282D4 -_080281E6: - bl sub_8029684 - b _080282D4 -_080281EC: - bl sub_8029740 - b _080282D4 -_080281F2: - bl sub_80295D8 - b _080282D4 -_080281F8: - bl sub_802979C - b _080282D4 -_080281FE: - bl sub_8029358 - b _080282D4 -_08028204: - bl sub_8029374 - b _080282D4 -_0802820A: - bl sub_802939C - b _080282D4 -_08028210: - bl sub_80293D8 - b _080282D4 -_08028216: - bl sub_80293F4 - b _080282D4 -_0802821C: - bl sub_802955C - b _080282D4 -_08028222: - bl sub_80292A4 - b _080282D4 -_08028228: - bl sub_80292EC - b _080282D4 -_0802822E: - bl sub_802933C - b _080282D4 -_08028234: - bl sub_802958C - b _080282D4 -_0802823A: - bl sub_8029208 - b _080282D4 -_08028240: - movs r0, 0x1 - bl sub_8028DE8 - b _080282D4 -_08028248: - bl sub_8028F80 - b _080282D4 -_0802824E: - bl sub_8028FC0 - b _080282D4 -_08028254: - bl sub_8028FDC - b _080282D4 -_0802825A: - bl sub_80290D4 - b _080282D4 -_08028260: - bl sub_80290F0 - b _080282D4 -_08028266: - bl sub_80291AC - b _080282D4 -_0802826C: - bl sub_8029044 - b _080282D4 -_08028272: - bl sub_8028CFC - b _080282D4 -_08028278: - bl sub_8028D4C - b _080282D4 -_0802827E: - movs r0, 0xA - bl sub_8028DE8 - b _080282D4 -_08028286: - bl sub_8028E08 - b _080282D4 -_0802828C: - movs r0, 0x19 - bl sub_8028DE8 - b _080282D4 -_08028294: - bl sub_8028E24 - b _080282D4 -_0802829A: - bl sub_8028E54 - b _080282D4 -_080282A0: - bl sub_8028E84 - b _080282D4 -_080282A6: - bl sub_8028EAC - b _080282D4 -_080282AC: - bl sub_8028ED4 - b _080282D4 -_080282B2: - bl sub_8028F04 - b _080282D4 -_080282B8: - bl sub_8028F30 - b _080282D4 -_080282BE: - bl sub_8028F58 - b _080282D4 -_080282C4: - bl sub_8028BF0 - b _080282D4 -_080282CA: - bl sub_8028CE0 - b _080282D4 -_080282D0: - movs r0, 0x3 - b _080282D6 -_080282D4: - movs r0, 0 -_080282D6: - pop {r1} - bx r1 - thumb_func_end sub_8028078 - - thumb_func_start sub_80282DC -sub_80282DC: - ldr r1, _080282F4 - ldr r1, [r1] - movs r3, 0x86 - lsls r3, 2 - adds r2, r1, r3 - ldrb r2, [r2] - strb r2, [r0] - ldr r0, _080282F8 - adds r1, r0 - ldr r0, [r1] - bx lr - .align 2, 0 -_080282F4: .4byte gUnknown_203B2C0 -_080282F8: .4byte 0x0000053c - thumb_func_end sub_80282DC - - thumb_func_start sub_80282FC -sub_80282FC: - push {r4,lr} - ldr r4, _08028340 - ldr r0, [r4] - cmp r0, 0 - beq _08028338 - movs r1, 0x84 - lsls r1, 3 - adds r0, r1 - ldr r0, [r0] - bl CloseFile - ldr r0, [r4] - bl MemoryFree - movs r0, 0 - str r0, [r4] - bl sub_8031E10 - bl sub_8023C60 - bl sub_803084C - bl sub_80155F0 - bl sub_80310B4 - bl sub_8030DE4 - bl sub_802453C -_08028338: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08028340: .4byte gUnknown_203B2C0 - thumb_func_end sub_80282FC - - thumb_func_start nullsub_130 -nullsub_130: - bx lr - thumb_func_end nullsub_130 - - thumb_func_start sub_8028348 -sub_8028348: - push {r4-r6,lr} - sub sp, 0x14 - ldr r1, _08028368 - ldr r0, [r1] - ldr r0, [r0, 0x4] - adds r6, r1, 0 - cmp r0, 0x3C - bls _0802835C - bl _08028AF2 -_0802835C: - lsls r0, 2 - ldr r1, _0802836C - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08028368: .4byte gUnknown_203B2C0 -_0802836C: .4byte _08028370 - .align 2, 0 -_08028370: - .4byte _08028A84 - .4byte _08028AB4 - .4byte _08028AE0 - .4byte _08028AF2 - .4byte _08028650 - .4byte _08028660 - .4byte _08028678 - .4byte _08028AF2 - .4byte _08028802 - .4byte _08028640 - .4byte _0802890C - .4byte _08028948 - .4byte _08028988 - .4byte _08028978 - .4byte _080289A0 - .4byte _08028990 - .4byte _080289B8 - .4byte _080289B0 - .4byte _080289C8 - .4byte _080289E8 - .4byte _08028A48 - .4byte _08028A58 - .4byte _08028A68 - .4byte _080289F8 - .4byte _08028A08 - .4byte _08028A18 - .4byte _08028850 - .4byte _08028860 - .4byte _08028868 - .4byte _08028878 - .4byte _08028890 - .4byte _080288A0 - .4byte _080288C6 - .4byte _08028AF2 - .4byte _08028888 - .4byte _08028790 - .4byte _08028AF2 - .4byte _080287C4 - .4byte _080287D4 - .4byte _080287DC - .4byte _08028AF2 - .4byte _080285CC - .4byte _080285DC - .4byte _080288C6 - .4byte _08028AF2 - .4byte _080285AC - .4byte _08028610 - .4byte _080285F8 - .4byte _08028600 - .4byte _0802856C - .4byte _080284F4 - .4byte _0802850C - .4byte _08028532 - .4byte _08028AF2 - .4byte _0802859C - .4byte _080284B8 - .4byte _080284A8 - .4byte _080284EC - .4byte _080284A0 - .4byte _08028464 - .4byte _08028490 -_08028464: - ldr r0, [r6] - movs r1, 0xEF - lsls r1, 2 - adds r0, r1 - bl sub_8006518 - bl ResetUnusedInputStruct - movs r0, 0 - movs r1, 0x1 - movs r2, 0x1 - bl sub_800641C - ldr r0, [r6] - movs r2, 0x86 - lsls r2, 2 - adds r0, r2 - ldrb r0, [r0] - movs r1, 0 - bl sub_8031D70 - b _08028AF2 -_08028490: - ldr r0, _0802849C - ldr r2, [r6] - movs r3, 0x84 - lsls r3, 3 - adds r2, r3 - b _08028A72 - .align 2, 0 -_0802849C: .4byte gUnknown_80DDBA8 -_080284A0: - ldr r0, _080284A4 - b _08028A6A - .align 2, 0 -_080284A4: .4byte gUnknown_80DDBFC -_080284A8: - ldr r0, _080284B4 - ldr r2, [r6] - movs r1, 0x84 - lsls r1, 3 - adds r2, r1 - b _08028A72 - .align 2, 0 -_080284B4: .4byte gUnknown_80DDC30 -_080284B8: - ldr r0, [r6] - ldr r2, _080284D0 - adds r0, r2 - ldr r0, [r0] - cmp r0, 0xE - bne _080284C6 - b _08028AF2 -_080284C6: - cmp r0, 0xE - bhi _080284D4 - cmp r0, 0xD - beq _080284DA - b _08028AF2 - .align 2, 0 -_080284D0: .4byte 0x00000534 -_080284D4: - cmp r0, 0x10 - bls _080284DA - b _08028AF2 -_080284DA: - ldr r0, _080284E8 - ldr r2, [r6] - movs r3, 0x84 - lsls r3, 3 - adds r2, r3 - b _08028A72 - .align 2, 0 -_080284E8: .4byte gUnknown_80DDC70 -_080284EC: - ldr r0, _080284F0 - b _08028A6A - .align 2, 0 -_080284F0: .4byte gUnknown_80DDC30 -_080284F4: - ldr r0, _08028504 - ldr r3, _08028508 - movs r1, 0 - movs r2, 0 - bl sub_80141B4 - b _08028AF2 - .align 2, 0 -_08028504: .4byte gUnknown_80DDCBC -_08028508: .4byte 0x00000101 -_0802850C: - bl sub_8023CE8 - cmp r0, 0 - beq _08028516 - b _08028AF2 -_08028516: - bl ResetUnusedInputStruct - movs r0, 0 - movs r1, 0x1 - movs r2, 0x1 - bl sub_800641C - movs r0, 0x3 - movs r1, 0 - movs r2, 0 - movs r3, 0x9 - bl sub_8023868 - b _08028AF2 -_08028532: - ldr r0, [r6] - movs r4, 0xD7 - lsls r4, 2 - adds r0, r4 - bl sub_8006518 - ldr r1, [r6] - movs r5, 0x87 - lsls r5, 2 - adds r0, r1, r5 - adds r1, r4 - ldr r3, _08028564 - ldr r2, _08028568 - str r2, [sp] - movs r2, 0x1 - str r2, [sp, 0x4] - movs r2, 0 - str r2, [sp, 0x8] - str r2, [sp, 0xC] - movs r2, 0x3 - bl SetMenuItems - bl sub_8023DA4 - b _080288F6 - .align 2, 0 -_08028564: .4byte gUnknown_80DDAE4 -_08028568: .4byte gUnknown_80DDAFC -_0802856C: - ldr r0, _08028594 - ldr r3, _08028598 - movs r2, 0 - str r2, [sp] - movs r1, 0x4 - str r1, [sp, 0x4] - str r2, [sp, 0x8] - ldr r1, [r6] - movs r2, 0x84 - lsls r2, 3 - adds r1, r2 - str r1, [sp, 0xC] - movs r1, 0xC - str r1, [sp, 0x10] - movs r1, 0 - movs r2, 0xA - bl sub_8014248 - b _08028AF2 - .align 2, 0 -_08028594: .4byte gUnknown_80DDD2C -_08028598: .4byte gUnknown_80DDAA0 -_0802859C: - ldr r0, _080285A4 - ldr r3, _080285A8 - b _08028A1C - .align 2, 0 -_080285A4: .4byte gUnknown_80DDD88 -_080285A8: .4byte gUnknown_80DDA80 -_080285AC: - ldr r0, _080285C4 - ldr r3, _080285C8 - movs r2, 0 - str r2, [sp] - movs r1, 0x4 - str r1, [sp, 0x4] - str r2, [sp, 0x8] - ldr r1, [r6] - movs r2, 0x84 - lsls r2, 3 - adds r1, r2 - b _08028A2E - .align 2, 0 -_080285C4: .4byte gUnknown_80DDDBC -_080285C8: .4byte gUnknown_80DDA64 -_080285CC: - ldr r0, _080285D8 - ldr r2, [r6] - movs r3, 0x84 - lsls r3, 3 - adds r2, r3 - b _08028A72 - .align 2, 0 -_080285D8: .4byte gUnknown_80DDDD8 -_080285DC: - bl sub_8030894 - cmp r0, 0 - beq _080285E6 - b _08028AF2 -_080285E6: - bl ResetUnusedInputStruct - movs r0, 0 - movs r1, 0x1 - movs r2, 0x1 - bl sub_800641C - movs r0, 0x4 - b _080288BA -_080285F8: - ldr r0, _080285FC - b _08028A6A - .align 2, 0 -_080285FC: .4byte gUnknown_80DDE20 -_08028600: - ldr r0, _0802860C - ldr r2, [r6] - movs r1, 0x84 - lsls r1, 3 - adds r2, r1 - b _08028A72 - .align 2, 0 -_0802860C: .4byte gUnknown_80DDE58 -_08028610: - ldr r0, _08028638 - ldr r3, _0802863C - movs r2, 0 - str r2, [sp] - movs r1, 0x4 - str r1, [sp, 0x4] - str r2, [sp, 0x8] - ldr r1, [r6] - movs r2, 0x84 - lsls r2, 3 - adds r1, r2 - str r1, [sp, 0xC] - movs r1, 0xC - str r1, [sp, 0x10] - movs r1, 0 - movs r2, 0x11 - bl sub_8014248 - b _08028AF2 - .align 2, 0 -_08028638: .4byte gUnknown_80DDEC0 -_0802863C: .4byte gUnknown_80DDB60 -_08028640: - ldr r0, _0802864C - ldr r2, [r6] - movs r3, 0x84 - lsls r3, 3 - adds r2, r3 - b _08028A72 - .align 2, 0 -_0802864C: .4byte gUnknown_80DDF2C -_08028650: - ldr r0, _08028658 - ldr r3, _0802865C - b _08028A1C - .align 2, 0 -_08028658: .4byte gUnknown_80DDFB8 -_0802865C: .4byte gUnknown_80DDA48 -_08028660: - movs r0, 0 - bl nullsub_23 - ldr r0, _08028674 - movs r1, 0 - movs r2, 0 - movs r3, 0 - bl sub_80141B4 - b _08028AF2 - .align 2, 0 -_08028674: .4byte gUnknown_80DE01C -_08028678: - ldr r1, [r6] - movs r0, 0 - str r0, [r1, 0x44] - bl sub_8011830 - ldr r0, [r6] - ldr r0, [r0, 0x40] - bl sub_8037B28 - adds r4, r0, 0 - ldr r0, [r6] - str r4, [r0, 0x44] - cmp r4, 0 - bne _0802878A - ldr r1, [r0, 0x40] - cmp r1, 0x3 - beq _080286A0 - cmp r1, 0x4 - beq _080286C2 - b _08028748 -_080286A0: - adds r0, 0x48 - movs r1, 0 - movs r2, 0x30 - bl MemoryFill8 - ldr r0, [r6] - adds r0, 0x78 - movs r1, 0 - movs r2, 0x30 - bl MemoryFill8 - ldr r2, [r6] - ldr r0, [r2, 0x40] - adds r1, r2, 0 - adds r1, 0x48 - adds r2, 0x78 - b _08028740 -_080286C2: - adds r0, 0xA8 - movs r1, 0 - movs r2, 0x88 - bl MemoryFill8 - ldr r0, [r6] - movs r5, 0x98 - lsls r5, 1 - adds r0, r5 - movs r1, 0 - movs r2, 0x88 - bl MemoryFill8 - ldr r1, [r6] - adds r0, r1, 0 - adds r0, 0xE0 - strh r4, [r0] - movs r2, 0xB4 - lsls r2, 1 - adds r0, r1, r2 - strh r4, [r0] - movs r3, 0x86 - lsls r3, 2 - adds r0, r1, r3 - ldrb r0, [r0] - bl sub_8095228 - ldr r1, [r6] - adds r1, 0xA8 - ldm r0!, {r2-r4} - stm r1!, {r2-r4} - ldm r0!, {r2-r4} - stm r1!, {r2-r4} - ldm r0!, {r2-r4} - stm r1!, {r2-r4} - ldm r0!, {r2-r4} - stm r1!, {r2-r4} - ldr r2, [r6] - ldr r4, _08028760 - adds r3, r2, r4 - movs r0, 0 - ldrsh r1, [r3, r0] - movs r0, 0x1 - negs r0, r0 - cmp r1, r0 - beq _08028736 - adds r0, r2, 0 - adds r0, 0xD8 - ldr r1, _08028764 - ldr r1, [r1] - movs r2, 0 - ldrsh r3, [r3, r2] - movs r2, 0x58 - muls r2, r3 - adds r1, r2 - movs r2, 0x58 - bl memcpy -_08028736: - ldr r2, [r6] - ldr r0, [r2, 0x40] - adds r1, r2, 0 - adds r1, 0xA8 - adds r2, r5 -_08028740: - bl sub_8037D64 - ldr r1, [r6] - str r0, [r1, 0x44] -_08028748: - ldr r4, _08028768 - ldr r2, [r4] - ldr r0, [r2, 0x44] - cmp r0, 0 - bne _0802878A - ldr r0, [r2, 0x40] - cmp r0, 0x3 - beq _0802876C - cmp r0, 0x4 - beq _08028776 - b _0802878A - .align 2, 0 -_08028760: .4byte 0x00000544 -_08028764: .4byte gUnknown_203B45C -_08028768: .4byte gUnknown_203B2C0 -_0802876C: - adds r1, r2, 0 - adds r1, 0x48 - adds r2, 0x78 - movs r0, 0x3 - b _08028782 -_08028776: - adds r1, r2, 0 - adds r1, 0xA8 - movs r3, 0x98 - lsls r3, 1 - adds r2, r3 - movs r0, 0x4 -_08028782: - bl sub_80381F4 - ldr r1, [r4] - str r0, [r1, 0x44] -_0802878A: - bl xxx_call_start_bg_music - b _08028AF2 -_08028790: - ldr r0, [r6] - ldr r4, _080287A8 - adds r0, r4 - ldr r0, [r0] - cmp r0, 0xE - bne _0802879E - b _08028AF2 -_0802879E: - cmp r0, 0xE - bhi _080287AC - cmp r0, 0xD - beq _080287B2 - b _08028AF2 - .align 2, 0 -_080287A8: .4byte 0x00000534 -_080287AC: - cmp r0, 0x10 - bls _080287B2 - b _08028AF2 -_080287B2: - ldr r0, _080287C0 - ldr r2, [r6] - movs r1, 0x84 - lsls r1, 3 - adds r2, r1 - b _08028A72 - .align 2, 0 -_080287C0: .4byte gUnknown_80DE06C -_080287C4: - ldr r0, _080287D0 - ldr r2, [r6] - movs r3, 0x84 - lsls r3, 3 - adds r2, r3 - b _08028A72 - .align 2, 0 -_080287D0: .4byte gUnknown_80DE0C0 -_080287D4: - ldr r0, _080287D8 - b _08028A6A - .align 2, 0 -_080287D8: .4byte gUnknown_80DE124 -_080287DC: - ldr r0, [r6] - movs r1, 0xEF - lsls r1, 2 - adds r0, r1 - bl sub_8006518 - bl ResetUnusedInputStruct - movs r0, 0 - movs r1, 0x1 - movs r2, 0x1 - bl sub_800641C - ldr r1, [r6] - adds r1, 0x8 - movs r0, 0x4 - bl sub_80151C0 - b _08028AF2 -_08028802: - ldr r4, [r6] - movs r2, 0xA7 - lsls r2, 3 - adds r0, r4, r2 - ldr r2, [r0] - cmp r2, 0 - beq _08028816 - cmp r2, 0x2 - beq _08028824 - b _08028AF2 -_08028816: - ldr r0, _0802881C - ldr r3, _08028820 - b _0802882A - .align 2, 0 -_0802881C: .4byte gUnknown_80DE178 -_08028820: .4byte gUnknown_80DDB24 -_08028824: - ldr r0, _08028848 - ldr r3, _0802884C - movs r2, 0 -_0802882A: - str r2, [sp] - movs r1, 0x4 - str r1, [sp, 0x4] - str r2, [sp, 0x8] - movs r2, 0x84 - lsls r2, 3 - adds r1, r4, r2 - str r1, [sp, 0xC] - movs r1, 0xC - str r1, [sp, 0x10] - movs r1, 0 - movs r2, 0xD - bl sub_8014248 - b _08028AF2 - .align 2, 0 -_08028848: .4byte gUnknown_80DE1B4 -_0802884C: .4byte gUnknown_80DDB24 -_08028850: - ldr r0, _0802885C - ldr r2, [r6] - movs r3, 0x84 - lsls r3, 3 - adds r2, r3 - b _08028A72 - .align 2, 0 -_0802885C: .4byte gUnknown_80DE1E4 -_08028860: - ldr r0, _08028864 - b _08028A6A - .align 2, 0 -_08028864: .4byte gUnknown_80DE280 -_08028868: - ldr r0, _08028874 - ldr r2, [r6] - movs r1, 0x84 - lsls r1, 3 - adds r2, r1 - b _08028A72 - .align 2, 0 -_08028874: .4byte gUnknown_80DE2B0 -_08028878: - ldr r0, _08028884 - ldr r2, [r6] - movs r3, 0x84 - lsls r3, 3 - adds r2, r3 - b _08028A72 - .align 2, 0 -_08028884: .4byte gUnknown_80DE368 -_08028888: - ldr r0, _0802888C - b _08028A1A - .align 2, 0 -_0802888C: .4byte gUnknown_80DDDBC -_08028890: - ldr r0, _0802889C - ldr r2, [r6] - movs r1, 0x84 - lsls r1, 3 - adds r2, r1 - b _08028A72 - .align 2, 0 -_0802889C: .4byte gUnknown_80DE430 -_080288A0: - bl sub_8030894 - cmp r0, 0 - beq _080288AA - b _08028AF2 -_080288AA: - bl ResetUnusedInputStruct - movs r0, 0 - movs r1, 0x1 - movs r2, 0x1 - bl sub_800641C - movs r0, 0x2 -_080288BA: - movs r1, 0 - movs r2, 0 - movs r3, 0x6 - bl sub_80306A8 - b _08028AF2 -_080288C6: - ldr r0, [r6] - movs r4, 0xD7 - lsls r4, 2 - adds r0, r4 - bl sub_8006518 - ldr r1, [r6] - movs r5, 0x87 - lsls r5, 2 - adds r0, r1, r5 - adds r1, r4 - ldr r3, _08028904 - ldr r2, _08028908 - str r2, [sp] - movs r2, 0x1 - str r2, [sp, 0x4] - movs r2, 0 - str r2, [sp, 0x8] - str r2, [sp, 0xC] - movs r2, 0x3 - bl SetMenuItems - bl sub_803092C -_080288F6: - ldr r0, [r6] - adds r0, r5 - movs r1, 0x3 - movs r2, 0x1 - bl sub_8035CF4 - b _08028AF2 - .align 2, 0 -_08028904: .4byte gUnknown_80DDACC -_08028908: .4byte gUnknown_80DDAFC -_0802890C: - bl sub_8095350 - ldr r1, _0802893C - ldr r1, [r1] - movs r3, 0xA8 - lsls r3, 3 - adds r2, r1, r3 - str r0, [r2] - movs r4, 0xA7 - lsls r4, 3 - adds r1, r4 - ldr r1, [r1] - cmp r1, 0x6 - beq _08028940 - cmp r1, 0x6 - bls _0802892E - b _08028AF2 -_0802892E: - cmp r1, 0x5 - beq _08028934 - b _08028AF2 -_08028934: - movs r0, 0x2 - bl sub_8030F58 - b _08028AF2 - .align 2, 0 -_0802893C: .4byte gUnknown_203B2C0 -_08028940: - movs r0, 0x4 - bl sub_8030F58 - b _08028AF2 -_08028948: - ldr r0, _08028970 - ldr r3, _08028974 - movs r2, 0 - str r2, [sp] - movs r1, 0x4 - str r1, [sp, 0x4] - str r2, [sp, 0x8] - ldr r1, [r6] - movs r2, 0x84 - lsls r2, 3 - adds r1, r2 - str r1, [sp, 0xC] - movs r1, 0xC - str r1, [sp, 0x10] - movs r1, 0 - movs r2, 0x5 - bl sub_8014248 - b _08028AF2 - .align 2, 0 -_08028970: .4byte gUnknown_80DE48C -_08028974: .4byte gUnknown_80DD9EC -_08028978: - ldr r0, _08028984 - ldr r2, [r6] - movs r3, 0x84 - lsls r3, 3 - adds r2, r3 - b _08028A72 - .align 2, 0 -_08028984: .4byte gUnknown_80DE4B8 -_08028988: - ldr r0, _0802898C - b _08028A6A - .align 2, 0 -_0802898C: .4byte gUnknown_80DE4F0 -_08028990: - ldr r0, _0802899C - ldr r2, [r6] - movs r1, 0x84 - lsls r1, 3 - adds r2, r1 - b _08028A72 - .align 2, 0 -_0802899C: .4byte gUnknown_80DE524 -_080289A0: - ldr r0, _080289AC - ldr r2, [r6] - movs r3, 0x84 - lsls r3, 3 - adds r2, r3 - b _08028A72 - .align 2, 0 -_080289AC: .4byte gUnknown_80DE614 -_080289B0: - ldr r0, _080289B4 - b _08028A6A - .align 2, 0 -_080289B4: .4byte gUnknown_80DE648 -_080289B8: - ldr r0, _080289C4 - ldr r2, [r6] - movs r1, 0x84 - lsls r1, 3 - adds r2, r1 - b _08028A72 - .align 2, 0 -_080289C4: .4byte gUnknown_80DE694 -_080289C8: - ldr r0, _080289E0 - ldr r3, _080289E4 - movs r2, 0 - str r2, [sp] - movs r1, 0x4 - str r1, [sp, 0x4] - str r2, [sp, 0x8] - ldr r1, [r6] - movs r2, 0x84 - lsls r2, 3 - adds r1, r2 - b _08028A2E - .align 2, 0 -_080289E0: .4byte gUnknown_80DE6D4 -_080289E4: .4byte gUnknown_80DDA48 -_080289E8: - ldr r0, _080289F0 - ldr r3, _080289F4 - b _08028A1C - .align 2, 0 -_080289F0: .4byte gUnknown_80DE754 -_080289F4: .4byte gUnknown_80DDA48 -_080289F8: - ldr r0, _08028A04 - ldr r2, [r6] - movs r1, 0x84 - lsls r1, 3 - adds r2, r1 - b _08028A72 - .align 2, 0 -_08028A04: .4byte gUnknown_80DE7B8 -_08028A08: - ldr r0, _08028A14 - ldr r2, [r6] - movs r3, 0x84 - lsls r3, 3 - adds r2, r3 - b _08028A72 - .align 2, 0 -_08028A14: .4byte gUnknown_80DE7E8 -_08028A18: - ldr r0, _08028A40 -_08028A1A: - ldr r3, _08028A44 -_08028A1C: - movs r2, 0 - str r2, [sp] - movs r1, 0x4 - str r1, [sp, 0x4] - str r2, [sp, 0x8] - ldr r1, [r6] - movs r4, 0x84 - lsls r4, 3 - adds r1, r4 -_08028A2E: - str r1, [sp, 0xC] - movs r1, 0xC - str r1, [sp, 0x10] - movs r1, 0 - movs r2, 0x8 - bl sub_8014248 - b _08028AF2 - .align 2, 0 -_08028A40: .4byte gUnknown_80DE808 -_08028A44: .4byte gUnknown_80DDA64 -_08028A48: - ldr r0, _08028A54 - ldr r2, [r6] - movs r1, 0x84 - lsls r1, 3 - adds r2, r1 - b _08028A72 - .align 2, 0 -_08028A54: .4byte gUnknown_80DE830 -_08028A58: - ldr r0, _08028A64 - ldr r2, [r6] - movs r3, 0x84 - lsls r3, 3 - adds r2, r3 - b _08028A72 - .align 2, 0 -_08028A64: .4byte gUnknown_80DE864 -_08028A68: - ldr r0, _08028A7C -_08028A6A: - ldr r2, [r6] - movs r4, 0x84 - lsls r4, 3 - adds r2, r4 -_08028A72: - ldr r3, _08028A80 - movs r1, 0 - bl sub_80141B4 - b _08028AF2 - .align 2, 0 -_08028A7C: .4byte gUnknown_80DE7E8 -_08028A80: .4byte 0x0000010d -_08028A84: - ldr r0, _08028AAC - ldr r3, _08028AB0 - movs r2, 0 - str r2, [sp] - movs r1, 0x4 - str r1, [sp, 0x4] - str r2, [sp, 0x8] - ldr r1, [r6] - movs r2, 0x84 - lsls r2, 3 - adds r1, r2 - str r1, [sp, 0xC] - movs r1, 0xC - str r1, [sp, 0x10] - movs r1, 0 - movs r2, 0 - bl sub_8014248 - b _08028AF2 - .align 2, 0 -_08028AAC: .4byte gUnknown_80DE8B4 -_08028AB0: .4byte gUnknown_80DD970 -_08028AB4: - ldr r0, _08028AD8 - ldr r3, _08028ADC - movs r2, 0 - str r2, [sp] - movs r1, 0x4 - str r1, [sp, 0x4] - str r2, [sp, 0x8] - ldr r1, [r6] - movs r4, 0x84 - lsls r4, 3 - adds r1, r4 - str r1, [sp, 0xC] - movs r1, 0xC - str r1, [sp, 0x10] - movs r1, 0 - bl sub_8014248 - b _08028AF2 - .align 2, 0 -_08028AD8: .4byte gUnknown_80DE918 -_08028ADC: .4byte gUnknown_80DD970 -_08028AE0: - ldr r0, _08028AFC - ldr r2, [r6] - movs r1, 0x84 - lsls r1, 3 - adds r2, r1 - ldr r3, _08028B00 - movs r1, 0 - bl sub_80141B4 -_08028AF2: - add sp, 0x14 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_08028AFC: .4byte gUnknown_80DE93C -_08028B00: .4byte 0x0000010d - thumb_func_end sub_8028348 .align 2,0 diff --git a/asm/code_8095014.s b/asm/code_8095014.s index e7ba8b6..9a119ae 100644 --- a/asm/code_8095014.s +++ b/asm/code_8095014.s @@ -5,102 +5,6 @@ .text - thumb_func_start sub_8095118 -sub_8095118: - push {r4,lr} - ldr r4, _0809517C - ldr r0, [r4] - movs r2, 0xC0 - lsls r2, 3 - movs r1, 0 - bl MemoryFill8 - ldr r0, _08095180 - ldr r0, [r0] - movs r1, 0 - movs r2, 0x5C - bl MemoryFill8 - movs r2, 0 - movs r1, 0 - movs r3, 0x1F -_0809513A: - ldr r0, [r4] - adds r0, r1 - strb r2, [r0] - ldr r0, [r4] - adds r0, r1 - adds r0, 0x22 - strb r2, [r0] - ldr r0, [r4] - adds r0, r1 - adds r0, 0x2D - strb r2, [r0] - adds r1, 0x30 - subs r3, 0x1 - cmp r3, 0 - bge _0809513A - ldr r2, _08095184 - ldr r1, [r2] - movs r0, 0 - str r0, [r1] - movs r3, 0 - movs r4, 0x1 - negs r4, r4 -_08095166: - ldr r0, [r2] - lsls r1, r3, 2 - adds r0, 0x4 - adds r0, r1 - str r4, [r0] - adds r3, 0x1 - cmp r3, 0x1F - ble _08095166 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0809517C: .4byte gUnknown_203B480 -_08095180: .4byte gUnknown_203B484 -_08095184: .4byte gUnknown_203B48C - thumb_func_end sub_8095118 - - thumb_func_start nullsub_206 -nullsub_206: - bx lr - thumb_func_end nullsub_206 - - thumb_func_start nullsub_207 -nullsub_207: - bx lr - thumb_func_end nullsub_207 - - thumb_func_start sub_8095190 -sub_8095190: - push {lr} - movs r2, 0x2 - ldr r0, _080951A8 - ldr r0, [r0] - adds r1, r0, 0 - adds r1, 0x60 -_0809519C: - ldrb r0, [r1] - cmp r0, 0 - bne _080951AC - adds r0, r2, 0 - b _080951B8 - .align 2, 0 -_080951A8: .4byte gUnknown_203B480 -_080951AC: - adds r1, 0x30 - adds r2, 0x1 - cmp r2, 0x1F - ble _0809519C - movs r0, 0x1 - negs r0, r0 -_080951B8: - pop {r1} - bx r1 - thumb_func_end sub_8095190 - thumb_func_start sub_80951BC sub_80951BC: push {r4,lr} diff --git a/asm/load_screen.s b/asm/load_screen.s new file mode 100644 index 0000000..81c84fb --- /dev/null +++ b/asm/load_screen.s @@ -0,0 +1,718 @@ + .include "constants/gba_constants.inc" + .include "asm/macros.inc" + + .syntax unified + + .text + + thumb_func_start CreateLoadScreen +CreateLoadScreen: + push {r4-r7,lr} + mov r7, r8 + push {r7} + sub sp, 0x10 + adds r6, r0, 0 + ldr r5, _080392EC + ldr r0, [r5] + cmp r0, 0 + bne _0803927C + movs r4, 0x9F + lsls r4, 2 + adds r0, r4, 0 + movs r1, 0x8 + bl MemoryAlloc + str r0, [r5] + movs r1, 0 + adds r2, r4, 0 + bl MemoryFill8 +_0803927C: + ldr r0, [r5] + str r6, [r0] + mov r12, r5 + movs r0, 0xA2 + lsls r0, 1 + mov r8, r0 + ldr r4, _080392F0 + movs r3, 0 + movs r2, 0x3 +_0803928E: + mov r5, r12 + ldr r1, [r5] + adds r1, r3 + add r1, r8 + adds r0, r4, 0 + ldm r0!, {r5-r7} + stm r1!, {r5-r7} + ldm r0!, {r5-r7} + stm r1!, {r5-r7} + adds r3, 0x18 + subs r2, 0x1 + cmp r2, 0 + bge _0803928E + bl ResetUnusedInputStruct + ldr r6, _080392EC + ldr r0, [r6] + movs r5, 0xA2 + lsls r5, 1 + adds r0, r5 + movs r1, 0x1 + movs r2, 0x1 + bl sub_800641C + ldr r1, [r6] + adds r0, r1, 0x4 + adds r1, r5 + ldr r3, _080392F4 + ldr r2, _080392F8 + str r2, [sp] + movs r4, 0 + str r4, [sp, 0x4] + movs r7, 0x6 + str r7, [sp, 0x8] + str r4, [sp, 0xC] + movs r2, 0 + bl SetMenuItems + ldr r1, [r6] + ldr r0, [r1] + cmp r0, 0x7 + beq _08039306 + cmp r0, 0x7 + bhi _080392FC + cmp r0, 0x6 + beq _08039338 + b _08039382 + .align 2, 0 +_080392EC: .4byte gUnknown_203B374 +_080392F0: .4byte gUnknown_80E75F8 +_080392F4: .4byte gUnknown_80E7610 +_080392F8: .4byte gUnknown_203B378 +_080392FC: + cmp r0, 0x8 + beq _0803934C + cmp r0, 0x9 + beq _0803936C + b _08039382 +_08039306: + bl sub_8039844 + lsls r0, 24 + cmp r0, 0 + beq _08039324 + ldr r1, [r6] + adds r0, r1, 0x4 + adds r1, r5 + ldr r3, _0803931C + ldr r2, _08039320 + b _08039354 + .align 2, 0 +_0803931C: .4byte gUnknown_80E762C +_08039320: .4byte gUnknown_80E7644 +_08039324: + ldr r1, [r6] + adds r0, r1, 0x4 + adds r1, r5 + ldr r3, _08039330 + ldr r2, _08039334 + b _08039354 + .align 2, 0 +_08039330: .4byte gUnknown_80E762C +_08039334: .4byte gUnknown_80E7684 +_08039338: + adds r0, r1, 0x4 + adds r1, r5 + ldr r3, _08039344 + ldr r2, _08039348 + b _08039354 + .align 2, 0 +_08039344: .4byte gUnknown_80E762C +_08039348: .4byte gUnknown_80E76B8 +_0803934C: + adds r0, r1, 0x4 + adds r1, r5 + ldr r3, _08039364 + ldr r2, _08039368 +_08039354: + str r2, [sp] + str r4, [sp, 0x4] + str r7, [sp, 0x8] + str r4, [sp, 0xC] + movs r2, 0x1 + bl SetMenuItems + b _08039382 + .align 2, 0 +_08039364: .4byte gUnknown_80E762C +_08039368: .4byte gUnknown_80E76E8 +_0803936C: + adds r0, r1, 0x4 + adds r1, r5 + ldr r3, _080393DC + ldr r2, _080393E0 + str r2, [sp] + str r4, [sp, 0x4] + str r7, [sp, 0x8] + str r4, [sp, 0xC] + movs r2, 0x1 + bl SetMenuItems +_08039382: + ldr r4, _080393E4 + ldr r1, [r4] + adds r0, r1, 0x4 + movs r6, 0xA2 + lsls r6, 1 + adds r1, r6 + ldr r3, _080393E8 + ldr r2, _080393EC + str r2, [sp] + movs r2, 0x1 + str r2, [sp, 0x4] + movs r2, 0x2 + str r2, [sp, 0x8] + movs r2, 0 + str r2, [sp, 0xC] + movs r2, 0x2 + bl SetMenuItems + ldr r0, [r4] + adds r0, 0x4 + movs r1, 0 + movs r2, 0 + bl sub_8035CF4 + ldr r0, [r4] + adds r0, 0x4 + movs r1, 0x1 + movs r2, 0 + bl sub_8035CF4 + ldr r0, [r4] + adds r0, 0x4 + movs r1, 0x2 + movs r2, 0x1 + bl sub_8035CF4 + bl DrawLoadScreenText + add sp, 0x10 + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080393DC: .4byte gUnknown_80E762C +_080393E0: .4byte gUnknown_80E7730 +_080393E4: .4byte gUnknown_203B374 +_080393E8: .4byte gUnknown_80E7784 +_080393EC: .4byte gUnknown_80E779C + thumb_func_end CreateLoadScreen + + thumb_func_start CleanLoadScreen +CleanLoadScreen: + push {r4,lr} + bl ResetUnusedInputStruct + movs r0, 0 + movs r1, 0x1 + movs r2, 0x1 + bl sub_800641C + ldr r4, _08039418 + ldr r0, [r4] + cmp r0, 0 + beq _08039410 + bl MemoryFree + movs r0, 0 + str r0, [r4] +_08039410: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08039418: .4byte gUnknown_203B374 + thumb_func_end CleanLoadScreen + + thumb_func_start sub_803941C +sub_803941C: + push {r4,r5,lr} + sub sp, 0x4 + ldr r5, _08039458 + movs r0, 0x4 + str r0, [sp] + ldr r4, _0803945C + ldr r0, [r4] + adds r0, 0x54 + bl sub_8012FD8 + ldr r0, [r4] + adds r0, 0xA4 + bl sub_8012FD8 + lsls r0, 24 + cmp r0, 0 + bne _08039448 + ldr r0, [r4] + adds r0, 0xA4 + mov r1, sp + bl sub_8013114 +_08039448: + ldr r0, [sp] + cmp r0, 0x3 + bhi _08039498 + cmp r0, 0x2 + bcs _08039460 + cmp r0, 0x1 + beq _08039464 + b _08039498 + .align 2, 0 +_08039458: .4byte 0x0000ffdc +_0803945C: .4byte gUnknown_203B374 +_08039460: + movs r5, 0x1 + b _08039498 +_08039464: + ldr r0, [r4] + ldr r0, [r0] + cmp r0, 0x7 + beq _08039480 + cmp r0, 0x7 + bhi _08039476 + cmp r0, 0x6 + beq _08039484 + b _08039498 +_08039476: + cmp r0, 0x8 + beq _0803948E + cmp r0, 0x9 + beq _08039492 + b _08039498 +_08039480: + movs r5, 0x2 + b _08039498 +_08039484: + movs r0, 0 + bl sub_8095240 + movs r5, 0x4 + b _08039498 +_0803948E: + movs r5, 0x9 + b _08039498 +_08039492: + bl sub_80122A8 + movs r5, 0x2E +_08039498: + adds r0, r5, 0 + add sp, 0x4 + pop {r4,r5} + pop {r1} + bx r1 + thumb_func_end sub_803941C + + thumb_func_start DrawLoadScreenText +DrawLoadScreenText: + push {r4-r7,lr} + mov r7, r8 + push {r7} + sub sp, 0x150 + bl sub_8011FA8 + mov r8, r0 + movs r0, 0 + bl sub_8008C54 + movs r0, 0 + bl sub_80073B8 + ldr r2, _0803952C + movs r4, 0 + str r4, [sp] + movs r0, 0x8 + movs r1, 0 + movs r3, 0 + bl xxx_call_draw_string + ldr r2, _08039530 + str r4, [sp] + movs r0, 0x8 + movs r1, 0xC + movs r3, 0 + bl xxx_call_draw_string + ldr r2, _08039534 + str r4, [sp] + movs r0, 0x8 + movs r1, 0x18 + movs r3, 0 + bl xxx_call_draw_string + ldr r2, _08039538 + str r4, [sp] + movs r0, 0x8 + movs r1, 0x24 + movs r3, 0 + bl xxx_call_draw_string + ldr r2, _0803953C + str r4, [sp] + movs r0, 0x8 + movs r1, 0x30 + movs r3, 0 + bl xxx_call_draw_string + ldr r2, _08039540 + str r4, [sp] + movs r0, 0x8 + movs r1, 0x3C + movs r3, 0 + bl xxx_call_draw_string + movs r0, 0 + bl sub_80023E4 + lsls r0, 24 + cmp r0, 0 + beq _08039544 + add r4, sp, 0x68 + adds r0, r4, 0 + bl sub_80920D8 + adds r2, r4, 0 + b _0803954E + .align 2, 0 +_0803952C: .4byte gUnknown_80E77BC +_08039530: .4byte gUnknown_80E77C4 +_08039534: .4byte gUnknown_80E77CC +_08039538: .4byte gUnknown_80E77D8 +_0803953C: .4byte gUnknown_80E77E4 +_08039540: .4byte gUnknown_80E77F0 +_08039544: + ldr r1, _08039588 + add r0, sp, 0x68 + bl strcpy + add r2, sp, 0x68 +_0803954E: + ldr r5, _0803958C + ldr r0, [r5] + movs r4, 0xD2 + lsls r4, 1 + adds r0, r4 + ldr r1, _08039590 + bl sub_800D158 + ldr r2, [r5] + adds r2, r4 + movs r0, 0 + str r0, [sp] + movs r0, 0x40 + movs r1, 0 + movs r3, 0 + bl xxx_call_draw_string + bl sub_808D33C + cmp r0, 0 + bne _08039598 + add r4, sp, 0x90 + ldr r1, _08039594 + adds r0, r4, 0 + movs r2, 0xA + bl sub_80922B4 + b _080395A6 + .align 2, 0 +_08039588: .4byte gUnknown_80E77F8 +_0803958C: .4byte gUnknown_203B374 +_08039590: .4byte gUnknown_80E7804 +_08039594: .4byte gUnknown_80E7808 +_08039598: + add r4, sp, 0x90 + adds r1, r0, 0 + adds r1, 0x4C + adds r0, r4, 0 + movs r2, 0xA + bl sub_80922B4 +_080395A6: + adds r2, r4, 0 + ldr r5, _080395F0 + ldr r0, [r5] + movs r4, 0xE4 + lsls r4, 1 + adds r0, r4 + ldr r6, _080395F4 + adds r1, r6, 0 + bl sub_800D158 + ldr r2, [r5] + adds r2, r4 + movs r0, 0 + str r0, [sp] + movs r0, 0x40 + movs r1, 0xC + movs r3, 0 + bl xxx_call_draw_string + movs r0, 0x1 + bl sub_8095324 + cmp r0, 0 + bne _080395E0 + movs r0, 0x7 + bl sub_8095324 + cmp r0, 0 + beq _08039606 +_080395E0: + ldr r0, _080395F8 + cmp r8, r0 + bne _080395FC + ldr r4, [r5] + movs r0, 0xF6 + lsls r0, 1 + adds r4, r0 + b _08039676 + .align 2, 0 +_080395F0: .4byte gUnknown_203B374 +_080395F4: .4byte gUnknown_80E7804 +_080395F8: .4byte 0x000f1207 +_080395FC: + ldr r0, [r5] + movs r1, 0xF6 + lsls r1, 1 + adds r0, r1 + b _08039690 +_08039606: + bl sub_8011C1C + cmp r0, 0x1 + beq _08039624 + cmp r0, 0x2 + beq _08039668 + ldr r0, [r5] + movs r2, 0xF6 + lsls r2, 1 + adds r0, r2 + ldr r1, _08039620 + b _08039692 + .align 2, 0 +_08039620: .4byte gUnknown_80E7824 +_08039624: + movs r0, 0 + movs r1, 0x18 + bl sub_8001658 + cmp r0, 0x7 + beq _08039658 + cmp r0, 0xB + beq _08039658 + bl sub_8098FB4 + adds r2, r0, 0 + add r0, sp, 0x4 + adds r1, r6, 0 + bl sub_800D158 + ldr r0, [r5] + movs r3, 0xF6 + lsls r3, 1 + adds r1, r0, r3 + adds r3, 0x24 + adds r2, r0, r3 + add r0, sp, 0x4 + movs r3, 0 + bl xxx_format_string + b _08039696 +_08039658: + ldr r0, _08039664 + ldr r0, [r0] + movs r1, 0xF6 + lsls r1, 1 + adds r0, r1 + b _08039690 + .align 2, 0 +_08039664: .4byte gUnknown_203B374 +_08039668: + ldr r0, _08039684 + cmp r8, r0 + bne _08039688 + ldr r4, [r5] + movs r2, 0xF6 + lsls r2, 1 + adds r4, r2 +_08039676: + bl sub_809769C + adds r1, r0, 0 + adds r0, r4, 0 + bl sub_8090228 + b _08039696 + .align 2, 0 +_08039684: .4byte 0x000f1207 +_08039688: + ldr r0, [r5] + movs r3, 0xF6 + lsls r3, 1 + adds r0, r3 +_08039690: + ldr r1, _0803974C +_08039692: + bl sub_800D158 +_08039696: + ldr r7, _08039750 + ldr r2, [r7] + movs r0, 0xF6 + lsls r0, 1 + adds r2, r0 + movs r6, 0 + str r6, [sp] + movs r0, 0x40 + movs r1, 0x18 + movs r3, 0 + bl xxx_call_draw_string + ldr r0, _08039754 + ldr r0, [r0] + add r1, sp, 0x144 + add r2, sp, 0x148 + add r3, sp, 0x14C + bl DeconstructPlayTime + ldr r0, [r7] + movs r5, 0x84 + lsls r5, 2 + adds r0, r5 + ldr r1, _08039758 + add r2, sp, 0x144 + ldr r2, [r2] + add r3, sp, 0x148 + ldr r3, [r3] + add r4, sp, 0x14C + ldr r4, [r4] + str r4, [sp] + bl sub_800D158 + ldr r2, [r7] + adds r2, r5 + str r6, [sp] + movs r0, 0x40 + movs r1, 0x24 + movs r3, 0 + bl xxx_call_draw_string + bl sub_8097778 + adds r2, r0, 0 + ldr r0, [r7] + movs r4, 0x8D + lsls r4, 2 + adds r0, r4 + ldr r1, _0803975C + bl sub_800D158 + ldr r2, [r7] + adds r2, r4 + str r6, [sp] + movs r0, 0x40 + movs r1, 0x30 + movs r3, 0 + bl xxx_call_draw_string + ldr r0, _08039760 + cmp r8, r0 + bne _0803976C + ldr r0, _08039764 + ldr r6, [r0] + movs r1, 0xC + ldrsh r0, [r6, r1] + cmp r0, 0 + beq _0803976C + add r5, sp, 0x130 + adds r1, r0, 0 + adds r0, r5, 0 + bl sub_808D930 + add r4, sp, 0xE0 + adds r1, r6, 0 + adds r1, 0x50 + adds r0, r4, 0 + movs r2, 0xA + bl sub_80922B4 + ldr r0, [r7] + movs r3, 0x96 + lsls r3, 2 + adds r0, r3 + ldr r1, _08039768 + adds r2, r4, 0 + adds r3, r5, 0 + bl sub_800D158 + b _0803977C + .align 2, 0 +_0803974C: .4byte gUnknown_80E780C +_08039750: .4byte gUnknown_203B374 +_08039754: .4byte gPlayTimeRef +_08039758: .4byte gUnknown_80E7838 +_0803975C: .4byte gUnknown_80E7848 +_08039760: .4byte 0x000f1207 +_08039764: .4byte gUnknown_203B484 +_08039768: .4byte gUnknown_80E784C +_0803976C: + ldr r0, _080397AC + ldr r0, [r0] + movs r1, 0x96 + lsls r1, 2 + adds r0, r1 + ldr r1, _080397B0 + bl sub_800D158 +_0803977C: + ldr r0, _080397AC + ldr r2, [r0] + movs r3, 0x96 + lsls r3, 2 + adds r2, r3 + movs r0, 0 + str r0, [sp] + movs r0, 0x40 + movs r1, 0x3C + movs r3, 0 + bl xxx_call_draw_string + bl sub_80397B4 + movs r0, 0 + bl sub_80073E0 + add sp, 0x150 + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080397AC: .4byte gUnknown_203B374 +_080397B0: .4byte gUnknown_80E7854 + thumb_func_end DrawLoadScreenText + + thumb_func_start sub_80397B4 +sub_80397B4: + push {r4-r7,lr} + mov r7, r8 + push {r7} + sub sp, 0xC + ldr r0, _08039834 + ldr r1, _08039838 + bl OpenFileAndGetFileDataPtr + adds r6, r0, 0 + movs r4, 0 +_080397C8: + adds r0, r4, 0 + adds r0, 0xB0 + ldr r1, [r6, 0x4] + lsls r2, r4, 2 + ldr r1, [r1, 0x4] + adds r1, r2 + bl SetBGPaletteBufferColorArray + adds r4, 0x1 + cmp r4, 0x3F + ble _080397C8 + movs r7, 0x8 + movs r0, 0x49 + mov r8, r0 + movs r4, 0 +_080397E6: + ldr r0, _0803983C + lsls r5, r4, 2 + adds r0, r5, r0 + ldr r0, [r0] + bl sub_80023E4 + lsls r0, 24 + cmp r0, 0 + beq _0803981C + movs r0, 0x10 + str r0, [sp] + ldr r0, [r6, 0x4] + lsls r1, r4, 7 + ldr r0, [r0] + adds r0, r1 + str r0, [sp, 0x4] + ldr r0, _08039840 + adds r0, r5, r0 + ldr r0, [r0] + str r0, [sp, 0x8] + movs r0, 0 + adds r1, r7, 0 + mov r2, r8 + movs r3, 0x10 + bl sub_8007E20 + adds r7, 0x10 +_0803981C: + adds r4, 0x1 + cmp r4, 0xB + ble _080397E6 + adds r0, r6, 0 + bl CloseFile + add sp, 0xC + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_08039834: .4byte gUnknown_80E785C +_08039838: .4byte gTitleMenuFileArchive +_0803983C: .4byte gUnknown_203B3B8 +_08039840: .4byte gUnknown_203B388 + thumb_func_end sub_80397B4 + + .align 2,0 diff --git a/asm/main_menu_1.s b/asm/main_menu_1.s index 5289feb..ed08661 100644 --- a/asm/main_menu_1.s +++ b/asm/main_menu_1.s @@ -15,7 +15,7 @@ sub_8035D80: str r1, [r2, 0x34] bx lr .align 2, 0 -_08035D90: .4byte gUnknown_203B348 +_08035D90: .4byte gMainMenu thumb_func_end sub_8035D80 thumb_func_start sub_8035D94 @@ -25,7 +25,7 @@ sub_8035D94: adds r0, 0x30 bx lr .align 2, 0 -_08035D9C: .4byte gUnknown_203B348 +_08035D9C: .4byte gMainMenu thumb_func_end sub_8035D94 thumb_func_start sub_8035DA0 @@ -39,7 +39,7 @@ sub_8035DA0: str r1, [r0, 0x34] bx lr .align 2, 0 -_08035DB0: .4byte gUnknown_203B348 +_08035DB0: .4byte gMainMenu thumb_func_end sub_8035DA0 thumb_func_start sub_8035DB4 @@ -816,6503 +816,4 @@ _080363FA: bx r1 thumb_func_end sub_80363E0 - thumb_func_start CreateTradeItemsMenu -CreateTradeItemsMenu: - push {r4,r5,lr} - bl ResetUnusedInputStruct - movs r0, 0 - movs r1, 0x1 - movs r2, 0x1 - bl sub_800641C - ldr r5, _08036444 - movs r4, 0xE8 - lsls r4, 2 - adds r0, r4, 0 - movs r1, 0x8 - bl MemoryAlloc - str r0, [r5] - movs r1, 0 - adds r2, r4, 0 - bl MemoryFill8 - bl sub_8035C1C - bl sub_8035DA0 - ldr r1, [r5] - movs r0, 0x13 - str r0, [r1, 0x4] - movs r0, 0 - bl sub_8036FC4 - movs r0, 0x1 - pop {r4,r5} - pop {r1} - bx r1 - .align 2, 0 -_08036444: .4byte gUnknown_203B358 - thumb_func_end CreateTradeItemsMenu - - thumb_func_start UpdateTradeItemsMenu -UpdateTradeItemsMenu: - push {lr} - ldr r0, _08036460 - ldr r0, [r0] - ldr r0, [r0] - cmp r0, 0x12 - bhi _08036524 - lsls r0, 2 - ldr r1, _08036464 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08036460: .4byte gUnknown_203B358 -_08036464: .4byte _08036468 - .align 2, 0 -_08036468: - .4byte _080364B4 - .4byte _080364BA - .4byte _080364C0 - .4byte _080364C6 - .4byte _080364D2 - .4byte _080364CC - .4byte _080364D8 - .4byte _080364DE - .4byte _080364E4 - .4byte _080364F0 - .4byte _080364F6 - .4byte _080364FC - .4byte _08036502 - .4byte _08036514 - .4byte _08036508 - .4byte _080364EA - .4byte _0803650E - .4byte _0803651A - .4byte _08036520 -_080364B4: - bl sub_803652C - b _08036524 -_080364BA: - bl sub_8036590 - b _08036524 -_080364C0: - bl sub_80365AC - b _08036524 -_080364C6: - bl sub_8036674 - b _08036524 -_080364CC: - bl sub_8036728 - b _08036524 -_080364D2: - bl sub_8036788 - b _08036524 -_080364D8: - bl sub_8036830 - b _08036524 -_080364DE: - bl sub_803689C - b _08036524 -_080364E4: - bl sub_80368D4 - b _08036524 -_080364EA: - bl sub_8036A7C - b _08036524 -_080364F0: - bl sub_8036934 - b _08036524 -_080364F6: - bl sub_8036950 - b _08036524 -_080364FC: - bl sub_8036AA4 - b _08036524 -_08036502: - bl sub_80369FC - b _08036524 -_08036508: - bl sub_8036A34 - b _08036524 -_0803650E: - bl sub_8036A54 - b _08036524 -_08036514: - bl sub_8036A18 - b _08036524 -_0803651A: - bl sub_8036ADC - b _08036524 -_08036520: - movs r0, 0x3 - b _08036526 -_08036524: - movs r0, 0 -_08036526: - pop {r1} - bx r1 - thumb_func_end UpdateTradeItemsMenu - - thumb_func_start sub_803652C -sub_803652C: - push {lr} - sub sp, 0x4 - mov r0, sp - bl sub_80144A4 - adds r1, r0, 0 - cmp r1, 0 - bne _0803658A - ldr r2, [sp] - cmp r2, 0x1 - beq _08036556 - cmp r2, 0x1 - bgt _0803654C - cmp r2, 0 - beq _08036584 - b _0803658A -_0803654C: - cmp r2, 0x2 - beq _0803656C - cmp r2, 0x7 - beq _08036584 - b _0803658A -_08036556: - ldr r0, _08036568 - ldr r0, [r0] - str r1, [r0, 0x8] - str r2, [r0, 0x10] - movs r0, 0x1 - bl sub_8036FC4 - b _0803658A - .align 2, 0 -_08036568: .4byte gUnknown_203B358 -_0803656C: - ldr r0, _08036580 - ldr r1, [r0] - movs r0, 0x1 - str r0, [r1, 0x8] - str r2, [r1, 0x10] - movs r0, 0x7 - bl sub_8036FC4 - b _0803658A - .align 2, 0 -_08036580: .4byte gUnknown_203B358 -_08036584: - movs r0, 0x12 - bl sub_8036FC4 -_0803658A: - add sp, 0x4 - pop {r0} - bx r0 - thumb_func_end sub_803652C - - thumb_func_start sub_8036590 -sub_8036590: - push {lr} - sub sp, 0x4 - mov r0, sp - bl sub_80144A4 - cmp r0, 0 - bne _080365A4 - movs r0, 0x2 - bl sub_8036FC4 -_080365A4: - add sp, 0x4 - pop {r0} - bx r0 - thumb_func_end sub_8036590 - - thumb_func_start sub_80365AC -sub_80365AC: - push {r4-r7,lr} - mov r7, r8 - push {r7} - ldr r4, _080365E8 - ldr r0, [r4] - ldr r7, _080365EC - adds r0, r7 - movs r1, 0 - strb r1, [r0] - ldr r0, [r4] - ldr r6, _080365F0 - adds r0, r6 - movs r5, 0x1 - strb r5, [r0] - ldr r0, [r4] - movs r2, 0x97 - lsls r2, 2 - mov r8, r2 - add r0, r8 - strb r1, [r0] - movs r0, 0x1 - bl sub_801CA08 - cmp r0, 0x3 - beq _08036606 - cmp r0, 0x3 - bhi _080365F4 - cmp r0, 0x2 - beq _080365FA - b _0803666A - .align 2, 0 -_080365E8: .4byte gUnknown_203B358 -_080365EC: .4byte 0x0000025e -_080365F0: .4byte 0x0000025d -_080365F4: - cmp r0, 0x4 - beq _0803662C - b _0803666A -_080365FA: - bl sub_801CBB8 - movs r0, 0 - bl sub_8036FC4 - b _0803666A -_08036606: - bl sub_801CB24 - ldr r1, [r4] - ldr r2, _08036624 - adds r1, r2 - strb r0, [r1] - ldr r0, [r4] - ldr r1, _08036628 - adds r0, r1 - strb r5, [r0] - movs r0, 0x3 - bl sub_8036FC4 - b _0803666A - .align 2, 0 -_08036624: .4byte 0x0000025e -_08036628: .4byte 0x0000025d -_0803662C: - ldr r1, [r4] - movs r0, 0x2 - str r0, [r1, 0x4] - bl sub_801CB24 - ldr r1, [r4] - adds r1, r7 - strb r0, [r1] - ldr r0, [r4] - adds r0, r6 - strb r5, [r0] - ldr r0, [r4] - movs r2, 0xF2 - lsls r2, 1 - adds r0, r2 - bl sub_8006518 - bl ResetUnusedInputStruct - movs r0, 0 - movs r1, 0x1 - movs r2, 0x1 - bl sub_800641C - ldr r0, [r4] - add r0, r8 - bl sub_801B3C0 - movs r0, 0x5 - bl sub_8036FC4 -_0803666A: - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_80365AC - - thumb_func_start sub_8036674 -sub_8036674: - push {r4,lr} - sub sp, 0x4 - movs r0, 0x1 - negs r0, r0 - str r0, [sp] - movs r0, 0 - bl sub_801CA08 - ldr r4, _080366B8 - ldr r0, [r4] - movs r1, 0x9A - lsls r1, 1 - adds r0, r1 - bl sub_8012FD8 - lsls r0, 24 - cmp r0, 0 - bne _080366A6 - ldr r0, [r4] - movs r1, 0x9A - lsls r1, 1 - adds r0, r1 - mov r1, sp - bl sub_8013114 -_080366A6: - ldr r0, [sp] - cmp r0, 0x3 - beq _080366C6 - cmp r0, 0x3 - bgt _080366BC - cmp r0, 0 - beq _08036700 - b _0803671A - .align 2, 0 -_080366B8: .4byte gUnknown_203B358 -_080366BC: - cmp r0, 0x4 - beq _080366CE - cmp r0, 0x7 - beq _08036700 - b _0803671A -_080366C6: - movs r0, 0x4 - bl sub_8036FC4 - b _0803671A -_080366CE: - ldr r0, [r4] - movs r1, 0x13 - str r1, [r0, 0x4] - movs r1, 0xF2 - lsls r1, 1 - adds r0, r1 - bl sub_8006518 - bl ResetUnusedInputStruct - movs r0, 0 - movs r1, 0x1 - movs r2, 0x1 - bl sub_800641C - ldr r0, [r4] - movs r1, 0x97 - lsls r1, 2 - adds r0, r1 - bl sub_801B3C0 - movs r0, 0x5 - bl sub_8036FC4 - b _0803671A -_08036700: - ldr r0, _08036724 - ldr r0, [r0] - movs r1, 0xC2 - lsls r1, 1 - adds r0, r1 - movs r1, 0x3 - bl sub_8035CC0 - bl sub_801CCD8 - movs r0, 0x2 - bl sub_8036FC4 -_0803671A: - add sp, 0x4 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08036724: .4byte gUnknown_203B358 - thumb_func_end sub_8036674 - - thumb_func_start sub_8036728 -sub_8036728: - push {r4,lr} - bl sub_801B410 - cmp r0, 0x1 - beq _08036780 - cmp r0, 0x1 - bcc _08036780 - cmp r0, 0x3 - bhi _08036780 - bl sub_801B450 - bl ResetUnusedInputStruct - ldr r4, _08036778 - ldr r0, [r4] - movs r1, 0xF2 - lsls r1, 1 - adds r0, r1 - movs r1, 0x1 - movs r2, 0x1 - bl sub_800641C - movs r0, 0x1 - bl sub_801CB5C - ldr r4, [r4] - ldr r0, [r4, 0x4] - cmp r0, 0x13 - bne _0803677C - adds r0, r4, 0 - adds r0, 0x44 - movs r1, 0x3 - movs r2, 0x1 - bl sub_8035CF4 - movs r0, 0x3 - bl sub_8036FC4 - b _08036780 - .align 2, 0 -_08036778: .4byte gUnknown_203B358 -_0803677C: - bl sub_8036FC4 -_08036780: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_8036728 - - thumb_func_start sub_8036788 -sub_8036788: - push {r4,lr} - ldr r4, _080367B8 - ldr r0, [r4] - movs r1, 0x9A - lsls r1, 1 - adds r0, r1 - bl sub_8012FD8 - movs r0, 0 - bl sub_801CA08 - ldr r0, [r4] - adds r0, 0x14 - bl sub_8013BBC - cmp r0, 0x1 - beq _080367BC - cmp r0, 0x1 - bcc _08036824 - cmp r0, 0x2 - beq _080367D2 - cmp r0, 0x3 - beq _080367F8 - b _08036824 - .align 2, 0 -_080367B8: .4byte gUnknown_203B358 -_080367BC: - bl sub_801CCD8 - ldr r0, [r4] - adds r0, 0x44 - movs r1, 0x3 - movs r2, 0 - bl sub_8035CF4 - bl sub_8036F30 - b _08036824 -_080367D2: - ldr r0, [r4] - movs r2, 0xC2 - lsls r2, 1 - adds r0, r2 - movs r1, 0x2 - bl sub_8035CC0 - bl sub_801CCD8 - ldr r0, [r4] - adds r0, 0x44 - movs r1, 0x3 - movs r2, 0x1 - bl sub_8035CF4 - movs r0, 0x3 - bl sub_8036FC4 - b _08036824 -_080367F8: - ldr r0, [r4] - ldr r1, [r0, 0x14] - ldr r2, _0803682C - adds r0, r2 - strb r1, [r0] - ldr r0, [r4] - adds r2, 0x1 - adds r1, r0, r2 - ldrb r1, [r1] - subs r2, 0xA - adds r0, r2 - strb r1, [r0] - ldr r0, [r4] - adds r2, 0x4 - adds r1, r0, r2 - ldr r0, [r0, 0x14] - str r0, [r1] - bl sub_801CBB8 - movs r0, 0x6 - bl sub_8036FC4 -_08036824: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0803682C: .4byte 0x0000025d - thumb_func_end sub_8036788 - - thumb_func_start sub_8036830 -sub_8036830: - push {lr} - sub sp, 0x4 - mov r0, sp - bl sub_80144A4 - cmp r0, 0 - bne _08036896 - ldr r0, [sp] - cmp r0, 0x5 - beq _08036854 - cmp r0, 0x5 - bgt _0803684E - cmp r0, 0 - beq _08036890 - b _08036896 -_0803684E: - cmp r0, 0x6 - beq _08036890 - b _08036896 -_08036854: - bl sub_801CBB8 - ldr r0, _08036884 - ldr r2, [r0] - ldr r0, _08036888 - ldr r1, [r0] - ldr r3, _0803688C - adds r0, r1, r3 - ldrb r0, [r0] - lsls r0, 1 - adds r2, 0x50 - adds r2, r0 - ldrh r0, [r2] - ldr r1, [r1, 0x14] - subs r0, r1 - strh r0, [r2] - movs r0, 0xF - bl sub_8036FC4 - movs r0, 0 - bl sub_8012574 - b _08036896 - .align 2, 0 -_08036884: .4byte gUnknown_203B460 -_08036888: .4byte gUnknown_203B358 -_0803688C: .4byte 0x0000025e -_08036890: - movs r0, 0 - bl sub_8036FC4 -_08036896: - add sp, 0x4 - pop {r0} - bx r0 - thumb_func_end sub_8036830 - - thumb_func_start sub_803689C -sub_803689C: - push {lr} - sub sp, 0x4 - mov r0, sp - bl sub_80144A4 - cmp r0, 0 - bne _080368CE - ldr r0, [sp] - cmp r0, 0x5 - beq _080368C0 - cmp r0, 0x5 - bgt _080368BA - cmp r0, 0 - beq _080368C8 - b _080368CE -_080368BA: - cmp r0, 0x7 - beq _080368C8 - b _080368CE -_080368C0: - movs r0, 0x9 - bl sub_8036FC4 - b _080368CE -_080368C8: - movs r0, 0x12 - bl sub_8036FC4 -_080368CE: - add sp, 0x4 - pop {r0} - bx r0 - thumb_func_end sub_803689C - - thumb_func_start sub_80368D4 -sub_80368D4: - push {lr} - sub sp, 0x4 - mov r0, sp - bl sub_80144A4 - cmp r0, 0 - bne _0803692A - ldr r0, [sp] - cmp r0, 0x5 - beq _080368F8 - cmp r0, 0x5 - bgt _080368F2 - cmp r0, 0 - beq _08036900 - b _0803692A -_080368F2: - cmp r0, 0x7 - beq _08036900 - b _0803692A -_080368F8: - movs r0, 0x9 - bl sub_8036FC4 - b _0803692A -_08036900: - ldr r0, _08036930 - ldr r1, [r0] - movs r2, 0x95 - lsls r2, 2 - adds r0, r1, r2 - ldrb r0, [r0] - cmp r0, 0 - beq _0803692A - adds r2, 0x4 - adds r0, r1, r2 - ldr r0, [r0] - cmp r0, 0 - beq _0803692A - bl sub_80369D0 - movs r0, 0x11 - bl sub_8036FC4 - movs r0, 0 - bl sub_8012574 -_0803692A: - add sp, 0x4 - pop {r0} - bx r0 - .align 2, 0 -_08036930: .4byte gUnknown_203B358 - thumb_func_end sub_80368D4 - - thumb_func_start sub_8036934 -sub_8036934: - push {lr} - sub sp, 0x4 - mov r0, sp - bl sub_80144A4 - cmp r0, 0 - bne _08036948 - movs r0, 0xA - bl sub_8036FC4 -_08036948: - add sp, 0x4 - pop {r0} - bx r0 - thumb_func_end sub_8036934 - - thumb_func_start sub_8036950 -sub_8036950: - push {lr} - sub sp, 0x4 - mov r0, sp - bl sub_80144A4 - cmp r0, 0 - bne _080369C8 - ldr r0, _08036978 - ldr r2, [r0] - ldr r1, [r2, 0xC] - adds r3, r0, 0 - cmp r1, 0 - bne _0803698C - ldr r0, [r2, 0x8] - cmp r0, 0 - beq _0803697C - cmp r0, 0x1 - beq _08036984 - b _080369C8 - .align 2, 0 -_08036978: .4byte gUnknown_203B358 -_0803697C: - movs r0, 0xD - bl sub_8036FC4 - b _080369C8 -_08036984: - movs r0, 0xE - bl sub_8036FC4 - b _080369C8 -_0803698C: - ldr r0, [r2, 0x8] - cmp r0, 0 - bne _080369BA - movs r1, 0x95 - lsls r1, 2 - adds r0, r2, r1 - ldrb r0, [r0] - cmp r0, 0 - beq _080369BA - adds r1, 0x4 - adds r0, r2, r1 - ldr r0, [r0] - cmp r0, 0 - beq _080369BA - bl sub_80369D0 - movs r0, 0xB - bl sub_8036FC4 - movs r0, 0 - bl sub_8012574 - b _080369C8 -_080369BA: - ldr r0, [r3] - ldr r0, [r0, 0xC] - bl sub_8036E18 - movs r0, 0xC - bl sub_8036FC4 -_080369C8: - add sp, 0x4 - pop {r0} - bx r0 - thumb_func_end sub_8036950 - - thumb_func_start sub_80369D0 -sub_80369D0: - ldr r0, _080369F4 - ldr r2, [r0] - ldr r0, _080369F8 - ldr r1, [r0] - movs r3, 0x95 - lsls r3, 2 - adds r0, r1, r3 - ldrb r0, [r0] - lsls r0, 1 - adds r2, 0x50 - adds r2, r0 - ldrh r0, [r2] - adds r3, 0x4 - adds r1, r3 - ldr r1, [r1] - adds r0, r1 - strh r0, [r2] - bx lr - .align 2, 0 -_080369F4: .4byte gUnknown_203B460 -_080369F8: .4byte gUnknown_203B358 - thumb_func_end sub_80369D0 - - thumb_func_start sub_80369FC -sub_80369FC: - push {lr} - sub sp, 0x4 - mov r0, sp - bl sub_80144A4 - cmp r0, 0 - bne _08036A10 - movs r0, 0 - bl sub_8036FC4 -_08036A10: - add sp, 0x4 - pop {r0} - bx r0 - thumb_func_end sub_80369FC - - thumb_func_start sub_8036A18 -sub_8036A18: - push {lr} - sub sp, 0x4 - mov r0, sp - bl sub_80144A4 - cmp r0, 0 - bne _08036A2C - movs r0, 0x12 - bl sub_8036FC4 -_08036A2C: - add sp, 0x4 - pop {r0} - bx r0 - thumb_func_end sub_8036A18 - - thumb_func_start sub_8036A34 -sub_8036A34: - push {lr} - sub sp, 0x4 - mov r0, sp - bl sub_80144A4 - cmp r0, 0 - bne _08036A4E - movs r0, 0x10 - bl sub_8036FC4 - movs r0, 0 - bl sub_8012574 -_08036A4E: - add sp, 0x4 - pop {r0} - bx r0 - thumb_func_end sub_8036A34 - - thumb_func_start sub_8036A54 -sub_8036A54: - push {lr} - sub sp, 0x4 - mov r0, sp - bl sub_80144A4 - cmp r0, 0 - bne _08036A76 - bl sub_8012600 - lsls r0, 24 - cmp r0, 0 - bne _08036A76 - bl sub_8012750 - movs r0, 0x12 - bl sub_8036FC4 -_08036A76: - add sp, 0x4 - pop {r0} - bx r0 - thumb_func_end sub_8036A54 - - thumb_func_start sub_8036A7C -sub_8036A7C: - push {lr} - sub sp, 0x4 - mov r0, sp - bl sub_80144A4 - cmp r0, 0 - bne _08036A9E - bl sub_8012600 - lsls r0, 24 - cmp r0, 0 - bne _08036A9E - bl sub_8012750 - movs r0, 0x8 - bl sub_8036FC4 -_08036A9E: - add sp, 0x4 - pop {r0} - bx r0 - thumb_func_end sub_8036A7C - - thumb_func_start sub_8036AA4 -sub_8036AA4: - push {lr} - sub sp, 0x4 - mov r0, sp - bl sub_80144A4 - cmp r0, 0 - bne _08036AD0 - bl sub_8012600 - lsls r0, 24 - cmp r0, 0 - bne _08036AD0 - bl sub_8012750 - ldr r0, _08036AD8 - ldr r0, [r0] - ldr r0, [r0, 0xC] - bl sub_8036E18 - movs r0, 0xC - bl sub_8036FC4 -_08036AD0: - add sp, 0x4 - pop {r0} - bx r0 - .align 2, 0 -_08036AD8: .4byte gUnknown_203B358 - thumb_func_end sub_8036AA4 - - thumb_func_start sub_8036ADC -sub_8036ADC: - push {lr} - sub sp, 0x4 - mov r0, sp - bl sub_80144A4 - cmp r0, 0 - bne _08036AFE - bl sub_8012600 - lsls r0, 24 - cmp r0, 0 - bne _08036AFE - bl sub_8012750 - movs r0, 0x12 - bl sub_8036FC4 -_08036AFE: - add sp, 0x4 - pop {r0} - bx r0 - thumb_func_end sub_8036ADC - - thumb_func_start CleanTradeItemsMenu -CleanTradeItemsMenu: - push {r4,lr} - ldr r4, _08036B20 - ldr r0, [r4] - cmp r0, 0 - beq _08036B1A - bl MemoryFree - movs r0, 0 - str r0, [r4] - bl sub_801CBB8 -_08036B1A: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08036B20: .4byte gUnknown_203B358 - thumb_func_end CleanTradeItemsMenu - - thumb_func_start nullsub_52 -nullsub_52: - bx lr - thumb_func_end nullsub_52 - - thumb_func_start sub_8036B28 -sub_8036B28: - push {r4,r5,lr} - sub sp, 0x18 - ldr r1, _08036B44 - ldr r0, [r1] - ldr r0, [r0] - adds r5, r1, 0 - cmp r0, 0x12 - bls _08036B3A - b _08036DFA -_08036B3A: - lsls r0, 2 - ldr r1, _08036B48 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08036B44: .4byte gUnknown_203B358 -_08036B48: .4byte _08036B4C - .align 2, 0 -_08036B4C: - .4byte _08036B98 - .4byte _08036BDC - .4byte _08036BE4 - .4byte _08036C14 - .4byte _08036C58 - .4byte _08036DFA - .4byte _08036C5E - .4byte _08036C90 - .4byte _08036C98 - .4byte _08036CC0 - .4byte _08036CD8 - .4byte _08036DFA - .4byte _08036DFA - .4byte _08036DD8 - .4byte _08036D70 - .4byte _08036DFA - .4byte _08036DFA - .4byte _08036DFA - .4byte _08036DFA -_08036B98: - movs r0, 0 - bl sub_801CF14 - lsls r0, 24 - lsrs r2, r0, 24 - cmp r2, 0 - beq _08036BB8 - ldr r0, _08036BB0 - ldr r3, _08036BB4 - movs r2, 0 - b _08036BBC - .align 2, 0 -_08036BB0: .4byte gUnknown_80E61A4 -_08036BB4: .4byte gUnknown_80E60D4 -_08036BB8: - ldr r0, _08036BD4 - ldr r3, _08036BD8 -_08036BBC: - str r2, [sp] - movs r1, 0x4 - str r1, [sp, 0x4] - str r2, [sp, 0x8] - str r2, [sp, 0xC] - adds r1, 0xFD - str r1, [sp, 0x10] - movs r1, 0 - movs r2, 0x1 - bl sub_8014248 - b _08036DFA - .align 2, 0 -_08036BD4: .4byte gUnknown_80E61A4 -_08036BD8: .4byte gUnknown_80E60A0 -_08036BDC: - ldr r0, _08036BE0 - b _08036DBA - .align 2, 0 -_08036BE0: .4byte gUnknown_80E61C0 -_08036BE4: - bl sub_801D008 - cmp r0, 0 - beq _08036BEE - b _08036DFA -_08036BEE: - bl ResetUnusedInputStruct - movs r0, 0 - movs r1, 0x1 - movs r2, 0x1 - bl sub_800641C - ldr r0, _08036C10 - str r0, [sp, 0x14] - movs r0, 0 - movs r1, 0x1 - add r2, sp, 0x14 - movs r3, 0x9 - bl sub_801C8C4 - b _08036DFA - .align 2, 0 -_08036C10: .4byte 0x00020003 -_08036C14: - ldr r0, [r5] - movs r4, 0xC2 - lsls r4, 1 - adds r0, r4 - bl sub_8006518 - ldr r1, [r5] - adds r0, r1, 0 - adds r0, 0x44 - adds r1, r4 - ldr r3, _08036C50 - ldr r2, _08036C54 - str r2, [sp] - movs r2, 0x1 - str r2, [sp, 0x4] - movs r2, 0 - str r2, [sp, 0x8] - str r2, [sp, 0xC] - movs r2, 0x3 - bl SetMenuItems - bl sub_801CCD8 - ldr r0, [r5] - adds r0, 0x44 - movs r1, 0x3 - movs r2, 0x1 - bl sub_8035CF4 - b _08036DFA - .align 2, 0 -_08036C50: .4byte gUnknown_80E60EC -_08036C54: .4byte gUnknown_80E6104 -_08036C58: - bl sub_8036F74 - b _08036DFA -_08036C5E: - ldr r2, _08036C7C - ldr r1, [r5] - ldr r0, [r1, 0x14] - str r0, [r2] - ldr r0, _08036C80 - ldr r2, _08036C84 - adds r1, r2 - ldrb r1, [r1] - movs r2, 0 - bl sub_8090DC4 - ldr r0, _08036C88 - ldr r3, _08036C8C - b _08036C9C - .align 2, 0 -_08036C7C: .4byte gUnknown_202DE30 -_08036C80: .4byte gUnknown_202DE58 -_08036C84: .4byte 0x0000025e -_08036C88: .4byte gUnknown_80E61E4 -_08036C8C: .4byte gUnknown_80E6154 -_08036C90: - ldr r0, _08036C94 - b _08036C9A - .align 2, 0 -_08036C94: .4byte gUnknown_80E6214 -_08036C98: - ldr r0, _08036CB8 -_08036C9A: - ldr r3, _08036CBC -_08036C9C: - movs r2, 0 - str r2, [sp] - movs r1, 0x4 - str r1, [sp, 0x4] - str r2, [sp, 0x8] - str r2, [sp, 0xC] - adds r1, 0xFD - str r1, [sp, 0x10] - movs r1, 0 - movs r2, 0x5 - bl sub_8014248 - b _08036DFA - .align 2, 0 -_08036CB8: .4byte gUnknown_80E6268 -_08036CBC: .4byte gUnknown_80E618C -_08036CC0: - movs r0, 0 - bl nullsub_23 - ldr r0, _08036CD4 - movs r1, 0 - movs r2, 0 - movs r3, 0 - bl sub_80141B4 - b _08036DFA - .align 2, 0 -_08036CD4: .4byte gUnknown_80E62C4 -_08036CD8: - ldr r4, _08036D18 - ldr r1, [r4] - movs r0, 0 - str r0, [r1, 0xC] - movs r2, 0 - movs r3, 0 - movs r5, 0x91 - lsls r5, 2 - adds r0, r1, r5 - str r2, [r0] - str r3, [r0, 0x4] - movs r0, 0x93 - lsls r0, 2 - adds r1, r0 - str r2, [r1] - str r3, [r1, 0x4] - bl sub_8011830 - ldr r0, [r4] - ldr r0, [r0, 0x8] - bl sub_8037B28 - ldr r4, [r4] - str r0, [r4, 0xC] - cmp r0, 0 - bne _08036D44 - ldr r0, [r4, 0x8] - cmp r0, 0 - beq _08036D1C - cmp r0, 0x1 - beq _08036D2C - b _08036D44 - .align 2, 0 -_08036D18: .4byte gUnknown_203B358 -_08036D1C: - adds r2, r4, r5 - movs r1, 0x95 - lsls r1, 2 - adds r0, r4, r1 - ldr r1, [r0, 0x4] - ldr r0, [r0] - str r0, [r2] - str r1, [r2, 0x4] -_08036D2C: - ldr r4, _08036D6C - ldr r2, [r4] - ldr r0, [r2, 0x8] - movs r3, 0x91 - lsls r3, 2 - adds r1, r2, r3 - adds r3, 0x8 - adds r2, r3 - bl sub_8037D64 - ldr r1, [r4] - str r0, [r1, 0xC] -_08036D44: - ldr r4, _08036D6C - ldr r2, [r4] - ldr r0, [r2, 0xC] - cmp r0, 0 - bne _08036D66 - ldr r0, [r2, 0x8] - cmp r0, 0x1 - bhi _08036D66 - movs r3, 0x91 - lsls r3, 2 - adds r1, r2, r3 - adds r3, 0x8 - adds r2, r3 - bl sub_80381F4 - ldr r1, [r4] - str r0, [r1, 0xC] -_08036D66: - bl xxx_call_start_bg_music - b _08036DFA - .align 2, 0 -_08036D6C: .4byte gUnknown_203B358 -_08036D70: - ldr r2, [r5] - movs r1, 0x94 - lsls r1, 2 - adds r0, r2, r1 - ldr r1, [r0] - cmp r1, 0 - bne _08036DA4 - ldr r1, _08036D9C - movs r3, 0x92 - lsls r3, 2 - adds r0, r2, r3 - ldr r0, [r0] - str r0, [r1] - ldr r0, _08036DA0 - subs r3, 0x4 - adds r1, r2, r3 - ldrb r1, [r1] - movs r2, 0 - bl sub_8090DC4 - b _08036DB8 - .align 2, 0 -_08036D9C: .4byte gUnknown_202DE30 -_08036DA0: .4byte gUnknown_202DE58 -_08036DA4: - ldr r0, _08036DC8 - str r1, [r0] - ldr r0, _08036DCC - movs r3, 0x93 - lsls r3, 2 - adds r1, r2, r3 - ldrb r1, [r1] - movs r2, 0 - bl sub_8090DC4 -_08036DB8: - ldr r0, _08036DD0 -_08036DBA: - ldr r3, _08036DD4 - movs r1, 0 - movs r2, 0 - bl sub_80141B4 - b _08036DFA - .align 2, 0 -_08036DC8: .4byte gUnknown_202DE30 -_08036DCC: .4byte gUnknown_202DE58 -_08036DD0: .4byte gUnknown_80E6314 -_08036DD4: .4byte 0x00000101 -_08036DD8: - ldr r2, _08036E04 - ldr r1, [r5] - ldr r0, [r1, 0x14] - str r0, [r2] - ldr r0, _08036E08 - ldr r2, _08036E0C - adds r1, r2 - ldrb r1, [r1] - movs r2, 0 - bl sub_8090DC4 - ldr r0, _08036E10 - ldr r3, _08036E14 - movs r1, 0 - movs r2, 0 - bl sub_80141B4 -_08036DFA: - add sp, 0x18 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_08036E04: .4byte gUnknown_202DE30 -_08036E08: .4byte gUnknown_202DE58 -_08036E0C: .4byte 0x0000025e -_08036E10: .4byte gUnknown_80E6358 -_08036E14: .4byte 0x00000101 - thumb_func_end sub_8036B28 - - thumb_func_start sub_8036E18 -sub_8036E18: - push {lr} - cmp r0, 0xF - bhi _08036EB4 - lsls r0, 2 - ldr r1, _08036E28 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08036E28: .4byte _08036E2C - .align 2, 0 -_08036E2C: - .4byte _08036EC0 - .4byte _08036E6C - .4byte _08036E7C - .4byte _08036E74 - .4byte _08036E84 - .4byte _08036E8C - .4byte _08036EB4 - .4byte _08036EB4 - .4byte _08036EB4 - .4byte _08036EB4 - .4byte _08036EB4 - .4byte _08036EB4 - .4byte _08036EB4 - .4byte _08036EB4 - .4byte _08036E94 - .4byte _08036E9C -_08036E6C: - ldr r0, _08036E70 - b _08036E9E - .align 2, 0 -_08036E70: .4byte gUnknown_80E6378 -_08036E74: - ldr r0, _08036E78 - b _08036E9E - .align 2, 0 -_08036E78: .4byte gUnknown_80E639C -_08036E7C: - ldr r0, _08036E80 - b _08036E9E - .align 2, 0 -_08036E80: .4byte gUnknown_80E63F8 -_08036E84: - ldr r0, _08036E88 - b _08036E9E - .align 2, 0 -_08036E88: .4byte gUnknown_80E6448 -_08036E8C: - ldr r0, _08036E90 - b _08036E9E - .align 2, 0 -_08036E90: .4byte gUnknown_80E6378 -_08036E94: - ldr r0, _08036E98 - b _08036E9E - .align 2, 0 -_08036E98: .4byte gUnknown_80E6378 -_08036E9C: - ldr r0, _08036EAC -_08036E9E: - ldr r3, _08036EB0 - movs r1, 0 - movs r2, 0 - bl sub_80141B4 - b _08036EC0 - .align 2, 0 -_08036EAC: .4byte gUnknown_80E64AC -_08036EB0: .4byte 0x00000101 -_08036EB4: - ldr r0, _08036EC4 - ldr r3, _08036EC8 - movs r1, 0 - movs r2, 0 - bl sub_80141B4 -_08036EC0: - pop {r0} - bx r0 - .align 2, 0 -_08036EC4: .4byte gUnknown_80E6378 -_08036EC8: .4byte 0x00000101 - thumb_func_end sub_8036E18 - - thumb_func_start sub_8036ECC -sub_8036ECC: - push {r4-r6,lr} - adds r3, r0, 0 - ldr r6, _08036F28 - ldr r0, [r6] - movs r2, 0x3 - str r2, [r0, 0x24] - movs r2, 0x1 - str r2, [r0, 0x18] - str r2, [r0, 0x1C] - str r1, [r0, 0x20] - movs r1, 0x2C - str r1, [r0, 0x30] - movs r1, 0x12 - str r1, [r0, 0x34] - str r3, [r0, 0x28] - lsls r4, r3, 1 - adds r4, r3 - lsls r4, 3 - movs r5, 0xC2 - lsls r5, 1 - adds r1, r4, r5 - adds r1, r0, r1 - str r1, [r0, 0x2C] - adds r0, 0x14 - bl sub_8013AA0 - ldr r1, [r6] - adds r1, r4 - adds r1, r5 - ldr r0, _08036F2C - ldm r0!, {r2-r4} - stm r1!, {r2-r4} - ldm r0!, {r2-r4} - stm r1!, {r2-r4} - bl ResetUnusedInputStruct - ldr r0, [r6] - adds r0, r5 - movs r1, 0x1 - movs r2, 0x1 - bl sub_800641C - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_08036F28: .4byte gUnknown_203B358 -_08036F2C: .4byte gUnknown_80E6174 - thumb_func_end sub_8036ECC - - thumb_func_start sub_8036F30 -sub_8036F30: - push {r4,r5,lr} - sub sp, 0x4 - ldr r5, _08036F6C - ldr r0, [r5] - ldr r4, [r0, 0x28] - adds r0, r4, 0 - bl sub_8008C54 - adds r0, r4, 0 - bl sub_80073B8 - ldr r2, _08036F70 - movs r0, 0 - str r0, [sp] - movs r0, 0x2 - movs r1, 0 - adds r3, r4, 0 - bl xxx_call_draw_string - ldr r0, [r5] - adds r0, 0x14 - bl sub_8013C68 - adds r0, r4, 0 - bl sub_80073E0 - add sp, 0x4 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_08036F6C: .4byte gUnknown_203B358 -_08036F70: .4byte gUnknown_80E6528 - thumb_func_end sub_8036F30 - - thumb_func_start sub_8036F74 -sub_8036F74: - push {r4,lr} - ldr r4, _08036FB8 - ldr r0, [r4] - movs r1, 0xC2 - lsls r1, 1 - adds r0, r1 - bl sub_8006518 - ldr r0, _08036FBC - ldr r1, [r0] - ldr r0, [r4] - ldr r2, _08036FC0 - adds r0, r2 - ldrb r0, [r0] - lsls r0, 1 - adds r1, 0x50 - adds r1, r0 - ldrh r1, [r1] - movs r0, 0x2 - bl sub_8036ECC - bl sub_801CCD8 - ldr r0, [r4] - adds r0, 0x44 - movs r1, 0x3 - movs r2, 0 - bl sub_8035CF4 - bl sub_8036F30 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08036FB8: .4byte gUnknown_203B358 -_08036FBC: .4byte gUnknown_203B460 -_08036FC0: .4byte 0x0000025e - thumb_func_end sub_8036F74 - - thumb_func_start sub_8036FC4 -sub_8036FC4: - push {lr} - ldr r1, _08036FD8 - ldr r1, [r1] - str r0, [r1] - bl nullsub_52 - bl sub_8036B28 - pop {r0} - bx r0 - .align 2, 0 -_08036FD8: .4byte gUnknown_203B358 - thumb_func_end sub_8036FC4 - - thumb_func_start sub_8036FDC -sub_8036FDC: - push {r4-r7,lr} - mov r7, r8 - push {r7} - sub sp, 0x10 - adds r6, r0, 0 - bl ResetUnusedInputStruct - movs r0, 0 - movs r1, 0x1 - movs r2, 0x1 - bl sub_800641C - movs r0, 0 - bl ResetSprites - ldr r5, _080370C0 - ldr r0, [r5] - cmp r0, 0 - bne _08037016 - ldr r4, _080370C4 - adds r0, r4, 0 - movs r1, 0x8 - bl MemoryAlloc - str r0, [r5] - movs r1, 0 - adds r2, r4, 0 - bl MemoryFill8 -_08037016: - ldr r0, [r5] - str r6, [r0] - movs r1, 0 - str r1, [r0, 0x4] - str r1, [r0, 0x8] - movs r3, 0 - adds r7, r5, 0 - movs r6, 0xE0 - lsls r6, 1 - movs r4, 0 - movs r5, 0xDE - lsls r5, 1 -_0803702E: - ldr r0, [r7] - lsls r2, r3, 3 - adds r1, r0, r6 - adds r1, r2 - str r4, [r1] - adds r0, r2 - adds r0, r5 - strb r4, [r0] - adds r3, 0x1 - cmp r3, 0x1 - ble _0803702E - ldr r0, _080370C0 - mov r12, r0 - movs r5, 0xAE - lsls r5, 1 - mov r8, r5 - ldr r4, _080370C8 - movs r3, 0 - movs r2, 0x3 -_08037054: - mov r6, r12 - ldr r1, [r6] - adds r1, r3 - add r1, r8 - adds r0, r4, 0 - ldm r0!, {r5-r7} - stm r1!, {r5-r7} - ldm r0!, {r5-r7} - stm r1!, {r5-r7} - adds r3, 0x18 - subs r2, 0x1 - cmp r2, 0 - bge _08037054 - movs r6, 0 - bl ResetUnusedInputStruct - ldr r5, _080370C0 - ldr r0, [r5] - movs r4, 0xAE - lsls r4, 1 - adds r0, r4 - movs r1, 0x1 - movs r2, 0x1 - bl sub_800641C - ldr r1, [r5] - adds r0, r1, 0 - adds r0, 0x1C - adds r1, r4 - ldr r3, _080370CC - ldr r2, _080370D0 - str r2, [sp] - str r6, [sp, 0x4] - movs r2, 0x6 - str r2, [sp, 0x8] - str r6, [sp, 0xC] - movs r2, 0 - bl SetMenuItems - ldr r0, [r5] - adds r0, 0x1C - movs r1, 0 - movs r2, 0x1 - bl sub_8035CF4 - bl sub_80376CC - add sp, 0x10 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080370C0: .4byte gUnknown_203B35C -_080370C4: .4byte 0x00000504 -_080370C8: .4byte gUnknown_80E653C -_080370CC: .4byte gUnknown_80E6CD0 -_080370D0: .4byte gUnknown_80E6CE8 - thumb_func_end sub_8036FDC - - thumb_func_start sub_80370D4 -sub_80370D4: - push {r4,lr} - ldr r4, _080370EC - ldr r0, [r4] - cmp r0, 0 - beq _080370E6 - bl MemoryFree - movs r0, 0 - str r0, [r4] -_080370E6: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080370EC: .4byte gUnknown_203B35C - thumb_func_end sub_80370D4 - - thumb_func_start sub_80370F0 -sub_80370F0: - push {r4,r5,lr} - sub sp, 0x4 - movs r0, 0x4 - str r0, [sp] - ldr r5, _08037110 - ldr r4, _08037114 - ldr r1, [r4] - ldr r0, [r1, 0x8] - cmp r0, 0x1 - beq _08037148 - cmp r0, 0x1 - bcc _08037118 - cmp r0, 0x2 - beq _08037158 - b _080371A8 - .align 2, 0 -_08037110: .4byte 0x0000ffdc -_08037114: .4byte gUnknown_203B35C -_08037118: - adds r0, r1, 0 - adds r0, 0x1C - bl sub_80130A8 - lsls r0, 24 - cmp r0, 0 - bne _08037130 - ldr r0, [r4] - adds r0, 0x1C - mov r1, sp - bl sub_8013114 -_08037130: - ldr r0, [sp] - cmp r0, 0x4 - bne _0803713C - bl sub_8037748 - b _080371A8 -_0803713C: - ldr r1, [r4] - movs r0, 0x1 - str r0, [r1, 0x8] - bl sub_8037900 - b _080371A8 -_08037148: - bl sub_80376CC - ldr r1, [r4] - movs r0, 0x2 - str r0, [r1, 0x8] - bl sub_80371B8 - b _080371A8 -_08037158: - ldr r0, [r1] - cmp r0, 0x1 - bhi _08037172 - ldr r0, [r1, 0x4] - cmp r0, 0 - bne _08037172 - movs r0, 0 - bl sub_8037C10 - cmp r0, 0 - bne _08037172 - movs r0, 0x29 - b _080371AA -_08037172: - ldr r4, _080371B4 - ldr r0, [r4] - adds r0, 0x1C - bl sub_80130A8 - lsls r0, 24 - cmp r0, 0 - bne _0803718C - ldr r0, [r4] - adds r0, 0x1C - mov r1, sp - bl sub_8013114 -_0803718C: - ldr r0, [sp] - cmp r0, 0x4 - beq _080371A4 - movs r0, 0x3 - bl PlayMenuSoundEffect - bl sub_8037798 - adds r5, r0, 0 - ldr r1, [r4] - movs r0, 0x4 - str r0, [r1, 0x8] -_080371A4: - bl sub_8037748 -_080371A8: - adds r0, r5, 0 -_080371AA: - add sp, 0x4 - pop {r4,r5} - pop {r1} - bx r1 - .align 2, 0 -_080371B4: .4byte gUnknown_203B35C - thumb_func_end sub_80370F0 - - thumb_func_start sub_80371B8 -sub_80371B8: - push {r4-r7,lr} - sub sp, 0x10 - movs r6, 0 - movs r5, 0 - bl sub_8037400 - ldr r7, _0803721C - ldr r1, [r7] - ldr r0, [r1] - cmp r0, 0x1 - bhi _08037228 - ldr r0, [r1, 0x4] - cmp r0, 0 - bne _08037228 - movs r0, 0 - bl sub_8037C10 - cmp r0, 0 - bne _080371E0 - b _080373AC -_080371E0: - bl sub_80376CC - ldr r0, [r7] - movs r4, 0xAE - lsls r4, 1 - adds r0, r4 - movs r1, 0 - bl sub_8035CC0 - ldr r1, [r7] - adds r0, r1, 0 - adds r0, 0x1C - adds r1, r4 - ldr r3, _08037220 - ldr r2, _08037224 - str r2, [sp] - str r6, [sp, 0x4] - movs r2, 0x6 - str r2, [sp, 0x8] - str r6, [sp, 0xC] - movs r2, 0 - bl SetMenuItems - ldr r0, [r7] - adds r0, 0x1C - movs r1, 0 - movs r2, 0x1 - bl sub_8035CF4 - b _080373AC - .align 2, 0 -_0803721C: .4byte gUnknown_203B35C -_08037220: .4byte gUnknown_80E6C50 -_08037224: .4byte gUnknown_80E6C68 -_08037228: - bl sub_80376CC - ldr r4, _08037250 - ldr r0, [r4] - movs r1, 0xAE - lsls r1, 1 - adds r0, r1 - movs r1, 0 - bl sub_8035CC0 - ldr r0, [r4] - ldr r0, [r0, 0x4] - cmp r0, 0xF - bls _08037246 - b _0803734C -_08037246: - lsls r0, 2 - ldr r1, _08037254 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08037250: .4byte gUnknown_203B35C -_08037254: .4byte _08037258 - .align 2, 0 -_08037258: - .4byte _08037298 - .4byte _080372D8 - .4byte _080372B8 - .4byte _080372A8 - .4byte _080372C8 - .4byte _080372D8 - .4byte _080372E8 - .4byte _080372F8 - .4byte _0803734C - .4byte _08037308 - .4byte _0803734C - .4byte _08037318 - .4byte _0803734C - .4byte _08037328 - .4byte _08037338 - .4byte _08037348 -_08037298: - ldr r6, _080372A0 - ldr r5, _080372A4 - b _0803734C - .align 2, 0 -_080372A0: .4byte gUnknown_80E66BC -_080372A4: .4byte gUnknown_80E66D4 -_080372A8: - ldr r6, _080372B0 - ldr r5, _080372B4 - b _0803734C - .align 2, 0 -_080372B0: .4byte gUnknown_80E6D54 -_080372B4: .4byte gUnknown_80E6D6C -_080372B8: - ldr r6, _080372C0 - ldr r5, _080372C4 - b _0803734C - .align 2, 0 -_080372C0: .4byte gUnknown_80E6DDC -_080372C4: .4byte gUnknown_80E6DF4 -_080372C8: - ldr r6, _080372D0 - ldr r5, _080372D4 - b _0803734C - .align 2, 0 -_080372D0: .4byte gUnknown_80E67D4 -_080372D4: .4byte gUnknown_80E67EC -_080372D8: - ldr r6, _080372E0 - ldr r5, _080372E4 - b _0803734C - .align 2, 0 -_080372E0: .4byte gUnknown_80E6748 -_080372E4: .4byte gUnknown_80E6760 -_080372E8: - ldr r6, _080372F0 - ldr r5, _080372F4 - b _0803734C - .align 2, 0 -_080372F0: .4byte gUnknown_80E689C -_080372F4: .4byte gUnknown_80E68B4 -_080372F8: - ldr r6, _08037300 - ldr r5, _08037304 - b _0803734C - .align 2, 0 -_08037300: .4byte gUnknown_80E6938 -_08037304: .4byte gUnknown_80E6950 -_08037308: - ldr r6, _08037310 - ldr r5, _08037314 - b _0803734C - .align 2, 0 -_08037310: .4byte gUnknown_80E69B0 -_08037314: .4byte gUnknown_80E69C8 -_08037318: - ldr r6, _08037320 - ldr r5, _08037324 - b _0803734C - .align 2, 0 -_08037320: .4byte gUnknown_80E6A10 -_08037324: .4byte gUnknown_80E6A28 -_08037328: - ldr r6, _08037330 - ldr r5, _08037334 - b _0803734C - .align 2, 0 -_08037330: .4byte gUnknown_80E6A74 -_08037334: .4byte gUnknown_80E6A8C -_08037338: - ldr r6, _08037340 - ldr r5, _08037344 - b _0803734C - .align 2, 0 -_08037340: .4byte gUnknown_80E6B78 -_08037344: .4byte gUnknown_80E6B90 -_08037348: - ldr r6, _080373B4 - ldr r5, _080373B8 -_0803734C: - ldr r4, _080373BC - ldr r1, [r4] - adds r0, r1, 0 - adds r0, 0x1C - movs r2, 0xAE - lsls r2, 1 - adds r1, r2 - str r5, [sp] - movs r3, 0 - str r3, [sp, 0x4] - movs r2, 0x6 - str r2, [sp, 0x8] - str r3, [sp, 0xC] - movs r2, 0 - adds r3, r6, 0 - bl SetMenuItems - ldr r0, [r4] - adds r0, 0x1C - movs r1, 0 - movs r2, 0x1 - bl sub_8035CF4 - ldr r4, [r4] - ldr r0, [r4, 0x4] - cmp r0, 0 - beq _080373AC - ldr r0, [r4] - cmp r0, 0 - bne _080373AC - bl sub_8035D94 - adds r2, r0, 0 - ldrb r0, [r2] - cmp r0, 0 - beq _080373AC - ldr r3, [r2, 0x4] - cmp r3, 0 - beq _080373AC - ldr r0, _080373C0 - ldr r1, [r0] - ldrb r0, [r2] - lsls r0, 1 - adds r1, 0x50 - adds r1, r0 - ldrh r0, [r1] - adds r0, r3 - strh r0, [r1] -_080373AC: - add sp, 0x10 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080373B4: .4byte gUnknown_80E6BF4 -_080373B8: .4byte gUnknown_80E6C0C -_080373BC: .4byte gUnknown_203B35C -_080373C0: .4byte gUnknown_203B460 - thumb_func_end sub_80371B8 - - thumb_func_start sub_80373C4 -sub_80373C4: - push {lr} - movs r0, 0 - movs r1, 0 - bl sub_8005838 - bl sub_80060EC - bl sub_800CB20 - bl LoadBufferedInputs - bl TransferBGPaletteBuffer - bl xxx_call_update_bg_vram - bl sub_8009908 - bl xxx_call_update_bg_sound_input - movs r0, 0 - bl ResetSprites - pop {r0} - bx r0 - thumb_func_end sub_80373C4 - - thumb_func_start sub_80373F4 -sub_80373F4: - ldr r0, _080373FC - ldr r0, [r0] - bx lr - .align 2, 0 -_080373FC: .4byte gUnknown_203B35C - thumb_func_end sub_80373F4 - - thumb_func_start sub_8037400 -sub_8037400: - push {r4-r6,lr} - movs r6, 0 - movs r5, 0 - bl sub_8037810 - bl sub_8011830 - ldr r4, _08037434 - ldr r0, [r4] - ldr r0, [r0] - bl sub_8037B28 - ldr r4, [r4] - str r0, [r4, 0x4] - cmp r0, 0 - beq _08037422 - b _080376BE -_08037422: - ldr r0, [r4] - cmp r0, 0xA - bls _0803742A - b _080375E8 -_0803742A: - lsls r0, 2 - ldr r1, _08037438 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08037434: .4byte gUnknown_203B35C -_08037438: .4byte _0803743C - .align 2, 0 -_0803743C: - .4byte _08037494 - .4byte _080374B8 - .4byte _08037534 - .4byte _0803751C - .4byte _0803756C - .4byte _080375D8 - .4byte _080374E4 - .4byte _080374D0 - .4byte _080375E8 - .4byte _08037480 - .4byte _08037468 -_08037468: - ldr r0, _0803747C - ldr r0, [r0] - movs r1, 0xE7 - lsls r1, 2 - adds r6, r0, r1 - movs r2, 0x8A - lsls r2, 3 - adds r5, r0, r2 - b _080375E8 - .align 2, 0 -_0803747C: .4byte gUnknown_203B35C -_08037480: - ldr r0, _08037490 - ldr r0, [r0] - movs r3, 0xE7 - lsls r3, 2 - adds r6, r0, r3 - movs r4, 0x8A - lsls r4, 3 - b _080375E6 - .align 2, 0 -_08037490: .4byte gUnknown_203B35C -_08037494: - bl sub_8035D94 - ldr r1, _080374B4 - ldr r3, [r1] - movs r5, 0xDE - lsls r5, 1 - adds r2, r3, r5 - ldr r1, [r0, 0x4] - ldr r0, [r0] - str r0, [r2] - str r1, [r2, 0x4] - adds r6, r2, 0 - movs r0, 0xE2 - lsls r0, 1 - adds r5, r3, r0 - b _080375E8 - .align 2, 0 -_080374B4: .4byte gUnknown_203B35C -_080374B8: - ldr r0, _080374CC - ldr r0, [r0] - movs r1, 0xDE - lsls r1, 1 - adds r6, r0, r1 - movs r2, 0xE2 - lsls r2, 1 - adds r5, r0, r2 - b _080375E8 - .align 2, 0 -_080374CC: .4byte gUnknown_203B35C -_080374D0: - ldr r0, _080374E0 - ldr r0, [r0] - movs r3, 0xE6 - lsls r3, 1 - adds r6, r0, r3 - movs r4, 0xFE - lsls r4, 1 - b _080375E6 - .align 2, 0 -_080374E0: .4byte gUnknown_203B35C -_080374E4: - bl sub_8035D74 - lsls r0, 24 - lsrs r0, 24 - bl sub_8095228 - ldr r3, _08037518 - ldr r1, [r3] - movs r2, 0xE6 - lsls r2, 1 - adds r1, r2 - ldm r0!, {r4-r6} - stm r1!, {r4-r6} - ldm r0!, {r4-r6} - stm r1!, {r4-r6} - ldm r0!, {r4-r6} - stm r1!, {r4-r6} - ldm r0!, {r4-r6} - stm r1!, {r4-r6} - ldr r0, [r3] - adds r6, r0, r2 - movs r1, 0xFE - lsls r1, 1 - adds r5, r0, r1 - b _080375E8 - .align 2, 0 -_08037518: .4byte gUnknown_203B35C -_0803751C: - ldr r0, _08037530 - ldr r0, [r0] - movs r2, 0x8B - lsls r2, 2 - adds r6, r0, r2 - movs r3, 0x97 - lsls r3, 2 - adds r5, r0, r3 - b _080375E8 - .align 2, 0 -_08037530: .4byte gUnknown_203B35C -_08037534: - bl sub_8035D74 - lsls r0, 24 - lsrs r0, 24 - bl sub_8095228 - ldr r3, _08037568 - ldr r1, [r3] - movs r2, 0x8B - lsls r2, 2 - adds r1, r2 - ldm r0!, {r4-r6} - stm r1!, {r4-r6} - ldm r0!, {r4-r6} - stm r1!, {r4-r6} - ldm r0!, {r4-r6} - stm r1!, {r4-r6} - ldm r0!, {r4-r6} - stm r1!, {r4-r6} - ldr r0, [r3] - adds r6, r0, r2 - movs r1, 0x97 - lsls r1, 2 - adds r5, r0, r1 - b _080375E8 - .align 2, 0 -_08037568: .4byte gUnknown_203B35C -_0803756C: - bl sub_8035D74 - lsls r0, 24 - lsrs r0, 24 - bl sub_8095228 - ldr r4, _080375CC - ldr r1, [r4] - movs r5, 0xA3 - lsls r5, 2 - adds r1, r5 - ldm r0!, {r2,r3,r6} - stm r1!, {r2,r3,r6} - ldm r0!, {r2,r3,r6} - stm r1!, {r2,r3,r6} - ldm r0!, {r2,r3,r6} - stm r1!, {r2,r3,r6} - ldm r0!, {r2,r3,r6} - stm r1!, {r2,r3,r6} - bl sub_8035D3C - lsls r0, 16 - ldr r1, _080375D0 - cmp r0, r1 - beq _080375BE - bl sub_8035D3C - ldr r3, [r4] - movs r1, 0xAF - lsls r1, 2 - adds r3, r1 - ldr r1, _080375D4 - ldr r1, [r1] - lsls r0, 16 - asrs r0, 16 - movs r2, 0x58 - muls r0, r2 - adds r1, r0 - adds r0, r3, 0 - bl memcpy -_080375BE: - ldr r0, [r4] - adds r6, r0, r5 - movs r2, 0xC5 - lsls r2, 2 - adds r5, r0, r2 - b _080375E8 - .align 2, 0 -_080375CC: .4byte gUnknown_203B35C -_080375D0: .4byte 0xffff0000 -_080375D4: .4byte gUnknown_203B45C -_080375D8: - ldr r0, _08037610 - ldr r0, [r0] - movs r3, 0xA3 - lsls r3, 2 - adds r6, r0, r3 - movs r4, 0xC5 - lsls r4, 2 -_080375E6: - adds r5, r0, r4 -_080375E8: - ldr r4, _08037610 - ldr r0, [r4] - ldr r0, [r0] - adds r1, r6, 0 - adds r2, r5, 0 - bl sub_8037D64 - ldr r1, [r4] - str r0, [r1, 0x4] - cmp r0, 0 - bne _080376BE - ldr r0, [r1] - cmp r0, 0xA - bhi _080376AE - lsls r0, 2 - ldr r1, _08037614 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08037610: .4byte gUnknown_203B35C -_08037614: .4byte _08037618 - .align 2, 0 -_08037618: - .4byte _08037644 - .4byte _08037644 - .4byte _08037658 - .4byte _08037658 - .4byte _0803766C - .4byte _0803766C - .4byte _08037684 - .4byte _08037684 - .4byte _080376AE - .4byte _0803769C - .4byte _0803769C -_08037644: - ldr r0, _08037654 - ldr r2, [r0] - movs r5, 0xDE - lsls r5, 1 - adds r6, r2, r5 - movs r1, 0xE2 - lsls r1, 1 - b _0803767A - .align 2, 0 -_08037654: .4byte gUnknown_203B35C -_08037658: - ldr r0, _08037668 - ldr r2, [r0] - movs r3, 0x8B - lsls r3, 2 - adds r6, r2, r3 - movs r4, 0x97 - lsls r4, 2 - b _08037692 - .align 2, 0 -_08037668: .4byte gUnknown_203B35C -_0803766C: - ldr r0, _08037680 - ldr r2, [r0] - movs r5, 0xA3 - lsls r5, 2 - adds r6, r2, r5 - movs r1, 0xC5 - lsls r1, 2 -_0803767A: - adds r5, r2, r1 - adds r4, r0, 0 - b _080376AE - .align 2, 0 -_08037680: .4byte gUnknown_203B35C -_08037684: - ldr r0, _08037698 - ldr r2, [r0] - movs r3, 0xE6 - lsls r3, 1 - adds r6, r2, r3 - movs r4, 0xFE - lsls r4, 1 -_08037692: - adds r5, r2, r4 - adds r4, r0, 0 - b _080376AE - .align 2, 0 -_08037698: .4byte gUnknown_203B35C -_0803769C: - ldr r1, _080376C8 - ldr r0, [r1] - movs r5, 0xE7 - lsls r5, 2 - adds r6, r0, r5 - movs r2, 0x8A - lsls r2, 3 - adds r5, r0, r2 - adds r4, r1, 0 -_080376AE: - ldr r0, [r4] - ldr r0, [r0] - adds r1, r6, 0 - adds r2, r5, 0 - bl sub_80381F4 - ldr r1, [r4] - str r0, [r1, 0x4] -_080376BE: - bl xxx_call_start_bg_music - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080376C8: .4byte gUnknown_203B35C - thumb_func_end sub_8037400 - - thumb_func_start sub_80376CC -sub_80376CC: - push {r4,lr} - ldr r0, _08037728 - ldr r3, [r0] - ldrh r1, [r3, 0xC] - ldr r0, _0803772C - ands r0, r1 - ldr r1, _08037730 - ands r0, r1 - ldr r4, _08037734 - ands r0, r4 - ldr r1, _08037738 - ands r0, r1 - ldr r1, _0803773C - ands r0, r1 - movs r2, 0x80 - lsls r2, 7 - ldr r1, _08037740 - ands r0, r1 - orrs r0, r2 - strh r0, [r3, 0xC] - movs r2, 0xFC - lsls r2, 2 - ldrh r1, [r3, 0x10] - movs r0, 0xFC - lsls r0, 8 - ands r0, r1 - orrs r0, r2 - ands r0, r4 - movs r2, 0xF - movs r4, 0xF0 - lsls r4, 8 - ldr r1, _08037744 - ands r0, r1 - orrs r0, r4 - strh r0, [r3, 0x10] - movs r0, 0 - strh r0, [r3, 0xE] - movs r1, 0xC0 - lsls r1, 4 - ldrh r0, [r3, 0x12] - ands r2, r0 - orrs r2, r1 - strh r2, [r3, 0x12] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08037728: .4byte gUnknown_203B35C -_0803772C: .4byte 0x0000feff -_08037730: .4byte 0x0000fdff -_08037734: .4byte 0x0000f3ff -_08037738: .4byte 0x0000efff -_0803773C: .4byte 0x0000dfff -_08037740: .4byte 0x00003fff -_08037744: .4byte 0x00000fff - thumb_func_end sub_80376CC - - thumb_func_start sub_8037748 -sub_8037748: - push {r4,lr} - ldr r4, _08037794 - ldr r3, [r4] - ldrh r1, [r3, 0xE] - movs r0, 0xFE - lsls r0, 8 - ands r0, r1 - movs r1, 0x70 - orrs r0, r1 - strh r0, [r3, 0xE] - movs r2, 0xD0 - lsls r2, 3 - ldrh r1, [r3, 0x12] - movs r0, 0xF - ands r0, r1 - orrs r0, r2 - strh r0, [r3, 0x12] - ldr r0, [r3, 0x14] - movs r1, 0x8 - ands r0, r1 - cmp r0, 0 - beq _08037782 - adds r0, r3, 0 - adds r0, 0xC - adds r1, 0xF8 - movs r2, 0 - movs r3, 0 - bl AddSprite -_08037782: - bl xxx_draw_string_80144C4 - ldr r1, [r4] - ldr r0, [r1, 0x14] - adds r0, 0x1 - str r0, [r1, 0x14] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08037794: .4byte gUnknown_203B35C - thumb_func_end sub_8037748 - - thumb_func_start sub_8037798 -sub_8037798: - push {lr} - ldr r2, _080377B4 - ldr r1, _080377B8 - ldr r0, [r1] - ldr r0, [r0] - adds r3, r1, 0 - cmp r0, 0xA - bhi _0803780A - lsls r0, 2 - ldr r1, _080377BC - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080377B4: .4byte 0x0000ffdc -_080377B8: .4byte gUnknown_203B35C -_080377BC: .4byte _080377C0 - .align 2, 0 -_080377C0: - .4byte _080377EC - .4byte _080377EC - .4byte _080377F0 - .4byte _080377F0 - .4byte _080377F0 - .4byte _080377F0 - .4byte _080377F0 - .4byte _080377F0 - .4byte _0803780A - .4byte _080377FE - .4byte _080377FE -_080377EC: - movs r2, 0x1 - b _0803780A -_080377F0: - ldr r0, [r3] - ldr r0, [r0, 0x4] - movs r2, 0x1 - cmp r0, 0 - bne _0803780A - movs r2, 0x2A - b _0803780A -_080377FE: - ldr r0, [r3] - ldr r0, [r0, 0x4] - movs r2, 0xD - cmp r0, 0 - bne _0803780A - movs r2, 0x2B -_0803780A: - adds r0, r2, 0 - pop {r1} - bx r1 - thumb_func_end sub_8037798 - - thumb_func_start sub_8037810 -sub_8037810: - push {r4-r6,lr} - ldr r6, _080378FC - ldr r0, [r6] - movs r5, 0xDE - lsls r5, 1 - adds r0, r5 - movs r1, 0 - movs r2, 0x8 - bl MemoryFill8 - ldr r0, [r6] - movs r4, 0xE2 - lsls r4, 1 - adds r0, r4 - movs r1, 0 - movs r2, 0x8 - bl MemoryFill8 - ldr r0, [r6] - adds r5, r0, r5 - movs r1, 0 - movs r2, 0 - str r1, [r5] - str r2, [r5, 0x4] - adds r4, r0, r4 - str r1, [r4] - str r2, [r4, 0x4] - movs r2, 0xE6 - lsls r2, 1 - adds r0, r2 - movs r1, 0 - movs r2, 0x30 - bl MemoryFill8 - ldr r0, [r6] - movs r3, 0xFE - lsls r3, 1 - adds r0, r3 - movs r1, 0 - movs r2, 0x30 - bl MemoryFill8 - ldr r0, [r6] - movs r1, 0x8B - lsls r1, 2 - adds r0, r1 - movs r1, 0 - movs r2, 0x30 - bl MemoryFill8 - ldr r0, [r6] - movs r2, 0x97 - lsls r2, 2 - adds r0, r2 - movs r1, 0 - movs r2, 0x30 - bl MemoryFill8 - ldr r0, [r6] - movs r3, 0xA3 - lsls r3, 2 - adds r0, r3 - movs r1, 0 - movs r2, 0x30 - bl MemoryFill8 - ldr r0, [r6] - movs r1, 0xC5 - lsls r1, 2 - adds r0, r1 - movs r1, 0 - movs r2, 0x30 - bl MemoryFill8 - ldr r0, [r6] - movs r2, 0xAF - lsls r2, 2 - adds r0, r2 - movs r1, 0 - movs r2, 0x58 - bl MemoryFill8 - ldr r0, [r6] - movs r3, 0xD1 - lsls r3, 2 - adds r0, r3 - movs r1, 0 - movs r2, 0x58 - bl MemoryFill8 - ldr r0, [r6] - movs r1, 0xE7 - lsls r1, 2 - adds r0, r1 - movs r1, 0 - movs r2, 0xB4 - bl MemoryFill8 - ldr r0, [r6] - movs r2, 0x8A - lsls r2, 3 - adds r0, r2 - movs r1, 0 - movs r2, 0xB4 - bl MemoryFill8 - ldr r2, [r6] - movs r3, 0xB1 - lsls r3, 2 - adds r0, r2, r3 - movs r1, 0 - strh r1, [r0] - adds r3, 0x88 - adds r0, r2, r3 - strh r1, [r0] - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080378FC: .4byte gUnknown_203B35C - thumb_func_end sub_8037810 - - thumb_func_start sub_8037900 -sub_8037900: - push {r4,lr} - sub sp, 0x10 - ldr r4, _08037928 - ldr r0, [r4] - movs r1, 0xAE - lsls r1, 1 - adds r0, r1 - movs r1, 0 - bl sub_8035CC0 - ldr r0, [r4] - ldr r0, [r0] - cmp r0, 0xA - bls _0803791E - b _08037A14 -_0803791E: - lsls r0, 2 - ldr r1, _0803792C - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08037928: .4byte gUnknown_203B35C -_0803792C: .4byte _08037930 - .align 2, 0 -_08037930: - .4byte _0803795C - .4byte _0803795C - .4byte _0803797C - .4byte _0803797C - .4byte _0803799C - .4byte _0803799C - .4byte _080379BC - .4byte _080379BC - .4byte _08037A14 - .4byte _080379F0 - .4byte _080379F0 -_0803795C: - ldr r0, _08037970 - ldr r1, [r0] - adds r0, r1, 0 - adds r0, 0x1C - movs r2, 0xAE - lsls r2, 1 - adds r1, r2 - ldr r3, _08037974 - ldr r2, _08037978 - b _080379CE - .align 2, 0 -_08037970: .4byte gUnknown_203B35C -_08037974: .4byte gUnknown_80E6554 -_08037978: .4byte gUnknown_80E656C -_0803797C: - ldr r0, _08037990 - ldr r1, [r0] - adds r0, r1, 0 - adds r0, 0x1C - movs r2, 0xAE - lsls r2, 1 - adds r1, r2 - ldr r3, _08037994 - ldr r2, _08037998 - b _080379CE - .align 2, 0 -_08037990: .4byte gUnknown_203B35C -_08037994: .4byte gUnknown_80E6554 -_08037998: .4byte gUnknown_80E65D8 -_0803799C: - ldr r0, _080379B0 - ldr r1, [r0] - adds r0, r1, 0 - adds r0, 0x1C - movs r2, 0xAE - lsls r2, 1 - adds r1, r2 - ldr r3, _080379B4 - ldr r2, _080379B8 - b _080379CE - .align 2, 0 -_080379B0: .4byte gUnknown_203B35C -_080379B4: .4byte gUnknown_80E6554 -_080379B8: .4byte gUnknown_80E661C -_080379BC: - ldr r0, _080379E4 - ldr r1, [r0] - adds r0, r1, 0 - adds r0, 0x1C - movs r2, 0xAE - lsls r2, 1 - adds r1, r2 - ldr r3, _080379E8 - ldr r2, _080379EC -_080379CE: - str r2, [sp] - movs r4, 0 - str r4, [sp, 0x4] - movs r2, 0x6 - str r2, [sp, 0x8] - str r4, [sp, 0xC] - movs r2, 0 - bl SetMenuItems - b _08037A14 - .align 2, 0 -_080379E4: .4byte gUnknown_203B35C -_080379E8: .4byte gUnknown_80E6554 -_080379EC: .4byte gUnknown_80E665C -_080379F0: - ldr r0, _08037A38 - ldr r1, [r0] - adds r0, r1, 0 - adds r0, 0x1C - movs r2, 0xAE - lsls r2, 1 - adds r1, r2 - ldr r3, _08037A3C - ldr r2, _08037A40 - str r2, [sp] - movs r4, 0 - str r4, [sp, 0x4] - movs r2, 0x6 - str r2, [sp, 0x8] - str r4, [sp, 0xC] - movs r2, 0 - bl SetMenuItems -_08037A14: - ldr r4, _08037A38 - ldr r0, [r4] - adds r0, 0x1C - movs r1, 0 - movs r2, 0x1 - bl sub_8035CF4 - bl sub_80373C4 - ldr r0, [r4] - adds r0, 0x1C - bl sub_80130A8 - add sp, 0x10 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08037A38: .4byte gUnknown_203B35C -_08037A3C: .4byte gUnknown_80E6554 -_08037A40: .4byte gUnknown_80E667C - thumb_func_end sub_8037900 - - thumb_func_start nullsub_202 -nullsub_202: - bx lr - thumb_func_end nullsub_202 - - thumb_func_start sub_8037A48 -sub_8037A48: - push {r4-r6,lr} - sub sp, 0x28 - movs r6, 0x1 - movs r0, 0 - mov r1, sp - movs r2, 0x14 - bl sub_800D670 - add r4, sp, 0x14 - movs r0, 0x1 - adds r1, r4, 0 - movs r2, 0x14 - bl sub_800D670 - ldr r1, _08037AAC - movs r3, 0x8 - adds r2, r1, 0 - adds r0, r2, 0x4 -_08037A6C: - str r3, [r0] - subs r0, 0x4 - cmp r0, r1 - bge _08037A6C - ldr r0, [sp, 0x10] - str r0, [r2] - ldr r0, [r4, 0x10] - str r0, [r2, 0x4] - ldr r5, _08037AB0 - mov r0, sp - adds r1, r5, 0 - bl strcmp - cmp r0, 0 - beq _08037A8C - movs r0, 0x1 -_08037A8C: - lsls r0, 24 - cmp r0, 0 - bne _08037AA6 - adds r0, r4, 0 - adds r1, r5, 0 - bl strcmp - cmp r0, 0 - beq _08037AA0 - movs r0, 0x1 -_08037AA0: - lsls r0, 24 - cmp r0, 0 - beq _08037AB4 -_08037AA6: - movs r0, 0 - b _08037B1E - .align 2, 0 -_08037AAC: .4byte gUnknown_202EC40 -_08037AB0: .4byte gUnknown_80E6E50 -_08037AB4: - ldr r1, [sp, 0x10] - cmp r1, 0 - bne _08037AC0 - ldr r0, [r4, 0x10] - cmp r0, 0x1 - beq _08037B1C -_08037AC0: - cmp r1, 0x1 - bne _08037ACA - ldr r0, [r4, 0x10] - cmp r0, 0 - beq _08037B1C -_08037ACA: - cmp r1, 0x2 - bne _08037AD4 - ldr r0, [r4, 0x10] - cmp r0, 0x3 - beq _08037B1C -_08037AD4: - cmp r1, 0x3 - bne _08037ADE - ldr r0, [r4, 0x10] - cmp r0, 0x2 - beq _08037B1C -_08037ADE: - cmp r1, 0x9 - bne _08037AE8 - ldr r0, [r4, 0x10] - cmp r0, 0xA - beq _08037B1C -_08037AE8: - cmp r1, 0xA - bne _08037AF2 - ldr r0, [r4, 0x10] - cmp r0, 0x9 - beq _08037B1C -_08037AF2: - cmp r1, 0x4 - bne _08037AFC - ldr r0, [r4, 0x10] - cmp r0, 0x5 - beq _08037B1C -_08037AFC: - cmp r1, 0x5 - bne _08037B06 - ldr r0, [r4, 0x10] - cmp r0, 0x4 - beq _08037B1C -_08037B06: - cmp r1, 0x6 - bne _08037B10 - ldr r0, [r4, 0x10] - cmp r0, 0x7 - beq _08037B1C -_08037B10: - cmp r1, 0x7 - bne _08037B1A - ldr r0, [r4, 0x10] - cmp r0, 0x6 - beq _08037B1C -_08037B1A: - movs r6, 0 -_08037B1C: - adds r0, r6, 0 -_08037B1E: - add sp, 0x28 - pop {r4-r6} - pop {r1} - bx r1 - thumb_func_end sub_8037A48 - - thumb_func_start sub_8037B28 -sub_8037B28: - push {r4,r5,lr} - sub sp, 0x14 - adds r4, r0, 0 - movs r5, 0 - bl sub_800D414 - ldr r0, _08037B58 - str r5, [r0] - ldr r5, _08037B5C - mov r0, sp - movs r1, 0 - movs r2, 0x14 - bl MemoryFill8 - mov r0, sp - adds r1, r5, 0 - bl strcpy - str r4, [sp, 0x10] - mov r0, sp - movs r1, 0x14 - bl sub_800D59C - b _08037B7A - .align 2, 0 -_08037B58: .4byte gUnknown_202EC38 -_08037B5C: .4byte gUnknown_80E6E50 -_08037B60: - cmp r5, 0x3 - beq _08037BCC - cmp r5, 0x4 - beq _08037BD8 - cmp r5, 0x5 - beq _08037BF0 - ldr r2, _08037BC0 - ldr r1, [r2] - ldr r0, _08037BC4 - cmp r1, r0 - bgt _08037BE4 - adds r0, r1, 0x1 - str r0, [r2] -_08037B7A: - movs r4, 0 -_08037B7C: - bl sub_80373C4 - bl sub_8012AE8 - cmp r0, 0x3 - bgt _08037B8C - cmp r0, 0x2 - bge _08037BF0 -_08037B8C: - adds r4, 0x1 - cmp r4, 0 - ble _08037B7C - bl sub_800D33C - adds r5, r0, 0 - bl sub_800D570 - cmp r5, 0x2 - bne _08037B60 - bl sub_800D600 - lsls r0, 24 - cmp r0, 0 - beq _08037BFC - bl sub_8037A48 - lsls r0, 24 - cmp r0, 0 - bne _08037BC8 - movs r4, 0x4 - bl sub_800D520 - bl sub_800D510 - b _08037C06 - .align 2, 0 -_08037BC0: .4byte gUnknown_202EC38 -_08037BC4: .4byte 0x00000707 -_08037BC8: - movs r4, 0 - b _08037C06 -_08037BCC: - bl sub_800D520 - bl sub_800D510 - movs r0, 0x2 - b _08037C08 -_08037BD8: - bl sub_800D520 - bl sub_800D510 - movs r0, 0x3 - b _08037C08 -_08037BE4: - bl sub_800D520 - bl sub_800D510 - movs r0, 0xF - b _08037C08 -_08037BF0: - bl sub_800D520 - bl sub_800D510 - movs r0, 0x1 - b _08037C08 -_08037BFC: - movs r4, 0x5 - bl sub_800D520 - bl sub_800D510 -_08037C06: - adds r0, r4, 0 -_08037C08: - add sp, 0x14 - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_8037B28 - - thumb_func_start sub_8037C10 -sub_8037C10: - push {lr} - lsls r0, 24 - cmp r0, 0 - beq _08037C24 - bl sub_800D588 - lsls r0, 24 - cmp r0, 0 - bne _08037C38 - b _08037C2E -_08037C24: - bl sub_800D588 - lsls r0, 24 - cmp r0, 0 - beq _08037C38 -_08037C2E: - ldr r0, _08037C34 - ldr r0, [r0, 0x4] - b _08037C3C - .align 2, 0 -_08037C34: .4byte gUnknown_202EC40 -_08037C38: - ldr r0, _08037C40 - ldr r0, [r0] -_08037C3C: - pop {r1} - bx r1 - .align 2, 0 -_08037C40: .4byte gUnknown_202EC40 - thumb_func_end sub_8037C10 - - thumb_func_start sub_8037C44 -sub_8037C44: - push {r4-r6,lr} - adds r6, r0, 0 - adds r5, r1, 0 - movs r4, 0 -_08037C4C: - adds r0, r4, 0 - bl sub_800D68C - adds r4, 0x1 - cmp r4, 0x1 - ble _08037C4C - cmp r6, 0xA - bhi _08037CBE - lsls r0, r6, 2 - ldr r1, _08037C68 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08037C68: .4byte _08037C6C - .align 2, 0 -_08037C6C: - .4byte _08037C98 - .4byte _08037C98 - .4byte _08037CA2 - .4byte _08037CA2 - .4byte _08037CAC - .4byte _08037CAC - .4byte _08037CA2 - .4byte _08037CA2 - .4byte _08037CBE - .4byte _08037CB6 - .4byte _08037CB6 -_08037C98: - adds r0, r5, 0 - movs r1, 0x8 - bl sub_800D59C - b _08037CBE -_08037CA2: - adds r0, r5, 0 - movs r1, 0x30 - bl sub_800D59C - b _08037CBE -_08037CAC: - adds r0, r5, 0 - movs r1, 0x88 - bl sub_800D59C - b _08037CBE -_08037CB6: - adds r0, r5, 0 - movs r1, 0xB4 - bl sub_800D59C -_08037CBE: - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end sub_8037C44 - - thumb_func_start sub_8037CC4 -sub_8037CC4: - push {r4,lr} - adds r3, r1, 0 - adds r4, r2, 0 - cmp r0, 0xA - bhi _08037D5E - lsls r0, 2 - ldr r1, _08037CD8 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08037CD8: .4byte _08037CDC - .align 2, 0 -_08037CDC: - .4byte _08037D08 - .4byte _08037D08 - .4byte _08037D1E - .4byte _08037D1E - .4byte _08037D34 - .4byte _08037D34 - .4byte _08037D1E - .4byte _08037D1E - .4byte _08037D5E - .4byte _08037D4A - .4byte _08037D4A -_08037D08: - movs r0, 0 - adds r1, r3, 0 - movs r2, 0x8 - bl sub_800D670 - movs r0, 0x1 - adds r1, r4, 0 - movs r2, 0x8 - bl sub_800D670 - b _08037D5E -_08037D1E: - movs r0, 0 - adds r1, r3, 0 - movs r2, 0x30 - bl sub_800D670 - movs r0, 0x1 - adds r1, r4, 0 - movs r2, 0x30 - bl sub_800D670 - b _08037D5E -_08037D34: - movs r0, 0 - adds r1, r3, 0 - movs r2, 0x88 - bl sub_800D670 - movs r0, 0x1 - adds r1, r4, 0 - movs r2, 0x88 - bl sub_800D670 - b _08037D5E -_08037D4A: - movs r0, 0 - adds r1, r3, 0 - movs r2, 0xB4 - bl sub_800D670 - movs r0, 0x1 - adds r1, r4, 0 - movs r2, 0xB4 - bl sub_800D670 -_08037D5E: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_8037CC4 - - thumb_func_start sub_8037D64 -sub_8037D64: - push {r4-r7,lr} - adds r5, r0, 0 - adds r6, r1, 0 - adds r7, r2, 0 - movs r4, 0 - ldr r0, _08037D80 - str r4, [r0] - bl sub_800D494 - adds r0, r5, 0 - adds r1, r6, 0 - bl sub_8037C44 - b _08037D96 - .align 2, 0 -_08037D80: .4byte gUnknown_202EC48 -_08037D84: - subs r0, r4, 0x3 - cmp r0, 0x2 - bls _08037DBC - ldr r1, _08037DB8 - ldr r0, [r1] - cmp r0, 0x63 - bgt _08037DC8 - adds r0, 0x1 - str r0, [r1] -_08037D96: - bl sub_80373C4 - bl sub_800D33C - adds r4, r0, 0 - bl sub_800D570 - cmp r4, 0x2 - bne _08037D84 - bl sub_800D600 - lsls r0, 24 - cmp r0, 0 - beq _08037DD4 - movs r4, 0 - b _08037DDE - .align 2, 0 -_08037DB8: .4byte gUnknown_202EC48 -_08037DBC: - bl sub_800D520 - bl sub_800D510 - movs r0, 0x1 - b _08037DEA -_08037DC8: - bl sub_800D520 - bl sub_800D510 - movs r0, 0xF - b _08037DEA -_08037DD4: - bl sub_800D520 - bl sub_800D510 - movs r4, 0x5 -_08037DDE: - adds r0, r5, 0 - adds r1, r6, 0 - adds r2, r7, 0 - bl sub_8037CC4 - adds r0, r4, 0 -_08037DEA: - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end sub_8037D64 - - thumb_func_start sub_8037DF0 -sub_8037DF0: - push {r4,lr} - sub sp, 0x8 - movs r4, 0 - movs r0, 0 - mov r1, sp - movs r2, 0x4 - bl sub_800D670 - add r1, sp, 0x4 - movs r0, 0x1 - movs r2, 0x4 - bl sub_800D670 - ldr r0, [sp] - cmp r0, 0 - bne _08037E16 - ldr r0, [sp, 0x4] - cmp r0, 0 - beq _08037E2C -_08037E16: - bl sub_800D588 - lsls r0, 24 - cmp r0, 0 - bne _08037E24 - ldr r4, [sp, 0x4] - b _08037E26 -_08037E24: - ldr r4, [sp] -_08037E26: - cmp r4, 0 - bne _08037E2C - movs r4, 0xE -_08037E2C: - adds r0, r4, 0 - add sp, 0x8 - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_8037DF0 - - thumb_func_start sub_8037E38 -sub_8037E38: - push {r4-r6,lr} - adds r6, r0, 0 - adds r5, r1, 0 - bl sub_800D588 - lsls r0, 24 - adds r4, r6, 0 - cmp r0, 0 - bne _08037E4C - adds r4, r5, 0 -_08037E4C: - bl sub_800D588 - lsls r0, 24 - adds r3, r5, 0 - cmp r0, 0 - bne _08037E5A - adds r3, r6, 0 -_08037E5A: - ldrb r0, [r4] - ldrb r1, [r3] - cmp r0, r1 - bne _08037E70 - ldr r0, _08037E6C - ldr r1, [r0] - ldrb r0, [r4] - b _08037E76 - .align 2, 0 -_08037E6C: .4byte gUnknown_203B460 -_08037E70: - ldr r0, _08037E8C - ldr r1, [r0] - ldrb r0, [r3] -_08037E76: - lsls r0, 1 - adds r1, 0x50 - adds r1, r0 - ldrh r2, [r1] - ldr r0, [r3, 0x4] - adds r2, r0 - strh r2, [r1] - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_08037E8C: .4byte gUnknown_203B460 - thumb_func_end sub_8037E38 - - thumb_func_start sub_8037E90 -sub_8037E90: - push {r4,r5,lr} - adds r5, r0, 0 - adds r4, r1, 0 - bl sub_800D588 - lsls r0, 24 - cmp r0, 0 - bne _08037EA2 - adds r4, r5, 0 -_08037EA2: - movs r0, 0x2 - strb r0, [r4] - adds r0, r4, 0 - bl sub_80951BC - ldr r0, [r4, 0x10] - bl sub_8095274 - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_8037E90 - - thumb_func_start nullsub_53 -nullsub_53: - bx lr - thumb_func_end nullsub_53 - - thumb_func_start sub_8037EBC -sub_8037EBC: - push {r4-r6,lr} - adds r6, r0, 0 - adds r4, r1, 0 - bl sub_800D588 - lsls r0, 24 - adds r5, r4, 0 - cmp r0, 0 - bne _08037ED0 - adds r5, r6, 0 -_08037ED0: - ldr r1, [r5, 0x10] - movs r0, 0x1 - bl sub_809539C - lsls r0, 24 - lsrs r0, 24 - bl sub_8095228 - adds r4, r0, 0 - adds r1, r4, 0 - adds r0, r5, 0 - ldm r0!, {r2,r3,r6} - stm r1!, {r2,r3,r6} - ldm r0!, {r2,r3,r6} - stm r1!, {r2,r3,r6} - ldm r0!, {r2,r3,r6} - stm r1!, {r2,r3,r6} - ldm r0!, {r2,r3,r6} - stm r1!, {r2,r3,r6} - movs r0, 0x5 - strb r0, [r4] - adds r0, r4, 0 - bl sub_80951FC - movs r0, 0x7 - strb r0, [r4] - movs r0, 0x38 - ldrsh r6, [r5, r0] - cmp r6, 0 - beq _08037F30 - ldr r4, _08037F2C - ldr r0, [r4] - ldr r1, [r5, 0x10] - stm r0!, {r1} - adds r1, r5, 0 - adds r1, 0x30 - movs r2, 0x58 - bl memcpy - ldr r1, [r4] - movs r0, 0x42 - strb r0, [r1, 0x8] - ldr r1, [r4] - movs r0, 0x1 - strb r0, [r1, 0x9] - b _08037F40 - .align 2, 0 -_08037F2C: .4byte gUnknown_203B484 -_08037F30: - ldr r4, _08037F48 - ldr r0, [r4] - movs r1, 0 - movs r2, 0x5C - bl MemoryFill8 - ldr r0, [r4] - strh r6, [r0, 0xC] -_08037F40: - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_08037F48: .4byte gUnknown_203B484 - thumb_func_end sub_8037EBC - - thumb_func_start sub_8037F4C -sub_8037F4C: - push {r4,r5,lr} - adds r5, r0, 0 - adds r4, r1, 0 - bl sub_800D588 - lsls r0, 24 - cmp r0, 0 - bne _08037F5E - adds r4, r5, 0 -_08037F5E: - ldr r1, [r4, 0x10] - movs r0, 0x4 - bl sub_809539C - lsls r0, 24 - lsrs r0, 24 - bl sub_8095228 - adds r2, r0, 0 - adds r1, r4, 0 - ldm r1!, {r3-r5} - stm r2!, {r3-r5} - ldm r1!, {r3-r5} - stm r2!, {r3-r5} - ldm r1!, {r3-r5} - stm r2!, {r3-r5} - ldm r1!, {r3-r5} - stm r2!, {r3-r5} - movs r1, 0x6 - strb r1, [r0] - bl sub_8035D4C - cmp r0, 0 - beq _08037F96 - adds r1, r0, 0 - adds r1, 0x3A - movs r0, 0x1 - strb r0, [r1] -_08037F96: - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_8037F4C - - thumb_func_start sub_8037F9C -sub_8037F9C: - push {lr} - adds r3, r1, 0 - cmp r0, 0xA - bhi _08038010 - lsls r0, 2 - ldr r1, _08037FB0 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08037FB0: .4byte _08037FB4 - .align 2, 0 -_08037FB4: - .4byte _08037FE0 - .4byte _08037FE0 - .4byte _08038010 - .4byte _08037FF4 - .4byte _08038010 - .4byte _08037FFE - .4byte _08038010 - .4byte _08037FEA - .4byte _08038010 - .4byte _08038010 - .4byte _08038008 -_08037FE0: - adds r0, r3, 0 - adds r1, r2, 0 - bl sub_8037E38 - b _08038010 -_08037FEA: - adds r0, r3, 0 - adds r1, r2, 0 - bl sub_8037F4C - b _08038010 -_08037FF4: - adds r0, r3, 0 - adds r1, r2, 0 - bl sub_8037E90 - b _08038010 -_08037FFE: - adds r0, r3, 0 - adds r1, r2, 0 - bl sub_8037EBC - b _08038010 -_08038008: - adds r0, r3, 0 - adds r1, r2, 0 - bl nullsub_53 -_08038010: - pop {r0} - bx r0 - thumb_func_end sub_8037F9C - - thumb_func_start sub_8038014 -sub_8038014: - push {r4-r6,lr} - adds r6, r0, 0 - adds r5, r1, 0 - bl sub_800D588 - lsls r0, 24 - adds r4, r6, 0 - cmp r0, 0 - bne _08038028 - adds r4, r5, 0 -_08038028: - bl sub_800D588 - lsls r0, 24 - adds r3, r5, 0 - cmp r0, 0 - bne _08038036 - adds r3, r6, 0 -_08038036: - ldrb r0, [r4] - ldrb r1, [r3] - cmp r0, r1 - bne _0803804C - ldr r0, _08038048 - ldr r1, [r0] - ldrb r0, [r4] - b _08038052 - .align 2, 0 -_08038048: .4byte gUnknown_203B460 -_0803804C: - ldr r0, _08038070 - ldr r1, [r0] - ldrb r0, [r3] -_08038052: - lsls r0, 1 - adds r1, 0x50 - adds r1, r0 - ldrh r2, [r1] - ldr r0, [r3, 0x4] - adds r2, r0 - ldr r0, _08038074 - movs r1, 0 - cmp r2, r0 - ble _08038068 - movs r1, 0x6 -_08038068: - adds r0, r1, 0 - pop {r4-r6} - pop {r1} - bx r1 - .align 2, 0 -_08038070: .4byte gUnknown_203B460 -_08038074: .4byte 0x000003e7 - thumb_func_end sub_8038014 - - thumb_func_start sub_8038078 -sub_8038078: - push {r4-r6,lr} - adds r5, r0, 0 - adds r4, r1, 0 - bl sub_800D588 - lsls r0, 24 - cmp r0, 0 - bne _0803808A - adds r4, r5, 0 -_0803808A: - ldr r6, [r4, 0x10] - ldr r0, _08038098 - ldr r0, [r0] - cmp r0, 0 - beq _0803809C - ldr r5, [r0, 0x50] - b _080380A2 - .align 2, 0 -_08038098: .4byte gUnknown_203B184 -_0803809C: - bl sub_8011C34 - adds r5, r0, 0 -_080380A2: - movs r0, 0x4 - adds r1, r6, 0 - bl sub_80952F0 - lsls r0, 24 - cmp r0, 0 - beq _080380BA - ldr r0, [r4, 0x28] - cmp r0, r5 - bne _080380BA - movs r0, 0 - b _080380BC -_080380BA: - movs r0, 0xB -_080380BC: - pop {r4-r6} - pop {r1} - bx r1 - thumb_func_end sub_8038078 - - thumb_func_start sub_80380C4 -sub_80380C4: - push {r4-r6,lr} - adds r6, r0, 0 - adds r4, r1, 0 - bl sub_800D588 - lsls r0, 24 - adds r5, r4, 0 - cmp r0, 0 - bne _080380D8 - adds r5, r6, 0 -_080380D8: - ldr r4, [r5, 0x10] - movs r0, 0x2 - adds r1, r4, 0 - bl sub_80952F0 - lsls r0, 24 - cmp r0, 0 - bne _08038110 - movs r0, 0x4 - adds r1, r4, 0 - bl sub_80952F0 - lsls r0, 24 - cmp r0, 0 - bne _08038110 - movs r0, 0x6 - adds r1, r4, 0 - bl sub_80952F0 - lsls r0, 24 - cmp r0, 0 - bne _08038110 - ldr r0, [r5, 0x10] - bl sub_8095298 - lsls r0, 24 - cmp r0, 0 - beq _08038114 -_08038110: - movs r0, 0x7 - b _08038126 -_08038114: - bl sub_8095190 - movs r1, 0x1 - negs r1, r1 - cmp r0, r1 - beq _08038124 - movs r0, 0 - b _08038126 -_08038124: - movs r0, 0xD -_08038126: - pop {r4-r6} - pop {r1} - bx r1 - thumb_func_end sub_80380C4 - - thumb_func_start sub_803812C -sub_803812C: - push {r4,r5,lr} - adds r5, r0, 0 - adds r4, r1, 0 - bl sub_800D588 - lsls r0, 24 - cmp r0, 0 - bne _0803813E - adds r4, r5, 0 -_0803813E: - ldr r1, [r4, 0x10] - movs r0, 0x1 - bl sub_80952F0 - lsls r0, 24 - cmp r0, 0 - bne _08038150 - movs r0, 0x9 - b _08038152 -_08038150: - movs r0, 0 -_08038152: - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_803812C - - thumb_func_start sub_8038158 -sub_8038158: - movs r0, 0 - bx lr - thumb_func_end sub_8038158 - - thumb_func_start sub_803815C -sub_803815C: - push {r4,lr} - adds r3, r1, 0 - movs r4, 0 - cmp r0, 0xA - bhi _080381D2 - lsls r0, 2 - ldr r1, _08038170 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08038170: .4byte _08038174 - .align 2, 0 -_08038174: - .4byte _080381A0 - .4byte _080381A0 - .4byte _080381D2 - .4byte _080381B4 - .4byte _080381D2 - .4byte _080381BE - .4byte _080381D2 - .4byte _080381AA - .4byte _080381D2 - .4byte _080381D2 - .4byte _080381C8 -_080381A0: - adds r0, r3, 0 - adds r1, r2, 0 - bl sub_8038014 - b _080381D0 -_080381AA: - adds r0, r3, 0 - adds r1, r2, 0 - bl sub_8038078 - b _080381D0 -_080381B4: - adds r0, r3, 0 - adds r1, r2, 0 - bl sub_80380C4 - b _080381D0 -_080381BE: - adds r0, r3, 0 - adds r1, r2, 0 - bl sub_803812C - b _080381D0 -_080381C8: - adds r0, r3, 0 - adds r1, r2, 0 - bl sub_8038158 -_080381D0: - adds r4, r0, 0 -_080381D2: - adds r0, r4, 0 - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_803815C - - thumb_func_start sub_80381DC -sub_80381DC: - push {lr} - bl sub_8037F9C - pop {r0} - bx r0 - thumb_func_end sub_80381DC - - thumb_func_start sub_80381E8 -sub_80381E8: - push {lr} - bl sub_803815C - pop {r1} - bx r1 - thumb_func_end sub_80381E8 - - thumb_func_start sub_80381F4 -sub_80381F4: - push {r4-r7,lr} - sub sp, 0x4 - adds r5, r0, 0 - adds r6, r1, 0 - adds r7, r2, 0 - movs r4, 0 - bl sub_803815C - str r0, [sp] - ldr r0, _08038218 - str r4, [r0] - bl sub_800D494 - mov r0, sp - movs r1, 0x4 - bl sub_800D59C - b _0803822E - .align 2, 0 -_08038218: .4byte gUnknown_202EC4C -_0803821C: - subs r0, r4, 0x3 - cmp r0, 0x2 - bls _08038272 - ldr r1, _08038250 - ldr r0, [r1] - cmp r0, 0x63 - bgt _0803827E - adds r0, 0x1 - str r0, [r1] -_0803822E: - bl sub_80373C4 - bl sub_800D33C - adds r4, r0, 0 - bl sub_800D570 - cmp r4, 0x2 - bne _0803821C - bl sub_800D600 - lsls r0, 24 - cmp r0, 0 - beq _08038254 - bl sub_8037DF0 - b _0803825E - .align 2, 0 -_08038250: .4byte gUnknown_202EC4C -_08038254: - bl sub_800D520 - bl sub_800D510 - movs r0, 0x5 -_0803825E: - str r0, [sp] - ldr r0, [sp] - cmp r0, 0 - bne _0803828A - adds r0, r5, 0 - adds r1, r6, 0 - adds r2, r7, 0 - bl sub_8037F9C - b _08038292 -_08038272: - bl sub_800D520 - bl sub_800D510 - movs r0, 0x1 - b _08038298 -_0803827E: - bl sub_800D520 - bl sub_800D510 - movs r0, 0xF - b _08038298 -_0803828A: - bl sub_800D520 - bl sub_800D510 -_08038292: - bl sub_800D520 - ldr r0, [sp] -_08038298: - add sp, 0x4 - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end sub_80381F4 - - thumb_func_start CreateAdventureLogMenu -CreateAdventureLogMenu: - push {lr} - movs r0, 0 - bl CreateAdventureLogScreen - pop {r0} - bx r0 - thumb_func_end CreateAdventureLogMenu - - thumb_func_start CleanAdventureLogMenu -CleanAdventureLogMenu: - push {lr} - bl ResetUnusedInputStruct - movs r0, 0 - movs r1, 0x1 - movs r2, 0x1 - bl sub_800641C - pop {r0} - bx r0 - thumb_func_end CleanAdventureLogMenu - - thumb_func_start UpdateAdventureLogMenu -UpdateAdventureLogMenu: - push {r4,lr} - ldr r4, _080382E0 - movs r0, 0x1 - bl HandleAdventureLogInput - cmp r0, 0x1 - bls _080382D8 - cmp r0, 0x3 - bhi _080382D8 - bl sub_803203C - movs r4, 0x1 -_080382D8: - adds r0, r4, 0 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_080382E0: .4byte 0x0000ffdc - thumb_func_end UpdateAdventureLogMenu - - thumb_func_start sub_80382E4 -sub_80382E4: - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - sub sp, 0x10 - mov r8, r0 - ldr r5, _08038398 - ldr r0, [r5] - cmp r0, 0 - bne _0803830E - movs r4, 0xDA - lsls r4, 1 - adds r0, r4, 0 - movs r1, 0x8 - bl MemoryAlloc - str r0, [r5] - movs r1, 0 - adds r2, r4, 0 - bl MemoryFill8 -_0803830E: - mov r12, r5 - movs r0, 0xA4 - lsls r0, 1 - mov r9, r0 - ldr r4, _0803839C - movs r3, 0 - movs r2, 0x3 -_0803831C: - mov r5, r12 - ldr r1, [r5] - adds r1, r3 - add r1, r9 - adds r0, r4, 0 - ldm r0!, {r5-r7} - stm r1!, {r5-r7} - ldm r0!, {r5-r7} - stm r1!, {r5-r7} - adds r3, 0x18 - subs r2, 0x1 - cmp r2, 0 - bge _0803831C - bl ResetUnusedInputStruct - ldr r5, _08038398 - ldr r0, [r5] - movs r6, 0xA4 - lsls r6, 1 - adds r0, r6 - movs r1, 0x1 - movs r2, 0x1 - bl sub_800641C - mov r7, r8 - cmp r7, 0x25 - bne _08038370 - ldr r1, [r5] - adds r0, r1, 0 - adds r0, 0x8 - adds r1, r6 - ldr r3, _080383A0 - ldr r2, _080383A4 - str r2, [sp] - movs r4, 0 - str r4, [sp, 0x4] - movs r2, 0x4 - str r2, [sp, 0x8] - str r4, [sp, 0xC] - movs r2, 0 - bl SetMenuItems -_08038370: - ldr r0, [r5] - adds r0, 0x8 - movs r1, 0 - movs r2, 0x1 - bl sub_8035CF4 - ldr r1, [r5] - mov r0, r8 - str r0, [r1] - movs r0, 0 - str r0, [r1, 0x4] - bl sub_8038440 - add sp, 0x10 - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08038398: .4byte gUnknown_203B360 -_0803839C: .4byte gUnknown_80E6E7C -_080383A0: .4byte gUnknown_80E6E94 -_080383A4: .4byte gUnknown_80E6EAC - thumb_func_end sub_80382E4 - - thumb_func_start sub_80383A8 -sub_80383A8: - push {r4,lr} - bl ResetUnusedInputStruct - movs r0, 0 - movs r1, 0x1 - movs r2, 0x1 - bl sub_800641C - ldr r4, _080383D0 - ldr r0, [r4] - cmp r0, 0 - beq _080383C8 - bl MemoryFree - movs r0, 0 - str r0, [r4] -_080383C8: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080383D0: .4byte gUnknown_203B360 - thumb_func_end sub_80383A8 - - thumb_func_start sub_80383D4 -sub_80383D4: - push {r4-r6,lr} - sub sp, 0x4 - movs r0, 0x2 - str r0, [sp] - ldr r6, _08038410 - ldr r4, _08038414 - ldr r0, [r4] - ldr r5, [r0, 0x4] - cmp r5, 0 - bne _08038434 - adds r0, 0x8 - bl sub_80130A8 - lsls r0, 24 - cmp r0, 0 - bne _080383FE - ldr r0, [r4] - adds r0, 0x8 - mov r1, sp - bl sub_8013114 -_080383FE: - ldr r0, [sp] - cmp r0, 0x2 - beq _0803842C - cmp r0, 0x2 - bhi _08038418 - cmp r0, 0x1 - beq _0803841C - b _08038430 - .align 2, 0 -_08038410: .4byte 0x0000ffdc -_08038414: .4byte gUnknown_203B360 -_08038418: - cmp r0, 0x3 - bne _08038430 -_0803841C: - ldr r0, _08038428 - ldr r1, [r0] - movs r0, 0 - str r0, [r1, 0x4] - movs r6, 0x1 - b _08038430 - .align 2, 0 -_08038428: .4byte gUnknown_203B360 -_0803842C: - ldr r0, [r4] - str r5, [r0, 0x4] -_08038430: - bl sub_80384D0 -_08038434: - adds r0, r6, 0 - add sp, 0x4 - pop {r4-r6} - pop {r1} - bx r1 - thumb_func_end sub_80383D4 - - thumb_func_start sub_8038440 -sub_8038440: - push {r4,r5,lr} - movs r5, 0 - ldr r0, _080384B0 - ldr r0, [r0] - mov r12, r0 - movs r3, 0xD4 - lsls r3, 1 - add r3, r12 - ldrh r1, [r3] - ldr r0, _080384B4 - ands r0, r1 - ldr r1, _080384B8 - ands r0, r1 - ldr r4, _080384BC - ands r0, r4 - ldr r1, _080384C0 - ands r0, r1 - ldr r1, _080384C4 - ands r0, r1 - movs r2, 0x80 - lsls r2, 7 - ldr r1, _080384C8 - ands r0, r1 - orrs r0, r2 - strh r0, [r3] - movs r2, 0xFC - lsls r2, 2 - ldrh r1, [r3, 0x4] - movs r0, 0xFC - lsls r0, 8 - ands r0, r1 - orrs r0, r2 - ands r0, r4 - movs r2, 0xF - movs r4, 0xF0 - lsls r4, 8 - ldr r1, _080384CC - ands r0, r1 - orrs r0, r4 - strh r0, [r3, 0x4] - movs r0, 0x70 - strh r0, [r3, 0x2] - movs r1, 0xE0 - lsls r1, 3 - ldrh r0, [r3, 0x6] - ands r2, r0 - orrs r2, r1 - strh r2, [r3, 0x6] - movs r0, 0xD8 - lsls r0, 1 - add r0, r12 - str r5, [r0] - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080384B0: .4byte gUnknown_203B360 -_080384B4: .4byte 0x0000feff -_080384B8: .4byte 0x0000fdff -_080384BC: .4byte 0x0000f3ff -_080384C0: .4byte 0x0000efff -_080384C4: .4byte 0x0000dfff -_080384C8: .4byte 0x00003fff -_080384CC: .4byte 0x00000fff - thumb_func_end sub_8038440 - - thumb_func_start sub_80384D0 -sub_80384D0: - push {r4,r5,lr} - ldr r5, _08038508 - ldr r2, [r5] - movs r4, 0xD8 - lsls r4, 1 - adds r0, r2, r4 - ldr r0, [r0] - movs r1, 0x8 - ands r0, r1 - cmp r0, 0 - beq _080384F6 - movs r1, 0xD4 - lsls r1, 1 - adds r0, r2, r1 - subs r1, 0xA8 - movs r2, 0 - movs r3, 0 - bl AddSprite -_080384F6: - ldr r1, [r5] - adds r1, r4 - ldr r0, [r1] - adds r0, 0x1 - str r0, [r1] - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_08038508: .4byte gUnknown_203B360 - thumb_func_end sub_80384D0 - - thumb_func_start sub_803850C -sub_803850C: - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - sub sp, 0x10 - mov r8, r0 - ldr r5, _0803859C - ldr r0, [r5] - cmp r0, 0 - bne _08038536 - movs r4, 0xDA - lsls r4, 1 - adds r0, r4, 0 - movs r1, 0x8 - bl MemoryAlloc - str r0, [r5] - movs r1, 0 - adds r2, r4, 0 - bl MemoryFill8 -_08038536: - mov r12, r5 - movs r0, 0xA4 - lsls r0, 1 - mov r9, r0 - ldr r4, _080385A0 - movs r3, 0 - movs r2, 0x3 -_08038544: - mov r5, r12 - ldr r1, [r5] - adds r1, r3 - add r1, r9 - adds r0, r4, 0 - ldm r0!, {r5-r7} - stm r1!, {r5-r7} - ldm r0!, {r5-r7} - stm r1!, {r5-r7} - adds r3, 0x18 - subs r2, 0x1 - cmp r2, 0 - bge _08038544 - bl ResetUnusedInputStruct - ldr r4, _0803859C - ldr r0, [r4] - movs r6, 0xA4 - lsls r6, 1 - adds r0, r6 - movs r1, 0x1 - movs r2, 0x1 - bl sub_800641C - mov r7, r8 - cmp r7, 0x2E - bne _080385AC - ldr r1, [r4] - adds r0, r1, 0 - adds r0, 0x8 - adds r1, r6 - ldr r3, _080385A4 - ldr r2, _080385A8 - str r2, [sp] - movs r4, 0 - str r4, [sp, 0x4] - movs r2, 0x6 - str r2, [sp, 0x8] - str r4, [sp, 0xC] - movs r2, 0 - bl SetMenuItems - b _080385CE - .align 2, 0 -_0803859C: .4byte gUnknown_203B364 -_080385A0: .4byte gUnknown_80E6F20 -_080385A4: .4byte gUnknown_80E6F38 -_080385A8: .4byte gUnknown_80E7090 -_080385AC: - ldr r1, [r4] - adds r0, r1, 0 - adds r0, 0x8 - movs r2, 0xA4 - lsls r2, 1 - adds r1, r2 - ldr r3, _080385F8 - ldr r2, _080385FC - str r2, [sp] - movs r4, 0 - str r4, [sp, 0x4] - movs r2, 0x6 - str r2, [sp, 0x8] - str r4, [sp, 0xC] - movs r2, 0 - bl SetMenuItems -_080385CE: - ldr r4, _08038600 - ldr r0, [r4] - adds r0, 0x8 - movs r1, 0 - movs r2, 0x1 - bl sub_8035CF4 - ldr r1, [r4] - movs r0, 0 - str r0, [r1, 0x4] - mov r5, r8 - str r5, [r1] - bl sub_8038830 - add sp, 0x10 - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080385F8: .4byte gUnknown_80E6F38 -_080385FC: .4byte gUnknown_80E6F50 -_08038600: .4byte gUnknown_203B364 - thumb_func_end sub_803850C - - thumb_func_start sub_8038604 -sub_8038604: - push {r4,lr} - bl ResetUnusedInputStruct - movs r0, 0 - movs r1, 0x1 - movs r2, 0x1 - bl sub_800641C - ldr r4, _0803862C - ldr r0, [r4] - cmp r0, 0 - beq _08038624 - bl MemoryFree - movs r0, 0 - str r0, [r4] -_08038624: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0803862C: .4byte gUnknown_203B364 - thumb_func_end sub_8038604 - - thumb_func_start sub_8038630 -sub_8038630: - push {r4-r6,lr} - sub sp, 0x18 - ldr r5, _080386A8 - movs r0, 0x3 - str r0, [sp, 0x14] - ldr r6, _080386AC - ldr r0, [r6] - ldr r4, [r0, 0x4] - cmp r4, 0x1 - bne _08038646 - b _08038798 -_08038646: - cmp r4, 0x1 - bcc _0803864C - b _08038824 -_0803864C: - adds r0, 0x8 - bl sub_8012FD8 - movs r5, 0 - str r5, [sp, 0x10] - bl sub_80140F8 - bl sub_8011C1C - adds r1, r0, 0 - add r0, sp, 0x10 - bl sub_801203C - adds r4, r0, 0 - bl sub_8014114 - cmp r4, 0 - beq _080386B8 - cmp r4, 0x1 - beq _08038738 - ldr r0, [r6] - movs r4, 0xA4 - lsls r4, 1 - adds r0, r4 - movs r1, 0 - bl sub_8035CC0 - ldr r1, [r6] - ldr r0, [r1] - cmp r0, 0x2E - bne _08038750 - adds r0, r1, 0 - adds r0, 0x8 - adds r1, r4 - ldr r3, _080386B0 - ldr r2, _080386B4 - str r2, [sp] - str r5, [sp, 0x4] - movs r2, 0x6 - str r2, [sp, 0x8] - str r5, [sp, 0xC] - movs r2, 0 - bl SetMenuItems - b _0803876E - .align 2, 0 -_080386A8: .4byte 0x0000ffdc -_080386AC: .4byte gUnknown_203B364 -_080386B0: .4byte gUnknown_80E6F38 -_080386B4: .4byte gUnknown_80E7114 -_080386B8: - ldr r0, [r6] - movs r1, 0xA4 - lsls r1, 1 - adds r0, r1 - movs r1, 0 - bl sub_8035CC0 - ldr r1, [r6] - ldr r0, [r1] - cmp r0, 0x2E - bne _080386F8 - adds r0, r1, 0 - adds r0, 0x8 - movs r2, 0xA4 - lsls r2, 1 - adds r1, r2 - ldr r3, _080386F0 - ldr r2, _080386F4 - str r2, [sp] - str r5, [sp, 0x4] - movs r2, 0x6 - str r2, [sp, 0x8] - str r5, [sp, 0xC] - movs r2, 0 - bl SetMenuItems - b _08038716 - .align 2, 0 -_080386F0: .4byte gUnknown_80E6F38 -_080386F4: .4byte gUnknown_80E70CC -_080386F8: - adds r0, r1, 0 - adds r0, 0x8 - movs r2, 0xA4 - lsls r2, 1 - adds r1, r2 - ldr r3, _08038728 - ldr r2, _0803872C - str r2, [sp] - str r5, [sp, 0x4] - movs r2, 0x6 - str r2, [sp, 0x8] - str r5, [sp, 0xC] - movs r2, 0 - bl SetMenuItems -_08038716: - ldr r4, _08038730 - ldr r1, [r4] - ldr r0, [r1] - cmp r0, 0x2D - bne _08038734 - movs r0, 0x1 - str r0, [r1, 0x4] - movs r0, 0x13 - b _08038826 - .align 2, 0 -_08038728: .4byte gUnknown_80E6F38 -_0803872C: .4byte gUnknown_80E6FBC -_08038730: .4byte gUnknown_203B364 -_08038734: - adds r0, r1, 0 - b _08038772 -_08038738: - ldr r0, _0803874C - movs r1, 0 - movs r2, 0 - movs r3, 0 - bl sub_80141B4 - ldr r1, [r6] - movs r0, 0x5 - b _08038780 - .align 2, 0 -_0803874C: .4byte gUnknown_80E7178 -_08038750: - adds r0, r1, 0 - adds r0, 0x8 - movs r2, 0xA4 - lsls r2, 1 - adds r1, r2 - ldr r3, _08038788 - ldr r2, _0803878C - str r2, [sp] - str r5, [sp, 0x4] - movs r2, 0x6 - str r2, [sp, 0x8] - str r5, [sp, 0xC] - movs r2, 0 - bl SetMenuItems -_0803876E: - ldr r4, _08038790 - ldr r0, [r4] -_08038772: - adds r0, 0x8 - movs r1, 0 - movs r2, 0x1 - bl sub_8035CF4 - ldr r1, [r4] - movs r0, 0x1 -_08038780: - str r0, [r1, 0x4] - ldr r5, _08038794 - b _08038824 - .align 2, 0 -_08038788: .4byte gUnknown_80E6F38 -_0803878C: .4byte gUnknown_80E701C -_08038790: .4byte gUnknown_203B364 -_08038794: .4byte 0x0000ffdc -_08038798: - adds r0, 0x8 - bl sub_80130A8 - lsls r0, 24 - cmp r0, 0 - bne _080387AE - ldr r0, [r6] - adds r0, 0x8 - add r1, sp, 0x14 - bl sub_8013114 -_080387AE: - ldr r0, [sp, 0x14] - cmp r0, 0x3 - beq _0803881C - cmp r0, 0x3 - bhi _080387BE - cmp r0, 0x2 - beq _080387C2 - b _08038820 -_080387BE: - cmp r0, 0x4 - bne _08038820 -_080387C2: - ldr r4, _080387D8 - ldr r1, [r4] - ldr r0, [r1] - cmp r0, 0x29 - beq _080387D0 - cmp r0, 0x2E - bne _080387DC -_080387D0: - movs r0, 0x1 - str r0, [r1, 0x4] - movs r5, 0x1 - b _08038820 - .align 2, 0 -_080387D8: .4byte gUnknown_203B364 -_080387DC: - cmp r0, 0x2D - bne _080387E8 - movs r0, 0x1 - str r0, [r1, 0x4] - movs r5, 0x13 - b _08038820 -_080387E8: - cmp r0, 0x2C - bne _080387F4 - movs r0, 0x1 - str r0, [r1, 0x4] - movs r5, 0x1F - b _08038820 -_080387F4: - bl sub_8035D4C - adds r0, 0x3A - ldrb r0, [r0] - cmp r0, 0 - beq _0803880A - ldr r1, [r4] - movs r0, 0x1 - str r0, [r1, 0x4] - movs r5, 0x35 - b _08038820 -_0803880A: - ldr r0, [r4] - movs r1, 0x1 - str r1, [r0, 0x4] - ldr r0, [r0] - movs r5, 0xB - cmp r0, 0x2B - bne _08038820 - movs r5, 0xD - b _08038820 -_0803881C: - ldr r0, [r6] - str r4, [r0, 0x4] -_08038820: - bl sub_80388C4 -_08038824: - adds r0, r5, 0 -_08038826: - add sp, 0x18 - pop {r4-r6} - pop {r1} - bx r1 - thumb_func_end sub_8038630 - - thumb_func_start sub_8038830 -sub_8038830: - push {r4,r5,lr} - movs r5, 0 - ldr r0, _080388A4 - ldr r0, [r0] - mov r12, r0 - movs r3, 0xD4 - lsls r3, 1 - add r3, r12 - ldrh r1, [r3] - ldr r0, _080388A8 - ands r0, r1 - ldr r1, _080388AC - ands r0, r1 - ldr r4, _080388B0 - ands r0, r4 - ldr r1, _080388B4 - ands r0, r1 - ldr r1, _080388B8 - ands r0, r1 - movs r2, 0x80 - lsls r2, 7 - ldr r1, _080388BC - ands r0, r1 - orrs r0, r2 - strh r0, [r3] - movs r2, 0xFC - lsls r2, 2 - ldrh r1, [r3, 0x4] - movs r0, 0xFC - lsls r0, 8 - ands r0, r1 - orrs r0, r2 - ands r0, r4 - movs r2, 0xF - movs r4, 0xF0 - lsls r4, 8 - ldr r1, _080388C0 - ands r0, r1 - orrs r0, r4 - strh r0, [r3, 0x4] - movs r0, 0x70 - strh r0, [r3, 0x2] - movs r1, 0xD0 - lsls r1, 3 - ldrh r0, [r3, 0x6] - ands r2, r0 - orrs r2, r1 - strh r2, [r3, 0x6] - movs r0, 0xD8 - lsls r0, 1 - add r0, r12 - str r5, [r0] - movs r0, 0 - bl ResetSprites - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080388A4: .4byte gUnknown_203B364 -_080388A8: .4byte 0x0000feff -_080388AC: .4byte 0x0000fdff -_080388B0: .4byte 0x0000f3ff -_080388B4: .4byte 0x0000efff -_080388B8: .4byte 0x0000dfff -_080388BC: .4byte 0x00003fff -_080388C0: .4byte 0x00000fff - thumb_func_end sub_8038830 - - thumb_func_start sub_80388C4 -sub_80388C4: - push {r4,r5,lr} - ldr r5, _080388FC - ldr r2, [r5] - movs r4, 0xD8 - lsls r4, 1 - adds r0, r2, r4 - ldr r0, [r0] - movs r1, 0x8 - ands r0, r1 - cmp r0, 0 - beq _080388EA - movs r1, 0xD4 - lsls r1, 1 - adds r0, r2, r1 - subs r1, 0xA8 - movs r2, 0 - movs r3, 0 - bl AddSprite -_080388EA: - ldr r1, [r5] - adds r1, r4 - ldr r0, [r1] - adds r0, 0x1 - str r0, [r1] - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080388FC: .4byte gUnknown_203B364 - thumb_func_end sub_80388C4 - - thumb_func_start CreateRescuePasswordMenu -CreateRescuePasswordMenu: - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - adds r6, r0, 0 - ldr r5, _080389B8 - ldr r0, [r5] - cmp r0, 0 - bne _0803892A - movs r4, 0x85 - lsls r4, 2 - adds r0, r4, 0 - movs r1, 0x8 - bl MemoryAlloc - str r0, [r5] - movs r1, 0 - adds r2, r4, 0 - bl MemoryFill8 -_0803892A: - movs r0, 0x1B - negs r0, r0 - adds r0, r6 - mov r8, r0 - mov r12, r5 - movs r1, 0xA4 - lsls r1, 1 - mov r9, r1 - ldr r4, _080389BC - mov r10, r4 - movs r3, 0 - movs r2, 0x3 -_08038942: - mov r5, r12 - ldr r1, [r5] - adds r1, r3 - add r1, r9 - mov r0, r10 - ldm r0!, {r4,r5,r7} - stm r1!, {r4,r5,r7} - ldm r0!, {r4,r5,r7} - stm r1!, {r4,r5,r7} - adds r3, 0x18 - subs r2, 0x1 - cmp r2, 0 - bge _08038942 - bl ResetUnusedInputStruct - ldr r4, _080389B8 - ldr r0, [r4] - movs r7, 0xA4 - lsls r7, 1 - adds r0, r7 - movs r1, 0x1 - movs r2, 0x1 - bl sub_800641C - ldr r2, _080389C0 - ldrb r0, [r2] - cmp r0, 0 - bne _08038986 - ldr r0, _080389C4 - ldr r1, [r0] - adds r7, r4, 0 - adds r5, r0, 0 - cmp r1, r6 - beq _080389A0 -_08038986: - adds r7, r4, 0 - adds r3, r2, 0 - ldr r5, _080389C4 - ldr r1, _080389C8 - movs r2, 0 - adds r0, r1, 0 - adds r0, 0x35 -_08038994: - strb r2, [r0] - subs r0, 0x1 - cmp r0, r1 - bge _08038994 - movs r0, 0 - strb r0, [r3] -_080389A0: - ldr r0, [r7] - str r6, [r0] - str r6, [r5] - mov r0, r8 - cmp r0, 0x7 - bhi _08038A36 - lsls r0, 2 - ldr r1, _080389CC - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080389B8: .4byte gUnknown_203B370 -_080389BC: .4byte gUnknown_80E71E4 -_080389C0: .4byte gUnknown_203B368 -_080389C4: .4byte gUnknown_203B36C -_080389C8: .4byte gUnknown_202EC50 -_080389CC: .4byte _080389D0 - .align 2, 0 -_080389D0: - .4byte _080389F0 - .4byte _080389FC - .4byte _080389F0 - .4byte _080389FC - .4byte _080389F0 - .4byte _080389FC - .4byte _08038A0C - .4byte _08038A2E -_080389F0: - bl sub_8035D74 - movs r1, 0 - bl sub_8031D70 - b _08038A36 -_080389FC: - ldr r1, _08038A08 - movs r0, 0x4 - bl sub_80151C0 - b _08038A36 - .align 2, 0 -_08038A08: .4byte gUnknown_202EC50 -_08038A0C: - movs r0, 0x1F - bl sub_8095228 - adds r4, r0, 0 - movs r1, 0 - movs r2, 0x30 - bl MemoryFill8 - movs r1, 0 - movs r0, 0x2 - strb r0, [r4] - adds r4, 0x22 - strb r1, [r4] - movs r0, 0x1F - bl sub_8031D70 - b _08038A36 -_08038A2E: - ldr r1, _08038A54 - movs r0, 0x4 - bl sub_80151C0 -_08038A36: - adds r0, r6, 0 - bl sub_8039000 - ldr r1, _08038A58 - ldr r1, [r1] - str r0, [r1, 0x4] - bl sub_8039174 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08038A54: .4byte gUnknown_202EC50 -_08038A58: .4byte gUnknown_203B370 - thumb_func_end CreateRescuePasswordMenu - - thumb_func_start CleanRescuePasswordMenu -CleanRescuePasswordMenu: - push {r4,lr} - bl ResetUnusedInputStruct - movs r0, 0 - movs r1, 0x1 - movs r2, 0x1 - bl sub_800641C - ldr r4, _08038A8C - ldr r0, [r4] - cmp r0, 0 - beq _08038A86 - bl sub_80155F0 - bl sub_8031E10 - ldr r0, [r4] - bl MemoryFree - movs r0, 0 - str r0, [r4] -_08038A86: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08038A8C: .4byte gUnknown_203B370 - thumb_func_end CleanRescuePasswordMenu - - thumb_func_start UpdateRescuePasswordMenu -UpdateRescuePasswordMenu: - push {r4-r6,lr} - sub sp, 0x34 - movs r0, 0xB - str r0, [sp, 0x30] - ldr r5, _08038AB4 - ldr r1, _08038AB8 - ldr r0, [r1] - ldr r0, [r0, 0x4] - adds r6, r1, 0 - cmp r0, 0x9 - bls _08038AA8 - b _08038DB0 -_08038AA8: - lsls r0, 2 - ldr r1, _08038ABC - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08038AB4: .4byte 0x0000ffdc -_08038AB8: .4byte gUnknown_203B370 -_08038ABC: .4byte _08038AC0 - .align 2, 0 -_08038AC0: - .4byte _08038AE8 - .4byte _08038AFC - .4byte _08038AE8 - .4byte _08038AFC - .4byte _08038AE8 - .4byte _08038AFC - .4byte _08038C78 - .4byte _08038C8C - .4byte _08038CC2 - .4byte _08038D38 -_08038AE8: - bl sub_8031DCC - ldr r5, _08038AF8 - cmp r0, 0 - bne _08038AF4 - b _08038DB0 -_08038AF4: - movs r5, 0xB - b _08038DB0 - .align 2, 0 -_08038AF8: .4byte 0x0000ffdc -_08038AFC: - bl sub_80154F0 - adds r4, r0, 0 - mov r0, sp - movs r1, 0 - movs r2, 0x30 - bl MemoryFill8 - cmp r4, 0x1 - bne _08038B12 - b _08038CBC -_08038B12: - cmp r4, 0x1 - bcs _08038B18 - b _08038CB0 -_08038B18: - cmp r4, 0x2 - beq _08038AF4 - cmp r4, 0x3 - beq _08038B22 - b _08038DB0 -_08038B22: - ldr r0, _08038B44 - ldr r0, [r0] - ldr r0, [r0] - ldr r1, _08038B48 - mov r2, sp - bl sub_8039068 - subs r0, 0x7 - cmp r0, 0x11 - bls _08038B38 - b _08038DB0 -_08038B38: - lsls r0, 2 - ldr r1, _08038B4C - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08038B44: .4byte gUnknown_203B370 -_08038B48: .4byte gUnknown_202EC50 -_08038B4C: .4byte _08038B50 - .align 2, 0 -_08038B50: - .4byte _08038BA4 - .4byte _08038DB0 - .4byte _08038BD8 - .4byte _08038DB0 - .4byte _08038C28 - .4byte _08038DB0 - .4byte _08038B9C - .4byte _08038DB0 - .4byte _08038DB0 - .4byte _08038DB0 - .4byte _08038B98 - .4byte _08038BA0 - .4byte _08038BD4 - .4byte _08038C24 - .4byte _08038DB0 - .4byte _08038BA8 - .4byte _08038BDC - .4byte _08038C2C -_08038B98: - movs r0, 0x11 - b _08038CA4 -_08038B9C: - movs r0, 0xD - b _08038CA4 -_08038BA0: - movs r0, 0x12 - b _08038CA4 -_08038BA4: - movs r0, 0x7 - b _08038CA4 -_08038BA8: - ldr r0, [sp, 0x10] - bl sub_8095274 - bl sub_8038F98 - ldr r0, _08038BCC - ldr r1, [r0] - movs r0, 0x9 - str r0, [r1, 0x4] - ldr r5, _08038BD0 - mov r1, sp - movs r0, 0x2 - strb r0, [r1] - mov r0, sp - bl sub_80951BC - b _08038DB0 - .align 2, 0 -_08038BCC: .4byte gUnknown_203B370 -_08038BD0: .4byte 0x0000ffdc -_08038BD4: - movs r0, 0x13 - b _08038CA4 -_08038BD8: - movs r0, 0x9 - b _08038CA4 -_08038BDC: - bl sub_8038F98 - ldr r0, _08038C18 - ldr r1, [r0] - movs r0, 0x9 - str r0, [r1, 0x4] - ldr r5, _08038C1C - mov r1, sp - movs r0, 0x5 - strb r0, [r1] - mov r0, sp - bl sub_80951FC - ldr r1, [sp, 0x10] - movs r0, 0x1 - bl sub_809539C - lsls r0, 24 - lsrs r0, 24 - bl sub_8095228 - movs r1, 0x7 - strb r1, [r0] - ldr r0, _08038C20 - movs r1, 0 - movs r2, 0x5C - bl MemoryFill8 - b _08038DB0 - .align 2, 0 -_08038C18: .4byte gUnknown_203B370 -_08038C1C: .4byte 0x0000ffdc -_08038C20: .4byte gUnknown_203B484 -_08038C24: - movs r0, 0x14 - b _08038CA4 -_08038C28: - movs r0, 0xB - b _08038CA4 -_08038C2C: - bl sub_8038F98 - ldr r0, _08038C70 - ldr r1, [r0] - movs r0, 0x9 - str r0, [r1, 0x4] - ldr r5, _08038C74 - ldr r1, [sp, 0x10] - movs r0, 0x4 - bl sub_809539C - lsls r0, 24 - lsrs r0, 24 - bl sub_8095228 - adds r2, r0, 0 - mov r1, sp - ldm r1!, {r3,r4,r6} - stm r2!, {r3,r4,r6} - ldm r1!, {r3,r4,r6} - stm r2!, {r3,r4,r6} - ldm r1!, {r3,r4,r6} - stm r2!, {r3,r4,r6} - ldm r1!, {r3,r4,r6} - stm r2!, {r3,r4,r6} - movs r1, 0x6 - strb r1, [r0] - bl sub_8035D4C - adds r0, 0x3A - movs r1, 0x1 - strb r1, [r0] - b _08038DB0 - .align 2, 0 -_08038C70: .4byte gUnknown_203B370 -_08038C74: .4byte 0x0000ffdc -_08038C78: - bl sub_8031DCC - ldr r5, _08038C88 - cmp r0, 0 - bne _08038C84 - b _08038DB0 -_08038C84: - movs r5, 0xD - b _08038DB0 - .align 2, 0 -_08038C88: .4byte 0x0000ffdc -_08038C8C: - bl sub_80154F0 - cmp r0, 0x1 - beq _08038CBC - cmp r0, 0x1 - bcc _08038CB0 - cmp r0, 0x2 - beq _08038C84 - cmp r0, 0x3 - beq _08038CA2 - b _08038DB0 -_08038CA2: - movs r0, 0x15 -_08038CA4: - bl sub_8038DC0 - ldr r0, _08038CB4 - ldr r1, [r0] - movs r0, 0x8 - str r0, [r1, 0x4] -_08038CB0: - ldr r5, _08038CB8 - b _08038DB0 - .align 2, 0 -_08038CB4: .4byte gUnknown_203B370 -_08038CB8: .4byte 0x0000ffdc -_08038CBC: - bl sub_8031E00 - b _08038CB0 -_08038CC2: - ldr r0, [r6] - adds r0, 0x8 - bl sub_8012FD8 - lsls r0, 24 - cmp r0, 0 - bne _08038CDA - ldr r0, [r6] - adds r0, 0x8 - add r1, sp, 0x30 - bl sub_8013114 -_08038CDA: - ldr r0, [sp, 0x30] - cmp r0, 0xB - beq _08038D24 - cmp r0, 0xB - bhi _08038CEA - cmp r0, 0xA - beq _08038CEE - b _08038DB0 -_08038CEA: - cmp r0, 0xC - bne _08038DB0 -_08038CEE: - bl sub_8039174 - bl ResetUnusedInputStruct - movs r0, 0 - movs r1, 0x1 - movs r2, 0x1 - bl sub_800641C - ldr r1, _08038D1C - movs r0, 0x4 - bl sub_80151C0 - ldr r0, _08038D20 - ldr r1, [r0] - movs r0, 0x8 - str r0, [r1, 0x4] - ldr r0, [r1] - subs r0, 0x21 - movs r5, 0xB - cmp r0, 0x1 - bhi _08038DB0 - b _08038C84 - .align 2, 0 -_08038D1C: .4byte gUnknown_202EC50 -_08038D20: .4byte gUnknown_203B370 -_08038D24: - ldr r1, [r6] - movs r0, 0x8 - str r0, [r1, 0x4] - ldr r5, _08038D34 - bl sub_80391F8 - b _08038DB0 - .align 2, 0 -_08038D34: .4byte 0x0000ffdc -_08038D38: - adds r4, r6, 0 - ldr r0, [r4] - adds r0, 0x8 - bl sub_8012FD8 - lsls r0, 24 - cmp r0, 0 - bne _08038D52 - ldr r0, [r4] - adds r0, 0x8 - add r1, sp, 0x30 - bl sub_8013114 -_08038D52: - ldr r0, [sp, 0x30] - cmp r0, 0xB - beq _08038DA4 - cmp r0, 0xB - bhi _08038D62 - cmp r0, 0xA - beq _08038D66 - b _08038DB0 -_08038D62: - cmp r0, 0xC - bne _08038DB0 -_08038D66: - bl sub_8039174 - bl ResetUnusedInputStruct - movs r0, 0 - movs r1, 0x1 - movs r2, 0x1 - bl sub_800641C - ldr r1, _08038D9C - movs r0, 0x4 - bl sub_80151C0 - ldr r4, _08038DA0 - ldr r0, [r4] - ldr r0, [r0] - bl sub_8039000 - ldr r1, [r4] - str r0, [r1, 0x4] - ldr r0, [r1] - subs r0, 0x21 - movs r5, 0x2A - cmp r0, 0x1 - bhi _08038DB0 - movs r5, 0x2B - b _08038DB0 - .align 2, 0 -_08038D9C: .4byte gUnknown_202EC50 -_08038DA0: .4byte gUnknown_203B370 -_08038DA4: - ldr r1, [r6] - movs r0, 0x9 - str r0, [r1, 0x4] - ldr r5, _08038DBC - bl sub_80391F8 -_08038DB0: - adds r0, r5, 0 - add sp, 0x34 - pop {r4-r6} - pop {r1} - bx r1 - .align 2, 0 -_08038DBC: .4byte 0x0000ffdc - thumb_func_end UpdateRescuePasswordMenu - - thumb_func_start sub_8038DC0 -sub_8038DC0: - push {r4,lr} - sub sp, 0x10 - adds r4, r0, 0 - ldr r0, _08038DF8 - ldr r0, [r0] - movs r1, 0xD4 - lsls r1, 1 - adds r0, r1 - bl sub_8006518 - bl ResetUnusedInputStruct - movs r0, 0 - movs r1, 0x1 - movs r2, 0x1 - bl sub_800641C - bl sub_80155F0 - subs r0, r4, 0x7 - cmp r0, 0xE - bls _08038DEE - b _08038F74 -_08038DEE: - lsls r0, 2 - ldr r1, _08038DFC - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08038DF8: .4byte gUnknown_203B370 -_08038DFC: .4byte _08038E00 - .align 2, 0 -_08038E00: - .4byte _08038E7C - .4byte _08038F74 - .4byte _08038EDC - .4byte _08038F74 - .4byte _08038F1C - .4byte _08038F74 - .4byte _08038E9C - .4byte _08038F74 - .4byte _08038F74 - .4byte _08038F74 - .4byte _08038E3C - .4byte _08038E5C - .4byte _08038EBC - .4byte _08038EFC - .4byte _08038F50 -_08038E3C: - ldr r0, _08038E50 - ldr r1, [r0] - adds r0, r1, 0 - adds r0, 0x8 - movs r2, 0xA4 - lsls r2, 1 - adds r1, r2 - ldr r3, _08038E54 - ldr r2, _08038E58 - b _08038F2E - .align 2, 0 -_08038E50: .4byte gUnknown_203B370 -_08038E54: .4byte gUnknown_80E71FC -_08038E58: .4byte gUnknown_80E7214 -_08038E5C: - ldr r0, _08038E70 - ldr r1, [r0] - adds r0, r1, 0 - adds r0, 0x8 - movs r2, 0xA4 - lsls r2, 1 - adds r1, r2 - ldr r3, _08038E74 - ldr r2, _08038E78 - b _08038F2E - .align 2, 0 -_08038E70: .4byte gUnknown_203B370 -_08038E74: .4byte gUnknown_80E72EC -_08038E78: .4byte gUnknown_80E7304 -_08038E7C: - ldr r0, _08038E90 - ldr r1, [r0] - adds r0, r1, 0 - adds r0, 0x8 - movs r2, 0xA4 - lsls r2, 1 - adds r1, r2 - ldr r3, _08038E94 - ldr r2, _08038E98 - b _08038F2E - .align 2, 0 -_08038E90: .4byte gUnknown_203B370 -_08038E94: .4byte gUnknown_80E7344 -_08038E98: .4byte gUnknown_80E735C -_08038E9C: - ldr r0, _08038EB0 - ldr r1, [r0] - adds r0, r1, 0 - adds r0, 0x8 - movs r2, 0xA4 - lsls r2, 1 - adds r1, r2 - ldr r3, _08038EB4 - ldr r2, _08038EB8 - b _08038F2E - .align 2, 0 -_08038EB0: .4byte gUnknown_203B370 -_08038EB4: .4byte gUnknown_80E7588 -_08038EB8: .4byte gUnknown_80E75A0 -_08038EBC: - ldr r0, _08038ED0 - ldr r1, [r0] - adds r0, r1, 0 - adds r0, 0x8 - movs r2, 0xA4 - lsls r2, 1 - adds r1, r2 - ldr r3, _08038ED4 - ldr r2, _08038ED8 - b _08038F2E - .align 2, 0 -_08038ED0: .4byte gUnknown_203B370 -_08038ED4: .4byte gUnknown_80E73AC -_08038ED8: .4byte gUnknown_80E73C4 -_08038EDC: - ldr r0, _08038EF0 - ldr r1, [r0] - adds r0, r1, 0 - adds r0, 0x8 - movs r2, 0xA4 - lsls r2, 1 - adds r1, r2 - ldr r3, _08038EF4 - ldr r2, _08038EF8 - b _08038F2E - .align 2, 0 -_08038EF0: .4byte gUnknown_203B370 -_08038EF4: .4byte gUnknown_80E7408 -_08038EF8: .4byte gUnknown_80E7420 -_08038EFC: - ldr r0, _08038F10 - ldr r1, [r0] - adds r0, r1, 0 - adds r0, 0x8 - movs r2, 0xA4 - lsls r2, 1 - adds r1, r2 - ldr r3, _08038F14 - ldr r2, _08038F18 - b _08038F2E - .align 2, 0 -_08038F10: .4byte gUnknown_203B370 -_08038F14: .4byte gUnknown_80E7468 -_08038F18: .4byte gUnknown_80E7480 -_08038F1C: - ldr r0, _08038F44 - ldr r1, [r0] - adds r0, r1, 0 - adds r0, 0x8 - movs r2, 0xA4 - lsls r2, 1 - adds r1, r2 - ldr r3, _08038F48 - ldr r2, _08038F4C -_08038F2E: - str r2, [sp] - movs r4, 0 - str r4, [sp, 0x4] - movs r2, 0xD - str r2, [sp, 0x8] - str r4, [sp, 0xC] - movs r2, 0 - bl SetMenuItems - b _08038F74 - .align 2, 0 -_08038F44: .4byte gUnknown_203B370 -_08038F48: .4byte gUnknown_80E74C8 -_08038F4C: .4byte gUnknown_80E74E0 -_08038F50: - ldr r0, _08038F8C - ldr r1, [r0] - adds r0, r1, 0 - adds r0, 0x8 - movs r2, 0xA4 - lsls r2, 1 - adds r1, r2 - ldr r3, _08038F90 - ldr r2, _08038F94 - str r2, [sp] - movs r4, 0 - str r4, [sp, 0x4] - movs r2, 0xD - str r2, [sp, 0x8] - str r4, [sp, 0xC] - movs r2, 0 - bl SetMenuItems -_08038F74: - ldr r0, _08038F8C - ldr r0, [r0] - adds r0, 0x8 - movs r1, 0 - movs r2, 0x1 - bl sub_8035CF4 - add sp, 0x10 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08038F8C: .4byte gUnknown_203B370 -_08038F90: .4byte gUnknown_80E752C -_08038F94: .4byte gUnknown_80E7544 - thumb_func_end sub_8038DC0 - - thumb_func_start sub_8038F98 -sub_8038F98: - push {r4,r5,lr} - sub sp, 0x10 - ldr r5, _08038FF4 - ldr r0, [r5] - movs r1, 0xD4 - lsls r1, 1 - adds r0, r1 - bl sub_8006518 - bl ResetUnusedInputStruct - movs r0, 0 - movs r1, 0x1 - movs r2, 0x1 - bl sub_800641C - bl sub_80155F0 - ldr r1, [r5] - adds r0, r1, 0 - adds r0, 0x8 - movs r2, 0xA4 - lsls r2, 1 - adds r1, r2 - ldr r3, _08038FF8 - ldr r2, _08038FFC - str r2, [sp] - movs r4, 0 - str r4, [sp, 0x4] - movs r2, 0xD - str r2, [sp, 0x8] - str r4, [sp, 0xC] - movs r2, 0 - bl SetMenuItems - ldr r0, [r5] - adds r0, 0x8 - movs r1, 0 - movs r2, 0x1 - bl sub_8035CF4 - add sp, 0x10 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_08038FF4: .4byte gUnknown_203B370 -_08038FF8: .4byte gUnknown_80E7278 -_08038FFC: .4byte gUnknown_80E7290 - thumb_func_end sub_8038F98 - - thumb_func_start sub_8039000 -sub_8039000: - push {lr} - movs r1, 0xB - ldr r0, _0803901C - ldr r0, [r0] - ldr r0, [r0] - subs r0, 0x1B - cmp r0, 0x7 - bhi _08039062 - lsls r0, 2 - ldr r1, _08039020 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0803901C: .4byte gUnknown_203B370 -_08039020: .4byte _08039024 - .align 2, 0 -_08039024: - .4byte _08039044 - .4byte _08039054 - .4byte _0803904C - .4byte _0803905C - .4byte _08039048 - .4byte _08039058 - .4byte _08039050 - .4byte _08039060 -_08039044: - movs r1, 0 - b _08039062 -_08039048: - movs r1, 0x4 - b _08039062 -_0803904C: - movs r1, 0x2 - b _08039062 -_08039050: - movs r1, 0x6 - b _08039062 -_08039054: - movs r1, 0x1 - b _08039062 -_08039058: - movs r1, 0x5 - b _08039062 -_0803905C: - movs r1, 0x3 - b _08039062 -_08039060: - movs r1, 0x7 -_08039062: - adds r0, r1, 0 - pop {r1} - bx r1 - thumb_func_end sub_8039000 - - thumb_func_start sub_8039068 -sub_8039068: - push {r4-r6,lr} - adds r6, r0, 0 - adds r0, r1, 0 - adds r5, r2, 0 - adds r1, r5, 0 - bl sub_803D204 - lsls r0, 24 - cmp r0, 0 - beq _080390AC - ldrb r0, [r5] - cmp r0, 0x7 - bhi _080390AC - ldrb r4, [r5, 0x5] - ldrb r0, [r5, 0x4] - bl sub_8090298 - cmp r4, r0 - bge _080390AC - movs r0, 0xC - ldrsh r1, [r5, r0] - cmp r1, 0 - beq _080390AC - ldr r0, _080390B0 - cmp r1, r0 - bgt _080390AC - adds r0, r5, 0 - adds r0, 0x22 - ldrb r0, [r0] - bl sub_8092040 - lsls r0, 24 - cmp r0, 0 - beq _080390B4 -_080390AC: - movs r0, 0x11 - b _0803916E - .align 2, 0 -_080390B0: .4byte 0x000001a7 -_080390B4: - cmp r6, 0x1E - beq _08039120 - cmp r6, 0x1E - bhi _080390C2 - cmp r6, 0x1C - beq _080390C8 - b _0803916A -_080390C2: - cmp r6, 0x20 - beq _08039140 - b _0803916A -_080390C8: - ldrb r0, [r5] - cmp r0, 0x1 - beq _080390D2 - movs r0, 0x12 - b _0803916E -_080390D2: - ldr r1, [r5, 0x10] - movs r0, 0x2 - bl sub_80952F0 - lsls r0, 24 - cmp r0, 0 - bne _08039108 - ldr r1, [r5, 0x10] - movs r0, 0x4 - bl sub_80952F0 - lsls r0, 24 - cmp r0, 0 - bne _08039108 - ldr r1, [r5, 0x10] - movs r0, 0x6 - bl sub_80952F0 - lsls r0, 24 - cmp r0, 0 - bne _08039108 - ldr r0, [r5, 0x10] - bl sub_8095298 - lsls r0, 24 - cmp r0, 0 - beq _0803910C -_08039108: - movs r0, 0x7 - b _0803916E -_0803910C: - bl sub_8095190 - movs r1, 0x1 - negs r1, r1 - cmp r0, r1 - bne _0803911C - movs r0, 0xD - b _0803916E -_0803911C: - movs r0, 0x16 - b _0803916E -_08039120: - ldrb r0, [r5] - cmp r0, 0x4 - beq _0803912A - movs r0, 0x13 - b _0803916E -_0803912A: - ldr r1, [r5, 0x10] - movs r0, 0x1 - bl sub_80952F0 - lsls r0, 24 - cmp r0, 0 - bne _0803913C - movs r0, 0x9 - b _0803916E -_0803913C: - movs r0, 0x17 - b _0803916E -_08039140: - ldrb r0, [r5] - cmp r0, 0x5 - beq _0803914A - movs r0, 0x14 - b _0803916E -_0803914A: - ldr r1, [r5, 0x10] - movs r0, 0x4 - bl sub_80952F0 - lsls r0, 24 - cmp r0, 0 - beq _08039162 - bl sub_8011C34 - ldr r1, [r5, 0x28] - cmp r1, r0 - beq _08039166 -_08039162: - movs r0, 0xB - b _0803916E -_08039166: - movs r0, 0x18 - b _0803916E -_0803916A: - movs r0, 0x1 - negs r0, r0 -_0803916E: - pop {r4-r6} - pop {r1} - bx r1 - thumb_func_end sub_8039068 - - thumb_func_start sub_8039174 -sub_8039174: - push {r4,lr} - ldr r0, _080391D8 - ldr r3, [r0] - movs r0, 0x82 - lsls r0, 2 - adds r3, r0 - ldrh r1, [r3] - ldr r0, _080391DC - ands r0, r1 - ldr r1, _080391E0 - ands r0, r1 - ldr r4, _080391E4 - ands r0, r4 - ldr r1, _080391E8 - ands r0, r1 - ldr r1, _080391EC - ands r0, r1 - movs r2, 0x80 - lsls r2, 7 - ldr r1, _080391F0 - ands r0, r1 - orrs r0, r2 - strh r0, [r3] - movs r2, 0xFC - lsls r2, 2 - ldrh r1, [r3, 0x4] - movs r0, 0xFC - lsls r0, 8 - ands r0, r1 - orrs r0, r2 - ands r0, r4 - movs r2, 0xF - movs r4, 0xF0 - lsls r4, 8 - ldr r1, _080391F4 - ands r0, r1 - orrs r0, r4 - strh r0, [r3, 0x4] - movs r0, 0 - strh r0, [r3, 0x2] - movs r1, 0xC0 - lsls r1, 4 - ldrh r0, [r3, 0x6] - ands r2, r0 - orrs r2, r1 - strh r2, [r3, 0x6] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080391D8: .4byte gUnknown_203B370 -_080391DC: .4byte 0x0000feff -_080391E0: .4byte 0x0000fdff -_080391E4: .4byte 0x0000f3ff -_080391E8: .4byte 0x0000efff -_080391EC: .4byte 0x0000dfff -_080391F0: .4byte 0x00003fff -_080391F4: .4byte 0x00000fff - thumb_func_end sub_8039174 - - thumb_func_start sub_80391F8 -sub_80391F8: - push {r4-r6,lr} - ldr r6, _08039250 - ldr r2, [r6] - movs r0, 0x82 - lsls r0, 2 - adds r4, r2, r0 - ldrh r1, [r4, 0x2] - movs r0, 0xFE - lsls r0, 8 - ands r0, r1 - movs r1, 0x70 - orrs r0, r1 - strh r0, [r4, 0x2] - movs r3, 0xE0 - lsls r3, 3 - ldrh r1, [r4, 0x6] - movs r0, 0xF - ands r0, r1 - orrs r0, r3 - strh r0, [r4, 0x6] - movs r5, 0x84 - lsls r5, 2 - adds r2, r5 - ldr r0, [r2] - movs r1, 0x8 - ands r0, r1 - cmp r0, 0 - beq _0803923C - adds r1, 0xF8 - adds r0, r4, 0 - movs r2, 0 - movs r3, 0 - bl AddSprite -_0803923C: - bl xxx_draw_string_80144C4 - ldr r1, [r6] - adds r1, r5 - ldr r0, [r1] - adds r0, 0x1 - str r0, [r1] - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_08039250: .4byte gUnknown_203B370 - thumb_func_end sub_80391F8 - - thumb_func_start CreateLoadScreen -CreateLoadScreen: - push {r4-r7,lr} - mov r7, r8 - push {r7} - sub sp, 0x10 - adds r6, r0, 0 - ldr r5, _080392EC - ldr r0, [r5] - cmp r0, 0 - bne _0803927C - movs r4, 0x9F - lsls r4, 2 - adds r0, r4, 0 - movs r1, 0x8 - bl MemoryAlloc - str r0, [r5] - movs r1, 0 - adds r2, r4, 0 - bl MemoryFill8 -_0803927C: - ldr r0, [r5] - str r6, [r0] - mov r12, r5 - movs r0, 0xA2 - lsls r0, 1 - mov r8, r0 - ldr r4, _080392F0 - movs r3, 0 - movs r2, 0x3 -_0803928E: - mov r5, r12 - ldr r1, [r5] - adds r1, r3 - add r1, r8 - adds r0, r4, 0 - ldm r0!, {r5-r7} - stm r1!, {r5-r7} - ldm r0!, {r5-r7} - stm r1!, {r5-r7} - adds r3, 0x18 - subs r2, 0x1 - cmp r2, 0 - bge _0803928E - bl ResetUnusedInputStruct - ldr r6, _080392EC - ldr r0, [r6] - movs r5, 0xA2 - lsls r5, 1 - adds r0, r5 - movs r1, 0x1 - movs r2, 0x1 - bl sub_800641C - ldr r1, [r6] - adds r0, r1, 0x4 - adds r1, r5 - ldr r3, _080392F4 - ldr r2, _080392F8 - str r2, [sp] - movs r4, 0 - str r4, [sp, 0x4] - movs r7, 0x6 - str r7, [sp, 0x8] - str r4, [sp, 0xC] - movs r2, 0 - bl SetMenuItems - ldr r1, [r6] - ldr r0, [r1] - cmp r0, 0x7 - beq _08039306 - cmp r0, 0x7 - bhi _080392FC - cmp r0, 0x6 - beq _08039338 - b _08039382 - .align 2, 0 -_080392EC: .4byte gUnknown_203B374 -_080392F0: .4byte gUnknown_80E75F8 -_080392F4: .4byte gUnknown_80E7610 -_080392F8: .4byte gUnknown_203B378 -_080392FC: - cmp r0, 0x8 - beq _0803934C - cmp r0, 0x9 - beq _0803936C - b _08039382 -_08039306: - bl sub_8039844 - lsls r0, 24 - cmp r0, 0 - beq _08039324 - ldr r1, [r6] - adds r0, r1, 0x4 - adds r1, r5 - ldr r3, _0803931C - ldr r2, _08039320 - b _08039354 - .align 2, 0 -_0803931C: .4byte gUnknown_80E762C -_08039320: .4byte gUnknown_80E7644 -_08039324: - ldr r1, [r6] - adds r0, r1, 0x4 - adds r1, r5 - ldr r3, _08039330 - ldr r2, _08039334 - b _08039354 - .align 2, 0 -_08039330: .4byte gUnknown_80E762C -_08039334: .4byte gUnknown_80E7684 -_08039338: - adds r0, r1, 0x4 - adds r1, r5 - ldr r3, _08039344 - ldr r2, _08039348 - b _08039354 - .align 2, 0 -_08039344: .4byte gUnknown_80E762C -_08039348: .4byte gUnknown_80E76B8 -_0803934C: - adds r0, r1, 0x4 - adds r1, r5 - ldr r3, _08039364 - ldr r2, _08039368 -_08039354: - str r2, [sp] - str r4, [sp, 0x4] - str r7, [sp, 0x8] - str r4, [sp, 0xC] - movs r2, 0x1 - bl SetMenuItems - b _08039382 - .align 2, 0 -_08039364: .4byte gUnknown_80E762C -_08039368: .4byte gUnknown_80E76E8 -_0803936C: - adds r0, r1, 0x4 - adds r1, r5 - ldr r3, _080393DC - ldr r2, _080393E0 - str r2, [sp] - str r4, [sp, 0x4] - str r7, [sp, 0x8] - str r4, [sp, 0xC] - movs r2, 0x1 - bl SetMenuItems -_08039382: - ldr r4, _080393E4 - ldr r1, [r4] - adds r0, r1, 0x4 - movs r6, 0xA2 - lsls r6, 1 - adds r1, r6 - ldr r3, _080393E8 - ldr r2, _080393EC - str r2, [sp] - movs r2, 0x1 - str r2, [sp, 0x4] - movs r2, 0x2 - str r2, [sp, 0x8] - movs r2, 0 - str r2, [sp, 0xC] - movs r2, 0x2 - bl SetMenuItems - ldr r0, [r4] - adds r0, 0x4 - movs r1, 0 - movs r2, 0 - bl sub_8035CF4 - ldr r0, [r4] - adds r0, 0x4 - movs r1, 0x1 - movs r2, 0 - bl sub_8035CF4 - ldr r0, [r4] - adds r0, 0x4 - movs r1, 0x2 - movs r2, 0x1 - bl sub_8035CF4 - bl DrawLoadScreenText - add sp, 0x10 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080393DC: .4byte gUnknown_80E762C -_080393E0: .4byte gUnknown_80E7730 -_080393E4: .4byte gUnknown_203B374 -_080393E8: .4byte gUnknown_80E7784 -_080393EC: .4byte gUnknown_80E779C - thumb_func_end CreateLoadScreen - - thumb_func_start CleanLoadScreen -CleanLoadScreen: - push {r4,lr} - bl ResetUnusedInputStruct - movs r0, 0 - movs r1, 0x1 - movs r2, 0x1 - bl sub_800641C - ldr r4, _08039418 - ldr r0, [r4] - cmp r0, 0 - beq _08039410 - bl MemoryFree - movs r0, 0 - str r0, [r4] -_08039410: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08039418: .4byte gUnknown_203B374 - thumb_func_end CleanLoadScreen - - thumb_func_start sub_803941C -sub_803941C: - push {r4,r5,lr} - sub sp, 0x4 - ldr r5, _08039458 - movs r0, 0x4 - str r0, [sp] - ldr r4, _0803945C - ldr r0, [r4] - adds r0, 0x54 - bl sub_8012FD8 - ldr r0, [r4] - adds r0, 0xA4 - bl sub_8012FD8 - lsls r0, 24 - cmp r0, 0 - bne _08039448 - ldr r0, [r4] - adds r0, 0xA4 - mov r1, sp - bl sub_8013114 -_08039448: - ldr r0, [sp] - cmp r0, 0x3 - bhi _08039498 - cmp r0, 0x2 - bcs _08039460 - cmp r0, 0x1 - beq _08039464 - b _08039498 - .align 2, 0 -_08039458: .4byte 0x0000ffdc -_0803945C: .4byte gUnknown_203B374 -_08039460: - movs r5, 0x1 - b _08039498 -_08039464: - ldr r0, [r4] - ldr r0, [r0] - cmp r0, 0x7 - beq _08039480 - cmp r0, 0x7 - bhi _08039476 - cmp r0, 0x6 - beq _08039484 - b _08039498 -_08039476: - cmp r0, 0x8 - beq _0803948E - cmp r0, 0x9 - beq _08039492 - b _08039498 -_08039480: - movs r5, 0x2 - b _08039498 -_08039484: - movs r0, 0 - bl sub_8095240 - movs r5, 0x4 - b _08039498 -_0803948E: - movs r5, 0x9 - b _08039498 -_08039492: - bl sub_80122A8 - movs r5, 0x2E -_08039498: - adds r0, r5, 0 - add sp, 0x4 - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_803941C - - thumb_func_start DrawLoadScreenText -DrawLoadScreenText: - push {r4-r7,lr} - mov r7, r8 - push {r7} - sub sp, 0x150 - bl sub_8011FA8 - mov r8, r0 - movs r0, 0 - bl sub_8008C54 - movs r0, 0 - bl sub_80073B8 - ldr r2, _0803952C - movs r4, 0 - str r4, [sp] - movs r0, 0x8 - movs r1, 0 - movs r3, 0 - bl xxx_call_draw_string - ldr r2, _08039530 - str r4, [sp] - movs r0, 0x8 - movs r1, 0xC - movs r3, 0 - bl xxx_call_draw_string - ldr r2, _08039534 - str r4, [sp] - movs r0, 0x8 - movs r1, 0x18 - movs r3, 0 - bl xxx_call_draw_string - ldr r2, _08039538 - str r4, [sp] - movs r0, 0x8 - movs r1, 0x24 - movs r3, 0 - bl xxx_call_draw_string - ldr r2, _0803953C - str r4, [sp] - movs r0, 0x8 - movs r1, 0x30 - movs r3, 0 - bl xxx_call_draw_string - ldr r2, _08039540 - str r4, [sp] - movs r0, 0x8 - movs r1, 0x3C - movs r3, 0 - bl xxx_call_draw_string - movs r0, 0 - bl sub_80023E4 - lsls r0, 24 - cmp r0, 0 - beq _08039544 - add r4, sp, 0x68 - adds r0, r4, 0 - bl sub_80920D8 - adds r2, r4, 0 - b _0803954E - .align 2, 0 -_0803952C: .4byte gUnknown_80E77BC -_08039530: .4byte gUnknown_80E77C4 -_08039534: .4byte gUnknown_80E77CC -_08039538: .4byte gUnknown_80E77D8 -_0803953C: .4byte gUnknown_80E77E4 -_08039540: .4byte gUnknown_80E77F0 -_08039544: - ldr r1, _08039588 - add r0, sp, 0x68 - bl strcpy - add r2, sp, 0x68 -_0803954E: - ldr r5, _0803958C - ldr r0, [r5] - movs r4, 0xD2 - lsls r4, 1 - adds r0, r4 - ldr r1, _08039590 - bl sub_800D158 - ldr r2, [r5] - adds r2, r4 - movs r0, 0 - str r0, [sp] - movs r0, 0x40 - movs r1, 0 - movs r3, 0 - bl xxx_call_draw_string - bl sub_808D33C - cmp r0, 0 - bne _08039598 - add r4, sp, 0x90 - ldr r1, _08039594 - adds r0, r4, 0 - movs r2, 0xA - bl sub_80922B4 - b _080395A6 - .align 2, 0 -_08039588: .4byte gUnknown_80E77F8 -_0803958C: .4byte gUnknown_203B374 -_08039590: .4byte gUnknown_80E7804 -_08039594: .4byte gUnknown_80E7808 -_08039598: - add r4, sp, 0x90 - adds r1, r0, 0 - adds r1, 0x4C - adds r0, r4, 0 - movs r2, 0xA - bl sub_80922B4 -_080395A6: - adds r2, r4, 0 - ldr r5, _080395F0 - ldr r0, [r5] - movs r4, 0xE4 - lsls r4, 1 - adds r0, r4 - ldr r6, _080395F4 - adds r1, r6, 0 - bl sub_800D158 - ldr r2, [r5] - adds r2, r4 - movs r0, 0 - str r0, [sp] - movs r0, 0x40 - movs r1, 0xC - movs r3, 0 - bl xxx_call_draw_string - movs r0, 0x1 - bl sub_8095324 - cmp r0, 0 - bne _080395E0 - movs r0, 0x7 - bl sub_8095324 - cmp r0, 0 - beq _08039606 -_080395E0: - ldr r0, _080395F8 - cmp r8, r0 - bne _080395FC - ldr r4, [r5] - movs r0, 0xF6 - lsls r0, 1 - adds r4, r0 - b _08039676 - .align 2, 0 -_080395F0: .4byte gUnknown_203B374 -_080395F4: .4byte gUnknown_80E7804 -_080395F8: .4byte 0x000f1207 -_080395FC: - ldr r0, [r5] - movs r1, 0xF6 - lsls r1, 1 - adds r0, r1 - b _08039690 -_08039606: - bl sub_8011C1C - cmp r0, 0x1 - beq _08039624 - cmp r0, 0x2 - beq _08039668 - ldr r0, [r5] - movs r2, 0xF6 - lsls r2, 1 - adds r0, r2 - ldr r1, _08039620 - b _08039692 - .align 2, 0 -_08039620: .4byte gUnknown_80E7824 -_08039624: - movs r0, 0 - movs r1, 0x18 - bl sub_8001658 - cmp r0, 0x7 - beq _08039658 - cmp r0, 0xB - beq _08039658 - bl sub_8098FB4 - adds r2, r0, 0 - add r0, sp, 0x4 - adds r1, r6, 0 - bl sub_800D158 - ldr r0, [r5] - movs r3, 0xF6 - lsls r3, 1 - adds r1, r0, r3 - adds r3, 0x24 - adds r2, r0, r3 - add r0, sp, 0x4 - movs r3, 0 - bl xxx_format_string - b _08039696 -_08039658: - ldr r0, _08039664 - ldr r0, [r0] - movs r1, 0xF6 - lsls r1, 1 - adds r0, r1 - b _08039690 - .align 2, 0 -_08039664: .4byte gUnknown_203B374 -_08039668: - ldr r0, _08039684 - cmp r8, r0 - bne _08039688 - ldr r4, [r5] - movs r2, 0xF6 - lsls r2, 1 - adds r4, r2 -_08039676: - bl sub_809769C - adds r1, r0, 0 - adds r0, r4, 0 - bl sub_8090228 - b _08039696 - .align 2, 0 -_08039684: .4byte 0x000f1207 -_08039688: - ldr r0, [r5] - movs r3, 0xF6 - lsls r3, 1 - adds r0, r3 -_08039690: - ldr r1, _0803974C -_08039692: - bl sub_800D158 -_08039696: - ldr r7, _08039750 - ldr r2, [r7] - movs r0, 0xF6 - lsls r0, 1 - adds r2, r0 - movs r6, 0 - str r6, [sp] - movs r0, 0x40 - movs r1, 0x18 - movs r3, 0 - bl xxx_call_draw_string - ldr r0, _08039754 - ldr r0, [r0] - add r1, sp, 0x144 - add r2, sp, 0x148 - add r3, sp, 0x14C - bl DeconstructPlayTime - ldr r0, [r7] - movs r5, 0x84 - lsls r5, 2 - adds r0, r5 - ldr r1, _08039758 - add r2, sp, 0x144 - ldr r2, [r2] - add r3, sp, 0x148 - ldr r3, [r3] - add r4, sp, 0x14C - ldr r4, [r4] - str r4, [sp] - bl sub_800D158 - ldr r2, [r7] - adds r2, r5 - str r6, [sp] - movs r0, 0x40 - movs r1, 0x24 - movs r3, 0 - bl xxx_call_draw_string - bl sub_8097778 - adds r2, r0, 0 - ldr r0, [r7] - movs r4, 0x8D - lsls r4, 2 - adds r0, r4 - ldr r1, _0803975C - bl sub_800D158 - ldr r2, [r7] - adds r2, r4 - str r6, [sp] - movs r0, 0x40 - movs r1, 0x30 - movs r3, 0 - bl xxx_call_draw_string - ldr r0, _08039760 - cmp r8, r0 - bne _0803976C - ldr r0, _08039764 - ldr r6, [r0] - movs r1, 0xC - ldrsh r0, [r6, r1] - cmp r0, 0 - beq _0803976C - add r5, sp, 0x130 - adds r1, r0, 0 - adds r0, r5, 0 - bl sub_808D930 - add r4, sp, 0xE0 - adds r1, r6, 0 - adds r1, 0x50 - adds r0, r4, 0 - movs r2, 0xA - bl sub_80922B4 - ldr r0, [r7] - movs r3, 0x96 - lsls r3, 2 - adds r0, r3 - ldr r1, _08039768 - adds r2, r4, 0 - adds r3, r5, 0 - bl sub_800D158 - b _0803977C - .align 2, 0 -_0803974C: .4byte gUnknown_80E780C -_08039750: .4byte gUnknown_203B374 -_08039754: .4byte gPlayTimeRef -_08039758: .4byte gUnknown_80E7838 -_0803975C: .4byte gUnknown_80E7848 -_08039760: .4byte 0x000f1207 -_08039764: .4byte gUnknown_203B484 -_08039768: .4byte gUnknown_80E784C -_0803976C: - ldr r0, _080397AC - ldr r0, [r0] - movs r1, 0x96 - lsls r1, 2 - adds r0, r1 - ldr r1, _080397B0 - bl sub_800D158 -_0803977C: - ldr r0, _080397AC - ldr r2, [r0] - movs r3, 0x96 - lsls r3, 2 - adds r2, r3 - movs r0, 0 - str r0, [sp] - movs r0, 0x40 - movs r1, 0x3C - movs r3, 0 - bl xxx_call_draw_string - bl sub_80397B4 - movs r0, 0 - bl sub_80073E0 - add sp, 0x150 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080397AC: .4byte gUnknown_203B374 -_080397B0: .4byte gUnknown_80E7854 - thumb_func_end DrawLoadScreenText - - thumb_func_start sub_80397B4 -sub_80397B4: - push {r4-r7,lr} - mov r7, r8 - push {r7} - sub sp, 0xC - ldr r0, _08039834 - ldr r1, _08039838 - bl OpenFileAndGetFileDataPtr - adds r6, r0, 0 - movs r4, 0 -_080397C8: - adds r0, r4, 0 - adds r0, 0xB0 - ldr r1, [r6, 0x4] - lsls r2, r4, 2 - ldr r1, [r1, 0x4] - adds r1, r2 - bl SetBGPaletteBufferColorArray - adds r4, 0x1 - cmp r4, 0x3F - ble _080397C8 - movs r7, 0x8 - movs r0, 0x49 - mov r8, r0 - movs r4, 0 -_080397E6: - ldr r0, _0803983C - lsls r5, r4, 2 - adds r0, r5, r0 - ldr r0, [r0] - bl sub_80023E4 - lsls r0, 24 - cmp r0, 0 - beq _0803981C - movs r0, 0x10 - str r0, [sp] - ldr r0, [r6, 0x4] - lsls r1, r4, 7 - ldr r0, [r0] - adds r0, r1 - str r0, [sp, 0x4] - ldr r0, _08039840 - adds r0, r5, r0 - ldr r0, [r0] - str r0, [sp, 0x8] - movs r0, 0 - adds r1, r7, 0 - mov r2, r8 - movs r3, 0x10 - bl sub_8007E20 - adds r7, 0x10 -_0803981C: - adds r4, 0x1 - cmp r4, 0xB - ble _080397E6 - adds r0, r6, 0 - bl CloseFile - add sp, 0xC - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08039834: .4byte gUnknown_80E785C -_08039838: .4byte gTitleMenuFileArchive -_0803983C: .4byte gUnknown_203B3B8 -_08039840: .4byte gUnknown_203B388 - thumb_func_end sub_80397B4 - - thumb_func_start sub_8039844 -sub_8039844: - push {r4,r5,lr} - bl sub_8011FA8 - adds r5, r0, 0 - movs r4, 0 - movs r0, 0x1 - bl sub_8095324 - cmp r0, 0 - bne _0803986A - movs r0, 0x7 - bl sub_8095324 - cmp r0, 0 - bne _0803986A - bl sub_8011C1C - cmp r0, 0x2 - bne _08039872 -_0803986A: - ldr r0, _0803987C - cmp r5, r0 - bne _08039872 - movs r4, 0x1 -_08039872: - adds r0, r4, 0 - pop {r4,r5} - pop {r1} - bx r1 - .align 2, 0 -_0803987C: .4byte 0x000f1207 - thumb_func_end sub_8039844 - .align 2,0 diff --git a/asm/other_menus.s b/asm/other_menus.s new file mode 100644 index 0000000..39b5771 --- /dev/null +++ b/asm/other_menus.s @@ -0,0 +1,3168 @@ + .include "constants/gba_constants.inc" + .include "asm/macros.inc" + + .syntax unified + + .text + + thumb_func_start sub_8036FDC +sub_8036FDC: + push {r4-r7,lr} + mov r7, r8 + push {r7} + sub sp, 0x10 + adds r6, r0, 0 + bl ResetUnusedInputStruct + movs r0, 0 + movs r1, 0x1 + movs r2, 0x1 + bl sub_800641C + movs r0, 0 + bl ResetSprites + ldr r5, _080370C0 + ldr r0, [r5] + cmp r0, 0 + bne _08037016 + ldr r4, _080370C4 + adds r0, r4, 0 + movs r1, 0x8 + bl MemoryAlloc + str r0, [r5] + movs r1, 0 + adds r2, r4, 0 + bl MemoryFill8 +_08037016: + ldr r0, [r5] + str r6, [r0] + movs r1, 0 + str r1, [r0, 0x4] + str r1, [r0, 0x8] + movs r3, 0 + adds r7, r5, 0 + movs r6, 0xE0 + lsls r6, 1 + movs r4, 0 + movs r5, 0xDE + lsls r5, 1 +_0803702E: + ldr r0, [r7] + lsls r2, r3, 3 + adds r1, r0, r6 + adds r1, r2 + str r4, [r1] + adds r0, r2 + adds r0, r5 + strb r4, [r0] + adds r3, 0x1 + cmp r3, 0x1 + ble _0803702E + ldr r0, _080370C0 + mov r12, r0 + movs r5, 0xAE + lsls r5, 1 + mov r8, r5 + ldr r4, _080370C8 + movs r3, 0 + movs r2, 0x3 +_08037054: + mov r6, r12 + ldr r1, [r6] + adds r1, r3 + add r1, r8 + adds r0, r4, 0 + ldm r0!, {r5-r7} + stm r1!, {r5-r7} + ldm r0!, {r5-r7} + stm r1!, {r5-r7} + adds r3, 0x18 + subs r2, 0x1 + cmp r2, 0 + bge _08037054 + movs r6, 0 + bl ResetUnusedInputStruct + ldr r5, _080370C0 + ldr r0, [r5] + movs r4, 0xAE + lsls r4, 1 + adds r0, r4 + movs r1, 0x1 + movs r2, 0x1 + bl sub_800641C + ldr r1, [r5] + adds r0, r1, 0 + adds r0, 0x1C + adds r1, r4 + ldr r3, _080370CC + ldr r2, _080370D0 + str r2, [sp] + str r6, [sp, 0x4] + movs r2, 0x6 + str r2, [sp, 0x8] + str r6, [sp, 0xC] + movs r2, 0 + bl SetMenuItems + ldr r0, [r5] + adds r0, 0x1C + movs r1, 0 + movs r2, 0x1 + bl sub_8035CF4 + bl sub_80376CC + add sp, 0x10 + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080370C0: .4byte gUnknown_203B35C +_080370C4: .4byte 0x00000504 +_080370C8: .4byte gUnknown_80E653C +_080370CC: .4byte gUnknown_80E6CD0 +_080370D0: .4byte gUnknown_80E6CE8 + thumb_func_end sub_8036FDC + + thumb_func_start sub_80370D4 +sub_80370D4: + push {r4,lr} + ldr r4, _080370EC + ldr r0, [r4] + cmp r0, 0 + beq _080370E6 + bl MemoryFree + movs r0, 0 + str r0, [r4] +_080370E6: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080370EC: .4byte gUnknown_203B35C + thumb_func_end sub_80370D4 + + thumb_func_start sub_80370F0 +sub_80370F0: + push {r4,r5,lr} + sub sp, 0x4 + movs r0, 0x4 + str r0, [sp] + ldr r5, _08037110 + ldr r4, _08037114 + ldr r1, [r4] + ldr r0, [r1, 0x8] + cmp r0, 0x1 + beq _08037148 + cmp r0, 0x1 + bcc _08037118 + cmp r0, 0x2 + beq _08037158 + b _080371A8 + .align 2, 0 +_08037110: .4byte 0x0000ffdc +_08037114: .4byte gUnknown_203B35C +_08037118: + adds r0, r1, 0 + adds r0, 0x1C + bl sub_80130A8 + lsls r0, 24 + cmp r0, 0 + bne _08037130 + ldr r0, [r4] + adds r0, 0x1C + mov r1, sp + bl sub_8013114 +_08037130: + ldr r0, [sp] + cmp r0, 0x4 + bne _0803713C + bl sub_8037748 + b _080371A8 +_0803713C: + ldr r1, [r4] + movs r0, 0x1 + str r0, [r1, 0x8] + bl sub_8037900 + b _080371A8 +_08037148: + bl sub_80376CC + ldr r1, [r4] + movs r0, 0x2 + str r0, [r1, 0x8] + bl sub_80371B8 + b _080371A8 +_08037158: + ldr r0, [r1] + cmp r0, 0x1 + bhi _08037172 + ldr r0, [r1, 0x4] + cmp r0, 0 + bne _08037172 + movs r0, 0 + bl sub_8037C10 + cmp r0, 0 + bne _08037172 + movs r0, 0x29 + b _080371AA +_08037172: + ldr r4, _080371B4 + ldr r0, [r4] + adds r0, 0x1C + bl sub_80130A8 + lsls r0, 24 + cmp r0, 0 + bne _0803718C + ldr r0, [r4] + adds r0, 0x1C + mov r1, sp + bl sub_8013114 +_0803718C: + ldr r0, [sp] + cmp r0, 0x4 + beq _080371A4 + movs r0, 0x3 + bl PlayMenuSoundEffect + bl sub_8037798 + adds r5, r0, 0 + ldr r1, [r4] + movs r0, 0x4 + str r0, [r1, 0x8] +_080371A4: + bl sub_8037748 +_080371A8: + adds r0, r5, 0 +_080371AA: + add sp, 0x4 + pop {r4,r5} + pop {r1} + bx r1 + .align 2, 0 +_080371B4: .4byte gUnknown_203B35C + thumb_func_end sub_80370F0 + + thumb_func_start sub_80371B8 +sub_80371B8: + push {r4-r7,lr} + sub sp, 0x10 + movs r6, 0 + movs r5, 0 + bl sub_8037400 + ldr r7, _0803721C + ldr r1, [r7] + ldr r0, [r1] + cmp r0, 0x1 + bhi _08037228 + ldr r0, [r1, 0x4] + cmp r0, 0 + bne _08037228 + movs r0, 0 + bl sub_8037C10 + cmp r0, 0 + bne _080371E0 + b _080373AC +_080371E0: + bl sub_80376CC + ldr r0, [r7] + movs r4, 0xAE + lsls r4, 1 + adds r0, r4 + movs r1, 0 + bl sub_8035CC0 + ldr r1, [r7] + adds r0, r1, 0 + adds r0, 0x1C + adds r1, r4 + ldr r3, _08037220 + ldr r2, _08037224 + str r2, [sp] + str r6, [sp, 0x4] + movs r2, 0x6 + str r2, [sp, 0x8] + str r6, [sp, 0xC] + movs r2, 0 + bl SetMenuItems + ldr r0, [r7] + adds r0, 0x1C + movs r1, 0 + movs r2, 0x1 + bl sub_8035CF4 + b _080373AC + .align 2, 0 +_0803721C: .4byte gUnknown_203B35C +_08037220: .4byte gUnknown_80E6C50 +_08037224: .4byte gUnknown_80E6C68 +_08037228: + bl sub_80376CC + ldr r4, _08037250 + ldr r0, [r4] + movs r1, 0xAE + lsls r1, 1 + adds r0, r1 + movs r1, 0 + bl sub_8035CC0 + ldr r0, [r4] + ldr r0, [r0, 0x4] + cmp r0, 0xF + bls _08037246 + b _0803734C +_08037246: + lsls r0, 2 + ldr r1, _08037254 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_08037250: .4byte gUnknown_203B35C +_08037254: .4byte _08037258 + .align 2, 0 +_08037258: + .4byte _08037298 + .4byte _080372D8 + .4byte _080372B8 + .4byte _080372A8 + .4byte _080372C8 + .4byte _080372D8 + .4byte _080372E8 + .4byte _080372F8 + .4byte _0803734C + .4byte _08037308 + .4byte _0803734C + .4byte _08037318 + .4byte _0803734C + .4byte _08037328 + .4byte _08037338 + .4byte _08037348 +_08037298: + ldr r6, _080372A0 + ldr r5, _080372A4 + b _0803734C + .align 2, 0 +_080372A0: .4byte gUnknown_80E66BC +_080372A4: .4byte gUnknown_80E66D4 +_080372A8: + ldr r6, _080372B0 + ldr r5, _080372B4 + b _0803734C + .align 2, 0 +_080372B0: .4byte gUnknown_80E6D54 +_080372B4: .4byte gUnknown_80E6D6C +_080372B8: + ldr r6, _080372C0 + ldr r5, _080372C4 + b _0803734C + .align 2, 0 +_080372C0: .4byte gUnknown_80E6DDC +_080372C4: .4byte gUnknown_80E6DF4 +_080372C8: + ldr r6, _080372D0 + ldr r5, _080372D4 + b _0803734C + .align 2, 0 +_080372D0: .4byte gUnknown_80E67D4 +_080372D4: .4byte gUnknown_80E67EC +_080372D8: + ldr r6, _080372E0 + ldr r5, _080372E4 + b _0803734C + .align 2, 0 +_080372E0: .4byte gUnknown_80E6748 +_080372E4: .4byte gUnknown_80E6760 +_080372E8: + ldr r6, _080372F0 + ldr r5, _080372F4 + b _0803734C + .align 2, 0 +_080372F0: .4byte gUnknown_80E689C +_080372F4: .4byte gUnknown_80E68B4 +_080372F8: + ldr r6, _08037300 + ldr r5, _08037304 + b _0803734C + .align 2, 0 +_08037300: .4byte gUnknown_80E6938 +_08037304: .4byte gUnknown_80E6950 +_08037308: + ldr r6, _08037310 + ldr r5, _08037314 + b _0803734C + .align 2, 0 +_08037310: .4byte gUnknown_80E69B0 +_08037314: .4byte gUnknown_80E69C8 +_08037318: + ldr r6, _08037320 + ldr r5, _08037324 + b _0803734C + .align 2, 0 +_08037320: .4byte gUnknown_80E6A10 +_08037324: .4byte gUnknown_80E6A28 +_08037328: + ldr r6, _08037330 + ldr r5, _08037334 + b _0803734C + .align 2, 0 +_08037330: .4byte gUnknown_80E6A74 +_08037334: .4byte gUnknown_80E6A8C +_08037338: + ldr r6, _08037340 + ldr r5, _08037344 + b _0803734C + .align 2, 0 +_08037340: .4byte gUnknown_80E6B78 +_08037344: .4byte gUnknown_80E6B90 +_08037348: + ldr r6, _080373B4 + ldr r5, _080373B8 +_0803734C: + ldr r4, _080373BC + ldr r1, [r4] + adds r0, r1, 0 + adds r0, 0x1C + movs r2, 0xAE + lsls r2, 1 + adds r1, r2 + str r5, [sp] + movs r3, 0 + str r3, [sp, 0x4] + movs r2, 0x6 + str r2, [sp, 0x8] + str r3, [sp, 0xC] + movs r2, 0 + adds r3, r6, 0 + bl SetMenuItems + ldr r0, [r4] + adds r0, 0x1C + movs r1, 0 + movs r2, 0x1 + bl sub_8035CF4 + ldr r4, [r4] + ldr r0, [r4, 0x4] + cmp r0, 0 + beq _080373AC + ldr r0, [r4] + cmp r0, 0 + bne _080373AC + bl sub_8035D94 + adds r2, r0, 0 + ldrb r0, [r2] + cmp r0, 0 + beq _080373AC + ldr r3, [r2, 0x4] + cmp r3, 0 + beq _080373AC + ldr r0, _080373C0 + ldr r1, [r0] + ldrb r0, [r2] + lsls r0, 1 + adds r1, 0x50 + adds r1, r0 + ldrh r0, [r1] + adds r0, r3 + strh r0, [r1] +_080373AC: + add sp, 0x10 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080373B4: .4byte gUnknown_80E6BF4 +_080373B8: .4byte gUnknown_80E6C0C +_080373BC: .4byte gUnknown_203B35C +_080373C0: .4byte gUnknown_203B460 + thumb_func_end sub_80371B8 + + thumb_func_start sub_80373C4 +sub_80373C4: + push {lr} + movs r0, 0 + movs r1, 0 + bl sub_8005838 + bl sub_80060EC + bl sub_800CB20 + bl LoadBufferedInputs + bl TransferBGPaletteBuffer + bl xxx_call_update_bg_vram + bl sub_8009908 + bl xxx_call_update_bg_sound_input + movs r0, 0 + bl ResetSprites + pop {r0} + bx r0 + thumb_func_end sub_80373C4 + + thumb_func_start sub_80373F4 +sub_80373F4: + ldr r0, _080373FC + ldr r0, [r0] + bx lr + .align 2, 0 +_080373FC: .4byte gUnknown_203B35C + thumb_func_end sub_80373F4 + + thumb_func_start sub_8037400 +sub_8037400: + push {r4-r6,lr} + movs r6, 0 + movs r5, 0 + bl sub_8037810 + bl sub_8011830 + ldr r4, _08037434 + ldr r0, [r4] + ldr r0, [r0] + bl sub_8037B28 + ldr r4, [r4] + str r0, [r4, 0x4] + cmp r0, 0 + beq _08037422 + b _080376BE +_08037422: + ldr r0, [r4] + cmp r0, 0xA + bls _0803742A + b _080375E8 +_0803742A: + lsls r0, 2 + ldr r1, _08037438 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_08037434: .4byte gUnknown_203B35C +_08037438: .4byte _0803743C + .align 2, 0 +_0803743C: + .4byte _08037494 + .4byte _080374B8 + .4byte _08037534 + .4byte _0803751C + .4byte _0803756C + .4byte _080375D8 + .4byte _080374E4 + .4byte _080374D0 + .4byte _080375E8 + .4byte _08037480 + .4byte _08037468 +_08037468: + ldr r0, _0803747C + ldr r0, [r0] + movs r1, 0xE7 + lsls r1, 2 + adds r6, r0, r1 + movs r2, 0x8A + lsls r2, 3 + adds r5, r0, r2 + b _080375E8 + .align 2, 0 +_0803747C: .4byte gUnknown_203B35C +_08037480: + ldr r0, _08037490 + ldr r0, [r0] + movs r3, 0xE7 + lsls r3, 2 + adds r6, r0, r3 + movs r4, 0x8A + lsls r4, 3 + b _080375E6 + .align 2, 0 +_08037490: .4byte gUnknown_203B35C +_08037494: + bl sub_8035D94 + ldr r1, _080374B4 + ldr r3, [r1] + movs r5, 0xDE + lsls r5, 1 + adds r2, r3, r5 + ldr r1, [r0, 0x4] + ldr r0, [r0] + str r0, [r2] + str r1, [r2, 0x4] + adds r6, r2, 0 + movs r0, 0xE2 + lsls r0, 1 + adds r5, r3, r0 + b _080375E8 + .align 2, 0 +_080374B4: .4byte gUnknown_203B35C +_080374B8: + ldr r0, _080374CC + ldr r0, [r0] + movs r1, 0xDE + lsls r1, 1 + adds r6, r0, r1 + movs r2, 0xE2 + lsls r2, 1 + adds r5, r0, r2 + b _080375E8 + .align 2, 0 +_080374CC: .4byte gUnknown_203B35C +_080374D0: + ldr r0, _080374E0 + ldr r0, [r0] + movs r3, 0xE6 + lsls r3, 1 + adds r6, r0, r3 + movs r4, 0xFE + lsls r4, 1 + b _080375E6 + .align 2, 0 +_080374E0: .4byte gUnknown_203B35C +_080374E4: + bl sub_8035D74 + lsls r0, 24 + lsrs r0, 24 + bl sub_8095228 + ldr r3, _08037518 + ldr r1, [r3] + movs r2, 0xE6 + lsls r2, 1 + adds r1, r2 + ldm r0!, {r4-r6} + stm r1!, {r4-r6} + ldm r0!, {r4-r6} + stm r1!, {r4-r6} + ldm r0!, {r4-r6} + stm r1!, {r4-r6} + ldm r0!, {r4-r6} + stm r1!, {r4-r6} + ldr r0, [r3] + adds r6, r0, r2 + movs r1, 0xFE + lsls r1, 1 + adds r5, r0, r1 + b _080375E8 + .align 2, 0 +_08037518: .4byte gUnknown_203B35C +_0803751C: + ldr r0, _08037530 + ldr r0, [r0] + movs r2, 0x8B + lsls r2, 2 + adds r6, r0, r2 + movs r3, 0x97 + lsls r3, 2 + adds r5, r0, r3 + b _080375E8 + .align 2, 0 +_08037530: .4byte gUnknown_203B35C +_08037534: + bl sub_8035D74 + lsls r0, 24 + lsrs r0, 24 + bl sub_8095228 + ldr r3, _08037568 + ldr r1, [r3] + movs r2, 0x8B + lsls r2, 2 + adds r1, r2 + ldm r0!, {r4-r6} + stm r1!, {r4-r6} + ldm r0!, {r4-r6} + stm r1!, {r4-r6} + ldm r0!, {r4-r6} + stm r1!, {r4-r6} + ldm r0!, {r4-r6} + stm r1!, {r4-r6} + ldr r0, [r3] + adds r6, r0, r2 + movs r1, 0x97 + lsls r1, 2 + adds r5, r0, r1 + b _080375E8 + .align 2, 0 +_08037568: .4byte gUnknown_203B35C +_0803756C: + bl sub_8035D74 + lsls r0, 24 + lsrs r0, 24 + bl sub_8095228 + ldr r4, _080375CC + ldr r1, [r4] + movs r5, 0xA3 + lsls r5, 2 + adds r1, r5 + ldm r0!, {r2,r3,r6} + stm r1!, {r2,r3,r6} + ldm r0!, {r2,r3,r6} + stm r1!, {r2,r3,r6} + ldm r0!, {r2,r3,r6} + stm r1!, {r2,r3,r6} + ldm r0!, {r2,r3,r6} + stm r1!, {r2,r3,r6} + bl sub_8035D3C + lsls r0, 16 + ldr r1, _080375D0 + cmp r0, r1 + beq _080375BE + bl sub_8035D3C + ldr r3, [r4] + movs r1, 0xAF + lsls r1, 2 + adds r3, r1 + ldr r1, _080375D4 + ldr r1, [r1] + lsls r0, 16 + asrs r0, 16 + movs r2, 0x58 + muls r0, r2 + adds r1, r0 + adds r0, r3, 0 + bl memcpy +_080375BE: + ldr r0, [r4] + adds r6, r0, r5 + movs r2, 0xC5 + lsls r2, 2 + adds r5, r0, r2 + b _080375E8 + .align 2, 0 +_080375CC: .4byte gUnknown_203B35C +_080375D0: .4byte 0xffff0000 +_080375D4: .4byte gUnknown_203B45C +_080375D8: + ldr r0, _08037610 + ldr r0, [r0] + movs r3, 0xA3 + lsls r3, 2 + adds r6, r0, r3 + movs r4, 0xC5 + lsls r4, 2 +_080375E6: + adds r5, r0, r4 +_080375E8: + ldr r4, _08037610 + ldr r0, [r4] + ldr r0, [r0] + adds r1, r6, 0 + adds r2, r5, 0 + bl sub_8037D64 + ldr r1, [r4] + str r0, [r1, 0x4] + cmp r0, 0 + bne _080376BE + ldr r0, [r1] + cmp r0, 0xA + bhi _080376AE + lsls r0, 2 + ldr r1, _08037614 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_08037610: .4byte gUnknown_203B35C +_08037614: .4byte _08037618 + .align 2, 0 +_08037618: + .4byte _08037644 + .4byte _08037644 + .4byte _08037658 + .4byte _08037658 + .4byte _0803766C + .4byte _0803766C + .4byte _08037684 + .4byte _08037684 + .4byte _080376AE + .4byte _0803769C + .4byte _0803769C +_08037644: + ldr r0, _08037654 + ldr r2, [r0] + movs r5, 0xDE + lsls r5, 1 + adds r6, r2, r5 + movs r1, 0xE2 + lsls r1, 1 + b _0803767A + .align 2, 0 +_08037654: .4byte gUnknown_203B35C +_08037658: + ldr r0, _08037668 + ldr r2, [r0] + movs r3, 0x8B + lsls r3, 2 + adds r6, r2, r3 + movs r4, 0x97 + lsls r4, 2 + b _08037692 + .align 2, 0 +_08037668: .4byte gUnknown_203B35C +_0803766C: + ldr r0, _08037680 + ldr r2, [r0] + movs r5, 0xA3 + lsls r5, 2 + adds r6, r2, r5 + movs r1, 0xC5 + lsls r1, 2 +_0803767A: + adds r5, r2, r1 + adds r4, r0, 0 + b _080376AE + .align 2, 0 +_08037680: .4byte gUnknown_203B35C +_08037684: + ldr r0, _08037698 + ldr r2, [r0] + movs r3, 0xE6 + lsls r3, 1 + adds r6, r2, r3 + movs r4, 0xFE + lsls r4, 1 +_08037692: + adds r5, r2, r4 + adds r4, r0, 0 + b _080376AE + .align 2, 0 +_08037698: .4byte gUnknown_203B35C +_0803769C: + ldr r1, _080376C8 + ldr r0, [r1] + movs r5, 0xE7 + lsls r5, 2 + adds r6, r0, r5 + movs r2, 0x8A + lsls r2, 3 + adds r5, r0, r2 + adds r4, r1, 0 +_080376AE: + ldr r0, [r4] + ldr r0, [r0] + adds r1, r6, 0 + adds r2, r5, 0 + bl sub_80381F4 + ldr r1, [r4] + str r0, [r1, 0x4] +_080376BE: + bl xxx_call_start_bg_music + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080376C8: .4byte gUnknown_203B35C + thumb_func_end sub_8037400 + + thumb_func_start sub_80376CC +sub_80376CC: + push {r4,lr} + ldr r0, _08037728 + ldr r3, [r0] + ldrh r1, [r3, 0xC] + ldr r0, _0803772C + ands r0, r1 + ldr r1, _08037730 + ands r0, r1 + ldr r4, _08037734 + ands r0, r4 + ldr r1, _08037738 + ands r0, r1 + ldr r1, _0803773C + ands r0, r1 + movs r2, 0x80 + lsls r2, 7 + ldr r1, _08037740 + ands r0, r1 + orrs r0, r2 + strh r0, [r3, 0xC] + movs r2, 0xFC + lsls r2, 2 + ldrh r1, [r3, 0x10] + movs r0, 0xFC + lsls r0, 8 + ands r0, r1 + orrs r0, r2 + ands r0, r4 + movs r2, 0xF + movs r4, 0xF0 + lsls r4, 8 + ldr r1, _08037744 + ands r0, r1 + orrs r0, r4 + strh r0, [r3, 0x10] + movs r0, 0 + strh r0, [r3, 0xE] + movs r1, 0xC0 + lsls r1, 4 + ldrh r0, [r3, 0x12] + ands r2, r0 + orrs r2, r1 + strh r2, [r3, 0x12] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08037728: .4byte gUnknown_203B35C +_0803772C: .4byte 0x0000feff +_08037730: .4byte 0x0000fdff +_08037734: .4byte 0x0000f3ff +_08037738: .4byte 0x0000efff +_0803773C: .4byte 0x0000dfff +_08037740: .4byte 0x00003fff +_08037744: .4byte 0x00000fff + thumb_func_end sub_80376CC + + thumb_func_start sub_8037748 +sub_8037748: + push {r4,lr} + ldr r4, _08037794 + ldr r3, [r4] + ldrh r1, [r3, 0xE] + movs r0, 0xFE + lsls r0, 8 + ands r0, r1 + movs r1, 0x70 + orrs r0, r1 + strh r0, [r3, 0xE] + movs r2, 0xD0 + lsls r2, 3 + ldrh r1, [r3, 0x12] + movs r0, 0xF + ands r0, r1 + orrs r0, r2 + strh r0, [r3, 0x12] + ldr r0, [r3, 0x14] + movs r1, 0x8 + ands r0, r1 + cmp r0, 0 + beq _08037782 + adds r0, r3, 0 + adds r0, 0xC + adds r1, 0xF8 + movs r2, 0 + movs r3, 0 + bl AddSprite +_08037782: + bl xxx_draw_string_80144C4 + ldr r1, [r4] + ldr r0, [r1, 0x14] + adds r0, 0x1 + str r0, [r1, 0x14] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08037794: .4byte gUnknown_203B35C + thumb_func_end sub_8037748 + + thumb_func_start sub_8037798 +sub_8037798: + push {lr} + ldr r2, _080377B4 + ldr r1, _080377B8 + ldr r0, [r1] + ldr r0, [r0] + adds r3, r1, 0 + cmp r0, 0xA + bhi _0803780A + lsls r0, 2 + ldr r1, _080377BC + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080377B4: .4byte 0x0000ffdc +_080377B8: .4byte gUnknown_203B35C +_080377BC: .4byte _080377C0 + .align 2, 0 +_080377C0: + .4byte _080377EC + .4byte _080377EC + .4byte _080377F0 + .4byte _080377F0 + .4byte _080377F0 + .4byte _080377F0 + .4byte _080377F0 + .4byte _080377F0 + .4byte _0803780A + .4byte _080377FE + .4byte _080377FE +_080377EC: + movs r2, 0x1 + b _0803780A +_080377F0: + ldr r0, [r3] + ldr r0, [r0, 0x4] + movs r2, 0x1 + cmp r0, 0 + bne _0803780A + movs r2, 0x2A + b _0803780A +_080377FE: + ldr r0, [r3] + ldr r0, [r0, 0x4] + movs r2, 0xD + cmp r0, 0 + bne _0803780A + movs r2, 0x2B +_0803780A: + adds r0, r2, 0 + pop {r1} + bx r1 + thumb_func_end sub_8037798 + + thumb_func_start sub_8037810 +sub_8037810: + push {r4-r6,lr} + ldr r6, _080378FC + ldr r0, [r6] + movs r5, 0xDE + lsls r5, 1 + adds r0, r5 + movs r1, 0 + movs r2, 0x8 + bl MemoryFill8 + ldr r0, [r6] + movs r4, 0xE2 + lsls r4, 1 + adds r0, r4 + movs r1, 0 + movs r2, 0x8 + bl MemoryFill8 + ldr r0, [r6] + adds r5, r0, r5 + movs r1, 0 + movs r2, 0 + str r1, [r5] + str r2, [r5, 0x4] + adds r4, r0, r4 + str r1, [r4] + str r2, [r4, 0x4] + movs r2, 0xE6 + lsls r2, 1 + adds r0, r2 + movs r1, 0 + movs r2, 0x30 + bl MemoryFill8 + ldr r0, [r6] + movs r3, 0xFE + lsls r3, 1 + adds r0, r3 + movs r1, 0 + movs r2, 0x30 + bl MemoryFill8 + ldr r0, [r6] + movs r1, 0x8B + lsls r1, 2 + adds r0, r1 + movs r1, 0 + movs r2, 0x30 + bl MemoryFill8 + ldr r0, [r6] + movs r2, 0x97 + lsls r2, 2 + adds r0, r2 + movs r1, 0 + movs r2, 0x30 + bl MemoryFill8 + ldr r0, [r6] + movs r3, 0xA3 + lsls r3, 2 + adds r0, r3 + movs r1, 0 + movs r2, 0x30 + bl MemoryFill8 + ldr r0, [r6] + movs r1, 0xC5 + lsls r1, 2 + adds r0, r1 + movs r1, 0 + movs r2, 0x30 + bl MemoryFill8 + ldr r0, [r6] + movs r2, 0xAF + lsls r2, 2 + adds r0, r2 + movs r1, 0 + movs r2, 0x58 + bl MemoryFill8 + ldr r0, [r6] + movs r3, 0xD1 + lsls r3, 2 + adds r0, r3 + movs r1, 0 + movs r2, 0x58 + bl MemoryFill8 + ldr r0, [r6] + movs r1, 0xE7 + lsls r1, 2 + adds r0, r1 + movs r1, 0 + movs r2, 0xB4 + bl MemoryFill8 + ldr r0, [r6] + movs r2, 0x8A + lsls r2, 3 + adds r0, r2 + movs r1, 0 + movs r2, 0xB4 + bl MemoryFill8 + ldr r2, [r6] + movs r3, 0xB1 + lsls r3, 2 + adds r0, r2, r3 + movs r1, 0 + strh r1, [r0] + adds r3, 0x88 + adds r0, r2, r3 + strh r1, [r0] + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080378FC: .4byte gUnknown_203B35C + thumb_func_end sub_8037810 + + thumb_func_start sub_8037900 +sub_8037900: + push {r4,lr} + sub sp, 0x10 + ldr r4, _08037928 + ldr r0, [r4] + movs r1, 0xAE + lsls r1, 1 + adds r0, r1 + movs r1, 0 + bl sub_8035CC0 + ldr r0, [r4] + ldr r0, [r0] + cmp r0, 0xA + bls _0803791E + b _08037A14 +_0803791E: + lsls r0, 2 + ldr r1, _0803792C + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_08037928: .4byte gUnknown_203B35C +_0803792C: .4byte _08037930 + .align 2, 0 +_08037930: + .4byte _0803795C + .4byte _0803795C + .4byte _0803797C + .4byte _0803797C + .4byte _0803799C + .4byte _0803799C + .4byte _080379BC + .4byte _080379BC + .4byte _08037A14 + .4byte _080379F0 + .4byte _080379F0 +_0803795C: + ldr r0, _08037970 + ldr r1, [r0] + adds r0, r1, 0 + adds r0, 0x1C + movs r2, 0xAE + lsls r2, 1 + adds r1, r2 + ldr r3, _08037974 + ldr r2, _08037978 + b _080379CE + .align 2, 0 +_08037970: .4byte gUnknown_203B35C +_08037974: .4byte gUnknown_80E6554 +_08037978: .4byte gUnknown_80E656C +_0803797C: + ldr r0, _08037990 + ldr r1, [r0] + adds r0, r1, 0 + adds r0, 0x1C + movs r2, 0xAE + lsls r2, 1 + adds r1, r2 + ldr r3, _08037994 + ldr r2, _08037998 + b _080379CE + .align 2, 0 +_08037990: .4byte gUnknown_203B35C +_08037994: .4byte gUnknown_80E6554 +_08037998: .4byte gUnknown_80E65D8 +_0803799C: + ldr r0, _080379B0 + ldr r1, [r0] + adds r0, r1, 0 + adds r0, 0x1C + movs r2, 0xAE + lsls r2, 1 + adds r1, r2 + ldr r3, _080379B4 + ldr r2, _080379B8 + b _080379CE + .align 2, 0 +_080379B0: .4byte gUnknown_203B35C +_080379B4: .4byte gUnknown_80E6554 +_080379B8: .4byte gUnknown_80E661C +_080379BC: + ldr r0, _080379E4 + ldr r1, [r0] + adds r0, r1, 0 + adds r0, 0x1C + movs r2, 0xAE + lsls r2, 1 + adds r1, r2 + ldr r3, _080379E8 + ldr r2, _080379EC +_080379CE: + str r2, [sp] + movs r4, 0 + str r4, [sp, 0x4] + movs r2, 0x6 + str r2, [sp, 0x8] + str r4, [sp, 0xC] + movs r2, 0 + bl SetMenuItems + b _08037A14 + .align 2, 0 +_080379E4: .4byte gUnknown_203B35C +_080379E8: .4byte gUnknown_80E6554 +_080379EC: .4byte gUnknown_80E665C +_080379F0: + ldr r0, _08037A38 + ldr r1, [r0] + adds r0, r1, 0 + adds r0, 0x1C + movs r2, 0xAE + lsls r2, 1 + adds r1, r2 + ldr r3, _08037A3C + ldr r2, _08037A40 + str r2, [sp] + movs r4, 0 + str r4, [sp, 0x4] + movs r2, 0x6 + str r2, [sp, 0x8] + str r4, [sp, 0xC] + movs r2, 0 + bl SetMenuItems +_08037A14: + ldr r4, _08037A38 + ldr r0, [r4] + adds r0, 0x1C + movs r1, 0 + movs r2, 0x1 + bl sub_8035CF4 + bl sub_80373C4 + ldr r0, [r4] + adds r0, 0x1C + bl sub_80130A8 + add sp, 0x10 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08037A38: .4byte gUnknown_203B35C +_08037A3C: .4byte gUnknown_80E6554 +_08037A40: .4byte gUnknown_80E667C + thumb_func_end sub_8037900 + + thumb_func_start nullsub_202 +nullsub_202: + bx lr + thumb_func_end nullsub_202 + + thumb_func_start sub_8037A48 +sub_8037A48: + push {r4-r6,lr} + sub sp, 0x28 + movs r6, 0x1 + movs r0, 0 + mov r1, sp + movs r2, 0x14 + bl sub_800D670 + add r4, sp, 0x14 + movs r0, 0x1 + adds r1, r4, 0 + movs r2, 0x14 + bl sub_800D670 + ldr r1, _08037AAC + movs r3, 0x8 + adds r2, r1, 0 + adds r0, r2, 0x4 +_08037A6C: + str r3, [r0] + subs r0, 0x4 + cmp r0, r1 + bge _08037A6C + ldr r0, [sp, 0x10] + str r0, [r2] + ldr r0, [r4, 0x10] + str r0, [r2, 0x4] + ldr r5, _08037AB0 + mov r0, sp + adds r1, r5, 0 + bl strcmp + cmp r0, 0 + beq _08037A8C + movs r0, 0x1 +_08037A8C: + lsls r0, 24 + cmp r0, 0 + bne _08037AA6 + adds r0, r4, 0 + adds r1, r5, 0 + bl strcmp + cmp r0, 0 + beq _08037AA0 + movs r0, 0x1 +_08037AA0: + lsls r0, 24 + cmp r0, 0 + beq _08037AB4 +_08037AA6: + movs r0, 0 + b _08037B1E + .align 2, 0 +_08037AAC: .4byte gUnknown_202EC40 +_08037AB0: .4byte gUnknown_80E6E50 +_08037AB4: + ldr r1, [sp, 0x10] + cmp r1, 0 + bne _08037AC0 + ldr r0, [r4, 0x10] + cmp r0, 0x1 + beq _08037B1C +_08037AC0: + cmp r1, 0x1 + bne _08037ACA + ldr r0, [r4, 0x10] + cmp r0, 0 + beq _08037B1C +_08037ACA: + cmp r1, 0x2 + bne _08037AD4 + ldr r0, [r4, 0x10] + cmp r0, 0x3 + beq _08037B1C +_08037AD4: + cmp r1, 0x3 + bne _08037ADE + ldr r0, [r4, 0x10] + cmp r0, 0x2 + beq _08037B1C +_08037ADE: + cmp r1, 0x9 + bne _08037AE8 + ldr r0, [r4, 0x10] + cmp r0, 0xA + beq _08037B1C +_08037AE8: + cmp r1, 0xA + bne _08037AF2 + ldr r0, [r4, 0x10] + cmp r0, 0x9 + beq _08037B1C +_08037AF2: + cmp r1, 0x4 + bne _08037AFC + ldr r0, [r4, 0x10] + cmp r0, 0x5 + beq _08037B1C +_08037AFC: + cmp r1, 0x5 + bne _08037B06 + ldr r0, [r4, 0x10] + cmp r0, 0x4 + beq _08037B1C +_08037B06: + cmp r1, 0x6 + bne _08037B10 + ldr r0, [r4, 0x10] + cmp r0, 0x7 + beq _08037B1C +_08037B10: + cmp r1, 0x7 + bne _08037B1A + ldr r0, [r4, 0x10] + cmp r0, 0x6 + beq _08037B1C +_08037B1A: + movs r6, 0 +_08037B1C: + adds r0, r6, 0 +_08037B1E: + add sp, 0x28 + pop {r4-r6} + pop {r1} + bx r1 + thumb_func_end sub_8037A48 + + thumb_func_start sub_8037B28 +sub_8037B28: + push {r4,r5,lr} + sub sp, 0x14 + adds r4, r0, 0 + movs r5, 0 + bl sub_800D414 + ldr r0, _08037B58 + str r5, [r0] + ldr r5, _08037B5C + mov r0, sp + movs r1, 0 + movs r2, 0x14 + bl MemoryFill8 + mov r0, sp + adds r1, r5, 0 + bl strcpy + str r4, [sp, 0x10] + mov r0, sp + movs r1, 0x14 + bl sub_800D59C + b _08037B7A + .align 2, 0 +_08037B58: .4byte gUnknown_202EC38 +_08037B5C: .4byte gUnknown_80E6E50 +_08037B60: + cmp r5, 0x3 + beq _08037BCC + cmp r5, 0x4 + beq _08037BD8 + cmp r5, 0x5 + beq _08037BF0 + ldr r2, _08037BC0 + ldr r1, [r2] + ldr r0, _08037BC4 + cmp r1, r0 + bgt _08037BE4 + adds r0, r1, 0x1 + str r0, [r2] +_08037B7A: + movs r4, 0 +_08037B7C: + bl sub_80373C4 + bl sub_8012AE8 + cmp r0, 0x3 + bgt _08037B8C + cmp r0, 0x2 + bge _08037BF0 +_08037B8C: + adds r4, 0x1 + cmp r4, 0 + ble _08037B7C + bl sub_800D33C + adds r5, r0, 0 + bl sub_800D570 + cmp r5, 0x2 + bne _08037B60 + bl sub_800D600 + lsls r0, 24 + cmp r0, 0 + beq _08037BFC + bl sub_8037A48 + lsls r0, 24 + cmp r0, 0 + bne _08037BC8 + movs r4, 0x4 + bl sub_800D520 + bl sub_800D510 + b _08037C06 + .align 2, 0 +_08037BC0: .4byte gUnknown_202EC38 +_08037BC4: .4byte 0x00000707 +_08037BC8: + movs r4, 0 + b _08037C06 +_08037BCC: + bl sub_800D520 + bl sub_800D510 + movs r0, 0x2 + b _08037C08 +_08037BD8: + bl sub_800D520 + bl sub_800D510 + movs r0, 0x3 + b _08037C08 +_08037BE4: + bl sub_800D520 + bl sub_800D510 + movs r0, 0xF + b _08037C08 +_08037BF0: + bl sub_800D520 + bl sub_800D510 + movs r0, 0x1 + b _08037C08 +_08037BFC: + movs r4, 0x5 + bl sub_800D520 + bl sub_800D510 +_08037C06: + adds r0, r4, 0 +_08037C08: + add sp, 0x14 + pop {r4,r5} + pop {r1} + bx r1 + thumb_func_end sub_8037B28 + + thumb_func_start sub_8037C10 +sub_8037C10: + push {lr} + lsls r0, 24 + cmp r0, 0 + beq _08037C24 + bl sub_800D588 + lsls r0, 24 + cmp r0, 0 + bne _08037C38 + b _08037C2E +_08037C24: + bl sub_800D588 + lsls r0, 24 + cmp r0, 0 + beq _08037C38 +_08037C2E: + ldr r0, _08037C34 + ldr r0, [r0, 0x4] + b _08037C3C + .align 2, 0 +_08037C34: .4byte gUnknown_202EC40 +_08037C38: + ldr r0, _08037C40 + ldr r0, [r0] +_08037C3C: + pop {r1} + bx r1 + .align 2, 0 +_08037C40: .4byte gUnknown_202EC40 + thumb_func_end sub_8037C10 + + thumb_func_start sub_8037C44 +sub_8037C44: + push {r4-r6,lr} + adds r6, r0, 0 + adds r5, r1, 0 + movs r4, 0 +_08037C4C: + adds r0, r4, 0 + bl sub_800D68C + adds r4, 0x1 + cmp r4, 0x1 + ble _08037C4C + cmp r6, 0xA + bhi _08037CBE + lsls r0, r6, 2 + ldr r1, _08037C68 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_08037C68: .4byte _08037C6C + .align 2, 0 +_08037C6C: + .4byte _08037C98 + .4byte _08037C98 + .4byte _08037CA2 + .4byte _08037CA2 + .4byte _08037CAC + .4byte _08037CAC + .4byte _08037CA2 + .4byte _08037CA2 + .4byte _08037CBE + .4byte _08037CB6 + .4byte _08037CB6 +_08037C98: + adds r0, r5, 0 + movs r1, 0x8 + bl sub_800D59C + b _08037CBE +_08037CA2: + adds r0, r5, 0 + movs r1, 0x30 + bl sub_800D59C + b _08037CBE +_08037CAC: + adds r0, r5, 0 + movs r1, 0x88 + bl sub_800D59C + b _08037CBE +_08037CB6: + adds r0, r5, 0 + movs r1, 0xB4 + bl sub_800D59C +_08037CBE: + pop {r4-r6} + pop {r0} + bx r0 + thumb_func_end sub_8037C44 + + thumb_func_start sub_8037CC4 +sub_8037CC4: + push {r4,lr} + adds r3, r1, 0 + adds r4, r2, 0 + cmp r0, 0xA + bhi _08037D5E + lsls r0, 2 + ldr r1, _08037CD8 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_08037CD8: .4byte _08037CDC + .align 2, 0 +_08037CDC: + .4byte _08037D08 + .4byte _08037D08 + .4byte _08037D1E + .4byte _08037D1E + .4byte _08037D34 + .4byte _08037D34 + .4byte _08037D1E + .4byte _08037D1E + .4byte _08037D5E + .4byte _08037D4A + .4byte _08037D4A +_08037D08: + movs r0, 0 + adds r1, r3, 0 + movs r2, 0x8 + bl sub_800D670 + movs r0, 0x1 + adds r1, r4, 0 + movs r2, 0x8 + bl sub_800D670 + b _08037D5E +_08037D1E: + movs r0, 0 + adds r1, r3, 0 + movs r2, 0x30 + bl sub_800D670 + movs r0, 0x1 + adds r1, r4, 0 + movs r2, 0x30 + bl sub_800D670 + b _08037D5E +_08037D34: + movs r0, 0 + adds r1, r3, 0 + movs r2, 0x88 + bl sub_800D670 + movs r0, 0x1 + adds r1, r4, 0 + movs r2, 0x88 + bl sub_800D670 + b _08037D5E +_08037D4A: + movs r0, 0 + adds r1, r3, 0 + movs r2, 0xB4 + bl sub_800D670 + movs r0, 0x1 + adds r1, r4, 0 + movs r2, 0xB4 + bl sub_800D670 +_08037D5E: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_8037CC4 + + thumb_func_start sub_8037D64 +sub_8037D64: + push {r4-r7,lr} + adds r5, r0, 0 + adds r6, r1, 0 + adds r7, r2, 0 + movs r4, 0 + ldr r0, _08037D80 + str r4, [r0] + bl sub_800D494 + adds r0, r5, 0 + adds r1, r6, 0 + bl sub_8037C44 + b _08037D96 + .align 2, 0 +_08037D80: .4byte gUnknown_202EC48 +_08037D84: + subs r0, r4, 0x3 + cmp r0, 0x2 + bls _08037DBC + ldr r1, _08037DB8 + ldr r0, [r1] + cmp r0, 0x63 + bgt _08037DC8 + adds r0, 0x1 + str r0, [r1] +_08037D96: + bl sub_80373C4 + bl sub_800D33C + adds r4, r0, 0 + bl sub_800D570 + cmp r4, 0x2 + bne _08037D84 + bl sub_800D600 + lsls r0, 24 + cmp r0, 0 + beq _08037DD4 + movs r4, 0 + b _08037DDE + .align 2, 0 +_08037DB8: .4byte gUnknown_202EC48 +_08037DBC: + bl sub_800D520 + bl sub_800D510 + movs r0, 0x1 + b _08037DEA +_08037DC8: + bl sub_800D520 + bl sub_800D510 + movs r0, 0xF + b _08037DEA +_08037DD4: + bl sub_800D520 + bl sub_800D510 + movs r4, 0x5 +_08037DDE: + adds r0, r5, 0 + adds r1, r6, 0 + adds r2, r7, 0 + bl sub_8037CC4 + adds r0, r4, 0 +_08037DEA: + pop {r4-r7} + pop {r1} + bx r1 + thumb_func_end sub_8037D64 + + thumb_func_start sub_8037DF0 +sub_8037DF0: + push {r4,lr} + sub sp, 0x8 + movs r4, 0 + movs r0, 0 + mov r1, sp + movs r2, 0x4 + bl sub_800D670 + add r1, sp, 0x4 + movs r0, 0x1 + movs r2, 0x4 + bl sub_800D670 + ldr r0, [sp] + cmp r0, 0 + bne _08037E16 + ldr r0, [sp, 0x4] + cmp r0, 0 + beq _08037E2C +_08037E16: + bl sub_800D588 + lsls r0, 24 + cmp r0, 0 + bne _08037E24 + ldr r4, [sp, 0x4] + b _08037E26 +_08037E24: + ldr r4, [sp] +_08037E26: + cmp r4, 0 + bne _08037E2C + movs r4, 0xE +_08037E2C: + adds r0, r4, 0 + add sp, 0x8 + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_8037DF0 + + thumb_func_start sub_8037E38 +sub_8037E38: + push {r4-r6,lr} + adds r6, r0, 0 + adds r5, r1, 0 + bl sub_800D588 + lsls r0, 24 + adds r4, r6, 0 + cmp r0, 0 + bne _08037E4C + adds r4, r5, 0 +_08037E4C: + bl sub_800D588 + lsls r0, 24 + adds r3, r5, 0 + cmp r0, 0 + bne _08037E5A + adds r3, r6, 0 +_08037E5A: + ldrb r0, [r4] + ldrb r1, [r3] + cmp r0, r1 + bne _08037E70 + ldr r0, _08037E6C + ldr r1, [r0] + ldrb r0, [r4] + b _08037E76 + .align 2, 0 +_08037E6C: .4byte gUnknown_203B460 +_08037E70: + ldr r0, _08037E8C + ldr r1, [r0] + ldrb r0, [r3] +_08037E76: + lsls r0, 1 + adds r1, 0x50 + adds r1, r0 + ldrh r2, [r1] + ldr r0, [r3, 0x4] + adds r2, r0 + strh r2, [r1] + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_08037E8C: .4byte gUnknown_203B460 + thumb_func_end sub_8037E38 + + thumb_func_start sub_8037E90 +sub_8037E90: + push {r4,r5,lr} + adds r5, r0, 0 + adds r4, r1, 0 + bl sub_800D588 + lsls r0, 24 + cmp r0, 0 + bne _08037EA2 + adds r4, r5, 0 +_08037EA2: + movs r0, 0x2 + strb r0, [r4] + adds r0, r4, 0 + bl sub_80951BC + ldr r0, [r4, 0x10] + bl sub_8095274 + pop {r4,r5} + pop {r0} + bx r0 + thumb_func_end sub_8037E90 + + thumb_func_start nullsub_53 +nullsub_53: + bx lr + thumb_func_end nullsub_53 + + thumb_func_start sub_8037EBC +sub_8037EBC: + push {r4-r6,lr} + adds r6, r0, 0 + adds r4, r1, 0 + bl sub_800D588 + lsls r0, 24 + adds r5, r4, 0 + cmp r0, 0 + bne _08037ED0 + adds r5, r6, 0 +_08037ED0: + ldr r1, [r5, 0x10] + movs r0, 0x1 + bl sub_809539C + lsls r0, 24 + lsrs r0, 24 + bl sub_8095228 + adds r4, r0, 0 + adds r1, r4, 0 + adds r0, r5, 0 + ldm r0!, {r2,r3,r6} + stm r1!, {r2,r3,r6} + ldm r0!, {r2,r3,r6} + stm r1!, {r2,r3,r6} + ldm r0!, {r2,r3,r6} + stm r1!, {r2,r3,r6} + ldm r0!, {r2,r3,r6} + stm r1!, {r2,r3,r6} + movs r0, 0x5 + strb r0, [r4] + adds r0, r4, 0 + bl sub_80951FC + movs r0, 0x7 + strb r0, [r4] + movs r0, 0x38 + ldrsh r6, [r5, r0] + cmp r6, 0 + beq _08037F30 + ldr r4, _08037F2C + ldr r0, [r4] + ldr r1, [r5, 0x10] + stm r0!, {r1} + adds r1, r5, 0 + adds r1, 0x30 + movs r2, 0x58 + bl memcpy + ldr r1, [r4] + movs r0, 0x42 + strb r0, [r1, 0x8] + ldr r1, [r4] + movs r0, 0x1 + strb r0, [r1, 0x9] + b _08037F40 + .align 2, 0 +_08037F2C: .4byte gUnknown_203B484 +_08037F30: + ldr r4, _08037F48 + ldr r0, [r4] + movs r1, 0 + movs r2, 0x5C + bl MemoryFill8 + ldr r0, [r4] + strh r6, [r0, 0xC] +_08037F40: + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_08037F48: .4byte gUnknown_203B484 + thumb_func_end sub_8037EBC + + thumb_func_start sub_8037F4C +sub_8037F4C: + push {r4,r5,lr} + adds r5, r0, 0 + adds r4, r1, 0 + bl sub_800D588 + lsls r0, 24 + cmp r0, 0 + bne _08037F5E + adds r4, r5, 0 +_08037F5E: + ldr r1, [r4, 0x10] + movs r0, 0x4 + bl sub_809539C + lsls r0, 24 + lsrs r0, 24 + bl sub_8095228 + adds r2, r0, 0 + adds r1, r4, 0 + ldm r1!, {r3-r5} + stm r2!, {r3-r5} + ldm r1!, {r3-r5} + stm r2!, {r3-r5} + ldm r1!, {r3-r5} + stm r2!, {r3-r5} + ldm r1!, {r3-r5} + stm r2!, {r3-r5} + movs r1, 0x6 + strb r1, [r0] + bl sub_8035D4C + cmp r0, 0 + beq _08037F96 + adds r1, r0, 0 + adds r1, 0x3A + movs r0, 0x1 + strb r0, [r1] +_08037F96: + pop {r4,r5} + pop {r0} + bx r0 + thumb_func_end sub_8037F4C + + thumb_func_start sub_8037F9C +sub_8037F9C: + push {lr} + adds r3, r1, 0 + cmp r0, 0xA + bhi _08038010 + lsls r0, 2 + ldr r1, _08037FB0 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_08037FB0: .4byte _08037FB4 + .align 2, 0 +_08037FB4: + .4byte _08037FE0 + .4byte _08037FE0 + .4byte _08038010 + .4byte _08037FF4 + .4byte _08038010 + .4byte _08037FFE + .4byte _08038010 + .4byte _08037FEA + .4byte _08038010 + .4byte _08038010 + .4byte _08038008 +_08037FE0: + adds r0, r3, 0 + adds r1, r2, 0 + bl sub_8037E38 + b _08038010 +_08037FEA: + adds r0, r3, 0 + adds r1, r2, 0 + bl sub_8037F4C + b _08038010 +_08037FF4: + adds r0, r3, 0 + adds r1, r2, 0 + bl sub_8037E90 + b _08038010 +_08037FFE: + adds r0, r3, 0 + adds r1, r2, 0 + bl sub_8037EBC + b _08038010 +_08038008: + adds r0, r3, 0 + adds r1, r2, 0 + bl nullsub_53 +_08038010: + pop {r0} + bx r0 + thumb_func_end sub_8037F9C + + thumb_func_start sub_8038014 +sub_8038014: + push {r4-r6,lr} + adds r6, r0, 0 + adds r5, r1, 0 + bl sub_800D588 + lsls r0, 24 + adds r4, r6, 0 + cmp r0, 0 + bne _08038028 + adds r4, r5, 0 +_08038028: + bl sub_800D588 + lsls r0, 24 + adds r3, r5, 0 + cmp r0, 0 + bne _08038036 + adds r3, r6, 0 +_08038036: + ldrb r0, [r4] + ldrb r1, [r3] + cmp r0, r1 + bne _0803804C + ldr r0, _08038048 + ldr r1, [r0] + ldrb r0, [r4] + b _08038052 + .align 2, 0 +_08038048: .4byte gUnknown_203B460 +_0803804C: + ldr r0, _08038070 + ldr r1, [r0] + ldrb r0, [r3] +_08038052: + lsls r0, 1 + adds r1, 0x50 + adds r1, r0 + ldrh r2, [r1] + ldr r0, [r3, 0x4] + adds r2, r0 + ldr r0, _08038074 + movs r1, 0 + cmp r2, r0 + ble _08038068 + movs r1, 0x6 +_08038068: + adds r0, r1, 0 + pop {r4-r6} + pop {r1} + bx r1 + .align 2, 0 +_08038070: .4byte gUnknown_203B460 +_08038074: .4byte 0x000003e7 + thumb_func_end sub_8038014 + + thumb_func_start sub_8038078 +sub_8038078: + push {r4-r6,lr} + adds r5, r0, 0 + adds r4, r1, 0 + bl sub_800D588 + lsls r0, 24 + cmp r0, 0 + bne _0803808A + adds r4, r5, 0 +_0803808A: + ldr r6, [r4, 0x10] + ldr r0, _08038098 + ldr r0, [r0] + cmp r0, 0 + beq _0803809C + ldr r5, [r0, 0x50] + b _080380A2 + .align 2, 0 +_08038098: .4byte gUnknown_203B184 +_0803809C: + bl sub_8011C34 + adds r5, r0, 0 +_080380A2: + movs r0, 0x4 + adds r1, r6, 0 + bl sub_80952F0 + lsls r0, 24 + cmp r0, 0 + beq _080380BA + ldr r0, [r4, 0x28] + cmp r0, r5 + bne _080380BA + movs r0, 0 + b _080380BC +_080380BA: + movs r0, 0xB +_080380BC: + pop {r4-r6} + pop {r1} + bx r1 + thumb_func_end sub_8038078 + + thumb_func_start sub_80380C4 +sub_80380C4: + push {r4-r6,lr} + adds r6, r0, 0 + adds r4, r1, 0 + bl sub_800D588 + lsls r0, 24 + adds r5, r4, 0 + cmp r0, 0 + bne _080380D8 + adds r5, r6, 0 +_080380D8: + ldr r4, [r5, 0x10] + movs r0, 0x2 + adds r1, r4, 0 + bl sub_80952F0 + lsls r0, 24 + cmp r0, 0 + bne _08038110 + movs r0, 0x4 + adds r1, r4, 0 + bl sub_80952F0 + lsls r0, 24 + cmp r0, 0 + bne _08038110 + movs r0, 0x6 + adds r1, r4, 0 + bl sub_80952F0 + lsls r0, 24 + cmp r0, 0 + bne _08038110 + ldr r0, [r5, 0x10] + bl sub_8095298 + lsls r0, 24 + cmp r0, 0 + beq _08038114 +_08038110: + movs r0, 0x7 + b _08038126 +_08038114: + bl sub_8095190 + movs r1, 0x1 + negs r1, r1 + cmp r0, r1 + beq _08038124 + movs r0, 0 + b _08038126 +_08038124: + movs r0, 0xD +_08038126: + pop {r4-r6} + pop {r1} + bx r1 + thumb_func_end sub_80380C4 + + thumb_func_start sub_803812C +sub_803812C: + push {r4,r5,lr} + adds r5, r0, 0 + adds r4, r1, 0 + bl sub_800D588 + lsls r0, 24 + cmp r0, 0 + bne _0803813E + adds r4, r5, 0 +_0803813E: + ldr r1, [r4, 0x10] + movs r0, 0x1 + bl sub_80952F0 + lsls r0, 24 + cmp r0, 0 + bne _08038150 + movs r0, 0x9 + b _08038152 +_08038150: + movs r0, 0 +_08038152: + pop {r4,r5} + pop {r1} + bx r1 + thumb_func_end sub_803812C + + thumb_func_start sub_8038158 +sub_8038158: + movs r0, 0 + bx lr + thumb_func_end sub_8038158 + + thumb_func_start sub_803815C +sub_803815C: + push {r4,lr} + adds r3, r1, 0 + movs r4, 0 + cmp r0, 0xA + bhi _080381D2 + lsls r0, 2 + ldr r1, _08038170 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_08038170: .4byte _08038174 + .align 2, 0 +_08038174: + .4byte _080381A0 + .4byte _080381A0 + .4byte _080381D2 + .4byte _080381B4 + .4byte _080381D2 + .4byte _080381BE + .4byte _080381D2 + .4byte _080381AA + .4byte _080381D2 + .4byte _080381D2 + .4byte _080381C8 +_080381A0: + adds r0, r3, 0 + adds r1, r2, 0 + bl sub_8038014 + b _080381D0 +_080381AA: + adds r0, r3, 0 + adds r1, r2, 0 + bl sub_8038078 + b _080381D0 +_080381B4: + adds r0, r3, 0 + adds r1, r2, 0 + bl sub_80380C4 + b _080381D0 +_080381BE: + adds r0, r3, 0 + adds r1, r2, 0 + bl sub_803812C + b _080381D0 +_080381C8: + adds r0, r3, 0 + adds r1, r2, 0 + bl sub_8038158 +_080381D0: + adds r4, r0, 0 +_080381D2: + adds r0, r4, 0 + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_803815C + + thumb_func_start sub_80381DC +sub_80381DC: + push {lr} + bl sub_8037F9C + pop {r0} + bx r0 + thumb_func_end sub_80381DC + + thumb_func_start sub_80381E8 +sub_80381E8: + push {lr} + bl sub_803815C + pop {r1} + bx r1 + thumb_func_end sub_80381E8 + + thumb_func_start sub_80381F4 +sub_80381F4: + push {r4-r7,lr} + sub sp, 0x4 + adds r5, r0, 0 + adds r6, r1, 0 + adds r7, r2, 0 + movs r4, 0 + bl sub_803815C + str r0, [sp] + ldr r0, _08038218 + str r4, [r0] + bl sub_800D494 + mov r0, sp + movs r1, 0x4 + bl sub_800D59C + b _0803822E + .align 2, 0 +_08038218: .4byte gUnknown_202EC4C +_0803821C: + subs r0, r4, 0x3 + cmp r0, 0x2 + bls _08038272 + ldr r1, _08038250 + ldr r0, [r1] + cmp r0, 0x63 + bgt _0803827E + adds r0, 0x1 + str r0, [r1] +_0803822E: + bl sub_80373C4 + bl sub_800D33C + adds r4, r0, 0 + bl sub_800D570 + cmp r4, 0x2 + bne _0803821C + bl sub_800D600 + lsls r0, 24 + cmp r0, 0 + beq _08038254 + bl sub_8037DF0 + b _0803825E + .align 2, 0 +_08038250: .4byte gUnknown_202EC4C +_08038254: + bl sub_800D520 + bl sub_800D510 + movs r0, 0x5 +_0803825E: + str r0, [sp] + ldr r0, [sp] + cmp r0, 0 + bne _0803828A + adds r0, r5, 0 + adds r1, r6, 0 + adds r2, r7, 0 + bl sub_8037F9C + b _08038292 +_08038272: + bl sub_800D520 + bl sub_800D510 + movs r0, 0x1 + b _08038298 +_0803827E: + bl sub_800D520 + bl sub_800D510 + movs r0, 0xF + b _08038298 +_0803828A: + bl sub_800D520 + bl sub_800D510 +_08038292: + bl sub_800D520 + ldr r0, [sp] +_08038298: + add sp, 0x4 + pop {r4-r7} + pop {r1} + bx r1 + thumb_func_end sub_80381F4 + + thumb_func_start CreateAdventureLogMenu +CreateAdventureLogMenu: + push {lr} + movs r0, 0 + bl CreateAdventureLogScreen + pop {r0} + bx r0 + thumb_func_end CreateAdventureLogMenu + + thumb_func_start CleanAdventureLogMenu +CleanAdventureLogMenu: + push {lr} + bl ResetUnusedInputStruct + movs r0, 0 + movs r1, 0x1 + movs r2, 0x1 + bl sub_800641C + pop {r0} + bx r0 + thumb_func_end CleanAdventureLogMenu + + thumb_func_start UpdateAdventureLogMenu +UpdateAdventureLogMenu: + push {r4,lr} + ldr r4, _080382E0 + movs r0, 0x1 + bl HandleAdventureLogInput + cmp r0, 0x1 + bls _080382D8 + cmp r0, 0x3 + bhi _080382D8 + bl sub_803203C + movs r4, 0x1 +_080382D8: + adds r0, r4, 0 + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_080382E0: .4byte 0x0000ffdc + thumb_func_end UpdateAdventureLogMenu + + thumb_func_start sub_80382E4 +sub_80382E4: + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + sub sp, 0x10 + mov r8, r0 + ldr r5, _08038398 + ldr r0, [r5] + cmp r0, 0 + bne _0803830E + movs r4, 0xDA + lsls r4, 1 + adds r0, r4, 0 + movs r1, 0x8 + bl MemoryAlloc + str r0, [r5] + movs r1, 0 + adds r2, r4, 0 + bl MemoryFill8 +_0803830E: + mov r12, r5 + movs r0, 0xA4 + lsls r0, 1 + mov r9, r0 + ldr r4, _0803839C + movs r3, 0 + movs r2, 0x3 +_0803831C: + mov r5, r12 + ldr r1, [r5] + adds r1, r3 + add r1, r9 + adds r0, r4, 0 + ldm r0!, {r5-r7} + stm r1!, {r5-r7} + ldm r0!, {r5-r7} + stm r1!, {r5-r7} + adds r3, 0x18 + subs r2, 0x1 + cmp r2, 0 + bge _0803831C + bl ResetUnusedInputStruct + ldr r5, _08038398 + ldr r0, [r5] + movs r6, 0xA4 + lsls r6, 1 + adds r0, r6 + movs r1, 0x1 + movs r2, 0x1 + bl sub_800641C + mov r7, r8 + cmp r7, 0x25 + bne _08038370 + ldr r1, [r5] + adds r0, r1, 0 + adds r0, 0x8 + adds r1, r6 + ldr r3, _080383A0 + ldr r2, _080383A4 + str r2, [sp] + movs r4, 0 + str r4, [sp, 0x4] + movs r2, 0x4 + str r2, [sp, 0x8] + str r4, [sp, 0xC] + movs r2, 0 + bl SetMenuItems +_08038370: + ldr r0, [r5] + adds r0, 0x8 + movs r1, 0 + movs r2, 0x1 + bl sub_8035CF4 + ldr r1, [r5] + mov r0, r8 + str r0, [r1] + movs r0, 0 + str r0, [r1, 0x4] + bl sub_8038440 + add sp, 0x10 + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_08038398: .4byte gUnknown_203B360 +_0803839C: .4byte gUnknown_80E6E7C +_080383A0: .4byte gUnknown_80E6E94 +_080383A4: .4byte gUnknown_80E6EAC + thumb_func_end sub_80382E4 + + thumb_func_start sub_80383A8 +sub_80383A8: + push {r4,lr} + bl ResetUnusedInputStruct + movs r0, 0 + movs r1, 0x1 + movs r2, 0x1 + bl sub_800641C + ldr r4, _080383D0 + ldr r0, [r4] + cmp r0, 0 + beq _080383C8 + bl MemoryFree + movs r0, 0 + str r0, [r4] +_080383C8: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080383D0: .4byte gUnknown_203B360 + thumb_func_end sub_80383A8 + + thumb_func_start sub_80383D4 +sub_80383D4: + push {r4-r6,lr} + sub sp, 0x4 + movs r0, 0x2 + str r0, [sp] + ldr r6, _08038410 + ldr r4, _08038414 + ldr r0, [r4] + ldr r5, [r0, 0x4] + cmp r5, 0 + bne _08038434 + adds r0, 0x8 + bl sub_80130A8 + lsls r0, 24 + cmp r0, 0 + bne _080383FE + ldr r0, [r4] + adds r0, 0x8 + mov r1, sp + bl sub_8013114 +_080383FE: + ldr r0, [sp] + cmp r0, 0x2 + beq _0803842C + cmp r0, 0x2 + bhi _08038418 + cmp r0, 0x1 + beq _0803841C + b _08038430 + .align 2, 0 +_08038410: .4byte 0x0000ffdc +_08038414: .4byte gUnknown_203B360 +_08038418: + cmp r0, 0x3 + bne _08038430 +_0803841C: + ldr r0, _08038428 + ldr r1, [r0] + movs r0, 0 + str r0, [r1, 0x4] + movs r6, 0x1 + b _08038430 + .align 2, 0 +_08038428: .4byte gUnknown_203B360 +_0803842C: + ldr r0, [r4] + str r5, [r0, 0x4] +_08038430: + bl sub_80384D0 +_08038434: + adds r0, r6, 0 + add sp, 0x4 + pop {r4-r6} + pop {r1} + bx r1 + thumb_func_end sub_80383D4 + + thumb_func_start sub_8038440 +sub_8038440: + push {r4,r5,lr} + movs r5, 0 + ldr r0, _080384B0 + ldr r0, [r0] + mov r12, r0 + movs r3, 0xD4 + lsls r3, 1 + add r3, r12 + ldrh r1, [r3] + ldr r0, _080384B4 + ands r0, r1 + ldr r1, _080384B8 + ands r0, r1 + ldr r4, _080384BC + ands r0, r4 + ldr r1, _080384C0 + ands r0, r1 + ldr r1, _080384C4 + ands r0, r1 + movs r2, 0x80 + lsls r2, 7 + ldr r1, _080384C8 + ands r0, r1 + orrs r0, r2 + strh r0, [r3] + movs r2, 0xFC + lsls r2, 2 + ldrh r1, [r3, 0x4] + movs r0, 0xFC + lsls r0, 8 + ands r0, r1 + orrs r0, r2 + ands r0, r4 + movs r2, 0xF + movs r4, 0xF0 + lsls r4, 8 + ldr r1, _080384CC + ands r0, r1 + orrs r0, r4 + strh r0, [r3, 0x4] + movs r0, 0x70 + strh r0, [r3, 0x2] + movs r1, 0xE0 + lsls r1, 3 + ldrh r0, [r3, 0x6] + ands r2, r0 + orrs r2, r1 + strh r2, [r3, 0x6] + movs r0, 0xD8 + lsls r0, 1 + add r0, r12 + str r5, [r0] + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080384B0: .4byte gUnknown_203B360 +_080384B4: .4byte 0x0000feff +_080384B8: .4byte 0x0000fdff +_080384BC: .4byte 0x0000f3ff +_080384C0: .4byte 0x0000efff +_080384C4: .4byte 0x0000dfff +_080384C8: .4byte 0x00003fff +_080384CC: .4byte 0x00000fff + thumb_func_end sub_8038440 + + thumb_func_start sub_80384D0 +sub_80384D0: + push {r4,r5,lr} + ldr r5, _08038508 + ldr r2, [r5] + movs r4, 0xD8 + lsls r4, 1 + adds r0, r2, r4 + ldr r0, [r0] + movs r1, 0x8 + ands r0, r1 + cmp r0, 0 + beq _080384F6 + movs r1, 0xD4 + lsls r1, 1 + adds r0, r2, r1 + subs r1, 0xA8 + movs r2, 0 + movs r3, 0 + bl AddSprite +_080384F6: + ldr r1, [r5] + adds r1, r4 + ldr r0, [r1] + adds r0, 0x1 + str r0, [r1] + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_08038508: .4byte gUnknown_203B360 + thumb_func_end sub_80384D0 + + thumb_func_start sub_803850C +sub_803850C: + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + sub sp, 0x10 + mov r8, r0 + ldr r5, _0803859C + ldr r0, [r5] + cmp r0, 0 + bne _08038536 + movs r4, 0xDA + lsls r4, 1 + adds r0, r4, 0 + movs r1, 0x8 + bl MemoryAlloc + str r0, [r5] + movs r1, 0 + adds r2, r4, 0 + bl MemoryFill8 +_08038536: + mov r12, r5 + movs r0, 0xA4 + lsls r0, 1 + mov r9, r0 + ldr r4, _080385A0 + movs r3, 0 + movs r2, 0x3 +_08038544: + mov r5, r12 + ldr r1, [r5] + adds r1, r3 + add r1, r9 + adds r0, r4, 0 + ldm r0!, {r5-r7} + stm r1!, {r5-r7} + ldm r0!, {r5-r7} + stm r1!, {r5-r7} + adds r3, 0x18 + subs r2, 0x1 + cmp r2, 0 + bge _08038544 + bl ResetUnusedInputStruct + ldr r4, _0803859C + ldr r0, [r4] + movs r6, 0xA4 + lsls r6, 1 + adds r0, r6 + movs r1, 0x1 + movs r2, 0x1 + bl sub_800641C + mov r7, r8 + cmp r7, 0x2E + bne _080385AC + ldr r1, [r4] + adds r0, r1, 0 + adds r0, 0x8 + adds r1, r6 + ldr r3, _080385A4 + ldr r2, _080385A8 + str r2, [sp] + movs r4, 0 + str r4, [sp, 0x4] + movs r2, 0x6 + str r2, [sp, 0x8] + str r4, [sp, 0xC] + movs r2, 0 + bl SetMenuItems + b _080385CE + .align 2, 0 +_0803859C: .4byte gUnknown_203B364 +_080385A0: .4byte gUnknown_80E6F20 +_080385A4: .4byte gUnknown_80E6F38 +_080385A8: .4byte gUnknown_80E7090 +_080385AC: + ldr r1, [r4] + adds r0, r1, 0 + adds r0, 0x8 + movs r2, 0xA4 + lsls r2, 1 + adds r1, r2 + ldr r3, _080385F8 + ldr r2, _080385FC + str r2, [sp] + movs r4, 0 + str r4, [sp, 0x4] + movs r2, 0x6 + str r2, [sp, 0x8] + str r4, [sp, 0xC] + movs r2, 0 + bl SetMenuItems +_080385CE: + ldr r4, _08038600 + ldr r0, [r4] + adds r0, 0x8 + movs r1, 0 + movs r2, 0x1 + bl sub_8035CF4 + ldr r1, [r4] + movs r0, 0 + str r0, [r1, 0x4] + mov r5, r8 + str r5, [r1] + bl sub_8038830 + add sp, 0x10 + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080385F8: .4byte gUnknown_80E6F38 +_080385FC: .4byte gUnknown_80E6F50 +_08038600: .4byte gUnknown_203B364 + thumb_func_end sub_803850C + + thumb_func_start sub_8038604 +sub_8038604: + push {r4,lr} + bl ResetUnusedInputStruct + movs r0, 0 + movs r1, 0x1 + movs r2, 0x1 + bl sub_800641C + ldr r4, _0803862C + ldr r0, [r4] + cmp r0, 0 + beq _08038624 + bl MemoryFree + movs r0, 0 + str r0, [r4] +_08038624: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0803862C: .4byte gUnknown_203B364 + thumb_func_end sub_8038604 + + thumb_func_start sub_8038630 +sub_8038630: + push {r4-r6,lr} + sub sp, 0x18 + ldr r5, _080386A8 + movs r0, 0x3 + str r0, [sp, 0x14] + ldr r6, _080386AC + ldr r0, [r6] + ldr r4, [r0, 0x4] + cmp r4, 0x1 + bne _08038646 + b _08038798 +_08038646: + cmp r4, 0x1 + bcc _0803864C + b _08038824 +_0803864C: + adds r0, 0x8 + bl sub_8012FD8 + movs r5, 0 + str r5, [sp, 0x10] + bl sub_80140F8 + bl sub_8011C1C + adds r1, r0, 0 + add r0, sp, 0x10 + bl sub_801203C + adds r4, r0, 0 + bl sub_8014114 + cmp r4, 0 + beq _080386B8 + cmp r4, 0x1 + beq _08038738 + ldr r0, [r6] + movs r4, 0xA4 + lsls r4, 1 + adds r0, r4 + movs r1, 0 + bl sub_8035CC0 + ldr r1, [r6] + ldr r0, [r1] + cmp r0, 0x2E + bne _08038750 + adds r0, r1, 0 + adds r0, 0x8 + adds r1, r4 + ldr r3, _080386B0 + ldr r2, _080386B4 + str r2, [sp] + str r5, [sp, 0x4] + movs r2, 0x6 + str r2, [sp, 0x8] + str r5, [sp, 0xC] + movs r2, 0 + bl SetMenuItems + b _0803876E + .align 2, 0 +_080386A8: .4byte 0x0000ffdc +_080386AC: .4byte gUnknown_203B364 +_080386B0: .4byte gUnknown_80E6F38 +_080386B4: .4byte gUnknown_80E7114 +_080386B8: + ldr r0, [r6] + movs r1, 0xA4 + lsls r1, 1 + adds r0, r1 + movs r1, 0 + bl sub_8035CC0 + ldr r1, [r6] + ldr r0, [r1] + cmp r0, 0x2E + bne _080386F8 + adds r0, r1, 0 + adds r0, 0x8 + movs r2, 0xA4 + lsls r2, 1 + adds r1, r2 + ldr r3, _080386F0 + ldr r2, _080386F4 + str r2, [sp] + str r5, [sp, 0x4] + movs r2, 0x6 + str r2, [sp, 0x8] + str r5, [sp, 0xC] + movs r2, 0 + bl SetMenuItems + b _08038716 + .align 2, 0 +_080386F0: .4byte gUnknown_80E6F38 +_080386F4: .4byte gUnknown_80E70CC +_080386F8: + adds r0, r1, 0 + adds r0, 0x8 + movs r2, 0xA4 + lsls r2, 1 + adds r1, r2 + ldr r3, _08038728 + ldr r2, _0803872C + str r2, [sp] + str r5, [sp, 0x4] + movs r2, 0x6 + str r2, [sp, 0x8] + str r5, [sp, 0xC] + movs r2, 0 + bl SetMenuItems +_08038716: + ldr r4, _08038730 + ldr r1, [r4] + ldr r0, [r1] + cmp r0, 0x2D + bne _08038734 + movs r0, 0x1 + str r0, [r1, 0x4] + movs r0, 0x13 + b _08038826 + .align 2, 0 +_08038728: .4byte gUnknown_80E6F38 +_0803872C: .4byte gUnknown_80E6FBC +_08038730: .4byte gUnknown_203B364 +_08038734: + adds r0, r1, 0 + b _08038772 +_08038738: + ldr r0, _0803874C + movs r1, 0 + movs r2, 0 + movs r3, 0 + bl sub_80141B4 + ldr r1, [r6] + movs r0, 0x5 + b _08038780 + .align 2, 0 +_0803874C: .4byte gUnknown_80E7178 +_08038750: + adds r0, r1, 0 + adds r0, 0x8 + movs r2, 0xA4 + lsls r2, 1 + adds r1, r2 + ldr r3, _08038788 + ldr r2, _0803878C + str r2, [sp] + str r5, [sp, 0x4] + movs r2, 0x6 + str r2, [sp, 0x8] + str r5, [sp, 0xC] + movs r2, 0 + bl SetMenuItems +_0803876E: + ldr r4, _08038790 + ldr r0, [r4] +_08038772: + adds r0, 0x8 + movs r1, 0 + movs r2, 0x1 + bl sub_8035CF4 + ldr r1, [r4] + movs r0, 0x1 +_08038780: + str r0, [r1, 0x4] + ldr r5, _08038794 + b _08038824 + .align 2, 0 +_08038788: .4byte gUnknown_80E6F38 +_0803878C: .4byte gUnknown_80E701C +_08038790: .4byte gUnknown_203B364 +_08038794: .4byte 0x0000ffdc +_08038798: + adds r0, 0x8 + bl sub_80130A8 + lsls r0, 24 + cmp r0, 0 + bne _080387AE + ldr r0, [r6] + adds r0, 0x8 + add r1, sp, 0x14 + bl sub_8013114 +_080387AE: + ldr r0, [sp, 0x14] + cmp r0, 0x3 + beq _0803881C + cmp r0, 0x3 + bhi _080387BE + cmp r0, 0x2 + beq _080387C2 + b _08038820 +_080387BE: + cmp r0, 0x4 + bne _08038820 +_080387C2: + ldr r4, _080387D8 + ldr r1, [r4] + ldr r0, [r1] + cmp r0, 0x29 + beq _080387D0 + cmp r0, 0x2E + bne _080387DC +_080387D0: + movs r0, 0x1 + str r0, [r1, 0x4] + movs r5, 0x1 + b _08038820 + .align 2, 0 +_080387D8: .4byte gUnknown_203B364 +_080387DC: + cmp r0, 0x2D + bne _080387E8 + movs r0, 0x1 + str r0, [r1, 0x4] + movs r5, 0x13 + b _08038820 +_080387E8: + cmp r0, 0x2C + bne _080387F4 + movs r0, 0x1 + str r0, [r1, 0x4] + movs r5, 0x1F + b _08038820 +_080387F4: + bl sub_8035D4C + adds r0, 0x3A + ldrb r0, [r0] + cmp r0, 0 + beq _0803880A + ldr r1, [r4] + movs r0, 0x1 + str r0, [r1, 0x4] + movs r5, 0x35 + b _08038820 +_0803880A: + ldr r0, [r4] + movs r1, 0x1 + str r1, [r0, 0x4] + ldr r0, [r0] + movs r5, 0xB + cmp r0, 0x2B + bne _08038820 + movs r5, 0xD + b _08038820 +_0803881C: + ldr r0, [r6] + str r4, [r0, 0x4] +_08038820: + bl sub_80388C4 +_08038824: + adds r0, r5, 0 +_08038826: + add sp, 0x18 + pop {r4-r6} + pop {r1} + bx r1 + thumb_func_end sub_8038630 + + thumb_func_start sub_8038830 +sub_8038830: + push {r4,r5,lr} + movs r5, 0 + ldr r0, _080388A4 + ldr r0, [r0] + mov r12, r0 + movs r3, 0xD4 + lsls r3, 1 + add r3, r12 + ldrh r1, [r3] + ldr r0, _080388A8 + ands r0, r1 + ldr r1, _080388AC + ands r0, r1 + ldr r4, _080388B0 + ands r0, r4 + ldr r1, _080388B4 + ands r0, r1 + ldr r1, _080388B8 + ands r0, r1 + movs r2, 0x80 + lsls r2, 7 + ldr r1, _080388BC + ands r0, r1 + orrs r0, r2 + strh r0, [r3] + movs r2, 0xFC + lsls r2, 2 + ldrh r1, [r3, 0x4] + movs r0, 0xFC + lsls r0, 8 + ands r0, r1 + orrs r0, r2 + ands r0, r4 + movs r2, 0xF + movs r4, 0xF0 + lsls r4, 8 + ldr r1, _080388C0 + ands r0, r1 + orrs r0, r4 + strh r0, [r3, 0x4] + movs r0, 0x70 + strh r0, [r3, 0x2] + movs r1, 0xD0 + lsls r1, 3 + ldrh r0, [r3, 0x6] + ands r2, r0 + orrs r2, r1 + strh r2, [r3, 0x6] + movs r0, 0xD8 + lsls r0, 1 + add r0, r12 + str r5, [r0] + movs r0, 0 + bl ResetSprites + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080388A4: .4byte gUnknown_203B364 +_080388A8: .4byte 0x0000feff +_080388AC: .4byte 0x0000fdff +_080388B0: .4byte 0x0000f3ff +_080388B4: .4byte 0x0000efff +_080388B8: .4byte 0x0000dfff +_080388BC: .4byte 0x00003fff +_080388C0: .4byte 0x00000fff + thumb_func_end sub_8038830 + + thumb_func_start sub_80388C4 +sub_80388C4: + push {r4,r5,lr} + ldr r5, _080388FC + ldr r2, [r5] + movs r4, 0xD8 + lsls r4, 1 + adds r0, r2, r4 + ldr r0, [r0] + movs r1, 0x8 + ands r0, r1 + cmp r0, 0 + beq _080388EA + movs r1, 0xD4 + lsls r1, 1 + adds r0, r2, r1 + subs r1, 0xA8 + movs r2, 0 + movs r3, 0 + bl AddSprite +_080388EA: + ldr r1, [r5] + adds r1, r4 + ldr r0, [r1] + adds r0, 0x1 + str r0, [r1] + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080388FC: .4byte gUnknown_203B364 + thumb_func_end sub_80388C4 + + .align 2,0 diff --git a/asm/rescue_password_menu.s b/asm/rescue_password_menu.s new file mode 100644 index 0000000..b11a26b --- /dev/null +++ b/asm/rescue_password_menu.s @@ -0,0 +1,1137 @@ + .include "constants/gba_constants.inc" + .include "asm/macros.inc" + + .syntax unified + + .text + + thumb_func_start CreateRescuePasswordMenu +CreateRescuePasswordMenu: + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + adds r6, r0, 0 + ldr r5, _080389B8 + ldr r0, [r5] + cmp r0, 0 + bne _0803892A + movs r4, 0x85 + lsls r4, 2 + adds r0, r4, 0 + movs r1, 0x8 + bl MemoryAlloc + str r0, [r5] + movs r1, 0 + adds r2, r4, 0 + bl MemoryFill8 +_0803892A: + movs r0, 0x1B + negs r0, r0 + adds r0, r6 + mov r8, r0 + mov r12, r5 + movs r1, 0xA4 + lsls r1, 1 + mov r9, r1 + ldr r4, _080389BC + mov r10, r4 + movs r3, 0 + movs r2, 0x3 +_08038942: + mov r5, r12 + ldr r1, [r5] + adds r1, r3 + add r1, r9 + mov r0, r10 + ldm r0!, {r4,r5,r7} + stm r1!, {r4,r5,r7} + ldm r0!, {r4,r5,r7} + stm r1!, {r4,r5,r7} + adds r3, 0x18 + subs r2, 0x1 + cmp r2, 0 + bge _08038942 + bl ResetUnusedInputStruct + ldr r4, _080389B8 + ldr r0, [r4] + movs r7, 0xA4 + lsls r7, 1 + adds r0, r7 + movs r1, 0x1 + movs r2, 0x1 + bl sub_800641C + ldr r2, _080389C0 + ldrb r0, [r2] + cmp r0, 0 + bne _08038986 + ldr r0, _080389C4 + ldr r1, [r0] + adds r7, r4, 0 + adds r5, r0, 0 + cmp r1, r6 + beq _080389A0 +_08038986: + adds r7, r4, 0 + adds r3, r2, 0 + ldr r5, _080389C4 + ldr r1, _080389C8 + movs r2, 0 + adds r0, r1, 0 + adds r0, 0x35 +_08038994: + strb r2, [r0] + subs r0, 0x1 + cmp r0, r1 + bge _08038994 + movs r0, 0 + strb r0, [r3] +_080389A0: + ldr r0, [r7] + str r6, [r0] + str r6, [r5] + mov r0, r8 + cmp r0, 0x7 + bhi _08038A36 + lsls r0, 2 + ldr r1, _080389CC + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080389B8: .4byte gUnknown_203B370 +_080389BC: .4byte gUnknown_80E71E4 +_080389C0: .4byte gUnknown_203B368 +_080389C4: .4byte gUnknown_203B36C +_080389C8: .4byte gUnknown_202EC50 +_080389CC: .4byte _080389D0 + .align 2, 0 +_080389D0: + .4byte _080389F0 + .4byte _080389FC + .4byte _080389F0 + .4byte _080389FC + .4byte _080389F0 + .4byte _080389FC + .4byte _08038A0C + .4byte _08038A2E +_080389F0: + bl sub_8035D74 + movs r1, 0 + bl sub_8031D70 + b _08038A36 +_080389FC: + ldr r1, _08038A08 + movs r0, 0x4 + bl sub_80151C0 + b _08038A36 + .align 2, 0 +_08038A08: .4byte gUnknown_202EC50 +_08038A0C: + movs r0, 0x1F + bl sub_8095228 + adds r4, r0, 0 + movs r1, 0 + movs r2, 0x30 + bl MemoryFill8 + movs r1, 0 + movs r0, 0x2 + strb r0, [r4] + adds r4, 0x22 + strb r1, [r4] + movs r0, 0x1F + bl sub_8031D70 + b _08038A36 +_08038A2E: + ldr r1, _08038A54 + movs r0, 0x4 + bl sub_80151C0 +_08038A36: + adds r0, r6, 0 + bl sub_8039000 + ldr r1, _08038A58 + ldr r1, [r1] + str r0, [r1, 0x4] + bl sub_8039174 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_08038A54: .4byte gUnknown_202EC50 +_08038A58: .4byte gUnknown_203B370 + thumb_func_end CreateRescuePasswordMenu + + thumb_func_start CleanRescuePasswordMenu +CleanRescuePasswordMenu: + push {r4,lr} + bl ResetUnusedInputStruct + movs r0, 0 + movs r1, 0x1 + movs r2, 0x1 + bl sub_800641C + ldr r4, _08038A8C + ldr r0, [r4] + cmp r0, 0 + beq _08038A86 + bl sub_80155F0 + bl sub_8031E10 + ldr r0, [r4] + bl MemoryFree + movs r0, 0 + str r0, [r4] +_08038A86: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08038A8C: .4byte gUnknown_203B370 + thumb_func_end CleanRescuePasswordMenu + + thumb_func_start UpdateRescuePasswordMenu +UpdateRescuePasswordMenu: + push {r4-r6,lr} + sub sp, 0x34 + movs r0, 0xB + str r0, [sp, 0x30] + ldr r5, _08038AB4 + ldr r1, _08038AB8 + ldr r0, [r1] + ldr r0, [r0, 0x4] + adds r6, r1, 0 + cmp r0, 0x9 + bls _08038AA8 + b _08038DB0 +_08038AA8: + lsls r0, 2 + ldr r1, _08038ABC + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_08038AB4: .4byte 0x0000ffdc +_08038AB8: .4byte gUnknown_203B370 +_08038ABC: .4byte _08038AC0 + .align 2, 0 +_08038AC0: + .4byte _08038AE8 + .4byte _08038AFC + .4byte _08038AE8 + .4byte _08038AFC + .4byte _08038AE8 + .4byte _08038AFC + .4byte _08038C78 + .4byte _08038C8C + .4byte _08038CC2 + .4byte _08038D38 +_08038AE8: + bl sub_8031DCC + ldr r5, _08038AF8 + cmp r0, 0 + bne _08038AF4 + b _08038DB0 +_08038AF4: + movs r5, 0xB + b _08038DB0 + .align 2, 0 +_08038AF8: .4byte 0x0000ffdc +_08038AFC: + bl sub_80154F0 + adds r4, r0, 0 + mov r0, sp + movs r1, 0 + movs r2, 0x30 + bl MemoryFill8 + cmp r4, 0x1 + bne _08038B12 + b _08038CBC +_08038B12: + cmp r4, 0x1 + bcs _08038B18 + b _08038CB0 +_08038B18: + cmp r4, 0x2 + beq _08038AF4 + cmp r4, 0x3 + beq _08038B22 + b _08038DB0 +_08038B22: + ldr r0, _08038B44 + ldr r0, [r0] + ldr r0, [r0] + ldr r1, _08038B48 + mov r2, sp + bl sub_8039068 + subs r0, 0x7 + cmp r0, 0x11 + bls _08038B38 + b _08038DB0 +_08038B38: + lsls r0, 2 + ldr r1, _08038B4C + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_08038B44: .4byte gUnknown_203B370 +_08038B48: .4byte gUnknown_202EC50 +_08038B4C: .4byte _08038B50 + .align 2, 0 +_08038B50: + .4byte _08038BA4 + .4byte _08038DB0 + .4byte _08038BD8 + .4byte _08038DB0 + .4byte _08038C28 + .4byte _08038DB0 + .4byte _08038B9C + .4byte _08038DB0 + .4byte _08038DB0 + .4byte _08038DB0 + .4byte _08038B98 + .4byte _08038BA0 + .4byte _08038BD4 + .4byte _08038C24 + .4byte _08038DB0 + .4byte _08038BA8 + .4byte _08038BDC + .4byte _08038C2C +_08038B98: + movs r0, 0x11 + b _08038CA4 +_08038B9C: + movs r0, 0xD + b _08038CA4 +_08038BA0: + movs r0, 0x12 + b _08038CA4 +_08038BA4: + movs r0, 0x7 + b _08038CA4 +_08038BA8: + ldr r0, [sp, 0x10] + bl sub_8095274 + bl sub_8038F98 + ldr r0, _08038BCC + ldr r1, [r0] + movs r0, 0x9 + str r0, [r1, 0x4] + ldr r5, _08038BD0 + mov r1, sp + movs r0, 0x2 + strb r0, [r1] + mov r0, sp + bl sub_80951BC + b _08038DB0 + .align 2, 0 +_08038BCC: .4byte gUnknown_203B370 +_08038BD0: .4byte 0x0000ffdc +_08038BD4: + movs r0, 0x13 + b _08038CA4 +_08038BD8: + movs r0, 0x9 + b _08038CA4 +_08038BDC: + bl sub_8038F98 + ldr r0, _08038C18 + ldr r1, [r0] + movs r0, 0x9 + str r0, [r1, 0x4] + ldr r5, _08038C1C + mov r1, sp + movs r0, 0x5 + strb r0, [r1] + mov r0, sp + bl sub_80951FC + ldr r1, [sp, 0x10] + movs r0, 0x1 + bl sub_809539C + lsls r0, 24 + lsrs r0, 24 + bl sub_8095228 + movs r1, 0x7 + strb r1, [r0] + ldr r0, _08038C20 + movs r1, 0 + movs r2, 0x5C + bl MemoryFill8 + b _08038DB0 + .align 2, 0 +_08038C18: .4byte gUnknown_203B370 +_08038C1C: .4byte 0x0000ffdc +_08038C20: .4byte gUnknown_203B484 +_08038C24: + movs r0, 0x14 + b _08038CA4 +_08038C28: + movs r0, 0xB + b _08038CA4 +_08038C2C: + bl sub_8038F98 + ldr r0, _08038C70 + ldr r1, [r0] + movs r0, 0x9 + str r0, [r1, 0x4] + ldr r5, _08038C74 + ldr r1, [sp, 0x10] + movs r0, 0x4 + bl sub_809539C + lsls r0, 24 + lsrs r0, 24 + bl sub_8095228 + adds r2, r0, 0 + mov r1, sp + ldm r1!, {r3,r4,r6} + stm r2!, {r3,r4,r6} + ldm r1!, {r3,r4,r6} + stm r2!, {r3,r4,r6} + ldm r1!, {r3,r4,r6} + stm r2!, {r3,r4,r6} + ldm r1!, {r3,r4,r6} + stm r2!, {r3,r4,r6} + movs r1, 0x6 + strb r1, [r0] + bl sub_8035D4C + adds r0, 0x3A + movs r1, 0x1 + strb r1, [r0] + b _08038DB0 + .align 2, 0 +_08038C70: .4byte gUnknown_203B370 +_08038C74: .4byte 0x0000ffdc +_08038C78: + bl sub_8031DCC + ldr r5, _08038C88 + cmp r0, 0 + bne _08038C84 + b _08038DB0 +_08038C84: + movs r5, 0xD + b _08038DB0 + .align 2, 0 +_08038C88: .4byte 0x0000ffdc +_08038C8C: + bl sub_80154F0 + cmp r0, 0x1 + beq _08038CBC + cmp r0, 0x1 + bcc _08038CB0 + cmp r0, 0x2 + beq _08038C84 + cmp r0, 0x3 + beq _08038CA2 + b _08038DB0 +_08038CA2: + movs r0, 0x15 +_08038CA4: + bl sub_8038DC0 + ldr r0, _08038CB4 + ldr r1, [r0] + movs r0, 0x8 + str r0, [r1, 0x4] +_08038CB0: + ldr r5, _08038CB8 + b _08038DB0 + .align 2, 0 +_08038CB4: .4byte gUnknown_203B370 +_08038CB8: .4byte 0x0000ffdc +_08038CBC: + bl sub_8031E00 + b _08038CB0 +_08038CC2: + ldr r0, [r6] + adds r0, 0x8 + bl sub_8012FD8 + lsls r0, 24 + cmp r0, 0 + bne _08038CDA + ldr r0, [r6] + adds r0, 0x8 + add r1, sp, 0x30 + bl sub_8013114 +_08038CDA: + ldr r0, [sp, 0x30] + cmp r0, 0xB + beq _08038D24 + cmp r0, 0xB + bhi _08038CEA + cmp r0, 0xA + beq _08038CEE + b _08038DB0 +_08038CEA: + cmp r0, 0xC + bne _08038DB0 +_08038CEE: + bl sub_8039174 + bl ResetUnusedInputStruct + movs r0, 0 + movs r1, 0x1 + movs r2, 0x1 + bl sub_800641C + ldr r1, _08038D1C + movs r0, 0x4 + bl sub_80151C0 + ldr r0, _08038D20 + ldr r1, [r0] + movs r0, 0x8 + str r0, [r1, 0x4] + ldr r0, [r1] + subs r0, 0x21 + movs r5, 0xB + cmp r0, 0x1 + bhi _08038DB0 + b _08038C84 + .align 2, 0 +_08038D1C: .4byte gUnknown_202EC50 +_08038D20: .4byte gUnknown_203B370 +_08038D24: + ldr r1, [r6] + movs r0, 0x8 + str r0, [r1, 0x4] + ldr r5, _08038D34 + bl sub_80391F8 + b _08038DB0 + .align 2, 0 +_08038D34: .4byte 0x0000ffdc +_08038D38: + adds r4, r6, 0 + ldr r0, [r4] + adds r0, 0x8 + bl sub_8012FD8 + lsls r0, 24 + cmp r0, 0 + bne _08038D52 + ldr r0, [r4] + adds r0, 0x8 + add r1, sp, 0x30 + bl sub_8013114 +_08038D52: + ldr r0, [sp, 0x30] + cmp r0, 0xB + beq _08038DA4 + cmp r0, 0xB + bhi _08038D62 + cmp r0, 0xA + beq _08038D66 + b _08038DB0 +_08038D62: + cmp r0, 0xC + bne _08038DB0 +_08038D66: + bl sub_8039174 + bl ResetUnusedInputStruct + movs r0, 0 + movs r1, 0x1 + movs r2, 0x1 + bl sub_800641C + ldr r1, _08038D9C + movs r0, 0x4 + bl sub_80151C0 + ldr r4, _08038DA0 + ldr r0, [r4] + ldr r0, [r0] + bl sub_8039000 + ldr r1, [r4] + str r0, [r1, 0x4] + ldr r0, [r1] + subs r0, 0x21 + movs r5, 0x2A + cmp r0, 0x1 + bhi _08038DB0 + movs r5, 0x2B + b _08038DB0 + .align 2, 0 +_08038D9C: .4byte gUnknown_202EC50 +_08038DA0: .4byte gUnknown_203B370 +_08038DA4: + ldr r1, [r6] + movs r0, 0x9 + str r0, [r1, 0x4] + ldr r5, _08038DBC + bl sub_80391F8 +_08038DB0: + adds r0, r5, 0 + add sp, 0x34 + pop {r4-r6} + pop {r1} + bx r1 + .align 2, 0 +_08038DBC: .4byte 0x0000ffdc + thumb_func_end UpdateRescuePasswordMenu + + thumb_func_start sub_8038DC0 +sub_8038DC0: + push {r4,lr} + sub sp, 0x10 + adds r4, r0, 0 + ldr r0, _08038DF8 + ldr r0, [r0] + movs r1, 0xD4 + lsls r1, 1 + adds r0, r1 + bl sub_8006518 + bl ResetUnusedInputStruct + movs r0, 0 + movs r1, 0x1 + movs r2, 0x1 + bl sub_800641C + bl sub_80155F0 + subs r0, r4, 0x7 + cmp r0, 0xE + bls _08038DEE + b _08038F74 +_08038DEE: + lsls r0, 2 + ldr r1, _08038DFC + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_08038DF8: .4byte gUnknown_203B370 +_08038DFC: .4byte _08038E00 + .align 2, 0 +_08038E00: + .4byte _08038E7C + .4byte _08038F74 + .4byte _08038EDC + .4byte _08038F74 + .4byte _08038F1C + .4byte _08038F74 + .4byte _08038E9C + .4byte _08038F74 + .4byte _08038F74 + .4byte _08038F74 + .4byte _08038E3C + .4byte _08038E5C + .4byte _08038EBC + .4byte _08038EFC + .4byte _08038F50 +_08038E3C: + ldr r0, _08038E50 + ldr r1, [r0] + adds r0, r1, 0 + adds r0, 0x8 + movs r2, 0xA4 + lsls r2, 1 + adds r1, r2 + ldr r3, _08038E54 + ldr r2, _08038E58 + b _08038F2E + .align 2, 0 +_08038E50: .4byte gUnknown_203B370 +_08038E54: .4byte gUnknown_80E71FC +_08038E58: .4byte gUnknown_80E7214 +_08038E5C: + ldr r0, _08038E70 + ldr r1, [r0] + adds r0, r1, 0 + adds r0, 0x8 + movs r2, 0xA4 + lsls r2, 1 + adds r1, r2 + ldr r3, _08038E74 + ldr r2, _08038E78 + b _08038F2E + .align 2, 0 +_08038E70: .4byte gUnknown_203B370 +_08038E74: .4byte gUnknown_80E72EC +_08038E78: .4byte gUnknown_80E7304 +_08038E7C: + ldr r0, _08038E90 + ldr r1, [r0] + adds r0, r1, 0 + adds r0, 0x8 + movs r2, 0xA4 + lsls r2, 1 + adds r1, r2 + ldr r3, _08038E94 + ldr r2, _08038E98 + b _08038F2E + .align 2, 0 +_08038E90: .4byte gUnknown_203B370 +_08038E94: .4byte gUnknown_80E7344 +_08038E98: .4byte gUnknown_80E735C +_08038E9C: + ldr r0, _08038EB0 + ldr r1, [r0] + adds r0, r1, 0 + adds r0, 0x8 + movs r2, 0xA4 + lsls r2, 1 + adds r1, r2 + ldr r3, _08038EB4 + ldr r2, _08038EB8 + b _08038F2E + .align 2, 0 +_08038EB0: .4byte gUnknown_203B370 +_08038EB4: .4byte gUnknown_80E7588 +_08038EB8: .4byte gUnknown_80E75A0 +_08038EBC: + ldr r0, _08038ED0 + ldr r1, [r0] + adds r0, r1, 0 + adds r0, 0x8 + movs r2, 0xA4 + lsls r2, 1 + adds r1, r2 + ldr r3, _08038ED4 + ldr r2, _08038ED8 + b _08038F2E + .align 2, 0 +_08038ED0: .4byte gUnknown_203B370 +_08038ED4: .4byte gUnknown_80E73AC +_08038ED8: .4byte gUnknown_80E73C4 +_08038EDC: + ldr r0, _08038EF0 + ldr r1, [r0] + adds r0, r1, 0 + adds r0, 0x8 + movs r2, 0xA4 + lsls r2, 1 + adds r1, r2 + ldr r3, _08038EF4 + ldr r2, _08038EF8 + b _08038F2E + .align 2, 0 +_08038EF0: .4byte gUnknown_203B370 +_08038EF4: .4byte gUnknown_80E7408 +_08038EF8: .4byte gUnknown_80E7420 +_08038EFC: + ldr r0, _08038F10 + ldr r1, [r0] + adds r0, r1, 0 + adds r0, 0x8 + movs r2, 0xA4 + lsls r2, 1 + adds r1, r2 + ldr r3, _08038F14 + ldr r2, _08038F18 + b _08038F2E + .align 2, 0 +_08038F10: .4byte gUnknown_203B370 +_08038F14: .4byte gUnknown_80E7468 +_08038F18: .4byte gUnknown_80E7480 +_08038F1C: + ldr r0, _08038F44 + ldr r1, [r0] + adds r0, r1, 0 + adds r0, 0x8 + movs r2, 0xA4 + lsls r2, 1 + adds r1, r2 + ldr r3, _08038F48 + ldr r2, _08038F4C +_08038F2E: + str r2, [sp] + movs r4, 0 + str r4, [sp, 0x4] + movs r2, 0xD + str r2, [sp, 0x8] + str r4, [sp, 0xC] + movs r2, 0 + bl SetMenuItems + b _08038F74 + .align 2, 0 +_08038F44: .4byte gUnknown_203B370 +_08038F48: .4byte gUnknown_80E74C8 +_08038F4C: .4byte gUnknown_80E74E0 +_08038F50: + ldr r0, _08038F8C + ldr r1, [r0] + adds r0, r1, 0 + adds r0, 0x8 + movs r2, 0xA4 + lsls r2, 1 + adds r1, r2 + ldr r3, _08038F90 + ldr r2, _08038F94 + str r2, [sp] + movs r4, 0 + str r4, [sp, 0x4] + movs r2, 0xD + str r2, [sp, 0x8] + str r4, [sp, 0xC] + movs r2, 0 + bl SetMenuItems +_08038F74: + ldr r0, _08038F8C + ldr r0, [r0] + adds r0, 0x8 + movs r1, 0 + movs r2, 0x1 + bl sub_8035CF4 + add sp, 0x10 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08038F8C: .4byte gUnknown_203B370 +_08038F90: .4byte gUnknown_80E752C +_08038F94: .4byte gUnknown_80E7544 + thumb_func_end sub_8038DC0 + + thumb_func_start sub_8038F98 +sub_8038F98: + push {r4,r5,lr} + sub sp, 0x10 + ldr r5, _08038FF4 + ldr r0, [r5] + movs r1, 0xD4 + lsls r1, 1 + adds r0, r1 + bl sub_8006518 + bl ResetUnusedInputStruct + movs r0, 0 + movs r1, 0x1 + movs r2, 0x1 + bl sub_800641C + bl sub_80155F0 + ldr r1, [r5] + adds r0, r1, 0 + adds r0, 0x8 + movs r2, 0xA4 + lsls r2, 1 + adds r1, r2 + ldr r3, _08038FF8 + ldr r2, _08038FFC + str r2, [sp] + movs r4, 0 + str r4, [sp, 0x4] + movs r2, 0xD + str r2, [sp, 0x8] + str r4, [sp, 0xC] + movs r2, 0 + bl SetMenuItems + ldr r0, [r5] + adds r0, 0x8 + movs r1, 0 + movs r2, 0x1 + bl sub_8035CF4 + add sp, 0x10 + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_08038FF4: .4byte gUnknown_203B370 +_08038FF8: .4byte gUnknown_80E7278 +_08038FFC: .4byte gUnknown_80E7290 + thumb_func_end sub_8038F98 + + thumb_func_start sub_8039000 +sub_8039000: + push {lr} + movs r1, 0xB + ldr r0, _0803901C + ldr r0, [r0] + ldr r0, [r0] + subs r0, 0x1B + cmp r0, 0x7 + bhi _08039062 + lsls r0, 2 + ldr r1, _08039020 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0803901C: .4byte gUnknown_203B370 +_08039020: .4byte _08039024 + .align 2, 0 +_08039024: + .4byte _08039044 + .4byte _08039054 + .4byte _0803904C + .4byte _0803905C + .4byte _08039048 + .4byte _08039058 + .4byte _08039050 + .4byte _08039060 +_08039044: + movs r1, 0 + b _08039062 +_08039048: + movs r1, 0x4 + b _08039062 +_0803904C: + movs r1, 0x2 + b _08039062 +_08039050: + movs r1, 0x6 + b _08039062 +_08039054: + movs r1, 0x1 + b _08039062 +_08039058: + movs r1, 0x5 + b _08039062 +_0803905C: + movs r1, 0x3 + b _08039062 +_08039060: + movs r1, 0x7 +_08039062: + adds r0, r1, 0 + pop {r1} + bx r1 + thumb_func_end sub_8039000 + + thumb_func_start sub_8039068 +sub_8039068: + push {r4-r6,lr} + adds r6, r0, 0 + adds r0, r1, 0 + adds r5, r2, 0 + adds r1, r5, 0 + bl sub_803D204 + lsls r0, 24 + cmp r0, 0 + beq _080390AC + ldrb r0, [r5] + cmp r0, 0x7 + bhi _080390AC + ldrb r4, [r5, 0x5] + ldrb r0, [r5, 0x4] + bl sub_8090298 + cmp r4, r0 + bge _080390AC + movs r0, 0xC + ldrsh r1, [r5, r0] + cmp r1, 0 + beq _080390AC + ldr r0, _080390B0 + cmp r1, r0 + bgt _080390AC + adds r0, r5, 0 + adds r0, 0x22 + ldrb r0, [r0] + bl sub_8092040 + lsls r0, 24 + cmp r0, 0 + beq _080390B4 +_080390AC: + movs r0, 0x11 + b _0803916E + .align 2, 0 +_080390B0: .4byte 0x000001a7 +_080390B4: + cmp r6, 0x1E + beq _08039120 + cmp r6, 0x1E + bhi _080390C2 + cmp r6, 0x1C + beq _080390C8 + b _0803916A +_080390C2: + cmp r6, 0x20 + beq _08039140 + b _0803916A +_080390C8: + ldrb r0, [r5] + cmp r0, 0x1 + beq _080390D2 + movs r0, 0x12 + b _0803916E +_080390D2: + ldr r1, [r5, 0x10] + movs r0, 0x2 + bl sub_80952F0 + lsls r0, 24 + cmp r0, 0 + bne _08039108 + ldr r1, [r5, 0x10] + movs r0, 0x4 + bl sub_80952F0 + lsls r0, 24 + cmp r0, 0 + bne _08039108 + ldr r1, [r5, 0x10] + movs r0, 0x6 + bl sub_80952F0 + lsls r0, 24 + cmp r0, 0 + bne _08039108 + ldr r0, [r5, 0x10] + bl sub_8095298 + lsls r0, 24 + cmp r0, 0 + beq _0803910C +_08039108: + movs r0, 0x7 + b _0803916E +_0803910C: + bl sub_8095190 + movs r1, 0x1 + negs r1, r1 + cmp r0, r1 + bne _0803911C + movs r0, 0xD + b _0803916E +_0803911C: + movs r0, 0x16 + b _0803916E +_08039120: + ldrb r0, [r5] + cmp r0, 0x4 + beq _0803912A + movs r0, 0x13 + b _0803916E +_0803912A: + ldr r1, [r5, 0x10] + movs r0, 0x1 + bl sub_80952F0 + lsls r0, 24 + cmp r0, 0 + bne _0803913C + movs r0, 0x9 + b _0803916E +_0803913C: + movs r0, 0x17 + b _0803916E +_08039140: + ldrb r0, [r5] + cmp r0, 0x5 + beq _0803914A + movs r0, 0x14 + b _0803916E +_0803914A: + ldr r1, [r5, 0x10] + movs r0, 0x4 + bl sub_80952F0 + lsls r0, 24 + cmp r0, 0 + beq _08039162 + bl sub_8011C34 + ldr r1, [r5, 0x28] + cmp r1, r0 + beq _08039166 +_08039162: + movs r0, 0xB + b _0803916E +_08039166: + movs r0, 0x18 + b _0803916E +_0803916A: + movs r0, 0x1 + negs r0, r0 +_0803916E: + pop {r4-r6} + pop {r1} + bx r1 + thumb_func_end sub_8039068 + + thumb_func_start sub_8039174 +sub_8039174: + push {r4,lr} + ldr r0, _080391D8 + ldr r3, [r0] + movs r0, 0x82 + lsls r0, 2 + adds r3, r0 + ldrh r1, [r3] + ldr r0, _080391DC + ands r0, r1 + ldr r1, _080391E0 + ands r0, r1 + ldr r4, _080391E4 + ands r0, r4 + ldr r1, _080391E8 + ands r0, r1 + ldr r1, _080391EC + ands r0, r1 + movs r2, 0x80 + lsls r2, 7 + ldr r1, _080391F0 + ands r0, r1 + orrs r0, r2 + strh r0, [r3] + movs r2, 0xFC + lsls r2, 2 + ldrh r1, [r3, 0x4] + movs r0, 0xFC + lsls r0, 8 + ands r0, r1 + orrs r0, r2 + ands r0, r4 + movs r2, 0xF + movs r4, 0xF0 + lsls r4, 8 + ldr r1, _080391F4 + ands r0, r1 + orrs r0, r4 + strh r0, [r3, 0x4] + movs r0, 0 + strh r0, [r3, 0x2] + movs r1, 0xC0 + lsls r1, 4 + ldrh r0, [r3, 0x6] + ands r2, r0 + orrs r2, r1 + strh r2, [r3, 0x6] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080391D8: .4byte gUnknown_203B370 +_080391DC: .4byte 0x0000feff +_080391E0: .4byte 0x0000fdff +_080391E4: .4byte 0x0000f3ff +_080391E8: .4byte 0x0000efff +_080391EC: .4byte 0x0000dfff +_080391F0: .4byte 0x00003fff +_080391F4: .4byte 0x00000fff + thumb_func_end sub_8039174 + + thumb_func_start sub_80391F8 +sub_80391F8: + push {r4-r6,lr} + ldr r6, _08039250 + ldr r2, [r6] + movs r0, 0x82 + lsls r0, 2 + adds r4, r2, r0 + ldrh r1, [r4, 0x2] + movs r0, 0xFE + lsls r0, 8 + ands r0, r1 + movs r1, 0x70 + orrs r0, r1 + strh r0, [r4, 0x2] + movs r3, 0xE0 + lsls r3, 3 + ldrh r1, [r4, 0x6] + movs r0, 0xF + ands r0, r1 + orrs r0, r3 + strh r0, [r4, 0x6] + movs r5, 0x84 + lsls r5, 2 + adds r2, r5 + ldr r0, [r2] + movs r1, 0x8 + ands r0, r1 + cmp r0, 0 + beq _0803923C + adds r1, 0xF8 + adds r0, r4, 0 + movs r2, 0 + movs r3, 0 + bl AddSprite +_0803923C: + bl xxx_draw_string_80144C4 + ldr r1, [r6] + adds r1, r5 + ldr r0, [r1] + adds r0, 0x1 + str r0, [r1] + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_08039250: .4byte gUnknown_203B370 + thumb_func_end sub_80391F8 + + .align 2,0 diff --git a/asm/wonder_mail.s b/asm/wonder_mail.s index e5d1c87..af15e98 100644 --- a/asm/wonder_mail.s +++ b/asm/wonder_mail.s @@ -2,1244 +2,400 @@ .include "asm/macros.inc" .syntax unified + + .text - .text - - thumb_func_start sub_802A50C -sub_802A50C: - push {r4,r5,lr} - sub sp, 0x44 - bl sub_80154F0 - adds r4, r0, 0 - add r0, sp, 0x14 - movs r1, 0 - movs r2, 0x30 - bl MemoryFill8 - cmp r4, 0x2 - bne _0802A526 - b _0802A660 -_0802A526: - cmp r4, 0x3 - beq _0802A52C - b _0802A680 -_0802A52C: - ldr r0, _0802A54C - ldr r1, [r0] - adds r1, 0x8 - movs r0, 0x20 - add r2, sp, 0x14 - bl sub_8039068 - subs r0, 0x7 - cmp r0, 0x11 - bls _0802A542 - b _0802A654 -_0802A542: + thumb_func_start sub_8028078 +sub_8028078: + push {lr} + ldr r0, _08028090 + ldr r0, [r0] + ldr r0, [r0, 0x4] + cmp r0, 0x3C + bls _08028086 + b _080282D4 +_08028086: lsls r0, 2 - ldr r1, _0802A550 + ldr r1, _08028094 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 -_0802A54C: .4byte gUnknown_203B2C4 -_0802A550: .4byte _0802A554 - .align 2, 0 -_0802A554: - .4byte _0802A654 - .4byte _0802A654 - .4byte _0802A654 - .4byte _0802A654 - .4byte _0802A5F0 - .4byte _0802A654 - .4byte _0802A654 - .4byte _0802A654 - .4byte _0802A654 - .4byte _0802A654 - .4byte _0802A59C - .4byte _0802A654 - .4byte _0802A654 - .4byte _0802A5D8 - .4byte _0802A654 - .4byte _0802A654 - .4byte _0802A654 - .4byte _0802A618 -_0802A59C: - ldr r0, _0802A5CC - ldr r3, _0802A5D0 - movs r2, 0 - str r2, [sp] - movs r1, 0x4 - str r1, [sp, 0x4] - str r2, [sp, 0x8] - ldr r1, _0802A5D4 - ldr r1, [r1] - movs r2, 0x84 - lsls r2, 3 - adds r1, r2 - str r1, [sp, 0xC] - movs r1, 0xC - str r1, [sp, 0x10] - movs r1, 0 - movs r2, 0x7 - bl sub_8014248 - movs r0, 0x28 - bl sub_802B2BC - b _0802A654 - .align 2, 0 -_0802A5CC: .4byte gUnknown_80DF1C0 -_0802A5D0: .4byte gUnknown_80DEE44 -_0802A5D4: .4byte gUnknown_203B2C4 -_0802A5D8: - ldr r0, _0802A5E8 - ldr r1, _0802A5EC - ldr r2, [r1] - movs r3, 0x84 - lsls r3, 3 - adds r2, r3 - b _0802A5FC - .align 2, 0 -_0802A5E8: .4byte gUnknown_80DF208 -_0802A5EC: .4byte gUnknown_203B2C4 -_0802A5F0: - ldr r0, _0802A60C - ldr r1, _0802A610 - ldr r2, [r1] - movs r4, 0x84 - lsls r4, 3 - adds r2, r4 -_0802A5FC: - ldr r3, _0802A614 - movs r1, 0 - bl sub_80141B4 - movs r0, 0x1F - bl sub_802B2BC - b _0802A654 - .align 2, 0 -_0802A60C: .4byte gUnknown_80DF0A0 -_0802A610: .4byte gUnknown_203B2C4 -_0802A614: .4byte 0x0000010d -_0802A618: - ldr r1, [sp, 0x24] - movs r0, 0x4 - bl sub_809539C - lsls r0, 24 - lsrs r0, 24 - bl sub_8095228 - adds r2, r0, 0 - add r1, sp, 0x14 - ldm r1!, {r3-r5} - stm r2!, {r3-r5} - ldm r1!, {r3-r5} - stm r2!, {r3-r5} - ldm r1!, {r3-r5} - stm r2!, {r3-r5} - ldm r1!, {r3-r5} - stm r2!, {r3-r5} - movs r1, 0x6 - strb r1, [r0] - ldr r0, _0802A65C - ldr r0, [r0] - movs r5, 0x86 - lsls r5, 3 - adds r0, r5 - ldr r1, [sp, 0x24] - str r1, [r0] - movs r0, 0x21 - bl sub_802B2BC -_0802A654: - bl sub_80155F0 - b _0802A680 - .align 2, 0 -_0802A65C: .4byte gUnknown_203B2C4 -_0802A660: - bl sub_80155F0 - bl ResetUnusedInputStruct - ldr r0, _0802A688 - ldr r0, [r0] - movs r1, 0xEF - lsls r1, 2 - adds r0, r1 - movs r1, 0x1 - movs r2, 0x1 - bl sub_800641C - movs r0, 0x1 - bl sub_802B2BC -_0802A680: - add sp, 0x44 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_0802A688: .4byte gUnknown_203B2C4 - thumb_func_end sub_802A50C - - thumb_func_start sub_802A68C -sub_802A68C: - push {lr} - sub sp, 0x4 - mov r0, sp - bl sub_80144A4 - cmp r0, 0 - bne _0802A6AE - bl sub_8012600 - lsls r0, 24 - cmp r0, 0 - bne _0802A6AE - bl sub_8012750 - movs r0, 0xD - bl sub_802B2BC -_0802A6AE: - add sp, 0x4 - pop {r0} - bx r0 - thumb_func_end sub_802A68C - - thumb_func_start sub_802A6B4 -sub_802A6B4: - push {r4,lr} - sub sp, 0x4 - mov r0, sp - bl sub_80144A4 - cmp r0, 0 - bne _0802A6E8 - bl sub_8012600 - lsls r0, 24 - cmp r0, 0 - bne _0802A6E8 - bl sub_8012744 - adds r4, r0, 0 - bl sub_8012750 - cmp r4, 0 - bne _0802A6E2 - movs r0, 0x20 - bl sub_802B2BC - b _0802A6E8 -_0802A6E2: +_08028090: .4byte gUnknown_203B2C0 +_08028094: .4byte _08028098 + .align 2, 0 +_08028098: + .4byte _080282C4 + .4byte _080282C4 + .4byte _080282CA + .4byte _080282D0 + .4byte _08028222 + .4byte _08028234 + .4byte _08028228 + .4byte _0802822E + .4byte _0802823A + .4byte _080281FE + .4byte _08028272 + .4byte _08028278 + .4byte _0802828C + .4byte _0802827E + .4byte _0802828C + .4byte _0802827E + .4byte _0802828C + .4byte _08028286 + .4byte _08028294 + .4byte _0802829A + .4byte _080282B2 + .4byte _080282B8 + .4byte _080282BE + .4byte _080282A0 + .4byte _080282A6 + .4byte _080282AC + .4byte _08028240 + .4byte _08028248 + .4byte _0802824E + .4byte _0802824E + .4byte _0802825A + .4byte _0802826C + .4byte _08028260 + .4byte _08028266 + .4byte _08028254 + .4byte _08028204 + .4byte _0802820A + .4byte _080282CA + .4byte _08028210 + .4byte _08028216 + .4byte _0802821C + .4byte _080281E0 + .4byte _080281F2 + .4byte _080281E6 + .4byte _080281EC + .4byte _080281DA + .4byte _080281D4 + .4byte _080281F8 + .4byte _080281CE + .4byte _080281C2 + .4byte _080281AA + .4byte _080281B0 + .4byte _080281B6 + .4byte _080281BC + .4byte _080281C8 + .4byte _080281A4 + .4byte _0802819E + .4byte _080282CA + .4byte _08028192 + .4byte _08028198 + .4byte _0802818C +_0802818C: + bl sub_8029B34 + b _080282D4 +_08028192: + bl sub_8029AD8 + b _080282D4 +_08028198: + bl sub_8029AF4 + b _080282D4 +_0802819E: + bl sub_8029A88 + b _080282D4 +_080281A4: + bl sub_8029AB0 + b _080282D4 +_080281AA: + bl sub_80297B8 + b _080282D4 +_080281B0: + bl sub_80297D4 + b _080282D4 +_080281B6: + bl sub_8029884 + b _080282D4 +_080281BC: + bl sub_8029944 + b _080282D4 +_080281C2: + bl sub_80299AC + b _080282D4 +_080281C8: + bl sub_80299D8 + b _080282D4 +_080281CE: + bl sub_8029A6C + b _080282D4 +_080281D4: + bl sub_8029A18 + b _080282D4 +_080281DA: + bl sub_80295A8 + b _080282D4 +_080281E0: + bl sub_8029668 + b _080282D4 +_080281E6: + bl sub_8029684 + b _080282D4 +_080281EC: + bl sub_8029740 + b _080282D4 +_080281F2: + bl sub_80295D8 + b _080282D4 +_080281F8: + bl sub_802979C + b _080282D4 +_080281FE: + bl sub_8029358 + b _080282D4 +_08028204: + bl sub_8029374 + b _080282D4 +_0802820A: + bl sub_802939C + b _080282D4 +_08028210: + bl sub_80293D8 + b _080282D4 +_08028216: + bl sub_80293F4 + b _080282D4 +_0802821C: + bl sub_802955C + b _080282D4 +_08028222: + bl sub_80292A4 + b _080282D4 +_08028228: + bl sub_80292EC + b _080282D4 +_0802822E: + bl sub_802933C + b _080282D4 +_08028234: + bl sub_802958C + b _080282D4 +_0802823A: + bl sub_8029208 + b _080282D4 +_08028240: + movs r0, 0x1 + bl sub_8028DE8 + b _080282D4 +_08028248: + bl sub_8028F80 + b _080282D4 +_0802824E: + bl sub_8028FC0 + b _080282D4 +_08028254: + bl sub_8028FDC + b _080282D4 +_0802825A: + bl sub_80290D4 + b _080282D4 +_08028260: + bl sub_80290F0 + b _080282D4 +_08028266: + bl sub_80291AC + b _080282D4 +_0802826C: + bl sub_8029044 + b _080282D4 +_08028272: + bl sub_8028CFC + b _080282D4 +_08028278: + bl sub_8028D4C + b _080282D4 +_0802827E: + movs r0, 0xA + bl sub_8028DE8 + b _080282D4 +_08028286: + bl sub_8028E08 + b _080282D4 +_0802828C: + movs r0, 0x19 + bl sub_8028DE8 + b _080282D4 +_08028294: + bl sub_8028E24 + b _080282D4 +_0802829A: + bl sub_8028E54 + b _080282D4 +_080282A0: + bl sub_8028E84 + b _080282D4 +_080282A6: + bl sub_8028EAC + b _080282D4 +_080282AC: + bl sub_8028ED4 + b _080282D4 +_080282B2: + bl sub_8028F04 + b _080282D4 +_080282B8: + bl sub_8028F30 + b _080282D4 +_080282BE: + bl sub_8028F58 + b _080282D4 +_080282C4: + bl sub_8028BF0 + b _080282D4 +_080282CA: + bl sub_8028CE0 + b _080282D4 +_080282D0: movs r0, 0x3 - bl sub_802B2BC -_0802A6E8: - add sp, 0x4 - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_802A6B4 - - thumb_func_start sub_802A6F0 -sub_802A6F0: - push {lr} - sub sp, 0x4 - mov r0, sp - bl sub_80144A4 - cmp r0, 0 - bne _0802A710 - movs r0, 0x18 - bl sub_802B2BC - movs r0, 0x1 - bl sub_8011C28 + b _080282D6 +_080282D4: movs r0, 0 - bl sub_8012574 -_0802A710: - add sp, 0x4 - pop {r0} - bx r0 - thumb_func_end sub_802A6F0 - - thumb_func_start sub_802A718 -sub_802A718: - push {lr} - sub sp, 0x4 - mov r0, sp - bl sub_80144A4 - cmp r0, 0 - bne _0802A738 - movs r0, 0x25 - bl sub_802B2BC - movs r0, 0x1 - bl sub_8011C28 - movs r0, 0 - bl sub_8012574 -_0802A738: - add sp, 0x4 - pop {r0} - bx r0 - thumb_func_end sub_802A718 - - thumb_func_start sub_802A740 -sub_802A740: - push {lr} - sub sp, 0x4 - mov r0, sp - bl sub_80144A4 - cmp r0, 0 - bne _0802A754 - movs r0, 0x1E - bl sub_802B2BC -_0802A754: - add sp, 0x4 - pop {r0} - bx r0 - thumb_func_end sub_802A740 - - thumb_func_start sub_802A75C -sub_802A75C: - push {lr} - sub sp, 0x4 - mov r0, sp - bl sub_80144A4 - cmp r0, 0 - bne _0802A792 - ldr r0, [sp] - cmp r0, 0 - beq _0802A78C - cmp r0, 0x7 - bne _0802A792 - ldr r0, _0802A788 - ldr r0, [r0] - movs r1, 0xA7 - lsls r1, 3 - adds r0, r1 - ldr r0, [r0] - movs r0, 0x16 - bl sub_802B2BC - b _0802A792 - .align 2, 0 -_0802A788: .4byte gUnknown_203B2C4 -_0802A78C: - movs r0, 0x1 - bl sub_802B2BC -_0802A792: - add sp, 0x4 - pop {r0} - bx r0 - thumb_func_end sub_802A75C +_080282D6: + pop {r1} + bx r1 + thumb_func_end sub_8028078 - thumb_func_start sub_802A798 -sub_802A798: - push {r4,r5,lr} - sub sp, 0x4 - mov r0, sp - bl sub_80144A4 - cmp r0, 0 - bne _0802A81E - ldr r0, [sp] - cmp r0, 0x7 - beq _0802A7BC - cmp r0, 0x7 - bgt _0802A7B6 - cmp r0, 0 - beq _0802A818 - b _0802A81E -_0802A7B6: - cmp r0, 0x8 - beq _0802A810 - b _0802A81E -_0802A7BC: - ldr r4, _0802A800 - ldr r0, [r4] - movs r1, 0x86 - lsls r1, 2 - adds r0, r1 - ldrb r0, [r0] - bl sub_8095228 - adds r2, r0, 0 - ldr r1, [r4] - ldr r3, _0802A804 - adds r0, r1, r3 - ldrb r0, [r0] - cmp r0, 0 - beq _0802A7E2 - ldr r5, _0802A808 - adds r0, r1, r5 - ldr r0, [r0] - str r0, [r2, 0x20] -_0802A7E2: - ldr r0, _0802A80C - ldr r1, [r0] - ldr r0, [r4] - adds r0, r3 - ldrb r0, [r0] - lsls r0, 1 - adds r1, 0x50 + thumb_func_start sub_80282DC +sub_80282DC: + ldr r1, _080282F4 + ldr r1, [r1] + movs r3, 0x86 + lsls r3, 2 + adds r2, r1, r3 + ldrb r2, [r2] + strb r2, [r0] + ldr r0, _080282F8 adds r1, r0 - ldrh r0, [r1] - subs r0, 0x1 - strh r0, [r1] - movs r0, 0x29 - bl sub_802B2BC - b _0802A81E - .align 2, 0 -_0802A800: .4byte gUnknown_203B2C4 -_0802A804: .4byte 0x0000041e -_0802A808: .4byte 0x0000041c -_0802A80C: .4byte gUnknown_203B460 -_0802A810: - movs r0, 0xB - bl sub_802B2BC - b _0802A81E -_0802A818: - movs r0, 0x1 - bl sub_802B2BC -_0802A81E: - add sp, 0x4 - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_802A798 - - thumb_func_start sub_802A828 -sub_802A828: - push {lr} - sub sp, 0x4 - mov r0, sp - bl sub_80144A4 - cmp r0, 0 - bne _0802A848 - movs r0, 0x2A - bl sub_802B2BC - movs r0, 0x1 - bl sub_8011C28 - movs r0, 0 - bl sub_8012574 -_0802A848: - add sp, 0x4 - pop {r0} - bx r0 - thumb_func_end sub_802A828 - - thumb_func_start sub_802A850 -sub_802A850: - push {lr} - sub sp, 0x4 - mov r0, sp - bl sub_80144A4 - cmp r0, 0 - bne _0802A89A - bl sub_8012600 - lsls r0, 24 - cmp r0, 0 - bne _0802A89A - bl sub_8012750 - ldr r0, _0802A884 - ldr r0, [r0] - ldr r1, _0802A888 - adds r0, r1 - ldr r0, [r0] - cmp r0, 0x3 - blt _0802A89A - cmp r0, 0x4 - ble _0802A88C - cmp r0, 0x5 - beq _0802A894 - b _0802A89A - .align 2, 0 -_0802A884: .4byte gUnknown_203B2C4 -_0802A888: .4byte 0x00000534 -_0802A88C: - movs r0, 0x1D - bl sub_802B2BC - b _0802A89A -_0802A894: - movs r0, 0x19 - bl sub_802B2BC -_0802A89A: - add sp, 0x4 - pop {r0} - bx r0 - thumb_func_end sub_802A850 - - thumb_func_start sub_802A8A0 -sub_802A8A0: - push {lr} - sub sp, 0x4 - mov r0, sp - bl sub_80144A4 - cmp r0, 0 - bne _0802A8B4 - movs r0, 0x13 - bl sub_802B2BC -_0802A8B4: - add sp, 0x4 - pop {r0} - bx r0 - thumb_func_end sub_802A8A0 - - thumb_func_start sub_802A8BC -sub_802A8BC: - push {lr} - sub sp, 0x4 - mov r0, sp - bl sub_80144A4 - cmp r0, 0 - bne _0802A90A - ldr r0, [sp] - cmp r0, 0 - beq _0802A904 - cmp r0, 0xA - bne _0802A90A - ldr r0, _0802A8EC - ldr r0, [r0] - ldr r1, _0802A8F0 - adds r0, r1 - ldr r0, [r0] - cmp r0, 0x3 - blt _0802A90A - cmp r0, 0x4 - ble _0802A8F4 - cmp r0, 0x5 - beq _0802A8FC - b _0802A90A - .align 2, 0 -_0802A8EC: .4byte gUnknown_203B2C4 -_0802A8F0: .4byte 0x00000534 -_0802A8F4: - movs r0, 0x1D - bl sub_802B2BC - b _0802A90A -_0802A8FC: - movs r0, 0x19 - bl sub_802B2BC - b _0802A90A -_0802A904: - movs r0, 0x1 - bl sub_802B2BC -_0802A90A: - add sp, 0x4 - pop {r0} - bx r0 - thumb_func_end sub_802A8BC - - thumb_func_start sub_802A910 -sub_802A910: - push {lr} - sub sp, 0x4 - mov r0, sp - bl sub_80144A4 - cmp r0, 0 - bne _0802A986 - ldr r0, [sp] - cmp r0, 0x9 - beq _0802A934 - cmp r0, 0x9 - bgt _0802A92E - cmp r0, 0 - beq _0802A980 - b _0802A986 -_0802A92E: - cmp r0, 0xA - beq _0802A950 - b _0802A986 -_0802A934: - movs r0, 0 - bl sub_801CF14 - lsls r0, 24 - cmp r0, 0 - beq _0802A948 - movs r0, 0xA - bl sub_802B2BC - b _0802A986 -_0802A948: - movs r0, 0xB - bl sub_802B2BC - b _0802A986 -_0802A950: - ldr r0, _0802A968 - ldr r0, [r0] - ldr r1, _0802A96C - adds r0, r1 - ldr r0, [r0] - cmp r0, 0x3 - blt _0802A986 - cmp r0, 0x4 - ble _0802A970 - cmp r0, 0x5 - beq _0802A978 - b _0802A986 - .align 2, 0 -_0802A968: .4byte gUnknown_203B2C4 -_0802A96C: .4byte 0x00000534 -_0802A970: - movs r0, 0x1D - bl sub_802B2BC - b _0802A986 -_0802A978: - movs r0, 0x19 - bl sub_802B2BC - b _0802A986 -_0802A980: - movs r0, 0x1 - bl sub_802B2BC -_0802A986: - add sp, 0x4 - pop {r0} - bx r0 - thumb_func_end sub_802A910 - - thumb_func_start sub_802A98C -sub_802A98C: - push {lr} - sub sp, 0x4 - mov r0, sp - bl sub_80144A4 - cmp r0, 0 - bne _0802A9A0 - movs r0, 0x8 - bl sub_802B2BC -_0802A9A0: - add sp, 0x4 - pop {r0} - bx r0 - thumb_func_end sub_802A98C - - thumb_func_start sub_802A9A8 -sub_802A9A8: - push {lr} - sub sp, 0x4 - mov r0, sp - bl sub_80144A4 - cmp r0, 0 - bne _0802A9F6 - ldr r0, [sp] - cmp r0, 0 - beq _0802A9F0 - cmp r0, 0x7 - bne _0802A9F6 - ldr r0, _0802A9D8 - ldr r0, [r0] - ldr r1, _0802A9DC - adds r0, r1 - ldr r0, [r0] - cmp r0, 0x3 - blt _0802A9F6 - cmp r0, 0x4 - ble _0802A9E0 - cmp r0, 0x5 - beq _0802A9E8 - b _0802A9F6 - .align 2, 0 -_0802A9D8: .4byte gUnknown_203B2C4 -_0802A9DC: .4byte 0x00000534 -_0802A9E0: - movs r0, 0x1D - bl sub_802B2BC - b _0802A9F6 -_0802A9E8: - movs r0, 0x19 - bl sub_802B2BC - b _0802A9F6 -_0802A9F0: - movs r0, 0x1 - bl sub_802B2BC -_0802A9F6: - add sp, 0x4 - pop {r0} - bx r0 - thumb_func_end sub_802A9A8 - - thumb_func_start sub_802A9FC -sub_802A9FC: - push {lr} - sub sp, 0x4 - mov r0, sp - bl sub_80144A4 - cmp r0, 0 - bne _0802AA22 - ldr r0, [sp] - cmp r0, 0 - beq _0802AA1C - cmp r0, 0x7 - bne _0802AA22 - movs r0, 0x26 - bl sub_802B2BC - b _0802AA22 -_0802AA1C: - movs r0, 0x1 - bl sub_802B2BC -_0802AA22: - add sp, 0x4 - pop {r0} - bx r0 - thumb_func_end sub_802A9FC - - thumb_func_start sub_802AA28 -sub_802AA28: - push {lr} - sub sp, 0x4 - mov r0, sp - bl sub_80144A4 - cmp r0, 0 - bne _0802AAA6 - ldr r2, [sp] - cmp r2, 0 - beq _0802AAA0 - cmp r2, 0 - blt _0802AAA6 - cmp r2, 0x5 - bgt _0802AAA6 - cmp r2, 0x3 - blt _0802AAA6 - ldr r0, _0802AA7C - ldr r0, [r0] - ldr r3, _0802AA80 - adds r1, r0, r3 - str r2, [r1] - movs r1, 0xA7 - lsls r1, 3 - adds r0, r1 - ldr r0, [r0] - cmp r0, 0x1 - bne _0802AA8C - movs r0, 0x5 - bl sub_80953D4 - lsls r0, 24 - lsrs r0, 24 - bl sub_8095228 - adds r0, 0x22 - ldrb r0, [r0] - cmp r0, 0 - beq _0802AA84 - movs r0, 0x7 - bl sub_802B2BC - b _0802AAA6 + ldr r0, [r1] + bx lr .align 2, 0 -_0802AA7C: .4byte gUnknown_203B2C4 -_0802AA80: .4byte 0x00000534 -_0802AA84: - movs r0, 0x9 - bl sub_802B2BC - b _0802AAA6 -_0802AA8C: - cmp r2, 0x5 - bne _0802AA98 - movs r0, 0x26 - bl sub_802B2BC - b _0802AAA6 -_0802AA98: - movs r0, 0x1D - bl sub_802B2BC - b _0802AAA6 -_0802AAA0: - movs r0, 0x1 - bl sub_802B2BC -_0802AAA6: - add sp, 0x4 - pop {r0} - bx r0 - thumb_func_end sub_802AA28 +_080282F4: .4byte gUnknown_203B2C0 +_080282F8: .4byte 0x0000053c + thumb_func_end sub_80282DC - thumb_func_start sub_802AAAC -sub_802AAAC: - push {lr} - sub sp, 0x4 - mov r0, sp - bl sub_80144A4 - cmp r0, 0 - bne _0802AAC0 - movs r0, 0x1 - bl sub_802B2BC -_0802AAC0: - add sp, 0x4 - pop {r0} - bx r0 - thumb_func_end sub_802AAAC - - thumb_func_start sub_802AAC8 -sub_802AAC8: - push {lr} - sub sp, 0x4 - mov r0, sp - bl sub_80144A4 - cmp r0, 0 - bne _0802AADC - movs r0, 0x3 - bl sub_802B2BC -_0802AADC: - add sp, 0x4 - pop {r0} - bx r0 - thumb_func_end sub_802AAC8 - - thumb_func_start sub_802AAE4 -sub_802AAE4: - push {lr} - sub sp, 0x4 - mov r0, sp - bl sub_80144A4 + thumb_func_start sub_80282FC +sub_80282FC: + push {r4,lr} + ldr r4, _08028340 + ldr r0, [r4] cmp r0, 0 - bne _0802AB5A - ldr r2, [sp] - cmp r2, 0x1 - beq _0802AB08 - cmp r2, 0x1 - bgt _0802AB02 - cmp r2, 0 - beq _0802AB54 - b _0802AB5A -_0802AB02: - cmp r2, 0x2 - beq _0802AB38 - b _0802AB5A -_0802AB08: - ldr r0, _0802AB2C - ldr r0, [r0] - movs r1, 0x6 - str r1, [r0, 0x40] - movs r1, 0xA7 + beq _08028338 + movs r1, 0x84 lsls r1, 3 adds r0, r1 - str r2, [r0] - movs r0, 0x5 - bl sub_8095324 - cmp r0, 0 - bne _0802AB30 - movs r0, 0x4 - bl sub_802B2BC - b _0802AB5A - .align 2, 0 -_0802AB2C: .4byte gUnknown_203B2C4 -_0802AB30: - movs r0, 0xF - bl sub_802B2BC - b _0802AB5A -_0802AB38: - ldr r0, _0802AB50 ldr r0, [r0] - movs r1, 0x7 - str r1, [r0, 0x40] - movs r1, 0xA7 - lsls r1, 3 - adds r0, r1 - str r2, [r0] - movs r0, 0x6 - bl sub_802B2BC - b _0802AB5A - .align 2, 0 -_0802AB50: .4byte gUnknown_203B2C4 -_0802AB54: - movs r0, 0x2 - bl sub_802B2BC -_0802AB5A: - add sp, 0x4 - pop {r0} - bx r0 - thumb_func_end sub_802AAE4 - - thumb_func_start sub_802AB60 -sub_802AB60: - push {lr} - sub sp, 0x4 - mov r0, sp - bl sub_80144A4 - cmp r0, 0 - bne _0802AB74 - movs r0, 0x22 - bl sub_802B2BC -_0802AB74: - add sp, 0x4 - pop {r0} - bx r0 - thumb_func_end sub_802AB60 - - thumb_func_start sub_802AB7C -sub_802AB7C: - push {lr} - sub sp, 0x4 - mov r0, sp - bl sub_80144A4 - cmp r0, 0 - bne _0802AB90 - movs r0, 0x22 - bl sub_802B2BC -_0802AB90: - add sp, 0x4 - pop {r0} - bx r0 - thumb_func_end sub_802AB7C - - thumb_func_start sub_802AB98 -sub_802AB98: - push {r4,lr} - bl sub_802F298 - cmp r0, 0x3 - bne _0802ABE0 - bl sub_802F2C0 - ldr r0, _0802ABE8 - movs r4, 0x98 - lsls r4, 1 - adds r1, r4, 0 - bl sub_808D8E0 - adds r0, r4, 0 - bl GetMonSpecies - adds r1, r0, 0 - ldr r0, _0802ABEC - bl strcpy - ldr r0, _0802ABF0 - ldr r0, [r0] - movs r1, 0x86 - lsls r1, 3 - adds r0, r1 - ldr r1, [r0] - movs r0, 0x6 - bl sub_809539C - lsls r0, 24 - lsrs r0, 24 - bl sub_8095240 - movs r0, 0x24 - bl sub_802B2BC -_0802ABE0: + bl CloseFile + ldr r0, [r4] + bl MemoryFree + movs r0, 0 + str r0, [r4] + bl sub_8031E10 + bl sub_8023C60 + bl sub_803084C + bl sub_80155F0 + bl sub_80310B4 + bl sub_8030DE4 + bl sub_802453C +_08028338: pop {r4} pop {r0} bx r0 .align 2, 0 -_0802ABE8: .4byte gUnknown_202E5D8 -_0802ABEC: .4byte gAvailablePokemonNames -_0802ABF0: .4byte gUnknown_203B2C4 - thumb_func_end sub_802AB98 +_08028340: .4byte gUnknown_203B2C0 + thumb_func_end sub_80282FC - thumb_func_start nullsub_131 -nullsub_131: + thumb_func_start nullsub_130 +nullsub_130: bx lr - thumb_func_end nullsub_131 + thumb_func_end nullsub_130 - thumb_func_start sub_802ABF8 -sub_802ABF8: + thumb_func_start sub_8028348 +sub_8028348: push {r4-r6,lr} - sub sp, 0xB8 - ldr r1, _0802AC14 + sub sp, 0x14 + ldr r1, _08028368 ldr r0, [r1] - ldrb r0, [r0] + ldr r0, [r0, 0x4] adds r6, r1, 0 - cmp r0, 0x2A - bls _0802AC0A - b _0802B2AA -_0802AC0A: + cmp r0, 0x3C + bls _0802835C + bl _08028AF2 +_0802835C: lsls r0, 2 - ldr r1, _0802AC18 + ldr r1, _0802836C adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 -_0802AC14: .4byte gUnknown_203B2C4 -_0802AC18: .4byte _0802AC1C - .align 2, 0 -_0802AC1C: - .4byte _0802B1DC - .4byte _0802B1FC - .4byte _0802B22C - .4byte _0802B2AA - .4byte _0802B1D4 - .4byte _0802ACC8 - .4byte _0802B248 - .4byte _0802B194 - .4byte _0802B1A4 - .4byte _0802B168 - .4byte _0802B138 - .4byte _0802B128 - .4byte _0802B0F0 - .4byte _0802B0AC - .4byte _0802AD08 - .4byte _0802AD18 - .4byte _0802AD20 - .4byte _0802AD46 - .4byte _0802B2AA - .4byte _0802AD80 - .4byte _0802ADB0 - .4byte _0802B2AA - .4byte _0802B07C - .4byte _0802B094 - .4byte _0802B2AA - .4byte _0802AF50 - .4byte _0802AF1A - .4byte _0802AF46 - .4byte _0802B2AA - .4byte _0802B0A4 - .4byte _0802ADF8 - .4byte _0802B2AA - .4byte _0802AF70 - .4byte _0802AF78 - .4byte _0802AFAC - .4byte _0802B2AA - .4byte _0802AF60 - .4byte _0802B2AA - .4byte _0802AEEC - .4byte _0802AEF4 - .4byte _0802B2AA - .4byte _0802B110 - .4byte _0802B120 -_0802ACC8: - bl sub_808D33C - adds r1, r0, 0 - adds r1, 0x4C - add r0, sp, 0x14 - movs r2, 0xA - bl sub_80922B4 - ldr r5, _0802ACF8 - ldr r0, [r5] - ldr r4, _0802ACFC - adds r0, r4 - ldr r1, _0802AD00 - add r2, sp, 0x14 - bl sub_800D158 - ldr r2, [r5] - adds r4, r2, r4 - movs r0, 0x84 - lsls r0, 3 - adds r2, r0 - ldr r3, _0802AD04 - adds r0, r4, 0 - b _0802B238 - .align 2, 0 -_0802ACF8: .4byte gUnknown_203B2C4 -_0802ACFC: .4byte 0x00000434 -_0802AD00: .4byte gUnknown_80DF250 -_0802AD04: .4byte 0x0000010d -_0802AD08: - ldr r0, _0802AD10 - ldr r3, _0802AD14 - b _0802B1A8 - .align 2, 0 -_0802AD10: .4byte gUnknown_80DF304 -_0802AD14: .4byte gUnknown_80DEE60 -_0802AD18: - ldr r0, _0802AD1C - b _0802B22E - .align 2, 0 -_0802AD1C: .4byte gUnknown_80DF330 -_0802AD20: - bl sub_8030894 - cmp r0, 0 - beq _0802AD2A - b _0802B2AA -_0802AD2A: - bl ResetUnusedInputStruct - movs r0, 0 - movs r1, 0x1 - movs r2, 0x1 - bl sub_800641C - movs r0, 0x5 - movs r1, 0 - movs r2, 0 - movs r3, 0x6 - bl sub_80306A8 - b _0802B2AA -_0802AD46: - ldr r0, [r6] - movs r4, 0xD7 - lsls r4, 2 - adds r0, r4 - bl sub_8006518 - ldr r1, [r6] - movs r5, 0x87 - lsls r5, 2 - adds r0, r1, r5 - adds r1, r4 - ldr r3, _0802AD78 - ldr r2, _0802AD7C - str r2, [sp] - movs r2, 0x1 - str r2, [sp, 0x4] - movs r2, 0 - str r2, [sp, 0x8] - str r2, [sp, 0xC] - movs r2, 0x3 - bl SetMenuItems - bl sub_803092C - b _0802ADE0 - .align 2, 0 -_0802AD78: .4byte gUnknown_80DED60 -_0802AD7C: .4byte gUnknown_80DED78 -_0802AD80: - bl sub_801D008 - cmp r0, 0 - beq _0802AD8A - b _0802B2AA -_0802AD8A: - bl ResetUnusedInputStruct - movs r0, 0 - movs r1, 0x1 - movs r2, 0x1 - bl sub_800641C - add r2, sp, 0xB4 - ldr r0, _0802ADAC - str r0, [r2] - movs r0, 0 - movs r1, 0x1 - movs r3, 0x9 - bl sub_801C8C4 - b _0802B2AA - .align 2, 0 -_0802ADAC: .4byte 0x00020003 -_0802ADB0: - ldr r0, [r6] - movs r4, 0xD7 - lsls r4, 2 - adds r0, r4 - bl sub_8006518 - ldr r1, [r6] - movs r5, 0x87 - lsls r5, 2 - adds r0, r1, r5 - adds r1, r4 - ldr r3, _0802ADF0 - ldr r2, _0802ADF4 - str r2, [sp] - movs r2, 0x1 - str r2, [sp, 0x4] - movs r2, 0 - str r2, [sp, 0x8] - str r2, [sp, 0xC] - movs r2, 0x3 - bl SetMenuItems - bl sub_801CCD8 -_0802ADE0: - ldr r0, [r6] - adds r0, r5 - movs r1, 0x3 - movs r2, 0x1 - bl sub_8035CF4 - b _0802B2AA - .align 2, 0 -_0802ADF0: .4byte gUnknown_80DED48 -_0802ADF4: .4byte gUnknown_80DED78 -_0802ADF8: - ldr r1, [r6] - movs r0, 0 - str r0, [r1, 0x44] - bl sub_8011830 - ldr r0, [r6] - ldr r0, [r0, 0x40] - bl sub_8037B28 - ldr r1, [r6] - str r0, [r1, 0x44] - cmp r0, 0 - bne _0802AEE6 - ldr r0, [r1, 0x40] - cmp r0, 0x6 - beq _0802AE1E - cmp r0, 0x7 - beq _0802AE5C - b _0802AE8C -_0802AE1E: - movs r4, 0xDC - lsls r4, 1 - adds r0, r1, r4 - movs r1, 0 - movs r2, 0x30 - bl MemoryFill8 - ldr r0, [r6] - movs r5, 0x86 - lsls r5, 2 - adds r0, r5 - ldrb r0, [r0] - bl sub_8095228 - ldr r1, [r6] - adds r1, r4 - ldm r0!, {r2,r3,r5} - stm r1!, {r2,r3,r5} - ldm r0!, {r2,r3,r5} - stm r1!, {r2,r3,r5} - ldm r0!, {r2,r3,r5} - stm r1!, {r2,r3,r5} - ldm r0!, {r2,r3,r5} - stm r1!, {r2,r3,r5} - ldr r2, [r6] - ldr r0, [r2, 0x40] - adds r4, r2, r4 - movs r1, 0xF4 - lsls r1, 1 - adds r2, r1 - b _0802AE82 -_0802AE5C: - movs r4, 0xDC - lsls r4, 1 - adds r0, r1, r4 - movs r1, 0 - movs r2, 0x30 - bl MemoryFill8 - ldr r0, [r6] - movs r5, 0xF4 - lsls r5, 1 - adds r0, r5 - movs r1, 0 - movs r2, 0x30 - bl MemoryFill8 - ldr r2, [r6] - ldr r0, [r2, 0x40] - adds r4, r2, r4 - adds r2, r5 -_0802AE82: - adds r1, r4, 0 - bl sub_8037D64 - ldr r1, [r6] - str r0, [r1, 0x44] -_0802AE8C: - ldr r4, _0802AED0 - ldr r2, [r4] - ldr r0, [r2, 0x44] - cmp r0, 0 - bne _0802AEE6 - ldr r0, [r2, 0x40] - cmp r0, 0x7 - bhi _0802AEE6 - cmp r0, 0x6 - bcc _0802AEE6 - movs r3, 0xDC - lsls r3, 1 - adds r1, r2, r3 - movs r5, 0xF4 - lsls r5, 1 - adds r2, r5 - bl sub_80381F4 - ldr r1, [r4] - str r0, [r1, 0x44] - bl sub_800D588 - lsls r0, 24 - cmp r0, 0 - beq _0802AED4 - ldr r0, [r4] - movs r2, 0x86 - lsls r2, 3 - adds r1, r0, r2 - movs r3, 0xFC - lsls r3, 1 - adds r0, r3 - b _0802AEE2 - .align 2, 0 -_0802AED0: .4byte gUnknown_203B2C4 -_0802AED4: - ldr r0, [r4] - movs r5, 0x86 - lsls r5, 3 - adds r1, r0, r5 - movs r2, 0xE4 - lsls r2, 1 - adds r0, r2 -_0802AEE2: - ldr r0, [r0] - str r0, [r1] -_0802AEE6: - bl xxx_call_start_bg_music - b _0802B2AA -_0802AEEC: - ldr r0, _0802AEF0 - b _0802B22E - .align 2, 0 -_0802AEF0: .4byte gUnknown_80DF380 -_0802AEF4: - ldr r0, [r6] - movs r5, 0xEF - lsls r5, 2 - adds r0, r5 - bl sub_8006518 - bl ResetUnusedInputStruct - movs r0, 0 - movs r1, 0x1 - movs r2, 0x1 - bl sub_800641C - ldr r1, [r6] - adds r1, 0x8 - movs r0, 0x4 - bl sub_80151C0 - b _0802B2AA -_0802AF1A: +_08028368: .4byte gUnknown_203B2C0 +_0802836C: .4byte _08028370 + .align 2, 0 +_08028370: + .4byte _08028A84 + .4byte _08028AB4 + .4byte _08028AE0 + .4byte _08028AF2 + .4byte _08028650 + .4byte _08028660 + .4byte _08028678 + .4byte _08028AF2 + .4byte _08028802 + .4byte _08028640 + .4byte _0802890C + .4byte _08028948 + .4byte _08028988 + .4byte _08028978 + .4byte _080289A0 + .4byte _08028990 + .4byte _080289B8 + .4byte _080289B0 + .4byte _080289C8 + .4byte _080289E8 + .4byte _08028A48 + .4byte _08028A58 + .4byte _08028A68 + .4byte _080289F8 + .4byte _08028A08 + .4byte _08028A18 + .4byte _08028850 + .4byte _08028860 + .4byte _08028868 + .4byte _08028878 + .4byte _08028890 + .4byte _080288A0 + .4byte _080288C6 + .4byte _08028AF2 + .4byte _08028888 + .4byte _08028790 + .4byte _08028AF2 + .4byte _080287C4 + .4byte _080287D4 + .4byte _080287DC + .4byte _08028AF2 + .4byte _080285CC + .4byte _080285DC + .4byte _080288C6 + .4byte _08028AF2 + .4byte _080285AC + .4byte _08028610 + .4byte _080285F8 + .4byte _08028600 + .4byte _0802856C + .4byte _080284F4 + .4byte _0802850C + .4byte _08028532 + .4byte _08028AF2 + .4byte _0802859C + .4byte _080284B8 + .4byte _080284A8 + .4byte _080284EC + .4byte _080284A0 + .4byte _08028464 + .4byte _08028490 +_08028464: ldr r0, [r6] movs r1, 0xEF lsls r1, 2 @@ -1257,307 +413,120 @@ _0802AF1A: ldrb r0, [r0] movs r1, 0 bl sub_8031D70 - b _0802B2AA -_0802AF46: - ldr r0, _0802AF4C - b _0802B22E - .align 2, 0 -_0802AF4C: .4byte gUnknown_80DF3B4 -_0802AF50: - ldr r0, _0802AF5C + b _08028AF2 +_08028490: + ldr r0, _0802849C ldr r2, [r6] - movs r5, 0x84 - lsls r5, 3 - adds r2, r5 - b _0802B236 + movs r3, 0x84 + lsls r3, 3 + adds r2, r3 + b _08028A72 .align 2, 0 -_0802AF5C: .4byte gUnknown_80DF418 -_0802AF60: - ldr r0, _0802AF6C +_0802849C: .4byte gUnknown_80DDBA8 +_080284A0: + ldr r0, _080284A4 + b _08028A6A + .align 2, 0 +_080284A4: .4byte gUnknown_80DDBFC +_080284A8: + ldr r0, _080284B4 ldr r2, [r6] movs r1, 0x84 lsls r1, 3 adds r2, r1 - b _0802B236 - .align 2, 0 -_0802AF6C: .4byte gUnknown_80DF44C -_0802AF70: - ldr r0, _0802AF74 - b _0802B22E + b _08028A72 .align 2, 0 -_0802AF74: .4byte gUnknown_80DF46C -_0802AF78: +_080284B4: .4byte gUnknown_80DDC30 +_080284B8: ldr r0, [r6] - ldr r5, _0802AF90 - adds r0, r5 + ldr r2, _080284D0 + adds r0, r2 ldr r0, [r0] - cmp r0, 0x4 - bne _0802AF86 - b _0802B2AA -_0802AF86: - cmp r0, 0x4 - bgt _0802AF94 - cmp r0, 0x3 - beq _0802AF9A - b _0802B2AA + cmp r0, 0xE + bne _080284C6 + b _08028AF2 +_080284C6: + cmp r0, 0xE + bhi _080284D4 + cmp r0, 0xD + beq _080284DA + b _08028AF2 .align 2, 0 -_0802AF90: .4byte 0x00000534 -_0802AF94: - cmp r0, 0x6 - ble _0802AF9A - b _0802B2AA -_0802AF9A: - ldr r0, _0802AFA8 +_080284D0: .4byte 0x00000534 +_080284D4: + cmp r0, 0x10 + bls _080284DA + b _08028AF2 +_080284DA: + ldr r0, _080284E8 ldr r2, [r6] - movs r1, 0x84 - lsls r1, 3 - adds r2, r1 - b _0802B236 - .align 2, 0 -_0802AFA8: .4byte gUnknown_80DF4F4 -_0802AFAC: - movs r4, 0x98 - lsls r4, 1 - adds r0, r4, 0 - bl GetMonSpecies - adds r1, r0, 0 - ldr r5, _0802B00C - ldr r0, [r5] - ldr r2, _0802B010 - adds r0, r2 - bl strcpy - ldr r1, [r5] - movs r3, 0xAA - lsls r3, 3 - adds r0, r1, r3 - movs r2, 0 - strh r4, [r0] - ldr r0, _0802B014 - adds r1, r0 - movs r0, 0x2 - strb r0, [r1] - ldr r0, [r5] - adds r3, 0x4 - adds r1, r0, r3 - str r2, [r1] - movs r1, 0x86 - lsls r1, 3 - adds r0, r1 - ldr r1, [r0] - movs r0, 0x6 - bl sub_809539C - lsls r0, 24 - lsrs r0, 24 - bl sub_8095228 - adds r2, r0, 0 - adds r0, 0x22 - ldrb r1, [r0] - cmp r1, 0 - beq _0802B018 - ldr r0, [r5] - movs r3, 0xAB + movs r3, 0x84 lsls r3, 3 - adds r0, r3 - b _0802B022 + adds r2, r3 + b _08028A72 .align 2, 0 -_0802B00C: .4byte gUnknown_203B2C4 -_0802B010: .4byte 0x0000053c -_0802B014: .4byte 0x00000552 -_0802B018: - ldr r0, [r5] - movs r5, 0xAB - lsls r5, 3 - adds r0, r5 - movs r1, 0 -_0802B022: - strb r1, [r0] - ldr r4, _0802B068 - ldr r0, [r4] - ldr r1, _0802B06C - adds r0, r1 - movs r5, 0 - movs r1, 0x1 - strb r1, [r0] - adds r0, r2, 0x4 - movs r1, 0 - bl sub_803C200 - ldr r1, [r4] - movs r3, 0xAC - lsls r3, 3 - adds r2, r1, r3 - str r0, [r2] - ldr r0, _0802B070 - adds r1, r0 - strb r5, [r1] - ldr r0, [r4] - ldr r1, _0802B074 - adds r0, r1 - strb r5, [r0] - ldr r0, [r4] - ldr r2, _0802B078 - adds r0, r2 - strb r5, [r0] - ldr r0, [r4] - subs r3, 0x24 - adds r0, r3 - movs r1, 0 - bl sub_802F204 - b _0802B2AA +_080284E8: .4byte gUnknown_80DDC70 +_080284EC: + ldr r0, _080284F0 + b _08028A6A .align 2, 0 -_0802B068: .4byte gUnknown_203B2C4 -_0802B06C: .4byte 0x0000055b -_0802B070: .4byte 0x00000559 -_0802B074: .4byte 0x0000055a -_0802B078: .4byte 0x0000055c -_0802B07C: - movs r0, 0 - bl nullsub_23 - ldr r0, _0802B090 +_080284F0: .4byte gUnknown_80DDC30 +_080284F4: + ldr r0, _08028504 + ldr r3, _08028508 movs r1, 0 movs r2, 0 - movs r3, 0 bl sub_80141B4 - b _0802B2AA + b _08028AF2 .align 2, 0 -_0802B090: .4byte gUnknown_80DF544 -_0802B094: - ldr r0, _0802B0A0 - ldr r2, [r6] - movs r5, 0x84 - lsls r5, 3 - adds r2, r5 - b _0802B236 - .align 2, 0 -_0802B0A0: .4byte gUnknown_80DF594 -_0802B0A4: - ldr r0, _0802B0A8 - b _0802B1A6 - .align 2, 0 -_0802B0A8: .4byte gUnknown_80DF5E4 -_0802B0AC: - bl sub_808D33C - adds r1, r0, 0 - add r6, sp, 0x64 - adds r1, 0x4C - adds r0, r6, 0 - movs r2, 0xA - bl sub_80922B4 - ldr r5, _0802B0E0 - ldr r0, [r5] - ldr r4, _0802B0E4 - adds r0, r4 - ldr r1, _0802B0E8 - adds r2, r6, 0 - bl sub_800D158 - ldr r2, [r5] - adds r4, r2, r4 - movs r3, 0x84 - lsls r3, 3 - adds r2, r3 - ldr r3, _0802B0EC - adds r0, r4, 0 - b _0802B238 - .align 2, 0 -_0802B0E0: .4byte gUnknown_203B2C4 -_0802B0E4: .4byte 0x00000434 -_0802B0E8: .4byte gUnknown_80DF63C -_0802B0EC: .4byte 0x0000010d -_0802B0F0: - ldr r0, _0802B108 - ldr r3, _0802B10C +_08028504: .4byte gUnknown_80DDCBC +_08028508: .4byte 0x00000101 +_0802850C: + bl sub_8023CE8 + cmp r0, 0 + beq _08028516 + b _08028AF2 +_08028516: + bl ResetUnusedInputStruct + movs r0, 0 + movs r1, 0x1 + movs r2, 0x1 + bl sub_800641C + movs r0, 0x3 + movs r1, 0 movs r2, 0 - str r2, [sp] - movs r1, 0x4 - str r1, [sp, 0x4] - str r2, [sp, 0x8] + movs r3, 0x9 + bl sub_8023868 + b _08028AF2 +_08028532: + ldr r0, [r6] + movs r4, 0xD7 + lsls r4, 2 + adds r0, r4 + bl sub_8006518 ldr r1, [r6] - movs r5, 0x84 - lsls r5, 3 - adds r1, r5 - b _0802B1BA - .align 2, 0 -_0802B108: .4byte gUnknown_80DF694 -_0802B10C: .4byte gUnknown_80DEEE4 -_0802B110: - ldr r0, _0802B11C - ldr r2, [r6] - movs r1, 0x84 - lsls r1, 3 - adds r2, r1 - b _0802B236 - .align 2, 0 -_0802B11C: .4byte gUnknown_80DF44C -_0802B120: - ldr r0, _0802B124 - b _0802B22E - .align 2, 0 -_0802B124: .4byte gUnknown_80DF6F0 -_0802B128: - ldr r0, _0802B134 - ldr r2, [r6] - movs r5, 0x84 - lsls r5, 3 - adds r2, r5 - b _0802B236 - .align 2, 0 -_0802B134: .4byte gUnknown_80DF710 -_0802B138: - ldr r0, _0802B160 - ldr r3, _0802B164 - movs r2, 0 + movs r5, 0x87 + lsls r5, 2 + adds r0, r1, r5 + adds r1, r4 + ldr r3, _08028564 + ldr r2, _08028568 str r2, [sp] - movs r1, 0x4 - str r1, [sp, 0x4] - str r2, [sp, 0x8] - ldr r1, [r6] - movs r2, 0x84 - lsls r2, 3 - adds r1, r2 - str r1, [sp, 0xC] - movs r1, 0xC - str r1, [sp, 0x10] - movs r1, 0 - movs r2, 0 - bl sub_8014248 - b _0802B2AA - .align 2, 0 -_0802B160: .4byte gUnknown_80DF73C -_0802B164: .4byte gUnknown_80DEEBC -_0802B168: - ldr r0, _0802B18C - ldr r3, _0802B190 + movs r2, 0x1 + str r2, [sp, 0x4] movs r2, 0 - str r2, [sp] - movs r1, 0x4 - str r1, [sp, 0x4] str r2, [sp, 0x8] - ldr r1, [r6] - movs r5, 0x84 - lsls r5, 3 - adds r1, r5 - str r1, [sp, 0xC] - movs r1, 0xC - str r1, [sp, 0x10] - movs r1, 0 - bl sub_8014248 - b _0802B2AA - .align 2, 0 -_0802B18C: .4byte gUnknown_80DF77C -_0802B190: .4byte gUnknown_80DEE7C -_0802B194: - ldr r0, _0802B1A0 - ldr r2, [r6] - movs r1, 0x84 - lsls r1, 3 - adds r2, r1 - b _0802B236 + str r2, [sp, 0xC] + movs r2, 0x3 + bl SetMenuItems + bl sub_8023DA4 + b _080288F6 .align 2, 0 -_0802B1A0: .4byte gUnknown_80DF7D4 -_0802B1A4: - ldr r0, _0802B1CC -_0802B1A6: - ldr r3, _0802B1D0 -_0802B1A8: +_08028564: .4byte gUnknown_80DDAE4 +_08028568: .4byte gUnknown_80DDAFC +_0802856C: + ldr r0, _08028594 + ldr r3, _08028598 movs r2, 0 str r2, [sp] movs r1, 0x4 @@ -1567,41 +536,26 @@ _0802B1A8: movs r2, 0x84 lsls r2, 3 adds r1, r2 -_0802B1BA: str r1, [sp, 0xC] movs r1, 0xC str r1, [sp, 0x10] movs r1, 0 - movs r2, 0x7 + movs r2, 0xA bl sub_8014248 - b _0802B2AA + b _08028AF2 .align 2, 0 -_0802B1CC: .4byte gUnknown_80DF870 -_0802B1D0: .4byte gUnknown_80DEE44 -_0802B1D4: - ldr r0, _0802B1D8 - b _0802B22E +_08028594: .4byte gUnknown_80DDD2C +_08028598: .4byte gUnknown_80DDAA0 +_0802859C: + ldr r0, _080285A4 + ldr r3, _080285A8 + b _08028A1C .align 2, 0 -_0802B1D8: .4byte gUnknown_80DF8B4 -_0802B1DC: - ldr r0, _0802B1F4 - ldr r3, _0802B1F8 - movs r2, 0 - str r2, [sp] - movs r1, 0x4 - str r1, [sp, 0x4] - str r2, [sp, 0x8] - ldr r1, [r6] - movs r5, 0x84 - lsls r5, 3 - adds r1, r5 - b _0802B212 - .align 2, 0 -_0802B1F4: .4byte gUnknown_80DF8EC -_0802B1F8: .4byte gUnknown_80DEDB8 -_0802B1FC: - ldr r0, _0802B224 - ldr r3, _0802B228 +_080285A4: .4byte gUnknown_80DDD88 +_080285A8: .4byte gUnknown_80DDA80 +_080285AC: + ldr r0, _080285C4 + ldr r3, _080285C8 movs r2, 0 str r2, [sp] movs r1, 0x4 @@ -1611,14315 +565,684 @@ _0802B1FC: movs r2, 0x84 lsls r2, 3 adds r1, r2 -_0802B212: - str r1, [sp, 0xC] - movs r1, 0xC - str r1, [sp, 0x10] - movs r1, 0 - movs r2, 0x1 - bl sub_8014248 - b _0802B2AA + b _08028A2E .align 2, 0 -_0802B224: .4byte gUnknown_80DF928 -_0802B228: .4byte gUnknown_80DEDB8 -_0802B22C: - ldr r0, _0802B240 -_0802B22E: +_080285C4: .4byte gUnknown_80DDDBC +_080285C8: .4byte gUnknown_80DDA64 +_080285CC: + ldr r0, _080285D8 ldr r2, [r6] movs r3, 0x84 lsls r3, 3 adds r2, r3 -_0802B236: - ldr r3, _0802B244 -_0802B238: - movs r1, 0 - bl sub_80141B4 - b _0802B2AA + b _08028A72 .align 2, 0 -_0802B240: .4byte gUnknown_80DF94C -_0802B244: .4byte 0x0000010d -_0802B248: - ldr r4, [r6] - movs r5, 0xA7 - lsls r5, 3 - adds r0, r4, r5 - ldr r0, [r0] - cmp r0, 0x1 - beq _0802B25C - cmp r0, 0x2 - beq _0802B288 - b _0802B2AA -_0802B25C: - ldr r0, _0802B280 - ldr r3, _0802B284 +_080285D8: .4byte gUnknown_80DDDD8 +_080285DC: + bl sub_8030894 + cmp r0, 0 + beq _080285E6 + b _08028AF2 +_080285E6: + bl ResetUnusedInputStruct + movs r0, 0 + movs r1, 0x1 + movs r2, 0x1 + bl sub_800641C + movs r0, 0x4 + b _080288BA +_080285F8: + ldr r0, _080285FC + b _08028A6A + .align 2, 0 +_080285FC: .4byte gUnknown_80DDE20 +_08028600: + ldr r0, _0802860C + ldr r2, [r6] + movs r1, 0x84 + lsls r1, 3 + adds r2, r1 + b _08028A72 + .align 2, 0 +_0802860C: .4byte gUnknown_80DDE58 +_08028610: + ldr r0, _08028638 + ldr r3, _0802863C movs r2, 0 str r2, [sp] movs r1, 0x4 str r1, [sp, 0x4] str r2, [sp, 0x8] + ldr r1, [r6] movs r2, 0x84 lsls r2, 3 - adds r1, r4, r2 - str r1, [sp, 0xC] - movs r1, 0xC - str r1, [sp, 0x10] - movs r1, 0 - movs r2, 0x3 - bl sub_8014248 - b _0802B2AA - .align 2, 0 -_0802B280: .4byte gUnknown_80DF96C -_0802B284: .4byte gUnknown_80DEE08 -_0802B288: - ldr r0, _0802B2B4 - ldr r3, _0802B2B8 - movs r2, 0 - str r2, [sp] - movs r1, 0x4 - str r1, [sp, 0x4] - str r2, [sp, 0x8] - movs r5, 0x84 - lsls r5, 3 - adds r1, r4, r5 + adds r1, r2 str r1, [sp, 0xC] movs r1, 0xC str r1, [sp, 0x10] movs r1, 0 - movs r2, 0x3 + movs r2, 0x11 bl sub_8014248 -_0802B2AA: - add sp, 0xB8 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_0802B2B4: .4byte gUnknown_80DF9A4 -_0802B2B8: .4byte gUnknown_80DEE08 - thumb_func_end sub_802ABF8 - - thumb_func_start sub_802B2BC -sub_802B2BC: - push {lr} - ldr r1, _0802B2D0 - ldr r1, [r1] - strb r0, [r1] - bl nullsub_131 - bl sub_802ABF8 - pop {r0} - bx r0 - .align 2, 0 -_0802B2D0: .4byte gUnknown_203B2C4 - thumb_func_end sub_802B2BC - - thumb_func_start sub_802B2D4 -sub_802B2D4: - push {r4,r5,lr} - bl ResetUnusedInputStruct - movs r0, 0 - movs r1, 0x1 - movs r2, 0x1 - bl sub_800641C - ldr r5, _0802B348 - movs r4, 0xA0 - lsls r4, 1 - adds r0, r4, 0 - movs r1, 0x8 - bl MemoryAlloc - str r0, [r5] - movs r1, 0 - adds r2, r4, 0 - bl MemoryFill8 - ldr r1, [r5] - movs r0, 0xFF - strb r0, [r1, 0x1] - ldr r0, _0802B34C - subs r4, 0x10 - adds r1, r4, 0 - bl sub_808D8E0 - adds r0, r4, 0 - bl GetDialogueSpriteDataPtr - ldr r1, [r5] - str r0, [r1, 0x4] - ldr r0, [r0, 0x4] - str r0, [r1, 0x8] - movs r2, 0 - strb r2, [r1, 0x10] - ldr r0, [r5] - strb r2, [r0, 0x11] - ldr r0, [r5] - strb r2, [r0, 0x12] - ldr r0, [r5] - movs r1, 0x2 - strh r1, [r0, 0xC] - movs r1, 0x8 - strh r1, [r0, 0xE] - adds r0, 0x1 - bl sub_8099394 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _0802B350 - movs r0, 0 - bl sub_802B548 - movs r0, 0x1 - b _0802B352 + b _08028AF2 .align 2, 0 -_0802B348: .4byte gUnknown_203B2C8 -_0802B34C: .4byte gUnknown_202E5D8 -_0802B350: - movs r0, 0 -_0802B352: - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_802B2D4 - - thumb_func_start sub_802B358 -sub_802B358: - push {lr} - ldr r0, _0802B370 - ldr r0, [r0] - ldrb r0, [r0] - cmp r0, 0x5 - bhi _0802B3B2 - lsls r0, 2 - ldr r1, _0802B374 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0802B370: .4byte gUnknown_203B2C8 -_0802B374: .4byte _0802B378 - .align 2, 0 -_0802B378: - .4byte _0802B390 - .4byte _0802B396 - .4byte _0802B39C - .4byte _0802B3A2 - .4byte _0802B3A8 - .4byte _0802B3AE -_0802B390: - bl sub_802B560 - b _0802B3B2 -_0802B396: - bl sub_802B57C - b _0802B3B2 -_0802B39C: - bl sub_802B5B8 - b _0802B3B2 -_0802B3A2: - bl sub_802B5FC - b _0802B3B2 -_0802B3A8: - bl sub_802B624 - b _0802B3B2 -_0802B3AE: - movs r0, 0x3 - b _0802B3B4 -_0802B3B2: - movs r0, 0 -_0802B3B4: - pop {r1} - bx r1 - thumb_func_end sub_802B358 - - thumb_func_start sub_802B3B8 -sub_802B3B8: - push {r4,lr} - ldr r4, _0802B3D8 - ldr r0, [r4] - cmp r0, 0 - beq _0802B3D2 - ldr r0, [r0, 0x4] - bl CloseFile - ldr r0, [r4] - bl MemoryFree - movs r0, 0 - str r0, [r4] -_0802B3D2: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0802B3D8: .4byte gUnknown_203B2C8 - thumb_func_end sub_802B3B8 - - thumb_func_start nullsub_132 -nullsub_132: - bx lr - thumb_func_end nullsub_132 - - thumb_func_start sub_802B3E0 -sub_802B3E0: - push {r4-r6,lr} - mov r6, r9 - mov r5, r8 - push {r5,r6} - sub sp, 0x28 - ldr r1, _0802B404 - ldr r0, [r1] - ldrb r0, [r0] - adds r2, r1, 0 - cmp r0, 0x5 - bls _0802B3F8 - b _0802B532 -_0802B3F8: - lsls r0, 2 - ldr r1, _0802B408 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0802B404: .4byte gUnknown_203B2C8 -_0802B408: .4byte _0802B40C - .align 2, 0 -_0802B40C: - .4byte _0802B424 - .4byte _0802B464 - .4byte _0802B50C - .4byte _0802B532 - .4byte _0802B524 - .4byte _0802B532 -_0802B424: - movs r0, 0 - bl sub_80023E4 - lsls r0, 24 - cmp r0, 0 - beq _0802B438 - mov r0, sp - bl sub_80920D8 - b _0802B440 -_0802B438: - ldr r1, _0802B458 - mov r0, sp - bl strcpy -_0802B440: - ldr r4, _0802B45C - ldr r0, [r4] - adds r0, 0x14 - ldr r1, _0802B460 - mov r2, sp - bl sub_800D158 - ldr r2, [r4] - adds r0, r2, 0 - adds r0, 0x14 - b _0802B510 - .align 2, 0 -_0802B458: .4byte gUnknown_80DF9F0 -_0802B45C: .4byte gUnknown_203B2C8 -_0802B460: .4byte gUnknown_80DF9F8 -_0802B464: - movs r6, 0x98 - lsls r6, 1 - adds r0, r6, 0 - bl GetMonSpecies - adds r1, r0, 0 - ldr r5, _0802B500 - ldr r0, [r5] - movs r2, 0x8A - lsls r2, 1 - mov r9, r2 - add r0, r9 - bl strcpy - ldr r2, [r5] - movs r3, 0x94 - lsls r3, 1 - adds r0, r2, r3 - movs r1, 0 - mov r8, r1 - movs r1, 0 - strh r6, [r0] - adds r3, 0x2 +_08028638: .4byte gUnknown_80DDEC0 +_0802863C: .4byte gUnknown_80DDB60 +_08028640: + ldr r0, _0802864C + ldr r2, [r6] + movs r3, 0x84 + lsls r3, 3 adds r2, r3 - movs r0, 0x2 - strb r0, [r2] - ldr r0, [r5] - movs r2, 0x96 - lsls r2, 1 - adds r0, r2 - str r1, [r0] - bl sub_8097790 - ldr r0, [r5] - ldrb r0, [r0, 0x1] - bl sub_8095228 - adds r4, r0, 0 - adds r4, 0x4 - ldr r2, [r5] - adds r2, r6 - adds r0, r4, 0 - movs r1, 0 - bl sub_803C37C - adds r0, r4, 0 - movs r1, 0 - bl sub_803C200 - ldr r2, [r5] - movs r3, 0x9C - lsls r3, 1 - adds r1, r2, r3 - str r0, [r1] - ldr r1, _0802B504 - adds r0, r2, r1 - mov r2, r8 - strb r2, [r0] - ldr r0, [r5] - subs r3, 0x6 - adds r0, r3 - strb r2, [r0] - ldr r0, [r5] - ldr r2, _0802B508 - adds r1, r0, r2 - movs r0, 0xA - strb r0, [r1] - ldr r0, [r5] - adds r3, 0x2 - adds r0, r3 - mov r1, r8 - strb r1, [r0] - ldr r0, [r5] - add r0, r9 - movs r1, 0 - bl sub_802F204 - b _0802B532 - .align 2, 0 -_0802B500: .4byte gUnknown_203B2C8 -_0802B504: .4byte 0x00000131 -_0802B508: .4byte 0x00000133 -_0802B50C: - ldr r0, _0802B51C - ldr r2, [r2] -_0802B510: - adds r2, 0x4 - ldr r3, _0802B520 - movs r1, 0 - bl sub_80141B4 - b _0802B532 - .align 2, 0 -_0802B51C: .4byte gUnknown_80DFAA8 -_0802B520: .4byte 0x0000010d -_0802B524: - ldr r0, _0802B540 - ldr r2, [r2] - adds r2, 0x4 - ldr r3, _0802B544 - movs r1, 0 - bl sub_80141B4 -_0802B532: - add sp, 0x28 - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_0802B540: .4byte gUnknown_80DFB14 -_0802B544: .4byte 0x0000010d - thumb_func_end sub_802B3E0 - - thumb_func_start sub_802B548 -sub_802B548: - push {lr} - ldr r1, _0802B55C - ldr r1, [r1] - strb r0, [r1] - bl nullsub_132 - bl sub_802B3E0 - pop {r0} - bx r0 - .align 2, 0 -_0802B55C: .4byte gUnknown_203B2C8 - thumb_func_end sub_802B548 - - thumb_func_start sub_802B560 -sub_802B560: - push {lr} - sub sp, 0x4 - mov r0, sp - bl sub_80144A4 - cmp r0, 0 - bne _0802B574 - movs r0, 0x1 - bl sub_802B548 -_0802B574: - add sp, 0x4 - pop {r0} - bx r0 - thumb_func_end sub_802B560 - - thumb_func_start sub_802B57C -sub_802B57C: - push {r4,lr} - bl sub_802F298 - cmp r0, 0x3 - bne _0802B5AA - bl sub_802F2C0 - ldr r0, _0802B5B0 - movs r4, 0x98 - lsls r4, 1 - adds r1, r4, 0 - bl sub_808D8E0 - adds r0, r4, 0 - bl GetMonSpecies - adds r1, r0, 0 - ldr r0, _0802B5B4 - bl strcpy - movs r0, 0x2 - bl sub_802B548 -_0802B5AA: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0802B5B0: .4byte gUnknown_202E5D8 -_0802B5B4: .4byte gAvailablePokemonNames - thumb_func_end sub_802B57C - - thumb_func_start sub_802B5B8 -sub_802B5B8: - push {r4,lr} - sub sp, 0x4 - mov r0, sp - bl sub_80144A4 - cmp r0, 0 - bne _0802B5EE - bl sub_8011C34 - adds r4, r0, 0 - ldr r0, _0802B5F8 - ldr r0, [r0] - ldrb r0, [r0, 0x1] - bl sub_8095228 - movs r1, 0x4 - strb r1, [r0] - str r4, [r0, 0x28] - movs r0, 0x3 - bl sub_802B548 - movs r0, 0x1 - bl sub_8011C28 - movs r0, 0 - bl sub_8012574 -_0802B5EE: - add sp, 0x4 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0802B5F8: .4byte gUnknown_203B2C8 - thumb_func_end sub_802B5B8 - - thumb_func_start sub_802B5FC -sub_802B5FC: - push {lr} - sub sp, 0x4 - mov r0, sp - bl sub_80144A4 - cmp r0, 0 - bne _0802B61E - bl sub_8012600 - lsls r0, 24 - cmp r0, 0 - bne _0802B61E - bl sub_8012750 - movs r0, 0x4 - bl sub_802B548 -_0802B61E: - add sp, 0x4 - pop {r0} - bx r0 - thumb_func_end sub_802B5FC - - thumb_func_start sub_802B624 -sub_802B624: - push {lr} - sub sp, 0x4 - mov r0, sp - bl sub_80144A4 - cmp r0, 0 - bne _0802B638 - movs r0, 0x5 - bl sub_802B548 -_0802B638: - add sp, 0x4 - pop {r0} - bx r0 - thumb_func_end sub_802B624 - - thumb_func_start sub_802B640 -sub_802B640: - push {r4-r7,lr} - mov r7, r8 - push {r7} - adds r6, r0, 0 - adds r4, r1, 0 - mov r8, r2 - bl sub_802B9D8 - lsls r0, 24 - cmp r0, 0 - beq _0802B65A - movs r0, 0 - b _0802B706 -_0802B65A: - ldr r5, _0802B710 - ldr r0, [r5] - cmp r0, 0 - bne _0802B66C - movs r0, 0xD4 - movs r1, 0x8 - bl MemoryAlloc - str r0, [r5] -_0802B66C: - ldr r0, [r5] - str r6, [r0, 0x6C] - lsls r1, r6, 1 - adds r1, r6 - lsls r1, 3 - adds r1, 0x74 - adds r1, r0, r1 - str r1, [r0, 0x70] - adds r0, 0x74 - bl sub_8006518 - ldr r1, [r5] - ldr r2, [r1, 0x6C] - lsls r0, r2, 1 - adds r0, r2 - lsls r0, 3 - adds r1, r0 - adds r1, 0x74 - ldr r0, _0802B714 - ldm r0!, {r2,r3,r7} - stm r1!, {r2,r3,r7} - ldm r0!, {r2,r3,r7} - stm r1!, {r2,r3,r7} - cmp r4, 0 - beq _0802B6B0 - ldr r1, [r5] - ldr r2, [r1, 0x6C] - lsls r0, r2, 1 - adds r0, r2 - lsls r0, 3 - adds r1, 0x7C - adds r1, r0 - ldr r0, [r4] - str r0, [r1] -_0802B6B0: - ldr r0, [r5] - ldr r0, [r0, 0x70] - mov r1, r8 - bl sub_8012D08 - bl ResetUnusedInputStruct - ldr r0, [r5] - adds r0, 0x74 - movs r1, 0x1 - movs r2, 0x1 - bl sub_800641C - ldr r4, [r5] - adds r4, 0x38 - bl sub_802B9A8 - adds r1, r0, 0 - adds r0, r4, 0 - mov r2, r8 - adds r3, r6, 0 - bl sub_8013818 - ldr r2, [r5] - ldr r0, _0802B718 - ldrh r1, [r0] - adds r0, r2, 0 - adds r0, 0x50 - strh r1, [r0] - ldr r0, _0802B71C - ldrh r0, [r0] - adds r1, r2, 0 - adds r1, 0x56 - strh r0, [r1] - adds r0, r2, 0 - adds r0, 0x38 - bl sub_8013984 - bl sub_802B880 - bl sub_802B8D4 - movs r0, 0x1 -_0802B706: - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r1} - bx r1 + b _08028A72 .align 2, 0 -_0802B710: .4byte gUnknown_203B2CC -_0802B714: .4byte gUnknown_80DFBEC -_0802B718: .4byte gUnknown_203B2D0 -_0802B71C: .4byte gUnknown_203B2D2 - thumb_func_end sub_802B640 - - thumb_func_start sub_802B720 -sub_802B720: - push {lr} - lsls r0, 24 - cmp r0, 0 - bne _0802B73C - ldr r0, _0802B738 - ldr r0, [r0] - adds r0, 0x38 - bl sub_8013660 - movs r0, 0 - b _0802B7A2 +_0802864C: .4byte gUnknown_80DDF2C +_08028650: + ldr r0, _08028658 + ldr r3, _0802865C + b _08028A1C .align 2, 0 -_0802B738: .4byte gUnknown_203B2CC -_0802B73C: - ldr r0, _0802B754 - ldr r0, [r0] - adds r0, 0x38 - bl GetKeyPress - cmp r0, 0x2 - beq _0802B75E - cmp r0, 0x2 - bgt _0802B758 - cmp r0, 0x1 - beq _0802B768 - b _0802B77C - .align 2, 0 -_0802B754: .4byte gUnknown_203B2CC -_0802B758: - cmp r0, 0x4 - beq _0802B772 - b _0802B77C -_0802B75E: - movs r0, 0x1 - bl PlayMenuSoundEffect - movs r0, 0x2 - b _0802B7A2 -_0802B768: +_08028658: .4byte gUnknown_80DDFB8 +_0802865C: .4byte gUnknown_80DDA48 +_08028660: movs r0, 0 - bl PlayMenuSoundEffect - movs r0, 0x3 - b _0802B7A2 -_0802B772: - movs r0, 0x4 - bl PlayMenuSoundEffect - movs r0, 0x4 - b _0802B7A2 -_0802B77C: - ldr r0, _0802B794 - ldr r0, [r0] - adds r0, 0x38 - movs r1, 0x1 - bl sub_80138B8 - lsls r0, 24 - cmp r0, 0 - bne _0802B798 - movs r0, 0 - b _0802B7A2 - .align 2, 0 -_0802B794: .4byte gUnknown_203B2CC -_0802B798: - bl sub_802B880 - bl sub_802B8D4 - movs r0, 0x1 -_0802B7A2: - pop {r1} - bx r1 - thumb_func_end sub_802B720 - - thumb_func_start sub_802B7A8 -sub_802B7A8: - ldr r0, _0802B7CC - ldr r2, [r0] - adds r0, r2, 0 - adds r0, 0x56 - movs r3, 0 - ldrsh r1, [r0, r3] - subs r0, 0x2 - movs r3, 0 - ldrsh r0, [r0, r3] - muls r0, r1 - adds r1, r2, 0 - adds r1, 0x50 - movs r3, 0 - ldrsh r1, [r1, r3] - adds r0, r1 - adds r0, r2, r0 - ldrb r0, [r0] - bx lr - .align 2, 0 -_0802B7CC: .4byte gUnknown_203B2CC - thumb_func_end sub_802B7A8 - - thumb_func_start sub_802B7D0 -sub_802B7D0: - push {r4,r5,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - bl ResetUnusedInputStruct - ldr r5, _0802B818 - ldr r0, [r5] - adds r0, 0x74 + bl nullsub_23 + ldr r0, _08028674 movs r1, 0 movs r2, 0 - bl sub_800641C - bl sub_802B9A8 - adds r1, r0, 0 - ldr r0, [r5] - adds r2, r0, 0 - adds r2, 0x5A - strh r1, [r2] - adds r0, 0x38 - bl sub_8013984 - bl sub_802B880 - bl sub_802B8D4 - cmp r4, 0 - beq _0802B812 - ldr r0, [r5] - adds r0, 0x38 - bl AddMenuCursorSprite -_0802B812: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_0802B818: .4byte gUnknown_203B2CC - thumb_func_end sub_802B7D0 - - thumb_func_start sub_802B81C -sub_802B81C: - push {r4,r5,lr} - ldr r4, _0802B870 - ldr r2, [r4] - cmp r2, 0 - beq _0802B86A - ldr r1, _0802B874 - adds r0, r2, 0 - adds r0, 0x50 - ldrh r0, [r0] - strh r0, [r1] - ldr r1, _0802B878 - adds r0, r2, 0 - adds r0, 0x56 - ldrh r0, [r0] - strh r0, [r1] - ldr r0, [r2, 0x6C] - lsls r1, r0, 1 - adds r1, r0 - lsls r1, 3 - adds r1, r2, r1 - adds r1, 0x74 - ldr r0, _0802B87C - ldm r0!, {r2,r3,r5} - stm r1!, {r2,r3,r5} - ldm r0!, {r2,r3,r5} - stm r1!, {r2,r3,r5} - bl ResetUnusedInputStruct - ldr r0, [r4] - adds r0, 0x74 - movs r1, 0x1 - movs r2, 0x1 - bl sub_800641C - ldr r0, [r4] - bl MemoryFree - movs r0, 0 - str r0, [r4] -_0802B86A: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_0802B870: .4byte gUnknown_203B2CC -_0802B874: .4byte gUnknown_203B2D0 -_0802B878: .4byte gUnknown_203B2D2 -_0802B87C: .4byte gUnknown_80DFBD0 - thumb_func_end sub_802B81C - - thumb_func_start sub_802B880 -sub_802B880: - push {r4,lr} - ldr r4, _0802B8D0 - ldr r0, [r4] - adds r0, 0x52 - movs r1, 0 - ldrsh r0, [r0, r1] - movs r1, 0xC - bl sub_80095E4 - adds r0, 0x2 - lsls r0, 16 - ldr r2, [r4] - ldr r3, [r2, 0x6C] - lsls r1, r3, 1 - adds r1, r3 - lsls r1, 3 - adds r1, r2, r1 - adds r1, 0x82 - asrs r3, r0, 16 - lsrs r0, 16 - strh r0, [r1] - ldr r1, [r2, 0x6C] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 3 - adds r2, r0 - adds r3, 0x2 - adds r2, 0x84 - strh r3, [r2] - bl ResetUnusedInputStruct - ldr r0, [r4] - adds r0, 0x74 - movs r1, 0x1 - movs r2, 0x1 - bl sub_800641C - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0802B8D0: .4byte gUnknown_203B2CC - thumb_func_end sub_802B880 - - thumb_func_start sub_802B8D4 -sub_802B8D4: - push {r4-r7,lr} - sub sp, 0x8 - ldr r4, _0802B99C - ldr r0, [r4] - ldr r0, [r0, 0x6C] - bl sub_8008C54 - ldr r0, [r4] - ldr r0, [r0, 0x6C] - bl sub_80073B8 - ldr r2, _0802B9A0 - ldr r0, [r4] - ldr r3, [r0, 0x6C] - movs r0, 0 - str r0, [sp] - movs r0, 0xA - movs r1, 0 - bl xxx_call_draw_string - ldr r0, _0802B9A4 - ldrb r0, [r0, 0x2] - lsls r0, 3 - adds r0, 0x4 - ldr r3, [r4] - adds r1, r3, 0 - adds r1, 0x56 - movs r5, 0 - ldrsh r2, [r1, r5] - adds r2, 0x1 - movs r1, 0x7 - str r1, [sp] - ldr r1, [r3, 0x6C] - str r1, [sp, 0x4] - movs r1, 0 - movs r3, 0x2 - bl sub_8012BC4 - movs r6, 0 - ldr r0, [r4] - adds r0, 0x52 - movs r1, 0 - ldrsh r0, [r0, r1] - cmp r6, r0 - bge _0802B98A - adds r7, r4, 0 -_0802B930: - ldr r0, [r7] - adds r0, 0x38 - adds r1, r6, 0 - bl sub_8013800 - adds r5, r0, 0 - ldr r1, [r7] - adds r0, r1, 0 - adds r0, 0x56 - movs r3, 0 - ldrsh r2, [r0, r3] - subs r0, 0x2 movs r3, 0 - ldrsh r0, [r0, r3] - muls r0, r2 - adds r0, r6 - adds r0, r1, r0 - ldrb r4, [r0] - ldr r3, [r1, 0x6C] - movs r0, 0xA - adds r1, r5, 0 - movs r2, 0x6 - bl sub_803B6B0 - bl sub_802BC7C - adds r0, r4, 0 - bl GetPokemonMailHeadline - adds r2, r0, 0 - ldr r0, [r7] - ldr r3, [r0, 0x6C] - movs r0, 0 - str r0, [sp] - movs r0, 0x15 - adds r1, r5, 0 - bl sub_8014FF0 - adds r6, 0x1 - ldr r0, [r7] - adds r0, 0x52 - movs r5, 0 - ldrsh r0, [r0, r5] - cmp r6, r0 - blt _0802B930 -_0802B98A: - ldr r0, _0802B99C - ldr r0, [r0] - ldr r0, [r0, 0x6C] - bl sub_80073E0 - add sp, 0x8 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0802B99C: .4byte gUnknown_203B2CC -_0802B9A0: .4byte gUnknown_80DFC04 -_0802B9A4: .4byte gUnknown_80DFBE8 - thumb_func_end sub_802B8D4 - - thumb_func_start sub_802B9A8 -sub_802B9A8: - push {r4,r5,lr} - movs r5, 0 - movs r4, 0 -_0802B9AE: - lsls r0, r4, 24 - lsrs r0, 24 - bl sub_8096E14 - lsls r0, 24 - cmp r0, 0 - beq _0802B9C6 - ldr r0, _0802B9D4 - ldr r0, [r0] - adds r0, r5 - strb r4, [r0] - adds r5, 0x1 -_0802B9C6: - adds r4, 0x1 - cmp r4, 0x37 - ble _0802B9AE - adds r0, r5, 0 - pop {r4,r5} - pop {r1} - bx r1 - .align 2, 0 -_0802B9D4: .4byte gUnknown_203B2CC - thumb_func_end sub_802B9A8 - - thumb_func_start sub_802B9D8 -sub_802B9D8: - push {r4,lr} - movs r4, 0 -_0802B9DC: - lsls r0, r4, 24 - lsrs r0, 24 - bl sub_8096E14 - lsls r0, 24 - cmp r0, 0 - beq _0802B9EE - movs r0, 0 - b _0802B9F6 -_0802B9EE: - adds r4, 0x1 - cmp r4, 0x37 - ble _0802B9DC - movs r0, 0x1 -_0802B9F6: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_802B9D8 - - thumb_func_start sub_802B9FC -sub_802B9FC: - push {r4-r7,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - ldr r5, _0802BA80 - movs r0, 0x94 - movs r1, 0x8 - bl MemoryAlloc - str r0, [r5] - movs r6, 0 - strb r4, [r0, 0x4] - ldr r0, [r5] - adds r0, 0x88 - bl sub_801317C - ldr r1, [r5] - str r6, [r1, 0x24] - adds r1, 0x28 - ldr r0, _0802BA84 - ldm r0!, {r2-r4} - stm r1!, {r2-r4} - ldm r0!, {r2,r3,r7} - stm r1!, {r2,r3,r7} - ldr r1, [r5] - ldr r2, _0802BA88 - adds r1, 0x40 - adds r0, r2, 0 - ldm r0!, {r3,r4,r7} - stm r1!, {r3,r4,r7} - ldm r0!, {r3,r4,r7} - stm r1!, {r3,r4,r7} - ldr r1, [r5] - adds r1, 0x58 - adds r0, r2, 0 - ldm r0!, {r3,r4,r7} - stm r1!, {r3,r4,r7} - ldm r0!, {r3,r4,r7} - stm r1!, {r3,r4,r7} - ldr r0, [r5] - adds r0, 0x70 - ldm r2!, {r1,r4,r7} - stm r0!, {r1,r4,r7} - ldm r2!, {r3,r4,r7} - stm r0!, {r3,r4,r7} - bl ResetUnusedInputStruct - ldr r0, [r5] - adds r0, 0x28 - movs r1, 0x1 - movs r2, 0x1 - bl sub_800641C - ldr r0, [r5] - str r6, [r0, 0x8] - bl sub_802BCC4 - bl sub_802BC7C - movs r0, 0 - bl sub_802BB14 - movs r0, 0x1 - pop {r4-r7} - pop {r1} - bx r1 - .align 2, 0 -_0802BA80: .4byte gUnknown_203B2D4 -_0802BA84: .4byte gUnknown_80DFC34 -_0802BA88: .4byte gUnknown_80DFC18 - thumb_func_end sub_802B9FC - - thumb_func_start sub_802BA8C -sub_802BA8C: - push {lr} - ldr r0, _0802BAA4 - ldr r0, [r0] - ldr r0, [r0] - cmp r0, 0x1 - beq _0802BAB8 - cmp r0, 0x1 - bgt _0802BAA8 - cmp r0, 0 - beq _0802BAB2 - b _0802BAC2 - .align 2, 0 -_0802BAA4: .4byte gUnknown_203B2D4 -_0802BAA8: - cmp r0, 0x2 - beq _0802BAC2 - cmp r0, 0x3 - beq _0802BABE - b _0802BAC2 -_0802BAB2: - bl sub_802BB98 - b _0802BAC6 -_0802BAB8: - bl sub_802BC08 - b _0802BAC6 -_0802BABE: - movs r0, 0x3 - b _0802BAC8 -_0802BAC2: - movs r0, 0x2 - b _0802BAC8 -_0802BAC6: - movs r0, 0 -_0802BAC8: - pop {r1} - bx r1 - thumb_func_end sub_802BA8C - - thumb_func_start sub_802BACC -sub_802BACC: - push {r4,r5,lr} - ldr r4, _0802BB0C - ldr r2, [r4] - cmp r2, 0 - beq _0802BB06 - ldr r0, [r2, 0x24] - lsls r1, r0, 1 - adds r1, r0 - lsls r1, 3 - adds r1, r2, r1 - adds r1, 0x28 - ldr r0, _0802BB10 - ldm r0!, {r2,r3,r5} - stm r1!, {r2,r3,r5} - ldm r0!, {r2,r3,r5} - stm r1!, {r2,r3,r5} - bl ResetUnusedInputStruct - ldr r0, [r4] - adds r0, 0x28 - movs r1, 0x1 - movs r2, 0x1 - bl sub_800641C - ldr r0, [r4] - bl MemoryFree - movs r0, 0 - str r0, [r4] -_0802BB06: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_0802BB0C: .4byte gUnknown_203B2D4 -_0802BB10: .4byte gUnknown_80DFC18 - thumb_func_end sub_802BACC - - thumb_func_start sub_802BB14 -sub_802BB14: - push {lr} - ldr r1, _0802BB24 - ldr r1, [r1] - str r0, [r1] - bl sub_802BB28 - pop {r0} - bx r0 - .align 2, 0 -_0802BB24: .4byte gUnknown_203B2D4 - thumb_func_end sub_802BB14 - - thumb_func_start sub_802BB28 -sub_802BB28: - push {r4,r5,lr} - sub sp, 0x4 - ldr r5, _0802BB94 - ldr r1, [r5] - ldr r0, [r1] - cmp r0, 0 - blt _0802BB8C - cmp r0, 0x1 - bgt _0802BB8C - ldr r0, [r1, 0x24] - bl sub_8008C54 - ldr r0, [r5] - ldr r0, [r0, 0x24] - bl sub_80073B8 - ldr r0, [r5] - ldrb r0, [r0, 0x4] - bl GetPokemonMailHeadline - adds r2, r0, 0 - ldr r0, [r5] - ldr r3, [r0, 0x24] - movs r4, 0 - str r4, [sp] - movs r0, 0xA - movs r1, 0 - bl sub_8014FF0 - ldr r3, [r5] - ldr r1, [r3, 0x8] - lsls r1, 2 - adds r0, r3, 0 - adds r0, 0x10 - adds r0, r1 - ldr r2, [r0] - ldr r3, [r3, 0x24] - str r4, [sp] - movs r0, 0x6 - movs r1, 0x14 - bl sub_8014FF0 - ldr r0, [r5] - ldr r0, [r0, 0x24] - bl sub_80073E0 - ldr r1, [r5] - ldr r0, [r1, 0x8] - adds r0, 0x1 - str r0, [r1, 0x8] -_0802BB8C: - add sp, 0x4 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_0802BB94: .4byte gUnknown_203B2D4 - thumb_func_end sub_802BB28 - - thumb_func_start sub_802BB98 -sub_802BB98: - push {r4,lr} - ldr r0, _0802BBD4 - ldr r2, [r0] - ldr r1, [r2, 0xC] - adds r4, r0, 0 - cmp r1, 0 - beq _0802BBBC - ldr r0, [r2, 0x20] - movs r1, 0x8 - ands r0, r1 - cmp r0, 0 - beq _0802BBB4 - bl sub_8013E54 -_0802BBB4: - ldr r1, [r4] - ldr r0, [r1, 0x20] - adds r0, 0x1 - str r0, [r1, 0x20] -_0802BBBC: - ldr r1, [r4] - adds r0, r1, 0 - adds r0, 0x88 - ldr r1, [r1, 0x24] - bl sub_8012A64 - cmp r0, 0x1 - beq _0802BBD8 - cmp r0, 0x2 - beq _0802BBF6 - b _0802BC02 - .align 2, 0 -_0802BBD4: .4byte gUnknown_203B2D4 -_0802BBD8: - movs r0, 0 - bl PlayMenuSoundEffect - ldr r0, [r4] - ldr r0, [r0, 0xC] - cmp r0, 0 - beq _0802BBEE - movs r0, 0x1 - bl sub_802BB14 - b _0802BC02 -_0802BBEE: - movs r0, 0x3 - bl sub_802BB14 - b _0802BC02 -_0802BBF6: - movs r0, 0x1 - bl PlayMenuSoundEffect - movs r0, 0x2 - bl sub_802BB14 -_0802BC02: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_802BB98 - - thumb_func_start sub_802BC08 -sub_802BC08: - push {r4,lr} - ldr r0, _0802BC44 - ldr r3, [r0] - ldr r2, [r3, 0x8] - ldr r1, [r3, 0xC] - adds r4, r0, 0 - cmp r2, r1 - bge _0802BC2E - ldr r0, [r3, 0x20] - movs r1, 0x8 - ands r0, r1 - cmp r0, 0 - beq _0802BC26 - bl sub_8013E54 -_0802BC26: - ldr r1, [r4] - ldr r0, [r1, 0x20] - adds r0, 0x1 - str r0, [r1, 0x20] -_0802BC2E: - ldr r1, [r4] - adds r0, r1, 0 - adds r0, 0x88 - ldr r1, [r1, 0x24] - bl sub_8012A64 - cmp r0, 0x1 - beq _0802BC48 - cmp r0, 0x2 - beq _0802BC68 - b _0802BC74 - .align 2, 0 -_0802BC44: .4byte gUnknown_203B2D4 -_0802BC48: - movs r0, 0 - bl PlayMenuSoundEffect - ldr r0, [r4] - ldr r1, [r0, 0x8] - ldr r0, [r0, 0xC] - cmp r1, r0 - bge _0802BC60 - movs r0, 0x1 - bl sub_802BB14 - b _0802BC74 -_0802BC60: - movs r0, 0x3 - bl sub_802BB14 - b _0802BC74 -_0802BC68: - movs r0, 0x1 - bl PlayMenuSoundEffect - movs r0, 0x2 - bl sub_802BB14 -_0802BC74: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_802BC08 - - thumb_func_start sub_802BC7C -sub_802BC7C: - push {r4,lr} - ldr r4, _0802BCA4 - bl sub_808D3BC - adds r1, r0, 0 - adds r0, r4, 0 - bl sub_808DA34 - ldr r0, _0802BCA8 - ldr r0, [r0] - ldrb r0, [r0, 0xB] - cmp r0, 0x1 - bne _0802BCB0 - adds r0, r4, 0 - adds r0, 0x50 - ldr r1, _0802BCAC - bl strcpy - b _0802BCBA - .align 2, 0 -_0802BCA4: .4byte gAvailablePokemonNames -_0802BCA8: .4byte gUnknown_203B46C -_0802BCAC: .4byte gUnknown_80DFC4C -_0802BCB0: - adds r0, r4, 0 - adds r0, 0x50 - ldr r1, _0802BCC0 - bl strcpy -_0802BCBA: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0802BCC0: .4byte gUnknown_80DFC50 - thumb_func_end sub_802BC7C - - thumb_func_start sub_802BCC4 -sub_802BCC4: - push {r4,lr} - ldr r4, _0802BCDC - ldr r0, [r4] - ldrb r0, [r0, 0x4] - bl GetPokemonMailText - adds r3, r0, 0 - ldr r1, [r4] - movs r0, 0 - str r0, [r1, 0xC] - str r3, [r1, 0x10] - b _0802BD08 - .align 2, 0 -_0802BCDC: .4byte gUnknown_203B2D4 -_0802BCE0: - cmp r0, 0x23 - bne _0802BD06 - ldrb r2, [r3, 0x1] - cmp r2, 0x50 - beq _0802BCF0 - adds r1, r3, 0x2 - cmp r2, 0x70 - bne _0802BD02 -_0802BCF0: - ldr r0, [r4] - ldr r1, [r0, 0xC] - adds r1, 0x1 - str r1, [r0, 0xC] - lsls r1, 2 - adds r0, 0x10 - adds r0, r1 - adds r1, r3, 0x2 - str r1, [r0] -_0802BD02: - adds r3, r1, 0 - b _0802BD08 -_0802BD06: - adds r3, 0x1 -_0802BD08: - ldrb r0, [r3] - cmp r0, 0 - bne _0802BCE0 - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_802BCC4 - - thumb_func_start sub_802BD14 -sub_802BD14: - push {r4-r7,lr} - mov r7, r8 - push {r7} - adds r6, r0, 0 - adds r4, r1, 0 - mov r8, r2 - bl sub_802C0E8 - lsls r0, 24 - cmp r0, 0 - beq _0802BD2E - movs r0, 0 - b _0802BDD4 -_0802BD2E: - ldr r5, _0802BDE0 - ldr r0, [r5] - cmp r0, 0 - bne _0802BD40 - movs r0, 0xA4 - movs r1, 0x8 - bl MemoryAlloc - str r0, [r5] -_0802BD40: - ldr r0, [r5] - str r6, [r0, 0x38] - lsls r1, r6, 1 - adds r1, r6 - lsls r1, 3 - adds r1, 0x40 - adds r1, r0, r1 - str r1, [r0, 0x3C] - adds r0, 0x40 - bl sub_8006518 - ldr r1, [r5] - ldr r2, [r1, 0x38] - lsls r0, r2, 1 - adds r0, r2 - lsls r0, 3 - adds r1, r0 - adds r1, 0x40 - ldr r0, _0802BDE4 - ldm r0!, {r2,r3,r7} - stm r1!, {r2,r3,r7} - ldm r0!, {r2,r3,r7} - stm r1!, {r2,r3,r7} - ldr r2, [r5] - ldr r1, [r2, 0x3C] - adds r0, r2, 0 - adds r0, 0xA0 - str r0, [r1, 0x14] - cmp r4, 0 - beq _0802BD8E - ldr r1, [r2, 0x38] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 3 - adds r1, r2, 0 - adds r1, 0x48 - adds r1, r0 - ldr r0, [r4] - str r0, [r1] -_0802BD8E: - ldr r0, [r5] - ldr r0, [r0, 0x3C] - mov r1, r8 - bl sub_8012D34 - bl ResetUnusedInputStruct - ldr r0, [r5] - adds r0, 0x40 - movs r1, 0x1 - movs r2, 0x1 - bl sub_800641C - ldr r4, [r5] - adds r4, 0x4 - bl sub_802C0B8 - adds r1, r0, 0 - adds r0, r4, 0 - mov r2, r8 - adds r3, r6, 0 - bl sub_8013848 - ldr r0, [r5] - ldr r1, _0802BDE8 - ldrh r1, [r1] - strh r1, [r0, 0x1C] - adds r0, 0x4 - bl sub_8013984 - bl sub_802BF30 - bl CreateMailMenu - movs r0, 0x1 -_0802BDD4: - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r1} - bx r1 - .align 2, 0 -_0802BDE0: .4byte gUnknown_203B2D8 -_0802BDE4: .4byte gUnknown_80DFC74 -_0802BDE8: .4byte gUnknown_203B2DC - thumb_func_end sub_802BD14 - - thumb_func_start sub_802BDEC -sub_802BDEC: - push {lr} - lsls r0, 24 - cmp r0, 0 - bne _0802BE08 - ldr r0, _0802BE04 - ldr r0, [r0] - adds r0, 0x4 - bl sub_8013660 - movs r0, 0 - b _0802BE6E - .align 2, 0 -_0802BE04: .4byte gUnknown_203B2D8 -_0802BE08: - ldr r0, _0802BE20 - ldr r0, [r0] - adds r0, 0x4 - bl GetKeyPress - cmp r0, 0x2 - beq _0802BE2A - cmp r0, 0x2 - bgt _0802BE24 - cmp r0, 0x1 - beq _0802BE34 - b _0802BE48 - .align 2, 0 -_0802BE20: .4byte gUnknown_203B2D8 -_0802BE24: - cmp r0, 0x4 - beq _0802BE3E - b _0802BE48 -_0802BE2A: - movs r0, 0x1 - bl PlayMenuSoundEffect - movs r0, 0x2 - b _0802BE6E -_0802BE34: - movs r0, 0 - bl PlayMenuSoundEffect - movs r0, 0x3 - b _0802BE6E -_0802BE3E: - movs r0, 0x4 - bl PlayMenuSoundEffect - movs r0, 0x4 - b _0802BE6E -_0802BE48: - ldr r0, _0802BE60 - ldr r0, [r0] - adds r0, 0x4 - movs r1, 0x1 - bl sub_80138B8 - lsls r0, 24 - cmp r0, 0 - bne _0802BE64 - movs r0, 0 - b _0802BE6E - .align 2, 0 -_0802BE60: .4byte gUnknown_203B2D8 -_0802BE64: - bl sub_802BF30 - bl CreateMailMenu - movs r0, 0x1 -_0802BE6E: - pop {r1} - bx r1 - thumb_func_end sub_802BDEC - - thumb_func_start sub_802BE74 -sub_802BE74: - ldr r0, _0802BE90 - ldr r1, [r0] - movs r0, 0x22 - ldrsh r2, [r1, r0] - movs r3, 0x20 - ldrsh r0, [r1, r3] - muls r0, r2 - movs r3, 0x1C - ldrsh r2, [r1, r3] - adds r0, r2 - adds r1, r0 - ldrb r0, [r1] - bx lr - .align 2, 0 -_0802BE90: .4byte gUnknown_203B2D8 - thumb_func_end sub_802BE74 - - thumb_func_start sub_802BE94 -sub_802BE94: - push {r4,r5,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - bl ResetUnusedInputStruct - ldr r5, _0802BED8 - ldr r0, [r5] - adds r0, 0x40 - movs r1, 0 - movs r2, 0 - bl sub_800641C - bl sub_802C0B8 - adds r1, r0, 0 - ldr r0, [r5] - strh r1, [r0, 0x26] - adds r0, 0x4 - bl sub_8013984 - bl sub_802BF30 - bl CreateMailMenu - cmp r4, 0 - beq _0802BED2 - ldr r0, [r5] - adds r0, 0x4 - bl AddMenuCursorSprite -_0802BED2: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_0802BED8: .4byte gUnknown_203B2D8 - thumb_func_end sub_802BE94 - - thumb_func_start sub_802BEDC -sub_802BEDC: - push {r4,r5,lr} - ldr r4, _0802BF24 - ldr r2, [r4] - cmp r2, 0 - beq _0802BF1C - ldr r1, _0802BF28 - ldrh r0, [r2, 0x1C] - strh r0, [r1] - ldr r0, [r2, 0x38] - lsls r1, r0, 1 - adds r1, r0 - lsls r1, 3 - adds r1, r2, r1 - adds r1, 0x40 - ldr r0, _0802BF2C - ldm r0!, {r2,r3,r5} - stm r1!, {r2,r3,r5} - ldm r0!, {r2,r3,r5} - stm r1!, {r2,r3,r5} - bl ResetUnusedInputStruct - ldr r0, [r4] - adds r0, 0x40 - movs r1, 0x1 - movs r2, 0x1 - bl sub_800641C - ldr r0, [r4] - bl MemoryFree - movs r0, 0 - str r0, [r4] -_0802BF1C: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_0802BF24: .4byte gUnknown_203B2D8 -_0802BF28: .4byte gUnknown_203B2DC -_0802BF2C: .4byte gUnknown_80DFC5C - thumb_func_end sub_802BEDC - - thumb_func_start sub_802BF30 -sub_802BF30: - push {r4,lr} - ldr r4, _0802BF9C - ldr r0, [r4] - adds r0, 0xA0 - movs r2, 0 - movs r1, 0x1 - strb r1, [r0] - ldr r0, [r4] - adds r0, 0xA1 - strb r2, [r0] - ldr r0, [r4] - adds r0, 0xA2 - movs r1, 0xC - strb r1, [r0] - ldr r0, [r4] - adds r0, 0xA3 - strb r2, [r0] - ldr r0, [r4] - movs r1, 0x1E - ldrsh r0, [r0, r1] - movs r1, 0x18 - bl sub_8009614 - adds r0, 0x2 - lsls r0, 16 - ldr r2, [r4] - ldr r3, [r2, 0x38] - lsls r1, r3, 1 - adds r1, r3 - lsls r1, 3 - adds r1, r2, r1 - adds r1, 0x4E - asrs r3, r0, 16 - lsrs r0, 16 - strh r0, [r1] - ldr r1, [r2, 0x38] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 3 - adds r2, r0 - adds r3, 0x2 - adds r2, 0x50 - strh r3, [r2] - bl ResetUnusedInputStruct - ldr r0, [r4] - adds r0, 0x40 - movs r1, 0x1 - movs r2, 0x1 - bl sub_800641C - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0802BF9C: .4byte gUnknown_203B2D8 - thumb_func_end sub_802BF30 - - thumb_func_start CreateMailMenu -CreateMailMenu: - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - sub sp, 0xDC - ldr r4, _0802C060 - ldr r0, [r4] - ldr r0, [r0, 0x38] - bl sub_8008C54 - ldr r0, [r4] - ldr r0, [r0, 0x38] - bl sub_80073B8 - ldr r1, [r4] - movs r2, 0x22 - ldrsh r0, [r1, r2] - lsls r0, 3 - adds r0, 0xA - ldr r2, _0802C064 - ldr r3, [r1, 0x38] - movs r1, 0 - str r1, [sp] - bl xxx_call_draw_string - movs r6, 0 - ldr r0, [r4] - movs r3, 0x1E - ldrsh r0, [r0, r3] - cmp r6, r0 - bge _0802C09A - adds r7, r4, 0 - ldr r0, _0802C068 - mov r9, r0 - add r1, sp, 0x5C - mov r8, r1 -_0802BFE8: - ldr r1, [r7] - movs r3, 0x22 - ldrsh r2, [r1, r3] - movs r3, 0x20 - ldrsh r0, [r1, r3] - muls r0, r2 - adds r0, r6 - adds r1, r0 - ldrb r0, [r1] - bl sub_8095FE8 - adds r5, r0, 0 - ldr r0, [r7] - ldr r1, [r0, 0x38] - str r1, [sp, 0x4] - adds r0, 0x4 - adds r1, r6, 0 - bl sub_8013800 - str r0, [sp, 0x4C] - ldrb r0, [r5] - cmp r0, 0x1 - bne _0802C06C - ldr r0, [r7] - adds r0, 0x4 - adds r1, r6, 0 - bl sub_8013800 - adds r4, r0, 0 - ldr r0, [r7] - ldr r3, [r0, 0x38] - movs r0, 0xA - adds r1, r4, 0 - movs r2, 0x6 - bl sub_803B6B0 - bl sub_808D33C - adds r1, r0, 0 - mov r0, r9 - bl sub_808DA34 - ldrb r0, [r5, 0x5] - bl GetPokemonMailHeadline - adds r1, r0, 0 - mov r0, r8 - mov r2, r9 - bl sub_800D158 - ldr r0, [r7] - ldr r3, [r0, 0x38] - movs r0, 0 - str r0, [sp] - movs r0, 0x15 - adds r1, r4, 0 - mov r2, r8 - bl xxx_call_draw_string - b _0802C08E - .align 2, 0 -_0802C060: .4byte gUnknown_203B2D8 -_0802C064: .4byte gMailboxText -_0802C068: .4byte gAvailablePokemonNames -_0802C06C: - adds r0, r5, 0 - add r1, sp, 0x4 - bl sub_803B35C - adds r0, r5, 0 - bl sub_80968B0 - lsls r0, 24 - cmp r0, 0 - beq _0802C088 - mov r1, sp - adds r1, 0x47 - movs r0, 0x2 - strb r0, [r1] -_0802C088: - add r0, sp, 0x4 - bl sub_803B6D4 -_0802C08E: - adds r6, 0x1 - ldr r0, [r7] - movs r1, 0x1E - ldrsh r0, [r0, r1] - cmp r6, r0 - blt _0802BFE8 -_0802C09A: - ldr r0, _0802C0B4 - ldr r0, [r0] - ldr r0, [r0, 0x38] - bl sub_80073E0 - add sp, 0xDC - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0802C0B4: .4byte gUnknown_203B2D8 - thumb_func_end CreateMailMenu - - thumb_func_start sub_802C0B8 -sub_802C0B8: - push {r4,r5,lr} - movs r5, 0 - movs r4, 0 -_0802C0BE: - lsls r0, r4, 24 - lsrs r0, 24 - bl sub_8096000 - lsls r0, 24 - cmp r0, 0 - bne _0802C0D6 - ldr r0, _0802C0E4 - ldr r0, [r0] - adds r0, r5 - strb r4, [r0] - adds r5, 0x1 -_0802C0D6: - adds r4, 0x1 - cmp r4, 0x3 - ble _0802C0BE - adds r0, r5, 0 - pop {r4,r5} - pop {r1} - bx r1 + bl sub_80141B4 + b _08028AF2 .align 2, 0 -_0802C0E4: .4byte gUnknown_203B2D8 - thumb_func_end sub_802C0B8 - - thumb_func_start sub_802C0E8 -sub_802C0E8: - push {r4,lr} - movs r4, 0 -_0802C0EC: - lsls r0, r4, 24 - lsrs r0, 24 - bl sub_8096000 - lsls r0, 24 - cmp r0, 0 - bne _0802C0FE - movs r0, 0 - b _0802C106 -_0802C0FE: - adds r4, 0x1 - cmp r4, 0x3 - ble _0802C0EC - movs r0, 0x1 -_0802C106: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_802C0E8 - - thumb_func_start sub_802C10C -sub_802C10C: - push {r4-r7,lr} - mov r7, r8 - push {r7} - adds r6, r0, 0 - adds r4, r1, 0 - mov r8, r2 - bl sub_802C4A4 - lsls r0, 24 - cmp r0, 0 - beq _0802C126 +_08028674: .4byte gUnknown_80DE01C +_08028678: + ldr r1, [r6] movs r0, 0 - b _0802C1CC -_0802C126: - ldr r5, _0802C1D8 - ldr r0, [r5] - cmp r0, 0 - bne _0802C138 - movs r0, 0xA8 - movs r1, 0x8 - bl MemoryAlloc - str r0, [r5] -_0802C138: - ldr r0, [r5] - str r6, [r0, 0x3C] - lsls r1, r6, 1 - adds r1, r6 - lsls r1, 3 - adds r1, 0x44 - adds r1, r0, r1 - str r1, [r0, 0x40] - adds r0, 0x44 - bl sub_8006518 - ldr r1, [r5] - ldr r2, [r1, 0x3C] - lsls r0, r2, 1 - adds r0, r2 - lsls r0, 3 - adds r1, r0 - adds r1, 0x44 - ldr r0, _0802C1DC - ldm r0!, {r2,r3,r7} - stm r1!, {r2,r3,r7} - ldm r0!, {r2,r3,r7} - stm r1!, {r2,r3,r7} - ldr r2, [r5] - ldr r1, [r2, 0x40] - adds r0, r2, 0 - adds r0, 0xA4 - str r0, [r1, 0x14] - cmp r4, 0 - beq _0802C186 - ldr r1, [r2, 0x3C] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 3 - adds r1, r2, 0 - adds r1, 0x4C - adds r1, r0 - ldr r0, [r4] - str r0, [r1] -_0802C186: - ldr r0, [r5] + str r0, [r1, 0x44] + bl sub_8011830 + ldr r0, [r6] ldr r0, [r0, 0x40] - mov r1, r8 - bl sub_8012D34 - bl ResetUnusedInputStruct - ldr r0, [r5] - adds r0, 0x44 - movs r1, 0x1 - movs r2, 0x1 - bl sub_800641C - ldr r4, [r5] - adds r4, 0x8 - bl sub_802C474 - adds r1, r0, 0 - adds r0, r4, 0 - mov r2, r8 - adds r3, r6, 0 - bl sub_8013848 - ldr r0, [r5] - ldr r1, _0802C1E0 - ldrh r1, [r1] - strh r1, [r0, 0x20] - adds r0, 0x8 - bl sub_8013984 - bl sub_802C328 - bl sub_802C39C - movs r0, 0x1 -_0802C1CC: - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r1} - bx r1 - .align 2, 0 -_0802C1D8: .4byte gUnknown_203B2E0 -_0802C1DC: .4byte gUnknown_80DFCB4 -_0802C1E0: .4byte gUnknown_203B2E4 - thumb_func_end sub_802C10C - - thumb_func_start sub_802C1E4 -sub_802C1E4: - push {lr} - lsls r0, 24 - cmp r0, 0 - bne _0802C200 - ldr r0, _0802C1FC - ldr r0, [r0] - adds r0, 0x8 - bl sub_8013660 - movs r0, 0 - b _0802C266 - .align 2, 0 -_0802C1FC: .4byte gUnknown_203B2E0 -_0802C200: - ldr r0, _0802C218 - ldr r0, [r0] - adds r0, 0x8 - bl GetKeyPress - cmp r0, 0x2 - beq _0802C222 - cmp r0, 0x2 - bgt _0802C21C - cmp r0, 0x1 - beq _0802C22C - b _0802C240 - .align 2, 0 -_0802C218: .4byte gUnknown_203B2E0 -_0802C21C: - cmp r0, 0x4 - beq _0802C236 - b _0802C240 -_0802C222: - movs r0, 0x1 - bl PlayMenuSoundEffect - movs r0, 0x2 - b _0802C266 -_0802C22C: - movs r0, 0 - bl PlayMenuSoundEffect - movs r0, 0x3 - b _0802C266 -_0802C236: - movs r0, 0x4 - bl PlayMenuSoundEffect - movs r0, 0x4 - b _0802C266 -_0802C240: - ldr r0, _0802C258 - ldr r0, [r0] - adds r0, 0x8 - movs r1, 0x1 - bl sub_80138B8 - lsls r0, 24 - cmp r0, 0 - bne _0802C25C - movs r0, 0 - b _0802C266 - .align 2, 0 -_0802C258: .4byte gUnknown_203B2E0 -_0802C25C: - bl sub_802C328 - bl sub_802C39C - movs r0, 0x1 -_0802C266: - pop {r1} - bx r1 - thumb_func_end sub_802C1E4 - - thumb_func_start sub_802C26C -sub_802C26C: - ldr r0, _0802C288 - ldr r1, [r0] - movs r0, 0x26 - ldrsh r2, [r1, r0] - movs r3, 0x24 - ldrsh r0, [r1, r3] - muls r0, r2 - movs r3, 0x20 - ldrsh r2, [r1, r3] - adds r0, r2 - adds r1, r0 - ldrb r0, [r1] - bx lr - .align 2, 0 -_0802C288: .4byte gUnknown_203B2E0 - thumb_func_end sub_802C26C - - thumb_func_start sub_802C28C -sub_802C28C: - push {r4,r5,lr} + bl sub_8037B28 adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - bl ResetUnusedInputStruct - ldr r5, _0802C2D0 - ldr r0, [r5] - adds r0, 0x44 - movs r1, 0 - movs r2, 0 - bl sub_800641C - bl sub_802C474 - adds r1, r0, 0 - ldr r0, [r5] - strh r1, [r0, 0x2A] - adds r0, 0x8 - bl sub_8013984 - bl sub_802C328 - bl sub_802C39C + ldr r0, [r6] + str r4, [r0, 0x44] cmp r4, 0 - beq _0802C2CA - ldr r0, [r5] - adds r0, 0x8 - bl AddMenuCursorSprite -_0802C2CA: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_0802C2D0: .4byte gUnknown_203B2E0 - thumb_func_end sub_802C28C - - thumb_func_start sub_802C2D4 -sub_802C2D4: - push {r4,r5,lr} - ldr r4, _0802C31C - ldr r2, [r4] - cmp r2, 0 - beq _0802C314 - ldr r1, _0802C320 - ldrh r0, [r2, 0x20] - strh r0, [r1] - ldr r0, [r2, 0x3C] - lsls r1, r0, 1 - adds r1, r0 - lsls r1, 3 - adds r1, r2, r1 - adds r1, 0x44 - ldr r0, _0802C324 - ldm r0!, {r2,r3,r5} - stm r1!, {r2,r3,r5} - ldm r0!, {r2,r3,r5} - stm r1!, {r2,r3,r5} - bl ResetUnusedInputStruct - ldr r0, [r4] - adds r0, 0x44 - movs r1, 0x1 - movs r2, 0x1 - bl sub_800641C - ldr r0, [r4] - bl MemoryFree - movs r0, 0 - str r0, [r4] -_0802C314: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_0802C31C: .4byte gUnknown_203B2E0 -_0802C320: .4byte gUnknown_203B2E4 -_0802C324: .4byte gUnknown_80DFC9C - thumb_func_end sub_802C2D4 - - thumb_func_start sub_802C328 -sub_802C328: - push {r4,lr} - ldr r4, _0802C398 - ldr r0, [r4] - ldrh r1, [r0, 0x28] - adds r0, 0xA4 - movs r2, 0 - strb r1, [r0] - ldr r0, [r4] - ldrh r1, [r0, 0x26] - adds r0, 0xA5 - strb r1, [r0] - ldr r0, [r4] - adds r0, 0xA6 - movs r1, 0xC - strb r1, [r0] - ldr r0, [r4] - adds r0, 0xA7 - strb r2, [r0] - ldr r0, [r4] - movs r1, 0x22 - ldrsh r0, [r0, r1] - movs r1, 0x18 - bl sub_8009614 - adds r0, 0x2 - lsls r0, 16 - ldr r2, [r4] - ldr r3, [r2, 0x3C] - lsls r1, r3, 1 - adds r1, r3 - lsls r1, 3 - adds r1, r2, r1 - adds r1, 0x52 - asrs r3, r0, 16 - lsrs r0, 16 - strh r0, [r1] - ldr r1, [r2, 0x3C] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 3 - adds r2, r0 - adds r3, 0x2 - adds r2, 0x54 - strh r3, [r2] - bl ResetUnusedInputStruct - ldr r0, [r4] - adds r0, 0x44 - movs r1, 0x1 - movs r2, 0x1 - bl sub_800641C - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0802C398: .4byte gUnknown_203B2E0 - thumb_func_end sub_802C328 - - thumb_func_start sub_802C39C -sub_802C39C: - push {r4-r7,lr} - sub sp, 0x60 - ldr r7, _0802C3F8 - ldr r0, [r7] - ldr r0, [r0, 0x3C] - bl sub_8008C54 - ldr r0, [r7] - ldr r0, [r0, 0x3C] - bl sub_80073B8 - ldr r0, [r7] - movs r1, 0x26 - ldrsh r4, [r0, r1] - lsls r4, 3 - adds r5, r4, 0 - adds r5, 0xA - ldr r2, _0802C3FC - ldr r3, [r0, 0x3C] - movs r0, 0 - str r0, [sp] - adds r0, r5, 0 + bne _0802878A + ldr r1, [r0, 0x40] + cmp r1, 0x3 + beq _080286A0 + cmp r1, 0x4 + beq _080286C2 + b _08028748 +_080286A0: + adds r0, 0x48 movs r1, 0 - bl xxx_call_draw_string - adds r4, 0x4 - ldr r1, [r7] - adds r0, r1, 0 - adds r0, 0xA6 - ldrb r0, [r0] - lsls r0, 3 - adds r5, r4, r0 - movs r3, 0x26 - ldrsh r2, [r1, r3] - adds r2, 0x1 - movs r0, 0x7 - str r0, [sp] - ldr r0, [r1, 0x3C] - str r0, [sp, 0x4] - adds r0, r5, 0 + movs r2, 0x30 + bl MemoryFill8 + ldr r0, [r6] + adds r0, 0x78 movs r1, 0 - movs r3, 0x2 - bl sub_8012BC4 - movs r6, 0 - b _0802C452 - .align 2, 0 -_0802C3F8: .4byte gUnknown_203B2E0 -_0802C3FC: .4byte gBulletinBoardText -_0802C400: - ldr r1, [r7] - movs r3, 0x26 - ldrsh r2, [r1, r3] - movs r3, 0x24 - ldrsh r0, [r1, r3] - muls r0, r2 - adds r0, r6 - adds r1, r0 - ldrb r5, [r1] - adds r0, r5, 0 - bl sub_8096574 - adds r4, r0, 0 - ldr r0, [r7] - ldr r1, [r0, 0x3C] - str r1, [sp, 0x8] - adds r0, 0x8 - adds r1, r6, 0 - bl sub_8013800 - str r0, [sp, 0x50] - adds r0, r4, 0 - add r1, sp, 0x8 - bl sub_803B35C - adds r0, r5, 0 - bl sub_8096574 - bl sub_80968B0 - lsls r0, 24 - cmp r0, 0 - beq _0802C44A - mov r1, sp - adds r1, 0x4B - movs r0, 0x2 - strb r0, [r1] -_0802C44A: - add r0, sp, 0x8 - bl sub_803B6D4 - adds r6, 0x1 -_0802C452: - ldr r0, [r7] - movs r1, 0x22 - ldrsh r0, [r0, r1] - cmp r6, r0 - blt _0802C400 - ldr r0, _0802C470 - ldr r0, [r0] - ldr r0, [r0, 0x3C] - bl sub_80073E0 - add sp, 0x60 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0802C470: .4byte gUnknown_203B2E0 - thumb_func_end sub_802C39C - - thumb_func_start sub_802C474 -sub_802C474: - push {r4,r5,lr} - movs r5, 0 - movs r4, 0 -_0802C47A: - lsls r0, r4, 24 - lsrs r0, 24 - bl sub_809658C - lsls r0, 24 - cmp r0, 0 - bne _0802C492 - ldr r0, _0802C4A0 - ldr r0, [r0] - adds r0, r5 - strb r4, [r0] - adds r5, 0x1 -_0802C492: - adds r4, 0x1 - cmp r4, 0x7 - ble _0802C47A - adds r0, r5, 0 - pop {r4,r5} - pop {r1} - bx r1 - .align 2, 0 -_0802C4A0: .4byte gUnknown_203B2E0 - thumb_func_end sub_802C474 - - thumb_func_start sub_802C4A4 -sub_802C4A4: - push {r4,lr} - movs r4, 0 -_0802C4A8: - lsls r0, r4, 24 - lsrs r0, 24 - bl sub_809658C - lsls r0, 24 - cmp r0, 0 - bne _0802C4BA - movs r0, 0 - b _0802C4C2 -_0802C4BA: - adds r4, 0x1 - cmp r4, 0x7 - ble _0802C4A8 - movs r0, 0x1 -_0802C4C2: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_802C4A4 - - thumb_func_start sub_802C4C8 -sub_802C4C8: - push {r4-r7,lr} - mov r7, r8 - push {r7} - adds r6, r0, 0 - adds r4, r1, 0 - mov r8, r2 - bl sub_802C83C - lsls r0, 24 - cmp r0, 0 - beq _0802C4E2 - movs r0, 0 - b _0802C580 -_0802C4E2: - ldr r5, _0802C58C - movs r0, 0xA8 - movs r1, 0x8 - bl MemoryAlloc - str r0, [r5] - str r6, [r0, 0x3C] - lsls r1, r6, 1 - adds r1, r6 - lsls r1, 3 - adds r1, 0x44 - adds r1, r0, r1 - str r1, [r0, 0x40] - adds r0, 0x44 - bl sub_8006518 - ldr r1, [r5] - ldr r2, [r1, 0x3C] - lsls r0, r2, 1 - adds r0, r2 - lsls r0, 3 - adds r1, r0 - adds r1, 0x44 - ldr r0, _0802C590 - ldm r0!, {r2,r3,r7} - stm r1!, {r2,r3,r7} - ldm r0!, {r2,r3,r7} - stm r1!, {r2,r3,r7} - ldr r2, [r5] - ldr r1, [r2, 0x40] - adds r0, r2, 0 - adds r0, 0xA4 - str r0, [r1, 0x14] - cmp r4, 0 - beq _0802C53A - ldr r1, [r2, 0x3C] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 3 + movs r2, 0x30 + bl MemoryFill8 + ldr r2, [r6] + ldr r0, [r2, 0x40] adds r1, r2, 0 - adds r1, 0x4C - adds r1, r0 - ldr r0, [r4] - str r0, [r1] -_0802C53A: - ldr r0, [r5] - ldr r0, [r0, 0x40] - mov r1, r8 - bl sub_8012D34 - bl ResetUnusedInputStruct - ldr r0, [r5] - adds r0, 0x44 - movs r1, 0x1 - movs r2, 0x1 - bl sub_800641C - ldr r4, [r5] - adds r4, 0x8 - bl sub_802C80C - adds r1, r0, 0 - adds r0, r4, 0 - mov r2, r8 - adds r3, r6, 0 - bl sub_8013848 - ldr r0, [r5] - ldr r1, _0802C594 - ldrh r1, [r1] - strh r1, [r0, 0x20] - adds r0, 0x8 - bl sub_8013984 - bl sub_802C6DC - bl sub_802C750 - movs r0, 0x1 -_0802C580: - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r1} - bx r1 - .align 2, 0 -_0802C58C: .4byte gUnknown_203B2E8 -_0802C590: .4byte gUnknown_80DFCFC -_0802C594: .4byte gUnknown_203B2EC - thumb_func_end sub_802C4C8 - - thumb_func_start sub_802C598 -sub_802C598: - push {lr} - lsls r0, 24 - cmp r0, 0 - bne _0802C5B4 - ldr r0, _0802C5B0 - ldr r0, [r0] - adds r0, 0x8 - bl sub_8013660 - movs r0, 0 - b _0802C61A - .align 2, 0 -_0802C5B0: .4byte gUnknown_203B2E8 -_0802C5B4: - ldr r0, _0802C5CC - ldr r0, [r0] - adds r0, 0x8 - bl GetKeyPress - cmp r0, 0x2 - beq _0802C5D6 - cmp r0, 0x2 - bgt _0802C5D0 - cmp r0, 0x1 - beq _0802C5E0 - b _0802C5F4 - .align 2, 0 -_0802C5CC: .4byte gUnknown_203B2E8 -_0802C5D0: - cmp r0, 0x4 - beq _0802C5EA - b _0802C5F4 -_0802C5D6: - movs r0, 0x1 - bl PlayMenuSoundEffect - movs r0, 0x2 - b _0802C61A -_0802C5E0: - movs r0, 0 - bl PlayMenuSoundEffect - movs r0, 0x3 - b _0802C61A -_0802C5EA: - movs r0, 0x4 - bl PlayMenuSoundEffect - movs r0, 0x4 - b _0802C61A -_0802C5F4: - ldr r0, _0802C60C - ldr r0, [r0] - adds r0, 0x8 - movs r1, 0x1 - bl sub_80138B8 - lsls r0, 24 - cmp r0, 0 - bne _0802C610 - movs r0, 0 - b _0802C61A - .align 2, 0 -_0802C60C: .4byte gUnknown_203B2E8 -_0802C610: - bl sub_802C6DC - bl sub_802C750 - movs r0, 0x1 -_0802C61A: - pop {r1} - bx r1 - thumb_func_end sub_802C598 - - thumb_func_start sub_802C620 -sub_802C620: - ldr r0, _0802C63C - ldr r1, [r0] - movs r0, 0x26 - ldrsh r2, [r1, r0] - movs r3, 0x24 - ldrsh r0, [r1, r3] - muls r0, r2 - movs r3, 0x20 - ldrsh r2, [r1, r3] - adds r0, r2 - adds r1, r0 - ldrb r0, [r1] - bx lr - .align 2, 0 -_0802C63C: .4byte gUnknown_203B2E8 - thumb_func_end sub_802C620 - - thumb_func_start sub_802C640 -sub_802C640: - push {r4,r5,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - bl ResetUnusedInputStruct - ldr r5, _0802C684 - ldr r0, [r5] - adds r0, 0x44 + adds r1, 0x48 + adds r2, 0x78 + b _08028740 +_080286C2: + adds r0, 0xA8 movs r1, 0 - movs r2, 0 - bl sub_800641C - bl sub_802C80C - adds r1, r0, 0 - ldr r0, [r5] - strh r1, [r0, 0x2A] - adds r0, 0x8 - bl sub_8013984 - bl sub_802C6DC - bl sub_802C750 - cmp r4, 0 - beq _0802C67E - ldr r0, [r5] - adds r0, 0x8 - bl AddMenuCursorSprite -_0802C67E: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_0802C684: .4byte gUnknown_203B2E8 - thumb_func_end sub_802C640 - - thumb_func_start sub_802C688 -sub_802C688: - push {r4,r5,lr} - ldr r4, _0802C6D0 - ldr r2, [r4] - cmp r2, 0 - beq _0802C6C8 - ldr r1, _0802C6D4 - ldrh r0, [r2, 0x20] - strh r0, [r1] - ldr r0, [r2, 0x3C] - lsls r1, r0, 1 - adds r1, r0 - lsls r1, 3 - adds r1, r2, r1 - adds r1, 0x44 - ldr r0, _0802C6D8 - ldm r0!, {r2,r3,r5} - stm r1!, {r2,r3,r5} - ldm r0!, {r2,r3,r5} - stm r1!, {r2,r3,r5} - bl ResetUnusedInputStruct - ldr r0, [r4] - adds r0, 0x44 - movs r1, 0x1 - movs r2, 0x1 - bl sub_800641C - ldr r0, [r4] - bl MemoryFree - movs r0, 0 - str r0, [r4] -_0802C6C8: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_0802C6D0: .4byte gUnknown_203B2E8 -_0802C6D4: .4byte gUnknown_203B2EC -_0802C6D8: .4byte gUnknown_80DFCE4 - thumb_func_end sub_802C688 - - thumb_func_start sub_802C6DC -sub_802C6DC: - push {r4,lr} - ldr r4, _0802C74C - ldr r0, [r4] - ldrh r1, [r0, 0x28] - adds r0, 0xA4 - movs r2, 0 - strb r1, [r0] - ldr r0, [r4] - ldrh r1, [r0, 0x26] - adds r0, 0xA5 - strb r1, [r0] - ldr r0, [r4] - adds r0, 0xA6 - movs r1, 0xC - strb r1, [r0] - ldr r0, [r4] - adds r0, 0xA7 - strb r2, [r0] - ldr r0, [r4] - movs r1, 0x22 - ldrsh r0, [r0, r1] - movs r1, 0x18 - bl sub_8009614 - adds r0, 0x2 - lsls r0, 16 - ldr r2, [r4] - ldr r3, [r2, 0x3C] - lsls r1, r3, 1 - adds r1, r3 - lsls r1, 3 - adds r1, r2, r1 - adds r1, 0x52 - asrs r3, r0, 16 - lsrs r0, 16 - strh r0, [r1] - ldr r1, [r2, 0x3C] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 3 - adds r2, r0 - adds r3, 0x2 - adds r2, 0x54 - strh r3, [r2] - bl ResetUnusedInputStruct - ldr r0, [r4] - adds r0, 0x44 - movs r1, 0x1 - movs r2, 0x1 - bl sub_800641C - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0802C74C: .4byte gUnknown_203B2E8 - thumb_func_end sub_802C6DC - - thumb_func_start sub_802C750 -sub_802C750: - push {r4-r6,lr} - sub sp, 0x60 - ldr r6, _0802C7AC - ldr r0, [r6] - ldr r0, [r0, 0x3C] - bl sub_8008C54 - ldr r0, [r6] - ldr r0, [r0, 0x3C] - bl sub_80073B8 + movs r2, 0x88 + bl MemoryFill8 ldr r0, [r6] - movs r1, 0x26 - ldrsh r4, [r0, r1] - lsls r4, 3 - adds r5, r4, 0 - adds r5, 0xA - ldr r2, _0802C7B0 - ldr r3, [r0, 0x3C] - movs r0, 0 - str r0, [sp] - adds r0, r5, 0 + movs r5, 0x98 + lsls r5, 1 + adds r0, r5 movs r1, 0 - bl xxx_call_draw_string - adds r4, 0x4 + movs r2, 0x88 + bl MemoryFill8 ldr r1, [r6] adds r0, r1, 0 - adds r0, 0xA6 + adds r0, 0xE0 + strh r4, [r0] + movs r2, 0xB4 + lsls r2, 1 + adds r0, r1, r2 + strh r4, [r0] + movs r3, 0x86 + lsls r3, 2 + adds r0, r1, r3 ldrb r0, [r0] - lsls r0, 3 - adds r5, r4, r0 - movs r3, 0x26 - ldrsh r2, [r1, r3] - adds r2, 0x1 - movs r0, 0x7 - str r0, [sp] - ldr r0, [r1, 0x3C] - str r0, [sp, 0x4] - adds r0, r5, 0 - movs r1, 0 - movs r3, 0x2 - bl sub_8012BC4 - movs r5, 0 - b _0802C7EC - .align 2, 0 -_0802C7AC: .4byte gUnknown_203B2E8 -_0802C7B0: .4byte gUnknown_80DFD14 -_0802C7B4: + bl sub_8095228 ldr r1, [r6] - movs r3, 0x26 - ldrsh r2, [r1, r3] - movs r3, 0x24 - ldrsh r0, [r1, r3] - muls r0, r2 - adds r0, r5 - adds r1, r0 - ldrb r0, [r1] - bl sub_8096AB4 - adds r4, r0, 0 - ldr r0, [r6] - ldr r1, [r0, 0x3C] - str r1, [sp, 0x8] - adds r0, 0x8 - adds r1, r5, 0 - bl sub_8013800 - str r0, [sp, 0x50] - adds r0, r4, 0 - add r1, sp, 0x8 - bl sub_803B35C - add r0, sp, 0x8 - bl sub_803B6D4 - adds r5, 0x1 -_0802C7EC: - ldr r0, [r6] - movs r1, 0x22 - ldrsh r0, [r0, r1] - cmp r5, r0 - blt _0802C7B4 - ldr r0, _0802C808 - ldr r0, [r0] - ldr r0, [r0, 0x3C] - bl sub_80073E0 - add sp, 0x60 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_0802C808: .4byte gUnknown_203B2E8 - thumb_func_end sub_802C750 - - thumb_func_start sub_802C80C -sub_802C80C: - push {r4,r5,lr} - movs r5, 0 - movs r4, 0 -_0802C812: - lsls r0, r4, 24 - lsrs r0, 24 - bl sub_8096ACC - lsls r0, 24 - cmp r0, 0 - bne _0802C82A - ldr r0, _0802C838 - ldr r0, [r0] - adds r0, r5 - strb r4, [r0] - adds r5, 0x1 -_0802C82A: - adds r4, 0x1 - cmp r4, 0x7 - ble _0802C812 - adds r0, r5, 0 - pop {r4,r5} - pop {r1} - bx r1 - .align 2, 0 -_0802C838: .4byte gUnknown_203B2E8 - thumb_func_end sub_802C80C - - thumb_func_start sub_802C83C -sub_802C83C: - push {r4,lr} - movs r4, 0 -_0802C840: - lsls r0, r4, 24 - lsrs r0, 24 - bl sub_8096ACC - lsls r0, 24 - cmp r0, 0 - bne _0802C852 - movs r0, 0 - b _0802C85A -_0802C852: - adds r4, 0x1 - cmp r4, 0x7 - ble _0802C840 - movs r0, 0x1 -_0802C85A: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_802C83C - - thumb_func_start sub_802C860 -sub_802C860: - push {r4-r6,lr} - adds r6, r0, 0 - bl sub_802C83C - lsls r0, 24 - lsrs r5, r0, 24 - cmp r5, 0 - bne _0802C890 - ldr r4, _0802C88C - movs r0, 0xFE - lsls r0, 1 - movs r1, 0x8 - bl MemoryAlloc - str r0, [r4] - str r5, [r0, 0x68] - str r6, [r0] - movs r0, 0 - bl sub_802C910 - movs r0, 0x1 - b _0802C892 - .align 2, 0 -_0802C88C: .4byte gUnknown_203B2F0 -_0802C890: - movs r0, 0 -_0802C892: - pop {r4-r6} - pop {r1} - bx r1 - thumb_func_end sub_802C860 - - thumb_func_start sub_802C898 -sub_802C898: - push {lr} - ldr r0, _0802C8B0 - ldr r0, [r0] - ldr r0, [r0, 0x4] - cmp r0, 0x5 - bhi _0802C8E8 - lsls r0, 2 - ldr r1, _0802C8B4 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0802C8B0: .4byte gUnknown_203B2F0 -_0802C8B4: .4byte _0802C8B8 - .align 2, 0 -_0802C8B8: - .4byte _0802C8D0 - .4byte _0802C8D0 - .4byte _0802C8D6 - .4byte _0802C8DC - .4byte _0802C8E2 - .4byte _0802C8E8 -_0802C8D0: - bl sub_802CC00 - b _0802C8EC -_0802C8D6: - bl sub_802CC70 - b _0802C8EC -_0802C8DC: - bl sub_802CD38 - b _0802C8EC -_0802C8E2: - bl sub_802CDB8 - b _0802C8EC -_0802C8E8: - movs r0, 0x3 - b _0802C8EE -_0802C8EC: - movs r0, 0 -_0802C8EE: - pop {r1} - bx r1 - thumb_func_end sub_802C898 - - thumb_func_start sub_802C8F4 -sub_802C8F4: - push {r4,lr} - ldr r4, _0802C90C - ldr r0, [r4] - cmp r0, 0 - beq _0802C906 - bl MemoryFree - movs r0, 0 - str r0, [r4] -_0802C906: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0802C90C: .4byte gUnknown_203B2F0 - thumb_func_end sub_802C8F4 - - thumb_func_start sub_802C910 -sub_802C910: - push {lr} - ldr r1, _0802C924 - ldr r1, [r1] - str r0, [r1, 0x4] - bl sub_802C928 - bl sub_802C9D8 - pop {r0} - bx r0 - .align 2, 0 -_0802C924: .4byte gUnknown_203B2F0 - thumb_func_end sub_802C910 - - thumb_func_start sub_802C928 -sub_802C928: - push {r4-r7,lr} - ldr r4, _0802C94C - ldr r0, [r4] - movs r1, 0xCE - lsls r1, 1 - adds r0, r1 - bl sub_8006518 - ldr r1, [r4] - ldr r0, [r1, 0x4] - cmp r0, 0x2 - beq _0802C954 - cmp r0, 0x3 - beq _0802C980 - movs r2, 0 - ldr r3, _0802C950 - b _0802C998 - .align 2, 0 -_0802C94C: .4byte gUnknown_203B2F0 -_0802C950: .4byte gUnknown_80DFD28 -_0802C954: - bl sub_802CAA4 - ldr r2, [r4] - movs r0, 0xE6 - lsls r0, 1 - adds r2, r0 - ldr r1, _0802C97C - ldm r1!, {r3,r5,r6} - stm r2!, {r3,r5,r6} - ldm r1!, {r3,r5,r7} - stm r2!, {r3,r5,r7} - ldr r1, [r4] - adds r0, r1, r0 - movs r6, 0x86 - lsls r6, 1 - adds r1, r6 - bl sub_8012CAC - b _0802C9B8 - .align 2, 0 -_0802C97C: .4byte gUnknown_80DFD40 -_0802C980: - movs r7, 0xF2 - lsls r7, 1 - adds r1, r7 - ldr r0, _0802C994 + adds r1, 0xA8 ldm r0!, {r2-r4} stm r1!, {r2-r4} - ldm r0!, {r5-r7} - stm r1!, {r5-r7} - b _0802C9B8 - .align 2, 0 -_0802C994: .4byte gUnknown_80DFD58 -_0802C998: - ldr r0, [r4] - lsls r1, r2, 1 - adds r1, r2 - lsls r1, 3 - adds r0, r1 - movs r1, 0xCE - lsls r1, 1 - adds r0, r1 - adds r1, r3, 0 - ldm r1!, {r5-r7} - stm r0!, {r5-r7} - ldm r1!, {r5-r7} - stm r0!, {r5-r7} - adds r2, 0x1 - cmp r2, 0x3 - ble _0802C998 -_0802C9B8: - bl ResetUnusedInputStruct - ldr r0, _0802C9D4 - ldr r0, [r0] - movs r1, 0xCE - lsls r1, 1 - adds r0, r1 - movs r1, 0x1 - movs r2, 0x1 - bl sub_800641C - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0802C9D4: .4byte gUnknown_203B2F0 - thumb_func_end sub_802C928 - - thumb_func_start sub_802C9D8 -sub_802C9D8: - push {r4,lr} - sub sp, 0x8 - ldr r1, _0802C9F4 - ldr r0, [r1] - ldr r0, [r0, 0x4] - adds r4, r1, 0 - cmp r0, 0x5 - bhi _0802CA9C - lsls r0, 2 - ldr r1, _0802C9F8 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0802C9F4: .4byte gUnknown_203B2F0 -_0802C9F8: .4byte _0802C9FC - .align 2, 0 -_0802C9FC: - .4byte _0802CA14 - .4byte _0802CA20 - .4byte _0802CA28 - .4byte _0802CA48 - .4byte _0802CA80 - .4byte _0802CA9C -_0802CA14: - movs r0, 0 - movs r1, 0 - movs r2, 0x4 - bl sub_802C4C8 - b _0802CA9C -_0802CA20: - movs r0, 0x1 - bl sub_802C640 - b _0802CA9C -_0802CA28: - bl sub_802C750 - ldr r0, _0802CA44 - ldr r2, [r0] - adds r0, r2, 0 - adds r0, 0x6C - movs r3, 0x86 - lsls r3, 1 - adds r1, r2, r3 - ldr r2, [r2, 0x68] - str r2, [sp] - movs r2, 0x2 - b _0802CA6E - .align 2, 0 -_0802CA44: .4byte gUnknown_203B2F0 -_0802CA48: - bl sub_802CBAC - bl sub_802C750 - ldr r4, _0802CA7C - ldr r0, [r4] - adds r0, 0x6C - movs r1, 0 - bl sub_8012EA4 - ldr r1, [r4] - adds r0, r1, 0 - adds r0, 0xBC - movs r2, 0xA6 - lsls r2, 1 - adds r1, r2 - movs r2, 0x6 - str r2, [sp] - movs r2, 0x3 -_0802CA6E: - str r2, [sp, 0x4] - movs r2, 0 - movs r3, 0 - bl sub_8012D60 - b _0802CA9C - .align 2, 0 -_0802CA7C: .4byte gUnknown_203B2F0 -_0802CA80: - ldr r0, [r4] - ldrb r0, [r0, 0xC] - bl sub_8096AB4 - ldr r1, [r4] - adds r1, 0x10 - bl sub_803B35C - ldr r0, [r4] - movs r1, 0x3 - str r1, [r0, 0x10] - adds r0, 0x10 - bl sub_802DE84 -_0802CA9C: - add sp, 0x8 - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_802C9D8 - - thumb_func_start sub_802CAA4 -sub_802CAA4: - push {r4-r7,lr} - movs r7, 0 - ldr r5, _0802CAC8 - ldr r0, [r5] - ldrb r0, [r0, 0xC] - bl sub_8096AB4 - adds r4, r0, 0 - ldr r2, [r5] - ldr r0, [r2] - cmp r0, 0 - bne _0802CB26 - ldrb r0, [r4] - cmp r0, 0x5 - beq _0802CACC - cmp r0, 0x6 - beq _0802CB10 - b _0802CB26 - .align 2, 0 -_0802CAC8: .4byte gUnknown_203B2F0 -_0802CACC: - movs r0, 0x86 - lsls r0, 1 - adds r1, r2, r0 - ldr r0, _0802CAFC - str r0, [r1] - adds r0, r4, 0 - bl sub_809693C - lsls r0, 24 - cmp r0, 0 - bne _0802CAEE - ldrb r0, [r4, 0x4] - bl sub_80A2824 - lsls r0, 24 - cmp r0, 0 - bne _0802CB00 -_0802CAEE: - ldr r0, [r5] - movs r1, 0x88 - lsls r1, 1 - adds r0, r1 - movs r1, 0x1 - negs r1, r1 - b _0802CB0A - .align 2, 0 -_0802CAFC: .4byte gUnknown_80DFD70 -_0802CB00: - ldr r0, [r5] - movs r1, 0x88 - lsls r1, 1 - adds r0, r1 - movs r1, 0x2 -_0802CB0A: - str r1, [r0] - adds r7, 0x1 - b _0802CB26 -_0802CB10: - movs r0, 0x86 - lsls r0, 1 - adds r1, r2, r0 - ldr r0, _0802CB9C - str r0, [r1] - movs r0, 0x88 - lsls r0, 1 - adds r1, r2, r0 - movs r0, 0x3 - str r0, [r1] - movs r7, 0x1 -_0802CB26: - ldr r4, _0802CBA0 - ldr r6, [r4] - lsls r1, r7, 3 - movs r0, 0x86 - lsls r0, 1 - adds r3, r6, r0 - adds r2, r3, r1 - ldr r0, _0802CBA4 - ldr r0, [r0] - str r0, [r2] - movs r0, 0x88 - lsls r0, 1 - adds r5, r6, r0 - adds r1, r5, r1 - movs r0, 0x4 - str r0, [r1] - adds r7, 0x1 - lsls r1, r7, 3 - adds r2, r3, r1 - ldr r0, _0802CBA8 - ldr r0, [r0] - str r0, [r2] - adds r1, r5, r1 - movs r0, 0x7 - str r0, [r1] - adds r7, 0x1 - lsls r1, r7, 3 - adds r3, r1 - movs r0, 0 - str r0, [r3] - adds r1, r5, r1 - movs r0, 0x1 - str r0, [r1] - movs r3, 0 - mov r12, r4 - cmp r3, r7 - bge _0802CB8C - adds r4, r6, 0 - adds r1, r5, 0 - movs r5, 0x1 - negs r5, r5 -_0802CB78: - ldr r2, [r1] - cmp r2, r5 - beq _0802CB84 - ldr r0, [r4, 0x68] - cmp r2, r0 - beq _0802CB94 -_0802CB84: - adds r1, 0x8 - adds r3, 0x1 - cmp r3, r7 - blt _0802CB78 -_0802CB8C: - mov r0, r12 - ldr r1, [r0] - movs r0, 0x7 - str r0, [r1, 0x68] -_0802CB94: - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0802CB9C: .4byte gUnknown_80DFD7C -_0802CBA0: .4byte gUnknown_203B2F0 -_0802CBA4: .4byte gUnknown_80D494C -_0802CBA8: .4byte gUnknown_80D4970 - thumb_func_end sub_802CAA4 - - thumb_func_start sub_802CBAC -sub_802CBAC: - ldr r0, _0802CBF4 - ldr r0, [r0] - mov r12, r0 - movs r3, 0 - movs r1, 0xA6 - lsls r1, 1 - add r1, r12 - ldr r0, _0802CBF8 - ldr r0, [r0] - str r0, [r1] - movs r1, 0xA8 - lsls r1, 1 - add r1, r12 - movs r0, 0x5 - str r0, [r1] - movs r2, 0x1 - movs r1, 0xAA - lsls r1, 1 - add r1, r12 - ldr r0, _0802CBFC - ldr r0, [r0] - str r0, [r1] - movs r1, 0xAC - lsls r1, 1 - add r1, r12 - movs r0, 0x6 - str r0, [r1] - movs r0, 0xAE - lsls r0, 1 - add r0, r12 - str r3, [r0] - movs r0, 0xB0 - lsls r0, 1 - add r0, r12 - str r2, [r0] - bx lr - .align 2, 0 -_0802CBF4: .4byte gUnknown_203B2F0 -_0802CBF8: .4byte gUnknown_80D4920 -_0802CBFC: .4byte gUnknown_80D4928 - thumb_func_end sub_802CBAC - - thumb_func_start sub_802CC00 -sub_802CC00: - push {lr} - movs r0, 0x1 - bl sub_802C598 - cmp r0, 0x4 - bhi _0802CC6A - lsls r0, 2 - ldr r1, _0802CC18 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0802CC18: .4byte _0802CC1C - .align 2, 0 -_0802CC1C: - .4byte _0802CC6A - .4byte _0802CC6A - .4byte _0802CC60 - .4byte _0802CC30 - .4byte _0802CC48 -_0802CC30: - bl sub_802C620 - ldr r1, _0802CC44 - ldr r1, [r1] - strb r0, [r1, 0xC] - movs r0, 0x2 - bl sub_802C910 - b _0802CC6A - .align 2, 0 -_0802CC44: .4byte gUnknown_203B2F0 -_0802CC48: - bl sub_802C620 - ldr r1, _0802CC5C - ldr r1, [r1] - strb r0, [r1, 0xC] - movs r0, 0x4 - bl sub_802C910 - b _0802CC6A - .align 2, 0 -_0802CC5C: .4byte gUnknown_203B2F0 -_0802CC60: - bl sub_802C688 - movs r0, 0x5 - bl sub_802C910 -_0802CC6A: - pop {r0} - bx r0 - thumb_func_end sub_802CC00 - - thumb_func_start sub_802CC70 -sub_802CC70: - push {r4,lr} - sub sp, 0x4 - movs r0, 0 - str r0, [sp] - bl sub_802C598 - ldr r4, _0802CCB4 - ldr r0, [r4] - adds r0, 0x6C - bl sub_8012FD8 - lsls r0, 24 - cmp r0, 0 - bne _0802CCA0 - ldr r0, [r4] - adds r0, 0x6C - mov r1, sp - bl sub_8013114 - ldr r1, [sp] - cmp r1, 0x1 - beq _0802CCA0 - ldr r0, [r4] - str r1, [r0, 0x68] -_0802CCA0: - ldr r0, [sp] - subs r0, 0x1 - cmp r0, 0x6 - bhi _0802CD2E - lsls r0, 2 - ldr r1, _0802CCB8 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0802CCB4: .4byte gUnknown_203B2F0 -_0802CCB8: .4byte _0802CCBC - .align 2, 0 -_0802CCBC: - .4byte _0802CD28 - .4byte _0802CCD8 - .4byte _0802CCF4 - .4byte _0802CD18 - .4byte _0802CD2E - .4byte _0802CD2E - .4byte _0802CD20 -_0802CCD8: - ldr r0, _0802CCEC - bl sub_8011988 - ldr r0, _0802CCF0 - ldr r0, [r0] - ldrb r0, [r0, 0xC] - bl sub_8096AB4 - movs r1, 0x6 - b _0802CD06 - .align 2, 0 -_0802CCEC: .4byte 0x00000133 -_0802CCF0: .4byte gUnknown_203B2F0 -_0802CCF4: - ldr r0, _0802CD10 - bl sub_8011988 - ldr r0, _0802CD14 - ldr r0, [r0] - ldrb r0, [r0, 0xC] - bl sub_8096AB4 - movs r1, 0x5 -_0802CD06: - strb r1, [r0] - movs r0, 0x1 - bl sub_802C910 - b _0802CD2E - .align 2, 0 -_0802CD10: .4byte 0x00000133 -_0802CD14: .4byte gUnknown_203B2F0 -_0802CD18: - movs r0, 0x3 - bl sub_802C910 - b _0802CD2E -_0802CD20: - movs r0, 0x4 - bl sub_802C910 - b _0802CD2E -_0802CD28: - movs r0, 0x1 - bl sub_802C910 -_0802CD2E: - add sp, 0x4 - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_802CC70 - - thumb_func_start sub_802CD38 -sub_802CD38: - push {r4,lr} - sub sp, 0x4 - movs r0, 0 - str r0, [sp] - bl sub_802C598 - ldr r4, _0802CD78 - ldr r0, [r4] - adds r0, 0x6C - bl sub_8012FD8 - ldr r0, [r4] - adds r0, 0xBC - bl sub_8012FD8 - lsls r0, 24 - cmp r0, 0 - bne _0802CD66 - ldr r0, [r4] - adds r0, 0xBC - mov r1, sp - bl sub_8013114 -_0802CD66: - ldr r0, [sp] - cmp r0, 0x5 - beq _0802CD88 - cmp r0, 0x5 - bgt _0802CD7C - cmp r0, 0x1 - beq _0802CD80 - b _0802CDB0 - .align 2, 0 -_0802CD78: .4byte gUnknown_203B2F0 -_0802CD7C: - cmp r0, 0x6 - bne _0802CDB0 -_0802CD80: - movs r0, 0x1 - bl sub_802C910 - b _0802CDB0 -_0802CD88: - ldr r0, [r4] - ldrb r0, [r0, 0xC] - bl sub_8096C3C - bl sub_8096C80 - bl sub_802C83C - lsls r0, 24 - cmp r0, 0 - beq _0802CDAA - bl sub_802C688 - movs r0, 0x5 - bl sub_802C910 - b _0802CDB0 -_0802CDAA: - movs r0, 0x1 - bl sub_802C910 -_0802CDB0: - add sp, 0x4 - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_802CD38 - - thumb_func_start sub_802CDB8 -sub_802CDB8: - push {lr} - bl sub_802DEE0 - cmp r0, 0x1 - bls _0802CDD0 - cmp r0, 0x3 - bhi _0802CDD0 - bl sub_802DF24 - movs r0, 0x1 - bl sub_802C910 -_0802CDD0: - pop {r0} - bx r0 - thumb_func_end sub_802CDB8 - - thumb_func_start sub_802CDD4 -sub_802CDD4: - push {r4-r6,lr} - adds r5, r0, 0 - ldr r4, _0802CE54 - ldr r0, [r4] - cmp r0, 0 - bne _0802CDEA - movs r0, 0xA0 - movs r1, 0x8 - bl MemoryAlloc - str r0, [r4] -_0802CDEA: - ldr r0, [r4] - str r5, [r0, 0x34] - lsls r1, r5, 1 - adds r1, r5 - lsls r1, 3 - adds r1, 0x3C - adds r1, r0, r1 - str r1, [r0, 0x38] - adds r0, 0x3C - bl sub_8006518 - ldr r1, [r4] - ldr r2, [r1, 0x34] - lsls r0, r2, 1 - adds r0, r2 - lsls r0, 3 - adds r1, r0 - adds r1, 0x3C - ldr r0, _0802CE58 - ldm r0!, {r2,r3,r6} - stm r1!, {r2,r3,r6} - ldm r0!, {r2,r3,r6} - stm r1!, {r2,r3,r6} - ldr r1, [r4] - ldr r0, [r1, 0x38] - adds r1, 0x9C - str r1, [r0, 0x14] - movs r1, 0x4 - bl sub_8012D34 - bl ResetUnusedInputStruct - ldr r0, [r4] - adds r0, 0x3C - movs r1, 0x1 - movs r2, 0x1 - bl sub_800641C - ldr r0, [r4] - movs r1, 0x5 - movs r2, 0x4 - adds r3, r5, 0 - bl sub_8013848 - bl sub_802CF5C - bl sub_802CFD0 - movs r0, 0x1 - pop {r4-r6} - pop {r1} - bx r1 - .align 2, 0 -_0802CE54: .4byte gUnknown_203B2F4 -_0802CE58: .4byte gUnknown_80DFDA4 - thumb_func_end sub_802CDD4 - - thumb_func_start sub_802CE5C -sub_802CE5C: - push {r4,lr} - lsls r0, 24 - cmp r0, 0 - bne _0802CE74 - ldr r0, _0802CE70 - ldr r0, [r0] - bl sub_8013660 - movs r0, 0 - b _0802CEB4 - .align 2, 0 -_0802CE70: .4byte gUnknown_203B2F4 -_0802CE74: - ldr r4, _0802CE90 - ldr r0, [r4] - bl GetKeyPress - cmp r0, 0x1 - beq _0802CE94 - cmp r0, 0x2 - bne _0802CE98 - movs r0, 0x1 - bl PlayMenuSoundEffect - movs r0, 0x2 - b _0802CEB4 - .align 2, 0 -_0802CE90: .4byte gUnknown_203B2F4 -_0802CE94: - movs r0, 0x3 - b _0802CEB4 -_0802CE98: - ldr r0, [r4] - movs r1, 0x1 - bl sub_80138B8 - lsls r0, 24 - cmp r0, 0 - bne _0802CEAA - movs r0, 0 - b _0802CEB4 -_0802CEAA: - bl sub_802CF5C - bl sub_802CFD0 - movs r0, 0x1 -_0802CEB4: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_802CE5C - - thumb_func_start sub_802CEBC -sub_802CEBC: - ldr r0, _0802CED4 - ldr r1, [r0] - movs r0, 0x1E - ldrsh r2, [r1, r0] - movs r3, 0x1C - ldrsh r0, [r1, r3] - muls r0, r2 - ldrb r1, [r1, 0x18] - adds r0, r1 - lsls r0, 24 - lsrs r0, 24 - bx lr - .align 2, 0 -_0802CED4: .4byte gUnknown_203B2F4 - thumb_func_end sub_802CEBC - - thumb_func_start sub_802CED8 -sub_802CED8: - push {r4,r5,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - bl ResetUnusedInputStruct - ldr r5, _0802CF10 - ldr r0, [r5] - adds r0, 0x3C - movs r1, 0 - movs r2, 0 - bl sub_800641C - ldr r0, [r5] - bl sub_8013984 - bl sub_802CF5C - bl sub_802CFD0 - cmp r4, 0 - beq _0802CF0A - ldr r0, [r5] - bl AddMenuCursorSprite -_0802CF0A: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_0802CF10: .4byte gUnknown_203B2F4 - thumb_func_end sub_802CED8 - - thumb_func_start sub_802CF14 -sub_802CF14: - push {r4,r5,lr} - ldr r4, _0802CF54 - ldr r2, [r4] - cmp r2, 0 - beq _0802CF4E - ldr r0, [r2, 0x34] - lsls r1, r0, 1 - adds r1, r0 - lsls r1, 3 - adds r1, r2, r1 - adds r1, 0x3C - ldr r0, _0802CF58 - ldm r0!, {r2,r3,r5} - stm r1!, {r2,r3,r5} - ldm r0!, {r2,r3,r5} - stm r1!, {r2,r3,r5} - bl ResetUnusedInputStruct - ldr r0, [r4] - adds r0, 0x3C - movs r1, 0x1 - movs r2, 0x1 - bl sub_800641C - ldr r0, [r4] - bl MemoryFree - movs r0, 0 - str r0, [r4] -_0802CF4E: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_0802CF54: .4byte gUnknown_203B2F4 -_0802CF58: .4byte gUnknown_80DFD8C - thumb_func_end sub_802CF14 - - thumb_func_start sub_802CF5C -sub_802CF5C: - push {r4,lr} - ldr r4, _0802CFCC - ldr r0, [r4] - ldrh r1, [r0, 0x20] - adds r0, 0x9C - movs r2, 0 - strb r1, [r0] - ldr r0, [r4] - ldrh r1, [r0, 0x1E] - adds r0, 0x9D - strb r1, [r0] - ldr r0, [r4] - adds r0, 0x9E - movs r1, 0xC - strb r1, [r0] - ldr r0, [r4] - adds r0, 0x9F - strb r2, [r0] - ldr r0, [r4] - movs r1, 0x1A - ldrsh r0, [r0, r1] - movs r1, 0x18 - bl sub_8009614 - adds r0, 0x2 - lsls r0, 16 - ldr r2, [r4] - ldr r3, [r2, 0x34] - lsls r1, r3, 1 - adds r1, r3 - lsls r1, 3 - adds r1, r2, r1 - adds r1, 0x4A - asrs r3, r0, 16 - lsrs r0, 16 - strh r0, [r1] - ldr r1, [r2, 0x34] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 3 - adds r2, r0 - adds r3, 0x2 - adds r2, 0x4C - strh r3, [r2] - bl ResetUnusedInputStruct - ldr r0, [r4] - adds r0, 0x3C - movs r1, 0x1 - movs r2, 0x1 - bl sub_800641C - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0802CFCC: .4byte gUnknown_203B2F4 - thumb_func_end sub_802CF5C - - thumb_func_start sub_802CFD0 -sub_802CFD0: - push {r4-r6,lr} - sub sp, 0x60 - ldr r6, _0802D02C - ldr r0, [r6] - ldr r0, [r0, 0x34] - bl sub_8008C54 - ldr r0, [r6] - ldr r0, [r0, 0x34] - bl sub_80073B8 - ldr r0, [r6] - movs r1, 0x1E - ldrsh r4, [r0, r1] - lsls r4, 3 - adds r5, r4, 0 - adds r5, 0xA - ldr r2, _0802D030 - ldr r3, [r0, 0x34] - movs r0, 0 - str r0, [sp] - adds r0, r5, 0 - movs r1, 0 - bl xxx_call_draw_string - adds r4, 0x4 - ldr r1, [r6] - adds r0, r1, 0 - adds r0, 0x9E - ldrb r0, [r0] - lsls r0, 3 - adds r5, r4, r0 - movs r0, 0x1E - ldrsh r2, [r1, r0] - adds r2, 0x1 - movs r0, 0x7 - str r0, [sp] - ldr r0, [r1, 0x34] - str r0, [sp, 0x4] - adds r0, r5, 0 - movs r1, 0 - movs r3, 0x2 - bl sub_8012BC4 - movs r5, 0 - b _0802D076 - .align 2, 0 -_0802D02C: .4byte gUnknown_203B2F4 -_0802D030: .4byte gUnknown_80DFDBC -_0802D034: - ldr r0, [r6] - movs r2, 0x1E - ldrsh r1, [r0, r2] - movs r2, 0x1C - ldrsh r0, [r0, r2] - muls r0, r1 - adds r0, r5 - lsls r0, 24 - lsrs r0, 24 - bl sub_803B344 - adds r4, r0, 0 - ldr r0, [r6] - ldr r1, [r0, 0x34] - str r1, [sp, 0x8] - adds r1, r5, 0 - bl sub_8013800 - str r0, [sp, 0x50] - adds r0, r4, 0 - add r1, sp, 0x8 - bl sub_803B35C - mov r1, sp - adds r1, 0x4B - movs r0, 0x1 - strb r0, [r1] - ldr r0, [r4, 0x14] - str r0, [sp, 0x54] - add r0, sp, 0x8 - bl sub_803B6D4 - adds r5, 0x1 -_0802D076: - ldr r0, [r6] - movs r1, 0x1A - ldrsh r0, [r0, r1] - cmp r5, r0 - blt _0802D034 - ldr r0, _0802D094 - ldr r0, [r0] - ldr r0, [r0, 0x34] - bl sub_80073E0 - add sp, 0x60 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_0802D094: .4byte gUnknown_203B2F4 - thumb_func_end sub_802CFD0 - - thumb_func_start sub_802D098 -sub_802D098: - push {r4-r6,lr} - adds r4, r0, 0 - ldr r6, _0802D0DC - movs r0, 0x82 - lsls r0, 2 - movs r1, 0x8 - bl MemoryAlloc - str r0, [r6] - movs r5, 0 - str r5, [r0, 0x6C] - str r5, [r0, 0x70] - str r5, [r0, 0x74] - str r4, [r0, 0xC] - strb r5, [r0, 0x8] - ldr r0, [r6] - adds r0, 0xA - bl sub_8099328 - ldr r1, [r6] - strb r0, [r1, 0x9] - bl sub_8011C1C - cmp r0, 0x2 - beq _0802D0CE - ldr r0, [r6] - strb r5, [r0, 0x9] -_0802D0CE: - movs r0, 0 - bl sub_802D1A0 - movs r0, 0x1 - pop {r4-r6} - pop {r1} - bx r1 - .align 2, 0 -_0802D0DC: .4byte gUnknown_203B2F8 - thumb_func_end sub_802D098 - - thumb_func_start sub_802D0E0 -sub_802D0E0: - push {lr} - ldr r0, _0802D0F8 - ldr r0, [r0] - ldr r0, [r0] - cmp r0, 0x10 - bhi _0802D16C - lsls r0, 2 - ldr r1, _0802D0FC - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0802D0F8: .4byte gUnknown_203B2F8 -_0802D0FC: .4byte _0802D100 - .align 2, 0 -_0802D100: - .4byte _0802D170 - .4byte _0802D144 - .4byte _0802D168 - .4byte _0802D16C - .4byte _0802D16C - .4byte _0802D16C - .4byte _0802D16C - .4byte _0802D16C - .4byte _0802D16C - .4byte _0802D162 - .4byte _0802D16C - .4byte _0802D14A - .4byte _0802D14A - .4byte _0802D150 - .4byte _0802D156 - .4byte _0802D15C - .4byte _0802D15C -_0802D144: - bl sub_802D7D0 - b _0802D170 -_0802D14A: - bl sub_802D8CC - b _0802D170 -_0802D150: - bl sub_802D940 - b _0802D170 -_0802D156: - bl sub_802D9F0 - b _0802D170 -_0802D15C: - bl sub_802DA60 - b _0802D170 -_0802D162: - bl sub_802D82C - b _0802D170 -_0802D168: - movs r0, 0x3 - b _0802D172 -_0802D16C: - bl sub_802DA84 -_0802D170: - movs r0, 0 -_0802D172: - pop {r1} - bx r1 - thumb_func_end sub_802D0E0 - - thumb_func_start sub_802D178 -sub_802D178: - ldr r0, _0802D180 - ldr r0, [r0] - ldrb r0, [r0, 0x8] - bx lr - .align 2, 0 -_0802D180: .4byte gUnknown_203B2F8 - thumb_func_end sub_802D178 - - thumb_func_start sub_802D184 -sub_802D184: - push {r4,lr} - ldr r4, _0802D19C - ldr r0, [r4] - cmp r0, 0 - beq _0802D196 - bl MemoryFree - movs r0, 0 - str r0, [r4] -_0802D196: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0802D19C: .4byte gUnknown_203B2F8 - thumb_func_end sub_802D184 - - thumb_func_start sub_802D1A0 -sub_802D1A0: - push {lr} - ldr r1, _0802D1B4 - ldr r1, [r1] - str r0, [r1] - bl sub_802D1B8 - bl sub_802D2A8 - pop {r0} - bx r0 - .align 2, 0 -_0802D1B4: .4byte gUnknown_203B2F8 - thumb_func_end sub_802D1A0 - - thumb_func_start sub_802D1B8 -sub_802D1B8: - push {r4-r7,lr} - mov r7, r8 - push {r7} - ldr r4, _0802D1E0 - ldr r0, [r4] - movs r1, 0xD4 - lsls r1, 1 - adds r0, r1 - bl sub_8006518 - ldr r0, [r4] - ldr r0, [r0] - cmp r0, 0xD - beq _0802D1EA - cmp r0, 0xD - bgt _0802D1E4 - cmp r0, 0x2 - beq _0802D27E - b _0802D254 - .align 2, 0 -_0802D1E0: .4byte gUnknown_203B2F8 -_0802D1E4: - cmp r0, 0xE - beq _0802D21C - b _0802D254 -_0802D1EA: - bl sub_802D5A4 - ldr r2, [r4] - movs r0, 0xEC - lsls r0, 1 - adds r2, r0 - ldr r1, _0802D218 - ldm r1!, {r3,r5,r6} - stm r2!, {r3,r5,r6} - ldm r1!, {r3,r5,r7} - stm r2!, {r3,r5,r7} - ldr r1, [r4] - adds r0, r1, r0 - movs r6, 0x8C - lsls r6, 1 - adds r1, r6 - bl sub_8012CAC - ldr r0, [r4] - movs r7, 0xF2 - lsls r7, 1 - b _0802D246 - .align 2, 0 -_0802D218: .4byte gUnknown_80DFE04 -_0802D21C: - bl sub_802D63C - ldr r2, [r4] - movs r0, 0xF8 - lsls r0, 1 - adds r2, r0 - ldr r1, _0802D250 - ldm r1!, {r3,r5,r6} - stm r2!, {r3,r5,r6} - ldm r1!, {r3,r5,r7} - stm r2!, {r3,r5,r7} - ldr r1, [r4] - adds r0, r1, r0 - movs r6, 0xAC - lsls r6, 1 - adds r1, r6 - bl sub_8012CAC - ldr r0, [r4] - movs r7, 0xFE - lsls r7, 1 -_0802D246: - adds r0, r7 - movs r1, 0x6 - strh r1, [r0] - b _0802D27E - .align 2, 0 -_0802D250: .4byte gUnknown_80DFE1C -_0802D254: - ldr r0, _0802D2A0 - mov r12, r0 - movs r1, 0xD4 - lsls r1, 1 - mov r8, r1 - ldr r4, _0802D2A4 - movs r3, 0 - movs r2, 0x3 -_0802D264: - mov r5, r12 - ldr r1, [r5] - adds r1, r3 - add r1, r8 - adds r0, r4, 0 - ldm r0!, {r5-r7} - stm r1!, {r5-r7} - ldm r0!, {r5-r7} - stm r1!, {r5-r7} - adds r3, 0x18 - subs r2, 0x1 - cmp r2, 0 - bge _0802D264 -_0802D27E: - bl ResetUnusedInputStruct - ldr r0, _0802D2A0 - ldr r0, [r0] - movs r6, 0xD4 - lsls r6, 1 - adds r0, r6 - movs r1, 0x1 - movs r2, 0x1 - bl sub_800641C - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0802D2A0: .4byte gUnknown_203B2F8 -_0802D2A4: .4byte gUnknown_80DFDD4 - thumb_func_end sub_802D1B8 - - thumb_func_start sub_802D2A8 -sub_802D2A8: - push {r4,lr} - sub sp, 0x14 - ldr r1, _0802D2C4 - ldr r0, [r1] - ldr r0, [r0] - adds r4, r1, 0 - cmp r0, 0x10 - bls _0802D2BA - b _0802D59A -_0802D2BA: - lsls r0, 2 - ldr r1, _0802D2C8 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0802D2C4: .4byte gUnknown_203B2F8 -_0802D2C8: .4byte _0802D2CC - .align 2, 0 -_0802D2CC: - .4byte _0802D310 - .4byte _0802D398 - .4byte _0802D59A - .4byte _0802D3B4 - .4byte _0802D3C4 - .4byte _0802D3D4 - .4byte _0802D3E4 - .4byte _0802D3F4 - .4byte _0802D404 - .4byte _0802D498 - .4byte _0802D4C8 - .4byte _0802D4E4 - .4byte _0802D4F0 - .4byte _0802D4F8 - .4byte _0802D524 - .4byte _0802D558 - .4byte _0802D576 -_0802D310: - ldr r0, [r4] - ldr r0, [r0, 0xC] - bl sub_80968B0 - lsls r0, 24 - cmp r0, 0 - beq _0802D326 - movs r0, 0x3 - bl sub_802D1A0 - b _0802D59A -_0802D326: - ldr r0, [r4] - ldr r0, [r0, 0xC] - bl sub_8096F50 - lsls r0, 24 - cmp r0, 0 - beq _0802D33C - movs r0, 0x4 - bl sub_802D1A0 - b _0802D59A -_0802D33C: - ldr r1, [r4] - ldr r0, [r1, 0xC] - ldrb r0, [r0, 0x2] - cmp r0, 0x4 - bne _0802D36E - adds r0, r1, 0 - adds r0, 0x10 - bl sub_8096C08 - lsls r0, 24 - cmp r0, 0 - beq _0802D36E - bl sub_802DAA8 - lsls r0, 24 - cmp r0, 0 - beq _0802D366 - movs r0, 0x9 - bl sub_802D1A0 - b _0802D59A -_0802D366: - movs r0, 0x5 - bl sub_802D1A0 - b _0802D59A -_0802D36E: - bl sub_80969AC - cmp r0, 0x7 - ble _0802D390 - bl sub_802DADC - lsls r0, 24 - cmp r0, 0 - beq _0802D388 - movs r0, 0xA - bl sub_802D1A0 - b _0802D59A -_0802D388: - movs r0, 0x6 - bl sub_802D1A0 - b _0802D59A -_0802D390: - movs r0, 0x8 - bl sub_802D1A0 - b _0802D59A -_0802D398: - bl sub_802D73C - ldr r0, _0802D3AC - ldr r1, _0802D3B0 - ldr r3, [r1] - ldr r2, [r3, 0x70] - movs r1, 0xAC - lsls r1, 1 - adds r3, r1 - b _0802D4AA - .align 2, 0 -_0802D3AC: .4byte gUnknown_80DFE4C -_0802D3B0: .4byte gUnknown_203B2F8 -_0802D3B4: - ldr r1, [r4] - movs r0, 0x2 - str r0, [r1, 0x4] - ldr r0, _0802D3C0 - b _0802D4D0 - .align 2, 0 -_0802D3C0: .4byte gUnknown_80DFE9C -_0802D3C4: - ldr r1, [r4] - movs r0, 0x2 - str r0, [r1, 0x4] - ldr r0, _0802D3D0 - b _0802D4D0 - .align 2, 0 -_0802D3D0: .4byte gUnknown_80DFED0 -_0802D3D4: - ldr r1, [r4] - movs r0, 0x2 - str r0, [r1, 0x4] - ldr r0, _0802D3E0 - b _0802D4D0 - .align 2, 0 -_0802D3E0: .4byte gUnknown_80DFF2C -_0802D3E4: - ldr r1, [r4] - movs r0, 0x2 - str r0, [r1, 0x4] - ldr r0, _0802D3F0 - b _0802D4D0 - .align 2, 0 -_0802D3F0: .4byte gUnknown_80DFFA4 -_0802D3F4: - ldr r1, [r4] - movs r0, 0xC - str r0, [r1, 0x4] - ldr r0, _0802D400 - b _0802D4D0 - .align 2, 0 -_0802D400: .4byte gUnknown_80E0010 -_0802D404: - ldr r4, _0802D45C - ldr r1, [r4] - movs r0, 0x1 - strb r0, [r1, 0x8] - ldr r0, [r4] - ldr r0, [r0, 0xC] - bl sub_8096A78 - bl sub_8096C80 - bl sub_8096D24 - ldr r0, [r4] - ldr r0, [r0, 0xC] - ldrb r0, [r0, 0x2] - cmp r0, 0x4 - bne _0802D446 - bl sub_8096DD8 - ldr r1, [r4] - ldr r1, [r1, 0xC] - ldr r1, [r1, 0x14] - movs r2, 0x28 - bl MemoryCopy8 - bl sub_8096DE8 - ldr r1, [r4] - ldr r1, [r1, 0xC] - ldr r1, [r1, 0x18] - movs r2, 0x78 - bl MemoryCopy8 -_0802D446: - ldr r0, [r4] - ldr r0, [r0, 0xC] - ldrb r0, [r0, 0x4] - cmp r0, 0x2C - beq _0802D46E - cmp r0, 0x2C - bgt _0802D460 - cmp r0, 0x2B - beq _0802D46A - b _0802D484 - .align 2, 0 -_0802D45C: .4byte gUnknown_203B2F8 -_0802D460: - cmp r0, 0x2D - beq _0802D472 - cmp r0, 0x2E - beq _0802D47C - b _0802D484 -_0802D46A: - movs r0, 0x2A - b _0802D474 -_0802D46E: - movs r0, 0x2B - b _0802D474 -_0802D472: - movs r0, 0x2C -_0802D474: - movs r1, 0x1 - bl sub_8097418 - b _0802D484 -_0802D47C: - movs r0, 0x2D - movs r1, 0x1 - bl sub_8097418 -_0802D484: - ldr r0, _0802D490 - ldr r1, [r0] - movs r0, 0x2 - str r0, [r1, 0x4] - ldr r0, _0802D494 - b _0802D4D0 - .align 2, 0 -_0802D490: .4byte gUnknown_203B2F8 -_0802D494: .4byte gUnknown_80E0074 -_0802D498: - bl sub_802D690 - ldr r0, _0802D4C0 - ldr r1, _0802D4C4 - ldr r3, [r1] - ldr r2, [r3, 0x74] - movs r4, 0xAC - lsls r4, 1 - adds r3, r4 -_0802D4AA: - movs r4, 0 - str r4, [sp] - movs r1, 0x4 - str r1, [sp, 0x4] - str r4, [sp, 0x8] - str r4, [sp, 0xC] - str r4, [sp, 0x10] - movs r1, 0 - bl sub_8014248 - b _0802D59A - .align 2, 0 -_0802D4C0: .4byte gUnknown_80E0094 -_0802D4C4: .4byte gUnknown_203B2F8 -_0802D4C8: - ldr r1, [r4] - movs r0, 0xB - str r0, [r1, 0x4] - ldr r0, _0802D4DC -_0802D4D0: - ldr r3, _0802D4E0 - movs r1, 0 - movs r2, 0 - bl sub_80141B4 - b _0802D59A - .align 2, 0 -_0802D4DC: .4byte gUnknown_80E0108 -_0802D4E0: .4byte 0x00000101 -_0802D4E4: - movs r0, 0 - movs r1, 0 - movs r2, 0x4 - bl sub_802C4C8 - b _0802D59A -_0802D4F0: - movs r0, 0x1 - bl sub_802C640 - b _0802D59A -_0802D4F8: - bl sub_802C750 - ldr r0, _0802D520 - ldr r2, [r0] - adds r0, r2, 0 - adds r0, 0x78 - movs r3, 0x8C - lsls r3, 1 - adds r1, r2, r3 - movs r4, 0xCC - lsls r4, 1 - adds r3, r2, r4 - ldr r2, [r2, 0x6C] - str r2, [sp] - movs r2, 0x2 - str r2, [sp, 0x4] - movs r2, 0 - bl sub_8012D60 - b _0802D59A - .align 2, 0 -_0802D520: .4byte gUnknown_203B2F8 -_0802D524: - bl sub_802C750 - ldr r4, _0802D554 - ldr r0, [r4] - adds r0, 0x78 - movs r1, 0 - bl sub_8012EA4 - ldr r1, [r4] - adds r0, r1, 0 - adds r0, 0xC8 - movs r2, 0xAC - lsls r2, 1 - adds r1, r2 - movs r2, 0x4 - str r2, [sp] - movs r2, 0x3 - str r2, [sp, 0x4] - movs r2, 0 - movs r3, 0 - bl sub_8012D60 - b _0802D59A - .align 2, 0 -_0802D554: .4byte gUnknown_203B2F8 -_0802D558: - ldr r0, [r4] - ldrb r0, [r0, 0x10] - bl sub_8096AB4 - ldr r1, [r4] - adds r1, 0x14 - bl sub_803B35C - ldr r0, [r4] - movs r1, 0x3 - str r1, [r0, 0x14] - adds r0, 0x14 - bl sub_802DE84 - b _0802D59A -_0802D576: - ldr r1, [r4] - ldr r0, [r1, 0xC] - adds r1, 0x14 - bl sub_803B35C - ldr r0, [r4] - movs r1, 0x3 - str r1, [r0, 0x14] - adds r0, 0x58 - movs r1, 0 - strb r1, [r0] - ldr r0, [r4] - ldr r1, [r0, 0xC] - ldr r1, [r1, 0x18] - str r1, [r0, 0x64] - adds r0, 0x14 - bl sub_802DE84 -_0802D59A: - add sp, 0x14 - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_802D2A8 - - thumb_func_start sub_802D5A4 -sub_802D5A4: - push {r4-r7,lr} - ldr r4, _0802D630 - ldr r0, [r4] - movs r5, 0xCC - lsls r5, 1 - adds r0, r5 - movs r1, 0 - movs r2, 0x10 - bl MemoryFill16 - ldr r0, [r4] - mov r12, r0 - movs r3, 0 - movs r1, 0x8C - lsls r1, 1 - add r1, r12 - ldr r0, _0802D634 - ldr r0, [r0] - str r0, [r1] - movs r1, 0x8E - lsls r1, 1 - add r1, r12 - movs r0, 0x2 - str r0, [r1] - movs r2, 0x1 - movs r1, 0x90 - lsls r1, 1 - add r1, r12 - ldr r0, _0802D638 - ldr r0, [r0] - str r0, [r1] - movs r1, 0x92 - lsls r1, 1 - add r1, r12 - movs r0, 0x5 - str r0, [r1] - movs r7, 0x2 - movs r0, 0x94 - lsls r0, 1 - add r0, r12 - str r3, [r0] - movs r0, 0x96 - lsls r0, 1 - add r0, r12 - str r2, [r0] - movs r6, 0 - movs r3, 0x8E - lsls r3, 1 - add r3, r12 - mov r0, r12 - adds r2, r0, r5 -_0802D60A: - ldrh r0, [r2] - cmp r0, 0 - bne _0802D61A - ldr r1, [r3] - mov r5, r12 - ldr r0, [r5, 0x6C] - cmp r1, r0 - beq _0802D62A -_0802D61A: - adds r3, 0x8 - adds r2, 0x2 - adds r6, 0x1 - cmp r6, r7 - blt _0802D60A - ldr r1, [r4] - movs r0, 0x2 - str r0, [r1, 0x6C] -_0802D62A: - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0802D630: .4byte gUnknown_203B2F8 -_0802D634: .4byte gUnknown_80D494C -_0802D638: .4byte gUnknown_80D4970 - thumb_func_end sub_802D5A4 - - thumb_func_start sub_802D63C -sub_802D63C: - ldr r0, _0802D684 - ldr r0, [r0] - mov r12, r0 - movs r3, 0 - movs r1, 0xAC - lsls r1, 1 - add r1, r12 - ldr r0, _0802D688 - ldr r0, [r0] - str r0, [r1] - movs r1, 0xAE - lsls r1, 1 - add r1, r12 - movs r0, 0x3 - str r0, [r1] - movs r2, 0x1 - movs r1, 0xB0 - lsls r1, 1 - add r1, r12 - ldr r0, _0802D68C - ldr r0, [r0] - str r0, [r1] - movs r1, 0xB2 - lsls r1, 1 - add r1, r12 - movs r0, 0x4 - str r0, [r1] - movs r0, 0xB4 - lsls r0, 1 - add r0, r12 - str r3, [r0] - movs r0, 0xB6 - lsls r0, 1 - add r0, r12 - str r2, [r0] - bx lr - .align 2, 0 -_0802D684: .4byte gUnknown_203B2F8 -_0802D688: .4byte gUnknown_80D4920 -_0802D68C: .4byte gUnknown_80D4928 - thumb_func_end sub_802D63C - - thumb_func_start sub_802D690 -sub_802D690: - push {r4,r5,lr} - ldr r2, _0802D728 - ldr r0, [r2] - mov r12, r0 - movs r4, 0 - movs r1, 0xAC - lsls r1, 1 - add r1, r12 - ldr r0, _0802D72C - ldr r0, [r0] - str r0, [r1] - movs r1, 0xAE - lsls r1, 1 - add r1, r12 - movs r0, 0x3 - str r0, [r1] - movs r3, 0x1 - movs r1, 0xB0 - lsls r1, 1 - add r1, r12 - ldr r0, _0802D730 - ldr r0, [r0] - str r0, [r1] - movs r1, 0xB2 - lsls r1, 1 - add r1, r12 - movs r0, 0x4 - str r0, [r1] - movs r1, 0xB4 - lsls r1, 1 - add r1, r12 - ldr r0, _0802D734 - str r0, [r1] - movs r1, 0xB6 - lsls r1, 1 - add r1, r12 - movs r0, 0x6 - str r0, [r1] - movs r1, 0xB8 - lsls r1, 1 - add r1, r12 - ldr r0, _0802D738 - str r0, [r1] - movs r1, 0xBA - lsls r1, 1 - add r1, r12 - movs r0, 0x7 - str r0, [r1] - movs r5, 0x4 - movs r0, 0xBC - lsls r0, 1 - add r0, r12 - str r4, [r0] - movs r0, 0xBE - lsls r0, 1 - add r0, r12 - str r3, [r0] - movs r3, 0 - mov r0, r12 - ldr r4, [r0, 0x74] - movs r1, 0xAE - lsls r1, 1 - add r1, r12 -_0802D70E: - ldr r0, [r1] - cmp r0, r4 - beq _0802D722 - adds r1, 0x8 - adds r3, 0x1 - cmp r3, r5 - blt _0802D70E - ldr r1, [r2] - movs r0, 0x4 - str r0, [r1, 0x74] -_0802D722: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_0802D728: .4byte gUnknown_203B2F8 -_0802D72C: .4byte gUnknown_80D4920 -_0802D730: .4byte gUnknown_80D4928 -_0802D734: .4byte gUnknown_80E014C -_0802D738: .4byte gUnknown_80E0158 - thumb_func_end sub_802D690 - - thumb_func_start sub_802D73C -sub_802D73C: - push {r4,r5,lr} - ldr r3, _0802D7C0 - ldr r0, [r3] - mov r12, r0 - movs r4, 0 - movs r1, 0xAC - lsls r1, 1 - add r1, r12 - ldr r0, _0802D7C4 - ldr r0, [r0] - str r0, [r1] - movs r1, 0xAE - lsls r1, 1 - add r1, r12 - movs r0, 0x3 - str r0, [r1] - movs r2, 0x1 - movs r1, 0xB0 - lsls r1, 1 - add r1, r12 - ldr r0, _0802D7C8 - ldr r0, [r0] - str r0, [r1] - movs r1, 0xB2 - lsls r1, 1 - add r1, r12 - movs r0, 0x4 - str r0, [r1] - movs r1, 0xB4 - lsls r1, 1 - add r1, r12 - ldr r0, _0802D7CC - str r0, [r1] - movs r1, 0xB6 - lsls r1, 1 - add r1, r12 - movs r0, 0x6 - str r0, [r1] - movs r5, 0x3 - movs r0, 0xB8 - lsls r0, 1 - add r0, r12 - str r4, [r0] - movs r0, 0xBA - lsls r0, 1 - add r0, r12 - str r2, [r0] - movs r2, 0 - mov r0, r12 - ldr r4, [r0, 0x70] - movs r1, 0xAE - lsls r1, 1 - add r1, r12 -_0802D7A6: - ldr r0, [r1] - cmp r0, r4 - beq _0802D7BA - adds r1, 0x8 - adds r2, 0x1 - cmp r2, r5 - blt _0802D7A6 - ldr r1, [r3] - movs r0, 0x4 - str r0, [r1, 0x70] -_0802D7BA: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_0802D7C0: .4byte gUnknown_203B2F8 -_0802D7C4: .4byte gUnknown_80D4920 -_0802D7C8: .4byte gUnknown_80D4928 -_0802D7CC: .4byte gUnknown_80E014C - thumb_func_end sub_802D73C - - thumb_func_start sub_802D7D0 -sub_802D7D0: - push {lr} - sub sp, 0x4 - mov r0, sp - bl sub_80144A4 - cmp r0, 0 - bne _0802D826 - ldr r1, [sp] - cmp r1, 0x1 - beq _0802D7EA - ldr r0, _0802D800 - ldr r0, [r0] - str r1, [r0, 0x70] -_0802D7EA: - ldr r0, [sp] - cmp r0, 0x3 - beq _0802D804 - cmp r0, 0x3 - ble _0802D820 - cmp r0, 0x4 - beq _0802D820 - cmp r0, 0x6 - beq _0802D80C - b _0802D820 - .align 2, 0 -_0802D800: .4byte gUnknown_203B2F8 -_0802D804: - movs r0, 0x2 - bl sub_802D1A0 - b _0802D826 -_0802D80C: - ldr r0, _0802D81C - ldr r1, [r0] - movs r0, 0x1 - str r0, [r1, 0x4] - movs r0, 0x10 - bl sub_802D1A0 - b _0802D826 - .align 2, 0 -_0802D81C: .4byte gUnknown_203B2F8 -_0802D820: - movs r0, 0 - bl sub_802D1A0 -_0802D826: - add sp, 0x4 - pop {r0} - bx r0 - thumb_func_end sub_802D7D0 - - thumb_func_start sub_802D82C -sub_802D82C: - push {lr} - sub sp, 0x4 - mov r0, sp - bl sub_80144A4 - cmp r0, 0 - bne _0802D8C6 - ldr r1, [sp] - cmp r1, 0x1 - beq _0802D846 - ldr r0, _0802D858 - ldr r0, [r0] - str r1, [r0, 0x74] -_0802D846: - ldr r0, [sp] - subs r0, 0x1 - cmp r0, 0x6 - bhi _0802D8C0 - lsls r0, 2 - ldr r1, _0802D85C - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0802D858: .4byte gUnknown_203B2F8 -_0802D85C: .4byte _0802D860 - .align 2, 0 -_0802D860: - .4byte _0802D8C0 - .4byte _0802D8C0 - .4byte _0802D87C - .4byte _0802D8C0 - .4byte _0802D8C0 - .4byte _0802D898 - .4byte _0802D8AC -_0802D87C: - ldr r0, _0802D894 - ldr r0, [r0] - ldrb r0, [r0, 0x10] - bl sub_8096C3C - bl sub_8096C80 - movs r0, 0x8 - bl sub_802D1A0 - b _0802D8C6 - .align 2, 0 -_0802D894: .4byte gUnknown_203B2F8 -_0802D898: - ldr r0, _0802D8A8 - ldr r1, [r0] - movs r0, 0x9 - str r0, [r1, 0x4] - movs r0, 0x10 - bl sub_802D1A0 - b _0802D8C6 - .align 2, 0 -_0802D8A8: .4byte gUnknown_203B2F8 -_0802D8AC: - ldr r0, _0802D8BC - ldr r1, [r0] - movs r0, 0x9 - str r0, [r1, 0x4] - movs r0, 0xF - bl sub_802D1A0 - b _0802D8C6 - .align 2, 0 -_0802D8BC: .4byte gUnknown_203B2F8 -_0802D8C0: - movs r0, 0x1 - bl sub_802D1A0 -_0802D8C6: - add sp, 0x4 - pop {r0} - bx r0 - thumb_func_end sub_802D82C - - thumb_func_start sub_802D8CC -sub_802D8CC: - push {lr} - movs r0, 0x1 - bl sub_802C598 - cmp r0, 0x4 - bhi _0802D93A - lsls r0, 2 - ldr r1, _0802D8E4 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0802D8E4: .4byte _0802D8E8 - .align 2, 0 -_0802D8E8: - .4byte _0802D93A - .4byte _0802D93A - .4byte _0802D930 - .4byte _0802D8FC - .4byte _0802D914 -_0802D8FC: - bl sub_802C620 - ldr r1, _0802D910 - ldr r1, [r1] - strb r0, [r1, 0x10] - movs r0, 0xD - bl sub_802D1A0 - b _0802D93A - .align 2, 0 -_0802D910: .4byte gUnknown_203B2F8 -_0802D914: - bl sub_802C620 - ldr r2, _0802D92C - ldr r1, [r2] - strb r0, [r1, 0x10] - ldr r1, [r2] - movs r0, 0xC - str r0, [r1, 0x4] - movs r0, 0xF - bl sub_802D1A0 - b _0802D93A - .align 2, 0 -_0802D92C: .4byte gUnknown_203B2F8 -_0802D930: - bl sub_802C688 - movs r0, 0x1 - bl sub_802D1A0 -_0802D93A: - pop {r0} - bx r0 - thumb_func_end sub_802D8CC - - thumb_func_start sub_802D940 -sub_802D940: - push {r4,lr} - sub sp, 0x4 - movs r0, 0 - str r0, [sp] - bl sub_802C598 - ldr r4, _0802D980 - ldr r0, [r4] - adds r0, 0x78 - bl sub_8012FD8 - lsls r0, 24 - cmp r0, 0 - bne _0802D970 - ldr r0, [r4] - adds r0, 0x78 - mov r1, sp - bl sub_8013114 - ldr r1, [sp] - cmp r1, 0x1 - beq _0802D970 - ldr r0, [r4] - str r1, [r0, 0x6C] -_0802D970: - ldr r0, [sp] - cmp r0, 0x2 - beq _0802D98A - cmp r0, 0x2 - bgt _0802D984 - cmp r0, 0x1 - beq _0802D9E0 - b _0802D9E6 - .align 2, 0 -_0802D980: .4byte gUnknown_203B2F8 -_0802D984: - cmp r0, 0x5 - beq _0802D9CC - b _0802D9E6 -_0802D98A: - ldr r0, _0802D9BC - ldr r3, [r0] - ldrb r0, [r3, 0x9] - cmp r0, 0 - beq _0802D9C4 - ldr r2, _0802D9C0 - ldrb r1, [r3, 0x10] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 2 - adds r0, 0xF0 - ldr r1, [r2] - adds r1, r0 - ldrb r0, [r1] - cmp r0, 0x5 - bls _0802D9C4 - ldrb r0, [r3, 0xA] - ldrb r1, [r1, 0x4] - cmp r0, r1 - bne _0802D9C4 - movs r0, 0x7 - bl sub_802D1A0 - b _0802D9E6 - .align 2, 0 -_0802D9BC: .4byte gUnknown_203B2F8 -_0802D9C0: .4byte gUnknown_203B490 -_0802D9C4: - movs r0, 0xE - bl sub_802D1A0 - b _0802D9E6 -_0802D9CC: - ldr r0, _0802D9DC - ldr r1, [r0] - movs r0, 0xC - str r0, [r1, 0x4] - movs r0, 0xF - bl sub_802D1A0 - b _0802D9E6 - .align 2, 0 -_0802D9DC: .4byte gUnknown_203B2F8 -_0802D9E0: - movs r0, 0xC - bl sub_802D1A0 -_0802D9E6: - add sp, 0x4 - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_802D940 - - thumb_func_start sub_802D9F0 -sub_802D9F0: - push {r4,lr} - sub sp, 0x4 - movs r0, 0 - str r0, [sp] - bl sub_802C598 - ldr r4, _0802DA30 - ldr r0, [r4] - adds r0, 0x78 - bl sub_8012FD8 - ldr r0, [r4] - adds r0, 0xC8 - bl sub_8012FD8 - lsls r0, 24 - cmp r0, 0 - bne _0802DA1E - ldr r0, [r4] - adds r0, 0xC8 - mov r1, sp - bl sub_8013114 -_0802DA1E: - ldr r0, [sp] - cmp r0, 0x3 - beq _0802DA40 - cmp r0, 0x3 - bgt _0802DA34 - cmp r0, 0x1 - beq _0802DA38 - b _0802DA56 - .align 2, 0 -_0802DA30: .4byte gUnknown_203B2F8 -_0802DA34: - cmp r0, 0x4 - bne _0802DA56 -_0802DA38: - movs r0, 0xC - bl sub_802D1A0 - b _0802DA56 -_0802DA40: - bl sub_802C688 - ldr r0, [r4] - ldrb r0, [r0, 0x10] - bl sub_8096C3C - bl sub_8096C80 - movs r0, 0x8 - bl sub_802D1A0 -_0802DA56: - add sp, 0x4 - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_802D9F0 - - thumb_func_start sub_802DA60 -sub_802DA60: - push {lr} - bl sub_802DEE0 - cmp r0, 0x1 - bls _0802DA7C - cmp r0, 0x3 - bhi _0802DA7C - bl sub_802DF24 - ldr r0, _0802DA80 - ldr r0, [r0] - ldr r0, [r0, 0x4] - bl sub_802D1A0 -_0802DA7C: - pop {r0} - bx r0 - .align 2, 0 -_0802DA80: .4byte gUnknown_203B2F8 - thumb_func_end sub_802DA60 - - thumb_func_start sub_802DA84 -sub_802DA84: - push {lr} - sub sp, 0x4 - mov r0, sp - bl sub_80144A4 - cmp r0, 0 - bne _0802DA9C - ldr r0, _0802DAA4 - ldr r0, [r0] - ldr r0, [r0, 0x4] - bl sub_802D1A0 -_0802DA9C: - add sp, 0x4 - pop {r0} - bx r0 - .align 2, 0 -_0802DAA4: .4byte gUnknown_203B2F8 - thumb_func_end sub_802DA84 - - thumb_func_start sub_802DAA8 -sub_802DAA8: - push {r4,lr} - ldr r4, _0802DAD0 - ldr r0, [r4] - ldrb r0, [r0, 0x10] - bl sub_8096AB4 - adds r1, r0, 0 - ldr r4, [r4] - ldrb r0, [r4, 0x9] - cmp r0, 0 - beq _0802DAD4 - ldrb r0, [r1] - cmp r0, 0x5 - beq _0802DAD4 - ldrb r0, [r4, 0xA] - ldrb r1, [r1, 0x4] - cmp r0, r1 - bne _0802DAD4 - movs r0, 0 - b _0802DAD6 - .align 2, 0 -_0802DAD0: .4byte gUnknown_203B2F8 -_0802DAD4: - movs r0, 0x1 -_0802DAD6: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_802DAA8 - - thumb_func_start sub_802DADC -sub_802DADC: - push {r4,lr} - ldr r3, _0802DAEC - ldr r0, [r3] - ldrb r0, [r0, 0x9] - cmp r0, 0 - bne _0802DAF0 -_0802DAE8: - movs r0, 0x1 - b _0802DB1C - .align 2, 0 -_0802DAEC: .4byte gUnknown_203B2F8 -_0802DAF0: - ldr r0, _0802DB24 - ldr r0, [r0] - adds r1, r0, 0 - adds r1, 0xF0 - movs r2, 0 -_0802DAFA: - ldrb r0, [r1] - cmp r0, 0 - beq _0802DAE8 - cmp r0, 0x5 - beq _0802DAE8 - cmp r0, 0x5 - bls _0802DB12 - ldr r0, [r3] - ldrb r0, [r0, 0xA] - ldrb r4, [r1, 0x4] - cmp r0, r4 - bne _0802DAE8 -_0802DB12: - adds r1, 0x14 - adds r2, 0x1 - cmp r2, 0x7 - ble _0802DAFA - movs r0, 0 -_0802DB1C: - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_0802DB24: .4byte gUnknown_203B490 - thumb_func_end sub_802DADC - - thumb_func_start sub_802DB28 -sub_802DB28: - push {r4-r6,lr} - sub sp, 0x8 - adds r2, r1, 0 - lsls r0, 24 - lsrs r6, r0, 24 - lsls r2, 24 - lsrs r2, 24 - mov r0, sp - adds r1, r6, 0 - bl sub_8096AF8 - mov r0, sp - ldrb r0, [r0] - cmp r0, 0 - bne _0802DB4A - movs r0, 0 - b _0802DBC6 -_0802DB4A: - bl ResetUnusedInputStruct - movs r0, 0 - movs r1, 0x1 - movs r2, 0x1 - bl sub_800641C - ldr r4, _0802DBD0 - movs r0, 0xA8 - movs r1, 0x8 - bl MemoryAlloc - str r0, [r4] - adds r0, 0x30 - movs r5, 0 - strb r6, [r0] - adds r0, r6, 0 - bl sub_8096AB4 - ldr r1, [r4] - str r0, [r1, 0x34] - bl sub_8096EEC - ldr r1, [r4] - ldr r0, [r1, 0x34] - adds r1, 0x8 - bl sub_803C21C - ldr r0, [r4] - ldr r0, [r0, 0x34] - movs r1, 0xC - ldrsh r0, [r0, r1] - bl GetDialogueSpriteDataPtr - ldr r1, [r4] - str r0, [r1, 0x38] - str r5, [r1, 0x3C] - adds r1, 0x44 - strb r5, [r1] - ldr r0, [r4] - adds r0, 0x45 - strb r5, [r0] - ldr r0, [r4] - adds r0, 0x46 - strb r5, [r0] - ldr r2, [r4] - adds r1, r2, 0 - adds r1, 0x40 - movs r0, 0x2 - strh r0, [r1] - adds r1, 0x2 - movs r0, 0x8 - strh r0, [r1] - ldr r0, [r2, 0x38] - cmp r0, 0 - beq _0802DBBE - ldr r0, [r0, 0x4] - str r0, [r2, 0x3C] -_0802DBBE: - movs r0, 0 - bl sub_802DC28 - movs r0, 0x1 -_0802DBC6: - add sp, 0x8 - pop {r4-r6} - pop {r1} - bx r1 - .align 2, 0 -_0802DBD0: .4byte gUnknown_203B2FC - thumb_func_end sub_802DB28 - - thumb_func_start sub_802DBD4 -sub_802DBD4: - push {lr} - ldr r0, _0802DBEC - ldr r0, [r0] - ldr r1, [r0] - cmp r1, 0x6 - beq _0802DBF0 - cmp r1, 0x7 - bne _0802DBF6 - ldr r0, [r0, 0x34] - strb r1, [r0] - movs r0, 0x3 - b _0802DBFC - .align 2, 0 -_0802DBEC: .4byte gUnknown_203B2FC -_0802DBF0: - bl sub_802DE44 - b _0802DBFA -_0802DBF6: - bl sub_802DE60 -_0802DBFA: - movs r0, 0 -_0802DBFC: - pop {r1} - bx r1 - thumb_func_end sub_802DBD4 - - thumb_func_start sub_802DC00 -sub_802DC00: - push {r4,lr} - ldr r4, _0802DC24 - ldr r0, [r4] - cmp r0, 0 - beq _0802DC1E - ldr r0, [r0, 0x38] - cmp r0, 0 - beq _0802DC14 - bl CloseFile -_0802DC14: - ldr r0, [r4] - bl MemoryFree - movs r0, 0 - str r0, [r4] -_0802DC1E: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0802DC24: .4byte gUnknown_203B2FC - thumb_func_end sub_802DC00 - - thumb_func_start sub_802DC28 -sub_802DC28: - push {lr} - ldr r1, _0802DC3C - ldr r1, [r1] - str r0, [r1] - bl sub_802DC40 - bl sub_802DC9C - pop {r0} - bx r0 - .align 2, 0 -_0802DC3C: .4byte gUnknown_203B2FC - thumb_func_end sub_802DC28 - - thumb_func_start sub_802DC40 -sub_802DC40: - push {r4-r7,lr} - ldr r4, _0802DC94 - ldr r0, [r4] - adds r0, 0x48 - bl sub_8006518 - ldr r0, [r4] - ldr r0, [r0] - cmp r0, 0 - beq _0802DC58 - cmp r0, 0x7 - bne _0802DC7A -_0802DC58: - mov r12, r4 - ldr r4, _0802DC98 - movs r3, 0 - movs r2, 0x3 -_0802DC60: - mov r0, r12 - ldr r1, [r0] - adds r1, r3 - adds r1, 0x48 - adds r0, r4, 0 - ldm r0!, {r5-r7} - stm r1!, {r5-r7} - ldm r0!, {r5-r7} - stm r1!, {r5-r7} - adds r3, 0x18 - subs r2, 0x1 - cmp r2, 0 - bge _0802DC60 -_0802DC7A: - bl ResetUnusedInputStruct - ldr r0, _0802DC94 - ldr r0, [r0] - adds r0, 0x48 - movs r1, 0x1 - movs r2, 0x1 - bl sub_800641C - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0802DC94: .4byte gUnknown_203B2FC -_0802DC98: .4byte gUnknown_80E016C - thumb_func_end sub_802DC40 - - thumb_func_start sub_802DC9C -sub_802DC9C: - push {r4,r5,lr} - ldr r1, _0802DCB8 - ldr r0, [r1] - ldr r0, [r0] - adds r5, r1, 0 - cmp r0, 0x7 - bls _0802DCAC - b _0802DE3E -_0802DCAC: - lsls r0, 2 - ldr r1, _0802DCBC - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0802DCB8: .4byte gUnknown_203B2FC -_0802DCBC: .4byte _0802DCC0 - .align 2, 0 -_0802DCC0: - .4byte _0802DCE0 - .4byte _0802DDDC - .4byte _0802DDE4 - .4byte _0802DDEC - .4byte _0802DDFC - .4byte _0802DDF4 - .4byte _0802DE34 - .4byte _0802DE3E -_0802DCE0: - ldr r0, _0802DD60 - ldr r1, [r5] - ldr r1, [r1, 0x34] - movs r2, 0xC - ldrsh r1, [r1, r2] - bl sub_808D8E0 - ldr r4, _0802DD64 - ldr r0, [r5] - ldr r0, [r0, 0x34] - movs r2, 0xC - ldrsh r1, [r0, r2] - adds r0, r4, 0 - bl sub_808D8E0 - ldr r0, [r5] - ldr r0, [r0, 0x34] - movs r1, 0xC - ldrsh r0, [r0, r1] - bl GetMonSpecies - adds r1, r0, 0 - ldr r2, _0802DD68 - adds r0, r4, r2 - bl strcpy - ldr r0, [r5] - ldr r0, [r0, 0x34] - movs r1, 0xE - ldrsh r0, [r0, r1] - bl GetMonSpecies - adds r1, r0, 0 - ldr r2, _0802DD6C - adds r4, r2 - adds r0, r4, 0 - bl strcpy - ldr r0, [r5] - ldr r0, [r0, 0x34] - movs r1, 0xC - ldrsh r0, [r0, r1] - bl sub_8098214 - ldr r0, _0802DD70 - ldr r1, [r5] - ldr r1, [r1, 0x34] - ldrb r1, [r1, 0x10] - movs r2, 0 - bl sub_8090DC4 - ldr r1, [r5] - movs r0, 0x6 - str r0, [r1, 0x4] - ldr r0, [r1, 0x34] - ldrb r0, [r0, 0x1] - cmp r0, 0x4 - bhi _0802DDD4 - lsls r0, 2 - ldr r1, _0802DD74 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0802DD60: .4byte gUnknown_202E5D8 -_0802DD64: .4byte gUnknown_202E1C8 -_0802DD68: .4byte 0xfffffdd0 -_0802DD6C: .4byte 0xfffffe20 -_0802DD70: .4byte gUnknown_202DE58 -_0802DD74: .4byte _0802DD78 - .align 2, 0 -_0802DD78: - .4byte _0802DDD4 - .4byte _0802DD9C - .4byte _0802DDB8 - .4byte _0802DD94 - .4byte _0802DD8C -_0802DD8C: - movs r0, 0x5 - bl sub_802DC28 - b _0802DE3E -_0802DD94: - movs r0, 0x4 - bl sub_802DC28 - b _0802DE3E -_0802DD9C: - movs r0, 0x2 - bl sub_802DC28 - ldr r0, _0802DDB4 - ldr r0, [r0] - ldr r0, [r0, 0x34] - movs r2, 0xE - ldrsh r0, [r0, r2] - bl sub_8098214 - b _0802DE3E - .align 2, 0 -_0802DDB4: .4byte gUnknown_203B2FC -_0802DDB8: - movs r0, 0x3 - bl sub_802DC28 - ldr r0, _0802DDD0 - ldr r0, [r0] - ldr r0, [r0, 0x34] - movs r1, 0xE - ldrsh r0, [r0, r1] - bl sub_8098214 - b _0802DE3E - .align 2, 0 -_0802DDD0: .4byte gUnknown_203B2FC -_0802DDD4: - movs r0, 0x1 - bl sub_802DC28 - b _0802DE3E -_0802DDDC: - ldr r0, _0802DDE0 - b _0802DE1C - .align 2, 0 -_0802DDE0: .4byte gUnknown_80E0184 -_0802DDE4: - ldr r0, _0802DDE8 - b _0802DE1C - .align 2, 0 -_0802DDE8: .4byte gUnknown_80E01A0 -_0802DDEC: - ldr r0, _0802DDF0 - b _0802DE1C - .align 2, 0 -_0802DDF0: .4byte gUnknown_80E01C4 -_0802DDF4: - ldr r0, _0802DDF8 - b _0802DE1C - .align 2, 0 -_0802DDF8: .4byte gUnknown_80E01F0 -_0802DDFC: - ldr r0, [r5] - ldr r0, [r0, 0x34] - ldrb r0, [r0, 0x10] - bl sub_8091130 - adds r1, r0, 0 - movs r0, 0x1 - negs r0, r0 - cmp r1, r0 - beq _0802DE1A - adds r0, r1, 0 - bl sub_80911F8 - bl sub_80910B4 -_0802DE1A: - ldr r0, _0802DE2C -_0802DE1C: - ldr r2, [r5] - adds r2, 0x38 - ldr r3, _0802DE30 - movs r1, 0 - bl sub_80141B4 - b _0802DE3E - .align 2, 0 -_0802DE2C: .4byte gUnknown_80E0218 -_0802DE30: .4byte 0x0000010d -_0802DE34: - ldr r0, [r5] - adds r0, 0x8 - movs r1, 0x1 - bl sub_802F204 -_0802DE3E: - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_802DC9C - - thumb_func_start sub_802DE44 -sub_802DE44: - push {lr} - bl sub_802F298 - cmp r0, 0x1 - bls _0802DE5C - cmp r0, 0x3 - bhi _0802DE5C - bl sub_802F2C0 - movs r0, 0x7 - bl sub_802DC28 -_0802DE5C: - pop {r0} - bx r0 - thumb_func_end sub_802DE44 - - thumb_func_start sub_802DE60 -sub_802DE60: - push {lr} - sub sp, 0x4 - mov r0, sp - bl sub_80144A4 - cmp r0, 0 - bne _0802DE78 - ldr r0, _0802DE80 - ldr r0, [r0] - ldr r0, [r0, 0x4] - bl sub_802DC28 -_0802DE78: - add sp, 0x4 - pop {r0} - bx r0 - .align 2, 0 -_0802DE80: .4byte gUnknown_203B2FC - thumb_func_end sub_802DE60 - - thumb_func_start sub_802DE84 -sub_802DE84: - push {r4,r5,lr} - adds r5, r0, 0 - ldr r4, _0802DED8 - movs r0, 0x7C - movs r1, 0x8 - bl MemoryAlloc - str r0, [r4] - str r5, [r0, 0xC] - bl sub_801317C - ldr r0, [r4] - ldr r1, [r0, 0xC] - ldr r2, [r1] - str r2, [r0, 0x10] - lsls r1, r2, 1 - adds r1, r2 - lsls r1, 3 - adds r1, 0x18 - adds r1, r0, r1 - str r1, [r0, 0x14] - adds r0, 0x18 - bl sub_8006518 - ldr r1, [r4] - ldr r2, [r1, 0x10] - lsls r0, r2, 1 - adds r0, r2 - lsls r0, 3 - adds r1, r0 - adds r1, 0x18 - ldr r0, _0802DEDC ldm r0!, {r2-r4} stm r1!, {r2-r4} ldm r0!, {r2-r4} stm r1!, {r2-r4} - bl sub_802DF14 - movs r0, 0x1 - pop {r4,r5} - pop {r1} - bx r1 - .align 2, 0 -_0802DED8: .4byte gUnknown_203B300 -_0802DEDC: .4byte gUnknown_80E0264 - thumb_func_end sub_802DE84 - - thumb_func_start sub_802DEE0 -sub_802DEE0: - push {lr} - ldr r0, _0802DF00 - ldr r0, [r0] - ldr r1, [r0, 0x10] - bl sub_8012A64 - cmp r0, 0x1 - beq _0802DF04 - cmp r0, 0x2 - bne _0802DF0E - movs r0, 0x1 - bl PlayMenuSoundEffect - movs r0, 0x2 - b _0802DF10 - .align 2, 0 -_0802DF00: .4byte gUnknown_203B300 -_0802DF04: - movs r0, 0 - bl PlayMenuSoundEffect - movs r0, 0x3 - b _0802DF10 -_0802DF0E: - movs r0, 0 -_0802DF10: - pop {r1} - bx r1 - thumb_func_end sub_802DEE0 - - thumb_func_start sub_802DF14 -sub_802DF14: - push {lr} - bl sub_802DF6C - bl sub_802DF88 - pop {r0} - bx r0 - thumb_func_end sub_802DF14 - - thumb_func_start sub_802DF24 -sub_802DF24: - push {r4,r5,lr} - ldr r4, _0802DF64 - ldr r2, [r4] - cmp r2, 0 - beq _0802DF5E - ldr r0, [r2, 0x10] - lsls r1, r0, 1 - adds r1, r0 - lsls r1, 3 - adds r1, r2, r1 - adds r1, 0x18 - ldr r0, _0802DF68 - ldm r0!, {r2,r3,r5} - stm r1!, {r2,r3,r5} - ldm r0!, {r2,r3,r5} - stm r1!, {r2,r3,r5} - bl ResetUnusedInputStruct - ldr r0, [r4] - adds r0, 0x18 - movs r1, 0x1 - movs r2, 0x1 - bl sub_800641C - ldr r0, [r4] - bl MemoryFree - movs r0, 0 - str r0, [r4] -_0802DF5E: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_0802DF64: .4byte gUnknown_203B300 -_0802DF68: .4byte gUnknown_80E0248 - thumb_func_end sub_802DF24 - - thumb_func_start sub_802DF6C -sub_802DF6C: - push {lr} - bl ResetUnusedInputStruct - ldr r0, _0802DF84 - ldr r0, [r0] - adds r0, 0x18 - movs r1, 0x1 - movs r2, 0x1 - bl sub_800641C - pop {r0} - bx r0 - .align 2, 0 -_0802DF84: .4byte gUnknown_203B300 - thumb_func_end sub_802DF6C - - thumb_func_start sub_802DF88 -sub_802DF88: - push {r4,lr} - ldr r4, _0802DFAC - ldr r0, [r4] - ldr r0, [r0, 0x10] - bl sub_80073B8 - ldr r0, [r4] - ldr r0, [r0, 0xC] - bl CreateRescueDescription - ldr r0, [r4] - ldr r0, [r0, 0x10] - bl sub_80073E0 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0802DFAC: .4byte gUnknown_203B300 - thumb_func_end sub_802DF88 - - thumb_func_start sub_802DFB0 -sub_802DFB0: - push {r4,lr} - ldr r4, _0802DFD4 - movs r0, 0xB6 - lsls r0, 1 - movs r1, 0x8 - bl MemoryAlloc - str r0, [r4] - movs r1, 0 - str r1, [r0, 0x64] - str r1, [r0, 0x68] + ldm r0!, {r2-r4} + stm r1!, {r2-r4} + ldr r2, [r6] + ldr r4, _08028760 + adds r3, r2, r4 movs r0, 0 - bl sub_802E088 + ldrsh r1, [r3, r0] movs r0, 0x1 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_0802DFD4: .4byte gUnknown_203B304 - thumb_func_end sub_802DFB0 - - thumb_func_start sub_802DFD8 -sub_802DFD8: - push {lr} - ldr r0, _0802DFF0 - ldr r0, [r0] - ldr r0, [r0] - cmp r0, 0xB - bhi _0802E060 - lsls r0, 2 - ldr r1, _0802DFF4 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0802DFF0: .4byte gUnknown_203B304 -_0802DFF4: .4byte _0802DFF8 - .align 2, 0 -_0802DFF8: - .4byte _0802E028 - .4byte _0802E030 - .4byte _0802E036 - .4byte _0802E060 - .4byte _0802E03C - .4byte _0802E03C - .4byte _0802E042 - .4byte _0802E048 - .4byte _0802E04E - .4byte _0802E054 - .4byte _0802E054 - .4byte _0802E05A -_0802E028: - movs r0, 0x1 - bl sub_802E088 - b _0802E064 -_0802E030: - bl sub_802E4B0 - b _0802E064 -_0802E036: - bl nullsub_133 - b _0802E064 -_0802E03C: - bl sub_802E578 - b _0802E064 -_0802E042: - bl sub_802E60C - b _0802E064 -_0802E048: - bl sub_802E73C - b _0802E064 -_0802E04E: - bl sub_802E758 - b _0802E064 -_0802E054: - bl sub_802E774 - b _0802E064 -_0802E05A: - bl sub_802E7D0 - b _0802E064 -_0802E060: - movs r0, 0x3 - b _0802E066 -_0802E064: - movs r0, 0 -_0802E066: - pop {r1} - bx r1 - thumb_func_end sub_802DFD8 - - thumb_func_start sub_802E06C -sub_802E06C: - push {r4,lr} - ldr r4, _0802E084 - ldr r0, [r4] - cmp r0, 0 - beq _0802E07E - bl MemoryFree - movs r0, 0 - str r0, [r4] -_0802E07E: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0802E084: .4byte gUnknown_203B304 - thumb_func_end sub_802E06C - - thumb_func_start sub_802E088 -sub_802E088: - push {lr} - ldr r1, _0802E09C + negs r0, r0 + cmp r1, r0 + beq _08028736 + adds r0, r2, 0 + adds r0, 0xD8 + ldr r1, _08028764 ldr r1, [r1] - str r0, [r1] - bl sub_802E0A0 - bl sub_802E1AC - pop {r0} - bx r0 - .align 2, 0 -_0802E09C: .4byte gUnknown_203B304 - thumb_func_end sub_802E088 - - thumb_func_start sub_802E0A0 -sub_802E0A0: - push {r4-r7,lr} - mov r7, r8 - push {r7} - ldr r4, _0802E0C8 - ldr r0, [r4] - movs r6, 0x86 - lsls r6, 1 - adds r0, r6 - bl sub_8006518 - ldr r0, [r4] - ldr r5, [r0] - cmp r5, 0x1 - beq _0802E0D0 - cmp r5, 0x6 - beq _0802E124 - movs r3, 0 - ldr r2, _0802E0CC - b _0802E168 - .align 2, 0 -_0802E0C8: .4byte gUnknown_203B304 -_0802E0CC: .4byte gUnknown_80E0284 -_0802E0D0: - mov r12, r6 - ldr r0, _0802E118 - mov r8, r0 movs r2, 0 - movs r3, 0x3 -_0802E0DA: - ldr r1, [r4] + ldrsh r3, [r3, r2] + movs r2, 0x58 + muls r2, r3 adds r1, r2 - add r1, r12 - mov r0, r8 - ldm r0!, {r5-r7} - stm r1!, {r5-r7} - ldm r0!, {r5-r7} - stm r1!, {r5-r7} - adds r2, 0x18 - subs r3, 0x1 - cmp r3, 0 - bge _0802E0DA - bl CreateMailboxMenu - ldr r3, _0802E11C - ldr r2, [r3] - movs r0, 0x9E - lsls r0, 1 - adds r2, r0 - ldr r1, _0802E120 - ldm r1!, {r4-r6} - stm r2!, {r4-r6} - ldm r1!, {r4,r5,r7} - stm r2!, {r4,r5,r7} - ldr r1, [r3] - adds r0, r1, r0 - adds r1, 0xBC - bl sub_8012CAC - b _0802E188 - .align 2, 0 -_0802E118: .4byte gUnknown_80E0284 -_0802E11C: .4byte gUnknown_203B304 -_0802E120: .4byte gUnknown_80E029C -_0802E124: - bl CreateMailActionMenu - ldr r2, [r4] - movs r0, 0x9E - lsls r0, 1 - adds r2, r0 - ldr r1, _0802E160 - ldm r1!, {r3,r6,r7} - stm r2!, {r3,r6,r7} - ldm r1!, {r3,r6,r7} - stm r2!, {r3,r6,r7} - ldr r1, [r4] - adds r0, r1, r0 - adds r1, 0xBC - bl sub_8012CAC - ldr r1, [r4] - movs r4, 0xA4 - lsls r4, 1 - adds r0, r1, r4 - strh r5, [r0] - movs r5, 0xAA - lsls r5, 1 - adds r1, r5 - ldr r0, _0802E164 - ldm r0!, {r2,r6,r7} - stm r1!, {r2,r6,r7} - ldm r0!, {r3-r5} - stm r1!, {r3-r5} - b _0802E188 - .align 2, 0 -_0802E160: .4byte gUnknown_80E02B4 -_0802E164: .4byte gUnknown_80E02CC -_0802E168: - ldr r0, [r4] - lsls r1, r3, 1 - adds r1, r3 - lsls r1, 3 - adds r0, r1 - movs r6, 0x86 - lsls r6, 1 - adds r0, r6 - adds r1, r2, 0 - ldm r1!, {r5-r7} - stm r0!, {r5-r7} - ldm r1!, {r5-r7} - stm r0!, {r5-r7} - adds r3, 0x1 - cmp r3, 0x3 - ble _0802E168 -_0802E188: - bl ResetUnusedInputStruct - ldr r0, _0802E1A8 - ldr r0, [r0] - movs r7, 0x86 - lsls r7, 1 - adds r0, r7 - movs r1, 0x1 - movs r2, 0x1 - bl sub_800641C - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0802E1A8: .4byte gUnknown_203B304 - thumb_func_end sub_802E0A0 - - thumb_func_start sub_802E1AC -sub_802E1AC: - push {r4,lr} - sub sp, 0x8 - ldr r1, _0802E1C8 - ldr r0, [r1] - ldr r0, [r0] - adds r4, r1, 0 - cmp r0, 0xB - bhi _0802E2AA - lsls r0, 2 - ldr r1, _0802E1CC - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0802E1C8: .4byte gUnknown_203B304 -_0802E1CC: .4byte _0802E1D0 - .align 2, 0 -_0802E1D0: - .4byte _0802E2AA - .4byte _0802E200 - .4byte _0802E2AA - .4byte _0802E2AA - .4byte _0802E21E - .4byte _0802E22A - .4byte _0802E232 - .4byte _0802E260 - .4byte _0802E286 - .4byte _0802E28E - .4byte _0802E29A - .4byte _0802E2A2 -_0802E200: - ldr r2, [r4] - adds r0, r2, 0 - adds r0, 0x6C - adds r1, r2, 0 - adds r1, 0xBC - adds r3, r2, 0 - adds r3, 0xFC - ldr r2, [r2, 0x64] - str r2, [sp] - movs r2, 0x2 - str r2, [sp, 0x4] - movs r2, 0 - bl sub_8012D60 - b _0802E2AA -_0802E21E: - movs r0, 0 - movs r1, 0 - movs r2, 0x4 - bl sub_802BD14 - b _0802E2AA -_0802E22A: - movs r0, 0x1 - bl sub_802BE94 - b _0802E2AA -_0802E232: - bl CreateMailMenu - movs r0, 0x3 - bl CreateMailAcceptedStatusBox - ldr r0, _0802E25C - ldr r2, [r0] - adds r0, r2, 0 - adds r0, 0x6C - adds r1, r2, 0 - adds r1, 0xBC - ldr r2, [r2, 0x68] - str r2, [sp] - movs r2, 0x2 - str r2, [sp, 0x4] - movs r2, 0 - movs r3, 0 - bl sub_8012D60 - b _0802E2AA - .align 2, 0 -_0802E25C: .4byte gUnknown_203B304 -_0802E260: - ldr r0, [r4] - ldrb r0, [r0, 0x8] - bl sub_8095FE8 - ldr r1, [r4] - adds r1, 0xC - bl sub_803B35C - ldr r0, [r4] - movs r1, 0x3 - str r1, [r0, 0xC] - adds r0, 0x50 - movs r1, 0 - strb r1, [r0] - ldr r0, [r4] - adds r0, 0xC - bl sub_802DE84 - b _0802E2AA -_0802E286: - movs r0, 0 - bl sub_802C860 - b _0802E2AA -_0802E28E: - movs r0, 0 - movs r1, 0 - movs r2, 0x8 - bl sub_802B640 - b _0802E2AA -_0802E29A: - movs r0, 0x1 - bl sub_802B7D0 - b _0802E2AA -_0802E2A2: - ldr r0, [r4] - ldrb r0, [r0, 0x9] - bl sub_802B9FC -_0802E2AA: - add sp, 0x8 - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_802E1AC - - thumb_func_start CreateMailboxMenu -CreateMailboxMenu: - push {r4-r7,lr} - ldr r4, _0802E380 - ldr r0, [r4] - adds r0, 0xFC - movs r1, 0 - movs r2, 0x10 - bl MemoryFill16 - ldr r1, [r4] - adds r2, r1, 0 - adds r2, 0xBC - ldr r0, _0802E384 - str r0, [r2] - adds r1, 0xC0 - movs r0, 0x2 - str r0, [r1] - bl sub_802C0E8 - lsls r0, 24 - cmp r0, 0 - beq _0802E2E6 - ldr r0, [r4] - adds r0, 0xFC - movs r1, 0x1 - strh r1, [r0] -_0802E2E6: - movs r5, 0x1 - ldr r1, [r4] - movs r6, 0x1 - adds r2, r1, 0 - adds r2, 0xC4 - ldr r0, _0802E388 - str r0, [r2] - adds r1, 0xC8 - movs r0, 0x3 - str r0, [r1] - bl sub_802C83C - lsls r0, 24 - cmp r0, 0 - beq _0802E30A - ldr r0, [r4] - adds r0, 0xFE - strh r5, [r0] -_0802E30A: - ldr r1, [r4] - adds r2, r1, 0 - adds r2, 0xCC - ldr r0, _0802E38C - str r0, [r2] - adds r1, 0xD0 - movs r0, 0x4 - str r0, [r1] - bl sub_802B9D8 - lsls r0, 24 - cmp r0, 0 - beq _0802E32E - ldr r0, [r4] - movs r1, 0x80 - lsls r1, 1 - adds r0, r1 - strh r6, [r0] -_0802E32E: - movs r5, 0x3 - ldr r2, [r4] - adds r0, r2, 0 - adds r0, 0xD4 - movs r1, 0 - str r1, [r0] - adds r0, 0x4 - str r6, [r0] - movs r3, 0 - adds r6, r4, 0 - mov r12, r2 - mov r4, r12 - adds r4, 0xFC - adds r2, 0xC0 -_0802E34A: - ldrh r0, [r4] - cmp r0, 0 - bne _0802E35A - ldr r1, [r2] - mov r7, r12 - ldr r0, [r7, 0x64] - cmp r1, r0 - beq _0802E3B2 -_0802E35A: - adds r4, 0x2 - adds r2, 0x8 - adds r3, 0x1 - cmp r3, r5 - blt _0802E34A - movs r3, 0 - cmp r3, r5 - bge _0802E3B2 - ldr r1, [r6] - adds r0, r1, 0 - adds r0, 0xFC - ldrh r0, [r0] - cmp r0, 0 - bne _0802E390 - adds r0, r1, 0 - adds r0, 0xC0 - ldr r0, [r0] - str r0, [r1, 0x64] - b _0802E3B2 - .align 2, 0 -_0802E380: .4byte gUnknown_203B304 -_0802E384: .4byte gMailboxCheckMail -_0802E388: .4byte gMailboxJobList -_0802E38C: .4byte gMailboxPKMNNews -_0802E390: - adds r3, 0x1 - cmp r3, r5 - bge _0802E3B2 + movs r2, 0x58 + bl memcpy +_08028736: ldr r2, [r6] - lsls r0, r3, 1 - adds r1, r2, 0 - adds r1, 0xFC - adds r1, r0 - ldrh r0, [r1] - cmp r0, 0 - bne _0802E390 - lsls r0, r3, 3 - adds r1, r2, 0 - adds r1, 0xC0 - adds r1, r0 - ldr r0, [r1] - str r0, [r2, 0x64] -_0802E3B2: - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end CreateMailboxMenu - - thumb_func_start CreateMailActionMenu -CreateMailActionMenu: - push {r4-r7,lr} - movs r5, 0 - ldr r4, _0802E3F0 - ldr r0, [r4] - ldrb r0, [r0, 0x8] - bl sub_8095FE8 - adds r7, r0, 0 - ldrb r0, [r7] - cmp r0, 0x1 - bne _0802E3FC - ldr r2, [r4] + ldr r0, [r2, 0x40] adds r1, r2, 0 - adds r1, 0xBC - ldr r0, _0802E3F4 - str r0, [r1] - adds r1, 0x4 - movs r0, 0x6 - str r0, [r1] - adds r1, 0x4 - ldr r0, _0802E3F8 - str r0, [r1] - adds r1, 0x4 - movs r0, 0x7 - str r0, [r1] - movs r5, 0x2 - b _0802E44A - .align 2, 0 -_0802E3F0: .4byte gUnknown_203B304 -_0802E3F4: .4byte gMailActionStore -_0802E3F8: .4byte gMailActionRead -_0802E3FC: - ldr r1, [r4] - adds r2, r1, 0 - adds r2, 0xBC - ldr r0, _0802E494 - ldr r0, [r0] - str r0, [r2] - adds r1, 0xC0 - movs r0, 0x5 - str r0, [r1] - adds r0, r7, 0 - bl sub_80968B0 - lsls r0, 24 - cmp r0, 0 - bne _0802E422 - bl sub_80969AC - cmp r0, 0x7 - ble _0802E42C -_0802E422: - ldr r0, [r4] - adds r0, 0xC0 - movs r1, 0x1 - negs r1, r1 - str r1, [r0] -_0802E42C: - adds r5, 0x1 - ldr r4, _0802E498 + adds r1, 0xA8 + adds r2, r5 +_08028740: + bl sub_8037D64 + ldr r1, [r6] + str r0, [r1, 0x44] +_08028748: + ldr r4, _08028768 ldr r2, [r4] - lsls r3, r5, 3 - adds r0, r2, 0 - adds r0, 0xBC - adds r0, r3 - ldr r1, _0802E49C - ldr r1, [r1] - str r1, [r0] - adds r2, 0xC0 - adds r2, r3 - movs r0, 0x8 - str r0, [r2] - adds r5, 0x1 -_0802E44A: - mov r12, r4 - mov r0, r12 - ldr r4, [r0] - lsls r2, r5, 3 - adds r0, r4, 0 - adds r0, 0xBC - adds r0, r2 - movs r1, 0 - str r1, [r0] - adds r1, r4, 0 - adds r1, 0xC0 - adds r2, r1, r2 - movs r0, 0x1 - str r0, [r2] - movs r3, 0 - cmp r3, r5 - bge _0802E486 - movs r6, 0x1 - negs r6, r6 - adds r2, r1, 0 -_0802E472: - ldr r1, [r2] - cmp r1, r6 - beq _0802E47E - ldr r0, [r4, 0x68] - cmp r1, r0 - beq _0802E4A8 -_0802E47E: - adds r2, 0x8 - adds r3, 0x1 - cmp r3, r5 - blt _0802E472 -_0802E486: - ldrb r0, [r7] - cmp r0, 0x1 - bne _0802E4A0 - mov r0, r12 - ldr r1, [r0] - movs r0, 0x7 - b _0802E4A6 - .align 2, 0 -_0802E494: .4byte gUnknown_80D4990 -_0802E498: .4byte gUnknown_203B304 -_0802E49C: .4byte gUnknown_80D4970 -_0802E4A0: - mov r0, r12 - ldr r1, [r0] - movs r0, 0x8 -_0802E4A6: - str r0, [r1, 0x68] -_0802E4A8: - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end CreateMailActionMenu - - thumb_func_start sub_802E4B0 -sub_802E4B0: - push {r4,lr} - sub sp, 0x4 - movs r0, 0 - str r0, [sp] - ldr r4, _0802E4F0 - ldr r0, [r4] - adds r0, 0x6C - bl sub_8012FD8 - lsls r0, 24 - cmp r0, 0 - bne _0802E4DC - ldr r0, [r4] - adds r0, 0x6C - mov r1, sp - bl sub_8013114 - ldr r1, [sp] - cmp r1, 0x1 - beq _0802E4DC - ldr r0, [r4] - str r1, [r0, 0x64] -_0802E4DC: - ldr r0, [sp] - subs r0, 0x1 - cmp r0, 0x7 - bhi _0802E56E - lsls r0, 2 - ldr r1, _0802E4F4 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0802E4F0: .4byte gUnknown_203B304 -_0802E4F4: .4byte _0802E4F8 - .align 2, 0 -_0802E4F8: - .4byte _0802E568 - .4byte _0802E518 - .4byte _0802E52A - .4byte _0802E53C - .4byte _0802E56E - .4byte _0802E56E - .4byte _0802E56E - .4byte _0802E560 -_0802E518: - bl sub_802C0E8 - lsls r0, 24 - cmp r0, 0 - bne _0802E54E - movs r0, 0x4 - bl sub_802E088 - b _0802E56E -_0802E52A: - bl sub_802C83C - lsls r0, 24 - cmp r0, 0 - bne _0802E54E - movs r0, 0x8 - bl sub_802E088 - b _0802E56E -_0802E53C: - bl sub_802B9D8 - lsls r0, 24 - cmp r0, 0 - bne _0802E54E - movs r0, 0x9 - bl sub_802E088 - b _0802E56E -_0802E54E: - ldr r0, _0802E55C - ldr r0, [r0] - adds r0, 0x6C - movs r1, 0x1 - bl sub_8012EA4 - b _0802E56E - .align 2, 0 -_0802E55C: .4byte gUnknown_203B304 -_0802E560: - movs r0, 0x2 - bl sub_802E088 - b _0802E56E -_0802E568: - movs r0, 0x3 - bl sub_802E088 -_0802E56E: - add sp, 0x4 - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_802E4B0 - - thumb_func_start sub_802E578 -sub_802E578: - push {r4,lr} - movs r0, 0x1 - bl sub_802BDEC - cmp r0, 0x4 - bhi _0802E606 - lsls r0, 2 - ldr r1, _0802E590 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0802E590: .4byte _0802E594 - .align 2, 0 -_0802E594: - .4byte _0802E606 - .4byte _0802E606 - .4byte _0802E5FC - .4byte _0802E5A8 - .4byte _0802E5C0 -_0802E5A8: - bl sub_802BE74 - ldr r1, _0802E5BC - ldr r1, [r1] - strb r0, [r1, 0x8] - movs r0, 0x6 - bl sub_802E088 - b _0802E606 - .align 2, 0 -_0802E5BC: .4byte gUnknown_203B304 -_0802E5C0: - bl sub_802BE74 - ldr r4, _0802E5F0 - ldr r1, [r4] - strb r0, [r1, 0x8] - ldr r0, [r4] - ldrb r0, [r0, 0x8] - bl sub_8095FE8 - adds r2, r0, 0 - ldrb r0, [r2] - cmp r0, 0x1 - bne _0802E5F4 - ldr r1, [r4] - ldrb r0, [r2, 0x5] - strb r0, [r1, 0x9] - ldr r1, [r4] - movs r0, 0x5 - str r0, [r1, 0x4] - movs r0, 0xB - bl sub_802E088 - b _0802E606 - .align 2, 0 -_0802E5F0: .4byte gUnknown_203B304 -_0802E5F4: - movs r0, 0x7 - bl sub_802E088 - b _0802E606 -_0802E5FC: - bl sub_802BEDC - movs r0, 0x1 - bl sub_802E088 -_0802E606: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_802E578 - - thumb_func_start sub_802E60C -sub_802E60C: - push {r4,lr} - sub sp, 0x4 - movs r0, 0 - str r0, [sp] - bl sub_802BDEC - ldr r4, _0802E650 - ldr r0, [r4] - adds r0, 0x6C - bl sub_8012FD8 - lsls r0, 24 - cmp r0, 0 - bne _0802E63C - ldr r0, [r4] - adds r0, 0x6C - mov r1, sp - bl sub_8013114 - ldr r1, [sp] - cmp r1, 0x1 - beq _0802E63C - ldr r0, [r4] - str r1, [r0, 0x68] -_0802E63C: - ldr r0, [sp] - subs r0, 0x1 - cmp r0, 0x7 - bhi _0802E732 - lsls r0, 2 - ldr r1, _0802E654 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0802E650: .4byte gUnknown_203B304 -_0802E654: .4byte _0802E658 - .align 2, 0 -_0802E658: - .4byte _0802E72C - .4byte _0802E732 - .4byte _0802E732 - .4byte _0802E732 - .4byte _0802E678 - .4byte _0802E6BC - .4byte _0802E704 - .4byte _0802E6B4 -_0802E678: - ldr r0, _0802E6AC - bl sub_8011988 - ldr r4, _0802E6B0 - ldr r0, [r4] - ldrb r0, [r0, 0x8] - bl sub_8095FE8 - bl sub_8096A78 - bl sub_8096C80 - bl sub_8096D24 - ldr r0, [r4] - ldrb r0, [r0, 0x8] - bl sub_8096040 - bl sub_8096078 - bl sub_802C0E8 - lsls r0, 24 - cmp r0, 0 - bne _0802E6E8 - b _0802E6FC - .align 2, 0 -_0802E6AC: .4byte 0x00000133 -_0802E6B0: .4byte gUnknown_203B304 -_0802E6B4: - movs r0, 0x7 - bl sub_802E088 - b _0802E732 -_0802E6BC: - ldr r0, _0802E6F4 - bl sub_8011988 - ldr r4, _0802E6F8 - ldr r0, [r4] - ldrb r0, [r0, 0x8] - bl sub_8095FE8 - ldrb r0, [r0, 0x5] - bl sub_8096DF8 - ldr r0, [r4] - ldrb r0, [r0, 0x8] - bl sub_8096040 - bl sub_8096078 - bl sub_802C0E8 - lsls r0, 24 + ldr r0, [r2, 0x44] cmp r0, 0 - beq _0802E6FC -_0802E6E8: - bl sub_802BEDC - movs r0, 0x1 - bl sub_802E088 - b _0802E732 - .align 2, 0 -_0802E6F4: .4byte 0x00000133 -_0802E6F8: .4byte gUnknown_203B304 -_0802E6FC: - movs r0, 0x5 - bl sub_802E088 - b _0802E732 -_0802E704: - movs r0, 0 - bl PlayMenuSoundEffect - ldr r4, _0802E728 - ldr r0, [r4] - ldrb r0, [r0, 0x8] - bl sub_8095FE8 - ldr r1, [r4] - ldrb r0, [r0, 0x5] - strb r0, [r1, 0x9] - ldr r1, [r4] - movs r0, 0x5 - str r0, [r1, 0x4] - movs r0, 0xB - bl sub_802E088 - b _0802E732 - .align 2, 0 -_0802E728: .4byte gUnknown_203B304 -_0802E72C: - movs r0, 0x5 - bl sub_802E088 -_0802E732: - add sp, 0x4 - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_802E60C - - thumb_func_start sub_802E73C -sub_802E73C: - push {lr} - bl sub_802DEE0 - cmp r0, 0x1 - bls _0802E754 - cmp r0, 0x3 - bhi _0802E754 - bl sub_802DF24 - movs r0, 0x5 - bl sub_802E088 -_0802E754: - pop {r0} - bx r0 - thumb_func_end sub_802E73C - - thumb_func_start sub_802E758 -sub_802E758: - push {lr} - bl sub_802C898 - cmp r0, 0x1 - bls _0802E770 + bne _0802878A + ldr r0, [r2, 0x40] cmp r0, 0x3 - bhi _0802E770 - bl sub_802C8F4 - movs r0, 0x1 - bl sub_802E088 -_0802E770: - pop {r0} - bx r0 - thumb_func_end sub_802E758 - - thumb_func_start sub_802E774 -sub_802E774: - push {lr} - movs r0, 0x1 - bl sub_802B720 + beq _0802876C cmp r0, 0x4 - bhi _0802E7CA - lsls r0, 2 - ldr r1, _0802E78C - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0802E78C: .4byte _0802E790 - .align 2, 0 -_0802E790: - .4byte _0802E7CA - .4byte _0802E7CA - .4byte _0802E7C0 - .4byte _0802E7A4 - .4byte _0802E7A4 -_0802E7A4: - bl sub_802B7A8 - ldr r2, _0802E7BC - ldr r1, [r2] - strb r0, [r1, 0x9] - ldr r1, [r2] - movs r0, 0xA - str r0, [r1, 0x4] - movs r0, 0xB - bl sub_802E088 - b _0802E7CA - .align 2, 0 -_0802E7BC: .4byte gUnknown_203B304 -_0802E7C0: - bl sub_802B81C - movs r0, 0x1 - bl sub_802E088 -_0802E7CA: - pop {r0} - bx r0 - thumb_func_end sub_802E774 - - thumb_func_start sub_802E7D0 -sub_802E7D0: - push {lr} - bl sub_802BA8C - cmp r0, 0x1 - bls _0802E7EC - cmp r0, 0x3 - bhi _0802E7EC - bl sub_802BACC - ldr r0, _0802E7F0 - ldr r0, [r0] - ldr r0, [r0, 0x4] - bl sub_802E088 -_0802E7EC: - pop {r0} - bx r0 - .align 2, 0 -_0802E7F0: .4byte gUnknown_203B304 - thumb_func_end sub_802E7D0 - - thumb_func_start nullsub_133 -nullsub_133: - bx lr - thumb_func_end nullsub_133 - - thumb_func_start CreateMailAcceptedStatusBox -CreateMailAcceptedStatusBox: - push {r4-r6,lr} - sub sp, 0x8 - adds r4, r0, 0 - bl sub_8008C54 - adds r0, r4, 0 - bl sub_80073B8 - ldr r2, _0802E85C - movs r6, 0 - str r6, [sp] - movs r0, 0x3 - movs r1, 0 - adds r3, r4, 0 - bl xxx_call_draw_string - bl sub_80969AC - adds r2, r0, 0 - movs r5, 0x7 - str r5, [sp] - str r4, [sp, 0x4] - movs r0, 0x12 - movs r1, 0xD - movs r3, 0x2 - bl sub_8012BC4 - ldr r2, _0802E860 - str r6, [sp] - movs r0, 0x16 - movs r1, 0xD - adds r3, r4, 0 - bl xxx_call_draw_string - str r5, [sp] - str r4, [sp, 0x4] - movs r0, 0x23 - movs r1, 0xD - movs r2, 0x8 - movs r3, 0x2 - bl sub_8012BC4 - adds r0, r4, 0 - bl sub_80073E0 - add sp, 0x8 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_0802E85C: .4byte gMailAccepted -_0802E860: .4byte gUnknown_80E0324 - thumb_func_end CreateMailAcceptedStatusBox - - thumb_func_start sub_802E864 -sub_802E864: - push {r4,lr} - ldr r4, _0802E88C - movs r0, 0xB6 - lsls r0, 1 - movs r1, 0x8 - bl MemoryAlloc - str r0, [r4] - movs r1, 0 - str r1, [r0, 0x64] - str r1, [r0, 0x68] - str r1, [r0, 0x4] - movs r0, 0 - bl sub_802E934 - movs r0, 0x1 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_0802E88C: .4byte gUnknown_203B308 - thumb_func_end sub_802E864 - - thumb_func_start sub_802E890 -sub_802E890: - push {lr} - ldr r0, _0802E8A8 - ldr r0, [r0] - ldr r0, [r0] - cmp r0, 0x8 - bhi _0802E900 - lsls r0, 2 - ldr r1, _0802E8AC - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0802E8A8: .4byte gUnknown_203B308 -_0802E8AC: .4byte _0802E8B0 - .align 2, 0 -_0802E8B0: - .4byte _0802E8D4 - .4byte _0802E8DC - .4byte _0802E8E2 - .4byte _0802E900 - .4byte _0802E8E8 - .4byte _0802E8E8 - .4byte _0802E8EE - .4byte _0802E8F4 - .4byte _0802E8FA -_0802E8D4: - movs r0, 0x1 - bl sub_802E934 - b _0802E904 -_0802E8DC: - bl sub_802ECB4 - b _0802E904 -_0802E8E2: - bl nullsub_134 - b _0802E904 -_0802E8E8: - bl sub_802ED4C - b _0802E904 -_0802E8EE: - bl sub_802EDBC - b _0802E904 -_0802E8F4: - bl sub_802EEA0 - b _0802E904 -_0802E8FA: - bl sub_802EEBC - b _0802E904 -_0802E900: - movs r0, 0x3 - b _0802E906 -_0802E904: - movs r0, 0 -_0802E906: - pop {r1} - bx r1 - thumb_func_end sub_802E890 - - thumb_func_start sub_802E90C -sub_802E90C: - ldr r0, _0802E914 - ldr r0, [r0] - ldr r0, [r0, 0x4] - bx lr - .align 2, 0 -_0802E914: .4byte gUnknown_203B308 - thumb_func_end sub_802E90C - - thumb_func_start sub_802E918 -sub_802E918: - push {r4,lr} - ldr r4, _0802E930 - ldr r0, [r4] - cmp r0, 0 - beq _0802E92A - bl MemoryFree - movs r0, 0 - str r0, [r4] -_0802E92A: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0802E930: .4byte gUnknown_203B308 - thumb_func_end sub_802E918 - - thumb_func_start sub_802E934 -sub_802E934: - push {lr} - ldr r1, _0802E948 - ldr r1, [r1] - str r0, [r1] - bl sub_802E94C - bl sub_802EA58 - pop {r0} - bx r0 - .align 2, 0 -_0802E948: .4byte gUnknown_203B308 - thumb_func_end sub_802E934 - - thumb_func_start sub_802E94C -sub_802E94C: - push {r4-r7,lr} - mov r7, r8 - push {r7} - ldr r4, _0802E974 - ldr r0, [r4] - movs r6, 0x86 - lsls r6, 1 - adds r0, r6 - bl sub_8006518 - ldr r0, [r4] - ldr r5, [r0] - cmp r5, 0x1 - beq _0802E97C - cmp r5, 0x6 - beq _0802E9D0 - movs r3, 0 - ldr r2, _0802E978 - b _0802EA14 + beq _08028776 + b _0802878A .align 2, 0 -_0802E974: .4byte gUnknown_203B308 -_0802E978: .4byte gUnknown_80E0330 -_0802E97C: - mov r12, r6 - ldr r0, _0802E9C4 - mov r8, r0 - movs r2, 0 - movs r3, 0x3 -_0802E986: - ldr r1, [r4] - adds r1, r2 - add r1, r12 - mov r0, r8 - ldm r0!, {r5-r7} - stm r1!, {r5-r7} - ldm r0!, {r5-r7} - stm r1!, {r5-r7} - adds r2, 0x18 - subs r3, 0x1 - cmp r3, 0 - bge _0802E986 - bl CreatePelliperBoardMenu - ldr r3, _0802E9C8 - ldr r2, [r3] - movs r0, 0x9E - lsls r0, 1 - adds r2, r0 - ldr r1, _0802E9CC - ldm r1!, {r4-r6} - stm r2!, {r4-r6} - ldm r1!, {r4,r5,r7} - stm r2!, {r4,r5,r7} - ldr r1, [r3] - adds r0, r1, r0 - adds r1, 0xBC - bl sub_8012CAC - b _0802EA34 - .align 2, 0 -_0802E9C4: .4byte gUnknown_80E0330 -_0802E9C8: .4byte gUnknown_203B308 -_0802E9CC: .4byte gUnknown_80E0348 -_0802E9D0: - bl sub_802EC10 - ldr r2, [r4] - movs r0, 0x9E - lsls r0, 1 - adds r2, r0 - ldr r1, _0802EA0C - ldm r1!, {r3,r6,r7} - stm r2!, {r3,r6,r7} - ldm r1!, {r3,r6,r7} - stm r2!, {r3,r6,r7} - ldr r1, [r4] - adds r0, r1, r0 - adds r1, 0xBC - bl sub_8012CAC - ldr r1, [r4] - movs r4, 0xA4 - lsls r4, 1 - adds r0, r1, r4 - strh r5, [r0] - movs r5, 0xAA - lsls r5, 1 - adds r1, r5 - ldr r0, _0802EA10 - ldm r0!, {r2,r6,r7} - stm r1!, {r2,r6,r7} - ldm r0!, {r3-r5} - stm r1!, {r3-r5} - b _0802EA34 - .align 2, 0 -_0802EA0C: .4byte gUnknown_80E0360 -_0802EA10: .4byte gUnknown_80E0378 -_0802EA14: - ldr r0, [r4] - lsls r1, r3, 1 - adds r1, r3 - lsls r1, 3 - adds r0, r1 - movs r6, 0x86 - lsls r6, 1 - adds r0, r6 +_08028760: .4byte 0x00000544 +_08028764: .4byte gUnknown_203B45C +_08028768: .4byte gUnknown_203B2C0 +_0802876C: adds r1, r2, 0 - ldm r1!, {r5-r7} - stm r0!, {r5-r7} - ldm r1!, {r5-r7} - stm r0!, {r5-r7} - adds r3, 0x1 - cmp r3, 0x3 - ble _0802EA14 -_0802EA34: - bl ResetUnusedInputStruct - ldr r0, _0802EA54 - ldr r0, [r0] - movs r7, 0x86 - lsls r7, 1 - adds r0, r7 - movs r1, 0x1 - movs r2, 0x1 - bl sub_800641C - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0802EA54: .4byte gUnknown_203B308 - thumb_func_end sub_802E94C - - thumb_func_start sub_802EA58 -sub_802EA58: - push {r4,lr} - sub sp, 0x8 - ldr r1, _0802EA74 - ldr r0, [r1] - ldr r0, [r0] - adds r4, r1, 0 - cmp r0, 0x8 - bhi _0802EB2C - lsls r0, 2 - ldr r1, _0802EA78 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0802EA74: .4byte gUnknown_203B308 -_0802EA78: .4byte _0802EA7C - .align 2, 0 -_0802EA7C: - .4byte _0802EB2C - .4byte _0802EAA0 - .4byte _0802EB2C - .4byte _0802EB2C - .4byte _0802EABE - .4byte _0802EACA - .4byte _0802EAD2 - .4byte _0802EB00 - .4byte _0802EB26 -_0802EAA0: - ldr r2, [r4] - adds r0, r2, 0 - adds r0, 0x6C - adds r1, r2, 0 - adds r1, 0xBC - adds r3, r2, 0 - adds r3, 0xFC - ldr r2, [r2, 0x64] - str r2, [sp] - movs r2, 0x2 - str r2, [sp, 0x4] - movs r2, 0 - bl sub_8012D60 - b _0802EB2C -_0802EABE: - movs r0, 0 - movs r1, 0 - movs r2, 0x4 - bl sub_802C10C - b _0802EB2C -_0802EACA: - movs r0, 0x1 - bl sub_802C28C - b _0802EB2C -_0802EAD2: - bl sub_802C39C + adds r1, 0x48 + adds r2, 0x78 movs r0, 0x3 - bl CreatePelliperAcceptedStatusBox - ldr r0, _0802EAFC - ldr r2, [r0] - adds r0, r2, 0 - adds r0, 0x6C + b _08028782 +_08028776: adds r1, r2, 0 - adds r1, 0xBC - ldr r2, [r2, 0x68] - str r2, [sp] - movs r2, 0x2 - str r2, [sp, 0x4] - movs r2, 0 - movs r3, 0 - bl sub_8012D60 - b _0802EB2C - .align 2, 0 -_0802EAFC: .4byte gUnknown_203B308 -_0802EB00: - ldr r0, [r4] - ldrb r0, [r0, 0x8] - bl sub_8096574 - ldr r1, [r4] - adds r1, 0xC - bl sub_803B35C - ldr r0, [r4] - movs r1, 0x3 - str r1, [r0, 0xC] - adds r0, 0x50 - movs r1, 0 - strb r1, [r0] - ldr r0, [r4] - adds r0, 0xC - bl sub_802DE84 - b _0802EB2C -_0802EB26: - movs r0, 0 - bl sub_802C860 -_0802EB2C: - add sp, 0x8 - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_802EA58 - - thumb_func_start CreatePelliperBoardMenu -CreatePelliperBoardMenu: - push {r4-r7,lr} - ldr r4, _0802EBDC - ldr r0, [r4] - adds r0, 0xFC - movs r1, 0 - movs r2, 0x10 - bl MemoryFill16 - ldr r1, [r4] - adds r2, r1, 0 - adds r2, 0xBC - ldr r0, _0802EBE0 - str r0, [r2] - adds r1, 0xC0 - movs r0, 0x2 - str r0, [r1] - bl sub_802C4A4 - lsls r0, 24 - cmp r0, 0 - beq _0802EB66 - ldr r0, [r4] - adds r0, 0xFC - movs r1, 0x1 - strh r1, [r0] -_0802EB66: - movs r5, 0x1 + adds r1, 0xA8 + movs r3, 0x98 + lsls r3, 1 + adds r2, r3 + movs r0, 0x4 +_08028782: + bl sub_80381F4 ldr r1, [r4] - adds r2, r1, 0 - adds r2, 0xC4 - ldr r0, _0802EBE4 - str r0, [r2] - adds r1, 0xC8 - movs r0, 0x3 - str r0, [r1] - bl sub_802C83C - lsls r0, 24 - cmp r0, 0 - beq _0802EB88 - ldr r0, [r4] - adds r0, 0xFE - strh r5, [r0] -_0802EB88: - movs r5, 0x2 - ldr r2, [r4] - adds r1, r2, 0 - adds r1, 0xCC - movs r0, 0 - str r0, [r1] - adds r1, 0x4 - movs r0, 0x1 - str r0, [r1] - movs r3, 0 - adds r6, r4, 0 - mov r12, r2 - mov r4, r12 - adds r4, 0xFC - adds r2, 0xC0 -_0802EBA6: - ldrh r0, [r4] - cmp r0, 0 - bne _0802EBB6 - ldr r1, [r2] - mov r7, r12 - ldr r0, [r7, 0x64] - cmp r1, r0 - beq _0802EC0A -_0802EBB6: - adds r4, 0x2 - adds r2, 0x8 - adds r3, 0x1 - cmp r3, r5 - blt _0802EBA6 - movs r3, 0 - cmp r3, r5 - bge _0802EC0A - ldr r1, [r6] - adds r0, r1, 0 - adds r0, 0xFC - ldrh r0, [r0] - cmp r0, 0 - bne _0802EBE8 - adds r0, r1, 0 - adds r0, 0xC0 + str r0, [r1, 0x44] +_0802878A: + bl xxx_call_start_bg_music + b _08028AF2 +_08028790: + ldr r0, [r6] + ldr r4, _080287A8 + adds r0, r4 ldr r0, [r0] - str r0, [r1, 0x64] - b _0802EC0A + cmp r0, 0xE + bne _0802879E + b _08028AF2 +_0802879E: + cmp r0, 0xE + bhi _080287AC + cmp r0, 0xD + beq _080287B2 + b _08028AF2 .align 2, 0 -_0802EBDC: .4byte gUnknown_203B308 -_0802EBE0: .4byte gPelliperBoard_BulletinBoard -_0802EBE4: .4byte gPelliperBoard_JobList -_0802EBE8: - adds r3, 0x1 - cmp r3, r5 - bge _0802EC0A +_080287A8: .4byte 0x00000534 +_080287AC: + cmp r0, 0x10 + bls _080287B2 + b _08028AF2 +_080287B2: + ldr r0, _080287C0 ldr r2, [r6] - lsls r0, r3, 1 - adds r1, r2, 0 - adds r1, 0xFC - adds r1, r0 - ldrh r0, [r1] - cmp r0, 0 - bne _0802EBE8 - lsls r0, r3, 3 - adds r1, r2, 0 - adds r1, 0xC0 - adds r1, r0 - ldr r0, [r1] - str r0, [r2, 0x64] -_0802EC0A: - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end CreatePelliperBoardMenu - - thumb_func_start sub_802EC10 -sub_802EC10: - push {r4-r7,lr} - movs r6, 0 - ldr r4, _0802ECA8 - ldr r2, [r4] - adds r1, r2, 0 - adds r1, 0xBC - ldr r0, _0802ECAC - ldr r0, [r0] - str r0, [r1] - adds r1, 0x4 - movs r0, 0x4 - str r0, [r1] - ldrb r0, [r2, 0x8] - bl sub_8096574 - bl sub_80968B0 - lsls r0, 24 - cmp r0, 0 - bne _0802EC40 - bl sub_80969AC - cmp r0, 0x7 - ble _0802EC4A -_0802EC40: - ldr r0, [r4] - adds r0, 0xC0 - movs r1, 0x1 - negs r1, r1 - str r1, [r0] -_0802EC4A: - adds r6, 0x1 - ldr r4, _0802ECA8 - ldr r5, [r4] - lsls r1, r6, 3 - adds r2, r5, 0 - adds r2, 0xBC - adds r3, r2, r1 - ldr r0, _0802ECB0 - ldr r0, [r0] - str r0, [r3] - adds r3, r5, 0 - adds r3, 0xC0 - adds r1, r3, r1 - movs r0, 0x5 - str r0, [r1] - adds r6, 0x1 - lsls r1, r6, 3 + movs r1, 0x84 + lsls r1, 3 adds r2, r1 - movs r0, 0 - str r0, [r2] - adds r1, r3, r1 - movs r0, 0x1 - str r0, [r1] - movs r2, 0 - adds r7, r4, 0 - cmp r2, r6 - bge _0802EC9C - adds r4, r5, 0 - movs r5, 0x1 - negs r5, r5 - adds r1, r3, 0 -_0802EC88: - ldr r3, [r1] - cmp r3, r5 - beq _0802EC94 - ldr r0, [r4, 0x68] - cmp r3, r0 - beq _0802ECA2 -_0802EC94: - adds r1, 0x8 - adds r2, 0x1 - cmp r2, r6 - blt _0802EC88 -_0802EC9C: - ldr r1, [r7] - movs r0, 0x5 - str r0, [r1, 0x68] -_0802ECA2: - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0802ECA8: .4byte gUnknown_203B308 -_0802ECAC: .4byte gUnknown_80D4990 -_0802ECB0: .4byte gUnknown_80D4970 - thumb_func_end sub_802EC10 - - thumb_func_start sub_802ECB4 -sub_802ECB4: - push {r4,lr} - sub sp, 0x4 - movs r0, 0 - str r0, [sp] - ldr r4, _0802ECF0 - ldr r0, [r4] - adds r0, 0x6C - bl sub_8012FD8 - lsls r0, 24 - cmp r0, 0 - bne _0802ECE0 - ldr r0, [r4] - adds r0, 0x6C - mov r1, sp - bl sub_8013114 - ldr r1, [sp] - cmp r1, 0x1 - beq _0802ECE0 - ldr r0, [r4] - str r1, [r0, 0x64] -_0802ECE0: - ldr r0, [sp] - cmp r0, 0x2 - beq _0802ECFE - cmp r0, 0x2 - bgt _0802ECF4 - cmp r0, 0x1 - beq _0802ED3C - b _0802ED42 - .align 2, 0 -_0802ECF0: .4byte gUnknown_203B308 -_0802ECF4: - cmp r0, 0x3 - beq _0802ED10 - cmp r0, 0x5 - beq _0802ED34 - b _0802ED42 -_0802ECFE: - bl sub_802C4A4 - lsls r0, 24 - cmp r0, 0 - bne _0802ED22 - movs r0, 0x4 - bl sub_802E934 - b _0802ED42 -_0802ED10: - bl sub_802C83C - lsls r0, 24 - cmp r0, 0 - bne _0802ED22 - movs r0, 0x8 - bl sub_802E934 - b _0802ED42 -_0802ED22: - ldr r0, _0802ED30 - ldr r0, [r0] - adds r0, 0x6C - movs r1, 0x1 - bl sub_8012EA4 - b _0802ED42 - .align 2, 0 -_0802ED30: .4byte gUnknown_203B308 -_0802ED34: - movs r0, 0x2 - bl sub_802E934 - b _0802ED42 -_0802ED3C: - movs r0, 0x3 - bl sub_802E934 -_0802ED42: - add sp, 0x4 - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_802ECB4 - - thumb_func_start sub_802ED4C -sub_802ED4C: - push {lr} - movs r0, 0x1 - bl sub_802C1E4 - cmp r0, 0x4 - bhi _0802EDB6 - lsls r0, 2 - ldr r1, _0802ED64 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0802ED64: .4byte _0802ED68 - .align 2, 0 -_0802ED68: - .4byte _0802EDB6 - .4byte _0802EDB6 - .4byte _0802EDAC - .4byte _0802ED7C - .4byte _0802ED94 -_0802ED7C: - bl sub_802C26C - ldr r1, _0802ED90 - ldr r1, [r1] - strb r0, [r1, 0x8] - movs r0, 0x6 - bl sub_802E934 - b _0802EDB6 + b _08028A72 .align 2, 0 -_0802ED90: .4byte gUnknown_203B308 -_0802ED94: - bl sub_802C26C - ldr r1, _0802EDA8 - ldr r1, [r1] - strb r0, [r1, 0x8] - movs r0, 0x7 - bl sub_802E934 - b _0802EDB6 - .align 2, 0 -_0802EDA8: .4byte gUnknown_203B308 -_0802EDAC: - bl sub_802C2D4 - movs r0, 0x1 - bl sub_802E934 -_0802EDB6: - pop {r0} - bx r0 - thumb_func_end sub_802ED4C - - thumb_func_start sub_802EDBC -sub_802EDBC: - push {r4,lr} - sub sp, 0x4 - movs r0, 0 - str r0, [sp] - bl sub_802C1E4 - ldr r4, _0802EDFC - ldr r0, [r4] - adds r0, 0x6C - bl sub_8012FD8 - lsls r0, 24 - cmp r0, 0 - bne _0802EDEC - ldr r0, [r4] - adds r0, 0x6C - mov r1, sp - bl sub_8013114 - ldr r1, [sp] - cmp r1, 0x1 - beq _0802EDEC - ldr r0, [r4] - str r1, [r0, 0x68] -_0802EDEC: - ldr r0, [sp] - cmp r0, 0x4 - beq _0802EE06 - cmp r0, 0x4 - bgt _0802EE00 - cmp r0, 0x1 - beq _0802EE90 - b _0802EE96 - .align 2, 0 -_0802EDFC: .4byte gUnknown_203B308 -_0802EE00: - cmp r0, 0x5 - beq _0802EE88 - b _0802EE96 -_0802EE06: - ldr r0, _0802EE28 - bl sub_8011988 - ldr r4, _0802EE2C - ldr r0, [r4] - ldrb r0, [r0, 0x8] - bl sub_8096574 - ldrb r1, [r0] - cmp r1, 0x3 - beq _0802EE3C - cmp r1, 0x3 - bgt _0802EE30 - cmp r1, 0x2 - beq _0802EE36 - b _0802EE5E - .align 2, 0 -_0802EE28: .4byte 0x00000133 -_0802EE2C: .4byte gUnknown_203B308 -_0802EE30: - cmp r1, 0x4 - beq _0802EE42 - b _0802EE5E -_0802EE36: - ldr r0, [r4] - movs r1, 0x1 - b _0802EE46 -_0802EE3C: - ldr r0, [r4] - movs r1, 0x2 - b _0802EE46 -_0802EE42: - ldr r0, [r4] - movs r1, 0x3 -_0802EE46: - str r1, [r0, 0x4] - ldrb r0, [r0, 0x8] - bl sub_80965B8 - bl sub_80965F4 - bl sub_802C2D4 - movs r0, 0x3 - bl sub_802E934 - b _0802EE96 -_0802EE5E: - bl sub_8096A78 - bl sub_8096C80 - bl sub_8096D24 - bl sub_802C4A4 - lsls r0, 24 - cmp r0, 0 - beq _0802EE80 - bl sub_802C2D4 - movs r0, 0x1 - bl sub_802E934 - b _0802EE96 -_0802EE80: - movs r0, 0x5 - bl sub_802E934 - b _0802EE96 -_0802EE88: - movs r0, 0x7 - bl sub_802E934 - b _0802EE96 -_0802EE90: - movs r0, 0x5 - bl sub_802E934 -_0802EE96: - add sp, 0x4 - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_802EDBC - - thumb_func_start sub_802EEA0 -sub_802EEA0: - push {lr} - bl sub_802DEE0 - cmp r0, 0x1 - bls _0802EEB8 - cmp r0, 0x3 - bhi _0802EEB8 - bl sub_802DF24 - movs r0, 0x5 - bl sub_802E934 -_0802EEB8: - pop {r0} - bx r0 - thumb_func_end sub_802EEA0 - - thumb_func_start sub_802EEBC -sub_802EEBC: - push {lr} - bl sub_802C898 - cmp r0, 0x1 - bls _0802EED4 - cmp r0, 0x3 - bhi _0802EED4 - bl sub_802C8F4 - movs r0, 0x1 - bl sub_802E934 -_0802EED4: - pop {r0} - bx r0 - thumb_func_end sub_802EEBC - - thumb_func_start nullsub_134 -nullsub_134: - bx lr - thumb_func_end nullsub_134 - - thumb_func_start CreatePelliperAccepedStatusBox -CreatePelliperAcceptedStatusBox: - push {r4-r6,lr} - sub sp, 0x8 - adds r4, r0, 0 - bl sub_8008C54 - adds r0, r4, 0 - bl sub_80073B8 - ldr r2, _0802EF40 - movs r6, 0 - str r6, [sp] - movs r0, 0x3 - movs r1, 0 - adds r3, r4, 0 - bl xxx_call_draw_string - bl sub_80969AC - adds r2, r0, 0 - movs r5, 0x7 - str r5, [sp] - str r4, [sp, 0x4] - movs r0, 0x12 - movs r1, 0xD - movs r3, 0x2 - bl sub_8012BC4 - ldr r2, _0802EF44 - str r6, [sp] - movs r0, 0x16 - movs r1, 0xD - adds r3, r4, 0 - bl xxx_call_draw_string - str r5, [sp] - str r4, [sp, 0x4] - movs r0, 0x23 - movs r1, 0xD - movs r2, 0x8 - movs r3, 0x2 - bl sub_8012BC4 - adds r0, r4, 0 - bl sub_80073E0 - add sp, 0x8 - pop {r4-r6} - pop {r0} - bx r0 +_080287C0: .4byte gUnknown_80DE06C +_080287C4: + ldr r0, _080287D0 + ldr r2, [r6] + movs r3, 0x84 + lsls r3, 3 + adds r2, r3 + b _08028A72 .align 2, 0 -_0802EF40: .4byte gUnknown_80E03AC -_0802EF44: .4byte gUnknown_80E03B8 - thumb_func_end CreatePelliperAcceptedStatusBox - - thumb_func_start sub_802EF48 -sub_802EF48: - push {r4,lr} - ldr r4, _0802EF68 - movs r0, 0xA8 - lsls r0, 1 - movs r1, 0x8 - bl MemoryAlloc - str r0, [r4] - movs r0, 0 - bl sub_802EFEC - movs r0, 0x1 - pop {r4} - pop {r1} - bx r1 +_080287D0: .4byte gUnknown_80DE0C0 +_080287D4: + ldr r0, _080287D8 + b _08028A6A .align 2, 0 -_0802EF68: .4byte gUnknown_203B30C - thumb_func_end sub_802EF48 - - thumb_func_start sub_802EF6C -sub_802EF6C: - push {lr} - ldr r0, _0802EF84 - ldr r0, [r0] - ldr r0, [r0] - cmp r0, 0x5 - bhi _0802EFBA - lsls r0, 2 - ldr r1, _0802EF88 +_080287D8: .4byte gUnknown_80DE124 +_080287DC: + ldr r0, [r6] + movs r1, 0xEF + lsls r1, 2 adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0802EF84: .4byte gUnknown_203B30C -_0802EF88: .4byte _0802EF8C - .align 2, 0 -_0802EF8C: - .4byte _0802EFA4 - .4byte _0802EFA4 - .4byte _0802EFAA - .4byte _0802EFB0 - .4byte _0802EFB6 - .4byte _0802EFBA -_0802EFA4: - bl sub_802F148 - b _0802EFBE -_0802EFAA: - bl sub_802F184 - b _0802EFBE -_0802EFB0: - bl sub_802F1E8 - b _0802EFBE -_0802EFB6: - movs r0, 0x3 - b _0802EFC0 -_0802EFBA: - movs r0, 0x2 - b _0802EFC0 -_0802EFBE: - movs r0, 0 -_0802EFC0: - pop {r1} - bx r1 - thumb_func_end sub_802EF6C - - thumb_func_start sub_802EFC4 -sub_802EFC4: - ldr r0, _0802EFCC - ldr r0, [r0] - ldrb r0, [r0, 0x4] - bx lr - .align 2, 0 -_0802EFCC: .4byte gUnknown_203B30C - thumb_func_end sub_802EFC4 - - thumb_func_start sub_802EFD0 -sub_802EFD0: - push {r4,lr} - ldr r4, _0802EFE8 - ldr r0, [r4] - cmp r0, 0 - beq _0802EFE2 - bl MemoryFree - movs r0, 0 - str r0, [r4] -_0802EFE2: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0802EFE8: .4byte gUnknown_203B30C - thumb_func_end sub_802EFD0 - - thumb_func_start sub_802EFEC -sub_802EFEC: - push {lr} - ldr r1, _0802F000 - ldr r1, [r1] - str r0, [r1] - bl sub_802F004 - bl sub_802F088 - pop {r0} - bx r0 - .align 2, 0 -_0802F000: .4byte gUnknown_203B30C - thumb_func_end sub_802EFEC - - thumb_func_start sub_802F004 -sub_802F004: - push {r4-r7,lr} - ldr r4, _0802F03C - ldr r0, [r4] - adds r0, 0xF0 bl sub_8006518 - ldr r0, [r4] - ldr r0, [r0] - cmp r0, 0x2 - bne _0802F044 - bl sub_802F108 - ldr r2, [r4] - movs r0, 0x90 - lsls r0, 1 - adds r2, r0 - ldr r1, _0802F040 - ldm r1!, {r3,r5,r6} - stm r2!, {r3,r5,r6} - ldm r1!, {r3,r5,r7} - stm r2!, {r3,r5,r7} - ldr r1, [r4] - adds r0, r1, r0 - adds r1, 0xB0 - bl sub_8012CAC - b _0802F066 - .align 2, 0 -_0802F03C: .4byte gUnknown_203B30C -_0802F040: .4byte gUnknown_80E03F4 -_0802F044: - mov r12, r4 - ldr r4, _0802F080 - movs r2, 0 - movs r3, 0x3 -_0802F04C: - mov r6, r12 - ldr r1, [r6] - adds r1, r2 - adds r1, 0xF0 - adds r0, r4, 0 - ldm r0!, {r5-r7} - stm r1!, {r5-r7} - ldm r0!, {r5-r7} - stm r1!, {r5-r7} - adds r2, 0x18 - subs r3, 0x1 - cmp r3, 0 - bge _0802F04C -_0802F066: bl ResetUnusedInputStruct - ldr r0, _0802F084 - ldr r0, [r0] - adds r0, 0xF0 + movs r0, 0 movs r1, 0x1 movs r2, 0x1 bl sub_800641C - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0802F080: .4byte gUnknown_80E03C4 -_0802F084: .4byte gUnknown_203B30C - thumb_func_end sub_802F004 - - thumb_func_start sub_802F088 -sub_802F088: - push {r4-r6,lr} - sub sp, 0x8 - ldr r6, _0802F0A0 - ldr r0, [r6] - ldr r5, [r0] - cmp r5, 0x1 - beq _0802F0B6 - cmp r5, 0x1 - bgt _0802F0A4 - cmp r5, 0 - beq _0802F0AE - b _0802F100 - .align 2, 0 -_0802F0A0: .4byte gUnknown_203B30C -_0802F0A4: - cmp r5, 0x2 - beq _0802F0BE - cmp r5, 0x3 - beq _0802F0DA - b _0802F100 -_0802F0AE: - movs r0, 0 - bl sub_802CDD4 - b _0802F100 -_0802F0B6: - movs r0, 0x1 - bl sub_802CED8 - b _0802F100 -_0802F0BE: - bl sub_802CFD0 - ldr r1, [r6] - adds r0, r1, 0 - adds r0, 0x60 - adds r1, 0xB0 - movs r2, 0x3 - str r2, [sp] - str r5, [sp, 0x4] - movs r2, 0 - movs r3, 0 - bl sub_8012D60 - b _0802F100 -_0802F0DA: - ldrb r0, [r0, 0x4] - bl sub_803B344 - adds r4, r0, 0 ldr r1, [r6] adds r1, 0x8 - bl sub_803B35C - ldr r0, [r6] - str r5, [r0, 0x8] - adds r0, 0x4C - movs r1, 0 - strb r1, [r0] - ldr r0, [r6] - ldr r1, [r4, 0x18] - str r1, [r0, 0x58] - adds r0, 0x8 - bl sub_802DE84 -_0802F100: - add sp, 0x8 - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end sub_802F088 - - thumb_func_start sub_802F108 -sub_802F108: - ldr r0, _0802F13C - ldr r0, [r0] - mov r12, r0 - movs r3, 0 - mov r1, r12 - adds r1, 0xB0 - ldr r0, _0802F140 - str r0, [r1] - adds r1, 0x4 - movs r0, 0x2 - str r0, [r1] - movs r2, 0x1 - adds r1, 0x4 - ldr r0, _0802F144 - ldr r0, [r0] - str r0, [r1] - adds r1, 0x4 - movs r0, 0x3 - str r0, [r1] - mov r0, r12 - adds r0, 0xC0 - str r3, [r0] - adds r0, 0x4 - str r2, [r0] - bx lr - .align 2, 0 -_0802F13C: .4byte gUnknown_203B30C -_0802F140: .4byte gUnknown_80E040C -_0802F144: .4byte gUnknown_80D4970 - thumb_func_end sub_802F108 - - thumb_func_start sub_802F148 -sub_802F148: - push {lr} - movs r0, 0x1 - bl sub_802CE5C - cmp r0, 0x2 - beq _0802F174 - cmp r0, 0x2 - bcc _0802F17E - cmp r0, 0x3 - bne _0802F17E - bl sub_802CEBC - ldr r1, _0802F170 - ldr r1, [r1] - strb r0, [r1, 0x4] - movs r0, 0x2 - bl sub_802EFEC - b _0802F17E - .align 2, 0 -_0802F170: .4byte gUnknown_203B30C -_0802F174: - bl sub_802CF14 - movs r0, 0x5 - bl sub_802EFEC -_0802F17E: - pop {r0} - bx r0 - thumb_func_end sub_802F148 - - thumb_func_start sub_802F184 -sub_802F184: - push {r4,lr} - sub sp, 0x4 - movs r0, 0 - str r0, [sp] - bl sub_802CE5C - ldr r4, _0802F1BC - ldr r0, [r4] - adds r0, 0x60 - bl sub_8012FD8 - lsls r0, 24 - cmp r0, 0 - bne _0802F1AA - ldr r0, [r4] - adds r0, 0x60 - mov r1, sp - bl sub_8013114 -_0802F1AA: - ldr r0, [sp] - cmp r0, 0x2 - beq _0802F1C6 - cmp r0, 0x2 - bgt _0802F1C0 - cmp r0, 0x1 - beq _0802F1DA - b _0802F1E0 - .align 2, 0 -_0802F1BC: .4byte gUnknown_203B30C -_0802F1C0: - cmp r0, 0x3 - beq _0802F1D2 - b _0802F1E0 -_0802F1C6: - bl sub_802CF14 movs r0, 0x4 - bl sub_802EFEC - b _0802F1E0 -_0802F1D2: - movs r0, 0x3 - bl sub_802EFEC - b _0802F1E0 -_0802F1DA: - movs r0, 0x1 - bl sub_802EFEC -_0802F1E0: - add sp, 0x4 - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_802F184 - - thumb_func_start sub_802F1E8 -sub_802F1E8: - push {lr} - bl sub_802DEE0 - cmp r0, 0x1 - bls _0802F200 - cmp r0, 0x3 - bhi _0802F200 - bl sub_802DF24 - movs r0, 0x1 - bl sub_802EFEC -_0802F200: - pop {r0} - bx r0 - thumb_func_end sub_802F1E8 - - thumb_func_start sub_802F204 -sub_802F204: - push {r4-r6,lr} - adds r6, r0, 0 - lsls r4, r1, 24 - lsrs r4, 24 - bl ResetUnusedInputStruct - movs r0, 0 - movs r1, 0x1 - movs r2, 0x1 - bl sub_800641C - ldr r5, _0802F28C - movs r0, 0x84 - movs r1, 0x8 - bl MemoryAlloc - str r0, [r5] - str r6, [r0, 0x10] - movs r6, 0 - str r6, [r0, 0xC] - strb r4, [r0, 0x8] - ldr r1, [r5] - ldr r0, _0802F290 - ldr r1, [r1, 0x10] - bl strcpy - ldr r4, _0802F294 - bl sub_808D33C - adds r1, r0, 0 - adds r0, r4, 0 - bl sub_808DA34 - ldr r0, [r5] - ldr r0, [r0, 0x10] - movs r1, 0x14 - ldrsh r0, [r0, r1] - bl GetDialogueSpriteDataPtr - ldr r1, [r5] - str r0, [r1, 0x14] - str r6, [r1, 0x18] - adds r1, 0x20 - strb r6, [r1] - ldr r0, [r5] - adds r0, 0x21 - strb r6, [r0] - ldr r0, [r5] - adds r0, 0x22 - strb r6, [r0] - ldr r5, [r5] - movs r0, 0x2 - strh r0, [r5, 0x1C] - movs r0, 0x8 - strh r0, [r5, 0x1E] - ldr r0, [r5, 0x14] - cmp r0, 0 - beq _0802F27C - ldr r0, [r0, 0x4] - str r0, [r5, 0x18] -_0802F27C: - movs r0, 0 - bl sub_802F2E8 - movs r0, 0x1 - pop {r4-r6} - pop {r1} - bx r1 - .align 2, 0 -_0802F28C: .4byte gUnknown_203B310 -_0802F290: .4byte gUnknown_202E5D8 -_0802F294: .4byte gAvailablePokemonNames - thumb_func_end sub_802F204 - - thumb_func_start sub_802F298 -sub_802F298: - push {lr} - ldr r0, _0802F2AC - ldr r0, [r0] - ldr r0, [r0] - cmp r0, 0x5 - beq _0802F2B0 - cmp r0, 0x9 - bne _0802F2B6 - movs r0, 0x3 - b _0802F2BC - .align 2, 0 -_0802F2AC: .4byte gUnknown_203B310 -_0802F2B0: - bl sub_802F6FC - b _0802F2BA -_0802F2B6: - bl sub_802F718 -_0802F2BA: - movs r0, 0 -_0802F2BC: - pop {r1} - bx r1 - thumb_func_end sub_802F298 - - thumb_func_start sub_802F2C0 -sub_802F2C0: - push {r4,lr} - ldr r4, _0802F2E4 - ldr r0, [r4] - cmp r0, 0 - beq _0802F2DE - ldr r0, [r0, 0x14] - cmp r0, 0 - beq _0802F2D4 - bl CloseFile -_0802F2D4: - ldr r0, [r4] - bl MemoryFree - movs r0, 0 - str r0, [r4] -_0802F2DE: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0802F2E4: .4byte gUnknown_203B310 - thumb_func_end sub_802F2C0 - - thumb_func_start sub_802F2E8 -sub_802F2E8: - push {lr} - ldr r1, _0802F2FC - ldr r1, [r1] - str r0, [r1] - bl sub_802F300 - bl HandleMissionReward - pop {r0} - bx r0 - .align 2, 0 -_0802F2FC: .4byte gUnknown_203B310 - thumb_func_end sub_802F2E8 - - thumb_func_start sub_802F300 -sub_802F300: - push {r4-r7,lr} - ldr r4, _0802F350 - ldr r1, [r4] - ldr r0, [r1] - cmp r0, 0 - bne _0802F348 - adds r0, r1, 0 - adds r0, 0x24 - bl sub_8006518 - mov r12, r4 - ldr r4, _0802F354 - movs r3, 0 - movs r2, 0x3 -_0802F31C: - mov r0, r12 - ldr r1, [r0] - adds r1, r3 - adds r1, 0x24 - adds r0, r4, 0 - ldm r0!, {r5-r7} - stm r1!, {r5-r7} - ldm r0!, {r5-r7} - stm r1!, {r5-r7} - adds r3, 0x18 - subs r2, 0x1 + bl sub_80151C0 + b _08028AF2 +_08028802: + ldr r4, [r6] + movs r2, 0xA7 + lsls r2, 3 + adds r0, r4, r2 + ldr r2, [r0] cmp r2, 0 - bge _0802F31C - bl ResetUnusedInputStruct - ldr r0, _0802F350 - ldr r0, [r0] - adds r0, 0x24 - movs r1, 0x1 - movs r2, 0x1 - bl sub_800641C -_0802F348: - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0802F350: .4byte gUnknown_203B310 -_0802F354: .4byte gUnknown_80E041C - thumb_func_end sub_802F300 - - thumb_func_start HandleMissionReward -HandleMissionReward: - push {r4-r6,lr} - sub sp, 0x10 - ldr r1, _0802F374 - ldr r0, [r1] - ldr r0, [r0] - adds r6, r1, 0 - cmp r0, 0x9 - bls _0802F36A - b _0802F6E4 -_0802F36A: - lsls r0, 2 - ldr r1, _0802F378 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0802F374: .4byte gUnknown_203B310 -_0802F378: .4byte _0802F37C - .align 2, 0 -_0802F37C: - .4byte _0802F3A4 - .4byte _0802F3E8 - .4byte _0802F444 - .4byte _0802F494 - .4byte _0802F524 - .4byte _0802F5CC - .4byte _0802F614 - .4byte _0802F630 - .4byte _0802F6A4 - .4byte _0802F6E4 -_0802F3A4: - ldr r2, [r6] - ldr r0, [r2, 0x10] - ldr r1, [r0, 0x18] - cmp r1, 0 - bne _0802F3B6 - movs r0, 0x2 - bl sub_802F2E8 - b _0802F6E4 -_0802F3B6: - ldr r0, _0802F3D4 - str r1, [r0] - ldrb r0, [r2, 0x8] - cmp r0, 0 - beq _0802F3E0 - ldr r0, _0802F3D8 - adds r2, 0x14 - ldr r3, _0802F3DC - movs r1, 0 - bl sub_80141B4 - ldr r1, [r6] - movs r0, 0x1 - str r0, [r1, 0x4] - b _0802F6E4 - .align 2, 0 -_0802F3D4: .4byte gUnknown_202DE30 -_0802F3D8: .4byte gUnknown_80E0434 -_0802F3DC: .4byte 0x0000010d -_0802F3E0: - movs r0, 0x1 - bl sub_802F2E8 - b _0802F6E4 -_0802F3E8: - movs r0, 0xCB - bl sub_8011988 - ldr r0, _0802F414 - ldr r0, [r0] - ldr r0, [r0, 0x10] - ldr r0, [r0, 0x18] - bl sub_80913A0 - movs r0, 0 - bl sub_808D544 - cmp r0, 0x1 - bgt _0802F420 - ldr r0, _0802F418 - ldr r3, _0802F41C - movs r1, 0 - movs r2, 0 - bl sub_80141B4 - b _0802F42C - .align 2, 0 -_0802F414: .4byte gUnknown_203B310 -_0802F418: .4byte gUnknown_80E045C -_0802F41C: .4byte 0x00000101 -_0802F420: - ldr r0, _0802F438 - ldr r3, _0802F43C + beq _08028816 + cmp r2, 0x2 + beq _08028824 + b _08028AF2 +_08028816: + ldr r0, _0802881C + ldr r3, _08028820 + b _0802882A + .align 2, 0 +_0802881C: .4byte gUnknown_80DE178 +_08028820: .4byte gUnknown_80DDB24 +_08028824: + ldr r0, _08028848 + ldr r3, _0802884C + movs r2, 0 +_0802882A: + str r2, [sp] + movs r1, 0x4 + str r1, [sp, 0x4] + str r2, [sp, 0x8] + movs r2, 0x84 + lsls r2, 3 + adds r1, r4, r2 + str r1, [sp, 0xC] + movs r1, 0xC + str r1, [sp, 0x10] movs r1, 0 - movs r2, 0 - bl sub_80141B4 -_0802F42C: - ldr r0, _0802F440 - ldr r1, [r0] - movs r0, 0x2 - str r0, [r1, 0x4] - b _0802F6E4 + movs r2, 0xD + bl sub_8014248 + b _08028AF2 .align 2, 0 -_0802F438: .4byte gUnknown_80E0484 -_0802F43C: .4byte 0x00000101 -_0802F440: .4byte gUnknown_203B310 -_0802F444: - ldr r0, [r6] - ldr r0, [r0, 0x10] - adds r1, r0, 0 - adds r1, 0x20 - ldrb r0, [r1] - cmp r0, 0 - bne _0802F45A - movs r0, 0x4 - bl sub_802F2E8 - b _0802F6E4 -_0802F45A: - ldr r0, _0802F480 - ldrb r1, [r1] - movs r2, 0 - bl sub_8092578 +_08028848: .4byte gUnknown_80DE1B4 +_0802884C: .4byte gUnknown_80DDB24 +_08028850: + ldr r0, _0802885C ldr r2, [r6] - ldrb r0, [r2, 0x8] - cmp r0, 0 - beq _0802F48C - ldr r0, _0802F484 - adds r2, 0x14 - ldr r3, _0802F488 - movs r1, 0 - bl sub_80141B4 - ldr r1, [r6] - movs r0, 0x3 - str r0, [r1, 0x4] - b _0802F6E4 - .align 2, 0 -_0802F480: .4byte gUnknown_202E628 -_0802F484: .4byte gUnknown_80E04B4 -_0802F488: .4byte 0x0000010d -_0802F48C: - movs r0, 0x3 - bl sub_802F2E8 - b _0802F6E4 -_0802F494: - ldr r4, _0802F4B4 - ldr r0, [r4] - ldr r0, [r0, 0x10] - adds r0, 0x20 - ldrb r0, [r0] - bl GetFriendAreaStatus - lsls r0, 24 - cmp r0, 0 - beq _0802F4BC - movs r0, 0xFA - lsls r0, 2 - bl sub_80913A0 - ldr r0, _0802F4B8 - b _0802F4DA - .align 2, 0 -_0802F4B4: .4byte gUnknown_203B310 -_0802F4B8: .4byte gUnknown_80E04F4 -_0802F4BC: - movs r0, 0 - bl sub_808D544 - cmp r0, 0x1 - bgt _0802F4F0 - ldr r0, [r4] - ldr r0, [r0, 0x10] - adds r0, 0x20 - ldrb r0, [r0] - bl UnlockFriendArea - movs r0, 0xCE - bl sub_8011988 - ldr r0, _0802F4E8 -_0802F4DA: - ldr r3, _0802F4EC - movs r1, 0 - movs r2, 0 - bl sub_80141B4 - b _0802F50E - .align 2, 0 -_0802F4E8: .4byte gUnknown_80E05C0 -_0802F4EC: .4byte 0x00000101 -_0802F4F0: - ldr r0, [r4] - ldr r0, [r0, 0x10] - adds r0, 0x20 - ldrb r0, [r0] - bl UnlockFriendArea - movs r0, 0xCE - bl sub_8011988 - ldr r0, _0802F518 - ldr r3, _0802F51C - movs r1, 0 - movs r2, 0 - bl sub_80141B4 -_0802F50E: - ldr r0, _0802F520 - ldr r1, [r0] - movs r0, 0x4 - str r0, [r1, 0x4] - b _0802F6E4 - .align 2, 0 -_0802F518: .4byte gUnknown_80E05FC -_0802F51C: .4byte 0x00000101 -_0802F520: .4byte gUnknown_203B310 -_0802F524: - ldr r0, [r6] - ldr r0, [r0, 0x10] - ldrb r2, [r0, 0x1C] - cmp r2, 0 - beq _0802F628 - ldr r0, [r0, 0x18] - cmp r0, 0 - bne _0802F620 - lsls r2, 16 - ldr r1, _0802F564 - ldr r0, [sp, 0xC] - ands r0, r1 - orrs r0, r2 - str r0, [sp, 0xC] - lsrs r0, 16 - lsls r0, 24 - lsrs r0, 24 - bl sub_8090A60 - lsls r0, 24 - cmp r0, 0 - beq _0802F56C - ldr r0, [r6] - ldr r0, [r0, 0x10] - ldrb r1, [r0, 0x1F] - lsls r1, 8 - ldr r2, _0802F568 - ldr r0, [sp, 0xC] - ands r0, r2 - orrs r0, r1 - b _0802F572 - .align 2, 0 -_0802F564: .4byte 0xff00ffff -_0802F568: .4byte 0xffff00ff -_0802F56C: - ldr r1, _0802F5B4 - ldr r0, [sp, 0xC] - ands r0, r1 -_0802F572: - str r0, [sp, 0xC] - ldr r1, _0802F5B8 - ldr r0, [sp, 0xC] - ands r0, r1 - movs r2, 0x1 - orrs r0, r2 - str r0, [sp, 0xC] - movs r1, 0 - str r1, [sp] - mov r0, sp - strb r1, [r0, 0x4] - strb r2, [r0, 0x8] - ldr r0, _0802F5BC - add r1, sp, 0xC - mov r2, sp - bl sub_8090E14 - ldr r4, _0802F5C0 - ldr r2, [r4] - ldrb r0, [r2, 0x8] - cmp r0, 0 - beq _0802F620 - ldr r0, _0802F5C4 - adds r2, 0x14 - ldr r3, _0802F5C8 - movs r1, 0 - bl sub_80141B4 - ldr r1, [r4] - movs r0, 0x5 - str r0, [r1, 0x4] - b _0802F6E4 - .align 2, 0 -_0802F5B4: .4byte 0xffff00ff -_0802F5B8: .4byte 0xffffff00 -_0802F5BC: .4byte gUnknown_202DEA8 -_0802F5C0: .4byte gUnknown_203B310 -_0802F5C4: .4byte gUnknown_80E0640 -_0802F5C8: .4byte 0x0000010d -_0802F5CC: - ldr r0, [r6] - ldr r2, [r0, 0x10] - adds r1, r2, 0 - adds r1, 0x1C - ldr r3, [r0, 0xC] - adds r1, r3 - ldrb r0, [r1] - cmp r0, 0 - bne _0802F5E6 - movs r0, 0x6 - bl sub_802F2E8 - b _0802F6E4 -_0802F5E6: - cmp r3, 0 - bne _0802F5FC - ldr r0, [r2, 0x18] - cmp r0, 0 - bne _0802F5FC - ldrb r1, [r2, 0x1C] - ldrb r2, [r2, 0x1F] - movs r0, 0 - bl sub_801B60C - b _0802F6E4 -_0802F5FC: - ldr r1, [r6] - ldr r2, [r1, 0x10] - adds r0, r2, 0 - adds r0, 0x1C - ldr r1, [r1, 0xC] - adds r0, r1 - ldrb r1, [r0] - ldrb r2, [r2, 0x1F] - movs r0, 0x1 - bl sub_801B60C - b _0802F6E4 -_0802F614: - ldr r1, [r6] - ldr r0, [r1, 0xC] - adds r0, 0x1 - str r0, [r1, 0xC] - cmp r0, 0x2 - bgt _0802F628 -_0802F620: - movs r0, 0x5 - bl sub_802F2E8 - b _0802F6E4 -_0802F628: - movs r0, 0x7 - bl sub_802F2E8 - b _0802F6E4 -_0802F630: - adds r5, r6, 0 - ldr r0, [r5] - ldr r0, [r0, 0x10] - ldr r0, [r0, 0x24] - cmp r0, 0 - bne _0802F644 - movs r0, 0x9 - bl sub_802F2E8 - b _0802F6E4 -_0802F644: - bl GetRescueTeamRank - ldr r1, [r5] - strb r0, [r1, 0x9] - ldr r0, [r5] - ldr r0, [r0, 0x10] - ldr r0, [r0, 0x24] - bl AddToTeamRankPts - movs r0, 0xCB - bl sub_8011988 - ldr r4, [r5] - bl GetRescueTeamRank - ldrb r1, [r4, 0x9] - lsls r0, 24 - lsrs r0, 24 - cmp r1, r0 - beq _0802F672 - ldr r1, [r5] - movs r0, 0x8 - b _0802F676 -_0802F672: - ldr r1, [r6] - movs r0, 0x9 -_0802F676: - str r0, [r1, 0x4] - ldr r1, _0802F694 - ldr r0, _0802F698 - ldr r0, [r0] - ldr r0, [r0, 0x10] - ldr r0, [r0, 0x24] - str r0, [r1] - ldr r0, _0802F69C - ldr r3, _0802F6A0 - movs r1, 0 - movs r2, 0 - bl sub_80141B4 - b _0802F6E4 - .align 2, 0 -_0802F694: .4byte gUnknown_202DE30 -_0802F698: .4byte gUnknown_203B310 -_0802F69C: .4byte gUnknown_80E0670 -_0802F6A0: .4byte 0x00000101 -_0802F6A4: - movs r0, 0xC9 - bl sub_8011988 - ldr r0, _0802F6EC - ldr r1, [r0] - movs r0, 0x9 - str r0, [r1, 0x4] - ldrb r0, [r1, 0x9] - bl GetTeamRankString - adds r1, r0, 0 - ldr r4, _0802F6F0 - adds r0, r4, 0 - bl strcpy - bl GetRescueTeamRank - lsls r0, 24 - lsrs r0, 24 - bl GetTeamRankString - adds r1, r0, 0 - adds r4, 0x50 - adds r0, r4, 0 - bl strcpy - ldr r0, _0802F6F4 - ldr r3, _0802F6F8 - movs r1, 0 - movs r2, 0 - bl sub_80141B4 -_0802F6E4: - add sp, 0x10 - pop {r4-r6} - pop {r0} - bx r0 + movs r3, 0x84 + lsls r3, 3 + adds r2, r3 + b _08028A72 .align 2, 0 -_0802F6EC: .4byte gUnknown_203B310 -_0802F6F0: .4byte gUnknown_202E038 -_0802F6F4: .4byte gUnknown_80E06A8 -_0802F6F8: .4byte 0x00000101 - thumb_func_end HandleMissionReward - - thumb_func_start sub_802F6FC -sub_802F6FC: - push {lr} - bl sub_801B6AC - cmp r0, 0x1 - bls _0802F714 - cmp r0, 0x3 - bhi _0802F714 - bl sub_801B72C - movs r0, 0x6 - bl sub_802F2E8 -_0802F714: - pop {r0} - bx r0 - thumb_func_end sub_802F6FC - - thumb_func_start sub_802F718 -sub_802F718: - push {lr} - sub sp, 0x4 - mov r0, sp - bl sub_80144A4 - cmp r0, 0 - bne _0802F730 - ldr r0, _0802F738 - ldr r0, [r0] - ldr r0, [r0, 0x4] - bl sub_802F2E8 -_0802F730: - add sp, 0x4 - pop {r0} - bx r0 +_0802885C: .4byte gUnknown_80DE1E4 +_08028860: + ldr r0, _08028864 + b _08028A6A .align 2, 0 -_0802F738: .4byte gUnknown_203B310 - thumb_func_end sub_802F718 - - thumb_func_start sub_802F73C -sub_802F73C: - push {r4-r7,lr} - mov r7, r8 - push {r7} - adds r5, r0, 0 - adds r7, r1, 0 - mov r8, r2 - lsls r3, 24 - lsrs r6, r3, 24 - bl sub_802FCF0 - lsls r0, 24 - cmp r0, 0 - beq _0802F75A - movs r0, 0 - b _0802F836 -_0802F75A: - ldr r4, _0802F7AC - ldr r0, [r4] - cmp r0, 0 - bne _0802F76E - movs r0, 0xAE - lsls r0, 1 - movs r1, 0x8 - bl MemoryAlloc - str r0, [r4] -_0802F76E: - ldr r0, [r4] - adds r0, 0xB8 - strb r6, [r0] - ldr r0, [r4] - adds r1, r0, 0 - adds r1, 0xF0 - str r5, [r1] - adds r2, r0, 0 - adds r2, 0xF4 - lsls r1, r5, 1 - adds r1, r5 +_08028864: .4byte gUnknown_80DE280 +_08028868: + ldr r0, _08028874 + ldr r2, [r6] + movs r1, 0x84 lsls r1, 3 - adds r1, 0xF8 - adds r1, r0, r1 - str r1, [r2] - adds r0, 0xF8 - bl sub_8006518 - cmp r6, 0 - beq _0802F7B4 - ldr r1, [r4] - adds r0, r1, 0 - adds r0, 0xF0 - ldr r2, [r0] - lsls r0, r2, 1 - adds r0, r2 - lsls r0, 3 - adds r1, r0 - adds r1, 0xF8 - ldr r0, _0802F7B0 - b _0802F7C8 - .align 2, 0 -_0802F7AC: .4byte gUnknown_203B314 -_0802F7B0: .4byte gUnknown_80E072C -_0802F7B4: - ldr r1, [r4] - adds r0, r1, 0 - adds r0, 0xF0 - ldr r2, [r0] - lsls r0, r2, 1 - adds r0, r2 - lsls r0, 3 - adds r1, r0 - adds r1, 0xF8 - ldr r0, _0802F840 -_0802F7C8: - ldm r0!, {r2-r4} - stm r1!, {r2-r4} - ldm r0!, {r2-r4} - stm r1!, {r2-r4} - ldr r4, _0802F844 - ldr r2, [r4] - adds r0, r2, 0 - adds r0, 0xF4 - ldr r1, [r0] - movs r3, 0xAC - lsls r3, 1 - adds r0, r2, r3 - str r0, [r1, 0x14] - cmp r7, 0 - beq _0802F7FC - adds r0, r2, 0 - adds r0, 0xF0 - ldr r1, [r0] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 3 - subs r3, 0x58 - adds r1, r2, r3 - adds r1, r0 - ldr r0, [r7] - str r0, [r1] -_0802F7FC: - ldr r0, [r4] - adds r0, 0xF4 - ldr r0, [r0] - mov r1, r8 - bl sub_8012D08 - bl ResetUnusedInputStruct - ldr r0, [r4] - adds r0, 0xF8 - movs r1, 0x1 - movs r2, 0x1 - bl sub_800641C - ldr r4, [r4] - adds r4, 0xBC - bl sub_802FBF4 - adds r1, r0, 0 - adds r0, r4, 0 - mov r2, r8 - adds r3, r5, 0 - bl sub_8013818 - bl sub_802F9C0 - bl sub_802FA50 - movs r0, 0x1 -_0802F836: - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r1} - bx r1 + adds r2, r1 + b _08028A72 .align 2, 0 -_0802F840: .4byte gUnknown_80E0714 -_0802F844: .4byte gUnknown_203B314 - thumb_func_end sub_802F73C - - thumb_func_start sub_802F848 -sub_802F848: - push {r4,r5,lr} - lsls r0, 16 - asrs r4, r0, 16 - movs r3, 0 - ldr r1, _0802F858 - ldr r0, [r1] - b _0802F884 +_08028874: .4byte gUnknown_80DE2B0 +_08028878: + ldr r0, _08028884 + ldr r2, [r6] + movs r3, 0x84 + lsls r3, 3 + adds r2, r3 + b _08028A72 .align 2, 0 -_0802F858: .4byte gUnknown_203B314 -_0802F85C: - ldr r2, [r1] - lsls r0, r3, 1 - adds r0, r2, r0 - movs r5, 0 - ldrsh r0, [r0, r5] - cmp r0, r4 - bne _0802F880 - adds r0, r2, 0 - adds r0, 0xBC - adds r1, r3, 0 - bl sub_8013878 - bl sub_802F9C0 - bl sub_802FA50 - movs r0, 0x1 - b _0802F89A -_0802F880: - adds r3, 0x1 - adds r0, r2, 0 -_0802F884: - adds r0, 0xDE - movs r2, 0 - ldrsh r0, [r0, r2] - cmp r3, r0 - blt _0802F85C - ldr r0, [r1] - adds r0, 0xBC - movs r1, 0 - bl sub_8013878 - movs r0, 0 -_0802F89A: - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_802F848 - - thumb_func_start sub_802F8A0 -sub_802F8A0: - push {r4,lr} - lsls r0, 24 - cmp r0, 0 - bne _0802F8BC - ldr r0, _0802F8B8 - ldr r0, [r0] - adds r0, 0xBC - bl sub_8013660 - movs r0, 0 - b _0802F904 +_08028884: .4byte gUnknown_80DE368 +_08028888: + ldr r0, _0802888C + b _08028A1A .align 2, 0 -_0802F8B8: .4byte gUnknown_203B314 -_0802F8BC: - ldr r4, _0802F8D8 - ldr r0, [r4] - adds r0, 0xBC - bl GetKeyPress - cmp r0, 0x1 - beq _0802F8DC - cmp r0, 0x2 - bne _0802F8E6 - movs r0, 0x1 - bl PlayMenuSoundEffect - movs r0, 0x2 - b _0802F904 +_0802888C: .4byte gUnknown_80DDDBC +_08028890: + ldr r0, _0802889C + ldr r2, [r6] + movs r1, 0x84 + lsls r1, 3 + adds r2, r1 + b _08028A72 .align 2, 0 -_0802F8D8: .4byte gUnknown_203B314 -_0802F8DC: - movs r0, 0 - bl PlayMenuSoundEffect - movs r0, 0x3 - b _0802F904 -_0802F8E6: - ldr r0, [r4] - adds r0, 0xBC - movs r1, 0x1 - bl sub_80138B8 - lsls r0, 24 +_0802889C: .4byte gUnknown_80DE430 +_080288A0: + bl sub_8030894 cmp r0, 0 - bne _0802F8FA - movs r0, 0 - b _0802F904 -_0802F8FA: - bl sub_802F9C0 - bl sub_802FA50 - movs r0, 0x1 -_0802F904: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_802F8A0 - - thumb_func_start sub_802F90C -sub_802F90C: - ldr r0, _0802F934 - ldr r2, [r0] - adds r0, r2, 0 - adds r0, 0xDA - movs r3, 0 - ldrsh r1, [r0, r3] - subs r0, 0x2 - movs r3, 0 - ldrsh r0, [r0, r3] - muls r0, r1 - adds r1, r2, 0 - adds r1, 0xD4 - movs r3, 0 - ldrsh r1, [r1, r3] - adds r0, r1 - lsls r0, 1 - adds r0, r2, r0 - movs r1, 0 - ldrsh r0, [r0, r1] - bx lr - .align 2, 0 -_0802F934: .4byte gUnknown_203B314 - thumb_func_end sub_802F90C - - thumb_func_start sub_802F938 -sub_802F938: - push {r4,r5,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - bl sub_802FBF4 - adds r1, r0, 0 - ldr r5, _0802F970 - ldr r0, [r5] - adds r2, r0, 0 - adds r2, 0xDE - strh r1, [r2] - adds r0, 0xBC - bl sub_8013984 - bl sub_802F9C0 - bl sub_802FA50 - cmp r4, 0 - beq _0802F96A - ldr r0, [r5] - adds r0, 0xBC - bl AddMenuCursorSprite -_0802F96A: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_0802F970: .4byte gUnknown_203B314 - thumb_func_end sub_802F938 - - thumb_func_start sub_802F974 -sub_802F974: - push {r4,r5,lr} - ldr r4, _0802F9B8 - ldr r2, [r4] - cmp r2, 0 - beq _0802F9B2 - adds r0, r2, 0 - adds r0, 0xF0 - ldr r0, [r0] - lsls r1, r0, 1 - adds r1, r0 - lsls r1, 3 - adds r1, r2, r1 - adds r1, 0xF8 - ldr r0, _0802F9BC - ldm r0!, {r2,r3,r5} - stm r1!, {r2,r3,r5} - ldm r0!, {r2,r3,r5} - stm r1!, {r2,r3,r5} + beq _080288AA + b _08028AF2 +_080288AA: bl ResetUnusedInputStruct - ldr r0, [r4] - adds r0, 0xF8 - movs r1, 0x1 - movs r2, 0x1 - bl sub_800641C - ldr r0, [r4] - bl MemoryFree movs r0, 0 - str r0, [r4] -_0802F9B2: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_0802F9B8: .4byte gUnknown_203B314 -_0802F9BC: .4byte gUnknown_80E06FC - thumb_func_end sub_802F974 - - thumb_func_start sub_802F9C0 -sub_802F9C0: - push {r4,r5,lr} - ldr r4, _0802FA44 - ldr r0, [r4] - movs r1, 0xAC - lsls r1, 1 - adds r0, r1 - movs r2, 0 - movs r1, 0x1 - strb r1, [r0] - ldr r0, [r4] - ldr r3, _0802FA48 - adds r0, r3 - strb r2, [r0] - ldr r0, [r4] - adds r3, 0x1 - adds r1, r0, r3 - movs r0, 0x8 - strb r0, [r1] - ldr r0, [r4] - ldr r1, _0802FA4C - adds r0, r1 - strb r2, [r0] - ldr r0, [r4] - adds r0, 0xD6 - movs r2, 0 - ldrsh r0, [r0, r2] - movs r1, 0xC - bl sub_80095E4 - adds r0, 0x2 - lsls r0, 16 - ldr r3, [r4] - adds r5, r3, 0 - adds r5, 0xF0 - ldr r2, [r5] - lsls r1, r2, 1 - adds r1, r2 - lsls r1, 3 - adds r1, r3, r1 - movs r2, 0x83 - lsls r2, 1 - adds r1, r2 - asrs r2, r0, 16 - lsrs r0, 16 - strh r0, [r1] - ldr r1, [r5] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 3 - adds r3, r0 - adds r2, 0x2 - movs r0, 0x84 - lsls r0, 1 - adds r3, r0 - strh r2, [r3] - bl ResetUnusedInputStruct - ldr r0, [r4] - adds r0, 0xF8 movs r1, 0x1 movs r2, 0x1 bl sub_800641C - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_0802FA44: .4byte gUnknown_203B314 -_0802FA48: .4byte 0x00000159 -_0802FA4C: .4byte 0x0000015b - thumb_func_end sub_802F9C0 - - thumb_func_start sub_802FA50 -sub_802FA50: - push {r4-r7,lr} - mov r7, r8 - push {r7} - sub sp, 0x8 - ldr r4, _0802FB1C - ldr r0, [r4] - adds r0, 0xF0 - ldr r0, [r0] - bl sub_8008C54 - ldr r0, [r4] - adds r0, 0xF0 - ldr r0, [r0] - bl sub_80073B8 - ldr r2, _0802FB20 - ldr r0, [r4] - adds r0, 0xF0 - ldr r3, [r0] - movs r0, 0 - str r0, [sp] - movs r0, 0xA - movs r1, 0 - bl xxx_call_draw_string - ldr r3, [r4] - movs r1, 0xAD - lsls r1, 1 - adds r0, r3, r1 - ldrb r0, [r0] - lsls r0, 3 - adds r0, 0x4 - adds r1, r3, 0 - adds r1, 0xDA - movs r5, 0 - ldrsh r2, [r1, r5] - adds r2, 0x1 - movs r1, 0x7 - str r1, [sp] - adds r1, r3, 0 - adds r1, 0xF0 - ldr r1, [r1] - str r1, [sp, 0x4] - movs r1, 0 - movs r3, 0x2 - bl sub_8012BC4 - ldr r1, [r4] - adds r0, r1, 0 - adds r0, 0xB8 - ldrb r0, [r0] - cmp r0, 0 - beq _0802FB78 - movs r6, 0 - adds r0, r1, 0 - adds r0, 0xD6 + movs r0, 0x2 +_080288BA: movs r1, 0 - ldrsh r0, [r0, r1] - cmp r6, r0 - blt _0802FACA - b _0802FBD6 -_0802FACA: - mov r8, r4 -_0802FACC: - mov r2, r8 - ldr r0, [r2] - adds r0, 0xBC - adds r1, r6, 0 - bl sub_8013800 - adds r5, r0, 0 - mov r3, r8 - ldr r2, [r3] - adds r0, r2, 0 - adds r0, 0xDA - movs r3, 0 - ldrsh r1, [r0, r3] - subs r0, 0x2 - movs r3, 0 - ldrsh r0, [r0, r3] - muls r0, r1 - adds r1, r0, r6 - lsls r0, r1, 1 - adds r0, r2, r0 - movs r3, 0 - ldrsh r7, [r0, r3] - adds r0, r2, 0 - adds r0, 0x5C - adds r0, r1 - ldrb r4, [r0] - cmp r4, 0 - beq _0802FB28 - adds r0, r2, 0 - adds r0, 0xF0 - ldr r3, [r0] - movs r0, 0 - str r0, [sp] - movs r0, 0xA - adds r1, r5, 0 - ldr r2, _0802FB24 - bl xxx_call_draw_string - b _0802FB46 - .align 2, 0 -_0802FB1C: .4byte gUnknown_203B314 -_0802FB20: .4byte gUnknown_80E0744 -_0802FB24: .4byte gUnknown_80E0750 -_0802FB28: - adds r0, r2, 0 - adds r0, 0x8A - adds r0, r1 - ldrb r0, [r0] - cmp r0, 0 - beq _0802FB46 - adds r0, r2, 0 - adds r0, 0xF0 - ldr r3, [r0] - str r4, [sp] - movs r0, 0xA - adds r1, r5, 0 - ldr r2, _0802FB74 - bl xxx_call_draw_string -_0802FB46: - adds r0, r7, 0 - bl sub_80974A0 - adds r2, r0, 0 - mov r1, r8 - ldr r0, [r1] - adds r0, 0xF0 - ldr r3, [r0] - movs r0, 0 - str r0, [sp] - movs r0, 0x18 - adds r1, r5, 0 - bl xxx_call_draw_string - adds r6, 0x1 - mov r2, r8 - ldr r0, [r2] - adds r0, 0xD6 - movs r3, 0 - ldrsh r0, [r0, r3] - cmp r6, r0 - blt _0802FACC - b _0802FBD6 - .align 2, 0 -_0802FB74: .4byte gUnknown_80E0754 -_0802FB78: - movs r6, 0 - adds r0, r1, 0 - adds r0, 0xD6 - movs r5, 0 - ldrsh r0, [r0, r5] - cmp r6, r0 - bge _0802FBD6 - adds r5, r4, 0 -_0802FB88: - ldr r0, [r5] - adds r0, 0xBC - adds r1, r6, 0 - bl sub_8013800 - adds r4, r0, 0 - ldr r1, [r5] - adds r0, r1, 0 - adds r0, 0xDA - movs r3, 0 - ldrsh r2, [r0, r3] - subs r0, 0x2 - movs r3, 0 - ldrsh r0, [r0, r3] - muls r0, r2 - adds r0, r6 - lsls r0, 1 - adds r1, r0 movs r2, 0 - ldrsh r0, [r1, r2] - bl sub_80974A0 - adds r2, r0, 0 - ldr r0, [r5] - adds r0, 0xF0 - ldr r3, [r0] - movs r0, 0 - str r0, [sp] - movs r0, 0x8 - adds r1, r4, 0 - bl xxx_call_draw_string - adds r6, 0x1 - ldr r0, [r5] - adds r0, 0xD6 - movs r3, 0 - ldrsh r0, [r0, r3] - cmp r6, r0 - blt _0802FB88 -_0802FBD6: - ldr r0, _0802FBF0 - ldr r0, [r0] - adds r0, 0xF0 - ldr r0, [r0] - bl sub_80073E0 - add sp, 0x8 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0802FBF0: .4byte gUnknown_203B314 - thumb_func_end sub_802FA50 - - thumb_func_start sub_802FBF4 -sub_802FBF4: - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x4 - movs r0, 0 - mov r8, r0 - movs r1, 0 - str r1, [sp] -_0802FC08: - ldr r1, [sp] - lsls r0, r1, 16 - asrs r4, r0, 16 - mov r10, r4 - adds r0, r4, 0 - bl sub_80A27CC - lsls r0, 24 - cmp r0, 0 - beq _0802FCCE - cmp r4, 0x13 - beq _0802FCCE - cmp r4, 0x1D - beq _0802FCCE - ldr r7, _0802FC88 - ldr r1, [r7] - mov r0, r8 - lsls r6, r0, 1 - adds r0, r1, r6 - strh r4, [r0] - adds r1, 0x5C - add r1, r8 - movs r0, 0 - strb r0, [r1] - ldr r0, [r7] - adds r0, 0x8A - add r0, r8 - movs r1, 0 - strb r1, [r0] - ldr r0, [r7] - adds r0, 0xB8 - ldrb r0, [r0] - cmp r0, 0 - beq _0802FCCA - cmp r4, 0xD - beq _0802FCCA - adds r0, r4, 0 - bl sub_80A270C - lsls r0, 24 - lsrs r0, 24 - mov r9, r0 - movs r5, 0 - cmp r4, 0x1E - bgt _0802FCA8 - adds r0, r4, 0 - bl sub_8097384 - lsls r0, 24 - cmp r0, 0 - bne _0802FCA6 - cmp r4, 0x6 - bne _0802FC8C - movs r0, 0x13 - bl sub_8097384 - lsls r0, 24 - cmp r0, 0 - beq _0802FCA8 - ldr r0, [r7] - adds r0, r6 - movs r1, 0x13 - b _0802FCA4 - .align 2, 0 -_0802FC88: .4byte gUnknown_203B314 -_0802FC8C: - mov r0, r10 - cmp r0, 0xA - bne _0802FCA8 - movs r0, 0x1D - bl sub_8097384 - lsls r0, 24 - cmp r0, 0 - beq _0802FCA8 - ldr r0, [r7] - adds r0, r6 - movs r1, 0x1D -_0802FCA4: - strh r1, [r0] -_0802FCA6: - movs r5, 0x1 -_0802FCA8: - ldr r4, _0802FCEC - ldr r0, [r4] - adds r0, 0x5C - add r0, r8 - strb r5, [r0] - cmp r5, 0 - bne _0802FCCA - mov r0, r9 - bl sub_80969D0 - cmp r0, 0 - ble _0802FCCA - ldr r0, [r4] - adds r0, 0x8A - add r0, r8 - movs r1, 0x1 - strb r1, [r0] -_0802FCCA: - movs r1, 0x1 - add r8, r1 -_0802FCCE: - ldr r0, [sp] - adds r0, 0x1 - str r0, [sp] - cmp r0, 0x2D - ble _0802FC08 - mov r0, r8 - add sp, 0x4 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r1} - bx r1 - .align 2, 0 -_0802FCEC: .4byte gUnknown_203B314 - thumb_func_end sub_802FBF4 - - thumb_func_start sub_802FCF0 -sub_802FCF0: - push {r4,lr} - movs r4, 0 -_0802FCF4: - lsls r0, r4, 16 - asrs r0, 16 - bl sub_80A27CC - lsls r0, 24 - cmp r0, 0 - beq _0802FD06 - movs r0, 0 - b _0802FD0E -_0802FD06: - adds r4, 0x1 - cmp r4, 0x2D - ble _0802FCF4 - movs r0, 0x1 -_0802FD0E: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_802FCF0 - - thumb_func_start sub_802FD14 -sub_802FD14: - push {r4-r6,lr} - adds r5, r0, 0 - bl ResetUnusedInputStruct - movs r0, 0 - movs r1, 0x1 + movs r3, 0x6 + bl sub_80306A8 + b _08028AF2 +_080288C6: + ldr r0, [r6] + movs r4, 0xD7 + lsls r4, 2 + adds r0, r4 + bl sub_8006518 + ldr r1, [r6] + movs r5, 0x87 + lsls r5, 2 + adds r0, r1, r5 + adds r1, r4 + ldr r3, _08028904 + ldr r2, _08028908 + str r2, [sp] movs r2, 0x1 - bl sub_800641C - ldr r4, _0802FD48 - movs r0, 0xCC - movs r1, 0x8 - bl MemoryAlloc - str r0, [r4] - ldr r1, _0802FD4C - strh r1, [r0, 0x10] - str r5, [r0] - cmp r5, 0x7 - bhi _0802FDC0 - lsls r0, r5, 2 - ldr r1, _0802FD50 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0802FD48: .4byte gUnknown_203B318 -_0802FD4C: .4byte 0x0000ffff -_0802FD50: .4byte _0802FD54 - .align 2, 0 -_0802FD54: - .4byte _0802FD74 - .4byte _0802FD84 - .4byte _0802FD94 - .4byte _0802FDA4 - .4byte _0802FDB4 - .4byte _0802FDB8 - .4byte _0802FDBC - .4byte _0802FDC0 -_0802FD74: - movs r6, 0 - ldr r1, _0802FD80 - ldr r0, [r1] - str r6, [r0, 0x4] - b _0802FDCC - .align 2, 0 -_0802FD80: .4byte gUnknown_203B318 -_0802FD84: - movs r6, 0x7 - ldr r2, _0802FD90 - ldr r1, [r2] - movs r0, 0 - b _0802FDC8 - .align 2, 0 -_0802FD90: .4byte gUnknown_203B318 -_0802FD94: - movs r6, 0x6 - ldr r2, _0802FDA0 - ldr r1, [r2] - movs r0, 0 - b _0802FDC8 - .align 2, 0 -_0802FDA0: .4byte gUnknown_203B318 -_0802FDA4: - movs r6, 0x8 - ldr r2, _0802FDB0 - ldr r1, [r2] - movs r0, 0 - b _0802FDC8 - .align 2, 0 -_0802FDB0: .4byte gUnknown_203B318 -_0802FDB4: - movs r6, 0 - b _0802FDC2 -_0802FDB8: - movs r6, 0x7 - b _0802FDC2 -_0802FDBC: - movs r6, 0x6 - b _0802FDC2 -_0802FDC0: - movs r6, 0x8 -_0802FDC2: - ldr r2, _0802FDD8 - ldr r1, [r2] - movs r0, 0x1 -_0802FDC8: - str r0, [r1, 0x4] - adds r1, r2, 0 -_0802FDCC: - ldr r1, [r1] - ldr r0, [r1, 0x4] - cmp r0, 0x1 - bne _0802FDDC - movs r0, 0 - b _0802FDE0 - .align 2, 0 -_0802FDD8: .4byte gUnknown_203B318 -_0802FDDC: - adds r0, r1, 0 - adds r0, 0x58 -_0802FDE0: - str r0, [r1, 0x68] - ldr r0, _0802FE48 - ldr r5, _0802FE4C - adds r1, r5, 0 - bl sub_808D8E0 - ldr r4, _0802FE50 - adds r0, r4, 0 - adds r1, r5, 0 - bl sub_808D8E0 - adds r0, r5, 0 - bl GetMonSpecies - adds r1, r0, 0 - subs r4, 0x50 - adds r0, r4, 0 - bl strcpy - adds r0, r5, 0 - bl GetDialogueSpriteDataPtr - ldr r3, _0802FE54 - ldr r1, [r3] - str r0, [r1, 0x58] - ldr r0, [r0, 0x4] - str r0, [r1, 0x5C] - adds r1, 0x64 + str r2, [sp, 0x4] movs r2, 0 - strb r2, [r1] - ldr r0, [r3] - adds r0, 0x65 - strb r2, [r0] - ldr r0, [r3] - adds r0, 0x66 - strb r2, [r0] - ldr r1, [r3] - adds r2, r1, 0 - adds r2, 0x60 - movs r0, 0x2 - strh r0, [r2] - adds r1, 0x62 - movs r0, 0x8 - strh r0, [r1] - adds r0, r6, 0 - bl sub_802FF04 - movs r0, 0x1 - pop {r4-r6} - pop {r1} - bx r1 - .align 2, 0 -_0802FE48: .4byte gUnknown_202E5D8 -_0802FE4C: .4byte 0x00000141 -_0802FE50: .4byte gUnknown_202E1C8 -_0802FE54: .4byte gUnknown_203B318 - thumb_func_end sub_802FD14 - - thumb_func_start sub_802FE58 -sub_802FE58: - push {lr} - ldr r0, _0802FE70 - ldr r0, [r0] - ldr r0, [r0, 0x8] - cmp r0, 0xD - bhi _0802FEC6 - lsls r0, 2 - ldr r1, _0802FE74 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0802FE70: .4byte gUnknown_203B318 -_0802FE74: .4byte _0802FE78 - .align 2, 0 -_0802FE78: - .4byte _0802FEB0 - .4byte _0802FEB0 - .4byte _0802FEC6 - .4byte _0802FEC6 - .4byte _0802FEB6 - .4byte _0802FEC6 - .4byte _0802FEC6 - .4byte _0802FEC6 - .4byte _0802FEC6 - .4byte _0802FEC6 - .4byte _0802FEC6 - .4byte _0802FEBC - .4byte _0802FEC6 - .4byte _0802FEC2 -_0802FEB0: - bl sub_8030208 - b _0802FECA -_0802FEB6: - bl sub_8030258 - b _0802FECA -_0802FEBC: - bl sub_80302A8 - b _0802FECA -_0802FEC2: - movs r0, 0x3 - b _0802FECC -_0802FEC6: - bl sub_80302C4 -_0802FECA: - movs r0, 0 -_0802FECC: - pop {r1} - bx r1 - thumb_func_end sub_802FE58 - - thumb_func_start sub_802FED0 -sub_802FED0: - ldr r0, _0802FEDC - ldr r0, [r0] - movs r1, 0x10 - ldrsh r0, [r0, r1] - bx lr - .align 2, 0 -_0802FEDC: .4byte gUnknown_203B318 - thumb_func_end sub_802FED0 - - thumb_func_start sub_802FEE0 -sub_802FEE0: - push {r4,lr} - ldr r4, _0802FF00 - ldr r0, [r4] - cmp r0, 0 - beq _0802FEFA - ldr r0, [r0, 0x58] - bl CloseFile - ldr r0, [r4] - bl MemoryFree - movs r0, 0 - str r0, [r4] -_0802FEFA: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0802FF00: .4byte gUnknown_203B318 - thumb_func_end sub_802FEE0 - - thumb_func_start sub_802FF04 -sub_802FF04: - push {lr} - ldr r1, _0802FF18 - ldr r1, [r1] - str r0, [r1, 0x8] - bl sub_802FF1C - bl sub_802FF88 - pop {r0} - bx r0 - .align 2, 0 -_0802FF18: .4byte gUnknown_203B318 - thumb_func_end sub_802FF04 - - thumb_func_start sub_802FF1C -sub_802FF1C: - push {r4-r7,lr} - ldr r4, _0802FF3C - ldr r0, [r4] - adds r0, 0x6C - bl sub_8006518 - ldr r0, [r4] - ldr r0, [r0, 0x8] - cmp r0, 0x4 - beq _0802FF44 - cmp r0, 0x4 - bgt _0802FF40 - cmp r0, 0 - beq _0802FF44 - b _0802FF68 - .align 2, 0 -_0802FF3C: .4byte gUnknown_203B318 -_0802FF40: - cmp r0, 0xD - bne _0802FF68 -_0802FF44: - ldr r0, _0802FF80 - mov r12, r0 - ldr r4, _0802FF84 - movs r3, 0 + str r2, [sp, 0x8] + str r2, [sp, 0xC] movs r2, 0x3 -_0802FF4E: - mov r5, r12 - ldr r1, [r5] - adds r1, r3 - adds r1, 0x6C - adds r0, r4, 0 - ldm r0!, {r5-r7} - stm r1!, {r5-r7} - ldm r0!, {r5-r7} - stm r1!, {r5-r7} - adds r3, 0x18 - subs r2, 0x1 - cmp r2, 0 - bge _0802FF4E -_0802FF68: - bl ResetUnusedInputStruct - ldr r0, _0802FF80 - ldr r0, [r0] - adds r0, 0x6C - movs r1, 0x1 + bl SetMenuItems + bl sub_803092C +_080288F6: + ldr r0, [r6] + adds r0, r5 + movs r1, 0x3 movs r2, 0x1 - bl sub_800641C - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0802FF80: .4byte gUnknown_203B318 -_0802FF84: .4byte gUnknown_80E0760 - thumb_func_end sub_802FF1C - - thumb_func_start sub_802FF88 -sub_802FF88: - push {r4,r5,lr} - sub sp, 0x18 - ldr r1, _0802FFA4 - ldr r0, [r1] - ldr r0, [r0, 0x8] - adds r5, r1, 0 - cmp r0, 0xD - bls _0802FF9A - b _080301A0 -_0802FF9A: - lsls r0, 2 - ldr r1, _0802FFA8 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0802FFA4: .4byte gUnknown_203B318 -_0802FFA8: .4byte _0802FFAC + bl sub_8035CF4 + b _08028AF2 .align 2, 0 -_0802FFAC: - .4byte _0802FFE4 - .4byte _08030000 - .4byte _08030038 - .4byte _08030050 - .4byte _08030068 - .4byte _08030074 - .4byte _080300DC - .4byte _080300C4 - .4byte _080300F4 - .4byte _0803010C - .4byte _08030148 - .4byte _08030174 - .4byte _08030180 - .4byte _080301A0 -_0802FFE4: - bl sub_80301B0 - ldr r2, _0802FFF8 - ldr r0, _0802FFFC - ldr r5, [r0] - ldr r1, [r5, 0x4] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 3 - b _0803000E +_08028904: .4byte gUnknown_80DDACC +_08028908: .4byte gUnknown_80DDAFC +_0802890C: + bl sub_8095350 + ldr r1, _0802893C + ldr r1, [r1] + movs r3, 0xA8 + lsls r3, 3 + adds r2, r1, r3 + str r0, [r2] + movs r4, 0xA7 + lsls r4, 3 + adds r1, r4 + ldr r1, [r1] + cmp r1, 0x6 + beq _08028940 + cmp r1, 0x6 + bls _0802892E + b _08028AF2 +_0802892E: + cmp r1, 0x5 + beq _08028934 + b _08028AF2 +_08028934: + movs r0, 0x2 + bl sub_8030F58 + b _08028AF2 .align 2, 0 -_0802FFF8: .4byte gMakuhitaDialogue -_0802FFFC: .4byte gUnknown_203B318 -_08030000: - ldr r2, _08030034 - ldr r5, [r5] - ldr r1, [r5, 0x4] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 3 - adds r2, 0x4 -_0803000E: - adds r0, r2 - ldr r0, [r0] - ldr r2, [r5, 0x14] - adds r3, r5, 0 - adds r3, 0x18 - movs r4, 0 - str r4, [sp] +_0802893C: .4byte gUnknown_203B2C0 +_08028940: + movs r0, 0x4 + bl sub_8030F58 + b _08028AF2 +_08028948: + ldr r0, _08028970 + ldr r3, _08028974 + movs r2, 0 + str r2, [sp] movs r1, 0x4 str r1, [sp, 0x4] - str r4, [sp, 0x8] - ldr r1, [r5, 0x68] + str r2, [sp, 0x8] + ldr r1, [r6] + movs r2, 0x84 + lsls r2, 3 + adds r1, r2 str r1, [sp, 0xC] movs r1, 0xC str r1, [sp, 0x10] movs r1, 0 + movs r2, 0x5 bl sub_8014248 - b _080301A0 - .align 2, 0 -_08030034: .4byte gMakuhitaDialogue -_08030038: - ldr r3, [r5] - movs r0, 0xD - str r0, [r3, 0xC] - ldr r2, _0803004C - ldr r1, [r3, 0x4] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 3 - adds r2, 0x8 - b _0803015A - .align 2, 0 -_0803004C: .4byte gMakuhitaDialogue -_08030050: - ldr r3, [r5] - movs r0, 0x4 - str r0, [r3, 0xC] - ldr r2, _08030064 - ldr r1, [r3, 0x4] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 3 - adds r2, 0xC - b _0803015A - .align 2, 0 -_08030064: .4byte gMakuhitaDialogue -_08030068: - movs r0, 0x3 - movs r1, 0 - movs r2, 0xA - bl sub_80302E8 - b _080301A0 -_08030074: - ldr r1, [r5] - movs r0, 0xD - str r0, [r1, 0xC] - movs r2, 0x10 - ldrsh r0, [r1, r2] - bl sub_80A2740 - lsls r0, 24 - lsrs r0, 24 - ldr r2, _080300B4 - ldr r1, [sp, 0x14] - ands r1, r2 - orrs r1, r0 - ldr r0, _080300B8 - ands r1, r0 - movs r0, 0x80 - lsls r0, 1 - orrs r1, r0 - str r1, [sp, 0x14] - ldr r0, _080300BC - add r1, sp, 0x14 - bl sub_8090208 - ldr r2, _080300C0 - ldr r3, [r5] - ldr r1, [r3, 0x4] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 3 - adds r2, 0x10 - b _0803015A - .align 2, 0 -_080300B4: .4byte 0xffffff00 -_080300B8: .4byte 0xffff00ff -_080300BC: .4byte gAvailablePokemonNames -_080300C0: .4byte gMakuhitaDialogue -_080300C4: - ldr r3, [r5] - movs r0, 0xD - str r0, [r3, 0xC] - ldr r2, _080300D8 - ldr r1, [r3, 0x4] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 3 - adds r2, 0x18 - b _0803015A - .align 2, 0 -_080300D8: .4byte gMakuhitaDialogue -_080300DC: - ldr r3, [r5] - movs r0, 0xD - str r0, [r3, 0xC] - ldr r2, _080300F0 - ldr r1, [r3, 0x4] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 3 - adds r2, 0x14 - b _0803015A - .align 2, 0 -_080300F0: .4byte gMakuhitaDialogue -_080300F4: - ldr r3, [r5] - movs r0, 0x9 - str r0, [r3, 0xC] - ldr r2, _08030108 - ldr r1, [r3, 0x4] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 3 - adds r2, 0x1C - b _0803015A - .align 2, 0 -_08030108: .4byte gMakuhitaDialogue -_0803010C: - ldr r4, _08030138 - bl sub_808D33C - adds r1, r0, 0 - adds r0, r4, 0 - movs r2, 0x6 - bl sub_808D9AC - ldr r0, _0803013C - ldr r1, [r0] - movs r0, 0xB - str r0, [r1, 0xC] - movs r0, 0xCB - bl sub_8011988 - ldr r0, _08030140 - ldr r3, _08030144 - movs r1, 0 - movs r2, 0 - bl sub_80141B4 - b _080301A0 - .align 2, 0 -_08030138: .4byte gPlayerName -_0803013C: .4byte gUnknown_203B318 -_08030140: .4byte gUnknown_80E0778 -_08030144: .4byte 0x00000101 -_08030148: - ldr r3, [r5] - movs r0, 0xD - str r0, [r3, 0xC] - ldr r2, _0803016C - ldr r1, [r3, 0x4] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 3 - adds r2, 0x20 -_0803015A: - adds r0, r2 - ldr r0, [r0] - ldr r2, [r3, 0x68] - ldr r3, _08030170 - movs r1, 0 - bl sub_80141B4 - b _080301A0 - .align 2, 0 -_0803016C: .4byte gMakuhitaDialogue -_08030170: .4byte 0x0000010d -_08030174: - movs r0, 0x1 - movs r1, 0x49 - movs r2, 0x1 - bl sub_801B60C - b _080301A0 -_08030180: - ldr r3, [r5] - movs r0, 0x1 - str r0, [r3, 0xC] - ldr r2, _080301A8 - ldr r1, [r3, 0x4] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 3 - adds r2, 0x24 - adds r0, r2 - ldr r0, [r0] - ldr r2, [r3, 0x68] - ldr r3, _080301AC - movs r1, 0 - bl sub_80141B4 -_080301A0: - add sp, 0x18 - pop {r4,r5} - pop {r0} - bx r0 + b _08028AF2 .align 2, 0 -_080301A8: .4byte gMakuhitaDialogue -_080301AC: .4byte 0x0000010d - thumb_func_end sub_802FF88 - - thumb_func_start sub_80301B0 -sub_80301B0: - push {r4,lr} - ldr r4, _080301F8 - ldr r1, [r4] - movs r2, 0x2 - str r2, [r1, 0x14] - ldr r0, _080301FC - str r0, [r1, 0x18] - str r2, [r1, 0x1C] - bl sub_80306A4 - lsls r0, 24 - cmp r0, 0 - beq _080301D6 - ldr r0, [r4] - movs r1, 0x1 - negs r1, r1 - str r1, [r0, 0x1C] - movs r1, 0x1 - str r1, [r0, 0x14] -_080301D6: - ldr r1, [r4] - movs r2, 0x1 - ldr r0, _08030200 - ldr r0, [r0] - str r0, [r1, 0x20] - movs r0, 0x3 - str r0, [r1, 0x24] - ldr r0, _08030204 - ldr r0, [r0] - str r0, [r1, 0x28] - str r2, [r1, 0x2C] - movs r0, 0 - str r0, [r1, 0x30] - str r2, [r1, 0x34] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080301F8: .4byte gUnknown_203B318 -_080301FC: .4byte gUnknown_80E07D8 -_08030200: .4byte gUnknown_80D4970 -_08030204: .4byte gUnknown_80D4934 - thumb_func_end sub_80301B0 - - thumb_func_start sub_8030208 -sub_8030208: - push {lr} - sub sp, 0x4 - mov r0, sp - bl sub_80144A4 - cmp r0, 0 - bne _08030250 - ldr r0, _08030230 - ldr r1, [r0] - ldr r0, [sp] - str r0, [r1, 0x14] - ldr r0, [sp] - cmp r0, 0x2 - beq _0803023A - cmp r0, 0x2 - bgt _08030234 - cmp r0, 0x1 - beq _0803024A - b _08030250 - .align 2, 0 -_08030230: .4byte gUnknown_203B318 -_08030234: - cmp r0, 0x3 - beq _08030242 - b _08030250 -_0803023A: - movs r0, 0x3 - bl sub_802FF04 - b _08030250 -_08030242: - movs r0, 0xC - bl sub_802FF04 - b _08030250 -_0803024A: - movs r0, 0x2 - bl sub_802FF04 -_08030250: - add sp, 0x4 - pop {r0} - bx r0 - thumb_func_end sub_8030208 - - thumb_func_start sub_8030258 -sub_8030258: - push {lr} - movs r0, 0x1 - bl sub_80303AC - cmp r0, 0x2 - beq _08030288 - cmp r0, 0x2 - bcc _0803029A - cmp r0, 0x3 - bne _0803029A - bl sub_8030418 - ldr r1, _08030284 - ldr r1, [r1] - strh r0, [r1, 0x10] - bl sub_8030480 - movs r0, 0x5 - bl sub_802FF04 - b _0803029A - .align 2, 0 -_08030284: .4byte gUnknown_203B318 -_08030288: - bl sub_8030480 - ldr r0, _080302A0 - ldr r1, [r0] - ldr r0, _080302A4 - strh r0, [r1, 0x10] - movs r0, 0x1 - bl sub_802FF04 -_0803029A: - pop {r0} - bx r0 +_08028970: .4byte gUnknown_80DE48C +_08028974: .4byte gUnknown_80DD9EC +_08028978: + ldr r0, _08028984 + ldr r2, [r6] + movs r3, 0x84 + lsls r3, 3 + adds r2, r3 + b _08028A72 .align 2, 0 -_080302A0: .4byte gUnknown_203B318 -_080302A4: .4byte 0x0000ffff - thumb_func_end sub_8030258 - - thumb_func_start sub_80302A8 -sub_80302A8: - push {lr} - bl sub_801B6AC - cmp r0, 0x1 - bls _080302C0 - cmp r0, 0x3 - bhi _080302C0 - bl sub_801B72C - movs r0, 0xA - bl sub_802FF04 -_080302C0: - pop {r0} - bx r0 - thumb_func_end sub_80302A8 - - thumb_func_start sub_80302C4 -sub_80302C4: - push {lr} - sub sp, 0x4 - mov r0, sp - bl sub_80144A4 - cmp r0, 0 - bne _080302DC - ldr r0, _080302E4 - ldr r0, [r0] - ldr r0, [r0, 0xC] - bl sub_802FF04 -_080302DC: - add sp, 0x4 - pop {r0} - bx r0 +_08028984: .4byte gUnknown_80DE4B8 +_08028988: + ldr r0, _0802898C + b _08028A6A .align 2, 0 -_080302E4: .4byte gUnknown_203B318 - thumb_func_end sub_80302C4 - - thumb_func_start sub_80302E8 -sub_80302E8: - push {r4-r7,lr} - mov r7, r8 - push {r7} - adds r5, r0, 0 - adds r6, r1, 0 - mov r8, r2 - bl sub_80306A4 - lsls r0, 24 - cmp r0, 0 - beq _08030302 - movs r0, 0 - b _0803039A -_08030302: - ldr r4, _080303A4 - ldr r0, [r4] - cmp r0, 0 - bne _08030314 - movs r0, 0xD0 - movs r1, 0x8 - bl MemoryAlloc - str r0, [r4] -_08030314: - ldr r0, [r4] - str r5, [r0, 0x64] - lsls r1, r5, 1 - adds r1, r5 +_0802898C: .4byte gUnknown_80DE4F0 +_08028990: + ldr r0, _0802899C + ldr r2, [r6] + movs r1, 0x84 lsls r1, 3 - adds r1, 0x6C - adds r1, r0, r1 - str r1, [r0, 0x68] - adds r0, 0x6C - bl sub_8006518 - ldr r1, [r4] - ldr r2, [r1, 0x64] - lsls r0, r2, 1 - adds r0, r2 - lsls r0, 3 - adds r1, r0 - adds r1, 0x6C - ldr r0, _080303A8 - ldm r0!, {r2,r3,r7} - stm r1!, {r2,r3,r7} - ldm r0!, {r2,r3,r7} - stm r1!, {r2,r3,r7} - ldr r2, [r4] - ldr r1, [r2, 0x68] - adds r0, r2, 0 - adds r0, 0xCC - str r0, [r1, 0x14] - cmp r6, 0 - beq _08030362 - ldr r1, [r2, 0x64] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 3 - adds r1, r2, 0 - adds r1, 0x74 - adds r1, r0 - ldr r0, [r6] - str r0, [r1] -_08030362: - ldr r0, [r4] - ldr r0, [r0, 0x68] - mov r1, r8 - bl sub_8012D08 - bl ResetUnusedInputStruct - ldr r0, [r4] - adds r0, 0x6C - movs r1, 0x1 - movs r2, 0x1 - bl sub_800641C - ldr r4, [r4] - adds r4, 0x30 - bl sub_8030668 - adds r1, r0, 0 - adds r0, r4, 0 - mov r2, r8 - adds r3, r5, 0 - bl sub_8013818 - bl sub_80304C8 - bl sub_803053C - movs r0, 0x1 -_0803039A: - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r1} - bx r1 - .align 2, 0 -_080303A4: .4byte gUnknown_203B31C -_080303A8: .4byte gUnknown_80E0804 - thumb_func_end sub_80302E8 - - thumb_func_start sub_80303AC -sub_80303AC: - push {r4,lr} - lsls r0, 24 - cmp r0, 0 - bne _080303C8 - ldr r0, _080303C4 - ldr r0, [r0] - adds r0, 0x30 - bl sub_8013660 - movs r0, 0 - b _08030410 - .align 2, 0 -_080303C4: .4byte gUnknown_203B31C -_080303C8: - ldr r4, _080303E4 - ldr r0, [r4] - adds r0, 0x30 - bl GetKeyPress - cmp r0, 0x1 - beq _080303E8 - cmp r0, 0x2 - bne _080303F2 - movs r0, 0x1 - bl PlayMenuSoundEffect - movs r0, 0x2 - b _08030410 + adds r2, r1 + b _08028A72 .align 2, 0 -_080303E4: .4byte gUnknown_203B31C -_080303E8: - movs r0, 0 - bl PlayMenuSoundEffect - movs r0, 0x3 - b _08030410 -_080303F2: - ldr r0, [r4] - adds r0, 0x30 - movs r1, 0x1 - bl sub_80138B8 - lsls r0, 24 - cmp r0, 0 - bne _08030406 - movs r0, 0 - b _08030410 -_08030406: - bl sub_80304C8 - bl sub_803053C - movs r0, 0x1 -_08030410: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_80303AC - - thumb_func_start sub_8030418 -sub_8030418: - ldr r0, _08030440 - ldr r2, [r0] - adds r0, r2, 0 - adds r0, 0x4E - movs r3, 0 - ldrsh r1, [r0, r3] - subs r0, 0x2 - movs r3, 0 - ldrsh r0, [r0, r3] - muls r0, r1 - adds r1, r2, 0 - adds r1, 0x48 - movs r3, 0 - ldrsh r1, [r1, r3] - adds r0, r1 - lsls r0, 1 - adds r0, r2, r0 - movs r1, 0 - ldrsh r0, [r0, r1] - bx lr +_0802899C: .4byte gUnknown_80DE524 +_080289A0: + ldr r0, _080289AC + ldr r2, [r6] + movs r3, 0x84 + lsls r3, 3 + adds r2, r3 + b _08028A72 .align 2, 0 -_08030440: .4byte gUnknown_203B31C - thumb_func_end sub_8030418 - - thumb_func_start sub_8030444 -sub_8030444: - push {r4,r5,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - bl sub_8030668 - adds r1, r0, 0 - ldr r5, _0803047C - ldr r0, [r5] - adds r2, r0, 0 - adds r2, 0x52 - strh r1, [r2] - adds r0, 0x30 - bl sub_8013984 - bl sub_80304C8 - bl sub_803053C - cmp r4, 0 - beq _08030476 - ldr r0, [r5] - adds r0, 0x30 - bl AddMenuCursorSprite -_08030476: - pop {r4,r5} - pop {r0} - bx r0 +_080289AC: .4byte gUnknown_80DE614 +_080289B0: + ldr r0, _080289B4 + b _08028A6A .align 2, 0 -_0803047C: .4byte gUnknown_203B31C - thumb_func_end sub_8030444 - - thumb_func_start sub_8030480 -sub_8030480: - push {r4,r5,lr} - ldr r4, _080304C0 - ldr r2, [r4] - cmp r2, 0 - beq _080304BA - ldr r0, [r2, 0x64] - lsls r1, r0, 1 - adds r1, r0 +_080289B4: .4byte gUnknown_80DE648 +_080289B8: + ldr r0, _080289C4 + ldr r2, [r6] + movs r1, 0x84 lsls r1, 3 - adds r1, r2, r1 - adds r1, 0x6C - ldr r0, _080304C4 - ldm r0!, {r2,r3,r5} - stm r1!, {r2,r3,r5} - ldm r0!, {r2,r3,r5} - stm r1!, {r2,r3,r5} - bl ResetUnusedInputStruct - ldr r0, [r4] - adds r0, 0x6C - movs r1, 0x1 - movs r2, 0x1 - bl sub_800641C - ldr r0, [r4] - bl MemoryFree - movs r0, 0 - str r0, [r4] -_080304BA: - pop {r4,r5} - pop {r0} - bx r0 + adds r2, r1 + b _08028A72 .align 2, 0 -_080304C0: .4byte gUnknown_203B31C -_080304C4: .4byte gUnknown_80E07EC - thumb_func_end sub_8030480 - - thumb_func_start sub_80304C8 -sub_80304C8: - push {r4,lr} - ldr r4, _08030538 - ldr r0, [r4] - adds r0, 0xCC +_080289C4: .4byte gUnknown_80DE694 +_080289C8: + ldr r0, _080289E0 + ldr r3, _080289E4 movs r2, 0 - movs r1, 0x1 - strb r1, [r0] - ldr r0, [r4] - adds r0, 0xCD - strb r2, [r0] - ldr r0, [r4] - adds r0, 0xCE - movs r1, 0x8 - strb r1, [r0] - ldr r0, [r4] - adds r0, 0xCF - strb r2, [r0] - ldr r0, [r4] - adds r0, 0x4A - movs r1, 0 - ldrsh r0, [r0, r1] - movs r1, 0xC - bl sub_80095E4 - adds r0, 0x2 - lsls r0, 16 - ldr r2, [r4] - ldr r3, [r2, 0x64] - lsls r1, r3, 1 - adds r1, r3 - lsls r1, 3 - adds r1, r2, r1 - adds r1, 0x7A - asrs r3, r0, 16 - lsrs r0, 16 - strh r0, [r1] - ldr r1, [r2, 0x64] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 3 - adds r2, r0 - adds r3, 0x2 - adds r2, 0x7C - strh r3, [r2] - bl ResetUnusedInputStruct - ldr r0, [r4] - adds r0, 0x6C - movs r1, 0x1 - movs r2, 0x1 - bl sub_800641C - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08030538: .4byte gUnknown_203B31C - thumb_func_end sub_80304C8 - - thumb_func_start sub_803053C -sub_803053C: - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - sub sp, 0x108 - ldr r4, _08030658 - ldr r0, [r4] - ldr r0, [r0, 0x64] - bl sub_8008C54 - ldr r0, [r4] - ldr r0, [r0, 0x64] - bl sub_80073B8 - ldr r2, _0803065C - ldr r0, [r4] - ldr r3, [r0, 0x64] - movs r0, 0 - str r0, [sp] - movs r0, 0xA - movs r1, 0 - bl xxx_call_draw_string - ldr r3, [r4] - adds r0, r3, 0 - adds r0, 0xCE - ldrb r0, [r0] - lsls r0, 3 - adds r0, 0x4 - adds r1, r3, 0 - adds r1, 0x4E - movs r5, 0 - ldrsh r2, [r1, r5] - adds r2, 0x1 - movs r1, 0x7 - str r1, [sp] - ldr r1, [r3, 0x64] + str r2, [sp] + movs r1, 0x4 str r1, [sp, 0x4] - movs r1, 0 - movs r3, 0x2 - bl sub_8012BC4 - movs r0, 0 - mov r9, r0 - ldr r0, [r4] - adds r0, 0x4A - movs r1, 0 - ldrsh r0, [r0, r1] - cmp r9, r0 - bge _0803063E - mov r8, r4 -_080305A2: - mov r3, r8 - ldr r1, [r3] - adds r0, r1, 0 - adds r0, 0x4E - movs r5, 0 - ldrsh r2, [r0, r5] - subs r0, 0x2 - movs r3, 0 - ldrsh r0, [r0, r3] - muls r0, r2 - add r0, r9 - lsls r0, 1 - adds r1, r0 - movs r5, 0 - ldrsh r4, [r1, r5] - adds r0, r4, 0 - bl sub_80A2740 - lsls r0, 24 - lsrs r7, r0, 24 - adds r0, r4, 0 - bl sub_80A2668 - adds r4, r0, 0 - lsls r4, 16 - asrs r4, 16 - mov r1, r8 - ldr r0, [r1] - adds r0, 0x30 - mov r1, r9 - bl sub_8013800 - adds r6, r0, 0 - movs r5, 0x7 - adds r0, r4, 0 - bl sub_809758C - lsls r0, 24 - cmp r0, 0 - beq _08030608 - mov r3, r8 - ldr r0, [r3] - ldr r3, [r0, 0x64] - movs r0, 0 - str r0, [sp] - movs r0, 0x8 - adds r1, r6, 0 - ldr r2, _08030660 - bl xxx_call_draw_string - movs r5, 0x4 -_08030608: - adds r0, r7, 0 - bl GetDungeonName1 - adds r3, r0, 0 - add r0, sp, 0x8 - ldr r1, _08030664 - adds r2, r5, 0 - bl sub_800D158 - mov r5, r8 - ldr r0, [r5] - ldr r3, [r0, 0x64] - movs r0, 0 - str r0, [sp] - movs r0, 0x10 - adds r1, r6, 0 - add r2, sp, 0x8 - bl xxx_call_draw_string - movs r0, 0x1 - add r9, r0 - ldr r0, [r5] - adds r0, 0x4A - movs r1, 0 - ldrsh r0, [r0, r1] - cmp r9, r0 - blt _080305A2 -_0803063E: - ldr r0, _08030658 - ldr r0, [r0] - ldr r0, [r0, 0x64] - bl sub_80073E0 - add sp, 0x108 - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08030658: .4byte gUnknown_203B31C -_0803065C: .4byte gUnknown_80E081C -_08030660: .4byte gUnknown_80E0824 -_08030664: .4byte gUnknown_80E0828 - thumb_func_end sub_803053C - - thumb_func_start sub_8030668 -sub_8030668: - push {r4-r6,lr} - movs r6, 0 - movs r5, 0 -_0803066E: - lsls r0, r5, 16 - asrs r4, r0, 16 - adds r0, r4, 0 - bl sub_8097504 - lsls r0, 24 - cmp r0, 0 - beq _08030690 - adds r0, r4, 0 - bl sub_80A26CC - ldr r1, _080306A0 - ldr r1, [r1] - lsls r2, r6, 1 - adds r1, r2 - strh r0, [r1] - adds r6, 0x1 -_08030690: - adds r5, 0x1 - cmp r5, 0x16 - ble _0803066E - adds r0, r6, 0 - pop {r4-r6} - pop {r1} - bx r1 - .align 2, 0 -_080306A0: .4byte gUnknown_203B31C - thumb_func_end sub_8030668 - - thumb_func_start sub_80306A4 -sub_80306A4: - movs r0, 0 - bx lr - thumb_func_end sub_80306A4 - - thumb_func_start sub_80306A8 -sub_80306A8: - push {r4-r7,lr} - mov r7, r8 - push {r7} - adds r4, r0, 0 - adds r5, r1, 0 - adds r7, r2, 0 - mov r8, r3 - bl sub_8030C20 - lsls r0, 24 - cmp r0, 0 - beq _080306C4 - movs r0, 0 - b _08030756 -_080306C4: - ldr r6, _08030760 - movs r0, 0xC4 - movs r1, 0x8 - bl MemoryAlloc - str r0, [r6] - str r4, [r0, 0x20] - str r5, [r0, 0x58] - lsls r1, r5, 1 - adds r1, r5 - lsls r1, 3 - adds r1, 0x60 - adds r1, r0, r1 - str r1, [r0, 0x5C] - adds r0, 0x60 - bl sub_8006518 + str r2, [sp, 0x8] ldr r1, [r6] - ldr r2, [r1, 0x58] - lsls r0, r2, 1 - adds r0, r2 - lsls r0, 3 - adds r1, r0 - adds r1, 0x60 - ldr r0, _08030764 - ldm r0!, {r2-r4} - stm r1!, {r2-r4} - ldm r0!, {r2-r4} - stm r1!, {r2-r4} + movs r2, 0x84 + lsls r2, 3 + adds r1, r2 + b _08028A2E + .align 2, 0 +_080289E0: .4byte gUnknown_80DE6D4 +_080289E4: .4byte gUnknown_80DDA48 +_080289E8: + ldr r0, _080289F0 + ldr r3, _080289F4 + b _08028A1C + .align 2, 0 +_080289F0: .4byte gUnknown_80DE754 +_080289F4: .4byte gUnknown_80DDA48 +_080289F8: + ldr r0, _08028A04 ldr r2, [r6] - ldr r1, [r2, 0x5C] - adds r0, r2, 0 - adds r0, 0xC0 - str r0, [r1, 0x14] - cmp r7, 0 - beq _0803071E - ldr r1, [r2, 0x58] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 3 - adds r1, r2, 0 - adds r1, 0x68 - adds r1, r0 - ldr r0, [r7] - str r0, [r1] -_0803071E: - ldr r0, [r6] - ldr r0, [r0, 0x5C] - mov r1, r8 - bl sub_8012D08 - bl ResetUnusedInputStruct - ldr r0, [r6] - adds r0, 0x60 - movs r1, 0x1 - movs r2, 0x1 - bl sub_800641C - ldr r4, [r6] - adds r4, 0x24 - bl sub_8030A74 - adds r1, r0, 0 - adds r0, r4, 0 - mov r2, r8 - adds r3, r5, 0 - bl sub_8013818 - bl sub_80308A0 - bl sub_803092C - movs r0, 0x1 -_08030756: - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r1} - bx r1 - .align 2, 0 -_08030760: .4byte gUnknown_203B320 -_08030764: .4byte gUnknown_80E0854 - thumb_func_end sub_80306A8 - - thumb_func_start sub_8030768 -sub_8030768: - push {lr} - lsls r0, 24 - cmp r0, 0 - bne _08030784 - ldr r0, _08030780 - ldr r0, [r0] - adds r0, 0x24 - bl sub_8013660 - movs r0, 0 - b _080307E6 - .align 2, 0 -_08030780: .4byte gUnknown_203B320 -_08030784: - ldr r0, _0803079C - ldr r0, [r0] - adds r0, 0x24 - bl GetKeyPress - cmp r0, 0x2 - beq _080307AE - cmp r0, 0x2 - bgt _080307A0 - cmp r0, 0x1 - beq _080307B8 - b _080307C2 - .align 2, 0 -_0803079C: .4byte gUnknown_203B320 -_080307A0: - cmp r0, 0x4 - bne _080307C2 - movs r0, 0x4 - bl PlayMenuSoundEffect - movs r0, 0x4 - b _080307E6 -_080307AE: - movs r0, 0x1 - bl PlayMenuSoundEffect - movs r0, 0x2 - b _080307E6 -_080307B8: - movs r0, 0 - bl PlayMenuSoundEffect - movs r0, 0x3 - b _080307E6 -_080307C2: - ldr r0, _080307D8 - ldr r0, [r0] - adds r0, 0x24 - movs r1, 0x1 - bl sub_80138B8 - lsls r0, 24 - cmp r0, 0 - bne _080307DC - movs r0, 0 - b _080307E6 - .align 2, 0 -_080307D8: .4byte gUnknown_203B320 -_080307DC: - bl sub_80308A0 - bl sub_803092C - movs r0, 0x1 -_080307E6: - pop {r1} - bx r1 - thumb_func_end sub_8030768 - - thumb_func_start sub_80307EC -sub_80307EC: - ldr r0, _0803080C - ldr r2, [r0] - adds r0, r2, 0 - adds r0, 0x42 - movs r3, 0 - ldrsh r1, [r0, r3] - subs r0, 0x2 - movs r3, 0 - ldrsh r0, [r0, r3] - muls r0, r1 - movs r3, 0x3C - ldrsh r1, [r2, r3] - adds r0, r1 - adds r2, r0 - ldrb r0, [r2] - bx lr - .align 2, 0 -_0803080C: .4byte gUnknown_203B320 - thumb_func_end sub_80307EC - - thumb_func_start sub_8030810 -sub_8030810: - push {r4,r5,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - bl sub_8030A74 - adds r1, r0, 0 - ldr r5, _08030848 - ldr r0, [r5] - adds r2, r0, 0 - adds r2, 0x46 - strh r1, [r2] - adds r0, 0x24 - bl sub_8013984 - bl sub_80308A0 - bl sub_803092C - cmp r4, 0 - beq _08030842 - ldr r0, [r5] - adds r0, 0x24 - bl AddMenuCursorSprite -_08030842: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_08030848: .4byte gUnknown_203B320 - thumb_func_end sub_8030810 - - thumb_func_start sub_803084C -sub_803084C: - push {r4,r5,lr} - ldr r4, _0803088C - ldr r2, [r4] - cmp r2, 0 - beq _08030886 - ldr r0, [r2, 0x58] - lsls r1, r0, 1 - adds r1, r0 + movs r1, 0x84 lsls r1, 3 - adds r1, r2, r1 - adds r1, 0x60 - ldr r0, _08030890 - ldm r0!, {r2,r3,r5} - stm r1!, {r2,r3,r5} - ldm r0!, {r2,r3,r5} - stm r1!, {r2,r3,r5} - bl ResetUnusedInputStruct - ldr r0, [r4] - adds r0, 0x60 - movs r1, 0x1 - movs r2, 0x1 - bl sub_800641C - ldr r0, [r4] - bl MemoryFree - movs r0, 0 - str r0, [r4] -_08030886: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_0803088C: .4byte gUnknown_203B320 -_08030890: .4byte gUnknown_80E083C - thumb_func_end sub_803084C - - thumb_func_start sub_8030894 -sub_8030894: - ldr r0, _0803089C - ldr r0, [r0] - bx lr + adds r2, r1 + b _08028A72 .align 2, 0 -_0803089C: .4byte gUnknown_203B320 - thumb_func_end sub_8030894 - - thumb_func_start sub_80308A0 -sub_80308A0: - push {r4,lr} - ldr r4, _08030928 - ldr r0, [r4] - adds r1, r0, 0 - adds r1, 0x44 - ldrh r1, [r1] - adds r0, 0xC0 - movs r2, 0 - strb r1, [r0] - ldr r0, [r4] - adds r1, r0, 0 - adds r1, 0x42 - ldrh r1, [r1] - adds r0, 0xC1 - strb r1, [r0] - ldr r0, [r4] - adds r0, 0xC2 - movs r1, 0xC - strb r1, [r0] - ldr r0, [r4] - adds r0, 0xC3 - strb r2, [r0] - bl ResetUnusedInputStruct - ldr r0, [r4] - adds r0, 0x60 - movs r1, 0x1 - movs r2, 0x1 - bl sub_800641C - ldr r0, [r4] - movs r1, 0x3E - ldrsh r0, [r0, r1] - movs r1, 0xC - bl sub_80095E4 - adds r0, 0x2 - lsls r0, 16 - ldr r2, [r4] - ldr r3, [r2, 0x58] - lsls r1, r3, 1 - adds r1, r3 - lsls r1, 3 - adds r1, r2, r1 - adds r1, 0x6E - asrs r3, r0, 16 - lsrs r0, 16 - strh r0, [r1] - ldr r1, [r2, 0x58] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 3 - adds r2, r0 - adds r3, 0x2 - adds r2, 0x70 - strh r3, [r2] - bl ResetUnusedInputStruct - ldr r0, [r4] - adds r0, 0x60 - movs r1, 0x1 - movs r2, 0x1 - bl sub_800641C - pop {r4} - pop {r0} - bx r0 +_08028A04: .4byte gUnknown_80DE7B8 +_08028A08: + ldr r0, _08028A14 + ldr r2, [r6] + movs r3, 0x84 + lsls r3, 3 + adds r2, r3 + b _08028A72 .align 2, 0 -_08030928: .4byte gUnknown_203B320 - thumb_func_end sub_80308A0 - - thumb_func_start sub_803092C -sub_803092C: - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - sub sp, 0x60 - ldr r7, _08030A24 - ldr r0, [r7] - ldr r0, [r0, 0x58] - bl sub_8008C54 - ldr r0, [r7] - ldr r0, [r0, 0x58] - bl sub_80073B8 - ldr r1, [r7] - adds r0, r1, 0 - adds r0, 0x42 +_08028A14: .4byte gUnknown_80DE7E8 +_08028A18: + ldr r0, _08028A40 +_08028A1A: + ldr r3, _08028A44 +_08028A1C: movs r2, 0 - ldrsh r4, [r0, r2] + str r2, [sp] + movs r1, 0x4 + str r1, [sp, 0x4] + str r2, [sp, 0x8] + ldr r1, [r6] + movs r4, 0x84 lsls r4, 3 - adds r5, r4, 0 - adds r5, 0xA - ldr r2, _08030A28 - ldr r0, [r1, 0x20] - lsls r0, 2 - adds r0, r2 - ldr r2, [r0] - ldr r3, [r1, 0x58] - movs r0, 0 - str r0, [sp] - adds r0, r5, 0 - movs r1, 0 - bl xxx_call_draw_string - adds r4, 0x4 - ldr r3, [r7] - adds r0, r3, 0 - adds r0, 0xC2 - ldrb r0, [r0] - lsls r0, 3 - adds r5, r4, r0 - adds r0, r3, 0 - adds r0, 0x42 - movs r1, 0 - ldrsh r2, [r0, r1] - adds r2, 0x1 - movs r0, 0x7 - str r0, [sp] - ldr r0, [r3, 0x58] - str r0, [sp, 0x4] - adds r0, r5, 0 - movs r1, 0 - movs r3, 0x1 - bl sub_8012BC4 - movs r6, 0 - ldr r0, [r7] - movs r2, 0x3E - ldrsh r0, [r0, r2] - cmp r6, r0 - bge _08030A56 - mov r9, r7 - mov r8, r6 - add r7, sp, 0x8 - mov r5, sp - adds r5, 0x4B -_080309B0: - mov r3, r9 - ldr r1, [r3] - adds r0, r1, 0 - adds r0, 0x42 - movs r3, 0 - ldrsh r2, [r0, r3] - subs r0, 0x2 - movs r3, 0 - ldrsh r0, [r0, r3] - muls r0, r2 - adds r0, r6 - adds r1, r0 - ldrb r0, [r1] - bl sub_8095228 - adds r4, r0, 0 - mov r1, r9 - ldr r0, [r1] - ldr r1, [r0, 0x58] - str r1, [sp, 0x8] - adds r0, 0x24 - adds r1, r6, 0 - bl sub_8013800 - str r0, [sp, 0x50] - add r1, sp, 0x48 - movs r0, 0x7 - strb r0, [r1] - mov r0, sp - adds r0, 0x4A - mov r2, r8 - strb r2, [r0] - add r0, sp, 0x4C - strb r2, [r0] - adds r0, r4, 0x4 - str r0, [sp, 0x10] - adds r0, 0x10 - str r0, [sp, 0x14] - ldrh r0, [r4, 0xC] - strh r0, [r7, 0x10] - ldrh r0, [r4, 0xC] - strh r0, [r7, 0x12] - strb r2, [r7, 0x14] - subs r1, 0x12 - movs r0, 0x5 - strb r0, [r1] - ldrb r0, [r4] - cmp r0, 0x4 - beq _08030A32 - cmp r0, 0x4 - bgt _08030A2C - cmp r0, 0x2 - bgt _08030A3E - cmp r0, 0x1 - blt _08030A3E - movs r0, 0x1 - strb r0, [r5] - b _08030A42 - .align 2, 0 -_08030A24: .4byte gUnknown_203B320 -_08030A28: .4byte gUnknown_80E086C -_08030A2C: - cmp r0, 0x5 - beq _08030A38 - b _08030A3E -_08030A32: - movs r0, 0x3 - strb r0, [r5] - b _08030A42 -_08030A38: - movs r0, 0x4 - strb r0, [r5] - b _08030A42 -_08030A3E: - mov r3, r8 - strb r3, [r5] -_08030A42: - add r0, sp, 0x8 - bl sub_803B6D4 - adds r6, 0x1 - mov r1, r9 - ldr r0, [r1] - movs r2, 0x3E - ldrsh r0, [r0, r2] - cmp r6, r0 - blt _080309B0 -_08030A56: - ldr r0, _08030A70 - ldr r0, [r0] - ldr r0, [r0, 0x58] - bl sub_80073E0 - add sp, 0x60 - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08030A70: .4byte gUnknown_203B320 - thumb_func_end sub_803092C - - thumb_func_start sub_8030A74 -sub_8030A74: - push {r4,r5,lr} - movs r2, 0 - ldr r0, _08030A90 - ldr r0, [r0] - ldr r0, [r0, 0x20] - cmp r0, 0x7 - bls _08030A84 - b _08030C0E -_08030A84: - lsls r0, 2 - ldr r1, _08030A94 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08030A90: .4byte gUnknown_203B320 -_08030A94: .4byte _08030A98 - .align 2, 0 -_08030A98: - .4byte _08030AB8 - .4byte _08030B10 - .4byte _08030B3C - .4byte _08030B94 - .4byte _08030B68 - .4byte _08030BC0 - .4byte _08030AE4 - .4byte _08030BEC -_08030AB8: - movs r1, 0 - ldr r5, _08030ADC - ldr r4, _08030AE0 - movs r3, 0 -_08030AC0: - ldr r0, [r5] - adds r0, r3 - ldrb r0, [r0] - cmp r0, 0 - beq _08030AD2 - ldr r0, [r4] - adds r0, r2 - strb r1, [r0] - adds r2, 0x1 -_08030AD2: - adds r3, 0x30 - adds r1, 0x1 - cmp r1, 0x1F - ble _08030AC0 - b _08030C0E - .align 2, 0 -_08030ADC: .4byte gUnknown_203B480 -_08030AE0: .4byte gUnknown_203B320 -_08030AE4: - movs r1, 0 - ldr r5, _08030B08 - ldr r4, _08030B0C - movs r3, 0 -_08030AEC: - ldr r0, [r5] - adds r0, r3 - ldrb r0, [r0] - cmp r0, 0x6 - bne _08030AFE - ldr r0, [r4] - adds r0, r2 - strb r1, [r0] - adds r2, 0x1 -_08030AFE: - adds r3, 0x30 - adds r1, 0x1 - cmp r1, 0x1F - ble _08030AEC - b _08030C0E - .align 2, 0 -_08030B08: .4byte gUnknown_203B480 -_08030B0C: .4byte gUnknown_203B320 -_08030B10: - movs r1, 0 - ldr r5, _08030B34 - ldr r4, _08030B38 - movs r3, 0 -_08030B18: - ldr r0, [r5] - adds r0, r3 - ldrb r0, [r0] - cmp r0, 0x1 - bne _08030B2A - ldr r0, [r4] - adds r0, r2 - strb r1, [r0] - adds r2, 0x1 -_08030B2A: - adds r3, 0x30 - adds r1, 0x1 - cmp r1, 0x1F - ble _08030B18 - b _08030C0E - .align 2, 0 -_08030B34: .4byte gUnknown_203B480 -_08030B38: .4byte gUnknown_203B320 -_08030B3C: - movs r1, 0 - ldr r5, _08030B60 - ldr r4, _08030B64 - movs r3, 0 -_08030B44: - ldr r0, [r5] - adds r0, r3 - ldrb r0, [r0] - cmp r0, 0x2 - bne _08030B56 - ldr r0, [r4] - adds r0, r2 - strb r1, [r0] - adds r2, 0x1 -_08030B56: - adds r3, 0x30 - adds r1, 0x1 - cmp r1, 0x1F - ble _08030B44 - b _08030C0E - .align 2, 0 -_08030B60: .4byte gUnknown_203B480 -_08030B64: .4byte gUnknown_203B320 -_08030B68: - movs r1, 0 - ldr r5, _08030B8C - ldr r4, _08030B90 - movs r3, 0 -_08030B70: - ldr r0, [r5] - adds r0, r3 - ldrb r0, [r0] - cmp r0, 0x4 - bne _08030B82 - ldr r0, [r4] - adds r0, r2 - strb r1, [r0] - adds r2, 0x1 -_08030B82: - adds r3, 0x30 - adds r1, 0x1 - cmp r1, 0x1F - ble _08030B70 - b _08030C0E - .align 2, 0 -_08030B8C: .4byte gUnknown_203B480 -_08030B90: .4byte gUnknown_203B320 -_08030B94: - movs r1, 0 - ldr r5, _08030BB8 - ldr r4, _08030BBC - movs r3, 0 -_08030B9C: - ldr r0, [r5] - adds r0, r3 - ldrb r0, [r0] - cmp r0, 0x3 - bne _08030BAE - ldr r0, [r4] - adds r0, r2 - strb r1, [r0] - adds r2, 0x1 -_08030BAE: - adds r3, 0x30 - adds r1, 0x1 - cmp r1, 0x1F - ble _08030B9C - b _08030C0E - .align 2, 0 -_08030BB8: .4byte gUnknown_203B480 -_08030BBC: .4byte gUnknown_203B320 -_08030BC0: - movs r1, 0 - ldr r5, _08030BE4 - ldr r4, _08030BE8 - movs r3, 0 -_08030BC8: - ldr r0, [r5] - adds r0, r3 - ldrb r0, [r0] - cmp r0, 0x5 - bne _08030BDA - ldr r0, [r4] - adds r0, r2 - strb r1, [r0] - adds r2, 0x1 -_08030BDA: - adds r3, 0x30 - adds r1, 0x1 - cmp r1, 0x1F - ble _08030BC8 - b _08030C0E - .align 2, 0 -_08030BE4: .4byte gUnknown_203B480 -_08030BE8: .4byte gUnknown_203B320 -_08030BEC: - movs r1, 0 - ldr r5, _08030C18 - ldr r4, _08030C1C - movs r3, 0 -_08030BF4: - ldr r0, [r5] - adds r0, r3 - ldrb r0, [r0] - cmp r0, 0x7 - bne _08030C06 - ldr r0, [r4] - adds r0, r2 - strb r1, [r0] - adds r2, 0x1 -_08030C06: - adds r3, 0x30 - adds r1, 0x1 - cmp r1, 0x1F - ble _08030BF4 -_08030C0E: - adds r0, r2, 0 - pop {r4,r5} - pop {r1} - bx r1 - .align 2, 0 -_08030C18: .4byte gUnknown_203B480 -_08030C1C: .4byte gUnknown_203B320 - thumb_func_end sub_8030A74 - - thumb_func_start sub_8030C20 -sub_8030C20: - push {lr} - cmp r0, 0x7 - bls _08030C28 - b _08030D34 -_08030C28: - lsls r0, 2 - ldr r1, _08030C34 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08030C34: .4byte _08030C38 - .align 2, 0 -_08030C38: - .4byte _08030C58 - .4byte _08030C90 - .4byte _08030CAC - .4byte _08030CE4 - .4byte _08030CC8 - .4byte _08030D00 - .4byte _08030C74 - .4byte _08030D20 -_08030C58: - movs r1, 0 - ldr r0, _08030C70 - ldr r2, [r0] -_08030C5E: - ldrb r0, [r2] - cmp r0, 0 - bne _08030D1C - adds r2, 0x30 - adds r1, 0x1 - cmp r1, 0x1F - ble _08030C5E - b _08030D34 - .align 2, 0 -_08030C70: .4byte gUnknown_203B480 -_08030C74: - movs r1, 0 - ldr r0, _08030C8C - ldr r2, [r0] -_08030C7A: - ldrb r0, [r2] - cmp r0, 0x6 - beq _08030D1C - adds r2, 0x30 - adds r1, 0x1 - cmp r1, 0x1F - ble _08030C7A - b _08030D34 - .align 2, 0 -_08030C8C: .4byte gUnknown_203B480 -_08030C90: - movs r1, 0 - ldr r0, _08030CA8 - ldr r2, [r0] -_08030C96: - ldrb r0, [r2] - cmp r0, 0x1 - beq _08030D1C - adds r2, 0x30 - adds r1, 0x1 - cmp r1, 0x1F - ble _08030C96 - b _08030D34 - .align 2, 0 -_08030CA8: .4byte gUnknown_203B480 -_08030CAC: - movs r1, 0 - ldr r0, _08030CC4 - ldr r2, [r0] -_08030CB2: - ldrb r0, [r2] - cmp r0, 0x2 - beq _08030D1C - adds r2, 0x30 - adds r1, 0x1 - cmp r1, 0x1F - ble _08030CB2 - b _08030D34 - .align 2, 0 -_08030CC4: .4byte gUnknown_203B480 -_08030CC8: - movs r1, 0 - ldr r0, _08030CE0 - ldr r2, [r0] -_08030CCE: - ldrb r0, [r2] - cmp r0, 0x4 - beq _08030D1C - adds r2, 0x30 - adds r1, 0x1 - cmp r1, 0x1F - ble _08030CCE - b _08030D34 - .align 2, 0 -_08030CE0: .4byte gUnknown_203B480 -_08030CE4: - movs r1, 0 - ldr r0, _08030CFC - ldr r2, [r0] -_08030CEA: - ldrb r0, [r2] - cmp r0, 0x3 - beq _08030D1C - adds r2, 0x30 - adds r1, 0x1 - cmp r1, 0x1F - ble _08030CEA - b _08030D34 - .align 2, 0 -_08030CFC: .4byte gUnknown_203B480 -_08030D00: - movs r1, 0 - ldr r0, _08030D18 - ldr r2, [r0] -_08030D06: - ldrb r0, [r2] - cmp r0, 0x5 - beq _08030D1C - adds r2, 0x30 - adds r1, 0x1 - cmp r1, 0x1F - ble _08030D06 - b _08030D34 - .align 2, 0 -_08030D18: .4byte gUnknown_203B480 -_08030D1C: - movs r0, 0 - b _08030D36 -_08030D20: + adds r1, r4 +_08028A2E: + str r1, [sp, 0xC] + movs r1, 0xC + str r1, [sp, 0x10] movs r1, 0 - ldr r0, _08030D3C - ldr r2, [r0] -_08030D26: - ldrb r0, [r2] - cmp r0, 0x7 - beq _08030D1C - adds r2, 0x30 - adds r1, 0x1 - cmp r1, 0x1F - ble _08030D26 -_08030D34: - movs r0, 0x1 -_08030D36: - pop {r1} - bx r1 - .align 2, 0 -_08030D3C: .4byte gUnknown_203B480 - thumb_func_end sub_8030C20 - - thumb_func_start sub_8030D40 -sub_8030D40: - push {r4-r6,lr} - adds r4, r0, 0 - adds r5, r1, 0 - lsls r4, 24 - lsrs r4, 24 - ldr r6, _08030D98 - movs r0, 0x78 - movs r1, 0x8 - bl MemoryAlloc - str r0, [r6] - strb r4, [r0, 0xC] - ldr r0, [r6] - bl sub_801317C - ldr r0, [r6] - str r5, [r0, 0x10] - lsls r1, r5, 1 - adds r1, r5 - lsls r1, 3 - adds r1, 0x18 - adds r1, r0, r1 - str r1, [r0, 0x14] - adds r0, 0x18 - bl sub_8006518 - ldr r1, [r6] - ldr r2, [r1, 0x10] - lsls r0, r2, 1 - adds r0, r2 - lsls r0, 3 - adds r1, r0 - adds r1, 0x18 - ldr r0, _08030D9C - ldm r0!, {r2-r4} - stm r1!, {r2-r4} - ldm r0!, {r2-r4} - stm r1!, {r2-r4} - bl sub_8030DD4 - movs r0, 0x1 - pop {r4-r6} - pop {r1} - bx r1 - .align 2, 0 -_08030D98: .4byte gUnknown_203B324 -_08030D9C: .4byte gUnknown_80E091C - thumb_func_end sub_8030D40 - - thumb_func_start sub_8030DA0 -sub_8030DA0: - push {lr} - ldr r0, _08030DC0 - ldr r0, [r0] - ldr r1, [r0, 0x10] - bl sub_8012A64 - cmp r0, 0x1 - beq _08030DC4 - cmp r0, 0x2 - bne _08030DCE - movs r0, 0x1 - bl PlayMenuSoundEffect - movs r0, 0x2 - b _08030DD0 + movs r2, 0x8 + bl sub_8014248 + b _08028AF2 .align 2, 0 -_08030DC0: .4byte gUnknown_203B324 -_08030DC4: - movs r0, 0 - bl PlayMenuSoundEffect - movs r0, 0x3 - b _08030DD0 -_08030DCE: - movs r0, 0 -_08030DD0: - pop {r1} - bx r1 - thumb_func_end sub_8030DA0 - - thumb_func_start sub_8030DD4 -sub_8030DD4: - push {lr} - bl sub_8030E2C - bl sub_8030E48 - pop {r0} - bx r0 - thumb_func_end sub_8030DD4 - - thumb_func_start sub_8030DE4 -sub_8030DE4: - push {r4,r5,lr} - ldr r4, _08030E24 - ldr r2, [r4] - cmp r2, 0 - beq _08030E1E - ldr r0, [r2, 0x10] - lsls r1, r0, 1 - adds r1, r0 +_08028A40: .4byte gUnknown_80DE808 +_08028A44: .4byte gUnknown_80DDA64 +_08028A48: + ldr r0, _08028A54 + ldr r2, [r6] + movs r1, 0x84 lsls r1, 3 - adds r1, r2, r1 - adds r1, 0x18 - ldr r0, _08030E28 - ldm r0!, {r2,r3,r5} - stm r1!, {r2,r3,r5} - ldm r0!, {r2,r3,r5} - stm r1!, {r2,r3,r5} - bl ResetUnusedInputStruct - ldr r0, [r4] - adds r0, 0x18 - movs r1, 0x1 - movs r2, 0x1 - bl sub_800641C - ldr r0, [r4] - bl MemoryFree - movs r0, 0 - str r0, [r4] -_08030E1E: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_08030E24: .4byte gUnknown_203B324 -_08030E28: .4byte gUnknown_80E0900 - thumb_func_end sub_8030DE4 - - thumb_func_start sub_8030E2C -sub_8030E2C: - push {lr} - bl ResetUnusedInputStruct - ldr r0, _08030E44 - ldr r0, [r0] - adds r0, 0x18 - movs r1, 0x1 - movs r2, 0x1 - bl sub_800641C - pop {r0} - bx r0 - .align 2, 0 -_08030E44: .4byte gUnknown_203B324 - thumb_func_end sub_8030E2C - - thumb_func_start sub_8030E48 -sub_8030E48: - push {r4-r6,lr} - mov r6, r8 - push {r6} - sub sp, 0x15C - ldr r3, _08030EA8 - ldr r4, _08030EAC - ldr r2, [r4] - ldrb r1, [r2, 0xC] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 4 - ldr r1, [r3] - adds r5, r1, r0 - ldr r0, [r2, 0x10] - bl sub_80073B8 - ldr r0, [r4] - ldr r0, [r0, 0x10] - str r0, [sp, 0x4] - add r1, sp, 0x44 - movs r2, 0 - movs r0, 0x7 - strb r0, [r1] - mov r0, sp - adds r0, 0x46 - strb r2, [r0] - add r0, sp, 0x48 - strb r2, [r0] - adds r0, r5, 0x4 - str r0, [sp, 0xC] - adds r0, 0x10 - str r0, [sp, 0x10] - add r1, sp, 0x4 - ldrh r0, [r5, 0xC] - strh r0, [r1, 0x10] - ldrh r0, [r5, 0xC] - strh r0, [r1, 0x12] - adds r0, r1, 0 - strb r2, [r0, 0x14] - adds r2, r5, 0 - adds r2, 0x22 - ldrb r0, [r2] - cmp r0, 0 - bne _08030EB0 - adds r1, 0x2E - movs r0, 0x5 - strb r0, [r1] - b _08030EBE + adds r2, r1 + b _08028A72 .align 2, 0 -_08030EA8: .4byte gUnknown_203B480 -_08030EAC: .4byte gUnknown_203B324 -_08030EB0: - mov r1, sp - adds r1, 0x32 - movs r0, 0x2 - strb r0, [r1] - ldrb r1, [r2] - add r0, sp, 0x38 - strb r1, [r0] -_08030EBE: - ldrb r0, [r5] - cmp r0, 0x2 - beq _08030ED2 - cmp r0, 0x2 - ble _08030EE2 - cmp r0, 0x4 - beq _08030ED2 - cmp r0, 0x5 - beq _08030EDA - b _08030EE2 -_08030ED2: - mov r1, sp - adds r1, 0x45 - movs r0, 0xA - b _08030EE8 -_08030EDA: - mov r1, sp - adds r1, 0x45 - movs r0, 0xB - b _08030EE8 -_08030EE2: - mov r1, sp - adds r1, 0x45 - movs r0, 0x9 -_08030EE8: - strb r0, [r1] - add r0, sp, 0x4 - bl CreateRescueDescription - ldrh r0, [r5, 0x10] - ldr r1, _08030F48 - bl __umodsi3 - adds r4, r0, 0 - lsls r4, 16 - lsrs r4, 16 - ldr r2, _08030F4C - ldr r5, _08030F50 - ldr r0, [r5] - ldr r3, [r0, 0x10] - movs r0, 0 - mov r8, r0 - str r0, [sp] - movs r0, 0xA - movs r1, 0x68 - bl xxx_call_draw_string - add r6, sp, 0x5C - ldr r1, _08030F54 - adds r0, r6, 0 - adds r2, r4, 0 - bl sub_800D158 - ldr r0, [r5] - ldr r3, [r0, 0x10] - mov r0, r8 - str r0, [sp] - movs r0, 0x44 - movs r1, 0x68 - adds r2, r6, 0 - bl xxx_call_draw_string - ldr r0, [r5] - ldr r0, [r0, 0x10] - bl sub_80073E0 - add sp, 0x15C - pop {r3} - mov r8, r3 - pop {r4-r6} - pop {r0} - bx r0 +_08028A54: .4byte gUnknown_80DE830 +_08028A58: + ldr r0, _08028A64 + ldr r2, [r6] + movs r3, 0x84 + lsls r3, 3 + adds r2, r3 + b _08028A72 .align 2, 0 -_08030F48: .4byte 0x00002710 -_08030F4C: .4byte gUnknown_80E0934 -_08030F50: .4byte gUnknown_203B324 -_08030F54: .4byte gUnknown_80E0938 - thumb_func_end sub_8030E48 - - thumb_func_start sub_8030F58 -sub_8030F58: - push {r4-r6,lr} - adds r6, r0, 0 - bl ResetUnusedInputStruct - movs r0, 0 - movs r1, 0x1 - movs r2, 0x1 - bl sub_800641C - ldr r5, _08030FF4 - ldr r0, [r5] - cmp r0, 0 - bne _08030F88 - movs r4, 0x8E - lsls r4, 1 - adds r0, r4, 0 - movs r1, 0x8 - bl MemoryAlloc - str r0, [r5] - movs r1, 0 - adds r2, r4, 0 - bl MemoryFill8 -_08030F88: - ldr r0, [r5] - movs r1, 0x8C - lsls r1, 1 - adds r0, r1 - str r6, [r0] - movs r0, 0x98 - lsls r0, 1 - bl GetDialogueSpriteDataPtr - ldr r2, [r5] +_08028A64: .4byte gUnknown_80DE864 +_08028A68: + ldr r0, _08028A7C +_08028A6A: + ldr r2, [r6] movs r4, 0x84 - lsls r4, 1 - adds r1, r2, r4 - str r0, [r1] - movs r3, 0x86 - lsls r3, 1 - adds r1, r2, r3 - ldr r0, [r0, 0x4] - str r0, [r1] - movs r0, 0x8A - lsls r0, 1 - adds r2, r0 - movs r1, 0 - strb r1, [r2] - ldr r0, [r5] - ldr r2, _08030FF8 - adds r0, r2 - strb r1, [r0] - ldr r0, [r5] - adds r3, 0xA - adds r0, r3 - strb r1, [r0] - ldr r2, [r5] - movs r0, 0x88 - lsls r0, 1 - adds r1, r2, r0 - movs r0, 0x2 - strh r0, [r1] - subs r3, 0x4 - adds r1, r2, r3 - movs r0, 0x8 - strh r0, [r1] - adds r0, r6, 0 - bl sub_8030C20 - lsls r0, 24 - lsrs r1, r0, 24 - cmp r1, 0 - beq _08031038 - cmp r6, 0x2 - beq _08030FFC - cmp r6, 0x4 - beq _08031014 - b _08031022 - .align 2, 0 -_08030FF4: .4byte gUnknown_203B328 -_08030FF8: .4byte 0x00000115 -_08030FFC: - ldr r0, _0803100C - ldr r2, [r5] - adds r2, r4 - ldr r3, _08031010 - movs r1, 0 - bl sub_80141B4 - b _08031022 - .align 2, 0 -_0803100C: .4byte gUnknown_80E09D8 -_08031010: .4byte 0x00000101 -_08031014: - ldr r0, _0803102C - ldr r2, [r5] + lsls r4, 3 adds r2, r4 - ldr r3, _08031030 +_08028A72: + ldr r3, _08028A80 movs r1, 0 bl sub_80141B4 -_08031022: - ldr r0, _08031034 - ldr r1, [r0] - movs r0, 0x5 - str r0, [r1] - b _08031048 + b _08028AF2 .align 2, 0 -_0803102C: .4byte gUnknown_80E0A0C -_08031030: .4byte 0x00000101 -_08031034: .4byte gUnknown_203B328 -_08031038: - ldr r0, [r5] - str r1, [r0] - adds r0, r6, 0 - movs r1, 0 +_08028A7C: .4byte gUnknown_80DE7E8 +_08028A80: .4byte 0x0000010d +_08028A84: + ldr r0, _08028AAC + ldr r3, _08028AB0 movs r2, 0 - movs r3, 0x8 - bl sub_80306A8 -_08031048: - movs r0, 0x1 - pop {r4-r6} - pop {r1} - bx r1 - thumb_func_end sub_8030F58 - - thumb_func_start sub_8031050 -sub_8031050: - push {lr} - ldr r1, _08031068 - ldr r0, [r1] - ldr r0, [r0] - adds r2, r1, 0 - cmp r0, 0x6 - bhi _080310AC - lsls r0, 2 - ldr r1, _0803106C - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08031068: .4byte gUnknown_203B328 -_0803106C: .4byte _08031070 - .align 2, 0 -_08031070: - .4byte _0803108C - .4byte _08031092 - .4byte _08031098 - .4byte _08031098 - .4byte _080310A2 - .4byte _080310A8 - .4byte _080310A8 -_0803108C: - bl sub_8031300 - b _080310AC -_08031092: - bl sub_803136C - b _080310AC -_08031098: - ldr r0, [r2] - ldr r0, [r0] - bl sub_80313D8 - b _080310AC -_080310A2: - bl sub_8031498 - b _080310AC -_080310A8: - movs r0, 0x3 - b _080310AE -_080310AC: - movs r0, 0 -_080310AE: - pop {r1} - bx r1 - thumb_func_end sub_8031050 - - thumb_func_start sub_80310B4 -sub_80310B4: - push {r4,lr} - bl sub_803084C - ldr r4, _080310E0 - ldr r0, [r4] - cmp r0, 0 - beq _080310D8 - movs r1, 0x84 - lsls r1, 1 - adds r0, r1 - ldr r0, [r0] - bl CloseFile - ldr r0, [r4] - bl MemoryFree - movs r0, 0 - str r0, [r4] -_080310D8: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080310E0: .4byte gUnknown_203B328 - thumb_func_end sub_80310B4 - - thumb_func_start sub_80310E4 -sub_80310E4: - push {lr} - ldr r1, _080310F8 - ldr r1, [r1] - str r0, [r1] - bl sub_80310FC - bl sub_8031258 - pop {r0} - bx r0 - .align 2, 0 -_080310F8: .4byte gUnknown_203B328 - thumb_func_end sub_80310E4 - - thumb_func_start sub_80310FC -sub_80310FC: - push {r4-r6,lr} - ldr r4, _0803111C - ldr r0, [r4] - adds r0, 0xA8 - bl sub_8006518 - ldr r0, [r4] - ldr r0, [r0] - cmp r0, 0x6 - bls _08031112 - b _0803122C -_08031112: - lsls r0, 2 - ldr r1, _08031120 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0803111C: .4byte gUnknown_203B328 -_08031120: .4byte _08031124 - .align 2, 0 -_08031124: - .4byte _08031140 - .4byte _08031178 - .4byte _080311C0 - .4byte _080311C0 - .4byte _080311E8 - .4byte _0803122C - .4byte _0803122C -_08031140: - ldr r3, _08031170 - ldr r1, [r3] - ldr r2, _08031174 - adds r1, 0xC0 - adds r0, r2, 0 - ldm r0!, {r4-r6} - stm r1!, {r4-r6} - ldm r0!, {r4-r6} - stm r1!, {r4-r6} - ldr r1, [r3] - adds r1, 0xD8 - adds r0, r2, 0 - ldm r0!, {r4-r6} - stm r1!, {r4-r6} - ldm r0!, {r4-r6} - stm r1!, {r4-r6} - ldr r0, [r3] - adds r0, 0xF0 - ldm r2!, {r1,r3,r4} - stm r0!, {r1,r3,r4} - ldm r2!, {r1,r5,r6} - stm r0!, {r1,r5,r6} - b _0803123A - .align 2, 0 -_08031170: .4byte gUnknown_203B328 -_08031174: .4byte gUnknown_80E0990 -_08031178: - ldr r3, _080311B0 - ldr r1, [r3] - adds r1, 0xC0 - ldr r0, _080311B4 - ldm r0!, {r2,r4,r5} - stm r1!, {r2,r4,r5} - ldm r0!, {r2,r4,r6} - stm r1!, {r2,r4,r6} - ldr r1, [r3] - ldr r2, _080311B8 - adds r1, 0xD8 - adds r0, r2, 0 - ldm r0!, {r4-r6} - stm r1!, {r4-r6} - ldm r0!, {r4-r6} - stm r1!, {r4-r6} - ldr r0, [r3] - adds r0, 0xF0 - ldm r2!, {r1,r5,r6} - stm r0!, {r1,r5,r6} - ldm r2!, {r4-r6} - stm r0!, {r4-r6} - ldr r0, [r3] - adds r0, 0xC0 - ldr r1, _080311BC - bl sub_8012CAC - b _0803123A - .align 2, 0 -_080311B0: .4byte gUnknown_203B328 -_080311B4: .4byte gUnknown_80E09A8 -_080311B8: .4byte gUnknown_80E0990 -_080311BC: .4byte gUnknown_80E0968 -_080311C0: - ldr r2, _080311DC - ldr r1, [r2] - adds r1, 0xD8 - ldr r0, _080311E0 - ldm r0!, {r3-r5} - stm r1!, {r3-r5} - ldm r0!, {r3,r4,r6} - stm r1!, {r3,r4,r6} - ldr r0, [r2] - adds r0, 0xD8 - ldr r1, _080311E4 - bl sub_8012CAC - b _0803123A - .align 2, 0 -_080311DC: .4byte gUnknown_203B328 -_080311E0: .4byte gUnknown_80E09C0 -_080311E4: .4byte gUnknown_80E0948 -_080311E8: - ldr r3, _08031224 - ldr r1, [r3] - ldr r2, _08031228 - adds r1, 0xA8 - adds r0, r2, 0 - ldm r0!, {r4-r6} - stm r1!, {r4-r6} - ldm r0!, {r4-r6} - stm r1!, {r4-r6} - ldr r1, [r3] - adds r1, 0xC0 - adds r0, r2, 0 - ldm r0!, {r4-r6} - stm r1!, {r4-r6} - ldm r0!, {r4-r6} - stm r1!, {r4-r6} - ldr r1, [r3] - adds r1, 0xD8 - adds r0, r2, 0 - ldm r0!, {r4-r6} - stm r1!, {r4-r6} - ldm r0!, {r4-r6} - stm r1!, {r4-r6} - ldr r0, [r3] - adds r0, 0xF0 - ldm r2!, {r1,r5,r6} - stm r0!, {r1,r5,r6} - ldm r2!, {r3-r5} - stm r0!, {r3-r5} - b _0803123A - .align 2, 0 -_08031224: .4byte gUnknown_203B328 -_08031228: .4byte gUnknown_80E0990 -_0803122C: - bl ResetUnusedInputStruct - movs r0, 0 - movs r1, 0x1 - movs r2, 0x1 - bl sub_800641C -_0803123A: - bl ResetUnusedInputStruct - ldr r0, _08031254 - ldr r0, [r0] - adds r0, 0xA8 - movs r1, 0x1 - movs r2, 0x1 - bl sub_800641C - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_08031254: .4byte gUnknown_203B328 - thumb_func_end sub_80310FC - - thumb_func_start sub_8031258 -sub_8031258: - push {r4,lr} - sub sp, 0x8 - ldr r1, _08031274 - ldr r0, [r1] - ldr r0, [r0] - adds r2, r1, 0 - cmp r0, 0x6 - bhi _080312F6 - lsls r0, 2 - ldr r1, _08031278 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08031274: .4byte gUnknown_203B328 -_08031278: .4byte _0803127C - .align 2, 0 -_0803127C: - .4byte _08031298 - .4byte _080312A0 - .4byte _080312BC - .4byte _080312BC - .4byte _080312EC - .4byte _080312F6 - .4byte _080312F6 -_08031298: - movs r0, 0x1 - bl sub_8030810 - b _080312F6 -_080312A0: - bl sub_803092C - ldr r0, _080312B4 - ldr r0, [r0] - adds r0, 0x8 - ldr r1, _080312B8 - movs r2, 0x4 str r2, [sp] - movs r2, 0x1 - b _080312D8 - .align 2, 0 -_080312B4: .4byte gUnknown_203B328 -_080312B8: .4byte gUnknown_80E0968 -_080312BC: - bl sub_803092C - ldr r4, _080312E4 - ldr r0, [r4] - adds r0, 0x8 - movs r1, 0 - bl sub_8012EA4 - ldr r0, [r4] - adds r0, 0x58 - ldr r1, _080312E8 - movs r2, 0x3 - str r2, [sp] - movs r2, 0x2 -_080312D8: - str r2, [sp, 0x4] - movs r2, 0 - movs r3, 0 - bl sub_8012D60 - b _080312F6 - .align 2, 0 -_080312E4: .4byte gUnknown_203B328 -_080312E8: .4byte gUnknown_80E0948 -_080312EC: - ldr r0, [r2] - ldrb r0, [r0, 0x4] - movs r1, 0x3 - bl sub_8030D40 -_080312F6: - add sp, 0x8 - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_8031258 - - thumb_func_start sub_8031300 -sub_8031300: - push {lr} - movs r0, 0x1 - bl sub_8030768 - cmp r0, 0x4 - bhi _08031366 - lsls r0, 2 - ldr r1, _08031318 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08031318: .4byte _0803131C - .align 2, 0 -_0803131C: - .4byte _08031366 - .4byte _08031366 - .4byte _08031360 - .4byte _08031330 - .4byte _08031348 -_08031330: - bl sub_80307EC - ldr r1, _08031344 - ldr r1, [r1] - strb r0, [r1, 0x4] - movs r0, 0x1 - bl sub_80310E4 - b _08031366 - .align 2, 0 -_08031344: .4byte gUnknown_203B328 -_08031348: - bl sub_80307EC - ldr r1, _0803135C - ldr r1, [r1] - strb r0, [r1, 0x4] - movs r0, 0x4 - bl sub_80310E4 - b _08031366 - .align 2, 0 -_0803135C: .4byte gUnknown_203B328 -_08031360: - movs r0, 0x6 - bl sub_80310E4 -_08031366: - pop {r0} - bx r0 - thumb_func_end sub_8031300 - - thumb_func_start sub_803136C -sub_803136C: - push {r4,lr} - sub sp, 0x4 - movs r0, 0 - str r0, [sp] - bl sub_8030768 - ldr r4, _080313A4 - ldr r0, [r4] - adds r0, 0x8 - bl sub_8012FD8 - lsls r0, 24 - cmp r0, 0 - bne _08031392 - ldr r0, [r4] - adds r0, 0x8 - mov r1, sp - bl sub_8013114 -_08031392: - ldr r0, [sp] - cmp r0, 0x4 - beq _080313C2 - cmp r0, 0x4 - bgt _080313A8 - cmp r0, 0x1 - beq _080313B2 - b _080313D0 - .align 2, 0 -_080313A4: .4byte gUnknown_203B328 -_080313A8: - cmp r0, 0x5 - beq _080313CA - cmp r0, 0x6 - beq _080313BA - b _080313D0 -_080313B2: - movs r0, 0 - bl sub_80310E4 - b _080313D0 -_080313BA: - movs r0, 0x3 - bl sub_80310E4 - b _080313D0 -_080313C2: - movs r0, 0x2 - bl sub_80310E4 - b _080313D0 -_080313CA: - movs r0, 0x4 - bl sub_80310E4 -_080313D0: - add sp, 0x4 - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_803136C - - thumb_func_start sub_80313D8 -sub_80313D8: - push {r4,r5,lr} - sub sp, 0x4 - adds r5, r0, 0 - movs r0, 0 - str r0, [sp] - bl sub_8030768 - ldr r4, _08031418 - ldr r0, [r4] - adds r0, 0x8 - bl sub_8012FD8 - ldr r0, [r4] - adds r0, 0x58 - bl sub_8012FD8 - lsls r0, 24 - cmp r0, 0 - bne _08031408 - ldr r0, [r4] - adds r0, 0x58 - mov r1, sp - bl sub_8013114 -_08031408: - ldr r0, [sp] - cmp r0, 0x2 - beq _08031428 - cmp r0, 0x2 - bgt _0803141C - cmp r0, 0x1 - beq _08031420 - b _0803148E - .align 2, 0 -_08031418: .4byte gUnknown_203B328 -_0803141C: - cmp r0, 0x3 - bne _0803148E -_08031420: - movs r0, 0 - bl sub_80310E4 - b _0803148E -_08031428: - cmp r5, 0x2 - beq _08031432 - cmp r5, 0x3 - beq _0803143C - b _0803145A -_08031432: - ldr r0, [r4] - ldrb r0, [r0, 0x4] - bl sub_8095240 - b _0803145A -_0803143C: - ldr r4, _08031480 - movs r3, 0 - movs r1, 0 - movs r2, 0x1F -_08031444: - ldr r0, [r4] - adds r0, r1 - strb r3, [r0] - ldr r0, [r4] - adds r0, r1 - adds r0, 0x22 - strb r3, [r0] - adds r1, 0x30 - subs r2, 0x1 - cmp r2, 0 - bge _08031444 -_0803145A: - ldr r0, _08031484 - ldr r0, [r0] - movs r1, 0x8C - lsls r1, 1 - adds r0, r1 - ldr r0, [r0] - cmp r0, 0x2 - beq _0803146E - cmp r0, 0x4 - bne _0803148E -_0803146E: - bl sub_8030C20 - lsls r0, 24 - cmp r0, 0 - beq _08031488 - movs r0, 0x5 - bl sub_80310E4 - b _0803148E - .align 2, 0 -_08031480: .4byte gUnknown_203B480 -_08031484: .4byte gUnknown_203B328 -_08031488: - movs r0, 0 - bl sub_80310E4 -_0803148E: - add sp, 0x4 - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_80313D8 - - thumb_func_start sub_8031498 -sub_8031498: - push {lr} - bl sub_8030DA0 - cmp r0, 0x1 - bls _080314B0 - cmp r0, 0x3 - bhi _080314B0 - bl sub_8030DE4 - movs r0, 0 - bl sub_80310E4 -_080314B0: - pop {r0} - bx r0 - thumb_func_end sub_8031498 - - thumb_func_start sub_80314B4 -sub_80314B4: - push {r4-r6,lr} - lsls r0, 16 - asrs r5, r0, 16 - bl ResetUnusedInputStruct - movs r0, 0 - movs r1, 0x1 - movs r2, 0x1 - bl sub_800641C - ldr r6, _08031534 - movs r0, 0x18 - movs r1, 0x8 - bl MemoryAlloc - str r0, [r6] - ldr r0, _08031538 - adds r1, r5, 0 - bl sub_808D8E0 - adds r0, r5, 0 - bl GetMonSpecies - adds r1, r0, 0 - ldr r0, _0803153C - bl strcpy - ldr r0, [r6] - movs r4, 0 - str r4, [r0, 0x8] - str r4, [r0, 0xC] - cmp r5, 0 - beq _0803151E - adds r0, r5, 0 - bl GetDialogueSpriteDataPtr - ldr r1, [r6] - str r0, [r1, 0x8] - strb r4, [r1, 0x14] - ldr r0, [r6] - strb r4, [r0, 0x15] - ldr r0, [r6] - strb r4, [r0, 0x16] - ldr r1, [r6] - movs r0, 0x2 - strh r0, [r1, 0x10] - movs r0, 0x8 - strh r0, [r1, 0x12] - ldr r0, [r1, 0x8] - cmp r0, 0 - beq _0803151E - ldr r0, [r0, 0x4] - str r0, [r1, 0xC] -_0803151E: - ldr r0, _08031534 - ldr r1, [r0] - movs r0, 0 - str r0, [r1, 0x4] - movs r0, 0x1 - bl sub_80317C0 - movs r0, 0x1 - pop {r4-r6} - pop {r1} - bx r1 - .align 2, 0 -_08031534: .4byte gUnknown_203B32C -_08031538: .4byte gUnknown_202E5D8 -_0803153C: .4byte gAvailablePokemonNames - thumb_func_end sub_80314B4 - - thumb_func_start sub_8031540 -sub_8031540: - push {lr} - ldr r0, _08031558 - ldr r0, [r0] - ldrb r0, [r0] - cmp r0, 0x9 - bhi _080315BA - lsls r0, 2 - ldr r1, _0803155C - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08031558: .4byte gUnknown_203B32C -_0803155C: .4byte _08031560 - .align 2, 0 -_08031560: - .4byte _080315AC - .4byte _08031588 - .4byte _08031588 - .4byte _0803158E - .4byte _08031594 - .4byte _0803159A - .4byte _080315A0 - .4byte _080315A6 - .4byte _080315B0 - .4byte _080315B6 -_08031588: - bl sub_80317D8 - b _080315BA -_0803158E: - bl sub_8031848 - b _080315BA -_08031594: - bl sub_8031864 - b _080315BA -_0803159A: - bl sub_80318D0 - b _080315BA -_080315A0: - bl sub_80318EC - b _080315BA -_080315A6: - bl sub_803192C - b _080315BA -_080315AC: - movs r0, 0x3 - b _080315BC -_080315B0: - bl sub_8031948 - b _080315BA -_080315B6: - bl sub_8031988 -_080315BA: - movs r0, 0 -_080315BC: - pop {r1} - bx r1 - thumb_func_end sub_8031540 - - thumb_func_start sub_80315C0 -sub_80315C0: - push {r4,lr} - ldr r4, _080315E4 - ldr r0, [r4] - cmp r0, 0 - beq _080315DE - ldr r0, [r0, 0x8] - cmp r0, 0 - beq _080315D4 - bl CloseFile -_080315D4: - ldr r0, [r4] - bl MemoryFree - movs r0, 0 - str r0, [r4] -_080315DE: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080315E4: .4byte gUnknown_203B32C - thumb_func_end sub_80315C0 - - thumb_func_start nullsub_39 -nullsub_39: - bx lr - thumb_func_end nullsub_39 - - thumb_func_start sub_80315EC -sub_80315EC: - push {r4,r5,lr} - sub sp, 0x14 - movs r5, 0 - ldr r0, _08031618 - ldr r2, [r0] - ldr r1, [r2, 0x8] - adds r3, r0, 0 - cmp r1, 0 - beq _08031602 - adds r5, r2, 0 - adds r5, 0x8 -_08031602: - ldrb r0, [r2] - subs r0, 0x1 - cmp r0, 0x8 - bls _0803160C - b _080317B0 -_0803160C: - lsls r0, 2 - ldr r1, _0803161C - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08031618: .4byte gUnknown_203B32C -_0803161C: .4byte _08031620 - .align 2, 0 -_08031620: - .4byte _08031700 - .4byte _08031714 - .4byte _08031728 - .4byte _08031758 - .4byte _08031780 - .4byte _08031694 - .4byte _080316A8 - .4byte _08031644 - .4byte _08031658 -_08031644: - ldr r0, _08031650 - ldr r1, [r3] - ldr r2, [r1, 0x4] - ldr r3, _08031654 - b _08031760 - .align 2, 0 -_08031650: .4byte gUnknown_80E0C4C -_08031654: .4byte gUnknown_80E0BD4 -_08031658: - ldr r0, [r3] - ldr r0, [r0, 0x4] - cmp r0, 0x10 - beq _0803167C - cmp r0, 0x10 - bgt _0803166A - cmp r0, 0xF - beq _08031674 - b _080317B0 -_0803166A: - cmp r0, 0x11 - beq _08031684 - cmp r0, 0x12 - beq _0803168C - b _080317B0 -_08031674: - ldr r0, _08031678 - b _08031790 - .align 2, 0 -_08031678: .4byte gUnknown_80E0C70 -_0803167C: - ldr r0, _08031680 - b _08031790 - .align 2, 0 -_08031680: .4byte gUnknown_80E0DD0 -_08031684: - ldr r0, _08031688 - b _08031790 - .align 2, 0 -_08031688: .4byte gUnknown_80E0ED8 -_0803168C: - ldr r0, _08031690 - b _08031790 - .align 2, 0 -_08031690: .4byte gUnknown_80E10C8 -_08031694: - ldr r0, _080316A0 - ldr r1, [r3] - ldr r2, [r1, 0x4] - ldr r3, _080316A4 - b _08031760 - .align 2, 0 -_080316A0: .4byte gUnknown_80E0C4C -_080316A4: .4byte gUnknown_80E0B3C -_080316A8: - ldr r0, [r3] - ldr r0, [r0, 0x4] - subs r0, 0xA - cmp r0, 0x4 - bls _080316B4 - b _080317B0 -_080316B4: - lsls r0, 2 - ldr r1, _080316C0 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080316C0: .4byte _080316C4 - .align 2, 0 -_080316C4: - .4byte _080316D8 - .4byte _080316E0 - .4byte _080316F0 - .4byte _080316E8 - .4byte _080316F8 -_080316D8: - ldr r0, _080316DC - b _08031790 - .align 2, 0 -_080316DC: .4byte gUnknown_80E120C -_080316E0: - ldr r0, _080316E4 - b _08031790 - .align 2, 0 -_080316E4: .4byte gUnknown_80E136C -_080316E8: - ldr r0, _080316EC - b _08031790 - .align 2, 0 -_080316EC: .4byte gUnknown_80E1420 -_080316F0: - ldr r0, _080316F4 - b _08031790 - .align 2, 0 -_080316F4: .4byte gUnknown_80E157C -_080316F8: - ldr r0, _080316FC - b _08031790 - .align 2, 0 -_080316FC: .4byte gUnknown_80E169C -_08031700: - ldr r0, _0803170C - ldr r1, [r3] - ldr r2, [r1, 0x4] - ldr r3, _08031710 - b _08031760 - .align 2, 0 -_0803170C: .4byte gUnknown_80E17C8 -_08031710: .4byte gUnknown_80E0A48 -_08031714: - ldr r0, _08031720 - ldr r1, [r3] - ldr r2, [r1, 0x4] - ldr r3, _08031724 - b _08031760 - .align 2, 0 -_08031720: .4byte gUnknown_80E183C -_08031724: .4byte gUnknown_80E0A48 -_08031728: - ldr r0, [r3] - ldr r0, [r0, 0x4] - cmp r0, 0x1 - beq _08031748 - cmp r0, 0x1 - bgt _0803173A - cmp r0, 0 - beq _08031740 - b _080317B0 -_0803173A: - cmp r0, 0x2 - beq _08031750 - b _080317B0 -_08031740: - ldr r0, _08031744 - b _08031790 - .align 2, 0 -_08031744: .4byte gUnknown_80E1868 -_08031748: - ldr r0, _0803174C - b _08031790 - .align 2, 0 -_0803174C: .4byte gUnknown_80E1A30 -_08031750: - ldr r0, _08031754 - b _08031790 - .align 2, 0 -_08031754: .4byte gUnknown_80E1AD8 -_08031758: - ldr r0, _08031778 - ldr r1, [r3] - ldr r2, [r1, 0x4] - ldr r3, _0803177C -_08031760: - movs r4, 0 - str r4, [sp] movs r1, 0x4 str r1, [sp, 0x4] - str r4, [sp, 0x8] - str r5, [sp, 0xC] + str r2, [sp, 0x8] + ldr r1, [r6] + movs r2, 0x84 + lsls r2, 3 + adds r1, r2 + str r1, [sp, 0xC] movs r1, 0xC str r1, [sp, 0x10] movs r1, 0 - bl sub_8014248 - b _080317B0 - .align 2, 0 -_08031778: .4byte gUnknown_80E0C4C -_0803177C: .4byte gUnknown_80E0ABC -_08031780: - ldr r0, [r3] - ldr r0, [r0, 0x4] - cmp r0, 0x6 - beq _0803178E - cmp r0, 0x9 - beq _080317A4 - b _080317B0 -_0803178E: - ldr r0, _0803179C -_08031790: - ldr r3, _080317A0 - movs r1, 0 - adds r2, r5, 0 - bl sub_80141B4 - b _080317B0 - .align 2, 0 -_0803179C: .4byte gUnknown_80E1B88 -_080317A0: .4byte 0x0000010d -_080317A4: - ldr r0, _080317B8 - ldr r3, _080317BC - movs r1, 0 - adds r2, r5, 0 - bl sub_80141B4 -_080317B0: - add sp, 0x14 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080317B8: .4byte gUnknown_80E1D84 -_080317BC: .4byte 0x0000010d - thumb_func_end sub_80315EC - - thumb_func_start sub_80317C0 -sub_80317C0: - push {lr} - ldr r1, _080317D4 - ldr r1, [r1] - strb r0, [r1] - bl nullsub_39 - bl sub_80315EC - pop {r0} - bx r0 - .align 2, 0 -_080317D4: .4byte gUnknown_203B32C - thumb_func_end sub_80317C0 - - thumb_func_start sub_80317D8 -sub_80317D8: - push {lr} - sub sp, 0x4 - mov r0, sp - bl sub_80144A4 - cmp r0, 0 - bne _0803183C - ldr r2, [sp] - cmp r2, 0x5 - bhi _0803183C - lsls r0, r2, 2 - ldr r1, _080317F8 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080317F8: .4byte _080317FC - .align 2, 0 -_080317FC: - .4byte _08031830 - .4byte _08031830 - .4byte _08031830 - .4byte _0803181C - .4byte _08031814 - .4byte _08031814 -_08031814: - movs r0, 0 - bl sub_80317C0 - b _0803183C -_0803181C: - ldr r0, _0803182C - ldr r0, [r0] - str r2, [r0, 0x4] - movs r0, 0x4 - bl sub_80317C0 - b _0803183C - .align 2, 0 -_0803182C: .4byte gUnknown_203B32C -_08031830: - ldr r0, _08031844 - ldr r0, [r0] - str r2, [r0, 0x4] - movs r0, 0x3 - bl sub_80317C0 -_0803183C: - add sp, 0x4 - pop {r0} - bx r0 - .align 2, 0 -_08031844: .4byte gUnknown_203B32C - thumb_func_end sub_80317D8 - - thumb_func_start sub_8031848 -sub_8031848: - push {lr} - sub sp, 0x4 - mov r0, sp - bl sub_80144A4 - cmp r0, 0 - bne _0803185C - movs r0, 0x2 - bl sub_80317C0 -_0803185C: - add sp, 0x4 - pop {r0} - bx r0 - thumb_func_end sub_8031848 - - thumb_func_start sub_8031864 -sub_8031864: - push {lr} - sub sp, 0x4 - mov r0, sp - bl sub_80144A4 - cmp r0, 0 - bne _080318C4 - ldr r0, [sp] - subs r1, r0, 0x5 - adds r2, r0, 0 - cmp r1, 0x4 - bhi _080318C4 - lsls r0, r1, 2 - ldr r1, _08031888 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08031888: .4byte _0803188C - .align 2, 0 -_0803188C: - .4byte _080318A0 - .4byte _080318B8 - .4byte _080318A8 - .4byte _080318B0 - .4byte _080318B8 -_080318A0: - movs r0, 0x2 - bl sub_80317C0 - b _080318C4 -_080318A8: - movs r0, 0x6 - bl sub_80317C0 - b _080318C4 -_080318B0: - movs r0, 0x8 - bl sub_80317C0 - b _080318C4 -_080318B8: - ldr r0, _080318CC - ldr r0, [r0] - str r2, [r0, 0x4] - movs r0, 0x5 - bl sub_80317C0 -_080318C4: - add sp, 0x4 - pop {r0} - bx r0 - .align 2, 0 -_080318CC: .4byte gUnknown_203B32C - thumb_func_end sub_8031864 - - thumb_func_start sub_80318D0 -sub_80318D0: - push {lr} - sub sp, 0x4 - mov r0, sp - bl sub_80144A4 - cmp r0, 0 - bne _080318E4 - movs r0, 0x4 - bl sub_80317C0 -_080318E4: - add sp, 0x4 - pop {r0} - bx r0 - thumb_func_end sub_80318D0 - - thumb_func_start sub_80318EC -sub_80318EC: - push {lr} - sub sp, 0x4 - mov r0, sp - bl sub_80144A4 - cmp r0, 0 - bne _08031920 - ldr r1, [sp] - cmp r1, 0x5 - bne _08031908 - movs r0, 0x4 - bl sub_80317C0 - b _08031920 -_08031908: - cmp r1, 0x5 - blt _08031920 - cmp r1, 0xE - bgt _08031920 - cmp r1, 0xA - blt _08031920 - ldr r0, _08031928 - ldr r0, [r0] - str r1, [r0, 0x4] - movs r0, 0x7 - bl sub_80317C0 -_08031920: - add sp, 0x4 - pop {r0} - bx r0 - .align 2, 0 -_08031928: .4byte gUnknown_203B32C - thumb_func_end sub_80318EC - - thumb_func_start sub_803192C -sub_803192C: - push {lr} - sub sp, 0x4 - mov r0, sp - bl sub_80144A4 - cmp r0, 0 - bne _08031940 - movs r0, 0x6 - bl sub_80317C0 -_08031940: - add sp, 0x4 - pop {r0} - bx r0 - thumb_func_end sub_803192C - - thumb_func_start sub_8031948 -sub_8031948: - push {lr} - sub sp, 0x4 - mov r0, sp - bl sub_80144A4 - cmp r0, 0 - bne _0803197C - ldr r1, [sp] - cmp r1, 0x5 - bne _08031964 - movs r0, 0x4 - bl sub_80317C0 - b _0803197C -_08031964: - cmp r1, 0x5 - blt _0803197C - cmp r1, 0x12 - bgt _0803197C - cmp r1, 0xF - blt _0803197C - ldr r0, _08031984 - ldr r0, [r0] - str r1, [r0, 0x4] - movs r0, 0x9 - bl sub_80317C0 -_0803197C: - add sp, 0x4 - pop {r0} - bx r0 - .align 2, 0 -_08031984: .4byte gUnknown_203B32C - thumb_func_end sub_8031948 - - thumb_func_start sub_8031988 -sub_8031988: - push {lr} - sub sp, 0x4 - mov r0, sp - bl sub_80144A4 - cmp r0, 0 - bne _0803199C - movs r0, 0x8 - bl sub_80317C0 -_0803199C: - add sp, 0x4 - pop {r0} - bx r0 - thumb_func_end sub_8031988 - - thumb_func_start sub_80319A4 -sub_80319A4: - push {r4-r6,lr} - mov r6, r8 - push {r6} - adds r4, r0, 0 - adds r5, r1, 0 - mov r8, r2 - lsls r4, 24 - lsrs r4, 24 - lsls r5, 24 - lsrs r5, 24 - ldr r6, _080319F4 - movs r0, 0x78 - movs r1, 0x8 - bl MemoryAlloc - str r0, [r6] - strb r4, [r0, 0xC] - ldr r0, [r6] - strb r5, [r0, 0xD] - ldr r0, [r6] - bl sub_801317C - ldr r1, [r6] - mov r0, r8 - str r0, [r1, 0x10] - lsls r0, 1 - add r0, r8 - lsls r0, 3 - adds r0, 0x18 - adds r0, r1, r0 - str r0, [r1, 0x14] - bl sub_8031A2C - movs r0, 0x1 - pop {r3} - mov r8, r3 - pop {r4-r6} - pop {r1} - bx r1 - .align 2, 0 -_080319F4: .4byte gUnknown_203B330 - thumb_func_end sub_80319A4 - - thumb_func_start sub_80319F8 -sub_80319F8: - push {lr} - ldr r0, _08031A18 - ldr r0, [r0] - ldr r1, [r0, 0x10] - bl sub_8012A64 - cmp r0, 0x1 - beq _08031A1C - cmp r0, 0x2 - bne _08031A26 - movs r0, 0x1 - bl PlayMenuSoundEffect - movs r0, 0x2 - b _08031A28 - .align 2, 0 -_08031A18: .4byte gUnknown_203B330 -_08031A1C: - movs r0, 0 - bl PlayMenuSoundEffect - movs r0, 0x3 - b _08031A28 -_08031A26: - movs r0, 0 -_08031A28: - pop {r1} - bx r1 - thumb_func_end sub_80319F8 - - thumb_func_start sub_8031A2C -sub_8031A2C: - push {lr} - bl sub_8031A84 - bl sub_8031AE8 - pop {r0} - bx r0 - thumb_func_end sub_8031A2C - - thumb_func_start sub_8031A3C -sub_8031A3C: - push {r4,r5,lr} - ldr r4, _08031A7C - ldr r2, [r4] - cmp r2, 0 - beq _08031A76 - ldr r0, [r2, 0x10] - lsls r1, r0, 1 - adds r1, r0 - lsls r1, 3 - adds r1, r2, r1 - adds r1, 0x18 - ldr r0, _08031A80 - ldm r0!, {r2,r3,r5} - stm r1!, {r2,r3,r5} - ldm r0!, {r2,r3,r5} - stm r1!, {r2,r3,r5} - bl ResetUnusedInputStruct - ldr r0, [r4] - adds r0, 0x18 - movs r1, 0x1 - movs r2, 0x1 - bl sub_800641C - ldr r0, [r4] - bl MemoryFree - movs r0, 0 - str r0, [r4] -_08031A76: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_08031A7C: .4byte gUnknown_203B330 -_08031A80: .4byte gUnknown_80E1EFC - thumb_func_end sub_8031A3C - - thumb_func_start sub_8031A84 -sub_8031A84: - push {r4,r5,lr} - ldr r4, _08031AE0 - ldr r0, [r4] - adds r0, 0x18 - bl sub_8006518 - ldr r1, [r4] - ldr r2, [r1, 0x10] - lsls r0, r2, 1 - adds r0, r2 - lsls r0, 3 - adds r1, r0 - adds r1, 0x18 - ldr r0, _08031AE4 - ldm r0!, {r2,r3,r5} - stm r1!, {r2,r3,r5} - ldm r0!, {r2,r3,r5} - stm r1!, {r2,r3,r5} - ldr r1, [r4] - ldrb r0, [r1, 0xC] - cmp r0, 0x2 - bne _08031AC6 - ldrb r0, [r1, 0xD] - bl sub_80969D0 - adds r1, r0, 0 - cmp r1, 0 - bne _08031ABE - movs r1, 0x1 -_08031ABE: - ldr r0, [r4] - ldr r0, [r0, 0x14] - bl sub_8012D08 -_08031AC6: - bl ResetUnusedInputStruct - ldr r0, _08031AE0 - ldr r0, [r0] - adds r0, 0x18 - movs r1, 0x1 - movs r2, 0x1 - bl sub_800641C - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_08031AE0: .4byte gUnknown_203B330 -_08031AE4: .4byte gUnknown_80E1F18 - thumb_func_end sub_8031A84 - - thumb_func_start sub_8031AE8 -sub_8031AE8: - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0xDC - ldr r7, _08031B24 - ldr r0, [r7] - ldr r0, [r0, 0x10] - bl sub_80073B8 - ldr r2, _08031B28 - ldr r0, [r7] - ldr r3, [r0, 0x10] - movs r6, 0 - str r6, [sp] - movs r0, 0xA - movs r1, 0 - bl xxx_call_draw_string - ldr r1, [r7] - ldrb r0, [r1, 0xC] - cmp r0, 0x1 - beq _08031B2C - cmp r0, 0x1 - bgt _08031B1E - b _08031CD4 -_08031B1E: - cmp r0, 0x2 - beq _08031B94 - b _08031CD4 - .align 2, 0 -_08031B24: .4byte gUnknown_203B330 -_08031B28: .4byte gUnknown_80E1F30 -_08031B2C: - add r4, sp, 0x68 - adds r0, r4, 0 - bl sub_8099394 - ldrb r0, [r4] - bl sub_8095228 - adds r5, r0, 0 - ldr r0, [r7] - ldr r3, [r0, 0x10] - movs r0, 0xA - movs r1, 0x10 - movs r2, 0x3 - bl sub_803B6B0 - ldr r1, _08031B8C - ldrb r2, [r5, 0x5] - add r0, sp, 0x4 - bl sub_800D158 - ldr r0, [r7] - ldr r3, [r0, 0x10] - str r6, [sp] - movs r0, 0x15 - movs r1, 0x10 - add r2, sp, 0x4 - bl xxx_call_draw_string - ldr r4, _08031B90 - movs r1, 0xC - ldrsh r0, [r5, r1] - bl GetMonSpecies - adds r2, r0, 0 - add r0, sp, 0x4 - adds r1, r4, 0 - bl sub_800D158 - ldr r0, [r7] - ldr r3, [r0, 0x10] - str r6, [sp] - movs r0, 0x28 - movs r1, 0x10 - add r2, sp, 0x4 - bl xxx_call_draw_string - b _08031D4E - .align 2, 0 -_08031B8C: .4byte gUnknown_80E1F3C -_08031B90: .4byte gUnknown_80E1F40 -_08031B94: - ldrb r0, [r1, 0xD] - bl sub_80969D0 - adds r1, r0, 0 - cmp r1, 0 - bne _08031BB0 - ldr r2, _08031BAC - ldr r0, [r7] - ldr r3, [r0, 0x10] - str r1, [sp] - b _08031D2C - .align 2, 0 -_08031BAC: .4byte gUnknown_80E1F54 -_08031BB0: - movs r6, 0x10 - movs r2, 0 - mov r10, r2 - mov r8, r2 - ldr r0, _08031C28 - mov r9, r0 - mov r1, sp - adds r1, 0x6C - str r1, [sp, 0xD8] -_08031BC2: - mov r2, r10 - lsls r0, r2, 24 - lsrs r0, 24 - bl sub_8096AB4 - adds r4, r0, 0 - ldr r1, [r7] - ldrb r0, [r4, 0x4] - ldrb r2, [r1, 0xD] - cmp r0, r2 - bne _08031CC2 - ldrb r0, [r4] - cmp r0, 0 - beq _08031CC2 - cmp r0, 0x5 - beq _08031CC2 - cmp r0, 0x7 - beq _08031CC2 - ldr r3, [r1, 0x10] - movs r0, 0xA - adds r1, r6, 0 - movs r2, 0x3 - bl sub_803B6B0 - ldrb r0, [r4, 0x1] - add r5, sp, 0x6C - cmp r0, 0x3 - beq _08031C16 - ldrb r2, [r4, 0x5] - ldr r0, [sp, 0xD8] - ldr r1, _08031C2C - bl sub_800D158 - ldr r0, [r7] - ldr r3, [r0, 0x10] - mov r0, r8 - str r0, [sp] - movs r0, 0x15 - adds r1, r6, 0 - ldr r2, [sp, 0xD8] - bl xxx_call_draw_string -_08031C16: - ldrb r0, [r4, 0x1] - cmp r0, 0x3 - beq _08031C58 - cmp r0, 0x3 - bgt _08031C30 - cmp r0, 0x2 - beq _08031C70 - b _08031C9C - .align 2, 0 -_08031C28: .4byte gUnknown_202DE58 -_08031C2C: .4byte gUnknown_80E1F3C -_08031C30: - cmp r0, 0x4 - bne _08031C9C - ldrb r1, [r4, 0x10] - mov r0, r9 movs r2, 0 - bl sub_8090DC4 - adds r0, r5, 0 - ldr r1, _08031C54 - mov r2, r9 - bl sub_800D158 - ldr r0, [r7] - ldr r3, [r0, 0x10] - mov r1, r8 - str r1, [sp] - b _08031C8A + bl sub_8014248 + b _08028AF2 .align 2, 0 -_08031C54: .4byte gUnknown_80E1F60 -_08031C58: - ldrb r1, [r4, 0x10] - mov r0, r9 +_08028AAC: .4byte gUnknown_80DE8B4 +_08028AB0: .4byte gUnknown_80DD970 +_08028AB4: + ldr r0, _08028AD8 + ldr r3, _08028ADC movs r2, 0 - bl sub_8090DC4 - adds r0, r5, 0 - ldr r1, _08031C6C - mov r2, r9 - b _08031C7E - .align 2, 0 -_08031C6C: .4byte gUnknown_80E1F70 -_08031C70: - movs r1, 0xE - ldrsh r0, [r4, r1] - bl GetMonSpecies - adds r2, r0, 0 - adds r0, r5, 0 - ldr r1, _08031C98 -_08031C7E: - bl sub_800D158 - ldr r0, [r7] - ldr r3, [r0, 0x10] - mov r2, r8 - str r2, [sp] -_08031C8A: - movs r0, 0x28 - adds r1, r6, 0 - adds r2, r5, 0 - bl xxx_call_draw_string - b _08031CC0 - .align 2, 0 -_08031C98: .4byte gUnknown_80E1F80 -_08031C9C: - movs r1, 0xE - ldrsh r0, [r4, r1] - bl GetMonSpecies - adds r2, r0, 0 - adds r0, r5, 0 - ldr r1, _08031CD0 - bl sub_800D158 - ldr r0, [r7] - ldr r3, [r0, 0x10] - mov r2, r8 str r2, [sp] - movs r0, 0x28 - adds r1, r6, 0 - adds r2, r5, 0 - bl xxx_call_draw_string -_08031CC0: - adds r6, 0xC -_08031CC2: - movs r0, 0x1 - add r10, r0 - mov r1, r10 - cmp r1, 0x7 - bgt _08031CCE - b _08031BC2 -_08031CCE: - b _08031D4E - .align 2, 0 -_08031CD0: .4byte gUnknown_80E1F40 -_08031CD4: - add r0, sp, 0xD0 - mov r4, sp - adds r4, 0xD2 - adds r1, r4, 0 - bl sub_80992E0 - lsls r0, 24 - lsrs r5, r0, 24 - cmp r5, 0 - beq _08031D04 - movs r2, 0 - ldrsh r0, [r4, r2] - bl GetCurrentMissionText - adds r2, r0, 0 - ldr r0, _08031D00 - ldr r0, [r0] - ldr r3, [r0, 0x10] - movs r0, 0 - str r0, [sp] - b _08031D2C - .align 2, 0 -_08031D00: .4byte gUnknown_203B330 -_08031D04: - add r4, sp, 0xD4 - adds r0, r4, 0 - bl sub_8099360 - lsls r0, 24 - lsrs r1, r0, 24 - cmp r1, 0 - beq _08031D3C - ldrb r0, [r4] - bl sub_80A2688 - lsls r0, 16 - asrs r0, 16 - bl sub_80975DC - adds r2, r0, 0 - ldr r0, _08031D38 - ldr r0, [r0] - ldr r3, [r0, 0x10] - str r5, [sp] -_08031D2C: - movs r0, 0xA - movs r1, 0x10 - bl xxx_call_draw_string - b _08031D4E - .align 2, 0 -_08031D38: .4byte gUnknown_203B330 -_08031D3C: - ldr r2, _08031D68 - ldr r0, _08031D6C - ldr r0, [r0] - ldr r3, [r0, 0x10] - str r1, [sp] - movs r0, 0xA - movs r1, 0x10 - bl xxx_call_draw_string -_08031D4E: - ldr r0, _08031D6C - ldr r0, [r0] - ldr r0, [r0, 0x10] - bl sub_80073E0 - add sp, 0xDC - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08031D68: .4byte gUnknown_80E1F94 -_08031D6C: .4byte gUnknown_203B330 - thumb_func_end sub_8031AE8 - - thumb_func_start sub_8031D70 -sub_8031D70: - push {r4-r6,lr} - adds r6, r0, 0 - adds r4, r1, 0 - ldr r5, _08031DC4 - movs r0, 0x7C - movs r1, 0x8 - bl MemoryAlloc - str r0, [r5] - stm r0!, {r6} - bl sub_801317C - ldr r0, [r5] - str r4, [r0, 0x10] - lsls r1, r4, 1 + movs r1, 0x4 + str r1, [sp, 0x4] + str r2, [sp, 0x8] + ldr r1, [r6] + movs r4, 0x84 + lsls r4, 3 adds r1, r4 - lsls r1, 3 - adds r1, 0x18 - adds r1, r0, r1 - str r1, [r0, 0x14] - adds r0, 0x18 - bl sub_8006518 - ldr r1, [r5] - ldr r2, [r1, 0x10] - lsls r0, r2, 1 - adds r0, r2 - lsls r0, 3 - adds r1, r0 - adds r1, 0x18 - ldr r0, _08031DC8 - ldm r0!, {r2-r4} - stm r1!, {r2-r4} - ldm r0!, {r2-r4} - stm r1!, {r2-r4} - bl sub_8031E00 - movs r0, 0x1 - pop {r4-r6} - pop {r1} - bx r1 - .align 2, 0 -_08031DC4: .4byte gUnknown_203B334 -_08031DC8: .4byte gUnknown_80E1FC4 - thumb_func_end sub_8031D70 - - thumb_func_start sub_8031DCC -sub_8031DCC: - push {lr} - ldr r0, _08031DEC - ldr r1, [r0] - adds r0, r1, 0x4 - ldr r1, [r1, 0x10] - bl sub_8012A64 - cmp r0, 0x1 - beq _08031DF0 - cmp r0, 0x2 - bne _08031DFA - movs r0, 0x1 - bl PlayMenuSoundEffect - movs r0, 0x2 - b _08031DFC - .align 2, 0 -_08031DEC: .4byte gUnknown_203B334 -_08031DF0: - movs r0, 0 - bl PlayMenuSoundEffect - movs r0, 0x3 - b _08031DFC -_08031DFA: - movs r0, 0 -_08031DFC: - pop {r1} - bx r1 - thumb_func_end sub_8031DCC - - thumb_func_start sub_8031E00 -sub_8031E00: - push {lr} - bl sub_8031E58 - bl sub_8031E74 - pop {r0} - bx r0 - thumb_func_end sub_8031E00 - - thumb_func_start sub_8031E10 -sub_8031E10: - push {r4,r5,lr} - ldr r4, _08031E50 - ldr r2, [r4] - cmp r2, 0 - beq _08031E4A - ldr r0, [r2, 0x10] - lsls r1, r0, 1 - adds r1, r0 - lsls r1, 3 - adds r1, r2, r1 - adds r1, 0x18 - ldr r0, _08031E54 - ldm r0!, {r2,r3,r5} - stm r1!, {r2,r3,r5} - ldm r0!, {r2,r3,r5} - stm r1!, {r2,r3,r5} - bl ResetUnusedInputStruct - ldr r0, [r4] - adds r0, 0x18 - movs r1, 0x1 - movs r2, 0x1 - bl sub_800641C - ldr r0, [r4] - bl MemoryFree - movs r0, 0 - str r0, [r4] -_08031E4A: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_08031E50: .4byte gUnknown_203B334 -_08031E54: .4byte gUnknown_80E1FA8 - thumb_func_end sub_8031E10 - - thumb_func_start sub_8031E58 -sub_8031E58: - push {lr} - bl ResetUnusedInputStruct - ldr r0, _08031E70 - ldr r0, [r0] - adds r0, 0x18 - movs r1, 0x1 - movs r2, 0x1 - bl sub_800641C - pop {r0} - bx r0 - .align 2, 0 -_08031E70: .4byte gUnknown_203B334 - thumb_func_end sub_8031E58 - - thumb_func_start sub_8031E74 -sub_8031E74: - push {r4-r7,lr} - mov r7, r8 - push {r7} - sub sp, 0x3C - ldr r3, _08031EC0 - ldr r5, _08031EC4 - ldr r2, [r5] - ldr r1, [r2] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 4 - ldr r4, [r3] - adds r4, r0 - ldr r0, [r2, 0x10] - bl sub_80073B8 - ldr r2, _08031EC8 - ldr r0, [r5] - ldr r3, [r0, 0x10] - movs r0, 0 - str r0, [sp] - movs r0, 0x14 + str r1, [sp, 0xC] + movs r1, 0xC + str r1, [sp, 0x10] movs r1, 0 - bl xxx_call_draw_string - add r0, sp, 0x4 - adds r1, r4, 0 - bl sub_803D2C0 - movs r7, 0 - mov r8, r5 -_08031EB2: - cmp r7, 0x4 - ble _08031ED0 - cmp r7, 0xC - bgt _08031ECC - movs r6, 0x6 - movs r5, 0x16 - b _08031F00 - .align 2, 0 -_08031EC0: .4byte gUnknown_203B480 -_08031EC4: .4byte gUnknown_203B334 -_08031EC8: .4byte gUnknown_80E1FDC -_08031ECC: - cmp r7, 0x11 - bgt _08031ED6 -_08031ED0: - movs r6, 0x7 - movs r5, 0x15 - b _08031F00 -_08031ED6: - cmp r7, 0x16 - ble _08031EE8 - cmp r7, 0x1E - bgt _08031EE4 - movs r6, 0x6 - movs r5, 0x25 - b _08031F00 -_08031EE4: - cmp r7, 0x23 - bgt _08031EEE -_08031EE8: - movs r6, 0x7 - movs r5, 0x24 - b _08031F00 -_08031EEE: - cmp r7, 0x28 - ble _08031EFC - cmp r7, 0x30 - bgt _08031EFC - movs r6, 0x6 - movs r5, 0x34 - b _08031F00 -_08031EFC: - movs r6, 0x7 - movs r5, 0x33 -_08031F00: - adds r0, r7, 0 - movs r1, 0x12 - bl __modsi3 - movs r1, 0xB - adds r4, r0, 0 - muls r4, r1 - adds r4, 0x6 - mov r0, sp - adds r0, r7 - adds r0, 0x4 - ldrb r2, [r0] - mov r1, r8 - ldr r0, [r1] - ldr r0, [r0, 0x10] - str r0, [sp] - adds r0, r4, 0 - adds r1, r5, 0 - adds r3, r6, 0 - bl sub_8012C60 - mov r1, r8 - ldr r0, [r1] - ldr r0, [r0, 0x10] - adds r2, r5, 0 - adds r2, 0xA - movs r1, 0x5 - str r1, [sp] - adds r1, r4, 0 - movs r3, 0xA - bl sub_80078A4 - adds r7, 0x1 - cmp r7, 0x35 - ble _08031EB2 - ldr r0, _08031F5C - ldr r0, [r0] - ldr r0, [r0, 0x10] - bl sub_80073E0 - add sp, 0x3C - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08031F5C: .4byte gUnknown_203B334 - thumb_func_end sub_8031E74 - - thumb_func_start CreateAdventureLogScreen -CreateAdventureLogScreen: - push {r4-r6,lr} - adds r5, r0, 0 - ldr r4, _08031FD0 - movs r0, 0xA0 - movs r1, 0x8 - bl MemoryAlloc - str r0, [r4] - str r5, [r0, 0x34] - lsls r1, r5, 1 - adds r1, r5 - lsls r1, 3 - adds r1, 0x3C - adds r1, r0, r1 - str r1, [r0, 0x38] - adds r0, 0x3C - bl sub_8006518 - ldr r1, [r4] - ldr r2, [r1, 0x34] - lsls r0, r2, 1 - adds r0, r2 - lsls r0, 3 - adds r1, r0 - adds r1, 0x3C - ldr r0, _08031FD4 - ldm r0!, {r2,r3,r6} - stm r1!, {r2,r3,r6} - ldm r0!, {r2,r3,r6} - stm r1!, {r2,r3,r6} - ldr r0, [r4] - ldr r1, [r0, 0x38] - adds r0, 0x9C - str r0, [r1, 0x14] - bl ResetUnusedInputStruct - ldr r0, [r4] - adds r0, 0x3C - movs r1, 0x1 - movs r2, 0x1 - bl sub_800641C - ldr r0, [r4] - movs r1, 0x20 - movs r2, 0x8 - adds r3, r5, 0 - bl sub_8013818 - bl sub_8032084 - bl DisplayAdventureLog - movs r0, 0x1 - pop {r4-r6} - pop {r1} - bx r1 - .align 2, 0 -_08031FD0: .4byte gUnknown_203B338 -_08031FD4: .4byte gUnknown_80E2008 - thumb_func_end CreateAdventureLogScreen - - thumb_func_start HandleAdventureLogInput -HandleAdventureLogInput: - push {r4,lr} - lsls r0, 24 - cmp r0, 0 - bne _08031FF0 - ldr r0, _08031FEC - ldr r0, [r0] - bl sub_8013660 - movs r0, 0 - b _08032034 - .align 2, 0 -_08031FEC: .4byte gUnknown_203B338 -_08031FF0: - ldr r4, _0803200C - ldr r0, [r4] - bl GetKeyPress - cmp r0, 0x1 - beq _08032010 - cmp r0, 0x2 - bne _0803201A - movs r0, 0x1 - bl PlayMenuSoundEffect - movs r0, 0x2 - b _08032034 - .align 2, 0 -_0803200C: .4byte gUnknown_203B338 -_08032010: - movs r0, 0 - bl PlayMenuSoundEffect - movs r0, 0x3 - b _08032034 -_0803201A: - ldr r0, [r4] - bl sub_8013938 - lsls r0, 24 - cmp r0, 0 - bne _0803202A - movs r0, 0 - b _08032034 -_0803202A: - bl sub_8032084 - bl DisplayAdventureLog - movs r0, 0x1 -_08032034: - pop {r4} - pop {r1} - bx r1 - thumb_func_end HandleAdventureLogInput - - thumb_func_start sub_803203C -sub_803203C: - push {r4,r5,lr} - ldr r4, _0803207C - ldr r2, [r4] - cmp r2, 0 - beq _08032076 - ldr r0, [r2, 0x34] - lsls r1, r0, 1 - adds r1, r0 - lsls r1, 3 - adds r1, r2, r1 - adds r1, 0x3C - ldr r0, _08032080 - ldm r0!, {r2,r3,r5} - stm r1!, {r2,r3,r5} - ldm r0!, {r2,r3,r5} - stm r1!, {r2,r3,r5} - bl ResetUnusedInputStruct - ldr r0, [r4] - adds r0, 0x3C - movs r1, 0x1 - movs r2, 0x1 - bl sub_800641C - ldr r0, [r4] - bl MemoryFree - movs r0, 0 - str r0, [r4] -_08032076: - pop {r4,r5} - pop {r0} - bx r0 + bl sub_8014248 + b _08028AF2 .align 2, 0 -_0803207C: .4byte gUnknown_203B338 -_08032080: .4byte gUnknown_80E1FF0 - thumb_func_end sub_803203C - - thumb_func_start sub_8032084 -sub_8032084: - push {r4,lr} - ldr r4, _080320F4 - ldr r0, [r4] - ldrh r1, [r0, 0x20] - adds r0, 0x9C - movs r2, 0 - strb r1, [r0] - ldr r0, [r4] - ldrh r1, [r0, 0x1E] - adds r0, 0x9D - strb r1, [r0] - ldr r0, [r4] - adds r0, 0x9E - movs r1, 0xB - strb r1, [r0] - ldr r0, [r4] - adds r0, 0x9F - strb r2, [r0] - ldr r0, [r4] - movs r1, 0x1A - ldrsh r0, [r0, r1] - movs r1, 0xC - bl sub_80095E4 - adds r0, 0x2 - lsls r0, 16 - ldr r2, [r4] - ldr r3, [r2, 0x34] - lsls r1, r3, 1 - adds r1, r3 +_08028AD8: .4byte gUnknown_80DE918 +_08028ADC: .4byte gUnknown_80DD970 +_08028AE0: + ldr r0, _08028AFC + ldr r2, [r6] + movs r1, 0x84 lsls r1, 3 - adds r1, r2, r1 - adds r1, 0x4A - asrs r3, r0, 16 - lsrs r0, 16 - strh r0, [r1] - ldr r1, [r2, 0x34] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 3 - adds r2, r0 - adds r3, 0x2 - adds r2, 0x4C - strh r3, [r2] - bl ResetUnusedInputStruct - ldr r0, [r4] - adds r0, 0x3C - movs r1, 0x1 - movs r2, 0x1 - bl sub_800641C - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080320F4: .4byte gUnknown_203B338 - thumb_func_end sub_8032084 - - thumb_func_start DisplayAdventureLog -DisplayAdventureLog: - push {r4-r7,lr} - sub sp, 0x8 - ldr r5, _08032158 - ldr r0, [r5] - ldr r0, [r0, 0x34] - bl sub_8008C54 - ldr r0, [r5] - ldr r0, [r0, 0x34] - bl sub_80073B8 - ldr r0, [r5] - movs r1, 0x1E - ldrsh r4, [r0, r1] - lsls r4, 3 - adds r6, r4, 0 - adds r6, 0xA - ldr r2, _0803215C - ldr r3, [r0, 0x34] - movs r0, 0 - str r0, [sp] - adds r0, r6, 0 - movs r1, 0 - bl xxx_call_draw_string - adds r4, 0x4 - ldr r1, [r5] - adds r0, r1, 0 - adds r0, 0x9E - ldrb r0, [r0] - lsls r0, 3 - adds r6, r4, r0 - movs r0, 0x1E - ldrsh r2, [r1, r0] - adds r2, 0x1 - movs r0, 0x7 - str r0, [sp] - ldr r0, [r1, 0x34] - str r0, [sp, 0x4] - adds r0, r6, 0 + adds r2, r1 + ldr r3, _08028B00 movs r1, 0 - movs r3, 0x1 - bl sub_8012BC4 - movs r7, 0 - ldr r0, [r5] - b _0803223A - .align 2, 0 -_08032158: .4byte gUnknown_203B338 -_0803215C: .4byte gUnknown_80E2020 -_08032160: - ldr r5, _08032194 - ldr r0, [r5] - movs r2, 0x1E - ldrsh r1, [r0, r2] - movs r2, 0x1C - ldrsh r0, [r0, r2] - muls r0, r1 - adds r0, r7 - lsls r0, 24 - lsrs r6, r0, 24 - adds r0, r6, 0 - bl sub_8097710 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0 - beq _0803221C - subs r0, r6, 0x7 - cmp r0, 0x5 - bhi _080321EC - lsls r0, 2 - ldr r1, _08032198 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08032194: .4byte gUnknown_203B338 -_08032198: .4byte _0803219C - .align 2, 0 -_0803219C: - .4byte _080321BA - .4byte _080321C6 - .4byte _080321D4 - .4byte _080321E0 - .4byte _080321C0 - .4byte _080321B4 -_080321B4: - bl sub_80978B8 - b _080321E4 -_080321BA: - bl sub_8097880 - b _080321E4 -_080321C0: - bl sub_8097838 - b _080321E4 -_080321C6: - bl sub_80977B8 - ldr r1, _080321D0 - b _080321EA - .align 2, 0 -_080321D0: .4byte gUnknown_202DE30 -_080321D4: - bl sub_80977F8 - ldr r1, _080321DC - b _080321EA - .align 2, 0 -_080321DC: .4byte gUnknown_202DE30 -_080321E0: - bl sub_8097870 -_080321E4: - ldr r1, _08032214 - lsls r0, 16 - asrs r0, 16 -_080321EA: - str r0, [r1] -_080321EC: - ldr r4, _08032218 - ldr r0, [r4] - adds r1, r7, 0 - bl sub_8013800 - adds r5, r0, 0 - adds r0, r6, 0 - bl GetAdventureLogLine - adds r2, r0, 0 - ldr r0, [r4] - ldr r3, [r0, 0x34] - movs r0, 0 - str r0, [sp] - movs r0, 0x8 - adds r1, r5, 0 - bl sub_8014FF0 - b _08032234 - .align 2, 0 -_08032214: .4byte gUnknown_202DE30 -_08032218: .4byte gUnknown_203B338 -_0803221C: - ldr r0, [r5] - adds r1, r7, 0 - bl sub_8013800 - adds r1, r0, 0 - ldr r2, _08032254 - ldr r0, [r5] - ldr r3, [r0, 0x34] - str r4, [sp] - movs r0, 0x8 - bl xxx_call_draw_string -_08032234: - adds r7, 0x1 - ldr r0, _08032258 - ldr r0, [r0] -_0803223A: - movs r1, 0x1A - ldrsh r0, [r0, r1] - cmp r7, r0 - blt _08032160 - ldr r0, _08032258 - ldr r0, [r0] - ldr r0, [r0, 0x34] - bl sub_80073E0 - add sp, 0x8 - pop {r4-r7} + bl sub_80141B4 +_08028AF2: + add sp, 0x14 + pop {r4-r6} pop {r0} bx r0 .align 2, 0 -_08032254: .4byte gUnknown_80E2030 -_08032258: .4byte gUnknown_203B338 - thumb_func_end DisplayAdventureLog +_08028AFC: .4byte gUnknown_80DE93C +_08028B00: .4byte 0x0000010d + thumb_func_end sub_8028348 .align 2,0 diff --git a/asm/wonder_mail_1.s b/asm/wonder_mail_1.s new file mode 100644 index 0000000..e5d1c87 --- /dev/null +++ b/asm/wonder_mail_1.s @@ -0,0 +1,15925 @@ + .include "constants/gba_constants.inc" + .include "asm/macros.inc" + + .syntax unified + + .text + + thumb_func_start sub_802A50C +sub_802A50C: + push {r4,r5,lr} + sub sp, 0x44 + bl sub_80154F0 + adds r4, r0, 0 + add r0, sp, 0x14 + movs r1, 0 + movs r2, 0x30 + bl MemoryFill8 + cmp r4, 0x2 + bne _0802A526 + b _0802A660 +_0802A526: + cmp r4, 0x3 + beq _0802A52C + b _0802A680 +_0802A52C: + ldr r0, _0802A54C + ldr r1, [r0] + adds r1, 0x8 + movs r0, 0x20 + add r2, sp, 0x14 + bl sub_8039068 + subs r0, 0x7 + cmp r0, 0x11 + bls _0802A542 + b _0802A654 +_0802A542: + lsls r0, 2 + ldr r1, _0802A550 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0802A54C: .4byte gUnknown_203B2C4 +_0802A550: .4byte _0802A554 + .align 2, 0 +_0802A554: + .4byte _0802A654 + .4byte _0802A654 + .4byte _0802A654 + .4byte _0802A654 + .4byte _0802A5F0 + .4byte _0802A654 + .4byte _0802A654 + .4byte _0802A654 + .4byte _0802A654 + .4byte _0802A654 + .4byte _0802A59C + .4byte _0802A654 + .4byte _0802A654 + .4byte _0802A5D8 + .4byte _0802A654 + .4byte _0802A654 + .4byte _0802A654 + .4byte _0802A618 +_0802A59C: + ldr r0, _0802A5CC + ldr r3, _0802A5D0 + movs r2, 0 + str r2, [sp] + movs r1, 0x4 + str r1, [sp, 0x4] + str r2, [sp, 0x8] + ldr r1, _0802A5D4 + ldr r1, [r1] + movs r2, 0x84 + lsls r2, 3 + adds r1, r2 + str r1, [sp, 0xC] + movs r1, 0xC + str r1, [sp, 0x10] + movs r1, 0 + movs r2, 0x7 + bl sub_8014248 + movs r0, 0x28 + bl sub_802B2BC + b _0802A654 + .align 2, 0 +_0802A5CC: .4byte gUnknown_80DF1C0 +_0802A5D0: .4byte gUnknown_80DEE44 +_0802A5D4: .4byte gUnknown_203B2C4 +_0802A5D8: + ldr r0, _0802A5E8 + ldr r1, _0802A5EC + ldr r2, [r1] + movs r3, 0x84 + lsls r3, 3 + adds r2, r3 + b _0802A5FC + .align 2, 0 +_0802A5E8: .4byte gUnknown_80DF208 +_0802A5EC: .4byte gUnknown_203B2C4 +_0802A5F0: + ldr r0, _0802A60C + ldr r1, _0802A610 + ldr r2, [r1] + movs r4, 0x84 + lsls r4, 3 + adds r2, r4 +_0802A5FC: + ldr r3, _0802A614 + movs r1, 0 + bl sub_80141B4 + movs r0, 0x1F + bl sub_802B2BC + b _0802A654 + .align 2, 0 +_0802A60C: .4byte gUnknown_80DF0A0 +_0802A610: .4byte gUnknown_203B2C4 +_0802A614: .4byte 0x0000010d +_0802A618: + ldr r1, [sp, 0x24] + movs r0, 0x4 + bl sub_809539C + lsls r0, 24 + lsrs r0, 24 + bl sub_8095228 + adds r2, r0, 0 + add r1, sp, 0x14 + ldm r1!, {r3-r5} + stm r2!, {r3-r5} + ldm r1!, {r3-r5} + stm r2!, {r3-r5} + ldm r1!, {r3-r5} + stm r2!, {r3-r5} + ldm r1!, {r3-r5} + stm r2!, {r3-r5} + movs r1, 0x6 + strb r1, [r0] + ldr r0, _0802A65C + ldr r0, [r0] + movs r5, 0x86 + lsls r5, 3 + adds r0, r5 + ldr r1, [sp, 0x24] + str r1, [r0] + movs r0, 0x21 + bl sub_802B2BC +_0802A654: + bl sub_80155F0 + b _0802A680 + .align 2, 0 +_0802A65C: .4byte gUnknown_203B2C4 +_0802A660: + bl sub_80155F0 + bl ResetUnusedInputStruct + ldr r0, _0802A688 + ldr r0, [r0] + movs r1, 0xEF + lsls r1, 2 + adds r0, r1 + movs r1, 0x1 + movs r2, 0x1 + bl sub_800641C + movs r0, 0x1 + bl sub_802B2BC +_0802A680: + add sp, 0x44 + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_0802A688: .4byte gUnknown_203B2C4 + thumb_func_end sub_802A50C + + thumb_func_start sub_802A68C +sub_802A68C: + push {lr} + sub sp, 0x4 + mov r0, sp + bl sub_80144A4 + cmp r0, 0 + bne _0802A6AE + bl sub_8012600 + lsls r0, 24 + cmp r0, 0 + bne _0802A6AE + bl sub_8012750 + movs r0, 0xD + bl sub_802B2BC +_0802A6AE: + add sp, 0x4 + pop {r0} + bx r0 + thumb_func_end sub_802A68C + + thumb_func_start sub_802A6B4 +sub_802A6B4: + push {r4,lr} + sub sp, 0x4 + mov r0, sp + bl sub_80144A4 + cmp r0, 0 + bne _0802A6E8 + bl sub_8012600 + lsls r0, 24 + cmp r0, 0 + bne _0802A6E8 + bl sub_8012744 + adds r4, r0, 0 + bl sub_8012750 + cmp r4, 0 + bne _0802A6E2 + movs r0, 0x20 + bl sub_802B2BC + b _0802A6E8 +_0802A6E2: + movs r0, 0x3 + bl sub_802B2BC +_0802A6E8: + add sp, 0x4 + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_802A6B4 + + thumb_func_start sub_802A6F0 +sub_802A6F0: + push {lr} + sub sp, 0x4 + mov r0, sp + bl sub_80144A4 + cmp r0, 0 + bne _0802A710 + movs r0, 0x18 + bl sub_802B2BC + movs r0, 0x1 + bl sub_8011C28 + movs r0, 0 + bl sub_8012574 +_0802A710: + add sp, 0x4 + pop {r0} + bx r0 + thumb_func_end sub_802A6F0 + + thumb_func_start sub_802A718 +sub_802A718: + push {lr} + sub sp, 0x4 + mov r0, sp + bl sub_80144A4 + cmp r0, 0 + bne _0802A738 + movs r0, 0x25 + bl sub_802B2BC + movs r0, 0x1 + bl sub_8011C28 + movs r0, 0 + bl sub_8012574 +_0802A738: + add sp, 0x4 + pop {r0} + bx r0 + thumb_func_end sub_802A718 + + thumb_func_start sub_802A740 +sub_802A740: + push {lr} + sub sp, 0x4 + mov r0, sp + bl sub_80144A4 + cmp r0, 0 + bne _0802A754 + movs r0, 0x1E + bl sub_802B2BC +_0802A754: + add sp, 0x4 + pop {r0} + bx r0 + thumb_func_end sub_802A740 + + thumb_func_start sub_802A75C +sub_802A75C: + push {lr} + sub sp, 0x4 + mov r0, sp + bl sub_80144A4 + cmp r0, 0 + bne _0802A792 + ldr r0, [sp] + cmp r0, 0 + beq _0802A78C + cmp r0, 0x7 + bne _0802A792 + ldr r0, _0802A788 + ldr r0, [r0] + movs r1, 0xA7 + lsls r1, 3 + adds r0, r1 + ldr r0, [r0] + movs r0, 0x16 + bl sub_802B2BC + b _0802A792 + .align 2, 0 +_0802A788: .4byte gUnknown_203B2C4 +_0802A78C: + movs r0, 0x1 + bl sub_802B2BC +_0802A792: + add sp, 0x4 + pop {r0} + bx r0 + thumb_func_end sub_802A75C + + thumb_func_start sub_802A798 +sub_802A798: + push {r4,r5,lr} + sub sp, 0x4 + mov r0, sp + bl sub_80144A4 + cmp r0, 0 + bne _0802A81E + ldr r0, [sp] + cmp r0, 0x7 + beq _0802A7BC + cmp r0, 0x7 + bgt _0802A7B6 + cmp r0, 0 + beq _0802A818 + b _0802A81E +_0802A7B6: + cmp r0, 0x8 + beq _0802A810 + b _0802A81E +_0802A7BC: + ldr r4, _0802A800 + ldr r0, [r4] + movs r1, 0x86 + lsls r1, 2 + adds r0, r1 + ldrb r0, [r0] + bl sub_8095228 + adds r2, r0, 0 + ldr r1, [r4] + ldr r3, _0802A804 + adds r0, r1, r3 + ldrb r0, [r0] + cmp r0, 0 + beq _0802A7E2 + ldr r5, _0802A808 + adds r0, r1, r5 + ldr r0, [r0] + str r0, [r2, 0x20] +_0802A7E2: + ldr r0, _0802A80C + ldr r1, [r0] + ldr r0, [r4] + adds r0, r3 + ldrb r0, [r0] + lsls r0, 1 + adds r1, 0x50 + adds r1, r0 + ldrh r0, [r1] + subs r0, 0x1 + strh r0, [r1] + movs r0, 0x29 + bl sub_802B2BC + b _0802A81E + .align 2, 0 +_0802A800: .4byte gUnknown_203B2C4 +_0802A804: .4byte 0x0000041e +_0802A808: .4byte 0x0000041c +_0802A80C: .4byte gUnknown_203B460 +_0802A810: + movs r0, 0xB + bl sub_802B2BC + b _0802A81E +_0802A818: + movs r0, 0x1 + bl sub_802B2BC +_0802A81E: + add sp, 0x4 + pop {r4,r5} + pop {r0} + bx r0 + thumb_func_end sub_802A798 + + thumb_func_start sub_802A828 +sub_802A828: + push {lr} + sub sp, 0x4 + mov r0, sp + bl sub_80144A4 + cmp r0, 0 + bne _0802A848 + movs r0, 0x2A + bl sub_802B2BC + movs r0, 0x1 + bl sub_8011C28 + movs r0, 0 + bl sub_8012574 +_0802A848: + add sp, 0x4 + pop {r0} + bx r0 + thumb_func_end sub_802A828 + + thumb_func_start sub_802A850 +sub_802A850: + push {lr} + sub sp, 0x4 + mov r0, sp + bl sub_80144A4 + cmp r0, 0 + bne _0802A89A + bl sub_8012600 + lsls r0, 24 + cmp r0, 0 + bne _0802A89A + bl sub_8012750 + ldr r0, _0802A884 + ldr r0, [r0] + ldr r1, _0802A888 + adds r0, r1 + ldr r0, [r0] + cmp r0, 0x3 + blt _0802A89A + cmp r0, 0x4 + ble _0802A88C + cmp r0, 0x5 + beq _0802A894 + b _0802A89A + .align 2, 0 +_0802A884: .4byte gUnknown_203B2C4 +_0802A888: .4byte 0x00000534 +_0802A88C: + movs r0, 0x1D + bl sub_802B2BC + b _0802A89A +_0802A894: + movs r0, 0x19 + bl sub_802B2BC +_0802A89A: + add sp, 0x4 + pop {r0} + bx r0 + thumb_func_end sub_802A850 + + thumb_func_start sub_802A8A0 +sub_802A8A0: + push {lr} + sub sp, 0x4 + mov r0, sp + bl sub_80144A4 + cmp r0, 0 + bne _0802A8B4 + movs r0, 0x13 + bl sub_802B2BC +_0802A8B4: + add sp, 0x4 + pop {r0} + bx r0 + thumb_func_end sub_802A8A0 + + thumb_func_start sub_802A8BC +sub_802A8BC: + push {lr} + sub sp, 0x4 + mov r0, sp + bl sub_80144A4 + cmp r0, 0 + bne _0802A90A + ldr r0, [sp] + cmp r0, 0 + beq _0802A904 + cmp r0, 0xA + bne _0802A90A + ldr r0, _0802A8EC + ldr r0, [r0] + ldr r1, _0802A8F0 + adds r0, r1 + ldr r0, [r0] + cmp r0, 0x3 + blt _0802A90A + cmp r0, 0x4 + ble _0802A8F4 + cmp r0, 0x5 + beq _0802A8FC + b _0802A90A + .align 2, 0 +_0802A8EC: .4byte gUnknown_203B2C4 +_0802A8F0: .4byte 0x00000534 +_0802A8F4: + movs r0, 0x1D + bl sub_802B2BC + b _0802A90A +_0802A8FC: + movs r0, 0x19 + bl sub_802B2BC + b _0802A90A +_0802A904: + movs r0, 0x1 + bl sub_802B2BC +_0802A90A: + add sp, 0x4 + pop {r0} + bx r0 + thumb_func_end sub_802A8BC + + thumb_func_start sub_802A910 +sub_802A910: + push {lr} + sub sp, 0x4 + mov r0, sp + bl sub_80144A4 + cmp r0, 0 + bne _0802A986 + ldr r0, [sp] + cmp r0, 0x9 + beq _0802A934 + cmp r0, 0x9 + bgt _0802A92E + cmp r0, 0 + beq _0802A980 + b _0802A986 +_0802A92E: + cmp r0, 0xA + beq _0802A950 + b _0802A986 +_0802A934: + movs r0, 0 + bl sub_801CF14 + lsls r0, 24 + cmp r0, 0 + beq _0802A948 + movs r0, 0xA + bl sub_802B2BC + b _0802A986 +_0802A948: + movs r0, 0xB + bl sub_802B2BC + b _0802A986 +_0802A950: + ldr r0, _0802A968 + ldr r0, [r0] + ldr r1, _0802A96C + adds r0, r1 + ldr r0, [r0] + cmp r0, 0x3 + blt _0802A986 + cmp r0, 0x4 + ble _0802A970 + cmp r0, 0x5 + beq _0802A978 + b _0802A986 + .align 2, 0 +_0802A968: .4byte gUnknown_203B2C4 +_0802A96C: .4byte 0x00000534 +_0802A970: + movs r0, 0x1D + bl sub_802B2BC + b _0802A986 +_0802A978: + movs r0, 0x19 + bl sub_802B2BC + b _0802A986 +_0802A980: + movs r0, 0x1 + bl sub_802B2BC +_0802A986: + add sp, 0x4 + pop {r0} + bx r0 + thumb_func_end sub_802A910 + + thumb_func_start sub_802A98C +sub_802A98C: + push {lr} + sub sp, 0x4 + mov r0, sp + bl sub_80144A4 + cmp r0, 0 + bne _0802A9A0 + movs r0, 0x8 + bl sub_802B2BC +_0802A9A0: + add sp, 0x4 + pop {r0} + bx r0 + thumb_func_end sub_802A98C + + thumb_func_start sub_802A9A8 +sub_802A9A8: + push {lr} + sub sp, 0x4 + mov r0, sp + bl sub_80144A4 + cmp r0, 0 + bne _0802A9F6 + ldr r0, [sp] + cmp r0, 0 + beq _0802A9F0 + cmp r0, 0x7 + bne _0802A9F6 + ldr r0, _0802A9D8 + ldr r0, [r0] + ldr r1, _0802A9DC + adds r0, r1 + ldr r0, [r0] + cmp r0, 0x3 + blt _0802A9F6 + cmp r0, 0x4 + ble _0802A9E0 + cmp r0, 0x5 + beq _0802A9E8 + b _0802A9F6 + .align 2, 0 +_0802A9D8: .4byte gUnknown_203B2C4 +_0802A9DC: .4byte 0x00000534 +_0802A9E0: + movs r0, 0x1D + bl sub_802B2BC + b _0802A9F6 +_0802A9E8: + movs r0, 0x19 + bl sub_802B2BC + b _0802A9F6 +_0802A9F0: + movs r0, 0x1 + bl sub_802B2BC +_0802A9F6: + add sp, 0x4 + pop {r0} + bx r0 + thumb_func_end sub_802A9A8 + + thumb_func_start sub_802A9FC +sub_802A9FC: + push {lr} + sub sp, 0x4 + mov r0, sp + bl sub_80144A4 + cmp r0, 0 + bne _0802AA22 + ldr r0, [sp] + cmp r0, 0 + beq _0802AA1C + cmp r0, 0x7 + bne _0802AA22 + movs r0, 0x26 + bl sub_802B2BC + b _0802AA22 +_0802AA1C: + movs r0, 0x1 + bl sub_802B2BC +_0802AA22: + add sp, 0x4 + pop {r0} + bx r0 + thumb_func_end sub_802A9FC + + thumb_func_start sub_802AA28 +sub_802AA28: + push {lr} + sub sp, 0x4 + mov r0, sp + bl sub_80144A4 + cmp r0, 0 + bne _0802AAA6 + ldr r2, [sp] + cmp r2, 0 + beq _0802AAA0 + cmp r2, 0 + blt _0802AAA6 + cmp r2, 0x5 + bgt _0802AAA6 + cmp r2, 0x3 + blt _0802AAA6 + ldr r0, _0802AA7C + ldr r0, [r0] + ldr r3, _0802AA80 + adds r1, r0, r3 + str r2, [r1] + movs r1, 0xA7 + lsls r1, 3 + adds r0, r1 + ldr r0, [r0] + cmp r0, 0x1 + bne _0802AA8C + movs r0, 0x5 + bl sub_80953D4 + lsls r0, 24 + lsrs r0, 24 + bl sub_8095228 + adds r0, 0x22 + ldrb r0, [r0] + cmp r0, 0 + beq _0802AA84 + movs r0, 0x7 + bl sub_802B2BC + b _0802AAA6 + .align 2, 0 +_0802AA7C: .4byte gUnknown_203B2C4 +_0802AA80: .4byte 0x00000534 +_0802AA84: + movs r0, 0x9 + bl sub_802B2BC + b _0802AAA6 +_0802AA8C: + cmp r2, 0x5 + bne _0802AA98 + movs r0, 0x26 + bl sub_802B2BC + b _0802AAA6 +_0802AA98: + movs r0, 0x1D + bl sub_802B2BC + b _0802AAA6 +_0802AAA0: + movs r0, 0x1 + bl sub_802B2BC +_0802AAA6: + add sp, 0x4 + pop {r0} + bx r0 + thumb_func_end sub_802AA28 + + thumb_func_start sub_802AAAC +sub_802AAAC: + push {lr} + sub sp, 0x4 + mov r0, sp + bl sub_80144A4 + cmp r0, 0 + bne _0802AAC0 + movs r0, 0x1 + bl sub_802B2BC +_0802AAC0: + add sp, 0x4 + pop {r0} + bx r0 + thumb_func_end sub_802AAAC + + thumb_func_start sub_802AAC8 +sub_802AAC8: + push {lr} + sub sp, 0x4 + mov r0, sp + bl sub_80144A4 + cmp r0, 0 + bne _0802AADC + movs r0, 0x3 + bl sub_802B2BC +_0802AADC: + add sp, 0x4 + pop {r0} + bx r0 + thumb_func_end sub_802AAC8 + + thumb_func_start sub_802AAE4 +sub_802AAE4: + push {lr} + sub sp, 0x4 + mov r0, sp + bl sub_80144A4 + cmp r0, 0 + bne _0802AB5A + ldr r2, [sp] + cmp r2, 0x1 + beq _0802AB08 + cmp r2, 0x1 + bgt _0802AB02 + cmp r2, 0 + beq _0802AB54 + b _0802AB5A +_0802AB02: + cmp r2, 0x2 + beq _0802AB38 + b _0802AB5A +_0802AB08: + ldr r0, _0802AB2C + ldr r0, [r0] + movs r1, 0x6 + str r1, [r0, 0x40] + movs r1, 0xA7 + lsls r1, 3 + adds r0, r1 + str r2, [r0] + movs r0, 0x5 + bl sub_8095324 + cmp r0, 0 + bne _0802AB30 + movs r0, 0x4 + bl sub_802B2BC + b _0802AB5A + .align 2, 0 +_0802AB2C: .4byte gUnknown_203B2C4 +_0802AB30: + movs r0, 0xF + bl sub_802B2BC + b _0802AB5A +_0802AB38: + ldr r0, _0802AB50 + ldr r0, [r0] + movs r1, 0x7 + str r1, [r0, 0x40] + movs r1, 0xA7 + lsls r1, 3 + adds r0, r1 + str r2, [r0] + movs r0, 0x6 + bl sub_802B2BC + b _0802AB5A + .align 2, 0 +_0802AB50: .4byte gUnknown_203B2C4 +_0802AB54: + movs r0, 0x2 + bl sub_802B2BC +_0802AB5A: + add sp, 0x4 + pop {r0} + bx r0 + thumb_func_end sub_802AAE4 + + thumb_func_start sub_802AB60 +sub_802AB60: + push {lr} + sub sp, 0x4 + mov r0, sp + bl sub_80144A4 + cmp r0, 0 + bne _0802AB74 + movs r0, 0x22 + bl sub_802B2BC +_0802AB74: + add sp, 0x4 + pop {r0} + bx r0 + thumb_func_end sub_802AB60 + + thumb_func_start sub_802AB7C +sub_802AB7C: + push {lr} + sub sp, 0x4 + mov r0, sp + bl sub_80144A4 + cmp r0, 0 + bne _0802AB90 + movs r0, 0x22 + bl sub_802B2BC +_0802AB90: + add sp, 0x4 + pop {r0} + bx r0 + thumb_func_end sub_802AB7C + + thumb_func_start sub_802AB98 +sub_802AB98: + push {r4,lr} + bl sub_802F298 + cmp r0, 0x3 + bne _0802ABE0 + bl sub_802F2C0 + ldr r0, _0802ABE8 + movs r4, 0x98 + lsls r4, 1 + adds r1, r4, 0 + bl sub_808D8E0 + adds r0, r4, 0 + bl GetMonSpecies + adds r1, r0, 0 + ldr r0, _0802ABEC + bl strcpy + ldr r0, _0802ABF0 + ldr r0, [r0] + movs r1, 0x86 + lsls r1, 3 + adds r0, r1 + ldr r1, [r0] + movs r0, 0x6 + bl sub_809539C + lsls r0, 24 + lsrs r0, 24 + bl sub_8095240 + movs r0, 0x24 + bl sub_802B2BC +_0802ABE0: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0802ABE8: .4byte gUnknown_202E5D8 +_0802ABEC: .4byte gAvailablePokemonNames +_0802ABF0: .4byte gUnknown_203B2C4 + thumb_func_end sub_802AB98 + + thumb_func_start nullsub_131 +nullsub_131: + bx lr + thumb_func_end nullsub_131 + + thumb_func_start sub_802ABF8 +sub_802ABF8: + push {r4-r6,lr} + sub sp, 0xB8 + ldr r1, _0802AC14 + ldr r0, [r1] + ldrb r0, [r0] + adds r6, r1, 0 + cmp r0, 0x2A + bls _0802AC0A + b _0802B2AA +_0802AC0A: + lsls r0, 2 + ldr r1, _0802AC18 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0802AC14: .4byte gUnknown_203B2C4 +_0802AC18: .4byte _0802AC1C + .align 2, 0 +_0802AC1C: + .4byte _0802B1DC + .4byte _0802B1FC + .4byte _0802B22C + .4byte _0802B2AA + .4byte _0802B1D4 + .4byte _0802ACC8 + .4byte _0802B248 + .4byte _0802B194 + .4byte _0802B1A4 + .4byte _0802B168 + .4byte _0802B138 + .4byte _0802B128 + .4byte _0802B0F0 + .4byte _0802B0AC + .4byte _0802AD08 + .4byte _0802AD18 + .4byte _0802AD20 + .4byte _0802AD46 + .4byte _0802B2AA + .4byte _0802AD80 + .4byte _0802ADB0 + .4byte _0802B2AA + .4byte _0802B07C + .4byte _0802B094 + .4byte _0802B2AA + .4byte _0802AF50 + .4byte _0802AF1A + .4byte _0802AF46 + .4byte _0802B2AA + .4byte _0802B0A4 + .4byte _0802ADF8 + .4byte _0802B2AA + .4byte _0802AF70 + .4byte _0802AF78 + .4byte _0802AFAC + .4byte _0802B2AA + .4byte _0802AF60 + .4byte _0802B2AA + .4byte _0802AEEC + .4byte _0802AEF4 + .4byte _0802B2AA + .4byte _0802B110 + .4byte _0802B120 +_0802ACC8: + bl sub_808D33C + adds r1, r0, 0 + adds r1, 0x4C + add r0, sp, 0x14 + movs r2, 0xA + bl sub_80922B4 + ldr r5, _0802ACF8 + ldr r0, [r5] + ldr r4, _0802ACFC + adds r0, r4 + ldr r1, _0802AD00 + add r2, sp, 0x14 + bl sub_800D158 + ldr r2, [r5] + adds r4, r2, r4 + movs r0, 0x84 + lsls r0, 3 + adds r2, r0 + ldr r3, _0802AD04 + adds r0, r4, 0 + b _0802B238 + .align 2, 0 +_0802ACF8: .4byte gUnknown_203B2C4 +_0802ACFC: .4byte 0x00000434 +_0802AD00: .4byte gUnknown_80DF250 +_0802AD04: .4byte 0x0000010d +_0802AD08: + ldr r0, _0802AD10 + ldr r3, _0802AD14 + b _0802B1A8 + .align 2, 0 +_0802AD10: .4byte gUnknown_80DF304 +_0802AD14: .4byte gUnknown_80DEE60 +_0802AD18: + ldr r0, _0802AD1C + b _0802B22E + .align 2, 0 +_0802AD1C: .4byte gUnknown_80DF330 +_0802AD20: + bl sub_8030894 + cmp r0, 0 + beq _0802AD2A + b _0802B2AA +_0802AD2A: + bl ResetUnusedInputStruct + movs r0, 0 + movs r1, 0x1 + movs r2, 0x1 + bl sub_800641C + movs r0, 0x5 + movs r1, 0 + movs r2, 0 + movs r3, 0x6 + bl sub_80306A8 + b _0802B2AA +_0802AD46: + ldr r0, [r6] + movs r4, 0xD7 + lsls r4, 2 + adds r0, r4 + bl sub_8006518 + ldr r1, [r6] + movs r5, 0x87 + lsls r5, 2 + adds r0, r1, r5 + adds r1, r4 + ldr r3, _0802AD78 + ldr r2, _0802AD7C + str r2, [sp] + movs r2, 0x1 + str r2, [sp, 0x4] + movs r2, 0 + str r2, [sp, 0x8] + str r2, [sp, 0xC] + movs r2, 0x3 + bl SetMenuItems + bl sub_803092C + b _0802ADE0 + .align 2, 0 +_0802AD78: .4byte gUnknown_80DED60 +_0802AD7C: .4byte gUnknown_80DED78 +_0802AD80: + bl sub_801D008 + cmp r0, 0 + beq _0802AD8A + b _0802B2AA +_0802AD8A: + bl ResetUnusedInputStruct + movs r0, 0 + movs r1, 0x1 + movs r2, 0x1 + bl sub_800641C + add r2, sp, 0xB4 + ldr r0, _0802ADAC + str r0, [r2] + movs r0, 0 + movs r1, 0x1 + movs r3, 0x9 + bl sub_801C8C4 + b _0802B2AA + .align 2, 0 +_0802ADAC: .4byte 0x00020003 +_0802ADB0: + ldr r0, [r6] + movs r4, 0xD7 + lsls r4, 2 + adds r0, r4 + bl sub_8006518 + ldr r1, [r6] + movs r5, 0x87 + lsls r5, 2 + adds r0, r1, r5 + adds r1, r4 + ldr r3, _0802ADF0 + ldr r2, _0802ADF4 + str r2, [sp] + movs r2, 0x1 + str r2, [sp, 0x4] + movs r2, 0 + str r2, [sp, 0x8] + str r2, [sp, 0xC] + movs r2, 0x3 + bl SetMenuItems + bl sub_801CCD8 +_0802ADE0: + ldr r0, [r6] + adds r0, r5 + movs r1, 0x3 + movs r2, 0x1 + bl sub_8035CF4 + b _0802B2AA + .align 2, 0 +_0802ADF0: .4byte gUnknown_80DED48 +_0802ADF4: .4byte gUnknown_80DED78 +_0802ADF8: + ldr r1, [r6] + movs r0, 0 + str r0, [r1, 0x44] + bl sub_8011830 + ldr r0, [r6] + ldr r0, [r0, 0x40] + bl sub_8037B28 + ldr r1, [r6] + str r0, [r1, 0x44] + cmp r0, 0 + bne _0802AEE6 + ldr r0, [r1, 0x40] + cmp r0, 0x6 + beq _0802AE1E + cmp r0, 0x7 + beq _0802AE5C + b _0802AE8C +_0802AE1E: + movs r4, 0xDC + lsls r4, 1 + adds r0, r1, r4 + movs r1, 0 + movs r2, 0x30 + bl MemoryFill8 + ldr r0, [r6] + movs r5, 0x86 + lsls r5, 2 + adds r0, r5 + ldrb r0, [r0] + bl sub_8095228 + ldr r1, [r6] + adds r1, r4 + ldm r0!, {r2,r3,r5} + stm r1!, {r2,r3,r5} + ldm r0!, {r2,r3,r5} + stm r1!, {r2,r3,r5} + ldm r0!, {r2,r3,r5} + stm r1!, {r2,r3,r5} + ldm r0!, {r2,r3,r5} + stm r1!, {r2,r3,r5} + ldr r2, [r6] + ldr r0, [r2, 0x40] + adds r4, r2, r4 + movs r1, 0xF4 + lsls r1, 1 + adds r2, r1 + b _0802AE82 +_0802AE5C: + movs r4, 0xDC + lsls r4, 1 + adds r0, r1, r4 + movs r1, 0 + movs r2, 0x30 + bl MemoryFill8 + ldr r0, [r6] + movs r5, 0xF4 + lsls r5, 1 + adds r0, r5 + movs r1, 0 + movs r2, 0x30 + bl MemoryFill8 + ldr r2, [r6] + ldr r0, [r2, 0x40] + adds r4, r2, r4 + adds r2, r5 +_0802AE82: + adds r1, r4, 0 + bl sub_8037D64 + ldr r1, [r6] + str r0, [r1, 0x44] +_0802AE8C: + ldr r4, _0802AED0 + ldr r2, [r4] + ldr r0, [r2, 0x44] + cmp r0, 0 + bne _0802AEE6 + ldr r0, [r2, 0x40] + cmp r0, 0x7 + bhi _0802AEE6 + cmp r0, 0x6 + bcc _0802AEE6 + movs r3, 0xDC + lsls r3, 1 + adds r1, r2, r3 + movs r5, 0xF4 + lsls r5, 1 + adds r2, r5 + bl sub_80381F4 + ldr r1, [r4] + str r0, [r1, 0x44] + bl sub_800D588 + lsls r0, 24 + cmp r0, 0 + beq _0802AED4 + ldr r0, [r4] + movs r2, 0x86 + lsls r2, 3 + adds r1, r0, r2 + movs r3, 0xFC + lsls r3, 1 + adds r0, r3 + b _0802AEE2 + .align 2, 0 +_0802AED0: .4byte gUnknown_203B2C4 +_0802AED4: + ldr r0, [r4] + movs r5, 0x86 + lsls r5, 3 + adds r1, r0, r5 + movs r2, 0xE4 + lsls r2, 1 + adds r0, r2 +_0802AEE2: + ldr r0, [r0] + str r0, [r1] +_0802AEE6: + bl xxx_call_start_bg_music + b _0802B2AA +_0802AEEC: + ldr r0, _0802AEF0 + b _0802B22E + .align 2, 0 +_0802AEF0: .4byte gUnknown_80DF380 +_0802AEF4: + ldr r0, [r6] + movs r5, 0xEF + lsls r5, 2 + adds r0, r5 + bl sub_8006518 + bl ResetUnusedInputStruct + movs r0, 0 + movs r1, 0x1 + movs r2, 0x1 + bl sub_800641C + ldr r1, [r6] + adds r1, 0x8 + movs r0, 0x4 + bl sub_80151C0 + b _0802B2AA +_0802AF1A: + ldr r0, [r6] + movs r1, 0xEF + lsls r1, 2 + adds r0, r1 + bl sub_8006518 + bl ResetUnusedInputStruct + movs r0, 0 + movs r1, 0x1 + movs r2, 0x1 + bl sub_800641C + ldr r0, [r6] + movs r2, 0x86 + lsls r2, 2 + adds r0, r2 + ldrb r0, [r0] + movs r1, 0 + bl sub_8031D70 + b _0802B2AA +_0802AF46: + ldr r0, _0802AF4C + b _0802B22E + .align 2, 0 +_0802AF4C: .4byte gUnknown_80DF3B4 +_0802AF50: + ldr r0, _0802AF5C + ldr r2, [r6] + movs r5, 0x84 + lsls r5, 3 + adds r2, r5 + b _0802B236 + .align 2, 0 +_0802AF5C: .4byte gUnknown_80DF418 +_0802AF60: + ldr r0, _0802AF6C + ldr r2, [r6] + movs r1, 0x84 + lsls r1, 3 + adds r2, r1 + b _0802B236 + .align 2, 0 +_0802AF6C: .4byte gUnknown_80DF44C +_0802AF70: + ldr r0, _0802AF74 + b _0802B22E + .align 2, 0 +_0802AF74: .4byte gUnknown_80DF46C +_0802AF78: + ldr r0, [r6] + ldr r5, _0802AF90 + adds r0, r5 + ldr r0, [r0] + cmp r0, 0x4 + bne _0802AF86 + b _0802B2AA +_0802AF86: + cmp r0, 0x4 + bgt _0802AF94 + cmp r0, 0x3 + beq _0802AF9A + b _0802B2AA + .align 2, 0 +_0802AF90: .4byte 0x00000534 +_0802AF94: + cmp r0, 0x6 + ble _0802AF9A + b _0802B2AA +_0802AF9A: + ldr r0, _0802AFA8 + ldr r2, [r6] + movs r1, 0x84 + lsls r1, 3 + adds r2, r1 + b _0802B236 + .align 2, 0 +_0802AFA8: .4byte gUnknown_80DF4F4 +_0802AFAC: + movs r4, 0x98 + lsls r4, 1 + adds r0, r4, 0 + bl GetMonSpecies + adds r1, r0, 0 + ldr r5, _0802B00C + ldr r0, [r5] + ldr r2, _0802B010 + adds r0, r2 + bl strcpy + ldr r1, [r5] + movs r3, 0xAA + lsls r3, 3 + adds r0, r1, r3 + movs r2, 0 + strh r4, [r0] + ldr r0, _0802B014 + adds r1, r0 + movs r0, 0x2 + strb r0, [r1] + ldr r0, [r5] + adds r3, 0x4 + adds r1, r0, r3 + str r2, [r1] + movs r1, 0x86 + lsls r1, 3 + adds r0, r1 + ldr r1, [r0] + movs r0, 0x6 + bl sub_809539C + lsls r0, 24 + lsrs r0, 24 + bl sub_8095228 + adds r2, r0, 0 + adds r0, 0x22 + ldrb r1, [r0] + cmp r1, 0 + beq _0802B018 + ldr r0, [r5] + movs r3, 0xAB + lsls r3, 3 + adds r0, r3 + b _0802B022 + .align 2, 0 +_0802B00C: .4byte gUnknown_203B2C4 +_0802B010: .4byte 0x0000053c +_0802B014: .4byte 0x00000552 +_0802B018: + ldr r0, [r5] + movs r5, 0xAB + lsls r5, 3 + adds r0, r5 + movs r1, 0 +_0802B022: + strb r1, [r0] + ldr r4, _0802B068 + ldr r0, [r4] + ldr r1, _0802B06C + adds r0, r1 + movs r5, 0 + movs r1, 0x1 + strb r1, [r0] + adds r0, r2, 0x4 + movs r1, 0 + bl sub_803C200 + ldr r1, [r4] + movs r3, 0xAC + lsls r3, 3 + adds r2, r1, r3 + str r0, [r2] + ldr r0, _0802B070 + adds r1, r0 + strb r5, [r1] + ldr r0, [r4] + ldr r1, _0802B074 + adds r0, r1 + strb r5, [r0] + ldr r0, [r4] + ldr r2, _0802B078 + adds r0, r2 + strb r5, [r0] + ldr r0, [r4] + subs r3, 0x24 + adds r0, r3 + movs r1, 0 + bl sub_802F204 + b _0802B2AA + .align 2, 0 +_0802B068: .4byte gUnknown_203B2C4 +_0802B06C: .4byte 0x0000055b +_0802B070: .4byte 0x00000559 +_0802B074: .4byte 0x0000055a +_0802B078: .4byte 0x0000055c +_0802B07C: + movs r0, 0 + bl nullsub_23 + ldr r0, _0802B090 + movs r1, 0 + movs r2, 0 + movs r3, 0 + bl sub_80141B4 + b _0802B2AA + .align 2, 0 +_0802B090: .4byte gUnknown_80DF544 +_0802B094: + ldr r0, _0802B0A0 + ldr r2, [r6] + movs r5, 0x84 + lsls r5, 3 + adds r2, r5 + b _0802B236 + .align 2, 0 +_0802B0A0: .4byte gUnknown_80DF594 +_0802B0A4: + ldr r0, _0802B0A8 + b _0802B1A6 + .align 2, 0 +_0802B0A8: .4byte gUnknown_80DF5E4 +_0802B0AC: + bl sub_808D33C + adds r1, r0, 0 + add r6, sp, 0x64 + adds r1, 0x4C + adds r0, r6, 0 + movs r2, 0xA + bl sub_80922B4 + ldr r5, _0802B0E0 + ldr r0, [r5] + ldr r4, _0802B0E4 + adds r0, r4 + ldr r1, _0802B0E8 + adds r2, r6, 0 + bl sub_800D158 + ldr r2, [r5] + adds r4, r2, r4 + movs r3, 0x84 + lsls r3, 3 + adds r2, r3 + ldr r3, _0802B0EC + adds r0, r4, 0 + b _0802B238 + .align 2, 0 +_0802B0E0: .4byte gUnknown_203B2C4 +_0802B0E4: .4byte 0x00000434 +_0802B0E8: .4byte gUnknown_80DF63C +_0802B0EC: .4byte 0x0000010d +_0802B0F0: + ldr r0, _0802B108 + ldr r3, _0802B10C + movs r2, 0 + str r2, [sp] + movs r1, 0x4 + str r1, [sp, 0x4] + str r2, [sp, 0x8] + ldr r1, [r6] + movs r5, 0x84 + lsls r5, 3 + adds r1, r5 + b _0802B1BA + .align 2, 0 +_0802B108: .4byte gUnknown_80DF694 +_0802B10C: .4byte gUnknown_80DEEE4 +_0802B110: + ldr r0, _0802B11C + ldr r2, [r6] + movs r1, 0x84 + lsls r1, 3 + adds r2, r1 + b _0802B236 + .align 2, 0 +_0802B11C: .4byte gUnknown_80DF44C +_0802B120: + ldr r0, _0802B124 + b _0802B22E + .align 2, 0 +_0802B124: .4byte gUnknown_80DF6F0 +_0802B128: + ldr r0, _0802B134 + ldr r2, [r6] + movs r5, 0x84 + lsls r5, 3 + adds r2, r5 + b _0802B236 + .align 2, 0 +_0802B134: .4byte gUnknown_80DF710 +_0802B138: + ldr r0, _0802B160 + ldr r3, _0802B164 + movs r2, 0 + str r2, [sp] + movs r1, 0x4 + str r1, [sp, 0x4] + str r2, [sp, 0x8] + ldr r1, [r6] + movs r2, 0x84 + lsls r2, 3 + adds r1, r2 + str r1, [sp, 0xC] + movs r1, 0xC + str r1, [sp, 0x10] + movs r1, 0 + movs r2, 0 + bl sub_8014248 + b _0802B2AA + .align 2, 0 +_0802B160: .4byte gUnknown_80DF73C +_0802B164: .4byte gUnknown_80DEEBC +_0802B168: + ldr r0, _0802B18C + ldr r3, _0802B190 + movs r2, 0 + str r2, [sp] + movs r1, 0x4 + str r1, [sp, 0x4] + str r2, [sp, 0x8] + ldr r1, [r6] + movs r5, 0x84 + lsls r5, 3 + adds r1, r5 + str r1, [sp, 0xC] + movs r1, 0xC + str r1, [sp, 0x10] + movs r1, 0 + bl sub_8014248 + b _0802B2AA + .align 2, 0 +_0802B18C: .4byte gUnknown_80DF77C +_0802B190: .4byte gUnknown_80DEE7C +_0802B194: + ldr r0, _0802B1A0 + ldr r2, [r6] + movs r1, 0x84 + lsls r1, 3 + adds r2, r1 + b _0802B236 + .align 2, 0 +_0802B1A0: .4byte gUnknown_80DF7D4 +_0802B1A4: + ldr r0, _0802B1CC +_0802B1A6: + ldr r3, _0802B1D0 +_0802B1A8: + movs r2, 0 + str r2, [sp] + movs r1, 0x4 + str r1, [sp, 0x4] + str r2, [sp, 0x8] + ldr r1, [r6] + movs r2, 0x84 + lsls r2, 3 + adds r1, r2 +_0802B1BA: + str r1, [sp, 0xC] + movs r1, 0xC + str r1, [sp, 0x10] + movs r1, 0 + movs r2, 0x7 + bl sub_8014248 + b _0802B2AA + .align 2, 0 +_0802B1CC: .4byte gUnknown_80DF870 +_0802B1D0: .4byte gUnknown_80DEE44 +_0802B1D4: + ldr r0, _0802B1D8 + b _0802B22E + .align 2, 0 +_0802B1D8: .4byte gUnknown_80DF8B4 +_0802B1DC: + ldr r0, _0802B1F4 + ldr r3, _0802B1F8 + movs r2, 0 + str r2, [sp] + movs r1, 0x4 + str r1, [sp, 0x4] + str r2, [sp, 0x8] + ldr r1, [r6] + movs r5, 0x84 + lsls r5, 3 + adds r1, r5 + b _0802B212 + .align 2, 0 +_0802B1F4: .4byte gUnknown_80DF8EC +_0802B1F8: .4byte gUnknown_80DEDB8 +_0802B1FC: + ldr r0, _0802B224 + ldr r3, _0802B228 + movs r2, 0 + str r2, [sp] + movs r1, 0x4 + str r1, [sp, 0x4] + str r2, [sp, 0x8] + ldr r1, [r6] + movs r2, 0x84 + lsls r2, 3 + adds r1, r2 +_0802B212: + str r1, [sp, 0xC] + movs r1, 0xC + str r1, [sp, 0x10] + movs r1, 0 + movs r2, 0x1 + bl sub_8014248 + b _0802B2AA + .align 2, 0 +_0802B224: .4byte gUnknown_80DF928 +_0802B228: .4byte gUnknown_80DEDB8 +_0802B22C: + ldr r0, _0802B240 +_0802B22E: + ldr r2, [r6] + movs r3, 0x84 + lsls r3, 3 + adds r2, r3 +_0802B236: + ldr r3, _0802B244 +_0802B238: + movs r1, 0 + bl sub_80141B4 + b _0802B2AA + .align 2, 0 +_0802B240: .4byte gUnknown_80DF94C +_0802B244: .4byte 0x0000010d +_0802B248: + ldr r4, [r6] + movs r5, 0xA7 + lsls r5, 3 + adds r0, r4, r5 + ldr r0, [r0] + cmp r0, 0x1 + beq _0802B25C + cmp r0, 0x2 + beq _0802B288 + b _0802B2AA +_0802B25C: + ldr r0, _0802B280 + ldr r3, _0802B284 + movs r2, 0 + str r2, [sp] + movs r1, 0x4 + str r1, [sp, 0x4] + str r2, [sp, 0x8] + movs r2, 0x84 + lsls r2, 3 + adds r1, r4, r2 + str r1, [sp, 0xC] + movs r1, 0xC + str r1, [sp, 0x10] + movs r1, 0 + movs r2, 0x3 + bl sub_8014248 + b _0802B2AA + .align 2, 0 +_0802B280: .4byte gUnknown_80DF96C +_0802B284: .4byte gUnknown_80DEE08 +_0802B288: + ldr r0, _0802B2B4 + ldr r3, _0802B2B8 + movs r2, 0 + str r2, [sp] + movs r1, 0x4 + str r1, [sp, 0x4] + str r2, [sp, 0x8] + movs r5, 0x84 + lsls r5, 3 + adds r1, r4, r5 + str r1, [sp, 0xC] + movs r1, 0xC + str r1, [sp, 0x10] + movs r1, 0 + movs r2, 0x3 + bl sub_8014248 +_0802B2AA: + add sp, 0xB8 + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_0802B2B4: .4byte gUnknown_80DF9A4 +_0802B2B8: .4byte gUnknown_80DEE08 + thumb_func_end sub_802ABF8 + + thumb_func_start sub_802B2BC +sub_802B2BC: + push {lr} + ldr r1, _0802B2D0 + ldr r1, [r1] + strb r0, [r1] + bl nullsub_131 + bl sub_802ABF8 + pop {r0} + bx r0 + .align 2, 0 +_0802B2D0: .4byte gUnknown_203B2C4 + thumb_func_end sub_802B2BC + + thumb_func_start sub_802B2D4 +sub_802B2D4: + push {r4,r5,lr} + bl ResetUnusedInputStruct + movs r0, 0 + movs r1, 0x1 + movs r2, 0x1 + bl sub_800641C + ldr r5, _0802B348 + movs r4, 0xA0 + lsls r4, 1 + adds r0, r4, 0 + movs r1, 0x8 + bl MemoryAlloc + str r0, [r5] + movs r1, 0 + adds r2, r4, 0 + bl MemoryFill8 + ldr r1, [r5] + movs r0, 0xFF + strb r0, [r1, 0x1] + ldr r0, _0802B34C + subs r4, 0x10 + adds r1, r4, 0 + bl sub_808D8E0 + adds r0, r4, 0 + bl GetDialogueSpriteDataPtr + ldr r1, [r5] + str r0, [r1, 0x4] + ldr r0, [r0, 0x4] + str r0, [r1, 0x8] + movs r2, 0 + strb r2, [r1, 0x10] + ldr r0, [r5] + strb r2, [r0, 0x11] + ldr r0, [r5] + strb r2, [r0, 0x12] + ldr r0, [r5] + movs r1, 0x2 + strh r1, [r0, 0xC] + movs r1, 0x8 + strh r1, [r0, 0xE] + adds r0, 0x1 + bl sub_8099394 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _0802B350 + movs r0, 0 + bl sub_802B548 + movs r0, 0x1 + b _0802B352 + .align 2, 0 +_0802B348: .4byte gUnknown_203B2C8 +_0802B34C: .4byte gUnknown_202E5D8 +_0802B350: + movs r0, 0 +_0802B352: + pop {r4,r5} + pop {r1} + bx r1 + thumb_func_end sub_802B2D4 + + thumb_func_start sub_802B358 +sub_802B358: + push {lr} + ldr r0, _0802B370 + ldr r0, [r0] + ldrb r0, [r0] + cmp r0, 0x5 + bhi _0802B3B2 + lsls r0, 2 + ldr r1, _0802B374 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0802B370: .4byte gUnknown_203B2C8 +_0802B374: .4byte _0802B378 + .align 2, 0 +_0802B378: + .4byte _0802B390 + .4byte _0802B396 + .4byte _0802B39C + .4byte _0802B3A2 + .4byte _0802B3A8 + .4byte _0802B3AE +_0802B390: + bl sub_802B560 + b _0802B3B2 +_0802B396: + bl sub_802B57C + b _0802B3B2 +_0802B39C: + bl sub_802B5B8 + b _0802B3B2 +_0802B3A2: + bl sub_802B5FC + b _0802B3B2 +_0802B3A8: + bl sub_802B624 + b _0802B3B2 +_0802B3AE: + movs r0, 0x3 + b _0802B3B4 +_0802B3B2: + movs r0, 0 +_0802B3B4: + pop {r1} + bx r1 + thumb_func_end sub_802B358 + + thumb_func_start sub_802B3B8 +sub_802B3B8: + push {r4,lr} + ldr r4, _0802B3D8 + ldr r0, [r4] + cmp r0, 0 + beq _0802B3D2 + ldr r0, [r0, 0x4] + bl CloseFile + ldr r0, [r4] + bl MemoryFree + movs r0, 0 + str r0, [r4] +_0802B3D2: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0802B3D8: .4byte gUnknown_203B2C8 + thumb_func_end sub_802B3B8 + + thumb_func_start nullsub_132 +nullsub_132: + bx lr + thumb_func_end nullsub_132 + + thumb_func_start sub_802B3E0 +sub_802B3E0: + push {r4-r6,lr} + mov r6, r9 + mov r5, r8 + push {r5,r6} + sub sp, 0x28 + ldr r1, _0802B404 + ldr r0, [r1] + ldrb r0, [r0] + adds r2, r1, 0 + cmp r0, 0x5 + bls _0802B3F8 + b _0802B532 +_0802B3F8: + lsls r0, 2 + ldr r1, _0802B408 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0802B404: .4byte gUnknown_203B2C8 +_0802B408: .4byte _0802B40C + .align 2, 0 +_0802B40C: + .4byte _0802B424 + .4byte _0802B464 + .4byte _0802B50C + .4byte _0802B532 + .4byte _0802B524 + .4byte _0802B532 +_0802B424: + movs r0, 0 + bl sub_80023E4 + lsls r0, 24 + cmp r0, 0 + beq _0802B438 + mov r0, sp + bl sub_80920D8 + b _0802B440 +_0802B438: + ldr r1, _0802B458 + mov r0, sp + bl strcpy +_0802B440: + ldr r4, _0802B45C + ldr r0, [r4] + adds r0, 0x14 + ldr r1, _0802B460 + mov r2, sp + bl sub_800D158 + ldr r2, [r4] + adds r0, r2, 0 + adds r0, 0x14 + b _0802B510 + .align 2, 0 +_0802B458: .4byte gUnknown_80DF9F0 +_0802B45C: .4byte gUnknown_203B2C8 +_0802B460: .4byte gUnknown_80DF9F8 +_0802B464: + movs r6, 0x98 + lsls r6, 1 + adds r0, r6, 0 + bl GetMonSpecies + adds r1, r0, 0 + ldr r5, _0802B500 + ldr r0, [r5] + movs r2, 0x8A + lsls r2, 1 + mov r9, r2 + add r0, r9 + bl strcpy + ldr r2, [r5] + movs r3, 0x94 + lsls r3, 1 + adds r0, r2, r3 + movs r1, 0 + mov r8, r1 + movs r1, 0 + strh r6, [r0] + adds r3, 0x2 + adds r2, r3 + movs r0, 0x2 + strb r0, [r2] + ldr r0, [r5] + movs r2, 0x96 + lsls r2, 1 + adds r0, r2 + str r1, [r0] + bl sub_8097790 + ldr r0, [r5] + ldrb r0, [r0, 0x1] + bl sub_8095228 + adds r4, r0, 0 + adds r4, 0x4 + ldr r2, [r5] + adds r2, r6 + adds r0, r4, 0 + movs r1, 0 + bl sub_803C37C + adds r0, r4, 0 + movs r1, 0 + bl sub_803C200 + ldr r2, [r5] + movs r3, 0x9C + lsls r3, 1 + adds r1, r2, r3 + str r0, [r1] + ldr r1, _0802B504 + adds r0, r2, r1 + mov r2, r8 + strb r2, [r0] + ldr r0, [r5] + subs r3, 0x6 + adds r0, r3 + strb r2, [r0] + ldr r0, [r5] + ldr r2, _0802B508 + adds r1, r0, r2 + movs r0, 0xA + strb r0, [r1] + ldr r0, [r5] + adds r3, 0x2 + adds r0, r3 + mov r1, r8 + strb r1, [r0] + ldr r0, [r5] + add r0, r9 + movs r1, 0 + bl sub_802F204 + b _0802B532 + .align 2, 0 +_0802B500: .4byte gUnknown_203B2C8 +_0802B504: .4byte 0x00000131 +_0802B508: .4byte 0x00000133 +_0802B50C: + ldr r0, _0802B51C + ldr r2, [r2] +_0802B510: + adds r2, 0x4 + ldr r3, _0802B520 + movs r1, 0 + bl sub_80141B4 + b _0802B532 + .align 2, 0 +_0802B51C: .4byte gUnknown_80DFAA8 +_0802B520: .4byte 0x0000010d +_0802B524: + ldr r0, _0802B540 + ldr r2, [r2] + adds r2, 0x4 + ldr r3, _0802B544 + movs r1, 0 + bl sub_80141B4 +_0802B532: + add sp, 0x28 + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_0802B540: .4byte gUnknown_80DFB14 +_0802B544: .4byte 0x0000010d + thumb_func_end sub_802B3E0 + + thumb_func_start sub_802B548 +sub_802B548: + push {lr} + ldr r1, _0802B55C + ldr r1, [r1] + strb r0, [r1] + bl nullsub_132 + bl sub_802B3E0 + pop {r0} + bx r0 + .align 2, 0 +_0802B55C: .4byte gUnknown_203B2C8 + thumb_func_end sub_802B548 + + thumb_func_start sub_802B560 +sub_802B560: + push {lr} + sub sp, 0x4 + mov r0, sp + bl sub_80144A4 + cmp r0, 0 + bne _0802B574 + movs r0, 0x1 + bl sub_802B548 +_0802B574: + add sp, 0x4 + pop {r0} + bx r0 + thumb_func_end sub_802B560 + + thumb_func_start sub_802B57C +sub_802B57C: + push {r4,lr} + bl sub_802F298 + cmp r0, 0x3 + bne _0802B5AA + bl sub_802F2C0 + ldr r0, _0802B5B0 + movs r4, 0x98 + lsls r4, 1 + adds r1, r4, 0 + bl sub_808D8E0 + adds r0, r4, 0 + bl GetMonSpecies + adds r1, r0, 0 + ldr r0, _0802B5B4 + bl strcpy + movs r0, 0x2 + bl sub_802B548 +_0802B5AA: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0802B5B0: .4byte gUnknown_202E5D8 +_0802B5B4: .4byte gAvailablePokemonNames + thumb_func_end sub_802B57C + + thumb_func_start sub_802B5B8 +sub_802B5B8: + push {r4,lr} + sub sp, 0x4 + mov r0, sp + bl sub_80144A4 + cmp r0, 0 + bne _0802B5EE + bl sub_8011C34 + adds r4, r0, 0 + ldr r0, _0802B5F8 + ldr r0, [r0] + ldrb r0, [r0, 0x1] + bl sub_8095228 + movs r1, 0x4 + strb r1, [r0] + str r4, [r0, 0x28] + movs r0, 0x3 + bl sub_802B548 + movs r0, 0x1 + bl sub_8011C28 + movs r0, 0 + bl sub_8012574 +_0802B5EE: + add sp, 0x4 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0802B5F8: .4byte gUnknown_203B2C8 + thumb_func_end sub_802B5B8 + + thumb_func_start sub_802B5FC +sub_802B5FC: + push {lr} + sub sp, 0x4 + mov r0, sp + bl sub_80144A4 + cmp r0, 0 + bne _0802B61E + bl sub_8012600 + lsls r0, 24 + cmp r0, 0 + bne _0802B61E + bl sub_8012750 + movs r0, 0x4 + bl sub_802B548 +_0802B61E: + add sp, 0x4 + pop {r0} + bx r0 + thumb_func_end sub_802B5FC + + thumb_func_start sub_802B624 +sub_802B624: + push {lr} + sub sp, 0x4 + mov r0, sp + bl sub_80144A4 + cmp r0, 0 + bne _0802B638 + movs r0, 0x5 + bl sub_802B548 +_0802B638: + add sp, 0x4 + pop {r0} + bx r0 + thumb_func_end sub_802B624 + + thumb_func_start sub_802B640 +sub_802B640: + push {r4-r7,lr} + mov r7, r8 + push {r7} + adds r6, r0, 0 + adds r4, r1, 0 + mov r8, r2 + bl sub_802B9D8 + lsls r0, 24 + cmp r0, 0 + beq _0802B65A + movs r0, 0 + b _0802B706 +_0802B65A: + ldr r5, _0802B710 + ldr r0, [r5] + cmp r0, 0 + bne _0802B66C + movs r0, 0xD4 + movs r1, 0x8 + bl MemoryAlloc + str r0, [r5] +_0802B66C: + ldr r0, [r5] + str r6, [r0, 0x6C] + lsls r1, r6, 1 + adds r1, r6 + lsls r1, 3 + adds r1, 0x74 + adds r1, r0, r1 + str r1, [r0, 0x70] + adds r0, 0x74 + bl sub_8006518 + ldr r1, [r5] + ldr r2, [r1, 0x6C] + lsls r0, r2, 1 + adds r0, r2 + lsls r0, 3 + adds r1, r0 + adds r1, 0x74 + ldr r0, _0802B714 + ldm r0!, {r2,r3,r7} + stm r1!, {r2,r3,r7} + ldm r0!, {r2,r3,r7} + stm r1!, {r2,r3,r7} + cmp r4, 0 + beq _0802B6B0 + ldr r1, [r5] + ldr r2, [r1, 0x6C] + lsls r0, r2, 1 + adds r0, r2 + lsls r0, 3 + adds r1, 0x7C + adds r1, r0 + ldr r0, [r4] + str r0, [r1] +_0802B6B0: + ldr r0, [r5] + ldr r0, [r0, 0x70] + mov r1, r8 + bl sub_8012D08 + bl ResetUnusedInputStruct + ldr r0, [r5] + adds r0, 0x74 + movs r1, 0x1 + movs r2, 0x1 + bl sub_800641C + ldr r4, [r5] + adds r4, 0x38 + bl sub_802B9A8 + adds r1, r0, 0 + adds r0, r4, 0 + mov r2, r8 + adds r3, r6, 0 + bl sub_8013818 + ldr r2, [r5] + ldr r0, _0802B718 + ldrh r1, [r0] + adds r0, r2, 0 + adds r0, 0x50 + strh r1, [r0] + ldr r0, _0802B71C + ldrh r0, [r0] + adds r1, r2, 0 + adds r1, 0x56 + strh r0, [r1] + adds r0, r2, 0 + adds r0, 0x38 + bl sub_8013984 + bl sub_802B880 + bl sub_802B8D4 + movs r0, 0x1 +_0802B706: + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r1} + bx r1 + .align 2, 0 +_0802B710: .4byte gUnknown_203B2CC +_0802B714: .4byte gUnknown_80DFBEC +_0802B718: .4byte gUnknown_203B2D0 +_0802B71C: .4byte gUnknown_203B2D2 + thumb_func_end sub_802B640 + + thumb_func_start sub_802B720 +sub_802B720: + push {lr} + lsls r0, 24 + cmp r0, 0 + bne _0802B73C + ldr r0, _0802B738 + ldr r0, [r0] + adds r0, 0x38 + bl sub_8013660 + movs r0, 0 + b _0802B7A2 + .align 2, 0 +_0802B738: .4byte gUnknown_203B2CC +_0802B73C: + ldr r0, _0802B754 + ldr r0, [r0] + adds r0, 0x38 + bl GetKeyPress + cmp r0, 0x2 + beq _0802B75E + cmp r0, 0x2 + bgt _0802B758 + cmp r0, 0x1 + beq _0802B768 + b _0802B77C + .align 2, 0 +_0802B754: .4byte gUnknown_203B2CC +_0802B758: + cmp r0, 0x4 + beq _0802B772 + b _0802B77C +_0802B75E: + movs r0, 0x1 + bl PlayMenuSoundEffect + movs r0, 0x2 + b _0802B7A2 +_0802B768: + movs r0, 0 + bl PlayMenuSoundEffect + movs r0, 0x3 + b _0802B7A2 +_0802B772: + movs r0, 0x4 + bl PlayMenuSoundEffect + movs r0, 0x4 + b _0802B7A2 +_0802B77C: + ldr r0, _0802B794 + ldr r0, [r0] + adds r0, 0x38 + movs r1, 0x1 + bl sub_80138B8 + lsls r0, 24 + cmp r0, 0 + bne _0802B798 + movs r0, 0 + b _0802B7A2 + .align 2, 0 +_0802B794: .4byte gUnknown_203B2CC +_0802B798: + bl sub_802B880 + bl sub_802B8D4 + movs r0, 0x1 +_0802B7A2: + pop {r1} + bx r1 + thumb_func_end sub_802B720 + + thumb_func_start sub_802B7A8 +sub_802B7A8: + ldr r0, _0802B7CC + ldr r2, [r0] + adds r0, r2, 0 + adds r0, 0x56 + movs r3, 0 + ldrsh r1, [r0, r3] + subs r0, 0x2 + movs r3, 0 + ldrsh r0, [r0, r3] + muls r0, r1 + adds r1, r2, 0 + adds r1, 0x50 + movs r3, 0 + ldrsh r1, [r1, r3] + adds r0, r1 + adds r0, r2, r0 + ldrb r0, [r0] + bx lr + .align 2, 0 +_0802B7CC: .4byte gUnknown_203B2CC + thumb_func_end sub_802B7A8 + + thumb_func_start sub_802B7D0 +sub_802B7D0: + push {r4,r5,lr} + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + bl ResetUnusedInputStruct + ldr r5, _0802B818 + ldr r0, [r5] + adds r0, 0x74 + movs r1, 0 + movs r2, 0 + bl sub_800641C + bl sub_802B9A8 + adds r1, r0, 0 + ldr r0, [r5] + adds r2, r0, 0 + adds r2, 0x5A + strh r1, [r2] + adds r0, 0x38 + bl sub_8013984 + bl sub_802B880 + bl sub_802B8D4 + cmp r4, 0 + beq _0802B812 + ldr r0, [r5] + adds r0, 0x38 + bl AddMenuCursorSprite +_0802B812: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_0802B818: .4byte gUnknown_203B2CC + thumb_func_end sub_802B7D0 + + thumb_func_start sub_802B81C +sub_802B81C: + push {r4,r5,lr} + ldr r4, _0802B870 + ldr r2, [r4] + cmp r2, 0 + beq _0802B86A + ldr r1, _0802B874 + adds r0, r2, 0 + adds r0, 0x50 + ldrh r0, [r0] + strh r0, [r1] + ldr r1, _0802B878 + adds r0, r2, 0 + adds r0, 0x56 + ldrh r0, [r0] + strh r0, [r1] + ldr r0, [r2, 0x6C] + lsls r1, r0, 1 + adds r1, r0 + lsls r1, 3 + adds r1, r2, r1 + adds r1, 0x74 + ldr r0, _0802B87C + ldm r0!, {r2,r3,r5} + stm r1!, {r2,r3,r5} + ldm r0!, {r2,r3,r5} + stm r1!, {r2,r3,r5} + bl ResetUnusedInputStruct + ldr r0, [r4] + adds r0, 0x74 + movs r1, 0x1 + movs r2, 0x1 + bl sub_800641C + ldr r0, [r4] + bl MemoryFree + movs r0, 0 + str r0, [r4] +_0802B86A: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_0802B870: .4byte gUnknown_203B2CC +_0802B874: .4byte gUnknown_203B2D0 +_0802B878: .4byte gUnknown_203B2D2 +_0802B87C: .4byte gUnknown_80DFBD0 + thumb_func_end sub_802B81C + + thumb_func_start sub_802B880 +sub_802B880: + push {r4,lr} + ldr r4, _0802B8D0 + ldr r0, [r4] + adds r0, 0x52 + movs r1, 0 + ldrsh r0, [r0, r1] + movs r1, 0xC + bl sub_80095E4 + adds r0, 0x2 + lsls r0, 16 + ldr r2, [r4] + ldr r3, [r2, 0x6C] + lsls r1, r3, 1 + adds r1, r3 + lsls r1, 3 + adds r1, r2, r1 + adds r1, 0x82 + asrs r3, r0, 16 + lsrs r0, 16 + strh r0, [r1] + ldr r1, [r2, 0x6C] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 3 + adds r2, r0 + adds r3, 0x2 + adds r2, 0x84 + strh r3, [r2] + bl ResetUnusedInputStruct + ldr r0, [r4] + adds r0, 0x74 + movs r1, 0x1 + movs r2, 0x1 + bl sub_800641C + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0802B8D0: .4byte gUnknown_203B2CC + thumb_func_end sub_802B880 + + thumb_func_start sub_802B8D4 +sub_802B8D4: + push {r4-r7,lr} + sub sp, 0x8 + ldr r4, _0802B99C + ldr r0, [r4] + ldr r0, [r0, 0x6C] + bl sub_8008C54 + ldr r0, [r4] + ldr r0, [r0, 0x6C] + bl sub_80073B8 + ldr r2, _0802B9A0 + ldr r0, [r4] + ldr r3, [r0, 0x6C] + movs r0, 0 + str r0, [sp] + movs r0, 0xA + movs r1, 0 + bl xxx_call_draw_string + ldr r0, _0802B9A4 + ldrb r0, [r0, 0x2] + lsls r0, 3 + adds r0, 0x4 + ldr r3, [r4] + adds r1, r3, 0 + adds r1, 0x56 + movs r5, 0 + ldrsh r2, [r1, r5] + adds r2, 0x1 + movs r1, 0x7 + str r1, [sp] + ldr r1, [r3, 0x6C] + str r1, [sp, 0x4] + movs r1, 0 + movs r3, 0x2 + bl sub_8012BC4 + movs r6, 0 + ldr r0, [r4] + adds r0, 0x52 + movs r1, 0 + ldrsh r0, [r0, r1] + cmp r6, r0 + bge _0802B98A + adds r7, r4, 0 +_0802B930: + ldr r0, [r7] + adds r0, 0x38 + adds r1, r6, 0 + bl sub_8013800 + adds r5, r0, 0 + ldr r1, [r7] + adds r0, r1, 0 + adds r0, 0x56 + movs r3, 0 + ldrsh r2, [r0, r3] + subs r0, 0x2 + movs r3, 0 + ldrsh r0, [r0, r3] + muls r0, r2 + adds r0, r6 + adds r0, r1, r0 + ldrb r4, [r0] + ldr r3, [r1, 0x6C] + movs r0, 0xA + adds r1, r5, 0 + movs r2, 0x6 + bl sub_803B6B0 + bl sub_802BC7C + adds r0, r4, 0 + bl GetPokemonMailHeadline + adds r2, r0, 0 + ldr r0, [r7] + ldr r3, [r0, 0x6C] + movs r0, 0 + str r0, [sp] + movs r0, 0x15 + adds r1, r5, 0 + bl sub_8014FF0 + adds r6, 0x1 + ldr r0, [r7] + adds r0, 0x52 + movs r5, 0 + ldrsh r0, [r0, r5] + cmp r6, r0 + blt _0802B930 +_0802B98A: + ldr r0, _0802B99C + ldr r0, [r0] + ldr r0, [r0, 0x6C] + bl sub_80073E0 + add sp, 0x8 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_0802B99C: .4byte gUnknown_203B2CC +_0802B9A0: .4byte gUnknown_80DFC04 +_0802B9A4: .4byte gUnknown_80DFBE8 + thumb_func_end sub_802B8D4 + + thumb_func_start sub_802B9A8 +sub_802B9A8: + push {r4,r5,lr} + movs r5, 0 + movs r4, 0 +_0802B9AE: + lsls r0, r4, 24 + lsrs r0, 24 + bl sub_8096E14 + lsls r0, 24 + cmp r0, 0 + beq _0802B9C6 + ldr r0, _0802B9D4 + ldr r0, [r0] + adds r0, r5 + strb r4, [r0] + adds r5, 0x1 +_0802B9C6: + adds r4, 0x1 + cmp r4, 0x37 + ble _0802B9AE + adds r0, r5, 0 + pop {r4,r5} + pop {r1} + bx r1 + .align 2, 0 +_0802B9D4: .4byte gUnknown_203B2CC + thumb_func_end sub_802B9A8 + + thumb_func_start sub_802B9D8 +sub_802B9D8: + push {r4,lr} + movs r4, 0 +_0802B9DC: + lsls r0, r4, 24 + lsrs r0, 24 + bl sub_8096E14 + lsls r0, 24 + cmp r0, 0 + beq _0802B9EE + movs r0, 0 + b _0802B9F6 +_0802B9EE: + adds r4, 0x1 + cmp r4, 0x37 + ble _0802B9DC + movs r0, 0x1 +_0802B9F6: + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_802B9D8 + + thumb_func_start sub_802B9FC +sub_802B9FC: + push {r4-r7,lr} + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + ldr r5, _0802BA80 + movs r0, 0x94 + movs r1, 0x8 + bl MemoryAlloc + str r0, [r5] + movs r6, 0 + strb r4, [r0, 0x4] + ldr r0, [r5] + adds r0, 0x88 + bl sub_801317C + ldr r1, [r5] + str r6, [r1, 0x24] + adds r1, 0x28 + ldr r0, _0802BA84 + ldm r0!, {r2-r4} + stm r1!, {r2-r4} + ldm r0!, {r2,r3,r7} + stm r1!, {r2,r3,r7} + ldr r1, [r5] + ldr r2, _0802BA88 + adds r1, 0x40 + adds r0, r2, 0 + ldm r0!, {r3,r4,r7} + stm r1!, {r3,r4,r7} + ldm r0!, {r3,r4,r7} + stm r1!, {r3,r4,r7} + ldr r1, [r5] + adds r1, 0x58 + adds r0, r2, 0 + ldm r0!, {r3,r4,r7} + stm r1!, {r3,r4,r7} + ldm r0!, {r3,r4,r7} + stm r1!, {r3,r4,r7} + ldr r0, [r5] + adds r0, 0x70 + ldm r2!, {r1,r4,r7} + stm r0!, {r1,r4,r7} + ldm r2!, {r3,r4,r7} + stm r0!, {r3,r4,r7} + bl ResetUnusedInputStruct + ldr r0, [r5] + adds r0, 0x28 + movs r1, 0x1 + movs r2, 0x1 + bl sub_800641C + ldr r0, [r5] + str r6, [r0, 0x8] + bl sub_802BCC4 + bl sub_802BC7C + movs r0, 0 + bl sub_802BB14 + movs r0, 0x1 + pop {r4-r7} + pop {r1} + bx r1 + .align 2, 0 +_0802BA80: .4byte gUnknown_203B2D4 +_0802BA84: .4byte gUnknown_80DFC34 +_0802BA88: .4byte gUnknown_80DFC18 + thumb_func_end sub_802B9FC + + thumb_func_start sub_802BA8C +sub_802BA8C: + push {lr} + ldr r0, _0802BAA4 + ldr r0, [r0] + ldr r0, [r0] + cmp r0, 0x1 + beq _0802BAB8 + cmp r0, 0x1 + bgt _0802BAA8 + cmp r0, 0 + beq _0802BAB2 + b _0802BAC2 + .align 2, 0 +_0802BAA4: .4byte gUnknown_203B2D4 +_0802BAA8: + cmp r0, 0x2 + beq _0802BAC2 + cmp r0, 0x3 + beq _0802BABE + b _0802BAC2 +_0802BAB2: + bl sub_802BB98 + b _0802BAC6 +_0802BAB8: + bl sub_802BC08 + b _0802BAC6 +_0802BABE: + movs r0, 0x3 + b _0802BAC8 +_0802BAC2: + movs r0, 0x2 + b _0802BAC8 +_0802BAC6: + movs r0, 0 +_0802BAC8: + pop {r1} + bx r1 + thumb_func_end sub_802BA8C + + thumb_func_start sub_802BACC +sub_802BACC: + push {r4,r5,lr} + ldr r4, _0802BB0C + ldr r2, [r4] + cmp r2, 0 + beq _0802BB06 + ldr r0, [r2, 0x24] + lsls r1, r0, 1 + adds r1, r0 + lsls r1, 3 + adds r1, r2, r1 + adds r1, 0x28 + ldr r0, _0802BB10 + ldm r0!, {r2,r3,r5} + stm r1!, {r2,r3,r5} + ldm r0!, {r2,r3,r5} + stm r1!, {r2,r3,r5} + bl ResetUnusedInputStruct + ldr r0, [r4] + adds r0, 0x28 + movs r1, 0x1 + movs r2, 0x1 + bl sub_800641C + ldr r0, [r4] + bl MemoryFree + movs r0, 0 + str r0, [r4] +_0802BB06: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_0802BB0C: .4byte gUnknown_203B2D4 +_0802BB10: .4byte gUnknown_80DFC18 + thumb_func_end sub_802BACC + + thumb_func_start sub_802BB14 +sub_802BB14: + push {lr} + ldr r1, _0802BB24 + ldr r1, [r1] + str r0, [r1] + bl sub_802BB28 + pop {r0} + bx r0 + .align 2, 0 +_0802BB24: .4byte gUnknown_203B2D4 + thumb_func_end sub_802BB14 + + thumb_func_start sub_802BB28 +sub_802BB28: + push {r4,r5,lr} + sub sp, 0x4 + ldr r5, _0802BB94 + ldr r1, [r5] + ldr r0, [r1] + cmp r0, 0 + blt _0802BB8C + cmp r0, 0x1 + bgt _0802BB8C + ldr r0, [r1, 0x24] + bl sub_8008C54 + ldr r0, [r5] + ldr r0, [r0, 0x24] + bl sub_80073B8 + ldr r0, [r5] + ldrb r0, [r0, 0x4] + bl GetPokemonMailHeadline + adds r2, r0, 0 + ldr r0, [r5] + ldr r3, [r0, 0x24] + movs r4, 0 + str r4, [sp] + movs r0, 0xA + movs r1, 0 + bl sub_8014FF0 + ldr r3, [r5] + ldr r1, [r3, 0x8] + lsls r1, 2 + adds r0, r3, 0 + adds r0, 0x10 + adds r0, r1 + ldr r2, [r0] + ldr r3, [r3, 0x24] + str r4, [sp] + movs r0, 0x6 + movs r1, 0x14 + bl sub_8014FF0 + ldr r0, [r5] + ldr r0, [r0, 0x24] + bl sub_80073E0 + ldr r1, [r5] + ldr r0, [r1, 0x8] + adds r0, 0x1 + str r0, [r1, 0x8] +_0802BB8C: + add sp, 0x4 + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_0802BB94: .4byte gUnknown_203B2D4 + thumb_func_end sub_802BB28 + + thumb_func_start sub_802BB98 +sub_802BB98: + push {r4,lr} + ldr r0, _0802BBD4 + ldr r2, [r0] + ldr r1, [r2, 0xC] + adds r4, r0, 0 + cmp r1, 0 + beq _0802BBBC + ldr r0, [r2, 0x20] + movs r1, 0x8 + ands r0, r1 + cmp r0, 0 + beq _0802BBB4 + bl sub_8013E54 +_0802BBB4: + ldr r1, [r4] + ldr r0, [r1, 0x20] + adds r0, 0x1 + str r0, [r1, 0x20] +_0802BBBC: + ldr r1, [r4] + adds r0, r1, 0 + adds r0, 0x88 + ldr r1, [r1, 0x24] + bl sub_8012A64 + cmp r0, 0x1 + beq _0802BBD8 + cmp r0, 0x2 + beq _0802BBF6 + b _0802BC02 + .align 2, 0 +_0802BBD4: .4byte gUnknown_203B2D4 +_0802BBD8: + movs r0, 0 + bl PlayMenuSoundEffect + ldr r0, [r4] + ldr r0, [r0, 0xC] + cmp r0, 0 + beq _0802BBEE + movs r0, 0x1 + bl sub_802BB14 + b _0802BC02 +_0802BBEE: + movs r0, 0x3 + bl sub_802BB14 + b _0802BC02 +_0802BBF6: + movs r0, 0x1 + bl PlayMenuSoundEffect + movs r0, 0x2 + bl sub_802BB14 +_0802BC02: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_802BB98 + + thumb_func_start sub_802BC08 +sub_802BC08: + push {r4,lr} + ldr r0, _0802BC44 + ldr r3, [r0] + ldr r2, [r3, 0x8] + ldr r1, [r3, 0xC] + adds r4, r0, 0 + cmp r2, r1 + bge _0802BC2E + ldr r0, [r3, 0x20] + movs r1, 0x8 + ands r0, r1 + cmp r0, 0 + beq _0802BC26 + bl sub_8013E54 +_0802BC26: + ldr r1, [r4] + ldr r0, [r1, 0x20] + adds r0, 0x1 + str r0, [r1, 0x20] +_0802BC2E: + ldr r1, [r4] + adds r0, r1, 0 + adds r0, 0x88 + ldr r1, [r1, 0x24] + bl sub_8012A64 + cmp r0, 0x1 + beq _0802BC48 + cmp r0, 0x2 + beq _0802BC68 + b _0802BC74 + .align 2, 0 +_0802BC44: .4byte gUnknown_203B2D4 +_0802BC48: + movs r0, 0 + bl PlayMenuSoundEffect + ldr r0, [r4] + ldr r1, [r0, 0x8] + ldr r0, [r0, 0xC] + cmp r1, r0 + bge _0802BC60 + movs r0, 0x1 + bl sub_802BB14 + b _0802BC74 +_0802BC60: + movs r0, 0x3 + bl sub_802BB14 + b _0802BC74 +_0802BC68: + movs r0, 0x1 + bl PlayMenuSoundEffect + movs r0, 0x2 + bl sub_802BB14 +_0802BC74: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_802BC08 + + thumb_func_start sub_802BC7C +sub_802BC7C: + push {r4,lr} + ldr r4, _0802BCA4 + bl sub_808D3BC + adds r1, r0, 0 + adds r0, r4, 0 + bl sub_808DA34 + ldr r0, _0802BCA8 + ldr r0, [r0] + ldrb r0, [r0, 0xB] + cmp r0, 0x1 + bne _0802BCB0 + adds r0, r4, 0 + adds r0, 0x50 + ldr r1, _0802BCAC + bl strcpy + b _0802BCBA + .align 2, 0 +_0802BCA4: .4byte gAvailablePokemonNames +_0802BCA8: .4byte gUnknown_203B46C +_0802BCAC: .4byte gUnknown_80DFC4C +_0802BCB0: + adds r0, r4, 0 + adds r0, 0x50 + ldr r1, _0802BCC0 + bl strcpy +_0802BCBA: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0802BCC0: .4byte gUnknown_80DFC50 + thumb_func_end sub_802BC7C + + thumb_func_start sub_802BCC4 +sub_802BCC4: + push {r4,lr} + ldr r4, _0802BCDC + ldr r0, [r4] + ldrb r0, [r0, 0x4] + bl GetPokemonMailText + adds r3, r0, 0 + ldr r1, [r4] + movs r0, 0 + str r0, [r1, 0xC] + str r3, [r1, 0x10] + b _0802BD08 + .align 2, 0 +_0802BCDC: .4byte gUnknown_203B2D4 +_0802BCE0: + cmp r0, 0x23 + bne _0802BD06 + ldrb r2, [r3, 0x1] + cmp r2, 0x50 + beq _0802BCF0 + adds r1, r3, 0x2 + cmp r2, 0x70 + bne _0802BD02 +_0802BCF0: + ldr r0, [r4] + ldr r1, [r0, 0xC] + adds r1, 0x1 + str r1, [r0, 0xC] + lsls r1, 2 + adds r0, 0x10 + adds r0, r1 + adds r1, r3, 0x2 + str r1, [r0] +_0802BD02: + adds r3, r1, 0 + b _0802BD08 +_0802BD06: + adds r3, 0x1 +_0802BD08: + ldrb r0, [r3] + cmp r0, 0 + bne _0802BCE0 + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_802BCC4 + + thumb_func_start sub_802BD14 +sub_802BD14: + push {r4-r7,lr} + mov r7, r8 + push {r7} + adds r6, r0, 0 + adds r4, r1, 0 + mov r8, r2 + bl sub_802C0E8 + lsls r0, 24 + cmp r0, 0 + beq _0802BD2E + movs r0, 0 + b _0802BDD4 +_0802BD2E: + ldr r5, _0802BDE0 + ldr r0, [r5] + cmp r0, 0 + bne _0802BD40 + movs r0, 0xA4 + movs r1, 0x8 + bl MemoryAlloc + str r0, [r5] +_0802BD40: + ldr r0, [r5] + str r6, [r0, 0x38] + lsls r1, r6, 1 + adds r1, r6 + lsls r1, 3 + adds r1, 0x40 + adds r1, r0, r1 + str r1, [r0, 0x3C] + adds r0, 0x40 + bl sub_8006518 + ldr r1, [r5] + ldr r2, [r1, 0x38] + lsls r0, r2, 1 + adds r0, r2 + lsls r0, 3 + adds r1, r0 + adds r1, 0x40 + ldr r0, _0802BDE4 + ldm r0!, {r2,r3,r7} + stm r1!, {r2,r3,r7} + ldm r0!, {r2,r3,r7} + stm r1!, {r2,r3,r7} + ldr r2, [r5] + ldr r1, [r2, 0x3C] + adds r0, r2, 0 + adds r0, 0xA0 + str r0, [r1, 0x14] + cmp r4, 0 + beq _0802BD8E + ldr r1, [r2, 0x38] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 3 + adds r1, r2, 0 + adds r1, 0x48 + adds r1, r0 + ldr r0, [r4] + str r0, [r1] +_0802BD8E: + ldr r0, [r5] + ldr r0, [r0, 0x3C] + mov r1, r8 + bl sub_8012D34 + bl ResetUnusedInputStruct + ldr r0, [r5] + adds r0, 0x40 + movs r1, 0x1 + movs r2, 0x1 + bl sub_800641C + ldr r4, [r5] + adds r4, 0x4 + bl sub_802C0B8 + adds r1, r0, 0 + adds r0, r4, 0 + mov r2, r8 + adds r3, r6, 0 + bl sub_8013848 + ldr r0, [r5] + ldr r1, _0802BDE8 + ldrh r1, [r1] + strh r1, [r0, 0x1C] + adds r0, 0x4 + bl sub_8013984 + bl sub_802BF30 + bl CreateMailMenu + movs r0, 0x1 +_0802BDD4: + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r1} + bx r1 + .align 2, 0 +_0802BDE0: .4byte gUnknown_203B2D8 +_0802BDE4: .4byte gUnknown_80DFC74 +_0802BDE8: .4byte gUnknown_203B2DC + thumb_func_end sub_802BD14 + + thumb_func_start sub_802BDEC +sub_802BDEC: + push {lr} + lsls r0, 24 + cmp r0, 0 + bne _0802BE08 + ldr r0, _0802BE04 + ldr r0, [r0] + adds r0, 0x4 + bl sub_8013660 + movs r0, 0 + b _0802BE6E + .align 2, 0 +_0802BE04: .4byte gUnknown_203B2D8 +_0802BE08: + ldr r0, _0802BE20 + ldr r0, [r0] + adds r0, 0x4 + bl GetKeyPress + cmp r0, 0x2 + beq _0802BE2A + cmp r0, 0x2 + bgt _0802BE24 + cmp r0, 0x1 + beq _0802BE34 + b _0802BE48 + .align 2, 0 +_0802BE20: .4byte gUnknown_203B2D8 +_0802BE24: + cmp r0, 0x4 + beq _0802BE3E + b _0802BE48 +_0802BE2A: + movs r0, 0x1 + bl PlayMenuSoundEffect + movs r0, 0x2 + b _0802BE6E +_0802BE34: + movs r0, 0 + bl PlayMenuSoundEffect + movs r0, 0x3 + b _0802BE6E +_0802BE3E: + movs r0, 0x4 + bl PlayMenuSoundEffect + movs r0, 0x4 + b _0802BE6E +_0802BE48: + ldr r0, _0802BE60 + ldr r0, [r0] + adds r0, 0x4 + movs r1, 0x1 + bl sub_80138B8 + lsls r0, 24 + cmp r0, 0 + bne _0802BE64 + movs r0, 0 + b _0802BE6E + .align 2, 0 +_0802BE60: .4byte gUnknown_203B2D8 +_0802BE64: + bl sub_802BF30 + bl CreateMailMenu + movs r0, 0x1 +_0802BE6E: + pop {r1} + bx r1 + thumb_func_end sub_802BDEC + + thumb_func_start sub_802BE74 +sub_802BE74: + ldr r0, _0802BE90 + ldr r1, [r0] + movs r0, 0x22 + ldrsh r2, [r1, r0] + movs r3, 0x20 + ldrsh r0, [r1, r3] + muls r0, r2 + movs r3, 0x1C + ldrsh r2, [r1, r3] + adds r0, r2 + adds r1, r0 + ldrb r0, [r1] + bx lr + .align 2, 0 +_0802BE90: .4byte gUnknown_203B2D8 + thumb_func_end sub_802BE74 + + thumb_func_start sub_802BE94 +sub_802BE94: + push {r4,r5,lr} + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + bl ResetUnusedInputStruct + ldr r5, _0802BED8 + ldr r0, [r5] + adds r0, 0x40 + movs r1, 0 + movs r2, 0 + bl sub_800641C + bl sub_802C0B8 + adds r1, r0, 0 + ldr r0, [r5] + strh r1, [r0, 0x26] + adds r0, 0x4 + bl sub_8013984 + bl sub_802BF30 + bl CreateMailMenu + cmp r4, 0 + beq _0802BED2 + ldr r0, [r5] + adds r0, 0x4 + bl AddMenuCursorSprite +_0802BED2: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_0802BED8: .4byte gUnknown_203B2D8 + thumb_func_end sub_802BE94 + + thumb_func_start sub_802BEDC +sub_802BEDC: + push {r4,r5,lr} + ldr r4, _0802BF24 + ldr r2, [r4] + cmp r2, 0 + beq _0802BF1C + ldr r1, _0802BF28 + ldrh r0, [r2, 0x1C] + strh r0, [r1] + ldr r0, [r2, 0x38] + lsls r1, r0, 1 + adds r1, r0 + lsls r1, 3 + adds r1, r2, r1 + adds r1, 0x40 + ldr r0, _0802BF2C + ldm r0!, {r2,r3,r5} + stm r1!, {r2,r3,r5} + ldm r0!, {r2,r3,r5} + stm r1!, {r2,r3,r5} + bl ResetUnusedInputStruct + ldr r0, [r4] + adds r0, 0x40 + movs r1, 0x1 + movs r2, 0x1 + bl sub_800641C + ldr r0, [r4] + bl MemoryFree + movs r0, 0 + str r0, [r4] +_0802BF1C: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_0802BF24: .4byte gUnknown_203B2D8 +_0802BF28: .4byte gUnknown_203B2DC +_0802BF2C: .4byte gUnknown_80DFC5C + thumb_func_end sub_802BEDC + + thumb_func_start sub_802BF30 +sub_802BF30: + push {r4,lr} + ldr r4, _0802BF9C + ldr r0, [r4] + adds r0, 0xA0 + movs r2, 0 + movs r1, 0x1 + strb r1, [r0] + ldr r0, [r4] + adds r0, 0xA1 + strb r2, [r0] + ldr r0, [r4] + adds r0, 0xA2 + movs r1, 0xC + strb r1, [r0] + ldr r0, [r4] + adds r0, 0xA3 + strb r2, [r0] + ldr r0, [r4] + movs r1, 0x1E + ldrsh r0, [r0, r1] + movs r1, 0x18 + bl sub_8009614 + adds r0, 0x2 + lsls r0, 16 + ldr r2, [r4] + ldr r3, [r2, 0x38] + lsls r1, r3, 1 + adds r1, r3 + lsls r1, 3 + adds r1, r2, r1 + adds r1, 0x4E + asrs r3, r0, 16 + lsrs r0, 16 + strh r0, [r1] + ldr r1, [r2, 0x38] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 3 + adds r2, r0 + adds r3, 0x2 + adds r2, 0x50 + strh r3, [r2] + bl ResetUnusedInputStruct + ldr r0, [r4] + adds r0, 0x40 + movs r1, 0x1 + movs r2, 0x1 + bl sub_800641C + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0802BF9C: .4byte gUnknown_203B2D8 + thumb_func_end sub_802BF30 + + thumb_func_start CreateMailMenu +CreateMailMenu: + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + sub sp, 0xDC + ldr r4, _0802C060 + ldr r0, [r4] + ldr r0, [r0, 0x38] + bl sub_8008C54 + ldr r0, [r4] + ldr r0, [r0, 0x38] + bl sub_80073B8 + ldr r1, [r4] + movs r2, 0x22 + ldrsh r0, [r1, r2] + lsls r0, 3 + adds r0, 0xA + ldr r2, _0802C064 + ldr r3, [r1, 0x38] + movs r1, 0 + str r1, [sp] + bl xxx_call_draw_string + movs r6, 0 + ldr r0, [r4] + movs r3, 0x1E + ldrsh r0, [r0, r3] + cmp r6, r0 + bge _0802C09A + adds r7, r4, 0 + ldr r0, _0802C068 + mov r9, r0 + add r1, sp, 0x5C + mov r8, r1 +_0802BFE8: + ldr r1, [r7] + movs r3, 0x22 + ldrsh r2, [r1, r3] + movs r3, 0x20 + ldrsh r0, [r1, r3] + muls r0, r2 + adds r0, r6 + adds r1, r0 + ldrb r0, [r1] + bl sub_8095FE8 + adds r5, r0, 0 + ldr r0, [r7] + ldr r1, [r0, 0x38] + str r1, [sp, 0x4] + adds r0, 0x4 + adds r1, r6, 0 + bl sub_8013800 + str r0, [sp, 0x4C] + ldrb r0, [r5] + cmp r0, 0x1 + bne _0802C06C + ldr r0, [r7] + adds r0, 0x4 + adds r1, r6, 0 + bl sub_8013800 + adds r4, r0, 0 + ldr r0, [r7] + ldr r3, [r0, 0x38] + movs r0, 0xA + adds r1, r4, 0 + movs r2, 0x6 + bl sub_803B6B0 + bl sub_808D33C + adds r1, r0, 0 + mov r0, r9 + bl sub_808DA34 + ldrb r0, [r5, 0x5] + bl GetPokemonMailHeadline + adds r1, r0, 0 + mov r0, r8 + mov r2, r9 + bl sub_800D158 + ldr r0, [r7] + ldr r3, [r0, 0x38] + movs r0, 0 + str r0, [sp] + movs r0, 0x15 + adds r1, r4, 0 + mov r2, r8 + bl xxx_call_draw_string + b _0802C08E + .align 2, 0 +_0802C060: .4byte gUnknown_203B2D8 +_0802C064: .4byte gMailboxText +_0802C068: .4byte gAvailablePokemonNames +_0802C06C: + adds r0, r5, 0 + add r1, sp, 0x4 + bl sub_803B35C + adds r0, r5, 0 + bl sub_80968B0 + lsls r0, 24 + cmp r0, 0 + beq _0802C088 + mov r1, sp + adds r1, 0x47 + movs r0, 0x2 + strb r0, [r1] +_0802C088: + add r0, sp, 0x4 + bl sub_803B6D4 +_0802C08E: + adds r6, 0x1 + ldr r0, [r7] + movs r1, 0x1E + ldrsh r0, [r0, r1] + cmp r6, r0 + blt _0802BFE8 +_0802C09A: + ldr r0, _0802C0B4 + ldr r0, [r0] + ldr r0, [r0, 0x38] + bl sub_80073E0 + add sp, 0xDC + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_0802C0B4: .4byte gUnknown_203B2D8 + thumb_func_end CreateMailMenu + + thumb_func_start sub_802C0B8 +sub_802C0B8: + push {r4,r5,lr} + movs r5, 0 + movs r4, 0 +_0802C0BE: + lsls r0, r4, 24 + lsrs r0, 24 + bl sub_8096000 + lsls r0, 24 + cmp r0, 0 + bne _0802C0D6 + ldr r0, _0802C0E4 + ldr r0, [r0] + adds r0, r5 + strb r4, [r0] + adds r5, 0x1 +_0802C0D6: + adds r4, 0x1 + cmp r4, 0x3 + ble _0802C0BE + adds r0, r5, 0 + pop {r4,r5} + pop {r1} + bx r1 + .align 2, 0 +_0802C0E4: .4byte gUnknown_203B2D8 + thumb_func_end sub_802C0B8 + + thumb_func_start sub_802C0E8 +sub_802C0E8: + push {r4,lr} + movs r4, 0 +_0802C0EC: + lsls r0, r4, 24 + lsrs r0, 24 + bl sub_8096000 + lsls r0, 24 + cmp r0, 0 + bne _0802C0FE + movs r0, 0 + b _0802C106 +_0802C0FE: + adds r4, 0x1 + cmp r4, 0x3 + ble _0802C0EC + movs r0, 0x1 +_0802C106: + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_802C0E8 + + thumb_func_start sub_802C10C +sub_802C10C: + push {r4-r7,lr} + mov r7, r8 + push {r7} + adds r6, r0, 0 + adds r4, r1, 0 + mov r8, r2 + bl sub_802C4A4 + lsls r0, 24 + cmp r0, 0 + beq _0802C126 + movs r0, 0 + b _0802C1CC +_0802C126: + ldr r5, _0802C1D8 + ldr r0, [r5] + cmp r0, 0 + bne _0802C138 + movs r0, 0xA8 + movs r1, 0x8 + bl MemoryAlloc + str r0, [r5] +_0802C138: + ldr r0, [r5] + str r6, [r0, 0x3C] + lsls r1, r6, 1 + adds r1, r6 + lsls r1, 3 + adds r1, 0x44 + adds r1, r0, r1 + str r1, [r0, 0x40] + adds r0, 0x44 + bl sub_8006518 + ldr r1, [r5] + ldr r2, [r1, 0x3C] + lsls r0, r2, 1 + adds r0, r2 + lsls r0, 3 + adds r1, r0 + adds r1, 0x44 + ldr r0, _0802C1DC + ldm r0!, {r2,r3,r7} + stm r1!, {r2,r3,r7} + ldm r0!, {r2,r3,r7} + stm r1!, {r2,r3,r7} + ldr r2, [r5] + ldr r1, [r2, 0x40] + adds r0, r2, 0 + adds r0, 0xA4 + str r0, [r1, 0x14] + cmp r4, 0 + beq _0802C186 + ldr r1, [r2, 0x3C] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 3 + adds r1, r2, 0 + adds r1, 0x4C + adds r1, r0 + ldr r0, [r4] + str r0, [r1] +_0802C186: + ldr r0, [r5] + ldr r0, [r0, 0x40] + mov r1, r8 + bl sub_8012D34 + bl ResetUnusedInputStruct + ldr r0, [r5] + adds r0, 0x44 + movs r1, 0x1 + movs r2, 0x1 + bl sub_800641C + ldr r4, [r5] + adds r4, 0x8 + bl sub_802C474 + adds r1, r0, 0 + adds r0, r4, 0 + mov r2, r8 + adds r3, r6, 0 + bl sub_8013848 + ldr r0, [r5] + ldr r1, _0802C1E0 + ldrh r1, [r1] + strh r1, [r0, 0x20] + adds r0, 0x8 + bl sub_8013984 + bl sub_802C328 + bl sub_802C39C + movs r0, 0x1 +_0802C1CC: + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r1} + bx r1 + .align 2, 0 +_0802C1D8: .4byte gUnknown_203B2E0 +_0802C1DC: .4byte gUnknown_80DFCB4 +_0802C1E0: .4byte gUnknown_203B2E4 + thumb_func_end sub_802C10C + + thumb_func_start sub_802C1E4 +sub_802C1E4: + push {lr} + lsls r0, 24 + cmp r0, 0 + bne _0802C200 + ldr r0, _0802C1FC + ldr r0, [r0] + adds r0, 0x8 + bl sub_8013660 + movs r0, 0 + b _0802C266 + .align 2, 0 +_0802C1FC: .4byte gUnknown_203B2E0 +_0802C200: + ldr r0, _0802C218 + ldr r0, [r0] + adds r0, 0x8 + bl GetKeyPress + cmp r0, 0x2 + beq _0802C222 + cmp r0, 0x2 + bgt _0802C21C + cmp r0, 0x1 + beq _0802C22C + b _0802C240 + .align 2, 0 +_0802C218: .4byte gUnknown_203B2E0 +_0802C21C: + cmp r0, 0x4 + beq _0802C236 + b _0802C240 +_0802C222: + movs r0, 0x1 + bl PlayMenuSoundEffect + movs r0, 0x2 + b _0802C266 +_0802C22C: + movs r0, 0 + bl PlayMenuSoundEffect + movs r0, 0x3 + b _0802C266 +_0802C236: + movs r0, 0x4 + bl PlayMenuSoundEffect + movs r0, 0x4 + b _0802C266 +_0802C240: + ldr r0, _0802C258 + ldr r0, [r0] + adds r0, 0x8 + movs r1, 0x1 + bl sub_80138B8 + lsls r0, 24 + cmp r0, 0 + bne _0802C25C + movs r0, 0 + b _0802C266 + .align 2, 0 +_0802C258: .4byte gUnknown_203B2E0 +_0802C25C: + bl sub_802C328 + bl sub_802C39C + movs r0, 0x1 +_0802C266: + pop {r1} + bx r1 + thumb_func_end sub_802C1E4 + + thumb_func_start sub_802C26C +sub_802C26C: + ldr r0, _0802C288 + ldr r1, [r0] + movs r0, 0x26 + ldrsh r2, [r1, r0] + movs r3, 0x24 + ldrsh r0, [r1, r3] + muls r0, r2 + movs r3, 0x20 + ldrsh r2, [r1, r3] + adds r0, r2 + adds r1, r0 + ldrb r0, [r1] + bx lr + .align 2, 0 +_0802C288: .4byte gUnknown_203B2E0 + thumb_func_end sub_802C26C + + thumb_func_start sub_802C28C +sub_802C28C: + push {r4,r5,lr} + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + bl ResetUnusedInputStruct + ldr r5, _0802C2D0 + ldr r0, [r5] + adds r0, 0x44 + movs r1, 0 + movs r2, 0 + bl sub_800641C + bl sub_802C474 + adds r1, r0, 0 + ldr r0, [r5] + strh r1, [r0, 0x2A] + adds r0, 0x8 + bl sub_8013984 + bl sub_802C328 + bl sub_802C39C + cmp r4, 0 + beq _0802C2CA + ldr r0, [r5] + adds r0, 0x8 + bl AddMenuCursorSprite +_0802C2CA: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_0802C2D0: .4byte gUnknown_203B2E0 + thumb_func_end sub_802C28C + + thumb_func_start sub_802C2D4 +sub_802C2D4: + push {r4,r5,lr} + ldr r4, _0802C31C + ldr r2, [r4] + cmp r2, 0 + beq _0802C314 + ldr r1, _0802C320 + ldrh r0, [r2, 0x20] + strh r0, [r1] + ldr r0, [r2, 0x3C] + lsls r1, r0, 1 + adds r1, r0 + lsls r1, 3 + adds r1, r2, r1 + adds r1, 0x44 + ldr r0, _0802C324 + ldm r0!, {r2,r3,r5} + stm r1!, {r2,r3,r5} + ldm r0!, {r2,r3,r5} + stm r1!, {r2,r3,r5} + bl ResetUnusedInputStruct + ldr r0, [r4] + adds r0, 0x44 + movs r1, 0x1 + movs r2, 0x1 + bl sub_800641C + ldr r0, [r4] + bl MemoryFree + movs r0, 0 + str r0, [r4] +_0802C314: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_0802C31C: .4byte gUnknown_203B2E0 +_0802C320: .4byte gUnknown_203B2E4 +_0802C324: .4byte gUnknown_80DFC9C + thumb_func_end sub_802C2D4 + + thumb_func_start sub_802C328 +sub_802C328: + push {r4,lr} + ldr r4, _0802C398 + ldr r0, [r4] + ldrh r1, [r0, 0x28] + adds r0, 0xA4 + movs r2, 0 + strb r1, [r0] + ldr r0, [r4] + ldrh r1, [r0, 0x26] + adds r0, 0xA5 + strb r1, [r0] + ldr r0, [r4] + adds r0, 0xA6 + movs r1, 0xC + strb r1, [r0] + ldr r0, [r4] + adds r0, 0xA7 + strb r2, [r0] + ldr r0, [r4] + movs r1, 0x22 + ldrsh r0, [r0, r1] + movs r1, 0x18 + bl sub_8009614 + adds r0, 0x2 + lsls r0, 16 + ldr r2, [r4] + ldr r3, [r2, 0x3C] + lsls r1, r3, 1 + adds r1, r3 + lsls r1, 3 + adds r1, r2, r1 + adds r1, 0x52 + asrs r3, r0, 16 + lsrs r0, 16 + strh r0, [r1] + ldr r1, [r2, 0x3C] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 3 + adds r2, r0 + adds r3, 0x2 + adds r2, 0x54 + strh r3, [r2] + bl ResetUnusedInputStruct + ldr r0, [r4] + adds r0, 0x44 + movs r1, 0x1 + movs r2, 0x1 + bl sub_800641C + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0802C398: .4byte gUnknown_203B2E0 + thumb_func_end sub_802C328 + + thumb_func_start sub_802C39C +sub_802C39C: + push {r4-r7,lr} + sub sp, 0x60 + ldr r7, _0802C3F8 + ldr r0, [r7] + ldr r0, [r0, 0x3C] + bl sub_8008C54 + ldr r0, [r7] + ldr r0, [r0, 0x3C] + bl sub_80073B8 + ldr r0, [r7] + movs r1, 0x26 + ldrsh r4, [r0, r1] + lsls r4, 3 + adds r5, r4, 0 + adds r5, 0xA + ldr r2, _0802C3FC + ldr r3, [r0, 0x3C] + movs r0, 0 + str r0, [sp] + adds r0, r5, 0 + movs r1, 0 + bl xxx_call_draw_string + adds r4, 0x4 + ldr r1, [r7] + adds r0, r1, 0 + adds r0, 0xA6 + ldrb r0, [r0] + lsls r0, 3 + adds r5, r4, r0 + movs r3, 0x26 + ldrsh r2, [r1, r3] + adds r2, 0x1 + movs r0, 0x7 + str r0, [sp] + ldr r0, [r1, 0x3C] + str r0, [sp, 0x4] + adds r0, r5, 0 + movs r1, 0 + movs r3, 0x2 + bl sub_8012BC4 + movs r6, 0 + b _0802C452 + .align 2, 0 +_0802C3F8: .4byte gUnknown_203B2E0 +_0802C3FC: .4byte gBulletinBoardText +_0802C400: + ldr r1, [r7] + movs r3, 0x26 + ldrsh r2, [r1, r3] + movs r3, 0x24 + ldrsh r0, [r1, r3] + muls r0, r2 + adds r0, r6 + adds r1, r0 + ldrb r5, [r1] + adds r0, r5, 0 + bl sub_8096574 + adds r4, r0, 0 + ldr r0, [r7] + ldr r1, [r0, 0x3C] + str r1, [sp, 0x8] + adds r0, 0x8 + adds r1, r6, 0 + bl sub_8013800 + str r0, [sp, 0x50] + adds r0, r4, 0 + add r1, sp, 0x8 + bl sub_803B35C + adds r0, r5, 0 + bl sub_8096574 + bl sub_80968B0 + lsls r0, 24 + cmp r0, 0 + beq _0802C44A + mov r1, sp + adds r1, 0x4B + movs r0, 0x2 + strb r0, [r1] +_0802C44A: + add r0, sp, 0x8 + bl sub_803B6D4 + adds r6, 0x1 +_0802C452: + ldr r0, [r7] + movs r1, 0x22 + ldrsh r0, [r0, r1] + cmp r6, r0 + blt _0802C400 + ldr r0, _0802C470 + ldr r0, [r0] + ldr r0, [r0, 0x3C] + bl sub_80073E0 + add sp, 0x60 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_0802C470: .4byte gUnknown_203B2E0 + thumb_func_end sub_802C39C + + thumb_func_start sub_802C474 +sub_802C474: + push {r4,r5,lr} + movs r5, 0 + movs r4, 0 +_0802C47A: + lsls r0, r4, 24 + lsrs r0, 24 + bl sub_809658C + lsls r0, 24 + cmp r0, 0 + bne _0802C492 + ldr r0, _0802C4A0 + ldr r0, [r0] + adds r0, r5 + strb r4, [r0] + adds r5, 0x1 +_0802C492: + adds r4, 0x1 + cmp r4, 0x7 + ble _0802C47A + adds r0, r5, 0 + pop {r4,r5} + pop {r1} + bx r1 + .align 2, 0 +_0802C4A0: .4byte gUnknown_203B2E0 + thumb_func_end sub_802C474 + + thumb_func_start sub_802C4A4 +sub_802C4A4: + push {r4,lr} + movs r4, 0 +_0802C4A8: + lsls r0, r4, 24 + lsrs r0, 24 + bl sub_809658C + lsls r0, 24 + cmp r0, 0 + bne _0802C4BA + movs r0, 0 + b _0802C4C2 +_0802C4BA: + adds r4, 0x1 + cmp r4, 0x7 + ble _0802C4A8 + movs r0, 0x1 +_0802C4C2: + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_802C4A4 + + thumb_func_start sub_802C4C8 +sub_802C4C8: + push {r4-r7,lr} + mov r7, r8 + push {r7} + adds r6, r0, 0 + adds r4, r1, 0 + mov r8, r2 + bl sub_802C83C + lsls r0, 24 + cmp r0, 0 + beq _0802C4E2 + movs r0, 0 + b _0802C580 +_0802C4E2: + ldr r5, _0802C58C + movs r0, 0xA8 + movs r1, 0x8 + bl MemoryAlloc + str r0, [r5] + str r6, [r0, 0x3C] + lsls r1, r6, 1 + adds r1, r6 + lsls r1, 3 + adds r1, 0x44 + adds r1, r0, r1 + str r1, [r0, 0x40] + adds r0, 0x44 + bl sub_8006518 + ldr r1, [r5] + ldr r2, [r1, 0x3C] + lsls r0, r2, 1 + adds r0, r2 + lsls r0, 3 + adds r1, r0 + adds r1, 0x44 + ldr r0, _0802C590 + ldm r0!, {r2,r3,r7} + stm r1!, {r2,r3,r7} + ldm r0!, {r2,r3,r7} + stm r1!, {r2,r3,r7} + ldr r2, [r5] + ldr r1, [r2, 0x40] + adds r0, r2, 0 + adds r0, 0xA4 + str r0, [r1, 0x14] + cmp r4, 0 + beq _0802C53A + ldr r1, [r2, 0x3C] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 3 + adds r1, r2, 0 + adds r1, 0x4C + adds r1, r0 + ldr r0, [r4] + str r0, [r1] +_0802C53A: + ldr r0, [r5] + ldr r0, [r0, 0x40] + mov r1, r8 + bl sub_8012D34 + bl ResetUnusedInputStruct + ldr r0, [r5] + adds r0, 0x44 + movs r1, 0x1 + movs r2, 0x1 + bl sub_800641C + ldr r4, [r5] + adds r4, 0x8 + bl sub_802C80C + adds r1, r0, 0 + adds r0, r4, 0 + mov r2, r8 + adds r3, r6, 0 + bl sub_8013848 + ldr r0, [r5] + ldr r1, _0802C594 + ldrh r1, [r1] + strh r1, [r0, 0x20] + adds r0, 0x8 + bl sub_8013984 + bl sub_802C6DC + bl sub_802C750 + movs r0, 0x1 +_0802C580: + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r1} + bx r1 + .align 2, 0 +_0802C58C: .4byte gUnknown_203B2E8 +_0802C590: .4byte gUnknown_80DFCFC +_0802C594: .4byte gUnknown_203B2EC + thumb_func_end sub_802C4C8 + + thumb_func_start sub_802C598 +sub_802C598: + push {lr} + lsls r0, 24 + cmp r0, 0 + bne _0802C5B4 + ldr r0, _0802C5B0 + ldr r0, [r0] + adds r0, 0x8 + bl sub_8013660 + movs r0, 0 + b _0802C61A + .align 2, 0 +_0802C5B0: .4byte gUnknown_203B2E8 +_0802C5B4: + ldr r0, _0802C5CC + ldr r0, [r0] + adds r0, 0x8 + bl GetKeyPress + cmp r0, 0x2 + beq _0802C5D6 + cmp r0, 0x2 + bgt _0802C5D0 + cmp r0, 0x1 + beq _0802C5E0 + b _0802C5F4 + .align 2, 0 +_0802C5CC: .4byte gUnknown_203B2E8 +_0802C5D0: + cmp r0, 0x4 + beq _0802C5EA + b _0802C5F4 +_0802C5D6: + movs r0, 0x1 + bl PlayMenuSoundEffect + movs r0, 0x2 + b _0802C61A +_0802C5E0: + movs r0, 0 + bl PlayMenuSoundEffect + movs r0, 0x3 + b _0802C61A +_0802C5EA: + movs r0, 0x4 + bl PlayMenuSoundEffect + movs r0, 0x4 + b _0802C61A +_0802C5F4: + ldr r0, _0802C60C + ldr r0, [r0] + adds r0, 0x8 + movs r1, 0x1 + bl sub_80138B8 + lsls r0, 24 + cmp r0, 0 + bne _0802C610 + movs r0, 0 + b _0802C61A + .align 2, 0 +_0802C60C: .4byte gUnknown_203B2E8 +_0802C610: + bl sub_802C6DC + bl sub_802C750 + movs r0, 0x1 +_0802C61A: + pop {r1} + bx r1 + thumb_func_end sub_802C598 + + thumb_func_start sub_802C620 +sub_802C620: + ldr r0, _0802C63C + ldr r1, [r0] + movs r0, 0x26 + ldrsh r2, [r1, r0] + movs r3, 0x24 + ldrsh r0, [r1, r3] + muls r0, r2 + movs r3, 0x20 + ldrsh r2, [r1, r3] + adds r0, r2 + adds r1, r0 + ldrb r0, [r1] + bx lr + .align 2, 0 +_0802C63C: .4byte gUnknown_203B2E8 + thumb_func_end sub_802C620 + + thumb_func_start sub_802C640 +sub_802C640: + push {r4,r5,lr} + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + bl ResetUnusedInputStruct + ldr r5, _0802C684 + ldr r0, [r5] + adds r0, 0x44 + movs r1, 0 + movs r2, 0 + bl sub_800641C + bl sub_802C80C + adds r1, r0, 0 + ldr r0, [r5] + strh r1, [r0, 0x2A] + adds r0, 0x8 + bl sub_8013984 + bl sub_802C6DC + bl sub_802C750 + cmp r4, 0 + beq _0802C67E + ldr r0, [r5] + adds r0, 0x8 + bl AddMenuCursorSprite +_0802C67E: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_0802C684: .4byte gUnknown_203B2E8 + thumb_func_end sub_802C640 + + thumb_func_start sub_802C688 +sub_802C688: + push {r4,r5,lr} + ldr r4, _0802C6D0 + ldr r2, [r4] + cmp r2, 0 + beq _0802C6C8 + ldr r1, _0802C6D4 + ldrh r0, [r2, 0x20] + strh r0, [r1] + ldr r0, [r2, 0x3C] + lsls r1, r0, 1 + adds r1, r0 + lsls r1, 3 + adds r1, r2, r1 + adds r1, 0x44 + ldr r0, _0802C6D8 + ldm r0!, {r2,r3,r5} + stm r1!, {r2,r3,r5} + ldm r0!, {r2,r3,r5} + stm r1!, {r2,r3,r5} + bl ResetUnusedInputStruct + ldr r0, [r4] + adds r0, 0x44 + movs r1, 0x1 + movs r2, 0x1 + bl sub_800641C + ldr r0, [r4] + bl MemoryFree + movs r0, 0 + str r0, [r4] +_0802C6C8: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_0802C6D0: .4byte gUnknown_203B2E8 +_0802C6D4: .4byte gUnknown_203B2EC +_0802C6D8: .4byte gUnknown_80DFCE4 + thumb_func_end sub_802C688 + + thumb_func_start sub_802C6DC +sub_802C6DC: + push {r4,lr} + ldr r4, _0802C74C + ldr r0, [r4] + ldrh r1, [r0, 0x28] + adds r0, 0xA4 + movs r2, 0 + strb r1, [r0] + ldr r0, [r4] + ldrh r1, [r0, 0x26] + adds r0, 0xA5 + strb r1, [r0] + ldr r0, [r4] + adds r0, 0xA6 + movs r1, 0xC + strb r1, [r0] + ldr r0, [r4] + adds r0, 0xA7 + strb r2, [r0] + ldr r0, [r4] + movs r1, 0x22 + ldrsh r0, [r0, r1] + movs r1, 0x18 + bl sub_8009614 + adds r0, 0x2 + lsls r0, 16 + ldr r2, [r4] + ldr r3, [r2, 0x3C] + lsls r1, r3, 1 + adds r1, r3 + lsls r1, 3 + adds r1, r2, r1 + adds r1, 0x52 + asrs r3, r0, 16 + lsrs r0, 16 + strh r0, [r1] + ldr r1, [r2, 0x3C] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 3 + adds r2, r0 + adds r3, 0x2 + adds r2, 0x54 + strh r3, [r2] + bl ResetUnusedInputStruct + ldr r0, [r4] + adds r0, 0x44 + movs r1, 0x1 + movs r2, 0x1 + bl sub_800641C + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0802C74C: .4byte gUnknown_203B2E8 + thumb_func_end sub_802C6DC + + thumb_func_start sub_802C750 +sub_802C750: + push {r4-r6,lr} + sub sp, 0x60 + ldr r6, _0802C7AC + ldr r0, [r6] + ldr r0, [r0, 0x3C] + bl sub_8008C54 + ldr r0, [r6] + ldr r0, [r0, 0x3C] + bl sub_80073B8 + ldr r0, [r6] + movs r1, 0x26 + ldrsh r4, [r0, r1] + lsls r4, 3 + adds r5, r4, 0 + adds r5, 0xA + ldr r2, _0802C7B0 + ldr r3, [r0, 0x3C] + movs r0, 0 + str r0, [sp] + adds r0, r5, 0 + movs r1, 0 + bl xxx_call_draw_string + adds r4, 0x4 + ldr r1, [r6] + adds r0, r1, 0 + adds r0, 0xA6 + ldrb r0, [r0] + lsls r0, 3 + adds r5, r4, r0 + movs r3, 0x26 + ldrsh r2, [r1, r3] + adds r2, 0x1 + movs r0, 0x7 + str r0, [sp] + ldr r0, [r1, 0x3C] + str r0, [sp, 0x4] + adds r0, r5, 0 + movs r1, 0 + movs r3, 0x2 + bl sub_8012BC4 + movs r5, 0 + b _0802C7EC + .align 2, 0 +_0802C7AC: .4byte gUnknown_203B2E8 +_0802C7B0: .4byte gUnknown_80DFD14 +_0802C7B4: + ldr r1, [r6] + movs r3, 0x26 + ldrsh r2, [r1, r3] + movs r3, 0x24 + ldrsh r0, [r1, r3] + muls r0, r2 + adds r0, r5 + adds r1, r0 + ldrb r0, [r1] + bl sub_8096AB4 + adds r4, r0, 0 + ldr r0, [r6] + ldr r1, [r0, 0x3C] + str r1, [sp, 0x8] + adds r0, 0x8 + adds r1, r5, 0 + bl sub_8013800 + str r0, [sp, 0x50] + adds r0, r4, 0 + add r1, sp, 0x8 + bl sub_803B35C + add r0, sp, 0x8 + bl sub_803B6D4 + adds r5, 0x1 +_0802C7EC: + ldr r0, [r6] + movs r1, 0x22 + ldrsh r0, [r0, r1] + cmp r5, r0 + blt _0802C7B4 + ldr r0, _0802C808 + ldr r0, [r0] + ldr r0, [r0, 0x3C] + bl sub_80073E0 + add sp, 0x60 + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_0802C808: .4byte gUnknown_203B2E8 + thumb_func_end sub_802C750 + + thumb_func_start sub_802C80C +sub_802C80C: + push {r4,r5,lr} + movs r5, 0 + movs r4, 0 +_0802C812: + lsls r0, r4, 24 + lsrs r0, 24 + bl sub_8096ACC + lsls r0, 24 + cmp r0, 0 + bne _0802C82A + ldr r0, _0802C838 + ldr r0, [r0] + adds r0, r5 + strb r4, [r0] + adds r5, 0x1 +_0802C82A: + adds r4, 0x1 + cmp r4, 0x7 + ble _0802C812 + adds r0, r5, 0 + pop {r4,r5} + pop {r1} + bx r1 + .align 2, 0 +_0802C838: .4byte gUnknown_203B2E8 + thumb_func_end sub_802C80C + + thumb_func_start sub_802C83C +sub_802C83C: + push {r4,lr} + movs r4, 0 +_0802C840: + lsls r0, r4, 24 + lsrs r0, 24 + bl sub_8096ACC + lsls r0, 24 + cmp r0, 0 + bne _0802C852 + movs r0, 0 + b _0802C85A +_0802C852: + adds r4, 0x1 + cmp r4, 0x7 + ble _0802C840 + movs r0, 0x1 +_0802C85A: + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_802C83C + + thumb_func_start sub_802C860 +sub_802C860: + push {r4-r6,lr} + adds r6, r0, 0 + bl sub_802C83C + lsls r0, 24 + lsrs r5, r0, 24 + cmp r5, 0 + bne _0802C890 + ldr r4, _0802C88C + movs r0, 0xFE + lsls r0, 1 + movs r1, 0x8 + bl MemoryAlloc + str r0, [r4] + str r5, [r0, 0x68] + str r6, [r0] + movs r0, 0 + bl sub_802C910 + movs r0, 0x1 + b _0802C892 + .align 2, 0 +_0802C88C: .4byte gUnknown_203B2F0 +_0802C890: + movs r0, 0 +_0802C892: + pop {r4-r6} + pop {r1} + bx r1 + thumb_func_end sub_802C860 + + thumb_func_start sub_802C898 +sub_802C898: + push {lr} + ldr r0, _0802C8B0 + ldr r0, [r0] + ldr r0, [r0, 0x4] + cmp r0, 0x5 + bhi _0802C8E8 + lsls r0, 2 + ldr r1, _0802C8B4 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0802C8B0: .4byte gUnknown_203B2F0 +_0802C8B4: .4byte _0802C8B8 + .align 2, 0 +_0802C8B8: + .4byte _0802C8D0 + .4byte _0802C8D0 + .4byte _0802C8D6 + .4byte _0802C8DC + .4byte _0802C8E2 + .4byte _0802C8E8 +_0802C8D0: + bl sub_802CC00 + b _0802C8EC +_0802C8D6: + bl sub_802CC70 + b _0802C8EC +_0802C8DC: + bl sub_802CD38 + b _0802C8EC +_0802C8E2: + bl sub_802CDB8 + b _0802C8EC +_0802C8E8: + movs r0, 0x3 + b _0802C8EE +_0802C8EC: + movs r0, 0 +_0802C8EE: + pop {r1} + bx r1 + thumb_func_end sub_802C898 + + thumb_func_start sub_802C8F4 +sub_802C8F4: + push {r4,lr} + ldr r4, _0802C90C + ldr r0, [r4] + cmp r0, 0 + beq _0802C906 + bl MemoryFree + movs r0, 0 + str r0, [r4] +_0802C906: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0802C90C: .4byte gUnknown_203B2F0 + thumb_func_end sub_802C8F4 + + thumb_func_start sub_802C910 +sub_802C910: + push {lr} + ldr r1, _0802C924 + ldr r1, [r1] + str r0, [r1, 0x4] + bl sub_802C928 + bl sub_802C9D8 + pop {r0} + bx r0 + .align 2, 0 +_0802C924: .4byte gUnknown_203B2F0 + thumb_func_end sub_802C910 + + thumb_func_start sub_802C928 +sub_802C928: + push {r4-r7,lr} + ldr r4, _0802C94C + ldr r0, [r4] + movs r1, 0xCE + lsls r1, 1 + adds r0, r1 + bl sub_8006518 + ldr r1, [r4] + ldr r0, [r1, 0x4] + cmp r0, 0x2 + beq _0802C954 + cmp r0, 0x3 + beq _0802C980 + movs r2, 0 + ldr r3, _0802C950 + b _0802C998 + .align 2, 0 +_0802C94C: .4byte gUnknown_203B2F0 +_0802C950: .4byte gUnknown_80DFD28 +_0802C954: + bl sub_802CAA4 + ldr r2, [r4] + movs r0, 0xE6 + lsls r0, 1 + adds r2, r0 + ldr r1, _0802C97C + ldm r1!, {r3,r5,r6} + stm r2!, {r3,r5,r6} + ldm r1!, {r3,r5,r7} + stm r2!, {r3,r5,r7} + ldr r1, [r4] + adds r0, r1, r0 + movs r6, 0x86 + lsls r6, 1 + adds r1, r6 + bl sub_8012CAC + b _0802C9B8 + .align 2, 0 +_0802C97C: .4byte gUnknown_80DFD40 +_0802C980: + movs r7, 0xF2 + lsls r7, 1 + adds r1, r7 + ldr r0, _0802C994 + ldm r0!, {r2-r4} + stm r1!, {r2-r4} + ldm r0!, {r5-r7} + stm r1!, {r5-r7} + b _0802C9B8 + .align 2, 0 +_0802C994: .4byte gUnknown_80DFD58 +_0802C998: + ldr r0, [r4] + lsls r1, r2, 1 + adds r1, r2 + lsls r1, 3 + adds r0, r1 + movs r1, 0xCE + lsls r1, 1 + adds r0, r1 + adds r1, r3, 0 + ldm r1!, {r5-r7} + stm r0!, {r5-r7} + ldm r1!, {r5-r7} + stm r0!, {r5-r7} + adds r2, 0x1 + cmp r2, 0x3 + ble _0802C998 +_0802C9B8: + bl ResetUnusedInputStruct + ldr r0, _0802C9D4 + ldr r0, [r0] + movs r1, 0xCE + lsls r1, 1 + adds r0, r1 + movs r1, 0x1 + movs r2, 0x1 + bl sub_800641C + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_0802C9D4: .4byte gUnknown_203B2F0 + thumb_func_end sub_802C928 + + thumb_func_start sub_802C9D8 +sub_802C9D8: + push {r4,lr} + sub sp, 0x8 + ldr r1, _0802C9F4 + ldr r0, [r1] + ldr r0, [r0, 0x4] + adds r4, r1, 0 + cmp r0, 0x5 + bhi _0802CA9C + lsls r0, 2 + ldr r1, _0802C9F8 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0802C9F4: .4byte gUnknown_203B2F0 +_0802C9F8: .4byte _0802C9FC + .align 2, 0 +_0802C9FC: + .4byte _0802CA14 + .4byte _0802CA20 + .4byte _0802CA28 + .4byte _0802CA48 + .4byte _0802CA80 + .4byte _0802CA9C +_0802CA14: + movs r0, 0 + movs r1, 0 + movs r2, 0x4 + bl sub_802C4C8 + b _0802CA9C +_0802CA20: + movs r0, 0x1 + bl sub_802C640 + b _0802CA9C +_0802CA28: + bl sub_802C750 + ldr r0, _0802CA44 + ldr r2, [r0] + adds r0, r2, 0 + adds r0, 0x6C + movs r3, 0x86 + lsls r3, 1 + adds r1, r2, r3 + ldr r2, [r2, 0x68] + str r2, [sp] + movs r2, 0x2 + b _0802CA6E + .align 2, 0 +_0802CA44: .4byte gUnknown_203B2F0 +_0802CA48: + bl sub_802CBAC + bl sub_802C750 + ldr r4, _0802CA7C + ldr r0, [r4] + adds r0, 0x6C + movs r1, 0 + bl sub_8012EA4 + ldr r1, [r4] + adds r0, r1, 0 + adds r0, 0xBC + movs r2, 0xA6 + lsls r2, 1 + adds r1, r2 + movs r2, 0x6 + str r2, [sp] + movs r2, 0x3 +_0802CA6E: + str r2, [sp, 0x4] + movs r2, 0 + movs r3, 0 + bl sub_8012D60 + b _0802CA9C + .align 2, 0 +_0802CA7C: .4byte gUnknown_203B2F0 +_0802CA80: + ldr r0, [r4] + ldrb r0, [r0, 0xC] + bl sub_8096AB4 + ldr r1, [r4] + adds r1, 0x10 + bl sub_803B35C + ldr r0, [r4] + movs r1, 0x3 + str r1, [r0, 0x10] + adds r0, 0x10 + bl sub_802DE84 +_0802CA9C: + add sp, 0x8 + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_802C9D8 + + thumb_func_start sub_802CAA4 +sub_802CAA4: + push {r4-r7,lr} + movs r7, 0 + ldr r5, _0802CAC8 + ldr r0, [r5] + ldrb r0, [r0, 0xC] + bl sub_8096AB4 + adds r4, r0, 0 + ldr r2, [r5] + ldr r0, [r2] + cmp r0, 0 + bne _0802CB26 + ldrb r0, [r4] + cmp r0, 0x5 + beq _0802CACC + cmp r0, 0x6 + beq _0802CB10 + b _0802CB26 + .align 2, 0 +_0802CAC8: .4byte gUnknown_203B2F0 +_0802CACC: + movs r0, 0x86 + lsls r0, 1 + adds r1, r2, r0 + ldr r0, _0802CAFC + str r0, [r1] + adds r0, r4, 0 + bl sub_809693C + lsls r0, 24 + cmp r0, 0 + bne _0802CAEE + ldrb r0, [r4, 0x4] + bl sub_80A2824 + lsls r0, 24 + cmp r0, 0 + bne _0802CB00 +_0802CAEE: + ldr r0, [r5] + movs r1, 0x88 + lsls r1, 1 + adds r0, r1 + movs r1, 0x1 + negs r1, r1 + b _0802CB0A + .align 2, 0 +_0802CAFC: .4byte gUnknown_80DFD70 +_0802CB00: + ldr r0, [r5] + movs r1, 0x88 + lsls r1, 1 + adds r0, r1 + movs r1, 0x2 +_0802CB0A: + str r1, [r0] + adds r7, 0x1 + b _0802CB26 +_0802CB10: + movs r0, 0x86 + lsls r0, 1 + adds r1, r2, r0 + ldr r0, _0802CB9C + str r0, [r1] + movs r0, 0x88 + lsls r0, 1 + adds r1, r2, r0 + movs r0, 0x3 + str r0, [r1] + movs r7, 0x1 +_0802CB26: + ldr r4, _0802CBA0 + ldr r6, [r4] + lsls r1, r7, 3 + movs r0, 0x86 + lsls r0, 1 + adds r3, r6, r0 + adds r2, r3, r1 + ldr r0, _0802CBA4 + ldr r0, [r0] + str r0, [r2] + movs r0, 0x88 + lsls r0, 1 + adds r5, r6, r0 + adds r1, r5, r1 + movs r0, 0x4 + str r0, [r1] + adds r7, 0x1 + lsls r1, r7, 3 + adds r2, r3, r1 + ldr r0, _0802CBA8 + ldr r0, [r0] + str r0, [r2] + adds r1, r5, r1 + movs r0, 0x7 + str r0, [r1] + adds r7, 0x1 + lsls r1, r7, 3 + adds r3, r1 + movs r0, 0 + str r0, [r3] + adds r1, r5, r1 + movs r0, 0x1 + str r0, [r1] + movs r3, 0 + mov r12, r4 + cmp r3, r7 + bge _0802CB8C + adds r4, r6, 0 + adds r1, r5, 0 + movs r5, 0x1 + negs r5, r5 +_0802CB78: + ldr r2, [r1] + cmp r2, r5 + beq _0802CB84 + ldr r0, [r4, 0x68] + cmp r2, r0 + beq _0802CB94 +_0802CB84: + adds r1, 0x8 + adds r3, 0x1 + cmp r3, r7 + blt _0802CB78 +_0802CB8C: + mov r0, r12 + ldr r1, [r0] + movs r0, 0x7 + str r0, [r1, 0x68] +_0802CB94: + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_0802CB9C: .4byte gUnknown_80DFD7C +_0802CBA0: .4byte gUnknown_203B2F0 +_0802CBA4: .4byte gUnknown_80D494C +_0802CBA8: .4byte gUnknown_80D4970 + thumb_func_end sub_802CAA4 + + thumb_func_start sub_802CBAC +sub_802CBAC: + ldr r0, _0802CBF4 + ldr r0, [r0] + mov r12, r0 + movs r3, 0 + movs r1, 0xA6 + lsls r1, 1 + add r1, r12 + ldr r0, _0802CBF8 + ldr r0, [r0] + str r0, [r1] + movs r1, 0xA8 + lsls r1, 1 + add r1, r12 + movs r0, 0x5 + str r0, [r1] + movs r2, 0x1 + movs r1, 0xAA + lsls r1, 1 + add r1, r12 + ldr r0, _0802CBFC + ldr r0, [r0] + str r0, [r1] + movs r1, 0xAC + lsls r1, 1 + add r1, r12 + movs r0, 0x6 + str r0, [r1] + movs r0, 0xAE + lsls r0, 1 + add r0, r12 + str r3, [r0] + movs r0, 0xB0 + lsls r0, 1 + add r0, r12 + str r2, [r0] + bx lr + .align 2, 0 +_0802CBF4: .4byte gUnknown_203B2F0 +_0802CBF8: .4byte gUnknown_80D4920 +_0802CBFC: .4byte gUnknown_80D4928 + thumb_func_end sub_802CBAC + + thumb_func_start sub_802CC00 +sub_802CC00: + push {lr} + movs r0, 0x1 + bl sub_802C598 + cmp r0, 0x4 + bhi _0802CC6A + lsls r0, 2 + ldr r1, _0802CC18 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0802CC18: .4byte _0802CC1C + .align 2, 0 +_0802CC1C: + .4byte _0802CC6A + .4byte _0802CC6A + .4byte _0802CC60 + .4byte _0802CC30 + .4byte _0802CC48 +_0802CC30: + bl sub_802C620 + ldr r1, _0802CC44 + ldr r1, [r1] + strb r0, [r1, 0xC] + movs r0, 0x2 + bl sub_802C910 + b _0802CC6A + .align 2, 0 +_0802CC44: .4byte gUnknown_203B2F0 +_0802CC48: + bl sub_802C620 + ldr r1, _0802CC5C + ldr r1, [r1] + strb r0, [r1, 0xC] + movs r0, 0x4 + bl sub_802C910 + b _0802CC6A + .align 2, 0 +_0802CC5C: .4byte gUnknown_203B2F0 +_0802CC60: + bl sub_802C688 + movs r0, 0x5 + bl sub_802C910 +_0802CC6A: + pop {r0} + bx r0 + thumb_func_end sub_802CC00 + + thumb_func_start sub_802CC70 +sub_802CC70: + push {r4,lr} + sub sp, 0x4 + movs r0, 0 + str r0, [sp] + bl sub_802C598 + ldr r4, _0802CCB4 + ldr r0, [r4] + adds r0, 0x6C + bl sub_8012FD8 + lsls r0, 24 + cmp r0, 0 + bne _0802CCA0 + ldr r0, [r4] + adds r0, 0x6C + mov r1, sp + bl sub_8013114 + ldr r1, [sp] + cmp r1, 0x1 + beq _0802CCA0 + ldr r0, [r4] + str r1, [r0, 0x68] +_0802CCA0: + ldr r0, [sp] + subs r0, 0x1 + cmp r0, 0x6 + bhi _0802CD2E + lsls r0, 2 + ldr r1, _0802CCB8 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0802CCB4: .4byte gUnknown_203B2F0 +_0802CCB8: .4byte _0802CCBC + .align 2, 0 +_0802CCBC: + .4byte _0802CD28 + .4byte _0802CCD8 + .4byte _0802CCF4 + .4byte _0802CD18 + .4byte _0802CD2E + .4byte _0802CD2E + .4byte _0802CD20 +_0802CCD8: + ldr r0, _0802CCEC + bl sub_8011988 + ldr r0, _0802CCF0 + ldr r0, [r0] + ldrb r0, [r0, 0xC] + bl sub_8096AB4 + movs r1, 0x6 + b _0802CD06 + .align 2, 0 +_0802CCEC: .4byte 0x00000133 +_0802CCF0: .4byte gUnknown_203B2F0 +_0802CCF4: + ldr r0, _0802CD10 + bl sub_8011988 + ldr r0, _0802CD14 + ldr r0, [r0] + ldrb r0, [r0, 0xC] + bl sub_8096AB4 + movs r1, 0x5 +_0802CD06: + strb r1, [r0] + movs r0, 0x1 + bl sub_802C910 + b _0802CD2E + .align 2, 0 +_0802CD10: .4byte 0x00000133 +_0802CD14: .4byte gUnknown_203B2F0 +_0802CD18: + movs r0, 0x3 + bl sub_802C910 + b _0802CD2E +_0802CD20: + movs r0, 0x4 + bl sub_802C910 + b _0802CD2E +_0802CD28: + movs r0, 0x1 + bl sub_802C910 +_0802CD2E: + add sp, 0x4 + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_802CC70 + + thumb_func_start sub_802CD38 +sub_802CD38: + push {r4,lr} + sub sp, 0x4 + movs r0, 0 + str r0, [sp] + bl sub_802C598 + ldr r4, _0802CD78 + ldr r0, [r4] + adds r0, 0x6C + bl sub_8012FD8 + ldr r0, [r4] + adds r0, 0xBC + bl sub_8012FD8 + lsls r0, 24 + cmp r0, 0 + bne _0802CD66 + ldr r0, [r4] + adds r0, 0xBC + mov r1, sp + bl sub_8013114 +_0802CD66: + ldr r0, [sp] + cmp r0, 0x5 + beq _0802CD88 + cmp r0, 0x5 + bgt _0802CD7C + cmp r0, 0x1 + beq _0802CD80 + b _0802CDB0 + .align 2, 0 +_0802CD78: .4byte gUnknown_203B2F0 +_0802CD7C: + cmp r0, 0x6 + bne _0802CDB0 +_0802CD80: + movs r0, 0x1 + bl sub_802C910 + b _0802CDB0 +_0802CD88: + ldr r0, [r4] + ldrb r0, [r0, 0xC] + bl sub_8096C3C + bl sub_8096C80 + bl sub_802C83C + lsls r0, 24 + cmp r0, 0 + beq _0802CDAA + bl sub_802C688 + movs r0, 0x5 + bl sub_802C910 + b _0802CDB0 +_0802CDAA: + movs r0, 0x1 + bl sub_802C910 +_0802CDB0: + add sp, 0x4 + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_802CD38 + + thumb_func_start sub_802CDB8 +sub_802CDB8: + push {lr} + bl sub_802DEE0 + cmp r0, 0x1 + bls _0802CDD0 + cmp r0, 0x3 + bhi _0802CDD0 + bl sub_802DF24 + movs r0, 0x1 + bl sub_802C910 +_0802CDD0: + pop {r0} + bx r0 + thumb_func_end sub_802CDB8 + + thumb_func_start sub_802CDD4 +sub_802CDD4: + push {r4-r6,lr} + adds r5, r0, 0 + ldr r4, _0802CE54 + ldr r0, [r4] + cmp r0, 0 + bne _0802CDEA + movs r0, 0xA0 + movs r1, 0x8 + bl MemoryAlloc + str r0, [r4] +_0802CDEA: + ldr r0, [r4] + str r5, [r0, 0x34] + lsls r1, r5, 1 + adds r1, r5 + lsls r1, 3 + adds r1, 0x3C + adds r1, r0, r1 + str r1, [r0, 0x38] + adds r0, 0x3C + bl sub_8006518 + ldr r1, [r4] + ldr r2, [r1, 0x34] + lsls r0, r2, 1 + adds r0, r2 + lsls r0, 3 + adds r1, r0 + adds r1, 0x3C + ldr r0, _0802CE58 + ldm r0!, {r2,r3,r6} + stm r1!, {r2,r3,r6} + ldm r0!, {r2,r3,r6} + stm r1!, {r2,r3,r6} + ldr r1, [r4] + ldr r0, [r1, 0x38] + adds r1, 0x9C + str r1, [r0, 0x14] + movs r1, 0x4 + bl sub_8012D34 + bl ResetUnusedInputStruct + ldr r0, [r4] + adds r0, 0x3C + movs r1, 0x1 + movs r2, 0x1 + bl sub_800641C + ldr r0, [r4] + movs r1, 0x5 + movs r2, 0x4 + adds r3, r5, 0 + bl sub_8013848 + bl sub_802CF5C + bl sub_802CFD0 + movs r0, 0x1 + pop {r4-r6} + pop {r1} + bx r1 + .align 2, 0 +_0802CE54: .4byte gUnknown_203B2F4 +_0802CE58: .4byte gUnknown_80DFDA4 + thumb_func_end sub_802CDD4 + + thumb_func_start sub_802CE5C +sub_802CE5C: + push {r4,lr} + lsls r0, 24 + cmp r0, 0 + bne _0802CE74 + ldr r0, _0802CE70 + ldr r0, [r0] + bl sub_8013660 + movs r0, 0 + b _0802CEB4 + .align 2, 0 +_0802CE70: .4byte gUnknown_203B2F4 +_0802CE74: + ldr r4, _0802CE90 + ldr r0, [r4] + bl GetKeyPress + cmp r0, 0x1 + beq _0802CE94 + cmp r0, 0x2 + bne _0802CE98 + movs r0, 0x1 + bl PlayMenuSoundEffect + movs r0, 0x2 + b _0802CEB4 + .align 2, 0 +_0802CE90: .4byte gUnknown_203B2F4 +_0802CE94: + movs r0, 0x3 + b _0802CEB4 +_0802CE98: + ldr r0, [r4] + movs r1, 0x1 + bl sub_80138B8 + lsls r0, 24 + cmp r0, 0 + bne _0802CEAA + movs r0, 0 + b _0802CEB4 +_0802CEAA: + bl sub_802CF5C + bl sub_802CFD0 + movs r0, 0x1 +_0802CEB4: + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_802CE5C + + thumb_func_start sub_802CEBC +sub_802CEBC: + ldr r0, _0802CED4 + ldr r1, [r0] + movs r0, 0x1E + ldrsh r2, [r1, r0] + movs r3, 0x1C + ldrsh r0, [r1, r3] + muls r0, r2 + ldrb r1, [r1, 0x18] + adds r0, r1 + lsls r0, 24 + lsrs r0, 24 + bx lr + .align 2, 0 +_0802CED4: .4byte gUnknown_203B2F4 + thumb_func_end sub_802CEBC + + thumb_func_start sub_802CED8 +sub_802CED8: + push {r4,r5,lr} + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + bl ResetUnusedInputStruct + ldr r5, _0802CF10 + ldr r0, [r5] + adds r0, 0x3C + movs r1, 0 + movs r2, 0 + bl sub_800641C + ldr r0, [r5] + bl sub_8013984 + bl sub_802CF5C + bl sub_802CFD0 + cmp r4, 0 + beq _0802CF0A + ldr r0, [r5] + bl AddMenuCursorSprite +_0802CF0A: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_0802CF10: .4byte gUnknown_203B2F4 + thumb_func_end sub_802CED8 + + thumb_func_start sub_802CF14 +sub_802CF14: + push {r4,r5,lr} + ldr r4, _0802CF54 + ldr r2, [r4] + cmp r2, 0 + beq _0802CF4E + ldr r0, [r2, 0x34] + lsls r1, r0, 1 + adds r1, r0 + lsls r1, 3 + adds r1, r2, r1 + adds r1, 0x3C + ldr r0, _0802CF58 + ldm r0!, {r2,r3,r5} + stm r1!, {r2,r3,r5} + ldm r0!, {r2,r3,r5} + stm r1!, {r2,r3,r5} + bl ResetUnusedInputStruct + ldr r0, [r4] + adds r0, 0x3C + movs r1, 0x1 + movs r2, 0x1 + bl sub_800641C + ldr r0, [r4] + bl MemoryFree + movs r0, 0 + str r0, [r4] +_0802CF4E: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_0802CF54: .4byte gUnknown_203B2F4 +_0802CF58: .4byte gUnknown_80DFD8C + thumb_func_end sub_802CF14 + + thumb_func_start sub_802CF5C +sub_802CF5C: + push {r4,lr} + ldr r4, _0802CFCC + ldr r0, [r4] + ldrh r1, [r0, 0x20] + adds r0, 0x9C + movs r2, 0 + strb r1, [r0] + ldr r0, [r4] + ldrh r1, [r0, 0x1E] + adds r0, 0x9D + strb r1, [r0] + ldr r0, [r4] + adds r0, 0x9E + movs r1, 0xC + strb r1, [r0] + ldr r0, [r4] + adds r0, 0x9F + strb r2, [r0] + ldr r0, [r4] + movs r1, 0x1A + ldrsh r0, [r0, r1] + movs r1, 0x18 + bl sub_8009614 + adds r0, 0x2 + lsls r0, 16 + ldr r2, [r4] + ldr r3, [r2, 0x34] + lsls r1, r3, 1 + adds r1, r3 + lsls r1, 3 + adds r1, r2, r1 + adds r1, 0x4A + asrs r3, r0, 16 + lsrs r0, 16 + strh r0, [r1] + ldr r1, [r2, 0x34] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 3 + adds r2, r0 + adds r3, 0x2 + adds r2, 0x4C + strh r3, [r2] + bl ResetUnusedInputStruct + ldr r0, [r4] + adds r0, 0x3C + movs r1, 0x1 + movs r2, 0x1 + bl sub_800641C + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0802CFCC: .4byte gUnknown_203B2F4 + thumb_func_end sub_802CF5C + + thumb_func_start sub_802CFD0 +sub_802CFD0: + push {r4-r6,lr} + sub sp, 0x60 + ldr r6, _0802D02C + ldr r0, [r6] + ldr r0, [r0, 0x34] + bl sub_8008C54 + ldr r0, [r6] + ldr r0, [r0, 0x34] + bl sub_80073B8 + ldr r0, [r6] + movs r1, 0x1E + ldrsh r4, [r0, r1] + lsls r4, 3 + adds r5, r4, 0 + adds r5, 0xA + ldr r2, _0802D030 + ldr r3, [r0, 0x34] + movs r0, 0 + str r0, [sp] + adds r0, r5, 0 + movs r1, 0 + bl xxx_call_draw_string + adds r4, 0x4 + ldr r1, [r6] + adds r0, r1, 0 + adds r0, 0x9E + ldrb r0, [r0] + lsls r0, 3 + adds r5, r4, r0 + movs r0, 0x1E + ldrsh r2, [r1, r0] + adds r2, 0x1 + movs r0, 0x7 + str r0, [sp] + ldr r0, [r1, 0x34] + str r0, [sp, 0x4] + adds r0, r5, 0 + movs r1, 0 + movs r3, 0x2 + bl sub_8012BC4 + movs r5, 0 + b _0802D076 + .align 2, 0 +_0802D02C: .4byte gUnknown_203B2F4 +_0802D030: .4byte gUnknown_80DFDBC +_0802D034: + ldr r0, [r6] + movs r2, 0x1E + ldrsh r1, [r0, r2] + movs r2, 0x1C + ldrsh r0, [r0, r2] + muls r0, r1 + adds r0, r5 + lsls r0, 24 + lsrs r0, 24 + bl sub_803B344 + adds r4, r0, 0 + ldr r0, [r6] + ldr r1, [r0, 0x34] + str r1, [sp, 0x8] + adds r1, r5, 0 + bl sub_8013800 + str r0, [sp, 0x50] + adds r0, r4, 0 + add r1, sp, 0x8 + bl sub_803B35C + mov r1, sp + adds r1, 0x4B + movs r0, 0x1 + strb r0, [r1] + ldr r0, [r4, 0x14] + str r0, [sp, 0x54] + add r0, sp, 0x8 + bl sub_803B6D4 + adds r5, 0x1 +_0802D076: + ldr r0, [r6] + movs r1, 0x1A + ldrsh r0, [r0, r1] + cmp r5, r0 + blt _0802D034 + ldr r0, _0802D094 + ldr r0, [r0] + ldr r0, [r0, 0x34] + bl sub_80073E0 + add sp, 0x60 + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_0802D094: .4byte gUnknown_203B2F4 + thumb_func_end sub_802CFD0 + + thumb_func_start sub_802D098 +sub_802D098: + push {r4-r6,lr} + adds r4, r0, 0 + ldr r6, _0802D0DC + movs r0, 0x82 + lsls r0, 2 + movs r1, 0x8 + bl MemoryAlloc + str r0, [r6] + movs r5, 0 + str r5, [r0, 0x6C] + str r5, [r0, 0x70] + str r5, [r0, 0x74] + str r4, [r0, 0xC] + strb r5, [r0, 0x8] + ldr r0, [r6] + adds r0, 0xA + bl sub_8099328 + ldr r1, [r6] + strb r0, [r1, 0x9] + bl sub_8011C1C + cmp r0, 0x2 + beq _0802D0CE + ldr r0, [r6] + strb r5, [r0, 0x9] +_0802D0CE: + movs r0, 0 + bl sub_802D1A0 + movs r0, 0x1 + pop {r4-r6} + pop {r1} + bx r1 + .align 2, 0 +_0802D0DC: .4byte gUnknown_203B2F8 + thumb_func_end sub_802D098 + + thumb_func_start sub_802D0E0 +sub_802D0E0: + push {lr} + ldr r0, _0802D0F8 + ldr r0, [r0] + ldr r0, [r0] + cmp r0, 0x10 + bhi _0802D16C + lsls r0, 2 + ldr r1, _0802D0FC + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0802D0F8: .4byte gUnknown_203B2F8 +_0802D0FC: .4byte _0802D100 + .align 2, 0 +_0802D100: + .4byte _0802D170 + .4byte _0802D144 + .4byte _0802D168 + .4byte _0802D16C + .4byte _0802D16C + .4byte _0802D16C + .4byte _0802D16C + .4byte _0802D16C + .4byte _0802D16C + .4byte _0802D162 + .4byte _0802D16C + .4byte _0802D14A + .4byte _0802D14A + .4byte _0802D150 + .4byte _0802D156 + .4byte _0802D15C + .4byte _0802D15C +_0802D144: + bl sub_802D7D0 + b _0802D170 +_0802D14A: + bl sub_802D8CC + b _0802D170 +_0802D150: + bl sub_802D940 + b _0802D170 +_0802D156: + bl sub_802D9F0 + b _0802D170 +_0802D15C: + bl sub_802DA60 + b _0802D170 +_0802D162: + bl sub_802D82C + b _0802D170 +_0802D168: + movs r0, 0x3 + b _0802D172 +_0802D16C: + bl sub_802DA84 +_0802D170: + movs r0, 0 +_0802D172: + pop {r1} + bx r1 + thumb_func_end sub_802D0E0 + + thumb_func_start sub_802D178 +sub_802D178: + ldr r0, _0802D180 + ldr r0, [r0] + ldrb r0, [r0, 0x8] + bx lr + .align 2, 0 +_0802D180: .4byte gUnknown_203B2F8 + thumb_func_end sub_802D178 + + thumb_func_start sub_802D184 +sub_802D184: + push {r4,lr} + ldr r4, _0802D19C + ldr r0, [r4] + cmp r0, 0 + beq _0802D196 + bl MemoryFree + movs r0, 0 + str r0, [r4] +_0802D196: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0802D19C: .4byte gUnknown_203B2F8 + thumb_func_end sub_802D184 + + thumb_func_start sub_802D1A0 +sub_802D1A0: + push {lr} + ldr r1, _0802D1B4 + ldr r1, [r1] + str r0, [r1] + bl sub_802D1B8 + bl sub_802D2A8 + pop {r0} + bx r0 + .align 2, 0 +_0802D1B4: .4byte gUnknown_203B2F8 + thumb_func_end sub_802D1A0 + + thumb_func_start sub_802D1B8 +sub_802D1B8: + push {r4-r7,lr} + mov r7, r8 + push {r7} + ldr r4, _0802D1E0 + ldr r0, [r4] + movs r1, 0xD4 + lsls r1, 1 + adds r0, r1 + bl sub_8006518 + ldr r0, [r4] + ldr r0, [r0] + cmp r0, 0xD + beq _0802D1EA + cmp r0, 0xD + bgt _0802D1E4 + cmp r0, 0x2 + beq _0802D27E + b _0802D254 + .align 2, 0 +_0802D1E0: .4byte gUnknown_203B2F8 +_0802D1E4: + cmp r0, 0xE + beq _0802D21C + b _0802D254 +_0802D1EA: + bl sub_802D5A4 + ldr r2, [r4] + movs r0, 0xEC + lsls r0, 1 + adds r2, r0 + ldr r1, _0802D218 + ldm r1!, {r3,r5,r6} + stm r2!, {r3,r5,r6} + ldm r1!, {r3,r5,r7} + stm r2!, {r3,r5,r7} + ldr r1, [r4] + adds r0, r1, r0 + movs r6, 0x8C + lsls r6, 1 + adds r1, r6 + bl sub_8012CAC + ldr r0, [r4] + movs r7, 0xF2 + lsls r7, 1 + b _0802D246 + .align 2, 0 +_0802D218: .4byte gUnknown_80DFE04 +_0802D21C: + bl sub_802D63C + ldr r2, [r4] + movs r0, 0xF8 + lsls r0, 1 + adds r2, r0 + ldr r1, _0802D250 + ldm r1!, {r3,r5,r6} + stm r2!, {r3,r5,r6} + ldm r1!, {r3,r5,r7} + stm r2!, {r3,r5,r7} + ldr r1, [r4] + adds r0, r1, r0 + movs r6, 0xAC + lsls r6, 1 + adds r1, r6 + bl sub_8012CAC + ldr r0, [r4] + movs r7, 0xFE + lsls r7, 1 +_0802D246: + adds r0, r7 + movs r1, 0x6 + strh r1, [r0] + b _0802D27E + .align 2, 0 +_0802D250: .4byte gUnknown_80DFE1C +_0802D254: + ldr r0, _0802D2A0 + mov r12, r0 + movs r1, 0xD4 + lsls r1, 1 + mov r8, r1 + ldr r4, _0802D2A4 + movs r3, 0 + movs r2, 0x3 +_0802D264: + mov r5, r12 + ldr r1, [r5] + adds r1, r3 + add r1, r8 + adds r0, r4, 0 + ldm r0!, {r5-r7} + stm r1!, {r5-r7} + ldm r0!, {r5-r7} + stm r1!, {r5-r7} + adds r3, 0x18 + subs r2, 0x1 + cmp r2, 0 + bge _0802D264 +_0802D27E: + bl ResetUnusedInputStruct + ldr r0, _0802D2A0 + ldr r0, [r0] + movs r6, 0xD4 + lsls r6, 1 + adds r0, r6 + movs r1, 0x1 + movs r2, 0x1 + bl sub_800641C + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_0802D2A0: .4byte gUnknown_203B2F8 +_0802D2A4: .4byte gUnknown_80DFDD4 + thumb_func_end sub_802D1B8 + + thumb_func_start sub_802D2A8 +sub_802D2A8: + push {r4,lr} + sub sp, 0x14 + ldr r1, _0802D2C4 + ldr r0, [r1] + ldr r0, [r0] + adds r4, r1, 0 + cmp r0, 0x10 + bls _0802D2BA + b _0802D59A +_0802D2BA: + lsls r0, 2 + ldr r1, _0802D2C8 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0802D2C4: .4byte gUnknown_203B2F8 +_0802D2C8: .4byte _0802D2CC + .align 2, 0 +_0802D2CC: + .4byte _0802D310 + .4byte _0802D398 + .4byte _0802D59A + .4byte _0802D3B4 + .4byte _0802D3C4 + .4byte _0802D3D4 + .4byte _0802D3E4 + .4byte _0802D3F4 + .4byte _0802D404 + .4byte _0802D498 + .4byte _0802D4C8 + .4byte _0802D4E4 + .4byte _0802D4F0 + .4byte _0802D4F8 + .4byte _0802D524 + .4byte _0802D558 + .4byte _0802D576 +_0802D310: + ldr r0, [r4] + ldr r0, [r0, 0xC] + bl sub_80968B0 + lsls r0, 24 + cmp r0, 0 + beq _0802D326 + movs r0, 0x3 + bl sub_802D1A0 + b _0802D59A +_0802D326: + ldr r0, [r4] + ldr r0, [r0, 0xC] + bl sub_8096F50 + lsls r0, 24 + cmp r0, 0 + beq _0802D33C + movs r0, 0x4 + bl sub_802D1A0 + b _0802D59A +_0802D33C: + ldr r1, [r4] + ldr r0, [r1, 0xC] + ldrb r0, [r0, 0x2] + cmp r0, 0x4 + bne _0802D36E + adds r0, r1, 0 + adds r0, 0x10 + bl sub_8096C08 + lsls r0, 24 + cmp r0, 0 + beq _0802D36E + bl sub_802DAA8 + lsls r0, 24 + cmp r0, 0 + beq _0802D366 + movs r0, 0x9 + bl sub_802D1A0 + b _0802D59A +_0802D366: + movs r0, 0x5 + bl sub_802D1A0 + b _0802D59A +_0802D36E: + bl sub_80969AC + cmp r0, 0x7 + ble _0802D390 + bl sub_802DADC + lsls r0, 24 + cmp r0, 0 + beq _0802D388 + movs r0, 0xA + bl sub_802D1A0 + b _0802D59A +_0802D388: + movs r0, 0x6 + bl sub_802D1A0 + b _0802D59A +_0802D390: + movs r0, 0x8 + bl sub_802D1A0 + b _0802D59A +_0802D398: + bl sub_802D73C + ldr r0, _0802D3AC + ldr r1, _0802D3B0 + ldr r3, [r1] + ldr r2, [r3, 0x70] + movs r1, 0xAC + lsls r1, 1 + adds r3, r1 + b _0802D4AA + .align 2, 0 +_0802D3AC: .4byte gUnknown_80DFE4C +_0802D3B0: .4byte gUnknown_203B2F8 +_0802D3B4: + ldr r1, [r4] + movs r0, 0x2 + str r0, [r1, 0x4] + ldr r0, _0802D3C0 + b _0802D4D0 + .align 2, 0 +_0802D3C0: .4byte gUnknown_80DFE9C +_0802D3C4: + ldr r1, [r4] + movs r0, 0x2 + str r0, [r1, 0x4] + ldr r0, _0802D3D0 + b _0802D4D0 + .align 2, 0 +_0802D3D0: .4byte gUnknown_80DFED0 +_0802D3D4: + ldr r1, [r4] + movs r0, 0x2 + str r0, [r1, 0x4] + ldr r0, _0802D3E0 + b _0802D4D0 + .align 2, 0 +_0802D3E0: .4byte gUnknown_80DFF2C +_0802D3E4: + ldr r1, [r4] + movs r0, 0x2 + str r0, [r1, 0x4] + ldr r0, _0802D3F0 + b _0802D4D0 + .align 2, 0 +_0802D3F0: .4byte gUnknown_80DFFA4 +_0802D3F4: + ldr r1, [r4] + movs r0, 0xC + str r0, [r1, 0x4] + ldr r0, _0802D400 + b _0802D4D0 + .align 2, 0 +_0802D400: .4byte gUnknown_80E0010 +_0802D404: + ldr r4, _0802D45C + ldr r1, [r4] + movs r0, 0x1 + strb r0, [r1, 0x8] + ldr r0, [r4] + ldr r0, [r0, 0xC] + bl sub_8096A78 + bl sub_8096C80 + bl sub_8096D24 + ldr r0, [r4] + ldr r0, [r0, 0xC] + ldrb r0, [r0, 0x2] + cmp r0, 0x4 + bne _0802D446 + bl sub_8096DD8 + ldr r1, [r4] + ldr r1, [r1, 0xC] + ldr r1, [r1, 0x14] + movs r2, 0x28 + bl MemoryCopy8 + bl sub_8096DE8 + ldr r1, [r4] + ldr r1, [r1, 0xC] + ldr r1, [r1, 0x18] + movs r2, 0x78 + bl MemoryCopy8 +_0802D446: + ldr r0, [r4] + ldr r0, [r0, 0xC] + ldrb r0, [r0, 0x4] + cmp r0, 0x2C + beq _0802D46E + cmp r0, 0x2C + bgt _0802D460 + cmp r0, 0x2B + beq _0802D46A + b _0802D484 + .align 2, 0 +_0802D45C: .4byte gUnknown_203B2F8 +_0802D460: + cmp r0, 0x2D + beq _0802D472 + cmp r0, 0x2E + beq _0802D47C + b _0802D484 +_0802D46A: + movs r0, 0x2A + b _0802D474 +_0802D46E: + movs r0, 0x2B + b _0802D474 +_0802D472: + movs r0, 0x2C +_0802D474: + movs r1, 0x1 + bl sub_8097418 + b _0802D484 +_0802D47C: + movs r0, 0x2D + movs r1, 0x1 + bl sub_8097418 +_0802D484: + ldr r0, _0802D490 + ldr r1, [r0] + movs r0, 0x2 + str r0, [r1, 0x4] + ldr r0, _0802D494 + b _0802D4D0 + .align 2, 0 +_0802D490: .4byte gUnknown_203B2F8 +_0802D494: .4byte gUnknown_80E0074 +_0802D498: + bl sub_802D690 + ldr r0, _0802D4C0 + ldr r1, _0802D4C4 + ldr r3, [r1] + ldr r2, [r3, 0x74] + movs r4, 0xAC + lsls r4, 1 + adds r3, r4 +_0802D4AA: + movs r4, 0 + str r4, [sp] + movs r1, 0x4 + str r1, [sp, 0x4] + str r4, [sp, 0x8] + str r4, [sp, 0xC] + str r4, [sp, 0x10] + movs r1, 0 + bl sub_8014248 + b _0802D59A + .align 2, 0 +_0802D4C0: .4byte gUnknown_80E0094 +_0802D4C4: .4byte gUnknown_203B2F8 +_0802D4C8: + ldr r1, [r4] + movs r0, 0xB + str r0, [r1, 0x4] + ldr r0, _0802D4DC +_0802D4D0: + ldr r3, _0802D4E0 + movs r1, 0 + movs r2, 0 + bl sub_80141B4 + b _0802D59A + .align 2, 0 +_0802D4DC: .4byte gUnknown_80E0108 +_0802D4E0: .4byte 0x00000101 +_0802D4E4: + movs r0, 0 + movs r1, 0 + movs r2, 0x4 + bl sub_802C4C8 + b _0802D59A +_0802D4F0: + movs r0, 0x1 + bl sub_802C640 + b _0802D59A +_0802D4F8: + bl sub_802C750 + ldr r0, _0802D520 + ldr r2, [r0] + adds r0, r2, 0 + adds r0, 0x78 + movs r3, 0x8C + lsls r3, 1 + adds r1, r2, r3 + movs r4, 0xCC + lsls r4, 1 + adds r3, r2, r4 + ldr r2, [r2, 0x6C] + str r2, [sp] + movs r2, 0x2 + str r2, [sp, 0x4] + movs r2, 0 + bl sub_8012D60 + b _0802D59A + .align 2, 0 +_0802D520: .4byte gUnknown_203B2F8 +_0802D524: + bl sub_802C750 + ldr r4, _0802D554 + ldr r0, [r4] + adds r0, 0x78 + movs r1, 0 + bl sub_8012EA4 + ldr r1, [r4] + adds r0, r1, 0 + adds r0, 0xC8 + movs r2, 0xAC + lsls r2, 1 + adds r1, r2 + movs r2, 0x4 + str r2, [sp] + movs r2, 0x3 + str r2, [sp, 0x4] + movs r2, 0 + movs r3, 0 + bl sub_8012D60 + b _0802D59A + .align 2, 0 +_0802D554: .4byte gUnknown_203B2F8 +_0802D558: + ldr r0, [r4] + ldrb r0, [r0, 0x10] + bl sub_8096AB4 + ldr r1, [r4] + adds r1, 0x14 + bl sub_803B35C + ldr r0, [r4] + movs r1, 0x3 + str r1, [r0, 0x14] + adds r0, 0x14 + bl sub_802DE84 + b _0802D59A +_0802D576: + ldr r1, [r4] + ldr r0, [r1, 0xC] + adds r1, 0x14 + bl sub_803B35C + ldr r0, [r4] + movs r1, 0x3 + str r1, [r0, 0x14] + adds r0, 0x58 + movs r1, 0 + strb r1, [r0] + ldr r0, [r4] + ldr r1, [r0, 0xC] + ldr r1, [r1, 0x18] + str r1, [r0, 0x64] + adds r0, 0x14 + bl sub_802DE84 +_0802D59A: + add sp, 0x14 + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_802D2A8 + + thumb_func_start sub_802D5A4 +sub_802D5A4: + push {r4-r7,lr} + ldr r4, _0802D630 + ldr r0, [r4] + movs r5, 0xCC + lsls r5, 1 + adds r0, r5 + movs r1, 0 + movs r2, 0x10 + bl MemoryFill16 + ldr r0, [r4] + mov r12, r0 + movs r3, 0 + movs r1, 0x8C + lsls r1, 1 + add r1, r12 + ldr r0, _0802D634 + ldr r0, [r0] + str r0, [r1] + movs r1, 0x8E + lsls r1, 1 + add r1, r12 + movs r0, 0x2 + str r0, [r1] + movs r2, 0x1 + movs r1, 0x90 + lsls r1, 1 + add r1, r12 + ldr r0, _0802D638 + ldr r0, [r0] + str r0, [r1] + movs r1, 0x92 + lsls r1, 1 + add r1, r12 + movs r0, 0x5 + str r0, [r1] + movs r7, 0x2 + movs r0, 0x94 + lsls r0, 1 + add r0, r12 + str r3, [r0] + movs r0, 0x96 + lsls r0, 1 + add r0, r12 + str r2, [r0] + movs r6, 0 + movs r3, 0x8E + lsls r3, 1 + add r3, r12 + mov r0, r12 + adds r2, r0, r5 +_0802D60A: + ldrh r0, [r2] + cmp r0, 0 + bne _0802D61A + ldr r1, [r3] + mov r5, r12 + ldr r0, [r5, 0x6C] + cmp r1, r0 + beq _0802D62A +_0802D61A: + adds r3, 0x8 + adds r2, 0x2 + adds r6, 0x1 + cmp r6, r7 + blt _0802D60A + ldr r1, [r4] + movs r0, 0x2 + str r0, [r1, 0x6C] +_0802D62A: + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_0802D630: .4byte gUnknown_203B2F8 +_0802D634: .4byte gUnknown_80D494C +_0802D638: .4byte gUnknown_80D4970 + thumb_func_end sub_802D5A4 + + thumb_func_start sub_802D63C +sub_802D63C: + ldr r0, _0802D684 + ldr r0, [r0] + mov r12, r0 + movs r3, 0 + movs r1, 0xAC + lsls r1, 1 + add r1, r12 + ldr r0, _0802D688 + ldr r0, [r0] + str r0, [r1] + movs r1, 0xAE + lsls r1, 1 + add r1, r12 + movs r0, 0x3 + str r0, [r1] + movs r2, 0x1 + movs r1, 0xB0 + lsls r1, 1 + add r1, r12 + ldr r0, _0802D68C + ldr r0, [r0] + str r0, [r1] + movs r1, 0xB2 + lsls r1, 1 + add r1, r12 + movs r0, 0x4 + str r0, [r1] + movs r0, 0xB4 + lsls r0, 1 + add r0, r12 + str r3, [r0] + movs r0, 0xB6 + lsls r0, 1 + add r0, r12 + str r2, [r0] + bx lr + .align 2, 0 +_0802D684: .4byte gUnknown_203B2F8 +_0802D688: .4byte gUnknown_80D4920 +_0802D68C: .4byte gUnknown_80D4928 + thumb_func_end sub_802D63C + + thumb_func_start sub_802D690 +sub_802D690: + push {r4,r5,lr} + ldr r2, _0802D728 + ldr r0, [r2] + mov r12, r0 + movs r4, 0 + movs r1, 0xAC + lsls r1, 1 + add r1, r12 + ldr r0, _0802D72C + ldr r0, [r0] + str r0, [r1] + movs r1, 0xAE + lsls r1, 1 + add r1, r12 + movs r0, 0x3 + str r0, [r1] + movs r3, 0x1 + movs r1, 0xB0 + lsls r1, 1 + add r1, r12 + ldr r0, _0802D730 + ldr r0, [r0] + str r0, [r1] + movs r1, 0xB2 + lsls r1, 1 + add r1, r12 + movs r0, 0x4 + str r0, [r1] + movs r1, 0xB4 + lsls r1, 1 + add r1, r12 + ldr r0, _0802D734 + str r0, [r1] + movs r1, 0xB6 + lsls r1, 1 + add r1, r12 + movs r0, 0x6 + str r0, [r1] + movs r1, 0xB8 + lsls r1, 1 + add r1, r12 + ldr r0, _0802D738 + str r0, [r1] + movs r1, 0xBA + lsls r1, 1 + add r1, r12 + movs r0, 0x7 + str r0, [r1] + movs r5, 0x4 + movs r0, 0xBC + lsls r0, 1 + add r0, r12 + str r4, [r0] + movs r0, 0xBE + lsls r0, 1 + add r0, r12 + str r3, [r0] + movs r3, 0 + mov r0, r12 + ldr r4, [r0, 0x74] + movs r1, 0xAE + lsls r1, 1 + add r1, r12 +_0802D70E: + ldr r0, [r1] + cmp r0, r4 + beq _0802D722 + adds r1, 0x8 + adds r3, 0x1 + cmp r3, r5 + blt _0802D70E + ldr r1, [r2] + movs r0, 0x4 + str r0, [r1, 0x74] +_0802D722: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_0802D728: .4byte gUnknown_203B2F8 +_0802D72C: .4byte gUnknown_80D4920 +_0802D730: .4byte gUnknown_80D4928 +_0802D734: .4byte gUnknown_80E014C +_0802D738: .4byte gUnknown_80E0158 + thumb_func_end sub_802D690 + + thumb_func_start sub_802D73C +sub_802D73C: + push {r4,r5,lr} + ldr r3, _0802D7C0 + ldr r0, [r3] + mov r12, r0 + movs r4, 0 + movs r1, 0xAC + lsls r1, 1 + add r1, r12 + ldr r0, _0802D7C4 + ldr r0, [r0] + str r0, [r1] + movs r1, 0xAE + lsls r1, 1 + add r1, r12 + movs r0, 0x3 + str r0, [r1] + movs r2, 0x1 + movs r1, 0xB0 + lsls r1, 1 + add r1, r12 + ldr r0, _0802D7C8 + ldr r0, [r0] + str r0, [r1] + movs r1, 0xB2 + lsls r1, 1 + add r1, r12 + movs r0, 0x4 + str r0, [r1] + movs r1, 0xB4 + lsls r1, 1 + add r1, r12 + ldr r0, _0802D7CC + str r0, [r1] + movs r1, 0xB6 + lsls r1, 1 + add r1, r12 + movs r0, 0x6 + str r0, [r1] + movs r5, 0x3 + movs r0, 0xB8 + lsls r0, 1 + add r0, r12 + str r4, [r0] + movs r0, 0xBA + lsls r0, 1 + add r0, r12 + str r2, [r0] + movs r2, 0 + mov r0, r12 + ldr r4, [r0, 0x70] + movs r1, 0xAE + lsls r1, 1 + add r1, r12 +_0802D7A6: + ldr r0, [r1] + cmp r0, r4 + beq _0802D7BA + adds r1, 0x8 + adds r2, 0x1 + cmp r2, r5 + blt _0802D7A6 + ldr r1, [r3] + movs r0, 0x4 + str r0, [r1, 0x70] +_0802D7BA: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_0802D7C0: .4byte gUnknown_203B2F8 +_0802D7C4: .4byte gUnknown_80D4920 +_0802D7C8: .4byte gUnknown_80D4928 +_0802D7CC: .4byte gUnknown_80E014C + thumb_func_end sub_802D73C + + thumb_func_start sub_802D7D0 +sub_802D7D0: + push {lr} + sub sp, 0x4 + mov r0, sp + bl sub_80144A4 + cmp r0, 0 + bne _0802D826 + ldr r1, [sp] + cmp r1, 0x1 + beq _0802D7EA + ldr r0, _0802D800 + ldr r0, [r0] + str r1, [r0, 0x70] +_0802D7EA: + ldr r0, [sp] + cmp r0, 0x3 + beq _0802D804 + cmp r0, 0x3 + ble _0802D820 + cmp r0, 0x4 + beq _0802D820 + cmp r0, 0x6 + beq _0802D80C + b _0802D820 + .align 2, 0 +_0802D800: .4byte gUnknown_203B2F8 +_0802D804: + movs r0, 0x2 + bl sub_802D1A0 + b _0802D826 +_0802D80C: + ldr r0, _0802D81C + ldr r1, [r0] + movs r0, 0x1 + str r0, [r1, 0x4] + movs r0, 0x10 + bl sub_802D1A0 + b _0802D826 + .align 2, 0 +_0802D81C: .4byte gUnknown_203B2F8 +_0802D820: + movs r0, 0 + bl sub_802D1A0 +_0802D826: + add sp, 0x4 + pop {r0} + bx r0 + thumb_func_end sub_802D7D0 + + thumb_func_start sub_802D82C +sub_802D82C: + push {lr} + sub sp, 0x4 + mov r0, sp + bl sub_80144A4 + cmp r0, 0 + bne _0802D8C6 + ldr r1, [sp] + cmp r1, 0x1 + beq _0802D846 + ldr r0, _0802D858 + ldr r0, [r0] + str r1, [r0, 0x74] +_0802D846: + ldr r0, [sp] + subs r0, 0x1 + cmp r0, 0x6 + bhi _0802D8C0 + lsls r0, 2 + ldr r1, _0802D85C + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0802D858: .4byte gUnknown_203B2F8 +_0802D85C: .4byte _0802D860 + .align 2, 0 +_0802D860: + .4byte _0802D8C0 + .4byte _0802D8C0 + .4byte _0802D87C + .4byte _0802D8C0 + .4byte _0802D8C0 + .4byte _0802D898 + .4byte _0802D8AC +_0802D87C: + ldr r0, _0802D894 + ldr r0, [r0] + ldrb r0, [r0, 0x10] + bl sub_8096C3C + bl sub_8096C80 + movs r0, 0x8 + bl sub_802D1A0 + b _0802D8C6 + .align 2, 0 +_0802D894: .4byte gUnknown_203B2F8 +_0802D898: + ldr r0, _0802D8A8 + ldr r1, [r0] + movs r0, 0x9 + str r0, [r1, 0x4] + movs r0, 0x10 + bl sub_802D1A0 + b _0802D8C6 + .align 2, 0 +_0802D8A8: .4byte gUnknown_203B2F8 +_0802D8AC: + ldr r0, _0802D8BC + ldr r1, [r0] + movs r0, 0x9 + str r0, [r1, 0x4] + movs r0, 0xF + bl sub_802D1A0 + b _0802D8C6 + .align 2, 0 +_0802D8BC: .4byte gUnknown_203B2F8 +_0802D8C0: + movs r0, 0x1 + bl sub_802D1A0 +_0802D8C6: + add sp, 0x4 + pop {r0} + bx r0 + thumb_func_end sub_802D82C + + thumb_func_start sub_802D8CC +sub_802D8CC: + push {lr} + movs r0, 0x1 + bl sub_802C598 + cmp r0, 0x4 + bhi _0802D93A + lsls r0, 2 + ldr r1, _0802D8E4 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0802D8E4: .4byte _0802D8E8 + .align 2, 0 +_0802D8E8: + .4byte _0802D93A + .4byte _0802D93A + .4byte _0802D930 + .4byte _0802D8FC + .4byte _0802D914 +_0802D8FC: + bl sub_802C620 + ldr r1, _0802D910 + ldr r1, [r1] + strb r0, [r1, 0x10] + movs r0, 0xD + bl sub_802D1A0 + b _0802D93A + .align 2, 0 +_0802D910: .4byte gUnknown_203B2F8 +_0802D914: + bl sub_802C620 + ldr r2, _0802D92C + ldr r1, [r2] + strb r0, [r1, 0x10] + ldr r1, [r2] + movs r0, 0xC + str r0, [r1, 0x4] + movs r0, 0xF + bl sub_802D1A0 + b _0802D93A + .align 2, 0 +_0802D92C: .4byte gUnknown_203B2F8 +_0802D930: + bl sub_802C688 + movs r0, 0x1 + bl sub_802D1A0 +_0802D93A: + pop {r0} + bx r0 + thumb_func_end sub_802D8CC + + thumb_func_start sub_802D940 +sub_802D940: + push {r4,lr} + sub sp, 0x4 + movs r0, 0 + str r0, [sp] + bl sub_802C598 + ldr r4, _0802D980 + ldr r0, [r4] + adds r0, 0x78 + bl sub_8012FD8 + lsls r0, 24 + cmp r0, 0 + bne _0802D970 + ldr r0, [r4] + adds r0, 0x78 + mov r1, sp + bl sub_8013114 + ldr r1, [sp] + cmp r1, 0x1 + beq _0802D970 + ldr r0, [r4] + str r1, [r0, 0x6C] +_0802D970: + ldr r0, [sp] + cmp r0, 0x2 + beq _0802D98A + cmp r0, 0x2 + bgt _0802D984 + cmp r0, 0x1 + beq _0802D9E0 + b _0802D9E6 + .align 2, 0 +_0802D980: .4byte gUnknown_203B2F8 +_0802D984: + cmp r0, 0x5 + beq _0802D9CC + b _0802D9E6 +_0802D98A: + ldr r0, _0802D9BC + ldr r3, [r0] + ldrb r0, [r3, 0x9] + cmp r0, 0 + beq _0802D9C4 + ldr r2, _0802D9C0 + ldrb r1, [r3, 0x10] + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 2 + adds r0, 0xF0 + ldr r1, [r2] + adds r1, r0 + ldrb r0, [r1] + cmp r0, 0x5 + bls _0802D9C4 + ldrb r0, [r3, 0xA] + ldrb r1, [r1, 0x4] + cmp r0, r1 + bne _0802D9C4 + movs r0, 0x7 + bl sub_802D1A0 + b _0802D9E6 + .align 2, 0 +_0802D9BC: .4byte gUnknown_203B2F8 +_0802D9C0: .4byte gUnknown_203B490 +_0802D9C4: + movs r0, 0xE + bl sub_802D1A0 + b _0802D9E6 +_0802D9CC: + ldr r0, _0802D9DC + ldr r1, [r0] + movs r0, 0xC + str r0, [r1, 0x4] + movs r0, 0xF + bl sub_802D1A0 + b _0802D9E6 + .align 2, 0 +_0802D9DC: .4byte gUnknown_203B2F8 +_0802D9E0: + movs r0, 0xC + bl sub_802D1A0 +_0802D9E6: + add sp, 0x4 + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_802D940 + + thumb_func_start sub_802D9F0 +sub_802D9F0: + push {r4,lr} + sub sp, 0x4 + movs r0, 0 + str r0, [sp] + bl sub_802C598 + ldr r4, _0802DA30 + ldr r0, [r4] + adds r0, 0x78 + bl sub_8012FD8 + ldr r0, [r4] + adds r0, 0xC8 + bl sub_8012FD8 + lsls r0, 24 + cmp r0, 0 + bne _0802DA1E + ldr r0, [r4] + adds r0, 0xC8 + mov r1, sp + bl sub_8013114 +_0802DA1E: + ldr r0, [sp] + cmp r0, 0x3 + beq _0802DA40 + cmp r0, 0x3 + bgt _0802DA34 + cmp r0, 0x1 + beq _0802DA38 + b _0802DA56 + .align 2, 0 +_0802DA30: .4byte gUnknown_203B2F8 +_0802DA34: + cmp r0, 0x4 + bne _0802DA56 +_0802DA38: + movs r0, 0xC + bl sub_802D1A0 + b _0802DA56 +_0802DA40: + bl sub_802C688 + ldr r0, [r4] + ldrb r0, [r0, 0x10] + bl sub_8096C3C + bl sub_8096C80 + movs r0, 0x8 + bl sub_802D1A0 +_0802DA56: + add sp, 0x4 + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_802D9F0 + + thumb_func_start sub_802DA60 +sub_802DA60: + push {lr} + bl sub_802DEE0 + cmp r0, 0x1 + bls _0802DA7C + cmp r0, 0x3 + bhi _0802DA7C + bl sub_802DF24 + ldr r0, _0802DA80 + ldr r0, [r0] + ldr r0, [r0, 0x4] + bl sub_802D1A0 +_0802DA7C: + pop {r0} + bx r0 + .align 2, 0 +_0802DA80: .4byte gUnknown_203B2F8 + thumb_func_end sub_802DA60 + + thumb_func_start sub_802DA84 +sub_802DA84: + push {lr} + sub sp, 0x4 + mov r0, sp + bl sub_80144A4 + cmp r0, 0 + bne _0802DA9C + ldr r0, _0802DAA4 + ldr r0, [r0] + ldr r0, [r0, 0x4] + bl sub_802D1A0 +_0802DA9C: + add sp, 0x4 + pop {r0} + bx r0 + .align 2, 0 +_0802DAA4: .4byte gUnknown_203B2F8 + thumb_func_end sub_802DA84 + + thumb_func_start sub_802DAA8 +sub_802DAA8: + push {r4,lr} + ldr r4, _0802DAD0 + ldr r0, [r4] + ldrb r0, [r0, 0x10] + bl sub_8096AB4 + adds r1, r0, 0 + ldr r4, [r4] + ldrb r0, [r4, 0x9] + cmp r0, 0 + beq _0802DAD4 + ldrb r0, [r1] + cmp r0, 0x5 + beq _0802DAD4 + ldrb r0, [r4, 0xA] + ldrb r1, [r1, 0x4] + cmp r0, r1 + bne _0802DAD4 + movs r0, 0 + b _0802DAD6 + .align 2, 0 +_0802DAD0: .4byte gUnknown_203B2F8 +_0802DAD4: + movs r0, 0x1 +_0802DAD6: + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_802DAA8 + + thumb_func_start sub_802DADC +sub_802DADC: + push {r4,lr} + ldr r3, _0802DAEC + ldr r0, [r3] + ldrb r0, [r0, 0x9] + cmp r0, 0 + bne _0802DAF0 +_0802DAE8: + movs r0, 0x1 + b _0802DB1C + .align 2, 0 +_0802DAEC: .4byte gUnknown_203B2F8 +_0802DAF0: + ldr r0, _0802DB24 + ldr r0, [r0] + adds r1, r0, 0 + adds r1, 0xF0 + movs r2, 0 +_0802DAFA: + ldrb r0, [r1] + cmp r0, 0 + beq _0802DAE8 + cmp r0, 0x5 + beq _0802DAE8 + cmp r0, 0x5 + bls _0802DB12 + ldr r0, [r3] + ldrb r0, [r0, 0xA] + ldrb r4, [r1, 0x4] + cmp r0, r4 + bne _0802DAE8 +_0802DB12: + adds r1, 0x14 + adds r2, 0x1 + cmp r2, 0x7 + ble _0802DAFA + movs r0, 0 +_0802DB1C: + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_0802DB24: .4byte gUnknown_203B490 + thumb_func_end sub_802DADC + + thumb_func_start sub_802DB28 +sub_802DB28: + push {r4-r6,lr} + sub sp, 0x8 + adds r2, r1, 0 + lsls r0, 24 + lsrs r6, r0, 24 + lsls r2, 24 + lsrs r2, 24 + mov r0, sp + adds r1, r6, 0 + bl sub_8096AF8 + mov r0, sp + ldrb r0, [r0] + cmp r0, 0 + bne _0802DB4A + movs r0, 0 + b _0802DBC6 +_0802DB4A: + bl ResetUnusedInputStruct + movs r0, 0 + movs r1, 0x1 + movs r2, 0x1 + bl sub_800641C + ldr r4, _0802DBD0 + movs r0, 0xA8 + movs r1, 0x8 + bl MemoryAlloc + str r0, [r4] + adds r0, 0x30 + movs r5, 0 + strb r6, [r0] + adds r0, r6, 0 + bl sub_8096AB4 + ldr r1, [r4] + str r0, [r1, 0x34] + bl sub_8096EEC + ldr r1, [r4] + ldr r0, [r1, 0x34] + adds r1, 0x8 + bl sub_803C21C + ldr r0, [r4] + ldr r0, [r0, 0x34] + movs r1, 0xC + ldrsh r0, [r0, r1] + bl GetDialogueSpriteDataPtr + ldr r1, [r4] + str r0, [r1, 0x38] + str r5, [r1, 0x3C] + adds r1, 0x44 + strb r5, [r1] + ldr r0, [r4] + adds r0, 0x45 + strb r5, [r0] + ldr r0, [r4] + adds r0, 0x46 + strb r5, [r0] + ldr r2, [r4] + adds r1, r2, 0 + adds r1, 0x40 + movs r0, 0x2 + strh r0, [r1] + adds r1, 0x2 + movs r0, 0x8 + strh r0, [r1] + ldr r0, [r2, 0x38] + cmp r0, 0 + beq _0802DBBE + ldr r0, [r0, 0x4] + str r0, [r2, 0x3C] +_0802DBBE: + movs r0, 0 + bl sub_802DC28 + movs r0, 0x1 +_0802DBC6: + add sp, 0x8 + pop {r4-r6} + pop {r1} + bx r1 + .align 2, 0 +_0802DBD0: .4byte gUnknown_203B2FC + thumb_func_end sub_802DB28 + + thumb_func_start sub_802DBD4 +sub_802DBD4: + push {lr} + ldr r0, _0802DBEC + ldr r0, [r0] + ldr r1, [r0] + cmp r1, 0x6 + beq _0802DBF0 + cmp r1, 0x7 + bne _0802DBF6 + ldr r0, [r0, 0x34] + strb r1, [r0] + movs r0, 0x3 + b _0802DBFC + .align 2, 0 +_0802DBEC: .4byte gUnknown_203B2FC +_0802DBF0: + bl sub_802DE44 + b _0802DBFA +_0802DBF6: + bl sub_802DE60 +_0802DBFA: + movs r0, 0 +_0802DBFC: + pop {r1} + bx r1 + thumb_func_end sub_802DBD4 + + thumb_func_start sub_802DC00 +sub_802DC00: + push {r4,lr} + ldr r4, _0802DC24 + ldr r0, [r4] + cmp r0, 0 + beq _0802DC1E + ldr r0, [r0, 0x38] + cmp r0, 0 + beq _0802DC14 + bl CloseFile +_0802DC14: + ldr r0, [r4] + bl MemoryFree + movs r0, 0 + str r0, [r4] +_0802DC1E: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0802DC24: .4byte gUnknown_203B2FC + thumb_func_end sub_802DC00 + + thumb_func_start sub_802DC28 +sub_802DC28: + push {lr} + ldr r1, _0802DC3C + ldr r1, [r1] + str r0, [r1] + bl sub_802DC40 + bl sub_802DC9C + pop {r0} + bx r0 + .align 2, 0 +_0802DC3C: .4byte gUnknown_203B2FC + thumb_func_end sub_802DC28 + + thumb_func_start sub_802DC40 +sub_802DC40: + push {r4-r7,lr} + ldr r4, _0802DC94 + ldr r0, [r4] + adds r0, 0x48 + bl sub_8006518 + ldr r0, [r4] + ldr r0, [r0] + cmp r0, 0 + beq _0802DC58 + cmp r0, 0x7 + bne _0802DC7A +_0802DC58: + mov r12, r4 + ldr r4, _0802DC98 + movs r3, 0 + movs r2, 0x3 +_0802DC60: + mov r0, r12 + ldr r1, [r0] + adds r1, r3 + adds r1, 0x48 + adds r0, r4, 0 + ldm r0!, {r5-r7} + stm r1!, {r5-r7} + ldm r0!, {r5-r7} + stm r1!, {r5-r7} + adds r3, 0x18 + subs r2, 0x1 + cmp r2, 0 + bge _0802DC60 +_0802DC7A: + bl ResetUnusedInputStruct + ldr r0, _0802DC94 + ldr r0, [r0] + adds r0, 0x48 + movs r1, 0x1 + movs r2, 0x1 + bl sub_800641C + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_0802DC94: .4byte gUnknown_203B2FC +_0802DC98: .4byte gUnknown_80E016C + thumb_func_end sub_802DC40 + + thumb_func_start sub_802DC9C +sub_802DC9C: + push {r4,r5,lr} + ldr r1, _0802DCB8 + ldr r0, [r1] + ldr r0, [r0] + adds r5, r1, 0 + cmp r0, 0x7 + bls _0802DCAC + b _0802DE3E +_0802DCAC: + lsls r0, 2 + ldr r1, _0802DCBC + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0802DCB8: .4byte gUnknown_203B2FC +_0802DCBC: .4byte _0802DCC0 + .align 2, 0 +_0802DCC0: + .4byte _0802DCE0 + .4byte _0802DDDC + .4byte _0802DDE4 + .4byte _0802DDEC + .4byte _0802DDFC + .4byte _0802DDF4 + .4byte _0802DE34 + .4byte _0802DE3E +_0802DCE0: + ldr r0, _0802DD60 + ldr r1, [r5] + ldr r1, [r1, 0x34] + movs r2, 0xC + ldrsh r1, [r1, r2] + bl sub_808D8E0 + ldr r4, _0802DD64 + ldr r0, [r5] + ldr r0, [r0, 0x34] + movs r2, 0xC + ldrsh r1, [r0, r2] + adds r0, r4, 0 + bl sub_808D8E0 + ldr r0, [r5] + ldr r0, [r0, 0x34] + movs r1, 0xC + ldrsh r0, [r0, r1] + bl GetMonSpecies + adds r1, r0, 0 + ldr r2, _0802DD68 + adds r0, r4, r2 + bl strcpy + ldr r0, [r5] + ldr r0, [r0, 0x34] + movs r1, 0xE + ldrsh r0, [r0, r1] + bl GetMonSpecies + adds r1, r0, 0 + ldr r2, _0802DD6C + adds r4, r2 + adds r0, r4, 0 + bl strcpy + ldr r0, [r5] + ldr r0, [r0, 0x34] + movs r1, 0xC + ldrsh r0, [r0, r1] + bl sub_8098214 + ldr r0, _0802DD70 + ldr r1, [r5] + ldr r1, [r1, 0x34] + ldrb r1, [r1, 0x10] + movs r2, 0 + bl sub_8090DC4 + ldr r1, [r5] + movs r0, 0x6 + str r0, [r1, 0x4] + ldr r0, [r1, 0x34] + ldrb r0, [r0, 0x1] + cmp r0, 0x4 + bhi _0802DDD4 + lsls r0, 2 + ldr r1, _0802DD74 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0802DD60: .4byte gUnknown_202E5D8 +_0802DD64: .4byte gUnknown_202E1C8 +_0802DD68: .4byte 0xfffffdd0 +_0802DD6C: .4byte 0xfffffe20 +_0802DD70: .4byte gUnknown_202DE58 +_0802DD74: .4byte _0802DD78 + .align 2, 0 +_0802DD78: + .4byte _0802DDD4 + .4byte _0802DD9C + .4byte _0802DDB8 + .4byte _0802DD94 + .4byte _0802DD8C +_0802DD8C: + movs r0, 0x5 + bl sub_802DC28 + b _0802DE3E +_0802DD94: + movs r0, 0x4 + bl sub_802DC28 + b _0802DE3E +_0802DD9C: + movs r0, 0x2 + bl sub_802DC28 + ldr r0, _0802DDB4 + ldr r0, [r0] + ldr r0, [r0, 0x34] + movs r2, 0xE + ldrsh r0, [r0, r2] + bl sub_8098214 + b _0802DE3E + .align 2, 0 +_0802DDB4: .4byte gUnknown_203B2FC +_0802DDB8: + movs r0, 0x3 + bl sub_802DC28 + ldr r0, _0802DDD0 + ldr r0, [r0] + ldr r0, [r0, 0x34] + movs r1, 0xE + ldrsh r0, [r0, r1] + bl sub_8098214 + b _0802DE3E + .align 2, 0 +_0802DDD0: .4byte gUnknown_203B2FC +_0802DDD4: + movs r0, 0x1 + bl sub_802DC28 + b _0802DE3E +_0802DDDC: + ldr r0, _0802DDE0 + b _0802DE1C + .align 2, 0 +_0802DDE0: .4byte gUnknown_80E0184 +_0802DDE4: + ldr r0, _0802DDE8 + b _0802DE1C + .align 2, 0 +_0802DDE8: .4byte gUnknown_80E01A0 +_0802DDEC: + ldr r0, _0802DDF0 + b _0802DE1C + .align 2, 0 +_0802DDF0: .4byte gUnknown_80E01C4 +_0802DDF4: + ldr r0, _0802DDF8 + b _0802DE1C + .align 2, 0 +_0802DDF8: .4byte gUnknown_80E01F0 +_0802DDFC: + ldr r0, [r5] + ldr r0, [r0, 0x34] + ldrb r0, [r0, 0x10] + bl sub_8091130 + adds r1, r0, 0 + movs r0, 0x1 + negs r0, r0 + cmp r1, r0 + beq _0802DE1A + adds r0, r1, 0 + bl sub_80911F8 + bl sub_80910B4 +_0802DE1A: + ldr r0, _0802DE2C +_0802DE1C: + ldr r2, [r5] + adds r2, 0x38 + ldr r3, _0802DE30 + movs r1, 0 + bl sub_80141B4 + b _0802DE3E + .align 2, 0 +_0802DE2C: .4byte gUnknown_80E0218 +_0802DE30: .4byte 0x0000010d +_0802DE34: + ldr r0, [r5] + adds r0, 0x8 + movs r1, 0x1 + bl sub_802F204 +_0802DE3E: + pop {r4,r5} + pop {r0} + bx r0 + thumb_func_end sub_802DC9C + + thumb_func_start sub_802DE44 +sub_802DE44: + push {lr} + bl sub_802F298 + cmp r0, 0x1 + bls _0802DE5C + cmp r0, 0x3 + bhi _0802DE5C + bl sub_802F2C0 + movs r0, 0x7 + bl sub_802DC28 +_0802DE5C: + pop {r0} + bx r0 + thumb_func_end sub_802DE44 + + thumb_func_start sub_802DE60 +sub_802DE60: + push {lr} + sub sp, 0x4 + mov r0, sp + bl sub_80144A4 + cmp r0, 0 + bne _0802DE78 + ldr r0, _0802DE80 + ldr r0, [r0] + ldr r0, [r0, 0x4] + bl sub_802DC28 +_0802DE78: + add sp, 0x4 + pop {r0} + bx r0 + .align 2, 0 +_0802DE80: .4byte gUnknown_203B2FC + thumb_func_end sub_802DE60 + + thumb_func_start sub_802DE84 +sub_802DE84: + push {r4,r5,lr} + adds r5, r0, 0 + ldr r4, _0802DED8 + movs r0, 0x7C + movs r1, 0x8 + bl MemoryAlloc + str r0, [r4] + str r5, [r0, 0xC] + bl sub_801317C + ldr r0, [r4] + ldr r1, [r0, 0xC] + ldr r2, [r1] + str r2, [r0, 0x10] + lsls r1, r2, 1 + adds r1, r2 + lsls r1, 3 + adds r1, 0x18 + adds r1, r0, r1 + str r1, [r0, 0x14] + adds r0, 0x18 + bl sub_8006518 + ldr r1, [r4] + ldr r2, [r1, 0x10] + lsls r0, r2, 1 + adds r0, r2 + lsls r0, 3 + adds r1, r0 + adds r1, 0x18 + ldr r0, _0802DEDC + ldm r0!, {r2-r4} + stm r1!, {r2-r4} + ldm r0!, {r2-r4} + stm r1!, {r2-r4} + bl sub_802DF14 + movs r0, 0x1 + pop {r4,r5} + pop {r1} + bx r1 + .align 2, 0 +_0802DED8: .4byte gUnknown_203B300 +_0802DEDC: .4byte gUnknown_80E0264 + thumb_func_end sub_802DE84 + + thumb_func_start sub_802DEE0 +sub_802DEE0: + push {lr} + ldr r0, _0802DF00 + ldr r0, [r0] + ldr r1, [r0, 0x10] + bl sub_8012A64 + cmp r0, 0x1 + beq _0802DF04 + cmp r0, 0x2 + bne _0802DF0E + movs r0, 0x1 + bl PlayMenuSoundEffect + movs r0, 0x2 + b _0802DF10 + .align 2, 0 +_0802DF00: .4byte gUnknown_203B300 +_0802DF04: + movs r0, 0 + bl PlayMenuSoundEffect + movs r0, 0x3 + b _0802DF10 +_0802DF0E: + movs r0, 0 +_0802DF10: + pop {r1} + bx r1 + thumb_func_end sub_802DEE0 + + thumb_func_start sub_802DF14 +sub_802DF14: + push {lr} + bl sub_802DF6C + bl sub_802DF88 + pop {r0} + bx r0 + thumb_func_end sub_802DF14 + + thumb_func_start sub_802DF24 +sub_802DF24: + push {r4,r5,lr} + ldr r4, _0802DF64 + ldr r2, [r4] + cmp r2, 0 + beq _0802DF5E + ldr r0, [r2, 0x10] + lsls r1, r0, 1 + adds r1, r0 + lsls r1, 3 + adds r1, r2, r1 + adds r1, 0x18 + ldr r0, _0802DF68 + ldm r0!, {r2,r3,r5} + stm r1!, {r2,r3,r5} + ldm r0!, {r2,r3,r5} + stm r1!, {r2,r3,r5} + bl ResetUnusedInputStruct + ldr r0, [r4] + adds r0, 0x18 + movs r1, 0x1 + movs r2, 0x1 + bl sub_800641C + ldr r0, [r4] + bl MemoryFree + movs r0, 0 + str r0, [r4] +_0802DF5E: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_0802DF64: .4byte gUnknown_203B300 +_0802DF68: .4byte gUnknown_80E0248 + thumb_func_end sub_802DF24 + + thumb_func_start sub_802DF6C +sub_802DF6C: + push {lr} + bl ResetUnusedInputStruct + ldr r0, _0802DF84 + ldr r0, [r0] + adds r0, 0x18 + movs r1, 0x1 + movs r2, 0x1 + bl sub_800641C + pop {r0} + bx r0 + .align 2, 0 +_0802DF84: .4byte gUnknown_203B300 + thumb_func_end sub_802DF6C + + thumb_func_start sub_802DF88 +sub_802DF88: + push {r4,lr} + ldr r4, _0802DFAC + ldr r0, [r4] + ldr r0, [r0, 0x10] + bl sub_80073B8 + ldr r0, [r4] + ldr r0, [r0, 0xC] + bl CreateRescueDescription + ldr r0, [r4] + ldr r0, [r0, 0x10] + bl sub_80073E0 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0802DFAC: .4byte gUnknown_203B300 + thumb_func_end sub_802DF88 + + thumb_func_start sub_802DFB0 +sub_802DFB0: + push {r4,lr} + ldr r4, _0802DFD4 + movs r0, 0xB6 + lsls r0, 1 + movs r1, 0x8 + bl MemoryAlloc + str r0, [r4] + movs r1, 0 + str r1, [r0, 0x64] + str r1, [r0, 0x68] + movs r0, 0 + bl sub_802E088 + movs r0, 0x1 + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_0802DFD4: .4byte gUnknown_203B304 + thumb_func_end sub_802DFB0 + + thumb_func_start sub_802DFD8 +sub_802DFD8: + push {lr} + ldr r0, _0802DFF0 + ldr r0, [r0] + ldr r0, [r0] + cmp r0, 0xB + bhi _0802E060 + lsls r0, 2 + ldr r1, _0802DFF4 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0802DFF0: .4byte gUnknown_203B304 +_0802DFF4: .4byte _0802DFF8 + .align 2, 0 +_0802DFF8: + .4byte _0802E028 + .4byte _0802E030 + .4byte _0802E036 + .4byte _0802E060 + .4byte _0802E03C + .4byte _0802E03C + .4byte _0802E042 + .4byte _0802E048 + .4byte _0802E04E + .4byte _0802E054 + .4byte _0802E054 + .4byte _0802E05A +_0802E028: + movs r0, 0x1 + bl sub_802E088 + b _0802E064 +_0802E030: + bl sub_802E4B0 + b _0802E064 +_0802E036: + bl nullsub_133 + b _0802E064 +_0802E03C: + bl sub_802E578 + b _0802E064 +_0802E042: + bl sub_802E60C + b _0802E064 +_0802E048: + bl sub_802E73C + b _0802E064 +_0802E04E: + bl sub_802E758 + b _0802E064 +_0802E054: + bl sub_802E774 + b _0802E064 +_0802E05A: + bl sub_802E7D0 + b _0802E064 +_0802E060: + movs r0, 0x3 + b _0802E066 +_0802E064: + movs r0, 0 +_0802E066: + pop {r1} + bx r1 + thumb_func_end sub_802DFD8 + + thumb_func_start sub_802E06C +sub_802E06C: + push {r4,lr} + ldr r4, _0802E084 + ldr r0, [r4] + cmp r0, 0 + beq _0802E07E + bl MemoryFree + movs r0, 0 + str r0, [r4] +_0802E07E: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0802E084: .4byte gUnknown_203B304 + thumb_func_end sub_802E06C + + thumb_func_start sub_802E088 +sub_802E088: + push {lr} + ldr r1, _0802E09C + ldr r1, [r1] + str r0, [r1] + bl sub_802E0A0 + bl sub_802E1AC + pop {r0} + bx r0 + .align 2, 0 +_0802E09C: .4byte gUnknown_203B304 + thumb_func_end sub_802E088 + + thumb_func_start sub_802E0A0 +sub_802E0A0: + push {r4-r7,lr} + mov r7, r8 + push {r7} + ldr r4, _0802E0C8 + ldr r0, [r4] + movs r6, 0x86 + lsls r6, 1 + adds r0, r6 + bl sub_8006518 + ldr r0, [r4] + ldr r5, [r0] + cmp r5, 0x1 + beq _0802E0D0 + cmp r5, 0x6 + beq _0802E124 + movs r3, 0 + ldr r2, _0802E0CC + b _0802E168 + .align 2, 0 +_0802E0C8: .4byte gUnknown_203B304 +_0802E0CC: .4byte gUnknown_80E0284 +_0802E0D0: + mov r12, r6 + ldr r0, _0802E118 + mov r8, r0 + movs r2, 0 + movs r3, 0x3 +_0802E0DA: + ldr r1, [r4] + adds r1, r2 + add r1, r12 + mov r0, r8 + ldm r0!, {r5-r7} + stm r1!, {r5-r7} + ldm r0!, {r5-r7} + stm r1!, {r5-r7} + adds r2, 0x18 + subs r3, 0x1 + cmp r3, 0 + bge _0802E0DA + bl CreateMailboxMenu + ldr r3, _0802E11C + ldr r2, [r3] + movs r0, 0x9E + lsls r0, 1 + adds r2, r0 + ldr r1, _0802E120 + ldm r1!, {r4-r6} + stm r2!, {r4-r6} + ldm r1!, {r4,r5,r7} + stm r2!, {r4,r5,r7} + ldr r1, [r3] + adds r0, r1, r0 + adds r1, 0xBC + bl sub_8012CAC + b _0802E188 + .align 2, 0 +_0802E118: .4byte gUnknown_80E0284 +_0802E11C: .4byte gUnknown_203B304 +_0802E120: .4byte gUnknown_80E029C +_0802E124: + bl CreateMailActionMenu + ldr r2, [r4] + movs r0, 0x9E + lsls r0, 1 + adds r2, r0 + ldr r1, _0802E160 + ldm r1!, {r3,r6,r7} + stm r2!, {r3,r6,r7} + ldm r1!, {r3,r6,r7} + stm r2!, {r3,r6,r7} + ldr r1, [r4] + adds r0, r1, r0 + adds r1, 0xBC + bl sub_8012CAC + ldr r1, [r4] + movs r4, 0xA4 + lsls r4, 1 + adds r0, r1, r4 + strh r5, [r0] + movs r5, 0xAA + lsls r5, 1 + adds r1, r5 + ldr r0, _0802E164 + ldm r0!, {r2,r6,r7} + stm r1!, {r2,r6,r7} + ldm r0!, {r3-r5} + stm r1!, {r3-r5} + b _0802E188 + .align 2, 0 +_0802E160: .4byte gUnknown_80E02B4 +_0802E164: .4byte gUnknown_80E02CC +_0802E168: + ldr r0, [r4] + lsls r1, r3, 1 + adds r1, r3 + lsls r1, 3 + adds r0, r1 + movs r6, 0x86 + lsls r6, 1 + adds r0, r6 + adds r1, r2, 0 + ldm r1!, {r5-r7} + stm r0!, {r5-r7} + ldm r1!, {r5-r7} + stm r0!, {r5-r7} + adds r3, 0x1 + cmp r3, 0x3 + ble _0802E168 +_0802E188: + bl ResetUnusedInputStruct + ldr r0, _0802E1A8 + ldr r0, [r0] + movs r7, 0x86 + lsls r7, 1 + adds r0, r7 + movs r1, 0x1 + movs r2, 0x1 + bl sub_800641C + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_0802E1A8: .4byte gUnknown_203B304 + thumb_func_end sub_802E0A0 + + thumb_func_start sub_802E1AC +sub_802E1AC: + push {r4,lr} + sub sp, 0x8 + ldr r1, _0802E1C8 + ldr r0, [r1] + ldr r0, [r0] + adds r4, r1, 0 + cmp r0, 0xB + bhi _0802E2AA + lsls r0, 2 + ldr r1, _0802E1CC + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0802E1C8: .4byte gUnknown_203B304 +_0802E1CC: .4byte _0802E1D0 + .align 2, 0 +_0802E1D0: + .4byte _0802E2AA + .4byte _0802E200 + .4byte _0802E2AA + .4byte _0802E2AA + .4byte _0802E21E + .4byte _0802E22A + .4byte _0802E232 + .4byte _0802E260 + .4byte _0802E286 + .4byte _0802E28E + .4byte _0802E29A + .4byte _0802E2A2 +_0802E200: + ldr r2, [r4] + adds r0, r2, 0 + adds r0, 0x6C + adds r1, r2, 0 + adds r1, 0xBC + adds r3, r2, 0 + adds r3, 0xFC + ldr r2, [r2, 0x64] + str r2, [sp] + movs r2, 0x2 + str r2, [sp, 0x4] + movs r2, 0 + bl sub_8012D60 + b _0802E2AA +_0802E21E: + movs r0, 0 + movs r1, 0 + movs r2, 0x4 + bl sub_802BD14 + b _0802E2AA +_0802E22A: + movs r0, 0x1 + bl sub_802BE94 + b _0802E2AA +_0802E232: + bl CreateMailMenu + movs r0, 0x3 + bl CreateMailAcceptedStatusBox + ldr r0, _0802E25C + ldr r2, [r0] + adds r0, r2, 0 + adds r0, 0x6C + adds r1, r2, 0 + adds r1, 0xBC + ldr r2, [r2, 0x68] + str r2, [sp] + movs r2, 0x2 + str r2, [sp, 0x4] + movs r2, 0 + movs r3, 0 + bl sub_8012D60 + b _0802E2AA + .align 2, 0 +_0802E25C: .4byte gUnknown_203B304 +_0802E260: + ldr r0, [r4] + ldrb r0, [r0, 0x8] + bl sub_8095FE8 + ldr r1, [r4] + adds r1, 0xC + bl sub_803B35C + ldr r0, [r4] + movs r1, 0x3 + str r1, [r0, 0xC] + adds r0, 0x50 + movs r1, 0 + strb r1, [r0] + ldr r0, [r4] + adds r0, 0xC + bl sub_802DE84 + b _0802E2AA +_0802E286: + movs r0, 0 + bl sub_802C860 + b _0802E2AA +_0802E28E: + movs r0, 0 + movs r1, 0 + movs r2, 0x8 + bl sub_802B640 + b _0802E2AA +_0802E29A: + movs r0, 0x1 + bl sub_802B7D0 + b _0802E2AA +_0802E2A2: + ldr r0, [r4] + ldrb r0, [r0, 0x9] + bl sub_802B9FC +_0802E2AA: + add sp, 0x8 + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_802E1AC + + thumb_func_start CreateMailboxMenu +CreateMailboxMenu: + push {r4-r7,lr} + ldr r4, _0802E380 + ldr r0, [r4] + adds r0, 0xFC + movs r1, 0 + movs r2, 0x10 + bl MemoryFill16 + ldr r1, [r4] + adds r2, r1, 0 + adds r2, 0xBC + ldr r0, _0802E384 + str r0, [r2] + adds r1, 0xC0 + movs r0, 0x2 + str r0, [r1] + bl sub_802C0E8 + lsls r0, 24 + cmp r0, 0 + beq _0802E2E6 + ldr r0, [r4] + adds r0, 0xFC + movs r1, 0x1 + strh r1, [r0] +_0802E2E6: + movs r5, 0x1 + ldr r1, [r4] + movs r6, 0x1 + adds r2, r1, 0 + adds r2, 0xC4 + ldr r0, _0802E388 + str r0, [r2] + adds r1, 0xC8 + movs r0, 0x3 + str r0, [r1] + bl sub_802C83C + lsls r0, 24 + cmp r0, 0 + beq _0802E30A + ldr r0, [r4] + adds r0, 0xFE + strh r5, [r0] +_0802E30A: + ldr r1, [r4] + adds r2, r1, 0 + adds r2, 0xCC + ldr r0, _0802E38C + str r0, [r2] + adds r1, 0xD0 + movs r0, 0x4 + str r0, [r1] + bl sub_802B9D8 + lsls r0, 24 + cmp r0, 0 + beq _0802E32E + ldr r0, [r4] + movs r1, 0x80 + lsls r1, 1 + adds r0, r1 + strh r6, [r0] +_0802E32E: + movs r5, 0x3 + ldr r2, [r4] + adds r0, r2, 0 + adds r0, 0xD4 + movs r1, 0 + str r1, [r0] + adds r0, 0x4 + str r6, [r0] + movs r3, 0 + adds r6, r4, 0 + mov r12, r2 + mov r4, r12 + adds r4, 0xFC + adds r2, 0xC0 +_0802E34A: + ldrh r0, [r4] + cmp r0, 0 + bne _0802E35A + ldr r1, [r2] + mov r7, r12 + ldr r0, [r7, 0x64] + cmp r1, r0 + beq _0802E3B2 +_0802E35A: + adds r4, 0x2 + adds r2, 0x8 + adds r3, 0x1 + cmp r3, r5 + blt _0802E34A + movs r3, 0 + cmp r3, r5 + bge _0802E3B2 + ldr r1, [r6] + adds r0, r1, 0 + adds r0, 0xFC + ldrh r0, [r0] + cmp r0, 0 + bne _0802E390 + adds r0, r1, 0 + adds r0, 0xC0 + ldr r0, [r0] + str r0, [r1, 0x64] + b _0802E3B2 + .align 2, 0 +_0802E380: .4byte gUnknown_203B304 +_0802E384: .4byte gMailboxCheckMail +_0802E388: .4byte gMailboxJobList +_0802E38C: .4byte gMailboxPKMNNews +_0802E390: + adds r3, 0x1 + cmp r3, r5 + bge _0802E3B2 + ldr r2, [r6] + lsls r0, r3, 1 + adds r1, r2, 0 + adds r1, 0xFC + adds r1, r0 + ldrh r0, [r1] + cmp r0, 0 + bne _0802E390 + lsls r0, r3, 3 + adds r1, r2, 0 + adds r1, 0xC0 + adds r1, r0 + ldr r0, [r1] + str r0, [r2, 0x64] +_0802E3B2: + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end CreateMailboxMenu + + thumb_func_start CreateMailActionMenu +CreateMailActionMenu: + push {r4-r7,lr} + movs r5, 0 + ldr r4, _0802E3F0 + ldr r0, [r4] + ldrb r0, [r0, 0x8] + bl sub_8095FE8 + adds r7, r0, 0 + ldrb r0, [r7] + cmp r0, 0x1 + bne _0802E3FC + ldr r2, [r4] + adds r1, r2, 0 + adds r1, 0xBC + ldr r0, _0802E3F4 + str r0, [r1] + adds r1, 0x4 + movs r0, 0x6 + str r0, [r1] + adds r1, 0x4 + ldr r0, _0802E3F8 + str r0, [r1] + adds r1, 0x4 + movs r0, 0x7 + str r0, [r1] + movs r5, 0x2 + b _0802E44A + .align 2, 0 +_0802E3F0: .4byte gUnknown_203B304 +_0802E3F4: .4byte gMailActionStore +_0802E3F8: .4byte gMailActionRead +_0802E3FC: + ldr r1, [r4] + adds r2, r1, 0 + adds r2, 0xBC + ldr r0, _0802E494 + ldr r0, [r0] + str r0, [r2] + adds r1, 0xC0 + movs r0, 0x5 + str r0, [r1] + adds r0, r7, 0 + bl sub_80968B0 + lsls r0, 24 + cmp r0, 0 + bne _0802E422 + bl sub_80969AC + cmp r0, 0x7 + ble _0802E42C +_0802E422: + ldr r0, [r4] + adds r0, 0xC0 + movs r1, 0x1 + negs r1, r1 + str r1, [r0] +_0802E42C: + adds r5, 0x1 + ldr r4, _0802E498 + ldr r2, [r4] + lsls r3, r5, 3 + adds r0, r2, 0 + adds r0, 0xBC + adds r0, r3 + ldr r1, _0802E49C + ldr r1, [r1] + str r1, [r0] + adds r2, 0xC0 + adds r2, r3 + movs r0, 0x8 + str r0, [r2] + adds r5, 0x1 +_0802E44A: + mov r12, r4 + mov r0, r12 + ldr r4, [r0] + lsls r2, r5, 3 + adds r0, r4, 0 + adds r0, 0xBC + adds r0, r2 + movs r1, 0 + str r1, [r0] + adds r1, r4, 0 + adds r1, 0xC0 + adds r2, r1, r2 + movs r0, 0x1 + str r0, [r2] + movs r3, 0 + cmp r3, r5 + bge _0802E486 + movs r6, 0x1 + negs r6, r6 + adds r2, r1, 0 +_0802E472: + ldr r1, [r2] + cmp r1, r6 + beq _0802E47E + ldr r0, [r4, 0x68] + cmp r1, r0 + beq _0802E4A8 +_0802E47E: + adds r2, 0x8 + adds r3, 0x1 + cmp r3, r5 + blt _0802E472 +_0802E486: + ldrb r0, [r7] + cmp r0, 0x1 + bne _0802E4A0 + mov r0, r12 + ldr r1, [r0] + movs r0, 0x7 + b _0802E4A6 + .align 2, 0 +_0802E494: .4byte gUnknown_80D4990 +_0802E498: .4byte gUnknown_203B304 +_0802E49C: .4byte gUnknown_80D4970 +_0802E4A0: + mov r0, r12 + ldr r1, [r0] + movs r0, 0x8 +_0802E4A6: + str r0, [r1, 0x68] +_0802E4A8: + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end CreateMailActionMenu + + thumb_func_start sub_802E4B0 +sub_802E4B0: + push {r4,lr} + sub sp, 0x4 + movs r0, 0 + str r0, [sp] + ldr r4, _0802E4F0 + ldr r0, [r4] + adds r0, 0x6C + bl sub_8012FD8 + lsls r0, 24 + cmp r0, 0 + bne _0802E4DC + ldr r0, [r4] + adds r0, 0x6C + mov r1, sp + bl sub_8013114 + ldr r1, [sp] + cmp r1, 0x1 + beq _0802E4DC + ldr r0, [r4] + str r1, [r0, 0x64] +_0802E4DC: + ldr r0, [sp] + subs r0, 0x1 + cmp r0, 0x7 + bhi _0802E56E + lsls r0, 2 + ldr r1, _0802E4F4 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0802E4F0: .4byte gUnknown_203B304 +_0802E4F4: .4byte _0802E4F8 + .align 2, 0 +_0802E4F8: + .4byte _0802E568 + .4byte _0802E518 + .4byte _0802E52A + .4byte _0802E53C + .4byte _0802E56E + .4byte _0802E56E + .4byte _0802E56E + .4byte _0802E560 +_0802E518: + bl sub_802C0E8 + lsls r0, 24 + cmp r0, 0 + bne _0802E54E + movs r0, 0x4 + bl sub_802E088 + b _0802E56E +_0802E52A: + bl sub_802C83C + lsls r0, 24 + cmp r0, 0 + bne _0802E54E + movs r0, 0x8 + bl sub_802E088 + b _0802E56E +_0802E53C: + bl sub_802B9D8 + lsls r0, 24 + cmp r0, 0 + bne _0802E54E + movs r0, 0x9 + bl sub_802E088 + b _0802E56E +_0802E54E: + ldr r0, _0802E55C + ldr r0, [r0] + adds r0, 0x6C + movs r1, 0x1 + bl sub_8012EA4 + b _0802E56E + .align 2, 0 +_0802E55C: .4byte gUnknown_203B304 +_0802E560: + movs r0, 0x2 + bl sub_802E088 + b _0802E56E +_0802E568: + movs r0, 0x3 + bl sub_802E088 +_0802E56E: + add sp, 0x4 + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_802E4B0 + + thumb_func_start sub_802E578 +sub_802E578: + push {r4,lr} + movs r0, 0x1 + bl sub_802BDEC + cmp r0, 0x4 + bhi _0802E606 + lsls r0, 2 + ldr r1, _0802E590 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0802E590: .4byte _0802E594 + .align 2, 0 +_0802E594: + .4byte _0802E606 + .4byte _0802E606 + .4byte _0802E5FC + .4byte _0802E5A8 + .4byte _0802E5C0 +_0802E5A8: + bl sub_802BE74 + ldr r1, _0802E5BC + ldr r1, [r1] + strb r0, [r1, 0x8] + movs r0, 0x6 + bl sub_802E088 + b _0802E606 + .align 2, 0 +_0802E5BC: .4byte gUnknown_203B304 +_0802E5C0: + bl sub_802BE74 + ldr r4, _0802E5F0 + ldr r1, [r4] + strb r0, [r1, 0x8] + ldr r0, [r4] + ldrb r0, [r0, 0x8] + bl sub_8095FE8 + adds r2, r0, 0 + ldrb r0, [r2] + cmp r0, 0x1 + bne _0802E5F4 + ldr r1, [r4] + ldrb r0, [r2, 0x5] + strb r0, [r1, 0x9] + ldr r1, [r4] + movs r0, 0x5 + str r0, [r1, 0x4] + movs r0, 0xB + bl sub_802E088 + b _0802E606 + .align 2, 0 +_0802E5F0: .4byte gUnknown_203B304 +_0802E5F4: + movs r0, 0x7 + bl sub_802E088 + b _0802E606 +_0802E5FC: + bl sub_802BEDC + movs r0, 0x1 + bl sub_802E088 +_0802E606: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_802E578 + + thumb_func_start sub_802E60C +sub_802E60C: + push {r4,lr} + sub sp, 0x4 + movs r0, 0 + str r0, [sp] + bl sub_802BDEC + ldr r4, _0802E650 + ldr r0, [r4] + adds r0, 0x6C + bl sub_8012FD8 + lsls r0, 24 + cmp r0, 0 + bne _0802E63C + ldr r0, [r4] + adds r0, 0x6C + mov r1, sp + bl sub_8013114 + ldr r1, [sp] + cmp r1, 0x1 + beq _0802E63C + ldr r0, [r4] + str r1, [r0, 0x68] +_0802E63C: + ldr r0, [sp] + subs r0, 0x1 + cmp r0, 0x7 + bhi _0802E732 + lsls r0, 2 + ldr r1, _0802E654 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0802E650: .4byte gUnknown_203B304 +_0802E654: .4byte _0802E658 + .align 2, 0 +_0802E658: + .4byte _0802E72C + .4byte _0802E732 + .4byte _0802E732 + .4byte _0802E732 + .4byte _0802E678 + .4byte _0802E6BC + .4byte _0802E704 + .4byte _0802E6B4 +_0802E678: + ldr r0, _0802E6AC + bl sub_8011988 + ldr r4, _0802E6B0 + ldr r0, [r4] + ldrb r0, [r0, 0x8] + bl sub_8095FE8 + bl sub_8096A78 + bl sub_8096C80 + bl sub_8096D24 + ldr r0, [r4] + ldrb r0, [r0, 0x8] + bl sub_8096040 + bl sub_8096078 + bl sub_802C0E8 + lsls r0, 24 + cmp r0, 0 + bne _0802E6E8 + b _0802E6FC + .align 2, 0 +_0802E6AC: .4byte 0x00000133 +_0802E6B0: .4byte gUnknown_203B304 +_0802E6B4: + movs r0, 0x7 + bl sub_802E088 + b _0802E732 +_0802E6BC: + ldr r0, _0802E6F4 + bl sub_8011988 + ldr r4, _0802E6F8 + ldr r0, [r4] + ldrb r0, [r0, 0x8] + bl sub_8095FE8 + ldrb r0, [r0, 0x5] + bl sub_8096DF8 + ldr r0, [r4] + ldrb r0, [r0, 0x8] + bl sub_8096040 + bl sub_8096078 + bl sub_802C0E8 + lsls r0, 24 + cmp r0, 0 + beq _0802E6FC +_0802E6E8: + bl sub_802BEDC + movs r0, 0x1 + bl sub_802E088 + b _0802E732 + .align 2, 0 +_0802E6F4: .4byte 0x00000133 +_0802E6F8: .4byte gUnknown_203B304 +_0802E6FC: + movs r0, 0x5 + bl sub_802E088 + b _0802E732 +_0802E704: + movs r0, 0 + bl PlayMenuSoundEffect + ldr r4, _0802E728 + ldr r0, [r4] + ldrb r0, [r0, 0x8] + bl sub_8095FE8 + ldr r1, [r4] + ldrb r0, [r0, 0x5] + strb r0, [r1, 0x9] + ldr r1, [r4] + movs r0, 0x5 + str r0, [r1, 0x4] + movs r0, 0xB + bl sub_802E088 + b _0802E732 + .align 2, 0 +_0802E728: .4byte gUnknown_203B304 +_0802E72C: + movs r0, 0x5 + bl sub_802E088 +_0802E732: + add sp, 0x4 + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_802E60C + + thumb_func_start sub_802E73C +sub_802E73C: + push {lr} + bl sub_802DEE0 + cmp r0, 0x1 + bls _0802E754 + cmp r0, 0x3 + bhi _0802E754 + bl sub_802DF24 + movs r0, 0x5 + bl sub_802E088 +_0802E754: + pop {r0} + bx r0 + thumb_func_end sub_802E73C + + thumb_func_start sub_802E758 +sub_802E758: + push {lr} + bl sub_802C898 + cmp r0, 0x1 + bls _0802E770 + cmp r0, 0x3 + bhi _0802E770 + bl sub_802C8F4 + movs r0, 0x1 + bl sub_802E088 +_0802E770: + pop {r0} + bx r0 + thumb_func_end sub_802E758 + + thumb_func_start sub_802E774 +sub_802E774: + push {lr} + movs r0, 0x1 + bl sub_802B720 + cmp r0, 0x4 + bhi _0802E7CA + lsls r0, 2 + ldr r1, _0802E78C + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0802E78C: .4byte _0802E790 + .align 2, 0 +_0802E790: + .4byte _0802E7CA + .4byte _0802E7CA + .4byte _0802E7C0 + .4byte _0802E7A4 + .4byte _0802E7A4 +_0802E7A4: + bl sub_802B7A8 + ldr r2, _0802E7BC + ldr r1, [r2] + strb r0, [r1, 0x9] + ldr r1, [r2] + movs r0, 0xA + str r0, [r1, 0x4] + movs r0, 0xB + bl sub_802E088 + b _0802E7CA + .align 2, 0 +_0802E7BC: .4byte gUnknown_203B304 +_0802E7C0: + bl sub_802B81C + movs r0, 0x1 + bl sub_802E088 +_0802E7CA: + pop {r0} + bx r0 + thumb_func_end sub_802E774 + + thumb_func_start sub_802E7D0 +sub_802E7D0: + push {lr} + bl sub_802BA8C + cmp r0, 0x1 + bls _0802E7EC + cmp r0, 0x3 + bhi _0802E7EC + bl sub_802BACC + ldr r0, _0802E7F0 + ldr r0, [r0] + ldr r0, [r0, 0x4] + bl sub_802E088 +_0802E7EC: + pop {r0} + bx r0 + .align 2, 0 +_0802E7F0: .4byte gUnknown_203B304 + thumb_func_end sub_802E7D0 + + thumb_func_start nullsub_133 +nullsub_133: + bx lr + thumb_func_end nullsub_133 + + thumb_func_start CreateMailAcceptedStatusBox +CreateMailAcceptedStatusBox: + push {r4-r6,lr} + sub sp, 0x8 + adds r4, r0, 0 + bl sub_8008C54 + adds r0, r4, 0 + bl sub_80073B8 + ldr r2, _0802E85C + movs r6, 0 + str r6, [sp] + movs r0, 0x3 + movs r1, 0 + adds r3, r4, 0 + bl xxx_call_draw_string + bl sub_80969AC + adds r2, r0, 0 + movs r5, 0x7 + str r5, [sp] + str r4, [sp, 0x4] + movs r0, 0x12 + movs r1, 0xD + movs r3, 0x2 + bl sub_8012BC4 + ldr r2, _0802E860 + str r6, [sp] + movs r0, 0x16 + movs r1, 0xD + adds r3, r4, 0 + bl xxx_call_draw_string + str r5, [sp] + str r4, [sp, 0x4] + movs r0, 0x23 + movs r1, 0xD + movs r2, 0x8 + movs r3, 0x2 + bl sub_8012BC4 + adds r0, r4, 0 + bl sub_80073E0 + add sp, 0x8 + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_0802E85C: .4byte gMailAccepted +_0802E860: .4byte gUnknown_80E0324 + thumb_func_end CreateMailAcceptedStatusBox + + thumb_func_start sub_802E864 +sub_802E864: + push {r4,lr} + ldr r4, _0802E88C + movs r0, 0xB6 + lsls r0, 1 + movs r1, 0x8 + bl MemoryAlloc + str r0, [r4] + movs r1, 0 + str r1, [r0, 0x64] + str r1, [r0, 0x68] + str r1, [r0, 0x4] + movs r0, 0 + bl sub_802E934 + movs r0, 0x1 + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_0802E88C: .4byte gUnknown_203B308 + thumb_func_end sub_802E864 + + thumb_func_start sub_802E890 +sub_802E890: + push {lr} + ldr r0, _0802E8A8 + ldr r0, [r0] + ldr r0, [r0] + cmp r0, 0x8 + bhi _0802E900 + lsls r0, 2 + ldr r1, _0802E8AC + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0802E8A8: .4byte gUnknown_203B308 +_0802E8AC: .4byte _0802E8B0 + .align 2, 0 +_0802E8B0: + .4byte _0802E8D4 + .4byte _0802E8DC + .4byte _0802E8E2 + .4byte _0802E900 + .4byte _0802E8E8 + .4byte _0802E8E8 + .4byte _0802E8EE + .4byte _0802E8F4 + .4byte _0802E8FA +_0802E8D4: + movs r0, 0x1 + bl sub_802E934 + b _0802E904 +_0802E8DC: + bl sub_802ECB4 + b _0802E904 +_0802E8E2: + bl nullsub_134 + b _0802E904 +_0802E8E8: + bl sub_802ED4C + b _0802E904 +_0802E8EE: + bl sub_802EDBC + b _0802E904 +_0802E8F4: + bl sub_802EEA0 + b _0802E904 +_0802E8FA: + bl sub_802EEBC + b _0802E904 +_0802E900: + movs r0, 0x3 + b _0802E906 +_0802E904: + movs r0, 0 +_0802E906: + pop {r1} + bx r1 + thumb_func_end sub_802E890 + + thumb_func_start sub_802E90C +sub_802E90C: + ldr r0, _0802E914 + ldr r0, [r0] + ldr r0, [r0, 0x4] + bx lr + .align 2, 0 +_0802E914: .4byte gUnknown_203B308 + thumb_func_end sub_802E90C + + thumb_func_start sub_802E918 +sub_802E918: + push {r4,lr} + ldr r4, _0802E930 + ldr r0, [r4] + cmp r0, 0 + beq _0802E92A + bl MemoryFree + movs r0, 0 + str r0, [r4] +_0802E92A: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0802E930: .4byte gUnknown_203B308 + thumb_func_end sub_802E918 + + thumb_func_start sub_802E934 +sub_802E934: + push {lr} + ldr r1, _0802E948 + ldr r1, [r1] + str r0, [r1] + bl sub_802E94C + bl sub_802EA58 + pop {r0} + bx r0 + .align 2, 0 +_0802E948: .4byte gUnknown_203B308 + thumb_func_end sub_802E934 + + thumb_func_start sub_802E94C +sub_802E94C: + push {r4-r7,lr} + mov r7, r8 + push {r7} + ldr r4, _0802E974 + ldr r0, [r4] + movs r6, 0x86 + lsls r6, 1 + adds r0, r6 + bl sub_8006518 + ldr r0, [r4] + ldr r5, [r0] + cmp r5, 0x1 + beq _0802E97C + cmp r5, 0x6 + beq _0802E9D0 + movs r3, 0 + ldr r2, _0802E978 + b _0802EA14 + .align 2, 0 +_0802E974: .4byte gUnknown_203B308 +_0802E978: .4byte gUnknown_80E0330 +_0802E97C: + mov r12, r6 + ldr r0, _0802E9C4 + mov r8, r0 + movs r2, 0 + movs r3, 0x3 +_0802E986: + ldr r1, [r4] + adds r1, r2 + add r1, r12 + mov r0, r8 + ldm r0!, {r5-r7} + stm r1!, {r5-r7} + ldm r0!, {r5-r7} + stm r1!, {r5-r7} + adds r2, 0x18 + subs r3, 0x1 + cmp r3, 0 + bge _0802E986 + bl CreatePelliperBoardMenu + ldr r3, _0802E9C8 + ldr r2, [r3] + movs r0, 0x9E + lsls r0, 1 + adds r2, r0 + ldr r1, _0802E9CC + ldm r1!, {r4-r6} + stm r2!, {r4-r6} + ldm r1!, {r4,r5,r7} + stm r2!, {r4,r5,r7} + ldr r1, [r3] + adds r0, r1, r0 + adds r1, 0xBC + bl sub_8012CAC + b _0802EA34 + .align 2, 0 +_0802E9C4: .4byte gUnknown_80E0330 +_0802E9C8: .4byte gUnknown_203B308 +_0802E9CC: .4byte gUnknown_80E0348 +_0802E9D0: + bl sub_802EC10 + ldr r2, [r4] + movs r0, 0x9E + lsls r0, 1 + adds r2, r0 + ldr r1, _0802EA0C + ldm r1!, {r3,r6,r7} + stm r2!, {r3,r6,r7} + ldm r1!, {r3,r6,r7} + stm r2!, {r3,r6,r7} + ldr r1, [r4] + adds r0, r1, r0 + adds r1, 0xBC + bl sub_8012CAC + ldr r1, [r4] + movs r4, 0xA4 + lsls r4, 1 + adds r0, r1, r4 + strh r5, [r0] + movs r5, 0xAA + lsls r5, 1 + adds r1, r5 + ldr r0, _0802EA10 + ldm r0!, {r2,r6,r7} + stm r1!, {r2,r6,r7} + ldm r0!, {r3-r5} + stm r1!, {r3-r5} + b _0802EA34 + .align 2, 0 +_0802EA0C: .4byte gUnknown_80E0360 +_0802EA10: .4byte gUnknown_80E0378 +_0802EA14: + ldr r0, [r4] + lsls r1, r3, 1 + adds r1, r3 + lsls r1, 3 + adds r0, r1 + movs r6, 0x86 + lsls r6, 1 + adds r0, r6 + adds r1, r2, 0 + ldm r1!, {r5-r7} + stm r0!, {r5-r7} + ldm r1!, {r5-r7} + stm r0!, {r5-r7} + adds r3, 0x1 + cmp r3, 0x3 + ble _0802EA14 +_0802EA34: + bl ResetUnusedInputStruct + ldr r0, _0802EA54 + ldr r0, [r0] + movs r7, 0x86 + lsls r7, 1 + adds r0, r7 + movs r1, 0x1 + movs r2, 0x1 + bl sub_800641C + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_0802EA54: .4byte gUnknown_203B308 + thumb_func_end sub_802E94C + + thumb_func_start sub_802EA58 +sub_802EA58: + push {r4,lr} + sub sp, 0x8 + ldr r1, _0802EA74 + ldr r0, [r1] + ldr r0, [r0] + adds r4, r1, 0 + cmp r0, 0x8 + bhi _0802EB2C + lsls r0, 2 + ldr r1, _0802EA78 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0802EA74: .4byte gUnknown_203B308 +_0802EA78: .4byte _0802EA7C + .align 2, 0 +_0802EA7C: + .4byte _0802EB2C + .4byte _0802EAA0 + .4byte _0802EB2C + .4byte _0802EB2C + .4byte _0802EABE + .4byte _0802EACA + .4byte _0802EAD2 + .4byte _0802EB00 + .4byte _0802EB26 +_0802EAA0: + ldr r2, [r4] + adds r0, r2, 0 + adds r0, 0x6C + adds r1, r2, 0 + adds r1, 0xBC + adds r3, r2, 0 + adds r3, 0xFC + ldr r2, [r2, 0x64] + str r2, [sp] + movs r2, 0x2 + str r2, [sp, 0x4] + movs r2, 0 + bl sub_8012D60 + b _0802EB2C +_0802EABE: + movs r0, 0 + movs r1, 0 + movs r2, 0x4 + bl sub_802C10C + b _0802EB2C +_0802EACA: + movs r0, 0x1 + bl sub_802C28C + b _0802EB2C +_0802EAD2: + bl sub_802C39C + movs r0, 0x3 + bl CreatePelliperAcceptedStatusBox + ldr r0, _0802EAFC + ldr r2, [r0] + adds r0, r2, 0 + adds r0, 0x6C + adds r1, r2, 0 + adds r1, 0xBC + ldr r2, [r2, 0x68] + str r2, [sp] + movs r2, 0x2 + str r2, [sp, 0x4] + movs r2, 0 + movs r3, 0 + bl sub_8012D60 + b _0802EB2C + .align 2, 0 +_0802EAFC: .4byte gUnknown_203B308 +_0802EB00: + ldr r0, [r4] + ldrb r0, [r0, 0x8] + bl sub_8096574 + ldr r1, [r4] + adds r1, 0xC + bl sub_803B35C + ldr r0, [r4] + movs r1, 0x3 + str r1, [r0, 0xC] + adds r0, 0x50 + movs r1, 0 + strb r1, [r0] + ldr r0, [r4] + adds r0, 0xC + bl sub_802DE84 + b _0802EB2C +_0802EB26: + movs r0, 0 + bl sub_802C860 +_0802EB2C: + add sp, 0x8 + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_802EA58 + + thumb_func_start CreatePelliperBoardMenu +CreatePelliperBoardMenu: + push {r4-r7,lr} + ldr r4, _0802EBDC + ldr r0, [r4] + adds r0, 0xFC + movs r1, 0 + movs r2, 0x10 + bl MemoryFill16 + ldr r1, [r4] + adds r2, r1, 0 + adds r2, 0xBC + ldr r0, _0802EBE0 + str r0, [r2] + adds r1, 0xC0 + movs r0, 0x2 + str r0, [r1] + bl sub_802C4A4 + lsls r0, 24 + cmp r0, 0 + beq _0802EB66 + ldr r0, [r4] + adds r0, 0xFC + movs r1, 0x1 + strh r1, [r0] +_0802EB66: + movs r5, 0x1 + ldr r1, [r4] + adds r2, r1, 0 + adds r2, 0xC4 + ldr r0, _0802EBE4 + str r0, [r2] + adds r1, 0xC8 + movs r0, 0x3 + str r0, [r1] + bl sub_802C83C + lsls r0, 24 + cmp r0, 0 + beq _0802EB88 + ldr r0, [r4] + adds r0, 0xFE + strh r5, [r0] +_0802EB88: + movs r5, 0x2 + ldr r2, [r4] + adds r1, r2, 0 + adds r1, 0xCC + movs r0, 0 + str r0, [r1] + adds r1, 0x4 + movs r0, 0x1 + str r0, [r1] + movs r3, 0 + adds r6, r4, 0 + mov r12, r2 + mov r4, r12 + adds r4, 0xFC + adds r2, 0xC0 +_0802EBA6: + ldrh r0, [r4] + cmp r0, 0 + bne _0802EBB6 + ldr r1, [r2] + mov r7, r12 + ldr r0, [r7, 0x64] + cmp r1, r0 + beq _0802EC0A +_0802EBB6: + adds r4, 0x2 + adds r2, 0x8 + adds r3, 0x1 + cmp r3, r5 + blt _0802EBA6 + movs r3, 0 + cmp r3, r5 + bge _0802EC0A + ldr r1, [r6] + adds r0, r1, 0 + adds r0, 0xFC + ldrh r0, [r0] + cmp r0, 0 + bne _0802EBE8 + adds r0, r1, 0 + adds r0, 0xC0 + ldr r0, [r0] + str r0, [r1, 0x64] + b _0802EC0A + .align 2, 0 +_0802EBDC: .4byte gUnknown_203B308 +_0802EBE0: .4byte gPelliperBoard_BulletinBoard +_0802EBE4: .4byte gPelliperBoard_JobList +_0802EBE8: + adds r3, 0x1 + cmp r3, r5 + bge _0802EC0A + ldr r2, [r6] + lsls r0, r3, 1 + adds r1, r2, 0 + adds r1, 0xFC + adds r1, r0 + ldrh r0, [r1] + cmp r0, 0 + bne _0802EBE8 + lsls r0, r3, 3 + adds r1, r2, 0 + adds r1, 0xC0 + adds r1, r0 + ldr r0, [r1] + str r0, [r2, 0x64] +_0802EC0A: + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end CreatePelliperBoardMenu + + thumb_func_start sub_802EC10 +sub_802EC10: + push {r4-r7,lr} + movs r6, 0 + ldr r4, _0802ECA8 + ldr r2, [r4] + adds r1, r2, 0 + adds r1, 0xBC + ldr r0, _0802ECAC + ldr r0, [r0] + str r0, [r1] + adds r1, 0x4 + movs r0, 0x4 + str r0, [r1] + ldrb r0, [r2, 0x8] + bl sub_8096574 + bl sub_80968B0 + lsls r0, 24 + cmp r0, 0 + bne _0802EC40 + bl sub_80969AC + cmp r0, 0x7 + ble _0802EC4A +_0802EC40: + ldr r0, [r4] + adds r0, 0xC0 + movs r1, 0x1 + negs r1, r1 + str r1, [r0] +_0802EC4A: + adds r6, 0x1 + ldr r4, _0802ECA8 + ldr r5, [r4] + lsls r1, r6, 3 + adds r2, r5, 0 + adds r2, 0xBC + adds r3, r2, r1 + ldr r0, _0802ECB0 + ldr r0, [r0] + str r0, [r3] + adds r3, r5, 0 + adds r3, 0xC0 + adds r1, r3, r1 + movs r0, 0x5 + str r0, [r1] + adds r6, 0x1 + lsls r1, r6, 3 + adds r2, r1 + movs r0, 0 + str r0, [r2] + adds r1, r3, r1 + movs r0, 0x1 + str r0, [r1] + movs r2, 0 + adds r7, r4, 0 + cmp r2, r6 + bge _0802EC9C + adds r4, r5, 0 + movs r5, 0x1 + negs r5, r5 + adds r1, r3, 0 +_0802EC88: + ldr r3, [r1] + cmp r3, r5 + beq _0802EC94 + ldr r0, [r4, 0x68] + cmp r3, r0 + beq _0802ECA2 +_0802EC94: + adds r1, 0x8 + adds r2, 0x1 + cmp r2, r6 + blt _0802EC88 +_0802EC9C: + ldr r1, [r7] + movs r0, 0x5 + str r0, [r1, 0x68] +_0802ECA2: + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_0802ECA8: .4byte gUnknown_203B308 +_0802ECAC: .4byte gUnknown_80D4990 +_0802ECB0: .4byte gUnknown_80D4970 + thumb_func_end sub_802EC10 + + thumb_func_start sub_802ECB4 +sub_802ECB4: + push {r4,lr} + sub sp, 0x4 + movs r0, 0 + str r0, [sp] + ldr r4, _0802ECF0 + ldr r0, [r4] + adds r0, 0x6C + bl sub_8012FD8 + lsls r0, 24 + cmp r0, 0 + bne _0802ECE0 + ldr r0, [r4] + adds r0, 0x6C + mov r1, sp + bl sub_8013114 + ldr r1, [sp] + cmp r1, 0x1 + beq _0802ECE0 + ldr r0, [r4] + str r1, [r0, 0x64] +_0802ECE0: + ldr r0, [sp] + cmp r0, 0x2 + beq _0802ECFE + cmp r0, 0x2 + bgt _0802ECF4 + cmp r0, 0x1 + beq _0802ED3C + b _0802ED42 + .align 2, 0 +_0802ECF0: .4byte gUnknown_203B308 +_0802ECF4: + cmp r0, 0x3 + beq _0802ED10 + cmp r0, 0x5 + beq _0802ED34 + b _0802ED42 +_0802ECFE: + bl sub_802C4A4 + lsls r0, 24 + cmp r0, 0 + bne _0802ED22 + movs r0, 0x4 + bl sub_802E934 + b _0802ED42 +_0802ED10: + bl sub_802C83C + lsls r0, 24 + cmp r0, 0 + bne _0802ED22 + movs r0, 0x8 + bl sub_802E934 + b _0802ED42 +_0802ED22: + ldr r0, _0802ED30 + ldr r0, [r0] + adds r0, 0x6C + movs r1, 0x1 + bl sub_8012EA4 + b _0802ED42 + .align 2, 0 +_0802ED30: .4byte gUnknown_203B308 +_0802ED34: + movs r0, 0x2 + bl sub_802E934 + b _0802ED42 +_0802ED3C: + movs r0, 0x3 + bl sub_802E934 +_0802ED42: + add sp, 0x4 + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_802ECB4 + + thumb_func_start sub_802ED4C +sub_802ED4C: + push {lr} + movs r0, 0x1 + bl sub_802C1E4 + cmp r0, 0x4 + bhi _0802EDB6 + lsls r0, 2 + ldr r1, _0802ED64 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0802ED64: .4byte _0802ED68 + .align 2, 0 +_0802ED68: + .4byte _0802EDB6 + .4byte _0802EDB6 + .4byte _0802EDAC + .4byte _0802ED7C + .4byte _0802ED94 +_0802ED7C: + bl sub_802C26C + ldr r1, _0802ED90 + ldr r1, [r1] + strb r0, [r1, 0x8] + movs r0, 0x6 + bl sub_802E934 + b _0802EDB6 + .align 2, 0 +_0802ED90: .4byte gUnknown_203B308 +_0802ED94: + bl sub_802C26C + ldr r1, _0802EDA8 + ldr r1, [r1] + strb r0, [r1, 0x8] + movs r0, 0x7 + bl sub_802E934 + b _0802EDB6 + .align 2, 0 +_0802EDA8: .4byte gUnknown_203B308 +_0802EDAC: + bl sub_802C2D4 + movs r0, 0x1 + bl sub_802E934 +_0802EDB6: + pop {r0} + bx r0 + thumb_func_end sub_802ED4C + + thumb_func_start sub_802EDBC +sub_802EDBC: + push {r4,lr} + sub sp, 0x4 + movs r0, 0 + str r0, [sp] + bl sub_802C1E4 + ldr r4, _0802EDFC + ldr r0, [r4] + adds r0, 0x6C + bl sub_8012FD8 + lsls r0, 24 + cmp r0, 0 + bne _0802EDEC + ldr r0, [r4] + adds r0, 0x6C + mov r1, sp + bl sub_8013114 + ldr r1, [sp] + cmp r1, 0x1 + beq _0802EDEC + ldr r0, [r4] + str r1, [r0, 0x68] +_0802EDEC: + ldr r0, [sp] + cmp r0, 0x4 + beq _0802EE06 + cmp r0, 0x4 + bgt _0802EE00 + cmp r0, 0x1 + beq _0802EE90 + b _0802EE96 + .align 2, 0 +_0802EDFC: .4byte gUnknown_203B308 +_0802EE00: + cmp r0, 0x5 + beq _0802EE88 + b _0802EE96 +_0802EE06: + ldr r0, _0802EE28 + bl sub_8011988 + ldr r4, _0802EE2C + ldr r0, [r4] + ldrb r0, [r0, 0x8] + bl sub_8096574 + ldrb r1, [r0] + cmp r1, 0x3 + beq _0802EE3C + cmp r1, 0x3 + bgt _0802EE30 + cmp r1, 0x2 + beq _0802EE36 + b _0802EE5E + .align 2, 0 +_0802EE28: .4byte 0x00000133 +_0802EE2C: .4byte gUnknown_203B308 +_0802EE30: + cmp r1, 0x4 + beq _0802EE42 + b _0802EE5E +_0802EE36: + ldr r0, [r4] + movs r1, 0x1 + b _0802EE46 +_0802EE3C: + ldr r0, [r4] + movs r1, 0x2 + b _0802EE46 +_0802EE42: + ldr r0, [r4] + movs r1, 0x3 +_0802EE46: + str r1, [r0, 0x4] + ldrb r0, [r0, 0x8] + bl sub_80965B8 + bl sub_80965F4 + bl sub_802C2D4 + movs r0, 0x3 + bl sub_802E934 + b _0802EE96 +_0802EE5E: + bl sub_8096A78 + bl sub_8096C80 + bl sub_8096D24 + bl sub_802C4A4 + lsls r0, 24 + cmp r0, 0 + beq _0802EE80 + bl sub_802C2D4 + movs r0, 0x1 + bl sub_802E934 + b _0802EE96 +_0802EE80: + movs r0, 0x5 + bl sub_802E934 + b _0802EE96 +_0802EE88: + movs r0, 0x7 + bl sub_802E934 + b _0802EE96 +_0802EE90: + movs r0, 0x5 + bl sub_802E934 +_0802EE96: + add sp, 0x4 + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_802EDBC + + thumb_func_start sub_802EEA0 +sub_802EEA0: + push {lr} + bl sub_802DEE0 + cmp r0, 0x1 + bls _0802EEB8 + cmp r0, 0x3 + bhi _0802EEB8 + bl sub_802DF24 + movs r0, 0x5 + bl sub_802E934 +_0802EEB8: + pop {r0} + bx r0 + thumb_func_end sub_802EEA0 + + thumb_func_start sub_802EEBC +sub_802EEBC: + push {lr} + bl sub_802C898 + cmp r0, 0x1 + bls _0802EED4 + cmp r0, 0x3 + bhi _0802EED4 + bl sub_802C8F4 + movs r0, 0x1 + bl sub_802E934 +_0802EED4: + pop {r0} + bx r0 + thumb_func_end sub_802EEBC + + thumb_func_start nullsub_134 +nullsub_134: + bx lr + thumb_func_end nullsub_134 + + thumb_func_start CreatePelliperAccepedStatusBox +CreatePelliperAcceptedStatusBox: + push {r4-r6,lr} + sub sp, 0x8 + adds r4, r0, 0 + bl sub_8008C54 + adds r0, r4, 0 + bl sub_80073B8 + ldr r2, _0802EF40 + movs r6, 0 + str r6, [sp] + movs r0, 0x3 + movs r1, 0 + adds r3, r4, 0 + bl xxx_call_draw_string + bl sub_80969AC + adds r2, r0, 0 + movs r5, 0x7 + str r5, [sp] + str r4, [sp, 0x4] + movs r0, 0x12 + movs r1, 0xD + movs r3, 0x2 + bl sub_8012BC4 + ldr r2, _0802EF44 + str r6, [sp] + movs r0, 0x16 + movs r1, 0xD + adds r3, r4, 0 + bl xxx_call_draw_string + str r5, [sp] + str r4, [sp, 0x4] + movs r0, 0x23 + movs r1, 0xD + movs r2, 0x8 + movs r3, 0x2 + bl sub_8012BC4 + adds r0, r4, 0 + bl sub_80073E0 + add sp, 0x8 + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_0802EF40: .4byte gUnknown_80E03AC +_0802EF44: .4byte gUnknown_80E03B8 + thumb_func_end CreatePelliperAcceptedStatusBox + + thumb_func_start sub_802EF48 +sub_802EF48: + push {r4,lr} + ldr r4, _0802EF68 + movs r0, 0xA8 + lsls r0, 1 + movs r1, 0x8 + bl MemoryAlloc + str r0, [r4] + movs r0, 0 + bl sub_802EFEC + movs r0, 0x1 + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_0802EF68: .4byte gUnknown_203B30C + thumb_func_end sub_802EF48 + + thumb_func_start sub_802EF6C +sub_802EF6C: + push {lr} + ldr r0, _0802EF84 + ldr r0, [r0] + ldr r0, [r0] + cmp r0, 0x5 + bhi _0802EFBA + lsls r0, 2 + ldr r1, _0802EF88 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0802EF84: .4byte gUnknown_203B30C +_0802EF88: .4byte _0802EF8C + .align 2, 0 +_0802EF8C: + .4byte _0802EFA4 + .4byte _0802EFA4 + .4byte _0802EFAA + .4byte _0802EFB0 + .4byte _0802EFB6 + .4byte _0802EFBA +_0802EFA4: + bl sub_802F148 + b _0802EFBE +_0802EFAA: + bl sub_802F184 + b _0802EFBE +_0802EFB0: + bl sub_802F1E8 + b _0802EFBE +_0802EFB6: + movs r0, 0x3 + b _0802EFC0 +_0802EFBA: + movs r0, 0x2 + b _0802EFC0 +_0802EFBE: + movs r0, 0 +_0802EFC0: + pop {r1} + bx r1 + thumb_func_end sub_802EF6C + + thumb_func_start sub_802EFC4 +sub_802EFC4: + ldr r0, _0802EFCC + ldr r0, [r0] + ldrb r0, [r0, 0x4] + bx lr + .align 2, 0 +_0802EFCC: .4byte gUnknown_203B30C + thumb_func_end sub_802EFC4 + + thumb_func_start sub_802EFD0 +sub_802EFD0: + push {r4,lr} + ldr r4, _0802EFE8 + ldr r0, [r4] + cmp r0, 0 + beq _0802EFE2 + bl MemoryFree + movs r0, 0 + str r0, [r4] +_0802EFE2: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0802EFE8: .4byte gUnknown_203B30C + thumb_func_end sub_802EFD0 + + thumb_func_start sub_802EFEC +sub_802EFEC: + push {lr} + ldr r1, _0802F000 + ldr r1, [r1] + str r0, [r1] + bl sub_802F004 + bl sub_802F088 + pop {r0} + bx r0 + .align 2, 0 +_0802F000: .4byte gUnknown_203B30C + thumb_func_end sub_802EFEC + + thumb_func_start sub_802F004 +sub_802F004: + push {r4-r7,lr} + ldr r4, _0802F03C + ldr r0, [r4] + adds r0, 0xF0 + bl sub_8006518 + ldr r0, [r4] + ldr r0, [r0] + cmp r0, 0x2 + bne _0802F044 + bl sub_802F108 + ldr r2, [r4] + movs r0, 0x90 + lsls r0, 1 + adds r2, r0 + ldr r1, _0802F040 + ldm r1!, {r3,r5,r6} + stm r2!, {r3,r5,r6} + ldm r1!, {r3,r5,r7} + stm r2!, {r3,r5,r7} + ldr r1, [r4] + adds r0, r1, r0 + adds r1, 0xB0 + bl sub_8012CAC + b _0802F066 + .align 2, 0 +_0802F03C: .4byte gUnknown_203B30C +_0802F040: .4byte gUnknown_80E03F4 +_0802F044: + mov r12, r4 + ldr r4, _0802F080 + movs r2, 0 + movs r3, 0x3 +_0802F04C: + mov r6, r12 + ldr r1, [r6] + adds r1, r2 + adds r1, 0xF0 + adds r0, r4, 0 + ldm r0!, {r5-r7} + stm r1!, {r5-r7} + ldm r0!, {r5-r7} + stm r1!, {r5-r7} + adds r2, 0x18 + subs r3, 0x1 + cmp r3, 0 + bge _0802F04C +_0802F066: + bl ResetUnusedInputStruct + ldr r0, _0802F084 + ldr r0, [r0] + adds r0, 0xF0 + movs r1, 0x1 + movs r2, 0x1 + bl sub_800641C + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_0802F080: .4byte gUnknown_80E03C4 +_0802F084: .4byte gUnknown_203B30C + thumb_func_end sub_802F004 + + thumb_func_start sub_802F088 +sub_802F088: + push {r4-r6,lr} + sub sp, 0x8 + ldr r6, _0802F0A0 + ldr r0, [r6] + ldr r5, [r0] + cmp r5, 0x1 + beq _0802F0B6 + cmp r5, 0x1 + bgt _0802F0A4 + cmp r5, 0 + beq _0802F0AE + b _0802F100 + .align 2, 0 +_0802F0A0: .4byte gUnknown_203B30C +_0802F0A4: + cmp r5, 0x2 + beq _0802F0BE + cmp r5, 0x3 + beq _0802F0DA + b _0802F100 +_0802F0AE: + movs r0, 0 + bl sub_802CDD4 + b _0802F100 +_0802F0B6: + movs r0, 0x1 + bl sub_802CED8 + b _0802F100 +_0802F0BE: + bl sub_802CFD0 + ldr r1, [r6] + adds r0, r1, 0 + adds r0, 0x60 + adds r1, 0xB0 + movs r2, 0x3 + str r2, [sp] + str r5, [sp, 0x4] + movs r2, 0 + movs r3, 0 + bl sub_8012D60 + b _0802F100 +_0802F0DA: + ldrb r0, [r0, 0x4] + bl sub_803B344 + adds r4, r0, 0 + ldr r1, [r6] + adds r1, 0x8 + bl sub_803B35C + ldr r0, [r6] + str r5, [r0, 0x8] + adds r0, 0x4C + movs r1, 0 + strb r1, [r0] + ldr r0, [r6] + ldr r1, [r4, 0x18] + str r1, [r0, 0x58] + adds r0, 0x8 + bl sub_802DE84 +_0802F100: + add sp, 0x8 + pop {r4-r6} + pop {r0} + bx r0 + thumb_func_end sub_802F088 + + thumb_func_start sub_802F108 +sub_802F108: + ldr r0, _0802F13C + ldr r0, [r0] + mov r12, r0 + movs r3, 0 + mov r1, r12 + adds r1, 0xB0 + ldr r0, _0802F140 + str r0, [r1] + adds r1, 0x4 + movs r0, 0x2 + str r0, [r1] + movs r2, 0x1 + adds r1, 0x4 + ldr r0, _0802F144 + ldr r0, [r0] + str r0, [r1] + adds r1, 0x4 + movs r0, 0x3 + str r0, [r1] + mov r0, r12 + adds r0, 0xC0 + str r3, [r0] + adds r0, 0x4 + str r2, [r0] + bx lr + .align 2, 0 +_0802F13C: .4byte gUnknown_203B30C +_0802F140: .4byte gUnknown_80E040C +_0802F144: .4byte gUnknown_80D4970 + thumb_func_end sub_802F108 + + thumb_func_start sub_802F148 +sub_802F148: + push {lr} + movs r0, 0x1 + bl sub_802CE5C + cmp r0, 0x2 + beq _0802F174 + cmp r0, 0x2 + bcc _0802F17E + cmp r0, 0x3 + bne _0802F17E + bl sub_802CEBC + ldr r1, _0802F170 + ldr r1, [r1] + strb r0, [r1, 0x4] + movs r0, 0x2 + bl sub_802EFEC + b _0802F17E + .align 2, 0 +_0802F170: .4byte gUnknown_203B30C +_0802F174: + bl sub_802CF14 + movs r0, 0x5 + bl sub_802EFEC +_0802F17E: + pop {r0} + bx r0 + thumb_func_end sub_802F148 + + thumb_func_start sub_802F184 +sub_802F184: + push {r4,lr} + sub sp, 0x4 + movs r0, 0 + str r0, [sp] + bl sub_802CE5C + ldr r4, _0802F1BC + ldr r0, [r4] + adds r0, 0x60 + bl sub_8012FD8 + lsls r0, 24 + cmp r0, 0 + bne _0802F1AA + ldr r0, [r4] + adds r0, 0x60 + mov r1, sp + bl sub_8013114 +_0802F1AA: + ldr r0, [sp] + cmp r0, 0x2 + beq _0802F1C6 + cmp r0, 0x2 + bgt _0802F1C0 + cmp r0, 0x1 + beq _0802F1DA + b _0802F1E0 + .align 2, 0 +_0802F1BC: .4byte gUnknown_203B30C +_0802F1C0: + cmp r0, 0x3 + beq _0802F1D2 + b _0802F1E0 +_0802F1C6: + bl sub_802CF14 + movs r0, 0x4 + bl sub_802EFEC + b _0802F1E0 +_0802F1D2: + movs r0, 0x3 + bl sub_802EFEC + b _0802F1E0 +_0802F1DA: + movs r0, 0x1 + bl sub_802EFEC +_0802F1E0: + add sp, 0x4 + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_802F184 + + thumb_func_start sub_802F1E8 +sub_802F1E8: + push {lr} + bl sub_802DEE0 + cmp r0, 0x1 + bls _0802F200 + cmp r0, 0x3 + bhi _0802F200 + bl sub_802DF24 + movs r0, 0x1 + bl sub_802EFEC +_0802F200: + pop {r0} + bx r0 + thumb_func_end sub_802F1E8 + + thumb_func_start sub_802F204 +sub_802F204: + push {r4-r6,lr} + adds r6, r0, 0 + lsls r4, r1, 24 + lsrs r4, 24 + bl ResetUnusedInputStruct + movs r0, 0 + movs r1, 0x1 + movs r2, 0x1 + bl sub_800641C + ldr r5, _0802F28C + movs r0, 0x84 + movs r1, 0x8 + bl MemoryAlloc + str r0, [r5] + str r6, [r0, 0x10] + movs r6, 0 + str r6, [r0, 0xC] + strb r4, [r0, 0x8] + ldr r1, [r5] + ldr r0, _0802F290 + ldr r1, [r1, 0x10] + bl strcpy + ldr r4, _0802F294 + bl sub_808D33C + adds r1, r0, 0 + adds r0, r4, 0 + bl sub_808DA34 + ldr r0, [r5] + ldr r0, [r0, 0x10] + movs r1, 0x14 + ldrsh r0, [r0, r1] + bl GetDialogueSpriteDataPtr + ldr r1, [r5] + str r0, [r1, 0x14] + str r6, [r1, 0x18] + adds r1, 0x20 + strb r6, [r1] + ldr r0, [r5] + adds r0, 0x21 + strb r6, [r0] + ldr r0, [r5] + adds r0, 0x22 + strb r6, [r0] + ldr r5, [r5] + movs r0, 0x2 + strh r0, [r5, 0x1C] + movs r0, 0x8 + strh r0, [r5, 0x1E] + ldr r0, [r5, 0x14] + cmp r0, 0 + beq _0802F27C + ldr r0, [r0, 0x4] + str r0, [r5, 0x18] +_0802F27C: + movs r0, 0 + bl sub_802F2E8 + movs r0, 0x1 + pop {r4-r6} + pop {r1} + bx r1 + .align 2, 0 +_0802F28C: .4byte gUnknown_203B310 +_0802F290: .4byte gUnknown_202E5D8 +_0802F294: .4byte gAvailablePokemonNames + thumb_func_end sub_802F204 + + thumb_func_start sub_802F298 +sub_802F298: + push {lr} + ldr r0, _0802F2AC + ldr r0, [r0] + ldr r0, [r0] + cmp r0, 0x5 + beq _0802F2B0 + cmp r0, 0x9 + bne _0802F2B6 + movs r0, 0x3 + b _0802F2BC + .align 2, 0 +_0802F2AC: .4byte gUnknown_203B310 +_0802F2B0: + bl sub_802F6FC + b _0802F2BA +_0802F2B6: + bl sub_802F718 +_0802F2BA: + movs r0, 0 +_0802F2BC: + pop {r1} + bx r1 + thumb_func_end sub_802F298 + + thumb_func_start sub_802F2C0 +sub_802F2C0: + push {r4,lr} + ldr r4, _0802F2E4 + ldr r0, [r4] + cmp r0, 0 + beq _0802F2DE + ldr r0, [r0, 0x14] + cmp r0, 0 + beq _0802F2D4 + bl CloseFile +_0802F2D4: + ldr r0, [r4] + bl MemoryFree + movs r0, 0 + str r0, [r4] +_0802F2DE: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0802F2E4: .4byte gUnknown_203B310 + thumb_func_end sub_802F2C0 + + thumb_func_start sub_802F2E8 +sub_802F2E8: + push {lr} + ldr r1, _0802F2FC + ldr r1, [r1] + str r0, [r1] + bl sub_802F300 + bl HandleMissionReward + pop {r0} + bx r0 + .align 2, 0 +_0802F2FC: .4byte gUnknown_203B310 + thumb_func_end sub_802F2E8 + + thumb_func_start sub_802F300 +sub_802F300: + push {r4-r7,lr} + ldr r4, _0802F350 + ldr r1, [r4] + ldr r0, [r1] + cmp r0, 0 + bne _0802F348 + adds r0, r1, 0 + adds r0, 0x24 + bl sub_8006518 + mov r12, r4 + ldr r4, _0802F354 + movs r3, 0 + movs r2, 0x3 +_0802F31C: + mov r0, r12 + ldr r1, [r0] + adds r1, r3 + adds r1, 0x24 + adds r0, r4, 0 + ldm r0!, {r5-r7} + stm r1!, {r5-r7} + ldm r0!, {r5-r7} + stm r1!, {r5-r7} + adds r3, 0x18 + subs r2, 0x1 + cmp r2, 0 + bge _0802F31C + bl ResetUnusedInputStruct + ldr r0, _0802F350 + ldr r0, [r0] + adds r0, 0x24 + movs r1, 0x1 + movs r2, 0x1 + bl sub_800641C +_0802F348: + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_0802F350: .4byte gUnknown_203B310 +_0802F354: .4byte gUnknown_80E041C + thumb_func_end sub_802F300 + + thumb_func_start HandleMissionReward +HandleMissionReward: + push {r4-r6,lr} + sub sp, 0x10 + ldr r1, _0802F374 + ldr r0, [r1] + ldr r0, [r0] + adds r6, r1, 0 + cmp r0, 0x9 + bls _0802F36A + b _0802F6E4 +_0802F36A: + lsls r0, 2 + ldr r1, _0802F378 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0802F374: .4byte gUnknown_203B310 +_0802F378: .4byte _0802F37C + .align 2, 0 +_0802F37C: + .4byte _0802F3A4 + .4byte _0802F3E8 + .4byte _0802F444 + .4byte _0802F494 + .4byte _0802F524 + .4byte _0802F5CC + .4byte _0802F614 + .4byte _0802F630 + .4byte _0802F6A4 + .4byte _0802F6E4 +_0802F3A4: + ldr r2, [r6] + ldr r0, [r2, 0x10] + ldr r1, [r0, 0x18] + cmp r1, 0 + bne _0802F3B6 + movs r0, 0x2 + bl sub_802F2E8 + b _0802F6E4 +_0802F3B6: + ldr r0, _0802F3D4 + str r1, [r0] + ldrb r0, [r2, 0x8] + cmp r0, 0 + beq _0802F3E0 + ldr r0, _0802F3D8 + adds r2, 0x14 + ldr r3, _0802F3DC + movs r1, 0 + bl sub_80141B4 + ldr r1, [r6] + movs r0, 0x1 + str r0, [r1, 0x4] + b _0802F6E4 + .align 2, 0 +_0802F3D4: .4byte gUnknown_202DE30 +_0802F3D8: .4byte gUnknown_80E0434 +_0802F3DC: .4byte 0x0000010d +_0802F3E0: + movs r0, 0x1 + bl sub_802F2E8 + b _0802F6E4 +_0802F3E8: + movs r0, 0xCB + bl sub_8011988 + ldr r0, _0802F414 + ldr r0, [r0] + ldr r0, [r0, 0x10] + ldr r0, [r0, 0x18] + bl sub_80913A0 + movs r0, 0 + bl sub_808D544 + cmp r0, 0x1 + bgt _0802F420 + ldr r0, _0802F418 + ldr r3, _0802F41C + movs r1, 0 + movs r2, 0 + bl sub_80141B4 + b _0802F42C + .align 2, 0 +_0802F414: .4byte gUnknown_203B310 +_0802F418: .4byte gUnknown_80E045C +_0802F41C: .4byte 0x00000101 +_0802F420: + ldr r0, _0802F438 + ldr r3, _0802F43C + movs r1, 0 + movs r2, 0 + bl sub_80141B4 +_0802F42C: + ldr r0, _0802F440 + ldr r1, [r0] + movs r0, 0x2 + str r0, [r1, 0x4] + b _0802F6E4 + .align 2, 0 +_0802F438: .4byte gUnknown_80E0484 +_0802F43C: .4byte 0x00000101 +_0802F440: .4byte gUnknown_203B310 +_0802F444: + ldr r0, [r6] + ldr r0, [r0, 0x10] + adds r1, r0, 0 + adds r1, 0x20 + ldrb r0, [r1] + cmp r0, 0 + bne _0802F45A + movs r0, 0x4 + bl sub_802F2E8 + b _0802F6E4 +_0802F45A: + ldr r0, _0802F480 + ldrb r1, [r1] + movs r2, 0 + bl sub_8092578 + ldr r2, [r6] + ldrb r0, [r2, 0x8] + cmp r0, 0 + beq _0802F48C + ldr r0, _0802F484 + adds r2, 0x14 + ldr r3, _0802F488 + movs r1, 0 + bl sub_80141B4 + ldr r1, [r6] + movs r0, 0x3 + str r0, [r1, 0x4] + b _0802F6E4 + .align 2, 0 +_0802F480: .4byte gUnknown_202E628 +_0802F484: .4byte gUnknown_80E04B4 +_0802F488: .4byte 0x0000010d +_0802F48C: + movs r0, 0x3 + bl sub_802F2E8 + b _0802F6E4 +_0802F494: + ldr r4, _0802F4B4 + ldr r0, [r4] + ldr r0, [r0, 0x10] + adds r0, 0x20 + ldrb r0, [r0] + bl GetFriendAreaStatus + lsls r0, 24 + cmp r0, 0 + beq _0802F4BC + movs r0, 0xFA + lsls r0, 2 + bl sub_80913A0 + ldr r0, _0802F4B8 + b _0802F4DA + .align 2, 0 +_0802F4B4: .4byte gUnknown_203B310 +_0802F4B8: .4byte gUnknown_80E04F4 +_0802F4BC: + movs r0, 0 + bl sub_808D544 + cmp r0, 0x1 + bgt _0802F4F0 + ldr r0, [r4] + ldr r0, [r0, 0x10] + adds r0, 0x20 + ldrb r0, [r0] + bl UnlockFriendArea + movs r0, 0xCE + bl sub_8011988 + ldr r0, _0802F4E8 +_0802F4DA: + ldr r3, _0802F4EC + movs r1, 0 + movs r2, 0 + bl sub_80141B4 + b _0802F50E + .align 2, 0 +_0802F4E8: .4byte gUnknown_80E05C0 +_0802F4EC: .4byte 0x00000101 +_0802F4F0: + ldr r0, [r4] + ldr r0, [r0, 0x10] + adds r0, 0x20 + ldrb r0, [r0] + bl UnlockFriendArea + movs r0, 0xCE + bl sub_8011988 + ldr r0, _0802F518 + ldr r3, _0802F51C + movs r1, 0 + movs r2, 0 + bl sub_80141B4 +_0802F50E: + ldr r0, _0802F520 + ldr r1, [r0] + movs r0, 0x4 + str r0, [r1, 0x4] + b _0802F6E4 + .align 2, 0 +_0802F518: .4byte gUnknown_80E05FC +_0802F51C: .4byte 0x00000101 +_0802F520: .4byte gUnknown_203B310 +_0802F524: + ldr r0, [r6] + ldr r0, [r0, 0x10] + ldrb r2, [r0, 0x1C] + cmp r2, 0 + beq _0802F628 + ldr r0, [r0, 0x18] + cmp r0, 0 + bne _0802F620 + lsls r2, 16 + ldr r1, _0802F564 + ldr r0, [sp, 0xC] + ands r0, r1 + orrs r0, r2 + str r0, [sp, 0xC] + lsrs r0, 16 + lsls r0, 24 + lsrs r0, 24 + bl sub_8090A60 + lsls r0, 24 + cmp r0, 0 + beq _0802F56C + ldr r0, [r6] + ldr r0, [r0, 0x10] + ldrb r1, [r0, 0x1F] + lsls r1, 8 + ldr r2, _0802F568 + ldr r0, [sp, 0xC] + ands r0, r2 + orrs r0, r1 + b _0802F572 + .align 2, 0 +_0802F564: .4byte 0xff00ffff +_0802F568: .4byte 0xffff00ff +_0802F56C: + ldr r1, _0802F5B4 + ldr r0, [sp, 0xC] + ands r0, r1 +_0802F572: + str r0, [sp, 0xC] + ldr r1, _0802F5B8 + ldr r0, [sp, 0xC] + ands r0, r1 + movs r2, 0x1 + orrs r0, r2 + str r0, [sp, 0xC] + movs r1, 0 + str r1, [sp] + mov r0, sp + strb r1, [r0, 0x4] + strb r2, [r0, 0x8] + ldr r0, _0802F5BC + add r1, sp, 0xC + mov r2, sp + bl sub_8090E14 + ldr r4, _0802F5C0 + ldr r2, [r4] + ldrb r0, [r2, 0x8] + cmp r0, 0 + beq _0802F620 + ldr r0, _0802F5C4 + adds r2, 0x14 + ldr r3, _0802F5C8 + movs r1, 0 + bl sub_80141B4 + ldr r1, [r4] + movs r0, 0x5 + str r0, [r1, 0x4] + b _0802F6E4 + .align 2, 0 +_0802F5B4: .4byte 0xffff00ff +_0802F5B8: .4byte 0xffffff00 +_0802F5BC: .4byte gUnknown_202DEA8 +_0802F5C0: .4byte gUnknown_203B310 +_0802F5C4: .4byte gUnknown_80E0640 +_0802F5C8: .4byte 0x0000010d +_0802F5CC: + ldr r0, [r6] + ldr r2, [r0, 0x10] + adds r1, r2, 0 + adds r1, 0x1C + ldr r3, [r0, 0xC] + adds r1, r3 + ldrb r0, [r1] + cmp r0, 0 + bne _0802F5E6 + movs r0, 0x6 + bl sub_802F2E8 + b _0802F6E4 +_0802F5E6: + cmp r3, 0 + bne _0802F5FC + ldr r0, [r2, 0x18] + cmp r0, 0 + bne _0802F5FC + ldrb r1, [r2, 0x1C] + ldrb r2, [r2, 0x1F] + movs r0, 0 + bl sub_801B60C + b _0802F6E4 +_0802F5FC: + ldr r1, [r6] + ldr r2, [r1, 0x10] + adds r0, r2, 0 + adds r0, 0x1C + ldr r1, [r1, 0xC] + adds r0, r1 + ldrb r1, [r0] + ldrb r2, [r2, 0x1F] + movs r0, 0x1 + bl sub_801B60C + b _0802F6E4 +_0802F614: + ldr r1, [r6] + ldr r0, [r1, 0xC] + adds r0, 0x1 + str r0, [r1, 0xC] + cmp r0, 0x2 + bgt _0802F628 +_0802F620: + movs r0, 0x5 + bl sub_802F2E8 + b _0802F6E4 +_0802F628: + movs r0, 0x7 + bl sub_802F2E8 + b _0802F6E4 +_0802F630: + adds r5, r6, 0 + ldr r0, [r5] + ldr r0, [r0, 0x10] + ldr r0, [r0, 0x24] + cmp r0, 0 + bne _0802F644 + movs r0, 0x9 + bl sub_802F2E8 + b _0802F6E4 +_0802F644: + bl GetRescueTeamRank + ldr r1, [r5] + strb r0, [r1, 0x9] + ldr r0, [r5] + ldr r0, [r0, 0x10] + ldr r0, [r0, 0x24] + bl AddToTeamRankPts + movs r0, 0xCB + bl sub_8011988 + ldr r4, [r5] + bl GetRescueTeamRank + ldrb r1, [r4, 0x9] + lsls r0, 24 + lsrs r0, 24 + cmp r1, r0 + beq _0802F672 + ldr r1, [r5] + movs r0, 0x8 + b _0802F676 +_0802F672: + ldr r1, [r6] + movs r0, 0x9 +_0802F676: + str r0, [r1, 0x4] + ldr r1, _0802F694 + ldr r0, _0802F698 + ldr r0, [r0] + ldr r0, [r0, 0x10] + ldr r0, [r0, 0x24] + str r0, [r1] + ldr r0, _0802F69C + ldr r3, _0802F6A0 + movs r1, 0 + movs r2, 0 + bl sub_80141B4 + b _0802F6E4 + .align 2, 0 +_0802F694: .4byte gUnknown_202DE30 +_0802F698: .4byte gUnknown_203B310 +_0802F69C: .4byte gUnknown_80E0670 +_0802F6A0: .4byte 0x00000101 +_0802F6A4: + movs r0, 0xC9 + bl sub_8011988 + ldr r0, _0802F6EC + ldr r1, [r0] + movs r0, 0x9 + str r0, [r1, 0x4] + ldrb r0, [r1, 0x9] + bl GetTeamRankString + adds r1, r0, 0 + ldr r4, _0802F6F0 + adds r0, r4, 0 + bl strcpy + bl GetRescueTeamRank + lsls r0, 24 + lsrs r0, 24 + bl GetTeamRankString + adds r1, r0, 0 + adds r4, 0x50 + adds r0, r4, 0 + bl strcpy + ldr r0, _0802F6F4 + ldr r3, _0802F6F8 + movs r1, 0 + movs r2, 0 + bl sub_80141B4 +_0802F6E4: + add sp, 0x10 + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_0802F6EC: .4byte gUnknown_203B310 +_0802F6F0: .4byte gUnknown_202E038 +_0802F6F4: .4byte gUnknown_80E06A8 +_0802F6F8: .4byte 0x00000101 + thumb_func_end HandleMissionReward + + thumb_func_start sub_802F6FC +sub_802F6FC: + push {lr} + bl sub_801B6AC + cmp r0, 0x1 + bls _0802F714 + cmp r0, 0x3 + bhi _0802F714 + bl sub_801B72C + movs r0, 0x6 + bl sub_802F2E8 +_0802F714: + pop {r0} + bx r0 + thumb_func_end sub_802F6FC + + thumb_func_start sub_802F718 +sub_802F718: + push {lr} + sub sp, 0x4 + mov r0, sp + bl sub_80144A4 + cmp r0, 0 + bne _0802F730 + ldr r0, _0802F738 + ldr r0, [r0] + ldr r0, [r0, 0x4] + bl sub_802F2E8 +_0802F730: + add sp, 0x4 + pop {r0} + bx r0 + .align 2, 0 +_0802F738: .4byte gUnknown_203B310 + thumb_func_end sub_802F718 + + thumb_func_start sub_802F73C +sub_802F73C: + push {r4-r7,lr} + mov r7, r8 + push {r7} + adds r5, r0, 0 + adds r7, r1, 0 + mov r8, r2 + lsls r3, 24 + lsrs r6, r3, 24 + bl sub_802FCF0 + lsls r0, 24 + cmp r0, 0 + beq _0802F75A + movs r0, 0 + b _0802F836 +_0802F75A: + ldr r4, _0802F7AC + ldr r0, [r4] + cmp r0, 0 + bne _0802F76E + movs r0, 0xAE + lsls r0, 1 + movs r1, 0x8 + bl MemoryAlloc + str r0, [r4] +_0802F76E: + ldr r0, [r4] + adds r0, 0xB8 + strb r6, [r0] + ldr r0, [r4] + adds r1, r0, 0 + adds r1, 0xF0 + str r5, [r1] + adds r2, r0, 0 + adds r2, 0xF4 + lsls r1, r5, 1 + adds r1, r5 + lsls r1, 3 + adds r1, 0xF8 + adds r1, r0, r1 + str r1, [r2] + adds r0, 0xF8 + bl sub_8006518 + cmp r6, 0 + beq _0802F7B4 + ldr r1, [r4] + adds r0, r1, 0 + adds r0, 0xF0 + ldr r2, [r0] + lsls r0, r2, 1 + adds r0, r2 + lsls r0, 3 + adds r1, r0 + adds r1, 0xF8 + ldr r0, _0802F7B0 + b _0802F7C8 + .align 2, 0 +_0802F7AC: .4byte gUnknown_203B314 +_0802F7B0: .4byte gUnknown_80E072C +_0802F7B4: + ldr r1, [r4] + adds r0, r1, 0 + adds r0, 0xF0 + ldr r2, [r0] + lsls r0, r2, 1 + adds r0, r2 + lsls r0, 3 + adds r1, r0 + adds r1, 0xF8 + ldr r0, _0802F840 +_0802F7C8: + ldm r0!, {r2-r4} + stm r1!, {r2-r4} + ldm r0!, {r2-r4} + stm r1!, {r2-r4} + ldr r4, _0802F844 + ldr r2, [r4] + adds r0, r2, 0 + adds r0, 0xF4 + ldr r1, [r0] + movs r3, 0xAC + lsls r3, 1 + adds r0, r2, r3 + str r0, [r1, 0x14] + cmp r7, 0 + beq _0802F7FC + adds r0, r2, 0 + adds r0, 0xF0 + ldr r1, [r0] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 3 + subs r3, 0x58 + adds r1, r2, r3 + adds r1, r0 + ldr r0, [r7] + str r0, [r1] +_0802F7FC: + ldr r0, [r4] + adds r0, 0xF4 + ldr r0, [r0] + mov r1, r8 + bl sub_8012D08 + bl ResetUnusedInputStruct + ldr r0, [r4] + adds r0, 0xF8 + movs r1, 0x1 + movs r2, 0x1 + bl sub_800641C + ldr r4, [r4] + adds r4, 0xBC + bl sub_802FBF4 + adds r1, r0, 0 + adds r0, r4, 0 + mov r2, r8 + adds r3, r5, 0 + bl sub_8013818 + bl sub_802F9C0 + bl sub_802FA50 + movs r0, 0x1 +_0802F836: + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r1} + bx r1 + .align 2, 0 +_0802F840: .4byte gUnknown_80E0714 +_0802F844: .4byte gUnknown_203B314 + thumb_func_end sub_802F73C + + thumb_func_start sub_802F848 +sub_802F848: + push {r4,r5,lr} + lsls r0, 16 + asrs r4, r0, 16 + movs r3, 0 + ldr r1, _0802F858 + ldr r0, [r1] + b _0802F884 + .align 2, 0 +_0802F858: .4byte gUnknown_203B314 +_0802F85C: + ldr r2, [r1] + lsls r0, r3, 1 + adds r0, r2, r0 + movs r5, 0 + ldrsh r0, [r0, r5] + cmp r0, r4 + bne _0802F880 + adds r0, r2, 0 + adds r0, 0xBC + adds r1, r3, 0 + bl sub_8013878 + bl sub_802F9C0 + bl sub_802FA50 + movs r0, 0x1 + b _0802F89A +_0802F880: + adds r3, 0x1 + adds r0, r2, 0 +_0802F884: + adds r0, 0xDE + movs r2, 0 + ldrsh r0, [r0, r2] + cmp r3, r0 + blt _0802F85C + ldr r0, [r1] + adds r0, 0xBC + movs r1, 0 + bl sub_8013878 + movs r0, 0 +_0802F89A: + pop {r4,r5} + pop {r1} + bx r1 + thumb_func_end sub_802F848 + + thumb_func_start sub_802F8A0 +sub_802F8A0: + push {r4,lr} + lsls r0, 24 + cmp r0, 0 + bne _0802F8BC + ldr r0, _0802F8B8 + ldr r0, [r0] + adds r0, 0xBC + bl sub_8013660 + movs r0, 0 + b _0802F904 + .align 2, 0 +_0802F8B8: .4byte gUnknown_203B314 +_0802F8BC: + ldr r4, _0802F8D8 + ldr r0, [r4] + adds r0, 0xBC + bl GetKeyPress + cmp r0, 0x1 + beq _0802F8DC + cmp r0, 0x2 + bne _0802F8E6 + movs r0, 0x1 + bl PlayMenuSoundEffect + movs r0, 0x2 + b _0802F904 + .align 2, 0 +_0802F8D8: .4byte gUnknown_203B314 +_0802F8DC: + movs r0, 0 + bl PlayMenuSoundEffect + movs r0, 0x3 + b _0802F904 +_0802F8E6: + ldr r0, [r4] + adds r0, 0xBC + movs r1, 0x1 + bl sub_80138B8 + lsls r0, 24 + cmp r0, 0 + bne _0802F8FA + movs r0, 0 + b _0802F904 +_0802F8FA: + bl sub_802F9C0 + bl sub_802FA50 + movs r0, 0x1 +_0802F904: + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_802F8A0 + + thumb_func_start sub_802F90C +sub_802F90C: + ldr r0, _0802F934 + ldr r2, [r0] + adds r0, r2, 0 + adds r0, 0xDA + movs r3, 0 + ldrsh r1, [r0, r3] + subs r0, 0x2 + movs r3, 0 + ldrsh r0, [r0, r3] + muls r0, r1 + adds r1, r2, 0 + adds r1, 0xD4 + movs r3, 0 + ldrsh r1, [r1, r3] + adds r0, r1 + lsls r0, 1 + adds r0, r2, r0 + movs r1, 0 + ldrsh r0, [r0, r1] + bx lr + .align 2, 0 +_0802F934: .4byte gUnknown_203B314 + thumb_func_end sub_802F90C + + thumb_func_start sub_802F938 +sub_802F938: + push {r4,r5,lr} + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + bl sub_802FBF4 + adds r1, r0, 0 + ldr r5, _0802F970 + ldr r0, [r5] + adds r2, r0, 0 + adds r2, 0xDE + strh r1, [r2] + adds r0, 0xBC + bl sub_8013984 + bl sub_802F9C0 + bl sub_802FA50 + cmp r4, 0 + beq _0802F96A + ldr r0, [r5] + adds r0, 0xBC + bl AddMenuCursorSprite +_0802F96A: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_0802F970: .4byte gUnknown_203B314 + thumb_func_end sub_802F938 + + thumb_func_start sub_802F974 +sub_802F974: + push {r4,r5,lr} + ldr r4, _0802F9B8 + ldr r2, [r4] + cmp r2, 0 + beq _0802F9B2 + adds r0, r2, 0 + adds r0, 0xF0 + ldr r0, [r0] + lsls r1, r0, 1 + adds r1, r0 + lsls r1, 3 + adds r1, r2, r1 + adds r1, 0xF8 + ldr r0, _0802F9BC + ldm r0!, {r2,r3,r5} + stm r1!, {r2,r3,r5} + ldm r0!, {r2,r3,r5} + stm r1!, {r2,r3,r5} + bl ResetUnusedInputStruct + ldr r0, [r4] + adds r0, 0xF8 + movs r1, 0x1 + movs r2, 0x1 + bl sub_800641C + ldr r0, [r4] + bl MemoryFree + movs r0, 0 + str r0, [r4] +_0802F9B2: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_0802F9B8: .4byte gUnknown_203B314 +_0802F9BC: .4byte gUnknown_80E06FC + thumb_func_end sub_802F974 + + thumb_func_start sub_802F9C0 +sub_802F9C0: + push {r4,r5,lr} + ldr r4, _0802FA44 + ldr r0, [r4] + movs r1, 0xAC + lsls r1, 1 + adds r0, r1 + movs r2, 0 + movs r1, 0x1 + strb r1, [r0] + ldr r0, [r4] + ldr r3, _0802FA48 + adds r0, r3 + strb r2, [r0] + ldr r0, [r4] + adds r3, 0x1 + adds r1, r0, r3 + movs r0, 0x8 + strb r0, [r1] + ldr r0, [r4] + ldr r1, _0802FA4C + adds r0, r1 + strb r2, [r0] + ldr r0, [r4] + adds r0, 0xD6 + movs r2, 0 + ldrsh r0, [r0, r2] + movs r1, 0xC + bl sub_80095E4 + adds r0, 0x2 + lsls r0, 16 + ldr r3, [r4] + adds r5, r3, 0 + adds r5, 0xF0 + ldr r2, [r5] + lsls r1, r2, 1 + adds r1, r2 + lsls r1, 3 + adds r1, r3, r1 + movs r2, 0x83 + lsls r2, 1 + adds r1, r2 + asrs r2, r0, 16 + lsrs r0, 16 + strh r0, [r1] + ldr r1, [r5] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 3 + adds r3, r0 + adds r2, 0x2 + movs r0, 0x84 + lsls r0, 1 + adds r3, r0 + strh r2, [r3] + bl ResetUnusedInputStruct + ldr r0, [r4] + adds r0, 0xF8 + movs r1, 0x1 + movs r2, 0x1 + bl sub_800641C + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_0802FA44: .4byte gUnknown_203B314 +_0802FA48: .4byte 0x00000159 +_0802FA4C: .4byte 0x0000015b + thumb_func_end sub_802F9C0 + + thumb_func_start sub_802FA50 +sub_802FA50: + push {r4-r7,lr} + mov r7, r8 + push {r7} + sub sp, 0x8 + ldr r4, _0802FB1C + ldr r0, [r4] + adds r0, 0xF0 + ldr r0, [r0] + bl sub_8008C54 + ldr r0, [r4] + adds r0, 0xF0 + ldr r0, [r0] + bl sub_80073B8 + ldr r2, _0802FB20 + ldr r0, [r4] + adds r0, 0xF0 + ldr r3, [r0] + movs r0, 0 + str r0, [sp] + movs r0, 0xA + movs r1, 0 + bl xxx_call_draw_string + ldr r3, [r4] + movs r1, 0xAD + lsls r1, 1 + adds r0, r3, r1 + ldrb r0, [r0] + lsls r0, 3 + adds r0, 0x4 + adds r1, r3, 0 + adds r1, 0xDA + movs r5, 0 + ldrsh r2, [r1, r5] + adds r2, 0x1 + movs r1, 0x7 + str r1, [sp] + adds r1, r3, 0 + adds r1, 0xF0 + ldr r1, [r1] + str r1, [sp, 0x4] + movs r1, 0 + movs r3, 0x2 + bl sub_8012BC4 + ldr r1, [r4] + adds r0, r1, 0 + adds r0, 0xB8 + ldrb r0, [r0] + cmp r0, 0 + beq _0802FB78 + movs r6, 0 + adds r0, r1, 0 + adds r0, 0xD6 + movs r1, 0 + ldrsh r0, [r0, r1] + cmp r6, r0 + blt _0802FACA + b _0802FBD6 +_0802FACA: + mov r8, r4 +_0802FACC: + mov r2, r8 + ldr r0, [r2] + adds r0, 0xBC + adds r1, r6, 0 + bl sub_8013800 + adds r5, r0, 0 + mov r3, r8 + ldr r2, [r3] + adds r0, r2, 0 + adds r0, 0xDA + movs r3, 0 + ldrsh r1, [r0, r3] + subs r0, 0x2 + movs r3, 0 + ldrsh r0, [r0, r3] + muls r0, r1 + adds r1, r0, r6 + lsls r0, r1, 1 + adds r0, r2, r0 + movs r3, 0 + ldrsh r7, [r0, r3] + adds r0, r2, 0 + adds r0, 0x5C + adds r0, r1 + ldrb r4, [r0] + cmp r4, 0 + beq _0802FB28 + adds r0, r2, 0 + adds r0, 0xF0 + ldr r3, [r0] + movs r0, 0 + str r0, [sp] + movs r0, 0xA + adds r1, r5, 0 + ldr r2, _0802FB24 + bl xxx_call_draw_string + b _0802FB46 + .align 2, 0 +_0802FB1C: .4byte gUnknown_203B314 +_0802FB20: .4byte gUnknown_80E0744 +_0802FB24: .4byte gUnknown_80E0750 +_0802FB28: + adds r0, r2, 0 + adds r0, 0x8A + adds r0, r1 + ldrb r0, [r0] + cmp r0, 0 + beq _0802FB46 + adds r0, r2, 0 + adds r0, 0xF0 + ldr r3, [r0] + str r4, [sp] + movs r0, 0xA + adds r1, r5, 0 + ldr r2, _0802FB74 + bl xxx_call_draw_string +_0802FB46: + adds r0, r7, 0 + bl sub_80974A0 + adds r2, r0, 0 + mov r1, r8 + ldr r0, [r1] + adds r0, 0xF0 + ldr r3, [r0] + movs r0, 0 + str r0, [sp] + movs r0, 0x18 + adds r1, r5, 0 + bl xxx_call_draw_string + adds r6, 0x1 + mov r2, r8 + ldr r0, [r2] + adds r0, 0xD6 + movs r3, 0 + ldrsh r0, [r0, r3] + cmp r6, r0 + blt _0802FACC + b _0802FBD6 + .align 2, 0 +_0802FB74: .4byte gUnknown_80E0754 +_0802FB78: + movs r6, 0 + adds r0, r1, 0 + adds r0, 0xD6 + movs r5, 0 + ldrsh r0, [r0, r5] + cmp r6, r0 + bge _0802FBD6 + adds r5, r4, 0 +_0802FB88: + ldr r0, [r5] + adds r0, 0xBC + adds r1, r6, 0 + bl sub_8013800 + adds r4, r0, 0 + ldr r1, [r5] + adds r0, r1, 0 + adds r0, 0xDA + movs r3, 0 + ldrsh r2, [r0, r3] + subs r0, 0x2 + movs r3, 0 + ldrsh r0, [r0, r3] + muls r0, r2 + adds r0, r6 + lsls r0, 1 + adds r1, r0 + movs r2, 0 + ldrsh r0, [r1, r2] + bl sub_80974A0 + adds r2, r0, 0 + ldr r0, [r5] + adds r0, 0xF0 + ldr r3, [r0] + movs r0, 0 + str r0, [sp] + movs r0, 0x8 + adds r1, r4, 0 + bl xxx_call_draw_string + adds r6, 0x1 + ldr r0, [r5] + adds r0, 0xD6 + movs r3, 0 + ldrsh r0, [r0, r3] + cmp r6, r0 + blt _0802FB88 +_0802FBD6: + ldr r0, _0802FBF0 + ldr r0, [r0] + adds r0, 0xF0 + ldr r0, [r0] + bl sub_80073E0 + add sp, 0x8 + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_0802FBF0: .4byte gUnknown_203B314 + thumb_func_end sub_802FA50 + + thumb_func_start sub_802FBF4 +sub_802FBF4: + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x4 + movs r0, 0 + mov r8, r0 + movs r1, 0 + str r1, [sp] +_0802FC08: + ldr r1, [sp] + lsls r0, r1, 16 + asrs r4, r0, 16 + mov r10, r4 + adds r0, r4, 0 + bl sub_80A27CC + lsls r0, 24 + cmp r0, 0 + beq _0802FCCE + cmp r4, 0x13 + beq _0802FCCE + cmp r4, 0x1D + beq _0802FCCE + ldr r7, _0802FC88 + ldr r1, [r7] + mov r0, r8 + lsls r6, r0, 1 + adds r0, r1, r6 + strh r4, [r0] + adds r1, 0x5C + add r1, r8 + movs r0, 0 + strb r0, [r1] + ldr r0, [r7] + adds r0, 0x8A + add r0, r8 + movs r1, 0 + strb r1, [r0] + ldr r0, [r7] + adds r0, 0xB8 + ldrb r0, [r0] + cmp r0, 0 + beq _0802FCCA + cmp r4, 0xD + beq _0802FCCA + adds r0, r4, 0 + bl sub_80A270C + lsls r0, 24 + lsrs r0, 24 + mov r9, r0 + movs r5, 0 + cmp r4, 0x1E + bgt _0802FCA8 + adds r0, r4, 0 + bl sub_8097384 + lsls r0, 24 + cmp r0, 0 + bne _0802FCA6 + cmp r4, 0x6 + bne _0802FC8C + movs r0, 0x13 + bl sub_8097384 + lsls r0, 24 + cmp r0, 0 + beq _0802FCA8 + ldr r0, [r7] + adds r0, r6 + movs r1, 0x13 + b _0802FCA4 + .align 2, 0 +_0802FC88: .4byte gUnknown_203B314 +_0802FC8C: + mov r0, r10 + cmp r0, 0xA + bne _0802FCA8 + movs r0, 0x1D + bl sub_8097384 + lsls r0, 24 + cmp r0, 0 + beq _0802FCA8 + ldr r0, [r7] + adds r0, r6 + movs r1, 0x1D +_0802FCA4: + strh r1, [r0] +_0802FCA6: + movs r5, 0x1 +_0802FCA8: + ldr r4, _0802FCEC + ldr r0, [r4] + adds r0, 0x5C + add r0, r8 + strb r5, [r0] + cmp r5, 0 + bne _0802FCCA + mov r0, r9 + bl sub_80969D0 + cmp r0, 0 + ble _0802FCCA + ldr r0, [r4] + adds r0, 0x8A + add r0, r8 + movs r1, 0x1 + strb r1, [r0] +_0802FCCA: + movs r1, 0x1 + add r8, r1 +_0802FCCE: + ldr r0, [sp] + adds r0, 0x1 + str r0, [sp] + cmp r0, 0x2D + ble _0802FC08 + mov r0, r8 + add sp, 0x4 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r1} + bx r1 + .align 2, 0 +_0802FCEC: .4byte gUnknown_203B314 + thumb_func_end sub_802FBF4 + + thumb_func_start sub_802FCF0 +sub_802FCF0: + push {r4,lr} + movs r4, 0 +_0802FCF4: + lsls r0, r4, 16 + asrs r0, 16 + bl sub_80A27CC + lsls r0, 24 + cmp r0, 0 + beq _0802FD06 + movs r0, 0 + b _0802FD0E +_0802FD06: + adds r4, 0x1 + cmp r4, 0x2D + ble _0802FCF4 + movs r0, 0x1 +_0802FD0E: + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_802FCF0 + + thumb_func_start sub_802FD14 +sub_802FD14: + push {r4-r6,lr} + adds r5, r0, 0 + bl ResetUnusedInputStruct + movs r0, 0 + movs r1, 0x1 + movs r2, 0x1 + bl sub_800641C + ldr r4, _0802FD48 + movs r0, 0xCC + movs r1, 0x8 + bl MemoryAlloc + str r0, [r4] + ldr r1, _0802FD4C + strh r1, [r0, 0x10] + str r5, [r0] + cmp r5, 0x7 + bhi _0802FDC0 + lsls r0, r5, 2 + ldr r1, _0802FD50 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0802FD48: .4byte gUnknown_203B318 +_0802FD4C: .4byte 0x0000ffff +_0802FD50: .4byte _0802FD54 + .align 2, 0 +_0802FD54: + .4byte _0802FD74 + .4byte _0802FD84 + .4byte _0802FD94 + .4byte _0802FDA4 + .4byte _0802FDB4 + .4byte _0802FDB8 + .4byte _0802FDBC + .4byte _0802FDC0 +_0802FD74: + movs r6, 0 + ldr r1, _0802FD80 + ldr r0, [r1] + str r6, [r0, 0x4] + b _0802FDCC + .align 2, 0 +_0802FD80: .4byte gUnknown_203B318 +_0802FD84: + movs r6, 0x7 + ldr r2, _0802FD90 + ldr r1, [r2] + movs r0, 0 + b _0802FDC8 + .align 2, 0 +_0802FD90: .4byte gUnknown_203B318 +_0802FD94: + movs r6, 0x6 + ldr r2, _0802FDA0 + ldr r1, [r2] + movs r0, 0 + b _0802FDC8 + .align 2, 0 +_0802FDA0: .4byte gUnknown_203B318 +_0802FDA4: + movs r6, 0x8 + ldr r2, _0802FDB0 + ldr r1, [r2] + movs r0, 0 + b _0802FDC8 + .align 2, 0 +_0802FDB0: .4byte gUnknown_203B318 +_0802FDB4: + movs r6, 0 + b _0802FDC2 +_0802FDB8: + movs r6, 0x7 + b _0802FDC2 +_0802FDBC: + movs r6, 0x6 + b _0802FDC2 +_0802FDC0: + movs r6, 0x8 +_0802FDC2: + ldr r2, _0802FDD8 + ldr r1, [r2] + movs r0, 0x1 +_0802FDC8: + str r0, [r1, 0x4] + adds r1, r2, 0 +_0802FDCC: + ldr r1, [r1] + ldr r0, [r1, 0x4] + cmp r0, 0x1 + bne _0802FDDC + movs r0, 0 + b _0802FDE0 + .align 2, 0 +_0802FDD8: .4byte gUnknown_203B318 +_0802FDDC: + adds r0, r1, 0 + adds r0, 0x58 +_0802FDE0: + str r0, [r1, 0x68] + ldr r0, _0802FE48 + ldr r5, _0802FE4C + adds r1, r5, 0 + bl sub_808D8E0 + ldr r4, _0802FE50 + adds r0, r4, 0 + adds r1, r5, 0 + bl sub_808D8E0 + adds r0, r5, 0 + bl GetMonSpecies + adds r1, r0, 0 + subs r4, 0x50 + adds r0, r4, 0 + bl strcpy + adds r0, r5, 0 + bl GetDialogueSpriteDataPtr + ldr r3, _0802FE54 + ldr r1, [r3] + str r0, [r1, 0x58] + ldr r0, [r0, 0x4] + str r0, [r1, 0x5C] + adds r1, 0x64 + movs r2, 0 + strb r2, [r1] + ldr r0, [r3] + adds r0, 0x65 + strb r2, [r0] + ldr r0, [r3] + adds r0, 0x66 + strb r2, [r0] + ldr r1, [r3] + adds r2, r1, 0 + adds r2, 0x60 + movs r0, 0x2 + strh r0, [r2] + adds r1, 0x62 + movs r0, 0x8 + strh r0, [r1] + adds r0, r6, 0 + bl sub_802FF04 + movs r0, 0x1 + pop {r4-r6} + pop {r1} + bx r1 + .align 2, 0 +_0802FE48: .4byte gUnknown_202E5D8 +_0802FE4C: .4byte 0x00000141 +_0802FE50: .4byte gUnknown_202E1C8 +_0802FE54: .4byte gUnknown_203B318 + thumb_func_end sub_802FD14 + + thumb_func_start sub_802FE58 +sub_802FE58: + push {lr} + ldr r0, _0802FE70 + ldr r0, [r0] + ldr r0, [r0, 0x8] + cmp r0, 0xD + bhi _0802FEC6 + lsls r0, 2 + ldr r1, _0802FE74 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0802FE70: .4byte gUnknown_203B318 +_0802FE74: .4byte _0802FE78 + .align 2, 0 +_0802FE78: + .4byte _0802FEB0 + .4byte _0802FEB0 + .4byte _0802FEC6 + .4byte _0802FEC6 + .4byte _0802FEB6 + .4byte _0802FEC6 + .4byte _0802FEC6 + .4byte _0802FEC6 + .4byte _0802FEC6 + .4byte _0802FEC6 + .4byte _0802FEC6 + .4byte _0802FEBC + .4byte _0802FEC6 + .4byte _0802FEC2 +_0802FEB0: + bl sub_8030208 + b _0802FECA +_0802FEB6: + bl sub_8030258 + b _0802FECA +_0802FEBC: + bl sub_80302A8 + b _0802FECA +_0802FEC2: + movs r0, 0x3 + b _0802FECC +_0802FEC6: + bl sub_80302C4 +_0802FECA: + movs r0, 0 +_0802FECC: + pop {r1} + bx r1 + thumb_func_end sub_802FE58 + + thumb_func_start sub_802FED0 +sub_802FED0: + ldr r0, _0802FEDC + ldr r0, [r0] + movs r1, 0x10 + ldrsh r0, [r0, r1] + bx lr + .align 2, 0 +_0802FEDC: .4byte gUnknown_203B318 + thumb_func_end sub_802FED0 + + thumb_func_start sub_802FEE0 +sub_802FEE0: + push {r4,lr} + ldr r4, _0802FF00 + ldr r0, [r4] + cmp r0, 0 + beq _0802FEFA + ldr r0, [r0, 0x58] + bl CloseFile + ldr r0, [r4] + bl MemoryFree + movs r0, 0 + str r0, [r4] +_0802FEFA: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0802FF00: .4byte gUnknown_203B318 + thumb_func_end sub_802FEE0 + + thumb_func_start sub_802FF04 +sub_802FF04: + push {lr} + ldr r1, _0802FF18 + ldr r1, [r1] + str r0, [r1, 0x8] + bl sub_802FF1C + bl sub_802FF88 + pop {r0} + bx r0 + .align 2, 0 +_0802FF18: .4byte gUnknown_203B318 + thumb_func_end sub_802FF04 + + thumb_func_start sub_802FF1C +sub_802FF1C: + push {r4-r7,lr} + ldr r4, _0802FF3C + ldr r0, [r4] + adds r0, 0x6C + bl sub_8006518 + ldr r0, [r4] + ldr r0, [r0, 0x8] + cmp r0, 0x4 + beq _0802FF44 + cmp r0, 0x4 + bgt _0802FF40 + cmp r0, 0 + beq _0802FF44 + b _0802FF68 + .align 2, 0 +_0802FF3C: .4byte gUnknown_203B318 +_0802FF40: + cmp r0, 0xD + bne _0802FF68 +_0802FF44: + ldr r0, _0802FF80 + mov r12, r0 + ldr r4, _0802FF84 + movs r3, 0 + movs r2, 0x3 +_0802FF4E: + mov r5, r12 + ldr r1, [r5] + adds r1, r3 + adds r1, 0x6C + adds r0, r4, 0 + ldm r0!, {r5-r7} + stm r1!, {r5-r7} + ldm r0!, {r5-r7} + stm r1!, {r5-r7} + adds r3, 0x18 + subs r2, 0x1 + cmp r2, 0 + bge _0802FF4E +_0802FF68: + bl ResetUnusedInputStruct + ldr r0, _0802FF80 + ldr r0, [r0] + adds r0, 0x6C + movs r1, 0x1 + movs r2, 0x1 + bl sub_800641C + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_0802FF80: .4byte gUnknown_203B318 +_0802FF84: .4byte gUnknown_80E0760 + thumb_func_end sub_802FF1C + + thumb_func_start sub_802FF88 +sub_802FF88: + push {r4,r5,lr} + sub sp, 0x18 + ldr r1, _0802FFA4 + ldr r0, [r1] + ldr r0, [r0, 0x8] + adds r5, r1, 0 + cmp r0, 0xD + bls _0802FF9A + b _080301A0 +_0802FF9A: + lsls r0, 2 + ldr r1, _0802FFA8 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0802FFA4: .4byte gUnknown_203B318 +_0802FFA8: .4byte _0802FFAC + .align 2, 0 +_0802FFAC: + .4byte _0802FFE4 + .4byte _08030000 + .4byte _08030038 + .4byte _08030050 + .4byte _08030068 + .4byte _08030074 + .4byte _080300DC + .4byte _080300C4 + .4byte _080300F4 + .4byte _0803010C + .4byte _08030148 + .4byte _08030174 + .4byte _08030180 + .4byte _080301A0 +_0802FFE4: + bl sub_80301B0 + ldr r2, _0802FFF8 + ldr r0, _0802FFFC + ldr r5, [r0] + ldr r1, [r5, 0x4] + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 3 + b _0803000E + .align 2, 0 +_0802FFF8: .4byte gMakuhitaDialogue +_0802FFFC: .4byte gUnknown_203B318 +_08030000: + ldr r2, _08030034 + ldr r5, [r5] + ldr r1, [r5, 0x4] + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 3 + adds r2, 0x4 +_0803000E: + adds r0, r2 + ldr r0, [r0] + ldr r2, [r5, 0x14] + adds r3, r5, 0 + adds r3, 0x18 + movs r4, 0 + str r4, [sp] + movs r1, 0x4 + str r1, [sp, 0x4] + str r4, [sp, 0x8] + ldr r1, [r5, 0x68] + str r1, [sp, 0xC] + movs r1, 0xC + str r1, [sp, 0x10] + movs r1, 0 + bl sub_8014248 + b _080301A0 + .align 2, 0 +_08030034: .4byte gMakuhitaDialogue +_08030038: + ldr r3, [r5] + movs r0, 0xD + str r0, [r3, 0xC] + ldr r2, _0803004C + ldr r1, [r3, 0x4] + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 3 + adds r2, 0x8 + b _0803015A + .align 2, 0 +_0803004C: .4byte gMakuhitaDialogue +_08030050: + ldr r3, [r5] + movs r0, 0x4 + str r0, [r3, 0xC] + ldr r2, _08030064 + ldr r1, [r3, 0x4] + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 3 + adds r2, 0xC + b _0803015A + .align 2, 0 +_08030064: .4byte gMakuhitaDialogue +_08030068: + movs r0, 0x3 + movs r1, 0 + movs r2, 0xA + bl sub_80302E8 + b _080301A0 +_08030074: + ldr r1, [r5] + movs r0, 0xD + str r0, [r1, 0xC] + movs r2, 0x10 + ldrsh r0, [r1, r2] + bl sub_80A2740 + lsls r0, 24 + lsrs r0, 24 + ldr r2, _080300B4 + ldr r1, [sp, 0x14] + ands r1, r2 + orrs r1, r0 + ldr r0, _080300B8 + ands r1, r0 + movs r0, 0x80 + lsls r0, 1 + orrs r1, r0 + str r1, [sp, 0x14] + ldr r0, _080300BC + add r1, sp, 0x14 + bl sub_8090208 + ldr r2, _080300C0 + ldr r3, [r5] + ldr r1, [r3, 0x4] + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 3 + adds r2, 0x10 + b _0803015A + .align 2, 0 +_080300B4: .4byte 0xffffff00 +_080300B8: .4byte 0xffff00ff +_080300BC: .4byte gAvailablePokemonNames +_080300C0: .4byte gMakuhitaDialogue +_080300C4: + ldr r3, [r5] + movs r0, 0xD + str r0, [r3, 0xC] + ldr r2, _080300D8 + ldr r1, [r3, 0x4] + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 3 + adds r2, 0x18 + b _0803015A + .align 2, 0 +_080300D8: .4byte gMakuhitaDialogue +_080300DC: + ldr r3, [r5] + movs r0, 0xD + str r0, [r3, 0xC] + ldr r2, _080300F0 + ldr r1, [r3, 0x4] + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 3 + adds r2, 0x14 + b _0803015A + .align 2, 0 +_080300F0: .4byte gMakuhitaDialogue +_080300F4: + ldr r3, [r5] + movs r0, 0x9 + str r0, [r3, 0xC] + ldr r2, _08030108 + ldr r1, [r3, 0x4] + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 3 + adds r2, 0x1C + b _0803015A + .align 2, 0 +_08030108: .4byte gMakuhitaDialogue +_0803010C: + ldr r4, _08030138 + bl sub_808D33C + adds r1, r0, 0 + adds r0, r4, 0 + movs r2, 0x6 + bl sub_808D9AC + ldr r0, _0803013C + ldr r1, [r0] + movs r0, 0xB + str r0, [r1, 0xC] + movs r0, 0xCB + bl sub_8011988 + ldr r0, _08030140 + ldr r3, _08030144 + movs r1, 0 + movs r2, 0 + bl sub_80141B4 + b _080301A0 + .align 2, 0 +_08030138: .4byte gPlayerName +_0803013C: .4byte gUnknown_203B318 +_08030140: .4byte gUnknown_80E0778 +_08030144: .4byte 0x00000101 +_08030148: + ldr r3, [r5] + movs r0, 0xD + str r0, [r3, 0xC] + ldr r2, _0803016C + ldr r1, [r3, 0x4] + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 3 + adds r2, 0x20 +_0803015A: + adds r0, r2 + ldr r0, [r0] + ldr r2, [r3, 0x68] + ldr r3, _08030170 + movs r1, 0 + bl sub_80141B4 + b _080301A0 + .align 2, 0 +_0803016C: .4byte gMakuhitaDialogue +_08030170: .4byte 0x0000010d +_08030174: + movs r0, 0x1 + movs r1, 0x49 + movs r2, 0x1 + bl sub_801B60C + b _080301A0 +_08030180: + ldr r3, [r5] + movs r0, 0x1 + str r0, [r3, 0xC] + ldr r2, _080301A8 + ldr r1, [r3, 0x4] + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 3 + adds r2, 0x24 + adds r0, r2 + ldr r0, [r0] + ldr r2, [r3, 0x68] + ldr r3, _080301AC + movs r1, 0 + bl sub_80141B4 +_080301A0: + add sp, 0x18 + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080301A8: .4byte gMakuhitaDialogue +_080301AC: .4byte 0x0000010d + thumb_func_end sub_802FF88 + + thumb_func_start sub_80301B0 +sub_80301B0: + push {r4,lr} + ldr r4, _080301F8 + ldr r1, [r4] + movs r2, 0x2 + str r2, [r1, 0x14] + ldr r0, _080301FC + str r0, [r1, 0x18] + str r2, [r1, 0x1C] + bl sub_80306A4 + lsls r0, 24 + cmp r0, 0 + beq _080301D6 + ldr r0, [r4] + movs r1, 0x1 + negs r1, r1 + str r1, [r0, 0x1C] + movs r1, 0x1 + str r1, [r0, 0x14] +_080301D6: + ldr r1, [r4] + movs r2, 0x1 + ldr r0, _08030200 + ldr r0, [r0] + str r0, [r1, 0x20] + movs r0, 0x3 + str r0, [r1, 0x24] + ldr r0, _08030204 + ldr r0, [r0] + str r0, [r1, 0x28] + str r2, [r1, 0x2C] + movs r0, 0 + str r0, [r1, 0x30] + str r2, [r1, 0x34] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080301F8: .4byte gUnknown_203B318 +_080301FC: .4byte gUnknown_80E07D8 +_08030200: .4byte gUnknown_80D4970 +_08030204: .4byte gUnknown_80D4934 + thumb_func_end sub_80301B0 + + thumb_func_start sub_8030208 +sub_8030208: + push {lr} + sub sp, 0x4 + mov r0, sp + bl sub_80144A4 + cmp r0, 0 + bne _08030250 + ldr r0, _08030230 + ldr r1, [r0] + ldr r0, [sp] + str r0, [r1, 0x14] + ldr r0, [sp] + cmp r0, 0x2 + beq _0803023A + cmp r0, 0x2 + bgt _08030234 + cmp r0, 0x1 + beq _0803024A + b _08030250 + .align 2, 0 +_08030230: .4byte gUnknown_203B318 +_08030234: + cmp r0, 0x3 + beq _08030242 + b _08030250 +_0803023A: + movs r0, 0x3 + bl sub_802FF04 + b _08030250 +_08030242: + movs r0, 0xC + bl sub_802FF04 + b _08030250 +_0803024A: + movs r0, 0x2 + bl sub_802FF04 +_08030250: + add sp, 0x4 + pop {r0} + bx r0 + thumb_func_end sub_8030208 + + thumb_func_start sub_8030258 +sub_8030258: + push {lr} + movs r0, 0x1 + bl sub_80303AC + cmp r0, 0x2 + beq _08030288 + cmp r0, 0x2 + bcc _0803029A + cmp r0, 0x3 + bne _0803029A + bl sub_8030418 + ldr r1, _08030284 + ldr r1, [r1] + strh r0, [r1, 0x10] + bl sub_8030480 + movs r0, 0x5 + bl sub_802FF04 + b _0803029A + .align 2, 0 +_08030284: .4byte gUnknown_203B318 +_08030288: + bl sub_8030480 + ldr r0, _080302A0 + ldr r1, [r0] + ldr r0, _080302A4 + strh r0, [r1, 0x10] + movs r0, 0x1 + bl sub_802FF04 +_0803029A: + pop {r0} + bx r0 + .align 2, 0 +_080302A0: .4byte gUnknown_203B318 +_080302A4: .4byte 0x0000ffff + thumb_func_end sub_8030258 + + thumb_func_start sub_80302A8 +sub_80302A8: + push {lr} + bl sub_801B6AC + cmp r0, 0x1 + bls _080302C0 + cmp r0, 0x3 + bhi _080302C0 + bl sub_801B72C + movs r0, 0xA + bl sub_802FF04 +_080302C0: + pop {r0} + bx r0 + thumb_func_end sub_80302A8 + + thumb_func_start sub_80302C4 +sub_80302C4: + push {lr} + sub sp, 0x4 + mov r0, sp + bl sub_80144A4 + cmp r0, 0 + bne _080302DC + ldr r0, _080302E4 + ldr r0, [r0] + ldr r0, [r0, 0xC] + bl sub_802FF04 +_080302DC: + add sp, 0x4 + pop {r0} + bx r0 + .align 2, 0 +_080302E4: .4byte gUnknown_203B318 + thumb_func_end sub_80302C4 + + thumb_func_start sub_80302E8 +sub_80302E8: + push {r4-r7,lr} + mov r7, r8 + push {r7} + adds r5, r0, 0 + adds r6, r1, 0 + mov r8, r2 + bl sub_80306A4 + lsls r0, 24 + cmp r0, 0 + beq _08030302 + movs r0, 0 + b _0803039A +_08030302: + ldr r4, _080303A4 + ldr r0, [r4] + cmp r0, 0 + bne _08030314 + movs r0, 0xD0 + movs r1, 0x8 + bl MemoryAlloc + str r0, [r4] +_08030314: + ldr r0, [r4] + str r5, [r0, 0x64] + lsls r1, r5, 1 + adds r1, r5 + lsls r1, 3 + adds r1, 0x6C + adds r1, r0, r1 + str r1, [r0, 0x68] + adds r0, 0x6C + bl sub_8006518 + ldr r1, [r4] + ldr r2, [r1, 0x64] + lsls r0, r2, 1 + adds r0, r2 + lsls r0, 3 + adds r1, r0 + adds r1, 0x6C + ldr r0, _080303A8 + ldm r0!, {r2,r3,r7} + stm r1!, {r2,r3,r7} + ldm r0!, {r2,r3,r7} + stm r1!, {r2,r3,r7} + ldr r2, [r4] + ldr r1, [r2, 0x68] + adds r0, r2, 0 + adds r0, 0xCC + str r0, [r1, 0x14] + cmp r6, 0 + beq _08030362 + ldr r1, [r2, 0x64] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 3 + adds r1, r2, 0 + adds r1, 0x74 + adds r1, r0 + ldr r0, [r6] + str r0, [r1] +_08030362: + ldr r0, [r4] + ldr r0, [r0, 0x68] + mov r1, r8 + bl sub_8012D08 + bl ResetUnusedInputStruct + ldr r0, [r4] + adds r0, 0x6C + movs r1, 0x1 + movs r2, 0x1 + bl sub_800641C + ldr r4, [r4] + adds r4, 0x30 + bl sub_8030668 + adds r1, r0, 0 + adds r0, r4, 0 + mov r2, r8 + adds r3, r5, 0 + bl sub_8013818 + bl sub_80304C8 + bl sub_803053C + movs r0, 0x1 +_0803039A: + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r1} + bx r1 + .align 2, 0 +_080303A4: .4byte gUnknown_203B31C +_080303A8: .4byte gUnknown_80E0804 + thumb_func_end sub_80302E8 + + thumb_func_start sub_80303AC +sub_80303AC: + push {r4,lr} + lsls r0, 24 + cmp r0, 0 + bne _080303C8 + ldr r0, _080303C4 + ldr r0, [r0] + adds r0, 0x30 + bl sub_8013660 + movs r0, 0 + b _08030410 + .align 2, 0 +_080303C4: .4byte gUnknown_203B31C +_080303C8: + ldr r4, _080303E4 + ldr r0, [r4] + adds r0, 0x30 + bl GetKeyPress + cmp r0, 0x1 + beq _080303E8 + cmp r0, 0x2 + bne _080303F2 + movs r0, 0x1 + bl PlayMenuSoundEffect + movs r0, 0x2 + b _08030410 + .align 2, 0 +_080303E4: .4byte gUnknown_203B31C +_080303E8: + movs r0, 0 + bl PlayMenuSoundEffect + movs r0, 0x3 + b _08030410 +_080303F2: + ldr r0, [r4] + adds r0, 0x30 + movs r1, 0x1 + bl sub_80138B8 + lsls r0, 24 + cmp r0, 0 + bne _08030406 + movs r0, 0 + b _08030410 +_08030406: + bl sub_80304C8 + bl sub_803053C + movs r0, 0x1 +_08030410: + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_80303AC + + thumb_func_start sub_8030418 +sub_8030418: + ldr r0, _08030440 + ldr r2, [r0] + adds r0, r2, 0 + adds r0, 0x4E + movs r3, 0 + ldrsh r1, [r0, r3] + subs r0, 0x2 + movs r3, 0 + ldrsh r0, [r0, r3] + muls r0, r1 + adds r1, r2, 0 + adds r1, 0x48 + movs r3, 0 + ldrsh r1, [r1, r3] + adds r0, r1 + lsls r0, 1 + adds r0, r2, r0 + movs r1, 0 + ldrsh r0, [r0, r1] + bx lr + .align 2, 0 +_08030440: .4byte gUnknown_203B31C + thumb_func_end sub_8030418 + + thumb_func_start sub_8030444 +sub_8030444: + push {r4,r5,lr} + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + bl sub_8030668 + adds r1, r0, 0 + ldr r5, _0803047C + ldr r0, [r5] + adds r2, r0, 0 + adds r2, 0x52 + strh r1, [r2] + adds r0, 0x30 + bl sub_8013984 + bl sub_80304C8 + bl sub_803053C + cmp r4, 0 + beq _08030476 + ldr r0, [r5] + adds r0, 0x30 + bl AddMenuCursorSprite +_08030476: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_0803047C: .4byte gUnknown_203B31C + thumb_func_end sub_8030444 + + thumb_func_start sub_8030480 +sub_8030480: + push {r4,r5,lr} + ldr r4, _080304C0 + ldr r2, [r4] + cmp r2, 0 + beq _080304BA + ldr r0, [r2, 0x64] + lsls r1, r0, 1 + adds r1, r0 + lsls r1, 3 + adds r1, r2, r1 + adds r1, 0x6C + ldr r0, _080304C4 + ldm r0!, {r2,r3,r5} + stm r1!, {r2,r3,r5} + ldm r0!, {r2,r3,r5} + stm r1!, {r2,r3,r5} + bl ResetUnusedInputStruct + ldr r0, [r4] + adds r0, 0x6C + movs r1, 0x1 + movs r2, 0x1 + bl sub_800641C + ldr r0, [r4] + bl MemoryFree + movs r0, 0 + str r0, [r4] +_080304BA: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080304C0: .4byte gUnknown_203B31C +_080304C4: .4byte gUnknown_80E07EC + thumb_func_end sub_8030480 + + thumb_func_start sub_80304C8 +sub_80304C8: + push {r4,lr} + ldr r4, _08030538 + ldr r0, [r4] + adds r0, 0xCC + movs r2, 0 + movs r1, 0x1 + strb r1, [r0] + ldr r0, [r4] + adds r0, 0xCD + strb r2, [r0] + ldr r0, [r4] + adds r0, 0xCE + movs r1, 0x8 + strb r1, [r0] + ldr r0, [r4] + adds r0, 0xCF + strb r2, [r0] + ldr r0, [r4] + adds r0, 0x4A + movs r1, 0 + ldrsh r0, [r0, r1] + movs r1, 0xC + bl sub_80095E4 + adds r0, 0x2 + lsls r0, 16 + ldr r2, [r4] + ldr r3, [r2, 0x64] + lsls r1, r3, 1 + adds r1, r3 + lsls r1, 3 + adds r1, r2, r1 + adds r1, 0x7A + asrs r3, r0, 16 + lsrs r0, 16 + strh r0, [r1] + ldr r1, [r2, 0x64] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 3 + adds r2, r0 + adds r3, 0x2 + adds r2, 0x7C + strh r3, [r2] + bl ResetUnusedInputStruct + ldr r0, [r4] + adds r0, 0x6C + movs r1, 0x1 + movs r2, 0x1 + bl sub_800641C + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08030538: .4byte gUnknown_203B31C + thumb_func_end sub_80304C8 + + thumb_func_start sub_803053C +sub_803053C: + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + sub sp, 0x108 + ldr r4, _08030658 + ldr r0, [r4] + ldr r0, [r0, 0x64] + bl sub_8008C54 + ldr r0, [r4] + ldr r0, [r0, 0x64] + bl sub_80073B8 + ldr r2, _0803065C + ldr r0, [r4] + ldr r3, [r0, 0x64] + movs r0, 0 + str r0, [sp] + movs r0, 0xA + movs r1, 0 + bl xxx_call_draw_string + ldr r3, [r4] + adds r0, r3, 0 + adds r0, 0xCE + ldrb r0, [r0] + lsls r0, 3 + adds r0, 0x4 + adds r1, r3, 0 + adds r1, 0x4E + movs r5, 0 + ldrsh r2, [r1, r5] + adds r2, 0x1 + movs r1, 0x7 + str r1, [sp] + ldr r1, [r3, 0x64] + str r1, [sp, 0x4] + movs r1, 0 + movs r3, 0x2 + bl sub_8012BC4 + movs r0, 0 + mov r9, r0 + ldr r0, [r4] + adds r0, 0x4A + movs r1, 0 + ldrsh r0, [r0, r1] + cmp r9, r0 + bge _0803063E + mov r8, r4 +_080305A2: + mov r3, r8 + ldr r1, [r3] + adds r0, r1, 0 + adds r0, 0x4E + movs r5, 0 + ldrsh r2, [r0, r5] + subs r0, 0x2 + movs r3, 0 + ldrsh r0, [r0, r3] + muls r0, r2 + add r0, r9 + lsls r0, 1 + adds r1, r0 + movs r5, 0 + ldrsh r4, [r1, r5] + adds r0, r4, 0 + bl sub_80A2740 + lsls r0, 24 + lsrs r7, r0, 24 + adds r0, r4, 0 + bl sub_80A2668 + adds r4, r0, 0 + lsls r4, 16 + asrs r4, 16 + mov r1, r8 + ldr r0, [r1] + adds r0, 0x30 + mov r1, r9 + bl sub_8013800 + adds r6, r0, 0 + movs r5, 0x7 + adds r0, r4, 0 + bl sub_809758C + lsls r0, 24 + cmp r0, 0 + beq _08030608 + mov r3, r8 + ldr r0, [r3] + ldr r3, [r0, 0x64] + movs r0, 0 + str r0, [sp] + movs r0, 0x8 + adds r1, r6, 0 + ldr r2, _08030660 + bl xxx_call_draw_string + movs r5, 0x4 +_08030608: + adds r0, r7, 0 + bl GetDungeonName1 + adds r3, r0, 0 + add r0, sp, 0x8 + ldr r1, _08030664 + adds r2, r5, 0 + bl sub_800D158 + mov r5, r8 + ldr r0, [r5] + ldr r3, [r0, 0x64] + movs r0, 0 + str r0, [sp] + movs r0, 0x10 + adds r1, r6, 0 + add r2, sp, 0x8 + bl xxx_call_draw_string + movs r0, 0x1 + add r9, r0 + ldr r0, [r5] + adds r0, 0x4A + movs r1, 0 + ldrsh r0, [r0, r1] + cmp r9, r0 + blt _080305A2 +_0803063E: + ldr r0, _08030658 + ldr r0, [r0] + ldr r0, [r0, 0x64] + bl sub_80073E0 + add sp, 0x108 + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_08030658: .4byte gUnknown_203B31C +_0803065C: .4byte gUnknown_80E081C +_08030660: .4byte gUnknown_80E0824 +_08030664: .4byte gUnknown_80E0828 + thumb_func_end sub_803053C + + thumb_func_start sub_8030668 +sub_8030668: + push {r4-r6,lr} + movs r6, 0 + movs r5, 0 +_0803066E: + lsls r0, r5, 16 + asrs r4, r0, 16 + adds r0, r4, 0 + bl sub_8097504 + lsls r0, 24 + cmp r0, 0 + beq _08030690 + adds r0, r4, 0 + bl sub_80A26CC + ldr r1, _080306A0 + ldr r1, [r1] + lsls r2, r6, 1 + adds r1, r2 + strh r0, [r1] + adds r6, 0x1 +_08030690: + adds r5, 0x1 + cmp r5, 0x16 + ble _0803066E + adds r0, r6, 0 + pop {r4-r6} + pop {r1} + bx r1 + .align 2, 0 +_080306A0: .4byte gUnknown_203B31C + thumb_func_end sub_8030668 + + thumb_func_start sub_80306A4 +sub_80306A4: + movs r0, 0 + bx lr + thumb_func_end sub_80306A4 + + thumb_func_start sub_80306A8 +sub_80306A8: + push {r4-r7,lr} + mov r7, r8 + push {r7} + adds r4, r0, 0 + adds r5, r1, 0 + adds r7, r2, 0 + mov r8, r3 + bl sub_8030C20 + lsls r0, 24 + cmp r0, 0 + beq _080306C4 + movs r0, 0 + b _08030756 +_080306C4: + ldr r6, _08030760 + movs r0, 0xC4 + movs r1, 0x8 + bl MemoryAlloc + str r0, [r6] + str r4, [r0, 0x20] + str r5, [r0, 0x58] + lsls r1, r5, 1 + adds r1, r5 + lsls r1, 3 + adds r1, 0x60 + adds r1, r0, r1 + str r1, [r0, 0x5C] + adds r0, 0x60 + bl sub_8006518 + ldr r1, [r6] + ldr r2, [r1, 0x58] + lsls r0, r2, 1 + adds r0, r2 + lsls r0, 3 + adds r1, r0 + adds r1, 0x60 + ldr r0, _08030764 + ldm r0!, {r2-r4} + stm r1!, {r2-r4} + ldm r0!, {r2-r4} + stm r1!, {r2-r4} + ldr r2, [r6] + ldr r1, [r2, 0x5C] + adds r0, r2, 0 + adds r0, 0xC0 + str r0, [r1, 0x14] + cmp r7, 0 + beq _0803071E + ldr r1, [r2, 0x58] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 3 + adds r1, r2, 0 + adds r1, 0x68 + adds r1, r0 + ldr r0, [r7] + str r0, [r1] +_0803071E: + ldr r0, [r6] + ldr r0, [r0, 0x5C] + mov r1, r8 + bl sub_8012D08 + bl ResetUnusedInputStruct + ldr r0, [r6] + adds r0, 0x60 + movs r1, 0x1 + movs r2, 0x1 + bl sub_800641C + ldr r4, [r6] + adds r4, 0x24 + bl sub_8030A74 + adds r1, r0, 0 + adds r0, r4, 0 + mov r2, r8 + adds r3, r5, 0 + bl sub_8013818 + bl sub_80308A0 + bl sub_803092C + movs r0, 0x1 +_08030756: + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r1} + bx r1 + .align 2, 0 +_08030760: .4byte gUnknown_203B320 +_08030764: .4byte gUnknown_80E0854 + thumb_func_end sub_80306A8 + + thumb_func_start sub_8030768 +sub_8030768: + push {lr} + lsls r0, 24 + cmp r0, 0 + bne _08030784 + ldr r0, _08030780 + ldr r0, [r0] + adds r0, 0x24 + bl sub_8013660 + movs r0, 0 + b _080307E6 + .align 2, 0 +_08030780: .4byte gUnknown_203B320 +_08030784: + ldr r0, _0803079C + ldr r0, [r0] + adds r0, 0x24 + bl GetKeyPress + cmp r0, 0x2 + beq _080307AE + cmp r0, 0x2 + bgt _080307A0 + cmp r0, 0x1 + beq _080307B8 + b _080307C2 + .align 2, 0 +_0803079C: .4byte gUnknown_203B320 +_080307A0: + cmp r0, 0x4 + bne _080307C2 + movs r0, 0x4 + bl PlayMenuSoundEffect + movs r0, 0x4 + b _080307E6 +_080307AE: + movs r0, 0x1 + bl PlayMenuSoundEffect + movs r0, 0x2 + b _080307E6 +_080307B8: + movs r0, 0 + bl PlayMenuSoundEffect + movs r0, 0x3 + b _080307E6 +_080307C2: + ldr r0, _080307D8 + ldr r0, [r0] + adds r0, 0x24 + movs r1, 0x1 + bl sub_80138B8 + lsls r0, 24 + cmp r0, 0 + bne _080307DC + movs r0, 0 + b _080307E6 + .align 2, 0 +_080307D8: .4byte gUnknown_203B320 +_080307DC: + bl sub_80308A0 + bl sub_803092C + movs r0, 0x1 +_080307E6: + pop {r1} + bx r1 + thumb_func_end sub_8030768 + + thumb_func_start sub_80307EC +sub_80307EC: + ldr r0, _0803080C + ldr r2, [r0] + adds r0, r2, 0 + adds r0, 0x42 + movs r3, 0 + ldrsh r1, [r0, r3] + subs r0, 0x2 + movs r3, 0 + ldrsh r0, [r0, r3] + muls r0, r1 + movs r3, 0x3C + ldrsh r1, [r2, r3] + adds r0, r1 + adds r2, r0 + ldrb r0, [r2] + bx lr + .align 2, 0 +_0803080C: .4byte gUnknown_203B320 + thumb_func_end sub_80307EC + + thumb_func_start sub_8030810 +sub_8030810: + push {r4,r5,lr} + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + bl sub_8030A74 + adds r1, r0, 0 + ldr r5, _08030848 + ldr r0, [r5] + adds r2, r0, 0 + adds r2, 0x46 + strh r1, [r2] + adds r0, 0x24 + bl sub_8013984 + bl sub_80308A0 + bl sub_803092C + cmp r4, 0 + beq _08030842 + ldr r0, [r5] + adds r0, 0x24 + bl AddMenuCursorSprite +_08030842: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_08030848: .4byte gUnknown_203B320 + thumb_func_end sub_8030810 + + thumb_func_start sub_803084C +sub_803084C: + push {r4,r5,lr} + ldr r4, _0803088C + ldr r2, [r4] + cmp r2, 0 + beq _08030886 + ldr r0, [r2, 0x58] + lsls r1, r0, 1 + adds r1, r0 + lsls r1, 3 + adds r1, r2, r1 + adds r1, 0x60 + ldr r0, _08030890 + ldm r0!, {r2,r3,r5} + stm r1!, {r2,r3,r5} + ldm r0!, {r2,r3,r5} + stm r1!, {r2,r3,r5} + bl ResetUnusedInputStruct + ldr r0, [r4] + adds r0, 0x60 + movs r1, 0x1 + movs r2, 0x1 + bl sub_800641C + ldr r0, [r4] + bl MemoryFree + movs r0, 0 + str r0, [r4] +_08030886: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_0803088C: .4byte gUnknown_203B320 +_08030890: .4byte gUnknown_80E083C + thumb_func_end sub_803084C + + thumb_func_start sub_8030894 +sub_8030894: + ldr r0, _0803089C + ldr r0, [r0] + bx lr + .align 2, 0 +_0803089C: .4byte gUnknown_203B320 + thumb_func_end sub_8030894 + + thumb_func_start sub_80308A0 +sub_80308A0: + push {r4,lr} + ldr r4, _08030928 + ldr r0, [r4] + adds r1, r0, 0 + adds r1, 0x44 + ldrh r1, [r1] + adds r0, 0xC0 + movs r2, 0 + strb r1, [r0] + ldr r0, [r4] + adds r1, r0, 0 + adds r1, 0x42 + ldrh r1, [r1] + adds r0, 0xC1 + strb r1, [r0] + ldr r0, [r4] + adds r0, 0xC2 + movs r1, 0xC + strb r1, [r0] + ldr r0, [r4] + adds r0, 0xC3 + strb r2, [r0] + bl ResetUnusedInputStruct + ldr r0, [r4] + adds r0, 0x60 + movs r1, 0x1 + movs r2, 0x1 + bl sub_800641C + ldr r0, [r4] + movs r1, 0x3E + ldrsh r0, [r0, r1] + movs r1, 0xC + bl sub_80095E4 + adds r0, 0x2 + lsls r0, 16 + ldr r2, [r4] + ldr r3, [r2, 0x58] + lsls r1, r3, 1 + adds r1, r3 + lsls r1, 3 + adds r1, r2, r1 + adds r1, 0x6E + asrs r3, r0, 16 + lsrs r0, 16 + strh r0, [r1] + ldr r1, [r2, 0x58] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 3 + adds r2, r0 + adds r3, 0x2 + adds r2, 0x70 + strh r3, [r2] + bl ResetUnusedInputStruct + ldr r0, [r4] + adds r0, 0x60 + movs r1, 0x1 + movs r2, 0x1 + bl sub_800641C + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08030928: .4byte gUnknown_203B320 + thumb_func_end sub_80308A0 + + thumb_func_start sub_803092C +sub_803092C: + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + sub sp, 0x60 + ldr r7, _08030A24 + ldr r0, [r7] + ldr r0, [r0, 0x58] + bl sub_8008C54 + ldr r0, [r7] + ldr r0, [r0, 0x58] + bl sub_80073B8 + ldr r1, [r7] + adds r0, r1, 0 + adds r0, 0x42 + movs r2, 0 + ldrsh r4, [r0, r2] + lsls r4, 3 + adds r5, r4, 0 + adds r5, 0xA + ldr r2, _08030A28 + ldr r0, [r1, 0x20] + lsls r0, 2 + adds r0, r2 + ldr r2, [r0] + ldr r3, [r1, 0x58] + movs r0, 0 + str r0, [sp] + adds r0, r5, 0 + movs r1, 0 + bl xxx_call_draw_string + adds r4, 0x4 + ldr r3, [r7] + adds r0, r3, 0 + adds r0, 0xC2 + ldrb r0, [r0] + lsls r0, 3 + adds r5, r4, r0 + adds r0, r3, 0 + adds r0, 0x42 + movs r1, 0 + ldrsh r2, [r0, r1] + adds r2, 0x1 + movs r0, 0x7 + str r0, [sp] + ldr r0, [r3, 0x58] + str r0, [sp, 0x4] + adds r0, r5, 0 + movs r1, 0 + movs r3, 0x1 + bl sub_8012BC4 + movs r6, 0 + ldr r0, [r7] + movs r2, 0x3E + ldrsh r0, [r0, r2] + cmp r6, r0 + bge _08030A56 + mov r9, r7 + mov r8, r6 + add r7, sp, 0x8 + mov r5, sp + adds r5, 0x4B +_080309B0: + mov r3, r9 + ldr r1, [r3] + adds r0, r1, 0 + adds r0, 0x42 + movs r3, 0 + ldrsh r2, [r0, r3] + subs r0, 0x2 + movs r3, 0 + ldrsh r0, [r0, r3] + muls r0, r2 + adds r0, r6 + adds r1, r0 + ldrb r0, [r1] + bl sub_8095228 + adds r4, r0, 0 + mov r1, r9 + ldr r0, [r1] + ldr r1, [r0, 0x58] + str r1, [sp, 0x8] + adds r0, 0x24 + adds r1, r6, 0 + bl sub_8013800 + str r0, [sp, 0x50] + add r1, sp, 0x48 + movs r0, 0x7 + strb r0, [r1] + mov r0, sp + adds r0, 0x4A + mov r2, r8 + strb r2, [r0] + add r0, sp, 0x4C + strb r2, [r0] + adds r0, r4, 0x4 + str r0, [sp, 0x10] + adds r0, 0x10 + str r0, [sp, 0x14] + ldrh r0, [r4, 0xC] + strh r0, [r7, 0x10] + ldrh r0, [r4, 0xC] + strh r0, [r7, 0x12] + strb r2, [r7, 0x14] + subs r1, 0x12 + movs r0, 0x5 + strb r0, [r1] + ldrb r0, [r4] + cmp r0, 0x4 + beq _08030A32 + cmp r0, 0x4 + bgt _08030A2C + cmp r0, 0x2 + bgt _08030A3E + cmp r0, 0x1 + blt _08030A3E + movs r0, 0x1 + strb r0, [r5] + b _08030A42 + .align 2, 0 +_08030A24: .4byte gUnknown_203B320 +_08030A28: .4byte gUnknown_80E086C +_08030A2C: + cmp r0, 0x5 + beq _08030A38 + b _08030A3E +_08030A32: + movs r0, 0x3 + strb r0, [r5] + b _08030A42 +_08030A38: + movs r0, 0x4 + strb r0, [r5] + b _08030A42 +_08030A3E: + mov r3, r8 + strb r3, [r5] +_08030A42: + add r0, sp, 0x8 + bl sub_803B6D4 + adds r6, 0x1 + mov r1, r9 + ldr r0, [r1] + movs r2, 0x3E + ldrsh r0, [r0, r2] + cmp r6, r0 + blt _080309B0 +_08030A56: + ldr r0, _08030A70 + ldr r0, [r0] + ldr r0, [r0, 0x58] + bl sub_80073E0 + add sp, 0x60 + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_08030A70: .4byte gUnknown_203B320 + thumb_func_end sub_803092C + + thumb_func_start sub_8030A74 +sub_8030A74: + push {r4,r5,lr} + movs r2, 0 + ldr r0, _08030A90 + ldr r0, [r0] + ldr r0, [r0, 0x20] + cmp r0, 0x7 + bls _08030A84 + b _08030C0E +_08030A84: + lsls r0, 2 + ldr r1, _08030A94 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_08030A90: .4byte gUnknown_203B320 +_08030A94: .4byte _08030A98 + .align 2, 0 +_08030A98: + .4byte _08030AB8 + .4byte _08030B10 + .4byte _08030B3C + .4byte _08030B94 + .4byte _08030B68 + .4byte _08030BC0 + .4byte _08030AE4 + .4byte _08030BEC +_08030AB8: + movs r1, 0 + ldr r5, _08030ADC + ldr r4, _08030AE0 + movs r3, 0 +_08030AC0: + ldr r0, [r5] + adds r0, r3 + ldrb r0, [r0] + cmp r0, 0 + beq _08030AD2 + ldr r0, [r4] + adds r0, r2 + strb r1, [r0] + adds r2, 0x1 +_08030AD2: + adds r3, 0x30 + adds r1, 0x1 + cmp r1, 0x1F + ble _08030AC0 + b _08030C0E + .align 2, 0 +_08030ADC: .4byte gUnknown_203B480 +_08030AE0: .4byte gUnknown_203B320 +_08030AE4: + movs r1, 0 + ldr r5, _08030B08 + ldr r4, _08030B0C + movs r3, 0 +_08030AEC: + ldr r0, [r5] + adds r0, r3 + ldrb r0, [r0] + cmp r0, 0x6 + bne _08030AFE + ldr r0, [r4] + adds r0, r2 + strb r1, [r0] + adds r2, 0x1 +_08030AFE: + adds r3, 0x30 + adds r1, 0x1 + cmp r1, 0x1F + ble _08030AEC + b _08030C0E + .align 2, 0 +_08030B08: .4byte gUnknown_203B480 +_08030B0C: .4byte gUnknown_203B320 +_08030B10: + movs r1, 0 + ldr r5, _08030B34 + ldr r4, _08030B38 + movs r3, 0 +_08030B18: + ldr r0, [r5] + adds r0, r3 + ldrb r0, [r0] + cmp r0, 0x1 + bne _08030B2A + ldr r0, [r4] + adds r0, r2 + strb r1, [r0] + adds r2, 0x1 +_08030B2A: + adds r3, 0x30 + adds r1, 0x1 + cmp r1, 0x1F + ble _08030B18 + b _08030C0E + .align 2, 0 +_08030B34: .4byte gUnknown_203B480 +_08030B38: .4byte gUnknown_203B320 +_08030B3C: + movs r1, 0 + ldr r5, _08030B60 + ldr r4, _08030B64 + movs r3, 0 +_08030B44: + ldr r0, [r5] + adds r0, r3 + ldrb r0, [r0] + cmp r0, 0x2 + bne _08030B56 + ldr r0, [r4] + adds r0, r2 + strb r1, [r0] + adds r2, 0x1 +_08030B56: + adds r3, 0x30 + adds r1, 0x1 + cmp r1, 0x1F + ble _08030B44 + b _08030C0E + .align 2, 0 +_08030B60: .4byte gUnknown_203B480 +_08030B64: .4byte gUnknown_203B320 +_08030B68: + movs r1, 0 + ldr r5, _08030B8C + ldr r4, _08030B90 + movs r3, 0 +_08030B70: + ldr r0, [r5] + adds r0, r3 + ldrb r0, [r0] + cmp r0, 0x4 + bne _08030B82 + ldr r0, [r4] + adds r0, r2 + strb r1, [r0] + adds r2, 0x1 +_08030B82: + adds r3, 0x30 + adds r1, 0x1 + cmp r1, 0x1F + ble _08030B70 + b _08030C0E + .align 2, 0 +_08030B8C: .4byte gUnknown_203B480 +_08030B90: .4byte gUnknown_203B320 +_08030B94: + movs r1, 0 + ldr r5, _08030BB8 + ldr r4, _08030BBC + movs r3, 0 +_08030B9C: + ldr r0, [r5] + adds r0, r3 + ldrb r0, [r0] + cmp r0, 0x3 + bne _08030BAE + ldr r0, [r4] + adds r0, r2 + strb r1, [r0] + adds r2, 0x1 +_08030BAE: + adds r3, 0x30 + adds r1, 0x1 + cmp r1, 0x1F + ble _08030B9C + b _08030C0E + .align 2, 0 +_08030BB8: .4byte gUnknown_203B480 +_08030BBC: .4byte gUnknown_203B320 +_08030BC0: + movs r1, 0 + ldr r5, _08030BE4 + ldr r4, _08030BE8 + movs r3, 0 +_08030BC8: + ldr r0, [r5] + adds r0, r3 + ldrb r0, [r0] + cmp r0, 0x5 + bne _08030BDA + ldr r0, [r4] + adds r0, r2 + strb r1, [r0] + adds r2, 0x1 +_08030BDA: + adds r3, 0x30 + adds r1, 0x1 + cmp r1, 0x1F + ble _08030BC8 + b _08030C0E + .align 2, 0 +_08030BE4: .4byte gUnknown_203B480 +_08030BE8: .4byte gUnknown_203B320 +_08030BEC: + movs r1, 0 + ldr r5, _08030C18 + ldr r4, _08030C1C + movs r3, 0 +_08030BF4: + ldr r0, [r5] + adds r0, r3 + ldrb r0, [r0] + cmp r0, 0x7 + bne _08030C06 + ldr r0, [r4] + adds r0, r2 + strb r1, [r0] + adds r2, 0x1 +_08030C06: + adds r3, 0x30 + adds r1, 0x1 + cmp r1, 0x1F + ble _08030BF4 +_08030C0E: + adds r0, r2, 0 + pop {r4,r5} + pop {r1} + bx r1 + .align 2, 0 +_08030C18: .4byte gUnknown_203B480 +_08030C1C: .4byte gUnknown_203B320 + thumb_func_end sub_8030A74 + + thumb_func_start sub_8030C20 +sub_8030C20: + push {lr} + cmp r0, 0x7 + bls _08030C28 + b _08030D34 +_08030C28: + lsls r0, 2 + ldr r1, _08030C34 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_08030C34: .4byte _08030C38 + .align 2, 0 +_08030C38: + .4byte _08030C58 + .4byte _08030C90 + .4byte _08030CAC + .4byte _08030CE4 + .4byte _08030CC8 + .4byte _08030D00 + .4byte _08030C74 + .4byte _08030D20 +_08030C58: + movs r1, 0 + ldr r0, _08030C70 + ldr r2, [r0] +_08030C5E: + ldrb r0, [r2] + cmp r0, 0 + bne _08030D1C + adds r2, 0x30 + adds r1, 0x1 + cmp r1, 0x1F + ble _08030C5E + b _08030D34 + .align 2, 0 +_08030C70: .4byte gUnknown_203B480 +_08030C74: + movs r1, 0 + ldr r0, _08030C8C + ldr r2, [r0] +_08030C7A: + ldrb r0, [r2] + cmp r0, 0x6 + beq _08030D1C + adds r2, 0x30 + adds r1, 0x1 + cmp r1, 0x1F + ble _08030C7A + b _08030D34 + .align 2, 0 +_08030C8C: .4byte gUnknown_203B480 +_08030C90: + movs r1, 0 + ldr r0, _08030CA8 + ldr r2, [r0] +_08030C96: + ldrb r0, [r2] + cmp r0, 0x1 + beq _08030D1C + adds r2, 0x30 + adds r1, 0x1 + cmp r1, 0x1F + ble _08030C96 + b _08030D34 + .align 2, 0 +_08030CA8: .4byte gUnknown_203B480 +_08030CAC: + movs r1, 0 + ldr r0, _08030CC4 + ldr r2, [r0] +_08030CB2: + ldrb r0, [r2] + cmp r0, 0x2 + beq _08030D1C + adds r2, 0x30 + adds r1, 0x1 + cmp r1, 0x1F + ble _08030CB2 + b _08030D34 + .align 2, 0 +_08030CC4: .4byte gUnknown_203B480 +_08030CC8: + movs r1, 0 + ldr r0, _08030CE0 + ldr r2, [r0] +_08030CCE: + ldrb r0, [r2] + cmp r0, 0x4 + beq _08030D1C + adds r2, 0x30 + adds r1, 0x1 + cmp r1, 0x1F + ble _08030CCE + b _08030D34 + .align 2, 0 +_08030CE0: .4byte gUnknown_203B480 +_08030CE4: + movs r1, 0 + ldr r0, _08030CFC + ldr r2, [r0] +_08030CEA: + ldrb r0, [r2] + cmp r0, 0x3 + beq _08030D1C + adds r2, 0x30 + adds r1, 0x1 + cmp r1, 0x1F + ble _08030CEA + b _08030D34 + .align 2, 0 +_08030CFC: .4byte gUnknown_203B480 +_08030D00: + movs r1, 0 + ldr r0, _08030D18 + ldr r2, [r0] +_08030D06: + ldrb r0, [r2] + cmp r0, 0x5 + beq _08030D1C + adds r2, 0x30 + adds r1, 0x1 + cmp r1, 0x1F + ble _08030D06 + b _08030D34 + .align 2, 0 +_08030D18: .4byte gUnknown_203B480 +_08030D1C: + movs r0, 0 + b _08030D36 +_08030D20: + movs r1, 0 + ldr r0, _08030D3C + ldr r2, [r0] +_08030D26: + ldrb r0, [r2] + cmp r0, 0x7 + beq _08030D1C + adds r2, 0x30 + adds r1, 0x1 + cmp r1, 0x1F + ble _08030D26 +_08030D34: + movs r0, 0x1 +_08030D36: + pop {r1} + bx r1 + .align 2, 0 +_08030D3C: .4byte gUnknown_203B480 + thumb_func_end sub_8030C20 + + thumb_func_start sub_8030D40 +sub_8030D40: + push {r4-r6,lr} + adds r4, r0, 0 + adds r5, r1, 0 + lsls r4, 24 + lsrs r4, 24 + ldr r6, _08030D98 + movs r0, 0x78 + movs r1, 0x8 + bl MemoryAlloc + str r0, [r6] + strb r4, [r0, 0xC] + ldr r0, [r6] + bl sub_801317C + ldr r0, [r6] + str r5, [r0, 0x10] + lsls r1, r5, 1 + adds r1, r5 + lsls r1, 3 + adds r1, 0x18 + adds r1, r0, r1 + str r1, [r0, 0x14] + adds r0, 0x18 + bl sub_8006518 + ldr r1, [r6] + ldr r2, [r1, 0x10] + lsls r0, r2, 1 + adds r0, r2 + lsls r0, 3 + adds r1, r0 + adds r1, 0x18 + ldr r0, _08030D9C + ldm r0!, {r2-r4} + stm r1!, {r2-r4} + ldm r0!, {r2-r4} + stm r1!, {r2-r4} + bl sub_8030DD4 + movs r0, 0x1 + pop {r4-r6} + pop {r1} + bx r1 + .align 2, 0 +_08030D98: .4byte gUnknown_203B324 +_08030D9C: .4byte gUnknown_80E091C + thumb_func_end sub_8030D40 + + thumb_func_start sub_8030DA0 +sub_8030DA0: + push {lr} + ldr r0, _08030DC0 + ldr r0, [r0] + ldr r1, [r0, 0x10] + bl sub_8012A64 + cmp r0, 0x1 + beq _08030DC4 + cmp r0, 0x2 + bne _08030DCE + movs r0, 0x1 + bl PlayMenuSoundEffect + movs r0, 0x2 + b _08030DD0 + .align 2, 0 +_08030DC0: .4byte gUnknown_203B324 +_08030DC4: + movs r0, 0 + bl PlayMenuSoundEffect + movs r0, 0x3 + b _08030DD0 +_08030DCE: + movs r0, 0 +_08030DD0: + pop {r1} + bx r1 + thumb_func_end sub_8030DA0 + + thumb_func_start sub_8030DD4 +sub_8030DD4: + push {lr} + bl sub_8030E2C + bl sub_8030E48 + pop {r0} + bx r0 + thumb_func_end sub_8030DD4 + + thumb_func_start sub_8030DE4 +sub_8030DE4: + push {r4,r5,lr} + ldr r4, _08030E24 + ldr r2, [r4] + cmp r2, 0 + beq _08030E1E + ldr r0, [r2, 0x10] + lsls r1, r0, 1 + adds r1, r0 + lsls r1, 3 + adds r1, r2, r1 + adds r1, 0x18 + ldr r0, _08030E28 + ldm r0!, {r2,r3,r5} + stm r1!, {r2,r3,r5} + ldm r0!, {r2,r3,r5} + stm r1!, {r2,r3,r5} + bl ResetUnusedInputStruct + ldr r0, [r4] + adds r0, 0x18 + movs r1, 0x1 + movs r2, 0x1 + bl sub_800641C + ldr r0, [r4] + bl MemoryFree + movs r0, 0 + str r0, [r4] +_08030E1E: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_08030E24: .4byte gUnknown_203B324 +_08030E28: .4byte gUnknown_80E0900 + thumb_func_end sub_8030DE4 + + thumb_func_start sub_8030E2C +sub_8030E2C: + push {lr} + bl ResetUnusedInputStruct + ldr r0, _08030E44 + ldr r0, [r0] + adds r0, 0x18 + movs r1, 0x1 + movs r2, 0x1 + bl sub_800641C + pop {r0} + bx r0 + .align 2, 0 +_08030E44: .4byte gUnknown_203B324 + thumb_func_end sub_8030E2C + + thumb_func_start sub_8030E48 +sub_8030E48: + push {r4-r6,lr} + mov r6, r8 + push {r6} + sub sp, 0x15C + ldr r3, _08030EA8 + ldr r4, _08030EAC + ldr r2, [r4] + ldrb r1, [r2, 0xC] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 4 + ldr r1, [r3] + adds r5, r1, r0 + ldr r0, [r2, 0x10] + bl sub_80073B8 + ldr r0, [r4] + ldr r0, [r0, 0x10] + str r0, [sp, 0x4] + add r1, sp, 0x44 + movs r2, 0 + movs r0, 0x7 + strb r0, [r1] + mov r0, sp + adds r0, 0x46 + strb r2, [r0] + add r0, sp, 0x48 + strb r2, [r0] + adds r0, r5, 0x4 + str r0, [sp, 0xC] + adds r0, 0x10 + str r0, [sp, 0x10] + add r1, sp, 0x4 + ldrh r0, [r5, 0xC] + strh r0, [r1, 0x10] + ldrh r0, [r5, 0xC] + strh r0, [r1, 0x12] + adds r0, r1, 0 + strb r2, [r0, 0x14] + adds r2, r5, 0 + adds r2, 0x22 + ldrb r0, [r2] + cmp r0, 0 + bne _08030EB0 + adds r1, 0x2E + movs r0, 0x5 + strb r0, [r1] + b _08030EBE + .align 2, 0 +_08030EA8: .4byte gUnknown_203B480 +_08030EAC: .4byte gUnknown_203B324 +_08030EB0: + mov r1, sp + adds r1, 0x32 + movs r0, 0x2 + strb r0, [r1] + ldrb r1, [r2] + add r0, sp, 0x38 + strb r1, [r0] +_08030EBE: + ldrb r0, [r5] + cmp r0, 0x2 + beq _08030ED2 + cmp r0, 0x2 + ble _08030EE2 + cmp r0, 0x4 + beq _08030ED2 + cmp r0, 0x5 + beq _08030EDA + b _08030EE2 +_08030ED2: + mov r1, sp + adds r1, 0x45 + movs r0, 0xA + b _08030EE8 +_08030EDA: + mov r1, sp + adds r1, 0x45 + movs r0, 0xB + b _08030EE8 +_08030EE2: + mov r1, sp + adds r1, 0x45 + movs r0, 0x9 +_08030EE8: + strb r0, [r1] + add r0, sp, 0x4 + bl CreateRescueDescription + ldrh r0, [r5, 0x10] + ldr r1, _08030F48 + bl __umodsi3 + adds r4, r0, 0 + lsls r4, 16 + lsrs r4, 16 + ldr r2, _08030F4C + ldr r5, _08030F50 + ldr r0, [r5] + ldr r3, [r0, 0x10] + movs r0, 0 + mov r8, r0 + str r0, [sp] + movs r0, 0xA + movs r1, 0x68 + bl xxx_call_draw_string + add r6, sp, 0x5C + ldr r1, _08030F54 + adds r0, r6, 0 + adds r2, r4, 0 + bl sub_800D158 + ldr r0, [r5] + ldr r3, [r0, 0x10] + mov r0, r8 + str r0, [sp] + movs r0, 0x44 + movs r1, 0x68 + adds r2, r6, 0 + bl xxx_call_draw_string + ldr r0, [r5] + ldr r0, [r0, 0x10] + bl sub_80073E0 + add sp, 0x15C + pop {r3} + mov r8, r3 + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_08030F48: .4byte 0x00002710 +_08030F4C: .4byte gUnknown_80E0934 +_08030F50: .4byte gUnknown_203B324 +_08030F54: .4byte gUnknown_80E0938 + thumb_func_end sub_8030E48 + + thumb_func_start sub_8030F58 +sub_8030F58: + push {r4-r6,lr} + adds r6, r0, 0 + bl ResetUnusedInputStruct + movs r0, 0 + movs r1, 0x1 + movs r2, 0x1 + bl sub_800641C + ldr r5, _08030FF4 + ldr r0, [r5] + cmp r0, 0 + bne _08030F88 + movs r4, 0x8E + lsls r4, 1 + adds r0, r4, 0 + movs r1, 0x8 + bl MemoryAlloc + str r0, [r5] + movs r1, 0 + adds r2, r4, 0 + bl MemoryFill8 +_08030F88: + ldr r0, [r5] + movs r1, 0x8C + lsls r1, 1 + adds r0, r1 + str r6, [r0] + movs r0, 0x98 + lsls r0, 1 + bl GetDialogueSpriteDataPtr + ldr r2, [r5] + movs r4, 0x84 + lsls r4, 1 + adds r1, r2, r4 + str r0, [r1] + movs r3, 0x86 + lsls r3, 1 + adds r1, r2, r3 + ldr r0, [r0, 0x4] + str r0, [r1] + movs r0, 0x8A + lsls r0, 1 + adds r2, r0 + movs r1, 0 + strb r1, [r2] + ldr r0, [r5] + ldr r2, _08030FF8 + adds r0, r2 + strb r1, [r0] + ldr r0, [r5] + adds r3, 0xA + adds r0, r3 + strb r1, [r0] + ldr r2, [r5] + movs r0, 0x88 + lsls r0, 1 + adds r1, r2, r0 + movs r0, 0x2 + strh r0, [r1] + subs r3, 0x4 + adds r1, r2, r3 + movs r0, 0x8 + strh r0, [r1] + adds r0, r6, 0 + bl sub_8030C20 + lsls r0, 24 + lsrs r1, r0, 24 + cmp r1, 0 + beq _08031038 + cmp r6, 0x2 + beq _08030FFC + cmp r6, 0x4 + beq _08031014 + b _08031022 + .align 2, 0 +_08030FF4: .4byte gUnknown_203B328 +_08030FF8: .4byte 0x00000115 +_08030FFC: + ldr r0, _0803100C + ldr r2, [r5] + adds r2, r4 + ldr r3, _08031010 + movs r1, 0 + bl sub_80141B4 + b _08031022 + .align 2, 0 +_0803100C: .4byte gUnknown_80E09D8 +_08031010: .4byte 0x00000101 +_08031014: + ldr r0, _0803102C + ldr r2, [r5] + adds r2, r4 + ldr r3, _08031030 + movs r1, 0 + bl sub_80141B4 +_08031022: + ldr r0, _08031034 + ldr r1, [r0] + movs r0, 0x5 + str r0, [r1] + b _08031048 + .align 2, 0 +_0803102C: .4byte gUnknown_80E0A0C +_08031030: .4byte 0x00000101 +_08031034: .4byte gUnknown_203B328 +_08031038: + ldr r0, [r5] + str r1, [r0] + adds r0, r6, 0 + movs r1, 0 + movs r2, 0 + movs r3, 0x8 + bl sub_80306A8 +_08031048: + movs r0, 0x1 + pop {r4-r6} + pop {r1} + bx r1 + thumb_func_end sub_8030F58 + + thumb_func_start sub_8031050 +sub_8031050: + push {lr} + ldr r1, _08031068 + ldr r0, [r1] + ldr r0, [r0] + adds r2, r1, 0 + cmp r0, 0x6 + bhi _080310AC + lsls r0, 2 + ldr r1, _0803106C + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_08031068: .4byte gUnknown_203B328 +_0803106C: .4byte _08031070 + .align 2, 0 +_08031070: + .4byte _0803108C + .4byte _08031092 + .4byte _08031098 + .4byte _08031098 + .4byte _080310A2 + .4byte _080310A8 + .4byte _080310A8 +_0803108C: + bl sub_8031300 + b _080310AC +_08031092: + bl sub_803136C + b _080310AC +_08031098: + ldr r0, [r2] + ldr r0, [r0] + bl sub_80313D8 + b _080310AC +_080310A2: + bl sub_8031498 + b _080310AC +_080310A8: + movs r0, 0x3 + b _080310AE +_080310AC: + movs r0, 0 +_080310AE: + pop {r1} + bx r1 + thumb_func_end sub_8031050 + + thumb_func_start sub_80310B4 +sub_80310B4: + push {r4,lr} + bl sub_803084C + ldr r4, _080310E0 + ldr r0, [r4] + cmp r0, 0 + beq _080310D8 + movs r1, 0x84 + lsls r1, 1 + adds r0, r1 + ldr r0, [r0] + bl CloseFile + ldr r0, [r4] + bl MemoryFree + movs r0, 0 + str r0, [r4] +_080310D8: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080310E0: .4byte gUnknown_203B328 + thumb_func_end sub_80310B4 + + thumb_func_start sub_80310E4 +sub_80310E4: + push {lr} + ldr r1, _080310F8 + ldr r1, [r1] + str r0, [r1] + bl sub_80310FC + bl sub_8031258 + pop {r0} + bx r0 + .align 2, 0 +_080310F8: .4byte gUnknown_203B328 + thumb_func_end sub_80310E4 + + thumb_func_start sub_80310FC +sub_80310FC: + push {r4-r6,lr} + ldr r4, _0803111C + ldr r0, [r4] + adds r0, 0xA8 + bl sub_8006518 + ldr r0, [r4] + ldr r0, [r0] + cmp r0, 0x6 + bls _08031112 + b _0803122C +_08031112: + lsls r0, 2 + ldr r1, _08031120 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0803111C: .4byte gUnknown_203B328 +_08031120: .4byte _08031124 + .align 2, 0 +_08031124: + .4byte _08031140 + .4byte _08031178 + .4byte _080311C0 + .4byte _080311C0 + .4byte _080311E8 + .4byte _0803122C + .4byte _0803122C +_08031140: + ldr r3, _08031170 + ldr r1, [r3] + ldr r2, _08031174 + adds r1, 0xC0 + adds r0, r2, 0 + ldm r0!, {r4-r6} + stm r1!, {r4-r6} + ldm r0!, {r4-r6} + stm r1!, {r4-r6} + ldr r1, [r3] + adds r1, 0xD8 + adds r0, r2, 0 + ldm r0!, {r4-r6} + stm r1!, {r4-r6} + ldm r0!, {r4-r6} + stm r1!, {r4-r6} + ldr r0, [r3] + adds r0, 0xF0 + ldm r2!, {r1,r3,r4} + stm r0!, {r1,r3,r4} + ldm r2!, {r1,r5,r6} + stm r0!, {r1,r5,r6} + b _0803123A + .align 2, 0 +_08031170: .4byte gUnknown_203B328 +_08031174: .4byte gUnknown_80E0990 +_08031178: + ldr r3, _080311B0 + ldr r1, [r3] + adds r1, 0xC0 + ldr r0, _080311B4 + ldm r0!, {r2,r4,r5} + stm r1!, {r2,r4,r5} + ldm r0!, {r2,r4,r6} + stm r1!, {r2,r4,r6} + ldr r1, [r3] + ldr r2, _080311B8 + adds r1, 0xD8 + adds r0, r2, 0 + ldm r0!, {r4-r6} + stm r1!, {r4-r6} + ldm r0!, {r4-r6} + stm r1!, {r4-r6} + ldr r0, [r3] + adds r0, 0xF0 + ldm r2!, {r1,r5,r6} + stm r0!, {r1,r5,r6} + ldm r2!, {r4-r6} + stm r0!, {r4-r6} + ldr r0, [r3] + adds r0, 0xC0 + ldr r1, _080311BC + bl sub_8012CAC + b _0803123A + .align 2, 0 +_080311B0: .4byte gUnknown_203B328 +_080311B4: .4byte gUnknown_80E09A8 +_080311B8: .4byte gUnknown_80E0990 +_080311BC: .4byte gUnknown_80E0968 +_080311C0: + ldr r2, _080311DC + ldr r1, [r2] + adds r1, 0xD8 + ldr r0, _080311E0 + ldm r0!, {r3-r5} + stm r1!, {r3-r5} + ldm r0!, {r3,r4,r6} + stm r1!, {r3,r4,r6} + ldr r0, [r2] + adds r0, 0xD8 + ldr r1, _080311E4 + bl sub_8012CAC + b _0803123A + .align 2, 0 +_080311DC: .4byte gUnknown_203B328 +_080311E0: .4byte gUnknown_80E09C0 +_080311E4: .4byte gUnknown_80E0948 +_080311E8: + ldr r3, _08031224 + ldr r1, [r3] + ldr r2, _08031228 + adds r1, 0xA8 + adds r0, r2, 0 + ldm r0!, {r4-r6} + stm r1!, {r4-r6} + ldm r0!, {r4-r6} + stm r1!, {r4-r6} + ldr r1, [r3] + adds r1, 0xC0 + adds r0, r2, 0 + ldm r0!, {r4-r6} + stm r1!, {r4-r6} + ldm r0!, {r4-r6} + stm r1!, {r4-r6} + ldr r1, [r3] + adds r1, 0xD8 + adds r0, r2, 0 + ldm r0!, {r4-r6} + stm r1!, {r4-r6} + ldm r0!, {r4-r6} + stm r1!, {r4-r6} + ldr r0, [r3] + adds r0, 0xF0 + ldm r2!, {r1,r5,r6} + stm r0!, {r1,r5,r6} + ldm r2!, {r3-r5} + stm r0!, {r3-r5} + b _0803123A + .align 2, 0 +_08031224: .4byte gUnknown_203B328 +_08031228: .4byte gUnknown_80E0990 +_0803122C: + bl ResetUnusedInputStruct + movs r0, 0 + movs r1, 0x1 + movs r2, 0x1 + bl sub_800641C +_0803123A: + bl ResetUnusedInputStruct + ldr r0, _08031254 + ldr r0, [r0] + adds r0, 0xA8 + movs r1, 0x1 + movs r2, 0x1 + bl sub_800641C + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_08031254: .4byte gUnknown_203B328 + thumb_func_end sub_80310FC + + thumb_func_start sub_8031258 +sub_8031258: + push {r4,lr} + sub sp, 0x8 + ldr r1, _08031274 + ldr r0, [r1] + ldr r0, [r0] + adds r2, r1, 0 + cmp r0, 0x6 + bhi _080312F6 + lsls r0, 2 + ldr r1, _08031278 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_08031274: .4byte gUnknown_203B328 +_08031278: .4byte _0803127C + .align 2, 0 +_0803127C: + .4byte _08031298 + .4byte _080312A0 + .4byte _080312BC + .4byte _080312BC + .4byte _080312EC + .4byte _080312F6 + .4byte _080312F6 +_08031298: + movs r0, 0x1 + bl sub_8030810 + b _080312F6 +_080312A0: + bl sub_803092C + ldr r0, _080312B4 + ldr r0, [r0] + adds r0, 0x8 + ldr r1, _080312B8 + movs r2, 0x4 + str r2, [sp] + movs r2, 0x1 + b _080312D8 + .align 2, 0 +_080312B4: .4byte gUnknown_203B328 +_080312B8: .4byte gUnknown_80E0968 +_080312BC: + bl sub_803092C + ldr r4, _080312E4 + ldr r0, [r4] + adds r0, 0x8 + movs r1, 0 + bl sub_8012EA4 + ldr r0, [r4] + adds r0, 0x58 + ldr r1, _080312E8 + movs r2, 0x3 + str r2, [sp] + movs r2, 0x2 +_080312D8: + str r2, [sp, 0x4] + movs r2, 0 + movs r3, 0 + bl sub_8012D60 + b _080312F6 + .align 2, 0 +_080312E4: .4byte gUnknown_203B328 +_080312E8: .4byte gUnknown_80E0948 +_080312EC: + ldr r0, [r2] + ldrb r0, [r0, 0x4] + movs r1, 0x3 + bl sub_8030D40 +_080312F6: + add sp, 0x8 + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_8031258 + + thumb_func_start sub_8031300 +sub_8031300: + push {lr} + movs r0, 0x1 + bl sub_8030768 + cmp r0, 0x4 + bhi _08031366 + lsls r0, 2 + ldr r1, _08031318 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_08031318: .4byte _0803131C + .align 2, 0 +_0803131C: + .4byte _08031366 + .4byte _08031366 + .4byte _08031360 + .4byte _08031330 + .4byte _08031348 +_08031330: + bl sub_80307EC + ldr r1, _08031344 + ldr r1, [r1] + strb r0, [r1, 0x4] + movs r0, 0x1 + bl sub_80310E4 + b _08031366 + .align 2, 0 +_08031344: .4byte gUnknown_203B328 +_08031348: + bl sub_80307EC + ldr r1, _0803135C + ldr r1, [r1] + strb r0, [r1, 0x4] + movs r0, 0x4 + bl sub_80310E4 + b _08031366 + .align 2, 0 +_0803135C: .4byte gUnknown_203B328 +_08031360: + movs r0, 0x6 + bl sub_80310E4 +_08031366: + pop {r0} + bx r0 + thumb_func_end sub_8031300 + + thumb_func_start sub_803136C +sub_803136C: + push {r4,lr} + sub sp, 0x4 + movs r0, 0 + str r0, [sp] + bl sub_8030768 + ldr r4, _080313A4 + ldr r0, [r4] + adds r0, 0x8 + bl sub_8012FD8 + lsls r0, 24 + cmp r0, 0 + bne _08031392 + ldr r0, [r4] + adds r0, 0x8 + mov r1, sp + bl sub_8013114 +_08031392: + ldr r0, [sp] + cmp r0, 0x4 + beq _080313C2 + cmp r0, 0x4 + bgt _080313A8 + cmp r0, 0x1 + beq _080313B2 + b _080313D0 + .align 2, 0 +_080313A4: .4byte gUnknown_203B328 +_080313A8: + cmp r0, 0x5 + beq _080313CA + cmp r0, 0x6 + beq _080313BA + b _080313D0 +_080313B2: + movs r0, 0 + bl sub_80310E4 + b _080313D0 +_080313BA: + movs r0, 0x3 + bl sub_80310E4 + b _080313D0 +_080313C2: + movs r0, 0x2 + bl sub_80310E4 + b _080313D0 +_080313CA: + movs r0, 0x4 + bl sub_80310E4 +_080313D0: + add sp, 0x4 + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_803136C + + thumb_func_start sub_80313D8 +sub_80313D8: + push {r4,r5,lr} + sub sp, 0x4 + adds r5, r0, 0 + movs r0, 0 + str r0, [sp] + bl sub_8030768 + ldr r4, _08031418 + ldr r0, [r4] + adds r0, 0x8 + bl sub_8012FD8 + ldr r0, [r4] + adds r0, 0x58 + bl sub_8012FD8 + lsls r0, 24 + cmp r0, 0 + bne _08031408 + ldr r0, [r4] + adds r0, 0x58 + mov r1, sp + bl sub_8013114 +_08031408: + ldr r0, [sp] + cmp r0, 0x2 + beq _08031428 + cmp r0, 0x2 + bgt _0803141C + cmp r0, 0x1 + beq _08031420 + b _0803148E + .align 2, 0 +_08031418: .4byte gUnknown_203B328 +_0803141C: + cmp r0, 0x3 + bne _0803148E +_08031420: + movs r0, 0 + bl sub_80310E4 + b _0803148E +_08031428: + cmp r5, 0x2 + beq _08031432 + cmp r5, 0x3 + beq _0803143C + b _0803145A +_08031432: + ldr r0, [r4] + ldrb r0, [r0, 0x4] + bl sub_8095240 + b _0803145A +_0803143C: + ldr r4, _08031480 + movs r3, 0 + movs r1, 0 + movs r2, 0x1F +_08031444: + ldr r0, [r4] + adds r0, r1 + strb r3, [r0] + ldr r0, [r4] + adds r0, r1 + adds r0, 0x22 + strb r3, [r0] + adds r1, 0x30 + subs r2, 0x1 + cmp r2, 0 + bge _08031444 +_0803145A: + ldr r0, _08031484 + ldr r0, [r0] + movs r1, 0x8C + lsls r1, 1 + adds r0, r1 + ldr r0, [r0] + cmp r0, 0x2 + beq _0803146E + cmp r0, 0x4 + bne _0803148E +_0803146E: + bl sub_8030C20 + lsls r0, 24 + cmp r0, 0 + beq _08031488 + movs r0, 0x5 + bl sub_80310E4 + b _0803148E + .align 2, 0 +_08031480: .4byte gUnknown_203B480 +_08031484: .4byte gUnknown_203B328 +_08031488: + movs r0, 0 + bl sub_80310E4 +_0803148E: + add sp, 0x4 + pop {r4,r5} + pop {r0} + bx r0 + thumb_func_end sub_80313D8 + + thumb_func_start sub_8031498 +sub_8031498: + push {lr} + bl sub_8030DA0 + cmp r0, 0x1 + bls _080314B0 + cmp r0, 0x3 + bhi _080314B0 + bl sub_8030DE4 + movs r0, 0 + bl sub_80310E4 +_080314B0: + pop {r0} + bx r0 + thumb_func_end sub_8031498 + + thumb_func_start sub_80314B4 +sub_80314B4: + push {r4-r6,lr} + lsls r0, 16 + asrs r5, r0, 16 + bl ResetUnusedInputStruct + movs r0, 0 + movs r1, 0x1 + movs r2, 0x1 + bl sub_800641C + ldr r6, _08031534 + movs r0, 0x18 + movs r1, 0x8 + bl MemoryAlloc + str r0, [r6] + ldr r0, _08031538 + adds r1, r5, 0 + bl sub_808D8E0 + adds r0, r5, 0 + bl GetMonSpecies + adds r1, r0, 0 + ldr r0, _0803153C + bl strcpy + ldr r0, [r6] + movs r4, 0 + str r4, [r0, 0x8] + str r4, [r0, 0xC] + cmp r5, 0 + beq _0803151E + adds r0, r5, 0 + bl GetDialogueSpriteDataPtr + ldr r1, [r6] + str r0, [r1, 0x8] + strb r4, [r1, 0x14] + ldr r0, [r6] + strb r4, [r0, 0x15] + ldr r0, [r6] + strb r4, [r0, 0x16] + ldr r1, [r6] + movs r0, 0x2 + strh r0, [r1, 0x10] + movs r0, 0x8 + strh r0, [r1, 0x12] + ldr r0, [r1, 0x8] + cmp r0, 0 + beq _0803151E + ldr r0, [r0, 0x4] + str r0, [r1, 0xC] +_0803151E: + ldr r0, _08031534 + ldr r1, [r0] + movs r0, 0 + str r0, [r1, 0x4] + movs r0, 0x1 + bl sub_80317C0 + movs r0, 0x1 + pop {r4-r6} + pop {r1} + bx r1 + .align 2, 0 +_08031534: .4byte gUnknown_203B32C +_08031538: .4byte gUnknown_202E5D8 +_0803153C: .4byte gAvailablePokemonNames + thumb_func_end sub_80314B4 + + thumb_func_start sub_8031540 +sub_8031540: + push {lr} + ldr r0, _08031558 + ldr r0, [r0] + ldrb r0, [r0] + cmp r0, 0x9 + bhi _080315BA + lsls r0, 2 + ldr r1, _0803155C + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_08031558: .4byte gUnknown_203B32C +_0803155C: .4byte _08031560 + .align 2, 0 +_08031560: + .4byte _080315AC + .4byte _08031588 + .4byte _08031588 + .4byte _0803158E + .4byte _08031594 + .4byte _0803159A + .4byte _080315A0 + .4byte _080315A6 + .4byte _080315B0 + .4byte _080315B6 +_08031588: + bl sub_80317D8 + b _080315BA +_0803158E: + bl sub_8031848 + b _080315BA +_08031594: + bl sub_8031864 + b _080315BA +_0803159A: + bl sub_80318D0 + b _080315BA +_080315A0: + bl sub_80318EC + b _080315BA +_080315A6: + bl sub_803192C + b _080315BA +_080315AC: + movs r0, 0x3 + b _080315BC +_080315B0: + bl sub_8031948 + b _080315BA +_080315B6: + bl sub_8031988 +_080315BA: + movs r0, 0 +_080315BC: + pop {r1} + bx r1 + thumb_func_end sub_8031540 + + thumb_func_start sub_80315C0 +sub_80315C0: + push {r4,lr} + ldr r4, _080315E4 + ldr r0, [r4] + cmp r0, 0 + beq _080315DE + ldr r0, [r0, 0x8] + cmp r0, 0 + beq _080315D4 + bl CloseFile +_080315D4: + ldr r0, [r4] + bl MemoryFree + movs r0, 0 + str r0, [r4] +_080315DE: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080315E4: .4byte gUnknown_203B32C + thumb_func_end sub_80315C0 + + thumb_func_start nullsub_39 +nullsub_39: + bx lr + thumb_func_end nullsub_39 + + thumb_func_start sub_80315EC +sub_80315EC: + push {r4,r5,lr} + sub sp, 0x14 + movs r5, 0 + ldr r0, _08031618 + ldr r2, [r0] + ldr r1, [r2, 0x8] + adds r3, r0, 0 + cmp r1, 0 + beq _08031602 + adds r5, r2, 0 + adds r5, 0x8 +_08031602: + ldrb r0, [r2] + subs r0, 0x1 + cmp r0, 0x8 + bls _0803160C + b _080317B0 +_0803160C: + lsls r0, 2 + ldr r1, _0803161C + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_08031618: .4byte gUnknown_203B32C +_0803161C: .4byte _08031620 + .align 2, 0 +_08031620: + .4byte _08031700 + .4byte _08031714 + .4byte _08031728 + .4byte _08031758 + .4byte _08031780 + .4byte _08031694 + .4byte _080316A8 + .4byte _08031644 + .4byte _08031658 +_08031644: + ldr r0, _08031650 + ldr r1, [r3] + ldr r2, [r1, 0x4] + ldr r3, _08031654 + b _08031760 + .align 2, 0 +_08031650: .4byte gUnknown_80E0C4C +_08031654: .4byte gUnknown_80E0BD4 +_08031658: + ldr r0, [r3] + ldr r0, [r0, 0x4] + cmp r0, 0x10 + beq _0803167C + cmp r0, 0x10 + bgt _0803166A + cmp r0, 0xF + beq _08031674 + b _080317B0 +_0803166A: + cmp r0, 0x11 + beq _08031684 + cmp r0, 0x12 + beq _0803168C + b _080317B0 +_08031674: + ldr r0, _08031678 + b _08031790 + .align 2, 0 +_08031678: .4byte gUnknown_80E0C70 +_0803167C: + ldr r0, _08031680 + b _08031790 + .align 2, 0 +_08031680: .4byte gUnknown_80E0DD0 +_08031684: + ldr r0, _08031688 + b _08031790 + .align 2, 0 +_08031688: .4byte gUnknown_80E0ED8 +_0803168C: + ldr r0, _08031690 + b _08031790 + .align 2, 0 +_08031690: .4byte gUnknown_80E10C8 +_08031694: + ldr r0, _080316A0 + ldr r1, [r3] + ldr r2, [r1, 0x4] + ldr r3, _080316A4 + b _08031760 + .align 2, 0 +_080316A0: .4byte gUnknown_80E0C4C +_080316A4: .4byte gUnknown_80E0B3C +_080316A8: + ldr r0, [r3] + ldr r0, [r0, 0x4] + subs r0, 0xA + cmp r0, 0x4 + bls _080316B4 + b _080317B0 +_080316B4: + lsls r0, 2 + ldr r1, _080316C0 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080316C0: .4byte _080316C4 + .align 2, 0 +_080316C4: + .4byte _080316D8 + .4byte _080316E0 + .4byte _080316F0 + .4byte _080316E8 + .4byte _080316F8 +_080316D8: + ldr r0, _080316DC + b _08031790 + .align 2, 0 +_080316DC: .4byte gUnknown_80E120C +_080316E0: + ldr r0, _080316E4 + b _08031790 + .align 2, 0 +_080316E4: .4byte gUnknown_80E136C +_080316E8: + ldr r0, _080316EC + b _08031790 + .align 2, 0 +_080316EC: .4byte gUnknown_80E1420 +_080316F0: + ldr r0, _080316F4 + b _08031790 + .align 2, 0 +_080316F4: .4byte gUnknown_80E157C +_080316F8: + ldr r0, _080316FC + b _08031790 + .align 2, 0 +_080316FC: .4byte gUnknown_80E169C +_08031700: + ldr r0, _0803170C + ldr r1, [r3] + ldr r2, [r1, 0x4] + ldr r3, _08031710 + b _08031760 + .align 2, 0 +_0803170C: .4byte gUnknown_80E17C8 +_08031710: .4byte gUnknown_80E0A48 +_08031714: + ldr r0, _08031720 + ldr r1, [r3] + ldr r2, [r1, 0x4] + ldr r3, _08031724 + b _08031760 + .align 2, 0 +_08031720: .4byte gUnknown_80E183C +_08031724: .4byte gUnknown_80E0A48 +_08031728: + ldr r0, [r3] + ldr r0, [r0, 0x4] + cmp r0, 0x1 + beq _08031748 + cmp r0, 0x1 + bgt _0803173A + cmp r0, 0 + beq _08031740 + b _080317B0 +_0803173A: + cmp r0, 0x2 + beq _08031750 + b _080317B0 +_08031740: + ldr r0, _08031744 + b _08031790 + .align 2, 0 +_08031744: .4byte gUnknown_80E1868 +_08031748: + ldr r0, _0803174C + b _08031790 + .align 2, 0 +_0803174C: .4byte gUnknown_80E1A30 +_08031750: + ldr r0, _08031754 + b _08031790 + .align 2, 0 +_08031754: .4byte gUnknown_80E1AD8 +_08031758: + ldr r0, _08031778 + ldr r1, [r3] + ldr r2, [r1, 0x4] + ldr r3, _0803177C +_08031760: + movs r4, 0 + str r4, [sp] + movs r1, 0x4 + str r1, [sp, 0x4] + str r4, [sp, 0x8] + str r5, [sp, 0xC] + movs r1, 0xC + str r1, [sp, 0x10] + movs r1, 0 + bl sub_8014248 + b _080317B0 + .align 2, 0 +_08031778: .4byte gUnknown_80E0C4C +_0803177C: .4byte gUnknown_80E0ABC +_08031780: + ldr r0, [r3] + ldr r0, [r0, 0x4] + cmp r0, 0x6 + beq _0803178E + cmp r0, 0x9 + beq _080317A4 + b _080317B0 +_0803178E: + ldr r0, _0803179C +_08031790: + ldr r3, _080317A0 + movs r1, 0 + adds r2, r5, 0 + bl sub_80141B4 + b _080317B0 + .align 2, 0 +_0803179C: .4byte gUnknown_80E1B88 +_080317A0: .4byte 0x0000010d +_080317A4: + ldr r0, _080317B8 + ldr r3, _080317BC + movs r1, 0 + adds r2, r5, 0 + bl sub_80141B4 +_080317B0: + add sp, 0x14 + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080317B8: .4byte gUnknown_80E1D84 +_080317BC: .4byte 0x0000010d + thumb_func_end sub_80315EC + + thumb_func_start sub_80317C0 +sub_80317C0: + push {lr} + ldr r1, _080317D4 + ldr r1, [r1] + strb r0, [r1] + bl nullsub_39 + bl sub_80315EC + pop {r0} + bx r0 + .align 2, 0 +_080317D4: .4byte gUnknown_203B32C + thumb_func_end sub_80317C0 + + thumb_func_start sub_80317D8 +sub_80317D8: + push {lr} + sub sp, 0x4 + mov r0, sp + bl sub_80144A4 + cmp r0, 0 + bne _0803183C + ldr r2, [sp] + cmp r2, 0x5 + bhi _0803183C + lsls r0, r2, 2 + ldr r1, _080317F8 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080317F8: .4byte _080317FC + .align 2, 0 +_080317FC: + .4byte _08031830 + .4byte _08031830 + .4byte _08031830 + .4byte _0803181C + .4byte _08031814 + .4byte _08031814 +_08031814: + movs r0, 0 + bl sub_80317C0 + b _0803183C +_0803181C: + ldr r0, _0803182C + ldr r0, [r0] + str r2, [r0, 0x4] + movs r0, 0x4 + bl sub_80317C0 + b _0803183C + .align 2, 0 +_0803182C: .4byte gUnknown_203B32C +_08031830: + ldr r0, _08031844 + ldr r0, [r0] + str r2, [r0, 0x4] + movs r0, 0x3 + bl sub_80317C0 +_0803183C: + add sp, 0x4 + pop {r0} + bx r0 + .align 2, 0 +_08031844: .4byte gUnknown_203B32C + thumb_func_end sub_80317D8 + + thumb_func_start sub_8031848 +sub_8031848: + push {lr} + sub sp, 0x4 + mov r0, sp + bl sub_80144A4 + cmp r0, 0 + bne _0803185C + movs r0, 0x2 + bl sub_80317C0 +_0803185C: + add sp, 0x4 + pop {r0} + bx r0 + thumb_func_end sub_8031848 + + thumb_func_start sub_8031864 +sub_8031864: + push {lr} + sub sp, 0x4 + mov r0, sp + bl sub_80144A4 + cmp r0, 0 + bne _080318C4 + ldr r0, [sp] + subs r1, r0, 0x5 + adds r2, r0, 0 + cmp r1, 0x4 + bhi _080318C4 + lsls r0, r1, 2 + ldr r1, _08031888 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_08031888: .4byte _0803188C + .align 2, 0 +_0803188C: + .4byte _080318A0 + .4byte _080318B8 + .4byte _080318A8 + .4byte _080318B0 + .4byte _080318B8 +_080318A0: + movs r0, 0x2 + bl sub_80317C0 + b _080318C4 +_080318A8: + movs r0, 0x6 + bl sub_80317C0 + b _080318C4 +_080318B0: + movs r0, 0x8 + bl sub_80317C0 + b _080318C4 +_080318B8: + ldr r0, _080318CC + ldr r0, [r0] + str r2, [r0, 0x4] + movs r0, 0x5 + bl sub_80317C0 +_080318C4: + add sp, 0x4 + pop {r0} + bx r0 + .align 2, 0 +_080318CC: .4byte gUnknown_203B32C + thumb_func_end sub_8031864 + + thumb_func_start sub_80318D0 +sub_80318D0: + push {lr} + sub sp, 0x4 + mov r0, sp + bl sub_80144A4 + cmp r0, 0 + bne _080318E4 + movs r0, 0x4 + bl sub_80317C0 +_080318E4: + add sp, 0x4 + pop {r0} + bx r0 + thumb_func_end sub_80318D0 + + thumb_func_start sub_80318EC +sub_80318EC: + push {lr} + sub sp, 0x4 + mov r0, sp + bl sub_80144A4 + cmp r0, 0 + bne _08031920 + ldr r1, [sp] + cmp r1, 0x5 + bne _08031908 + movs r0, 0x4 + bl sub_80317C0 + b _08031920 +_08031908: + cmp r1, 0x5 + blt _08031920 + cmp r1, 0xE + bgt _08031920 + cmp r1, 0xA + blt _08031920 + ldr r0, _08031928 + ldr r0, [r0] + str r1, [r0, 0x4] + movs r0, 0x7 + bl sub_80317C0 +_08031920: + add sp, 0x4 + pop {r0} + bx r0 + .align 2, 0 +_08031928: .4byte gUnknown_203B32C + thumb_func_end sub_80318EC + + thumb_func_start sub_803192C +sub_803192C: + push {lr} + sub sp, 0x4 + mov r0, sp + bl sub_80144A4 + cmp r0, 0 + bne _08031940 + movs r0, 0x6 + bl sub_80317C0 +_08031940: + add sp, 0x4 + pop {r0} + bx r0 + thumb_func_end sub_803192C + + thumb_func_start sub_8031948 +sub_8031948: + push {lr} + sub sp, 0x4 + mov r0, sp + bl sub_80144A4 + cmp r0, 0 + bne _0803197C + ldr r1, [sp] + cmp r1, 0x5 + bne _08031964 + movs r0, 0x4 + bl sub_80317C0 + b _0803197C +_08031964: + cmp r1, 0x5 + blt _0803197C + cmp r1, 0x12 + bgt _0803197C + cmp r1, 0xF + blt _0803197C + ldr r0, _08031984 + ldr r0, [r0] + str r1, [r0, 0x4] + movs r0, 0x9 + bl sub_80317C0 +_0803197C: + add sp, 0x4 + pop {r0} + bx r0 + .align 2, 0 +_08031984: .4byte gUnknown_203B32C + thumb_func_end sub_8031948 + + thumb_func_start sub_8031988 +sub_8031988: + push {lr} + sub sp, 0x4 + mov r0, sp + bl sub_80144A4 + cmp r0, 0 + bne _0803199C + movs r0, 0x8 + bl sub_80317C0 +_0803199C: + add sp, 0x4 + pop {r0} + bx r0 + thumb_func_end sub_8031988 + + thumb_func_start sub_80319A4 +sub_80319A4: + push {r4-r6,lr} + mov r6, r8 + push {r6} + adds r4, r0, 0 + adds r5, r1, 0 + mov r8, r2 + lsls r4, 24 + lsrs r4, 24 + lsls r5, 24 + lsrs r5, 24 + ldr r6, _080319F4 + movs r0, 0x78 + movs r1, 0x8 + bl MemoryAlloc + str r0, [r6] + strb r4, [r0, 0xC] + ldr r0, [r6] + strb r5, [r0, 0xD] + ldr r0, [r6] + bl sub_801317C + ldr r1, [r6] + mov r0, r8 + str r0, [r1, 0x10] + lsls r0, 1 + add r0, r8 + lsls r0, 3 + adds r0, 0x18 + adds r0, r1, r0 + str r0, [r1, 0x14] + bl sub_8031A2C + movs r0, 0x1 + pop {r3} + mov r8, r3 + pop {r4-r6} + pop {r1} + bx r1 + .align 2, 0 +_080319F4: .4byte gUnknown_203B330 + thumb_func_end sub_80319A4 + + thumb_func_start sub_80319F8 +sub_80319F8: + push {lr} + ldr r0, _08031A18 + ldr r0, [r0] + ldr r1, [r0, 0x10] + bl sub_8012A64 + cmp r0, 0x1 + beq _08031A1C + cmp r0, 0x2 + bne _08031A26 + movs r0, 0x1 + bl PlayMenuSoundEffect + movs r0, 0x2 + b _08031A28 + .align 2, 0 +_08031A18: .4byte gUnknown_203B330 +_08031A1C: + movs r0, 0 + bl PlayMenuSoundEffect + movs r0, 0x3 + b _08031A28 +_08031A26: + movs r0, 0 +_08031A28: + pop {r1} + bx r1 + thumb_func_end sub_80319F8 + + thumb_func_start sub_8031A2C +sub_8031A2C: + push {lr} + bl sub_8031A84 + bl sub_8031AE8 + pop {r0} + bx r0 + thumb_func_end sub_8031A2C + + thumb_func_start sub_8031A3C +sub_8031A3C: + push {r4,r5,lr} + ldr r4, _08031A7C + ldr r2, [r4] + cmp r2, 0 + beq _08031A76 + ldr r0, [r2, 0x10] + lsls r1, r0, 1 + adds r1, r0 + lsls r1, 3 + adds r1, r2, r1 + adds r1, 0x18 + ldr r0, _08031A80 + ldm r0!, {r2,r3,r5} + stm r1!, {r2,r3,r5} + ldm r0!, {r2,r3,r5} + stm r1!, {r2,r3,r5} + bl ResetUnusedInputStruct + ldr r0, [r4] + adds r0, 0x18 + movs r1, 0x1 + movs r2, 0x1 + bl sub_800641C + ldr r0, [r4] + bl MemoryFree + movs r0, 0 + str r0, [r4] +_08031A76: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_08031A7C: .4byte gUnknown_203B330 +_08031A80: .4byte gUnknown_80E1EFC + thumb_func_end sub_8031A3C + + thumb_func_start sub_8031A84 +sub_8031A84: + push {r4,r5,lr} + ldr r4, _08031AE0 + ldr r0, [r4] + adds r0, 0x18 + bl sub_8006518 + ldr r1, [r4] + ldr r2, [r1, 0x10] + lsls r0, r2, 1 + adds r0, r2 + lsls r0, 3 + adds r1, r0 + adds r1, 0x18 + ldr r0, _08031AE4 + ldm r0!, {r2,r3,r5} + stm r1!, {r2,r3,r5} + ldm r0!, {r2,r3,r5} + stm r1!, {r2,r3,r5} + ldr r1, [r4] + ldrb r0, [r1, 0xC] + cmp r0, 0x2 + bne _08031AC6 + ldrb r0, [r1, 0xD] + bl sub_80969D0 + adds r1, r0, 0 + cmp r1, 0 + bne _08031ABE + movs r1, 0x1 +_08031ABE: + ldr r0, [r4] + ldr r0, [r0, 0x14] + bl sub_8012D08 +_08031AC6: + bl ResetUnusedInputStruct + ldr r0, _08031AE0 + ldr r0, [r0] + adds r0, 0x18 + movs r1, 0x1 + movs r2, 0x1 + bl sub_800641C + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_08031AE0: .4byte gUnknown_203B330 +_08031AE4: .4byte gUnknown_80E1F18 + thumb_func_end sub_8031A84 + + thumb_func_start sub_8031AE8 +sub_8031AE8: + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0xDC + ldr r7, _08031B24 + ldr r0, [r7] + ldr r0, [r0, 0x10] + bl sub_80073B8 + ldr r2, _08031B28 + ldr r0, [r7] + ldr r3, [r0, 0x10] + movs r6, 0 + str r6, [sp] + movs r0, 0xA + movs r1, 0 + bl xxx_call_draw_string + ldr r1, [r7] + ldrb r0, [r1, 0xC] + cmp r0, 0x1 + beq _08031B2C + cmp r0, 0x1 + bgt _08031B1E + b _08031CD4 +_08031B1E: + cmp r0, 0x2 + beq _08031B94 + b _08031CD4 + .align 2, 0 +_08031B24: .4byte gUnknown_203B330 +_08031B28: .4byte gUnknown_80E1F30 +_08031B2C: + add r4, sp, 0x68 + adds r0, r4, 0 + bl sub_8099394 + ldrb r0, [r4] + bl sub_8095228 + adds r5, r0, 0 + ldr r0, [r7] + ldr r3, [r0, 0x10] + movs r0, 0xA + movs r1, 0x10 + movs r2, 0x3 + bl sub_803B6B0 + ldr r1, _08031B8C + ldrb r2, [r5, 0x5] + add r0, sp, 0x4 + bl sub_800D158 + ldr r0, [r7] + ldr r3, [r0, 0x10] + str r6, [sp] + movs r0, 0x15 + movs r1, 0x10 + add r2, sp, 0x4 + bl xxx_call_draw_string + ldr r4, _08031B90 + movs r1, 0xC + ldrsh r0, [r5, r1] + bl GetMonSpecies + adds r2, r0, 0 + add r0, sp, 0x4 + adds r1, r4, 0 + bl sub_800D158 + ldr r0, [r7] + ldr r3, [r0, 0x10] + str r6, [sp] + movs r0, 0x28 + movs r1, 0x10 + add r2, sp, 0x4 + bl xxx_call_draw_string + b _08031D4E + .align 2, 0 +_08031B8C: .4byte gUnknown_80E1F3C +_08031B90: .4byte gUnknown_80E1F40 +_08031B94: + ldrb r0, [r1, 0xD] + bl sub_80969D0 + adds r1, r0, 0 + cmp r1, 0 + bne _08031BB0 + ldr r2, _08031BAC + ldr r0, [r7] + ldr r3, [r0, 0x10] + str r1, [sp] + b _08031D2C + .align 2, 0 +_08031BAC: .4byte gUnknown_80E1F54 +_08031BB0: + movs r6, 0x10 + movs r2, 0 + mov r10, r2 + mov r8, r2 + ldr r0, _08031C28 + mov r9, r0 + mov r1, sp + adds r1, 0x6C + str r1, [sp, 0xD8] +_08031BC2: + mov r2, r10 + lsls r0, r2, 24 + lsrs r0, 24 + bl sub_8096AB4 + adds r4, r0, 0 + ldr r1, [r7] + ldrb r0, [r4, 0x4] + ldrb r2, [r1, 0xD] + cmp r0, r2 + bne _08031CC2 + ldrb r0, [r4] + cmp r0, 0 + beq _08031CC2 + cmp r0, 0x5 + beq _08031CC2 + cmp r0, 0x7 + beq _08031CC2 + ldr r3, [r1, 0x10] + movs r0, 0xA + adds r1, r6, 0 + movs r2, 0x3 + bl sub_803B6B0 + ldrb r0, [r4, 0x1] + add r5, sp, 0x6C + cmp r0, 0x3 + beq _08031C16 + ldrb r2, [r4, 0x5] + ldr r0, [sp, 0xD8] + ldr r1, _08031C2C + bl sub_800D158 + ldr r0, [r7] + ldr r3, [r0, 0x10] + mov r0, r8 + str r0, [sp] + movs r0, 0x15 + adds r1, r6, 0 + ldr r2, [sp, 0xD8] + bl xxx_call_draw_string +_08031C16: + ldrb r0, [r4, 0x1] + cmp r0, 0x3 + beq _08031C58 + cmp r0, 0x3 + bgt _08031C30 + cmp r0, 0x2 + beq _08031C70 + b _08031C9C + .align 2, 0 +_08031C28: .4byte gUnknown_202DE58 +_08031C2C: .4byte gUnknown_80E1F3C +_08031C30: + cmp r0, 0x4 + bne _08031C9C + ldrb r1, [r4, 0x10] + mov r0, r9 + movs r2, 0 + bl sub_8090DC4 + adds r0, r5, 0 + ldr r1, _08031C54 + mov r2, r9 + bl sub_800D158 + ldr r0, [r7] + ldr r3, [r0, 0x10] + mov r1, r8 + str r1, [sp] + b _08031C8A + .align 2, 0 +_08031C54: .4byte gUnknown_80E1F60 +_08031C58: + ldrb r1, [r4, 0x10] + mov r0, r9 + movs r2, 0 + bl sub_8090DC4 + adds r0, r5, 0 + ldr r1, _08031C6C + mov r2, r9 + b _08031C7E + .align 2, 0 +_08031C6C: .4byte gUnknown_80E1F70 +_08031C70: + movs r1, 0xE + ldrsh r0, [r4, r1] + bl GetMonSpecies + adds r2, r0, 0 + adds r0, r5, 0 + ldr r1, _08031C98 +_08031C7E: + bl sub_800D158 + ldr r0, [r7] + ldr r3, [r0, 0x10] + mov r2, r8 + str r2, [sp] +_08031C8A: + movs r0, 0x28 + adds r1, r6, 0 + adds r2, r5, 0 + bl xxx_call_draw_string + b _08031CC0 + .align 2, 0 +_08031C98: .4byte gUnknown_80E1F80 +_08031C9C: + movs r1, 0xE + ldrsh r0, [r4, r1] + bl GetMonSpecies + adds r2, r0, 0 + adds r0, r5, 0 + ldr r1, _08031CD0 + bl sub_800D158 + ldr r0, [r7] + ldr r3, [r0, 0x10] + mov r2, r8 + str r2, [sp] + movs r0, 0x28 + adds r1, r6, 0 + adds r2, r5, 0 + bl xxx_call_draw_string +_08031CC0: + adds r6, 0xC +_08031CC2: + movs r0, 0x1 + add r10, r0 + mov r1, r10 + cmp r1, 0x7 + bgt _08031CCE + b _08031BC2 +_08031CCE: + b _08031D4E + .align 2, 0 +_08031CD0: .4byte gUnknown_80E1F40 +_08031CD4: + add r0, sp, 0xD0 + mov r4, sp + adds r4, 0xD2 + adds r1, r4, 0 + bl sub_80992E0 + lsls r0, 24 + lsrs r5, r0, 24 + cmp r5, 0 + beq _08031D04 + movs r2, 0 + ldrsh r0, [r4, r2] + bl GetCurrentMissionText + adds r2, r0, 0 + ldr r0, _08031D00 + ldr r0, [r0] + ldr r3, [r0, 0x10] + movs r0, 0 + str r0, [sp] + b _08031D2C + .align 2, 0 +_08031D00: .4byte gUnknown_203B330 +_08031D04: + add r4, sp, 0xD4 + adds r0, r4, 0 + bl sub_8099360 + lsls r0, 24 + lsrs r1, r0, 24 + cmp r1, 0 + beq _08031D3C + ldrb r0, [r4] + bl sub_80A2688 + lsls r0, 16 + asrs r0, 16 + bl sub_80975DC + adds r2, r0, 0 + ldr r0, _08031D38 + ldr r0, [r0] + ldr r3, [r0, 0x10] + str r5, [sp] +_08031D2C: + movs r0, 0xA + movs r1, 0x10 + bl xxx_call_draw_string + b _08031D4E + .align 2, 0 +_08031D38: .4byte gUnknown_203B330 +_08031D3C: + ldr r2, _08031D68 + ldr r0, _08031D6C + ldr r0, [r0] + ldr r3, [r0, 0x10] + str r1, [sp] + movs r0, 0xA + movs r1, 0x10 + bl xxx_call_draw_string +_08031D4E: + ldr r0, _08031D6C + ldr r0, [r0] + ldr r0, [r0, 0x10] + bl sub_80073E0 + add sp, 0xDC + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_08031D68: .4byte gUnknown_80E1F94 +_08031D6C: .4byte gUnknown_203B330 + thumb_func_end sub_8031AE8 + + thumb_func_start sub_8031D70 +sub_8031D70: + push {r4-r6,lr} + adds r6, r0, 0 + adds r4, r1, 0 + ldr r5, _08031DC4 + movs r0, 0x7C + movs r1, 0x8 + bl MemoryAlloc + str r0, [r5] + stm r0!, {r6} + bl sub_801317C + ldr r0, [r5] + str r4, [r0, 0x10] + lsls r1, r4, 1 + adds r1, r4 + lsls r1, 3 + adds r1, 0x18 + adds r1, r0, r1 + str r1, [r0, 0x14] + adds r0, 0x18 + bl sub_8006518 + ldr r1, [r5] + ldr r2, [r1, 0x10] + lsls r0, r2, 1 + adds r0, r2 + lsls r0, 3 + adds r1, r0 + adds r1, 0x18 + ldr r0, _08031DC8 + ldm r0!, {r2-r4} + stm r1!, {r2-r4} + ldm r0!, {r2-r4} + stm r1!, {r2-r4} + bl sub_8031E00 + movs r0, 0x1 + pop {r4-r6} + pop {r1} + bx r1 + .align 2, 0 +_08031DC4: .4byte gUnknown_203B334 +_08031DC8: .4byte gUnknown_80E1FC4 + thumb_func_end sub_8031D70 + + thumb_func_start sub_8031DCC +sub_8031DCC: + push {lr} + ldr r0, _08031DEC + ldr r1, [r0] + adds r0, r1, 0x4 + ldr r1, [r1, 0x10] + bl sub_8012A64 + cmp r0, 0x1 + beq _08031DF0 + cmp r0, 0x2 + bne _08031DFA + movs r0, 0x1 + bl PlayMenuSoundEffect + movs r0, 0x2 + b _08031DFC + .align 2, 0 +_08031DEC: .4byte gUnknown_203B334 +_08031DF0: + movs r0, 0 + bl PlayMenuSoundEffect + movs r0, 0x3 + b _08031DFC +_08031DFA: + movs r0, 0 +_08031DFC: + pop {r1} + bx r1 + thumb_func_end sub_8031DCC + + thumb_func_start sub_8031E00 +sub_8031E00: + push {lr} + bl sub_8031E58 + bl sub_8031E74 + pop {r0} + bx r0 + thumb_func_end sub_8031E00 + + thumb_func_start sub_8031E10 +sub_8031E10: + push {r4,r5,lr} + ldr r4, _08031E50 + ldr r2, [r4] + cmp r2, 0 + beq _08031E4A + ldr r0, [r2, 0x10] + lsls r1, r0, 1 + adds r1, r0 + lsls r1, 3 + adds r1, r2, r1 + adds r1, 0x18 + ldr r0, _08031E54 + ldm r0!, {r2,r3,r5} + stm r1!, {r2,r3,r5} + ldm r0!, {r2,r3,r5} + stm r1!, {r2,r3,r5} + bl ResetUnusedInputStruct + ldr r0, [r4] + adds r0, 0x18 + movs r1, 0x1 + movs r2, 0x1 + bl sub_800641C + ldr r0, [r4] + bl MemoryFree + movs r0, 0 + str r0, [r4] +_08031E4A: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_08031E50: .4byte gUnknown_203B334 +_08031E54: .4byte gUnknown_80E1FA8 + thumb_func_end sub_8031E10 + + thumb_func_start sub_8031E58 +sub_8031E58: + push {lr} + bl ResetUnusedInputStruct + ldr r0, _08031E70 + ldr r0, [r0] + adds r0, 0x18 + movs r1, 0x1 + movs r2, 0x1 + bl sub_800641C + pop {r0} + bx r0 + .align 2, 0 +_08031E70: .4byte gUnknown_203B334 + thumb_func_end sub_8031E58 + + thumb_func_start sub_8031E74 +sub_8031E74: + push {r4-r7,lr} + mov r7, r8 + push {r7} + sub sp, 0x3C + ldr r3, _08031EC0 + ldr r5, _08031EC4 + ldr r2, [r5] + ldr r1, [r2] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 4 + ldr r4, [r3] + adds r4, r0 + ldr r0, [r2, 0x10] + bl sub_80073B8 + ldr r2, _08031EC8 + ldr r0, [r5] + ldr r3, [r0, 0x10] + movs r0, 0 + str r0, [sp] + movs r0, 0x14 + movs r1, 0 + bl xxx_call_draw_string + add r0, sp, 0x4 + adds r1, r4, 0 + bl sub_803D2C0 + movs r7, 0 + mov r8, r5 +_08031EB2: + cmp r7, 0x4 + ble _08031ED0 + cmp r7, 0xC + bgt _08031ECC + movs r6, 0x6 + movs r5, 0x16 + b _08031F00 + .align 2, 0 +_08031EC0: .4byte gUnknown_203B480 +_08031EC4: .4byte gUnknown_203B334 +_08031EC8: .4byte gUnknown_80E1FDC +_08031ECC: + cmp r7, 0x11 + bgt _08031ED6 +_08031ED0: + movs r6, 0x7 + movs r5, 0x15 + b _08031F00 +_08031ED6: + cmp r7, 0x16 + ble _08031EE8 + cmp r7, 0x1E + bgt _08031EE4 + movs r6, 0x6 + movs r5, 0x25 + b _08031F00 +_08031EE4: + cmp r7, 0x23 + bgt _08031EEE +_08031EE8: + movs r6, 0x7 + movs r5, 0x24 + b _08031F00 +_08031EEE: + cmp r7, 0x28 + ble _08031EFC + cmp r7, 0x30 + bgt _08031EFC + movs r6, 0x6 + movs r5, 0x34 + b _08031F00 +_08031EFC: + movs r6, 0x7 + movs r5, 0x33 +_08031F00: + adds r0, r7, 0 + movs r1, 0x12 + bl __modsi3 + movs r1, 0xB + adds r4, r0, 0 + muls r4, r1 + adds r4, 0x6 + mov r0, sp + adds r0, r7 + adds r0, 0x4 + ldrb r2, [r0] + mov r1, r8 + ldr r0, [r1] + ldr r0, [r0, 0x10] + str r0, [sp] + adds r0, r4, 0 + adds r1, r5, 0 + adds r3, r6, 0 + bl sub_8012C60 + mov r1, r8 + ldr r0, [r1] + ldr r0, [r0, 0x10] + adds r2, r5, 0 + adds r2, 0xA + movs r1, 0x5 + str r1, [sp] + adds r1, r4, 0 + movs r3, 0xA + bl sub_80078A4 + adds r7, 0x1 + cmp r7, 0x35 + ble _08031EB2 + ldr r0, _08031F5C + ldr r0, [r0] + ldr r0, [r0, 0x10] + bl sub_80073E0 + add sp, 0x3C + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_08031F5C: .4byte gUnknown_203B334 + thumb_func_end sub_8031E74 + + thumb_func_start CreateAdventureLogScreen +CreateAdventureLogScreen: + push {r4-r6,lr} + adds r5, r0, 0 + ldr r4, _08031FD0 + movs r0, 0xA0 + movs r1, 0x8 + bl MemoryAlloc + str r0, [r4] + str r5, [r0, 0x34] + lsls r1, r5, 1 + adds r1, r5 + lsls r1, 3 + adds r1, 0x3C + adds r1, r0, r1 + str r1, [r0, 0x38] + adds r0, 0x3C + bl sub_8006518 + ldr r1, [r4] + ldr r2, [r1, 0x34] + lsls r0, r2, 1 + adds r0, r2 + lsls r0, 3 + adds r1, r0 + adds r1, 0x3C + ldr r0, _08031FD4 + ldm r0!, {r2,r3,r6} + stm r1!, {r2,r3,r6} + ldm r0!, {r2,r3,r6} + stm r1!, {r2,r3,r6} + ldr r0, [r4] + ldr r1, [r0, 0x38] + adds r0, 0x9C + str r0, [r1, 0x14] + bl ResetUnusedInputStruct + ldr r0, [r4] + adds r0, 0x3C + movs r1, 0x1 + movs r2, 0x1 + bl sub_800641C + ldr r0, [r4] + movs r1, 0x20 + movs r2, 0x8 + adds r3, r5, 0 + bl sub_8013818 + bl sub_8032084 + bl DisplayAdventureLog + movs r0, 0x1 + pop {r4-r6} + pop {r1} + bx r1 + .align 2, 0 +_08031FD0: .4byte gUnknown_203B338 +_08031FD4: .4byte gUnknown_80E2008 + thumb_func_end CreateAdventureLogScreen + + thumb_func_start HandleAdventureLogInput +HandleAdventureLogInput: + push {r4,lr} + lsls r0, 24 + cmp r0, 0 + bne _08031FF0 + ldr r0, _08031FEC + ldr r0, [r0] + bl sub_8013660 + movs r0, 0 + b _08032034 + .align 2, 0 +_08031FEC: .4byte gUnknown_203B338 +_08031FF0: + ldr r4, _0803200C + ldr r0, [r4] + bl GetKeyPress + cmp r0, 0x1 + beq _08032010 + cmp r0, 0x2 + bne _0803201A + movs r0, 0x1 + bl PlayMenuSoundEffect + movs r0, 0x2 + b _08032034 + .align 2, 0 +_0803200C: .4byte gUnknown_203B338 +_08032010: + movs r0, 0 + bl PlayMenuSoundEffect + movs r0, 0x3 + b _08032034 +_0803201A: + ldr r0, [r4] + bl sub_8013938 + lsls r0, 24 + cmp r0, 0 + bne _0803202A + movs r0, 0 + b _08032034 +_0803202A: + bl sub_8032084 + bl DisplayAdventureLog + movs r0, 0x1 +_08032034: + pop {r4} + pop {r1} + bx r1 + thumb_func_end HandleAdventureLogInput + + thumb_func_start sub_803203C +sub_803203C: + push {r4,r5,lr} + ldr r4, _0803207C + ldr r2, [r4] + cmp r2, 0 + beq _08032076 + ldr r0, [r2, 0x34] + lsls r1, r0, 1 + adds r1, r0 + lsls r1, 3 + adds r1, r2, r1 + adds r1, 0x3C + ldr r0, _08032080 + ldm r0!, {r2,r3,r5} + stm r1!, {r2,r3,r5} + ldm r0!, {r2,r3,r5} + stm r1!, {r2,r3,r5} + bl ResetUnusedInputStruct + ldr r0, [r4] + adds r0, 0x3C + movs r1, 0x1 + movs r2, 0x1 + bl sub_800641C + ldr r0, [r4] + bl MemoryFree + movs r0, 0 + str r0, [r4] +_08032076: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_0803207C: .4byte gUnknown_203B338 +_08032080: .4byte gUnknown_80E1FF0 + thumb_func_end sub_803203C + + thumb_func_start sub_8032084 +sub_8032084: + push {r4,lr} + ldr r4, _080320F4 + ldr r0, [r4] + ldrh r1, [r0, 0x20] + adds r0, 0x9C + movs r2, 0 + strb r1, [r0] + ldr r0, [r4] + ldrh r1, [r0, 0x1E] + adds r0, 0x9D + strb r1, [r0] + ldr r0, [r4] + adds r0, 0x9E + movs r1, 0xB + strb r1, [r0] + ldr r0, [r4] + adds r0, 0x9F + strb r2, [r0] + ldr r0, [r4] + movs r1, 0x1A + ldrsh r0, [r0, r1] + movs r1, 0xC + bl sub_80095E4 + adds r0, 0x2 + lsls r0, 16 + ldr r2, [r4] + ldr r3, [r2, 0x34] + lsls r1, r3, 1 + adds r1, r3 + lsls r1, 3 + adds r1, r2, r1 + adds r1, 0x4A + asrs r3, r0, 16 + lsrs r0, 16 + strh r0, [r1] + ldr r1, [r2, 0x34] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 3 + adds r2, r0 + adds r3, 0x2 + adds r2, 0x4C + strh r3, [r2] + bl ResetUnusedInputStruct + ldr r0, [r4] + adds r0, 0x3C + movs r1, 0x1 + movs r2, 0x1 + bl sub_800641C + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080320F4: .4byte gUnknown_203B338 + thumb_func_end sub_8032084 + + thumb_func_start DisplayAdventureLog +DisplayAdventureLog: + push {r4-r7,lr} + sub sp, 0x8 + ldr r5, _08032158 + ldr r0, [r5] + ldr r0, [r0, 0x34] + bl sub_8008C54 + ldr r0, [r5] + ldr r0, [r0, 0x34] + bl sub_80073B8 + ldr r0, [r5] + movs r1, 0x1E + ldrsh r4, [r0, r1] + lsls r4, 3 + adds r6, r4, 0 + adds r6, 0xA + ldr r2, _0803215C + ldr r3, [r0, 0x34] + movs r0, 0 + str r0, [sp] + adds r0, r6, 0 + movs r1, 0 + bl xxx_call_draw_string + adds r4, 0x4 + ldr r1, [r5] + adds r0, r1, 0 + adds r0, 0x9E + ldrb r0, [r0] + lsls r0, 3 + adds r6, r4, r0 + movs r0, 0x1E + ldrsh r2, [r1, r0] + adds r2, 0x1 + movs r0, 0x7 + str r0, [sp] + ldr r0, [r1, 0x34] + str r0, [sp, 0x4] + adds r0, r6, 0 + movs r1, 0 + movs r3, 0x1 + bl sub_8012BC4 + movs r7, 0 + ldr r0, [r5] + b _0803223A + .align 2, 0 +_08032158: .4byte gUnknown_203B338 +_0803215C: .4byte gUnknown_80E2020 +_08032160: + ldr r5, _08032194 + ldr r0, [r5] + movs r2, 0x1E + ldrsh r1, [r0, r2] + movs r2, 0x1C + ldrsh r0, [r0, r2] + muls r0, r1 + adds r0, r7 + lsls r0, 24 + lsrs r6, r0, 24 + adds r0, r6, 0 + bl sub_8097710 + lsls r0, 24 + lsrs r4, r0, 24 + cmp r4, 0 + beq _0803221C + subs r0, r6, 0x7 + cmp r0, 0x5 + bhi _080321EC + lsls r0, 2 + ldr r1, _08032198 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_08032194: .4byte gUnknown_203B338 +_08032198: .4byte _0803219C + .align 2, 0 +_0803219C: + .4byte _080321BA + .4byte _080321C6 + .4byte _080321D4 + .4byte _080321E0 + .4byte _080321C0 + .4byte _080321B4 +_080321B4: + bl sub_80978B8 + b _080321E4 +_080321BA: + bl sub_8097880 + b _080321E4 +_080321C0: + bl sub_8097838 + b _080321E4 +_080321C6: + bl sub_80977B8 + ldr r1, _080321D0 + b _080321EA + .align 2, 0 +_080321D0: .4byte gUnknown_202DE30 +_080321D4: + bl sub_80977F8 + ldr r1, _080321DC + b _080321EA + .align 2, 0 +_080321DC: .4byte gUnknown_202DE30 +_080321E0: + bl sub_8097870 +_080321E4: + ldr r1, _08032214 + lsls r0, 16 + asrs r0, 16 +_080321EA: + str r0, [r1] +_080321EC: + ldr r4, _08032218 + ldr r0, [r4] + adds r1, r7, 0 + bl sub_8013800 + adds r5, r0, 0 + adds r0, r6, 0 + bl GetAdventureLogLine + adds r2, r0, 0 + ldr r0, [r4] + ldr r3, [r0, 0x34] + movs r0, 0 + str r0, [sp] + movs r0, 0x8 + adds r1, r5, 0 + bl sub_8014FF0 + b _08032234 + .align 2, 0 +_08032214: .4byte gUnknown_202DE30 +_08032218: .4byte gUnknown_203B338 +_0803221C: + ldr r0, [r5] + adds r1, r7, 0 + bl sub_8013800 + adds r1, r0, 0 + ldr r2, _08032254 + ldr r0, [r5] + ldr r3, [r0, 0x34] + str r4, [sp] + movs r0, 0x8 + bl xxx_call_draw_string +_08032234: + adds r7, 0x1 + ldr r0, _08032258 + ldr r0, [r0] +_0803223A: + movs r1, 0x1A + ldrsh r0, [r0, r1] + cmp r7, r0 + blt _08032160 + ldr r0, _08032258 + ldr r0, [r0] + ldr r0, [r0, 0x34] + bl sub_80073E0 + add sp, 0x8 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_08032254: .4byte gUnknown_80E2030 +_08032258: .4byte gUnknown_203B338 + thumb_func_end DisplayAdventureLog + + .align 2,0 diff --git a/data/data_80DED44.s b/data/data_80DED44.s index b3b6612..9821fe6 100644 --- a/data/data_80DED44.s +++ b/data/data_80DED44.s @@ -2184,6 +2184,8 @@ gUnknown_80E5FCC: @ 80E5FCC gUnknown_80E6030: @ 80E6030 .incbin "baserom.gba", 0xE6030, 0x70 +@ Start of Trade Items Data + .global gUnknown_80E60A0 gUnknown_80E60A0: @ 80E60A0 .incbin "baserom.gba", 0xE60A0, 0x34 @@ -2244,8 +2246,9 @@ gUnknown_80E6314: @ 80E6314 gUnknown_80E6358: @ 80E6358 .incbin "baserom.gba", 0xE6358, 0x20 - .global gUnknown_80E6378 -gUnknown_80E6378: @ 80E6378 +@ Trade Items Link Errors + .global gTradeItemsCommunicationError +gTradeItemsCommunicationError: @ 80E6378 .incbin "baserom.gba", 0xE6378, 0x24 .global gUnknown_80E639C @@ -2264,10 +2267,12 @@ gUnknown_80E6448: @ 80E6448 gUnknown_80E64AC: @ 80E64AC .incbin "baserom.gba", 0xE64AC, 0x7C - .global gUnknown_80E6528 -gUnknown_80E6528: @ 80E6528 + .global gTradeItemsHowManyText +gTradeItemsHowManyText: @ 80E6528 .incbin "baserom.gba", 0xE6528, 0x14 +@ End of Trade Menu Data + .global gUnknown_80E653C gUnknown_80E653C: @ 80E653C .incbin "baserom.gba", 0xE653C, 0x18 diff --git a/data/data_80F4278.s b/data/data_80F4278.s index a737ad0..5265b3c 100644 --- a/data/data_80F4278.s +++ b/data/data_80F4278.s @@ -5867,6 +5867,8 @@ gPtrProtectSavedItMessage: @ 810075C .string "pksdir0\0" .align 2, 0 +@ Start of Boss Fight Dialogues? + .global gUnknown_8100768 gUnknown_8100768: @ 8100768 .byte 0x00, 0x00, 0x0C, 0x02, 0xAA, 0x01, 0x00, 0x00 @@ -5945,9 +5947,19 @@ gUnknown_8100B80: @ 8100B80 gUnknown_8100BC0: @ 8100BC0 .incbin "baserom.gba", 0x100BC0, 0xD0 +@ Skarmony Re-Fight? + .global gUnknown_8100C90 gUnknown_8100C90: @ 8100C90 - .incbin "baserom.gba", 0x100C90, 0x2C + .byte 0x00, 0x00, 0x00, 0x0D + .byte 0xFC, 0x00, 0x00, 0x00 + .4byte _08100C9C + + .global _08100C9C + _08100C9C: + .string " You again?!\n" + .asciz "Persistent pests!\0" + .align 2,0 .global gUnknown_8100CBC gUnknown_8100CBC: @ 8100CBC diff --git a/data/friend_areas.s b/data/friend_areas.s deleted file mode 100644 index b4373df..0000000 --- a/data/friend_areas.s +++ /dev/null @@ -1,295 +0,0 @@ - .section .rodata - - .global gFriendAreaSettings -gFriendAreaSettings: @ 810AA90 - @ replacing .incbin "baserom.gba", 0x0010aa90, 0x1d0 - .byte 0x00, 0x00 - .byte 0x00 - .byte 0x00 - .byte 0x00, 0x00, 0x00, 0x00 - - .byte 0x09, 0x00 - .byte 0x01 - .byte 0x00 - .byte 0x7c, 0x15, 0x00, 0x00 - - .byte 0x0a, 0x00 - .byte 0x01 - .byte 0x00 - .byte 0x94, 0x11, 0x00, 0x00 - - .byte 0x04, 0x00 - .byte 0x01 - .byte 0x00 - .byte 0x40, 0x1f, 0x00, 0x00 - - .byte 0x0c, 0x00 - .byte 0x01 - .byte 0x00 - .byte 0x7c, 0x15, 0x00, 0x00 - - .byte 0x01, 0x00 - .byte 0x03 - .byte 0x00 - .byte 0x00, 0x00, 0x00, 0x00 - - .byte 0x01, 0x00 - .byte 0x03 - .byte 0x00 - .byte 0x00, 0x00, 0x00, 0x00 - - .byte 0x05, 0x00 - .byte 0x01 - .byte 0x00 - .byte 0x88, 0x13, 0x00, 0x00 - - .byte 0x0c, 0x00 - .byte 0x00 - .byte 0x00 - .byte 0x82, 0x00, 0x00, 0x00 - - .byte 0x09, 0x00 - .byte 0x01 - .byte 0x00 - .byte 0x88, 0x13, 0x00, 0x00 - - .byte 0x06, 0x00 - .byte 0x02 - .byte 0x00 - .byte 0x00, 0x00, 0x00, 0x00 - - .byte 0x01, 0x00 - .byte 0x01 - .byte 0x00 - .byte 0x64, 0x19, 0x00, 0x00 - - .byte 0x0d, 0x00 - .byte 0x00 - .byte 0x00 - .byte 0x64, 0x00, 0x00, 0x00 - - .byte 0x0c, 0x00 - .byte 0x00 - .byte 0x00 - .byte 0x58, 0x02, 0x00, 0x00 - - .byte 0x0d, 0x00 - .byte 0x02 - .byte 0x00 - .byte 0x00, 0x00, 0x00, 0x00 - - .byte 0x0f, 0x00 - .byte 0x00 - .byte 0x00 - .byte 0xbc, 0x02, 0x00, 0x00 - - .byte 0x0a, 0x00 - .byte 0x01 - .byte 0x00 - .byte 0x88, 0x13, 0x00, 0x00 - - .byte 0x03, 0x00 - .byte 0x01 - .byte 0x00 - .byte 0x64, 0x19, 0x00, 0x00 - - .byte 0x0e, 0x00 - .byte 0x00 - .byte 0x00 - .byte 0x96, 0x00, 0x00, 0x00 - - .byte 0x0c, 0x00 - .byte 0x00 - .byte 0x00 - .byte 0x26, 0x02, 0x00, 0x00 - - .byte 0x09, 0x00 - .byte 0x00 - .byte 0x00 - .byte 0x58, 0x02, 0x00, 0x00 - - .byte 0x0f, 0x00 - .byte 0x01 - .byte 0x00 - .byte 0x88, 0x13, 0x00, 0x00 - - .byte 0x07, 0x00 - .byte 0x00 - .byte 0x00 - .byte 0xf4, 0x01, 0x00, 0x00 - - .byte 0x01, 0x00 - .byte 0x03 - .byte 0x00 - .byte 0x00, 0x00, 0x00, 0x00 - - .byte 0x06, 0x00 - .byte 0x00 - .byte 0x00 - .byte 0xf4, 0x01, 0x00, 0x00 - - .byte 0x09, 0x00 - .byte 0x01 - .byte 0x00 - .byte 0x64, 0x19, 0x00, 0x00 - - .byte 0x07, 0x00 - .byte 0x00 - .byte 0x00 - .byte 0xf4, 0x01, 0x00, 0x00 - - .byte 0x09, 0x00 - .byte 0x00 - .byte 0x00 - .byte 0xf4, 0x01, 0x00, 0x00 - - .byte 0x0a, 0x00 - .byte 0x01 - .byte 0x00 - .byte 0x7c, 0x15, 0x00, 0x00 - - .byte 0x04, 0x00 - .byte 0x01 - .byte 0x00 - .byte 0xc4, 0x09, 0x00, 0x00 - - .byte 0x04, 0x00 - .byte 0x01 - .byte 0x00 - .byte 0xac, 0x0d, 0x00, 0x00 - - .byte 0x07, 0x00 - .byte 0x00 - .byte 0x00 - .byte 0xc4, 0x09, 0x00, 0x00 - - .byte 0x06, 0x00 - .byte 0x01 - .byte 0x00 - .byte 0x34, 0x21, 0x00, 0x00 - - .byte 0x0b, 0x00 - .byte 0x01 - .byte 0x00 - .byte 0x4c, 0x1d, 0x00, 0x00 - - .byte 0x01, 0x00 - .byte 0x01 - .byte 0x00 - .byte 0x64, 0x19, 0x00, 0x00 - - .byte 0x03, 0x00 - .byte 0x02 - .byte 0x00 - .byte 0x00, 0x00, 0x00, 0x00 - - .byte 0x04, 0x00 - .byte 0x02 - .byte 0x00 - .byte 0x00, 0x00, 0x00, 0x00 - - .byte 0x0d, 0x00 - .byte 0x00 - .byte 0x00 - .byte 0x20, 0x03, 0x00, 0x00 - - .byte 0x07, 0x00 - .byte 0x00 - .byte 0x00 - .byte 0xe8, 0x03, 0x00, 0x00 - - .byte 0x0b, 0x00 - .byte 0x00 - .byte 0x00 - .byte 0xb0, 0x04, 0x00, 0x00 - - .byte 0x0b, 0x00 - .byte 0x00 - .byte 0x00 - .byte 0xe8, 0x03, 0x00, 0x00 - - .byte 0x06, 0x00 - .byte 0x00 - .byte 0x00 - .byte 0x58, 0x02, 0x00, 0x00 - - .byte 0x07, 0x00 - .byte 0x01 - .byte 0x00 - .byte 0x4c, 0x1d, 0x00, 0x00 - - .byte 0x07, 0x00 - .byte 0x01 - .byte 0x00 - .byte 0x34, 0x21, 0x00, 0x00 - - .byte 0x0e, 0x00 - .byte 0x01 - .byte 0x00 - .byte 0x7c, 0x15, 0x00, 0x00 - - .byte 0x0e, 0x00 - .byte 0x01 - .byte 0x00 - .byte 0x7c, 0x15, 0x00, 0x00 - - .byte 0x06, 0x00 - .byte 0x01 - .byte 0x00 - .byte 0x40, 0x1f, 0x00, 0x00 - - .byte 0x0d, 0x00 - .byte 0x03 - .byte 0x00 - .byte 0x00, 0x00, 0x00, 0x00 - - .byte 0x07, 0x00 - .byte 0x01 - .byte 0x00 - .byte 0x28, 0x23, 0x00, 0x00 - - .byte 0x05, 0x00 - .byte 0x01 - .byte 0x00 - .byte 0x1c, 0x25, 0x00, 0x00 - - .byte 0x01, 0x00 - .byte 0x03 - .byte 0x00 - .byte 0x00, 0x00, 0x00, 0x00 - - .byte 0x01, 0x00 - .byte 0x03 - .byte 0x00 - .byte 0x00, 0x00, 0x00, 0x00 - - .byte 0x05, 0x00 - .byte 0x00 - .byte 0x00 - .byte 0xe8, 0x03, 0x00, 0x00 - - .byte 0x03, 0x00 - .byte 0x00 - .byte 0x00 - .byte 0xe8, 0x03, 0x00, 0x00 - - .byte 0x03, 0x00 - .byte 0x03 - .byte 0x00 - .byte 0x4c, 0x1d, 0x00, 0x00 - - .byte 0x02, 0x00 - .byte 0x01 - .byte 0x00 - .byte 0x1c, 0x25, 0x00, 0x00 - - .byte 0x01, 0x00 - .byte 0x03 - .byte 0x00 - .byte 0x00, 0x00, 0x00, 0x00 - - @ Final Island - .byte 0x01, 0x00 - .byte 0x01 - .byte 0x00 - .byte 0x34, 0x21, 0x00, 0x00 diff --git a/include/code_8041D5C.h b/include/code_8041D5C.h new file mode 100644 index 0000000..e0cf614 --- /dev/null +++ b/include/code_8041D5C.h @@ -0,0 +1,23 @@ +#ifndef CODE_8041D5C_H +#define CODE_8041D5C_H + +struct subStruct_8048524 +{ + u8 fill0[0x6]; + u8 unk6; + u8 unk7; + u8 fill8[0xAC - 0x8]; + u8 unkAC; + u8 fillAD[0x112 - 0xAD]; + u8 unk112; + u8 fill113[0x13C - 0x113]; + u32 unk13C; +}; + +struct unkDungeon_8041D5C +{ + u8 padding[0x70]; + struct subStruct_8048524 *unk70; +}; + +#endif diff --git a/include/constants/friend_area.h b/include/constants/friend_area.h index 061e1ae..4692f89 100644 --- a/include/constants/friend_area.h +++ b/include/constants/friend_area.h @@ -4,6 +4,12 @@ #define NUM_FRIEND_AREAS 58 +// Unlock Condition +#define UNLOCK_SHOP_STORY 0 +#define UNLOCK_SHOP_POST_GAME 1 +#define UNLOCK_WONDER_MAIL 2 +#define UNLOCK_LEGENDARY_REQUEST 3 + #define NONE 0 #define BOUNTIFUL_SEA 1 #define TREASURE_SEA 2 @@ -11,7 +17,7 @@ #define DEEP_SEA_FLOOR 4 #define DEEP_SEA_CURRENT 5 #define SEAFLOOR_CAVE 6 -#define SHALLOW_CAVE 7 +#define SHALLOW_BEACH 7 #define MT_DEEPGREEN 8 #define MT_CLEFT 9 #define MT_MOONVIEW 10 diff --git a/include/friend_area.h b/include/friend_area.h index a1234a7..f85cb66 100644 --- a/include/friend_area.h +++ b/include/friend_area.h @@ -4,11 +4,7 @@ struct FriendAreaSettings { s16 num_pokemon; - u8 unlock_condition; - // 0 - Shop (Story) - // 1 - Shop (Story Post-game) - // 2 - Wonder Mail - // 3 - Legendary Request (unlocks when lengendary joins) + u16 unlock_condition; u32 price; }; diff --git a/include/time.h b/include/play_time.h index 936540b..faae1d0 100644 --- a/include/time.h +++ b/include/play_time.h @@ -1,5 +1,5 @@ -#ifndef TIME_H -#define TIME_H +#ifndef PLAY_TIME_H +#define PLAY_TIME_H struct PlayTimeStruct { @@ -16,5 +16,5 @@ void DeconstructPlayTime(struct PlayTimeStruct *r0, u32 *outHours, u32 *outMinut void InitializePlayTime(void); -#endif // TIME_H +#endif // PLAY_TIME_H diff --git a/include/save.h b/include/save.h index 4ea03c6..2b4c1ec 100644 --- a/include/save.h +++ b/include/save.h @@ -1,7 +1,7 @@ #ifndef SAVE_H #define SAVE_H -#include "time.h" +#include "play_time.h" #include "exclusive_pokemon.h" #include "rescue_team_info.h" diff --git a/include/trade_items_menu.h b/include/trade_items_menu.h new file mode 100644 index 0000000..73435a3 --- /dev/null +++ b/include/trade_items_menu.h @@ -0,0 +1,57 @@ +#ifndef GUARD_TRADE_ITEMS_MENU_H +#define GUARD_TRADE_ITEMS_MENU_H + +struct unkData +{ + u8 unk0[24]; +}; + +struct TradeSubStruct +{ + u8 unk0; // item id? + u8 fill3[0x3]; + u32 unk4; // number of items? +}; + + +struct TradeItemsMenu +{ + // size: 0x3A0 + u32 currMenu; + u32 unk4; + u32 itemMode; + u32 linkStatus; + u32 unk10; + u32 unk14; // item # + u32 unk18; + u32 unk1C; + u32 unk20; + u32 unk24; + u32 unk28; + struct unkData *unk2C; + u32 unk30; + u32 unk34; + u8 fill38[0x44 - 0x38]; + u32 unk44; + u8 fill8[0x134 - 0x48]; + u32 unk134; + u8 fill138[0x184 - 0x138]; + struct unkData unk184[3]; // guessing the size until I know + u8 fill188[0x1E4 - 0x1CC]; + u32 unk1E4; + u8 fill1E8[0x244 - 0x1E8]; + + // TODO These might be structs... + struct TradeSubStruct unk244; + + struct TradeSubStruct unk24C; + + struct TradeSubStruct unk254; + + u8 unk25C; + u8 unk25D; + u8 unk25E; + u8 fill25F[0x3A0 - 0x25F]; +}; + +#endif diff --git a/include/wonder_mail.h b/include/wonder_mail.h new file mode 100644 index 0000000..39cc9b2 --- /dev/null +++ b/include/wonder_mail.h @@ -0,0 +1,46 @@ +#ifndef GUARD_WONDER_MAIL_H +#define GUARD_WONDER_MAIL_H + +#include "file_system.h" + +struct WonderMailStruct_203B2C0 +{ + u32 unk0; + u32 unk4; + u8 unk8[0x36]; + u8 unk3E; + u32 unk40; + u32 linkError; + 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]; + struct OpenedFile *faceFile; + u8 *faceData; + u16 unk428; + u16 unk42A; + u8 unk42C; + u8 unk42D; + u8 unk42E; + u8 padding3[0x534 - 0x430]; + u32 unk534; + s32 unk538; // A7 << 3 + u32 unk53C; + u32 unk540; // A8 << 4 + s16 unk544; + +}; + +void sub_8028B04(u32 r0); + + +#endif diff --git a/ld_script.txt b/ld_script.txt index 5dc23b5..2390b0c 100755 --- a/ld_script.txt +++ b/ld_script.txt @@ -89,9 +89,11 @@ SECTIONS { asm/code_801D760.o(.text); src/code_8027C84_pre.o(.text); asm/code_8027C84.o(.text); + src/wonder_mail_pre.o(.text); + asm/wonder_mail.o(.text); src/wonder_mail.o(.text); src/wonder_mail_mid.o(.text); - asm/wonder_mail.o(.text); + asm/wonder_mail_1.o(.text); src/friend_rescue.o(.text); asm/friend_rescue.o(.text); src/friend_rescue_1.o(.text); @@ -101,6 +103,11 @@ SECTIONS { asm/main_menu.o(.text); src/main_menu_mid.o(.text); asm/main_menu_1.o(.text); + src/trade_items_menu.o(.text); + asm/other_menus.o(.text); + asm/rescue_password_menu.o(.text); + asm/load_screen.o(.text); + src/main_menu_1.o(.text); src/wonder_mail_main_menu_pre.o(.text); asm/wonder_mail_main_menu.o(.text); src/wonder_mail_main_menu.o(.text); @@ -140,6 +147,7 @@ SECTIONS { asm/friend_area_1.o(.text); src/friend_area_1.o(.text); asm/code_8092334.o(.text); + src/play_time.o(.text); src/code_8094F88.o(.text); asm/code_8095014.o(.text); src/code_809747C.o(.text); @@ -233,7 +241,7 @@ SECTIONS { data/personality_test.o(.rodata); src/personality_test.o(.rodata); data/data_80F4278.o(.rodata); - data/friend_areas.o(.rodata); + src/friend_area.o(.rodata); data/data_810AC60.o(.rodata); src/exclusive_pokemon.o(.rodata); src/rescue_team_info.o(.rodata); diff --git a/src/code_2.c b/src/code_2.c index 3cc18e9..94f3632 100644 --- a/src/code_2.c +++ b/src/code_2.c @@ -6,7 +6,7 @@ #include "input.h" #include "memory.h" #include "music.h" -#include "time.h" +#include "play_time.h" #include "save.h" extern void NDS_DebugInit(void); diff --git a/src/code_80118A4.c b/src/code_80118A4.c index a427dea..39cc12b 100644 --- a/src/code_80118A4.c +++ b/src/code_80118A4.c @@ -3,7 +3,7 @@ #include "global.h" #include "music.h" #include "constants/bg_music.h" -#include "time.h" +#include "play_time.h" #include "bg.h" #include "input.h" #include "config.h" diff --git a/src/code_8040094.c b/src/code_8040094.c index 691f2df..bd3c104 100644 --- a/src/code_8040094.c +++ b/src/code_8040094.c @@ -1,5 +1,5 @@ #include "global.h" -#include "time.h" +#include "play_time.h" #include "file_system.h" struct unkStruct_203B418 diff --git a/src/code_8041AD0.c b/src/code_8041AD0.c index 9358ddb..f90ca13 100644 --- a/src/code_8041AD0.c +++ b/src/code_8041AD0.c @@ -1,10 +1,5 @@ #include "global.h" - -struct unkDungeon_8041D5C -{ - u8 padding[0x70]; - u8 *unk70[100]; -}; +#include "code_8041D5C.h" struct unk_struct_8041F08 { @@ -295,13 +290,11 @@ void nullsub_81(void) void sub_8041D5C(struct unkDungeon_8041D5C *r0) { - u8 *temp; if(sub_8042768(r0) == 0) { return; } - temp = *r0->unk70; - sub_803ED30(temp[0x89 << 1] , r0, 1, 0xB); + sub_803ED30(r0->unk70->unk112 , r0, 1, 0xB); } void sub_8041D84(struct unkDungeon_8041D5C * r0) @@ -687,9 +680,7 @@ void sub_8042208(struct unkDungeon_8041D5C *r0, u8 r1) void sub_8042238(u32 r0, struct unkDungeon_8041D5C *r1) { - u8 *temp; - temp = *r1->unk70; - if(temp[6] != 0) + if(r1->unk70->unk6 != 0) sub_8083E38(0x157); else sub_8083E38(0xAB << 1); diff --git a/src/code_80428A0.c b/src/code_80428A0.c index 6c7d48d..1596c4b 100644 --- a/src/code_80428A0.c +++ b/src/code_80428A0.c @@ -1,10 +1,5 @@ #include "global.h" - -struct unkDungeon_8041D5C -{ - u8 padding[0x70]; - u8 *unk70[100]; -}; +#include "code_8041D5C.h" extern void sub_804151C(struct unkDungeon_8041D5C *r0, u32 r1, u8 r2); diff --git a/src/code_8048480.c b/src/code_8048480.c index 880bf05..64bf949 100644 --- a/src/code_8048480.c +++ b/src/code_8048480.c @@ -1,13 +1,8 @@ #include "global.h" - -struct unkDungeon_8041D5C -{ - u8 padding[0x70]; - u8 *unk70[100]; -}; +#include "code_8041D5C.h" extern u32 gUnknown_80F89F4; -extern u32 gAvailablePokemonNames; +extern u8 gAvailablePokemonNames[0x58]; extern u32 gUnknown_80FB580; extern s16 gUnknown_80F4FB6; extern s16 gUnknown_80F4FB8; @@ -22,7 +17,7 @@ extern void sub_8072008(u32 r0, struct unkDungeon_8041D5C *r1, u32 r2, u8 r3, u3 extern void sub_8076D10(u32 r0, struct unkDungeon_8041D5C *r1); extern void sub_807232C(u32 r0, struct unkDungeon_8041D5C *r1, u32 r2); -extern void sub_8045B94(u32 *r0, struct unkDungeon_8041D5C *r1, u32); +extern void sub_8045B94(u8 *r0, struct unkDungeon_8041D5C *r1, u32); extern void sub_807A290(u32, struct unkDungeon_8041D5C *r1); extern void sub_80522F4(u32 r0, struct unkDungeon_8041D5C *r1, u32); extern void sub_8079270(u32 r0, struct unkDungeon_8041D5C *r1); @@ -32,19 +27,11 @@ extern void sub_8079140(u32, struct unkDungeon_8041D5C *r1); extern void sub_8077C44(u32, struct unkDungeon_8041D5C *r1, s16, s16, u32); extern void sub_80792F8(u32, struct unkDungeon_8041D5C *r1, u32); extern void sub_8079F20(u32, struct unkDungeon_8041D5C *r1, u32, u8); -extern void sub_806F370(u32, struct unkDungeon_8041D5C *r1, u32, u32); +extern void sub_806F370(u32, struct unkDungeon_8041D5C *r1, u32, u32, u32, u32, u32, u32, u32, u32); void sub_8048340(u32 r0, struct unkDungeon_8041D5C *r1, u32 r2) { - u32 temp[6]; - - temp[0] = 0; - temp[1] = 0; - temp[2] = 528; - temp[3] = 0; - temp[4] = 0; - temp[5] = 0; - sub_806F370(r0, r1, r2, 1); + sub_806F370(r0, r1, r2, 1, 0, 0, 528, 0, 0, 0); } void sub_8048364(u32 r0, struct unkDungeon_8041D5C *r1, u8 r2) @@ -63,7 +50,6 @@ void sub_804839C(u32 r0, struct unkDungeon_8041D5C *r1) sub_8077C44(r0, r1, gUnknown_80F4FBA, gUnknown_80F4FBC, 1); } - void sub_80483C4(u32 r0, struct unkDungeon_8041D5C *r1) { sub_80792F8(r0, r1, 999); @@ -96,26 +82,20 @@ void sub_804841C(u32 r0, struct unkDungeon_8041D5C *r1) void sub_8048428(u32 r0, struct unkDungeon_8041D5C *r1) { - u8 *temp; - temp = r1->unk70[0]; - if(temp[0xAC] == 4) - { + if(r1->unk70->unkAC == 4) sub_807A290(r0, r1); - return; - } - sub_80522F4(r0, r1, gUnknown_80F89F4); + else + // Pointer to "But nothing happened!" + sub_80522F4(r0, r1, gUnknown_80F89F4); } void sub_8048450(u32 r0, struct unkDungeon_8041D5C *r1) { - u8 *temp; - temp = r1->unk70[0]; - if((u8)(temp[0xAC] - 2) <= 1) - { + if((u8)(r1->unk70->unkAC - 2) <= 1) sub_807A290(r0, r1); - return; - } - sub_80522F4(r0, r1, gUnknown_80F89F4); + else + // Pointer to "But nothing happened!" + sub_80522F4(r0, r1, gUnknown_80F89F4); } void sub_8048480(u32 r0, struct unkDungeon_8041D5C *r1) @@ -145,6 +125,7 @@ void sub_80484BC(u32 r0, struct unkDungeon_8041D5C *r1) void sub_80484C8(u32 r0, struct unkDungeon_8041D5C *r1) { + // Pointer to "But nothing happened!" sub_80522F4(r0, r1, gUnknown_80F89F4); } @@ -155,13 +136,12 @@ void sub_80484DC(u32 r0, struct unkDungeon_8041D5C *r1) void sub_80484E8(u32 r0, struct unkDungeon_8041D5C *r1) { - u8 *temp; - temp = r1->unk70[0]; - if(temp[0xAC] == 1) - { + if(r1->unk70->unkAC == 1) sub_807A290(r0, r1); - return; + else + { + sub_8045B94(gAvailablePokemonNames, r1, 0); + // Pointer to "But nothing happened!" + sub_80522F4(r0, r1, gUnknown_80FB580); } - sub_8045B94(&gAvailablePokemonNames, r1, 0); - sub_80522F4(r0, r1, gUnknown_80FB580); } diff --git a/src/code_8094F88.c b/src/code_8094F88.c index d3ed115..5bd3a29 100644 --- a/src/code_8094F88.c +++ b/src/code_8094F88.c @@ -1,134 +1,160 @@ #include "global.h" -#include "time.h" +#include "memory.h" -extern struct PlayTimeStruct *gPlayTimeRef; -extern struct PlayTimeStruct gPlayTime; +struct unkStruct_203B480 +{ + //size of 48 + u8 unk0; + u8 fill1[0x22 - 1]; + u8 unk22; + u8 fill23[0x2D - 0x23]; + u8 unk2D; +}; + +struct unkStruct_203B48C +{ + s32 unk0; + s32 unk4[0x20]; +}; -extern u8 gUnknown_2038C88; +extern struct unkStruct_203B480 gUnknown_2038C88; extern u8 gUnknown_2039288; extern u32 gUnknown_20392E8; -extern u32 gUnknown_20393C0; -extern u8 *gUnknown_203B480; +extern struct unkStruct_203B48C gUnknown_20393C0; extern u8 *gUnknown_203B484; extern u32 *gUnknown_203B488; -extern u32 *gUnknown_203B48C; -extern void sub_809488C(u8 *r0, u8 *r1, u32); -extern void sub_8094924(u8 *r0, u8 *r1, u32); +extern struct unkStruct_203B480 *gUnknown_203B480; +extern struct unkStruct_203B48C *gUnknown_203B48C; // def a pointer -void InitializePlayTime(void) -{ - gPlayTimeRef = &gPlayTime; - ResetPlayTime(&gPlayTime); -} -struct PlayTimeStruct *GetPlayTime(void) +void sub_80950BC(void) { - return &gPlayTime; + gUnknown_203B480 = &gUnknown_2038C88; + gUnknown_203B484 = &gUnknown_2039288; + gUnknown_203B488 = &gUnknown_20392E8; + gUnknown_203B48C = &gUnknown_20393C0; } -void ResetPlayTime(struct PlayTimeStruct *Time) +struct unkStruct_203B480 *sub_80950F8(void) { - Time->frames = 0; - Time->seconds = 0; - Time->minutes = 0; - Time->hours = 0; + return &gUnknown_2038C88; } -void IncrementPlayTime(struct PlayTimeStruct *Time) +u8 *sub_8095100(void) { - u16 temp_store16; - - Time->frames++; - if(Time->frames <= 59) - return; - Time->frames = 0; - - Time->seconds++; - if(Time->seconds <= 59) - return; - Time->seconds = 0; - - Time->minutes++; - if(Time->minutes <= 59) - return; - Time->minutes = 0; - - // Casting here for unsigned comparison - temp_store16 = Time->hours; - if(Time->hours <= 9998) - { - temp_store16++; - Time->hours = temp_store16; - } - else - { - Time->seconds = 59; - Time->minutes = 59; - Time->hours= 9999; - } + return &gUnknown_2039288; } -void DeconstructPlayTime(struct PlayTimeStruct *r0, u32 *outHours, u32 *outMinutes, u32 *outSeconds) +u32 *sub_8095108(void) { - if(r0->hours <= 9999) - { - *outHours = r0->hours; - *outMinutes = r0->minutes; - *outSeconds = r0->seconds; - } - else - { - *outHours = 9999; - *outMinutes = 59; - *outSeconds = 59; - } + return &gUnknown_20392E8; } -void sub_8095044(u8 *r0) +struct unkStruct_203B48C *sub_8095110(void) { - sub_809488C(r0, (&(gPlayTimeRef->frames)), 6); - sub_809488C(r0, (&(gPlayTimeRef->seconds)), 6); - sub_809488C(r0, (&(gPlayTimeRef->minutes)), 6); - sub_809488C(r0, (u8 *)(&(gPlayTimeRef->hours)), 14); + return &gUnknown_20393C0; } -void sub_8095080(u8 *r0) -{ - sub_8094924(r0, (&(gPlayTimeRef->frames)), 6); - sub_8094924(r0, (&(gPlayTimeRef->seconds)), 6); - sub_8094924(r0, (&(gPlayTimeRef->minutes)), 6); - sub_8094924(r0, (u8 *)(&(gPlayTimeRef->hours)), 14); -} -void sub_80950BC(void) +#ifdef NONMATCHING +void sub_8095118(void) { - gUnknown_203B480 = &gUnknown_2038C88; - gUnknown_203B484 = &gUnknown_2039288; - gUnknown_203B488 = &gUnknown_20392E8; - gUnknown_203B48C = &gUnknown_20393C0; + int iVar1; + + MemoryFill8((u8*)gUnknown_203B480,0,0x600); + MemoryFill8(gUnknown_203B484,0,0x5c); + for(iVar1 = 0; iVar1 < 0x20; iVar1++){ + // NOTE: when it adds the index regs flip + // Instead of add r0, r0, r1 -> add r0, r1, r0 + // Everything else matches... + gUnknown_203B480[iVar1].unk0 = 0; + gUnknown_203B480[iVar1].unk22 = 0; + gUnknown_203B480[iVar1].unk2D = 0; + } + gUnknown_203B48C->unk0 = 0; + for(iVar1 = 0; iVar1 < 0x20; iVar1++){ + gUnknown_203B48C->unk4[iVar1] = -1; + } } - -u8 *sub_80950F8(void) +#else +NAKED +void sub_8095118(void) { - return &gUnknown_2038C88; + asm_unified("\tpush {r4,lr}\n" + "\tldr r4, _0809517C\n" + "\tldr r0, [r4]\n" + "\tmovs r2, 0xC0\n" + "\tlsls r2, 3\n" + "\tmovs r1, 0\n" + "\tbl MemoryFill8\n" + "\tldr r0, _08095180\n" + "\tldr r0, [r0]\n" + "\tmovs r1, 0\n" + "\tmovs r2, 0x5C\n" + "\tbl MemoryFill8\n" + "\tmovs r2, 0\n" + "\tmovs r1, 0\n" + "\tmovs r3, 0x1F\n" +"_0809513A:\n" + "\tldr r0, [r4]\n" + "\tadds r0, r1\n" + "\tstrb r2, [r0]\n" + "\tldr r0, [r4]\n" + "\tadds r0, r1\n" + "\tadds r0, 0x22\n" + "\tstrb r2, [r0]\n" + "\tldr r0, [r4]\n" + "\tadds r0, r1\n" + "\tadds r0, 0x2D\n" + "\tstrb r2, [r0]\n" + "\tadds r1, 0x30\n" + "\tsubs r3, 0x1\n" + "\tcmp r3, 0\n" + "\tbge _0809513A\n" + "\tldr r2, _08095184\n" + "\tldr r1, [r2]\n" + "\tmovs r0, 0\n" + "\tstr r0, [r1]\n" + "\tmovs r3, 0\n" + "\tmovs r4, 0x1\n" + "\tnegs r4, r4\n" +"_08095166:\n" + "\tldr r0, [r2]\n" + "\tlsls r1, r3, 2\n" + "\tadds r0, 0x4\n" + "\tadds r0, r1\n" + "\tstr r4, [r0]\n" + "\tadds r3, 0x1\n" + "\tcmp r3, 0x1F\n" + "\tble _08095166\n" + "\tpop {r4}\n" + "\tpop {r0}\n" + "\tbx r0\n" + "\t.align 2, 0\n" +"_0809517C: .4byte gUnknown_203B480\n" +"_08095180: .4byte gUnknown_203B484\n" +"_08095184: .4byte gUnknown_203B48C"); } +#endif -u8 *sub_8095100(void) +void nullsub_206(void) { - return &gUnknown_2039288; } -u32 *sub_8095108(void) +void nullsub_207(void) { - return &gUnknown_20392E8; } -u32 *sub_8095110(void) +s32 sub_8095190(void) { - return &gUnknown_20393C0; + int index; + + for(index = 2; index < 0x20; index++){ + if(gUnknown_203B480[index].unk0 == 0) + return index; + } + return -1; } - - diff --git a/src/code_8098BDC.c b/src/code_8098BDC.c index 66bb85a..f4a745f 100644 --- a/src/code_8098BDC.c +++ b/src/code_8098BDC.c @@ -1,5 +1,5 @@ #include "global.h" -#include "time.h" +#include "play_time.h" #include "input.h" extern struct PlayTimeStruct *gPlayTimeRef; diff --git a/src/friend_area.c b/src/friend_area.c index 4288720..5180eba 100644 --- a/src/friend_area.c +++ b/src/friend_area.c @@ -6,8 +6,6 @@ extern bool8 gBoughtFriendAreas[NUM_FRIEND_AREAS]; extern bool8 *gFriendAreas; -extern struct FriendAreaSettings gFriendAreaSettings[NUM_FRIEND_AREAS]; - struct unkStruct_203B45C { // size: 0x58? @@ -30,300 +28,299 @@ extern const char gUnknown_81098AC; extern void sub_800D158(u8 *buffer, const char *r2, ...); extern void sub_8090FEC(u32, u32 *r1, u32); - -//const struct FriendAreaSettings gFriendAreaSettings[NUM_FRIEND_AREAS] = -//{ -// [NONE] = { -// .num_pokemon = 0, -// .unlock_condition = 0, -// .price = 0, -// }, -// [BOUNTIFUL_SEA] = { -// .num_pokemon = 9, -// .unlock_condition = 1, -// .price = 5500, -// }, -// [TREASURE_SEA] = { -// .num_pokemon = 10, -// .unlock_condition = 1, -// .price = 4500, -// }, -// [SERENE_SEA] = { -// .num_pokemon = 4, -// .unlock_condition = 1, -// .price = 8000, -// }, -// [DEEP_SEA_FLOOR] = { -// .num_pokemon = 12, -// .unlock_condition = 1, -// .price = 5500, -// }, -// [DEEP_SEA_CURRENT] = { -// .num_pokemon = 1, -// .unlock_condition = 3, -// .price = 0, -// }, -// [SEAFLOOR_CAVE] = { -// .num_pokemon = 0, -// .unlock_condition = 0, -// .price = 0, -// }, -// [SHALLOW_CAVE] = { -// .num_pokemon = 5, -// .unlock_condition = 1, -// .price = 5000, -// }, -// [MT_DEEPGREEN] = { -// .num_pokemon = 12, -// .unlock_condition = 0, -// .price = 130, -// }, -// [MT_CLEFT] = { -// .num_pokemon = 9, -// .unlock_condition = 1, -// .price = 5000, -// }, -// [MT_MOONVIEW] = { -// .num_pokemon = 6, -// .unlock_condition = 2, -// .price = 0, -// }, -// [RAINBOW_PEAK] = { -// .num_pokemon = 1, -// .unlock_condition = 1, -// .price = 6500, -// }, -// [WILD_PLAINS] = { -// .num_pokemon = 13, -// .unlock_condition = 0, -// .price = 100, -// }, -// [BEAU_PLAINS] = { -// .num_pokemon = 12, -// .unlock_condition = 0, -// .price = 600, -// }, -// [SKY_BLUE_PLAINS] = { -// .num_pokemon = 13, -// .unlock_condition = 2, -// .price = 0, -// }, -// [SAFARI] = { -// .num_pokemon = 15, -// .unlock_condition = 0, -// .price = 700, -// }, -// [SCORCHED_PLAINS] = { -// .num_pokemon = 10, -// .unlock_condition = 1, -// .price = 5000, -// }, -// [SACRED_FIELD] = { -// .num_pokemon = 3, -// .unlock_condition = 1, -// .price = 6500 -// }, -// [MIST_RISE_FOREST] = { -// .num_pokemon = 14, -// .unlock_condition = 0, -// .price = 150 -// }, -// [FLYAWAY_FOREST] = { -// .num_pokemon = 12, -// .unlock_condition = 0, -// .price = 550 -// }, -// [OVERGROWN_FOREST] = { -// .num_pokemon = 9, -// .unlock_condition = 0, -// .price = 600 -// }, -// [ENERGETIC_FOREST] = { -// .num_pokemon = 15, -// .unlock_condition = 1, -// .price = 5000 -// }, -// [MUSHROOM_FOREST] = { -// .num_pokemon = 7, -// .unlock_condition = 0, -// .price = 500 -// }, -// [HEALING_FOREST] = { -// .num_pokemon = 1, -// .unlock_condition = 3, -// .price = 0 -// }, -// [TRANSFORM_FOREST] = { -// .num_pokemon = 6, -// .unlock_condition = 0, -// .price = 500 -// }, -// [SECRETIVE_FOREST] = { -// .num_pokemon = 9, -// .unlock_condition = 1, -// .price = 6500 -// }, -// [RUB_A_DUB_RIVER] = { -// .num_pokemon = 7, -// .unlock_condition = 0, -// .price = 500 -// }, -// [TADPOLE_POND] = { -// .num_pokemon = 9, -// .unlock_condition = 0, -// .price = 500 -// }, -// [TURTLESHELL_POND] = { -// .num_pokemon = 10, -// .unlock_condition = 1, -// .price = 5500 -// }, -// [MYSTIC_LAKE] = { -// .num_pokemon = 4, -// .unlock_condition = 1, -// .price = 2500 -// }, -// [WATERFALL_LAKE] = { -// .num_pokemon = 4, -// .unlock_condition = 1, -// .price = 3500 -// }, -// [PEANUT_SWAMP] = { -// .num_pokemon = 7, -// .unlock_condition = 0, -// .price = 2500 -// }, -// [POISON_SWAMP] = { -// .num_pokemon = 6, -// .unlock_condition = 1, -// .price = 8500 -// }, -// [ECHO_CAVE] = { -// .num_pokemon = 11, -// .unlock_condition = 1, -// .price = 7500 -// }, -// [CRYPTIC_CAVE] = { -// .num_pokemon = 1, -// .unlock_condition = 1, -// .price = 6500 -// }, -// [DRAGON_CAVE] = { -// .num_pokemon = 3, -// .unlock_condition = 2, -// .price = 0 -// }, -// [BOULDER_CAVE] = { -// .num_pokemon = 4, -// .unlock_condition = 2, -// .price = 0 -// }, -// [JUNGLE] = { -// .num_pokemon = 13, -// .unlock_condition = 0, -// .price = 800 -// }, -// [DECRPEPIT_LAB] = { -// .num_pokemon = 7, -// .unlock_condition = 0, -// .price = 1000 -// }, -// [MT_DISCIPLINE] = { -// .num_pokemon = 11, -// .unlock_condition = 0, -// .price = 1200 -// }, -// [THUNDER_MEADOW] = { -// .num_pokemon = 11, -// .unlock_condition = 0, -// .price = 1000 -// }, -// [POWER_PLANT] = { -// .num_pokemon = 6, -// .unlock_condition = 0, -// .price = 600 -// }, -// [CRATER] = { -// .num_pokemon = 7, -// .unlock_condition = 1, -// .price = 7500 -// }, -// [FURNACE_DESERT] = { -// .num_pokemon = 7, -// .unlock_condition = 1, -// .price = 8500 -// }, -// [AGED_CHAMBER_AN] = { -// .num_pokemon = 14, -// .unlock_condition = 1, -// .price = 5500 -// }, -// [AGED_CHAMBER_O_EXCLAIM] = { -// .num_pokemon = 14, -// .unlock_condition = 1, -// .price = 5500 -// }, -// [ANCIENT_RELIC] = { -// .num_pokemon = 6, -// .unlock_condition = 1, -// .price = 8000 -// }, -// [DARKNESS_RIDGE] = { -// .num_pokemon = 13, -// .unlock_condition = 3, -// .price = 0 -// }, -// [FRIGID_CAVERN] = { -// .num_pokemon = 7, -// .unlock_condition = 1, -// .price = 9000 -// }, -// [ICE_FLOE_BEACH] = { -// .num_pokemon = 5, -// .unlock_condition = 1, -// .price = 9500 -// }, -// [VOLCANIC_PIT] = { -// .num_pokemon = 1, -// .unlock_condition = 3, -// .price = 0 -// }, -// [STRATOS_LOOKOUT] = { -// .num_pokemon = 1, -// .unlock_condition = 3, -// .price = 0 -// }, -// [RAVAGED_FIELD] = { -// .num_pokemon = 5, -// .unlock_condition = 0, -// .price = 1000 -// }, -// [MAGNETIC_QUARRY] = { -// .num_pokemon = 3, -// .unlock_condition = 0, -// .price = 1000 -// }, -// [LEGENDARY_ISLAND] = { -// .num_pokemon = 3, -// .unlock_condition = 3, -// .price = 7500 -// }, -// [SOUTHERN_ISLAND] = { -// .num_pokemon = 2, -// .unlock_condition = 1, -// .price = 9500 -// }, -// [ENCLOSED_ISLAND] = { -// .num_pokemon = 1, -// .unlock_condition = 3, -// .price = 0 -// }, -// [FINAL_ISLAND] = { -// .num_pokemon = 1, -// .unlock_condition = 1, -// .price = 8500 -// }, -//}; +const struct FriendAreaSettings gFriendAreaSettings[NUM_FRIEND_AREAS] = +{ + [NONE] = { + .num_pokemon = 0, + .unlock_condition = UNLOCK_SHOP_STORY, + .price = 0, + }, + [BOUNTIFUL_SEA] = { + .num_pokemon = 9, + .unlock_condition = UNLOCK_SHOP_POST_GAME, + .price = 5500, + }, + [TREASURE_SEA] = { + .num_pokemon = 10, + .unlock_condition = UNLOCK_SHOP_POST_GAME, + .price = 4500, + }, + [SERENE_SEA] = { + .num_pokemon = 4, + .unlock_condition = UNLOCK_SHOP_POST_GAME, + .price = 8000, + }, + [DEEP_SEA_FLOOR] = { + .num_pokemon = 12, + .unlock_condition = UNLOCK_SHOP_POST_GAME, + .price = 5500, + }, + [DEEP_SEA_CURRENT] = { + .num_pokemon = 1, + .unlock_condition = UNLOCK_LEGENDARY_REQUEST, + .price = 0, + }, + [SEAFLOOR_CAVE] = { + .num_pokemon = 1, + .unlock_condition = UNLOCK_LEGENDARY_REQUEST, + .price = 0, + }, + [SHALLOW_BEACH] = { + .num_pokemon = 5, + .unlock_condition = UNLOCK_SHOP_POST_GAME, + .price = 5000, + }, + [MT_DEEPGREEN] = { + .num_pokemon = 12, + .unlock_condition = UNLOCK_SHOP_STORY, + .price = 130, + }, + [MT_CLEFT] = { + .num_pokemon = 9, + .unlock_condition = UNLOCK_SHOP_POST_GAME, + .price = 5000, + }, + [MT_MOONVIEW] = { + .num_pokemon = 6, + .unlock_condition = UNLOCK_WONDER_MAIL, + .price = 0, + }, + [RAINBOW_PEAK] = { + .num_pokemon = 1, + .unlock_condition = UNLOCK_SHOP_POST_GAME, + .price = 6500, + }, + [WILD_PLAINS] = { + .num_pokemon = 13, + .unlock_condition = UNLOCK_SHOP_STORY, + .price = 100, + }, + [BEAU_PLAINS] = { + .num_pokemon = 12, + .unlock_condition = UNLOCK_SHOP_STORY, + .price = 600, + }, + [SKY_BLUE_PLAINS] = { + .num_pokemon = 13, + .unlock_condition = UNLOCK_WONDER_MAIL, + .price = 0, + }, + [SAFARI] = { + .num_pokemon = 15, + .unlock_condition = UNLOCK_SHOP_STORY, + .price = 700, + }, + [SCORCHED_PLAINS] = { + .num_pokemon = 10, + .unlock_condition = UNLOCK_SHOP_POST_GAME, + .price = 5000, + }, + [SACRED_FIELD] = { + .num_pokemon = 3, + .unlock_condition = UNLOCK_SHOP_POST_GAME, + .price = 6500 + }, + [MIST_RISE_FOREST] = { + .num_pokemon = 14, + .unlock_condition = UNLOCK_SHOP_STORY, + .price = 150 + }, + [FLYAWAY_FOREST] = { + .num_pokemon = 12, + .unlock_condition = UNLOCK_SHOP_STORY, + .price = 550 + }, + [OVERGROWN_FOREST] = { + .num_pokemon = 9, + .unlock_condition = UNLOCK_SHOP_STORY, + .price = 600 + }, + [ENERGETIC_FOREST] = { + .num_pokemon = 15, + .unlock_condition = UNLOCK_SHOP_POST_GAME, + .price = 5000 + }, + [MUSHROOM_FOREST] = { + .num_pokemon = 7, + .unlock_condition = UNLOCK_SHOP_STORY, + .price = 500 + }, + [HEALING_FOREST] = { + .num_pokemon = 1, + .unlock_condition = UNLOCK_LEGENDARY_REQUEST, + .price = 0 + }, + [TRANSFORM_FOREST] = { + .num_pokemon = 6, + .unlock_condition = UNLOCK_SHOP_STORY, + .price = 500 + }, + [SECRETIVE_FOREST] = { + .num_pokemon = 9, + .unlock_condition = UNLOCK_SHOP_POST_GAME, + .price = 6500 + }, + [RUB_A_DUB_RIVER] = { + .num_pokemon = 7, + .unlock_condition = UNLOCK_SHOP_STORY, + .price = 500 + }, + [TADPOLE_POND] = { + .num_pokemon = 9, + .unlock_condition = UNLOCK_SHOP_STORY, + .price = 500 + }, + [TURTLESHELL_POND] = { + .num_pokemon = 10, + .unlock_condition = UNLOCK_SHOP_POST_GAME, + .price = 5500 + }, + [MYSTIC_LAKE] = { + .num_pokemon = 4, + .unlock_condition = UNLOCK_SHOP_POST_GAME, + .price = 2500 + }, + [WATERFALL_LAKE] = { + .num_pokemon = 4, + .unlock_condition = UNLOCK_SHOP_POST_GAME, + .price = 3500 + }, + [PEANUT_SWAMP] = { + .num_pokemon = 7, + .unlock_condition = UNLOCK_SHOP_STORY, + .price = 2500 + }, + [POISON_SWAMP] = { + .num_pokemon = 6, + .unlock_condition = UNLOCK_SHOP_POST_GAME, + .price = 8500 + }, + [ECHO_CAVE] = { + .num_pokemon = 11, + .unlock_condition = UNLOCK_SHOP_POST_GAME, + .price = 7500 + }, + [CRYPTIC_CAVE] = { + .num_pokemon = 1, + .unlock_condition = UNLOCK_SHOP_POST_GAME, + .price = 6500 + }, + [DRAGON_CAVE] = { + .num_pokemon = 3, + .unlock_condition = UNLOCK_WONDER_MAIL, + .price = 0 + }, + [BOULDER_CAVE] = { + .num_pokemon = 4, + .unlock_condition = UNLOCK_WONDER_MAIL, + .price = 0 + }, + [JUNGLE] = { + .num_pokemon = 13, + .unlock_condition = UNLOCK_SHOP_STORY, + .price = 800 + }, + [DECRPEPIT_LAB] = { + .num_pokemon = 7, + .unlock_condition = UNLOCK_SHOP_STORY, + .price = 1000 + }, + [MT_DISCIPLINE] = { + .num_pokemon = 11, + .unlock_condition = UNLOCK_SHOP_STORY, + .price = 1200 + }, + [THUNDER_MEADOW] = { + .num_pokemon = 11, + .unlock_condition = UNLOCK_SHOP_STORY, + .price = 1000 + }, + [POWER_PLANT] = { + .num_pokemon = 6, + .unlock_condition = UNLOCK_SHOP_STORY, + .price = 600 + }, + [CRATER] = { + .num_pokemon = 7, + .unlock_condition = UNLOCK_SHOP_POST_GAME, + .price = 7500 + }, + [FURNACE_DESERT] = { + .num_pokemon = 7, + .unlock_condition = UNLOCK_SHOP_POST_GAME, + .price = 8500 + }, + [AGED_CHAMBER_AN] = { + .num_pokemon = 14, + .unlock_condition = UNLOCK_SHOP_POST_GAME, + .price = 5500 + }, + [AGED_CHAMBER_O_EXCLAIM] = { + .num_pokemon = 14, + .unlock_condition = UNLOCK_SHOP_POST_GAME, + .price = 5500 + }, + [ANCIENT_RELIC] = { + .num_pokemon = 6, + .unlock_condition = UNLOCK_SHOP_POST_GAME, + .price = 8000 + }, + [DARKNESS_RIDGE] = { + .num_pokemon = 13, + .unlock_condition = UNLOCK_LEGENDARY_REQUEST, + .price = 0 + }, + [FRIGID_CAVERN] = { + .num_pokemon = 7, + .unlock_condition = UNLOCK_SHOP_POST_GAME, + .price = 9000 + }, + [ICE_FLOE_BEACH] = { + .num_pokemon = 5, + .unlock_condition = UNLOCK_SHOP_POST_GAME, + .price = 9500 + }, + [VOLCANIC_PIT] = { + .num_pokemon = 1, + .unlock_condition = UNLOCK_LEGENDARY_REQUEST, + .price = 0 + }, + [STRATOS_LOOKOUT] = { + .num_pokemon = 1, + .unlock_condition = UNLOCK_LEGENDARY_REQUEST, + .price = 0 + }, + [RAVAGED_FIELD] = { + .num_pokemon = 5, + .unlock_condition = UNLOCK_SHOP_STORY, + .price = 1000 + }, + [MAGNETIC_QUARRY] = { + .num_pokemon = 3, + .unlock_condition = UNLOCK_SHOP_STORY, + .price = 1000 + }, + [LEGENDARY_ISLAND] = { + .num_pokemon = 3, + .unlock_condition = UNLOCK_LEGENDARY_REQUEST, + .price = 7500 + }, + [SOUTHERN_ISLAND] = { + .num_pokemon = 2, + .unlock_condition = UNLOCK_SHOP_POST_GAME, + .price = 9500 + }, + [ENCLOSED_ISLAND] = { + .num_pokemon = 1, + .unlock_condition = UNLOCK_LEGENDARY_REQUEST, + .price = 0 + }, + [FINAL_ISLAND] = { + .num_pokemon = 1, + .unlock_condition = UNLOCK_SHOP_POST_GAME, + .price = 8500 + }, +}; void LoadFriendAreas(void) { diff --git a/src/main_menu.c b/src/main_menu.c index 71db487..3c0840a 100644 --- a/src/main_menu.c +++ b/src/main_menu.c @@ -16,7 +16,7 @@ // Deletes the Save -extern struct MainMenu *gUnknown_203B348; +extern struct MainMenu *gMainMenu; extern void* MemoryAlloc(u32 a, u32 b); extern void MemoryFill8(u8 *dest, u8 value, s32 size); void sub_8035DA0(void); @@ -63,34 +63,34 @@ extern void sub_8038604(void); void InitMainMenu(void) { - if (gUnknown_203B348 == NULL) { - gUnknown_203B348 = MemoryAlloc(sizeof(struct MainMenu),8); - MemoryFill8((u8 *)gUnknown_203B348, 0, sizeof(struct MainMenu)); + if (gMainMenu == NULL) { + gMainMenu = MemoryAlloc(sizeof(struct MainMenu),8); + MemoryFill8((u8 *)gMainMenu, 0, sizeof(struct MainMenu)); } - gUnknown_203B348->currMenu = 0xffdc; - gUnknown_203B348->nextMenu = MENU_MAIN_SCREEN; - gUnknown_203B348->lastMenu = MENU_MAIN_SCREEN; - gUnknown_203B348->unk38 = -1; - gUnknown_203B348->unk3C = -1; - gUnknown_203B348->sub.unk2E = 0; - gUnknown_203B348->sub.unk2C = 1; - gUnknown_203B348->sub.unk2D = 0; + gMainMenu->currMenu = 0xffdc; + gMainMenu->nextMenu = MENU_MAIN_SCREEN; + gMainMenu->lastMenu = MENU_MAIN_SCREEN; + gMainMenu->unk38 = -1; + gMainMenu->unk3C = -1; + gMainMenu->sub.unk2E = 0; + gMainMenu->sub.unk2C = 1; + gMainMenu->sub.unk2D = 0; sub_8035DA0(); - gUnknown_203B348->unk3A = 0; + gMainMenu->unk3A = 0; } void DeleteMainMenu(void) { - if(gUnknown_203B348){ - MemoryFree(gUnknown_203B348); - gUnknown_203B348 = NULL; + if(gMainMenu){ + MemoryFree(gMainMenu); + gMainMenu = NULL; } } void SetUpMenu(void) { - if (gUnknown_203B348->currMenu != gUnknown_203B348->nextMenu) { - switch(gUnknown_203B348->nextMenu) { + if (gMainMenu->currMenu != gMainMenu->nextMenu) { + switch(gMainMenu->nextMenu) { case MENU_MAIN_SCREEN: sub_8094C14(); sub_8099690(0); @@ -100,14 +100,14 @@ void SetUpMenu(void) case MENU_CONTINUE: case MENU_DELETE_SAVE_PROMPT: case 9: - CreateLoadScreen(gUnknown_203B348->nextMenu); + CreateLoadScreen(gMainMenu->nextMenu); break; case MENU_TRADE_ITEMS: CreateTradeItemsMenu(); break; case MENU_COMMUNICATION_1: case MENU_COMMUNICATION_2: - sub_8036FDC(sub_8035DB4(gUnknown_203B348->nextMenu)); + sub_8036FDC(sub_8035DB4(gMainMenu->nextMenu)); break; case MENU_FRIEND_RESCUE: CreateFriendRescueMenu(); @@ -123,7 +123,7 @@ void SetUpMenu(void) break; case MENU_DISPLAY_RESCUE_PASSWORD: case MENU_RESCUE_PASSWORD_ENTRY: - CreateRescuePasswordMenu(gUnknown_203B348->nextMenu); + CreateRescuePasswordMenu(gMainMenu->nextMenu); break; case MENU_ADVENTURE_LOG: CreateAdventureLogMenu(); @@ -134,13 +134,13 @@ void SetUpMenu(void) case 0x2c: case 0x2d: case 0x2e: - sub_803850C(gUnknown_203B348->nextMenu); + sub_803850C(gMainMenu->nextMenu); break; case MENU_DEBUG: CreateDebugMenu(); break; } - gUnknown_203B348->currMenu = gUnknown_203B348->nextMenu; + gMainMenu->currMenu = gMainMenu->nextMenu; } } @@ -150,7 +150,7 @@ s32 UpdateMenu(void) s32 nextMenu; nextMenu = MENU_NO_SCREEN_CHANGE; - switch(gUnknown_203B348->nextMenu) { + switch(gMainMenu->nextMenu) { case MENU_MAIN_SCREEN: nextMenu = UpdateMainMenu(); break; @@ -222,15 +222,15 @@ s32 UpdateMenu(void) break; } if (nextMenu != MENU_NO_SCREEN_CHANGE) { - gUnknown_203B348->nextMenu = nextMenu; + gMainMenu->nextMenu = nextMenu; } return nextMenu; } void CleanUpMenu(void) { - if (gUnknown_203B348->lastMenu != gUnknown_203B348->nextMenu) { - switch(gUnknown_203B348->lastMenu) { + if (gMainMenu->lastMenu != gMainMenu->nextMenu) { + switch(gMainMenu->lastMenu) { case MENU_MAIN_SCREEN: CleanMainMenu(); break; @@ -285,25 +285,25 @@ void CleanUpMenu(void) DeleteDebugMenu(); break; } - gUnknown_203B348->lastMenu = gUnknown_203B348->nextMenu; + gMainMenu->lastMenu = gMainMenu->nextMenu; } } // Unused void sub_8035C00(struct MainMenuSub *param) { - gUnknown_203B348->sub = *param; + gMainMenu->sub = *param; } // Unused struct MainMenuSub *sub_8035C10(void) { - return &gUnknown_203B348->sub; + return &gMainMenu->sub; } void sub_8035C1C(void) { - gUnknown_203B348->sub.unk2E = 0; - gUnknown_203B348->sub.unk2C = 1; - gUnknown_203B348->sub.unk2D = 0; + gMainMenu->sub.unk2E = 0; + gMainMenu->sub.unk2C = 1; + gMainMenu->sub.unk2D = 0; } diff --git a/src/main_menu_1.c b/src/main_menu_1.c new file mode 100644 index 0000000..d79a420 --- /dev/null +++ b/src/main_menu_1.c @@ -0,0 +1,22 @@ +#include "global.h" + +s32 sub_8011FA8(void); +s32 sub_8095324(u32); +s32 sub_8011C1C(void); + +bool8 sub_8039844(void) +{ + int iVar1; + bool8 return_var; + + iVar1 = sub_8011FA8(); + return_var = 0; + if (sub_8095324(1) != 0 || sub_8095324(7) != 0) + { + if (iVar1 == 0xf1207) + return_var = 1; + } + else if (sub_8011C1C() == 2 && iVar1 == 0xf1207) + return_var = 1; + return return_var; +} diff --git a/src/main_menu_mid.c b/src/main_menu_mid.c index ebe2abb..d606e4d 100644 --- a/src/main_menu_mid.c +++ b/src/main_menu_mid.c @@ -8,14 +8,14 @@ struct unkData }; -extern struct MainMenu *gUnknown_203B348; +extern struct MainMenu *gMainMenu; extern struct unkData gUnknown_80E59A8; -extern void sub_8006518(); +extern void sub_8006518(struct unkData *); extern void sub_800641C(struct unkData *, u32, u32); void sub_8035CC0(struct unkData *dataArray, u32 index) { - sub_8006518(); + sub_8006518(dataArray); dataArray[index] = gUnknown_80E59A8; ResetUnusedInputStruct(); sub_800641C(dataArray, 1, 1); @@ -46,35 +46,35 @@ void sub_8035CF4(void * Menu, u32 index, u8 r2) void sub_8035D1C(void) { - gUnknown_203B348->unk38 = -1; + gMainMenu->unk38 = -1; } void sub_8035D30(s32 r0) { - gUnknown_203B348->unk38 = r0; + gMainMenu->unk38 = r0; } s16 sub_8035D3C(void) { - return gUnknown_203B348->unk38; + return gMainMenu->unk38; } s32 *sub_8035D4C(void) { - return &gUnknown_203B348->currMenu; + return &gMainMenu->currMenu; } void sub_8035D58(void) { - gUnknown_203B348->unk3C = -1; + gMainMenu->unk3C = -1; } void sub_8035D68(s32 r0) { - gUnknown_203B348->unk3C = r0; + gMainMenu->unk3C = r0; } s32 sub_8035D74(void) { - return gUnknown_203B348->unk3C; + return gMainMenu->unk3C; } diff --git a/src/play_time.c b/src/play_time.c new file mode 100644 index 0000000..37af5fe --- /dev/null +++ b/src/play_time.c @@ -0,0 +1,93 @@ +#include "global.h" +#include "play_time.h" + +extern struct PlayTimeStruct *gPlayTimeRef; +extern struct PlayTimeStruct gPlayTime; + +extern void sub_809488C(u8 *r0, u8 *r1, u32); +extern void sub_8094924(u8 *r0, u8 *r1, u32); + +void InitializePlayTime(void) +{ + gPlayTimeRef = &gPlayTime; + ResetPlayTime(&gPlayTime); +} + +struct PlayTimeStruct *GetPlayTime(void) +{ + return &gPlayTime; +} + +void ResetPlayTime(struct PlayTimeStruct *Time) +{ + Time->frames = 0; + Time->seconds = 0; + Time->minutes = 0; + Time->hours = 0; +} + +void IncrementPlayTime(struct PlayTimeStruct *Time) +{ + u16 temp_store16; + + Time->frames++; + if(Time->frames <= 59) + return; + Time->frames = 0; + + Time->seconds++; + if(Time->seconds <= 59) + return; + Time->seconds = 0; + + Time->minutes++; + if(Time->minutes <= 59) + return; + Time->minutes = 0; + + // Casting here for unsigned comparison + temp_store16 = Time->hours; + if(Time->hours <= 9998) + { + temp_store16++; + Time->hours = temp_store16; + } + else + { + Time->seconds = 59; + Time->minutes = 59; + Time->hours= 9999; + } +} + +void DeconstructPlayTime(struct PlayTimeStruct *r0, u32 *outHours, u32 *outMinutes, u32 *outSeconds) +{ + if(r0->hours <= 9999) + { + *outHours = r0->hours; + *outMinutes = r0->minutes; + *outSeconds = r0->seconds; + } + else + { + *outHours = 9999; + *outMinutes = 59; + *outSeconds = 59; + } +} + +void sub_8095044(u8 *r0) +{ + sub_809488C(r0, (&(gPlayTimeRef->frames)), 6); + sub_809488C(r0, (&(gPlayTimeRef->seconds)), 6); + sub_809488C(r0, (&(gPlayTimeRef->minutes)), 6); + sub_809488C(r0, (u8 *)(&(gPlayTimeRef->hours)), 14); +} + +void sub_8095080(u8 *r0) +{ + sub_8094924(r0, (&(gPlayTimeRef->frames)), 6); + sub_8094924(r0, (&(gPlayTimeRef->seconds)), 6); + sub_8094924(r0, (&(gPlayTimeRef->minutes)), 6); + sub_8094924(r0, (u8 *)(&(gPlayTimeRef->hours)), 14); +} diff --git a/src/trade_items_menu.c b/src/trade_items_menu.c new file mode 100644 index 0000000..2582931 --- /dev/null +++ b/src/trade_items_menu.c @@ -0,0 +1,1120 @@ +#include "global.h" +#include "input.h" +#include "trade_items_menu.h" + +extern struct TradeItemsMenu *gTradeItemsMenu; + +struct unkStruct_203B460 +{ + u8 unk0[0x50]; + u16 unk50[10]; +}; + + +extern struct unkStruct_203B460 *gUnknown_203B460; // TODO unify this +extern u32 gUnknown_202DE30; +extern u32 gUnknown_202DE58; +extern struct unkData gUnknown_80E6174; + +// Trade Items Menu Link Error Messages +extern u32 gTradeItemsCommunicationError; +extern u32 gUnknown_80E639C; +extern u32 gUnknown_80E63F8; +extern u32 gUnknown_80E6448; +extern u32 gUnknown_80E64AC; +extern u32 gTradeItemsHowManyText; +extern u32 gUnknown_80E60A0; +extern u32 gUnknown_80E60D4; +extern u32 gUnknown_80E61A4; +extern u32 gUnknown_80E61C0; +extern u32 gUnknown_80E60EC; +extern u32 gUnknown_80E6104; +extern u32 gUnknown_80E6154; +extern u32 gUnknown_80E61E4; + +extern u32 gUnknown_80E6214; +extern u32 gUnknown_80E618C; +extern u32 gUnknown_80E6268; +extern u32 gUnknown_80E62C4; +extern u32 gUnknown_80E6358; +extern u32 gUnknown_80E6314; + +extern void sub_8013AA0(u32 *); + +extern void *MemoryAlloc(u32, u32); +extern void MemoryFill8(u8 *, u32, u32); +extern void MemoryFree(void *); +extern void sub_800641C(u32 *, u32, u32); +extern void sub_8035C1C(); +extern void sub_8035DA0(); +extern s32 sub_80144A4(s32 *); +extern u32 sub_801CA08(u32); +extern void sub_801CBB8(); +extern u8 sub_801CB24(); +extern void sub_8006518(u32 *); +extern void sub_801B3C0(u8 *); +extern u8 sub_8012FD8(u32 *); +extern void sub_8013114(u32 *, s32 *); +extern void sub_8035CC0(struct unkData *, u32); +extern void sub_801CCD8(); +extern u32 sub_801B410(); +extern void sub_801B450(); +extern void sub_801CB5C(u32); +extern void sub_8035CF4(u32 *, u32, u32); +extern u32 sub_8013BBC(u32 *); +void sub_8036F30(); +extern void sub_80369D0(); +extern void sub_8012574(u32); +extern void sub_80141B4(u32 *, u32, u32, u32); + +extern void sub_8012574(u32); +extern u8 sub_8012600(void); +extern void sub_8012750(); + +extern void sub_8008C54(u32); +extern void sub_80073B8(u32); +extern void sub_8013C68(u32 *); +extern void sub_80073E0(u32); +extern void xxx_call_draw_string(u32, u32, u32 *, u32, u32); +extern u8 sub_801CF14(u32); +extern u32 sub_801D008(); +extern void sub_8090DC4(u32 *, u8, u32); +extern void sub_801C8C4(u32, u32, s32 *, u32); + + + + +void SetTradeItemMenu(u32); +void PrintTradeItemsLinkError(u32); +void sub_803652C(); +void sub_8036590(); +void sub_80365AC(); +void sub_8036674(); +void sub_8036788(); +void sub_8036728(); +extern void sub_8036830(); +void sub_803689C(); +void sub_80368D4(); +void sub_8036934(); +void sub_8036950(); +void sub_8036AA4(); +void sub_80369FC(); +void sub_8036A18(); +void sub_8036A34(); +void sub_8036A7C(); +void sub_8036A54(); +void sub_8036ADC(); + +// 11 was another saving too? +enum TradeItemsScreens +{ + TRADE_ITEMS_MAIN_MENU, + TRADE_ITEMS_SEND_ITEM, + TRADE_ITEMS_SEND_ITEM_SELECTION, + TRADE_ITEMS_SEND_ITEM_POPUP_MENU, + TRADE_ITEMS_SEND_ITEM_NUMBER, + TRADE_ITEMS_ITEM_INFO, + TRADE_ITEMS_SEND_ITEM_CONFIRM, + TRADE_ITEMS_RECEIVE_ITEM, + TRADE_ITEMS_IN_COMMUNICATION = 9, + TRADE_ITEMS_PREPARE_TRADE_SAVING = 15, + TRADE_ITEMS_EXIT = 18, +}; + +enum TradeItemsModes +{ + TRADE_ITEMS_SEND_ITEM_MODE, + TRADE_ITEMS_RECEIVE_ITEM_MODE +}; + + +u32 CreateTradeItemsMenu(void) +{ + + ResetUnusedInputStruct(); + sub_800641C(0,1,1); + gTradeItemsMenu = MemoryAlloc(sizeof(struct TradeItemsMenu), 8); + MemoryFill8((u8 *)gTradeItemsMenu, 0, sizeof(struct TradeItemsMenu)); + sub_8035C1C(); + sub_8035DA0(); + gTradeItemsMenu->unk4 = 0x13; + SetTradeItemMenu(TRADE_ITEMS_MAIN_MENU); + return 1; +} + +u32 UpdateTradeItemsMenu(void) +{ + + switch(gTradeItemsMenu->currMenu) { + case TRADE_ITEMS_MAIN_MENU: + sub_803652C(); + break; + case TRADE_ITEMS_SEND_ITEM: + sub_8036590(); + break; + case TRADE_ITEMS_SEND_ITEM_SELECTION: + sub_80365AC(); + break; + case TRADE_ITEMS_SEND_ITEM_POPUP_MENU: + sub_8036674(); + break; + case TRADE_ITEMS_ITEM_INFO: + sub_8036728(); + break; + case TRADE_ITEMS_SEND_ITEM_NUMBER: + sub_8036788(); + break; + case TRADE_ITEMS_SEND_ITEM_CONFIRM: + sub_8036830(); + break; + case TRADE_ITEMS_RECEIVE_ITEM: + sub_803689C(); + break; + case 8: + sub_80368D4(); + break; + case TRADE_ITEMS_PREPARE_TRADE_SAVING: + sub_8036A7C(); + break; + case TRADE_ITEMS_IN_COMMUNICATION: + sub_8036934(); + break; + case 10: + sub_8036950(); + break; + case 0xb: + sub_8036AA4(); + break; + case 0xc: + sub_80369FC(); + break; + case 0xe: + sub_8036A34(); + break; + case 0x10: + sub_8036A54(); + break; + case 0xd: + sub_8036A18(); + break; + case 0x11: + sub_8036ADC(); + break; + case TRADE_ITEMS_EXIT: // when you exit the menu to Main + return 3; + } + return 0; +} + +void sub_803652C(void) +{ + s32 menuAction; + + if (sub_80144A4(&menuAction) == 0) { + switch(menuAction) + { + case 1: + // Send Item + gTradeItemsMenu->itemMode = TRADE_ITEMS_SEND_ITEM_MODE; + gTradeItemsMenu->unk10 = 1; + SetTradeItemMenu(TRADE_ITEMS_SEND_ITEM); + break; + case 2: + // Receive Item + gTradeItemsMenu->itemMode = TRADE_ITEMS_RECEIVE_ITEM_MODE; + gTradeItemsMenu->unk10 = 2; + SetTradeItemMenu(TRADE_ITEMS_RECEIVE_ITEM); + break; + case 0: + case 7: + // Cancel + SetTradeItemMenu(TRADE_ITEMS_EXIT); + } + } +} + +void sub_8036590(void) +{ + s32 iVar1; + + if (sub_80144A4(&iVar1) == 0) + SetTradeItemMenu(TRADE_ITEMS_SEND_ITEM_SELECTION); +} + +void sub_80365AC(void) +{ + gTradeItemsMenu->unk25E = 0; + gTradeItemsMenu->unk25D = 1; + gTradeItemsMenu->unk25C = 0; + switch(sub_801CA08(1)){ + case 2: + // Cancel + sub_801CBB8(); + SetTradeItemMenu(TRADE_ITEMS_MAIN_MENU); + break; + case 3: + // Pop up menu with Confirm, Info, Cancel + gTradeItemsMenu->unk25E = sub_801CB24(); + gTradeItemsMenu->unk25D = 1; + SetTradeItemMenu(TRADE_ITEMS_SEND_ITEM_POPUP_MENU); + break; + case 4: + gTradeItemsMenu->unk4 = 2; + gTradeItemsMenu->unk25E = sub_801CB24(); + gTradeItemsMenu->unk25D = 1; + sub_8006518(&gTradeItemsMenu->unk1E4); + ResetUnusedInputStruct(); + sub_800641C(0,1,1); + sub_801B3C0(&gTradeItemsMenu->unk25C); + SetTradeItemMenu(TRADE_ITEMS_ITEM_INFO); + break; + } +} + +void sub_8036674(void) +{ + int menuAction; + + menuAction = -1; + sub_801CA08(0); + if (sub_8012FD8(&gTradeItemsMenu->unk134) == '\0') { + sub_8013114(&gTradeItemsMenu->unk134, &menuAction); + } + switch(menuAction){ + case 3: // confirm + SetTradeItemMenu(TRADE_ITEMS_SEND_ITEM_NUMBER); + break; + case 4: // Info + gTradeItemsMenu->unk4 = 0x13; + sub_8006518(&gTradeItemsMenu->unk1E4); + ResetUnusedInputStruct(); + sub_800641C(0,1,1); + sub_801B3C0(&gTradeItemsMenu->unk25C); + SetTradeItemMenu(TRADE_ITEMS_ITEM_INFO); + break; + case 7: + case 0: + // Cancel + sub_8035CC0(gTradeItemsMenu->unk184, 3); + sub_801CCD8(); + SetTradeItemMenu(TRADE_ITEMS_SEND_ITEM_SELECTION); + break; + } +} + +void sub_8036728(void) +{ + switch(sub_801B410()) + { + case 2: + case 3: + sub_801B450(); + ResetUnusedInputStruct(); + sub_800641C(&gTradeItemsMenu->unk1E4, 1, 1); + sub_801CB5C(1); + if (gTradeItemsMenu->unk4 == 0x13) { + sub_8035CF4(&gTradeItemsMenu->unk44, 3, 1); + SetTradeItemMenu(TRADE_ITEMS_SEND_ITEM_POPUP_MENU); + } + else { + SetTradeItemMenu(gTradeItemsMenu->unk4); + } + default: + case 1: + break; + } +} + +void sub_8036788(void) +{ + sub_8012FD8(&gTradeItemsMenu->unk134); + sub_801CA08(0); + switch(sub_8013BBC(&gTradeItemsMenu->unk14)){ + case 1: + // When you change the # + sub_801CCD8(); + sub_8035CF4(&gTradeItemsMenu->unk44, 3, 0); + sub_8036F30(); + break; + case 2: + // If you back out of the # selection + sub_8035CC0(gTradeItemsMenu->unk184, 2); + sub_801CCD8(); + sub_8035CF4(&gTradeItemsMenu->unk44, 3, 1); + SetTradeItemMenu(TRADE_ITEMS_SEND_ITEM_POPUP_MENU); + break; + case 3: + // Confirm # of item + gTradeItemsMenu->unk25D = gTradeItemsMenu->unk14; + gTradeItemsMenu->unk254.unk0 = gTradeItemsMenu->unk25E; + gTradeItemsMenu->unk254.unk4 = gTradeItemsMenu->unk14; + sub_801CBB8(); + SetTradeItemMenu(TRADE_ITEMS_SEND_ITEM_CONFIRM); + break; + case 0: + break; + } +} + +void sub_8036830(void) +{ + int menuAction; + u16 load; + + if (sub_80144A4(&menuAction) == 0) + { + switch(menuAction){ + case 5: + sub_801CBB8(); + // Used temp var to get correct statements + load = gUnknown_203B460->unk50[gTradeItemsMenu->unk25E]; + load -= gTradeItemsMenu->unk14; + gUnknown_203B460->unk50[gTradeItemsMenu->unk25E] = load; + SetTradeItemMenu(TRADE_ITEMS_PREPARE_TRADE_SAVING); + sub_8012574(0); + break; + case 6: + case 0: + SetTradeItemMenu(TRADE_ITEMS_MAIN_MENU); + break; + } + } +} + +void sub_803689C(void) +{ + int menuAction; + + if (sub_80144A4(&menuAction) == 0) { + switch(menuAction){ + case 5: + SetTradeItemMenu(TRADE_ITEMS_IN_COMMUNICATION); + break; + case 7: + case 0: + SetTradeItemMenu(TRADE_ITEMS_EXIT); + break; + } + } +} + +void sub_80368D4(void) +{ + int menuAction; + + if (sub_80144A4(&menuAction) == 0) { + switch(menuAction){ + case 5: + SetTradeItemMenu(TRADE_ITEMS_IN_COMMUNICATION); + break; + case 7: + case 0: + if ((gTradeItemsMenu->unk254.unk0 != 0) && (gTradeItemsMenu->unk254.unk4 != 0)) + { + sub_80369D0(); + SetTradeItemMenu(0x11); + sub_8012574(0); + } + break; + } + } +} + +void sub_8036934(void) +{ + s32 iVar1; + + if (sub_80144A4(&iVar1) == 0) { + SetTradeItemMenu(10); + } +} + +void sub_8036950(void) +{ + s32 iVar1; + + if (sub_80144A4(&iVar1) == 0) { + if (gTradeItemsMenu->linkStatus == 0) { + switch(gTradeItemsMenu->itemMode){ + case TRADE_ITEMS_SEND_ITEM_MODE: + SetTradeItemMenu(0xd); + break; + case TRADE_ITEMS_RECEIVE_ITEM_MODE: + SetTradeItemMenu(0xe); + break; + default: + break; + } + } + else { + if (((gTradeItemsMenu->itemMode == TRADE_ITEMS_SEND_ITEM_MODE) && (gTradeItemsMenu->unk254.unk0 != 0)) + && (gTradeItemsMenu->unk254.unk4 != 0)) { + // Link Failure + sub_80369D0(); // Add back the item + SetTradeItemMenu(0xb); + sub_8012574(0); + } + else { + PrintTradeItemsLinkError(gTradeItemsMenu->linkStatus); + SetTradeItemMenu(0xc); + } + } + } +} + +void sub_80369D0(void) +{ + // Use temp var to get correct statements + u16 load; + load = gUnknown_203B460->unk50[gTradeItemsMenu->unk254.unk0]; + load += gTradeItemsMenu->unk254.unk4; + gUnknown_203B460->unk50[gTradeItemsMenu->unk254.unk0] = load; +} + +void sub_80369FC(void) +{ + s32 temp; + if(sub_80144A4(&temp) == 0) + { + SetTradeItemMenu(TRADE_ITEMS_MAIN_MENU); + } +} + + +void sub_8036A18(void) +{ + s32 temp; + if(sub_80144A4(&temp) == 0) + { + SetTradeItemMenu(TRADE_ITEMS_EXIT); + } +} + +void sub_8036A34(void) +{ + s32 temp; + if(sub_80144A4(&temp) == 0) + { + SetTradeItemMenu(0x10); + sub_8012574(0); + } +} + +void sub_8036A54(void) +{ + s32 temp; + if(sub_80144A4(&temp) == 0) + { + if(sub_8012600() == 0) + { + sub_8012750(); + SetTradeItemMenu(TRADE_ITEMS_EXIT); + } + } +} + +void sub_8036A7C(void) +{ + s32 temp; + if(sub_80144A4(&temp) == 0) + { + if(sub_8012600() == 0) + { + sub_8012750(); // cleans up from Save Message + SetTradeItemMenu(0x8); + } + } +} + +void sub_8036AA4(void) +{ + s32 temp; + if(sub_80144A4(&temp) == 0) + { + if(sub_8012600() == 0) + { + sub_8012750(); + PrintTradeItemsLinkError(gTradeItemsMenu->linkStatus); + SetTradeItemMenu(0xC); + } + } +} + +void sub_8036ADC(void) +{ + s32 temp; + if(sub_80144A4(&temp) == 0) + { + if(sub_8012600() == 0) + { + sub_8012750(); + SetTradeItemMenu(TRADE_ITEMS_EXIT); + } + } +} + +void CleanTradeItemsMenu(void) +{ + if(gTradeItemsMenu != NULL) + { + MemoryFree(gTradeItemsMenu); + gTradeItemsMenu = NULL; + sub_801CBB8(); + } +} + +void nullsub_52(void) +{ +} + +#ifdef NONMATCHING +void sub_8036B28(void) +{ + int iVar3; + u32 uVar4; + s32 local_10; + u32 load_1; + u32 load_2; + struct TradeSubStruct *temp; + struct TradeSubStruct *temp2; + + switch(gTradeItemsMenu->currMenu) { + case 0: + if (sub_801CF14(0) != '\0') { + sub_8014248(&gUnknown_80E61A4,0,1,&gUnknown_80E60D4,0,4,0,0,0x101); + } + else { + sub_8014248(&gUnknown_80E61A4,0,1,&gUnknown_80E60A0,0,4,0,0,0x101); + } + break; + case 1: + sub_80141B4(&gUnknown_80E61C0,0,0,0x101); + break; + case 2: + if (sub_801D008() == 0) { + ResetUnusedInputStruct(); + sub_800641C(0,1,1); + local_10 = 0x20003; + sub_801C8C4(0,1,&local_10,9); + } + break; + case 3: + sub_8006518(gTradeItemsMenu->unk184); + SetMenuItems(&gTradeItemsMenu->unk44,gTradeItemsMenu->unk184,3,&gUnknown_80E60EC, + &gUnknown_80E6104,1,0,0); + sub_801CCD8(); + sub_8035CF4(&gTradeItemsMenu->unk44,3,1); + break; + case 4: + sub_8036F74(); + break; + case 6: + gUnknown_202DE30 = gTradeItemsMenu->unk14; + sub_8090DC4(&gUnknown_202DE58,gTradeItemsMenu->unk25E,0); + sub_8014248(&gUnknown_80E61E4,0,5, &gUnknown_80E6154,0,4,0,0,0x101); + break; + case 7: + sub_8014248(&gUnknown_80E6214,0,5,&gUnknown_80E618C,0,4,0,0,0x101); + break; + case 8: + sub_8014248(&gUnknown_80E6268,0,5,&gUnknown_80E618C,0,4,0,0,0x101); + break; + case 9: + nullsub_23(0); + sub_80141B4(&gUnknown_80E62C4,0,0,0); + break; + case 10: + gTradeItemsMenu->linkStatus = 0; + // TODO + // Regs mess up here + // Needs a mov r2, 0 + // and mov r3, 0 + temp = &gTradeItemsMenu->unk244; + temp->unk0 = 0; + temp->unk4 = 0; + + temp += 1; // move to unk24C + + temp->unk0 = 0; + temp->unk4 = 0; + // Regs are fixed back up after + + sub_8011830(); + iVar3 = sub_8037B28(gTradeItemsMenu->itemMode); + gTradeItemsMenu->linkStatus = iVar3; + if(iVar3 == 0){ + switch(gTradeItemsMenu->itemMode){ + // Fallthrough needed on each case + case TRADE_ITEMS_SEND_ITEM_MODE: + temp = &gTradeItemsMenu->unk244; + temp2 = &gTradeItemsMenu->unk254; + load_2 = temp2->unk4; + temp->unk0 = temp2->unk0; + temp->unk4 = load_2; + case TRADE_ITEMS_RECEIVE_ITEM_MODE: + gTradeItemsMenu->linkStatus = sub_8037D64(gTradeItemsMenu->itemMode,&gTradeItemsMenu->unk244,&gTradeItemsMenu->unk24C); + default: + break; + } + } + // Needed this check for code generation + if(gTradeItemsMenu->linkStatus == 0 && gTradeItemsMenu->itemMode <= 1){ + gTradeItemsMenu->linkStatus = sub_80381F4(gTradeItemsMenu->itemMode,&gTradeItemsMenu->unk244,&gTradeItemsMenu->unk24C); + } + xxx_call_start_bg_music(); + break; + case 0xe: + if (gTradeItemsMenu->unk24C.unk4 == 0) { + gUnknown_202DE30 = gTradeItemsMenu->unk244.unk4; + // Cast is needed + sub_8090DC4(&gUnknown_202DE58,(u8)gTradeItemsMenu->unk244.unk0,0); + } + else { + gUnknown_202DE30 = gTradeItemsMenu->unk24C.unk4; + // Cast is needed + sub_8090DC4(&gUnknown_202DE58,(u8)gTradeItemsMenu->unk24C.unk0,0); + } + sub_80141B4(&gUnknown_80E6314,0,0,0x101); + break; + case 0xd: + gUnknown_202DE30 = gTradeItemsMenu->unk14; + sub_8090DC4(&gUnknown_202DE58,gTradeItemsMenu->unk25E,0); + sub_80141B4(&gUnknown_80E6358,0,0,0x101); + break; + case 0xB: + case 0xC: + case 0xF: + case 0x10: + case 0x11: + case 0x12: + default: + break; + } +} +#else +NAKED +void sub_8036B28(void) +{ + asm_unified("\tpush {r4,r5,lr}\n" + "\tsub sp, 0x18\n" + "\tldr r1, _08036B44\n" + "\tldr r0, [r1]\n" + "\tldr r0, [r0]\n" + "\tadds r5, r1, 0\n" + "\tcmp r0, 0x12\n" + "\tbls _08036B3A\n" + "\tb _08036DFA\n" +"_08036B3A:\n" + "\tlsls r0, 2\n" + "\tldr r1, _08036B48\n" + "\tadds r0, r1\n" + "\tldr r0, [r0]\n" + "\tmov pc, r0\n" + "\t.align 2, 0\n" +"_08036B44: .4byte gTradeItemsMenu\n" +"_08036B48: .4byte _08036B4C\n" + "\t.align 2, 0\n" +"_08036B4C:\n" + "\t.4byte _08036B98\n" + "\t.4byte _08036BDC\n" + "\t.4byte _08036BE4\n" + "\t.4byte _08036C14\n" + "\t.4byte _08036C58\n" + "\t.4byte _08036DFA\n" + "\t.4byte _08036C5E\n" + "\t.4byte _08036C90\n" + "\t.4byte _08036C98\n" + "\t.4byte _08036CC0\n" + "\t.4byte _08036CD8\n" + "\t.4byte _08036DFA\n" + "\t.4byte _08036DFA\n" + "\t.4byte _08036DD8\n" + "\t.4byte _08036D70\n" + "\t.4byte _08036DFA\n" + "\t.4byte _08036DFA\n" + "\t.4byte _08036DFA\n" + "\t.4byte _08036DFA\n" +"_08036B98:\n" + "\tmovs r0, 0\n" + "\tbl sub_801CF14\n" + "\tlsls r0, 24\n" + "\tlsrs r2, r0, 24\n" + "\tcmp r2, 0\n" + "\tbeq _08036BB8\n" + "\tldr r0, _08036BB0\n" + "\tldr r3, _08036BB4\n" + "\tmovs r2, 0\n" + "\tb _08036BBC\n" + "\t.align 2, 0\n" +"_08036BB0: .4byte gUnknown_80E61A4\n" +"_08036BB4: .4byte gUnknown_80E60D4\n" +"_08036BB8:\n" + "\tldr r0, _08036BD4\n" + "\tldr r3, _08036BD8\n" +"_08036BBC:\n" + "\tstr r2, [sp]\n" + "\tmovs r1, 0x4\n" + "\tstr r1, [sp, 0x4]\n" + "\tstr r2, [sp, 0x8]\n" + "\tstr r2, [sp, 0xC]\n" + "\tadds r1, 0xFD\n" + "\tstr r1, [sp, 0x10]\n" + "\tmovs r1, 0\n" + "\tmovs r2, 0x1\n" + "\tbl sub_8014248\n" + "\tb _08036DFA\n" + "\t.align 2, 0\n" +"_08036BD4: .4byte gUnknown_80E61A4\n" +"_08036BD8: .4byte gUnknown_80E60A0\n" +"_08036BDC:\n" + "\tldr r0, _08036BE0\n" + "\tb _08036DBA\n" + "\t.align 2, 0\n" +"_08036BE0: .4byte gUnknown_80E61C0\n" +"_08036BE4:\n" + "\tbl sub_801D008\n" + "\tcmp r0, 0\n" + "\tbeq _08036BEE\n" + "\tb _08036DFA\n" +"_08036BEE:\n" + "\tbl ResetUnusedInputStruct\n" + "\tmovs r0, 0\n" + "\tmovs r1, 0x1\n" + "\tmovs r2, 0x1\n" + "\tbl sub_800641C\n" + "\tldr r0, _08036C10\n" + "\tstr r0, [sp, 0x14]\n" + "\tmovs r0, 0\n" + "\tmovs r1, 0x1\n" + "\tadd r2, sp, 0x14\n" + "\tmovs r3, 0x9\n" + "\tbl sub_801C8C4\n" + "\tb _08036DFA\n" + "\t.align 2, 0\n" +"_08036C10: .4byte 0x00020003\n" +"_08036C14:\n" + "\tldr r0, [r5]\n" + "\tmovs r4, 0xC2\n" + "\tlsls r4, 1\n" + "\tadds r0, r4\n" + "\tbl sub_8006518\n" + "\tldr r1, [r5]\n" + "\tadds r0, r1, 0\n" + "\tadds r0, 0x44\n" + "\tadds r1, r4\n" + "\tldr r3, _08036C50\n" + "\tldr r2, _08036C54\n" + "\tstr r2, [sp]\n" + "\tmovs r2, 0x1\n" + "\tstr r2, [sp, 0x4]\n" + "\tmovs r2, 0\n" + "\tstr r2, [sp, 0x8]\n" + "\tstr r2, [sp, 0xC]\n" + "\tmovs r2, 0x3\n" + "\tbl SetMenuItems\n" + "\tbl sub_801CCD8\n" + "\tldr r0, [r5]\n" + "\tadds r0, 0x44\n" + "\tmovs r1, 0x3\n" + "\tmovs r2, 0x1\n" + "\tbl sub_8035CF4\n" + "\tb _08036DFA\n" + "\t.align 2, 0\n" +"_08036C50: .4byte gUnknown_80E60EC\n" +"_08036C54: .4byte gUnknown_80E6104\n" +"_08036C58:\n" + "\tbl sub_8036F74\n" + "\tb _08036DFA\n" +"_08036C5E:\n" + "\tldr r2, _08036C7C\n" + "\tldr r1, [r5]\n" + "\tldr r0, [r1, 0x14]\n" + "\tstr r0, [r2]\n" + "\tldr r0, _08036C80\n" + "\tldr r2, _08036C84\n" + "\tadds r1, r2\n" + "\tldrb r1, [r1]\n" + "\tmovs r2, 0\n" + "\tbl sub_8090DC4\n" + "\tldr r0, _08036C88\n" + "\tldr r3, _08036C8C\n" + "\tb _08036C9C\n" + "\t.align 2, 0\n" +"_08036C7C: .4byte gUnknown_202DE30\n" +"_08036C80: .4byte gUnknown_202DE58\n" +"_08036C84: .4byte 0x0000025e\n" +"_08036C88: .4byte gUnknown_80E61E4\n" +"_08036C8C: .4byte gUnknown_80E6154\n" +"_08036C90:\n" + "\tldr r0, _08036C94\n" + "\tb _08036C9A\n" + "\t.align 2, 0\n" +"_08036C94: .4byte gUnknown_80E6214\n" +"_08036C98:\n" + "\tldr r0, _08036CB8\n" +"_08036C9A:\n" + "\tldr r3, _08036CBC\n" +"_08036C9C:\n" + "\tmovs r2, 0\n" + "\tstr r2, [sp]\n" + "\tmovs r1, 0x4\n" + "\tstr r1, [sp, 0x4]\n" + "\tstr r2, [sp, 0x8]\n" + "\tstr r2, [sp, 0xC]\n" + "\tadds r1, 0xFD\n" + "\tstr r1, [sp, 0x10]\n" + "\tmovs r1, 0\n" + "\tmovs r2, 0x5\n" + "\tbl sub_8014248\n" + "\tb _08036DFA\n" + "\t.align 2, 0\n" +"_08036CB8: .4byte gUnknown_80E6268\n" +"_08036CBC: .4byte gUnknown_80E618C\n" +"_08036CC0:\n" + "\tmovs r0, 0\n" + "\tbl nullsub_23\n" + "\tldr r0, _08036CD4\n" + "\tmovs r1, 0\n" + "\tmovs r2, 0\n" + "\tmovs r3, 0\n" + "\tbl sub_80141B4\n" + "\tb _08036DFA\n" + "\t.align 2, 0\n" +"_08036CD4: .4byte gUnknown_80E62C4\n" +"_08036CD8:\n" + "\tldr r4, _08036D18\n" + "\tldr r1, [r4]\n" + "\tmovs r0, 0\n" + "\tstr r0, [r1, 0xC]\n" + "\tmovs r2, 0\n" + "\tmovs r3, 0\n" + "\tmovs r5, 0x91\n" + "\tlsls r5, 2\n" + "\tadds r0, r1, r5\n" + "\tstr r2, [r0]\n" + "\tstr r3, [r0, 0x4]\n" + "\tmovs r0, 0x93\n" + "\tlsls r0, 2\n" + "\tadds r1, r0\n" + "\tstr r2, [r1]\n" + "\tstr r3, [r1, 0x4]\n" + "\tbl sub_8011830\n" + "\tldr r0, [r4]\n" + "\tldr r0, [r0, 0x8]\n" + "\tbl sub_8037B28\n" + "\tldr r4, [r4]\n" + "\tstr r0, [r4, 0xC]\n" + "\tcmp r0, 0\n" + "\tbne _08036D44\n" + "\tldr r0, [r4, 0x8]\n" + "\tcmp r0, 0\n" + "\tbeq _08036D1C\n" + "\tcmp r0, 0x1\n" + "\tbeq _08036D2C\n" + "\tb _08036D44\n" + "\t.align 2, 0\n" +"_08036D18: .4byte gTradeItemsMenu\n" +"_08036D1C:\n" + "\tadds r2, r4, r5\n" + "\tmovs r1, 0x95\n" + "\tlsls r1, 2\n" + "\tadds r0, r4, r1\n" + "\tldr r1, [r0, 0x4]\n" + "\tldr r0, [r0]\n" + "\tstr r0, [r2]\n" + "\tstr r1, [r2, 0x4]\n" +"_08036D2C:\n" + "\tldr r4, _08036D6C\n" + "\tldr r2, [r4]\n" + "\tldr r0, [r2, 0x8]\n" + "\tmovs r3, 0x91\n" + "\tlsls r3, 2\n" + "\tadds r1, r2, r3\n" + "\tadds r3, 0x8\n" + "\tadds r2, r3\n" + "\tbl sub_8037D64\n" + "\tldr r1, [r4]\n" + "\tstr r0, [r1, 0xC]\n" +"_08036D44:\n" + "\tldr r4, _08036D6C\n" + "\tldr r2, [r4]\n" + "\tldr r0, [r2, 0xC]\n" + "\tcmp r0, 0\n" + "\tbne _08036D66\n" + "\tldr r0, [r2, 0x8]\n" + "\tcmp r0, 0x1\n" + "\tbhi _08036D66\n" + "\tmovs r3, 0x91\n" + "\tlsls r3, 2\n" + "\tadds r1, r2, r3\n" + "\tadds r3, 0x8\n" + "\tadds r2, r3\n" + "\tbl sub_80381F4\n" + "\tldr r1, [r4]\n" + "\tstr r0, [r1, 0xC]\n" +"_08036D66:\n" + "\tbl xxx_call_start_bg_music\n" + "\tb _08036DFA\n" + "\t.align 2, 0\n" +"_08036D6C: .4byte gTradeItemsMenu\n" +"_08036D70:\n" + "\tldr r2, [r5]\n" + "\tmovs r1, 0x94\n" + "\tlsls r1, 2\n" + "\tadds r0, r2, r1\n" + "\tldr r1, [r0]\n" + "\tcmp r1, 0\n" + "\tbne _08036DA4\n" + "\tldr r1, _08036D9C\n" + "\tmovs r3, 0x92\n" + "\tlsls r3, 2\n" + "\tadds r0, r2, r3\n" + "\tldr r0, [r0]\n" + "\tstr r0, [r1]\n" + "\tldr r0, _08036DA0\n" + "\tsubs r3, 0x4\n" + "\tadds r1, r2, r3\n" + "\tldrb r1, [r1]\n" + "\tmovs r2, 0\n" + "\tbl sub_8090DC4\n" + "\tb _08036DB8\n" + "\t.align 2, 0\n" +"_08036D9C: .4byte gUnknown_202DE30\n" +"_08036DA0: .4byte gUnknown_202DE58\n" +"_08036DA4:\n" + "\tldr r0, _08036DC8\n" + "\tstr r1, [r0]\n" + "\tldr r0, _08036DCC\n" + "\tmovs r3, 0x93\n" + "\tlsls r3, 2\n" + "\tadds r1, r2, r3\n" + "\tldrb r1, [r1]\n" + "\tmovs r2, 0\n" + "\tbl sub_8090DC4\n" +"_08036DB8:\n" + "\tldr r0, _08036DD0\n" +"_08036DBA:\n" + "\tldr r3, _08036DD4\n" + "\tmovs r1, 0\n" + "\tmovs r2, 0\n" + "\tbl sub_80141B4\n" + "\tb _08036DFA\n" + "\t.align 2, 0\n" +"_08036DC8: .4byte gUnknown_202DE30\n" +"_08036DCC: .4byte gUnknown_202DE58\n" +"_08036DD0: .4byte gUnknown_80E6314\n" +"_08036DD4: .4byte 0x00000101\n" +"_08036DD8:\n" + "\tldr r2, _08036E04\n" + "\tldr r1, [r5]\n" + "\tldr r0, [r1, 0x14]\n" + "\tstr r0, [r2]\n" + "\tldr r0, _08036E08\n" + "\tldr r2, _08036E0C\n" + "\tadds r1, r2\n" + "\tldrb r1, [r1]\n" + "\tmovs r2, 0\n" + "\tbl sub_8090DC4\n" + "\tldr r0, _08036E10\n" + "\tldr r3, _08036E14\n" + "\tmovs r1, 0\n" + "\tmovs r2, 0\n" + "\tbl sub_80141B4\n" +"_08036DFA:\n" + "\tadd sp, 0x18\n" + "\tpop {r4,r5}\n" + "\tpop {r0}\n" + "\tbx r0\n" + "\t.align 2, 0\n" +"_08036E04: .4byte gUnknown_202DE30\n" +"_08036E08: .4byte gUnknown_202DE58\n" +"_08036E0C: .4byte 0x0000025e\n" +"_08036E10: .4byte gUnknown_80E6358\n" +"_08036E14: .4byte 0x00000101"); +} +#endif + +void PrintTradeItemsLinkError(u32 errorNum) +{ + switch(errorNum) { + case 0: + break; + case 1: + sub_80141B4(&gTradeItemsCommunicationError, 0, 0, 0x101); + break; + case 3: + sub_80141B4(&gUnknown_80E639C, 0, 0, 0x101); + break; + case 2: + sub_80141B4(&gUnknown_80E63F8, 0, 0, 0x101); + break; + case 4: + sub_80141B4(&gUnknown_80E6448, 0, 0, 0x101); + break; + case 5: + sub_80141B4(&gTradeItemsCommunicationError, 0, 0, 0x101); + break; + case 0xe: + sub_80141B4(&gTradeItemsCommunicationError, 0, 0, 0x101); + break; + case 0xf: + sub_80141B4(&gUnknown_80E64AC, 0, 0, 0x101); + break; + default: + case 0x6: + case 0x7: + case 0x8: + case 0x9: + case 0xA: + case 0xB: + case 0xC: + case 0xD: + sub_80141B4(&gTradeItemsCommunicationError, 0, 0, 0x101); + break; + } +} + +void sub_8036ECC(u32 index, u32 r1) +{ + gTradeItemsMenu->unk24 = 3; + gTradeItemsMenu->unk18 = 1; + gTradeItemsMenu->unk1C = 1; + gTradeItemsMenu->unk20 = r1; + gTradeItemsMenu->unk30 = 0x2c; + gTradeItemsMenu->unk34 = 0x12; + gTradeItemsMenu->unk28 = index; + gTradeItemsMenu->unk2C = &gTradeItemsMenu->unk184[index]; + sub_8013AA0(&gTradeItemsMenu->unk14); + gTradeItemsMenu->unk184[index] = gUnknown_80E6174; + ResetUnusedInputStruct(); + sub_800641C((u32 *)&gTradeItemsMenu->unk184, 1, 1); +} + +void sub_8036F30(void) +{ + u32 uVar1; + + uVar1 = gTradeItemsMenu->unk28; + sub_8008C54(uVar1); + sub_80073B8(uVar1); + // Draw "How many?" + xxx_call_draw_string(2, 0, &gTradeItemsHowManyText, uVar1, 0); + sub_8013C68(&gTradeItemsMenu->unk14); + sub_80073E0(uVar1); +} + +void sub_8036F74(void) +{ + sub_8006518((u32 *)&gTradeItemsMenu->unk184); + sub_8036ECC(2, gUnknown_203B460->unk50[gTradeItemsMenu->unk25E]); + sub_801CCD8(); + sub_8035CF4(&gTradeItemsMenu->unk44, 3, 0); + sub_8036F30(); +} + +void SetTradeItemMenu(u32 newMenu) +{ + gTradeItemsMenu->currMenu = newMenu; + nullsub_52(); + sub_8036B28(); +} diff --git a/src/wonder_mail.c b/src/wonder_mail.c index d4b7196..da8f44c 100644 --- a/src/wonder_mail.c +++ b/src/wonder_mail.c @@ -3,37 +3,7 @@ #include "pokemon.h" #include "file_system.h" #include "constants/species.h" - -// Wonder Mail Related -struct WonderMailStruct_203B2C0 -{ - // size: 0x548 - u32 unk0; - u32 unk4; - u8 unk8[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; // Is this supposed to be a File like 203B2C4? - u8 padding3[0x110]; - u32 unk534; - s32 unk538; // A7 << 3 - u32 unk53C; - u32 unk540; // A8 << 4 - s16 unk544; -}; +#include "wonder_mail.h" struct unkStruct_203B2C4 { @@ -44,7 +14,7 @@ struct unkStruct_203B2C4 u8 unk8[0x36]; // Probably a buffer for entry u8 unk3E; u32 unk40; - u32 unk44; // another link status + u32 linkError; // another link status u8 filler48[0x218 - 0x48]; s8 unk218; u32 unk21C; @@ -246,43 +216,43 @@ void sub_8028B1C(u32 r0) break; case 1: case 2: - sub_80141B4(gWonderMailErrorText, 0, &gUnknown_203B2C0->unk420, 0x10d); + sub_80141B4(gWonderMailErrorText, 0, (u32 *)&gUnknown_203B2C0->faceFile, 0x10d); break; case 3: - sub_80141B4(gWonderMailNumGBAsText, 0, &gUnknown_203B2C0->unk420, 0x10d); + sub_80141B4(gWonderMailNumGBAsText, 0, (u32 *)&gUnknown_203B2C0->faceFile, 0x10d); break; case 4: - sub_80141B4(gWonderMailWrongModeText, 0, &gUnknown_203B2C0->unk420, 0x10d); + sub_80141B4(gWonderMailWrongModeText, 0, (u32 *)&gUnknown_203B2C0->faceFile, 0x10d); break; case 5: - sub_80141B4(gWonderMailErrorText, 0, &gUnknown_203B2C0->unk420, 0x10d); + sub_80141B4(gWonderMailErrorText, 0, (u32 *)&gUnknown_203B2C0->faceFile, 0x10d); break; case 6: - sub_80141B4(gWonderMailStorageFullText, 0, &gUnknown_203B2C0->unk420, 0x10d); + sub_80141B4(gWonderMailStorageFullText, 0, (u32 *)&gUnknown_203B2C0->faceFile, 0x10d); break; case 7: - sub_80141B4(gWonderMailDuplicateText, 0, &gUnknown_203B2C0->unk420, 0x10d); + sub_80141B4(gWonderMailDuplicateText, 0, (u32 *)&gUnknown_203B2C0->faceFile, 0x10d); break; case 8: break; case 9: - sub_80141B4(gWonderMailNotEligibleReceiveText, 0, &gUnknown_203B2C0->unk420, 0x10d); + sub_80141B4(gWonderMailNotEligibleReceiveText, 0, (u32 *)&gUnknown_203B2C0->faceFile, 0x10d); break; case 10: break; case 11: - sub_80141B4(gWonderMailNotEligibleReceiveText, 0, &gUnknown_203B2C0->unk420, 0x10d); + sub_80141B4(gWonderMailNotEligibleReceiveText, 0, (u32 *)&gUnknown_203B2C0->faceFile, 0x10d); break; case 12: break; case 13: - sub_80141B4(gWonderMailNoRoomText, 0, &gUnknown_203B2C0->unk420, 0x10d); + sub_80141B4(gWonderMailNoRoomText, 0, (u32 *)&gUnknown_203B2C0->faceFile, 0x10d); break; case 14: - sub_80141B4(gWonderMailErrorText, 0, &gUnknown_203B2C0->unk420, 0x10d); + sub_80141B4(gWonderMailErrorText, 0, (u32 *)&gUnknown_203B2C0->faceFile, 0x10d); break; case 15: - sub_80141B4(gWonderMailFriendErrorText, 0, &gUnknown_203B2C0->unk420, 0x10d); + sub_80141B4(gWonderMailFriendErrorText, 0, (u32 *)&gUnknown_203B2C0->faceFile, 0x10d); break; default: break; @@ -829,7 +799,7 @@ void sub_80292EC(void) { return; } - if(gUnknown_203B2C0->unk44 == 0) + if(gUnknown_203B2C0->linkError == 0) { switch(gUnknown_203B2C0->unk538) { @@ -843,7 +813,7 @@ void sub_80292EC(void) } else { - sub_8028B1C(gUnknown_203B2C0->unk44); + sub_8028B1C(gUnknown_203B2C0->linkError); sub_8028B04(0x7); } } @@ -939,15 +909,15 @@ void sub_80293F4(void) case 9: break; case 10: - sub_8014248(gWonderMailPasswordIncorrectText, 0, 8, &gUnknown_80DDA48, 0, 4, 0, &gUnknown_203B2C0->unk420, 0xC); + sub_8014248(gWonderMailPasswordIncorrectText, 0, 8, &gUnknown_80DDA48, 0, 4, 0, (u32 *)&gUnknown_203B2C0->faceFile, 0xC); sub_8028B04(0x28); break; case 11: - sub_80141B4(gWonderMailSOSPasswordIncorrectText, 0, &gUnknown_203B2C0->unk420, 0x10d); + sub_80141B4(gWonderMailSOSPasswordIncorrectText, 0, (u32 *)&gUnknown_203B2C0->faceFile, 0x10d); sub_8028B04(7); break; case 0: - sub_80141B4(gWonderMailDuplicateText, 0, &gUnknown_203B2C0->unk420, 0x10d); + sub_80141B4(gWonderMailDuplicateText, 0, (u32 *)&gUnknown_203B2C0->faceFile, 0x10d); sub_8028B04(7); break; case 12: @@ -958,7 +928,7 @@ void sub_80293F4(void) sub_8095274(temp.unk10); temp.unkArray[0] = 2; // Some sort of Ack? sub_80951BC(temp.unkArray); - sub_80141B4(gWonderMailAOKMailReceivedText, 0, &gUnknown_203B2C0->unk420, 0x101); + sub_80141B4(gWonderMailAOKMailReceivedText, 0, (u32 *)&gUnknown_203B2C0->faceFile, 0x101); sub_8028B04(0x23); break; case 16: diff --git a/src/wonder_mail_mid.c b/src/wonder_mail_mid.c index 0256019..62755b1 100644 --- a/src/wonder_mail_mid.c +++ b/src/wonder_mail_mid.c @@ -10,7 +10,7 @@ struct unkStruct_203B2C4 u8 unk8[0x36]; u8 unk3E; u32 unk40; - u32 unk44; // another link status + u32 linkError; // another link status u8 filler48[0x218 - 0x48]; s8 unk218; u32 unk21C; @@ -94,7 +94,7 @@ void sub_8029F98(void) gUnknown_203B2C4->unk41C[2] = 0; gUnknown_203B2C4->unk41C[1] = 1; gUnknown_203B2C4->unk41C[0] = 0; - if (gUnknown_203B2C4->unk44 == 0) { + if (gUnknown_203B2C4->linkError == 0) { switch(gUnknown_203B2C4->unk40) { case 6: @@ -121,7 +121,7 @@ void sub_8029F98(void) } else { - PrintWonderMailLinkError(gUnknown_203B2C4->unk44); + PrintWonderMailLinkError(gUnknown_203B2C4->linkError); sub_802B2BC(0x1F); } } diff --git a/src/wonder_mail_pre.c b/src/wonder_mail_pre.c new file mode 100644 index 0000000..94ab51f --- /dev/null +++ b/src/wonder_mail_pre.c @@ -0,0 +1,101 @@ +#include "global.h" +#include "file_system.h" +#include "input.h" +#include "pokemon.h" +#include "constants/species.h" +#include "wonder_mail.h" + + +extern void* MemoryAlloc(u32 a, u32 b); +extern void MemoryFill8(u8 *dest, u8 value, s32 size); +extern char* GetMonSpecies(u32); +extern void sub_800641C(void *r0, u8, u8); +void sub_808D8E0(u8 *, u32); + +extern struct WonderMailStruct_203B2C0 *gUnknown_203B2C0; +extern char gUnknown_202E5D8[0x50]; +extern char gAvailablePokemonNames[0x50]; + +extern void sub_8029B34(); +extern void sub_8029AD8(); +extern void sub_8029AF4(); +extern void sub_8029A88(); +extern void sub_8029AB0(); +extern void sub_80297B8(); +extern void sub_80297D4(); +extern void sub_8029884(); +extern void sub_8029944(); +extern void sub_80299AC(); +extern void sub_80299D8(); +extern void sub_8029A6C(); +extern void sub_8028CE0(); +extern void sub_8028BF0(); +extern void sub_8029A18(); +extern void sub_80295A8(); +extern void sub_8029668(); +extern void sub_8029684(); +extern void sub_8029740(); +extern void sub_80295D8(); +extern void sub_802979C(); +extern void sub_8029358(); +extern void sub_8029374(); +extern void sub_802939C(); +extern void sub_8028F58(); +extern void sub_8028F30(); +extern void sub_8028F04(); +extern void sub_8028ED4(); +extern void sub_80293D8(); +extern void sub_80293F4(); +extern void sub_8028DE8(u32); +extern void sub_8028EAC(); +extern void sub_802955C(); +extern void sub_80292A4(); +extern void sub_80292EC(); +extern void sub_802933C(); +extern void sub_802958C(); +extern void sub_8029208(); +extern void sub_8028E84(); +extern void sub_8028F80(); +extern void sub_8028FC0(); +extern void sub_8028FDC(); +extern void sub_8028E54(); +extern void sub_8028E24(); +extern void sub_8028E08(); +extern void sub_80290D4(); +extern void sub_80290F0(); +extern void sub_80291AC(); +extern void sub_8029044(); +extern void sub_8028CFC(); +extern void sub_8028D4C(); + +u32 sub_8027F88(void) +{ + char *monName; + struct OpenedFile *faceFile; + s32 counter; + + ResetUnusedInputStruct(); + sub_800641C(0, 1, 1); + gUnknown_203B2C0 = MemoryAlloc(sizeof(struct WonderMailStruct_203B2C0), 8); + MemoryFill8((u8 *)gUnknown_203B2C0, 0, sizeof(struct WonderMailStruct_203B2C0)); + gUnknown_203B2C0->unk53C = 0; + gUnknown_203B2C0->unk218 = -1; + gUnknown_203B2C0->unk544 = -1; + sub_808D8E0(gUnknown_202E5D8, SPECIES_PELIPPER); + monName = GetMonSpecies(SPECIES_PELIPPER); + strcpy(gAvailablePokemonNames, monName); + faceFile = GetDialogueSpriteDataPtr(SPECIES_PELIPPER); + gUnknown_203B2C0->faceFile = faceFile; + gUnknown_203B2C0->faceData = faceFile->data; + gUnknown_203B2C0->unk42C = 0; + gUnknown_203B2C0->unk42D = 0; + gUnknown_203B2C0->unk42E = 0; + gUnknown_203B2C0->unk428 = 2; + gUnknown_203B2C0->unk42A = 8; + for(counter = 0; counter < 0x36; counter++){ + gUnknown_203B2C0->unk8[counter] = 0; + } + gUnknown_203B2C0->unk0 = 0x3D; + sub_8028B04(0); // Set initial state to 0? + return 1; +} diff --git a/sym_ewram2.txt b/sym_ewram2.txt index 173af0e..bf842ad 100644 --- a/sym_ewram2.txt +++ b/sym_ewram2.txt @@ -461,7 +461,7 @@ gUnknown_203B340 = .; /* 203B340 */ gUnknown_203B344 = .; /* 203B344 */ . += 0x4; -gUnknown_203B348 = .; /* 203B348 */ +gMainMenu = .; /* 203B348 */ . += 0x4; gUnknown_203B34C = .; /* 203B34C */ @@ -473,7 +473,7 @@ gUnknown_203B350 = .; /* 203B350 */ gUnknown_203B354 = .; /* 203B354 */ . += 0x4; -gUnknown_203B358 = .; /* 203B358 */ +gTradeItemsMenu = .; /* 203B358 */ . += 0x4; gUnknown_203B35C = .; /* 203B35C */ |