#include "asm/constants/gba_constants.inc" #include "asm/macros.inc" .syntax unified .text thumb_func_start sub_801EE10 sub_801EE10: push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} adds r6, r0, 0 mov r9, r2 adds r4, r3, 0 ldr r0, [sp, 0x20] mov r8, r0 lsls r1, 16 asrs r7, r1, 16 lsls r4, 24 lsrs r4, 24 ldr r5, _0801EF28 movs r0, 0xBC movs r1, 0x8 bl MemoryAlloc str r0, [r5] movs r2, 0 strb r4, [r0, 0x4] ldr r0, [r5] movs r1, 0x1 strb r1, [r0, 0x5] ldr r0, [r5] strb r1, [r0, 0x6] ldr r0, [r5] strb r1, [r0, 0x7] ldr r0, [r5] str r6, [r0] cmp r6, 0x1 bls _0801EE5E cmp r6, 0x3 bhi _0801EE5E strb r2, [r0, 0x5] ldr r0, [r5] strb r2, [r0, 0x6] ldr r0, [r5] strb r2, [r0, 0x7] _0801EE5E: ldr r4, _0801EF28 ldr r3, [r4] ldr r2, _0801EF2C movs r0, 0x58 adds r1, r7, 0 muls r1, r0 ldr r0, [r2] adds r0, r1 str r0, [r3, 0x8] ldrb r0, [r0, 0x2] strb r0, [r3, 0xC] ldr r0, [r4] mov r1, r9 str r1, [r0, 0x10] adds r0, 0xB8 ldr r1, [sp, 0x1C] str r1, [r0] bl sub_801F3F8 adds r5, r0, 0 adds r6, r5, 0 cmp r5, 0x4 bge _0801EE8E movs r6, 0x4 _0801EE8E: ldr r0, [r4] adds r0, 0x58 bl sub_8006518 ldr r1, [r4] mov r2, r8 str r2, [r1, 0x50] lsls r0, r2, 1 add r0, r8 lsls r0, 3 adds r1, r0 adds r1, 0x58 ldr r0, _0801EF30 ldm r0!, {r2,r3,r7} stm r1!, {r2,r3,r7} ldm r0!, {r2,r3,r7} stm r1!, {r2,r3,r7} ldr r0, [r4] adds r0, 0xB8 ldr r0, [r0] cmp r0, 0 beq _0801EED8 mov r0, r8 bl sub_8006544 ldr r1, [r4] str r0, [r1, 0x54] lsls r2, r0, 1 adds r2, r0 lsls r2, 3 adds r1, r2 adds r1, 0x58 ldr r0, _0801EF34 ldm r0!, {r2,r3,r7} stm r1!, {r2,r3,r7} ldm r0!, {r2,r3,r7} stm r1!, {r2,r3,r7} _0801EED8: ldr r0, [r4] ldr r2, [r0, 0x50] lsls r1, r2, 1 adds r1, r2 lsls r1, 3 adds r1, 0x58 adds r0, r1 adds r1, r6, 0 bl sub_8012D08 bl ResetUnusedInputStruct ldr r0, [r4] adds r0, 0x58 movs r1, 0x1 movs r2, 0x1 bl sub_800641C ldr r0, [r4] adds r0, 0x1C adds r1, r5, 0 adds r2, r5, 0 mov r3, r8 bl sub_8013818 ldr r0, [r4] adds r0, 0x1C movs r1, 0 bl sub_8013780 movs r0, 0x1 bl sub_801F280 movs r0, 0x1 pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _0801EF28: .4byte gUnknown_203B270 _0801EF2C: .4byte gRecruitedPokemonRef _0801EF30: .4byte gUnknown_80DC25C _0801EF34: .4byte gUnknown_80DC274 thumb_func_end sub_801EE10 thumb_func_start sub_801EF38 sub_801EF38: push {r4-r7,lr} lsls r0, 24 movs r7, 0 cmp r0, 0 bne _0801EF54 ldr r0, _0801EF50 ldr r0, [r0] adds r0, 0x1C bl sub_8013660 b _0801F18C .align 2, 0 _0801EF50: .4byte gUnknown_203B270 _0801EF54: ldr r0, _0801EF70 ldr r0, [r0] adds r0, 0x1C bl GetKeyPress subs r0, 0x1 cmp r0, 0xC bls _0801EF66 b _0801F12E _0801EF66: lsls r0, 2 ldr r1, _0801EF74 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _0801EF70: .4byte gUnknown_203B270 _0801EF74: .4byte _0801EF78 .align 2, 0 _0801EF78: .4byte _0801EFB6 .4byte _0801EFAC .4byte _0801F0E4 .4byte _0801EFC0 .4byte _0801F12E .4byte _0801F12E .4byte _0801EFE4 .4byte _0801EFCA .4byte _0801F12E .4byte _0801F12E .4byte _0801F074 .4byte _0801F04C .4byte _0801F018 _0801EFAC: movs r0, 0x1 bl PlayMenuSoundEffect movs r0, 0x2 b _0801F18E _0801EFB6: movs r0, 0 bl PlayMenuSoundEffect movs r0, 0x3 b _0801F18E _0801EFC0: movs r0, 0x4 bl PlayMenuSoundEffect movs r0, 0x4 b _0801F18E _0801EFCA: ldr r5, _0801EFE0 ldr r0, [r5] movs r1, 0x34 ldrsh r6, [r0, r1] adds r4, r0, 0 adds r4, 0x1C ldr r0, [r0, 0x10] adds r1, r6, 0 bl sub_8092E54 b _0801EFF8 .align 2, 0 _0801EFE0: .4byte gUnknown_203B270 _0801EFE4: ldr r5, _0801F014 ldr r0, [r5] movs r1, 0x34 ldrsh r6, [r0, r1] adds r4, r0, 0 adds r4, 0x1C ldr r0, [r0, 0x10] adds r1, r6, 0 bl sub_8092EEC _0801EFF8: adds r1, r0, 0 adds r0, r4, 0 bl sub_8013780 ldr r0, [r5] movs r2, 0x34 ldrsh r0, [r0, r2] cmp r6, r0 bne _0801F00C b _0801F12E _0801F00C: movs r0, 0x3 bl PlayMenuSoundEffect b _0801F12E .align 2, 0 _0801F014: .4byte gUnknown_203B270 _0801F018: ldr r0, _0801F048 ldr r2, [r0] ldrb r1, [r2, 0x5] adds r5, r0, 0 cmp r1, 0 bne _0801F026 b _0801F12E _0801F026: movs r0, 0x34 ldrsh r4, [r2, r0] ldr r0, [r2, 0x10] adds r1, r4, 0 bl sub_809309C _0801F032: ldr r1, [r5] strh r0, [r1, 0x34] lsls r0, 16 asrs r0, 16 cmp r4, r0 beq _0801F06C movs r0, 0x3 bl PlayMenuSoundEffect b _0801F182 .align 2, 0 _0801F048: .4byte gUnknown_203B270 _0801F04C: ldr r0, _0801F068 ldr r2, [r0] ldrb r1, [r2, 0x5] adds r5, r0, 0 cmp r1, 0 beq _0801F12E movs r1, 0x34 ldrsh r4, [r2, r1] ldr r0, [r2, 0x10] adds r1, r4, 0 bl sub_809324C b _0801F032 .align 2, 0 _0801F068: .4byte gUnknown_203B270 _0801F06C: movs r0, 0x2 bl PlayMenuSoundEffect b _0801F182 _0801F074: ldr r0, _0801F0C8 ldr r2, [r0] ldrb r1, [r2, 0x6] adds r5, r0, 0 cmp r1, 0 beq _0801F12E ldr r0, _0801F0CC ldr r0, [r0] movs r1, 0x98 lsls r1, 2 adds r0, r1 ldr r0, [r0] cmp r0, 0x95 ble _0801F0D0 movs r1, 0x34 ldrsh r0, [r2, r1] ldr r1, [r2, 0x10] bl sub_8093318 lsls r0, 24 cmp r0, 0 beq _0801F0D0 ldr r1, [r5] movs r2, 0x34 ldrsh r0, [r1, r2] ldr r1, [r1, 0x10] bl sub_8093400 movs r0, 0x6 bl PlayMenuSoundEffect movs r7, 0x1 ldr r1, [r5] ldrb r0, [r1, 0x4] cmp r0, 0 bne _0801F12E strb r7, [r1, 0x4] movs r0, 0xA6 lsls r0, 1 bl PlaySound b _0801F12E .align 2, 0 _0801F0C8: .4byte gUnknown_203B270 _0801F0CC: .4byte gTeamInventory_203B460 _0801F0D0: ldr r0, _0801F0E0 ldr r1, [r0] movs r2, 0x34 ldrsh r0, [r1, r2] ldr r1, [r1, 0x10] bl sub_8093468 b _0801F0FE .align 2, 0 _0801F0E0: .4byte gUnknown_203B270 _0801F0E4: ldr r0, _0801F10C ldr r1, [r0] ldrb r0, [r1, 0x7] cmp r0, 0 beq _0801F12E ldrb r0, [r1, 0xC] cmp r0, 0 beq _0801F110 movs r2, 0x34 ldrsh r0, [r1, r2] ldr r1, [r1, 0x10] bl sub_80934DC _0801F0FE: lsls r0, 24 cmp r0, 0 bne _0801F120 movs r0, 0x2 bl PlayMenuSoundEffect b _0801F12E .align 2, 0 _0801F10C: .4byte gUnknown_203B270 _0801F110: movs r2, 0x34 ldrsh r0, [r1, r2] ldr r1, [r1, 0x10] bl sub_8093544 lsls r0, 24 cmp r0, 0 beq _0801F128 _0801F120: movs r0, 0x6 bl PlayMenuSoundEffect b _0801F182 _0801F128: movs r0, 0x2 bl PlayMenuSoundEffect _0801F12E: cmp r7, 0 bne _0801F182 movs r3, 0 ldr r5, _0801F160 movs r4, 0x1 _0801F138: ldr r2, [r5] lsls r0, r3, 3 ldr r1, [r2, 0x10] adds r1, r0 ldrb r1, [r1] adds r0, r4, 0 ands r0, r1 cmp r0, 0 beq _0801F16C movs r0, 0x2 ands r0, r1 lsls r0, 24 lsrs r1, r0, 24 cmp r1, 0 beq _0801F164 adds r0, r2, 0 adds r0, 0x14 adds r0, r3 strb r4, [r0] b _0801F16C .align 2, 0 _0801F160: .4byte gUnknown_203B270 _0801F164: adds r0, r2, 0 adds r0, 0x14 adds r0, r3 strb r1, [r0] _0801F16C: adds r3, 0x1 cmp r3, 0x7 ble _0801F138 ldr r1, [r5] adds r0, r1, 0 adds r0, 0x1C adds r1, 0x14 bl AddMenuCursorSprite_ cmp r7, 0 beq _0801F18C _0801F182: movs r0, 0x1 bl sub_801F280 movs r0, 0x1 b _0801F18E _0801F18C: movs r0, 0 _0801F18E: pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_801EF38 thumb_func_start sub_801F194 sub_801F194: ldr r0, _0801F1A0 ldr r0, [r0] movs r1, 0x34 ldrsh r0, [r0, r1] bx lr .align 2, 0 _0801F1A0: .4byte gUnknown_203B270 thumb_func_end sub_801F194 thumb_func_start sub_801F1A4 sub_801F1A4: ldr r0, _0801F1AC ldr r0, [r0] ldrb r0, [r0, 0x4] bx lr .align 2, 0 _0801F1AC: .4byte gUnknown_203B270 thumb_func_end sub_801F1A4 thumb_func_start sub_801F1B0 sub_801F1B0: push {r4,r5,lr} lsls r0, 24 lsrs r5, r0, 24 lsls r1, 24 lsrs r1, 24 ldr r4, _0801F210 ldr r2, [r4] ldrb r0, [r2, 0x4] cmp r0, 0 bne _0801F1C6 strb r1, [r2, 0x4] _0801F1C6: bl ResetUnusedInputStruct ldr r0, [r4] adds r0, 0x58 movs r1, 0x1 movs r2, 0x1 bl sub_800641C bl sub_801F3F8 adds r1, r0, 0 ldr r0, [r4] strh r1, [r0, 0x3E] adds r0, 0x1C bl sub_8013984 ldr r1, [r4] ldr r0, [r1, 0x10] movs r2, 0x34 ldrsh r1, [r1, r2] bl sub_8092F4C ldr r1, [r4] strh r0, [r1, 0x34] movs r0, 0x1 bl sub_801F280 cmp r5, 0 beq _0801F208 ldr r0, [r4] adds r0, 0x1C bl AddMenuCursorSprite _0801F208: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0801F210: .4byte gUnknown_203B270 thumb_func_end sub_801F1B0 thumb_func_start sub_801F214 sub_801F214: push {r4-r6,lr} ldr r4, _0801F278 ldr r2, [r4] cmp r2, 0 beq _0801F272 ldr r0, [r2, 0x50] lsls r1, r0, 1 adds r1, r0 lsls r1, 3 adds r1, r2, r1 ldr r3, _0801F27C adds r1, 0x58 adds r0, r3, 0 ldm r0!, {r2,r5,r6} stm r1!, {r2,r5,r6} ldm r0!, {r2,r5,r6} stm r1!, {r2,r5,r6} ldr r2, [r4] adds r0, r2, 0 adds r0, 0xB8 ldr r0, [r0] cmp r0, 0 beq _0801F258 ldr r0, [r2, 0x54] lsls r1, r0, 1 adds r1, r0 lsls r1, 3 adds r1, r2, r1 adds r1, 0x58 adds r0, r3, 0 ldm r0!, {r2,r3,r5} stm r1!, {r2,r3,r5} ldm r0!, {r2,r3,r6} stm r1!, {r2,r3,r6} _0801F258: bl ResetUnusedInputStruct ldr r0, [r4] adds r0, 0x58 movs r1, 0x1 movs r2, 0x1 bl sub_800641C ldr r0, [r4] bl MemoryFree movs r0, 0 str r0, [r4] _0801F272: pop {r4-r6} pop {r0} bx r0 .align 2, 0 _0801F278: .4byte gUnknown_203B270 _0801F27C: .4byte gUnknown_80DC240 thumb_func_end sub_801F214 thumb_func_start sub_801F280 sub_801F280: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x28 lsls r0, 24 lsrs r0, 24 mov r10, r0 ldr r4, _0801F30C ldr r0, [r4] ldr r0, [r0, 0x50] bl sub_8008C54 ldr r0, [r4] ldr r0, [r0, 0x50] bl sub_80073B8 ldr r0, [r4] ldr r1, [r0, 0x8] adds r1, 0x4C add r0, sp, 0x4 movs r2, 0xA bl sub_80922B4 ldr r0, _0801F310 add r1, sp, 0x4 bl strcpy ldr r2, _0801F314 ldr r0, [r4] ldr r3, [r0, 0x50] movs r0, 0 str r0, [sp] movs r0, 0xC movs r1, 0 bl xxx_format_and_draw movs r7, 0 ldr r0, [r4] movs r1, 0x36 ldrsh r0, [r0, r1] cmp r7, r0 bge _0801F394 add r5, sp, 0x18 mov r8, r4 movs r0, 0x1 mov r9, r0 _0801F2E0: adds r0, r5, 0 movs r1, 0 movs r2, 0xC bl memset movs r0, 0x6A str r0, [r5, 0x4] mov r1, r8 ldr r2, [r1] lsls r1, r7, 3 ldr r0, [r2, 0x10] adds r4, r0, r1 ldrb r1, [r4] mov r0, r9 ands r0, r1 cmp r0, 0 beq _0801F386 ldrb r0, [r2, 0xC] cmp r0, 0 beq _0801F318 movs r0, 0x2 b _0801F31A .align 2, 0 _0801F30C: .4byte gUnknown_203B270 _0801F310: .4byte gAvailablePokemonNames _0801F314: .4byte gUnknown_80DC28C _0801F318: movs r0, 0x4 _0801F31A: str r0, [sp, 0x18] mov r1, r8 ldr r0, [r1] ldrb r0, [r0, 0x6] cmp r0, 0 beq _0801F328 mov r0, r9 _0801F328: strb r0, [r5, 0x9] cmp r7, 0x3 ble _0801F332 mov r1, r9 strb r1, [r5, 0x8] _0801F332: ldr r0, _0801F3EC adds r1, r4, 0 adds r2, r5, 0 bl sub_80928A0 ldr r2, _0801F3F0 ldr r0, [r2] adds r0, 0x1C adds r1, r7, 0 str r2, [sp, 0x24] bl sub_8013800 adds r6, r0, 0 ldrb r1, [r4] movs r0, 0x2 ands r0, r1 movs r4, 0xD ldr r2, [sp, 0x24] cmp r0, 0 bne _0801F372 movs r4, 0x8 cmp r7, 0 beq _0801F372 ldr r0, [r2] ldr r0, [r0, 0x50] subs r2, r6, 0x2 movs r1, 0x7 str r1, [sp] movs r1, 0xC movs r3, 0x78 bl sub_800792C _0801F372: mov r1, r8 ldr r0, [r1] ldr r3, [r0, 0x50] movs r0, 0 str r0, [sp] adds r0, r4, 0 adds r1, r6, 0 ldr r2, _0801F3F4 bl xxx_format_and_draw _0801F386: adds r7, 0x1 mov r1, r8 ldr r0, [r1] movs r1, 0x36 ldrsh r0, [r0, r1] cmp r7, r0 blt _0801F2E0 _0801F394: ldr r4, _0801F3F0 ldr r0, [r4] ldr r0, [r0, 0x50] bl sub_80073E0 ldr r1, [r4] adds r0, r1, 0 adds r0, 0xB8 ldr r0, [r0] cmp r0, 0 beq _0801F3DC mov r0, r10 cmp r0, 0 beq _0801F3DC ldr r0, [r1, 0x54] bl sub_8008C54 ldr r0, [r4] ldr r0, [r0, 0x54] bl sub_80073B8 ldr r1, [r4] adds r0, r1, 0 adds r0, 0xB8 ldr r2, [r0] ldr r3, [r1, 0x54] movs r0, 0 str r0, [sp] movs r0, 0x8 movs r1, 0 bl xxx_format_and_draw ldr r0, [r4] ldr r0, [r0, 0x54] bl sub_80073E0 _0801F3DC: add sp, 0x28 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0801F3EC: .4byte gUnknown_202DE58 _0801F3F0: .4byte gUnknown_203B270 _0801F3F4: .4byte gUnknown_80DC2A0 thumb_func_end sub_801F280 thumb_func_start sub_801F3F8 sub_801F3F8: push {r4,r5,lr} movs r4, 0 ldr r0, _0801F424 ldr r0, [r0] movs r5, 0x1 ldr r2, [r0, 0x10] movs r3, 0x7 _0801F406: ldrb r1, [r2] adds r0, r5, 0 ands r0, r1 cmp r0, 0 beq _0801F412 adds r4, 0x1 _0801F412: adds r2, 0x8 subs r3, 0x1 cmp r3, 0 bge _0801F406 adds r0, r4, 0 pop {r4,r5} pop {r1} bx r1 .align 2, 0 _0801F424: .4byte gUnknown_203B270 thumb_func_end sub_801F3F8 thumb_func_start sub_801F428 sub_801F428: push {r4-r6,lr} mov r6, r9 mov r5, r8 push {r5,r6} adds r4, r0, 0 mov r9, r1 lsls r4, 16 asrs r4, 16 ldr r5, _0801F50C movs r0, 0xFA lsls r0, 2 movs r1, 0x8 bl MemoryAlloc str r0, [r5] ldr r3, _0801F510 movs r1, 0x58 adds r2, r4, 0 muls r2, r1 ldr r1, [r3] adds r1, r2 str r1, [r0] adds r1, r0, 0 adds r1, 0x8 str r1, [r0, 0x4] movs r4, 0xDF lsls r4, 2 adds r1, r0, r4 mov r2, r9 str r2, [r1] movs r6, 0xE0 lsls r6, 2 adds r2, r0, r6 mov r3, r9 lsls r1, r3, 1 add r1, r9 lsls r1, 3 movs r3, 0xE1 lsls r3, 2 mov r8, r3 add r1, r8 adds r1, r0, r1 str r1, [r2] add r0, r8 bl sub_8006518 ldr r1, [r5] adds r4, r1, r4 ldr r2, [r4] lsls r0, r2, 1 adds r0, r2 lsls r0, 3 adds r1, r0 add r1, r8 ldr r0, _0801F514 ldm r0!, {r2-r4} stm r1!, {r2-r4} ldm r0!, {r2-r4} stm r1!, {r2-r4} ldr r1, [r5] adds r6, r1, r6 ldr r0, [r6] movs r4, 0xF9 lsls r4, 2 adds r1, r4 str r1, [r0, 0x14] movs r2, 0 movs r0, 0x1 strb r0, [r1] ldr r0, [r5] ldr r1, _0801F518 adds r0, r1 strb r2, [r0] ldr r0, [r5] ldr r3, _0801F51C adds r0, r3 movs r1, 0xC strb r1, [r0] ldr r0, [r5] adds r4, 0x3 adds r0, r4 strb r2, [r0] bl ResetUnusedInputStruct ldr r0, [r5] add r0, r8 movs r1, 0x1 movs r2, 0x1 bl sub_800641C ldr r4, [r5] movs r0, 0xD2 lsls r0, 2 adds r4, r0 bl sub_801F7E4 adds r1, r0, 0 adds r0, r4, 0 movs r2, 0x4 mov r3, r9 bl sub_8013818 bl sub_801F690 bl sub_801F700 movs r0, 0x1 pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r6} pop {r1} bx r1 .align 2, 0 _0801F50C: .4byte gUnknown_203B274 _0801F510: .4byte gRecruitedPokemonRef _0801F514: .4byte gUnknown_80DC2C4 _0801F518: .4byte 0x000003e5 _0801F51C: .4byte 0x000003e6 thumb_func_end sub_801F428 thumb_func_start sub_801F520 sub_801F520: push {lr} lsls r0, 24 cmp r0, 0 bne _0801F540 ldr r0, _0801F53C ldr r0, [r0] movs r1, 0xD2 lsls r1, 2 adds r0, r1 bl sub_8013660 movs r0, 0 b _0801F5AE .align 2, 0 _0801F53C: .4byte gUnknown_203B274 _0801F540: ldr r0, _0801F55C ldr r0, [r0] movs r1, 0xD2 lsls r1, 2 adds r0, r1 bl GetKeyPress cmp r0, 0x2 beq _0801F566 cmp r0, 0x2 bgt _0801F560 cmp r0, 0x1 beq _0801F570 b _0801F584 .align 2, 0 _0801F55C: .4byte gUnknown_203B274 _0801F560: cmp r0, 0x4 beq _0801F57A b _0801F584 _0801F566: movs r0, 0x1 bl PlayMenuSoundEffect movs r0, 0x2 b _0801F5AE _0801F570: movs r0, 0 bl PlayMenuSoundEffect movs r0, 0x3 b _0801F5AE _0801F57A: movs r0, 0x4 bl PlayMenuSoundEffect movs r0, 0x4 b _0801F5AE _0801F584: ldr r0, _0801F5A0 ldr r0, [r0] movs r1, 0xD2 lsls r1, 2 adds r0, r1 movs r1, 0x1 bl sub_80138B8 lsls r0, 24 cmp r0, 0 bne _0801F5A4 movs r0, 0 b _0801F5AE .align 2, 0 _0801F5A0: .4byte gUnknown_203B274 _0801F5A4: bl sub_801F690 bl sub_801F700 movs r0, 0x1 _0801F5AE: pop {r1} bx r1 thumb_func_end sub_801F520 thumb_func_start sub_801F5B4 sub_801F5B4: push {r4,lr} ldr r0, _0801F5E8 ldr r1, [r0] ldr r2, [r1, 0x4] ldr r3, _0801F5EC adds r0, r1, r3 movs r4, 0 ldrsh r3, [r0, r4] movs r4, 0xD9 lsls r4, 2 adds r0, r1, r4 movs r4, 0 ldrsh r0, [r0, r4] muls r0, r3 movs r3, 0xD8 lsls r3, 2 adds r1, r3 movs r4, 0 ldrsh r1, [r1, r4] adds r0, r1 lsls r0, 1 adds r2, r0 ldrh r0, [r2] pop {r4} pop {r1} bx r1 .align 2, 0 _0801F5E8: .4byte gUnknown_203B274 _0801F5EC: .4byte 0x00000366 thumb_func_end sub_801F5B4 thumb_func_start sub_801F5F0 sub_801F5F0: push {r4,r5,lr} adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 bl ResetUnusedInputStruct ldr r5, _0801F638 ldr r0, [r5] movs r1, 0xE1 lsls r1, 2 adds r0, r1 movs r1, 0 movs r2, 0 bl sub_800641C ldr r0, [r5] movs r1, 0xD2 lsls r1, 2 adds r0, r1 bl sub_8013984 bl sub_801F690 bl sub_801F700 cmp r4, 0 beq _0801F632 ldr r0, [r5] movs r1, 0xD2 lsls r1, 2 adds r0, r1 bl AddMenuCursorSprite _0801F632: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0801F638: .4byte gUnknown_203B274 thumb_func_end sub_801F5F0 thumb_func_start sub_801F63C sub_801F63C: push {r4-r6,lr} ldr r5, _0801F688 ldr r2, [r5] cmp r2, 0 beq _0801F680 movs r1, 0xDF lsls r1, 2 adds r0, r2, r1 ldr r0, [r0] lsls r1, r0, 1 adds r1, r0 lsls r1, 3 adds r1, r2, r1 movs r4, 0xE1 lsls r4, 2 adds r1, r4 ldr r0, _0801F68C ldm r0!, {r2,r3,r6} stm r1!, {r2,r3,r6} ldm r0!, {r2,r3,r6} stm r1!, {r2,r3,r6} bl ResetUnusedInputStruct ldr r0, [r5] adds r0, r4 movs r1, 0x1 movs r2, 0x1 bl sub_800641C ldr r0, [r5] bl MemoryFree movs r0, 0 str r0, [r5] _0801F680: pop {r4-r6} pop {r0} bx r0 .align 2, 0 _0801F688: .4byte gUnknown_203B274 _0801F68C: .4byte gUnknown_80DC2AC thumb_func_end sub_801F63C thumb_func_start sub_801F690 sub_801F690: push {r4,r5,lr} ldr r5, _0801F6F4 ldr r0, [r5] ldr r1, _0801F6F8 adds r0, r1 movs r2, 0 ldrsh r0, [r0, r2] movs r1, 0xC bl sub_80095E4 adds r0, 0x2 lsls r0, 16 ldr r3, [r5] movs r1, 0xDF lsls r1, 2 adds r4, r3, r1 ldr r2, [r4] lsls r1, r2, 1 adds r1, r2 lsls r1, 3 adds r1, r3, r1 ldr r2, _0801F6FC adds r1, r2 asrs r2, r0, 16 lsrs r0, 16 strh r0, [r1] ldr r1, [r4] lsls r0, r1, 1 adds r0, r1 lsls r0, 3 adds r3, r0 adds r2, 0x2 movs r0, 0xE5 lsls r0, 2 adds r3, r0 strh r2, [r3] bl ResetUnusedInputStruct ldr r0, [r5] movs r1, 0xE1 lsls r1, 2 adds r0, r1 movs r1, 0x1 movs r2, 0x1 bl sub_800641C pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0801F6F4: .4byte gUnknown_203B274 _0801F6F8: .4byte 0x00000362 _0801F6FC: .4byte 0x00000392 thumb_func_end sub_801F690 thumb_func_start sub_801F700 sub_801F700: push {r4-r7,lr} sub sp, 0xB4 ldr r6, _0801F7D4 ldr r0, [r6] movs r4, 0xDF lsls r4, 2 adds r0, r4 ldr r0, [r0] bl sub_8008C54 ldr r0, [r6] adds r0, r4 ldr r0, [r0] bl sub_80073B8 add r5, sp, 0x34 ldr r1, _0801F7D8 ldr r0, [r6] ldr r3, _0801F7DC adds r2, r0, r3 movs r7, 0 ldrsh r2, [r2, r7] adds r2, 0x1 adds r3, 0x2 adds r0, r3 movs r7, 0 ldrsh r3, [r0, r7] adds r0, r5, 0 bl sprintf_2 ldr r0, [r6] adds r0, r4 ldr r3, [r0] movs r0, 0 str r0, [sp] movs r0, 0x10 movs r1, 0 adds r2, r5, 0 bl xxx_call_draw_string movs r4, 0 ldr r0, [r6] ldr r1, _0801F7E0 adds r0, r1 movs r2, 0 ldrsh r0, [r0, r2] cmp r4, r0 bge _0801F7BC adds r5, r6, 0 _0801F762: ldr r1, [r5] ldr r2, [r1, 0x4] ldr r3, _0801F7DC adds r0, r1, r3 movs r6, 0 ldrsh r3, [r0, r6] movs r7, 0xD9 lsls r7, 2 adds r1, r7 movs r6, 0 ldrsh r0, [r1, r6] muls r0, r3 adds r0, r4 lsls r0, 1 adds r2, r0 ldrh r1, [r2] add r0, sp, 0x4 bl sub_8092C84 ldr r0, [r5] subs r7, 0x1C adds r0, r7 adds r1, r4, 0 bl sub_8013800 adds r1, r0, 0 ldr r0, [r5] movs r2, 0xDF lsls r2, 2 adds r0, r2 ldr r3, [r0] movs r0, 0 str r0, [sp] movs r0, 0x8 add r2, sp, 0x4 bl xxx_call_draw_string adds r4, 0x1 ldr r0, [r5] ldr r3, _0801F7E0 adds r0, r3 movs r6, 0 ldrsh r0, [r0, r6] cmp r4, r0 blt _0801F762 _0801F7BC: ldr r0, _0801F7D4 ldr r0, [r0] movs r7, 0xDF lsls r7, 2 adds r0, r7 ldr r0, [r0] bl sub_80073E0 add sp, 0xB4 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0801F7D4: .4byte gUnknown_203B274 _0801F7D8: .4byte gUnknown_80DC2DC _0801F7DC: .4byte 0x00000366 _0801F7E0: .4byte 0x00000362 thumb_func_end sub_801F700 thumb_func_start sub_801F7E4 sub_801F7E4: push {r4,lr} ldr r4, _0801F804 ldr r1, [r4] ldr r0, [r1, 0x4] ldr r1, [r1] bl sub_808E218 ldr r0, [r4] ldr r0, [r0, 0x4] movs r1, 0xCF lsls r1, 2 adds r0, r1 ldr r0, [r0] pop {r4} pop {r1} bx r1 .align 2, 0 _0801F804: .4byte gUnknown_203B274 thumb_func_end sub_801F7E4 thumb_func_start sub_801F808 sub_801F808: push {r4,r5,lr} adds r4, r0, 0 movs r0, 0x1 bl ResetSprites ldr r5, _0801F88C movs r0, 0xD4 movs r1, 0x8 bl MemoryAlloc str r0, [r5] movs r1, 0 str r1, [r0, 0x5C] adds r1, r0, 0 adds r1, 0x64 str r1, [r0, 0x60] adds r0, r1, 0 bl sub_80140B4 bl ResetUnusedInputStruct ldr r0, [r5] adds r0, 0x64 movs r1, 0x1 movs r2, 0x1 bl sub_800641C ldr r0, [r5] str r4, [r0, 0x4] movs r2, 0x4 ldrh r0, [r4, 0x6] cmp r0, 0 bne _0801F862 adds r3, r5, 0 _0801F84C: subs r2, 0x1 cmp r2, 0x1 ble _0801F862 ldr r0, [r3] ldr r1, [r0, 0x4] lsls r0, r2, 1 adds r0, r1 subs r0, 0x2 ldrh r0, [r0] cmp r0, 0 beq _0801F84C _0801F862: ldr r4, _0801F88C ldr r1, [r4] adds r0, r1, 0 adds r0, 0x28 ldr r3, [r1, 0x5C] adds r1, r2, 0 movs r2, 0x1 bl sub_8013818 ldr r0, [r4] adds r0, 0xC8 bl sub_801317C movs r0, 0 bl sub_801F918 movs r0, 0x1 pop {r4,r5} pop {r1} bx r1 .align 2, 0 _0801F88C: .4byte gUnknown_203B278 thumb_func_end sub_801F808 thumb_func_start sub_801F890 sub_801F890: push {lr} ldr r0, _0801F8A8 ldr r0, [r0] ldr r0, [r0] cmp r0, 0x1 beq _0801F8BC cmp r0, 0x1 bgt _0801F8AC cmp r0, 0 beq _0801F8B6 b _0801F8C6 .align 2, 0 _0801F8A8: .4byte gUnknown_203B278 _0801F8AC: cmp r0, 0x2 beq _0801F8C6 cmp r0, 0x3 beq _0801F8C2 b _0801F8C6 _0801F8B6: bl sub_801FA58 b _0801F8CA _0801F8BC: bl sub_801FAD4 b _0801F8CA _0801F8C2: movs r0, 0x3 b _0801F8CC _0801F8C6: movs r0, 0x2 b _0801F8CC _0801F8CA: movs r0, 0 _0801F8CC: pop {r1} bx r1 thumb_func_end sub_801F890 thumb_func_start sub_801F8D0 sub_801F8D0: push {r4,r5,lr} ldr r4, _0801F910 ldr r2, [r4] cmp r2, 0 beq _0801F90A ldr r0, [r2, 0x5C] lsls r1, r0, 1 adds r1, r0 lsls r1, 3 adds r1, r2, r1 adds r1, 0x64 ldr r0, _0801F914 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, 0x64 movs r1, 0x1 movs r2, 0x1 bl sub_800641C ldr r0, [r4] bl MemoryFree movs r0, 0 str r0, [r4] _0801F90A: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0801F910: .4byte gUnknown_203B278 _0801F914: .4byte gUnknown_80DC2F8 thumb_func_end sub_801F8D0 thumb_func_start sub_801F918 sub_801F918: push {lr} ldr r1, _0801F92C ldr r1, [r1] str r0, [r1] bl sub_801F930 bl sub_801F9A4 pop {r0} bx r0 .align 2, 0 _0801F92C: .4byte gUnknown_203B278 thumb_func_end sub_801F918 thumb_func_start sub_801F930 sub_801F930: push {r4,lr} ldr r4, _0801F94C ldr r0, [r4] adds r0, 0x64 bl sub_80140B4 ldr r2, [r4] ldr r3, [r2] cmp r3, 0 beq _0801F950 cmp r3, 0x1 beq _0801F98C b _0801F99C .align 2, 0 _0801F94C: .4byte gUnknown_203B278 _0801F950: ldr r0, [r2, 0x60] adds r1, r2, 0 adds r1, 0xC4 str r1, [r0, 0x14] adds r0, r2, 0 adds r0, 0x48 ldrh r0, [r0] strb r0, [r1] ldr r0, [r4] adds r1, r0, 0 adds r1, 0x46 ldrh r1, [r1] adds r0, 0xC5 strb r1, [r0] ldr r0, [r4] adds r0, 0xC6 movs r1, 0x10 strb r1, [r0] ldr r0, [r4] adds r0, 0xC7 strb r3, [r0] bl ResetUnusedInputStruct ldr r0, [r4] adds r0, 0x64 movs r1, 0x1 movs r2, 0x1 bl sub_800641C b _0801F99C _0801F98C: bl ResetUnusedInputStruct ldr r0, [r4] adds r0, 0x64 movs r1, 0x1 movs r2, 0x1 bl sub_800641C _0801F99C: pop {r4} pop {r0} bx r0 thumb_func_end sub_801F930 thumb_func_start sub_801F9A4 sub_801F9A4: push {r4,r5,lr} sub sp, 0x4 ldr r5, _0801F9EC ldr r0, [r5] ldr r4, [r0] cmp r4, 0x1 beq _0801F9F0 cmp r4, 0x1 bgt _0801FA48 cmp r4, 0 bne _0801FA48 ldr r0, [r0, 0x5C] bl sub_8008C54 ldr r3, [r5] adds r2, r3, 0 adds r2, 0x46 movs r1, 0 ldrsh r0, [r2, r1] ldr r1, [r3, 0x4] lsls r0, 1 adds r0, r1 ldrh r0, [r0] strh r0, [r3, 0x8] movs r1, 0 ldrsh r0, [r2, r1] ldrh r1, [r3, 0x8] ldr r2, [r3, 0x5C] adds r3, 0x14 bl sub_8093D9C ldr r1, [r5] str r0, [r1, 0x10] str r4, [r1, 0x24] b _0801FA48 .align 2, 0 _0801F9EC: .4byte gUnknown_203B278 _0801F9F0: ldr r0, [r0, 0x5C] bl sub_8008C54 ldr r0, [r5] ldr r0, [r0, 0x5C] bl sub_80073B8 ldr r0, [r5] ldr r1, [r0, 0xC] lsls r1, 2 adds r0, 0x14 adds r0, r1 ldr r1, [r0] ldr r0, _0801FA50 ldr r1, [r1] bl strcpy ldr r2, _0801FA54 ldr r0, [r5] ldr r3, [r0, 0x5C] movs r4, 0 str r4, [sp] movs r0, 0x10 movs r1, 0 bl xxx_format_and_draw ldr r3, [r5] ldr r1, [r3, 0xC] lsls r1, 2 adds r0, r3, 0 adds r0, 0x14 adds r0, r1 ldr r0, [r0] ldr r2, [r0, 0x4] ldr r3, [r3, 0x5C] str r4, [sp] movs r0, 0x4 movs r1, 0x10 bl xxx_format_and_draw ldr r0, [r5] ldr r0, [r0, 0x5C] bl sub_80073E0 _0801FA48: add sp, 0x4 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0801FA50: .4byte gAvailablePokemonNames _0801FA54: .4byte gUnknown_80DC310 thumb_func_end sub_801F9A4 thumb_func_start sub_801FA58 sub_801FA58: push {r4,lr} ldr r0, _0801FAA4 ldr r2, [r0] ldr r1, [r2, 0x10] adds r4, r0, 0 cmp r1, 0 beq _0801FA7C ldr r0, [r2, 0x24] movs r1, 0x8 ands r0, r1 cmp r0, 0 beq _0801FA74 bl sub_8013F84 _0801FA74: ldr r1, [r4] ldr r0, [r1, 0x24] adds r0, 0x1 str r0, [r1, 0x24] _0801FA7C: ldr r1, [r4] adds r0, r1, 0 adds r0, 0xC8 ldr r1, [r1, 0x5C] bl sub_8012A64 cmp r0, 0x1 beq _0801FAA8 cmp r0, 0x2 beq _0801FAC2 ldr r0, [r4] adds r0, 0x28 bl sub_8013938 lsls r0, 24 cmp r0, 0 beq _0801FACE movs r0, 0 b _0801FACA .align 2, 0 _0801FAA4: .4byte gUnknown_203B278 _0801FAA8: movs r0, 0 bl PlayMenuSoundEffect ldr r1, [r4] ldr r0, [r1, 0x10] cmp r0, 0 beq _0801FABE movs r0, 0 str r0, [r1, 0xC] movs r0, 0x1 b _0801FACA _0801FABE: movs r0, 0x3 b _0801FACA _0801FAC2: movs r0, 0x1 bl PlayMenuSoundEffect movs r0, 0x2 _0801FACA: bl sub_801F918 _0801FACE: pop {r4} pop {r0} bx r0 thumb_func_end sub_801FA58 thumb_func_start sub_801FAD4 sub_801FAD4: push {r4,lr} ldr r0, _0801FB14 ldr r3, [r0] ldr r1, [r3, 0x10] subs r1, 0x1 ldr r2, [r3, 0xC] adds r4, r0, 0 cmp r2, r1 bge _0801FAFC ldr r0, [r3, 0x24] movs r1, 0x8 ands r0, r1 cmp r0, 0 beq _0801FAF4 bl sub_8013F84 _0801FAF4: ldr r1, [r4] ldr r0, [r1, 0x24] adds r0, 0x1 str r0, [r1, 0x24] _0801FAFC: ldr r1, [r4] adds r0, r1, 0 adds r0, 0xC8 ldr r1, [r1, 0x5C] bl sub_8012A64 cmp r0, 0x1 beq _0801FB18 cmp r0, 0x2 beq _0801FB3C b _0801FB48 .align 2, 0 _0801FB14: .4byte gUnknown_203B278 _0801FB18: movs r0, 0 bl PlayMenuSoundEffect ldr r0, [r4] ldr r1, [r0, 0xC] adds r1, 0x1 str r1, [r0, 0xC] ldr r0, [r0, 0x10] cmp r1, r0 bge _0801FB34 movs r0, 0x1 bl sub_801F918 b _0801FB48 _0801FB34: movs r0, 0 bl sub_801F918 b _0801FB48 _0801FB3C: movs r0, 0x1 bl PlayMenuSoundEffect movs r0, 0x2 bl sub_801F918 _0801FB48: pop {r4} pop {r0} bx r0 thumb_func_end sub_801FAD4 thumb_func_start sub_801FB50 sub_801FB50: push {r4-r7,lr} adds r4, r0, 0 bl ResetUnusedInputStruct movs r0, 0 movs r1, 0x1 movs r2, 0x1 bl sub_800641C ldr r6, _0801FBC0 movs r0, 0xF0 lsls r0, 1 movs r1, 0x8 bl MemoryAlloc str r0, [r6] movs r7, 0 str r7, [r0, 0x70] str r7, [r0, 0x74] str r7, [r0, 0x78] str r4, [r0] strb r7, [r0, 0x15] ldr r0, _0801FBC4 ldr r4, _0801FBC8 adds r1, r4, 0 bl CopyYellowSpeciesNametoBuffer ldr r5, _0801FBCC adds r0, r5, 0 adds r1, r4, 0 bl CopyYellowSpeciesNametoBuffer adds r0, r4, 0 bl GetMonSpecies adds r1, r0, 0 adds r0, r5, 0 subs r0, 0x50 bl strcpy subs r5, 0xF0 bl GetPlayerPokemonStruct adds r1, r0, 0 adds r0, r5, 0 bl PrintPokeNameToBuffer ldr r2, [r6] ldr r0, [r2] cmp r0, 0x1 bne _0801FBD0 movs r1, 0xBE lsls r1, 1 adds r0, r2, r1 str r7, [r0] b _0801FBDE .align 2, 0 _0801FBC0: .4byte gUnknown_203B27C _0801FBC4: .4byte gUnknown_202E5D8 _0801FBC8: .4byte 0x00000155 _0801FBCC: .4byte gUnknown_202E1C8 _0801FBD0: movs r3, 0xBE lsls r3, 1 adds r1, r2, r3 movs r4, 0xB6 lsls r4, 1 adds r0, r2, r4 str r0, [r1] _0801FBDE: ldr r0, _0801FC34 bl GetDialogueSpriteDataPtr ldr r2, _0801FC38 ldr r3, [r2] movs r4, 0xB6 lsls r4, 1 adds r1, r3, r4 str r0, [r1] adds r4, 0x4 adds r1, r3, r4 ldr r0, [r0, 0x4] str r0, [r1] movs r1, 0xBC lsls r1, 1 adds r0, r3, r1 movs r1, 0 strb r1, [r0] ldr r0, [r2] ldr r3, _0801FC3C adds r0, r3 strb r1, [r0] ldr r0, [r2] adds r4, 0xA adds r0, r4 strb r1, [r0] ldr r2, [r2] movs r0, 0xBA lsls r0, 1 adds r1, r2, r0 movs r0, 0x2 strh r0, [r1] subs r3, 0x3 adds r1, r2, r3 movs r0, 0x8 strh r0, [r1] movs r0, 0 bl sub_801FDA8 movs r0, 0x1 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _0801FC34: .4byte 0x00000155 _0801FC38: .4byte gUnknown_203B27C _0801FC3C: .4byte 0x00000179 thumb_func_end sub_801FB50 thumb_func_start sub_801FC40 sub_801FC40: push {lr} ldr r1, _0801FC5C ldr r0, [r1] ldr r0, [r0, 0x4] adds r2, r1, 0 cmp r0, 0x22 bls _0801FC50 b _0801FD70 _0801FC50: lsls r0, 2 ldr r1, _0801FC60 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _0801FC5C: .4byte gUnknown_203B27C _0801FC60: .4byte _0801FC64 .align 2, 0 _0801FC64: .4byte _0801FCF0 .4byte _0801FCF0 .4byte _0801FCF6 .4byte _0801FD70 .4byte _0801FD70 .4byte _0801FD70 .4byte _0801FD70 .4byte _0801FCFC .4byte _0801FD02 .4byte _0801FD70 .4byte _0801FD70 .4byte _0801FD70 .4byte _0801FD70 .4byte _0801FD50 .4byte _0801FD70 .4byte _0801FD08 .4byte _0801FD08 .4byte _0801FD0E .4byte _0801FD14 .4byte _0801FD1A .4byte _0801FD70 .4byte _0801FD20 .4byte _0801FD20 .4byte _0801FD26 .4byte _0801FD2C .4byte _0801FD70 .4byte _0801FD70 .4byte _0801FD70 .4byte _0801FD70 .4byte _0801FD32 .4byte _0801FD38 .4byte _0801FD38 .4byte _0801FD3E .4byte _0801FD44 .4byte _0801FD4A _0801FCF0: bl sub_8021154 b _0801FD74 _0801FCF6: bl sub_80209AC b _0801FD74 _0801FCFC: bl sub_80209FC b _0801FD74 _0801FD02: bl sub_8020A34 b _0801FD74 _0801FD08: bl sub_8020A80 b _0801FD74 _0801FD0E: bl sub_8020B38 b _0801FD74 _0801FD14: bl sub_8020C2C b _0801FD74 _0801FD1A: bl sub_8020C48 b _0801FD74 _0801FD20: bl sub_8020C64 b _0801FD74 _0801FD26: bl sub_8020CC0 b _0801FD74 _0801FD2C: bl sub_8020D74 b _0801FD74 _0801FD32: bl sub_8020D90 b _0801FD74 _0801FD38: bl sub_8020DCC b _0801FD74 _0801FD3E: bl sub_8020EB4 b _0801FD74 _0801FD44: bl sub_80210C8 b _0801FD74 _0801FD4A: bl sub_80210E4 b _0801FD74 _0801FD50: ldr r0, [r2] ldrb r0, [r0, 0x15] cmp r0, 0x1 bne _0801FD68 ldr r0, _0801FD6C ldr r1, [r0] movs r0, 0x98 lsls r0, 2 adds r1, r0 ldr r0, [r1] subs r0, 0x96 str r0, [r1] _0801FD68: movs r0, 0x3 b _0801FD76 .align 2, 0 _0801FD6C: .4byte gTeamInventory_203B460 _0801FD70: bl sub_8021130 _0801FD74: movs r0, 0 _0801FD76: pop {r1} bx r1 thumb_func_end sub_801FC40 thumb_func_start sub_801FD7C sub_801FD7C: push {r4,lr} ldr r4, _0801FDA4 ldr r0, [r4] cmp r0, 0 beq _0801FD9C movs r1, 0xB6 lsls r1, 1 adds r0, r1 ldr r0, [r0] bl CloseFile ldr r0, [r4] bl MemoryFree movs r0, 0 str r0, [r4] _0801FD9C: pop {r4} pop {r0} bx r0 .align 2, 0 _0801FDA4: .4byte gUnknown_203B27C thumb_func_end sub_801FD7C thumb_func_start sub_801FDA8 sub_801FDA8: push {lr} ldr r1, _0801FDBC ldr r1, [r1] str r0, [r1, 0x4] bl sub_801FDC0 bl sub_801FF28 pop {r0} bx r0 .align 2, 0 _0801FDBC: .4byte gUnknown_203B27C thumb_func_end sub_801FDA8 thumb_func_start sub_801FDC0 sub_801FDC0: push {r4-r7,lr} mov r7, r8 push {r7} ldr r4, _0801FDE8 ldr r0, [r4] movs r5, 0xC0 lsls r5, 1 adds r0, r5 bl sub_8006518 ldr r0, [r4] ldr r1, [r0, 0x4] cmp r1, 0x11 beq _0801FE38 cmp r1, 0x11 bgt _0801FDEC cmp r1, 0x2 beq _0801FDF6 b _0801FED4 .align 2, 0 _0801FDE8: .4byte gUnknown_203B27C _0801FDEC: cmp r1, 0x17 beq _0801FE6C cmp r1, 0x20 beq _0801FE88 b _0801FED4 _0801FDF6: adds r0, r5 movs r1, 0x80 strb r1, [r0] ldr r0, [r4] movs r2, 0xCC lsls r2, 1 adds r0, r2 strb r1, [r0] ldr r0, [r4] movs r3, 0xD8 lsls r3, 1 adds r0, r3 strb r1, [r0] ldr r1, [r4] movs r6, 0xE4 lsls r6, 1 adds r1, r6 ldr r0, _0801FE34 ldm r0!, {r2,r3,r7} stm r1!, {r2,r3,r7} ldm r0!, {r2,r6,r7} stm r1!, {r2,r6,r7} bl ResetUnusedInputStruct ldr r0, [r4] adds r0, r5 movs r1, 0x1 movs r2, 0 bl sub_800641C b _0801FF14 .align 2, 0 _0801FE34: .4byte gUnknown_80DC37C _0801FE38: bl sub_80205D0 ldr r2, [r4] movs r0, 0xD8 lsls r0, 1 adds r2, r0 ldr r1, _0801FE68 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, 0x7C bl sub_8012CAC bl ResetUnusedInputStruct ldr r0, [r4] movs r6, 0xC0 lsls r6, 1 adds r0, r6 b _0801FEC2 .align 2, 0 _0801FE68: .4byte gUnknown_80DC334 _0801FE6C: bl sub_802069C ldr r2, [r4] movs r0, 0xD8 lsls r0, 1 adds r2, r0 ldr r1, _0801FE84 ldm r1!, {r3,r6,r7} stm r2!, {r3,r6,r7} ldm r1!, {r3,r6,r7} stm r2!, {r3,r6,r7} b _0801FEB0 .align 2, 0 _0801FE84: .4byte gUnknown_80DC334 _0801FE88: bl CreateGulpinLinkMenu ldr r1, [r4] movs r7, 0xCC lsls r7, 1 adds r1, r7 ldr r0, _0801FECC ldm r0!, {r2,r3,r6} stm r1!, {r2,r3,r6} ldm r0!, {r2,r3,r7} stm r1!, {r2,r3,r7} ldr r2, [r4] movs r0, 0xD8 lsls r0, 1 adds r2, r0 ldr r1, _0801FED0 ldm r1!, {r3,r6,r7} stm r2!, {r3,r6,r7} ldm r1!, {r3,r6,r7} stm r2!, {r3,r6,r7} _0801FEB0: ldr r1, [r4] adds r0, r1, r0 adds r1, 0x7C bl sub_8012CAC bl ResetUnusedInputStruct ldr r0, [r4] adds r0, r5 _0801FEC2: movs r1, 0x1 movs r2, 0x1 bl sub_800641C b _0801FF14 .align 2, 0 _0801FECC: .4byte gUnknown_80DC31C _0801FED0: .4byte gUnknown_80DC34C _0801FED4: ldr r5, _0801FF20 mov r12, r5 movs r6, 0xC0 lsls r6, 1 mov r8, r6 ldr r4, _0801FF24 movs r3, 0 movs r2, 0x3 _0801FEE4: mov r7, r12 ldr r1, [r7] 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 _0801FEE4 bl ResetUnusedInputStruct ldr r0, _0801FF20 ldr r0, [r0] movs r1, 0xC0 lsls r1, 1 adds r0, r1 movs r1, 0x1 movs r2, 0x1 bl sub_800641C _0801FF14: pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0801FF20: .4byte gUnknown_203B27C _0801FF24: .4byte gUnknown_80DC31C thumb_func_end sub_801FDC0 thumb_func_start sub_801FF28 sub_801FF28: push {r4,r5,lr} sub sp, 0x14 ldr r1, _0801FF44 ldr r0, [r1] ldr r0, [r0, 0x4] adds r5, r1, 0 cmp r0, 0x23 bls _0801FF3A b _08020562 _0801FF3A: lsls r0, 2 ldr r1, _0801FF48 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _0801FF44: .4byte gUnknown_203B27C _0801FF48: .4byte _0801FF4C .align 2, 0 _0801FF4C: .4byte _0801FFDC .4byte _08020018 .4byte _08020064 .4byte _0802006C .4byte _08020090 .4byte _080200B4 .4byte _080200D8 .4byte _080200FC .4byte _08020144 .4byte _0802018C .4byte _080201B0 .4byte _080201D4 .4byte _080201F8 .4byte _08020562 .4byte _0802021C .4byte _08020240 .4byte _0802024E .4byte _08020256 .4byte _08020274 .4byte _08020282 .4byte _0802028E .4byte _080202B0 .4byte _080202BE .4byte _080202C6 .4byte _080202E4 .4byte _08020304 .4byte _08020344 .4byte _080203B0 .4byte _080203D4 .4byte _0802038C .4byte _080203F8 .4byte _08020428 .4byte _08020434 .4byte _08020460 .4byte _08020478 .4byte _08020500 _0801FFDC: ldr r0, [r5] movs r4, 0x2 str r4, [r0, 0x6C] bl CreateGulpinShopMenu ldr r5, [r5] str r4, [r5, 0x8] ldr r2, _08020014 ldr r1, [r5] movs r0, 0x64 muls r0, r1 adds r0, r2 ldr r0, [r0] ldr r2, [r5, 0x6C] adds r3, r5, 0 adds r3, 0x7C adds r1, r5, 0 adds r1, 0xBC str r1, [sp] movs r1, 0x4 str r1, [sp, 0x4] movs r1, 0 str r1, [sp, 0x8] movs r4, 0xBE lsls r4, 1 adds r1, r5, r4 b _0802004C .align 2, 0 _08020014: .4byte gGulpinDialogue _08020018: bl CreateGulpinShopMenu ldr r0, _0802005C ldr r4, [r0] movs r0, 0x2 str r0, [r4, 0x8] ldr r1, _08020060 ldr r2, [r4] movs r0, 0x64 muls r0, r2 adds r1, 0x4 adds r0, r1 ldr r0, [r0] ldr r2, [r4, 0x6C] adds r3, r4, 0 adds r3, 0x7C adds r1, r4, 0 adds r1, 0xBC str r1, [sp] movs r1, 0x4 str r1, [sp, 0x4] movs r1, 0 str r1, [sp, 0x8] movs r5, 0xBE lsls r5, 1 adds r1, r4, r5 _0802004C: ldr r1, [r1] str r1, [sp, 0xC] movs r1, 0xC str r1, [sp, 0x10] movs r1, 0 bl sub_8014248 b _08020562 .align 2, 0 _0802005C: .4byte gUnknown_203B27C _08020060: .4byte gGulpinDialogue _08020064: movs r0, 0x3 bl DrawTeamMoneyBox b _08020562 _0802006C: ldr r2, [r5] movs r0, 0x1F str r0, [r2, 0x8] ldr r1, _0802008C ldr r3, [r2] movs r0, 0x64 muls r0, r3 adds r1, 0x8 adds r0, r1 ldr r0, [r0] movs r1, 0xBE lsls r1, 1 adds r2, r1 ldr r2, [r2] b _0802052C .align 2, 0 _0802008C: .4byte gGulpinDialogue _08020090: ldr r2, [r5] movs r0, 0x1F str r0, [r2, 0x8] ldr r1, _080200B0 ldr r3, [r2] movs r0, 0x64 muls r0, r3 adds r1, 0xC adds r0, r1 ldr r0, [r0] movs r4, 0xBE lsls r4, 1 adds r2, r4 ldr r2, [r2] b _0802052C .align 2, 0 _080200B0: .4byte gGulpinDialogue _080200B4: ldr r2, [r5] movs r0, 0x1F str r0, [r2, 0x8] ldr r1, _080200D4 ldr r3, [r2] movs r0, 0x64 muls r0, r3 adds r1, 0x10 adds r0, r1 ldr r0, [r0] movs r5, 0xBE lsls r5, 1 adds r2, r5 ldr r2, [r2] b _0802052C .align 2, 0 _080200D4: .4byte gGulpinDialogue _080200D8: ldr r2, [r5] movs r0, 0x1F str r0, [r2, 0x8] ldr r1, _080200F8 ldr r3, [r2] movs r0, 0x64 muls r0, r3 adds r1, 0x14 adds r0, r1 ldr r0, [r0] movs r1, 0xBE lsls r1, 1 adds r2, r1 ldr r2, [r2] b _0802052C .align 2, 0 _080200F8: .4byte gGulpinDialogue _080200FC: bl sub_8020900 ldr r1, _0802013C ldr r0, _08020140 ldr r4, [r0] ldr r2, [r4] movs r0, 0x64 muls r0, r2 adds r1, 0x18 adds r0, r1 ldr r0, [r0] adds r3, r4, 0 adds r3, 0x7C adds r1, r4, 0 adds r1, 0xBC str r1, [sp] movs r1, 0x4 str r1, [sp, 0x4] movs r1, 0 str r1, [sp, 0x8] movs r2, 0xBE lsls r2, 1 adds r1, r4, r2 ldr r1, [r1] str r1, [sp, 0xC] movs r1, 0xC str r1, [sp, 0x10] movs r1, 0 movs r2, 0x10 bl sub_8014248 b _08020562 .align 2, 0 _0802013C: .4byte gGulpinDialogue _08020140: .4byte gUnknown_203B27C _08020144: bl sub_8020950 ldr r1, _08020184 ldr r0, _08020188 ldr r4, [r0] ldr r2, [r4] movs r0, 0x64 muls r0, r2 adds r1, 0x54 adds r0, r1 ldr r0, [r0] adds r3, r4, 0 adds r3, 0x7C adds r1, r4, 0 adds r1, 0xBC str r1, [sp] movs r1, 0x4 str r1, [sp, 0x4] movs r1, 0 str r1, [sp, 0x8] movs r5, 0xBE lsls r5, 1 adds r1, r4, r5 ldr r1, [r1] str r1, [sp, 0xC] movs r1, 0xC str r1, [sp, 0x10] movs r1, 0 movs r2, 0xD bl sub_8014248 b _08020562 .align 2, 0 _08020184: .4byte gGulpinDialogue _08020188: .4byte gUnknown_203B27C _0802018C: ldr r2, [r5] movs r0, 0x1 str r0, [r2, 0x8] ldr r1, _080201AC ldr r3, [r2] movs r0, 0x64 muls r0, r3 adds r1, 0x58 adds r0, r1 ldr r0, [r0] movs r1, 0xBE lsls r1, 1 adds r2, r1 ldr r2, [r2] b _0802052C .align 2, 0 _080201AC: .4byte gGulpinDialogue _080201B0: ldr r2, [r5] movs r0, 0x1 str r0, [r2, 0x8] ldr r1, _080201D0 ldr r3, [r2] movs r0, 0x64 muls r0, r3 adds r1, 0x5C adds r0, r1 ldr r0, [r0] movs r4, 0xBE lsls r4, 1 adds r2, r4 ldr r2, [r2] b _0802052C .align 2, 0 _080201D0: .4byte gGulpinDialogue _080201D4: ldr r2, [r5] movs r0, 0x1 str r0, [r2, 0x8] ldr r1, _080201F4 ldr r3, [r2] movs r0, 0x64 muls r0, r3 adds r1, 0x60 adds r0, r1 ldr r0, [r0] movs r5, 0xBE lsls r5, 1 adds r2, r5 ldr r2, [r2] b _0802052C .align 2, 0 _080201F4: .4byte gGulpinDialogue _080201F8: ldr r2, [r5] movs r0, 0xD str r0, [r2, 0x8] ldr r1, _08020218 ldr r3, [r2] movs r0, 0x64 muls r0, r3 adds r1, 0x1C adds r0, r1 ldr r0, [r0] movs r1, 0xBE lsls r1, 1 adds r2, r1 ldr r2, [r2] b _0802052C .align 2, 0 _08020218: .4byte gGulpinDialogue _0802021C: ldr r2, [r5] movs r0, 0xF str r0, [r2, 0x8] ldr r1, _0802023C ldr r3, [r2] movs r0, 0x64 muls r0, r3 adds r1, 0x20 adds r0, r1 ldr r0, [r0] movs r4, 0xBE lsls r4, 1 adds r2, r4 ldr r2, [r2] b _0802052C .align 2, 0 _0802023C: .4byte gGulpinDialogue _08020240: movs r0, 0x2 movs r1, 0 movs r2, 0 movs r3, 0xA bl sub_8023868 b _08020562 _0802024E: movs r0, 0x1 bl sub_8023B7C b _08020562 _08020256: bl sub_8023DA4 ldr r0, _08020270 ldr r2, [r0] adds r0, r2, 0 adds r0, 0xCC adds r1, r2, 0 adds r1, 0x7C adds r3, r2, 0 adds r3, 0xBC ldr r2, [r2, 0x70] b _0802044C .align 2, 0 _08020270: .4byte gUnknown_203B27C _08020274: ldr r0, [r5] movs r5, 0xC ldrsh r0, [r0, r5] movs r1, 0x2 bl sub_8024458 b _08020562 _08020282: ldr r0, [r5] movs r1, 0xC ldrsh r0, [r0, r1] bl sub_801BEEC b _08020562 _0802028E: ldr r2, [r5] movs r0, 0x15 str r0, [r2, 0x8] ldr r1, _080202AC ldr r3, [r2] movs r0, 0x64 muls r0, r3 adds r1, 0x24 adds r0, r1 ldr r0, [r0] movs r4, 0xBE lsls r4, 1 adds r2, r4 ldr r2, [r2] b _0802052C .align 2, 0 _080202AC: .4byte gGulpinDialogue _080202B0: ldr r0, [r5] movs r5, 0xC ldrsh r0, [r0, r5] movs r1, 0 bl sub_801F428 b _08020562 _080202BE: movs r0, 0x1 bl sub_801F5F0 b _08020562 _080202C6: bl sub_801F700 ldr r0, _080202E0 ldr r2, [r0] adds r0, r2, 0 adds r0, 0xCC adds r1, r2, 0 adds r1, 0x7C adds r3, r2, 0 adds r3, 0xBC ldr r2, [r2, 0x74] b _0802044C .align 2, 0 _080202E0: .4byte gUnknown_203B27C _080202E4: ldr r0, [r5] ldrh r1, [r0, 0x1C] adds r0, 0x64 strh r1, [r0] movs r2, 0x1 adds r4, r5, 0 movs r3, 0 _080202F2: ldr r0, [r4] lsls r1, r2, 1 adds r0, 0x64 adds r0, r1 strh r3, [r0] adds r2, 0x1 cmp r2, 0x3 ble _080202F2 b _0802046E _08020304: ldr r1, [r5] adds r0, r1, 0 adds r0, 0x24 ldr r1, [r1, 0x10] adds r1, 0x2C bl sub_8094060 ldr r1, [r5] movs r0, 0x10 str r0, [r1, 0x8] ldr r0, _0802033C ldrh r1, [r1, 0x1E] bl sub_8092C84 ldr r1, _08020340 ldr r2, [r5] ldr r3, [r2] movs r0, 0x64 muls r0, r3 adds r1, 0x28 adds r0, r1 ldr r0, [r0] movs r1, 0xBE lsls r1, 1 adds r2, r1 ldr r2, [r2] b _0802052C .align 2, 0 _0802033C: .4byte gAvailablePokemonNames _08020340: .4byte gGulpinDialogue _08020344: ldr r1, [r5] adds r0, r1, 0 adds r0, 0x24 ldr r1, [r1, 0x10] adds r1, 0x2C bl sub_8094060 ldr r3, [r5] movs r0, 0x10 str r0, [r3, 0x8] ldrb r0, [r3, 0x14] cmp r0, 0 beq _08020370 ldr r1, _0802036C ldr r2, [r3] movs r0, 0x64 muls r0, r2 adds r1, 0x38 b _08020520 .align 2, 0 _0802036C: .4byte gGulpinDialogue _08020370: ldr r1, _08020388 ldr r2, [r3] movs r0, 0x64 muls r0, r2 adds r1, 0x34 adds r0, r1 ldr r0, [r0] movs r4, 0xBE lsls r4, 1 adds r1, r3, r4 b _0802052A .align 2, 0 _08020388: .4byte gGulpinDialogue _0802038C: ldr r2, [r5] ldr r0, [r2] cmp r0, 0 bne _080203A2 movs r5, 0xC ldrsh r1, [r2, r5] adds r2, 0x24 movs r0, 0 bl DisplayGulpinDialogueSprite b _08020562 _080203A2: movs r0, 0xC ldrsh r1, [r2, r0] adds r2, 0x24 movs r0, 0x1 bl DisplayGulpinDialogueSprite b _08020562 _080203B0: ldr r2, [r5] movs r0, 0x10 str r0, [r2, 0x8] ldr r1, _080203D0 ldr r3, [r2] movs r0, 0x64 muls r0, r3 adds r1, 0x3C adds r0, r1 ldr r0, [r0] movs r1, 0xBE lsls r1, 1 adds r2, r1 ldr r2, [r2] b _0802052C .align 2, 0 _080203D0: .4byte gGulpinDialogue _080203D4: ldr r2, [r5] movs r0, 0x10 str r0, [r2, 0x8] ldr r1, _080203F4 ldr r3, [r2] movs r0, 0x64 muls r0, r3 adds r1, 0x40 adds r0, r1 ldr r0, [r0] movs r4, 0xBE lsls r4, 1 adds r2, r4 ldr r2, [r2] b _0802052C .align 2, 0 _080203F4: .4byte gGulpinDialogue _080203F8: ldr r1, [r5] adds r0, r1, 0 adds r0, 0x24 ldr r1, [r1, 0x10] adds r1, 0x2C bl sub_809401C ldr r0, [r5] movs r5, 0xC ldrsh r1, [r0, r5] adds r2, r0, 0 adds r2, 0x24 ldrb r3, [r0, 0x15] ldr r0, _08020424 str r0, [sp] movs r0, 0 str r0, [sp, 0x4] movs r0, 0x1 bl sub_801EE10 b _08020562 .align 2, 0 _08020424: .4byte gUnknown_80DC394 _08020428: ldr r0, [r5] ldrb r1, [r0, 0x15] movs r0, 0x1 bl sub_801F1B0 b _08020562 _08020434: movs r0, 0 bl sub_801F280 ldr r0, _0802045C ldr r2, [r0] adds r0, r2, 0 adds r0, 0xCC adds r1, r2, 0 adds r1, 0x7C adds r3, r2, 0 adds r3, 0xBC ldr r2, [r2, 0x78] _0802044C: str r2, [sp] movs r2, 0x2 str r2, [sp, 0x4] movs r2, 0 bl sub_8012D60 b _08020562 .align 2, 0 _0802045C: .4byte gUnknown_203B27C _08020460: ldr r2, [r5] ldr r0, [r2, 0x18] adds r1, r2, 0 adds r1, 0x24 adds r2, 0x64 bl sub_8093560 _0802046E: ldr r0, [r5] adds r0, 0x64 bl sub_801F808 b _08020562 _08020478: bl sub_80208B0 ldr r0, _080204B8 ldr r4, _080204BC ldr r1, [r4] ldrh r1, [r1, 0x20] bl sub_8092C84 ldr r4, [r4] ldrb r5, [r4, 0x14] cmp r5, 0 beq _080204C4 ldr r1, _080204C0 ldr r2, [r4] movs r0, 0x64 muls r0, r2 adds r1, 0x48 adds r0, r1 ldr r0, [r0] adds r3, r4, 0 adds r3, 0x7C adds r1, r4, 0 adds r1, 0xBC str r1, [sp] movs r1, 0x4 str r1, [sp, 0x4] movs r1, 0 str r1, [sp, 0x8] movs r2, 0xBE lsls r2, 1 adds r1, r4, r2 b _080204E8 .align 2, 0 _080204B8: .4byte gUnknown_202DFE8 _080204BC: .4byte gUnknown_203B27C _080204C0: .4byte gGulpinDialogue _080204C4: ldr r1, _080204FC ldr r2, [r4] movs r0, 0x64 muls r0, r2 adds r1, 0x44 adds r0, r1 ldr r0, [r0] adds r3, r4, 0 adds r3, 0x7C adds r1, r4, 0 adds r1, 0xBC str r1, [sp] movs r1, 0x4 str r1, [sp, 0x4] str r5, [sp, 0x8] movs r5, 0xBE lsls r5, 1 adds r1, r4, r5 _080204E8: ldr r1, [r1] str r1, [sp, 0xC] movs r1, 0xC str r1, [sp, 0x10] movs r1, 0 movs r2, 0x11 bl sub_8014248 b _08020562 .align 2, 0 _080204FC: .4byte gGulpinDialogue _08020500: ldr r1, [r5] movs r0, 0x1F str r0, [r1, 0x8] ldr r0, _08020538 ldrh r1, [r1, 0x20] bl sub_8092C84 ldr r3, [r5] ldrb r0, [r3, 0x14] cmp r0, 0 beq _08020544 ldr r1, _0802053C ldr r2, [r3] movs r0, 0x64 muls r0, r2 adds r1, 0x50 _08020520: adds r0, r1 ldr r0, [r0] movs r2, 0xBE lsls r2, 1 adds r1, r3, r2 _0802052A: ldr r2, [r1] _0802052C: ldr r3, _08020540 movs r1, 0 bl sub_80141B4 b _08020562 .align 2, 0 _08020538: .4byte gUnknown_202DFE8 _0802053C: .4byte gGulpinDialogue _08020540: .4byte 0x0000010d _08020544: ldr r1, _0802056C ldr r2, [r3] movs r0, 0x64 muls r0, r2 adds r1, 0x4C adds r0, r1 ldr r0, [r0] movs r4, 0xBE lsls r4, 1 adds r1, r3, r4 ldr r2, [r1] ldr r3, _08020570 movs r1, 0 bl sub_80141B4 _08020562: add sp, 0x14 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0802056C: .4byte gGulpinDialogue _08020570: .4byte 0x0000010d thumb_func_end sub_801FF28 thumb_func_start CreateGulpinShopMenu CreateGulpinShopMenu: push {r4,lr} ldr r4, _080205C0 ldr r0, [r4] adds r0, 0xBC movs r1, 0 movs r2, 0x10 bl MemoryFill16 ldr r4, [r4] movs r3, 0 ldr r0, _080205C4 str r0, [r4, 0x7C] adds r1, r4, 0 adds r1, 0x80 movs r0, 0x2 str r0, [r1] movs r2, 0x1 adds r1, 0x4 ldr r0, _080205C8 str r0, [r1] adds r1, 0x4 movs r0, 0xB str r0, [r1] adds r1, 0x4 ldr r0, _080205CC ldr r0, [r0] str r0, [r1] adds r0, r4, 0 adds r0, 0x90 str r2, [r0] adds r0, 0x4 str r3, [r0] adds r0, 0x4 str r2, [r0] pop {r4} pop {r0} bx r0 .align 2, 0 _080205C0: .4byte gUnknown_203B27C _080205C4: .4byte gGulpinProceed _080205C8: .4byte gGulpinInfo _080205CC: .4byte gUnknown_80D4934 thumb_func_end CreateGulpinShopMenu thumb_func_start sub_80205D0 sub_80205D0: push {r4-r7,lr} ldr r4, _08020660 ldr r0, [r4] adds r0, 0xBC movs r1, 0 movs r2, 0x10 bl MemoryFill16 ldr r0, [r4] mov r12, r0 movs r5, 0 ldr r0, _08020664 mov r1, r12 str r0, [r1, 0x7C] mov r2, r12 adds r2, 0x80 movs r0, 0x4 str r0, [r2] movs r3, 0x1 adds r1, 0x84 ldr r0, _08020668 str r0, [r1] adds r1, 0x4 movs r0, 0xB str r0, [r1] adds r1, 0x4 ldr r0, _0802066C str r0, [r1] adds r1, 0x4 movs r0, 0xC str r0, [r1] movs r6, 0x3 adds r1, 0x4 ldr r0, _08020670 str r0, [r1] mov r0, r12 adds r0, 0x98 str r6, [r0] movs r6, 0x4 adds r0, 0x4 str r5, [r0] adds r0, 0x4 str r3, [r0] mov r3, r12 adds r3, 0xBC _0802062A: ldrh r0, [r3] cmp r0, 0 bne _0802063A ldr r1, [r2] mov r7, r12 ldr r0, [r7, 0x70] cmp r1, r0 beq _08020696 _0802063A: adds r2, 0x8 adds r3, 0x2 adds r5, 0x1 cmp r5, r6 blt _0802062A movs r5, 0 cmp r5, r6 bge _08020696 ldr r1, [r4] adds r0, r1, 0 adds r0, 0xBC ldrh r0, [r0] cmp r0, 0 bne _08020674 adds r0, r1, 0 adds r0, 0x80 ldr r0, [r0] str r0, [r1, 0x70] b _08020696 .align 2, 0 _08020660: .4byte gUnknown_203B27C _08020664: .4byte gUnknown_80DC3D8 _08020668: .4byte gUnknown_80DC3E0 _0802066C: .4byte gUnknown_80DC3E8 _08020670: .4byte gUnknown_80DC3F4 _08020674: adds r5, 0x1 cmp r5, r6 bge _08020696 ldr r2, [r4] lsls r0, r5, 1 adds r1, r2, 0 adds r1, 0xBC adds r1, r0 ldrh r0, [r1] cmp r0, 0 bne _08020674 lsls r0, r5, 3 adds r1, r2, 0 adds r1, 0x80 adds r1, r0 ldr r0, [r1] str r0, [r2, 0x70] _08020696: pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_80205D0 thumb_func_start sub_802069C sub_802069C: push {r4-r7,lr} ldr r4, _08020718 ldr r0, [r4] adds r0, 0xBC movs r1, 0 movs r2, 0x10 bl MemoryFill16 ldr r0, [r4] mov r12, r0 movs r5, 0 ldr r0, _0802071C mov r1, r12 str r0, [r1, 0x7C] mov r3, r12 adds r3, 0x80 movs r0, 0x3 str r0, [r3] movs r2, 0x1 adds r1, 0x84 ldr r0, _08020720 ldr r0, [r0] str r0, [r1] adds r1, 0x4 movs r0, 0xB str r0, [r1] movs r6, 0x2 mov r0, r12 adds r0, 0x8C str r5, [r0] adds r0, 0x4 str r2, [r0] mov r2, r12 adds r2, 0xBC _080206E0: ldrh r0, [r2] cmp r0, 0 bne _080206F0 ldr r1, [r3] mov r7, r12 ldr r0, [r7, 0x74] cmp r1, r0 beq _08020746 _080206F0: adds r3, 0x8 adds r2, 0x2 adds r5, 0x1 cmp r5, r6 blt _080206E0 movs r5, 0 cmp r5, r6 bge _08020746 ldr r1, [r4] adds r0, r1, 0 adds r0, 0xBC ldrh r0, [r0] cmp r0, 0 bne _08020724 adds r0, r1, 0 adds r0, 0x80 ldr r0, [r0] str r0, [r1, 0x74] b _08020746 .align 2, 0 _08020718: .4byte gUnknown_203B27C _0802071C: .4byte gUnknown_80DC3F4 _08020720: .4byte gUnknown_80D4970 _08020724: adds r5, 0x1 cmp r5, r6 bge _08020746 ldr r2, [r4] lsls r0, r5, 1 adds r1, r2, 0 adds r1, 0xBC adds r1, r0 ldrh r0, [r1] cmp r0, 0 bne _08020724 lsls r0, r5, 3 adds r1, r2, 0 adds r1, 0x80 adds r1, r0 ldr r0, [r1] str r0, [r2, 0x74] _08020746: pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_802069C thumb_func_start CreateGulpinLinkMenu CreateGulpinLinkMenu: push {r4-r7,lr} movs r7, 0 ldr r4, _08020780 ldr r0, [r4] adds r0, 0xBC movs r1, 0 movs r2, 0x10 bl MemoryFill16 ldr r1, [r4] ldrb r0, [r1, 0x16] cmp r0, 0 beq _0802079C ldr r0, [r1, 0x18] adds r1, 0x24 bl sub_80932E0 lsls r0, 24 cmp r0, 0 beq _08020788 ldr r0, [r4] ldr r1, _08020784 str r1, [r0, 0x7C] adds r0, 0x80 movs r1, 0x6 b _08020792 .align 2, 0 _08020780: .4byte gUnknown_203B27C _08020784: .4byte gGulpinDeselect _08020788: ldr r0, [r4] ldr r1, _08020798 str r1, [r0, 0x7C] adds r0, 0x80 movs r1, 0x5 _08020792: str r1, [r0] mov r12, r4 b _080207CA .align 2, 0 _08020798: .4byte gGulpinSet _0802079C: ldr r0, [r1, 0x18] adds r1, 0x24 bl sub_80932FC lsls r0, 24 cmp r0, 0 beq _080207B4 ldr r1, [r4] ldr r0, _080207B0 b _080207B8 .align 2, 0 _080207B0: .4byte gGulpinDeselect _080207B4: ldr r1, [r4] ldr r0, _0802086C _080207B8: str r0, [r1, 0x7C] ldr r2, _08020870 ldr r0, [r2] lsls r1, r7, 3 adds r0, 0x80 adds r0, r1 movs r1, 0x7 str r1, [r0] mov r12, r2 _080207CA: adds r7, 0x1 mov r0, r12 ldr r4, [r0] lsls r1, r7, 3 adds r3, r4, 0 adds r3, 0x7C adds r2, r3, r1 ldr r0, _08020874 str r0, [r2] adds r6, r4, 0 adds r6, 0x80 adds r1, r6, r1 movs r0, 0x8 str r0, [r1] adds r7, 0x1 lsls r1, r7, 3 adds r2, r3, r1 ldr r0, _08020878 str r0, [r2] adds r1, r6, r1 movs r0, 0x9 str r0, [r1] adds r7, 0x1 lsls r1, r7, 3 adds r2, r3, r1 ldr r0, _0802087C str r0, [r2] adds r1, r6, r1 movs r0, 0xA str r0, [r1] adds r7, 0x1 lsls r1, r7, 3 adds r2, r3, r1 ldr r0, _08020880 ldr r0, [r0] str r0, [r2] adds r1, r6, r1 movs r0, 0xB str r0, [r1] adds r7, 0x1 lsls r1, r7, 3 adds r3, r1 movs r0, 0 str r0, [r3] adds r1, r6, r1 movs r0, 0x1 str r0, [r1] movs r3, 0 cmp r3, r7 bge _0802084C adds r5, r4, 0 adds r4, 0xBC adds r2, r6, 0 _08020834: ldrh r0, [r4] cmp r0, 0 bne _08020842 ldr r1, [r2] ldr r0, [r5, 0x78] cmp r1, r0 beq _080208A8 _08020842: adds r4, 0x2 adds r2, 0x8 adds r3, 0x1 cmp r3, r7 blt _08020834 _0802084C: movs r3, 0 cmp r3, r7 bge _080208A8 mov r0, r12 ldr r1, [r0] adds r0, r1, 0 adds r0, 0xBC ldrh r0, [r0] cmp r0, 0 bne _08020884 adds r0, r1, 0 adds r0, 0x80 ldr r0, [r0] str r0, [r1, 0x78] b _080208A8 .align 2, 0 _0802086C: .4byte gGulpinSet _08020870: .4byte gUnknown_203B27C _08020874: .4byte gGulpinLink _08020878: .4byte gGulpinDelink _0802087C: .4byte gGulpinForget _08020880: .4byte gUnknown_80D4970 _08020884: adds r3, 0x1 cmp r3, r7 bge _080208A8 mov r0, r12 ldr r2, [r0] lsls r0, r3, 1 adds r1, r2, 0 adds r1, 0xBC adds r1, r0 ldrh r0, [r1] cmp r0, 0 bne _08020884 lsls r0, r3, 3 adds r1, r2, 0 adds r1, 0x80 adds r1, r0 ldr r0, [r1] str r0, [r2, 0x78] _080208A8: pop {r4-r7} pop {r0} bx r0 thumb_func_end CreateGulpinLinkMenu thumb_func_start sub_80208B0 sub_80208B0: push {r4,lr} ldr r4, _080208F4 ldr r0, [r4] adds r0, 0xBC movs r1, 0 movs r2, 0x10 bl MemoryFill16 ldr r4, [r4] movs r3, 0 ldr r0, _080208F8 ldr r0, [r0] str r0, [r4, 0x7C] adds r1, r4, 0 adds r1, 0x80 movs r0, 0x10 str r0, [r1] movs r2, 0x1 adds r1, 0x4 ldr r0, _080208FC ldr r0, [r0] str r0, [r1] adds r1, 0x4 movs r0, 0x11 str r0, [r1] adds r0, r4, 0 adds r0, 0x8C str r3, [r0] adds r0, 0x4 str r2, [r0] pop {r4} pop {r0} bx r0 .align 2, 0 _080208F4: .4byte gUnknown_203B27C _080208F8: .4byte gUnknown_80D4920 _080208FC: .4byte gUnknown_80D4928 thumb_func_end sub_80208B0 thumb_func_start sub_8020900 sub_8020900: push {r4,lr} ldr r4, _08020944 ldr r0, [r4] adds r0, 0xBC movs r1, 0 movs r2, 0x10 bl MemoryFill16 ldr r3, [r4] movs r2, 0 ldr r0, _08020948 ldr r0, [r0] str r0, [r3, 0x7C] adds r1, r3, 0 adds r1, 0x80 movs r0, 0x10 str r0, [r1] adds r1, 0x4 ldr r0, _0802094C ldr r0, [r0] str r0, [r1] adds r1, 0x4 movs r0, 0x11 str r0, [r1] adds r0, r3, 0 adds r0, 0x8C str r2, [r0] adds r1, 0x8 movs r0, 0x1 negs r0, r0 str r0, [r1] pop {r4} pop {r0} bx r0 .align 2, 0 _08020944: .4byte gUnknown_203B27C _08020948: .4byte gUnknown_80D4920 _0802094C: .4byte gUnknown_80D4928 thumb_func_end sub_8020900 thumb_func_start sub_8020950 sub_8020950: push {r4,lr} ldr r4, _0802099C ldr r0, [r4] adds r0, 0xBC movs r1, 0 movs r2, 0x10 bl MemoryFill16 ldr r4, [r4] movs r3, 0 ldr r0, _080209A0 str r0, [r4, 0x7C] adds r1, r4, 0 adds r1, 0x80 movs r0, 0xD str r0, [r1] movs r2, 0x1 adds r1, 0x4 ldr r0, _080209A4 str r0, [r1] adds r1, 0x4 movs r0, 0xE str r0, [r1] adds r1, 0x4 ldr r0, _080209A8 str r0, [r1] adds r1, 0x4 movs r0, 0xF str r0, [r1] adds r0, r4, 0 adds r0, 0x94 str r3, [r0] adds r0, 0x4 str r2, [r0] pop {r4} pop {r0} bx r0 .align 2, 0 _0802099C: .4byte gUnknown_203B27C _080209A0: .4byte gUnknown_80DC428 _080209A4: .4byte gUnknown_80DC438 _080209A8: .4byte gUnknown_80DC448 thumb_func_end sub_8020950 thumb_func_start sub_80209AC sub_80209AC: push {lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 cmp r0, 0 bne _080209F4 ldr r0, _080209D4 ldr r1, [r0] ldr r0, [sp] str r0, [r1, 0x6C] ldr r0, [sp] cmp r0, 0x2 beq _080209DE cmp r0, 0x2 bgt _080209D8 cmp r0, 0x1 beq _080209EE b _080209F4 .align 2, 0 _080209D4: .4byte gUnknown_203B27C _080209D8: cmp r0, 0xB beq _080209E6 b _080209F4 _080209DE: movs r0, 0xE bl sub_801FDA8 b _080209F4 _080209E6: movs r0, 0x8 bl sub_801FDA8 b _080209F4 _080209EE: movs r0, 0xC bl sub_801FDA8 _080209F4: add sp, 0x4 pop {r0} bx r0 thumb_func_end sub_80209AC thumb_func_start sub_80209FC sub_80209FC: push {lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 cmp r0, 0 bne _08020A2E ldr r0, [sp] cmp r0, 0x10 beq _08020A20 cmp r0, 0x10 bgt _08020A1A cmp r0, 0x1 beq _08020A28 b _08020A2E _08020A1A: cmp r0, 0x11 beq _08020A28 b _08020A2E _08020A20: movs r0, 0xE bl sub_801FDA8 b _08020A2E _08020A28: movs r0, 0xC bl sub_801FDA8 _08020A2E: add sp, 0x4 pop {r0} bx r0 thumb_func_end sub_80209FC thumb_func_start sub_8020A34 sub_8020A34: push {lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 cmp r0, 0 bne _08020A7A ldr r0, [sp] cmp r0, 0xD beq _08020A5C cmp r0, 0xD bgt _08020A52 cmp r0, 0x1 beq _08020A74 b _08020A7A _08020A52: cmp r0, 0xE beq _08020A64 cmp r0, 0xF beq _08020A6C b _08020A7A _08020A5C: movs r0, 0x9 bl sub_801FDA8 b _08020A7A _08020A64: movs r0, 0xA bl sub_801FDA8 b _08020A7A _08020A6C: movs r0, 0xB bl sub_801FDA8 b _08020A7A _08020A74: movs r0, 0x1 bl sub_801FDA8 _08020A7A: add sp, 0x4 pop {r0} bx r0 thumb_func_end sub_8020A34 thumb_func_start sub_8020A80 sub_8020A80: push {r4,lr} movs r0, 0x1 bl sub_8023A94 cmp r0, 0x4 bhi _08020B32 lsls r0, 2 ldr r1, _08020A98 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08020A98: .4byte _08020A9C .align 2, 0 _08020A9C: .4byte _08020B32 .4byte _08020B32 .4byte _08020B28 .4byte _08020AB0 .4byte _08020AEC _08020AB0: bl sub_8023B44 ldr r4, _08020AE0 ldr r1, [r4] strh r0, [r1, 0xC] ldr r3, _08020AE4 movs r0, 0xC ldrsh r2, [r1, r0] movs r0, 0x58 muls r2, r0 ldr r0, [r3] adds r0, r2 str r0, [r1, 0x10] ldrb r0, [r0, 0x2] strb r0, [r1, 0x16] ldr r0, _08020AE8 ldr r1, [r4] ldr r1, [r1, 0x10] bl PrintPokeNameToBuffer movs r0, 0x11 bl sub_801FDA8 b _08020B32 .align 2, 0 _08020AE0: .4byte gUnknown_203B27C _08020AE4: .4byte gRecruitedPokemonRef _08020AE8: .4byte gUnknown_202E128 _08020AEC: bl sub_8023B44 ldr r4, _08020B1C ldr r1, [r4] strh r0, [r1, 0xC] ldr r3, _08020B20 movs r0, 0xC ldrsh r2, [r1, r0] movs r0, 0x58 muls r2, r0 ldr r0, [r3] adds r0, r2 str r0, [r1, 0x10] ldrb r0, [r0, 0x2] strb r0, [r1, 0x16] ldr r0, _08020B24 ldr r1, [r4] ldr r1, [r1, 0x10] bl PrintPokeNameToBuffer movs r0, 0x12 bl sub_801FDA8 b _08020B32 .align 2, 0 _08020B1C: .4byte gUnknown_203B27C _08020B20: .4byte gRecruitedPokemonRef _08020B24: .4byte gUnknown_202E128 _08020B28: bl sub_8023C60 movs r0, 0x7 bl sub_801FDA8 _08020B32: pop {r4} pop {r0} bx r0 thumb_func_end sub_8020A80 thumb_func_start sub_8020B38 sub_8020B38: push {r4,lr} sub sp, 0x4 movs r0, 0 str r0, [sp] bl sub_8023A94 ldr r4, _08020B7C ldr r0, [r4] adds r0, 0xCC bl sub_8012FD8 lsls r0, 24 cmp r0, 0 bne _08020B68 ldr r0, [r4] adds r0, 0xCC mov r1, sp bl sub_8013114 ldr r1, [sp] cmp r1, 0x1 beq _08020B68 ldr r0, [r4] str r1, [r0, 0x70] _08020B68: ldr r0, [sp] subs r0, 0x1 cmp r0, 0x10 bhi _08020C24 lsls r0, 2 ldr r1, _08020B80 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08020B7C: .4byte gUnknown_203B27C _08020B80: .4byte _08020B84 .align 2, 0 _08020B84: .4byte _08020BC8 .4byte _08020C24 .4byte _08020BD0 .4byte _08020C0E .4byte _08020C24 .4byte _08020C24 .4byte _08020C24 .4byte _08020C24 .4byte _08020C24 .4byte _08020C24 .4byte _08020C16 .4byte _08020C1E .4byte _08020C24 .4byte _08020C24 .4byte _08020C24 .4byte _08020C24 .4byte _08020BC8 _08020BC8: movs r0, 0x10 bl sub_801FDA8 b _08020C24 _08020BD0: ldr r0, _08020BF0 ldr r0, [r0] ldr r0, [r0, 0x10] movs r1, 0x8 ldrsh r0, [r0, r1] bl GetBaseSpeciesNoUnown lsls r0, 16 movs r1, 0xCF lsls r1, 17 cmp r0, r1 bne _08020BF4 movs r0, 0x1C bl sub_801FDA8 b _08020C24 .align 2, 0 _08020BF0: .4byte gUnknown_203B27C _08020BF4: bl sub_8021178 lsls r0, 24 cmp r0, 0 beq _08020C06 movs r0, 0x1B bl sub_801FDA8 b _08020C24 _08020C06: movs r0, 0x14 bl sub_801FDA8 b _08020C24 _08020C0E: movs r0, 0x1E bl sub_801FDA8 b _08020C24 _08020C16: movs r0, 0x12 bl sub_801FDA8 b _08020C24 _08020C1E: movs r0, 0x13 bl sub_801FDA8 _08020C24: add sp, 0x4 pop {r4} pop {r0} bx r0 thumb_func_end sub_8020B38 thumb_func_start sub_8020C2C sub_8020C2C: push {lr} bl sub_80244E4 cmp r0, 0x1 bls _08020C44 cmp r0, 0x3 bhi _08020C44 bl sub_802453C movs r0, 0x10 bl sub_801FDA8 _08020C44: pop {r0} bx r0 thumb_func_end sub_8020C2C thumb_func_start sub_8020C48 sub_8020C48: push {lr} bl sub_801BF48 cmp r0, 0x1 bls _08020C60 cmp r0, 0x3 bhi _08020C60 bl sub_801BF98 movs r0, 0x10 bl sub_801FDA8 _08020C60: pop {r0} bx r0 thumb_func_end sub_8020C48 thumb_func_start sub_8020C64 sub_8020C64: push {lr} movs r0, 0x1 bl sub_801F520 cmp r0, 0x3 beq _08020C80 cmp r0, 0x3 bhi _08020C7A cmp r0, 0x2 beq _08020CB0 b _08020CBA _08020C7A: cmp r0, 0x4 beq _08020C98 b _08020CBA _08020C80: bl sub_801F5B4 ldr r1, _08020C94 ldr r1, [r1] strh r0, [r1, 0x1C] strh r0, [r1, 0x1E] movs r0, 0x17 bl sub_801FDA8 b _08020CBA .align 2, 0 _08020C94: .4byte gUnknown_203B27C _08020C98: bl sub_801F5B4 ldr r1, _08020CAC ldr r1, [r1] strh r0, [r1, 0x1C] strh r0, [r1, 0x1E] movs r0, 0x18 bl sub_801FDA8 b _08020CBA .align 2, 0 _08020CAC: .4byte gUnknown_203B27C _08020CB0: bl sub_801F63C movs r0, 0x10 bl sub_801FDA8 _08020CBA: pop {r0} bx r0 thumb_func_end sub_8020C64 thumb_func_start sub_8020CC0 sub_8020CC0: push {r4-r6,lr} sub sp, 0x4 movs r0, 0 str r0, [sp] bl sub_801F520 ldr r4, _08020D00 ldr r0, [r4] adds r0, 0xCC bl sub_8012FD8 lsls r0, 24 cmp r0, 0 bne _08020CF0 ldr r0, [r4] adds r0, 0xCC mov r1, sp bl sub_8013114 ldr r1, [sp] cmp r1, 0x1 beq _08020CF0 ldr r0, [r4] str r1, [r0, 0x74] _08020CF0: ldr r0, [sp] cmp r0, 0x3 beq _08020D14 cmp r0, 0x3 bgt _08020D04 cmp r0, 0x1 beq _08020D0C b _08020D6C .align 2, 0 _08020D00: .4byte gUnknown_203B27C _08020D04: cmp r0, 0xB beq _08020D66 cmp r0, 0x11 bne _08020D6C _08020D0C: movs r0, 0x16 bl sub_801FDA8 b _08020D6C _08020D14: bl sub_801F63C ldr r4, _08020D30 ldr r1, [r4] adds r0, r1, 0 adds r0, 0x24 ldr r1, [r1, 0x10] adds r1, 0x2C bl sub_809401C movs r5, 0 adds r6, r4, 0 movs r4, 0x24 b _08020D38 .align 2, 0 _08020D30: .4byte gUnknown_203B27C _08020D34: adds r4, 0x8 adds r5, 0x1 _08020D38: cmp r5, 0x7 bgt _08020D52 ldr r3, [r6] adds r2, r3, r4 ldrb r1, [r2] movs r0, 0x1 ands r0, r1 cmp r0, 0 bne _08020D34 ldrh r1, [r3, 0x1E] adds r0, r2, 0 bl InitZeroedPPPokemonMove _08020D52: cmp r5, 0x3 ble _08020D5E movs r0, 0x1D bl sub_801FDA8 b _08020D6C _08020D5E: movs r0, 0x19 bl sub_801FDA8 b _08020D6C _08020D66: movs r0, 0x18 bl sub_801FDA8 _08020D6C: add sp, 0x4 pop {r4-r6} pop {r0} bx r0 thumb_func_end sub_8020CC0 thumb_func_start sub_8020D74 sub_8020D74: push {lr} bl sub_801F890 cmp r0, 0x1 bls _08020D8C cmp r0, 0x3 bhi _08020D8C bl sub_801F8D0 movs r0, 0x16 bl sub_801FDA8 _08020D8C: pop {r0} bx r0 thumb_func_end sub_8020D74 thumb_func_start sub_8020D90 sub_8020D90: push {lr} bl sub_801E8C0 cmp r0, 0x2 beq _08020DBC cmp r0, 0x2 bcc _08020DC6 cmp r0, 0x3 bne _08020DC6 bl sub_801E930 ldr r1, _08020DB8 ldr r1, [r1] strb r0, [r1, 0x14] bl sub_801E93C movs r0, 0x1A bl sub_801FDA8 b _08020DC6 .align 2, 0 _08020DB8: .4byte gUnknown_203B27C _08020DBC: bl sub_801E93C movs r0, 0x10 bl sub_801FDA8 _08020DC6: pop {r0} bx r0 thumb_func_end sub_8020D90 thumb_func_start sub_8020DCC sub_8020DCC: push {lr} movs r0, 0x1 bl sub_801EF38 cmp r0, 0x4 bhi _08020EAA lsls r0, 2 ldr r1, _08020DE4 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08020DE4: .4byte _08020DE8 .align 2, 0 _08020DE8: .4byte _08020EAA .4byte _08020E98 .4byte _08020E64 .4byte _08020DFC .4byte _08020E30 _08020DFC: bl sub_801F1A4 lsls r0, 24 cmp r0, 0 beq _08020E0E ldr r0, _08020E2C ldr r1, [r0] movs r0, 0x1 strb r0, [r1, 0x15] _08020E0E: bl sub_801F194 ldr r1, _08020E2C ldr r2, [r1] str r0, [r2, 0x18] lsls r0, 3 adds r0, r2, r0 ldrh r1, [r0, 0x26] strh r1, [r2, 0x1C] ldrh r0, [r0, 0x26] strh r0, [r2, 0x20] movs r0, 0x20 bl sub_801FDA8 b _08020EAA .align 2, 0 _08020E2C: .4byte gUnknown_203B27C _08020E30: bl sub_801F1A4 lsls r0, 24 cmp r0, 0 beq _08020E42 ldr r0, _08020E60 ldr r1, [r0] movs r0, 0x1 strb r0, [r1, 0x15] _08020E42: bl sub_801F194 ldr r1, _08020E60 ldr r2, [r1] str r0, [r2, 0x18] lsls r0, 3 adds r0, r2, r0 ldrh r1, [r0, 0x26] strh r1, [r2, 0x1C] ldrh r0, [r0, 0x26] strh r0, [r2, 0x20] movs r0, 0x21 bl sub_801FDA8 b _08020EAA .align 2, 0 _08020E60: .4byte gUnknown_203B27C _08020E64: bl sub_801F1A4 lsls r0, 24 cmp r0, 0 beq _08020E76 ldr r0, _08020E94 ldr r1, [r0] movs r0, 0x1 strb r0, [r1, 0x15] _08020E76: bl sub_801F214 ldr r0, _08020E94 ldr r1, [r0] adds r0, r1, 0 adds r0, 0x24 ldr r1, [r1, 0x10] adds r1, 0x2C bl sub_8094060 movs r0, 0x10 bl sub_801FDA8 b _08020EAA .align 2, 0 _08020E94: .4byte gUnknown_203B27C _08020E98: bl sub_801F1A4 lsls r0, 24 cmp r0, 0 beq _08020EAA ldr r0, _08020EB0 ldr r1, [r0] movs r0, 0x1 strb r0, [r1, 0x15] _08020EAA: pop {r0} bx r0 .align 2, 0 _08020EB0: .4byte gUnknown_203B27C thumb_func_end sub_8020DCC thumb_func_start sub_8020EB4 sub_8020EB4: push {r4,lr} sub sp, 0x4 movs r0, 0 str r0, [sp] bl sub_801EF38 ldr r4, _08020EF8 ldr r0, [r4] adds r0, 0xCC bl sub_8012FD8 lsls r0, 24 cmp r0, 0 bne _08020EE4 ldr r0, [r4] adds r0, 0xCC mov r1, sp bl sub_8013114 ldr r1, [sp] cmp r1, 0x1 beq _08020EE4 ldr r0, [r4] str r1, [r0, 0x78] _08020EE4: ldr r0, [sp] subs r0, 0x1 cmp r0, 0x10 bls _08020EEE b _080210BE _08020EEE: lsls r0, 2 ldr r1, _08020EFC adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08020EF8: .4byte gUnknown_203B27C _08020EFC: .4byte _08020F00 .align 2, 0 _08020F00: .4byte _08021068 .4byte _080210BE .4byte _080210BE .4byte _080210BE .4byte _08020F44 .4byte _08020F70 .4byte _08020F8C .4byte _08020FB8 .4byte _08021034 .4byte _08021074 .4byte _080210B8 .4byte _080210BE .4byte _080210BE .4byte _080210BE .4byte _080210BE .4byte _080210BE .4byte _08021068 _08020F44: ldr r0, _08020F60 ldr r1, [r0] ldr r0, [r1, 0x18] adds r1, 0x24 bl sub_80934DC lsls r0, 24 cmp r0, 0 beq _08020F68 ldr r0, _08020F64 bl PlaySound b _08021068 .align 2, 0 _08020F60: .4byte gUnknown_203B27C _08020F64: .4byte 0x00000133 _08020F68: movs r0, 0x2 bl PlayMenuSoundEffect b _08021068 _08020F70: ldr r0, _08020F84 bl PlaySound ldr r0, _08020F88 ldr r1, [r0] ldr r0, [r1, 0x18] adds r1, 0x24 bl sub_809352C b _08021068 .align 2, 0 _08020F84: .4byte 0x00000133 _08020F88: .4byte gUnknown_203B27C _08020F8C: ldr r0, _08020FA8 ldr r1, [r0] ldr r0, [r1, 0x18] adds r1, 0x24 bl sub_8093544 lsls r0, 24 cmp r0, 0 beq _08020FB0 ldr r0, _08020FAC bl PlaySound b _08021068 .align 2, 0 _08020FA8: .4byte gUnknown_203B27C _08020FAC: .4byte 0x00000133 _08020FB0: movs r0, 0x2 bl PlayMenuSoundEffect b _08021068 _08020FB8: ldr r0, _08020FD8 ldr r0, [r0] movs r1, 0x98 lsls r1, 2 adds r0, r1 ldr r0, [r0] cmp r0, 0x95 bgt _08020FDC movs r0, 0x2 bl PlayMenuSoundEffect movs r0, 0x3 bl sub_801FDA8 b _080210BE .align 2, 0 _08020FD8: .4byte gTeamInventory_203B460 _08020FDC: ldr r4, _08020FFC ldr r1, [r4] ldr r0, [r1, 0x18] adds r1, 0x24 bl sub_8093318 lsls r0, 24 cmp r0, 0 bne _08021000 movs r0, 0x2 bl PlayMenuSoundEffect movs r0, 0x4 bl sub_801FDA8 b _080210BE .align 2, 0 _08020FFC: .4byte gUnknown_203B27C _08021000: ldr r1, [r4] ldrb r0, [r1, 0x15] cmp r0, 0 bne _08021016 movs r0, 0x1 strb r0, [r1, 0x15] movs r0, 0xA6 lsls r0, 1 bl PlaySound b _0802101C _08021016: ldr r0, _0802102C bl PlaySound _0802101C: ldr r0, _08021030 ldr r1, [r0] ldr r0, [r1, 0x18] adds r1, 0x24 bl sub_8093400 b _08021068 .align 2, 0 _0802102C: .4byte 0x00000133 _08021030: .4byte gUnknown_203B27C _08021034: ldr r4, _08021054 ldr r1, [r4] ldr r0, [r1, 0x18] adds r1, 0x24 bl sub_809333C lsls r0, 24 cmp r0, 0 bne _08021058 movs r0, 0x2 bl PlayMenuSoundEffect movs r0, 0x5 bl sub_801FDA8 b _080210BE .align 2, 0 _08021054: .4byte gUnknown_203B27C _08021058: ldr r0, _08021070 bl PlaySound ldr r1, [r4] ldr r0, [r1, 0x18] adds r1, 0x24 bl sub_8093468 _08021068: movs r0, 0x1F bl sub_801FDA8 b _080210BE .align 2, 0 _08021070: .4byte 0x00000133 _08021074: ldr r4, _08021094 ldr r1, [r4] ldr r0, [r1, 0x18] adds r1, 0x24 bl sub_80933A0 lsls r0, 24 cmp r0, 0 bne _08021098 movs r0, 0x2 bl PlayMenuSoundEffect movs r0, 0x6 bl sub_801FDA8 b _080210BE .align 2, 0 _08021094: .4byte gUnknown_203B27C _08021098: ldr r0, _080210B4 bl PlaySound ldr r1, [r4] ldr r0, [r1, 0x18] adds r1, 0x24 bl sub_80934B0 ldr r1, [r4] strb r0, [r1, 0x14] movs r0, 0x22 bl sub_801FDA8 b _080210BE .align 2, 0 _080210B4: .4byte 0x00000133 _080210B8: movs r0, 0x21 bl sub_801FDA8 _080210BE: add sp, 0x4 pop {r4} pop {r0} bx r0 thumb_func_end sub_8020EB4 thumb_func_start sub_80210C8 sub_80210C8: push {lr} bl sub_801F890 cmp r0, 0x1 bls _080210E0 cmp r0, 0x3 bhi _080210E0 bl sub_801F8D0 movs r0, 0x1F bl sub_801FDA8 _080210E0: pop {r0} bx r0 thumb_func_end sub_80210C8 thumb_func_start sub_80210E4 sub_80210E4: push {lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 cmp r0, 0 bne _0802112A ldr r0, [sp] cmp r0, 0x10 beq _08021108 cmp r0, 0x10 bgt _08021102 cmp r0, 0x1 beq _08021124 b _0802112A _08021102: cmp r0, 0x11 beq _08021124 b _0802112A _08021108: ldr r0, _08021120 ldr r1, [r0] adds r0, r1, 0 adds r0, 0x24 ldr r1, [r1, 0x18] bl sub_8093CF8 movs r0, 0x23 bl sub_801FDA8 b _0802112A .align 2, 0 _08021120: .4byte gUnknown_203B27C _08021124: movs r0, 0x1F bl sub_801FDA8 _0802112A: add sp, 0x4 pop {r0} bx r0 thumb_func_end sub_80210E4 thumb_func_start sub_8021130 sub_8021130: push {lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 cmp r0, 0 bne _08021148 ldr r0, _08021150 ldr r0, [r0] ldr r0, [r0, 0x8] bl sub_801FDA8 _08021148: add sp, 0x4 pop {r0} bx r0 .align 2, 0 _08021150: .4byte gUnknown_203B27C thumb_func_end sub_8021130 thumb_func_start sub_8021154 sub_8021154: push {lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 cmp r0, 0x4 bne _0802116C ldr r0, _08021174 ldr r0, [r0] ldr r0, [r0, 0x8] bl sub_801FDA8 _0802116C: add sp, 0x4 pop {r0} bx r0 .align 2, 0 _08021174: .4byte gUnknown_203B27C thumb_func_end sub_8021154 thumb_func_start sub_8021178 sub_8021178: push {lr} mov r12, r4 ldr r4, _08021198 add sp, r4 mov r4, r12 ldr r0, _0802119C ldr r0, [r0] ldr r1, [r0, 0x10] mov r0, sp bl sub_808E218 cmp r0, 0 beq _080211A0 movs r0, 0 b _080211A2 .align 2, 0 _08021198: .4byte 0xfffffcc0 _0802119C: .4byte gUnknown_203B27C _080211A0: movs r0, 0x1 _080211A2: movs r3, 0xD0 lsls r3, 2 add sp, r3 pop {r1} bx r1 thumb_func_end sub_8021178 thumb_func_start sub_80211AC sub_80211AC: push {r4-r6,lr} adds r4, r0, 0 adds r6, r1, 0 bl sub_8021700 lsls r0, 24 cmp r0, 0 beq _080211C0 movs r0, 0 b _08021258 _080211C0: ldr r5, _08021260 movs r0, 0xE0 movs r1, 0x8 bl MemoryAlloc str r0, [r5] str r4, [r0, 0x3C] str r6, [r0, 0x74] lsls r1, r6, 1 adds r1, r6 lsls r1, 3 adds r1, 0x7C adds r1, r0, r1 str r1, [r0, 0x78] adds r0, 0x7C bl sub_8006518 ldr r1, [r5] ldr r2, [r1, 0x74] lsls r0, r2, 1 adds r0, r2 lsls r0, 3 adds r1, r0 adds r1, 0x7C ldr r0, _08021264 ldm r0!, {r2-r4} stm r1!, {r2-r4} ldm r0!, {r2-r4} stm r1!, {r2-r4} ldr r0, [r5] ldr r1, [r0, 0x78] adds r0, 0xDC str r0, [r1, 0x14] bl ResetUnusedInputStruct ldr r0, [r5] adds r0, 0x7C movs r1, 0x1 movs r2, 0x1 bl sub_800641C ldr r4, [r5] adds r4, 0x40 bl sub_8021664 adds r1, r0, 0 adds r0, r4, 0 movs r2, 0xA adds r3, r6, 0 bl sub_8013818 ldr r0, _08021268 ldr r2, [r5] ldr r1, [r0] ldr r0, [r2, 0x3C] cmp r1, r0 bne _0802124E ldr r0, _0802126C ldrh r1, [r0] adds r0, r2, 0 adds r0, 0x58 strh r1, [r0] ldr r0, _08021270 ldrh r0, [r0] adds r1, r2, 0 adds r1, 0x5E strh r0, [r1] adds r0, r2, 0 adds r0, 0x40 bl sub_8013984 _0802124E: bl sub_8021410 bl sub_8021494 movs r0, 0x1 _08021258: pop {r4-r6} pop {r1} bx r1 .align 2, 0 _08021260: .4byte gUnknown_203B280 _08021264: .4byte gUnknown_80DC47C _08021268: .4byte gUnknown_203B284 _0802126C: .4byte gUnknown_203B288 _08021270: .4byte gUnknown_203B28A thumb_func_end sub_80211AC thumb_func_start sub_8021274 sub_8021274: push {r4,lr} lsls r0, 24 cmp r0, 0 bne _08021290 ldr r0, _0802128C ldr r0, [r0] adds r0, 0x40 bl sub_8013660 movs r0, 0 b _08021326 .align 2, 0 _0802128C: .4byte gUnknown_203B280 _08021290: ldr r4, _080212A8 ldr r0, [r4] adds r0, 0x40 bl GetKeyPress cmp r0, 0x2 beq _080212B2 cmp r0, 0x2 bgt _080212AC cmp r0, 0x1 beq _080212BC b _08021300 .align 2, 0 _080212A8: .4byte gUnknown_203B280 _080212AC: cmp r0, 0x4 beq _080212F6 b _08021300 _080212B2: movs r0, 0x1 bl PlayMenuSoundEffect movs r0, 0x2 b _08021326 _080212BC: ldr r0, [r4] ldr r0, [r0, 0x3C] cmp r0, 0x2 bne _080212EC bl sub_802132C lsls r0, 24 lsrs r0, 24 bl GetFriendAreaPrice ldr r1, _080212E8 ldr r1, [r1] movs r2, 0x98 lsls r2, 2 adds r1, r2 ldr r1, [r1] cmp r0, r1 ble _080212EC movs r0, 0x2 bl PlayMenuSoundEffect b _080212F2 .align 2, 0 _080212E8: .4byte gTeamInventory_203B460 _080212EC: movs r0, 0 bl PlayMenuSoundEffect _080212F2: movs r0, 0x3 b _08021326 _080212F6: movs r0, 0x4 bl PlayMenuSoundEffect movs r0, 0x4 b _08021326 _08021300: ldr r0, _08021318 ldr r0, [r0] adds r0, 0x40 movs r1, 0x1 bl sub_80138B8 lsls r0, 24 cmp r0, 0 bne _0802131C movs r0, 0 b _08021326 .align 2, 0 _08021318: .4byte gUnknown_203B280 _0802131C: bl sub_8021410 bl sub_8021494 movs r0, 0x1 _08021326: pop {r4} pop {r1} bx r1 thumb_func_end sub_8021274 thumb_func_start sub_802132C sub_802132C: ldr r0, _08021350 ldr r2, [r0] adds r0, r2, 0 adds r0, 0x5E 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, 0x58 movs r3, 0 ldrsh r1, [r1, r3] adds r0, r1 adds r0, r2, r0 ldrb r0, [r0] bx lr .align 2, 0 _08021350: .4byte gUnknown_203B280 thumb_func_end sub_802132C thumb_func_start sub_8021354 sub_8021354: push {r4,r5,lr} adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 bl ResetUnusedInputStruct ldr r5, _0802139C ldr r0, [r5] adds r0, 0x7C movs r1, 0 movs r2, 0 bl sub_800641C bl sub_8021664 adds r1, r0, 0 ldr r0, [r5] adds r2, r0, 0 adds r2, 0x62 strh r1, [r2] adds r0, 0x40 bl sub_8013984 bl sub_8021410 bl sub_8021494 cmp r4, 0 beq _08021396 ldr r0, [r5] adds r0, 0x40 bl AddMenuCursorSprite _08021396: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0802139C: .4byte gUnknown_203B280 thumb_func_end sub_8021354 thumb_func_start sub_80213A0 sub_80213A0: push {r4,r5,lr} ldr r4, _080213FC ldr r2, [r4] cmp r2, 0 beq _080213F4 ldr r1, _08021400 ldr r0, [r2, 0x3C] str r0, [r1] ldr r1, _08021404 adds r0, r2, 0 adds r0, 0x58 ldrh r0, [r0] strh r0, [r1] ldr r1, _08021408 adds r0, r2, 0 adds r0, 0x5E ldrh r0, [r0] strh r0, [r1] ldr r0, [r2, 0x74] lsls r1, r0, 1 adds r1, r0 lsls r1, 3 adds r1, r2, r1 adds r1, 0x7C ldr r0, _0802140C 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, 0x7C movs r1, 0x1 movs r2, 0x1 bl sub_800641C ldr r0, [r4] bl MemoryFree movs r0, 0 str r0, [r4] _080213F4: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080213FC: .4byte gUnknown_203B280 _08021400: .4byte gUnknown_203B284 _08021404: .4byte gUnknown_203B288 _08021408: .4byte gUnknown_203B28A _0802140C: .4byte gUnknown_80DC464 thumb_func_end sub_80213A0 thumb_func_start sub_8021410 sub_8021410: push {r4,lr} ldr r4, _08021490 ldr r0, [r4] adds r0, 0xDC movs r2, 0 movs r1, 0x1 strb r1, [r0] ldr r0, [r4] adds r0, 0xDD strb r2, [r0] ldr r0, [r4] adds r0, 0xDE movs r1, 0xC strb r1, [r0] ldr r0, [r4] adds r0, 0xDF strb r2, [r0] bl ResetUnusedInputStruct ldr r0, [r4] adds r0, 0x7C movs r1, 0x1 movs r2, 0x1 bl sub_800641C ldr r0, [r4] adds r0, 0x5A 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, 0x74] lsls r1, r3, 1 adds r1, r3 lsls r1, 3 adds r1, r2, r1 adds r1, 0x8A asrs r3, r0, 16 lsrs r0, 16 strh r0, [r1] ldr r1, [r2, 0x74] lsls r0, r1, 1 adds r0, r1 lsls r0, 3 adds r2, r0 adds r3, 0x2 adds r2, 0x8C strh r3, [r2] bl ResetUnusedInputStruct ldr r0, [r4] adds r0, 0x7C movs r1, 0x1 movs r2, 0x1 bl sub_800641C pop {r4} pop {r0} bx r0 .align 2, 0 _08021490: .4byte gUnknown_203B280 thumb_func_end sub_8021410 thumb_func_start sub_8021494 sub_8021494: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0xA8 ldr r4, _08021568 ldr r0, [r4] ldr r0, [r0, 0x74] bl sub_8008C54 ldr r0, [r4] ldr r0, [r0, 0x74] bl sub_80073B8 ldr r2, _0802156C ldr r0, [r4] ldr r3, [r0, 0x74] 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, 0xDE ldrb r0, [r0] lsls r0, 3 adds r0, 0x4 adds r1, r3, 0 adds r1, 0x5E movs r5, 0 ldrsh r2, [r1, r5] adds r2, 0x1 movs r1, 0x7 str r1, [sp] ldr r1, [r3, 0x74] str r1, [sp, 0x4] movs r1, 0 movs r3, 0x1 bl sub_8012BC4 movs r0, 0 mov r9, r0 ldr r0, [r4] adds r0, 0x5A movs r1, 0 ldrsh r0, [r0, r1] cmp r9, r0 blt _080214FC b _08021646 _080214FC: mov r8, r4 add r2, sp, 0x58 mov r10, r2 _08021502: mov r3, r8 ldr r2, [r3] adds r0, r2, 0 adds r0, 0x5E movs r5, 0 ldrsh r1, [r0, r5] subs r0, 0x2 movs r3, 0 ldrsh r0, [r0, r3] muls r0, r1 add r0, r9 adds r0, r2, r0 ldrb r5, [r0] adds r7, r5, 0 ldr r6, [r2, 0x3C] cmp r6, 0x2 bne _0802159C add r0, sp, 0x8 adds r1, r5, 0 movs r2, 0x1 bl sub_8092578 adds r0, r5, 0 bl GetFriendAreaPrice ldr r1, _08021570 ldr r1, [r1] movs r5, 0x98 lsls r5, 2 adds r1, r5 ldr r1, [r1] cmp r0, r1 bgt _08021574 mov r1, r8 ldr r0, [r1] adds r0, 0x40 mov r1, r9 bl sub_8013800 adds r1, r0, 0 mov r2, r8 ldr r0, [r2] ldr r3, [r0, 0x74] movs r0, 0 str r0, [sp] movs r0, 0x8 add r2, sp, 0x8 bl xxx_call_draw_string b _08021632 .align 2, 0 _08021568: .4byte gUnknown_203B280 _0802156C: .4byte gUnknown_80DC494 _08021570: .4byte gTeamInventory_203B460 _08021574: mov r0, r10 ldr r1, _08021598 add r2, sp, 0x8 bl sprintf_2 mov r3, r8 ldr r0, [r3] adds r0, 0x40 mov r1, r9 bl sub_8013800 adds r1, r0, 0 mov r5, r8 ldr r0, [r5] ldr r3, [r0, 0x74] movs r0, 0 str r0, [sp] b _080215FE .align 2, 0 _08021598: .4byte gUnknown_80DC4A4 _0802159C: cmp r6, 0 bne _0802160C ldr r0, _080215D4 ldr r0, [r0] adds r0, r5 ldrb r0, [r0] cmp r0, 0x1 bne _080215D8 adds r0, r2, 0 adds r0, 0x40 mov r1, r9 bl sub_8013800 adds r4, r0, 0 adds r0, r5, 0 bl GetFriendAreaName adds r2, r0, 0 mov r1, r8 ldr r0, [r1] ldr r3, [r0, 0x74] str r6, [sp] movs r0, 0x8 adds r1, r4, 0 bl xxx_call_draw_string b _08021632 .align 2, 0 _080215D4: .4byte gFriendAreas _080215D8: adds r0, r5, 0 bl GetFriendAreaName adds r2, r0, 0 mov r0, r10 ldr r1, _08021608 bl sprintf_2 mov r2, r8 ldr r0, [r2] adds r0, 0x40 mov r1, r9 bl sub_8013800 adds r1, r0, 0 mov r3, r8 ldr r0, [r3] ldr r3, [r0, 0x74] str r6, [sp] _080215FE: movs r0, 0x8 mov r2, r10 bl xxx_call_draw_string b _08021632 .align 2, 0 _08021608: .4byte gUnknown_80DC4AC _0802160C: adds r0, r2, 0 adds r0, 0x40 mov r1, r9 bl sub_8013800 adds r4, r0, 0 adds r0, r7, 0 bl GetFriendAreaName adds r2, r0, 0 mov r5, r8 ldr r0, [r5] ldr r3, [r0, 0x74] movs r0, 0 str r0, [sp] movs r0, 0x8 adds r1, r4, 0 bl xxx_call_draw_string _08021632: movs r0, 0x1 add r9, r0 mov r1, r8 ldr r0, [r1] adds r0, 0x5A movs r2, 0 ldrsh r0, [r0, r2] cmp r9, r0 bge _08021646 b _08021502 _08021646: ldr r0, _08021660 ldr r0, [r0] ldr r0, [r0, 0x74] bl sub_80073E0 add sp, 0xA8 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08021660: .4byte gUnknown_203B280 thumb_func_end sub_8021494 thumb_func_start sub_8021664 sub_8021664: push {r4-r6,lr} movs r5, 0 ldr r1, _0802167C ldr r0, [r1] ldr r0, [r0, 0x3C] cmp r0, 0x1 beq _08021692 cmp r0, 0x1 bcc _08021680 cmp r0, 0x2 beq _080216B4 b _080216F2 .align 2, 0 _0802167C: .4byte gUnknown_203B280 _08021680: movs r4, 0x1 _08021682: ldr r0, [r1] adds r0, r5 strb r4, [r0] adds r5, 0x1 adds r4, 0x1 cmp r4, 0x39 ble _08021682 b _080216F2 _08021692: movs r4, 0x1 ldr r2, _080216B0 _08021696: ldr r0, [r2] adds r0, r4 ldrb r0, [r0] cmp r0, 0 beq _080216A8 ldr r0, [r1] adds r0, r5 strb r4, [r0] adds r5, 0x1 _080216A8: adds r4, 0x1 cmp r4, 0x39 ble _08021696 b _080216F2 .align 2, 0 _080216B0: .4byte gFriendAreas _080216B4: movs r4, 0x1 adds r6, r1, 0 _080216B8: ldr r0, _080216FC ldr r0, [r0] adds r0, r4 ldrb r0, [r0] cmp r0, 0 bne _080216EC lsls r0, r4, 24 lsrs r0, 24 bl GetFriendAreaUnlockCondition lsls r0, 24 lsrs r0, 24 cmp r0, 0 beq _080216E4 cmp r0, 0x1 bne _080216EC movs r0, 0x6 bl sub_80023E4 lsls r0, 24 cmp r0, 0 beq _080216EC _080216E4: ldr r0, [r6] adds r0, r5 strb r4, [r0] adds r5, 0x1 _080216EC: adds r4, 0x1 cmp r4, 0x39 ble _080216B8 _080216F2: adds r0, r5, 0 pop {r4-r6} pop {r1} bx r1 .align 2, 0 _080216FC: .4byte gFriendAreas thumb_func_end sub_8021664 thumb_func_start sub_8021700 sub_8021700: push {r4,lr} cmp r0, 0x1 beq _08021710 cmp r0, 0x1 bcc _08021754 cmp r0, 0x2 beq _0802172C b _0802176A _08021710: movs r4, 0x1 ldr r0, _08021728 ldr r1, [r0] _08021716: adds r0, r1, r4 ldrb r0, [r0] cmp r0, 0 bne _08021754 adds r4, 0x1 cmp r4, 0x39 ble _08021716 b _0802176A .align 2, 0 _08021728: .4byte gFriendAreas _0802172C: movs r4, 0x1 _0802172E: ldr r0, _08021750 ldr r0, [r0] adds r0, r4 ldrb r0, [r0] cmp r0, 0 bne _08021764 lsls r0, r4, 24 lsrs r0, 24 bl GetFriendAreaUnlockCondition lsls r0, 24 lsrs r0, 24 cmp r0, 0 beq _08021754 cmp r0, 0x1 beq _08021758 b _08021764 .align 2, 0 _08021750: .4byte gFriendAreas _08021754: movs r0, 0 b _0802176C _08021758: movs r0, 0x6 bl sub_80023E4 lsls r0, 24 cmp r0, 0 bne _08021754 _08021764: adds r4, 0x1 cmp r4, 0x39 ble _0802172E _0802176A: movs r0, 0x1 _0802176C: pop {r4} pop {r1} bx r1 thumb_func_end sub_8021700 thumb_func_start sub_8021774 sub_8021774: 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, _080217E4 movs r0, 0xE0 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 bl sub_8021A60 ldr r0, [r6] mov r1, r8 str r1, [r0, 0x74] lsls r1, 1 add r1, r8 lsls r1, 3 adds r1, 0x7C adds r1, r0, r1 str r1, [r0, 0x78] adds r0, 0x7C bl sub_8006518 ldr r1, [r6] ldr r2, [r1, 0x74] lsls r0, r2, 1 adds r0, r2 lsls r0, 3 adds r1, r0 adds r1, 0x7C ldr r0, _080217E8 ldm r0!, {r2-r4} stm r1!, {r2-r4} ldm r0!, {r2-r4} stm r1!, {r2-r4} bl sub_8021820 movs r0, 0x1 pop {r3} mov r8, r3 pop {r4-r6} pop {r1} bx r1 .align 2, 0 _080217E4: .4byte gUnknown_203B28C _080217E8: .4byte gUnknown_80DC4D8 thumb_func_end sub_8021774 thumb_func_start sub_80217EC sub_80217EC: push {lr} ldr r0, _0802180C ldr r0, [r0] ldr r1, [r0, 0x74] bl sub_8012A64 cmp r0, 0x1 beq _08021810 cmp r0, 0x2 bne _0802181A movs r0, 0x1 bl PlayMenuSoundEffect movs r0, 0x2 b _0802181C .align 2, 0 _0802180C: .4byte gUnknown_203B28C _08021810: movs r0, 0 bl PlayMenuSoundEffect movs r0, 0x3 b _0802181C _0802181A: movs r0, 0 _0802181C: pop {r1} bx r1 thumb_func_end sub_80217EC thumb_func_start sub_8021820 sub_8021820: push {lr} bl sub_8021878 bl sub_8021894 pop {r0} bx r0 thumb_func_end sub_8021820 thumb_func_start sub_8021830 sub_8021830: push {r4,r5,lr} ldr r4, _08021870 ldr r2, [r4] cmp r2, 0 beq _0802186A ldr r0, [r2, 0x74] lsls r1, r0, 1 adds r1, r0 lsls r1, 3 adds r1, r2, r1 adds r1, 0x7C ldr r0, _08021874 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, 0x7C movs r1, 0x1 movs r2, 0x1 bl sub_800641C ldr r0, [r4] bl MemoryFree movs r0, 0 str r0, [r4] _0802186A: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _08021870: .4byte gUnknown_203B28C _08021874: .4byte gUnknown_80DC4BC thumb_func_end sub_8021830 thumb_func_start sub_8021878 sub_8021878: push {lr} bl ResetUnusedInputStruct ldr r0, _08021890 ldr r0, [r0] adds r0, 0x7C movs r1, 0x1 movs r2, 0x1 bl sub_800641C pop {r0} bx r0 .align 2, 0 _08021890: .4byte gUnknown_203B28C thumb_func_end sub_8021878 thumb_func_start sub_8021894 sub_8021894: push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} sub sp, 0x168 ldr r4, _080218F8 ldr r0, [r4] ldr r0, [r0, 0x74] bl sub_80073B8 ldr r0, [r4] ldrb r1, [r0, 0xC] add r0, sp, 0x4 movs r2, 0 bl sub_8092578 ldr r0, [r4] ldr r3, [r0, 0x74] movs r5, 0 str r5, [sp] movs r0, 0x14 movs r1, 0 add r2, sp, 0x4 bl xxx_call_draw_string ldr r0, [r4] ldrb r0, [r0, 0xC] bl GetFriendAreaDescription adds r2, r0, 0 ldr r0, [r4] ldr r3, [r0, 0x74] str r5, [sp] movs r0, 0xA movs r1, 0x14 bl xxx_call_draw_string ldr r4, [r4] ldrb r0, [r4, 0xD] cmp r0, 0 beq _08021900 ldr r2, _080218FC ldr r3, [r4, 0x74] str r5, [sp] movs r0, 0x20 movs r1, 0x3C bl xxx_call_draw_string b _0802190E .align 2, 0 _080218F8: .4byte gUnknown_203B28C _080218FC: .4byte gUnknown_80DC4F0 _08021900: ldr r2, _0802193C ldr r3, [r4, 0x74] str r0, [sp] movs r0, 0x20 movs r1, 0x3C bl xxx_call_draw_string _0802190E: ldr r4, _08021940 ldr r0, [r4] ldr r0, [r0, 0x74] movs r5, 0x4 str r5, [sp] movs r1, 0x4 movs r2, 0x40 movs r3, 0x14 bl sub_800792C ldr r4, [r4] ldrb r0, [r4, 0xD] cmp r0, 0 beq _08021944 ldr r0, [r4, 0x74] str r5, [sp] movs r1, 0xB8 movs r2, 0x40 movs r3, 0x14 bl sub_800792C b _08021952 .align 2, 0 _0802193C: .4byte gUnknown_80DC518 _08021940: .4byte gUnknown_203B28C _08021944: ldr r0, [r4, 0x74] str r5, [sp] movs r1, 0x5E movs r2, 0x40 movs r3, 0x6E bl sub_800792C _08021952: ldr r5, _080219E8 ldr r0, [r5] ldr r0, [r0, 0x74] movs r4, 0x4 str r4, [sp] movs r1, 0x4 movs r2, 0x82 movs r3, 0xC8 bl sub_800792C ldr r0, [r5] ldr r0, [r0, 0x74] str r4, [sp] movs r1, 0x3 movs r2, 0x40 movs r3, 0x43 bl sub_8007A78 ldr r0, [r5] ldr r0, [r0, 0x74] str r4, [sp] movs r1, 0xCC movs r2, 0x40 movs r3, 0x43 bl sub_8007A78 movs r6, 0 ldr r0, [r5] ldr r0, [r0, 0x70] cmp r6, r0 bge _08021A40 add r7, sp, 0x104 mov r8, r5 mov r9, r6 _08021996: adds r0, r6, 0 movs r1, 0x3 bl __modsi3 lsls r1, r0, 6 subs r1, r0 adds r5, r1, 0x7 adds r0, r6, 0 movs r1, 0x3 bl __divsi3 lsls r1, r0, 1 adds r1, r0 lsls r1, 2 adds r4, r1, 0 adds r4, 0x47 mov r1, r8 ldr r0, [r1] lsls r1, r6, 1 adds r0, 0xE adds r0, r1 movs r2, 0 ldrsh r1, [r0, r2] adds r0, r7, 0 bl sub_808D930 mov r0, r8 ldr r3, [r0] lsls r1, r6, 2 adds r0, r3, 0 adds r0, 0x30 adds r0, r1 ldr r0, [r0] cmp r0, 0x1 beq _08021A04 cmp r0, 0x1 bcc _080219EC cmp r0, 0x2 beq _08021A16 b _08021A34 .align 2, 0 _080219E8: .4byte gUnknown_203B28C _080219EC: ldr r0, _08021A00 ldr r2, [r0] ldr r3, [r3, 0x74] mov r1, r9 str r1, [sp] adds r0, r5, 0 adds r1, r4, 0 bl xxx_call_draw_string b _08021A34 .align 2, 0 _08021A00: .4byte gUnknown_80D49BC _08021A04: ldr r3, [r3, 0x74] mov r2, r9 str r2, [sp] adds r0, r5, 0 adds r1, r4, 0 adds r2, r7, 0 bl xxx_call_draw_string b _08021A34 _08021A16: add r0, sp, 0x4 ldr r1, _08021A58 adds r2, r7, 0 bl sprintf_2 mov r1, r8 ldr r0, [r1] ldr r3, [r0, 0x74] mov r2, r9 str r2, [sp] adds r0, r5, 0 adds r1, r4, 0 add r2, sp, 0x4 bl xxx_call_draw_string _08021A34: adds r6, 0x1 mov r1, r8 ldr r0, [r1] ldr r0, [r0, 0x70] cmp r6, r0 blt _08021996 _08021A40: ldr r0, _08021A5C ldr r0, [r0] ldr r0, [r0, 0x74] bl sub_80073E0 add sp, 0x168 pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08021A58: .4byte gUnknown_80DC524 _08021A5C: .4byte gUnknown_203B28C thumb_func_end sub_8021894 thumb_func_start sub_8021A60 sub_8021A60: push {r4-r7,lr} ldr r2, _08021B4C ldr r1, [r2] movs r0, 0 str r0, [r1, 0x70] movs r6, 0 adds r4, r2, 0 movs r3, 0 _08021A70: ldr r1, [r4] lsls r2, r6, 1 adds r0, r1, 0 adds r0, 0xE adds r0, r2 strh r3, [r0] lsls r0, r6, 2 adds r1, 0x30 adds r1, r0 str r3, [r1] adds r6, 0x1 cmp r6, 0xF ble _08021A70 movs r6, 0 ldr r7, _08021B4C _08021A8E: lsls r0, r6, 16 asrs r5, r0, 16 ldr r4, [r7] adds r0, r5, 0 bl GetFriendArea ldrb r1, [r4, 0xC] lsls r0, 24 lsrs r0, 24 cmp r1, r0 bne _08021AC4 adds r0, r5, 0 bl GetBaseSpeciesNoUnown lsls r0, 16 asrs r0, 16 cmp r5, r0 bne _08021AC4 ldr r3, [r7] ldr r1, [r3, 0x70] lsls r2, r1, 1 adds r0, r3, 0 adds r0, 0xE adds r0, r2 strh r5, [r0] adds r1, 0x1 str r1, [r3, 0x70] _08021AC4: adds r6, 0x1 ldr r0, _08021B50 cmp r6, r0 ble _08021A8E movs r6, 0 _08021ACE: lsls r0, r6, 16 asrs r4, r0, 16 adds r0, r4, 0 bl sub_8098134 lsls r0, 24 cmp r0, 0 beq _08021AFC adds r0, r4, 0 bl sub_8021B58 adds r2, r0, 0 movs r0, 0x1 negs r0, r0 cmp r2, r0 beq _08021AFC ldr r0, _08021B4C ldr r1, [r0] lsls r0, r2, 2 adds r1, 0x30 adds r1, r0 movs r0, 0x1 str r0, [r1] _08021AFC: adds r6, 0x1 ldr r0, _08021B50 cmp r6, r0 ble _08021ACE movs r6, 0 ldr r4, _08021B54 _08021B08: movs r0, 0x58 adds r1, r6, 0 muls r1, r0 ldr r0, [r4] adds r2, r0, r1 ldrb r1, [r2] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _08021B3C movs r1, 0x8 ldrsh r0, [r2, r1] bl sub_8021B58 adds r2, r0, 0 movs r0, 0x1 negs r0, r0 cmp r2, r0 beq _08021B3C ldr r0, _08021B4C ldr r1, [r0] lsls r0, r2, 2 adds r1, 0x30 adds r1, r0 movs r0, 0x2 str r0, [r1] _08021B3C: adds r6, 0x1 movs r0, 0xCE lsls r0, 1 cmp r6, r0 ble _08021B08 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08021B4C: .4byte gUnknown_203B28C _08021B50: .4byte 0x000001a7 _08021B54: .4byte gRecruitedPokemonRef thumb_func_end sub_8021A60 thumb_func_start sub_8021B58 sub_8021B58: push {r4,r5,lr} lsls r0, 16 asrs r0, 16 bl GetBaseSpeciesNoUnown lsls r0, 16 asrs r4, r0, 16 movs r2, 0 ldr r0, _08021B84 ldr r0, [r0] ldr r1, [r0, 0x70] cmp r2, r1 bge _08021B90 adds r3, r1, 0 adds r1, r0, 0 adds r1, 0xE _08021B78: movs r5, 0 ldrsh r0, [r1, r5] cmp r4, r0 bne _08021B88 adds r0, r2, 0 b _08021B94 .align 2, 0 _08021B84: .4byte gUnknown_203B28C _08021B88: adds r1, 0x2 adds r2, 0x1 cmp r2, r3 blt _08021B78 _08021B90: movs r0, 0x1 negs r0, r0 _08021B94: pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_8021B58 thumb_func_start CreateWigglytuffShop CreateWigglytuffShop: push {r4-r6,lr} adds r4, r0, 0 bl ResetUnusedInputStruct movs r0, 0 movs r1, 0x1 movs r2, 0x1 bl sub_800641C ldr r5, _08021BF8 movs r0, 0x9C lsls r0, 1 movs r1, 0x8 bl MemoryAlloc str r0, [r5] movs r6, 0 str r6, [r0, 0x14] str r6, [r0, 0x18] str r4, [r0] ldr r0, _08021BFC movs r1, 0x28 bl CopyYellowSpeciesNametoBuffer ldr r4, _08021C00 adds r0, r4, 0 movs r1, 0x28 bl CopyYellowSpeciesNametoBuffer movs r0, 0x28 bl GetMonSpecies adds r1, r0, 0 subs r4, 0x50 adds r0, r4, 0 bl strcpy ldr r5, [r5] ldr r0, [r5] cmp r0, 0x1 bne _08021C04 adds r0, r5, 0 adds r0, 0xCC str r6, [r0] b _08021C0E .align 2, 0 _08021BF8: .4byte gUnknown_203B290 _08021BFC: .4byte gUnknown_202E5D8 _08021C00: .4byte gUnknown_202E1C8 _08021C04: adds r1, r5, 0 adds r1, 0xCC adds r0, r5, 0 adds r0, 0xBC str r0, [r1] _08021C0E: movs r0, 0x28 bl GetDialogueSpriteDataPtr ldr r2, _08021C58 ldr r3, [r2] adds r1, r3, 0 adds r1, 0xBC str r0, [r1] adds r1, 0x4 ldr r0, [r0, 0x4] str r0, [r1] adds r0, r3, 0 adds r0, 0xC8 movs r1, 0 strb r1, [r0] ldr r0, [r2] adds r0, 0xC9 strb r1, [r0] ldr r0, [r2] adds r0, 0xCA strb r1, [r0] ldr r1, [r2] adds r2, r1, 0 adds r2, 0xC4 movs r0, 0x2 strh r0, [r2] adds r1, 0xC6 movs r0, 0x8 strh r0, [r1] movs r0, 0 bl sub_8021D44 movs r0, 0x1 pop {r4-r6} pop {r1} bx r1 .align 2, 0 _08021C58: .4byte gUnknown_203B290 thumb_func_end CreateWigglytuffShop thumb_func_start sub_8021C5C sub_8021C5C: push {lr} ldr r0, _08021C74 ldr r0, [r0] ldr r0, [r0, 0x4] cmp r0, 0x17 bhi _08021D10 lsls r0, 2 ldr r1, _08021C78 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08021C74: .4byte gUnknown_203B290 _08021C78: .4byte _08021C7C .align 2, 0 _08021C7C: .4byte _08021CDC .4byte _08021CDC .4byte _08021D10 .4byte _08021D10 .4byte _08021D0C .4byte _08021D10 .4byte _08021D10 .4byte _08021D10 .4byte _08021D10 .4byte _08021CE2 .4byte _08021CE2 .4byte _08021CE8 .4byte _08021D10 .4byte _08021CF4 .4byte _08021CFA .4byte _08021D10 .4byte _08021D00 .4byte _08021CEE .4byte _08021D10 .4byte _08021D10 .4byte _08021D10 .4byte _08021D10 .4byte _08021D06 .4byte _08021D06 _08021CDC: bl sub_8022460 b _08021D14 _08021CE2: bl sub_8022538 b _08021D14 _08021CE8: bl sub_80225C8 b _08021D14 _08021CEE: bl sub_80224D4 b _08021D14 _08021CF4: bl sub_80226F0 b _08021D14 _08021CFA: bl sub_8022790 b _08021D14 _08021D00: bl sub_8022668 b _08021D14 _08021D06: bl sub_8022684 b _08021D14 _08021D0C: movs r0, 0x3 b _08021D16 _08021D10: bl sub_80226CC _08021D14: movs r0, 0 _08021D16: pop {r1} bx r1 thumb_func_end sub_8021C5C thumb_func_start sub_8021D1C sub_8021D1C: push {r4,lr} ldr r4, _08021D40 ldr r0, [r4] cmp r0, 0 beq _08021D38 adds r0, 0xBC ldr r0, [r0] bl CloseFile ldr r0, [r4] bl MemoryFree movs r0, 0 str r0, [r4] _08021D38: pop {r4} pop {r0} bx r0 .align 2, 0 _08021D40: .4byte gUnknown_203B290 thumb_func_end sub_8021D1C thumb_func_start sub_8021D44 sub_8021D44: push {lr} ldr r1, _08021D58 ldr r1, [r1] str r0, [r1, 0x4] bl sub_8021D5C bl UpdateWigglytuffDialogue pop {r0} bx r0 .align 2, 0 _08021D58: .4byte gUnknown_203B290 thumb_func_end sub_8021D44 thumb_func_start sub_8021D5C sub_8021D5C: push {r4-r7,lr} ldr r4, _08021D7C ldr r0, [r4] adds r0, 0xD0 bl sub_8006518 ldr r1, [r4] ldr r0, [r1, 0x4] cmp r0, 0x9 blt _08021DC8 cmp r0, 0xA ble _08021D80 cmp r0, 0xB beq _08021DB0 b _08021DC8 .align 2, 0 _08021D7C: .4byte gUnknown_203B290 _08021D80: ldr r2, _08021DA8 adds r1, 0xD0 adds r0, r2, 0 ldm r0!, {r3,r5,r6} stm r1!, {r3,r5,r6} ldm r0!, {r3,r5,r7} stm r1!, {r3,r5,r7} ldr r0, [r4] movs r6, 0x80 lsls r6, 1 adds r0, r6 ldm r2!, {r1,r3,r7} stm r0!, {r1,r3,r7} ldm r2!, {r5-r7} stm r0!, {r5-r7} ldr r1, [r4] adds r1, 0xE8 ldr r0, _08021DAC b _08021DB8 .align 2, 0 _08021DA8: .4byte gUnknown_80DC534 _08021DAC: .4byte gUnknown_80DC564 _08021DB0: movs r0, 0x80 lsls r0, 1 adds r1, r0 ldr r0, _08021DC4 _08021DB8: ldm r0!, {r2-r4} stm r1!, {r2-r4} ldm r0!, {r5-r7} stm r1!, {r5-r7} b _08021DEC .align 2, 0 _08021DC4: .4byte gUnknown_80DC54C _08021DC8: ldr r0, _08021E04 mov r12, r0 ldr r4, _08021E08 movs r3, 0 movs r2, 0x3 _08021DD2: mov r5, r12 ldr r1, [r5] adds r1, r3 adds r1, 0xD0 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 _08021DD2 _08021DEC: bl ResetUnusedInputStruct ldr r0, _08021E04 ldr r0, [r0] adds r0, 0xD0 movs r1, 0x1 movs r2, 0x1 bl sub_800641C pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08021E04: .4byte gUnknown_203B290 _08021E08: .4byte gUnknown_80DC534 thumb_func_end sub_8021D5C thumb_func_start UpdateWigglytuffDialogue UpdateWigglytuffDialogue: push {r4,lr} sub sp, 0x20 ldr r1, _08021E28 ldr r0, [r1] ldr r0, [r0, 0x4] adds r4, r1, 0 cmp r0, 0x1C bls _08021E1E b _080222B6 _08021E1E: lsls r0, 2 ldr r1, _08021E2C adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08021E28: .4byte gUnknown_203B290 _08021E2C: .4byte _08021E30 .align 2, 0 _08021E30: .4byte _08021EA4 .4byte _08021EC0 .4byte _08021F38 .4byte _08021F50 .4byte _080222B6 .4byte _08021F78 .4byte _08021F90 .4byte _08021F08 .4byte _08021F20 .4byte _08021FD8 .4byte _08021FE2 .4byte _08021FF0 .4byte _0802208E .4byte _080220B8 .4byte _080220D8 .4byte _080220EA .4byte _08022080 .4byte _08022024 .4byte _08021FA8 .4byte _08021FC0 .4byte _08022138 .4byte _08022150 .4byte _08022168 .4byte _08022176 .4byte _0802217E .4byte _08022238 .4byte _08022250 .4byte _08022268 .4byte _08022294 _08021EA4: bl sub_80222C8 ldr r2, _08021EB8 ldr r0, _08021EBC ldr r4, [r0] ldr r1, [r4] lsls r0, r1, 2 adds r0, r1 lsls r0, 4 b _08021ED4 .align 2, 0 _08021EB8: .4byte gWigglytuffDialogue _08021EBC: .4byte gUnknown_203B290 _08021EC0: bl sub_80222C8 ldr r2, _08021F00 ldr r0, _08021F04 ldr r4, [r0] ldr r1, [r4] lsls r0, r1, 2 adds r0, r1 lsls r0, 4 adds r2, 0x4 _08021ED4: adds r0, r2 ldr r0, [r0] ldr r2, [r4, 0x14] adds r3, r4, 0 adds r3, 0x1C adds r1, r4, 0 adds r1, 0x5C str r1, [sp] movs r1, 0x4 str r1, [sp, 0x4] movs r1, 0 str r1, [sp, 0x8] adds r1, r4, 0 adds r1, 0xCC ldr r1, [r1] str r1, [sp, 0xC] movs r1, 0xC str r1, [sp, 0x10] movs r1, 0 bl sub_8014248 b _080222B6 .align 2, 0 _08021F00: .4byte gWigglytuffDialogue _08021F04: .4byte gUnknown_203B290 _08021F08: ldr r3, [r4] movs r0, 0x9 str r0, [r3, 0x8] ldr r2, _08021F1C ldr r1, [r3] lsls r0, r1, 2 adds r0, r1 lsls r0, 4 adds r2, 0xC b _0802227A .align 2, 0 _08021F1C: .4byte gWigglytuffDialogue _08021F20: ldr r3, [r4] movs r0, 0xA str r0, [r3, 0x8] ldr r2, _08021F34 ldr r1, [r3] lsls r0, r1, 2 adds r0, r1 lsls r0, 4 adds r2, 0x10 b _0802227A .align 2, 0 _08021F34: .4byte gWigglytuffDialogue _08021F38: ldr r3, [r4] movs r0, 0x1 str r0, [r3, 0x8] ldr r2, _08021F4C ldr r1, [r3] lsls r0, r1, 2 adds r0, r1 lsls r0, 4 adds r2, 0x4C b _0802227A .align 2, 0 _08021F4C: .4byte gWigglytuffDialogue _08021F50: ldr r3, [r4] movs r0, 0x4 str r0, [r3, 0x8] ldr r2, _08021F70 ldr r1, [r3] lsls r0, r1, 2 adds r0, r1 lsls r0, 4 adds r2, 0x8 adds r0, r2 ldr r0, [r0] adds r3, 0xCC ldr r2, [r3] ldr r3, _08021F74 b _08022284 .align 2, 0 _08021F70: .4byte gWigglytuffDialogue _08021F74: .4byte 0x0000030d _08021F78: ldr r3, [r4] movs r0, 0x3 str r0, [r3, 0x8] ldr r2, _08021F8C ldr r1, [r3] lsls r0, r1, 2 adds r0, r1 lsls r0, 4 adds r2, 0x20 b _0802227A .align 2, 0 _08021F8C: .4byte gWigglytuffDialogue _08021F90: ldr r3, [r4] movs r0, 0xA str r0, [r3, 0x8] ldr r2, _08021FA4 ldr r1, [r3] lsls r0, r1, 2 adds r0, r1 lsls r0, 4 adds r2, 0x24 b _0802227A .align 2, 0 _08021FA4: .4byte gWigglytuffDialogue _08021FA8: ldr r3, [r4] movs r0, 0x3 str r0, [r3, 0x8] ldr r2, _08021FBC ldr r1, [r3] lsls r0, r1, 2 adds r0, r1 lsls r0, 4 adds r2, 0x28 b _0802227A .align 2, 0 _08021FBC: .4byte gWigglytuffDialogue _08021FC0: ldr r3, [r4] movs r0, 0xA str r0, [r3, 0x8] ldr r2, _08021FD4 ldr r1, [r3] lsls r0, r1, 2 adds r0, r1 lsls r0, 4 adds r2, 0x2C b _0802227A .align 2, 0 _08021FD4: .4byte gWigglytuffDialogue _08021FD8: movs r0, 0x2 movs r1, 0x3 bl sub_80211AC b _08021FE8 _08021FE2: movs r0, 0x1 bl sub_8021354 _08021FE8: movs r0, 0x1 bl DrawTeamMoneyBox b _080222B6 _08021FF0: bl sub_8021494 movs r0, 0x1 bl DrawTeamMoneyBox bl sub_8022380 ldr r0, _08022020 ldr r2, [r0] adds r0, r2, 0 adds r0, 0x6C adds r1, r2, 0 adds r1, 0x1C adds r3, r2, 0 adds r3, 0x5C ldr r2, [r2, 0x18] str r2, [sp] movs r2, 0x2 str r2, [sp, 0x4] movs r2, 0 bl sub_8012D60 b _080222B6 .align 2, 0 _08022020: .4byte gUnknown_203B290 _08022024: bl sub_8022420 ldr r0, _08022070 ldr r4, _08022074 ldr r1, [r4] ldrb r1, [r1, 0x10] movs r2, 0 bl sub_8092578 ldr r1, _08022078 ldr r4, [r4] ldr r0, [r4, 0xC] str r0, [r1] ldr r2, _0802207C ldr r1, [r4] lsls r0, r1, 2 adds r0, r1 lsls r0, 4 adds r2, 0x14 adds r0, r2 ldr r0, [r0] adds r3, r4, 0 adds r3, 0x1C movs r2, 0 str r2, [sp] movs r1, 0x4 str r1, [sp, 0x4] str r2, [sp, 0x8] adds r4, 0xCC ldr r1, [r4] str r1, [sp, 0xC] movs r1, 0xC str r1, [sp, 0x10] movs r1, 0 movs r2, 0x5 bl sub_8014248 b _080222B6 .align 2, 0 _08022070: .4byte gUnknown_202E628 _08022074: .4byte gUnknown_203B290 _08022078: .4byte gUnknown_202DE30 _0802207C: .4byte gWigglytuffDialogue _08022080: ldr r0, [r4] ldrb r0, [r0, 0x10] movs r1, 0 movs r2, 0x2 bl sub_8021774 b _080222B6 _0802208E: ldr r1, [r4] movs r0, 0xD str r0, [r1, 0x8] ldr r0, _080220B0 ldrb r1, [r1, 0x10] movs r2, 0 bl sub_8092578 ldr r2, _080220B4 ldr r3, [r4] ldr r1, [r3] lsls r0, r1, 2 adds r0, r1 lsls r0, 4 adds r2, 0x18 b _0802227A .align 2, 0 _080220B0: .4byte gUnknown_202E628 _080220B4: .4byte gWigglytuffDialogue _080220B8: ldr r1, [r4] movs r0, 0xE str r0, [r1, 0x8] ldr r0, _080220D4 bl PlaySound ldr r0, [r4] movs r1, 0x98 lsls r1, 1 adds r0, r1 movs r1, 0x1 str r1, [r0] b _080222B6 .align 2, 0 _080220D4: .4byte 0x0000025b _080220D8: ldr r0, [r4] movs r1, 0xF str r1, [r0, 0x8] movs r1, 0x9A lsls r1, 1 adds r0, r1 movs r1, 0x1E str r1, [r0] b _080222B6 _080220EA: movs r0, 0x2 bl sub_8021700 lsls r0, 24 cmp r0, 0 beq _08022108 bl sub_80213A0 ldr r0, _08022104 ldr r1, [r0] movs r0, 0x12 b _0802210E .align 2, 0 _08022104: .4byte gUnknown_203B290 _08022108: ldr r0, _08022130 ldr r1, [r0] movs r0, 0x8 _0802210E: str r0, [r1, 0x8] movs r0, 0xCE bl PlaySound ldr r3, _08022134 ldr r0, _08022130 ldr r2, [r0] ldr r1, [r2] lsls r0, r1, 2 adds r0, r1 lsls r0, 4 adds r3, 0x1C adds r0, r3 ldr r0, [r0] adds r2, 0xCC ldr r2, [r2] b _08022282 .align 2, 0 _08022130: .4byte gUnknown_203B290 _08022134: .4byte gWigglytuffDialogue _08022138: ldr r3, [r4] movs r0, 0x16 str r0, [r3, 0x8] ldr r2, _0802214C ldr r1, [r3] lsls r0, r1, 2 adds r0, r1 lsls r0, 4 adds r2, 0x30 b _0802227A .align 2, 0 _0802214C: .4byte gWigglytuffDialogue _08022150: ldr r3, [r4] movs r0, 0x17 str r0, [r3, 0x8] ldr r2, _08022164 ldr r1, [r3] lsls r0, r1, 2 adds r0, r1 lsls r0, 4 adds r2, 0x34 b _0802227A .align 2, 0 _08022164: .4byte gWigglytuffDialogue _08022168: movs r0, 0 movs r1, 0x3 movs r2, 0 movs r3, 0xA bl sub_8023144 b _080222B6 _08022176: movs r0, 0x1 bl sub_8023354 b _080222B6 _0802217E: ldr r4, _080221A0 ldr r0, [r4] ldrb r0, [r0, 0x10] add r1, sp, 0x14 movs r2, 0 movs r3, 0 bl sub_8092638 add r0, sp, 0x14 ldrb r0, [r0, 0x4] cmp r0, 0 beq _080221A4 ldr r1, [r4] movs r0, 0x19 str r0, [r1, 0x8] b _080221FA .align 2, 0 _080221A0: .4byte gUnknown_203B290 _080221A4: ldr r0, [r4] ldrb r0, [r0, 0x10] bl GetFriendAreaUnlockCondition lsls r0, 24 lsrs r0, 24 cmp r0, 0x2 beq _080221E0 cmp r0, 0x2 bgt _080221BE cmp r0, 0x1 beq _080221C4 b _080221F0 _080221BE: cmp r0, 0x3 beq _080221E8 b _080221F0 _080221C4: movs r0, 0x6 bl sub_80023E4 lsls r0, 24 cmp r0, 0 beq _080221D8 ldr r1, [r4] movs r0, 0x15 str r0, [r1, 0x8] b _080221FA _080221D8: ldr r1, [r4] movs r0, 0x1A str r0, [r1, 0x8] b _080221FA _080221E0: ldr r1, [r4] movs r0, 0x1B str r0, [r1, 0x8] b _080221FA _080221E8: ldr r1, [r4] movs r0, 0x1C str r0, [r1, 0x8] b _080221FA _080221F0: ldr r2, _08022228 ldr r1, [r2] movs r0, 0x15 str r0, [r1, 0x8] adds r4, r2, 0 _080221FA: ldr r0, [r4] movs r1, 0x12 ldrsh r0, [r0, r1] bl GetMonSpecies adds r1, r0, 0 ldr r0, _0802222C bl strcpy ldr r0, _08022230 ldr r1, [r4] ldrb r1, [r1, 0x10] movs r2, 0 bl sub_8092578 ldr r2, _08022234 ldr r3, [r4] ldr r1, [r3] lsls r0, r1, 2 adds r0, r1 lsls r0, 4 adds r2, 0x38 b _0802227A .align 2, 0 _08022228: .4byte gUnknown_203B290 _0802222C: .4byte gAvailablePokemonNames _08022230: .4byte gUnknown_202E628 _08022234: .4byte gWigglytuffDialogue _08022238: ldr r3, [r4] movs r0, 0x15 str r0, [r3, 0x8] ldr r2, _0802224C ldr r1, [r3] lsls r0, r1, 2 adds r0, r1 lsls r0, 4 adds r2, 0x3C b _0802227A .align 2, 0 _0802224C: .4byte gWigglytuffDialogue _08022250: ldr r3, [r4] movs r0, 0x15 str r0, [r3, 0x8] ldr r2, _08022264 ldr r1, [r3] lsls r0, r1, 2 adds r0, r1 lsls r0, 4 adds r2, 0x40 b _0802227A .align 2, 0 _08022264: .4byte gWigglytuffDialogue _08022268: ldr r3, [r4] movs r0, 0x15 str r0, [r3, 0x8] ldr r2, _0802228C ldr r1, [r3] lsls r0, r1, 2 adds r0, r1 lsls r0, 4 adds r2, 0x44 _0802227A: adds r0, r2 ldr r0, [r0] adds r3, 0xCC ldr r2, [r3] _08022282: ldr r3, _08022290 _08022284: movs r1, 0 bl sub_80141B4 b _080222B6 .align 2, 0 _0802228C: .4byte gWigglytuffDialogue _08022290: .4byte 0x0000010d _08022294: ldr r3, [r4] movs r0, 0x15 str r0, [r3, 0x8] ldr r2, _080222C0 ldr r1, [r3] lsls r0, r1, 2 adds r0, r1 lsls r0, 4 adds r2, 0x48 adds r0, r2 ldr r0, [r0] adds r3, 0xCC ldr r2, [r3] ldr r3, _080222C4 movs r1, 0 bl sub_80141B4 _080222B6: add sp, 0x20 pop {r4} pop {r0} bx r0 .align 2, 0 _080222C0: .4byte gWigglytuffDialogue _080222C4: .4byte 0x0000010d thumb_func_end UpdateWigglytuffDialogue thumb_func_start sub_80222C8 sub_80222C8: push {r4-r7,lr} ldr r4, _08022344 ldr r0, [r4] adds r0, 0x5C movs r1, 0 movs r2, 0x10 bl MemoryFill16 ldr r1, [r4] movs r5, 0 ldr r0, _08022348 ldr r0, [r0] str r0, [r1, 0x1C] adds r3, r1, 0 adds r3, 0x20 movs r0, 0x2 str r0, [r1, 0x20] movs r2, 0x1 ldr r0, _0802234C ldr r0, [r0] str r0, [r1, 0x24] movs r0, 0x3 str r0, [r1, 0x28] ldr r0, _08022350 ldr r0, [r0] str r0, [r1, 0x2C] movs r0, 0x4 str r0, [r1, 0x30] ldr r0, _08022354 ldr r0, [r0] str r0, [r1, 0x34] str r2, [r1, 0x38] movs r7, 0x4 str r5, [r1, 0x3C] str r2, [r3, 0x20] adds r6, r1, 0 adds r2, r6, 0 adds r2, 0x5C _08022314: ldrh r0, [r2] cmp r0, 0 bne _08022322 ldr r1, [r3] ldr r0, [r6, 0x14] cmp r1, r0 beq _0802237A _08022322: adds r3, 0x8 adds r2, 0x2 adds r5, 0x1 cmp r5, r7 blt _08022314 movs r5, 0 cmp r5, r7 bge _0802237A ldr r1, [r4] adds r0, r1, 0 adds r0, 0x5C ldrh r0, [r0] cmp r0, 0 bne _08022358 ldr r0, [r1, 0x20] str r0, [r1, 0x14] b _0802237A .align 2, 0 _08022344: .4byte gUnknown_203B290 _08022348: .4byte gUnknown_80D4978 _0802234C: .4byte gWigglytuffCheck _08022350: .4byte gUnknown_80D4970 _08022354: .4byte gUnknown_80D4934 _08022358: adds r5, 0x1 cmp r5, r7 bge _0802237A ldr r2, [r4] lsls r0, r5, 1 adds r1, r2, 0 adds r1, 0x5C adds r1, r0 ldrh r0, [r1] cmp r0, 0 bne _08022358 lsls r0, r5, 3 adds r1, r2, 0 adds r1, 0x20 adds r1, r0 ldr r0, [r1] str r0, [r2, 0x14] _0802237A: pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_80222C8 thumb_func_start sub_8022380 sub_8022380: push {r4-r7,lr} ldr r4, _080223EC ldr r0, [r4] adds r0, 0x5C movs r1, 0 movs r2, 0x10 bl MemoryFill16 ldr r3, [r4] movs r2, 0 ldr r0, _080223F0 ldr r0, [r0] str r0, [r3, 0x1C] movs r0, 0x2 str r0, [r3, 0x20] movs r1, 0x1 ldr r0, _080223F4 ldr r0, [r0] str r0, [r3, 0x24] movs r0, 0x4 str r0, [r3, 0x28] movs r6, 0x2 str r2, [r3, 0x2C] str r1, [r3, 0x30] movs r5, 0 mov r12, r3 adds r3, 0x20 mov r2, r12 adds r2, 0x5C _080223BA: ldrh r0, [r2] cmp r0, 0 bne _080223CA ldr r1, [r3] mov r7, r12 ldr r0, [r7, 0x18] cmp r1, r0 beq _0802241A _080223CA: adds r3, 0x8 adds r2, 0x2 adds r5, 0x1 cmp r5, r6 blt _080223BA movs r5, 0 cmp r5, r6 bge _0802241A ldr r1, [r4] adds r0, r1, 0 adds r0, 0x5C ldrh r0, [r0] cmp r0, 0 bne _080223F8 ldr r0, [r1, 0x20] str r0, [r1, 0x18] b _0802241A .align 2, 0 _080223EC: .4byte gUnknown_203B290 _080223F0: .4byte gUnknown_80D4978 _080223F4: .4byte gUnknown_80D4970 _080223F8: adds r5, 0x1 cmp r5, r6 bge _0802241A ldr r2, [r4] lsls r0, r5, 1 adds r1, r2, 0 adds r1, 0x5C adds r1, r0 ldrh r0, [r1] cmp r0, 0 bne _080223F8 lsls r0, r5, 3 adds r1, r2, 0 adds r1, 0x20 adds r1, r0 ldr r0, [r1] str r0, [r2, 0x18] _0802241A: pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_8022380 thumb_func_start sub_8022420 sub_8022420: push {r4,lr} ldr r4, _08022454 ldr r0, [r4] adds r0, 0x5C movs r1, 0 movs r2, 0x10 bl MemoryFill16 ldr r1, [r4] movs r3, 0 ldr r0, _08022458 ldr r0, [r0] str r0, [r1, 0x1C] movs r0, 0x5 str r0, [r1, 0x20] movs r2, 0x1 ldr r0, _0802245C ldr r0, [r0] str r0, [r1, 0x24] movs r0, 0x6 str r0, [r1, 0x28] str r3, [r1, 0x2C] str r2, [r1, 0x30] pop {r4} pop {r0} bx r0 .align 2, 0 _08022454: .4byte gUnknown_203B290 _08022458: .4byte gUnknown_80D4920 _0802245C: .4byte gUnknown_80D4928 thumb_func_end sub_8022420 thumb_func_start sub_8022460 sub_8022460: push {lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 cmp r0, 0 bne _080224CC ldr r1, [sp] cmp r1, 0x1 beq _0802247A ldr r0, _0802248C ldr r0, [r0] str r1, [r0, 0x14] _0802247A: ldr r0, [sp] cmp r0, 0x2 beq _0802249A cmp r0, 0x2 bgt _08022490 cmp r0, 0x1 beq _080224C6 b _080224CC .align 2, 0 _0802248C: .4byte gUnknown_203B290 _08022490: cmp r0, 0x3 beq _080224B6 cmp r0, 0x4 beq _080224BE b _080224CC _0802249A: movs r0, 0x2 bl sub_8021700 lsls r0, 24 cmp r0, 0 beq _080224AE movs r0, 0x5 bl sub_8021D44 b _080224CC _080224AE: movs r0, 0x7 bl sub_8021D44 b _080224CC _080224B6: movs r0, 0x14 bl sub_8021D44 b _080224CC _080224BE: movs r0, 0x2 bl sub_8021D44 b _080224CC _080224C6: movs r0, 0x3 bl sub_8021D44 _080224CC: add sp, 0x4 pop {r0} bx r0 thumb_func_end sub_8022460 thumb_func_start sub_80224D4 sub_80224D4: push {lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 cmp r0, 0 bne _08022532 ldr r0, [sp] cmp r0, 0x5 beq _080224F8 cmp r0, 0x5 bgt _080224F2 cmp r0, 0x1 beq _0802252C b _08022532 _080224F2: cmp r0, 0x6 beq _0802252C b _08022532 _080224F8: ldr r0, _08022524 ldr r2, [r0] movs r0, 0x98 lsls r0, 2 adds r2, r0 ldr r0, _08022528 ldr r3, [r0] ldr r0, [r2] ldr r1, [r3, 0xC] subs r0, r1 str r0, [r2] ldrb r0, [r3, 0x10] bl UnlockFriendArea movs r0, 0xA6 lsls r0, 1 bl PlaySound movs r0, 0xC bl sub_8021D44 b _08022532 .align 2, 0 _08022524: .4byte gTeamInventory_203B460 _08022528: .4byte gUnknown_203B290 _0802252C: movs r0, 0xA bl sub_8021D44 _08022532: add sp, 0x4 pop {r0} bx r0 thumb_func_end sub_80224D4 thumb_func_start sub_8022538 sub_8022538: push {r4,lr} movs r0, 0x1 bl sub_8021274 cmp r0, 0x4 bhi _080225BC lsls r0, 2 ldr r1, _08022550 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08022550: .4byte _08022554 .align 2, 0 _08022554: .4byte _080225C2 .4byte _080225BC .4byte _080225B0 .4byte _08022568 .4byte _0802258C _08022568: bl sub_802132C ldr r4, _08022588 ldr r1, [r4] strb r0, [r1, 0x10] ldr r0, [r4] ldrb r0, [r0, 0x10] bl GetFriendAreaPrice ldr r1, [r4] str r0, [r1, 0xC] movs r0, 0xB bl sub_8021D44 b _080225C2 .align 2, 0 _08022588: .4byte gUnknown_203B290 _0802258C: bl sub_802132C ldr r4, _080225AC ldr r1, [r4] strb r0, [r1, 0x10] ldr r0, [r4] ldrb r0, [r0, 0x10] bl GetFriendAreaPrice ldr r1, [r4] str r0, [r1, 0xC] movs r0, 0x10 bl sub_8021D44 b _080225C2 .align 2, 0 _080225AC: .4byte gUnknown_203B290 _080225B0: bl sub_80213A0 movs r0, 0x1 bl sub_8021D44 b _080225C2 _080225BC: movs r0, 0x1 bl DrawTeamMoneyBox _080225C2: pop {r4} pop {r0} bx r0 thumb_func_end sub_8022538 thumb_func_start sub_80225C8 sub_80225C8: push {r4,lr} sub sp, 0x4 movs r0, 0 str r0, [sp] bl sub_8021274 ldr r4, _08022608 ldr r0, [r4] adds r0, 0x6C bl sub_8012FD8 lsls r0, 24 cmp r0, 0 bne _080225F8 ldr r0, [r4] adds r0, 0x6C mov r1, sp bl sub_8013114 ldr r1, [sp] cmp r1, 0x1 beq _080225F8 ldr r0, [r4] str r1, [r0, 0x18] _080225F8: ldr r0, [sp] cmp r0, 0x2 beq _08022612 cmp r0, 0x2 bgt _0802260C cmp r0, 0x1 beq _08022658 b _0802265E .align 2, 0 _08022608: .4byte gUnknown_203B290 _0802260C: cmp r0, 0x4 beq _08022650 b _0802265E _08022612: ldr r0, _0802262C ldr r0, [r0] movs r1, 0x98 lsls r1, 2 adds r0, r1 ldr r1, [r0] cmp r1, 0 bne _08022630 movs r0, 0x6 bl sub_8021D44 b _0802265E .align 2, 0 _0802262C: .4byte gTeamInventory_203B460 _08022630: ldr r0, _08022644 ldr r0, [r0] ldr r0, [r0, 0xC] cmp r0, r1 ble _08022648 movs r0, 0x13 bl sub_8021D44 b _0802265E .align 2, 0 _08022644: .4byte gUnknown_203B290 _08022648: movs r0, 0x11 bl sub_8021D44 b _0802265E _08022650: movs r0, 0x10 bl sub_8021D44 b _0802265E _08022658: movs r0, 0xA bl sub_8021D44 _0802265E: add sp, 0x4 pop {r4} pop {r0} bx r0 thumb_func_end sub_80225C8 thumb_func_start sub_8022668 sub_8022668: push {lr} bl sub_80217EC cmp r0, 0x1 bls _08022680 cmp r0, 0x3 bhi _08022680 bl sub_8021830 movs r0, 0xA bl sub_8021D44 _08022680: pop {r0} bx r0 thumb_func_end sub_8022668 thumb_func_start sub_8022684 sub_8022684: push {r4,lr} movs r0, 0x1 bl sub_8023278 cmp r0, 0x2 beq _080226BC cmp r0, 0x2 bcc _080226C6 cmp r0, 0x3 bne _080226C6 bl sub_802331C ldr r4, _080226B8 ldr r1, [r4] strh r0, [r1, 0x12] movs r2, 0x12 ldrsh r0, [r1, r2] bl GetFriendArea ldr r1, [r4] strb r0, [r1, 0x10] movs r0, 0x18 bl sub_8021D44 b _080226C6 .align 2, 0 _080226B8: .4byte gUnknown_203B290 _080226BC: bl sub_80233A0 movs r0, 0x1 bl sub_8021D44 _080226C6: pop {r4} pop {r0} bx r0 thumb_func_end sub_8022684 thumb_func_start sub_80226CC sub_80226CC: push {lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 cmp r0, 0 bne _080226E4 ldr r0, _080226EC ldr r0, [r0] ldr r0, [r0, 0x8] bl sub_8021D44 _080226E4: add sp, 0x4 pop {r0} bx r0 .align 2, 0 _080226EC: .4byte gUnknown_203B290 thumb_func_end sub_80226CC thumb_func_start sub_80226F0 sub_80226F0: push {r4,lr} sub sp, 0x4 mov r1, sp movs r2, 0 movs r0, 0x80 strb r0, [r1] strb r0, [r1, 0x1] movs r0, 0x10 strb r0, [r1, 0x2] strb r2, [r1, 0x3] bl sub_8099B94 lsls r0, 24 cmp r0, 0 bne _08022782 ldr r0, _08022728 ldr r0, [r0] movs r1, 0x98 lsls r1, 1 adds r0, r1 ldr r0, [r0] cmp r0, 0x4 bhi _0802275C lsls r0, 2 ldr r1, _0802272C adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08022728: .4byte gUnknown_203B290 _0802272C: .4byte _08022730 .align 2, 0 _08022730: .4byte _0802275C .4byte _08022744 .4byte _08022750 .4byte _08022744 .4byte _08022750 _08022744: movs r0, 0x5 movs r1, 0x2 ldr r2, [sp] bl sub_8099AFC b _08022772 _08022750: movs r0, 0x5 movs r1, 0x2 ldr r2, [sp] bl sub_8099A5C b _08022772 _0802275C: ldr r4, _0802278C ldr r0, [r4] ldr r0, [r0, 0x8] bl sub_8021D44 ldr r0, [r4] movs r1, 0x98 lsls r1, 1 adds r0, r1 movs r1, 0 str r1, [r0] _08022772: ldr r0, _0802278C ldr r1, [r0] movs r0, 0x98 lsls r0, 1 adds r1, r0 ldr r0, [r1] adds r0, 0x1 str r0, [r1] _08022782: add sp, 0x4 pop {r4} pop {r0} bx r0 .align 2, 0 _0802278C: .4byte gUnknown_203B290 thumb_func_end sub_80226F0 thumb_func_start sub_8022790 sub_8022790: push {lr} ldr r0, _080227A8 ldr r2, [r0] movs r0, 0x9A lsls r0, 1 adds r1, r2, r0 ldr r0, [r1] cmp r0, 0 beq _080227AC subs r0, 0x1 str r0, [r1] b _080227B2 .align 2, 0 _080227A8: .4byte gUnknown_203B290 _080227AC: ldr r0, [r2, 0x8] bl sub_8021D44 _080227B2: pop {r0} bx r0 thumb_func_end sub_8022790 thumb_func_start sub_80227B8 sub_80227B8: push {r4,r5,lr} adds r5, r0, 0 bl ResetUnusedInputStruct movs r0, 0 movs r1, 0x1 movs r2, 0x1 bl sub_800641C ldr r4, _08022810 movs r0, 0xD4 lsls r0, 1 movs r1, 0x8 bl MemoryAlloc str r0, [r4] adds r2, r0, 0 adds r2, 0xF4 movs r1, 0 str r1, [r2] str r5, [r0, 0x48] cmp r5, 0 beq _08022820 ldr r4, _08022814 adds r0, r4, 0 adds r1, r5, 0 movs r2, 0x7 bl PrintColoredPokeNameToBuffer adds r4, 0x50 adds r0, r4, 0 adds r1, r5, 0 movs r2, 0x6 bl PrintColoredPokeNameToBuffer bl HasGummiItem lsls r0, 24 cmp r0, 0 beq _08022818 movs r0, 0 bl sub_8022924 b _08022856 .align 2, 0 _08022810: .4byte gUnknown_203B294 _08022814: .4byte gAvailablePokemonNames _08022818: movs r0, 0x11 bl sub_8022924 b _08022856 _08022820: ldr r4, _08022848 ldr r5, _0802284C adds r0, r4, 0 adds r1, r5, 0 bl strcpy adds r4, 0x50 adds r0, r4, 0 adds r1, r5, 0 bl strcpy bl GetNumberOfFilledInventorySlots cmp r0, 0 bne _08022850 movs r0, 0x12 bl sub_8022924 b _08022856 .align 2, 0 _08022848: .4byte gAvailablePokemonNames _0802284C: .4byte gUnknown_80DC5EC _08022850: movs r0, 0 bl sub_8022924 _08022856: movs r0, 0x1 pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_80227B8 thumb_func_start sub_8022860 sub_8022860: push {lr} ldr r0, _08022878 ldr r0, [r0] ldr r0, [r0] cmp r0, 0x16 bhi _080228FE lsls r0, 2 ldr r1, _0802287C adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08022878: .4byte gUnknown_203B294 _0802287C: .4byte _08022880 .align 2, 0 _08022880: .4byte _080228DC .4byte _080228DC .4byte _080228E2 .4byte _080228E8 .4byte _080228EE .4byte _080228FE .4byte _080228FE .4byte _080228FE .4byte _080228FE .4byte _080228FE .4byte _080228FE .4byte _080228FE .4byte _080228FE .4byte _080228FE .4byte _080228FE .4byte _080228FE .4byte _080228FE .4byte _080228FE .4byte _080228FE .4byte _080228FE .4byte _080228FE .4byte _080228F4 .4byte _080228FA _080228DC: bl sub_8022E78 b _08022902 _080228E2: bl sub_8022EF4 b _08022902 _080228E8: bl sub_8023068 b _08022902 _080228EE: bl sub_80230E8 b _08022902 _080228F4: bl sub_8023104 b _08022902 _080228FA: movs r0, 0x3 b _08022904 _080228FE: bl sub_8023120 _08022902: movs r0, 0 _08022904: pop {r1} bx r1 thumb_func_end sub_8022860 thumb_func_start sub_8022908 sub_8022908: push {r4,lr} ldr r4, _08022920 ldr r0, [r4] cmp r0, 0 beq _0802291A bl MemoryFree movs r0, 0 str r0, [r4] _0802291A: pop {r4} pop {r0} bx r0 .align 2, 0 _08022920: .4byte gUnknown_203B294 thumb_func_end sub_8022908 thumb_func_start sub_8022924 sub_8022924: push {lr} ldr r1, _08022938 ldr r1, [r1] str r0, [r1] bl sub_802293C bl sub_8022A10 pop {r0} bx r0 .align 2, 0 _08022938: .4byte gUnknown_203B294 thumb_func_end sub_8022924 thumb_func_start sub_802293C sub_802293C: push {r4-r7,lr} mov r7, r8 push {r7} ldr r4, _08022964 ldr r0, [r4] movs r1, 0xA4 lsls r1, 1 adds r0, r1 bl sub_8006518 ldr r1, [r4] ldr r0, [r1] cmp r0, 0x3 beq _080229A4 cmp r0, 0x3 bgt _08022968 cmp r0, 0x2 beq _08022972 b _080229BC .align 2, 0 _08022964: .4byte gUnknown_203B294 _08022968: cmp r0, 0x10 bgt _080229BC cmp r0, 0xA blt _080229BC b _080229E6 _08022972: bl sub_8022D2C ldr r2, [r4] movs r0, 0xBC lsls r0, 1 adds r2, r0 ldr r1, _080229A0 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, 0xF8 bl sub_8012CAC ldr r0, [r4] movs r6, 0xC2 lsls r6, 1 adds r0, r6 movs r1, 0x6 strh r1, [r0] b _080229E6 .align 2, 0 _080229A0: .4byte gUnknown_80DC5BC _080229A4: movs r7, 0xB0 lsls r7, 1 adds r1, r7 ldr r0, _080229B8 ldm r0!, {r2-r4} stm r1!, {r2-r4} ldm r0!, {r5-r7} stm r1!, {r5-r7} b _080229E6 .align 2, 0 _080229B8: .4byte gUnknown_80DC5D4 _080229BC: ldr r0, _08022A08 mov r12, r0 movs r1, 0xA4 lsls r1, 1 mov r8, r1 ldr r4, _08022A0C movs r3, 0 movs r2, 0x3 _080229CC: 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 _080229CC _080229E6: bl ResetUnusedInputStruct ldr r0, _08022A08 ldr r0, [r0] movs r6, 0xA4 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 _08022A08: .4byte gUnknown_203B294 _08022A0C: .4byte gUnknown_80DC5A4 thumb_func_end sub_802293C thumb_func_start sub_8022A10 sub_8022A10: push {r4-r7,lr} sub sp, 0x8 ldr r1, _08022A2C ldr r0, [r1] ldr r0, [r0] adds r4, r1, 0 cmp r0, 0x16 bls _08022A22 b _08022D1E _08022A22: lsls r0, 2 ldr r1, _08022A30 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08022A2C: .4byte gUnknown_203B294 _08022A30: .4byte _08022A34 .align 2, 0 _08022A34: .4byte _08022A90 .4byte _08022AAA .4byte _08022AB2 .4byte _08022AE0 .4byte _08022B10 .4byte _08022B1A .4byte _08022B24 .4byte _08022B34 .4byte _08022B44 .4byte _08022B54 .4byte _08022B64 .4byte _08022C28 .4byte _08022CA0 .4byte _08022CA8 .4byte _08022CB0 .4byte _08022CB8 .4byte _08022CC0 .4byte _08022CC8 .4byte _08022CD8 .4byte _08022CE8 .4byte _08022CF8 .4byte _08022D14 .4byte _08022D1E _08022A90: ldr r0, [r4] ldr r0, [r0, 0x48] cmp r0, 0 beq _08022A9C movs r0, 0x5 b _08022A9E _08022A9C: movs r0, 0x1 _08022A9E: movs r1, 0x3 movs r2, 0 movs r3, 0xA bl sub_801A5D8 b _08022D22 _08022AAA: movs r0, 0x1 bl sub_801A8D0 b _08022D22 _08022AB2: bl sub_801A9E0 ldr r0, _08022ADC ldr r2, [r0] adds r0, r2, 0 adds r0, 0x54 adds r1, r2, 0 adds r1, 0xF8 movs r4, 0x9C lsls r4, 1 adds r3, r2, r4 adds r2, 0xF4 ldr r2, [r2] str r2, [sp] movs r2, 0x2 str r2, [sp, 0x4] movs r2, 0 bl sub_8012D60 b _08022D22 .align 2, 0 _08022ADC: .4byte gUnknown_203B294 _08022AE0: bl sub_801A9E0 ldr r4, _08022B08 ldr r0, [r4] adds r0, 0x54 movs r1, 0 bl sub_8012EA4 ldr r0, [r4] adds r0, 0xA4 ldr r1, _08022B0C movs r2, 0x3 str r2, [sp] movs r2, 0x1 str r2, [sp, 0x4] movs r2, 0 movs r3, 0 bl sub_8012D60 b _08022D22 .align 2, 0 _08022B08: .4byte gUnknown_203B294 _08022B0C: .4byte gUnknown_80DC584 _08022B10: ldr r0, [r4] adds r0, 0x50 bl sub_801B3C0 b _08022D22 _08022B1A: ldr r0, _08022B20 b _08022D00 .align 2, 0 _08022B20: .4byte gUnknown_80DC5F4 _08022B24: ldr r0, _08022B2C ldr r3, _08022B30 b _08022D02 .align 2, 0 _08022B2C: .4byte gUnknown_80DC618 _08022B30: .4byte 0x00000101 _08022B34: ldr r0, _08022B3C ldr r3, _08022B40 b _08022D02 .align 2, 0 _08022B3C: .4byte gUnknown_80DC674 _08022B40: .4byte 0x00000101 _08022B44: ldr r0, _08022B4C ldr r3, _08022B50 b _08022D02 .align 2, 0 _08022B4C: .4byte gUnknown_80DC6CC _08022B50: .4byte 0x00000101 _08022B54: ldr r0, _08022B5C ldr r3, _08022B60 b _08022D02 .align 2, 0 _08022B5C: .4byte gUnknown_80DC728 _08022B60: .4byte 0x00000101 _08022B64: ldr r7, _08022B68 b _08022B78 .align 2, 0 _08022B68: .4byte gUnknown_203B294 _08022B6C: ldr r1, [r4] ldr r0, [r1, 0x40] adds r0, 0x1 str r0, [r1, 0x40] cmp r0, 0x17 bgt _08022C10 _08022B78: movs r5, 0 movs r6, 0 movs r3, 0 ldr r2, [r4] ldr r0, [r2, 0x38] cmp r5, r0 bge _08022BA4 ldrb r1, [r2, 0x8] b _08022B9C _08022B8A: adds r3, 0x1 ldr r2, [r4] ldr r0, [r2, 0x38] cmp r3, r0 bge _08022BA4 adds r0, r2, 0 adds r0, 0x8 adds r0, r3 ldrb r1, [r0] _08022B9C: ldr r0, [r2, 0x40] cmp r1, r0 bne _08022B8A movs r5, 0x1 _08022BA4: movs r3, 0 ldr r2, [r4] ldr r0, [r2, 0x3C] cmp r3, r0 bge _08022BCE adds r0, r2, 0 adds r0, 0x20 b _08022BC4 _08022BB4: adds r3, 0x1 ldr r2, [r4] ldr r0, [r2, 0x3C] cmp r3, r0 bge _08022BCE adds r0, r2, 0 adds r0, 0x20 adds r0, r3 _08022BC4: ldrb r1, [r0] ldr r0, [r2, 0x40] cmp r1, r0 bne _08022BB4 movs r6, 0x1 _08022BCE: cmp r5, r6 beq _08022B6C ldr r1, [r7] movs r0, 0xA str r0, [r1, 0x4] ldr r0, [r1, 0x40] lsls r0, 24 lsrs r0, 24 bl GetIQSkillName adds r1, r0, 0 ldr r0, _08022C18 bl strcpy movs r0, 0xCB bl PlaySound ldr r0, _08022C1C movs r1, 0 movs r2, 0 ldr r3, _08022C20 bl sub_80141B4 ldr r1, [r7] ldr r0, [r1, 0x40] adds r0, 0x1 str r0, [r1, 0x40] ldr r0, _08022C24 ldr r0, [r0] ldr r0, [r0, 0x40] cmp r0, 0x17 bgt _08022C10 b _08022D22 _08022C10: movs r0, 0xB bl sub_8022924 b _08022D22 .align 2, 0 _08022C18: .4byte gUnknown_202DEA8 _08022C1C: .4byte gUnknown_80DC788 _08022C20: .4byte 0x00000101 _08022C24: .4byte gUnknown_203B294 _08022C28: ldr r1, [r4] movs r0, 0x16 str r0, [r1, 0x4] bl nullsub_104 ldr r0, [r4] adds r0, 0x46 ldrh r0, [r0] cmp r0, 0x8 bhi _08022C98 lsls r0, 2 ldr r1, _08022C48 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08022C48: .4byte _08022C4C .align 2, 0 _08022C4C: .4byte _08022C70 .4byte _08022C78 .4byte _08022C80 .4byte _08022C98 .4byte _08022C88 .4byte _08022C98 .4byte _08022C98 .4byte _08022C98 .4byte _08022C90 _08022C70: movs r0, 0x16 bl sub_8022924 b _08022D22 _08022C78: movs r0, 0xD bl sub_8022924 b _08022D22 _08022C80: movs r0, 0xE bl sub_8022924 b _08022D22 _08022C88: movs r0, 0xF bl sub_8022924 b _08022D22 _08022C90: movs r0, 0x10 bl sub_8022924 b _08022D22 _08022C98: movs r0, 0xC bl sub_8022924 b _08022D22 _08022CA0: ldr r0, _08022CA4 b _08022D00 .align 2, 0 _08022CA4: .4byte gUnknown_80DC7B4 _08022CA8: ldr r0, _08022CAC b _08022D00 .align 2, 0 _08022CAC: .4byte gUnknown_80DC7FC _08022CB0: ldr r0, _08022CB4 b _08022D00 .align 2, 0 _08022CB4: .4byte gUnknown_80DC81C _08022CB8: ldr r0, _08022CBC b _08022D00 .align 2, 0 _08022CBC: .4byte gUnknown_80DC844 _08022CC0: ldr r0, _08022CC4 b _08022D00 .align 2, 0 _08022CC4: .4byte gUnknown_80DC864 _08022CC8: ldr r1, [r4] movs r0, 0x16 str r0, [r1, 0x4] ldr r0, _08022CD4 b _08022D00 .align 2, 0 _08022CD4: .4byte gUnknown_80DC88C _08022CD8: ldr r1, [r4] movs r0, 0x16 str r0, [r1, 0x4] ldr r0, _08022CE4 b _08022D00 .align 2, 0 _08022CE4: .4byte gUnknown_80DC8AC _08022CE8: ldr r1, [r4] movs r0, 0x16 str r0, [r1, 0x4] ldr r0, _08022CF4 b _08022D00 .align 2, 0 _08022CF4: .4byte gUnknown_80DC8C8 _08022CF8: ldr r1, [r4] movs r0, 0x16 str r0, [r1, 0x4] ldr r0, _08022D0C _08022D00: ldr r3, _08022D10 _08022D02: movs r1, 0 movs r2, 0 bl sub_80141B4 b _08022D22 .align 2, 0 _08022D0C: .4byte gUnknown_80DC8DC _08022D10: .4byte 0x00000301 _08022D14: ldr r0, [r4] ldr r0, [r0, 0x4C] bl sub_801AFA4 b _08022D22 _08022D1E: bl sub_801A928 _08022D22: add sp, 0x8 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_8022A10 thumb_func_start sub_8022D2C sub_8022D2C: push {r4-r7,lr} movs r6, 0 ldr r4, _08022D78 ldr r0, [r4] movs r1, 0x9C lsls r1, 1 adds r0, r1 movs r1, 0 movs r2, 0x10 bl MemoryFill16 ldr r2, [r4] ldr r0, [r2, 0x48] cmp r0, 0 beq _08022D80 adds r1, r2, 0 adds r1, 0xF8 ldr r0, _08022D7C str r0, [r1] adds r1, 0x4 movs r0, 0x5 str r0, [r1] adds r0, r2, 0 adds r0, 0x52 ldrb r0, [r0] bl IsGummiItem lsls r0, 24 cmp r0, 0 bne _08022D74 ldr r0, [r4] movs r2, 0x9C lsls r2, 1 adds r0, r2 movs r1, 0x1 strh r1, [r0] _08022D74: movs r6, 0x1 b _08022DBE .align 2, 0 _08022D78: .4byte gUnknown_203B294 _08022D7C: .4byte gUnknown_80DC8F0 _08022D80: adds r0, r2, 0 adds r0, 0x52 ldrb r0, [r0] bl GetItemType lsls r0, 24 lsrs r0, 24 cmp r0, 0x5 bne _08022DA4 ldr r1, [r4] adds r2, r1, 0 adds r2, 0xF8 ldr r0, _08022E38 str r0, [r2] adds r1, 0xFC movs r0, 0x6 str r0, [r1] movs r6, 0x1 _08022DA4: ldr r2, [r4] lsls r3, r6, 3 adds r0, r2, 0 adds r0, 0xF8 adds r0, r3 ldr r1, _08022E3C ldr r1, [r1] str r1, [r0] adds r2, 0xFC adds r2, r3 movs r0, 0x4 str r0, [r2] adds r6, 0x1 _08022DBE: ldr r4, _08022E40 ldr r0, [r4] mov r12, r0 lsls r1, r6, 3 mov r2, r12 adds r2, 0xF8 adds r3, r2, r1 ldr r0, _08022E44 ldr r0, [r0] str r0, [r3] mov r3, r12 adds r3, 0xFC adds r1, r3, r1 movs r0, 0x7 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 r5, 0 adds r7, r4, 0 cmp r5, r6 bge _08022E16 mov r4, r12 adds r4, 0xF4 movs r2, 0x9C lsls r2, 1 add r2, r12 _08022DFE: ldrh r0, [r2] cmp r0, 0 bne _08022E0C ldr r1, [r3] ldr r0, [r4] cmp r1, r0 beq _08022E70 _08022E0C: adds r2, 0x2 adds r3, 0x8 adds r5, 0x1 cmp r5, r6 blt _08022DFE _08022E16: movs r5, 0 cmp r5, r6 bge _08022E70 ldr r1, [r7] movs r2, 0x9C lsls r2, 1 adds r0, r1, r2 ldrh r0, [r0] cmp r0, 0 bne _08022E48 adds r0, r1, 0 adds r0, 0xF4 adds r1, 0xFC ldr r1, [r1] str r1, [r0] b _08022E70 .align 2, 0 _08022E38: .4byte gUnknown_80DC8F8 _08022E3C: .4byte gUnknown_80D4940 _08022E40: .4byte gUnknown_203B294 _08022E44: .4byte gUnknown_80D4970 _08022E48: adds r5, 0x1 cmp r5, r6 bge _08022E70 ldr r3, [r7] lsls r0, r5, 1 movs r2, 0x9C lsls r2, 1 adds r1, r3, r2 adds r1, r0 ldrh r0, [r1] cmp r0, 0 bne _08022E48 adds r2, r3, 0 adds r2, 0xF4 lsls r1, r5, 3 adds r0, r3, 0 adds r0, 0xFC adds r0, r1 ldr r0, [r0] str r0, [r2] _08022E70: pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_8022D2C thumb_func_start sub_8022E78 sub_8022E78: push {lr} movs r0, 0x1 bl sub_801A6E8 cmp r0, 0x3 beq _08022E94 cmp r0, 0x3 bhi _08022E8E cmp r0, 0x2 beq _08022EE8 b _08022EEE _08022E8E: cmp r0, 0x4 beq _08022EBC b _08022EEE _08022E94: bl sub_801A8AC ldr r1, _08022EB4 ldr r2, [r1] str r0, [r2, 0x4C] ldr r1, _08022EB8 ldr r1, [r1] lsls r0, 2 adds r1, r0 ldr r0, [r1] str r0, [r2, 0x50] movs r0, 0x2 bl sub_8022924 b _08022EEE .align 2, 0 _08022EB4: .4byte gUnknown_203B294 _08022EB8: .4byte gTeamInventory_203B460 _08022EBC: bl sub_801A8AC ldr r1, _08022EE0 ldr r2, [r1] str r0, [r2, 0x4C] ldr r1, _08022EE4 ldr r1, [r1] lsls r0, 2 adds r1, r0 ldr r0, [r1] str r0, [r2, 0x50] movs r0, 0 bl sub_8099690 movs r0, 0x4 bl sub_8022924 b _08022EEE .align 2, 0 _08022EE0: .4byte gUnknown_203B294 _08022EE4: .4byte gTeamInventory_203B460 _08022EE8: movs r0, 0x16 bl sub_8022924 _08022EEE: pop {r0} bx r0 thumb_func_end sub_8022E78 thumb_func_start sub_8022EF4 sub_8022EF4: push {r4,r5,lr} sub sp, 0x4 movs r0, 0 str r0, [sp] bl sub_801A6E8 ldr r4, _08022F3C ldr r0, [r4] adds r0, 0x54 bl sub_8012FD8 lsls r0, 24 cmp r0, 0 bne _08022F26 ldr r0, [r4] adds r0, 0x54 mov r1, sp bl sub_8013114 ldr r1, [sp] cmp r1, 0x1 beq _08022F26 ldr r0, [r4] adds r0, 0xF4 str r1, [r0] _08022F26: ldr r0, [sp] subs r0, 0x1 cmp r0, 0x6 bls _08022F30 b _08023060 _08022F30: lsls r0, 2 ldr r1, _08022F40 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08022F3C: .4byte gUnknown_203B294 _08022F40: .4byte _08022F44 .align 2, 0 _08022F44: .4byte _08022F60 .4byte _08023060 .4byte _08023060 .4byte _0802304C .4byte _08022F68 .4byte _08023044 .4byte _08023054 _08022F60: movs r0, 0x1 bl sub_8022924 b _08023060 _08022F68: ldr r4, _08022FEC ldr r1, [r4] adds r0, r1, 0 adds r0, 0x8 ldr r1, [r1, 0x48] movs r2, 0x14 ldrsh r1, [r1, r2] bl GetNumAvailableIQSkills ldr r3, [r4] str r0, [r3, 0x38] ldr r0, [r3, 0x48] adds r1, r3, 0 adds r1, 0x52 ldrb r1, [r1] adds r3, 0x44 movs r2, 0 bl GetGummiItemStatBoost ldr r1, [r4] adds r0, r1, 0 adds r0, 0x20 ldr r1, [r1, 0x48] movs r2, 0x14 ldrsh r1, [r1, r2] bl GetNumAvailableIQSkills ldr r1, [r4] str r0, [r1, 0x3C] movs r0, 0x1 str r0, [r1, 0x40] adds r0, r1, 0 adds r0, 0x44 movs r2, 0 ldrsh r5, [r0, r2] ldr r0, _08022FF0 ldr r3, _08022FF4 ldr r2, [r1, 0x4C] lsls r2, 2 ldr r1, [r3] adds r1, r2 movs r2, 0 bl sub_8090E14 movs r0, 0x1 negs r0, r0 cmp r5, r0 beq _08022FD0 ldr r0, [r4] ldr r0, [r0, 0x4C] bl ShiftItemsDownFrom _08022FD0: movs r0, 0 bl sub_8099690 ldr r1, [r4] movs r0, 0xA str r0, [r1, 0x4] adds r0, r5, 0x1 cmp r0, 0x4 bhi _08023030 lsls r0, 2 ldr r1, _08022FF8 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08022FEC: .4byte gUnknown_203B294 _08022FF0: .4byte gUnknown_202DE58 _08022FF4: .4byte gTeamInventory_203B460 _08022FF8: .4byte _08022FFC .align 2, 0 _08022FFC: .4byte _08023030 .4byte _08023010 .4byte _08023018 .4byte _08023020 .4byte _08023028 _08023010: movs r0, 0x6 bl sub_8022924 b _08023060 _08023018: movs r0, 0x7 bl sub_8022924 b _08023060 _08023020: movs r0, 0x8 bl sub_8022924 b _08023060 _08023028: movs r0, 0x9 bl sub_8022924 b _08023060 _08023030: ldr r0, _08023040 ldr r1, [r0] movs r0, 0x16 str r0, [r1, 0x4] movs r0, 0x5 bl sub_8022924 b _08023060 .align 2, 0 _08023040: .4byte gUnknown_203B294 _08023044: movs r0, 0x15 bl sub_8022924 b _08023060 _0802304C: movs r0, 0x3 bl sub_8022924 b _08023060 _08023054: movs r0, 0 bl sub_8099690 movs r0, 0x4 bl sub_8022924 _08023060: add sp, 0x4 pop {r4,r5} pop {r0} bx r0 thumb_func_end sub_8022EF4 thumb_func_start sub_8023068 sub_8023068: push {r4,lr} sub sp, 0x4 movs r0, 0 str r0, [sp] bl sub_801A6E8 ldr r4, _080230A8 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 _08023096 ldr r0, [r4] adds r0, 0xA4 mov r1, sp bl sub_8013114 _08023096: ldr r0, [sp] cmp r0, 0x2 beq _080230B8 cmp r0, 0x2 bgt _080230AC cmp r0, 0x1 beq _080230B0 b _080230E0 .align 2, 0 _080230A8: .4byte gUnknown_203B294 _080230AC: cmp r0, 0x3 bne _080230E0 _080230B0: movs r0, 0x1 bl sub_8022924 b _080230E0 _080230B8: ldr r0, [r4] ldr r0, [r0, 0x4C] bl ShiftItemsDownFrom bl GetNumberOfFilledInventorySlots cmp r0, 0 bne _080230DA movs r0, 0 bl sub_8099690 bl sub_801A928 movs r0, 0x14 bl sub_8022924 b _080230E0 _080230DA: movs r0, 0x1 bl sub_8022924 _080230E0: add sp, 0x4 pop {r4} pop {r0} bx r0 thumb_func_end sub_8023068 thumb_func_start sub_80230E8 sub_80230E8: push {lr} bl sub_801B410 cmp r0, 0x1 bls _08023100 cmp r0, 0x3 bhi _08023100 bl sub_801B450 movs r0, 0x1 bl sub_8022924 _08023100: pop {r0} bx r0 thumb_func_end sub_80230E8 thumb_func_start sub_8023104 sub_8023104: push {lr} bl sub_801B00C cmp r0, 0x1 bls _0802311C cmp r0, 0x3 bhi _0802311C bl sub_801B048 movs r0, 0x1 bl sub_8022924 _0802311C: pop {r0} bx r0 thumb_func_end sub_8023104 thumb_func_start sub_8023120 sub_8023120: push {lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 cmp r0, 0 bne _08023138 ldr r0, _08023140 ldr r0, [r0] ldr r0, [r0, 0x4] bl sub_8022924 _08023138: add sp, 0x4 pop {r0} bx r0 .align 2, 0 _08023140: .4byte gUnknown_203B294 thumb_func_end sub_8023120 thumb_func_start sub_8023144 sub_8023144: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} adds r7, r1, 0 mov r9, r2 mov r10, r3 lsls r0, 24 lsrs r0, 24 adds r4, r0, 0 bl sub_8023704 lsls r0, 24 cmp r0, 0 beq _08023168 movs r0, 0 b _08023252 _08023168: ldr r6, _08023260 ldr r0, [r6] cmp r0, 0 bne _0802317C movs r0, 0xFF lsls r0, 2 movs r1, 0x8 bl MemoryAlloc str r0, [r6] _0802317C: ldr r0, [r6] strb r4, [r0] ldr r0, [r6] ldr r1, _08023264 ldr r1, [r1] str r1, [r0, 0x4] movs r4, 0xE4 lsls r4, 2 adds r1, r0, r4 str r7, [r1] movs r1, 0xE5 lsls r1, 2 mov r8, r1 adds r2, r0, r1 lsls r1, r7, 1 adds r1, r7 lsls r1, 3 movs r5, 0xE6 lsls r5, 2 adds r1, r5 adds r1, r0, r1 str r1, [r2] adds r0, r5 bl sub_8006518 ldr r1, [r6] adds r4, r1, r4 ldr r2, [r4] lsls r0, r2, 1 adds r0, r2 lsls r0, 3 adds r1, r0 adds r1, r5 ldr r0, _08023268 ldm r0!, {r2-r4} stm r1!, {r2-r4} ldm r0!, {r2-r4} stm r1!, {r2-r4} ldr r2, [r6] mov r1, r8 adds r0, r2, r1 ldr r1, [r0] movs r3, 0xFE lsls r3, 2 adds r0, r2, r3 str r0, [r1, 0x14] mov r4, r9 cmp r4, 0 beq _080231F6 movs r1, 0xE4 lsls r1, 2 adds r0, r2, r1 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, [r4] str r0, [r1] _080231F6: ldr r0, [r6] add r0, r8 ldr r0, [r0] mov r1, r10 bl sub_8012D08 bl ResetUnusedInputStruct ldr r0, [r6] adds r0, r5 movs r1, 0x1 movs r2, 0x1 bl sub_800641C ldr r4, [r6] movs r5, 0xD7 lsls r5, 2 adds r4, r5 bl sub_80236A4 adds r1, r0, 0 adds r0, r4, 0 mov r2, r10 adds r3, r7, 0 bl sub_8013818 ldr r0, [r6] ldr r1, _0802326C ldrh r2, [r1] movs r4, 0xDD lsls r4, 2 adds r1, r0, r4 strh r2, [r1] ldr r1, _08023270 ldrh r2, [r1] ldr r3, _08023274 adds r1, r0, r3 strh r2, [r1] adds r0, r5 bl sub_8013984 bl sub_8023420 bl sub_80234BC movs r0, 0x1 _08023252: pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _08023260: .4byte gUnknown_3001B5C _08023264: .4byte gUnknown_203B298 _08023268: .4byte gUnknown_80DC91C _0802326C: .4byte gUnknown_203B29C _08023270: .4byte gUnknown_203B29E _08023274: .4byte 0x0000037a thumb_func_end sub_8023144 thumb_func_start sub_8023278 sub_8023278: push {r4,lr} lsls r0, 24 cmp r0, 0 bne _08023298 ldr r0, _08023294 ldr r0, [r0] movs r1, 0xD7 lsls r1, 2 adds r0, r1 bl sub_8013660 movs r0, 0 b _08023316 .align 2, 0 _08023294: .4byte gUnknown_3001B5C _08023298: ldr r4, _080232B4 ldr r0, [r4] movs r1, 0xD7 lsls r1, 2 adds r0, r1 bl GetKeyPress cmp r0, 0x2 beq _080232BE cmp r0, 0x2 bgt _080232B8 cmp r0, 0x1 beq _080232C8 b _080232EC .align 2, 0 _080232B4: .4byte gUnknown_3001B5C _080232B8: cmp r0, 0x3 beq _080232D2 b _080232EC _080232BE: movs r0, 0x1 bl PlayMenuSoundEffect movs r0, 0x2 b _08023316 _080232C8: movs r0, 0 bl PlayMenuSoundEffect movs r0, 0x3 b _08023316 _080232D2: movs r0, 0x5 bl PlayMenuSoundEffect ldr r0, [r4] ldr r1, [r0, 0x4] movs r2, 0x1 cmp r1, 0x1 bhi _080232E4 adds r2, r1, 0x1 _080232E4: str r2, [r0, 0x4] bl sub_80236A4 b _0802330C _080232EC: ldr r0, _08023308 ldr r0, [r0] movs r1, 0xD7 lsls r1, 2 adds r0, r1 movs r1, 0x1 bl sub_80138B8 lsls r0, 24 cmp r0, 0 bne _0802330C movs r0, 0 b _08023316 .align 2, 0 _08023308: .4byte gUnknown_3001B5C _0802330C: bl sub_8023420 bl sub_80234BC movs r0, 0x1 _08023316: pop {r4} pop {r1} bx r1 thumb_func_end sub_8023278 thumb_func_start sub_802331C sub_802331C: ldr r0, _0802334C ldr r0, [r0] ldr r2, _08023350 adds r1, r0, r2 movs r3, 0 ldrsh r2, [r1, r3] movs r3, 0xDE lsls r3, 2 adds r1, r0, r3 movs r3, 0 ldrsh r1, [r1, r3] muls r1, r2 movs r3, 0xDD lsls r3, 2 adds r2, r0, r3 movs r3, 0 ldrsh r2, [r2, r3] adds r1, r2 lsls r1, 1 adds r0, 0xC adds r0, r1 movs r1, 0 ldrsh r0, [r0, r1] bx lr .align 2, 0 _0802334C: .4byte gUnknown_3001B5C _08023350: .4byte 0x0000037a thumb_func_end sub_802331C thumb_func_start sub_8023354 sub_8023354: push {r4,r5,lr} adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 bl ResetUnusedInputStruct ldr r5, _0802339C ldr r0, [r5] movs r1, 0xE6 lsls r1, 2 adds r0, r1 movs r1, 0 movs r2, 0 bl sub_800641C ldr r0, [r5] movs r1, 0xD7 lsls r1, 2 adds r0, r1 bl sub_8013984 bl sub_8023420 bl sub_80234BC cmp r4, 0 beq _08023396 ldr r0, [r5] movs r1, 0xD7 lsls r1, 2 adds r0, r1 bl AddMenuCursorSprite _08023396: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0802339C: .4byte gUnknown_3001B5C thumb_func_end sub_8023354 thumb_func_start sub_80233A0 sub_80233A0: push {r4-r6,lr} ldr r5, _08023408 ldr r2, [r5] cmp r2, 0 beq _08023400 ldr r1, _0802340C ldr r0, [r2, 0x4] str r0, [r1] ldr r1, _08023410 movs r3, 0xDD lsls r3, 2 adds r0, r2, r3 ldrh r0, [r0] strh r0, [r1] ldr r1, _08023414 ldr r6, _08023418 adds r0, r2, r6 ldrh r0, [r0] strh r0, [r1] movs r1, 0xE4 lsls r1, 2 adds r0, r2, r1 ldr r0, [r0] lsls r1, r0, 1 adds r1, r0 lsls r1, 3 adds r1, r2, r1 movs r4, 0xE6 lsls r4, 2 adds r1, r4 ldr r0, _0802341C ldm r0!, {r2,r3,r6} stm r1!, {r2,r3,r6} ldm r0!, {r2,r3,r6} stm r1!, {r2,r3,r6} bl ResetUnusedInputStruct ldr r0, [r5] adds r0, r4 movs r1, 0x1 movs r2, 0x1 bl sub_800641C ldr r0, [r5] bl MemoryFree movs r0, 0 str r0, [r5] _08023400: pop {r4-r6} pop {r0} bx r0 .align 2, 0 _08023408: .4byte gUnknown_3001B5C _0802340C: .4byte gUnknown_203B298 _08023410: .4byte gUnknown_203B29C _08023414: .4byte gUnknown_203B29E _08023418: .4byte 0x0000037a _0802341C: .4byte gUnknown_80DC904 thumb_func_end sub_80233A0 thumb_func_start sub_8023420 sub_8023420: push {r4,r5,lr} ldr r4, _080234A8 ldr r0, [r4] movs r1, 0xFE lsls r1, 2 adds r0, r1 movs r2, 0 movs r1, 0x1 strb r1, [r0] ldr r0, [r4] ldr r1, _080234AC adds r0, r1 strb r2, [r0] ldr r0, [r4] adds r1, 0x1 adds r0, r1 movs r1, 0xC strb r1, [r0] ldr r0, [r4] ldr r1, _080234B0 adds r0, r1 strb r2, [r0] ldr r0, [r4] ldr r2, _080234B4 adds r0, r2 movs r1, 0 ldrsh r0, [r0, r1] movs r1, 0xC bl sub_80095E4 adds r0, 0x2 ldr r3, [r4] movs r2, 0xE4 lsls r2, 2 adds r5, r3, r2 ldr r2, [r5] lsls r1, r2, 1 adds r1, r2 lsls r1, 3 adds r1, r3, r1 ldr r2, _080234B8 adds r1, r2 lsls r0, 16 lsrs r0, 16 strh r0, [r1] ldr r2, [r5] lsls r1, r2, 1 adds r1, r2 lsls r1, 3 adds r3, r1 movs r1, 0xEA lsls r1, 2 adds r3, r1 strh r0, [r3] bl ResetUnusedInputStruct ldr r0, [r4] movs r2, 0xE6 lsls r2, 2 adds r0, r2 movs r1, 0x1 movs r2, 0x1 bl sub_800641C pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080234A8: .4byte gUnknown_3001B5C _080234AC: .4byte 0x000003f9 _080234B0: .4byte 0x000003fb _080234B4: .4byte 0x00000376 _080234B8: .4byte 0x000003a6 thumb_func_end sub_8023420 thumb_func_start sub_80234BC sub_80234BC: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x178 ldr r5, _0802368C ldr r0, [r5] movs r4, 0xE4 lsls r4, 2 adds r0, r4 ldr r0, [r0] bl sub_8008C54 ldr r0, [r5] adds r0, r4 ldr r0, [r0] bl sub_80073B8 ldr r2, _08023690 ldr r0, [r5] adds r0, r4 ldr r3, [r0] movs r0, 0 str r0, [sp] movs r0, 0xA movs r1, 0 bl xxx_call_draw_string ldr r3, [r5] ldr r1, _08023694 adds r0, r3, r1 ldrb r0, [r0] lsls r0, 3 adds r0, 0x4 ldr r2, _08023698 adds r1, r3, r2 movs r6, 0 ldrsh r2, [r1, r6] adds r2, 0x1 movs r1, 0x7 str r1, [sp] adds r3, r4 ldr r1, [r3] str r1, [sp, 0x4] movs r1, 0 movs r3, 0x2 bl sub_8012BC4 movs r0, 0 mov r10, r0 ldr r0, [r5] ldr r1, _0802369C adds r0, r1 movs r2, 0 ldrsh r0, [r0, r2] cmp r10, r0 blt _08023532 b _0802366C _08023532: ldr r3, _0802368C ldr r0, [r3] movs r6, 0xD7 lsls r6, 2 adds r0, r6 mov r1, r10 bl sub_8013800 mov r8, r0 ldr r0, _0802368C ldr r1, [r0] ldr r2, _08023698 adds r0, r1, r2 movs r3, 0 ldrsh r2, [r0, r3] adds r6, 0x1C adds r0, r1, r6 movs r3, 0 ldrsh r0, [r0, r3] muls r0, r2 add r0, r10 lsls r0, 1 adds r1, 0xC adds r1, r0 movs r6, 0 ldrsh r5, [r1, r6] adds r0, r5, 0 bl GetFriendArea lsls r0, 24 lsrs r0, 24 add r4, sp, 0x16C adds r1, r4, 0 movs r2, 0 movs r3, 0 bl sub_8092638 movs r7, 0x7 ldrb r0, [r4, 0x4] cmp r0, 0 beq _08023594 adds r0, r5, 0 bl HasRecruitedMon lsls r0, 24 movs r7, 0x4 cmp r0, 0 beq _08023594 movs r7, 0x5 _08023594: adds r0, r5, 0 movs r1, 0 bl GetDexInternalNo lsls r0, 16 asrs r4, r0, 16 adds r0, r4, 0 movs r1, 0xA bl __modsi3 adds r2, r0, 0 adds r2, 0x30 lsls r2, 24 lsrs r2, 24 ldr r6, _0802368C ldr r0, [r6] movs r1, 0xE4 lsls r1, 2 mov r9, r1 add r0, r9 ldr r0, [r0] str r0, [sp] movs r0, 0x14 mov r1, r8 adds r3, r7, 0 bl sub_8012C60 cmp r4, 0x9 ble _08023628 adds r0, r4, 0 movs r1, 0xA bl __divsi3 adds r4, r0, 0 movs r1, 0xA bl __modsi3 adds r2, r0, 0 adds r2, 0x30 lsls r2, 24 lsrs r2, 24 ldr r0, [r6] movs r3, 0xE4 lsls r3, 2 adds r0, r3 ldr r0, [r0] str r0, [sp] movs r0, 0xD mov r1, r8 adds r3, r7, 0 bl sub_8012C60 cmp r4, 0x9 ble _08023628 adds r0, r4, 0 movs r1, 0xA bl __divsi3 movs r1, 0xA bl __modsi3 adds r2, r0, 0 adds r2, 0x30 lsls r2, 24 lsrs r2, 24 ldr r0, [r6] add r0, r9 ldr r0, [r0] str r0, [sp] movs r0, 0x6 mov r1, r8 adds r3, r7, 0 bl sub_8012C60 _08023628: add r4, sp, 0x108 adds r0, r4, 0 adds r1, r5, 0 bl sub_808D930 add r0, sp, 0x8 ldr r1, _080236A0 adds r2, r7, 0 adds r3, r4, 0 bl sprintf_2 ldr r6, _0802368C ldr r0, [r6] movs r1, 0xE4 lsls r1, 2 adds r0, r1 ldr r3, [r0] movs r0, 0 str r0, [sp] movs r0, 0x24 mov r1, r8 add r2, sp, 0x8 bl xxx_call_draw_string movs r2, 0x1 add r10, r2 ldr r0, [r6] ldr r3, _0802369C adds r0, r3 movs r6, 0 ldrsh r0, [r0, r6] cmp r10, r0 bge _0802366C b _08023532 _0802366C: ldr r0, _0802368C ldr r0, [r0] movs r1, 0xE4 lsls r1, 2 adds r0, r1 ldr r0, [r0] bl sub_80073E0 add sp, 0x178 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0802368C: .4byte gUnknown_3001B5C _08023690: .4byte gUnknown_80DC934 _08023694: .4byte 0x000003fa _08023698: .4byte 0x0000037a _0802369C: .4byte 0x00000376 _080236A0: .4byte gUnknown_80DC93C thumb_func_end sub_80234BC thumb_func_start sub_80236A4 sub_80236A4: push {r4,r5,lr} ldr r0, _080236FC ldr r1, [r0] movs r0, 0 str r0, [r1, 0x8] movs r5, 0 _080236B0: lsls r0, r5, 16 asrs r4, r0, 16 adds r0, r4, 0 bl sub_8098134 lsls r0, 24 cmp r0, 0 beq _080236E2 adds r0, r4, 0 bl GetBaseSpeciesNoUnown lsls r0, 16 asrs r0, 16 cmp r4, r0 bne _080236E2 ldr r0, _080236FC ldr r3, [r0] ldr r1, [r3, 0x8] lsls r2, r1, 1 adds r0, r3, 0 adds r0, 0xC adds r0, r2 strh r5, [r0] adds r1, 0x1 str r1, [r3, 0x8] _080236E2: adds r5, 0x1 ldr r0, _08023700 cmp r5, r0 ble _080236B0 bl sub_8023730 ldr r0, _080236FC ldr r0, [r0] ldr r0, [r0, 0x8] pop {r4,r5} pop {r1} bx r1 .align 2, 0 _080236FC: .4byte gUnknown_3001B5C _08023700: .4byte 0x000001a7 thumb_func_end sub_80236A4 thumb_func_start sub_8023704 sub_8023704: push {r4,lr} movs r4, 0 _08023708: lsls r0, r4, 16 asrs r0, 16 bl sub_8098134 lsls r0, 24 cmp r0, 0 beq _0802371A movs r0, 0 b _08023724 _0802371A: adds r4, 0x1 ldr r0, _0802372C cmp r4, r0 ble _08023708 movs r0, 0x1 _08023724: pop {r4} pop {r1} bx r1 .align 2, 0 _0802372C: .4byte 0x000001a7 thumb_func_end sub_8023704 thumb_func_start sub_8023730 sub_8023730: push {lr} ldr r0, _08023744 ldr r0, [r0] ldr r0, [r0, 0x4] cmp r0, 0x1 beq _08023748 cmp r0, 0x2 beq _0802374E b _08023752 .align 2, 0 _08023744: .4byte gUnknown_3001B5C _08023748: bl sub_8023758 b _08023752 _0802374E: bl sub_80237E0 _08023752: pop {r0} bx r0 thumb_func_end sub_8023730 thumb_func_start sub_8023758 sub_8023758: push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} sub sp, 0x4 ldr r3, _080237DC ldr r2, [r3] ldr r1, [r2, 0x8] lsls r0, r1, 1 adds r0, 0xA adds r2, r0 mov r9, r2 movs r2, 0 subs r1, 0x1 cmp r2, r1 bge _080237CC _08023778: mov r5, r9 ldr r0, [r3] ldr r0, [r0, 0x8] subs r7, r0, 0x1 adds r0, r2, 0x1 mov r8, r0 cmp r7, r2 ble _080237BE _08023788: subs r6, r5, 0x2 movs r1, 0 ldrsh r0, [r6, r1] movs r1, 0x1 str r2, [sp] bl GetAlphabetParentNo adds r4, r0, 0 movs r1, 0 ldrsh r0, [r5, r1] movs r1, 0x1 bl GetAlphabetParentNo lsls r4, 16 lsls r0, 16 ldr r2, [sp] cmp r4, r0 ble _080237B6 movs r0, 0 ldrsh r1, [r5, r0] ldrh r0, [r6] strh r0, [r5] strh r1, [r6] _080237B6: adds r5, r6, 0 subs r7, 0x1 cmp r7, r2 bgt _08023788 _080237BE: mov r2, r8 ldr r3, _080237DC ldr r0, [r3] ldr r0, [r0, 0x8] subs r0, 0x1 cmp r2, r0 blt _08023778 _080237CC: add sp, 0x4 pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080237DC: .4byte gUnknown_3001B5C thumb_func_end sub_8023758 thumb_func_start sub_80237E0 sub_80237E0: push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} sub sp, 0x4 ldr r3, _08023864 ldr r2, [r3] ldr r1, [r2, 0x8] lsls r0, r1, 1 adds r0, 0xA adds r2, r0 mov r9, r2 movs r2, 0 subs r1, 0x1 cmp r2, r1 bge _08023854 _08023800: mov r5, r9 ldr r0, [r3] ldr r0, [r0, 0x8] subs r7, r0, 0x1 adds r0, r2, 0x1 mov r8, r0 cmp r7, r2 ble _08023846 _08023810: subs r6, r5, 0x2 movs r1, 0 ldrsh r0, [r6, r1] movs r1, 0 str r2, [sp] bl GetAlphabetParentNo adds r4, r0, 0 movs r1, 0 ldrsh r0, [r5, r1] movs r1, 0 bl GetAlphabetParentNo lsls r4, 16 lsls r0, 16 ldr r2, [sp] cmp r4, r0 ble _0802383E movs r0, 0 ldrsh r1, [r5, r0] ldrh r0, [r6] strh r0, [r5] strh r1, [r6] _0802383E: adds r5, r6, 0 subs r7, 0x1 cmp r7, r2 bgt _08023810 _08023846: mov r2, r8 ldr r3, _08023864 ldr r0, [r3] ldr r0, [r0, 0x8] subs r0, 0x1 cmp r2, r0 blt _08023800 _08023854: add sp, 0x4 pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08023864: .4byte gUnknown_3001B5C thumb_func_end sub_80237E0 thumb_func_start sub_8023868 sub_8023868: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} adds r5, r0, 0 mov r8, r1 mov r9, r2 mov r10, r3 bl sub_8024108 lsls r0, 24 cmp r0, 0 beq _08023888 movs r0, 0 b _08023A6E _08023888: ldr r4, _080238AC ldr r0, [r4] cmp r0, 0 bne _0802389C movs r0, 0xFE lsls r0, 2 movs r1, 0x8 bl MemoryAlloc str r0, [r4] _0802389C: ldr r1, [r4] str r5, [r1] ldr r0, _080238B0 ldr r0, [r0] cmp r0, r5 beq _080238B4 movs r0, 0x1 b _080238B8 .align 2, 0 _080238AC: .4byte gUnknown_3001B60 _080238B0: .4byte gUnknown_203B2A0 _080238B4: ldr r0, _080238E4 ldr r0, [r0] _080238B8: str r0, [r1, 0x4] ldr r2, _080238E8 ldr r0, [r2] movs r1, 0 strb r1, [r0, 0x14] ldr r0, [r2] strb r1, [r0, 0x15] ldr r0, [r2] strb r1, [r0, 0x16] ldr r0, [r2] strb r1, [r0, 0x17] ldr r0, [r2] strb r1, [r0, 0x18] ldr r0, [r2] ldr r0, [r0] cmp r0, 0x4 bhi _08023980 lsls r0, 2 ldr r1, _080238EC adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _080238E4: .4byte gUnknown_203B2A4 _080238E8: .4byte gUnknown_3001B60 _080238EC: .4byte _080238F0 .align 2, 0 _080238F0: .4byte _08023958 .4byte _08023904 .4byte _08023914 .4byte _08023924 .4byte _0802393C _08023904: ldr r0, _08023910 ldr r1, [r0] movs r0, 0x1 strb r0, [r1, 0x18] b _08023958 .align 2, 0 _08023910: .4byte gUnknown_3001B60 _08023914: ldr r0, _08023920 ldr r1, [r0] movs r0, 0x1 strb r0, [r1, 0x14] b _08023958 .align 2, 0 _08023920: .4byte gUnknown_3001B60 _08023924: ldr r2, _08023938 ldr r0, [r2] movs r1, 0x1 strb r1, [r0, 0x17] ldr r0, [r2] strb r1, [r0, 0x15] ldr r0, [r2] strb r1, [r0, 0x16] b _08023958 .align 2, 0 _08023938: .4byte gUnknown_3001B60 _0802393C: ldr r5, _0802397C ldr r0, [r5] movs r4, 0x1 strb r4, [r0, 0x18] ldr r0, [r5] strb r4, [r0, 0x15] movs r0, 0x9 bl sub_80023E4 lsls r0, 24 cmp r0, 0 bne _08023958 ldr r0, [r5] strb r4, [r0, 0x16] _08023958: ldr r4, _0802397C ldr r0, [r4] ldr r0, [r0] cmp r0, 0x4 bne _08023980 bl sub_80A5728 lsls r0, 16 asrs r0, 16 bl sub_8002658 ldr r1, [r4] movs r2, 0xD5 lsls r2, 2 adds r1, r2 strb r0, [r1] b _0802398E .align 2, 0 _0802397C: .4byte gUnknown_3001B60 _08023980: ldr r0, _08023A7C ldr r0, [r0] movs r3, 0xD5 lsls r3, 2 adds r0, r3 movs r1, 0 strb r1, [r0] _0802398E: ldr r5, _08023A7C ldr r0, [r5] movs r4, 0xE3 lsls r4, 2 adds r1, r0, r4 mov r2, r8 str r2, [r1] movs r7, 0xE4 lsls r7, 2 adds r2, r0, r7 mov r3, r8 lsls r1, r3, 1 add r1, r8 lsls r1, 3 movs r6, 0xE5 lsls r6, 2 adds r1, r6 adds r1, r0, r1 str r1, [r2] adds r0, r6 bl sub_8006518 ldr r1, [r5] adds r4, r1, r4 ldr r2, [r4] lsls r0, r2, 1 adds r0, r2 lsls r0, 3 adds r1, r0 adds r1, r6 ldr r0, _08023A80 ldm r0!, {r2-r4} stm r1!, {r2-r4} ldm r0!, {r2-r4} stm r1!, {r2-r4} ldr r2, [r5] adds r0, r2, r7 ldr r1, [r0] movs r4, 0xFD lsls r4, 2 adds r0, r2, r4 str r0, [r1, 0x14] mov r0, r9 cmp r0, 0 beq _08023A04 movs r1, 0xE3 lsls r1, 2 adds r0, r2, r1 ldr r1, [r0] lsls r0, r1, 1 adds r0, r1 lsls r0, 3 movs r3, 0xE7 lsls r3, 2 adds r1, r2, r3 adds r1, r0 mov r4, r9 ldr r0, [r4] str r0, [r1] _08023A04: ldr r0, [r5] adds r0, r7 ldr r0, [r0] mov r1, r10 bl sub_8012D08 bl ResetUnusedInputStruct ldr r0, [r5] adds r0, r6 movs r1, 0x1 movs r2, 0x1 bl sub_800641C ldr r4, [r5] movs r0, 0xD6 lsls r0, 2 adds r4, r0 bl sub_8023F8C adds r1, r0, 0 adds r0, r4, 0 mov r2, r10 mov r3, r8 bl sub_8013818 ldr r0, _08023A84 ldr r4, [r5] ldr r1, [r0] ldr r0, [r4] cmp r1, r0 bne _08023A64 ldr r0, _08023A88 ldrh r1, [r0] movs r2, 0xDC lsls r2, 2 adds r0, r4, r2 strh r1, [r0] ldr r0, _08023A8C ldrh r1, [r0] ldr r3, _08023A90 adds r0, r4, r3 strh r1, [r0] movs r1, 0xD6 lsls r1, 2 adds r0, r4, r1 bl sub_8013984 _08023A64: bl sub_8023CF4 bl sub_8023DA4 movs r0, 0x1 _08023A6E: pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _08023A7C: .4byte gUnknown_3001B60 _08023A80: .4byte gUnknown_80DC968 _08023A84: .4byte gUnknown_203B2A0 _08023A88: .4byte gUnknown_203B2A8 _08023A8C: .4byte gUnknown_203B2AA _08023A90: .4byte 0x00000376 thumb_func_end sub_8023868 thumb_func_start sub_8023A94 sub_8023A94: push {r4,lr} lsls r0, 24 cmp r0, 0 bne _08023AB4 ldr r0, _08023AB0 ldr r0, [r0] movs r1, 0xD6 lsls r1, 2 adds r0, r1 bl sub_8013660 movs r0, 0 b _08023B3E .align 2, 0 _08023AB0: .4byte gUnknown_3001B60 _08023AB4: ldr r4, _08023AD0 ldr r0, [r4] movs r1, 0xD6 lsls r1, 2 adds r0, r1 bl GetKeyPress cmp r0, 0x2 beq _08023ADE cmp r0, 0x2 bgt _08023AD4 cmp r0, 0x1 beq _08023AF2 b _08023B16 .align 2, 0 _08023AD0: .4byte gUnknown_3001B60 _08023AD4: cmp r0, 0x3 beq _08023AFC cmp r0, 0x4 beq _08023AE8 b _08023B16 _08023ADE: movs r0, 0x1 bl PlayMenuSoundEffect movs r0, 0x2 b _08023B3E _08023AE8: movs r0, 0x4 bl PlayMenuSoundEffect movs r0, 0x4 b _08023B3E _08023AF2: movs r0, 0 bl PlayMenuSoundEffect movs r0, 0x3 b _08023B3E _08023AFC: movs r0, 0x5 bl PlayMenuSoundEffect ldr r0, [r4] ldr r1, [r0, 0x4] movs r2, 0x1 cmp r1, 0x2 bhi _08023B0E adds r2, r1, 0x1 _08023B0E: str r2, [r0, 0x4] bl sub_8023F8C b _08023B34 _08023B16: ldr r0, _08023B30 ldr r0, [r0] movs r1, 0xD6 lsls r1, 2 adds r0, r1 movs r1, 0x1 bl sub_80138B8 lsls r0, 24 cmp r0, 0 bne _08023B34 movs r0, 0 b _08023B3E .align 2, 0 _08023B30: .4byte gUnknown_3001B60 _08023B34: bl sub_8023CF4 bl sub_8023DA4 movs r0, 0x1 _08023B3E: pop {r4} pop {r1} bx r1 thumb_func_end sub_8023A94 thumb_func_start sub_8023B44 sub_8023B44: ldr r0, _08023B74 ldr r0, [r0] ldr r2, _08023B78 adds r1, r0, r2 movs r3, 0 ldrsh r2, [r1, r3] movs r3, 0xDD lsls r3, 2 adds r1, r0, r3 movs r3, 0 ldrsh r1, [r1, r3] muls r1, r2 movs r3, 0xDC lsls r3, 2 adds r2, r0, r3 movs r3, 0 ldrsh r2, [r2, r3] adds r1, r2 lsls r1, 1 adds r0, 0x1A adds r0, r1 movs r1, 0 ldrsh r0, [r0, r1] bx lr .align 2, 0 _08023B74: .4byte gUnknown_3001B60 _08023B78: .4byte 0x00000376 thumb_func_end sub_8023B44 thumb_func_start sub_8023B7C sub_8023B7C: push {r4,r5,lr} adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 bl ResetUnusedInputStruct ldr r5, _08023BD0 ldr r0, [r5] movs r1, 0xE5 lsls r1, 2 adds r0, r1 movs r1, 0 movs r2, 0 bl sub_800641C bl sub_8023BD8 adds r2, r0, 0 ldr r0, [r5] ldr r3, _08023BD4 adds r1, r0, r3 strh r2, [r1] movs r1, 0xD6 lsls r1, 2 adds r0, r1 bl sub_8013984 bl sub_8023CF4 bl sub_8023DA4 cmp r4, 0 beq _08023BCA ldr r0, [r5] movs r3, 0xD6 lsls r3, 2 adds r0, r3 bl AddMenuCursorSprite _08023BCA: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _08023BD0: .4byte gUnknown_3001B60 _08023BD4: .4byte 0x0000037a thumb_func_end sub_8023B7C thumb_func_start sub_8023BD8 sub_8023BD8: push {r4-r7,lr} mov r7, r8 push {r7} movs r3, 0 ldr r1, _08023C58 ldr r0, [r1] ldr r0, [r0, 0x8] adds r7, r1, 0 cmp r3, r0 bge _08023C4A ldr r0, _08023C5C mov r8, r0 mov r12, r7 _08023BF2: ldr r2, [r1] lsls r4, r3, 1 adds r0, r2, 0 adds r0, 0x1A adds r0, r4 movs r5, 0 ldrsh r1, [r0, r5] movs r0, 0x58 muls r0, r1 mov r5, r8 ldr r1, [r5] adds r0, r1 ldrb r1, [r0] movs r0, 0x1 ands r0, r1 adds r6, r3, 0x1 cmp r0, 0 bne _08023C3E ldr r0, [r2, 0x8] subs r0, 0x1 str r0, [r2, 0x8] cmp r3, r0 bge _08023C3E mov r5, r12 adds r4, 0x2 _08023C24: ldr r2, [r5] lsls r1, r3, 1 adds r0, r2, 0 adds r0, 0x1A adds r1, r0, r1 adds r0, r4 ldrh r0, [r0] strh r0, [r1] adds r4, 0x2 adds r3, 0x1 ldr r0, [r2, 0x8] cmp r3, r0 blt _08023C24 _08023C3E: adds r3, r6, 0 adds r1, r7, 0 ldr r0, [r7] ldr r0, [r0, 0x8] cmp r3, r0 blt _08023BF2 _08023C4A: ldr r0, [r7] ldr r0, [r0, 0x8] pop {r3} mov r8, r3 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _08023C58: .4byte gUnknown_3001B60 _08023C5C: .4byte gRecruitedPokemonRef thumb_func_end sub_8023BD8 thumb_func_start sub_8023C60 sub_8023C60: push {r4-r6,lr} ldr r5, _08023CCC ldr r2, [r5] cmp r2, 0 beq _08023CC6 ldr r1, _08023CD0 ldr r0, [r2] str r0, [r1] ldr r1, _08023CD4 ldr r0, [r2, 0x4] str r0, [r1] ldr r1, _08023CD8 movs r3, 0xDC lsls r3, 2 adds r0, r2, r3 ldrh r0, [r0] strh r0, [r1] ldr r1, _08023CDC ldr r6, _08023CE0 adds r0, r2, r6 ldrh r0, [r0] strh r0, [r1] movs r1, 0xE3 lsls r1, 2 adds r0, r2, r1 ldr r0, [r0] lsls r1, r0, 1 adds r1, r0 lsls r1, 3 adds r1, r2, r1 movs r4, 0xE5 lsls r4, 2 adds r1, r4 ldr r0, _08023CE4 ldm r0!, {r2,r3,r6} stm r1!, {r2,r3,r6} ldm r0!, {r2,r3,r6} stm r1!, {r2,r3,r6} bl ResetUnusedInputStruct ldr r0, [r5] adds r0, r4 movs r1, 0x1 movs r2, 0x1 bl sub_800641C ldr r0, [r5] bl MemoryFree movs r0, 0 str r0, [r5] _08023CC6: pop {r4-r6} pop {r0} bx r0 .align 2, 0 _08023CCC: .4byte gUnknown_3001B60 _08023CD0: .4byte gUnknown_203B2A0 _08023CD4: .4byte gUnknown_203B2A4 _08023CD8: .4byte gUnknown_203B2A8 _08023CDC: .4byte gUnknown_203B2AA _08023CE0: .4byte 0x00000376 _08023CE4: .4byte gUnknown_80DC950 thumb_func_end sub_8023C60 thumb_func_start sub_8023CE8 sub_8023CE8: ldr r0, _08023CF0 ldr r0, [r0] bx lr .align 2, 0 _08023CF0: .4byte gUnknown_3001B60 thumb_func_end sub_8023CE8 thumb_func_start sub_8023CF4 sub_8023CF4: push {r4,r5,lr} ldr r2, _08023D28 ldr r0, [r2] movs r1, 0xFD lsls r1, 2 adds r0, r1 movs r3, 0 movs r1, 0x1 strb r1, [r0] ldr r0, [r2] ldr r1, _08023D2C adds r0, r1 strb r3, [r0] ldr r0, [r2] adds r1, 0x2 adds r0, r1 strb r3, [r0] ldr r1, [r2] ldr r0, [r1] adds r5, r2, 0 cmp r0, 0x2 bne _08023D34 ldr r0, _08023D30 adds r1, r0 b _08023D38 .align 2, 0 _08023D28: .4byte gUnknown_3001B60 _08023D2C: .4byte 0x000003f5 _08023D30: .4byte 0x000003f6 _08023D34: ldr r2, _08023D98 adds r1, r2 _08023D38: movs r0, 0xC strb r0, [r1] ldr r0, [r5] ldr r1, _08023D9C adds r0, r1 movs r2, 0 ldrsh r0, [r0, r2] movs r1, 0xC bl sub_80095E4 adds r0, 0x2 ldr r3, [r5] movs r1, 0xE3 lsls r1, 2 adds r4, r3, r1 ldr r2, [r4] lsls r1, r2, 1 adds r1, r2 lsls r1, 3 adds r1, r3, r1 ldr r2, _08023DA0 adds r1, r2 lsls r0, 16 lsrs r0, 16 strh r0, [r1] ldr r2, [r4] lsls r1, r2, 1 adds r1, r2 lsls r1, 3 adds r3, r1 movs r1, 0xE9 lsls r1, 2 adds r3, r1 strh r0, [r3] bl ResetUnusedInputStruct ldr r0, [r5] movs r2, 0xE5 lsls r2, 2 adds r0, r2 movs r1, 0x1 movs r2, 0x1 bl sub_800641C pop {r4,r5} pop {r0} bx r0 .align 2, 0 _08023D98: .4byte 0x000003f6 _08023D9C: .4byte 0x00000372 _08023DA0: .4byte 0x000003a2 thumb_func_end sub_8023CF4 thumb_func_start sub_8023DA4 sub_8023DA4: push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} sub sp, 0x58 ldr r4, _08023DD8 ldr r0, [r4] movs r5, 0xE3 lsls r5, 2 adds r0, r5 ldr r0, [r0] bl sub_8008C54 ldr r0, [r4] adds r0, r5 ldr r0, [r0] bl sub_80073B8 ldr r0, [r4] ldr r1, [r0] cmp r1, 0x2 beq _08023DE0 cmp r1, 0x4 beq _08023E00 ldr r2, _08023DDC b _08023E02 .align 2, 0 _08023DD8: .4byte gUnknown_3001B60 _08023DDC: .4byte gUnknown_80DC988 _08023DE0: add r0, sp, 0x8 bl sub_80920D8 ldr r0, [r4] movs r1, 0xE3 lsls r1, 2 adds r0, r1 ldr r3, [r0] movs r0, 0 str r0, [sp] movs r0, 0xA movs r1, 0 add r2, sp, 0x8 bl xxx_call_draw_string b _08023E3C _08023E00: ldr r2, _08023EBC _08023E02: adds r0, r5 ldr r3, [r0] movs r0, 0 str r0, [sp] movs r0, 0xA movs r1, 0 bl xxx_call_draw_string ldr r1, [r4] ldr r2, _08023EC0 adds r0, r1, r2 ldrb r0, [r0] lsls r0, 3 adds r3, r0, 0x4 ldr r4, _08023EC4 adds r0, r1, r4 movs r4, 0 ldrsh r2, [r0, r4] adds r2, 0x1 movs r0, 0x7 str r0, [sp] adds r1, r5 ldr r0, [r1] str r0, [sp, 0x4] adds r0, r3, 0 movs r1, 0 movs r3, 0x2 bl sub_8012BC4 _08023E3C: movs r7, 0 ldr r1, _08023EC8 ldr r0, [r1] ldr r2, _08023ECC adds r0, r2 movs r4, 0 ldrsh r0, [r0, r4] cmp r7, r0 blt _08023E50 b _08023F62 _08023E50: mov r8, r1 add r0, sp, 0x30 mov r9, r0 _08023E56: ldr r3, [r1] ldr r1, _08023EC4 adds r0, r3, r1 movs r2, 0 ldrsh r1, [r0, r2] movs r4, 0xDD lsls r4, 2 adds r0, r3, r4 movs r2, 0 ldrsh r0, [r0, r2] muls r1, r0 adds r1, r7 lsls r1, 1 adds r0, r3, 0 adds r0, 0x1A adds r0, r1 movs r4, 0 ldrsh r5, [r0, r4] ldr r2, _08023ED0 movs r0, 0x58 adds r1, r5, 0 muls r1, r0 ldr r0, [r2] adds r4, r0, r1 movs r6, 0x7 ldrh r0, [r4] lsrs r0, 1 movs r1, 0x1 ands r0, r1 cmp r0, 0 beq _08023ED4 movs r0, 0 ldrb r1, [r4, 0x4] cmp r1, 0x41 bne _08023E9E movs r0, 0x1 _08023E9E: cmp r0, 0 beq _08023EA4 movs r6, 0x6 _08023EA4: movs r0, 0 cmp r1, 0x40 bne _08023EAC movs r0, 0x1 _08023EAC: cmp r0, 0 beq _08023EB2 movs r6, 0x6 _08023EB2: ldrb r0, [r4, 0x2] cmp r0, 0 beq _08023EEA movs r6, 0x5 b _08023EEA .align 2, 0 _08023EBC: .4byte gUnknown_80DC980 _08023EC0: .4byte 0x000003f6 _08023EC4: .4byte 0x00000376 _08023EC8: .4byte gUnknown_3001B60 _08023ECC: .4byte 0x00000372 _08023ED0: .4byte gRecruitedPokemonRef _08023ED4: ldrb r0, [r3, 0x18] cmp r0, 0 beq _08023EEA adds r0, r5, 0 bl sub_808D750 lsls r0, 24 movs r6, 0x2 cmp r0, 0 beq _08023EEA movs r6, 0x4 _08023EEA: mov r0, r8 ldr r1, [r0] ldr r0, [r1] cmp r0, 0x4 bne _08023F02 movs r2, 0xD5 lsls r2, 2 adds r0, r1, r2 ldrb r1, [r0] adds r0, r4, 0 bl sub_8024184 _08023F02: adds r1, r4, 0 adds r1, 0x4C mov r0, r9 movs r2, 0xA bl sub_80922B4 movs r0, 0x8 ldrsh r1, [r4, r0] add r0, sp, 0x44 bl sub_808D930 add r0, sp, 0x8 ldr r1, _08023F80 adds r2, r6, 0 mov r3, r9 bl sprintf_2 mov r1, r8 ldr r0, [r1] movs r2, 0xD6 lsls r2, 2 adds r0, r2 adds r1, r7, 0 bl sub_8013800 adds r1, r0, 0 mov r4, r8 ldr r0, [r4] movs r2, 0xE3 lsls r2, 2 adds r0, r2 ldr r3, [r0] movs r0, 0 str r0, [sp] movs r0, 0x8 add r2, sp, 0x8 bl xxx_call_draw_string adds r7, 0x1 mov r1, r8 ldr r0, [r4] ldr r4, _08023F84 adds r0, r4 movs r2, 0 ldrsh r0, [r0, r2] cmp r7, r0 bge _08023F62 b _08023E56 _08023F62: ldr r0, _08023F88 ldr r0, [r0] movs r4, 0xE3 lsls r4, 2 adds r0, r4 ldr r0, [r0] bl sub_80073E0 add sp, 0x58 pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08023F80: .4byte gUnknown_80DC998 _08023F84: .4byte 0x00000372 _08023F88: .4byte gUnknown_3001B60 thumb_func_end sub_8023DA4 thumb_func_start sub_8023F8C sub_8023F8C: push {r4-r7,lr} ldr r2, _08023FD0 ldr r1, [r2] movs r0, 0 str r0, [r1, 0x8] ldrb r0, [r1, 0x15] adds r6, r2, 0 cmp r0, 0 bne _08023FE2 movs r4, 0 ldr r2, _08023FD4 _08023FA2: movs r0, 0x58 adds r1, r4, 0 muls r1, r0 ldr r0, [r2] adds r1, r0, r1 ldrb r0, [r1, 0x2] cmp r0, 0 beq _08023FD8 ldrb r1, [r1] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _08023FD8 ldr r3, [r6] ldr r1, [r3, 0x8] lsls r2, r1, 1 adds r0, r3, 0 adds r0, 0x1A adds r0, r2 strh r4, [r0] adds r1, 0x1 str r1, [r3, 0x8] b _08023FE2 .align 2, 0 _08023FD0: .4byte gUnknown_3001B60 _08023FD4: .4byte gRecruitedPokemonRef _08023FD8: adds r4, 0x1 movs r0, 0xCE lsls r0, 1 cmp r4, r0 ble _08023FA2 _08023FE2: ldr r0, [r6] ldrb r0, [r0, 0x16] cmp r0, 0 bne _08024042 movs r4, 0 ldr r3, _08024034 _08023FEE: movs r0, 0x58 adds r1, r4, 0 muls r1, r0 ldr r0, [r3] adds r1, r0, r1 movs r2, 0 ldrb r0, [r1, 0x4] cmp r0, 0x41 bne _08024002 movs r2, 0x1 _08024002: cmp r2, 0 beq _08024038 ldrb r0, [r1, 0x2] cmp r0, 0 bne _08024038 ldrh r1, [r1] lsrs r0, r1, 1 movs r2, 0x1 ands r0, r2 cmp r0, 0 beq _08024038 adds r0, r2, 0 ands r0, r1 cmp r0, 0 beq _08024038 ldr r3, [r6] ldr r1, [r3, 0x8] lsls r2, r1, 1 adds r0, r3, 0 adds r0, 0x1A adds r0, r2 strh r4, [r0] adds r1, 0x1 str r1, [r3, 0x8] b _08024042 .align 2, 0 _08024034: .4byte gRecruitedPokemonRef _08024038: adds r4, 0x1 movs r0, 0xCE lsls r0, 1 cmp r4, r0 ble _08023FEE _08024042: ldr r0, [r6] ldr r1, [r0, 0x8] str r1, [r0, 0xC] ldrb r0, [r0, 0x17] cmp r0, 0 bne _080240A4 movs r4, 0 ldr r7, _08024100 movs r5, 0x1 _08024054: movs r0, 0x58 adds r1, r4, 0 muls r1, r0 ldr r0, [r7] adds r1, r0, r1 ldrh r2, [r1] lsrs r0, r2, 1 ands r0, r5 cmp r0, 0 beq _0802409A adds r0, r5, 0 ands r0, r2 cmp r0, 0 beq _0802409A ldrb r0, [r1, 0x2] cmp r0, 0 bne _0802409A movs r2, 0 ldrb r0, [r1, 0x4] cmp r0, 0x41 bne _08024080 movs r2, 0x1 _08024080: cmp r2, 0 bne _0802409A ldr r3, [r6] ldr r1, [r3, 0x8] lsls r2, r1, 1 adds r0, r3, 0 adds r0, 0x1A adds r0, r2 strh r4, [r0] adds r1, 0x1 str r1, [r3, 0x8] cmp r1, 0x3 bgt _080240A4 _0802409A: adds r4, 0x1 movs r0, 0xCE lsls r0, 1 cmp r4, r0 ble _08024054 _080240A4: ldr r0, [r6] ldr r1, [r0, 0x8] str r1, [r0, 0x10] ldrb r0, [r0, 0x14] cmp r0, 0 bne _080240EE movs r4, 0 ldr r7, _08024100 movs r5, 0x1 _080240B6: movs r0, 0x58 adds r1, r4, 0 muls r1, r0 ldr r0, [r7] adds r1, r0, r1 ldrh r1, [r1] adds r0, r5, 0 ands r0, r1 cmp r0, 0 beq _080240E4 lsrs r0, r1, 1 ands r0, r5 cmp r0, 0 bne _080240E4 ldr r3, [r6] ldr r1, [r3, 0x8] lsls r2, r1, 1 adds r0, r3, 0 adds r0, 0x1A adds r0, r2 strh r4, [r0] adds r1, 0x1 str r1, [r3, 0x8] _080240E4: adds r4, 0x1 movs r0, 0xCE lsls r0, 1 cmp r4, r0 ble _080240B6 _080240EE: bl sub_80241A8 ldr r0, _08024104 ldr r0, [r0] ldr r0, [r0, 0x8] pop {r4-r7} pop {r1} bx r1 .align 2, 0 _08024100: .4byte gRecruitedPokemonRef _08024104: .4byte gUnknown_3001B60 thumb_func_end sub_8023F8C thumb_func_start sub_8024108 sub_8024108: push {r4-r7,lr} adds r5, r0, 0 movs r7, 0 movs r6, 0x1 _08024110: ldr r2, _08024134 movs r0, 0x58 adds r1, r7, 0 muls r1, r0 ldr r0, [r2] adds r4, r0, r1 ldrh r1, [r4] adds r0, r6, 0 ands r0, r1 cmp r0, 0 beq _08024172 cmp r5, 0x2 bne _08024138 lsrs r0, r1, 1 ands r0, r6 cmp r0, 0 beq _08024172 b _0802416E .align 2, 0 _08024134: .4byte gRecruitedPokemonRef _08024138: cmp r5, 0x3 bne _08024140 lsrs r0, r1, 1 b _08024168 _08024140: cmp r5, 0x4 bne _0802416E ldrb r0, [r4, 0x2] cmp r0, 0 bne _08024172 movs r0, 0x9 bl sub_80023E4 lsls r0, 24 cmp r0, 0 bne _0802416E movs r1, 0 ldrb r0, [r4, 0x4] cmp r0, 0x41 bne _08024160 movs r1, 0x1 _08024160: cmp r1, 0 beq _0802416E ldrh r0, [r4] lsrs r0, 1 _08024168: ands r0, r6 cmp r0, 0 bne _08024172 _0802416E: movs r0, 0 b _0802417E _08024172: adds r7, 0x1 movs r0, 0xCE lsls r0, 1 cmp r7, r0 ble _08024110 movs r0, 0x1 _0802417E: pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_8024108 thumb_func_start sub_8024184 sub_8024184: push {r4,lr} lsls r4, r1, 24 lsrs r4, 24 movs r1, 0x8 ldrsh r0, [r0, r1] bl GetFriendArea lsls r0, 24 lsrs r0, 24 cmp r4, r0 beq _0802419E movs r0, 0 b _080241A0 _0802419E: movs r0, 0x1 _080241A0: pop {r4} pop {r1} bx r1 thumb_func_end sub_8024184 thumb_func_start sub_80241A8 sub_80241A8: push {r4,lr} ldr r4, _080241C0 ldr r1, [r4] ldr r0, [r1, 0x4] cmp r0, 0x2 beq _080241CA cmp r0, 0x2 bhi _080241C4 cmp r0, 0x1 beq _08024206 b _08024222 .align 2, 0 _080241C0: .4byte gUnknown_3001B60 _080241C4: cmp r0, 0x3 beq _080241E8 b _08024222 _080241CA: ldr r0, [r1, 0xC] ldr r1, [r1, 0x10] cmp r0, r1 beq _080241D6 bl sub_80242D0 _080241D6: ldr r0, [r4] ldr r2, [r0, 0x10] ldr r1, [r0, 0x8] cmp r2, r1 beq _08024222 adds r0, r2, 0 bl sub_80242D0 b _08024222 _080241E8: ldr r0, [r1, 0xC] ldr r1, [r1, 0x10] cmp r0, r1 beq _080241F4 bl sub_802437C _080241F4: ldr r0, [r4] ldr r2, [r0, 0x10] ldr r1, [r0, 0x8] cmp r2, r1 beq _08024222 adds r0, r2, 0 bl sub_802437C b _08024222 _08024206: ldr r0, [r1, 0xC] ldr r1, [r1, 0x10] cmp r0, r1 beq _08024212 bl sub_8024228 _08024212: ldr r0, [r4] ldr r2, [r0, 0x10] ldr r1, [r0, 0x8] cmp r2, r1 beq _08024222 adds r0, r2, 0 bl sub_8024228 _08024222: pop {r4} pop {r0} bx r0 thumb_func_end sub_80241A8 thumb_func_start sub_8024228 sub_8024228: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0xC ldr r3, _080242C8 lsls r2, r1, 1 adds r2, 0x18 ldr r3, [r3] adds r3, r2 str r3, [sp] adds r2, r0, 0 subs r1, 0x1 cmp r2, r1 bge _080242B8 str r1, [sp, 0x4] _0802424A: ldr r5, [sp] adds r7, r1, 0 adds r0, r2, 0x1 mov r10, r0 cmp r7, r2 ble _080242B0 ldr r3, _080242CC mov r9, r3 movs r0, 0x58 mov r8, r0 _0802425E: mov r3, r9 ldr r1, [r3] subs r6, r5, 0x2 movs r3, 0 ldrsh r0, [r6, r3] mov r3, r8 muls r3, r0 adds r0, r3, 0 adds r1, r0 movs r3, 0x8 ldrsh r0, [r1, r3] str r2, [sp, 0x8] bl GetInternalNo adds r4, r0, 0 mov r0, r9 ldr r1, [r0] movs r3, 0 ldrsh r0, [r5, r3] mov r3, r8 muls r3, r0 adds r0, r3, 0 adds r1, r0 movs r3, 0x8 ldrsh r0, [r1, r3] bl GetInternalNo lsls r4, 16 lsls r0, 16 ldr r2, [sp, 0x8] cmp r4, r0 ble _080242A8 movs r0, 0 ldrsh r1, [r5, r0] ldrh r0, [r6] strh r0, [r5] strh r1, [r6] _080242A8: adds r5, r6, 0 subs r7, 0x1 cmp r7, r2 bgt _0802425E _080242B0: mov r2, r10 ldr r1, [sp, 0x4] cmp r2, r1 blt _0802424A _080242B8: add sp, 0xC pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080242C8: .4byte gUnknown_3001B60 _080242CC: .4byte gRecruitedPokemonRef thumb_func_end sub_8024228 thumb_func_start sub_80242D0 sub_80242D0: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0xC ldr r3, _08024374 lsls r2, r1, 1 adds r2, 0x18 ldr r3, [r3] adds r3, r2 str r3, [sp] adds r2, r0, 0 subs r1, 0x1 cmp r2, r1 bge _08024364 str r1, [sp, 0x4] _080242F2: ldr r5, [sp] adds r7, r1, 0 adds r0, r2, 0x1 mov r10, r0 cmp r7, r2 ble _0802435C ldr r3, _08024378 mov r9, r3 movs r0, 0x58 mov r8, r0 _08024306: mov r3, r9 ldr r1, [r3] subs r6, r5, 0x2 movs r3, 0 ldrsh r0, [r6, r3] mov r3, r8 muls r3, r0 adds r0, r3, 0 adds r1, r0 movs r3, 0x8 ldrsh r0, [r1, r3] movs r1, 0 str r2, [sp, 0x8] bl GetAlphabetParentNo adds r4, r0, 0 mov r0, r9 ldr r1, [r0] movs r3, 0 ldrsh r0, [r5, r3] mov r3, r8 muls r3, r0 adds r0, r3, 0 adds r1, r0 movs r3, 0x8 ldrsh r0, [r1, r3] movs r1, 0 bl GetAlphabetParentNo lsls r4, 16 lsls r0, 16 ldr r2, [sp, 0x8] cmp r4, r0 ble _08024354 movs r0, 0 ldrsh r1, [r5, r0] ldrh r0, [r6] strh r0, [r5] strh r1, [r6] _08024354: adds r5, r6, 0 subs r7, 0x1 cmp r7, r2 bgt _08024306 _0802435C: mov r2, r10 ldr r1, [sp, 0x4] cmp r2, r1 blt _080242F2 _08024364: add sp, 0xC pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08024374: .4byte gUnknown_3001B60 _08024378: .4byte gRecruitedPokemonRef thumb_func_end sub_80242D0 thumb_func_start sub_802437C sub_802437C: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} ldr r3, _080243E4 lsls r2, r1, 1 adds r2, 0x18 ldr r3, [r3] adds r3, r2 mov r10, r3 adds r7, r0, 0 subs r1, 0x1 cmp r7, r1 bge _080243D6 mov r9, r1 _0802439C: mov r4, r10 adds r6, r1, 0 adds r0, r7, 0x1 mov r8, r0 cmp r6, r7 ble _080243CE _080243A8: subs r5, r4, 0x2 movs r1, 0 ldrsh r0, [r5, r1] movs r2, 0 ldrsh r1, [r4, r2] bl ComparePokemonNames lsls r0, 24 cmp r0, 0 beq _080243C6 movs r0, 0 ldrsh r1, [r4, r0] ldrh r0, [r5] strh r0, [r4] strh r1, [r5] _080243C6: adds r4, r5, 0 subs r6, 0x1 cmp r6, r7 bgt _080243A8 _080243CE: mov r7, r8 mov r1, r9 cmp r7, r1 blt _0802439C _080243D6: pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080243E4: .4byte gUnknown_3001B60 thumb_func_end sub_802437C thumb_func_start sub_80243E8 sub_80243E8: push {r4,r5,lr} sub sp, 0x3C ldr r3, _08024448 ldr r0, _0802444C ldr r0, [r0] ldr r2, _08024450 adds r1, r0, r2 movs r4, 0 ldrsh r2, [r1, r4] movs r4, 0xDD lsls r4, 2 adds r1, r0, r4 movs r4, 0 ldrsh r1, [r1, r4] muls r1, r2 movs r4, 0xDC lsls r4, 2 adds r2, r0, r4 movs r4, 0 ldrsh r2, [r2, r4] adds r1, r2 lsls r1, 1 adds r0, 0x1A adds r0, r1 movs r2, 0 ldrsh r1, [r0, r2] movs r0, 0x58 muls r0, r1 ldr r4, [r3] adds r4, r0 add r5, sp, 0x28 adds r1, r4, 0 adds r1, 0x4C adds r0, r5, 0 movs r2, 0xA bl sub_80922B4 ldr r1, _08024454 mov r0, sp adds r2, r5, 0 bl sprintf_2 adds r0, r4, 0 add sp, 0x3C pop {r4,r5} pop {r1} bx r1 .align 2, 0 _08024448: .4byte gRecruitedPokemonRef _0802444C: .4byte gUnknown_3001B60 _08024450: .4byte 0x00000376 _08024454: .4byte gUnknown_80DC9A4 thumb_func_end sub_80243E8 thumb_func_start sub_8024458 sub_8024458: push {r4-r6,lr} adds r4, r0, 0 adds r5, r1, 0 lsls r4, 16 asrs r4, 16 ldr r6, _080244DC movs r0, 0xA6 lsls r0, 1 movs r1, 0x8 bl MemoryAlloc str r0, [r6] adds r1, r0, 0 adds r1, 0x48 strh r4, [r1] adds r1, 0x98 str r5, [r1] adds r2, r0, 0 adds r2, 0xE4 lsls r1, r5, 1 adds r1, r5 lsls r1, 3 adds r1, 0xE8 adds r1, r0, r1 str r1, [r2] adds r0, 0xE8 bl sub_8006518 ldr r1, [r6] adds r0, r1, 0 adds r0, 0xE0 ldr r2, [r0] lsls r0, r2, 1 adds r0, r2 lsls r0, 3 adds r1, r0 adds r1, 0xE8 ldr r0, _080244E0 ldm r0!, {r2-r4} stm r1!, {r2-r4} ldm r0!, {r2-r4} stm r1!, {r2-r4} ldr r2, [r6] adds r0, r2, 0 adds r0, 0xE4 ldr r1, [r0] movs r3, 0xA4 lsls r3, 1 adds r0, r2, r3 str r0, [r1, 0x14] movs r4, 0xA5 lsls r4, 1 adds r1, r2, r4 movs r0, 0xA strb r0, [r1] bl sub_8024604 bl sub_802452C ldr r0, [r6] bl sub_8013984 movs r0, 0x1 pop {r4-r6} pop {r1} bx r1 .align 2, 0 _080244DC: .4byte gUnknown_203B2AC _080244E0: .4byte gUnknown_80DC9C8 thumb_func_end sub_8024458 thumb_func_start sub_80244E4 sub_80244E4: push {r4,lr} ldr r4, _08024500 ldr r0, [r4] bl GetKeyPress cmp r0, 0x1 beq _08024504 cmp r0, 0x2 bne _0802450E movs r0, 0x1 bl PlayMenuSoundEffect movs r0, 0x2 b _08024524 .align 2, 0 _08024500: .4byte gUnknown_203B2AC _08024504: movs r0, 0 bl PlayMenuSoundEffect movs r0, 0x3 b _08024524 _0802450E: ldr r0, [r4] bl sub_8013938 lsls r0, 24 cmp r0, 0 bne _0802451E movs r0, 0 b _08024524 _0802451E: bl sub_802452C movs r0, 0x1 _08024524: pop {r4} pop {r1} bx r1 thumb_func_end sub_80244E4 thumb_func_start sub_802452C sub_802452C: push {lr} bl sub_8024588 bl sub_80245D0 pop {r0} bx r0 thumb_func_end sub_802452C thumb_func_start sub_802453C sub_802453C: push {r4,r5,lr} ldr r4, _08024580 ldr r2, [r4] cmp r2, 0 beq _0802457A adds r0, r2, 0 adds r0, 0xE0 ldr r0, [r0] lsls r1, r0, 1 adds r1, r0 lsls r1, 3 adds r1, r2, r1 adds r1, 0xE8 ldr r0, _08024584 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, 0xE8 movs r1, 0x1 movs r2, 0x1 bl sub_800641C ldr r0, [r4] bl MemoryFree movs r0, 0 str r0, [r4] _0802457A: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _08024580: .4byte gUnknown_203B2AC _08024584: .4byte gUnknown_80DC9B0 thumb_func_end sub_802453C thumb_func_start sub_8024588 sub_8024588: push {r4,lr} ldr r4, _080245C4 ldr r0, [r4] ldrh r1, [r0, 0x20] movs r2, 0xA4 lsls r2, 1 adds r0, r2 movs r2, 0 strb r1, [r0] ldr r0, [r4] ldrh r1, [r0, 0x1E] ldr r3, _080245C8 adds r0, r3 strb r1, [r0] ldr r0, [r4] ldr r1, _080245CC adds r0, r1 strb r2, [r0] bl ResetUnusedInputStruct ldr r0, [r4] adds r0, 0xE8 movs r1, 0x1 movs r2, 0x1 bl sub_800641C pop {r4} pop {r0} bx r0 .align 2, 0 _080245C4: .4byte gUnknown_203B2AC _080245C8: .4byte 0x00000149 _080245CC: .4byte 0x0000014b thumb_func_end sub_8024588 thumb_func_start sub_80245D0 sub_80245D0: push {r4,lr} sub sp, 0x4 ldr r0, _08024600 ldr r4, [r0] movs r0, 0x1E ldrsh r1, [r4, r0] lsls r2, r1, 2 adds r0, r4, 0 adds r0, 0x34 adds r0, r2 ldr r0, [r0] adds r2, r4, 0 adds r2, 0x4C adds r3, r4, 0 adds r3, 0xB0 adds r4, 0xE0 ldr r4, [r4] str r4, [sp] bl CreatePokemonInfoTabScreen add sp, 0x4 pop {r4} pop {r0} bx r0 .align 2, 0 _08024600: .4byte gUnknown_203B2AC thumb_func_end sub_80245D0 thumb_func_start sub_8024604 sub_8024604: push {r4,r5,lr} ldr r4, _08024654 ldr r0, [r4] movs r1, 0x2 str r1, [r0, 0x34] movs r1, 0x3 str r1, [r0, 0x38] movs r1, 0x5 str r1, [r0, 0x3C] adds r1, r0, 0 adds r1, 0xE0 ldr r3, [r1] movs r1, 0x3 movs r2, 0x1 bl sub_8013818 ldr r0, [r4] adds r5, r0, 0 adds r5, 0x4C ldr r2, _08024658 adds r0, 0x48 movs r3, 0 ldrsh r1, [r0, r3] movs r0, 0x58 muls r0, r1 ldr r4, [r2] adds r4, r0 movs r0, 0x7 bl sub_80023E4 adds r2, r0, 0 lsls r2, 24 lsrs r2, 24 adds r0, r5, 0 adds r1, r4, 0 bl sub_808FF20 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _08024654: .4byte gUnknown_203B2AC _08024658: .4byte gRecruitedPokemonRef thumb_func_end sub_8024604 .align 2,0