summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--asm/code_2.s2
-rw-r--r--asm/code_800D090.s4
-rw-r--r--asm/code_801B3C0.s2
-rw-r--r--asm/code_801C620.s4
-rw-r--r--asm/code_801EE10.s11152
-rw-r--r--asm/code_803B050.s2
-rw-r--r--asm/code_8095014.s4
-rw-r--r--asm/code_8098BDC.s4
-rw-r--r--asm/friend_area_action_menu.s93
-rw-r--r--asm/friend_list_menu.s13479
-rw-r--r--asm/friend_rescue.s2
-rw-r--r--asm/ground_lives.s14
-rw-r--r--asm/ground_script.s6
-rw-r--r--asm/kecleon_items_1.s730
-rw-r--r--asm/makuhita_dojo.s2
-rw-r--r--asm/pokemon.s6
-rw-r--r--asm/pokemon_square.s1898
-rw-r--r--asm/wonder_mail_2.s2
-rw-r--r--include/item.h2
-rw-r--r--include/kecleon_items.h21
-rwxr-xr-xld_script.txt6
-rw-r--r--src/debug_menu_mid.c1
-rw-r--r--src/friend_area.c8
-rw-r--r--src/friend_area_action_menu_1.c77
-rw-r--r--src/friend_list_menu.c446
-rw-r--r--src/items.c2
-rw-r--r--src/kangaskhan_storage_2.c1
-rw-r--r--src/kangaskhan_storage_3.c2
-rw-r--r--src/kecleon_items_1.c541
-rw-r--r--src/kecleon_items_2.c15
-rw-r--r--src/load_screen.c4
-rw-r--r--src/luminous_cave.c850
-rw-r--r--src/thank_you_wonder_mail.c6
-rw-r--r--src/wonder_mail_3_mid.c4
34 files changed, 13873 insertions, 15519 deletions
diff --git a/asm/code_2.s b/asm/code_2.s
index 4e8fddc..a9dbf43 100644
--- a/asm/code_2.s
+++ b/asm/code_2.s
@@ -1251,7 +1251,7 @@ _08001060: .4byte gUnknown_203B040
sub_8001064:
push {r4,r5,lr}
sub sp, 0x28
- bl sub_808D33C
+ bl GetPlayerPokemonStruct
cmp r0, 0
bne _080010AE
ldr r5, _0800109C
diff --git a/asm/code_800D090.s b/asm/code_800D090.s
index ba9391c..3f472f4 100644
--- a/asm/code_800D090.s
+++ b/asm/code_800D090.s
@@ -6923,7 +6923,7 @@ sub_801059C:
mov r5, r8
push {r5-r7}
sub sp, 0x14
- bl sub_808D33C
+ bl GetPlayerPokemonStruct
adds r7, r0, 0
ldr r6, _080106E4
ldr r0, [r6]
@@ -7898,7 +7898,7 @@ sub_8010DA4:
mov r5, r8
push {r5-r7}
sub sp, 0xC
- bl sub_808D33C
+ bl GetPlayerPokemonStruct
mov r9, r0
ldr r6, _08010EBC
ldr r0, [r6]
diff --git a/asm/code_801B3C0.s b/asm/code_801B3C0.s
index 9f4a4a1..7194473 100644
--- a/asm/code_801B3C0.s
+++ b/asm/code_801B3C0.s
@@ -59,7 +59,7 @@ _0801B65E:
ldr r0, [r5]
strb r2, [r0, 0x1C]
ldr r4, _0801B6A4
- bl sub_808D33C
+ bl GetPlayerPokemonStruct
adds r1, r0, 0
adds r0, r4, 0
movs r2, 0x6
diff --git a/asm/code_801C620.s b/asm/code_801C620.s
index 367553b..70524ed 100644
--- a/asm/code_801C620.s
+++ b/asm/code_801C620.s
@@ -1008,7 +1008,7 @@ _0801D08C:
strb r5, [r0, 0x8]
ldr r0, [r4]
strb r5, [r0, 0x9]
- bl sub_808D33C
+ bl GetPlayerPokemonStruct
ldr r1, [r4]
str r0, [r1, 0xC]
strb r5, [r1, 0x7]
@@ -1128,7 +1128,7 @@ _0801D196:
movs r0, 0x1
b _0801D1CC
_0801D1A0:
- bl sub_808D33C
+ bl GetPlayerPokemonStruct
ldr r1, [r4, 0xC]
cmp r1, r0
bne _0801D1C6
diff --git a/asm/code_801EE10.s b/asm/code_801EE10.s
new file mode 100644
index 0000000..7998909
--- /dev/null
+++ b/asm/code_801EE10.s
@@ -0,0 +1,11152 @@
+ .include "constants/gba_constants.inc"
+ .include "asm/macros.inc"
+
+ .syntax unified
+
+ .text
+
+ thumb_func_start sub_801EE10
+sub_801EE10:
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ adds r6, r0, 0
+ mov r9, r2
+ adds r4, r3, 0
+ ldr r0, [sp, 0x20]
+ mov r8, r0
+ lsls r1, 16
+ asrs r7, r1, 16
+ lsls r4, 24
+ lsrs r4, 24
+ ldr r5, _0801EF28
+ movs r0, 0xBC
+ movs r1, 0x8
+ bl MemoryAlloc
+ str r0, [r5]
+ movs r2, 0
+ strb r4, [r0, 0x4]
+ ldr r0, [r5]
+ movs r1, 0x1
+ strb r1, [r0, 0x5]
+ ldr r0, [r5]
+ strb r1, [r0, 0x6]
+ ldr r0, [r5]
+ strb r1, [r0, 0x7]
+ ldr r0, [r5]
+ str r6, [r0]
+ cmp r6, 0x1
+ bls _0801EE5E
+ cmp r6, 0x3
+ bhi _0801EE5E
+ strb r2, [r0, 0x5]
+ ldr r0, [r5]
+ strb r2, [r0, 0x6]
+ ldr r0, [r5]
+ strb r2, [r0, 0x7]
+_0801EE5E:
+ ldr r4, _0801EF28
+ ldr r3, [r4]
+ ldr r2, _0801EF2C
+ movs r0, 0x58
+ adds r1, r7, 0
+ muls r1, r0
+ ldr r0, [r2]
+ adds r0, r1
+ str r0, [r3, 0x8]
+ ldrb r0, [r0, 0x2]
+ strb r0, [r3, 0xC]
+ ldr r0, [r4]
+ mov r1, r9
+ str r1, [r0, 0x10]
+ adds r0, 0xB8
+ ldr r1, [sp, 0x1C]
+ str r1, [r0]
+ bl sub_801F3F8
+ adds r5, r0, 0
+ adds r6, r5, 0
+ cmp r5, 0x4
+ bge _0801EE8E
+ movs r6, 0x4
+_0801EE8E:
+ ldr r0, [r4]
+ adds r0, 0x58
+ bl sub_8006518
+ ldr r1, [r4]
+ mov r2, r8
+ str r2, [r1, 0x50]
+ lsls r0, r2, 1
+ add r0, r8
+ lsls r0, 3
+ adds r1, r0
+ adds r1, 0x58
+ ldr r0, _0801EF30
+ ldm r0!, {r2,r3,r7}
+ stm r1!, {r2,r3,r7}
+ ldm r0!, {r2,r3,r7}
+ stm r1!, {r2,r3,r7}
+ ldr r0, [r4]
+ adds r0, 0xB8
+ ldr r0, [r0]
+ cmp r0, 0
+ beq _0801EED8
+ mov r0, r8
+ bl sub_8006544
+ ldr r1, [r4]
+ str r0, [r1, 0x54]
+ lsls r2, r0, 1
+ adds r2, r0
+ lsls r2, 3
+ adds r1, r2
+ adds r1, 0x58
+ ldr r0, _0801EF34
+ ldm r0!, {r2,r3,r7}
+ stm r1!, {r2,r3,r7}
+ ldm r0!, {r2,r3,r7}
+ stm r1!, {r2,r3,r7}
+_0801EED8:
+ ldr r0, [r4]
+ ldr r2, [r0, 0x50]
+ lsls r1, r2, 1
+ adds r1, r2
+ lsls r1, 3
+ adds r1, 0x58
+ adds r0, r1
+ adds r1, r6, 0
+ bl sub_8012D08
+ bl ResetUnusedInputStruct
+ ldr r0, [r4]
+ adds r0, 0x58
+ movs r1, 0x1
+ movs r2, 0x1
+ bl sub_800641C
+ ldr r0, [r4]
+ adds r0, 0x1C
+ adds r1, r5, 0
+ adds r2, r5, 0
+ mov r3, r8
+ bl sub_8013818
+ ldr r0, [r4]
+ adds r0, 0x1C
+ movs r1, 0
+ bl sub_8013780
+ movs r0, 0x1
+ bl sub_801F280
+ movs r0, 0x1
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0801EF28: .4byte gUnknown_203B270
+_0801EF2C: .4byte gRecruitedPokemonRef
+_0801EF30: .4byte gUnknown_80DC25C
+_0801EF34: .4byte gUnknown_80DC274
+ thumb_func_end sub_801EE10
+
+ thumb_func_start sub_801EF38
+sub_801EF38:
+ push {r4-r7,lr}
+ lsls r0, 24
+ movs r7, 0
+ cmp r0, 0
+ bne _0801EF54
+ ldr r0, _0801EF50
+ ldr r0, [r0]
+ adds r0, 0x1C
+ bl sub_8013660
+ b _0801F18C
+ .align 2, 0
+_0801EF50: .4byte gUnknown_203B270
+_0801EF54:
+ ldr r0, _0801EF70
+ ldr r0, [r0]
+ adds r0, 0x1C
+ bl GetKeyPress
+ subs r0, 0x1
+ cmp r0, 0xC
+ bls _0801EF66
+ b _0801F12E
+_0801EF66:
+ lsls r0, 2
+ ldr r1, _0801EF74
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_0801EF70: .4byte gUnknown_203B270
+_0801EF74: .4byte _0801EF78
+ .align 2, 0
+_0801EF78:
+ .4byte _0801EFB6
+ .4byte _0801EFAC
+ .4byte _0801F0E4
+ .4byte _0801EFC0
+ .4byte _0801F12E
+ .4byte _0801F12E
+ .4byte _0801EFE4
+ .4byte _0801EFCA
+ .4byte _0801F12E
+ .4byte _0801F12E
+ .4byte _0801F074
+ .4byte _0801F04C
+ .4byte _0801F018
+_0801EFAC:
+ movs r0, 0x1
+ bl PlayMenuSoundEffect
+ movs r0, 0x2
+ b _0801F18E
+_0801EFB6:
+ movs r0, 0
+ bl PlayMenuSoundEffect
+ movs r0, 0x3
+ b _0801F18E
+_0801EFC0:
+ movs r0, 0x4
+ bl PlayMenuSoundEffect
+ movs r0, 0x4
+ b _0801F18E
+_0801EFCA:
+ ldr r5, _0801EFE0
+ ldr r0, [r5]
+ movs r1, 0x34
+ ldrsh r6, [r0, r1]
+ adds r4, r0, 0
+ adds r4, 0x1C
+ ldr r0, [r0, 0x10]
+ adds r1, r6, 0
+ bl sub_8092E54
+ b _0801EFF8
+ .align 2, 0
+_0801EFE0: .4byte gUnknown_203B270
+_0801EFE4:
+ ldr r5, _0801F014
+ ldr r0, [r5]
+ movs r1, 0x34
+ ldrsh r6, [r0, r1]
+ adds r4, r0, 0
+ adds r4, 0x1C
+ ldr r0, [r0, 0x10]
+ adds r1, r6, 0
+ bl sub_8092EEC
+_0801EFF8:
+ adds r1, r0, 0
+ adds r0, r4, 0
+ bl sub_8013780
+ ldr r0, [r5]
+ movs r2, 0x34
+ ldrsh r0, [r0, r2]
+ cmp r6, r0
+ bne _0801F00C
+ b _0801F12E
+_0801F00C:
+ movs r0, 0x3
+ bl PlayMenuSoundEffect
+ b _0801F12E
+ .align 2, 0
+_0801F014: .4byte gUnknown_203B270
+_0801F018:
+ ldr r0, _0801F048
+ ldr r2, [r0]
+ ldrb r1, [r2, 0x5]
+ adds r5, r0, 0
+ cmp r1, 0
+ bne _0801F026
+ b _0801F12E
+_0801F026:
+ movs r0, 0x34
+ ldrsh r4, [r2, r0]
+ ldr r0, [r2, 0x10]
+ adds r1, r4, 0
+ bl sub_809309C
+_0801F032:
+ ldr r1, [r5]
+ strh r0, [r1, 0x34]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r4, r0
+ beq _0801F06C
+ movs r0, 0x3
+ bl PlayMenuSoundEffect
+ b _0801F182
+ .align 2, 0
+_0801F048: .4byte gUnknown_203B270
+_0801F04C:
+ ldr r0, _0801F068
+ ldr r2, [r0]
+ ldrb r1, [r2, 0x5]
+ adds r5, r0, 0
+ cmp r1, 0
+ beq _0801F12E
+ movs r1, 0x34
+ ldrsh r4, [r2, r1]
+ ldr r0, [r2, 0x10]
+ adds r1, r4, 0
+ bl sub_809324C
+ b _0801F032
+ .align 2, 0
+_0801F068: .4byte gUnknown_203B270
+_0801F06C:
+ movs r0, 0x2
+ bl PlayMenuSoundEffect
+ b _0801F182
+_0801F074:
+ ldr r0, _0801F0C8
+ ldr r2, [r0]
+ ldrb r1, [r2, 0x6]
+ adds r5, r0, 0
+ cmp r1, 0
+ beq _0801F12E
+ ldr r0, _0801F0CC
+ ldr r0, [r0]
+ movs r1, 0x98
+ lsls r1, 2
+ adds r0, r1
+ ldr r0, [r0]
+ cmp r0, 0x95
+ ble _0801F0D0
+ movs r1, 0x34
+ ldrsh r0, [r2, r1]
+ ldr r1, [r2, 0x10]
+ bl sub_8093318
+ lsls r0, 24
+ cmp r0, 0
+ beq _0801F0D0
+ ldr r1, [r5]
+ movs r2, 0x34
+ ldrsh r0, [r1, r2]
+ ldr r1, [r1, 0x10]
+ bl sub_8093400
+ movs r0, 0x6
+ bl PlayMenuSoundEffect
+ movs r7, 0x1
+ ldr r1, [r5]
+ ldrb r0, [r1, 0x4]
+ cmp r0, 0
+ bne _0801F12E
+ strb r7, [r1, 0x4]
+ movs r0, 0xA6
+ lsls r0, 1
+ bl PlaySound
+ b _0801F12E
+ .align 2, 0
+_0801F0C8: .4byte gUnknown_203B270
+_0801F0CC: .4byte gTeamInventory_203B460
+_0801F0D0:
+ ldr r0, _0801F0E0
+ ldr r1, [r0]
+ movs r2, 0x34
+ ldrsh r0, [r1, r2]
+ ldr r1, [r1, 0x10]
+ bl sub_8093468
+ b _0801F0FE
+ .align 2, 0
+_0801F0E0: .4byte gUnknown_203B270
+_0801F0E4:
+ ldr r0, _0801F10C
+ ldr r1, [r0]
+ ldrb r0, [r1, 0x7]
+ cmp r0, 0
+ beq _0801F12E
+ ldrb r0, [r1, 0xC]
+ cmp r0, 0
+ beq _0801F110
+ movs r2, 0x34
+ ldrsh r0, [r1, r2]
+ ldr r1, [r1, 0x10]
+ bl sub_80934DC
+_0801F0FE:
+ lsls r0, 24
+ cmp r0, 0
+ bne _0801F120
+ movs r0, 0x2
+ bl PlayMenuSoundEffect
+ b _0801F12E
+ .align 2, 0
+_0801F10C: .4byte gUnknown_203B270
+_0801F110:
+ movs r2, 0x34
+ ldrsh r0, [r1, r2]
+ ldr r1, [r1, 0x10]
+ bl sub_8093544
+ lsls r0, 24
+ cmp r0, 0
+ beq _0801F128
+_0801F120:
+ movs r0, 0x6
+ bl PlayMenuSoundEffect
+ b _0801F182
+_0801F128:
+ movs r0, 0x2
+ bl PlayMenuSoundEffect
+_0801F12E:
+ cmp r7, 0
+ bne _0801F182
+ movs r3, 0
+ ldr r5, _0801F160
+ movs r4, 0x1
+_0801F138:
+ ldr r2, [r5]
+ lsls r0, r3, 3
+ ldr r1, [r2, 0x10]
+ adds r1, r0
+ ldrb r1, [r1]
+ adds r0, r4, 0
+ ands r0, r1
+ cmp r0, 0
+ beq _0801F16C
+ movs r0, 0x2
+ ands r0, r1
+ lsls r0, 24
+ lsrs r1, r0, 24
+ cmp r1, 0
+ beq _0801F164
+ adds r0, r2, 0
+ adds r0, 0x14
+ adds r0, r3
+ strb r4, [r0]
+ b _0801F16C
+ .align 2, 0
+_0801F160: .4byte gUnknown_203B270
+_0801F164:
+ adds r0, r2, 0
+ adds r0, 0x14
+ adds r0, r3
+ strb r1, [r0]
+_0801F16C:
+ adds r3, 0x1
+ cmp r3, 0x7
+ ble _0801F138
+ ldr r1, [r5]
+ adds r0, r1, 0
+ adds r0, 0x1C
+ adds r1, 0x14
+ bl AddMenuCursorSprite_
+ cmp r7, 0
+ beq _0801F18C
+_0801F182:
+ movs r0, 0x1
+ bl sub_801F280
+ movs r0, 0x1
+ b _0801F18E
+_0801F18C:
+ movs r0, 0
+_0801F18E:
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_801EF38
+
+ thumb_func_start sub_801F194
+sub_801F194:
+ ldr r0, _0801F1A0
+ ldr r0, [r0]
+ movs r1, 0x34
+ ldrsh r0, [r0, r1]
+ bx lr
+ .align 2, 0
+_0801F1A0: .4byte gUnknown_203B270
+ thumb_func_end sub_801F194
+
+ thumb_func_start sub_801F1A4
+sub_801F1A4:
+ ldr r0, _0801F1AC
+ ldr r0, [r0]
+ ldrb r0, [r0, 0x4]
+ bx lr
+ .align 2, 0
+_0801F1AC: .4byte gUnknown_203B270
+ thumb_func_end sub_801F1A4
+
+ thumb_func_start sub_801F1B0
+sub_801F1B0:
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ lsls r1, 24
+ lsrs r1, 24
+ ldr r4, _0801F210
+ ldr r2, [r4]
+ ldrb r0, [r2, 0x4]
+ cmp r0, 0
+ bne _0801F1C6
+ strb r1, [r2, 0x4]
+_0801F1C6:
+ bl ResetUnusedInputStruct
+ ldr r0, [r4]
+ adds r0, 0x58
+ movs r1, 0x1
+ movs r2, 0x1
+ bl sub_800641C
+ bl sub_801F3F8
+ adds r1, r0, 0
+ ldr r0, [r4]
+ strh r1, [r0, 0x3E]
+ adds r0, 0x1C
+ bl sub_8013984
+ ldr r1, [r4]
+ ldr r0, [r1, 0x10]
+ movs r2, 0x34
+ ldrsh r1, [r1, r2]
+ bl sub_8092F4C
+ ldr r1, [r4]
+ strh r0, [r1, 0x34]
+ movs r0, 0x1
+ bl sub_801F280
+ cmp r5, 0
+ beq _0801F208
+ ldr r0, [r4]
+ adds r0, 0x1C
+ bl AddMenuCursorSprite
+_0801F208:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0801F210: .4byte gUnknown_203B270
+ thumb_func_end sub_801F1B0
+
+ thumb_func_start sub_801F214
+sub_801F214:
+ push {r4-r6,lr}
+ ldr r4, _0801F278
+ ldr r2, [r4]
+ cmp r2, 0
+ beq _0801F272
+ ldr r0, [r2, 0x50]
+ lsls r1, r0, 1
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r2, r1
+ ldr r3, _0801F27C
+ adds r1, 0x58
+ adds r0, r3, 0
+ ldm r0!, {r2,r5,r6}
+ stm r1!, {r2,r5,r6}
+ ldm r0!, {r2,r5,r6}
+ stm r1!, {r2,r5,r6}
+ ldr r2, [r4]
+ adds r0, r2, 0
+ adds r0, 0xB8
+ ldr r0, [r0]
+ cmp r0, 0
+ beq _0801F258
+ ldr r0, [r2, 0x54]
+ lsls r1, r0, 1
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r2, r1
+ adds r1, 0x58
+ adds r0, r3, 0
+ ldm r0!, {r2,r3,r5}
+ stm r1!, {r2,r3,r5}
+ ldm r0!, {r2,r3,r6}
+ stm r1!, {r2,r3,r6}
+_0801F258:
+ bl ResetUnusedInputStruct
+ ldr r0, [r4]
+ adds r0, 0x58
+ movs r1, 0x1
+ movs r2, 0x1
+ bl sub_800641C
+ ldr r0, [r4]
+ bl MemoryFree
+ movs r0, 0
+ str r0, [r4]
+_0801F272:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0801F278: .4byte gUnknown_203B270
+_0801F27C: .4byte gUnknown_80DC240
+ thumb_func_end sub_801F214
+
+ thumb_func_start sub_801F280
+sub_801F280:
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x28
+ lsls r0, 24
+ lsrs r0, 24
+ mov r10, r0
+ ldr r4, _0801F30C
+ ldr r0, [r4]
+ ldr r0, [r0, 0x50]
+ bl sub_8008C54
+ ldr r0, [r4]
+ ldr r0, [r0, 0x50]
+ bl sub_80073B8
+ ldr r0, [r4]
+ ldr r1, [r0, 0x8]
+ adds r1, 0x4C
+ add r0, sp, 0x4
+ movs r2, 0xA
+ bl sub_80922B4
+ ldr r0, _0801F310
+ add r1, sp, 0x4
+ bl strcpy
+ ldr r2, _0801F314
+ ldr r0, [r4]
+ ldr r3, [r0, 0x50]
+ movs r0, 0
+ str r0, [sp]
+ movs r0, 0xC
+ movs r1, 0
+ bl xxx_format_and_draw
+ movs r7, 0
+ ldr r0, [r4]
+ movs r1, 0x36
+ ldrsh r0, [r0, r1]
+ cmp r7, r0
+ bge _0801F394
+ add r5, sp, 0x18
+ mov r8, r4
+ movs r0, 0x1
+ mov r9, r0
+_0801F2E0:
+ adds r0, r5, 0
+ movs r1, 0
+ movs r2, 0xC
+ bl memset
+ movs r0, 0x6A
+ str r0, [r5, 0x4]
+ mov r1, r8
+ ldr r2, [r1]
+ lsls r1, r7, 3
+ ldr r0, [r2, 0x10]
+ adds r4, r0, r1
+ ldrb r1, [r4]
+ mov r0, r9
+ ands r0, r1
+ cmp r0, 0
+ beq _0801F386
+ ldrb r0, [r2, 0xC]
+ cmp r0, 0
+ beq _0801F318
+ movs r0, 0x2
+ b _0801F31A
+ .align 2, 0
+_0801F30C: .4byte gUnknown_203B270
+_0801F310: .4byte gAvailablePokemonNames
+_0801F314: .4byte gUnknown_80DC28C
+_0801F318:
+ movs r0, 0x4
+_0801F31A:
+ str r0, [sp, 0x18]
+ mov r1, r8
+ ldr r0, [r1]
+ ldrb r0, [r0, 0x6]
+ cmp r0, 0
+ beq _0801F328
+ mov r0, r9
+_0801F328:
+ strb r0, [r5, 0x9]
+ cmp r7, 0x3
+ ble _0801F332
+ mov r1, r9
+ strb r1, [r5, 0x8]
+_0801F332:
+ ldr r0, _0801F3EC
+ adds r1, r4, 0
+ adds r2, r5, 0
+ bl sub_80928A0
+ ldr r2, _0801F3F0
+ ldr r0, [r2]
+ adds r0, 0x1C
+ adds r1, r7, 0
+ str r2, [sp, 0x24]
+ bl sub_8013800
+ adds r6, r0, 0
+ ldrb r1, [r4]
+ movs r0, 0x2
+ ands r0, r1
+ movs r4, 0xD
+ ldr r2, [sp, 0x24]
+ cmp r0, 0
+ bne _0801F372
+ movs r4, 0x8
+ cmp r7, 0
+ beq _0801F372
+ ldr r0, [r2]
+ ldr r0, [r0, 0x50]
+ subs r2, r6, 0x2
+ movs r1, 0x7
+ str r1, [sp]
+ movs r1, 0xC
+ movs r3, 0x78
+ bl sub_800792C
+_0801F372:
+ mov r1, r8
+ ldr r0, [r1]
+ ldr r3, [r0, 0x50]
+ movs r0, 0
+ str r0, [sp]
+ adds r0, r4, 0
+ adds r1, r6, 0
+ ldr r2, _0801F3F4
+ bl xxx_format_and_draw
+_0801F386:
+ adds r7, 0x1
+ mov r1, r8
+ ldr r0, [r1]
+ movs r1, 0x36
+ ldrsh r0, [r0, r1]
+ cmp r7, r0
+ blt _0801F2E0
+_0801F394:
+ ldr r4, _0801F3F0
+ ldr r0, [r4]
+ ldr r0, [r0, 0x50]
+ bl sub_80073E0
+ ldr r1, [r4]
+ adds r0, r1, 0
+ adds r0, 0xB8
+ ldr r0, [r0]
+ cmp r0, 0
+ beq _0801F3DC
+ mov r0, r10
+ cmp r0, 0
+ beq _0801F3DC
+ ldr r0, [r1, 0x54]
+ bl sub_8008C54
+ ldr r0, [r4]
+ ldr r0, [r0, 0x54]
+ bl sub_80073B8
+ ldr r1, [r4]
+ adds r0, r1, 0
+ adds r0, 0xB8
+ ldr r2, [r0]
+ ldr r3, [r1, 0x54]
+ movs r0, 0
+ str r0, [sp]
+ movs r0, 0x8
+ movs r1, 0
+ bl xxx_format_and_draw
+ ldr r0, [r4]
+ ldr r0, [r0, 0x54]
+ bl sub_80073E0
+_0801F3DC:
+ add sp, 0x28
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0801F3EC: .4byte gUnknown_202DE58
+_0801F3F0: .4byte gUnknown_203B270
+_0801F3F4: .4byte gUnknown_80DC2A0
+ thumb_func_end sub_801F280
+
+ thumb_func_start sub_801F3F8
+sub_801F3F8:
+ push {r4,r5,lr}
+ movs r4, 0
+ ldr r0, _0801F424
+ ldr r0, [r0]
+ movs r5, 0x1
+ ldr r2, [r0, 0x10]
+ movs r3, 0x7
+_0801F406:
+ ldrb r1, [r2]
+ adds r0, r5, 0
+ ands r0, r1
+ cmp r0, 0
+ beq _0801F412
+ adds r4, 0x1
+_0801F412:
+ adds r2, 0x8
+ subs r3, 0x1
+ cmp r3, 0
+ bge _0801F406
+ adds r0, r4, 0
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0801F424: .4byte gUnknown_203B270
+ thumb_func_end sub_801F3F8
+
+ thumb_func_start sub_801F428
+sub_801F428:
+ push {r4-r6,lr}
+ mov r6, r9
+ mov r5, r8
+ push {r5,r6}
+ adds r4, r0, 0
+ mov r9, r1
+ lsls r4, 16
+ asrs r4, 16
+ ldr r5, _0801F50C
+ movs r0, 0xFA
+ lsls r0, 2
+ movs r1, 0x8
+ bl MemoryAlloc
+ str r0, [r5]
+ ldr r3, _0801F510
+ movs r1, 0x58
+ adds r2, r4, 0
+ muls r2, r1
+ ldr r1, [r3]
+ adds r1, r2
+ str r1, [r0]
+ adds r1, r0, 0
+ adds r1, 0x8
+ str r1, [r0, 0x4]
+ movs r4, 0xDF
+ lsls r4, 2
+ adds r1, r0, r4
+ mov r2, r9
+ str r2, [r1]
+ movs r6, 0xE0
+ lsls r6, 2
+ adds r2, r0, r6
+ mov r3, r9
+ lsls r1, r3, 1
+ add r1, r9
+ lsls r1, 3
+ movs r3, 0xE1
+ lsls r3, 2
+ mov r8, r3
+ add r1, r8
+ adds r1, r0, r1
+ str r1, [r2]
+ add r0, r8
+ bl sub_8006518
+ ldr r1, [r5]
+ adds r4, r1, r4
+ ldr r2, [r4]
+ lsls r0, r2, 1
+ adds r0, r2
+ lsls r0, 3
+ adds r1, r0
+ add r1, r8
+ ldr r0, _0801F514
+ ldm r0!, {r2-r4}
+ stm r1!, {r2-r4}
+ ldm r0!, {r2-r4}
+ stm r1!, {r2-r4}
+ ldr r1, [r5]
+ adds r6, r1, r6
+ ldr r0, [r6]
+ movs r4, 0xF9
+ lsls r4, 2
+ adds r1, r4
+ str r1, [r0, 0x14]
+ movs r2, 0
+ movs r0, 0x1
+ strb r0, [r1]
+ ldr r0, [r5]
+ ldr r1, _0801F518
+ adds r0, r1
+ strb r2, [r0]
+ ldr r0, [r5]
+ ldr r3, _0801F51C
+ adds r0, r3
+ movs r1, 0xC
+ strb r1, [r0]
+ ldr r0, [r5]
+ adds r4, 0x3
+ adds r0, r4
+ strb r2, [r0]
+ bl ResetUnusedInputStruct
+ ldr r0, [r5]
+ add r0, r8
+ movs r1, 0x1
+ movs r2, 0x1
+ bl sub_800641C
+ ldr r4, [r5]
+ movs r0, 0xD2
+ lsls r0, 2
+ adds r4, r0
+ bl sub_801F7E4
+ adds r1, r0, 0
+ adds r0, r4, 0
+ movs r2, 0x4
+ mov r3, r9
+ bl sub_8013818
+ bl sub_801F690
+ bl sub_801F700
+ movs r0, 0x1
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0801F50C: .4byte gUnknown_203B274
+_0801F510: .4byte gRecruitedPokemonRef
+_0801F514: .4byte gUnknown_80DC2C4
+_0801F518: .4byte 0x000003e5
+_0801F51C: .4byte 0x000003e6
+ thumb_func_end sub_801F428
+
+ thumb_func_start sub_801F520
+sub_801F520:
+ push {lr}
+ lsls r0, 24
+ cmp r0, 0
+ bne _0801F540
+ ldr r0, _0801F53C
+ ldr r0, [r0]
+ movs r1, 0xD2
+ lsls r1, 2
+ adds r0, r1
+ bl sub_8013660
+ movs r0, 0
+ b _0801F5AE
+ .align 2, 0
+_0801F53C: .4byte gUnknown_203B274
+_0801F540:
+ ldr r0, _0801F55C
+ ldr r0, [r0]
+ movs r1, 0xD2
+ lsls r1, 2
+ adds r0, r1
+ bl GetKeyPress
+ cmp r0, 0x2
+ beq _0801F566
+ cmp r0, 0x2
+ bgt _0801F560
+ cmp r0, 0x1
+ beq _0801F570
+ b _0801F584
+ .align 2, 0
+_0801F55C: .4byte gUnknown_203B274
+_0801F560:
+ cmp r0, 0x4
+ beq _0801F57A
+ b _0801F584
+_0801F566:
+ movs r0, 0x1
+ bl PlayMenuSoundEffect
+ movs r0, 0x2
+ b _0801F5AE
+_0801F570:
+ movs r0, 0
+ bl PlayMenuSoundEffect
+ movs r0, 0x3
+ b _0801F5AE
+_0801F57A:
+ movs r0, 0x4
+ bl PlayMenuSoundEffect
+ movs r0, 0x4
+ b _0801F5AE
+_0801F584:
+ ldr r0, _0801F5A0
+ ldr r0, [r0]
+ movs r1, 0xD2
+ lsls r1, 2
+ adds r0, r1
+ movs r1, 0x1
+ bl sub_80138B8
+ lsls r0, 24
+ cmp r0, 0
+ bne _0801F5A4
+ movs r0, 0
+ b _0801F5AE
+ .align 2, 0
+_0801F5A0: .4byte gUnknown_203B274
+_0801F5A4:
+ bl sub_801F690
+ bl sub_801F700
+ movs r0, 0x1
+_0801F5AE:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_801F520
+
+ thumb_func_start sub_801F5B4
+sub_801F5B4:
+ push {r4,lr}
+ ldr r0, _0801F5E8
+ ldr r1, [r0]
+ ldr r2, [r1, 0x4]
+ ldr r3, _0801F5EC
+ adds r0, r1, r3
+ movs r4, 0
+ ldrsh r3, [r0, r4]
+ movs r4, 0xD9
+ lsls r4, 2
+ adds r0, r1, r4
+ movs r4, 0
+ ldrsh r0, [r0, r4]
+ muls r0, r3
+ movs r3, 0xD8
+ lsls r3, 2
+ adds r1, r3
+ movs r4, 0
+ ldrsh r1, [r1, r4]
+ adds r0, r1
+ lsls r0, 1
+ adds r2, r0
+ ldrh r0, [r2]
+ pop {r4}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0801F5E8: .4byte gUnknown_203B274
+_0801F5EC: .4byte 0x00000366
+ thumb_func_end sub_801F5B4
+
+ thumb_func_start sub_801F5F0
+sub_801F5F0:
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ bl ResetUnusedInputStruct
+ ldr r5, _0801F638
+ ldr r0, [r5]
+ movs r1, 0xE1
+ lsls r1, 2
+ adds r0, r1
+ movs r1, 0
+ movs r2, 0
+ bl sub_800641C
+ ldr r0, [r5]
+ movs r1, 0xD2
+ lsls r1, 2
+ adds r0, r1
+ bl sub_8013984
+ bl sub_801F690
+ bl sub_801F700
+ cmp r4, 0
+ beq _0801F632
+ ldr r0, [r5]
+ movs r1, 0xD2
+ lsls r1, 2
+ adds r0, r1
+ bl AddMenuCursorSprite
+_0801F632:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0801F638: .4byte gUnknown_203B274
+ thumb_func_end sub_801F5F0
+
+ thumb_func_start sub_801F63C
+sub_801F63C:
+ push {r4-r6,lr}
+ ldr r5, _0801F688
+ ldr r2, [r5]
+ cmp r2, 0
+ beq _0801F680
+ movs r1, 0xDF
+ lsls r1, 2
+ adds r0, r2, r1
+ ldr r0, [r0]
+ lsls r1, r0, 1
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r2, r1
+ movs r4, 0xE1
+ lsls r4, 2
+ adds r1, r4
+ ldr r0, _0801F68C
+ ldm r0!, {r2,r3,r6}
+ stm r1!, {r2,r3,r6}
+ ldm r0!, {r2,r3,r6}
+ stm r1!, {r2,r3,r6}
+ bl ResetUnusedInputStruct
+ ldr r0, [r5]
+ adds r0, r4
+ movs r1, 0x1
+ movs r2, 0x1
+ bl sub_800641C
+ ldr r0, [r5]
+ bl MemoryFree
+ movs r0, 0
+ str r0, [r5]
+_0801F680:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0801F688: .4byte gUnknown_203B274
+_0801F68C: .4byte gUnknown_80DC2AC
+ thumb_func_end sub_801F63C
+
+ thumb_func_start sub_801F690
+sub_801F690:
+ push {r4,r5,lr}
+ ldr r5, _0801F6F4
+ ldr r0, [r5]
+ ldr r1, _0801F6F8
+ adds r0, r1
+ movs r2, 0
+ ldrsh r0, [r0, r2]
+ movs r1, 0xC
+ bl sub_80095E4
+ adds r0, 0x2
+ lsls r0, 16
+ ldr r3, [r5]
+ movs r1, 0xDF
+ lsls r1, 2
+ adds r4, r3, r1
+ ldr r2, [r4]
+ lsls r1, r2, 1
+ adds r1, r2
+ lsls r1, 3
+ adds r1, r3, r1
+ ldr r2, _0801F6FC
+ adds r1, r2
+ asrs r2, r0, 16
+ lsrs r0, 16
+ strh r0, [r1]
+ ldr r1, [r4]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 3
+ adds r3, r0
+ adds r2, 0x2
+ movs r0, 0xE5
+ lsls r0, 2
+ adds r3, r0
+ strh r2, [r3]
+ bl ResetUnusedInputStruct
+ ldr r0, [r5]
+ movs r1, 0xE1
+ lsls r1, 2
+ adds r0, r1
+ movs r1, 0x1
+ movs r2, 0x1
+ bl sub_800641C
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0801F6F4: .4byte gUnknown_203B274
+_0801F6F8: .4byte 0x00000362
+_0801F6FC: .4byte 0x00000392
+ thumb_func_end sub_801F690
+
+ thumb_func_start sub_801F700
+sub_801F700:
+ push {r4-r7,lr}
+ sub sp, 0xB4
+ ldr r6, _0801F7D4
+ ldr r0, [r6]
+ movs r4, 0xDF
+ lsls r4, 2
+ adds r0, r4
+ ldr r0, [r0]
+ bl sub_8008C54
+ ldr r0, [r6]
+ adds r0, r4
+ ldr r0, [r0]
+ bl sub_80073B8
+ add r5, sp, 0x34
+ ldr r1, _0801F7D8
+ ldr r0, [r6]
+ ldr r3, _0801F7DC
+ adds r2, r0, r3
+ movs r7, 0
+ ldrsh r2, [r2, r7]
+ adds r2, 0x1
+ adds r3, 0x2
+ adds r0, r3
+ movs r7, 0
+ ldrsh r3, [r0, r7]
+ adds r0, r5, 0
+ bl ExpandPlaceholdersBuffer
+ ldr r0, [r6]
+ adds r0, r4
+ ldr r3, [r0]
+ movs r0, 0
+ str r0, [sp]
+ movs r0, 0x10
+ movs r1, 0
+ adds r2, r5, 0
+ bl xxx_call_draw_string
+ movs r4, 0
+ ldr r0, [r6]
+ ldr r1, _0801F7E0
+ adds r0, r1
+ movs r2, 0
+ ldrsh r0, [r0, r2]
+ cmp r4, r0
+ bge _0801F7BC
+ adds r5, r6, 0
+_0801F762:
+ ldr r1, [r5]
+ ldr r2, [r1, 0x4]
+ ldr r3, _0801F7DC
+ adds r0, r1, r3
+ movs r6, 0
+ ldrsh r3, [r0, r6]
+ movs r7, 0xD9
+ lsls r7, 2
+ adds r1, r7
+ movs r6, 0
+ ldrsh r0, [r1, r6]
+ muls r0, r3
+ adds r0, r4
+ lsls r0, 1
+ adds r2, r0
+ ldrh r1, [r2]
+ add r0, sp, 0x4
+ bl sub_8092C84
+ ldr r0, [r5]
+ subs r7, 0x1C
+ adds r0, r7
+ adds r1, r4, 0
+ bl sub_8013800
+ adds r1, r0, 0
+ ldr r0, [r5]
+ movs r2, 0xDF
+ lsls r2, 2
+ adds r0, r2
+ ldr r3, [r0]
+ movs r0, 0
+ str r0, [sp]
+ movs r0, 0x8
+ add r2, sp, 0x4
+ bl xxx_call_draw_string
+ adds r4, 0x1
+ ldr r0, [r5]
+ ldr r3, _0801F7E0
+ adds r0, r3
+ movs r6, 0
+ ldrsh r0, [r0, r6]
+ cmp r4, r0
+ blt _0801F762
+_0801F7BC:
+ ldr r0, _0801F7D4
+ ldr r0, [r0]
+ movs r7, 0xDF
+ lsls r7, 2
+ adds r0, r7
+ ldr r0, [r0]
+ bl sub_80073E0
+ add sp, 0xB4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0801F7D4: .4byte gUnknown_203B274
+_0801F7D8: .4byte gUnknown_80DC2DC
+_0801F7DC: .4byte 0x00000366
+_0801F7E0: .4byte 0x00000362
+ thumb_func_end sub_801F700
+
+ thumb_func_start sub_801F7E4
+sub_801F7E4:
+ push {r4,lr}
+ ldr r4, _0801F804
+ ldr r1, [r4]
+ ldr r0, [r1, 0x4]
+ ldr r1, [r1]
+ bl sub_808E218
+ ldr r0, [r4]
+ ldr r0, [r0, 0x4]
+ movs r1, 0xCF
+ lsls r1, 2
+ adds r0, r1
+ ldr r0, [r0]
+ pop {r4}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0801F804: .4byte gUnknown_203B274
+ thumb_func_end sub_801F7E4
+
+ thumb_func_start sub_801F808
+sub_801F808:
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ movs r0, 0x1
+ bl ResetSprites
+ ldr r5, _0801F88C
+ movs r0, 0xD4
+ movs r1, 0x8
+ bl MemoryAlloc
+ str r0, [r5]
+ movs r1, 0
+ str r1, [r0, 0x5C]
+ adds r1, r0, 0
+ adds r1, 0x64
+ str r1, [r0, 0x60]
+ adds r0, r1, 0
+ bl sub_80140B4
+ bl ResetUnusedInputStruct
+ ldr r0, [r5]
+ adds r0, 0x64
+ movs r1, 0x1
+ movs r2, 0x1
+ bl sub_800641C
+ ldr r0, [r5]
+ str r4, [r0, 0x4]
+ movs r2, 0x4
+ ldrh r0, [r4, 0x6]
+ cmp r0, 0
+ bne _0801F862
+ adds r3, r5, 0
+_0801F84C:
+ subs r2, 0x1
+ cmp r2, 0x1
+ ble _0801F862
+ ldr r0, [r3]
+ ldr r1, [r0, 0x4]
+ lsls r0, r2, 1
+ adds r0, r1
+ subs r0, 0x2
+ ldrh r0, [r0]
+ cmp r0, 0
+ beq _0801F84C
+_0801F862:
+ ldr r4, _0801F88C
+ ldr r1, [r4]
+ adds r0, r1, 0
+ adds r0, 0x28
+ ldr r3, [r1, 0x5C]
+ adds r1, r2, 0
+ movs r2, 0x1
+ bl sub_8013818
+ ldr r0, [r4]
+ adds r0, 0xC8
+ bl sub_801317C
+ movs r0, 0
+ bl sub_801F918
+ movs r0, 0x1
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0801F88C: .4byte gUnknown_203B278
+ thumb_func_end sub_801F808
+
+ thumb_func_start sub_801F890
+sub_801F890:
+ push {lr}
+ ldr r0, _0801F8A8
+ ldr r0, [r0]
+ ldr r0, [r0]
+ cmp r0, 0x1
+ beq _0801F8BC
+ cmp r0, 0x1
+ bgt _0801F8AC
+ cmp r0, 0
+ beq _0801F8B6
+ b _0801F8C6
+ .align 2, 0
+_0801F8A8: .4byte gUnknown_203B278
+_0801F8AC:
+ cmp r0, 0x2
+ beq _0801F8C6
+ cmp r0, 0x3
+ beq _0801F8C2
+ b _0801F8C6
+_0801F8B6:
+ bl sub_801FA58
+ b _0801F8CA
+_0801F8BC:
+ bl sub_801FAD4
+ b _0801F8CA
+_0801F8C2:
+ movs r0, 0x3
+ b _0801F8CC
+_0801F8C6:
+ movs r0, 0x2
+ b _0801F8CC
+_0801F8CA:
+ movs r0, 0
+_0801F8CC:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_801F890
+
+ thumb_func_start sub_801F8D0
+sub_801F8D0:
+ push {r4,r5,lr}
+ ldr r4, _0801F910
+ ldr r2, [r4]
+ cmp r2, 0
+ beq _0801F90A
+ ldr r0, [r2, 0x5C]
+ lsls r1, r0, 1
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r2, r1
+ adds r1, 0x64
+ ldr r0, _0801F914
+ ldm r0!, {r2,r3,r5}
+ stm r1!, {r2,r3,r5}
+ ldm r0!, {r2,r3,r5}
+ stm r1!, {r2,r3,r5}
+ bl ResetUnusedInputStruct
+ ldr r0, [r4]
+ adds r0, 0x64
+ movs r1, 0x1
+ movs r2, 0x1
+ bl sub_800641C
+ ldr r0, [r4]
+ bl MemoryFree
+ movs r0, 0
+ str r0, [r4]
+_0801F90A:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0801F910: .4byte gUnknown_203B278
+_0801F914: .4byte gUnknown_80DC2F8
+ thumb_func_end sub_801F8D0
+
+ thumb_func_start sub_801F918
+sub_801F918:
+ push {lr}
+ ldr r1, _0801F92C
+ ldr r1, [r1]
+ str r0, [r1]
+ bl sub_801F930
+ bl sub_801F9A4
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0801F92C: .4byte gUnknown_203B278
+ thumb_func_end sub_801F918
+
+ thumb_func_start sub_801F930
+sub_801F930:
+ push {r4,lr}
+ ldr r4, _0801F94C
+ ldr r0, [r4]
+ adds r0, 0x64
+ bl sub_80140B4
+ ldr r2, [r4]
+ ldr r3, [r2]
+ cmp r3, 0
+ beq _0801F950
+ cmp r3, 0x1
+ beq _0801F98C
+ b _0801F99C
+ .align 2, 0
+_0801F94C: .4byte gUnknown_203B278
+_0801F950:
+ ldr r0, [r2, 0x60]
+ adds r1, r2, 0
+ adds r1, 0xC4
+ str r1, [r0, 0x14]
+ adds r0, r2, 0
+ adds r0, 0x48
+ ldrh r0, [r0]
+ strb r0, [r1]
+ ldr r0, [r4]
+ adds r1, r0, 0
+ adds r1, 0x46
+ ldrh r1, [r1]
+ adds r0, 0xC5
+ strb r1, [r0]
+ ldr r0, [r4]
+ adds r0, 0xC6
+ movs r1, 0x10
+ strb r1, [r0]
+ ldr r0, [r4]
+ adds r0, 0xC7
+ strb r3, [r0]
+ bl ResetUnusedInputStruct
+ ldr r0, [r4]
+ adds r0, 0x64
+ movs r1, 0x1
+ movs r2, 0x1
+ bl sub_800641C
+ b _0801F99C
+_0801F98C:
+ bl ResetUnusedInputStruct
+ ldr r0, [r4]
+ adds r0, 0x64
+ movs r1, 0x1
+ movs r2, 0x1
+ bl sub_800641C
+_0801F99C:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_801F930
+
+ thumb_func_start sub_801F9A4
+sub_801F9A4:
+ push {r4,r5,lr}
+ sub sp, 0x4
+ ldr r5, _0801F9EC
+ ldr r0, [r5]
+ ldr r4, [r0]
+ cmp r4, 0x1
+ beq _0801F9F0
+ cmp r4, 0x1
+ bgt _0801FA48
+ cmp r4, 0
+ bne _0801FA48
+ ldr r0, [r0, 0x5C]
+ bl sub_8008C54
+ ldr r3, [r5]
+ adds r2, r3, 0
+ adds r2, 0x46
+ movs r1, 0
+ ldrsh r0, [r2, r1]
+ ldr r1, [r3, 0x4]
+ lsls r0, 1
+ adds r0, r1
+ ldrh r0, [r0]
+ strh r0, [r3, 0x8]
+ movs r1, 0
+ ldrsh r0, [r2, r1]
+ ldrh r1, [r3, 0x8]
+ ldr r2, [r3, 0x5C]
+ adds r3, 0x14
+ bl sub_8093D9C
+ ldr r1, [r5]
+ str r0, [r1, 0x10]
+ str r4, [r1, 0x24]
+ b _0801FA48
+ .align 2, 0
+_0801F9EC: .4byte gUnknown_203B278
+_0801F9F0:
+ ldr r0, [r0, 0x5C]
+ bl sub_8008C54
+ ldr r0, [r5]
+ ldr r0, [r0, 0x5C]
+ bl sub_80073B8
+ ldr r0, [r5]
+ ldr r1, [r0, 0xC]
+ lsls r1, 2
+ adds r0, 0x14
+ adds r0, r1
+ ldr r1, [r0]
+ ldr r0, _0801FA50
+ ldr r1, [r1]
+ bl strcpy
+ ldr r2, _0801FA54
+ ldr r0, [r5]
+ ldr r3, [r0, 0x5C]
+ movs r4, 0
+ str r4, [sp]
+ movs r0, 0x10
+ movs r1, 0
+ bl xxx_format_and_draw
+ ldr r3, [r5]
+ ldr r1, [r3, 0xC]
+ lsls r1, 2
+ adds r0, r3, 0
+ adds r0, 0x14
+ adds r0, r1
+ ldr r0, [r0]
+ ldr r2, [r0, 0x4]
+ ldr r3, [r3, 0x5C]
+ str r4, [sp]
+ movs r0, 0x4
+ movs r1, 0x10
+ bl xxx_format_and_draw
+ ldr r0, [r5]
+ ldr r0, [r0, 0x5C]
+ bl sub_80073E0
+_0801FA48:
+ add sp, 0x4
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0801FA50: .4byte gAvailablePokemonNames
+_0801FA54: .4byte gUnknown_80DC310
+ thumb_func_end sub_801F9A4
+
+ thumb_func_start sub_801FA58
+sub_801FA58:
+ push {r4,lr}
+ ldr r0, _0801FAA4
+ ldr r2, [r0]
+ ldr r1, [r2, 0x10]
+ adds r4, r0, 0
+ cmp r1, 0
+ beq _0801FA7C
+ ldr r0, [r2, 0x24]
+ movs r1, 0x8
+ ands r0, r1
+ cmp r0, 0
+ beq _0801FA74
+ bl sub_8013F84
+_0801FA74:
+ ldr r1, [r4]
+ ldr r0, [r1, 0x24]
+ adds r0, 0x1
+ str r0, [r1, 0x24]
+_0801FA7C:
+ ldr r1, [r4]
+ adds r0, r1, 0
+ adds r0, 0xC8
+ ldr r1, [r1, 0x5C]
+ bl sub_8012A64
+ cmp r0, 0x1
+ beq _0801FAA8
+ cmp r0, 0x2
+ beq _0801FAC2
+ ldr r0, [r4]
+ adds r0, 0x28
+ bl sub_8013938
+ lsls r0, 24
+ cmp r0, 0
+ beq _0801FACE
+ movs r0, 0
+ b _0801FACA
+ .align 2, 0
+_0801FAA4: .4byte gUnknown_203B278
+_0801FAA8:
+ movs r0, 0
+ bl PlayMenuSoundEffect
+ ldr r1, [r4]
+ ldr r0, [r1, 0x10]
+ cmp r0, 0
+ beq _0801FABE
+ movs r0, 0
+ str r0, [r1, 0xC]
+ movs r0, 0x1
+ b _0801FACA
+_0801FABE:
+ movs r0, 0x3
+ b _0801FACA
+_0801FAC2:
+ movs r0, 0x1
+ bl PlayMenuSoundEffect
+ movs r0, 0x2
+_0801FACA:
+ bl sub_801F918
+_0801FACE:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_801FA58
+
+ thumb_func_start sub_801FAD4
+sub_801FAD4:
+ push {r4,lr}
+ ldr r0, _0801FB14
+ ldr r3, [r0]
+ ldr r1, [r3, 0x10]
+ subs r1, 0x1
+ ldr r2, [r3, 0xC]
+ adds r4, r0, 0
+ cmp r2, r1
+ bge _0801FAFC
+ ldr r0, [r3, 0x24]
+ movs r1, 0x8
+ ands r0, r1
+ cmp r0, 0
+ beq _0801FAF4
+ bl sub_8013F84
+_0801FAF4:
+ ldr r1, [r4]
+ ldr r0, [r1, 0x24]
+ adds r0, 0x1
+ str r0, [r1, 0x24]
+_0801FAFC:
+ ldr r1, [r4]
+ adds r0, r1, 0
+ adds r0, 0xC8
+ ldr r1, [r1, 0x5C]
+ bl sub_8012A64
+ cmp r0, 0x1
+ beq _0801FB18
+ cmp r0, 0x2
+ beq _0801FB3C
+ b _0801FB48
+ .align 2, 0
+_0801FB14: .4byte gUnknown_203B278
+_0801FB18:
+ movs r0, 0
+ bl PlayMenuSoundEffect
+ ldr r0, [r4]
+ ldr r1, [r0, 0xC]
+ adds r1, 0x1
+ str r1, [r0, 0xC]
+ ldr r0, [r0, 0x10]
+ cmp r1, r0
+ bge _0801FB34
+ movs r0, 0x1
+ bl sub_801F918
+ b _0801FB48
+_0801FB34:
+ movs r0, 0
+ bl sub_801F918
+ b _0801FB48
+_0801FB3C:
+ movs r0, 0x1
+ bl PlayMenuSoundEffect
+ movs r0, 0x2
+ bl sub_801F918
+_0801FB48:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_801FAD4
+
+ thumb_func_start sub_801FB50
+sub_801FB50:
+ push {r4-r7,lr}
+ adds r4, r0, 0
+ bl ResetUnusedInputStruct
+ movs r0, 0
+ movs r1, 0x1
+ movs r2, 0x1
+ bl sub_800641C
+ ldr r6, _0801FBC0
+ movs r0, 0xF0
+ lsls r0, 1
+ movs r1, 0x8
+ bl MemoryAlloc
+ str r0, [r6]
+ movs r7, 0
+ str r7, [r0, 0x70]
+ str r7, [r0, 0x74]
+ str r7, [r0, 0x78]
+ str r4, [r0]
+ strb r7, [r0, 0x15]
+ ldr r0, _0801FBC4
+ ldr r4, _0801FBC8
+ adds r1, r4, 0
+ bl CopyYellowSpeciesNametoBuffer
+ ldr r5, _0801FBCC
+ adds r0, r5, 0
+ adds r1, r4, 0
+ bl CopyYellowSpeciesNametoBuffer
+ adds r0, r4, 0
+ bl GetMonSpecies
+ adds r1, r0, 0
+ adds r0, r5, 0
+ subs r0, 0x50
+ bl strcpy
+ subs r5, 0xF0
+ bl GetPlayerPokemonStruct
+ adds r1, r0, 0
+ adds r0, r5, 0
+ bl sub_808DA34
+ ldr r2, [r6]
+ ldr r0, [r2]
+ cmp r0, 0x1
+ bne _0801FBD0
+ movs r1, 0xBE
+ lsls r1, 1
+ adds r0, r2, r1
+ str r7, [r0]
+ b _0801FBDE
+ .align 2, 0
+_0801FBC0: .4byte gUnknown_203B27C
+_0801FBC4: .4byte gUnknown_202E5D8
+_0801FBC8: .4byte 0x00000155
+_0801FBCC: .4byte gUnknown_202E1C8
+_0801FBD0:
+ movs r3, 0xBE
+ lsls r3, 1
+ adds r1, r2, r3
+ movs r4, 0xB6
+ lsls r4, 1
+ adds r0, r2, r4
+ str r0, [r1]
+_0801FBDE:
+ ldr r0, _0801FC34
+ bl GetDialogueSpriteDataPtr
+ ldr r2, _0801FC38
+ ldr r3, [r2]
+ movs r4, 0xB6
+ lsls r4, 1
+ adds r1, r3, r4
+ str r0, [r1]
+ adds r4, 0x4
+ adds r1, r3, r4
+ ldr r0, [r0, 0x4]
+ str r0, [r1]
+ movs r1, 0xBC
+ lsls r1, 1
+ adds r0, r3, r1
+ movs r1, 0
+ strb r1, [r0]
+ ldr r0, [r2]
+ ldr r3, _0801FC3C
+ adds r0, r3
+ strb r1, [r0]
+ ldr r0, [r2]
+ adds r4, 0xA
+ adds r0, r4
+ strb r1, [r0]
+ ldr r2, [r2]
+ movs r0, 0xBA
+ lsls r0, 1
+ adds r1, r2, r0
+ movs r0, 0x2
+ strh r0, [r1]
+ subs r3, 0x3
+ adds r1, r2, r3
+ movs r0, 0x8
+ strh r0, [r1]
+ movs r0, 0
+ bl sub_801FDA8
+ movs r0, 0x1
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0801FC34: .4byte 0x00000155
+_0801FC38: .4byte gUnknown_203B27C
+_0801FC3C: .4byte 0x00000179
+ thumb_func_end sub_801FB50
+
+ thumb_func_start sub_801FC40
+sub_801FC40:
+ push {lr}
+ ldr r1, _0801FC5C
+ ldr r0, [r1]
+ ldr r0, [r0, 0x4]
+ adds r2, r1, 0
+ cmp r0, 0x22
+ bls _0801FC50
+ b _0801FD70
+_0801FC50:
+ lsls r0, 2
+ ldr r1, _0801FC60
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_0801FC5C: .4byte gUnknown_203B27C
+_0801FC60: .4byte _0801FC64
+ .align 2, 0
+_0801FC64:
+ .4byte _0801FCF0
+ .4byte _0801FCF0
+ .4byte _0801FCF6
+ .4byte _0801FD70
+ .4byte _0801FD70
+ .4byte _0801FD70
+ .4byte _0801FD70
+ .4byte _0801FCFC
+ .4byte _0801FD02
+ .4byte _0801FD70
+ .4byte _0801FD70
+ .4byte _0801FD70
+ .4byte _0801FD70
+ .4byte _0801FD50
+ .4byte _0801FD70
+ .4byte _0801FD08
+ .4byte _0801FD08
+ .4byte _0801FD0E
+ .4byte _0801FD14
+ .4byte _0801FD1A
+ .4byte _0801FD70
+ .4byte _0801FD20
+ .4byte _0801FD20
+ .4byte _0801FD26
+ .4byte _0801FD2C
+ .4byte _0801FD70
+ .4byte _0801FD70
+ .4byte _0801FD70
+ .4byte _0801FD70
+ .4byte _0801FD32
+ .4byte _0801FD38
+ .4byte _0801FD38
+ .4byte _0801FD3E
+ .4byte _0801FD44
+ .4byte _0801FD4A
+_0801FCF0:
+ bl sub_8021154
+ b _0801FD74
+_0801FCF6:
+ bl sub_80209AC
+ b _0801FD74
+_0801FCFC:
+ bl sub_80209FC
+ b _0801FD74
+_0801FD02:
+ bl sub_8020A34
+ b _0801FD74
+_0801FD08:
+ bl sub_8020A80
+ b _0801FD74
+_0801FD0E:
+ bl sub_8020B38
+ b _0801FD74
+_0801FD14:
+ bl sub_8020C2C
+ b _0801FD74
+_0801FD1A:
+ bl sub_8020C48
+ b _0801FD74
+_0801FD20:
+ bl sub_8020C64
+ b _0801FD74
+_0801FD26:
+ bl sub_8020CC0
+ b _0801FD74
+_0801FD2C:
+ bl sub_8020D74
+ b _0801FD74
+_0801FD32:
+ bl sub_8020D90
+ b _0801FD74
+_0801FD38:
+ bl sub_8020DCC
+ b _0801FD74
+_0801FD3E:
+ bl sub_8020EB4
+ b _0801FD74
+_0801FD44:
+ bl sub_80210C8
+ b _0801FD74
+_0801FD4A:
+ bl sub_80210E4
+ b _0801FD74
+_0801FD50:
+ ldr r0, [r2]
+ ldrb r0, [r0, 0x15]
+ cmp r0, 0x1
+ bne _0801FD68
+ ldr r0, _0801FD6C
+ ldr r1, [r0]
+ movs r0, 0x98
+ lsls r0, 2
+ adds r1, r0
+ ldr r0, [r1]
+ subs r0, 0x96
+ str r0, [r1]
+_0801FD68:
+ movs r0, 0x3
+ b _0801FD76
+ .align 2, 0
+_0801FD6C: .4byte gTeamInventory_203B460
+_0801FD70:
+ bl sub_8021130
+_0801FD74:
+ movs r0, 0
+_0801FD76:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_801FC40
+
+ thumb_func_start sub_801FD7C
+sub_801FD7C:
+ push {r4,lr}
+ ldr r4, _0801FDA4
+ ldr r0, [r4]
+ cmp r0, 0
+ beq _0801FD9C
+ movs r1, 0xB6
+ lsls r1, 1
+ adds r0, r1
+ ldr r0, [r0]
+ bl CloseFile
+ ldr r0, [r4]
+ bl MemoryFree
+ movs r0, 0
+ str r0, [r4]
+_0801FD9C:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0801FDA4: .4byte gUnknown_203B27C
+ thumb_func_end sub_801FD7C
+
+ thumb_func_start sub_801FDA8
+sub_801FDA8:
+ push {lr}
+ ldr r1, _0801FDBC
+ ldr r1, [r1]
+ str r0, [r1, 0x4]
+ bl sub_801FDC0
+ bl sub_801FF28
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0801FDBC: .4byte gUnknown_203B27C
+ thumb_func_end sub_801FDA8
+
+ thumb_func_start sub_801FDC0
+sub_801FDC0:
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ ldr r4, _0801FDE8
+ ldr r0, [r4]
+ movs r5, 0xC0
+ lsls r5, 1
+ adds r0, r5
+ bl sub_8006518
+ ldr r0, [r4]
+ ldr r1, [r0, 0x4]
+ cmp r1, 0x11
+ beq _0801FE38
+ cmp r1, 0x11
+ bgt _0801FDEC
+ cmp r1, 0x2
+ beq _0801FDF6
+ b _0801FED4
+ .align 2, 0
+_0801FDE8: .4byte gUnknown_203B27C
+_0801FDEC:
+ cmp r1, 0x17
+ beq _0801FE6C
+ cmp r1, 0x20
+ beq _0801FE88
+ b _0801FED4
+_0801FDF6:
+ adds r0, r5
+ movs r1, 0x80
+ strb r1, [r0]
+ ldr r0, [r4]
+ movs r2, 0xCC
+ lsls r2, 1
+ adds r0, r2
+ strb r1, [r0]
+ ldr r0, [r4]
+ movs r3, 0xD8
+ lsls r3, 1
+ adds r0, r3
+ strb r1, [r0]
+ ldr r1, [r4]
+ movs r6, 0xE4
+ lsls r6, 1
+ adds r1, r6
+ ldr r0, _0801FE34
+ ldm r0!, {r2,r3,r7}
+ stm r1!, {r2,r3,r7}
+ ldm r0!, {r2,r6,r7}
+ stm r1!, {r2,r6,r7}
+ bl ResetUnusedInputStruct
+ ldr r0, [r4]
+ adds r0, r5
+ movs r1, 0x1
+ movs r2, 0
+ bl sub_800641C
+ b _0801FF14
+ .align 2, 0
+_0801FE34: .4byte gUnknown_80DC37C
+_0801FE38:
+ bl sub_80205D0
+ ldr r2, [r4]
+ movs r0, 0xD8
+ lsls r0, 1
+ adds r2, r0
+ ldr r1, _0801FE68
+ ldm r1!, {r3,r5,r6}
+ stm r2!, {r3,r5,r6}
+ ldm r1!, {r3,r5,r7}
+ stm r2!, {r3,r5,r7}
+ ldr r1, [r4]
+ adds r0, r1, r0
+ adds r1, 0x7C
+ bl sub_8012CAC
+ bl ResetUnusedInputStruct
+ ldr r0, [r4]
+ movs r6, 0xC0
+ lsls r6, 1
+ adds r0, r6
+ b _0801FEC2
+ .align 2, 0
+_0801FE68: .4byte gUnknown_80DC334
+_0801FE6C:
+ bl sub_802069C
+ ldr r2, [r4]
+ movs r0, 0xD8
+ lsls r0, 1
+ adds r2, r0
+ ldr r1, _0801FE84
+ ldm r1!, {r3,r6,r7}
+ stm r2!, {r3,r6,r7}
+ ldm r1!, {r3,r6,r7}
+ stm r2!, {r3,r6,r7}
+ b _0801FEB0
+ .align 2, 0
+_0801FE84: .4byte gUnknown_80DC334
+_0801FE88:
+ bl CreateGulpinLinkMenu
+ ldr r1, [r4]
+ movs r7, 0xCC
+ lsls r7, 1
+ adds r1, r7
+ ldr r0, _0801FECC
+ ldm r0!, {r2,r3,r6}
+ stm r1!, {r2,r3,r6}
+ ldm r0!, {r2,r3,r7}
+ stm r1!, {r2,r3,r7}
+ ldr r2, [r4]
+ movs r0, 0xD8
+ lsls r0, 1
+ adds r2, r0
+ ldr r1, _0801FED0
+ ldm r1!, {r3,r6,r7}
+ stm r2!, {r3,r6,r7}
+ ldm r1!, {r3,r6,r7}
+ stm r2!, {r3,r6,r7}
+_0801FEB0:
+ ldr r1, [r4]
+ adds r0, r1, r0
+ adds r1, 0x7C
+ bl sub_8012CAC
+ bl ResetUnusedInputStruct
+ ldr r0, [r4]
+ adds r0, r5
+_0801FEC2:
+ movs r1, 0x1
+ movs r2, 0x1
+ bl sub_800641C
+ b _0801FF14
+ .align 2, 0
+_0801FECC: .4byte gUnknown_80DC31C
+_0801FED0: .4byte gUnknown_80DC34C
+_0801FED4:
+ ldr r5, _0801FF20
+ mov r12, r5
+ movs r6, 0xC0
+ lsls r6, 1
+ mov r8, r6
+ ldr r4, _0801FF24
+ movs r3, 0
+ movs r2, 0x3
+_0801FEE4:
+ mov r7, r12
+ ldr r1, [r7]
+ adds r1, r3
+ add r1, r8
+ adds r0, r4, 0
+ ldm r0!, {r5-r7}
+ stm r1!, {r5-r7}
+ ldm r0!, {r5-r7}
+ stm r1!, {r5-r7}
+ adds r3, 0x18
+ subs r2, 0x1
+ cmp r2, 0
+ bge _0801FEE4
+ bl ResetUnusedInputStruct
+ ldr r0, _0801FF20
+ ldr r0, [r0]
+ movs r1, 0xC0
+ lsls r1, 1
+ adds r0, r1
+ movs r1, 0x1
+ movs r2, 0x1
+ bl sub_800641C
+_0801FF14:
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0801FF20: .4byte gUnknown_203B27C
+_0801FF24: .4byte gUnknown_80DC31C
+ thumb_func_end sub_801FDC0
+
+ thumb_func_start sub_801FF28
+sub_801FF28:
+ push {r4,r5,lr}
+ sub sp, 0x14
+ ldr r1, _0801FF44
+ ldr r0, [r1]
+ ldr r0, [r0, 0x4]
+ adds r5, r1, 0
+ cmp r0, 0x23
+ bls _0801FF3A
+ b _08020562
+_0801FF3A:
+ lsls r0, 2
+ ldr r1, _0801FF48
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_0801FF44: .4byte gUnknown_203B27C
+_0801FF48: .4byte _0801FF4C
+ .align 2, 0
+_0801FF4C:
+ .4byte _0801FFDC
+ .4byte _08020018
+ .4byte _08020064
+ .4byte _0802006C
+ .4byte _08020090
+ .4byte _080200B4
+ .4byte _080200D8
+ .4byte _080200FC
+ .4byte _08020144
+ .4byte _0802018C
+ .4byte _080201B0
+ .4byte _080201D4
+ .4byte _080201F8
+ .4byte _08020562
+ .4byte _0802021C
+ .4byte _08020240
+ .4byte _0802024E
+ .4byte _08020256
+ .4byte _08020274
+ .4byte _08020282
+ .4byte _0802028E
+ .4byte _080202B0
+ .4byte _080202BE
+ .4byte _080202C6
+ .4byte _080202E4
+ .4byte _08020304
+ .4byte _08020344
+ .4byte _080203B0
+ .4byte _080203D4
+ .4byte _0802038C
+ .4byte _080203F8
+ .4byte _08020428
+ .4byte _08020434
+ .4byte _08020460
+ .4byte _08020478
+ .4byte _08020500
+_0801FFDC:
+ ldr r0, [r5]
+ movs r4, 0x2
+ str r4, [r0, 0x6C]
+ bl CreateGulpinShopMenu
+ ldr r5, [r5]
+ str r4, [r5, 0x8]
+ ldr r2, _08020014
+ ldr r1, [r5]
+ movs r0, 0x64
+ muls r0, r1
+ adds r0, r2
+ ldr r0, [r0]
+ ldr r2, [r5, 0x6C]
+ adds r3, r5, 0
+ adds r3, 0x7C
+ adds r1, r5, 0
+ adds r1, 0xBC
+ str r1, [sp]
+ movs r1, 0x4
+ str r1, [sp, 0x4]
+ movs r1, 0
+ str r1, [sp, 0x8]
+ movs r4, 0xBE
+ lsls r4, 1
+ adds r1, r5, r4
+ b _0802004C
+ .align 2, 0
+_08020014: .4byte gGulpinDialogue
+_08020018:
+ bl CreateGulpinShopMenu
+ ldr r0, _0802005C
+ ldr r4, [r0]
+ movs r0, 0x2
+ str r0, [r4, 0x8]
+ ldr r1, _08020060
+ ldr r2, [r4]
+ movs r0, 0x64
+ muls r0, r2
+ adds r1, 0x4
+ adds r0, r1
+ ldr r0, [r0]
+ ldr r2, [r4, 0x6C]
+ adds r3, r4, 0
+ adds r3, 0x7C
+ adds r1, r4, 0
+ adds r1, 0xBC
+ str r1, [sp]
+ movs r1, 0x4
+ str r1, [sp, 0x4]
+ movs r1, 0
+ str r1, [sp, 0x8]
+ movs r5, 0xBE
+ lsls r5, 1
+ adds r1, r4, r5
+_0802004C:
+ ldr r1, [r1]
+ str r1, [sp, 0xC]
+ movs r1, 0xC
+ str r1, [sp, 0x10]
+ movs r1, 0
+ bl sub_8014248
+ b _08020562
+ .align 2, 0
+_0802005C: .4byte gUnknown_203B27C
+_08020060: .4byte gGulpinDialogue
+_08020064:
+ movs r0, 0x3
+ bl DrawTeamMoneyBox
+ b _08020562
+_0802006C:
+ ldr r2, [r5]
+ movs r0, 0x1F
+ str r0, [r2, 0x8]
+ ldr r1, _0802008C
+ ldr r3, [r2]
+ movs r0, 0x64
+ muls r0, r3
+ adds r1, 0x8
+ adds r0, r1
+ ldr r0, [r0]
+ movs r1, 0xBE
+ lsls r1, 1
+ adds r2, r1
+ ldr r2, [r2]
+ b _0802052C
+ .align 2, 0
+_0802008C: .4byte gGulpinDialogue
+_08020090:
+ ldr r2, [r5]
+ movs r0, 0x1F
+ str r0, [r2, 0x8]
+ ldr r1, _080200B0
+ ldr r3, [r2]
+ movs r0, 0x64
+ muls r0, r3
+ adds r1, 0xC
+ adds r0, r1
+ ldr r0, [r0]
+ movs r4, 0xBE
+ lsls r4, 1
+ adds r2, r4
+ ldr r2, [r2]
+ b _0802052C
+ .align 2, 0
+_080200B0: .4byte gGulpinDialogue
+_080200B4:
+ ldr r2, [r5]
+ movs r0, 0x1F
+ str r0, [r2, 0x8]
+ ldr r1, _080200D4
+ ldr r3, [r2]
+ movs r0, 0x64
+ muls r0, r3
+ adds r1, 0x10
+ adds r0, r1
+ ldr r0, [r0]
+ movs r5, 0xBE
+ lsls r5, 1
+ adds r2, r5
+ ldr r2, [r2]
+ b _0802052C
+ .align 2, 0
+_080200D4: .4byte gGulpinDialogue
+_080200D8:
+ ldr r2, [r5]
+ movs r0, 0x1F
+ str r0, [r2, 0x8]
+ ldr r1, _080200F8
+ ldr r3, [r2]
+ movs r0, 0x64
+ muls r0, r3
+ adds r1, 0x14
+ adds r0, r1
+ ldr r0, [r0]
+ movs r1, 0xBE
+ lsls r1, 1
+ adds r2, r1
+ ldr r2, [r2]
+ b _0802052C
+ .align 2, 0
+_080200F8: .4byte gGulpinDialogue
+_080200FC:
+ bl sub_8020900
+ ldr r1, _0802013C
+ ldr r0, _08020140
+ ldr r4, [r0]
+ ldr r2, [r4]
+ movs r0, 0x64
+ muls r0, r2
+ adds r1, 0x18
+ adds r0, r1
+ ldr r0, [r0]
+ adds r3, r4, 0
+ adds r3, 0x7C
+ adds r1, r4, 0
+ adds r1, 0xBC
+ str r1, [sp]
+ movs r1, 0x4
+ str r1, [sp, 0x4]
+ movs r1, 0
+ str r1, [sp, 0x8]
+ movs r2, 0xBE
+ lsls r2, 1
+ adds r1, r4, r2
+ ldr r1, [r1]
+ str r1, [sp, 0xC]
+ movs r1, 0xC
+ str r1, [sp, 0x10]
+ movs r1, 0
+ movs r2, 0x10
+ bl sub_8014248
+ b _08020562
+ .align 2, 0
+_0802013C: .4byte gGulpinDialogue
+_08020140: .4byte gUnknown_203B27C
+_08020144:
+ bl sub_8020950
+ ldr r1, _08020184
+ ldr r0, _08020188
+ ldr r4, [r0]
+ ldr r2, [r4]
+ movs r0, 0x64
+ muls r0, r2
+ adds r1, 0x54
+ adds r0, r1
+ ldr r0, [r0]
+ adds r3, r4, 0
+ adds r3, 0x7C
+ adds r1, r4, 0
+ adds r1, 0xBC
+ str r1, [sp]
+ movs r1, 0x4
+ str r1, [sp, 0x4]
+ movs r1, 0
+ str r1, [sp, 0x8]
+ movs r5, 0xBE
+ lsls r5, 1
+ adds r1, r4, r5
+ ldr r1, [r1]
+ str r1, [sp, 0xC]
+ movs r1, 0xC
+ str r1, [sp, 0x10]
+ movs r1, 0
+ movs r2, 0xD
+ bl sub_8014248
+ b _08020562
+ .align 2, 0
+_08020184: .4byte gGulpinDialogue
+_08020188: .4byte gUnknown_203B27C
+_0802018C:
+ ldr r2, [r5]
+ movs r0, 0x1
+ str r0, [r2, 0x8]
+ ldr r1, _080201AC
+ ldr r3, [r2]
+ movs r0, 0x64
+ muls r0, r3
+ adds r1, 0x58
+ adds r0, r1
+ ldr r0, [r0]
+ movs r1, 0xBE
+ lsls r1, 1
+ adds r2, r1
+ ldr r2, [r2]
+ b _0802052C
+ .align 2, 0
+_080201AC: .4byte gGulpinDialogue
+_080201B0:
+ ldr r2, [r5]
+ movs r0, 0x1
+ str r0, [r2, 0x8]
+ ldr r1, _080201D0
+ ldr r3, [r2]
+ movs r0, 0x64
+ muls r0, r3
+ adds r1, 0x5C
+ adds r0, r1
+ ldr r0, [r0]
+ movs r4, 0xBE
+ lsls r4, 1
+ adds r2, r4
+ ldr r2, [r2]
+ b _0802052C
+ .align 2, 0
+_080201D0: .4byte gGulpinDialogue
+_080201D4:
+ ldr r2, [r5]
+ movs r0, 0x1
+ str r0, [r2, 0x8]
+ ldr r1, _080201F4
+ ldr r3, [r2]
+ movs r0, 0x64
+ muls r0, r3
+ adds r1, 0x60
+ adds r0, r1
+ ldr r0, [r0]
+ movs r5, 0xBE
+ lsls r5, 1
+ adds r2, r5
+ ldr r2, [r2]
+ b _0802052C
+ .align 2, 0
+_080201F4: .4byte gGulpinDialogue
+_080201F8:
+ ldr r2, [r5]
+ movs r0, 0xD
+ str r0, [r2, 0x8]
+ ldr r1, _08020218
+ ldr r3, [r2]
+ movs r0, 0x64
+ muls r0, r3
+ adds r1, 0x1C
+ adds r0, r1
+ ldr r0, [r0]
+ movs r1, 0xBE
+ lsls r1, 1
+ adds r2, r1
+ ldr r2, [r2]
+ b _0802052C
+ .align 2, 0
+_08020218: .4byte gGulpinDialogue
+_0802021C:
+ ldr r2, [r5]
+ movs r0, 0xF
+ str r0, [r2, 0x8]
+ ldr r1, _0802023C
+ ldr r3, [r2]
+ movs r0, 0x64
+ muls r0, r3
+ adds r1, 0x20
+ adds r0, r1
+ ldr r0, [r0]
+ movs r4, 0xBE
+ lsls r4, 1
+ adds r2, r4
+ ldr r2, [r2]
+ b _0802052C
+ .align 2, 0
+_0802023C: .4byte gGulpinDialogue
+_08020240:
+ movs r0, 0x2
+ movs r1, 0
+ movs r2, 0
+ movs r3, 0xA
+ bl sub_8023868
+ b _08020562
+_0802024E:
+ movs r0, 0x1
+ bl sub_8023B7C
+ b _08020562
+_08020256:
+ bl sub_8023DA4
+ ldr r0, _08020270
+ ldr r2, [r0]
+ adds r0, r2, 0
+ adds r0, 0xCC
+ adds r1, r2, 0
+ adds r1, 0x7C
+ adds r3, r2, 0
+ adds r3, 0xBC
+ ldr r2, [r2, 0x70]
+ b _0802044C
+ .align 2, 0
+_08020270: .4byte gUnknown_203B27C
+_08020274:
+ ldr r0, [r5]
+ movs r5, 0xC
+ ldrsh r0, [r0, r5]
+ movs r1, 0x2
+ bl sub_8024458
+ b _08020562
+_08020282:
+ ldr r0, [r5]
+ movs r1, 0xC
+ ldrsh r0, [r0, r1]
+ bl sub_801BEEC
+ b _08020562
+_0802028E:
+ ldr r2, [r5]
+ movs r0, 0x15
+ str r0, [r2, 0x8]
+ ldr r1, _080202AC
+ ldr r3, [r2]
+ movs r0, 0x64
+ muls r0, r3
+ adds r1, 0x24
+ adds r0, r1
+ ldr r0, [r0]
+ movs r4, 0xBE
+ lsls r4, 1
+ adds r2, r4
+ ldr r2, [r2]
+ b _0802052C
+ .align 2, 0
+_080202AC: .4byte gGulpinDialogue
+_080202B0:
+ ldr r0, [r5]
+ movs r5, 0xC
+ ldrsh r0, [r0, r5]
+ movs r1, 0
+ bl sub_801F428
+ b _08020562
+_080202BE:
+ movs r0, 0x1
+ bl sub_801F5F0
+ b _08020562
+_080202C6:
+ bl sub_801F700
+ ldr r0, _080202E0
+ ldr r2, [r0]
+ adds r0, r2, 0
+ adds r0, 0xCC
+ adds r1, r2, 0
+ adds r1, 0x7C
+ adds r3, r2, 0
+ adds r3, 0xBC
+ ldr r2, [r2, 0x74]
+ b _0802044C
+ .align 2, 0
+_080202E0: .4byte gUnknown_203B27C
+_080202E4:
+ ldr r0, [r5]
+ ldrh r1, [r0, 0x1C]
+ adds r0, 0x64
+ strh r1, [r0]
+ movs r2, 0x1
+ adds r4, r5, 0
+ movs r3, 0
+_080202F2:
+ ldr r0, [r4]
+ lsls r1, r2, 1
+ adds r0, 0x64
+ adds r0, r1
+ strh r3, [r0]
+ adds r2, 0x1
+ cmp r2, 0x3
+ ble _080202F2
+ b _0802046E
+_08020304:
+ ldr r1, [r5]
+ adds r0, r1, 0
+ adds r0, 0x24
+ ldr r1, [r1, 0x10]
+ adds r1, 0x2C
+ bl sub_8094060
+ ldr r1, [r5]
+ movs r0, 0x10
+ str r0, [r1, 0x8]
+ ldr r0, _0802033C
+ ldrh r1, [r1, 0x1E]
+ bl sub_8092C84
+ ldr r1, _08020340
+ ldr r2, [r5]
+ ldr r3, [r2]
+ movs r0, 0x64
+ muls r0, r3
+ adds r1, 0x28
+ adds r0, r1
+ ldr r0, [r0]
+ movs r1, 0xBE
+ lsls r1, 1
+ adds r2, r1
+ ldr r2, [r2]
+ b _0802052C
+ .align 2, 0
+_0802033C: .4byte gAvailablePokemonNames
+_08020340: .4byte gGulpinDialogue
+_08020344:
+ ldr r1, [r5]
+ adds r0, r1, 0
+ adds r0, 0x24
+ ldr r1, [r1, 0x10]
+ adds r1, 0x2C
+ bl sub_8094060
+ ldr r3, [r5]
+ movs r0, 0x10
+ str r0, [r3, 0x8]
+ ldrb r0, [r3, 0x14]
+ cmp r0, 0
+ beq _08020370
+ ldr r1, _0802036C
+ ldr r2, [r3]
+ movs r0, 0x64
+ muls r0, r2
+ adds r1, 0x38
+ b _08020520
+ .align 2, 0
+_0802036C: .4byte gGulpinDialogue
+_08020370:
+ ldr r1, _08020388
+ ldr r2, [r3]
+ movs r0, 0x64
+ muls r0, r2
+ adds r1, 0x34
+ adds r0, r1
+ ldr r0, [r0]
+ movs r4, 0xBE
+ lsls r4, 1
+ adds r1, r3, r4
+ b _0802052A
+ .align 2, 0
+_08020388: .4byte gGulpinDialogue
+_0802038C:
+ ldr r2, [r5]
+ ldr r0, [r2]
+ cmp r0, 0
+ bne _080203A2
+ movs r5, 0xC
+ ldrsh r1, [r2, r5]
+ adds r2, 0x24
+ movs r0, 0
+ bl DisplayGulpinDialogueSprite
+ b _08020562
+_080203A2:
+ movs r0, 0xC
+ ldrsh r1, [r2, r0]
+ adds r2, 0x24
+ movs r0, 0x1
+ bl DisplayGulpinDialogueSprite
+ b _08020562
+_080203B0:
+ ldr r2, [r5]
+ movs r0, 0x10
+ str r0, [r2, 0x8]
+ ldr r1, _080203D0
+ ldr r3, [r2]
+ movs r0, 0x64
+ muls r0, r3
+ adds r1, 0x3C
+ adds r0, r1
+ ldr r0, [r0]
+ movs r1, 0xBE
+ lsls r1, 1
+ adds r2, r1
+ ldr r2, [r2]
+ b _0802052C
+ .align 2, 0
+_080203D0: .4byte gGulpinDialogue
+_080203D4:
+ ldr r2, [r5]
+ movs r0, 0x10
+ str r0, [r2, 0x8]
+ ldr r1, _080203F4
+ ldr r3, [r2]
+ movs r0, 0x64
+ muls r0, r3
+ adds r1, 0x40
+ adds r0, r1
+ ldr r0, [r0]
+ movs r4, 0xBE
+ lsls r4, 1
+ adds r2, r4
+ ldr r2, [r2]
+ b _0802052C
+ .align 2, 0
+_080203F4: .4byte gGulpinDialogue
+_080203F8:
+ ldr r1, [r5]
+ adds r0, r1, 0
+ adds r0, 0x24
+ ldr r1, [r1, 0x10]
+ adds r1, 0x2C
+ bl sub_809401C
+ ldr r0, [r5]
+ movs r5, 0xC
+ ldrsh r1, [r0, r5]
+ adds r2, r0, 0
+ adds r2, 0x24
+ ldrb r3, [r0, 0x15]
+ ldr r0, _08020424
+ str r0, [sp]
+ movs r0, 0
+ str r0, [sp, 0x4]
+ movs r0, 0x1
+ bl sub_801EE10
+ b _08020562
+ .align 2, 0
+_08020424: .4byte gUnknown_80DC394
+_08020428:
+ ldr r0, [r5]
+ ldrb r1, [r0, 0x15]
+ movs r0, 0x1
+ bl sub_801F1B0
+ b _08020562
+_08020434:
+ movs r0, 0
+ bl sub_801F280
+ ldr r0, _0802045C
+ ldr r2, [r0]
+ adds r0, r2, 0
+ adds r0, 0xCC
+ adds r1, r2, 0
+ adds r1, 0x7C
+ adds r3, r2, 0
+ adds r3, 0xBC
+ ldr r2, [r2, 0x78]
+_0802044C:
+ str r2, [sp]
+ movs r2, 0x2
+ str r2, [sp, 0x4]
+ movs r2, 0
+ bl sub_8012D60
+ b _08020562
+ .align 2, 0
+_0802045C: .4byte gUnknown_203B27C
+_08020460:
+ ldr r2, [r5]
+ ldr r0, [r2, 0x18]
+ adds r1, r2, 0
+ adds r1, 0x24
+ adds r2, 0x64
+ bl sub_8093560
+_0802046E:
+ ldr r0, [r5]
+ adds r0, 0x64
+ bl sub_801F808
+ b _08020562
+_08020478:
+ bl sub_80208B0
+ ldr r0, _080204B8
+ ldr r4, _080204BC
+ ldr r1, [r4]
+ ldrh r1, [r1, 0x20]
+ bl sub_8092C84
+ ldr r4, [r4]
+ ldrb r5, [r4, 0x14]
+ cmp r5, 0
+ beq _080204C4
+ ldr r1, _080204C0
+ ldr r2, [r4]
+ movs r0, 0x64
+ muls r0, r2
+ adds r1, 0x48
+ adds r0, r1
+ ldr r0, [r0]
+ adds r3, r4, 0
+ adds r3, 0x7C
+ adds r1, r4, 0
+ adds r1, 0xBC
+ str r1, [sp]
+ movs r1, 0x4
+ str r1, [sp, 0x4]
+ movs r1, 0
+ str r1, [sp, 0x8]
+ movs r2, 0xBE
+ lsls r2, 1
+ adds r1, r4, r2
+ b _080204E8
+ .align 2, 0
+_080204B8: .4byte gUnknown_202DFE8
+_080204BC: .4byte gUnknown_203B27C
+_080204C0: .4byte gGulpinDialogue
+_080204C4:
+ ldr r1, _080204FC
+ ldr r2, [r4]
+ movs r0, 0x64
+ muls r0, r2
+ adds r1, 0x44
+ adds r0, r1
+ ldr r0, [r0]
+ adds r3, r4, 0
+ adds r3, 0x7C
+ adds r1, r4, 0
+ adds r1, 0xBC
+ str r1, [sp]
+ movs r1, 0x4
+ str r1, [sp, 0x4]
+ str r5, [sp, 0x8]
+ movs r5, 0xBE
+ lsls r5, 1
+ adds r1, r4, r5
+_080204E8:
+ ldr r1, [r1]
+ str r1, [sp, 0xC]
+ movs r1, 0xC
+ str r1, [sp, 0x10]
+ movs r1, 0
+ movs r2, 0x11
+ bl sub_8014248
+ b _08020562
+ .align 2, 0
+_080204FC: .4byte gGulpinDialogue
+_08020500:
+ ldr r1, [r5]
+ movs r0, 0x1F
+ str r0, [r1, 0x8]
+ ldr r0, _08020538
+ ldrh r1, [r1, 0x20]
+ bl sub_8092C84
+ ldr r3, [r5]
+ ldrb r0, [r3, 0x14]
+ cmp r0, 0
+ beq _08020544
+ ldr r1, _0802053C
+ ldr r2, [r3]
+ movs r0, 0x64
+ muls r0, r2
+ adds r1, 0x50
+_08020520:
+ adds r0, r1
+ ldr r0, [r0]
+ movs r2, 0xBE
+ lsls r2, 1
+ adds r1, r3, r2
+_0802052A:
+ ldr r2, [r1]
+_0802052C:
+ ldr r3, _08020540
+ movs r1, 0
+ bl sub_80141B4
+ b _08020562
+ .align 2, 0
+_08020538: .4byte gUnknown_202DFE8
+_0802053C: .4byte gGulpinDialogue
+_08020540: .4byte 0x0000010d
+_08020544:
+ ldr r1, _0802056C
+ ldr r2, [r3]
+ movs r0, 0x64
+ muls r0, r2
+ adds r1, 0x4C
+ adds r0, r1
+ ldr r0, [r0]
+ movs r4, 0xBE
+ lsls r4, 1
+ adds r1, r3, r4
+ ldr r2, [r1]
+ ldr r3, _08020570
+ movs r1, 0
+ bl sub_80141B4
+_08020562:
+ add sp, 0x14
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0802056C: .4byte gGulpinDialogue
+_08020570: .4byte 0x0000010d
+ thumb_func_end sub_801FF28
+
+ thumb_func_start CreateGulpinShopMenu
+CreateGulpinShopMenu:
+ push {r4,lr}
+ ldr r4, _080205C0
+ ldr r0, [r4]
+ adds r0, 0xBC
+ movs r1, 0
+ movs r2, 0x10
+ bl MemoryFill16
+ ldr r4, [r4]
+ movs r3, 0
+ ldr r0, _080205C4
+ str r0, [r4, 0x7C]
+ adds r1, r4, 0
+ adds r1, 0x80
+ movs r0, 0x2
+ str r0, [r1]
+ movs r2, 0x1
+ adds r1, 0x4
+ ldr r0, _080205C8
+ str r0, [r1]
+ adds r1, 0x4
+ movs r0, 0xB
+ str r0, [r1]
+ adds r1, 0x4
+ ldr r0, _080205CC
+ ldr r0, [r0]
+ str r0, [r1]
+ adds r0, r4, 0
+ adds r0, 0x90
+ str r2, [r0]
+ adds r0, 0x4
+ str r3, [r0]
+ adds r0, 0x4
+ str r2, [r0]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080205C0: .4byte gUnknown_203B27C
+_080205C4: .4byte gGulpinProceed
+_080205C8: .4byte gGulpinInfo
+_080205CC: .4byte gUnknown_80D4934
+ thumb_func_end CreateGulpinShopMenu
+
+ thumb_func_start sub_80205D0
+sub_80205D0:
+ push {r4-r7,lr}
+ ldr r4, _08020660
+ ldr r0, [r4]
+ adds r0, 0xBC
+ movs r1, 0
+ movs r2, 0x10
+ bl MemoryFill16
+ ldr r0, [r4]
+ mov r12, r0
+ movs r5, 0
+ ldr r0, _08020664
+ mov r1, r12
+ str r0, [r1, 0x7C]
+ mov r2, r12
+ adds r2, 0x80
+ movs r0, 0x4
+ str r0, [r2]
+ movs r3, 0x1
+ adds r1, 0x84
+ ldr r0, _08020668
+ str r0, [r1]
+ adds r1, 0x4
+ movs r0, 0xB
+ str r0, [r1]
+ adds r1, 0x4
+ ldr r0, _0802066C
+ str r0, [r1]
+ adds r1, 0x4
+ movs r0, 0xC
+ str r0, [r1]
+ movs r6, 0x3
+ adds r1, 0x4
+ ldr r0, _08020670
+ str r0, [r1]
+ mov r0, r12
+ adds r0, 0x98
+ str r6, [r0]
+ movs r6, 0x4
+ adds r0, 0x4
+ str r5, [r0]
+ adds r0, 0x4
+ str r3, [r0]
+ mov r3, r12
+ adds r3, 0xBC
+_0802062A:
+ ldrh r0, [r3]
+ cmp r0, 0
+ bne _0802063A
+ ldr r1, [r2]
+ mov r7, r12
+ ldr r0, [r7, 0x70]
+ cmp r1, r0
+ beq _08020696
+_0802063A:
+ adds r2, 0x8
+ adds r3, 0x2
+ adds r5, 0x1
+ cmp r5, r6
+ blt _0802062A
+ movs r5, 0
+ cmp r5, r6
+ bge _08020696
+ ldr r1, [r4]
+ adds r0, r1, 0
+ adds r0, 0xBC
+ ldrh r0, [r0]
+ cmp r0, 0
+ bne _08020674
+ adds r0, r1, 0
+ adds r0, 0x80
+ ldr r0, [r0]
+ str r0, [r1, 0x70]
+ b _08020696
+ .align 2, 0
+_08020660: .4byte gUnknown_203B27C
+_08020664: .4byte gUnknown_80DC3D8
+_08020668: .4byte gUnknown_80DC3E0
+_0802066C: .4byte gUnknown_80DC3E8
+_08020670: .4byte gUnknown_80DC3F4
+_08020674:
+ adds r5, 0x1
+ cmp r5, r6
+ bge _08020696
+ ldr r2, [r4]
+ lsls r0, r5, 1
+ adds r1, r2, 0
+ adds r1, 0xBC
+ adds r1, r0
+ ldrh r0, [r1]
+ cmp r0, 0
+ bne _08020674
+ lsls r0, r5, 3
+ adds r1, r2, 0
+ adds r1, 0x80
+ adds r1, r0
+ ldr r0, [r1]
+ str r0, [r2, 0x70]
+_08020696:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80205D0
+
+ thumb_func_start sub_802069C
+sub_802069C:
+ push {r4-r7,lr}
+ ldr r4, _08020718
+ ldr r0, [r4]
+ adds r0, 0xBC
+ movs r1, 0
+ movs r2, 0x10
+ bl MemoryFill16
+ ldr r0, [r4]
+ mov r12, r0
+ movs r5, 0
+ ldr r0, _0802071C
+ mov r1, r12
+ str r0, [r1, 0x7C]
+ mov r3, r12
+ adds r3, 0x80
+ movs r0, 0x3
+ str r0, [r3]
+ movs r2, 0x1
+ adds r1, 0x84
+ ldr r0, _08020720
+ ldr r0, [r0]
+ str r0, [r1]
+ adds r1, 0x4
+ movs r0, 0xB
+ str r0, [r1]
+ movs r6, 0x2
+ mov r0, r12
+ adds r0, 0x8C
+ str r5, [r0]
+ adds r0, 0x4
+ str r2, [r0]
+ mov r2, r12
+ adds r2, 0xBC
+_080206E0:
+ ldrh r0, [r2]
+ cmp r0, 0
+ bne _080206F0
+ ldr r1, [r3]
+ mov r7, r12
+ ldr r0, [r7, 0x74]
+ cmp r1, r0
+ beq _08020746
+_080206F0:
+ adds r3, 0x8
+ adds r2, 0x2
+ adds r5, 0x1
+ cmp r5, r6
+ blt _080206E0
+ movs r5, 0
+ cmp r5, r6
+ bge _08020746
+ ldr r1, [r4]
+ adds r0, r1, 0
+ adds r0, 0xBC
+ ldrh r0, [r0]
+ cmp r0, 0
+ bne _08020724
+ adds r0, r1, 0
+ adds r0, 0x80
+ ldr r0, [r0]
+ str r0, [r1, 0x74]
+ b _08020746
+ .align 2, 0
+_08020718: .4byte gUnknown_203B27C
+_0802071C: .4byte gUnknown_80DC3F4
+_08020720: .4byte gUnknown_80D4970
+_08020724:
+ adds r5, 0x1
+ cmp r5, r6
+ bge _08020746
+ ldr r2, [r4]
+ lsls r0, r5, 1
+ adds r1, r2, 0
+ adds r1, 0xBC
+ adds r1, r0
+ ldrh r0, [r1]
+ cmp r0, 0
+ bne _08020724
+ lsls r0, r5, 3
+ adds r1, r2, 0
+ adds r1, 0x80
+ adds r1, r0
+ ldr r0, [r1]
+ str r0, [r2, 0x74]
+_08020746:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_802069C
+
+ thumb_func_start CreateGulpinLinkMenu
+CreateGulpinLinkMenu:
+ push {r4-r7,lr}
+ movs r7, 0
+ ldr r4, _08020780
+ ldr r0, [r4]
+ adds r0, 0xBC
+ movs r1, 0
+ movs r2, 0x10
+ bl MemoryFill16
+ ldr r1, [r4]
+ ldrb r0, [r1, 0x16]
+ cmp r0, 0
+ beq _0802079C
+ ldr r0, [r1, 0x18]
+ adds r1, 0x24
+ bl sub_80932E0
+ lsls r0, 24
+ cmp r0, 0
+ beq _08020788
+ ldr r0, [r4]
+ ldr r1, _08020784
+ str r1, [r0, 0x7C]
+ adds r0, 0x80
+ movs r1, 0x6
+ b _08020792
+ .align 2, 0
+_08020780: .4byte gUnknown_203B27C
+_08020784: .4byte gGulpinDeselect
+_08020788:
+ ldr r0, [r4]
+ ldr r1, _08020798
+ str r1, [r0, 0x7C]
+ adds r0, 0x80
+ movs r1, 0x5
+_08020792:
+ str r1, [r0]
+ mov r12, r4
+ b _080207CA
+ .align 2, 0
+_08020798: .4byte gGulpinSet
+_0802079C:
+ ldr r0, [r1, 0x18]
+ adds r1, 0x24
+ bl sub_80932FC
+ lsls r0, 24
+ cmp r0, 0
+ beq _080207B4
+ ldr r1, [r4]
+ ldr r0, _080207B0
+ b _080207B8
+ .align 2, 0
+_080207B0: .4byte gGulpinDeselect
+_080207B4:
+ ldr r1, [r4]
+ ldr r0, _0802086C
+_080207B8:
+ str r0, [r1, 0x7C]
+ ldr r2, _08020870
+ ldr r0, [r2]
+ lsls r1, r7, 3
+ adds r0, 0x80
+ adds r0, r1
+ movs r1, 0x7
+ str r1, [r0]
+ mov r12, r2
+_080207CA:
+ adds r7, 0x1
+ mov r0, r12
+ ldr r4, [r0]
+ lsls r1, r7, 3
+ adds r3, r4, 0
+ adds r3, 0x7C
+ adds r2, r3, r1
+ ldr r0, _08020874
+ str r0, [r2]
+ adds r6, r4, 0
+ adds r6, 0x80
+ adds r1, r6, r1
+ movs r0, 0x8
+ str r0, [r1]
+ adds r7, 0x1
+ lsls r1, r7, 3
+ adds r2, r3, r1
+ ldr r0, _08020878
+ str r0, [r2]
+ adds r1, r6, r1
+ movs r0, 0x9
+ str r0, [r1]
+ adds r7, 0x1
+ lsls r1, r7, 3
+ adds r2, r3, r1
+ ldr r0, _0802087C
+ str r0, [r2]
+ adds r1, r6, r1
+ movs r0, 0xA
+ str r0, [r1]
+ adds r7, 0x1
+ lsls r1, r7, 3
+ adds r2, r3, r1
+ ldr r0, _08020880
+ ldr r0, [r0]
+ str r0, [r2]
+ adds r1, r6, r1
+ movs r0, 0xB
+ str r0, [r1]
+ adds r7, 0x1
+ lsls r1, r7, 3
+ adds r3, r1
+ movs r0, 0
+ str r0, [r3]
+ adds r1, r6, r1
+ movs r0, 0x1
+ str r0, [r1]
+ movs r3, 0
+ cmp r3, r7
+ bge _0802084C
+ adds r5, r4, 0
+ adds r4, 0xBC
+ adds r2, r6, 0
+_08020834:
+ ldrh r0, [r4]
+ cmp r0, 0
+ bne _08020842
+ ldr r1, [r2]
+ ldr r0, [r5, 0x78]
+ cmp r1, r0
+ beq _080208A8
+_08020842:
+ adds r4, 0x2
+ adds r2, 0x8
+ adds r3, 0x1
+ cmp r3, r7
+ blt _08020834
+_0802084C:
+ movs r3, 0
+ cmp r3, r7
+ bge _080208A8
+ mov r0, r12
+ ldr r1, [r0]
+ adds r0, r1, 0
+ adds r0, 0xBC
+ ldrh r0, [r0]
+ cmp r0, 0
+ bne _08020884
+ adds r0, r1, 0
+ adds r0, 0x80
+ ldr r0, [r0]
+ str r0, [r1, 0x78]
+ b _080208A8
+ .align 2, 0
+_0802086C: .4byte gGulpinSet
+_08020870: .4byte gUnknown_203B27C
+_08020874: .4byte gGulpinLink
+_08020878: .4byte gGulpinDelink
+_0802087C: .4byte gGulpinForget
+_08020880: .4byte gUnknown_80D4970
+_08020884:
+ adds r3, 0x1
+ cmp r3, r7
+ bge _080208A8
+ mov r0, r12
+ ldr r2, [r0]
+ lsls r0, r3, 1
+ adds r1, r2, 0
+ adds r1, 0xBC
+ adds r1, r0
+ ldrh r0, [r1]
+ cmp r0, 0
+ bne _08020884
+ lsls r0, r3, 3
+ adds r1, r2, 0
+ adds r1, 0x80
+ adds r1, r0
+ ldr r0, [r1]
+ str r0, [r2, 0x78]
+_080208A8:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end CreateGulpinLinkMenu
+
+ thumb_func_start sub_80208B0
+sub_80208B0:
+ push {r4,lr}
+ ldr r4, _080208F4
+ ldr r0, [r4]
+ adds r0, 0xBC
+ movs r1, 0
+ movs r2, 0x10
+ bl MemoryFill16
+ ldr r4, [r4]
+ movs r3, 0
+ ldr r0, _080208F8
+ ldr r0, [r0]
+ str r0, [r4, 0x7C]
+ adds r1, r4, 0
+ adds r1, 0x80
+ movs r0, 0x10
+ str r0, [r1]
+ movs r2, 0x1
+ adds r1, 0x4
+ ldr r0, _080208FC
+ ldr r0, [r0]
+ str r0, [r1]
+ adds r1, 0x4
+ movs r0, 0x11
+ str r0, [r1]
+ adds r0, r4, 0
+ adds r0, 0x8C
+ str r3, [r0]
+ adds r0, 0x4
+ str r2, [r0]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080208F4: .4byte gUnknown_203B27C
+_080208F8: .4byte gUnknown_80D4920
+_080208FC: .4byte gUnknown_80D4928
+ thumb_func_end sub_80208B0
+
+ thumb_func_start sub_8020900
+sub_8020900:
+ push {r4,lr}
+ ldr r4, _08020944
+ ldr r0, [r4]
+ adds r0, 0xBC
+ movs r1, 0
+ movs r2, 0x10
+ bl MemoryFill16
+ ldr r3, [r4]
+ movs r2, 0
+ ldr r0, _08020948
+ ldr r0, [r0]
+ str r0, [r3, 0x7C]
+ adds r1, r3, 0
+ adds r1, 0x80
+ movs r0, 0x10
+ str r0, [r1]
+ adds r1, 0x4
+ ldr r0, _0802094C
+ ldr r0, [r0]
+ str r0, [r1]
+ adds r1, 0x4
+ movs r0, 0x11
+ str r0, [r1]
+ adds r0, r3, 0
+ adds r0, 0x8C
+ str r2, [r0]
+ adds r1, 0x8
+ movs r0, 0x1
+ negs r0, r0
+ str r0, [r1]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08020944: .4byte gUnknown_203B27C
+_08020948: .4byte gUnknown_80D4920
+_0802094C: .4byte gUnknown_80D4928
+ thumb_func_end sub_8020900
+
+ thumb_func_start sub_8020950
+sub_8020950:
+ push {r4,lr}
+ ldr r4, _0802099C
+ ldr r0, [r4]
+ adds r0, 0xBC
+ movs r1, 0
+ movs r2, 0x10
+ bl MemoryFill16
+ ldr r4, [r4]
+ movs r3, 0
+ ldr r0, _080209A0
+ str r0, [r4, 0x7C]
+ adds r1, r4, 0
+ adds r1, 0x80
+ movs r0, 0xD
+ str r0, [r1]
+ movs r2, 0x1
+ adds r1, 0x4
+ ldr r0, _080209A4
+ str r0, [r1]
+ adds r1, 0x4
+ movs r0, 0xE
+ str r0, [r1]
+ adds r1, 0x4
+ ldr r0, _080209A8
+ str r0, [r1]
+ adds r1, 0x4
+ movs r0, 0xF
+ str r0, [r1]
+ adds r0, r4, 0
+ adds r0, 0x94
+ str r3, [r0]
+ adds r0, 0x4
+ str r2, [r0]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0802099C: .4byte gUnknown_203B27C
+_080209A0: .4byte gUnknown_80DC428
+_080209A4: .4byte gUnknown_80DC438
+_080209A8: .4byte gUnknown_80DC448
+ thumb_func_end sub_8020950
+
+ thumb_func_start sub_80209AC
+sub_80209AC:
+ push {lr}
+ sub sp, 0x4
+ mov r0, sp
+ bl sub_80144A4
+ cmp r0, 0
+ bne _080209F4
+ ldr r0, _080209D4
+ ldr r1, [r0]
+ ldr r0, [sp]
+ str r0, [r1, 0x6C]
+ ldr r0, [sp]
+ cmp r0, 0x2
+ beq _080209DE
+ cmp r0, 0x2
+ bgt _080209D8
+ cmp r0, 0x1
+ beq _080209EE
+ b _080209F4
+ .align 2, 0
+_080209D4: .4byte gUnknown_203B27C
+_080209D8:
+ cmp r0, 0xB
+ beq _080209E6
+ b _080209F4
+_080209DE:
+ movs r0, 0xE
+ bl sub_801FDA8
+ b _080209F4
+_080209E6:
+ movs r0, 0x8
+ bl sub_801FDA8
+ b _080209F4
+_080209EE:
+ movs r0, 0xC
+ bl sub_801FDA8
+_080209F4:
+ add sp, 0x4
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80209AC
+
+ thumb_func_start sub_80209FC
+sub_80209FC:
+ push {lr}
+ sub sp, 0x4
+ mov r0, sp
+ bl sub_80144A4
+ cmp r0, 0
+ bne _08020A2E
+ ldr r0, [sp]
+ cmp r0, 0x10
+ beq _08020A20
+ cmp r0, 0x10
+ bgt _08020A1A
+ cmp r0, 0x1
+ beq _08020A28
+ b _08020A2E
+_08020A1A:
+ cmp r0, 0x11
+ beq _08020A28
+ b _08020A2E
+_08020A20:
+ movs r0, 0xE
+ bl sub_801FDA8
+ b _08020A2E
+_08020A28:
+ movs r0, 0xC
+ bl sub_801FDA8
+_08020A2E:
+ add sp, 0x4
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80209FC
+
+ thumb_func_start sub_8020A34
+sub_8020A34:
+ push {lr}
+ sub sp, 0x4
+ mov r0, sp
+ bl sub_80144A4
+ cmp r0, 0
+ bne _08020A7A
+ ldr r0, [sp]
+ cmp r0, 0xD
+ beq _08020A5C
+ cmp r0, 0xD
+ bgt _08020A52
+ cmp r0, 0x1
+ beq _08020A74
+ b _08020A7A
+_08020A52:
+ cmp r0, 0xE
+ beq _08020A64
+ cmp r0, 0xF
+ beq _08020A6C
+ b _08020A7A
+_08020A5C:
+ movs r0, 0x9
+ bl sub_801FDA8
+ b _08020A7A
+_08020A64:
+ movs r0, 0xA
+ bl sub_801FDA8
+ b _08020A7A
+_08020A6C:
+ movs r0, 0xB
+ bl sub_801FDA8
+ b _08020A7A
+_08020A74:
+ movs r0, 0x1
+ bl sub_801FDA8
+_08020A7A:
+ add sp, 0x4
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8020A34
+
+ thumb_func_start sub_8020A80
+sub_8020A80:
+ push {r4,lr}
+ movs r0, 0x1
+ bl sub_8023A94
+ cmp r0, 0x4
+ bhi _08020B32
+ lsls r0, 2
+ ldr r1, _08020A98
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_08020A98: .4byte _08020A9C
+ .align 2, 0
+_08020A9C:
+ .4byte _08020B32
+ .4byte _08020B32
+ .4byte _08020B28
+ .4byte _08020AB0
+ .4byte _08020AEC
+_08020AB0:
+ bl sub_8023B44
+ ldr r4, _08020AE0
+ ldr r1, [r4]
+ strh r0, [r1, 0xC]
+ ldr r3, _08020AE4
+ movs r0, 0xC
+ ldrsh r2, [r1, r0]
+ movs r0, 0x58
+ muls r2, r0
+ ldr r0, [r3]
+ adds r0, r2
+ str r0, [r1, 0x10]
+ ldrb r0, [r0, 0x2]
+ strb r0, [r1, 0x16]
+ ldr r0, _08020AE8
+ ldr r1, [r4]
+ ldr r1, [r1, 0x10]
+ bl sub_808DA34
+ movs r0, 0x11
+ bl sub_801FDA8
+ b _08020B32
+ .align 2, 0
+_08020AE0: .4byte gUnknown_203B27C
+_08020AE4: .4byte gRecruitedPokemonRef
+_08020AE8: .4byte gUnknown_202E128
+_08020AEC:
+ bl sub_8023B44
+ ldr r4, _08020B1C
+ ldr r1, [r4]
+ strh r0, [r1, 0xC]
+ ldr r3, _08020B20
+ movs r0, 0xC
+ ldrsh r2, [r1, r0]
+ movs r0, 0x58
+ muls r2, r0
+ ldr r0, [r3]
+ adds r0, r2
+ str r0, [r1, 0x10]
+ ldrb r0, [r0, 0x2]
+ strb r0, [r1, 0x16]
+ ldr r0, _08020B24
+ ldr r1, [r4]
+ ldr r1, [r1, 0x10]
+ bl sub_808DA34
+ movs r0, 0x12
+ bl sub_801FDA8
+ b _08020B32
+ .align 2, 0
+_08020B1C: .4byte gUnknown_203B27C
+_08020B20: .4byte gRecruitedPokemonRef
+_08020B24: .4byte gUnknown_202E128
+_08020B28:
+ bl sub_8023C60
+ movs r0, 0x7
+ bl sub_801FDA8
+_08020B32:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8020A80
+
+ thumb_func_start sub_8020B38
+sub_8020B38:
+ push {r4,lr}
+ sub sp, 0x4
+ movs r0, 0
+ str r0, [sp]
+ bl sub_8023A94
+ ldr r4, _08020B7C
+ ldr r0, [r4]
+ adds r0, 0xCC
+ bl sub_8012FD8
+ lsls r0, 24
+ cmp r0, 0
+ bne _08020B68
+ ldr r0, [r4]
+ adds r0, 0xCC
+ mov r1, sp
+ bl sub_8013114
+ ldr r1, [sp]
+ cmp r1, 0x1
+ beq _08020B68
+ ldr r0, [r4]
+ str r1, [r0, 0x70]
+_08020B68:
+ ldr r0, [sp]
+ subs r0, 0x1
+ cmp r0, 0x10
+ bhi _08020C24
+ lsls r0, 2
+ ldr r1, _08020B80
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_08020B7C: .4byte gUnknown_203B27C
+_08020B80: .4byte _08020B84
+ .align 2, 0
+_08020B84:
+ .4byte _08020BC8
+ .4byte _08020C24
+ .4byte _08020BD0
+ .4byte _08020C0E
+ .4byte _08020C24
+ .4byte _08020C24
+ .4byte _08020C24
+ .4byte _08020C24
+ .4byte _08020C24
+ .4byte _08020C24
+ .4byte _08020C16
+ .4byte _08020C1E
+ .4byte _08020C24
+ .4byte _08020C24
+ .4byte _08020C24
+ .4byte _08020C24
+ .4byte _08020BC8
+_08020BC8:
+ movs r0, 0x10
+ bl sub_801FDA8
+ b _08020C24
+_08020BD0:
+ ldr r0, _08020BF0
+ ldr r0, [r0]
+ ldr r0, [r0, 0x10]
+ movs r1, 0x8
+ ldrsh r0, [r0, r1]
+ bl GetBaseSpeciesNoUnown
+ lsls r0, 16
+ movs r1, 0xCF
+ lsls r1, 17
+ cmp r0, r1
+ bne _08020BF4
+ movs r0, 0x1C
+ bl sub_801FDA8
+ b _08020C24
+ .align 2, 0
+_08020BF0: .4byte gUnknown_203B27C
+_08020BF4:
+ bl sub_8021178
+ lsls r0, 24
+ cmp r0, 0
+ beq _08020C06
+ movs r0, 0x1B
+ bl sub_801FDA8
+ b _08020C24
+_08020C06:
+ movs r0, 0x14
+ bl sub_801FDA8
+ b _08020C24
+_08020C0E:
+ movs r0, 0x1E
+ bl sub_801FDA8
+ b _08020C24
+_08020C16:
+ movs r0, 0x12
+ bl sub_801FDA8
+ b _08020C24
+_08020C1E:
+ movs r0, 0x13
+ bl sub_801FDA8
+_08020C24:
+ add sp, 0x4
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8020B38
+
+ thumb_func_start sub_8020C2C
+sub_8020C2C:
+ push {lr}
+ bl sub_80244E4
+ cmp r0, 0x1
+ bls _08020C44
+ cmp r0, 0x3
+ bhi _08020C44
+ bl sub_802453C
+ movs r0, 0x10
+ bl sub_801FDA8
+_08020C44:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8020C2C
+
+ thumb_func_start sub_8020C48
+sub_8020C48:
+ push {lr}
+ bl sub_801BF48
+ cmp r0, 0x1
+ bls _08020C60
+ cmp r0, 0x3
+ bhi _08020C60
+ bl sub_801BF98
+ movs r0, 0x10
+ bl sub_801FDA8
+_08020C60:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8020C48
+
+ thumb_func_start sub_8020C64
+sub_8020C64:
+ push {lr}
+ movs r0, 0x1
+ bl sub_801F520
+ cmp r0, 0x3
+ beq _08020C80
+ cmp r0, 0x3
+ bhi _08020C7A
+ cmp r0, 0x2
+ beq _08020CB0
+ b _08020CBA
+_08020C7A:
+ cmp r0, 0x4
+ beq _08020C98
+ b _08020CBA
+_08020C80:
+ bl sub_801F5B4
+ ldr r1, _08020C94
+ ldr r1, [r1]
+ strh r0, [r1, 0x1C]
+ strh r0, [r1, 0x1E]
+ movs r0, 0x17
+ bl sub_801FDA8
+ b _08020CBA
+ .align 2, 0
+_08020C94: .4byte gUnknown_203B27C
+_08020C98:
+ bl sub_801F5B4
+ ldr r1, _08020CAC
+ ldr r1, [r1]
+ strh r0, [r1, 0x1C]
+ strh r0, [r1, 0x1E]
+ movs r0, 0x18
+ bl sub_801FDA8
+ b _08020CBA
+ .align 2, 0
+_08020CAC: .4byte gUnknown_203B27C
+_08020CB0:
+ bl sub_801F63C
+ movs r0, 0x10
+ bl sub_801FDA8
+_08020CBA:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8020C64
+
+ thumb_func_start sub_8020CC0
+sub_8020CC0:
+ push {r4-r6,lr}
+ sub sp, 0x4
+ movs r0, 0
+ str r0, [sp]
+ bl sub_801F520
+ ldr r4, _08020D00
+ ldr r0, [r4]
+ adds r0, 0xCC
+ bl sub_8012FD8
+ lsls r0, 24
+ cmp r0, 0
+ bne _08020CF0
+ ldr r0, [r4]
+ adds r0, 0xCC
+ mov r1, sp
+ bl sub_8013114
+ ldr r1, [sp]
+ cmp r1, 0x1
+ beq _08020CF0
+ ldr r0, [r4]
+ str r1, [r0, 0x74]
+_08020CF0:
+ ldr r0, [sp]
+ cmp r0, 0x3
+ beq _08020D14
+ cmp r0, 0x3
+ bgt _08020D04
+ cmp r0, 0x1
+ beq _08020D0C
+ b _08020D6C
+ .align 2, 0
+_08020D00: .4byte gUnknown_203B27C
+_08020D04:
+ cmp r0, 0xB
+ beq _08020D66
+ cmp r0, 0x11
+ bne _08020D6C
+_08020D0C:
+ movs r0, 0x16
+ bl sub_801FDA8
+ b _08020D6C
+_08020D14:
+ bl sub_801F63C
+ ldr r4, _08020D30
+ ldr r1, [r4]
+ adds r0, r1, 0
+ adds r0, 0x24
+ ldr r1, [r1, 0x10]
+ adds r1, 0x2C
+ bl sub_809401C
+ movs r5, 0
+ adds r6, r4, 0
+ movs r4, 0x24
+ b _08020D38
+ .align 2, 0
+_08020D30: .4byte gUnknown_203B27C
+_08020D34:
+ adds r4, 0x8
+ adds r5, 0x1
+_08020D38:
+ cmp r5, 0x7
+ bgt _08020D52
+ ldr r3, [r6]
+ adds r2, r3, r4
+ ldrb r1, [r2]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ bne _08020D34
+ ldrh r1, [r3, 0x1E]
+ adds r0, r2, 0
+ bl InitZeroedPPPokemonMove
+_08020D52:
+ cmp r5, 0x3
+ ble _08020D5E
+ movs r0, 0x1D
+ bl sub_801FDA8
+ b _08020D6C
+_08020D5E:
+ movs r0, 0x19
+ bl sub_801FDA8
+ b _08020D6C
+_08020D66:
+ movs r0, 0x18
+ bl sub_801FDA8
+_08020D6C:
+ add sp, 0x4
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8020CC0
+
+ thumb_func_start sub_8020D74
+sub_8020D74:
+ push {lr}
+ bl sub_801F890
+ cmp r0, 0x1
+ bls _08020D8C
+ cmp r0, 0x3
+ bhi _08020D8C
+ bl sub_801F8D0
+ movs r0, 0x16
+ bl sub_801FDA8
+_08020D8C:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8020D74
+
+ thumb_func_start sub_8020D90
+sub_8020D90:
+ push {lr}
+ bl sub_801E8C0
+ cmp r0, 0x2
+ beq _08020DBC
+ cmp r0, 0x2
+ bcc _08020DC6
+ cmp r0, 0x3
+ bne _08020DC6
+ bl sub_801E930
+ ldr r1, _08020DB8
+ ldr r1, [r1]
+ strb r0, [r1, 0x14]
+ bl sub_801E93C
+ movs r0, 0x1A
+ bl sub_801FDA8
+ b _08020DC6
+ .align 2, 0
+_08020DB8: .4byte gUnknown_203B27C
+_08020DBC:
+ bl sub_801E93C
+ movs r0, 0x10
+ bl sub_801FDA8
+_08020DC6:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8020D90
+
+ thumb_func_start sub_8020DCC
+sub_8020DCC:
+ push {lr}
+ movs r0, 0x1
+ bl sub_801EF38
+ cmp r0, 0x4
+ bhi _08020EAA
+ lsls r0, 2
+ ldr r1, _08020DE4
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_08020DE4: .4byte _08020DE8
+ .align 2, 0
+_08020DE8:
+ .4byte _08020EAA
+ .4byte _08020E98
+ .4byte _08020E64
+ .4byte _08020DFC
+ .4byte _08020E30
+_08020DFC:
+ bl sub_801F1A4
+ lsls r0, 24
+ cmp r0, 0
+ beq _08020E0E
+ ldr r0, _08020E2C
+ ldr r1, [r0]
+ movs r0, 0x1
+ strb r0, [r1, 0x15]
+_08020E0E:
+ bl sub_801F194
+ ldr r1, _08020E2C
+ ldr r2, [r1]
+ str r0, [r2, 0x18]
+ lsls r0, 3
+ adds r0, r2, r0
+ ldrh r1, [r0, 0x26]
+ strh r1, [r2, 0x1C]
+ ldrh r0, [r0, 0x26]
+ strh r0, [r2, 0x20]
+ movs r0, 0x20
+ bl sub_801FDA8
+ b _08020EAA
+ .align 2, 0
+_08020E2C: .4byte gUnknown_203B27C
+_08020E30:
+ bl sub_801F1A4
+ lsls r0, 24
+ cmp r0, 0
+ beq _08020E42
+ ldr r0, _08020E60
+ ldr r1, [r0]
+ movs r0, 0x1
+ strb r0, [r1, 0x15]
+_08020E42:
+ bl sub_801F194
+ ldr r1, _08020E60
+ ldr r2, [r1]
+ str r0, [r2, 0x18]
+ lsls r0, 3
+ adds r0, r2, r0
+ ldrh r1, [r0, 0x26]
+ strh r1, [r2, 0x1C]
+ ldrh r0, [r0, 0x26]
+ strh r0, [r2, 0x20]
+ movs r0, 0x21
+ bl sub_801FDA8
+ b _08020EAA
+ .align 2, 0
+_08020E60: .4byte gUnknown_203B27C
+_08020E64:
+ bl sub_801F1A4
+ lsls r0, 24
+ cmp r0, 0
+ beq _08020E76
+ ldr r0, _08020E94
+ ldr r1, [r0]
+ movs r0, 0x1
+ strb r0, [r1, 0x15]
+_08020E76:
+ bl sub_801F214
+ ldr r0, _08020E94
+ ldr r1, [r0]
+ adds r0, r1, 0
+ adds r0, 0x24
+ ldr r1, [r1, 0x10]
+ adds r1, 0x2C
+ bl sub_8094060
+ movs r0, 0x10
+ bl sub_801FDA8
+ b _08020EAA
+ .align 2, 0
+_08020E94: .4byte gUnknown_203B27C
+_08020E98:
+ bl sub_801F1A4
+ lsls r0, 24
+ cmp r0, 0
+ beq _08020EAA
+ ldr r0, _08020EB0
+ ldr r1, [r0]
+ movs r0, 0x1
+ strb r0, [r1, 0x15]
+_08020EAA:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08020EB0: .4byte gUnknown_203B27C
+ thumb_func_end sub_8020DCC
+
+ thumb_func_start sub_8020EB4
+sub_8020EB4:
+ push {r4,lr}
+ sub sp, 0x4
+ movs r0, 0
+ str r0, [sp]
+ bl sub_801EF38
+ ldr r4, _08020EF8
+ ldr r0, [r4]
+ adds r0, 0xCC
+ bl sub_8012FD8
+ lsls r0, 24
+ cmp r0, 0
+ bne _08020EE4
+ ldr r0, [r4]
+ adds r0, 0xCC
+ mov r1, sp
+ bl sub_8013114
+ ldr r1, [sp]
+ cmp r1, 0x1
+ beq _08020EE4
+ ldr r0, [r4]
+ str r1, [r0, 0x78]
+_08020EE4:
+ ldr r0, [sp]
+ subs r0, 0x1
+ cmp r0, 0x10
+ bls _08020EEE
+ b _080210BE
+_08020EEE:
+ lsls r0, 2
+ ldr r1, _08020EFC
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_08020EF8: .4byte gUnknown_203B27C
+_08020EFC: .4byte _08020F00
+ .align 2, 0
+_08020F00:
+ .4byte _08021068
+ .4byte _080210BE
+ .4byte _080210BE
+ .4byte _080210BE
+ .4byte _08020F44
+ .4byte _08020F70
+ .4byte _08020F8C
+ .4byte _08020FB8
+ .4byte _08021034
+ .4byte _08021074
+ .4byte _080210B8
+ .4byte _080210BE
+ .4byte _080210BE
+ .4byte _080210BE
+ .4byte _080210BE
+ .4byte _080210BE
+ .4byte _08021068
+_08020F44:
+ ldr r0, _08020F60
+ ldr r1, [r0]
+ ldr r0, [r1, 0x18]
+ adds r1, 0x24
+ bl sub_80934DC
+ lsls r0, 24
+ cmp r0, 0
+ beq _08020F68
+ ldr r0, _08020F64
+ bl PlaySound
+ b _08021068
+ .align 2, 0
+_08020F60: .4byte gUnknown_203B27C
+_08020F64: .4byte 0x00000133
+_08020F68:
+ movs r0, 0x2
+ bl PlayMenuSoundEffect
+ b _08021068
+_08020F70:
+ ldr r0, _08020F84
+ bl PlaySound
+ ldr r0, _08020F88
+ ldr r1, [r0]
+ ldr r0, [r1, 0x18]
+ adds r1, 0x24
+ bl sub_809352C
+ b _08021068
+ .align 2, 0
+_08020F84: .4byte 0x00000133
+_08020F88: .4byte gUnknown_203B27C
+_08020F8C:
+ ldr r0, _08020FA8
+ ldr r1, [r0]
+ ldr r0, [r1, 0x18]
+ adds r1, 0x24
+ bl sub_8093544
+ lsls r0, 24
+ cmp r0, 0
+ beq _08020FB0
+ ldr r0, _08020FAC
+ bl PlaySound
+ b _08021068
+ .align 2, 0
+_08020FA8: .4byte gUnknown_203B27C
+_08020FAC: .4byte 0x00000133
+_08020FB0:
+ movs r0, 0x2
+ bl PlayMenuSoundEffect
+ b _08021068
+_08020FB8:
+ ldr r0, _08020FD8
+ ldr r0, [r0]
+ movs r1, 0x98
+ lsls r1, 2
+ adds r0, r1
+ ldr r0, [r0]
+ cmp r0, 0x95
+ bgt _08020FDC
+ movs r0, 0x2
+ bl PlayMenuSoundEffect
+ movs r0, 0x3
+ bl sub_801FDA8
+ b _080210BE
+ .align 2, 0
+_08020FD8: .4byte gTeamInventory_203B460
+_08020FDC:
+ ldr r4, _08020FFC
+ ldr r1, [r4]
+ ldr r0, [r1, 0x18]
+ adds r1, 0x24
+ bl sub_8093318
+ lsls r0, 24
+ cmp r0, 0
+ bne _08021000
+ movs r0, 0x2
+ bl PlayMenuSoundEffect
+ movs r0, 0x4
+ bl sub_801FDA8
+ b _080210BE
+ .align 2, 0
+_08020FFC: .4byte gUnknown_203B27C
+_08021000:
+ ldr r1, [r4]
+ ldrb r0, [r1, 0x15]
+ cmp r0, 0
+ bne _08021016
+ movs r0, 0x1
+ strb r0, [r1, 0x15]
+ movs r0, 0xA6
+ lsls r0, 1
+ bl PlaySound
+ b _0802101C
+_08021016:
+ ldr r0, _0802102C
+ bl PlaySound
+_0802101C:
+ ldr r0, _08021030
+ ldr r1, [r0]
+ ldr r0, [r1, 0x18]
+ adds r1, 0x24
+ bl sub_8093400
+ b _08021068
+ .align 2, 0
+_0802102C: .4byte 0x00000133
+_08021030: .4byte gUnknown_203B27C
+_08021034:
+ ldr r4, _08021054
+ ldr r1, [r4]
+ ldr r0, [r1, 0x18]
+ adds r1, 0x24
+ bl sub_809333C
+ lsls r0, 24
+ cmp r0, 0
+ bne _08021058
+ movs r0, 0x2
+ bl PlayMenuSoundEffect
+ movs r0, 0x5
+ bl sub_801FDA8
+ b _080210BE
+ .align 2, 0
+_08021054: .4byte gUnknown_203B27C
+_08021058:
+ ldr r0, _08021070
+ bl PlaySound
+ ldr r1, [r4]
+ ldr r0, [r1, 0x18]
+ adds r1, 0x24
+ bl sub_8093468
+_08021068:
+ movs r0, 0x1F
+ bl sub_801FDA8
+ b _080210BE
+ .align 2, 0
+_08021070: .4byte 0x00000133
+_08021074:
+ ldr r4, _08021094
+ ldr r1, [r4]
+ ldr r0, [r1, 0x18]
+ adds r1, 0x24
+ bl sub_80933A0
+ lsls r0, 24
+ cmp r0, 0
+ bne _08021098
+ movs r0, 0x2
+ bl PlayMenuSoundEffect
+ movs r0, 0x6
+ bl sub_801FDA8
+ b _080210BE
+ .align 2, 0
+_08021094: .4byte gUnknown_203B27C
+_08021098:
+ ldr r0, _080210B4
+ bl PlaySound
+ ldr r1, [r4]
+ ldr r0, [r1, 0x18]
+ adds r1, 0x24
+ bl sub_80934B0
+ ldr r1, [r4]
+ strb r0, [r1, 0x14]
+ movs r0, 0x22
+ bl sub_801FDA8
+ b _080210BE
+ .align 2, 0
+_080210B4: .4byte 0x00000133
+_080210B8:
+ movs r0, 0x21
+ bl sub_801FDA8
+_080210BE:
+ add sp, 0x4
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8020EB4
+
+ thumb_func_start sub_80210C8
+sub_80210C8:
+ push {lr}
+ bl sub_801F890
+ cmp r0, 0x1
+ bls _080210E0
+ cmp r0, 0x3
+ bhi _080210E0
+ bl sub_801F8D0
+ movs r0, 0x1F
+ bl sub_801FDA8
+_080210E0:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80210C8
+
+ thumb_func_start sub_80210E4
+sub_80210E4:
+ push {lr}
+ sub sp, 0x4
+ mov r0, sp
+ bl sub_80144A4
+ cmp r0, 0
+ bne _0802112A
+ ldr r0, [sp]
+ cmp r0, 0x10
+ beq _08021108
+ cmp r0, 0x10
+ bgt _08021102
+ cmp r0, 0x1
+ beq _08021124
+ b _0802112A
+_08021102:
+ cmp r0, 0x11
+ beq _08021124
+ b _0802112A
+_08021108:
+ ldr r0, _08021120
+ ldr r1, [r0]
+ adds r0, r1, 0
+ adds r0, 0x24
+ ldr r1, [r1, 0x18]
+ bl sub_8093CF8
+ movs r0, 0x23
+ bl sub_801FDA8
+ b _0802112A
+ .align 2, 0
+_08021120: .4byte gUnknown_203B27C
+_08021124:
+ movs r0, 0x1F
+ bl sub_801FDA8
+_0802112A:
+ add sp, 0x4
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80210E4
+
+ thumb_func_start sub_8021130
+sub_8021130:
+ push {lr}
+ sub sp, 0x4
+ mov r0, sp
+ bl sub_80144A4
+ cmp r0, 0
+ bne _08021148
+ ldr r0, _08021150
+ ldr r0, [r0]
+ ldr r0, [r0, 0x8]
+ bl sub_801FDA8
+_08021148:
+ add sp, 0x4
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08021150: .4byte gUnknown_203B27C
+ thumb_func_end sub_8021130
+
+ thumb_func_start sub_8021154
+sub_8021154:
+ push {lr}
+ sub sp, 0x4
+ mov r0, sp
+ bl sub_80144A4
+ cmp r0, 0x4
+ bne _0802116C
+ ldr r0, _08021174
+ ldr r0, [r0]
+ ldr r0, [r0, 0x8]
+ bl sub_801FDA8
+_0802116C:
+ add sp, 0x4
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08021174: .4byte gUnknown_203B27C
+ thumb_func_end sub_8021154
+
+ thumb_func_start sub_8021178
+sub_8021178:
+ push {lr}
+ mov r12, r4
+ ldr r4, _08021198
+ add sp, r4
+ mov r4, r12
+ ldr r0, _0802119C
+ ldr r0, [r0]
+ ldr r1, [r0, 0x10]
+ mov r0, sp
+ bl sub_808E218
+ cmp r0, 0
+ beq _080211A0
+ movs r0, 0
+ b _080211A2
+ .align 2, 0
+_08021198: .4byte 0xfffffcc0
+_0802119C: .4byte gUnknown_203B27C
+_080211A0:
+ movs r0, 0x1
+_080211A2:
+ movs r3, 0xD0
+ lsls r3, 2
+ add sp, r3
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8021178
+
+ thumb_func_start sub_80211AC
+sub_80211AC:
+ push {r4-r6,lr}
+ adds r4, r0, 0
+ adds r6, r1, 0
+ bl sub_8021700
+ lsls r0, 24
+ cmp r0, 0
+ beq _080211C0
+ movs r0, 0
+ b _08021258
+_080211C0:
+ ldr r5, _08021260
+ movs r0, 0xE0
+ movs r1, 0x8
+ bl MemoryAlloc
+ str r0, [r5]
+ str r4, [r0, 0x3C]
+ str r6, [r0, 0x74]
+ lsls r1, r6, 1
+ adds r1, r6
+ lsls r1, 3
+ adds r1, 0x7C
+ adds r1, r0, r1
+ str r1, [r0, 0x78]
+ adds r0, 0x7C
+ bl sub_8006518
+ ldr r1, [r5]
+ ldr r2, [r1, 0x74]
+ lsls r0, r2, 1
+ adds r0, r2
+ lsls r0, 3
+ adds r1, r0
+ adds r1, 0x7C
+ ldr r0, _08021264
+ ldm r0!, {r2-r4}
+ stm r1!, {r2-r4}
+ ldm r0!, {r2-r4}
+ stm r1!, {r2-r4}
+ ldr r0, [r5]
+ ldr r1, [r0, 0x78]
+ adds r0, 0xDC
+ str r0, [r1, 0x14]
+ bl ResetUnusedInputStruct
+ ldr r0, [r5]
+ adds r0, 0x7C
+ movs r1, 0x1
+ movs r2, 0x1
+ bl sub_800641C
+ ldr r4, [r5]
+ adds r4, 0x40
+ bl sub_8021664
+ adds r1, r0, 0
+ adds r0, r4, 0
+ movs r2, 0xA
+ adds r3, r6, 0
+ bl sub_8013818
+ ldr r0, _08021268
+ ldr r2, [r5]
+ ldr r1, [r0]
+ ldr r0, [r2, 0x3C]
+ cmp r1, r0
+ bne _0802124E
+ ldr r0, _0802126C
+ ldrh r1, [r0]
+ adds r0, r2, 0
+ adds r0, 0x58
+ strh r1, [r0]
+ ldr r0, _08021270
+ ldrh r0, [r0]
+ adds r1, r2, 0
+ adds r1, 0x5E
+ strh r0, [r1]
+ adds r0, r2, 0
+ adds r0, 0x40
+ bl sub_8013984
+_0802124E:
+ bl sub_8021410
+ bl sub_8021494
+ movs r0, 0x1
+_08021258:
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08021260: .4byte gUnknown_203B280
+_08021264: .4byte gUnknown_80DC47C
+_08021268: .4byte gUnknown_203B284
+_0802126C: .4byte gUnknown_203B288
+_08021270: .4byte gUnknown_203B28A
+ thumb_func_end sub_80211AC
+
+ thumb_func_start sub_8021274
+sub_8021274:
+ push {r4,lr}
+ lsls r0, 24
+ cmp r0, 0
+ bne _08021290
+ ldr r0, _0802128C
+ ldr r0, [r0]
+ adds r0, 0x40
+ bl sub_8013660
+ movs r0, 0
+ b _08021326
+ .align 2, 0
+_0802128C: .4byte gUnknown_203B280
+_08021290:
+ ldr r4, _080212A8
+ ldr r0, [r4]
+ adds r0, 0x40
+ bl GetKeyPress
+ cmp r0, 0x2
+ beq _080212B2
+ cmp r0, 0x2
+ bgt _080212AC
+ cmp r0, 0x1
+ beq _080212BC
+ b _08021300
+ .align 2, 0
+_080212A8: .4byte gUnknown_203B280
+_080212AC:
+ cmp r0, 0x4
+ beq _080212F6
+ b _08021300
+_080212B2:
+ movs r0, 0x1
+ bl PlayMenuSoundEffect
+ movs r0, 0x2
+ b _08021326
+_080212BC:
+ ldr r0, [r4]
+ ldr r0, [r0, 0x3C]
+ cmp r0, 0x2
+ bne _080212EC
+ bl sub_802132C
+ lsls r0, 24
+ lsrs r0, 24
+ bl GetFriendAreaPrice
+ ldr r1, _080212E8
+ ldr r1, [r1]
+ movs r2, 0x98
+ lsls r2, 2
+ adds r1, r2
+ ldr r1, [r1]
+ cmp r0, r1
+ ble _080212EC
+ movs r0, 0x2
+ bl PlayMenuSoundEffect
+ b _080212F2
+ .align 2, 0
+_080212E8: .4byte gTeamInventory_203B460
+_080212EC:
+ movs r0, 0
+ bl PlayMenuSoundEffect
+_080212F2:
+ movs r0, 0x3
+ b _08021326
+_080212F6:
+ movs r0, 0x4
+ bl PlayMenuSoundEffect
+ movs r0, 0x4
+ b _08021326
+_08021300:
+ ldr r0, _08021318
+ ldr r0, [r0]
+ adds r0, 0x40
+ movs r1, 0x1
+ bl sub_80138B8
+ lsls r0, 24
+ cmp r0, 0
+ bne _0802131C
+ movs r0, 0
+ b _08021326
+ .align 2, 0
+_08021318: .4byte gUnknown_203B280
+_0802131C:
+ bl sub_8021410
+ bl sub_8021494
+ movs r0, 0x1
+_08021326:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8021274
+
+ thumb_func_start sub_802132C
+sub_802132C:
+ ldr r0, _08021350
+ ldr r2, [r0]
+ adds r0, r2, 0
+ adds r0, 0x5E
+ movs r3, 0
+ ldrsh r1, [r0, r3]
+ subs r0, 0x2
+ movs r3, 0
+ ldrsh r0, [r0, r3]
+ muls r0, r1
+ adds r1, r2, 0
+ adds r1, 0x58
+ movs r3, 0
+ ldrsh r1, [r1, r3]
+ adds r0, r1
+ adds r0, r2, r0
+ ldrb r0, [r0]
+ bx lr
+ .align 2, 0
+_08021350: .4byte gUnknown_203B280
+ thumb_func_end sub_802132C
+
+ thumb_func_start sub_8021354
+sub_8021354:
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ bl ResetUnusedInputStruct
+ ldr r5, _0802139C
+ ldr r0, [r5]
+ adds r0, 0x7C
+ movs r1, 0
+ movs r2, 0
+ bl sub_800641C
+ bl sub_8021664
+ adds r1, r0, 0
+ ldr r0, [r5]
+ adds r2, r0, 0
+ adds r2, 0x62
+ strh r1, [r2]
+ adds r0, 0x40
+ bl sub_8013984
+ bl sub_8021410
+ bl sub_8021494
+ cmp r4, 0
+ beq _08021396
+ ldr r0, [r5]
+ adds r0, 0x40
+ bl AddMenuCursorSprite
+_08021396:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0802139C: .4byte gUnknown_203B280
+ thumb_func_end sub_8021354
+
+ thumb_func_start sub_80213A0
+sub_80213A0:
+ push {r4,r5,lr}
+ ldr r4, _080213FC
+ ldr r2, [r4]
+ cmp r2, 0
+ beq _080213F4
+ ldr r1, _08021400
+ ldr r0, [r2, 0x3C]
+ str r0, [r1]
+ ldr r1, _08021404
+ adds r0, r2, 0
+ adds r0, 0x58
+ ldrh r0, [r0]
+ strh r0, [r1]
+ ldr r1, _08021408
+ adds r0, r2, 0
+ adds r0, 0x5E
+ ldrh r0, [r0]
+ strh r0, [r1]
+ ldr r0, [r2, 0x74]
+ lsls r1, r0, 1
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r2, r1
+ adds r1, 0x7C
+ ldr r0, _0802140C
+ ldm r0!, {r2,r3,r5}
+ stm r1!, {r2,r3,r5}
+ ldm r0!, {r2,r3,r5}
+ stm r1!, {r2,r3,r5}
+ bl ResetUnusedInputStruct
+ ldr r0, [r4]
+ adds r0, 0x7C
+ movs r1, 0x1
+ movs r2, 0x1
+ bl sub_800641C
+ ldr r0, [r4]
+ bl MemoryFree
+ movs r0, 0
+ str r0, [r4]
+_080213F4:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080213FC: .4byte gUnknown_203B280
+_08021400: .4byte gUnknown_203B284
+_08021404: .4byte gUnknown_203B288
+_08021408: .4byte gUnknown_203B28A
+_0802140C: .4byte gUnknown_80DC464
+ thumb_func_end sub_80213A0
+
+ thumb_func_start sub_8021410
+sub_8021410:
+ push {r4,lr}
+ ldr r4, _08021490
+ ldr r0, [r4]
+ adds r0, 0xDC
+ movs r2, 0
+ movs r1, 0x1
+ strb r1, [r0]
+ ldr r0, [r4]
+ adds r0, 0xDD
+ strb r2, [r0]
+ ldr r0, [r4]
+ adds r0, 0xDE
+ movs r1, 0xC
+ strb r1, [r0]
+ ldr r0, [r4]
+ adds r0, 0xDF
+ strb r2, [r0]
+ bl ResetUnusedInputStruct
+ ldr r0, [r4]
+ adds r0, 0x7C
+ movs r1, 0x1
+ movs r2, 0x1
+ bl sub_800641C
+ ldr r0, [r4]
+ adds r0, 0x5A
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ movs r1, 0xC
+ bl sub_80095E4
+ adds r0, 0x2
+ lsls r0, 16
+ ldr r2, [r4]
+ ldr r3, [r2, 0x74]
+ lsls r1, r3, 1
+ adds r1, r3
+ lsls r1, 3
+ adds r1, r2, r1
+ adds r1, 0x8A
+ asrs r3, r0, 16
+ lsrs r0, 16
+ strh r0, [r1]
+ ldr r1, [r2, 0x74]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 3
+ adds r2, r0
+ adds r3, 0x2
+ adds r2, 0x8C
+ strh r3, [r2]
+ bl ResetUnusedInputStruct
+ ldr r0, [r4]
+ adds r0, 0x7C
+ movs r1, 0x1
+ movs r2, 0x1
+ bl sub_800641C
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08021490: .4byte gUnknown_203B280
+ thumb_func_end sub_8021410
+
+ thumb_func_start sub_8021494
+sub_8021494:
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0xA8
+ ldr r4, _08021568
+ ldr r0, [r4]
+ ldr r0, [r0, 0x74]
+ bl sub_8008C54
+ ldr r0, [r4]
+ ldr r0, [r0, 0x74]
+ bl sub_80073B8
+ ldr r2, _0802156C
+ ldr r0, [r4]
+ ldr r3, [r0, 0x74]
+ movs r0, 0
+ str r0, [sp]
+ movs r0, 0xA
+ movs r1, 0
+ bl xxx_call_draw_string
+ ldr r3, [r4]
+ adds r0, r3, 0
+ adds r0, 0xDE
+ ldrb r0, [r0]
+ lsls r0, 3
+ adds r0, 0x4
+ adds r1, r3, 0
+ adds r1, 0x5E
+ movs r5, 0
+ ldrsh r2, [r1, r5]
+ adds r2, 0x1
+ movs r1, 0x7
+ str r1, [sp]
+ ldr r1, [r3, 0x74]
+ str r1, [sp, 0x4]
+ movs r1, 0
+ movs r3, 0x1
+ bl sub_8012BC4
+ movs r0, 0
+ mov r9, r0
+ ldr r0, [r4]
+ adds r0, 0x5A
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ cmp r9, r0
+ blt _080214FC
+ b _08021646
+_080214FC:
+ mov r8, r4
+ add r2, sp, 0x58
+ mov r10, r2
+_08021502:
+ mov r3, r8
+ ldr r2, [r3]
+ adds r0, r2, 0
+ adds r0, 0x5E
+ movs r5, 0
+ ldrsh r1, [r0, r5]
+ subs r0, 0x2
+ movs r3, 0
+ ldrsh r0, [r0, r3]
+ muls r0, r1
+ add r0, r9
+ adds r0, r2, r0
+ ldrb r5, [r0]
+ adds r7, r5, 0
+ ldr r6, [r2, 0x3C]
+ cmp r6, 0x2
+ bne _0802159C
+ add r0, sp, 0x8
+ adds r1, r5, 0
+ movs r2, 0x1
+ bl sub_8092578
+ adds r0, r5, 0
+ bl GetFriendAreaPrice
+ ldr r1, _08021570
+ ldr r1, [r1]
+ movs r5, 0x98
+ lsls r5, 2
+ adds r1, r5
+ ldr r1, [r1]
+ cmp r0, r1
+ bgt _08021574
+ mov r1, r8
+ ldr r0, [r1]
+ adds r0, 0x40
+ mov r1, r9
+ bl sub_8013800
+ adds r1, r0, 0
+ mov r2, r8
+ ldr r0, [r2]
+ ldr r3, [r0, 0x74]
+ movs r0, 0
+ str r0, [sp]
+ movs r0, 0x8
+ add r2, sp, 0x8
+ bl xxx_call_draw_string
+ b _08021632
+ .align 2, 0
+_08021568: .4byte gUnknown_203B280
+_0802156C: .4byte gUnknown_80DC494
+_08021570: .4byte gTeamInventory_203B460
+_08021574:
+ mov r0, r10
+ ldr r1, _08021598
+ add r2, sp, 0x8
+ bl ExpandPlaceholdersBuffer
+ mov r3, r8
+ ldr r0, [r3]
+ adds r0, 0x40
+ mov r1, r9
+ bl sub_8013800
+ adds r1, r0, 0
+ mov r5, r8
+ ldr r0, [r5]
+ ldr r3, [r0, 0x74]
+ movs r0, 0
+ str r0, [sp]
+ b _080215FE
+ .align 2, 0
+_08021598: .4byte gUnknown_80DC4A4
+_0802159C:
+ cmp r6, 0
+ bne _0802160C
+ ldr r0, _080215D4
+ ldr r0, [r0]
+ adds r0, r5
+ ldrb r0, [r0]
+ cmp r0, 0x1
+ bne _080215D8
+ adds r0, r2, 0
+ adds r0, 0x40
+ mov r1, r9
+ bl sub_8013800
+ adds r4, r0, 0
+ adds r0, r5, 0
+ bl GetFriendAreaName
+ adds r2, r0, 0
+ mov r1, r8
+ ldr r0, [r1]
+ ldr r3, [r0, 0x74]
+ str r6, [sp]
+ movs r0, 0x8
+ adds r1, r4, 0
+ bl xxx_call_draw_string
+ b _08021632
+ .align 2, 0
+_080215D4: .4byte gFriendAreas
+_080215D8:
+ adds r0, r5, 0
+ bl GetFriendAreaName
+ adds r2, r0, 0
+ mov r0, r10
+ ldr r1, _08021608
+ bl ExpandPlaceholdersBuffer
+ mov r2, r8
+ ldr r0, [r2]
+ adds r0, 0x40
+ mov r1, r9
+ bl sub_8013800
+ adds r1, r0, 0
+ mov r3, r8
+ ldr r0, [r3]
+ ldr r3, [r0, 0x74]
+ str r6, [sp]
+_080215FE:
+ movs r0, 0x8
+ mov r2, r10
+ bl xxx_call_draw_string
+ b _08021632
+ .align 2, 0
+_08021608: .4byte gUnknown_80DC4AC
+_0802160C:
+ adds r0, r2, 0
+ adds r0, 0x40
+ mov r1, r9
+ bl sub_8013800
+ adds r4, r0, 0
+ adds r0, r7, 0
+ bl GetFriendAreaName
+ adds r2, r0, 0
+ mov r5, r8
+ ldr r0, [r5]
+ ldr r3, [r0, 0x74]
+ movs r0, 0
+ str r0, [sp]
+ movs r0, 0x8
+ adds r1, r4, 0
+ bl xxx_call_draw_string
+_08021632:
+ movs r0, 0x1
+ add r9, r0
+ mov r1, r8
+ ldr r0, [r1]
+ adds r0, 0x5A
+ movs r2, 0
+ ldrsh r0, [r0, r2]
+ cmp r9, r0
+ bge _08021646
+ b _08021502
+_08021646:
+ ldr r0, _08021660
+ ldr r0, [r0]
+ ldr r0, [r0, 0x74]
+ bl sub_80073E0
+ add sp, 0xA8
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08021660: .4byte gUnknown_203B280
+ thumb_func_end sub_8021494
+
+ thumb_func_start sub_8021664
+sub_8021664:
+ push {r4-r6,lr}
+ movs r5, 0
+ ldr r1, _0802167C
+ ldr r0, [r1]
+ ldr r0, [r0, 0x3C]
+ cmp r0, 0x1
+ beq _08021692
+ cmp r0, 0x1
+ bcc _08021680
+ cmp r0, 0x2
+ beq _080216B4
+ b _080216F2
+ .align 2, 0
+_0802167C: .4byte gUnknown_203B280
+_08021680:
+ movs r4, 0x1
+_08021682:
+ ldr r0, [r1]
+ adds r0, r5
+ strb r4, [r0]
+ adds r5, 0x1
+ adds r4, 0x1
+ cmp r4, 0x39
+ ble _08021682
+ b _080216F2
+_08021692:
+ movs r4, 0x1
+ ldr r2, _080216B0
+_08021696:
+ ldr r0, [r2]
+ adds r0, r4
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _080216A8
+ ldr r0, [r1]
+ adds r0, r5
+ strb r4, [r0]
+ adds r5, 0x1
+_080216A8:
+ adds r4, 0x1
+ cmp r4, 0x39
+ ble _08021696
+ b _080216F2
+ .align 2, 0
+_080216B0: .4byte gFriendAreas
+_080216B4:
+ movs r4, 0x1
+ adds r6, r1, 0
+_080216B8:
+ ldr r0, _080216FC
+ ldr r0, [r0]
+ adds r0, r4
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _080216EC
+ lsls r0, r4, 24
+ lsrs r0, 24
+ bl GetFriendAreaUnlockCondition
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0
+ beq _080216E4
+ cmp r0, 0x1
+ bne _080216EC
+ movs r0, 0x6
+ bl sub_80023E4
+ lsls r0, 24
+ cmp r0, 0
+ beq _080216EC
+_080216E4:
+ ldr r0, [r6]
+ adds r0, r5
+ strb r4, [r0]
+ adds r5, 0x1
+_080216EC:
+ adds r4, 0x1
+ cmp r4, 0x39
+ ble _080216B8
+_080216F2:
+ adds r0, r5, 0
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080216FC: .4byte gFriendAreas
+ thumb_func_end sub_8021664
+
+ thumb_func_start sub_8021700
+sub_8021700:
+ push {r4,lr}
+ cmp r0, 0x1
+ beq _08021710
+ cmp r0, 0x1
+ bcc _08021754
+ cmp r0, 0x2
+ beq _0802172C
+ b _0802176A
+_08021710:
+ movs r4, 0x1
+ ldr r0, _08021728
+ ldr r1, [r0]
+_08021716:
+ adds r0, r1, r4
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _08021754
+ adds r4, 0x1
+ cmp r4, 0x39
+ ble _08021716
+ b _0802176A
+ .align 2, 0
+_08021728: .4byte gFriendAreas
+_0802172C:
+ movs r4, 0x1
+_0802172E:
+ ldr r0, _08021750
+ ldr r0, [r0]
+ adds r0, r4
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _08021764
+ lsls r0, r4, 24
+ lsrs r0, 24
+ bl GetFriendAreaUnlockCondition
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0
+ beq _08021754
+ cmp r0, 0x1
+ beq _08021758
+ b _08021764
+ .align 2, 0
+_08021750: .4byte gFriendAreas
+_08021754:
+ movs r0, 0
+ b _0802176C
+_08021758:
+ movs r0, 0x6
+ bl sub_80023E4
+ lsls r0, 24
+ cmp r0, 0
+ bne _08021754
+_08021764:
+ adds r4, 0x1
+ cmp r4, 0x39
+ ble _0802172E
+_0802176A:
+ movs r0, 0x1
+_0802176C:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8021700
+
+ thumb_func_start sub_8021774
+sub_8021774:
+ push {r4-r6,lr}
+ mov r6, r8
+ push {r6}
+ adds r4, r0, 0
+ adds r5, r1, 0
+ mov r8, r2
+ lsls r4, 24
+ lsrs r4, 24
+ lsls r5, 24
+ lsrs r5, 24
+ ldr r6, _080217E4
+ movs r0, 0xE0
+ movs r1, 0x8
+ bl MemoryAlloc
+ str r0, [r6]
+ strb r4, [r0, 0xC]
+ ldr r0, [r6]
+ strb r5, [r0, 0xD]
+ ldr r0, [r6]
+ bl sub_801317C
+ bl sub_8021A60
+ ldr r0, [r6]
+ mov r1, r8
+ str r1, [r0, 0x74]
+ lsls r1, 1
+ add r1, r8
+ lsls r1, 3
+ adds r1, 0x7C
+ adds r1, r0, r1
+ str r1, [r0, 0x78]
+ adds r0, 0x7C
+ bl sub_8006518
+ ldr r1, [r6]
+ ldr r2, [r1, 0x74]
+ lsls r0, r2, 1
+ adds r0, r2
+ lsls r0, 3
+ adds r1, r0
+ adds r1, 0x7C
+ ldr r0, _080217E8
+ ldm r0!, {r2-r4}
+ stm r1!, {r2-r4}
+ ldm r0!, {r2-r4}
+ stm r1!, {r2-r4}
+ bl sub_8021820
+ movs r0, 0x1
+ pop {r3}
+ mov r8, r3
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080217E4: .4byte gUnknown_203B28C
+_080217E8: .4byte gUnknown_80DC4D8
+ thumb_func_end sub_8021774
+
+ thumb_func_start sub_80217EC
+sub_80217EC:
+ push {lr}
+ ldr r0, _0802180C
+ ldr r0, [r0]
+ ldr r1, [r0, 0x74]
+ bl sub_8012A64
+ cmp r0, 0x1
+ beq _08021810
+ cmp r0, 0x2
+ bne _0802181A
+ movs r0, 0x1
+ bl PlayMenuSoundEffect
+ movs r0, 0x2
+ b _0802181C
+ .align 2, 0
+_0802180C: .4byte gUnknown_203B28C
+_08021810:
+ movs r0, 0
+ bl PlayMenuSoundEffect
+ movs r0, 0x3
+ b _0802181C
+_0802181A:
+ movs r0, 0
+_0802181C:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80217EC
+
+ thumb_func_start sub_8021820
+sub_8021820:
+ push {lr}
+ bl sub_8021878
+ bl sub_8021894
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8021820
+
+ thumb_func_start sub_8021830
+sub_8021830:
+ push {r4,r5,lr}
+ ldr r4, _08021870
+ ldr r2, [r4]
+ cmp r2, 0
+ beq _0802186A
+ ldr r0, [r2, 0x74]
+ lsls r1, r0, 1
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r2, r1
+ adds r1, 0x7C
+ ldr r0, _08021874
+ ldm r0!, {r2,r3,r5}
+ stm r1!, {r2,r3,r5}
+ ldm r0!, {r2,r3,r5}
+ stm r1!, {r2,r3,r5}
+ bl ResetUnusedInputStruct
+ ldr r0, [r4]
+ adds r0, 0x7C
+ movs r1, 0x1
+ movs r2, 0x1
+ bl sub_800641C
+ ldr r0, [r4]
+ bl MemoryFree
+ movs r0, 0
+ str r0, [r4]
+_0802186A:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08021870: .4byte gUnknown_203B28C
+_08021874: .4byte gUnknown_80DC4BC
+ thumb_func_end sub_8021830
+
+ thumb_func_start sub_8021878
+sub_8021878:
+ push {lr}
+ bl ResetUnusedInputStruct
+ ldr r0, _08021890
+ ldr r0, [r0]
+ adds r0, 0x7C
+ movs r1, 0x1
+ movs r2, 0x1
+ bl sub_800641C
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08021890: .4byte gUnknown_203B28C
+ thumb_func_end sub_8021878
+
+ thumb_func_start sub_8021894
+sub_8021894:
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ sub sp, 0x168
+ ldr r4, _080218F8
+ ldr r0, [r4]
+ ldr r0, [r0, 0x74]
+ bl sub_80073B8
+ ldr r0, [r4]
+ ldrb r1, [r0, 0xC]
+ add r0, sp, 0x4
+ movs r2, 0
+ bl sub_8092578
+ ldr r0, [r4]
+ ldr r3, [r0, 0x74]
+ movs r5, 0
+ str r5, [sp]
+ movs r0, 0x14
+ movs r1, 0
+ add r2, sp, 0x4
+ bl xxx_call_draw_string
+ ldr r0, [r4]
+ ldrb r0, [r0, 0xC]
+ bl GetFriendAreaDescription
+ adds r2, r0, 0
+ ldr r0, [r4]
+ ldr r3, [r0, 0x74]
+ str r5, [sp]
+ movs r0, 0xA
+ movs r1, 0x14
+ bl xxx_call_draw_string
+ ldr r4, [r4]
+ ldrb r0, [r4, 0xD]
+ cmp r0, 0
+ beq _08021900
+ ldr r2, _080218FC
+ ldr r3, [r4, 0x74]
+ str r5, [sp]
+ movs r0, 0x20
+ movs r1, 0x3C
+ bl xxx_call_draw_string
+ b _0802190E
+ .align 2, 0
+_080218F8: .4byte gUnknown_203B28C
+_080218FC: .4byte gUnknown_80DC4F0
+_08021900:
+ ldr r2, _0802193C
+ ldr r3, [r4, 0x74]
+ str r0, [sp]
+ movs r0, 0x20
+ movs r1, 0x3C
+ bl xxx_call_draw_string
+_0802190E:
+ ldr r4, _08021940
+ ldr r0, [r4]
+ ldr r0, [r0, 0x74]
+ movs r5, 0x4
+ str r5, [sp]
+ movs r1, 0x4
+ movs r2, 0x40
+ movs r3, 0x14
+ bl sub_800792C
+ ldr r4, [r4]
+ ldrb r0, [r4, 0xD]
+ cmp r0, 0
+ beq _08021944
+ ldr r0, [r4, 0x74]
+ str r5, [sp]
+ movs r1, 0xB8
+ movs r2, 0x40
+ movs r3, 0x14
+ bl sub_800792C
+ b _08021952
+ .align 2, 0
+_0802193C: .4byte gUnknown_80DC518
+_08021940: .4byte gUnknown_203B28C
+_08021944:
+ ldr r0, [r4, 0x74]
+ str r5, [sp]
+ movs r1, 0x5E
+ movs r2, 0x40
+ movs r3, 0x6E
+ bl sub_800792C
+_08021952:
+ ldr r5, _080219E8
+ ldr r0, [r5]
+ ldr r0, [r0, 0x74]
+ movs r4, 0x4
+ str r4, [sp]
+ movs r1, 0x4
+ movs r2, 0x82
+ movs r3, 0xC8
+ bl sub_800792C
+ ldr r0, [r5]
+ ldr r0, [r0, 0x74]
+ str r4, [sp]
+ movs r1, 0x3
+ movs r2, 0x40
+ movs r3, 0x43
+ bl sub_8007A78
+ ldr r0, [r5]
+ ldr r0, [r0, 0x74]
+ str r4, [sp]
+ movs r1, 0xCC
+ movs r2, 0x40
+ movs r3, 0x43
+ bl sub_8007A78
+ movs r6, 0
+ ldr r0, [r5]
+ ldr r0, [r0, 0x70]
+ cmp r6, r0
+ bge _08021A40
+ add r7, sp, 0x104
+ mov r8, r5
+ mov r9, r6
+_08021996:
+ adds r0, r6, 0
+ movs r1, 0x3
+ bl __modsi3
+ lsls r1, r0, 6
+ subs r1, r0
+ adds r5, r1, 0x7
+ adds r0, r6, 0
+ movs r1, 0x3
+ bl __divsi3
+ lsls r1, r0, 1
+ adds r1, r0
+ lsls r1, 2
+ adds r4, r1, 0
+ adds r4, 0x47
+ mov r1, r8
+ ldr r0, [r1]
+ lsls r1, r6, 1
+ adds r0, 0xE
+ adds r0, r1
+ movs r2, 0
+ ldrsh r1, [r0, r2]
+ adds r0, r7, 0
+ bl sub_808D930
+ mov r0, r8
+ ldr r3, [r0]
+ lsls r1, r6, 2
+ adds r0, r3, 0
+ adds r0, 0x30
+ adds r0, r1
+ ldr r0, [r0]
+ cmp r0, 0x1
+ beq _08021A04
+ cmp r0, 0x1
+ bcc _080219EC
+ cmp r0, 0x2
+ beq _08021A16
+ b _08021A34
+ .align 2, 0
+_080219E8: .4byte gUnknown_203B28C
+_080219EC:
+ ldr r0, _08021A00
+ ldr r2, [r0]
+ ldr r3, [r3, 0x74]
+ mov r1, r9
+ str r1, [sp]
+ adds r0, r5, 0
+ adds r1, r4, 0
+ bl xxx_call_draw_string
+ b _08021A34
+ .align 2, 0
+_08021A00: .4byte gUnknown_80D49BC
+_08021A04:
+ ldr r3, [r3, 0x74]
+ mov r2, r9
+ str r2, [sp]
+ adds r0, r5, 0
+ adds r1, r4, 0
+ adds r2, r7, 0
+ bl xxx_call_draw_string
+ b _08021A34
+_08021A16:
+ add r0, sp, 0x4
+ ldr r1, _08021A58
+ adds r2, r7, 0
+ bl ExpandPlaceholdersBuffer
+ mov r1, r8
+ ldr r0, [r1]
+ ldr r3, [r0, 0x74]
+ mov r2, r9
+ str r2, [sp]
+ adds r0, r5, 0
+ adds r1, r4, 0
+ add r2, sp, 0x4
+ bl xxx_call_draw_string
+_08021A34:
+ adds r6, 0x1
+ mov r1, r8
+ ldr r0, [r1]
+ ldr r0, [r0, 0x70]
+ cmp r6, r0
+ blt _08021996
+_08021A40:
+ ldr r0, _08021A5C
+ ldr r0, [r0]
+ ldr r0, [r0, 0x74]
+ bl sub_80073E0
+ add sp, 0x168
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08021A58: .4byte gUnknown_80DC524
+_08021A5C: .4byte gUnknown_203B28C
+ thumb_func_end sub_8021894
+
+ thumb_func_start sub_8021A60
+sub_8021A60:
+ push {r4-r7,lr}
+ ldr r2, _08021B4C
+ ldr r1, [r2]
+ movs r0, 0
+ str r0, [r1, 0x70]
+ movs r6, 0
+ adds r4, r2, 0
+ movs r3, 0
+_08021A70:
+ ldr r1, [r4]
+ lsls r2, r6, 1
+ adds r0, r1, 0
+ adds r0, 0xE
+ adds r0, r2
+ strh r3, [r0]
+ lsls r0, r6, 2
+ adds r1, 0x30
+ adds r1, r0
+ str r3, [r1]
+ adds r6, 0x1
+ cmp r6, 0xF
+ ble _08021A70
+ movs r6, 0
+ ldr r7, _08021B4C
+_08021A8E:
+ lsls r0, r6, 16
+ asrs r5, r0, 16
+ ldr r4, [r7]
+ adds r0, r5, 0
+ bl GetFriendArea
+ ldrb r1, [r4, 0xC]
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r1, r0
+ bne _08021AC4
+ adds r0, r5, 0
+ bl GetBaseSpeciesNoUnown
+ lsls r0, 16
+ asrs r0, 16
+ cmp r5, r0
+ bne _08021AC4
+ ldr r3, [r7]
+ ldr r1, [r3, 0x70]
+ lsls r2, r1, 1
+ adds r0, r3, 0
+ adds r0, 0xE
+ adds r0, r2
+ strh r5, [r0]
+ adds r1, 0x1
+ str r1, [r3, 0x70]
+_08021AC4:
+ adds r6, 0x1
+ ldr r0, _08021B50
+ cmp r6, r0
+ ble _08021A8E
+ movs r6, 0
+_08021ACE:
+ lsls r0, r6, 16
+ asrs r4, r0, 16
+ adds r0, r4, 0
+ bl sub_8098134
+ lsls r0, 24
+ cmp r0, 0
+ beq _08021AFC
+ adds r0, r4, 0
+ bl sub_8021B58
+ adds r2, r0, 0
+ movs r0, 0x1
+ negs r0, r0
+ cmp r2, r0
+ beq _08021AFC
+ ldr r0, _08021B4C
+ ldr r1, [r0]
+ lsls r0, r2, 2
+ adds r1, 0x30
+ adds r1, r0
+ movs r0, 0x1
+ str r0, [r1]
+_08021AFC:
+ adds r6, 0x1
+ ldr r0, _08021B50
+ cmp r6, r0
+ ble _08021ACE
+ movs r6, 0
+ ldr r4, _08021B54
+_08021B08:
+ movs r0, 0x58
+ adds r1, r6, 0
+ muls r1, r0
+ ldr r0, [r4]
+ adds r2, r0, r1
+ ldrb r1, [r2]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _08021B3C
+ movs r1, 0x8
+ ldrsh r0, [r2, r1]
+ bl sub_8021B58
+ adds r2, r0, 0
+ movs r0, 0x1
+ negs r0, r0
+ cmp r2, r0
+ beq _08021B3C
+ ldr r0, _08021B4C
+ ldr r1, [r0]
+ lsls r0, r2, 2
+ adds r1, 0x30
+ adds r1, r0
+ movs r0, 0x2
+ str r0, [r1]
+_08021B3C:
+ adds r6, 0x1
+ movs r0, 0xCE
+ lsls r0, 1
+ cmp r6, r0
+ ble _08021B08
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08021B4C: .4byte gUnknown_203B28C
+_08021B50: .4byte 0x000001a7
+_08021B54: .4byte gRecruitedPokemonRef
+ thumb_func_end sub_8021A60
+
+ thumb_func_start sub_8021B58
+sub_8021B58:
+ push {r4,r5,lr}
+ lsls r0, 16
+ asrs r0, 16
+ bl GetBaseSpeciesNoUnown
+ lsls r0, 16
+ asrs r4, r0, 16
+ movs r2, 0
+ ldr r0, _08021B84
+ ldr r0, [r0]
+ ldr r1, [r0, 0x70]
+ cmp r2, r1
+ bge _08021B90
+ adds r3, r1, 0
+ adds r1, r0, 0
+ adds r1, 0xE
+_08021B78:
+ movs r5, 0
+ ldrsh r0, [r1, r5]
+ cmp r4, r0
+ bne _08021B88
+ adds r0, r2, 0
+ b _08021B94
+ .align 2, 0
+_08021B84: .4byte gUnknown_203B28C
+_08021B88:
+ adds r1, 0x2
+ adds r2, 0x1
+ cmp r2, r3
+ blt _08021B78
+_08021B90:
+ movs r0, 0x1
+ negs r0, r0
+_08021B94:
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8021B58
+
+ thumb_func_start CreateWigglytuffShop
+CreateWigglytuffShop:
+ push {r4-r6,lr}
+ adds r4, r0, 0
+ bl ResetUnusedInputStruct
+ movs r0, 0
+ movs r1, 0x1
+ movs r2, 0x1
+ bl sub_800641C
+ ldr r5, _08021BF8
+ movs r0, 0x9C
+ lsls r0, 1
+ movs r1, 0x8
+ bl MemoryAlloc
+ str r0, [r5]
+ movs r6, 0
+ str r6, [r0, 0x14]
+ str r6, [r0, 0x18]
+ str r4, [r0]
+ ldr r0, _08021BFC
+ movs r1, 0x28
+ bl CopyYellowSpeciesNametoBuffer
+ ldr r4, _08021C00
+ adds r0, r4, 0
+ movs r1, 0x28
+ bl CopyYellowSpeciesNametoBuffer
+ movs r0, 0x28
+ bl GetMonSpecies
+ adds r1, r0, 0
+ subs r4, 0x50
+ adds r0, r4, 0
+ bl strcpy
+ ldr r5, [r5]
+ ldr r0, [r5]
+ cmp r0, 0x1
+ bne _08021C04
+ adds r0, r5, 0
+ adds r0, 0xCC
+ str r6, [r0]
+ b _08021C0E
+ .align 2, 0
+_08021BF8: .4byte gUnknown_203B290
+_08021BFC: .4byte gUnknown_202E5D8
+_08021C00: .4byte gUnknown_202E1C8
+_08021C04:
+ adds r1, r5, 0
+ adds r1, 0xCC
+ adds r0, r5, 0
+ adds r0, 0xBC
+ str r0, [r1]
+_08021C0E:
+ movs r0, 0x28
+ bl GetDialogueSpriteDataPtr
+ ldr r2, _08021C58
+ ldr r3, [r2]
+ adds r1, r3, 0
+ adds r1, 0xBC
+ str r0, [r1]
+ adds r1, 0x4
+ ldr r0, [r0, 0x4]
+ str r0, [r1]
+ adds r0, r3, 0
+ adds r0, 0xC8
+ movs r1, 0
+ strb r1, [r0]
+ ldr r0, [r2]
+ adds r0, 0xC9
+ strb r1, [r0]
+ ldr r0, [r2]
+ adds r0, 0xCA
+ strb r1, [r0]
+ ldr r1, [r2]
+ adds r2, r1, 0
+ adds r2, 0xC4
+ movs r0, 0x2
+ strh r0, [r2]
+ adds r1, 0xC6
+ movs r0, 0x8
+ strh r0, [r1]
+ movs r0, 0
+ bl sub_8021D44
+ movs r0, 0x1
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08021C58: .4byte gUnknown_203B290
+ thumb_func_end CreateWigglytuffShop
+
+ thumb_func_start sub_8021C5C
+sub_8021C5C:
+ push {lr}
+ ldr r0, _08021C74
+ ldr r0, [r0]
+ ldr r0, [r0, 0x4]
+ cmp r0, 0x17
+ bhi _08021D10
+ lsls r0, 2
+ ldr r1, _08021C78
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_08021C74: .4byte gUnknown_203B290
+_08021C78: .4byte _08021C7C
+ .align 2, 0
+_08021C7C:
+ .4byte _08021CDC
+ .4byte _08021CDC
+ .4byte _08021D10
+ .4byte _08021D10
+ .4byte _08021D0C
+ .4byte _08021D10
+ .4byte _08021D10
+ .4byte _08021D10
+ .4byte _08021D10
+ .4byte _08021CE2
+ .4byte _08021CE2
+ .4byte _08021CE8
+ .4byte _08021D10
+ .4byte _08021CF4
+ .4byte _08021CFA
+ .4byte _08021D10
+ .4byte _08021D00
+ .4byte _08021CEE
+ .4byte _08021D10
+ .4byte _08021D10
+ .4byte _08021D10
+ .4byte _08021D10
+ .4byte _08021D06
+ .4byte _08021D06
+_08021CDC:
+ bl sub_8022460
+ b _08021D14
+_08021CE2:
+ bl sub_8022538
+ b _08021D14
+_08021CE8:
+ bl sub_80225C8
+ b _08021D14
+_08021CEE:
+ bl sub_80224D4
+ b _08021D14
+_08021CF4:
+ bl sub_80226F0
+ b _08021D14
+_08021CFA:
+ bl sub_8022790
+ b _08021D14
+_08021D00:
+ bl sub_8022668
+ b _08021D14
+_08021D06:
+ bl sub_8022684
+ b _08021D14
+_08021D0C:
+ movs r0, 0x3
+ b _08021D16
+_08021D10:
+ bl sub_80226CC
+_08021D14:
+ movs r0, 0
+_08021D16:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8021C5C
+
+ thumb_func_start sub_8021D1C
+sub_8021D1C:
+ push {r4,lr}
+ ldr r4, _08021D40
+ ldr r0, [r4]
+ cmp r0, 0
+ beq _08021D38
+ adds r0, 0xBC
+ ldr r0, [r0]
+ bl CloseFile
+ ldr r0, [r4]
+ bl MemoryFree
+ movs r0, 0
+ str r0, [r4]
+_08021D38:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08021D40: .4byte gUnknown_203B290
+ thumb_func_end sub_8021D1C
+
+ thumb_func_start sub_8021D44
+sub_8021D44:
+ push {lr}
+ ldr r1, _08021D58
+ ldr r1, [r1]
+ str r0, [r1, 0x4]
+ bl sub_8021D5C
+ bl UpdateWigglytuffDialogue
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08021D58: .4byte gUnknown_203B290
+ thumb_func_end sub_8021D44
+
+ thumb_func_start sub_8021D5C
+sub_8021D5C:
+ push {r4-r7,lr}
+ ldr r4, _08021D7C
+ ldr r0, [r4]
+ adds r0, 0xD0
+ bl sub_8006518
+ ldr r1, [r4]
+ ldr r0, [r1, 0x4]
+ cmp r0, 0x9
+ blt _08021DC8
+ cmp r0, 0xA
+ ble _08021D80
+ cmp r0, 0xB
+ beq _08021DB0
+ b _08021DC8
+ .align 2, 0
+_08021D7C: .4byte gUnknown_203B290
+_08021D80:
+ ldr r2, _08021DA8
+ adds r1, 0xD0
+ adds r0, r2, 0
+ ldm r0!, {r3,r5,r6}
+ stm r1!, {r3,r5,r6}
+ ldm r0!, {r3,r5,r7}
+ stm r1!, {r3,r5,r7}
+ ldr r0, [r4]
+ movs r6, 0x80
+ lsls r6, 1
+ adds r0, r6
+ ldm r2!, {r1,r3,r7}
+ stm r0!, {r1,r3,r7}
+ ldm r2!, {r5-r7}
+ stm r0!, {r5-r7}
+ ldr r1, [r4]
+ adds r1, 0xE8
+ ldr r0, _08021DAC
+ b _08021DB8
+ .align 2, 0
+_08021DA8: .4byte gUnknown_80DC534
+_08021DAC: .4byte gUnknown_80DC564
+_08021DB0:
+ movs r0, 0x80
+ lsls r0, 1
+ adds r1, r0
+ ldr r0, _08021DC4
+_08021DB8:
+ ldm r0!, {r2-r4}
+ stm r1!, {r2-r4}
+ ldm r0!, {r5-r7}
+ stm r1!, {r5-r7}
+ b _08021DEC
+ .align 2, 0
+_08021DC4: .4byte gUnknown_80DC54C
+_08021DC8:
+ ldr r0, _08021E04
+ mov r12, r0
+ ldr r4, _08021E08
+ movs r3, 0
+ movs r2, 0x3
+_08021DD2:
+ mov r5, r12
+ ldr r1, [r5]
+ adds r1, r3
+ adds r1, 0xD0
+ adds r0, r4, 0
+ ldm r0!, {r5-r7}
+ stm r1!, {r5-r7}
+ ldm r0!, {r5-r7}
+ stm r1!, {r5-r7}
+ adds r3, 0x18
+ subs r2, 0x1
+ cmp r2, 0
+ bge _08021DD2
+_08021DEC:
+ bl ResetUnusedInputStruct
+ ldr r0, _08021E04
+ ldr r0, [r0]
+ adds r0, 0xD0
+ movs r1, 0x1
+ movs r2, 0x1
+ bl sub_800641C
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08021E04: .4byte gUnknown_203B290
+_08021E08: .4byte gUnknown_80DC534
+ thumb_func_end sub_8021D5C
+
+ thumb_func_start UpdateWigglytuffDialogue
+UpdateWigglytuffDialogue:
+ push {r4,lr}
+ sub sp, 0x20
+ ldr r1, _08021E28
+ ldr r0, [r1]
+ ldr r0, [r0, 0x4]
+ adds r4, r1, 0
+ cmp r0, 0x1C
+ bls _08021E1E
+ b _080222B6
+_08021E1E:
+ lsls r0, 2
+ ldr r1, _08021E2C
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_08021E28: .4byte gUnknown_203B290
+_08021E2C: .4byte _08021E30
+ .align 2, 0
+_08021E30:
+ .4byte _08021EA4
+ .4byte _08021EC0
+ .4byte _08021F38
+ .4byte _08021F50
+ .4byte _080222B6
+ .4byte _08021F78
+ .4byte _08021F90
+ .4byte _08021F08
+ .4byte _08021F20
+ .4byte _08021FD8
+ .4byte _08021FE2
+ .4byte _08021FF0
+ .4byte _0802208E
+ .4byte _080220B8
+ .4byte _080220D8
+ .4byte _080220EA
+ .4byte _08022080
+ .4byte _08022024
+ .4byte _08021FA8
+ .4byte _08021FC0
+ .4byte _08022138
+ .4byte _08022150
+ .4byte _08022168
+ .4byte _08022176
+ .4byte _0802217E
+ .4byte _08022238
+ .4byte _08022250
+ .4byte _08022268
+ .4byte _08022294
+_08021EA4:
+ bl sub_80222C8
+ ldr r2, _08021EB8
+ ldr r0, _08021EBC
+ ldr r4, [r0]
+ ldr r1, [r4]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 4
+ b _08021ED4
+ .align 2, 0
+_08021EB8: .4byte gWigglytuffDialogue
+_08021EBC: .4byte gUnknown_203B290
+_08021EC0:
+ bl sub_80222C8
+ ldr r2, _08021F00
+ ldr r0, _08021F04
+ ldr r4, [r0]
+ ldr r1, [r4]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 4
+ adds r2, 0x4
+_08021ED4:
+ adds r0, r2
+ ldr r0, [r0]
+ ldr r2, [r4, 0x14]
+ adds r3, r4, 0
+ adds r3, 0x1C
+ adds r1, r4, 0
+ adds r1, 0x5C
+ str r1, [sp]
+ movs r1, 0x4
+ str r1, [sp, 0x4]
+ movs r1, 0
+ str r1, [sp, 0x8]
+ adds r1, r4, 0
+ adds r1, 0xCC
+ ldr r1, [r1]
+ str r1, [sp, 0xC]
+ movs r1, 0xC
+ str r1, [sp, 0x10]
+ movs r1, 0
+ bl sub_8014248
+ b _080222B6
+ .align 2, 0
+_08021F00: .4byte gWigglytuffDialogue
+_08021F04: .4byte gUnknown_203B290
+_08021F08:
+ ldr r3, [r4]
+ movs r0, 0x9
+ str r0, [r3, 0x8]
+ ldr r2, _08021F1C
+ ldr r1, [r3]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 4
+ adds r2, 0xC
+ b _0802227A
+ .align 2, 0
+_08021F1C: .4byte gWigglytuffDialogue
+_08021F20:
+ ldr r3, [r4]
+ movs r0, 0xA
+ str r0, [r3, 0x8]
+ ldr r2, _08021F34
+ ldr r1, [r3]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 4
+ adds r2, 0x10
+ b _0802227A
+ .align 2, 0
+_08021F34: .4byte gWigglytuffDialogue
+_08021F38:
+ ldr r3, [r4]
+ movs r0, 0x1
+ str r0, [r3, 0x8]
+ ldr r2, _08021F4C
+ ldr r1, [r3]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 4
+ adds r2, 0x4C
+ b _0802227A
+ .align 2, 0
+_08021F4C: .4byte gWigglytuffDialogue
+_08021F50:
+ ldr r3, [r4]
+ movs r0, 0x4
+ str r0, [r3, 0x8]
+ ldr r2, _08021F70
+ ldr r1, [r3]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 4
+ adds r2, 0x8
+ adds r0, r2
+ ldr r0, [r0]
+ adds r3, 0xCC
+ ldr r2, [r3]
+ ldr r3, _08021F74
+ b _08022284
+ .align 2, 0
+_08021F70: .4byte gWigglytuffDialogue
+_08021F74: .4byte 0x0000030d
+_08021F78:
+ ldr r3, [r4]
+ movs r0, 0x3
+ str r0, [r3, 0x8]
+ ldr r2, _08021F8C
+ ldr r1, [r3]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 4
+ adds r2, 0x20
+ b _0802227A
+ .align 2, 0
+_08021F8C: .4byte gWigglytuffDialogue
+_08021F90:
+ ldr r3, [r4]
+ movs r0, 0xA
+ str r0, [r3, 0x8]
+ ldr r2, _08021FA4
+ ldr r1, [r3]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 4
+ adds r2, 0x24
+ b _0802227A
+ .align 2, 0
+_08021FA4: .4byte gWigglytuffDialogue
+_08021FA8:
+ ldr r3, [r4]
+ movs r0, 0x3
+ str r0, [r3, 0x8]
+ ldr r2, _08021FBC
+ ldr r1, [r3]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 4
+ adds r2, 0x28
+ b _0802227A
+ .align 2, 0
+_08021FBC: .4byte gWigglytuffDialogue
+_08021FC0:
+ ldr r3, [r4]
+ movs r0, 0xA
+ str r0, [r3, 0x8]
+ ldr r2, _08021FD4
+ ldr r1, [r3]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 4
+ adds r2, 0x2C
+ b _0802227A
+ .align 2, 0
+_08021FD4: .4byte gWigglytuffDialogue
+_08021FD8:
+ movs r0, 0x2
+ movs r1, 0x3
+ bl sub_80211AC
+ b _08021FE8
+_08021FE2:
+ movs r0, 0x1
+ bl sub_8021354
+_08021FE8:
+ movs r0, 0x1
+ bl DrawTeamMoneyBox
+ b _080222B6
+_08021FF0:
+ bl sub_8021494
+ movs r0, 0x1
+ bl DrawTeamMoneyBox
+ bl sub_8022380
+ ldr r0, _08022020
+ ldr r2, [r0]
+ adds r0, r2, 0
+ adds r0, 0x6C
+ adds r1, r2, 0
+ adds r1, 0x1C
+ adds r3, r2, 0
+ adds r3, 0x5C
+ ldr r2, [r2, 0x18]
+ str r2, [sp]
+ movs r2, 0x2
+ str r2, [sp, 0x4]
+ movs r2, 0
+ bl sub_8012D60
+ b _080222B6
+ .align 2, 0
+_08022020: .4byte gUnknown_203B290
+_08022024:
+ bl sub_8022420
+ ldr r0, _08022070
+ ldr r4, _08022074
+ ldr r1, [r4]
+ ldrb r1, [r1, 0x10]
+ movs r2, 0
+ bl sub_8092578
+ ldr r1, _08022078
+ ldr r4, [r4]
+ ldr r0, [r4, 0xC]
+ str r0, [r1]
+ ldr r2, _0802207C
+ ldr r1, [r4]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 4
+ adds r2, 0x14
+ adds r0, r2
+ ldr r0, [r0]
+ adds r3, r4, 0
+ adds r3, 0x1C
+ movs r2, 0
+ str r2, [sp]
+ movs r1, 0x4
+ str r1, [sp, 0x4]
+ str r2, [sp, 0x8]
+ adds r4, 0xCC
+ ldr r1, [r4]
+ str r1, [sp, 0xC]
+ movs r1, 0xC
+ str r1, [sp, 0x10]
+ movs r1, 0
+ movs r2, 0x5
+ bl sub_8014248
+ b _080222B6
+ .align 2, 0
+_08022070: .4byte gUnknown_202E628
+_08022074: .4byte gUnknown_203B290
+_08022078: .4byte gUnknown_202DE30
+_0802207C: .4byte gWigglytuffDialogue
+_08022080:
+ ldr r0, [r4]
+ ldrb r0, [r0, 0x10]
+ movs r1, 0
+ movs r2, 0x2
+ bl sub_8021774
+ b _080222B6
+_0802208E:
+ ldr r1, [r4]
+ movs r0, 0xD
+ str r0, [r1, 0x8]
+ ldr r0, _080220B0
+ ldrb r1, [r1, 0x10]
+ movs r2, 0
+ bl sub_8092578
+ ldr r2, _080220B4
+ ldr r3, [r4]
+ ldr r1, [r3]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 4
+ adds r2, 0x18
+ b _0802227A
+ .align 2, 0
+_080220B0: .4byte gUnknown_202E628
+_080220B4: .4byte gWigglytuffDialogue
+_080220B8:
+ ldr r1, [r4]
+ movs r0, 0xE
+ str r0, [r1, 0x8]
+ ldr r0, _080220D4
+ bl PlaySound
+ ldr r0, [r4]
+ movs r1, 0x98
+ lsls r1, 1
+ adds r0, r1
+ movs r1, 0x1
+ str r1, [r0]
+ b _080222B6
+ .align 2, 0
+_080220D4: .4byte 0x0000025b
+_080220D8:
+ ldr r0, [r4]
+ movs r1, 0xF
+ str r1, [r0, 0x8]
+ movs r1, 0x9A
+ lsls r1, 1
+ adds r0, r1
+ movs r1, 0x1E
+ str r1, [r0]
+ b _080222B6
+_080220EA:
+ movs r0, 0x2
+ bl sub_8021700
+ lsls r0, 24
+ cmp r0, 0
+ beq _08022108
+ bl sub_80213A0
+ ldr r0, _08022104
+ ldr r1, [r0]
+ movs r0, 0x12
+ b _0802210E
+ .align 2, 0
+_08022104: .4byte gUnknown_203B290
+_08022108:
+ ldr r0, _08022130
+ ldr r1, [r0]
+ movs r0, 0x8
+_0802210E:
+ str r0, [r1, 0x8]
+ movs r0, 0xCE
+ bl PlaySound
+ ldr r3, _08022134
+ ldr r0, _08022130
+ ldr r2, [r0]
+ ldr r1, [r2]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 4
+ adds r3, 0x1C
+ adds r0, r3
+ ldr r0, [r0]
+ adds r2, 0xCC
+ ldr r2, [r2]
+ b _08022282
+ .align 2, 0
+_08022130: .4byte gUnknown_203B290
+_08022134: .4byte gWigglytuffDialogue
+_08022138:
+ ldr r3, [r4]
+ movs r0, 0x16
+ str r0, [r3, 0x8]
+ ldr r2, _0802214C
+ ldr r1, [r3]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 4
+ adds r2, 0x30
+ b _0802227A
+ .align 2, 0
+_0802214C: .4byte gWigglytuffDialogue
+_08022150:
+ ldr r3, [r4]
+ movs r0, 0x17
+ str r0, [r3, 0x8]
+ ldr r2, _08022164
+ ldr r1, [r3]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 4
+ adds r2, 0x34
+ b _0802227A
+ .align 2, 0
+_08022164: .4byte gWigglytuffDialogue
+_08022168:
+ movs r0, 0
+ movs r1, 0x3
+ movs r2, 0
+ movs r3, 0xA
+ bl sub_8023144
+ b _080222B6
+_08022176:
+ movs r0, 0x1
+ bl sub_8023354
+ b _080222B6
+_0802217E:
+ ldr r4, _080221A0
+ ldr r0, [r4]
+ ldrb r0, [r0, 0x10]
+ add r1, sp, 0x14
+ movs r2, 0
+ movs r3, 0
+ bl sub_8092638
+ add r0, sp, 0x14
+ ldrb r0, [r0, 0x4]
+ cmp r0, 0
+ beq _080221A4
+ ldr r1, [r4]
+ movs r0, 0x19
+ str r0, [r1, 0x8]
+ b _080221FA
+ .align 2, 0
+_080221A0: .4byte gUnknown_203B290
+_080221A4:
+ ldr r0, [r4]
+ ldrb r0, [r0, 0x10]
+ bl GetFriendAreaUnlockCondition
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x2
+ beq _080221E0
+ cmp r0, 0x2
+ bgt _080221BE
+ cmp r0, 0x1
+ beq _080221C4
+ b _080221F0
+_080221BE:
+ cmp r0, 0x3
+ beq _080221E8
+ b _080221F0
+_080221C4:
+ movs r0, 0x6
+ bl sub_80023E4
+ lsls r0, 24
+ cmp r0, 0
+ beq _080221D8
+ ldr r1, [r4]
+ movs r0, 0x15
+ str r0, [r1, 0x8]
+ b _080221FA
+_080221D8:
+ ldr r1, [r4]
+ movs r0, 0x1A
+ str r0, [r1, 0x8]
+ b _080221FA
+_080221E0:
+ ldr r1, [r4]
+ movs r0, 0x1B
+ str r0, [r1, 0x8]
+ b _080221FA
+_080221E8:
+ ldr r1, [r4]
+ movs r0, 0x1C
+ str r0, [r1, 0x8]
+ b _080221FA
+_080221F0:
+ ldr r2, _08022228
+ ldr r1, [r2]
+ movs r0, 0x15
+ str r0, [r1, 0x8]
+ adds r4, r2, 0
+_080221FA:
+ ldr r0, [r4]
+ movs r1, 0x12
+ ldrsh r0, [r0, r1]
+ bl GetMonSpecies
+ adds r1, r0, 0
+ ldr r0, _0802222C
+ bl strcpy
+ ldr r0, _08022230
+ ldr r1, [r4]
+ ldrb r1, [r1, 0x10]
+ movs r2, 0
+ bl sub_8092578
+ ldr r2, _08022234
+ ldr r3, [r4]
+ ldr r1, [r3]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 4
+ adds r2, 0x38
+ b _0802227A
+ .align 2, 0
+_08022228: .4byte gUnknown_203B290
+_0802222C: .4byte gAvailablePokemonNames
+_08022230: .4byte gUnknown_202E628
+_08022234: .4byte gWigglytuffDialogue
+_08022238:
+ ldr r3, [r4]
+ movs r0, 0x15
+ str r0, [r3, 0x8]
+ ldr r2, _0802224C
+ ldr r1, [r3]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 4
+ adds r2, 0x3C
+ b _0802227A
+ .align 2, 0
+_0802224C: .4byte gWigglytuffDialogue
+_08022250:
+ ldr r3, [r4]
+ movs r0, 0x15
+ str r0, [r3, 0x8]
+ ldr r2, _08022264
+ ldr r1, [r3]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 4
+ adds r2, 0x40
+ b _0802227A
+ .align 2, 0
+_08022264: .4byte gWigglytuffDialogue
+_08022268:
+ ldr r3, [r4]
+ movs r0, 0x15
+ str r0, [r3, 0x8]
+ ldr r2, _0802228C
+ ldr r1, [r3]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 4
+ adds r2, 0x44
+_0802227A:
+ adds r0, r2
+ ldr r0, [r0]
+ adds r3, 0xCC
+ ldr r2, [r3]
+_08022282:
+ ldr r3, _08022290
+_08022284:
+ movs r1, 0
+ bl sub_80141B4
+ b _080222B6
+ .align 2, 0
+_0802228C: .4byte gWigglytuffDialogue
+_08022290: .4byte 0x0000010d
+_08022294:
+ ldr r3, [r4]
+ movs r0, 0x15
+ str r0, [r3, 0x8]
+ ldr r2, _080222C0
+ ldr r1, [r3]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 4
+ adds r2, 0x48
+ adds r0, r2
+ ldr r0, [r0]
+ adds r3, 0xCC
+ ldr r2, [r3]
+ ldr r3, _080222C4
+ movs r1, 0
+ bl sub_80141B4
+_080222B6:
+ add sp, 0x20
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080222C0: .4byte gWigglytuffDialogue
+_080222C4: .4byte 0x0000010d
+ thumb_func_end UpdateWigglytuffDialogue
+
+ thumb_func_start sub_80222C8
+sub_80222C8:
+ push {r4-r7,lr}
+ ldr r4, _08022344
+ ldr r0, [r4]
+ adds r0, 0x5C
+ movs r1, 0
+ movs r2, 0x10
+ bl MemoryFill16
+ ldr r1, [r4]
+ movs r5, 0
+ ldr r0, _08022348
+ ldr r0, [r0]
+ str r0, [r1, 0x1C]
+ adds r3, r1, 0
+ adds r3, 0x20
+ movs r0, 0x2
+ str r0, [r1, 0x20]
+ movs r2, 0x1
+ ldr r0, _0802234C
+ ldr r0, [r0]
+ str r0, [r1, 0x24]
+ movs r0, 0x3
+ str r0, [r1, 0x28]
+ ldr r0, _08022350
+ ldr r0, [r0]
+ str r0, [r1, 0x2C]
+ movs r0, 0x4
+ str r0, [r1, 0x30]
+ ldr r0, _08022354
+ ldr r0, [r0]
+ str r0, [r1, 0x34]
+ str r2, [r1, 0x38]
+ movs r7, 0x4
+ str r5, [r1, 0x3C]
+ str r2, [r3, 0x20]
+ adds r6, r1, 0
+ adds r2, r6, 0
+ adds r2, 0x5C
+_08022314:
+ ldrh r0, [r2]
+ cmp r0, 0
+ bne _08022322
+ ldr r1, [r3]
+ ldr r0, [r6, 0x14]
+ cmp r1, r0
+ beq _0802237A
+_08022322:
+ adds r3, 0x8
+ adds r2, 0x2
+ adds r5, 0x1
+ cmp r5, r7
+ blt _08022314
+ movs r5, 0
+ cmp r5, r7
+ bge _0802237A
+ ldr r1, [r4]
+ adds r0, r1, 0
+ adds r0, 0x5C
+ ldrh r0, [r0]
+ cmp r0, 0
+ bne _08022358
+ ldr r0, [r1, 0x20]
+ str r0, [r1, 0x14]
+ b _0802237A
+ .align 2, 0
+_08022344: .4byte gUnknown_203B290
+_08022348: .4byte gUnknown_80D4978
+_0802234C: .4byte gWigglytuffCheck
+_08022350: .4byte gUnknown_80D4970
+_08022354: .4byte gUnknown_80D4934
+_08022358:
+ adds r5, 0x1
+ cmp r5, r7
+ bge _0802237A
+ ldr r2, [r4]
+ lsls r0, r5, 1
+ adds r1, r2, 0
+ adds r1, 0x5C
+ adds r1, r0
+ ldrh r0, [r1]
+ cmp r0, 0
+ bne _08022358
+ lsls r0, r5, 3
+ adds r1, r2, 0
+ adds r1, 0x20
+ adds r1, r0
+ ldr r0, [r1]
+ str r0, [r2, 0x14]
+_0802237A:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80222C8
+
+ thumb_func_start sub_8022380
+sub_8022380:
+ push {r4-r7,lr}
+ ldr r4, _080223EC
+ ldr r0, [r4]
+ adds r0, 0x5C
+ movs r1, 0
+ movs r2, 0x10
+ bl MemoryFill16
+ ldr r3, [r4]
+ movs r2, 0
+ ldr r0, _080223F0
+ ldr r0, [r0]
+ str r0, [r3, 0x1C]
+ movs r0, 0x2
+ str r0, [r3, 0x20]
+ movs r1, 0x1
+ ldr r0, _080223F4
+ ldr r0, [r0]
+ str r0, [r3, 0x24]
+ movs r0, 0x4
+ str r0, [r3, 0x28]
+ movs r6, 0x2
+ str r2, [r3, 0x2C]
+ str r1, [r3, 0x30]
+ movs r5, 0
+ mov r12, r3
+ adds r3, 0x20
+ mov r2, r12
+ adds r2, 0x5C
+_080223BA:
+ ldrh r0, [r2]
+ cmp r0, 0
+ bne _080223CA
+ ldr r1, [r3]
+ mov r7, r12
+ ldr r0, [r7, 0x18]
+ cmp r1, r0
+ beq _0802241A
+_080223CA:
+ adds r3, 0x8
+ adds r2, 0x2
+ adds r5, 0x1
+ cmp r5, r6
+ blt _080223BA
+ movs r5, 0
+ cmp r5, r6
+ bge _0802241A
+ ldr r1, [r4]
+ adds r0, r1, 0
+ adds r0, 0x5C
+ ldrh r0, [r0]
+ cmp r0, 0
+ bne _080223F8
+ ldr r0, [r1, 0x20]
+ str r0, [r1, 0x18]
+ b _0802241A
+ .align 2, 0
+_080223EC: .4byte gUnknown_203B290
+_080223F0: .4byte gUnknown_80D4978
+_080223F4: .4byte gUnknown_80D4970
+_080223F8:
+ adds r5, 0x1
+ cmp r5, r6
+ bge _0802241A
+ ldr r2, [r4]
+ lsls r0, r5, 1
+ adds r1, r2, 0
+ adds r1, 0x5C
+ adds r1, r0
+ ldrh r0, [r1]
+ cmp r0, 0
+ bne _080223F8
+ lsls r0, r5, 3
+ adds r1, r2, 0
+ adds r1, 0x20
+ adds r1, r0
+ ldr r0, [r1]
+ str r0, [r2, 0x18]
+_0802241A:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8022380
+
+ thumb_func_start sub_8022420
+sub_8022420:
+ push {r4,lr}
+ ldr r4, _08022454
+ ldr r0, [r4]
+ adds r0, 0x5C
+ movs r1, 0
+ movs r2, 0x10
+ bl MemoryFill16
+ ldr r1, [r4]
+ movs r3, 0
+ ldr r0, _08022458
+ ldr r0, [r0]
+ str r0, [r1, 0x1C]
+ movs r0, 0x5
+ str r0, [r1, 0x20]
+ movs r2, 0x1
+ ldr r0, _0802245C
+ ldr r0, [r0]
+ str r0, [r1, 0x24]
+ movs r0, 0x6
+ str r0, [r1, 0x28]
+ str r3, [r1, 0x2C]
+ str r2, [r1, 0x30]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08022454: .4byte gUnknown_203B290
+_08022458: .4byte gUnknown_80D4920
+_0802245C: .4byte gUnknown_80D4928
+ thumb_func_end sub_8022420
+
+ thumb_func_start sub_8022460
+sub_8022460:
+ push {lr}
+ sub sp, 0x4
+ mov r0, sp
+ bl sub_80144A4
+ cmp r0, 0
+ bne _080224CC
+ ldr r1, [sp]
+ cmp r1, 0x1
+ beq _0802247A
+ ldr r0, _0802248C
+ ldr r0, [r0]
+ str r1, [r0, 0x14]
+_0802247A:
+ ldr r0, [sp]
+ cmp r0, 0x2
+ beq _0802249A
+ cmp r0, 0x2
+ bgt _08022490
+ cmp r0, 0x1
+ beq _080224C6
+ b _080224CC
+ .align 2, 0
+_0802248C: .4byte gUnknown_203B290
+_08022490:
+ cmp r0, 0x3
+ beq _080224B6
+ cmp r0, 0x4
+ beq _080224BE
+ b _080224CC
+_0802249A:
+ movs r0, 0x2
+ bl sub_8021700
+ lsls r0, 24
+ cmp r0, 0
+ beq _080224AE
+ movs r0, 0x5
+ bl sub_8021D44
+ b _080224CC
+_080224AE:
+ movs r0, 0x7
+ bl sub_8021D44
+ b _080224CC
+_080224B6:
+ movs r0, 0x14
+ bl sub_8021D44
+ b _080224CC
+_080224BE:
+ movs r0, 0x2
+ bl sub_8021D44
+ b _080224CC
+_080224C6:
+ movs r0, 0x3
+ bl sub_8021D44
+_080224CC:
+ add sp, 0x4
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8022460
+
+ thumb_func_start sub_80224D4
+sub_80224D4:
+ push {lr}
+ sub sp, 0x4
+ mov r0, sp
+ bl sub_80144A4
+ cmp r0, 0
+ bne _08022532
+ ldr r0, [sp]
+ cmp r0, 0x5
+ beq _080224F8
+ cmp r0, 0x5
+ bgt _080224F2
+ cmp r0, 0x1
+ beq _0802252C
+ b _08022532
+_080224F2:
+ cmp r0, 0x6
+ beq _0802252C
+ b _08022532
+_080224F8:
+ ldr r0, _08022524
+ ldr r2, [r0]
+ movs r0, 0x98
+ lsls r0, 2
+ adds r2, r0
+ ldr r0, _08022528
+ ldr r3, [r0]
+ ldr r0, [r2]
+ ldr r1, [r3, 0xC]
+ subs r0, r1
+ str r0, [r2]
+ ldrb r0, [r3, 0x10]
+ bl UnlockFriendArea
+ movs r0, 0xA6
+ lsls r0, 1
+ bl PlaySound
+ movs r0, 0xC
+ bl sub_8021D44
+ b _08022532
+ .align 2, 0
+_08022524: .4byte gTeamInventory_203B460
+_08022528: .4byte gUnknown_203B290
+_0802252C:
+ movs r0, 0xA
+ bl sub_8021D44
+_08022532:
+ add sp, 0x4
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80224D4
+
+ thumb_func_start sub_8022538
+sub_8022538:
+ push {r4,lr}
+ movs r0, 0x1
+ bl sub_8021274
+ cmp r0, 0x4
+ bhi _080225BC
+ lsls r0, 2
+ ldr r1, _08022550
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_08022550: .4byte _08022554
+ .align 2, 0
+_08022554:
+ .4byte _080225C2
+ .4byte _080225BC
+ .4byte _080225B0
+ .4byte _08022568
+ .4byte _0802258C
+_08022568:
+ bl sub_802132C
+ ldr r4, _08022588
+ ldr r1, [r4]
+ strb r0, [r1, 0x10]
+ ldr r0, [r4]
+ ldrb r0, [r0, 0x10]
+ bl GetFriendAreaPrice
+ ldr r1, [r4]
+ str r0, [r1, 0xC]
+ movs r0, 0xB
+ bl sub_8021D44
+ b _080225C2
+ .align 2, 0
+_08022588: .4byte gUnknown_203B290
+_0802258C:
+ bl sub_802132C
+ ldr r4, _080225AC
+ ldr r1, [r4]
+ strb r0, [r1, 0x10]
+ ldr r0, [r4]
+ ldrb r0, [r0, 0x10]
+ bl GetFriendAreaPrice
+ ldr r1, [r4]
+ str r0, [r1, 0xC]
+ movs r0, 0x10
+ bl sub_8021D44
+ b _080225C2
+ .align 2, 0
+_080225AC: .4byte gUnknown_203B290
+_080225B0:
+ bl sub_80213A0
+ movs r0, 0x1
+ bl sub_8021D44
+ b _080225C2
+_080225BC:
+ movs r0, 0x1
+ bl DrawTeamMoneyBox
+_080225C2:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8022538
+
+ thumb_func_start sub_80225C8
+sub_80225C8:
+ push {r4,lr}
+ sub sp, 0x4
+ movs r0, 0
+ str r0, [sp]
+ bl sub_8021274
+ ldr r4, _08022608
+ ldr r0, [r4]
+ adds r0, 0x6C
+ bl sub_8012FD8
+ lsls r0, 24
+ cmp r0, 0
+ bne _080225F8
+ ldr r0, [r4]
+ adds r0, 0x6C
+ mov r1, sp
+ bl sub_8013114
+ ldr r1, [sp]
+ cmp r1, 0x1
+ beq _080225F8
+ ldr r0, [r4]
+ str r1, [r0, 0x18]
+_080225F8:
+ ldr r0, [sp]
+ cmp r0, 0x2
+ beq _08022612
+ cmp r0, 0x2
+ bgt _0802260C
+ cmp r0, 0x1
+ beq _08022658
+ b _0802265E
+ .align 2, 0
+_08022608: .4byte gUnknown_203B290
+_0802260C:
+ cmp r0, 0x4
+ beq _08022650
+ b _0802265E
+_08022612:
+ ldr r0, _0802262C
+ ldr r0, [r0]
+ movs r1, 0x98
+ lsls r1, 2
+ adds r0, r1
+ ldr r1, [r0]
+ cmp r1, 0
+ bne _08022630
+ movs r0, 0x6
+ bl sub_8021D44
+ b _0802265E
+ .align 2, 0
+_0802262C: .4byte gTeamInventory_203B460
+_08022630:
+ ldr r0, _08022644
+ ldr r0, [r0]
+ ldr r0, [r0, 0xC]
+ cmp r0, r1
+ ble _08022648
+ movs r0, 0x13
+ bl sub_8021D44
+ b _0802265E
+ .align 2, 0
+_08022644: .4byte gUnknown_203B290
+_08022648:
+ movs r0, 0x11
+ bl sub_8021D44
+ b _0802265E
+_08022650:
+ movs r0, 0x10
+ bl sub_8021D44
+ b _0802265E
+_08022658:
+ movs r0, 0xA
+ bl sub_8021D44
+_0802265E:
+ add sp, 0x4
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80225C8
+
+ thumb_func_start sub_8022668
+sub_8022668:
+ push {lr}
+ bl sub_80217EC
+ cmp r0, 0x1
+ bls _08022680
+ cmp r0, 0x3
+ bhi _08022680
+ bl sub_8021830
+ movs r0, 0xA
+ bl sub_8021D44
+_08022680:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8022668
+
+ thumb_func_start sub_8022684
+sub_8022684:
+ push {r4,lr}
+ movs r0, 0x1
+ bl sub_8023278
+ cmp r0, 0x2
+ beq _080226BC
+ cmp r0, 0x2
+ bcc _080226C6
+ cmp r0, 0x3
+ bne _080226C6
+ bl sub_802331C
+ ldr r4, _080226B8
+ ldr r1, [r4]
+ strh r0, [r1, 0x12]
+ movs r2, 0x12
+ ldrsh r0, [r1, r2]
+ bl GetFriendArea
+ ldr r1, [r4]
+ strb r0, [r1, 0x10]
+ movs r0, 0x18
+ bl sub_8021D44
+ b _080226C6
+ .align 2, 0
+_080226B8: .4byte gUnknown_203B290
+_080226BC:
+ bl sub_80233A0
+ movs r0, 0x1
+ bl sub_8021D44
+_080226C6:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8022684
+
+ thumb_func_start sub_80226CC
+sub_80226CC:
+ push {lr}
+ sub sp, 0x4
+ mov r0, sp
+ bl sub_80144A4
+ cmp r0, 0
+ bne _080226E4
+ ldr r0, _080226EC
+ ldr r0, [r0]
+ ldr r0, [r0, 0x8]
+ bl sub_8021D44
+_080226E4:
+ add sp, 0x4
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080226EC: .4byte gUnknown_203B290
+ thumb_func_end sub_80226CC
+
+ thumb_func_start sub_80226F0
+sub_80226F0:
+ push {r4,lr}
+ sub sp, 0x4
+ mov r1, sp
+ movs r2, 0
+ movs r0, 0x80
+ strb r0, [r1]
+ strb r0, [r1, 0x1]
+ movs r0, 0x10
+ strb r0, [r1, 0x2]
+ strb r2, [r1, 0x3]
+ bl sub_8099B94
+ lsls r0, 24
+ cmp r0, 0
+ bne _08022782
+ ldr r0, _08022728
+ ldr r0, [r0]
+ movs r1, 0x98
+ lsls r1, 1
+ adds r0, r1
+ ldr r0, [r0]
+ cmp r0, 0x4
+ bhi _0802275C
+ lsls r0, 2
+ ldr r1, _0802272C
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_08022728: .4byte gUnknown_203B290
+_0802272C: .4byte _08022730
+ .align 2, 0
+_08022730:
+ .4byte _0802275C
+ .4byte _08022744
+ .4byte _08022750
+ .4byte _08022744
+ .4byte _08022750
+_08022744:
+ movs r0, 0x5
+ movs r1, 0x2
+ ldr r2, [sp]
+ bl sub_8099AFC
+ b _08022772
+_08022750:
+ movs r0, 0x5
+ movs r1, 0x2
+ ldr r2, [sp]
+ bl sub_8099A5C
+ b _08022772
+_0802275C:
+ ldr r4, _0802278C
+ ldr r0, [r4]
+ ldr r0, [r0, 0x8]
+ bl sub_8021D44
+ ldr r0, [r4]
+ movs r1, 0x98
+ lsls r1, 1
+ adds r0, r1
+ movs r1, 0
+ str r1, [r0]
+_08022772:
+ ldr r0, _0802278C
+ ldr r1, [r0]
+ movs r0, 0x98
+ lsls r0, 1
+ adds r1, r0
+ ldr r0, [r1]
+ adds r0, 0x1
+ str r0, [r1]
+_08022782:
+ add sp, 0x4
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0802278C: .4byte gUnknown_203B290
+ thumb_func_end sub_80226F0
+
+ thumb_func_start sub_8022790
+sub_8022790:
+ push {lr}
+ ldr r0, _080227A8
+ ldr r2, [r0]
+ movs r0, 0x9A
+ lsls r0, 1
+ adds r1, r2, r0
+ ldr r0, [r1]
+ cmp r0, 0
+ beq _080227AC
+ subs r0, 0x1
+ str r0, [r1]
+ b _080227B2
+ .align 2, 0
+_080227A8: .4byte gUnknown_203B290
+_080227AC:
+ ldr r0, [r2, 0x8]
+ bl sub_8021D44
+_080227B2:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8022790
+
+ thumb_func_start sub_80227B8
+sub_80227B8:
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ bl ResetUnusedInputStruct
+ movs r0, 0
+ movs r1, 0x1
+ movs r2, 0x1
+ bl sub_800641C
+ ldr r4, _08022810
+ movs r0, 0xD4
+ lsls r0, 1
+ movs r1, 0x8
+ bl MemoryAlloc
+ str r0, [r4]
+ adds r2, r0, 0
+ adds r2, 0xF4
+ movs r1, 0
+ str r1, [r2]
+ str r5, [r0, 0x48]
+ cmp r5, 0
+ beq _08022820
+ ldr r4, _08022814
+ adds r0, r4, 0
+ adds r1, r5, 0
+ movs r2, 0x7
+ bl sub_808D9AC
+ adds r4, 0x50
+ adds r0, r4, 0
+ adds r1, r5, 0
+ movs r2, 0x6
+ bl sub_808D9AC
+ bl HasGummiItem
+ lsls r0, 24
+ cmp r0, 0
+ beq _08022818
+ movs r0, 0
+ bl sub_8022924
+ b _08022856
+ .align 2, 0
+_08022810: .4byte gUnknown_203B294
+_08022814: .4byte gAvailablePokemonNames
+_08022818:
+ movs r0, 0x11
+ bl sub_8022924
+ b _08022856
+_08022820:
+ ldr r4, _08022848
+ ldr r5, _0802284C
+ adds r0, r4, 0
+ adds r1, r5, 0
+ bl strcpy
+ adds r4, 0x50
+ adds r0, r4, 0
+ adds r1, r5, 0
+ bl strcpy
+ bl GetNumberOfFilledInventorySlots
+ cmp r0, 0
+ bne _08022850
+ movs r0, 0x12
+ bl sub_8022924
+ b _08022856
+ .align 2, 0
+_08022848: .4byte gAvailablePokemonNames
+_0802284C: .4byte gUnknown_80DC5EC
+_08022850:
+ movs r0, 0
+ bl sub_8022924
+_08022856:
+ movs r0, 0x1
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80227B8
+
+ thumb_func_start sub_8022860
+sub_8022860:
+ push {lr}
+ ldr r0, _08022878
+ ldr r0, [r0]
+ ldr r0, [r0]
+ cmp r0, 0x16
+ bhi _080228FE
+ lsls r0, 2
+ ldr r1, _0802287C
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_08022878: .4byte gUnknown_203B294
+_0802287C: .4byte _08022880
+ .align 2, 0
+_08022880:
+ .4byte _080228DC
+ .4byte _080228DC
+ .4byte _080228E2
+ .4byte _080228E8
+ .4byte _080228EE
+ .4byte _080228FE
+ .4byte _080228FE
+ .4byte _080228FE
+ .4byte _080228FE
+ .4byte _080228FE
+ .4byte _080228FE
+ .4byte _080228FE
+ .4byte _080228FE
+ .4byte _080228FE
+ .4byte _080228FE
+ .4byte _080228FE
+ .4byte _080228FE
+ .4byte _080228FE
+ .4byte _080228FE
+ .4byte _080228FE
+ .4byte _080228FE
+ .4byte _080228F4
+ .4byte _080228FA
+_080228DC:
+ bl sub_8022E78
+ b _08022902
+_080228E2:
+ bl sub_8022EF4
+ b _08022902
+_080228E8:
+ bl sub_8023068
+ b _08022902
+_080228EE:
+ bl sub_80230E8
+ b _08022902
+_080228F4:
+ bl sub_8023104
+ b _08022902
+_080228FA:
+ movs r0, 0x3
+ b _08022904
+_080228FE:
+ bl sub_8023120
+_08022902:
+ movs r0, 0
+_08022904:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8022860
+
+ thumb_func_start sub_8022908
+sub_8022908:
+ push {r4,lr}
+ ldr r4, _08022920
+ ldr r0, [r4]
+ cmp r0, 0
+ beq _0802291A
+ bl MemoryFree
+ movs r0, 0
+ str r0, [r4]
+_0802291A:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08022920: .4byte gUnknown_203B294
+ thumb_func_end sub_8022908
+
+ thumb_func_start sub_8022924
+sub_8022924:
+ push {lr}
+ ldr r1, _08022938
+ ldr r1, [r1]
+ str r0, [r1]
+ bl sub_802293C
+ bl sub_8022A10
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08022938: .4byte gUnknown_203B294
+ thumb_func_end sub_8022924
+
+ thumb_func_start sub_802293C
+sub_802293C:
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ ldr r4, _08022964
+ ldr r0, [r4]
+ movs r1, 0xA4
+ lsls r1, 1
+ adds r0, r1
+ bl sub_8006518
+ ldr r1, [r4]
+ ldr r0, [r1]
+ cmp r0, 0x3
+ beq _080229A4
+ cmp r0, 0x3
+ bgt _08022968
+ cmp r0, 0x2
+ beq _08022972
+ b _080229BC
+ .align 2, 0
+_08022964: .4byte gUnknown_203B294
+_08022968:
+ cmp r0, 0x10
+ bgt _080229BC
+ cmp r0, 0xA
+ blt _080229BC
+ b _080229E6
+_08022972:
+ bl sub_8022D2C
+ ldr r2, [r4]
+ movs r0, 0xBC
+ lsls r0, 1
+ adds r2, r0
+ ldr r1, _080229A0
+ ldm r1!, {r3,r5,r6}
+ stm r2!, {r3,r5,r6}
+ ldm r1!, {r3,r5,r7}
+ stm r2!, {r3,r5,r7}
+ ldr r1, [r4]
+ adds r0, r1, r0
+ adds r1, 0xF8
+ bl sub_8012CAC
+ ldr r0, [r4]
+ movs r6, 0xC2
+ lsls r6, 1
+ adds r0, r6
+ movs r1, 0x6
+ strh r1, [r0]
+ b _080229E6
+ .align 2, 0
+_080229A0: .4byte gUnknown_80DC5BC
+_080229A4:
+ movs r7, 0xB0
+ lsls r7, 1
+ adds r1, r7
+ ldr r0, _080229B8
+ ldm r0!, {r2-r4}
+ stm r1!, {r2-r4}
+ ldm r0!, {r5-r7}
+ stm r1!, {r5-r7}
+ b _080229E6
+ .align 2, 0
+_080229B8: .4byte gUnknown_80DC5D4
+_080229BC:
+ ldr r0, _08022A08
+ mov r12, r0
+ movs r1, 0xA4
+ lsls r1, 1
+ mov r8, r1
+ ldr r4, _08022A0C
+ movs r3, 0
+ movs r2, 0x3
+_080229CC:
+ mov r5, r12
+ ldr r1, [r5]
+ adds r1, r3
+ add r1, r8
+ adds r0, r4, 0
+ ldm r0!, {r5-r7}
+ stm r1!, {r5-r7}
+ ldm r0!, {r5-r7}
+ stm r1!, {r5-r7}
+ adds r3, 0x18
+ subs r2, 0x1
+ cmp r2, 0
+ bge _080229CC
+_080229E6:
+ bl ResetUnusedInputStruct
+ ldr r0, _08022A08
+ ldr r0, [r0]
+ movs r6, 0xA4
+ lsls r6, 1
+ adds r0, r6
+ movs r1, 0x1
+ movs r2, 0x1
+ bl sub_800641C
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08022A08: .4byte gUnknown_203B294
+_08022A0C: .4byte gUnknown_80DC5A4
+ thumb_func_end sub_802293C
+
+ thumb_func_start sub_8022A10
+sub_8022A10:
+ push {r4-r7,lr}
+ sub sp, 0x8
+ ldr r1, _08022A2C
+ ldr r0, [r1]
+ ldr r0, [r0]
+ adds r4, r1, 0
+ cmp r0, 0x16
+ bls _08022A22
+ b _08022D1E
+_08022A22:
+ lsls r0, 2
+ ldr r1, _08022A30
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_08022A2C: .4byte gUnknown_203B294
+_08022A30: .4byte _08022A34
+ .align 2, 0
+_08022A34:
+ .4byte _08022A90
+ .4byte _08022AAA
+ .4byte _08022AB2
+ .4byte _08022AE0
+ .4byte _08022B10
+ .4byte _08022B1A
+ .4byte _08022B24
+ .4byte _08022B34
+ .4byte _08022B44
+ .4byte _08022B54
+ .4byte _08022B64
+ .4byte _08022C28
+ .4byte _08022CA0
+ .4byte _08022CA8
+ .4byte _08022CB0
+ .4byte _08022CB8
+ .4byte _08022CC0
+ .4byte _08022CC8
+ .4byte _08022CD8
+ .4byte _08022CE8
+ .4byte _08022CF8
+ .4byte _08022D14
+ .4byte _08022D1E
+_08022A90:
+ ldr r0, [r4]
+ ldr r0, [r0, 0x48]
+ cmp r0, 0
+ beq _08022A9C
+ movs r0, 0x5
+ b _08022A9E
+_08022A9C:
+ movs r0, 0x1
+_08022A9E:
+ movs r1, 0x3
+ movs r2, 0
+ movs r3, 0xA
+ bl sub_801A5D8
+ b _08022D22
+_08022AAA:
+ movs r0, 0x1
+ bl sub_801A8D0
+ b _08022D22
+_08022AB2:
+ bl sub_801A9E0
+ ldr r0, _08022ADC
+ ldr r2, [r0]
+ adds r0, r2, 0
+ adds r0, 0x54
+ adds r1, r2, 0
+ adds r1, 0xF8
+ movs r4, 0x9C
+ lsls r4, 1
+ adds r3, r2, r4
+ adds r2, 0xF4
+ ldr r2, [r2]
+ str r2, [sp]
+ movs r2, 0x2
+ str r2, [sp, 0x4]
+ movs r2, 0
+ bl sub_8012D60
+ b _08022D22
+ .align 2, 0
+_08022ADC: .4byte gUnknown_203B294
+_08022AE0:
+ bl sub_801A9E0
+ ldr r4, _08022B08
+ ldr r0, [r4]
+ adds r0, 0x54
+ movs r1, 0
+ bl sub_8012EA4
+ ldr r0, [r4]
+ adds r0, 0xA4
+ ldr r1, _08022B0C
+ movs r2, 0x3
+ str r2, [sp]
+ movs r2, 0x1
+ str r2, [sp, 0x4]
+ movs r2, 0
+ movs r3, 0
+ bl sub_8012D60
+ b _08022D22
+ .align 2, 0
+_08022B08: .4byte gUnknown_203B294
+_08022B0C: .4byte gUnknown_80DC584
+_08022B10:
+ ldr r0, [r4]
+ adds r0, 0x50
+ bl sub_801B3C0
+ b _08022D22
+_08022B1A:
+ ldr r0, _08022B20
+ b _08022D00
+ .align 2, 0
+_08022B20: .4byte gUnknown_80DC5F4
+_08022B24:
+ ldr r0, _08022B2C
+ ldr r3, _08022B30
+ b _08022D02
+ .align 2, 0
+_08022B2C: .4byte gUnknown_80DC618
+_08022B30: .4byte 0x00000101
+_08022B34:
+ ldr r0, _08022B3C
+ ldr r3, _08022B40
+ b _08022D02
+ .align 2, 0
+_08022B3C: .4byte gUnknown_80DC674
+_08022B40: .4byte 0x00000101
+_08022B44:
+ ldr r0, _08022B4C
+ ldr r3, _08022B50
+ b _08022D02
+ .align 2, 0
+_08022B4C: .4byte gUnknown_80DC6CC
+_08022B50: .4byte 0x00000101
+_08022B54:
+ ldr r0, _08022B5C
+ ldr r3, _08022B60
+ b _08022D02
+ .align 2, 0
+_08022B5C: .4byte gUnknown_80DC728
+_08022B60: .4byte 0x00000101
+_08022B64:
+ ldr r7, _08022B68
+ b _08022B78
+ .align 2, 0
+_08022B68: .4byte gUnknown_203B294
+_08022B6C:
+ ldr r1, [r4]
+ ldr r0, [r1, 0x40]
+ adds r0, 0x1
+ str r0, [r1, 0x40]
+ cmp r0, 0x17
+ bgt _08022C10
+_08022B78:
+ movs r5, 0
+ movs r6, 0
+ movs r3, 0
+ ldr r2, [r4]
+ ldr r0, [r2, 0x38]
+ cmp r5, r0
+ bge _08022BA4
+ ldrb r1, [r2, 0x8]
+ b _08022B9C
+_08022B8A:
+ adds r3, 0x1
+ ldr r2, [r4]
+ ldr r0, [r2, 0x38]
+ cmp r3, r0
+ bge _08022BA4
+ adds r0, r2, 0
+ adds r0, 0x8
+ adds r0, r3
+ ldrb r1, [r0]
+_08022B9C:
+ ldr r0, [r2, 0x40]
+ cmp r1, r0
+ bne _08022B8A
+ movs r5, 0x1
+_08022BA4:
+ movs r3, 0
+ ldr r2, [r4]
+ ldr r0, [r2, 0x3C]
+ cmp r3, r0
+ bge _08022BCE
+ adds r0, r2, 0
+ adds r0, 0x20
+ b _08022BC4
+_08022BB4:
+ adds r3, 0x1
+ ldr r2, [r4]
+ ldr r0, [r2, 0x3C]
+ cmp r3, r0
+ bge _08022BCE
+ adds r0, r2, 0
+ adds r0, 0x20
+ adds r0, r3
+_08022BC4:
+ ldrb r1, [r0]
+ ldr r0, [r2, 0x40]
+ cmp r1, r0
+ bne _08022BB4
+ movs r6, 0x1
+_08022BCE:
+ cmp r5, r6
+ beq _08022B6C
+ ldr r1, [r7]
+ movs r0, 0xA
+ str r0, [r1, 0x4]
+ ldr r0, [r1, 0x40]
+ lsls r0, 24
+ lsrs r0, 24
+ bl GetIQSkillName
+ adds r1, r0, 0
+ ldr r0, _08022C18
+ bl strcpy
+ movs r0, 0xCB
+ bl PlaySound
+ ldr r0, _08022C1C
+ movs r1, 0
+ movs r2, 0
+ ldr r3, _08022C20
+ bl sub_80141B4
+ ldr r1, [r7]
+ ldr r0, [r1, 0x40]
+ adds r0, 0x1
+ str r0, [r1, 0x40]
+ ldr r0, _08022C24
+ ldr r0, [r0]
+ ldr r0, [r0, 0x40]
+ cmp r0, 0x17
+ bgt _08022C10
+ b _08022D22
+_08022C10:
+ movs r0, 0xB
+ bl sub_8022924
+ b _08022D22
+ .align 2, 0
+_08022C18: .4byte gUnknown_202DEA8
+_08022C1C: .4byte gUnknown_80DC788
+_08022C20: .4byte 0x00000101
+_08022C24: .4byte gUnknown_203B294
+_08022C28:
+ ldr r1, [r4]
+ movs r0, 0x16
+ str r0, [r1, 0x4]
+ bl nullsub_104
+ ldr r0, [r4]
+ adds r0, 0x46
+ ldrh r0, [r0]
+ cmp r0, 0x8
+ bhi _08022C98
+ lsls r0, 2
+ ldr r1, _08022C48
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_08022C48: .4byte _08022C4C
+ .align 2, 0
+_08022C4C:
+ .4byte _08022C70
+ .4byte _08022C78
+ .4byte _08022C80
+ .4byte _08022C98
+ .4byte _08022C88
+ .4byte _08022C98
+ .4byte _08022C98
+ .4byte _08022C98
+ .4byte _08022C90
+_08022C70:
+ movs r0, 0x16
+ bl sub_8022924
+ b _08022D22
+_08022C78:
+ movs r0, 0xD
+ bl sub_8022924
+ b _08022D22
+_08022C80:
+ movs r0, 0xE
+ bl sub_8022924
+ b _08022D22
+_08022C88:
+ movs r0, 0xF
+ bl sub_8022924
+ b _08022D22
+_08022C90:
+ movs r0, 0x10
+ bl sub_8022924
+ b _08022D22
+_08022C98:
+ movs r0, 0xC
+ bl sub_8022924
+ b _08022D22
+_08022CA0:
+ ldr r0, _08022CA4
+ b _08022D00
+ .align 2, 0
+_08022CA4: .4byte gUnknown_80DC7B4
+_08022CA8:
+ ldr r0, _08022CAC
+ b _08022D00
+ .align 2, 0
+_08022CAC: .4byte gUnknown_80DC7FC
+_08022CB0:
+ ldr r0, _08022CB4
+ b _08022D00
+ .align 2, 0
+_08022CB4: .4byte gUnknown_80DC81C
+_08022CB8:
+ ldr r0, _08022CBC
+ b _08022D00
+ .align 2, 0
+_08022CBC: .4byte gUnknown_80DC844
+_08022CC0:
+ ldr r0, _08022CC4
+ b _08022D00
+ .align 2, 0
+_08022CC4: .4byte gUnknown_80DC864
+_08022CC8:
+ ldr r1, [r4]
+ movs r0, 0x16
+ str r0, [r1, 0x4]
+ ldr r0, _08022CD4
+ b _08022D00
+ .align 2, 0
+_08022CD4: .4byte gUnknown_80DC88C
+_08022CD8:
+ ldr r1, [r4]
+ movs r0, 0x16
+ str r0, [r1, 0x4]
+ ldr r0, _08022CE4
+ b _08022D00
+ .align 2, 0
+_08022CE4: .4byte gUnknown_80DC8AC
+_08022CE8:
+ ldr r1, [r4]
+ movs r0, 0x16
+ str r0, [r1, 0x4]
+ ldr r0, _08022CF4
+ b _08022D00
+ .align 2, 0
+_08022CF4: .4byte gUnknown_80DC8C8
+_08022CF8:
+ ldr r1, [r4]
+ movs r0, 0x16
+ str r0, [r1, 0x4]
+ ldr r0, _08022D0C
+_08022D00:
+ ldr r3, _08022D10
+_08022D02:
+ movs r1, 0
+ movs r2, 0
+ bl sub_80141B4
+ b _08022D22
+ .align 2, 0
+_08022D0C: .4byte gUnknown_80DC8DC
+_08022D10: .4byte 0x00000301
+_08022D14:
+ ldr r0, [r4]
+ ldr r0, [r0, 0x4C]
+ bl sub_801AFA4
+ b _08022D22
+_08022D1E:
+ bl sub_801A928
+_08022D22:
+ add sp, 0x8
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8022A10
+
+ thumb_func_start sub_8022D2C
+sub_8022D2C:
+ push {r4-r7,lr}
+ movs r6, 0
+ ldr r4, _08022D78
+ ldr r0, [r4]
+ movs r1, 0x9C
+ lsls r1, 1
+ adds r0, r1
+ movs r1, 0
+ movs r2, 0x10
+ bl MemoryFill16
+ ldr r2, [r4]
+ ldr r0, [r2, 0x48]
+ cmp r0, 0
+ beq _08022D80
+ adds r1, r2, 0
+ adds r1, 0xF8
+ ldr r0, _08022D7C
+ str r0, [r1]
+ adds r1, 0x4
+ movs r0, 0x5
+ str r0, [r1]
+ adds r0, r2, 0
+ adds r0, 0x52
+ ldrb r0, [r0]
+ bl IsGummiItem
+ lsls r0, 24
+ cmp r0, 0
+ bne _08022D74
+ ldr r0, [r4]
+ movs r2, 0x9C
+ lsls r2, 1
+ adds r0, r2
+ movs r1, 0x1
+ strh r1, [r0]
+_08022D74:
+ movs r6, 0x1
+ b _08022DBE
+ .align 2, 0
+_08022D78: .4byte gUnknown_203B294
+_08022D7C: .4byte gUnknown_80DC8F0
+_08022D80:
+ adds r0, r2, 0
+ adds r0, 0x52
+ ldrb r0, [r0]
+ bl GetItemType
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x5
+ bne _08022DA4
+ ldr r1, [r4]
+ adds r2, r1, 0
+ adds r2, 0xF8
+ ldr r0, _08022E38
+ str r0, [r2]
+ adds r1, 0xFC
+ movs r0, 0x6
+ str r0, [r1]
+ movs r6, 0x1
+_08022DA4:
+ ldr r2, [r4]
+ lsls r3, r6, 3
+ adds r0, r2, 0
+ adds r0, 0xF8
+ adds r0, r3
+ ldr r1, _08022E3C
+ ldr r1, [r1]
+ str r1, [r0]
+ adds r2, 0xFC
+ adds r2, r3
+ movs r0, 0x4
+ str r0, [r2]
+ adds r6, 0x1
+_08022DBE:
+ ldr r4, _08022E40
+ ldr r0, [r4]
+ mov r12, r0
+ lsls r1, r6, 3
+ mov r2, r12
+ adds r2, 0xF8
+ adds r3, r2, r1
+ ldr r0, _08022E44
+ ldr r0, [r0]
+ str r0, [r3]
+ mov r3, r12
+ adds r3, 0xFC
+ adds r1, r3, r1
+ movs r0, 0x7
+ str r0, [r1]
+ adds r6, 0x1
+ lsls r1, r6, 3
+ adds r2, r1
+ movs r0, 0
+ str r0, [r2]
+ adds r1, r3, r1
+ movs r0, 0x1
+ str r0, [r1]
+ movs r5, 0
+ adds r7, r4, 0
+ cmp r5, r6
+ bge _08022E16
+ mov r4, r12
+ adds r4, 0xF4
+ movs r2, 0x9C
+ lsls r2, 1
+ add r2, r12
+_08022DFE:
+ ldrh r0, [r2]
+ cmp r0, 0
+ bne _08022E0C
+ ldr r1, [r3]
+ ldr r0, [r4]
+ cmp r1, r0
+ beq _08022E70
+_08022E0C:
+ adds r2, 0x2
+ adds r3, 0x8
+ adds r5, 0x1
+ cmp r5, r6
+ blt _08022DFE
+_08022E16:
+ movs r5, 0
+ cmp r5, r6
+ bge _08022E70
+ ldr r1, [r7]
+ movs r2, 0x9C
+ lsls r2, 1
+ adds r0, r1, r2
+ ldrh r0, [r0]
+ cmp r0, 0
+ bne _08022E48
+ adds r0, r1, 0
+ adds r0, 0xF4
+ adds r1, 0xFC
+ ldr r1, [r1]
+ str r1, [r0]
+ b _08022E70
+ .align 2, 0
+_08022E38: .4byte gUnknown_80DC8F8
+_08022E3C: .4byte gUnknown_80D4940
+_08022E40: .4byte gUnknown_203B294
+_08022E44: .4byte gUnknown_80D4970
+_08022E48:
+ adds r5, 0x1
+ cmp r5, r6
+ bge _08022E70
+ ldr r3, [r7]
+ lsls r0, r5, 1
+ movs r2, 0x9C
+ lsls r2, 1
+ adds r1, r3, r2
+ adds r1, r0
+ ldrh r0, [r1]
+ cmp r0, 0
+ bne _08022E48
+ adds r2, r3, 0
+ adds r2, 0xF4
+ lsls r1, r5, 3
+ adds r0, r3, 0
+ adds r0, 0xFC
+ adds r0, r1
+ ldr r0, [r0]
+ str r0, [r2]
+_08022E70:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8022D2C
+
+ thumb_func_start sub_8022E78
+sub_8022E78:
+ push {lr}
+ movs r0, 0x1
+ bl sub_801A6E8
+ cmp r0, 0x3
+ beq _08022E94
+ cmp r0, 0x3
+ bhi _08022E8E
+ cmp r0, 0x2
+ beq _08022EE8
+ b _08022EEE
+_08022E8E:
+ cmp r0, 0x4
+ beq _08022EBC
+ b _08022EEE
+_08022E94:
+ bl sub_801A8AC
+ ldr r1, _08022EB4
+ ldr r2, [r1]
+ str r0, [r2, 0x4C]
+ ldr r1, _08022EB8
+ ldr r1, [r1]
+ lsls r0, 2
+ adds r1, r0
+ ldr r0, [r1]
+ str r0, [r2, 0x50]
+ movs r0, 0x2
+ bl sub_8022924
+ b _08022EEE
+ .align 2, 0
+_08022EB4: .4byte gUnknown_203B294
+_08022EB8: .4byte gTeamInventory_203B460
+_08022EBC:
+ bl sub_801A8AC
+ ldr r1, _08022EE0
+ ldr r2, [r1]
+ str r0, [r2, 0x4C]
+ ldr r1, _08022EE4
+ ldr r1, [r1]
+ lsls r0, 2
+ adds r1, r0
+ ldr r0, [r1]
+ str r0, [r2, 0x50]
+ movs r0, 0
+ bl sub_8099690
+ movs r0, 0x4
+ bl sub_8022924
+ b _08022EEE
+ .align 2, 0
+_08022EE0: .4byte gUnknown_203B294
+_08022EE4: .4byte gTeamInventory_203B460
+_08022EE8:
+ movs r0, 0x16
+ bl sub_8022924
+_08022EEE:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8022E78
+
+ thumb_func_start sub_8022EF4
+sub_8022EF4:
+ push {r4,r5,lr}
+ sub sp, 0x4
+ movs r0, 0
+ str r0, [sp]
+ bl sub_801A6E8
+ ldr r4, _08022F3C
+ ldr r0, [r4]
+ adds r0, 0x54
+ bl sub_8012FD8
+ lsls r0, 24
+ cmp r0, 0
+ bne _08022F26
+ ldr r0, [r4]
+ adds r0, 0x54
+ mov r1, sp
+ bl sub_8013114
+ ldr r1, [sp]
+ cmp r1, 0x1
+ beq _08022F26
+ ldr r0, [r4]
+ adds r0, 0xF4
+ str r1, [r0]
+_08022F26:
+ ldr r0, [sp]
+ subs r0, 0x1
+ cmp r0, 0x6
+ bls _08022F30
+ b _08023060
+_08022F30:
+ lsls r0, 2
+ ldr r1, _08022F40
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_08022F3C: .4byte gUnknown_203B294
+_08022F40: .4byte _08022F44
+ .align 2, 0
+_08022F44:
+ .4byte _08022F60
+ .4byte _08023060
+ .4byte _08023060
+ .4byte _0802304C
+ .4byte _08022F68
+ .4byte _08023044
+ .4byte _08023054
+_08022F60:
+ movs r0, 0x1
+ bl sub_8022924
+ b _08023060
+_08022F68:
+ ldr r4, _08022FEC
+ ldr r1, [r4]
+ adds r0, r1, 0
+ adds r0, 0x8
+ ldr r1, [r1, 0x48]
+ movs r2, 0x14
+ ldrsh r1, [r1, r2]
+ bl sub_808EBA8
+ ldr r3, [r4]
+ str r0, [r3, 0x38]
+ ldr r0, [r3, 0x48]
+ adds r1, r3, 0
+ adds r1, 0x52
+ ldrb r1, [r1]
+ adds r3, 0x44
+ movs r2, 0
+ bl GetGummiItemStatBoost
+ ldr r1, [r4]
+ adds r0, r1, 0
+ adds r0, 0x20
+ ldr r1, [r1, 0x48]
+ movs r2, 0x14
+ ldrsh r1, [r1, r2]
+ bl sub_808EBA8
+ ldr r1, [r4]
+ str r0, [r1, 0x3C]
+ movs r0, 0x1
+ str r0, [r1, 0x40]
+ adds r0, r1, 0
+ adds r0, 0x44
+ movs r2, 0
+ ldrsh r5, [r0, r2]
+ ldr r0, _08022FF0
+ ldr r3, _08022FF4
+ ldr r2, [r1, 0x4C]
+ lsls r2, 2
+ ldr r1, [r3]
+ adds r1, r2
+ movs r2, 0
+ bl sub_8090E14
+ movs r0, 0x1
+ negs r0, r0
+ cmp r5, r0
+ beq _08022FD0
+ ldr r0, [r4]
+ ldr r0, [r0, 0x4C]
+ bl ShiftItemsDownFrom
+_08022FD0:
+ movs r0, 0
+ bl sub_8099690
+ ldr r1, [r4]
+ movs r0, 0xA
+ str r0, [r1, 0x4]
+ adds r0, r5, 0x1
+ cmp r0, 0x4
+ bhi _08023030
+ lsls r0, 2
+ ldr r1, _08022FF8
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_08022FEC: .4byte gUnknown_203B294
+_08022FF0: .4byte gUnknown_202DE58
+_08022FF4: .4byte gTeamInventory_203B460
+_08022FF8: .4byte _08022FFC
+ .align 2, 0
+_08022FFC:
+ .4byte _08023030
+ .4byte _08023010
+ .4byte _08023018
+ .4byte _08023020
+ .4byte _08023028
+_08023010:
+ movs r0, 0x6
+ bl sub_8022924
+ b _08023060
+_08023018:
+ movs r0, 0x7
+ bl sub_8022924
+ b _08023060
+_08023020:
+ movs r0, 0x8
+ bl sub_8022924
+ b _08023060
+_08023028:
+ movs r0, 0x9
+ bl sub_8022924
+ b _08023060
+_08023030:
+ ldr r0, _08023040
+ ldr r1, [r0]
+ movs r0, 0x16
+ str r0, [r1, 0x4]
+ movs r0, 0x5
+ bl sub_8022924
+ b _08023060
+ .align 2, 0
+_08023040: .4byte gUnknown_203B294
+_08023044:
+ movs r0, 0x15
+ bl sub_8022924
+ b _08023060
+_0802304C:
+ movs r0, 0x3
+ bl sub_8022924
+ b _08023060
+_08023054:
+ movs r0, 0
+ bl sub_8099690
+ movs r0, 0x4
+ bl sub_8022924
+_08023060:
+ add sp, 0x4
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8022EF4
+
+ thumb_func_start sub_8023068
+sub_8023068:
+ push {r4,lr}
+ sub sp, 0x4
+ movs r0, 0
+ str r0, [sp]
+ bl sub_801A6E8
+ ldr r4, _080230A8
+ ldr r0, [r4]
+ adds r0, 0x54
+ bl sub_8012FD8
+ ldr r0, [r4]
+ adds r0, 0xA4
+ bl sub_8012FD8
+ lsls r0, 24
+ cmp r0, 0
+ bne _08023096
+ ldr r0, [r4]
+ adds r0, 0xA4
+ mov r1, sp
+ bl sub_8013114
+_08023096:
+ ldr r0, [sp]
+ cmp r0, 0x2
+ beq _080230B8
+ cmp r0, 0x2
+ bgt _080230AC
+ cmp r0, 0x1
+ beq _080230B0
+ b _080230E0
+ .align 2, 0
+_080230A8: .4byte gUnknown_203B294
+_080230AC:
+ cmp r0, 0x3
+ bne _080230E0
+_080230B0:
+ movs r0, 0x1
+ bl sub_8022924
+ b _080230E0
+_080230B8:
+ ldr r0, [r4]
+ ldr r0, [r0, 0x4C]
+ bl ShiftItemsDownFrom
+ bl GetNumberOfFilledInventorySlots
+ cmp r0, 0
+ bne _080230DA
+ movs r0, 0
+ bl sub_8099690
+ bl sub_801A928
+ movs r0, 0x14
+ bl sub_8022924
+ b _080230E0
+_080230DA:
+ movs r0, 0x1
+ bl sub_8022924
+_080230E0:
+ add sp, 0x4
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8023068
+
+ thumb_func_start sub_80230E8
+sub_80230E8:
+ push {lr}
+ bl sub_801B410
+ cmp r0, 0x1
+ bls _08023100
+ cmp r0, 0x3
+ bhi _08023100
+ bl sub_801B450
+ movs r0, 0x1
+ bl sub_8022924
+_08023100:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80230E8
+
+ thumb_func_start sub_8023104
+sub_8023104:
+ push {lr}
+ bl sub_801B00C
+ cmp r0, 0x1
+ bls _0802311C
+ cmp r0, 0x3
+ bhi _0802311C
+ bl sub_801B048
+ movs r0, 0x1
+ bl sub_8022924
+_0802311C:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8023104
+
+ thumb_func_start sub_8023120
+sub_8023120:
+ push {lr}
+ sub sp, 0x4
+ mov r0, sp
+ bl sub_80144A4
+ cmp r0, 0
+ bne _08023138
+ ldr r0, _08023140
+ ldr r0, [r0]
+ ldr r0, [r0, 0x4]
+ bl sub_8022924
+_08023138:
+ add sp, 0x4
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08023140: .4byte gUnknown_203B294
+ thumb_func_end sub_8023120
+
+ thumb_func_start sub_8023144
+sub_8023144:
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ adds r7, r1, 0
+ mov r9, r2
+ mov r10, r3
+ lsls r0, 24
+ lsrs r0, 24
+ adds r4, r0, 0
+ bl sub_8023704
+ lsls r0, 24
+ cmp r0, 0
+ beq _08023168
+ movs r0, 0
+ b _08023252
+_08023168:
+ ldr r6, _08023260
+ ldr r0, [r6]
+ cmp r0, 0
+ bne _0802317C
+ movs r0, 0xFF
+ lsls r0, 2
+ movs r1, 0x8
+ bl MemoryAlloc
+ str r0, [r6]
+_0802317C:
+ ldr r0, [r6]
+ strb r4, [r0]
+ ldr r0, [r6]
+ ldr r1, _08023264
+ ldr r1, [r1]
+ str r1, [r0, 0x4]
+ movs r4, 0xE4
+ lsls r4, 2
+ adds r1, r0, r4
+ str r7, [r1]
+ movs r1, 0xE5
+ lsls r1, 2
+ mov r8, r1
+ adds r2, r0, r1
+ lsls r1, r7, 1
+ adds r1, r7
+ lsls r1, 3
+ movs r5, 0xE6
+ lsls r5, 2
+ adds r1, r5
+ adds r1, r0, r1
+ str r1, [r2]
+ adds r0, r5
+ bl sub_8006518
+ ldr r1, [r6]
+ adds r4, r1, r4
+ ldr r2, [r4]
+ lsls r0, r2, 1
+ adds r0, r2
+ lsls r0, 3
+ adds r1, r0
+ adds r1, r5
+ ldr r0, _08023268
+ ldm r0!, {r2-r4}
+ stm r1!, {r2-r4}
+ ldm r0!, {r2-r4}
+ stm r1!, {r2-r4}
+ ldr r2, [r6]
+ mov r1, r8
+ adds r0, r2, r1
+ ldr r1, [r0]
+ movs r3, 0xFE
+ lsls r3, 2
+ adds r0, r2, r3
+ str r0, [r1, 0x14]
+ mov r4, r9
+ cmp r4, 0
+ beq _080231F6
+ movs r1, 0xE4
+ lsls r1, 2
+ adds r0, r2, r1
+ ldr r1, [r0]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 3
+ subs r3, 0x58
+ adds r1, r2, r3
+ adds r1, r0
+ ldr r0, [r4]
+ str r0, [r1]
+_080231F6:
+ ldr r0, [r6]
+ add r0, r8
+ ldr r0, [r0]
+ mov r1, r10
+ bl sub_8012D08
+ bl ResetUnusedInputStruct
+ ldr r0, [r6]
+ adds r0, r5
+ movs r1, 0x1
+ movs r2, 0x1
+ bl sub_800641C
+ ldr r4, [r6]
+ movs r5, 0xD7
+ lsls r5, 2
+ adds r4, r5
+ bl sub_80236A4
+ adds r1, r0, 0
+ adds r0, r4, 0
+ mov r2, r10
+ adds r3, r7, 0
+ bl sub_8013818
+ ldr r0, [r6]
+ ldr r1, _0802326C
+ ldrh r2, [r1]
+ movs r4, 0xDD
+ lsls r4, 2
+ adds r1, r0, r4
+ strh r2, [r1]
+ ldr r1, _08023270
+ ldrh r2, [r1]
+ ldr r3, _08023274
+ adds r1, r0, r3
+ strh r2, [r1]
+ adds r0, r5
+ bl sub_8013984
+ bl sub_8023420
+ bl sub_80234BC
+ movs r0, 0x1
+_08023252:
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08023260: .4byte gUnknown_3001B5C
+_08023264: .4byte gUnknown_203B298
+_08023268: .4byte gUnknown_80DC91C
+_0802326C: .4byte gUnknown_203B29C
+_08023270: .4byte gUnknown_203B29E
+_08023274: .4byte 0x0000037a
+ thumb_func_end sub_8023144
+
+ thumb_func_start sub_8023278
+sub_8023278:
+ push {r4,lr}
+ lsls r0, 24
+ cmp r0, 0
+ bne _08023298
+ ldr r0, _08023294
+ ldr r0, [r0]
+ movs r1, 0xD7
+ lsls r1, 2
+ adds r0, r1
+ bl sub_8013660
+ movs r0, 0
+ b _08023316
+ .align 2, 0
+_08023294: .4byte gUnknown_3001B5C
+_08023298:
+ ldr r4, _080232B4
+ ldr r0, [r4]
+ movs r1, 0xD7
+ lsls r1, 2
+ adds r0, r1
+ bl GetKeyPress
+ cmp r0, 0x2
+ beq _080232BE
+ cmp r0, 0x2
+ bgt _080232B8
+ cmp r0, 0x1
+ beq _080232C8
+ b _080232EC
+ .align 2, 0
+_080232B4: .4byte gUnknown_3001B5C
+_080232B8:
+ cmp r0, 0x3
+ beq _080232D2
+ b _080232EC
+_080232BE:
+ movs r0, 0x1
+ bl PlayMenuSoundEffect
+ movs r0, 0x2
+ b _08023316
+_080232C8:
+ movs r0, 0
+ bl PlayMenuSoundEffect
+ movs r0, 0x3
+ b _08023316
+_080232D2:
+ movs r0, 0x5
+ bl PlayMenuSoundEffect
+ ldr r0, [r4]
+ ldr r1, [r0, 0x4]
+ movs r2, 0x1
+ cmp r1, 0x1
+ bhi _080232E4
+ adds r2, r1, 0x1
+_080232E4:
+ str r2, [r0, 0x4]
+ bl sub_80236A4
+ b _0802330C
+_080232EC:
+ ldr r0, _08023308
+ ldr r0, [r0]
+ movs r1, 0xD7
+ lsls r1, 2
+ adds r0, r1
+ movs r1, 0x1
+ bl sub_80138B8
+ lsls r0, 24
+ cmp r0, 0
+ bne _0802330C
+ movs r0, 0
+ b _08023316
+ .align 2, 0
+_08023308: .4byte gUnknown_3001B5C
+_0802330C:
+ bl sub_8023420
+ bl sub_80234BC
+ movs r0, 0x1
+_08023316:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8023278
+
+ thumb_func_start sub_802331C
+sub_802331C:
+ ldr r0, _0802334C
+ ldr r0, [r0]
+ ldr r2, _08023350
+ adds r1, r0, r2
+ movs r3, 0
+ ldrsh r2, [r1, r3]
+ movs r3, 0xDE
+ lsls r3, 2
+ adds r1, r0, r3
+ movs r3, 0
+ ldrsh r1, [r1, r3]
+ muls r1, r2
+ movs r3, 0xDD
+ lsls r3, 2
+ adds r2, r0, r3
+ movs r3, 0
+ ldrsh r2, [r2, r3]
+ adds r1, r2
+ lsls r1, 1
+ adds r0, 0xC
+ adds r0, r1
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ bx lr
+ .align 2, 0
+_0802334C: .4byte gUnknown_3001B5C
+_08023350: .4byte 0x0000037a
+ thumb_func_end sub_802331C
+
+ thumb_func_start sub_8023354
+sub_8023354:
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ bl ResetUnusedInputStruct
+ ldr r5, _0802339C
+ ldr r0, [r5]
+ movs r1, 0xE6
+ lsls r1, 2
+ adds r0, r1
+ movs r1, 0
+ movs r2, 0
+ bl sub_800641C
+ ldr r0, [r5]
+ movs r1, 0xD7
+ lsls r1, 2
+ adds r0, r1
+ bl sub_8013984
+ bl sub_8023420
+ bl sub_80234BC
+ cmp r4, 0
+ beq _08023396
+ ldr r0, [r5]
+ movs r1, 0xD7
+ lsls r1, 2
+ adds r0, r1
+ bl AddMenuCursorSprite
+_08023396:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0802339C: .4byte gUnknown_3001B5C
+ thumb_func_end sub_8023354
+
+ thumb_func_start sub_80233A0
+sub_80233A0:
+ push {r4-r6,lr}
+ ldr r5, _08023408
+ ldr r2, [r5]
+ cmp r2, 0
+ beq _08023400
+ ldr r1, _0802340C
+ ldr r0, [r2, 0x4]
+ str r0, [r1]
+ ldr r1, _08023410
+ movs r3, 0xDD
+ lsls r3, 2
+ adds r0, r2, r3
+ ldrh r0, [r0]
+ strh r0, [r1]
+ ldr r1, _08023414
+ ldr r6, _08023418
+ adds r0, r2, r6
+ ldrh r0, [r0]
+ strh r0, [r1]
+ movs r1, 0xE4
+ lsls r1, 2
+ adds r0, r2, r1
+ ldr r0, [r0]
+ lsls r1, r0, 1
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r2, r1
+ movs r4, 0xE6
+ lsls r4, 2
+ adds r1, r4
+ ldr r0, _0802341C
+ ldm r0!, {r2,r3,r6}
+ stm r1!, {r2,r3,r6}
+ ldm r0!, {r2,r3,r6}
+ stm r1!, {r2,r3,r6}
+ bl ResetUnusedInputStruct
+ ldr r0, [r5]
+ adds r0, r4
+ movs r1, 0x1
+ movs r2, 0x1
+ bl sub_800641C
+ ldr r0, [r5]
+ bl MemoryFree
+ movs r0, 0
+ str r0, [r5]
+_08023400:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08023408: .4byte gUnknown_3001B5C
+_0802340C: .4byte gUnknown_203B298
+_08023410: .4byte gUnknown_203B29C
+_08023414: .4byte gUnknown_203B29E
+_08023418: .4byte 0x0000037a
+_0802341C: .4byte gUnknown_80DC904
+ thumb_func_end sub_80233A0
+
+ thumb_func_start sub_8023420
+sub_8023420:
+ push {r4,r5,lr}
+ ldr r4, _080234A8
+ ldr r0, [r4]
+ movs r1, 0xFE
+ lsls r1, 2
+ adds r0, r1
+ movs r2, 0
+ movs r1, 0x1
+ strb r1, [r0]
+ ldr r0, [r4]
+ ldr r1, _080234AC
+ adds r0, r1
+ strb r2, [r0]
+ ldr r0, [r4]
+ adds r1, 0x1
+ adds r0, r1
+ movs r1, 0xC
+ strb r1, [r0]
+ ldr r0, [r4]
+ ldr r1, _080234B0
+ adds r0, r1
+ strb r2, [r0]
+ ldr r0, [r4]
+ ldr r2, _080234B4
+ adds r0, r2
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ movs r1, 0xC
+ bl sub_80095E4
+ adds r0, 0x2
+ ldr r3, [r4]
+ movs r2, 0xE4
+ lsls r2, 2
+ adds r5, r3, r2
+ ldr r2, [r5]
+ lsls r1, r2, 1
+ adds r1, r2
+ lsls r1, 3
+ adds r1, r3, r1
+ ldr r2, _080234B8
+ adds r1, r2
+ lsls r0, 16
+ lsrs r0, 16
+ strh r0, [r1]
+ ldr r2, [r5]
+ lsls r1, r2, 1
+ adds r1, r2
+ lsls r1, 3
+ adds r3, r1
+ movs r1, 0xEA
+ lsls r1, 2
+ adds r3, r1
+ strh r0, [r3]
+ bl ResetUnusedInputStruct
+ ldr r0, [r4]
+ movs r2, 0xE6
+ lsls r2, 2
+ adds r0, r2
+ movs r1, 0x1
+ movs r2, 0x1
+ bl sub_800641C
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080234A8: .4byte gUnknown_3001B5C
+_080234AC: .4byte 0x000003f9
+_080234B0: .4byte 0x000003fb
+_080234B4: .4byte 0x00000376
+_080234B8: .4byte 0x000003a6
+ thumb_func_end sub_8023420
+
+ thumb_func_start sub_80234BC
+sub_80234BC:
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x178
+ ldr r5, _0802368C
+ ldr r0, [r5]
+ movs r4, 0xE4
+ lsls r4, 2
+ adds r0, r4
+ ldr r0, [r0]
+ bl sub_8008C54
+ ldr r0, [r5]
+ adds r0, r4
+ ldr r0, [r0]
+ bl sub_80073B8
+ ldr r2, _08023690
+ ldr r0, [r5]
+ adds r0, r4
+ ldr r3, [r0]
+ movs r0, 0
+ str r0, [sp]
+ movs r0, 0xA
+ movs r1, 0
+ bl xxx_call_draw_string
+ ldr r3, [r5]
+ ldr r1, _08023694
+ adds r0, r3, r1
+ ldrb r0, [r0]
+ lsls r0, 3
+ adds r0, 0x4
+ ldr r2, _08023698
+ adds r1, r3, r2
+ movs r6, 0
+ ldrsh r2, [r1, r6]
+ adds r2, 0x1
+ movs r1, 0x7
+ str r1, [sp]
+ adds r3, r4
+ ldr r1, [r3]
+ str r1, [sp, 0x4]
+ movs r1, 0
+ movs r3, 0x2
+ bl sub_8012BC4
+ movs r0, 0
+ mov r10, r0
+ ldr r0, [r5]
+ ldr r1, _0802369C
+ adds r0, r1
+ movs r2, 0
+ ldrsh r0, [r0, r2]
+ cmp r10, r0
+ blt _08023532
+ b _0802366C
+_08023532:
+ ldr r3, _0802368C
+ ldr r0, [r3]
+ movs r6, 0xD7
+ lsls r6, 2
+ adds r0, r6
+ mov r1, r10
+ bl sub_8013800
+ mov r8, r0
+ ldr r0, _0802368C
+ ldr r1, [r0]
+ ldr r2, _08023698
+ adds r0, r1, r2
+ movs r3, 0
+ ldrsh r2, [r0, r3]
+ adds r6, 0x1C
+ adds r0, r1, r6
+ movs r3, 0
+ ldrsh r0, [r0, r3]
+ muls r0, r2
+ add r0, r10
+ lsls r0, 1
+ adds r1, 0xC
+ adds r1, r0
+ movs r6, 0
+ ldrsh r5, [r1, r6]
+ adds r0, r5, 0
+ bl GetFriendArea
+ lsls r0, 24
+ lsrs r0, 24
+ add r4, sp, 0x16C
+ adds r1, r4, 0
+ movs r2, 0
+ movs r3, 0
+ bl sub_8092638
+ movs r7, 0x7
+ ldrb r0, [r4, 0x4]
+ cmp r0, 0
+ beq _08023594
+ adds r0, r5, 0
+ bl HasRecruitedMon
+ lsls r0, 24
+ movs r7, 0x4
+ cmp r0, 0
+ beq _08023594
+ movs r7, 0x5
+_08023594:
+ adds r0, r5, 0
+ movs r1, 0
+ bl GetDexInternalNo
+ lsls r0, 16
+ asrs r4, r0, 16
+ adds r0, r4, 0
+ movs r1, 0xA
+ bl __modsi3
+ adds r2, r0, 0
+ adds r2, 0x30
+ lsls r2, 24
+ lsrs r2, 24
+ ldr r6, _0802368C
+ ldr r0, [r6]
+ movs r1, 0xE4
+ lsls r1, 2
+ mov r9, r1
+ add r0, r9
+ ldr r0, [r0]
+ str r0, [sp]
+ movs r0, 0x14
+ mov r1, r8
+ adds r3, r7, 0
+ bl sub_8012C60
+ cmp r4, 0x9
+ ble _08023628
+ adds r0, r4, 0
+ movs r1, 0xA
+ bl __divsi3
+ adds r4, r0, 0
+ movs r1, 0xA
+ bl __modsi3
+ adds r2, r0, 0
+ adds r2, 0x30
+ lsls r2, 24
+ lsrs r2, 24
+ ldr r0, [r6]
+ movs r3, 0xE4
+ lsls r3, 2
+ adds r0, r3
+ ldr r0, [r0]
+ str r0, [sp]
+ movs r0, 0xD
+ mov r1, r8
+ adds r3, r7, 0
+ bl sub_8012C60
+ cmp r4, 0x9
+ ble _08023628
+ adds r0, r4, 0
+ movs r1, 0xA
+ bl __divsi3
+ movs r1, 0xA
+ bl __modsi3
+ adds r2, r0, 0
+ adds r2, 0x30
+ lsls r2, 24
+ lsrs r2, 24
+ ldr r0, [r6]
+ add r0, r9
+ ldr r0, [r0]
+ str r0, [sp]
+ movs r0, 0x6
+ mov r1, r8
+ adds r3, r7, 0
+ bl sub_8012C60
+_08023628:
+ add r4, sp, 0x108
+ adds r0, r4, 0
+ adds r1, r5, 0
+ bl sub_808D930
+ add r0, sp, 0x8
+ ldr r1, _080236A0
+ adds r2, r7, 0
+ adds r3, r4, 0
+ bl ExpandPlaceholdersBuffer
+ ldr r6, _0802368C
+ ldr r0, [r6]
+ movs r1, 0xE4
+ lsls r1, 2
+ adds r0, r1
+ ldr r3, [r0]
+ movs r0, 0
+ str r0, [sp]
+ movs r0, 0x24
+ mov r1, r8
+ add r2, sp, 0x8
+ bl xxx_call_draw_string
+ movs r2, 0x1
+ add r10, r2
+ ldr r0, [r6]
+ ldr r3, _0802369C
+ adds r0, r3
+ movs r6, 0
+ ldrsh r0, [r0, r6]
+ cmp r10, r0
+ bge _0802366C
+ b _08023532
+_0802366C:
+ ldr r0, _0802368C
+ ldr r0, [r0]
+ movs r1, 0xE4
+ lsls r1, 2
+ adds r0, r1
+ ldr r0, [r0]
+ bl sub_80073E0
+ add sp, 0x178
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0802368C: .4byte gUnknown_3001B5C
+_08023690: .4byte gUnknown_80DC934
+_08023694: .4byte 0x000003fa
+_08023698: .4byte 0x0000037a
+_0802369C: .4byte 0x00000376
+_080236A0: .4byte gUnknown_80DC93C
+ thumb_func_end sub_80234BC
+
+ thumb_func_start sub_80236A4
+sub_80236A4:
+ push {r4,r5,lr}
+ ldr r0, _080236FC
+ ldr r1, [r0]
+ movs r0, 0
+ str r0, [r1, 0x8]
+ movs r5, 0
+_080236B0:
+ lsls r0, r5, 16
+ asrs r4, r0, 16
+ adds r0, r4, 0
+ bl sub_8098134
+ lsls r0, 24
+ cmp r0, 0
+ beq _080236E2
+ adds r0, r4, 0
+ bl GetBaseSpeciesNoUnown
+ lsls r0, 16
+ asrs r0, 16
+ cmp r4, r0
+ bne _080236E2
+ ldr r0, _080236FC
+ ldr r3, [r0]
+ ldr r1, [r3, 0x8]
+ lsls r2, r1, 1
+ adds r0, r3, 0
+ adds r0, 0xC
+ adds r0, r2
+ strh r5, [r0]
+ adds r1, 0x1
+ str r1, [r3, 0x8]
+_080236E2:
+ adds r5, 0x1
+ ldr r0, _08023700
+ cmp r5, r0
+ ble _080236B0
+ bl sub_8023730
+ ldr r0, _080236FC
+ ldr r0, [r0]
+ ldr r0, [r0, 0x8]
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080236FC: .4byte gUnknown_3001B5C
+_08023700: .4byte 0x000001a7
+ thumb_func_end sub_80236A4
+
+ thumb_func_start sub_8023704
+sub_8023704:
+ push {r4,lr}
+ movs r4, 0
+_08023708:
+ lsls r0, r4, 16
+ asrs r0, 16
+ bl sub_8098134
+ lsls r0, 24
+ cmp r0, 0
+ beq _0802371A
+ movs r0, 0
+ b _08023724
+_0802371A:
+ adds r4, 0x1
+ ldr r0, _0802372C
+ cmp r4, r0
+ ble _08023708
+ movs r0, 0x1
+_08023724:
+ pop {r4}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0802372C: .4byte 0x000001a7
+ thumb_func_end sub_8023704
+
+ thumb_func_start sub_8023730
+sub_8023730:
+ push {lr}
+ ldr r0, _08023744
+ ldr r0, [r0]
+ ldr r0, [r0, 0x4]
+ cmp r0, 0x1
+ beq _08023748
+ cmp r0, 0x2
+ beq _0802374E
+ b _08023752
+ .align 2, 0
+_08023744: .4byte gUnknown_3001B5C
+_08023748:
+ bl sub_8023758
+ b _08023752
+_0802374E:
+ bl sub_80237E0
+_08023752:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8023730
+
+ thumb_func_start sub_8023758
+sub_8023758:
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ sub sp, 0x4
+ ldr r3, _080237DC
+ ldr r2, [r3]
+ ldr r1, [r2, 0x8]
+ lsls r0, r1, 1
+ adds r0, 0xA
+ adds r2, r0
+ mov r9, r2
+ movs r2, 0
+ subs r1, 0x1
+ cmp r2, r1
+ bge _080237CC
+_08023778:
+ mov r5, r9
+ ldr r0, [r3]
+ ldr r0, [r0, 0x8]
+ subs r7, r0, 0x1
+ adds r0, r2, 0x1
+ mov r8, r0
+ cmp r7, r2
+ ble _080237BE
+_08023788:
+ subs r6, r5, 0x2
+ movs r1, 0
+ ldrsh r0, [r6, r1]
+ movs r1, 0x1
+ str r2, [sp]
+ bl GetAlphabetParentNo
+ adds r4, r0, 0
+ movs r1, 0
+ ldrsh r0, [r5, r1]
+ movs r1, 0x1
+ bl GetAlphabetParentNo
+ lsls r4, 16
+ lsls r0, 16
+ ldr r2, [sp]
+ cmp r4, r0
+ ble _080237B6
+ movs r0, 0
+ ldrsh r1, [r5, r0]
+ ldrh r0, [r6]
+ strh r0, [r5]
+ strh r1, [r6]
+_080237B6:
+ adds r5, r6, 0
+ subs r7, 0x1
+ cmp r7, r2
+ bgt _08023788
+_080237BE:
+ mov r2, r8
+ ldr r3, _080237DC
+ ldr r0, [r3]
+ ldr r0, [r0, 0x8]
+ subs r0, 0x1
+ cmp r2, r0
+ blt _08023778
+_080237CC:
+ add sp, 0x4
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080237DC: .4byte gUnknown_3001B5C
+ thumb_func_end sub_8023758
+
+ thumb_func_start sub_80237E0
+sub_80237E0:
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ sub sp, 0x4
+ ldr r3, _08023864
+ ldr r2, [r3]
+ ldr r1, [r2, 0x8]
+ lsls r0, r1, 1
+ adds r0, 0xA
+ adds r2, r0
+ mov r9, r2
+ movs r2, 0
+ subs r1, 0x1
+ cmp r2, r1
+ bge _08023854
+_08023800:
+ mov r5, r9
+ ldr r0, [r3]
+ ldr r0, [r0, 0x8]
+ subs r7, r0, 0x1
+ adds r0, r2, 0x1
+ mov r8, r0
+ cmp r7, r2
+ ble _08023846
+_08023810:
+ subs r6, r5, 0x2
+ movs r1, 0
+ ldrsh r0, [r6, r1]
+ movs r1, 0
+ str r2, [sp]
+ bl GetAlphabetParentNo
+ adds r4, r0, 0
+ movs r1, 0
+ ldrsh r0, [r5, r1]
+ movs r1, 0
+ bl GetAlphabetParentNo
+ lsls r4, 16
+ lsls r0, 16
+ ldr r2, [sp]
+ cmp r4, r0
+ ble _0802383E
+ movs r0, 0
+ ldrsh r1, [r5, r0]
+ ldrh r0, [r6]
+ strh r0, [r5]
+ strh r1, [r6]
+_0802383E:
+ adds r5, r6, 0
+ subs r7, 0x1
+ cmp r7, r2
+ bgt _08023810
+_08023846:
+ mov r2, r8
+ ldr r3, _08023864
+ ldr r0, [r3]
+ ldr r0, [r0, 0x8]
+ subs r0, 0x1
+ cmp r2, r0
+ blt _08023800
+_08023854:
+ add sp, 0x4
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08023864: .4byte gUnknown_3001B5C
+ thumb_func_end sub_80237E0
+
+ thumb_func_start sub_8023868
+sub_8023868:
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ adds r5, r0, 0
+ mov r8, r1
+ mov r9, r2
+ mov r10, r3
+ bl sub_8024108
+ lsls r0, 24
+ cmp r0, 0
+ beq _08023888
+ movs r0, 0
+ b _08023A6E
+_08023888:
+ ldr r4, _080238AC
+ ldr r0, [r4]
+ cmp r0, 0
+ bne _0802389C
+ movs r0, 0xFE
+ lsls r0, 2
+ movs r1, 0x8
+ bl MemoryAlloc
+ str r0, [r4]
+_0802389C:
+ ldr r1, [r4]
+ str r5, [r1]
+ ldr r0, _080238B0
+ ldr r0, [r0]
+ cmp r0, r5
+ beq _080238B4
+ movs r0, 0x1
+ b _080238B8
+ .align 2, 0
+_080238AC: .4byte gUnknown_3001B60
+_080238B0: .4byte gUnknown_203B2A0
+_080238B4:
+ ldr r0, _080238E4
+ ldr r0, [r0]
+_080238B8:
+ str r0, [r1, 0x4]
+ ldr r2, _080238E8
+ ldr r0, [r2]
+ movs r1, 0
+ strb r1, [r0, 0x14]
+ ldr r0, [r2]
+ strb r1, [r0, 0x15]
+ ldr r0, [r2]
+ strb r1, [r0, 0x16]
+ ldr r0, [r2]
+ strb r1, [r0, 0x17]
+ ldr r0, [r2]
+ strb r1, [r0, 0x18]
+ ldr r0, [r2]
+ ldr r0, [r0]
+ cmp r0, 0x4
+ bhi _08023980
+ lsls r0, 2
+ ldr r1, _080238EC
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080238E4: .4byte gUnknown_203B2A4
+_080238E8: .4byte gUnknown_3001B60
+_080238EC: .4byte _080238F0
+ .align 2, 0
+_080238F0:
+ .4byte _08023958
+ .4byte _08023904
+ .4byte _08023914
+ .4byte _08023924
+ .4byte _0802393C
+_08023904:
+ ldr r0, _08023910
+ ldr r1, [r0]
+ movs r0, 0x1
+ strb r0, [r1, 0x18]
+ b _08023958
+ .align 2, 0
+_08023910: .4byte gUnknown_3001B60
+_08023914:
+ ldr r0, _08023920
+ ldr r1, [r0]
+ movs r0, 0x1
+ strb r0, [r1, 0x14]
+ b _08023958
+ .align 2, 0
+_08023920: .4byte gUnknown_3001B60
+_08023924:
+ ldr r2, _08023938
+ ldr r0, [r2]
+ movs r1, 0x1
+ strb r1, [r0, 0x17]
+ ldr r0, [r2]
+ strb r1, [r0, 0x15]
+ ldr r0, [r2]
+ strb r1, [r0, 0x16]
+ b _08023958
+ .align 2, 0
+_08023938: .4byte gUnknown_3001B60
+_0802393C:
+ ldr r5, _0802397C
+ ldr r0, [r5]
+ movs r4, 0x1
+ strb r4, [r0, 0x18]
+ ldr r0, [r5]
+ strb r4, [r0, 0x15]
+ movs r0, 0x9
+ bl sub_80023E4
+ lsls r0, 24
+ cmp r0, 0
+ bne _08023958
+ ldr r0, [r5]
+ strb r4, [r0, 0x16]
+_08023958:
+ ldr r4, _0802397C
+ ldr r0, [r4]
+ ldr r0, [r0]
+ cmp r0, 0x4
+ bne _08023980
+ bl sub_80A5728
+ lsls r0, 16
+ asrs r0, 16
+ bl sub_8002658
+ ldr r1, [r4]
+ movs r2, 0xD5
+ lsls r2, 2
+ adds r1, r2
+ strb r0, [r1]
+ b _0802398E
+ .align 2, 0
+_0802397C: .4byte gUnknown_3001B60
+_08023980:
+ ldr r0, _08023A7C
+ ldr r0, [r0]
+ movs r3, 0xD5
+ lsls r3, 2
+ adds r0, r3
+ movs r1, 0
+ strb r1, [r0]
+_0802398E:
+ ldr r5, _08023A7C
+ ldr r0, [r5]
+ movs r4, 0xE3
+ lsls r4, 2
+ adds r1, r0, r4
+ mov r2, r8
+ str r2, [r1]
+ movs r7, 0xE4
+ lsls r7, 2
+ adds r2, r0, r7
+ mov r3, r8
+ lsls r1, r3, 1
+ add r1, r8
+ lsls r1, 3
+ movs r6, 0xE5
+ lsls r6, 2
+ adds r1, r6
+ adds r1, r0, r1
+ str r1, [r2]
+ adds r0, r6
+ bl sub_8006518
+ ldr r1, [r5]
+ adds r4, r1, r4
+ ldr r2, [r4]
+ lsls r0, r2, 1
+ adds r0, r2
+ lsls r0, 3
+ adds r1, r0
+ adds r1, r6
+ ldr r0, _08023A80
+ ldm r0!, {r2-r4}
+ stm r1!, {r2-r4}
+ ldm r0!, {r2-r4}
+ stm r1!, {r2-r4}
+ ldr r2, [r5]
+ adds r0, r2, r7
+ ldr r1, [r0]
+ movs r4, 0xFD
+ lsls r4, 2
+ adds r0, r2, r4
+ str r0, [r1, 0x14]
+ mov r0, r9
+ cmp r0, 0
+ beq _08023A04
+ movs r1, 0xE3
+ lsls r1, 2
+ adds r0, r2, r1
+ ldr r1, [r0]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 3
+ movs r3, 0xE7
+ lsls r3, 2
+ adds r1, r2, r3
+ adds r1, r0
+ mov r4, r9
+ ldr r0, [r4]
+ str r0, [r1]
+_08023A04:
+ ldr r0, [r5]
+ adds r0, r7
+ ldr r0, [r0]
+ mov r1, r10
+ bl sub_8012D08
+ bl ResetUnusedInputStruct
+ ldr r0, [r5]
+ adds r0, r6
+ movs r1, 0x1
+ movs r2, 0x1
+ bl sub_800641C
+ ldr r4, [r5]
+ movs r0, 0xD6
+ lsls r0, 2
+ adds r4, r0
+ bl sub_8023F8C
+ adds r1, r0, 0
+ adds r0, r4, 0
+ mov r2, r10
+ mov r3, r8
+ bl sub_8013818
+ ldr r0, _08023A84
+ ldr r4, [r5]
+ ldr r1, [r0]
+ ldr r0, [r4]
+ cmp r1, r0
+ bne _08023A64
+ ldr r0, _08023A88
+ ldrh r1, [r0]
+ movs r2, 0xDC
+ lsls r2, 2
+ adds r0, r4, r2
+ strh r1, [r0]
+ ldr r0, _08023A8C
+ ldrh r1, [r0]
+ ldr r3, _08023A90
+ adds r0, r4, r3
+ strh r1, [r0]
+ movs r1, 0xD6
+ lsls r1, 2
+ adds r0, r4, r1
+ bl sub_8013984
+_08023A64:
+ bl sub_8023CF4
+ bl sub_8023DA4
+ movs r0, 0x1
+_08023A6E:
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08023A7C: .4byte gUnknown_3001B60
+_08023A80: .4byte gUnknown_80DC968
+_08023A84: .4byte gUnknown_203B2A0
+_08023A88: .4byte gUnknown_203B2A8
+_08023A8C: .4byte gUnknown_203B2AA
+_08023A90: .4byte 0x00000376
+ thumb_func_end sub_8023868
+
+ thumb_func_start sub_8023A94
+sub_8023A94:
+ push {r4,lr}
+ lsls r0, 24
+ cmp r0, 0
+ bne _08023AB4
+ ldr r0, _08023AB0
+ ldr r0, [r0]
+ movs r1, 0xD6
+ lsls r1, 2
+ adds r0, r1
+ bl sub_8013660
+ movs r0, 0
+ b _08023B3E
+ .align 2, 0
+_08023AB0: .4byte gUnknown_3001B60
+_08023AB4:
+ ldr r4, _08023AD0
+ ldr r0, [r4]
+ movs r1, 0xD6
+ lsls r1, 2
+ adds r0, r1
+ bl GetKeyPress
+ cmp r0, 0x2
+ beq _08023ADE
+ cmp r0, 0x2
+ bgt _08023AD4
+ cmp r0, 0x1
+ beq _08023AF2
+ b _08023B16
+ .align 2, 0
+_08023AD0: .4byte gUnknown_3001B60
+_08023AD4:
+ cmp r0, 0x3
+ beq _08023AFC
+ cmp r0, 0x4
+ beq _08023AE8
+ b _08023B16
+_08023ADE:
+ movs r0, 0x1
+ bl PlayMenuSoundEffect
+ movs r0, 0x2
+ b _08023B3E
+_08023AE8:
+ movs r0, 0x4
+ bl PlayMenuSoundEffect
+ movs r0, 0x4
+ b _08023B3E
+_08023AF2:
+ movs r0, 0
+ bl PlayMenuSoundEffect
+ movs r0, 0x3
+ b _08023B3E
+_08023AFC:
+ movs r0, 0x5
+ bl PlayMenuSoundEffect
+ ldr r0, [r4]
+ ldr r1, [r0, 0x4]
+ movs r2, 0x1
+ cmp r1, 0x2
+ bhi _08023B0E
+ adds r2, r1, 0x1
+_08023B0E:
+ str r2, [r0, 0x4]
+ bl sub_8023F8C
+ b _08023B34
+_08023B16:
+ ldr r0, _08023B30
+ ldr r0, [r0]
+ movs r1, 0xD6
+ lsls r1, 2
+ adds r0, r1
+ movs r1, 0x1
+ bl sub_80138B8
+ lsls r0, 24
+ cmp r0, 0
+ bne _08023B34
+ movs r0, 0
+ b _08023B3E
+ .align 2, 0
+_08023B30: .4byte gUnknown_3001B60
+_08023B34:
+ bl sub_8023CF4
+ bl sub_8023DA4
+ movs r0, 0x1
+_08023B3E:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8023A94
+
+ thumb_func_start sub_8023B44
+sub_8023B44:
+ ldr r0, _08023B74
+ ldr r0, [r0]
+ ldr r2, _08023B78
+ adds r1, r0, r2
+ movs r3, 0
+ ldrsh r2, [r1, r3]
+ movs r3, 0xDD
+ lsls r3, 2
+ adds r1, r0, r3
+ movs r3, 0
+ ldrsh r1, [r1, r3]
+ muls r1, r2
+ movs r3, 0xDC
+ lsls r3, 2
+ adds r2, r0, r3
+ movs r3, 0
+ ldrsh r2, [r2, r3]
+ adds r1, r2
+ lsls r1, 1
+ adds r0, 0x1A
+ adds r0, r1
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ bx lr
+ .align 2, 0
+_08023B74: .4byte gUnknown_3001B60
+_08023B78: .4byte 0x00000376
+ thumb_func_end sub_8023B44
+
+ thumb_func_start sub_8023B7C
+sub_8023B7C:
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ bl ResetUnusedInputStruct
+ ldr r5, _08023BD0
+ ldr r0, [r5]
+ movs r1, 0xE5
+ lsls r1, 2
+ adds r0, r1
+ movs r1, 0
+ movs r2, 0
+ bl sub_800641C
+ bl sub_8023BD8
+ adds r2, r0, 0
+ ldr r0, [r5]
+ ldr r3, _08023BD4
+ adds r1, r0, r3
+ strh r2, [r1]
+ movs r1, 0xD6
+ lsls r1, 2
+ adds r0, r1
+ bl sub_8013984
+ bl sub_8023CF4
+ bl sub_8023DA4
+ cmp r4, 0
+ beq _08023BCA
+ ldr r0, [r5]
+ movs r3, 0xD6
+ lsls r3, 2
+ adds r0, r3
+ bl AddMenuCursorSprite
+_08023BCA:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08023BD0: .4byte gUnknown_3001B60
+_08023BD4: .4byte 0x0000037a
+ thumb_func_end sub_8023B7C
+
+ thumb_func_start sub_8023BD8
+sub_8023BD8:
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ movs r3, 0
+ ldr r1, _08023C58
+ ldr r0, [r1]
+ ldr r0, [r0, 0x8]
+ adds r7, r1, 0
+ cmp r3, r0
+ bge _08023C4A
+ ldr r0, _08023C5C
+ mov r8, r0
+ mov r12, r7
+_08023BF2:
+ ldr r2, [r1]
+ lsls r4, r3, 1
+ adds r0, r2, 0
+ adds r0, 0x1A
+ adds r0, r4
+ movs r5, 0
+ ldrsh r1, [r0, r5]
+ movs r0, 0x58
+ muls r0, r1
+ mov r5, r8
+ ldr r1, [r5]
+ adds r0, r1
+ ldrb r1, [r0]
+ movs r0, 0x1
+ ands r0, r1
+ adds r6, r3, 0x1
+ cmp r0, 0
+ bne _08023C3E
+ ldr r0, [r2, 0x8]
+ subs r0, 0x1
+ str r0, [r2, 0x8]
+ cmp r3, r0
+ bge _08023C3E
+ mov r5, r12
+ adds r4, 0x2
+_08023C24:
+ ldr r2, [r5]
+ lsls r1, r3, 1
+ adds r0, r2, 0
+ adds r0, 0x1A
+ adds r1, r0, r1
+ adds r0, r4
+ ldrh r0, [r0]
+ strh r0, [r1]
+ adds r4, 0x2
+ adds r3, 0x1
+ ldr r0, [r2, 0x8]
+ cmp r3, r0
+ blt _08023C24
+_08023C3E:
+ adds r3, r6, 0
+ adds r1, r7, 0
+ ldr r0, [r7]
+ ldr r0, [r0, 0x8]
+ cmp r3, r0
+ blt _08023BF2
+_08023C4A:
+ ldr r0, [r7]
+ ldr r0, [r0, 0x8]
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08023C58: .4byte gUnknown_3001B60
+_08023C5C: .4byte gRecruitedPokemonRef
+ thumb_func_end sub_8023BD8
+
+ thumb_func_start sub_8023C60
+sub_8023C60:
+ push {r4-r6,lr}
+ ldr r5, _08023CCC
+ ldr r2, [r5]
+ cmp r2, 0
+ beq _08023CC6
+ ldr r1, _08023CD0
+ ldr r0, [r2]
+ str r0, [r1]
+ ldr r1, _08023CD4
+ ldr r0, [r2, 0x4]
+ str r0, [r1]
+ ldr r1, _08023CD8
+ movs r3, 0xDC
+ lsls r3, 2
+ adds r0, r2, r3
+ ldrh r0, [r0]
+ strh r0, [r1]
+ ldr r1, _08023CDC
+ ldr r6, _08023CE0
+ adds r0, r2, r6
+ ldrh r0, [r0]
+ strh r0, [r1]
+ movs r1, 0xE3
+ lsls r1, 2
+ adds r0, r2, r1
+ ldr r0, [r0]
+ lsls r1, r0, 1
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r2, r1
+ movs r4, 0xE5
+ lsls r4, 2
+ adds r1, r4
+ ldr r0, _08023CE4
+ ldm r0!, {r2,r3,r6}
+ stm r1!, {r2,r3,r6}
+ ldm r0!, {r2,r3,r6}
+ stm r1!, {r2,r3,r6}
+ bl ResetUnusedInputStruct
+ ldr r0, [r5]
+ adds r0, r4
+ movs r1, 0x1
+ movs r2, 0x1
+ bl sub_800641C
+ ldr r0, [r5]
+ bl MemoryFree
+ movs r0, 0
+ str r0, [r5]
+_08023CC6:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08023CCC: .4byte gUnknown_3001B60
+_08023CD0: .4byte gUnknown_203B2A0
+_08023CD4: .4byte gUnknown_203B2A4
+_08023CD8: .4byte gUnknown_203B2A8
+_08023CDC: .4byte gUnknown_203B2AA
+_08023CE0: .4byte 0x00000376
+_08023CE4: .4byte gUnknown_80DC950
+ thumb_func_end sub_8023C60
+
+ thumb_func_start sub_8023CE8
+sub_8023CE8:
+ ldr r0, _08023CF0
+ ldr r0, [r0]
+ bx lr
+ .align 2, 0
+_08023CF0: .4byte gUnknown_3001B60
+ thumb_func_end sub_8023CE8
+
+ thumb_func_start sub_8023CF4
+sub_8023CF4:
+ push {r4,r5,lr}
+ ldr r2, _08023D28
+ ldr r0, [r2]
+ movs r1, 0xFD
+ lsls r1, 2
+ adds r0, r1
+ movs r3, 0
+ movs r1, 0x1
+ strb r1, [r0]
+ ldr r0, [r2]
+ ldr r1, _08023D2C
+ adds r0, r1
+ strb r3, [r0]
+ ldr r0, [r2]
+ adds r1, 0x2
+ adds r0, r1
+ strb r3, [r0]
+ ldr r1, [r2]
+ ldr r0, [r1]
+ adds r5, r2, 0
+ cmp r0, 0x2
+ bne _08023D34
+ ldr r0, _08023D30
+ adds r1, r0
+ b _08023D38
+ .align 2, 0
+_08023D28: .4byte gUnknown_3001B60
+_08023D2C: .4byte 0x000003f5
+_08023D30: .4byte 0x000003f6
+_08023D34:
+ ldr r2, _08023D98
+ adds r1, r2
+_08023D38:
+ movs r0, 0xC
+ strb r0, [r1]
+ ldr r0, [r5]
+ ldr r1, _08023D9C
+ adds r0, r1
+ movs r2, 0
+ ldrsh r0, [r0, r2]
+ movs r1, 0xC
+ bl sub_80095E4
+ adds r0, 0x2
+ ldr r3, [r5]
+ movs r1, 0xE3
+ lsls r1, 2
+ adds r4, r3, r1
+ ldr r2, [r4]
+ lsls r1, r2, 1
+ adds r1, r2
+ lsls r1, 3
+ adds r1, r3, r1
+ ldr r2, _08023DA0
+ adds r1, r2
+ lsls r0, 16
+ lsrs r0, 16
+ strh r0, [r1]
+ ldr r2, [r4]
+ lsls r1, r2, 1
+ adds r1, r2
+ lsls r1, 3
+ adds r3, r1
+ movs r1, 0xE9
+ lsls r1, 2
+ adds r3, r1
+ strh r0, [r3]
+ bl ResetUnusedInputStruct
+ ldr r0, [r5]
+ movs r2, 0xE5
+ lsls r2, 2
+ adds r0, r2
+ movs r1, 0x1
+ movs r2, 0x1
+ bl sub_800641C
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08023D98: .4byte 0x000003f6
+_08023D9C: .4byte 0x00000372
+_08023DA0: .4byte 0x000003a2
+ thumb_func_end sub_8023CF4
+
+ thumb_func_start sub_8023DA4
+sub_8023DA4:
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ sub sp, 0x58
+ ldr r4, _08023DD8
+ ldr r0, [r4]
+ movs r5, 0xE3
+ lsls r5, 2
+ adds r0, r5
+ ldr r0, [r0]
+ bl sub_8008C54
+ ldr r0, [r4]
+ adds r0, r5
+ ldr r0, [r0]
+ bl sub_80073B8
+ ldr r0, [r4]
+ ldr r1, [r0]
+ cmp r1, 0x2
+ beq _08023DE0
+ cmp r1, 0x4
+ beq _08023E00
+ ldr r2, _08023DDC
+ b _08023E02
+ .align 2, 0
+_08023DD8: .4byte gUnknown_3001B60
+_08023DDC: .4byte gUnknown_80DC988
+_08023DE0:
+ add r0, sp, 0x8
+ bl sub_80920D8
+ ldr r0, [r4]
+ movs r1, 0xE3
+ lsls r1, 2
+ adds r0, r1
+ ldr r3, [r0]
+ movs r0, 0
+ str r0, [sp]
+ movs r0, 0xA
+ movs r1, 0
+ add r2, sp, 0x8
+ bl xxx_call_draw_string
+ b _08023E3C
+_08023E00:
+ ldr r2, _08023EBC
+_08023E02:
+ adds r0, r5
+ ldr r3, [r0]
+ movs r0, 0
+ str r0, [sp]
+ movs r0, 0xA
+ movs r1, 0
+ bl xxx_call_draw_string
+ ldr r1, [r4]
+ ldr r2, _08023EC0
+ adds r0, r1, r2
+ ldrb r0, [r0]
+ lsls r0, 3
+ adds r3, r0, 0x4
+ ldr r4, _08023EC4
+ adds r0, r1, r4
+ movs r4, 0
+ ldrsh r2, [r0, r4]
+ adds r2, 0x1
+ movs r0, 0x7
+ str r0, [sp]
+ adds r1, r5
+ ldr r0, [r1]
+ str r0, [sp, 0x4]
+ adds r0, r3, 0
+ movs r1, 0
+ movs r3, 0x2
+ bl sub_8012BC4
+_08023E3C:
+ movs r7, 0
+ ldr r1, _08023EC8
+ ldr r0, [r1]
+ ldr r2, _08023ECC
+ adds r0, r2
+ movs r4, 0
+ ldrsh r0, [r0, r4]
+ cmp r7, r0
+ blt _08023E50
+ b _08023F62
+_08023E50:
+ mov r8, r1
+ add r0, sp, 0x30
+ mov r9, r0
+_08023E56:
+ ldr r3, [r1]
+ ldr r1, _08023EC4
+ adds r0, r3, r1
+ movs r2, 0
+ ldrsh r1, [r0, r2]
+ movs r4, 0xDD
+ lsls r4, 2
+ adds r0, r3, r4
+ movs r2, 0
+ ldrsh r0, [r0, r2]
+ muls r1, r0
+ adds r1, r7
+ lsls r1, 1
+ adds r0, r3, 0
+ adds r0, 0x1A
+ adds r0, r1
+ movs r4, 0
+ ldrsh r5, [r0, r4]
+ ldr r2, _08023ED0
+ movs r0, 0x58
+ adds r1, r5, 0
+ muls r1, r0
+ ldr r0, [r2]
+ adds r4, r0, r1
+ movs r6, 0x7
+ ldrh r0, [r4]
+ lsrs r0, 1
+ movs r1, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _08023ED4
+ movs r0, 0
+ ldrb r1, [r4, 0x4]
+ cmp r1, 0x41
+ bne _08023E9E
+ movs r0, 0x1
+_08023E9E:
+ cmp r0, 0
+ beq _08023EA4
+ movs r6, 0x6
+_08023EA4:
+ movs r0, 0
+ cmp r1, 0x40
+ bne _08023EAC
+ movs r0, 0x1
+_08023EAC:
+ cmp r0, 0
+ beq _08023EB2
+ movs r6, 0x6
+_08023EB2:
+ ldrb r0, [r4, 0x2]
+ cmp r0, 0
+ beq _08023EEA
+ movs r6, 0x5
+ b _08023EEA
+ .align 2, 0
+_08023EBC: .4byte gUnknown_80DC980
+_08023EC0: .4byte 0x000003f6
+_08023EC4: .4byte 0x00000376
+_08023EC8: .4byte gUnknown_3001B60
+_08023ECC: .4byte 0x00000372
+_08023ED0: .4byte gRecruitedPokemonRef
+_08023ED4:
+ ldrb r0, [r3, 0x18]
+ cmp r0, 0
+ beq _08023EEA
+ adds r0, r5, 0
+ bl sub_808D750
+ lsls r0, 24
+ movs r6, 0x2
+ cmp r0, 0
+ beq _08023EEA
+ movs r6, 0x4
+_08023EEA:
+ mov r0, r8
+ ldr r1, [r0]
+ ldr r0, [r1]
+ cmp r0, 0x4
+ bne _08023F02
+ movs r2, 0xD5
+ lsls r2, 2
+ adds r0, r1, r2
+ ldrb r1, [r0]
+ adds r0, r4, 0
+ bl sub_8024184
+_08023F02:
+ adds r1, r4, 0
+ adds r1, 0x4C
+ mov r0, r9
+ movs r2, 0xA
+ bl sub_80922B4
+ movs r0, 0x8
+ ldrsh r1, [r4, r0]
+ add r0, sp, 0x44
+ bl sub_808D930
+ add r0, sp, 0x8
+ ldr r1, _08023F80
+ adds r2, r6, 0
+ mov r3, r9
+ bl ExpandPlaceholdersBuffer
+ mov r1, r8
+ ldr r0, [r1]
+ movs r2, 0xD6
+ lsls r2, 2
+ adds r0, r2
+ adds r1, r7, 0
+ bl sub_8013800
+ adds r1, r0, 0
+ mov r4, r8
+ ldr r0, [r4]
+ movs r2, 0xE3
+ lsls r2, 2
+ adds r0, r2
+ ldr r3, [r0]
+ movs r0, 0
+ str r0, [sp]
+ movs r0, 0x8
+ add r2, sp, 0x8
+ bl xxx_call_draw_string
+ adds r7, 0x1
+ mov r1, r8
+ ldr r0, [r4]
+ ldr r4, _08023F84
+ adds r0, r4
+ movs r2, 0
+ ldrsh r0, [r0, r2]
+ cmp r7, r0
+ bge _08023F62
+ b _08023E56
+_08023F62:
+ ldr r0, _08023F88
+ ldr r0, [r0]
+ movs r4, 0xE3
+ lsls r4, 2
+ adds r0, r4
+ ldr r0, [r0]
+ bl sub_80073E0
+ add sp, 0x58
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08023F80: .4byte gUnknown_80DC998
+_08023F84: .4byte 0x00000372
+_08023F88: .4byte gUnknown_3001B60
+ thumb_func_end sub_8023DA4
+
+ thumb_func_start sub_8023F8C
+sub_8023F8C:
+ push {r4-r7,lr}
+ ldr r2, _08023FD0
+ ldr r1, [r2]
+ movs r0, 0
+ str r0, [r1, 0x8]
+ ldrb r0, [r1, 0x15]
+ adds r6, r2, 0
+ cmp r0, 0
+ bne _08023FE2
+ movs r4, 0
+ ldr r2, _08023FD4
+_08023FA2:
+ movs r0, 0x58
+ adds r1, r4, 0
+ muls r1, r0
+ ldr r0, [r2]
+ adds r1, r0, r1
+ ldrb r0, [r1, 0x2]
+ cmp r0, 0
+ beq _08023FD8
+ ldrb r1, [r1]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _08023FD8
+ ldr r3, [r6]
+ ldr r1, [r3, 0x8]
+ lsls r2, r1, 1
+ adds r0, r3, 0
+ adds r0, 0x1A
+ adds r0, r2
+ strh r4, [r0]
+ adds r1, 0x1
+ str r1, [r3, 0x8]
+ b _08023FE2
+ .align 2, 0
+_08023FD0: .4byte gUnknown_3001B60
+_08023FD4: .4byte gRecruitedPokemonRef
+_08023FD8:
+ adds r4, 0x1
+ movs r0, 0xCE
+ lsls r0, 1
+ cmp r4, r0
+ ble _08023FA2
+_08023FE2:
+ ldr r0, [r6]
+ ldrb r0, [r0, 0x16]
+ cmp r0, 0
+ bne _08024042
+ movs r4, 0
+ ldr r3, _08024034
+_08023FEE:
+ movs r0, 0x58
+ adds r1, r4, 0
+ muls r1, r0
+ ldr r0, [r3]
+ adds r1, r0, r1
+ movs r2, 0
+ ldrb r0, [r1, 0x4]
+ cmp r0, 0x41
+ bne _08024002
+ movs r2, 0x1
+_08024002:
+ cmp r2, 0
+ beq _08024038
+ ldrb r0, [r1, 0x2]
+ cmp r0, 0
+ bne _08024038
+ ldrh r1, [r1]
+ lsrs r0, r1, 1
+ movs r2, 0x1
+ ands r0, r2
+ cmp r0, 0
+ beq _08024038
+ adds r0, r2, 0
+ ands r0, r1
+ cmp r0, 0
+ beq _08024038
+ ldr r3, [r6]
+ ldr r1, [r3, 0x8]
+ lsls r2, r1, 1
+ adds r0, r3, 0
+ adds r0, 0x1A
+ adds r0, r2
+ strh r4, [r0]
+ adds r1, 0x1
+ str r1, [r3, 0x8]
+ b _08024042
+ .align 2, 0
+_08024034: .4byte gRecruitedPokemonRef
+_08024038:
+ adds r4, 0x1
+ movs r0, 0xCE
+ lsls r0, 1
+ cmp r4, r0
+ ble _08023FEE
+_08024042:
+ ldr r0, [r6]
+ ldr r1, [r0, 0x8]
+ str r1, [r0, 0xC]
+ ldrb r0, [r0, 0x17]
+ cmp r0, 0
+ bne _080240A4
+ movs r4, 0
+ ldr r7, _08024100
+ movs r5, 0x1
+_08024054:
+ movs r0, 0x58
+ adds r1, r4, 0
+ muls r1, r0
+ ldr r0, [r7]
+ adds r1, r0, r1
+ ldrh r2, [r1]
+ lsrs r0, r2, 1
+ ands r0, r5
+ cmp r0, 0
+ beq _0802409A
+ adds r0, r5, 0
+ ands r0, r2
+ cmp r0, 0
+ beq _0802409A
+ ldrb r0, [r1, 0x2]
+ cmp r0, 0
+ bne _0802409A
+ movs r2, 0
+ ldrb r0, [r1, 0x4]
+ cmp r0, 0x41
+ bne _08024080
+ movs r2, 0x1
+_08024080:
+ cmp r2, 0
+ bne _0802409A
+ ldr r3, [r6]
+ ldr r1, [r3, 0x8]
+ lsls r2, r1, 1
+ adds r0, r3, 0
+ adds r0, 0x1A
+ adds r0, r2
+ strh r4, [r0]
+ adds r1, 0x1
+ str r1, [r3, 0x8]
+ cmp r1, 0x3
+ bgt _080240A4
+_0802409A:
+ adds r4, 0x1
+ movs r0, 0xCE
+ lsls r0, 1
+ cmp r4, r0
+ ble _08024054
+_080240A4:
+ ldr r0, [r6]
+ ldr r1, [r0, 0x8]
+ str r1, [r0, 0x10]
+ ldrb r0, [r0, 0x14]
+ cmp r0, 0
+ bne _080240EE
+ movs r4, 0
+ ldr r7, _08024100
+ movs r5, 0x1
+_080240B6:
+ movs r0, 0x58
+ adds r1, r4, 0
+ muls r1, r0
+ ldr r0, [r7]
+ adds r1, r0, r1
+ ldrh r1, [r1]
+ adds r0, r5, 0
+ ands r0, r1
+ cmp r0, 0
+ beq _080240E4
+ lsrs r0, r1, 1
+ ands r0, r5
+ cmp r0, 0
+ bne _080240E4
+ ldr r3, [r6]
+ ldr r1, [r3, 0x8]
+ lsls r2, r1, 1
+ adds r0, r3, 0
+ adds r0, 0x1A
+ adds r0, r2
+ strh r4, [r0]
+ adds r1, 0x1
+ str r1, [r3, 0x8]
+_080240E4:
+ adds r4, 0x1
+ movs r0, 0xCE
+ lsls r0, 1
+ cmp r4, r0
+ ble _080240B6
+_080240EE:
+ bl sub_80241A8
+ ldr r0, _08024104
+ ldr r0, [r0]
+ ldr r0, [r0, 0x8]
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08024100: .4byte gRecruitedPokemonRef
+_08024104: .4byte gUnknown_3001B60
+ thumb_func_end sub_8023F8C
+
+ thumb_func_start sub_8024108
+sub_8024108:
+ push {r4-r7,lr}
+ adds r5, r0, 0
+ movs r7, 0
+ movs r6, 0x1
+_08024110:
+ ldr r2, _08024134
+ movs r0, 0x58
+ adds r1, r7, 0
+ muls r1, r0
+ ldr r0, [r2]
+ adds r4, r0, r1
+ ldrh r1, [r4]
+ adds r0, r6, 0
+ ands r0, r1
+ cmp r0, 0
+ beq _08024172
+ cmp r5, 0x2
+ bne _08024138
+ lsrs r0, r1, 1
+ ands r0, r6
+ cmp r0, 0
+ beq _08024172
+ b _0802416E
+ .align 2, 0
+_08024134: .4byte gRecruitedPokemonRef
+_08024138:
+ cmp r5, 0x3
+ bne _08024140
+ lsrs r0, r1, 1
+ b _08024168
+_08024140:
+ cmp r5, 0x4
+ bne _0802416E
+ ldrb r0, [r4, 0x2]
+ cmp r0, 0
+ bne _08024172
+ movs r0, 0x9
+ bl sub_80023E4
+ lsls r0, 24
+ cmp r0, 0
+ bne _0802416E
+ movs r1, 0
+ ldrb r0, [r4, 0x4]
+ cmp r0, 0x41
+ bne _08024160
+ movs r1, 0x1
+_08024160:
+ cmp r1, 0
+ beq _0802416E
+ ldrh r0, [r4]
+ lsrs r0, 1
+_08024168:
+ ands r0, r6
+ cmp r0, 0
+ bne _08024172
+_0802416E:
+ movs r0, 0
+ b _0802417E
+_08024172:
+ adds r7, 0x1
+ movs r0, 0xCE
+ lsls r0, 1
+ cmp r7, r0
+ ble _08024110
+ movs r0, 0x1
+_0802417E:
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8024108
+
+ thumb_func_start sub_8024184
+sub_8024184:
+ push {r4,lr}
+ lsls r4, r1, 24
+ lsrs r4, 24
+ movs r1, 0x8
+ ldrsh r0, [r0, r1]
+ bl GetFriendArea
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r4, r0
+ beq _0802419E
+ movs r0, 0
+ b _080241A0
+_0802419E:
+ movs r0, 0x1
+_080241A0:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8024184
+
+ thumb_func_start sub_80241A8
+sub_80241A8:
+ push {r4,lr}
+ ldr r4, _080241C0
+ ldr r1, [r4]
+ ldr r0, [r1, 0x4]
+ cmp r0, 0x2
+ beq _080241CA
+ cmp r0, 0x2
+ bhi _080241C4
+ cmp r0, 0x1
+ beq _08024206
+ b _08024222
+ .align 2, 0
+_080241C0: .4byte gUnknown_3001B60
+_080241C4:
+ cmp r0, 0x3
+ beq _080241E8
+ b _08024222
+_080241CA:
+ ldr r0, [r1, 0xC]
+ ldr r1, [r1, 0x10]
+ cmp r0, r1
+ beq _080241D6
+ bl sub_80242D0
+_080241D6:
+ ldr r0, [r4]
+ ldr r2, [r0, 0x10]
+ ldr r1, [r0, 0x8]
+ cmp r2, r1
+ beq _08024222
+ adds r0, r2, 0
+ bl sub_80242D0
+ b _08024222
+_080241E8:
+ ldr r0, [r1, 0xC]
+ ldr r1, [r1, 0x10]
+ cmp r0, r1
+ beq _080241F4
+ bl sub_802437C
+_080241F4:
+ ldr r0, [r4]
+ ldr r2, [r0, 0x10]
+ ldr r1, [r0, 0x8]
+ cmp r2, r1
+ beq _08024222
+ adds r0, r2, 0
+ bl sub_802437C
+ b _08024222
+_08024206:
+ ldr r0, [r1, 0xC]
+ ldr r1, [r1, 0x10]
+ cmp r0, r1
+ beq _08024212
+ bl sub_8024228
+_08024212:
+ ldr r0, [r4]
+ ldr r2, [r0, 0x10]
+ ldr r1, [r0, 0x8]
+ cmp r2, r1
+ beq _08024222
+ adds r0, r2, 0
+ bl sub_8024228
+_08024222:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80241A8
+
+ thumb_func_start sub_8024228
+sub_8024228:
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0xC
+ ldr r3, _080242C8
+ lsls r2, r1, 1
+ adds r2, 0x18
+ ldr r3, [r3]
+ adds r3, r2
+ str r3, [sp]
+ adds r2, r0, 0
+ subs r1, 0x1
+ cmp r2, r1
+ bge _080242B8
+ str r1, [sp, 0x4]
+_0802424A:
+ ldr r5, [sp]
+ adds r7, r1, 0
+ adds r0, r2, 0x1
+ mov r10, r0
+ cmp r7, r2
+ ble _080242B0
+ ldr r3, _080242CC
+ mov r9, r3
+ movs r0, 0x58
+ mov r8, r0
+_0802425E:
+ mov r3, r9
+ ldr r1, [r3]
+ subs r6, r5, 0x2
+ movs r3, 0
+ ldrsh r0, [r6, r3]
+ mov r3, r8
+ muls r3, r0
+ adds r0, r3, 0
+ adds r1, r0
+ movs r3, 0x8
+ ldrsh r0, [r1, r3]
+ str r2, [sp, 0x8]
+ bl GetInternalNo
+ adds r4, r0, 0
+ mov r0, r9
+ ldr r1, [r0]
+ movs r3, 0
+ ldrsh r0, [r5, r3]
+ mov r3, r8
+ muls r3, r0
+ adds r0, r3, 0
+ adds r1, r0
+ movs r3, 0x8
+ ldrsh r0, [r1, r3]
+ bl GetInternalNo
+ lsls r4, 16
+ lsls r0, 16
+ ldr r2, [sp, 0x8]
+ cmp r4, r0
+ ble _080242A8
+ movs r0, 0
+ ldrsh r1, [r5, r0]
+ ldrh r0, [r6]
+ strh r0, [r5]
+ strh r1, [r6]
+_080242A8:
+ adds r5, r6, 0
+ subs r7, 0x1
+ cmp r7, r2
+ bgt _0802425E
+_080242B0:
+ mov r2, r10
+ ldr r1, [sp, 0x4]
+ cmp r2, r1
+ blt _0802424A
+_080242B8:
+ add sp, 0xC
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080242C8: .4byte gUnknown_3001B60
+_080242CC: .4byte gRecruitedPokemonRef
+ thumb_func_end sub_8024228
+
+ thumb_func_start sub_80242D0
+sub_80242D0:
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0xC
+ ldr r3, _08024374
+ lsls r2, r1, 1
+ adds r2, 0x18
+ ldr r3, [r3]
+ adds r3, r2
+ str r3, [sp]
+ adds r2, r0, 0
+ subs r1, 0x1
+ cmp r2, r1
+ bge _08024364
+ str r1, [sp, 0x4]
+_080242F2:
+ ldr r5, [sp]
+ adds r7, r1, 0
+ adds r0, r2, 0x1
+ mov r10, r0
+ cmp r7, r2
+ ble _0802435C
+ ldr r3, _08024378
+ mov r9, r3
+ movs r0, 0x58
+ mov r8, r0
+_08024306:
+ mov r3, r9
+ ldr r1, [r3]
+ subs r6, r5, 0x2
+ movs r3, 0
+ ldrsh r0, [r6, r3]
+ mov r3, r8
+ muls r3, r0
+ adds r0, r3, 0
+ adds r1, r0
+ movs r3, 0x8
+ ldrsh r0, [r1, r3]
+ movs r1, 0
+ str r2, [sp, 0x8]
+ bl GetAlphabetParentNo
+ adds r4, r0, 0
+ mov r0, r9
+ ldr r1, [r0]
+ movs r3, 0
+ ldrsh r0, [r5, r3]
+ mov r3, r8
+ muls r3, r0
+ adds r0, r3, 0
+ adds r1, r0
+ movs r3, 0x8
+ ldrsh r0, [r1, r3]
+ movs r1, 0
+ bl GetAlphabetParentNo
+ lsls r4, 16
+ lsls r0, 16
+ ldr r2, [sp, 0x8]
+ cmp r4, r0
+ ble _08024354
+ movs r0, 0
+ ldrsh r1, [r5, r0]
+ ldrh r0, [r6]
+ strh r0, [r5]
+ strh r1, [r6]
+_08024354:
+ adds r5, r6, 0
+ subs r7, 0x1
+ cmp r7, r2
+ bgt _08024306
+_0802435C:
+ mov r2, r10
+ ldr r1, [sp, 0x4]
+ cmp r2, r1
+ blt _080242F2
+_08024364:
+ add sp, 0xC
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08024374: .4byte gUnknown_3001B60
+_08024378: .4byte gRecruitedPokemonRef
+ thumb_func_end sub_80242D0
+
+ thumb_func_start sub_802437C
+sub_802437C:
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ ldr r3, _080243E4
+ lsls r2, r1, 1
+ adds r2, 0x18
+ ldr r3, [r3]
+ adds r3, r2
+ mov r10, r3
+ adds r7, r0, 0
+ subs r1, 0x1
+ cmp r7, r1
+ bge _080243D6
+ mov r9, r1
+_0802439C:
+ mov r4, r10
+ adds r6, r1, 0
+ adds r0, r7, 0x1
+ mov r8, r0
+ cmp r6, r7
+ ble _080243CE
+_080243A8:
+ subs r5, r4, 0x2
+ movs r1, 0
+ ldrsh r0, [r5, r1]
+ movs r2, 0
+ ldrsh r1, [r4, r2]
+ bl ComparePokemonNames
+ lsls r0, 24
+ cmp r0, 0
+ beq _080243C6
+ movs r0, 0
+ ldrsh r1, [r4, r0]
+ ldrh r0, [r5]
+ strh r0, [r4]
+ strh r1, [r5]
+_080243C6:
+ adds r4, r5, 0
+ subs r6, 0x1
+ cmp r6, r7
+ bgt _080243A8
+_080243CE:
+ mov r7, r8
+ mov r1, r9
+ cmp r7, r1
+ blt _0802439C
+_080243D6:
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080243E4: .4byte gUnknown_3001B60
+ thumb_func_end sub_802437C
+
+ thumb_func_start sub_80243E8
+sub_80243E8:
+ push {r4,r5,lr}
+ sub sp, 0x3C
+ ldr r3, _08024448
+ ldr r0, _0802444C
+ ldr r0, [r0]
+ ldr r2, _08024450
+ adds r1, r0, r2
+ movs r4, 0
+ ldrsh r2, [r1, r4]
+ movs r4, 0xDD
+ lsls r4, 2
+ adds r1, r0, r4
+ movs r4, 0
+ ldrsh r1, [r1, r4]
+ muls r1, r2
+ movs r4, 0xDC
+ lsls r4, 2
+ adds r2, r0, r4
+ movs r4, 0
+ ldrsh r2, [r2, r4]
+ adds r1, r2
+ lsls r1, 1
+ adds r0, 0x1A
+ adds r0, r1
+ movs r2, 0
+ ldrsh r1, [r0, r2]
+ movs r0, 0x58
+ muls r0, r1
+ ldr r4, [r3]
+ adds r4, r0
+ add r5, sp, 0x28
+ adds r1, r4, 0
+ adds r1, 0x4C
+ adds r0, r5, 0
+ movs r2, 0xA
+ bl sub_80922B4
+ ldr r1, _08024454
+ mov r0, sp
+ adds r2, r5, 0
+ bl ExpandPlaceholdersBuffer
+ adds r0, r4, 0
+ add sp, 0x3C
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08024448: .4byte gRecruitedPokemonRef
+_0802444C: .4byte gUnknown_3001B60
+_08024450: .4byte 0x00000376
+_08024454: .4byte gUnknown_80DC9A4
+ thumb_func_end sub_80243E8
+
+ thumb_func_start sub_8024458
+sub_8024458:
+ push {r4-r6,lr}
+ adds r4, r0, 0
+ adds r5, r1, 0
+ lsls r4, 16
+ asrs r4, 16
+ ldr r6, _080244DC
+ movs r0, 0xA6
+ lsls r0, 1
+ movs r1, 0x8
+ bl MemoryAlloc
+ str r0, [r6]
+ adds r1, r0, 0
+ adds r1, 0x48
+ strh r4, [r1]
+ adds r1, 0x98
+ str r5, [r1]
+ adds r2, r0, 0
+ adds r2, 0xE4
+ lsls r1, r5, 1
+ adds r1, r5
+ lsls r1, 3
+ adds r1, 0xE8
+ adds r1, r0, r1
+ str r1, [r2]
+ adds r0, 0xE8
+ bl sub_8006518
+ ldr r1, [r6]
+ adds r0, r1, 0
+ adds r0, 0xE0
+ ldr r2, [r0]
+ lsls r0, r2, 1
+ adds r0, r2
+ lsls r0, 3
+ adds r1, r0
+ adds r1, 0xE8
+ ldr r0, _080244E0
+ ldm r0!, {r2-r4}
+ stm r1!, {r2-r4}
+ ldm r0!, {r2-r4}
+ stm r1!, {r2-r4}
+ ldr r2, [r6]
+ adds r0, r2, 0
+ adds r0, 0xE4
+ ldr r1, [r0]
+ movs r3, 0xA4
+ lsls r3, 1
+ adds r0, r2, r3
+ str r0, [r1, 0x14]
+ movs r4, 0xA5
+ lsls r4, 1
+ adds r1, r2, r4
+ movs r0, 0xA
+ strb r0, [r1]
+ bl sub_8024604
+ bl sub_802452C
+ ldr r0, [r6]
+ bl sub_8013984
+ movs r0, 0x1
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080244DC: .4byte gUnknown_203B2AC
+_080244E0: .4byte gUnknown_80DC9C8
+ thumb_func_end sub_8024458
+
+ thumb_func_start sub_80244E4
+sub_80244E4:
+ push {r4,lr}
+ ldr r4, _08024500
+ ldr r0, [r4]
+ bl GetKeyPress
+ cmp r0, 0x1
+ beq _08024504
+ cmp r0, 0x2
+ bne _0802450E
+ movs r0, 0x1
+ bl PlayMenuSoundEffect
+ movs r0, 0x2
+ b _08024524
+ .align 2, 0
+_08024500: .4byte gUnknown_203B2AC
+_08024504:
+ movs r0, 0
+ bl PlayMenuSoundEffect
+ movs r0, 0x3
+ b _08024524
+_0802450E:
+ ldr r0, [r4]
+ bl sub_8013938
+ lsls r0, 24
+ cmp r0, 0
+ bne _0802451E
+ movs r0, 0
+ b _08024524
+_0802451E:
+ bl sub_802452C
+ movs r0, 0x1
+_08024524:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80244E4
+
+ thumb_func_start sub_802452C
+sub_802452C:
+ push {lr}
+ bl sub_8024588
+ bl sub_80245D0
+ pop {r0}
+ bx r0
+ thumb_func_end sub_802452C
+
+ thumb_func_start sub_802453C
+sub_802453C:
+ push {r4,r5,lr}
+ ldr r4, _08024580
+ ldr r2, [r4]
+ cmp r2, 0
+ beq _0802457A
+ adds r0, r2, 0
+ adds r0, 0xE0
+ ldr r0, [r0]
+ lsls r1, r0, 1
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r2, r1
+ adds r1, 0xE8
+ ldr r0, _08024584
+ ldm r0!, {r2,r3,r5}
+ stm r1!, {r2,r3,r5}
+ ldm r0!, {r2,r3,r5}
+ stm r1!, {r2,r3,r5}
+ bl ResetUnusedInputStruct
+ ldr r0, [r4]
+ adds r0, 0xE8
+ movs r1, 0x1
+ movs r2, 0x1
+ bl sub_800641C
+ ldr r0, [r4]
+ bl MemoryFree
+ movs r0, 0
+ str r0, [r4]
+_0802457A:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08024580: .4byte gUnknown_203B2AC
+_08024584: .4byte gUnknown_80DC9B0
+ thumb_func_end sub_802453C
+
+ thumb_func_start sub_8024588
+sub_8024588:
+ push {r4,lr}
+ ldr r4, _080245C4
+ ldr r0, [r4]
+ ldrh r1, [r0, 0x20]
+ movs r2, 0xA4
+ lsls r2, 1
+ adds r0, r2
+ movs r2, 0
+ strb r1, [r0]
+ ldr r0, [r4]
+ ldrh r1, [r0, 0x1E]
+ ldr r3, _080245C8
+ adds r0, r3
+ strb r1, [r0]
+ ldr r0, [r4]
+ ldr r1, _080245CC
+ adds r0, r1
+ strb r2, [r0]
+ bl ResetUnusedInputStruct
+ ldr r0, [r4]
+ adds r0, 0xE8
+ movs r1, 0x1
+ movs r2, 0x1
+ bl sub_800641C
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080245C4: .4byte gUnknown_203B2AC
+_080245C8: .4byte 0x00000149
+_080245CC: .4byte 0x0000014b
+ thumb_func_end sub_8024588
+
+ thumb_func_start sub_80245D0
+sub_80245D0:
+ push {r4,lr}
+ sub sp, 0x4
+ ldr r0, _08024600
+ ldr r4, [r0]
+ movs r0, 0x1E
+ ldrsh r1, [r4, r0]
+ lsls r2, r1, 2
+ adds r0, r4, 0
+ adds r0, 0x34
+ adds r0, r2
+ ldr r0, [r0]
+ adds r2, r4, 0
+ adds r2, 0x4C
+ adds r3, r4, 0
+ adds r3, 0xB0
+ adds r4, 0xE0
+ ldr r4, [r4]
+ str r4, [sp]
+ bl CreatePokemonInfoTabScreen
+ add sp, 0x4
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08024600: .4byte gUnknown_203B2AC
+ thumb_func_end sub_80245D0
+
+ thumb_func_start sub_8024604
+sub_8024604:
+ push {r4,r5,lr}
+ ldr r4, _08024654
+ ldr r0, [r4]
+ movs r1, 0x2
+ str r1, [r0, 0x34]
+ movs r1, 0x3
+ str r1, [r0, 0x38]
+ movs r1, 0x5
+ str r1, [r0, 0x3C]
+ adds r1, r0, 0
+ adds r1, 0xE0
+ ldr r3, [r1]
+ movs r1, 0x3
+ movs r2, 0x1
+ bl sub_8013818
+ ldr r0, [r4]
+ adds r5, r0, 0
+ adds r5, 0x4C
+ ldr r2, _08024658
+ adds r0, 0x48
+ movs r3, 0
+ ldrsh r1, [r0, r3]
+ movs r0, 0x58
+ muls r0, r1
+ ldr r4, [r2]
+ adds r4, r0
+ movs r0, 0x7
+ bl sub_80023E4
+ adds r2, r0, 0
+ lsls r2, 24
+ lsrs r2, 24
+ adds r0, r5, 0
+ adds r1, r4, 0
+ bl sub_808FF20
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08024654: .4byte gUnknown_203B2AC
+_08024658: .4byte gRecruitedPokemonRef
+ thumb_func_end sub_8024604
+
+ .align 2,0
diff --git a/asm/code_803B050.s b/asm/code_803B050.s
index 1b59946..7e62294 100644
--- a/asm/code_803B050.s
+++ b/asm/code_803B050.s
@@ -2133,7 +2133,7 @@ _0803C154:
cmp r0, 0
bne _0803C154
_0803C168:
- bl sub_808D33C
+ bl GetPlayerPokemonStruct
movs r1, 0x8
ldrsh r0, [r0, r1]
cmp r0, r4
diff --git a/asm/code_8095014.s b/asm/code_8095014.s
index d7623ba..4406103 100644
--- a/asm/code_8095014.s
+++ b/asm/code_8095014.s
@@ -405,11 +405,11 @@ sub_809542C:
bl sub_8094E4C
ldr r1, [r4]
str r0, [r1, 0x10]
- bl sub_808D33C
+ bl GetPlayerPokemonStruct
ldr r1, [r4]
ldrh r0, [r0, 0x8]
strh r0, [r1, 0xC]
- bl sub_808D33C
+ bl GetPlayerPokemonStruct
adds r1, r0, 0
mov r0, sp
bl sub_808DA34
diff --git a/asm/code_8098BDC.s b/asm/code_8098BDC.s
index 1f43a87..ce93c0d 100644
--- a/asm/code_8098BDC.s
+++ b/asm/code_8098BDC.s
@@ -5878,7 +5878,7 @@ _0809BD84:
_0809BDB2:
cmp r4, 0x3
bne _0809BDCC
- bl sub_80247C0
+ bl CleanLuminousCave
ldr r0, _0809BDC8
ldr r0, [r0]
movs r2, 0x86
@@ -5892,7 +5892,7 @@ _0809BDCC:
beq _0809BDD2
b _0809B784
_0809BDD2:
- bl sub_80247C0
+ bl CleanLuminousCave
ldr r0, _0809BDE4
ldr r0, [r0]
movs r3, 0x86
diff --git a/asm/friend_area_action_menu.s b/asm/friend_area_action_menu.s
index 0117899..15b6f88 100644
--- a/asm/friend_area_action_menu.s
+++ b/asm/friend_area_action_menu.s
@@ -659,7 +659,7 @@ _0802798C:
muls r1, r0
ldr r0, [r2]
adds r4, r0, r1
- bl sub_808D33C
+ bl GetPlayerPokemonStruct
ldrb r1, [r4, 0x2]
cmp r1, 0
bne _080279B2
@@ -734,95 +734,4 @@ _08027A36:
bx r0
thumb_func_end sub_80278B4
- thumb_func_start sub_8027A40
-sub_8027A40:
- push {lr}
- bl sub_80244E4
- cmp r0, 0x1
- bls _08027A58
- cmp r0, 0x3
- bhi _08027A58
- bl sub_802453C
- movs r0, 0x2
- bl SetFriendAreaActionMenuState
-_08027A58:
- pop {r0}
- bx r0
- thumb_func_end sub_8027A40
-
- thumb_func_start sub_8027A5C
-sub_8027A5C:
- push {lr}
- bl sub_801BF48
- cmp r0, 0x1
- bls _08027A74
- cmp r0, 0x3
- bhi _08027A74
- bl sub_801BF98
- movs r0, 0x2
- bl SetFriendAreaActionMenuState
-_08027A74:
- pop {r0}
- bx r0
- thumb_func_end sub_8027A5C
-
- thumb_func_start sub_8027A78
-sub_8027A78:
- push {lr}
- sub sp, 0x4
- mov r0, sp
- bl sub_80144A4
- cmp r0, 0
- bne _08027AD8
- ldr r0, [sp]
- cmp r0, 0x2
- beq _08027AA2
- cmp r0, 0x2
- bgt _08027A96
- cmp r0, 0x1
- beq _08027A9A
- b _08027AD8
-_08027A96:
- cmp r0, 0x3
- bne _08027AD8
-_08027A9A:
- movs r0, 0x2
- bl SetFriendAreaActionMenuState
- b _08027AD8
-_08027AA2:
- ldr r0, _08027AB8
- ldr r0, [r0]
- ldr r0, [r0, 0x18]
- ldrb r0, [r0, 0x4]
- subs r0, 0x44
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bhi _08027ABC
- movs r0, 0x1
- b _08027ABE
- .align 2, 0
-_08027AB8: .4byte gUnknown_203B2BC
-_08027ABC:
- movs r0, 0
-_08027ABE:
- cmp r0, 0
- beq _08027ACA
- movs r0, 0x9
- bl SetFriendAreaActionMenuState
- b _08027AD8
-_08027ACA:
- bl sub_8027EB8
- ldr r0, _08027AE0
- ldr r0, [r0]
- ldr r0, [r0, 0x18]
- bl sub_808D31C
-_08027AD8:
- add sp, 0x4
- pop {r0}
- bx r0
- .align 2, 0
-_08027AE0: .4byte gUnknown_203B2BC
- thumb_func_end sub_8027A78
-
.align 2,0
diff --git a/asm/friend_list_menu.s b/asm/friend_list_menu.s
index 3db3dd9..c6a965a 100644
--- a/asm/friend_list_menu.s
+++ b/asm/friend_list_menu.s
@@ -5,12713 +5,6 @@
.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 sub_808D33C
- adds r1, r0, 0
- adds r0, r5, 0
- bl sub_808DA34
- ldr r2, [r6]
- ldr r0, [r2]
- cmp r0, 0x1
- bne _0801FBD0
- movs r1, 0xBE
- lsls r1, 1
- adds r0, r2, r1
- str r7, [r0]
- b _0801FBDE
- .align 2, 0
-_0801FBC0: .4byte gUnknown_203B27C
-_0801FBC4: .4byte gUnknown_202E5D8
-_0801FBC8: .4byte 0x00000155
-_0801FBCC: .4byte gUnknown_202E1C8
-_0801FBD0:
- movs r3, 0xBE
- lsls r3, 1
- adds r1, r2, r3
- movs r4, 0xB6
- lsls r4, 1
- adds r0, r2, r4
- str r0, [r1]
-_0801FBDE:
- ldr r0, _0801FC34
- bl GetDialogueSpriteDataPtr
- ldr r2, _0801FC38
- ldr r3, [r2]
- movs r4, 0xB6
- lsls r4, 1
- adds r1, r3, r4
- str r0, [r1]
- adds r4, 0x4
- adds r1, r3, r4
- ldr r0, [r0, 0x4]
- str r0, [r1]
- movs r1, 0xBC
- lsls r1, 1
- adds r0, r3, r1
- movs r1, 0
- strb r1, [r0]
- ldr r0, [r2]
- ldr r3, _0801FC3C
- adds r0, r3
- strb r1, [r0]
- ldr r0, [r2]
- adds r4, 0xA
- adds r0, r4
- strb r1, [r0]
- ldr r2, [r2]
- movs r0, 0xBA
- lsls r0, 1
- adds r1, r2, r0
- movs r0, 0x2
- strh r0, [r1]
- subs r3, 0x3
- adds r1, r2, r3
- movs r0, 0x8
- strh r0, [r1]
- movs r0, 0
- bl sub_801FDA8
- movs r0, 0x1
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_0801FC34: .4byte 0x00000155
-_0801FC38: .4byte gUnknown_203B27C
-_0801FC3C: .4byte 0x00000179
- thumb_func_end sub_801FB50
-
- thumb_func_start sub_801FC40
-sub_801FC40:
- push {lr}
- ldr r1, _0801FC5C
- ldr r0, [r1]
- ldr r0, [r0, 0x4]
- adds r2, r1, 0
- cmp r0, 0x22
- bls _0801FC50
- b _0801FD70
-_0801FC50:
- lsls r0, 2
- ldr r1, _0801FC60
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0801FC5C: .4byte gUnknown_203B27C
-_0801FC60: .4byte _0801FC64
- .align 2, 0
-_0801FC64:
- .4byte _0801FCF0
- .4byte _0801FCF0
- .4byte _0801FCF6
- .4byte _0801FD70
- .4byte _0801FD70
- .4byte _0801FD70
- .4byte _0801FD70
- .4byte _0801FCFC
- .4byte _0801FD02
- .4byte _0801FD70
- .4byte _0801FD70
- .4byte _0801FD70
- .4byte _0801FD70
- .4byte _0801FD50
- .4byte _0801FD70
- .4byte _0801FD08
- .4byte _0801FD08
- .4byte _0801FD0E
- .4byte _0801FD14
- .4byte _0801FD1A
- .4byte _0801FD70
- .4byte _0801FD20
- .4byte _0801FD20
- .4byte _0801FD26
- .4byte _0801FD2C
- .4byte _0801FD70
- .4byte _0801FD70
- .4byte _0801FD70
- .4byte _0801FD70
- .4byte _0801FD32
- .4byte _0801FD38
- .4byte _0801FD38
- .4byte _0801FD3E
- .4byte _0801FD44
- .4byte _0801FD4A
-_0801FCF0:
- bl sub_8021154
- b _0801FD74
-_0801FCF6:
- bl sub_80209AC
- b _0801FD74
-_0801FCFC:
- bl sub_80209FC
- b _0801FD74
-_0801FD02:
- bl sub_8020A34
- b _0801FD74
-_0801FD08:
- bl sub_8020A80
- b _0801FD74
-_0801FD0E:
- bl sub_8020B38
- b _0801FD74
-_0801FD14:
- bl sub_8020C2C
- b _0801FD74
-_0801FD1A:
- bl sub_8020C48
- b _0801FD74
-_0801FD20:
- bl sub_8020C64
- b _0801FD74
-_0801FD26:
- bl sub_8020CC0
- b _0801FD74
-_0801FD2C:
- bl sub_8020D74
- b _0801FD74
-_0801FD32:
- bl sub_8020D90
- b _0801FD74
-_0801FD38:
- bl sub_8020DCC
- b _0801FD74
-_0801FD3E:
- bl sub_8020EB4
- b _0801FD74
-_0801FD44:
- bl sub_80210C8
- b _0801FD74
-_0801FD4A:
- bl sub_80210E4
- b _0801FD74
-_0801FD50:
- ldr r0, [r2]
- ldrb r0, [r0, 0x15]
- cmp r0, 0x1
- bne _0801FD68
- ldr r0, _0801FD6C
- ldr r1, [r0]
- movs r0, 0x98
- lsls r0, 2
- adds r1, r0
- ldr r0, [r1]
- subs r0, 0x96
- str r0, [r1]
-_0801FD68:
- movs r0, 0x3
- b _0801FD76
- .align 2, 0
-_0801FD6C: .4byte gTeamInventory_203B460
-_0801FD70:
- bl sub_8021130
-_0801FD74:
- movs r0, 0
-_0801FD76:
- pop {r1}
- bx r1
- thumb_func_end sub_801FC40
-
- thumb_func_start sub_801FD7C
-sub_801FD7C:
- push {r4,lr}
- ldr r4, _0801FDA4
- ldr r0, [r4]
- cmp r0, 0
- beq _0801FD9C
- movs r1, 0xB6
- lsls r1, 1
- adds r0, r1
- ldr r0, [r0]
- bl CloseFile
- ldr r0, [r4]
- bl MemoryFree
- movs r0, 0
- str r0, [r4]
-_0801FD9C:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0801FDA4: .4byte gUnknown_203B27C
- thumb_func_end sub_801FD7C
-
- thumb_func_start sub_801FDA8
-sub_801FDA8:
- push {lr}
- ldr r1, _0801FDBC
- ldr r1, [r1]
- str r0, [r1, 0x4]
- bl sub_801FDC0
- bl sub_801FF28
- pop {r0}
- bx r0
- .align 2, 0
-_0801FDBC: .4byte gUnknown_203B27C
- thumb_func_end sub_801FDA8
-
- thumb_func_start sub_801FDC0
-sub_801FDC0:
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- ldr r4, _0801FDE8
- ldr r0, [r4]
- movs r5, 0xC0
- lsls r5, 1
- adds r0, r5
- bl sub_8006518
- ldr r0, [r4]
- ldr r1, [r0, 0x4]
- cmp r1, 0x11
- beq _0801FE38
- cmp r1, 0x11
- bgt _0801FDEC
- cmp r1, 0x2
- beq _0801FDF6
- b _0801FED4
- .align 2, 0
-_0801FDE8: .4byte gUnknown_203B27C
-_0801FDEC:
- cmp r1, 0x17
- beq _0801FE6C
- cmp r1, 0x20
- beq _0801FE88
- b _0801FED4
-_0801FDF6:
- adds r0, r5
- movs r1, 0x80
- strb r1, [r0]
- ldr r0, [r4]
- movs r2, 0xCC
- lsls r2, 1
- adds r0, r2
- strb r1, [r0]
- ldr r0, [r4]
- movs r3, 0xD8
- lsls r3, 1
- adds r0, r3
- strb r1, [r0]
- ldr r1, [r4]
- movs r6, 0xE4
- lsls r6, 1
- adds r1, r6
- ldr r0, _0801FE34
- ldm r0!, {r2,r3,r7}
- stm r1!, {r2,r3,r7}
- ldm r0!, {r2,r6,r7}
- stm r1!, {r2,r6,r7}
- bl ResetUnusedInputStruct
- ldr r0, [r4]
- adds r0, r5
- movs r1, 0x1
- movs r2, 0
- bl sub_800641C
- b _0801FF14
- .align 2, 0
-_0801FE34: .4byte gUnknown_80DC37C
-_0801FE38:
- bl sub_80205D0
- ldr r2, [r4]
- movs r0, 0xD8
- lsls r0, 1
- adds r2, r0
- ldr r1, _0801FE68
- ldm r1!, {r3,r5,r6}
- stm r2!, {r3,r5,r6}
- ldm r1!, {r3,r5,r7}
- stm r2!, {r3,r5,r7}
- ldr r1, [r4]
- adds r0, r1, r0
- adds r1, 0x7C
- bl sub_8012CAC
- bl ResetUnusedInputStruct
- ldr r0, [r4]
- movs r6, 0xC0
- lsls r6, 1
- adds r0, r6
- b _0801FEC2
- .align 2, 0
-_0801FE68: .4byte gUnknown_80DC334
-_0801FE6C:
- bl sub_802069C
- ldr r2, [r4]
- movs r0, 0xD8
- lsls r0, 1
- adds r2, r0
- ldr r1, _0801FE84
- ldm r1!, {r3,r6,r7}
- stm r2!, {r3,r6,r7}
- ldm r1!, {r3,r6,r7}
- stm r2!, {r3,r6,r7}
- b _0801FEB0
- .align 2, 0
-_0801FE84: .4byte gUnknown_80DC334
-_0801FE88:
- bl CreateGulpinLinkMenu
- ldr r1, [r4]
- movs r7, 0xCC
- lsls r7, 1
- adds r1, r7
- ldr r0, _0801FECC
- ldm r0!, {r2,r3,r6}
- stm r1!, {r2,r3,r6}
- ldm r0!, {r2,r3,r7}
- stm r1!, {r2,r3,r7}
- ldr r2, [r4]
- movs r0, 0xD8
- lsls r0, 1
- adds r2, r0
- ldr r1, _0801FED0
- ldm r1!, {r3,r6,r7}
- stm r2!, {r3,r6,r7}
- ldm r1!, {r3,r6,r7}
- stm r2!, {r3,r6,r7}
-_0801FEB0:
- ldr r1, [r4]
- adds r0, r1, r0
- adds r1, 0x7C
- bl sub_8012CAC
- bl ResetUnusedInputStruct
- ldr r0, [r4]
- adds r0, r5
-_0801FEC2:
- movs r1, 0x1
- movs r2, 0x1
- bl sub_800641C
- b _0801FF14
- .align 2, 0
-_0801FECC: .4byte gUnknown_80DC31C
-_0801FED0: .4byte gUnknown_80DC34C
-_0801FED4:
- ldr r5, _0801FF20
- mov r12, r5
- movs r6, 0xC0
- lsls r6, 1
- mov r8, r6
- ldr r4, _0801FF24
- movs r3, 0
- movs r2, 0x3
-_0801FEE4:
- mov r7, r12
- ldr r1, [r7]
- adds r1, r3
- add r1, r8
- adds r0, r4, 0
- ldm r0!, {r5-r7}
- stm r1!, {r5-r7}
- ldm r0!, {r5-r7}
- stm r1!, {r5-r7}
- adds r3, 0x18
- subs r2, 0x1
- cmp r2, 0
- bge _0801FEE4
- bl ResetUnusedInputStruct
- ldr r0, _0801FF20
- ldr r0, [r0]
- movs r1, 0xC0
- lsls r1, 1
- adds r0, r1
- movs r1, 0x1
- movs r2, 0x1
- bl sub_800641C
-_0801FF14:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0801FF20: .4byte gUnknown_203B27C
-_0801FF24: .4byte gUnknown_80DC31C
- thumb_func_end sub_801FDC0
-
- thumb_func_start sub_801FF28
-sub_801FF28:
- push {r4,r5,lr}
- sub sp, 0x14
- ldr r1, _0801FF44
- ldr r0, [r1]
- ldr r0, [r0, 0x4]
- adds r5, r1, 0
- cmp r0, 0x23
- bls _0801FF3A
- b _08020562
-_0801FF3A:
- lsls r0, 2
- ldr r1, _0801FF48
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0801FF44: .4byte gUnknown_203B27C
-_0801FF48: .4byte _0801FF4C
- .align 2, 0
-_0801FF4C:
- .4byte _0801FFDC
- .4byte _08020018
- .4byte _08020064
- .4byte _0802006C
- .4byte _08020090
- .4byte _080200B4
- .4byte _080200D8
- .4byte _080200FC
- .4byte _08020144
- .4byte _0802018C
- .4byte _080201B0
- .4byte _080201D4
- .4byte _080201F8
- .4byte _08020562
- .4byte _0802021C
- .4byte _08020240
- .4byte _0802024E
- .4byte _08020256
- .4byte _08020274
- .4byte _08020282
- .4byte _0802028E
- .4byte _080202B0
- .4byte _080202BE
- .4byte _080202C6
- .4byte _080202E4
- .4byte _08020304
- .4byte _08020344
- .4byte _080203B0
- .4byte _080203D4
- .4byte _0802038C
- .4byte _080203F8
- .4byte _08020428
- .4byte _08020434
- .4byte _08020460
- .4byte _08020478
- .4byte _08020500
-_0801FFDC:
- ldr r0, [r5]
- movs r4, 0x2
- str r4, [r0, 0x6C]
- bl CreateGulpinShopMenu
- ldr r5, [r5]
- str r4, [r5, 0x8]
- ldr r2, _08020014
- ldr r1, [r5]
- movs r0, 0x64
- muls r0, r1
- adds r0, r2
- ldr r0, [r0]
- ldr r2, [r5, 0x6C]
- adds r3, r5, 0
- adds r3, 0x7C
- adds r1, r5, 0
- adds r1, 0xBC
- str r1, [sp]
- movs r1, 0x4
- str r1, [sp, 0x4]
- movs r1, 0
- str r1, [sp, 0x8]
- movs r4, 0xBE
- lsls r4, 1
- adds r1, r5, r4
- b _0802004C
- .align 2, 0
-_08020014: .4byte gGulpinDialogue
-_08020018:
- bl CreateGulpinShopMenu
- ldr r0, _0802005C
- ldr r4, [r0]
- movs r0, 0x2
- str r0, [r4, 0x8]
- ldr r1, _08020060
- ldr r2, [r4]
- movs r0, 0x64
- muls r0, r2
- adds r1, 0x4
- adds r0, r1
- ldr r0, [r0]
- ldr r2, [r4, 0x6C]
- adds r3, r4, 0
- adds r3, 0x7C
- adds r1, r4, 0
- adds r1, 0xBC
- str r1, [sp]
- movs r1, 0x4
- str r1, [sp, 0x4]
- movs r1, 0
- str r1, [sp, 0x8]
- movs r5, 0xBE
- lsls r5, 1
- adds r1, r4, r5
-_0802004C:
- ldr r1, [r1]
- str r1, [sp, 0xC]
- movs r1, 0xC
- str r1, [sp, 0x10]
- movs r1, 0
- bl sub_8014248
- b _08020562
- .align 2, 0
-_0802005C: .4byte gUnknown_203B27C
-_08020060: .4byte gGulpinDialogue
-_08020064:
- movs r0, 0x3
- bl DrawTeamMoneyBox
- b _08020562
-_0802006C:
- ldr r2, [r5]
- movs r0, 0x1F
- str r0, [r2, 0x8]
- ldr r1, _0802008C
- ldr r3, [r2]
- movs r0, 0x64
- muls r0, r3
- adds r1, 0x8
- adds r0, r1
- ldr r0, [r0]
- movs r1, 0xBE
- lsls r1, 1
- adds r2, r1
- ldr r2, [r2]
- b _0802052C
- .align 2, 0
-_0802008C: .4byte gGulpinDialogue
-_08020090:
- ldr r2, [r5]
- movs r0, 0x1F
- str r0, [r2, 0x8]
- ldr r1, _080200B0
- ldr r3, [r2]
- movs r0, 0x64
- muls r0, r3
- adds r1, 0xC
- adds r0, r1
- ldr r0, [r0]
- movs r4, 0xBE
- lsls r4, 1
- adds r2, r4
- ldr r2, [r2]
- b _0802052C
- .align 2, 0
-_080200B0: .4byte gGulpinDialogue
-_080200B4:
- ldr r2, [r5]
- movs r0, 0x1F
- str r0, [r2, 0x8]
- ldr r1, _080200D4
- ldr r3, [r2]
- movs r0, 0x64
- muls r0, r3
- adds r1, 0x10
- adds r0, r1
- ldr r0, [r0]
- movs r5, 0xBE
- lsls r5, 1
- adds r2, r5
- ldr r2, [r2]
- b _0802052C
- .align 2, 0
-_080200D4: .4byte gGulpinDialogue
-_080200D8:
- ldr r2, [r5]
- movs r0, 0x1F
- str r0, [r2, 0x8]
- ldr r1, _080200F8
- ldr r3, [r2]
- movs r0, 0x64
- muls r0, r3
- adds r1, 0x14
- adds r0, r1
- ldr r0, [r0]
- movs r1, 0xBE
- lsls r1, 1
- adds r2, r1
- ldr r2, [r2]
- b _0802052C
- .align 2, 0
-_080200F8: .4byte gGulpinDialogue
-_080200FC:
- bl sub_8020900
- ldr r1, _0802013C
- ldr r0, _08020140
- ldr r4, [r0]
- ldr r2, [r4]
- movs r0, 0x64
- muls r0, r2
- adds r1, 0x18
- adds r0, r1
- ldr r0, [r0]
- adds r3, r4, 0
- adds r3, 0x7C
- adds r1, r4, 0
- adds r1, 0xBC
- str r1, [sp]
- movs r1, 0x4
- str r1, [sp, 0x4]
- movs r1, 0
- str r1, [sp, 0x8]
- movs r2, 0xBE
- lsls r2, 1
- adds r1, r4, r2
- ldr r1, [r1]
- str r1, [sp, 0xC]
- movs r1, 0xC
- str r1, [sp, 0x10]
- movs r1, 0
- movs r2, 0x10
- bl sub_8014248
- b _08020562
- .align 2, 0
-_0802013C: .4byte gGulpinDialogue
-_08020140: .4byte gUnknown_203B27C
-_08020144:
- bl sub_8020950
- ldr r1, _08020184
- ldr r0, _08020188
- ldr r4, [r0]
- ldr r2, [r4]
- movs r0, 0x64
- muls r0, r2
- adds r1, 0x54
- adds r0, r1
- ldr r0, [r0]
- adds r3, r4, 0
- adds r3, 0x7C
- adds r1, r4, 0
- adds r1, 0xBC
- str r1, [sp]
- movs r1, 0x4
- str r1, [sp, 0x4]
- movs r1, 0
- str r1, [sp, 0x8]
- movs r5, 0xBE
- lsls r5, 1
- adds r1, r4, r5
- ldr r1, [r1]
- str r1, [sp, 0xC]
- movs r1, 0xC
- str r1, [sp, 0x10]
- movs r1, 0
- movs r2, 0xD
- bl sub_8014248
- b _08020562
- .align 2, 0
-_08020184: .4byte gGulpinDialogue
-_08020188: .4byte gUnknown_203B27C
-_0802018C:
- ldr r2, [r5]
- movs r0, 0x1
- str r0, [r2, 0x8]
- ldr r1, _080201AC
- ldr r3, [r2]
- movs r0, 0x64
- muls r0, r3
- adds r1, 0x58
- adds r0, r1
- ldr r0, [r0]
- movs r1, 0xBE
- lsls r1, 1
- adds r2, r1
- ldr r2, [r2]
- b _0802052C
- .align 2, 0
-_080201AC: .4byte gGulpinDialogue
-_080201B0:
- ldr r2, [r5]
- movs r0, 0x1
- str r0, [r2, 0x8]
- ldr r1, _080201D0
- ldr r3, [r2]
- movs r0, 0x64
- muls r0, r3
- adds r1, 0x5C
- adds r0, r1
- ldr r0, [r0]
- movs r4, 0xBE
- lsls r4, 1
- adds r2, r4
- ldr r2, [r2]
- b _0802052C
- .align 2, 0
-_080201D0: .4byte gGulpinDialogue
-_080201D4:
- ldr r2, [r5]
- movs r0, 0x1
- str r0, [r2, 0x8]
- ldr r1, _080201F4
- ldr r3, [r2]
- movs r0, 0x64
- muls r0, r3
- adds r1, 0x60
- adds r0, r1
- ldr r0, [r0]
- movs r5, 0xBE
- lsls r5, 1
- adds r2, r5
- ldr r2, [r2]
- b _0802052C
- .align 2, 0
-_080201F4: .4byte gGulpinDialogue
-_080201F8:
- ldr r2, [r5]
- movs r0, 0xD
- str r0, [r2, 0x8]
- ldr r1, _08020218
- ldr r3, [r2]
- movs r0, 0x64
- muls r0, r3
- adds r1, 0x1C
- adds r0, r1
- ldr r0, [r0]
- movs r1, 0xBE
- lsls r1, 1
- adds r2, r1
- ldr r2, [r2]
- b _0802052C
- .align 2, 0
-_08020218: .4byte gGulpinDialogue
-_0802021C:
- ldr r2, [r5]
- movs r0, 0xF
- str r0, [r2, 0x8]
- ldr r1, _0802023C
- ldr r3, [r2]
- movs r0, 0x64
- muls r0, r3
- adds r1, 0x20
- adds r0, r1
- ldr r0, [r0]
- movs r4, 0xBE
- lsls r4, 1
- adds r2, r4
- ldr r2, [r2]
- b _0802052C
- .align 2, 0
-_0802023C: .4byte gGulpinDialogue
-_08020240:
- movs r0, 0x2
- movs r1, 0
- movs r2, 0
- movs r3, 0xA
- bl sub_8023868
- b _08020562
-_0802024E:
- movs r0, 0x1
- bl sub_8023B7C
- b _08020562
-_08020256:
- bl sub_8023DA4
- ldr r0, _08020270
- ldr r2, [r0]
- adds r0, r2, 0
- adds r0, 0xCC
- adds r1, r2, 0
- adds r1, 0x7C
- adds r3, r2, 0
- adds r3, 0xBC
- ldr r2, [r2, 0x70]
- b _0802044C
- .align 2, 0
-_08020270: .4byte gUnknown_203B27C
-_08020274:
- ldr r0, [r5]
- movs r5, 0xC
- ldrsh r0, [r0, r5]
- movs r1, 0x2
- bl sub_8024458
- b _08020562
-_08020282:
- ldr r0, [r5]
- movs r1, 0xC
- ldrsh r0, [r0, r1]
- bl sub_801BEEC
- b _08020562
-_0802028E:
- ldr r2, [r5]
- movs r0, 0x15
- str r0, [r2, 0x8]
- ldr r1, _080202AC
- ldr r3, [r2]
- movs r0, 0x64
- muls r0, r3
- adds r1, 0x24
- adds r0, r1
- ldr r0, [r0]
- movs r4, 0xBE
- lsls r4, 1
- adds r2, r4
- ldr r2, [r2]
- b _0802052C
- .align 2, 0
-_080202AC: .4byte gGulpinDialogue
-_080202B0:
- ldr r0, [r5]
- movs r5, 0xC
- ldrsh r0, [r0, r5]
- movs r1, 0
- bl sub_801F428
- b _08020562
-_080202BE:
- movs r0, 0x1
- bl sub_801F5F0
- b _08020562
-_080202C6:
- bl sub_801F700
- ldr r0, _080202E0
- ldr r2, [r0]
- adds r0, r2, 0
- adds r0, 0xCC
- adds r1, r2, 0
- adds r1, 0x7C
- adds r3, r2, 0
- adds r3, 0xBC
- ldr r2, [r2, 0x74]
- b _0802044C
- .align 2, 0
-_080202E0: .4byte gUnknown_203B27C
-_080202E4:
- ldr r0, [r5]
- ldrh r1, [r0, 0x1C]
- adds r0, 0x64
- strh r1, [r0]
- movs r2, 0x1
- adds r4, r5, 0
- movs r3, 0
-_080202F2:
- ldr r0, [r4]
- lsls r1, r2, 1
- adds r0, 0x64
- adds r0, r1
- strh r3, [r0]
- adds r2, 0x1
- cmp r2, 0x3
- ble _080202F2
- b _0802046E
-_08020304:
- ldr r1, [r5]
- adds r0, r1, 0
- adds r0, 0x24
- ldr r1, [r1, 0x10]
- adds r1, 0x2C
- bl sub_8094060
- ldr r1, [r5]
- movs r0, 0x10
- str r0, [r1, 0x8]
- ldr r0, _0802033C
- ldrh r1, [r1, 0x1E]
- bl sub_8092C84
- ldr r1, _08020340
- ldr r2, [r5]
- ldr r3, [r2]
- movs r0, 0x64
- muls r0, r3
- adds r1, 0x28
- adds r0, r1
- ldr r0, [r0]
- movs r1, 0xBE
- lsls r1, 1
- adds r2, r1
- ldr r2, [r2]
- b _0802052C
- .align 2, 0
-_0802033C: .4byte gAvailablePokemonNames
-_08020340: .4byte gGulpinDialogue
-_08020344:
- ldr r1, [r5]
- adds r0, r1, 0
- adds r0, 0x24
- ldr r1, [r1, 0x10]
- adds r1, 0x2C
- bl sub_8094060
- ldr r3, [r5]
- movs r0, 0x10
- str r0, [r3, 0x8]
- ldrb r0, [r3, 0x14]
- cmp r0, 0
- beq _08020370
- ldr r1, _0802036C
- ldr r2, [r3]
- movs r0, 0x64
- muls r0, r2
- adds r1, 0x38
- b _08020520
- .align 2, 0
-_0802036C: .4byte gGulpinDialogue
-_08020370:
- ldr r1, _08020388
- ldr r2, [r3]
- movs r0, 0x64
- muls r0, r2
- adds r1, 0x34
- adds r0, r1
- ldr r0, [r0]
- movs r4, 0xBE
- lsls r4, 1
- adds r1, r3, r4
- b _0802052A
- .align 2, 0
-_08020388: .4byte gGulpinDialogue
-_0802038C:
- ldr r2, [r5]
- ldr r0, [r2]
- cmp r0, 0
- bne _080203A2
- movs r5, 0xC
- ldrsh r1, [r2, r5]
- adds r2, 0x24
- movs r0, 0
- bl DisplayGulpinDialogueSprite
- b _08020562
-_080203A2:
- movs r0, 0xC
- ldrsh r1, [r2, r0]
- adds r2, 0x24
- movs r0, 0x1
- bl DisplayGulpinDialogueSprite
- b _08020562
-_080203B0:
- ldr r2, [r5]
- movs r0, 0x10
- str r0, [r2, 0x8]
- ldr r1, _080203D0
- ldr r3, [r2]
- movs r0, 0x64
- muls r0, r3
- adds r1, 0x3C
- adds r0, r1
- ldr r0, [r0]
- movs r1, 0xBE
- lsls r1, 1
- adds r2, r1
- ldr r2, [r2]
- b _0802052C
- .align 2, 0
-_080203D0: .4byte gGulpinDialogue
-_080203D4:
- ldr r2, [r5]
- movs r0, 0x10
- str r0, [r2, 0x8]
- ldr r1, _080203F4
- ldr r3, [r2]
- movs r0, 0x64
- muls r0, r3
- adds r1, 0x40
- adds r0, r1
- ldr r0, [r0]
- movs r4, 0xBE
- lsls r4, 1
- adds r2, r4
- ldr r2, [r2]
- b _0802052C
- .align 2, 0
-_080203F4: .4byte gGulpinDialogue
-_080203F8:
- ldr r1, [r5]
- adds r0, r1, 0
- adds r0, 0x24
- ldr r1, [r1, 0x10]
- adds r1, 0x2C
- bl sub_809401C
- ldr r0, [r5]
- movs r5, 0xC
- ldrsh r1, [r0, r5]
- adds r2, r0, 0
- adds r2, 0x24
- ldrb r3, [r0, 0x15]
- ldr r0, _08020424
- str r0, [sp]
- movs r0, 0
- str r0, [sp, 0x4]
- movs r0, 0x1
- bl sub_801EE10
- b _08020562
- .align 2, 0
-_08020424: .4byte gUnknown_80DC394
-_08020428:
- ldr r0, [r5]
- ldrb r1, [r0, 0x15]
- movs r0, 0x1
- bl sub_801F1B0
- b _08020562
-_08020434:
- movs r0, 0
- bl sub_801F280
- ldr r0, _0802045C
- ldr r2, [r0]
- adds r0, r2, 0
- adds r0, 0xCC
- adds r1, r2, 0
- adds r1, 0x7C
- adds r3, r2, 0
- adds r3, 0xBC
- ldr r2, [r2, 0x78]
-_0802044C:
- str r2, [sp]
- movs r2, 0x2
- str r2, [sp, 0x4]
- movs r2, 0
- bl sub_8012D60
- b _08020562
- .align 2, 0
-_0802045C: .4byte gUnknown_203B27C
-_08020460:
- ldr r2, [r5]
- ldr r0, [r2, 0x18]
- adds r1, r2, 0
- adds r1, 0x24
- adds r2, 0x64
- bl sub_8093560
-_0802046E:
- ldr r0, [r5]
- adds r0, 0x64
- bl sub_801F808
- b _08020562
-_08020478:
- bl sub_80208B0
- ldr r0, _080204B8
- ldr r4, _080204BC
- ldr r1, [r4]
- ldrh r1, [r1, 0x20]
- bl sub_8092C84
- ldr r4, [r4]
- ldrb r5, [r4, 0x14]
- cmp r5, 0
- beq _080204C4
- ldr r1, _080204C0
- ldr r2, [r4]
- movs r0, 0x64
- muls r0, r2
- adds r1, 0x48
- adds r0, r1
- ldr r0, [r0]
- adds r3, r4, 0
- adds r3, 0x7C
- adds r1, r4, 0
- adds r1, 0xBC
- str r1, [sp]
- movs r1, 0x4
- str r1, [sp, 0x4]
- movs r1, 0
- str r1, [sp, 0x8]
- movs r2, 0xBE
- lsls r2, 1
- adds r1, r4, r2
- b _080204E8
- .align 2, 0
-_080204B8: .4byte gUnknown_202DFE8
-_080204BC: .4byte gUnknown_203B27C
-_080204C0: .4byte gGulpinDialogue
-_080204C4:
- ldr r1, _080204FC
- ldr r2, [r4]
- movs r0, 0x64
- muls r0, r2
- adds r1, 0x44
- adds r0, r1
- ldr r0, [r0]
- adds r3, r4, 0
- adds r3, 0x7C
- adds r1, r4, 0
- adds r1, 0xBC
- str r1, [sp]
- movs r1, 0x4
- str r1, [sp, 0x4]
- str r5, [sp, 0x8]
- movs r5, 0xBE
- lsls r5, 1
- adds r1, r4, r5
-_080204E8:
- ldr r1, [r1]
- str r1, [sp, 0xC]
- movs r1, 0xC
- str r1, [sp, 0x10]
- movs r1, 0
- movs r2, 0x11
- bl sub_8014248
- b _08020562
- .align 2, 0
-_080204FC: .4byte gGulpinDialogue
-_08020500:
- ldr r1, [r5]
- movs r0, 0x1F
- str r0, [r1, 0x8]
- ldr r0, _08020538
- ldrh r1, [r1, 0x20]
- bl sub_8092C84
- ldr r3, [r5]
- ldrb r0, [r3, 0x14]
- cmp r0, 0
- beq _08020544
- ldr r1, _0802053C
- ldr r2, [r3]
- movs r0, 0x64
- muls r0, r2
- adds r1, 0x50
-_08020520:
- adds r0, r1
- ldr r0, [r0]
- movs r2, 0xBE
- lsls r2, 1
- adds r1, r3, r2
-_0802052A:
- ldr r2, [r1]
-_0802052C:
- ldr r3, _08020540
- movs r1, 0
- bl sub_80141B4
- b _08020562
- .align 2, 0
-_08020538: .4byte gUnknown_202DFE8
-_0802053C: .4byte gGulpinDialogue
-_08020540: .4byte 0x0000010d
-_08020544:
- ldr r1, _0802056C
- ldr r2, [r3]
- movs r0, 0x64
- muls r0, r2
- adds r1, 0x4C
- adds r0, r1
- ldr r0, [r0]
- movs r4, 0xBE
- lsls r4, 1
- adds r1, r3, r4
- ldr r2, [r1]
- ldr r3, _08020570
- movs r1, 0
- bl sub_80141B4
-_08020562:
- add sp, 0x14
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0802056C: .4byte gGulpinDialogue
-_08020570: .4byte 0x0000010d
- thumb_func_end sub_801FF28
-
- thumb_func_start CreateGulpinShopMenu
-CreateGulpinShopMenu:
- push {r4,lr}
- ldr r4, _080205C0
- ldr r0, [r4]
- adds r0, 0xBC
- movs r1, 0
- movs r2, 0x10
- bl MemoryFill16
- ldr r4, [r4]
- movs r3, 0
- ldr r0, _080205C4
- str r0, [r4, 0x7C]
- adds r1, r4, 0
- adds r1, 0x80
- movs r0, 0x2
- str r0, [r1]
- movs r2, 0x1
- adds r1, 0x4
- ldr r0, _080205C8
- str r0, [r1]
- adds r1, 0x4
- movs r0, 0xB
- str r0, [r1]
- adds r1, 0x4
- ldr r0, _080205CC
- ldr r0, [r0]
- str r0, [r1]
- adds r0, r4, 0
- adds r0, 0x90
- str r2, [r0]
- adds r0, 0x4
- str r3, [r0]
- adds r0, 0x4
- str r2, [r0]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080205C0: .4byte gUnknown_203B27C
-_080205C4: .4byte gGulpinProceed
-_080205C8: .4byte gGulpinInfo
-_080205CC: .4byte gUnknown_80D4934
- thumb_func_end CreateGulpinShopMenu
-
- thumb_func_start sub_80205D0
-sub_80205D0:
- push {r4-r7,lr}
- ldr r4, _08020660
- ldr r0, [r4]
- adds r0, 0xBC
- movs r1, 0
- movs r2, 0x10
- bl MemoryFill16
- ldr r0, [r4]
- mov r12, r0
- movs r5, 0
- ldr r0, _08020664
- mov r1, r12
- str r0, [r1, 0x7C]
- mov r2, r12
- adds r2, 0x80
- movs r0, 0x4
- str r0, [r2]
- movs r3, 0x1
- adds r1, 0x84
- ldr r0, _08020668
- str r0, [r1]
- adds r1, 0x4
- movs r0, 0xB
- str r0, [r1]
- adds r1, 0x4
- ldr r0, _0802066C
- str r0, [r1]
- adds r1, 0x4
- movs r0, 0xC
- str r0, [r1]
- movs r6, 0x3
- adds r1, 0x4
- ldr r0, _08020670
- str r0, [r1]
- mov r0, r12
- adds r0, 0x98
- str r6, [r0]
- movs r6, 0x4
- adds r0, 0x4
- str r5, [r0]
- adds r0, 0x4
- str r3, [r0]
- mov r3, r12
- adds r3, 0xBC
-_0802062A:
- ldrh r0, [r3]
- cmp r0, 0
- bne _0802063A
- ldr r1, [r2]
- mov r7, r12
- ldr r0, [r7, 0x70]
- cmp r1, r0
- beq _08020696
-_0802063A:
- adds r2, 0x8
- adds r3, 0x2
- adds r5, 0x1
- cmp r5, r6
- blt _0802062A
- movs r5, 0
- cmp r5, r6
- bge _08020696
- ldr r1, [r4]
- adds r0, r1, 0
- adds r0, 0xBC
- ldrh r0, [r0]
- cmp r0, 0
- bne _08020674
- adds r0, r1, 0
- adds r0, 0x80
- ldr r0, [r0]
- str r0, [r1, 0x70]
- b _08020696
- .align 2, 0
-_08020660: .4byte gUnknown_203B27C
-_08020664: .4byte gUnknown_80DC3D8
-_08020668: .4byte gUnknown_80DC3E0
-_0802066C: .4byte gUnknown_80DC3E8
-_08020670: .4byte gUnknown_80DC3F4
-_08020674:
- adds r5, 0x1
- cmp r5, r6
- bge _08020696
- ldr r2, [r4]
- lsls r0, r5, 1
- adds r1, r2, 0
- adds r1, 0xBC
- adds r1, r0
- ldrh r0, [r1]
- cmp r0, 0
- bne _08020674
- lsls r0, r5, 3
- adds r1, r2, 0
- adds r1, 0x80
- adds r1, r0
- ldr r0, [r1]
- str r0, [r2, 0x70]
-_08020696:
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_80205D0
-
- thumb_func_start sub_802069C
-sub_802069C:
- push {r4-r7,lr}
- ldr r4, _08020718
- ldr r0, [r4]
- adds r0, 0xBC
- movs r1, 0
- movs r2, 0x10
- bl MemoryFill16
- ldr r0, [r4]
- mov r12, r0
- movs r5, 0
- ldr r0, _0802071C
- mov r1, r12
- str r0, [r1, 0x7C]
- mov r3, r12
- adds r3, 0x80
- movs r0, 0x3
- str r0, [r3]
- movs r2, 0x1
- adds r1, 0x84
- ldr r0, _08020720
- ldr r0, [r0]
- str r0, [r1]
- adds r1, 0x4
- movs r0, 0xB
- str r0, [r1]
- movs r6, 0x2
- mov r0, r12
- adds r0, 0x8C
- str r5, [r0]
- adds r0, 0x4
- str r2, [r0]
- mov r2, r12
- adds r2, 0xBC
-_080206E0:
- ldrh r0, [r2]
- cmp r0, 0
- bne _080206F0
- ldr r1, [r3]
- mov r7, r12
- ldr r0, [r7, 0x74]
- cmp r1, r0
- beq _08020746
-_080206F0:
- adds r3, 0x8
- adds r2, 0x2
- adds r5, 0x1
- cmp r5, r6
- blt _080206E0
- movs r5, 0
- cmp r5, r6
- bge _08020746
- ldr r1, [r4]
- adds r0, r1, 0
- adds r0, 0xBC
- ldrh r0, [r0]
- cmp r0, 0
- bne _08020724
- adds r0, r1, 0
- adds r0, 0x80
- ldr r0, [r0]
- str r0, [r1, 0x74]
- b _08020746
- .align 2, 0
-_08020718: .4byte gUnknown_203B27C
-_0802071C: .4byte gUnknown_80DC3F4
-_08020720: .4byte gUnknown_80D4970
-_08020724:
- adds r5, 0x1
- cmp r5, r6
- bge _08020746
- ldr r2, [r4]
- lsls r0, r5, 1
- adds r1, r2, 0
- adds r1, 0xBC
- adds r1, r0
- ldrh r0, [r1]
- cmp r0, 0
- bne _08020724
- lsls r0, r5, 3
- adds r1, r2, 0
- adds r1, 0x80
- adds r1, r0
- ldr r0, [r1]
- str r0, [r2, 0x74]
-_08020746:
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_802069C
-
- thumb_func_start CreateGulpinLinkMenu
-CreateGulpinLinkMenu:
- push {r4-r7,lr}
- movs r7, 0
- ldr r4, _08020780
- ldr r0, [r4]
- adds r0, 0xBC
- movs r1, 0
- movs r2, 0x10
- bl MemoryFill16
- ldr r1, [r4]
- ldrb r0, [r1, 0x16]
- cmp r0, 0
- beq _0802079C
- ldr r0, [r1, 0x18]
- adds r1, 0x24
- bl sub_80932E0
- lsls r0, 24
- cmp r0, 0
- beq _08020788
- ldr r0, [r4]
- ldr r1, _08020784
- str r1, [r0, 0x7C]
- adds r0, 0x80
- movs r1, 0x6
- b _08020792
- .align 2, 0
-_08020780: .4byte gUnknown_203B27C
-_08020784: .4byte gGulpinDeselect
-_08020788:
- ldr r0, [r4]
- ldr r1, _08020798
- str r1, [r0, 0x7C]
- adds r0, 0x80
- movs r1, 0x5
-_08020792:
- str r1, [r0]
- mov r12, r4
- b _080207CA
- .align 2, 0
-_08020798: .4byte gGulpinSet
-_0802079C:
- ldr r0, [r1, 0x18]
- adds r1, 0x24
- bl sub_80932FC
- lsls r0, 24
- cmp r0, 0
- beq _080207B4
- ldr r1, [r4]
- ldr r0, _080207B0
- b _080207B8
- .align 2, 0
-_080207B0: .4byte gGulpinDeselect
-_080207B4:
- ldr r1, [r4]
- ldr r0, _0802086C
-_080207B8:
- str r0, [r1, 0x7C]
- ldr r2, _08020870
- ldr r0, [r2]
- lsls r1, r7, 3
- adds r0, 0x80
- adds r0, r1
- movs r1, 0x7
- str r1, [r0]
- mov r12, r2
-_080207CA:
- adds r7, 0x1
- mov r0, r12
- ldr r4, [r0]
- lsls r1, r7, 3
- adds r3, r4, 0
- adds r3, 0x7C
- adds r2, r3, r1
- ldr r0, _08020874
- str r0, [r2]
- adds r6, r4, 0
- adds r6, 0x80
- adds r1, r6, r1
- movs r0, 0x8
- str r0, [r1]
- adds r7, 0x1
- lsls r1, r7, 3
- adds r2, r3, r1
- ldr r0, _08020878
- str r0, [r2]
- adds r1, r6, r1
- movs r0, 0x9
- str r0, [r1]
- adds r7, 0x1
- lsls r1, r7, 3
- adds r2, r3, r1
- ldr r0, _0802087C
- str r0, [r2]
- adds r1, r6, r1
- movs r0, 0xA
- str r0, [r1]
- adds r7, 0x1
- lsls r1, r7, 3
- adds r2, r3, r1
- ldr r0, _08020880
- ldr r0, [r0]
- str r0, [r2]
- adds r1, r6, r1
- movs r0, 0xB
- str r0, [r1]
- adds r7, 0x1
- lsls r1, r7, 3
- adds r3, r1
- movs r0, 0
- str r0, [r3]
- adds r1, r6, r1
- movs r0, 0x1
- str r0, [r1]
- movs r3, 0
- cmp r3, r7
- bge _0802084C
- adds r5, r4, 0
- adds r4, 0xBC
- adds r2, r6, 0
-_08020834:
- ldrh r0, [r4]
- cmp r0, 0
- bne _08020842
- ldr r1, [r2]
- ldr r0, [r5, 0x78]
- cmp r1, r0
- beq _080208A8
-_08020842:
- adds r4, 0x2
- adds r2, 0x8
- adds r3, 0x1
- cmp r3, r7
- blt _08020834
-_0802084C:
- movs r3, 0
- cmp r3, r7
- bge _080208A8
- mov r0, r12
- ldr r1, [r0]
- adds r0, r1, 0
- adds r0, 0xBC
- ldrh r0, [r0]
- cmp r0, 0
- bne _08020884
- adds r0, r1, 0
- adds r0, 0x80
- ldr r0, [r0]
- str r0, [r1, 0x78]
- b _080208A8
- .align 2, 0
-_0802086C: .4byte gGulpinSet
-_08020870: .4byte gUnknown_203B27C
-_08020874: .4byte gGulpinLink
-_08020878: .4byte gGulpinDelink
-_0802087C: .4byte gGulpinForget
-_08020880: .4byte gUnknown_80D4970
-_08020884:
- adds r3, 0x1
- cmp r3, r7
- bge _080208A8
- mov r0, r12
- ldr r2, [r0]
- lsls r0, r3, 1
- adds r1, r2, 0
- adds r1, 0xBC
- adds r1, r0
- ldrh r0, [r1]
- cmp r0, 0
- bne _08020884
- lsls r0, r3, 3
- adds r1, r2, 0
- adds r1, 0x80
- adds r1, r0
- ldr r0, [r1]
- str r0, [r2, 0x78]
-_080208A8:
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end CreateGulpinLinkMenu
-
- thumb_func_start sub_80208B0
-sub_80208B0:
- push {r4,lr}
- ldr r4, _080208F4
- ldr r0, [r4]
- adds r0, 0xBC
- movs r1, 0
- movs r2, 0x10
- bl MemoryFill16
- ldr r4, [r4]
- movs r3, 0
- ldr r0, _080208F8
- ldr r0, [r0]
- str r0, [r4, 0x7C]
- adds r1, r4, 0
- adds r1, 0x80
- movs r0, 0x10
- str r0, [r1]
- movs r2, 0x1
- adds r1, 0x4
- ldr r0, _080208FC
- ldr r0, [r0]
- str r0, [r1]
- adds r1, 0x4
- movs r0, 0x11
- str r0, [r1]
- adds r0, r4, 0
- adds r0, 0x8C
- str r3, [r0]
- adds r0, 0x4
- str r2, [r0]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080208F4: .4byte gUnknown_203B27C
-_080208F8: .4byte gUnknown_80D4920
-_080208FC: .4byte gUnknown_80D4928
- thumb_func_end sub_80208B0
-
- thumb_func_start sub_8020900
-sub_8020900:
- push {r4,lr}
- ldr r4, _08020944
- ldr r0, [r4]
- adds r0, 0xBC
- movs r1, 0
- movs r2, 0x10
- bl MemoryFill16
- ldr r3, [r4]
- movs r2, 0
- ldr r0, _08020948
- ldr r0, [r0]
- str r0, [r3, 0x7C]
- adds r1, r3, 0
- adds r1, 0x80
- movs r0, 0x10
- str r0, [r1]
- adds r1, 0x4
- ldr r0, _0802094C
- ldr r0, [r0]
- str r0, [r1]
- adds r1, 0x4
- movs r0, 0x11
- str r0, [r1]
- adds r0, r3, 0
- adds r0, 0x8C
- str r2, [r0]
- adds r1, 0x8
- movs r0, 0x1
- negs r0, r0
- str r0, [r1]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08020944: .4byte gUnknown_203B27C
-_08020948: .4byte gUnknown_80D4920
-_0802094C: .4byte gUnknown_80D4928
- thumb_func_end sub_8020900
-
- thumb_func_start sub_8020950
-sub_8020950:
- push {r4,lr}
- ldr r4, _0802099C
- ldr r0, [r4]
- adds r0, 0xBC
- movs r1, 0
- movs r2, 0x10
- bl MemoryFill16
- ldr r4, [r4]
- movs r3, 0
- ldr r0, _080209A0
- str r0, [r4, 0x7C]
- adds r1, r4, 0
- adds r1, 0x80
- movs r0, 0xD
- str r0, [r1]
- movs r2, 0x1
- adds r1, 0x4
- ldr r0, _080209A4
- str r0, [r1]
- adds r1, 0x4
- movs r0, 0xE
- str r0, [r1]
- adds r1, 0x4
- ldr r0, _080209A8
- str r0, [r1]
- adds r1, 0x4
- movs r0, 0xF
- str r0, [r1]
- adds r0, r4, 0
- adds r0, 0x94
- str r3, [r0]
- adds r0, 0x4
- str r2, [r0]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0802099C: .4byte gUnknown_203B27C
-_080209A0: .4byte gUnknown_80DC428
-_080209A4: .4byte gUnknown_80DC438
-_080209A8: .4byte gUnknown_80DC448
- thumb_func_end sub_8020950
-
- thumb_func_start sub_80209AC
-sub_80209AC:
- push {lr}
- sub sp, 0x4
- mov r0, sp
- bl sub_80144A4
- cmp r0, 0
- bne _080209F4
- ldr r0, _080209D4
- ldr r1, [r0]
- ldr r0, [sp]
- str r0, [r1, 0x6C]
- ldr r0, [sp]
- cmp r0, 0x2
- beq _080209DE
- cmp r0, 0x2
- bgt _080209D8
- cmp r0, 0x1
- beq _080209EE
- b _080209F4
- .align 2, 0
-_080209D4: .4byte gUnknown_203B27C
-_080209D8:
- cmp r0, 0xB
- beq _080209E6
- b _080209F4
-_080209DE:
- movs r0, 0xE
- bl sub_801FDA8
- b _080209F4
-_080209E6:
- movs r0, 0x8
- bl sub_801FDA8
- b _080209F4
-_080209EE:
- movs r0, 0xC
- bl sub_801FDA8
-_080209F4:
- add sp, 0x4
- pop {r0}
- bx r0
- thumb_func_end sub_80209AC
-
- thumb_func_start sub_80209FC
-sub_80209FC:
- push {lr}
- sub sp, 0x4
- mov r0, sp
- bl sub_80144A4
- cmp r0, 0
- bne _08020A2E
- ldr r0, [sp]
- cmp r0, 0x10
- beq _08020A20
- cmp r0, 0x10
- bgt _08020A1A
- cmp r0, 0x1
- beq _08020A28
- b _08020A2E
-_08020A1A:
- cmp r0, 0x11
- beq _08020A28
- b _08020A2E
-_08020A20:
- movs r0, 0xE
- bl sub_801FDA8
- b _08020A2E
-_08020A28:
- movs r0, 0xC
- bl sub_801FDA8
-_08020A2E:
- add sp, 0x4
- pop {r0}
- bx r0
- thumb_func_end sub_80209FC
-
- thumb_func_start sub_8020A34
-sub_8020A34:
- push {lr}
- sub sp, 0x4
- mov r0, sp
- bl sub_80144A4
- cmp r0, 0
- bne _08020A7A
- ldr r0, [sp]
- cmp r0, 0xD
- beq _08020A5C
- cmp r0, 0xD
- bgt _08020A52
- cmp r0, 0x1
- beq _08020A74
- b _08020A7A
-_08020A52:
- cmp r0, 0xE
- beq _08020A64
- cmp r0, 0xF
- beq _08020A6C
- b _08020A7A
-_08020A5C:
- movs r0, 0x9
- bl sub_801FDA8
- b _08020A7A
-_08020A64:
- movs r0, 0xA
- bl sub_801FDA8
- b _08020A7A
-_08020A6C:
- movs r0, 0xB
- bl sub_801FDA8
- b _08020A7A
-_08020A74:
- movs r0, 0x1
- bl sub_801FDA8
-_08020A7A:
- add sp, 0x4
- pop {r0}
- bx r0
- thumb_func_end sub_8020A34
-
- thumb_func_start sub_8020A80
-sub_8020A80:
- push {r4,lr}
- movs r0, 0x1
- bl sub_8023A94
- cmp r0, 0x4
- bhi _08020B32
- lsls r0, 2
- ldr r1, _08020A98
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08020A98: .4byte _08020A9C
- .align 2, 0
-_08020A9C:
- .4byte _08020B32
- .4byte _08020B32
- .4byte _08020B28
- .4byte _08020AB0
- .4byte _08020AEC
-_08020AB0:
- bl sub_8023B44
- ldr r4, _08020AE0
- ldr r1, [r4]
- strh r0, [r1, 0xC]
- ldr r3, _08020AE4
- movs r0, 0xC
- ldrsh r2, [r1, r0]
- movs r0, 0x58
- muls r2, r0
- ldr r0, [r3]
- adds r0, r2
- str r0, [r1, 0x10]
- ldrb r0, [r0, 0x2]
- strb r0, [r1, 0x16]
- ldr r0, _08020AE8
- ldr r1, [r4]
- ldr r1, [r1, 0x10]
- bl sub_808DA34
- movs r0, 0x11
- bl sub_801FDA8
- b _08020B32
- .align 2, 0
-_08020AE0: .4byte gUnknown_203B27C
-_08020AE4: .4byte gRecruitedPokemonRef
-_08020AE8: .4byte gUnknown_202E128
-_08020AEC:
- bl sub_8023B44
- ldr r4, _08020B1C
- ldr r1, [r4]
- strh r0, [r1, 0xC]
- ldr r3, _08020B20
- movs r0, 0xC
- ldrsh r2, [r1, r0]
- movs r0, 0x58
- muls r2, r0
- ldr r0, [r3]
- adds r0, r2
- str r0, [r1, 0x10]
- ldrb r0, [r0, 0x2]
- strb r0, [r1, 0x16]
- ldr r0, _08020B24
- ldr r1, [r4]
- ldr r1, [r1, 0x10]
- bl sub_808DA34
- movs r0, 0x12
- bl sub_801FDA8
- b _08020B32
- .align 2, 0
-_08020B1C: .4byte gUnknown_203B27C
-_08020B20: .4byte gRecruitedPokemonRef
-_08020B24: .4byte gUnknown_202E128
-_08020B28:
- bl sub_8023C60
- movs r0, 0x7
- bl sub_801FDA8
-_08020B32:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_8020A80
-
- thumb_func_start sub_8020B38
-sub_8020B38:
- push {r4,lr}
- sub sp, 0x4
- movs r0, 0
- str r0, [sp]
- bl sub_8023A94
- ldr r4, _08020B7C
- ldr r0, [r4]
- adds r0, 0xCC
- bl sub_8012FD8
- lsls r0, 24
- cmp r0, 0
- bne _08020B68
- ldr r0, [r4]
- adds r0, 0xCC
- mov r1, sp
- bl sub_8013114
- ldr r1, [sp]
- cmp r1, 0x1
- beq _08020B68
- ldr r0, [r4]
- str r1, [r0, 0x70]
-_08020B68:
- ldr r0, [sp]
- subs r0, 0x1
- cmp r0, 0x10
- bhi _08020C24
- lsls r0, 2
- ldr r1, _08020B80
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08020B7C: .4byte gUnknown_203B27C
-_08020B80: .4byte _08020B84
- .align 2, 0
-_08020B84:
- .4byte _08020BC8
- .4byte _08020C24
- .4byte _08020BD0
- .4byte _08020C0E
- .4byte _08020C24
- .4byte _08020C24
- .4byte _08020C24
- .4byte _08020C24
- .4byte _08020C24
- .4byte _08020C24
- .4byte _08020C16
- .4byte _08020C1E
- .4byte _08020C24
- .4byte _08020C24
- .4byte _08020C24
- .4byte _08020C24
- .4byte _08020BC8
-_08020BC8:
- movs r0, 0x10
- bl sub_801FDA8
- b _08020C24
-_08020BD0:
- ldr r0, _08020BF0
- ldr r0, [r0]
- ldr r0, [r0, 0x10]
- movs r1, 0x8
- ldrsh r0, [r0, r1]
- bl GetBaseSpeciesNoUnown
- lsls r0, 16
- movs r1, 0xCF
- lsls r1, 17
- cmp r0, r1
- bne _08020BF4
- movs r0, 0x1C
- bl sub_801FDA8
- b _08020C24
- .align 2, 0
-_08020BF0: .4byte gUnknown_203B27C
-_08020BF4:
- bl sub_8021178
- lsls r0, 24
- cmp r0, 0
- beq _08020C06
- movs r0, 0x1B
- bl sub_801FDA8
- b _08020C24
-_08020C06:
- movs r0, 0x14
- bl sub_801FDA8
- b _08020C24
-_08020C0E:
- movs r0, 0x1E
- bl sub_801FDA8
- b _08020C24
-_08020C16:
- movs r0, 0x12
- bl sub_801FDA8
- b _08020C24
-_08020C1E:
- movs r0, 0x13
- bl sub_801FDA8
-_08020C24:
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_8020B38
-
- thumb_func_start sub_8020C2C
-sub_8020C2C:
- push {lr}
- bl sub_80244E4
- cmp r0, 0x1
- bls _08020C44
- cmp r0, 0x3
- bhi _08020C44
- bl sub_802453C
- movs r0, 0x10
- bl sub_801FDA8
-_08020C44:
- pop {r0}
- bx r0
- thumb_func_end sub_8020C2C
-
- thumb_func_start sub_8020C48
-sub_8020C48:
- push {lr}
- bl sub_801BF48
- cmp r0, 0x1
- bls _08020C60
- cmp r0, 0x3
- bhi _08020C60
- bl sub_801BF98
- movs r0, 0x10
- bl sub_801FDA8
-_08020C60:
- pop {r0}
- bx r0
- thumb_func_end sub_8020C48
-
- thumb_func_start sub_8020C64
-sub_8020C64:
- push {lr}
- movs r0, 0x1
- bl sub_801F520
- cmp r0, 0x3
- beq _08020C80
- cmp r0, 0x3
- bhi _08020C7A
- cmp r0, 0x2
- beq _08020CB0
- b _08020CBA
-_08020C7A:
- cmp r0, 0x4
- beq _08020C98
- b _08020CBA
-_08020C80:
- bl sub_801F5B4
- ldr r1, _08020C94
- ldr r1, [r1]
- strh r0, [r1, 0x1C]
- strh r0, [r1, 0x1E]
- movs r0, 0x17
- bl sub_801FDA8
- b _08020CBA
- .align 2, 0
-_08020C94: .4byte gUnknown_203B27C
-_08020C98:
- bl sub_801F5B4
- ldr r1, _08020CAC
- ldr r1, [r1]
- strh r0, [r1, 0x1C]
- strh r0, [r1, 0x1E]
- movs r0, 0x18
- bl sub_801FDA8
- b _08020CBA
- .align 2, 0
-_08020CAC: .4byte gUnknown_203B27C
-_08020CB0:
- bl sub_801F63C
- movs r0, 0x10
- bl sub_801FDA8
-_08020CBA:
- pop {r0}
- bx r0
- thumb_func_end sub_8020C64
-
- thumb_func_start sub_8020CC0
-sub_8020CC0:
- push {r4-r6,lr}
- sub sp, 0x4
- movs r0, 0
- str r0, [sp]
- bl sub_801F520
- ldr r4, _08020D00
- ldr r0, [r4]
- adds r0, 0xCC
- bl sub_8012FD8
- lsls r0, 24
- cmp r0, 0
- bne _08020CF0
- ldr r0, [r4]
- adds r0, 0xCC
- mov r1, sp
- bl sub_8013114
- ldr r1, [sp]
- cmp r1, 0x1
- beq _08020CF0
- ldr r0, [r4]
- str r1, [r0, 0x74]
-_08020CF0:
- ldr r0, [sp]
- cmp r0, 0x3
- beq _08020D14
- cmp r0, 0x3
- bgt _08020D04
- cmp r0, 0x1
- beq _08020D0C
- b _08020D6C
- .align 2, 0
-_08020D00: .4byte gUnknown_203B27C
-_08020D04:
- cmp r0, 0xB
- beq _08020D66
- cmp r0, 0x11
- bne _08020D6C
-_08020D0C:
- movs r0, 0x16
- bl sub_801FDA8
- b _08020D6C
-_08020D14:
- bl sub_801F63C
- ldr r4, _08020D30
- ldr r1, [r4]
- adds r0, r1, 0
- adds r0, 0x24
- ldr r1, [r1, 0x10]
- adds r1, 0x2C
- bl sub_809401C
- movs r5, 0
- adds r6, r4, 0
- movs r4, 0x24
- b _08020D38
- .align 2, 0
-_08020D30: .4byte gUnknown_203B27C
-_08020D34:
- adds r4, 0x8
- adds r5, 0x1
-_08020D38:
- cmp r5, 0x7
- bgt _08020D52
- ldr r3, [r6]
- adds r2, r3, r4
- ldrb r1, [r2]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- bne _08020D34
- ldrh r1, [r3, 0x1E]
- adds r0, r2, 0
- bl InitZeroedPPPokemonMove
-_08020D52:
- cmp r5, 0x3
- ble _08020D5E
- movs r0, 0x1D
- bl sub_801FDA8
- b _08020D6C
-_08020D5E:
- movs r0, 0x19
- bl sub_801FDA8
- b _08020D6C
-_08020D66:
- movs r0, 0x18
- bl sub_801FDA8
-_08020D6C:
- add sp, 0x4
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_8020CC0
-
- thumb_func_start sub_8020D74
-sub_8020D74:
- push {lr}
- bl sub_801F890
- cmp r0, 0x1
- bls _08020D8C
- cmp r0, 0x3
- bhi _08020D8C
- bl sub_801F8D0
- movs r0, 0x16
- bl sub_801FDA8
-_08020D8C:
- pop {r0}
- bx r0
- thumb_func_end sub_8020D74
-
- thumb_func_start sub_8020D90
-sub_8020D90:
- push {lr}
- bl sub_801E8C0
- cmp r0, 0x2
- beq _08020DBC
- cmp r0, 0x2
- bcc _08020DC6
- cmp r0, 0x3
- bne _08020DC6
- bl sub_801E930
- ldr r1, _08020DB8
- ldr r1, [r1]
- strb r0, [r1, 0x14]
- bl sub_801E93C
- movs r0, 0x1A
- bl sub_801FDA8
- b _08020DC6
- .align 2, 0
-_08020DB8: .4byte gUnknown_203B27C
-_08020DBC:
- bl sub_801E93C
- movs r0, 0x10
- bl sub_801FDA8
-_08020DC6:
- pop {r0}
- bx r0
- thumb_func_end sub_8020D90
-
- thumb_func_start sub_8020DCC
-sub_8020DCC:
- push {lr}
- movs r0, 0x1
- bl sub_801EF38
- cmp r0, 0x4
- bhi _08020EAA
- lsls r0, 2
- ldr r1, _08020DE4
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08020DE4: .4byte _08020DE8
- .align 2, 0
-_08020DE8:
- .4byte _08020EAA
- .4byte _08020E98
- .4byte _08020E64
- .4byte _08020DFC
- .4byte _08020E30
-_08020DFC:
- bl sub_801F1A4
- lsls r0, 24
- cmp r0, 0
- beq _08020E0E
- ldr r0, _08020E2C
- ldr r1, [r0]
- movs r0, 0x1
- strb r0, [r1, 0x15]
-_08020E0E:
- bl sub_801F194
- ldr r1, _08020E2C
- ldr r2, [r1]
- str r0, [r2, 0x18]
- lsls r0, 3
- adds r0, r2, r0
- ldrh r1, [r0, 0x26]
- strh r1, [r2, 0x1C]
- ldrh r0, [r0, 0x26]
- strh r0, [r2, 0x20]
- movs r0, 0x20
- bl sub_801FDA8
- b _08020EAA
- .align 2, 0
-_08020E2C: .4byte gUnknown_203B27C
-_08020E30:
- bl sub_801F1A4
- lsls r0, 24
- cmp r0, 0
- beq _08020E42
- ldr r0, _08020E60
- ldr r1, [r0]
- movs r0, 0x1
- strb r0, [r1, 0x15]
-_08020E42:
- bl sub_801F194
- ldr r1, _08020E60
- ldr r2, [r1]
- str r0, [r2, 0x18]
- lsls r0, 3
- adds r0, r2, r0
- ldrh r1, [r0, 0x26]
- strh r1, [r2, 0x1C]
- ldrh r0, [r0, 0x26]
- strh r0, [r2, 0x20]
- movs r0, 0x21
- bl sub_801FDA8
- b _08020EAA
- .align 2, 0
-_08020E60: .4byte gUnknown_203B27C
-_08020E64:
- bl sub_801F1A4
- lsls r0, 24
- cmp r0, 0
- beq _08020E76
- ldr r0, _08020E94
- ldr r1, [r0]
- movs r0, 0x1
- strb r0, [r1, 0x15]
-_08020E76:
- bl sub_801F214
- ldr r0, _08020E94
- ldr r1, [r0]
- adds r0, r1, 0
- adds r0, 0x24
- ldr r1, [r1, 0x10]
- adds r1, 0x2C
- bl sub_8094060
- movs r0, 0x10
- bl sub_801FDA8
- b _08020EAA
- .align 2, 0
-_08020E94: .4byte gUnknown_203B27C
-_08020E98:
- bl sub_801F1A4
- lsls r0, 24
- cmp r0, 0
- beq _08020EAA
- ldr r0, _08020EB0
- ldr r1, [r0]
- movs r0, 0x1
- strb r0, [r1, 0x15]
-_08020EAA:
- pop {r0}
- bx r0
- .align 2, 0
-_08020EB0: .4byte gUnknown_203B27C
- thumb_func_end sub_8020DCC
-
- thumb_func_start sub_8020EB4
-sub_8020EB4:
- push {r4,lr}
- sub sp, 0x4
- movs r0, 0
- str r0, [sp]
- bl sub_801EF38
- ldr r4, _08020EF8
- ldr r0, [r4]
- adds r0, 0xCC
- bl sub_8012FD8
- lsls r0, 24
- cmp r0, 0
- bne _08020EE4
- ldr r0, [r4]
- adds r0, 0xCC
- mov r1, sp
- bl sub_8013114
- ldr r1, [sp]
- cmp r1, 0x1
- beq _08020EE4
- ldr r0, [r4]
- str r1, [r0, 0x78]
-_08020EE4:
- ldr r0, [sp]
- subs r0, 0x1
- cmp r0, 0x10
- bls _08020EEE
- b _080210BE
-_08020EEE:
- lsls r0, 2
- ldr r1, _08020EFC
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08020EF8: .4byte gUnknown_203B27C
-_08020EFC: .4byte _08020F00
- .align 2, 0
-_08020F00:
- .4byte _08021068
- .4byte _080210BE
- .4byte _080210BE
- .4byte _080210BE
- .4byte _08020F44
- .4byte _08020F70
- .4byte _08020F8C
- .4byte _08020FB8
- .4byte _08021034
- .4byte _08021074
- .4byte _080210B8
- .4byte _080210BE
- .4byte _080210BE
- .4byte _080210BE
- .4byte _080210BE
- .4byte _080210BE
- .4byte _08021068
-_08020F44:
- ldr r0, _08020F60
- ldr r1, [r0]
- ldr r0, [r1, 0x18]
- adds r1, 0x24
- bl sub_80934DC
- lsls r0, 24
- cmp r0, 0
- beq _08020F68
- ldr r0, _08020F64
- bl PlaySound
- b _08021068
- .align 2, 0
-_08020F60: .4byte gUnknown_203B27C
-_08020F64: .4byte 0x00000133
-_08020F68:
- movs r0, 0x2
- bl PlayMenuSoundEffect
- b _08021068
-_08020F70:
- ldr r0, _08020F84
- bl PlaySound
- ldr r0, _08020F88
- ldr r1, [r0]
- ldr r0, [r1, 0x18]
- adds r1, 0x24
- bl sub_809352C
- b _08021068
- .align 2, 0
-_08020F84: .4byte 0x00000133
-_08020F88: .4byte gUnknown_203B27C
-_08020F8C:
- ldr r0, _08020FA8
- ldr r1, [r0]
- ldr r0, [r1, 0x18]
- adds r1, 0x24
- bl sub_8093544
- lsls r0, 24
- cmp r0, 0
- beq _08020FB0
- ldr r0, _08020FAC
- bl PlaySound
- b _08021068
- .align 2, 0
-_08020FA8: .4byte gUnknown_203B27C
-_08020FAC: .4byte 0x00000133
-_08020FB0:
- movs r0, 0x2
- bl PlayMenuSoundEffect
- b _08021068
-_08020FB8:
- ldr r0, _08020FD8
- ldr r0, [r0]
- movs r1, 0x98
- lsls r1, 2
- adds r0, r1
- ldr r0, [r0]
- cmp r0, 0x95
- bgt _08020FDC
- movs r0, 0x2
- bl PlayMenuSoundEffect
- movs r0, 0x3
- bl sub_801FDA8
- b _080210BE
- .align 2, 0
-_08020FD8: .4byte gTeamInventory_203B460
-_08020FDC:
- ldr r4, _08020FFC
- ldr r1, [r4]
- ldr r0, [r1, 0x18]
- adds r1, 0x24
- bl sub_8093318
- lsls r0, 24
- cmp r0, 0
- bne _08021000
- movs r0, 0x2
- bl PlayMenuSoundEffect
- movs r0, 0x4
- bl sub_801FDA8
- b _080210BE
- .align 2, 0
-_08020FFC: .4byte gUnknown_203B27C
-_08021000:
- ldr r1, [r4]
- ldrb r0, [r1, 0x15]
- cmp r0, 0
- bne _08021016
- movs r0, 0x1
- strb r0, [r1, 0x15]
- movs r0, 0xA6
- lsls r0, 1
- bl PlaySound
- b _0802101C
-_08021016:
- ldr r0, _0802102C
- bl PlaySound
-_0802101C:
- ldr r0, _08021030
- ldr r1, [r0]
- ldr r0, [r1, 0x18]
- adds r1, 0x24
- bl sub_8093400
- b _08021068
- .align 2, 0
-_0802102C: .4byte 0x00000133
-_08021030: .4byte gUnknown_203B27C
-_08021034:
- ldr r4, _08021054
- ldr r1, [r4]
- ldr r0, [r1, 0x18]
- adds r1, 0x24
- bl sub_809333C
- lsls r0, 24
- cmp r0, 0
- bne _08021058
- movs r0, 0x2
- bl PlayMenuSoundEffect
- movs r0, 0x5
- bl sub_801FDA8
- b _080210BE
- .align 2, 0
-_08021054: .4byte gUnknown_203B27C
-_08021058:
- ldr r0, _08021070
- bl PlaySound
- ldr r1, [r4]
- ldr r0, [r1, 0x18]
- adds r1, 0x24
- bl sub_8093468
-_08021068:
- movs r0, 0x1F
- bl sub_801FDA8
- b _080210BE
- .align 2, 0
-_08021070: .4byte 0x00000133
-_08021074:
- ldr r4, _08021094
- ldr r1, [r4]
- ldr r0, [r1, 0x18]
- adds r1, 0x24
- bl sub_80933A0
- lsls r0, 24
- cmp r0, 0
- bne _08021098
- movs r0, 0x2
- bl PlayMenuSoundEffect
- movs r0, 0x6
- bl sub_801FDA8
- b _080210BE
- .align 2, 0
-_08021094: .4byte gUnknown_203B27C
-_08021098:
- ldr r0, _080210B4
- bl PlaySound
- ldr r1, [r4]
- ldr r0, [r1, 0x18]
- adds r1, 0x24
- bl sub_80934B0
- ldr r1, [r4]
- strb r0, [r1, 0x14]
- movs r0, 0x22
- bl sub_801FDA8
- b _080210BE
- .align 2, 0
-_080210B4: .4byte 0x00000133
-_080210B8:
- movs r0, 0x21
- bl sub_801FDA8
-_080210BE:
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_8020EB4
-
- thumb_func_start sub_80210C8
-sub_80210C8:
- push {lr}
- bl sub_801F890
- cmp r0, 0x1
- bls _080210E0
- cmp r0, 0x3
- bhi _080210E0
- bl sub_801F8D0
- movs r0, 0x1F
- bl sub_801FDA8
-_080210E0:
- pop {r0}
- bx r0
- thumb_func_end sub_80210C8
-
- thumb_func_start sub_80210E4
-sub_80210E4:
- push {lr}
- sub sp, 0x4
- mov r0, sp
- bl sub_80144A4
- cmp r0, 0
- bne _0802112A
- ldr r0, [sp]
- cmp r0, 0x10
- beq _08021108
- cmp r0, 0x10
- bgt _08021102
- cmp r0, 0x1
- beq _08021124
- b _0802112A
-_08021102:
- cmp r0, 0x11
- beq _08021124
- b _0802112A
-_08021108:
- ldr r0, _08021120
- ldr r1, [r0]
- adds r0, r1, 0
- adds r0, 0x24
- ldr r1, [r1, 0x18]
- bl sub_8093CF8
- movs r0, 0x23
- bl sub_801FDA8
- b _0802112A
- .align 2, 0
-_08021120: .4byte gUnknown_203B27C
-_08021124:
- movs r0, 0x1F
- bl sub_801FDA8
-_0802112A:
- add sp, 0x4
- pop {r0}
- bx r0
- thumb_func_end sub_80210E4
-
- thumb_func_start sub_8021130
-sub_8021130:
- push {lr}
- sub sp, 0x4
- mov r0, sp
- bl sub_80144A4
- cmp r0, 0
- bne _08021148
- ldr r0, _08021150
- ldr r0, [r0]
- ldr r0, [r0, 0x8]
- bl sub_801FDA8
-_08021148:
- add sp, 0x4
- pop {r0}
- bx r0
- .align 2, 0
-_08021150: .4byte gUnknown_203B27C
- thumb_func_end sub_8021130
-
- thumb_func_start sub_8021154
-sub_8021154:
- push {lr}
- sub sp, 0x4
- mov r0, sp
- bl sub_80144A4
- cmp r0, 0x4
- bne _0802116C
- ldr r0, _08021174
- ldr r0, [r0]
- ldr r0, [r0, 0x8]
- bl sub_801FDA8
-_0802116C:
- add sp, 0x4
- pop {r0}
- bx r0
- .align 2, 0
-_08021174: .4byte gUnknown_203B27C
- thumb_func_end sub_8021154
-
- thumb_func_start sub_8021178
-sub_8021178:
- push {lr}
- mov r12, r4
- ldr r4, _08021198
- add sp, r4
- mov r4, r12
- ldr r0, _0802119C
- ldr r0, [r0]
- ldr r1, [r0, 0x10]
- mov r0, sp
- bl sub_808E218
- cmp r0, 0
- beq _080211A0
- movs r0, 0
- b _080211A2
- .align 2, 0
-_08021198: .4byte 0xfffffcc0
-_0802119C: .4byte gUnknown_203B27C
-_080211A0:
- movs r0, 0x1
-_080211A2:
- movs r3, 0xD0
- lsls r3, 2
- add sp, r3
- pop {r1}
- bx r1
- thumb_func_end sub_8021178
-
- thumb_func_start sub_80211AC
-sub_80211AC:
- push {r4-r6,lr}
- adds r4, r0, 0
- adds r6, r1, 0
- bl sub_8021700
- lsls r0, 24
- cmp r0, 0
- beq _080211C0
- movs r0, 0
- b _08021258
-_080211C0:
- ldr r5, _08021260
- movs r0, 0xE0
- movs r1, 0x8
- bl MemoryAlloc
- str r0, [r5]
- str r4, [r0, 0x3C]
- str r6, [r0, 0x74]
- lsls r1, r6, 1
- adds r1, r6
- lsls r1, 3
- adds r1, 0x7C
- adds r1, r0, r1
- str r1, [r0, 0x78]
- adds r0, 0x7C
- bl sub_8006518
- ldr r1, [r5]
- ldr r2, [r1, 0x74]
- lsls r0, r2, 1
- adds r0, r2
- lsls r0, 3
- adds r1, r0
- adds r1, 0x7C
- ldr r0, _08021264
- ldm r0!, {r2-r4}
- stm r1!, {r2-r4}
- ldm r0!, {r2-r4}
- stm r1!, {r2-r4}
- ldr r0, [r5]
- ldr r1, [r0, 0x78]
- adds r0, 0xDC
- str r0, [r1, 0x14]
- bl ResetUnusedInputStruct
- ldr r0, [r5]
- adds r0, 0x7C
- movs r1, 0x1
- movs r2, 0x1
- bl sub_800641C
- ldr r4, [r5]
- adds r4, 0x40
- bl sub_8021664
- adds r1, r0, 0
- adds r0, r4, 0
- movs r2, 0xA
- adds r3, r6, 0
- bl sub_8013818
- ldr r0, _08021268
- ldr r2, [r5]
- ldr r1, [r0]
- ldr r0, [r2, 0x3C]
- cmp r1, r0
- bne _0802124E
- ldr r0, _0802126C
- ldrh r1, [r0]
- adds r0, r2, 0
- adds r0, 0x58
- strh r1, [r0]
- ldr r0, _08021270
- ldrh r0, [r0]
- adds r1, r2, 0
- adds r1, 0x5E
- strh r0, [r1]
- adds r0, r2, 0
- adds r0, 0x40
- bl sub_8013984
-_0802124E:
- bl sub_8021410
- bl sub_8021494
- movs r0, 0x1
-_08021258:
- pop {r4-r6}
- pop {r1}
- bx r1
- .align 2, 0
-_08021260: .4byte gUnknown_203B280
-_08021264: .4byte gUnknown_80DC47C
-_08021268: .4byte gUnknown_203B284
-_0802126C: .4byte gUnknown_203B288
-_08021270: .4byte gUnknown_203B28A
- thumb_func_end sub_80211AC
-
- thumb_func_start sub_8021274
-sub_8021274:
- push {r4,lr}
- lsls r0, 24
- cmp r0, 0
- bne _08021290
- ldr r0, _0802128C
- ldr r0, [r0]
- adds r0, 0x40
- bl sub_8013660
- movs r0, 0
- b _08021326
- .align 2, 0
-_0802128C: .4byte gUnknown_203B280
-_08021290:
- ldr r4, _080212A8
- ldr r0, [r4]
- adds r0, 0x40
- bl GetKeyPress
- cmp r0, 0x2
- beq _080212B2
- cmp r0, 0x2
- bgt _080212AC
- cmp r0, 0x1
- beq _080212BC
- b _08021300
- .align 2, 0
-_080212A8: .4byte gUnknown_203B280
-_080212AC:
- cmp r0, 0x4
- beq _080212F6
- b _08021300
-_080212B2:
- movs r0, 0x1
- bl PlayMenuSoundEffect
- movs r0, 0x2
- b _08021326
-_080212BC:
- ldr r0, [r4]
- ldr r0, [r0, 0x3C]
- cmp r0, 0x2
- bne _080212EC
- bl sub_802132C
- lsls r0, 24
- lsrs r0, 24
- bl GetFriendAreaPrice
- ldr r1, _080212E8
- ldr r1, [r1]
- movs r2, 0x98
- lsls r2, 2
- adds r1, r2
- ldr r1, [r1]
- cmp r0, r1
- ble _080212EC
- movs r0, 0x2
- bl PlayMenuSoundEffect
- b _080212F2
- .align 2, 0
-_080212E8: .4byte gTeamInventory_203B460
-_080212EC:
- movs r0, 0
- bl PlayMenuSoundEffect
-_080212F2:
- movs r0, 0x3
- b _08021326
-_080212F6:
- movs r0, 0x4
- bl PlayMenuSoundEffect
- movs r0, 0x4
- b _08021326
-_08021300:
- ldr r0, _08021318
- ldr r0, [r0]
- adds r0, 0x40
- movs r1, 0x1
- bl sub_80138B8
- lsls r0, 24
- cmp r0, 0
- bne _0802131C
- movs r0, 0
- b _08021326
- .align 2, 0
-_08021318: .4byte gUnknown_203B280
-_0802131C:
- bl sub_8021410
- bl sub_8021494
- movs r0, 0x1
-_08021326:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_8021274
-
- thumb_func_start sub_802132C
-sub_802132C:
- ldr r0, _08021350
- ldr r2, [r0]
- adds r0, r2, 0
- adds r0, 0x5E
- movs r3, 0
- ldrsh r1, [r0, r3]
- subs r0, 0x2
- movs r3, 0
- ldrsh r0, [r0, r3]
- muls r0, r1
- adds r1, r2, 0
- adds r1, 0x58
- movs r3, 0
- ldrsh r1, [r1, r3]
- adds r0, r1
- adds r0, r2, r0
- ldrb r0, [r0]
- bx lr
- .align 2, 0
-_08021350: .4byte gUnknown_203B280
- thumb_func_end sub_802132C
-
- thumb_func_start sub_8021354
-sub_8021354:
- push {r4,r5,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- bl ResetUnusedInputStruct
- ldr r5, _0802139C
- ldr r0, [r5]
- adds r0, 0x7C
- movs r1, 0
- movs r2, 0
- bl sub_800641C
- bl sub_8021664
- adds r1, r0, 0
- ldr r0, [r5]
- adds r2, r0, 0
- adds r2, 0x62
- strh r1, [r2]
- adds r0, 0x40
- bl sub_8013984
- bl sub_8021410
- bl sub_8021494
- cmp r4, 0
- beq _08021396
- ldr r0, [r5]
- adds r0, 0x40
- bl AddMenuCursorSprite
-_08021396:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0802139C: .4byte gUnknown_203B280
- thumb_func_end sub_8021354
-
- thumb_func_start sub_80213A0
-sub_80213A0:
- push {r4,r5,lr}
- ldr r4, _080213FC
- ldr r2, [r4]
- cmp r2, 0
- beq _080213F4
- ldr r1, _08021400
- ldr r0, [r2, 0x3C]
- str r0, [r1]
- ldr r1, _08021404
- adds r0, r2, 0
- adds r0, 0x58
- ldrh r0, [r0]
- strh r0, [r1]
- ldr r1, _08021408
- adds r0, r2, 0
- adds r0, 0x5E
- ldrh r0, [r0]
- strh r0, [r1]
- ldr r0, [r2, 0x74]
- lsls r1, r0, 1
- adds r1, r0
- lsls r1, 3
- adds r1, r2, r1
- adds r1, 0x7C
- ldr r0, _0802140C
- ldm r0!, {r2,r3,r5}
- stm r1!, {r2,r3,r5}
- ldm r0!, {r2,r3,r5}
- stm r1!, {r2,r3,r5}
- bl ResetUnusedInputStruct
- ldr r0, [r4]
- adds r0, 0x7C
- movs r1, 0x1
- movs r2, 0x1
- bl sub_800641C
- ldr r0, [r4]
- bl MemoryFree
- movs r0, 0
- str r0, [r4]
-_080213F4:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080213FC: .4byte gUnknown_203B280
-_08021400: .4byte gUnknown_203B284
-_08021404: .4byte gUnknown_203B288
-_08021408: .4byte gUnknown_203B28A
-_0802140C: .4byte gUnknown_80DC464
- thumb_func_end sub_80213A0
-
- thumb_func_start sub_8021410
-sub_8021410:
- push {r4,lr}
- ldr r4, _08021490
- ldr r0, [r4]
- adds r0, 0xDC
- movs r2, 0
- movs r1, 0x1
- strb r1, [r0]
- ldr r0, [r4]
- adds r0, 0xDD
- strb r2, [r0]
- ldr r0, [r4]
- adds r0, 0xDE
- movs r1, 0xC
- strb r1, [r0]
- ldr r0, [r4]
- adds r0, 0xDF
- strb r2, [r0]
- bl ResetUnusedInputStruct
- ldr r0, [r4]
- adds r0, 0x7C
- movs r1, 0x1
- movs r2, 0x1
- bl sub_800641C
- ldr r0, [r4]
- adds r0, 0x5A
- movs r1, 0
- ldrsh r0, [r0, r1]
- movs r1, 0xC
- bl sub_80095E4
- adds r0, 0x2
- lsls r0, 16
- ldr r2, [r4]
- ldr r3, [r2, 0x74]
- lsls r1, r3, 1
- adds r1, r3
- lsls r1, 3
- adds r1, r2, r1
- adds r1, 0x8A
- asrs r3, r0, 16
- lsrs r0, 16
- strh r0, [r1]
- ldr r1, [r2, 0x74]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 3
- adds r2, r0
- adds r3, 0x2
- adds r2, 0x8C
- strh r3, [r2]
- bl ResetUnusedInputStruct
- ldr r0, [r4]
- adds r0, 0x7C
- movs r1, 0x1
- movs r2, 0x1
- bl sub_800641C
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08021490: .4byte gUnknown_203B280
- thumb_func_end sub_8021410
-
- thumb_func_start sub_8021494
-sub_8021494:
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0xA8
- ldr r4, _08021568
- ldr r0, [r4]
- ldr r0, [r0, 0x74]
- bl sub_8008C54
- ldr r0, [r4]
- ldr r0, [r0, 0x74]
- bl sub_80073B8
- ldr r2, _0802156C
- ldr r0, [r4]
- ldr r3, [r0, 0x74]
- movs r0, 0
- str r0, [sp]
- movs r0, 0xA
- movs r1, 0
- bl xxx_call_draw_string
- ldr r3, [r4]
- adds r0, r3, 0
- adds r0, 0xDE
- ldrb r0, [r0]
- lsls r0, 3
- adds r0, 0x4
- adds r1, r3, 0
- adds r1, 0x5E
- movs r5, 0
- ldrsh r2, [r1, r5]
- adds r2, 0x1
- movs r1, 0x7
- str r1, [sp]
- ldr r1, [r3, 0x74]
- str r1, [sp, 0x4]
- movs r1, 0
- movs r3, 0x1
- bl sub_8012BC4
- movs r0, 0
- mov r9, r0
- ldr r0, [r4]
- adds r0, 0x5A
- movs r1, 0
- ldrsh r0, [r0, r1]
- cmp r9, r0
- blt _080214FC
- b _08021646
-_080214FC:
- mov r8, r4
- add r2, sp, 0x58
- mov r10, r2
-_08021502:
- mov r3, r8
- ldr r2, [r3]
- adds r0, r2, 0
- adds r0, 0x5E
- movs r5, 0
- ldrsh r1, [r0, r5]
- subs r0, 0x2
- movs r3, 0
- ldrsh r0, [r0, r3]
- muls r0, r1
- add r0, r9
- adds r0, r2, r0
- ldrb r5, [r0]
- adds r7, r5, 0
- ldr r6, [r2, 0x3C]
- cmp r6, 0x2
- bne _0802159C
- add r0, sp, 0x8
- adds r1, r5, 0
- movs r2, 0x1
- bl sub_8092578
- adds r0, r5, 0
- bl GetFriendAreaPrice
- ldr r1, _08021570
- ldr r1, [r1]
- movs r5, 0x98
- lsls r5, 2
- adds r1, r5
- ldr r1, [r1]
- cmp r0, r1
- bgt _08021574
- mov r1, r8
- ldr r0, [r1]
- adds r0, 0x40
- mov r1, r9
- bl sub_8013800
- adds r1, r0, 0
- mov r2, r8
- ldr r0, [r2]
- ldr r3, [r0, 0x74]
- movs r0, 0
- str r0, [sp]
- movs r0, 0x8
- add r2, sp, 0x8
- bl xxx_call_draw_string
- b _08021632
- .align 2, 0
-_08021568: .4byte gUnknown_203B280
-_0802156C: .4byte gUnknown_80DC494
-_08021570: .4byte gTeamInventory_203B460
-_08021574:
- mov r0, r10
- ldr r1, _08021598
- add r2, sp, 0x8
- bl ExpandPlaceholdersBuffer
- mov r3, r8
- ldr r0, [r3]
- adds r0, 0x40
- mov r1, r9
- bl sub_8013800
- adds r1, r0, 0
- mov r5, r8
- ldr r0, [r5]
- ldr r3, [r0, 0x74]
- movs r0, 0
- str r0, [sp]
- b _080215FE
- .align 2, 0
-_08021598: .4byte gUnknown_80DC4A4
-_0802159C:
- cmp r6, 0
- bne _0802160C
- ldr r0, _080215D4
- ldr r0, [r0]
- adds r0, r5
- ldrb r0, [r0]
- cmp r0, 0x1
- bne _080215D8
- adds r0, r2, 0
- adds r0, 0x40
- mov r1, r9
- bl sub_8013800
- adds r4, r0, 0
- adds r0, r5, 0
- bl GetFriendAreaName
- adds r2, r0, 0
- mov r1, r8
- ldr r0, [r1]
- ldr r3, [r0, 0x74]
- str r6, [sp]
- movs r0, 0x8
- adds r1, r4, 0
- bl xxx_call_draw_string
- b _08021632
- .align 2, 0
-_080215D4: .4byte gFriendAreas
-_080215D8:
- adds r0, r5, 0
- bl GetFriendAreaName
- adds r2, r0, 0
- mov r0, r10
- ldr r1, _08021608
- bl ExpandPlaceholdersBuffer
- mov r2, r8
- ldr r0, [r2]
- adds r0, 0x40
- mov r1, r9
- bl sub_8013800
- adds r1, r0, 0
- mov r3, r8
- ldr r0, [r3]
- ldr r3, [r0, 0x74]
- str r6, [sp]
-_080215FE:
- movs r0, 0x8
- mov r2, r10
- bl xxx_call_draw_string
- b _08021632
- .align 2, 0
-_08021608: .4byte gUnknown_80DC4AC
-_0802160C:
- adds r0, r2, 0
- adds r0, 0x40
- mov r1, r9
- bl sub_8013800
- adds r4, r0, 0
- adds r0, r7, 0
- bl GetFriendAreaName
- adds r2, r0, 0
- mov r5, r8
- ldr r0, [r5]
- ldr r3, [r0, 0x74]
- movs r0, 0
- str r0, [sp]
- movs r0, 0x8
- adds r1, r4, 0
- bl xxx_call_draw_string
-_08021632:
- movs r0, 0x1
- add r9, r0
- mov r1, r8
- ldr r0, [r1]
- adds r0, 0x5A
- movs r2, 0
- ldrsh r0, [r0, r2]
- cmp r9, r0
- bge _08021646
- b _08021502
-_08021646:
- ldr r0, _08021660
- ldr r0, [r0]
- ldr r0, [r0, 0x74]
- bl sub_80073E0
- add sp, 0xA8
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08021660: .4byte gUnknown_203B280
- thumb_func_end sub_8021494
-
- thumb_func_start sub_8021664
-sub_8021664:
- push {r4-r6,lr}
- movs r5, 0
- ldr r1, _0802167C
- ldr r0, [r1]
- ldr r0, [r0, 0x3C]
- cmp r0, 0x1
- beq _08021692
- cmp r0, 0x1
- bcc _08021680
- cmp r0, 0x2
- beq _080216B4
- b _080216F2
- .align 2, 0
-_0802167C: .4byte gUnknown_203B280
-_08021680:
- movs r4, 0x1
-_08021682:
- ldr r0, [r1]
- adds r0, r5
- strb r4, [r0]
- adds r5, 0x1
- adds r4, 0x1
- cmp r4, 0x39
- ble _08021682
- b _080216F2
-_08021692:
- movs r4, 0x1
- ldr r2, _080216B0
-_08021696:
- ldr r0, [r2]
- adds r0, r4
- ldrb r0, [r0]
- cmp r0, 0
- beq _080216A8
- ldr r0, [r1]
- adds r0, r5
- strb r4, [r0]
- adds r5, 0x1
-_080216A8:
- adds r4, 0x1
- cmp r4, 0x39
- ble _08021696
- b _080216F2
- .align 2, 0
-_080216B0: .4byte gFriendAreas
-_080216B4:
- movs r4, 0x1
- adds r6, r1, 0
-_080216B8:
- ldr r0, _080216FC
- ldr r0, [r0]
- adds r0, r4
- ldrb r0, [r0]
- cmp r0, 0
- bne _080216EC
- lsls r0, r4, 24
- lsrs r0, 24
- bl GetFriendAreaUnlockCondition
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0
- beq _080216E4
- cmp r0, 0x1
- bne _080216EC
- movs r0, 0x6
- bl sub_80023E4
- lsls r0, 24
- cmp r0, 0
- beq _080216EC
-_080216E4:
- ldr r0, [r6]
- adds r0, r5
- strb r4, [r0]
- adds r5, 0x1
-_080216EC:
- adds r4, 0x1
- cmp r4, 0x39
- ble _080216B8
-_080216F2:
- adds r0, r5, 0
- pop {r4-r6}
- pop {r1}
- bx r1
- .align 2, 0
-_080216FC: .4byte gFriendAreas
- thumb_func_end sub_8021664
-
- thumb_func_start sub_8021700
-sub_8021700:
- push {r4,lr}
- cmp r0, 0x1
- beq _08021710
- cmp r0, 0x1
- bcc _08021754
- cmp r0, 0x2
- beq _0802172C
- b _0802176A
-_08021710:
- movs r4, 0x1
- ldr r0, _08021728
- ldr r1, [r0]
-_08021716:
- adds r0, r1, r4
- ldrb r0, [r0]
- cmp r0, 0
- bne _08021754
- adds r4, 0x1
- cmp r4, 0x39
- ble _08021716
- b _0802176A
- .align 2, 0
-_08021728: .4byte gFriendAreas
-_0802172C:
- movs r4, 0x1
-_0802172E:
- ldr r0, _08021750
- ldr r0, [r0]
- adds r0, r4
- ldrb r0, [r0]
- cmp r0, 0
- bne _08021764
- lsls r0, r4, 24
- lsrs r0, 24
- bl GetFriendAreaUnlockCondition
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0
- beq _08021754
- cmp r0, 0x1
- beq _08021758
- b _08021764
- .align 2, 0
-_08021750: .4byte gFriendAreas
-_08021754:
- movs r0, 0
- b _0802176C
-_08021758:
- movs r0, 0x6
- bl sub_80023E4
- lsls r0, 24
- cmp r0, 0
- bne _08021754
-_08021764:
- adds r4, 0x1
- cmp r4, 0x39
- ble _0802172E
-_0802176A:
- movs r0, 0x1
-_0802176C:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_8021700
-
- thumb_func_start sub_8021774
-sub_8021774:
- push {r4-r6,lr}
- mov r6, r8
- push {r6}
- adds r4, r0, 0
- adds r5, r1, 0
- mov r8, r2
- lsls r4, 24
- lsrs r4, 24
- lsls r5, 24
- lsrs r5, 24
- ldr r6, _080217E4
- movs r0, 0xE0
- movs r1, 0x8
- bl MemoryAlloc
- str r0, [r6]
- strb r4, [r0, 0xC]
- ldr r0, [r6]
- strb r5, [r0, 0xD]
- ldr r0, [r6]
- bl sub_801317C
- bl sub_8021A60
- ldr r0, [r6]
- mov r1, r8
- str r1, [r0, 0x74]
- lsls r1, 1
- add r1, r8
- lsls r1, 3
- adds r1, 0x7C
- adds r1, r0, r1
- str r1, [r0, 0x78]
- adds r0, 0x7C
- bl sub_8006518
- ldr r1, [r6]
- ldr r2, [r1, 0x74]
- lsls r0, r2, 1
- adds r0, r2
- lsls r0, 3
- adds r1, r0
- adds r1, 0x7C
- ldr r0, _080217E8
- ldm r0!, {r2-r4}
- stm r1!, {r2-r4}
- ldm r0!, {r2-r4}
- stm r1!, {r2-r4}
- bl sub_8021820
- movs r0, 0x1
- pop {r3}
- mov r8, r3
- pop {r4-r6}
- pop {r1}
- bx r1
- .align 2, 0
-_080217E4: .4byte gUnknown_203B28C
-_080217E8: .4byte gUnknown_80DC4D8
- thumb_func_end sub_8021774
-
- thumb_func_start sub_80217EC
-sub_80217EC:
- push {lr}
- ldr r0, _0802180C
- ldr r0, [r0]
- ldr r1, [r0, 0x74]
- bl sub_8012A64
- cmp r0, 0x1
- beq _08021810
- cmp r0, 0x2
- bne _0802181A
- movs r0, 0x1
- bl PlayMenuSoundEffect
- movs r0, 0x2
- b _0802181C
- .align 2, 0
-_0802180C: .4byte gUnknown_203B28C
-_08021810:
- movs r0, 0
- bl PlayMenuSoundEffect
- movs r0, 0x3
- b _0802181C
-_0802181A:
- movs r0, 0
-_0802181C:
- pop {r1}
- bx r1
- thumb_func_end sub_80217EC
-
- thumb_func_start sub_8021820
-sub_8021820:
- push {lr}
- bl sub_8021878
- bl sub_8021894
- pop {r0}
- bx r0
- thumb_func_end sub_8021820
-
- thumb_func_start sub_8021830
-sub_8021830:
- push {r4,r5,lr}
- ldr r4, _08021870
- ldr r2, [r4]
- cmp r2, 0
- beq _0802186A
- ldr r0, [r2, 0x74]
- lsls r1, r0, 1
- adds r1, r0
- lsls r1, 3
- adds r1, r2, r1
- adds r1, 0x7C
- ldr r0, _08021874
- ldm r0!, {r2,r3,r5}
- stm r1!, {r2,r3,r5}
- ldm r0!, {r2,r3,r5}
- stm r1!, {r2,r3,r5}
- bl ResetUnusedInputStruct
- ldr r0, [r4]
- adds r0, 0x7C
- movs r1, 0x1
- movs r2, 0x1
- bl sub_800641C
- ldr r0, [r4]
- bl MemoryFree
- movs r0, 0
- str r0, [r4]
-_0802186A:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08021870: .4byte gUnknown_203B28C
-_08021874: .4byte gUnknown_80DC4BC
- thumb_func_end sub_8021830
-
- thumb_func_start sub_8021878
-sub_8021878:
- push {lr}
- bl ResetUnusedInputStruct
- ldr r0, _08021890
- ldr r0, [r0]
- adds r0, 0x7C
- movs r1, 0x1
- movs r2, 0x1
- bl sub_800641C
- pop {r0}
- bx r0
- .align 2, 0
-_08021890: .4byte gUnknown_203B28C
- thumb_func_end sub_8021878
-
- thumb_func_start sub_8021894
-sub_8021894:
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- sub sp, 0x168
- ldr r4, _080218F8
- ldr r0, [r4]
- ldr r0, [r0, 0x74]
- bl sub_80073B8
- ldr r0, [r4]
- ldrb r1, [r0, 0xC]
- add r0, sp, 0x4
- movs r2, 0
- bl sub_8092578
- ldr r0, [r4]
- ldr r3, [r0, 0x74]
- movs r5, 0
- str r5, [sp]
- movs r0, 0x14
- movs r1, 0
- add r2, sp, 0x4
- bl xxx_call_draw_string
- ldr r0, [r4]
- ldrb r0, [r0, 0xC]
- bl GetFriendAreaDescription
- adds r2, r0, 0
- ldr r0, [r4]
- ldr r3, [r0, 0x74]
- str r5, [sp]
- movs r0, 0xA
- movs r1, 0x14
- bl xxx_call_draw_string
- ldr r4, [r4]
- ldrb r0, [r4, 0xD]
- cmp r0, 0
- beq _08021900
- ldr r2, _080218FC
- ldr r3, [r4, 0x74]
- str r5, [sp]
- movs r0, 0x20
- movs r1, 0x3C
- bl xxx_call_draw_string
- b _0802190E
- .align 2, 0
-_080218F8: .4byte gUnknown_203B28C
-_080218FC: .4byte gUnknown_80DC4F0
-_08021900:
- ldr r2, _0802193C
- ldr r3, [r4, 0x74]
- str r0, [sp]
- movs r0, 0x20
- movs r1, 0x3C
- bl xxx_call_draw_string
-_0802190E:
- ldr r4, _08021940
- ldr r0, [r4]
- ldr r0, [r0, 0x74]
- movs r5, 0x4
- str r5, [sp]
- movs r1, 0x4
- movs r2, 0x40
- movs r3, 0x14
- bl sub_800792C
- ldr r4, [r4]
- ldrb r0, [r4, 0xD]
- cmp r0, 0
- beq _08021944
- ldr r0, [r4, 0x74]
- str r5, [sp]
- movs r1, 0xB8
- movs r2, 0x40
- movs r3, 0x14
- bl sub_800792C
- b _08021952
- .align 2, 0
-_0802193C: .4byte gUnknown_80DC518
-_08021940: .4byte gUnknown_203B28C
-_08021944:
- ldr r0, [r4, 0x74]
- str r5, [sp]
- movs r1, 0x5E
- movs r2, 0x40
- movs r3, 0x6E
- bl sub_800792C
-_08021952:
- ldr r5, _080219E8
- ldr r0, [r5]
- ldr r0, [r0, 0x74]
- movs r4, 0x4
- str r4, [sp]
- movs r1, 0x4
- movs r2, 0x82
- movs r3, 0xC8
- bl sub_800792C
- ldr r0, [r5]
- ldr r0, [r0, 0x74]
- str r4, [sp]
- movs r1, 0x3
- movs r2, 0x40
- movs r3, 0x43
- bl sub_8007A78
- ldr r0, [r5]
- ldr r0, [r0, 0x74]
- str r4, [sp]
- movs r1, 0xCC
- movs r2, 0x40
- movs r3, 0x43
- bl sub_8007A78
- movs r6, 0
- ldr r0, [r5]
- ldr r0, [r0, 0x70]
- cmp r6, r0
- bge _08021A40
- add r7, sp, 0x104
- mov r8, r5
- mov r9, r6
-_08021996:
- adds r0, r6, 0
- movs r1, 0x3
- bl __modsi3
- lsls r1, r0, 6
- subs r1, r0
- adds r5, r1, 0x7
- adds r0, r6, 0
- movs r1, 0x3
- bl __divsi3
- lsls r1, r0, 1
- adds r1, r0
- lsls r1, 2
- adds r4, r1, 0
- adds r4, 0x47
- mov r1, r8
- ldr r0, [r1]
- lsls r1, r6, 1
- adds r0, 0xE
- adds r0, r1
- movs r2, 0
- ldrsh r1, [r0, r2]
- adds r0, r7, 0
- bl sub_808D930
- mov r0, r8
- ldr r3, [r0]
- lsls r1, r6, 2
- adds r0, r3, 0
- adds r0, 0x30
- adds r0, r1
- ldr r0, [r0]
- cmp r0, 0x1
- beq _08021A04
- cmp r0, 0x1
- bcc _080219EC
- cmp r0, 0x2
- beq _08021A16
- b _08021A34
- .align 2, 0
-_080219E8: .4byte gUnknown_203B28C
-_080219EC:
- ldr r0, _08021A00
- ldr r2, [r0]
- ldr r3, [r3, 0x74]
- mov r1, r9
- str r1, [sp]
- adds r0, r5, 0
- adds r1, r4, 0
- bl xxx_call_draw_string
- b _08021A34
- .align 2, 0
-_08021A00: .4byte gUnknown_80D49BC
-_08021A04:
- ldr r3, [r3, 0x74]
- mov r2, r9
- str r2, [sp]
- adds r0, r5, 0
- adds r1, r4, 0
- adds r2, r7, 0
- bl xxx_call_draw_string
- b _08021A34
-_08021A16:
- add r0, sp, 0x4
- ldr r1, _08021A58
- adds r2, r7, 0
- bl ExpandPlaceholdersBuffer
- mov r1, r8
- ldr r0, [r1]
- ldr r3, [r0, 0x74]
- mov r2, r9
- str r2, [sp]
- adds r0, r5, 0
- adds r1, r4, 0
- add r2, sp, 0x4
- bl xxx_call_draw_string
-_08021A34:
- adds r6, 0x1
- mov r1, r8
- ldr r0, [r1]
- ldr r0, [r0, 0x70]
- cmp r6, r0
- blt _08021996
-_08021A40:
- ldr r0, _08021A5C
- ldr r0, [r0]
- ldr r0, [r0, 0x74]
- bl sub_80073E0
- add sp, 0x168
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08021A58: .4byte gUnknown_80DC524
-_08021A5C: .4byte gUnknown_203B28C
- thumb_func_end sub_8021894
-
- thumb_func_start sub_8021A60
-sub_8021A60:
- push {r4-r7,lr}
- ldr r2, _08021B4C
- ldr r1, [r2]
- movs r0, 0
- str r0, [r1, 0x70]
- movs r6, 0
- adds r4, r2, 0
- movs r3, 0
-_08021A70:
- ldr r1, [r4]
- lsls r2, r6, 1
- adds r0, r1, 0
- adds r0, 0xE
- adds r0, r2
- strh r3, [r0]
- lsls r0, r6, 2
- adds r1, 0x30
- adds r1, r0
- str r3, [r1]
- adds r6, 0x1
- cmp r6, 0xF
- ble _08021A70
- movs r6, 0
- ldr r7, _08021B4C
-_08021A8E:
- lsls r0, r6, 16
- asrs r5, r0, 16
- ldr r4, [r7]
- adds r0, r5, 0
- bl GetFriendArea
- ldrb r1, [r4, 0xC]
- lsls r0, 24
- lsrs r0, 24
- cmp r1, r0
- bne _08021AC4
- adds r0, r5, 0
- bl GetBaseSpeciesNoUnown
- lsls r0, 16
- asrs r0, 16
- cmp r5, r0
- bne _08021AC4
- ldr r3, [r7]
- ldr r1, [r3, 0x70]
- lsls r2, r1, 1
- adds r0, r3, 0
- adds r0, 0xE
- adds r0, r2
- strh r5, [r0]
- adds r1, 0x1
- str r1, [r3, 0x70]
-_08021AC4:
- adds r6, 0x1
- ldr r0, _08021B50
- cmp r6, r0
- ble _08021A8E
- movs r6, 0
-_08021ACE:
- lsls r0, r6, 16
- asrs r4, r0, 16
- adds r0, r4, 0
- bl sub_8098134
- lsls r0, 24
- cmp r0, 0
- beq _08021AFC
- adds r0, r4, 0
- bl sub_8021B58
- adds r2, r0, 0
- movs r0, 0x1
- negs r0, r0
- cmp r2, r0
- beq _08021AFC
- ldr r0, _08021B4C
- ldr r1, [r0]
- lsls r0, r2, 2
- adds r1, 0x30
- adds r1, r0
- movs r0, 0x1
- str r0, [r1]
-_08021AFC:
- adds r6, 0x1
- ldr r0, _08021B50
- cmp r6, r0
- ble _08021ACE
- movs r6, 0
- ldr r4, _08021B54
-_08021B08:
- movs r0, 0x58
- adds r1, r6, 0
- muls r1, r0
- ldr r0, [r4]
- adds r2, r0, r1
- ldrb r1, [r2]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _08021B3C
- movs r1, 0x8
- ldrsh r0, [r2, r1]
- bl sub_8021B58
- adds r2, r0, 0
- movs r0, 0x1
- negs r0, r0
- cmp r2, r0
- beq _08021B3C
- ldr r0, _08021B4C
- ldr r1, [r0]
- lsls r0, r2, 2
- adds r1, 0x30
- adds r1, r0
- movs r0, 0x2
- str r0, [r1]
-_08021B3C:
- adds r6, 0x1
- movs r0, 0xCE
- lsls r0, 1
- cmp r6, r0
- ble _08021B08
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08021B4C: .4byte gUnknown_203B28C
-_08021B50: .4byte 0x000001a7
-_08021B54: .4byte gRecruitedPokemonRef
- thumb_func_end sub_8021A60
-
- thumb_func_start sub_8021B58
-sub_8021B58:
- push {r4,r5,lr}
- lsls r0, 16
- asrs r0, 16
- bl GetBaseSpeciesNoUnown
- lsls r0, 16
- asrs r4, r0, 16
- movs r2, 0
- ldr r0, _08021B84
- ldr r0, [r0]
- ldr r1, [r0, 0x70]
- cmp r2, r1
- bge _08021B90
- adds r3, r1, 0
- adds r1, r0, 0
- adds r1, 0xE
-_08021B78:
- movs r5, 0
- ldrsh r0, [r1, r5]
- cmp r4, r0
- bne _08021B88
- adds r0, r2, 0
- b _08021B94
- .align 2, 0
-_08021B84: .4byte gUnknown_203B28C
-_08021B88:
- adds r1, 0x2
- adds r2, 0x1
- cmp r2, r3
- blt _08021B78
-_08021B90:
- movs r0, 0x1
- negs r0, r0
-_08021B94:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8021B58
-
- thumb_func_start CreateWigglytuffShop
-CreateWigglytuffShop:
- push {r4-r6,lr}
- adds r4, r0, 0
- bl ResetUnusedInputStruct
- movs r0, 0
- movs r1, 0x1
- movs r2, 0x1
- bl sub_800641C
- ldr r5, _08021BF8
- movs r0, 0x9C
- lsls r0, 1
- movs r1, 0x8
- bl MemoryAlloc
- str r0, [r5]
- movs r6, 0
- str r6, [r0, 0x14]
- str r6, [r0, 0x18]
- str r4, [r0]
- ldr r0, _08021BFC
- movs r1, 0x28
- bl CopyYellowSpeciesNametoBuffer
- ldr r4, _08021C00
- adds r0, r4, 0
- movs r1, 0x28
- bl CopyYellowSpeciesNametoBuffer
- movs r0, 0x28
- bl GetMonSpecies
- adds r1, r0, 0
- subs r4, 0x50
- adds r0, r4, 0
- bl strcpy
- ldr r5, [r5]
- ldr r0, [r5]
- cmp r0, 0x1
- bne _08021C04
- adds r0, r5, 0
- adds r0, 0xCC
- str r6, [r0]
- b _08021C0E
- .align 2, 0
-_08021BF8: .4byte gUnknown_203B290
-_08021BFC: .4byte gUnknown_202E5D8
-_08021C00: .4byte gUnknown_202E1C8
-_08021C04:
- adds r1, r5, 0
- adds r1, 0xCC
- adds r0, r5, 0
- adds r0, 0xBC
- str r0, [r1]
-_08021C0E:
- movs r0, 0x28
- bl GetDialogueSpriteDataPtr
- ldr r2, _08021C58
- ldr r3, [r2]
- adds r1, r3, 0
- adds r1, 0xBC
- str r0, [r1]
- adds r1, 0x4
- ldr r0, [r0, 0x4]
- str r0, [r1]
- adds r0, r3, 0
- adds r0, 0xC8
- movs r1, 0
- strb r1, [r0]
- ldr r0, [r2]
- adds r0, 0xC9
- strb r1, [r0]
- ldr r0, [r2]
- adds r0, 0xCA
- strb r1, [r0]
- ldr r1, [r2]
- adds r2, r1, 0
- adds r2, 0xC4
- movs r0, 0x2
- strh r0, [r2]
- adds r1, 0xC6
- movs r0, 0x8
- strh r0, [r1]
- movs r0, 0
- bl sub_8021D44
- movs r0, 0x1
- pop {r4-r6}
- pop {r1}
- bx r1
- .align 2, 0
-_08021C58: .4byte gUnknown_203B290
- thumb_func_end CreateWigglytuffShop
-
- thumb_func_start sub_8021C5C
-sub_8021C5C:
- push {lr}
- ldr r0, _08021C74
- ldr r0, [r0]
- ldr r0, [r0, 0x4]
- cmp r0, 0x17
- bhi _08021D10
- lsls r0, 2
- ldr r1, _08021C78
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08021C74: .4byte gUnknown_203B290
-_08021C78: .4byte _08021C7C
- .align 2, 0
-_08021C7C:
- .4byte _08021CDC
- .4byte _08021CDC
- .4byte _08021D10
- .4byte _08021D10
- .4byte _08021D0C
- .4byte _08021D10
- .4byte _08021D10
- .4byte _08021D10
- .4byte _08021D10
- .4byte _08021CE2
- .4byte _08021CE2
- .4byte _08021CE8
- .4byte _08021D10
- .4byte _08021CF4
- .4byte _08021CFA
- .4byte _08021D10
- .4byte _08021D00
- .4byte _08021CEE
- .4byte _08021D10
- .4byte _08021D10
- .4byte _08021D10
- .4byte _08021D10
- .4byte _08021D06
- .4byte _08021D06
-_08021CDC:
- bl sub_8022460
- b _08021D14
-_08021CE2:
- bl sub_8022538
- b _08021D14
-_08021CE8:
- bl sub_80225C8
- b _08021D14
-_08021CEE:
- bl sub_80224D4
- b _08021D14
-_08021CF4:
- bl sub_80226F0
- b _08021D14
-_08021CFA:
- bl sub_8022790
- b _08021D14
-_08021D00:
- bl sub_8022668
- b _08021D14
-_08021D06:
- bl sub_8022684
- b _08021D14
-_08021D0C:
- movs r0, 0x3
- b _08021D16
-_08021D10:
- bl sub_80226CC
-_08021D14:
- movs r0, 0
-_08021D16:
- pop {r1}
- bx r1
- thumb_func_end sub_8021C5C
-
- thumb_func_start sub_8021D1C
-sub_8021D1C:
- push {r4,lr}
- ldr r4, _08021D40
- ldr r0, [r4]
- cmp r0, 0
- beq _08021D38
- adds r0, 0xBC
- ldr r0, [r0]
- bl CloseFile
- ldr r0, [r4]
- bl MemoryFree
- movs r0, 0
- str r0, [r4]
-_08021D38:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08021D40: .4byte gUnknown_203B290
- thumb_func_end sub_8021D1C
-
- thumb_func_start sub_8021D44
-sub_8021D44:
- push {lr}
- ldr r1, _08021D58
- ldr r1, [r1]
- str r0, [r1, 0x4]
- bl sub_8021D5C
- bl UpdateWigglytuffDialogue
- pop {r0}
- bx r0
- .align 2, 0
-_08021D58: .4byte gUnknown_203B290
- thumb_func_end sub_8021D44
-
- thumb_func_start sub_8021D5C
-sub_8021D5C:
- push {r4-r7,lr}
- ldr r4, _08021D7C
- ldr r0, [r4]
- adds r0, 0xD0
- bl sub_8006518
- ldr r1, [r4]
- ldr r0, [r1, 0x4]
- cmp r0, 0x9
- blt _08021DC8
- cmp r0, 0xA
- ble _08021D80
- cmp r0, 0xB
- beq _08021DB0
- b _08021DC8
- .align 2, 0
-_08021D7C: .4byte gUnknown_203B290
-_08021D80:
- ldr r2, _08021DA8
- adds r1, 0xD0
- adds r0, r2, 0
- ldm r0!, {r3,r5,r6}
- stm r1!, {r3,r5,r6}
- ldm r0!, {r3,r5,r7}
- stm r1!, {r3,r5,r7}
- ldr r0, [r4]
- movs r6, 0x80
- lsls r6, 1
- adds r0, r6
- ldm r2!, {r1,r3,r7}
- stm r0!, {r1,r3,r7}
- ldm r2!, {r5-r7}
- stm r0!, {r5-r7}
- ldr r1, [r4]
- adds r1, 0xE8
- ldr r0, _08021DAC
- b _08021DB8
- .align 2, 0
-_08021DA8: .4byte gUnknown_80DC534
-_08021DAC: .4byte gUnknown_80DC564
-_08021DB0:
- movs r0, 0x80
- lsls r0, 1
- adds r1, r0
- ldr r0, _08021DC4
-_08021DB8:
- ldm r0!, {r2-r4}
- stm r1!, {r2-r4}
- ldm r0!, {r5-r7}
- stm r1!, {r5-r7}
- b _08021DEC
- .align 2, 0
-_08021DC4: .4byte gUnknown_80DC54C
-_08021DC8:
- ldr r0, _08021E04
- mov r12, r0
- ldr r4, _08021E08
- movs r3, 0
- movs r2, 0x3
-_08021DD2:
- mov r5, r12
- ldr r1, [r5]
- adds r1, r3
- adds r1, 0xD0
- adds r0, r4, 0
- ldm r0!, {r5-r7}
- stm r1!, {r5-r7}
- ldm r0!, {r5-r7}
- stm r1!, {r5-r7}
- adds r3, 0x18
- subs r2, 0x1
- cmp r2, 0
- bge _08021DD2
-_08021DEC:
- bl ResetUnusedInputStruct
- ldr r0, _08021E04
- ldr r0, [r0]
- adds r0, 0xD0
- movs r1, 0x1
- movs r2, 0x1
- bl sub_800641C
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08021E04: .4byte gUnknown_203B290
-_08021E08: .4byte gUnknown_80DC534
- thumb_func_end sub_8021D5C
-
- thumb_func_start UpdateWigglytuffDialogue
-UpdateWigglytuffDialogue:
- push {r4,lr}
- sub sp, 0x20
- ldr r1, _08021E28
- ldr r0, [r1]
- ldr r0, [r0, 0x4]
- adds r4, r1, 0
- cmp r0, 0x1C
- bls _08021E1E
- b _080222B6
-_08021E1E:
- lsls r0, 2
- ldr r1, _08021E2C
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08021E28: .4byte gUnknown_203B290
-_08021E2C: .4byte _08021E30
- .align 2, 0
-_08021E30:
- .4byte _08021EA4
- .4byte _08021EC0
- .4byte _08021F38
- .4byte _08021F50
- .4byte _080222B6
- .4byte _08021F78
- .4byte _08021F90
- .4byte _08021F08
- .4byte _08021F20
- .4byte _08021FD8
- .4byte _08021FE2
- .4byte _08021FF0
- .4byte _0802208E
- .4byte _080220B8
- .4byte _080220D8
- .4byte _080220EA
- .4byte _08022080
- .4byte _08022024
- .4byte _08021FA8
- .4byte _08021FC0
- .4byte _08022138
- .4byte _08022150
- .4byte _08022168
- .4byte _08022176
- .4byte _0802217E
- .4byte _08022238
- .4byte _08022250
- .4byte _08022268
- .4byte _08022294
-_08021EA4:
- bl sub_80222C8
- ldr r2, _08021EB8
- ldr r0, _08021EBC
- ldr r4, [r0]
- ldr r1, [r4]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 4
- b _08021ED4
- .align 2, 0
-_08021EB8: .4byte gWigglytuffDialogue
-_08021EBC: .4byte gUnknown_203B290
-_08021EC0:
- bl sub_80222C8
- ldr r2, _08021F00
- ldr r0, _08021F04
- ldr r4, [r0]
- ldr r1, [r4]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 4
- adds r2, 0x4
-_08021ED4:
- adds r0, r2
- ldr r0, [r0]
- ldr r2, [r4, 0x14]
- adds r3, r4, 0
- adds r3, 0x1C
- adds r1, r4, 0
- adds r1, 0x5C
- str r1, [sp]
- movs r1, 0x4
- str r1, [sp, 0x4]
- movs r1, 0
- str r1, [sp, 0x8]
- adds r1, r4, 0
- adds r1, 0xCC
- ldr r1, [r1]
- str r1, [sp, 0xC]
- movs r1, 0xC
- str r1, [sp, 0x10]
- movs r1, 0
- bl sub_8014248
- b _080222B6
- .align 2, 0
-_08021F00: .4byte gWigglytuffDialogue
-_08021F04: .4byte gUnknown_203B290
-_08021F08:
- ldr r3, [r4]
- movs r0, 0x9
- str r0, [r3, 0x8]
- ldr r2, _08021F1C
- ldr r1, [r3]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 4
- adds r2, 0xC
- b _0802227A
- .align 2, 0
-_08021F1C: .4byte gWigglytuffDialogue
-_08021F20:
- ldr r3, [r4]
- movs r0, 0xA
- str r0, [r3, 0x8]
- ldr r2, _08021F34
- ldr r1, [r3]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 4
- adds r2, 0x10
- b _0802227A
- .align 2, 0
-_08021F34: .4byte gWigglytuffDialogue
-_08021F38:
- ldr r3, [r4]
- movs r0, 0x1
- str r0, [r3, 0x8]
- ldr r2, _08021F4C
- ldr r1, [r3]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 4
- adds r2, 0x4C
- b _0802227A
- .align 2, 0
-_08021F4C: .4byte gWigglytuffDialogue
-_08021F50:
- ldr r3, [r4]
- movs r0, 0x4
- str r0, [r3, 0x8]
- ldr r2, _08021F70
- ldr r1, [r3]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 4
- adds r2, 0x8
- adds r0, r2
- ldr r0, [r0]
- adds r3, 0xCC
- ldr r2, [r3]
- ldr r3, _08021F74
- b _08022284
- .align 2, 0
-_08021F70: .4byte gWigglytuffDialogue
-_08021F74: .4byte 0x0000030d
-_08021F78:
- ldr r3, [r4]
- movs r0, 0x3
- str r0, [r3, 0x8]
- ldr r2, _08021F8C
- ldr r1, [r3]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 4
- adds r2, 0x20
- b _0802227A
- .align 2, 0
-_08021F8C: .4byte gWigglytuffDialogue
-_08021F90:
- ldr r3, [r4]
- movs r0, 0xA
- str r0, [r3, 0x8]
- ldr r2, _08021FA4
- ldr r1, [r3]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 4
- adds r2, 0x24
- b _0802227A
- .align 2, 0
-_08021FA4: .4byte gWigglytuffDialogue
-_08021FA8:
- ldr r3, [r4]
- movs r0, 0x3
- str r0, [r3, 0x8]
- ldr r2, _08021FBC
- ldr r1, [r3]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 4
- adds r2, 0x28
- b _0802227A
- .align 2, 0
-_08021FBC: .4byte gWigglytuffDialogue
-_08021FC0:
- ldr r3, [r4]
- movs r0, 0xA
- str r0, [r3, 0x8]
- ldr r2, _08021FD4
- ldr r1, [r3]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 4
- adds r2, 0x2C
- b _0802227A
- .align 2, 0
-_08021FD4: .4byte gWigglytuffDialogue
-_08021FD8:
- movs r0, 0x2
- movs r1, 0x3
- bl sub_80211AC
- b _08021FE8
-_08021FE2:
- movs r0, 0x1
- bl sub_8021354
-_08021FE8:
- movs r0, 0x1
- bl DrawTeamMoneyBox
- b _080222B6
-_08021FF0:
- bl sub_8021494
- movs r0, 0x1
- bl DrawTeamMoneyBox
- bl sub_8022380
- ldr r0, _08022020
- ldr r2, [r0]
- adds r0, r2, 0
- adds r0, 0x6C
- adds r1, r2, 0
- adds r1, 0x1C
- adds r3, r2, 0
- adds r3, 0x5C
- ldr r2, [r2, 0x18]
- str r2, [sp]
- movs r2, 0x2
- str r2, [sp, 0x4]
- movs r2, 0
- bl sub_8012D60
- b _080222B6
- .align 2, 0
-_08022020: .4byte gUnknown_203B290
-_08022024:
- bl sub_8022420
- ldr r0, _08022070
- ldr r4, _08022074
- ldr r1, [r4]
- ldrb r1, [r1, 0x10]
- movs r2, 0
- bl sub_8092578
- ldr r1, _08022078
- ldr r4, [r4]
- ldr r0, [r4, 0xC]
- str r0, [r1]
- ldr r2, _0802207C
- ldr r1, [r4]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 4
- adds r2, 0x14
- adds r0, r2
- ldr r0, [r0]
- adds r3, r4, 0
- adds r3, 0x1C
- movs r2, 0
- str r2, [sp]
- movs r1, 0x4
- str r1, [sp, 0x4]
- str r2, [sp, 0x8]
- adds r4, 0xCC
- ldr r1, [r4]
- str r1, [sp, 0xC]
- movs r1, 0xC
- str r1, [sp, 0x10]
- movs r1, 0
- movs r2, 0x5
- bl sub_8014248
- b _080222B6
- .align 2, 0
-_08022070: .4byte gUnknown_202E628
-_08022074: .4byte gUnknown_203B290
-_08022078: .4byte gUnknown_202DE30
-_0802207C: .4byte gWigglytuffDialogue
-_08022080:
- ldr r0, [r4]
- ldrb r0, [r0, 0x10]
- movs r1, 0
- movs r2, 0x2
- bl sub_8021774
- b _080222B6
-_0802208E:
- ldr r1, [r4]
- movs r0, 0xD
- str r0, [r1, 0x8]
- ldr r0, _080220B0
- ldrb r1, [r1, 0x10]
- movs r2, 0
- bl sub_8092578
- ldr r2, _080220B4
- ldr r3, [r4]
- ldr r1, [r3]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 4
- adds r2, 0x18
- b _0802227A
- .align 2, 0
-_080220B0: .4byte gUnknown_202E628
-_080220B4: .4byte gWigglytuffDialogue
-_080220B8:
- ldr r1, [r4]
- movs r0, 0xE
- str r0, [r1, 0x8]
- ldr r0, _080220D4
- bl PlaySound
- ldr r0, [r4]
- movs r1, 0x98
- lsls r1, 1
- adds r0, r1
- movs r1, 0x1
- str r1, [r0]
- b _080222B6
- .align 2, 0
-_080220D4: .4byte 0x0000025b
-_080220D8:
- ldr r0, [r4]
- movs r1, 0xF
- str r1, [r0, 0x8]
- movs r1, 0x9A
- lsls r1, 1
- adds r0, r1
- movs r1, 0x1E
- str r1, [r0]
- b _080222B6
-_080220EA:
- movs r0, 0x2
- bl sub_8021700
- lsls r0, 24
- cmp r0, 0
- beq _08022108
- bl sub_80213A0
- ldr r0, _08022104
- ldr r1, [r0]
- movs r0, 0x12
- b _0802210E
- .align 2, 0
-_08022104: .4byte gUnknown_203B290
-_08022108:
- ldr r0, _08022130
- ldr r1, [r0]
- movs r0, 0x8
-_0802210E:
- str r0, [r1, 0x8]
- movs r0, 0xCE
- bl PlaySound
- ldr r3, _08022134
- ldr r0, _08022130
- ldr r2, [r0]
- ldr r1, [r2]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 4
- adds r3, 0x1C
- adds r0, r3
- ldr r0, [r0]
- adds r2, 0xCC
- ldr r2, [r2]
- b _08022282
- .align 2, 0
-_08022130: .4byte gUnknown_203B290
-_08022134: .4byte gWigglytuffDialogue
-_08022138:
- ldr r3, [r4]
- movs r0, 0x16
- str r0, [r3, 0x8]
- ldr r2, _0802214C
- ldr r1, [r3]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 4
- adds r2, 0x30
- b _0802227A
- .align 2, 0
-_0802214C: .4byte gWigglytuffDialogue
-_08022150:
- ldr r3, [r4]
- movs r0, 0x17
- str r0, [r3, 0x8]
- ldr r2, _08022164
- ldr r1, [r3]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 4
- adds r2, 0x34
- b _0802227A
- .align 2, 0
-_08022164: .4byte gWigglytuffDialogue
-_08022168:
- movs r0, 0
- movs r1, 0x3
- movs r2, 0
- movs r3, 0xA
- bl sub_8023144
- b _080222B6
-_08022176:
- movs r0, 0x1
- bl sub_8023354
- b _080222B6
-_0802217E:
- ldr r4, _080221A0
- ldr r0, [r4]
- ldrb r0, [r0, 0x10]
- add r1, sp, 0x14
- movs r2, 0
- movs r3, 0
- bl sub_8092638
- add r0, sp, 0x14
- ldrb r0, [r0, 0x4]
- cmp r0, 0
- beq _080221A4
- ldr r1, [r4]
- movs r0, 0x19
- str r0, [r1, 0x8]
- b _080221FA
- .align 2, 0
-_080221A0: .4byte gUnknown_203B290
-_080221A4:
- ldr r0, [r4]
- ldrb r0, [r0, 0x10]
- bl GetFriendAreaUnlockCondition
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x2
- beq _080221E0
- cmp r0, 0x2
- bgt _080221BE
- cmp r0, 0x1
- beq _080221C4
- b _080221F0
-_080221BE:
- cmp r0, 0x3
- beq _080221E8
- b _080221F0
-_080221C4:
- movs r0, 0x6
- bl sub_80023E4
- lsls r0, 24
- cmp r0, 0
- beq _080221D8
- ldr r1, [r4]
- movs r0, 0x15
- str r0, [r1, 0x8]
- b _080221FA
-_080221D8:
- ldr r1, [r4]
- movs r0, 0x1A
- str r0, [r1, 0x8]
- b _080221FA
-_080221E0:
- ldr r1, [r4]
- movs r0, 0x1B
- str r0, [r1, 0x8]
- b _080221FA
-_080221E8:
- ldr r1, [r4]
- movs r0, 0x1C
- str r0, [r1, 0x8]
- b _080221FA
-_080221F0:
- ldr r2, _08022228
- ldr r1, [r2]
- movs r0, 0x15
- str r0, [r1, 0x8]
- adds r4, r2, 0
-_080221FA:
- ldr r0, [r4]
- movs r1, 0x12
- ldrsh r0, [r0, r1]
- bl GetMonSpecies
- adds r1, r0, 0
- ldr r0, _0802222C
- bl strcpy
- ldr r0, _08022230
- ldr r1, [r4]
- ldrb r1, [r1, 0x10]
- movs r2, 0
- bl sub_8092578
- ldr r2, _08022234
- ldr r3, [r4]
- ldr r1, [r3]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 4
- adds r2, 0x38
- b _0802227A
- .align 2, 0
-_08022228: .4byte gUnknown_203B290
-_0802222C: .4byte gAvailablePokemonNames
-_08022230: .4byte gUnknown_202E628
-_08022234: .4byte gWigglytuffDialogue
-_08022238:
- ldr r3, [r4]
- movs r0, 0x15
- str r0, [r3, 0x8]
- ldr r2, _0802224C
- ldr r1, [r3]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 4
- adds r2, 0x3C
- b _0802227A
- .align 2, 0
-_0802224C: .4byte gWigglytuffDialogue
-_08022250:
- ldr r3, [r4]
- movs r0, 0x15
- str r0, [r3, 0x8]
- ldr r2, _08022264
- ldr r1, [r3]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 4
- adds r2, 0x40
- b _0802227A
- .align 2, 0
-_08022264: .4byte gWigglytuffDialogue
-_08022268:
- ldr r3, [r4]
- movs r0, 0x15
- str r0, [r3, 0x8]
- ldr r2, _0802228C
- ldr r1, [r3]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 4
- adds r2, 0x44
-_0802227A:
- adds r0, r2
- ldr r0, [r0]
- adds r3, 0xCC
- ldr r2, [r3]
-_08022282:
- ldr r3, _08022290
-_08022284:
- movs r1, 0
- bl sub_80141B4
- b _080222B6
- .align 2, 0
-_0802228C: .4byte gWigglytuffDialogue
-_08022290: .4byte 0x0000010d
-_08022294:
- ldr r3, [r4]
- movs r0, 0x15
- str r0, [r3, 0x8]
- ldr r2, _080222C0
- ldr r1, [r3]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 4
- adds r2, 0x48
- adds r0, r2
- ldr r0, [r0]
- adds r3, 0xCC
- ldr r2, [r3]
- ldr r3, _080222C4
- movs r1, 0
- bl sub_80141B4
-_080222B6:
- add sp, 0x20
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080222C0: .4byte gWigglytuffDialogue
-_080222C4: .4byte 0x0000010d
- thumb_func_end UpdateWigglytuffDialogue
-
- thumb_func_start sub_80222C8
-sub_80222C8:
- push {r4-r7,lr}
- ldr r4, _08022344
- ldr r0, [r4]
- adds r0, 0x5C
- movs r1, 0
- movs r2, 0x10
- bl MemoryFill16
- ldr r1, [r4]
- movs r5, 0
- ldr r0, _08022348
- ldr r0, [r0]
- str r0, [r1, 0x1C]
- adds r3, r1, 0
- adds r3, 0x20
- movs r0, 0x2
- str r0, [r1, 0x20]
- movs r2, 0x1
- ldr r0, _0802234C
- ldr r0, [r0]
- str r0, [r1, 0x24]
- movs r0, 0x3
- str r0, [r1, 0x28]
- ldr r0, _08022350
- ldr r0, [r0]
- str r0, [r1, 0x2C]
- movs r0, 0x4
- str r0, [r1, 0x30]
- ldr r0, _08022354
- ldr r0, [r0]
- str r0, [r1, 0x34]
- str r2, [r1, 0x38]
- movs r7, 0x4
- str r5, [r1, 0x3C]
- str r2, [r3, 0x20]
- adds r6, r1, 0
- adds r2, r6, 0
- adds r2, 0x5C
-_08022314:
- ldrh r0, [r2]
- cmp r0, 0
- bne _08022322
- ldr r1, [r3]
- ldr r0, [r6, 0x14]
- cmp r1, r0
- beq _0802237A
-_08022322:
- adds r3, 0x8
- adds r2, 0x2
- adds r5, 0x1
- cmp r5, r7
- blt _08022314
- movs r5, 0
- cmp r5, r7
- bge _0802237A
- ldr r1, [r4]
- adds r0, r1, 0
- adds r0, 0x5C
- ldrh r0, [r0]
- cmp r0, 0
- bne _08022358
- ldr r0, [r1, 0x20]
- str r0, [r1, 0x14]
- b _0802237A
- .align 2, 0
-_08022344: .4byte gUnknown_203B290
-_08022348: .4byte gUnknown_80D4978
-_0802234C: .4byte gWigglytuffCheck
-_08022350: .4byte gUnknown_80D4970
-_08022354: .4byte gUnknown_80D4934
-_08022358:
- adds r5, 0x1
- cmp r5, r7
- bge _0802237A
- ldr r2, [r4]
- lsls r0, r5, 1
- adds r1, r2, 0
- adds r1, 0x5C
- adds r1, r0
- ldrh r0, [r1]
- cmp r0, 0
- bne _08022358
- lsls r0, r5, 3
- adds r1, r2, 0
- adds r1, 0x20
- adds r1, r0
- ldr r0, [r1]
- str r0, [r2, 0x14]
-_0802237A:
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_80222C8
-
- thumb_func_start sub_8022380
-sub_8022380:
- push {r4-r7,lr}
- ldr r4, _080223EC
- ldr r0, [r4]
- adds r0, 0x5C
- movs r1, 0
- movs r2, 0x10
- bl MemoryFill16
- ldr r3, [r4]
- movs r2, 0
- ldr r0, _080223F0
- ldr r0, [r0]
- str r0, [r3, 0x1C]
- movs r0, 0x2
- str r0, [r3, 0x20]
- movs r1, 0x1
- ldr r0, _080223F4
- ldr r0, [r0]
- str r0, [r3, 0x24]
- movs r0, 0x4
- str r0, [r3, 0x28]
- movs r6, 0x2
- str r2, [r3, 0x2C]
- str r1, [r3, 0x30]
- movs r5, 0
- mov r12, r3
- adds r3, 0x20
- mov r2, r12
- adds r2, 0x5C
-_080223BA:
- ldrh r0, [r2]
- cmp r0, 0
- bne _080223CA
- ldr r1, [r3]
- mov r7, r12
- ldr r0, [r7, 0x18]
- cmp r1, r0
- beq _0802241A
-_080223CA:
- adds r3, 0x8
- adds r2, 0x2
- adds r5, 0x1
- cmp r5, r6
- blt _080223BA
- movs r5, 0
- cmp r5, r6
- bge _0802241A
- ldr r1, [r4]
- adds r0, r1, 0
- adds r0, 0x5C
- ldrh r0, [r0]
- cmp r0, 0
- bne _080223F8
- ldr r0, [r1, 0x20]
- str r0, [r1, 0x18]
- b _0802241A
- .align 2, 0
-_080223EC: .4byte gUnknown_203B290
-_080223F0: .4byte gUnknown_80D4978
-_080223F4: .4byte gUnknown_80D4970
-_080223F8:
- adds r5, 0x1
- cmp r5, r6
- bge _0802241A
- ldr r2, [r4]
- lsls r0, r5, 1
- adds r1, r2, 0
- adds r1, 0x5C
- adds r1, r0
- ldrh r0, [r1]
- cmp r0, 0
- bne _080223F8
- lsls r0, r5, 3
- adds r1, r2, 0
- adds r1, 0x20
- adds r1, r0
- ldr r0, [r1]
- str r0, [r2, 0x18]
-_0802241A:
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_8022380
-
- thumb_func_start sub_8022420
-sub_8022420:
- push {r4,lr}
- ldr r4, _08022454
- ldr r0, [r4]
- adds r0, 0x5C
- movs r1, 0
- movs r2, 0x10
- bl MemoryFill16
- ldr r1, [r4]
- movs r3, 0
- ldr r0, _08022458
- ldr r0, [r0]
- str r0, [r1, 0x1C]
- movs r0, 0x5
- str r0, [r1, 0x20]
- movs r2, 0x1
- ldr r0, _0802245C
- ldr r0, [r0]
- str r0, [r1, 0x24]
- movs r0, 0x6
- str r0, [r1, 0x28]
- str r3, [r1, 0x2C]
- str r2, [r1, 0x30]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08022454: .4byte gUnknown_203B290
-_08022458: .4byte gUnknown_80D4920
-_0802245C: .4byte gUnknown_80D4928
- thumb_func_end sub_8022420
-
- thumb_func_start sub_8022460
-sub_8022460:
- push {lr}
- sub sp, 0x4
- mov r0, sp
- bl sub_80144A4
- cmp r0, 0
- bne _080224CC
- ldr r1, [sp]
- cmp r1, 0x1
- beq _0802247A
- ldr r0, _0802248C
- ldr r0, [r0]
- str r1, [r0, 0x14]
-_0802247A:
- ldr r0, [sp]
- cmp r0, 0x2
- beq _0802249A
- cmp r0, 0x2
- bgt _08022490
- cmp r0, 0x1
- beq _080224C6
- b _080224CC
- .align 2, 0
-_0802248C: .4byte gUnknown_203B290
-_08022490:
- cmp r0, 0x3
- beq _080224B6
- cmp r0, 0x4
- beq _080224BE
- b _080224CC
-_0802249A:
- movs r0, 0x2
- bl sub_8021700
- lsls r0, 24
- cmp r0, 0
- beq _080224AE
- movs r0, 0x5
- bl sub_8021D44
- b _080224CC
-_080224AE:
- movs r0, 0x7
- bl sub_8021D44
- b _080224CC
-_080224B6:
- movs r0, 0x14
- bl sub_8021D44
- b _080224CC
-_080224BE:
- movs r0, 0x2
- bl sub_8021D44
- b _080224CC
-_080224C6:
- movs r0, 0x3
- bl sub_8021D44
-_080224CC:
- add sp, 0x4
- pop {r0}
- bx r0
- thumb_func_end sub_8022460
-
- thumb_func_start sub_80224D4
-sub_80224D4:
- push {lr}
- sub sp, 0x4
- mov r0, sp
- bl sub_80144A4
- cmp r0, 0
- bne _08022532
- ldr r0, [sp]
- cmp r0, 0x5
- beq _080224F8
- cmp r0, 0x5
- bgt _080224F2
- cmp r0, 0x1
- beq _0802252C
- b _08022532
-_080224F2:
- cmp r0, 0x6
- beq _0802252C
- b _08022532
-_080224F8:
- ldr r0, _08022524
- ldr r2, [r0]
- movs r0, 0x98
- lsls r0, 2
- adds r2, r0
- ldr r0, _08022528
- ldr r3, [r0]
- ldr r0, [r2]
- ldr r1, [r3, 0xC]
- subs r0, r1
- str r0, [r2]
- ldrb r0, [r3, 0x10]
- bl UnlockFriendArea
- movs r0, 0xA6
- lsls r0, 1
- bl PlaySound
- movs r0, 0xC
- bl sub_8021D44
- b _08022532
- .align 2, 0
-_08022524: .4byte gTeamInventory_203B460
-_08022528: .4byte gUnknown_203B290
-_0802252C:
- movs r0, 0xA
- bl sub_8021D44
-_08022532:
- add sp, 0x4
- pop {r0}
- bx r0
- thumb_func_end sub_80224D4
-
- thumb_func_start sub_8022538
-sub_8022538:
- push {r4,lr}
- movs r0, 0x1
- bl sub_8021274
- cmp r0, 0x4
- bhi _080225BC
- lsls r0, 2
- ldr r1, _08022550
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08022550: .4byte _08022554
- .align 2, 0
-_08022554:
- .4byte _080225C2
- .4byte _080225BC
- .4byte _080225B0
- .4byte _08022568
- .4byte _0802258C
-_08022568:
- bl sub_802132C
- ldr r4, _08022588
- ldr r1, [r4]
- strb r0, [r1, 0x10]
- ldr r0, [r4]
- ldrb r0, [r0, 0x10]
- bl GetFriendAreaPrice
- ldr r1, [r4]
- str r0, [r1, 0xC]
- movs r0, 0xB
- bl sub_8021D44
- b _080225C2
- .align 2, 0
-_08022588: .4byte gUnknown_203B290
-_0802258C:
- bl sub_802132C
- ldr r4, _080225AC
- ldr r1, [r4]
- strb r0, [r1, 0x10]
- ldr r0, [r4]
- ldrb r0, [r0, 0x10]
- bl GetFriendAreaPrice
- ldr r1, [r4]
- str r0, [r1, 0xC]
- movs r0, 0x10
- bl sub_8021D44
- b _080225C2
- .align 2, 0
-_080225AC: .4byte gUnknown_203B290
-_080225B0:
- bl sub_80213A0
- movs r0, 0x1
- bl sub_8021D44
- b _080225C2
-_080225BC:
- movs r0, 0x1
- bl DrawTeamMoneyBox
-_080225C2:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_8022538
-
- thumb_func_start sub_80225C8
-sub_80225C8:
- push {r4,lr}
- sub sp, 0x4
- movs r0, 0
- str r0, [sp]
- bl sub_8021274
- ldr r4, _08022608
- ldr r0, [r4]
- adds r0, 0x6C
- bl sub_8012FD8
- lsls r0, 24
- cmp r0, 0
- bne _080225F8
- ldr r0, [r4]
- adds r0, 0x6C
- mov r1, sp
- bl sub_8013114
- ldr r1, [sp]
- cmp r1, 0x1
- beq _080225F8
- ldr r0, [r4]
- str r1, [r0, 0x18]
-_080225F8:
- ldr r0, [sp]
- cmp r0, 0x2
- beq _08022612
- cmp r0, 0x2
- bgt _0802260C
- cmp r0, 0x1
- beq _08022658
- b _0802265E
- .align 2, 0
-_08022608: .4byte gUnknown_203B290
-_0802260C:
- cmp r0, 0x4
- beq _08022650
- b _0802265E
-_08022612:
- ldr r0, _0802262C
- ldr r0, [r0]
- movs r1, 0x98
- lsls r1, 2
- adds r0, r1
- ldr r1, [r0]
- cmp r1, 0
- bne _08022630
- movs r0, 0x6
- bl sub_8021D44
- b _0802265E
- .align 2, 0
-_0802262C: .4byte gTeamInventory_203B460
-_08022630:
- ldr r0, _08022644
- ldr r0, [r0]
- ldr r0, [r0, 0xC]
- cmp r0, r1
- ble _08022648
- movs r0, 0x13
- bl sub_8021D44
- b _0802265E
- .align 2, 0
-_08022644: .4byte gUnknown_203B290
-_08022648:
- movs r0, 0x11
- bl sub_8021D44
- b _0802265E
-_08022650:
- movs r0, 0x10
- bl sub_8021D44
- b _0802265E
-_08022658:
- movs r0, 0xA
- bl sub_8021D44
-_0802265E:
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80225C8
-
- thumb_func_start sub_8022668
-sub_8022668:
- push {lr}
- bl sub_80217EC
- cmp r0, 0x1
- bls _08022680
- cmp r0, 0x3
- bhi _08022680
- bl sub_8021830
- movs r0, 0xA
- bl sub_8021D44
-_08022680:
- pop {r0}
- bx r0
- thumb_func_end sub_8022668
-
- thumb_func_start sub_8022684
-sub_8022684:
- push {r4,lr}
- movs r0, 0x1
- bl sub_8023278
- cmp r0, 0x2
- beq _080226BC
- cmp r0, 0x2
- bcc _080226C6
- cmp r0, 0x3
- bne _080226C6
- bl sub_802331C
- ldr r4, _080226B8
- ldr r1, [r4]
- strh r0, [r1, 0x12]
- movs r2, 0x12
- ldrsh r0, [r1, r2]
- bl GetFriendArea
- ldr r1, [r4]
- strb r0, [r1, 0x10]
- movs r0, 0x18
- bl sub_8021D44
- b _080226C6
- .align 2, 0
-_080226B8: .4byte gUnknown_203B290
-_080226BC:
- bl sub_80233A0
- movs r0, 0x1
- bl sub_8021D44
-_080226C6:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_8022684
-
- thumb_func_start sub_80226CC
-sub_80226CC:
- push {lr}
- sub sp, 0x4
- mov r0, sp
- bl sub_80144A4
- cmp r0, 0
- bne _080226E4
- ldr r0, _080226EC
- ldr r0, [r0]
- ldr r0, [r0, 0x8]
- bl sub_8021D44
-_080226E4:
- add sp, 0x4
- pop {r0}
- bx r0
- .align 2, 0
-_080226EC: .4byte gUnknown_203B290
- thumb_func_end sub_80226CC
-
- thumb_func_start sub_80226F0
-sub_80226F0:
- push {r4,lr}
- sub sp, 0x4
- mov r1, sp
- movs r2, 0
- movs r0, 0x80
- strb r0, [r1]
- strb r0, [r1, 0x1]
- movs r0, 0x10
- strb r0, [r1, 0x2]
- strb r2, [r1, 0x3]
- bl sub_8099B94
- lsls r0, 24
- cmp r0, 0
- bne _08022782
- ldr r0, _08022728
- ldr r0, [r0]
- movs r1, 0x98
- lsls r1, 1
- adds r0, r1
- ldr r0, [r0]
- cmp r0, 0x4
- bhi _0802275C
- lsls r0, 2
- ldr r1, _0802272C
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08022728: .4byte gUnknown_203B290
-_0802272C: .4byte _08022730
- .align 2, 0
-_08022730:
- .4byte _0802275C
- .4byte _08022744
- .4byte _08022750
- .4byte _08022744
- .4byte _08022750
-_08022744:
- movs r0, 0x5
- movs r1, 0x2
- ldr r2, [sp]
- bl sub_8099AFC
- b _08022772
-_08022750:
- movs r0, 0x5
- movs r1, 0x2
- ldr r2, [sp]
- bl sub_8099A5C
- b _08022772
-_0802275C:
- ldr r4, _0802278C
- ldr r0, [r4]
- ldr r0, [r0, 0x8]
- bl sub_8021D44
- ldr r0, [r4]
- movs r1, 0x98
- lsls r1, 1
- adds r0, r1
- movs r1, 0
- str r1, [r0]
-_08022772:
- ldr r0, _0802278C
- ldr r1, [r0]
- movs r0, 0x98
- lsls r0, 1
- adds r1, r0
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
-_08022782:
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0802278C: .4byte gUnknown_203B290
- thumb_func_end sub_80226F0
-
- thumb_func_start sub_8022790
-sub_8022790:
- push {lr}
- ldr r0, _080227A8
- ldr r2, [r0]
- movs r0, 0x9A
- lsls r0, 1
- adds r1, r2, r0
- ldr r0, [r1]
- cmp r0, 0
- beq _080227AC
- subs r0, 0x1
- str r0, [r1]
- b _080227B2
- .align 2, 0
-_080227A8: .4byte gUnknown_203B290
-_080227AC:
- ldr r0, [r2, 0x8]
- bl sub_8021D44
-_080227B2:
- pop {r0}
- bx r0
- thumb_func_end sub_8022790
-
- thumb_func_start sub_80227B8
-sub_80227B8:
- push {r4,r5,lr}
- adds r5, r0, 0
- bl ResetUnusedInputStruct
- movs r0, 0
- movs r1, 0x1
- movs r2, 0x1
- bl sub_800641C
- ldr r4, _08022810
- movs r0, 0xD4
- lsls r0, 1
- movs r1, 0x8
- bl MemoryAlloc
- str r0, [r4]
- adds r2, r0, 0
- adds r2, 0xF4
- movs r1, 0
- str r1, [r2]
- str r5, [r0, 0x48]
- cmp r5, 0
- beq _08022820
- ldr r4, _08022814
- adds r0, r4, 0
- adds r1, r5, 0
- movs r2, 0x7
- bl sub_808D9AC
- adds r4, 0x50
- adds r0, r4, 0
- adds r1, r5, 0
- movs r2, 0x6
- bl sub_808D9AC
- bl HasGummiItem
- lsls r0, 24
- cmp r0, 0
- beq _08022818
- movs r0, 0
- bl sub_8022924
- b _08022856
- .align 2, 0
-_08022810: .4byte gUnknown_203B294
-_08022814: .4byte gAvailablePokemonNames
-_08022818:
- movs r0, 0x11
- bl sub_8022924
- b _08022856
-_08022820:
- ldr r4, _08022848
- ldr r5, _0802284C
- adds r0, r4, 0
- adds r1, r5, 0
- bl strcpy
- adds r4, 0x50
- adds r0, r4, 0
- adds r1, r5, 0
- bl strcpy
- bl GetNumberOfFilledInventorySlots
- cmp r0, 0
- bne _08022850
- movs r0, 0x12
- bl sub_8022924
- b _08022856
- .align 2, 0
-_08022848: .4byte gAvailablePokemonNames
-_0802284C: .4byte gUnknown_80DC5EC
-_08022850:
- movs r0, 0
- bl sub_8022924
-_08022856:
- movs r0, 0x1
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_80227B8
-
- thumb_func_start sub_8022860
-sub_8022860:
- push {lr}
- ldr r0, _08022878
- ldr r0, [r0]
- ldr r0, [r0]
- cmp r0, 0x16
- bhi _080228FE
- lsls r0, 2
- ldr r1, _0802287C
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08022878: .4byte gUnknown_203B294
-_0802287C: .4byte _08022880
- .align 2, 0
-_08022880:
- .4byte _080228DC
- .4byte _080228DC
- .4byte _080228E2
- .4byte _080228E8
- .4byte _080228EE
- .4byte _080228FE
- .4byte _080228FE
- .4byte _080228FE
- .4byte _080228FE
- .4byte _080228FE
- .4byte _080228FE
- .4byte _080228FE
- .4byte _080228FE
- .4byte _080228FE
- .4byte _080228FE
- .4byte _080228FE
- .4byte _080228FE
- .4byte _080228FE
- .4byte _080228FE
- .4byte _080228FE
- .4byte _080228FE
- .4byte _080228F4
- .4byte _080228FA
-_080228DC:
- bl sub_8022E78
- b _08022902
-_080228E2:
- bl sub_8022EF4
- b _08022902
-_080228E8:
- bl sub_8023068
- b _08022902
-_080228EE:
- bl sub_80230E8
- b _08022902
-_080228F4:
- bl sub_8023104
- b _08022902
-_080228FA:
- movs r0, 0x3
- b _08022904
-_080228FE:
- bl sub_8023120
-_08022902:
- movs r0, 0
-_08022904:
- pop {r1}
- bx r1
- thumb_func_end sub_8022860
-
- thumb_func_start sub_8022908
-sub_8022908:
- push {r4,lr}
- ldr r4, _08022920
- ldr r0, [r4]
- cmp r0, 0
- beq _0802291A
- bl MemoryFree
- movs r0, 0
- str r0, [r4]
-_0802291A:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08022920: .4byte gUnknown_203B294
- thumb_func_end sub_8022908
-
- thumb_func_start sub_8022924
-sub_8022924:
- push {lr}
- ldr r1, _08022938
- ldr r1, [r1]
- str r0, [r1]
- bl sub_802293C
- bl sub_8022A10
- pop {r0}
- bx r0
- .align 2, 0
-_08022938: .4byte gUnknown_203B294
- thumb_func_end sub_8022924
-
- thumb_func_start sub_802293C
-sub_802293C:
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- ldr r4, _08022964
- ldr r0, [r4]
- movs r1, 0xA4
- lsls r1, 1
- adds r0, r1
- bl sub_8006518
- ldr r1, [r4]
- ldr r0, [r1]
- cmp r0, 0x3
- beq _080229A4
- cmp r0, 0x3
- bgt _08022968
- cmp r0, 0x2
- beq _08022972
- b _080229BC
- .align 2, 0
-_08022964: .4byte gUnknown_203B294
-_08022968:
- cmp r0, 0x10
- bgt _080229BC
- cmp r0, 0xA
- blt _080229BC
- b _080229E6
-_08022972:
- bl sub_8022D2C
- ldr r2, [r4]
- movs r0, 0xBC
- lsls r0, 1
- adds r2, r0
- ldr r1, _080229A0
- ldm r1!, {r3,r5,r6}
- stm r2!, {r3,r5,r6}
- ldm r1!, {r3,r5,r7}
- stm r2!, {r3,r5,r7}
- ldr r1, [r4]
- adds r0, r1, r0
- adds r1, 0xF8
- bl sub_8012CAC
- ldr r0, [r4]
- movs r6, 0xC2
- lsls r6, 1
- adds r0, r6
- movs r1, 0x6
- strh r1, [r0]
- b _080229E6
- .align 2, 0
-_080229A0: .4byte gUnknown_80DC5BC
-_080229A4:
- movs r7, 0xB0
- lsls r7, 1
- adds r1, r7
- ldr r0, _080229B8
- ldm r0!, {r2-r4}
- stm r1!, {r2-r4}
- ldm r0!, {r5-r7}
- stm r1!, {r5-r7}
- b _080229E6
- .align 2, 0
-_080229B8: .4byte gUnknown_80DC5D4
-_080229BC:
- ldr r0, _08022A08
- mov r12, r0
- movs r1, 0xA4
- lsls r1, 1
- mov r8, r1
- ldr r4, _08022A0C
- movs r3, 0
- movs r2, 0x3
-_080229CC:
- mov r5, r12
- ldr r1, [r5]
- adds r1, r3
- add r1, r8
- adds r0, r4, 0
- ldm r0!, {r5-r7}
- stm r1!, {r5-r7}
- ldm r0!, {r5-r7}
- stm r1!, {r5-r7}
- adds r3, 0x18
- subs r2, 0x1
- cmp r2, 0
- bge _080229CC
-_080229E6:
- bl ResetUnusedInputStruct
- ldr r0, _08022A08
- ldr r0, [r0]
- movs r6, 0xA4
- lsls r6, 1
- adds r0, r6
- movs r1, 0x1
- movs r2, 0x1
- bl sub_800641C
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08022A08: .4byte gUnknown_203B294
-_08022A0C: .4byte gUnknown_80DC5A4
- thumb_func_end sub_802293C
-
- thumb_func_start sub_8022A10
-sub_8022A10:
- push {r4-r7,lr}
- sub sp, 0x8
- ldr r1, _08022A2C
- ldr r0, [r1]
- ldr r0, [r0]
- adds r4, r1, 0
- cmp r0, 0x16
- bls _08022A22
- b _08022D1E
-_08022A22:
- lsls r0, 2
- ldr r1, _08022A30
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08022A2C: .4byte gUnknown_203B294
-_08022A30: .4byte _08022A34
- .align 2, 0
-_08022A34:
- .4byte _08022A90
- .4byte _08022AAA
- .4byte _08022AB2
- .4byte _08022AE0
- .4byte _08022B10
- .4byte _08022B1A
- .4byte _08022B24
- .4byte _08022B34
- .4byte _08022B44
- .4byte _08022B54
- .4byte _08022B64
- .4byte _08022C28
- .4byte _08022CA0
- .4byte _08022CA8
- .4byte _08022CB0
- .4byte _08022CB8
- .4byte _08022CC0
- .4byte _08022CC8
- .4byte _08022CD8
- .4byte _08022CE8
- .4byte _08022CF8
- .4byte _08022D14
- .4byte _08022D1E
-_08022A90:
- ldr r0, [r4]
- ldr r0, [r0, 0x48]
- cmp r0, 0
- beq _08022A9C
- movs r0, 0x5
- b _08022A9E
-_08022A9C:
- movs r0, 0x1
-_08022A9E:
- movs r1, 0x3
- movs r2, 0
- movs r3, 0xA
- bl sub_801A5D8
- b _08022D22
-_08022AAA:
- movs r0, 0x1
- bl sub_801A8D0
- b _08022D22
-_08022AB2:
- bl sub_801A9E0
- ldr r0, _08022ADC
- ldr r2, [r0]
- adds r0, r2, 0
- adds r0, 0x54
- adds r1, r2, 0
- adds r1, 0xF8
- movs r4, 0x9C
- lsls r4, 1
- adds r3, r2, r4
- adds r2, 0xF4
- ldr r2, [r2]
- str r2, [sp]
- movs r2, 0x2
- str r2, [sp, 0x4]
- movs r2, 0
- bl sub_8012D60
- b _08022D22
- .align 2, 0
-_08022ADC: .4byte gUnknown_203B294
-_08022AE0:
- bl sub_801A9E0
- ldr r4, _08022B08
- ldr r0, [r4]
- adds r0, 0x54
- movs r1, 0
- bl sub_8012EA4
- ldr r0, [r4]
- adds r0, 0xA4
- ldr r1, _08022B0C
- movs r2, 0x3
- str r2, [sp]
- movs r2, 0x1
- str r2, [sp, 0x4]
- movs r2, 0
- movs r3, 0
- bl sub_8012D60
- b _08022D22
- .align 2, 0
-_08022B08: .4byte gUnknown_203B294
-_08022B0C: .4byte gUnknown_80DC584
-_08022B10:
- ldr r0, [r4]
- adds r0, 0x50
- bl sub_801B3C0
- b _08022D22
-_08022B1A:
- ldr r0, _08022B20
- b _08022D00
- .align 2, 0
-_08022B20: .4byte gUnknown_80DC5F4
-_08022B24:
- ldr r0, _08022B2C
- ldr r3, _08022B30
- b _08022D02
- .align 2, 0
-_08022B2C: .4byte gUnknown_80DC618
-_08022B30: .4byte 0x00000101
-_08022B34:
- ldr r0, _08022B3C
- ldr r3, _08022B40
- b _08022D02
- .align 2, 0
-_08022B3C: .4byte gUnknown_80DC674
-_08022B40: .4byte 0x00000101
-_08022B44:
- ldr r0, _08022B4C
- ldr r3, _08022B50
- b _08022D02
- .align 2, 0
-_08022B4C: .4byte gUnknown_80DC6CC
-_08022B50: .4byte 0x00000101
-_08022B54:
- ldr r0, _08022B5C
- ldr r3, _08022B60
- b _08022D02
- .align 2, 0
-_08022B5C: .4byte gUnknown_80DC728
-_08022B60: .4byte 0x00000101
-_08022B64:
- ldr r7, _08022B68
- b _08022B78
- .align 2, 0
-_08022B68: .4byte gUnknown_203B294
-_08022B6C:
- ldr r1, [r4]
- ldr r0, [r1, 0x40]
- adds r0, 0x1
- str r0, [r1, 0x40]
- cmp r0, 0x17
- bgt _08022C10
-_08022B78:
- movs r5, 0
- movs r6, 0
- movs r3, 0
- ldr r2, [r4]
- ldr r0, [r2, 0x38]
- cmp r5, r0
- bge _08022BA4
- ldrb r1, [r2, 0x8]
- b _08022B9C
-_08022B8A:
- adds r3, 0x1
- ldr r2, [r4]
- ldr r0, [r2, 0x38]
- cmp r3, r0
- bge _08022BA4
- adds r0, r2, 0
- adds r0, 0x8
- adds r0, r3
- ldrb r1, [r0]
-_08022B9C:
- ldr r0, [r2, 0x40]
- cmp r1, r0
- bne _08022B8A
- movs r5, 0x1
-_08022BA4:
- movs r3, 0
- ldr r2, [r4]
- ldr r0, [r2, 0x3C]
- cmp r3, r0
- bge _08022BCE
- adds r0, r2, 0
- adds r0, 0x20
- b _08022BC4
-_08022BB4:
- adds r3, 0x1
- ldr r2, [r4]
- ldr r0, [r2, 0x3C]
- cmp r3, r0
- bge _08022BCE
- adds r0, r2, 0
- adds r0, 0x20
- adds r0, r3
-_08022BC4:
- ldrb r1, [r0]
- ldr r0, [r2, 0x40]
- cmp r1, r0
- bne _08022BB4
- movs r6, 0x1
-_08022BCE:
- cmp r5, r6
- beq _08022B6C
- ldr r1, [r7]
- movs r0, 0xA
- str r0, [r1, 0x4]
- ldr r0, [r1, 0x40]
- lsls r0, 24
- lsrs r0, 24
- bl GetIQSkillName
- adds r1, r0, 0
- ldr r0, _08022C18
- bl strcpy
- movs r0, 0xCB
- bl PlaySound
- ldr r0, _08022C1C
- movs r1, 0
- movs r2, 0
- ldr r3, _08022C20
- bl sub_80141B4
- ldr r1, [r7]
- ldr r0, [r1, 0x40]
- adds r0, 0x1
- str r0, [r1, 0x40]
- ldr r0, _08022C24
- ldr r0, [r0]
- ldr r0, [r0, 0x40]
- cmp r0, 0x17
- bgt _08022C10
- b _08022D22
-_08022C10:
- movs r0, 0xB
- bl sub_8022924
- b _08022D22
- .align 2, 0
-_08022C18: .4byte gUnknown_202DEA8
-_08022C1C: .4byte gUnknown_80DC788
-_08022C20: .4byte 0x00000101
-_08022C24: .4byte gUnknown_203B294
-_08022C28:
- ldr r1, [r4]
- movs r0, 0x16
- str r0, [r1, 0x4]
- bl nullsub_104
- ldr r0, [r4]
- adds r0, 0x46
- ldrh r0, [r0]
- cmp r0, 0x8
- bhi _08022C98
- lsls r0, 2
- ldr r1, _08022C48
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08022C48: .4byte _08022C4C
- .align 2, 0
-_08022C4C:
- .4byte _08022C70
- .4byte _08022C78
- .4byte _08022C80
- .4byte _08022C98
- .4byte _08022C88
- .4byte _08022C98
- .4byte _08022C98
- .4byte _08022C98
- .4byte _08022C90
-_08022C70:
- movs r0, 0x16
- bl sub_8022924
- b _08022D22
-_08022C78:
- movs r0, 0xD
- bl sub_8022924
- b _08022D22
-_08022C80:
- movs r0, 0xE
- bl sub_8022924
- b _08022D22
-_08022C88:
- movs r0, 0xF
- bl sub_8022924
- b _08022D22
-_08022C90:
- movs r0, 0x10
- bl sub_8022924
- b _08022D22
-_08022C98:
- movs r0, 0xC
- bl sub_8022924
- b _08022D22
-_08022CA0:
- ldr r0, _08022CA4
- b _08022D00
- .align 2, 0
-_08022CA4: .4byte gUnknown_80DC7B4
-_08022CA8:
- ldr r0, _08022CAC
- b _08022D00
- .align 2, 0
-_08022CAC: .4byte gUnknown_80DC7FC
-_08022CB0:
- ldr r0, _08022CB4
- b _08022D00
- .align 2, 0
-_08022CB4: .4byte gUnknown_80DC81C
-_08022CB8:
- ldr r0, _08022CBC
- b _08022D00
- .align 2, 0
-_08022CBC: .4byte gUnknown_80DC844
-_08022CC0:
- ldr r0, _08022CC4
- b _08022D00
- .align 2, 0
-_08022CC4: .4byte gUnknown_80DC864
-_08022CC8:
- ldr r1, [r4]
- movs r0, 0x16
- str r0, [r1, 0x4]
- ldr r0, _08022CD4
- b _08022D00
- .align 2, 0
-_08022CD4: .4byte gUnknown_80DC88C
-_08022CD8:
- ldr r1, [r4]
- movs r0, 0x16
- str r0, [r1, 0x4]
- ldr r0, _08022CE4
- b _08022D00
- .align 2, 0
-_08022CE4: .4byte gUnknown_80DC8AC
-_08022CE8:
- ldr r1, [r4]
- movs r0, 0x16
- str r0, [r1, 0x4]
- ldr r0, _08022CF4
- b _08022D00
- .align 2, 0
-_08022CF4: .4byte gUnknown_80DC8C8
-_08022CF8:
- ldr r1, [r4]
- movs r0, 0x16
- str r0, [r1, 0x4]
- ldr r0, _08022D0C
-_08022D00:
- ldr r3, _08022D10
-_08022D02:
- movs r1, 0
- movs r2, 0
- bl sub_80141B4
- b _08022D22
- .align 2, 0
-_08022D0C: .4byte gUnknown_80DC8DC
-_08022D10: .4byte 0x00000301
-_08022D14:
- ldr r0, [r4]
- ldr r0, [r0, 0x4C]
- bl sub_801AFA4
- b _08022D22
-_08022D1E:
- bl sub_801A928
-_08022D22:
- add sp, 0x8
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_8022A10
-
- thumb_func_start sub_8022D2C
-sub_8022D2C:
- push {r4-r7,lr}
- movs r6, 0
- ldr r4, _08022D78
- ldr r0, [r4]
- movs r1, 0x9C
- lsls r1, 1
- adds r0, r1
- movs r1, 0
- movs r2, 0x10
- bl MemoryFill16
- ldr r2, [r4]
- ldr r0, [r2, 0x48]
- cmp r0, 0
- beq _08022D80
- adds r1, r2, 0
- adds r1, 0xF8
- ldr r0, _08022D7C
- str r0, [r1]
- adds r1, 0x4
- movs r0, 0x5
- str r0, [r1]
- adds r0, r2, 0
- adds r0, 0x52
- ldrb r0, [r0]
- bl IsGummiItem
- lsls r0, 24
- cmp r0, 0
- bne _08022D74
- ldr r0, [r4]
- movs r2, 0x9C
- lsls r2, 1
- adds r0, r2
- movs r1, 0x1
- strh r1, [r0]
-_08022D74:
- movs r6, 0x1
- b _08022DBE
- .align 2, 0
-_08022D78: .4byte gUnknown_203B294
-_08022D7C: .4byte gUnknown_80DC8F0
-_08022D80:
- adds r0, r2, 0
- adds r0, 0x52
- ldrb r0, [r0]
- bl GetItemType
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x5
- bne _08022DA4
- ldr r1, [r4]
- adds r2, r1, 0
- adds r2, 0xF8
- ldr r0, _08022E38
- str r0, [r2]
- adds r1, 0xFC
- movs r0, 0x6
- str r0, [r1]
- movs r6, 0x1
-_08022DA4:
- ldr r2, [r4]
- lsls r3, r6, 3
- adds r0, r2, 0
- adds r0, 0xF8
- adds r0, r3
- ldr r1, _08022E3C
- ldr r1, [r1]
- str r1, [r0]
- adds r2, 0xFC
- adds r2, r3
- movs r0, 0x4
- str r0, [r2]
- adds r6, 0x1
-_08022DBE:
- ldr r4, _08022E40
- ldr r0, [r4]
- mov r12, r0
- lsls r1, r6, 3
- mov r2, r12
- adds r2, 0xF8
- adds r3, r2, r1
- ldr r0, _08022E44
- ldr r0, [r0]
- str r0, [r3]
- mov r3, r12
- adds r3, 0xFC
- adds r1, r3, r1
- movs r0, 0x7
- str r0, [r1]
- adds r6, 0x1
- lsls r1, r6, 3
- adds r2, r1
- movs r0, 0
- str r0, [r2]
- adds r1, r3, r1
- movs r0, 0x1
- str r0, [r1]
- movs r5, 0
- adds r7, r4, 0
- cmp r5, r6
- bge _08022E16
- mov r4, r12
- adds r4, 0xF4
- movs r2, 0x9C
- lsls r2, 1
- add r2, r12
-_08022DFE:
- ldrh r0, [r2]
- cmp r0, 0
- bne _08022E0C
- ldr r1, [r3]
- ldr r0, [r4]
- cmp r1, r0
- beq _08022E70
-_08022E0C:
- adds r2, 0x2
- adds r3, 0x8
- adds r5, 0x1
- cmp r5, r6
- blt _08022DFE
-_08022E16:
- movs r5, 0
- cmp r5, r6
- bge _08022E70
- ldr r1, [r7]
- movs r2, 0x9C
- lsls r2, 1
- adds r0, r1, r2
- ldrh r0, [r0]
- cmp r0, 0
- bne _08022E48
- adds r0, r1, 0
- adds r0, 0xF4
- adds r1, 0xFC
- ldr r1, [r1]
- str r1, [r0]
- b _08022E70
- .align 2, 0
-_08022E38: .4byte gUnknown_80DC8F8
-_08022E3C: .4byte gUnknown_80D4940
-_08022E40: .4byte gUnknown_203B294
-_08022E44: .4byte gUnknown_80D4970
-_08022E48:
- adds r5, 0x1
- cmp r5, r6
- bge _08022E70
- ldr r3, [r7]
- lsls r0, r5, 1
- movs r2, 0x9C
- lsls r2, 1
- adds r1, r3, r2
- adds r1, r0
- ldrh r0, [r1]
- cmp r0, 0
- bne _08022E48
- adds r2, r3, 0
- adds r2, 0xF4
- lsls r1, r5, 3
- adds r0, r3, 0
- adds r0, 0xFC
- adds r0, r1
- ldr r0, [r0]
- str r0, [r2]
-_08022E70:
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_8022D2C
-
- thumb_func_start sub_8022E78
-sub_8022E78:
- push {lr}
- movs r0, 0x1
- bl sub_801A6E8
- cmp r0, 0x3
- beq _08022E94
- cmp r0, 0x3
- bhi _08022E8E
- cmp r0, 0x2
- beq _08022EE8
- b _08022EEE
-_08022E8E:
- cmp r0, 0x4
- beq _08022EBC
- b _08022EEE
-_08022E94:
- bl sub_801A8AC
- ldr r1, _08022EB4
- ldr r2, [r1]
- str r0, [r2, 0x4C]
- ldr r1, _08022EB8
- ldr r1, [r1]
- lsls r0, 2
- adds r1, r0
- ldr r0, [r1]
- str r0, [r2, 0x50]
- movs r0, 0x2
- bl sub_8022924
- b _08022EEE
- .align 2, 0
-_08022EB4: .4byte gUnknown_203B294
-_08022EB8: .4byte gTeamInventory_203B460
-_08022EBC:
- bl sub_801A8AC
- ldr r1, _08022EE0
- ldr r2, [r1]
- str r0, [r2, 0x4C]
- ldr r1, _08022EE4
- ldr r1, [r1]
- lsls r0, 2
- adds r1, r0
- ldr r0, [r1]
- str r0, [r2, 0x50]
- movs r0, 0
- bl sub_8099690
- movs r0, 0x4
- bl sub_8022924
- b _08022EEE
- .align 2, 0
-_08022EE0: .4byte gUnknown_203B294
-_08022EE4: .4byte gTeamInventory_203B460
-_08022EE8:
- movs r0, 0x16
- bl sub_8022924
-_08022EEE:
- pop {r0}
- bx r0
- thumb_func_end sub_8022E78
-
- thumb_func_start sub_8022EF4
-sub_8022EF4:
- push {r4,r5,lr}
- sub sp, 0x4
- movs r0, 0
- str r0, [sp]
- bl sub_801A6E8
- ldr r4, _08022F3C
- ldr r0, [r4]
- adds r0, 0x54
- bl sub_8012FD8
- lsls r0, 24
- cmp r0, 0
- bne _08022F26
- ldr r0, [r4]
- adds r0, 0x54
- mov r1, sp
- bl sub_8013114
- ldr r1, [sp]
- cmp r1, 0x1
- beq _08022F26
- ldr r0, [r4]
- adds r0, 0xF4
- str r1, [r0]
-_08022F26:
- ldr r0, [sp]
- subs r0, 0x1
- cmp r0, 0x6
- bls _08022F30
- b _08023060
-_08022F30:
- lsls r0, 2
- ldr r1, _08022F40
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08022F3C: .4byte gUnknown_203B294
-_08022F40: .4byte _08022F44
- .align 2, 0
-_08022F44:
- .4byte _08022F60
- .4byte _08023060
- .4byte _08023060
- .4byte _0802304C
- .4byte _08022F68
- .4byte _08023044
- .4byte _08023054
-_08022F60:
- movs r0, 0x1
- bl sub_8022924
- b _08023060
-_08022F68:
- ldr r4, _08022FEC
- ldr r1, [r4]
- adds r0, r1, 0
- adds r0, 0x8
- ldr r1, [r1, 0x48]
- movs r2, 0x14
- ldrsh r1, [r1, r2]
- bl sub_808EBA8
- ldr r3, [r4]
- str r0, [r3, 0x38]
- ldr r0, [r3, 0x48]
- adds r1, r3, 0
- adds r1, 0x52
- ldrb r1, [r1]
- adds r3, 0x44
- movs r2, 0
- bl GetGummiItemStatBoost
- ldr r1, [r4]
- adds r0, r1, 0
- adds r0, 0x20
- ldr r1, [r1, 0x48]
- movs r2, 0x14
- ldrsh r1, [r1, r2]
- bl sub_808EBA8
- ldr r1, [r4]
- str r0, [r1, 0x3C]
- movs r0, 0x1
- str r0, [r1, 0x40]
- adds r0, r1, 0
- adds r0, 0x44
- movs r2, 0
- ldrsh r5, [r0, r2]
- ldr r0, _08022FF0
- ldr r3, _08022FF4
- ldr r2, [r1, 0x4C]
- lsls r2, 2
- ldr r1, [r3]
- adds r1, r2
- movs r2, 0
- bl sub_8090E14
- movs r0, 0x1
- negs r0, r0
- cmp r5, r0
- beq _08022FD0
- ldr r0, [r4]
- ldr r0, [r0, 0x4C]
- bl ShiftItemsDownFrom
-_08022FD0:
- movs r0, 0
- bl sub_8099690
- ldr r1, [r4]
- movs r0, 0xA
- str r0, [r1, 0x4]
- adds r0, r5, 0x1
- cmp r0, 0x4
- bhi _08023030
- lsls r0, 2
- ldr r1, _08022FF8
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08022FEC: .4byte gUnknown_203B294
-_08022FF0: .4byte gUnknown_202DE58
-_08022FF4: .4byte gTeamInventory_203B460
-_08022FF8: .4byte _08022FFC
- .align 2, 0
-_08022FFC:
- .4byte _08023030
- .4byte _08023010
- .4byte _08023018
- .4byte _08023020
- .4byte _08023028
-_08023010:
- movs r0, 0x6
- bl sub_8022924
- b _08023060
-_08023018:
- movs r0, 0x7
- bl sub_8022924
- b _08023060
-_08023020:
- movs r0, 0x8
- bl sub_8022924
- b _08023060
-_08023028:
- movs r0, 0x9
- bl sub_8022924
- b _08023060
-_08023030:
- ldr r0, _08023040
- ldr r1, [r0]
- movs r0, 0x16
- str r0, [r1, 0x4]
- movs r0, 0x5
- bl sub_8022924
- b _08023060
- .align 2, 0
-_08023040: .4byte gUnknown_203B294
-_08023044:
- movs r0, 0x15
- bl sub_8022924
- b _08023060
-_0802304C:
- movs r0, 0x3
- bl sub_8022924
- b _08023060
-_08023054:
- movs r0, 0
- bl sub_8099690
- movs r0, 0x4
- bl sub_8022924
-_08023060:
- add sp, 0x4
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_8022EF4
-
- thumb_func_start sub_8023068
-sub_8023068:
- push {r4,lr}
- sub sp, 0x4
- movs r0, 0
- str r0, [sp]
- bl sub_801A6E8
- ldr r4, _080230A8
- ldr r0, [r4]
- adds r0, 0x54
- bl sub_8012FD8
- ldr r0, [r4]
- adds r0, 0xA4
- bl sub_8012FD8
- lsls r0, 24
- cmp r0, 0
- bne _08023096
- ldr r0, [r4]
- adds r0, 0xA4
- mov r1, sp
- bl sub_8013114
-_08023096:
- ldr r0, [sp]
- cmp r0, 0x2
- beq _080230B8
- cmp r0, 0x2
- bgt _080230AC
- cmp r0, 0x1
- beq _080230B0
- b _080230E0
- .align 2, 0
-_080230A8: .4byte gUnknown_203B294
-_080230AC:
- cmp r0, 0x3
- bne _080230E0
-_080230B0:
- movs r0, 0x1
- bl sub_8022924
- b _080230E0
-_080230B8:
- ldr r0, [r4]
- ldr r0, [r0, 0x4C]
- bl ShiftItemsDownFrom
- bl GetNumberOfFilledInventorySlots
- cmp r0, 0
- bne _080230DA
- movs r0, 0
- bl sub_8099690
- bl sub_801A928
- movs r0, 0x14
- bl sub_8022924
- b _080230E0
-_080230DA:
- movs r0, 0x1
- bl sub_8022924
-_080230E0:
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_8023068
-
- thumb_func_start sub_80230E8
-sub_80230E8:
- push {lr}
- bl sub_801B410
- cmp r0, 0x1
- bls _08023100
- cmp r0, 0x3
- bhi _08023100
- bl sub_801B450
- movs r0, 0x1
- bl sub_8022924
-_08023100:
- pop {r0}
- bx r0
- thumb_func_end sub_80230E8
-
- thumb_func_start sub_8023104
-sub_8023104:
- push {lr}
- bl sub_801B00C
- cmp r0, 0x1
- bls _0802311C
- cmp r0, 0x3
- bhi _0802311C
- bl sub_801B048
- movs r0, 0x1
- bl sub_8022924
-_0802311C:
- pop {r0}
- bx r0
- thumb_func_end sub_8023104
-
- thumb_func_start sub_8023120
-sub_8023120:
- push {lr}
- sub sp, 0x4
- mov r0, sp
- bl sub_80144A4
- cmp r0, 0
- bne _08023138
- ldr r0, _08023140
- ldr r0, [r0]
- ldr r0, [r0, 0x4]
- bl sub_8022924
-_08023138:
- add sp, 0x4
- pop {r0}
- bx r0
- .align 2, 0
-_08023140: .4byte gUnknown_203B294
- thumb_func_end sub_8023120
-
- thumb_func_start sub_8023144
-sub_8023144:
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- adds r7, r1, 0
- mov r9, r2
- mov r10, r3
- lsls r0, 24
- lsrs r0, 24
- adds r4, r0, 0
- bl sub_8023704
- lsls r0, 24
- cmp r0, 0
- beq _08023168
- movs r0, 0
- b _08023252
-_08023168:
- ldr r6, _08023260
- ldr r0, [r6]
- cmp r0, 0
- bne _0802317C
- movs r0, 0xFF
- lsls r0, 2
- movs r1, 0x8
- bl MemoryAlloc
- str r0, [r6]
-_0802317C:
- ldr r0, [r6]
- strb r4, [r0]
- ldr r0, [r6]
- ldr r1, _08023264
- ldr r1, [r1]
- str r1, [r0, 0x4]
- movs r4, 0xE4
- lsls r4, 2
- adds r1, r0, r4
- str r7, [r1]
- movs r1, 0xE5
- lsls r1, 2
- mov r8, r1
- adds r2, r0, r1
- lsls r1, r7, 1
- adds r1, r7
- lsls r1, 3
- movs r5, 0xE6
- lsls r5, 2
- adds r1, r5
- adds r1, r0, r1
- str r1, [r2]
- adds r0, r5
- bl sub_8006518
- ldr r1, [r6]
- adds r4, r1, r4
- ldr r2, [r4]
- lsls r0, r2, 1
- adds r0, r2
- lsls r0, 3
- adds r1, r0
- adds r1, r5
- ldr r0, _08023268
- ldm r0!, {r2-r4}
- stm r1!, {r2-r4}
- ldm r0!, {r2-r4}
- stm r1!, {r2-r4}
- ldr r2, [r6]
- mov r1, r8
- adds r0, r2, r1
- ldr r1, [r0]
- movs r3, 0xFE
- lsls r3, 2
- adds r0, r2, r3
- str r0, [r1, 0x14]
- mov r4, r9
- cmp r4, 0
- beq _080231F6
- movs r1, 0xE4
- lsls r1, 2
- adds r0, r2, r1
- ldr r1, [r0]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 3
- subs r3, 0x58
- adds r1, r2, r3
- adds r1, r0
- ldr r0, [r4]
- str r0, [r1]
-_080231F6:
- ldr r0, [r6]
- add r0, r8
- ldr r0, [r0]
- mov r1, r10
- bl sub_8012D08
- bl ResetUnusedInputStruct
- ldr r0, [r6]
- adds r0, r5
- movs r1, 0x1
- movs r2, 0x1
- bl sub_800641C
- ldr r4, [r6]
- movs r5, 0xD7
- lsls r5, 2
- adds r4, r5
- bl sub_80236A4
- adds r1, r0, 0
- adds r0, r4, 0
- mov r2, r10
- adds r3, r7, 0
- bl sub_8013818
- ldr r0, [r6]
- ldr r1, _0802326C
- ldrh r2, [r1]
- movs r4, 0xDD
- lsls r4, 2
- adds r1, r0, r4
- strh r2, [r1]
- ldr r1, _08023270
- ldrh r2, [r1]
- ldr r3, _08023274
- adds r1, r0, r3
- strh r2, [r1]
- adds r0, r5
- bl sub_8013984
- bl sub_8023420
- bl sub_80234BC
- movs r0, 0x1
-_08023252:
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_08023260: .4byte gUnknown_3001B5C
-_08023264: .4byte gUnknown_203B298
-_08023268: .4byte gUnknown_80DC91C
-_0802326C: .4byte gUnknown_203B29C
-_08023270: .4byte gUnknown_203B29E
-_08023274: .4byte 0x0000037a
- thumb_func_end sub_8023144
-
- thumb_func_start sub_8023278
-sub_8023278:
- push {r4,lr}
- lsls r0, 24
- cmp r0, 0
- bne _08023298
- ldr r0, _08023294
- ldr r0, [r0]
- movs r1, 0xD7
- lsls r1, 2
- adds r0, r1
- bl sub_8013660
- movs r0, 0
- b _08023316
- .align 2, 0
-_08023294: .4byte gUnknown_3001B5C
-_08023298:
- ldr r4, _080232B4
- ldr r0, [r4]
- movs r1, 0xD7
- lsls r1, 2
- adds r0, r1
- bl GetKeyPress
- cmp r0, 0x2
- beq _080232BE
- cmp r0, 0x2
- bgt _080232B8
- cmp r0, 0x1
- beq _080232C8
- b _080232EC
- .align 2, 0
-_080232B4: .4byte gUnknown_3001B5C
-_080232B8:
- cmp r0, 0x3
- beq _080232D2
- b _080232EC
-_080232BE:
- movs r0, 0x1
- bl PlayMenuSoundEffect
- movs r0, 0x2
- b _08023316
-_080232C8:
- movs r0, 0
- bl PlayMenuSoundEffect
- movs r0, 0x3
- b _08023316
-_080232D2:
- movs r0, 0x5
- bl PlayMenuSoundEffect
- ldr r0, [r4]
- ldr r1, [r0, 0x4]
- movs r2, 0x1
- cmp r1, 0x1
- bhi _080232E4
- adds r2, r1, 0x1
-_080232E4:
- str r2, [r0, 0x4]
- bl sub_80236A4
- b _0802330C
-_080232EC:
- ldr r0, _08023308
- ldr r0, [r0]
- movs r1, 0xD7
- lsls r1, 2
- adds r0, r1
- movs r1, 0x1
- bl sub_80138B8
- lsls r0, 24
- cmp r0, 0
- bne _0802330C
- movs r0, 0
- b _08023316
- .align 2, 0
-_08023308: .4byte gUnknown_3001B5C
-_0802330C:
- bl sub_8023420
- bl sub_80234BC
- movs r0, 0x1
-_08023316:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_8023278
-
- thumb_func_start sub_802331C
-sub_802331C:
- ldr r0, _0802334C
- ldr r0, [r0]
- ldr r2, _08023350
- adds r1, r0, r2
- movs r3, 0
- ldrsh r2, [r1, r3]
- movs r3, 0xDE
- lsls r3, 2
- adds r1, r0, r3
- movs r3, 0
- ldrsh r1, [r1, r3]
- muls r1, r2
- movs r3, 0xDD
- lsls r3, 2
- adds r2, r0, r3
- movs r3, 0
- ldrsh r2, [r2, r3]
- adds r1, r2
- lsls r1, 1
- adds r0, 0xC
- adds r0, r1
- movs r1, 0
- ldrsh r0, [r0, r1]
- bx lr
- .align 2, 0
-_0802334C: .4byte gUnknown_3001B5C
-_08023350: .4byte 0x0000037a
- thumb_func_end sub_802331C
-
- thumb_func_start sub_8023354
-sub_8023354:
- push {r4,r5,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- bl ResetUnusedInputStruct
- ldr r5, _0802339C
- ldr r0, [r5]
- movs r1, 0xE6
- lsls r1, 2
- adds r0, r1
- movs r1, 0
- movs r2, 0
- bl sub_800641C
- ldr r0, [r5]
- movs r1, 0xD7
- lsls r1, 2
- adds r0, r1
- bl sub_8013984
- bl sub_8023420
- bl sub_80234BC
- cmp r4, 0
- beq _08023396
- ldr r0, [r5]
- movs r1, 0xD7
- lsls r1, 2
- adds r0, r1
- bl AddMenuCursorSprite
-_08023396:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0802339C: .4byte gUnknown_3001B5C
- thumb_func_end sub_8023354
-
- thumb_func_start sub_80233A0
-sub_80233A0:
- push {r4-r6,lr}
- ldr r5, _08023408
- ldr r2, [r5]
- cmp r2, 0
- beq _08023400
- ldr r1, _0802340C
- ldr r0, [r2, 0x4]
- str r0, [r1]
- ldr r1, _08023410
- movs r3, 0xDD
- lsls r3, 2
- adds r0, r2, r3
- ldrh r0, [r0]
- strh r0, [r1]
- ldr r1, _08023414
- ldr r6, _08023418
- adds r0, r2, r6
- ldrh r0, [r0]
- strh r0, [r1]
- movs r1, 0xE4
- lsls r1, 2
- adds r0, r2, r1
- ldr r0, [r0]
- lsls r1, r0, 1
- adds r1, r0
- lsls r1, 3
- adds r1, r2, r1
- movs r4, 0xE6
- lsls r4, 2
- adds r1, r4
- ldr r0, _0802341C
- ldm r0!, {r2,r3,r6}
- stm r1!, {r2,r3,r6}
- ldm r0!, {r2,r3,r6}
- stm r1!, {r2,r3,r6}
- bl ResetUnusedInputStruct
- ldr r0, [r5]
- adds r0, r4
- movs r1, 0x1
- movs r2, 0x1
- bl sub_800641C
- ldr r0, [r5]
- bl MemoryFree
- movs r0, 0
- str r0, [r5]
-_08023400:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08023408: .4byte gUnknown_3001B5C
-_0802340C: .4byte gUnknown_203B298
-_08023410: .4byte gUnknown_203B29C
-_08023414: .4byte gUnknown_203B29E
-_08023418: .4byte 0x0000037a
-_0802341C: .4byte gUnknown_80DC904
- thumb_func_end sub_80233A0
-
- thumb_func_start sub_8023420
-sub_8023420:
- push {r4,r5,lr}
- ldr r4, _080234A8
- ldr r0, [r4]
- movs r1, 0xFE
- lsls r1, 2
- adds r0, r1
- movs r2, 0
- movs r1, 0x1
- strb r1, [r0]
- ldr r0, [r4]
- ldr r1, _080234AC
- adds r0, r1
- strb r2, [r0]
- ldr r0, [r4]
- adds r1, 0x1
- adds r0, r1
- movs r1, 0xC
- strb r1, [r0]
- ldr r0, [r4]
- ldr r1, _080234B0
- adds r0, r1
- strb r2, [r0]
- ldr r0, [r4]
- ldr r2, _080234B4
- adds r0, r2
- movs r1, 0
- ldrsh r0, [r0, r1]
- movs r1, 0xC
- bl sub_80095E4
- adds r0, 0x2
- ldr r3, [r4]
- movs r2, 0xE4
- lsls r2, 2
- adds r5, r3, r2
- ldr r2, [r5]
- lsls r1, r2, 1
- adds r1, r2
- lsls r1, 3
- adds r1, r3, r1
- ldr r2, _080234B8
- adds r1, r2
- lsls r0, 16
- lsrs r0, 16
- strh r0, [r1]
- ldr r2, [r5]
- lsls r1, r2, 1
- adds r1, r2
- lsls r1, 3
- adds r3, r1
- movs r1, 0xEA
- lsls r1, 2
- adds r3, r1
- strh r0, [r3]
- bl ResetUnusedInputStruct
- ldr r0, [r4]
- movs r2, 0xE6
- lsls r2, 2
- adds r0, r2
- movs r1, 0x1
- movs r2, 0x1
- bl sub_800641C
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080234A8: .4byte gUnknown_3001B5C
-_080234AC: .4byte 0x000003f9
-_080234B0: .4byte 0x000003fb
-_080234B4: .4byte 0x00000376
-_080234B8: .4byte 0x000003a6
- thumb_func_end sub_8023420
-
- thumb_func_start sub_80234BC
-sub_80234BC:
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x178
- ldr r5, _0802368C
- ldr r0, [r5]
- movs r4, 0xE4
- lsls r4, 2
- adds r0, r4
- ldr r0, [r0]
- bl sub_8008C54
- ldr r0, [r5]
- adds r0, r4
- ldr r0, [r0]
- bl sub_80073B8
- ldr r2, _08023690
- ldr r0, [r5]
- adds r0, r4
- ldr r3, [r0]
- movs r0, 0
- str r0, [sp]
- movs r0, 0xA
- movs r1, 0
- bl xxx_call_draw_string
- ldr r3, [r5]
- ldr r1, _08023694
- adds r0, r3, r1
- ldrb r0, [r0]
- lsls r0, 3
- adds r0, 0x4
- ldr r2, _08023698
- adds r1, r3, r2
- movs r6, 0
- ldrsh r2, [r1, r6]
- adds r2, 0x1
- movs r1, 0x7
- str r1, [sp]
- adds r3, r4
- ldr r1, [r3]
- str r1, [sp, 0x4]
- movs r1, 0
- movs r3, 0x2
- bl sub_8012BC4
- movs r0, 0
- mov r10, r0
- ldr r0, [r5]
- ldr r1, _0802369C
- adds r0, r1
- movs r2, 0
- ldrsh r0, [r0, r2]
- cmp r10, r0
- blt _08023532
- b _0802366C
-_08023532:
- ldr r3, _0802368C
- ldr r0, [r3]
- movs r6, 0xD7
- lsls r6, 2
- adds r0, r6
- mov r1, r10
- bl sub_8013800
- mov r8, r0
- ldr r0, _0802368C
- ldr r1, [r0]
- ldr r2, _08023698
- adds r0, r1, r2
- movs r3, 0
- ldrsh r2, [r0, r3]
- adds r6, 0x1C
- adds r0, r1, r6
- movs r3, 0
- ldrsh r0, [r0, r3]
- muls r0, r2
- add r0, r10
- lsls r0, 1
- adds r1, 0xC
- adds r1, r0
- movs r6, 0
- ldrsh r5, [r1, r6]
- adds r0, r5, 0
- bl GetFriendArea
- lsls r0, 24
- lsrs r0, 24
- add r4, sp, 0x16C
- adds r1, r4, 0
- movs r2, 0
- movs r3, 0
- bl sub_8092638
- movs r7, 0x7
- ldrb r0, [r4, 0x4]
- cmp r0, 0
- beq _08023594
- adds r0, r5, 0
- bl HasRecruitedMon
- lsls r0, 24
- movs r7, 0x4
- cmp r0, 0
- beq _08023594
- movs r7, 0x5
-_08023594:
- adds r0, r5, 0
- movs r1, 0
- bl GetDexInternalNo
- lsls r0, 16
- asrs r4, r0, 16
- adds r0, r4, 0
- movs r1, 0xA
- bl __modsi3
- adds r2, r0, 0
- adds r2, 0x30
- lsls r2, 24
- lsrs r2, 24
- ldr r6, _0802368C
- ldr r0, [r6]
- movs r1, 0xE4
- lsls r1, 2
- mov r9, r1
- add r0, r9
- ldr r0, [r0]
- str r0, [sp]
- movs r0, 0x14
- mov r1, r8
- adds r3, r7, 0
- bl sub_8012C60
- cmp r4, 0x9
- ble _08023628
- adds r0, r4, 0
- movs r1, 0xA
- bl __divsi3
- adds r4, r0, 0
- movs r1, 0xA
- bl __modsi3
- adds r2, r0, 0
- adds r2, 0x30
- lsls r2, 24
- lsrs r2, 24
- ldr r0, [r6]
- movs r3, 0xE4
- lsls r3, 2
- adds r0, r3
- ldr r0, [r0]
- str r0, [sp]
- movs r0, 0xD
- mov r1, r8
- adds r3, r7, 0
- bl sub_8012C60
- cmp r4, 0x9
- ble _08023628
- adds r0, r4, 0
- movs r1, 0xA
- bl __divsi3
- movs r1, 0xA
- bl __modsi3
- adds r2, r0, 0
- adds r2, 0x30
- lsls r2, 24
- lsrs r2, 24
- ldr r0, [r6]
- add r0, r9
- ldr r0, [r0]
- str r0, [sp]
- movs r0, 0x6
- mov r1, r8
- adds r3, r7, 0
- bl sub_8012C60
-_08023628:
- add r4, sp, 0x108
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_808D930
- add r0, sp, 0x8
- ldr r1, _080236A0
- adds r2, r7, 0
- adds r3, r4, 0
- bl ExpandPlaceholdersBuffer
- ldr r6, _0802368C
- ldr r0, [r6]
- movs r1, 0xE4
- lsls r1, 2
- adds r0, r1
- ldr r3, [r0]
- movs r0, 0
- str r0, [sp]
- movs r0, 0x24
- mov r1, r8
- add r2, sp, 0x8
- bl xxx_call_draw_string
- movs r2, 0x1
- add r10, r2
- ldr r0, [r6]
- ldr r3, _0802369C
- adds r0, r3
- movs r6, 0
- ldrsh r0, [r0, r6]
- cmp r10, r0
- bge _0802366C
- b _08023532
-_0802366C:
- ldr r0, _0802368C
- ldr r0, [r0]
- movs r1, 0xE4
- lsls r1, 2
- adds r0, r1
- ldr r0, [r0]
- bl sub_80073E0
- add sp, 0x178
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0802368C: .4byte gUnknown_3001B5C
-_08023690: .4byte gUnknown_80DC934
-_08023694: .4byte 0x000003fa
-_08023698: .4byte 0x0000037a
-_0802369C: .4byte 0x00000376
-_080236A0: .4byte gUnknown_80DC93C
- thumb_func_end sub_80234BC
-
- thumb_func_start sub_80236A4
-sub_80236A4:
- push {r4,r5,lr}
- ldr r0, _080236FC
- ldr r1, [r0]
- movs r0, 0
- str r0, [r1, 0x8]
- movs r5, 0
-_080236B0:
- lsls r0, r5, 16
- asrs r4, r0, 16
- adds r0, r4, 0
- bl sub_8098134
- lsls r0, 24
- cmp r0, 0
- beq _080236E2
- adds r0, r4, 0
- bl GetBaseSpeciesNoUnown
- lsls r0, 16
- asrs r0, 16
- cmp r4, r0
- bne _080236E2
- ldr r0, _080236FC
- ldr r3, [r0]
- ldr r1, [r3, 0x8]
- lsls r2, r1, 1
- adds r0, r3, 0
- adds r0, 0xC
- adds r0, r2
- strh r5, [r0]
- adds r1, 0x1
- str r1, [r3, 0x8]
-_080236E2:
- adds r5, 0x1
- ldr r0, _08023700
- cmp r5, r0
- ble _080236B0
- bl sub_8023730
- ldr r0, _080236FC
- ldr r0, [r0]
- ldr r0, [r0, 0x8]
- pop {r4,r5}
- pop {r1}
- bx r1
- .align 2, 0
-_080236FC: .4byte gUnknown_3001B5C
-_08023700: .4byte 0x000001a7
- thumb_func_end sub_80236A4
-
- thumb_func_start sub_8023704
-sub_8023704:
- push {r4,lr}
- movs r4, 0
-_08023708:
- lsls r0, r4, 16
- asrs r0, 16
- bl sub_8098134
- lsls r0, 24
- cmp r0, 0
- beq _0802371A
- movs r0, 0
- b _08023724
-_0802371A:
- adds r4, 0x1
- ldr r0, _0802372C
- cmp r4, r0
- ble _08023708
- movs r0, 0x1
-_08023724:
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_0802372C: .4byte 0x000001a7
- thumb_func_end sub_8023704
-
- thumb_func_start sub_8023730
-sub_8023730:
- push {lr}
- ldr r0, _08023744
- ldr r0, [r0]
- ldr r0, [r0, 0x4]
- cmp r0, 0x1
- beq _08023748
- cmp r0, 0x2
- beq _0802374E
- b _08023752
- .align 2, 0
-_08023744: .4byte gUnknown_3001B5C
-_08023748:
- bl sub_8023758
- b _08023752
-_0802374E:
- bl sub_80237E0
-_08023752:
- pop {r0}
- bx r0
- thumb_func_end sub_8023730
-
- thumb_func_start sub_8023758
-sub_8023758:
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- sub sp, 0x4
- ldr r3, _080237DC
- ldr r2, [r3]
- ldr r1, [r2, 0x8]
- lsls r0, r1, 1
- adds r0, 0xA
- adds r2, r0
- mov r9, r2
- movs r2, 0
- subs r1, 0x1
- cmp r2, r1
- bge _080237CC
-_08023778:
- mov r5, r9
- ldr r0, [r3]
- ldr r0, [r0, 0x8]
- subs r7, r0, 0x1
- adds r0, r2, 0x1
- mov r8, r0
- cmp r7, r2
- ble _080237BE
-_08023788:
- subs r6, r5, 0x2
- movs r1, 0
- ldrsh r0, [r6, r1]
- movs r1, 0x1
- str r2, [sp]
- bl GetAlphabetParentNo
- adds r4, r0, 0
- movs r1, 0
- ldrsh r0, [r5, r1]
- movs r1, 0x1
- bl GetAlphabetParentNo
- lsls r4, 16
- lsls r0, 16
- ldr r2, [sp]
- cmp r4, r0
- ble _080237B6
- movs r0, 0
- ldrsh r1, [r5, r0]
- ldrh r0, [r6]
- strh r0, [r5]
- strh r1, [r6]
-_080237B6:
- adds r5, r6, 0
- subs r7, 0x1
- cmp r7, r2
- bgt _08023788
-_080237BE:
- mov r2, r8
- ldr r3, _080237DC
- ldr r0, [r3]
- ldr r0, [r0, 0x8]
- subs r0, 0x1
- cmp r2, r0
- blt _08023778
-_080237CC:
- add sp, 0x4
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080237DC: .4byte gUnknown_3001B5C
- thumb_func_end sub_8023758
-
- thumb_func_start sub_80237E0
-sub_80237E0:
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- sub sp, 0x4
- ldr r3, _08023864
- ldr r2, [r3]
- ldr r1, [r2, 0x8]
- lsls r0, r1, 1
- adds r0, 0xA
- adds r2, r0
- mov r9, r2
- movs r2, 0
- subs r1, 0x1
- cmp r2, r1
- bge _08023854
-_08023800:
- mov r5, r9
- ldr r0, [r3]
- ldr r0, [r0, 0x8]
- subs r7, r0, 0x1
- adds r0, r2, 0x1
- mov r8, r0
- cmp r7, r2
- ble _08023846
-_08023810:
- subs r6, r5, 0x2
- movs r1, 0
- ldrsh r0, [r6, r1]
- movs r1, 0
- str r2, [sp]
- bl GetAlphabetParentNo
- adds r4, r0, 0
- movs r1, 0
- ldrsh r0, [r5, r1]
- movs r1, 0
- bl GetAlphabetParentNo
- lsls r4, 16
- lsls r0, 16
- ldr r2, [sp]
- cmp r4, r0
- ble _0802383E
- movs r0, 0
- ldrsh r1, [r5, r0]
- ldrh r0, [r6]
- strh r0, [r5]
- strh r1, [r6]
-_0802383E:
- adds r5, r6, 0
- subs r7, 0x1
- cmp r7, r2
- bgt _08023810
-_08023846:
- mov r2, r8
- ldr r3, _08023864
- ldr r0, [r3]
- ldr r0, [r0, 0x8]
- subs r0, 0x1
- cmp r2, r0
- blt _08023800
-_08023854:
- add sp, 0x4
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08023864: .4byte gUnknown_3001B5C
- thumb_func_end sub_80237E0
-
- thumb_func_start sub_8023868
-sub_8023868:
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- adds r5, r0, 0
- mov r8, r1
- mov r9, r2
- mov r10, r3
- bl sub_8024108
- lsls r0, 24
- cmp r0, 0
- beq _08023888
- movs r0, 0
- b _08023A6E
-_08023888:
- ldr r4, _080238AC
- ldr r0, [r4]
- cmp r0, 0
- bne _0802389C
- movs r0, 0xFE
- lsls r0, 2
- movs r1, 0x8
- bl MemoryAlloc
- str r0, [r4]
-_0802389C:
- ldr r1, [r4]
- str r5, [r1]
- ldr r0, _080238B0
- ldr r0, [r0]
- cmp r0, r5
- beq _080238B4
- movs r0, 0x1
- b _080238B8
- .align 2, 0
-_080238AC: .4byte gUnknown_3001B60
-_080238B0: .4byte gUnknown_203B2A0
-_080238B4:
- ldr r0, _080238E4
- ldr r0, [r0]
-_080238B8:
- str r0, [r1, 0x4]
- ldr r2, _080238E8
- ldr r0, [r2]
- movs r1, 0
- strb r1, [r0, 0x14]
- ldr r0, [r2]
- strb r1, [r0, 0x15]
- ldr r0, [r2]
- strb r1, [r0, 0x16]
- ldr r0, [r2]
- strb r1, [r0, 0x17]
- ldr r0, [r2]
- strb r1, [r0, 0x18]
- ldr r0, [r2]
- ldr r0, [r0]
- cmp r0, 0x4
- bhi _08023980
- lsls r0, 2
- ldr r1, _080238EC
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080238E4: .4byte gUnknown_203B2A4
-_080238E8: .4byte gUnknown_3001B60
-_080238EC: .4byte _080238F0
- .align 2, 0
-_080238F0:
- .4byte _08023958
- .4byte _08023904
- .4byte _08023914
- .4byte _08023924
- .4byte _0802393C
-_08023904:
- ldr r0, _08023910
- ldr r1, [r0]
- movs r0, 0x1
- strb r0, [r1, 0x18]
- b _08023958
- .align 2, 0
-_08023910: .4byte gUnknown_3001B60
-_08023914:
- ldr r0, _08023920
- ldr r1, [r0]
- movs r0, 0x1
- strb r0, [r1, 0x14]
- b _08023958
- .align 2, 0
-_08023920: .4byte gUnknown_3001B60
-_08023924:
- ldr r2, _08023938
- ldr r0, [r2]
- movs r1, 0x1
- strb r1, [r0, 0x17]
- ldr r0, [r2]
- strb r1, [r0, 0x15]
- ldr r0, [r2]
- strb r1, [r0, 0x16]
- b _08023958
- .align 2, 0
-_08023938: .4byte gUnknown_3001B60
-_0802393C:
- ldr r5, _0802397C
- ldr r0, [r5]
- movs r4, 0x1
- strb r4, [r0, 0x18]
- ldr r0, [r5]
- strb r4, [r0, 0x15]
- movs r0, 0x9
- bl sub_80023E4
- lsls r0, 24
- cmp r0, 0
- bne _08023958
- ldr r0, [r5]
- strb r4, [r0, 0x16]
-_08023958:
- ldr r4, _0802397C
- ldr r0, [r4]
- ldr r0, [r0]
- cmp r0, 0x4
- bne _08023980
- bl sub_80A5728
- lsls r0, 16
- asrs r0, 16
- bl sub_8002658
- ldr r1, [r4]
- movs r2, 0xD5
- lsls r2, 2
- adds r1, r2
- strb r0, [r1]
- b _0802398E
- .align 2, 0
-_0802397C: .4byte gUnknown_3001B60
-_08023980:
- ldr r0, _08023A7C
- ldr r0, [r0]
- movs r3, 0xD5
- lsls r3, 2
- adds r0, r3
- movs r1, 0
- strb r1, [r0]
-_0802398E:
- ldr r5, _08023A7C
- ldr r0, [r5]
- movs r4, 0xE3
- lsls r4, 2
- adds r1, r0, r4
- mov r2, r8
- str r2, [r1]
- movs r7, 0xE4
- lsls r7, 2
- adds r2, r0, r7
- mov r3, r8
- lsls r1, r3, 1
- add r1, r8
- lsls r1, 3
- movs r6, 0xE5
- lsls r6, 2
- adds r1, r6
- adds r1, r0, r1
- str r1, [r2]
- adds r0, r6
- bl sub_8006518
- ldr r1, [r5]
- adds r4, r1, r4
- ldr r2, [r4]
- lsls r0, r2, 1
- adds r0, r2
- lsls r0, 3
- adds r1, r0
- adds r1, r6
- ldr r0, _08023A80
- ldm r0!, {r2-r4}
- stm r1!, {r2-r4}
- ldm r0!, {r2-r4}
- stm r1!, {r2-r4}
- ldr r2, [r5]
- adds r0, r2, r7
- ldr r1, [r0]
- movs r4, 0xFD
- lsls r4, 2
- adds r0, r2, r4
- str r0, [r1, 0x14]
- mov r0, r9
- cmp r0, 0
- beq _08023A04
- movs r1, 0xE3
- lsls r1, 2
- adds r0, r2, r1
- ldr r1, [r0]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 3
- movs r3, 0xE7
- lsls r3, 2
- adds r1, r2, r3
- adds r1, r0
- mov r4, r9
- ldr r0, [r4]
- str r0, [r1]
-_08023A04:
- ldr r0, [r5]
- adds r0, r7
- ldr r0, [r0]
- mov r1, r10
- bl sub_8012D08
- bl ResetUnusedInputStruct
- ldr r0, [r5]
- adds r0, r6
- movs r1, 0x1
- movs r2, 0x1
- bl sub_800641C
- ldr r4, [r5]
- movs r0, 0xD6
- lsls r0, 2
- adds r4, r0
- bl sub_8023F8C
- adds r1, r0, 0
- adds r0, r4, 0
- mov r2, r10
- mov r3, r8
- bl sub_8013818
- ldr r0, _08023A84
- ldr r4, [r5]
- ldr r1, [r0]
- ldr r0, [r4]
- cmp r1, r0
- bne _08023A64
- ldr r0, _08023A88
- ldrh r1, [r0]
- movs r2, 0xDC
- lsls r2, 2
- adds r0, r4, r2
- strh r1, [r0]
- ldr r0, _08023A8C
- ldrh r1, [r0]
- ldr r3, _08023A90
- adds r0, r4, r3
- strh r1, [r0]
- movs r1, 0xD6
- lsls r1, 2
- adds r0, r4, r1
- bl sub_8013984
-_08023A64:
- bl sub_8023CF4
- bl sub_8023DA4
- movs r0, 0x1
-_08023A6E:
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_08023A7C: .4byte gUnknown_3001B60
-_08023A80: .4byte gUnknown_80DC968
-_08023A84: .4byte gUnknown_203B2A0
-_08023A88: .4byte gUnknown_203B2A8
-_08023A8C: .4byte gUnknown_203B2AA
-_08023A90: .4byte 0x00000376
- thumb_func_end sub_8023868
-
- thumb_func_start sub_8023A94
-sub_8023A94:
- push {r4,lr}
- lsls r0, 24
- cmp r0, 0
- bne _08023AB4
- ldr r0, _08023AB0
- ldr r0, [r0]
- movs r1, 0xD6
- lsls r1, 2
- adds r0, r1
- bl sub_8013660
- movs r0, 0
- b _08023B3E
- .align 2, 0
-_08023AB0: .4byte gUnknown_3001B60
-_08023AB4:
- ldr r4, _08023AD0
- ldr r0, [r4]
- movs r1, 0xD6
- lsls r1, 2
- adds r0, r1
- bl GetKeyPress
- cmp r0, 0x2
- beq _08023ADE
- cmp r0, 0x2
- bgt _08023AD4
- cmp r0, 0x1
- beq _08023AF2
- b _08023B16
- .align 2, 0
-_08023AD0: .4byte gUnknown_3001B60
-_08023AD4:
- cmp r0, 0x3
- beq _08023AFC
- cmp r0, 0x4
- beq _08023AE8
- b _08023B16
-_08023ADE:
- movs r0, 0x1
- bl PlayMenuSoundEffect
- movs r0, 0x2
- b _08023B3E
-_08023AE8:
- movs r0, 0x4
- bl PlayMenuSoundEffect
- movs r0, 0x4
- b _08023B3E
-_08023AF2:
- movs r0, 0
- bl PlayMenuSoundEffect
- movs r0, 0x3
- b _08023B3E
-_08023AFC:
- movs r0, 0x5
- bl PlayMenuSoundEffect
- ldr r0, [r4]
- ldr r1, [r0, 0x4]
- movs r2, 0x1
- cmp r1, 0x2
- bhi _08023B0E
- adds r2, r1, 0x1
-_08023B0E:
- str r2, [r0, 0x4]
- bl sub_8023F8C
- b _08023B34
-_08023B16:
- ldr r0, _08023B30
- ldr r0, [r0]
- movs r1, 0xD6
- lsls r1, 2
- adds r0, r1
- movs r1, 0x1
- bl sub_80138B8
- lsls r0, 24
- cmp r0, 0
- bne _08023B34
- movs r0, 0
- b _08023B3E
- .align 2, 0
-_08023B30: .4byte gUnknown_3001B60
-_08023B34:
- bl sub_8023CF4
- bl sub_8023DA4
- movs r0, 0x1
-_08023B3E:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_8023A94
-
- thumb_func_start sub_8023B44
-sub_8023B44:
- ldr r0, _08023B74
- ldr r0, [r0]
- ldr r2, _08023B78
- adds r1, r0, r2
- movs r3, 0
- ldrsh r2, [r1, r3]
- movs r3, 0xDD
- lsls r3, 2
- adds r1, r0, r3
- movs r3, 0
- ldrsh r1, [r1, r3]
- muls r1, r2
- movs r3, 0xDC
- lsls r3, 2
- adds r2, r0, r3
- movs r3, 0
- ldrsh r2, [r2, r3]
- adds r1, r2
- lsls r1, 1
- adds r0, 0x1A
- adds r0, r1
- movs r1, 0
- ldrsh r0, [r0, r1]
- bx lr
- .align 2, 0
-_08023B74: .4byte gUnknown_3001B60
-_08023B78: .4byte 0x00000376
- thumb_func_end sub_8023B44
-
- thumb_func_start sub_8023B7C
-sub_8023B7C:
- push {r4,r5,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- bl ResetUnusedInputStruct
- ldr r5, _08023BD0
- ldr r0, [r5]
- movs r1, 0xE5
- lsls r1, 2
- adds r0, r1
- movs r1, 0
- movs r2, 0
- bl sub_800641C
- bl sub_8023BD8
- adds r2, r0, 0
- ldr r0, [r5]
- ldr r3, _08023BD4
- adds r1, r0, r3
- strh r2, [r1]
- movs r1, 0xD6
- lsls r1, 2
- adds r0, r1
- bl sub_8013984
- bl sub_8023CF4
- bl sub_8023DA4
- cmp r4, 0
- beq _08023BCA
- ldr r0, [r5]
- movs r3, 0xD6
- lsls r3, 2
- adds r0, r3
- bl AddMenuCursorSprite
-_08023BCA:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08023BD0: .4byte gUnknown_3001B60
-_08023BD4: .4byte 0x0000037a
- thumb_func_end sub_8023B7C
-
- thumb_func_start sub_8023BD8
-sub_8023BD8:
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- movs r3, 0
- ldr r1, _08023C58
- ldr r0, [r1]
- ldr r0, [r0, 0x8]
- adds r7, r1, 0
- cmp r3, r0
- bge _08023C4A
- ldr r0, _08023C5C
- mov r8, r0
- mov r12, r7
-_08023BF2:
- ldr r2, [r1]
- lsls r4, r3, 1
- adds r0, r2, 0
- adds r0, 0x1A
- adds r0, r4
- movs r5, 0
- ldrsh r1, [r0, r5]
- movs r0, 0x58
- muls r0, r1
- mov r5, r8
- ldr r1, [r5]
- adds r0, r1
- ldrb r1, [r0]
- movs r0, 0x1
- ands r0, r1
- adds r6, r3, 0x1
- cmp r0, 0
- bne _08023C3E
- ldr r0, [r2, 0x8]
- subs r0, 0x1
- str r0, [r2, 0x8]
- cmp r3, r0
- bge _08023C3E
- mov r5, r12
- adds r4, 0x2
-_08023C24:
- ldr r2, [r5]
- lsls r1, r3, 1
- adds r0, r2, 0
- adds r0, 0x1A
- adds r1, r0, r1
- adds r0, r4
- ldrh r0, [r0]
- strh r0, [r1]
- adds r4, 0x2
- adds r3, 0x1
- ldr r0, [r2, 0x8]
- cmp r3, r0
- blt _08023C24
-_08023C3E:
- adds r3, r6, 0
- adds r1, r7, 0
- ldr r0, [r7]
- ldr r0, [r0, 0x8]
- cmp r3, r0
- blt _08023BF2
-_08023C4A:
- ldr r0, [r7]
- ldr r0, [r0, 0x8]
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_08023C58: .4byte gUnknown_3001B60
-_08023C5C: .4byte gRecruitedPokemonRef
- thumb_func_end sub_8023BD8
-
- thumb_func_start sub_8023C60
-sub_8023C60:
- push {r4-r6,lr}
- ldr r5, _08023CCC
- ldr r2, [r5]
- cmp r2, 0
- beq _08023CC6
- ldr r1, _08023CD0
- ldr r0, [r2]
- str r0, [r1]
- ldr r1, _08023CD4
- ldr r0, [r2, 0x4]
- str r0, [r1]
- ldr r1, _08023CD8
- movs r3, 0xDC
- lsls r3, 2
- adds r0, r2, r3
- ldrh r0, [r0]
- strh r0, [r1]
- ldr r1, _08023CDC
- ldr r6, _08023CE0
- adds r0, r2, r6
- ldrh r0, [r0]
- strh r0, [r1]
- movs r1, 0xE3
- lsls r1, 2
- adds r0, r2, r1
- ldr r0, [r0]
- lsls r1, r0, 1
- adds r1, r0
- lsls r1, 3
- adds r1, r2, r1
- movs r4, 0xE5
- lsls r4, 2
- adds r1, r4
- ldr r0, _08023CE4
- ldm r0!, {r2,r3,r6}
- stm r1!, {r2,r3,r6}
- ldm r0!, {r2,r3,r6}
- stm r1!, {r2,r3,r6}
- bl ResetUnusedInputStruct
- ldr r0, [r5]
- adds r0, r4
- movs r1, 0x1
- movs r2, 0x1
- bl sub_800641C
- ldr r0, [r5]
- bl MemoryFree
- movs r0, 0
- str r0, [r5]
-_08023CC6:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08023CCC: .4byte gUnknown_3001B60
-_08023CD0: .4byte gUnknown_203B2A0
-_08023CD4: .4byte gUnknown_203B2A4
-_08023CD8: .4byte gUnknown_203B2A8
-_08023CDC: .4byte gUnknown_203B2AA
-_08023CE0: .4byte 0x00000376
-_08023CE4: .4byte gUnknown_80DC950
- thumb_func_end sub_8023C60
-
- thumb_func_start sub_8023CE8
-sub_8023CE8:
- ldr r0, _08023CF0
- ldr r0, [r0]
- bx lr
- .align 2, 0
-_08023CF0: .4byte gUnknown_3001B60
- thumb_func_end sub_8023CE8
-
- thumb_func_start sub_8023CF4
-sub_8023CF4:
- push {r4,r5,lr}
- ldr r2, _08023D28
- ldr r0, [r2]
- movs r1, 0xFD
- lsls r1, 2
- adds r0, r1
- movs r3, 0
- movs r1, 0x1
- strb r1, [r0]
- ldr r0, [r2]
- ldr r1, _08023D2C
- adds r0, r1
- strb r3, [r0]
- ldr r0, [r2]
- adds r1, 0x2
- adds r0, r1
- strb r3, [r0]
- ldr r1, [r2]
- ldr r0, [r1]
- adds r5, r2, 0
- cmp r0, 0x2
- bne _08023D34
- ldr r0, _08023D30
- adds r1, r0
- b _08023D38
- .align 2, 0
-_08023D28: .4byte gUnknown_3001B60
-_08023D2C: .4byte 0x000003f5
-_08023D30: .4byte 0x000003f6
-_08023D34:
- ldr r2, _08023D98
- adds r1, r2
-_08023D38:
- movs r0, 0xC
- strb r0, [r1]
- ldr r0, [r5]
- ldr r1, _08023D9C
- adds r0, r1
- movs r2, 0
- ldrsh r0, [r0, r2]
- movs r1, 0xC
- bl sub_80095E4
- adds r0, 0x2
- ldr r3, [r5]
- movs r1, 0xE3
- lsls r1, 2
- adds r4, r3, r1
- ldr r2, [r4]
- lsls r1, r2, 1
- adds r1, r2
- lsls r1, 3
- adds r1, r3, r1
- ldr r2, _08023DA0
- adds r1, r2
- lsls r0, 16
- lsrs r0, 16
- strh r0, [r1]
- ldr r2, [r4]
- lsls r1, r2, 1
- adds r1, r2
- lsls r1, 3
- adds r3, r1
- movs r1, 0xE9
- lsls r1, 2
- adds r3, r1
- strh r0, [r3]
- bl ResetUnusedInputStruct
- ldr r0, [r5]
- movs r2, 0xE5
- lsls r2, 2
- adds r0, r2
- movs r1, 0x1
- movs r2, 0x1
- bl sub_800641C
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08023D98: .4byte 0x000003f6
-_08023D9C: .4byte 0x00000372
-_08023DA0: .4byte 0x000003a2
- thumb_func_end sub_8023CF4
-
- thumb_func_start sub_8023DA4
-sub_8023DA4:
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- sub sp, 0x58
- ldr r4, _08023DD8
- ldr r0, [r4]
- movs r5, 0xE3
- lsls r5, 2
- adds r0, r5
- ldr r0, [r0]
- bl sub_8008C54
- ldr r0, [r4]
- adds r0, r5
- ldr r0, [r0]
- bl sub_80073B8
- ldr r0, [r4]
- ldr r1, [r0]
- cmp r1, 0x2
- beq _08023DE0
- cmp r1, 0x4
- beq _08023E00
- ldr r2, _08023DDC
- b _08023E02
- .align 2, 0
-_08023DD8: .4byte gUnknown_3001B60
-_08023DDC: .4byte gUnknown_80DC988
-_08023DE0:
- add r0, sp, 0x8
- bl sub_80920D8
- ldr r0, [r4]
- movs r1, 0xE3
- lsls r1, 2
- adds r0, r1
- ldr r3, [r0]
- movs r0, 0
- str r0, [sp]
- movs r0, 0xA
- movs r1, 0
- add r2, sp, 0x8
- bl xxx_call_draw_string
- b _08023E3C
-_08023E00:
- ldr r2, _08023EBC
-_08023E02:
- adds r0, r5
- ldr r3, [r0]
- movs r0, 0
- str r0, [sp]
- movs r0, 0xA
- movs r1, 0
- bl xxx_call_draw_string
- ldr r1, [r4]
- ldr r2, _08023EC0
- adds r0, r1, r2
- ldrb r0, [r0]
- lsls r0, 3
- adds r3, r0, 0x4
- ldr r4, _08023EC4
- adds r0, r1, r4
- movs r4, 0
- ldrsh r2, [r0, r4]
- adds r2, 0x1
- movs r0, 0x7
- str r0, [sp]
- adds r1, r5
- ldr r0, [r1]
- str r0, [sp, 0x4]
- adds r0, r3, 0
- movs r1, 0
- movs r3, 0x2
- bl sub_8012BC4
-_08023E3C:
- movs r7, 0
- ldr r1, _08023EC8
- ldr r0, [r1]
- ldr r2, _08023ECC
- adds r0, r2
- movs r4, 0
- ldrsh r0, [r0, r4]
- cmp r7, r0
- blt _08023E50
- b _08023F62
-_08023E50:
- mov r8, r1
- add r0, sp, 0x30
- mov r9, r0
-_08023E56:
- ldr r3, [r1]
- ldr r1, _08023EC4
- adds r0, r3, r1
- movs r2, 0
- ldrsh r1, [r0, r2]
- movs r4, 0xDD
- lsls r4, 2
- adds r0, r3, r4
- movs r2, 0
- ldrsh r0, [r0, r2]
- muls r1, r0
- adds r1, r7
- lsls r1, 1
- adds r0, r3, 0
- adds r0, 0x1A
- adds r0, r1
- movs r4, 0
- ldrsh r5, [r0, r4]
- ldr r2, _08023ED0
- movs r0, 0x58
- adds r1, r5, 0
- muls r1, r0
- ldr r0, [r2]
- adds r4, r0, r1
- movs r6, 0x7
- ldrh r0, [r4]
- lsrs r0, 1
- movs r1, 0x1
- ands r0, r1
- cmp r0, 0
- beq _08023ED4
- movs r0, 0
- ldrb r1, [r4, 0x4]
- cmp r1, 0x41
- bne _08023E9E
- movs r0, 0x1
-_08023E9E:
- cmp r0, 0
- beq _08023EA4
- movs r6, 0x6
-_08023EA4:
- movs r0, 0
- cmp r1, 0x40
- bne _08023EAC
- movs r0, 0x1
-_08023EAC:
- cmp r0, 0
- beq _08023EB2
- movs r6, 0x6
-_08023EB2:
- ldrb r0, [r4, 0x2]
- cmp r0, 0
- beq _08023EEA
- movs r6, 0x5
- b _08023EEA
- .align 2, 0
-_08023EBC: .4byte gUnknown_80DC980
-_08023EC0: .4byte 0x000003f6
-_08023EC4: .4byte 0x00000376
-_08023EC8: .4byte gUnknown_3001B60
-_08023ECC: .4byte 0x00000372
-_08023ED0: .4byte gRecruitedPokemonRef
-_08023ED4:
- ldrb r0, [r3, 0x18]
- cmp r0, 0
- beq _08023EEA
- adds r0, r5, 0
- bl sub_808D750
- lsls r0, 24
- movs r6, 0x2
- cmp r0, 0
- beq _08023EEA
- movs r6, 0x4
-_08023EEA:
- mov r0, r8
- ldr r1, [r0]
- ldr r0, [r1]
- cmp r0, 0x4
- bne _08023F02
- movs r2, 0xD5
- lsls r2, 2
- adds r0, r1, r2
- ldrb r1, [r0]
- adds r0, r4, 0
- bl sub_8024184
-_08023F02:
- adds r1, r4, 0
- adds r1, 0x4C
- mov r0, r9
- movs r2, 0xA
- bl sub_80922B4
- movs r0, 0x8
- ldrsh r1, [r4, r0]
- add r0, sp, 0x44
- bl sub_808D930
- add r0, sp, 0x8
- ldr r1, _08023F80
- adds r2, r6, 0
- mov r3, r9
- bl ExpandPlaceholdersBuffer
- mov r1, r8
- ldr r0, [r1]
- movs r2, 0xD6
- lsls r2, 2
- adds r0, r2
- adds r1, r7, 0
- bl sub_8013800
- adds r1, r0, 0
- mov r4, r8
- ldr r0, [r4]
- movs r2, 0xE3
- lsls r2, 2
- adds r0, r2
- ldr r3, [r0]
- movs r0, 0
- str r0, [sp]
- movs r0, 0x8
- add r2, sp, 0x8
- bl xxx_call_draw_string
- adds r7, 0x1
- mov r1, r8
- ldr r0, [r4]
- ldr r4, _08023F84
- adds r0, r4
- movs r2, 0
- ldrsh r0, [r0, r2]
- cmp r7, r0
- bge _08023F62
- b _08023E56
-_08023F62:
- ldr r0, _08023F88
- ldr r0, [r0]
- movs r4, 0xE3
- lsls r4, 2
- adds r0, r4
- ldr r0, [r0]
- bl sub_80073E0
- add sp, 0x58
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08023F80: .4byte gUnknown_80DC998
-_08023F84: .4byte 0x00000372
-_08023F88: .4byte gUnknown_3001B60
- thumb_func_end sub_8023DA4
-
- thumb_func_start sub_8023F8C
-sub_8023F8C:
- push {r4-r7,lr}
- ldr r2, _08023FD0
- ldr r1, [r2]
- movs r0, 0
- str r0, [r1, 0x8]
- ldrb r0, [r1, 0x15]
- adds r6, r2, 0
- cmp r0, 0
- bne _08023FE2
- movs r4, 0
- ldr r2, _08023FD4
-_08023FA2:
- movs r0, 0x58
- adds r1, r4, 0
- muls r1, r0
- ldr r0, [r2]
- adds r1, r0, r1
- ldrb r0, [r1, 0x2]
- cmp r0, 0
- beq _08023FD8
- ldrb r1, [r1]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _08023FD8
- ldr r3, [r6]
- ldr r1, [r3, 0x8]
- lsls r2, r1, 1
- adds r0, r3, 0
- adds r0, 0x1A
- adds r0, r2
- strh r4, [r0]
- adds r1, 0x1
- str r1, [r3, 0x8]
- b _08023FE2
- .align 2, 0
-_08023FD0: .4byte gUnknown_3001B60
-_08023FD4: .4byte gRecruitedPokemonRef
-_08023FD8:
- adds r4, 0x1
- movs r0, 0xCE
- lsls r0, 1
- cmp r4, r0
- ble _08023FA2
-_08023FE2:
- ldr r0, [r6]
- ldrb r0, [r0, 0x16]
- cmp r0, 0
- bne _08024042
- movs r4, 0
- ldr r3, _08024034
-_08023FEE:
- movs r0, 0x58
- adds r1, r4, 0
- muls r1, r0
- ldr r0, [r3]
- adds r1, r0, r1
- movs r2, 0
- ldrb r0, [r1, 0x4]
- cmp r0, 0x41
- bne _08024002
- movs r2, 0x1
-_08024002:
- cmp r2, 0
- beq _08024038
- ldrb r0, [r1, 0x2]
- cmp r0, 0
- bne _08024038
- ldrh r1, [r1]
- lsrs r0, r1, 1
- movs r2, 0x1
- ands r0, r2
- cmp r0, 0
- beq _08024038
- adds r0, r2, 0
- ands r0, r1
- cmp r0, 0
- beq _08024038
- ldr r3, [r6]
- ldr r1, [r3, 0x8]
- lsls r2, r1, 1
- adds r0, r3, 0
- adds r0, 0x1A
- adds r0, r2
- strh r4, [r0]
- adds r1, 0x1
- str r1, [r3, 0x8]
- b _08024042
- .align 2, 0
-_08024034: .4byte gRecruitedPokemonRef
-_08024038:
- adds r4, 0x1
- movs r0, 0xCE
- lsls r0, 1
- cmp r4, r0
- ble _08023FEE
-_08024042:
- ldr r0, [r6]
- ldr r1, [r0, 0x8]
- str r1, [r0, 0xC]
- ldrb r0, [r0, 0x17]
- cmp r0, 0
- bne _080240A4
- movs r4, 0
- ldr r7, _08024100
- movs r5, 0x1
-_08024054:
- movs r0, 0x58
- adds r1, r4, 0
- muls r1, r0
- ldr r0, [r7]
- adds r1, r0, r1
- ldrh r2, [r1]
- lsrs r0, r2, 1
- ands r0, r5
- cmp r0, 0
- beq _0802409A
- adds r0, r5, 0
- ands r0, r2
- cmp r0, 0
- beq _0802409A
- ldrb r0, [r1, 0x2]
- cmp r0, 0
- bne _0802409A
- movs r2, 0
- ldrb r0, [r1, 0x4]
- cmp r0, 0x41
- bne _08024080
- movs r2, 0x1
-_08024080:
- cmp r2, 0
- bne _0802409A
- ldr r3, [r6]
- ldr r1, [r3, 0x8]
- lsls r2, r1, 1
- adds r0, r3, 0
- adds r0, 0x1A
- adds r0, r2
- strh r4, [r0]
- adds r1, 0x1
- str r1, [r3, 0x8]
- cmp r1, 0x3
- bgt _080240A4
-_0802409A:
- adds r4, 0x1
- movs r0, 0xCE
- lsls r0, 1
- cmp r4, r0
- ble _08024054
-_080240A4:
- ldr r0, [r6]
- ldr r1, [r0, 0x8]
- str r1, [r0, 0x10]
- ldrb r0, [r0, 0x14]
- cmp r0, 0
- bne _080240EE
- movs r4, 0
- ldr r7, _08024100
- movs r5, 0x1
-_080240B6:
- movs r0, 0x58
- adds r1, r4, 0
- muls r1, r0
- ldr r0, [r7]
- adds r1, r0, r1
- ldrh r1, [r1]
- adds r0, r5, 0
- ands r0, r1
- cmp r0, 0
- beq _080240E4
- lsrs r0, r1, 1
- ands r0, r5
- cmp r0, 0
- bne _080240E4
- ldr r3, [r6]
- ldr r1, [r3, 0x8]
- lsls r2, r1, 1
- adds r0, r3, 0
- adds r0, 0x1A
- adds r0, r2
- strh r4, [r0]
- adds r1, 0x1
- str r1, [r3, 0x8]
-_080240E4:
- adds r4, 0x1
- movs r0, 0xCE
- lsls r0, 1
- cmp r4, r0
- ble _080240B6
-_080240EE:
- bl sub_80241A8
- ldr r0, _08024104
- ldr r0, [r0]
- ldr r0, [r0, 0x8]
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_08024100: .4byte gRecruitedPokemonRef
-_08024104: .4byte gUnknown_3001B60
- thumb_func_end sub_8023F8C
-
- thumb_func_start sub_8024108
-sub_8024108:
- push {r4-r7,lr}
- adds r5, r0, 0
- movs r7, 0
- movs r6, 0x1
-_08024110:
- ldr r2, _08024134
- movs r0, 0x58
- adds r1, r7, 0
- muls r1, r0
- ldr r0, [r2]
- adds r4, r0, r1
- ldrh r1, [r4]
- adds r0, r6, 0
- ands r0, r1
- cmp r0, 0
- beq _08024172
- cmp r5, 0x2
- bne _08024138
- lsrs r0, r1, 1
- ands r0, r6
- cmp r0, 0
- beq _08024172
- b _0802416E
- .align 2, 0
-_08024134: .4byte gRecruitedPokemonRef
-_08024138:
- cmp r5, 0x3
- bne _08024140
- lsrs r0, r1, 1
- b _08024168
-_08024140:
- cmp r5, 0x4
- bne _0802416E
- ldrb r0, [r4, 0x2]
- cmp r0, 0
- bne _08024172
- movs r0, 0x9
- bl sub_80023E4
- lsls r0, 24
- cmp r0, 0
- bne _0802416E
- movs r1, 0
- ldrb r0, [r4, 0x4]
- cmp r0, 0x41
- bne _08024160
- movs r1, 0x1
-_08024160:
- cmp r1, 0
- beq _0802416E
- ldrh r0, [r4]
- lsrs r0, 1
-_08024168:
- ands r0, r6
- cmp r0, 0
- bne _08024172
-_0802416E:
- movs r0, 0
- b _0802417E
-_08024172:
- adds r7, 0x1
- movs r0, 0xCE
- lsls r0, 1
- cmp r7, r0
- ble _08024110
- movs r0, 0x1
-_0802417E:
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_8024108
-
- thumb_func_start sub_8024184
-sub_8024184:
- push {r4,lr}
- lsls r4, r1, 24
- lsrs r4, 24
- movs r1, 0x8
- ldrsh r0, [r0, r1]
- bl GetFriendArea
- lsls r0, 24
- lsrs r0, 24
- cmp r4, r0
- beq _0802419E
- movs r0, 0
- b _080241A0
-_0802419E:
- movs r0, 0x1
-_080241A0:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_8024184
-
- thumb_func_start sub_80241A8
-sub_80241A8:
- push {r4,lr}
- ldr r4, _080241C0
- ldr r1, [r4]
- ldr r0, [r1, 0x4]
- cmp r0, 0x2
- beq _080241CA
- cmp r0, 0x2
- bhi _080241C4
- cmp r0, 0x1
- beq _08024206
- b _08024222
- .align 2, 0
-_080241C0: .4byte gUnknown_3001B60
-_080241C4:
- cmp r0, 0x3
- beq _080241E8
- b _08024222
-_080241CA:
- ldr r0, [r1, 0xC]
- ldr r1, [r1, 0x10]
- cmp r0, r1
- beq _080241D6
- bl sub_80242D0
-_080241D6:
- ldr r0, [r4]
- ldr r2, [r0, 0x10]
- ldr r1, [r0, 0x8]
- cmp r2, r1
- beq _08024222
- adds r0, r2, 0
- bl sub_80242D0
- b _08024222
-_080241E8:
- ldr r0, [r1, 0xC]
- ldr r1, [r1, 0x10]
- cmp r0, r1
- beq _080241F4
- bl sub_802437C
-_080241F4:
- ldr r0, [r4]
- ldr r2, [r0, 0x10]
- ldr r1, [r0, 0x8]
- cmp r2, r1
- beq _08024222
- adds r0, r2, 0
- bl sub_802437C
- b _08024222
-_08024206:
- ldr r0, [r1, 0xC]
- ldr r1, [r1, 0x10]
- cmp r0, r1
- beq _08024212
- bl sub_8024228
-_08024212:
- ldr r0, [r4]
- ldr r2, [r0, 0x10]
- ldr r1, [r0, 0x8]
- cmp r2, r1
- beq _08024222
- adds r0, r2, 0
- bl sub_8024228
-_08024222:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80241A8
-
- thumb_func_start sub_8024228
-sub_8024228:
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0xC
- ldr r3, _080242C8
- lsls r2, r1, 1
- adds r2, 0x18
- ldr r3, [r3]
- adds r3, r2
- str r3, [sp]
- adds r2, r0, 0
- subs r1, 0x1
- cmp r2, r1
- bge _080242B8
- str r1, [sp, 0x4]
-_0802424A:
- ldr r5, [sp]
- adds r7, r1, 0
- adds r0, r2, 0x1
- mov r10, r0
- cmp r7, r2
- ble _080242B0
- ldr r3, _080242CC
- mov r9, r3
- movs r0, 0x58
- mov r8, r0
-_0802425E:
- mov r3, r9
- ldr r1, [r3]
- subs r6, r5, 0x2
- movs r3, 0
- ldrsh r0, [r6, r3]
- mov r3, r8
- muls r3, r0
- adds r0, r3, 0
- adds r1, r0
- movs r3, 0x8
- ldrsh r0, [r1, r3]
- str r2, [sp, 0x8]
- bl GetInternalNo
- adds r4, r0, 0
- mov r0, r9
- ldr r1, [r0]
- movs r3, 0
- ldrsh r0, [r5, r3]
- mov r3, r8
- muls r3, r0
- adds r0, r3, 0
- adds r1, r0
- movs r3, 0x8
- ldrsh r0, [r1, r3]
- bl GetInternalNo
- lsls r4, 16
- lsls r0, 16
- ldr r2, [sp, 0x8]
- cmp r4, r0
- ble _080242A8
- movs r0, 0
- ldrsh r1, [r5, r0]
- ldrh r0, [r6]
- strh r0, [r5]
- strh r1, [r6]
-_080242A8:
- adds r5, r6, 0
- subs r7, 0x1
- cmp r7, r2
- bgt _0802425E
-_080242B0:
- mov r2, r10
- ldr r1, [sp, 0x4]
- cmp r2, r1
- blt _0802424A
-_080242B8:
- add sp, 0xC
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080242C8: .4byte gUnknown_3001B60
-_080242CC: .4byte gRecruitedPokemonRef
- thumb_func_end sub_8024228
-
- thumb_func_start sub_80242D0
-sub_80242D0:
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0xC
- ldr r3, _08024374
- lsls r2, r1, 1
- adds r2, 0x18
- ldr r3, [r3]
- adds r3, r2
- str r3, [sp]
- adds r2, r0, 0
- subs r1, 0x1
- cmp r2, r1
- bge _08024364
- str r1, [sp, 0x4]
-_080242F2:
- ldr r5, [sp]
- adds r7, r1, 0
- adds r0, r2, 0x1
- mov r10, r0
- cmp r7, r2
- ble _0802435C
- ldr r3, _08024378
- mov r9, r3
- movs r0, 0x58
- mov r8, r0
-_08024306:
- mov r3, r9
- ldr r1, [r3]
- subs r6, r5, 0x2
- movs r3, 0
- ldrsh r0, [r6, r3]
- mov r3, r8
- muls r3, r0
- adds r0, r3, 0
- adds r1, r0
- movs r3, 0x8
- ldrsh r0, [r1, r3]
- movs r1, 0
- str r2, [sp, 0x8]
- bl GetAlphabetParentNo
- adds r4, r0, 0
- mov r0, r9
- ldr r1, [r0]
- movs r3, 0
- ldrsh r0, [r5, r3]
- mov r3, r8
- muls r3, r0
- adds r0, r3, 0
- adds r1, r0
- movs r3, 0x8
- ldrsh r0, [r1, r3]
- movs r1, 0
- bl GetAlphabetParentNo
- lsls r4, 16
- lsls r0, 16
- ldr r2, [sp, 0x8]
- cmp r4, r0
- ble _08024354
- movs r0, 0
- ldrsh r1, [r5, r0]
- ldrh r0, [r6]
- strh r0, [r5]
- strh r1, [r6]
-_08024354:
- adds r5, r6, 0
- subs r7, 0x1
- cmp r7, r2
- bgt _08024306
-_0802435C:
- mov r2, r10
- ldr r1, [sp, 0x4]
- cmp r2, r1
- blt _080242F2
-_08024364:
- add sp, 0xC
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08024374: .4byte gUnknown_3001B60
-_08024378: .4byte gRecruitedPokemonRef
- thumb_func_end sub_80242D0
-
- thumb_func_start sub_802437C
-sub_802437C:
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- ldr r3, _080243E4
- lsls r2, r1, 1
- adds r2, 0x18
- ldr r3, [r3]
- adds r3, r2
- mov r10, r3
- adds r7, r0, 0
- subs r1, 0x1
- cmp r7, r1
- bge _080243D6
- mov r9, r1
-_0802439C:
- mov r4, r10
- adds r6, r1, 0
- adds r0, r7, 0x1
- mov r8, r0
- cmp r6, r7
- ble _080243CE
-_080243A8:
- subs r5, r4, 0x2
- movs r1, 0
- ldrsh r0, [r5, r1]
- movs r2, 0
- ldrsh r1, [r4, r2]
- bl ComparePokemonNames
- lsls r0, 24
- cmp r0, 0
- beq _080243C6
- movs r0, 0
- ldrsh r1, [r4, r0]
- ldrh r0, [r5]
- strh r0, [r4]
- strh r1, [r5]
-_080243C6:
- adds r4, r5, 0
- subs r6, 0x1
- cmp r6, r7
- bgt _080243A8
-_080243CE:
- mov r7, r8
- mov r1, r9
- cmp r7, r1
- blt _0802439C
-_080243D6:
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080243E4: .4byte gUnknown_3001B60
- thumb_func_end sub_802437C
-
- thumb_func_start sub_80243E8
-sub_80243E8:
- push {r4,r5,lr}
- sub sp, 0x3C
- ldr r3, _08024448
- ldr r0, _0802444C
- ldr r0, [r0]
- ldr r2, _08024450
- adds r1, r0, r2
- movs r4, 0
- ldrsh r2, [r1, r4]
- movs r4, 0xDD
- lsls r4, 2
- adds r1, r0, r4
- movs r4, 0
- ldrsh r1, [r1, r4]
- muls r1, r2
- movs r4, 0xDC
- lsls r4, 2
- adds r2, r0, r4
- movs r4, 0
- ldrsh r2, [r2, r4]
- adds r1, r2
- lsls r1, 1
- adds r0, 0x1A
- adds r0, r1
- movs r2, 0
- ldrsh r1, [r0, r2]
- movs r0, 0x58
- muls r0, r1
- ldr r4, [r3]
- adds r4, r0
- add r5, sp, 0x28
- adds r1, r4, 0
- adds r1, 0x4C
- adds r0, r5, 0
- movs r2, 0xA
- bl sub_80922B4
- ldr r1, _08024454
- mov r0, sp
- adds r2, r5, 0
- bl ExpandPlaceholdersBuffer
- adds r0, r4, 0
- add sp, 0x3C
- pop {r4,r5}
- pop {r1}
- bx r1
- .align 2, 0
-_08024448: .4byte gRecruitedPokemonRef
-_0802444C: .4byte gUnknown_3001B60
-_08024450: .4byte 0x00000376
-_08024454: .4byte gUnknown_80DC9A4
- thumb_func_end sub_80243E8
-
- thumb_func_start sub_8024458
-sub_8024458:
- push {r4-r6,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- lsls r4, 16
- asrs r4, 16
- ldr r6, _080244DC
- movs r0, 0xA6
- lsls r0, 1
- movs r1, 0x8
- bl MemoryAlloc
- str r0, [r6]
- adds r1, r0, 0
- adds r1, 0x48
- strh r4, [r1]
- adds r1, 0x98
- str r5, [r1]
- adds r2, r0, 0
- adds r2, 0xE4
- lsls r1, r5, 1
- adds r1, r5
- lsls r1, 3
- adds r1, 0xE8
- adds r1, r0, r1
- str r1, [r2]
- adds r0, 0xE8
- bl sub_8006518
- ldr r1, [r6]
- adds r0, r1, 0
- adds r0, 0xE0
- ldr r2, [r0]
- lsls r0, r2, 1
- adds r0, r2
- lsls r0, 3
- adds r1, r0
- adds r1, 0xE8
- ldr r0, _080244E0
- ldm r0!, {r2-r4}
- stm r1!, {r2-r4}
- ldm r0!, {r2-r4}
- stm r1!, {r2-r4}
- ldr r2, [r6]
- adds r0, r2, 0
- adds r0, 0xE4
- ldr r1, [r0]
- movs r3, 0xA4
- lsls r3, 1
- adds r0, r2, r3
- str r0, [r1, 0x14]
- movs r4, 0xA5
- lsls r4, 1
- adds r1, r2, r4
- movs r0, 0xA
- strb r0, [r1]
- bl sub_8024604
- bl sub_802452C
- ldr r0, [r6]
- bl sub_8013984
- movs r0, 0x1
- pop {r4-r6}
- pop {r1}
- bx r1
- .align 2, 0
-_080244DC: .4byte gUnknown_203B2AC
-_080244E0: .4byte gUnknown_80DC9C8
- thumb_func_end sub_8024458
-
- thumb_func_start sub_80244E4
-sub_80244E4:
- push {r4,lr}
- ldr r4, _08024500
- ldr r0, [r4]
- bl GetKeyPress
- cmp r0, 0x1
- beq _08024504
- cmp r0, 0x2
- bne _0802450E
- movs r0, 0x1
- bl PlayMenuSoundEffect
- movs r0, 0x2
- b _08024524
- .align 2, 0
-_08024500: .4byte gUnknown_203B2AC
-_08024504:
- movs r0, 0
- bl PlayMenuSoundEffect
- movs r0, 0x3
- b _08024524
-_0802450E:
- ldr r0, [r4]
- bl sub_8013938
- lsls r0, 24
- cmp r0, 0
- bne _0802451E
- movs r0, 0
- b _08024524
-_0802451E:
- bl sub_802452C
- movs r0, 0x1
-_08024524:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_80244E4
-
- thumb_func_start sub_802452C
-sub_802452C:
- push {lr}
- bl sub_8024588
- bl sub_80245D0
- pop {r0}
- bx r0
- thumb_func_end sub_802452C
-
- thumb_func_start sub_802453C
-sub_802453C:
- push {r4,r5,lr}
- ldr r4, _08024580
- ldr r2, [r4]
- cmp r2, 0
- beq _0802457A
- adds r0, r2, 0
- adds r0, 0xE0
- ldr r0, [r0]
- lsls r1, r0, 1
- adds r1, r0
- lsls r1, 3
- adds r1, r2, r1
- adds r1, 0xE8
- ldr r0, _08024584
- ldm r0!, {r2,r3,r5}
- stm r1!, {r2,r3,r5}
- ldm r0!, {r2,r3,r5}
- stm r1!, {r2,r3,r5}
- bl ResetUnusedInputStruct
- ldr r0, [r4]
- adds r0, 0xE8
- movs r1, 0x1
- movs r2, 0x1
- bl sub_800641C
- ldr r0, [r4]
- bl MemoryFree
- movs r0, 0
- str r0, [r4]
-_0802457A:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08024580: .4byte gUnknown_203B2AC
-_08024584: .4byte gUnknown_80DC9B0
- thumb_func_end sub_802453C
-
- thumb_func_start sub_8024588
-sub_8024588:
- push {r4,lr}
- ldr r4, _080245C4
- ldr r0, [r4]
- ldrh r1, [r0, 0x20]
- movs r2, 0xA4
- lsls r2, 1
- adds r0, r2
- movs r2, 0
- strb r1, [r0]
- ldr r0, [r4]
- ldrh r1, [r0, 0x1E]
- ldr r3, _080245C8
- adds r0, r3
- strb r1, [r0]
- ldr r0, [r4]
- ldr r1, _080245CC
- adds r0, r1
- strb r2, [r0]
- bl ResetUnusedInputStruct
- ldr r0, [r4]
- adds r0, 0xE8
- movs r1, 0x1
- movs r2, 0x1
- bl sub_800641C
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080245C4: .4byte gUnknown_203B2AC
-_080245C8: .4byte 0x00000149
-_080245CC: .4byte 0x0000014b
- thumb_func_end sub_8024588
-
- thumb_func_start sub_80245D0
-sub_80245D0:
- push {r4,lr}
- sub sp, 0x4
- ldr r0, _08024600
- ldr r4, [r0]
- movs r0, 0x1E
- ldrsh r1, [r4, r0]
- lsls r2, r1, 2
- adds r0, r4, 0
- adds r0, 0x34
- adds r0, r2
- ldr r0, [r0]
- adds r2, r4, 0
- adds r2, 0x4C
- adds r3, r4, 0
- adds r3, 0xB0
- adds r4, 0xE0
- ldr r4, [r4]
- str r4, [sp]
- bl CreatePokemonInfoTabScreen
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08024600: .4byte gUnknown_203B2AC
- thumb_func_end sub_80245D0
-
- thumb_func_start sub_8024604
-sub_8024604:
- push {r4,r5,lr}
- ldr r4, _08024654
- ldr r0, [r4]
- movs r1, 0x2
- str r1, [r0, 0x34]
- movs r1, 0x3
- str r1, [r0, 0x38]
- movs r1, 0x5
- str r1, [r0, 0x3C]
- adds r1, r0, 0
- adds r1, 0xE0
- ldr r3, [r1]
- movs r1, 0x3
- movs r2, 0x1
- bl sub_8013818
- ldr r0, [r4]
- adds r5, r0, 0
- adds r5, 0x4C
- ldr r2, _08024658
- adds r0, 0x48
- movs r3, 0
- ldrsh r1, [r0, r3]
- movs r0, 0x58
- muls r0, r1
- ldr r4, [r2]
- adds r4, r0
- movs r0, 0x7
- bl sub_80023E4
- adds r2, r0, 0
- lsls r2, 24
- lsrs r2, 24
- adds r0, r5, 0
- adds r1, r4, 0
- bl sub_808FF20
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08024654: .4byte gUnknown_203B2AC
-_08024658: .4byte gRecruitedPokemonRef
- thumb_func_end sub_8024604
-
- thumb_func_start sub_802465C
-sub_802465C:
- push {r4,r5,lr}
- bl ResetUnusedInputStruct
- movs r0, 0
- movs r1, 0x1
- movs r2, 0x1
- bl sub_800641C
- ldr r5, _080246E8
- movs r0, 0xBA
- lsls r0, 1
- movs r1, 0x8
- bl MemoryAlloc
- str r0, [r5]
- movs r4, 0
- str r4, [r0, 0x28]
- str r4, [r0, 0x2C]
- str r4, [r0, 0x30]
- bl sub_808D33C
- ldr r1, [r5]
- str r0, [r1, 0xC]
- bl IsPokemonRenamed
- ldr r1, [r5]
- strb r0, [r1, 0x10]
- ldr r0, [r5]
- strb r4, [r0]
- ldr r0, _080246EC
- bl GetDialogueSpriteDataPtr
- ldr r2, [r5]
- movs r3, 0x82
- lsls r3, 1
- adds r1, r2, r3
- str r0, [r1]
- adds r3, 0x4
- adds r1, r2, r3
- ldr r0, [r0, 0x4]
- str r0, [r1]
- movs r1, 0x88
- lsls r1, 1
- adds r0, r2, r1
- strb r4, [r0]
- ldr r0, [r5]
- adds r3, 0x9
- adds r0, r3
- strb r4, [r0]
- ldr r0, [r5]
- adds r1, 0x2
- adds r0, r1
- strb r4, [r0]
- ldr r2, [r5]
- subs r3, 0x5
- adds r1, r2, r3
- movs r0, 0x2
- strh r0, [r1]
- movs r0, 0x87
- lsls r0, 1
- adds r1, r2, r0
- movs r0, 0x8
- strh r0, [r1]
- movs r0, 0
- bl sub_80247EC
- movs r0, 0x1
- pop {r4,r5}
- pop {r1}
- bx r1
- .align 2, 0
-_080246E8: .4byte gUnknown_203B2B0
-_080246EC: .4byte 0x00000155
- thumb_func_end sub_802465C
-
- thumb_func_start sub_80246F0
-sub_80246F0:
- push {lr}
- ldr r0, _08024708
- ldr r0, [r0]
- ldr r0, [r0, 0x20]
- cmp r0, 0x15
- bhi _080247A8
- lsls r0, 2
- ldr r1, _0802470C
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08024708: .4byte gUnknown_203B2B0
-_0802470C: .4byte _08024710
- .align 2, 0
-_08024710:
- .4byte _08024768
- .4byte _08024768
- .4byte _080247A8
- .4byte _080247A8
- .4byte _080247A4
- .4byte _0802476E
- .4byte _08024774
- .4byte _08024774
- .4byte _0802477A
- .4byte _08024780
- .4byte _08024786
- .4byte _0802478C
- .4byte _0802478C
- .4byte _08024792
- .4byte _08024798
- .4byte _080247A8
- .4byte _080247A8
- .4byte _080247A8
- .4byte _080247A8
- .4byte _080247A8
- .4byte _080247A8
- .4byte _0802479E
-_08024768:
- bl sub_8024E9C
- b _080247AC
-_0802476E:
- bl sub_8024F00
- b _080247AC
-_08024774:
- bl sub_8024FD4
- b _080247AC
-_0802477A:
- bl sub_80250EC
- b _080247AC
-_08024780:
- bl sub_80251CC
- b _080247AC
-_08024786:
- bl sub_8024F70
- b _080247AC
-_0802478C:
- bl sub_8025058
- b _080247AC
-_08024792:
- bl sub_802515C
- b _080247AC
-_08024798:
- bl sub_80251E8
- b _080247AC
-_0802479E:
- bl sub_8025204
- b _080247AC
-_080247A4:
- movs r0, 0x3
- b _080247AE
-_080247A8:
- bl sub_8025230
-_080247AC:
- movs r0, 0
-_080247AE:
- pop {r1}
- bx r1
- thumb_func_end sub_80246F0
-
- thumb_func_start sub_80247B4
-sub_80247B4:
- ldr r0, _080247BC
- ldr r0, [r0]
- ldrb r0, [r0]
- bx lr
- .align 2, 0
-_080247BC: .4byte gUnknown_203B2B0
- thumb_func_end sub_80247B4
-
- thumb_func_start sub_80247C0
-sub_80247C0:
- push {r4,lr}
- ldr r4, _080247E8
- ldr r0, [r4]
- cmp r0, 0
- beq _080247E0
- movs r1, 0x82
- lsls r1, 1
- adds r0, r1
- ldr r0, [r0]
- bl CloseFile
- ldr r0, [r4]
- bl MemoryFree
- movs r0, 0
- str r0, [r4]
-_080247E0:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080247E8: .4byte gUnknown_203B2B0
- thumb_func_end sub_80247C0
-
- thumb_func_start sub_80247EC
-sub_80247EC:
- push {lr}
- ldr r1, _08024800
- ldr r1, [r1]
- str r0, [r1, 0x20]
- bl sub_8024804
- bl sub_80248FC
- pop {r0}
- bx r0
- .align 2, 0
-_08024800: .4byte gUnknown_203B2B0
- thumb_func_end sub_80247EC
-
- thumb_func_start sub_8024804
-sub_8024804:
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- ldr r4, _0802482C
- ldr r0, [r4]
- movs r1, 0x8A
- lsls r1, 1
- adds r0, r1
- bl sub_8006518
- ldr r0, [r4]
- ldr r0, [r0, 0x20]
- subs r0, 0x8
- cmp r0, 0x14
- bhi _080248A8
- lsls r0, 2
- ldr r1, _08024830
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0802482C: .4byte gUnknown_203B2B0
-_08024830: .4byte _08024834
- .align 2, 0
-_08024834:
- .4byte _08024888
- .4byte _080248A8
- .4byte _080248A8
- .4byte _080248A8
- .4byte _080248A8
- .4byte _08024888
- .4byte _080248A8
- .4byte _080248A8
- .4byte _080248A8
- .4byte _080248D2
- .4byte _080248D2
- .4byte _080248D2
- .4byte _080248A8
- .4byte _080248A8
- .4byte _080248D2
- .4byte _080248D2
- .4byte _080248D2
- .4byte _080248D2
- .4byte _080248D2
- .4byte _080248D2
- .4byte _080248D2
-_08024888:
- ldr r0, _080248A0
- ldr r1, [r0]
- movs r2, 0xA2
- lsls r2, 1
- adds r1, r2
- ldr r0, _080248A4
- ldm r0!, {r3-r5}
- stm r1!, {r3-r5}
- ldm r0!, {r2,r6,r7}
- stm r1!, {r2,r6,r7}
- b _080248D2
- .align 2, 0
-_080248A0: .4byte gUnknown_203B2B0
-_080248A4: .4byte gUnknown_80DCA00
-_080248A8:
- ldr r3, _080248F4
- mov r12, r3
- movs r4, 0x8A
- lsls r4, 1
- mov r8, r4
- ldr r4, _080248F8
- movs r3, 0
- movs r2, 0x3
-_080248B8:
- 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 _080248B8
-_080248D2:
- bl ResetUnusedInputStruct
- ldr r0, _080248F4
- ldr r0, [r0]
- movs r6, 0x8A
- 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
-_080248F4: .4byte gUnknown_203B2B0
-_080248F8: .4byte gUnknown_80DC9E8
- thumb_func_end sub_8024804
-
- thumb_func_start sub_80248FC
-sub_80248FC:
- push {r4,r5,lr}
- sub sp, 0x14
- ldr r1, _08024918
- ldr r0, [r1]
- ldr r0, [r0, 0x20]
- adds r5, r1, 0
- cmp r0, 0x1D
- bls _0802490E
- b _08024CF4
-_0802490E:
- lsls r0, 2
- ldr r1, _0802491C
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08024918: .4byte gUnknown_203B2B0
-_0802491C: .4byte _08024920
- .align 2, 0
-_08024920:
- .4byte _08024998
- .4byte _080249D0
- .4byte _080249E8
- .4byte _080249F8
- .4byte _08024CF4
- .4byte _08024A14
- .4byte _08024A20
- .4byte _08024A2E
- .4byte _08024A94
- .4byte _08024AC0
- .4byte _08024A36
- .4byte _08024A68
- .4byte _08024A76
- .4byte _08024A94
- .4byte _08024AC0
- .4byte _08024ACA
- .4byte _08024AD8
- .4byte _08024AE8
- .4byte _08024B4C
- .4byte _08024B74
- .4byte _08024C9C
- .4byte _08024CC8
- .4byte _08024C1C
- .4byte _08024C2C
- .4byte _08024C3C
- .4byte _08024C4C
- .4byte _08024C5C
- .4byte _08024C6C
- .4byte _08024C7C
- .4byte _08024C8C
-_08024998:
- bl sub_80252B8
- lsls r0, 24
- cmp r0, 0
- beq _080249B0
- ldr r0, _080249AC
- ldr r1, [r0]
- movs r0, 0x3
- b _080249B6
- .align 2, 0
-_080249AC: .4byte gUnknown_203B2B0
-_080249B0:
- ldr r0, _080249C8
- ldr r1, [r0]
- movs r0, 0x1
-_080249B6:
- str r0, [r1, 0x28]
- bl sub_8024CFC
- ldr r0, _080249CC
- ldr r1, _080249C8
- ldr r1, [r1]
- ldr r2, [r1, 0x28]
- b _08024A42
- .align 2, 0
-_080249C8: .4byte gUnknown_203B2B0
-_080249CC: .4byte gLuminousCaveSeekAwakening
-_080249D0:
- bl sub_8024CFC
- ldr r0, _080249E0
- ldr r1, _080249E4
- ldr r1, [r1]
- ldr r2, [r1, 0x28]
- b _08024A42
- .align 2, 0
-_080249E0: .4byte gLuminousCaveAskEvolution
-_080249E4: .4byte gUnknown_203B2B0
-_080249E8:
- ldr r1, [r5]
- movs r0, 0x1
- str r0, [r1, 0x24]
- ldr r0, _080249F4
- b _08024CAE
- .align 2, 0
-_080249F4: .4byte gLuminousCaveEvolutionInfo
-_080249F8:
- ldr r1, [r5]
- movs r0, 0x4
- str r0, [r1, 0x24]
- movs r0, 0x8
- movs r1, 0x3C
- bl xxx_call_fade_in_new_bgm
- ldr r0, _08024A0C
- ldr r3, _08024A10
- b _08024CB0
- .align 2, 0
-_08024A0C: .4byte gLuminousCaveYeShallReturn
-_08024A10: .4byte 0x00000305
-_08024A14:
- bl sub_8024D48
- ldr r0, _08024A1C
- b _08024A3C
- .align 2, 0
-_08024A1C: .4byte gLuminousCaveGiveItem
-_08024A20:
- movs r0, 0x2
- movs r1, 0x3
- movs r2, 0
- movs r3, 0xA
- bl sub_801A5D8
- b _08024CF4
-_08024A2E:
- movs r0, 0x1
- bl sub_801A8D0
- b _08024CF4
-_08024A36:
- bl sub_8024DBC
- ldr r0, _08024A60
-_08024A3C:
- ldr r1, _08024A64
- ldr r1, [r1]
- ldr r2, [r1, 0x2C]
-_08024A42:
- adds r3, r1, 0
- adds r3, 0x34
- adds r1, 0x74
- str r1, [sp]
- movs r1, 0x4
- str r1, [sp, 0x4]
- movs r1, 0
- str r1, [sp, 0x8]
- str r1, [sp, 0xC]
- movs r1, 0x5
- str r1, [sp, 0x10]
- movs r1, 0
- bl sub_8014248
- b _08024CF4
- .align 2, 0
-_08024A60: .4byte gLuminousCaveGiveAnotherItem
-_08024A64: .4byte gUnknown_203B2B0
-_08024A68:
- movs r0, 0x2
- movs r1, 0x3
- movs r2, 0
- movs r3, 0xA
- bl sub_801A5D8
- b _08024A7C
-_08024A76:
- movs r0, 0x1
- bl sub_801A8D0
-_08024A7C:
- ldr r0, _08024A90
- ldr r0, [r0]
- ldr r0, [r0, 0x14]
- movs r1, 0x1
- bl sub_801AEE4
- bl sub_801A9E0
- b _08024CF4
- .align 2, 0
-_08024A90: .4byte gUnknown_203B2B0
-_08024A94:
- bl sub_801A9E0
- bl sub_8024E30
- ldr r0, _08024ABC
- ldr r2, [r0]
- adds r0, r2, 0
- adds r0, 0x84
- adds r1, r2, 0
- adds r1, 0x34
- adds r3, r2, 0
- adds r3, 0x74
- ldr r2, [r2, 0x30]
- str r2, [sp]
- movs r2, 0x2
- str r2, [sp, 0x4]
- movs r2, 0
- bl sub_8012D60
- b _08024CF4
- .align 2, 0
-_08024ABC: .4byte gUnknown_203B2B0
-_08024AC0:
- ldr r0, [r5]
- adds r0, 0x1C
- bl sub_801B3C0
- b _08024CF4
-_08024ACA:
- ldr r1, [r5]
- movs r0, 0x5
- str r0, [r1, 0x24]
- ldr r0, _08024AD4
- b _08024CAE
- .align 2, 0
-_08024AD4: .4byte gLuminousCaveLackWhatIsNeeded
-_08024AD8:
- ldr r1, [r5]
- movs r0, 0xA
- str r0, [r1, 0x24]
- ldr r0, _08024AE4
- b _08024CAE
- .align 2, 0
-_08024AE4: .4byte gLuminousCaveOnlyOneItem
-_08024AE8:
- bl sub_8025254
- ldr r0, _08024B00
- ldr r1, [r0]
- ldrh r2, [r1, 0x8]
- movs r0, 0x1
- ands r0, r2
- cmp r0, 0
- beq _08024B04
- movs r0, 0x12
- b _08024B3A
- .align 2, 0
-_08024B00: .4byte gUnknown_203B2B0
-_08024B04:
- lsls r0, r2, 16
- lsrs r0, 16
- cmp r0, 0x4
- bne _08024B10
- movs r0, 0x18
- b _08024B3A
-_08024B10:
- cmp r0, 0x2
- bne _08024B18
- movs r0, 0x17
- b _08024B3A
-_08024B18:
- cmp r0, 0x10
- bne _08024B20
- movs r0, 0x1B
- b _08024B3A
-_08024B20:
- cmp r0, 0x20
- bne _08024B28
- movs r0, 0x19
- b _08024B3A
-_08024B28:
- cmp r0, 0x40
- bne _08024B30
- movs r0, 0x1A
- b _08024B3A
-_08024B30:
- cmp r0, 0x8
- bne _08024B38
- movs r0, 0x1C
- b _08024B3A
-_08024B38:
- movs r0, 0x1D
-_08024B3A:
- str r0, [r1, 0x24]
- movs r0, 0x3C
- bl xxx_call_fade_out_bgm
- ldr r0, _08024B48
- b _08024CAE
- .align 2, 0
-_08024B48: .4byte gLuminousCaveLetUsBegin
-_08024B4C:
- ldr r0, _08024B68
- ldr r1, [r5]
- ldr r1, [r1, 0xC]
- movs r2, 0x5
- bl sub_808D9AC
- ldr r0, _08024B6C
- bl PlaySound
- ldr r1, [r5]
- movs r0, 0x13
- str r0, [r1, 0x24]
- ldr r0, _08024B70
- b _08024CAE
- .align 2, 0
-_08024B68: .4byte gPlayerName
-_08024B6C: .4byte 0x000001ff
-_08024B70: .4byte gLuminousCaveChangedAppearance
-_08024B74:
- ldr r0, [r5]
- ldr r0, [r0, 0xC]
- movs r1, 0x8
- ldrsh r0, [r0, r1]
- bl GetMonSpecies
- adds r1, r0, 0
- ldr r4, _08024C10
- adds r0, r4, 0
- bl strcpy
- ldr r0, [r5]
- movs r2, 0xA
- ldrsh r0, [r0, r2]
- bl GetMonSpecies
- adds r1, r0, 0
- adds r4, 0x50
- adds r0, r4, 0
- bl strcpy
- ldr r1, [r5]
- movs r0, 0x1
- strb r0, [r1]
- bl sub_80977D0
- ldr r1, [r5]
- ldr r0, [r1, 0xC]
- movs r2, 0xA
- ldrsh r1, [r1, r2]
- bl sub_808F734
- bl nullsub_104
- bl sub_808D33C
- ldr r1, [r5]
- str r0, [r1, 0xC]
- ldr r0, [r1, 0x14]
- cmp r0, 0x14
- beq _08024BCA
- bl ClearItemSlotAt
-_08024BCA:
- ldr r0, [r5]
- ldr r0, [r0, 0x18]
- cmp r0, 0x14
- beq _08024BD6
- bl ClearItemSlotAt
-_08024BD6:
- bl FillInventoryGaps
- ldr r0, _08024C14
- bl sub_801199C
- movs r0, 0xD2
- bl PlaySound
- ldr r1, [r5]
- ldrb r0, [r1, 0x10]
- cmp r0, 0
- beq _08024C06
- ldr r0, [r1, 0xC]
- adds r4, r0, 0
- adds r4, 0x4C
- movs r1, 0x8
- ldrsh r0, [r0, r1]
- bl GetMonSpecies
- adds r1, r0, 0
- adds r0, r4, 0
- movs r2, 0xA
- bl BoundedCopyStringtoBuffer
-_08024C06:
- ldr r1, [r5]
- movs r0, 0x3
- str r0, [r1, 0x24]
- ldr r0, _08024C18
- b _08024CAE
- .align 2, 0
-_08024C10: .4byte gAvailablePokemonNames
-_08024C14: .4byte 0x000001ff
-_08024C18: .4byte gLuminousCaveEvolved
-_08024C1C:
- ldr r1, [r5]
- movs r0, 0x3
- str r0, [r1, 0x24]
- ldr r0, _08024C28
- b _08024CAE
- .align 2, 0
-_08024C28: .4byte gLuminousCaveComeAlone
-_08024C2C:
- ldr r1, [r5]
- movs r0, 0x3
- str r0, [r1, 0x24]
- ldr r0, _08024C38
- b _08024CAE
- .align 2, 0
-_08024C38: .4byte gLuminousCaveLackLevel
-_08024C3C:
- ldr r1, [r5]
- movs r0, 0x3
- str r0, [r1, 0x24]
- ldr r0, _08024C48
- b _08024CAE
- .align 2, 0
-_08024C48: .4byte gLuminousCaveCantEvolveAnymore
-_08024C4C:
- ldr r1, [r5]
- movs r0, 0x3
- str r0, [r1, 0x24]
- ldr r0, _08024C58
- b _08024CAE
- .align 2, 0
-_08024C58: .4byte gLuminousCaveLackFriendArea
-_08024C5C:
- ldr r1, [r5]
- movs r0, 0x3
- str r0, [r1, 0x24]
- ldr r0, _08024C68
- b _08024CAE
- .align 2, 0
-_08024C68: .4byte gLuminousCaveLackRoom
-_08024C6C:
- ldr r1, [r5]
- movs r0, 0x3
- str r0, [r1, 0x24]
- ldr r0, _08024C78
- b _08024CAE
- .align 2, 0
-_08024C78: .4byte gLuminousCaveLackIQ
-_08024C7C:
- ldr r1, [r5]
- movs r0, 0x3
- str r0, [r1, 0x24]
- ldr r0, _08024C88
- b _08024CAE
- .align 2, 0
-_08024C88: .4byte gLuminousCaveLackItem
-_08024C8C:
- ldr r1, [r5]
- movs r0, 0x3
- str r0, [r1, 0x24]
- ldr r0, _08024C98
- b _08024CAE
- .align 2, 0
-_08024C98: .4byte gLuminousCaveCantEvolveYet
-_08024C9C:
- movs r0, 0x8
- movs r1, 0x3C
- bl xxx_call_fade_in_new_bgm
- ldr r0, _08024CBC
- ldr r1, [r0]
- movs r0, 0x15
- str r0, [r1, 0x24]
- ldr r0, _08024CC0
-_08024CAE:
- ldr r3, _08024CC4
-_08024CB0:
- movs r1, 0
- movs r2, 0
- bl sub_80141B4
- b _08024CF4
- .align 2, 0
-_08024CBC: .4byte gUnknown_203B2B0
-_08024CC0: .4byte gLuminousCaveGiveName
-_08024CC4: .4byte 0x00000105
-_08024CC8:
- ldr r1, [r5]
- ldrb r0, [r1, 0x10]
- cmp r0, 0
- beq _08024CE8
- ldr r0, [r1, 0xC]
- adds r4, r0, 0
- adds r4, 0x4C
- movs r2, 0x8
- ldrsh r0, [r0, r2]
- bl GetMonSpecies
- adds r1, r0, 0
- adds r0, r4, 0
- movs r2, 0xA
- bl BoundedCopyStringtoBuffer
-_08024CE8:
- ldr r0, [r5]
- ldr r1, [r0, 0xC]
- adds r1, 0x4C
- movs r0, 0
- bl sub_801602C
-_08024CF4:
- add sp, 0x14
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_80248FC
-
- thumb_func_start sub_8024CFC
-sub_8024CFC:
- push {r4,lr}
- ldr r4, _08024D38
- ldr r0, [r4]
- adds r0, 0x74
- movs r1, 0
- movs r2, 0x10
- bl MemoryFill16
- ldr r1, [r4]
- movs r3, 0
- ldr r0, _08024D3C
- str r0, [r1, 0x34]
- movs r0, 0x3
- str r0, [r1, 0x38]
- movs r2, 0x1
- ldr r0, _08024D40
- ldr r0, [r0]
- str r0, [r1, 0x3C]
- movs r0, 0x2
- str r0, [r1, 0x40]
- ldr r0, _08024D44
- ldr r0, [r0]
- str r0, [r1, 0x44]
- str r2, [r1, 0x48]
- str r3, [r1, 0x4C]
- str r2, [r1, 0x50]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08024D38: .4byte gUnknown_203B2B0
-_08024D3C: .4byte gUnknown_80DCA18
-_08024D40: .4byte gUnknown_80D4970
-_08024D44: .4byte gUnknown_80D4934
- thumb_func_end sub_8024CFC
-
- thumb_func_start sub_8024D48
-sub_8024D48:
- push {r4-r7,lr}
- ldr r4, _08024DAC
- ldr r0, [r4]
- adds r0, 0x74
- movs r1, 0
- movs r2, 0x10
- bl MemoryFill16
- ldr r3, [r4]
- movs r2, 0
- ldr r0, _08024DB0
- str r0, [r3, 0x34]
- movs r0, 0x4
- str r0, [r3, 0x38]
- movs r1, 0x1
- ldr r0, _08024DB4
- str r0, [r3, 0x3C]
- movs r0, 0x5
- str r0, [r3, 0x40]
- ldr r0, _08024DB8
- ldr r0, [r0]
- str r0, [r3, 0x44]
- str r1, [r3, 0x48]
- movs r6, 0x3
- str r2, [r3, 0x4C]
- str r1, [r3, 0x50]
- movs r5, 0
- mov r12, r3
- adds r3, 0x38
- mov r2, r12
- adds r2, 0x74
-_08024D86:
- ldrh r0, [r2]
- cmp r0, 0
- bne _08024D96
- ldr r1, [r3]
- mov r7, r12
- ldr r0, [r7, 0x2C]
- cmp r1, r0
- beq _08024DA6
-_08024D96:
- adds r3, 0x8
- adds r2, 0x2
- adds r5, 0x1
- cmp r5, r6
- blt _08024D86
- ldr r1, [r4]
- movs r0, 0x4
- str r0, [r1, 0x2C]
-_08024DA6:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08024DAC: .4byte gUnknown_203B2B0
-_08024DB0: .4byte gUnknown_80DCA24
-_08024DB4: .4byte gUnknown_80DCA2C
-_08024DB8: .4byte gUnknown_80D4934
- thumb_func_end sub_8024D48
-
- thumb_func_start sub_8024DBC
-sub_8024DBC:
- push {r4-r7,lr}
- ldr r4, _08024E20
- ldr r0, [r4]
- adds r0, 0x74
- movs r1, 0
- movs r2, 0x10
- bl MemoryFill16
- ldr r3, [r4]
- movs r2, 0
- ldr r0, _08024E24
- str r0, [r3, 0x34]
- movs r0, 0x4
- str r0, [r3, 0x38]
- movs r1, 0x1
- ldr r0, _08024E28
- str r0, [r3, 0x3C]
- movs r0, 0x5
- str r0, [r3, 0x40]
- ldr r0, _08024E2C
- ldr r0, [r0]
- str r0, [r3, 0x44]
- str r1, [r3, 0x48]
- movs r6, 0x3
- str r2, [r3, 0x4C]
- str r1, [r3, 0x50]
- movs r5, 0
- mov r12, r3
- adds r3, 0x38
- mov r2, r12
- adds r2, 0x74
-_08024DFA:
- ldrh r0, [r2]
- cmp r0, 0
- bne _08024E0A
- ldr r1, [r3]
- mov r7, r12
- ldr r0, [r7, 0x2C]
- cmp r1, r0
- beq _08024E1A
-_08024E0A:
- adds r3, 0x8
- adds r2, 0x2
- adds r5, 0x1
- cmp r5, r6
- blt _08024DFA
- ldr r1, [r4]
- movs r0, 0x4
- str r0, [r1, 0x2C]
-_08024E1A:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08024E20: .4byte gUnknown_203B2B0
-_08024E24: .4byte gUnknown_80DCA24
-_08024E28: .4byte gUnknown_80DCA2C
-_08024E2C: .4byte gUnknown_80D4934
- thumb_func_end sub_8024DBC
-
- thumb_func_start sub_8024E30
-sub_8024E30:
- push {r4-r7,lr}
- ldr r4, _08024E90
- ldr r0, [r4]
- adds r0, 0x74
- movs r1, 0
- movs r2, 0x10
- bl MemoryFill16
- ldr r3, [r4]
- movs r2, 0
- ldr r0, _08024E94
- str r0, [r3, 0x34]
- movs r0, 0x5
- str r0, [r3, 0x38]
- movs r1, 0x1
- ldr r0, _08024E98
- ldr r0, [r0]
- str r0, [r3, 0x3C]
- movs r0, 0x2
- str r0, [r3, 0x40]
- movs r6, 0x2
- str r2, [r3, 0x44]
- str r1, [r3, 0x48]
- movs r5, 0
- mov r12, r3
- adds r3, 0x38
- mov r2, r12
- adds r2, 0x74
-_08024E68:
- ldrh r0, [r2]
- cmp r0, 0
- bne _08024E78
- ldr r1, [r3]
- mov r7, r12
- ldr r0, [r7, 0x30]
- cmp r1, r0
- beq _08024E88
-_08024E78:
- adds r3, 0x8
- adds r2, 0x2
- adds r5, 0x1
- cmp r5, r6
- blt _08024E68
- ldr r1, [r4]
- movs r0, 0x5
- str r0, [r1, 0x30]
-_08024E88:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08024E90: .4byte gUnknown_203B2B0
-_08024E94: .4byte gUnknown_80DCA2C
-_08024E98: .4byte gUnknown_80D4970
- thumb_func_end sub_8024E30
-
- thumb_func_start sub_8024E9C
-sub_8024E9C:
- push {lr}
- sub sp, 0x4
- mov r0, sp
- bl sub_80144A4
- cmp r0, 0
- bne _08024EF8
- ldr r1, [sp]
- cmp r1, 0x1
- beq _08024EB6
- ldr r0, _08024EC8
- ldr r0, [r0]
- str r1, [r0, 0x28]
-_08024EB6:
- ldr r0, [sp]
- cmp r0, 0x2
- beq _08024EEA
- cmp r0, 0x2
- bgt _08024ECC
- cmp r0, 0x1
- beq _08024EF2
- b _08024EF8
- .align 2, 0
-_08024EC8: .4byte gUnknown_203B2B0
-_08024ECC:
- cmp r0, 0x3
- bne _08024EF8
- bl sub_80252B8
- lsls r0, 24
- cmp r0, 0
- beq _08024EE2
- movs r0, 0x5
- bl sub_80247EC
- b _08024EF8
-_08024EE2:
- movs r0, 0x16
- bl sub_80247EC
- b _08024EF8
-_08024EEA:
- movs r0, 0x2
- bl sub_80247EC
- b _08024EF8
-_08024EF2:
- movs r0, 0x3
- bl sub_80247EC
-_08024EF8:
- add sp, 0x4
- pop {r0}
- bx r0
- thumb_func_end sub_8024E9C
-
- thumb_func_start sub_8024F00
-sub_8024F00:
- push {lr}
- sub sp, 0x4
- mov r0, sp
- bl sub_80144A4
- cmp r0, 0
- bne _08024F6A
- ldr r1, [sp]
- cmp r1, 0x1
- beq _08024F1A
- ldr r0, _08024F2C
- ldr r0, [r0]
- str r1, [r0, 0x2C]
-_08024F1A:
- ldr r0, [sp]
- cmp r0, 0x4
- beq _08024F36
- cmp r0, 0x4
- bgt _08024F30
- cmp r0, 0x1
- beq _08024F64
- b _08024F6A
- .align 2, 0
-_08024F2C: .4byte gUnknown_203B2B0
-_08024F30:
- cmp r0, 0x5
- beq _08024F4C
- b _08024F6A
-_08024F36:
- ldr r0, _08024F48
- ldr r1, [r0]
- movs r0, 0x14
- str r0, [r1, 0x14]
- str r0, [r1, 0x18]
- movs r0, 0x11
- bl sub_80247EC
- b _08024F6A
- .align 2, 0
-_08024F48: .4byte gUnknown_203B2B0
-_08024F4C:
- bl GetNumberOfFilledInventorySlots
- cmp r0, 0
- bne _08024F5C
- movs r0, 0xF
- bl sub_80247EC
- b _08024F6A
-_08024F5C:
- movs r0, 0x6
- bl sub_80247EC
- b _08024F6A
-_08024F64:
- movs r0, 0x1
- bl sub_80247EC
-_08024F6A:
- add sp, 0x4
- pop {r0}
- bx r0
- thumb_func_end sub_8024F00
-
- thumb_func_start sub_8024F70
-sub_8024F70:
- push {lr}
- sub sp, 0x4
- mov r0, sp
- bl sub_80144A4
- cmp r0, 0
- bne _08024FCC
- ldr r1, [sp]
- cmp r1, 0x1
- beq _08024F8A
- ldr r0, _08024F9C
- ldr r0, [r0]
- str r1, [r0, 0x2C]
-_08024F8A:
- ldr r0, [sp]
- cmp r0, 0x4
- beq _08024FA6
- cmp r0, 0x4
- bgt _08024FA0
- cmp r0, 0x1
- beq _08024FC6
- b _08024FCC
- .align 2, 0
-_08024F9C: .4byte gUnknown_203B2B0
-_08024FA0:
- cmp r0, 0x5
- beq _08024FAE
- b _08024FCC
-_08024FA6:
- movs r0, 0x11
- bl sub_80247EC
- b _08024FCC
-_08024FAE:
- bl GetNumberOfFilledInventorySlots
- cmp r0, 0x1
- bgt _08024FBE
- movs r0, 0x10
- bl sub_80247EC
- b _08024FCC
-_08024FBE:
- movs r0, 0xB
- bl sub_80247EC
- b _08024FCC
-_08024FC6:
- movs r0, 0x1
- bl sub_80247EC
-_08024FCC:
- add sp, 0x4
- pop {r0}
- bx r0
- thumb_func_end sub_8024F70
-
- thumb_func_start sub_8024FD4
-sub_8024FD4:
- push {lr}
- movs r0, 0x1
- bl sub_801A6E8
- cmp r0, 0x3
- beq _08024FF0
- cmp r0, 0x3
- bhi _08024FEA
- cmp r0, 0x2
- beq _08025048
- b _08025052
-_08024FEA:
- cmp r0, 0x4
- beq _0802501C
- b _08025052
-_08024FF0:
- bl sub_801A8AC
- ldr r1, _08025014
- ldr r2, [r1]
- str r0, [r2, 0x14]
- movs r1, 0x14
- str r1, [r2, 0x18]
- ldr r1, _08025018
- ldr r1, [r1]
- lsls r0, 2
- adds r1, r0
- ldr r0, [r1]
- str r0, [r2, 0x1C]
- movs r0, 0x8
- bl sub_80247EC
- b _08025052
- .align 2, 0
-_08025014: .4byte gUnknown_203B2B0
-_08025018: .4byte gTeamInventory_203B460
-_0802501C:
- bl sub_801A8AC
- ldr r1, _08025040
- ldr r2, [r1]
- ldr r1, _08025044
- ldr r1, [r1]
- lsls r0, 2
- adds r1, r0
- ldr r0, [r1]
- str r0, [r2, 0x1C]
- movs r0, 0
- bl sub_8099690
- movs r0, 0x9
- bl sub_80247EC
- b _08025052
- .align 2, 0
-_08025040: .4byte gUnknown_203B2B0
-_08025044: .4byte gTeamInventory_203B460
-_08025048:
- bl sub_801A928
- movs r0, 0x5
- bl sub_80247EC
-_08025052:
- pop {r0}
- bx r0
- thumb_func_end sub_8024FD4
-
- thumb_func_start sub_8025058
-sub_8025058:
- push {r4,r5,lr}
- movs r0, 0x1
- bl sub_801A6E8
- cmp r0, 0x3
- beq _08025074
- cmp r0, 0x3
- bhi _0802506E
- cmp r0, 0x2
- beq _080250DC
- b _080250E6
-_0802506E:
- cmp r0, 0x4
- beq _080250B0
- b _080250E6
-_08025074:
- ldr r5, _080250A0
- ldr r4, [r5]
- bl sub_801A8AC
- ldr r1, [r4, 0x14]
- cmp r1, r0
- beq _080250A8
- bl sub_801A8AC
- ldr r2, [r5]
- str r0, [r2, 0x18]
- ldr r1, _080250A4
- ldr r1, [r1]
- lsls r0, 2
- adds r1, r0
- ldr r0, [r1]
- str r0, [r2, 0x1C]
- movs r0, 0xD
- bl sub_80247EC
- b _080250E6
- .align 2, 0
-_080250A0: .4byte gUnknown_203B2B0
-_080250A4: .4byte gTeamInventory_203B460
-_080250A8:
- movs r0, 0x2
- bl PlayMenuSoundEffect
- b _080250E6
-_080250B0:
- bl sub_801A8AC
- ldr r1, _080250D4
- ldr r2, [r1]
- ldr r1, _080250D8
- ldr r1, [r1]
- lsls r0, 2
- adds r1, r0
- ldr r0, [r1]
- str r0, [r2, 0x1C]
- movs r0, 0
- bl sub_8099690
- movs r0, 0xE
- bl sub_80247EC
- b _080250E6
- .align 2, 0
-_080250D4: .4byte gUnknown_203B2B0
-_080250D8: .4byte gTeamInventory_203B460
-_080250DC:
- bl sub_801A928
- movs r0, 0xA
- bl sub_80247EC
-_080250E6:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_8025058
-
- thumb_func_start sub_80250EC
-sub_80250EC:
- push {r4,lr}
- sub sp, 0x4
- movs r0, 0
- str r0, [sp]
- bl sub_801A6E8
- ldr r4, _0802512C
- ldr r0, [r4]
- adds r0, 0x84
- bl sub_8012FD8
- lsls r0, 24
- cmp r0, 0
- bne _0802511C
- ldr r0, [r4]
- adds r0, 0x84
- mov r1, sp
- bl sub_8013114
- ldr r1, [sp]
- cmp r1, 0x1
- beq _0802511C
- ldr r0, [r4]
- str r1, [r0, 0x30]
-_0802511C:
- ldr r0, [sp]
- cmp r0, 0x2
- beq _08025140
- cmp r0, 0x2
- bgt _08025130
- cmp r0, 0x1
- beq _0802514E
- b _08025154
- .align 2, 0
-_0802512C: .4byte gUnknown_203B2B0
-_08025130:
- cmp r0, 0x5
- bne _08025154
- bl sub_801A928
- movs r0, 0xA
- bl sub_80247EC
- b _08025154
-_08025140:
- movs r0, 0
- bl sub_8099690
- movs r0, 0x9
- bl sub_80247EC
- b _08025154
-_0802514E:
- movs r0, 0x7
- bl sub_80247EC
-_08025154:
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80250EC
-
- thumb_func_start sub_802515C
-sub_802515C:
- push {r4,lr}
- sub sp, 0x4
- movs r0, 0
- str r0, [sp]
- bl sub_801A6E8
- ldr r4, _0802519C
- ldr r0, [r4]
- adds r0, 0x84
- bl sub_8012FD8
- lsls r0, 24
- cmp r0, 0
- bne _0802518C
- ldr r0, [r4]
- adds r0, 0x84
- mov r1, sp
- bl sub_8013114
- ldr r1, [sp]
- cmp r1, 0x1
- beq _0802518C
- ldr r0, [r4]
- str r1, [r0, 0x30]
-_0802518C:
- ldr r0, [sp]
- cmp r0, 0x2
- beq _080251B0
- cmp r0, 0x2
- bgt _080251A0
- cmp r0, 0x1
- beq _080251BE
- b _080251C4
- .align 2, 0
-_0802519C: .4byte gUnknown_203B2B0
-_080251A0:
- cmp r0, 0x5
- bne _080251C4
- bl sub_801A928
- movs r0, 0x11
- bl sub_80247EC
- b _080251C4
-_080251B0:
- movs r0, 0
- bl sub_8099690
- movs r0, 0xE
- bl sub_80247EC
- b _080251C4
-_080251BE:
- movs r0, 0xC
- bl sub_80247EC
-_080251C4:
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_802515C
-
- thumb_func_start sub_80251CC
-sub_80251CC:
- push {lr}
- bl sub_801B410
- cmp r0, 0x1
- bls _080251E4
- cmp r0, 0x3
- bhi _080251E4
- bl sub_801B450
- movs r0, 0x7
- bl sub_80247EC
-_080251E4:
- pop {r0}
- bx r0
- thumb_func_end sub_80251CC
-
- thumb_func_start sub_80251E8
-sub_80251E8:
- push {lr}
- bl sub_801B410
- cmp r0, 0x1
- bls _08025200
- cmp r0, 0x3
- bhi _08025200
- bl sub_801B450
- movs r0, 0xC
- bl sub_80247EC
-_08025200:
- pop {r0}
- bx r0
- thumb_func_end sub_80251E8
-
- thumb_func_start sub_8025204
-sub_8025204:
- push {r4,lr}
- bl sub_8016080
- cmp r0, 0x3
- bne _08025226
- bl sub_80160D8
- ldr r4, _0802522C
- ldr r0, [r4]
- ldr r0, [r0, 0xC]
- bl IsPokemonRenamed
- ldr r1, [r4]
- strb r0, [r1, 0x10]
- movs r0, 0x3
- bl sub_80247EC
-_08025226:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0802522C: .4byte gUnknown_203B2B0
- thumb_func_end sub_8025204
-
- thumb_func_start sub_8025230
-sub_8025230:
- push {lr}
- sub sp, 0x4
- mov r0, sp
- bl sub_80144A4
- cmp r0, 0
- bne _08025248
- ldr r0, _08025250
- ldr r0, [r0]
- ldr r0, [r0, 0x24]
- bl sub_80247EC
-_08025248:
- add sp, 0x4
- pop {r0}
- bx r0
- .align 2, 0
-_08025250: .4byte gUnknown_203B2B0
- thumb_func_end sub_8025230
-
- thumb_func_start sub_8025254
-sub_8025254:
- push {lr}
- ldr r0, _08025268
- ldr r2, [r0]
- ldr r1, [r2, 0x14]
- adds r3, r0, 0
- cmp r1, 0x14
- bne _0802526C
- movs r0, 0
- b _08025276
- .align 2, 0
-_08025268: .4byte gUnknown_203B2B0
-_0802526C:
- ldr r0, _08025284
- ldr r0, [r0]
- lsls r1, 2
- adds r0, r1
- ldrb r0, [r0, 0x2]
-_08025276:
- strb r0, [r2, 0x4]
- ldr r2, [r3]
- ldr r1, [r2, 0x18]
- cmp r1, 0x14
- bne _08025288
- movs r0, 0
- b _08025292
- .align 2, 0
-_08025284: .4byte gTeamInventory_203B460
-_08025288:
- ldr r0, _080252B0
- ldr r0, [r0]
- lsls r1, 2
- adds r0, r1
- ldrb r0, [r0, 0x2]
-_08025292:
- strb r0, [r2, 0x5]
- movs r0, 0xFF
- bl RandomCapped
- ldr r2, _080252B4
- ldr r1, [r2]
- strb r0, [r1, 0x6]
- ldr r1, [r2]
- ldr r0, [r1, 0xC]
- adds r1, 0x4
- movs r2, 0x1
- bl sub_808F468
- pop {r0}
- bx r0
- .align 2, 0
-_080252B0: .4byte gTeamInventory_203B460
-_080252B4: .4byte gUnknown_203B2B0
- thumb_func_end sub_8025254
-
- thumb_func_start sub_80252B8
-sub_80252B8:
- push {r4,lr}
- ldr r0, _080252E0
- ldr r1, [r0]
- movs r3, 0
- movs r4, 0x1
- ldr r2, _080252E4
-_080252C4:
- ldrh r0, [r1]
- lsrs r0, 1
- ands r0, r4
- cmp r0, 0
- beq _080252D0
- adds r3, 0x1
-_080252D0:
- subs r2, 0x1
- adds r1, 0x58
- cmp r2, 0
- bne _080252C4
- cmp r3, 0x1
- beq _080252E8
- movs r0, 0
- b _080252EA
- .align 2, 0
-_080252E0: .4byte gRecruitedPokemonRef
-_080252E4: .4byte 0x0000019d
-_080252E8:
- movs r0, 0x1
-_080252EA:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_80252B8
-
thumb_func_start sub_80252F0
sub_80252F0:
push {r4-r6,lr}
@@ -15523,7 +2816,7 @@ _080269B4:
muls r1, r0
ldr r0, [r2]
adds r4, r0, r1
- bl sub_808D33C
+ bl GetPlayerPokemonStruct
ldrb r1, [r4, 0x2]
cmp r1, 0
bne _080269DA
@@ -15603,774 +2896,4 @@ _08026A6E:
bx r0
thumb_func_end sub_80268CC
- thumb_func_start sub_8026A78
-sub_8026A78:
- push {lr}
- bl sub_80244E4
- cmp r0, 0x1
- bls _08026A90
- cmp r0, 0x3
- bhi _08026A90
- bl sub_802453C
- movs r0, 0x2
- bl sub_8026074
-_08026A90:
- pop {r0}
- bx r0
- thumb_func_end sub_8026A78
-
- thumb_func_start sub_8026A94
-sub_8026A94:
- push {lr}
- bl sub_801BF48
- cmp r0, 0x1
- bls _08026AAC
- cmp r0, 0x3
- bhi _08026AAC
- bl sub_801BF98
- movs r0, 0x2
- bl sub_8026074
-_08026AAC:
- pop {r0}
- bx r0
- thumb_func_end sub_8026A94
-
- thumb_func_start sub_8026AB0
-sub_8026AB0:
- push {lr}
- sub sp, 0x4
- mov r0, sp
- bl sub_80144A4
- cmp r0, 0
- bne _08026B08
- ldr r0, [sp]
- cmp r0, 0x2
- beq _08026ADA
- cmp r0, 0x2
- bgt _08026ACE
- cmp r0, 0x1
- beq _08026AD2
- b _08026B08
-_08026ACE:
- cmp r0, 0x3
- bne _08026B08
-_08026AD2:
- movs r0, 0x2
- bl sub_8026074
- b _08026B08
-_08026ADA:
- ldr r0, _08026AF0
- ldr r0, [r0]
- ldr r0, [r0, 0x18]
- ldrb r0, [r0, 0x4]
- subs r0, 0x44
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bhi _08026AF4
- movs r0, 0x1
- b _08026AF6
- .align 2, 0
-_08026AF0: .4byte gUnknown_203B2B8
-_08026AF4:
- movs r0, 0
-_08026AF6:
- cmp r0, 0
- beq _08026B02
- movs r0, 0xD
- bl sub_8026074
- b _08026B08
-_08026B02:
- movs r0, 0x8
- bl sub_8026074
-_08026B08:
- add sp, 0x4
- pop {r0}
- bx r0
- thumb_func_end sub_8026AB0
-
- thumb_func_start sub_8026B10
-sub_8026B10:
- push {lr}
- sub sp, 0x4
- mov r0, sp
- bl sub_80144A4
- cmp r0, 0
- bne _08026B40
- ldr r0, [sp]
- cmp r0, 0x2
- beq _08026B3A
- cmp r0, 0x2
- bgt _08026B2E
- cmp r0, 0x1
- beq _08026B32
- b _08026B40
-_08026B2E:
- cmp r0, 0x3
- bne _08026B40
-_08026B32:
- movs r0, 0x2
- bl sub_8026074
- b _08026B40
-_08026B3A:
- movs r0, 0x8
- bl sub_8026074
-_08026B40:
- add sp, 0x4
- pop {r0}
- bx r0
- thumb_func_end sub_8026B10
-
- thumb_func_start sub_8026B48
-sub_8026B48:
- push {lr}
- bl sub_8022860
- cmp r0, 0x1
- bls _08026B60
- cmp r0, 0x3
- bhi _08026B60
- bl sub_8022908
- movs r0, 0x2
- bl sub_8026074
-_08026B60:
- pop {r0}
- bx r0
- thumb_func_end sub_8026B48
-
- thumb_func_start sub_8026B64
-sub_8026B64:
- push {r4,lr}
- movs r0, 0x1
- bl sub_801A6E8
- cmp r0, 0x4
- bhi _08026C0E
- lsls r0, 2
- ldr r1, _08026B7C
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08026B7C: .4byte _08026B80
- .align 2, 0
-_08026B80:
- .4byte _08026C0E
- .4byte _08026C0E
- .4byte _08026C04
- .4byte _08026B94
- .4byte _08026BC8
-_08026B94:
- bl sub_801A8AC
- ldr r4, _08026BC0
- ldr r2, [r4]
- str r0, [r2, 0xC]
- ldr r3, _08026BC4
- ldr r1, [r3]
- lsls r0, 2
- adds r1, r0
- ldrb r0, [r1, 0x2]
- strb r0, [r2, 0x10]
- ldr r2, [r4]
- ldr r1, [r3]
- ldr r0, [r2, 0xC]
- lsls r0, 2
- adds r1, r0
- ldrb r0, [r1, 0x1]
- strb r0, [r2, 0x11]
- movs r0, 0x14
- bl sub_8026074
- b _08026C0E
- .align 2, 0
-_08026BC0: .4byte gUnknown_203B2B8
-_08026BC4: .4byte gTeamInventory_203B460
-_08026BC8:
- bl sub_801A8AC
- ldr r4, _08026BFC
- ldr r2, [r4]
- str r0, [r2, 0xC]
- ldr r3, _08026C00
- ldr r1, [r3]
- lsls r0, 2
- adds r1, r0
- ldrb r0, [r1, 0x2]
- strb r0, [r2, 0x10]
- ldr r2, [r4]
- ldr r1, [r3]
- ldr r0, [r2, 0xC]
- lsls r0, 2
- adds r1, r0
- ldrb r0, [r1, 0x1]
- strb r0, [r2, 0x11]
- movs r0, 0
- bl sub_8099690
- movs r0, 0x15
- bl sub_8026074
- b _08026C0E
- .align 2, 0
-_08026BFC: .4byte gUnknown_203B2B8
-_08026C00: .4byte gTeamInventory_203B460
-_08026C04:
- bl sub_801A928
- movs r0, 0x2
- bl sub_8026074
-_08026C0E:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_8026B64
-
- thumb_func_start sub_8026C14
-sub_8026C14:
- push {r4-r6,lr}
- sub sp, 0x14
- movs r0, 0
- str r0, [sp, 0xC]
- bl sub_801A6E8
- ldr r4, _08026C54
- ldr r0, [r4]
- adds r0, 0xCC
- bl sub_8012FD8
- lsls r0, 24
- cmp r0, 0
- bne _08026C44
- ldr r0, [r4]
- adds r0, 0xCC
- add r1, sp, 0xC
- bl sub_8013114
- ldr r1, [sp, 0xC]
- cmp r1, 0x1
- beq _08026C44
- ldr r0, [r4]
- str r1, [r0, 0x74]
-_08026C44:
- ldr r0, [sp, 0xC]
- cmp r0, 0x4
- beq _08026CD4
- cmp r0, 0x4
- bgt _08026C58
- cmp r0, 0x1
- beq _08026CE2
- b _08026CE8
- .align 2, 0
-_08026C54: .4byte gUnknown_203B2B8
-_08026C58:
- cmp r0, 0xB
- bne _08026CE8
- movs r6, 0xF
- ldr r0, _08026CC8
- bl PlaySound
- ldr r5, _08026CCC
- ldr r0, [r5]
- ldr r0, [r0, 0xC]
- bl ShiftItemsDownFrom
- bl FillInventoryGaps
- ldr r1, [r5]
- ldrb r0, [r1, 0x14]
- cmp r0, 0
- beq _08026C84
- adds r0, r1, 0
- adds r0, 0x14
- bl sub_8091274
- movs r6, 0x10
-_08026C84:
- add r4, sp, 0x10
- ldr r1, [r5]
- adds r1, 0x10
- adds r0, r4, 0
- bl HeldItemToSlot
- movs r1, 0
- str r1, [sp]
- mov r0, sp
- strb r1, [r0, 0x4]
- mov r1, sp
- movs r0, 0x1
- strb r0, [r1, 0x8]
- strb r0, [r4]
- ldr r0, _08026CD0
- adds r1, r4, 0
- mov r2, sp
- bl sub_8090E14
- ldr r1, [r5]
- movs r2, 0xA
- ldrsh r0, [r1, r2]
- adds r1, 0x10
- bl GivePokemonItem
- bl sub_801A928
- bl nullsub_104
- adds r0, r6, 0
- bl sub_8026074
- b _08026CE8
- .align 2, 0
-_08026CC8: .4byte 0x0000014d
-_08026CCC: .4byte gUnknown_203B2B8
-_08026CD0: .4byte gUnknown_202DEA8
-_08026CD4:
- movs r0, 0
- bl sub_8099690
- movs r0, 0x15
- bl sub_8026074
- b _08026CE8
-_08026CE2:
- movs r0, 0x13
- bl sub_8026074
-_08026CE8:
- add sp, 0x14
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_8026C14
-
- thumb_func_start sub_8026CF0
-sub_8026CF0:
- push {lr}
- bl sub_801B410
- cmp r0, 0x1
- bls _08026D08
- cmp r0, 0x3
- bhi _08026D08
- bl sub_801B450
- movs r0, 0x13
- bl sub_8026074
-_08026D08:
- pop {r0}
- bx r0
- thumb_func_end sub_8026CF0
-
- thumb_func_start sub_8026D0C
-sub_8026D0C:
- push {lr}
- movs r0, 0x1
- bl sub_801EF38
- cmp r0, 0x4
- bhi _08026D66
- lsls r0, 2
- ldr r1, _08026D24
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08026D24: .4byte _08026D28
- .align 2, 0
-_08026D28:
- .4byte _08026D66
- .4byte _08026D66
- .4byte _08026D5C
- .4byte _08026D3C
- .4byte _08026D3C
-_08026D3C:
- bl sub_801F194
- ldr r1, _08026D58
- ldr r1, [r1]
- str r0, [r1, 0x20]
- lsls r0, 3
- adds r0, r1, r0
- ldrh r0, [r0, 0x2A]
- strh r0, [r1, 0x24]
- movs r0, 0x18
- bl sub_8026074
- b _08026D66
- .align 2, 0
-_08026D58: .4byte gUnknown_203B2B8
-_08026D5C:
- bl sub_801F214
- movs r0, 0x2
- bl sub_8026074
-_08026D66:
- pop {r0}
- bx r0
- thumb_func_end sub_8026D0C
-
- thumb_func_start sub_8026D6C
-sub_8026D6C:
- push {lr}
- bl sub_801F890
- cmp r0, 0x1
- bls _08026D84
- cmp r0, 0x3
- bhi _08026D84
- bl sub_801F8D0
- movs r0, 0x17
- bl sub_8026074
-_08026D84:
- pop {r0}
- bx r0
- thumb_func_end sub_8026D6C
-
- thumb_func_start sub_8026D88
-sub_8026D88:
- push {lr}
- sub sp, 0x4
- mov r0, sp
- bl sub_80144A4
- cmp r0, 0
- bne _08026DA0
- ldr r0, _08026DA8
- ldr r0, [r0]
- ldr r0, [r0, 0x4]
- bl sub_8026074
-_08026DA0:
- add sp, 0x4
- pop {r0}
- bx r0
- .align 2, 0
-_08026DA8: .4byte gUnknown_203B2B8
- thumb_func_end sub_8026D88
-
- thumb_func_start sub_8026DAC
-sub_8026DAC:
- push {r4-r6,lr}
- sub sp, 0x14
- adds r6, r0, 0
- adds r5, r1, 0
- bl sub_8008C54
- adds r0, r6, 0
- bl sub_80073B8
- add r4, sp, 0x10
- adds r0, r4, 0
- adds r1, r5, 0
- bl HeldItemToSlot
- movs r5, 0
- str r5, [sp, 0x4]
- add r0, sp, 0x4
- strb r5, [r0, 0x4]
- adds r1, r0, 0
- movs r0, 0x1
- strb r0, [r1, 0x8]
- strb r0, [r4]
- ldr r0, _08026E00
- adds r1, r4, 0
- add r2, sp, 0x4
- bl sub_8090E14
- ldr r2, _08026E04
- str r5, [sp]
- movs r0, 0x4
- movs r1, 0x3
- adds r3, r6, 0
- bl xxx_format_and_draw
- adds r0, r6, 0
- bl sub_80073E0
- add sp, 0x14
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08026E00: .4byte gUnknown_202DE58
-_08026E04: .4byte gPartyMenuItemPlaceholder
- thumb_func_end sub_8026DAC
-
- thumb_func_start sub_8026E08
-sub_8026E08:
- push {r4-r6,lr}
- sub sp, 0x40
- adds r5, r0, 0
- bl sub_8008C54
- adds r0, r5, 0
- bl sub_80073B8
- ldr r6, _08026E78
- ldr r4, _08026E7C
- ldr r0, [r4]
- ldr r1, [r0, 0x18]
- adds r1, 0x4C
- adds r0, r6, 0
- movs r2, 0xA
- bl sub_80922B4
- add r0, sp, 0x2C
- ldr r1, [r4]
- ldr r1, [r1, 0x18]
- movs r2, 0x8
- ldrsh r1, [r1, r2]
- bl sub_808D930
- ldr r1, _08026E80
- add r0, sp, 0x4
- adds r2, r6, 0
- bl ExpandPlaceholdersBuffer
- add r0, sp, 0x4
- bl sub_8008ED0
- adds r1, r0, 0
- ldr r0, _08026E84
- movs r2, 0xC
- ldrsh r0, [r0, r2]
- lsls r0, 3
- subs r0, r1
- lsrs r1, r0, 31
- adds r0, r1
- asrs r0, 1
- movs r1, 0
- str r1, [sp]
- movs r1, 0x3
- add r2, sp, 0x4
- adds r3, r5, 0
- bl xxx_call_draw_string
- adds r0, r5, 0
- bl sub_80073E0
- add sp, 0x40
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08026E78: .4byte gAvailablePokemonNames
-_08026E7C: .4byte gUnknown_203B2B8
-_08026E80: .4byte gUnknown_80DD6E0
-_08026E84: .4byte gUnknown_80DD370
- thumb_func_end sub_8026E08
-
- thumb_func_start sub_8026E88
-sub_8026E88:
- push {lr}
- adds r1, r0, 0
- ldrb r0, [r1, 0x2]
- cmp r0, 0
- bne _08026EAC
- movs r2, 0
- ldrb r0, [r1, 0x4]
- cmp r0, 0x41
- bne _08026E9C
- movs r2, 0x1
-_08026E9C:
- cmp r2, 0
- beq _08026EB0
- movs r0, 0x8
- bl sub_80023E4
- lsls r0, 24
- cmp r0, 0
- bne _08026EB0
-_08026EAC:
- movs r0, 0
- b _08026EB2
-_08026EB0:
- movs r0, 0x1
-_08026EB2:
- pop {r1}
- bx r1
- thumb_func_end sub_8026E88
-
- thumb_func_start sub_8026EB8
-sub_8026EB8:
- push {r4,lr}
- adds r4, r0, 0
- bl sub_808D3BC
- cmp r0, r4
- beq _08026EFA
- bl sub_808D3F8
- cmp r0, r4
- beq _08026EFA
- ldrb r0, [r4, 0x2]
- cmp r0, 0
- bne _08026EFA
- movs r1, 0
- ldrb r0, [r4, 0x4]
- cmp r0, 0x41
- bne _08026EDC
- movs r1, 0x1
-_08026EDC:
- cmp r1, 0
- beq _08026EEC
- movs r0, 0x8
- bl sub_80023E4
- lsls r0, 24
- cmp r0, 0
- beq _08026EFA
-_08026EEC:
- adds r0, r4, 0
- bl sub_8026F04
- cmp r0, 0x3
- beq _08026EFA
- movs r0, 0x1
- b _08026EFC
-_08026EFA:
- movs r0, 0
-_08026EFC:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_8026EB8
-
- thumb_func_start sub_8026F04
-sub_8026F04:
- push {r4,lr}
- adds r4, r0, 0
- adds r0, 0x28
- ldrb r0, [r0]
- cmp r0, 0
- bne _08026F14
- movs r0, 0
- b _08026F32
-_08026F14:
- bl GetNumberOfFilledInventorySlots
- cmp r0, 0x13
- bgt _08026F20
- movs r0, 0x1
- b _08026F32
-_08026F20:
- adds r0, r4, 0
- bl sub_8026F38
- lsls r0, 24
- cmp r0, 0
- bne _08026F30
- movs r0, 0x3
- b _08026F32
-_08026F30:
- movs r0, 0x2
-_08026F32:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_8026F04
-
- thumb_func_start sub_8026F38
-sub_8026F38:
- push {r4,r5,lr}
- adds r5, r0, 0
- adds r4, r5, 0
- adds r4, 0x28
- ldrb r0, [r4]
- bl IsNotMoneyOrUsedTMItem
- lsls r0, 24
- cmp r0, 0
- beq _08026F74
- ldrb r0, [r4]
- bl IsThrowableItem
- lsls r0, 24
- cmp r0, 0
- beq _08026F80
- ldr r0, _08026F78
- ldr r1, [r0]
- ldrb r0, [r4]
- lsls r0, 1
- adds r1, 0x50
- adds r1, r0
- ldrh r1, [r1]
- adds r0, r5, 0
- adds r0, 0x29
- ldrb r0, [r0]
- adds r1, r0
- ldr r0, _08026F7C
- cmp r1, r0
- ble _08026F94
-_08026F74:
- movs r0, 0
- b _08026F96
- .align 2, 0
-_08026F78: .4byte gTeamInventory_203B460
-_08026F7C: .4byte 0x000003e7
-_08026F80:
- ldr r0, _08026F9C
- ldr r1, [r0]
- ldrb r0, [r4]
- lsls r0, 1
- adds r1, 0x50
- adds r1, r0
- ldrh r1, [r1]
- ldr r0, _08026FA0
- cmp r1, r0
- bhi _08026F74
-_08026F94:
- movs r0, 0x1
-_08026F96:
- pop {r4,r5}
- pop {r1}
- bx r1
- .align 2, 0
-_08026F9C: .4byte gTeamInventory_203B460
-_08026FA0: .4byte 0x000003e6
- thumb_func_end sub_8026F38
-
- thumb_func_start sub_8026FA4
-sub_8026FA4:
- push {r4,lr}
- ldr r4, _08026FC0
- ldr r0, [r4]
- ldr r0, [r0, 0x18]
- bl sub_8026F04
- cmp r0, 0x1
- beq _08026FC4
- cmp r0, 0x1
- bcc _08027068
- cmp r0, 0x2
- beq _08026FF8
- b _08027068
- .align 2, 0
-_08026FC0: .4byte gUnknown_203B2B8
-_08026FC4:
- ldr r0, _08026FF4
- bl PlaySound
- ldr r0, [r4]
- adds r0, 0x14
- bl sub_8091274
- bl FillInventoryGaps
- ldr r0, [r4]
- movs r1, 0
- strb r1, [r0, 0x14]
- ldr r0, [r4]
- strb r1, [r0, 0x15]
- ldr r1, [r4]
- movs r2, 0xA
- ldrsh r0, [r1, r2]
- adds r1, 0x14
- bl GivePokemonItem
- movs r0, 0xA
- bl sub_8026074
- b _0802706E
- .align 2, 0
-_08026FF4: .4byte 0x0000014d
-_08026FF8:
- ldr r0, _08027024
- bl PlaySound
- ldr r0, [r4]
- ldrb r0, [r0, 0x14]
- bl IsThrowableItem
- lsls r0, 24
- cmp r0, 0
- beq _0802702C
- ldr r0, _08027028
- ldr r1, [r0]
- ldr r2, [r4]
- ldrb r0, [r2, 0x14]
- lsls r0, 1
- adds r1, 0x50
- adds r1, r0
- ldrh r0, [r1]
- ldrb r2, [r2, 0x15]
- adds r0, r2
- b _0802703E
- .align 2, 0
-_08027024: .4byte 0x0000014d
-_08027028: .4byte gTeamInventory_203B460
-_0802702C:
- ldr r0, _08027060
- ldr r1, [r0]
- ldr r0, [r4]
- ldrb r0, [r0, 0x14]
- lsls r0, 1
- adds r1, 0x50
- adds r1, r0
- ldrh r0, [r1]
- adds r0, 0x1
-_0802703E:
- strh r0, [r1]
- ldr r1, _08027064
- ldr r0, [r1]
- movs r2, 0
- strb r2, [r0, 0x14]
- ldr r0, [r1]
- strb r2, [r0, 0x15]
- ldr r1, [r1]
- movs r2, 0xA
- ldrsh r0, [r1, r2]
- adds r1, 0x14
- bl GivePokemonItem
- movs r0, 0xB
- bl sub_8026074
- b _0802706E
- .align 2, 0
-_08027060: .4byte gTeamInventory_203B460
-_08027064: .4byte gUnknown_203B2B8
-_08027068:
- movs r0, 0x19
- bl sub_8026074
-_0802706E:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_8026FA4
-
.align 2,0
diff --git a/asm/friend_rescue.s b/asm/friend_rescue.s
index 26e1e56..ef88261 100644
--- a/asm/friend_rescue.s
+++ b/asm/friend_rescue.s
@@ -1530,7 +1530,7 @@ _080335B8:
.align 2, 0
_080335BC: .4byte gUnknown_80E2D7C
_080335C0:
- bl sub_808D33C
+ bl GetPlayerPokemonStruct
adds r1, r0, 0
adds r1, 0x4C
add r0, sp, 0x14
diff --git a/asm/ground_lives.s b/asm/ground_lives.s
index e1e3655..2c1819b 100644
--- a/asm/ground_lives.s
+++ b/asm/ground_lives.s
@@ -533,7 +533,7 @@ _080A7BDE:
strh r0, [r7]
b _080A7C10
_080A7BE4:
- bl sub_808D33C
+ bl GetPlayerPokemonStruct
adds r6, r0, 0
bl sub_808D3BC
cmp r0, r6
@@ -601,7 +601,7 @@ _080A7C5A:
beq _080A7C60
b _080A7DA6
_080A7C60:
- bl sub_808D33C
+ bl GetPlayerPokemonStruct
adds r4, r0, 0
bl sub_808D3BC
cmp r0, r4
@@ -636,7 +636,7 @@ _080A7C94:
b _080A7CCA
_080A7C9A:
movs r6, 0x2
- bl sub_808D33C
+ bl GetPlayerPokemonStruct
adds r4, r0, 0
bl sub_808D3BC
cmp r4, r0
@@ -647,7 +647,7 @@ _080A7CAC:
b _080A7DD2
_080A7CB0:
movs r6, 0x1
- bl sub_808D33C
+ bl GetPlayerPokemonStruct
adds r4, r0, 0
bl sub_808D3F8
cmp r4, r0
@@ -779,7 +779,7 @@ _080A7DAC:
_080A7DB0:
cmp r2, 0x23
bne _080A7DD2
- bl sub_808D33C
+ bl GetPlayerPokemonStruct
adds r4, r0, 0
bl sub_808D3BC
cmp r0, r4
@@ -1046,7 +1046,7 @@ _080A7FEC:
ldrh r0, [r0, 0x8]
b _080A8094
_080A7FF4:
- bl sub_808D33C
+ bl GetPlayerPokemonStruct
ldrh r0, [r0, 0x8]
b _080A8094
_080A7FFC:
@@ -2893,7 +2893,7 @@ _080A8D8E:
cmp r0, 0x23
bne _080A8DA0
_080A8D9A:
- bl sub_808D33C
+ bl GetPlayerPokemonStruct
b _080A8E94
_080A8DA0:
adds r0, r1, 0
diff --git a/asm/ground_script.s b/asm/ground_script.s
index 36e2999..0bc3285 100644
--- a/asm/ground_script.s
+++ b/asm/ground_script.s
@@ -7814,7 +7814,7 @@ _080A1B18:
bl HasRecruitedMon
b _080A171E
_080A1B20:
- bl sub_808D33C
+ bl GetPlayerPokemonStruct
ldrh r0, [r0, 0x8]
subs r0, 0x90
lsls r0, 16
@@ -7825,7 +7825,7 @@ _080A1B20:
_080A1B32:
bl _080A236A
_080A1B36:
- bl sub_808D33C
+ bl GetPlayerPokemonStruct
cmp r0, 0
beq _080A1B4A
movs r5, 0x8
@@ -8420,7 +8420,7 @@ _080A2024:
bge _080A1FE0
b _080A236A
_080A202C:
- bl sub_808D33C
+ bl GetPlayerPokemonStruct
cmp r0, 0
beq _080A2040
movs r4, 0x8
diff --git a/asm/kecleon_items_1.s b/asm/kecleon_items_1.s
new file mode 100644
index 0000000..1b20264
--- /dev/null
+++ b/asm/kecleon_items_1.s
@@ -0,0 +1,730 @@
+ .include "constants/gba_constants.inc"
+ .include "asm/macros.inc"
+
+ .syntax unified
+
+ .text
+
+ thumb_func_start sub_801A9E0
+sub_801A9E0:
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ sub sp, 0xCC
+ ldr r4, _0801AA2C
+ ldr r0, [r4]
+ adds r0, 0x88
+ ldr r0, [r0]
+ bl sub_8008C54
+ ldr r0, [r4]
+ adds r0, 0x88
+ ldr r0, [r0]
+ bl sub_80073B8
+ ldr r4, [r4]
+ adds r1, r4, 0
+ adds r1, 0x72
+ movs r2, 0
+ ldrsh r0, [r1, r2]
+ lsls r0, 3
+ adds r5, r0, 0
+ adds r5, 0xA
+ movs r3, 0
+ ldrsh r1, [r1, r3]
+ cmp r1, 0
+ bne _0801AA34
+ ldr r2, _0801AA30
+ adds r0, r4, 0
+ adds r0, 0x88
+ ldr r3, [r0]
+ str r1, [sp]
+ adds r0, r5, 0
+ movs r1, 0
+ bl xxx_call_draw_string
+ b _0801AA48
+ .align 2, 0
+_0801AA2C: .4byte gUnknown_203B224
+_0801AA30: .4byte gTeamToolboxA
+_0801AA34:
+ ldr r2, _0801AA58
+ adds r0, r4, 0
+ adds r0, 0x88
+ ldr r3, [r0]
+ movs r0, 0
+ str r0, [sp]
+ adds r0, r5, 0
+ movs r1, 0
+ bl xxx_call_draw_string
+_0801AA48:
+ movs r7, 0
+ ldr r1, _0801AA5C
+ ldr r0, [r1]
+ adds r0, 0x6E
+ movs r4, 0
+ ldrsh r0, [r0, r4]
+ b _0801AD0A
+ .align 2, 0
+_0801AA58: .4byte gTeamToolboxB
+_0801AA5C: .4byte gUnknown_203B224
+_0801AA60:
+ ldr r2, [r1]
+ adds r0, r2, 0
+ adds r0, 0x72
+ movs r3, 0
+ ldrsh r1, [r0, r3]
+ subs r0, 0x2
+ movs r4, 0
+ ldrsh r0, [r0, r4]
+ muls r0, r1
+ adds r0, r7
+ mov r8, r0
+ ldr r0, _0801AA9C
+ ldr r0, [r0]
+ mov r3, r8
+ lsls r1, r3, 2
+ adds r0, r1
+ ldr r0, [r0]
+ add r1, sp, 0xC8
+ str r0, [r1]
+ ldr r0, [r2]
+ adds r4, r1, 0
+ cmp r0, 0x5
+ bls _0801AA90
+ b _0801ACC4
+_0801AA90:
+ lsls r0, 2
+ ldr r1, _0801AAA0
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_0801AA9C: .4byte gTeamInventory_203B460
+_0801AAA0: .4byte _0801AAA4
+ .align 2, 0
+_0801AAA4:
+ .4byte _0801AABC
+ .4byte _0801AAE4
+ .4byte _0801AAE4
+ .4byte _0801AB18
+ .4byte _0801AB90
+ .4byte _0801AC50
+_0801AABC:
+ add r0, sp, 0x4
+ adds r1, r4, 0
+ movs r2, 0
+ bl sub_8090E14
+ ldr r4, _0801AAE0
+ ldr r0, [r4]
+ adds r0, 0x54
+ adds r1, r7, 0
+ bl sub_8013800
+ adds r1, r0, 0
+ ldr r0, [r4]
+ adds r0, 0x88
+ ldr r3, [r0]
+ movs r0, 0
+ str r0, [sp]
+ b _0801AC8C
+ .align 2, 0
+_0801AAE0: .4byte gUnknown_203B224
+_0801AAE4:
+ add r2, sp, 0x54
+ movs r5, 0
+ str r5, [sp, 0x54]
+ strb r5, [r2, 0x4]
+ movs r0, 0x1
+ strb r0, [r2, 0x8]
+ strb r0, [r4]
+ add r1, sp, 0xC8
+ add r0, sp, 0x4
+ bl sub_8090E14
+ ldr r4, _0801AB14
+ ldr r0, [r4]
+ adds r0, 0x54
+ adds r1, r7, 0
+ bl sub_8013800
+ adds r1, r0, 0
+ ldr r0, [r4]
+ adds r0, 0x88
+ ldr r3, [r0]
+ str r5, [sp]
+ b _0801AC8C
+ .align 2, 0
+_0801AB14: .4byte gUnknown_203B224
+_0801AB18:
+ add r2, sp, 0x60
+ movs r6, 0
+ str r6, [sp, 0x60]
+ strb r6, [r2, 0x4]
+ movs r0, 0x1
+ strb r0, [r2, 0x8]
+ strb r0, [r4]
+ add r1, sp, 0xC8
+ add r0, sp, 0x4
+ bl sub_8090E14
+ ldr r5, _0801AB60
+ ldr r0, [r5]
+ mov r4, r8
+ lsls r1, r4, 2
+ adds r0, 0x4
+ adds r0, r1
+ ldr r0, [r0]
+ cmp r0, 0
+ bne _0801AB4E
+ mov r0, r8
+ bl sub_801ADA0
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0
+ beq _0801AB64
+_0801AB4E:
+ ldr r0, [r5]
+ adds r0, 0x54
+ adds r1, r7, 0
+ bl sub_8013800
+ adds r1, r0, 0
+ ldr r0, [r5]
+ b _0801AC86
+ .align 2, 0
+_0801AB60: .4byte gUnknown_203B224
+_0801AB64:
+ ldr r0, _0801AB88
+ add r1, sp, 0x4
+ movs r2, 0x50
+ bl strncpy
+ ldr r0, [r5]
+ adds r0, 0x54
+ adds r1, r7, 0
+ bl sub_8013800
+ adds r1, r0, 0
+ ldr r2, _0801AB8C
+ ldr r0, [r5]
+ adds r0, 0x88
+ ldr r3, [r0]
+ str r4, [sp]
+ b _0801AC3C
+ .align 2, 0
+_0801AB88: .4byte gUnknown_202DE58
+_0801AB8C: .4byte gUnknown_80DB994
+_0801AB90:
+ ldrb r0, [r4, 0x2]
+ bl CanSellItem
+ lsls r0, 24
+ lsrs r5, r0, 24
+ cmp r5, 0
+ beq _0801AC10
+ add r2, sp, 0x6C
+ movs r1, 0x3
+ str r1, [sp, 0x6C]
+ movs r6, 0
+ strb r6, [r2, 0x4]
+ movs r0, 0x58
+ strh r0, [r2, 0x6]
+ movs r0, 0x1
+ strb r0, [r2, 0x8]
+ strb r1, [r4]
+ add r0, sp, 0x4
+ adds r1, r4, 0
+ bl sub_8090E14
+ adds r0, r4, 0
+ bl GetStackSellPrice
+ ldr r1, _0801AC00
+ ldr r1, [r1]
+ movs r2, 0x98
+ lsls r2, 2
+ adds r1, r2
+ ldr r1, [r1]
+ adds r0, r1
+ ldr r1, _0801AC04
+ cmp r0, r1
+ ble _0801AC76
+ add r5, sp, 0x78
+ ldr r1, _0801AC08
+ adds r0, r5, 0
+ add r2, sp, 0x4
+ bl ExpandPlaceholdersBuffer
+ ldr r4, _0801AC0C
+ ldr r0, [r4]
+ adds r0, 0x54
+ adds r1, r7, 0
+ bl sub_8013800
+ adds r1, r0, 0
+ ldr r0, [r4]
+ adds r0, 0x88
+ ldr r3, [r0]
+ str r6, [sp]
+ movs r0, 0x8
+ adds r2, r5, 0
+ bl xxx_call_draw_string
+ b _0801ACC4
+ .align 2, 0
+_0801AC00: .4byte gTeamInventory_203B460
+_0801AC04: .4byte 0x0001869f
+_0801AC08: .4byte gUnknown_80DB9A0
+_0801AC0C: .4byte gUnknown_203B224
+_0801AC10:
+ add r0, sp, 0x4
+ adds r1, r4, 0
+ movs r2, 0
+ bl sub_8090E14
+ ldr r0, _0801AC44
+ add r1, sp, 0x4
+ movs r2, 0x50
+ bl strncpy
+ ldr r4, _0801AC48
+ ldr r0, [r4]
+ adds r0, 0x54
+ adds r1, r7, 0
+ bl sub_8013800
+ adds r1, r0, 0
+ ldr r2, _0801AC4C
+ ldr r0, [r4]
+ adds r0, 0x88
+ ldr r3, [r0]
+ str r5, [sp]
+_0801AC3C:
+ movs r0, 0x8
+ bl xxx_format_and_draw
+ b _0801ACC4
+ .align 2, 0
+_0801AC44: .4byte gUnknown_202DE58
+_0801AC48: .4byte gUnknown_203B224
+_0801AC4C: .4byte gUnknown_80DB994
+_0801AC50:
+ add r2, sp, 0x78
+ movs r6, 0
+ str r6, [sp, 0x78]
+ strb r6, [r2, 0x4]
+ movs r0, 0x1
+ strb r0, [r2, 0x8]
+ strb r0, [r4]
+ add r4, sp, 0xC8
+ add r0, sp, 0x4
+ adds r1, r4, 0
+ bl sub_8090E14
+ ldrb r0, [r4, 0x2]
+ bl IsGummiItem
+ lsls r0, 24
+ lsrs r5, r0, 24
+ cmp r5, 0
+ beq _0801AC9C
+_0801AC76:
+ ldr r4, _0801AC98
+ ldr r0, [r4]
+ adds r0, 0x54
+ adds r1, r7, 0
+ bl sub_8013800
+ adds r1, r0, 0
+ ldr r0, [r4]
+_0801AC86:
+ adds r0, 0x88
+ ldr r3, [r0]
+ str r6, [sp]
+_0801AC8C:
+ movs r0, 0x8
+ add r2, sp, 0x4
+ bl xxx_call_draw_string
+ b _0801ACC4
+ .align 2, 0
+_0801AC98: .4byte gUnknown_203B224
+_0801AC9C:
+ ldr r0, _0801AD28
+ add r1, sp, 0x4
+ movs r2, 0x50
+ bl strncpy
+ ldr r4, _0801AD2C
+ ldr r0, [r4]
+ adds r0, 0x54
+ adds r1, r7, 0
+ bl sub_8013800
+ adds r1, r0, 0
+ ldr r2, _0801AD30
+ ldr r0, [r4]
+ adds r0, 0x88
+ ldr r3, [r0]
+ str r5, [sp]
+ movs r0, 0x8
+ bl xxx_format_and_draw
+_0801ACC4:
+ mov r0, r8
+ bl sub_801AED0
+ movs r1, 0x1
+ ands r1, r0
+ cmp r1, 0
+ beq _0801ACFE
+ ldr r4, _0801AD2C
+ ldr r0, [r4]
+ adds r0, 0x54
+ adds r1, r7, 0
+ bl sub_8013800
+ adds r2, r0, 0
+ ldr r1, [r4]
+ adds r0, r1, 0
+ adds r0, 0x88
+ ldr r0, [r0]
+ adds r1, 0x8C
+ ldr r1, [r1]
+ movs r4, 0xC
+ ldrsh r3, [r1, r4]
+ subs r3, 0x2
+ lsls r3, 3
+ movs r1, 0xA
+ str r1, [sp]
+ movs r1, 0x8
+ bl sub_8007B7C
+_0801ACFE:
+ adds r7, 0x1
+ ldr r1, _0801AD2C
+ ldr r0, [r1]
+ adds r0, 0x6E
+ movs r2, 0
+ ldrsh r0, [r0, r2]
+_0801AD0A:
+ adds r2, r1, 0
+ cmp r7, r0
+ bge _0801AD12
+ b _0801AA60
+_0801AD12:
+ ldr r0, [r2]
+ adds r0, 0x88
+ ldr r0, [r0]
+ bl sub_80073E0
+ add sp, 0xCC
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0801AD28: .4byte gUnknown_202DE58
+_0801AD2C: .4byte gUnknown_203B224
+_0801AD30: .4byte gUnknown_80DB994
+ thumb_func_end sub_801A9E0
+
+ thumb_func_start sub_801AD34
+sub_801AD34:
+ push {r4-r6,lr}
+ sub sp, 0x8
+ adds r4, r0, 0
+ bl sub_8008C54
+ adds r0, r4, 0
+ bl sub_80073B8
+ ldr r2, _0801AD98
+ movs r6, 0
+ str r6, [sp]
+ movs r0, 0x6
+ movs r1, 0
+ adds r3, r4, 0
+ bl xxx_call_draw_string
+ bl GetNumberOfFilledInventorySlots
+ adds r2, r0, 0
+ movs r5, 0x7
+ str r5, [sp]
+ str r4, [sp, 0x4]
+ movs r0, 0x12
+ movs r1, 0xD
+ movs r3, 0x2
+ bl sub_8012BC4
+ ldr r2, _0801AD9C
+ str r6, [sp]
+ movs r0, 0x16
+ movs r1, 0xD
+ adds r3, r4, 0
+ bl xxx_call_draw_string
+ str r5, [sp]
+ str r4, [sp, 0x4]
+ movs r0, 0x2B
+ movs r1, 0xD
+ movs r2, 0x14
+ movs r3, 0x2
+ bl sub_8012BC4
+ adds r0, r4, 0
+ bl sub_80073E0
+ add sp, 0x8
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0801AD98: .4byte gUnknown_80DB9A8
+_0801AD9C: .4byte gUnknown_80DB9B0
+ thumb_func_end sub_801AD34
+
+ thumb_func_start sub_801ADA0
+sub_801ADA0:
+ push {r4-r6,lr}
+ ldr r5, _0801ADEC
+ ldr r1, [r5]
+ lsls r0, 2
+ adds r1, r0
+ ldr r6, [r1]
+ lsls r4, r6, 8
+ lsrs r0, r4, 24
+ bl IsNotMoneyOrUsedTMItem
+ lsls r0, 24
+ cmp r0, 0
+ beq _0801AE12
+ lsrs r0, r4, 24
+ bl IsThrowableItem
+ lsls r0, 24
+ cmp r0, 0
+ beq _0801ADF4
+ lsrs r0, r4, 24
+ bl sub_801AE24
+ ldr r2, [r5]
+ lsrs r1, r4, 24
+ lsls r1, 1
+ adds r2, 0x50
+ adds r2, r1
+ lsls r0, 16
+ lsrs r0, 16
+ ldrh r2, [r2]
+ adds r0, r2
+ lsrs r1, r6, 8
+ lsls r1, 24
+ lsrs r1, 24
+ adds r0, r1
+ ldr r1, _0801ADF0
+ b _0801AE0E
+ .align 2, 0
+_0801ADEC: .4byte gTeamInventory_203B460
+_0801ADF0: .4byte 0x000003e7
+_0801ADF4:
+ lsrs r0, r4, 24
+ bl sub_801AE24
+ ldr r2, [r5]
+ lsrs r1, r4, 24
+ lsls r1, 1
+ adds r2, 0x50
+ adds r2, r1
+ lsls r0, 16
+ lsrs r0, 16
+ ldrh r2, [r2]
+ adds r0, r2
+ ldr r1, _0801AE18
+_0801AE0E:
+ cmp r0, r1
+ ble _0801AE1C
+_0801AE12:
+ movs r0, 0
+ b _0801AE1E
+ .align 2, 0
+_0801AE18: .4byte 0x000003e6
+_0801AE1C:
+ movs r0, 0x1
+_0801AE1E:
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_801ADA0
+
+ thumb_func_start sub_801AE24
+sub_801AE24:
+ push {r4-r7,lr}
+ adds r7, r0, 0
+ movs r5, 0
+ movs r6, 0
+ b _0801AE74
+_0801AE2E:
+ ldr r0, _0801AE64
+ ldr r0, [r0]
+ lsls r1, r6, 2
+ adds r0, 0x4
+ adds r0, r1
+ ldr r0, [r0]
+ cmp r0, 0
+ beq _0801AE72
+ ldr r0, _0801AE68
+ ldr r0, [r0]
+ adds r0, r1
+ ldr r4, [r0]
+ lsls r1, r4, 8
+ lsrs r0, r1, 24
+ cmp r0, r7
+ bne _0801AE72
+ bl IsThrowableItem
+ lsls r0, 24
+ cmp r0, 0
+ beq _0801AE6C
+ lsrs r0, r4, 8
+ lsls r0, 24
+ lsrs r0, 24
+ adds r0, r5, r0
+ b _0801AE6E
+ .align 2, 0
+_0801AE64: .4byte gUnknown_203B224
+_0801AE68: .4byte gTeamInventory_203B460
+_0801AE6C:
+ adds r0, r5, 0x1
+_0801AE6E:
+ lsls r0, 16
+ lsrs r5, r0, 16
+_0801AE72:
+ adds r6, 0x1
+_0801AE74:
+ bl GetNumberOfFilledInventorySlots
+ cmp r6, r0
+ blt _0801AE2E
+ adds r0, r5, 0
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_801AE24
+
+ thumb_func_start sub_801AE84
+sub_801AE84:
+ push {r4,lr}
+ movs r2, 0
+ ldr r4, _0801AEA4
+ movs r3, 0
+_0801AE8C:
+ ldr r0, [r4]
+ lsls r1, r2, 2
+ adds r0, 0x4
+ adds r0, r1
+ str r3, [r0]
+ adds r2, 0x1
+ cmp r2, 0x13
+ ble _0801AE8C
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0801AEA4: .4byte gUnknown_203B224
+ thumb_func_end sub_801AE84
+
+ thumb_func_start sub_801AEA8
+sub_801AEA8:
+ push {lr}
+ movs r3, 0
+ ldr r0, _0801AECC
+ ldr r0, [r0]
+ adds r1, r0, 0x4
+ movs r2, 0x13
+_0801AEB4:
+ ldr r0, [r1]
+ cmp r0, 0
+ beq _0801AEBC
+ adds r3, 0x1
+_0801AEBC:
+ adds r1, 0x4
+ subs r2, 0x1
+ cmp r2, 0
+ bge _0801AEB4
+ adds r0, r3, 0
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0801AECC: .4byte gUnknown_203B224
+ thumb_func_end sub_801AEA8
+
+ thumb_func_start sub_801AED0
+sub_801AED0:
+ ldr r1, _0801AEE0
+ ldr r1, [r1]
+ lsls r0, 2
+ adds r1, 0x4
+ adds r1, r0
+ ldr r0, [r1]
+ bx lr
+ .align 2, 0
+_0801AEE0: .4byte gUnknown_203B224
+ thumb_func_end sub_801AED0
+
+ thumb_func_start sub_801AEE4
+sub_801AEE4:
+ ldr r2, _0801AEF4
+ ldr r2, [r2]
+ lsls r0, 2
+ adds r2, 0x4
+ adds r2, r0
+ str r1, [r2]
+ bx lr
+ .align 2, 0
+_0801AEF4: .4byte gUnknown_203B224
+ thumb_func_end sub_801AEE4
+
+ thumb_func_start sub_801AEF8
+sub_801AEF8:
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ sub sp, 0x4
+ movs r0, 0
+ mov r9, r0
+ b _0801AF78
+_0801AF08:
+ movs r1, 0x1
+ add r1, r9
+ mov r8, r1
+ mov r7, r8
+ b _0801AF6E
+_0801AF12:
+ ldr r2, _0801AF90
+ ldr r0, [r2]
+ mov r1, r9
+ lsls r6, r1, 2
+ adds r0, r6
+ ldrb r0, [r0, 0x2]
+ str r2, [sp]
+ bl GetItemOrder
+ adds r4, r0, 0
+ ldr r2, [sp]
+ ldr r0, [r2]
+ lsls r5, r7, 2
+ adds r0, r5
+ ldrb r0, [r0, 0x2]
+ bl GetItemOrder
+ ldr r2, [sp]
+ cmp r4, r0
+ bgt _0801AF4C
+ cmp r4, r0
+ bne _0801AF6C
+ ldr r0, [r2]
+ adds r1, r0, r6
+ adds r0, r5
+ ldrb r1, [r1, 0x1]
+ ldrb r0, [r0, 0x1]
+ cmp r1, r0
+ bcs _0801AF6C
+_0801AF4C:
+ ldr r0, [r2]
+ adds r2, r0, r6
+ ldr r3, [r2]
+ adds r0, r5
+ ldr r1, [r0]
+ str r1, [r2]
+ str r3, [r0]
+ ldr r0, _0801AF94
+ ldr r0, [r0]
+ adds r0, 0x4
+ adds r2, r0, r6
+ ldr r3, [r2]
+ adds r0, r5
+ ldr r1, [r0]
+ str r1, [r2]
+ str r3, [r0]
+_0801AF6C:
+ adds r7, 0x1
+_0801AF6E:
+ bl GetNumberOfFilledInventorySlots
+ cmp r7, r0
+ blt _0801AF12
+ mov r9, r8
+_0801AF78:
+ bl GetNumberOfFilledInventorySlots
+ subs r0, 0x1
+ cmp r9, r0
+ blt _0801AF08
+ add sp, 0x4
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0801AF90: .4byte gTeamInventory_203B460
+_0801AF94: .4byte gUnknown_203B224
+ thumb_func_end sub_801AEF8
+
+ .align 2,0
diff --git a/asm/makuhita_dojo.s b/asm/makuhita_dojo.s
index f5dd21d..3ace9ed 100644
--- a/asm/makuhita_dojo.s
+++ b/asm/makuhita_dojo.s
@@ -190,7 +190,7 @@ _080300F4:
_08030108: .4byte gMakuhitaDialogue
_0803010C:
ldr r4, _08030138
- bl sub_808D33C
+ bl GetPlayerPokemonStruct
adds r1, r0, 0
adds r0, r4, 0
movs r2, 0x6
diff --git a/asm/pokemon.s b/asm/pokemon.s
index bc82a47..7715475 100644
--- a/asm/pokemon.s
+++ b/asm/pokemon.s
@@ -636,8 +636,8 @@ _0808D338:
bx r0
thumb_func_end sub_808D31C
- thumb_func_start sub_808D33C
-sub_808D33C:
+ thumb_func_start GetPlayerPokemonStruct
+GetPlayerPokemonStruct:
push {r4,lr}
movs r3, 0
ldr r0, _0808D360
@@ -669,7 +669,7 @@ _0808D370:
pop {r4}
pop {r1}
bx r1
- thumb_func_end sub_808D33C
+ thumb_func_end GetPlayerPokemonStruct
thumb_func_start sub_808D378
sub_808D378:
diff --git a/asm/pokemon_square.s b/asm/pokemon_square.s
deleted file mode 100644
index adab658..0000000
--- a/asm/pokemon_square.s
+++ /dev/null
@@ -1,1898 +0,0 @@
- .include "constants/gba_constants.inc"
- .include "asm/macros.inc"
-
- .syntax unified
-
- .text
-
- thumb_func_start sub_801A064
-sub_801A064:
- push {r4,lr}
- ldr r4, _0801A0D4
- ldr r0, [r4]
- ldrh r1, [r0, 0x20]
- adds r0, 0x9C
- movs r2, 0
- strb r1, [r0]
- ldr r0, [r4]
- ldrh r1, [r0, 0x1E]
- adds r0, 0x9D
- strb r1, [r0]
- ldr r0, [r4]
- adds r0, 0x9E
- movs r1, 0xA
- strb r1, [r0]
- ldr r0, [r4]
- adds r0, 0x9F
- strb r2, [r0]
- ldr r0, [r4]
- movs r1, 0x1A
- ldrsh r0, [r0, r1]
- movs r1, 0xC
- bl sub_80095E4
- adds r0, 0x2
- lsls r0, 16
- ldr r2, [r4]
- ldr r3, [r2, 0x34]
- lsls r1, r3, 1
- adds r1, r3
- lsls r1, 3
- adds r1, r2, r1
- adds r1, 0x4A
- asrs r3, r0, 16
- lsrs r0, 16
- strh r0, [r1]
- ldr r1, [r2, 0x34]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 3
- adds r2, r0
- adds r3, 0x2
- adds r2, 0x4C
- strh r3, [r2]
- bl ResetUnusedInputStruct
- ldr r0, [r4]
- adds r0, 0x3C
- movs r1, 0x1
- movs r2, 0x1
- bl sub_800641C
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0801A0D4: .4byte gUnknown_203B214
- thumb_func_end sub_801A064
-
- thumb_func_start sub_801A0D8
-sub_801A0D8:
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- sub sp, 0xB4
- ldr r4, _0801A1A4
- ldr r0, [r4]
- ldr r0, [r0, 0x34]
- bl sub_8008C54
- ldr r0, [r4]
- ldr r0, [r0, 0x34]
- bl sub_80073B8
- ldr r1, [r4]
- movs r2, 0x1E
- ldrsh r0, [r1, r2]
- lsls r0, 3
- adds r0, 0xA
- ldr r2, _0801A1A8
- ldr r3, [r1, 0x34]
- movs r1, 0
- str r1, [sp]
- bl xxx_call_draw_string
- movs r6, 0
- ldr r0, [r4]
- movs r1, 0x1A
- ldrsh r0, [r0, r1]
- cmp r6, r0
- bge _0801A1EC
- adds r7, r4, 0
- add r4, sp, 0xB0
- mov r9, r6
- add r5, sp, 0x54
- add r2, sp, 0x60
- mov r8, r2
-_0801A122:
- ldr r0, [r7]
- movs r2, 0x1E
- ldrsh r1, [r0, r2]
- movs r2, 0x1C
- ldrsh r0, [r0, r2]
- muls r0, r1
- adds r0, r6
- lsls r0, 24
- lsrs r0, 24
- bl xxx_get_inv_unk230_at_809185C
- ldrb r2, [r0]
- lsls r2, 16
- ldr r3, _0801A1AC
- ldr r1, [r4]
- ands r1, r3
- orrs r1, r2
- str r1, [r4]
- ldrb r2, [r0, 0x1]
- lsls r2, 8
- ldr r0, _0801A1B0
- ands r1, r0
- orrs r1, r2
- ldr r0, _0801A1B4
- ands r1, r0
- movs r0, 0x3
- orrs r1, r0
- str r1, [r4]
- movs r1, 0x1
- str r1, [sp, 0x54]
- mov r0, r9
- strb r0, [r5, 0x4]
- movs r0, 0x58
- strh r0, [r5, 0x6]
- strb r1, [r5, 0x8]
- add r0, sp, 0x4
- adds r1, r4, 0
- adds r2, r5, 0
- bl sub_8090E14
- adds r0, r4, 0
- bl GetStackBuyPrice
- ldr r1, _0801A1B8
- ldr r1, [r1]
- movs r2, 0x98
- lsls r2, 2
- adds r1, r2
- ldr r1, [r1]
- cmp r0, r1
- bgt _0801A1BC
- ldr r0, [r7]
- adds r1, r6, 0
- bl sub_8013800
- adds r1, r0, 0
- ldr r0, [r7]
- ldr r3, [r0, 0x34]
- mov r0, r9
- str r0, [sp]
- movs r0, 0x8
- add r2, sp, 0x4
- bl xxx_call_draw_string
- b _0801A1E0
- .align 2, 0
-_0801A1A4: .4byte gUnknown_203B214
-_0801A1A8: .4byte gUnknown_80DB8E4
-_0801A1AC: .4byte 0xff00ffff
-_0801A1B0: .4byte 0xffff00ff
-_0801A1B4: .4byte 0xffffff00
-_0801A1B8: .4byte gTeamInventory_203B460
-_0801A1BC:
- mov r0, r8
- ldr r1, _0801A204
- add r2, sp, 0x4
- bl ExpandPlaceholdersBuffer
- ldr r0, [r7]
- adds r1, r6, 0
- bl sub_8013800
- adds r1, r0, 0
- ldr r0, [r7]
- ldr r3, [r0, 0x34]
- mov r2, r9
- str r2, [sp]
- movs r0, 0x8
- mov r2, r8
- bl xxx_call_draw_string
-_0801A1E0:
- adds r6, 0x1
- ldr r0, [r7]
- movs r1, 0x1A
- ldrsh r0, [r0, r1]
- cmp r6, r0
- blt _0801A122
-_0801A1EC:
- ldr r0, _0801A208
- ldr r0, [r0]
- ldr r0, [r0, 0x34]
- bl sub_80073E0
- add sp, 0xB4
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0801A204: .4byte gUnknown_80DB8EC
-_0801A208: .4byte gUnknown_203B214
- thumb_func_end sub_801A0D8
-
- thumb_func_start sub_801A20C
-sub_801A20C:
- push {r4-r6,lr}
- adds r6, r0, 0
- bl xxx_count_non_empty_inv_unk250_8091A48
- cmp r0, 0
- beq _0801A2A0
- ldr r5, _0801A294
- movs r0, 0xA0
- movs r1, 0x8
- bl MemoryAlloc
- str r0, [r5]
- str r6, [r0, 0x34]
- lsls r1, r6, 1
- adds r1, r6
- lsls r1, 3
- adds r1, 0x3C
- adds r1, r0, r1
- str r1, [r0, 0x38]
- adds r0, 0x3C
- bl sub_8006518
- ldr r1, [r5]
- ldr r2, [r1, 0x34]
- lsls r0, r2, 1
- adds r0, r2
- lsls r0, 3
- adds r1, r0
- adds r1, 0x3C
- ldr r0, _0801A298
- ldm r0!, {r2-r4}
- stm r1!, {r2-r4}
- ldm r0!, {r2-r4}
- stm r1!, {r2-r4}
- ldr r0, [r5]
- ldr r1, [r0, 0x38]
- adds r0, 0x9C
- str r0, [r1, 0x14]
- bl ResetUnusedInputStruct
- ldr r0, [r5]
- adds r0, 0x3C
- movs r1, 0x1
- movs r2, 0x1
- bl sub_800641C
- ldr r4, [r5]
- bl xxx_count_non_empty_inv_unk250_8091A48
- adds r1, r0, 0
- adds r0, r4, 0
- movs r2, 0xA
- adds r3, r6, 0
- bl sub_8013818
- ldr r0, [r5]
- ldr r1, _0801A29C
- ldrh r1, [r1]
- strh r1, [r0, 0x18]
- bl sub_8013984
- bl sub_801A430
- bl sub_801A4A4
- movs r0, 0x1
- b _0801A2A2
- .align 2, 0
-_0801A294: .4byte gUnknown_203B21C
-_0801A298: .4byte gUnknown_80DB914
-_0801A29C: .4byte gUnknown_203B220
-_0801A2A0:
- movs r0, 0
-_0801A2A2:
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end sub_801A20C
-
- thumb_func_start sub_801A2A8
-sub_801A2A8:
- push {lr}
- sub sp, 0x4
- lsls r0, 24
- cmp r0, 0
- bne _0801A2C4
- ldr r0, _0801A2C0
- ldr r0, [r0]
- bl sub_8013660
- movs r0, 0
- b _0801A376
- .align 2, 0
-_0801A2C0: .4byte gUnknown_203B21C
-_0801A2C4:
- ldr r0, _0801A2DC
- ldr r0, [r0]
- bl GetKeyPress
- cmp r0, 0x2
- beq _0801A2E6
- cmp r0, 0x2
- bgt _0801A2E0
- cmp r0, 0x1
- beq _0801A2F0
- b _0801A354
- .align 2, 0
-_0801A2DC: .4byte gUnknown_203B21C
-_0801A2E0:
- cmp r0, 0x4
- beq _0801A34A
- b _0801A354
-_0801A2E6:
- movs r0, 0x1
- bl PlayMenuSoundEffect
- movs r0, 0x2
- b _0801A376
-_0801A2F0:
- bl sub_801A37C
- lsls r0, 24
- lsrs r0, 24
- bl xxx_get_unk250_at_8091A90
- ldrb r2, [r0]
- lsls r2, 16
- ldr r3, _0801A334
- ldr r1, [sp]
- ands r1, r3
- orrs r1, r2
- str r1, [sp]
- ldrb r0, [r0, 0x1]
- lsls r0, 8
- ldr r2, _0801A338
- ands r1, r2
- orrs r1, r0
- str r1, [sp]
- mov r0, sp
- bl GetStackBuyPrice
- ldr r1, _0801A33C
- ldr r1, [r1]
- movs r2, 0x98
- lsls r2, 2
- adds r1, r2
- ldr r1, [r1]
- cmp r0, r1
- ble _0801A340
- movs r0, 0x2
- bl PlayMenuSoundEffect
- b _0801A346
- .align 2, 0
-_0801A334: .4byte 0xff00ffff
-_0801A338: .4byte 0xffff00ff
-_0801A33C: .4byte gTeamInventory_203B460
-_0801A340:
- movs r0, 0
- bl PlayMenuSoundEffect
-_0801A346:
- movs r0, 0x3
- b _0801A376
-_0801A34A:
- movs r0, 0x4
- bl PlayMenuSoundEffect
- movs r0, 0x4
- b _0801A376
-_0801A354:
- ldr r0, _0801A368
- ldr r0, [r0]
- movs r1, 0x1
- bl sub_80138B8
- lsls r0, 24
- cmp r0, 0
- bne _0801A36C
- movs r0, 0
- b _0801A376
- .align 2, 0
-_0801A368: .4byte gUnknown_203B21C
-_0801A36C:
- bl sub_801A430
- bl sub_801A4A4
- movs r0, 0x1
-_0801A376:
- add sp, 0x4
- pop {r1}
- bx r1
- thumb_func_end sub_801A2A8
-
- thumb_func_start sub_801A37C
-sub_801A37C:
- ldr r0, _0801A394
- ldr r1, [r0]
- movs r0, 0x1E
- ldrsh r2, [r1, r0]
- movs r3, 0x1C
- ldrsh r0, [r1, r3]
- muls r0, r2
- ldrb r1, [r1, 0x18]
- adds r0, r1
- lsls r0, 24
- lsrs r0, 24
- bx lr
- .align 2, 0
-_0801A394: .4byte gUnknown_203B21C
- thumb_func_end sub_801A37C
-
- thumb_func_start sub_801A398
-sub_801A398:
- push {r4,r5,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- bl ResetUnusedInputStruct
- ldr r5, _0801A3D8
- ldr r0, [r5]
- adds r0, 0x3C
- movs r1, 0
- movs r2, 0
- bl sub_800641C
- bl xxx_count_non_empty_inv_unk250_8091A48
- adds r1, r0, 0
- ldr r0, [r5]
- strh r1, [r0, 0x22]
- bl sub_8013984
- bl sub_801A430
- bl sub_801A4A4
- cmp r4, 0
- beq _0801A3D2
- ldr r0, [r5]
- bl AddMenuCursorSprite
-_0801A3D2:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0801A3D8: .4byte gUnknown_203B21C
- thumb_func_end sub_801A398
-
- thumb_func_start sub_801A3DC
-sub_801A3DC:
- push {r4,r5,lr}
- ldr r4, _0801A424
- ldr r2, [r4]
- cmp r2, 0
- beq _0801A41C
- ldr r1, _0801A428
- ldrh r0, [r2, 0x18]
- strh r0, [r1]
- ldr r0, [r2, 0x34]
- lsls r1, r0, 1
- adds r1, r0
- lsls r1, 3
- adds r1, r2, r1
- adds r1, 0x3C
- ldr r0, _0801A42C
- ldm r0!, {r2,r3,r5}
- stm r1!, {r2,r3,r5}
- ldm r0!, {r2,r3,r5}
- stm r1!, {r2,r3,r5}
- bl ResetUnusedInputStruct
- ldr r0, [r4]
- adds r0, 0x3C
- movs r1, 0x1
- movs r2, 0x1
- bl sub_800641C
- ldr r0, [r4]
- bl MemoryFree
- movs r0, 0
- str r0, [r4]
-_0801A41C:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0801A424: .4byte gUnknown_203B21C
-_0801A428: .4byte gUnknown_203B220
-_0801A42C: .4byte gUnknown_80DB8FC
- thumb_func_end sub_801A3DC
-
- thumb_func_start sub_801A430
-sub_801A430:
- push {r4,lr}
- ldr r4, _0801A4A0
- ldr r0, [r4]
- ldrh r1, [r0, 0x20]
- adds r0, 0x9C
- movs r2, 0
- strb r1, [r0]
- ldr r0, [r4]
- ldrh r1, [r0, 0x1E]
- adds r0, 0x9D
- strb r1, [r0]
- ldr r0, [r4]
- adds r0, 0x9E
- movs r1, 0xA
- strb r1, [r0]
- ldr r0, [r4]
- adds r0, 0x9F
- strb r2, [r0]
- ldr r0, [r4]
- movs r1, 0x1A
- ldrsh r0, [r0, r1]
- movs r1, 0xC
- bl sub_80095E4
- adds r0, 0x2
- lsls r0, 16
- ldr r2, [r4]
- ldr r3, [r2, 0x34]
- lsls r1, r3, 1
- adds r1, r3
- lsls r1, 3
- adds r1, r2, r1
- adds r1, 0x4A
- asrs r3, r0, 16
- lsrs r0, 16
- strh r0, [r1]
- ldr r1, [r2, 0x34]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 3
- adds r2, r0
- adds r3, 0x2
- adds r2, 0x4C
- strh r3, [r2]
- bl ResetUnusedInputStruct
- ldr r0, [r4]
- adds r0, 0x3C
- movs r1, 0x1
- movs r2, 0x1
- bl sub_800641C
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0801A4A0: .4byte gUnknown_203B21C
- thumb_func_end sub_801A430
-
- thumb_func_start sub_801A4A4
-sub_801A4A4:
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- sub sp, 0xB4
- ldr r4, _0801A570
- ldr r0, [r4]
- ldr r0, [r0, 0x34]
- bl sub_8008C54
- ldr r0, [r4]
- ldr r0, [r0, 0x34]
- bl sub_80073B8
- ldr r1, [r4]
- movs r2, 0x1E
- ldrsh r0, [r1, r2]
- lsls r0, 3
- adds r0, 0xA
- ldr r2, _0801A574
- ldr r3, [r1, 0x34]
- movs r1, 0
- str r1, [sp]
- bl xxx_call_draw_string
- movs r6, 0
- ldr r0, [r4]
- movs r1, 0x1A
- ldrsh r0, [r0, r1]
- cmp r6, r0
- bge _0801A5B8
- adds r7, r4, 0
- add r4, sp, 0xB0
- mov r9, r6
- add r5, sp, 0x54
- add r2, sp, 0x60
- mov r8, r2
-_0801A4EE:
- ldr r0, [r7]
- movs r2, 0x1E
- ldrsh r1, [r0, r2]
- movs r2, 0x1C
- ldrsh r0, [r0, r2]
- muls r0, r1
- adds r0, r6
- lsls r0, 24
- lsrs r0, 24
- bl xxx_get_unk250_at_8091A90
- ldrb r2, [r0]
- lsls r2, 16
- ldr r3, _0801A578
- ldr r1, [r4]
- ands r1, r3
- orrs r1, r2
- str r1, [r4]
- ldrb r2, [r0, 0x1]
- lsls r2, 8
- ldr r0, _0801A57C
- ands r1, r0
- orrs r1, r2
- ldr r0, _0801A580
- ands r1, r0
- movs r0, 0x3
- orrs r1, r0
- str r1, [r4]
- movs r1, 0x1
- str r1, [sp, 0x54]
- mov r0, r9
- strb r0, [r5, 0x4]
- movs r0, 0x58
- strh r0, [r5, 0x6]
- strb r1, [r5, 0x8]
- add r0, sp, 0x4
- adds r1, r4, 0
- adds r2, r5, 0
- bl sub_8090E14
- adds r0, r4, 0
- bl GetStackBuyPrice
- ldr r1, _0801A584
- ldr r1, [r1]
- movs r2, 0x98
- lsls r2, 2
- adds r1, r2
- ldr r1, [r1]
- cmp r0, r1
- bgt _0801A588
- ldr r0, [r7]
- adds r1, r6, 0
- bl sub_8013800
- adds r1, r0, 0
- ldr r0, [r7]
- ldr r3, [r0, 0x34]
- mov r0, r9
- str r0, [sp]
- movs r0, 0x8
- add r2, sp, 0x4
- bl xxx_call_draw_string
- b _0801A5AC
- .align 2, 0
-_0801A570: .4byte gUnknown_203B21C
-_0801A574: .4byte gUnknown_80DB92C
-_0801A578: .4byte 0xff00ffff
-_0801A57C: .4byte 0xffff00ff
-_0801A580: .4byte 0xffffff00
-_0801A584: .4byte gTeamInventory_203B460
-_0801A588:
- mov r0, r8
- ldr r1, _0801A5D0
- add r2, sp, 0x4
- bl ExpandPlaceholdersBuffer
- ldr r0, [r7]
- adds r1, r6, 0
- bl sub_8013800
- adds r1, r0, 0
- ldr r0, [r7]
- ldr r3, [r0, 0x34]
- mov r2, r9
- str r2, [sp]
- movs r0, 0x8
- mov r2, r8
- bl xxx_call_draw_string
-_0801A5AC:
- adds r6, 0x1
- ldr r0, [r7]
- movs r1, 0x1A
- ldrsh r0, [r0, r1]
- cmp r6, r0
- blt _0801A4EE
-_0801A5B8:
- ldr r0, _0801A5D4
- ldr r0, [r0]
- ldr r0, [r0, 0x34]
- bl sub_80073E0
- add sp, 0xB4
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0801A5D0: .4byte gUnknown_80DB934
-_0801A5D4: .4byte gUnknown_203B21C
- thumb_func_end sub_801A4A4
-
- thumb_func_start sub_801A5D8
-sub_801A5D8:
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- adds r4, r0, 0
- adds r6, r1, 0
- adds r7, r2, 0
- mov r8, r3
- bl GetNumberOfFilledInventorySlots
- cmp r0, 0
- bne _0801A5F2
- movs r0, 0
- b _0801A6CC
-_0801A5F2:
- ldr r5, _0801A6D8
- ldr r0, [r5]
- cmp r0, 0
- bne _0801A604
- movs r0, 0xF4
- movs r1, 0x8
- bl MemoryAlloc
- str r0, [r5]
-_0801A604:
- ldr r0, [r5]
- str r4, [r0]
- bl FillInventoryGaps
- bl sub_801AE84
- ldr r0, [r5]
- adds r1, r0, 0
- adds r1, 0x88
- str r6, [r1]
- adds r2, r0, 0
- adds r2, 0x8C
- lsls r1, r6, 1
- adds r1, r6
- lsls r1, 3
- adds r1, 0x90
- adds r1, r0, r1
- str r1, [r2]
- adds r0, 0x90
- bl sub_8006518
- ldr r1, [r5]
- adds r0, r1, 0
- adds r0, 0x88
- ldr r2, [r0]
- lsls r0, r2, 1
- adds r0, r2
- lsls r0, 3
- adds r1, r0
- adds r1, 0x90
- ldr r0, _0801A6DC
- ldm r0!, {r2-r4}
- stm r1!, {r2-r4}
- ldm r0!, {r2-r4}
- stm r1!, {r2-r4}
- ldr r2, [r5]
- adds r0, r2, 0
- adds r0, 0x8C
- ldr r1, [r0]
- adds r0, 0x64
- str r0, [r1, 0x14]
- cmp r7, 0
- beq _0801A66E
- subs r0, 0x68
- ldr r1, [r0]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 3
- adds r1, r2, 0
- adds r1, 0x98
- adds r1, r0
- ldr r0, [r7]
- str r0, [r1]
-_0801A66E:
- ldr r0, [r5]
- adds r0, 0x8C
- ldr r0, [r0]
- mov r1, r8
- bl sub_8012D08
- movs r0, 0x1
- bl sub_8099690
- bl ResetUnusedInputStruct
- ldr r0, [r5]
- adds r0, 0x90
- movs r1, 0x1
- movs r2, 0x1
- bl sub_800641C
- ldr r4, [r5]
- adds r4, 0x54
- bl GetNumberOfFilledInventorySlots
- adds r1, r0, 0
- adds r0, r4, 0
- mov r2, r8
- adds r3, r6, 0
- bl sub_8013818
- ldr r2, [r5]
- ldr r0, _0801A6E0
- ldrh r1, [r0]
- adds r0, r2, 0
- adds r0, 0x6C
- strh r1, [r0]
- ldr r0, _0801A6E4
- ldrh r0, [r0]
- adds r1, r2, 0
- adds r1, 0x72
- strh r0, [r1]
- adds r0, r2, 0
- adds r0, 0x54
- bl sub_8013984
- bl sub_801A998
- bl sub_801A9E0
- movs r0, 0x1
-_0801A6CC:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_0801A6D8: .4byte gUnknown_203B224
-_0801A6DC: .4byte gUnknown_80DB95C
-_0801A6E0: .4byte gUnknown_203B228
-_0801A6E4: .4byte gUnknown_203B22A
- thumb_func_end sub_801A5D8
-
- thumb_func_start sub_801A6E8
-sub_801A6E8:
- push {r4,r5,lr}
- sub sp, 0x4
- lsls r0, 24
- cmp r0, 0
- bne _0801A704
- ldr r0, _0801A700
- ldr r0, [r0]
- adds r0, 0x54
- bl sub_8013660
- movs r0, 0
- b _0801A8A2
- .align 2, 0
-_0801A700: .4byte gUnknown_203B224
-_0801A704:
- ldr r0, _0801A720
- ldr r0, [r0]
- adds r0, 0x54
- bl GetKeyPress
- subs r0, 0x1
- cmp r0, 0x5
- bls _0801A716
- b _0801A87C
-_0801A716:
- lsls r0, 2
- ldr r1, _0801A724
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0801A720: .4byte gUnknown_203B224
-_0801A724: .4byte _0801A728
- .align 2, 0
-_0801A728:
- .4byte _0801A74A
- .4byte _0801A740
- .4byte _0801A864
- .4byte _0801A806
- .4byte _0801A810
- .4byte _0801A810
-_0801A740:
- movs r0, 0x1
- bl PlayMenuSoundEffect
- movs r0, 0x2
- b _0801A8A2
-_0801A74A:
- ldr r1, _0801A760
- ldr r0, [r1]
- ldr r0, [r0]
- adds r4, r1, 0
- cmp r0, 0x5
- bhi _0801A802
- lsls r0, 2
- ldr r1, _0801A764
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0801A760: .4byte gUnknown_203B224
-_0801A764: .4byte _0801A768
- .align 2, 0
-_0801A768:
- .4byte _0801A780
- .4byte _0801A780
- .4byte _0801A780
- .4byte _0801A794
- .4byte _0801A7AC
- .4byte _0801A7FC
-_0801A780:
- ldr r4, [r4]
- bl sub_801A8AC
- lsls r0, 2
- adds r4, 0x4
- adds r4, r0
- ldr r0, [r4]
- cmp r0, 0
- bne _0801A7F4
- b _0801A7E2
-_0801A794:
- bl sub_801AEA8
- cmp r0, 0
- bne _0801A7E2
- bl sub_801A8AC
- bl sub_801ADA0
- lsls r0, 24
- cmp r0, 0
- bne _0801A7E2
- b _0801A7F4
-_0801A7AC:
- ldr r5, _0801A7EC
- ldr r4, [r5]
- bl sub_801A8AC
- lsls r0, 2
- adds r4, r0
- ldr r0, [r4]
- str r0, [sp]
- mov r0, sp
- ldrb r0, [r0, 0x2]
- bl CanSellItem
- lsls r0, 24
- cmp r0, 0
- beq _0801A7F4
- mov r0, sp
- bl GetStackSellPrice
- ldr r1, [r5]
- movs r2, 0x98
- lsls r2, 2
- adds r1, r2
- ldr r1, [r1]
- adds r0, r1
- ldr r1, _0801A7F0
- cmp r0, r1
- bgt _0801A7F4
-_0801A7E2:
- movs r0, 0
- bl PlayMenuSoundEffect
- b _0801A802
- .align 2, 0
-_0801A7EC: .4byte gTeamInventory_203B460
-_0801A7F0: .4byte 0x0001869f
-_0801A7F4:
- movs r0, 0x2
- bl PlayMenuSoundEffect
- b _0801A802
-_0801A7FC:
- movs r0, 0
- bl PlayMenuSoundEffect
-_0801A802:
- movs r0, 0x3
- b _0801A8A2
-_0801A806:
- movs r0, 0x4
- bl PlayMenuSoundEffect
- movs r0, 0x4
- b _0801A8A2
-_0801A810:
- ldr r4, _0801A858
- ldr r0, [r4]
- ldr r0, [r0]
- cmp r0, 0x3
- bne _0801A87C
- bl sub_801A8AC
- adds r1, r0, 0
- ldr r0, [r4]
- lsls r5, r1, 2
- adds r0, 0x4
- adds r0, r5
- ldr r0, [r0]
- cmp r0, 0
- bne _0801A83A
- adds r0, r1, 0
- bl sub_801ADA0
- lsls r0, 24
- cmp r0, 0
- beq _0801A85C
-_0801A83A:
- movs r0, 0x6
- bl PlayMenuSoundEffect
- ldr r0, [r4]
- adds r2, r0, 0x4
- adds r2, r5
- ldr r1, [r2]
- movs r3, 0x1
- eors r1, r3
- str r1, [r2]
- adds r0, 0x54
- movs r1, 0
- bl sub_80138B8
- b _0801A89C
- .align 2, 0
-_0801A858: .4byte gUnknown_203B224
-_0801A85C:
- movs r0, 0x2
- bl PlayMenuSoundEffect
- b _0801A87C
-_0801A864:
- ldr r0, _0801A894
- ldr r0, [r0]
- ldr r0, [r0]
- cmp r0, 0x2
- beq _0801A87C
- movs r0, 0x5
- bl PlayMenuSoundEffect
- bl sub_801AEF8
- bl sub_801A9E0
-_0801A87C:
- ldr r0, _0801A894
- ldr r0, [r0]
- adds r0, 0x54
- movs r1, 0x1
- bl sub_80138B8
- lsls r0, 24
- cmp r0, 0
- bne _0801A898
- movs r0, 0
- b _0801A8A2
- .align 2, 0
-_0801A894: .4byte gUnknown_203B224
-_0801A898:
- bl sub_801A998
-_0801A89C:
- bl sub_801A9E0
- movs r0, 0x1
-_0801A8A2:
- add sp, 0x4
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_801A6E8
-
- thumb_func_start sub_801A8AC
-sub_801A8AC:
- ldr r0, _0801A8CC
- ldr r2, [r0]
- adds r0, r2, 0
- adds r0, 0x72
- 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, 0x6C
- movs r2, 0
- ldrsh r1, [r1, r2]
- adds r0, r1
- bx lr
- .align 2, 0
-_0801A8CC: .4byte gUnknown_203B224
- thumb_func_end sub_801A8AC
-
- thumb_func_start sub_801A8D0
-sub_801A8D0:
- push {r4,r5,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- movs r0, 0x1
- bl sub_8099690
- bl ResetUnusedInputStruct
- ldr r5, _0801A924
- ldr r0, [r5]
- adds r0, 0x90
- movs r1, 0
- movs r2, 0
- bl sub_800641C
- bl FillInventoryGaps
- bl GetNumberOfFilledInventorySlots
- adds r1, r0, 0
- ldr r0, [r5]
- adds r2, r0, 0
- adds r2, 0x76
- strh r1, [r2]
- adds r0, 0x54
- bl sub_8013984
- bl sub_801A998
- bl sub_801A9E0
- cmp r4, 0
- beq _0801A91C
- ldr r0, [r5]
- adds r0, 0x54
- bl AddMenuCursorSprite
-_0801A91C:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0801A924: .4byte gUnknown_203B224
- thumb_func_end sub_801A8D0
-
- thumb_func_start sub_801A928
-sub_801A928:
- push {r4,r5,lr}
- ldr r4, _0801A988
- ldr r2, [r4]
- cmp r2, 0
- beq _0801A980
- ldr r1, _0801A98C
- adds r0, r2, 0
- adds r0, 0x6C
- ldrh r0, [r0]
- strh r0, [r1]
- ldr r1, _0801A990
- adds r0, r2, 0
- adds r0, 0x72
- ldrh r0, [r0]
- strh r0, [r1]
- adds r0, r2, 0
- adds r0, 0x88
- ldr r0, [r0]
- lsls r1, r0, 1
- adds r1, r0
- lsls r1, 3
- adds r1, r2, r1
- adds r1, 0x90
- ldr r0, _0801A994
- ldm r0!, {r2,r3,r5}
- stm r1!, {r2,r3,r5}
- ldm r0!, {r2,r3,r5}
- stm r1!, {r2,r3,r5}
- movs r0, 0
- bl sub_8099690
- bl ResetUnusedInputStruct
- ldr r0, [r4]
- adds r0, 0x90
- movs r1, 0x1
- movs r2, 0x1
- bl sub_800641C
- ldr r0, [r4]
- bl MemoryFree
- movs r0, 0
- str r0, [r4]
-_0801A980:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0801A988: .4byte gUnknown_203B224
-_0801A98C: .4byte gUnknown_203B228
-_0801A990: .4byte gUnknown_203B22A
-_0801A994: .4byte gUnknown_80DB944
- thumb_func_end sub_801A928
-
- thumb_func_start sub_801A998
-sub_801A998:
- push {r4,lr}
- ldr r4, _0801A9DC
- ldr r0, [r4]
- adds r1, r0, 0
- adds r1, 0x74
- ldrh r1, [r1]
- adds r0, 0xF0
- movs r2, 0
- strb r1, [r0]
- ldr r0, [r4]
- adds r1, r0, 0
- adds r1, 0x72
- ldrh r1, [r1]
- adds r0, 0xF1
- strb r1, [r0]
- ldr r0, [r4]
- adds r0, 0xF2
- movs r1, 0xB
- strb r1, [r0]
- ldr r0, [r4]
- adds r0, 0xF3
- strb r2, [r0]
- bl ResetUnusedInputStruct
- ldr r0, [r4]
- adds r0, 0x90
- movs r1, 0x1
- movs r2, 0x1
- bl sub_800641C
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0801A9DC: .4byte gUnknown_203B224
- thumb_func_end sub_801A998
-
- thumb_func_start sub_801A9E0
-sub_801A9E0:
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0xCC
- ldr r4, _0801AA2C
- ldr r0, [r4]
- adds r0, 0x88
- ldr r0, [r0]
- bl sub_8008C54
- ldr r0, [r4]
- adds r0, 0x88
- ldr r0, [r0]
- bl sub_80073B8
- ldr r4, [r4]
- adds r1, r4, 0
- adds r1, 0x72
- movs r2, 0
- ldrsh r0, [r1, r2]
- lsls r0, 3
- adds r5, r0, 0
- adds r5, 0xA
- movs r3, 0
- ldrsh r1, [r1, r3]
- cmp r1, 0
- bne _0801AA34
- ldr r2, _0801AA30
- adds r0, r4, 0
- adds r0, 0x88
- ldr r3, [r0]
- str r1, [sp]
- adds r0, r5, 0
- movs r1, 0
- bl xxx_call_draw_string
- b _0801AA48
- .align 2, 0
-_0801AA2C: .4byte gUnknown_203B224
-_0801AA30: .4byte gTeamToolboxA
-_0801AA34:
- ldr r2, _0801AA58
- adds r0, r4, 0
- adds r0, 0x88
- ldr r3, [r0]
- movs r0, 0
- str r0, [sp]
- adds r0, r5, 0
- movs r1, 0
- bl xxx_call_draw_string
-_0801AA48:
- movs r7, 0
- ldr r1, _0801AA5C
- ldr r0, [r1]
- adds r0, 0x6E
- movs r4, 0
- ldrsh r0, [r0, r4]
- b _0801AD0A
- .align 2, 0
-_0801AA58: .4byte gTeamToolboxB
-_0801AA5C: .4byte gUnknown_203B224
-_0801AA60:
- ldr r2, [r1]
- adds r0, r2, 0
- adds r0, 0x72
- movs r3, 0
- ldrsh r1, [r0, r3]
- subs r0, 0x2
- movs r4, 0
- ldrsh r0, [r0, r4]
- muls r0, r1
- adds r0, r7
- mov r8, r0
- ldr r0, _0801AA9C
- ldr r0, [r0]
- mov r3, r8
- lsls r1, r3, 2
- adds r0, r1
- ldr r0, [r0]
- add r1, sp, 0xC8
- str r0, [r1]
- ldr r0, [r2]
- adds r4, r1, 0
- cmp r0, 0x5
- bls _0801AA90
- b _0801ACC4
-_0801AA90:
- lsls r0, 2
- ldr r1, _0801AAA0
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0801AA9C: .4byte gTeamInventory_203B460
-_0801AAA0: .4byte _0801AAA4
- .align 2, 0
-_0801AAA4:
- .4byte _0801AABC
- .4byte _0801AAE4
- .4byte _0801AAE4
- .4byte _0801AB18
- .4byte _0801AB90
- .4byte _0801AC50
-_0801AABC:
- add r0, sp, 0x4
- adds r1, r4, 0
- movs r2, 0
- bl sub_8090E14
- ldr r4, _0801AAE0
- ldr r0, [r4]
- adds r0, 0x54
- adds r1, r7, 0
- bl sub_8013800
- adds r1, r0, 0
- ldr r0, [r4]
- adds r0, 0x88
- ldr r3, [r0]
- movs r0, 0
- str r0, [sp]
- b _0801AC8C
- .align 2, 0
-_0801AAE0: .4byte gUnknown_203B224
-_0801AAE4:
- add r2, sp, 0x54
- movs r5, 0
- str r5, [sp, 0x54]
- strb r5, [r2, 0x4]
- movs r0, 0x1
- strb r0, [r2, 0x8]
- strb r0, [r4]
- add r1, sp, 0xC8
- add r0, sp, 0x4
- bl sub_8090E14
- ldr r4, _0801AB14
- ldr r0, [r4]
- adds r0, 0x54
- adds r1, r7, 0
- bl sub_8013800
- adds r1, r0, 0
- ldr r0, [r4]
- adds r0, 0x88
- ldr r3, [r0]
- str r5, [sp]
- b _0801AC8C
- .align 2, 0
-_0801AB14: .4byte gUnknown_203B224
-_0801AB18:
- add r2, sp, 0x60
- movs r6, 0
- str r6, [sp, 0x60]
- strb r6, [r2, 0x4]
- movs r0, 0x1
- strb r0, [r2, 0x8]
- strb r0, [r4]
- add r1, sp, 0xC8
- add r0, sp, 0x4
- bl sub_8090E14
- ldr r5, _0801AB60
- ldr r0, [r5]
- mov r4, r8
- lsls r1, r4, 2
- adds r0, 0x4
- adds r0, r1
- ldr r0, [r0]
- cmp r0, 0
- bne _0801AB4E
- mov r0, r8
- bl sub_801ADA0
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0
- beq _0801AB64
-_0801AB4E:
- ldr r0, [r5]
- adds r0, 0x54
- adds r1, r7, 0
- bl sub_8013800
- adds r1, r0, 0
- ldr r0, [r5]
- b _0801AC86
- .align 2, 0
-_0801AB60: .4byte gUnknown_203B224
-_0801AB64:
- ldr r0, _0801AB88
- add r1, sp, 0x4
- movs r2, 0x50
- bl strncpy
- ldr r0, [r5]
- adds r0, 0x54
- adds r1, r7, 0
- bl sub_8013800
- adds r1, r0, 0
- ldr r2, _0801AB8C
- ldr r0, [r5]
- adds r0, 0x88
- ldr r3, [r0]
- str r4, [sp]
- b _0801AC3C
- .align 2, 0
-_0801AB88: .4byte gUnknown_202DE58
-_0801AB8C: .4byte gUnknown_80DB994
-_0801AB90:
- ldrb r0, [r4, 0x2]
- bl CanSellItem
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0
- beq _0801AC10
- add r2, sp, 0x6C
- movs r1, 0x3
- str r1, [sp, 0x6C]
- movs r6, 0
- strb r6, [r2, 0x4]
- movs r0, 0x58
- strh r0, [r2, 0x6]
- movs r0, 0x1
- strb r0, [r2, 0x8]
- strb r1, [r4]
- add r0, sp, 0x4
- adds r1, r4, 0
- bl sub_8090E14
- adds r0, r4, 0
- bl GetStackSellPrice
- ldr r1, _0801AC00
- ldr r1, [r1]
- movs r2, 0x98
- lsls r2, 2
- adds r1, r2
- ldr r1, [r1]
- adds r0, r1
- ldr r1, _0801AC04
- cmp r0, r1
- ble _0801AC76
- add r5, sp, 0x78
- ldr r1, _0801AC08
- adds r0, r5, 0
- add r2, sp, 0x4
- bl ExpandPlaceholdersBuffer
- ldr r4, _0801AC0C
- ldr r0, [r4]
- adds r0, 0x54
- adds r1, r7, 0
- bl sub_8013800
- adds r1, r0, 0
- ldr r0, [r4]
- adds r0, 0x88
- ldr r3, [r0]
- str r6, [sp]
- movs r0, 0x8
- adds r2, r5, 0
- bl xxx_call_draw_string
- b _0801ACC4
- .align 2, 0
-_0801AC00: .4byte gTeamInventory_203B460
-_0801AC04: .4byte 0x0001869f
-_0801AC08: .4byte gUnknown_80DB9A0
-_0801AC0C: .4byte gUnknown_203B224
-_0801AC10:
- add r0, sp, 0x4
- adds r1, r4, 0
- movs r2, 0
- bl sub_8090E14
- ldr r0, _0801AC44
- add r1, sp, 0x4
- movs r2, 0x50
- bl strncpy
- ldr r4, _0801AC48
- ldr r0, [r4]
- adds r0, 0x54
- adds r1, r7, 0
- bl sub_8013800
- adds r1, r0, 0
- ldr r2, _0801AC4C
- ldr r0, [r4]
- adds r0, 0x88
- ldr r3, [r0]
- str r5, [sp]
-_0801AC3C:
- movs r0, 0x8
- bl xxx_format_and_draw
- b _0801ACC4
- .align 2, 0
-_0801AC44: .4byte gUnknown_202DE58
-_0801AC48: .4byte gUnknown_203B224
-_0801AC4C: .4byte gUnknown_80DB994
-_0801AC50:
- add r2, sp, 0x78
- movs r6, 0
- str r6, [sp, 0x78]
- strb r6, [r2, 0x4]
- movs r0, 0x1
- strb r0, [r2, 0x8]
- strb r0, [r4]
- add r4, sp, 0xC8
- add r0, sp, 0x4
- adds r1, r4, 0
- bl sub_8090E14
- ldrb r0, [r4, 0x2]
- bl IsGummiItem
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0
- beq _0801AC9C
-_0801AC76:
- ldr r4, _0801AC98
- ldr r0, [r4]
- adds r0, 0x54
- adds r1, r7, 0
- bl sub_8013800
- adds r1, r0, 0
- ldr r0, [r4]
-_0801AC86:
- adds r0, 0x88
- ldr r3, [r0]
- str r6, [sp]
-_0801AC8C:
- movs r0, 0x8
- add r2, sp, 0x4
- bl xxx_call_draw_string
- b _0801ACC4
- .align 2, 0
-_0801AC98: .4byte gUnknown_203B224
-_0801AC9C:
- ldr r0, _0801AD28
- add r1, sp, 0x4
- movs r2, 0x50
- bl strncpy
- ldr r4, _0801AD2C
- ldr r0, [r4]
- adds r0, 0x54
- adds r1, r7, 0
- bl sub_8013800
- adds r1, r0, 0
- ldr r2, _0801AD30
- ldr r0, [r4]
- adds r0, 0x88
- ldr r3, [r0]
- str r5, [sp]
- movs r0, 0x8
- bl xxx_format_and_draw
-_0801ACC4:
- mov r0, r8
- bl sub_801AED0
- movs r1, 0x1
- ands r1, r0
- cmp r1, 0
- beq _0801ACFE
- ldr r4, _0801AD2C
- ldr r0, [r4]
- adds r0, 0x54
- adds r1, r7, 0
- bl sub_8013800
- adds r2, r0, 0
- ldr r1, [r4]
- adds r0, r1, 0
- adds r0, 0x88
- ldr r0, [r0]
- adds r1, 0x8C
- ldr r1, [r1]
- movs r4, 0xC
- ldrsh r3, [r1, r4]
- subs r3, 0x2
- lsls r3, 3
- movs r1, 0xA
- str r1, [sp]
- movs r1, 0x8
- bl sub_8007B7C
-_0801ACFE:
- adds r7, 0x1
- ldr r1, _0801AD2C
- ldr r0, [r1]
- adds r0, 0x6E
- movs r2, 0
- ldrsh r0, [r0, r2]
-_0801AD0A:
- adds r2, r1, 0
- cmp r7, r0
- bge _0801AD12
- b _0801AA60
-_0801AD12:
- ldr r0, [r2]
- adds r0, 0x88
- ldr r0, [r0]
- bl sub_80073E0
- add sp, 0xCC
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0801AD28: .4byte gUnknown_202DE58
-_0801AD2C: .4byte gUnknown_203B224
-_0801AD30: .4byte gUnknown_80DB994
- thumb_func_end sub_801A9E0
-
- thumb_func_start sub_801AD34
-sub_801AD34:
- push {r4-r6,lr}
- sub sp, 0x8
- adds r4, r0, 0
- bl sub_8008C54
- adds r0, r4, 0
- bl sub_80073B8
- ldr r2, _0801AD98
- movs r6, 0
- str r6, [sp]
- movs r0, 0x6
- movs r1, 0
- adds r3, r4, 0
- bl xxx_call_draw_string
- bl GetNumberOfFilledInventorySlots
- adds r2, r0, 0
- movs r5, 0x7
- str r5, [sp]
- str r4, [sp, 0x4]
- movs r0, 0x12
- movs r1, 0xD
- movs r3, 0x2
- bl sub_8012BC4
- ldr r2, _0801AD9C
- str r6, [sp]
- movs r0, 0x16
- movs r1, 0xD
- adds r3, r4, 0
- bl xxx_call_draw_string
- str r5, [sp]
- str r4, [sp, 0x4]
- movs r0, 0x2B
- movs r1, 0xD
- movs r2, 0x14
- movs r3, 0x2
- bl sub_8012BC4
- adds r0, r4, 0
- bl sub_80073E0
- add sp, 0x8
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0801AD98: .4byte gUnknown_80DB9A8
-_0801AD9C: .4byte gUnknown_80DB9B0
- thumb_func_end sub_801AD34
-
- thumb_func_start sub_801ADA0
-sub_801ADA0:
- push {r4-r6,lr}
- ldr r5, _0801ADEC
- ldr r1, [r5]
- lsls r0, 2
- adds r1, r0
- ldr r6, [r1]
- lsls r4, r6, 8
- lsrs r0, r4, 24
- bl IsNotMoneyOrUsedTMItem
- lsls r0, 24
- cmp r0, 0
- beq _0801AE12
- lsrs r0, r4, 24
- bl IsThrowableItem
- lsls r0, 24
- cmp r0, 0
- beq _0801ADF4
- lsrs r0, r4, 24
- bl sub_801AE24
- ldr r2, [r5]
- lsrs r1, r4, 24
- lsls r1, 1
- adds r2, 0x50
- adds r2, r1
- lsls r0, 16
- lsrs r0, 16
- ldrh r2, [r2]
- adds r0, r2
- lsrs r1, r6, 8
- lsls r1, 24
- lsrs r1, 24
- adds r0, r1
- ldr r1, _0801ADF0
- b _0801AE0E
- .align 2, 0
-_0801ADEC: .4byte gTeamInventory_203B460
-_0801ADF0: .4byte 0x000003e7
-_0801ADF4:
- lsrs r0, r4, 24
- bl sub_801AE24
- ldr r2, [r5]
- lsrs r1, r4, 24
- lsls r1, 1
- adds r2, 0x50
- adds r2, r1
- lsls r0, 16
- lsrs r0, 16
- ldrh r2, [r2]
- adds r0, r2
- ldr r1, _0801AE18
-_0801AE0E:
- cmp r0, r1
- ble _0801AE1C
-_0801AE12:
- movs r0, 0
- b _0801AE1E
- .align 2, 0
-_0801AE18: .4byte 0x000003e6
-_0801AE1C:
- movs r0, 0x1
-_0801AE1E:
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end sub_801ADA0
-
- thumb_func_start sub_801AE24
-sub_801AE24:
- push {r4-r7,lr}
- adds r7, r0, 0
- movs r5, 0
- movs r6, 0
- b _0801AE74
-_0801AE2E:
- ldr r0, _0801AE64
- ldr r0, [r0]
- lsls r1, r6, 2
- adds r0, 0x4
- adds r0, r1
- ldr r0, [r0]
- cmp r0, 0
- beq _0801AE72
- ldr r0, _0801AE68
- ldr r0, [r0]
- adds r0, r1
- ldr r4, [r0]
- lsls r1, r4, 8
- lsrs r0, r1, 24
- cmp r0, r7
- bne _0801AE72
- bl IsThrowableItem
- lsls r0, 24
- cmp r0, 0
- beq _0801AE6C
- lsrs r0, r4, 8
- lsls r0, 24
- lsrs r0, 24
- adds r0, r5, r0
- b _0801AE6E
- .align 2, 0
-_0801AE64: .4byte gUnknown_203B224
-_0801AE68: .4byte gTeamInventory_203B460
-_0801AE6C:
- adds r0, r5, 0x1
-_0801AE6E:
- lsls r0, 16
- lsrs r5, r0, 16
-_0801AE72:
- adds r6, 0x1
-_0801AE74:
- bl GetNumberOfFilledInventorySlots
- cmp r6, r0
- blt _0801AE2E
- adds r0, r5, 0
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_801AE24
-
- thumb_func_start sub_801AE84
-sub_801AE84:
- push {r4,lr}
- movs r2, 0
- ldr r4, _0801AEA4
- movs r3, 0
-_0801AE8C:
- ldr r0, [r4]
- lsls r1, r2, 2
- adds r0, 0x4
- adds r0, r1
- str r3, [r0]
- adds r2, 0x1
- cmp r2, 0x13
- ble _0801AE8C
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0801AEA4: .4byte gUnknown_203B224
- thumb_func_end sub_801AE84
-
- thumb_func_start sub_801AEA8
-sub_801AEA8:
- push {lr}
- movs r3, 0
- ldr r0, _0801AECC
- ldr r0, [r0]
- adds r1, r0, 0x4
- movs r2, 0x13
-_0801AEB4:
- ldr r0, [r1]
- cmp r0, 0
- beq _0801AEBC
- adds r3, 0x1
-_0801AEBC:
- adds r1, 0x4
- subs r2, 0x1
- cmp r2, 0
- bge _0801AEB4
- adds r0, r3, 0
- pop {r1}
- bx r1
- .align 2, 0
-_0801AECC: .4byte gUnknown_203B224
- thumb_func_end sub_801AEA8
-
- thumb_func_start sub_801AED0
-sub_801AED0:
- ldr r1, _0801AEE0
- ldr r1, [r1]
- lsls r0, 2
- adds r1, 0x4
- adds r1, r0
- ldr r0, [r1]
- bx lr
- .align 2, 0
-_0801AEE0: .4byte gUnknown_203B224
- thumb_func_end sub_801AED0
-
- thumb_func_start sub_801AEE4
-sub_801AEE4:
- ldr r2, _0801AEF4
- ldr r2, [r2]
- lsls r0, 2
- adds r2, 0x4
- adds r2, r0
- str r1, [r2]
- bx lr
- .align 2, 0
-_0801AEF4: .4byte gUnknown_203B224
- thumb_func_end sub_801AEE4
-
- thumb_func_start sub_801AEF8
-sub_801AEF8:
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- sub sp, 0x4
- movs r0, 0
- mov r9, r0
- b _0801AF78
-_0801AF08:
- movs r1, 0x1
- add r1, r9
- mov r8, r1
- mov r7, r8
- b _0801AF6E
-_0801AF12:
- ldr r2, _0801AF90
- ldr r0, [r2]
- mov r1, r9
- lsls r6, r1, 2
- adds r0, r6
- ldrb r0, [r0, 0x2]
- str r2, [sp]
- bl GetItemOrder
- adds r4, r0, 0
- ldr r2, [sp]
- ldr r0, [r2]
- lsls r5, r7, 2
- adds r0, r5
- ldrb r0, [r0, 0x2]
- bl GetItemOrder
- ldr r2, [sp]
- cmp r4, r0
- bgt _0801AF4C
- cmp r4, r0
- bne _0801AF6C
- ldr r0, [r2]
- adds r1, r0, r6
- adds r0, r5
- ldrb r1, [r1, 0x1]
- ldrb r0, [r0, 0x1]
- cmp r1, r0
- bcs _0801AF6C
-_0801AF4C:
- ldr r0, [r2]
- adds r2, r0, r6
- ldr r3, [r2]
- adds r0, r5
- ldr r1, [r0]
- str r1, [r2]
- str r3, [r0]
- ldr r0, _0801AF94
- ldr r0, [r0]
- adds r0, 0x4
- adds r2, r0, r6
- ldr r3, [r2]
- adds r0, r5
- ldr r1, [r0]
- str r1, [r2]
- str r3, [r0]
-_0801AF6C:
- adds r7, 0x1
-_0801AF6E:
- bl GetNumberOfFilledInventorySlots
- cmp r7, r0
- blt _0801AF12
- mov r9, r8
-_0801AF78:
- bl GetNumberOfFilledInventorySlots
- subs r0, 0x1
- cmp r9, r0
- blt _0801AF08
- add sp, 0x4
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0801AF90: .4byte gTeamInventory_203B460
-_0801AF94: .4byte gUnknown_203B224
- thumb_func_end sub_801AEF8
-
- thumb_func_start sub_801AF98
-sub_801AF98:
- ldr r0, _0801AFA0
- ldr r0, [r0]
- bx lr
- .align 2, 0
-_0801AFA0: .4byte gUnknown_203B224
- thumb_func_end sub_801AF98
-
-
- .align 2,0
diff --git a/asm/wonder_mail_2.s b/asm/wonder_mail_2.s
index 0bd5c82..5d28cd2 100644
--- a/asm/wonder_mail_2.s
+++ b/asm/wonder_mail_2.s
@@ -443,7 +443,7 @@ _0802BFE8:
adds r1, r4, 0
movs r2, 0x6
bl sub_803B6B0
- bl sub_808D33C
+ bl GetPlayerPokemonStruct
adds r1, r0, 0
mov r0, r9
bl sub_808DA34
diff --git a/include/item.h b/include/item.h
index e73bafd..3b4f199 100644
--- a/include/item.h
+++ b/include/item.h
@@ -97,6 +97,7 @@ bool8 IsGummiItem(u8);
void xxx_init_unk230_substruct(u8);
bool8 xxx_insert_unk230_80919FC(u8);
struct HeldItem *xxx_get_inv_unk230_at_809185C(u8);
+struct HeldItem* xxx_get_unk250_at_8091A90(u8);
s32 xxx_count_inv_unk230();
u32 xxx_count_non_empty_inv_unk250_8091A48();
void sub_8091BB4(u8);
@@ -105,6 +106,7 @@ void ShiftItemsDownFrom(s32 start);
void MoveToStorage(struct ItemSlot* slot);
void FillInventoryGaps();
bool8 sub_8091274(struct HeldItem* slot);
+bool8 IsNotMoneyOrUsedTMItem(u8 id);
void RestoreHeldItem(struct unkStruct_8094924*, struct HeldItem*);
diff --git a/include/kecleon_items.h b/include/kecleon_items.h
index 7cea99a..11cb0a7 100644
--- a/include/kecleon_items.h
+++ b/include/kecleon_items.h
@@ -41,4 +41,25 @@ struct unkStruct_203B210
struct UnkTextStruct2 unkE8[4];
};
+struct unkStruct_203B224
+{
+ // size: 0xF4
+ u32 unk0;
+
+ u32 unk4[INVENTORY_SIZE];
+ u32 unk54;
+ u8 fill58[0x6C - 0x58];
+ s16 unk6C;
+ s16 unk6E;
+ s16 unk70;
+ s16 unk72;
+ u16 unk74;
+ u16 unk76;
+ u8 fill78[0x88 - 0x78];
+ u32 unk88;
+ struct UnkTextStruct2 *unk8C;
+ struct UnkTextStruct2 unk90[4];
+ u8 unkF0[4];
+};
+
#endif // GUARD_KECLEON_ITEMS_H
diff --git a/ld_script.txt b/ld_script.txt
index d3c9af9..b7f0a75 100755
--- a/ld_script.txt
+++ b/ld_script.txt
@@ -100,7 +100,8 @@ SECTIONS {
src/kecleon_items.o(.text);
asm/kecleon_items.o(.text);
src/kecleon_items_1.o(.text);
- asm/pokemon_square.o(.text);
+ asm/kecleon_items_1.o(.text);
+ src/kecleon_items_2.o(.text);
src/code_801AFA4.o(.text);
asm/code_801AFA4.o(.text);
src/code_801B3C0.o(.text);
@@ -115,7 +116,10 @@ SECTIONS {
src/gulpin_shop.o(.text);
asm/gulpin_shop.o(.text);
src/gulpin_shop_1.o(.text);
+ asm/code_801EE10.o(.text);
+ src/luminous_cave.o(.text);
asm/friend_list_menu.o(.text);
+ src/friend_list_menu.o(.text);
src/friend_area_action_menu.o(.text);
asm/friend_area_action_menu.o(.text);
src/friend_area_action_menu_1.o(.text);
diff --git a/src/debug_menu_mid.c b/src/debug_menu_mid.c
index 31d7bbf..bc67ef6 100644
--- a/src/debug_menu_mid.c
+++ b/src/debug_menu_mid.c
@@ -70,7 +70,6 @@ extern void sub_8012EA4(u32 *, u32);
extern void sub_80073E0(u32);
extern void sub_8013C68(u32 *);
extern void xxx_call_draw_string(s32, u32, const char *, u32, u32);
-extern bool8 IsNotMoneyOrUsedTMItem(u8);
extern u32 sub_801CA08(u32);
extern u8 sub_801CB24();
extern void sub_801CBB8();
diff --git a/src/friend_area.c b/src/friend_area.c
index 4854c23..15a527e 100644
--- a/src/friend_area.c
+++ b/src/friend_area.c
@@ -15,7 +15,7 @@ extern const char gUnknown_81098A4;
extern const char gUnknown_81098AC;
extern void ExpandPlaceholdersBuffer(u8 *buffer, const char *r2, ...);
-extern void sub_8090FEC(u32, u32 *r1, u32);
+extern void sub_8090FEC(u32, u8 *r1, u32);
const struct FriendAreaSettings gFriendAreaSettings[NUM_FRIEND_AREAS] =
{
@@ -605,11 +605,11 @@ void sub_8092558(u8 *buffer, u8 index)
void sub_8092578(u8 *buffer, u8 index, u8 r2)
{
// I think this is when we buy the friend area from wigglytuff
- u32 temp[5];
+ u8 priceBuffer[0x14];
if(r2)
{
- sub_8090FEC(gFriendAreaSettings[index].price, (&temp[0]), 1);
- ExpandPlaceholdersBuffer(buffer, &gUnknown_81098AC, gFriendAreaNames[index], 96, temp);
+ sub_8090FEC(gFriendAreaSettings[index].price, priceBuffer, 1);
+ ExpandPlaceholdersBuffer(buffer, &gUnknown_81098AC, gFriendAreaNames[index], 96, priceBuffer);
}
else
{
diff --git a/src/friend_area_action_menu_1.c b/src/friend_area_action_menu_1.c
index 6856d5f..6c4d40f 100644
--- a/src/friend_area_action_menu_1.c
+++ b/src/friend_area_action_menu_1.c
@@ -10,8 +10,8 @@
extern struct unkStruct_203B2BC *gUnknown_203B2BC;
extern struct TeamInventory *gTeamInventory_203B460;
-u32 sub_801B410();
-void sub_801B450();
+extern u32 sub_801B410();
+extern void sub_801B450();
extern u32 sub_801EF38(u8 r0);
extern void sub_801F214();
@@ -29,9 +29,6 @@ extern u32 sub_801A6E8(u32);
extern s32 sub_80144A4(s32 *);
extern void sub_8027EB8();
extern void sub_808D31C(struct PokemonStruct *);
-u32 sub_8027E18(struct PokemonStruct *);
-bool8 IsNotMoneyOrUsedTMItem(u8 id);
-u8 sub_8027E4C(struct PokemonStruct *r0);
extern u8 sub_80023E4(u32);
extern struct PokemonStruct *sub_808D3F8(void);
extern struct PokemonStruct *sub_808D3BC(void);
@@ -45,6 +42,74 @@ extern void sub_80073E0(u32);
extern u8 gUnknown_202DE58[];
extern u32 sub_801F194(void);
+u32 sub_8027E18(struct PokemonStruct *);
+u8 sub_8027E4C(struct PokemonStruct *r0);
+extern u32 sub_801BF48(void);
+extern void sub_801BF98(void);
+extern u32 sub_80244E4(void);
+extern void sub_802453C(void);
+
+void sub_8027A40(void)
+{
+ switch(sub_80244E4())
+ {
+ case 2:
+ case 3:
+ sub_802453C();
+ SetFriendAreaActionMenuState(2);
+ break;
+ case 0:
+ case 1:
+ break;
+ }
+}
+
+void sub_8027A5C(void)
+{
+ switch(sub_801BF48())
+ {
+ case 2:
+ case 3:
+ sub_801BF98();
+ SetFriendAreaActionMenuState(2);
+ break;
+ case 0:
+ case 1:
+ break;
+ }
+}
+
+static inline bool8 sub_8027A78_sub(void) {
+ if (gUnknown_203B2BC->unk18->unk4.unk4 == 0x44 || gUnknown_203B2BC->unk18->unk4.unk4 == 0x45)
+ return TRUE;
+ else
+ return FALSE;
+}
+
+void sub_8027A78(void)
+{
+ s32 temp;
+ if(sub_80144A4(&temp) == 0)
+ {
+ switch(temp)
+ {
+ case 1:
+ case 3:
+ SetFriendAreaActionMenuState(2);
+ break;
+ case 2:
+ if (sub_8027A78_sub())
+ SetFriendAreaActionMenuState(9);
+ else
+ {
+ sub_8027EB8();
+ sub_808D31C(gUnknown_203B2BC->unk18);
+ }
+ break;
+ }
+ }
+}
+
void sub_8027AE4(void)
{
s32 local_8;
@@ -194,7 +259,7 @@ void sub_8027D40(u32 r0, struct HeldItem *heldItem)
a3.unk0 = 0;
a3.unk4 = 0;
a3.unk8 = 1;
- slot.itemFlags = 1;
+ slot.itemFlags = ITEM_FLAG_EXISTS;
sub_8090E14(gUnknown_202DE58, &slot, &a3);
xxx_format_and_draw(4, 3, gUnknown_80DD958, r0, 0);
sub_80073E0(r0);
diff --git a/src/friend_list_menu.c b/src/friend_list_menu.c
new file mode 100644
index 0000000..9fbf686
--- /dev/null
+++ b/src/friend_list_menu.c
@@ -0,0 +1,446 @@
+#include "global.h"
+#include "item.h"
+#include "pokemon.h"
+#include "text.h"
+#include "team_inventory.h"
+#include "constants/move.h"
+
+struct unkStruct_203B2B8
+{
+ // size: 0x280
+ u32 state;
+ u32 unk4;
+ u8 unk8;
+ s16 pokeSpecies;
+ u32 unkC;
+ struct HeldItem unk10;
+ struct HeldItem unk14;
+ struct PokemonStruct *unk18;
+ u8 fill1C[0x4];
+ u32 unk20;
+ u16 unk24;
+ struct PokemonMove unk28[4];
+ u8 fill48[0x70 - 0x48];
+ u32 unk70;
+ u32 unk74;
+ u32 unk78;
+ u32 unk7C;
+ u8 fill80[0xCC - 0x80];
+ u32 unkCC;
+};
+extern struct unkStruct_203B2B8 *gUnknown_203B2B8;
+extern u8 gAvailablePokemonNames[0x58];
+extern u8 gUnknown_202DEA8[0x58];
+extern u8 gUnknown_202DE58[0x58];
+extern u8 gUnknown_80DD6E0[];
+extern u8 gPartyMenuItemPlaceholder[];
+extern struct UnkTextStruct2 gUnknown_80DD370;
+
+extern u32 sub_8026F04(struct PokemonStruct *);
+extern void GivePokemonItem(s16 index_, struct HeldItem* item);
+extern void sub_8026074(u32);
+extern void PlaySound(u32);
+bool8 sub_8026F38(struct PokemonStruct *r0);
+extern u8 sub_80023E4(u8);
+extern struct PokemonStruct *sub_808D3F8(void);
+extern struct PokemonStruct *sub_808D3BC(void);
+extern void sub_801F214(void);
+extern u32 sub_801F194(void);
+extern u32 sub_801EF38(u32);
+
+
+extern void sub_8008C54(u32);
+extern void sub_80073B8(u32);
+extern void sub_80073E0(u32);
+extern void sub_80922B4(u8 *, const u8 *, u32);
+extern void ExpandPlaceholdersBuffer(u8 *buffer, const u8 *text, ...);
+extern void sub_808D930(u8 *, s16);
+extern s32 sub_8008ED0(u8 *);
+extern void xxx_call_draw_string(s32 x, s32 y, u8 *, u32, u32);
+extern void xxx_format_and_draw(s32, s32, u8 *, ...);
+extern s32 sub_80144A4(s32 *);
+
+extern u32 sub_801F890(void);
+extern void sub_801F8D0(void);
+extern u32 sub_801B410(void);
+extern void sub_801B450(void);
+
+extern void nullsub_104(void);
+extern void sub_801A928(void);
+extern void sub_8099690(u32);
+extern u32 sub_801A6E8(u32);
+extern u8 sub_8012FD8(u32 *);
+extern void sub_8013114(u32 *, s32 *);
+
+extern u32 sub_801A8AC(void);
+extern u32 sub_8022860(void);
+extern void sub_8022908(void);
+
+extern void sub_801BF98(void);
+extern u32 sub_801BF48(void);
+extern void sub_802453C(void);
+extern u32 sub_80244E4(void);
+
+
+void sub_8026A78(void)
+{
+ switch(sub_80244E4())
+ {
+ case 2:
+ case 3:
+ sub_802453C();
+ sub_8026074(2);
+ break;
+ case 0:
+ case 1:
+ break;
+ }
+}
+
+void sub_8026A94(void)
+{
+ switch(sub_801BF48())
+ {
+ case 2:
+ case 3:
+ sub_801BF98();
+ sub_8026074(2);
+ break;
+ case 0:
+ case 1:
+ break;
+ }
+}
+
+
+static inline bool8 sub_8026AB0_sub(void) {
+ if (gUnknown_203B2B8->unk18->unk4.unk4 == 0x44 || gUnknown_203B2B8->unk18->unk4.unk4 == 0x45)
+ return TRUE;
+ else
+ return FALSE;
+}
+
+void sub_8026AB0(void)
+{
+ s32 temp;
+ if(sub_80144A4(&temp) == 0)
+ {
+ switch(temp)
+ {
+ case 1:
+ case 3:
+ sub_8026074(2);
+ break;
+ case 2:
+ if (sub_8026AB0_sub())
+ sub_8026074(0xD);
+ else
+ sub_8026074(8);
+ break;
+ }
+ }
+}
+
+void sub_8026B10(void)
+{
+ s32 temp;
+ if(sub_80144A4(&temp) == 0)
+ {
+ switch(temp)
+ {
+ case 1:
+ case 3:
+ sub_8026074(2);
+ break;
+ case 2:
+ sub_8026074(8);
+ break;
+ }
+ }
+}
+
+
+void sub_8026B48(void)
+{
+ switch(sub_8022860())
+ {
+ case 2:
+ case 3:
+ sub_8022908();
+ sub_8026074(2);
+ break;
+ case 0:
+ case 1:
+ break;
+ }
+}
+
+
+void sub_8026B64(void)
+{
+ switch(sub_801A6E8(1))
+ {
+ case 3:
+ gUnknown_203B2B8->unkC = sub_801A8AC();
+ gUnknown_203B2B8->unk10.itemIndex = gTeamInventory_203B460->teamItems[gUnknown_203B2B8->unkC].itemIndex;
+ gUnknown_203B2B8->unk10.numItems = gTeamInventory_203B460->teamItems[gUnknown_203B2B8->unkC].numItems;
+ sub_8026074(0x14);
+ break;
+ case 4:
+ gUnknown_203B2B8->unkC = sub_801A8AC();
+ gUnknown_203B2B8->unk10.itemIndex = gTeamInventory_203B460->teamItems[gUnknown_203B2B8->unkC].itemIndex;
+ gUnknown_203B2B8->unk10.numItems = gTeamInventory_203B460->teamItems[gUnknown_203B2B8->unkC].numItems;
+ sub_8099690(0);
+ sub_8026074(0x15);
+ break;
+ case 2:
+ sub_801A928();
+ sub_8026074(2);
+ break;
+ case 0:
+ case 1:
+ break;
+ }
+}
+
+void sub_8026C14(void)
+{
+ u32 nextState;
+ struct unkStruct_8090F58 temp;
+ int menuAction;
+ struct ItemSlot slot;
+
+ menuAction = 0;
+ sub_801A6E8(0);
+ if ((sub_8012FD8(&gUnknown_203B2B8->unkCC) == '\0') && (sub_8013114(&gUnknown_203B2B8->unkCC,&menuAction), menuAction != 1)) {
+ gUnknown_203B2B8->unk74 = menuAction;
+ }
+ switch(menuAction)
+ {
+ case 0xb:
+ nextState = 0xF;
+ PlaySound(0x14d);
+ ShiftItemsDownFrom(gUnknown_203B2B8->unkC);
+ FillInventoryGaps();
+ if (gUnknown_203B2B8->unk14.itemIndex != '\0') {
+ sub_8091274(&gUnknown_203B2B8->unk14);
+ nextState = 0x10;
+ }
+ HeldItemToSlot(&slot,&gUnknown_203B2B8->unk10);
+ temp.unk0 = 0;
+ temp.unk4 = 0;
+ temp.unk8 = 1;
+ slot.itemFlags = ITEM_FLAG_EXISTS;
+ sub_8090E14(gUnknown_202DEA8,&slot,&temp);
+ GivePokemonItem(gUnknown_203B2B8->pokeSpecies,&gUnknown_203B2B8->unk10);
+ sub_801A928();
+ nullsub_104();
+ sub_8026074(nextState);
+ break;
+ case 4:
+ sub_8099690(0);
+ sub_8026074(0x15);
+ break;
+ case 1:
+ sub_8026074(0x13);
+ break;
+ }
+}
+
+void sub_8026CF0(void)
+{
+ switch(sub_801B410())
+ {
+ case 2:
+ case 3:
+ sub_801B450();
+ sub_8026074(0x13);
+ break;
+ case 0:
+ case 1:
+ break;
+ }
+}
+
+
+void sub_8026D0C(void)
+{
+ switch(sub_801EF38(1))
+ {
+ case 0:
+ case 1:
+ break;
+ case 3:
+ case 4:
+ gUnknown_203B2B8->unk20 = sub_801F194();
+ gUnknown_203B2B8->unk24 = gUnknown_203B2B8->unk28[gUnknown_203B2B8->unk20].moveID;
+ sub_8026074(0x18);
+ break;
+ case 2:
+ sub_801F214();
+ sub_8026074(2);
+ break;
+ }
+}
+
+void sub_8026D6C(void)
+{
+ switch(sub_801F890())
+ {
+ case 2:
+ case 3:
+ sub_801F8D0();
+ sub_8026074(0x17);
+ break;
+ case 0:
+ case 1:
+ break;
+ }
+}
+
+void sub_8026D88(void)
+{
+ s32 temp;
+ if(sub_80144A4(&temp) == 0)
+ {
+ sub_8026074(gUnknown_203B2B8->unk4);
+ }
+}
+
+void sub_8026DAC(u32 r0, struct HeldItem *r1)
+{
+ struct ItemSlot slot;
+ struct unkStruct_8090F58 temp;
+
+ sub_8008C54(r0);
+ sub_80073B8(r0);
+ HeldItemToSlot(&slot, r1);
+ temp.unk0 = 0;
+ temp.unk4 = 0;
+ temp.unk8 = 1;
+ slot.itemFlags = ITEM_FLAG_EXISTS;
+ sub_8090E14(gUnknown_202DE58, &slot, &temp);
+ xxx_format_and_draw(4, 3, gPartyMenuItemPlaceholder, r0, 0);
+ sub_80073E0(r0);
+}
+
+void sub_8026E08(u32 r0)
+{
+ u8 buffer1[40];
+ u8 buffer[20];
+ s32 x;
+
+ sub_8008C54(r0);
+ sub_80073B8(r0);
+ sub_80922B4(gAvailablePokemonNames, gUnknown_203B2B8->unk18->name, POKEMON_NAME_LENGTH);
+ sub_808D930(buffer, gUnknown_203B2B8->unk18->speciesNum);
+ ExpandPlaceholdersBuffer(buffer1, gUnknown_80DD6E0, gAvailablePokemonNames);
+ x = sub_8008ED0(buffer1);
+ xxx_call_draw_string(((gUnknown_80DD370.unk0c << 3) - x) / 2, 3, buffer1, r0, 0);
+ sub_80073E0(r0);
+}
+
+u32 sub_8026E88(struct PokemonStruct *r0)
+{
+ u8 iVar3;
+ if(r0->unk2 == 0)
+ {
+ iVar3 = (r0->unk4.unk4 == 0x41);
+ if(iVar3 != 0)
+ if(sub_80023E4(0x8) == 0)
+ return 0;
+ }
+ else
+ return 0;
+ return 1;
+}
+
+u32 sub_8026EB8(struct PokemonStruct *r0)
+{
+ u8 iVar3;
+ if(sub_808D3BC() != r0)
+ if(sub_808D3F8() != r0)
+ if(r0->unk2 == 0)
+ {
+ iVar3 = (r0->unk4.unk4 == 0x41);
+ if(iVar3 != 0)
+ {
+ if(sub_80023E4(0x8) != 0)
+ goto check;
+ }
+ else
+ check:
+ if(sub_8026F04(r0) != 3)
+ return 1;
+ }
+ return 0;
+}
+
+
+u32 sub_8026F04(struct PokemonStruct *r0)
+{
+ if(r0->heldItem.itemIndex == 0)
+ return 0;
+ else if(GetNumberOfFilledInventorySlots() < INVENTORY_SIZE)
+ return 1;
+ else if(sub_8026F38(r0))
+ return 2;
+ else
+ return 3;
+}
+
+bool8 sub_8026F38(struct PokemonStruct *r0)
+{
+ if(IsNotMoneyOrUsedTMItem(r0->heldItem.itemIndex))
+ {
+ if(IsThrowableItem(r0->heldItem.itemIndex))
+ {
+ if((gTeamInventory_203B460->teamStorage[r0->heldItem.itemIndex] + r0->heldItem.numItems) > 999)
+ return FALSE;
+ }
+ else
+ {
+ if(gTeamInventory_203B460->teamStorage[r0->heldItem.itemIndex] > 998)
+ return FALSE;
+ }
+ }
+ else
+ return FALSE;
+ return TRUE;
+}
+
+void sub_8026FA4(void)
+{
+ switch(sub_8026F04(gUnknown_203B2B8->unk18))
+ {
+ case 1:
+ PlaySound(0x14d);
+ sub_8091274(&gUnknown_203B2B8->unk14);
+ FillInventoryGaps();
+ gUnknown_203B2B8->unk14.itemIndex = 0;
+ gUnknown_203B2B8->unk14.numItems = 0;
+ GivePokemonItem(gUnknown_203B2B8->pokeSpecies, &gUnknown_203B2B8->unk14);
+ sub_8026074(0xA);
+ break;
+ case 2:
+ PlaySound(0x14d);
+ if(IsThrowableItem(gUnknown_203B2B8->unk14.itemIndex))
+ {
+ gTeamInventory_203B460->teamStorage[gUnknown_203B2B8->unk14.itemIndex] += gUnknown_203B2B8->unk14.numItems;
+ }
+ else
+ {
+ gTeamInventory_203B460->teamStorage[gUnknown_203B2B8->unk14.itemIndex] += 1;
+ }
+
+ gUnknown_203B2B8->unk14.itemIndex = 0;
+ gUnknown_203B2B8->unk14.numItems = 0;
+ GivePokemonItem(gUnknown_203B2B8->pokeSpecies, &gUnknown_203B2B8->unk14);
+ sub_8026074(0xB);
+ break;
+ case 0:
+ default:
+ sub_8026074(0x19);
+ break;
+ }
+}
diff --git a/src/items.c b/src/items.c
index 86174b9..05033e4 100644
--- a/src/items.c
+++ b/src/items.c
@@ -339,7 +339,7 @@ void sub_8090E14(u8* ext_buffer, struct ItemSlot* slot, struct unkStruct_8090F58
ExpandPlaceholdersBuffer(buffer, gUnknown_8109778, gItemParametersData[slot->itemIndex].namePointer);
}
}
- else if (slot->itemIndex == 105) {
+ else if (slot->itemIndex == ITEM_ID_POKE) {
ExpandPlaceholdersBuffer(buffer, gUnknown_810977C, GetMoneyValue(slot));
}
else {
diff --git a/src/kangaskhan_storage_2.c b/src/kangaskhan_storage_2.c
index 3c5099d..9c50251 100644
--- a/src/kangaskhan_storage_2.c
+++ b/src/kangaskhan_storage_2.c
@@ -33,7 +33,6 @@ extern u8 sub_8012FD8(u32 *r0);
extern void sub_8013114(u32 *, s32 *);
extern void sub_801CBB8();
-extern bool8 IsNotMoneyOrUsedTMItem(u8);
extern bool8 sub_801ADA0(u32);
extern void sub_8099690(u32);
extern u32 sub_8013BBC(u32 *);
diff --git a/src/kangaskhan_storage_3.c b/src/kangaskhan_storage_3.c
index f1ce8ce..1c65da6 100644
--- a/src/kangaskhan_storage_3.c
+++ b/src/kangaskhan_storage_3.c
@@ -1,4 +1,5 @@
#include "global.h"
+#include "item.h"
#include "kangaskhan_storage.h"
#include "team_inventory.h"
@@ -24,7 +25,6 @@ extern void sub_801CBB8(void);
extern void sub_8017F10(u32);
extern void sub_8012EA4(u32 *, u32);
-bool8 IsNotMoneyOrUsedTMItem(u8 id);
extern u8 sub_801ADA0(s32);
extern void sub_801A928(void);
extern void sub_8099690(u32);
diff --git a/src/kecleon_items_1.c b/src/kecleon_items_1.c
index 89cd19f..0dea887 100644
--- a/src/kecleon_items_1.c
+++ b/src/kecleon_items_1.c
@@ -8,6 +8,10 @@
#include "team_inventory.h"
extern struct unkStruct_203B210 *gUnknown_203B210;
+extern u8 gUnknown_80DB8E4[];
+extern u8 gUnknown_80DB8EC[];
+extern u8 gUnknown_80DB92C[];
+extern u8 gUnknown_80DB934[];
extern s32 sub_80144A4(s32 *);
void UpdateKecleonStoreState(u32);
@@ -18,11 +22,27 @@ extern void sub_8099690(u32);
extern u8 sub_8012FD8(u32 *);
extern void sub_8013114(u32 *, u32 *);
extern u32 sub_8019EDC(u8);
-extern void sub_801A2A8(u32);
+extern u32 sub_801A2A8(u8);
extern s32 sub_801A8AC(void);
-extern u32 sub_801A6E8(u32);
+extern u32 sub_801A6E8(u8);
extern void sub_801A928(void);
extern void DrawTeamMoneyBox(u32);
+extern void sub_8008C54(u32);
+extern void sub_80073B8(u32);
+extern void sub_80073E0(u32);
+extern s32 sub_8013800(void *, u32);
+extern void ExpandPlaceholdersBuffer(u8 *, u8 *, ...);
+extern void xxx_call_draw_string(s32 x, s32, u8 *, u32, u32);
+extern void sub_801AE84(void);
+extern void sub_8012D08(void *, u32);
+extern void sub_801A998(void);
+extern void sub_801A9E0(void);
+extern void sub_801AEF8(void);
+extern bool8 sub_801ADA0(u32);
+extern u32 sub_801AEA8(void);
+
+
+extern struct unkStruct_203B224 *gUnknown_203B224;
struct unkStruct_203B214
{;
@@ -47,6 +67,7 @@ struct unkStruct_203B214
};
extern struct unkStruct_203B214 *gUnknown_203B214;
+extern struct unkStruct_203B214 *gUnknown_203B21C;
struct ItemSlot_Alt
{
@@ -67,12 +88,22 @@ extern void sub_8013660(void *);
extern struct UnkTextStruct2 gUnknown_80DB8CC;
extern struct UnkTextStruct2 gUnknown_80DB8B4;
+extern struct UnkTextStruct2 gUnknown_80DB8FC;
+extern struct UnkTextStruct2 gUnknown_80DB944;
+extern const struct UnkTextStruct2 gUnknown_80DB914;
extern u16 gUnknown_203B218;
+extern u16 gUnknown_203B220;
+extern void sub_801A430(void);
+extern void sub_801A4A4(void);
extern void sub_8013984(u8 *);
extern void sub_801A064(void);
extern void sub_801A0D8(void);
extern void AddMenuCursorSprite(void *);
extern s32 xxx_count_inv_unk230();
+extern u8 sub_801A37C(void);
+extern u16 gUnknown_203B228;
+extern u16 gUnknown_203B22A;
+extern struct UnkTextStruct2 gUnknown_80DB95C;
void sub_8019B08(void)
{
@@ -368,3 +399,509 @@ void sub_801A010(void)
gUnknown_203B214 = NULL;
}
}
+
+NAKED
+void sub_801A064(void)
+{
+ asm_unified(
+ "\tpush {r4,lr}\n"
+ "\tldr r4, _0801A0D4\n"
+ "\tldr r0, [r4]\n"
+ "\tldrh r1, [r0, 0x20]\n"
+ "\tadds r0, 0x9C\n"
+ "\tmovs r2, 0\n"
+ "\tstrb r1, [r0]\n"
+ "\tldr r0, [r4]\n"
+ "\tldrh r1, [r0, 0x1E]\n"
+ "\tadds r0, 0x9D\n"
+ "\tstrb r1, [r0]\n"
+ "\tldr r0, [r4]\n"
+ "\tadds r0, 0x9E\n"
+ "\tmovs r1, 0xA\n"
+ "\tstrb r1, [r0]\n"
+ "\tldr r0, [r4]\n"
+ "\tadds r0, 0x9F\n"
+ "\tstrb r2, [r0]\n"
+ "\tldr r0, [r4]\n"
+ "\tmovs r1, 0x1A\n"
+ "\tldrsh r0, [r0, r1]\n"
+ "\tmovs r1, 0xC\n"
+ "\tbl sub_80095E4\n"
+ "\tadds r0, 0x2\n"
+ "\tlsls r0, 16\n"
+ "\tldr r2, [r4]\n"
+ "\tldr r3, [r2, 0x34]\n"
+ "\tlsls r1, r3, 1\n"
+ "\tadds r1, r3\n"
+ "\tlsls r1, 3\n"
+ "\tadds r1, r2, r1\n"
+ "\tadds r1, 0x4A\n"
+ "\tasrs r3, r0, 16\n"
+ "\tlsrs r0, 16\n"
+ "\tstrh r0, [r1]\n"
+ "\tldr r1, [r2, 0x34]\n"
+ "\tlsls r0, r1, 1\n"
+ "\tadds r0, r1\n"
+ "\tlsls r0, 3\n"
+ "\tadds r2, r0\n"
+ "\tadds r3, 0x2\n"
+ "\tadds r2, 0x4C\n"
+ "\tstrh r3, [r2]\n"
+ "\tbl ResetUnusedInputStruct\n"
+ "\tldr r0, [r4]\n"
+ "\tadds r0, 0x3C\n"
+ "\tmovs r1, 0x1\n"
+ "\tmovs r2, 0x1\n"
+ "\tbl sub_800641C\n"
+ "\tpop {r4}\n"
+ "\tpop {r0}\n"
+ "\tbx r0\n"
+ "\t.align 2, 0\n"
+ "_0801A0D4: .4byte gUnknown_203B214");
+}
+
+void sub_801A0D8(void)
+{
+ struct HeldItem *heldItem;
+ s32 iVar2;
+ s32 y;
+ s32 iVar4;
+ u8 auStack204 [80];
+ struct unkStruct_8090F58 local_7c;
+ u8 auStack112 [80];
+ struct ItemSlot_Alt slot;
+ u8 temp_calc;
+
+ // Needed for the shifts..
+ u32 index_shift;
+ u32 numItems_shift;
+
+ sub_8008C54(gUnknown_203B214->unk34);
+ sub_80073B8(gUnknown_203B214->unk34);
+ xxx_call_draw_string(gUnknown_203B214->unk1E * 8 + 10,0,gUnknown_80DB8E4,
+ gUnknown_203B214->unk34,0);
+
+ for(iVar4 = 0; iVar4 < gUnknown_203B214->unk1A; iVar4++)
+ {
+ temp_calc = (gUnknown_203B214->unk1E * gUnknown_203B214->unk1C) + iVar4;
+ heldItem = xxx_get_inv_unk230_at_809185C(temp_calc);
+
+ index_shift = heldItem->itemIndex << 16;
+ slot.temp.full_bits = (slot.temp.full_bits & 0xff00ffff) | index_shift;
+
+ numItems_shift = heldItem->numItems << 8;
+ slot.temp.full_bits = (slot.temp.full_bits & 0xffff00ff) | numItems_shift;
+
+ slot.temp.full_bits = (slot.temp.full_bits & 0xffffff00) | (ITEM_FLAG_EXISTS | ITEM_FLAG_FOR_SALE);
+
+ local_7c.unk0 = 1;
+ local_7c.unk4 = 0;
+ local_7c.unk6 = 0x58;
+ local_7c.unk8 = 1;
+ sub_8090E14(auStack204,(struct ItemSlot *)&slot,&local_7c);
+ iVar2 = GetStackBuyPrice((struct ItemSlot *)&slot);
+ if (iVar2 <= gTeamInventory_203B460->teamMoney) {
+ y = sub_8013800(gUnknown_203B214,iVar4);
+ xxx_call_draw_string(8,y,auStack204,gUnknown_203B214->unk34,0);
+ }
+ else {
+ ExpandPlaceholdersBuffer(auStack112,gUnknown_80DB8EC,auStack204);
+ y = sub_8013800(gUnknown_203B214,iVar4);
+ xxx_call_draw_string(8,y,auStack112,gUnknown_203B214->unk34,0);
+ }
+ }
+ sub_80073E0(gUnknown_203B214->unk34);
+}
+
+u32 sub_801A20C(u32 r0)
+{
+ if(xxx_count_non_empty_inv_unk250_8091A48() == 0)
+ {
+ return 0;
+ }
+ else
+ {
+ gUnknown_203B21C = MemoryAlloc(sizeof(struct unkStruct_203B214), 0x8);
+ gUnknown_203B21C->unk34 = r0;
+ gUnknown_203B21C->unk38 = &gUnknown_203B21C->unk3C[gUnknown_203B21C->unk34];
+ sub_8006518(gUnknown_203B21C->unk3C);
+ gUnknown_203B21C->unk3C[gUnknown_203B21C->unk34] = gUnknown_80DB914;
+ gUnknown_203B21C->unk38->unk14 = gUnknown_203B21C->unk9C;
+ ResetUnusedInputStruct();
+ sub_800641C(gUnknown_203B21C->unk3C, 1, 1);
+ sub_8013818(gUnknown_203B21C, xxx_count_non_empty_inv_unk250_8091A48(), 0xA, r0);
+ gUnknown_203B21C->temp.unk18 = gUnknown_203B220;
+ sub_8013984((u8 *)gUnknown_203B21C);
+ sub_801A430();
+ sub_801A4A4();
+ return 1;
+ }
+}
+
+u32 sub_801A2A8(u8 r0)
+{
+ struct ItemSlot_Alt slot;
+ struct HeldItem *return_var;
+ u32 r2;
+ u32 r3;
+
+ if(r0 == 0)
+ {
+ sub_8013660(gUnknown_203B21C);
+ return 0;
+ }
+ else
+ {
+ switch(GetKeyPress(gUnknown_203B21C))
+ {
+ case 2:
+ PlayMenuSoundEffect(1);
+ return 2;
+ case 1:
+ return_var = xxx_get_unk250_at_8091A90(sub_801A37C());
+
+ // NOTE: needs seperate vars to match
+ r2 = return_var->itemIndex << 16;
+ slot.temp.full_bits = (slot.temp.full_bits & 0xff00ffff) | r2;
+ r3 = return_var->numItems << 8;
+ slot.temp.full_bits = (slot.temp.full_bits & 0xffff00ff) | r3;
+
+ if(GetStackBuyPrice((struct ItemSlot *)&slot) > gTeamInventory_203B460->teamMoney)
+ {
+ PlayMenuSoundEffect(2);
+ }
+ else
+ {
+ PlayMenuSoundEffect(0);
+ }
+ return 3;
+ case 4:
+ PlayMenuSoundEffect(4);
+ return 4;
+ default:
+ if(sub_80138B8(gUnknown_203B21C, 1) != 0)
+ {
+ sub_801A430();
+ sub_801A4A4();
+ return 1;
+ }
+ else
+ {
+ return 0;
+ }
+ }
+ }
+}
+
+u8 sub_801A37C(void)
+{
+ return (gUnknown_203B21C->unk1E * gUnknown_203B21C->unk1C) + gUnknown_203B21C->temp.unk18_u8;
+}
+
+void sub_801A398(u32 r0)
+{
+ u8 r0_u8;
+
+ r0_u8 = r0;
+
+ ResetUnusedInputStruct();
+ sub_800641C(gUnknown_203B21C->unk3C, 0, 0);
+ gUnknown_203B21C->unk22 = xxx_count_non_empty_inv_unk250_8091A48();
+ sub_8013984((u8 *)gUnknown_203B21C);
+ sub_801A430();
+ sub_801A4A4();
+ if(r0_u8)
+ AddMenuCursorSprite(gUnknown_203B21C);
+}
+
+void sub_801A3DC(void)
+{
+ if(gUnknown_203B21C != NULL)
+ {
+ gUnknown_203B220 = gUnknown_203B21C->temp.unk18;
+ gUnknown_203B21C->unk3C[gUnknown_203B21C->unk34] = gUnknown_80DB8FC;
+ ResetUnusedInputStruct();
+ sub_800641C(gUnknown_203B21C->unk3C, 1, 1);
+ MemoryFree(gUnknown_203B21C);
+ gUnknown_203B21C = NULL;
+ }
+}
+
+NAKED
+void sub_801A430(void)
+{
+ asm_unified("\tpush {r4,lr}\n"
+ "\tldr r4, _0801A4A0\n"
+ "\tldr r0, [r4]\n"
+ "\tldrh r1, [r0, 0x20]\n"
+ "\tadds r0, 0x9C\n"
+ "\tmovs r2, 0\n"
+ "\tstrb r1, [r0]\n"
+ "\tldr r0, [r4]\n"
+ "\tldrh r1, [r0, 0x1E]\n"
+ "\tadds r0, 0x9D\n"
+ "\tstrb r1, [r0]\n"
+ "\tldr r0, [r4]\n"
+ "\tadds r0, 0x9E\n"
+ "\tmovs r1, 0xA\n"
+ "\tstrb r1, [r0]\n"
+ "\tldr r0, [r4]\n"
+ "\tadds r0, 0x9F\n"
+ "\tstrb r2, [r0]\n"
+ "\tldr r0, [r4]\n"
+ "\tmovs r1, 0x1A\n"
+ "\tldrsh r0, [r0, r1]\n"
+ "\tmovs r1, 0xC\n"
+ "\tbl sub_80095E4\n"
+ "\tadds r0, 0x2\n"
+ "\tlsls r0, 16\n"
+ "\tldr r2, [r4]\n"
+ "\tldr r3, [r2, 0x34]\n"
+ "\tlsls r1, r3, 1\n"
+ "\tadds r1, r3\n"
+ "\tlsls r1, 3\n"
+ "\tadds r1, r2, r1\n"
+ "\tadds r1, 0x4A\n"
+ "\tasrs r3, r0, 16\n"
+ "\tlsrs r0, 16\n"
+ "\tstrh r0, [r1]\n"
+ "\tldr r1, [r2, 0x34]\n"
+ "\tlsls r0, r1, 1\n"
+ "\tadds r0, r1\n"
+ "\tlsls r0, 3\n"
+ "\tadds r2, r0\n"
+ "\tadds r3, 0x2\n"
+ "\tadds r2, 0x4C\n"
+ "\tstrh r3, [r2]\n"
+ "\tbl ResetUnusedInputStruct\n"
+ "\tldr r0, [r4]\n"
+ "\tadds r0, 0x3C\n"
+ "\tmovs r1, 0x1\n"
+ "\tmovs r2, 0x1\n"
+ "\tbl sub_800641C\n"
+ "\tpop {r4}\n"
+ "\tpop {r0}\n"
+ "\tbx r0\n"
+ "\t.align 2, 0\n"
+"_0801A4A0: .4byte gUnknown_203B21C");
+}
+
+void sub_801A4A4(void)
+{
+ struct HeldItem *heldItem;
+ s32 iVar2;
+ s32 y;
+ s32 iVar4;
+ u8 auStack204 [80];
+ struct unkStruct_8090F58 local_7c;
+ u8 auStack112 [80];
+ struct ItemSlot_Alt slot;
+ u8 temp_calc;
+
+ // Needed for the shifts..
+ u32 index_shift;
+ u32 numItems_shift;
+
+ sub_8008C54(gUnknown_203B21C->unk34);
+ sub_80073B8(gUnknown_203B21C->unk34);
+ xxx_call_draw_string(gUnknown_203B21C->unk1E * 8 + 10,0,gUnknown_80DB92C,
+ gUnknown_203B21C->unk34,0);
+
+ for(iVar4 = 0; iVar4 < gUnknown_203B21C->unk1A; iVar4++)
+ {
+ temp_calc = (gUnknown_203B21C->unk1E * gUnknown_203B21C->unk1C) + iVar4;
+ heldItem = xxx_get_unk250_at_8091A90(temp_calc);
+
+ index_shift = heldItem->itemIndex << 16;
+ slot.temp.full_bits = (slot.temp.full_bits & 0xff00ffff) | index_shift;
+
+ numItems_shift = heldItem->numItems << 8;
+ slot.temp.full_bits = (slot.temp.full_bits & 0xffff00ff) | numItems_shift;
+
+ slot.temp.full_bits = (slot.temp.full_bits & 0xffffff00) | (ITEM_FLAG_EXISTS | ITEM_FLAG_FOR_SALE);
+
+ local_7c.unk0 = 1;
+ local_7c.unk4 = 0;
+ local_7c.unk6 = 0x58;
+ local_7c.unk8 = 1;
+ sub_8090E14(auStack204,(struct ItemSlot *)&slot,&local_7c);
+ iVar2 = GetStackBuyPrice((struct ItemSlot *)&slot);
+ if (iVar2 <= gTeamInventory_203B460->teamMoney) {
+ y = sub_8013800(gUnknown_203B21C,iVar4);
+ xxx_call_draw_string(8,y,auStack204,gUnknown_203B21C->unk34,0);
+ }
+ else {
+ ExpandPlaceholdersBuffer(auStack112,gUnknown_80DB934,auStack204);
+ y = sub_8013800(gUnknown_203B21C,iVar4);
+ xxx_call_draw_string(8,y,auStack112,gUnknown_203B21C->unk34,0);
+ }
+ }
+ sub_80073E0(gUnknown_203B21C->unk34);
+}
+
+u32 sub_801A5D8(u32 param_1,int param_2,struct UnkTextStruct2_sub *param_3,u32 param_4)
+{
+
+ if (GetNumberOfFilledInventorySlots() == 0) {
+ return 0;
+ }
+ else {
+ if (gUnknown_203B224 == NULL) {
+ gUnknown_203B224 = MemoryAlloc(sizeof(struct unkStruct_203B224),8);
+ }
+ gUnknown_203B224->unk0 = param_1;
+ FillInventoryGaps();
+ sub_801AE84();
+
+ gUnknown_203B224->unk88 = param_2;
+ gUnknown_203B224->unk8C = &gUnknown_203B224->unk90[param_2];
+
+ sub_8006518(gUnknown_203B224->unk90);
+ gUnknown_203B224->unk90[gUnknown_203B224->unk88] = gUnknown_80DB95C;
+
+ gUnknown_203B224->unk8C->unk14 = gUnknown_203B224->unkF0;
+ if (param_3 != NULL) {
+ gUnknown_203B224->unk90[gUnknown_203B224->unk88].unk08 = *param_3;
+ }
+ sub_8012D08(gUnknown_203B224->unk8C,param_4);
+ sub_8099690(1);
+ ResetUnusedInputStruct();
+ sub_800641C(gUnknown_203B224->unk90,1,1);
+ sub_8013818(&gUnknown_203B224->unk54,GetNumberOfFilledInventorySlots(),param_4,param_2);
+ gUnknown_203B224->unk6C = gUnknown_203B228;
+ gUnknown_203B224->unk72 = gUnknown_203B22A;
+ sub_8013984((u8 *)&gUnknown_203B224->unk54);
+ sub_801A998();
+ sub_801A9E0();
+ return 1;
+ }
+}
+
+u32 sub_801A6E8(u8 param_1)
+{
+ s32 iVar5;
+ struct ItemSlot local_10;
+
+ if (param_1 == '\0') {
+ sub_8013660(&gUnknown_203B224->unk54);
+ return 0;
+ }
+ switch(GetKeyPress(&gUnknown_203B224->unk54)) {
+ case 2:
+ PlayMenuSoundEffect(1);
+ return 2;
+ case 1:
+ switch(gUnknown_203B224->unk0) {
+ case 0:
+ case 1:
+ case 2:
+ if (gUnknown_203B224->unk4[sub_801A8AC()] != 0)
+ PlayMenuSoundEffect(2);
+ else
+ PlayMenuSoundEffect(0);
+ break;
+ case 3:
+ if ((sub_801AEA8() != 0) || (sub_801ADA0(sub_801A8AC()) != '\0'))
+ PlayMenuSoundEffect(0);
+ else
+ PlayMenuSoundEffect(2);
+ break;
+ case 4:
+ local_10 = gTeamInventory_203B460->teamItems[sub_801A8AC()];
+ if (CanSellItem(local_10.itemIndex) && (GetStackSellPrice(&local_10) + gTeamInventory_203B460->teamMoney < 100000))
+ PlayMenuSoundEffect(0);
+ else
+ PlayMenuSoundEffect(2);
+ break;
+ case 5:
+ PlayMenuSoundEffect(0);
+ break;
+ }
+ return 3;
+ case 4:
+ PlayMenuSoundEffect(4);
+ return 4;
+ case 5:
+ case 6:
+ if (gUnknown_203B224->unk0 != 3) goto _0801A87C;
+ iVar5 = sub_801A8AC();
+ if ((gUnknown_203B224->unk4[iVar5] != 0) || (sub_801ADA0(iVar5) != '\0')) {
+ PlayMenuSoundEffect(6);
+ gUnknown_203B224->unk4[iVar5] = gUnknown_203B224->unk4[iVar5] ^ 1;
+ sub_80138B8(&gUnknown_203B224->unk54,0);
+ sub_801A9E0();
+ return 1;
+ }
+ else
+ {
+ PlayMenuSoundEffect(2);
+ goto _0801A87C;
+ }
+ case 3:
+ if (gUnknown_203B224->unk0 != 2) {
+ PlayMenuSoundEffect(5);
+ sub_801AEF8();
+ sub_801A9E0();
+ }
+ // NOTE: fallthrough needed here
+ default:
+_0801A87C:
+ if (sub_80138B8(&gUnknown_203B224->unk54,1) != '\0') {
+ sub_801A998();
+ sub_801A9E0();
+ return 1;
+ }
+ else {
+ return 0;
+ }
+ break;
+ }
+}
+
+s32 sub_801A8AC(void)
+{
+ return (gUnknown_203B224->unk72 * gUnknown_203B224->unk70) + gUnknown_203B224->unk6C;
+}
+
+void sub_801A8D0(u32 r0)
+{
+ u8 r0_u8;
+
+ r0_u8 = r0;
+
+ sub_8099690(1);
+ ResetUnusedInputStruct();
+ sub_800641C(gUnknown_203B224->unk90, 0, 0);
+ FillInventoryGaps();
+ gUnknown_203B224->unk76 = GetNumberOfFilledInventorySlots();
+ sub_8013984((u8 *)&gUnknown_203B224->unk54);
+ sub_801A998();
+ sub_801A9E0();
+ if(r0_u8)
+ AddMenuCursorSprite((u8 *)&gUnknown_203B224->unk54);
+}
+
+void sub_801A928(void)
+{
+ if(gUnknown_203B224 != NULL)
+ {
+ gUnknown_203B228 = gUnknown_203B224->unk6C;
+ gUnknown_203B22A = gUnknown_203B224->unk72;
+ gUnknown_203B224->unk90[gUnknown_203B224->unk88] = gUnknown_80DB944;
+ sub_8099690(0);
+ ResetUnusedInputStruct();
+ sub_800641C(gUnknown_203B224->unk90, 1, 1);
+ MemoryFree(gUnknown_203B224);
+ gUnknown_203B224 = NULL;
+ }
+}
+
+void sub_801A998(void)
+{
+ gUnknown_203B224->unkF0[0] = gUnknown_203B224->unk74;
+ gUnknown_203B224->unkF0[1] = gUnknown_203B224->unk72;
+ gUnknown_203B224->unkF0[2] = 0xB;
+ gUnknown_203B224->unkF0[3] = 0;
+ ResetUnusedInputStruct();
+ sub_800641C(gUnknown_203B224->unk90, 1, 1);
+}
diff --git a/src/kecleon_items_2.c b/src/kecleon_items_2.c
new file mode 100644
index 0000000..e9107c9
--- /dev/null
+++ b/src/kecleon_items_2.c
@@ -0,0 +1,15 @@
+#include "global.h"
+#include "file_system.h"
+#include "memory.h"
+#include "pokemon.h"
+#include "input.h"
+#include "item.h"
+#include "kecleon_items.h"
+#include "team_inventory.h"
+
+extern struct unkStruct_203B224 *gUnknown_203B224;
+
+struct unkStruct_203B224 * sub_801AF98(void)
+{
+ return gUnknown_203B224;
+}
diff --git a/src/load_screen.c b/src/load_screen.c
index a4e260a..ab092cc 100644
--- a/src/load_screen.c
+++ b/src/load_screen.c
@@ -98,7 +98,7 @@ extern void sub_8013114(u32 *, u32 *);
extern void sub_8095240(u32);
extern void sub_80920D8(u8 *);
-extern struct PokemonStruct *sub_808D33C(void);
+extern struct PokemonStruct *GetPlayerPokemonStruct(void);
extern u8 sub_80023E4(u32);
extern u8 *sub_8098FB4();
extern void ExpandPlaceholdersBuffer(u8 *buffer, const u8 *text, ...);
@@ -259,7 +259,7 @@ void DrawLoadScreenText(void)
xxx_call_draw_string(64,0,gLoadScreen->formattedTeamName,0,0);
// Draw Player Name
- playerInfo = sub_808D33C();
+ playerInfo = GetPlayerPokemonStruct();
if (playerInfo == NULL)
sub_80922B4(playerName, gNoNamePlaceholder, POKEMON_NAME_LENGTH);
else
diff --git a/src/luminous_cave.c b/src/luminous_cave.c
new file mode 100644
index 0000000..a50e92c
--- /dev/null
+++ b/src/luminous_cave.c
@@ -0,0 +1,850 @@
+#include "global.h"
+#include "constants/bg_music.h"
+#include "input.h"
+#include "item.h"
+#include "memory.h"
+#include "menu.h"
+#include "pokemon.h"
+#include "random.h"
+#include "text.h"
+#include "team_inventory.h"
+
+struct unkStruct_203B2B0
+{
+ // size: 0x174
+ u8 unk0;
+ u8 fill1[0x3];
+ u8 unk4;
+ u8 unk5;
+ u8 unk6;
+ u16 unk8;
+ /* 0xA */ s16 targetSpecies; // species # of the evolved pokemon (what we are evolving to)
+ struct PokemonStruct *pokeStruct;
+ /* 0x10 */ bool8 pokeRenamed;
+ /* 0x14 */ u32 evoItem1_InvIndex; // inventory index of item
+ /* 0x18 */ u32 evoItem2_InvIndex; // inventory index of item
+ struct ItemSlot unk1C;
+ u32 state;
+ u32 fallbackState;
+ u32 unk28;
+ u32 unk2C;
+ u32 unk30;
+ struct MenuItem unk34[8];
+ u16 unk74[0x8];
+ u32 unk84;
+ u8 fill88[0x104 - 0x88];
+ struct OpenedFile *unk104;
+ u8 *unk108;
+ u16 unk10C;
+ u16 unk10E;
+ u8 unk110;
+ u8 unk111;
+ u8 unk112;
+ struct UnkTextStruct2 unk114[4];
+};
+
+extern struct unkStruct_203B2B0 *gUnknown_203B2B0;
+extern struct UnkTextStruct2 gUnknown_80DCA00;
+extern struct UnkTextStruct2 gUnknown_80DC9E8;
+extern u8 gPlayerName[];
+extern u8 gAvailablePokemonNames[];
+extern u8 gUnknown_202DFE8[];
+extern u8 gLuminousCaveSeekAwakening[];
+extern u8 gLuminousCaveEvolutionInfo[];
+extern u8 gLuminousCaveAskEvolution[];
+extern u8 gLuminousCaveYeShallReturn[];
+extern u8 gLuminousCaveGiveItem[];
+extern u8 gLuminousCaveGiveAnotherItem[];
+extern u8 gLuminousCaveLackWhatIsNeeded[];
+extern u8 gLuminousCaveOnlyOneItem[];
+extern u8 gLuminousCaveLetUsBegin[];
+extern u8 gLuminousCaveChangedAppearance[];
+extern u8 gLuminousCaveEvolved[];
+extern u8 gLuminousCaveGiveName[];
+extern u8 gLuminousCaveComeAlone[];
+extern u8 gLuminousCaveLackLevel[];
+extern u8 gLuminousCaveCantEvolveAnymore[];
+extern u8 gLuminousCaveLackFriendArea[];
+extern u8 gLuminousCaveLackRoom[];
+extern u8 gLuminousCaveLackIQ[];
+extern u8 gLuminousCaveLackItem[];
+extern u8 gLuminousCaveCantEvolveYet[];
+extern u8 gUnknown_80DCA18[];
+extern u8 *gUnknown_80D4970[];
+extern u8 *gUnknown_80D4934[];
+extern u8 gUnknown_80DCA24[];
+extern u8 gUnknown_80DCA2C[];
+
+extern bool8 IsPokemonRenamed(struct PokemonStruct* pokemon);
+extern struct PokemonStruct *GetPlayerPokemonStruct(void);
+extern void UpdateLuminousCaveState(u32);
+
+extern void sub_8024E9C(void);
+extern void sub_8024F00(void);
+extern void sub_8024FD4(void);
+extern void sub_80250EC(void);
+extern void sub_80251CC(void);
+extern void sub_8024F70(void);
+extern void sub_8025058(void);
+extern void sub_802515C(void);
+extern void sub_80251E8(void);
+extern void sub_8025204(void);
+extern void LuminousCave_AdvancetoFallbackState(void);
+extern void sub_8024804(void);
+extern void UpdateLuminousCaveDialogue(void);
+
+extern void sub_80141B4(const char *r0, u32, struct OpenedFile **r1, u32);
+extern void sub_8014248(const char *r0, u32, u32, struct MenuItem *r4, u16 *, u32, u32, struct OpenedFile **r5, u32);
+void xxx_call_fade_out_bgm(u16 speed);
+void sub_801199C(u16 songIndex);
+void ClearItemSlotAt(u32 index);
+void xxx_call_fade_in_new_bgm(u16 songIndex, u16 speed);
+void sub_80977D0(void);
+void PlaySound(u32);
+void sub_8024CFC(void);
+void sub_8025254(void);
+void sub_8024D48(void);
+extern void sub_801A5D8(u32, u32, u32, u32);
+extern void sub_801A8D0(u32);
+extern void sub_801A9E0();
+extern void sub_801B3C0(struct ItemSlot *);
+extern void nullsub_104();
+void sub_8024DBC(void);
+void sub_8024E30(void);
+void sub_801AEE4(u32, u32);
+extern void sub_8012D60(u32 *, struct MenuItem *, u32, u16 *, u32, u32);
+void sub_808F734(struct PokemonStruct *, s16);
+void BoundedCopyStringtoBuffer(u8 *buffer, u8 *string, s32 size);
+u32 sub_801602C(u32 r0, u8 *name);
+void sub_808D9AC(u8 *buffer, struct PokemonStruct *pokemon, s32 colorNum);
+extern s32 sub_80144A4(s32 *);
+extern u32 sub_801A6E8(u32);
+extern s32 sub_801A8AC(void);
+extern void sub_8099690(u32);
+extern void sub_801A928(void);
+extern void PlayMenuSoundEffect(u32);
+extern u8 sub_8012FD8(u32 *);
+extern void sub_8013114(u32 *, u32 *);
+extern u32 sub_801B410(void);
+extern void sub_801B450(void);
+extern u32 sub_8016080(void);
+extern void sub_80160D8(void);
+extern void sub_808F468(struct PokemonStruct *, u8 *, u32);
+
+bool8 LuminousCave_HasOnly1Member(void);
+
+enum
+{
+ LUMINOUS_CAVE_ENTRY,
+ LUMINOUS_CAVE_ASK_EVOLVE,
+ LUMINOUS_CAVE_EVOLVE_INFO,
+ LUMINOUS_CAVE_SHALL_RETURN,
+ LUMINOUS_CAVE_GIVE_ITEM_1 = 5,
+ LUMINOUS_CAVE_GIVE_ITEM_2 = 10,
+ LUMINOUS_CAVE_LACK_WHAT_NEEDED = 0xF,
+ LUMINOUS_CAVE_ONLY_ONE_ITEM = 0x10,
+ LUMINOUS_CAVE_LET_US_BEGIN = 0x11,
+ LUMINOUS_CAVE_CHANGED_APPEARANCE = 0x12,
+ LUMINOUS_CAVE_EVOLVED = 0x13,
+ LUMINOUS_CAVE_PROMPT_NAME = 0x14,
+ LUMINOUS_CAVE_FINISH_NAME = 0x15,
+ LUMINOUS_CAVE_COME_ALONE = 0x16,
+ LUMINOUS_CAVE_LACK_LEVEL = 0x17,
+ LUMINOUS_CAVE_CANT_EVOLVE_ANYMORE = 0x18,
+ LUMINOUS_CAVE_LACK_FRIEND_AREA = 0x19,
+ LUMINOUS_CAVE_LACK_ROOM = 0x1A,
+ LUMINOUS_CAVE_LACK_IQ = 0x1B,
+ LUMINOUS_CAVE_LACK_ITEM = 0x1C,
+ LUMINOUS_CAVE_CANT_EVOLVE_YET = 0x1D,
+};
+
+u32 sub_802465C(void)
+{
+ struct OpenedFile *faceFile;
+
+ ResetUnusedInputStruct();
+ sub_800641C(0,1,1);
+ gUnknown_203B2B0 = MemoryAlloc(sizeof(struct unkStruct_203B2B0),8);
+ gUnknown_203B2B0->unk28 = 0;
+ gUnknown_203B2B0->unk2C = 0;
+ gUnknown_203B2B0->unk30 = 0;
+ gUnknown_203B2B0->pokeStruct = GetPlayerPokemonStruct();
+ gUnknown_203B2B0->pokeRenamed = IsPokemonRenamed(gUnknown_203B2B0->pokeStruct);
+ gUnknown_203B2B0->unk0 = 0;
+ faceFile = GetDialogueSpriteDataPtr(SPECIES_GULPIN);
+ gUnknown_203B2B0->unk104 = faceFile;
+ gUnknown_203B2B0->unk108 = faceFile->data;
+ gUnknown_203B2B0->unk110 = 0;
+ gUnknown_203B2B0->unk111 = 0;
+ gUnknown_203B2B0->unk112 = 0;
+ gUnknown_203B2B0->unk10C = 2;
+ gUnknown_203B2B0->unk10E = 8;
+ UpdateLuminousCaveState(LUMINOUS_CAVE_ENTRY);
+ return 1;
+}
+
+u32 sub_80246F0(void)
+{
+ switch(gUnknown_203B2B0->state) {
+ case LUMINOUS_CAVE_ENTRY:
+ case LUMINOUS_CAVE_ASK_EVOLVE:
+ sub_8024E9C();
+ break;
+ case LUMINOUS_CAVE_GIVE_ITEM_1:
+ sub_8024F00();
+ break;
+ case 6:
+ case 7:
+ sub_8024FD4();
+ break;
+ case 8:
+ sub_80250EC();
+ break;
+ case 9:
+ sub_80251CC();
+ break;
+ case LUMINOUS_CAVE_GIVE_ITEM_2:
+ sub_8024F70();
+ break;
+ case 0xb:
+ case 0xc:
+ sub_8025058();
+ break;
+ case 0xd:
+ sub_802515C();
+ break;
+ case 0xe:
+ sub_80251E8();
+ break;
+ case LUMINOUS_CAVE_FINISH_NAME:
+ sub_8025204();
+ break;
+ case 4:
+ return 3;
+ default:
+ LuminousCave_AdvancetoFallbackState();
+ break;
+ }
+ return 0;
+}
+
+u8 sub_80247B4(void)
+{
+ return gUnknown_203B2B0->unk0;
+}
+
+void CleanLuminousCave(void)
+{
+ if(gUnknown_203B2B0 != NULL)
+ {
+ CloseFile(gUnknown_203B2B0->unk104);
+ MemoryFree(gUnknown_203B2B0);
+ gUnknown_203B2B0 = NULL;
+ }
+}
+
+void UpdateLuminousCaveState(u32 newState)
+{
+ gUnknown_203B2B0->state = newState;
+ sub_8024804();
+ UpdateLuminousCaveDialogue();
+}
+
+void sub_8024804(void)
+{
+ s32 iVar4;
+
+ sub_8006518(gUnknown_203B2B0->unk114);
+ switch(gUnknown_203B2B0->state) {
+ case 8:
+ case 0xD:
+ gUnknown_203B2B0->unk114[2] = gUnknown_80DCA00;
+ break;
+ case LUMINOUS_CAVE_LET_US_BEGIN:
+ case LUMINOUS_CAVE_CHANGED_APPEARANCE:
+ case LUMINOUS_CAVE_EVOLVED:
+ case LUMINOUS_CAVE_COME_ALONE:
+ case LUMINOUS_CAVE_LACK_LEVEL:
+ case LUMINOUS_CAVE_CANT_EVOLVE_ANYMORE:
+ case LUMINOUS_CAVE_LACK_FRIEND_AREA:
+ case LUMINOUS_CAVE_LACK_ROOM:
+ case LUMINOUS_CAVE_LACK_IQ:
+ case LUMINOUS_CAVE_LACK_ITEM:
+ break;
+ default:
+ for(iVar4 = 0; iVar4 < 4; iVar4++)
+ {
+ gUnknown_203B2B0->unk114[iVar4] = gUnknown_80DC9E8;
+ }
+ break;
+ }
+ ResetUnusedInputStruct();
+ sub_800641C(gUnknown_203B2B0->unk114, 1, 1);
+}
+
+void UpdateLuminousCaveDialogue(void)
+{
+ char *monName;
+
+ switch(gUnknown_203B2B0->state) {
+ case LUMINOUS_CAVE_ENTRY:
+ if (LuminousCave_HasOnly1Member()) {
+ gUnknown_203B2B0->unk28 = 3;
+ }
+ else {
+ gUnknown_203B2B0->unk28 = 1;
+ }
+ sub_8024CFC();
+ sub_8014248(gLuminousCaveSeekAwakening,0,gUnknown_203B2B0->unk28,gUnknown_203B2B0->unk34,gUnknown_203B2B0->unk74,4,0,0,5);
+ break;
+ case LUMINOUS_CAVE_ASK_EVOLVE:
+ sub_8024CFC();
+ sub_8014248(gLuminousCaveAskEvolution,0,gUnknown_203B2B0->unk28,gUnknown_203B2B0->unk34,gUnknown_203B2B0->unk74,4,0,0,5);
+ break;
+ case LUMINOUS_CAVE_EVOLVE_INFO:
+ gUnknown_203B2B0->fallbackState = LUMINOUS_CAVE_ASK_EVOLVE;
+ sub_80141B4(gLuminousCaveEvolutionInfo,0,0,0x105);
+ break;
+ case LUMINOUS_CAVE_SHALL_RETURN:
+ gUnknown_203B2B0->fallbackState = 4;
+ xxx_call_fade_in_new_bgm(MUS_LOADING_SCREEN,0x3c);
+ sub_80141B4(gLuminousCaveYeShallReturn,0,0,0x305);
+ break;
+
+ case LUMINOUS_CAVE_GIVE_ITEM_1:
+ sub_8024D48();
+ sub_8014248(gLuminousCaveGiveItem,0,gUnknown_203B2B0->unk2C,gUnknown_203B2B0->unk34,gUnknown_203B2B0->unk74,4,0,0,5);
+ break;
+ case 6:
+ sub_801A5D8(2,3,0,10);
+ break;
+ case 7:
+ sub_801A8D0(1);
+ break;
+ case LUMINOUS_CAVE_GIVE_ITEM_2:
+ sub_8024DBC();
+ sub_8014248(gLuminousCaveGiveAnotherItem,0,gUnknown_203B2B0->unk2C,gUnknown_203B2B0->unk34,gUnknown_203B2B0->unk74,4,0,0,5);
+ break;
+ case 0xb:
+ sub_801A5D8(2,3,0,10);
+ sub_801AEE4(gUnknown_203B2B0->evoItem1_InvIndex,1);
+ sub_801A9E0();
+ break;
+ case 0xc:
+ sub_801A8D0(1);
+ sub_801AEE4(gUnknown_203B2B0->evoItem1_InvIndex,1);
+ sub_801A9E0();
+ break;
+ case 8:
+ case 0xd:
+ sub_801A9E0();
+ sub_8024E30();
+ sub_8012D60(&gUnknown_203B2B0->unk84,gUnknown_203B2B0->unk34,0,gUnknown_203B2B0->unk74,
+ gUnknown_203B2B0->unk30,2);
+ break;
+ case 9:
+ case 0xe:
+ sub_801B3C0(&gUnknown_203B2B0->unk1C);
+ break;
+ case LUMINOUS_CAVE_LACK_WHAT_NEEDED:
+ gUnknown_203B2B0->fallbackState = LUMINOUS_CAVE_GIVE_ITEM_1;
+ sub_80141B4(gLuminousCaveLackWhatIsNeeded,0,0,0x105);
+ break;
+ case LUMINOUS_CAVE_ONLY_ONE_ITEM:
+ gUnknown_203B2B0->fallbackState = LUMINOUS_CAVE_GIVE_ITEM_2;
+ sub_80141B4(gLuminousCaveOnlyOneItem,0,0,0x105);
+ break;
+ case LUMINOUS_CAVE_LET_US_BEGIN:
+ sub_8025254();
+
+ if((gUnknown_203B2B0->unk8 & 1) != 0)
+ gUnknown_203B2B0->fallbackState = LUMINOUS_CAVE_CHANGED_APPEARANCE;
+ else if(gUnknown_203B2B0->unk8 == 4)
+ gUnknown_203B2B0->fallbackState = LUMINOUS_CAVE_CANT_EVOLVE_ANYMORE;
+ else if(gUnknown_203B2B0->unk8 == 2)
+ gUnknown_203B2B0->fallbackState = LUMINOUS_CAVE_LACK_LEVEL;
+ else if(gUnknown_203B2B0->unk8 == 0x10)
+ gUnknown_203B2B0->fallbackState = LUMINOUS_CAVE_LACK_IQ;
+ else if(gUnknown_203B2B0->unk8 == 0x20)
+ gUnknown_203B2B0->fallbackState = LUMINOUS_CAVE_LACK_FRIEND_AREA;
+ else if(gUnknown_203B2B0->unk8 == 0x40)
+ gUnknown_203B2B0->fallbackState = LUMINOUS_CAVE_LACK_ROOM;
+ else if(gUnknown_203B2B0->unk8 == 8)
+ gUnknown_203B2B0->fallbackState = LUMINOUS_CAVE_LACK_ITEM;
+ else
+ gUnknown_203B2B0->fallbackState = LUMINOUS_CAVE_CANT_EVOLVE_YET;
+ xxx_call_fade_out_bgm(0x3c);
+ sub_80141B4(gLuminousCaveLetUsBegin,0,0,0x105);
+ break;
+ case LUMINOUS_CAVE_CHANGED_APPEARANCE:
+ sub_808D9AC(gPlayerName,gUnknown_203B2B0->pokeStruct,5);
+ PlaySound(0x1ff);
+ gUnknown_203B2B0->fallbackState = LUMINOUS_CAVE_EVOLVED;
+ sub_80141B4(gLuminousCaveChangedAppearance,0,0,0x105);
+ break;
+ case LUMINOUS_CAVE_EVOLVED:
+ monName = GetMonSpecies(gUnknown_203B2B0->pokeStruct->speciesNum);
+ strcpy(gAvailablePokemonNames,monName);
+ monName = GetMonSpecies(gUnknown_203B2B0->targetSpecies);
+ strcpy(gAvailablePokemonNames + 0x50,monName);
+ gUnknown_203B2B0->unk0 = 1;
+ sub_80977D0();
+ sub_808F734(gUnknown_203B2B0->pokeStruct,gUnknown_203B2B0->targetSpecies);
+ nullsub_104();
+ gUnknown_203B2B0->pokeStruct = GetPlayerPokemonStruct();
+ if (gUnknown_203B2B0->evoItem1_InvIndex != INVENTORY_SIZE) {
+ ClearItemSlotAt(gUnknown_203B2B0->evoItem1_InvIndex);
+ }
+ if (gUnknown_203B2B0->evoItem2_InvIndex != INVENTORY_SIZE) {
+ ClearItemSlotAt(gUnknown_203B2B0->evoItem2_InvIndex);
+ }
+ FillInventoryGaps();
+ sub_801199C(0x1ff);
+ PlaySound(0xd2);
+ if (gUnknown_203B2B0->pokeRenamed) {
+ BoundedCopyStringtoBuffer(gUnknown_203B2B0->pokeStruct->name,GetMonSpecies(gUnknown_203B2B0->pokeStruct->speciesNum),POKEMON_NAME_LENGTH);
+ }
+ gUnknown_203B2B0->fallbackState = LUMINOUS_CAVE_SHALL_RETURN;
+ sub_80141B4(gLuminousCaveEvolved,0,0,0x105);
+ break;
+ case LUMINOUS_CAVE_COME_ALONE:
+ gUnknown_203B2B0->fallbackState = LUMINOUS_CAVE_SHALL_RETURN;
+ sub_80141B4(gLuminousCaveComeAlone,0,0,0x105);
+ break;
+ case LUMINOUS_CAVE_LACK_LEVEL:
+ gUnknown_203B2B0->fallbackState = LUMINOUS_CAVE_SHALL_RETURN;
+ sub_80141B4(gLuminousCaveLackLevel,0,0,0x105);
+ break;
+ case LUMINOUS_CAVE_CANT_EVOLVE_ANYMORE:
+ gUnknown_203B2B0->fallbackState = LUMINOUS_CAVE_SHALL_RETURN;
+ sub_80141B4(gLuminousCaveCantEvolveAnymore,0,0,0x105);
+ break;
+ case LUMINOUS_CAVE_LACK_FRIEND_AREA:
+ gUnknown_203B2B0->fallbackState = LUMINOUS_CAVE_SHALL_RETURN;
+ sub_80141B4(gLuminousCaveLackFriendArea,0,0,0x105);
+ break;
+ case LUMINOUS_CAVE_LACK_ROOM:
+ gUnknown_203B2B0->fallbackState = LUMINOUS_CAVE_SHALL_RETURN;
+ sub_80141B4(gLuminousCaveLackRoom,0,0,0x105);
+ break;
+ case LUMINOUS_CAVE_LACK_IQ:
+ gUnknown_203B2B0->fallbackState = LUMINOUS_CAVE_SHALL_RETURN;
+ sub_80141B4(gLuminousCaveLackIQ,0,0,0x105);
+ break;
+ case LUMINOUS_CAVE_LACK_ITEM:
+ gUnknown_203B2B0->fallbackState = LUMINOUS_CAVE_SHALL_RETURN;
+ sub_80141B4(gLuminousCaveLackItem,0,0,0x105);
+ break;
+ case LUMINOUS_CAVE_CANT_EVOLVE_YET:
+ gUnknown_203B2B0->fallbackState = LUMINOUS_CAVE_SHALL_RETURN;
+ sub_80141B4(gLuminousCaveCantEvolveYet,0,0,0x105);
+ break;
+ case LUMINOUS_CAVE_PROMPT_NAME:
+ xxx_call_fade_in_new_bgm(8,0x3c);
+ gUnknown_203B2B0->fallbackState = LUMINOUS_CAVE_FINISH_NAME;
+ sub_80141B4(gLuminousCaveGiveName,0,0,0x105);
+ break;
+ case LUMINOUS_CAVE_FINISH_NAME:
+ if (gUnknown_203B2B0->pokeRenamed) {
+ BoundedCopyStringtoBuffer(gUnknown_203B2B0->pokeStruct->name,GetMonSpecies(gUnknown_203B2B0->pokeStruct->speciesNum),POKEMON_NAME_LENGTH);
+ }
+ sub_801602C(0,gUnknown_203B2B0->pokeStruct->name);
+ break;
+ default:
+ break;
+ }
+}
+
+void sub_8024CFC(void)
+{
+ u8 *nullString;
+ struct unkStruct_203B2B0 *preload;
+ u32 defaultAction;
+
+ MemoryFill16(gUnknown_203B2B0->unk74, 0, sizeof(gUnknown_203B2B0->unk74));
+ preload = gUnknown_203B2B0;
+ nullString = NULL;
+ preload->unk34[0].text = gUnknown_80DCA18;
+ preload->unk34[0].menuAction = 3;
+ defaultAction = 1;
+ preload->unk34[1].text = *gUnknown_80D4970;
+ preload->unk34[1].menuAction = 2;
+ preload->unk34[2].text = *gUnknown_80D4934;
+ preload->unk34[2].menuAction = defaultAction;
+ preload->unk34[3].text = nullString;
+ preload->unk34[3].menuAction = defaultAction;
+}
+
+void sub_8024D48(void)
+{
+ u8 *nullString;
+ struct unkStruct_203B2B0 *preload;
+ u32 defaultAction;
+ s32 iVar4;
+ s32 loopMax;
+
+ MemoryFill16(gUnknown_203B2B0->unk74, 0, sizeof(gUnknown_203B2B0->unk74));
+ preload = gUnknown_203B2B0;
+ nullString = NULL;
+ preload->unk34[0].text = gUnknown_80DCA24;
+ preload->unk34[0].menuAction = 4;
+ defaultAction = 1;
+ preload->unk34[1].text = gUnknown_80DCA2C;
+ preload->unk34[1].menuAction = 5;
+ preload->unk34[2].text = *gUnknown_80D4934;
+ preload->unk34[2].menuAction = defaultAction;
+
+ loopMax = 3;
+
+ preload->unk34[3].text = nullString;
+ preload->unk34[3].menuAction = defaultAction;
+
+ for(iVar4 = 0; iVar4 < loopMax; iVar4++)
+ {
+ if(gUnknown_203B2B0->unk74[iVar4] == 0)
+ {
+ if(gUnknown_203B2B0->unk34[iVar4].menuAction == gUnknown_203B2B0->unk2C)
+ return;
+ }
+ }
+
+ gUnknown_203B2B0->unk2C = 4;
+}
+
+void sub_8024DBC(void)
+{
+ u8 *nullString;
+ struct unkStruct_203B2B0 *preload;
+ u32 defaultAction;
+ s32 iVar4;
+ s32 loopMax;
+
+ MemoryFill16(gUnknown_203B2B0->unk74, 0, sizeof(gUnknown_203B2B0->unk74));
+ preload = gUnknown_203B2B0;
+ nullString = NULL;
+ preload->unk34[0].text = gUnknown_80DCA24;
+ preload->unk34[0].menuAction = 4;
+ defaultAction = 1;
+ preload->unk34[1].text = gUnknown_80DCA2C;
+ preload->unk34[1].menuAction = 5;
+ preload->unk34[2].text = *gUnknown_80D4934;
+ preload->unk34[2].menuAction = defaultAction;
+
+ loopMax = 3;
+
+ preload->unk34[3].text = nullString;
+ preload->unk34[3].menuAction = defaultAction;
+
+ for(iVar4 = 0; iVar4 < loopMax; iVar4++)
+ {
+ if(gUnknown_203B2B0->unk74[iVar4] == 0)
+ {
+ if(gUnknown_203B2B0->unk34[iVar4].menuAction == gUnknown_203B2B0->unk2C)
+ return;
+ }
+ }
+
+ gUnknown_203B2B0->unk2C = 4;
+}
+
+void sub_8024E30(void)
+{
+ u8 *nullString;
+ struct unkStruct_203B2B0 *preload;
+ u32 defaultAction;
+ s32 iVar4;
+ s32 loopMax;
+
+ MemoryFill16(gUnknown_203B2B0->unk74, 0, sizeof(gUnknown_203B2B0->unk74));
+ preload = gUnknown_203B2B0;
+ nullString = NULL;
+ preload->unk34[0].text = gUnknown_80DCA2C;
+ preload->unk34[0].menuAction = 5;
+ defaultAction = 1;
+ preload->unk34[1].text = *gUnknown_80D4970;
+ preload->unk34[1].menuAction = 2;
+
+ loopMax = 2;
+
+ preload->unk34[2].text = nullString;
+ preload->unk34[2].menuAction = defaultAction;
+
+ for(iVar4 = 0; iVar4 < loopMax; iVar4++)
+ {
+ if(gUnknown_203B2B0->unk74[iVar4] == 0)
+ {
+ if(gUnknown_203B2B0->unk34[iVar4].menuAction == gUnknown_203B2B0->unk30)
+ return;
+ }
+ }
+
+ gUnknown_203B2B0->unk30 = 5;
+}
+
+void sub_8024E9C(void)
+{
+ s32 menuAction;
+ if(sub_80144A4(&menuAction) == 0)
+ {
+ if(menuAction != 1) gUnknown_203B2B0->unk28 = menuAction;
+ switch(menuAction)
+ {
+ case 3:
+ if(LuminousCave_HasOnly1Member())
+ UpdateLuminousCaveState(LUMINOUS_CAVE_GIVE_ITEM_1);
+ else
+ UpdateLuminousCaveState(LUMINOUS_CAVE_COME_ALONE);
+ break;
+ case 2:
+ UpdateLuminousCaveState(LUMINOUS_CAVE_EVOLVE_INFO);
+ break;
+ case 1:
+ UpdateLuminousCaveState(LUMINOUS_CAVE_SHALL_RETURN);
+ break;
+ }
+ }
+}
+
+void sub_8024F00(void)
+{
+ s32 menuAction;
+ if(sub_80144A4(&menuAction) == 0)
+ {
+ if(menuAction != 1) gUnknown_203B2B0->unk2C = menuAction;
+ switch(menuAction)
+ {
+ case 4:
+ gUnknown_203B2B0->evoItem1_InvIndex = INVENTORY_SIZE;
+ gUnknown_203B2B0->evoItem2_InvIndex = INVENTORY_SIZE;
+ UpdateLuminousCaveState(LUMINOUS_CAVE_LET_US_BEGIN);
+ break;
+ case 5:
+ if(GetNumberOfFilledInventorySlots() == 0)
+ UpdateLuminousCaveState(LUMINOUS_CAVE_LACK_WHAT_NEEDED);
+ else
+ UpdateLuminousCaveState(0x6);
+ break;
+ case 1:
+ UpdateLuminousCaveState(LUMINOUS_CAVE_ASK_EVOLVE);
+ break;
+ }
+ }
+}
+
+void sub_8024F70(void)
+{
+ s32 menuAction;
+ if(sub_80144A4(&menuAction) == 0)
+ {
+ if(menuAction != 1) gUnknown_203B2B0->unk2C = menuAction;
+ switch(menuAction)
+ {
+ case 4:
+ UpdateLuminousCaveState(LUMINOUS_CAVE_LET_US_BEGIN);
+ break;
+ case 5:
+ if(GetNumberOfFilledInventorySlots() < 2)
+ UpdateLuminousCaveState(LUMINOUS_CAVE_ONLY_ONE_ITEM);
+ else
+ UpdateLuminousCaveState(0xB);
+ break;
+ case 1:
+ UpdateLuminousCaveState(LUMINOUS_CAVE_ASK_EVOLVE);
+ break;
+ }
+ }
+}
+
+void sub_8024FD4(void)
+{
+ switch(sub_801A6E8(1))
+ {
+ case 3:
+ gUnknown_203B2B0->evoItem1_InvIndex = sub_801A8AC();
+ gUnknown_203B2B0->evoItem2_InvIndex = INVENTORY_SIZE;
+ gUnknown_203B2B0->unk1C = gTeamInventory_203B460->teamItems[gUnknown_203B2B0->evoItem1_InvIndex];
+ UpdateLuminousCaveState(8);
+ break;
+ case 4:
+ gUnknown_203B2B0->unk1C = gTeamInventory_203B460->teamItems[sub_801A8AC()];
+ sub_8099690(0);
+ UpdateLuminousCaveState(9);
+ break;
+ case 2:
+ sub_801A928();
+ UpdateLuminousCaveState(LUMINOUS_CAVE_GIVE_ITEM_1);
+ break;
+ }
+}
+
+void sub_8025058(void)
+{
+ switch(sub_801A6E8(1))
+ {
+ case 3:
+ if(gUnknown_203B2B0->evoItem1_InvIndex != sub_801A8AC())
+ {
+ gUnknown_203B2B0->evoItem2_InvIndex = sub_801A8AC();
+ gUnknown_203B2B0->unk1C = gTeamInventory_203B460->teamItems[gUnknown_203B2B0->evoItem2_InvIndex];
+ UpdateLuminousCaveState(0xD);
+ }
+ else
+ PlayMenuSoundEffect(2);
+ break;
+ case 4:
+ gUnknown_203B2B0->unk1C = gTeamInventory_203B460->teamItems[sub_801A8AC()];
+ sub_8099690(0);
+ UpdateLuminousCaveState(0xE);
+ break;
+ case 2:
+ sub_801A928();
+ UpdateLuminousCaveState(0xA);
+ break;
+ }
+}
+
+void sub_80250EC(void)
+{
+ s32 menuAction;
+ menuAction = 0;
+ sub_801A6E8(0);
+
+ if(!sub_8012FD8(&gUnknown_203B2B0->unk84))
+ {
+ sub_8013114(&gUnknown_203B2B0->unk84, &menuAction);
+ if(menuAction != 1) gUnknown_203B2B0->unk30 = menuAction;
+ }
+ switch(menuAction)
+ {
+ case 5:
+ sub_801A928();
+ UpdateLuminousCaveState(0xA);
+ break;
+ case 2:
+ sub_8099690(0);
+ UpdateLuminousCaveState(0x9);
+ break;
+ case 1:
+ UpdateLuminousCaveState(0x7);
+ break;
+ }
+}
+
+void sub_802515C(void)
+{
+ s32 menuAction;
+ menuAction = 0;
+ sub_801A6E8(0);
+
+ if(!sub_8012FD8(&gUnknown_203B2B0->unk84))
+ {
+ sub_8013114(&gUnknown_203B2B0->unk84, &menuAction);
+ if(menuAction != 1) gUnknown_203B2B0->unk30 = menuAction;
+ }
+ switch(menuAction)
+ {
+ case 5:
+ sub_801A928();
+ UpdateLuminousCaveState(LUMINOUS_CAVE_LET_US_BEGIN);
+ break;
+ case 2:
+ sub_8099690(0);
+ UpdateLuminousCaveState(0xE);
+ break;
+ case 1:
+ UpdateLuminousCaveState(0xC);
+ break;
+ }
+}
+
+void sub_80251CC(void)
+{
+ switch(sub_801B410())
+ {
+ case 2:
+ case 3:
+ sub_801B450();
+ UpdateLuminousCaveState(0x7);
+ break;
+ case 0:
+ case 1:
+ break;
+ }
+}
+
+void sub_80251E8(void)
+{
+ switch(sub_801B410())
+ {
+ case 2:
+ case 3:
+ sub_801B450();
+ UpdateLuminousCaveState(0xC);
+ break;
+ case 0:
+ case 1:
+ break;
+ }
+}
+
+void sub_8025204(void)
+{
+ switch(sub_8016080())
+ {
+ case 3:
+ sub_80160D8();
+ gUnknown_203B2B0->pokeRenamed = IsPokemonRenamed(gUnknown_203B2B0->pokeStruct);
+ UpdateLuminousCaveState(LUMINOUS_CAVE_SHALL_RETURN);
+ break;
+ default:
+ break;
+ }
+}
+
+void LuminousCave_AdvancetoFallbackState(void)
+{
+ s32 temp;
+ if(sub_80144A4(&temp) == 0)
+ {
+ UpdateLuminousCaveState(gUnknown_203B2B0->fallbackState);
+ }
+}
+
+void sub_8025254(void)
+{
+ if(gUnknown_203B2B0->evoItem1_InvIndex == INVENTORY_SIZE)
+ gUnknown_203B2B0->unk4 = 0;
+ else
+ {
+ gUnknown_203B2B0->unk4 = gTeamInventory_203B460->teamItems[gUnknown_203B2B0->evoItem1_InvIndex].itemIndex;
+ }
+ if(gUnknown_203B2B0->evoItem2_InvIndex == INVENTORY_SIZE)
+ gUnknown_203B2B0->unk5 = 0;
+ else
+ {
+ gUnknown_203B2B0->unk5 = gTeamInventory_203B460->teamItems[gUnknown_203B2B0->evoItem2_InvIndex].itemIndex;
+ }
+
+ gUnknown_203B2B0->unk6 = RandomCapped(0xFF);
+ sub_808F468(gUnknown_203B2B0->pokeStruct, &gUnknown_203B2B0->unk4, 1);
+}
+
+bool8 LuminousCave_HasOnly1Member(void)
+{
+ s32 r3;
+ s32 iVar3; // loop index
+ struct PokemonStruct *preload;
+
+ preload = &gRecruitedPokemonRef->pokemon[0];
+ r3 = 0;
+ for(iVar3 = 0; iVar3 < NUM_SPECIES; iVar3++, preload++)
+ {
+ if((preload->unk0 >> 1) & 1)
+ r3++;
+ }
+
+ if(r3 == 1)
+ return TRUE;
+ else
+ return FALSE;
+}
diff --git a/src/thank_you_wonder_mail.c b/src/thank_you_wonder_mail.c
index 501ab15..74a3ca5 100644
--- a/src/thank_you_wonder_mail.c
+++ b/src/thank_you_wonder_mail.c
@@ -419,7 +419,7 @@ extern void sub_8031E10();
extern void sub_802F2C0();
extern u32 sub_80144A4(s32 *r0);
extern void SetThankYouMailMenuState(u32);
-extern struct PokemonStruct *sub_808D33C(void);
+extern struct PokemonStruct *GetPlayerPokemonStruct(void);
extern void ExpandPlaceholdersBuffer(u8 *buffer, const char *text, ...);
extern void SetMenuItems(void *menu, struct UnkTextStruct2 *, u32, const struct UnkTextStruct2 *, const struct MenuItem *entries, u32, u32, u32);
extern void sub_80922B4(u8 *, u8 *, u32);
@@ -1487,7 +1487,7 @@ void UpdateThankYouMailText(void)
switch(gUnknown_203B2C4->state) {
case 5:
- pokeStruct = sub_808D33C();
+ pokeStruct = GetPlayerPokemonStruct();
sub_80922B4(auStack180,pokeStruct->name, POKEMON_NAME_LENGTH);
ExpandPlaceholdersBuffer(gUnknown_203B2C4->formattedString,gUnknown_80DF250,auStack180);
sub_80141B4(gUnknown_203B2C4->formattedString,0,&gUnknown_203B2C4->faceFile,0x10d);
@@ -1646,7 +1646,7 @@ void UpdateThankYouMailText(void)
sub_8014248(gUnknown_80DF5E4,0,7,gUnknown_80DEE44,0,4,0,&gUnknown_203B2C4->faceFile,0xc);
break;
case THANK_YOU_MAIL_COMMS_CLEANUP:
- pokeStruct2 = sub_808D33C();
+ pokeStruct2 = GetPlayerPokemonStruct();
sub_80922B4(auStack100, pokeStruct2->name, POKEMON_NAME_LENGTH);
ExpandPlaceholdersBuffer(gUnknown_203B2C4->formattedString,gUnknown_80DF63C,auStack100);
sub_80141B4(gUnknown_203B2C4->formattedString,0,&gUnknown_203B2C4->faceFile,0x10d);
diff --git a/src/wonder_mail_3_mid.c b/src/wonder_mail_3_mid.c
index f485246..9c54575 100644
--- a/src/wonder_mail_3_mid.c
+++ b/src/wonder_mail_3_mid.c
@@ -136,7 +136,7 @@ extern void sub_8013114(u32 *, s32 *);
extern u32 sub_802DEE0(void);
extern void sub_802DF24(void);
extern void sub_808DA34(u8 *buffer, struct PokemonStruct *pokemon);
-extern struct PokemonStruct *sub_808D33C(void);
+extern struct PokemonStruct *GetPlayerPokemonStruct(void);
extern void sub_802F6FC(void);
extern void sub_802F718(void);
extern u8 sub_80138B8(u32 *, u32);
@@ -368,7 +368,7 @@ u32 sub_802F204(struct unkStruct_802F204 *r0, u8 r1)
// NOTE: dumb var to get correct ordering
preload = gUnknown_203B310;
strcpy(gUnknown_202E5D8, preload->unk10->clientName);
- sub_808DA34(gAvailablePokemonNames, sub_808D33C());
+ sub_808DA34(gAvailablePokemonNames, GetPlayerPokemonStruct());
gUnknown_203B310->faceFile = GetDialogueSpriteDataPtr(gUnknown_203B310->unk10->unk14);
gUnknown_203B310->faceData = NULL;