.include "constants/gba_constants.inc" .include "asm/macros.inc" .syntax unified .text 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 ExpandPlaceholdersBuffer 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 PlaySound 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 PlaySound 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 .align 2,0