pmd-red/asm/code_801EE10.s
mid-kid 99a038284b Translate all .include to #include
This decision was made to reduce the complexity of using .include whilst
juggling with tools/scaninc and tools/preproc:
- tools/scaninc doesn't apply the proper search rules for .include (it
  assumes #include behavior). In particular, it doesn't consider paths
  starting from $PWD, and doesn't scan the included files as a result.
- .include had to be processed before #include by preproc in many cases,
  as code was being included that had to be preprocessed by CPP (think
  of #define). This contradicts standard GCC behavior.

To make include paths consistent across the asm/ data/ and src/
directories, the following files were moved:
- constants/ → include/asm/constants/
- asm/macros/ → include/asm/macros/
- asm/macros.inc → include/asm/macros.inc
- include/macros/m4a.inc → include/asm/macros/m4a.inc

As part of the necessary changes for this to work, the scaninc method in
the makefile was improved to generate .d files that don't choke when
files are missing.
2021-12-20 16:29:12 +01:00

11153 lines
171 KiB
ArmAsm

#include "asm/constants/gba_constants.inc"
#include "asm/macros.inc"
.syntax unified
.text
thumb_func_start sub_801EE10
sub_801EE10:
push {r4-r7,lr}
mov r7, r9
mov r6, r8
push {r6,r7}
adds r6, r0, 0
mov r9, r2
adds r4, r3, 0
ldr r0, [sp, 0x20]
mov r8, r0
lsls r1, 16
asrs r7, r1, 16
lsls r4, 24
lsrs r4, 24
ldr r5, _0801EF28
movs r0, 0xBC
movs r1, 0x8
bl MemoryAlloc
str r0, [r5]
movs r2, 0
strb r4, [r0, 0x4]
ldr r0, [r5]
movs r1, 0x1
strb r1, [r0, 0x5]
ldr r0, [r5]
strb r1, [r0, 0x6]
ldr r0, [r5]
strb r1, [r0, 0x7]
ldr r0, [r5]
str r6, [r0]
cmp r6, 0x1
bls _0801EE5E
cmp r6, 0x3
bhi _0801EE5E
strb r2, [r0, 0x5]
ldr r0, [r5]
strb r2, [r0, 0x6]
ldr r0, [r5]
strb r2, [r0, 0x7]
_0801EE5E:
ldr r4, _0801EF28
ldr r3, [r4]
ldr r2, _0801EF2C
movs r0, 0x58
adds r1, r7, 0
muls r1, r0
ldr r0, [r2]
adds r0, r1
str r0, [r3, 0x8]
ldrb r0, [r0, 0x2]
strb r0, [r3, 0xC]
ldr r0, [r4]
mov r1, r9
str r1, [r0, 0x10]
adds r0, 0xB8
ldr r1, [sp, 0x1C]
str r1, [r0]
bl sub_801F3F8
adds r5, r0, 0
adds r6, r5, 0
cmp r5, 0x4
bge _0801EE8E
movs r6, 0x4
_0801EE8E:
ldr r0, [r4]
adds r0, 0x58
bl sub_8006518
ldr r1, [r4]
mov r2, r8
str r2, [r1, 0x50]
lsls r0, r2, 1
add r0, r8
lsls r0, 3
adds r1, r0
adds r1, 0x58
ldr r0, _0801EF30
ldm r0!, {r2,r3,r7}
stm r1!, {r2,r3,r7}
ldm r0!, {r2,r3,r7}
stm r1!, {r2,r3,r7}
ldr r0, [r4]
adds r0, 0xB8
ldr r0, [r0]
cmp r0, 0
beq _0801EED8
mov r0, r8
bl sub_8006544
ldr r1, [r4]
str r0, [r1, 0x54]
lsls r2, r0, 1
adds r2, r0
lsls r2, 3
adds r1, r2
adds r1, 0x58
ldr r0, _0801EF34
ldm r0!, {r2,r3,r7}
stm r1!, {r2,r3,r7}
ldm r0!, {r2,r3,r7}
stm r1!, {r2,r3,r7}
_0801EED8:
ldr r0, [r4]
ldr r2, [r0, 0x50]
lsls r1, r2, 1
adds r1, r2
lsls r1, 3
adds r1, 0x58
adds r0, r1
adds r1, r6, 0
bl sub_8012D08
bl ResetUnusedInputStruct
ldr r0, [r4]
adds r0, 0x58
movs r1, 0x1
movs r2, 0x1
bl sub_800641C
ldr r0, [r4]
adds r0, 0x1C
adds r1, r5, 0
adds r2, r5, 0
mov r3, r8
bl sub_8013818
ldr r0, [r4]
adds r0, 0x1C
movs r1, 0
bl sub_8013780
movs r0, 0x1
bl sub_801F280
movs r0, 0x1
pop {r3,r4}
mov r8, r3
mov r9, r4
pop {r4-r7}
pop {r1}
bx r1
.align 2, 0
_0801EF28: .4byte gUnknown_203B270
_0801EF2C: .4byte gRecruitedPokemonRef
_0801EF30: .4byte gUnknown_80DC25C
_0801EF34: .4byte gUnknown_80DC274
thumb_func_end sub_801EE10
thumb_func_start sub_801EF38
sub_801EF38:
push {r4-r7,lr}
lsls r0, 24
movs r7, 0
cmp r0, 0
bne _0801EF54
ldr r0, _0801EF50
ldr r0, [r0]
adds r0, 0x1C
bl sub_8013660
b _0801F18C
.align 2, 0
_0801EF50: .4byte gUnknown_203B270
_0801EF54:
ldr r0, _0801EF70
ldr r0, [r0]
adds r0, 0x1C
bl GetKeyPress
subs r0, 0x1
cmp r0, 0xC
bls _0801EF66
b _0801F12E
_0801EF66:
lsls r0, 2
ldr r1, _0801EF74
adds r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_0801EF70: .4byte gUnknown_203B270
_0801EF74: .4byte _0801EF78
.align 2, 0
_0801EF78:
.4byte _0801EFB6
.4byte _0801EFAC
.4byte _0801F0E4
.4byte _0801EFC0
.4byte _0801F12E
.4byte _0801F12E
.4byte _0801EFE4
.4byte _0801EFCA
.4byte _0801F12E
.4byte _0801F12E
.4byte _0801F074
.4byte _0801F04C
.4byte _0801F018
_0801EFAC:
movs r0, 0x1
bl PlayMenuSoundEffect
movs r0, 0x2
b _0801F18E
_0801EFB6:
movs r0, 0
bl PlayMenuSoundEffect
movs r0, 0x3
b _0801F18E
_0801EFC0:
movs r0, 0x4
bl PlayMenuSoundEffect
movs r0, 0x4
b _0801F18E
_0801EFCA:
ldr r5, _0801EFE0
ldr r0, [r5]
movs r1, 0x34
ldrsh r6, [r0, r1]
adds r4, r0, 0
adds r4, 0x1C
ldr r0, [r0, 0x10]
adds r1, r6, 0
bl sub_8092E54
b _0801EFF8
.align 2, 0
_0801EFE0: .4byte gUnknown_203B270
_0801EFE4:
ldr r5, _0801F014
ldr r0, [r5]
movs r1, 0x34
ldrsh r6, [r0, r1]
adds r4, r0, 0
adds r4, 0x1C
ldr r0, [r0, 0x10]
adds r1, r6, 0
bl sub_8092EEC
_0801EFF8:
adds r1, r0, 0
adds r0, r4, 0
bl sub_8013780
ldr r0, [r5]
movs r2, 0x34
ldrsh r0, [r0, r2]
cmp r6, r0
bne _0801F00C
b _0801F12E
_0801F00C:
movs r0, 0x3
bl PlayMenuSoundEffect
b _0801F12E
.align 2, 0
_0801F014: .4byte gUnknown_203B270
_0801F018:
ldr r0, _0801F048
ldr r2, [r0]
ldrb r1, [r2, 0x5]
adds r5, r0, 0
cmp r1, 0
bne _0801F026
b _0801F12E
_0801F026:
movs r0, 0x34
ldrsh r4, [r2, r0]
ldr r0, [r2, 0x10]
adds r1, r4, 0
bl sub_809309C
_0801F032:
ldr r1, [r5]
strh r0, [r1, 0x34]
lsls r0, 16
asrs r0, 16
cmp r4, r0
beq _0801F06C
movs r0, 0x3
bl PlayMenuSoundEffect
b _0801F182
.align 2, 0
_0801F048: .4byte gUnknown_203B270
_0801F04C:
ldr r0, _0801F068
ldr r2, [r0]
ldrb r1, [r2, 0x5]
adds r5, r0, 0
cmp r1, 0
beq _0801F12E
movs r1, 0x34
ldrsh r4, [r2, r1]
ldr r0, [r2, 0x10]
adds r1, r4, 0
bl sub_809324C
b _0801F032
.align 2, 0
_0801F068: .4byte gUnknown_203B270
_0801F06C:
movs r0, 0x2
bl PlayMenuSoundEffect
b _0801F182
_0801F074:
ldr r0, _0801F0C8
ldr r2, [r0]
ldrb r1, [r2, 0x6]
adds r5, r0, 0
cmp r1, 0
beq _0801F12E
ldr r0, _0801F0CC
ldr r0, [r0]
movs r1, 0x98
lsls r1, 2
adds r0, r1
ldr r0, [r0]
cmp r0, 0x95
ble _0801F0D0
movs r1, 0x34
ldrsh r0, [r2, r1]
ldr r1, [r2, 0x10]
bl sub_8093318
lsls r0, 24
cmp r0, 0
beq _0801F0D0
ldr r1, [r5]
movs r2, 0x34
ldrsh r0, [r1, r2]
ldr r1, [r1, 0x10]
bl sub_8093400
movs r0, 0x6
bl PlayMenuSoundEffect
movs r7, 0x1
ldr r1, [r5]
ldrb r0, [r1, 0x4]
cmp r0, 0
bne _0801F12E
strb r7, [r1, 0x4]
movs r0, 0xA6
lsls r0, 1
bl PlaySound
b _0801F12E
.align 2, 0
_0801F0C8: .4byte gUnknown_203B270
_0801F0CC: .4byte gTeamInventory_203B460
_0801F0D0:
ldr r0, _0801F0E0
ldr r1, [r0]
movs r2, 0x34
ldrsh r0, [r1, r2]
ldr r1, [r1, 0x10]
bl sub_8093468
b _0801F0FE
.align 2, 0
_0801F0E0: .4byte gUnknown_203B270
_0801F0E4:
ldr r0, _0801F10C
ldr r1, [r0]
ldrb r0, [r1, 0x7]
cmp r0, 0
beq _0801F12E
ldrb r0, [r1, 0xC]
cmp r0, 0
beq _0801F110
movs r2, 0x34
ldrsh r0, [r1, r2]
ldr r1, [r1, 0x10]
bl sub_80934DC
_0801F0FE:
lsls r0, 24
cmp r0, 0
bne _0801F120
movs r0, 0x2
bl PlayMenuSoundEffect
b _0801F12E
.align 2, 0
_0801F10C: .4byte gUnknown_203B270
_0801F110:
movs r2, 0x34
ldrsh r0, [r1, r2]
ldr r1, [r1, 0x10]
bl sub_8093544
lsls r0, 24
cmp r0, 0
beq _0801F128
_0801F120:
movs r0, 0x6
bl PlayMenuSoundEffect
b _0801F182
_0801F128:
movs r0, 0x2
bl PlayMenuSoundEffect
_0801F12E:
cmp r7, 0
bne _0801F182
movs r3, 0
ldr r5, _0801F160
movs r4, 0x1
_0801F138:
ldr r2, [r5]
lsls r0, r3, 3
ldr r1, [r2, 0x10]
adds r1, r0
ldrb r1, [r1]
adds r0, r4, 0
ands r0, r1
cmp r0, 0
beq _0801F16C
movs r0, 0x2
ands r0, r1
lsls r0, 24
lsrs r1, r0, 24
cmp r1, 0
beq _0801F164
adds r0, r2, 0
adds r0, 0x14
adds r0, r3
strb r4, [r0]
b _0801F16C
.align 2, 0
_0801F160: .4byte gUnknown_203B270
_0801F164:
adds r0, r2, 0
adds r0, 0x14
adds r0, r3
strb r1, [r0]
_0801F16C:
adds r3, 0x1
cmp r3, 0x7
ble _0801F138
ldr r1, [r5]
adds r0, r1, 0
adds r0, 0x1C
adds r1, 0x14
bl AddMenuCursorSprite_
cmp r7, 0
beq _0801F18C
_0801F182:
movs r0, 0x1
bl sub_801F280
movs r0, 0x1
b _0801F18E
_0801F18C:
movs r0, 0
_0801F18E:
pop {r4-r7}
pop {r1}
bx r1
thumb_func_end sub_801EF38
thumb_func_start sub_801F194
sub_801F194:
ldr r0, _0801F1A0
ldr r0, [r0]
movs r1, 0x34
ldrsh r0, [r0, r1]
bx lr
.align 2, 0
_0801F1A0: .4byte gUnknown_203B270
thumb_func_end sub_801F194
thumb_func_start sub_801F1A4
sub_801F1A4:
ldr r0, _0801F1AC
ldr r0, [r0]
ldrb r0, [r0, 0x4]
bx lr
.align 2, 0
_0801F1AC: .4byte gUnknown_203B270
thumb_func_end sub_801F1A4
thumb_func_start sub_801F1B0
sub_801F1B0:
push {r4,r5,lr}
lsls r0, 24
lsrs r5, r0, 24
lsls r1, 24
lsrs r1, 24
ldr r4, _0801F210
ldr r2, [r4]
ldrb r0, [r2, 0x4]
cmp r0, 0
bne _0801F1C6
strb r1, [r2, 0x4]
_0801F1C6:
bl ResetUnusedInputStruct
ldr r0, [r4]
adds r0, 0x58
movs r1, 0x1
movs r2, 0x1
bl sub_800641C
bl sub_801F3F8
adds r1, r0, 0
ldr r0, [r4]
strh r1, [r0, 0x3E]
adds r0, 0x1C
bl sub_8013984
ldr r1, [r4]
ldr r0, [r1, 0x10]
movs r2, 0x34
ldrsh r1, [r1, r2]
bl sub_8092F4C
ldr r1, [r4]
strh r0, [r1, 0x34]
movs r0, 0x1
bl sub_801F280
cmp r5, 0
beq _0801F208
ldr r0, [r4]
adds r0, 0x1C
bl AddMenuCursorSprite
_0801F208:
pop {r4,r5}
pop {r0}
bx r0
.align 2, 0
_0801F210: .4byte gUnknown_203B270
thumb_func_end sub_801F1B0
thumb_func_start sub_801F214
sub_801F214:
push {r4-r6,lr}
ldr r4, _0801F278
ldr r2, [r4]
cmp r2, 0
beq _0801F272
ldr r0, [r2, 0x50]
lsls r1, r0, 1
adds r1, r0
lsls r1, 3
adds r1, r2, r1
ldr r3, _0801F27C
adds r1, 0x58
adds r0, r3, 0
ldm r0!, {r2,r5,r6}
stm r1!, {r2,r5,r6}
ldm r0!, {r2,r5,r6}
stm r1!, {r2,r5,r6}
ldr r2, [r4]
adds r0, r2, 0
adds r0, 0xB8
ldr r0, [r0]
cmp r0, 0
beq _0801F258
ldr r0, [r2, 0x54]
lsls r1, r0, 1
adds r1, r0
lsls r1, 3
adds r1, r2, r1
adds r1, 0x58
adds r0, r3, 0
ldm r0!, {r2,r3,r5}
stm r1!, {r2,r3,r5}
ldm r0!, {r2,r3,r6}
stm r1!, {r2,r3,r6}
_0801F258:
bl ResetUnusedInputStruct
ldr r0, [r4]
adds r0, 0x58
movs r1, 0x1
movs r2, 0x1
bl sub_800641C
ldr r0, [r4]
bl MemoryFree
movs r0, 0
str r0, [r4]
_0801F272:
pop {r4-r6}
pop {r0}
bx r0
.align 2, 0
_0801F278: .4byte gUnknown_203B270
_0801F27C: .4byte gUnknown_80DC240
thumb_func_end sub_801F214
thumb_func_start sub_801F280
sub_801F280:
push {r4-r7,lr}
mov r7, r10
mov r6, r9
mov r5, r8
push {r5-r7}
sub sp, 0x28
lsls r0, 24
lsrs r0, 24
mov r10, r0
ldr r4, _0801F30C
ldr r0, [r4]
ldr r0, [r0, 0x50]
bl sub_8008C54
ldr r0, [r4]
ldr r0, [r0, 0x50]
bl sub_80073B8
ldr r0, [r4]
ldr r1, [r0, 0x8]
adds r1, 0x4C
add r0, sp, 0x4
movs r2, 0xA
bl sub_80922B4
ldr r0, _0801F310
add r1, sp, 0x4
bl strcpy
ldr r2, _0801F314
ldr r0, [r4]
ldr r3, [r0, 0x50]
movs r0, 0
str r0, [sp]
movs r0, 0xC
movs r1, 0
bl xxx_format_and_draw
movs r7, 0
ldr r0, [r4]
movs r1, 0x36
ldrsh r0, [r0, r1]
cmp r7, r0
bge _0801F394
add r5, sp, 0x18
mov r8, r4
movs r0, 0x1
mov r9, r0
_0801F2E0:
adds r0, r5, 0
movs r1, 0
movs r2, 0xC
bl memset
movs r0, 0x6A
str r0, [r5, 0x4]
mov r1, r8
ldr r2, [r1]
lsls r1, r7, 3
ldr r0, [r2, 0x10]
adds r4, r0, r1
ldrb r1, [r4]
mov r0, r9
ands r0, r1
cmp r0, 0
beq _0801F386
ldrb r0, [r2, 0xC]
cmp r0, 0
beq _0801F318
movs r0, 0x2
b _0801F31A
.align 2, 0
_0801F30C: .4byte gUnknown_203B270
_0801F310: .4byte gAvailablePokemonNames
_0801F314: .4byte gUnknown_80DC28C
_0801F318:
movs r0, 0x4
_0801F31A:
str r0, [sp, 0x18]
mov r1, r8
ldr r0, [r1]
ldrb r0, [r0, 0x6]
cmp r0, 0
beq _0801F328
mov r0, r9
_0801F328:
strb r0, [r5, 0x9]
cmp r7, 0x3
ble _0801F332
mov r1, r9
strb r1, [r5, 0x8]
_0801F332:
ldr r0, _0801F3EC
adds r1, r4, 0
adds r2, r5, 0
bl sub_80928A0
ldr r2, _0801F3F0
ldr r0, [r2]
adds r0, 0x1C
adds r1, r7, 0
str r2, [sp, 0x24]
bl sub_8013800
adds r6, r0, 0
ldrb r1, [r4]
movs r0, 0x2
ands r0, r1
movs r4, 0xD
ldr r2, [sp, 0x24]
cmp r0, 0
bne _0801F372
movs r4, 0x8
cmp r7, 0
beq _0801F372
ldr r0, [r2]
ldr r0, [r0, 0x50]
subs r2, r6, 0x2
movs r1, 0x7
str r1, [sp]
movs r1, 0xC
movs r3, 0x78
bl sub_800792C
_0801F372:
mov r1, r8
ldr r0, [r1]
ldr r3, [r0, 0x50]
movs r0, 0
str r0, [sp]
adds r0, r4, 0
adds r1, r6, 0
ldr r2, _0801F3F4
bl xxx_format_and_draw
_0801F386:
adds r7, 0x1
mov r1, r8
ldr r0, [r1]
movs r1, 0x36
ldrsh r0, [r0, r1]
cmp r7, r0
blt _0801F2E0
_0801F394:
ldr r4, _0801F3F0
ldr r0, [r4]
ldr r0, [r0, 0x50]
bl sub_80073E0
ldr r1, [r4]
adds r0, r1, 0
adds r0, 0xB8
ldr r0, [r0]
cmp r0, 0
beq _0801F3DC
mov r0, r10
cmp r0, 0
beq _0801F3DC
ldr r0, [r1, 0x54]
bl sub_8008C54
ldr r0, [r4]
ldr r0, [r0, 0x54]
bl sub_80073B8
ldr r1, [r4]
adds r0, r1, 0
adds r0, 0xB8
ldr r2, [r0]
ldr r3, [r1, 0x54]
movs r0, 0
str r0, [sp]
movs r0, 0x8
movs r1, 0
bl xxx_format_and_draw
ldr r0, [r4]
ldr r0, [r0, 0x54]
bl sub_80073E0
_0801F3DC:
add sp, 0x28
pop {r3-r5}
mov r8, r3
mov r9, r4
mov r10, r5
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
_0801F3EC: .4byte gUnknown_202DE58
_0801F3F0: .4byte gUnknown_203B270
_0801F3F4: .4byte gUnknown_80DC2A0
thumb_func_end sub_801F280
thumb_func_start sub_801F3F8
sub_801F3F8:
push {r4,r5,lr}
movs r4, 0
ldr r0, _0801F424
ldr r0, [r0]
movs r5, 0x1
ldr r2, [r0, 0x10]
movs r3, 0x7
_0801F406:
ldrb r1, [r2]
adds r0, r5, 0
ands r0, r1
cmp r0, 0
beq _0801F412
adds r4, 0x1
_0801F412:
adds r2, 0x8
subs r3, 0x1
cmp r3, 0
bge _0801F406
adds r0, r4, 0
pop {r4,r5}
pop {r1}
bx r1
.align 2, 0
_0801F424: .4byte gUnknown_203B270
thumb_func_end sub_801F3F8
thumb_func_start sub_801F428
sub_801F428:
push {r4-r6,lr}
mov r6, r9
mov r5, r8
push {r5,r6}
adds r4, r0, 0
mov r9, r1
lsls r4, 16
asrs r4, 16
ldr r5, _0801F50C
movs r0, 0xFA
lsls r0, 2
movs r1, 0x8
bl MemoryAlloc
str r0, [r5]
ldr r3, _0801F510
movs r1, 0x58
adds r2, r4, 0
muls r2, r1
ldr r1, [r3]
adds r1, r2
str r1, [r0]
adds r1, r0, 0
adds r1, 0x8
str r1, [r0, 0x4]
movs r4, 0xDF
lsls r4, 2
adds r1, r0, r4
mov r2, r9
str r2, [r1]
movs r6, 0xE0
lsls r6, 2
adds r2, r0, r6
mov r3, r9
lsls r1, r3, 1
add r1, r9
lsls r1, 3
movs r3, 0xE1
lsls r3, 2
mov r8, r3
add r1, r8
adds r1, r0, r1
str r1, [r2]
add r0, r8
bl sub_8006518
ldr r1, [r5]
adds r4, r1, r4
ldr r2, [r4]
lsls r0, r2, 1
adds r0, r2
lsls r0, 3
adds r1, r0
add r1, r8
ldr r0, _0801F514
ldm r0!, {r2-r4}
stm r1!, {r2-r4}
ldm r0!, {r2-r4}
stm r1!, {r2-r4}
ldr r1, [r5]
adds r6, r1, r6
ldr r0, [r6]
movs r4, 0xF9
lsls r4, 2
adds r1, r4
str r1, [r0, 0x14]
movs r2, 0
movs r0, 0x1
strb r0, [r1]
ldr r0, [r5]
ldr r1, _0801F518
adds r0, r1
strb r2, [r0]
ldr r0, [r5]
ldr r3, _0801F51C
adds r0, r3
movs r1, 0xC
strb r1, [r0]
ldr r0, [r5]
adds r4, 0x3
adds r0, r4
strb r2, [r0]
bl ResetUnusedInputStruct
ldr r0, [r5]
add r0, r8
movs r1, 0x1
movs r2, 0x1
bl sub_800641C
ldr r4, [r5]
movs r0, 0xD2
lsls r0, 2
adds r4, r0
bl sub_801F7E4
adds r1, r0, 0
adds r0, r4, 0
movs r2, 0x4
mov r3, r9
bl sub_8013818
bl sub_801F690
bl sub_801F700
movs r0, 0x1
pop {r3,r4}
mov r8, r3
mov r9, r4
pop {r4-r6}
pop {r1}
bx r1
.align 2, 0
_0801F50C: .4byte gUnknown_203B274
_0801F510: .4byte gRecruitedPokemonRef
_0801F514: .4byte gUnknown_80DC2C4
_0801F518: .4byte 0x000003e5
_0801F51C: .4byte 0x000003e6
thumb_func_end sub_801F428
thumb_func_start sub_801F520
sub_801F520:
push {lr}
lsls r0, 24
cmp r0, 0
bne _0801F540
ldr r0, _0801F53C
ldr r0, [r0]
movs r1, 0xD2
lsls r1, 2
adds r0, r1
bl sub_8013660
movs r0, 0
b _0801F5AE
.align 2, 0
_0801F53C: .4byte gUnknown_203B274
_0801F540:
ldr r0, _0801F55C
ldr r0, [r0]
movs r1, 0xD2
lsls r1, 2
adds r0, r1
bl GetKeyPress
cmp r0, 0x2
beq _0801F566
cmp r0, 0x2
bgt _0801F560
cmp r0, 0x1
beq _0801F570
b _0801F584
.align 2, 0
_0801F55C: .4byte gUnknown_203B274
_0801F560:
cmp r0, 0x4
beq _0801F57A
b _0801F584
_0801F566:
movs r0, 0x1
bl PlayMenuSoundEffect
movs r0, 0x2
b _0801F5AE
_0801F570:
movs r0, 0
bl PlayMenuSoundEffect
movs r0, 0x3
b _0801F5AE
_0801F57A:
movs r0, 0x4
bl PlayMenuSoundEffect
movs r0, 0x4
b _0801F5AE
_0801F584:
ldr r0, _0801F5A0
ldr r0, [r0]
movs r1, 0xD2
lsls r1, 2
adds r0, r1
movs r1, 0x1
bl sub_80138B8
lsls r0, 24
cmp r0, 0
bne _0801F5A4
movs r0, 0
b _0801F5AE
.align 2, 0
_0801F5A0: .4byte gUnknown_203B274
_0801F5A4:
bl sub_801F690
bl sub_801F700
movs r0, 0x1
_0801F5AE:
pop {r1}
bx r1
thumb_func_end sub_801F520
thumb_func_start sub_801F5B4
sub_801F5B4:
push {r4,lr}
ldr r0, _0801F5E8
ldr r1, [r0]
ldr r2, [r1, 0x4]
ldr r3, _0801F5EC
adds r0, r1, r3
movs r4, 0
ldrsh r3, [r0, r4]
movs r4, 0xD9
lsls r4, 2
adds r0, r1, r4
movs r4, 0
ldrsh r0, [r0, r4]
muls r0, r3
movs r3, 0xD8
lsls r3, 2
adds r1, r3
movs r4, 0
ldrsh r1, [r1, r4]
adds r0, r1
lsls r0, 1
adds r2, r0
ldrh r0, [r2]
pop {r4}
pop {r1}
bx r1
.align 2, 0
_0801F5E8: .4byte gUnknown_203B274
_0801F5EC: .4byte 0x00000366
thumb_func_end sub_801F5B4
thumb_func_start sub_801F5F0
sub_801F5F0:
push {r4,r5,lr}
adds r4, r0, 0
lsls r4, 24
lsrs r4, 24
bl ResetUnusedInputStruct
ldr r5, _0801F638
ldr r0, [r5]
movs r1, 0xE1
lsls r1, 2
adds r0, r1
movs r1, 0
movs r2, 0
bl sub_800641C
ldr r0, [r5]
movs r1, 0xD2
lsls r1, 2
adds r0, r1
bl sub_8013984
bl sub_801F690
bl sub_801F700
cmp r4, 0
beq _0801F632
ldr r0, [r5]
movs r1, 0xD2
lsls r1, 2
adds r0, r1
bl AddMenuCursorSprite
_0801F632:
pop {r4,r5}
pop {r0}
bx r0
.align 2, 0
_0801F638: .4byte gUnknown_203B274
thumb_func_end sub_801F5F0
thumb_func_start sub_801F63C
sub_801F63C:
push {r4-r6,lr}
ldr r5, _0801F688
ldr r2, [r5]
cmp r2, 0
beq _0801F680
movs r1, 0xDF
lsls r1, 2
adds r0, r2, r1
ldr r0, [r0]
lsls r1, r0, 1
adds r1, r0
lsls r1, 3
adds r1, r2, r1
movs r4, 0xE1
lsls r4, 2
adds r1, r4
ldr r0, _0801F68C
ldm r0!, {r2,r3,r6}
stm r1!, {r2,r3,r6}
ldm r0!, {r2,r3,r6}
stm r1!, {r2,r3,r6}
bl ResetUnusedInputStruct
ldr r0, [r5]
adds r0, r4
movs r1, 0x1
movs r2, 0x1
bl sub_800641C
ldr r0, [r5]
bl MemoryFree
movs r0, 0
str r0, [r5]
_0801F680:
pop {r4-r6}
pop {r0}
bx r0
.align 2, 0
_0801F688: .4byte gUnknown_203B274
_0801F68C: .4byte gUnknown_80DC2AC
thumb_func_end sub_801F63C
thumb_func_start sub_801F690
sub_801F690:
push {r4,r5,lr}
ldr r5, _0801F6F4
ldr r0, [r5]
ldr r1, _0801F6F8
adds r0, r1
movs r2, 0
ldrsh r0, [r0, r2]
movs r1, 0xC
bl sub_80095E4
adds r0, 0x2
lsls r0, 16
ldr r3, [r5]
movs r1, 0xDF
lsls r1, 2
adds r4, r3, r1
ldr r2, [r4]
lsls r1, r2, 1
adds r1, r2
lsls r1, 3
adds r1, r3, r1
ldr r2, _0801F6FC
adds r1, r2
asrs r2, r0, 16
lsrs r0, 16
strh r0, [r1]
ldr r1, [r4]
lsls r0, r1, 1
adds r0, r1
lsls r0, 3
adds r3, r0
adds r2, 0x2
movs r0, 0xE5
lsls r0, 2
adds r3, r0
strh r2, [r3]
bl ResetUnusedInputStruct
ldr r0, [r5]
movs r1, 0xE1
lsls r1, 2
adds r0, r1
movs r1, 0x1
movs r2, 0x1
bl sub_800641C
pop {r4,r5}
pop {r0}
bx r0
.align 2, 0
_0801F6F4: .4byte gUnknown_203B274
_0801F6F8: .4byte 0x00000362
_0801F6FC: .4byte 0x00000392
thumb_func_end sub_801F690
thumb_func_start sub_801F700
sub_801F700:
push {r4-r7,lr}
sub sp, 0xB4
ldr r6, _0801F7D4
ldr r0, [r6]
movs r4, 0xDF
lsls r4, 2
adds r0, r4
ldr r0, [r0]
bl sub_8008C54
ldr r0, [r6]
adds r0, r4
ldr r0, [r0]
bl sub_80073B8
add r5, sp, 0x34
ldr r1, _0801F7D8
ldr r0, [r6]
ldr r3, _0801F7DC
adds r2, r0, r3
movs r7, 0
ldrsh r2, [r2, r7]
adds r2, 0x1
adds r3, 0x2
adds r0, r3
movs r7, 0
ldrsh r3, [r0, r7]
adds r0, r5, 0
bl 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 PrintPokeNameToBuffer
ldr r2, [r6]
ldr r0, [r2]
cmp r0, 0x1
bne _0801FBD0
movs r1, 0xBE
lsls r1, 1
adds r0, r2, r1
str r7, [r0]
b _0801FBDE
.align 2, 0
_0801FBC0: .4byte gUnknown_203B27C
_0801FBC4: .4byte gUnknown_202E5D8
_0801FBC8: .4byte 0x00000155
_0801FBCC: .4byte gUnknown_202E1C8
_0801FBD0:
movs r3, 0xBE
lsls r3, 1
adds r1, r2, r3
movs r4, 0xB6
lsls r4, 1
adds r0, r2, r4
str r0, [r1]
_0801FBDE:
ldr r0, _0801FC34
bl GetDialogueSpriteDataPtr
ldr r2, _0801FC38
ldr r3, [r2]
movs r4, 0xB6
lsls r4, 1
adds r1, r3, r4
str r0, [r1]
adds r4, 0x4
adds r1, r3, r4
ldr r0, [r0, 0x4]
str r0, [r1]
movs r1, 0xBC
lsls r1, 1
adds r0, r3, r1
movs r1, 0
strb r1, [r0]
ldr r0, [r2]
ldr r3, _0801FC3C
adds r0, r3
strb r1, [r0]
ldr r0, [r2]
adds r4, 0xA
adds r0, r4
strb r1, [r0]
ldr r2, [r2]
movs r0, 0xBA
lsls r0, 1
adds r1, r2, r0
movs r0, 0x2
strh r0, [r1]
subs r3, 0x3
adds r1, r2, r3
movs r0, 0x8
strh r0, [r1]
movs r0, 0
bl sub_801FDA8
movs r0, 0x1
pop {r4-r7}
pop {r1}
bx r1
.align 2, 0
_0801FC34: .4byte 0x00000155
_0801FC38: .4byte gUnknown_203B27C
_0801FC3C: .4byte 0x00000179
thumb_func_end sub_801FB50
thumb_func_start sub_801FC40
sub_801FC40:
push {lr}
ldr r1, _0801FC5C
ldr r0, [r1]
ldr r0, [r0, 0x4]
adds r2, r1, 0
cmp r0, 0x22
bls _0801FC50
b _0801FD70
_0801FC50:
lsls r0, 2
ldr r1, _0801FC60
adds r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_0801FC5C: .4byte gUnknown_203B27C
_0801FC60: .4byte _0801FC64
.align 2, 0
_0801FC64:
.4byte _0801FCF0
.4byte _0801FCF0
.4byte _0801FCF6
.4byte _0801FD70
.4byte _0801FD70
.4byte _0801FD70
.4byte _0801FD70
.4byte _0801FCFC
.4byte _0801FD02
.4byte _0801FD70
.4byte _0801FD70
.4byte _0801FD70
.4byte _0801FD70
.4byte _0801FD50
.4byte _0801FD70
.4byte _0801FD08
.4byte _0801FD08
.4byte _0801FD0E
.4byte _0801FD14
.4byte _0801FD1A
.4byte _0801FD70
.4byte _0801FD20
.4byte _0801FD20
.4byte _0801FD26
.4byte _0801FD2C
.4byte _0801FD70
.4byte _0801FD70
.4byte _0801FD70
.4byte _0801FD70
.4byte _0801FD32
.4byte _0801FD38
.4byte _0801FD38
.4byte _0801FD3E
.4byte _0801FD44
.4byte _0801FD4A
_0801FCF0:
bl sub_8021154
b _0801FD74
_0801FCF6:
bl sub_80209AC
b _0801FD74
_0801FCFC:
bl sub_80209FC
b _0801FD74
_0801FD02:
bl sub_8020A34
b _0801FD74
_0801FD08:
bl sub_8020A80
b _0801FD74
_0801FD0E:
bl sub_8020B38
b _0801FD74
_0801FD14:
bl sub_8020C2C
b _0801FD74
_0801FD1A:
bl sub_8020C48
b _0801FD74
_0801FD20:
bl sub_8020C64
b _0801FD74
_0801FD26:
bl sub_8020CC0
b _0801FD74
_0801FD2C:
bl sub_8020D74
b _0801FD74
_0801FD32:
bl sub_8020D90
b _0801FD74
_0801FD38:
bl sub_8020DCC
b _0801FD74
_0801FD3E:
bl sub_8020EB4
b _0801FD74
_0801FD44:
bl sub_80210C8
b _0801FD74
_0801FD4A:
bl sub_80210E4
b _0801FD74
_0801FD50:
ldr r0, [r2]
ldrb r0, [r0, 0x15]
cmp r0, 0x1
bne _0801FD68
ldr r0, _0801FD6C
ldr r1, [r0]
movs r0, 0x98
lsls r0, 2
adds r1, r0
ldr r0, [r1]
subs r0, 0x96
str r0, [r1]
_0801FD68:
movs r0, 0x3
b _0801FD76
.align 2, 0
_0801FD6C: .4byte gTeamInventory_203B460
_0801FD70:
bl sub_8021130
_0801FD74:
movs r0, 0
_0801FD76:
pop {r1}
bx r1
thumb_func_end sub_801FC40
thumb_func_start sub_801FD7C
sub_801FD7C:
push {r4,lr}
ldr r4, _0801FDA4
ldr r0, [r4]
cmp r0, 0
beq _0801FD9C
movs r1, 0xB6
lsls r1, 1
adds r0, r1
ldr r0, [r0]
bl CloseFile
ldr r0, [r4]
bl MemoryFree
movs r0, 0
str r0, [r4]
_0801FD9C:
pop {r4}
pop {r0}
bx r0
.align 2, 0
_0801FDA4: .4byte gUnknown_203B27C
thumb_func_end sub_801FD7C
thumb_func_start sub_801FDA8
sub_801FDA8:
push {lr}
ldr r1, _0801FDBC
ldr r1, [r1]
str r0, [r1, 0x4]
bl sub_801FDC0
bl sub_801FF28
pop {r0}
bx r0
.align 2, 0
_0801FDBC: .4byte gUnknown_203B27C
thumb_func_end sub_801FDA8
thumb_func_start sub_801FDC0
sub_801FDC0:
push {r4-r7,lr}
mov r7, r8
push {r7}
ldr r4, _0801FDE8
ldr r0, [r4]
movs r5, 0xC0
lsls r5, 1
adds r0, r5
bl sub_8006518
ldr r0, [r4]
ldr r1, [r0, 0x4]
cmp r1, 0x11
beq _0801FE38
cmp r1, 0x11
bgt _0801FDEC
cmp r1, 0x2
beq _0801FDF6
b _0801FED4
.align 2, 0
_0801FDE8: .4byte gUnknown_203B27C
_0801FDEC:
cmp r1, 0x17
beq _0801FE6C
cmp r1, 0x20
beq _0801FE88
b _0801FED4
_0801FDF6:
adds r0, r5
movs r1, 0x80
strb r1, [r0]
ldr r0, [r4]
movs r2, 0xCC
lsls r2, 1
adds r0, r2
strb r1, [r0]
ldr r0, [r4]
movs r3, 0xD8
lsls r3, 1
adds r0, r3
strb r1, [r0]
ldr r1, [r4]
movs r6, 0xE4
lsls r6, 1
adds r1, r6
ldr r0, _0801FE34
ldm r0!, {r2,r3,r7}
stm r1!, {r2,r3,r7}
ldm r0!, {r2,r6,r7}
stm r1!, {r2,r6,r7}
bl ResetUnusedInputStruct
ldr r0, [r4]
adds r0, r5
movs r1, 0x1
movs r2, 0
bl sub_800641C
b _0801FF14
.align 2, 0
_0801FE34: .4byte gUnknown_80DC37C
_0801FE38:
bl sub_80205D0
ldr r2, [r4]
movs r0, 0xD8
lsls r0, 1
adds r2, r0
ldr r1, _0801FE68
ldm r1!, {r3,r5,r6}
stm r2!, {r3,r5,r6}
ldm r1!, {r3,r5,r7}
stm r2!, {r3,r5,r7}
ldr r1, [r4]
adds r0, r1, r0
adds r1, 0x7C
bl sub_8012CAC
bl ResetUnusedInputStruct
ldr r0, [r4]
movs r6, 0xC0
lsls r6, 1
adds r0, r6
b _0801FEC2
.align 2, 0
_0801FE68: .4byte gUnknown_80DC334
_0801FE6C:
bl sub_802069C
ldr r2, [r4]
movs r0, 0xD8
lsls r0, 1
adds r2, r0
ldr r1, _0801FE84
ldm r1!, {r3,r6,r7}
stm r2!, {r3,r6,r7}
ldm r1!, {r3,r6,r7}
stm r2!, {r3,r6,r7}
b _0801FEB0
.align 2, 0
_0801FE84: .4byte gUnknown_80DC334
_0801FE88:
bl CreateGulpinLinkMenu
ldr r1, [r4]
movs r7, 0xCC
lsls r7, 1
adds r1, r7
ldr r0, _0801FECC
ldm r0!, {r2,r3,r6}
stm r1!, {r2,r3,r6}
ldm r0!, {r2,r3,r7}
stm r1!, {r2,r3,r7}
ldr r2, [r4]
movs r0, 0xD8
lsls r0, 1
adds r2, r0
ldr r1, _0801FED0
ldm r1!, {r3,r6,r7}
stm r2!, {r3,r6,r7}
ldm r1!, {r3,r6,r7}
stm r2!, {r3,r6,r7}
_0801FEB0:
ldr r1, [r4]
adds r0, r1, r0
adds r1, 0x7C
bl sub_8012CAC
bl ResetUnusedInputStruct
ldr r0, [r4]
adds r0, r5
_0801FEC2:
movs r1, 0x1
movs r2, 0x1
bl sub_800641C
b _0801FF14
.align 2, 0
_0801FECC: .4byte gUnknown_80DC31C
_0801FED0: .4byte gUnknown_80DC34C
_0801FED4:
ldr r5, _0801FF20
mov r12, r5
movs r6, 0xC0
lsls r6, 1
mov r8, r6
ldr r4, _0801FF24
movs r3, 0
movs r2, 0x3
_0801FEE4:
mov r7, r12
ldr r1, [r7]
adds r1, r3
add r1, r8
adds r0, r4, 0
ldm r0!, {r5-r7}
stm r1!, {r5-r7}
ldm r0!, {r5-r7}
stm r1!, {r5-r7}
adds r3, 0x18
subs r2, 0x1
cmp r2, 0
bge _0801FEE4
bl ResetUnusedInputStruct
ldr r0, _0801FF20
ldr r0, [r0]
movs r1, 0xC0
lsls r1, 1
adds r0, r1
movs r1, 0x1
movs r2, 0x1
bl sub_800641C
_0801FF14:
pop {r3}
mov r8, r3
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
_0801FF20: .4byte gUnknown_203B27C
_0801FF24: .4byte gUnknown_80DC31C
thumb_func_end sub_801FDC0
thumb_func_start sub_801FF28
sub_801FF28:
push {r4,r5,lr}
sub sp, 0x14
ldr r1, _0801FF44
ldr r0, [r1]
ldr r0, [r0, 0x4]
adds r5, r1, 0
cmp r0, 0x23
bls _0801FF3A
b _08020562
_0801FF3A:
lsls r0, 2
ldr r1, _0801FF48
adds r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_0801FF44: .4byte gUnknown_203B27C
_0801FF48: .4byte _0801FF4C
.align 2, 0
_0801FF4C:
.4byte _0801FFDC
.4byte _08020018
.4byte _08020064
.4byte _0802006C
.4byte _08020090
.4byte _080200B4
.4byte _080200D8
.4byte _080200FC
.4byte _08020144
.4byte _0802018C
.4byte _080201B0
.4byte _080201D4
.4byte _080201F8
.4byte _08020562
.4byte _0802021C
.4byte _08020240
.4byte _0802024E
.4byte _08020256
.4byte _08020274
.4byte _08020282
.4byte _0802028E
.4byte _080202B0
.4byte _080202BE
.4byte _080202C6
.4byte _080202E4
.4byte _08020304
.4byte _08020344
.4byte _080203B0
.4byte _080203D4
.4byte _0802038C
.4byte _080203F8
.4byte _08020428
.4byte _08020434
.4byte _08020460
.4byte _08020478
.4byte _08020500
_0801FFDC:
ldr r0, [r5]
movs r4, 0x2
str r4, [r0, 0x6C]
bl CreateGulpinShopMenu
ldr r5, [r5]
str r4, [r5, 0x8]
ldr r2, _08020014
ldr r1, [r5]
movs r0, 0x64
muls r0, r1
adds r0, r2
ldr r0, [r0]
ldr r2, [r5, 0x6C]
adds r3, r5, 0
adds r3, 0x7C
adds r1, r5, 0
adds r1, 0xBC
str r1, [sp]
movs r1, 0x4
str r1, [sp, 0x4]
movs r1, 0
str r1, [sp, 0x8]
movs r4, 0xBE
lsls r4, 1
adds r1, r5, r4
b _0802004C
.align 2, 0
_08020014: .4byte gGulpinDialogue
_08020018:
bl CreateGulpinShopMenu
ldr r0, _0802005C
ldr r4, [r0]
movs r0, 0x2
str r0, [r4, 0x8]
ldr r1, _08020060
ldr r2, [r4]
movs r0, 0x64
muls r0, r2
adds r1, 0x4
adds r0, r1
ldr r0, [r0]
ldr r2, [r4, 0x6C]
adds r3, r4, 0
adds r3, 0x7C
adds r1, r4, 0
adds r1, 0xBC
str r1, [sp]
movs r1, 0x4
str r1, [sp, 0x4]
movs r1, 0
str r1, [sp, 0x8]
movs r5, 0xBE
lsls r5, 1
adds r1, r4, r5
_0802004C:
ldr r1, [r1]
str r1, [sp, 0xC]
movs r1, 0xC
str r1, [sp, 0x10]
movs r1, 0
bl sub_8014248
b _08020562
.align 2, 0
_0802005C: .4byte gUnknown_203B27C
_08020060: .4byte gGulpinDialogue
_08020064:
movs r0, 0x3
bl DrawTeamMoneyBox
b _08020562
_0802006C:
ldr r2, [r5]
movs r0, 0x1F
str r0, [r2, 0x8]
ldr r1, _0802008C
ldr r3, [r2]
movs r0, 0x64
muls r0, r3
adds r1, 0x8
adds r0, r1
ldr r0, [r0]
movs r1, 0xBE
lsls r1, 1
adds r2, r1
ldr r2, [r2]
b _0802052C
.align 2, 0
_0802008C: .4byte gGulpinDialogue
_08020090:
ldr r2, [r5]
movs r0, 0x1F
str r0, [r2, 0x8]
ldr r1, _080200B0
ldr r3, [r2]
movs r0, 0x64
muls r0, r3
adds r1, 0xC
adds r0, r1
ldr r0, [r0]
movs r4, 0xBE
lsls r4, 1
adds r2, r4
ldr r2, [r2]
b _0802052C
.align 2, 0
_080200B0: .4byte gGulpinDialogue
_080200B4:
ldr r2, [r5]
movs r0, 0x1F
str r0, [r2, 0x8]
ldr r1, _080200D4
ldr r3, [r2]
movs r0, 0x64
muls r0, r3
adds r1, 0x10
adds r0, r1
ldr r0, [r0]
movs r5, 0xBE
lsls r5, 1
adds r2, r5
ldr r2, [r2]
b _0802052C
.align 2, 0
_080200D4: .4byte gGulpinDialogue
_080200D8:
ldr r2, [r5]
movs r0, 0x1F
str r0, [r2, 0x8]
ldr r1, _080200F8
ldr r3, [r2]
movs r0, 0x64
muls r0, r3
adds r1, 0x14
adds r0, r1
ldr r0, [r0]
movs r1, 0xBE
lsls r1, 1
adds r2, r1
ldr r2, [r2]
b _0802052C
.align 2, 0
_080200F8: .4byte gGulpinDialogue
_080200FC:
bl sub_8020900
ldr r1, _0802013C
ldr r0, _08020140
ldr r4, [r0]
ldr r2, [r4]
movs r0, 0x64
muls r0, r2
adds r1, 0x18
adds r0, r1
ldr r0, [r0]
adds r3, r4, 0
adds r3, 0x7C
adds r1, r4, 0
adds r1, 0xBC
str r1, [sp]
movs r1, 0x4
str r1, [sp, 0x4]
movs r1, 0
str r1, [sp, 0x8]
movs r2, 0xBE
lsls r2, 1
adds r1, r4, r2
ldr r1, [r1]
str r1, [sp, 0xC]
movs r1, 0xC
str r1, [sp, 0x10]
movs r1, 0
movs r2, 0x10
bl sub_8014248
b _08020562
.align 2, 0
_0802013C: .4byte gGulpinDialogue
_08020140: .4byte gUnknown_203B27C
_08020144:
bl sub_8020950
ldr r1, _08020184
ldr r0, _08020188
ldr r4, [r0]
ldr r2, [r4]
movs r0, 0x64
muls r0, r2
adds r1, 0x54
adds r0, r1
ldr r0, [r0]
adds r3, r4, 0
adds r3, 0x7C
adds r1, r4, 0
adds r1, 0xBC
str r1, [sp]
movs r1, 0x4
str r1, [sp, 0x4]
movs r1, 0
str r1, [sp, 0x8]
movs r5, 0xBE
lsls r5, 1
adds r1, r4, r5
ldr r1, [r1]
str r1, [sp, 0xC]
movs r1, 0xC
str r1, [sp, 0x10]
movs r1, 0
movs r2, 0xD
bl sub_8014248
b _08020562
.align 2, 0
_08020184: .4byte gGulpinDialogue
_08020188: .4byte gUnknown_203B27C
_0802018C:
ldr r2, [r5]
movs r0, 0x1
str r0, [r2, 0x8]
ldr r1, _080201AC
ldr r3, [r2]
movs r0, 0x64
muls r0, r3
adds r1, 0x58
adds r0, r1
ldr r0, [r0]
movs r1, 0xBE
lsls r1, 1
adds r2, r1
ldr r2, [r2]
b _0802052C
.align 2, 0
_080201AC: .4byte gGulpinDialogue
_080201B0:
ldr r2, [r5]
movs r0, 0x1
str r0, [r2, 0x8]
ldr r1, _080201D0
ldr r3, [r2]
movs r0, 0x64
muls r0, r3
adds r1, 0x5C
adds r0, r1
ldr r0, [r0]
movs r4, 0xBE
lsls r4, 1
adds r2, r4
ldr r2, [r2]
b _0802052C
.align 2, 0
_080201D0: .4byte gGulpinDialogue
_080201D4:
ldr r2, [r5]
movs r0, 0x1
str r0, [r2, 0x8]
ldr r1, _080201F4
ldr r3, [r2]
movs r0, 0x64
muls r0, r3
adds r1, 0x60
adds r0, r1
ldr r0, [r0]
movs r5, 0xBE
lsls r5, 1
adds r2, r5
ldr r2, [r2]
b _0802052C
.align 2, 0
_080201F4: .4byte gGulpinDialogue
_080201F8:
ldr r2, [r5]
movs r0, 0xD
str r0, [r2, 0x8]
ldr r1, _08020218
ldr r3, [r2]
movs r0, 0x64
muls r0, r3
adds r1, 0x1C
adds r0, r1
ldr r0, [r0]
movs r1, 0xBE
lsls r1, 1
adds r2, r1
ldr r2, [r2]
b _0802052C
.align 2, 0
_08020218: .4byte gGulpinDialogue
_0802021C:
ldr r2, [r5]
movs r0, 0xF
str r0, [r2, 0x8]
ldr r1, _0802023C
ldr r3, [r2]
movs r0, 0x64
muls r0, r3
adds r1, 0x20
adds r0, r1
ldr r0, [r0]
movs r4, 0xBE
lsls r4, 1
adds r2, r4
ldr r2, [r2]
b _0802052C
.align 2, 0
_0802023C: .4byte gGulpinDialogue
_08020240:
movs r0, 0x2
movs r1, 0
movs r2, 0
movs r3, 0xA
bl sub_8023868
b _08020562
_0802024E:
movs r0, 0x1
bl sub_8023B7C
b _08020562
_08020256:
bl sub_8023DA4
ldr r0, _08020270
ldr r2, [r0]
adds r0, r2, 0
adds r0, 0xCC
adds r1, r2, 0
adds r1, 0x7C
adds r3, r2, 0
adds r3, 0xBC
ldr r2, [r2, 0x70]
b _0802044C
.align 2, 0
_08020270: .4byte gUnknown_203B27C
_08020274:
ldr r0, [r5]
movs r5, 0xC
ldrsh r0, [r0, r5]
movs r1, 0x2
bl sub_8024458
b _08020562
_08020282:
ldr r0, [r5]
movs r1, 0xC
ldrsh r0, [r0, r1]
bl sub_801BEEC
b _08020562
_0802028E:
ldr r2, [r5]
movs r0, 0x15
str r0, [r2, 0x8]
ldr r1, _080202AC
ldr r3, [r2]
movs r0, 0x64
muls r0, r3
adds r1, 0x24
adds r0, r1
ldr r0, [r0]
movs r4, 0xBE
lsls r4, 1
adds r2, r4
ldr r2, [r2]
b _0802052C
.align 2, 0
_080202AC: .4byte gGulpinDialogue
_080202B0:
ldr r0, [r5]
movs r5, 0xC
ldrsh r0, [r0, r5]
movs r1, 0
bl sub_801F428
b _08020562
_080202BE:
movs r0, 0x1
bl sub_801F5F0
b _08020562
_080202C6:
bl sub_801F700
ldr r0, _080202E0
ldr r2, [r0]
adds r0, r2, 0
adds r0, 0xCC
adds r1, r2, 0
adds r1, 0x7C
adds r3, r2, 0
adds r3, 0xBC
ldr r2, [r2, 0x74]
b _0802044C
.align 2, 0
_080202E0: .4byte gUnknown_203B27C
_080202E4:
ldr r0, [r5]
ldrh r1, [r0, 0x1C]
adds r0, 0x64
strh r1, [r0]
movs r2, 0x1
adds r4, r5, 0
movs r3, 0
_080202F2:
ldr r0, [r4]
lsls r1, r2, 1
adds r0, 0x64
adds r0, r1
strh r3, [r0]
adds r2, 0x1
cmp r2, 0x3
ble _080202F2
b _0802046E
_08020304:
ldr r1, [r5]
adds r0, r1, 0
adds r0, 0x24
ldr r1, [r1, 0x10]
adds r1, 0x2C
bl sub_8094060
ldr r1, [r5]
movs r0, 0x10
str r0, [r1, 0x8]
ldr r0, _0802033C
ldrh r1, [r1, 0x1E]
bl sub_8092C84
ldr r1, _08020340
ldr r2, [r5]
ldr r3, [r2]
movs r0, 0x64
muls r0, r3
adds r1, 0x28
adds r0, r1
ldr r0, [r0]
movs r1, 0xBE
lsls r1, 1
adds r2, r1
ldr r2, [r2]
b _0802052C
.align 2, 0
_0802033C: .4byte gAvailablePokemonNames
_08020340: .4byte gGulpinDialogue
_08020344:
ldr r1, [r5]
adds r0, r1, 0
adds r0, 0x24
ldr r1, [r1, 0x10]
adds r1, 0x2C
bl sub_8094060
ldr r3, [r5]
movs r0, 0x10
str r0, [r3, 0x8]
ldrb r0, [r3, 0x14]
cmp r0, 0
beq _08020370
ldr r1, _0802036C
ldr r2, [r3]
movs r0, 0x64
muls r0, r2
adds r1, 0x38
b _08020520
.align 2, 0
_0802036C: .4byte gGulpinDialogue
_08020370:
ldr r1, _08020388
ldr r2, [r3]
movs r0, 0x64
muls r0, r2
adds r1, 0x34
adds r0, r1
ldr r0, [r0]
movs r4, 0xBE
lsls r4, 1
adds r1, r3, r4
b _0802052A
.align 2, 0
_08020388: .4byte gGulpinDialogue
_0802038C:
ldr r2, [r5]
ldr r0, [r2]
cmp r0, 0
bne _080203A2
movs r5, 0xC
ldrsh r1, [r2, r5]
adds r2, 0x24
movs r0, 0
bl DisplayGulpinDialogueSprite
b _08020562
_080203A2:
movs r0, 0xC
ldrsh r1, [r2, r0]
adds r2, 0x24
movs r0, 0x1
bl DisplayGulpinDialogueSprite
b _08020562
_080203B0:
ldr r2, [r5]
movs r0, 0x10
str r0, [r2, 0x8]
ldr r1, _080203D0
ldr r3, [r2]
movs r0, 0x64
muls r0, r3
adds r1, 0x3C
adds r0, r1
ldr r0, [r0]
movs r1, 0xBE
lsls r1, 1
adds r2, r1
ldr r2, [r2]
b _0802052C
.align 2, 0
_080203D0: .4byte gGulpinDialogue
_080203D4:
ldr r2, [r5]
movs r0, 0x10
str r0, [r2, 0x8]
ldr r1, _080203F4
ldr r3, [r2]
movs r0, 0x64
muls r0, r3
adds r1, 0x40
adds r0, r1
ldr r0, [r0]
movs r4, 0xBE
lsls r4, 1
adds r2, r4
ldr r2, [r2]
b _0802052C
.align 2, 0
_080203F4: .4byte gGulpinDialogue
_080203F8:
ldr r1, [r5]
adds r0, r1, 0
adds r0, 0x24
ldr r1, [r1, 0x10]
adds r1, 0x2C
bl sub_809401C
ldr r0, [r5]
movs r5, 0xC
ldrsh r1, [r0, r5]
adds r2, r0, 0
adds r2, 0x24
ldrb r3, [r0, 0x15]
ldr r0, _08020424
str r0, [sp]
movs r0, 0
str r0, [sp, 0x4]
movs r0, 0x1
bl sub_801EE10
b _08020562
.align 2, 0
_08020424: .4byte gUnknown_80DC394
_08020428:
ldr r0, [r5]
ldrb r1, [r0, 0x15]
movs r0, 0x1
bl sub_801F1B0
b _08020562
_08020434:
movs r0, 0
bl sub_801F280
ldr r0, _0802045C
ldr r2, [r0]
adds r0, r2, 0
adds r0, 0xCC
adds r1, r2, 0
adds r1, 0x7C
adds r3, r2, 0
adds r3, 0xBC
ldr r2, [r2, 0x78]
_0802044C:
str r2, [sp]
movs r2, 0x2
str r2, [sp, 0x4]
movs r2, 0
bl sub_8012D60
b _08020562
.align 2, 0
_0802045C: .4byte gUnknown_203B27C
_08020460:
ldr r2, [r5]
ldr r0, [r2, 0x18]
adds r1, r2, 0
adds r1, 0x24
adds r2, 0x64
bl sub_8093560
_0802046E:
ldr r0, [r5]
adds r0, 0x64
bl sub_801F808
b _08020562
_08020478:
bl sub_80208B0
ldr r0, _080204B8
ldr r4, _080204BC
ldr r1, [r4]
ldrh r1, [r1, 0x20]
bl sub_8092C84
ldr r4, [r4]
ldrb r5, [r4, 0x14]
cmp r5, 0
beq _080204C4
ldr r1, _080204C0
ldr r2, [r4]
movs r0, 0x64
muls r0, r2
adds r1, 0x48
adds r0, r1
ldr r0, [r0]
adds r3, r4, 0
adds r3, 0x7C
adds r1, r4, 0
adds r1, 0xBC
str r1, [sp]
movs r1, 0x4
str r1, [sp, 0x4]
movs r1, 0
str r1, [sp, 0x8]
movs r2, 0xBE
lsls r2, 1
adds r1, r4, r2
b _080204E8
.align 2, 0
_080204B8: .4byte gUnknown_202DFE8
_080204BC: .4byte gUnknown_203B27C
_080204C0: .4byte gGulpinDialogue
_080204C4:
ldr r1, _080204FC
ldr r2, [r4]
movs r0, 0x64
muls r0, r2
adds r1, 0x44
adds r0, r1
ldr r0, [r0]
adds r3, r4, 0
adds r3, 0x7C
adds r1, r4, 0
adds r1, 0xBC
str r1, [sp]
movs r1, 0x4
str r1, [sp, 0x4]
str r5, [sp, 0x8]
movs r5, 0xBE
lsls r5, 1
adds r1, r4, r5
_080204E8:
ldr r1, [r1]
str r1, [sp, 0xC]
movs r1, 0xC
str r1, [sp, 0x10]
movs r1, 0
movs r2, 0x11
bl sub_8014248
b _08020562
.align 2, 0
_080204FC: .4byte gGulpinDialogue
_08020500:
ldr r1, [r5]
movs r0, 0x1F
str r0, [r1, 0x8]
ldr r0, _08020538
ldrh r1, [r1, 0x20]
bl sub_8092C84
ldr r3, [r5]
ldrb r0, [r3, 0x14]
cmp r0, 0
beq _08020544
ldr r1, _0802053C
ldr r2, [r3]
movs r0, 0x64
muls r0, r2
adds r1, 0x50
_08020520:
adds r0, r1
ldr r0, [r0]
movs r2, 0xBE
lsls r2, 1
adds r1, r3, r2
_0802052A:
ldr r2, [r1]
_0802052C:
ldr r3, _08020540
movs r1, 0
bl sub_80141B4
b _08020562
.align 2, 0
_08020538: .4byte gUnknown_202DFE8
_0802053C: .4byte gGulpinDialogue
_08020540: .4byte 0x0000010d
_08020544:
ldr r1, _0802056C
ldr r2, [r3]
movs r0, 0x64
muls r0, r2
adds r1, 0x4C
adds r0, r1
ldr r0, [r0]
movs r4, 0xBE
lsls r4, 1
adds r1, r3, r4
ldr r2, [r1]
ldr r3, _08020570
movs r1, 0
bl sub_80141B4
_08020562:
add sp, 0x14
pop {r4,r5}
pop {r0}
bx r0
.align 2, 0
_0802056C: .4byte gGulpinDialogue
_08020570: .4byte 0x0000010d
thumb_func_end sub_801FF28
thumb_func_start CreateGulpinShopMenu
CreateGulpinShopMenu:
push {r4,lr}
ldr r4, _080205C0
ldr r0, [r4]
adds r0, 0xBC
movs r1, 0
movs r2, 0x10
bl MemoryFill16
ldr r4, [r4]
movs r3, 0
ldr r0, _080205C4
str r0, [r4, 0x7C]
adds r1, r4, 0
adds r1, 0x80
movs r0, 0x2
str r0, [r1]
movs r2, 0x1
adds r1, 0x4
ldr r0, _080205C8
str r0, [r1]
adds r1, 0x4
movs r0, 0xB
str r0, [r1]
adds r1, 0x4
ldr r0, _080205CC
ldr r0, [r0]
str r0, [r1]
adds r0, r4, 0
adds r0, 0x90
str r2, [r0]
adds r0, 0x4
str r3, [r0]
adds r0, 0x4
str r2, [r0]
pop {r4}
pop {r0}
bx r0
.align 2, 0
_080205C0: .4byte gUnknown_203B27C
_080205C4: .4byte gGulpinProceed
_080205C8: .4byte gGulpinInfo
_080205CC: .4byte gUnknown_80D4934
thumb_func_end CreateGulpinShopMenu
thumb_func_start sub_80205D0
sub_80205D0:
push {r4-r7,lr}
ldr r4, _08020660
ldr r0, [r4]
adds r0, 0xBC
movs r1, 0
movs r2, 0x10
bl MemoryFill16
ldr r0, [r4]
mov r12, r0
movs r5, 0
ldr r0, _08020664
mov r1, r12
str r0, [r1, 0x7C]
mov r2, r12
adds r2, 0x80
movs r0, 0x4
str r0, [r2]
movs r3, 0x1
adds r1, 0x84
ldr r0, _08020668
str r0, [r1]
adds r1, 0x4
movs r0, 0xB
str r0, [r1]
adds r1, 0x4
ldr r0, _0802066C
str r0, [r1]
adds r1, 0x4
movs r0, 0xC
str r0, [r1]
movs r6, 0x3
adds r1, 0x4
ldr r0, _08020670
str r0, [r1]
mov r0, r12
adds r0, 0x98
str r6, [r0]
movs r6, 0x4
adds r0, 0x4
str r5, [r0]
adds r0, 0x4
str r3, [r0]
mov r3, r12
adds r3, 0xBC
_0802062A:
ldrh r0, [r3]
cmp r0, 0
bne _0802063A
ldr r1, [r2]
mov r7, r12
ldr r0, [r7, 0x70]
cmp r1, r0
beq _08020696
_0802063A:
adds r2, 0x8
adds r3, 0x2
adds r5, 0x1
cmp r5, r6
blt _0802062A
movs r5, 0
cmp r5, r6
bge _08020696
ldr r1, [r4]
adds r0, r1, 0
adds r0, 0xBC
ldrh r0, [r0]
cmp r0, 0
bne _08020674
adds r0, r1, 0
adds r0, 0x80
ldr r0, [r0]
str r0, [r1, 0x70]
b _08020696
.align 2, 0
_08020660: .4byte gUnknown_203B27C
_08020664: .4byte gUnknown_80DC3D8
_08020668: .4byte gUnknown_80DC3E0
_0802066C: .4byte gUnknown_80DC3E8
_08020670: .4byte gUnknown_80DC3F4
_08020674:
adds r5, 0x1
cmp r5, r6
bge _08020696
ldr r2, [r4]
lsls r0, r5, 1
adds r1, r2, 0
adds r1, 0xBC
adds r1, r0
ldrh r0, [r1]
cmp r0, 0
bne _08020674
lsls r0, r5, 3
adds r1, r2, 0
adds r1, 0x80
adds r1, r0
ldr r0, [r1]
str r0, [r2, 0x70]
_08020696:
pop {r4-r7}
pop {r0}
bx r0
thumb_func_end sub_80205D0
thumb_func_start sub_802069C
sub_802069C:
push {r4-r7,lr}
ldr r4, _08020718
ldr r0, [r4]
adds r0, 0xBC
movs r1, 0
movs r2, 0x10
bl MemoryFill16
ldr r0, [r4]
mov r12, r0
movs r5, 0
ldr r0, _0802071C
mov r1, r12
str r0, [r1, 0x7C]
mov r3, r12
adds r3, 0x80
movs r0, 0x3
str r0, [r3]
movs r2, 0x1
adds r1, 0x84
ldr r0, _08020720
ldr r0, [r0]
str r0, [r1]
adds r1, 0x4
movs r0, 0xB
str r0, [r1]
movs r6, 0x2
mov r0, r12
adds r0, 0x8C
str r5, [r0]
adds r0, 0x4
str r2, [r0]
mov r2, r12
adds r2, 0xBC
_080206E0:
ldrh r0, [r2]
cmp r0, 0
bne _080206F0
ldr r1, [r3]
mov r7, r12
ldr r0, [r7, 0x74]
cmp r1, r0
beq _08020746
_080206F0:
adds r3, 0x8
adds r2, 0x2
adds r5, 0x1
cmp r5, r6
blt _080206E0
movs r5, 0
cmp r5, r6
bge _08020746
ldr r1, [r4]
adds r0, r1, 0
adds r0, 0xBC
ldrh r0, [r0]
cmp r0, 0
bne _08020724
adds r0, r1, 0
adds r0, 0x80
ldr r0, [r0]
str r0, [r1, 0x74]
b _08020746
.align 2, 0
_08020718: .4byte gUnknown_203B27C
_0802071C: .4byte gUnknown_80DC3F4
_08020720: .4byte gUnknown_80D4970
_08020724:
adds r5, 0x1
cmp r5, r6
bge _08020746
ldr r2, [r4]
lsls r0, r5, 1
adds r1, r2, 0
adds r1, 0xBC
adds r1, r0
ldrh r0, [r1]
cmp r0, 0
bne _08020724
lsls r0, r5, 3
adds r1, r2, 0
adds r1, 0x80
adds r1, r0
ldr r0, [r1]
str r0, [r2, 0x74]
_08020746:
pop {r4-r7}
pop {r0}
bx r0
thumb_func_end sub_802069C
thumb_func_start CreateGulpinLinkMenu
CreateGulpinLinkMenu:
push {r4-r7,lr}
movs r7, 0
ldr r4, _08020780
ldr r0, [r4]
adds r0, 0xBC
movs r1, 0
movs r2, 0x10
bl MemoryFill16
ldr r1, [r4]
ldrb r0, [r1, 0x16]
cmp r0, 0
beq _0802079C
ldr r0, [r1, 0x18]
adds r1, 0x24
bl sub_80932E0
lsls r0, 24
cmp r0, 0
beq _08020788
ldr r0, [r4]
ldr r1, _08020784
str r1, [r0, 0x7C]
adds r0, 0x80
movs r1, 0x6
b _08020792
.align 2, 0
_08020780: .4byte gUnknown_203B27C
_08020784: .4byte gGulpinDeselect
_08020788:
ldr r0, [r4]
ldr r1, _08020798
str r1, [r0, 0x7C]
adds r0, 0x80
movs r1, 0x5
_08020792:
str r1, [r0]
mov r12, r4
b _080207CA
.align 2, 0
_08020798: .4byte gGulpinSet
_0802079C:
ldr r0, [r1, 0x18]
adds r1, 0x24
bl sub_80932FC
lsls r0, 24
cmp r0, 0
beq _080207B4
ldr r1, [r4]
ldr r0, _080207B0
b _080207B8
.align 2, 0
_080207B0: .4byte gGulpinDeselect
_080207B4:
ldr r1, [r4]
ldr r0, _0802086C
_080207B8:
str r0, [r1, 0x7C]
ldr r2, _08020870
ldr r0, [r2]
lsls r1, r7, 3
adds r0, 0x80
adds r0, r1
movs r1, 0x7
str r1, [r0]
mov r12, r2
_080207CA:
adds r7, 0x1
mov r0, r12
ldr r4, [r0]
lsls r1, r7, 3
adds r3, r4, 0
adds r3, 0x7C
adds r2, r3, r1
ldr r0, _08020874
str r0, [r2]
adds r6, r4, 0
adds r6, 0x80
adds r1, r6, r1
movs r0, 0x8
str r0, [r1]
adds r7, 0x1
lsls r1, r7, 3
adds r2, r3, r1
ldr r0, _08020878
str r0, [r2]
adds r1, r6, r1
movs r0, 0x9
str r0, [r1]
adds r7, 0x1
lsls r1, r7, 3
adds r2, r3, r1
ldr r0, _0802087C
str r0, [r2]
adds r1, r6, r1
movs r0, 0xA
str r0, [r1]
adds r7, 0x1
lsls r1, r7, 3
adds r2, r3, r1
ldr r0, _08020880
ldr r0, [r0]
str r0, [r2]
adds r1, r6, r1
movs r0, 0xB
str r0, [r1]
adds r7, 0x1
lsls r1, r7, 3
adds r3, r1
movs r0, 0
str r0, [r3]
adds r1, r6, r1
movs r0, 0x1
str r0, [r1]
movs r3, 0
cmp r3, r7
bge _0802084C
adds r5, r4, 0
adds r4, 0xBC
adds r2, r6, 0
_08020834:
ldrh r0, [r4]
cmp r0, 0
bne _08020842
ldr r1, [r2]
ldr r0, [r5, 0x78]
cmp r1, r0
beq _080208A8
_08020842:
adds r4, 0x2
adds r2, 0x8
adds r3, 0x1
cmp r3, r7
blt _08020834
_0802084C:
movs r3, 0
cmp r3, r7
bge _080208A8
mov r0, r12
ldr r1, [r0]
adds r0, r1, 0
adds r0, 0xBC
ldrh r0, [r0]
cmp r0, 0
bne _08020884
adds r0, r1, 0
adds r0, 0x80
ldr r0, [r0]
str r0, [r1, 0x78]
b _080208A8
.align 2, 0
_0802086C: .4byte gGulpinSet
_08020870: .4byte gUnknown_203B27C
_08020874: .4byte gGulpinLink
_08020878: .4byte gGulpinDelink
_0802087C: .4byte gGulpinForget
_08020880: .4byte gUnknown_80D4970
_08020884:
adds r3, 0x1
cmp r3, r7
bge _080208A8
mov r0, r12
ldr r2, [r0]
lsls r0, r3, 1
adds r1, r2, 0
adds r1, 0xBC
adds r1, r0
ldrh r0, [r1]
cmp r0, 0
bne _08020884
lsls r0, r3, 3
adds r1, r2, 0
adds r1, 0x80
adds r1, r0
ldr r0, [r1]
str r0, [r2, 0x78]
_080208A8:
pop {r4-r7}
pop {r0}
bx r0
thumb_func_end CreateGulpinLinkMenu
thumb_func_start sub_80208B0
sub_80208B0:
push {r4,lr}
ldr r4, _080208F4
ldr r0, [r4]
adds r0, 0xBC
movs r1, 0
movs r2, 0x10
bl MemoryFill16
ldr r4, [r4]
movs r3, 0
ldr r0, _080208F8
ldr r0, [r0]
str r0, [r4, 0x7C]
adds r1, r4, 0
adds r1, 0x80
movs r0, 0x10
str r0, [r1]
movs r2, 0x1
adds r1, 0x4
ldr r0, _080208FC
ldr r0, [r0]
str r0, [r1]
adds r1, 0x4
movs r0, 0x11
str r0, [r1]
adds r0, r4, 0
adds r0, 0x8C
str r3, [r0]
adds r0, 0x4
str r2, [r0]
pop {r4}
pop {r0}
bx r0
.align 2, 0
_080208F4: .4byte gUnknown_203B27C
_080208F8: .4byte gUnknown_80D4920
_080208FC: .4byte gUnknown_80D4928
thumb_func_end sub_80208B0
thumb_func_start sub_8020900
sub_8020900:
push {r4,lr}
ldr r4, _08020944
ldr r0, [r4]
adds r0, 0xBC
movs r1, 0
movs r2, 0x10
bl MemoryFill16
ldr r3, [r4]
movs r2, 0
ldr r0, _08020948
ldr r0, [r0]
str r0, [r3, 0x7C]
adds r1, r3, 0
adds r1, 0x80
movs r0, 0x10
str r0, [r1]
adds r1, 0x4
ldr r0, _0802094C
ldr r0, [r0]
str r0, [r1]
adds r1, 0x4
movs r0, 0x11
str r0, [r1]
adds r0, r3, 0
adds r0, 0x8C
str r2, [r0]
adds r1, 0x8
movs r0, 0x1
negs r0, r0
str r0, [r1]
pop {r4}
pop {r0}
bx r0
.align 2, 0
_08020944: .4byte gUnknown_203B27C
_08020948: .4byte gUnknown_80D4920
_0802094C: .4byte gUnknown_80D4928
thumb_func_end sub_8020900
thumb_func_start sub_8020950
sub_8020950:
push {r4,lr}
ldr r4, _0802099C
ldr r0, [r4]
adds r0, 0xBC
movs r1, 0
movs r2, 0x10
bl MemoryFill16
ldr r4, [r4]
movs r3, 0
ldr r0, _080209A0
str r0, [r4, 0x7C]
adds r1, r4, 0
adds r1, 0x80
movs r0, 0xD
str r0, [r1]
movs r2, 0x1
adds r1, 0x4
ldr r0, _080209A4
str r0, [r1]
adds r1, 0x4
movs r0, 0xE
str r0, [r1]
adds r1, 0x4
ldr r0, _080209A8
str r0, [r1]
adds r1, 0x4
movs r0, 0xF
str r0, [r1]
adds r0, r4, 0
adds r0, 0x94
str r3, [r0]
adds r0, 0x4
str r2, [r0]
pop {r4}
pop {r0}
bx r0
.align 2, 0
_0802099C: .4byte gUnknown_203B27C
_080209A0: .4byte gUnknown_80DC428
_080209A4: .4byte gUnknown_80DC438
_080209A8: .4byte gUnknown_80DC448
thumb_func_end sub_8020950
thumb_func_start sub_80209AC
sub_80209AC:
push {lr}
sub sp, 0x4
mov r0, sp
bl sub_80144A4
cmp r0, 0
bne _080209F4
ldr r0, _080209D4
ldr r1, [r0]
ldr r0, [sp]
str r0, [r1, 0x6C]
ldr r0, [sp]
cmp r0, 0x2
beq _080209DE
cmp r0, 0x2
bgt _080209D8
cmp r0, 0x1
beq _080209EE
b _080209F4
.align 2, 0
_080209D4: .4byte gUnknown_203B27C
_080209D8:
cmp r0, 0xB
beq _080209E6
b _080209F4
_080209DE:
movs r0, 0xE
bl sub_801FDA8
b _080209F4
_080209E6:
movs r0, 0x8
bl sub_801FDA8
b _080209F4
_080209EE:
movs r0, 0xC
bl sub_801FDA8
_080209F4:
add sp, 0x4
pop {r0}
bx r0
thumb_func_end sub_80209AC
thumb_func_start sub_80209FC
sub_80209FC:
push {lr}
sub sp, 0x4
mov r0, sp
bl sub_80144A4
cmp r0, 0
bne _08020A2E
ldr r0, [sp]
cmp r0, 0x10
beq _08020A20
cmp r0, 0x10
bgt _08020A1A
cmp r0, 0x1
beq _08020A28
b _08020A2E
_08020A1A:
cmp r0, 0x11
beq _08020A28
b _08020A2E
_08020A20:
movs r0, 0xE
bl sub_801FDA8
b _08020A2E
_08020A28:
movs r0, 0xC
bl sub_801FDA8
_08020A2E:
add sp, 0x4
pop {r0}
bx r0
thumb_func_end sub_80209FC
thumb_func_start sub_8020A34
sub_8020A34:
push {lr}
sub sp, 0x4
mov r0, sp
bl sub_80144A4
cmp r0, 0
bne _08020A7A
ldr r0, [sp]
cmp r0, 0xD
beq _08020A5C
cmp r0, 0xD
bgt _08020A52
cmp r0, 0x1
beq _08020A74
b _08020A7A
_08020A52:
cmp r0, 0xE
beq _08020A64
cmp r0, 0xF
beq _08020A6C
b _08020A7A
_08020A5C:
movs r0, 0x9
bl sub_801FDA8
b _08020A7A
_08020A64:
movs r0, 0xA
bl sub_801FDA8
b _08020A7A
_08020A6C:
movs r0, 0xB
bl sub_801FDA8
b _08020A7A
_08020A74:
movs r0, 0x1
bl sub_801FDA8
_08020A7A:
add sp, 0x4
pop {r0}
bx r0
thumb_func_end sub_8020A34
thumb_func_start sub_8020A80
sub_8020A80:
push {r4,lr}
movs r0, 0x1
bl sub_8023A94
cmp r0, 0x4
bhi _08020B32
lsls r0, 2
ldr r1, _08020A98
adds r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_08020A98: .4byte _08020A9C
.align 2, 0
_08020A9C:
.4byte _08020B32
.4byte _08020B32
.4byte _08020B28
.4byte _08020AB0
.4byte _08020AEC
_08020AB0:
bl sub_8023B44
ldr r4, _08020AE0
ldr r1, [r4]
strh r0, [r1, 0xC]
ldr r3, _08020AE4
movs r0, 0xC
ldrsh r2, [r1, r0]
movs r0, 0x58
muls r2, r0
ldr r0, [r3]
adds r0, r2
str r0, [r1, 0x10]
ldrb r0, [r0, 0x2]
strb r0, [r1, 0x16]
ldr r0, _08020AE8
ldr r1, [r4]
ldr r1, [r1, 0x10]
bl PrintPokeNameToBuffer
movs r0, 0x11
bl sub_801FDA8
b _08020B32
.align 2, 0
_08020AE0: .4byte gUnknown_203B27C
_08020AE4: .4byte gRecruitedPokemonRef
_08020AE8: .4byte gUnknown_202E128
_08020AEC:
bl sub_8023B44
ldr r4, _08020B1C
ldr r1, [r4]
strh r0, [r1, 0xC]
ldr r3, _08020B20
movs r0, 0xC
ldrsh r2, [r1, r0]
movs r0, 0x58
muls r2, r0
ldr r0, [r3]
adds r0, r2
str r0, [r1, 0x10]
ldrb r0, [r0, 0x2]
strb r0, [r1, 0x16]
ldr r0, _08020B24
ldr r1, [r4]
ldr r1, [r1, 0x10]
bl PrintPokeNameToBuffer
movs r0, 0x12
bl sub_801FDA8
b _08020B32
.align 2, 0
_08020B1C: .4byte gUnknown_203B27C
_08020B20: .4byte gRecruitedPokemonRef
_08020B24: .4byte gUnknown_202E128
_08020B28:
bl sub_8023C60
movs r0, 0x7
bl sub_801FDA8
_08020B32:
pop {r4}
pop {r0}
bx r0
thumb_func_end sub_8020A80
thumb_func_start sub_8020B38
sub_8020B38:
push {r4,lr}
sub sp, 0x4
movs r0, 0
str r0, [sp]
bl sub_8023A94
ldr r4, _08020B7C
ldr r0, [r4]
adds r0, 0xCC
bl sub_8012FD8
lsls r0, 24
cmp r0, 0
bne _08020B68
ldr r0, [r4]
adds r0, 0xCC
mov r1, sp
bl sub_8013114
ldr r1, [sp]
cmp r1, 0x1
beq _08020B68
ldr r0, [r4]
str r1, [r0, 0x70]
_08020B68:
ldr r0, [sp]
subs r0, 0x1
cmp r0, 0x10
bhi _08020C24
lsls r0, 2
ldr r1, _08020B80
adds r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_08020B7C: .4byte gUnknown_203B27C
_08020B80: .4byte _08020B84
.align 2, 0
_08020B84:
.4byte _08020BC8
.4byte _08020C24
.4byte _08020BD0
.4byte _08020C0E
.4byte _08020C24
.4byte _08020C24
.4byte _08020C24
.4byte _08020C24
.4byte _08020C24
.4byte _08020C24
.4byte _08020C16
.4byte _08020C1E
.4byte _08020C24
.4byte _08020C24
.4byte _08020C24
.4byte _08020C24
.4byte _08020BC8
_08020BC8:
movs r0, 0x10
bl sub_801FDA8
b _08020C24
_08020BD0:
ldr r0, _08020BF0
ldr r0, [r0]
ldr r0, [r0, 0x10]
movs r1, 0x8
ldrsh r0, [r0, r1]
bl GetBaseSpeciesNoUnown
lsls r0, 16
movs r1, 0xCF
lsls r1, 17
cmp r0, r1
bne _08020BF4
movs r0, 0x1C
bl sub_801FDA8
b _08020C24
.align 2, 0
_08020BF0: .4byte gUnknown_203B27C
_08020BF4:
bl sub_8021178
lsls r0, 24
cmp r0, 0
beq _08020C06
movs r0, 0x1B
bl sub_801FDA8
b _08020C24
_08020C06:
movs r0, 0x14
bl sub_801FDA8
b _08020C24
_08020C0E:
movs r0, 0x1E
bl sub_801FDA8
b _08020C24
_08020C16:
movs r0, 0x12
bl sub_801FDA8
b _08020C24
_08020C1E:
movs r0, 0x13
bl sub_801FDA8
_08020C24:
add sp, 0x4
pop {r4}
pop {r0}
bx r0
thumb_func_end sub_8020B38
thumb_func_start sub_8020C2C
sub_8020C2C:
push {lr}
bl sub_80244E4
cmp r0, 0x1
bls _08020C44
cmp r0, 0x3
bhi _08020C44
bl sub_802453C
movs r0, 0x10
bl sub_801FDA8
_08020C44:
pop {r0}
bx r0
thumb_func_end sub_8020C2C
thumb_func_start sub_8020C48
sub_8020C48:
push {lr}
bl sub_801BF48
cmp r0, 0x1
bls _08020C60
cmp r0, 0x3
bhi _08020C60
bl sub_801BF98
movs r0, 0x10
bl sub_801FDA8
_08020C60:
pop {r0}
bx r0
thumb_func_end sub_8020C48
thumb_func_start sub_8020C64
sub_8020C64:
push {lr}
movs r0, 0x1
bl sub_801F520
cmp r0, 0x3
beq _08020C80
cmp r0, 0x3
bhi _08020C7A
cmp r0, 0x2
beq _08020CB0
b _08020CBA
_08020C7A:
cmp r0, 0x4
beq _08020C98
b _08020CBA
_08020C80:
bl sub_801F5B4
ldr r1, _08020C94
ldr r1, [r1]
strh r0, [r1, 0x1C]
strh r0, [r1, 0x1E]
movs r0, 0x17
bl sub_801FDA8
b _08020CBA
.align 2, 0
_08020C94: .4byte gUnknown_203B27C
_08020C98:
bl sub_801F5B4
ldr r1, _08020CAC
ldr r1, [r1]
strh r0, [r1, 0x1C]
strh r0, [r1, 0x1E]
movs r0, 0x18
bl sub_801FDA8
b _08020CBA
.align 2, 0
_08020CAC: .4byte gUnknown_203B27C
_08020CB0:
bl sub_801F63C
movs r0, 0x10
bl sub_801FDA8
_08020CBA:
pop {r0}
bx r0
thumb_func_end sub_8020C64
thumb_func_start sub_8020CC0
sub_8020CC0:
push {r4-r6,lr}
sub sp, 0x4
movs r0, 0
str r0, [sp]
bl sub_801F520
ldr r4, _08020D00
ldr r0, [r4]
adds r0, 0xCC
bl sub_8012FD8
lsls r0, 24
cmp r0, 0
bne _08020CF0
ldr r0, [r4]
adds r0, 0xCC
mov r1, sp
bl sub_8013114
ldr r1, [sp]
cmp r1, 0x1
beq _08020CF0
ldr r0, [r4]
str r1, [r0, 0x74]
_08020CF0:
ldr r0, [sp]
cmp r0, 0x3
beq _08020D14
cmp r0, 0x3
bgt _08020D04
cmp r0, 0x1
beq _08020D0C
b _08020D6C
.align 2, 0
_08020D00: .4byte gUnknown_203B27C
_08020D04:
cmp r0, 0xB
beq _08020D66
cmp r0, 0x11
bne _08020D6C
_08020D0C:
movs r0, 0x16
bl sub_801FDA8
b _08020D6C
_08020D14:
bl sub_801F63C
ldr r4, _08020D30
ldr r1, [r4]
adds r0, r1, 0
adds r0, 0x24
ldr r1, [r1, 0x10]
adds r1, 0x2C
bl sub_809401C
movs r5, 0
adds r6, r4, 0
movs r4, 0x24
b _08020D38
.align 2, 0
_08020D30: .4byte gUnknown_203B27C
_08020D34:
adds r4, 0x8
adds r5, 0x1
_08020D38:
cmp r5, 0x7
bgt _08020D52
ldr r3, [r6]
adds r2, r3, r4
ldrb r1, [r2]
movs r0, 0x1
ands r0, r1
cmp r0, 0
bne _08020D34
ldrh r1, [r3, 0x1E]
adds r0, r2, 0
bl InitZeroedPPPokemonMove
_08020D52:
cmp r5, 0x3
ble _08020D5E
movs r0, 0x1D
bl sub_801FDA8
b _08020D6C
_08020D5E:
movs r0, 0x19
bl sub_801FDA8
b _08020D6C
_08020D66:
movs r0, 0x18
bl sub_801FDA8
_08020D6C:
add sp, 0x4
pop {r4-r6}
pop {r0}
bx r0
thumb_func_end sub_8020CC0
thumb_func_start sub_8020D74
sub_8020D74:
push {lr}
bl sub_801F890
cmp r0, 0x1
bls _08020D8C
cmp r0, 0x3
bhi _08020D8C
bl sub_801F8D0
movs r0, 0x16
bl sub_801FDA8
_08020D8C:
pop {r0}
bx r0
thumb_func_end sub_8020D74
thumb_func_start sub_8020D90
sub_8020D90:
push {lr}
bl sub_801E8C0
cmp r0, 0x2
beq _08020DBC
cmp r0, 0x2
bcc _08020DC6
cmp r0, 0x3
bne _08020DC6
bl sub_801E930
ldr r1, _08020DB8
ldr r1, [r1]
strb r0, [r1, 0x14]
bl sub_801E93C
movs r0, 0x1A
bl sub_801FDA8
b _08020DC6
.align 2, 0
_08020DB8: .4byte gUnknown_203B27C
_08020DBC:
bl sub_801E93C
movs r0, 0x10
bl sub_801FDA8
_08020DC6:
pop {r0}
bx r0
thumb_func_end sub_8020D90
thumb_func_start sub_8020DCC
sub_8020DCC:
push {lr}
movs r0, 0x1
bl sub_801EF38
cmp r0, 0x4
bhi _08020EAA
lsls r0, 2
ldr r1, _08020DE4
adds r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_08020DE4: .4byte _08020DE8
.align 2, 0
_08020DE8:
.4byte _08020EAA
.4byte _08020E98
.4byte _08020E64
.4byte _08020DFC
.4byte _08020E30
_08020DFC:
bl sub_801F1A4
lsls r0, 24
cmp r0, 0
beq _08020E0E
ldr r0, _08020E2C
ldr r1, [r0]
movs r0, 0x1
strb r0, [r1, 0x15]
_08020E0E:
bl sub_801F194
ldr r1, _08020E2C
ldr r2, [r1]
str r0, [r2, 0x18]
lsls r0, 3
adds r0, r2, r0
ldrh r1, [r0, 0x26]
strh r1, [r2, 0x1C]
ldrh r0, [r0, 0x26]
strh r0, [r2, 0x20]
movs r0, 0x20
bl sub_801FDA8
b _08020EAA
.align 2, 0
_08020E2C: .4byte gUnknown_203B27C
_08020E30:
bl sub_801F1A4
lsls r0, 24
cmp r0, 0
beq _08020E42
ldr r0, _08020E60
ldr r1, [r0]
movs r0, 0x1
strb r0, [r1, 0x15]
_08020E42:
bl sub_801F194
ldr r1, _08020E60
ldr r2, [r1]
str r0, [r2, 0x18]
lsls r0, 3
adds r0, r2, r0
ldrh r1, [r0, 0x26]
strh r1, [r2, 0x1C]
ldrh r0, [r0, 0x26]
strh r0, [r2, 0x20]
movs r0, 0x21
bl sub_801FDA8
b _08020EAA
.align 2, 0
_08020E60: .4byte gUnknown_203B27C
_08020E64:
bl sub_801F1A4
lsls r0, 24
cmp r0, 0
beq _08020E76
ldr r0, _08020E94
ldr r1, [r0]
movs r0, 0x1
strb r0, [r1, 0x15]
_08020E76:
bl sub_801F214
ldr r0, _08020E94
ldr r1, [r0]
adds r0, r1, 0
adds r0, 0x24
ldr r1, [r1, 0x10]
adds r1, 0x2C
bl sub_8094060
movs r0, 0x10
bl sub_801FDA8
b _08020EAA
.align 2, 0
_08020E94: .4byte gUnknown_203B27C
_08020E98:
bl sub_801F1A4
lsls r0, 24
cmp r0, 0
beq _08020EAA
ldr r0, _08020EB0
ldr r1, [r0]
movs r0, 0x1
strb r0, [r1, 0x15]
_08020EAA:
pop {r0}
bx r0
.align 2, 0
_08020EB0: .4byte gUnknown_203B27C
thumb_func_end sub_8020DCC
thumb_func_start sub_8020EB4
sub_8020EB4:
push {r4,lr}
sub sp, 0x4
movs r0, 0
str r0, [sp]
bl sub_801EF38
ldr r4, _08020EF8
ldr r0, [r4]
adds r0, 0xCC
bl sub_8012FD8
lsls r0, 24
cmp r0, 0
bne _08020EE4
ldr r0, [r4]
adds r0, 0xCC
mov r1, sp
bl sub_8013114
ldr r1, [sp]
cmp r1, 0x1
beq _08020EE4
ldr r0, [r4]
str r1, [r0, 0x78]
_08020EE4:
ldr r0, [sp]
subs r0, 0x1
cmp r0, 0x10
bls _08020EEE
b _080210BE
_08020EEE:
lsls r0, 2
ldr r1, _08020EFC
adds r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_08020EF8: .4byte gUnknown_203B27C
_08020EFC: .4byte _08020F00
.align 2, 0
_08020F00:
.4byte _08021068
.4byte _080210BE
.4byte _080210BE
.4byte _080210BE
.4byte _08020F44
.4byte _08020F70
.4byte _08020F8C
.4byte _08020FB8
.4byte _08021034
.4byte _08021074
.4byte _080210B8
.4byte _080210BE
.4byte _080210BE
.4byte _080210BE
.4byte _080210BE
.4byte _080210BE
.4byte _08021068
_08020F44:
ldr r0, _08020F60
ldr r1, [r0]
ldr r0, [r1, 0x18]
adds r1, 0x24
bl sub_80934DC
lsls r0, 24
cmp r0, 0
beq _08020F68
ldr r0, _08020F64
bl PlaySound
b _08021068
.align 2, 0
_08020F60: .4byte gUnknown_203B27C
_08020F64: .4byte 0x00000133
_08020F68:
movs r0, 0x2
bl PlayMenuSoundEffect
b _08021068
_08020F70:
ldr r0, _08020F84
bl PlaySound
ldr r0, _08020F88
ldr r1, [r0]
ldr r0, [r1, 0x18]
adds r1, 0x24
bl sub_809352C
b _08021068
.align 2, 0
_08020F84: .4byte 0x00000133
_08020F88: .4byte gUnknown_203B27C
_08020F8C:
ldr r0, _08020FA8
ldr r1, [r0]
ldr r0, [r1, 0x18]
adds r1, 0x24
bl sub_8093544
lsls r0, 24
cmp r0, 0
beq _08020FB0
ldr r0, _08020FAC
bl PlaySound
b _08021068
.align 2, 0
_08020FA8: .4byte gUnknown_203B27C
_08020FAC: .4byte 0x00000133
_08020FB0:
movs r0, 0x2
bl PlayMenuSoundEffect
b _08021068
_08020FB8:
ldr r0, _08020FD8
ldr r0, [r0]
movs r1, 0x98
lsls r1, 2
adds r0, r1
ldr r0, [r0]
cmp r0, 0x95
bgt _08020FDC
movs r0, 0x2
bl PlayMenuSoundEffect
movs r0, 0x3
bl sub_801FDA8
b _080210BE
.align 2, 0
_08020FD8: .4byte gTeamInventory_203B460
_08020FDC:
ldr r4, _08020FFC
ldr r1, [r4]
ldr r0, [r1, 0x18]
adds r1, 0x24
bl sub_8093318
lsls r0, 24
cmp r0, 0
bne _08021000
movs r0, 0x2
bl PlayMenuSoundEffect
movs r0, 0x4
bl sub_801FDA8
b _080210BE
.align 2, 0
_08020FFC: .4byte gUnknown_203B27C
_08021000:
ldr r1, [r4]
ldrb r0, [r1, 0x15]
cmp r0, 0
bne _08021016
movs r0, 0x1
strb r0, [r1, 0x15]
movs r0, 0xA6
lsls r0, 1
bl PlaySound
b _0802101C
_08021016:
ldr r0, _0802102C
bl PlaySound
_0802101C:
ldr r0, _08021030
ldr r1, [r0]
ldr r0, [r1, 0x18]
adds r1, 0x24
bl sub_8093400
b _08021068
.align 2, 0
_0802102C: .4byte 0x00000133
_08021030: .4byte gUnknown_203B27C
_08021034:
ldr r4, _08021054
ldr r1, [r4]
ldr r0, [r1, 0x18]
adds r1, 0x24
bl sub_809333C
lsls r0, 24
cmp r0, 0
bne _08021058
movs r0, 0x2
bl PlayMenuSoundEffect
movs r0, 0x5
bl sub_801FDA8
b _080210BE
.align 2, 0
_08021054: .4byte gUnknown_203B27C
_08021058:
ldr r0, _08021070
bl PlaySound
ldr r1, [r4]
ldr r0, [r1, 0x18]
adds r1, 0x24
bl sub_8093468
_08021068:
movs r0, 0x1F
bl sub_801FDA8
b _080210BE
.align 2, 0
_08021070: .4byte 0x00000133
_08021074:
ldr r4, _08021094
ldr r1, [r4]
ldr r0, [r1, 0x18]
adds r1, 0x24
bl sub_80933A0
lsls r0, 24
cmp r0, 0
bne _08021098
movs r0, 0x2
bl PlayMenuSoundEffect
movs r0, 0x6
bl sub_801FDA8
b _080210BE
.align 2, 0
_08021094: .4byte gUnknown_203B27C
_08021098:
ldr r0, _080210B4
bl PlaySound
ldr r1, [r4]
ldr r0, [r1, 0x18]
adds r1, 0x24
bl sub_80934B0
ldr r1, [r4]
strb r0, [r1, 0x14]
movs r0, 0x22
bl sub_801FDA8
b _080210BE
.align 2, 0
_080210B4: .4byte 0x00000133
_080210B8:
movs r0, 0x21
bl sub_801FDA8
_080210BE:
add sp, 0x4
pop {r4}
pop {r0}
bx r0
thumb_func_end sub_8020EB4
thumb_func_start sub_80210C8
sub_80210C8:
push {lr}
bl sub_801F890
cmp r0, 0x1
bls _080210E0
cmp r0, 0x3
bhi _080210E0
bl sub_801F8D0
movs r0, 0x1F
bl sub_801FDA8
_080210E0:
pop {r0}
bx r0
thumb_func_end sub_80210C8
thumb_func_start sub_80210E4
sub_80210E4:
push {lr}
sub sp, 0x4
mov r0, sp
bl sub_80144A4
cmp r0, 0
bne _0802112A
ldr r0, [sp]
cmp r0, 0x10
beq _08021108
cmp r0, 0x10
bgt _08021102
cmp r0, 0x1
beq _08021124
b _0802112A
_08021102:
cmp r0, 0x11
beq _08021124
b _0802112A
_08021108:
ldr r0, _08021120
ldr r1, [r0]
adds r0, r1, 0
adds r0, 0x24
ldr r1, [r1, 0x18]
bl sub_8093CF8
movs r0, 0x23
bl sub_801FDA8
b _0802112A
.align 2, 0
_08021120: .4byte gUnknown_203B27C
_08021124:
movs r0, 0x1F
bl sub_801FDA8
_0802112A:
add sp, 0x4
pop {r0}
bx r0
thumb_func_end sub_80210E4
thumb_func_start sub_8021130
sub_8021130:
push {lr}
sub sp, 0x4
mov r0, sp
bl sub_80144A4
cmp r0, 0
bne _08021148
ldr r0, _08021150
ldr r0, [r0]
ldr r0, [r0, 0x8]
bl sub_801FDA8
_08021148:
add sp, 0x4
pop {r0}
bx r0
.align 2, 0
_08021150: .4byte gUnknown_203B27C
thumb_func_end sub_8021130
thumb_func_start sub_8021154
sub_8021154:
push {lr}
sub sp, 0x4
mov r0, sp
bl sub_80144A4
cmp r0, 0x4
bne _0802116C
ldr r0, _08021174
ldr r0, [r0]
ldr r0, [r0, 0x8]
bl sub_801FDA8
_0802116C:
add sp, 0x4
pop {r0}
bx r0
.align 2, 0
_08021174: .4byte gUnknown_203B27C
thumb_func_end sub_8021154
thumb_func_start sub_8021178
sub_8021178:
push {lr}
mov r12, r4
ldr r4, _08021198
add sp, r4
mov r4, r12
ldr r0, _0802119C
ldr r0, [r0]
ldr r1, [r0, 0x10]
mov r0, sp
bl sub_808E218
cmp r0, 0
beq _080211A0
movs r0, 0
b _080211A2
.align 2, 0
_08021198: .4byte 0xfffffcc0
_0802119C: .4byte gUnknown_203B27C
_080211A0:
movs r0, 0x1
_080211A2:
movs r3, 0xD0
lsls r3, 2
add sp, r3
pop {r1}
bx r1
thumb_func_end sub_8021178
thumb_func_start sub_80211AC
sub_80211AC:
push {r4-r6,lr}
adds r4, r0, 0
adds r6, r1, 0
bl sub_8021700
lsls r0, 24
cmp r0, 0
beq _080211C0
movs r0, 0
b _08021258
_080211C0:
ldr r5, _08021260
movs r0, 0xE0
movs r1, 0x8
bl MemoryAlloc
str r0, [r5]
str r4, [r0, 0x3C]
str r6, [r0, 0x74]
lsls r1, r6, 1
adds r1, r6
lsls r1, 3
adds r1, 0x7C
adds r1, r0, r1
str r1, [r0, 0x78]
adds r0, 0x7C
bl sub_8006518
ldr r1, [r5]
ldr r2, [r1, 0x74]
lsls r0, r2, 1
adds r0, r2
lsls r0, 3
adds r1, r0
adds r1, 0x7C
ldr r0, _08021264
ldm r0!, {r2-r4}
stm r1!, {r2-r4}
ldm r0!, {r2-r4}
stm r1!, {r2-r4}
ldr r0, [r5]
ldr r1, [r0, 0x78]
adds r0, 0xDC
str r0, [r1, 0x14]
bl ResetUnusedInputStruct
ldr r0, [r5]
adds r0, 0x7C
movs r1, 0x1
movs r2, 0x1
bl sub_800641C
ldr r4, [r5]
adds r4, 0x40
bl sub_8021664
adds r1, r0, 0
adds r0, r4, 0
movs r2, 0xA
adds r3, r6, 0
bl sub_8013818
ldr r0, _08021268
ldr r2, [r5]
ldr r1, [r0]
ldr r0, [r2, 0x3C]
cmp r1, r0
bne _0802124E
ldr r0, _0802126C
ldrh r1, [r0]
adds r0, r2, 0
adds r0, 0x58
strh r1, [r0]
ldr r0, _08021270
ldrh r0, [r0]
adds r1, r2, 0
adds r1, 0x5E
strh r0, [r1]
adds r0, r2, 0
adds r0, 0x40
bl sub_8013984
_0802124E:
bl sub_8021410
bl sub_8021494
movs r0, 0x1
_08021258:
pop {r4-r6}
pop {r1}
bx r1
.align 2, 0
_08021260: .4byte gUnknown_203B280
_08021264: .4byte gUnknown_80DC47C
_08021268: .4byte gUnknown_203B284
_0802126C: .4byte gUnknown_203B288
_08021270: .4byte gUnknown_203B28A
thumb_func_end sub_80211AC
thumb_func_start sub_8021274
sub_8021274:
push {r4,lr}
lsls r0, 24
cmp r0, 0
bne _08021290
ldr r0, _0802128C
ldr r0, [r0]
adds r0, 0x40
bl sub_8013660
movs r0, 0
b _08021326
.align 2, 0
_0802128C: .4byte gUnknown_203B280
_08021290:
ldr r4, _080212A8
ldr r0, [r4]
adds r0, 0x40
bl GetKeyPress
cmp r0, 0x2
beq _080212B2
cmp r0, 0x2
bgt _080212AC
cmp r0, 0x1
beq _080212BC
b _08021300
.align 2, 0
_080212A8: .4byte gUnknown_203B280
_080212AC:
cmp r0, 0x4
beq _080212F6
b _08021300
_080212B2:
movs r0, 0x1
bl PlayMenuSoundEffect
movs r0, 0x2
b _08021326
_080212BC:
ldr r0, [r4]
ldr r0, [r0, 0x3C]
cmp r0, 0x2
bne _080212EC
bl sub_802132C
lsls r0, 24
lsrs r0, 24
bl GetFriendAreaPrice
ldr r1, _080212E8
ldr r1, [r1]
movs r2, 0x98
lsls r2, 2
adds r1, r2
ldr r1, [r1]
cmp r0, r1
ble _080212EC
movs r0, 0x2
bl PlayMenuSoundEffect
b _080212F2
.align 2, 0
_080212E8: .4byte gTeamInventory_203B460
_080212EC:
movs r0, 0
bl PlayMenuSoundEffect
_080212F2:
movs r0, 0x3
b _08021326
_080212F6:
movs r0, 0x4
bl PlayMenuSoundEffect
movs r0, 0x4
b _08021326
_08021300:
ldr r0, _08021318
ldr r0, [r0]
adds r0, 0x40
movs r1, 0x1
bl sub_80138B8
lsls r0, 24
cmp r0, 0
bne _0802131C
movs r0, 0
b _08021326
.align 2, 0
_08021318: .4byte gUnknown_203B280
_0802131C:
bl sub_8021410
bl sub_8021494
movs r0, 0x1
_08021326:
pop {r4}
pop {r1}
bx r1
thumb_func_end sub_8021274
thumb_func_start sub_802132C
sub_802132C:
ldr r0, _08021350
ldr r2, [r0]
adds r0, r2, 0
adds r0, 0x5E
movs r3, 0
ldrsh r1, [r0, r3]
subs r0, 0x2
movs r3, 0
ldrsh r0, [r0, r3]
muls r0, r1
adds r1, r2, 0
adds r1, 0x58
movs r3, 0
ldrsh r1, [r1, r3]
adds r0, r1
adds r0, r2, r0
ldrb r0, [r0]
bx lr
.align 2, 0
_08021350: .4byte gUnknown_203B280
thumb_func_end sub_802132C
thumb_func_start sub_8021354
sub_8021354:
push {r4,r5,lr}
adds r4, r0, 0
lsls r4, 24
lsrs r4, 24
bl ResetUnusedInputStruct
ldr r5, _0802139C
ldr r0, [r5]
adds r0, 0x7C
movs r1, 0
movs r2, 0
bl sub_800641C
bl sub_8021664
adds r1, r0, 0
ldr r0, [r5]
adds r2, r0, 0
adds r2, 0x62
strh r1, [r2]
adds r0, 0x40
bl sub_8013984
bl sub_8021410
bl sub_8021494
cmp r4, 0
beq _08021396
ldr r0, [r5]
adds r0, 0x40
bl AddMenuCursorSprite
_08021396:
pop {r4,r5}
pop {r0}
bx r0
.align 2, 0
_0802139C: .4byte gUnknown_203B280
thumb_func_end sub_8021354
thumb_func_start sub_80213A0
sub_80213A0:
push {r4,r5,lr}
ldr r4, _080213FC
ldr r2, [r4]
cmp r2, 0
beq _080213F4
ldr r1, _08021400
ldr r0, [r2, 0x3C]
str r0, [r1]
ldr r1, _08021404
adds r0, r2, 0
adds r0, 0x58
ldrh r0, [r0]
strh r0, [r1]
ldr r1, _08021408
adds r0, r2, 0
adds r0, 0x5E
ldrh r0, [r0]
strh r0, [r1]
ldr r0, [r2, 0x74]
lsls r1, r0, 1
adds r1, r0
lsls r1, 3
adds r1, r2, r1
adds r1, 0x7C
ldr r0, _0802140C
ldm r0!, {r2,r3,r5}
stm r1!, {r2,r3,r5}
ldm r0!, {r2,r3,r5}
stm r1!, {r2,r3,r5}
bl ResetUnusedInputStruct
ldr r0, [r4]
adds r0, 0x7C
movs r1, 0x1
movs r2, 0x1
bl sub_800641C
ldr r0, [r4]
bl MemoryFree
movs r0, 0
str r0, [r4]
_080213F4:
pop {r4,r5}
pop {r0}
bx r0
.align 2, 0
_080213FC: .4byte gUnknown_203B280
_08021400: .4byte gUnknown_203B284
_08021404: .4byte gUnknown_203B288
_08021408: .4byte gUnknown_203B28A
_0802140C: .4byte gUnknown_80DC464
thumb_func_end sub_80213A0
thumb_func_start sub_8021410
sub_8021410:
push {r4,lr}
ldr r4, _08021490
ldr r0, [r4]
adds r0, 0xDC
movs r2, 0
movs r1, 0x1
strb r1, [r0]
ldr r0, [r4]
adds r0, 0xDD
strb r2, [r0]
ldr r0, [r4]
adds r0, 0xDE
movs r1, 0xC
strb r1, [r0]
ldr r0, [r4]
adds r0, 0xDF
strb r2, [r0]
bl ResetUnusedInputStruct
ldr r0, [r4]
adds r0, 0x7C
movs r1, 0x1
movs r2, 0x1
bl sub_800641C
ldr r0, [r4]
adds r0, 0x5A
movs r1, 0
ldrsh r0, [r0, r1]
movs r1, 0xC
bl sub_80095E4
adds r0, 0x2
lsls r0, 16
ldr r2, [r4]
ldr r3, [r2, 0x74]
lsls r1, r3, 1
adds r1, r3
lsls r1, 3
adds r1, r2, r1
adds r1, 0x8A
asrs r3, r0, 16
lsrs r0, 16
strh r0, [r1]
ldr r1, [r2, 0x74]
lsls r0, r1, 1
adds r0, r1
lsls r0, 3
adds r2, r0
adds r3, 0x2
adds r2, 0x8C
strh r3, [r2]
bl ResetUnusedInputStruct
ldr r0, [r4]
adds r0, 0x7C
movs r1, 0x1
movs r2, 0x1
bl sub_800641C
pop {r4}
pop {r0}
bx r0
.align 2, 0
_08021490: .4byte gUnknown_203B280
thumb_func_end sub_8021410
thumb_func_start sub_8021494
sub_8021494:
push {r4-r7,lr}
mov r7, r10
mov r6, r9
mov r5, r8
push {r5-r7}
sub sp, 0xA8
ldr r4, _08021568
ldr r0, [r4]
ldr r0, [r0, 0x74]
bl sub_8008C54
ldr r0, [r4]
ldr r0, [r0, 0x74]
bl sub_80073B8
ldr r2, _0802156C
ldr r0, [r4]
ldr r3, [r0, 0x74]
movs r0, 0
str r0, [sp]
movs r0, 0xA
movs r1, 0
bl xxx_call_draw_string
ldr r3, [r4]
adds r0, r3, 0
adds r0, 0xDE
ldrb r0, [r0]
lsls r0, 3
adds r0, 0x4
adds r1, r3, 0
adds r1, 0x5E
movs r5, 0
ldrsh r2, [r1, r5]
adds r2, 0x1
movs r1, 0x7
str r1, [sp]
ldr r1, [r3, 0x74]
str r1, [sp, 0x4]
movs r1, 0
movs r3, 0x1
bl sub_8012BC4
movs r0, 0
mov r9, r0
ldr r0, [r4]
adds r0, 0x5A
movs r1, 0
ldrsh r0, [r0, r1]
cmp r9, r0
blt _080214FC
b _08021646
_080214FC:
mov r8, r4
add r2, sp, 0x58
mov r10, r2
_08021502:
mov r3, r8
ldr r2, [r3]
adds r0, r2, 0
adds r0, 0x5E
movs r5, 0
ldrsh r1, [r0, r5]
subs r0, 0x2
movs r3, 0
ldrsh r0, [r0, r3]
muls r0, r1
add r0, r9
adds r0, r2, r0
ldrb r5, [r0]
adds r7, r5, 0
ldr r6, [r2, 0x3C]
cmp r6, 0x2
bne _0802159C
add r0, sp, 0x8
adds r1, r5, 0
movs r2, 0x1
bl sub_8092578
adds r0, r5, 0
bl GetFriendAreaPrice
ldr r1, _08021570
ldr r1, [r1]
movs r5, 0x98
lsls r5, 2
adds r1, r5
ldr r1, [r1]
cmp r0, r1
bgt _08021574
mov r1, r8
ldr r0, [r1]
adds r0, 0x40
mov r1, r9
bl sub_8013800
adds r1, r0, 0
mov r2, r8
ldr r0, [r2]
ldr r3, [r0, 0x74]
movs r0, 0
str r0, [sp]
movs r0, 0x8
add r2, sp, 0x8
bl xxx_call_draw_string
b _08021632
.align 2, 0
_08021568: .4byte gUnknown_203B280
_0802156C: .4byte gUnknown_80DC494
_08021570: .4byte gTeamInventory_203B460
_08021574:
mov r0, r10
ldr r1, _08021598
add r2, sp, 0x8
bl 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 PrintColoredPokeNameToBuffer
adds r4, 0x50
adds r0, r4, 0
adds r1, r5, 0
movs r2, 0x6
bl PrintColoredPokeNameToBuffer
bl HasGummiItem
lsls r0, 24
cmp r0, 0
beq _08022818
movs r0, 0
bl sub_8022924
b _08022856
.align 2, 0
_08022810: .4byte gUnknown_203B294
_08022814: .4byte gAvailablePokemonNames
_08022818:
movs r0, 0x11
bl sub_8022924
b _08022856
_08022820:
ldr r4, _08022848
ldr r5, _0802284C
adds r0, r4, 0
adds r1, r5, 0
bl strcpy
adds r4, 0x50
adds r0, r4, 0
adds r1, r5, 0
bl strcpy
bl GetNumberOfFilledInventorySlots
cmp r0, 0
bne _08022850
movs r0, 0x12
bl sub_8022924
b _08022856
.align 2, 0
_08022848: .4byte gAvailablePokemonNames
_0802284C: .4byte gUnknown_80DC5EC
_08022850:
movs r0, 0
bl sub_8022924
_08022856:
movs r0, 0x1
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end sub_80227B8
thumb_func_start sub_8022860
sub_8022860:
push {lr}
ldr r0, _08022878
ldr r0, [r0]
ldr r0, [r0]
cmp r0, 0x16
bhi _080228FE
lsls r0, 2
ldr r1, _0802287C
adds r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_08022878: .4byte gUnknown_203B294
_0802287C: .4byte _08022880
.align 2, 0
_08022880:
.4byte _080228DC
.4byte _080228DC
.4byte _080228E2
.4byte _080228E8
.4byte _080228EE
.4byte _080228FE
.4byte _080228FE
.4byte _080228FE
.4byte _080228FE
.4byte _080228FE
.4byte _080228FE
.4byte _080228FE
.4byte _080228FE
.4byte _080228FE
.4byte _080228FE
.4byte _080228FE
.4byte _080228FE
.4byte _080228FE
.4byte _080228FE
.4byte _080228FE
.4byte _080228FE
.4byte _080228F4
.4byte _080228FA
_080228DC:
bl sub_8022E78
b _08022902
_080228E2:
bl sub_8022EF4
b _08022902
_080228E8:
bl sub_8023068
b _08022902
_080228EE:
bl sub_80230E8
b _08022902
_080228F4:
bl sub_8023104
b _08022902
_080228FA:
movs r0, 0x3
b _08022904
_080228FE:
bl sub_8023120
_08022902:
movs r0, 0
_08022904:
pop {r1}
bx r1
thumb_func_end sub_8022860
thumb_func_start sub_8022908
sub_8022908:
push {r4,lr}
ldr r4, _08022920
ldr r0, [r4]
cmp r0, 0
beq _0802291A
bl MemoryFree
movs r0, 0
str r0, [r4]
_0802291A:
pop {r4}
pop {r0}
bx r0
.align 2, 0
_08022920: .4byte gUnknown_203B294
thumb_func_end sub_8022908
thumb_func_start sub_8022924
sub_8022924:
push {lr}
ldr r1, _08022938
ldr r1, [r1]
str r0, [r1]
bl sub_802293C
bl sub_8022A10
pop {r0}
bx r0
.align 2, 0
_08022938: .4byte gUnknown_203B294
thumb_func_end sub_8022924
thumb_func_start sub_802293C
sub_802293C:
push {r4-r7,lr}
mov r7, r8
push {r7}
ldr r4, _08022964
ldr r0, [r4]
movs r1, 0xA4
lsls r1, 1
adds r0, r1
bl sub_8006518
ldr r1, [r4]
ldr r0, [r1]
cmp r0, 0x3
beq _080229A4
cmp r0, 0x3
bgt _08022968
cmp r0, 0x2
beq _08022972
b _080229BC
.align 2, 0
_08022964: .4byte gUnknown_203B294
_08022968:
cmp r0, 0x10
bgt _080229BC
cmp r0, 0xA
blt _080229BC
b _080229E6
_08022972:
bl sub_8022D2C
ldr r2, [r4]
movs r0, 0xBC
lsls r0, 1
adds r2, r0
ldr r1, _080229A0
ldm r1!, {r3,r5,r6}
stm r2!, {r3,r5,r6}
ldm r1!, {r3,r5,r7}
stm r2!, {r3,r5,r7}
ldr r1, [r4]
adds r0, r1, r0
adds r1, 0xF8
bl sub_8012CAC
ldr r0, [r4]
movs r6, 0xC2
lsls r6, 1
adds r0, r6
movs r1, 0x6
strh r1, [r0]
b _080229E6
.align 2, 0
_080229A0: .4byte gUnknown_80DC5BC
_080229A4:
movs r7, 0xB0
lsls r7, 1
adds r1, r7
ldr r0, _080229B8
ldm r0!, {r2-r4}
stm r1!, {r2-r4}
ldm r0!, {r5-r7}
stm r1!, {r5-r7}
b _080229E6
.align 2, 0
_080229B8: .4byte gUnknown_80DC5D4
_080229BC:
ldr r0, _08022A08
mov r12, r0
movs r1, 0xA4
lsls r1, 1
mov r8, r1
ldr r4, _08022A0C
movs r3, 0
movs r2, 0x3
_080229CC:
mov r5, r12
ldr r1, [r5]
adds r1, r3
add r1, r8
adds r0, r4, 0
ldm r0!, {r5-r7}
stm r1!, {r5-r7}
ldm r0!, {r5-r7}
stm r1!, {r5-r7}
adds r3, 0x18
subs r2, 0x1
cmp r2, 0
bge _080229CC
_080229E6:
bl ResetUnusedInputStruct
ldr r0, _08022A08
ldr r0, [r0]
movs r6, 0xA4
lsls r6, 1
adds r0, r6
movs r1, 0x1
movs r2, 0x1
bl sub_800641C
pop {r3}
mov r8, r3
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
_08022A08: .4byte gUnknown_203B294
_08022A0C: .4byte gUnknown_80DC5A4
thumb_func_end sub_802293C
thumb_func_start sub_8022A10
sub_8022A10:
push {r4-r7,lr}
sub sp, 0x8
ldr r1, _08022A2C
ldr r0, [r1]
ldr r0, [r0]
adds r4, r1, 0
cmp r0, 0x16
bls _08022A22
b _08022D1E
_08022A22:
lsls r0, 2
ldr r1, _08022A30
adds r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_08022A2C: .4byte gUnknown_203B294
_08022A30: .4byte _08022A34
.align 2, 0
_08022A34:
.4byte _08022A90
.4byte _08022AAA
.4byte _08022AB2
.4byte _08022AE0
.4byte _08022B10
.4byte _08022B1A
.4byte _08022B24
.4byte _08022B34
.4byte _08022B44
.4byte _08022B54
.4byte _08022B64
.4byte _08022C28
.4byte _08022CA0
.4byte _08022CA8
.4byte _08022CB0
.4byte _08022CB8
.4byte _08022CC0
.4byte _08022CC8
.4byte _08022CD8
.4byte _08022CE8
.4byte _08022CF8
.4byte _08022D14
.4byte _08022D1E
_08022A90:
ldr r0, [r4]
ldr r0, [r0, 0x48]
cmp r0, 0
beq _08022A9C
movs r0, 0x5
b _08022A9E
_08022A9C:
movs r0, 0x1
_08022A9E:
movs r1, 0x3
movs r2, 0
movs r3, 0xA
bl sub_801A5D8
b _08022D22
_08022AAA:
movs r0, 0x1
bl sub_801A8D0
b _08022D22
_08022AB2:
bl sub_801A9E0
ldr r0, _08022ADC
ldr r2, [r0]
adds r0, r2, 0
adds r0, 0x54
adds r1, r2, 0
adds r1, 0xF8
movs r4, 0x9C
lsls r4, 1
adds r3, r2, r4
adds r2, 0xF4
ldr r2, [r2]
str r2, [sp]
movs r2, 0x2
str r2, [sp, 0x4]
movs r2, 0
bl sub_8012D60
b _08022D22
.align 2, 0
_08022ADC: .4byte gUnknown_203B294
_08022AE0:
bl sub_801A9E0
ldr r4, _08022B08
ldr r0, [r4]
adds r0, 0x54
movs r1, 0
bl sub_8012EA4
ldr r0, [r4]
adds r0, 0xA4
ldr r1, _08022B0C
movs r2, 0x3
str r2, [sp]
movs r2, 0x1
str r2, [sp, 0x4]
movs r2, 0
movs r3, 0
bl sub_8012D60
b _08022D22
.align 2, 0
_08022B08: .4byte gUnknown_203B294
_08022B0C: .4byte gUnknown_80DC584
_08022B10:
ldr r0, [r4]
adds r0, 0x50
bl sub_801B3C0
b _08022D22
_08022B1A:
ldr r0, _08022B20
b _08022D00
.align 2, 0
_08022B20: .4byte gUnknown_80DC5F4
_08022B24:
ldr r0, _08022B2C
ldr r3, _08022B30
b _08022D02
.align 2, 0
_08022B2C: .4byte gUnknown_80DC618
_08022B30: .4byte 0x00000101
_08022B34:
ldr r0, _08022B3C
ldr r3, _08022B40
b _08022D02
.align 2, 0
_08022B3C: .4byte gUnknown_80DC674
_08022B40: .4byte 0x00000101
_08022B44:
ldr r0, _08022B4C
ldr r3, _08022B50
b _08022D02
.align 2, 0
_08022B4C: .4byte gUnknown_80DC6CC
_08022B50: .4byte 0x00000101
_08022B54:
ldr r0, _08022B5C
ldr r3, _08022B60
b _08022D02
.align 2, 0
_08022B5C: .4byte gUnknown_80DC728
_08022B60: .4byte 0x00000101
_08022B64:
ldr r7, _08022B68
b _08022B78
.align 2, 0
_08022B68: .4byte gUnknown_203B294
_08022B6C:
ldr r1, [r4]
ldr r0, [r1, 0x40]
adds r0, 0x1
str r0, [r1, 0x40]
cmp r0, 0x17
bgt _08022C10
_08022B78:
movs r5, 0
movs r6, 0
movs r3, 0
ldr r2, [r4]
ldr r0, [r2, 0x38]
cmp r5, r0
bge _08022BA4
ldrb r1, [r2, 0x8]
b _08022B9C
_08022B8A:
adds r3, 0x1
ldr r2, [r4]
ldr r0, [r2, 0x38]
cmp r3, r0
bge _08022BA4
adds r0, r2, 0
adds r0, 0x8
adds r0, r3
ldrb r1, [r0]
_08022B9C:
ldr r0, [r2, 0x40]
cmp r1, r0
bne _08022B8A
movs r5, 0x1
_08022BA4:
movs r3, 0
ldr r2, [r4]
ldr r0, [r2, 0x3C]
cmp r3, r0
bge _08022BCE
adds r0, r2, 0
adds r0, 0x20
b _08022BC4
_08022BB4:
adds r3, 0x1
ldr r2, [r4]
ldr r0, [r2, 0x3C]
cmp r3, r0
bge _08022BCE
adds r0, r2, 0
adds r0, 0x20
adds r0, r3
_08022BC4:
ldrb r1, [r0]
ldr r0, [r2, 0x40]
cmp r1, r0
bne _08022BB4
movs r6, 0x1
_08022BCE:
cmp r5, r6
beq _08022B6C
ldr r1, [r7]
movs r0, 0xA
str r0, [r1, 0x4]
ldr r0, [r1, 0x40]
lsls r0, 24
lsrs r0, 24
bl GetIQSkillName
adds r1, r0, 0
ldr r0, _08022C18
bl strcpy
movs r0, 0xCB
bl PlaySound
ldr r0, _08022C1C
movs r1, 0
movs r2, 0
ldr r3, _08022C20
bl sub_80141B4
ldr r1, [r7]
ldr r0, [r1, 0x40]
adds r0, 0x1
str r0, [r1, 0x40]
ldr r0, _08022C24
ldr r0, [r0]
ldr r0, [r0, 0x40]
cmp r0, 0x17
bgt _08022C10
b _08022D22
_08022C10:
movs r0, 0xB
bl sub_8022924
b _08022D22
.align 2, 0
_08022C18: .4byte gUnknown_202DEA8
_08022C1C: .4byte gUnknown_80DC788
_08022C20: .4byte 0x00000101
_08022C24: .4byte gUnknown_203B294
_08022C28:
ldr r1, [r4]
movs r0, 0x16
str r0, [r1, 0x4]
bl nullsub_104
ldr r0, [r4]
adds r0, 0x46
ldrh r0, [r0]
cmp r0, 0x8
bhi _08022C98
lsls r0, 2
ldr r1, _08022C48
adds r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_08022C48: .4byte _08022C4C
.align 2, 0
_08022C4C:
.4byte _08022C70
.4byte _08022C78
.4byte _08022C80
.4byte _08022C98
.4byte _08022C88
.4byte _08022C98
.4byte _08022C98
.4byte _08022C98
.4byte _08022C90
_08022C70:
movs r0, 0x16
bl sub_8022924
b _08022D22
_08022C78:
movs r0, 0xD
bl sub_8022924
b _08022D22
_08022C80:
movs r0, 0xE
bl sub_8022924
b _08022D22
_08022C88:
movs r0, 0xF
bl sub_8022924
b _08022D22
_08022C90:
movs r0, 0x10
bl sub_8022924
b _08022D22
_08022C98:
movs r0, 0xC
bl sub_8022924
b _08022D22
_08022CA0:
ldr r0, _08022CA4
b _08022D00
.align 2, 0
_08022CA4: .4byte gUnknown_80DC7B4
_08022CA8:
ldr r0, _08022CAC
b _08022D00
.align 2, 0
_08022CAC: .4byte gUnknown_80DC7FC
_08022CB0:
ldr r0, _08022CB4
b _08022D00
.align 2, 0
_08022CB4: .4byte gUnknown_80DC81C
_08022CB8:
ldr r0, _08022CBC
b _08022D00
.align 2, 0
_08022CBC: .4byte gUnknown_80DC844
_08022CC0:
ldr r0, _08022CC4
b _08022D00
.align 2, 0
_08022CC4: .4byte gUnknown_80DC864
_08022CC8:
ldr r1, [r4]
movs r0, 0x16
str r0, [r1, 0x4]
ldr r0, _08022CD4
b _08022D00
.align 2, 0
_08022CD4: .4byte gUnknown_80DC88C
_08022CD8:
ldr r1, [r4]
movs r0, 0x16
str r0, [r1, 0x4]
ldr r0, _08022CE4
b _08022D00
.align 2, 0
_08022CE4: .4byte gUnknown_80DC8AC
_08022CE8:
ldr r1, [r4]
movs r0, 0x16
str r0, [r1, 0x4]
ldr r0, _08022CF4
b _08022D00
.align 2, 0
_08022CF4: .4byte gUnknown_80DC8C8
_08022CF8:
ldr r1, [r4]
movs r0, 0x16
str r0, [r1, 0x4]
ldr r0, _08022D0C
_08022D00:
ldr r3, _08022D10
_08022D02:
movs r1, 0
movs r2, 0
bl sub_80141B4
b _08022D22
.align 2, 0
_08022D0C: .4byte gUnknown_80DC8DC
_08022D10: .4byte 0x00000301
_08022D14:
ldr r0, [r4]
ldr r0, [r0, 0x4C]
bl sub_801AFA4
b _08022D22
_08022D1E:
bl sub_801A928
_08022D22:
add sp, 0x8
pop {r4-r7}
pop {r0}
bx r0
thumb_func_end sub_8022A10
thumb_func_start sub_8022D2C
sub_8022D2C:
push {r4-r7,lr}
movs r6, 0
ldr r4, _08022D78
ldr r0, [r4]
movs r1, 0x9C
lsls r1, 1
adds r0, r1
movs r1, 0
movs r2, 0x10
bl MemoryFill16
ldr r2, [r4]
ldr r0, [r2, 0x48]
cmp r0, 0
beq _08022D80
adds r1, r2, 0
adds r1, 0xF8
ldr r0, _08022D7C
str r0, [r1]
adds r1, 0x4
movs r0, 0x5
str r0, [r1]
adds r0, r2, 0
adds r0, 0x52
ldrb r0, [r0]
bl IsGummiItem
lsls r0, 24
cmp r0, 0
bne _08022D74
ldr r0, [r4]
movs r2, 0x9C
lsls r2, 1
adds r0, r2
movs r1, 0x1
strh r1, [r0]
_08022D74:
movs r6, 0x1
b _08022DBE
.align 2, 0
_08022D78: .4byte gUnknown_203B294
_08022D7C: .4byte gUnknown_80DC8F0
_08022D80:
adds r0, r2, 0
adds r0, 0x52
ldrb r0, [r0]
bl GetItemType
lsls r0, 24
lsrs r0, 24
cmp r0, 0x5
bne _08022DA4
ldr r1, [r4]
adds r2, r1, 0
adds r2, 0xF8
ldr r0, _08022E38
str r0, [r2]
adds r1, 0xFC
movs r0, 0x6
str r0, [r1]
movs r6, 0x1
_08022DA4:
ldr r2, [r4]
lsls r3, r6, 3
adds r0, r2, 0
adds r0, 0xF8
adds r0, r3
ldr r1, _08022E3C
ldr r1, [r1]
str r1, [r0]
adds r2, 0xFC
adds r2, r3
movs r0, 0x4
str r0, [r2]
adds r6, 0x1
_08022DBE:
ldr r4, _08022E40
ldr r0, [r4]
mov r12, r0
lsls r1, r6, 3
mov r2, r12
adds r2, 0xF8
adds r3, r2, r1
ldr r0, _08022E44
ldr r0, [r0]
str r0, [r3]
mov r3, r12
adds r3, 0xFC
adds r1, r3, r1
movs r0, 0x7
str r0, [r1]
adds r6, 0x1
lsls r1, r6, 3
adds r2, r1
movs r0, 0
str r0, [r2]
adds r1, r3, r1
movs r0, 0x1
str r0, [r1]
movs r5, 0
adds r7, r4, 0
cmp r5, r6
bge _08022E16
mov r4, r12
adds r4, 0xF4
movs r2, 0x9C
lsls r2, 1
add r2, r12
_08022DFE:
ldrh r0, [r2]
cmp r0, 0
bne _08022E0C
ldr r1, [r3]
ldr r0, [r4]
cmp r1, r0
beq _08022E70
_08022E0C:
adds r2, 0x2
adds r3, 0x8
adds r5, 0x1
cmp r5, r6
blt _08022DFE
_08022E16:
movs r5, 0
cmp r5, r6
bge _08022E70
ldr r1, [r7]
movs r2, 0x9C
lsls r2, 1
adds r0, r1, r2
ldrh r0, [r0]
cmp r0, 0
bne _08022E48
adds r0, r1, 0
adds r0, 0xF4
adds r1, 0xFC
ldr r1, [r1]
str r1, [r0]
b _08022E70
.align 2, 0
_08022E38: .4byte gUnknown_80DC8F8
_08022E3C: .4byte gUnknown_80D4940
_08022E40: .4byte gUnknown_203B294
_08022E44: .4byte gUnknown_80D4970
_08022E48:
adds r5, 0x1
cmp r5, r6
bge _08022E70
ldr r3, [r7]
lsls r0, r5, 1
movs r2, 0x9C
lsls r2, 1
adds r1, r3, r2
adds r1, r0
ldrh r0, [r1]
cmp r0, 0
bne _08022E48
adds r2, r3, 0
adds r2, 0xF4
lsls r1, r5, 3
adds r0, r3, 0
adds r0, 0xFC
adds r0, r1
ldr r0, [r0]
str r0, [r2]
_08022E70:
pop {r4-r7}
pop {r0}
bx r0
thumb_func_end sub_8022D2C
thumb_func_start sub_8022E78
sub_8022E78:
push {lr}
movs r0, 0x1
bl sub_801A6E8
cmp r0, 0x3
beq _08022E94
cmp r0, 0x3
bhi _08022E8E
cmp r0, 0x2
beq _08022EE8
b _08022EEE
_08022E8E:
cmp r0, 0x4
beq _08022EBC
b _08022EEE
_08022E94:
bl sub_801A8AC
ldr r1, _08022EB4
ldr r2, [r1]
str r0, [r2, 0x4C]
ldr r1, _08022EB8
ldr r1, [r1]
lsls r0, 2
adds r1, r0
ldr r0, [r1]
str r0, [r2, 0x50]
movs r0, 0x2
bl sub_8022924
b _08022EEE
.align 2, 0
_08022EB4: .4byte gUnknown_203B294
_08022EB8: .4byte gTeamInventory_203B460
_08022EBC:
bl sub_801A8AC
ldr r1, _08022EE0
ldr r2, [r1]
str r0, [r2, 0x4C]
ldr r1, _08022EE4
ldr r1, [r1]
lsls r0, 2
adds r1, r0
ldr r0, [r1]
str r0, [r2, 0x50]
movs r0, 0
bl sub_8099690
movs r0, 0x4
bl sub_8022924
b _08022EEE
.align 2, 0
_08022EE0: .4byte gUnknown_203B294
_08022EE4: .4byte gTeamInventory_203B460
_08022EE8:
movs r0, 0x16
bl sub_8022924
_08022EEE:
pop {r0}
bx r0
thumb_func_end sub_8022E78
thumb_func_start sub_8022EF4
sub_8022EF4:
push {r4,r5,lr}
sub sp, 0x4
movs r0, 0
str r0, [sp]
bl sub_801A6E8
ldr r4, _08022F3C
ldr r0, [r4]
adds r0, 0x54
bl sub_8012FD8
lsls r0, 24
cmp r0, 0
bne _08022F26
ldr r0, [r4]
adds r0, 0x54
mov r1, sp
bl sub_8013114
ldr r1, [sp]
cmp r1, 0x1
beq _08022F26
ldr r0, [r4]
adds r0, 0xF4
str r1, [r0]
_08022F26:
ldr r0, [sp]
subs r0, 0x1
cmp r0, 0x6
bls _08022F30
b _08023060
_08022F30:
lsls r0, 2
ldr r1, _08022F40
adds r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_08022F3C: .4byte gUnknown_203B294
_08022F40: .4byte _08022F44
.align 2, 0
_08022F44:
.4byte _08022F60
.4byte _08023060
.4byte _08023060
.4byte _0802304C
.4byte _08022F68
.4byte _08023044
.4byte _08023054
_08022F60:
movs r0, 0x1
bl sub_8022924
b _08023060
_08022F68:
ldr r4, _08022FEC
ldr r1, [r4]
adds r0, r1, 0
adds r0, 0x8
ldr r1, [r1, 0x48]
movs r2, 0x14
ldrsh r1, [r1, r2]
bl GetNumAvailableIQSkills
ldr r3, [r4]
str r0, [r3, 0x38]
ldr r0, [r3, 0x48]
adds r1, r3, 0
adds r1, 0x52
ldrb r1, [r1]
adds r3, 0x44
movs r2, 0
bl GetGummiItemStatBoost
ldr r1, [r4]
adds r0, r1, 0
adds r0, 0x20
ldr r1, [r1, 0x48]
movs r2, 0x14
ldrsh r1, [r1, r2]
bl GetNumAvailableIQSkills
ldr r1, [r4]
str r0, [r1, 0x3C]
movs r0, 0x1
str r0, [r1, 0x40]
adds r0, r1, 0
adds r0, 0x44
movs r2, 0
ldrsh r5, [r0, r2]
ldr r0, _08022FF0
ldr r3, _08022FF4
ldr r2, [r1, 0x4C]
lsls r2, 2
ldr r1, [r3]
adds r1, r2
movs r2, 0
bl sub_8090E14
movs r0, 0x1
negs r0, r0
cmp r5, r0
beq _08022FD0
ldr r0, [r4]
ldr r0, [r0, 0x4C]
bl ShiftItemsDownFrom
_08022FD0:
movs r0, 0
bl sub_8099690
ldr r1, [r4]
movs r0, 0xA
str r0, [r1, 0x4]
adds r0, r5, 0x1
cmp r0, 0x4
bhi _08023030
lsls r0, 2
ldr r1, _08022FF8
adds r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_08022FEC: .4byte gUnknown_203B294
_08022FF0: .4byte gUnknown_202DE58
_08022FF4: .4byte gTeamInventory_203B460
_08022FF8: .4byte _08022FFC
.align 2, 0
_08022FFC:
.4byte _08023030
.4byte _08023010
.4byte _08023018
.4byte _08023020
.4byte _08023028
_08023010:
movs r0, 0x6
bl sub_8022924
b _08023060
_08023018:
movs r0, 0x7
bl sub_8022924
b _08023060
_08023020:
movs r0, 0x8
bl sub_8022924
b _08023060
_08023028:
movs r0, 0x9
bl sub_8022924
b _08023060
_08023030:
ldr r0, _08023040
ldr r1, [r0]
movs r0, 0x16
str r0, [r1, 0x4]
movs r0, 0x5
bl sub_8022924
b _08023060
.align 2, 0
_08023040: .4byte gUnknown_203B294
_08023044:
movs r0, 0x15
bl sub_8022924
b _08023060
_0802304C:
movs r0, 0x3
bl sub_8022924
b _08023060
_08023054:
movs r0, 0
bl sub_8099690
movs r0, 0x4
bl sub_8022924
_08023060:
add sp, 0x4
pop {r4,r5}
pop {r0}
bx r0
thumb_func_end sub_8022EF4
thumb_func_start sub_8023068
sub_8023068:
push {r4,lr}
sub sp, 0x4
movs r0, 0
str r0, [sp]
bl sub_801A6E8
ldr r4, _080230A8
ldr r0, [r4]
adds r0, 0x54
bl sub_8012FD8
ldr r0, [r4]
adds r0, 0xA4
bl sub_8012FD8
lsls r0, 24
cmp r0, 0
bne _08023096
ldr r0, [r4]
adds r0, 0xA4
mov r1, sp
bl sub_8013114
_08023096:
ldr r0, [sp]
cmp r0, 0x2
beq _080230B8
cmp r0, 0x2
bgt _080230AC
cmp r0, 0x1
beq _080230B0
b _080230E0
.align 2, 0
_080230A8: .4byte gUnknown_203B294
_080230AC:
cmp r0, 0x3
bne _080230E0
_080230B0:
movs r0, 0x1
bl sub_8022924
b _080230E0
_080230B8:
ldr r0, [r4]
ldr r0, [r0, 0x4C]
bl ShiftItemsDownFrom
bl GetNumberOfFilledInventorySlots
cmp r0, 0
bne _080230DA
movs r0, 0
bl sub_8099690
bl sub_801A928
movs r0, 0x14
bl sub_8022924
b _080230E0
_080230DA:
movs r0, 0x1
bl sub_8022924
_080230E0:
add sp, 0x4
pop {r4}
pop {r0}
bx r0
thumb_func_end sub_8023068
thumb_func_start sub_80230E8
sub_80230E8:
push {lr}
bl sub_801B410
cmp r0, 0x1
bls _08023100
cmp r0, 0x3
bhi _08023100
bl sub_801B450
movs r0, 0x1
bl sub_8022924
_08023100:
pop {r0}
bx r0
thumb_func_end sub_80230E8
thumb_func_start sub_8023104
sub_8023104:
push {lr}
bl sub_801B00C
cmp r0, 0x1
bls _0802311C
cmp r0, 0x3
bhi _0802311C
bl sub_801B048
movs r0, 0x1
bl sub_8022924
_0802311C:
pop {r0}
bx r0
thumb_func_end sub_8023104
thumb_func_start sub_8023120
sub_8023120:
push {lr}
sub sp, 0x4
mov r0, sp
bl sub_80144A4
cmp r0, 0
bne _08023138
ldr r0, _08023140
ldr r0, [r0]
ldr r0, [r0, 0x4]
bl sub_8022924
_08023138:
add sp, 0x4
pop {r0}
bx r0
.align 2, 0
_08023140: .4byte gUnknown_203B294
thumb_func_end sub_8023120
thumb_func_start sub_8023144
sub_8023144:
push {r4-r7,lr}
mov r7, r10
mov r6, r9
mov r5, r8
push {r5-r7}
adds r7, r1, 0
mov r9, r2
mov r10, r3
lsls r0, 24
lsrs r0, 24
adds r4, r0, 0
bl sub_8023704
lsls r0, 24
cmp r0, 0
beq _08023168
movs r0, 0
b _08023252
_08023168:
ldr r6, _08023260
ldr r0, [r6]
cmp r0, 0
bne _0802317C
movs r0, 0xFF
lsls r0, 2
movs r1, 0x8
bl MemoryAlloc
str r0, [r6]
_0802317C:
ldr r0, [r6]
strb r4, [r0]
ldr r0, [r6]
ldr r1, _08023264
ldr r1, [r1]
str r1, [r0, 0x4]
movs r4, 0xE4
lsls r4, 2
adds r1, r0, r4
str r7, [r1]
movs r1, 0xE5
lsls r1, 2
mov r8, r1
adds r2, r0, r1
lsls r1, r7, 1
adds r1, r7
lsls r1, 3
movs r5, 0xE6
lsls r5, 2
adds r1, r5
adds r1, r0, r1
str r1, [r2]
adds r0, r5
bl sub_8006518
ldr r1, [r6]
adds r4, r1, r4
ldr r2, [r4]
lsls r0, r2, 1
adds r0, r2
lsls r0, 3
adds r1, r0
adds r1, r5
ldr r0, _08023268
ldm r0!, {r2-r4}
stm r1!, {r2-r4}
ldm r0!, {r2-r4}
stm r1!, {r2-r4}
ldr r2, [r6]
mov r1, r8
adds r0, r2, r1
ldr r1, [r0]
movs r3, 0xFE
lsls r3, 2
adds r0, r2, r3
str r0, [r1, 0x14]
mov r4, r9
cmp r4, 0
beq _080231F6
movs r1, 0xE4
lsls r1, 2
adds r0, r2, r1
ldr r1, [r0]
lsls r0, r1, 1
adds r0, r1
lsls r0, 3
subs r3, 0x58
adds r1, r2, r3
adds r1, r0
ldr r0, [r4]
str r0, [r1]
_080231F6:
ldr r0, [r6]
add r0, r8
ldr r0, [r0]
mov r1, r10
bl sub_8012D08
bl ResetUnusedInputStruct
ldr r0, [r6]
adds r0, r5
movs r1, 0x1
movs r2, 0x1
bl sub_800641C
ldr r4, [r6]
movs r5, 0xD7
lsls r5, 2
adds r4, r5
bl sub_80236A4
adds r1, r0, 0
adds r0, r4, 0
mov r2, r10
adds r3, r7, 0
bl sub_8013818
ldr r0, [r6]
ldr r1, _0802326C
ldrh r2, [r1]
movs r4, 0xDD
lsls r4, 2
adds r1, r0, r4
strh r2, [r1]
ldr r1, _08023270
ldrh r2, [r1]
ldr r3, _08023274
adds r1, r0, r3
strh r2, [r1]
adds r0, r5
bl sub_8013984
bl sub_8023420
bl sub_80234BC
movs r0, 0x1
_08023252:
pop {r3-r5}
mov r8, r3
mov r9, r4
mov r10, r5
pop {r4-r7}
pop {r1}
bx r1
.align 2, 0
_08023260: .4byte gUnknown_3001B5C
_08023264: .4byte gUnknown_203B298
_08023268: .4byte gUnknown_80DC91C
_0802326C: .4byte gUnknown_203B29C
_08023270: .4byte gUnknown_203B29E
_08023274: .4byte 0x0000037a
thumb_func_end sub_8023144
thumb_func_start sub_8023278
sub_8023278:
push {r4,lr}
lsls r0, 24
cmp r0, 0
bne _08023298
ldr r0, _08023294
ldr r0, [r0]
movs r1, 0xD7
lsls r1, 2
adds r0, r1
bl sub_8013660
movs r0, 0
b _08023316
.align 2, 0
_08023294: .4byte gUnknown_3001B5C
_08023298:
ldr r4, _080232B4
ldr r0, [r4]
movs r1, 0xD7
lsls r1, 2
adds r0, r1
bl GetKeyPress
cmp r0, 0x2
beq _080232BE
cmp r0, 0x2
bgt _080232B8
cmp r0, 0x1
beq _080232C8
b _080232EC
.align 2, 0
_080232B4: .4byte gUnknown_3001B5C
_080232B8:
cmp r0, 0x3
beq _080232D2
b _080232EC
_080232BE:
movs r0, 0x1
bl PlayMenuSoundEffect
movs r0, 0x2
b _08023316
_080232C8:
movs r0, 0
bl PlayMenuSoundEffect
movs r0, 0x3
b _08023316
_080232D2:
movs r0, 0x5
bl PlayMenuSoundEffect
ldr r0, [r4]
ldr r1, [r0, 0x4]
movs r2, 0x1
cmp r1, 0x1
bhi _080232E4
adds r2, r1, 0x1
_080232E4:
str r2, [r0, 0x4]
bl sub_80236A4
b _0802330C
_080232EC:
ldr r0, _08023308
ldr r0, [r0]
movs r1, 0xD7
lsls r1, 2
adds r0, r1
movs r1, 0x1
bl sub_80138B8
lsls r0, 24
cmp r0, 0
bne _0802330C
movs r0, 0
b _08023316
.align 2, 0
_08023308: .4byte gUnknown_3001B5C
_0802330C:
bl sub_8023420
bl sub_80234BC
movs r0, 0x1
_08023316:
pop {r4}
pop {r1}
bx r1
thumb_func_end sub_8023278
thumb_func_start sub_802331C
sub_802331C:
ldr r0, _0802334C
ldr r0, [r0]
ldr r2, _08023350
adds r1, r0, r2
movs r3, 0
ldrsh r2, [r1, r3]
movs r3, 0xDE
lsls r3, 2
adds r1, r0, r3
movs r3, 0
ldrsh r1, [r1, r3]
muls r1, r2
movs r3, 0xDD
lsls r3, 2
adds r2, r0, r3
movs r3, 0
ldrsh r2, [r2, r3]
adds r1, r2
lsls r1, 1
adds r0, 0xC
adds r0, r1
movs r1, 0
ldrsh r0, [r0, r1]
bx lr
.align 2, 0
_0802334C: .4byte gUnknown_3001B5C
_08023350: .4byte 0x0000037a
thumb_func_end sub_802331C
thumb_func_start sub_8023354
sub_8023354:
push {r4,r5,lr}
adds r4, r0, 0
lsls r4, 24
lsrs r4, 24
bl ResetUnusedInputStruct
ldr r5, _0802339C
ldr r0, [r5]
movs r1, 0xE6
lsls r1, 2
adds r0, r1
movs r1, 0
movs r2, 0
bl sub_800641C
ldr r0, [r5]
movs r1, 0xD7
lsls r1, 2
adds r0, r1
bl sub_8013984
bl sub_8023420
bl sub_80234BC
cmp r4, 0
beq _08023396
ldr r0, [r5]
movs r1, 0xD7
lsls r1, 2
adds r0, r1
bl AddMenuCursorSprite
_08023396:
pop {r4,r5}
pop {r0}
bx r0
.align 2, 0
_0802339C: .4byte gUnknown_3001B5C
thumb_func_end sub_8023354
thumb_func_start sub_80233A0
sub_80233A0:
push {r4-r6,lr}
ldr r5, _08023408
ldr r2, [r5]
cmp r2, 0
beq _08023400
ldr r1, _0802340C
ldr r0, [r2, 0x4]
str r0, [r1]
ldr r1, _08023410
movs r3, 0xDD
lsls r3, 2
adds r0, r2, r3
ldrh r0, [r0]
strh r0, [r1]
ldr r1, _08023414
ldr r6, _08023418
adds r0, r2, r6
ldrh r0, [r0]
strh r0, [r1]
movs r1, 0xE4
lsls r1, 2
adds r0, r2, r1
ldr r0, [r0]
lsls r1, r0, 1
adds r1, r0
lsls r1, 3
adds r1, r2, r1
movs r4, 0xE6
lsls r4, 2
adds r1, r4
ldr r0, _0802341C
ldm r0!, {r2,r3,r6}
stm r1!, {r2,r3,r6}
ldm r0!, {r2,r3,r6}
stm r1!, {r2,r3,r6}
bl ResetUnusedInputStruct
ldr r0, [r5]
adds r0, r4
movs r1, 0x1
movs r2, 0x1
bl sub_800641C
ldr r0, [r5]
bl MemoryFree
movs r0, 0
str r0, [r5]
_08023400:
pop {r4-r6}
pop {r0}
bx r0
.align 2, 0
_08023408: .4byte gUnknown_3001B5C
_0802340C: .4byte gUnknown_203B298
_08023410: .4byte gUnknown_203B29C
_08023414: .4byte gUnknown_203B29E
_08023418: .4byte 0x0000037a
_0802341C: .4byte gUnknown_80DC904
thumb_func_end sub_80233A0
thumb_func_start sub_8023420
sub_8023420:
push {r4,r5,lr}
ldr r4, _080234A8
ldr r0, [r4]
movs r1, 0xFE
lsls r1, 2
adds r0, r1
movs r2, 0
movs r1, 0x1
strb r1, [r0]
ldr r0, [r4]
ldr r1, _080234AC
adds r0, r1
strb r2, [r0]
ldr r0, [r4]
adds r1, 0x1
adds r0, r1
movs r1, 0xC
strb r1, [r0]
ldr r0, [r4]
ldr r1, _080234B0
adds r0, r1
strb r2, [r0]
ldr r0, [r4]
ldr r2, _080234B4
adds r0, r2
movs r1, 0
ldrsh r0, [r0, r1]
movs r1, 0xC
bl sub_80095E4
adds r0, 0x2
ldr r3, [r4]
movs r2, 0xE4
lsls r2, 2
adds r5, r3, r2
ldr r2, [r5]
lsls r1, r2, 1
adds r1, r2
lsls r1, 3
adds r1, r3, r1
ldr r2, _080234B8
adds r1, r2
lsls r0, 16
lsrs r0, 16
strh r0, [r1]
ldr r2, [r5]
lsls r1, r2, 1
adds r1, r2
lsls r1, 3
adds r3, r1
movs r1, 0xEA
lsls r1, 2
adds r3, r1
strh r0, [r3]
bl ResetUnusedInputStruct
ldr r0, [r4]
movs r2, 0xE6
lsls r2, 2
adds r0, r2
movs r1, 0x1
movs r2, 0x1
bl sub_800641C
pop {r4,r5}
pop {r0}
bx r0
.align 2, 0
_080234A8: .4byte gUnknown_3001B5C
_080234AC: .4byte 0x000003f9
_080234B0: .4byte 0x000003fb
_080234B4: .4byte 0x00000376
_080234B8: .4byte 0x000003a6
thumb_func_end sub_8023420
thumb_func_start sub_80234BC
sub_80234BC:
push {r4-r7,lr}
mov r7, r10
mov r6, r9
mov r5, r8
push {r5-r7}
sub sp, 0x178
ldr r5, _0802368C
ldr r0, [r5]
movs r4, 0xE4
lsls r4, 2
adds r0, r4
ldr r0, [r0]
bl sub_8008C54
ldr r0, [r5]
adds r0, r4
ldr r0, [r0]
bl sub_80073B8
ldr r2, _08023690
ldr r0, [r5]
adds r0, r4
ldr r3, [r0]
movs r0, 0
str r0, [sp]
movs r0, 0xA
movs r1, 0
bl xxx_call_draw_string
ldr r3, [r5]
ldr r1, _08023694
adds r0, r3, r1
ldrb r0, [r0]
lsls r0, 3
adds r0, 0x4
ldr r2, _08023698
adds r1, r3, r2
movs r6, 0
ldrsh r2, [r1, r6]
adds r2, 0x1
movs r1, 0x7
str r1, [sp]
adds r3, r4
ldr r1, [r3]
str r1, [sp, 0x4]
movs r1, 0
movs r3, 0x2
bl sub_8012BC4
movs r0, 0
mov r10, r0
ldr r0, [r5]
ldr r1, _0802369C
adds r0, r1
movs r2, 0
ldrsh r0, [r0, r2]
cmp r10, r0
blt _08023532
b _0802366C
_08023532:
ldr r3, _0802368C
ldr r0, [r3]
movs r6, 0xD7
lsls r6, 2
adds r0, r6
mov r1, r10
bl sub_8013800
mov r8, r0
ldr r0, _0802368C
ldr r1, [r0]
ldr r2, _08023698
adds r0, r1, r2
movs r3, 0
ldrsh r2, [r0, r3]
adds r6, 0x1C
adds r0, r1, r6
movs r3, 0
ldrsh r0, [r0, r3]
muls r0, r2
add r0, r10
lsls r0, 1
adds r1, 0xC
adds r1, r0
movs r6, 0
ldrsh r5, [r1, r6]
adds r0, r5, 0
bl GetFriendArea
lsls r0, 24
lsrs r0, 24
add r4, sp, 0x16C
adds r1, r4, 0
movs r2, 0
movs r3, 0
bl sub_8092638
movs r7, 0x7
ldrb r0, [r4, 0x4]
cmp r0, 0
beq _08023594
adds r0, r5, 0
bl HasRecruitedMon
lsls r0, 24
movs r7, 0x4
cmp r0, 0
beq _08023594
movs r7, 0x5
_08023594:
adds r0, r5, 0
movs r1, 0
bl GetDexInternalNo
lsls r0, 16
asrs r4, r0, 16
adds r0, r4, 0
movs r1, 0xA
bl __modsi3
adds r2, r0, 0
adds r2, 0x30
lsls r2, 24
lsrs r2, 24
ldr r6, _0802368C
ldr r0, [r6]
movs r1, 0xE4
lsls r1, 2
mov r9, r1
add r0, r9
ldr r0, [r0]
str r0, [sp]
movs r0, 0x14
mov r1, r8
adds r3, r7, 0
bl sub_8012C60
cmp r4, 0x9
ble _08023628
adds r0, r4, 0
movs r1, 0xA
bl __divsi3
adds r4, r0, 0
movs r1, 0xA
bl __modsi3
adds r2, r0, 0
adds r2, 0x30
lsls r2, 24
lsrs r2, 24
ldr r0, [r6]
movs r3, 0xE4
lsls r3, 2
adds r0, r3
ldr r0, [r0]
str r0, [sp]
movs r0, 0xD
mov r1, r8
adds r3, r7, 0
bl sub_8012C60
cmp r4, 0x9
ble _08023628
adds r0, r4, 0
movs r1, 0xA
bl __divsi3
movs r1, 0xA
bl __modsi3
adds r2, r0, 0
adds r2, 0x30
lsls r2, 24
lsrs r2, 24
ldr r0, [r6]
add r0, r9
ldr r0, [r0]
str r0, [sp]
movs r0, 0x6
mov r1, r8
adds r3, r7, 0
bl sub_8012C60
_08023628:
add r4, sp, 0x108
adds r0, r4, 0
adds r1, r5, 0
bl sub_808D930
add r0, sp, 0x8
ldr r1, _080236A0
adds r2, r7, 0
adds r3, r4, 0
bl 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