diff options
Diffstat (limited to 'asm/code_801EE10.s')
-rw-r--r-- | asm/code_801EE10.s | 11152 |
1 files changed, 11152 insertions, 0 deletions
diff --git a/asm/code_801EE10.s b/asm/code_801EE10.s new file mode 100644 index 0000000..7998909 --- /dev/null +++ b/asm/code_801EE10.s @@ -0,0 +1,11152 @@ + .include "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 ExpandPlaceholdersBuffer + 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 sub_808DA34 + 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 sub_808DA34 + 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 sub_808DA34 + 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 ExpandPlaceholdersBuffer + 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 ExpandPlaceholdersBuffer + 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 ExpandPlaceholdersBuffer + 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 sub_808D9AC + adds r4, 0x50 + adds r0, r4, 0 + adds r1, r5, 0 + movs r2, 0x6 + bl sub_808D9AC + 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 sub_808EBA8 + 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 sub_808EBA8 + 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 ExpandPlaceholdersBuffer + 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 ExpandPlaceholdersBuffer + 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 ExpandPlaceholdersBuffer + 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 |