summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--asm/code_2.s6
-rw-r--r--asm/code_8009804.s111
-rw-r--r--asm/code_800D090.s2
-rw-r--r--asm/code_8012A18.s14466
-rw-r--r--asm/code_801D760.s158
-rw-r--r--asm/code_8027C84.s4
-rw-r--r--asm/code_802B640.s4
-rw-r--r--asm/code_803B050.s6
-rw-r--r--asm/code_803C1D0.s2
-rw-r--r--asm/code_803D110.s2
-rw-r--r--asm/code_8040094.s2
-rw-r--r--asm/code_8041AD0.s6
-rw-r--r--asm/code_80428A0.s48
-rw-r--r--asm/code_8048480.s4
-rw-r--r--asm/code_80521D0.s8
-rw-r--r--asm/code_8057824.s2101
-rw-r--r--asm/code_808DAB4.s12
-rw-r--r--asm/code_808EAB0.s20
-rw-r--r--asm/code_809017C.s3170
-rw-r--r--asm/code_8092334.s2
-rw-r--r--asm/code_809747C.s2
-rw-r--r--asm/code_8098BDC.s24
-rw-r--r--asm/code_809D148.s2
-rw-r--r--asm/code_80A7714.s10
-rw-r--r--asm/debug_menu.s2
-rw-r--r--asm/debug_menu_1.s4
-rw-r--r--asm/felicity_bank.s571
-rw-r--r--asm/friend_area_1.s4
-rw-r--r--asm/friend_rescue.s2
-rw-r--r--asm/items.s2518
-rw-r--r--asm/jirachi_wish.s16
-rw-r--r--asm/kangaskhan_storage.s685
-rw-r--r--asm/kangaskhan_storage_1.s2675
-rw-r--r--asm/kecleon_items.s1530
-rw-r--r--asm/load_screen.s718
-rw-r--r--asm/main_menu.s76
-rw-r--r--asm/makuhita_dojo.s908
-rw-r--r--asm/other_menus.s2
-rw-r--r--asm/pokemon.s319
-rw-r--r--asm/pokemon_1.s72
-rw-r--r--asm/pokemon_square.s7112
-rw-r--r--asm/unk_menu_203B364.s8
-rw-r--r--asm/wonder_mail.s2
-rw-r--r--asm/wonder_mail_1.s2
-rw-r--r--asm/wonder_mail_3.s4421
-rw-r--r--asm/wonder_mail_4.s1821
-rw-r--r--asm/wonder_mail_5.s571
-rw-r--r--data/data_80B9BB8.s142
-rw-r--r--data/data_80DED44.s274
-rw-r--r--data/data_80E1F30.s71
-rw-r--r--data/data_80E2068.s1092
-rw-r--r--data/data_80E7D40.s653
-rw-r--r--data/data_80F4278.s6
-rw-r--r--data/data_810AE24.s4
-rw-r--r--data/dungeon/Autopilot/floor_id.inc17
-rw-r--r--data/dungeon/Boss9/floor_id.inc18
-rw-r--r--data/dungeon/D50/floor_id.inc6
-rw-r--r--data/dungeon/D54/floor_id.inc48
-rw-r--r--data/dungeon/DesertRegion/floor_id.inc16
-rw-r--r--data/dungeon/GreatCanyon/pokemon_found.inc85
-rw-r--r--data/dungeon/LapisCave/pokemon_found.inc57
-rw-r--r--data/dungeon/MtSteel/pokemon_found.inc53
-rw-r--r--data/dungeon/MtThunder/pokemon_found.inc84
-rw-r--r--data/dungeon/MtThunderPeak/pokemon_found.inc17
-rw-r--r--data/dungeon/PitfallValley/floor_id.inc38
-rw-r--r--data/dungeon/RemainsIsland/floor_id.inc33
-rw-r--r--data/dungeon/RockPath/floor_id.inc8
-rw-r--r--data/dungeon/SilentChasm/pokemon_found.inc84
-rw-r--r--data/dungeon/SinisterWoods/pokemon_found.inc126
-rw-r--r--data/dungeon/SnowPath/floor_id.inc9
-rw-r--r--data/dungeon/SolarCave/floor_id.inc30
-rw-r--r--data/dungeon/SouthernCavern/floor_id.inc76
-rw-r--r--data/dungeon/ThunderwaveCave/pokemon_found.inc28
-rw-r--r--data/dungeon/TinyWoods/pokemon_found.inc18
-rw-r--r--data/dungeon/WyvernHill/floor_id.inc44
-rw-r--r--data/dungeon/banfont.inc15
-rw-r--r--data/dungeon/colvec.inc9
-rw-r--r--data/dungeon/etcfonta.inc10
-rw-r--r--data/dungeon/itempat.inc14
-rw-r--r--data/dungeon/jyochu.inc12
-rw-r--r--data/dungeon/levfont.inc8
-rw-r--r--data/dungeon/pokemon_found.inc511
-rw-r--r--data/dungeon/trappat.inc14
-rw-r--r--data/dungeon/zmappat.inc5
-rw-r--r--data/dungeon_sbin.s139
-rw-r--r--data/text/wonder_mail_4.inc207
-rw-r--r--data/unk_data.s12
-rw-r--r--include/constants/bg_music.h5
-rw-r--r--include/debug_menu.h15
-rw-r--r--include/felicity_bank.h37
-rw-r--r--include/gUnknown_203B460.h28
-rw-r--r--include/gba/defines.h8
-rw-r--r--include/gba/io_reg.h2
-rw-r--r--include/gba/m4a_internal.h140
-rw-r--r--include/input.h23
-rw-r--r--include/item.h58
-rw-r--r--include/kangaskhan_storage.h41
-rw-r--r--include/kecleon_items.h43
-rw-r--r--include/main_menu.h1
-rw-r--r--include/menu.h10
-rw-r--r--include/pokemon.h17
-rw-r--r--include/save.h16
-rw-r--r--include/text.h1
-rw-r--r--include/trade_items_menu.h10
-rwxr-xr-xld_script.txt28
-rw-r--r--src/code_2.c2
-rw-r--r--src/code_800558C.c4
-rw-r--r--src/code_8009804.c58
-rw-r--r--src/code_800C9CC.c36
-rw-r--r--src/code_800D090.c8
-rw-r--r--src/code_80118A4.c6
-rw-r--r--src/code_801D760.c30
-rw-r--r--src/code_8041AD0.c18
-rw-r--r--src/code_80521D0_1.c98
-rw-r--r--src/code_8057824_1.c1145
-rw-r--r--src/code_808DAB4.c4
-rw-r--r--src/cpu.c8
-rw-r--r--src/data/pelipper_help_guide_dialogue.h187
-rw-r--r--src/debug_menu.c75
-rw-r--r--src/debug_menu_mid.c18
-rw-r--r--src/event_flag.c2
-rw-r--r--src/felicity_bank.c144
-rw-r--r--src/felicity_bank_1.c149
-rw-r--r--src/file_system.c7
-rw-r--r--src/friend_area.c20
-rw-r--r--src/friend_area_1.c4
-rw-r--r--src/friend_rescue.c5
-rw-r--r--src/friend_rescue_1.c5
-rw-r--r--src/items.c310
-rw-r--r--src/kangaskhan_storage.c176
-rw-r--r--src/kangaskhan_storage_1.c32
-rw-r--r--src/kecleon_items.c193
-rw-r--r--src/kecleon_items_1.c222
-rw-r--r--src/load_screen.c720
-rw-r--r--src/m4a.c200
-rw-r--r--src/main.c8
-rw-r--r--src/main_menu.c257
-rw-r--r--src/main_menu_1.c103
-rw-r--r--src/main_menu_mid.c208
-rw-r--r--src/makuhita_dojo.c184
-rw-r--r--src/more_input.c22
-rw-r--r--src/music_pre.c69
-rw-r--r--src/other_menus.c104
-rw-r--r--src/personality_test.c4
-rw-r--r--src/pokemon.c8
-rw-r--r--src/pokemon_1.c14
-rw-r--r--src/pokemon_mid.c94
-rw-r--r--src/post_office_guide.c568
-rw-r--r--src/save.c245
-rw-r--r--src/text.c27
-rw-r--r--src/text_util.c2
-rw-r--r--src/trade_items_menu.c106
-rw-r--r--src/unk_menu_203B360.c8
-rw-r--r--src/unk_menu_203B364.c26
-rw-r--r--src/wonder_mail.c16
-rw-r--r--src/wonder_mail_2.c98
-rw-r--r--src/wonder_mail_pre.c4
-rw-r--r--sym_ewram.txt11
-rw-r--r--sym_ewram2.txt4
159 files changed, 26580 insertions, 28283 deletions
diff --git a/asm/code_2.s b/asm/code_2.s
index 30f2b05..27e8270 100644
--- a/asm/code_2.s
+++ b/asm/code_2.s
@@ -199,7 +199,7 @@ _080007CC:
bhi _080007EC
add r0, sp, 0x4
movs r1, 0x1
- bl sub_801203C
+ bl WriteSavetoPak
adds r4, r0, 0
b _080007EE
_080007EC:
@@ -1549,7 +1549,7 @@ _08001298:
bx r0
.align 2, 0
_080012B8: .4byte gUnknown_203B460
-_080012BC: .4byte gUnknown_203B45C
+_080012BC: .4byte gRecruitedPokemonRef
thumb_func_end sub_8001248
thumb_func_start sub_80012C0
@@ -1608,7 +1608,7 @@ _08001306:
bx r0
.align 2, 0
_08001324: .4byte gUnknown_203B460
-_08001328: .4byte gUnknown_203B45C
+_08001328: .4byte gRecruitedPokemonRef
thumb_func_end sub_80012C0
.align 2,0
diff --git a/asm/code_8009804.s b/asm/code_8009804.s
index 809ec8a..ba1173b 100644
--- a/asm/code_8009804.s
+++ b/asm/code_8009804.s
@@ -5,117 +5,6 @@
.text
- thumb_func_start sub_8009908
-sub_8009908:
- push {r4-r7,lr}
- movs r5, 0
- ldr r0, _08009994
- ldr r0, [r0]
- cmp r5, r0
- bge _08009936
- ldr r4, _08009998
- adds r7, r4, 0
- movs r6, 0
-_0800991A:
- ldr r0, [r4]
- adds r1, r7, 0x4
- adds r1, r6, r1
- ldr r1, [r1]
- ldr r2, [r4, 0x8]
- bl CpuCopy
- adds r4, 0xC
- adds r6, 0xC
- adds r5, 0x1
- ldr r0, _08009994
- ldr r0, [r0]
- cmp r5, r0
- blt _0800991A
-_08009936:
- ldr r0, _08009994
- movs r5, 0
- str r5, [r0]
- ldr r4, _0800999C
- ldrb r0, [r4]
- cmp r0, 0
- beq _08009952
- strb r5, [r4]
- ldr r0, _080099A0
- ldr r1, _080099A4
- movs r2, 0x80
- lsls r2, 4
- bl CpuCopy
-_08009952:
- ldrb r0, [r4, 0x1]
- cmp r0, 0
- beq _08009966
- strb r5, [r4, 0x1]
- ldr r0, _080099A8
- ldr r1, _080099AC
- movs r2, 0x80
- lsls r2, 4
- bl CpuCopy
-_08009966:
- ldrb r0, [r4, 0x2]
- cmp r0, 0
- beq _0800997A
- strb r5, [r4, 0x2]
- ldr r0, _080099B0
- ldr r1, _080099B4
- movs r2, 0x80
- lsls r2, 4
- bl CpuCopy
-_0800997A:
- ldrb r0, [r4, 0x3]
- cmp r0, 0
- beq _0800998E
- strb r5, [r4, 0x3]
- ldr r0, _080099B8
- ldr r1, _080099BC
- movs r2, 0x80
- lsls r2, 4
- bl CpuCopy
-_0800998E:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08009994: .4byte gUnknown_202D23C
-_08009998: .4byte gUnknown_202D240
-_0800999C: .4byte gUnknown_202D238
-_080099A0: .4byte 0x06006000
-_080099A4: .4byte gUnknown_202B038
-_080099A8: .4byte 0x06006800
-_080099AC: .4byte gUnknown_202B838
-_080099B0: .4byte 0x06007000
-_080099B4: .4byte gUnknown_202C038
-_080099B8: .4byte 0x06007800
-_080099BC: .4byte gUnknown_202C838
- thumb_func_end sub_8009908
-
- thumb_func_start sub_80099C0
-sub_80099C0:
- push {r4,r5,lr}
- ldr r0, _080099E4
- ldr r4, _080099E8
- movs r5, 0x80
- lsls r5, 4
- adds r1, r4, 0
- adds r2, r5, 0
- bl CpuCopy
- ldr r0, _080099EC
- adds r4, r5
- adds r1, r4, 0
- adds r2, r5, 0
- bl CpuCopy
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080099E4: .4byte 0x06006000
-_080099E8: .4byte gUnknown_202B038
-_080099EC: .4byte 0x06006800
- thumb_func_end sub_80099C0
-
thumb_func_start sub_80099F0
sub_80099F0:
push {lr}
diff --git a/asm/code_800D090.s b/asm/code_800D090.s
index efc28d7..a8eadca 100644
--- a/asm/code_800D090.s
+++ b/asm/code_800D090.s
@@ -1512,7 +1512,7 @@ sub_800DCD0:
ldr r0, [r4, 0x4C]
lsls r0, 16
lsrs r0, 16
- bl sub_8011988
+ bl PlaySound
_0800DCF6:
str r5, [r4, 0x4C]
str r5, [r4, 0x50]
diff --git a/asm/code_8012A18.s b/asm/code_8012A18.s
index e0de48b..57fabe0 100644
--- a/asm/code_8012A18.s
+++ b/asm/code_8012A18.s
@@ -7182,14471 +7182,5 @@ _080162E0:
bx r1
thumb_func_end sub_80162B8
- thumb_func_start DisplayPersianDialogueSprite
-DisplayPersianDialogueSprite:
- push {r4-r6,lr}
- adds r4, r0, 0
- bl ResetUnusedInputStruct
- movs r0, 0
- movs r1, 0x1
- movs r2, 0x1
- bl sub_800641C
- ldr r5, _0801633C
- movs r0, 0x84
- lsls r0, 1
- movs r1, 0x8
- bl MemoryAlloc
- str r0, [r5]
- movs r6, 0
- str r6, [r0, 0x10]
- str r4, [r0]
- ldr r0, _08016340
- movs r1, 0x35
- bl sub_808D8E0
- ldr r4, _08016344
- adds r0, r4, 0
- movs r1, 0x35
- bl sub_808D8E0
- movs r0, 0x35
- 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 _08016348
- adds r0, r5, 0
- adds r0, 0xA4
- str r6, [r0]
- b _08016352
- .align 2, 0
-_0801633C: .4byte gUnknown_203B204
-_08016340: .4byte gUnknown_202E5D8
-_08016344: .4byte gUnknown_202E1C8
-_08016348:
- adds r1, r5, 0
- adds r1, 0xA4
- adds r0, r5, 0
- adds r0, 0x94
- str r0, [r1]
-_08016352:
- movs r0, 0x35
- bl GetDialogueSpriteDataPtr
- ldr r2, _0801639C
- ldr r3, [r2]
- adds r1, r3, 0
- adds r1, 0x94
- str r0, [r1]
- adds r1, 0x4
- ldr r0, [r0, 0x4]
- str r0, [r1]
- adds r0, r3, 0
- adds r0, 0xA0
- movs r1, 0
- strb r1, [r0]
- ldr r0, [r2]
- adds r0, 0xA1
- strb r1, [r0]
- ldr r0, [r2]
- adds r0, 0xA2
- strb r1, [r0]
- ldr r1, [r2]
- adds r2, r1, 0
- adds r2, 0x9C
- movs r0, 0x2
- strh r0, [r2]
- adds r1, 0x9E
- movs r0, 0x8
- strh r0, [r1]
- movs r0, 0
- bl sub_8016444
- movs r0, 0x1
- pop {r4-r6}
- pop {r1}
- bx r1
- .align 2, 0
-_0801639C: .4byte gUnknown_203B204
- thumb_func_end DisplayPersianDialogueSprite
-
- thumb_func_start sub_80163A0
-sub_80163A0:
- push {lr}
- ldr r0, _080163B8
- ldr r0, [r0]
- ldr r0, [r0, 0x4]
- cmp r0, 0xC
- bhi _08016410
- lsls r0, 2
- ldr r1, _080163BC
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080163B8: .4byte gUnknown_203B204
-_080163BC: .4byte _080163C0
- .align 2, 0
-_080163C0:
- .4byte _08016410
- .4byte _080163F4
- .4byte _080163FA
- .4byte _08016410
- .4byte _08016410
- .4byte _08016410
- .4byte _0801640C
- .4byte _08016410
- .4byte _08016400
- .4byte _08016410
- .4byte _08016410
- .4byte _08016406
- .4byte _08016410
-_080163F4:
- bl sub_8016B24
- b _08016414
-_080163FA:
- bl sub_80169BC
- b _08016414
-_08016400:
- bl sub_8016A18
- b _08016414
-_08016406:
- bl sub_8016A8C
- b _08016414
-_0801640C:
- movs r0, 0x3
- b _08016416
-_08016410:
- bl sub_8016B00
-_08016414:
- movs r0, 0
-_08016416:
- pop {r1}
- bx r1
- thumb_func_end sub_80163A0
-
- thumb_func_start sub_801641C
-sub_801641C:
- push {r4,lr}
- ldr r4, _08016440
- ldr r0, [r4]
- cmp r0, 0
- beq _08016438
- adds r0, 0x94
- ldr r0, [r0]
- bl CloseFile
- ldr r0, [r4]
- bl MemoryFree
- movs r0, 0
- str r0, [r4]
-_08016438:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08016440: .4byte gUnknown_203B204
- thumb_func_end sub_801641C
-
- thumb_func_start sub_8016444
-sub_8016444:
- push {lr}
- ldr r1, _08016458
- ldr r1, [r1]
- str r0, [r1, 0x4]
- bl sub_801645C
- bl sub_801653C
- pop {r0}
- bx r0
- .align 2, 0
-_08016458: .4byte gUnknown_203B204
- thumb_func_end sub_8016444
-
- thumb_func_start sub_801645C
-sub_801645C:
- push {r4-r7,lr}
- ldr r4, _0801647C
- ldr r0, [r4]
- adds r0, 0xA8
- bl sub_8006518
- ldr r0, [r4]
- ldr r1, [r0, 0x4]
- cmp r1, 0x8
- beq _080164AC
- cmp r1, 0x8
- bgt _08016480
- cmp r1, 0x2
- beq _08016486
- b _080164F8
- .align 2, 0
-_0801647C: .4byte gUnknown_203B204
-_08016480:
- cmp r1, 0xB
- beq _080164AC
- b _080164F8
-_08016486:
- adds r0, 0xA8
- movs r1, 0x80
- strb r1, [r0]
- ldr r0, [r4]
- adds r0, 0xC0
- strb r1, [r0]
- ldr r0, [r4]
- adds r0, 0xD8
- strb r1, [r0]
- ldr r1, [r4]
- adds r1, 0xF0
- ldr r0, _080164A8
- ldm r0!, {r2,r3,r5}
- stm r1!, {r2,r3,r5}
- ldm r0!, {r2,r6,r7}
- stm r1!, {r2,r6,r7}
- b _080164D8
- .align 2, 0
-_080164A8: .4byte gUnknown_80DB6F4
-_080164AC:
- ldr r4, _080164EC
- ldr r0, [r4]
- adds r0, 0xA8
- movs r1, 0x80
- strb r1, [r0]
- ldr r0, [r4]
- adds r0, 0xC0
- strb r1, [r0]
- ldr r1, [r4]
- adds r1, 0xF0
- ldr r0, _080164F0
- ldm r0!, {r3,r5,r6}
- stm r1!, {r3,r5,r6}
- ldm r0!, {r2,r3,r7}
- stm r1!, {r2,r3,r7}
- ldr r1, [r4]
- adds r1, 0xD8
- ldr r0, _080164F4
- ldm r0!, {r5-r7}
- stm r1!, {r5-r7}
- ldm r0!, {r2,r3,r5}
- stm r1!, {r2,r3,r5}
-_080164D8:
- bl ResetUnusedInputStruct
- ldr r0, [r4]
- adds r0, 0xA8
- movs r1, 0x1
- movs r2, 0
- bl sub_800641C
- b _0801652E
- .align 2, 0
-_080164EC: .4byte gUnknown_203B204
-_080164F0: .4byte gUnknown_80DB6F4
-_080164F4: .4byte gUnknown_80DB70C
-_080164F8:
- ldr r6, _08016534
- mov r12, r6
- ldr r4, _08016538
- movs r3, 0
- movs r2, 0x3
-_08016502:
- mov r7, r12
- ldr r1, [r7]
- adds r1, r3
- adds r1, 0xA8
- 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 _08016502
- bl ResetUnusedInputStruct
- ldr r0, _08016534
- ldr r0, [r0]
- adds r0, 0xA8
- movs r1, 0x1
- movs r2, 0x1
- bl sub_800641C
-_0801652E:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08016534: .4byte gUnknown_203B204
-_08016538: .4byte gUnknown_80DB6DC
- thumb_func_end sub_801645C
-
- thumb_func_start sub_801653C
-sub_801653C:
- push {r4,r5,lr}
- sub sp, 0x14
- ldr r1, _08016558
- ldr r0, [r1]
- ldr r0, [r0, 0x4]
- adds r2, r1, 0
- cmp r0, 0xC
- bls _0801654E
- b _080168EC
-_0801654E:
- lsls r0, 2
- ldr r1, _0801655C
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08016558: .4byte gUnknown_203B204
-_0801655C: .4byte _08016560
- .align 2, 0
-_08016560:
- .4byte _08016594
- .4byte _080165B4
- .4byte _080168B2
- .4byte _08016650
- .4byte _08016668
- .4byte _080166C4
- .4byte _080168EC
- .4byte _080166DC
- .4byte _0801674C
- .4byte _080167A8
- .4byte _080167CC
- .4byte _0801685C
- .4byte _080168C4
-_08016594:
- ldr r2, [r2]
- movs r0, 0x1
- str r0, [r2, 0x8]
- ldr r3, _080165B0
- ldr r1, [r2]
- lsls r0, r1, 4
- subs r0, r1
- lsls r0, 2
- adds r0, r3
- ldr r0, [r0]
- adds r2, 0xA4
- ldr r2, [r2]
- b _08016844
- .align 2, 0
-_080165B0: .4byte gFelicityDialogue
-_080165B4:
- bl sub_8016900
- ldr r0, _080165FC
- ldr r0, [r0]
- mov r12, r0
- movs r0, 0x2
- mov r1, r12
- str r0, [r1, 0x8]
- ldr r0, _08016600
- ldr r0, [r0]
- movs r3, 0x99
- lsls r3, 2
- adds r0, r3
- ldr r4, [r0]
- cmp r4, 0
- bne _08016608
- ldr r2, _08016604
- ldr r1, [r1]
- lsls r0, r1, 4
- subs r0, r1
- lsls r0, 2
- adds r2, 0x4
- adds r0, r2
- ldr r0, [r0]
- mov r5, r12
- ldr r2, [r5, 0x10]
- mov r3, r12
- adds r3, 0x14
- mov r1, r12
- adds r1, 0x54
- str r1, [sp]
- movs r1, 0x4
- str r1, [sp, 0x4]
- str r4, [sp, 0x8]
- b _08016632
- .align 2, 0
-_080165FC: .4byte gUnknown_203B204
-_08016600: .4byte gUnknown_203B460
-_08016604: .4byte gFelicityDialogue
-_08016608:
- ldr r0, _08016648
- str r4, [r0]
- ldr r2, _0801664C
- mov r0, r12
- ldr r1, [r0]
- lsls r0, r1, 4
- subs r0, r1
- lsls r0, 2
- adds r2, 0x8
- adds r0, r2
- ldr r0, [r0]
- mov r1, r12
- ldr r2, [r1, 0x10]
- mov r3, r12
- adds r3, 0x14
- adds r1, 0x54
- str r1, [sp]
- movs r1, 0x4
- str r1, [sp, 0x4]
- movs r1, 0
- str r1, [sp, 0x8]
-_08016632:
- mov r1, r12
- adds r1, 0xA4
- ldr r1, [r1]
- str r1, [sp, 0xC]
- movs r1, 0xC
- str r1, [sp, 0x10]
- movs r1, 0
- bl sub_8014248
- b _080168EC
- .align 2, 0
-_08016648: .4byte gUnknown_202DE30
-_0801664C: .4byte gFelicityDialogue
-_08016650:
- ldr r3, [r2]
- movs r0, 0x1
- str r0, [r3, 0x8]
- ldr r2, _08016664
- ldr r1, [r3]
- lsls r0, r1, 4
- subs r0, r1
- lsls r0, 2
- adds r2, 0x38
- b _0801683C
- .align 2, 0
-_08016664: .4byte gFelicityDialogue
-_08016668:
- ldr r3, [r2]
- movs r0, 0x6
- str r0, [r3, 0x8]
- ldr r0, _08016698
- ldr r0, [r0]
- movs r5, 0x99
- lsls r5, 2
- adds r0, r5
- ldr r1, [r0]
- cmp r1, 0
- bne _080166A0
- ldr r2, _0801669C
- ldr r1, [r3]
- lsls r0, r1, 4
- subs r0, r1
- lsls r0, 2
- adds r2, 0x10
- adds r0, r2
- ldr r0, [r0]
- adds r1, r3, 0
- adds r1, 0xA4
- ldr r2, [r1]
- b _08016844
- .align 2, 0
-_08016698: .4byte gUnknown_203B460
-_0801669C: .4byte gFelicityDialogue
-_080166A0:
- ldr r0, _080166BC
- str r1, [r0]
- ldr r2, _080166C0
- ldr r1, [r3]
- lsls r0, r1, 4
- subs r0, r1
- lsls r0, 2
- adds r2, 0x14
- adds r0, r2
- ldr r0, [r0]
- adds r1, r3, 0
- adds r1, 0xA4
- ldr r2, [r1]
- b _08016844
- .align 2, 0
-_080166BC: .4byte gUnknown_202DE30
-_080166C0: .4byte gFelicityDialogue
-_080166C4:
- ldr r3, [r2]
- movs r0, 0x1
- str r0, [r3, 0x8]
- ldr r2, _080166D8
- ldr r1, [r3]
- lsls r0, r1, 4
- subs r0, r1
- lsls r0, 2
- adds r2, 0xC
- b _0801683C
- .align 2, 0
-_080166D8: .4byte gFelicityDialogue
-_080166DC:
- ldr r0, _08016700
- ldr r1, [r0]
- movs r3, 0x98
- lsls r3, 2
- adds r0, r1, r3
- ldr r0, [r0]
- cmp r0, 0
- bne _08016708
- ldr r3, [r2]
- movs r0, 0x1
- str r0, [r3, 0x8]
- ldr r2, _08016704
- ldr r1, [r3]
- lsls r0, r1, 4
- subs r0, r1
- lsls r0, 2
- adds r2, 0x1C
- b _0801683C
- .align 2, 0
-_08016700: .4byte gUnknown_203B460
-_08016704: .4byte gFelicityDialogue
-_08016708:
- movs r5, 0x99
- lsls r5, 2
- adds r0, r1, r5
- ldr r1, [r0]
- ldr r0, _0801672C
- cmp r1, r0
- ble _08016734
- ldr r3, [r2]
- movs r0, 0x1
- str r0, [r3, 0x8]
- ldr r2, _08016730
- ldr r1, [r3]
- lsls r0, r1, 4
- subs r0, r1
- lsls r0, 2
- adds r2, 0x20
- b _0801683C
- .align 2, 0
-_0801672C: .4byte 0x0098967e
-_08016730: .4byte gFelicityDialogue
-_08016734:
- ldr r3, [r2]
- movs r0, 0x8
- str r0, [r3, 0x8]
- ldr r2, _08016748
- ldr r1, [r3]
- lsls r0, r1, 4
- subs r0, r1
- lsls r0, 2
- adds r2, 0x18
- b _0801683C
- .align 2, 0
-_08016748: .4byte gFelicityDialogue
-_0801674C:
- ldr r4, [r2]
- ldr r0, _080167A0
- ldr r3, [r0]
- movs r1, 0x99
- lsls r1, 2
- adds r0, r3, r1
- ldr r1, [r0]
- ldr r0, _080167A4
- subs r0, r1
- str r0, [r4, 0x70]
- movs r5, 0x98
- lsls r5, 2
- adds r1, r3, r5
- ldr r1, [r1]
- cmp r0, r1
- ble _0801676E
- str r1, [r4, 0x70]
-_0801676E:
- ldr r2, [r2]
- ldr r0, [r2, 0x70]
- str r0, [r2, 0x68]
- movs r0, 0x1
- str r0, [r2, 0x6C]
- movs r0, 0x5
- str r0, [r2, 0x74]
- movs r0, 0x2
- str r0, [r2, 0x78]
- adds r0, r2, 0
- adds r0, 0xD8
- str r0, [r2, 0x7C]
- adds r1, r2, 0
- adds r1, 0x80
- movs r0, 0x50
- str r0, [r1]
- adds r1, 0x4
- movs r0, 0x12
- str r0, [r1]
- adds r0, r2, 0
- adds r0, 0x64
- bl sub_8013AA0
- movs r0, 0x1
- b _080168AE
- .align 2, 0
-_080167A0: .4byte gUnknown_203B460
-_080167A4: .4byte 0x0098967f
-_080167A8:
- ldr r3, [r2]
- movs r0, 0x1
- str r0, [r3, 0x8]
- ldr r1, _080167C4
- ldr r0, [r3, 0xC]
- str r0, [r1]
- ldr r2, _080167C8
- ldr r1, [r3]
- lsls r0, r1, 4
- subs r0, r1
- lsls r0, 2
- adds r2, 0x24
- b _0801683C
- .align 2, 0
-_080167C4: .4byte gUnknown_202DE30
-_080167C8: .4byte gFelicityDialogue
-_080167CC:
- ldr r0, _080167F4
- ldr r3, [r0]
- movs r1, 0x98
- lsls r1, 2
- adds r0, r3, r1
- ldr r1, [r0]
- ldr r0, _080167F8
- cmp r1, r0
- ble _08016800
- ldr r3, [r2]
- movs r0, 0x1
- str r0, [r3, 0x8]
- ldr r2, _080167FC
- ldr r1, [r3]
- lsls r0, r1, 4
- subs r0, r1
- lsls r0, 2
- adds r2, 0x30
- b _0801683C
- .align 2, 0
-_080167F4: .4byte gUnknown_203B460
-_080167F8: .4byte 0x0001869e
-_080167FC: .4byte gFelicityDialogue
-_08016800:
- movs r5, 0x99
- lsls r5, 2
- adds r4, r3, r5
- ldr r0, [r4]
- cmp r0, 0
- bne _08016824
- ldr r3, [r2]
- movs r0, 0x1
- str r0, [r3, 0x8]
- ldr r2, _08016820
- ldr r1, [r3]
- lsls r0, r1, 4
- subs r0, r1
- lsls r0, 2
- adds r2, 0x2C
- b _0801683C
- .align 2, 0
-_08016820: .4byte gFelicityDialogue
-_08016824:
- ldr r3, [r2]
- movs r0, 0xB
- str r0, [r3, 0x8]
- ldr r1, _08016850
- ldr r0, [r4]
- str r0, [r1]
- ldr r2, _08016854
- ldr r1, [r3]
- lsls r0, r1, 4
- subs r0, r1
- lsls r0, 2
- adds r2, 0x28
-_0801683C:
- adds r0, r2
- ldr r0, [r0]
- adds r3, 0xA4
- ldr r2, [r3]
-_08016844:
- ldr r3, _08016858
- movs r1, 0
- bl sub_80141B4
- b _080168EC
- .align 2, 0
-_08016850: .4byte gUnknown_202DE30
-_08016854: .4byte gFelicityDialogue
-_08016858: .4byte 0x0000010d
-_0801685C:
- ldr r4, [r2]
- ldr r0, _080168BC
- ldr r3, [r0]
- movs r1, 0x98
- lsls r1, 2
- adds r0, r3, r1
- ldr r1, [r0]
- ldr r0, _080168C0
- subs r0, r1
- str r0, [r4, 0x70]
- movs r5, 0x99
- lsls r5, 2
- adds r1, r3, r5
- ldr r1, [r1]
- cmp r0, r1
- ble _0801687E
- str r1, [r4, 0x70]
-_0801687E:
- ldr r2, [r2]
- ldr r0, [r2, 0x70]
- str r0, [r2, 0x68]
- movs r0, 0x1
- str r0, [r2, 0x6C]
- movs r0, 0x5
- str r0, [r2, 0x74]
- movs r0, 0x2
- str r0, [r2, 0x78]
- adds r0, r2, 0
- adds r0, 0xD8
- str r0, [r2, 0x7C]
- adds r1, r2, 0
- adds r1, 0x80
- movs r0, 0x50
- str r0, [r1]
- adds r1, 0x4
- movs r0, 0x12
- str r0, [r1]
- adds r0, r2, 0
- adds r0, 0x64
- bl sub_8013AA0
- movs r0, 0
-_080168AE:
- bl sub_8016B48
-_080168B2:
- movs r0, 0x3
- bl CreateFelicityBankShopMenu
- b _080168EC
- .align 2, 0
-_080168BC: .4byte gUnknown_203B460
-_080168C0: .4byte 0x0001869f
-_080168C4:
- ldr r3, [r2]
- movs r0, 0x1
- str r0, [r3, 0x8]
- ldr r1, _080168F4
- ldr r0, [r3, 0xC]
- str r0, [r1]
- ldr r2, _080168F8
- ldr r1, [r3]
- lsls r0, r1, 4
- subs r0, r1
- lsls r0, 2
- adds r2, 0x34
- adds r0, r2
- ldr r0, [r0]
- adds r3, 0xA4
- ldr r2, [r3]
- ldr r3, _080168FC
- movs r1, 0
- bl sub_80141B4
-_080168EC:
- add sp, 0x14
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080168F4: .4byte gUnknown_202DE30
-_080168F8: .4byte gFelicityDialogue
-_080168FC: .4byte 0x0000010d
- thumb_func_end sub_801653C
-
- thumb_func_start sub_8016900
-sub_8016900:
- push {r4-r7,lr}
- ldr r4, _08016980
- ldr r0, [r4]
- adds r0, 0x54
- movs r1, 0
- movs r2, 0x10
- bl MemoryFill16
- ldr r3, [r4]
- movs r2, 0
- ldr r0, _08016984
- ldr r0, [r0]
- str r0, [r3, 0x14]
- movs r0, 0x2
- str r0, [r3, 0x18]
- movs r1, 0x1
- ldr r0, _08016988
- ldr r0, [r0]
- str r0, [r3, 0x1C]
- movs r0, 0x3
- str r0, [r3, 0x20]
- ldr r0, _0801698C
- ldr r0, [r0]
- str r0, [r3, 0x24]
- movs r0, 0x4
- str r0, [r3, 0x28]
- ldr r0, _08016990
- ldr r0, [r0]
- str r0, [r3, 0x2C]
- str r1, [r3, 0x30]
- movs r6, 0x4
- str r2, [r3, 0x34]
- str r1, [r3, 0x38]
- movs r5, 0
- mov r12, r3
- adds r3, 0x18
- mov r2, r12
- adds r2, 0x54
-_0801694C:
- ldrh r0, [r2]
- cmp r0, 0
- bne _0801695C
- ldr r1, [r3]
- mov r7, r12
- ldr r0, [r7, 0x10]
- cmp r1, r0
- beq _080169B6
-_0801695C:
- adds r3, 0x8
- adds r2, 0x2
- adds r5, 0x1
- cmp r5, r6
- blt _0801694C
- movs r5, 0
- cmp r5, r6
- bge _080169B6
- ldr r1, [r4]
- adds r0, r1, 0
- adds r0, 0x54
- ldrh r0, [r0]
- cmp r0, 0
- bne _08016994
- ldr r0, [r1, 0x18]
- str r0, [r1, 0x10]
- b _080169B6
- .align 2, 0
-_08016980: .4byte gUnknown_203B204
-_08016984: .4byte gUnknown_80D4958
-_08016988: .4byte gUnknown_80D4964
-_0801698C: .4byte gUnknown_80D4970
-_08016990: .4byte gUnknown_80D4934
-_08016994:
- adds r5, 0x1
- cmp r5, r6
- bge _080169B6
- ldr r2, [r4]
- lsls r0, r5, 1
- adds r1, r2, 0
- adds r1, 0x54
- adds r1, r0
- ldrh r0, [r1]
- cmp r0, 0
- bne _08016994
- lsls r0, r5, 3
- adds r1, r2, 0
- adds r1, 0x18
- adds r1, r0
- ldr r0, [r1]
- str r0, [r2, 0x10]
-_080169B6:
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_8016900
-
- thumb_func_start sub_80169BC
-sub_80169BC:
- push {lr}
- sub sp, 0x4
- mov r0, sp
- bl sub_80144A4
- cmp r0, 0
- bne _08016A10
- ldr r0, _080169E4
- ldr r1, [r0]
- ldr r0, [sp]
- str r0, [r1, 0x10]
- ldr r0, [sp]
- cmp r0, 0x2
- beq _080169F2
- cmp r0, 0x2
- bgt _080169E8
- cmp r0, 0x1
- beq _08016A0A
- b _08016A10
- .align 2, 0
-_080169E4: .4byte gUnknown_203B204
-_080169E8:
- cmp r0, 0x3
- beq _080169FA
- cmp r0, 0x4
- beq _08016A02
- b _08016A10
-_080169F2:
- movs r0, 0x7
- bl sub_8016444
- b _08016A10
-_080169FA:
- movs r0, 0xA
- bl sub_8016444
- b _08016A10
-_08016A02:
- movs r0, 0x3
- bl sub_8016444
- b _08016A10
-_08016A0A:
- movs r0, 0x4
- bl sub_8016444
-_08016A10:
- add sp, 0x4
- pop {r0}
- bx r0
- thumb_func_end sub_80169BC
-
- thumb_func_start sub_8016A18
-sub_8016A18:
- push {r4,lr}
- ldr r4, _08016A38
- ldr r0, [r4]
- adds r0, 0x64
- bl sub_8013BBC
- cmp r0, 0x1
- beq _08016A3C
- cmp r0, 0x1
- bcc _08016A86
- cmp r0, 0x2
- beq _08016A80
- cmp r0, 0x3
- beq _08016A44
- b _08016A86
- .align 2, 0
-_08016A38: .4byte gUnknown_203B204
-_08016A3C:
- movs r0, 0x1
- bl sub_8016B48
- b _08016A86
-_08016A44:
- ldr r3, [r4]
- ldr r2, [r3, 0x64]
- str r2, [r3, 0xC]
- ldr r0, _08016A7C
- ldr r0, [r0]
- mov r12, r0
- movs r1, 0x99
- lsls r1, 2
- add r1, r12
- ldr r0, [r1]
- adds r0, r2
- str r0, [r1]
- movs r2, 0x98
- lsls r2, 2
- add r2, r12
- ldr r0, [r2]
- ldr r1, [r3, 0xC]
- subs r0, r1
- str r0, [r2]
- movs r0, 0xA6
- lsls r0, 1
- bl sub_8011988
- movs r0, 0x9
- bl sub_8016444
- b _08016A86
- .align 2, 0
-_08016A7C: .4byte gUnknown_203B460
-_08016A80:
- movs r0, 0x5
- bl sub_8016444
-_08016A86:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_8016A18
-
- thumb_func_start sub_8016A8C
-sub_8016A8C:
- push {r4,lr}
- ldr r4, _08016AAC
- ldr r0, [r4]
- adds r0, 0x64
- bl sub_8013BBC
- cmp r0, 0x1
- beq _08016AB0
- cmp r0, 0x1
- bcc _08016AFA
- cmp r0, 0x2
- beq _08016AF4
- cmp r0, 0x3
- beq _08016AB8
- b _08016AFA
- .align 2, 0
-_08016AAC: .4byte gUnknown_203B204
-_08016AB0:
- movs r0, 0
- bl sub_8016B48
- b _08016AFA
-_08016AB8:
- ldr r3, [r4]
- ldr r2, [r3, 0x64]
- str r2, [r3, 0xC]
- ldr r0, _08016AF0
- ldr r0, [r0]
- mov r12, r0
- movs r1, 0x98
- lsls r1, 2
- add r1, r12
- ldr r0, [r1]
- adds r0, r2
- str r0, [r1]
- movs r2, 0x99
- lsls r2, 2
- add r2, r12
- ldr r0, [r2]
- ldr r1, [r3, 0xC]
- subs r0, r1
- str r0, [r2]
- movs r0, 0xA6
- lsls r0, 1
- bl sub_8011988
- movs r0, 0xC
- bl sub_8016444
- b _08016AFA
- .align 2, 0
-_08016AF0: .4byte gUnknown_203B460
-_08016AF4:
- movs r0, 0x5
- bl sub_8016444
-_08016AFA:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_8016A8C
-
- thumb_func_start sub_8016B00
-sub_8016B00:
- push {lr}
- sub sp, 0x4
- mov r0, sp
- bl sub_80144A4
- cmp r0, 0
- bne _08016B18
- ldr r0, _08016B20
- ldr r0, [r0]
- ldr r0, [r0, 0x8]
- bl sub_8016444
-_08016B18:
- add sp, 0x4
- pop {r0}
- bx r0
- .align 2, 0
-_08016B20: .4byte gUnknown_203B204
- thumb_func_end sub_8016B00
-
- thumb_func_start sub_8016B24
-sub_8016B24:
- push {lr}
- sub sp, 0x4
- mov r0, sp
- bl sub_80144A4
- cmp r0, 0x4
- bne _08016B3C
- ldr r0, _08016B44
- ldr r0, [r0]
- ldr r0, [r0, 0x8]
- bl sub_8016444
-_08016B3C:
- add sp, 0x4
- pop {r0}
- bx r0
- .align 2, 0
-_08016B44: .4byte gUnknown_203B204
- thumb_func_end sub_8016B24
-
- thumb_func_start sub_8016B48
-sub_8016B48:
- push {r4,r5,lr}
- sub sp, 0x4
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r4, _08016B7C
- ldr r0, [r4]
- ldr r0, [r0, 0x78]
- bl sub_8008C54
- ldr r0, [r4]
- ldr r0, [r0, 0x78]
- bl sub_80073B8
- cmp r5, 0
- beq _08016B84
- ldr r0, _08016B80
- ldr r2, [r0]
- ldr r0, [r4]
- ldr r3, [r0, 0x78]
- movs r0, 0
- str r0, [sp]
- movs r0, 0xC
- movs r1, 0
- bl xxx_call_draw_string
- b _08016B96
- .align 2, 0
-_08016B7C: .4byte gUnknown_203B204
-_08016B80: .4byte gFelicityDeposit
-_08016B84:
- ldr r0, _08016BB0
- ldr r2, [r0]
- ldr r0, [r4]
- ldr r3, [r0, 0x78]
- str r5, [sp]
- movs r0, 0xC
- movs r1, 0
- bl xxx_call_draw_string
-_08016B96:
- ldr r4, _08016BB4
- ldr r0, [r4]
- adds r0, 0x64
- bl sub_8013C68
- ldr r0, [r4]
- ldr r0, [r0, 0x78]
- bl sub_80073E0
- add sp, 0x4
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08016BB0: .4byte gFelicityWithdraw
-_08016BB4: .4byte gUnknown_203B204
- thumb_func_end sub_8016B48
-
- thumb_func_start CreateFelicityBankShopMenu
-CreateFelicityBankShopMenu:
- push {r4-r6,lr}
- mov r6, r8
- push {r6}
- sub sp, 0x8
- adds r4, r0, 0
- bl sub_8008C54
- adds r0, r4, 0
- bl sub_80073B8
- ldr r2, _08016C34
- movs r0, 0
- mov r8, r0
- str r0, [sp]
- movs r0, 0x10
- movs r1, 0x4
- adds r3, r4, 0
- bl xxx_call_draw_string
- ldr r6, _08016C38
- ldr r0, [r6]
- movs r1, 0x98
- lsls r1, 2
- adds r0, r1
- ldr r2, [r0]
- movs r5, 0x5
- str r5, [sp]
- str r4, [sp, 0x4]
- movs r0, 0x60
- movs r1, 0x4
- movs r3, 0x5
- bl sub_8012BC4
- ldr r2, _08016C3C
- mov r0, r8
- str r0, [sp]
- movs r0, 0x70
- movs r1, 0x4
- adds r3, r4, 0
- bl xxx_call_draw_string
- ldr r0, [r6]
- movs r1, 0x99
- lsls r1, 2
- adds r0, r1
- ldr r2, [r0]
- str r5, [sp]
- str r4, [sp, 0x4]
- movs r0, 0xC8
- movs r1, 0x4
- movs r3, 0x7
- bl sub_8012BC4
- adds r0, r4, 0
- bl sub_80073E0
- add sp, 0x8
- pop {r3}
- mov r8, r3
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08016C34: .4byte gFelicityMoney
-_08016C38: .4byte gUnknown_203B460
-_08016C3C: .4byte gFelicitySavings
- thumb_func_end CreateFelicityBankShopMenu
-
- thumb_func_start sub_8016C40
-sub_8016C40:
- push {r4,lr}
- sub sp, 0x8
- adds r4, r0, 0
- bl sub_8008C54
- adds r0, r4, 0
- bl sub_80073B8
- ldr r2, _08016C8C
- movs r0, 0
- str r0, [sp]
- movs r0, 0x6
- movs r1, 0
- adds r3, r4, 0
- bl xxx_call_draw_string
- ldr r0, _08016C90
- ldr r0, [r0]
- movs r1, 0x98
- lsls r1, 2
- adds r0, r1
- ldr r2, [r0]
- movs r0, 0x5
- str r0, [sp]
- str r4, [sp, 0x4]
- movs r0, 0x2A
- movs r1, 0xC
- movs r3, 0x5
- bl sub_8012BC4
- adds r0, r4, 0
- bl sub_80073E0
- add sp, 0x8
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08016C8C: .4byte gUnknown_80DB738
-_08016C90: .4byte gUnknown_203B460
- thumb_func_end sub_8016C40
-
- thumb_func_start DisplayKangaskhanDialogueSprite
-DisplayKangaskhanDialogueSprite:
- push {r4-r6,lr}
- adds r4, r0, 0
- bl ResetUnusedInputStruct
- movs r0, 0
- movs r1, 0x1
- movs r2, 0x1
- bl sub_800641C
- ldr r5, _08016CF0
- movs r0, 0xA6
- lsls r0, 1
- movs r1, 0x8
- bl MemoryAlloc
- str r0, [r5]
- movs r6, 0
- str r6, [r0, 0x18]
- str r6, [r0, 0x1C]
- str r6, [r0, 0x20]
- str r4, [r0]
- ldr r0, _08016CF4
- movs r1, 0x73
- bl sub_808D8E0
- ldr r4, _08016CF8
- adds r0, r4, 0
- movs r1, 0x73
- bl sub_808D8E0
- movs r0, 0x73
- 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 _08016CFC
- adds r0, r5, 0
- adds r0, 0xE8
- str r6, [r0]
- b _08016D06
- .align 2, 0
-_08016CF0: .4byte gUnknown_203B208
-_08016CF4: .4byte gUnknown_202E5D8
-_08016CF8: .4byte gUnknown_202E1C8
-_08016CFC:
- adds r1, r5, 0
- adds r1, 0xE8
- adds r0, r5, 0
- adds r0, 0xD8
- str r0, [r1]
-_08016D06:
- movs r0, 0x73
- bl GetDialogueSpriteDataPtr
- ldr r2, _08016D50
- ldr r3, [r2]
- adds r1, r3, 0
- adds r1, 0xD8
- str r0, [r1]
- adds r1, 0x4
- ldr r0, [r0, 0x4]
- str r0, [r1]
- adds r0, r3, 0
- adds r0, 0xE4
- movs r1, 0
- strb r1, [r0]
- ldr r0, [r2]
- adds r0, 0xE5
- strb r1, [r0]
- ldr r0, [r2]
- adds r0, 0xE6
- strb r1, [r0]
- ldr r1, [r2]
- adds r2, r1, 0
- adds r2, 0xE0
- movs r0, 0x2
- strh r0, [r2]
- adds r1, 0xE2
- movs r0, 0x8
- strh r0, [r1]
- movs r0, 0
- bl sub_8016E68
- movs r0, 0x1
- pop {r4-r6}
- pop {r1}
- bx r1
- .align 2, 0
-_08016D50: .4byte gUnknown_203B208
- thumb_func_end DisplayKangaskhanDialogueSprite
-
- thumb_func_start sub_8016D54
-sub_8016D54:
- push {lr}
- ldr r0, _08016D6C
- ldr r0, [r0]
- ldr r0, [r0, 0x4]
- cmp r0, 0x1C
- bhi _08016E34
- lsls r0, 2
- ldr r1, _08016D70
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08016D6C: .4byte gUnknown_203B208
-_08016D70: .4byte _08016D74
- .align 2, 0
-_08016D74:
- .4byte _08016DE8
- .4byte _08016DE8
- .4byte _08016E34
- .4byte _08016E34
- .4byte _08016E30
- .4byte _08016E34
- .4byte _08016E34
- .4byte _08016E34
- .4byte _08016E34
- .4byte _08016E34
- .4byte _08016E34
- .4byte _08016E34
- .4byte _08016E34
- .4byte _08016DEE
- .4byte _08016DEE
- .4byte _08016DF4
- .4byte _08016DFA
- .4byte _08016E00
- .4byte _08016E06
- .4byte _08016E34
- .4byte _08016E34
- .4byte _08016E34
- .4byte _08016E0C
- .4byte _08016E0C
- .4byte _08016E12
- .4byte _08016E18
- .4byte _08016E1E
- .4byte _08016E24
- .4byte _08016E2A
-_08016DE8:
- bl sub_8017828
- b _08016E38
-_08016DEE:
- bl sub_8017AF8
- b _08016E38
-_08016DF4:
- bl sub_8017C7C
- b _08016E38
-_08016DFA:
- bl sub_8017DC0
- b _08016E38
-_08016E00:
- bl sub_80178D0
- b _08016E38
-_08016E06:
- bl sub_80179A8
- b _08016E38
-_08016E0C:
- bl sub_8017B88
- b _08016E38
-_08016E12:
- bl sub_8017C28
- b _08016E38
-_08016E18:
- bl sub_8017D24
- b _08016E38
-_08016E1E:
- bl sub_8017DDC
- b _08016E38
-_08016E24:
- bl sub_8017928
- b _08016E38
-_08016E2A:
- bl sub_8017A1C
- b _08016E38
-_08016E30:
- movs r0, 0x3
- b _08016E3A
-_08016E34:
- bl sub_8017DF8
-_08016E38:
- movs r0, 0
-_08016E3A:
- pop {r1}
- bx r1
- thumb_func_end sub_8016D54
-
- thumb_func_start sub_8016E40
-sub_8016E40:
- push {r4,lr}
- ldr r4, _08016E64
- ldr r0, [r4]
- cmp r0, 0
- beq _08016E5C
- adds r0, 0xD8
- ldr r0, [r0]
- bl CloseFile
- ldr r0, [r4]
- bl MemoryFree
- movs r0, 0
- str r0, [r4]
-_08016E5C:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08016E64: .4byte gUnknown_203B208
- thumb_func_end sub_8016E40
-
- thumb_func_start sub_8016E68
-sub_8016E68:
- push {lr}
- ldr r1, _08016E7C
- ldr r1, [r1]
- str r0, [r1, 0x4]
- bl sub_8016E80
- bl sub_8016FF8
- pop {r0}
- bx r0
- .align 2, 0
-_08016E7C: .4byte gUnknown_203B208
- thumb_func_end sub_8016E68
-
- thumb_func_start sub_8016E80
-sub_8016E80:
- push {r4-r7,lr}
- ldr r4, _08016EA4
- ldr r0, [r4]
- adds r0, 0xEC
- bl sub_8006518
- ldr r0, [r4]
- ldr r0, [r0, 0x4]
- subs r0, 0xD
- cmp r0, 0xC
- bls _08016E98
- b _08016FB4
-_08016E98:
- lsls r0, 2
- ldr r1, _08016EA8
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08016EA4: .4byte gUnknown_203B208
-_08016EA8: .4byte _08016EAC
- .align 2, 0
-_08016EAC:
- .4byte _08016EE0
- .4byte _08016EE0
- .4byte _08016F94
- .4byte _08016FB4
- .4byte _08016FB4
- .4byte _08016FB4
- .4byte _08016FB4
- .4byte _08016FB4
- .4byte _08016FB4
- .4byte _08016F2C
- .4byte _08016F2C
- .4byte _08016F7C
- .4byte _08016F94
-_08016EE0:
- ldr r3, _08016F24
- ldr r1, [r3]
- ldr r2, _08016F28
- adds r1, 0xEC
- adds r0, r2, 0
- ldm r0!, {r4-r6}
- stm r1!, {r4-r6}
- ldm r0!, {r4,r5,r7}
- stm r1!, {r4,r5,r7}
- ldr r1, [r3]
- movs r6, 0x82
- lsls r6, 1
- adds r1, r6
- adds r0, r2, 0
- ldm r0!, {r4,r5,r7}
- stm r1!, {r4,r5,r7}
- ldm r0!, {r4,r6,r7}
- stm r1!, {r4,r6,r7}
- ldr r1, [r3]
- movs r5, 0x8E
- lsls r5, 1
- adds r1, r5
- adds r0, r2, 0
- ldm r0!, {r4,r6,r7}
- stm r1!, {r4,r6,r7}
- ldm r0!, {r5-r7}
- stm r1!, {r5-r7}
- ldr r0, [r3]
- adds r0, 0xEC
- ldm r2!, {r1,r3,r4}
- stm r0!, {r1,r3,r4}
- ldm r2!, {r5-r7}
- stm r0!, {r5-r7}
- b _08016FD8
- .align 2, 0
-_08016F24: .4byte gUnknown_203B208
-_08016F28: .4byte gUnknown_80DB748
-_08016F2C:
- ldr r3, _08016F70
- ldr r1, [r3]
- ldr r2, _08016F74
- adds r1, 0xEC
- adds r0, r2, 0
- ldm r0!, {r4-r6}
- stm r1!, {r4-r6}
- ldm r0!, {r4,r5,r7}
- stm r1!, {r4,r5,r7}
- ldr r1, [r3]
- movs r6, 0x82
- lsls r6, 1
- adds r1, r6
- adds r0, r2, 0
- ldm r0!, {r4,r5,r7}
- stm r1!, {r4,r5,r7}
- ldm r0!, {r4,r6,r7}
- stm r1!, {r4,r6,r7}
- ldr r0, [r3]
- movs r5, 0x8E
- lsls r5, 1
- adds r0, r5
- ldm r2!, {r1,r6,r7}
- stm r0!, {r1,r6,r7}
- ldm r2!, {r4-r6}
- stm r0!, {r4-r6}
- ldr r1, [r3]
- adds r1, 0xEC
- ldr r0, _08016F78
- ldm r0!, {r2,r3,r7}
- stm r1!, {r2,r3,r7}
- ldm r0!, {r4-r6}
- stm r1!, {r4-r6}
- b _08016FD8
- .align 2, 0
-_08016F70: .4byte gUnknown_203B208
-_08016F74: .4byte gUnknown_80DB748
-_08016F78: .4byte gUnknown_80DB778
-_08016F7C:
- ldr r0, _08016F8C
- ldr r1, [r0]
- movs r7, 0x82
- lsls r7, 1
- adds r1, r7
- ldr r0, _08016F90
- b _08016FA0
- .align 2, 0
-_08016F8C: .4byte gUnknown_203B208
-_08016F90: .4byte gUnknown_80DB790
-_08016F94:
- ldr r0, _08016FAC
- ldr r1, [r0]
- movs r0, 0x8E
- lsls r0, 1
- adds r1, r0
- ldr r0, _08016FB0
-_08016FA0:
- ldm r0!, {r2-r4}
- stm r1!, {r2-r4}
- ldm r0!, {r5-r7}
- stm r1!, {r5-r7}
- b _08016FD8
- .align 2, 0
-_08016FAC: .4byte gUnknown_203B208
-_08016FB0: .4byte gUnknown_80DB760
-_08016FB4:
- ldr r0, _08016FF0
- mov r12, r0
- ldr r4, _08016FF4
- movs r3, 0
- movs r2, 0x3
-_08016FBE:
- mov r5, r12
- ldr r1, [r5]
- adds r1, r3
- adds r1, 0xEC
- 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 _08016FBE
-_08016FD8:
- bl ResetUnusedInputStruct
- ldr r0, _08016FF0
- ldr r0, [r0]
- adds r0, 0xEC
- movs r1, 0x1
- movs r2, 0x1
- bl sub_800641C
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08016FF0: .4byte gUnknown_203B208
-_08016FF4: .4byte gUnknown_80DB748
- thumb_func_end sub_8016E80
-
- thumb_func_start sub_8016FF8
-sub_8016FF8:
- push {r4,r5,lr}
- sub sp, 0x14
- ldr r1, _08017014
- ldr r0, [r1]
- ldr r0, [r0, 0x4]
- adds r4, r1, 0
- cmp r0, 0x1D
- bls _0801700A
- b _08017584
-_0801700A:
- lsls r0, 2
- ldr r1, _08017018
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08017014: .4byte gUnknown_203B208
-_08017018: .4byte _0801701C
- .align 2, 0
-_0801701C:
- .4byte _08017094
- .4byte _080170BC
- .4byte _0801710C
- .4byte _0801713C
- .4byte _08017584
- .4byte _0801715C
- .4byte _0801718C
- .4byte _080171BC
- .4byte _080171EC
- .4byte _0801721C
- .4byte _0801724C
- .4byte _0801726C
- .4byte _0801728C
- .4byte _080172AC
- .4byte _080172BA
- .4byte _080172C2
- .4byte _080174A8
- .4byte _080172E4
- .4byte _0801731C
- .4byte _08017344
- .4byte _08017394
- .4byte _080173B4
- .4byte _080173E8
- .4byte _080173F6
- .4byte _08017404
- .4byte _08017474
- .4byte _080174A8
- .4byte _080174B2
- .4byte _080174E8
- .4byte _08017530
-_08017094:
- bl sub_80175FC
- ldr r2, _080170B4
- ldr r0, [r2]
- adds r0, 0xE4
- movs r4, 0
- movs r1, 0x1
- strb r1, [r0]
- ldr r3, _080170B8
- ldr r5, [r2]
- ldr r1, [r5]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 4
- adds r0, r3
- b _080170DA
- .align 2, 0
-_080170B4: .4byte gUnknown_203B208
-_080170B8: .4byte gUnknown_80D5404
-_080170BC:
- bl sub_80175FC
- ldr r1, _08017104
- ldr r0, [r1]
- adds r0, 0xE4
- movs r4, 0
- strb r4, [r0]
- ldr r2, _08017108
- ldr r5, [r1]
- ldr r1, [r5]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 4
- adds r2, 0x4
- adds r0, r2
-_080170DA:
- ldr r0, [r0]
- ldr r2, [r5, 0x18]
- adds r3, r5, 0
- adds r3, 0x24
- adds r1, r5, 0
- adds r1, 0x4C
- str r1, [sp]
- movs r1, 0x4
- str r1, [sp, 0x4]
- str r4, [sp, 0x8]
- adds r1, r5, 0
- adds r1, 0xE8
- ldr r1, [r1]
- str r1, [sp, 0xC]
- movs r1, 0xC
- str r1, [sp, 0x10]
- movs r1, 0
- bl sub_8014248
- b _08017584
- .align 2, 0
-_08017104: .4byte gUnknown_203B208
-_08017108: .4byte gUnknown_80D5404
-_0801710C:
- ldr r0, [r4]
- movs r1, 0x1
- str r1, [r0, 0x8]
- adds r0, 0xE4
- movs r1, 0
- strb r1, [r0]
- ldr r2, _08017134
- ldr r3, [r4]
- ldr r1, [r3]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 4
- adds r2, 0x4C
- adds r0, r2
- ldr r0, [r0]
- adds r3, 0xE8
- ldr r2, [r3]
- ldr r3, _08017138
- b _080173D8
- .align 2, 0
-_08017134: .4byte gUnknown_80D5404
-_08017138: .4byte 0x0000010d
-_0801713C:
- ldr r0, [r4]
- movs r1, 0x4
- str r1, [r0, 0x8]
- adds r0, 0xE4
- movs r1, 0x1
- strb r1, [r0]
- ldr r2, _08017158
- ldr r3, [r4]
- ldr r1, [r3]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 4
- adds r2, 0x8
- b _080173CE
- .align 2, 0
-_08017158: .4byte gUnknown_80D5404
-_0801715C:
- ldr r0, [r4]
- movs r1, 0x1
- str r1, [r0, 0x8]
- adds r0, 0xE4
- movs r1, 0
- strb r1, [r0]
- ldr r2, _08017184
- ldr r3, [r4]
- ldr r1, [r3]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 4
- adds r2, 0x34
- adds r0, r2
- ldr r0, [r0]
- adds r3, 0xE8
- ldr r2, [r3]
- ldr r3, _08017188
- b _080173D8
- .align 2, 0
-_08017184: .4byte gUnknown_80D5404
-_08017188: .4byte 0x0000010d
-_0801718C:
- ldr r0, [r4]
- movs r1, 0x1
- str r1, [r0, 0x8]
- adds r0, 0xE4
- movs r1, 0
- strb r1, [r0]
- ldr r2, _080171B4
- ldr r3, [r4]
- ldr r1, [r3]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 4
- adds r2, 0x38
- adds r0, r2
- ldr r0, [r0]
- adds r3, 0xE8
- ldr r2, [r3]
- ldr r3, _080171B8
- b _080173D8
- .align 2, 0
-_080171B4: .4byte gUnknown_80D5404
-_080171B8: .4byte 0x0000010d
-_080171BC:
- ldr r0, [r4]
- movs r1, 0x1
- str r1, [r0, 0x8]
- adds r0, 0xE4
- movs r1, 0
- strb r1, [r0]
- ldr r2, _080171E4
- ldr r3, [r4]
- ldr r1, [r3]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 4
- adds r2, 0x3C
- adds r0, r2
- ldr r0, [r0]
- adds r3, 0xE8
- ldr r2, [r3]
- ldr r3, _080171E8
- b _080173D8
- .align 2, 0
-_080171E4: .4byte gUnknown_80D5404
-_080171E8: .4byte 0x0000010d
-_080171EC:
- ldr r0, [r4]
- movs r1, 0x1
- str r1, [r0, 0x8]
- adds r0, 0xE4
- movs r1, 0
- strb r1, [r0]
- ldr r2, _08017214
- ldr r3, [r4]
- ldr r1, [r3]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 4
- adds r2, 0x48
- adds r0, r2
- ldr r0, [r0]
- adds r3, 0xE8
- ldr r2, [r3]
- ldr r3, _08017218
- b _080173D8
- .align 2, 0
-_08017214: .4byte gUnknown_80D5404
-_08017218: .4byte 0x0000010d
-_0801721C:
- ldr r0, _08017244
- ldr r1, [r4]
- adds r1, 0xC
- movs r2, 0
- bl sub_8090E14
- ldr r0, [r4]
- movs r1, 0xE
- str r1, [r0, 0x8]
- adds r0, 0xE4
- movs r1, 0
- strb r1, [r0]
- ldr r2, _08017248
- ldr r3, [r4]
- ldr r1, [r3]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 4
- adds r2, 0x40
- b _080173CE
- .align 2, 0
-_08017244: .4byte gUnknown_202DE58
-_08017248: .4byte gUnknown_80D5404
-_0801724C:
- ldr r0, [r4]
- movs r1, 0xE
- str r1, [r0, 0x8]
- adds r0, 0xE4
- movs r1, 0
- strb r1, [r0]
- ldr r2, _08017268
- ldr r3, [r4]
- ldr r1, [r3]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 4
- adds r2, 0x44
- b _080173CE
- .align 2, 0
-_08017268: .4byte gUnknown_80D5404
-_0801726C:
- ldr r0, [r4]
- movs r1, 0xD
- str r1, [r0, 0x8]
- adds r0, 0xE4
- movs r1, 0
- strb r1, [r0]
- ldr r2, _08017288
- ldr r3, [r4]
- ldr r1, [r3]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 4
- adds r2, 0xC
- b _080173CE
- .align 2, 0
-_08017288: .4byte gUnknown_80D5404
-_0801728C:
- ldr r0, [r4]
- movs r1, 0xE
- str r1, [r0, 0x8]
- adds r0, 0xE4
- movs r1, 0
- strb r1, [r0]
- ldr r2, _080172A8
- ldr r3, [r4]
- ldr r1, [r3]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 4
- adds r2, 0x10
- b _080173CE
- .align 2, 0
-_080172A8: .4byte gUnknown_80D5404
-_080172AC:
- movs r0, 0x3
- movs r1, 0x3
- movs r2, 0
- movs r3, 0xA
- bl sub_801A5D8
- b _08017584
-_080172BA:
- movs r0, 0x1
- bl sub_801A8D0
- b _08017584
-_080172C2:
- bl sub_801A9E0
- bl sub_80176B8
- ldr r0, _080172E0
- ldr r2, [r0]
- adds r0, r2, 0
- adds r0, 0x58
- adds r1, r2, 0
- adds r1, 0x24
- adds r3, r2, 0
- adds r3, 0x4C
- ldr r2, [r2, 0x1C]
- b _08017494
- .align 2, 0
-_080172E0: .4byte gUnknown_203B208
-_080172E4:
- bl sub_80177F8
- ldr r0, _08017310
- ldr r4, _08017314
- ldr r1, [r4]
- adds r1, 0xC
- movs r2, 0
- bl sub_8090E14
- ldr r0, [r4]
- adds r0, 0xE4
- movs r5, 0
- strb r5, [r0]
- ldr r2, _08017318
- ldr r4, [r4]
- ldr r1, [r4]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 4
- adds r2, 0x14
- b _08017504
- .align 2, 0
-_08017310: .4byte gUnknown_202DE58
-_08017314: .4byte gUnknown_203B208
-_08017318: .4byte gUnknown_80D5404
-_0801731C:
- bl sub_80177F8
- ldr r1, _0801733C
- ldr r0, [r1]
- adds r0, 0xE4
- movs r5, 0
- strb r5, [r0]
- ldr r2, _08017340
- ldr r4, [r1]
- ldr r1, [r4]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 4
- adds r2, 0x18
- b _08017504
- .align 2, 0
-_0801733C: .4byte gUnknown_203B208
-_08017340: .4byte gUnknown_80D5404
-_08017344:
- bl sub_8090A34
- cmp r0, 0
- bne _0801735C
- bl sub_801A928
- ldr r0, _08017358
- ldr r1, [r0]
- movs r0, 0x1
- b _08017362
- .align 2, 0
-_08017358: .4byte gUnknown_203B208
-_0801735C:
- ldr r0, _08017388
- ldr r1, [r0]
- movs r0, 0xC
-_08017362:
- str r0, [r1, 0x8]
- ldr r3, _08017388
- ldr r0, [r3]
- adds r0, 0xE4
- movs r1, 0x1
- strb r1, [r0]
- ldr r2, _0801738C
- ldr r3, [r3]
- ldr r1, [r3]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 4
- adds r2, 0x1C
- adds r0, r2
- ldr r0, [r0]
- adds r3, 0xE8
- ldr r2, [r3]
- ldr r3, _08017390
- b _080173D8
- .align 2, 0
-_08017388: .4byte gUnknown_203B208
-_0801738C: .4byte gUnknown_80D5404
-_08017390: .4byte 0x0000010d
-_08017394:
- ldr r0, [r4]
- movs r1, 0x16
- str r1, [r0, 0x8]
- adds r0, 0xE4
- movs r1, 0
- strb r1, [r0]
- ldr r2, _080173B0
- ldr r3, [r4]
- ldr r1, [r3]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 4
- adds r2, 0x20
- b _080173CE
- .align 2, 0
-_080173B0: .4byte gUnknown_80D5404
-_080173B4:
- ldr r0, [r4]
- movs r1, 0x17
- str r1, [r0, 0x8]
- adds r0, 0xE4
- movs r1, 0
- strb r1, [r0]
- ldr r2, _080173E0
- ldr r3, [r4]
- ldr r1, [r3]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 4
- adds r2, 0x24
-_080173CE:
- adds r0, r2
- ldr r0, [r0]
- adds r3, 0xE8
- ldr r2, [r3]
- ldr r3, _080173E4
-_080173D8:
- movs r1, 0
- bl sub_80141B4
- b _08017584
- .align 2, 0
-_080173E0: .4byte gUnknown_80D5404
-_080173E4: .4byte 0x0000030d
-_080173E8:
- movs r0, 0x1
- movs r1, 0x3
- movs r2, 0
- movs r3, 0xA
- bl sub_801C8C4
- b _080173FC
-_080173F6:
- movs r0, 0x1
- bl sub_801CB5C
-_080173FC:
- movs r0, 0
- bl sub_801AD34
- b _08017584
-_08017404:
- ldr r2, [r4]
- adds r1, r2, 0
- adds r1, 0xB8
- movs r0, 0x2
- str r0, [r1]
- subs r1, 0x8
- movs r0, 0x1
- str r0, [r1]
- ldr r0, _08017430
- ldr r1, [r0]
- ldrb r0, [r2, 0xE]
- lsls r0, 1
- adds r1, 0x50
- adds r3, r1, r0
- ldrh r0, [r3]
- cmp r0, 0x63
- bls _08017434
- adds r1, r2, 0
- adds r1, 0xB4
- movs r0, 0x63
- b _0801743A
- .align 2, 0
-_08017430: .4byte gUnknown_203B460
-_08017434:
- adds r1, r2, 0
- adds r1, 0xB4
- ldrh r0, [r3]
-_0801743A:
- str r0, [r1]
- ldr r2, [r4]
- adds r1, r2, 0
- adds r1, 0xAC
- adds r0, r2, 0
- adds r0, 0xB4
- ldr r0, [r0]
- str r0, [r1]
- adds r1, 0x10
- movs r0, 0x1
- str r0, [r1]
- adds r1, 0x4
- movs r3, 0x82
- lsls r3, 1
- adds r0, r2, r3
- str r0, [r1]
- adds r1, 0x4
- movs r0, 0x28
- str r0, [r1]
- adds r1, 0x4
- movs r0, 0x12
- str r0, [r1]
- adds r0, r2, 0
- adds r0, 0xA8
- bl sub_8013AA0
- bl sub_8017598
- b _08017584
-_08017474:
- bl sub_801CCD8
- movs r0, 0
- bl sub_801AD34
- bl sub_8017758
- ldr r0, _080174A4
- ldr r2, [r0]
- adds r0, r2, 0
- adds r0, 0x58
- adds r1, r2, 0
- adds r1, 0x24
- adds r3, r2, 0
- adds r3, 0x4C
- ldr r2, [r2, 0x20]
-_08017494:
- str r2, [sp]
- movs r2, 0x2
- str r2, [sp, 0x4]
- movs r2, 0
- bl sub_8012D60
- b _08017584
- .align 2, 0
-_080174A4: .4byte gUnknown_203B208
-_080174A8:
- ldr r0, [r4]
- adds r0, 0xC
- bl sub_801B3C0
- b _08017584
-_080174B2:
- bl sub_80177F8
- ldr r0, _080174DC
- ldr r4, _080174E0
- ldr r1, [r4]
- adds r1, 0xC
- movs r2, 0
- bl sub_8090E14
- ldr r0, [r4]
- adds r0, 0xE4
- movs r5, 0
- strb r5, [r0]
- ldr r2, _080174E4
- ldr r4, [r4]
- ldr r1, [r4]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 4
- adds r2, 0x28
- b _08017504
- .align 2, 0
-_080174DC: .4byte gUnknown_202DE58
-_080174E0: .4byte gUnknown_203B208
-_080174E4: .4byte gUnknown_80D5404
-_080174E8:
- bl sub_80177F8
- ldr r1, _08017528
- ldr r0, [r1]
- adds r0, 0xE4
- movs r5, 0
- strb r5, [r0]
- ldr r2, _0801752C
- ldr r4, [r1]
- ldr r1, [r4]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 4
- adds r2, 0x2C
-_08017504:
- adds r0, r2
- ldr r0, [r0]
- adds r3, r4, 0
- adds r3, 0x24
- str r5, [sp]
- movs r1, 0x4
- str r1, [sp, 0x4]
- str r5, [sp, 0x8]
- adds r4, 0xE8
- ldr r1, [r4]
- str r1, [sp, 0xC]
- movs r1, 0xC
- str r1, [sp, 0x10]
- movs r1, 0
- movs r2, 0x4
- bl sub_8014248
- b _08017584
- .align 2, 0
-_08017528: .4byte gUnknown_203B208
-_0801752C: .4byte gUnknown_80D5404
-_08017530:
- movs r0, 0x1
- bl sub_801CF14
- lsls r0, 24
- cmp r0, 0
- bne _08017544
- bl sub_8090A34
- cmp r0, 0x13
- ble _08017554
-_08017544:
- bl sub_801CBB8
- ldr r0, _08017550
- ldr r1, [r0]
- movs r0, 0x1
- b _0801755A
- .align 2, 0
-_08017550: .4byte gUnknown_203B208
-_08017554:
- ldr r0, _0801758C
- ldr r1, [r0]
- movs r0, 0x15
-_0801755A:
- str r0, [r1, 0x8]
- ldr r3, _0801758C
- ldr r0, [r3]
- adds r0, 0xE4
- movs r1, 0x1
- strb r1, [r0]
- ldr r2, _08017590
- ldr r3, [r3]
- ldr r1, [r3]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 4
- adds r2, 0x30
- adds r0, r2
- ldr r0, [r0]
- adds r3, 0xE8
- ldr r2, [r3]
- ldr r3, _08017594
- movs r1, 0
- bl sub_80141B4
-_08017584:
- add sp, 0x14
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0801758C: .4byte gUnknown_203B208
-_08017590: .4byte gUnknown_80D5404
-_08017594: .4byte 0x0000010d
- thumb_func_end sub_8016FF8
-
- thumb_func_start sub_8017598
-sub_8017598:
- push {r4,lr}
- sub sp, 0x4
- ldr r4, _080175F4
- ldr r0, [r4]
- adds r0, 0xBC
- ldr r0, [r0]
- bl sub_8008C54
- ldr r0, [r4]
- adds r0, 0xBC
- ldr r0, [r0]
- bl sub_80073B8
- ldr r2, _080175F8
- ldr r0, [r4]
- adds r0, 0xBC
- ldr r3, [r0]
- movs r0, 0
- str r0, [sp]
- movs r0, 0x4
- movs r1, 0
- bl xxx_call_draw_string
- ldr r0, [r4]
- adds r0, 0xA8
- bl sub_8013C68
- ldr r0, [r4]
- adds r0, 0xBC
- ldr r0, [r0]
- bl sub_80073E0
- bl sub_801CCD8
- movs r0, 0
- bl sub_801AD34
- ldr r0, [r4]
- adds r0, 0x58
- movs r1, 0
- bl sub_8012EA4
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080175F4: .4byte gUnknown_203B208
-_080175F8: .4byte gUnknown_80DB7A8
- thumb_func_end sub_8017598
-
- thumb_func_start sub_80175FC
-sub_80175FC:
- push {r4-r7,lr}
- ldr r4, _0801767C
- ldr r0, [r4]
- adds r0, 0x4C
- movs r1, 0
- movs r2, 0xA
- bl MemoryFill16
- ldr r3, [r4]
- movs r2, 0
- ldr r0, _08017680
- ldr r0, [r0]
- str r0, [r3, 0x24]
- movs r0, 0x2
- str r0, [r3, 0x28]
- movs r1, 0x1
- ldr r0, _08017684
- ldr r0, [r0]
- str r0, [r3, 0x2C]
- movs r0, 0x3
- str r0, [r3, 0x30]
- ldr r0, _08017688
- ldr r0, [r0]
- str r0, [r3, 0x34]
- movs r0, 0x6
- str r0, [r3, 0x38]
- ldr r0, _0801768C
- ldr r0, [r0]
- str r0, [r3, 0x3C]
- str r1, [r3, 0x40]
- movs r6, 0x4
- str r2, [r3, 0x44]
- str r1, [r3, 0x48]
- movs r5, 0
- mov r12, r3
- adds r3, 0x28
- mov r2, r12
- adds r2, 0x4C
-_08017648:
- ldrh r0, [r2]
- cmp r0, 0
- bne _08017658
- ldr r1, [r3]
- mov r7, r12
- ldr r0, [r7, 0x18]
- cmp r1, r0
- beq _080176B2
-_08017658:
- adds r3, 0x8
- adds r2, 0x2
- adds r5, 0x1
- cmp r5, r6
- blt _08017648
- movs r5, 0
- cmp r5, r6
- bge _080176B2
- ldr r1, [r4]
- adds r0, r1, 0
- adds r0, 0x4C
- ldrh r0, [r0]
- cmp r0, 0
- bne _08017690
- ldr r0, [r1, 0x28]
- str r0, [r1, 0x18]
- b _080176B2
- .align 2, 0
-_0801767C: .4byte gUnknown_203B208
-_08017680: .4byte gUnknown_80D4958
-_08017684: .4byte gUnknown_80D4964
-_08017688: .4byte gUnknown_80D4970
-_0801768C: .4byte gUnknown_80D4934
-_08017690:
- adds r5, 0x1
- cmp r5, r6
- bge _080176B2
- ldr r2, [r4]
- lsls r0, r5, 1
- adds r1, r2, 0
- adds r1, 0x4C
- adds r1, r0
- ldrh r0, [r1]
- cmp r0, 0
- bne _08017690
- lsls r0, r5, 3
- adds r1, r2, 0
- adds r1, 0x28
- adds r1, r0
- ldr r0, [r1]
- str r0, [r2, 0x18]
-_080176B2:
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_80175FC
-
- thumb_func_start sub_80176B8
-sub_80176B8:
- push {r4-r7,lr}
- ldr r4, _08017724
- ldr r0, [r4]
- adds r0, 0x4C
- movs r1, 0
- movs r2, 0xA
- bl MemoryFill16
- ldr r3, [r4]
- movs r2, 0
- ldr r0, _08017728
- ldr r0, [r0]
- str r0, [r3, 0x24]
- movs r0, 0x2
- str r0, [r3, 0x28]
- movs r1, 0x1
- ldr r0, _0801772C
- ldr r0, [r0]
- str r0, [r3, 0x2C]
- movs r0, 0x6
- str r0, [r3, 0x30]
- movs r6, 0x2
- str r2, [r3, 0x34]
- str r1, [r3, 0x38]
- movs r5, 0
- mov r12, r3
- adds r3, 0x28
- mov r2, r12
- adds r2, 0x4C
-_080176F2:
- ldrh r0, [r2]
- cmp r0, 0
- bne _08017702
- ldr r1, [r3]
- mov r7, r12
- ldr r0, [r7, 0x1C]
- cmp r1, r0
- beq _08017752
-_08017702:
- adds r3, 0x8
- adds r2, 0x2
- adds r5, 0x1
- cmp r5, r6
- blt _080176F2
- movs r5, 0
- cmp r5, r6
- bge _08017752
- ldr r1, [r4]
- adds r0, r1, 0
- adds r0, 0x4C
- ldrh r0, [r0]
- cmp r0, 0
- bne _08017730
- ldr r0, [r1, 0x28]
- str r0, [r1, 0x1C]
- b _08017752
- .align 2, 0
-_08017724: .4byte gUnknown_203B208
-_08017728: .4byte gUnknown_80D4958
-_0801772C: .4byte gUnknown_80D4970
-_08017730:
- adds r5, 0x1
- cmp r5, r6
- bge _08017752
- ldr r2, [r4]
- lsls r0, r5, 1
- adds r1, r2, 0
- adds r1, 0x4C
- adds r1, r0
- ldrh r0, [r1]
- cmp r0, 0
- bne _08017730
- lsls r0, r5, 3
- adds r1, r2, 0
- adds r1, 0x28
- adds r1, r0
- ldr r0, [r1]
- str r0, [r2, 0x1C]
-_08017752:
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_80176B8
-
- thumb_func_start sub_8017758
-sub_8017758:
- push {r4-r7,lr}
- ldr r4, _080177C4
- ldr r0, [r4]
- adds r0, 0x4C
- movs r1, 0
- movs r2, 0xA
- bl MemoryFill16
- ldr r3, [r4]
- movs r2, 0
- ldr r0, _080177C8
- ldr r0, [r0]
- str r0, [r3, 0x24]
- movs r0, 0x3
- str r0, [r3, 0x28]
- movs r1, 0x1
- ldr r0, _080177CC
- ldr r0, [r0]
- str r0, [r3, 0x2C]
- movs r0, 0x6
- str r0, [r3, 0x30]
- movs r6, 0x2
- str r2, [r3, 0x34]
- str r1, [r3, 0x38]
- movs r5, 0
- mov r12, r3
- adds r3, 0x28
- mov r2, r12
- adds r2, 0x4C
-_08017792:
- ldrh r0, [r2]
- cmp r0, 0
- bne _080177A2
- ldr r1, [r3]
- mov r7, r12
- ldr r0, [r7, 0x20]
- cmp r1, r0
- beq _080177F2
-_080177A2:
- adds r3, 0x8
- adds r2, 0x2
- adds r5, 0x1
- cmp r5, r6
- blt _08017792
- movs r5, 0
- cmp r5, r6
- bge _080177F2
- ldr r1, [r4]
- adds r0, r1, 0
- adds r0, 0x4C
- ldrh r0, [r0]
- cmp r0, 0
- bne _080177D0
- ldr r0, [r1, 0x28]
- str r0, [r1, 0x20]
- b _080177F2
- .align 2, 0
-_080177C4: .4byte gUnknown_203B208
-_080177C8: .4byte gUnknown_80D4964
-_080177CC: .4byte gUnknown_80D4970
-_080177D0:
- adds r5, 0x1
- cmp r5, r6
- bge _080177F2
- ldr r2, [r4]
- lsls r0, r5, 1
- adds r1, r2, 0
- adds r1, 0x4C
- adds r1, r0
- ldrh r0, [r1]
- cmp r0, 0
- bne _080177D0
- lsls r0, r5, 3
- adds r1, r2, 0
- adds r1, 0x28
- adds r1, r0
- ldr r0, [r1]
- str r0, [r2, 0x20]
-_080177F2:
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_8017758
-
- thumb_func_start sub_80177F8
-sub_80177F8:
- ldr r0, _0801781C
- ldr r1, [r0]
- movs r3, 0
- ldr r0, _08017820
- ldr r0, [r0]
- str r0, [r1, 0x24]
- movs r0, 0x4
- str r0, [r1, 0x28]
- movs r2, 0x1
- ldr r0, _08017824
- ldr r0, [r0]
- str r0, [r1, 0x2C]
- movs r0, 0x5
- str r0, [r1, 0x30]
- str r3, [r1, 0x34]
- str r2, [r1, 0x38]
- bx lr
- .align 2, 0
-_0801781C: .4byte gUnknown_203B208
-_08017820: .4byte gUnknown_80D4920
-_08017824: .4byte gUnknown_80D4928
- thumb_func_end sub_80177F8
-
- thumb_func_start sub_8017828
-sub_8017828:
- push {lr}
- sub sp, 0x4
- mov r0, sp
- bl sub_80144A4
- cmp r0, 0
- bne _080178C8
- ldr r1, [sp]
- cmp r1, 0x1
- beq _08017842
- ldr r0, _08017854
- ldr r0, [r0]
- str r1, [r0, 0x18]
-_08017842:
- ldr r0, [sp]
- cmp r0, 0x2
- beq _08017862
- cmp r0, 0x2
- bgt _08017858
- cmp r0, 0x1
- beq _080178C2
- b _080178C8
- .align 2, 0
-_08017854: .4byte gUnknown_203B208
-_08017858:
- cmp r0, 0x3
- beq _0801788E
- cmp r0, 0x6
- beq _080178BA
- b _080178C8
-_08017862:
- bl sub_8090A34
- cmp r0, 0
- bne _08017872
- movs r0, 0x5
- bl sub_8016E68
- b _080178C8
-_08017872:
- movs r0, 0
- bl sub_801CF50
- lsls r0, 24
- cmp r0, 0
- beq _08017886
- movs r0, 0x8
- bl sub_8016E68
- b _080178C8
-_08017886:
- movs r0, 0xB
- bl sub_8016E68
- b _080178C8
-_0801788E:
- movs r0, 0x1
- bl sub_801CF14
- lsls r0, 24
- cmp r0, 0
- beq _080178A2
- movs r0, 0x7
- bl sub_8016E68
- b _080178C8
-_080178A2:
- bl sub_8090A34
- cmp r0, 0x13
- ble _080178B2
- movs r0, 0x6
- bl sub_8016E68
- b _080178C8
-_080178B2:
- movs r0, 0x14
- bl sub_8016E68
- b _080178C8
-_080178BA:
- movs r0, 0x2
- bl sub_8016E68
- b _080178C8
-_080178C2:
- movs r0, 0x3
- bl sub_8016E68
-_080178C8:
- add sp, 0x4
- pop {r0}
- bx r0
- thumb_func_end sub_8017828
-
- thumb_func_start sub_80178D0
-sub_80178D0:
- push {r4,lr}
- sub sp, 0x4
- mov r0, sp
- bl sub_80144A4
- cmp r0, 0
- bne _0801791E
- ldr r0, [sp]
- cmp r0, 0x4
- beq _080178F4
- cmp r0, 0x4
- bgt _080178EE
- cmp r0, 0x1
- beq _08017918
- b _0801791E
-_080178EE:
- cmp r0, 0x5
- beq _08017918
- b _0801791E
-_080178F4:
- ldr r4, _08017914
- ldr r0, [r4]
- adds r0, 0xC
- bl sub_80917B8
- ldr r0, [r4]
- ldr r0, [r0, 0x10]
- bl sub_80911F8
- bl sub_80910B4
- movs r0, 0x13
- bl sub_8016E68
- b _0801791E
- .align 2, 0
-_08017914: .4byte gUnknown_203B208
-_08017918:
- movs r0, 0xE
- bl sub_8016E68
-_0801791E:
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80178D0
-
- thumb_func_start sub_8017928
-sub_8017928:
- push {lr}
- sub sp, 0x8
- mov r0, sp
- bl sub_80144A4
- cmp r0, 0
- bne _080179A2
- ldr r0, [sp]
- cmp r0, 0x4
- beq _0801794C
- cmp r0, 0x4
- bgt _08017946
- cmp r0, 0x1
- beq _0801799C
- b _080179A2
-_08017946:
- cmp r0, 0x5
- beq _0801799C
- b _080179A2
-_0801794C:
- ldr r0, _0801798C
- ldr r1, [r0]
- ldr r0, _08017990
- ldr r3, [r0]
- ldrb r0, [r3, 0xE]
- lsls r0, 1
- adds r1, 0x50
- adds r1, r0
- ldrb r2, [r3, 0xD]
- ldrh r0, [r1]
- subs r0, r2
- strh r0, [r1]
- ldrb r2, [r3, 0xE]
- ldr r1, _08017994
- ldr r0, [sp, 0x4]
- ands r0, r1
- orrs r0, r2
- str r0, [sp, 0x4]
- ldrb r1, [r3, 0xD]
- lsls r1, 8
- ldr r2, _08017998
- ands r0, r2
- orrs r0, r1
- str r0, [sp, 0x4]
- add r0, sp, 0x4
- bl sub_8091274
- movs r0, 0x1D
- bl sub_8016E68
- b _080179A2
- .align 2, 0
-_0801798C: .4byte gUnknown_203B460
-_08017990: .4byte gUnknown_203B208
-_08017994: .4byte 0xffffff00
-_08017998: .4byte 0xffff00ff
-_0801799C:
- movs r0, 0x17
- bl sub_8016E68
-_080179A2:
- add sp, 0x8
- pop {r0}
- bx r0
- thumb_func_end sub_8017928
-
- thumb_func_start sub_80179A8
-sub_80179A8:
- push {r4-r7,lr}
- sub sp, 0x4
- mov r0, sp
- bl sub_80144A4
- cmp r0, 0
- bne _08017A12
- ldr r0, [sp]
- cmp r0, 0x4
- beq _080179CC
- cmp r0, 0x4
- bgt _080179C6
- cmp r0, 0x1
- beq _08017A0C
- b _08017A12
-_080179C6:
- cmp r0, 0x5
- beq _08017A0C
- b _08017A12
-_080179CC:
- movs r5, 0
- ldr r6, _08017A08
- movs r7, 0
-_080179D2:
- adds r0, r5, 0
- bl sub_801AED0
- cmp r0, 0
- beq _080179F2
- lsls r4, r5, 2
- ldr r0, [r6]
- adds r0, r4
- bl sub_80917B8
- ldr r0, [r6]
- adds r0, r4
- strb r7, [r0, 0x2]
- ldr r0, [r6]
- adds r0, r4
- strb r7, [r0]
-_080179F2:
- adds r5, 0x1
- cmp r5, 0x13
- ble _080179D2
- bl sub_80910B4
- bl sub_801AE84
- movs r0, 0x13
- bl sub_8016E68
- b _08017A12
- .align 2, 0
-_08017A08: .4byte gUnknown_203B460
-_08017A0C:
- movs r0, 0xE
- bl sub_8016E68
-_08017A12:
- add sp, 0x4
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_80179A8
-
- thumb_func_start sub_8017A1C
-sub_8017A1C:
- push {r4-r6,lr}
- sub sp, 0x8
- mov r0, sp
- bl sub_80144A4
- cmp r0, 0
- bne _08017AEE
- ldr r0, [sp]
- cmp r0, 0x4
- beq _08017A40
- cmp r0, 0x4
- bgt _08017A3A
- cmp r0, 0x1
- beq _08017AE8
- b _08017AEE
-_08017A3A:
- cmp r0, 0x5
- beq _08017AE8
- b _08017AEE
-_08017A40:
- movs r5, 0
- ldr r6, _08017A88
-_08017A44:
- lsls r0, r5, 24
- lsrs r4, r0, 24
- adds r0, r4, 0
- bl sub_801CFE0
- cmp r0, 0
- beq _08017ACE
- ldr r1, _08017A8C
- ldr r0, [sp, 0x4]
- ands r0, r1
- orrs r0, r4
- str r0, [sp, 0x4]
- add r4, sp, 0x4
- ldrb r0, [r4]
- bl sub_8090A60
- lsls r0, 24
- cmp r0, 0
- beq _08017AA2
- ldr r2, _08017A90
- ldr r1, [r2]
- ldrb r0, [r4]
- lsls r0, 1
- adds r1, 0x50
- adds r1, r0
- ldrh r1, [r1]
- cmp r1, 0x63
- bls _08017A94
- ldr r0, [sp, 0x4]
- ands r0, r6
- movs r1, 0xC6
- lsls r1, 7
- b _08017A9C
- .align 2, 0
-_08017A88: .4byte 0xffff00ff
-_08017A8C: .4byte 0xffffff00
-_08017A90: .4byte gUnknown_203B460
-_08017A94:
- lsls r1, 24
- lsrs r1, 16
- ldr r0, [sp, 0x4]
- ands r0, r6
-_08017A9C:
- orrs r0, r1
- str r0, [sp, 0x4]
- b _08017AB0
-_08017AA2:
- ldr r0, [sp, 0x4]
- ands r0, r6
- movs r1, 0x80
- lsls r1, 1
- orrs r0, r1
- str r0, [sp, 0x4]
- ldr r2, _08017AE4
-_08017AB0:
- ldr r3, [r2]
- add r0, sp, 0x4
- ldrb r1, [r4]
- lsls r1, 1
- adds r3, 0x50
- adds r3, r1
- ldr r1, [sp, 0x4]
- lsrs r1, 8
- lsls r1, 24
- lsrs r1, 24
- ldrh r2, [r3]
- subs r2, r1
- strh r2, [r3]
- bl sub_8091274
-_08017ACE:
- adds r5, 0x1
- cmp r5, 0xEF
- ble _08017A44
- bl sub_80910B4
- bl sub_801CF94
- movs r0, 0x1D
- bl sub_8016E68
- b _08017AEE
- .align 2, 0
-_08017AE4: .4byte gUnknown_203B460
-_08017AE8:
- movs r0, 0x17
- bl sub_8016E68
-_08017AEE:
- add sp, 0x8
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_8017A1C
-
- thumb_func_start sub_8017AF8
-sub_8017AF8:
- push {lr}
- movs r0, 0x1
- bl sub_801A6E8
- cmp r0, 0x3
- beq _08017B14
- cmp r0, 0x3
- bhi _08017B0E
- cmp r0, 0x2
- beq _08017B78
- b _08017B82
-_08017B0E:
- cmp r0, 0x4
- beq _08017B50
- b _08017B82
-_08017B14:
- bl sub_801AEA8
- cmp r0, 0
- beq _08017B2A
- movs r0, 0
- bl sub_8099690
- movs r0, 0x12
- bl sub_8016E68
- b _08017B82
-_08017B2A:
- bl sub_801A8AC
- ldr r1, _08017B48
- ldr r2, [r1]
- str r0, [r2, 0x10]
- ldr r1, _08017B4C
- ldr r1, [r1]
- lsls r0, 2
- adds r1, r0
- ldr r0, [r1]
- str r0, [r2, 0xC]
- movs r0, 0xF
- bl sub_8016E68
- b _08017B82
- .align 2, 0
-_08017B48: .4byte gUnknown_203B208
-_08017B4C: .4byte gUnknown_203B460
-_08017B50:
- bl sub_801A8AC
- ldr r1, _08017B70
- ldr r2, [r1]
- str r0, [r2, 0x10]
- ldr r1, _08017B74
- ldr r1, [r1]
- lsls r0, 2
- adds r1, r0
- ldr r0, [r1]
- str r0, [r2, 0xC]
- movs r0, 0x10
- bl sub_8016E68
- b _08017B82
- .align 2, 0
-_08017B70: .4byte gUnknown_203B208
-_08017B74: .4byte gUnknown_203B460
-_08017B78:
- bl sub_801A928
- movs r0, 0x1
- bl sub_8016E68
-_08017B82:
- pop {r0}
- bx r0
- thumb_func_end sub_8017AF8
-
- thumb_func_start sub_8017B88
-sub_8017B88:
- push {r4,lr}
- movs r0, 0x1
- bl sub_801CA08
- cmp r0, 0x2
- beq _08017C10
- cmp r0, 0x2
- bhi _08017B9E
- cmp r0, 0x1
- beq _08017C1C
- b _08017C22
-_08017B9E:
- cmp r0, 0x3
- beq _08017BA8
- cmp r0, 0x4
- beq _08017BE4
- b _08017C22
-_08017BA8:
- bl sub_801CFB8
- cmp r0, 0
- beq _08017BB8
- movs r0, 0x1C
- bl sub_8016E68
- b _08017C22
-_08017BB8:
- bl sub_801CB24
- ldr r4, _08017BE0
- ldr r1, [r4]
- strb r0, [r1, 0x14]
- ldr r1, [r4]
- adds r0, r1, 0
- adds r0, 0xC
- ldrb r1, [r1, 0x14]
- movs r2, 0
- bl sub_8090A8C
- ldr r1, [r4]
- movs r0, 0x1
- strb r0, [r1, 0xD]
- movs r0, 0x19
- bl sub_8016E68
- b _08017C22
- .align 2, 0
-_08017BE0: .4byte gUnknown_203B208
-_08017BE4:
- bl sub_801CB24
- ldr r4, _08017C0C
- ldr r1, [r4]
- strb r0, [r1, 0x14]
- ldr r1, [r4]
- adds r0, r1, 0
- adds r0, 0xC
- ldrb r1, [r1, 0x14]
- movs r2, 0
- bl sub_8090A8C
- ldr r1, [r4]
- movs r0, 0x1
- strb r0, [r1, 0xD]
- movs r0, 0x1A
- bl sub_8016E68
- b _08017C22
- .align 2, 0
-_08017C0C: .4byte gUnknown_203B208
-_08017C10:
- bl sub_801CBB8
- movs r0, 0x1
- bl sub_8016E68
- b _08017C22
-_08017C1C:
- movs r0, 0
- bl sub_801AD34
-_08017C22:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_8017B88
-
- thumb_func_start sub_8017C28
-sub_8017C28:
- push {r4,lr}
- movs r0, 0
- bl sub_801CA08
- ldr r4, _08017C54
- ldr r0, [r4]
- adds r0, 0x58
- bl sub_8012FD8
- ldr r0, [r4]
- adds r0, 0xA8
- bl sub_8013BBC
- cmp r0, 0x1
- beq _08017C58
- cmp r0, 0x1
- bcc _08017C76
- cmp r0, 0x2
- beq _08017C70
- cmp r0, 0x3
- beq _08017C5E
- b _08017C76
- .align 2, 0
-_08017C54: .4byte gUnknown_203B208
-_08017C58:
- bl sub_8017598
- b _08017C76
-_08017C5E:
- ldr r0, [r4]
- adds r1, r0, 0
- adds r1, 0xA8
- ldr r1, [r1]
- strb r1, [r0, 0xD]
- movs r0, 0x1B
- bl sub_8016E68
- b _08017C76
-_08017C70:
- movs r0, 0x17
- bl sub_8016E68
-_08017C76:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_8017C28
-
- thumb_func_start sub_8017C7C
-sub_8017C7C:
- push {r4,lr}
- sub sp, 0x4
- movs r0, 0
- str r0, [sp]
- bl sub_801A6E8
- ldr r4, _08017CBC
- ldr r0, [r4]
- adds r0, 0x58
- bl sub_8012FD8
- lsls r0, 24
- cmp r0, 0
- bne _08017CAC
- ldr r0, [r4]
- adds r0, 0x58
- mov r1, sp
- bl sub_8013114
- ldr r1, [sp]
- cmp r1, 0x1
- beq _08017CAC
- ldr r0, [r4]
- str r1, [r0, 0x1C]
-_08017CAC:
- ldr r0, [sp]
- cmp r0, 0x2
- beq _08017CC6
- cmp r0, 0x2
- bgt _08017CC0
- cmp r0, 0x1
- beq _08017D14
- b _08017D1A
- .align 2, 0
-_08017CBC: .4byte gUnknown_203B208
-_08017CC0:
- cmp r0, 0x6
- beq _08017D06
- b _08017D1A
-_08017CC6:
- movs r0, 0
- bl sub_8099690
- ldr r4, _08017CE4
- ldr r0, [r4]
- ldrb r0, [r0, 0xE]
- bl sub_8091524
- lsls r0, 24
- cmp r0, 0
- bne _08017CE8
- movs r0, 0x9
- bl sub_8016E68
- b _08017D1A
- .align 2, 0
-_08017CE4: .4byte gUnknown_203B208
-_08017CE8:
- ldr r0, [r4]
- ldr r0, [r0, 0x10]
- bl sub_801ADA0
- lsls r0, 24
- cmp r0, 0
- bne _08017CFE
- movs r0, 0xA
- bl sub_8016E68
- b _08017D1A
-_08017CFE:
- movs r0, 0x11
- bl sub_8016E68
- b _08017D1A
-_08017D06:
- movs r0, 0
- bl sub_8099690
- movs r0, 0x10
- bl sub_8016E68
- b _08017D1A
-_08017D14:
- movs r0, 0xE
- bl sub_8016E68
-_08017D1A:
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_8017C7C
-
- thumb_func_start sub_8017D24
-sub_8017D24:
- push {r4,lr}
- sub sp, 0x4
- movs r0, 0
- str r0, [sp]
- bl sub_801CA08
- ldr r4, _08017D64
- ldr r0, [r4]
- adds r0, 0x58
- bl sub_8012FD8
- lsls r0, 24
- cmp r0, 0
- bne _08017D54
- ldr r0, [r4]
- adds r0, 0x58
- mov r1, sp
- bl sub_8013114
- ldr r1, [sp]
- cmp r1, 0x1
- beq _08017D54
- ldr r0, [r4]
- str r1, [r0, 0x20]
-_08017D54:
- ldr r0, [sp]
- cmp r0, 0x3
- beq _08017D6E
- cmp r0, 0x3
- bgt _08017D68
- cmp r0, 0x1
- beq _08017DB0
- b _08017DB6
- .align 2, 0
-_08017D64: .4byte gUnknown_203B208
-_08017D68:
- cmp r0, 0x6
- beq _08017DA8
- b _08017DB6
-_08017D6E:
- bl sub_8090A34
- cmp r0, 0x13
- ble _08017D82
- bl sub_801CBB8
- movs r0, 0x6
- bl sub_8016E68
- b _08017DB6
-_08017D82:
- ldr r0, _08017D9C
- ldr r0, [r0]
- ldrb r0, [r0, 0xE]
- bl sub_8090A60
- lsls r0, 24
- cmp r0, 0
- beq _08017DA0
- movs r0, 0x18
- bl sub_8016E68
- b _08017DB6
- .align 2, 0
-_08017D9C: .4byte gUnknown_203B208
-_08017DA0:
- movs r0, 0x1B
- bl sub_8016E68
- b _08017DB6
-_08017DA8:
- movs r0, 0x1A
- bl sub_8016E68
- b _08017DB6
-_08017DB0:
- movs r0, 0x17
- bl sub_8016E68
-_08017DB6:
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_8017D24
-
- thumb_func_start sub_8017DC0
-sub_8017DC0:
- push {lr}
- bl sub_801B410
- cmp r0, 0x1
- bls _08017DD8
- cmp r0, 0x3
- bhi _08017DD8
- bl sub_801B450
- movs r0, 0xE
- bl sub_8016E68
-_08017DD8:
- pop {r0}
- bx r0
- thumb_func_end sub_8017DC0
-
- thumb_func_start sub_8017DDC
-sub_8017DDC:
- push {lr}
- bl sub_801B410
- cmp r0, 0x1
- bls _08017DF4
- cmp r0, 0x3
- bhi _08017DF4
- bl sub_801B450
- movs r0, 0x17
- bl sub_8016E68
-_08017DF4:
- pop {r0}
- bx r0
- thumb_func_end sub_8017DDC
-
- thumb_func_start sub_8017DF8
-sub_8017DF8:
- push {lr}
- sub sp, 0x4
- mov r0, sp
- bl sub_80144A4
- cmp r0, 0
- bne _08017E10
- ldr r0, _08017E18
- ldr r0, [r0]
- ldr r0, [r0, 0x8]
- bl sub_8016E68
-_08017E10:
- add sp, 0x4
- pop {r0}
- bx r0
- .align 2, 0
-_08017E18: .4byte gUnknown_203B208
- thumb_func_end sub_8017DF8
-
- thumb_func_start sub_8017E1C
-sub_8017E1C:
- push {r4,lr}
- bl ResetUnusedInputStruct
- movs r0, 0
- movs r1, 0x1
- movs r2, 0x1
- bl sub_800641C
- ldr r4, _08017E50
- movs r0, 0xA8
- lsls r0, 1
- movs r1, 0x8
- bl MemoryAlloc
- str r0, [r4]
- movs r1, 0
- str r1, [r0, 0x14]
- str r1, [r0, 0x18]
- str r1, [r0, 0x1C]
- movs r0, 0
- bl sub_8017F10
- movs r0, 0x1
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_08017E50: .4byte gUnknown_203B20C
- thumb_func_end sub_8017E1C
-
- thumb_func_start sub_8017E54
-sub_8017E54:
- push {lr}
- ldr r0, _08017E6C
- ldr r0, [r0]
- ldr r0, [r0]
- cmp r0, 0xE
- bhi _08017EEC
- lsls r0, 2
- ldr r1, _08017E70
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08017E6C: .4byte gUnknown_203B20C
-_08017E70: .4byte _08017E74
- .align 2, 0
-_08017E74:
- .4byte _08017EB0
- .4byte _08017EB8
- .4byte _08017EEC
- .4byte _08017EE8
- .4byte _08017EBE
- .4byte _08017EBE
- .4byte _08017EC4
- .4byte _08017ECA
- .4byte _08017EEC
- .4byte _08017EEC
- .4byte _08017ED0
- .4byte _08017ED0
- .4byte _08017ED6
- .4byte _08017EDC
- .4byte _08017EE2
-_08017EB0:
- movs r0, 0x1
- bl sub_8017F10
- b _08017EEC
-_08017EB8:
- bl sub_8018588
- b _08017EEC
-_08017EBE:
- bl sub_8018620
- b _08017EEC
-_08017EC4:
- bl sub_8018904
- b _08017EEC
-_08017ECA:
- bl sub_8018AC8
- b _08017EEC
-_08017ED0:
- bl sub_80186F8
- b _08017EEC
-_08017ED6:
- bl sub_8018854
- b _08017EEC
-_08017EDC:
- bl sub_80189C8
- b _08017EEC
-_08017EE2:
- bl sub_8018AE4
- b _08017EEC
-_08017EE8:
- movs r0, 0x3
- b _08017EEE
-_08017EEC:
- movs r0, 0
-_08017EEE:
- pop {r1}
- bx r1
- thumb_func_end sub_8017E54
-
- thumb_func_start sub_8017EF4
-sub_8017EF4:
- push {r4,lr}
- ldr r4, _08017F0C
- ldr r0, [r4]
- cmp r0, 0
- beq _08017F06
- bl MemoryFree
- movs r0, 0
- str r0, [r4]
-_08017F06:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08017F0C: .4byte gUnknown_203B20C
- thumb_func_end sub_8017EF4
-
- thumb_func_start sub_8017F10
-sub_8017F10:
- push {lr}
- ldr r1, _08017F24
- ldr r1, [r1]
- str r0, [r1]
- bl sub_8017F28
- bl sub_8018100
- pop {r0}
- bx r0
- .align 2, 0
-_08017F24: .4byte gUnknown_203B20C
- thumb_func_end sub_8017F10
-
- thumb_func_start sub_8017F28
-sub_8017F28:
- push {r4-r7,lr}
- ldr r4, _08017F48
- ldr r0, [r4]
- adds r0, 0xF0
- bl sub_8006518
- ldr r0, [r4]
- ldr r0, [r0]
- cmp r0, 0xD
- bls _08017F3E
- b _080180BC
-_08017F3E:
- lsls r0, 2
- ldr r1, _08017F4C
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08017F48: .4byte gUnknown_203B20C
-_08017F4C: .4byte _08017F50
- .align 2, 0
-_08017F50:
- .4byte _080180BC
- .4byte _08017F88
- .4byte _080180BC
- .4byte _080180BC
- .4byte _08017FE8
- .4byte _08017FE8
- .4byte _0801809C
- .4byte _080180BC
- .4byte _080180BC
- .4byte _080180BC
- .4byte _08018034
- .4byte _08018034
- .4byte _08018084
- .4byte _0801809C
-_08017F88:
- ldr r4, _08017FDC
- ldr r1, [r4]
- ldr r2, _08017FE0
- adds r1, 0xF0
- 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 r1, [r4]
- movs r6, 0x84
- lsls r6, 1
- adds r1, r6
- adds r0, r2, 0
- ldm r0!, {r3,r5,r7}
- stm r1!, {r3,r5,r7}
- ldm r0!, {r3,r6,r7}
- stm r1!, {r3,r6,r7}
- ldr r0, [r4]
- adds r0, 0xF0
- ldm r2!, {r5-r7}
- stm r0!, {r5-r7}
- ldm r2!, {r1,r3,r5}
- stm r0!, {r1,r3,r5}
- bl sub_80182E4
- ldr r2, [r4]
- movs r0, 0x90
- lsls r0, 1
- adds r2, r0
- ldr r1, _08017FE4
- ldm r1!, {r3,r6,r7}
- stm r2!, {r3,r6,r7}
- ldm r1!, {r5-r7}
- stm r2!, {r5-r7}
- ldr r1, [r4]
- adds r0, r1, r0
- adds r1, 0x20
- bl sub_8012CAC
- b _080180E0
- .align 2, 0
-_08017FDC: .4byte gUnknown_203B20C
-_08017FE0: .4byte gUnknown_80DB7B8
-_08017FE4: .4byte gUnknown_80DB7D0
-_08017FE8:
- ldr r3, _0801802C
- ldr r1, [r3]
- ldr r2, _08018030
- adds r1, 0xF0
- adds r0, r2, 0
- ldm r0!, {r4-r6}
- stm r1!, {r4-r6}
- ldm r0!, {r4,r5,r7}
- stm r1!, {r4,r5,r7}
- ldr r1, [r3]
- movs r6, 0x84
- lsls r6, 1
- adds r1, r6
- adds r0, r2, 0
- ldm r0!, {r4,r5,r7}
- stm r1!, {r4,r5,r7}
- ldm r0!, {r4,r6,r7}
- stm r1!, {r4,r6,r7}
- ldr r1, [r3]
- movs r5, 0x90
- lsls r5, 1
- adds r1, r5
- adds r0, r2, 0
- ldm r0!, {r4,r6,r7}
- stm r1!, {r4,r6,r7}
- ldm r0!, {r5-r7}
- stm r1!, {r5-r7}
- ldr r0, [r3]
- adds r0, 0xF0
- ldm r2!, {r1,r3,r4}
- stm r0!, {r1,r3,r4}
- ldm r2!, {r5-r7}
- stm r0!, {r5-r7}
- b _080180E0
- .align 2, 0
-_0801802C: .4byte gUnknown_203B20C
-_08018030: .4byte gUnknown_80DB7B8
-_08018034:
- ldr r3, _08018078
- ldr r1, [r3]
- ldr r2, _0801807C
- adds r1, 0xF0
- adds r0, r2, 0
- ldm r0!, {r4-r6}
- stm r1!, {r4-r6}
- ldm r0!, {r4,r5,r7}
- stm r1!, {r4,r5,r7}
- ldr r1, [r3]
- movs r6, 0x84
- lsls r6, 1
- adds r1, r6
- adds r0, r2, 0
- ldm r0!, {r4,r5,r7}
- stm r1!, {r4,r5,r7}
- ldm r0!, {r4,r6,r7}
- stm r1!, {r4,r6,r7}
- ldr r0, [r3]
- movs r5, 0x90
- lsls r5, 1
- adds r0, r5
- ldm r2!, {r1,r6,r7}
- stm r0!, {r1,r6,r7}
- ldm r2!, {r4-r6}
- stm r0!, {r4-r6}
- ldr r1, [r3]
- adds r1, 0xF0
- ldr r0, _08018080
- ldm r0!, {r2,r3,r7}
- stm r1!, {r2,r3,r7}
- ldm r0!, {r4-r6}
- stm r1!, {r4-r6}
- b _080180E0
- .align 2, 0
-_08018078: .4byte gUnknown_203B20C
-_0801807C: .4byte gUnknown_80DB7B8
-_08018080: .4byte gUnknown_80DB800
-_08018084:
- ldr r0, _08018094
- ldr r1, [r0]
- movs r7, 0x84
- lsls r7, 1
- adds r1, r7
- ldr r0, _08018098
- b _080180A8
- .align 2, 0
-_08018094: .4byte gUnknown_203B20C
-_08018098: .4byte gUnknown_80DB818
-_0801809C:
- ldr r0, _080180B4
- ldr r1, [r0]
- movs r0, 0x90
- lsls r0, 1
- adds r1, r0
- ldr r0, _080180B8
-_080180A8:
- ldm r0!, {r2-r4}
- stm r1!, {r2-r4}
- ldm r0!, {r5-r7}
- stm r1!, {r5-r7}
- b _080180E0
- .align 2, 0
-_080180B4: .4byte gUnknown_203B20C
-_080180B8: .4byte gUnknown_80DB7E8
-_080180BC:
- ldr r0, _080180F8
- mov r12, r0
- ldr r4, _080180FC
- movs r3, 0
- movs r2, 0x3
-_080180C6:
- mov r5, r12
- ldr r1, [r5]
- adds r1, r3
- adds r1, 0xF0
- 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 _080180C6
-_080180E0:
- bl ResetUnusedInputStruct
- ldr r0, _080180F8
- ldr r0, [r0]
- adds r0, 0xF0
- movs r1, 0x1
- movs r2, 0x1
- bl sub_800641C
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080180F8: .4byte gUnknown_203B20C
-_080180FC: .4byte gUnknown_80DB7B8
- thumb_func_end sub_8017F28
-
- thumb_func_start sub_8018100
-sub_8018100:
- push {r4,lr}
- sub sp, 0x8
- ldr r1, _0801811C
- ldr r0, [r1]
- ldr r0, [r0]
- adds r4, r1, 0
- cmp r0, 0xE
- bls _08018112
- b _08018278
-_08018112:
- lsls r0, 2
- ldr r1, _08018120
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0801811C: .4byte gUnknown_203B20C
-_08018120: .4byte _08018124
- .align 2, 0
-_08018124:
- .4byte _08018278
- .4byte _08018160
- .4byte _08018278
- .4byte _08018278
- .4byte _08018172
- .4byte _08018180
- .4byte _08018188
- .4byte _080181A8
- .4byte _08018278
- .4byte _08018278
- .4byte _080181B2
- .4byte _080181C0
- .4byte _080181CE
- .4byte _0801823C
- .4byte _08018270
-_08018160:
- ldr r2, [r4]
- adds r0, r2, 0
- adds r0, 0x70
- adds r1, r2, 0
- adds r1, 0x20
- adds r3, r2, 0
- adds r3, 0x60
- ldr r2, [r2, 0x14]
- b _0801825C
-_08018172:
- movs r0, 0x3
- movs r1, 0x3
- movs r2, 0
- movs r3, 0xA
- bl sub_801A5D8
- b _08018278
-_08018180:
- movs r0, 0x1
- bl sub_801A8D0
- b _08018278
-_08018188:
- bl sub_801A9E0
- bl sub_801841C
- ldr r0, _080181A4
- ldr r2, [r0]
- adds r0, r2, 0
- adds r0, 0x70
- adds r1, r2, 0
- adds r1, 0x20
- adds r3, r2, 0
- adds r3, 0x60
- ldr r2, [r2, 0x18]
- b _0801825C
- .align 2, 0
-_080181A4: .4byte gUnknown_203B20C
-_080181A8:
- ldr r0, [r4]
- adds r0, 0x8
- bl sub_801B3C0
- b _08018278
-_080181B2:
- movs r0, 0x1
- movs r1, 0x3
- movs r2, 0
- movs r3, 0xA
- bl sub_801C8C4
- b _080181C6
-_080181C0:
- movs r0, 0x1
- bl sub_801CB5C
-_080181C6:
- movs r0, 0
- bl sub_801AD34
- b _08018278
-_080181CE:
- ldr r2, [r4]
- adds r1, r2, 0
- adds r1, 0xD0
- movs r0, 0x2
- str r0, [r1]
- subs r1, 0x8
- movs r0, 0x1
- str r0, [r1]
- ldr r0, _080181F8
- ldr r1, [r0]
- ldrb r0, [r2, 0xA]
- lsls r0, 1
- adds r1, 0x50
- adds r3, r1, r0
- ldrh r0, [r3]
- cmp r0, 0x63
- bls _080181FC
- adds r1, r2, 0
- adds r1, 0xCC
- movs r0, 0x63
- b _08018202
- .align 2, 0
-_080181F8: .4byte gUnknown_203B460
-_080181FC:
- adds r1, r2, 0
- adds r1, 0xCC
- ldrh r0, [r3]
-_08018202:
- str r0, [r1]
- ldr r2, [r4]
- adds r1, r2, 0
- adds r1, 0xC4
- adds r0, r2, 0
- adds r0, 0xCC
- ldr r0, [r0]
- str r0, [r1]
- adds r1, 0x10
- movs r0, 0x1
- str r0, [r1]
- adds r1, 0x4
- movs r3, 0x84
- lsls r3, 1
- adds r0, r2, r3
- str r0, [r1]
- adds r1, 0x4
- movs r0, 0x28
- str r0, [r1]
- adds r1, 0x4
- movs r0, 0x12
- str r0, [r1]
- adds r0, r2, 0
- adds r0, 0xC0
- bl sub_8013AA0
- bl sub_8018280
- b _08018278
-_0801823C:
- bl sub_801CCD8
- movs r0, 0
- bl sub_801AD34
- bl sub_80184D4
- ldr r0, _0801826C
- ldr r2, [r0]
- adds r0, r2, 0
- adds r0, 0x70
- adds r1, r2, 0
- adds r1, 0x20
- adds r3, r2, 0
- adds r3, 0x60
- ldr r2, [r2, 0x1C]
-_0801825C:
- str r2, [sp]
- movs r2, 0x2
- str r2, [sp, 0x4]
- movs r2, 0
- bl sub_8012D60
- b _08018278
- .align 2, 0
-_0801826C: .4byte gUnknown_203B20C
-_08018270:
- ldr r0, [r4]
- adds r0, 0x8
- bl sub_801B3C0
-_08018278:
- add sp, 0x8
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_8018100
-
- thumb_func_start sub_8018280
-sub_8018280:
- push {r4,lr}
- sub sp, 0x4
- ldr r4, _080182DC
- ldr r0, [r4]
- adds r0, 0xD4
- ldr r0, [r0]
- bl sub_8008C54
- ldr r0, [r4]
- adds r0, 0xD4
- ldr r0, [r0]
- bl sub_80073B8
- ldr r2, _080182E0
- ldr r0, [r4]
- adds r0, 0xD4
- ldr r3, [r0]
- movs r0, 0
- str r0, [sp]
- movs r0, 0x4
- movs r1, 0
- bl xxx_call_draw_string
- ldr r0, [r4]
- adds r0, 0xC0
- bl sub_8013C68
- ldr r0, [r4]
- adds r0, 0xD4
- ldr r0, [r0]
- bl sub_80073E0
- bl sub_801CCD8
- movs r0, 0
- bl sub_801AD34
- ldr r0, [r4]
- adds r0, 0x70
- movs r1, 0
- bl sub_8012EA4
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080182DC: .4byte gUnknown_203B20C
-_080182E0: .4byte gUnknown_80DB830
- thumb_func_end sub_8018280
-
- thumb_func_start sub_80182E4
-sub_80182E4:
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- movs r0, 0
- mov r8, r0
- ldr r4, _080183DC
- ldr r0, [r4]
- adds r0, 0x60
- movs r1, 0
- movs r2, 0x10
- bl MemoryFill16
- ldr r1, [r4]
- ldr r0, _080183E0
- ldr r0, [r0]
- str r0, [r1, 0x20]
- movs r0, 0x2
- str r0, [r1, 0x24]
- bl sub_8090A34
- cmp r0, 0
- beq _0801831C
- movs r0, 0
- bl sub_801CF50
- lsls r0, 24
- cmp r0, 0
- beq _08018324
-_0801831C:
- ldr r0, [r4]
- adds r0, 0x60
- movs r1, 0x1
- strh r1, [r0]
-_08018324:
- movs r1, 0x1
- add r8, r1
- ldr r4, _080183DC
- ldr r2, [r4]
- mov r0, r8
- lsls r3, r0, 3
- adds r0, r2, 0
- adds r0, 0x20
- adds r0, r3
- ldr r1, _080183E4
- ldr r1, [r1]
- str r1, [r0]
- adds r2, 0x24
- adds r2, r3
- movs r0, 0x3
- str r0, [r2]
- movs r0, 0x1
- bl sub_801CF14
- lsls r0, 24
- cmp r0, 0
- bne _08018358
- bl sub_8090A34
- cmp r0, 0x13
- ble _08018366
-_08018358:
- ldr r0, [r4]
- mov r2, r8
- lsls r1, r2, 1
- adds r0, 0x60
- adds r0, r1
- movs r1, 0x1
- strh r1, [r0]
-_08018366:
- movs r0, 0x1
- add r8, r0
- ldr r4, _080183DC
- ldr r7, [r4]
- mov r2, r8
- lsls r1, r2, 3
- adds r2, r7, 0
- adds r2, 0x20
- adds r3, r2, r1
- ldr r0, _080183E8
- ldr r0, [r0]
- str r0, [r3]
- adds r6, r7, 0
- adds r6, 0x24
- adds r1, r6, r1
- movs r3, 0x1
- str r3, [r1]
- add r8, r3
- mov r1, r8
- lsls r0, r1, 3
- adds r2, r0
- movs r1, 0
- str r1, [r2]
- adds r0, r6, r0
- str r3, [r0]
- movs r5, 0
- mov r12, r4
- cmp r5, r8
- bge _080183C0
- adds r4, r7, 0
- adds r2, r4, 0
- adds r2, 0x60
- adds r3, r6, 0
-_080183A8:
- ldrh r0, [r2]
- cmp r0, 0
- bne _080183B6
- ldr r1, [r3]
- ldr r0, [r4, 0x14]
- cmp r1, r0
- beq _08018410
-_080183B6:
- adds r2, 0x2
- adds r3, 0x8
- adds r5, 0x1
- cmp r5, r8
- blt _080183A8
-_080183C0:
- movs r5, 0
- cmp r5, r8
- bge _08018410
- mov r2, r12
- ldr r1, [r2]
- adds r0, r1, 0
- adds r0, 0x60
- ldrh r0, [r0]
- cmp r0, 0
- bne _080183EC
- ldr r0, [r1, 0x24]
- str r0, [r1, 0x14]
- b _08018410
- .align 2, 0
-_080183DC: .4byte gUnknown_203B20C
-_080183E0: .4byte gUnknown_80D4958
-_080183E4: .4byte gUnknown_80D4964
-_080183E8: .4byte gUnknown_80D4934
-_080183EC:
- adds r5, 0x1
- cmp r5, r8
- bge _08018410
- mov r0, r12
- ldr r2, [r0]
- lsls r0, r5, 1
- adds r1, r2, 0
- adds r1, 0x60
- adds r1, r0
- ldrh r0, [r1]
- cmp r0, 0
- bne _080183EC
- lsls r0, r5, 3
- adds r1, r2, 0
- adds r1, 0x24
- adds r1, r0
- ldr r0, [r1]
- str r0, [r2, 0x14]
-_08018410:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_80182E4
-
- thumb_func_start sub_801841C
-sub_801841C:
- push {r4-r7,lr}
- ldr r4, _080184A0
- ldr r0, [r4]
- adds r0, 0x60
- movs r1, 0
- movs r2, 0x10
- bl MemoryFill16
- ldr r1, [r4]
- ldr r0, _080184A4
- ldr r0, [r0]
- str r0, [r1, 0x20]
- movs r0, 0x2
- str r0, [r1, 0x24]
- ldr r0, [r1, 0xC]
- bl sub_801ADA0
- lsls r0, 24
- cmp r0, 0
- bne _0801844C
- ldr r0, [r4]
- adds r0, 0x60
- movs r1, 0x1
- strh r1, [r0]
-_0801844C:
- ldr r2, [r4]
- movs r1, 0x1
- ldr r0, _080184A8
- ldr r0, [r0]
- str r0, [r2, 0x28]
- movs r0, 0x4
- str r0, [r2, 0x2C]
- movs r5, 0x2
- movs r0, 0
- str r0, [r2, 0x30]
- str r1, [r2, 0x34]
- movs r3, 0
- adds r6, r4, 0
- mov r12, r2
- mov r4, r12
- adds r4, 0x60
- adds r2, 0x24
-_0801846E:
- ldrh r0, [r4]
- cmp r0, 0
- bne _0801847E
- ldr r1, [r2]
- mov r7, r12
- ldr r0, [r7, 0x18]
- cmp r1, r0
- beq _080184CE
-_0801847E:
- adds r4, 0x2
- adds r2, 0x8
- adds r3, 0x1
- cmp r3, r5
- blt _0801846E
- movs r3, 0
- cmp r3, r5
- bge _080184CE
- ldr r1, [r6]
- adds r0, r1, 0
- adds r0, 0x60
- ldrh r0, [r0]
- cmp r0, 0
- bne _080184AC
- ldr r0, [r1, 0x24]
- str r0, [r1, 0x18]
- b _080184CE
- .align 2, 0
-_080184A0: .4byte gUnknown_203B20C
-_080184A4: .4byte gUnknown_80D4958
-_080184A8: .4byte gUnknown_80D4970
-_080184AC:
- adds r3, 0x1
- cmp r3, r5
- bge _080184CE
- ldr r2, [r6]
- lsls r0, r3, 1
- adds r1, r2, 0
- adds r1, 0x60
- adds r1, r0
- ldrh r0, [r1]
- cmp r0, 0
- bne _080184AC
- lsls r0, r3, 3
- adds r1, r2, 0
- adds r1, 0x24
- adds r1, r0
- ldr r0, [r1]
- str r0, [r2, 0x18]
-_080184CE:
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_801841C
-
- thumb_func_start sub_80184D4
-sub_80184D4:
- push {r4-r7,lr}
- ldr r4, _08018554
- ldr r0, [r4]
- adds r0, 0x60
- movs r1, 0
- movs r2, 0x10
- bl MemoryFill16
- ldr r1, [r4]
- ldr r0, _08018558
- ldr r0, [r0]
- str r0, [r1, 0x20]
- movs r0, 0x3
- str r0, [r1, 0x24]
- bl sub_8090A34
- cmp r0, 0x13
- ble _08018500
- ldr r0, [r4]
- adds r0, 0x60
- movs r1, 0x1
- strh r1, [r0]
-_08018500:
- ldr r2, [r4]
- movs r1, 0x1
- ldr r0, _0801855C
- ldr r0, [r0]
- str r0, [r2, 0x28]
- movs r0, 0x4
- str r0, [r2, 0x2C]
- movs r5, 0x2
- movs r0, 0
- str r0, [r2, 0x30]
- str r1, [r2, 0x34]
- movs r3, 0
- adds r6, r4, 0
- mov r12, r2
- mov r4, r12
- adds r4, 0x60
- adds r2, 0x24
-_08018522:
- ldrh r0, [r4]
- cmp r0, 0
- bne _08018532
- ldr r1, [r2]
- mov r7, r12
- ldr r0, [r7, 0x1C]
- cmp r1, r0
- beq _08018582
-_08018532:
- adds r4, 0x2
- adds r2, 0x8
- adds r3, 0x1
- cmp r3, r5
- blt _08018522
- movs r3, 0
- cmp r3, r5
- bge _08018582
- ldr r1, [r6]
- adds r0, r1, 0
- adds r0, 0x60
- ldrh r0, [r0]
- cmp r0, 0
- bne _08018560
- ldr r0, [r1, 0x24]
- str r0, [r1, 0x1C]
- b _08018582
- .align 2, 0
-_08018554: .4byte gUnknown_203B20C
-_08018558: .4byte gUnknown_80D4964
-_0801855C: .4byte gUnknown_80D4970
-_08018560:
- adds r3, 0x1
- cmp r3, r5
- bge _08018582
- ldr r2, [r6]
- lsls r0, r3, 1
- adds r1, r2, 0
- adds r1, 0x60
- adds r1, r0
- ldrh r0, [r1]
- cmp r0, 0
- bne _08018560
- lsls r0, r3, 3
- adds r1, r2, 0
- adds r1, 0x24
- adds r1, r0
- ldr r0, [r1]
- str r0, [r2, 0x1C]
-_08018582:
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_80184D4
-
- thumb_func_start sub_8018588
-sub_8018588:
- push {r4,lr}
- sub sp, 0x4
- movs r0, 0
- str r0, [sp]
- ldr r4, _080185C4
- ldr r0, [r4]
- adds r0, 0x70
- bl sub_8012FD8
- lsls r0, 24
- cmp r0, 0
- bne _080185B4
- ldr r0, [r4]
- adds r0, 0x70
- mov r1, sp
- bl sub_8013114
- ldr r1, [sp]
- cmp r1, 0x1
- beq _080185B4
- ldr r0, [r4]
- str r1, [r0, 0x14]
-_080185B4:
- ldr r0, [sp]
- cmp r0, 0x2
- beq _080185CE
- cmp r0, 0x2
- bgt _080185C8
- cmp r0, 0x1
- beq _08018610
- b _08018616
- .align 2, 0
-_080185C4: .4byte gUnknown_203B20C
-_080185C8:
- cmp r0, 0x3
- beq _080185EA
- b _08018616
-_080185CE:
- bl sub_8090A34
- cmp r0, 0
- beq _080185F6
- movs r0, 0
- bl sub_801CF50
- lsls r0, 24
- cmp r0, 0
- bne _080185F6
- movs r0, 0x4
- bl sub_8017F10
- b _08018616
-_080185EA:
- movs r0, 0x1
- bl sub_801CF14
- lsls r0, 24
- cmp r0, 0
- beq _08018608
-_080185F6:
- ldr r0, _08018604
- ldr r0, [r0]
- adds r0, 0x70
- movs r1, 0x1
- bl sub_8012EA4
- b _08018616
- .align 2, 0
-_08018604: .4byte gUnknown_203B20C
-_08018608:
- movs r0, 0xA
- bl sub_8017F10
- b _08018616
-_08018610:
- movs r0, 0x3
- bl sub_8017F10
-_08018616:
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_8018588
-
- thumb_func_start sub_8018620
-sub_8018620:
- push {r4-r7,lr}
- movs r0, 0x1
- bl sub_801A6E8
- cmp r0, 0x3
- beq _0801863C
- cmp r0, 0x3
- bhi _08018636
- cmp r0, 0x2
- beq _080186E8
- b _080186F2
-_08018636:
- cmp r0, 0x4
- beq _080186C0
- b _080186F2
-_0801863C:
- bl sub_801AEA8
- cmp r0, 0
- beq _08018698
- movs r5, 0
- ldr r6, _0801868C
- movs r7, 0
-_0801864A:
- adds r0, r5, 0
- bl sub_801AED0
- cmp r0, 0
- beq _0801866A
- lsls r4, r5, 2
- ldr r0, [r6]
- adds r0, r4
- bl sub_80917B8
- ldr r0, [r6]
- adds r0, r4
- strb r7, [r0, 0x2]
- ldr r0, [r6]
- adds r0, r4
- strb r7, [r0]
-_0801866A:
- adds r5, 0x1
- cmp r5, 0x13
- ble _0801864A
- bl sub_80910B4
- bl sub_801AE84
- bl sub_8090A34
- cmp r0, 0
- bne _08018690
- bl sub_801A928
- movs r0, 0x1
- bl sub_8017F10
- b _080186F2
- .align 2, 0
-_0801868C: .4byte gUnknown_203B460
-_08018690:
- movs r0, 0x5
- bl sub_8017F10
- b _080186F2
-_08018698:
- bl sub_801A8AC
- ldr r1, _080186B8
- ldr r2, [r1]
- str r0, [r2, 0xC]
- ldr r1, _080186BC
- ldr r1, [r1]
- lsls r0, 2
- adds r1, r0
- ldr r0, [r1]
- str r0, [r2, 0x8]
- movs r0, 0x6
- bl sub_8017F10
- b _080186F2
- .align 2, 0
-_080186B8: .4byte gUnknown_203B20C
-_080186BC: .4byte gUnknown_203B460
-_080186C0:
- bl sub_801A8AC
- ldr r1, _080186E0
- ldr r2, [r1]
- str r0, [r2, 0xC]
- ldr r1, _080186E4
- ldr r1, [r1]
- lsls r0, 2
- adds r1, r0
- ldr r0, [r1]
- str r0, [r2, 0x8]
- movs r0, 0x7
- bl sub_8017F10
- b _080186F2
- .align 2, 0
-_080186E0: .4byte gUnknown_203B20C
-_080186E4: .4byte gUnknown_203B460
-_080186E8:
- bl sub_801A928
- movs r0, 0x1
- bl sub_8017F10
-_080186F2:
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_8018620
-
- thumb_func_start sub_80186F8
-sub_80186F8:
- push {r4-r7,lr}
- sub sp, 0x4
- movs r0, 0x1
- bl sub_801CA08
- cmp r0, 0x2
- bne _08018708
- b _08018838
-_08018708:
- cmp r0, 0x2
- bhi _08018714
- cmp r0, 0x1
- bne _08018712
- b _08018844
-_08018712:
- b _0801884A
-_08018714:
- cmp r0, 0x3
- beq _0801871E
- cmp r0, 0x4
- beq _0801880C
- b _0801884A
-_0801871E:
- bl sub_801CFB8
- cmp r0, 0
- beq _080187E0
- movs r6, 0
- mov r5, sp
- ldr r7, _0801876C
-_0801872C:
- lsls r0, r6, 24
- lsrs r4, r0, 24
- adds r0, r4, 0
- bl sub_801CFE0
- cmp r0, 0
- beq _080187B2
- ldr r1, _08018770
- ldr r0, [sp]
- ands r0, r1
- orrs r0, r4
- str r0, [sp]
- ldrb r0, [r5]
- bl sub_8090A60
- lsls r0, 24
- cmp r0, 0
- beq _08018786
- ldr r2, _08018774
- ldr r1, [r2]
- ldrb r0, [r5]
- lsls r0, 1
- adds r1, 0x50
- adds r1, r0
- ldrh r1, [r1]
- cmp r1, 0x63
- bls _08018778
- ldr r0, [sp]
- ands r0, r7
- movs r1, 0xC6
- lsls r1, 7
- b _08018780
- .align 2, 0
-_0801876C: .4byte 0xffff00ff
-_08018770: .4byte 0xffffff00
-_08018774: .4byte gUnknown_203B460
-_08018778:
- lsls r1, 24
- lsrs r1, 16
- ldr r0, [sp]
- ands r0, r7
-_08018780:
- orrs r0, r1
- str r0, [sp]
- b _08018794
-_08018786:
- ldr r0, [sp]
- ands r0, r7
- movs r1, 0x80
- lsls r1, 1
- orrs r0, r1
- str r0, [sp]
- ldr r2, _080187DC
-_08018794:
- ldr r2, [r2]
- ldrb r0, [r5]
- lsls r0, 1
- adds r2, 0x50
- adds r2, r0
- ldr r0, [sp]
- lsrs r0, 8
- lsls r0, 24
- lsrs r0, 24
- ldrh r1, [r2]
- subs r1, r0
- strh r1, [r2]
- mov r0, sp
- bl sub_8091274
-_080187B2:
- adds r6, 0x1
- cmp r6, 0xEF
- ble _0801872C
- bl sub_80910B4
- bl sub_801CF94
- movs r0, 0x1
- bl sub_801CF14
- lsls r0, 24
- cmp r0, 0
- bne _08018838
- bl sub_8090A34
- cmp r0, 0x13
- bgt _08018838
- movs r0, 0xB
- bl sub_8017F10
- b _0801884A
- .align 2, 0
-_080187DC: .4byte gUnknown_203B460
-_080187E0:
- bl sub_801CB24
- ldr r4, _08018808
- ldr r1, [r4]
- strb r0, [r1, 0x10]
- ldr r1, [r4]
- adds r0, r1, 0
- adds r0, 0x8
- ldrb r1, [r1, 0x10]
- movs r2, 0
- bl sub_8090A8C
- ldr r1, [r4]
- movs r0, 0x1
- strb r0, [r1, 0x9]
- movs r0, 0xD
- bl sub_8017F10
- b _0801884A
- .align 2, 0
-_08018808: .4byte gUnknown_203B20C
-_0801880C:
- bl sub_801CB24
- ldr r4, _08018834
- ldr r1, [r4]
- strb r0, [r1, 0x10]
- ldr r1, [r4]
- adds r0, r1, 0
- adds r0, 0x8
- ldrb r1, [r1, 0x10]
- movs r2, 0
- bl sub_8090A8C
- ldr r1, [r4]
- movs r0, 0x1
- strb r0, [r1, 0x9]
- movs r0, 0xE
- bl sub_8017F10
- b _0801884A
- .align 2, 0
-_08018834: .4byte gUnknown_203B20C
-_08018838:
- bl sub_801CBB8
- movs r0, 0x1
- bl sub_8017F10
- b _0801884A
-_08018844:
- movs r0, 0
- bl sub_801AD34
-_0801884A:
- add sp, 0x4
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_80186F8
-
- thumb_func_start sub_8018854
-sub_8018854:
- push {r4,lr}
- sub sp, 0x4
- movs r0, 0
- bl sub_801CA08
- ldr r4, _080188E0
- ldr r0, [r4]
- adds r0, 0x70
- bl sub_8012FD8
- ldr r0, [r4]
- adds r0, 0xC0
- bl sub_8013BBC
- cmp r0, 0x1
- beq _080188F8
- cmp r0, 0x1
- bcc _080188FC
- cmp r0, 0x2
- beq _080188F0
- cmp r0, 0x3
- bne _080188FC
- ldr r1, [r4]
- adds r0, r1, 0
- adds r0, 0xC0
- ldr r0, [r0]
- strb r0, [r1, 0x9]
- ldr r0, _080188E4
- ldr r1, [r0]
- ldr r3, [r4]
- ldrb r0, [r3, 0xA]
- lsls r0, 1
- adds r1, 0x50
- adds r1, r0
- ldrb r2, [r3, 0x9]
- ldrh r0, [r1]
- subs r0, r2
- strh r0, [r1]
- ldrb r2, [r3, 0xA]
- ldr r1, _080188E8
- ldr r0, [sp]
- ands r0, r1
- orrs r0, r2
- str r0, [sp]
- ldrb r1, [r3, 0x9]
- lsls r1, 8
- ldr r2, _080188EC
- ands r0, r2
- orrs r0, r1
- str r0, [sp]
- mov r0, sp
- bl sub_8091274
- movs r0, 0x1
- bl sub_801CF14
- lsls r0, 24
- cmp r0, 0
- bne _080188D2
- bl sub_8090A34
- cmp r0, 0x13
- ble _080188F0
-_080188D2:
- bl sub_801CBB8
- movs r0, 0x1
- bl sub_8017F10
- b _080188FC
- .align 2, 0
-_080188E0: .4byte gUnknown_203B20C
-_080188E4: .4byte gUnknown_203B460
-_080188E8: .4byte 0xffffff00
-_080188EC: .4byte 0xffff00ff
-_080188F0:
- movs r0, 0xB
- bl sub_8017F10
- b _080188FC
-_080188F8:
- bl sub_8018280
-_080188FC:
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_8018854
-
- thumb_func_start sub_8018904
-sub_8018904:
- push {r4,lr}
- sub sp, 0x4
- movs r0, 0
- str r0, [sp]
- bl sub_801A6E8
- ldr r4, _08018944
- ldr r0, [r4]
- adds r0, 0x70
- bl sub_8012FD8
- lsls r0, 24
- cmp r0, 0
- bne _08018934
- ldr r0, [r4]
- adds r0, 0x70
- mov r1, sp
- bl sub_8013114
- ldr r1, [sp]
- cmp r1, 0x1
- beq _08018934
- ldr r0, [r4]
- str r1, [r0, 0x18]
-_08018934:
- ldr r0, [sp]
- cmp r0, 0x2
- beq _0801894E
- cmp r0, 0x2
- bgt _08018948
- cmp r0, 0x1
- beq _080189BA
- b _080189C0
- .align 2, 0
-_08018944: .4byte gUnknown_203B20C
-_08018948:
- cmp r0, 0x4
- beq _080189AC
- b _080189C0
-_0801894E:
- ldr r4, _08018978
- ldr r0, [r4]
- ldrb r0, [r0, 0xA]
- bl sub_8091524
- lsls r0, 24
- cmp r0, 0
- beq _0801896C
- ldr r0, [r4]
- ldr r0, [r0, 0xC]
- bl sub_801ADA0
- lsls r0, 24
- cmp r0, 0
- bne _0801897C
-_0801896C:
- ldr r0, [r4]
- adds r0, 0x70
- movs r1, 0x1
- bl sub_8012EA4
- b _080189C0
- .align 2, 0
-_08018978: .4byte gUnknown_203B20C
-_0801897C:
- ldr r0, [r4]
- adds r0, 0x8
- bl sub_80917B8
- ldr r0, [r4]
- ldr r0, [r0, 0xC]
- bl sub_80911F8
- bl sub_80910B4
- bl sub_8090A34
- cmp r0, 0
- bne _080189A4
- bl sub_801A928
- movs r0, 0x1
- bl sub_8017F10
- b _080189C0
-_080189A4:
- movs r0, 0x5
- bl sub_8017F10
- b _080189C0
-_080189AC:
- movs r0, 0
- bl sub_8099690
- movs r0, 0x7
- bl sub_8017F10
- b _080189C0
-_080189BA:
- movs r0, 0x5
- bl sub_8017F10
-_080189C0:
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_8018904
-
- thumb_func_start sub_80189C8
-sub_80189C8:
- push {r4,lr}
- sub sp, 0x8
- movs r0, 0
- str r0, [sp]
- bl sub_801CA08
- ldr r4, _08018A08
- ldr r0, [r4]
- adds r0, 0x70
- bl sub_8012FD8
- lsls r0, 24
- cmp r0, 0
- bne _080189F8
- ldr r0, [r4]
- adds r0, 0x70
- mov r1, sp
- bl sub_8013114
- ldr r1, [sp]
- cmp r1, 0x1
- beq _080189F8
- ldr r0, [r4]
- str r1, [r0, 0x1C]
-_080189F8:
- ldr r0, [sp]
- cmp r0, 0x3
- beq _08018A12
- cmp r0, 0x3
- bgt _08018A0C
- cmp r0, 0x1
- beq _08018AB8
- b _08018ABE
- .align 2, 0
-_08018A08: .4byte gUnknown_203B20C
-_08018A0C:
- cmp r0, 0x4
- beq _08018AB0
- b _08018ABE
-_08018A12:
- bl sub_8090A34
- cmp r0, 0x13
- ble _08018A2C
- ldr r0, _08018A28
- ldr r0, [r0]
- adds r0, 0x70
- movs r1, 0x1
- bl sub_8012EA4
- b _08018ABE
- .align 2, 0
-_08018A28: .4byte gUnknown_203B20C
-_08018A2C:
- ldr r4, _08018A44
- ldr r0, [r4]
- ldrb r0, [r0, 0xA]
- bl sub_8090A60
- lsls r0, 24
- cmp r0, 0
- beq _08018A48
- movs r0, 0xC
- bl sub_8017F10
- b _08018ABE
- .align 2, 0
-_08018A44: .4byte gUnknown_203B20C
-_08018A48:
- ldr r0, _08018A9C
- ldr r1, [r0]
- ldr r3, [r4]
- ldrb r0, [r3, 0xA]
- lsls r0, 1
- adds r1, 0x50
- adds r1, r0
- ldrb r2, [r3, 0x9]
- ldrh r0, [r1]
- subs r0, r2
- strh r0, [r1]
- ldrb r2, [r3, 0xA]
- ldr r1, _08018AA0
- ldr r0, [sp, 0x4]
- ands r0, r1
- orrs r0, r2
- str r0, [sp, 0x4]
- ldrb r1, [r3, 0x9]
- lsls r1, 8
- ldr r2, _08018AA4
- ands r0, r2
- orrs r0, r1
- str r0, [sp, 0x4]
- add r0, sp, 0x4
- bl sub_8091274
- movs r0, 0x1
- bl sub_801CF14
- lsls r0, 24
- cmp r0, 0
- bne _08018A90
- bl sub_8090A34
- cmp r0, 0x13
- ble _08018AA8
-_08018A90:
- bl sub_801CBB8
- movs r0, 0x1
- bl sub_8017F10
- b _08018ABE
- .align 2, 0
-_08018A9C: .4byte gUnknown_203B460
-_08018AA0: .4byte 0xffffff00
-_08018AA4: .4byte 0xffff00ff
-_08018AA8:
- movs r0, 0xB
- bl sub_8017F10
- b _08018ABE
-_08018AB0:
- movs r0, 0xE
- bl sub_8017F10
- b _08018ABE
-_08018AB8:
- movs r0, 0xB
- bl sub_8017F10
-_08018ABE:
- add sp, 0x8
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80189C8
-
- thumb_func_start sub_8018AC8
-sub_8018AC8:
- push {lr}
- bl sub_801B410
- cmp r0, 0x1
- bls _08018AE0
- cmp r0, 0x3
- bhi _08018AE0
- bl sub_801B450
- movs r0, 0x5
- bl sub_8017F10
-_08018AE0:
- pop {r0}
- bx r0
- thumb_func_end sub_8018AC8
-
- thumb_func_start sub_8018AE4
-sub_8018AE4:
- push {lr}
- bl sub_801B410
- cmp r0, 0x1
- bls _08018AFC
- cmp r0, 0x3
- bhi _08018AFC
- bl sub_801B450
- movs r0, 0xB
- bl sub_8017F10
-_08018AFC:
- pop {r0}
- bx r0
- thumb_func_end sub_8018AE4
-
- thumb_func_start DisplayKeckleonDialogueSprite
-DisplayKeckleonDialogueSprite:
- push {r4,r5,lr}
- adds r4, r0, 0
- ldr r5, _08018B30
- movs r0, 0xA4
- lsls r0, 1
- movs r1, 0x8
- bl MemoryAlloc
- adds r1, r0, 0
- str r1, [r5]
- movs r2, 0
- str r2, [r1, 0x28]
- str r2, [r1, 0x2C]
- str r2, [r1, 0x30]
- str r4, [r1]
- cmp r4, 0x1
- beq _08018B3A
- cmp r4, 0x1
- bcc _08018B34
- cmp r4, 0x2
- beq _08018B44
- cmp r4, 0x3
- beq _08018B80
- b _08018BAE
- .align 2, 0
-_08018B30: .4byte gUnknown_203B210
-_08018B34:
- movs r0, 0x1
- strb r0, [r1, 0x4]
- b _08018B46
-_08018B3A:
- strb r4, [r1, 0x4]
- ldr r0, [r5]
- adds r0, 0xE4
- str r2, [r0]
- b _08018B50
-_08018B44:
- strb r2, [r1, 0x4]
-_08018B46:
- ldr r0, [r5]
- adds r1, r0, 0
- adds r1, 0xE4
- adds r0, 0xD4
- str r0, [r1]
-_08018B50:
- ldr r0, _08018B78
- movs r5, 0xBE
- lsls r5, 1
- adds r1, r5, 0
- bl sub_808D8E0
- ldr r4, _08018B7C
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_808D8E0
- adds r0, r5, 0
- bl GetMonSpecies
- adds r1, r0, 0
- subs r4, 0x50
- adds r0, r4, 0
- bl strcpy
- b _08018BAE
- .align 2, 0
-_08018B78: .4byte gUnknown_202E5D8
-_08018B7C: .4byte gUnknown_202E1C8
-_08018B80:
- strb r2, [r1, 0x4]
- ldr r0, [r5]
- adds r0, 0xE4
- str r2, [r0]
- ldr r0, _08018BF8
- movs r5, 0xBE
- lsls r5, 1
- adds r1, r5, 0
- bl sub_808D8E0
- ldr r4, _08018BFC
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_808D8E0
- adds r0, r5, 0
- bl GetMonSpecies
- adds r1, r0, 0
- subs r4, 0x50
- adds r0, r4, 0
- bl strcpy
-_08018BAE:
- movs r0, 0xBE
- lsls r0, 1
- bl GetDialogueSpriteDataPtr
- ldr r2, _08018C00
- ldr r3, [r2]
- adds r1, r3, 0
- adds r1, 0xD4
- str r0, [r1]
- adds r1, 0x4
- ldr r0, [r0, 0x4]
- str r0, [r1]
- adds r0, r3, 0
- adds r0, 0xE0
- movs r1, 0
- strb r1, [r0]
- ldr r0, [r2]
- adds r0, 0xE1
- strb r1, [r0]
- ldr r0, [r2]
- adds r0, 0xE2
- strb r1, [r0]
- ldr r1, [r2]
- adds r2, r1, 0
- adds r2, 0xDC
- movs r0, 0x2
- strh r0, [r2]
- adds r1, 0xDE
- movs r0, 0x8
- strh r0, [r1]
- movs r0, 0
- bl sub_8018D18
- movs r0, 0x1
- pop {r4,r5}
- pop {r1}
- bx r1
- .align 2, 0
-_08018BF8: .4byte gUnknown_202E5D8
-_08018BFC: .4byte gUnknown_202E1C8
-_08018C00: .4byte gUnknown_203B210
- thumb_func_end DisplayKeckleonDialogueSprite
-
- thumb_func_start sub_8018C04
-sub_8018C04:
- push {lr}
- ldr r0, _08018C1C
- ldr r0, [r0]
- ldr r0, [r0, 0x8]
- cmp r0, 0x1F
- bhi _08018CE4
- lsls r0, 2
- ldr r1, _08018C20
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08018C1C: .4byte gUnknown_203B210
-_08018C20: .4byte _08018C24
- .align 2, 0
-_08018C24:
- .4byte _08018CA4
- .4byte _08018CA4
- .4byte _08018CE4
- .4byte _08018CE4
- .4byte _08018CE0
- .4byte _08018CE4
- .4byte _08018CE4
- .4byte _08018CE4
- .4byte _08018CE4
- .4byte _08018CE4
- .4byte _08018CE4
- .4byte _08018CE4
- .4byte _08018CE4
- .4byte _08018CE4
- .4byte _08018CE4
- .4byte _08018CE4
- .4byte _08018CE4
- .4byte _08018CE4
- .4byte _08018CAA
- .4byte _08018CAA
- .4byte _08018CB6
- .4byte _08018CD4
- .4byte _08018CC2
- .4byte _08018CE4
- .4byte _08018CE4
- .4byte _08018CE4
- .4byte _08018CB0
- .4byte _08018CB0
- .4byte _08018CBC
- .4byte _08018CDA
- .4byte _08018CC8
- .4byte _08018CCE
-_08018CA4:
- bl sub_8019730
- b _08018CE8
-_08018CAA:
- bl sub_80199CC
- b _08018CE8
-_08018CB0:
- bl sub_8019B08
- b _08018CE8
-_08018CB6:
- bl sub_8019BBC
- b _08018CE8
-_08018CBC:
- bl sub_8019C78
- b _08018CE8
-_08018CC2:
- bl sub_8019850
- b _08018CE8
-_08018CC8:
- bl sub_80198E8
- b _08018CE8
-_08018CCE:
- bl sub_8019944
- b _08018CE8
-_08018CD4:
- bl sub_8019D30
- b _08018CE8
-_08018CDA:
- bl sub_8019D4C
- b _08018CE8
-_08018CE0:
- movs r0, 0x3
- b _08018CEA
-_08018CE4:
- bl sub_8019D68
-_08018CE8:
- movs r0, 0
-_08018CEA:
- pop {r1}
- bx r1
- thumb_func_end sub_8018C04
-
- thumb_func_start sub_8018CF0
-sub_8018CF0:
- push {r4,lr}
- ldr r4, _08018D14
- ldr r0, [r4]
- cmp r0, 0
- beq _08018D0C
- adds r0, 0xD4
- ldr r0, [r0]
- bl CloseFile
- ldr r0, [r4]
- bl MemoryFree
- movs r0, 0
- str r0, [r4]
-_08018D0C:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08018D14: .4byte gUnknown_203B210
- thumb_func_end sub_8018CF0
-
- thumb_func_start sub_8018D18
-sub_8018D18:
- push {lr}
- ldr r1, _08018D2C
- ldr r1, [r1]
- str r0, [r1, 0x8]
- bl sub_8018D30
- bl sub_8018E88
- pop {r0}
- bx r0
- .align 2, 0
-_08018D2C: .4byte gUnknown_203B210
- thumb_func_end sub_8018D18
-
- thumb_func_start sub_8018D30
-sub_8018D30:
- push {r4-r7,lr}
- ldr r4, _08018D54
- ldr r0, [r4]
- adds r0, 0xE8
- bl sub_8006518
- ldr r0, [r4]
- ldr r0, [r0, 0x8]
- subs r0, 0x12
- cmp r0, 0xA
- bls _08018D48
- b _08018E44
-_08018D48:
- lsls r0, 2
- ldr r1, _08018D58
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08018D54: .4byte gUnknown_203B210
-_08018D58: .4byte _08018D5C
- .align 2, 0
-_08018D5C:
- .4byte _08018D88
- .4byte _08018D88
- .4byte _08018E24
- .4byte _08018E44
- .4byte _08018E44
- .4byte _08018E44
- .4byte _08018E44
- .4byte _08018E44
- .4byte _08018DDC
- .4byte _08018DDC
- .4byte _08018E24
-_08018D88:
- ldr r3, _08018DCC
- ldr r1, [r3]
- ldr r2, _08018DD0
- adds r1, 0xE8
- adds r0, r2, 0
- ldm r0!, {r4-r6}
- stm r1!, {r4-r6}
- ldm r0!, {r4,r5,r7}
- stm r1!, {r4,r5,r7}
- ldr r0, [r3]
- movs r6, 0x8C
- lsls r6, 1
- adds r0, r6
- ldm r2!, {r1,r4,r7}
- stm r0!, {r1,r4,r7}
- ldm r2!, {r5-r7}
- stm r0!, {r5-r7}
- ldr r1, [r3]
- adds r1, 0xE8
- ldr r0, _08018DD4
- ldm r0!, {r2,r4,r5}
- stm r1!, {r2,r4,r5}
- ldm r0!, {r2,r6,r7}
- stm r1!, {r2,r6,r7}
- ldr r1, [r3]
- movs r3, 0x80
- lsls r3, 1
- adds r1, r3
- ldr r0, _08018DD8
- ldm r0!, {r4-r6}
- stm r1!, {r4-r6}
- ldm r0!, {r2,r3,r7}
- stm r1!, {r2,r3,r7}
- b _08018E68
- .align 2, 0
-_08018DCC: .4byte gUnknown_203B210
-_08018DD0: .4byte gUnknown_80DB840
-_08018DD4: .4byte gUnknown_80DB870
-_08018DD8: .4byte gUnknown_80DB888
-_08018DDC:
- ldr r3, _08018E18
- ldr r1, [r3]
- ldr r2, _08018E1C
- adds r1, 0xE8
- adds r0, r2, 0
- ldm r0!, {r4-r6}
- stm r1!, {r4-r6}
- ldm r0!, {r4,r5,r7}
- stm r1!, {r4,r5,r7}
- ldr r1, [r3]
- movs r4, 0x80
- lsls r4, 1
- adds r1, r4
- adds r0, r2, 0
- ldm r0!, {r5-r7}
- stm r1!, {r5-r7}
- ldm r0!, {r5-r7}
- stm r1!, {r5-r7}
- ldr r0, [r3]
- movs r6, 0x8C
- lsls r6, 1
- adds r0, r6
- ldm r2!, {r1,r5,r7}
- stm r0!, {r1,r5,r7}
- ldm r2!, {r1,r6,r7}
- stm r0!, {r1,r6,r7}
- ldr r1, [r3]
- adds r1, r4
- ldr r0, _08018E20
- b _08018E30
- .align 2, 0
-_08018E18: .4byte gUnknown_203B210
-_08018E1C: .4byte gUnknown_80DB840
-_08018E20: .4byte gUnknown_80DB888
-_08018E24:
- ldr r0, _08018E3C
- ldr r1, [r0]
- movs r0, 0x8C
- lsls r0, 1
- adds r1, r0
- ldr r0, _08018E40
-_08018E30:
- ldm r0!, {r2-r4}
- stm r1!, {r2-r4}
- ldm r0!, {r5-r7}
- stm r1!, {r5-r7}
- b _08018E68
- .align 2, 0
-_08018E3C: .4byte gUnknown_203B210
-_08018E40: .4byte gUnknown_80DB858
-_08018E44:
- ldr r0, _08018E80
- mov r12, r0
- ldr r4, _08018E84
- movs r3, 0
- movs r2, 0x3
-_08018E4E:
- mov r5, r12
- ldr r1, [r5]
- adds r1, r3
- adds r1, 0xE8
- 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 _08018E4E
-_08018E68:
- bl ResetUnusedInputStruct
- ldr r0, _08018E80
- ldr r0, [r0]
- adds r0, 0xE8
- movs r1, 0x1
- movs r2, 0x1
- bl sub_800641C
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08018E80: .4byte gUnknown_203B210
-_08018E84: .4byte gUnknown_80DB840
- thumb_func_end sub_8018D30
-
- thumb_func_start sub_8018E88
-sub_8018E88:
- push {r4,lr}
- sub sp, 0x14
- ldr r1, _08018EA4
- ldr r0, [r1]
- ldr r0, [r0, 0x8]
- adds r4, r1, 0
- cmp r0, 0x20
- bls _08018E9A
- b _080194E8
-_08018E9A:
- lsls r0, 2
- ldr r1, _08018EA8
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08018EA4: .4byte gUnknown_203B210
-_08018EA8: .4byte _08018EAC
- .align 2, 0
-_08018EAC:
- .4byte _08018F30
- .4byte _08018F58
- .4byte _08018FA8
- .4byte _08018FD0
- .4byte _080194E8
- .4byte _08018FFC
- .4byte _08019024
- .4byte _0801904C
- .4byte _08019070
- .4byte _08019094
- .4byte _080190B8
- .4byte _080190DC
- .4byte _08019104
- .4byte _0801912C
- .4byte _08019164
- .4byte _0801918C
- .4byte _080191B4
- .4byte _08019294
- .4byte _080191DC
- .4byte _080191FA
- .4byte _08019218
- .4byte _080193F4
- .4byte _08019254
- .4byte _08019314
- .4byte _0801933C
- .4byte _080193FE
- .4byte _08019364
- .4byte _08019372
- .4byte _08019380
- .4byte _080193F4
- .4byte _080193B4
- .4byte _0801946C
- .4byte _080194C0
-_08018F30:
- bl sub_8019DAC
- bl sub_80194F8
- movs r0, 0
- bl sub_8019E04
- ldr r2, _08018F50
- ldr r0, _08018F54
- ldr r4, [r0]
- ldr r1, [r4]
- movs r0, 0x5C
- muls r0, r1
- adds r0, r2
- b _08018F76
- .align 2, 0
-_08018F50: .4byte gKecleonShopDialogue
-_08018F54: .4byte gUnknown_203B210
-_08018F58:
- bl sub_8019DAC
- bl sub_80194F8
- movs r0, 0
- bl sub_8019E04
- ldr r1, _08018FA0
- ldr r0, _08018FA4
- ldr r4, [r0]
- ldr r2, [r4]
- movs r0, 0x5C
- muls r0, r2
- adds r1, 0x4
- adds r0, r1
-_08018F76:
- ldr r0, [r0]
- ldr r2, [r4, 0x28]
- adds r3, r4, 0
- adds r3, 0x34
- adds r1, r4, 0
- adds r1, 0x74
- str r1, [sp]
- movs r1, 0x4
- str r1, [sp, 0x4]
- movs r1, 0
- str r1, [sp, 0x8]
- adds r1, r4, 0
- adds r1, 0xE4
- ldr r1, [r1]
- str r1, [sp, 0xC]
- movs r1, 0xC
- str r1, [sp, 0x10]
- movs r1, 0
- bl sub_8014248
- b _080194E8
- .align 2, 0
-_08018FA0: .4byte gKecleonShopDialogue
-_08018FA4: .4byte gUnknown_203B210
-_08018FA8:
- ldr r1, [r4]
- movs r0, 0x1
- str r0, [r1, 0xC]
- movs r0, 0
- bl sub_8019E04
- ldr r1, _08018FCC
- ldr r2, [r4]
- ldr r3, [r2]
- movs r0, 0x5C
- muls r0, r3
- adds r1, 0x58
- adds r0, r1
- ldr r0, [r0]
- adds r2, 0xE4
- ldr r2, [r2]
- b _08019454
- .align 2, 0
-_08018FCC: .4byte gKecleonShopDialogue
-_08018FD0:
- ldr r1, [r4]
- movs r0, 0x4
- str r0, [r1, 0xC]
- movs r0, 0
- bl sub_8019E04
- ldr r1, _08018FF4
- ldr r2, [r4]
- ldr r3, [r2]
- movs r0, 0x5C
- muls r0, r3
- adds r1, 0x8
- adds r0, r1
- ldr r0, [r0]
- adds r2, 0xE4
- ldr r2, [r2]
- ldr r3, _08018FF8
- b _08019456
- .align 2, 0
-_08018FF4: .4byte gKecleonShopDialogue
-_08018FF8: .4byte 0x0000030d
-_08018FFC:
- ldr r1, [r4]
- movs r0, 0x1
- str r0, [r1, 0xC]
- movs r0, 0
- bl sub_8019E04
- ldr r1, _08019020
- ldr r2, [r4]
- ldr r3, [r2]
- movs r0, 0x5C
- muls r0, r3
- adds r1, 0x30
- adds r0, r1
- ldr r0, [r0]
- adds r2, 0xE4
- ldr r2, [r2]
- b _08019454
- .align 2, 0
-_08019020: .4byte gKecleonShopDialogue
-_08019024:
- ldr r1, [r4]
- movs r0, 0x10
- str r0, [r1, 0xC]
- movs r0, 0x1
- bl sub_8019E04
- ldr r1, _08019048
- ldr r2, [r4]
- ldr r3, [r2]
- movs r0, 0x5C
- muls r0, r3
- adds r1, 0x34
- adds r0, r1
- ldr r0, [r0]
- adds r2, 0xE4
- ldr r2, [r2]
- b _08019454
- .align 2, 0
-_08019048: .4byte gKecleonShopDialogue
-_0801904C:
- ldr r1, [r4]
- movs r0, 0x1
- str r0, [r1, 0xC]
- bl sub_8019E04
- ldr r1, _0801906C
- ldr r2, [r4]
- ldr r3, [r2]
- movs r0, 0x5C
- muls r0, r3
- adds r1, 0x38
- adds r0, r1
- ldr r0, [r0]
- adds r2, 0xE4
- ldr r2, [r2]
- b _08019454
- .align 2, 0
-_0801906C: .4byte gKecleonShopDialogue
-_08019070:
- ldr r1, [r4]
- movs r0, 0x1
- str r0, [r1, 0xC]
- bl sub_8019E04
- ldr r1, _08019090
- ldr r2, [r4]
- ldr r3, [r2]
- movs r0, 0x5C
- muls r0, r3
- adds r1, 0x3C
- adds r0, r1
- ldr r0, [r0]
- adds r2, 0xE4
- ldr r2, [r2]
- b _08019454
- .align 2, 0
-_08019090: .4byte gKecleonShopDialogue
-_08019094:
- ldr r1, [r4]
- movs r0, 0x1
- str r0, [r1, 0xC]
- bl sub_8019E04
- ldr r1, _080190B4
- ldr r2, [r4]
- ldr r3, [r2]
- movs r0, 0x5C
- muls r0, r3
- adds r1, 0x40
- adds r0, r1
- ldr r0, [r0]
- adds r2, 0xE4
- ldr r2, [r2]
- b _08019454
- .align 2, 0
-_080190B4: .4byte gKecleonShopDialogue
-_080190B8:
- ldr r1, [r4]
- movs r0, 0x1
- str r0, [r1, 0xC]
- bl sub_8019E04
- ldr r1, _080190D8
- ldr r2, [r4]
- ldr r3, [r2]
- movs r0, 0x5C
- muls r0, r3
- adds r1, 0x44
- adds r0, r1
- ldr r0, [r0]
- adds r2, 0xE4
- ldr r2, [r2]
- b _08019454
- .align 2, 0
-_080190D8: .4byte gKecleonShopDialogue
-_080190DC:
- ldr r1, [r4]
- movs r0, 0x1
- str r0, [r1, 0xC]
- movs r0, 0
- bl sub_8019E04
- ldr r1, _08019100
- ldr r2, [r4]
- ldr r3, [r2]
- movs r0, 0x5C
- muls r0, r3
- adds r1, 0x48
- adds r0, r1
- ldr r0, [r0]
- adds r2, 0xE4
- ldr r2, [r2]
- b _08019454
- .align 2, 0
-_08019100: .4byte gKecleonShopDialogue
-_08019104:
- ldr r1, [r4]
- movs r0, 0x10
- str r0, [r1, 0xC]
- movs r0, 0x1
- bl sub_8019E04
- ldr r1, _08019128
- ldr r2, [r4]
- ldr r3, [r2]
- movs r0, 0x5C
- muls r0, r3
- adds r1, 0x4C
- adds r0, r1
- ldr r0, [r0]
- adds r2, 0xE4
- ldr r2, [r2]
- b _08019454
- .align 2, 0
-_08019128: .4byte gKecleonShopDialogue
-_0801912C:
- ldr r0, _0801915C
- ldr r1, [r4]
- adds r1, 0x1C
- movs r2, 0
- bl sub_8090E14
- ldr r1, [r4]
- movs r0, 0x18
- str r0, [r1, 0xC]
- movs r0, 0x1
- bl sub_8019E04
- ldr r1, _08019160
- ldr r2, [r4]
- ldr r3, [r2]
- movs r0, 0x5C
- muls r0, r3
- adds r1, 0x50
- adds r0, r1
- ldr r0, [r0]
- adds r2, 0xE4
- ldr r2, [r2]
- b _08019454
- .align 2, 0
-_0801915C: .4byte gUnknown_202DE58
-_08019160: .4byte gKecleonShopDialogue
-_08019164:
- ldr r1, [r4]
- movs r0, 0x18
- str r0, [r1, 0xC]
- movs r0, 0x1
- bl sub_8019E04
- ldr r1, _08019188
- ldr r2, [r4]
- ldr r3, [r2]
- movs r0, 0x5C
- muls r0, r3
- adds r1, 0x54
- adds r0, r1
- ldr r0, [r0]
- adds r2, 0xE4
- ldr r2, [r2]
- b _08019454
- .align 2, 0
-_08019188: .4byte gKecleonShopDialogue
-_0801918C:
- ldr r1, [r4]
- movs r0, 0x12
- str r0, [r1, 0xC]
- movs r0, 0
- bl sub_8019E04
- ldr r1, _080191B0
- ldr r2, [r4]
- ldr r3, [r2]
- movs r0, 0x5C
- muls r0, r3
- adds r1, 0xC
- adds r0, r1
- ldr r0, [r0]
- adds r2, 0xE4
- ldr r2, [r2]
- b _08019454
- .align 2, 0
-_080191B0: .4byte gKecleonShopDialogue
-_080191B4:
- ldr r1, [r4]
- movs r0, 0x13
- str r0, [r1, 0xC]
- movs r0, 0
- bl sub_8019E04
- ldr r1, _080191D8
- ldr r2, [r4]
- ldr r3, [r2]
- movs r0, 0x5C
- muls r0, r3
- adds r1, 0x10
- adds r0, r1
- ldr r0, [r0]
- adds r2, 0xE4
- ldr r2, [r2]
- b _08019454
- .align 2, 0
-_080191D8: .4byte gKecleonShopDialogue
-_080191DC:
- ldr r0, [r4]
- ldrb r0, [r0, 0x4]
- cmp r0, 0
- beq _080191EC
- movs r0, 0x3
- bl sub_8019E40
- b _080191F2
-_080191EC:
- movs r0, 0x3
- bl sub_801A20C
-_080191F2:
- movs r0, 0
- bl sub_801AD34
- b _08019378
-_080191FA:
- ldr r0, [r4]
- ldrb r0, [r0, 0x4]
- cmp r0, 0
- beq _0801920A
- movs r0, 0x1
- bl sub_8019FCC
- b _08019210
-_0801920A:
- movs r0, 0x1
- bl sub_801A398
-_08019210:
- movs r0, 0
- bl sub_801AD34
- b _08019378
-_08019218:
- ldr r0, [r4]
- ldrb r0, [r0, 0x4]
- cmp r0, 0
- beq _08019226
- bl sub_801A0D8
- b _0801922A
-_08019226:
- bl sub_801A4A4
-_0801922A:
- movs r0, 0
- bl sub_801AD34
- movs r0, 0x1
- bl sub_8016C40
- bl sub_80195C0
- ldr r0, _08019250
- 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]
- b _080193A0
- .align 2, 0
-_08019250: .4byte gUnknown_203B210
-_08019254:
- bl sub_8019700
- ldr r0, _08019284
- ldr r4, _08019288
- ldr r1, [r4]
- adds r1, 0x1C
- movs r2, 0
- bl sub_8090E14
- ldr r1, _0801928C
- ldr r0, [r4]
- ldr r0, [r0, 0x10]
- str r0, [r1]
- movs r0, 0
- bl sub_8019E04
- ldr r1, _08019290
- ldr r4, [r4]
- ldr r2, [r4]
- movs r0, 0x5C
- muls r0, r2
- adds r1, 0x14
- b _0801948C
- .align 2, 0
-_08019284: .4byte gUnknown_202DE58
-_08019288: .4byte gUnknown_203B210
-_0801928C: .4byte gUnknown_202DE30
-_08019290: .4byte gKecleonShopDialogue
-_08019294:
- bl sub_8019D8C
- cmp r0, 0
- bne _080192C0
- ldr r0, _080192AC
- ldr r0, [r0]
- ldrb r0, [r0, 0x4]
- cmp r0, 0
- beq _080192B0
- bl sub_801A010
- b _080192B4
- .align 2, 0
-_080192AC: .4byte gUnknown_203B210
-_080192B0:
- bl sub_801A3DC
-_080192B4:
- ldr r0, _080192BC
- ldr r1, [r0]
- movs r0, 0xB
- b _080192F2
- .align 2, 0
-_080192BC: .4byte gUnknown_203B210
-_080192C0:
- bl sub_8090A34
- cmp r0, 0x13
- ble _080192EC
- ldr r0, _080192D8
- ldr r0, [r0]
- ldrb r0, [r0, 0x4]
- cmp r0, 0
- beq _080192DC
- bl sub_801A010
- b _080192E0
- .align 2, 0
-_080192D8: .4byte gUnknown_203B210
-_080192DC:
- bl sub_801A3DC
-_080192E0:
- ldr r0, _080192E8
- ldr r1, [r0]
- movs r0, 0x1
- b _080192F2
- .align 2, 0
-_080192E8: .4byte gUnknown_203B210
-_080192EC:
- ldr r0, _0801930C
- ldr r1, [r0]
- movs r0, 0x10
-_080192F2:
- str r0, [r1, 0xC]
- movs r0, 0
- bl sub_8019E04
- ldr r2, _08019310
- ldr r0, _0801930C
- ldr r1, [r0]
- ldr r3, [r1]
- movs r0, 0x5C
- muls r0, r3
- adds r2, 0x18
- b _0801944C
- .align 2, 0
-_0801930C: .4byte gUnknown_203B210
-_08019310: .4byte gKecleonShopDialogue
-_08019314:
- ldr r1, [r4]
- movs r0, 0x1A
- str r0, [r1, 0xC]
- movs r0, 0
- bl sub_8019E04
- ldr r1, _08019338
- ldr r2, [r4]
- ldr r3, [r2]
- movs r0, 0x5C
- muls r0, r3
- adds r1, 0x1C
- adds r0, r1
- ldr r0, [r0]
- adds r2, 0xE4
- ldr r2, [r2]
- b _08019454
- .align 2, 0
-_08019338: .4byte gKecleonShopDialogue
-_0801933C:
- ldr r1, [r4]
- movs r0, 0x1B
- str r0, [r1, 0xC]
- movs r0, 0
- bl sub_8019E04
- ldr r1, _08019360
- ldr r2, [r4]
- ldr r3, [r2]
- movs r0, 0x5C
- muls r0, r3
- adds r1, 0x20
- adds r0, r1
- ldr r0, [r0]
- adds r2, 0xE4
- ldr r2, [r2]
- b _08019454
- .align 2, 0
-_08019360: .4byte gKecleonShopDialogue
-_08019364:
- movs r0, 0x4
- movs r1, 0x3
- movs r2, 0
- movs r3, 0xA
- bl sub_801A5D8
- b _08019378
-_08019372:
- movs r0, 0x1
- bl sub_801A8D0
-_08019378:
- movs r0, 0x1
- bl sub_8016C40
- b _080194E8
-_08019380:
- bl sub_801A9E0
- movs r0, 0x1
- bl sub_8016C40
- bl sub_8019660
- ldr r0, _080193B0
- 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, 0x2C]
-_080193A0:
- str r2, [sp]
- movs r2, 0x2
- str r2, [sp, 0x4]
- movs r2, 0
- bl sub_8012D60
- b _080194E8
- .align 2, 0
-_080193B0: .4byte gUnknown_203B210
-_080193B4:
- bl sub_8019700
- ldr r0, _080193E4
- ldr r4, _080193E8
- ldr r1, [r4]
- adds r1, 0x1C
- movs r2, 0
- bl sub_8090E14
- ldr r1, _080193EC
- ldr r0, [r4]
- ldr r0, [r0, 0x10]
- str r0, [r1]
- movs r0, 0
- bl sub_8019E04
- ldr r1, _080193F0
- ldr r4, [r4]
- ldr r2, [r4]
- movs r0, 0x5C
- muls r0, r2
- adds r1, 0x24
- b _0801948C
- .align 2, 0
-_080193E4: .4byte gUnknown_202DE58
-_080193E8: .4byte gUnknown_203B210
-_080193EC: .4byte gUnknown_202DE30
-_080193F0: .4byte gKecleonShopDialogue
-_080193F4:
- ldr r0, [r4]
- adds r0, 0x1C
- bl sub_801B3C0
- b _080194E8
-_080193FE:
- bl sub_8090A34
- cmp r0, 0
- beq _08019418
- ldr r0, _08019424
- ldr r0, [r0]
- movs r1, 0x98
- lsls r1, 2
- adds r0, r1
- ldr r1, [r0]
- ldr r0, _08019428
- cmp r1, r0
- ble _08019430
-_08019418:
- bl sub_801A928
- ldr r0, _0801942C
- ldr r1, [r0]
- movs r0, 0x1
- b _08019436
- .align 2, 0
-_08019424: .4byte gUnknown_203B460
-_08019428: .4byte 0x0001869e
-_0801942C: .4byte gUnknown_203B210
-_08019430:
- ldr r0, _08019460
- ldr r1, [r0]
- movs r0, 0x18
-_08019436:
- str r0, [r1, 0xC]
- movs r0, 0
- bl sub_8019E04
- ldr r2, _08019464
- ldr r0, _08019460
- ldr r1, [r0]
- ldr r3, [r1]
- movs r0, 0x5C
- muls r0, r3
- adds r2, 0x2C
-_0801944C:
- adds r0, r2
- ldr r0, [r0]
- adds r1, 0xE4
- ldr r2, [r1]
-_08019454:
- ldr r3, _08019468
-_08019456:
- movs r1, 0
- bl sub_80141B4
- b _080194E8
- .align 2, 0
-_08019460: .4byte gUnknown_203B210
-_08019464: .4byte gKecleonShopDialogue
-_08019468: .4byte 0x0000010d
-_0801946C:
- bl sub_8019700
- ldr r1, _080194B4
- ldr r4, _080194B8
- ldr r0, [r4]
- ldr r0, [r0, 0x18]
- str r0, [r1]
- movs r0, 0
- bl sub_8019E04
- ldr r1, _080194BC
- ldr r4, [r4]
- ldr r2, [r4]
- movs r0, 0x5C
- muls r0, r2
- adds r1, 0x28
-_0801948C:
- adds r0, r1
- ldr r0, [r0]
- adds r3, r4, 0
- adds r3, 0x34
- movs r2, 0
- str r2, [sp]
- movs r1, 0x4
- str r1, [sp, 0x4]
- str r2, [sp, 0x8]
- adds r4, 0xE4
- ldr r1, [r4]
- str r1, [sp, 0xC]
- movs r1, 0xC
- str r1, [sp, 0x10]
- movs r1, 0
- movs r2, 0x5
- bl sub_8014248
- b _080194E8
- .align 2, 0
-_080194B4: .4byte gUnknown_202DE30
-_080194B8: .4byte gUnknown_203B210
-_080194BC: .4byte gKecleonShopDialogue
-_080194C0:
- ldr r1, [r4]
- movs r0, 0x1
- str r0, [r1, 0xC]
- movs r0, 0
- bl sub_8019E04
- ldr r1, _080194F0
- ldr r2, [r4]
- ldr r3, [r2]
- movs r0, 0x5C
- muls r0, r3
- adds r1, 0x2C
- adds r0, r1
- ldr r0, [r0]
- adds r2, 0xE4
- ldr r2, [r2]
- ldr r3, _080194F4
- movs r1, 0
- bl sub_80141B4
-_080194E8:
- add sp, 0x14
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080194F0: .4byte gKecleonShopDialogue
-_080194F4: .4byte 0x0000010d
- thumb_func_end sub_8018E88
-
- thumb_func_start sub_80194F8
-sub_80194F8:
- push {r4-r7,lr}
- ldr r4, _08019580
- ldr r0, [r4]
- adds r0, 0x74
- movs r1, 0
- movs r2, 0x10
- bl MemoryFill16
- ldr r3, [r4]
- movs r2, 0
- ldr r0, _08019584
- ldr r0, [r0]
- str r0, [r3, 0x34]
- movs r0, 0x2
- str r0, [r3, 0x38]
- movs r1, 0x1
- ldr r0, _08019588
- ldr r0, [r0]
- str r0, [r3, 0x3C]
- movs r0, 0x3
- str r0, [r3, 0x40]
- ldr r0, _0801958C
- str r0, [r3, 0x44]
- movs r0, 0x4
- str r0, [r3, 0x48]
- ldr r0, _08019590
- ldr r0, [r0]
- str r0, [r3, 0x4C]
- movs r0, 0x7
- str r0, [r3, 0x50]
- ldr r0, _08019594
- ldr r0, [r0]
- str r0, [r3, 0x54]
- str r1, [r3, 0x58]
- movs r6, 0x5
- str r2, [r3, 0x5C]
- str r1, [r3, 0x60]
- movs r5, 0
- mov r12, r3
- adds r3, 0x38
- mov r2, r12
- adds r2, 0x74
-_0801954C:
- ldrh r0, [r2]
- cmp r0, 0
- bne _0801955C
- ldr r1, [r3]
- mov r7, r12
- ldr r0, [r7, 0x28]
- cmp r1, r0
- beq _080195BA
-_0801955C:
- adds r3, 0x8
- adds r2, 0x2
- adds r5, 0x1
- cmp r5, r6
- blt _0801954C
- movs r5, 0
- cmp r5, r6
- bge _080195BA
- ldr r1, [r4]
- adds r0, r1, 0
- adds r0, 0x74
- ldrh r0, [r0]
- cmp r0, 0
- bne _08019598
- ldr r0, [r1, 0x38]
- str r0, [r1, 0x28]
- b _080195BA
- .align 2, 0
-_08019580: .4byte gUnknown_203B210
-_08019584: .4byte gUnknown_80D4978
-_08019588: .4byte gUnknown_80D4984
-_0801958C: .4byte gUnknown_80DB8A0
-_08019590: .4byte gUnknown_80D4970
-_08019594: .4byte gUnknown_80D4934
-_08019598:
- adds r5, 0x1
- cmp r5, r6
- bge _080195BA
- ldr r2, [r4]
- lsls r0, r5, 1
- adds r1, r2, 0
- adds r1, 0x74
- adds r1, r0
- ldrh r0, [r1]
- cmp r0, 0
- bne _08019598
- lsls r0, r5, 3
- adds r1, r2, 0
- adds r1, 0x38
- adds r1, r0
- ldr r0, [r1]
- str r0, [r2, 0x28]
-_080195BA:
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_80194F8
-
- thumb_func_start sub_80195C0
-sub_80195C0:
- push {r4-r7,lr}
- ldr r4, _0801962C
- ldr r0, [r4]
- adds r0, 0x74
- movs r1, 0
- movs r2, 0x10
- bl MemoryFill16
- ldr r3, [r4]
- movs r2, 0
- ldr r0, _08019630
- ldr r0, [r0]
- str r0, [r3, 0x34]
- movs r0, 0x2
- str r0, [r3, 0x38]
- movs r1, 0x1
- ldr r0, _08019634
- ldr r0, [r0]
- str r0, [r3, 0x3C]
- movs r0, 0x7
- 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
-_080195FA:
- ldrh r0, [r2]
- cmp r0, 0
- bne _0801960A
- ldr r1, [r3]
- mov r7, r12
- ldr r0, [r7, 0x30]
- cmp r1, r0
- beq _0801965A
-_0801960A:
- adds r3, 0x8
- adds r2, 0x2
- adds r5, 0x1
- cmp r5, r6
- blt _080195FA
- movs r5, 0
- cmp r5, r6
- bge _0801965A
- ldr r1, [r4]
- adds r0, r1, 0
- adds r0, 0x74
- ldrh r0, [r0]
- cmp r0, 0
- bne _08019638
- ldr r0, [r1, 0x38]
- str r0, [r1, 0x30]
- b _0801965A
- .align 2, 0
-_0801962C: .4byte gUnknown_203B210
-_08019630: .4byte gUnknown_80D4978
-_08019634: .4byte gUnknown_80D4970
-_08019638:
- adds r5, 0x1
- cmp r5, r6
- bge _0801965A
- ldr r2, [r4]
- lsls r0, r5, 1
- adds r1, r2, 0
- adds r1, 0x74
- adds r1, r0
- ldrh r0, [r1]
- cmp r0, 0
- bne _08019638
- lsls r0, r5, 3
- adds r1, r2, 0
- adds r1, 0x38
- adds r1, r0
- ldr r0, [r1]
- str r0, [r2, 0x30]
-_0801965A:
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_80195C0
-
- thumb_func_start sub_8019660
-sub_8019660:
- push {r4-r7,lr}
- ldr r4, _080196CC
- ldr r0, [r4]
- adds r0, 0x74
- movs r1, 0
- movs r2, 0x10
- bl MemoryFill16
- ldr r3, [r4]
- movs r2, 0
- ldr r0, _080196D0
- ldr r0, [r0]
- str r0, [r3, 0x34]
- movs r0, 0x3
- str r0, [r3, 0x38]
- movs r1, 0x1
- ldr r0, _080196D4
- ldr r0, [r0]
- str r0, [r3, 0x3C]
- movs r0, 0x7
- 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
-_0801969A:
- ldrh r0, [r2]
- cmp r0, 0
- bne _080196AA
- ldr r1, [r3]
- mov r7, r12
- ldr r0, [r7, 0x2C]
- cmp r1, r0
- beq _080196FA
-_080196AA:
- adds r3, 0x8
- adds r2, 0x2
- adds r5, 0x1
- cmp r5, r6
- blt _0801969A
- movs r5, 0
- cmp r5, r6
- bge _080196FA
- ldr r1, [r4]
- adds r0, r1, 0
- adds r0, 0x74
- ldrh r0, [r0]
- cmp r0, 0
- bne _080196D8
- ldr r0, [r1, 0x38]
- str r0, [r1, 0x2C]
- b _080196FA
- .align 2, 0
-_080196CC: .4byte gUnknown_203B210
-_080196D0: .4byte gUnknown_80D4984
-_080196D4: .4byte gUnknown_80D4970
-_080196D8:
- adds r5, 0x1
- cmp r5, r6
- bge _080196FA
- ldr r2, [r4]
- lsls r0, r5, 1
- adds r1, r2, 0
- adds r1, 0x74
- adds r1, r0
- ldrh r0, [r1]
- cmp r0, 0
- bne _080196D8
- lsls r0, r5, 3
- adds r1, r2, 0
- adds r1, 0x38
- adds r1, r0
- ldr r0, [r1]
- str r0, [r2, 0x2C]
-_080196FA:
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_8019660
-
- thumb_func_start sub_8019700
-sub_8019700:
- ldr r0, _08019724
- ldr r1, [r0]
- movs r3, 0
- ldr r0, _08019728
- ldr r0, [r0]
- str r0, [r1, 0x34]
- movs r0, 0x5
- str r0, [r1, 0x38]
- movs r2, 0x1
- ldr r0, _0801972C
- ldr r0, [r0]
- str r0, [r1, 0x3C]
- movs r0, 0x6
- str r0, [r1, 0x40]
- str r3, [r1, 0x44]
- str r2, [r1, 0x48]
- bx lr
- .align 2, 0
-_08019724: .4byte gUnknown_203B210
-_08019728: .4byte gUnknown_80D4920
-_0801972C: .4byte gUnknown_80D4928
- thumb_func_end sub_8019700
-
- thumb_func_start sub_8019730
-sub_8019730:
- push {lr}
- sub sp, 0x4
- mov r0, sp
- bl sub_80144A4
- cmp r0, 0
- beq _08019740
- b _0801984A
-_08019740:
- ldr r1, [sp]
- cmp r1, 0x1
- beq _0801974C
- ldr r0, _08019760
- ldr r0, [r0]
- str r1, [r0, 0x28]
-_0801974C:
- ldr r0, [sp]
- subs r0, 0x1
- cmp r0, 0x6
- bls _08019756
- b _0801984A
-_08019756:
- lsls r0, 2
- ldr r1, _08019764
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08019760: .4byte gUnknown_203B210
-_08019764: .4byte _08019768
- .align 2, 0
-_08019768:
- .4byte _08019844
- .4byte _08019784
- .4byte _080197AC
- .4byte _080197E4
- .4byte _0801984A
- .4byte _0801984A
- .4byte _0801983C
-_08019784:
- bl sub_8019D8C
- cmp r0, 0
- bne _08019794
- movs r0, 0x5
- bl sub_8018D18
- b _0801984A
-_08019794:
- bl sub_8090A34
- cmp r0, 0x13
- ble _080197A4
- movs r0, 0xA
- bl sub_8018D18
- b _0801984A
-_080197A4:
- movs r0, 0xF
- bl sub_8018D18
- b _0801984A
-_080197AC:
- bl sub_8090A34
- cmp r0, 0
- beq _080197EC
- ldr r0, _080197D8
- ldr r0, [r0]
- ldr r0, [r0, 0x14]
- cmp r0, 0
- beq _080197FE
- ldr r0, _080197DC
- ldr r0, [r0]
- movs r1, 0x98
- lsls r1, 2
- adds r0, r1
- ldr r1, [r0]
- ldr r0, _080197E0
- cmp r1, r0
- bgt _08019822
- movs r0, 0x17
- bl sub_8018D18
- b _0801984A
- .align 2, 0
-_080197D8: .4byte gUnknown_203B210
-_080197DC: .4byte gUnknown_203B460
-_080197E0: .4byte 0x0001869e
-_080197E4:
- bl sub_8090A34
- cmp r0, 0
- bne _080197F4
-_080197EC:
- movs r0, 0x9
- bl sub_8018D18
- b _0801984A
-_080197F4:
- ldr r0, _08019808
- ldr r1, [r0]
- ldr r0, [r1, 0x14]
- cmp r0, 0
- bne _0801980C
-_080197FE:
- movs r0, 0x8
- bl sub_8018D18
- b _0801984A
- .align 2, 0
-_08019808: .4byte gUnknown_203B210
-_0801980C:
- ldr r0, _0801982C
- ldr r0, [r0]
- movs r2, 0x98
- lsls r2, 2
- adds r0, r2
- ldr r1, [r1, 0x18]
- ldr r0, [r0]
- adds r1, r0
- ldr r0, _08019830
- cmp r1, r0
- ble _08019834
-_08019822:
- movs r0, 0x7
- bl sub_8018D18
- b _0801984A
- .align 2, 0
-_0801982C: .4byte gUnknown_203B460
-_08019830: .4byte 0x0001869f
-_08019834:
- movs r0, 0x1F
- bl sub_8018D18
- b _0801984A
-_0801983C:
- movs r0, 0x2
- bl sub_8018D18
- b _0801984A
-_08019844:
- movs r0, 0x3
- bl sub_8018D18
-_0801984A:
- add sp, 0x4
- pop {r0}
- bx r0
- thumb_func_end sub_8019730
-
- thumb_func_start sub_8019850
-sub_8019850:
- push {r4,lr}
- sub sp, 0x4
- mov r0, sp
- bl sub_80144A4
- cmp r0, 0
- bne _080198DE
- ldr r0, [sp]
- cmp r0, 0x5
- beq _08019874
- cmp r0, 0x5
- bgt _0801986E
- cmp r0, 0x1
- beq _080198D8
- b _080198DE
-_0801986E:
- cmp r0, 0x6
- beq _080198D8
- b _080198DE
-_08019874:
- ldr r4, _080198A8
- ldr r0, [r4]
- ldr r0, [r0, 0x10]
- negs r0, r0
- bl sub_80913A0
- ldr r1, [r4]
- ldrb r0, [r1, 0x4]
- cmp r0, 0
- beq _080198AC
- adds r0, r1, 0
- adds r0, 0x20
- ldrb r0, [r0]
- bl sub_809185C
- bl sub_8091274
- ldr r0, [r4]
- adds r0, 0x20
- ldrb r0, [r0]
- bl sub_8091840
- bl sub_8091874
- b _080198C8
- .align 2, 0
-_080198A8: .4byte gUnknown_203B210
-_080198AC:
- adds r0, r1, 0
- adds r0, 0x21
- ldrb r0, [r0]
- bl sub_8091A90
- bl sub_8091274
- ldr r0, [r4]
- adds r0, 0x21
- ldrb r0, [r0]
- bl sub_8091A74
- bl sub_8091AA8
-_080198C8:
- movs r0, 0xA6
- lsls r0, 1
- bl sub_8011988
- movs r0, 0x11
- bl sub_8018D18
- b _080198DE
-_080198D8:
- movs r0, 0x10
- bl sub_8018D18
-_080198DE:
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_8019850
-
- thumb_func_start sub_80198E8
-sub_80198E8:
- push {r4,lr}
- sub sp, 0x4
- mov r0, sp
- bl sub_80144A4
- cmp r0, 0
- bne _0801993A
- ldr r0, [sp]
- cmp r0, 0x5
- beq _0801990C
- cmp r0, 0x5
- bgt _08019906
- cmp r0, 0x1
- beq _08019934
- b _0801993A
-_08019906:
- cmp r0, 0x6
- beq _08019934
- b _0801993A
-_0801990C:
- ldr r4, _08019930
- ldr r0, [r4]
- ldr r0, [r0, 0x10]
- bl sub_80913A0
- ldr r0, [r4]
- ldr r0, [r0, 0x24]
- bl sub_80911F8
- movs r0, 0xA6
- lsls r0, 1
- bl sub_8011988
- movs r0, 0x19
- bl sub_8018D18
- b _0801993A
- .align 2, 0
-_08019930: .4byte gUnknown_203B210
-_08019934:
- movs r0, 0x18
- bl sub_8018D18
-_0801993A:
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80198E8
-
- thumb_func_start sub_8019944
-sub_8019944:
- push {r4,r5,lr}
- sub sp, 0x4
- mov r0, sp
- bl sub_80144A4
- cmp r0, 0
- bne _080199C2
- ldr r0, [sp]
- cmp r0, 0x5
- beq _08019968
- cmp r0, 0x5
- bgt _08019962
- cmp r0, 0x1
- beq _080199BC
- b _080199C2
-_08019962:
- cmp r0, 0x6
- beq _080199BC
- b _080199C2
-_08019968:
- movs r4, 0
- ldr r5, _080199B4
-_0801996C:
- lsls r1, r4, 2
- ldr r0, [r5]
- adds r2, r0, r1
- ldrb r1, [r2]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _0801998E
- ldrb r0, [r2, 0x2]
- bl sub_80914E4
- lsls r0, 24
- cmp r0, 0
- beq _0801998E
- adds r0, r4, 0
- bl sub_8091234
-_0801998E:
- adds r4, 0x1
- cmp r4, 0x13
- ble _0801996C
- bl sub_80910B4
- ldr r0, _080199B8
- ldr r0, [r0]
- ldr r0, [r0, 0x18]
- bl sub_80913A0
- movs r0, 0xA6
- lsls r0, 1
- bl sub_8011988
- movs r0, 0x20
- bl sub_8018D18
- b _080199C2
- .align 2, 0
-_080199B4: .4byte gUnknown_203B460
-_080199B8: .4byte gUnknown_203B210
-_080199BC:
- movs r0, 0x1
- bl sub_8018D18
-_080199C2:
- add sp, 0x4
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_8019944
-
- thumb_func_start sub_80199CC
-sub_80199CC:
- push {r4,r5,lr}
- ldr r0, _080199E0
- ldr r0, [r0]
- ldrb r0, [r0, 0x4]
- cmp r0, 0
- beq _080199E4
- movs r0, 0x1
- bl sub_8019EDC
- b _080199EA
- .align 2, 0
-_080199E0: .4byte gUnknown_203B210
-_080199E4:
- movs r0, 0x1
- bl sub_801A2A8
-_080199EA:
- cmp r0, 0x2
- beq _08019AD4
- cmp r0, 0x2
- bhi _080199FA
- cmp r0, 0x1
- bne _080199F8
- b _08019AF4
-_080199F8:
- b _08019B00
-_080199FA:
- cmp r0, 0x3
- beq _08019A04
- cmp r0, 0x4
- beq _08019A6C
- b _08019B00
-_08019A04:
- ldr r4, _08019A24
- ldr r0, [r4]
- ldrb r0, [r0, 0x4]
- cmp r0, 0
- beq _08019A28
- bl sub_8019FB0
- ldr r1, [r4]
- adds r1, 0x20
- strb r0, [r1]
- ldr r0, [r4]
- adds r0, 0x20
- ldrb r0, [r0]
- bl sub_809185C
- b _08019A3C
- .align 2, 0
-_08019A24: .4byte gUnknown_203B210
-_08019A28:
- bl sub_801A37C
- ldr r1, [r4]
- adds r1, 0x21
- strb r0, [r1]
- ldr r0, [r4]
- adds r0, 0x21
- ldrb r0, [r0]
- bl sub_8091A90
-_08019A3C:
- adds r5, r0, 0
- ldr r4, _08019A68
- ldr r0, [r4]
- adds r0, 0x1C
- ldrb r1, [r5]
- movs r2, 0
- bl sub_8090A8C
- ldr r1, [r4]
- ldrb r0, [r5, 0x1]
- strb r0, [r1, 0x1D]
- ldr r0, [r4]
- adds r0, 0x1C
- bl sub_8090C7C
- ldr r1, [r4]
- str r0, [r1, 0x10]
- movs r0, 0x14
- bl sub_8018D18
- b _08019B00
- .align 2, 0
-_08019A68: .4byte gUnknown_203B210
-_08019A6C:
- ldr r4, _08019A8C
- ldr r0, [r4]
- ldrb r0, [r0, 0x4]
- cmp r0, 0
- beq _08019A90
- bl sub_8019FB0
- ldr r1, [r4]
- adds r1, 0x20
- strb r0, [r1]
- ldr r0, [r4]
- adds r0, 0x20
- ldrb r0, [r0]
- bl sub_809185C
- b _08019AA4
- .align 2, 0
-_08019A8C: .4byte gUnknown_203B210
-_08019A90:
- bl sub_801A37C
- ldr r1, [r4]
- adds r1, 0x21
- strb r0, [r1]
- ldr r0, [r4]
- adds r0, 0x21
- ldrb r0, [r0]
- bl sub_8091A90
-_08019AA4:
- adds r5, r0, 0
- ldr r4, _08019AD0
- ldr r0, [r4]
- adds r0, 0x1C
- ldrb r1, [r5]
- movs r2, 0
- bl sub_8090A8C
- ldr r1, [r4]
- ldrb r0, [r5, 0x1]
- strb r0, [r1, 0x1D]
- ldr r0, [r4]
- adds r0, 0x1C
- bl sub_8090C7C
- ldr r1, [r4]
- str r0, [r1, 0x10]
- movs r0, 0x15
- bl sub_8018D18
- b _08019B00
- .align 2, 0
-_08019AD0: .4byte gUnknown_203B210
-_08019AD4:
- ldr r0, _08019AE4
- ldr r0, [r0]
- ldrb r0, [r0, 0x4]
- cmp r0, 0
- beq _08019AE8
- bl sub_801A010
- b _08019AEC
- .align 2, 0
-_08019AE4: .4byte gUnknown_203B210
-_08019AE8:
- bl sub_801A3DC
-_08019AEC:
- movs r0, 0x1
- bl sub_8018D18
- b _08019B00
-_08019AF4:
- movs r0, 0
- bl sub_801AD34
- movs r0, 0x1
- bl sub_8016C40
-_08019B00:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_80199CC
-
- thumb_func_start sub_8019B08
-sub_8019B08:
- push {r4,lr}
- movs r0, 0x1
- bl sub_801A6E8
- cmp r0, 0x4
- bhi _08019BB0
- lsls r0, 2
- ldr r1, _08019B20
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08019B20: .4byte _08019B24
- .align 2, 0
-_08019B24:
- .4byte _08019BB6
- .4byte _08019BB0
- .4byte _08019BA4
- .4byte _08019B38
- .4byte _08019B6C
-_08019B38:
- bl sub_801A8AC
- ldr r4, _08019B64
- ldr r2, [r4]
- str r0, [r2, 0x24]
- ldr r1, _08019B68
- ldr r1, [r1]
- lsls r0, 2
- adds r1, r0
- ldr r0, [r1]
- str r0, [r2, 0x1C]
- adds r2, 0x1C
- adds r0, r2, 0
- bl sub_8090CCC
- ldr r1, [r4]
- str r0, [r1, 0x10]
- movs r0, 0x1C
- bl sub_8018D18
- b _08019BB6
- .align 2, 0
-_08019B64: .4byte gUnknown_203B210
-_08019B68: .4byte gUnknown_203B460
-_08019B6C:
- bl sub_801A8AC
- ldr r4, _08019B9C
- ldr r2, [r4]
- str r0, [r2, 0x24]
- ldr r1, _08019BA0
- ldr r1, [r1]
- lsls r0, 2
- adds r1, r0
- ldr r0, [r1]
- str r0, [r2, 0x1C]
- adds r2, 0x1C
- adds r0, r2, 0
- bl sub_8090CCC
- ldr r1, [r4]
- str r0, [r1, 0x10]
- movs r0, 0
- bl sub_8099690
- movs r0, 0x1D
- bl sub_8018D18
- b _08019BB6
- .align 2, 0
-_08019B9C: .4byte gUnknown_203B210
-_08019BA0: .4byte gUnknown_203B460
-_08019BA4:
- bl sub_801A928
- movs r0, 0x1
- bl sub_8018D18
- b _08019BB6
-_08019BB0:
- movs r0, 0x1
- bl sub_8016C40
-_08019BB6:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_8019B08
-
- thumb_func_start sub_8019BBC
-sub_8019BBC:
- push {r4,lr}
- sub sp, 0x4
- movs r0, 0
- str r0, [sp]
- ldr r0, _08019BD8
- ldr r0, [r0]
- ldrb r0, [r0, 0x4]
- cmp r0, 0
- beq _08019BDC
- movs r0, 0
- bl sub_8019EDC
- b _08019BE2
- .align 2, 0
-_08019BD8: .4byte gUnknown_203B210
-_08019BDC:
- movs r0, 0
- bl sub_801A2A8
-_08019BE2:
- ldr r4, _08019C18
- ldr r0, [r4]
- adds r0, 0x84
- bl sub_8012FD8
- lsls r0, 24
- cmp r0, 0
- bne _08019C06
- ldr r0, [r4]
- adds r0, 0x84
- mov r1, sp
- bl sub_8013114
- ldr r1, [sp]
- cmp r1, 0x1
- beq _08019C06
- ldr r0, [r4]
- str r1, [r0, 0x30]
-_08019C06:
- ldr r0, [sp]
- cmp r0, 0x2
- beq _08019C22
- cmp r0, 0x2
- bgt _08019C1C
- cmp r0, 0x1
- beq _08019C68
- b _08019C6E
- .align 2, 0
-_08019C18: .4byte gUnknown_203B210
-_08019C1C:
- cmp r0, 0x7
- beq _08019C60
- b _08019C6E
-_08019C22:
- ldr r0, _08019C3C
- ldr r0, [r0]
- movs r1, 0x98
- lsls r1, 2
- adds r0, r1
- ldr r1, [r0]
- cmp r1, 0
- bne _08019C40
- movs r0, 0x6
- bl sub_8018D18
- b _08019C6E
- .align 2, 0
-_08019C3C: .4byte gUnknown_203B460
-_08019C40:
- ldr r0, _08019C54
- ldr r0, [r0]
- ldr r0, [r0, 0x10]
- cmp r0, r1
- ble _08019C58
- movs r0, 0xC
- bl sub_8018D18
- b _08019C6E
- .align 2, 0
-_08019C54: .4byte gUnknown_203B210
-_08019C58:
- movs r0, 0x16
- bl sub_8018D18
- b _08019C6E
-_08019C60:
- movs r0, 0x15
- bl sub_8018D18
- b _08019C6E
-_08019C68:
- movs r0, 0x13
- bl sub_8018D18
-_08019C6E:
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_8019BBC
-
- thumb_func_start sub_8019C78
-sub_8019C78:
- push {r4,lr}
- sub sp, 0x4
- movs r0, 0
- str r0, [sp]
- bl sub_801A6E8
- ldr r4, _08019CB8
- ldr r0, [r4]
- adds r0, 0x84
- bl sub_8012FD8
- lsls r0, 24
- cmp r0, 0
- bne _08019CA8
- ldr r0, [r4]
- adds r0, 0x84
- mov r1, sp
- bl sub_8013114
- ldr r1, [sp]
- cmp r1, 0x1
- beq _08019CA8
- ldr r0, [r4]
- str r1, [r0, 0x2C]
-_08019CA8:
- ldr r0, [sp]
- cmp r0, 0x3
- beq _08019CC2
- cmp r0, 0x3
- bgt _08019CBC
- cmp r0, 0x1
- beq _08019D22
- b _08019D28
- .align 2, 0
-_08019CB8: .4byte gUnknown_203B210
-_08019CBC:
- cmp r0, 0x7
- beq _08019D14
- b _08019D28
-_08019CC2:
- movs r0, 0
- bl sub_8099690
- ldr r4, _08019CE0
- ldr r0, [r4]
- ldrb r0, [r0, 0x1E]
- bl sub_80914E4
- lsls r0, 24
- cmp r0, 0
- bne _08019CE4
- movs r0, 0xD
- bl sub_8018D18
- b _08019D28
- .align 2, 0
-_08019CE0: .4byte gUnknown_203B210
-_08019CE4:
- ldr r1, [r4]
- ldr r0, _08019D04
- ldr r0, [r0]
- movs r2, 0x98
- lsls r2, 2
- adds r0, r2
- ldr r1, [r1, 0x10]
- ldr r0, [r0]
- adds r1, r0
- ldr r0, _08019D08
- cmp r1, r0
- ble _08019D0C
- movs r0, 0xE
- bl sub_8018D18
- b _08019D28
- .align 2, 0
-_08019D04: .4byte gUnknown_203B460
-_08019D08: .4byte 0x0001869f
-_08019D0C:
- movs r0, 0x1E
- bl sub_8018D18
- b _08019D28
-_08019D14:
- movs r0, 0
- bl sub_8099690
- movs r0, 0x1D
- bl sub_8018D18
- b _08019D28
-_08019D22:
- movs r0, 0x1B
- bl sub_8018D18
-_08019D28:
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_8019C78
-
- thumb_func_start sub_8019D30
-sub_8019D30:
- push {lr}
- bl sub_801B410
- cmp r0, 0x1
- bls _08019D48
- cmp r0, 0x3
- bhi _08019D48
- bl sub_801B450
- movs r0, 0x13
- bl sub_8018D18
-_08019D48:
- pop {r0}
- bx r0
- thumb_func_end sub_8019D30
-
- thumb_func_start sub_8019D4C
-sub_8019D4C:
- push {lr}
- bl sub_801B410
- cmp r0, 0x1
- bls _08019D64
- cmp r0, 0x3
- bhi _08019D64
- bl sub_801B450
- movs r0, 0x1B
- bl sub_8018D18
-_08019D64:
- pop {r0}
- bx r0
- thumb_func_end sub_8019D4C
-
- thumb_func_start sub_8019D68
-sub_8019D68:
- push {lr}
- sub sp, 0x4
- mov r0, sp
- bl sub_80144A4
- cmp r0, 0
- bne _08019D80
- ldr r0, _08019D88
- ldr r0, [r0]
- ldr r0, [r0, 0xC]
- bl sub_8018D18
-_08019D80:
- add sp, 0x4
- pop {r0}
- bx r0
- .align 2, 0
-_08019D88: .4byte gUnknown_203B210
- thumb_func_end sub_8019D68
-
- thumb_func_start sub_8019D8C
-sub_8019D8C:
- push {lr}
- ldr r0, _08019DA0
- ldr r0, [r0]
- ldrb r0, [r0, 0x4]
- cmp r0, 0
- bne _08019DA4
- bl sub_8091A48
- b _08019DA8
- .align 2, 0
-_08019DA0: .4byte gUnknown_203B210
-_08019DA4:
- bl sub_8091814
-_08019DA8:
- pop {r1}
- bx r1
- thumb_func_end sub_8019D8C
-
- thumb_func_start sub_8019DAC
-sub_8019DAC:
- push {r4,r5,lr}
- ldr r0, _08019DFC
- ldr r1, [r0]
- movs r0, 0
- str r0, [r1, 0x14]
- str r0, [r1, 0x18]
- movs r5, 0
-_08019DBA:
- ldr r0, _08019E00
- lsls r1, r5, 2
- ldr r0, [r0]
- adds r4, r0, r1
- ldrb r1, [r4]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _08019DEE
- ldrb r0, [r4, 0x2]
- bl sub_80914E4
- lsls r0, 24
- cmp r0, 0
- beq _08019DEE
- adds r0, r4, 0
- bl sub_8090CCC
- ldr r1, _08019DFC
- ldr r2, [r1]
- ldr r1, [r2, 0x18]
- adds r1, r0
- str r1, [r2, 0x18]
- ldr r0, [r2, 0x14]
- adds r0, 0x1
- str r0, [r2, 0x14]
-_08019DEE:
- adds r5, 0x1
- cmp r5, 0x13
- ble _08019DBA
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08019DFC: .4byte gUnknown_203B210
-_08019E00: .4byte gUnknown_203B460
- thumb_func_end sub_8019DAC
-
- thumb_func_start sub_8019E04
-sub_8019E04:
- push {lr}
- adds r2, r0, 0
- ldr r0, _08019E20
- ldr r1, [r0]
- ldrb r0, [r1, 0x4]
- cmp r0, 0
- beq _08019E2A
- cmp r2, 0x1
- bne _08019E24
- adds r0, r1, 0
- adds r0, 0xE0
- strb r2, [r0]
- b _08019E3A
- .align 2, 0
-_08019E20: .4byte gUnknown_203B210
-_08019E24:
- adds r1, 0xE0
- movs r0, 0
- b _08019E38
-_08019E2A:
- cmp r2, 0x1
- bne _08019E34
- adds r1, 0xE0
- movs r0, 0x7
- b _08019E38
-_08019E34:
- adds r1, 0xE0
- movs r0, 0x6
-_08019E38:
- strb r0, [r1]
-_08019E3A:
- pop {r0}
- bx r0
- thumb_func_end sub_8019E04
-
- thumb_func_start sub_8019E40
-sub_8019E40:
- push {r4-r6,lr}
- adds r6, r0, 0
- bl sub_8091814
- cmp r0, 0
- beq _08019ED4
- ldr r5, _08019EC8
- 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, _08019ECC
- 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 sub_8091814
- adds r1, r0, 0
- adds r0, r4, 0
- movs r2, 0xA
- adds r3, r6, 0
- bl sub_8013818
- ldr r0, [r5]
- ldr r1, _08019ED0
- ldrh r1, [r1]
- strh r1, [r0, 0x18]
- bl sub_8013984
- bl sub_801A064
- bl sub_801A0D8
- movs r0, 0x1
- b _08019ED6
- .align 2, 0
-_08019EC8: .4byte gUnknown_203B214
-_08019ECC: .4byte gUnknown_80DB8CC
-_08019ED0: .4byte gUnknown_203B218
-_08019ED4:
- movs r0, 0
-_08019ED6:
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end sub_8019E40
-
- thumb_func_start sub_8019EDC
-sub_8019EDC:
- push {lr}
- sub sp, 0x4
- lsls r0, 24
- cmp r0, 0
- bne _08019EF8
- ldr r0, _08019EF4
- ldr r0, [r0]
- bl sub_8013660
- movs r0, 0
- b _08019FAA
- .align 2, 0
-_08019EF4: .4byte gUnknown_203B214
-_08019EF8:
- ldr r0, _08019F10
- ldr r0, [r0]
- bl GetKeyPress
- cmp r0, 0x2
- beq _08019F1A
- cmp r0, 0x2
- bgt _08019F14
- cmp r0, 0x1
- beq _08019F24
- b _08019F88
- .align 2, 0
-_08019F10: .4byte gUnknown_203B214
-_08019F14:
- cmp r0, 0x4
- beq _08019F7E
- b _08019F88
-_08019F1A:
- movs r0, 0x1
- bl PlayMenuSoundEffect
- movs r0, 0x2
- b _08019FAA
-_08019F24:
- bl sub_8019FB0
- lsls r0, 24
- lsrs r0, 24
- bl sub_809185C
- ldrb r2, [r0]
- lsls r2, 16
- ldr r3, _08019F68
- ldr r1, [sp]
- ands r1, r3
- orrs r1, r2
- str r1, [sp]
- ldrb r0, [r0, 0x1]
- lsls r0, 8
- ldr r2, _08019F6C
- ands r1, r2
- orrs r1, r0
- str r1, [sp]
- mov r0, sp
- bl sub_8090C7C
- ldr r1, _08019F70
- ldr r1, [r1]
- movs r2, 0x98
- lsls r2, 2
- adds r1, r2
- ldr r1, [r1]
- cmp r0, r1
- ble _08019F74
- movs r0, 0x2
- bl PlayMenuSoundEffect
- b _08019F7A
- .align 2, 0
-_08019F68: .4byte 0xff00ffff
-_08019F6C: .4byte 0xffff00ff
-_08019F70: .4byte gUnknown_203B460
-_08019F74:
- movs r0, 0
- bl PlayMenuSoundEffect
-_08019F7A:
- movs r0, 0x3
- b _08019FAA
-_08019F7E:
- movs r0, 0x4
- bl PlayMenuSoundEffect
- movs r0, 0x4
- b _08019FAA
-_08019F88:
- ldr r0, _08019F9C
- ldr r0, [r0]
- movs r1, 0x1
- bl sub_80138B8
- lsls r0, 24
- cmp r0, 0
- bne _08019FA0
- movs r0, 0
- b _08019FAA
- .align 2, 0
-_08019F9C: .4byte gUnknown_203B214
-_08019FA0:
- bl sub_801A064
- bl sub_801A0D8
- movs r0, 0x1
-_08019FAA:
- add sp, 0x4
- pop {r1}
- bx r1
- thumb_func_end sub_8019EDC
-
- thumb_func_start sub_8019FB0
-sub_8019FB0:
- ldr r0, _08019FC8
- 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
-_08019FC8: .4byte gUnknown_203B214
- thumb_func_end sub_8019FB0
-
- thumb_func_start sub_8019FCC
-sub_8019FCC:
- push {r4,r5,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- bl ResetUnusedInputStruct
- ldr r5, _0801A00C
- ldr r0, [r5]
- adds r0, 0x3C
- movs r1, 0
- movs r2, 0
- bl sub_800641C
- bl sub_8091814
- adds r1, r0, 0
- ldr r0, [r5]
- strh r1, [r0, 0x22]
- bl sub_8013984
- bl sub_801A064
- bl sub_801A0D8
- cmp r4, 0
- beq _0801A006
- ldr r0, [r5]
- bl AddMenuCursorSprite
-_0801A006:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0801A00C: .4byte gUnknown_203B214
- thumb_func_end sub_8019FCC
-
- thumb_func_start sub_801A010
-sub_801A010:
- push {r4,r5,lr}
- ldr r4, _0801A058
- ldr r2, [r4]
- cmp r2, 0
- beq _0801A050
- ldr r1, _0801A05C
- 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, _0801A060
- 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]
-_0801A050:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0801A058: .4byte gUnknown_203B214
-_0801A05C: .4byte gUnknown_203B218
-_0801A060: .4byte gUnknown_80DB8B4
- thumb_func_end sub_801A010
-
- 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 sub_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 sub_8090C7C
- 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 gUnknown_203B460
-_0801A1BC:
- mov r0, r8
- ldr r1, _0801A204
- add r2, sp, 0x4
- bl sub_800D158
- 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 sub_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 sub_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 sub_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 sub_8090C7C
- 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 gUnknown_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 sub_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 sub_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 sub_8090C7C
- 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 gUnknown_203B460
-_0801A588:
- mov r0, r8
- ldr r1, _0801A5D0
- add r2, sp, 0x4
- bl sub_800D158
- 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 sub_8090A34
- 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 sub_80910B4
- 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 sub_8090A34
- 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 sub_80914E4
- lsls r0, 24
- cmp r0, 0
- beq _0801A7F4
- mov r0, sp
- bl sub_8090CCC
- 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 gUnknown_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 sub_80910B4
- bl sub_8090A34
- 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 gUnknown_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 sub_80914E4
- 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 sub_8090CCC
- 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 sub_800D158
- 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 gUnknown_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 sub_8014FF0
- 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 sub_8091764
- 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 sub_8014FF0
-_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 sub_8090A34
- 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 sub_8091524
- lsls r0, 24
- cmp r0, 0
- beq _0801AE12
- lsrs r0, r4, 24
- bl sub_8090A60
- 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 gUnknown_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 sub_8090A60
- 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 gUnknown_203B460
-_0801AE6C:
- adds r0, r5, 0x1
-_0801AE6E:
- lsls r0, 16
- lsrs r5, r0, 16
-_0801AE72:
- adds r6, 0x1
-_0801AE74:
- bl sub_8090A34
- 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 sub_8090D44
- adds r4, r0, 0
- ldr r2, [sp]
- ldr r0, [r2]
- lsls r5, r7, 2
- adds r0, r5
- ldrb r0, [r0, 0x2]
- bl sub_8090D44
- 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 sub_8090A34
- cmp r7, r0
- blt _0801AF12
- mov r9, r8
-_0801AF78:
- bl sub_8090A34
- 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 gUnknown_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
-
- thumb_func_start sub_801AFA4
-sub_801AFA4:
- push {r4,r5,lr}
- adds r4, r0, 0
- ldr r5, _0801AFEC
- movs r0, 0xA4
- movs r1, 0x8
- bl MemoryAlloc
- str r0, [r5]
- str r4, [r0, 0x4]
- ldr r1, _0801AFF0
- ldr r1, [r1]
- lsls r4, 2
- adds r1, r4
- ldrb r1, [r1, 0x2]
- strb r1, [r0, 0x8]
- ldr r0, [r5]
- ldrb r0, [r0, 0x8]
- bl sub_80913CC
- ldr r1, [r5]
- strh r0, [r1, 0xA]
- ldr r0, _0801AFF4
- ldrh r1, [r1, 0xA]
- bl sub_8092C84
- movs r0, 0
- bl sub_8099690
- bl sub_801B2F4
- cmp r0, 0
- bne _0801AFF8
- movs r0, 0x3
- bl sub_801B064
- b _0801B004
- .align 2, 0
-_0801AFEC: .4byte gUnknown_203B22C
-_0801AFF0: .4byte gUnknown_203B460
-_0801AFF4: .4byte gUnknown_202E1C8
-_0801AFF8:
- ldr r1, [r5]
- movs r0, 0x4
- str r0, [r1, 0x60]
- movs r0, 0
- bl sub_801B064
-_0801B004:
- movs r0, 0x1
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_801AFA4
-
- thumb_func_start sub_801B00C
-sub_801B00C:
- push {lr}
- ldr r0, _0801B024
- ldr r0, [r0]
- ldr r0, [r0]
- cmp r0, 0x1
- beq _0801B036
- cmp r0, 0x1
- bgt _0801B028
- cmp r0, 0
- beq _0801B030
- b _0801B03C
- .align 2, 0
-_0801B024: .4byte gUnknown_203B22C
-_0801B028:
- cmp r0, 0x4
- bne _0801B03C
- movs r0, 0x3
- b _0801B042
-_0801B030:
- bl sub_801B200
- b _0801B040
-_0801B036:
- bl sub_801B2AC
- b _0801B040
-_0801B03C:
- bl sub_801B2D8
-_0801B040:
- movs r0, 0
-_0801B042:
- pop {r1}
- bx r1
- thumb_func_end sub_801B00C
-
- thumb_func_start sub_801B048
-sub_801B048:
- push {r4,lr}
- ldr r4, _0801B060
- ldr r0, [r4]
- cmp r0, 0
- beq _0801B05A
- bl MemoryFree
- movs r0, 0
- str r0, [r4]
-_0801B05A:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0801B060: .4byte gUnknown_203B22C
- thumb_func_end sub_801B048
-
- thumb_func_start sub_801B064
-sub_801B064:
- push {lr}
- ldr r1, _0801B078
- ldr r1, [r1]
- str r0, [r1]
- bl nullsub_37
- bl sub_801B080
- pop {r0}
- bx r0
- .align 2, 0
-_0801B078: .4byte gUnknown_203B22C
- thumb_func_end sub_801B064
-
- thumb_func_start nullsub_37
-nullsub_37:
- bx lr
- thumb_func_end nullsub_37
-
- thumb_func_start sub_801B080
-sub_801B080:
- push {r4,lr}
- sub sp, 0x14
- ldr r1, _0801B09C
- ldr r0, [r1]
- ldr r0, [r0]
- adds r4, r1, 0
- cmp r0, 0x4
- bhi _0801B168
- lsls r0, 2
- ldr r1, _0801B0A0
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0801B09C: .4byte gUnknown_203B22C
-_0801B0A0: .4byte _0801B0A4
- .align 2, 0
-_0801B0A4:
- .4byte _0801B0B8
- .4byte _0801B0E8
- .4byte _0801B0FC
- .4byte _0801B15C
- .4byte _0801B168
-_0801B0B8:
- bl sub_801B178
- ldr r0, _0801B0E0
- ldr r1, _0801B0E4
- ldr r3, [r1]
- ldr r2, [r3, 0x60]
- adds r3, 0x64
- movs r4, 0
- str r4, [sp]
- movs r1, 0x4
- str r1, [sp, 0x4]
- str r4, [sp, 0x8]
- str r4, [sp, 0xC]
- movs r1, 0x20
- str r1, [sp, 0x10]
- movs r1, 0
- bl sub_8014248
- b _0801B168
- .align 2, 0
-_0801B0E0: .4byte gUnknown_80DB9BC
-_0801B0E4: .4byte gUnknown_203B22C
-_0801B0E8:
- ldr r2, [r4]
- adds r0, r2, 0
- adds r0, 0x58
- movs r3, 0
- ldrsh r1, [r0, r3]
- adds r2, 0xC
- movs r0, 0x2
- bl DisplayGulpinDialogueSprite
- b _0801B168
-_0801B0FC:
- ldr r1, [r4]
- adds r0, r1, 0
- adds r0, 0xC
- ldr r1, [r1, 0x5C]
- adds r1, 0x2C
- bl sub_8094060
- ldr r0, [r4]
- ldrb r0, [r0, 0x8]
- bl sub_80915A0
- lsls r0, 24
- cmp r0, 0
- bne _0801B138
- ldr r3, _0801B150
- ldr r1, [r3]
- ldr r2, [r4]
- ldr r0, [r2, 0x4]
- lsls r0, 2
- adds r1, r0
- ldrb r0, [r2, 0x8]
- subs r0, 0x7D
- strb r0, [r1, 0x1]
- ldr r1, [r3]
- ldr r0, [r4]
- ldr r0, [r0, 0x4]
- lsls r0, 2
- adds r1, r0
- movs r0, 0x7C
- strb r0, [r1, 0x2]
-_0801B138:
- movs r0, 0x9C
- lsls r0, 1
- bl sub_8011988
- ldr r0, _0801B154
- ldr r3, _0801B158
- movs r1, 0
- movs r2, 0
- bl sub_80141B4
- b _0801B168
- .align 2, 0
-_0801B150: .4byte gUnknown_203B460
-_0801B154: .4byte gUnknown_80DB9E4
-_0801B158: .4byte 0x00000121
-_0801B15C:
- ldr r0, _0801B170
- ldr r3, _0801B174
- movs r1, 0
- movs r2, 0
- bl sub_80141B4
-_0801B168:
- add sp, 0x14
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0801B170: .4byte gUnknown_80DBA0C
-_0801B174: .4byte 0x00000121
- thumb_func_end sub_801B080
-
- thumb_func_start sub_801B178
-sub_801B178:
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- movs r5, 0
- ldr r1, _0801B1F4
- ldr r0, [r1]
- ldr r0, [r0, 0x4C]
- cmp r5, r0
- bge _0801B1D2
- ldr r0, _0801B1F8
- mov r8, r0
- adds r7, r1, 0
- movs r6, 0
-_0801B192:
- ldr r4, _0801B1FC
- adds r4, r6, r4
- ldr r0, [r7]
- lsls r1, r5, 1
- adds r0, 0x50
- adds r0, r1
- movs r2, 0
- ldrsh r1, [r0, r2]
- movs r0, 0x58
- muls r0, r1
- mov r2, r8
- ldr r1, [r2]
- adds r1, r0
- adds r0, r4, 0
- bl sub_808DA34
- ldr r2, [r7]
- lsls r1, r5, 3
- adds r0, r2, 0
- adds r0, 0x64
- adds r0, r1
- str r4, [r0]
- adds r0, r2, 0
- adds r0, 0x68
- adds r0, r1
- adds r1, r5, 0x4
- str r1, [r0]
- adds r6, 0x50
- adds r5, 0x1
- ldr r0, [r2, 0x4C]
- cmp r5, r0
- blt _0801B192
-_0801B1D2:
- ldr r0, _0801B1F4
- ldr r2, [r0]
- lsls r3, r5, 3
- adds r0, r2, 0
- adds r0, 0x64
- adds r0, r3
- movs r1, 0
- str r1, [r0]
- adds r2, 0x68
- adds r2, r3
- movs r0, 0x1
- str r0, [r2]
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0801B1F4: .4byte gUnknown_203B22C
-_0801B1F8: .4byte gUnknown_203B45C
-_0801B1FC: .4byte gAvailablePokemonNames
- thumb_func_end sub_801B178
-
- thumb_func_start sub_801B200
-sub_801B200:
- push {r4-r6,lr}
- sub sp, 0x4
- mov r0, sp
- bl sub_80144A4
- cmp r0, 0
- bne _0801B2A4
- ldr r5, _0801B228
- ldr r3, [r5]
- ldr r0, [sp]
- str r0, [r3, 0x60]
- ldr r1, [sp]
- cmp r1, 0
- beq _0801B2A4
- cmp r1, 0x1
- bne _0801B22C
- movs r0, 0x4
- bl sub_801B064
- b _0801B2A4
- .align 2, 0
-_0801B228: .4byte gUnknown_203B22C
-_0801B22C:
- subs r1, 0x4
- lsls r1, 1
- adds r0, r3, 0
- adds r0, 0x50
- adds r0, r1
- ldrh r0, [r0]
- adds r1, r3, 0
- adds r1, 0x58
- strh r0, [r1]
- ldr r2, _0801B26C
- movs r0, 0
- ldrsh r1, [r1, r0]
- movs r0, 0x58
- muls r0, r1
- ldr r1, [r2]
- adds r1, r0
- str r1, [r3, 0x5C]
- ldr r0, _0801B270
- bl sub_808DA34
- ldr r1, [r5]
- adds r0, r1, 0
- adds r0, 0xC
- ldr r1, [r1, 0x5C]
- adds r1, 0x2C
- bl sub_809401C
- movs r4, 0
- adds r6, r5, 0
- movs r5, 0xC
- b _0801B278
- .align 2, 0
-_0801B26C: .4byte gUnknown_203B45C
-_0801B270: .4byte gUnknown_202E218
-_0801B274:
- adds r5, 0x8
- adds r4, 0x1
-_0801B278:
- cmp r4, 0x7
- bgt _0801B292
- ldr r3, [r6]
- adds r2, r3, r5
- ldrb r1, [r2]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- bne _0801B274
- ldrh r1, [r3, 0xA]
- adds r0, r2, 0
- bl sub_8092AD4
-_0801B292:
- cmp r4, 0x3
- ble _0801B29E
- movs r0, 0x1
- bl sub_801B064
- b _0801B2A4
-_0801B29E:
- movs r0, 0x2
- bl sub_801B064
-_0801B2A4:
- add sp, 0x4
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_801B200
-
- thumb_func_start sub_801B2AC
-sub_801B2AC:
- push {lr}
- bl sub_801E8C0
- cmp r0, 0x2
- beq _0801B2CA
- cmp r0, 0x2
- bcc _0801B2D4
- cmp r0, 0x3
- bne _0801B2D4
- bl sub_801E93C
- movs r0, 0x2
- bl sub_801B064
- b _0801B2D4
-_0801B2CA:
- bl sub_801E93C
- movs r0, 0
- bl sub_801B064
-_0801B2D4:
- pop {r0}
- bx r0
- thumb_func_end sub_801B2AC
-
- thumb_func_start sub_801B2D8
-sub_801B2D8:
- push {lr}
- sub sp, 0x4
- mov r0, sp
- bl sub_80144A4
- cmp r0, 0
- bne _0801B2EC
- movs r0, 0x4
- bl sub_801B064
-_0801B2EC:
- add sp, 0x4
- pop {r0}
- bx r0
- thumb_func_end sub_801B2D8
-
- thumb_func_start sub_801B2F4
-sub_801B2F4:
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x10
- mov r0, sp
- bl sub_808D580
- adds r6, r0, 0
- ldr r2, _0801B36C
- ldr r1, [r2]
- movs r0, 0
- str r0, [r1, 0x4C]
- movs r5, 0
- cmp r5, r6
- bge _0801B35A
- ldr r0, _0801B370
- mov r8, r0
- adds r7, r2, 0
- mov r4, sp
-_0801B31A:
- ldr r1, [r4]
- movs r0, 0x58
- muls r0, r1
- mov r2, r8
- ldr r1, [r2]
- adds r1, r0
- ldr r0, [r7]
- ldrh r0, [r0, 0xA]
- movs r2, 0x8
- ldrsh r1, [r1, r2]
- bl sub_808E190
- lsls r0, 24
- cmp r0, 0
- beq _0801B352
- ldr r2, [r7]
- ldr r0, [r2, 0x4C]
- lsls r0, 1
- adds r1, r2, 0
- adds r1, 0x50
- adds r1, r0
- ldr r0, [r4]
- strh r0, [r1]
- ldr r0, [r2, 0x4C]
- cmp r0, 0x3
- bgt _0801B35A
- adds r0, 0x1
- str r0, [r2, 0x4C]
-_0801B352:
- adds r4, 0x4
- adds r5, 0x1
- cmp r5, r6
- blt _0801B31A
-_0801B35A:
- ldr r0, _0801B36C
- ldr r0, [r0]
- ldr r0, [r0, 0x4C]
- add sp, 0x10
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_0801B36C: .4byte gUnknown_203B22C
-_0801B370: .4byte gUnknown_203B45C
- thumb_func_end sub_801B2F4
-
- thumb_func_start sub_801B374
-sub_801B374:
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r1, _0801B3A8
- ldr r4, [r1]
- bl sub_80913CC
- lsls r0, 16
- lsrs r6, r0, 16
- movs r5, 0
-_0801B388:
- ldrh r0, [r4]
- lsrs r0, 1
- movs r1, 0x1
- ands r0, r1
- cmp r0, 0
- beq _0801B3AC
- movs r0, 0x8
- ldrsh r1, [r4, r0]
- adds r0, r6, 0
- bl sub_808E190
- lsls r0, 24
- cmp r0, 0
- beq _0801B3AC
- movs r0, 0
- b _0801B3BA
- .align 2, 0
-_0801B3A8: .4byte gUnknown_203B45C
-_0801B3AC:
- adds r5, 0x1
- adds r4, 0x58
- movs r0, 0xCE
- lsls r0, 1
- cmp r5, r0
- ble _0801B388
- movs r0, 0x1
-_0801B3BA:
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end sub_801B374
-
- thumb_func_start sub_801B3C0
-sub_801B3C0:
- push {r4,r5,lr}
- adds r5, r0, 0
- movs r0, 0x1
- bl ResetSprites
- ldr r4, _0801B40C
- movs r0, 0x94
- movs r1, 0x8
- bl MemoryAlloc
- str r0, [r4]
- ldr r1, [r5]
- str r1, [r0, 0x4]
- adds r0, 0x88
- bl sub_801317C
- ldr r0, [r4]
- movs r1, 0
- str r1, [r0, 0x24]
- adds r0, 0x28
- bl sub_80140B4
- bl ResetUnusedInputStruct
- ldr r0, [r4]
- adds r0, 0x28
- movs r1, 0x1
- movs r2, 0x1
- bl sub_800641C
- movs r0, 0
- bl sub_801B46C
- movs r0, 0x1
- pop {r4,r5}
- pop {r1}
- bx r1
- .align 2, 0
-_0801B40C: .4byte gUnknown_203B230
- thumb_func_end sub_801B3C0
-
- thumb_func_start sub_801B410
-sub_801B410:
- push {lr}
- ldr r0, _0801B428
- ldr r0, [r0]
- ldr r0, [r0]
- cmp r0, 0x1
- beq _0801B43C
- cmp r0, 0x1
- bgt _0801B42C
- cmp r0, 0
- beq _0801B436
- b _0801B446
- .align 2, 0
-_0801B428: .4byte gUnknown_203B230
-_0801B42C:
- cmp r0, 0x2
- beq _0801B446
- cmp r0, 0x3
- beq _0801B442
- b _0801B446
-_0801B436:
- bl sub_801B51C
- b _0801B44A
-_0801B43C:
- bl sub_801B590
- b _0801B44A
-_0801B442:
- movs r0, 0x3
- b _0801B44C
-_0801B446:
- movs r0, 0x2
- b _0801B44C
-_0801B44A:
- movs r0, 0
-_0801B44C:
- pop {r1}
- bx r1
- thumb_func_end sub_801B410
-
- thumb_func_start sub_801B450
-sub_801B450:
- push {r4,lr}
- ldr r4, _0801B468
- ldr r0, [r4]
- cmp r0, 0
- beq _0801B462
- bl MemoryFree
- movs r0, 0
- str r0, [r4]
-_0801B462:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0801B468: .4byte gUnknown_203B230
- thumb_func_end sub_801B450
-
- thumb_func_start sub_801B46C
-sub_801B46C:
- push {lr}
- ldr r1, _0801B47C
- ldr r1, [r1]
- str r0, [r1]
- bl sub_801B480
- pop {r0}
- bx r0
- .align 2, 0
-_0801B47C: .4byte gUnknown_203B230
- thumb_func_end sub_801B46C
-
- thumb_func_start sub_801B480
-sub_801B480:
- push {r4,r5,lr}
- sub sp, 0x4
- ldr r5, _0801B4B0
- ldr r0, [r5]
- ldr r4, [r0]
- cmp r4, 0x1
- beq _0801B4B4
- cmp r4, 0x1
- bgt _0801B50C
- cmp r4, 0
- bne _0801B50C
- ldr r0, [r0, 0x24]
- bl sub_8008C54
- ldr r2, [r5]
- adds r0, r2, 0x4
- ldr r1, [r2, 0x24]
- adds r2, 0x10
- bl sub_80913E0
- ldr r1, [r5]
- str r0, [r1, 0xC]
- str r4, [r1, 0x20]
- b _0801B50C
- .align 2, 0
-_0801B4B0: .4byte gUnknown_203B230
-_0801B4B4:
- ldr r0, [r0, 0x24]
- bl sub_8008C54
- ldr r0, [r5]
- ldr r0, [r0, 0x24]
- bl sub_80073B8
- ldr r0, [r5]
- ldr r1, [r0, 0x8]
- lsls r1, 2
- adds r0, 0x10
- adds r0, r1
- ldr r1, [r0]
- ldr r0, _0801B514
- ldr r1, [r1]
- bl strcpy
- ldr r2, _0801B518
- ldr r0, [r5]
- ldr r3, [r0, 0x24]
- movs r4, 0
- str r4, [sp]
- movs r0, 0x10
- movs r1, 0
- bl sub_8014FF0
- ldr r3, [r5]
- ldr r1, [r3, 0x8]
- lsls r1, 2
- adds r0, r3, 0
- adds r0, 0x10
- adds r0, r1
- ldr r0, [r0]
- ldr r2, [r0, 0x4]
- ldr r3, [r3, 0x24]
- str r4, [sp]
- movs r0, 0x4
- movs r1, 0x10
- bl sub_8014FF0
- ldr r0, [r5]
- ldr r0, [r0, 0x24]
- bl sub_80073E0
-_0801B50C:
- add sp, 0x4
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0801B514: .4byte gAvailablePokemonNames
-_0801B518: .4byte gUnknown_80DBA4C
- thumb_func_end sub_801B480
-
- thumb_func_start sub_801B51C
-sub_801B51C:
- push {r4,lr}
- ldr r0, _0801B558
- ldr r2, [r0]
- ldr r1, [r2, 0xC]
- adds r4, r0, 0
- cmp r1, 0
- beq _0801B540
- ldr r0, [r2, 0x20]
- movs r1, 0x8
- ands r0, r1
- cmp r0, 0
- beq _0801B538
- bl sub_8013F84
-_0801B538:
- ldr r1, [r4]
- ldr r0, [r1, 0x20]
- adds r0, 0x1
- str r0, [r1, 0x20]
-_0801B540:
- ldr r1, [r4]
- adds r0, r1, 0
- adds r0, 0x88
- ldr r1, [r1, 0x24]
- bl sub_8012A64
- cmp r0, 0x1
- beq _0801B55C
- cmp r0, 0x2
- beq _0801B57E
- b _0801B58A
- .align 2, 0
-_0801B558: .4byte gUnknown_203B230
-_0801B55C:
- movs r0, 0
- bl PlayMenuSoundEffect
- ldr r1, [r4]
- ldr r0, [r1, 0xC]
- cmp r0, 0
- beq _0801B576
- movs r0, 0
- str r0, [r1, 0x8]
- movs r0, 0x1
- bl sub_801B46C
- b _0801B58A
-_0801B576:
- movs r0, 0x3
- bl sub_801B46C
- b _0801B58A
-_0801B57E:
- movs r0, 0x1
- bl PlayMenuSoundEffect
- movs r0, 0x2
- bl sub_801B46C
-_0801B58A:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_801B51C
-
- thumb_func_start sub_801B590
-sub_801B590:
- push {r4,lr}
- ldr r0, _0801B5D0
- ldr r3, [r0]
- ldr r1, [r3, 0xC]
- subs r1, 0x1
- ldr r2, [r3, 0x8]
- adds r4, r0, 0
- cmp r2, r1
- bge _0801B5B8
- ldr r0, [r3, 0x20]
- movs r1, 0x8
- ands r0, r1
- cmp r0, 0
- beq _0801B5B0
- bl sub_8013F84
-_0801B5B0:
- ldr r1, [r4]
- ldr r0, [r1, 0x20]
- adds r0, 0x1
- str r0, [r1, 0x20]
-_0801B5B8:
- ldr r1, [r4]
- adds r0, r1, 0
- adds r0, 0x88
- ldr r1, [r1, 0x24]
- bl sub_8012A64
- cmp r0, 0x1
- beq _0801B5D4
- cmp r0, 0x2
- beq _0801B5F8
- b _0801B604
- .align 2, 0
-_0801B5D0: .4byte gUnknown_203B230
-_0801B5D4:
- movs r0, 0
- bl PlayMenuSoundEffect
- ldr r0, [r4]
- ldr r1, [r0, 0x8]
- adds r1, 0x1
- str r1, [r0, 0x8]
- ldr r0, [r0, 0xC]
- cmp r1, r0
- bge _0801B5F0
- movs r0, 0x1
- bl sub_801B46C
- b _0801B604
-_0801B5F0:
- movs r0, 0
- bl sub_801B46C
- b _0801B604
-_0801B5F8:
- movs r0, 0x1
- bl PlayMenuSoundEffect
- movs r0, 0x2
- bl sub_801B46C
-_0801B604:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_801B590
-
- thumb_func_start sub_801B60C
-sub_801B60C:
- push {r4-r7,lr}
- adds r5, r0, 0
- adds r4, r1, 0
- lsls r4, 24
- lsrs r4, 24
- lsls r2, 24
- lsrs r7, r2, 24
- ldr r6, _0801B650
- movs r0, 0xAA
- lsls r0, 1
- movs r1, 0x8
- bl MemoryAlloc
- str r0, [r6]
- adds r2, r0, 0
- adds r2, 0xC8
- movs r1, 0
- str r1, [r2]
- str r5, [r0]
- strb r4, [r0, 0x12]
- ldr r0, [r6]
- ldrb r0, [r0, 0x12]
- bl sub_8090A60
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0
- beq _0801B654
- ldr r0, [r6]
- strb r7, [r0, 0x11]
- ldr r0, [r6]
- strb r7, [r0, 0xC]
- b _0801B65E
- .align 2, 0
-_0801B650: .4byte gUnknown_203B234
-_0801B654:
- ldr r0, [r6]
- strb r1, [r0, 0x11]
- ldr r1, [r6]
- movs r0, 0x1
- strb r0, [r1, 0xC]
-_0801B65E:
- ldr r5, _0801B6A0
- ldr r0, [r5]
- movs r1, 0
- movs r2, 0x1
- strb r2, [r0, 0x10]
- ldr r0, [r5]
- str r1, [r0, 0x14]
- strb r1, [r0, 0x18]
- ldr r0, [r5]
- strb r2, [r0, 0x1C]
- ldr r4, _0801B6A4
- bl sub_808D33C
- adds r1, r0, 0
- adds r0, r4, 0
- movs r2, 0x6
- bl sub_808D9AC
- ldr r0, _0801B6A8
- ldr r2, [r5]
- adds r1, r2, 0
- adds r1, 0x10
- adds r2, 0x14
- bl sub_8090E14
- movs r0, 0
- bl sub_801B748
- movs r0, 0x1
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_0801B6A0: .4byte gUnknown_203B234
-_0801B6A4: .4byte gAvailablePokemonNames
-_0801B6A8: .4byte gUnknown_202DE58
- thumb_func_end sub_801B60C
-
- thumb_func_start sub_801B6AC
-sub_801B6AC:
- push {lr}
- ldr r0, _0801B6C4
- ldr r0, [r0]
- ldr r0, [r0, 0x4]
- subs r0, 0x6
- cmp r0, 0xA
- bhi _0801B720
- lsls r0, 2
- ldr r1, _0801B6C8
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0801B6C4: .4byte gUnknown_203B234
-_0801B6C8: .4byte _0801B6CC
- .align 2, 0
-_0801B6CC:
- .4byte _0801B6FC
- .4byte _0801B702
- .4byte _0801B708
- .4byte _0801B708
- .4byte _0801B70E
- .4byte _0801B714
- .4byte _0801B71A
- .4byte _0801B720
- .4byte _0801B720
- .4byte _0801B720
- .4byte _0801B6F8
-_0801B6F8:
- movs r0, 0x3
- b _0801B726
-_0801B6FC:
- bl sub_801BC64
- b _0801B724
-_0801B702:
- bl sub_801BC94
- b _0801B724
-_0801B708:
- bl sub_801BCCC
- b _0801B724
-_0801B70E:
- bl sub_801BD80
- b _0801B724
-_0801B714:
- bl sub_801BEAC
- b _0801B724
-_0801B71A:
- bl sub_801BE30
- b _0801B724
-_0801B720:
- bl sub_801BEC8
-_0801B724:
- movs r0, 0
-_0801B726:
- pop {r1}
- bx r1
- thumb_func_end sub_801B6AC
-
- thumb_func_start sub_801B72C
-sub_801B72C:
- push {r4,lr}
- ldr r4, _0801B744
- ldr r0, [r4]
- cmp r0, 0
- beq _0801B73E
- bl MemoryFree
- movs r0, 0
- str r0, [r4]
-_0801B73E:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0801B744: .4byte gUnknown_203B234
- thumb_func_end sub_801B72C
-
- thumb_func_start sub_801B748
-sub_801B748:
- push {lr}
- ldr r1, _0801B75C
- ldr r1, [r1]
- str r0, [r1, 0x4]
- bl sub_801B760
- bl sub_801B874
- pop {r0}
- bx r0
- .align 2, 0
-_0801B75C: .4byte gUnknown_203B234
- thumb_func_end sub_801B748
-
- thumb_func_start sub_801B760
-sub_801B760:
- push {r4-r7,lr}
- ldr r0, _0801B77C
- ldr r1, [r0]
- ldr r1, [r1, 0x4]
- subs r1, 0x1
- adds r4, r0, 0
- cmp r1, 0xE
- bls _0801B772
- b _0801B86A
-_0801B772:
- lsls r0, r1, 2
- ldr r1, _0801B780
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0801B77C: .4byte gUnknown_203B234
-_0801B780: .4byte _0801B784
- .align 2, 0
-_0801B784:
- .4byte _0801B7C0
- .4byte _0801B86A
- .4byte _0801B86A
- .4byte _0801B86A
- .4byte _0801B86A
- .4byte _0801B7C0
- .4byte _0801B7C0
- .4byte _0801B7C0
- .4byte _0801B7C0
- .4byte _0801B800
- .4byte _0801B7C0
- .4byte _0801B840
- .4byte _0801B7C0
- .4byte _0801B7C0
- .4byte _0801B7C0
-_0801B7C0:
- ldr r4, _0801B7F8
- ldr r0, [r4]
- adds r0, 0xF4
- bl sub_8006518
- mov r12, r4
- ldr r4, _0801B7FC
- movs r3, 0
- movs r2, 0x3
-_0801B7D2:
- mov r0, r12
- ldr r1, [r0]
- adds r1, r3
- adds r1, 0xF4
- 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 _0801B7D2
- bl ResetUnusedInputStruct
- ldr r0, _0801B7F8
- ldr r0, [r0]
- b _0801B82E
- .align 2, 0
-_0801B7F8: .4byte gUnknown_203B234
-_0801B7FC: .4byte gUnknown_80DBA58
-_0801B800:
- ldr r0, [r4]
- adds r0, 0xF4
- bl sub_8006518
- bl sub_801BB5C
- ldr r2, [r4]
- movs r0, 0x92
- lsls r0, 1
- adds r2, r0
- ldr r1, _0801B83C
- 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, 0xCC
- bl sub_8012CAC
- bl ResetUnusedInputStruct
- ldr r0, [r4]
-_0801B82E:
- adds r0, 0xF4
- movs r1, 0x1
- movs r2, 0x1
- bl sub_800641C
- b _0801B86A
- .align 2, 0
-_0801B83C: .4byte gUnknown_80DBA70
-_0801B840:
- ldr r0, [r4]
- adds r0, 0xF4
- bl sub_8006518
- ldr r1, [r4]
- movs r6, 0x86
- lsls r6, 1
- adds r1, r6
- ldr r0, _0801B870
- ldm r0!, {r2,r3,r7}
- stm r1!, {r2,r3,r7}
- ldm r0!, {r5-r7}
- stm r1!, {r5-r7}
- bl ResetUnusedInputStruct
- ldr r0, [r4]
- adds r0, 0xF4
- movs r1, 0x1
- movs r2, 0x1
- bl sub_800641C
-_0801B86A:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0801B870: .4byte gUnknown_80DBA88
- thumb_func_end sub_801B760
-
- thumb_func_start sub_801B874
-sub_801B874:
- push {r4,lr}
- sub sp, 0x14
- ldr r1, _0801B890
- ldr r0, [r1]
- ldr r0, [r0, 0x4]
- adds r4, r1, 0
- cmp r0, 0x10
- bls _0801B886
- b _0801BB0E
-_0801B886:
- lsls r0, 2
- ldr r1, _0801B894
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0801B890: .4byte gUnknown_203B234
-_0801B894: .4byte _0801B898
- .align 2, 0
-_0801B898:
- .4byte _0801B8DC
- .4byte _0801B9BC
- .4byte _0801B9D8
- .4byte _0801B9E0
- .4byte _0801B9F0
- .4byte _0801B9F8
- .4byte _0801BA08
- .4byte _0801BA34
- .4byte _0801BA60
- .4byte _0801BA6E
- .4byte _0801BA76
- .4byte _0801BA94
- .4byte _0801BA9E
- .4byte _0801BAD0
- .4byte _0801BAE0
- .4byte _0801BAFC
- .4byte _0801BB0E
-_0801B8DC:
- ldr r1, [r4]
- ldrb r0, [r1, 0x12]
- cmp r0, 0xEA
- bne _0801B8FE
- movs r0, 0x10
- str r0, [r1, 0x8]
- movs r0, 0
- movs r1, 0x47
- movs r2, 0x1
- bl sub_8001784
- cmp r0, 0
- bne _0801B914
- movs r0, 0
- movs r1, 0x47
- movs r2, 0x1
- b _0801B92A
-_0801B8FE:
- cmp r0, 0xEB
- bne _0801B938
- movs r0, 0x10
- str r0, [r1, 0x8]
- movs r0, 0
- movs r1, 0x47
- movs r2, 0
- bl sub_8001784
- cmp r0, 0
- beq _0801B924
-_0801B914:
- movs r0, 0xFA
- lsls r0, 2
- bl sub_80913A0
- movs r0, 0x4
- bl sub_801B748
- b _0801BB0E
-_0801B924:
- movs r0, 0
- movs r1, 0x47
- movs r2, 0
-_0801B92A:
- movs r3, 0x1
- bl sub_800199C
- movs r0, 0x3
- bl sub_801B748
- b _0801BB0E
-_0801B938:
- bl sub_8090A34
- cmp r0, 0x13
- ble _0801B986
- ldr r0, [r4]
- ldrb r0, [r0, 0x12]
- bl sub_8091524
- lsls r0, 24
- cmp r0, 0
- beq _0801B968
- ldr r0, _0801B970
- ldr r1, [r0]
- ldr r2, [r4]
- ldrb r0, [r2, 0x12]
- lsls r0, 1
- adds r1, 0x50
- adds r3, r1, r0
- ldrh r1, [r3]
- ldrb r0, [r2, 0xC]
- adds r1, r0
- ldr r0, _0801B974
- cmp r1, r0
- ble _0801B978
-_0801B968:
- ldr r1, [r4]
- movs r0, 0x6
- b _0801B99C
- .align 2, 0
-_0801B970: .4byte gUnknown_203B460
-_0801B974: .4byte 0x000003e7
-_0801B978:
- strh r1, [r3]
- movs r0, 0xCB
- bl sub_8011988
- ldr r1, [r4]
- movs r0, 0x5
- b _0801B99C
-_0801B986:
- ldr r0, [r4]
- adds r0, 0x10
- bl sub_8091290
- bl sub_80910B4
- movs r0, 0xCB
- bl sub_8011988
- ldr r1, [r4]
- movs r0, 0x10
-_0801B99C:
- str r0, [r1, 0x8]
- ldr r0, _0801B9B0
- ldr r0, [r0]
- ldr r0, [r0]
- cmp r0, 0x1
- bne _0801B9B4
- movs r0, 0x2
- bl sub_801B748
- b _0801BB0E
- .align 2, 0
-_0801B9B0: .4byte gUnknown_203B234
-_0801B9B4:
- movs r0, 0x1
- bl sub_801B748
- b _0801BB0E
-_0801B9BC:
- movs r0, 0
- bl sub_808D544
- cmp r0, 0x1
- bgt _0801B9D0
- ldr r0, _0801B9CC
- b _0801BAE8
- .align 2, 0
-_0801B9CC: .4byte gUnknown_80DBAA0
-_0801B9D0:
- ldr r0, _0801B9D4
- b _0801BAE8
- .align 2, 0
-_0801B9D4: .4byte gUnknown_80DBAD0
-_0801B9D8:
- ldr r0, _0801B9DC
- b _0801BAE8
- .align 2, 0
-_0801B9DC: .4byte gUnknown_80DBB08
-_0801B9E0:
- movs r0, 0xD4
- bl sub_8011988
- ldr r0, _0801B9EC
- b _0801BAE8
- .align 2, 0
-_0801B9EC: .4byte gUnknown_80DBB38
-_0801B9F0:
- ldr r0, _0801B9F4
- b _0801BAE8
- .align 2, 0
-_0801B9F4: .4byte gUnknown_80DBB9C
-_0801B9F8:
- ldr r1, [r4]
- movs r0, 0x10
- str r0, [r1, 0x8]
- ldr r0, _0801BA04
- b _0801BAE8
- .align 2, 0
-_0801BA04: .4byte gUnknown_80DBC28
-_0801BA08:
- bl sub_801BB20
- ldr r0, _0801BA2C
- ldr r1, _0801BA30
- ldr r3, [r1]
- adds r3, 0xCC
- movs r2, 0
- str r2, [sp]
- movs r1, 0x4
- str r1, [sp, 0x4]
- str r2, [sp, 0x8]
- str r2, [sp, 0xC]
- str r2, [sp, 0x10]
- movs r1, 0
- movs r2, 0x4
- bl sub_8014248
- b _0801BB0E
- .align 2, 0
-_0801BA2C: .4byte gUnknown_80DBC60
-_0801BA30: .4byte gUnknown_203B234
-_0801BA34:
- bl sub_801BC24
- ldr r0, _0801BA58
- ldr r1, _0801BA5C
- ldr r3, [r1]
- adds r3, 0xCC
- movs r2, 0
- str r2, [sp]
- movs r1, 0x4
- str r1, [sp, 0x4]
- str r2, [sp, 0x8]
- str r2, [sp, 0xC]
- str r2, [sp, 0x10]
- movs r1, 0
- movs r2, 0x3
- bl sub_8014248
- b _0801BB0E
- .align 2, 0
-_0801BA58: .4byte gUnknown_80DBC98
-_0801BA5C: .4byte gUnknown_203B234
-_0801BA60:
- movs r0, 0x1
- movs r1, 0x3
- movs r2, 0
- movs r3, 0xA
- bl sub_801A5D8
- b _0801BB0E
-_0801BA6E:
- movs r0, 0x1
- bl sub_801A8D0
- b _0801BB0E
-_0801BA76:
- bl sub_801A9E0
- ldr r0, _0801BA90
- ldr r2, [r0]
- adds r0, r2, 0
- adds r0, 0x28
- adds r1, r2, 0
- adds r1, 0xCC
- adds r2, 0xC8
- ldr r2, [r2]
- str r2, [sp]
- movs r2, 0x2
- b _0801BAC0
- .align 2, 0
-_0801BA90: .4byte gUnknown_203B234
-_0801BA94:
- ldr r0, [r4]
- adds r0, 0x20
- bl sub_801B3C0
- b _0801BB0E
-_0801BA9E:
- bl sub_801A9E0
- ldr r4, _0801BACC
- ldr r0, [r4]
- adds r0, 0x28
- movs r1, 0
- bl sub_8012EA4
- bl sub_801BC24
- ldr r1, [r4]
- adds r0, r1, 0
- adds r0, 0x78
- adds r1, 0xCC
- movs r2, 0x3
- str r2, [sp]
- movs r2, 0x1
-_0801BAC0:
- str r2, [sp, 0x4]
- movs r2, 0
- movs r3, 0
- bl sub_8012D60
- b _0801BB0E
- .align 2, 0
-_0801BACC: .4byte gUnknown_203B234
-_0801BAD0:
- ldr r1, [r4]
- movs r0, 0x10
- str r0, [r1, 0x8]
- ldr r0, _0801BADC
- b _0801BAE8
- .align 2, 0
-_0801BADC: .4byte gUnknown_80DBCC4
-_0801BAE0:
- ldr r1, [r4]
- movs r0, 0x10
- str r0, [r1, 0x8]
- ldr r0, _0801BAF4
-_0801BAE8:
- ldr r3, _0801BAF8
- movs r1, 0
- movs r2, 0
- bl sub_80141B4
- b _0801BB0E
- .align 2, 0
-_0801BAF4: .4byte gUnknown_80DBCE8
-_0801BAF8: .4byte 0x00000101
-_0801BAFC:
- ldr r1, [r4]
- movs r0, 0x10
- str r0, [r1, 0x8]
- ldr r0, _0801BB18
- ldr r3, _0801BB1C
- movs r1, 0
- movs r2, 0
- bl sub_80141B4
-_0801BB0E:
- add sp, 0x14
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0801BB18: .4byte gUnknown_80DBD24
-_0801BB1C: .4byte 0x00000101
- thumb_func_end sub_801B874
-
- thumb_func_start sub_801BB20
-sub_801BB20:
- ldr r0, _0801BB50
- ldr r3, [r0]
- movs r2, 0
- adds r1, r3, 0
- adds r1, 0xCC
- ldr r0, _0801BB54
- str r0, [r1]
- adds r1, 0x4
- movs r0, 0x4
- str r0, [r1]
- adds r1, 0x4
- ldr r0, _0801BB58
- str r0, [r1]
- adds r1, 0x4
- movs r0, 0x5
- str r0, [r1]
- adds r0, r3, 0
- adds r0, 0xDC
- str r2, [r0]
- adds r1, 0x8
- movs r0, 0x1
- negs r0, r0
- str r0, [r1]
- bx lr
- .align 2, 0
-_0801BB50: .4byte gUnknown_203B234
-_0801BB54: .4byte gKangaskhanTrashToolboxItem
-_0801BB58: .4byte gKangaskhanTrashReceivedItem
- thumb_func_end sub_801BB20
-
- thumb_func_start sub_801BB5C
-sub_801BB5C:
- push {r4-r7,lr}
- ldr r4, _0801BBEC
- ldr r2, [r4]
- adds r1, r2, 0
- adds r1, 0xCC
- ldr r0, _0801BBF0
- str r0, [r1]
- adds r1, 0x4
- movs r0, 0x6
- str r0, [r1]
- ldr r0, [r2, 0x24]
- bl sub_801ADA0
- lsls r0, 24
- cmp r0, 0
- bne _0801BB86
- ldr r0, [r4]
- adds r0, 0xD0
- movs r1, 0x1
- negs r1, r1
- str r1, [r0]
-_0801BB86:
- ldr r0, [r4]
- mov r12, r0
- movs r3, 0x1
- movs r2, 0x8
- mov r1, r12
- adds r1, 0xD4
- ldr r0, _0801BBF4
- str r0, [r1]
- adds r1, 0x4
- movs r0, 0x7
- str r0, [r1]
- adds r1, 0x4
- ldr r0, _0801BBF8
- ldr r0, [r0]
- str r0, [r1]
- mov r0, r12
- adds r0, 0xE0
- str r2, [r0]
- movs r5, 0x3
- adds r1, 0x8
- movs r0, 0
- str r0, [r1]
- mov r0, r12
- adds r0, 0xE8
- str r3, [r0]
- movs r3, 0
- adds r6, r4, 0
- movs r7, 0x1
- negs r7, r7
- mov r4, r12
- adds r4, 0xC8
- subs r1, 0x14
-_0801BBC6:
- ldr r2, [r1]
- cmp r2, r7
- beq _0801BBD2
- ldr r0, [r4]
- cmp r2, r0
- beq _0801BC1C
-_0801BBD2:
- adds r1, 0x8
- adds r3, 0x1
- cmp r3, r5
- blt _0801BBC6
- movs r3, 0
- cmp r3, r5
- bge _0801BC1C
- ldr r2, [r6]
- adds r0, r2, 0
- adds r0, 0xD0
- ldr r1, [r0]
- b _0801BC0E
- .align 2, 0
-_0801BBEC: .4byte gUnknown_203B234
-_0801BBF0: .4byte gKangaskhanStorage
-_0801BBF4: .4byte gKangaskhanTrash
-_0801BBF8: .4byte gUnknown_80D4970
-_0801BBFC:
- adds r3, 0x1
- cmp r3, r5
- bge _0801BC1C
- ldr r2, [r6]
- lsls r0, r3, 3
- adds r1, r2, 0
- adds r1, 0xD0
- adds r1, r0
- ldr r1, [r1]
-_0801BC0E:
- movs r0, 0x1
- negs r0, r0
- cmp r1, r0
- beq _0801BBFC
- adds r0, r2, 0
- adds r0, 0xC8
- str r1, [r0]
-_0801BC1C:
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_801BB5C
-
- thumb_func_start sub_801BC24
-sub_801BC24:
- ldr r0, _0801BC58
- ldr r0, [r0]
- mov r12, r0
- movs r3, 0
- mov r1, r12
- adds r1, 0xCC
- ldr r0, _0801BC5C
- ldr r0, [r0]
- str r0, [r1]
- adds r1, 0x4
- movs r0, 0x2
- str r0, [r1]
- movs r2, 0x1
- adds r1, 0x4
- ldr r0, _0801BC60
- ldr r0, [r0]
- str r0, [r1]
- adds r1, 0x4
- movs r0, 0x3
- str r0, [r1]
- mov r0, r12
- adds r0, 0xDC
- str r3, [r0]
- adds r0, 0x4
- str r2, [r0]
- bx lr
- .align 2, 0
-_0801BC58: .4byte gUnknown_203B234
-_0801BC5C: .4byte gUnknown_80D4920
-_0801BC60: .4byte gUnknown_80D4928
- thumb_func_end sub_801BC24
-
- thumb_func_start sub_801BC64
-sub_801BC64:
- push {lr}
- sub sp, 0x4
- mov r0, sp
- bl sub_80144A4
- cmp r0, 0
- bne _0801BC8C
- ldr r0, [sp]
- cmp r0, 0x4
- beq _0801BC7E
- cmp r0, 0x5
- beq _0801BC86
- b _0801BC8C
-_0801BC7E:
- movs r0, 0x8
- bl sub_801B748
- b _0801BC8C
-_0801BC86:
- movs r0, 0x7
- bl sub_801B748
-_0801BC8C:
- add sp, 0x4
- pop {r0}
- bx r0
- thumb_func_end sub_801BC64
-
- thumb_func_start sub_801BC94
-sub_801BC94:
- push {lr}
- sub sp, 0x4
- mov r0, sp
- bl sub_80144A4
- cmp r0, 0
- bne _0801BCC6
- ldr r0, [sp]
- cmp r0, 0x2
- beq _0801BCB8
- cmp r0, 0x2
- bgt _0801BCB2
- cmp r0, 0x1
- beq _0801BCC0
- b _0801BCC6
-_0801BCB2:
- cmp r0, 0x3
- beq _0801BCC0
- b _0801BCC6
-_0801BCB8:
- movs r0, 0xD
- bl sub_801B748
- b _0801BCC6
-_0801BCC0:
- movs r0, 0x6
- bl sub_801B748
-_0801BCC6:
- add sp, 0x4
- pop {r0}
- bx r0
- thumb_func_end sub_801BC94
-
- thumb_func_start sub_801BCCC
-sub_801BCCC:
- push {lr}
- movs r0, 0x1
- bl sub_801A6E8
- cmp r0, 0x4
- bhi _0801BD7A
- lsls r0, 2
- ldr r1, _0801BCE4
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0801BCE4: .4byte _0801BCE8
- .align 2, 0
-_0801BCE8:
- .4byte _0801BD7A
- .4byte _0801BD7A
- .4byte _0801BD70
- .4byte _0801BCFC
- .4byte _0801BD34
-_0801BCFC:
- bl sub_801A8AC
- ldr r1, _0801BD28
- ldr r2, [r1]
- str r0, [r2, 0x24]
- ldr r1, _0801BD2C
- ldr r1, [r1]
- lsls r0, 2
- adds r1, r0
- ldr r0, [r1]
- str r0, [r2, 0x20]
- ldr r0, _0801BD30
- adds r1, r2, 0
- adds r1, 0x20
- adds r2, 0x14
- bl sub_8090E14
- movs r0, 0xA
- bl sub_801B748
- b _0801BD7A
- .align 2, 0
-_0801BD28: .4byte gUnknown_203B234
-_0801BD2C: .4byte gUnknown_203B460
-_0801BD30: .4byte gUnknown_202DEA8
-_0801BD34:
- bl sub_801A8AC
- ldr r1, _0801BD64
- ldr r2, [r1]
- str r0, [r2, 0x24]
- ldr r1, _0801BD68
- ldr r1, [r1]
- lsls r0, 2
- adds r1, r0
- ldr r0, [r1]
- str r0, [r2, 0x20]
- ldr r0, _0801BD6C
- adds r1, r2, 0
- adds r1, 0x20
- adds r2, 0x14
- bl sub_8090E14
- movs r0, 0
- bl sub_8099690
- movs r0, 0xB
- bl sub_801B748
- b _0801BD7A
- .align 2, 0
-_0801BD64: .4byte gUnknown_203B234
-_0801BD68: .4byte gUnknown_203B460
-_0801BD6C: .4byte gUnknown_202DEA8
-_0801BD70:
- bl sub_801A928
- movs r0, 0x6
- bl sub_801B748
-_0801BD7A:
- pop {r0}
- bx r0
- thumb_func_end sub_801BCCC
-
- thumb_func_start sub_801BD80
-sub_801BD80:
- push {r4,lr}
- sub sp, 0x4
- movs r0, 0
- str r0, [sp]
- bl sub_801A6E8
- ldr r4, _0801BDC4
- ldr r0, [r4]
- adds r0, 0x28
- bl sub_8012FD8
- lsls r0, 24
- cmp r0, 0
- bne _0801BDB2
- ldr r0, [r4]
- adds r0, 0x28
- mov r1, sp
- bl sub_8013114
- ldr r1, [sp]
- cmp r1, 0x1
- beq _0801BDB2
- ldr r0, [r4]
- adds r0, 0xC8
- str r1, [r0]
-_0801BDB2:
- ldr r0, [sp]
- cmp r0, 0x6
- beq _0801BDD2
- cmp r0, 0x6
- bgt _0801BDC8
- cmp r0, 0x1
- beq _0801BE22
- b _0801BE28
- .align 2, 0
-_0801BDC4: .4byte gUnknown_203B234
-_0801BDC8:
- cmp r0, 0x7
- beq _0801BE0C
- cmp r0, 0x8
- beq _0801BE14
- b _0801BE28
-_0801BDD2:
- ldr r4, _0801BE08
- ldr r0, [r4]
- adds r0, 0x20
- bl sub_80917B8
- ldr r0, [r4]
- ldr r0, [r0, 0x24]
- bl sub_80911F8
- ldr r0, [r4]
- adds r0, 0x10
- bl sub_8091290
- bl sub_80910B4
- movs r0, 0xCB
- bl sub_8011988
- movs r0, 0
- bl sub_8099690
- bl sub_801A928
- movs r0, 0xE
- bl sub_801B748
- b _0801BE28
- .align 2, 0
-_0801BE08: .4byte gUnknown_203B234
-_0801BE0C:
- movs r0, 0xC
- bl sub_801B748
- b _0801BE28
-_0801BE14:
- movs r0, 0
- bl sub_8099690
- movs r0, 0xB
- bl sub_801B748
- b _0801BE28
-_0801BE22:
- movs r0, 0x9
- bl sub_801B748
-_0801BE28:
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_801BD80
-
- thumb_func_start sub_801BE30
-sub_801BE30:
- push {r4,lr}
- sub sp, 0x4
- movs r0, 0
- str r0, [sp]
- bl sub_801A6E8
- ldr r4, _0801BE70
- ldr r0, [r4]
- adds r0, 0x28
- bl sub_8012FD8
- ldr r0, [r4]
- adds r0, 0x78
- bl sub_8012FD8
- lsls r0, 24
- cmp r0, 0
- bne _0801BE5E
- ldr r0, [r4]
- adds r0, 0x78
- mov r1, sp
- bl sub_8013114
-_0801BE5E:
- ldr r0, [sp]
- cmp r0, 0x2
- beq _0801BE80
- cmp r0, 0x2
- bgt _0801BE74
- cmp r0, 0x1
- beq _0801BE78
- b _0801BEA4
- .align 2, 0
-_0801BE70: .4byte gUnknown_203B234
-_0801BE74:
- cmp r0, 0x3
- bne _0801BEA4
-_0801BE78:
- movs r0, 0x9
- bl sub_801B748
- b _0801BEA4
-_0801BE80:
- ldr r0, [r4]
- ldr r0, [r0, 0x24]
- bl sub_80911F8
- ldr r0, [r4]
- adds r0, 0x10
- bl sub_8091290
- bl sub_80910B4
- movs r0, 0xCB
- bl sub_8011988
- bl sub_801A928
- movs r0, 0xF
- bl sub_801B748
-_0801BEA4:
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_801BE30
-
- thumb_func_start sub_801BEAC
-sub_801BEAC:
- push {lr}
- bl sub_801B410
- cmp r0, 0x1
- bls _0801BEC4
- cmp r0, 0x3
- bhi _0801BEC4
- bl sub_801B450
- movs r0, 0x9
- bl sub_801B748
-_0801BEC4:
- pop {r0}
- bx r0
- thumb_func_end sub_801BEAC
-
- thumb_func_start sub_801BEC8
-sub_801BEC8:
- push {lr}
- sub sp, 0x4
- mov r0, sp
- bl sub_80144A4
- cmp r0, 0
- bne _0801BEE0
- ldr r0, _0801BEE8
- ldr r0, [r0]
- ldr r0, [r0, 0x8]
- bl sub_801B748
-_0801BEE0:
- add sp, 0x4
- pop {r0}
- bx r0
- .align 2, 0
-_0801BEE8: .4byte gUnknown_203B234
- thumb_func_end sub_801BEC8
-
- thumb_func_start sub_801BEEC
-sub_801BEEC:
- push {r4-r6,lr}
- lsls r0, 16
- asrs r5, r0, 16
- adds r0, r5, 0
- bl sub_801C5F0
- lsls r0, 24
- lsrs r6, r0, 24
- cmp r6, 0
- bne _0801BF40
- ldr r4, _0801BF38
- movs r0, 0x92
- lsls r0, 1
- movs r1, 0x8
- bl MemoryAlloc
- str r0, [r4]
- str r6, [r0, 0x30]
- strh r5, [r0, 0x4]
- ldr r3, _0801BF3C
- movs r1, 0x58
- adds r2, r5, 0
- muls r2, r1
- ldr r1, [r3]
- adds r1, r2
- str r1, [r0, 0x8]
- adds r0, 0xC
- movs r2, 0x14
- ldrsh r1, [r1, r2]
- bl sub_808EBA8
- ldr r1, [r4]
- str r0, [r1, 0x2C]
- movs r0, 0
- bl sub_801BFB4
- movs r0, 0x1
- b _0801BF42
- .align 2, 0
-_0801BF38: .4byte gUnknown_203B238
-_0801BF3C: .4byte gUnknown_203B45C
-_0801BF40:
- movs r0, 0
-_0801BF42:
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end sub_801BEEC
-
- thumb_func_start sub_801BF48
-sub_801BF48:
- push {lr}
- ldr r0, _0801BF60
- ldr r0, [r0]
- ldr r0, [r0]
- cmp r0, 0x4
- bhi _0801BF90
- lsls r0, 2
- ldr r1, _0801BF64
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0801BF60: .4byte gUnknown_203B238
-_0801BF64: .4byte _0801BF68
- .align 2, 0
-_0801BF68:
- .4byte _0801BF80
- .4byte _0801BF80
- .4byte _0801BF86
- .4byte _0801BF8C
- .4byte _0801BF7C
-_0801BF7C:
- movs r0, 0x3
- b _0801BF92
-_0801BF80:
- bl sub_801C118
- b _0801BF90
-_0801BF86:
- bl sub_801C1A0
- b _0801BF90
-_0801BF8C:
- bl sub_801C228
-_0801BF90:
- movs r0, 0
-_0801BF92:
- pop {r1}
- bx r1
- thumb_func_end sub_801BF48
-
- thumb_func_start sub_801BF98
-sub_801BF98:
- push {r4,lr}
- ldr r4, _0801BFB0
- ldr r0, [r4]
- cmp r0, 0
- beq _0801BFAA
- bl MemoryFree
- movs r0, 0
- str r0, [r4]
-_0801BFAA:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0801BFB0: .4byte gUnknown_203B238
- thumb_func_end sub_801BF98
-
- thumb_func_start sub_801BFB4
-sub_801BFB4:
- push {lr}
- ldr r1, _0801BFC8
- ldr r1, [r1]
- str r0, [r1]
- bl sub_801BFCC
- bl sub_801C03C
- pop {r0}
- bx r0
- .align 2, 0
-_0801BFC8: .4byte gUnknown_203B238
- thumb_func_end sub_801BFB4
-
- thumb_func_start sub_801BFCC
-sub_801BFCC:
- push {r4-r7,lr}
- ldr r4, _0801BFF0
- ldr r0, [r4]
- adds r0, 0xC4
- bl sub_8006518
- ldr r1, [r4]
- ldr r0, [r1]
- cmp r0, 0x2
- bne _0801BFF8
- adds r1, 0xF4
- ldr r0, _0801BFF4
- ldm r0!, {r2-r4}
- stm r1!, {r2-r4}
- ldm r0!, {r5-r7}
- stm r1!, {r5-r7}
- b _0801C01A
- .align 2, 0
-_0801BFF0: .4byte gUnknown_203B238
-_0801BFF4: .4byte gUnknown_80DBDB0
-_0801BFF8:
- mov r12, r4
- ldr r4, _0801C034
- movs r3, 0
- movs r2, 0x3
-_0801C000:
- mov r0, r12
- ldr r1, [r0]
- adds r1, r3
- adds r1, 0xC4
- 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 _0801C000
-_0801C01A:
- bl ResetUnusedInputStruct
- ldr r0, _0801C038
- ldr r0, [r0]
- adds r0, 0xC4
- movs r1, 0x1
- movs r2, 0x1
- bl sub_800641C
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0801C034: .4byte gUnknown_80DBD98
-_0801C038: .4byte gUnknown_203B238
- thumb_func_end sub_801BFCC
-
- thumb_func_start sub_801C03C
-sub_801C03C:
- push {lr}
- sub sp, 0x8
- ldr r1, _0801C058
- ldr r0, [r1]
- ldr r0, [r0]
- adds r2, r1, 0
- cmp r0, 0x4
- bhi _0801C0C2
- lsls r0, 2
- ldr r1, _0801C05C
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0801C058: .4byte gUnknown_203B238
-_0801C05C: .4byte _0801C060
- .align 2, 0
-_0801C060:
- .4byte _0801C074
- .4byte _0801C084
- .4byte _0801C08C
- .4byte _0801C0B8
- .4byte _0801C0C2
-_0801C074:
- ldr r0, [r2]
- movs r1, 0x4
- ldrsh r0, [r0, r1]
- movs r1, 0
- movs r2, 0x8
- bl sub_801C244
- b _0801C0C2
-_0801C084:
- movs r0, 0x1
- bl sub_801C3B0
- b _0801C0C2
-_0801C08C:
- bl sub_801C4C8
- bl sub_801C0C8
- ldr r0, _0801C0B4
- ldr r2, [r0]
- adds r0, r2, 0
- adds r0, 0x74
- adds r1, r2, 0
- adds r1, 0x34
- ldr r2, [r2, 0x30]
- str r2, [sp]
- movs r2, 0x2
- str r2, [sp, 0x4]
- movs r2, 0
- movs r3, 0
- bl sub_8012D60
- b _0801C0C2
- .align 2, 0
-_0801C0B4: .4byte gUnknown_203B238
-_0801C0B8:
- ldr r0, [r2]
- adds r0, 0x28
- ldrb r0, [r0]
- bl sub_801C620
-_0801C0C2:
- add sp, 0x8
- pop {r0}
- bx r0
- thumb_func_end sub_801C03C
-
- thumb_func_start sub_801C0C8
-sub_801C0C8:
- push {r4,r5,lr}
- ldr r3, _0801C10C
- ldr r1, [r3]
- movs r4, 0
- ldr r0, _0801C110
- str r0, [r1, 0x34]
- movs r0, 0x2
- str r0, [r1, 0x38]
- movs r2, 0x1
- ldr r0, _0801C114
- ldr r0, [r0]
- str r0, [r1, 0x3C]
- movs r0, 0x3
- str r0, [r1, 0x40]
- movs r5, 0x2
- str r4, [r1, 0x44]
- str r2, [r1, 0x48]
- movs r2, 0
- ldr r4, [r1, 0x30]
- adds r1, 0x38
-_0801C0F0:
- ldr r0, [r1]
- cmp r0, r4
- beq _0801C104
- adds r1, 0x8
- adds r2, 0x1
- cmp r2, r5
- blt _0801C0F0
- ldr r1, [r3]
- movs r0, 0x2
- str r0, [r1, 0x30]
-_0801C104:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0801C10C: .4byte gUnknown_203B238
-_0801C110: .4byte gUnknown_80DBDC8
-_0801C114: .4byte gUnknown_80D4970
- thumb_func_end sub_801C0C8
-
- thumb_func_start sub_801C118
-sub_801C118:
- push {lr}
- movs r0, 0x1
- bl sub_801C308
- cmp r0, 0x4
- bhi _0801C19A
- lsls r0, 2
- ldr r1, _0801C130
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0801C130: .4byte _0801C134
- .align 2, 0
-_0801C134:
- .4byte _0801C19A
- .4byte _0801C19A
- .4byte _0801C190
- .4byte _0801C148
- .4byte _0801C16C
-_0801C148:
- bl sub_801C390
- ldr r1, _0801C168
- ldr r2, [r1]
- str r0, [r2, 0x24]
- adds r1, r2, 0
- adds r1, 0xC
- adds r1, r0
- ldrb r0, [r1]
- adds r2, 0x28
- strb r0, [r2]
- movs r0, 0x2
- bl sub_801BFB4
- b _0801C19A
- .align 2, 0
-_0801C168: .4byte gUnknown_203B238
-_0801C16C:
- bl sub_801C390
- ldr r1, _0801C18C
- ldr r2, [r1]
- str r0, [r2, 0x24]
- adds r1, r2, 0
- adds r1, 0xC
- adds r1, r0
- ldrb r0, [r1]
- adds r2, 0x28
- strb r0, [r2]
- movs r0, 0x3
- bl sub_801BFB4
- b _0801C19A
- .align 2, 0
-_0801C18C: .4byte gUnknown_203B238
-_0801C190:
- bl sub_801C3F8
- movs r0, 0x4
- bl sub_801BFB4
-_0801C19A:
- pop {r0}
- bx r0
- thumb_func_end sub_801C118
-
- thumb_func_start sub_801C1A0
-sub_801C1A0:
- push {r4,lr}
- sub sp, 0x4
- movs r0, 0
- str r0, [sp]
- bl sub_801C308
- ldr r4, _0801C1E0
- ldr r0, [r4]
- adds r0, 0x74
- bl sub_8012FD8
- lsls r0, 24
- cmp r0, 0
- bne _0801C1D0
- ldr r0, [r4]
- adds r0, 0x74
- mov r1, sp
- bl sub_8013114
- ldr r1, [sp]
- cmp r1, 0x1
- beq _0801C1D0
- ldr r0, [r4]
- str r1, [r0, 0x30]
-_0801C1D0:
- ldr r0, [sp]
- cmp r0, 0x2
- beq _0801C1EA
- cmp r0, 0x2
- bgt _0801C1E4
- cmp r0, 0x1
- beq _0801C218
- b _0801C21E
- .align 2, 0
-_0801C1E0: .4byte gUnknown_203B238
-_0801C1E4:
- cmp r0, 0x3
- beq _0801C210
- b _0801C21E
-_0801C1EA:
- ldr r0, _0801C208
- bl sub_8011988
- ldr r0, _0801C20C
- ldr r1, [r0]
- ldr r0, [r1, 0x8]
- adds r0, 0x20
- adds r1, 0x28
- ldrb r1, [r1]
- bl sub_808EBF4
- movs r0, 0x1
- bl sub_801BFB4
- b _0801C21E
- .align 2, 0
-_0801C208: .4byte 0x00000133
-_0801C20C: .4byte gUnknown_203B238
-_0801C210:
- movs r0, 0x3
- bl sub_801BFB4
- b _0801C21E
-_0801C218:
- movs r0, 0x1
- bl sub_801BFB4
-_0801C21E:
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_801C1A0
-
- thumb_func_start sub_801C228
-sub_801C228:
- push {lr}
- bl sub_801C674
- cmp r0, 0x1
- bls _0801C240
- cmp r0, 0x3
- bhi _0801C240
- bl sub_801C6B4
- movs r0, 0x1
- bl sub_801BFB4
-_0801C240:
- pop {r0}
- bx r0
- thumb_func_end sub_801C228
-
- thumb_func_start sub_801C244
-sub_801C244:
- push {r4-r7,lr}
- adds r6, r1, 0
- adds r7, r2, 0
- lsls r0, 16
- asrs r0, 16
- adds r4, r0, 0
- bl sub_801C5F0
- lsls r0, 24
- cmp r0, 0
- beq _0801C25E
- movs r0, 0
- b _0801C2F6
-_0801C25E:
- ldr r5, _0801C2FC
- ldr r0, [r5]
- cmp r0, 0
- bne _0801C270
- movs r0, 0xC4
- movs r1, 0x8
- bl MemoryAlloc
- str r0, [r5]
-_0801C270:
- ldr r0, [r5]
- strh r4, [r0]
- ldr r3, _0801C300
- movs r1, 0x58
- adds r2, r4, 0
- muls r2, r1
- ldr r1, [r3]
- adds r1, r2
- str r1, [r0, 0x4]
- adds r0, 0x8
- movs r2, 0x14
- ldrsh r1, [r1, r2]
- bl sub_808EBA8
- adds r1, r0, 0
- ldr r0, [r5]
- str r1, [r0, 0x20]
- str r6, [r0, 0x58]
- lsls r1, r6, 1
- adds r1, r6
- lsls r1, 3
- adds r1, 0x60
- adds r1, r0, r1
- str r1, [r0, 0x5C]
- adds r0, 0x60
- bl sub_8006518
- ldr r1, [r5]
- ldr r2, [r1, 0x58]
- lsls r0, r2, 1
- adds r0, r2
- lsls r0, 3
- adds r1, r0
- adds r1, 0x60
- ldr r0, _0801C304
- ldm r0!, {r2-r4}
- stm r1!, {r2-r4}
- ldm r0!, {r2-r4}
- stm r1!, {r2-r4}
- ldr r1, [r5]
- ldr r0, [r1, 0x5C]
- adds r1, 0xC0
- str r1, [r0, 0x14]
- adds r1, r7, 0
- bl sub_8012D08
- bl ResetUnusedInputStruct
- ldr r0, [r5]
- adds r0, 0x60
- movs r1, 0x1
- movs r2, 0x1
- bl sub_800641C
- ldr r1, [r5]
- adds r0, r1, 0
- adds r0, 0x24
- ldr r1, [r1, 0x20]
- adds r2, r7, 0
- adds r3, r6, 0
- bl sub_8013818
- bl sub_801C440
- bl sub_801C4C8
- movs r0, 0x1
-_0801C2F6:
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_0801C2FC: .4byte gUnknown_203B23C
-_0801C300: .4byte gUnknown_203B45C
-_0801C304: .4byte gUnknown_80DBDF0
- thumb_func_end sub_801C244
-
- thumb_func_start sub_801C308
-sub_801C308:
- push {lr}
- lsls r0, 24
- cmp r0, 0
- bne _0801C324
- ldr r0, _0801C320
- ldr r0, [r0]
- adds r0, 0x24
- bl sub_8013660
- movs r0, 0
- b _0801C38A
- .align 2, 0
-_0801C320: .4byte gUnknown_203B23C
-_0801C324:
- ldr r0, _0801C33C
- ldr r0, [r0]
- adds r0, 0x24
- bl GetKeyPress
- cmp r0, 0x2
- beq _0801C346
- cmp r0, 0x2
- bgt _0801C340
- cmp r0, 0x1
- beq _0801C350
- b _0801C364
- .align 2, 0
-_0801C33C: .4byte gUnknown_203B23C
-_0801C340:
- cmp r0, 0x4
- beq _0801C35A
- b _0801C364
-_0801C346:
- movs r0, 0x1
- bl PlayMenuSoundEffect
- movs r0, 0x2
- b _0801C38A
-_0801C350:
- movs r0, 0
- bl PlayMenuSoundEffect
- movs r0, 0x3
- b _0801C38A
-_0801C35A:
- movs r0, 0x4
- bl PlayMenuSoundEffect
- movs r0, 0x4
- b _0801C38A
-_0801C364:
- ldr r0, _0801C37C
- ldr r0, [r0]
- adds r0, 0x24
- movs r1, 0x1
- bl sub_80138B8
- lsls r0, 24
- cmp r0, 0
- bne _0801C380
- movs r0, 0
- b _0801C38A
- .align 2, 0
-_0801C37C: .4byte gUnknown_203B23C
-_0801C380:
- bl sub_801C440
- bl sub_801C4C8
- movs r0, 0x1
-_0801C38A:
- pop {r1}
- bx r1
- thumb_func_end sub_801C308
-
- thumb_func_start sub_801C390
-sub_801C390:
- ldr r0, _0801C3AC
- ldr r2, [r0]
- adds r0, r2, 0
- adds r0, 0x42
- movs r3, 0
- ldrsh r1, [r0, r3]
- subs r0, 0x2
- movs r3, 0
- ldrsh r0, [r0, r3]
- muls r0, r1
- movs r3, 0x3C
- ldrsh r1, [r2, r3]
- adds r0, r1
- bx lr
- .align 2, 0
-_0801C3AC: .4byte gUnknown_203B23C
- thumb_func_end sub_801C390
-
- thumb_func_start sub_801C3B0
-sub_801C3B0:
- push {r4,r5,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- bl ResetUnusedInputStruct
- ldr r5, _0801C3F4
- ldr r0, [r5]
- adds r0, 0x60
- movs r1, 0
- movs r2, 0
- bl sub_800641C
- ldr r0, [r5]
- ldr r1, [r0, 0x20]
- adds r2, r0, 0
- adds r2, 0x46
- strh r1, [r2]
- adds r0, 0x24
- bl sub_8013984
- bl sub_801C440
- bl sub_801C4C8
- cmp r4, 0
- beq _0801C3EE
- ldr r0, [r5]
- adds r0, 0x24
- bl AddMenuCursorSprite
-_0801C3EE:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0801C3F4: .4byte gUnknown_203B23C
- thumb_func_end sub_801C3B0
-
- thumb_func_start sub_801C3F8
-sub_801C3F8:
- push {r4,r5,lr}
- ldr r4, _0801C438
- ldr r2, [r4]
- cmp r2, 0
- beq _0801C432
- ldr r0, [r2, 0x58]
- lsls r1, r0, 1
- adds r1, r0
- lsls r1, 3
- adds r1, r2, r1
- adds r1, 0x60
- ldr r0, _0801C43C
- 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, 0x60
- movs r1, 0x1
- movs r2, 0x1
- bl sub_800641C
- ldr r0, [r4]
- bl MemoryFree
- movs r0, 0
- str r0, [r4]
-_0801C432:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0801C438: .4byte gUnknown_203B23C
-_0801C43C: .4byte gUnknown_80DBDD8
- thumb_func_end sub_801C3F8
-
- thumb_func_start sub_801C440
-sub_801C440:
- push {r4,lr}
- ldr r4, _0801C4C4
- ldr r0, [r4]
- adds r1, r0, 0
- adds r1, 0x44
- ldrh r1, [r1]
- adds r0, 0xC0
- movs r2, 0
- strb r1, [r0]
- ldr r0, [r4]
- adds r1, r0, 0
- adds r1, 0x42
- ldrh r1, [r1]
- adds r0, 0xC1
- strb r1, [r0]
- ldr r0, [r4]
- adds r0, 0xC2
- movs r1, 0xA
- strb r1, [r0]
- ldr r0, [r4]
- adds r0, 0xC3
- strb r2, [r0]
- bl ResetUnusedInputStruct
- ldr r0, [r4]
- adds r0, 0x60
- movs r1, 0x1
- movs r2, 0x1
- bl sub_800641C
- ldr r0, [r4]
- movs r1, 0x3E
- ldrsh r0, [r0, r1]
- movs r1, 0xC
- bl sub_80095E4
- adds r0, 0x2
- ldr r2, [r4]
- ldr r3, [r2, 0x58]
- lsls r1, r3, 1
- adds r1, r3
- lsls r1, 3
- adds r1, r2, r1
- adds r1, 0x6E
- lsls r0, 16
- lsrs r0, 16
- strh r0, [r1]
- ldr r3, [r2, 0x58]
- lsls r1, r3, 1
- adds r1, r3
- lsls r1, 3
- adds r2, r1
- adds r2, 0x70
- strh r0, [r2]
- bl ResetUnusedInputStruct
- ldr r0, [r4]
- adds r0, 0x60
- movs r1, 0x1
- movs r2, 0x1
- bl sub_800641C
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0801C4C4: .4byte gUnknown_203B23C
- thumb_func_end sub_801C440
-
- thumb_func_start sub_801C4C8
-sub_801C4C8:
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x8
- ldr r6, _0801C594
- ldr r0, [r6]
- ldr r0, [r0, 0x58]
- bl sub_8008C54
- ldr r0, [r6]
- ldr r0, [r0, 0x58]
- bl sub_80073B8
- ldr r0, [r6]
- adds r1, r0, 0
- adds r1, 0x42
- movs r2, 0
- ldrsh r4, [r1, r2]
- lsls r4, 3
- adds r5, r4, 0
- adds r5, 0xA
- ldr r2, _0801C598
- ldr r3, [r0, 0x58]
- movs r0, 0
- str r0, [sp]
- adds r0, r5, 0
- movs r1, 0
- bl xxx_call_draw_string
- adds r4, 0x4
- ldr r1, [r6]
- adds r0, r1, 0
- adds r0, 0xC2
- ldrb r0, [r0]
- lsls r0, 3
- adds r5, r4, r0
- adds r0, r1, 0
- adds r0, 0x42
- movs r3, 0
- ldrsh r2, [r0, r3]
- adds r2, 0x1
- movs r0, 0x7
- str r0, [sp]
- ldr r0, [r1, 0x58]
- str r0, [sp, 0x4]
- adds r0, r5, 0
- movs r1, 0
- movs r3, 0x1
- bl sub_8012BC4
- movs r5, 0
- ldr r0, [r6]
- movs r1, 0x3E
- ldrsh r0, [r0, r1]
- cmp r5, r0
- bge _0801C5CC
- ldr r2, _0801C59C
- mov r8, r2
-_0801C53C:
- ldr r2, [r6]
- adds r0, r2, 0
- adds r0, 0x42
- movs r3, 0
- ldrsh r1, [r0, r3]
- subs r0, 0x2
- movs r3, 0
- ldrsh r0, [r0, r3]
- muls r1, r0
- adds r1, r5
- adds r0, r2, 0
- adds r0, 0x8
- adds r0, r1
- ldrb r4, [r0]
- adds r0, r2, 0
- adds r0, 0x24
- adds r1, r5, 0
- bl sub_8013800
- adds r7, r0, 0
- adds r0, r4, 0
- bl sub_808EAB0
- adds r1, r0, 0
- mov r0, r8
- movs r2, 0x50
- bl strncpy
- ldr r0, [r6]
- ldr r0, [r0, 0x4]
- adds r0, 0x20
- movs r1, 0x1
- lsls r1, r4
- bl sub_808ECD0
- lsls r0, 24
- cmp r0, 0
- beq _0801C5A4
- mov r0, r8
- subs r0, 0x50
- ldr r1, _0801C5A0
- bl strcpy
- b _0801C5AE
- .align 2, 0
-_0801C594: .4byte gUnknown_203B23C
-_0801C598: .4byte gUnknown_80DBE08
-_0801C59C: .4byte gUnknown_202DEA8
-_0801C5A0: .4byte gUnknown_80DBE14
-_0801C5A4:
- mov r0, r8
- subs r0, 0x50
- ldr r1, _0801C5E4
- bl strcpy
-_0801C5AE:
- ldr r0, [r6]
- ldr r3, [r0, 0x58]
- movs r0, 0
- str r0, [sp]
- movs r0, 0xC
- adds r1, r7, 0
- ldr r2, _0801C5E8
- bl sub_8014FF0
- adds r5, 0x1
- ldr r0, [r6]
- movs r1, 0x3E
- ldrsh r0, [r0, r1]
- cmp r5, r0
- blt _0801C53C
-_0801C5CC:
- ldr r0, _0801C5EC
- ldr r0, [r0]
- ldr r0, [r0, 0x58]
- bl sub_80073E0
- add sp, 0x8
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0801C5E4: .4byte gUnknown_80DBE18
-_0801C5E8: .4byte gUnknown_80DBE1C
-_0801C5EC: .4byte gUnknown_203B23C
- thumb_func_end sub_801C4C8
-
- thumb_func_start sub_801C5F0
-sub_801C5F0:
- push {lr}
- sub sp, 0x18
- lsls r0, 16
- asrs r0, 16
- ldr r2, _0801C614
- movs r1, 0x58
- muls r1, r0
- ldr r0, [r2]
- adds r0, r1
- movs r2, 0x14
- ldrsh r1, [r0, r2]
- mov r0, sp
- bl sub_808EBA8
- cmp r0, 0
- beq _0801C618
- movs r0, 0
- b _0801C61A
- .align 2, 0
-_0801C614: .4byte gUnknown_203B45C
-_0801C618:
- movs r0, 0x1
-_0801C61A:
- add sp, 0x18
- pop {r1}
- bx r1
- thumb_func_end sub_801C5F0
-
- thumb_func_start sub_801C620
-sub_801C620:
- push {r4-r6,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- movs r0, 0x1
- bl ResetSprites
- ldr r5, _0801C670
- movs r0, 0x94
- movs r1, 0x8
- bl MemoryAlloc
- str r0, [r5]
- movs r6, 0
- strb r4, [r0, 0x4]
- ldr r0, [r5]
- adds r0, 0x88
- bl sub_801317C
- ldr r0, [r5]
- str r6, [r0, 0x24]
- adds r0, 0x28
- bl sub_80140B4
- bl ResetUnusedInputStruct
- ldr r0, [r5]
- adds r0, 0x28
- movs r1, 0x1
- movs r2, 0x1
- bl sub_800641C
- movs r0, 0
- bl sub_801C6D0
- movs r0, 0x1
- pop {r4-r6}
- pop {r1}
- bx r1
- .align 2, 0
-_0801C670: .4byte gUnknown_203B240
- thumb_func_end sub_801C620
-
- thumb_func_start sub_801C674
-sub_801C674:
- push {lr}
- ldr r0, _0801C68C
- ldr r0, [r0]
- ldr r0, [r0]
- cmp r0, 0x1
- beq _0801C6A0
- cmp r0, 0x1
- bgt _0801C690
- cmp r0, 0
- beq _0801C69A
- b _0801C6AA
- .align 2, 0
-_0801C68C: .4byte gUnknown_203B240
-_0801C690:
- cmp r0, 0x2
- beq _0801C6AA
- cmp r0, 0x3
- beq _0801C6A6
- b _0801C6AA
-_0801C69A:
- bl sub_801C7D4
- b _0801C6AE
-_0801C6A0:
- bl sub_801C848
- b _0801C6AE
-_0801C6A6:
- movs r0, 0x3
- b _0801C6B0
-_0801C6AA:
- movs r0, 0x2
- b _0801C6B0
-_0801C6AE:
- movs r0, 0
-_0801C6B0:
- pop {r1}
- bx r1
- thumb_func_end sub_801C674
-
- thumb_func_start sub_801C6B4
-sub_801C6B4:
- push {r4,lr}
- ldr r4, _0801C6CC
- ldr r0, [r4]
- cmp r0, 0
- beq _0801C6C6
- bl MemoryFree
- movs r0, 0
- str r0, [r4]
-_0801C6C6:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0801C6CC: .4byte gUnknown_203B240
- thumb_func_end sub_801C6B4
-
- thumb_func_start sub_801C6D0
-sub_801C6D0:
- push {lr}
- ldr r1, _0801C6E0
- ldr r1, [r1]
- str r0, [r1]
- bl sub_801C6E4
- pop {r0}
- bx r0
- .align 2, 0
-_0801C6E0: .4byte gUnknown_203B240
- thumb_func_end sub_801C6D0
-
- thumb_func_start sub_801C6E4
-sub_801C6E4:
- push {r4,r5,lr}
- sub sp, 0x4
- ldr r5, _0801C760
- ldr r0, [r5]
- ldr r4, [r0]
- cmp r4, 0x1
- beq _0801C76C
- cmp r4, 0x1
- bgt _0801C7C4
- cmp r4, 0
- bne _0801C7C4
- ldr r0, [r0, 0x24]
- bl sub_8008C54
- ldr r0, [r5]
- ldr r0, [r0, 0x24]
- bl sub_80073B8
- ldr r0, [r5]
- ldrb r0, [r0, 0x4]
- bl sub_808EAB0
- adds r1, r0, 0
- ldr r0, _0801C764
- bl strcpy
- ldr r2, _0801C768
- str r4, [sp]
- movs r0, 0x10
- movs r1, 0
- movs r3, 0
- bl sub_8014FF0
- ldr r0, [r5]
- ldrb r0, [r0, 0x4]
- bl sub_808EADC
- adds r2, r0, 0
- ldr r0, [r5]
- ldr r3, [r0, 0x24]
- str r4, [sp]
- movs r0, 0x8
- movs r1, 0x10
- bl xxx_call_draw_string
- ldr r0, [r5]
- ldr r0, [r0, 0x24]
- bl sub_80073E0
- ldr r0, [r5]
- ldrb r0, [r0, 0x4]
- bl sub_808EADC
- ldr r1, [r5]
- adds r1, 0x10
- bl sub_8097DF0
- ldr r1, [r5]
- str r0, [r1, 0xC]
- str r4, [r1, 0x20]
- b _0801C7C4
- .align 2, 0
-_0801C760: .4byte gUnknown_203B240
-_0801C764: .4byte gUnknown_202DE58
-_0801C768: .4byte gUnknown_80DBE2C
-_0801C76C:
- ldr r0, [r0, 0x24]
- bl sub_8008C54
- ldr r0, [r5]
- ldr r0, [r0, 0x24]
- bl sub_80073B8
- ldr r0, [r5]
- ldr r1, [r0, 0x8]
- lsls r1, 2
- adds r0, 0x10
- adds r0, r1
- ldr r1, [r0]
- ldr r0, _0801C7CC
- ldr r1, [r1]
- bl strcpy
- ldr r2, _0801C7D0
- ldr r0, [r5]
- ldr r3, [r0, 0x24]
- movs r4, 0
- str r4, [sp]
- movs r0, 0x10
- movs r1, 0
- bl sub_8014FF0
- ldr r3, [r5]
- ldr r1, [r3, 0x8]
- lsls r1, 2
- adds r0, r3, 0
- adds r0, 0x10
- adds r0, r1
- ldr r0, [r0]
- ldr r2, [r0, 0x4]
- ldr r3, [r3, 0x24]
- str r4, [sp]
- movs r0, 0x4
- movs r1, 0x10
- bl sub_8014FF0
- ldr r0, [r5]
- ldr r0, [r0, 0x24]
- bl sub_80073E0
-_0801C7C4:
- add sp, 0x4
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0801C7CC: .4byte gAvailablePokemonNames
-_0801C7D0: .4byte gUnknown_80DBE30
- thumb_func_end sub_801C6E4
-
- thumb_func_start sub_801C7D4
-sub_801C7D4:
- push {r4,lr}
- ldr r0, _0801C810
- ldr r2, [r0]
- ldr r1, [r2, 0xC]
- adds r4, r0, 0
- cmp r1, 0
- beq _0801C7F8
- ldr r0, [r2, 0x20]
- movs r1, 0x8
- ands r0, r1
- cmp r0, 0
- beq _0801C7F0
- bl sub_8013F84
-_0801C7F0:
- ldr r1, [r4]
- ldr r0, [r1, 0x20]
- adds r0, 0x1
- str r0, [r1, 0x20]
-_0801C7F8:
- ldr r1, [r4]
- adds r0, r1, 0
- adds r0, 0x88
- ldr r1, [r1, 0x24]
- bl sub_8012A64
- cmp r0, 0x1
- beq _0801C814
- cmp r0, 0x2
- beq _0801C836
- b _0801C842
- .align 2, 0
-_0801C810: .4byte gUnknown_203B240
-_0801C814:
- movs r0, 0
- bl PlayMenuSoundEffect
- ldr r1, [r4]
- ldr r0, [r1, 0xC]
- cmp r0, 0
- beq _0801C82E
- movs r0, 0
- str r0, [r1, 0x8]
- movs r0, 0x1
- bl sub_801C6D0
- b _0801C842
-_0801C82E:
- movs r0, 0x3
- bl sub_801C6D0
- b _0801C842
-_0801C836:
- movs r0, 0x1
- bl PlayMenuSoundEffect
- movs r0, 0x2
- bl sub_801C6D0
-_0801C842:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_801C7D4
-
- thumb_func_start sub_801C848
-sub_801C848:
- push {r4,lr}
- ldr r0, _0801C888
- ldr r3, [r0]
- ldr r1, [r3, 0xC]
- subs r1, 0x1
- ldr r2, [r3, 0x8]
- adds r4, r0, 0
- cmp r2, r1
- bge _0801C870
- ldr r0, [r3, 0x20]
- movs r1, 0x8
- ands r0, r1
- cmp r0, 0
- beq _0801C868
- bl sub_8013F84
-_0801C868:
- ldr r1, [r4]
- ldr r0, [r1, 0x20]
- adds r0, 0x1
- str r0, [r1, 0x20]
-_0801C870:
- ldr r1, [r4]
- adds r0, r1, 0
- adds r0, 0x88
- ldr r1, [r1, 0x24]
- bl sub_8012A64
- cmp r0, 0x1
- beq _0801C88C
- cmp r0, 0x2
- beq _0801C8B0
- b _0801C8BC
- .align 2, 0
-_0801C888: .4byte gUnknown_203B240
-_0801C88C:
- movs r0, 0
- bl PlayMenuSoundEffect
- ldr r0, [r4]
- ldr r1, [r0, 0x8]
- adds r1, 0x1
- str r1, [r0, 0x8]
- ldr r0, [r0, 0xC]
- cmp r1, r0
- bge _0801C8A8
- movs r0, 0x1
- bl sub_801C6D0
- b _0801C8BC
-_0801C8A8:
- movs r0, 0
- bl sub_801C6D0
- b _0801C8BC
-_0801C8B0:
- movs r0, 0x1
- bl PlayMenuSoundEffect
- movs r0, 0x2
- bl sub_801C6D0
-_0801C8BC:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_801C848
-
- thumb_func_start sub_801C8C4
-sub_801C8C4:
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- adds r4, r0, 0
- adds r6, r1, 0
- mov r9, r2
- mov r10, r3
- bl sub_801CF14
- lsls r0, 24
- cmp r0, 0
- beq _0801C8E4
- movs r0, 0
- b _0801C9D0
-_0801C8E4:
- ldr r5, _0801C9E0
- ldr r0, [r5]
- cmp r0, 0
- bne _0801C8F6
- ldr r0, _0801C9E4
- movs r1, 0x8
- bl MemoryAlloc
- str r0, [r5]
-_0801C8F6:
- ldr r0, [r5]
- str r4, [r0]
- bl sub_801CF94
- ldr r0, [r5]
- movs r4, 0x9D
- lsls r4, 3
- adds r1, r0, r4
- str r6, [r1]
- ldr r1, _0801C9E8
- mov r8, r1
- adds r2, r0, r1
- lsls r1, r6, 1
- adds r1, r6
- lsls r1, 3
- movs r7, 0x9E
- lsls r7, 3
- adds r1, r7
- adds r1, r0, r1
- str r1, [r2]
- adds r0, r7
- 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, r7
- ldr r0, _0801C9EC
- ldm r0!, {r2-r4}
- stm r1!, {r2-r4}
- ldm r0!, {r2-r4}
- stm r1!, {r2-r4}
- ldr r2, [r5]
- mov r1, r8
- adds r0, r2, r1
- ldr r1, [r0]
- movs r3, 0xAA
- lsls r3, 3
- adds r0, r2, r3
- str r0, [r1, 0x14]
- mov r4, r9
- cmp r4, 0
- beq _0801C96C
- movs r1, 0x9D
- lsls r1, 3
- 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]
-_0801C96C:
- ldr r0, [r5]
- add r0, r8
- ldr r0, [r0]
- mov r1, r10
- bl sub_8012D08
- bl ResetUnusedInputStruct
- ldr r0, [r5]
- adds r0, r7
- movs r1, 0x1
- movs r2, 0x1
- bl sub_800641C
- ldr r4, [r5]
- ldr r0, _0801C9F0
- adds r4, r0
- bl sub_801CE58
- adds r1, r0, 0
- adds r0, r4, 0
- mov r2, r10
- adds r3, r6, 0
- bl sub_8013818
- ldr r0, _0801C9F4
- ldr r4, [r5]
- ldr r1, [r0]
- ldr r0, [r4]
- cmp r1, r0
- bne _0801C9C6
- ldr r0, _0801C9F8
- ldrh r1, [r0]
- ldr r2, _0801C9FC
- adds r0, r4, r2
- strh r1, [r0]
- ldr r0, _0801CA00
- ldrh r1, [r0]
- ldr r3, _0801CA04
- adds r0, r4, r3
- strh r1, [r0]
- ldr r1, _0801C9F0
- adds r0, r4, r1
- bl sub_8013984
-_0801C9C6:
- bl sub_801CC38
- bl sub_801CCD8
- movs r0, 0x1
-_0801C9D0:
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_0801C9E0: .4byte gUnknown_203B244
-_0801C9E4: .4byte 0x00000554
-_0801C9E8: .4byte 0x000004ec
-_0801C9EC: .4byte gUnknown_80DBE54
-_0801C9F0: .4byte 0x000004b4
-_0801C9F4: .4byte gUnknown_203B248
-_0801C9F8: .4byte gUnknown_203B24C
-_0801C9FC: .4byte 0x000004cc
-_0801CA00: .4byte gUnknown_203B24E
-_0801CA04: .4byte 0x000004d2
- thumb_func_end sub_801C8C4
-
- thumb_func_start sub_801CA08
-sub_801CA08:
- push {r4-r6,lr}
- lsls r0, 24
- cmp r0, 0
- bne _0801CA28
- ldr r0, _0801CA20
- ldr r0, [r0]
- ldr r1, _0801CA24
- adds r0, r1
- bl sub_8013660
- movs r0, 0
- b _0801CB1E
- .align 2, 0
-_0801CA20: .4byte gUnknown_203B244
-_0801CA24: .4byte 0x000004b4
-_0801CA28:
- ldr r0, _0801CA44
- ldr r0, [r0]
- ldr r1, _0801CA48
- adds r0, r1
- bl GetKeyPress
- subs r0, 0x1
- cmp r0, 0x5
- bhi _0801CAF2
- lsls r0, 2
- ldr r1, _0801CA4C
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0801CA44: .4byte gUnknown_203B244
-_0801CA48: .4byte 0x000004b4
-_0801CA4C: .4byte _0801CA50
- .align 2, 0
-_0801CA50:
- .4byte _0801CA72
- .4byte _0801CA68
- .4byte _0801CAF2
- .4byte _0801CAE8
- .4byte _0801CA7C
- .4byte _0801CA7C
-_0801CA68:
- movs r0, 0x1
- bl PlayMenuSoundEffect
- movs r0, 0x2
- b _0801CB1E
-_0801CA72:
- movs r0, 0
- bl PlayMenuSoundEffect
- movs r0, 0x3
- b _0801CB1E
-_0801CA7C:
- ldr r0, _0801CAD8
- ldr r0, [r0]
- ldr r0, [r0]
- cmp r0, 0x1
- bne _0801CAF2
- bl sub_801CB24
- lsls r0, 24
- lsrs r5, r0, 24
- adds r0, r5, 0
- bl sub_801CFE0
- movs r6, 0
- cmp r0, 0
- bne _0801CAB0
- bl sub_8090A34
- adds r4, r0, 0
- bl sub_801CFB8
- adds r4, r0
- cmp r4, 0x13
- bgt _0801CAAC
- movs r6, 0x1
-_0801CAAC:
- cmp r6, 0
- beq _0801CAE0
-_0801CAB0:
- movs r0, 0x6
- bl PlayMenuSoundEffect
- ldr r0, _0801CAD8
- ldr r0, [r0]
- lsls r1, r5, 2
- adds r2, r0, 0
- adds r2, 0xF4
- adds r2, r1
- ldr r1, [r2]
- movs r3, 0x1
- eors r1, r3
- str r1, [r2]
- ldr r1, _0801CADC
- adds r0, r1
- movs r1, 0
- bl sub_80138B8
- b _0801CB18
- .align 2, 0
-_0801CAD8: .4byte gUnknown_203B244
-_0801CADC: .4byte 0x000004b4
-_0801CAE0:
- movs r0, 0x2
- bl PlayMenuSoundEffect
- b _0801CAF2
-_0801CAE8:
- movs r0, 0x4
- bl PlayMenuSoundEffect
- movs r0, 0x4
- b _0801CB1E
-_0801CAF2:
- ldr r0, _0801CB0C
- ldr r0, [r0]
- ldr r1, _0801CB10
- adds r0, r1
- movs r1, 0x1
- bl sub_80138B8
- lsls r0, 24
- cmp r0, 0
- bne _0801CB14
- movs r0, 0
- b _0801CB1E
- .align 2, 0
-_0801CB0C: .4byte gUnknown_203B244
-_0801CB10: .4byte 0x000004b4
-_0801CB14:
- bl sub_801CC38
-_0801CB18:
- bl sub_801CCD8
- movs r0, 0x1
-_0801CB1E:
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end sub_801CA08
-
- thumb_func_start sub_801CB24
-sub_801CB24:
- ldr r0, _0801CB50
- ldr r0, [r0]
- ldr r2, _0801CB54
- adds r1, r0, r2
- movs r3, 0
- ldrsh r2, [r1, r3]
- movs r3, 0x9A
- lsls r3, 3
- adds r1, r0, r3
- movs r3, 0
- ldrsh r1, [r1, r3]
- muls r2, r1
- ldr r3, _0801CB58
- adds r1, r0, r3
- movs r3, 0
- ldrsh r1, [r1, r3]
- adds r2, r1
- adds r0, 0x4
- adds r0, r2
- ldrb r0, [r0]
- bx lr
- .align 2, 0
-_0801CB50: .4byte gUnknown_203B244
-_0801CB54: .4byte 0x000004d2
-_0801CB58: .4byte 0x000004cc
- thumb_func_end sub_801CB24
-
- thumb_func_start sub_801CB5C
-sub_801CB5C:
- push {r4,r5,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- bl ResetUnusedInputStruct
- ldr r5, _0801CBAC
- ldr r0, [r5]
- movs r1, 0x9E
- lsls r1, 3
- adds r0, r1
- movs r1, 0
- movs r2, 0
- bl sub_800641C
- bl sub_801CE58
- adds r2, r0, 0
- ldr r0, [r5]
- ldr r3, _0801CBB0
- adds r1, r0, r3
- strh r2, [r1]
- ldr r1, _0801CBB4
- adds r0, r1
- bl sub_8013984
- bl sub_801CC38
- bl sub_801CCD8
- cmp r4, 0
- beq _0801CBA6
- ldr r0, [r5]
- ldr r3, _0801CBB4
- adds r0, r3
- bl AddMenuCursorSprite
-_0801CBA6:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0801CBAC: .4byte gUnknown_203B244
-_0801CBB0: .4byte 0x000004d6
-_0801CBB4: .4byte 0x000004b4
- thumb_func_end sub_801CB5C
-
- thumb_func_start sub_801CBB8
-sub_801CBB8:
- push {r4-r6,lr}
- ldr r5, _0801CC1C
- ldr r2, [r5]
- cmp r2, 0
- beq _0801CC16
- ldr r1, _0801CC20
- ldr r0, [r2]
- str r0, [r1]
- ldr r1, _0801CC24
- ldr r3, _0801CC28
- adds r0, r2, r3
- ldrh r0, [r0]
- strh r0, [r1]
- ldr r1, _0801CC2C
- ldr r6, _0801CC30
- adds r0, r2, r6
- ldrh r0, [r0]
- strh r0, [r1]
- movs r1, 0x9D
- lsls r1, 3
- adds r0, r2, r1
- ldr r0, [r0]
- lsls r1, r0, 1
- adds r1, r0
- lsls r1, 3
- adds r1, r2, r1
- movs r4, 0x9E
- lsls r4, 3
- adds r1, r4
- ldr r0, _0801CC34
- 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]
-_0801CC16:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0801CC1C: .4byte gUnknown_203B244
-_0801CC20: .4byte gUnknown_203B248
-_0801CC24: .4byte gUnknown_203B24C
-_0801CC28: .4byte 0x000004cc
-_0801CC2C: .4byte gUnknown_203B24E
-_0801CC30: .4byte 0x000004d2
-_0801CC34: .4byte gUnknown_80DBE3C
- thumb_func_end sub_801CBB8
-
- thumb_func_start sub_801CC38
-sub_801CC38:
- push {r4,r5,lr}
- ldr r4, _0801CCC4
- ldr r0, [r4]
- movs r1, 0xAA
- lsls r1, 3
- adds r0, r1
- movs r2, 0
- movs r1, 0x1
- strb r1, [r0]
- ldr r0, [r4]
- ldr r1, _0801CCC8
- 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, _0801CCCC
- adds r0, r1
- strb r2, [r0]
- ldr r0, [r4]
- ldr r2, _0801CCD0
- adds r0, r2
- movs r1, 0
- ldrsh r0, [r0, r1]
- movs r1, 0xC
- bl sub_80095E4
- adds r0, 0x2
- lsls r0, 16
- ldr r3, [r4]
- movs r2, 0x9D
- lsls r2, 3
- adds r5, r3, r2
- ldr r2, [r5]
- lsls r1, r2, 1
- adds r1, r2
- lsls r1, 3
- adds r1, r3, r1
- ldr r2, _0801CCD4
- adds r1, r2
- asrs r2, r0, 16
- lsrs r0, 16
- strh r0, [r1]
- ldr r1, [r5]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 3
- adds r3, r0
- adds r2, 0x2
- movs r0, 0xA0
- lsls r0, 3
- adds r3, r0
- strh r2, [r3]
- bl ResetUnusedInputStruct
- ldr r0, [r4]
- movs r1, 0x9E
- lsls r1, 3
- adds r0, r1
- movs r1, 0x1
- movs r2, 0x1
- bl sub_800641C
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0801CCC4: .4byte gUnknown_203B244
-_0801CCC8: .4byte 0x00000551
-_0801CCCC: .4byte 0x00000553
-_0801CCD0: .4byte 0x000004ce
-_0801CCD4: .4byte 0x000004fe
- thumb_func_end sub_801CC38
-
- thumb_func_start sub_801CCD8
-sub_801CCD8:
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- sub sp, 0x58
- ldr r4, _0801CE38
- ldr r0, [r4]
- movs r5, 0x9D
- lsls r5, 3
- adds r0, r5
- ldr r0, [r0]
- bl sub_8008C54
- ldr r0, [r4]
- adds r0, r5
- ldr r0, [r0]
- bl sub_80073B8
- ldr r2, _0801CE3C
- ldr r0, [r4]
- adds r0, r5
- ldr r3, [r0]
- movs r0, 0
- str r0, [sp]
- movs r0, 0xA
- movs r1, 0
- bl xxx_call_draw_string
- ldr r3, [r4]
- ldr r1, _0801CE40
- adds r0, r3, r1
- ldrb r0, [r0]
- lsls r0, 3
- adds r0, 0x4
- ldr r2, _0801CE44
- adds r1, r3, r2
- movs r6, 0
- ldrsh r2, [r1, r6]
- adds r2, 0x1
- movs r1, 0x7
- str r1, [sp]
- adds r3, r5
- ldr r1, [r3]
- str r1, [sp, 0x4]
- movs r1, 0
- movs r3, 0x2
- bl sub_8012BC4
- movs r7, 0
- ldr r0, [r4]
- ldr r1, _0801CE48
- adds r0, r1
- movs r2, 0
- ldrsh r0, [r0, r2]
- cmp r7, r0
- bge _0801CE1A
- adds r6, r4, 0
- ldr r3, _0801CE4C
- mov r9, r3
- mov r8, r5
-_0801CD50:
- ldr r1, [r6]
- ldr r4, _0801CE44
- adds r0, r1, r4
- movs r3, 0
- ldrsh r2, [r0, r3]
- subs r4, 0x2
- adds r0, r1, r4
- movs r3, 0
- ldrsh r0, [r0, r3]
- muls r0, r2
- adds r0, r7
- adds r1, 0x4
- adds r1, r0
- ldrb r5, [r1]
- add r0, sp, 0x8
- adds r1, r5, 0
- movs r2, 0
- bl sub_8090DC4
- ldr r0, [r6]
- add r0, r9
- adds r1, r7, 0
- bl sub_8013800
- adds r1, r0, 0
- ldr r0, [r6]
- add r0, r8
- ldr r3, [r0]
- movs r0, 0
- str r0, [sp]
- movs r0, 0x8
- add r2, sp, 0x8
- bl xxx_call_draw_string
- ldr r0, [r6]
- add r0, r9
- adds r1, r7, 0
- bl sub_8013800
- adds r1, r0, 0
- ldr r4, [r6]
- ldr r2, _0801CE50
- adds r0, r4, r2
- ldr r0, [r0]
- movs r3, 0xC
- ldrsh r0, [r0, r3]
- lsls r0, 3
- subs r0, 0x2
- ldr r2, _0801CE54
- ldr r2, [r2]
- lsls r3, r5, 1
- adds r2, 0x50
- adds r2, r3
- ldrh r2, [r2]
- movs r3, 0x5
- str r3, [sp]
- add r4, r8
- ldr r3, [r4]
- str r3, [sp, 0x4]
- movs r3, 0x3
- bl sub_8012BC4
- adds r0, r5, 0
- bl sub_801CFE0
- movs r1, 0x1
- ands r1, r0
- cmp r1, 0
- beq _0801CE0A
- ldr r0, [r6]
- ldr r4, _0801CE4C
- adds r0, r4
- adds r1, r7, 0
- bl sub_8013800
- adds r2, r0, 0
- ldr r1, [r6]
- movs r3, 0x9D
- lsls r3, 3
- adds r0, r1, r3
- ldr r0, [r0]
- adds r4, 0x38
- adds r1, r4
- ldr r1, [r1]
- movs r4, 0xC
- ldrsh r3, [r1, r4]
- subs r3, 0x1
- lsls r3, 3
- movs r1, 0xA
- str r1, [sp]
- movs r1, 0x8
- bl sub_8007B7C
-_0801CE0A:
- adds r7, 0x1
- ldr r0, [r6]
- ldr r1, _0801CE48
- adds r0, r1
- movs r2, 0
- ldrsh r0, [r0, r2]
- cmp r7, r0
- blt _0801CD50
-_0801CE1A:
- ldr r0, _0801CE38
- ldr r0, [r0]
- movs r3, 0x9D
- lsls r3, 3
- adds r0, r3
- 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
-_0801CE38: .4byte gUnknown_203B244
-_0801CE3C: .4byte gUnknown_80DBE6C
-_0801CE40: .4byte 0x00000552
-_0801CE44: .4byte 0x000004d2
-_0801CE48: .4byte 0x000004ce
-_0801CE4C: .4byte 0x000004b4
-_0801CE50: .4byte 0x000004ec
-_0801CE54: .4byte gUnknown_203B460
- thumb_func_end sub_801CCD8
-
- thumb_func_start sub_801CE58
-sub_801CE58:
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- sub sp, 0x4
- movs r3, 0
- movs r6, 0x1
- ldr r4, _0801CF0C
-_0801CE68:
- ldr r0, [r4]
- ldr r0, [r0]
- cmp r0, 0x2
- beq _0801CE92
- ldr r0, _0801CF10
- ldr r0, [r0]
- lsls r1, r6, 1
- adds r0, 0x50
- adds r0, r1
- ldrh r0, [r0]
- cmp r0, 0
- beq _0801CE9C
- lsls r0, r6, 24
- lsrs r0, 24
- str r3, [sp]
- bl sub_8091524
- lsls r0, 24
- ldr r3, [sp]
- cmp r0, 0
- beq _0801CE9C
-_0801CE92:
- ldr r0, [r4]
- adds r0, 0x4
- adds r0, r3
- strb r6, [r0]
- adds r3, 0x1
-_0801CE9C:
- adds r6, 0x1
- cmp r6, 0xEF
- ble _0801CE68
- movs r6, 0
- subs r0, r3, 0x1
- mov r9, r0
- cmp r6, r9
- bge _0801CEFC
-_0801CEAC:
- adds r0, r6, 0x1
- mov r8, r0
- mov r5, r8
- cmp r8, r3
- bge _0801CEF6
- ldr r7, _0801CF0C
-_0801CEB8:
- ldr r0, [r7]
- adds r0, 0x4
- adds r0, r6
- ldrb r0, [r0]
- str r3, [sp]
- bl sub_8090D44
- adds r4, r0, 0
- ldr r0, [r7]
- adds r0, 0x4
- adds r0, r5
- ldrb r0, [r0]
- bl sub_8090D44
- ldr r3, [sp]
- cmp r4, r0
- ble _0801CEF0
- ldr r0, [r7]
- adds r0, 0x4
- adds r1, r0, r6
- ldrb r2, [r1]
- adds r0, r5
- ldrb r0, [r0]
- strb r0, [r1]
- ldr r0, [r7]
- adds r0, 0x4
- adds r0, r5
- strb r2, [r0]
-_0801CEF0:
- adds r5, 0x1
- cmp r5, r3
- blt _0801CEB8
-_0801CEF6:
- mov r6, r8
- cmp r6, r9
- blt _0801CEAC
-_0801CEFC:
- adds r0, r3, 0
- add sp, 0x4
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_0801CF0C: .4byte gUnknown_203B244
-_0801CF10: .4byte gUnknown_203B460
- thumb_func_end sub_801CE58
-
- thumb_func_start sub_801CF14
-sub_801CF14:
- push {r4,lr}
- cmp r0, 0x2
- bne _0801CF1E
-_0801CF1A:
- movs r0, 0
- b _0801CF46
-_0801CF1E:
- movs r4, 0x1
-_0801CF20:
- ldr r0, _0801CF4C
- ldr r0, [r0]
- lsls r1, r4, 1
- adds r0, 0x50
- adds r0, r1
- ldrh r0, [r0]
- cmp r0, 0
- beq _0801CF3E
- lsls r0, r4, 24
- lsrs r0, 24
- bl sub_8091524
- lsls r0, 24
- cmp r0, 0
- bne _0801CF1A
-_0801CF3E:
- adds r4, 0x1
- cmp r4, 0xEF
- ble _0801CF20
- movs r0, 0x1
-_0801CF46:
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_0801CF4C: .4byte gUnknown_203B460
- thumb_func_end sub_801CF14
-
- thumb_func_start sub_801CF50
-sub_801CF50:
- push {r4,r5,lr}
- cmp r0, 0x2
- bne _0801CF5A
-_0801CF56:
- movs r0, 0
- b _0801CF84
-_0801CF5A:
- movs r4, 0x1
- ldr r5, _0801CF8C
-_0801CF5E:
- lsls r0, r4, 24
- lsrs r0, 24
- bl sub_8091524
- lsls r0, 24
- cmp r0, 0
- beq _0801CF7C
- ldr r0, _0801CF90
- ldr r0, [r0]
- lsls r1, r4, 1
- adds r0, 0x50
- adds r0, r1
- ldrh r0, [r0]
- cmp r0, r5
- bls _0801CF56
-_0801CF7C:
- adds r4, 0x1
- cmp r4, 0xEF
- ble _0801CF5E
- movs r0, 0x1
-_0801CF84:
- pop {r4,r5}
- pop {r1}
- bx r1
- .align 2, 0
-_0801CF8C: .4byte 0x000003e6
-_0801CF90: .4byte gUnknown_203B460
- thumb_func_end sub_801CF50
-
- thumb_func_start sub_801CF94
-sub_801CF94:
- push {r4,lr}
- movs r2, 0
- ldr r4, _0801CFB4
- movs r3, 0
-_0801CF9C:
- ldr r0, [r4]
- lsls r1, r2, 2
- adds r0, 0xF4
- adds r0, r1
- str r3, [r0]
- adds r2, 0x1
- cmp r2, 0xEF
- ble _0801CF9C
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0801CFB4: .4byte gUnknown_203B244
- thumb_func_end sub_801CF94
-
- thumb_func_start sub_801CFB8
-sub_801CFB8:
- push {lr}
- movs r3, 0
- ldr r0, _0801CFDC
- ldr r0, [r0]
- adds r1, r0, 0
- adds r1, 0xF4
- movs r2, 0xEF
-_0801CFC6:
- ldr r0, [r1]
- cmp r0, 0
- beq _0801CFCE
- adds r3, 0x1
-_0801CFCE:
- adds r1, 0x4
- subs r2, 0x1
- cmp r2, 0
- bge _0801CFC6
- adds r0, r3, 0
- pop {r1}
- bx r1
- .align 2, 0
-_0801CFDC: .4byte gUnknown_203B244
- thumb_func_end sub_801CFB8
-
- thumb_func_start sub_801CFE0
-sub_801CFE0:
- lsls r0, 24
- ldr r1, _0801CFF0
- ldr r1, [r1]
- lsrs r0, 22
- adds r1, 0xF4
- adds r1, r0
- ldr r0, [r1]
- bx lr
- .align 2, 0
-_0801CFF0: .4byte gUnknown_203B244
- thumb_func_end sub_801CFE0
-
- thumb_func_start sub_801CFF4
-sub_801CFF4:
- lsls r0, 24
- ldr r2, _0801D004
- ldr r2, [r2]
- lsrs r0, 22
- adds r2, 0xF4
- adds r2, r0
- str r1, [r2]
- bx lr
- .align 2, 0
-_0801D004: .4byte gUnknown_203B244
- thumb_func_end sub_801CFF4
-
- thumb_func_start sub_801D008
-sub_801D008:
- ldr r0, _0801D010
- ldr r0, [r0]
- bx lr
- .align 2, 0
-_0801D010: .4byte gUnknown_203B244
- thumb_func_end sub_801D008
-
- thumb_func_start sub_801D014
-sub_801D014:
- push {r4,r5,lr}
- adds r5, r0, 0
- bl ResetUnusedInputStruct
- movs r0, 0
- movs r1, 0x1
- movs r2, 0x1
- bl sub_800641C
- ldr r4, _0801D054
- movs r0, 0x8C
- lsls r0, 1
- movs r1, 0x8
- bl MemoryAlloc
- adds r2, r0, 0
- str r2, [r4]
- ldr r0, _0801D058
- ldr r0, [r0]
- str r0, [r2, 0x14]
- str r5, [r2]
- cmp r5, 0
- beq _0801D088
- movs r3, 0
- ldr r0, _0801D05C
- ldr r1, [r0]
- adds r4, r0, 0
- cmp r5, r1
- bne _0801D060
- strh r3, [r2, 0x4]
- b _0801D08C
- .align 2, 0
-_0801D054: .4byte gUnknown_203B250
-_0801D058: .4byte gUnknown_203B254
-_0801D05C: .4byte gUnknown_203B45C
-_0801D060:
- adds r3, 0x1
- movs r0, 0xCE
- lsls r0, 1
- cmp r3, r0
- bgt _0801D08C
- ldr r0, _0801D084
- ldr r2, [r0]
- lsls r0, r3, 16
- asrs r0, 16
- movs r1, 0x58
- muls r1, r0
- ldr r0, [r4]
- adds r0, r1
- ldr r1, [r2]
- cmp r1, r0
- bne _0801D060
- strh r3, [r2, 0x4]
- b _0801D08C
- .align 2, 0
-_0801D084: .4byte gUnknown_203B250
-_0801D088:
- ldr r0, _0801D0C4
- strh r0, [r2, 0x4]
-_0801D08C:
- bl sub_80A5728
- lsls r0, 16
- asrs r0, 16
- bl sub_8002658
- ldr r4, _0801D0C8
- ldr r1, [r4]
- movs r5, 0
- strb r0, [r1, 0x6]
- ldr r0, [r4]
- strb r5, [r0, 0x8]
- ldr r0, [r4]
- strb r5, [r0, 0x9]
- bl sub_808D33C
- ldr r1, [r4]
- str r0, [r1, 0xC]
- strb r5, [r1, 0x7]
- ldr r0, [r4]
- ldr r0, [r0]
- cmp r0, 0
- beq _0801D0CC
- movs r0, 0x5
- bl sub_801D208
- b _0801D0D2
- .align 2, 0
-_0801D0C4: .4byte 0x0000019d
-_0801D0C8: .4byte gUnknown_203B250
-_0801D0CC:
- movs r0, 0
- bl sub_801D208
-_0801D0D2:
- movs r0, 0x1
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_801D014
-
- thumb_func_start sub_801D0DC
-sub_801D0DC:
- push {lr}
- ldr r0, _0801D0F4
- ldr r0, [r0]
- ldr r0, [r0, 0x10]
- cmp r0, 0xC
- bhi _0801D16C
- lsls r0, 2
- ldr r1, _0801D0F8
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0801D0F4: .4byte gUnknown_203B250
-_0801D0F8: .4byte _0801D0FC
- .align 2, 0
-_0801D0FC:
- .4byte _0801D130
- .4byte _0801D130
- .4byte _0801D16C
- .4byte _0801D136
- .4byte _0801D13C
- .4byte _0801D142
- .4byte _0801D148
- .4byte _0801D148
- .4byte _0801D14E
- .4byte _0801D154
- .4byte _0801D15A
- .4byte _0801D160
- .4byte _0801D166
-_0801D130:
- bl sub_801D680
- b _0801D170
-_0801D136:
- bl sub_801D760
- b _0801D170
-_0801D13C:
- bl sub_801D77C
- b _0801D170
-_0801D142:
- bl sub_801D798
- b _0801D170
-_0801D148:
- bl sub_801D7CC
- b _0801D170
-_0801D14E:
- bl sub_801D808
- b _0801D170
-_0801D154:
- bl sub_801D824
- b _0801D170
-_0801D15A:
- bl sub_801D840
- b _0801D170
-_0801D160:
- bl sub_801D85C
- b _0801D170
-_0801D166:
- bl sub_801D878
- b _0801D170
-_0801D16C:
- movs r0, 0x3
- b _0801D172
-_0801D170:
- movs r0, 0
-_0801D172:
- pop {r1}
- bx r1
- thumb_func_end sub_801D0DC
-
- thumb_func_start sub_801D178
-sub_801D178:
- push {r4,lr}
- ldr r0, _0801D188
- ldr r4, [r0]
- ldrb r0, [r4, 0x9]
- cmp r0, 0
- beq _0801D18C
- movs r0, 0x2
- b _0801D1CC
- .align 2, 0
-_0801D188: .4byte gUnknown_203B250
-_0801D18C:
- ldrb r0, [r4, 0x7]
- cmp r0, 0
- beq _0801D196
- movs r0, 0x3
- b _0801D1CC
-_0801D196:
- ldrb r0, [r4, 0x8]
- cmp r0, 0
- beq _0801D1A0
- movs r0, 0x1
- b _0801D1CC
-_0801D1A0:
- bl sub_808D33C
- ldr r1, [r4, 0xC]
- cmp r1, r0
- bne _0801D1C6
- movs r0, 0x7
- bl sub_80A7AE8
- lsls r0, 16
- cmp r0, 0
- blt _0801D1CA
- bl sub_808D3F8
- ldrh r0, [r0]
- lsrs r0, 1
- movs r1, 0x1
- ands r0, r1
- cmp r0, 0
- bne _0801D1CA
-_0801D1C6:
- movs r0, 0x4
- b _0801D1CC
-_0801D1CA:
- movs r0, 0
-_0801D1CC:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_801D178
-
- thumb_func_start sub_801D1D4
-sub_801D1D4:
- ldr r0, _0801D1DC
- ldr r0, [r0]
- ldrb r0, [r0, 0x7]
- bx lr
- .align 2, 0
-_0801D1DC: .4byte gUnknown_203B250
- thumb_func_end sub_801D1D4
-
- thumb_func_start sub_801D1E0
-sub_801D1E0:
- push {r4,lr}
- ldr r4, _0801D200
- ldr r2, [r4]
- cmp r2, 0
- beq _0801D1FA
- ldr r0, _0801D204
- ldr r1, [r2, 0x14]
- str r1, [r0]
- adds r0, r2, 0
- bl MemoryFree
- movs r0, 0
- str r0, [r4]
-_0801D1FA:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0801D200: .4byte gUnknown_203B250
-_0801D204: .4byte gUnknown_203B254
- thumb_func_end sub_801D1E0
-
- thumb_func_start sub_801D208
-sub_801D208:
- push {lr}
- ldr r1, _0801D21C
- ldr r1, [r1]
- str r0, [r1, 0x10]
- bl sub_801D220
- bl sub_801D3A8
- pop {r0}
- bx r0
- .align 2, 0
-_0801D21C: .4byte gUnknown_203B250
- thumb_func_end sub_801D208
-
- thumb_func_start sub_801D220
-sub_801D220:
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- ldr r4, _0801D248
- ldr r0, [r4]
- adds r0, 0xB8
- bl sub_8006518
- ldr r0, [r4]
- ldr r0, [r0, 0x10]
- cmp r0, 0
- beq _0801D250
- cmp r0, 0x1
- beq _0801D2C0
- movs r2, 0
- adds r7, r4, 0
- ldr r3, _0801D24C
- b _0801D368
- .align 2, 0
-_0801D248: .4byte gUnknown_203B250
-_0801D24C: .4byte gUnknown_80DBE7C
-_0801D250:
- bl sub_801D4C0
- ldr r0, [r4]
- ldr r0, [r0]
- cmp r0, 0
- beq _0801D290
- adds r7, r4, 0
- ldr r0, _0801D288
- mov r9, r0
- mov r12, r7
- ldr r2, _0801D28C
- mov r8, r2
- movs r3, 0
- movs r2, 0x3
-_0801D26C:
- mov r4, r12
- ldr r1, [r4]
- adds r1, r3
- adds r1, 0xB8
- mov r0, r8
- ldm r0!, {r4-r6}
- stm r1!, {r4-r6}
- ldm r0!, {r4-r6}
- stm r1!, {r4-r6}
- adds r3, 0x18
- subs r2, 0x1
- cmp r2, 0
- bge _0801D26C
- b _0801D2F6
- .align 2, 0
-_0801D288: .4byte gUnknown_80DBE98
-_0801D28C: .4byte gUnknown_80DBE7C
-_0801D290:
- adds r7, r4, 0
- mov r8, r7
- ldr r6, _0801D2BC
- mov r9, r6
- movs r3, 0
- movs r2, 0x3
-_0801D29C:
- mov r0, r8
- ldr r1, [r0]
- adds r1, r3
- adds r1, 0xB8
- mov r0, r9
- ldm r0!, {r4-r6}
- stm r1!, {r4-r6}
- ldm r0!, {r4-r6}
- stm r1!, {r4-r6}
- movs r0, 0x18
- add r9, r0
- adds r3, 0x18
- subs r2, 0x1
- cmp r2, 0
- bge _0801D29C
- b _0801D34E
- .align 2, 0
-_0801D2BC: .4byte gUnknown_80DBEB0
-_0801D2C0:
- bl sub_801D4C0
- ldr r0, [r4]
- ldr r0, [r0]
- cmp r0, 0
- beq _0801D324
- adds r7, r4, 0
- ldr r2, _0801D31C
- mov r9, r2
- mov r8, r7
- ldr r3, _0801D320
- mov r12, r3
- movs r3, 0
- movs r2, 0x3
-_0801D2DC:
- mov r4, r8
- ldr r1, [r4]
- adds r1, r3
- adds r1, 0xB8
- mov r0, r12
- ldm r0!, {r4-r6}
- stm r1!, {r4-r6}
- ldm r0!, {r4-r6}
- stm r1!, {r4-r6}
- adds r3, 0x18
- subs r2, 0x1
- cmp r2, 0
- bge _0801D2DC
-_0801D2F6:
- ldr r1, [r7]
- adds r1, 0xB8
- mov r0, r9
- ldm r0!, {r2,r5,r6}
- stm r1!, {r2,r5,r6}
- ldm r0!, {r3-r5}
- stm r1!, {r3-r5}
- ldr r1, [r7]
- adds r0, r1, 0
- adds r0, 0xB8
- adds r1, 0x68
- bl sub_8012CAC
- ldr r0, [r7]
- adds r0, 0xC4
- movs r1, 0x9
- strh r1, [r0]
- b _0801D384
- .align 2, 0
-_0801D31C: .4byte gUnknown_80DBE98
-_0801D320: .4byte gUnknown_80DBE7C
-_0801D324:
- adds r7, r4, 0
- mov r8, r7
- ldr r6, _0801D364
- mov r9, r6
- movs r3, 0
- movs r2, 0x3
-_0801D330:
- mov r0, r8
- ldr r1, [r0]
- adds r1, r3
- adds r1, 0xB8
- mov r0, r9
- ldm r0!, {r4-r6}
- stm r1!, {r4-r6}
- ldm r0!, {r4-r6}
- stm r1!, {r4-r6}
- movs r0, 0x18
- add r9, r0
- adds r3, 0x18
- subs r2, 0x1
- cmp r2, 0
- bge _0801D330
-_0801D34E:
- ldr r1, [r7]
- adds r0, r1, 0
- adds r0, 0xB8
- adds r1, 0x68
- bl sub_8012CAC
- ldr r0, [r7]
- adds r0, 0xC4
- movs r1, 0x8
- strh r1, [r0]
- b _0801D384
- .align 2, 0
-_0801D364: .4byte gUnknown_80DBEB0
-_0801D368:
- ldr r0, [r7]
- lsls r1, r2, 1
- adds r1, r2
- lsls r1, 3
- adds r0, r1
- adds r0, 0xB8
- adds r1, r3, 0
- ldm r1!, {r4-r6}
- stm r0!, {r4-r6}
- ldm r1!, {r4-r6}
- stm r0!, {r4-r6}
- adds r2, 0x1
- cmp r2, 0x3
- ble _0801D368
-_0801D384:
- bl ResetUnusedInputStruct
- ldr r0, _0801D3A4
- ldr r0, [r0]
- adds r0, 0xB8
- movs r1, 0x1
- movs r2, 0x1
- bl sub_800641C
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0801D3A4: .4byte gUnknown_203B250
- thumb_func_end sub_801D220
-
- thumb_func_start sub_801D3A8
-sub_801D3A8:
- push {r4-r6,lr}
- sub sp, 0x8
- ldr r1, _0801D3C4
- ldr r0, [r1]
- ldr r0, [r0, 0x10]
- adds r6, r1, 0
- cmp r0, 0xC
- bls _0801D3BA
- b _0801D4B6
-_0801D3BA:
- lsls r0, 2
- ldr r1, _0801D3C8
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0801D3C4: .4byte gUnknown_203B250
-_0801D3C8: .4byte _0801D3CC
- .align 2, 0
-_0801D3CC:
- .4byte _0801D400
- .4byte _0801D400
- .4byte _0801D4B6
- .4byte _0801D458
- .4byte _0801D462
- .4byte _0801D468
- .4byte _0801D472
- .4byte _0801D47A
- .4byte _0801D482
- .4byte _0801D490
- .4byte _0801D49C
- .4byte _0801D4AA
- .4byte _0801D4B2
-_0801D400:
- ldr r0, [r6]
- ldr r5, [r0]
- cmp r5, 0
- beq _0801D438
- ldr r4, _0801D434
- adds r0, r4, 0
- adds r1, r5, 0
- movs r2, 0x7
- bl sub_808D9AC
- ldr r2, [r6]
- str r4, [r2, 0x18]
- adds r0, r2, 0
- adds r0, 0x18
- adds r1, r2, 0
- adds r1, 0x68
- adds r3, r2, 0
- adds r3, 0xA8
- ldr r2, [r2, 0x14]
- str r2, [sp]
- movs r2, 0
- str r2, [sp, 0x4]
- bl sub_8012D60
- b _0801D4B6
- .align 2, 0
-_0801D434: .4byte gAvailablePokemonNames
-_0801D438:
- bl sub_801D894
- ldr r2, [r6]
- adds r0, r2, 0
- adds r0, 0x18
- adds r1, r2, 0
- adds r1, 0x68
- adds r3, r2, 0
- adds r3, 0xA8
- ldr r2, [r2, 0x14]
- str r2, [sp]
- str r5, [sp, 0x4]
- movs r2, 0
- bl sub_8012D60
- b _0801D4B6
-_0801D458:
- ldr r0, [r6]
- ldr r0, [r0]
- bl sub_80227B8
- b _0801D4B6
-_0801D462:
- bl sub_8027074
- b _0801D4B6
-_0801D468:
- ldr r0, [r6]
- ldr r0, [r0]
- bl sub_8025EF4
- b _0801D4B6
-_0801D472:
- movs r0, 0
- bl sub_80252F0
- b _0801D4B6
-_0801D47A:
- movs r0, 0x1
- bl sub_80252F0
- b _0801D4B6
-_0801D482:
- ldr r0, [r6]
- movs r1, 0x4
- ldrsh r0, [r0, r1]
- movs r1, 0x2
- bl sub_8024458
- b _0801D4B6
-_0801D490:
- ldr r0, [r6]
- movs r1, 0x4
- ldrsh r0, [r0, r1]
- bl sub_801BEEC
- b _0801D4B6
-_0801D49C:
- ldr r0, [r6]
- ldrb r0, [r0, 0x6]
- movs r1, 0x1
- movs r2, 0x2
- bl sub_8021774
- b _0801D4B6
-_0801D4AA:
- movs r0, 0
- bl sub_802C860
- b _0801D4B6
-_0801D4B2:
- bl sub_801DCC4
-_0801D4B6:
- add sp, 0x8
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_801D3A8
-
- thumb_func_start sub_801D4C0
-sub_801D4C0:
- push {r4-r7,lr}
- movs r6, 0
- ldr r4, _0801D554
- ldr r0, [r4]
- adds r0, 0xA8
- movs r1, 0
- movs r2, 0x10
- bl MemoryFill16
- ldr r0, [r4]
- ldrb r0, [r0, 0x6]
- cmp r0, 0
- bne _0801D568
- bl sub_8096E2C
- lsls r0, 24
- cmp r0, 0
- beq _0801D534
- ldr r1, [r4]
- movs r0, 0x2
- str r0, [r1, 0x6C]
- ldr r0, _0801D558
- str r0, [r1, 0x68]
- bl sub_8090A34
- cmp r0, 0
- bne _0801D4FE
- ldr r0, [r4]
- adds r0, 0xA8
- movs r1, 0x1
- strh r1, [r0]
-_0801D4FE:
- ldr r1, [r4]
- ldr r0, _0801D55C
- str r0, [r1, 0x70]
- movs r0, 0x4
- str r0, [r1, 0x74]
- movs r6, 0x2
- movs r0, 0x2
- bl sub_80023E4
- lsls r0, 24
- cmp r0, 0
- beq _0801D534
- ldr r1, [r4]
- ldr r0, _0801D560
- str r0, [r1, 0x78]
- movs r0, 0x9
- str r0, [r1, 0x7C]
- bl sub_802C83C
- lsls r0, 24
- cmp r0, 0
- beq _0801D532
- ldr r0, [r4]
- adds r0, 0xAC
- movs r1, 0x1
- strh r1, [r0]
-_0801D532:
- movs r6, 0x3
-_0801D534:
- ldr r4, _0801D554
- ldr r2, [r4]
- lsls r3, r6, 3
- adds r0, r2, 0
- adds r0, 0x68
- adds r0, r3
- ldr r1, _0801D564
- str r1, [r0]
- adds r2, 0x6C
- adds r2, r3
- movs r0, 0xB
- str r0, [r2]
- adds r6, 0x1
- adds r7, r4, 0
- b _0801D5E6
- .align 2, 0
-_0801D554: .4byte gUnknown_203B250
-_0801D558: .4byte gMenuItems
-_0801D55C: .4byte gMenuTeam
-_0801D560: .4byte gMenuJobList
-_0801D564: .4byte gMenuOthers
-_0801D568:
- ldr r0, _0801D63C
- ldr r1, _0801D640
- bl strcpy
- bl sub_8096E2C
- lsls r0, 24
- cmp r0, 0
- beq _0801D5B6
- ldr r1, [r4]
- ldr r0, _0801D644
- ldr r0, [r0]
- str r0, [r1, 0x68]
- movs r0, 0x5
- str r0, [r1, 0x6C]
- movs r0, 0x4
- bl sub_8024108
- lsls r0, 24
- cmp r0, 0
- beq _0801D59A
- ldr r0, [r4]
- adds r0, 0xA8
- movs r1, 0x1
- strh r1, [r0]
-_0801D59A:
- movs r6, 0x1
- ldr r1, [r4]
- movs r0, 0x2
- str r0, [r1, 0x74]
- ldr r0, _0801D648
- str r0, [r1, 0x70]
- bl sub_8090A34
- cmp r0, 0
- bne _0801D5B4
- ldr r0, [r4]
- adds r0, 0xAA
- strh r6, [r0]
-_0801D5B4:
- movs r6, 0x2
-_0801D5B6:
- ldr r5, _0801D64C
- ldr r1, [r5]
- lsls r2, r6, 3
- adds r3, r1, 0
- adds r3, 0x68
- adds r4, r3, r2
- ldr r0, _0801D650
- ldr r0, [r0]
- str r0, [r4]
- adds r1, 0x6C
- adds r2, r1, r2
- movs r0, 0x8
- str r0, [r2]
- adds r6, 0x1
- lsls r2, r6, 3
- adds r3, r2
- ldr r0, _0801D654
- ldr r0, [r0]
- str r0, [r3]
- adds r1, r2
- movs r0, 0xA
- str r0, [r1]
- adds r6, 0x1
- adds r7, r5, 0
-_0801D5E6:
- ldr r4, [r7]
- lsls r2, r6, 3
- adds r0, r4, 0
- adds r0, 0x68
- adds r0, r2
- movs r1, 0
- str r1, [r0]
- adds r1, r4, 0
- adds r1, 0x6C
- adds r2, r1, r2
- movs r0, 0x1
- str r0, [r2]
- movs r3, 0
- cmp r3, r6
- bge _0801D622
- adds r5, r4, 0
- adds r4, 0xA8
- adds r2, r1, 0
-_0801D60A:
- ldrh r0, [r4]
- cmp r0, 0
- bne _0801D618
- ldr r1, [r2]
- ldr r0, [r5, 0x14]
- cmp r1, r0
- beq _0801D67A
-_0801D618:
- adds r4, 0x2
- adds r2, 0x8
- adds r3, 0x1
- cmp r3, r6
- blt _0801D60A
-_0801D622:
- movs r3, 0
- cmp r3, r6
- bge _0801D67A
- ldr r1, [r7]
- adds r0, r1, 0
- adds r0, 0xA8
- ldrh r0, [r0]
- cmp r0, 0
- bne _0801D658
- ldr r0, [r1, 0x6C]
- str r0, [r1, 0x14]
- b _0801D67A
- .align 2, 0
-_0801D63C: .4byte gAvailablePokemonNames
-_0801D640: .4byte gUnknown_80DBF34
-_0801D644: .4byte gUnknown_80D49A8
-_0801D648: .4byte gMenuItems
-_0801D64C: .4byte gUnknown_203B250
-_0801D650: .4byte gUnknown_80D4970
-_0801D654: .4byte gUnknown_80D49B4
-_0801D658:
- adds r3, 0x1
- cmp r3, r6
- bge _0801D67A
- ldr r2, [r7]
- lsls r0, r3, 1
- adds r1, r2, 0
- adds r1, 0xA8
- adds r1, r0
- ldrh r0, [r1]
- cmp r0, 0
- bne _0801D658
- lsls r0, r3, 3
- adds r1, r2, 0
- adds r1, 0x6C
- adds r1, r0
- ldr r0, [r1]
- str r0, [r2, 0x14]
-_0801D67A:
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_801D4C0
.align 2, 0 @ Don't pad with nop.
diff --git a/asm/code_801D760.s b/asm/code_801D760.s
index e52bae8..a93ed64 100644
--- a/asm/code_801D760.s
+++ b/asm/code_801D760.s
@@ -2517,7 +2517,7 @@ _0801ED6C:
b _0801ED9A
_0801ED74:
ldr r0, _0801ED90
- bl sub_8011988
+ bl PlaySound
ldr r1, [r4]
ldr r0, [r1, 0x20]
ldr r1, [r1, 0x10]
@@ -2735,7 +2735,7 @@ _0801EED8:
bx r1
.align 2, 0
_0801EF28: .4byte gUnknown_203B270
-_0801EF2C: .4byte gUnknown_203B45C
+_0801EF2C: .4byte gRecruitedPokemonRef
_0801EF30: .4byte gUnknown_80DC25C
_0801EF34: .4byte gUnknown_80DC274
thumb_func_end sub_801EE10
@@ -2923,7 +2923,7 @@ _0801F074:
strb r7, [r1, 0x4]
movs r0, 0xA6
lsls r0, 1
- bl sub_8011988
+ bl PlaySound
b _0801F12E
.align 2, 0
_0801F0C8: .4byte gUnknown_203B270
@@ -3478,7 +3478,7 @@ sub_801F428:
bx r1
.align 2, 0
_0801F50C: .4byte gUnknown_203B274
-_0801F510: .4byte gUnknown_203B45C
+_0801F510: .4byte gRecruitedPokemonRef
_0801F514: .4byte gUnknown_80DC2C4
_0801F518: .4byte 0x000003e5
_0801F51C: .4byte 0x000003e6
@@ -4308,11 +4308,11 @@ sub_801FB50:
ldr r0, _0801FBC4
ldr r4, _0801FBC8
adds r1, r4, 0
- bl sub_808D8E0
+ bl CopyYellowSpeciesNametoBuffer
ldr r5, _0801FBCC
adds r0, r5, 0
adds r1, r4, 0
- bl sub_808D8E0
+ bl CopyYellowSpeciesNametoBuffer
adds r0, r4, 0
bl GetMonSpecies
adds r1, r0, 0
@@ -6212,7 +6212,7 @@ _08020AB0:
b _08020B32
.align 2, 0
_08020AE0: .4byte gUnknown_203B27C
-_08020AE4: .4byte gUnknown_203B45C
+_08020AE4: .4byte gRecruitedPokemonRef
_08020AE8: .4byte gUnknown_202E128
_08020AEC:
bl sub_8023B44
@@ -6238,7 +6238,7 @@ _08020AEC:
b _08020B32
.align 2, 0
_08020B1C: .4byte gUnknown_203B27C
-_08020B20: .4byte gUnknown_203B45C
+_08020B20: .4byte gRecruitedPokemonRef
_08020B24: .4byte gUnknown_202E128
_08020B28:
bl sub_8023C60
@@ -6751,7 +6751,7 @@ _08020F44:
cmp r0, 0
beq _08020F68
ldr r0, _08020F64
- bl sub_8011988
+ bl PlaySound
b _08021068
.align 2, 0
_08020F60: .4byte gUnknown_203B27C
@@ -6762,7 +6762,7 @@ _08020F68:
b _08021068
_08020F70:
ldr r0, _08020F84
- bl sub_8011988
+ bl PlaySound
ldr r0, _08020F88
ldr r1, [r0]
ldr r0, [r1, 0x18]
@@ -6782,7 +6782,7 @@ _08020F8C:
cmp r0, 0
beq _08020FB0
ldr r0, _08020FAC
- bl sub_8011988
+ bl PlaySound
b _08021068
.align 2, 0
_08020FA8: .4byte gUnknown_203B27C
@@ -6832,11 +6832,11 @@ _08021000:
strb r0, [r1, 0x15]
movs r0, 0xA6
lsls r0, 1
- bl sub_8011988
+ bl PlaySound
b _0802101C
_08021016:
ldr r0, _0802102C
- bl sub_8011988
+ bl PlaySound
_0802101C:
ldr r0, _08021030
ldr r1, [r0]
@@ -6865,7 +6865,7 @@ _08021034:
_08021054: .4byte gUnknown_203B27C
_08021058:
ldr r0, _08021070
- bl sub_8011988
+ bl PlaySound
ldr r1, [r4]
ldr r0, [r1, 0x18]
adds r1, 0x24
@@ -6894,7 +6894,7 @@ _08021074:
_08021094: .4byte gUnknown_203B27C
_08021098:
ldr r0, _080210B4
- bl sub_8011988
+ bl PlaySound
ldr r1, [r4]
ldr r0, [r1, 0x18]
adds r1, 0x24
@@ -8271,7 +8271,7 @@ _08021B3C:
.align 2, 0
_08021B4C: .4byte gUnknown_203B28C
_08021B50: .4byte 0x000001a7
-_08021B54: .4byte gUnknown_203B45C
+_08021B54: .4byte gRecruitedPokemonRef
thumb_func_end sub_8021A60
thumb_func_start sub_8021B58
@@ -8314,8 +8314,8 @@ _08021B94:
bx r1
thumb_func_end sub_8021B58
- thumb_func_start sub_8021B9C
-sub_8021B9C:
+ thumb_func_start CreateWigglytuffShop
+CreateWigglytuffShop:
push {r4-r6,lr}
adds r4, r0, 0
bl ResetUnusedInputStruct
@@ -8335,11 +8335,11 @@ sub_8021B9C:
str r4, [r0]
ldr r0, _08021BFC
movs r1, 0x28
- bl sub_808D8E0
+ bl CopyYellowSpeciesNametoBuffer
ldr r4, _08021C00
adds r0, r4, 0
movs r1, 0x28
- bl sub_808D8E0
+ bl CopyYellowSpeciesNametoBuffer
movs r0, 0x28
bl GetMonSpecies
adds r1, r0, 0
@@ -8401,7 +8401,7 @@ _08021C0E:
bx r1
.align 2, 0
_08021C58: .4byte gUnknown_203B290
- thumb_func_end sub_8021B9C
+ thumb_func_end CreateWigglytuffShop
thumb_func_start sub_8021C5C
sub_8021C5C:
@@ -8510,7 +8510,7 @@ sub_8021D44:
ldr r1, [r1]
str r0, [r1, 0x4]
bl sub_8021D5C
- bl sub_8021E0C
+ bl UpdateWigglytuffDialogue
pop {r0}
bx r0
.align 2, 0
@@ -8607,8 +8607,8 @@ _08021E04: .4byte gUnknown_203B290
_08021E08: .4byte gUnknown_80DC534
thumb_func_end sub_8021D5C
- thumb_func_start sub_8021E0C
-sub_8021E0C:
+ thumb_func_start UpdateWigglytuffDialogue
+UpdateWigglytuffDialogue:
push {r4,lr}
sub sp, 0x20
ldr r1, _08021E28
@@ -8922,7 +8922,7 @@ _080220B8:
movs r0, 0xE
str r0, [r1, 0x8]
ldr r0, _080220D4
- bl sub_8011988
+ bl PlaySound
ldr r0, [r4]
movs r1, 0x98
lsls r1, 1
@@ -8962,7 +8962,7 @@ _08022108:
_0802210E:
str r0, [r1, 0x8]
movs r0, 0xCE
- bl sub_8011988
+ bl PlaySound
ldr r3, _08022134
ldr r0, _08022130
ldr r2, [r0]
@@ -9183,7 +9183,7 @@ _080222B6:
.align 2, 0
_080222C0: .4byte gWigglytuffDialogue
_080222C4: .4byte 0x0000010d
- thumb_func_end sub_8021E0C
+ thumb_func_end UpdateWigglytuffDialogue
thumb_func_start sub_80222C8
sub_80222C8:
@@ -9495,7 +9495,7 @@ _080224F8:
bl UnlockFriendArea
movs r0, 0xA6
lsls r0, 1
- bl sub_8011988
+ bl PlaySound
movs r0, 0xC
bl sub_8021D44
b _08022532
@@ -10333,7 +10333,7 @@ _08022BCE:
ldr r0, _08022C18
bl strcpy
movs r0, 0xCB
- bl sub_8011988
+ bl PlaySound
ldr r0, _08022C1C
movs r1, 0
movs r2, 0
@@ -10534,7 +10534,7 @@ _08022D80:
adds r0, r2, 0
adds r0, 0x52
ldrb r0, [r0]
- bl sub_8090BD0
+ bl GetItemType
lsls r0, 24
lsrs r0, 24
cmp r0, 0x5
@@ -11542,7 +11542,7 @@ _08023532:
_08023594:
adds r0, r5, 0
movs r1, 0
- bl sub_808DCA0
+ bl GetDexInternalNo
lsls r0, 16
asrs r4, r0, 16
adds r0, r4, 0
@@ -11794,12 +11794,12 @@ _08023788:
ldrsh r0, [r6, r1]
movs r1, 0x1
str r2, [sp]
- bl sub_808DCDC
+ bl GetAlphabetParentNo
adds r4, r0, 0
movs r1, 0
ldrsh r0, [r5, r1]
movs r1, 0x1
- bl sub_808DCDC
+ bl GetAlphabetParentNo
lsls r4, 16
lsls r0, 16
ldr r2, [sp]
@@ -11868,12 +11868,12 @@ _08023810:
ldrsh r0, [r6, r1]
movs r1, 0
str r2, [sp]
- bl sub_808DCDC
+ bl GetAlphabetParentNo
adds r4, r0, 0
movs r1, 0
ldrsh r0, [r5, r1]
movs r1, 0
- bl sub_808DCDC
+ bl GetAlphabetParentNo
lsls r4, 16
lsls r0, 16
ldr r2, [sp]
@@ -12413,7 +12413,7 @@ _08023C4A:
bx r1
.align 2, 0
_08023C58: .4byte gUnknown_3001B60
-_08023C5C: .4byte gUnknown_203B45C
+_08023C5C: .4byte gRecruitedPokemonRef
thumb_func_end sub_8023BD8
thumb_func_start sub_8023C60
@@ -12725,7 +12725,7 @@ _08023EC0: .4byte 0x000003f6
_08023EC4: .4byte 0x00000376
_08023EC8: .4byte gUnknown_3001B60
_08023ECC: .4byte 0x00000372
-_08023ED0: .4byte gUnknown_203B45C
+_08023ED0: .4byte gRecruitedPokemonRef
_08023ED4:
ldrb r0, [r3, 0x18]
cmp r0, 0
@@ -12853,7 +12853,7 @@ _08023FA2:
b _08023FE2
.align 2, 0
_08023FD0: .4byte gUnknown_3001B60
-_08023FD4: .4byte gUnknown_203B45C
+_08023FD4: .4byte gRecruitedPokemonRef
_08023FD8:
adds r4, 0x1
movs r0, 0xCE
@@ -12905,7 +12905,7 @@ _08024002:
str r1, [r3, 0x8]
b _08024042
.align 2, 0
-_08024034: .4byte gUnknown_203B45C
+_08024034: .4byte gRecruitedPokemonRef
_08024038:
adds r4, 0x1
movs r0, 0xCE
@@ -13014,7 +13014,7 @@ _080240EE:
pop {r1}
bx r1
.align 2, 0
-_08024100: .4byte gUnknown_203B45C
+_08024100: .4byte gRecruitedPokemonRef
_08024104: .4byte gUnknown_3001B60
thumb_func_end sub_8023F8C
@@ -13044,7 +13044,7 @@ _08024110:
beq _08024172
b _0802416E
.align 2, 0
-_08024134: .4byte gUnknown_203B45C
+_08024134: .4byte gRecruitedPokemonRef
_08024138:
cmp r5, 0x3
bne _08024140
@@ -13225,7 +13225,7 @@ _0802425E:
movs r3, 0x8
ldrsh r0, [r1, r3]
str r2, [sp, 0x8]
- bl sub_808DCFC
+ bl GetInternalNo
adds r4, r0, 0
mov r0, r9
ldr r1, [r0]
@@ -13237,7 +13237,7 @@ _0802425E:
adds r1, r0
movs r3, 0x8
ldrsh r0, [r1, r3]
- bl sub_808DCFC
+ bl GetInternalNo
lsls r4, 16
lsls r0, 16
ldr r2, [sp, 0x8]
@@ -13269,7 +13269,7 @@ _080242B8:
bx r0
.align 2, 0
_080242C8: .4byte gUnknown_3001B60
-_080242CC: .4byte gUnknown_203B45C
+_080242CC: .4byte gRecruitedPokemonRef
thumb_func_end sub_8024228
thumb_func_start sub_80242D0
@@ -13316,7 +13316,7 @@ _08024306:
ldrsh r0, [r1, r3]
movs r1, 0
str r2, [sp, 0x8]
- bl sub_808DCDC
+ bl GetAlphabetParentNo
adds r4, r0, 0
mov r0, r9
ldr r1, [r0]
@@ -13329,7 +13329,7 @@ _08024306:
movs r3, 0x8
ldrsh r0, [r1, r3]
movs r1, 0
- bl sub_808DCDC
+ bl GetAlphabetParentNo
lsls r4, 16
lsls r0, 16
ldr r2, [sp, 0x8]
@@ -13361,7 +13361,7 @@ _08024364:
bx r0
.align 2, 0
_08024374: .4byte gUnknown_3001B60
-_08024378: .4byte gUnknown_203B45C
+_08024378: .4byte gRecruitedPokemonRef
thumb_func_end sub_80242D0
thumb_func_start sub_802437C
@@ -13474,7 +13474,7 @@ sub_80243E8:
pop {r1}
bx r1
.align 2, 0
-_08024448: .4byte gUnknown_203B45C
+_08024448: .4byte gRecruitedPokemonRef
_0802444C: .4byte gUnknown_3001B60
_08024450: .4byte 0x00000376
_08024454: .4byte gUnknown_80DC9A4
@@ -13739,7 +13739,7 @@ sub_8024604:
bx r0
.align 2, 0
_08024654: .4byte gUnknown_203B2AC
-_08024658: .4byte gUnknown_203B45C
+_08024658: .4byte gRecruitedPokemonRef
thumb_func_end sub_8024604
thumb_func_start sub_802465C
@@ -14309,7 +14309,7 @@ _08024B38:
_08024B3A:
str r0, [r1, 0x24]
movs r0, 0x3C
- bl sub_8011930
+ bl xxx_call_fade_out_bgm
ldr r0, _08024B48
b _08024CAE
.align 2, 0
@@ -14321,7 +14321,7 @@ _08024B4C:
movs r2, 0x5
bl sub_808D9AC
ldr r0, _08024B6C
- bl sub_8011988
+ bl PlaySound
ldr r1, [r5]
movs r0, 0x13
str r0, [r1, 0x24]
@@ -14377,7 +14377,7 @@ _08024BD6:
ldr r0, _08024C14
bl sub_801199C
movs r0, 0xD2
- bl sub_8011988
+ bl PlaySound
ldr r1, [r5]
ldrb r0, [r1, 0x10]
cmp r0, 0
@@ -15295,7 +15295,7 @@ _080252D0:
movs r0, 0
b _080252EA
.align 2, 0
-_080252E0: .4byte gUnknown_203B45C
+_080252E0: .4byte gRecruitedPokemonRef
_080252E4: .4byte 0x0000019d
_080252E8:
movs r0, 0x1
@@ -15765,7 +15765,7 @@ _080256A8:
movs r0, 0x1
str r0, [r1, 0x8]
movs r0, 0xCF
- bl sub_8011988
+ bl PlaySound
ldr r0, _080256C4
_080256B6:
ldr r3, _080256C8
@@ -15907,7 +15907,7 @@ _080257A0:
adds r6, 0x1
b _08025810
.align 2, 0
-_080257CC: .4byte gUnknown_203B45C
+_080257CC: .4byte gRecruitedPokemonRef
_080257D0: .4byte gUnknown_203B2B4
_080257D4: .4byte gUnknown_80DD2B0
_080257D8: .4byte gUnknown_80DD2B8
@@ -16219,7 +16219,7 @@ _08025A0C:
b _08025A7E
.align 2, 0
_08025A38: .4byte gUnknown_203B2B4
-_08025A3C: .4byte gUnknown_203B45C
+_08025A3C: .4byte gRecruitedPokemonRef
_08025A40:
bl sub_8023B44
ldr r1, _08025A6C
@@ -16242,7 +16242,7 @@ _08025A40:
b _08025A7E
.align 2, 0
_08025A6C: .4byte gUnknown_203B2B4
-_08025A70: .4byte gUnknown_203B45C
+_08025A70: .4byte gRecruitedPokemonRef
_08025A74:
bl sub_8023C60
movs r0, 0x13
@@ -16324,7 +16324,7 @@ _08025B20:
b _08025BC2
_08025B28:
ldr r0, _08025B68
- bl sub_8011988
+ bl PlaySound
ldr r4, _08025B6C
ldr r1, [r4]
ldrb r0, [r1, 0x18]
@@ -16547,7 +16547,7 @@ _08025CF8:
bne _08025D88
movs r6, 0x8
ldr r0, _08025D68
- bl sub_8011988
+ bl PlaySound
ldr r5, _08025D6C
ldr r0, [r5]
ldr r0, [r0, 0x10]
@@ -16819,7 +16819,7 @@ sub_8025EF4:
b _08025F48
.align 2, 0
_08025F1C: .4byte gUnknown_203B2B8
-_08025F20: .4byte gUnknown_203B45C
+_08025F20: .4byte gRecruitedPokemonRef
_08025F24:
adds r5, 0x1
movs r0, 0xCE
@@ -16853,7 +16853,7 @@ _08025F48:
bx r1
.align 2, 0
_08025F60: .4byte gUnknown_203B2B8
-_08025F64: .4byte gUnknown_203B45C
+_08025F64: .4byte gRecruitedPokemonRef
thumb_func_end sub_8025EF4
thumb_func_start sub_8025F68
@@ -17393,7 +17393,7 @@ _080263F8:
movs r0, 0x19
str r0, [r1, 0x4]
movs r0, 0xCF
- bl sub_8011988
+ bl PlaySound
ldr r0, _08026408
b _08026492
.align 2, 0
@@ -17403,7 +17403,7 @@ _0802640C:
movs r0, 0x19
str r0, [r1, 0x4]
movs r0, 0xCF
- bl sub_8011988
+ bl PlaySound
ldr r0, _0802641C
b _08026492
.align 2, 0
@@ -17413,7 +17413,7 @@ _08026420:
movs r0, 0x19
str r0, [r1, 0x4]
movs r0, 0xCC
- bl sub_8011988
+ bl PlaySound
ldr r0, _08026430
b _08026492
.align 2, 0
@@ -17423,7 +17423,7 @@ _08026434:
movs r0, 0x9
str r0, [r1, 0x4]
movs r0, 0xCA
- bl sub_8011988
+ bl PlaySound
ldr r0, _08026444
b _08026492
.align 2, 0
@@ -17577,7 +17577,7 @@ _08026542:
movs r6, 0x2
b _080265B4
.align 2, 0
-_08026574: .4byte gUnknown_203B45C
+_08026574: .4byte gRecruitedPokemonRef
_08026578: .4byte gUnknown_203B2B8
_0802657C: .4byte gUnknown_80DD664
_08026580: .4byte gUnknown_80DD670
@@ -18089,7 +18089,7 @@ _08026976:
b _08026A6E
.align 2, 0
_08026984: .4byte gUnknown_203B2B8
-_08026988: .4byte gUnknown_203B45C
+_08026988: .4byte gRecruitedPokemonRef
_0802698C:
ldr r0, _080269AC
ldr r0, [r0]
@@ -18130,7 +18130,7 @@ _080269DA:
bl sub_8026074
b _08026A6E
.align 2, 0
-_080269E8: .4byte gUnknown_203B45C
+_080269E8: .4byte gRecruitedPokemonRef
_080269EC: .4byte gUnknown_203B2B8
_080269F0:
movs r0, 0xC
@@ -18150,7 +18150,7 @@ _08026A08:
b _08026A6E
_08026A10:
ldr r0, _08026A50
- bl sub_8011988
+ bl PlaySound
ldr r4, _08026A54
ldr r1, [r4]
ldrb r0, [r1, 0x14]
@@ -18450,7 +18450,7 @@ _08026C58:
bne _08026CE8
movs r6, 0xF
ldr r0, _08026CC8
- bl sub_8011988
+ bl PlaySound
ldr r5, _08026CCC
ldr r0, [r5]
ldr r0, [r0, 0xC]
@@ -18885,7 +18885,7 @@ sub_8026FA4:
_08026FC0: .4byte gUnknown_203B2B8
_08026FC4:
ldr r0, _08026FF4
- bl sub_8011988
+ bl PlaySound
ldr r0, [r4]
adds r0, 0x14
bl sub_8091274
@@ -18907,7 +18907,7 @@ _08026FC4:
_08026FF4: .4byte 0x0000014d
_08026FF8:
ldr r0, _08027024
- bl sub_8011988
+ bl PlaySound
ldr r0, [r4]
ldrb r0, [r0, 0x14]
bl sub_8090A60
@@ -19505,7 +19505,7 @@ _080274B6:
str r2, [r0]
b _08027550
.align 2, 0
-_080274E4: .4byte gUnknown_203B45C
+_080274E4: .4byte gRecruitedPokemonRef
_080274E8: .4byte gUnknown_203B2BC
_080274EC: .4byte gFriendActionStandby
_080274F0: .4byte gFriendActionMakeLeader
@@ -19949,7 +19949,7 @@ _0802782C:
b _080278AE
.align 2, 0
_08027860: .4byte gUnknown_203B2BC
-_08027864: .4byte gUnknown_203B45C
+_08027864: .4byte gRecruitedPokemonRef
_08027868:
bl sub_8023B44
ldr r4, _0802789C
@@ -19975,7 +19975,7 @@ _08027868:
b _080278AE
.align 2, 0
_0802789C: .4byte gUnknown_203B2BC
-_080278A0: .4byte gUnknown_203B45C
+_080278A0: .4byte gRecruitedPokemonRef
_080278A4:
bl sub_8023C60
movs r0, 0x11
@@ -20065,7 +20065,7 @@ _0802795E:
b _08027A0E
.align 2, 0
_08027964: .4byte gUnknown_203B2BC
-_08027968: .4byte gUnknown_203B45C
+_08027968: .4byte gRecruitedPokemonRef
_0802796C:
ldr r0, _08027984
ldr r0, [r0]
@@ -20102,7 +20102,7 @@ _080279B2:
bl sub_808ED00
b _08027A0E
.align 2, 0
-_080279B8: .4byte gUnknown_203B45C
+_080279B8: .4byte gRecruitedPokemonRef
_080279BC: .4byte gUnknown_203B2BC
_080279C0:
movs r0, 0x8
@@ -20118,7 +20118,7 @@ _080279D0:
b _08027A36
_080279D8:
ldr r0, _08027A18
- bl sub_8011988
+ bl PlaySound
ldr r4, _08027A1C
ldr r1, [r4]
ldrb r0, [r1, 0x14]
@@ -20412,7 +20412,7 @@ _08027C1C:
cmp r0, 0xA
bne _08027C7C
ldr r0, _08027C60
- bl sub_8011988
+ bl PlaySound
ldr r4, _08027C64
ldr r0, [r4]
ldr r0, [r0, 0xC]
diff --git a/asm/code_8027C84.s b/asm/code_8027C84.s
index 992a53c..c007807 100644
--- a/asm/code_8027C84.s
+++ b/asm/code_8027C84.s
@@ -306,7 +306,7 @@ sub_8027EB8:
_08027ED4: .4byte gUnknown_203B2BC
_08027ED8:
ldr r0, _08027F08
- bl sub_8011988
+ bl PlaySound
ldr r0, [r4]
adds r0, 0x14
bl sub_8091274
@@ -328,7 +328,7 @@ _08027ED8:
_08027F08: .4byte 0x0000014d
_08027F0C:
ldr r0, _08027F38
- bl sub_8011988
+ bl PlaySound
ldr r0, [r4]
ldrb r0, [r0, 0x14]
bl sub_8090A60
diff --git a/asm/code_802B640.s b/asm/code_802B640.s
index 9834118..683a582 100644
--- a/asm/code_802B640.s
+++ b/asm/code_802B640.s
@@ -2913,7 +2913,7 @@ _0802CCBC:
.4byte _0802CD20
_0802CCD8:
ldr r0, _0802CCEC
- bl sub_8011988
+ bl PlaySound
ldr r0, _0802CCF0
ldr r0, [r0]
ldrb r0, [r0, 0xC]
@@ -2925,7 +2925,7 @@ _0802CCEC: .4byte 0x00000133
_0802CCF0: .4byte gUnknown_203B2F0
_0802CCF4:
ldr r0, _0802CD10
- bl sub_8011988
+ bl PlaySound
ldr r0, _0802CD14
ldr r0, [r0]
ldrb r0, [r0, 0xC]
diff --git a/asm/code_803B050.s b/asm/code_803B050.s
index 924116d..08f7710 100644
--- a/asm/code_803B050.s
+++ b/asm/code_803B050.s
@@ -1279,17 +1279,17 @@ _0803BA34:
ldr r2, _0803BA38
b _0803BAFA
.align 2, 0
-_0803BA38: .4byte gUnknown_80E88A0
+_0803BA38: .4byte gMankeyMissionDescription
_0803BA3C:
ldr r2, _0803BA40
b _0803BAFA
.align 2, 0
-_0803BA40: .4byte gUnknown_80E88C8
+_0803BA40: .4byte gSmeargleMissionDescription
_0803BA44:
ldr r2, _0803BA48
b _0803BAFA
.align 2, 0
-_0803BA48: .4byte gUnknown_80E8920
+_0803BA48: .4byte gMedichamMissionDescription
_0803BA4C:
ldr r4, _0803BA64
ldrb r1, [r7, 0x14]
diff --git a/asm/code_803C1D0.s b/asm/code_803C1D0.s
index c40c6f7..81cd652 100644
--- a/asm/code_803C1D0.s
+++ b/asm/code_803C1D0.s
@@ -220,7 +220,7 @@ _0803C35A:
movs r0, 0xC
ldrsh r1, [r6, r0]
adds r0, r4, 0
- bl sub_808D8E0
+ bl CopyYellowSpeciesNametoBuffer
ldrh r0, [r6, 0xC]
strh r0, [r4, 0x14]
ldrb r1, [r6, 0x1]
diff --git a/asm/code_803D110.s b/asm/code_803D110.s
index daeaf51..cc94445 100644
--- a/asm/code_803D110.s
+++ b/asm/code_803D110.s
@@ -894,7 +894,7 @@ _0803D7AE:
adds r0, r5, 0
str r1, [sp]
str r2, [sp, 0x4]
- bl sub_8090BD0
+ bl GetItemType
lsls r0, 24
lsrs r0, 24
ldr r1, [sp]
diff --git a/asm/code_8040094.s b/asm/code_8040094.s
index b81ce2f..36986ea 100644
--- a/asm/code_8040094.s
+++ b/asm/code_8040094.s
@@ -1782,7 +1782,7 @@ _08040EF0:
beq _08040F2A
lsls r0, r1, 16
lsrs r0, 16
- bl sub_8083E38
+ bl PlaySoundEffect
_08040F2A:
ldr r1, [sp, 0x18]
cmp r1, 0x63
diff --git a/asm/code_8041AD0.s b/asm/code_8041AD0.s
index b5e37a1..be5dbe3 100644
--- a/asm/code_8041AD0.s
+++ b/asm/code_8041AD0.s
@@ -554,7 +554,7 @@ _08042694:
subs r4, 0x1
_080426AC:
adds r0, r4, 0
- bl sub_8083E38
+ bl PlaySoundEffect
pop {r4}
pop {r0}
bx r0
@@ -581,7 +581,7 @@ _080426D8:
lsls r1, r4, 1
adds r1, r0
ldrh r0, [r1]
- bl sub_8083E38
+ bl PlaySoundEffect
b _080426FC
.align 2, 0
_080426EC: .4byte gUnknown_80F67DC
@@ -590,7 +590,7 @@ _080426F0:
lsls r1, r4, 1
adds r1, r0
ldrh r0, [r1]
- bl sub_8083E38
+ bl PlaySoundEffect
_080426FC:
adds r0, r5, 0
adds r1, r4, 0
diff --git a/asm/code_80428A0.s b/asm/code_80428A0.s
index 460780b..4af9445 100644
--- a/asm/code_80428A0.s
+++ b/asm/code_80428A0.s
@@ -2713,7 +2713,7 @@ _080440D0:
bl sub_8092AD4
b _080440F8
.align 2, 0
-_080440E4: .4byte gUnknown_203B45C
+_080440E4: .4byte gRecruitedPokemonRef
_080440E8: .4byte 0x03e60000
_080440EC: .4byte 0x000003e7
_080440F0:
@@ -2825,7 +2825,7 @@ _080441A4:
_080441AC: .4byte gUnknown_203B418
_080441B0: .4byte 0x00000644
_080441B4: .4byte gUnknown_203B460
-_080441B8: .4byte gUnknown_203B45C
+_080441B8: .4byte gRecruitedPokemonRef
thumb_func_end sub_8044124
thumb_func_start sub_80441BC
@@ -4108,7 +4108,7 @@ _08044BF0: .4byte gUnknown_80F697C
_08044BF4:
ldr r4, _08044C0C
adds r0, r5, 0
- bl sub_8090D6C
+ bl GetItemCategory
lsls r0, 3
adds r4, 0x4
adds r0, r4
@@ -4382,7 +4382,7 @@ sub_8044DC8:
cmp r0, 0xE9
beq _08044DE8
ldr r4, _08044DE4
- bl sub_8090BD0
+ bl GetItemType
lsls r0, 24
lsrs r0, 23
adds r0, r4
@@ -4445,7 +4445,7 @@ sub_8044E24:
cmp r0, 0
bne _08044EBA
ldrb r0, [r5, 0x2]
- bl sub_8090BD0
+ bl GetItemType
lsls r0, 24
lsrs r0, 24
cmp r0, 0x5
@@ -4552,7 +4552,7 @@ _08044F18:
lsls r0, r5, 2
adds r0, r1
ldrb r0, [r0, 0x2]
- bl sub_8090D6C
+ bl GetItemCategory
lsls r0, 3
adds r4, 0x4
adds r0, r4
@@ -6402,7 +6402,7 @@ _08045C76:
strb r0, [r5]
_08045C7E:
adds r0, r4, 0
- bl sub_8090BD0
+ bl GetItemType
lsls r0, 24
lsrs r0, 24
cmp r0, 0x6
@@ -6631,14 +6631,14 @@ _08045E38: .4byte gAvailablePokemonNames
_08045E3C: .4byte gUnknown_80F8F88
_08045E40:
ldrb r0, [r5, 0x2]
- bl sub_8090BD0
+ bl GetItemType
lsls r0, 24
lsrs r0, 24
cmp r0, 0x6
bne _08045E7C
movs r0, 0xA6
lsls r0, 1
- bl sub_8083E38
+ bl PlaySoundEffect
adds r0, r5, 0
bl sub_80915D4
bl sub_80913A0
@@ -6825,7 +6825,7 @@ _08045FAC:
bl sub_80461C8
movs r0, 0xA5
lsls r0, 1
- bl sub_8083E38
+ bl PlaySoundEffect
mov r3, sp
adds r0, r3, r4
ldr r0, [r0]
@@ -6902,7 +6902,7 @@ _0804605C: .4byte gUnknown_80F8F54
_08046060:
movs r0, 0xA5
lsls r0, 1
- bl sub_8083E38
+ bl PlaySoundEffect
lsls r0, r4, 2
add r0, sp
ldr r0, [r0]
@@ -7189,7 +7189,7 @@ sub_8046298:
ldrb r0, [r0, 0xD]
bx lr
.align 2, 0
-_080462A8: .4byte gItemParametersFile + 4
+_080462A8: .4byte gItemParametersData
thumb_func_end sub_8046298
thumb_func_start sub_80462AC
@@ -7361,7 +7361,7 @@ _080463BC:
_080463EE:
ldr r0, [r4, 0x70]
ldrb r0, [r0, 0x2]
- bl sub_8090D58
+ bl GetItemPalette
movs r1, 0xF
ands r0, r1
lsls r0, 12
@@ -7454,7 +7454,7 @@ sub_80464AC:
push {r4,lr}
ldr r4, _080464C4
ldrb r0, [r0, 0x2]
- bl sub_8090D6C
+ bl GetItemCategory
lsls r0, 3
adds r0, r4
ldr r0, [r0]
@@ -8728,7 +8728,7 @@ _08046E1E:
movs r1, 0x41
bl sub_803E708
movs r0, 0xD4
- bl sub_8083E38
+ bl PlaySoundEffect
ldr r0, _08046EFC
ldr r1, [r0]
movs r0, 0
@@ -8765,7 +8765,7 @@ sub_8046F00:
push {r4-r7,lr}
adds r4, r0, 0
ldrb r0, [r4, 0x2]
- bl sub_8090BD0
+ bl GetItemType
lsls r0, 24
lsrs r0, 24
cmp r0, 0x5
@@ -10171,18 +10171,18 @@ sub_80479B8:
cmp r0, 0
beq _08047A20
ldrb r0, [r7, 0x2]
- bl sub_8090BD0
+ bl GetItemType
lsls r0, 24
cmp r0, 0
beq _08047A3C
ldrb r0, [r7, 0x2]
- bl sub_8090BD0
+ bl GetItemType
lsls r0, 24
lsrs r0, 24
cmp r0, 0x2
beq _08047A3C
ldrb r0, [r7, 0x2]
- bl sub_8090BD0
+ bl GetItemType
lsls r0, 24
lsrs r0, 24
movs r1, 0x1
@@ -10194,7 +10194,7 @@ sub_80479B8:
b _08047A3C
_08047A20:
ldrb r0, [r7, 0x2]
- bl sub_8090BD0
+ bl GetItemType
lsls r0, 24
lsrs r0, 24
cmp r0, 0x2
@@ -10235,7 +10235,7 @@ _08047A4C:
bl _080482BA
_08047A76:
ldr r0, _08047AAC
- bl sub_8083E38
+ bl PlaySoundEffect
ldr r0, _08047AB0
adds r1, r7, 0
bl sub_8045BF8
@@ -10317,7 +10317,7 @@ _08047B30:
bl sub_804245C
_08047B38:
ldrb r0, [r7, 0x2]
- bl sub_8090BD0
+ bl GetItemType
lsls r0, 24
lsrs r0, 24
cmp r0, 0x2
@@ -10331,13 +10331,13 @@ _08047B38:
bl sub_8078B5C
_08047B56:
ldrb r0, [r7, 0x2]
- bl sub_8090BD0
+ bl GetItemType
lsls r0, 24
lsrs r0, 24
cmp r0, 0x5
beq _08047B72
ldrb r0, [r7, 0x2]
- bl sub_8090BD0
+ bl GetItemType
lsls r0, 24
lsrs r0, 24
cmp r0, 0xA
diff --git a/asm/code_8048480.s b/asm/code_8048480.s
index cad3483..300d379 100644
--- a/asm/code_8048480.s
+++ b/asm/code_8048480.s
@@ -795,7 +795,7 @@ _08048B20:
.align 2, 0
_08048B24: .4byte gUnknown_203B418
_08048B28: .4byte 0x0001357c
-_08048B2C: .4byte gUnknown_203B45C
+_08048B2C: .4byte gRecruitedPokemonRef
_08048B30: .4byte 0x00008df8
_08048B34:
movs r0, 0
@@ -20336,7 +20336,7 @@ _08052196:
b _080521CA
.align 2, 0
_080521B4: .4byte gUnknown_203B460
-_080521B8: .4byte gUnknown_203B45C
+_080521B8: .4byte gRecruitedPokemonRef
_080521BC: .4byte 0x00008df8
_080521C0: .4byte 0x00008e38
_080521C4: .4byte 0x00008e3a
diff --git a/asm/code_80521D0.s b/asm/code_80521D0.s
index ff9b5a1..a77765b 100644
--- a/asm/code_80521D0.s
+++ b/asm/code_80521D0.s
@@ -721,7 +721,7 @@ sub_8052910:
ldrsh r7, [r4, r2]
b _08052966
.align 2, 0
-_08052950: .4byte gUnknown_203B45C
+_08052950: .4byte gRecruitedPokemonRef
_08052954: .4byte 0x00008df8
_08052958: .4byte gAvailablePokemonNames
_0805295C:
@@ -749,7 +749,7 @@ _08052966:
.align 2, 0
_08052988: .4byte gAvailablePokemonNames
_0805298C: .4byte gUnknown_80F7AF8
-_08052990: .4byte gUnknown_203B45C
+_08052990: .4byte gRecruitedPokemonRef
_08052994: .4byte 0x00008df8
_08052998: .4byte gUnknown_202DFE8
_0805299C:
@@ -815,7 +815,7 @@ _08052A1C:
ldrsh r4, [r6, r1]
ldr r0, _08052A48
adds r1, r4, 0
- bl sub_808D8E0
+ bl CopyYellowSpeciesNametoBuffer
_08052A28:
ldrh r0, [r6]
subs r0, 0x2
@@ -1379,7 +1379,7 @@ sub_8052EC0:
lsrs r4, r0, 24
adds r5, r4, 0
adds r0, r4, 0
- bl sub_8090BD0
+ bl GetItemType
lsls r0, 24
lsrs r0, 24
cmp r0, 0x3
diff --git a/asm/code_8057824.s b/asm/code_8057824.s
index ab84288..c700946 100644
--- a/asm/code_8057824.s
+++ b/asm/code_8057824.s
@@ -9106,7 +9106,7 @@ _0805BE30: .4byte gUnknown_80FD450
_0805BE34:
ldr r0, _0805BE58
adds r1, r5, 0
- bl sub_808D908
+ bl CopyCyanSpeciesNametoBuffer
ldr r0, _0805BE5C
ldr r2, [r0]
mov r0, r10
@@ -15023,7 +15023,7 @@ _0805F102:
b _0805F12A
.align 2, 0
_0805F114: .4byte 0x00000679
-_0805F118: .4byte gUnknown_203B45C
+_0805F118: .4byte gRecruitedPokemonRef
_0805F11C: .4byte 0x00008df8
_0805F120:
movs r0, 0
@@ -16902,7 +16902,7 @@ _080600D8:
movs r7, 0x1
movs r0, 0x99
lsls r0, 1
- bl sub_8083E38
+ bl PlaySoundEffect
bl sub_8047158
bl sub_80912C8
movs r0, 0
@@ -17927,7 +17927,7 @@ _0806092C:
movs r0, 0x9
bl sub_8044F5C
ldrb r0, [r7, 0x2]
- bl sub_8090BD0
+ bl GetItemType
lsls r0, 24
lsrs r0, 24
cmp r0, 0x6
@@ -18013,12 +18013,12 @@ _080609E8:
cmp r0, 0x14
bhi _08060A6C
ldrb r0, [r7, 0x2]
- bl sub_8090BD0
+ bl GetItemType
lsls r0, 24
cmp r0, 0
beq _08060A0A
ldrb r0, [r7, 0x2]
- bl sub_8090BD0
+ bl GetItemType
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
@@ -18194,7 +18194,7 @@ _08060B68:
bl sub_8044F5C
_08060B78:
ldrb r0, [r7, 0x2]
- bl sub_8090BD0
+ bl GetItemType
lsls r0, 24
cmp r0, 0
bne _08060B8E
@@ -18204,7 +18204,7 @@ _08060B78:
b _08060BAE
_08060B8E:
ldrb r0, [r7, 0x2]
- bl sub_8090BD0
+ bl GetItemType
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
@@ -18265,7 +18265,7 @@ _08060BD0:
movs r4, 0x1
ands r4, r0
ldrb r0, [r7, 0x2]
- bl sub_8090BD0
+ bl GetItemType
lsls r0, 24
lsrs r0, 24
cmp r0, 0x5
@@ -18273,7 +18273,7 @@ _08060BD0:
movs r5, 0x1
_08060C22:
ldrb r0, [r7, 0x2]
- bl sub_8090BD0
+ bl GetItemType
lsls r0, 24
lsrs r0, 24
cmp r0, 0x9
@@ -19149,7 +19149,7 @@ _08061328: .4byte gUnknown_202F270
_0806132C: .4byte gUnknown_202EE10
_08061330: .4byte gUnknown_8106BB0
_08061334: .4byte gAvailablePokemonNames
-_08061338: .4byte gUnknown_203B45C
+_08061338: .4byte gRecruitedPokemonRef
_0806133C: .4byte 0x00008e02
_08061340: .4byte gUnknown_8106BB4
_08061344:
@@ -19422,7 +19422,7 @@ _0806156C: .4byte 0x0001357c
_08061570: .4byte 0x0000065d
_08061574: .4byte 0x0000065c
_08061578: .4byte 0x00000644
-_0806157C: .4byte gUnknown_203B45C
+_0806157C: .4byte gRecruitedPokemonRef
_08061580: .4byte 0x00008df8
_08061584:
movs r0, 0
@@ -19823,7 +19823,7 @@ _080618BC: .4byte gUnknown_202EE10
_080618C0: .4byte gUnknown_202EE6C
_080618C4:
ldr r0, _080618FC
- bl sub_8083E38
+ bl PlaySoundEffect
mov r0, r8
adds r0, 0x94
strb r7, [r0]
@@ -20943,7 +20943,7 @@ _08062190: .4byte gUnknown_202EE6C
_08062194: .4byte gUnknown_202EE10
_08062198:
ldr r0, _080621AC
- bl sub_8083E38
+ bl PlaySoundEffect
ldr r0, [sp, 0x11C]
adds r0, 0x8C
adds r1, r6, 0
@@ -24113,7 +24113,7 @@ _08063AEC:
orrs r0, r1
strb r0, [r4, 0x1]
ldr r0, _08063B28
- bl sub_8083E38
+ bl PlaySoundEffect
mov r3, r10
cmp r3, 0
beq _08063B42
@@ -24186,7 +24186,7 @@ sub_8063B54:
orrs r0, r1
strb r0, [r4, 0x1]
ldr r0, _08063BB0
- bl sub_8083E38
+ bl PlaySoundEffect
pop {r4-r6}
pop {r0}
bx r0
@@ -24288,7 +24288,7 @@ _08063C5C:
adds r0, r6, r4
bl sub_80936D8
ldr r0, _08063C84
- bl sub_8083E38
+ bl PlaySoundEffect
pop {r4-r7}
pop {r0}
bx r0
@@ -24433,7 +24433,7 @@ _08063D70:
adds r0, r6, r2
bl sub_80936D8
ldr r0, _08063DA8
- bl sub_8083E38
+ bl PlaySoundEffect
mov r3, r10
cmp r3, 0
beq _08063DC2
@@ -29575,7 +29575,7 @@ _080666B0:
add r8, r0
b _08066704
.align 2, 0
-_080666CC: .4byte gUnknown_203B45C
+_080666CC: .4byte gRecruitedPokemonRef
_080666D0: .4byte 0x0000019d
_080666D4: .4byte 0x00008df8
_080666D8:
@@ -29691,7 +29691,7 @@ _08066798:
adds r1, r4, 0
bl sub_8045BF8
ldr r0, _080667C8
- bl sub_8083E38
+ bl PlaySoundEffect
cmp r7, 0
beq _08066812
ldrb r1, [r4]
@@ -29708,7 +29708,7 @@ _080667C8: .4byte 0x00000133
_080667CC: .4byte gUnknown_80F8D04
_080667D0:
ldrb r0, [r4, 0x2]
- bl sub_8090BD0
+ bl GetItemType
lsls r0, 24
cmp r0, 0
bne _08066808
@@ -29807,7 +29807,7 @@ _08066898:
ldr r0, _080668C4
bl sub_8045BF8
ldr r0, _080668C8
- bl sub_8083E38
+ bl PlaySoundEffect
cmp r6, 0
beq _080668B8
ldr r0, _080668CC
@@ -29947,7 +29947,7 @@ _080669B2:
mov r1, sp
bl sub_8045BF8
ldr r0, _080669F8
- bl sub_8083E38
+ bl PlaySoundEffect
ldr r0, _080669FC
ldr r1, [r0]
adds r0, r6, 0
@@ -29989,7 +29989,7 @@ _08066A04:
adds r1, r4, 0
bl sub_8045BF8
ldr r0, _08066AAC
- bl sub_8083E38
+ bl PlaySoundEffect
ldr r0, _08066AB0
ldr r1, [r0]
adds r0, r6, 0
@@ -30125,7 +30125,7 @@ _08066B24:
mov r0, sp
bl sub_8091290
ldr r0, _08066BC4
- bl sub_8083E38
+ bl PlaySoundEffect
ldr r0, _08066BC8
ldr r1, [r0]
adds r0, r7, 0
@@ -30256,7 +30256,7 @@ _08066C40:
str r0, [r2, 0x60]
str r1, [r5]
ldr r0, _08066CE0
- bl sub_8083E38
+ bl PlaySoundEffect
ldr r0, _08066CE4
ldr r1, [r0]
adds r0, r7, 0
@@ -30422,7 +30422,7 @@ _08066DC4:
strb r6, [r5]
bl sub_80910B4
ldr r0, _08066E00
- bl sub_8083E38
+ bl PlaySoundEffect
ldr r0, _08066E04
adds r1, r4, 0
movs r2, 0
@@ -30608,7 +30608,7 @@ _08066F46:
mov r1, sp
bl sub_8045BF8
ldr r0, _08066F94
- bl sub_8083E38
+ bl PlaySoundEffect
ldr r0, _08066F98
ldr r1, [r0]
mov r0, r9
@@ -30780,7 +30780,7 @@ _080670C4:
_080670CA:
bl sub_80910B4
ldr r0, _08067100
- bl sub_8083E38
+ bl PlaySoundEffect
ldr r0, _08067104
ldr r1, [r0]
adds r0, r7, 0
@@ -30908,12 +30908,12 @@ _080671E0: .4byte gUnknown_202DE58
_080671E4: .4byte gUnknown_80F8BE0
_080671E8:
ldrb r0, [r4, 0x2]
- bl sub_8090BD0
+ bl GetItemType
lsls r0, 24
cmp r0, 0
beq _08067202
ldrb r0, [r4, 0x2]
- bl sub_8090BD0
+ bl GetItemType
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
@@ -30977,7 +30977,7 @@ _08067272:
lsrs r0, 16
lsls r0, 24
lsrs r0, 24
- bl sub_8090BD0
+ bl GetItemType
lsls r0, 24
cmp r0, 0
beq _0806729A
@@ -30985,7 +30985,7 @@ _08067272:
lsrs r0, 16
lsls r0, 24
lsrs r0, 24
- bl sub_8090BD0
+ bl GetItemType
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
@@ -31092,12 +31092,12 @@ _0806733E:
_08067364:
add r4, sp, 0x4
ldrb r0, [r4, 0x2]
- bl sub_8090BD0
+ bl GetItemType
lsls r0, 24
cmp r0, 0
beq _08067380
ldrb r0, [r4, 0x2]
- bl sub_8090BD0
+ bl GetItemType
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
@@ -31115,7 +31115,7 @@ _08067384:
movs r2, 0
bl sub_80708B4
ldrb r0, [r4, 0x2]
- bl sub_8090BD0
+ bl GetItemType
lsls r0, 24
cmp r0, 0
bne _080673BC
@@ -31136,7 +31136,7 @@ _080673BC:
_080673C6:
add r0, sp, 0x4
ldrb r0, [r0, 0x2]
- bl sub_8090BD0
+ bl GetItemType
adds r1, r0, 0
lsls r1, 24
lsrs r1, 24
@@ -31234,7 +31234,7 @@ _08067462:
_08067486:
add r0, sp, 0x4
ldrb r0, [r0, 0x2]
- bl sub_8090BD0
+ bl GetItemType
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
@@ -31672,7 +31672,7 @@ _080677B4:
_080677F0: .4byte gAvailablePokemonNames
_080677F4: .4byte gUnknown_80F9094
_080677F8: .4byte gUnknown_80F913C
-_080677FC: .4byte gUnknown_203B45C
+_080677FC: .4byte gRecruitedPokemonRef
_08067800: .4byte 0x00008df8
_08067804: .4byte gUnknown_80F9114
_08067808: .4byte gUnknown_80F9154
@@ -33582,7 +33582,7 @@ _08068748: .4byte 0x00017b44
_0806874C: .4byte 0x000001a5
_08068750: .4byte 0x000037e4
_08068754: .4byte 0x0000343c
-_08068758: .4byte gUnknown_203B45C
+_08068758: .4byte gRecruitedPokemonRef
_0806875C: .4byte 0x00008df8
_08068760: .4byte 0x00003a14
_08068764: .4byte 0x00008f88
@@ -33987,7 +33987,7 @@ _08068A50:
pop {r0}
bx r0
.align 2, 0
-_08068A60: .4byte gUnknown_203B45C
+_08068A60: .4byte gRecruitedPokemonRef
_08068A64: .4byte 0x00008df8
_08068A68: .4byte gUnknown_203B418
_08068A6C: .4byte 0x00000644
@@ -34045,7 +34045,7 @@ _08068AB2:
ldr r0, _08068AEC
b _08068BB2
.align 2, 0
-_08068AE0: .4byte gUnknown_203B45C
+_08068AE0: .4byte gRecruitedPokemonRef
_08068AE4: .4byte 0x00008df8
_08068AE8: .4byte gAvailablePokemonNames
_08068AEC: .4byte gUnknown_80FE0F4
@@ -34114,7 +34114,7 @@ _08068B3E:
ldr r0, _08068B7C
b _08068BB2
.align 2, 0
-_08068B6C: .4byte gUnknown_203B45C
+_08068B6C: .4byte gRecruitedPokemonRef
_08068B70: .4byte 0x00008df8
_08068B74: .4byte 0x000055aa
_08068B78: .4byte gAvailablePokemonNames
@@ -34284,7 +34284,7 @@ _08068C96:
b _08068CFE
.align 2, 0
_08068CC4: .4byte 0xfffffdd8
-_08068CC8: .4byte gUnknown_203B45C
+_08068CC8: .4byte gRecruitedPokemonRef
_08068CCC: .4byte 0x00008df8
_08068CD0: .4byte 0xfffffe87
_08068CD4: .4byte gUnknown_203B418
@@ -34449,7 +34449,7 @@ _08068E06:
b _08068F08
.align 2, 0
_08068E10: .4byte 0x0000ffff
-_08068E14: .4byte gUnknown_203B45C
+_08068E14: .4byte gRecruitedPokemonRef
_08068E18: .4byte 0x00008df8
_08068E1C:
ldr r0, _08068E78
@@ -34623,7 +34623,7 @@ _08068F2E:
strh r0, [r4]
b _08068F74
.align 2, 0
-_08068F5C: .4byte gUnknown_203B45C
+_08068F5C: .4byte gRecruitedPokemonRef
_08068F60: .4byte 0x00008df8
_08068F64:
movs r1, 0xA
@@ -35047,7 +35047,7 @@ _080692B2:
.align 2, 0
_080692C4: .4byte gUnknown_203B418
_080692C8: .4byte 0x0001357c
-_080692CC: .4byte gUnknown_203B45C
+_080692CC: .4byte gRecruitedPokemonRef
_080692D0: .4byte 0x00008df8
_080692D4: .4byte 0x00000644
_080692D8: .4byte gUnknown_202EE76
@@ -35273,7 +35273,7 @@ _08069498: .4byte 0x000005f4
_0806949C: .4byte 0xfffffe5f
_080694A0: .4byte 0x000037fe
_080694A4: .4byte gUnknown_80FA580
-_080694A8: .4byte gUnknown_203B45C
+_080694A8: .4byte gRecruitedPokemonRef
_080694AC: .4byte 0x00008df8
_080694B0: .4byte 0x00000644
_080694B4: .4byte 0x0000065c
@@ -38258,7 +38258,7 @@ _0806AB12:
pop {r0}
bx r0
.align 2, 0
-_0806AB24: .4byte gUnknown_203B45C
+_0806AB24: .4byte gRecruitedPokemonRef
_0806AB28: .4byte 0x00008df8
thumb_func_end sub_806AA70
@@ -39012,7 +39012,7 @@ _0806B0BA:
b _0806B0EE
.align 2, 0
_0806B0E4: .4byte 0x00008df8
-_0806B0E8: .4byte gUnknown_203B45C
+_0806B0E8: .4byte gRecruitedPokemonRef
_0806B0EC:
adds r4, 0x1
_0806B0EE:
@@ -39321,7 +39321,7 @@ _0806B2D2:
_0806B324: .4byte gUnknown_203B418
_0806B328: .4byte 0x0000e218
_0806B32C: .4byte 0x0000e21a
-_0806B330: .4byte gUnknown_203B45C
+_0806B330: .4byte gRecruitedPokemonRef
_0806B334: .4byte 0x00008df8
_0806B338: .4byte 0x0000065c
_0806B33C: .4byte 0x00000179
@@ -39491,7 +39491,7 @@ _0806B460:
b _0806B4AE
.align 2, 0
_0806B480: .4byte gUnknown_203B450
-_0806B484: .4byte gUnknown_203B45C
+_0806B484: .4byte gRecruitedPokemonRef
_0806B488: .4byte 0x000055aa
_0806B48C: .4byte 0x00008df8
_0806B490:
@@ -41367,7 +41367,7 @@ _0806C316:
pop {r0}
bx r0
.align 2, 0
-_0806C31C: .4byte gUnknown_203B45C
+_0806C31C: .4byte gRecruitedPokemonRef
_0806C320: .4byte 0x00008df8
_0806C324: .4byte 0xfffffe87
_0806C328: .4byte 0x000055aa
@@ -44468,7 +44468,7 @@ _0806DB00:
ldr r0, _0806DB14
b _0806DB7E
.align 2, 0
-_0806DB04: .4byte gUnknown_203B45C
+_0806DB04: .4byte gRecruitedPokemonRef
_0806DB08: .4byte 0x00008df8
_0806DB0C: .4byte gUnknown_203B418
_0806DB10: .4byte 0x0000065c
@@ -48208,7 +48208,7 @@ _0806F8B4:
movs r4, 0
b _0806F8C6
.align 2, 0
-_0806F8BC: .4byte gUnknown_203B45C
+_0806F8BC: .4byte gRecruitedPokemonRef
_0806F8C0: .4byte 0x00008df8
_0806F8C4:
adds r4, 0x1
@@ -48462,7 +48462,7 @@ sub_806FA5C:
ldr r0, _0806FAD4
movs r3, 0
ldrsh r1, [r6, r3]
- bl sub_808D908
+ bl CopyCyanSpeciesNametoBuffer
ldr r0, _0806FAD8
ldr r1, [r0]
movs r0, 0
@@ -48525,7 +48525,7 @@ _0806FB28:
movs r0, 0
b _0806FCF0
.align 2, 0
-_0806FB2C: .4byte gUnknown_203B45C
+_0806FB2C: .4byte gRecruitedPokemonRef
_0806FB30: .4byte 0x00008df8
_0806FB34: .4byte gUnknown_80FA030
_0806FB38:
@@ -48655,7 +48655,7 @@ _0806FBC4:
strh r7, [r5]
b _0806FCEE
.align 2, 0
-_0806FC40: .4byte gUnknown_203B45C
+_0806FC40: .4byte gRecruitedPokemonRef
_0806FC44: .4byte 0x00008df8
_0806FC48: .4byte 0x0000ffff
_0806FC4C: .4byte gUnknown_203B418
@@ -48710,7 +48710,7 @@ _0806FC94:
mov r1, r9
bl sub_8092558
movs r0, 0xCE
- bl sub_8011988
+ bl PlaySound
ldr r0, _0806FD10
ldr r1, [r0]
movs r0, 0
@@ -48834,7 +48834,7 @@ _0806FDAC:
movs r4, 0
b _0806FDBE
.align 2, 0
-_0806FDB4: .4byte gUnknown_203B45C
+_0806FDB4: .4byte gRecruitedPokemonRef
_0806FDB8: .4byte 0x00008df8
_0806FDBC:
adds r4, 0x1
@@ -48917,7 +48917,7 @@ _0806FE46:
movs r0, 0
b _0806FFF8
.align 2, 0
-_0806FE50: .4byte gUnknown_203B45C
+_0806FE50: .4byte gRecruitedPokemonRef
_0806FE54: .4byte 0x00008df8
_0806FE58:
add r0, sp, 0xC
@@ -49055,7 +49055,7 @@ _0806FF34:
strh r0, [r5]
b _0806FFF6
.align 2, 0
-_0806FF74: .4byte gUnknown_203B45C
+_0806FF74: .4byte gRecruitedPokemonRef
_0806FF78: .4byte 0x00008df8
_0806FF7C: .4byte 0x0000ffff
_0806FF80: .4byte gUnknown_203B418
@@ -49096,7 +49096,7 @@ _0806FFB8:
adds r1, r7, 0
bl sub_8092558
movs r0, 0xCE
- bl sub_8011988
+ bl PlaySound
ldr r0, _08070014
ldr r1, [r0]
movs r0, 0
@@ -50368,13 +50368,13 @@ _0807092A:
movs r0, 0x4
ldrsh r1, [r1, r0]
adds r0, r3, 0
- bl sub_808D8E0
+ bl CopyYellowSpeciesNametoBuffer
b _0807095A
_08070936:
movs r5, 0x4
ldrsh r1, [r1, r5]
adds r0, r3, 0
- bl sub_808D908
+ bl CopyCyanSpeciesNametoBuffer
b _0807095A
_08070942:
ldr r2, _08070960
@@ -50393,7 +50393,7 @@ _0807095A:
pop {r0}
bx r0
.align 2, 0
-_08070960: .4byte gUnknown_203B45C
+_08070960: .4byte gRecruitedPokemonRef
_08070964: .4byte 0x00008df8
thumb_func_end sub_80708B4
@@ -50424,7 +50424,7 @@ _08070990:
movs r0, 0x4
ldrsh r1, [r1, r0]
adds r0, r4, 0
- bl sub_808D908
+ bl CopyCyanSpeciesNametoBuffer
b _080709BA
_080709A2:
ldr r2, _080709C0
@@ -50443,7 +50443,7 @@ _080709BA:
pop {r0}
bx r0
.align 2, 0
-_080709C0: .4byte gUnknown_203B45C
+_080709C0: .4byte gRecruitedPokemonRef
_080709C4: .4byte 0x00008df8
thumb_func_end sub_8070968
@@ -50517,7 +50517,7 @@ _08070A48:
pop {r0}
bx r0
.align 2, 0
-_08070A50: .4byte gUnknown_203B45C
+_08070A50: .4byte gRecruitedPokemonRef
_08070A54: .4byte 0x00008df8
thumb_func_end sub_80709C8
@@ -54983,7 +54983,7 @@ sub_8072B78:
adds r4, 0x50
adds r0, r4, 0
adds r1, r5, 0
- bl sub_808D908
+ bl CopyCyanSpeciesNametoBuffer
adds r0, r5, 0
bl sub_80687D0
adds r4, r0, 0
@@ -56354,7 +56354,7 @@ _080736D4:
movs r3, 0x81
str r3, [sp, 0x54]
ldrb r0, [r7, 0x2]
- bl sub_8090BD0
+ bl GetItemType
lsls r0, 24
lsrs r0, 24
cmp r0, 0
@@ -56564,7 +56564,7 @@ _08073866:
_08073870:
ldrb r0, [r7, 0x2]
movs r1, 0
- bl sub_8090DAC
+ bl GetItemUnkFood
lsls r0, 24
cmp r0, 0
beq _080738EC
@@ -56576,7 +56576,7 @@ _08073870:
cmp r5, 0
beq _080738EC
ldrb r0, [r7, 0x2]
- bl sub_8090BD0
+ bl GetItemType
lsls r0, 24
lsrs r0, 24
adds r4, r0, 0
@@ -56632,12 +56632,12 @@ _080738EC:
_080738FC:
ldrb r0, [r7, 0x2]
mov r1, r9
- bl sub_8090DAC
+ bl GetItemUnkFood
lsls r0, 24
cmp r0, 0
beq _080739AE
ldrb r0, [r7, 0x2]
- bl sub_8090BD0
+ bl GetItemType
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
@@ -57274,7 +57274,7 @@ _08073DC8:
cmp r0, 0
bne _08073E24
ldrb r0, [r5, 0x2]
- bl sub_8090BD0
+ bl GetItemType
lsls r0, 24
lsrs r0, 24
cmp r0, 0x6
@@ -57284,14 +57284,14 @@ _08073DC8:
cmp r0, 0
beq _08073DF4
ldr r0, _08073DF0
- bl sub_8083E38
+ bl PlaySoundEffect
b _08073DFC
.align 2, 0
_08073DF0: .4byte 0x0000014b
_08073DF4:
movs r0, 0xA6
lsls r0, 1
- bl sub_8083E38
+ bl PlaySoundEffect
_08073DFC:
adds r0, r5, 0
bl sub_80915D4
@@ -57491,7 +57491,7 @@ _08073F6C:
bl sub_80461C8
movs r0, 0xA5
lsls r0, 1
- bl sub_8083E38
+ bl PlaySoundEffect
mov r7, sp
adds r0, r7, r4
ldr r0, [r0]
@@ -57548,14 +57548,14 @@ _08073FEC:
cmp r0, 0
beq _08074000
ldr r0, _08073FFC
- bl sub_8083E38
+ bl PlaySoundEffect
b _08074008
.align 2, 0
_08073FFC: .4byte 0x0000014b
_08074000:
movs r0, 0xA5
lsls r0, 1
- bl sub_8083E38
+ bl PlaySoundEffect
_08074008:
lsls r0, r4, 2
add r0, sp
@@ -57982,7 +57982,7 @@ _08074390:
cmp r6, 0
beq _080743A0
ldr r0, _08074410
- bl sub_8083E38
+ bl PlaySoundEffect
_080743A0:
adds r0, r5, 0
mov r1, r9
@@ -67295,7 +67295,7 @@ _08078ED4:
ldr r0, _08078F48
movs r2, 0x4
ldrsh r1, [r7, r2]
- bl sub_808D908
+ bl CopyCyanSpeciesNametoBuffer
ldr r0, _08078F4C
ldr r2, [r0]
mov r0, r10
@@ -79666,7 +79666,7 @@ _0807F036:
_0807F04E:
movs r0, 0xA6
lsls r0, 1
- bl sub_8083E38
+ bl PlaySoundEffect
ldr r0, [r4]
adds r0, r5
ldr r0, [r0]
@@ -79890,7 +79890,7 @@ _0807F228: .4byte gUnknown_80FE520
_0807F22C:
movs r0, 0xA6
lsls r0, 1
- bl sub_8083E38
+ bl PlaySoundEffect
negs r0, r4
bl sub_80913A0
movs r6, 0
@@ -80473,7 +80473,7 @@ _0807F6A8:
cmp r0, 0
beq _0807F6D0
ldr r0, _0807F868
- bl sub_8083E38
+ bl PlaySoundEffect
_0807F6D0:
movs r4, 0
str r4, [sp, 0x100]
@@ -82227,7 +82227,7 @@ _08080470:
_08080478:
ldr r0, [r4]
ldrb r0, [r0, 0x2]
- bl sub_8090BD0
+ bl GetItemType
lsls r0, 24
lsrs r0, 24
cmp r0, 0x3
@@ -89429,8 +89429,8 @@ sub_8083E28:
bx r0
thumb_func_end sub_8083E28
- thumb_func_start sub_8083E38
-sub_8083E38:
+ thumb_func_start PlaySoundEffect
+PlaySoundEffect:
push {lr}
lsls r0, 16
lsrs r2, r0, 16
@@ -89446,7 +89446,7 @@ _08083E4E:
bx r0
.align 2, 0
_08083E54: .4byte 0x000003e5
- thumb_func_end sub_8083E38
+ thumb_func_end PlaySoundEffect
thumb_func_start sub_8083E58
sub_8083E58:
@@ -89558,15 +89558,15 @@ sub_8083F14:
bx r0
thumb_func_end sub_8083F14
- thumb_func_start sub_8083F24
-sub_8083F24:
+ thumb_func_start xxx_call_GetCurrentBGSong
+xxx_call_GetCurrentBGSong:
push {lr}
bl GetCurrentBGSong
lsls r0, 16
lsrs r0, 16
pop {r1}
bx r1
- thumb_func_end sub_8083F24
+ thumb_func_end xxx_call_GetCurrentBGSong
thumb_func_start sub_8083F34
sub_8083F34:
@@ -90663,7 +90663,7 @@ _08084784:
movs r0, 0xE
ldrsh r1, [r1, r0]
ldr r0, _080847B8
- bl sub_808D908
+ bl CopyCyanSpeciesNametoBuffer
b _080847CE
.align 2, 0
_080847B8: .4byte gUnknown_202E088
@@ -91172,46 +91172,46 @@ _08084C80:
bl SkarmonyPreFightDialogue
b _08084DDA
_08084C86:
- bl sub_8086DAC
+ bl SkarmonyReFightDialogue
b _08084DDA
_08084C8C:
bl sub_8086E40
b _08084DDA
_08084C92:
- bl sub_8086FB8
+ bl TeamMeaniePreFightDialogue
b _08084DDA
_08084C98:
- bl sub_8087064
+ bl TeamMeanieReFightDialogue
b _08084DDA
_08084C9E:
bl sub_8087130
b _08084DDA
_08084CA4:
- bl sub_8087364
+ bl ZapdosPreFightDialogue
b _08084DDA
_08084CAA:
- bl sub_80875C0
+ bl ZapdosReFightDialogue
b _08084DDA
_08084CB0:
- bl sub_808765C
+ bl ZapdosPostStoryPreFightDialogue
b _08084DDA
_08084CB6:
- bl sub_8087924
+ bl MoltresPreFightDialogue
b _08084DDA
_08084CBC:
- bl sub_8087B20
+ bl MoltresReFightDialogue
b _08084DDA
_08084CC2:
- bl sub_8087C38
+ bl MoltresPostStoryPreFightDialogue
b _08084DDA
_08084CC8:
- bl sub_80880B8
+ bl ArticunoPreFightDialogue
b _08084DDA
_08084CCE:
- bl sub_8088304
+ bl ArticunoReFightDialogue
b _08084DDA
_08084CD4:
- bl sub_8088398
+ bl ArticunoPostStoryPreFightDialogue
b _08084DDA
_08084CDA:
bl sub_8088608
@@ -93898,7 +93898,7 @@ sub_80862BC:
adds r4, r0, 0
movs r0, 0xE8
lsls r0, 1
- bl sub_8083E38
+ bl PlaySoundEffect
ldr r0, _080862D8
adds r1, r4, 0
movs r2, 0
@@ -94402,7 +94402,7 @@ sub_80866C4:
push {r4,lr}
adds r4, r0, 0
bl sub_8085480
- bl sub_808696C
+ bl SpriteLookAroundEffect
movs r0, 0xA
movs r1, 0x46
bl sub_803E708
@@ -94581,7 +94581,7 @@ sub_808680C:
cmp r0, 0
beq _08086820
ldr r0, _08086828
- bl sub_8083E38
+ bl PlaySoundEffect
_08086820:
pop {r0}
bx r0
@@ -94655,7 +94655,7 @@ _0808688A:
cmp r0, 0
beq _080868A8
ldr r0, _080868A0
- bl sub_8083E38
+ bl PlaySoundEffect
b _080868A8
.align 2, 0
_0808689C: .4byte gUnknown_202F3D0
@@ -94763,8 +94763,8 @@ sub_808692C:
bx r0
thumb_func_end sub_808692C
- thumb_func_start sub_808696C
-sub_808696C:
+ thumb_func_start SpriteLookAroundEffect
+SpriteLookAroundEffect:
push {r4,r5,lr}
adds r5, r0, 0
ldr r0, [r5, 0x70]
@@ -94815,7 +94815,7 @@ sub_808696C:
pop {r4,r5}
pop {r0}
bx r0
- thumb_func_end sub_808696C
+ thumb_func_end SpriteLookAroundEffect
thumb_func_start sub_80869E4
sub_80869E4:
@@ -95261,8 +95261,8 @@ _08086DA4: .4byte gUnknown_8100B80
_08086DA8: .4byte gUnknown_8100BC0
thumb_func_end SkarmonyPreFightDialogue
- thumb_func_start sub_8086DAC
-sub_8086DAC:
+ thumb_func_start SkarmonyReFightDialogue
+SkarmonyReFightDialogue:
push {r4,r5,lr}
sub sp, 0x8
bl sub_8085480
@@ -95319,13 +95319,13 @@ sub_8086DAC:
_08086E34: .4byte gUnknown_8100C90
_08086E38: .4byte gUnknown_8100CBC
_08086E3C: .4byte gUnknown_8100CDC
- thumb_func_end sub_8086DAC
+ thumb_func_end SkarmonyReFightDialogue
thumb_func_start sub_8086E40
sub_8086E40:
push {lr}
bl sub_8085480
- bl sub_808696C
+ bl SpriteLookAroundEffect
movs r0, 0xA
movs r1, 0x46
bl sub_803E708
@@ -95356,7 +95356,7 @@ sub_8086E74:
bl sub_8086A54
movs r0, 0xFC
lsls r0, 1
- bl sub_8083E38
+ bl PlaySoundEffect
movs r0, 0x44
movs r1, 0x46
bl sub_803E708
@@ -95496,8 +95496,8 @@ _08086FB0: .4byte gUnknown_203B418
_08086FB4: .4byte 0x0001358c
thumb_func_end sub_8086F54
- thumb_func_start sub_8086FB8
-sub_8086FB8:
+ thumb_func_start TeamMeaniePreFightDialogue
+TeamMeaniePreFightDialogue:
push {r4,lr}
bl sub_8085480
adds r4, r0, 0
@@ -95558,10 +95558,10 @@ _08087054: .4byte gUnknown_8100F14
_08087058: .4byte gUnknown_8101004
_0808705C: .4byte gUnknown_8101050
_08087060: .4byte gUnknown_81010D0
- thumb_func_end sub_8086FB8
+ thumb_func_end TeamMeaniePreFightDialogue
- thumb_func_start sub_8087064
-sub_8087064:
+ thumb_func_start TeamMeanieReFightDialogue
+TeamMeanieReFightDialogue:
push {r4,r5,lr}
bl sub_8085480
adds r4, r0, 0
@@ -95635,7 +95635,7 @@ _08087120: .4byte gUnknown_8101240
_08087124: .4byte gUnknown_8101310
_08087128: .4byte gUnknown_810137C
_0808712C: .4byte gUnknown_8101408
- thumb_func_end sub_8087064
+ thumb_func_end TeamMeanieReFightDialogue
thumb_func_start sub_8087130
sub_8087130:
@@ -95896,8 +95896,8 @@ _0808735A:
_08087360: .4byte gUnknown_203B418
thumb_func_end sub_8087334
- thumb_func_start sub_8087364
-sub_8087364:
+ thumb_func_start ZapdosPreFightDialogue
+ZapdosPreFightDialogue:
push {r4-r7,lr}
mov r7, r10
mov r6, r9
@@ -95916,7 +95916,7 @@ sub_8087364:
movs r1, 0x46
bl sub_803E708
adds r0, r6, 0
- bl sub_808696C
+ bl SpriteLookAroundEffect
movs r0, 0xA
movs r1, 0x46
bl sub_803E708
@@ -95955,7 +95955,7 @@ sub_8087364:
bl sub_8083F14
movs r0, 0xED
lsls r0, 1
- bl sub_8083E38
+ bl PlaySoundEffect
ldr r0, _08087478
bl sub_8052910
ldr r0, [sp, 0x68]
@@ -96139,1849 +96139,6 @@ _080875B0: .4byte gUnknown_810165C
_080875B4: .4byte gUnknown_8101750
_080875B8: .4byte gUnknown_810178C
_080875BC: .4byte gUnknown_81017B4
- thumb_func_end sub_8087364
-
- thumb_func_start sub_80875C0
-sub_80875C0:
- push {r4,r5,lr}
- bl sub_8085480
- adds r4, r0, 0
- movs r0, 0x8
- bl sub_8085680
- adds r5, r0, 0
- bl sub_8086448
- movs r0, 0xA
- movs r1, 0x46
- bl sub_803E708
- ldr r0, _08087648
- bl sub_8052910
- movs r0, 0xA
- movs r1, 0x46
- bl sub_803E708
- movs r0, 0xED
- lsls r0, 1
- bl sub_8083E38
- ldr r0, _0808764C
- bl sub_8052910
- movs r0, 0xA
- movs r1, 0x46
- bl sub_803E708
- adds r0, r5, 0
- bl sub_8087704
- movs r0, 0xA
- movs r1, 0x46
- bl sub_803E708
- ldr r0, _08087650
- bl sub_8052910
- movs r0, 0x1
- bl sub_808775C
- ldr r0, _08087654
- bl sub_8052910
- movs r0, 0x2
- bl sub_808775C
- ldr r0, _08087658
- bl sub_8052910
- movs r1, 0x96
- lsls r1, 1
- adds r0, r5, 0
- movs r2, 0xB
- bl sub_8086A70
- adds r4, 0xC
- adds r0, r4, 0
- movs r1, 0x10
- bl sub_80858AC
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08087648: .4byte gUnknown_81017E4
-_0808764C: .4byte gUnknown_81015A0
-_08087650: .4byte gUnknown_8101898
-_08087654: .4byte gUnknown_81018EC
-_08087658: .4byte gUnknown_8101918
- thumb_func_end sub_80875C0
-
- thumb_func_start sub_808765C
-sub_808765C:
- push {r4,r5,lr}
- bl sub_8085480
- adds r5, r0, 0
- movs r0, 0x8
- bl sub_8085680
- adds r4, r0, 0
- bl sub_8086448
- movs r0, 0x91
- bl sub_8086AE4
- lsls r0, 24
- cmp r0, 0
- beq _08087688
- ldr r0, _08087684
- bl sub_80866C4
- b _080876EA
- .align 2, 0
-_08087684: .4byte gUnknown_8101A38
-_08087688:
- movs r0, 0x1
- bl sub_808775C
- movs r0, 0xED
- lsls r0, 1
- bl sub_8083E38
- ldr r0, _080876F0
- bl sub_8052910
- adds r0, r4, 0
- bl sub_8087704
- ldr r0, _080876F4
- bl sub_8052910
- movs r0, 0x1
- bl sub_808775C
- ldr r0, _080876F8
- bl sub_8052910
- movs r0, 0x2
- bl sub_808775C
- ldr r0, _080876FC
- bl sub_8052910
- movs r0, 0x2
- bl sub_808775C
- ldr r0, _08087700
- bl sub_8052910
- movs r0, 0xA
- movs r1, 0x46
- bl sub_803E708
- movs r1, 0x96
- lsls r1, 1
- adds r0, r4, 0
- movs r2, 0xB
- bl sub_8086A70
- adds r0, r5, 0
- adds r0, 0xC
- movs r1, 0x10
- bl sub_80858AC
-_080876EA:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080876F0: .4byte gUnknown_810193C
-_080876F4: .4byte gUnknown_8101970
-_080876F8: .4byte gUnknown_8101994
-_080876FC: .4byte gUnknown_81019E4
-_08087700: .4byte gUnknown_8101A04
- thumb_func_end sub_808765C
-
- thumb_func_start sub_8087704
-sub_8087704:
- push {r4,r5,lr}
- adds r5, r0, 0
- ldr r0, [r5, 0x70]
- movs r1, 0xAE
- lsls r1, 1
- adds r0, r1
- movs r2, 0
- movs r1, 0x1
- strb r1, [r0]
- ldr r0, [r5, 0x70]
- movs r1, 0xAF
- lsls r1, 1
- adds r0, r1
- strb r2, [r0]
- ldr r0, [r5, 0x70]
- adds r1, 0x16
- adds r0, r1
- movs r1, 0xC8
- str r1, [r0]
- movs r0, 0xF5
- lsls r0, 1
- bl sub_8083E38
- movs r4, 0xC8
-_08087734:
- ldr r0, [r5, 0x70]
- movs r1, 0xBA
- lsls r1, 1
- adds r0, r1
- lsls r1, r4, 8
- str r1, [r0]
- movs r0, 0x46
- bl sub_803E46C
- subs r4, 0x5
- cmp r4, 0
- bge _08087734
- movs r0, 0x1E
- movs r1, 0x46
- bl sub_803E708
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_8087704
-
- thumb_func_start sub_808775C
-sub_808775C:
- push {r4,r5,lr}
- sub sp, 0x4
- adds r5, r0, 0
- movs r0, 0xFB
- lsls r0, 1
- bl sub_8083E38
- cmp r5, 0x2
- ble _08087790
- movs r4, 0xFA
-_08087770:
- lsrs r2, r4, 31
- adds r2, r4, r2
- asrs r2, 1
- movs r0, 0x1
- str r0, [sp]
- adds r0, r4, 0
- adds r1, r4, 0
- movs r3, 0x1
- bl sub_8085C54
- movs r0, 0x46
- bl sub_803E46C
- subs r4, 0xA
- cmp r4, 0xC7
- bgt _08087770
-_08087790:
- cmp r5, 0x1
- ble _080877B6
- movs r4, 0xFA
-_08087796:
- lsrs r2, r4, 31
- adds r2, r4, r2
- asrs r2, 1
- movs r0, 0x1
- str r0, [sp]
- adds r0, r4, 0
- adds r1, r4, 0
- movs r3, 0x1
- bl sub_8085C54
- movs r0, 0x46
- bl sub_803E46C
- subs r4, 0xA
- cmp r4, 0xC7
- bgt _08087796
-_080877B6:
- movs r4, 0xFA
-_080877B8:
- adds r2, r4, 0
- cmp r4, 0
- bge _080877C0
- adds r2, r4, 0x3
-_080877C0:
- asrs r2, 2
- movs r0, 0x1
- str r0, [sp]
- adds r0, r4, 0
- adds r1, r4, 0
- movs r3, 0x1
- bl sub_8085C54
- movs r0, 0x46
- bl sub_803E46C
- subs r4, 0xA
- cmp r4, 0
- bge _080877B8
- bl sub_8085EB0
- add sp, 0x4
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_808775C
-
- thumb_func_start sub_80877E8
-sub_80877E8:
- push {r4-r6,lr}
- bl sub_8085480
- adds r6, r0, 0
- movs r0, 0x9
- bl sub_8085680
- adds r5, r0, 0
- movs r0, 0x26
- bl sub_8083E88
- bl sub_8085374
- bl sub_80854D4
- movs r0, 0x6
- bl sub_8085930
- ldr r4, _08087840
- adds r0, r4, 0
- bl sub_80855E4
- adds r0, r5, 0
- movs r1, 0
- bl sub_8085918
- adds r0, r5, 0
- bl _call_via_r4
- movs r1, 0x4
- ldrsh r0, [r6, r1]
- subs r0, 0x3
- movs r2, 0x6
- ldrsh r1, [r6, r2]
- subs r1, 0x2
- bl sub_8085860
- ldr r0, _08087844
- movs r1, 0x92
- bl CopySpeciesNametoBuffer
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08087840: .4byte sub_8086A3C
-_08087844: .4byte gUnknown_202E038
- thumb_func_end sub_80877E8
-
- thumb_func_start sub_8087848
-sub_8087848:
- push {r4-r6,lr}
- sub sp, 0x4
- bl sub_8085480
- adds r5, r0, 0
- movs r0, 0x9
- bl sub_8085680
- adds r4, r0, 0
- movs r0, 0x26
- bl sub_8083E88
- bl sub_80854D4
- movs r0, 0x6
- bl sub_8085930
- ldr r6, _08087890
- adds r0, r6, 0
- bl sub_80855E4
- movs r0, 0x92
- bl sub_8086AE4
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0
- beq _08087894
- movs r1, 0x87
- lsls r1, 2
- adds r0, r4, 0
- movs r2, 0
- bl sub_8068FE0
- b _080878B4
- .align 2, 0
-_08087890: .4byte sub_8086A3C
-_08087894:
- ldr r0, _080878E8
- movs r3, 0
- ldrsh r2, [r0, r3]
- str r1, [sp]
- adds r0, r4, 0
- adds r1, r4, 0
- movs r3, 0
- bl sub_8072008
- adds r0, r4, 0
- movs r1, 0
- bl sub_8085918
- adds r0, r4, 0
- bl _call_via_r6
-_080878B4:
- movs r1, 0x4
- ldrsh r0, [r5, r1]
- subs r0, 0x5
- movs r2, 0x6
- ldrsh r1, [r5, r2]
- bl sub_8085860
- bl sub_803F994
- adds r4, r0, 0
- bl sub_803F9B0
- adds r1, r0, 0
- ldr r3, _080878EC
- adds r1, r3
- adds r0, r4, 0
- bl sub_803F878
- ldr r0, _080878F0
- movs r1, 0x92
- bl CopySpeciesNametoBuffer
- add sp, 0x4
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080878E8: .4byte gUnknown_80F57CE
-_080878EC: .4byte 0xfffff000
-_080878F0: .4byte gUnknown_202E038
- thumb_func_end sub_8087848
-
- thumb_func_start sub_80878F4
-sub_80878F4:
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r1, 24
- movs r2, 0xF6
- lsls r2, 24
- adds r1, r2
- lsrs r1, 24
- cmp r1, 0x2
- bhi _0808791A
- cmp r0, 0x9
- bne _0808791A
- movs r0, 0x7
- bl sub_8097FA8
- ldr r0, _08087920
- ldr r1, [r0]
- movs r0, 0x1
- strb r0, [r1, 0x2]
-_0808791A:
- pop {r0}
- bx r0
- .align 2, 0
-_08087920: .4byte gUnknown_203B418
- thumb_func_end sub_80878F4
-
- thumb_func_start sub_8087924
-sub_8087924:
- push {r4-r6,lr}
- bl sub_8085480
- adds r5, r0, 0
- bl sub_808548C
- adds r4, r0, 0
- movs r0, 0x9
- bl sub_8085680
- adds r6, r0, 0
- movs r0, 0xC
- movs r1, 0x5
- bl sub_8087D80
- bl sub_8086500
- movs r0, 0xA
- movs r1, 0x46
- bl sub_803E708
- ldr r0, _08087AE8
- bl sub_8052910
- movs r0, 0xA
- movs r1, 0x46
- bl sub_803E708
- adds r0, r4, 0
- movs r1, 0x4
- movs r2, 0x1
- movs r3, 0x5
- bl sub_80869E4
- movs r0, 0x4
- movs r1, 0x46
- bl sub_803E708
- adds r0, r4, 0
- bl sub_808696C
- movs r0, 0xA
- movs r1, 0x46
- bl sub_803E708
- ldr r0, _08087AEC
- bl sub_8052910
- movs r0, 0xA
- movs r1, 0x46
- bl sub_803E708
- movs r0, 0xC
- movs r1, 0x5
- bl sub_8087D80
- movs r0, 0x9
- movs r1, 0x5
- bl sub_8087DE8
- ldr r0, _08087AF0
- bl sub_8052910
- movs r0, 0xA
- movs r1, 0x46
- bl sub_803E708
- adds r0, r4, 0
- movs r1, 0x4
- movs r2, 0x1
- movs r3, 0x2
- bl sub_80869E4
- adds r0, r5, 0
- movs r1, 0x4
- movs r2, 0x2
- movs r3, 0x6
- bl sub_80869E4
- ldr r0, _08087AF4
- bl sub_8052910
- movs r0, 0xA
- movs r1, 0x46
- bl sub_803E708
- adds r0, r4, 0
- movs r1, 0x4
- movs r2, 0x2
- movs r3, 0x6
- bl sub_80869E4
- bl sub_8086690
- ldr r0, _08087AF8
- bl sub_8052910
- movs r0, 0xA
- movs r1, 0x46
- bl sub_803E708
- movs r0, 0x5
- bl sub_8085930
- movs r0, 0x4
- movs r1, 0x46
- bl sub_803E708
- movs r0, 0x4
- bl sub_8085930
- ldr r0, _08087AFC
- bl sub_8083E38
- bl sub_8083F14
- bl sub_8087F24
- ldr r0, _08087B00
- bl sub_8052910
- movs r0, 0xA
- movs r1, 0x46
- bl sub_803E708
- ldr r0, _08087B04
- bl sub_8052910
- movs r0, 0xA
- movs r1, 0x46
- bl sub_803E708
- ldr r0, _08087B08
- bl sub_8083E38
- adds r0, r4, 0
- movs r1, 0x4
- bl sub_80856E0
- movs r0, 0xA
- movs r1, 0x46
- bl sub_803E708
- ldr r0, _08087B0C
- bl sub_8052910
- movs r0, 0xA
- movs r1, 0x46
- bl sub_803E708
- bl sub_8087EB0
- movs r0, 0xED
- lsls r0, 1
- bl sub_8083E38
- ldr r0, _08087B10
- bl sub_8052910
- movs r0, 0xA
- movs r1, 0x46
- bl sub_803E708
- movs r0, 0x9
- movs r1, 0x5
- bl sub_8087D80
- movs r0, 0xB
- movs r1, 0x5
- bl sub_8087DE8
- ldr r0, _08087B14
- bl sub_8052910
- movs r0, 0xA
- movs r1, 0x46
- bl sub_803E708
- movs r0, 0xC
- movs r1, 0x5
- bl sub_8087D80
- movs r0, 0x9
- movs r1, 0x5
- bl sub_8087DE8
- adds r0, r6, 0
- bl sub_8087D30
- bl sub_808663C
- bl sub_8087EB0
- ldr r0, _08087B18
- bl sub_8052910
- movs r0, 0xA
- movs r1, 0x46
- bl sub_803E708
- movs r0, 0xB
- movs r1, 0x6
- bl sub_8087DE8
- ldr r0, _08087B1C
- bl sub_8052910
- movs r0, 0xA
- movs r1, 0x46
- bl sub_803E708
- movs r1, 0xC8
- lsls r1, 1
- adds r0, r6, 0
- movs r2, 0xB
- bl sub_8086A70
- adds r5, 0xC
- adds r0, r5, 0
- movs r1, 0x10
- bl sub_80858AC
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08087AE8: .4byte gUnknown_8101A9C
-_08087AEC: .4byte gUnknown_8101AD4
-_08087AF0: .4byte gUnknown_8101C30
-_08087AF4: .4byte gUnknown_8101CBC
-_08087AF8: .4byte gUnknown_8101D8C
-_08087AFC: .4byte 0x000002f2
-_08087B00: .4byte gUnknown_8101DA0
-_08087B04: .4byte gUnknown_8101E1C
-_08087B08: .4byte 0x000001cf
-_08087B0C: .4byte gUnknown_8101EAC
-_08087B10: .4byte gUnknown_8102070
-_08087B14: .4byte gUnknown_81020A4
-_08087B18: .4byte gUnknown_81020D4
-_08087B1C: .4byte gUnknown_8102108
- thumb_func_end sub_8087924
-
- thumb_func_start sub_8087B20
-sub_8087B20:
- push {r4-r6,lr}
- bl sub_8085480
- adds r5, r0, 0
- bl sub_808548C
- adds r4, r0, 0
- movs r0, 0x9
- bl sub_8085680
- adds r6, r0, 0
- movs r0, 0xA
- movs r1, 0x5
- bl sub_8087D80
- bl sub_8086500
- movs r0, 0xA
- movs r1, 0x46
- bl sub_803E708
- adds r0, r4, 0
- bl sub_808696C
- movs r0, 0xA
- movs r1, 0x46
- bl sub_803E708
- ldr r0, _08087C24
- bl sub_8052910
- movs r0, 0xA
- movs r1, 0x46
- bl sub_803E708
- adds r0, r4, 0
- movs r1, 0x4
- movs r2, 0x1
- movs r3, 0x2
- bl sub_80869E4
- adds r0, r5, 0
- movs r1, 0x4
- movs r2, 0x2
- movs r3, 0x6
- bl sub_80869E4
- ldr r0, _08087C28
- bl sub_8052910
- movs r0, 0xA
- movs r1, 0x46
- bl sub_803E708
- adds r0, r4, 0
- movs r1, 0x4
- movs r2, 0x2
- movs r3, 0x6
- bl sub_80869E4
- adds r0, r5, 0
- movs r1, 0x4
- movs r2, 0x2
- movs r3, 0x6
- bl sub_80869E4
- bl sub_8086690
- bl sub_8087F24
- movs r0, 0xA
- movs r1, 0x46
- bl sub_803E708
- movs r0, 0x5
- bl sub_8085930
- movs r0, 0x4
- movs r1, 0x46
- bl sub_803E708
- movs r0, 0x4
- bl sub_8085930
- adds r0, r6, 0
- bl sub_8087D30
- bl sub_808663C
- bl sub_8087EB0
- ldr r0, _08087C2C
- bl sub_8052910
- movs r0, 0xA
- movs r1, 0x46
- bl sub_803E708
- movs r0, 0xB
- movs r1, 0x6
- bl sub_8087DE8
- ldr r0, _08087C30
- bl sub_8052910
- movs r0, 0xA
- movs r1, 0x46
- bl sub_803E708
- ldr r0, _08087C34
- bl sub_8052910
- movs r0, 0xA
- movs r1, 0x46
- bl sub_803E708
- movs r1, 0xC8
- lsls r1, 1
- adds r0, r6, 0
- movs r2, 0xB
- bl sub_8086A70
- adds r5, 0xC
- adds r0, r5, 0
- movs r1, 0x10
- bl sub_80858AC
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08087C24: .4byte gUnknown_8102158
-_08087C28: .4byte gUnknown_8102190
-_08087C2C: .4byte gUnknown_8102200
-_08087C30: .4byte gUnknown_8102254
-_08087C34: .4byte gUnknown_81022F8
- thumb_func_end sub_8087B20
-
- thumb_func_start sub_8087C38
-sub_8087C38:
- push {r4,r5,lr}
- bl sub_8085480
- adds r5, r0, 0
- movs r0, 0x9
- bl sub_8085680
- adds r4, r0, 0
- movs r0, 0xC
- movs r1, 0x5
- bl sub_8087D80
- bl sub_808654C
- movs r0, 0x92
- bl sub_8086AE4
- lsls r0, 24
- cmp r0, 0
- beq _08087CA4
- movs r0, 0x5
- bl sub_8085930
- movs r0, 0x4
- movs r1, 0x46
- bl sub_803E708
- movs r0, 0x4
- bl sub_8085930
- movs r0, 0x4
- movs r1, 0x46
- bl sub_803E708
- movs r0, 0xA
- movs r1, 0x46
- bl sub_803E708
- ldr r0, _08087C9C
- bl sub_8052910
- movs r0, 0xA
- movs r1, 0x46
- bl sub_803E708
- ldr r0, _08087CA0
- ldr r1, [r0]
- movs r0, 0x1
- strb r0, [r1, 0x2]
- b _08087D16
- .align 2, 0
-_08087C9C: .4byte gUnknown_8100D3C
-_08087CA0: .4byte gUnknown_203B418
-_08087CA4:
- ldr r0, _08087D1C
- bl sub_8052910
- movs r0, 0x5
- bl sub_8085930
- movs r0, 0x4
- movs r1, 0x46
- bl sub_803E708
- movs r0, 0x4
- bl sub_8085930
- adds r0, r4, 0
- bl sub_8087D30
- ldr r0, _08087D20
- bl sub_8052910
- movs r0, 0xC
- movs r1, 0x5
- bl sub_8087D80
- movs r0, 0x9
- movs r1, 0x5
- bl sub_8087DE8
- ldr r0, _08087D24
- bl sub_8052910
- bl sub_8087EB0
- ldr r0, _08087D28
- bl sub_8052910
- movs r0, 0xB
- movs r1, 0x6
- bl sub_8087DE8
- ldr r0, _08087D2C
- bl sub_8052910
- movs r0, 0xA
- movs r1, 0x46
- bl sub_803E708
- movs r1, 0xC8
- lsls r1, 1
- adds r0, r4, 0
- movs r2, 0xB
- bl sub_8086A70
- adds r0, r5, 0
- adds r0, 0xC
- movs r1, 0x10
- bl sub_80858AC
-_08087D16:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08087D1C: .4byte gUnknown_810232C
-_08087D20: .4byte gUnknown_8102398
-_08087D24: .4byte gUnknown_81023C4
-_08087D28: .4byte gUnknown_8102400
-_08087D2C: .4byte gUnknown_8102454
- thumb_func_end sub_8087C38
-
- thumb_func_start sub_8087D30
-sub_8087D30:
- push {r4,r5,lr}
- adds r5, r0, 0
- ldr r0, [r5, 0x70]
- movs r1, 0xAE
- lsls r1, 1
- adds r0, r1
- movs r2, 0
- movs r1, 0x1
- strb r1, [r0]
- ldr r0, [r5, 0x70]
- movs r1, 0xAF
- lsls r1, 1
- adds r0, r1
- strb r2, [r0]
- ldr r0, [r5, 0x70]
- adds r1, 0x16
- adds r0, r1
- movs r1, 0xC8
- lsls r1, 8
- str r1, [r0]
- movs r0, 0xFC
- lsls r0, 1
- bl sub_8083E38
- movs r4, 0xC8
-_08087D62:
- ldr r0, [r5, 0x70]
- movs r1, 0xBA
- lsls r1, 1
- adds r0, r1
- lsls r1, r4, 8
- str r1, [r0]
- movs r0, 0x46
- bl sub_803E46C
- subs r4, 0x5
- cmp r4, 0
- bge _08087D62
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_8087D30
-
- thumb_func_start sub_8087D80
-sub_8087D80:
- push {lr}
- sub sp, 0x8
- adds r3, r1, 0
- lsls r1, r0, 1
- adds r1, r0
- lsls r1, 11
- movs r2, 0xC0
- lsls r2, 4
- adds r0, r1, r2
- cmp r0, 0
- bge _08087D98
- adds r0, 0xFF
-_08087D98:
- lsls r0, 8
- lsrs r0, 16
- ldr r1, _08087DE0
- ldr r2, [sp, 0x4]
- ands r2, r1
- orrs r2, r0
- str r2, [sp, 0x4]
- lsls r0, r3, 1
- adds r0, r3
- lsls r0, 11
- movs r1, 0x80
- lsls r1, 5
- adds r0, r1
- cmp r0, 0
- bge _08087DB8
- adds r0, 0xFF
-_08087DB8:
- lsls r0, 8
- lsrs r0, 16
- lsls r0, 16
- ldr r1, _08087DE4
- ands r2, r1
- orrs r2, r0
- str r2, [sp, 0x4]
- movs r0, 0xB9
- lsls r0, 1
- movs r1, 0
- str r1, [sp]
- movs r1, 0x10
- movs r2, 0
- add r3, sp, 0x4
- bl sub_8085EC8
- add sp, 0x8
- pop {r0}
- bx r0
- .align 2, 0
-_08087DE0: .4byte 0xffff0000
-_08087DE4: .4byte 0x0000ffff
- thumb_func_end sub_8087D80
-
- thumb_func_start sub_8087DE8
-sub_8087DE8:
- push {r4-r6,lr}
- sub sp, 0x8
- adds r3, r1, 0
- lsls r1, r0, 1
- adds r1, r0
- lsls r1, 11
- movs r2, 0xC0
- lsls r2, 4
- adds r0, r1, r2
- cmp r0, 0
- bge _08087E00
- adds r0, 0xFF
-_08087E00:
- lsls r0, 8
- lsrs r0, 16
- ldr r1, _08087EA8
- ldr r2, [sp, 0x4]
- ands r2, r1
- orrs r2, r0
- str r2, [sp, 0x4]
- lsls r0, r3, 1
- adds r0, r3
- lsls r0, 11
- movs r1, 0x80
- lsls r1, 5
- adds r0, r1
- cmp r0, 0
- bge _08087E20
- adds r0, 0xFF
-_08087E20:
- lsls r0, 8
- lsrs r0, 16
- lsls r0, 16
- ldr r1, _08087EAC
- ands r2, r1
- orrs r2, r0
- str r2, [sp, 0x4]
- movs r0, 0xB9
- lsls r0, 1
- movs r1, 0
- str r1, [sp]
- movs r1, 0x16
- movs r2, 0
- add r3, sp, 0x4
- bl sub_8085EC8
- adds r6, r0, 0
- movs r0, 0xF6
- lsls r0, 1
- bl sub_8083E38
- movs r4, 0xFA
- movs r5, 0x1
-_08087E4E:
- str r5, [sp]
- adds r0, r4, 0
- movs r1, 0
- movs r2, 0
- movs r3, 0x1
- bl sub_8085C54
- movs r0, 0x46
- bl sub_803E46C
- subs r4, 0xA
- cmp r4, 0x13
- bgt _08087E4E
- movs r0, 0xA
- movs r1, 0x46
- bl sub_803E708
- movs r4, 0xFA
- movs r5, 0x1
-_08087E74:
- str r5, [sp]
- adds r0, r4, 0
- movs r1, 0
- movs r2, 0
- movs r3, 0x1
- bl sub_8085C54
- movs r0, 0x46
- bl sub_803E46C
- subs r4, 0xA
- cmp r4, 0
- bge _08087E74
- movs r0, 0xA
- movs r1, 0x46
- bl sub_803E708
- bl sub_8085EB0
- adds r0, r6, 0
- bl sub_8085F44
- add sp, 0x8
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08087EA8: .4byte 0xffff0000
-_08087EAC: .4byte 0x0000ffff
- thumb_func_end sub_8087DE8
-
- thumb_func_start sub_8087EB0
-sub_8087EB0:
- push {r4,lr}
- sub sp, 0x4
- ldr r0, _08087F20
- bl sub_8083E38
- movs r4, 0xFA
-_08087EBC:
- lsrs r2, r4, 31
- adds r2, r4, r2
- asrs r2, 1
- movs r0, 0x1
- str r0, [sp]
- adds r0, r4, 0
- adds r1, r4, 0
- movs r3, 0x1
- bl sub_8085C54
- movs r0, 0x46
- bl sub_803E46C
- subs r4, 0xA
- cmp r4, 0x9
- bgt _08087EBC
- movs r0, 0x1E
- movs r1, 0x46
- bl sub_803E708
- ldr r0, _08087F20
- bl sub_8083E38
- movs r4, 0xFA
-_08087EEC:
- lsrs r2, r4, 31
- adds r2, r4, r2
- asrs r2, 1
- movs r0, 0x1
- str r0, [sp]
- adds r0, r4, 0
- adds r1, r4, 0
- movs r3, 0x1
- bl sub_8085C54
- movs r0, 0x46
- bl sub_803E46C
- subs r4, 0xA
- cmp r4, 0
- bge _08087EEC
- movs r0, 0x1E
- movs r1, 0x46
- bl sub_803E708
- bl sub_8085EB0
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08087F20: .4byte 0x000001ed
- thumb_func_end sub_8087EB0
-
- thumb_func_start sub_8087F24
-sub_8087F24:
- push {r4-r6,lr}
- sub sp, 0x4
- movs r4, 0
- movs r6, 0
- movs r5, 0x50
- negs r5, r5
-_08087F30:
- str r6, [sp]
- adds r0, r4, 0
- adds r1, r4, 0
- adds r2, r4, 0
- movs r3, 0
- bl sub_8085C54
- movs r0, 0x46
- bl sub_803E46C
- subs r4, 0x8
- cmp r4, r5
- bge _08087F30
- add sp, 0x4
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_8087F24
-
- thumb_func_start sub_8087F54
-sub_8087F54:
- push {r4-r6,lr}
- bl sub_8085480
- adds r6, r0, 0
- movs r0, 0xD
- bl sub_8085680
- adds r5, r0, 0
- movs r0, 0x72
- bl sub_8083E88
- bl sub_8085374
- bl sub_80854D4
- movs r0, 0x4
- bl sub_8085930
- ldr r4, _08087FAC
- adds r0, r4, 0
- bl sub_80855E4
- adds r0, r5, 0
- movs r1, 0
- bl sub_8085918
- adds r0, r5, 0
- bl _call_via_r4
- movs r1, 0x4
- ldrsh r0, [r6, r1]
- movs r2, 0x6
- ldrsh r1, [r6, r2]
- subs r1, 0x3
- bl sub_8085860
- ldr r0, _08087FB0
- movs r1, 0x90
- bl CopySpeciesNametoBuffer
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08087FAC: .4byte sub_8086A3C
-_08087FB0: .4byte gUnknown_202E038
- thumb_func_end sub_8087F54
-
- thumb_func_start sub_8087FB4
-sub_8087FB4:
- push {r4,lr}
- movs r0, 0xD
- bl sub_8085680
- adds r4, r0, 0
- movs r0, 0x72
- bl sub_8083E88
- bl sub_8085374
- bl sub_80854D4
- movs r0, 0x4
- bl sub_8085930
- adds r0, r4, 0
- movs r1, 0
- bl sub_8085918
- adds r0, r4, 0
- movs r1, 0xF
- movs r2, 0
- bl sub_806CDD4
- ldr r0, _08087FF4
- movs r1, 0x90
- bl CopySpeciesNametoBuffer
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08087FF4: .4byte gUnknown_202E038
- thumb_func_end sub_8087FB4
-
- thumb_func_start sub_8087FF8
-sub_8087FF8:
- push {r4-r6,lr}
- sub sp, 0x4
- bl sub_8085480
- adds r5, r0, 0
- movs r0, 0xD
- bl sub_8085680
- adds r4, r0, 0
- bl sub_8085374
- bl sub_80854D4
- movs r0, 0x4
- bl sub_8085930
- ldr r6, _0808803C
- adds r0, r6, 0
- bl sub_80855E4
- movs r0, 0x90
- bl sub_8086AE4
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0
- beq _08088040
- movs r1, 0x87
- lsls r1, 2
- adds r0, r4, 0
- movs r2, 0
- bl sub_8068FE0
- b _08088060
- .align 2, 0
-_0808803C: .4byte sub_8086A3C
-_08088040:
- ldr r0, _08088080
- movs r3, 0
- ldrsh r2, [r0, r3]
- str r1, [sp]
- adds r0, r4, 0
- adds r1, r4, 0
- movs r3, 0
- bl sub_8072008
- adds r0, r4, 0
- movs r1, 0
- bl sub_8085918
- adds r0, r4, 0
- bl _call_via_r6
-_08088060:
- movs r1, 0x4
- ldrsh r0, [r5, r1]
- movs r2, 0x6
- ldrsh r1, [r5, r2]
- subs r1, 0x3
- bl sub_8085860
- ldr r0, _08088084
- movs r1, 0x90
- bl CopySpeciesNametoBuffer
- add sp, 0x4
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08088080: .4byte gUnknown_80F57D0
-_08088084: .4byte gUnknown_202E038
- thumb_func_end sub_8087FF8
-
- thumb_func_start sub_8088088
-sub_8088088:
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r1, 24
- movs r2, 0xF3
- lsls r2, 24
- adds r1, r2
- lsrs r1, 24
- cmp r1, 0x2
- bhi _080880AE
- cmp r0, 0xD
- bne _080880AE
- movs r0, 0x9
- bl sub_8097FA8
- ldr r0, _080880B4
- ldr r1, [r0]
- movs r0, 0x1
- strb r0, [r1, 0x2]
-_080880AE:
- pop {r0}
- bx r0
- .align 2, 0
-_080880B4: .4byte gUnknown_203B418
- thumb_func_end sub_8088088
-
- thumb_func_start sub_80880B8
-sub_80880B8:
- push {r4-r6,lr}
- mov r6, r8
- push {r6}
- bl sub_8085480
- adds r5, r0, 0
- bl sub_808548C
- adds r6, r0, 0
- movs r0, 0xD
- bl sub_8085680
- mov r8, r0
- bl sub_8086448
- adds r0, r6, 0
- bl sub_808696C
- ldr r0, _080882C8
- bl sub_8052910
- movs r0, 0xA
- movs r1, 0x46
- bl sub_803E708
- bl sub_8086598
- bl sub_8083F14
- ldr r0, _080882CC
- bl sub_8052910
- movs r0, 0xA
- movs r1, 0x46
- bl sub_803E708
- adds r0, r6, 0
- movs r1, 0x4
- movs r2, 0x1
- movs r3, 0x2
- bl sub_80869E4
- adds r0, r5, 0
- movs r1, 0x4
- movs r2, 0x2
- movs r3, 0x6
- bl sub_80869E4
- ldr r0, _080882D0
- bl sub_8052910
- movs r0, 0xA
- movs r1, 0x46
- bl sub_803E708
- adds r0, r5, 0
- movs r1, 0x6
- bl sub_8085918
- movs r0, 0x4
- movs r1, 0x46
- bl sub_803E708
- adds r0, r5, 0
- movs r1, 0x5
- bl sub_8085918
- movs r0, 0x4
- movs r1, 0x46
- bl sub_803E708
- adds r0, r5, 0
- movs r1, 0x6
- bl sub_8085918
- movs r0, 0x4
- movs r1, 0x46
- bl sub_803E708
- adds r0, r5, 0
- movs r1, 0x7
- bl sub_8085918
- movs r0, 0x4
- movs r1, 0x46
- bl sub_803E708
- adds r0, r5, 0
- movs r1, 0x6
- bl sub_8085918
- movs r0, 0x4
- movs r1, 0x46
- bl sub_803E708
- adds r0, r5, 0
- movs r1, 0x5
- bl sub_8085918
- movs r0, 0x4
- movs r1, 0x46
- bl sub_803E708
- adds r0, r5, 0
- movs r1, 0x6
- bl sub_8085918
- movs r0, 0xA
- movs r1, 0x46
- bl sub_803E708
- ldr r0, _080882D4
- bl sub_8052910
- movs r0, 0xA
- movs r1, 0x46
- bl sub_803E708
- ldr r0, _080882D8
- bl sub_8052910
- movs r0, 0xA
- movs r1, 0x46
- bl sub_803E708
- adds r0, r5, 0
- movs r1, 0x4
- movs r2, 0x1
- movs r3, 0x4
- bl sub_80869E4
- adds r0, r6, 0
- movs r1, 0x4
- movs r2, 0x2
- movs r3, 0x4
- bl sub_80869E4
- ldr r4, _080882DC
- adds r0, r4, 0
- bl sub_8083E38
- adds r0, r6, 0
- bl sub_808696C
- adds r0, r4, 0
- bl sub_8083E38
- adds r0, r5, 0
- bl sub_808696C
- ldr r0, _080882E0
- bl sub_8052910
- movs r0, 0xA
- movs r1, 0x46
- bl sub_803E708
- ldr r0, _080882E4
- bl sub_8052910
- movs r0, 0xA
- movs r1, 0x46
- bl sub_803E708
- movs r0, 0
- bl sub_8083E38
- ldr r0, _080882E8
- ldr r0, [r0]
- ldr r1, _080882EC
- adds r0, r1
- movs r1, 0x7
- strb r1, [r0]
- movs r0, 0
- movs r1, 0x1
- bl sub_807EAA0
- movs r0, 0xF7
- lsls r0, 1
- bl sub_8083E38
- bl sub_8088574
- ldr r0, _080882F0
- bl sub_8052910
- movs r0, 0xA
- movs r1, 0x46
- bl sub_803E708
- bl sub_80884E0
- bl sub_8086738
- movs r0, 0xED
- lsls r0, 1
- bl sub_8083E38
- ldr r0, _080882F4
- bl sub_8052910
- movs r0, 0xA
- movs r1, 0x46
- bl sub_803E708
- movs r0, 0xF5
- lsls r0, 1
- bl sub_8083E38
- mov r0, r8
- bl sub_8088484
- bl sub_80865E8
- bl sub_80884E0
- ldr r0, _080882F8
- bl sub_8052910
- mov r0, r8
- movs r1, 0xF
- movs r2, 0
- bl sub_806CDD4
- bl sub_80884E0
- ldr r0, _080882FC
- bl sub_8052910
- mov r0, r8
- movs r1, 0x10
- movs r2, 0
- bl sub_806CDD4
- bl sub_80884E0
- ldr r0, _08088300
- bl sub_8052910
- mov r0, r8
- movs r1, 0xF
- movs r2, 0
- bl sub_806CDD4
- movs r0, 0x10
- movs r1, 0x46
- bl sub_803E708
- movs r1, 0xE1
- lsls r1, 1
- mov r0, r8
- movs r2, 0xB
- bl sub_8086A70
- adds r5, 0xC
- adds r0, r5, 0
- movs r1, 0x10
- bl sub_80858AC
- pop {r3}
- mov r8, r3
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080882C8: .4byte gUnknown_8102478
-_080882CC: .4byte gUnknown_81025B4
-_080882D0: .4byte gUnknown_81025D4
-_080882D4: .4byte gUnknown_8102610
-_080882D8: .4byte gUnknown_81026C4
-_080882DC: .4byte 0x000001d5
-_080882E0: .4byte gUnknown_810270C
-_080882E4: .4byte gUnknown_810272C
-_080882E8: .4byte gUnknown_203B418
-_080882EC: .4byte 0x0000e265
-_080882F0: .4byte gUnknown_81027BC
-_080882F4: .4byte gUnknown_8102810
-_080882F8: .4byte gUnknown_8102840
-_080882FC: .4byte gUnknown_810286C
-_08088300: .4byte gUnknown_81028B8
- thumb_func_end sub_80880B8
-
- thumb_func_start sub_8088304
-sub_8088304:
- push {r4,r5,lr}
- bl sub_8085480
- adds r5, r0, 0
- movs r0, 0xD
- bl sub_8085680
- adds r4, r0, 0
- ldr r0, _08088384
- ldr r0, [r0]
- ldr r1, _08088388
- adds r0, r1
- movs r1, 0x7
- strb r1, [r0]
- movs r0, 0
- movs r1, 0x1
- bl sub_807EAA0
- movs r0, 0xA
- movs r1, 0x46
- bl sub_803E708
- ldr r0, _0808838C
- bl sub_8052910
- adds r0, r4, 0
- movs r1, 0x10
- movs r2, 0
- bl sub_806CDD4
- bl sub_80884E0
- ldr r0, _08088390
- bl sub_8052910
- bl sub_80884E0
- ldr r0, _08088394
- bl sub_8052910
- adds r0, r4, 0
- movs r1, 0xF
- movs r2, 0
- bl sub_806CDD4
- movs r0, 0x28
- movs r1, 0x46
- bl sub_803E708
- movs r1, 0xE1
- lsls r1, 1
- adds r0, r4, 0
- movs r2, 0xB
- bl sub_8086A70
- adds r5, 0xC
- adds r0, r5, 0
- movs r1, 0x10
- bl sub_80858AC
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08088384: .4byte gUnknown_203B418
-_08088388: .4byte 0x0000e265
-_0808838C: .4byte gUnknown_81028D4
-_08088390: .4byte gUnknown_8102918
-_08088394: .4byte gUnknown_8102948
- thumb_func_end sub_8088304
-
- thumb_func_start sub_8088398
-sub_8088398:
- push {r4,r5,lr}
- bl sub_8085480
- adds r5, r0, 0
- movs r0, 0xD
- bl sub_8085680
- adds r4, r0, 0
- bl sub_8086448
- movs r0, 0x90
- bl sub_8086AE4
- lsls r0, 24
- cmp r0, 0
- beq _080883C4
- ldr r0, _080883C0
- bl sub_80866C4
- b _08088460
- .align 2, 0
-_080883C0: .4byte gUnknown_8102A9C
-_080883C4:
- ldr r0, _08088468
- ldr r0, [r0]
- ldr r1, _0808846C
- adds r0, r1
- movs r1, 0x7
- strb r1, [r0]
- movs r0, 0
- movs r1, 0x1
- bl sub_807EAA0
- bl sub_80884E0
- bl sub_8086738
- movs r0, 0xED
- lsls r0, 1
- bl sub_8083E38
- ldr r0, _08088470
- bl sub_8052910
- movs r0, 0xA
- movs r1, 0x46
- bl sub_803E708
- adds r0, r4, 0
- bl sub_8088484
- bl sub_80884E0
- ldr r0, _08088474
- bl sub_8052910
- adds r0, r4, 0
- movs r1, 0xF
- movs r2, 0
- bl sub_806CDD4
- bl sub_80884E0
- ldr r0, _08088478
- bl sub_8052910
- adds r0, r4, 0
- movs r1, 0x10
- movs r2, 0
- bl sub_806CDD4
- bl sub_80884E0
- ldr r0, _0808847C
- bl sub_8052910
- bl sub_80884E0
- ldr r0, _08088480
- bl sub_8052910
- adds r0, r4, 0
- movs r1, 0xF
- movs r2, 0
- bl sub_806CDD4
- movs r0, 0x28
- movs r1, 0x46
- bl sub_803E708
- movs r1, 0xE1
- lsls r1, 1
- adds r0, r4, 0
- movs r2, 0xB
- bl sub_8086A70
- adds r0, r5, 0
- adds r0, 0xC
- movs r1, 0x10
- bl sub_80858AC
-_08088460:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08088468: .4byte gUnknown_203B418
-_0808846C: .4byte 0x0000e265
-_08088470: .4byte gUnknown_8102984
-_08088474: .4byte gUnknown_81029B4
-_08088478: .4byte gUnknown_8102A18
-_0808847C: .4byte gUnknown_8102A24
-_08088480: .4byte gUnknown_8102A74
- thumb_func_end sub_8088398
-
- thumb_func_start sub_8088484
-sub_8088484:
- push {r4,r5,lr}
- sub sp, 0x4
- adds r5, r0, 0
- ldr r0, [r5, 0x70]
- movs r1, 0xAE
- lsls r1, 1
- adds r0, r1
- movs r2, 0
- movs r1, 0x1
- strb r1, [r0]
- ldr r0, [r5, 0x70]
- movs r1, 0xAF
- lsls r1, 1
- adds r0, r1
- strb r2, [r0]
- movs r0, 0xF5
- lsls r0, 1
- bl sub_8083E38
- movs r4, 0xFA
-_080884AC:
- ldr r0, [r5, 0x70]
- movs r1, 0xBA
- lsls r1, 1
- adds r0, r1
- lsls r1, r4, 8
- str r1, [r0]
- lsrs r2, r4, 31
- adds r2, r4, r2
- asrs r2, 1
- movs r0, 0
- str r0, [sp]
- adds r0, r4, 0
- adds r1, r4, 0
- movs r3, 0x1
- bl sub_8085C54
- movs r0, 0x46
- bl sub_803E46C
- subs r4, 0x5
- cmp r4, 0
- bge _080884AC
- add sp, 0x4
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_8088484
-
- thumb_func_start sub_80884E0
-sub_80884E0:
- push {r4,r5,lr}
- sub sp, 0x4
- ldr r0, _08088570
- bl sub_8083E38
- movs r4, 0xFA
-_080884EC:
- lsrs r0, r4, 31
- adds r0, r4, r0
- asrs r0, 1
- movs r1, 0x1
- str r1, [sp]
- adds r1, r4, 0
- adds r2, r4, 0
- movs r3, 0x1
- bl sub_8085C54
- movs r0, 0x46
- bl sub_803E46C
- subs r4, 0xA
- cmp r4, 0x95
- bgt _080884EC
- movs r0, 0x4
- movs r1, 0x46
- bl sub_803E708
- movs r4, 0xFA
- movs r5, 0x1
-_08088518:
- str r5, [sp]
- movs r0, 0
- adds r1, r4, 0
- adds r2, r4, 0
- movs r3, 0x1
- bl sub_8085C54
- movs r0, 0x46
- bl sub_803E46C
- subs r4, 0xA
- cmp r4, 0xC7
- bgt _08088518
- movs r0, 0x4
- movs r1, 0x46
- bl sub_803E708
- movs r4, 0xFA
-_0808853C:
- lsrs r0, r4, 31
- adds r0, r4, r0
- asrs r0, 1
- movs r1, 0x1
- str r1, [sp]
- adds r1, r4, 0
- adds r2, r4, 0
- movs r3, 0x1
- bl sub_8085C54
- movs r0, 0x46
- bl sub_803E46C
- subs r4, 0xA
- cmp r4, 0
- bge _0808853C
- movs r0, 0x4
- movs r1, 0x46
- bl sub_803E708
- bl sub_8085EB0
- add sp, 0x4
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08088570: .4byte 0x000002ad
- thumb_func_end sub_80884E0
-
- thumb_func_start sub_8088574
-sub_8088574:
- push {r4,r5,lr}
- sub sp, 0x4
- movs r4, 0
- movs r5, 0
-_0808857C:
- str r5, [sp]
- adds r0, r4, 0
- adds r1, r4, 0
- adds r2, r4, 0
- movs r3, 0
- bl sub_8085C54
- movs r0, 0x46
- bl sub_803E46C
- adds r4, 0x8
- cmp r4, 0x50
- ble _0808857C
- add sp, 0x4
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_8088574
-
- thumb_func_start sub_80885A0
-sub_80885A0:
- push {lr}
- movs r0, 0x3C
- bl sub_8083ED8
- movs r0, 0x3C
- movs r1, 0x46
- bl sub_803E708
- bl sub_8083F14
- ldr r0, _080885C0
- ldr r1, [r0]
- movs r0, 0x1
- strb r0, [r1, 0x7]
- pop {r0}
- bx r0
- .align 2, 0
-_080885C0: .4byte gUnknown_203B418
- thumb_func_end sub_80885A0
-
- thumb_func_start sub_80885C4
-sub_80885C4:
- push {r4,lr}
- bl sub_8085480
- adds r4, r0, 0
- movs r0, 0x3C
- bl sub_8083ED8
- movs r0, 0x3C
- movs r1, 0x46
- bl sub_803E708
- bl sub_8083F14
- bl sub_80854D4
- movs r0, 0x4
- bl sub_8085930
- ldr r0, _08088604
- bl sub_80855E4
- movs r1, 0x4
- ldrsh r0, [r4, r1]
- movs r2, 0x6
- ldrsh r1, [r4, r2]
- subs r1, 0x3
- bl sub_8085860
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08088604: .4byte sub_8086A3C
- thumb_func_end sub_80885C4
-
- thumb_func_start sub_8088608
-sub_8088608:
- ldr r0, _08088614
- ldr r1, [r0]
- movs r0, 0x1
- strb r0, [r1, 0x2]
- bx lr
- .align 2, 0
-_08088614: .4byte gUnknown_203B418
- thumb_func_end sub_8088608
-
- thumb_func_start sub_8088618
-sub_8088618:
- push {lr}
- bl sub_8086448
- ldr r0, _08088628
- bl sub_80866C4
- pop {r0}
- bx r0
- .align 2, 0
-_08088628: .4byte gUnknown_8102B10
- thumb_func_end sub_8088618
-
- thumb_func_start sub_808862C
-sub_808862C:
- push {r4-r6,lr}
- mov r6, r8
- push {r6}
- bl sub_8085480
- mov r8, r0
- movs r0, 0xA
- bl sub_8085680
- adds r5, r0, 0
- movs r0, 0xE
- bl sub_8085680
- adds r6, r0, 0
- movs r0, 0x72
- bl sub_8083E88
- bl sub_80867F4
- bl sub_8085374
- bl sub_80854D4
- movs r0, 0x4
- bl sub_8085930
- ldr r4, _080886B8
- adds r0, r4, 0
- bl sub_80855E4
- adds r0, r5, 0
- movs r1, 0x4
- bl sub_8085918
- adds r0, r5, 0
- movs r1, 0xD
- movs r2, 0x4
- bl sub_80861D4
- adds r0, r6, 0
- movs r1, 0
- bl sub_8085918
- adds r0, r6, 0
- bl _call_via_r4
- mov r1, r8
- movs r2, 0x4
- ldrsh r0, [r1, r2]
- movs r3, 0x6
- ldrsh r1, [r1, r3]
- subs r1, 0x3
- bl sub_8085860
- ldr r4, _080886BC
- ldr r1, _080886C0
- adds r0, r4, 0
- bl CopySpeciesNametoBuffer
- adds r4, 0x50
- adds r0, r4, 0
- movs r1, 0x41
- bl CopySpeciesNametoBuffer
- pop {r3}
- mov r8, r3
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080886B8: .4byte sub_8086A3C
-_080886BC: .4byte gUnknown_202E038
-_080886C0: .4byte 0x0000019b
- thumb_func_end sub_808862C
+ thumb_func_end ZapdosPreFightDialogue
.align 2,0
diff --git a/asm/code_808DAB4.s b/asm/code_808DAB4.s
index 93e7bf3..a225f8d 100644
--- a/asm/code_808DAB4.s
+++ b/asm/code_808DAB4.s
@@ -129,7 +129,7 @@ sub_808DF2C:
pop {r0}
bx r0
.align 2, 0
-_0808DF40: .4byte gUnknown_203B45C
+_0808DF40: .4byte gRecruitedPokemonRef
thumb_func_end sub_808DF2C
thumb_func_start sub_808DF44
@@ -233,7 +233,7 @@ sub_808DFDC:
bl sub_8090BB0
b _0808E00A
.align 2, 0
-_0808E000: .4byte gUnknown_203B45C
+_0808E000: .4byte gRecruitedPokemonRef
_0808E004:
adds r0, r3, 0
adds r0, 0x28
@@ -1225,7 +1225,7 @@ _0808E746:
movs r0, 0x1
b _0808E76A
.align 2, 0
-_0808E75C: .4byte gUnknown_203B45C
+_0808E75C: .4byte gRecruitedPokemonRef
_0808E760:
adds r2, 0x58
adds r3, 0x1
@@ -1430,8 +1430,8 @@ _0808E8C4:
bx r1
thumb_func_end sub_808E858
- thumb_func_start sub_808E8C8
-sub_808E8C8:
+ thumb_func_start GetUnownIndex
+GetUnownIndex:
push {lr}
lsls r0, 16
asrs r1, r0, 16
@@ -1579,7 +1579,7 @@ _0808E9B0:
_0808E9B2:
pop {r1}
bx r1
- thumb_func_end sub_808E8C8
+ thumb_func_end GetUnownIndex
thumb_func_start sub_808E9B8
sub_808E9B8:
diff --git a/asm/code_808EAB0.s b/asm/code_808EAB0.s
index b561623..ac46e44 100644
--- a/asm/code_808EAB0.s
+++ b/asm/code_808EAB0.s
@@ -66,7 +66,7 @@ _0808ED64:
pop {r0}
bx r0
.align 2, 0
-_0808ED70: .4byte gUnknown_203B45C
+_0808ED70: .4byte gRecruitedPokemonRef
_0808ED74: .4byte 0x00008f88
thumb_func_end sub_808ED00
@@ -135,7 +135,7 @@ _0808EDE2:
b _0808EDFA
.align 2, 0
_0808EDF0: .4byte 0x0000ffff
-_0808EDF4: .4byte gUnknown_203B45C
+_0808EDF4: .4byte gRecruitedPokemonRef
_0808EDF8:
strb r0, [r1, 0x3]
_0808EDFA:
@@ -168,7 +168,7 @@ _0808EE16:
strb r0, [r1]
b _0808EE40
.align 2, 0
-_0808EE34: .4byte gUnknown_203B45C
+_0808EE34: .4byte gRecruitedPokemonRef
_0808EE38: .4byte 0x00008f88
_0808EE3C:
mov r0, r8
@@ -275,7 +275,7 @@ _0808EEDA:
movs r1, 0x3
b _0808EF20
.align 2, 0
-_0808EF10: .4byte gUnknown_203B45C
+_0808EF10: .4byte gRecruitedPokemonRef
_0808EF14: .4byte 0x00008f88
_0808EF18:
ldr r0, [r7]
@@ -345,7 +345,7 @@ _0808EF84:
bx r1
.align 2, 0
_0808EF98: .4byte 0x00008f88
-_0808EF9C: .4byte gUnknown_203B45C
+_0808EF9C: .4byte gRecruitedPokemonRef
thumb_func_end sub_808EE9C
thumb_func_start sub_808EFA0
@@ -689,7 +689,7 @@ _0808F296:
pop {r1}
bx r1
.align 2, 0
-_0808F2A8: .4byte gUnknown_203B45C
+_0808F2A8: .4byte gRecruitedPokemonRef
_0808F2AC: .4byte 0x00008df8
thumb_func_end sub_808F154
@@ -733,7 +733,7 @@ _0808F2C4:
strb r2, [r4, 0x2]
b _0808F30A
.align 2, 0
-_0808F300: .4byte gUnknown_203B45C
+_0808F300: .4byte gRecruitedPokemonRef
_0808F304: .4byte 0x00008df8
_0808F308:
strb r1, [r4, 0x2]
@@ -927,11 +927,11 @@ _0808F488:
bne _0808F49C
movs r0, 0x41
adds r1, r7, 0
- bl sub_808DD48
+ bl GetPokemonEvolveConditions
b _0808F4A2
_0808F49C:
adds r1, r7, 0
- bl sub_808DD48
+ bl GetPokemonEvolveConditions
_0808F4A2:
ldrh r0, [r7, 0x2]
cmp r0, 0
@@ -974,7 +974,7 @@ _0808F4E0:
asrs r0, 16
str r0, [sp, 0x1C]
adds r1, r7, 0
- bl sub_808DD48
+ bl GetPokemonEvolveConditions
ldrh r0, [r7, 0x2]
cmp r0, 0
bne _0808F4FA
diff --git a/asm/code_809017C.s b/asm/code_809017C.s
index 5ea4cef..205f7bb 100644
--- a/asm/code_809017C.s
+++ b/asm/code_809017C.s
@@ -369,7 +369,7 @@ _080903F2:
b _08090430
.align 2, 0
_0809040C: .4byte gUnknown_8108F40
-_08090410: .4byte gUnknown_203B45C
+_08090410: .4byte gRecruitedPokemonRef
_08090414: .4byte gDungeons
_08090418: .4byte gUnknown_8115A2C
_0809041C:
@@ -432,7 +432,7 @@ _0809048E:
beq _0809054E
ldr r0, _080904B0
adds r1, r2, 0
- bl sub_808D908
+ bl CopyCyanSpeciesNametoBuffer
cmp r5, 0x3
ble _080904D2
mov r0, r8
@@ -503,7 +503,7 @@ _08090510:
b _08090536
.align 2, 0
_08090528: .4byte gUnknown_8115BA4
-_0809052C: .4byte gUnknown_203B45C
+_0809052C: .4byte gRecruitedPokemonRef
_08090530: .4byte gUnknown_8115BF4
_08090534:
ldr r0, _080905D0
@@ -685,7 +685,7 @@ _08090690:
_080906A0: .4byte gUnknown_8115D14
_080906A4: .4byte gDungeons
_080906A8: .4byte 0x0000019d
-_080906AC: .4byte gUnknown_203B45C
+_080906AC: .4byte gRecruitedPokemonRef
_080906B0: .4byte gUnknown_8115D5C
_080906B4:
ldr r0, _080906D8
@@ -899,7 +899,7 @@ _08090852:
movs r0, 0x1
b _08090880
.align 2, 0
-_08090868: .4byte gUnknown_203B45C
+_08090868: .4byte gRecruitedPokemonRef
_0809086C:
adds r2, 0x8
adds r3, 0x1
@@ -1077,3165 +1077,5 @@ _0809098C:
_08090994: .4byte gUnknown_810A350
thumb_func_end sub_809095C
- thumb_func_start LoadItemParameters
-LoadItemParameters:
- push {lr}
- ldr r1, _080909B8
- ldr r0, _080909BC
- str r0, [r1]
- ldr r0, _080909C0
- ldr r1, _080909C4
- bl OpenFileAndGetFileDataPtr
- ldr r1, _080909C8
- str r0, [r1]
- ldr r1, _080909CC
- ldr r0, [r0, 0x4]
- str r0, [r1]
- pop {r0}
- bx r0
- .align 2, 0
-_080909B8: .4byte gUnknown_203B460
-_080909BC: .4byte gUnknown_20389A8
-_080909C0: .4byte gUnknown_8109764
-_080909C4: .4byte gSystemFileArchive
-_080909C8: .4byte gItemParametersFile
-_080909CC: .4byte gItemParametersFile + 4
- thumb_func_end LoadItemParameters
-
- thumb_func_start sub_80909D0
-sub_80909D0:
- ldr r0, _080909D4
- bx lr
- .align 2, 0
-_080909D4: .4byte gUnknown_20389A8
- thumb_func_end sub_80909D0
-
- thumb_func_start sub_80909D8
-sub_80909D8:
- push {r4,lr}
- movs r4, 0
- ldr r3, _08090A30
- movs r2, 0
-_080909E0:
- ldr r0, [r3]
- lsls r1, r4, 2
- adds r0, r1
- strb r2, [r0]
- adds r4, 0x1
- cmp r4, 0x13
- ble _080909E0
- movs r4, 0
- ldr r3, _08090A30
- movs r2, 0
-_080909F4:
- ldr r0, [r3]
- lsls r1, r4, 1
- adds r0, 0x50
- adds r0, r1
- strh r2, [r0]
- adds r4, 0x1
- cmp r4, 0xEF
- ble _080909F4
- movs r4, 0
-_08090A06:
- lsls r0, r4, 24
- lsrs r0, 24
- bl sub_8091840
- adds r4, 0x1
- cmp r4, 0x7
- ble _08090A06
- ldr r0, _08090A30
- ldr r2, [r0]
- movs r1, 0x98
- lsls r1, 2
- adds r0, r2, r1
- movs r1, 0
- str r1, [r0]
- movs r3, 0x99
- lsls r3, 2
- adds r0, r2, r3
- str r1, [r0]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08090A30: .4byte gUnknown_203B460
- thumb_func_end sub_80909D8
-
- thumb_func_start sub_8090A34
-sub_8090A34:
- push {r4,r5,lr}
- movs r4, 0
- ldr r0, _08090A5C
- movs r5, 0x1
- ldr r2, [r0]
- movs r3, 0x13
-_08090A40:
- ldrb r1, [r2]
- adds r0, r5, 0
- ands r0, r1
- cmp r0, 0
- beq _08090A4C
- adds r4, 0x1
-_08090A4C:
- adds r2, 0x4
- subs r3, 0x1
- cmp r3, 0
- bge _08090A40
- adds r0, r4, 0
- pop {r4,r5}
- pop {r1}
- bx r1
- .align 2, 0
-_08090A5C: .4byte gUnknown_203B460
- thumb_func_end sub_8090A34
-
- thumb_func_start sub_8090A60
-sub_8090A60:
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- adds r0, r4, 0
- bl sub_8090BD0
- lsls r0, 24
- cmp r0, 0
- beq _08090A84
- adds r0, r4, 0
- bl sub_8090BD0
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _08090A84
- movs r0, 0
- b _08090A86
-_08090A84:
- movs r0, 0x1
-_08090A86:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_8090A60
-
- thumb_func_start sub_8090A8C
-sub_8090A8C:
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- adds r6, r0, 0
- lsls r1, 24
- lsrs r5, r1, 24
- lsls r2, 24
- lsrs r2, 24
- mov r8, r2
- cmp r5, 0
- beq _08090AF8
- movs r7, 0x1
- strb r7, [r6]
- strb r5, [r6, 0x2]
- adds r0, r5, 0
- bl sub_8090A60
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0
- beq _08090AD4
- adds r0, r5, 0
- movs r1, 0
- bl sub_8090D80
- adds r4, r0, 0
- adds r0, r5, 0
- movs r1, 0x1
- bl sub_8090D80
- adds r1, r0, 0
- adds r0, r4, 0
- bl RandomRange
- strb r0, [r6, 0x1]
- b _08090AE8
-_08090AD4:
- adds r0, r5, 0
- bl sub_8090BD0
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x6
- bne _08090AE6
- strb r7, [r6, 0x1]
- b _08090AE8
-_08090AE6:
- strb r4, [r6, 0x1]
-_08090AE8:
- mov r0, r8
- cmp r0, 0
- beq _08090AFE
- ldrb r1, [r6]
- movs r0, 0x8
- orrs r0, r1
- strb r0, [r6]
- b _08090AFE
-_08090AF8:
- strb r5, [r6]
- strb r5, [r6, 0x2]
- strb r5, [r6, 0x1]
-_08090AFE:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_8090A8C
-
- thumb_func_start sub_8090B08
-sub_8090B08:
- push {r4-r6,lr}
- adds r6, r0, 0
- lsls r1, 24
- lsrs r5, r1, 24
- cmp r5, 0
- beq _08090B5A
- strb r5, [r6]
- adds r0, r5, 0
- bl sub_8090A60
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0
- beq _08090B42
- adds r0, r5, 0
- movs r1, 0
- bl sub_8090D80
- adds r4, r0, 0
- adds r0, r5, 0
- movs r1, 0x1
- bl sub_8090D80
- adds r1, r0, 0
- adds r0, r4, 0
- bl RandomRange
- strb r0, [r6, 0x1]
- b _08090B5E
-_08090B42:
- adds r0, r5, 0
- bl sub_8090BD0
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x6
- bne _08090B56
- movs r0, 0x1
- strb r0, [r6, 0x1]
- b _08090B5E
-_08090B56:
- strb r4, [r6, 0x1]
- b _08090B5E
-_08090B5A:
- strb r5, [r6]
- strb r5, [r6, 0x1]
-_08090B5E:
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_8090B08
-
- thumb_func_start sub_8090B64
-sub_8090B64:
- push {r4-r6,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- ldrb r1, [r5]
- adds r0, r1, 0
- cmp r0, 0
- beq _08090BA4
- movs r0, 0x1
- strb r0, [r4]
- strb r1, [r4, 0x2]
- ldrb r0, [r4, 0x2]
- bl sub_8090A60
- lsls r0, 24
- lsrs r6, r0, 24
- cmp r6, 0
- bne _08090B9A
- ldrb r0, [r4, 0x2]
- bl sub_8090BD0
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x6
- beq _08090B9A
- ldrb r0, [r4, 0x2]
- cmp r0, 0x7C
- bne _08090BA0
-_08090B9A:
- ldrb r0, [r5, 0x1]
- strb r0, [r4, 0x1]
- b _08090BAA
-_08090BA0:
- strb r6, [r4, 0x1]
- b _08090BAA
-_08090BA4:
- strb r0, [r4, 0x2]
- strb r0, [r4, 0x1]
- strb r0, [r4]
-_08090BAA:
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_8090B64
-
- thumb_func_start sub_8090BB0
-sub_8090BB0:
- push {lr}
- adds r3, r0, 0
- ldrb r0, [r1]
- movs r2, 0x1
- ands r2, r0
- cmp r2, 0
- beq _08090BC8
- ldrb r0, [r1, 0x2]
- strb r0, [r3]
- ldrb r0, [r1, 0x1]
- strb r0, [r3, 0x1]
- b _08090BCA
-_08090BC8:
- strb r2, [r3]
-_08090BCA:
- pop {r0}
- bx r0
- thumb_func_end sub_8090BB0
-
- thumb_func_start sub_8090BD0
-sub_8090BD0:
- lsls r0, 24
- ldr r1, _08090BE0
- ldr r1, [r1]
- lsrs r0, 19
- adds r0, r1
- ldrb r0, [r0, 0xC]
- bx lr
- .align 2, 0
-_08090BE0: .4byte gItemParametersFile + 4
- thumb_func_end sub_8090BD0
-
- thumb_func_start sub_8090BE4
-sub_8090BE4:
- push {r4,lr}
- adds r4, r0, 0
- ldrb r0, [r4, 0x2]
- cmp r0, 0x69
- bne _08090BF6
- adds r0, r4, 0
- bl sub_80915D4
- b _08090C24
-_08090BF6:
- ldrb r0, [r4, 0x2]
- bl sub_8090A60
- lsls r0, 24
- cmp r0, 0
- bne _08090C14
- ldrb r0, [r4, 0x2]
- ldr r1, _08090C10
- ldr r1, [r1]
- lsls r0, 5
- adds r0, r1
- ldr r0, [r0, 0x4]
- b _08090C24
- .align 2, 0
-_08090C10: .4byte gItemParametersFile + 4
-_08090C14:
- ldrb r0, [r4, 0x2]
- ldr r1, _08090C2C
- ldr r1, [r1]
- lsls r0, 5
- adds r0, r1
- ldrb r1, [r4, 0x1]
- ldr r0, [r0, 0x4]
- muls r0, r1
-_08090C24:
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_08090C2C: .4byte gItemParametersFile + 4
- thumb_func_end sub_8090BE4
-
- thumb_func_start sub_8090C30
-sub_8090C30:
- push {r4,lr}
- adds r4, r0, 0
- ldrb r0, [r4, 0x2]
- cmp r0, 0x69
- bne _08090C42
- adds r0, r4, 0
- bl sub_80915D4
- b _08090C70
-_08090C42:
- ldrb r0, [r4, 0x2]
- bl sub_8090A60
- lsls r0, 24
- cmp r0, 0
- bne _08090C60
- ldrb r0, [r4, 0x2]
- ldr r1, _08090C5C
- ldr r1, [r1]
- lsls r0, 5
- adds r0, r1
- ldr r0, [r0, 0x8]
- b _08090C70
- .align 2, 0
-_08090C5C: .4byte gItemParametersFile + 4
-_08090C60:
- ldrb r0, [r4, 0x2]
- ldr r1, _08090C78
- ldr r1, [r1]
- lsls r0, 5
- adds r0, r1
- ldrb r1, [r4, 0x1]
- ldr r0, [r0, 0x8]
- muls r0, r1
-_08090C70:
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_08090C78: .4byte gItemParametersFile + 4
- thumb_func_end sub_8090C30
-
- thumb_func_start sub_8090C7C
-sub_8090C7C:
- push {r4,lr}
- adds r4, r0, 0
- ldrb r0, [r4, 0x2]
- bl sub_80914E4
- lsls r0, 24
- cmp r0, 0
- bne _08090C90
- movs r0, 0
- b _08090CC0
-_08090C90:
- ldrb r0, [r4, 0x2]
- bl sub_8090A60
- lsls r0, 24
- cmp r0, 0
- bne _08090CB0
- ldrb r0, [r4, 0x2]
- ldr r1, _08090CAC
- ldr r1, [r1]
- lsls r0, 5
- adds r0, r1
- ldr r0, [r0, 0x4]
- b _08090CC0
- .align 2, 0
-_08090CAC: .4byte gItemParametersFile + 4
-_08090CB0:
- ldrb r0, [r4, 0x2]
- ldr r1, _08090CC8
- ldr r1, [r1]
- lsls r0, 5
- adds r0, r1
- ldrb r1, [r4, 0x1]
- ldr r0, [r0, 0x4]
- muls r0, r1
-_08090CC0:
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_08090CC8: .4byte gItemParametersFile + 4
- thumb_func_end sub_8090C7C
-
- thumb_func_start sub_8090CCC
-sub_8090CCC:
- push {r4,lr}
- adds r4, r0, 0
- ldrb r0, [r4, 0x2]
- bl sub_80914E4
- lsls r0, 24
- cmp r0, 0
- bne _08090CE0
- movs r0, 0
- b _08090D10
-_08090CE0:
- ldrb r0, [r4, 0x2]
- bl sub_8090A60
- lsls r0, 24
- cmp r0, 0
- bne _08090D00
- ldrb r0, [r4, 0x2]
- ldr r1, _08090CFC
- ldr r1, [r1]
- lsls r0, 5
- adds r0, r1
- ldr r0, [r0, 0x8]
- b _08090D10
- .align 2, 0
-_08090CFC: .4byte gItemParametersFile + 4
-_08090D00:
- ldrb r0, [r4, 0x2]
- ldr r1, _08090D18
- ldr r1, [r1]
- lsls r0, 5
- adds r0, r1
- ldrb r1, [r4, 0x1]
- ldr r0, [r0, 0x8]
- muls r0, r1
-_08090D10:
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_08090D18: .4byte gItemParametersFile + 4
- thumb_func_end sub_8090CCC
-
- thumb_func_start sub_8090D1C
-sub_8090D1C:
- lsls r0, 24
- ldr r1, _08090D2C
- ldr r1, [r1]
- lsrs r0, 19
- adds r0, r1
- ldr r0, [r0, 0x4]
- bx lr
- .align 2, 0
-_08090D2C: .4byte gItemParametersFile + 4
- thumb_func_end sub_8090D1C
-
- thumb_func_start sub_8090D30
-sub_8090D30:
- lsls r0, 24
- ldr r1, _08090D40
- ldr r1, [r1]
- lsrs r0, 19
- adds r0, r1
- ldr r0, [r0, 0x8]
- bx lr
- .align 2, 0
-_08090D40: .4byte gItemParametersFile + 4
- thumb_func_end sub_8090D30
-
- thumb_func_start sub_8090D44
-sub_8090D44:
- lsls r0, 24
- ldr r1, _08090D54
- ldr r1, [r1]
- lsrs r0, 19
- adds r0, r1
- ldrb r0, [r0, 0x1A]
- bx lr
- .align 2, 0
-_08090D54: .4byte gItemParametersFile + 4
- thumb_func_end sub_8090D44
-
- thumb_func_start sub_8090D58
-sub_8090D58:
- lsls r0, 24
- ldr r1, _08090D68
- ldr r1, [r1]
- lsrs r0, 19
- adds r0, r1
- ldrb r0, [r0, 0x1D]
- bx lr
- .align 2, 0
-_08090D68: .4byte gItemParametersFile + 4
- thumb_func_end sub_8090D58
-
- thumb_func_start sub_8090D6C
-sub_8090D6C:
- lsls r0, 24
- ldr r1, _08090D7C
- ldr r1, [r1]
- lsrs r0, 19
- adds r0, r1
- ldrb r0, [r0, 0x1E]
- bx lr
- .align 2, 0
-_08090D7C: .4byte gItemParametersFile + 4
- thumb_func_end sub_8090D6C
-
- thumb_func_start sub_8090D80
-sub_8090D80:
- lsls r0, 24
- ldr r2, _08090D94
- ldr r2, [r2]
- lsrs r0, 19
- adds r0, r2
- adds r0, 0x1B
- adds r0, r1
- ldrb r0, [r0]
- bx lr
- .align 2, 0
-_08090D94: .4byte gItemParametersFile + 4
- thumb_func_end sub_8090D80
-
- thumb_func_start sub_8090D98
-sub_8090D98:
- lsls r0, 24
- ldr r1, _08090DA8
- ldr r1, [r1]
- lsrs r0, 19
- adds r0, r1
- ldr r0, [r0, 0x10]
- bx lr
- .align 2, 0
-_08090DA8: .4byte gItemParametersFile + 4
- thumb_func_end sub_8090D98
-
- thumb_func_start sub_8090DAC
-sub_8090DAC:
- lsls r0, 24
- ldr r2, _08090DC0
- ldr r2, [r2]
- lsrs r0, 19
- adds r0, r2
- adds r0, 0x14
- adds r0, r1
- ldrb r0, [r0]
- bx lr
- .align 2, 0
-_08090DC0: .4byte gItemParametersFile + 4
- thumb_func_end sub_8090DAC
-
- thumb_func_start sub_8090DC4
-sub_8090DC4:
- push {r4-r6,lr}
- mov r6, r8
- push {r6}
- sub sp, 0x54
- adds r6, r0, 0
- adds r4, r1, 0
- mov r8, r2
- lsls r4, 24
- lsrs r4, 24
- ldr r0, _08090E10
- ldr r1, [r0]
- lsls r0, r4, 5
- adds r0, r1
- ldr r1, [r0]
- mov r0, sp
- movs r2, 0x50
- bl strncpy
- add r5, sp, 0x50
- adds r0, r5, 0
- adds r1, r4, 0
- movs r2, 0
- bl sub_8090A8C
- movs r0, 0x1
- strb r0, [r5, 0x1]
- adds r0, r6, 0
- mov r1, sp
- adds r2, r5, 0
- mov r3, r8
- bl sub_8090F58
- add sp, 0x54
- pop {r3}
- mov r8, r3
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08090E10: .4byte gItemParametersFile + 4
- thumb_func_end sub_8090DC4
-
- thumb_func_start sub_8090E14
-sub_8090E14:
- push {r4-r7,lr}
- sub sp, 0x50
- adds r6, r0, 0
- adds r5, r1, 0
- adds r7, r2, 0
- movs r4, 0
- cmp r7, 0
- beq _08090E2C
- ldrb r1, [r7, 0x8]
- negs r0, r1
- orrs r0, r1
- lsrs r4, r0, 31
-_08090E2C:
- ldrb r0, [r5, 0x2]
- bl sub_8090BD0
- lsls r0, 24
- cmp r0, 0
- bne _08090E3E
- cmp r4, 0
- bne _08090E50
- b _08090E70
-_08090E3E:
- ldrb r0, [r5, 0x2]
- bl sub_8090BD0
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _08090E90
- cmp r4, 0
- beq _08090E70
-_08090E50:
- ldr r1, _08090E68
- ldrb r0, [r5, 0x2]
- ldr r2, _08090E6C
- ldr r2, [r2]
- lsls r0, 5
- adds r0, r2
- ldr r2, [r0]
- ldrb r3, [r5, 0x1]
- mov r0, sp
- bl sub_800D158
- b _08090EC4
- .align 2, 0
-_08090E68: .4byte gUnknown_8109770
-_08090E6C: .4byte gItemParametersFile + 4
-_08090E70:
- ldr r1, _08090E88
- ldrb r0, [r5, 0x2]
- ldr r2, _08090E8C
- ldr r2, [r2]
- lsls r0, 5
- adds r0, r2
- ldr r2, [r0]
- mov r0, sp
- bl sub_800D158
- b _08090EC4
- .align 2, 0
-_08090E88: .4byte gUnknown_8109778
-_08090E8C: .4byte gItemParametersFile + 4
-_08090E90:
- ldrb r0, [r5, 0x2]
- cmp r0, 0x69
- bne _08090EB0
- ldr r4, _08090EAC
- adds r0, r5, 0
- bl sub_80915D4
- adds r2, r0, 0
- mov r0, sp
- adds r1, r4, 0
- bl sub_800D158
- b _08090EC4
- .align 2, 0
-_08090EAC: .4byte gUnknown_810977C
-_08090EB0:
- ldrb r0, [r5, 0x2]
- ldr r1, _08090F2C
- ldr r1, [r1]
- lsls r0, 5
- adds r0, r1
- ldr r1, [r0]
- mov r0, sp
- movs r2, 0x50
- bl strncpy
-_08090EC4:
- ldrb r1, [r5]
- movs r0, 0x8
- ands r0, r1
- cmp r0, 0
- beq _08090EE2
- ldr r1, _08090F30
- adds r0, r6, 0
- mov r2, sp
- bl sub_800D158
- mov r0, sp
- adds r1, r6, 0
- movs r2, 0x50
- bl strncpy
-_08090EE2:
- cmp r7, 0
- beq _08090F38
- ldrb r0, [r7, 0x4]
- cmp r0, 0
- beq _08090F0A
- ldrb r1, [r5]
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- beq _08090F0A
- ldr r1, _08090F34
- adds r0, r6, 0
- mov r2, sp
- bl sub_800D158
- mov r0, sp
- adds r1, r6, 0
- movs r2, 0x50
- bl strncpy
-_08090F0A:
- ldr r0, [r7]
- cmp r0, 0x1
- beq _08090F14
- cmp r0, 0x3
- bne _08090F44
-_08090F14:
- ldrb r1, [r5]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _08090F38
- adds r0, r6, 0
- mov r1, sp
- adds r2, r5, 0
- adds r3, r7, 0
- bl sub_8090F58
- b _08090F50
- .align 2, 0
-_08090F2C: .4byte gItemParametersFile + 4
-_08090F30: .4byte gUnknown_8109784
-_08090F34: .4byte gUnknown_810978C
-_08090F38:
- adds r0, r6, 0
- mov r1, sp
- movs r2, 0x50
- bl strncpy
- b _08090F50
-_08090F44:
- adds r0, r6, 0
- mov r1, sp
- adds r2, r5, 0
- adds r3, r7, 0
- bl sub_8090F58
-_08090F50:
- add sp, 0x50
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_8090E14
-
- thumb_func_start sub_8090F58
-sub_8090F58:
- push {r4-r6,lr}
- sub sp, 0x2C
- adds r5, r0, 0
- adds r6, r1, 0
- adds r0, r2, 0
- adds r4, r3, 0
- cmp r4, 0
- bne _08090F6C
- adds r0, r5, 0
- b _08090F94
-_08090F6C:
- ldr r1, [r4]
- cmp r1, 0x1
- bcc _08090F8A
- cmp r1, 0x2
- bhi _08090F7E
- bl sub_8090BE4
- adds r1, r0, 0
- b _08090F8C
-_08090F7E:
- cmp r1, 0x4
- bhi _08090F8A
- bl sub_8090C30
- adds r1, r0, 0
- b _08090F8C
-_08090F8A:
- movs r1, 0
-_08090F8C:
- cmp r1, 0
- bne _08090F9C
- adds r0, r5, 0
- adds r1, r6, 0
-_08090F94:
- movs r2, 0x50
- bl strncpy
- b _08090FDE
-_08090F9C:
- movs r2, 0x6
- ldrsh r0, [r4, r2]
- cmp r0, 0
- beq _08090FC8
- adds r0, r1, 0
- add r1, sp, 0x4
- movs r2, 0x1
- bl sub_8090FEC
- ldr r1, _08090FC4
- movs r0, 0x6
- ldrsh r3, [r4, r0]
- add r2, sp, 0x4
- str r2, [sp]
- adds r0, r5, 0
- adds r2, r6, 0
- bl sub_800D158
- b _08090FDE
- .align 2, 0
-_08090FC4: .4byte gUnknown_8109794
-_08090FC8:
- adds r0, r1, 0
- add r1, sp, 0x4
- movs r2, 0
- bl sub_8090FEC
- ldr r1, _08090FE8
- adds r0, r5, 0
- adds r2, r6, 0
- add r3, sp, 0x4
- bl sub_800D158
-_08090FDE:
- add sp, 0x2C
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08090FE8: .4byte gUnknown_81097A4
- thumb_func_end sub_8090F58
-
- thumb_func_start sub_8090FEC
-sub_8090FEC:
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- adds r5, r0, 0
- adds r4, r1, 0
- lsls r2, 24
- lsrs r2, 24
- mov r10, r2
- movs r0, 0
- mov r8, r0
- movs r6, 0
- movs r2, 0
- ldr r1, _08091050
- mov r9, r1
- mov r12, r9
-_0809100E:
- movs r1, 0
- lsls r3, r2, 2
- ldr r7, _08091054
- adds r0, r3, r7
- ldr r0, [r0]
- adds r7, r2, 0x1
- cmp r5, r0
- blt _0809102C
- ldr r2, _08091054
-_08091020:
- adds r0, r3, r2
- ldr r0, [r0]
- subs r5, r0
- adds r1, 0x1
- cmp r5, r0
- bge _08091020
-_0809102C:
- cmp r1, 0x9
- ble _08091032
- movs r1, 0x9
-_08091032:
- cmp r1, 0
- beq _0809105C
- movs r0, 0x1
- mov r8, r0
- lsls r1, 1
- mov r2, r12
- adds r0, r1, r2
- ldrb r0, [r0]
- strb r0, [r4]
- adds r4, 0x1
- ldr r0, _08091058
- adds r1, r0
- ldrb r0, [r1]
- b _0809106C
- .align 2, 0
-_08091050: .4byte gUnknown_81097C4
-_08091054: .4byte gUnknown_81097B0
-_08091058: .4byte gUnknown_81097C5
-_0809105C:
- mov r1, r8
- cmp r1, 0
- beq _08091074
- mov r2, r12
- ldrb r0, [r2]
- strb r0, [r4]
- adds r4, 0x1
- ldrb r0, [r2, 0x1]
-_0809106C:
- strb r0, [r4]
- adds r4, 0x1
- adds r6, 0x1
- b _08091080
-_08091074:
- mov r0, r10
- cmp r0, 0
- beq _08091080
- movs r0, 0x60
- strb r0, [r4]
- adds r4, 0x1
-_08091080:
- adds r2, r7, 0
- cmp r2, 0x4
- ble _0809100E
- lsls r1, r5, 1
- mov r2, r9
- adds r0, r1, r2
- ldrb r0, [r0]
- strb r0, [r4]
- adds r4, 0x1
- mov r0, r9
- adds r0, 0x1
- adds r1, r0
- ldrb r0, [r1]
- strb r0, [r4]
- adds r6, 0x1
- movs r0, 0
- strb r0, [r4, 0x1]
- adds r0, r6, 0
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_8090FEC
-
- thumb_func_start sub_80910B4
-sub_80910B4:
- push {r4-r7,lr}
- movs r2, 0
- movs r4, 0
- ldr r7, _080910C0
- movs r3, 0
- b _080910DA
- .align 2, 0
-_080910C0: .4byte gUnknown_203B460
-_080910C4:
- cmp r2, r4
- ble _080910D4
- ldr r0, [r7]
- lsls r1, r4, 2
- adds r1, r0, r1
- adds r0, r3
- ldr r0, [r0]
- str r0, [r1]
-_080910D4:
- adds r3, 0x4
- adds r2, 0x1
- adds r4, 0x1
-_080910DA:
- cmp r2, 0x13
- bgt _08091106
- ldr r0, [r7]
- adds r0, r3, r0
- ldrb r1, [r0]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- bne _08091106
- ldr r5, _0809112C
- movs r6, 0x1
-_080910F0:
- adds r3, 0x4
- adds r2, 0x1
- cmp r2, 0x13
- bgt _08091106
- ldr r0, [r5]
- adds r0, r3, r0
- ldrb r1, [r0]
- adds r0, r6, 0
- ands r0, r1
- cmp r0, 0
- beq _080910F0
-_08091106:
- cmp r2, 0x14
- bne _080910C4
- cmp r4, 0x13
- bgt _08091124
- ldr r3, _0809112C
- movs r2, 0
-_08091112:
- lsls r1, r4, 2
- ldr r0, [r3]
- adds r1, r0
- strb r2, [r1, 0x2]
- strb r2, [r1, 0x1]
- strb r2, [r1]
- adds r4, 0x1
- cmp r4, 0x13
- ble _08091112
-_08091124:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0809112C: .4byte gUnknown_203B460
- thumb_func_end sub_80910B4
-
- thumb_func_start sub_8091130
-sub_8091130:
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- movs r3, 0
- ldr r0, _08091154
- ldr r2, [r0]
- movs r5, 0x1
-_0809113E:
- ldrb r1, [r2]
- adds r0, r5, 0
- ands r0, r1
- cmp r0, 0
- beq _08091158
- ldrb r0, [r2, 0x2]
- cmp r0, r4
- bne _08091158
- adds r0, r3, 0
- b _08091164
- .align 2, 0
-_08091154: .4byte gUnknown_203B460
-_08091158:
- adds r2, 0x4
- adds r3, 0x1
- cmp r3, 0x13
- ble _0809113E
- movs r0, 0x1
- negs r0, r0
-_08091164:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8091130
-
- thumb_func_start sub_809116C
-sub_809116C:
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- movs r4, 0
- ldr r0, _080911A0
- ldr r2, [r0]
- movs r6, 0x1
- movs r3, 0x13
-_0809117C:
- ldrb r1, [r2]
- adds r0, r6, 0
- ands r0, r1
- cmp r0, 0
- beq _0809118E
- ldrb r0, [r2, 0x2]
- cmp r0, r5
- bne _0809118E
- adds r4, 0x1
-_0809118E:
- adds r2, 0x4
- subs r3, 0x1
- cmp r3, 0
- bge _0809117C
- adds r0, r4, 0
- pop {r4-r6}
- pop {r1}
- bx r1
- .align 2, 0
-_080911A0: .4byte gUnknown_203B460
- thumb_func_end sub_809116C
-
- thumb_func_start sub_80911A4
-sub_80911A4:
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- adds r0, r5, 0
- bl sub_809116C
- adds r4, r0, 0
- movs r3, 0
- ldr r0, _080911F4
- ldr r7, [r0]
- movs r6, 0x1
-_080911BA:
- movs r0, 0x58
- muls r0, r3
- adds r2, r7, r0
- ldrh r1, [r2]
- adds r0, r6, 0
- ands r0, r1
- cmp r0, 0
- beq _080911E2
- lsrs r0, r1, 1
- ands r0, r6
- cmp r0, 0
- beq _080911E2
- adds r0, r2, 0
- adds r0, 0x28
- ldrb r0, [r0]
- cmp r0, 0
- beq _080911E2
- cmp r0, r5
- bne _080911E2
- adds r4, 0x1
-_080911E2:
- adds r3, 0x1
- movs r0, 0xCE
- lsls r0, 1
- cmp r3, r0
- ble _080911BA
- adds r0, r4, 0
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_080911F4: .4byte gUnknown_203B45C
- thumb_func_end sub_80911A4
-
- thumb_func_start sub_80911F8
-sub_80911F8:
- push {r4,r5,lr}
- adds r2, r0, 0
- ldr r4, _08091230
- cmp r2, 0x12
- bgt _0809121C
- adds r5, r4, 0
- lsls r0, r2, 2
- adds r3, r0, 0x4
-_08091208:
- ldr r0, [r5]
- lsls r1, r2, 2
- adds r1, r0, r1
- adds r0, r3
- ldr r0, [r0]
- str r0, [r1]
- adds r3, 0x4
- adds r2, 0x1
- cmp r2, 0x12
- ble _08091208
-_0809121C:
- ldr r0, [r4]
- adds r0, 0x4E
- movs r1, 0
- strb r1, [r0]
- ldr r0, [r4]
- adds r0, 0x4C
- strb r1, [r0]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08091230: .4byte gUnknown_203B460
- thumb_func_end sub_80911F8
-
- thumb_func_start sub_8091234
-sub_8091234:
- ldr r3, _08091248
- ldr r1, [r3]
- lsls r0, 2
- adds r1, r0
- movs r2, 0
- strb r2, [r1, 0x2]
- ldr r1, [r3]
- adds r1, r0
- strb r2, [r1]
- bx lr
- .align 2, 0
-_08091248: .4byte gUnknown_203B460
- thumb_func_end sub_8091234
-
- thumb_func_start sub_809124C
-sub_809124C:
- push {lr}
- sub sp, 0x4
- adds r3, r0, 0
- adds r2, r1, 0
- lsls r3, 24
- lsrs r3, 24
- lsls r2, 24
- lsrs r2, 24
- mov r0, sp
- adds r1, r3, 0
- bl sub_8090A8C
- mov r0, sp
- bl sub_8091290
- lsls r0, 24
- lsrs r0, 24
- add sp, 0x4
- pop {r1}
- bx r1
- thumb_func_end sub_809124C
-
- thumb_func_start sub_8091274
-sub_8091274:
- push {lr}
- sub sp, 0x4
- adds r1, r0, 0
- mov r0, sp
- bl sub_8090B64
- mov r0, sp
- bl sub_8091290
- lsls r0, 24
- lsrs r0, 24
- add sp, 0x4
- pop {r1}
- bx r1
- thumb_func_end sub_8091274
-
- thumb_func_start sub_8091290
-sub_8091290:
- push {r4-r6,lr}
- adds r4, r0, 0
- movs r3, 0
- ldr r5, _080912B4
- movs r6, 0x1
-_0809129A:
- lsls r1, r3, 2
- ldr r0, [r5]
- adds r2, r1, r0
- ldrb r1, [r2]
- adds r0, r6, 0
- ands r0, r1
- cmp r0, 0
- bne _080912B8
- ldr r0, [r4]
- str r0, [r2]
- movs r0, 0
- b _080912C0
- .align 2, 0
-_080912B4: .4byte gUnknown_203B460
-_080912B8:
- adds r3, 0x1
- cmp r3, 0x13
- ble _0809129A
- movs r0, 0x1
-_080912C0:
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end sub_8091290
-
- thumb_func_start sub_80912C8
-sub_80912C8:
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- movs r5, 0
- movs r6, 0
-_080912D6:
- ldr r0, _0809139C
- lsls r1, r5, 2
- ldr r0, [r0]
- adds r4, r0, r1
- ldrb r1, [r4]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _080912FE
- ldrb r0, [r4, 0x2]
- cmp r0, 0x69
- bne _080912FE
- adds r0, r4, 0
- bl sub_80915D4
- bl sub_80913A0
- strb r6, [r4, 0x2]
- strb r6, [r4, 0x1]
- strb r6, [r4]
-_080912FE:
- adds r5, 0x1
- cmp r5, 0x13
- ble _080912D6
- bl sub_80910B4
- movs r5, 0
-_0809130A:
- movs r0, 0x1
- negs r0, r0
- mov r9, r0
- lsls r2, r5, 2
- ldr r1, _0809139C
- mov r8, r1
- ldr r0, [r1]
- adds r3, r2, r0
- ldrb r1, [r3]
- movs r0, 0x1
- ands r0, r1
- mov r10, r2
- adds r7, r5, 0x1
- cmp r0, 0
- beq _08091382
- ldrb r0, [r3, 0x2]
- bl sub_8090D44
- adds r6, r0, 0
- adds r4, r7, 0
- cmp r7, 0x13
- bgt _08091368
-_08091336:
- lsls r5, r4, 2
- mov r1, r8
- ldr r0, [r1]
- adds r2, r5, r0
- ldrb r1, [r2]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _08091362
- ldrb r0, [r2, 0x2]
- bl sub_8090D44
- cmp r6, r0
- ble _08091362
- mov r9, r4
- mov r1, r8
- ldr r0, [r1]
- adds r0, r5
- ldrb r0, [r0, 0x2]
- bl sub_8090D44
- adds r6, r0, 0
-_08091362:
- adds r4, 0x1
- cmp r4, 0x13
- ble _08091336
-_08091368:
- mov r4, r9
- cmp r4, 0
- blt _08091382
- ldr r0, _0809139C
- ldr r1, [r0]
- mov r0, r10
- adds r2, r1, r0
- ldr r3, [r2]
- lsls r0, r4, 2
- adds r1, r0
- ldr r0, [r1]
- str r0, [r2]
- str r3, [r1]
-_08091382:
- adds r5, r7, 0
- cmp r5, 0x13
- ble _0809130A
- bl sub_80910B4
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0809139C: .4byte gUnknown_203B460
- thumb_func_end sub_80912C8
-
- thumb_func_start sub_80913A0
-sub_80913A0:
- push {lr}
- ldr r1, _080913C4
- ldr r1, [r1]
- movs r3, 0x98
- lsls r3, 2
- adds r2, r1, r3
- ldr r1, [r2]
- adds r1, r0
- str r1, [r2]
- ldr r0, _080913C8
- cmp r1, r0
- bgt _080913BE
- cmp r1, 0
- bge _080913C0
- movs r0, 0
-_080913BE:
- str r0, [r2]
-_080913C0:
- pop {r0}
- bx r0
- .align 2, 0
-_080913C4: .4byte gUnknown_203B460
-_080913C8: .4byte 0x0001869f
- thumb_func_end sub_80913A0
-
- thumb_func_start sub_80913CC
-sub_80913CC:
- lsls r0, 24
- ldr r1, _080913DC
- ldr r1, [r1]
- lsrs r0, 19
- adds r0, r1
- ldrh r0, [r0, 0x18]
- bx lr
- .align 2, 0
-_080913DC: .4byte gItemParametersFile + 4
- thumb_func_end sub_80913CC
-
- thumb_func_start sub_80913E0
-sub_80913E0:
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x5C
- adds r6, r0, 0
- adds r5, r1, 0
- mov r8, r2
- ldrb r0, [r6, 0x2]
- bl sub_8090D98
- ldrb r1, [r6, 0x2]
- add r0, sp, 0x4
- movs r2, 0
- bl sub_8090DC4
- ldrb r0, [r6, 0x2]
- cmp r0, 0x7C
- bne _08091414
- ldr r0, _080914D4
- ldrb r1, [r6, 0x1]
- adds r1, 0x7D
- lsls r1, 24
- lsrs r1, 24
- movs r2, 0
- bl sub_8090DC4
-_08091414:
- adds r0, r5, 0
- bl sub_80073B8
- movs r7, 0
- str r7, [sp]
- movs r0, 0x10
- movs r1, 0
- add r2, sp, 0x4
- adds r3, r5, 0
- bl sub_8014FF0
- ldrb r0, [r6, 0x2]
- bl sub_8090D98
- adds r2, r0, 0
- str r7, [sp]
- movs r0, 0x8
- movs r1, 0x18
- adds r3, r5, 0
- bl sub_8014FF0
- ldrb r0, [r6, 0x2]
- bl sub_8090BD0
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x5
- bne _080914B6
- add r4, sp, 0x54
- ldrb r0, [r6, 0x2]
- bl sub_80913CC
- adds r1, r0, 0
- lsls r1, 16
- lsrs r1, 16
- adds r0, r4, 0
- bl sub_8092A88
- movs r0, 0x7
- str r0, [sp]
- adds r0, r5, 0
- movs r1, 0x4
- movs r2, 0x52
- movs r3, 0xC8
- bl sub_80078A4
- ldr r0, _080914D8
- ldr r2, [r0]
- str r7, [sp]
- movs r0, 0x4
- movs r1, 0x54
- adds r3, r5, 0
- bl sub_8014FF0
- adds r0, r4, 0
- bl sub_8092B00
- lsls r0, 24
- lsrs r0, 24
- bl GetUnformattedTypeString
- adds r2, r0, 0
- str r7, [sp]
- movs r0, 0x40
- movs r1, 0x54
- adds r3, r5, 0
- bl sub_8014FF0
- adds r0, r4, 0
- bl sub_8092BF4
- ldr r1, _080914DC
- str r0, [r1]
- ldr r0, _080914E0
- ldr r2, [r0]
- str r7, [sp]
- movs r0, 0x80
- movs r1, 0x54
- adds r3, r5, 0
- bl sub_8014FF0
-_080914B6:
- adds r0, r5, 0
- bl sub_80073E0
- ldrb r0, [r6, 0x2]
- bl sub_8090D98
- mov r1, r8
- bl sub_8097DF0
- add sp, 0x5C
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_080914D4: .4byte gUnknown_202DE58
-_080914D8: .4byte gUnknown_810CF0C
-_080914DC: .4byte gUnknown_202DE30
-_080914E0: .4byte gUnknown_8115970
- thumb_func_end sub_80913E0
-
- thumb_func_start sub_80914E4
-sub_80914E4:
- push {r4,lr}
- lsls r0, 24
- lsrs r0, 24
- adds r4, r0, 0
- cmp r0, 0
- beq _0809151A
- cmp r0, 0x69
- beq _0809151A
- cmp r0, 0x79
- beq _0809151A
- cmp r0, 0x77
- beq _0809151A
- cmp r0, 0x78
- beq _0809151A
- cmp r0, 0x7A
- beq _0809151A
- bl sub_8090D30
- cmp r0, 0
- beq _0809151A
- adds r0, r4, 0
- bl sub_8090D1C
- cmp r0, 0
- beq _0809151A
- movs r0, 0x1
- b _0809151C
-_0809151A:
- movs r0, 0
-_0809151C:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_80914E4
-
- thumb_func_start sub_8091524
-sub_8091524:
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- adds r1, r0, 0
- cmp r0, 0
- beq _0809153C
- cmp r0, 0x69
- beq _0809153C
- cmp r1, 0x7C
- beq _0809153C
- movs r0, 0x1
- b _0809153E
-_0809153C:
- movs r0, 0
-_0809153E:
- pop {r1}
- bx r1
- thumb_func_end sub_8091524
-
- thumb_func_start sub_8091544
-sub_8091544:
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- adds r1, r0, 0
- cmp r0, 0
- beq _08091568
- cmp r0, 0x69
- beq _08091568
- cmp r0, 0x79
- beq _08091568
- cmp r0, 0x77
- beq _08091568
- cmp r0, 0x78
- beq _08091568
- cmp r1, 0x7A
- beq _08091568
- movs r0, 0x1
- b _0809156A
-_08091568:
- movs r0, 0
-_0809156A:
- pop {r1}
- bx r1
- thumb_func_end sub_8091544
-
- thumb_func_start sub_8091570
-sub_8091570:
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- adds r0, r4, 0
- bl sub_8090BD0
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x2
- beq _08091596
- adds r0, r4, 0
- bl sub_8090BD0
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x3
- beq _08091596
- movs r0, 0
- b _08091598
-_08091596:
- movs r0, 0x1
-_08091598:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_8091570
-
- thumb_func_start sub_80915A0
-sub_80915A0:
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- adds r1, r0, 0
- cmp r0, 0xE0
- beq _080915CC
- cmp r0, 0xE1
- beq _080915CC
- cmp r0, 0xE2
- beq _080915CC
- cmp r0, 0xE3
- beq _080915CC
- cmp r0, 0xE4
- beq _080915CC
- cmp r0, 0xE5
- beq _080915CC
- cmp r0, 0xE6
- beq _080915CC
- cmp r1, 0xE7
- beq _080915CC
- movs r0, 0
- b _080915CE
-_080915CC:
- movs r0, 0x1
-_080915CE:
- pop {r1}
- bx r1
- thumb_func_end sub_80915A0
-
- thumb_func_start sub_80915D4
-sub_80915D4:
- ldr r1, _080915E0
- ldrb r0, [r0, 0x1]
- lsls r0, 2
- adds r0, r1
- ldr r0, [r0]
- bx lr
- .align 2, 0
-_080915E0: .4byte gUnknown_810A3F0
- thumb_func_end sub_80915D4
-
- thumb_func_start sub_80915E4
-sub_80915E4:
- ldr r1, _080915F0
- ldrb r0, [r0, 0x1]
- lsls r0, 2
- adds r0, r1
- ldr r0, [r0]
- bx lr
- .align 2, 0
-_080915F0: .4byte gUnknown_810A3F0
- thumb_func_end sub_80915E4
-
- thumb_func_start sub_80915F4
-sub_80915F4:
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- adds r6, r0, 0
- adds r7, r3, 0
- lsls r1, 24
- lsrs r5, r1, 24
- lsls r2, 24
- lsrs r2, 24
- mov r8, r2
- ldr r0, _080916B8
- strh r0, [r7]
- movs r0, 0
- strh r0, [r7, 0x2]
- adds r0, r5, 0
- bl sub_8091764
- lsls r0, 24
- cmp r0, 0
- bne _0809161E
- b _08091756
-_0809161E:
- movs r1, 0x8
- ldrsh r0, [r6, r1]
- movs r1, 0
- bl GetPokemonType
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- movs r2, 0x8
- ldrsh r0, [r6, r2]
- movs r1, 0x1
- bl GetPokemonType
- lsls r0, 24
- lsrs r0, 24
- adds r2, r5, 0
- subs r2, 0x55
- ldr r5, _080916BC
- lsls r2, 1
- lsls r1, r4, 3
- adds r1, r4
- lsls r1, 2
- adds r1, r2, r1
- adds r1, r5
- movs r4, 0
- ldrsh r3, [r1, r4]
- lsls r1, r0, 3
- adds r1, r0
- lsls r1, 2
- adds r2, r1
- adds r2, r5
- movs r1, 0
- ldrsh r0, [r2, r1]
- movs r2, 0x14
- ldrsh r1, [r6, r2]
- adds r3, r0
- ldrh r4, [r6, 0x14]
- adds r3, r4
- strh r3, [r6, 0x14]
- movs r2, 0x14
- ldrsh r0, [r6, r2]
- subs r1, r0, r1
- lsls r3, 16
- cmp r3, 0
- bgt _0809167C
- movs r0, 0x1
- strh r0, [r6, 0x14]
-_0809167C:
- movs r4, 0x14
- ldrsh r0, [r6, r4]
- ldr r2, _080916C0
- cmp r0, r2
- ble _08091688
- strh r2, [r6, 0x14]
-_08091688:
- movs r0, 0
- cmp r1, 0x8
- bgt _0809169C
- movs r0, 0x1
- cmp r1, 0x4
- bgt _0809169C
- movs r0, 0x3
- cmp r1, 0x2
- ble _0809169C
- movs r0, 0x2
-_0809169C:
- strh r0, [r7]
- mov r1, r8
- cmp r1, 0
- bne _08091756
- cmp r0, 0
- bne _080916C4
- movs r0, 0x10
- bl RandomCapped
- cmp r0, 0xA
- bne _080916C4
- movs r0, 0xF
- b _080916D2
- .align 2, 0
-_080916B8: .4byte 0x0000ffff
-_080916BC: .4byte gUnknown_810A580
-_080916C0: .4byte 0x000003e7
-_080916C4:
- movs r0, 0x4
- bl RandomCapped
- ldr r1, _080916EC
- lsls r0, 1
- adds r0, r1
- ldrh r0, [r0]
-_080916D2:
- strh r0, [r7, 0x2]
- ldrh r1, [r7, 0x2]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _080916F6
- ldrb r0, [r6, 0x18]
- cmp r0, 0xFE
- bhi _080916F0
- adds r0, 0x1
- strb r0, [r6, 0x18]
- b _080916F6
- .align 2, 0
-_080916EC: .4byte gUnknown_81097E0
-_080916F0:
- ldr r0, _0809170C
- ands r0, r1
- strh r0, [r7, 0x2]
-_080916F6:
- ldrh r1, [r7, 0x2]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _08091716
- ldrb r0, [r6, 0x19]
- cmp r0, 0xFE
- bhi _08091710
- adds r0, 0x1
- strb r0, [r6, 0x19]
- b _08091716
- .align 2, 0
-_0809170C: .4byte 0x0000fffe
-_08091710:
- ldr r0, _0809172C
- ands r0, r1
- strh r0, [r7, 0x2]
-_08091716:
- ldrh r1, [r7, 0x2]
- movs r0, 0x4
- ands r0, r1
- cmp r0, 0
- beq _08091736
- ldrb r0, [r6, 0x1A]
- cmp r0, 0xFE
- bhi _08091730
- adds r0, 0x1
- strb r0, [r6, 0x1A]
- b _08091736
- .align 2, 0
-_0809172C: .4byte 0x0000fffd
-_08091730:
- ldr r0, _0809174C
- ands r0, r1
- strh r0, [r7, 0x2]
-_08091736:
- ldrh r1, [r7, 0x2]
- movs r0, 0x8
- ands r0, r1
- cmp r0, 0
- beq _08091756
- ldrb r0, [r6, 0x1B]
- cmp r0, 0xFE
- bhi _08091750
- adds r0, 0x1
- strb r0, [r6, 0x1B]
- b _08091756
- .align 2, 0
-_0809174C: .4byte 0x0000fffb
-_08091750:
- ldr r0, _08091760
- ands r0, r1
- strh r0, [r7, 0x2]
-_08091756:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08091760: .4byte 0x0000fff7
- thumb_func_end sub_80915F4
-
- thumb_func_start sub_8091764
-sub_8091764:
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x55
- bls _08091776
- cmp r0, 0x66
- bhi _08091776
- movs r0, 0x1
- b _08091778
-_08091776:
- movs r0, 0
-_08091778:
- pop {r1}
- bx r1
- thumb_func_end sub_8091764
-
- thumb_func_start sub_809177C
-sub_809177C:
- push {r4,lr}
- movs r4, 0
-_08091780:
- lsls r1, r4, 2
- ldr r0, _080917A4
- ldr r0, [r0]
- adds r2, r1, r0
- ldrb r1, [r2]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _080917A8
- ldrb r0, [r2, 0x2]
- bl sub_8091764
- lsls r0, 24
- cmp r0, 0
- beq _080917A8
- movs r0, 0x1
- b _080917B0
- .align 2, 0
-_080917A4: .4byte gUnknown_203B460
-_080917A8:
- adds r4, 0x1
- cmp r4, 0x13
- ble _08091780
- movs r0, 0
-_080917B0:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_809177C
-
- thumb_func_start sub_80917B8
-sub_80917B8:
- push {r4,lr}
- adds r4, r0, 0
- ldrb r0, [r4, 0x2]
- bl sub_8090A60
- lsls r0, 24
- cmp r0, 0
- beq _080917E0
- ldr r2, _080917DC
- ldr r1, [r2]
- ldrb r0, [r4, 0x2]
- lsls r0, 1
- adds r1, 0x50
- adds r1, r0
- ldrh r0, [r1]
- ldrb r3, [r4, 0x1]
- adds r0, r3
- b _080917F0
- .align 2, 0
-_080917DC: .4byte gUnknown_203B460
-_080917E0:
- ldr r2, _0809180C
- ldr r1, [r2]
- ldrb r0, [r4, 0x2]
- lsls r0, 1
- adds r1, 0x50
- adds r1, r0
- ldrh r0, [r1]
- adds r0, 0x1
-_080917F0:
- strh r0, [r1]
- ldr r0, [r2]
- ldrb r1, [r4, 0x2]
- lsls r1, 1
- adds r0, 0x50
- adds r2, r0, r1
- ldrh r0, [r2]
- ldr r1, _08091810
- cmp r0, r1
- bls _08091806
- strh r1, [r2]
-_08091806:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0809180C: .4byte gUnknown_203B460
-_08091810: .4byte 0x000003e7
- thumb_func_end sub_80917B8
-
- thumb_func_start sub_8091814
-sub_8091814:
- push {lr}
- movs r3, 0
- ldr r0, _0809183C
- ldr r0, [r0]
- movs r2, 0x8C
- lsls r2, 2
- adds r1, r0, r2
- movs r2, 0x7
-_08091824:
- ldrb r0, [r1]
- cmp r0, 0
- beq _0809182C
- adds r3, 0x1
-_0809182C:
- adds r1, 0x4
- subs r2, 0x1
- cmp r2, 0
- bge _08091824
- adds r0, r3, 0
- pop {r1}
- bx r1
- .align 2, 0
-_0809183C: .4byte gUnknown_203B460
- thumb_func_end sub_8091814
-
- thumb_func_start sub_8091840
-sub_8091840:
- lsls r0, 24
- ldr r1, _08091858
- lsrs r0, 22
- movs r2, 0x8C
- lsls r2, 2
- adds r0, r2
- ldr r1, [r1]
- adds r1, r0
- movs r0, 0
- strb r0, [r1]
- strb r0, [r1, 0x1]
- bx lr
- .align 2, 0
-_08091858: .4byte gUnknown_203B460
- thumb_func_end sub_8091840
-
- thumb_func_start sub_809185C
-sub_809185C:
- lsls r0, 24
- ldr r1, _08091870
- lsrs r0, 22
- movs r2, 0x8C
- lsls r2, 2
- adds r0, r2
- ldr r1, [r1]
- adds r1, r0
- adds r0, r1, 0
- bx lr
- .align 2, 0
-_08091870: .4byte gUnknown_203B460
- thumb_func_end sub_809185C
-
- thumb_func_start sub_8091874
-sub_8091874:
- push {r4-r7,lr}
- movs r2, 0
- movs r4, 0
- ldr r7, _08091884
- movs r6, 0x8C
- lsls r6, 2
- movs r3, 0
- b _080918A0
- .align 2, 0
-_08091884: .4byte gUnknown_203B460
-_08091888:
- cmp r2, r4
- ble _0809189A
- ldr r0, [r7]
- lsls r1, r4, 2
- adds r0, r6
- adds r1, r0, r1
- adds r0, r3
- ldr r0, [r0]
- str r0, [r1]
-_0809189A:
- adds r3, 0x4
- adds r2, 0x1
- adds r4, 0x1
-_080918A0:
- cmp r2, 0x7
- bgt _080918CA
- ldr r0, [r7]
- adds r0, r3
- adds r0, r6
- ldrb r0, [r0]
- cmp r0, 0
- bne _080918CA
- ldr r5, _080918E8
- movs r1, 0x8C
- lsls r1, 2
-_080918B6:
- adds r3, 0x4
- adds r2, 0x1
- cmp r2, 0x7
- bgt _080918CA
- ldr r0, [r5]
- adds r0, r3
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0
- beq _080918B6
-_080918CA:
- cmp r2, 0x8
- bne _08091888
- cmp r4, 0x7
- bgt _080918E0
-_080918D2:
- lsls r0, r4, 24
- lsrs r0, 24
- bl sub_8091840
- adds r4, 0x1
- cmp r4, 0x7
- ble _080918D2
-_080918E0:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080918E8: .4byte gUnknown_203B460
- thumb_func_end sub_8091874
-
- thumb_func_start sub_80918EC
-sub_80918EC:
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- movs r0, 0
-_080918F8:
- adds r1, r0, 0x1
- mov r8, r1
- mov r6, r8
- cmp r1, 0x7
- bgt _08091964
- ldr r1, _08091978
- mov r9, r1
- lsls r7, r0, 2
- movs r0, 0x8C
- lsls r0, 2
- mov r10, r0
-_0809190E:
- mov r1, r9
- ldr r0, [r1]
- adds r0, r7
- add r0, r10
- ldrb r0, [r0]
- bl sub_8090D44
- adds r4, r0, 0
- mov r1, r9
- ldr r0, [r1]
- lsls r5, r6, 2
- adds r0, r5
- add r0, r10
- ldrb r0, [r0]
- bl sub_8090D44
- cmp r4, r0
- bgt _0809194C
- cmp r4, r0
- bne _0809195E
- mov r1, r9
- ldr r0, [r1]
- adds r2, r0, r7
- ldr r1, _0809197C
- adds r2, r1
- adds r0, r5
- adds r0, r1
- ldrb r1, [r2]
- ldrb r0, [r0]
- cmp r1, r0
- bcs _0809195E
-_0809194C:
- mov r1, r9
- ldr r0, [r1]
- add r0, r10
- adds r2, r0, r7
- ldr r3, [r2]
- adds r0, r5
- ldr r1, [r0]
- str r1, [r2]
- str r3, [r0]
-_0809195E:
- adds r6, 0x1
- cmp r6, 0x7
- ble _0809190E
-_08091964:
- mov r0, r8
- cmp r0, 0x6
- ble _080918F8
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08091978: .4byte gUnknown_203B460
-_0809197C: .4byte 0x00000231
- thumb_func_end sub_80918EC
-
- thumb_func_start sub_8091980
-sub_8091980:
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x10
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- mov r1, sp
- ldr r0, _080919F4
- ldm r0!, {r2-r4}
- stm r1!, {r2-r4}
- ldr r0, [r0]
- str r0, [r1]
- movs r5, 0
-_0809199C:
- lsls r0, r5, 24
- lsrs r0, 24
- bl sub_8091840
- adds r5, 0x1
- cmp r5, 0x7
- ble _0809199C
- mov r0, r8
- lsls r7, r0, 2
- ldr r6, _080919F8
- movs r5, 0x7
-_080919B2:
- adds r0, r6, 0
- bl RandomCapped
- adds r4, r0, 0
- adds r0, r6, 0
- bl RandomCapped
- adds r2, r0, 0
- mov r1, sp
- adds r0, r1, r7
- ldr r0, [r0]
- adds r1, r4, 0
- bl sub_8091E94
- lsls r0, 24
- lsrs r0, 24
- bl sub_80919FC
- subs r5, 0x1
- cmp r5, 0
- bge _080919B2
- bl sub_80918EC
- mov r0, r8
- bl sub_8091BB4
- add sp, 0x10
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080919F4: .4byte gUnknown_81097E8
-_080919F8: .4byte 0x0000270f
- thumb_func_end sub_8091980
-
- thumb_func_start sub_80919FC
-sub_80919FC:
- push {r4,r5,lr}
- sub sp, 0x4
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- mov r0, sp
- bl sub_8090B08
- movs r3, 0
- ldr r5, _08091A34
- movs r4, 0x8C
- lsls r4, 2
-_08091A14:
- ldr r1, [r5]
- lsls r2, r3, 2
- adds r0, r1, r2
- adds r0, r4
- ldrb r0, [r0]
- cmp r0, 0
- bne _08091A38
- movs r3, 0x8C
- lsls r3, 2
- adds r0, r1, r3
- adds r0, r2
- ldr r1, [sp]
- str r1, [r0]
- movs r0, 0
- b _08091A40
- .align 2, 0
-_08091A34: .4byte gUnknown_203B460
-_08091A38:
- adds r3, 0x1
- cmp r3, 0x7
- ble _08091A14
- movs r0, 0x1
-_08091A40:
- add sp, 0x4
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_80919FC
-
- thumb_func_start sub_8091A48
-sub_8091A48:
- push {lr}
- movs r3, 0
- ldr r0, _08091A70
- ldr r0, [r0]
- movs r2, 0x94
- lsls r2, 2
- adds r1, r0, r2
- movs r2, 0x3
-_08091A58:
- ldrb r0, [r1]
- cmp r0, 0
- beq _08091A60
- adds r3, 0x1
-_08091A60:
- adds r1, 0x4
- subs r2, 0x1
- cmp r2, 0
- bge _08091A58
- adds r0, r3, 0
- pop {r1}
- bx r1
- .align 2, 0
-_08091A70: .4byte gUnknown_203B460
- thumb_func_end sub_8091A48
-
- thumb_func_start sub_8091A74
-sub_8091A74:
- lsls r0, 24
- ldr r1, _08091A8C
- lsrs r0, 22
- movs r2, 0x94
- lsls r2, 2
- adds r0, r2
- ldr r1, [r1]
- adds r1, r0
- movs r0, 0
- strb r0, [r1]
- strb r0, [r1, 0x1]
- bx lr
- .align 2, 0
-_08091A8C: .4byte gUnknown_203B460
- thumb_func_end sub_8091A74
-
- thumb_func_start sub_8091A90
-sub_8091A90:
- lsls r0, 24
- ldr r1, _08091AA4
- lsrs r0, 22
- movs r2, 0x94
- lsls r2, 2
- adds r0, r2
- ldr r1, [r1]
- adds r1, r0
- adds r0, r1, 0
- bx lr
- .align 2, 0
-_08091AA4: .4byte gUnknown_203B460
- thumb_func_end sub_8091A90
-
- thumb_func_start sub_8091AA8
-sub_8091AA8:
- push {r4-r7,lr}
- movs r2, 0
- movs r4, 0
- ldr r7, _08091AB8
- movs r6, 0x94
- lsls r6, 2
- movs r3, 0
- b _08091AD4
- .align 2, 0
-_08091AB8: .4byte gUnknown_203B460
-_08091ABC:
- cmp r2, r4
- ble _08091ACE
- ldr r0, [r7]
- lsls r1, r4, 2
- adds r0, r6
- adds r1, r0, r1
- adds r0, r3
- ldr r0, [r0]
- str r0, [r1]
-_08091ACE:
- adds r3, 0x4
- adds r2, 0x1
- adds r4, 0x1
-_08091AD4:
- cmp r2, 0x3
- bgt _08091AFE
- ldr r0, [r7]
- adds r0, r3
- adds r0, r6
- ldrb r0, [r0]
- cmp r0, 0
- bne _08091AFE
- ldr r5, _08091B1C
- movs r1, 0x94
- lsls r1, 2
-_08091AEA:
- adds r3, 0x4
- adds r2, 0x1
- cmp r2, 0x3
- bgt _08091AFE
- ldr r0, [r5]
- adds r0, r3
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0
- beq _08091AEA
-_08091AFE:
- cmp r2, 0x4
- bne _08091ABC
- cmp r4, 0x3
- bgt _08091B14
-_08091B06:
- lsls r0, r4, 24
- lsrs r0, 24
- bl sub_8091A74
- adds r4, 0x1
- cmp r4, 0x3
- ble _08091B06
-_08091B14:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08091B1C: .4byte gUnknown_203B460
- thumb_func_end sub_8091AA8
-
- thumb_func_start sub_8091B20
-sub_8091B20:
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- movs r0, 0
-_08091B2C:
- adds r1, r0, 0x1
- mov r8, r1
- mov r6, r8
- cmp r1, 0x3
- bgt _08091B98
- ldr r1, _08091BAC
- mov r9, r1
- lsls r7, r0, 2
- movs r0, 0x94
- lsls r0, 2
- mov r10, r0
-_08091B42:
- mov r1, r9
- ldr r0, [r1]
- adds r0, r7
- add r0, r10
- ldrb r0, [r0]
- bl sub_8090D44
- adds r4, r0, 0
- mov r1, r9
- ldr r0, [r1]
- lsls r5, r6, 2
- adds r0, r5
- add r0, r10
- ldrb r0, [r0]
- bl sub_8090D44
- cmp r4, r0
- bgt _08091B80
- cmp r4, r0
- bne _08091B92
- mov r1, r9
- ldr r0, [r1]
- adds r2, r0, r7
- ldr r1, _08091BB0
- adds r2, r1
- adds r0, r5
- adds r0, r1
- ldrb r1, [r2]
- ldrb r0, [r0]
- cmp r1, r0
- bcs _08091B92
-_08091B80:
- mov r1, r9
- ldr r0, [r1]
- add r0, r10
- adds r2, r0, r7
- ldr r3, [r2]
- adds r0, r5
- ldr r1, [r0]
- str r1, [r2]
- str r3, [r0]
-_08091B92:
- adds r6, 0x1
- cmp r6, 0x3
- ble _08091B42
-_08091B98:
- mov r0, r8
- cmp r0, 0x2
- ble _08091B2C
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08091BAC: .4byte gUnknown_203B460
-_08091BB0: .4byte 0x00000251
- thumb_func_end sub_8091B20
-
- thumb_func_start sub_8091BB4
-sub_8091BB4:
- push {r4-r7,lr}
- sub sp, 0x10
- lsls r0, 24
- lsrs r4, r0, 24
- mov r1, sp
- ldr r0, _08091C14
- ldm r0!, {r2,r3,r5}
- stm r1!, {r2,r3,r5}
- ldr r0, [r0]
- str r0, [r1]
- movs r5, 0
-_08091BCA:
- lsls r0, r5, 24
- lsrs r0, 24
- bl sub_8091A74
- adds r5, 0x1
- cmp r5, 0x3
- ble _08091BCA
- lsls r7, r4, 2
- ldr r6, _08091C18
- movs r5, 0x3
-_08091BDE:
- adds r0, r6, 0
- bl RandomCapped
- adds r4, r0, 0
- adds r0, r6, 0
- bl RandomCapped
- adds r2, r0, 0
- mov r1, sp
- adds r0, r1, r7
- ldr r0, [r0]
- adds r1, r4, 0
- bl sub_8091E94
- lsls r0, 24
- lsrs r0, 24
- bl sub_8091C1C
- subs r5, 0x1
- cmp r5, 0
- bge _08091BDE
- bl sub_8091B20
- add sp, 0x10
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08091C14: .4byte gUnknown_81097F8
-_08091C18: .4byte 0x0000270f
- thumb_func_end sub_8091BB4
-
- thumb_func_start sub_8091C1C
-sub_8091C1C:
- push {r4,r5,lr}
- sub sp, 0x4
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- mov r0, sp
- bl sub_8090B08
- movs r3, 0
- ldr r5, _08091C54
- movs r4, 0x94
- lsls r4, 2
-_08091C34:
- ldr r1, [r5]
- lsls r2, r3, 2
- adds r0, r1, r2
- adds r0, r4
- ldrb r0, [r0]
- cmp r0, 0
- bne _08091C58
- movs r3, 0x94
- lsls r3, 2
- adds r0, r1, r3
- adds r0, r2
- ldr r1, [sp]
- str r1, [r0]
- movs r0, 0
- b _08091C60
- .align 2, 0
-_08091C54: .4byte gUnknown_203B460
-_08091C58:
- adds r3, 0x1
- cmp r3, 0x3
- ble _08091C34
- movs r0, 0x1
-_08091C60:
- add sp, 0x4
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8091C1C
-
- thumb_func_start sub_8091C68
-sub_8091C68:
- push {r4-r6,lr}
- sub sp, 0x10
- adds r3, r0, 0
- adds r2, r1, 0
- mov r0, sp
- adds r1, r3, 0
- bl sub_809486C
- movs r4, 0
- ldr r5, _08091D10
-_08091C7C:
- lsls r0, r4, 2
- ldr r1, [r5]
- adds r1, r0
- mov r0, sp
- bl sub_8091E28
- adds r4, 0x1
- cmp r4, 0x13
- ble _08091C7C
- ldr r6, _08091D10
- movs r5, 0x50
- movs r4, 0xEF
-_08091C94:
- ldr r1, [r6]
- adds r1, r5
- mov r0, sp
- movs r2, 0xA
- bl sub_809488C
- adds r5, 0x2
- subs r4, 0x1
- cmp r4, 0
- bge _08091C94
- ldr r6, _08091D10
- movs r5, 0x8C
- lsls r5, 2
- movs r4, 0x7
-_08091CB0:
- ldr r1, [r6]
- adds r1, r5
- mov r0, sp
- bl sub_8091DE0
- adds r5, 0x4
- subs r4, 0x1
- cmp r4, 0
- bge _08091CB0
- ldr r6, _08091D10
- movs r5, 0x94
- lsls r5, 2
- movs r4, 0x3
-_08091CCA:
- ldr r1, [r6]
- adds r1, r5
- mov r0, sp
- bl sub_8091DE0
- adds r5, 0x4
- subs r4, 0x1
- cmp r4, 0
- bge _08091CCA
- ldr r4, _08091D10
- ldr r1, [r4]
- movs r0, 0x98
- lsls r0, 2
- adds r1, r0
- mov r0, sp
- movs r2, 0x18
- bl sub_809488C
- ldr r1, [r4]
- movs r0, 0x99
- lsls r0, 2
- adds r1, r0
- mov r0, sp
- movs r2, 0x18
- bl sub_809488C
- mov r0, sp
- bl nullsub_102
- ldr r0, [sp, 0x8]
- add sp, 0x10
- pop {r4-r6}
- pop {r1}
- bx r1
- .align 2, 0
-_08091D10: .4byte gUnknown_203B460
- thumb_func_end sub_8091C68
-
- thumb_func_start sub_8091D14
-sub_8091D14:
- push {r4-r6,lr}
- sub sp, 0x10
- adds r3, r0, 0
- adds r2, r1, 0
- mov r0, sp
- adds r1, r3, 0
- bl sub_809485C
- movs r4, 0
- ldr r5, _08091DBC
-_08091D28:
- lsls r0, r4, 2
- ldr r1, [r5]
- adds r1, r0
- mov r0, sp
- bl sub_8091E00
- adds r4, 0x1
- cmp r4, 0x13
- ble _08091D28
- ldr r6, _08091DBC
- movs r5, 0x50
- movs r4, 0xEF
-_08091D40:
- ldr r1, [r6]
- adds r1, r5
- mov r0, sp
- movs r2, 0xA
- bl sub_8094924
- adds r5, 0x2
- subs r4, 0x1
- cmp r4, 0
- bge _08091D40
- ldr r6, _08091DBC
- movs r5, 0x8C
- lsls r5, 2
- movs r4, 0x7
-_08091D5C:
- ldr r1, [r6]
- adds r1, r5
- mov r0, sp
- bl sub_8091DC0
- adds r5, 0x4
- subs r4, 0x1
- cmp r4, 0
- bge _08091D5C
- ldr r6, _08091DBC
- movs r5, 0x94
- lsls r5, 2
- movs r4, 0x3
-_08091D76:
- ldr r1, [r6]
- adds r1, r5
- mov r0, sp
- bl sub_8091DC0
- adds r5, 0x4
- subs r4, 0x1
- cmp r4, 0
- bge _08091D76
- ldr r4, _08091DBC
- ldr r1, [r4]
- movs r0, 0x98
- lsls r0, 2
- adds r1, r0
- mov r0, sp
- movs r2, 0x18
- bl sub_8094924
- ldr r1, [r4]
- movs r0, 0x99
- lsls r0, 2
- adds r1, r0
- mov r0, sp
- movs r2, 0x18
- bl sub_8094924
- mov r0, sp
- bl nullsub_102
- ldr r0, [sp, 0x8]
- add sp, 0x10
- pop {r4-r6}
- pop {r1}
- bx r1
- .align 2, 0
-_08091DBC: .4byte gUnknown_203B460
- thumb_func_end sub_8091D14
-
- thumb_func_start sub_8091DC0
-sub_8091DC0:
- push {r4,r5,lr}
- adds r5, r0, 0
- adds r4, r1, 0
- movs r2, 0x8
- bl sub_8094924
- adds r4, 0x1
- adds r0, r5, 0
- adds r1, r4, 0
- movs r2, 0x7
- bl sub_8094924
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_8091DC0
-
- thumb_func_start sub_8091DE0
-sub_8091DE0:
- push {r4,r5,lr}
- adds r5, r0, 0
- adds r4, r1, 0
- movs r2, 0x8
- bl sub_809488C
- adds r4, 0x1
- adds r0, r5, 0
- adds r1, r4, 0
- movs r2, 0x7
- bl sub_809488C
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_8091DE0
-
- thumb_func_start sub_8091E00
-sub_8091E00:
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- movs r2, 0x8
- bl sub_8094924
- adds r1, r5, 0x1
- adds r0, r4, 0
- movs r2, 0x7
- bl sub_8094924
- adds r5, 0x2
- adds r0, r4, 0
- adds r1, r5, 0
- movs r2, 0x8
- bl sub_8094924
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_8091E00
-
- thumb_func_start sub_8091E28
-sub_8091E28:
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- movs r2, 0x8
- bl sub_809488C
- adds r1, r5, 0x1
- adds r0, r4, 0
- movs r2, 0x7
- bl sub_809488C
- adds r5, 0x2
- adds r0, r4, 0
- adds r1, r5, 0
- movs r2, 0x8
- bl sub_809488C
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_8091E28
-
- thumb_func_start sub_8091E50
-sub_8091E50:
- lsls r0, 24
- ldr r1, _08091E5C
- lsrs r0, 22
- adds r0, r1
- ldr r0, [r0]
- bx lr
- .align 2, 0
-_08091E5C: .4byte gUnknown_810AF50
- thumb_func_end sub_8091E50
-
- thumb_func_start sub_8091E60
-sub_8091E60:
- push {r4,lr}
- lsls r0, 24
- lsrs r3, r0, 24
- lsls r0, r1, 24
- lsrs r4, r0, 24
- cmp r3, 0x3E
- bhi _08091E8C
- ldr r2, _08091E88
- lsrs r0, 27
- lsls r1, r3, 5
- adds r0, r1
- adds r0, r2
- ldrb r0, [r0]
- movs r1, 0x7
- ands r1, r4
- asrs r0, r1
- movs r1, 0x1
- ands r0, r1
- b _08091E8E
- .align 2, 0
-_08091E88: .4byte gUnknown_8108F64
-_08091E8C:
- movs r0, 0
-_08091E8E:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_8091E60
-
- thumb_func_start sub_8091E94
-sub_8091E94:
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- ldr r4, _08091EE4
- add sp, r4
- mov r8, r1
- mov r10, r2
- ldr r1, _08091EE8
- subs r0, 0x1
- lsls r0, 2
- adds r0, r1
- movs r3, 0
- add r1, sp, 0x18
- mov r9, r1
- ldr r2, _08091EEC
- mov r12, r2
- add r6, sp, 0x1F8
- ldr r2, [r0]
- adds r7, r6, 0
- movs r4, 0
-_08091EC0:
- ldrh r1, [r2]
- cmp r1, r12
- bls _08091EF4
- ldrh r0, [r2]
- ldr r1, _08091EF0
- adds r0, r1
- cmp r0, 0
- beq _08091EFC
- movs r5, 0
- adds r1, r7, r4
-_08091ED4:
- strh r5, [r1]
- adds r1, 0x2
- adds r4, 0x2
- adds r3, 0x1
- subs r0, 0x1
- cmp r0, 0
- bne _08091ED4
- b _08091EFC
- .align 2, 0
-_08091EE4: .4byte 0xfffffc10
-_08091EE8: .4byte gUnknown_8108E58
-_08091EEC: .4byte 0x0000752f
-_08091EF0: .4byte 0xffff8ad0
-_08091EF4:
- adds r0, r6, r4
- strh r1, [r0]
- adds r4, 0x2
- adds r3, 0x1
-_08091EFC:
- adds r2, 0x2
- cmp r3, 0xFB
- ble _08091EC0
- movs r3, 0xB
- add r2, sp, 0x1F8
- mov r1, sp
-_08091F08:
- ldrh r0, [r2]
- strh r0, [r1]
- adds r2, 0x2
- adds r1, 0x2
- subs r3, 0x1
- cmp r3, 0
- bge _08091F08
- mov r2, r9
- add r1, sp, 0x210
- movs r3, 0xEF
-_08091F1C:
- ldrh r0, [r1]
- strh r0, [r2]
- adds r1, 0x2
- adds r2, 0x2
- subs r3, 0x1
- cmp r3, 0
- bge _08091F1C
- movs r7, 0xC
- movs r6, 0
- mov r0, sp
- movs r2, 0
- ldrsh r0, [r0, r2]
- cmp r0, 0
- beq _08091F4A
- mov r0, sp
- movs r1, 0
- ldrsh r0, [r0, r1]
- cmp r0, r8
- blt _08091F4A
- movs r7, 0
- b _08091F66
-_08091F46:
- mov r8, r5
- b _08091F9C
-_08091F4A:
- adds r6, 0x1
- cmp r6, 0xB
- bgt _08091F66
- lsls r0, r6, 1
- mov r2, sp
- adds r1, r2, r0
- movs r2, 0
- ldrsh r0, [r1, r2]
- cmp r0, 0
- beq _08091F4A
- cmp r0, r8
- blt _08091F4A
- lsls r0, r6, 24
- lsrs r7, r0, 24
-_08091F66:
- movs r0, 0x46
- mov r8, r0
- cmp r7, 0xC
- beq _08091F9C
- movs r6, 0
- mov r4, r9
-_08091F72:
- movs r1, 0
- ldrsh r0, [r4, r1]
- cmp r0, 0
- beq _08091F94
- lsls r0, r6, 24
- lsrs r5, r0, 24
- adds r0, r5, 0
- bl sub_8090BD0
- lsls r0, 24
- lsrs r0, 24
- cmp r0, r7
- bne _08091F94
- movs r2, 0
- ldrsh r0, [r4, r2]
- cmp r0, r10
- bge _08091F46
-_08091F94:
- adds r4, 0x2
- adds r6, 0x1
- cmp r6, 0xEF
- ble _08091F72
-_08091F9C:
- mov r0, r8
- movs r3, 0xFC
- lsls r3, 2
- add sp, r3
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_8091E94
-
- thumb_func_start sub_8091FB4
-sub_8091FB4:
- push {r4-r6,lr}
- movs r6, 0
-_08091FB8:
- ldr r0, _08092038
- lsls r1, r6, 2
- ldr r0, [r0]
- adds r4, r0, r1
- ldrb r1, [r4]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _08091FE8
- movs r0, 0xF7
- ands r0, r1
- movs r5, 0
- strb r0, [r4]
- ldrb r0, [r4, 0x2]
- cmp r0, 0x69
- bne _08091FE8
- adds r0, r4, 0
- bl sub_80915D4
- bl sub_80913A0
- strb r5, [r4, 0x2]
- strb r5, [r4, 0x1]
- strb r5, [r4]
-_08091FE8:
- adds r6, 0x1
- cmp r6, 0x13
- ble _08091FB8
- bl sub_80910B4
- movs r6, 0
-_08091FF4:
- movs r0, 0x58
- adds r1, r6, 0
- muls r1, r0
- ldr r0, _0809203C
- ldr r0, [r0]
- adds r2, r1, r0
- ldrb r1, [r2]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _08092026
- adds r4, r2, 0
- adds r4, 0x28
- ldrb r0, [r4]
- cmp r0, 0
- beq _08092026
- cmp r0, 0x69
- bne _08092026
- adds r0, r4, 0
- bl sub_80915E4
- bl sub_80913A0
- movs r0, 0
- strb r0, [r4]
-_08092026:
- adds r6, 0x1
- movs r0, 0xCE
- lsls r0, 1
- cmp r6, r0
- ble _08091FF4
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08092038: .4byte gUnknown_203B460
-_0809203C: .4byte gUnknown_203B45C
- thumb_func_end sub_8091FB4
.align 2, 0 @ Don't pad with nop.
diff --git a/asm/code_8092334.s b/asm/code_8092334.s
index 6e8718e..f503417 100644
--- a/asm/code_8092334.s
+++ b/asm/code_8092334.s
@@ -4509,7 +4509,7 @@ sub_8094828:
lsrs r0, r1, 24
cmp r0, 0
beq _08094852
- bl sub_8090BD0
+ bl GetItemType
lsls r0, 24
lsrs r0, 24
cmp r0, 0x9
diff --git a/asm/code_809747C.s b/asm/code_809747C.s
index 7f04a7c..4b285cc 100644
--- a/asm/code_809747C.s
+++ b/asm/code_809747C.s
@@ -950,7 +950,7 @@ _08097B4C:
b _08097B80
.align 2, 0
_08097B5C: .4byte gUnknown_203B494
-_08097B60: .4byte gUnknown_203B45C
+_08097B60: .4byte gRecruitedPokemonRef
_08097B64: .4byte 0x000001a7
_08097B68: .4byte 0x00000179
_08097B6C: .4byte 0x0000010d
diff --git a/asm/code_8098BDC.s b/asm/code_8098BDC.s
index cf72446..861e906 100644
--- a/asm/code_8098BDC.s
+++ b/asm/code_8098BDC.s
@@ -3586,7 +3586,7 @@ _0809AB80:
adds r0, r4, r0
movs r2, 0x2
ldrsh r1, [r6, r2]
- bl sub_808D908
+ bl CopyCyanSpeciesNametoBuffer
ldr r0, _0809ABAC
adds r4, r0
ldr r1, _0809ABB0
@@ -3637,7 +3637,7 @@ _0809ABE8:
movs r0, 0x2
ldrsh r1, [r6, r0]
adds r0, r5, 0
- bl sub_808D908
+ bl CopyCyanSpeciesNametoBuffer
ldr r0, _0809AC14
adds r4, r0
adds r0, r4, 0
@@ -3686,7 +3686,7 @@ _0809AC4C:
adds r0, r4, r0
movs r2, 0x2
ldrsh r1, [r6, r2]
- bl sub_808D908
+ bl CopyCyanSpeciesNametoBuffer
ldr r0, _0809AC78
adds r4, r0
movs r3, 0
@@ -5743,7 +5743,7 @@ _0809BC78:
lsrs r4, 31
bl sub_809B294
adds r0, r4, 0
- bl DisplayPersianDialogueSprite
+ bl CreateFelicityBank
lsls r0, 24
cmp r0, 0
beq _0809BCB0
@@ -5911,7 +5911,7 @@ _0809BDE8:
lsrs r4, 31
bl sub_809B294
adds r0, r4, 0
- bl sub_8021B9C
+ bl CreateWigglytuffShop
lsls r0, 24
cmp r0, 0
beq _0809BE20
@@ -5965,7 +5965,7 @@ _0809BE60:
bl sub_809B294
movs r0, 0x98
lsls r0, 1
- bl sub_80314B4
+ bl CreateHelperPelipperMenu
lsls r0, 24
cmp r0, 0
bne _0809BE84
@@ -6175,7 +6175,7 @@ _0809BFFC:
ands r4, r0
bl sub_809B294
adds r0, r4, 0
- bl sub_802FD14
+ bl CreateMakuhitaShop
lsls r0, 24
cmp r0, 0
beq _0809C032
@@ -6222,7 +6222,7 @@ _0809C072:
_0809C082:
bl sub_809B294
adds r0, r4, 0
- bl sub_802FD14
+ bl CreateMakuhitaShop
lsls r0, 24
cmp r0, 0
beq _0809C0A8
@@ -6256,7 +6256,7 @@ _0809C0B8:
_0809C0C8:
bl sub_809B294
adds r0, r4, 0
- bl sub_802FD14
+ bl CreateMakuhitaShop
lsls r0, 24
cmp r0, 0
beq _0809C0F0
@@ -6287,7 +6287,7 @@ _0809C0FC:
_0809C10C:
bl sub_809B294
adds r0, r4, 0
- bl sub_802FD14
+ bl CreateMakuhitaShop
lsls r0, 24
cmp r0, 0
beq _0809C134
@@ -6715,7 +6715,7 @@ sub_809C478:
cmp r0, 0x3
bne _0809C492
ldr r0, _0809C4AC
- bl sub_8011988
+ bl PlaySound
bl InitFlash
bl ClearFlashData
_0809C492:
@@ -7692,7 +7692,7 @@ sub_809CBBC:
b _0809CC4A
.align 2, 0
_0809CC0C: .4byte gUnknown_81163E4
-_0809CC10: .4byte gItemParametersFile + 4
+_0809CC10: .4byte gItemParametersData
_0809CC14: .4byte gUnknown_203B460
_0809CC18: .4byte 0x0001869f
_0809CC1C:
diff --git a/asm/code_809D148.s b/asm/code_809D148.s
index 34cce17..0527650 100644
--- a/asm/code_809D148.s
+++ b/asm/code_809D148.s
@@ -5022,7 +5022,7 @@ _0809FDA8:
_0809FDB8:
movs r0, 0x1E
_0809FDBA:
- bl sub_8011930
+ bl xxx_call_fade_out_bgm
bl _0809EAE0
_0809FDC2:
ldr r0, [sp, 0xC]
diff --git a/asm/code_80A7714.s b/asm/code_80A7714.s
index 31e753d..a52f7db 100644
--- a/asm/code_80A7714.s
+++ b/asm/code_80A7714.s
@@ -751,7 +751,7 @@ _080A7D7E:
negs r0, r0
b _080A7DD4
.align 2, 0
-_080A7D84: .4byte gUnknown_203B45C
+_080A7D84: .4byte gRecruitedPokemonRef
_080A7D88:
ldrb r1, [r4]
movs r0, 0x1
@@ -893,7 +893,7 @@ _080A7E78:
ldrh r0, [r0, 0x8]
b _080A800A
.align 2, 0
-_080A7E8C: .4byte gUnknown_203B45C
+_080A7E8C: .4byte gRecruitedPokemonRef
_080A7E90:
adds r0, r3, 0
subs r0, 0xE
@@ -958,7 +958,7 @@ _080A7F06:
ldrh r0, [r4, 0x8]
b _080A800A
.align 2, 0
-_080A7F0C: .4byte gUnknown_203B45C
+_080A7F0C: .4byte gRecruitedPokemonRef
_080A7F10:
ldrb r1, [r4]
movs r0, 0x1
@@ -2937,7 +2937,7 @@ _080A8DDE:
adds r0, r1
b _080A8E94
.align 2, 0
-_080A8DF4: .4byte gUnknown_203B45C
+_080A8DF4: .4byte gRecruitedPokemonRef
_080A8DF8:
adds r0, r1, 0
subs r0, 0xE
@@ -2993,7 +2993,7 @@ _080A8DF8:
adds r0, r4, 0
b _080A8E94
.align 2, 0
-_080A8E6C: .4byte gUnknown_203B45C
+_080A8E6C: .4byte gRecruitedPokemonRef
_080A8E70:
ldrb r1, [r4]
movs r0, 0x1
diff --git a/asm/debug_menu.s b/asm/debug_menu.s
index 04f78e4..1a1454a 100644
--- a/asm/debug_menu.s
+++ b/asm/debug_menu.s
@@ -68,7 +68,7 @@ _0803A3E8:
str r0, [sp, 0x80]
mov r0, r10
movs r1, 0x1
- bl sub_801203C
+ bl WriteSavetoPak
add sp, 0x84
pop {r3-r5}
mov r8, r3
diff --git a/asm/debug_menu_1.s b/asm/debug_menu_1.s
index 12b27d9..8a6b89f 100644
--- a/asm/debug_menu_1.s
+++ b/asm/debug_menu_1.s
@@ -242,7 +242,7 @@ _0803ABCE:
movs r0, 0
b _0803AC1C
.align 2, 0
-_0803AC08: .4byte gUnknown_203B45C
+_0803AC08: .4byte gRecruitedPokemonRef
_0803AC0C: .4byte gUnknown_203B3F4
_0803AC10:
adds r5, 0x1
@@ -673,7 +673,7 @@ sub_803AF38:
b _0803AF82
.align 2, 0
_0803AF70: .4byte gUnknown_203B3F8
-_0803AF74: .4byte gUnknown_203B45C
+_0803AF74: .4byte gRecruitedPokemonRef
_0803AF78:
bl sub_8023C60
movs r0, 0x7
diff --git a/asm/felicity_bank.s b/asm/felicity_bank.s
new file mode 100644
index 0000000..c60b295
--- /dev/null
+++ b/asm/felicity_bank.s
@@ -0,0 +1,571 @@
+ .include "constants/gba_constants.inc"
+ .include "asm/macros.inc"
+
+ .syntax unified
+
+ .text
+
+ thumb_func_start UpdateFelicityBankDialogue
+UpdateFelicityBankDialogue:
+ push {r4,r5,lr}
+ sub sp, 0x14
+ ldr r1, _08016558
+ ldr r0, [r1]
+ ldr r0, [r0, 0x4]
+ adds r2, r1, 0
+ cmp r0, 0xC
+ bls _0801654E
+ b _080168EC
+_0801654E:
+ lsls r0, 2
+ ldr r1, _0801655C
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_08016558: .4byte gUnknown_203B204
+_0801655C: .4byte _08016560
+ .align 2, 0
+_08016560:
+ .4byte _08016594
+ .4byte _080165B4
+ .4byte _080168B2
+ .4byte _08016650
+ .4byte _08016668
+ .4byte _080166C4
+ .4byte _080168EC
+ .4byte _080166DC
+ .4byte _0801674C
+ .4byte _080167A8
+ .4byte _080167CC
+ .4byte _0801685C
+ .4byte _080168C4
+_08016594:
+ ldr r2, [r2]
+ movs r0, 0x1
+ str r0, [r2, 0x8]
+ ldr r3, _080165B0
+ ldr r1, [r2]
+ lsls r0, r1, 4
+ subs r0, r1
+ lsls r0, 2
+ adds r0, r3
+ ldr r0, [r0]
+ adds r2, 0xA4
+ ldr r2, [r2]
+ b _08016844
+ .align 2, 0
+_080165B0: .4byte gFelicityDialogue
+_080165B4:
+ bl CreateFelicityBankShopMenu
+ ldr r0, _080165FC
+ ldr r0, [r0]
+ mov r12, r0
+ movs r0, 0x2
+ mov r1, r12
+ str r0, [r1, 0x8]
+ ldr r0, _08016600
+ ldr r0, [r0]
+ movs r3, 0x99
+ lsls r3, 2
+ adds r0, r3
+ ldr r4, [r0]
+ cmp r4, 0
+ bne _08016608
+ ldr r2, _08016604
+ ldr r1, [r1]
+ lsls r0, r1, 4
+ subs r0, r1
+ lsls r0, 2
+ adds r2, 0x4
+ adds r0, r2
+ ldr r0, [r0]
+ mov r5, r12
+ ldr r2, [r5, 0x10]
+ mov r3, r12
+ adds r3, 0x14
+ mov r1, r12
+ adds r1, 0x54
+ str r1, [sp]
+ movs r1, 0x4
+ str r1, [sp, 0x4]
+ str r4, [sp, 0x8]
+ b _08016632
+ .align 2, 0
+_080165FC: .4byte gUnknown_203B204
+_08016600: .4byte gUnknown_203B460
+_08016604: .4byte gFelicityDialogue
+_08016608:
+ ldr r0, _08016648
+ str r4, [r0]
+ ldr r2, _0801664C
+ mov r0, r12
+ ldr r1, [r0]
+ lsls r0, r1, 4
+ subs r0, r1
+ lsls r0, 2
+ adds r2, 0x8
+ adds r0, r2
+ ldr r0, [r0]
+ mov r1, r12
+ ldr r2, [r1, 0x10]
+ mov r3, r12
+ adds r3, 0x14
+ adds r1, 0x54
+ str r1, [sp]
+ movs r1, 0x4
+ str r1, [sp, 0x4]
+ movs r1, 0
+ str r1, [sp, 0x8]
+_08016632:
+ mov r1, r12
+ adds r1, 0xA4
+ ldr r1, [r1]
+ str r1, [sp, 0xC]
+ movs r1, 0xC
+ str r1, [sp, 0x10]
+ movs r1, 0
+ bl sub_8014248
+ b _080168EC
+ .align 2, 0
+_08016648: .4byte gUnknown_202DE30
+_0801664C: .4byte gFelicityDialogue
+_08016650:
+ ldr r3, [r2]
+ movs r0, 0x1
+ str r0, [r3, 0x8]
+ ldr r2, _08016664
+ ldr r1, [r3]
+ lsls r0, r1, 4
+ subs r0, r1
+ lsls r0, 2
+ adds r2, 0x38
+ b _0801683C
+ .align 2, 0
+_08016664: .4byte gFelicityDialogue
+_08016668:
+ ldr r3, [r2]
+ movs r0, 0x6
+ str r0, [r3, 0x8]
+ ldr r0, _08016698
+ ldr r0, [r0]
+ movs r5, 0x99
+ lsls r5, 2
+ adds r0, r5
+ ldr r1, [r0]
+ cmp r1, 0
+ bne _080166A0
+ ldr r2, _0801669C
+ ldr r1, [r3]
+ lsls r0, r1, 4
+ subs r0, r1
+ lsls r0, 2
+ adds r2, 0x10
+ adds r0, r2
+ ldr r0, [r0]
+ adds r1, r3, 0
+ adds r1, 0xA4
+ ldr r2, [r1]
+ b _08016844
+ .align 2, 0
+_08016698: .4byte gUnknown_203B460
+_0801669C: .4byte gFelicityDialogue
+_080166A0:
+ ldr r0, _080166BC
+ str r1, [r0]
+ ldr r2, _080166C0
+ ldr r1, [r3]
+ lsls r0, r1, 4
+ subs r0, r1
+ lsls r0, 2
+ adds r2, 0x14
+ adds r0, r2
+ ldr r0, [r0]
+ adds r1, r3, 0
+ adds r1, 0xA4
+ ldr r2, [r1]
+ b _08016844
+ .align 2, 0
+_080166BC: .4byte gUnknown_202DE30
+_080166C0: .4byte gFelicityDialogue
+_080166C4:
+ ldr r3, [r2]
+ movs r0, 0x1
+ str r0, [r3, 0x8]
+ ldr r2, _080166D8
+ ldr r1, [r3]
+ lsls r0, r1, 4
+ subs r0, r1
+ lsls r0, 2
+ adds r2, 0xC
+ b _0801683C
+ .align 2, 0
+_080166D8: .4byte gFelicityDialogue
+_080166DC:
+ ldr r0, _08016700
+ ldr r1, [r0]
+ movs r3, 0x98
+ lsls r3, 2
+ adds r0, r1, r3
+ ldr r0, [r0]
+ cmp r0, 0
+ bne _08016708
+ ldr r3, [r2]
+ movs r0, 0x1
+ str r0, [r3, 0x8]
+ ldr r2, _08016704
+ ldr r1, [r3]
+ lsls r0, r1, 4
+ subs r0, r1
+ lsls r0, 2
+ adds r2, 0x1C
+ b _0801683C
+ .align 2, 0
+_08016700: .4byte gUnknown_203B460
+_08016704: .4byte gFelicityDialogue
+_08016708:
+ movs r5, 0x99
+ lsls r5, 2
+ adds r0, r1, r5
+ ldr r1, [r0]
+ ldr r0, _0801672C
+ cmp r1, r0
+ ble _08016734
+ ldr r3, [r2]
+ movs r0, 0x1
+ str r0, [r3, 0x8]
+ ldr r2, _08016730
+ ldr r1, [r3]
+ lsls r0, r1, 4
+ subs r0, r1
+ lsls r0, 2
+ adds r2, 0x20
+ b _0801683C
+ .align 2, 0
+_0801672C: .4byte 0x0098967e
+_08016730: .4byte gFelicityDialogue
+_08016734:
+ ldr r3, [r2]
+ movs r0, 0x8
+ str r0, [r3, 0x8]
+ ldr r2, _08016748
+ ldr r1, [r3]
+ lsls r0, r1, 4
+ subs r0, r1
+ lsls r0, 2
+ adds r2, 0x18
+ b _0801683C
+ .align 2, 0
+_08016748: .4byte gFelicityDialogue
+_0801674C:
+ ldr r4, [r2]
+ ldr r0, _080167A0
+ ldr r3, [r0]
+ movs r1, 0x99
+ lsls r1, 2
+ adds r0, r3, r1
+ ldr r1, [r0]
+ ldr r0, _080167A4
+ subs r0, r1
+ str r0, [r4, 0x70]
+ movs r5, 0x98
+ lsls r5, 2
+ adds r1, r3, r5
+ ldr r1, [r1]
+ cmp r0, r1
+ ble _0801676E
+ str r1, [r4, 0x70]
+_0801676E:
+ ldr r2, [r2]
+ ldr r0, [r2, 0x70]
+ str r0, [r2, 0x68]
+ movs r0, 0x1
+ str r0, [r2, 0x6C]
+ movs r0, 0x5
+ str r0, [r2, 0x74]
+ movs r0, 0x2
+ str r0, [r2, 0x78]
+ adds r0, r2, 0
+ adds r0, 0xD8
+ str r0, [r2, 0x7C]
+ adds r1, r2, 0
+ adds r1, 0x80
+ movs r0, 0x50
+ str r0, [r1]
+ adds r1, 0x4
+ movs r0, 0x12
+ str r0, [r1]
+ adds r0, r2, 0
+ adds r0, 0x64
+ bl sub_8013AA0
+ movs r0, 0x1
+ b _080168AE
+ .align 2, 0
+_080167A0: .4byte gUnknown_203B460
+_080167A4: .4byte 0x0098967f
+_080167A8:
+ ldr r3, [r2]
+ movs r0, 0x1
+ str r0, [r3, 0x8]
+ ldr r1, _080167C4
+ ldr r0, [r3, 0xC]
+ str r0, [r1]
+ ldr r2, _080167C8
+ ldr r1, [r3]
+ lsls r0, r1, 4
+ subs r0, r1
+ lsls r0, 2
+ adds r2, 0x24
+ b _0801683C
+ .align 2, 0
+_080167C4: .4byte gUnknown_202DE30
+_080167C8: .4byte gFelicityDialogue
+_080167CC:
+ ldr r0, _080167F4
+ ldr r3, [r0]
+ movs r1, 0x98
+ lsls r1, 2
+ adds r0, r3, r1
+ ldr r1, [r0]
+ ldr r0, _080167F8
+ cmp r1, r0
+ ble _08016800
+ ldr r3, [r2]
+ movs r0, 0x1
+ str r0, [r3, 0x8]
+ ldr r2, _080167FC
+ ldr r1, [r3]
+ lsls r0, r1, 4
+ subs r0, r1
+ lsls r0, 2
+ adds r2, 0x30
+ b _0801683C
+ .align 2, 0
+_080167F4: .4byte gUnknown_203B460
+_080167F8: .4byte 0x0001869e
+_080167FC: .4byte gFelicityDialogue
+_08016800:
+ movs r5, 0x99
+ lsls r5, 2
+ adds r4, r3, r5
+ ldr r0, [r4]
+ cmp r0, 0
+ bne _08016824
+ ldr r3, [r2]
+ movs r0, 0x1
+ str r0, [r3, 0x8]
+ ldr r2, _08016820
+ ldr r1, [r3]
+ lsls r0, r1, 4
+ subs r0, r1
+ lsls r0, 2
+ adds r2, 0x2C
+ b _0801683C
+ .align 2, 0
+_08016820: .4byte gFelicityDialogue
+_08016824:
+ ldr r3, [r2]
+ movs r0, 0xB
+ str r0, [r3, 0x8]
+ ldr r1, _08016850
+ ldr r0, [r4]
+ str r0, [r1]
+ ldr r2, _08016854
+ ldr r1, [r3]
+ lsls r0, r1, 4
+ subs r0, r1
+ lsls r0, 2
+ adds r2, 0x28
+_0801683C:
+ adds r0, r2
+ ldr r0, [r0]
+ adds r3, 0xA4
+ ldr r2, [r3]
+_08016844:
+ ldr r3, _08016858
+ movs r1, 0
+ bl sub_80141B4
+ b _080168EC
+ .align 2, 0
+_08016850: .4byte gUnknown_202DE30
+_08016854: .4byte gFelicityDialogue
+_08016858: .4byte 0x0000010d
+_0801685C:
+ ldr r4, [r2]
+ ldr r0, _080168BC
+ ldr r3, [r0]
+ movs r1, 0x98
+ lsls r1, 2
+ adds r0, r3, r1
+ ldr r1, [r0]
+ ldr r0, _080168C0
+ subs r0, r1
+ str r0, [r4, 0x70]
+ movs r5, 0x99
+ lsls r5, 2
+ adds r1, r3, r5
+ ldr r1, [r1]
+ cmp r0, r1
+ ble _0801687E
+ str r1, [r4, 0x70]
+_0801687E:
+ ldr r2, [r2]
+ ldr r0, [r2, 0x70]
+ str r0, [r2, 0x68]
+ movs r0, 0x1
+ str r0, [r2, 0x6C]
+ movs r0, 0x5
+ str r0, [r2, 0x74]
+ movs r0, 0x2
+ str r0, [r2, 0x78]
+ adds r0, r2, 0
+ adds r0, 0xD8
+ str r0, [r2, 0x7C]
+ adds r1, r2, 0
+ adds r1, 0x80
+ movs r0, 0x50
+ str r0, [r1]
+ adds r1, 0x4
+ movs r0, 0x12
+ str r0, [r1]
+ adds r0, r2, 0
+ adds r0, 0x64
+ bl sub_8013AA0
+ movs r0, 0
+_080168AE:
+ bl sub_8016B48
+_080168B2:
+ movs r0, 0x3
+ bl CreateFelicityMoneySavingsHeader
+ b _080168EC
+ .align 2, 0
+_080168BC: .4byte gUnknown_203B460
+_080168C0: .4byte 0x0001869f
+_080168C4:
+ ldr r3, [r2]
+ movs r0, 0x1
+ str r0, [r3, 0x8]
+ ldr r1, _080168F4
+ ldr r0, [r3, 0xC]
+ str r0, [r1]
+ ldr r2, _080168F8
+ ldr r1, [r3]
+ lsls r0, r1, 4
+ subs r0, r1
+ lsls r0, 2
+ adds r2, 0x34
+ adds r0, r2
+ ldr r0, [r0]
+ adds r3, 0xA4
+ ldr r2, [r3]
+ ldr r3, _080168FC
+ movs r1, 0
+ bl sub_80141B4
+_080168EC:
+ add sp, 0x14
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080168F4: .4byte gUnknown_202DE30
+_080168F8: .4byte gFelicityDialogue
+_080168FC: .4byte 0x0000010d
+ thumb_func_end UpdateFelicityBankDialogue
+
+ thumb_func_start CreateFelicityBankShopMenu
+CreateFelicityBankShopMenu:
+ push {r4-r7,lr}
+ ldr r4, _08016980
+ ldr r0, [r4]
+ adds r0, 0x54
+ movs r1, 0
+ movs r2, 0x10
+ bl MemoryFill16
+ ldr r3, [r4]
+ movs r2, 0
+ ldr r0, _08016984
+ ldr r0, [r0]
+ str r0, [r3, 0x14]
+ movs r0, 0x2
+ str r0, [r3, 0x18]
+ movs r1, 0x1
+ ldr r0, _08016988
+ ldr r0, [r0]
+ str r0, [r3, 0x1C]
+ movs r0, 0x3
+ str r0, [r3, 0x20]
+ ldr r0, _0801698C
+ ldr r0, [r0]
+ str r0, [r3, 0x24]
+ movs r0, 0x4
+ str r0, [r3, 0x28]
+ ldr r0, _08016990
+ ldr r0, [r0]
+ str r0, [r3, 0x2C]
+ str r1, [r3, 0x30]
+ movs r6, 0x4
+ str r2, [r3, 0x34]
+ str r1, [r3, 0x38]
+ movs r5, 0
+ mov r12, r3
+ adds r3, 0x18
+ mov r2, r12
+ adds r2, 0x54
+_0801694C:
+ ldrh r0, [r2]
+ cmp r0, 0
+ bne _0801695C
+ ldr r1, [r3]
+ mov r7, r12
+ ldr r0, [r7, 0x10]
+ cmp r1, r0
+ beq _080169B6
+_0801695C:
+ adds r3, 0x8
+ adds r2, 0x2
+ adds r5, 0x1
+ cmp r5, r6
+ blt _0801694C
+ movs r5, 0
+ cmp r5, r6
+ bge _080169B6
+ ldr r1, [r4]
+ adds r0, r1, 0
+ adds r0, 0x54
+ ldrh r0, [r0]
+ cmp r0, 0
+ bne _08016994
+ ldr r0, [r1, 0x18]
+ str r0, [r1, 0x10]
+ b _080169B6
+ .align 2, 0
+_08016980: .4byte gUnknown_203B204
+_08016984: .4byte gUnknown_80D4958
+_08016988: .4byte gUnknown_80D4964
+_0801698C: .4byte gUnknown_80D4970
+_08016990: .4byte gUnknown_80D4934
+_08016994:
+ adds r5, 0x1
+ cmp r5, r6
+ bge _080169B6
+ ldr r2, [r4]
+ lsls r0, r5, 1
+ adds r1, r2, 0
+ adds r1, 0x54
+ adds r1, r0
+ ldrh r0, [r1]
+ cmp r0, 0
+ bne _08016994
+ lsls r0, r5, 3
+ adds r1, r2, 0
+ adds r1, 0x18
+ adds r1, r0
+ ldr r0, [r1]
+ str r0, [r2, 0x10]
+_080169B6:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end CreateFelicityBankShopMenu
+
+ .align 2,0
diff --git a/asm/friend_area_1.s b/asm/friend_area_1.s
index 28deea6..b6fe42d 100644
--- a/asm/friend_area_1.s
+++ b/asm/friend_area_1.s
@@ -97,7 +97,7 @@ _080926CC:
.align 2, 0
_080926DC: .4byte gFriendAreas
_080926E0: .4byte gFriendAreaSettings
-_080926E4: .4byte gUnknown_203B45C
+_080926E4: .4byte gRecruitedPokemonRef
_080926E8:
strh r0, [r4, 0x2]
strh r0, [r4]
@@ -185,7 +185,7 @@ _08092776:
.align 2, 0
_08092780: .4byte gFriendAreas
_08092784: .4byte gFriendAreaSettings
-_08092788: .4byte gUnknown_203B45C
+_08092788: .4byte gRecruitedPokemonRef
_0809278C:
ldrh r0, [r4, 0x2]
adds r0, 0x1
diff --git a/asm/friend_rescue.s b/asm/friend_rescue.s
index e1328ba..d02ddc6 100644
--- a/asm/friend_rescue.s
+++ b/asm/friend_rescue.s
@@ -989,7 +989,7 @@ _0803315A:
adds r0, r5
b _080333DA
.align 2, 0
-_08033188: .4byte gUnknown_203B45C
+_08033188: .4byte gRecruitedPokemonRef
_0803318C: .4byte gUnknown_203B33C
_08033190:
adds r1, r2, 0
diff --git a/asm/items.s b/asm/items.s
new file mode 100644
index 0000000..59454e0
--- /dev/null
+++ b/asm/items.s
@@ -0,0 +1,2518 @@
+ .include "constants/gba_constants.inc"
+ .include "asm/macros.inc"
+
+ .syntax unified
+
+ .text
+
+ thumb_func_start sub_8090E14
+sub_8090E14:
+ push {r4-r7,lr}
+ sub sp, 0x50
+ adds r6, r0, 0
+ adds r5, r1, 0
+ adds r7, r2, 0
+ movs r4, 0
+ cmp r7, 0
+ beq _08090E2C
+ ldrb r1, [r7, 0x8]
+ negs r0, r1
+ orrs r0, r1
+ lsrs r4, r0, 31
+_08090E2C:
+ ldrb r0, [r5, 0x2]
+ bl GetItemType
+ lsls r0, 24
+ cmp r0, 0
+ bne _08090E3E
+ cmp r4, 0
+ bne _08090E50
+ b _08090E70
+_08090E3E:
+ ldrb r0, [r5, 0x2]
+ bl GetItemType
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _08090E90
+ cmp r4, 0
+ beq _08090E70
+_08090E50:
+ ldr r1, _08090E68
+ ldrb r0, [r5, 0x2]
+ ldr r2, _08090E6C
+ ldr r2, [r2]
+ lsls r0, 5
+ adds r0, r2
+ ldr r2, [r0]
+ ldrb r3, [r5, 0x1]
+ mov r0, sp
+ bl sub_800D158
+ b _08090EC4
+ .align 2, 0
+_08090E68: .4byte gUnknown_8109770
+_08090E6C: .4byte gItemParametersData
+_08090E70:
+ ldr r1, _08090E88
+ ldrb r0, [r5, 0x2]
+ ldr r2, _08090E8C
+ ldr r2, [r2]
+ lsls r0, 5
+ adds r0, r2
+ ldr r2, [r0]
+ mov r0, sp
+ bl sub_800D158
+ b _08090EC4
+ .align 2, 0
+_08090E88: .4byte gUnknown_8109778
+_08090E8C: .4byte gItemParametersData
+_08090E90:
+ ldrb r0, [r5, 0x2]
+ cmp r0, 0x69
+ bne _08090EB0
+ ldr r4, _08090EAC
+ adds r0, r5, 0
+ bl sub_80915D4
+ adds r2, r0, 0
+ mov r0, sp
+ adds r1, r4, 0
+ bl sub_800D158
+ b _08090EC4
+ .align 2, 0
+_08090EAC: .4byte gUnknown_810977C
+_08090EB0:
+ ldrb r0, [r5, 0x2]
+ ldr r1, _08090F2C
+ ldr r1, [r1]
+ lsls r0, 5
+ adds r0, r1
+ ldr r1, [r0]
+ mov r0, sp
+ movs r2, 0x50
+ bl strncpy
+_08090EC4:
+ ldrb r1, [r5]
+ movs r0, 0x8
+ ands r0, r1
+ cmp r0, 0
+ beq _08090EE2
+ ldr r1, _08090F30
+ adds r0, r6, 0
+ mov r2, sp
+ bl sub_800D158
+ mov r0, sp
+ adds r1, r6, 0
+ movs r2, 0x50
+ bl strncpy
+_08090EE2:
+ cmp r7, 0
+ beq _08090F38
+ ldrb r0, [r7, 0x4]
+ cmp r0, 0
+ beq _08090F0A
+ ldrb r1, [r5]
+ movs r0, 0x10
+ ands r0, r1
+ cmp r0, 0
+ beq _08090F0A
+ ldr r1, _08090F34
+ adds r0, r6, 0
+ mov r2, sp
+ bl sub_800D158
+ mov r0, sp
+ adds r1, r6, 0
+ movs r2, 0x50
+ bl strncpy
+_08090F0A:
+ ldr r0, [r7]
+ cmp r0, 0x1
+ beq _08090F14
+ cmp r0, 0x3
+ bne _08090F44
+_08090F14:
+ ldrb r1, [r5]
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _08090F38
+ adds r0, r6, 0
+ mov r1, sp
+ adds r2, r5, 0
+ adds r3, r7, 0
+ bl sub_8090F58
+ b _08090F50
+ .align 2, 0
+_08090F2C: .4byte gItemParametersData
+_08090F30: .4byte gUnknown_8109784
+_08090F34: .4byte gUnknown_810978C
+_08090F38:
+ adds r0, r6, 0
+ mov r1, sp
+ movs r2, 0x50
+ bl strncpy
+ b _08090F50
+_08090F44:
+ adds r0, r6, 0
+ mov r1, sp
+ adds r2, r5, 0
+ adds r3, r7, 0
+ bl sub_8090F58
+_08090F50:
+ add sp, 0x50
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8090E14
+
+ thumb_func_start sub_8090F58
+sub_8090F58:
+ push {r4-r6,lr}
+ sub sp, 0x2C
+ adds r5, r0, 0
+ adds r6, r1, 0
+ adds r0, r2, 0
+ adds r4, r3, 0
+ cmp r4, 0
+ bne _08090F6C
+ adds r0, r5, 0
+ b _08090F94
+_08090F6C:
+ ldr r1, [r4]
+ cmp r1, 0x1
+ bcc _08090F8A
+ cmp r1, 0x2
+ bhi _08090F7E
+ bl sub_8090BE4
+ adds r1, r0, 0
+ b _08090F8C
+_08090F7E:
+ cmp r1, 0x4
+ bhi _08090F8A
+ bl sub_8090C30
+ adds r1, r0, 0
+ b _08090F8C
+_08090F8A:
+ movs r1, 0
+_08090F8C:
+ cmp r1, 0
+ bne _08090F9C
+ adds r0, r5, 0
+ adds r1, r6, 0
+_08090F94:
+ movs r2, 0x50
+ bl strncpy
+ b _08090FDE
+_08090F9C:
+ movs r2, 0x6
+ ldrsh r0, [r4, r2]
+ cmp r0, 0
+ beq _08090FC8
+ adds r0, r1, 0
+ add r1, sp, 0x4
+ movs r2, 0x1
+ bl sub_8090FEC
+ ldr r1, _08090FC4
+ movs r0, 0x6
+ ldrsh r3, [r4, r0]
+ add r2, sp, 0x4
+ str r2, [sp]
+ adds r0, r5, 0
+ adds r2, r6, 0
+ bl sub_800D158
+ b _08090FDE
+ .align 2, 0
+_08090FC4: .4byte gUnknown_8109794
+_08090FC8:
+ adds r0, r1, 0
+ add r1, sp, 0x4
+ movs r2, 0
+ bl sub_8090FEC
+ ldr r1, _08090FE8
+ adds r0, r5, 0
+ adds r2, r6, 0
+ add r3, sp, 0x4
+ bl sub_800D158
+_08090FDE:
+ add sp, 0x2C
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08090FE8: .4byte gUnknown_81097A4
+ thumb_func_end sub_8090F58
+
+ thumb_func_start sub_8090FEC
+sub_8090FEC:
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ adds r5, r0, 0
+ adds r4, r1, 0
+ lsls r2, 24
+ lsrs r2, 24
+ mov r10, r2
+ movs r0, 0
+ mov r8, r0
+ movs r6, 0
+ movs r2, 0
+ ldr r1, _08091050
+ mov r9, r1
+ mov r12, r9
+_0809100E:
+ movs r1, 0
+ lsls r3, r2, 2
+ ldr r7, _08091054
+ adds r0, r3, r7
+ ldr r0, [r0]
+ adds r7, r2, 0x1
+ cmp r5, r0
+ blt _0809102C
+ ldr r2, _08091054
+_08091020:
+ adds r0, r3, r2
+ ldr r0, [r0]
+ subs r5, r0
+ adds r1, 0x1
+ cmp r5, r0
+ bge _08091020
+_0809102C:
+ cmp r1, 0x9
+ ble _08091032
+ movs r1, 0x9
+_08091032:
+ cmp r1, 0
+ beq _0809105C
+ movs r0, 0x1
+ mov r8, r0
+ lsls r1, 1
+ mov r2, r12
+ adds r0, r1, r2
+ ldrb r0, [r0]
+ strb r0, [r4]
+ adds r4, 0x1
+ ldr r0, _08091058
+ adds r1, r0
+ ldrb r0, [r1]
+ b _0809106C
+ .align 2, 0
+_08091050: .4byte gUnknown_81097C4
+_08091054: .4byte gUnknown_81097B0
+_08091058: .4byte gUnknown_81097C5
+_0809105C:
+ mov r1, r8
+ cmp r1, 0
+ beq _08091074
+ mov r2, r12
+ ldrb r0, [r2]
+ strb r0, [r4]
+ adds r4, 0x1
+ ldrb r0, [r2, 0x1]
+_0809106C:
+ strb r0, [r4]
+ adds r4, 0x1
+ adds r6, 0x1
+ b _08091080
+_08091074:
+ mov r0, r10
+ cmp r0, 0
+ beq _08091080
+ movs r0, 0x60
+ strb r0, [r4]
+ adds r4, 0x1
+_08091080:
+ adds r2, r7, 0
+ cmp r2, 0x4
+ ble _0809100E
+ lsls r1, r5, 1
+ mov r2, r9
+ adds r0, r1, r2
+ ldrb r0, [r0]
+ strb r0, [r4]
+ adds r4, 0x1
+ mov r0, r9
+ adds r0, 0x1
+ adds r1, r0
+ ldrb r0, [r1]
+ strb r0, [r4]
+ adds r6, 0x1
+ movs r0, 0
+ strb r0, [r4, 0x1]
+ adds r0, r6, 0
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8090FEC
+
+ thumb_func_start sub_80910B4
+sub_80910B4:
+ push {r4-r7,lr}
+ movs r2, 0
+ movs r4, 0
+ ldr r7, _080910C0
+ movs r3, 0
+ b _080910DA
+ .align 2, 0
+_080910C0: .4byte gUnknown_203B460
+_080910C4:
+ cmp r2, r4
+ ble _080910D4
+ ldr r0, [r7]
+ lsls r1, r4, 2
+ adds r1, r0, r1
+ adds r0, r3
+ ldr r0, [r0]
+ str r0, [r1]
+_080910D4:
+ adds r3, 0x4
+ adds r2, 0x1
+ adds r4, 0x1
+_080910DA:
+ cmp r2, 0x13
+ bgt _08091106
+ ldr r0, [r7]
+ adds r0, r3, r0
+ ldrb r1, [r0]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ bne _08091106
+ ldr r5, _0809112C
+ movs r6, 0x1
+_080910F0:
+ adds r3, 0x4
+ adds r2, 0x1
+ cmp r2, 0x13
+ bgt _08091106
+ ldr r0, [r5]
+ adds r0, r3, r0
+ ldrb r1, [r0]
+ adds r0, r6, 0
+ ands r0, r1
+ cmp r0, 0
+ beq _080910F0
+_08091106:
+ cmp r2, 0x14
+ bne _080910C4
+ cmp r4, 0x13
+ bgt _08091124
+ ldr r3, _0809112C
+ movs r2, 0
+_08091112:
+ lsls r1, r4, 2
+ ldr r0, [r3]
+ adds r1, r0
+ strb r2, [r1, 0x2]
+ strb r2, [r1, 0x1]
+ strb r2, [r1]
+ adds r4, 0x1
+ cmp r4, 0x13
+ ble _08091112
+_08091124:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0809112C: .4byte gUnknown_203B460
+ thumb_func_end sub_80910B4
+
+ thumb_func_start sub_8091130
+sub_8091130:
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ movs r3, 0
+ ldr r0, _08091154
+ ldr r2, [r0]
+ movs r5, 0x1
+_0809113E:
+ ldrb r1, [r2]
+ adds r0, r5, 0
+ ands r0, r1
+ cmp r0, 0
+ beq _08091158
+ ldrb r0, [r2, 0x2]
+ cmp r0, r4
+ bne _08091158
+ adds r0, r3, 0
+ b _08091164
+ .align 2, 0
+_08091154: .4byte gUnknown_203B460
+_08091158:
+ adds r2, 0x4
+ adds r3, 0x1
+ cmp r3, 0x13
+ ble _0809113E
+ movs r0, 0x1
+ negs r0, r0
+_08091164:
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8091130
+
+ thumb_func_start sub_809116C
+sub_809116C:
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ movs r4, 0
+ ldr r0, _080911A0
+ ldr r2, [r0]
+ movs r6, 0x1
+ movs r3, 0x13
+_0809117C:
+ ldrb r1, [r2]
+ adds r0, r6, 0
+ ands r0, r1
+ cmp r0, 0
+ beq _0809118E
+ ldrb r0, [r2, 0x2]
+ cmp r0, r5
+ bne _0809118E
+ adds r4, 0x1
+_0809118E:
+ adds r2, 0x4
+ subs r3, 0x1
+ cmp r3, 0
+ bge _0809117C
+ adds r0, r4, 0
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080911A0: .4byte gUnknown_203B460
+ thumb_func_end sub_809116C
+
+ thumb_func_start sub_80911A4
+sub_80911A4:
+ push {r4-r7,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ adds r0, r5, 0
+ bl sub_809116C
+ adds r4, r0, 0
+ movs r3, 0
+ ldr r0, _080911F4
+ ldr r7, [r0]
+ movs r6, 0x1
+_080911BA:
+ movs r0, 0x58
+ muls r0, r3
+ adds r2, r7, r0
+ ldrh r1, [r2]
+ adds r0, r6, 0
+ ands r0, r1
+ cmp r0, 0
+ beq _080911E2
+ lsrs r0, r1, 1
+ ands r0, r6
+ cmp r0, 0
+ beq _080911E2
+ adds r0, r2, 0
+ adds r0, 0x28
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _080911E2
+ cmp r0, r5
+ bne _080911E2
+ adds r4, 0x1
+_080911E2:
+ adds r3, 0x1
+ movs r0, 0xCE
+ lsls r0, 1
+ cmp r3, r0
+ ble _080911BA
+ adds r0, r4, 0
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080911F4: .4byte gRecruitedPokemonRef
+ thumb_func_end sub_80911A4
+
+ thumb_func_start sub_80911F8
+sub_80911F8:
+ push {r4,r5,lr}
+ adds r2, r0, 0
+ ldr r4, _08091230
+ cmp r2, 0x12
+ bgt _0809121C
+ adds r5, r4, 0
+ lsls r0, r2, 2
+ adds r3, r0, 0x4
+_08091208:
+ ldr r0, [r5]
+ lsls r1, r2, 2
+ adds r1, r0, r1
+ adds r0, r3
+ ldr r0, [r0]
+ str r0, [r1]
+ adds r3, 0x4
+ adds r2, 0x1
+ cmp r2, 0x12
+ ble _08091208
+_0809121C:
+ ldr r0, [r4]
+ adds r0, 0x4E
+ movs r1, 0
+ strb r1, [r0]
+ ldr r0, [r4]
+ adds r0, 0x4C
+ strb r1, [r0]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08091230: .4byte gUnknown_203B460
+ thumb_func_end sub_80911F8
+
+ thumb_func_start sub_8091234
+sub_8091234:
+ ldr r3, _08091248
+ ldr r1, [r3]
+ lsls r0, 2
+ adds r1, r0
+ movs r2, 0
+ strb r2, [r1, 0x2]
+ ldr r1, [r3]
+ adds r1, r0
+ strb r2, [r1]
+ bx lr
+ .align 2, 0
+_08091248: .4byte gUnknown_203B460
+ thumb_func_end sub_8091234
+
+ thumb_func_start sub_809124C
+sub_809124C:
+ push {lr}
+ sub sp, 0x4
+ adds r3, r0, 0
+ adds r2, r1, 0
+ lsls r3, 24
+ lsrs r3, 24
+ lsls r2, 24
+ lsrs r2, 24
+ mov r0, sp
+ adds r1, r3, 0
+ bl sub_8090A8C
+ mov r0, sp
+ bl sub_8091290
+ lsls r0, 24
+ lsrs r0, 24
+ add sp, 0x4
+ pop {r1}
+ bx r1
+ thumb_func_end sub_809124C
+
+ thumb_func_start sub_8091274
+sub_8091274:
+ push {lr}
+ sub sp, 0x4
+ adds r1, r0, 0
+ mov r0, sp
+ bl sub_8090B64
+ mov r0, sp
+ bl sub_8091290
+ lsls r0, 24
+ lsrs r0, 24
+ add sp, 0x4
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8091274
+
+ thumb_func_start sub_8091290
+sub_8091290:
+ push {r4-r6,lr}
+ adds r4, r0, 0
+ movs r3, 0
+ ldr r5, _080912B4
+ movs r6, 0x1
+_0809129A:
+ lsls r1, r3, 2
+ ldr r0, [r5]
+ adds r2, r1, r0
+ ldrb r1, [r2]
+ adds r0, r6, 0
+ ands r0, r1
+ cmp r0, 0
+ bne _080912B8
+ ldr r0, [r4]
+ str r0, [r2]
+ movs r0, 0
+ b _080912C0
+ .align 2, 0
+_080912B4: .4byte gUnknown_203B460
+_080912B8:
+ adds r3, 0x1
+ cmp r3, 0x13
+ ble _0809129A
+ movs r0, 0x1
+_080912C0:
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8091290
+
+ thumb_func_start sub_80912C8
+sub_80912C8:
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ movs r5, 0
+ movs r6, 0
+_080912D6:
+ ldr r0, _0809139C
+ lsls r1, r5, 2
+ ldr r0, [r0]
+ adds r4, r0, r1
+ ldrb r1, [r4]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _080912FE
+ ldrb r0, [r4, 0x2]
+ cmp r0, 0x69
+ bne _080912FE
+ adds r0, r4, 0
+ bl sub_80915D4
+ bl sub_80913A0
+ strb r6, [r4, 0x2]
+ strb r6, [r4, 0x1]
+ strb r6, [r4]
+_080912FE:
+ adds r5, 0x1
+ cmp r5, 0x13
+ ble _080912D6
+ bl sub_80910B4
+ movs r5, 0
+_0809130A:
+ movs r0, 0x1
+ negs r0, r0
+ mov r9, r0
+ lsls r2, r5, 2
+ ldr r1, _0809139C
+ mov r8, r1
+ ldr r0, [r1]
+ adds r3, r2, r0
+ ldrb r1, [r3]
+ movs r0, 0x1
+ ands r0, r1
+ mov r10, r2
+ adds r7, r5, 0x1
+ cmp r0, 0
+ beq _08091382
+ ldrb r0, [r3, 0x2]
+ bl GetItemOrder
+ adds r6, r0, 0
+ adds r4, r7, 0
+ cmp r7, 0x13
+ bgt _08091368
+_08091336:
+ lsls r5, r4, 2
+ mov r1, r8
+ ldr r0, [r1]
+ adds r2, r5, r0
+ ldrb r1, [r2]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _08091362
+ ldrb r0, [r2, 0x2]
+ bl GetItemOrder
+ cmp r6, r0
+ ble _08091362
+ mov r9, r4
+ mov r1, r8
+ ldr r0, [r1]
+ adds r0, r5
+ ldrb r0, [r0, 0x2]
+ bl GetItemOrder
+ adds r6, r0, 0
+_08091362:
+ adds r4, 0x1
+ cmp r4, 0x13
+ ble _08091336
+_08091368:
+ mov r4, r9
+ cmp r4, 0
+ blt _08091382
+ ldr r0, _0809139C
+ ldr r1, [r0]
+ mov r0, r10
+ adds r2, r1, r0
+ ldr r3, [r2]
+ lsls r0, r4, 2
+ adds r1, r0
+ ldr r0, [r1]
+ str r0, [r2]
+ str r3, [r1]
+_08091382:
+ adds r5, r7, 0
+ cmp r5, 0x13
+ ble _0809130A
+ bl sub_80910B4
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0809139C: .4byte gUnknown_203B460
+ thumb_func_end sub_80912C8
+
+ thumb_func_start sub_80913A0
+sub_80913A0:
+ push {lr}
+ ldr r1, _080913C4
+ ldr r1, [r1]
+ movs r3, 0x98
+ lsls r3, 2
+ adds r2, r1, r3
+ ldr r1, [r2]
+ adds r1, r0
+ str r1, [r2]
+ ldr r0, _080913C8
+ cmp r1, r0
+ bgt _080913BE
+ cmp r1, 0
+ bge _080913C0
+ movs r0, 0
+_080913BE:
+ str r0, [r2]
+_080913C0:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080913C4: .4byte gUnknown_203B460
+_080913C8: .4byte 0x0001869f
+ thumb_func_end sub_80913A0
+
+ thumb_func_start sub_80913CC
+sub_80913CC:
+ lsls r0, 24
+ ldr r1, _080913DC
+ ldr r1, [r1]
+ lsrs r0, 19
+ adds r0, r1
+ ldrh r0, [r0, 0x18]
+ bx lr
+ .align 2, 0
+_080913DC: .4byte gItemParametersData
+ thumb_func_end sub_80913CC
+
+ thumb_func_start sub_80913E0
+sub_80913E0:
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ sub sp, 0x5C
+ adds r6, r0, 0
+ adds r5, r1, 0
+ mov r8, r2
+ ldrb r0, [r6, 0x2]
+ bl GetItemDescription
+ ldrb r1, [r6, 0x2]
+ add r0, sp, 0x4
+ movs r2, 0
+ bl sub_8090DC4
+ ldrb r0, [r6, 0x2]
+ cmp r0, 0x7C
+ bne _08091414
+ ldr r0, _080914D4
+ ldrb r1, [r6, 0x1]
+ adds r1, 0x7D
+ lsls r1, 24
+ lsrs r1, 24
+ movs r2, 0
+ bl sub_8090DC4
+_08091414:
+ adds r0, r5, 0
+ bl sub_80073B8
+ movs r7, 0
+ str r7, [sp]
+ movs r0, 0x10
+ movs r1, 0
+ add r2, sp, 0x4
+ adds r3, r5, 0
+ bl sub_8014FF0
+ ldrb r0, [r6, 0x2]
+ bl GetItemDescription
+ adds r2, r0, 0
+ str r7, [sp]
+ movs r0, 0x8
+ movs r1, 0x18
+ adds r3, r5, 0
+ bl sub_8014FF0
+ ldrb r0, [r6, 0x2]
+ bl GetItemType
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x5
+ bne _080914B6
+ add r4, sp, 0x54
+ ldrb r0, [r6, 0x2]
+ bl sub_80913CC
+ adds r1, r0, 0
+ lsls r1, 16
+ lsrs r1, 16
+ adds r0, r4, 0
+ bl sub_8092A88
+ movs r0, 0x7
+ str r0, [sp]
+ adds r0, r5, 0
+ movs r1, 0x4
+ movs r2, 0x52
+ movs r3, 0xC8
+ bl sub_80078A4
+ ldr r0, _080914D8
+ ldr r2, [r0]
+ str r7, [sp]
+ movs r0, 0x4
+ movs r1, 0x54
+ adds r3, r5, 0
+ bl sub_8014FF0
+ adds r0, r4, 0
+ bl sub_8092B00
+ lsls r0, 24
+ lsrs r0, 24
+ bl GetUnformattedTypeString
+ adds r2, r0, 0
+ str r7, [sp]
+ movs r0, 0x40
+ movs r1, 0x54
+ adds r3, r5, 0
+ bl sub_8014FF0
+ adds r0, r4, 0
+ bl sub_8092BF4
+ ldr r1, _080914DC
+ str r0, [r1]
+ ldr r0, _080914E0
+ ldr r2, [r0]
+ str r7, [sp]
+ movs r0, 0x80
+ movs r1, 0x54
+ adds r3, r5, 0
+ bl sub_8014FF0
+_080914B6:
+ adds r0, r5, 0
+ bl sub_80073E0
+ ldrb r0, [r6, 0x2]
+ bl GetItemDescription
+ mov r1, r8
+ bl sub_8097DF0
+ add sp, 0x5C
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080914D4: .4byte gUnknown_202DE58
+_080914D8: .4byte gUnknown_810CF0C
+_080914DC: .4byte gUnknown_202DE30
+_080914E0: .4byte gUnknown_8115970
+ thumb_func_end sub_80913E0
+
+ thumb_func_start sub_80914E4
+sub_80914E4:
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ adds r4, r0, 0
+ cmp r0, 0
+ beq _0809151A
+ cmp r0, 0x69
+ beq _0809151A
+ cmp r0, 0x79
+ beq _0809151A
+ cmp r0, 0x77
+ beq _0809151A
+ cmp r0, 0x78
+ beq _0809151A
+ cmp r0, 0x7A
+ beq _0809151A
+ bl GetItemSellPrice
+ cmp r0, 0
+ beq _0809151A
+ adds r0, r4, 0
+ bl GetItemBuyPrice
+ cmp r0, 0
+ beq _0809151A
+ movs r0, 0x1
+ b _0809151C
+_0809151A:
+ movs r0, 0
+_0809151C:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80914E4
+
+ thumb_func_start sub_8091524
+sub_8091524:
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ adds r1, r0, 0
+ cmp r0, 0
+ beq _0809153C
+ cmp r0, 0x69
+ beq _0809153C
+ cmp r1, 0x7C
+ beq _0809153C
+ movs r0, 0x1
+ b _0809153E
+_0809153C:
+ movs r0, 0
+_0809153E:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8091524
+
+ thumb_func_start sub_8091544
+sub_8091544:
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ adds r1, r0, 0
+ cmp r0, 0
+ beq _08091568
+ cmp r0, 0x69
+ beq _08091568
+ cmp r0, 0x79
+ beq _08091568
+ cmp r0, 0x77
+ beq _08091568
+ cmp r0, 0x78
+ beq _08091568
+ cmp r1, 0x7A
+ beq _08091568
+ movs r0, 0x1
+ b _0809156A
+_08091568:
+ movs r0, 0
+_0809156A:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8091544
+
+ thumb_func_start sub_8091570
+sub_8091570:
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ adds r0, r4, 0
+ bl GetItemType
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x2
+ beq _08091596
+ adds r0, r4, 0
+ bl GetItemType
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x3
+ beq _08091596
+ movs r0, 0
+ b _08091598
+_08091596:
+ movs r0, 0x1
+_08091598:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8091570
+
+ thumb_func_start sub_80915A0
+sub_80915A0:
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ adds r1, r0, 0
+ cmp r0, 0xE0
+ beq _080915CC
+ cmp r0, 0xE1
+ beq _080915CC
+ cmp r0, 0xE2
+ beq _080915CC
+ cmp r0, 0xE3
+ beq _080915CC
+ cmp r0, 0xE4
+ beq _080915CC
+ cmp r0, 0xE5
+ beq _080915CC
+ cmp r0, 0xE6
+ beq _080915CC
+ cmp r1, 0xE7
+ beq _080915CC
+ movs r0, 0
+ b _080915CE
+_080915CC:
+ movs r0, 0x1
+_080915CE:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80915A0
+
+ thumb_func_start sub_80915D4
+sub_80915D4:
+ ldr r1, _080915E0
+ ldrb r0, [r0, 0x1]
+ lsls r0, 2
+ adds r0, r1
+ ldr r0, [r0]
+ bx lr
+ .align 2, 0
+_080915E0: .4byte gUnknown_810A3F0
+ thumb_func_end sub_80915D4
+
+ thumb_func_start sub_80915E4
+sub_80915E4:
+ ldr r1, _080915F0
+ ldrb r0, [r0, 0x1]
+ lsls r0, 2
+ adds r0, r1
+ ldr r0, [r0]
+ bx lr
+ .align 2, 0
+_080915F0: .4byte gUnknown_810A3F0
+ thumb_func_end sub_80915E4
+
+ thumb_func_start sub_80915F4
+sub_80915F4:
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ adds r6, r0, 0
+ adds r7, r3, 0
+ lsls r1, 24
+ lsrs r5, r1, 24
+ lsls r2, 24
+ lsrs r2, 24
+ mov r8, r2
+ ldr r0, _080916B8
+ strh r0, [r7]
+ movs r0, 0
+ strh r0, [r7, 0x2]
+ adds r0, r5, 0
+ bl sub_8091764
+ lsls r0, 24
+ cmp r0, 0
+ bne _0809161E
+ b _08091756
+_0809161E:
+ movs r1, 0x8
+ ldrsh r0, [r6, r1]
+ movs r1, 0
+ bl GetPokemonType
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ movs r2, 0x8
+ ldrsh r0, [r6, r2]
+ movs r1, 0x1
+ bl GetPokemonType
+ lsls r0, 24
+ lsrs r0, 24
+ adds r2, r5, 0
+ subs r2, 0x55
+ ldr r5, _080916BC
+ lsls r2, 1
+ lsls r1, r4, 3
+ adds r1, r4
+ lsls r1, 2
+ adds r1, r2, r1
+ adds r1, r5
+ movs r4, 0
+ ldrsh r3, [r1, r4]
+ lsls r1, r0, 3
+ adds r1, r0
+ lsls r1, 2
+ adds r2, r1
+ adds r2, r5
+ movs r1, 0
+ ldrsh r0, [r2, r1]
+ movs r2, 0x14
+ ldrsh r1, [r6, r2]
+ adds r3, r0
+ ldrh r4, [r6, 0x14]
+ adds r3, r4
+ strh r3, [r6, 0x14]
+ movs r2, 0x14
+ ldrsh r0, [r6, r2]
+ subs r1, r0, r1
+ lsls r3, 16
+ cmp r3, 0
+ bgt _0809167C
+ movs r0, 0x1
+ strh r0, [r6, 0x14]
+_0809167C:
+ movs r4, 0x14
+ ldrsh r0, [r6, r4]
+ ldr r2, _080916C0
+ cmp r0, r2
+ ble _08091688
+ strh r2, [r6, 0x14]
+_08091688:
+ movs r0, 0
+ cmp r1, 0x8
+ bgt _0809169C
+ movs r0, 0x1
+ cmp r1, 0x4
+ bgt _0809169C
+ movs r0, 0x3
+ cmp r1, 0x2
+ ble _0809169C
+ movs r0, 0x2
+_0809169C:
+ strh r0, [r7]
+ mov r1, r8
+ cmp r1, 0
+ bne _08091756
+ cmp r0, 0
+ bne _080916C4
+ movs r0, 0x10
+ bl RandomCapped
+ cmp r0, 0xA
+ bne _080916C4
+ movs r0, 0xF
+ b _080916D2
+ .align 2, 0
+_080916B8: .4byte 0x0000ffff
+_080916BC: .4byte gUnknown_810A580
+_080916C0: .4byte 0x000003e7
+_080916C4:
+ movs r0, 0x4
+ bl RandomCapped
+ ldr r1, _080916EC
+ lsls r0, 1
+ adds r0, r1
+ ldrh r0, [r0]
+_080916D2:
+ strh r0, [r7, 0x2]
+ ldrh r1, [r7, 0x2]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _080916F6
+ ldrb r0, [r6, 0x18]
+ cmp r0, 0xFE
+ bhi _080916F0
+ adds r0, 0x1
+ strb r0, [r6, 0x18]
+ b _080916F6
+ .align 2, 0
+_080916EC: .4byte gUnknown_81097E0
+_080916F0:
+ ldr r0, _0809170C
+ ands r0, r1
+ strh r0, [r7, 0x2]
+_080916F6:
+ ldrh r1, [r7, 0x2]
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _08091716
+ ldrb r0, [r6, 0x19]
+ cmp r0, 0xFE
+ bhi _08091710
+ adds r0, 0x1
+ strb r0, [r6, 0x19]
+ b _08091716
+ .align 2, 0
+_0809170C: .4byte 0x0000fffe
+_08091710:
+ ldr r0, _0809172C
+ ands r0, r1
+ strh r0, [r7, 0x2]
+_08091716:
+ ldrh r1, [r7, 0x2]
+ movs r0, 0x4
+ ands r0, r1
+ cmp r0, 0
+ beq _08091736
+ ldrb r0, [r6, 0x1A]
+ cmp r0, 0xFE
+ bhi _08091730
+ adds r0, 0x1
+ strb r0, [r6, 0x1A]
+ b _08091736
+ .align 2, 0
+_0809172C: .4byte 0x0000fffd
+_08091730:
+ ldr r0, _0809174C
+ ands r0, r1
+ strh r0, [r7, 0x2]
+_08091736:
+ ldrh r1, [r7, 0x2]
+ movs r0, 0x8
+ ands r0, r1
+ cmp r0, 0
+ beq _08091756
+ ldrb r0, [r6, 0x1B]
+ cmp r0, 0xFE
+ bhi _08091750
+ adds r0, 0x1
+ strb r0, [r6, 0x1B]
+ b _08091756
+ .align 2, 0
+_0809174C: .4byte 0x0000fffb
+_08091750:
+ ldr r0, _08091760
+ ands r0, r1
+ strh r0, [r7, 0x2]
+_08091756:
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08091760: .4byte 0x0000fff7
+ thumb_func_end sub_80915F4
+
+ thumb_func_start sub_8091764
+sub_8091764:
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x55
+ bls _08091776
+ cmp r0, 0x66
+ bhi _08091776
+ movs r0, 0x1
+ b _08091778
+_08091776:
+ movs r0, 0
+_08091778:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8091764
+
+ thumb_func_start sub_809177C
+sub_809177C:
+ push {r4,lr}
+ movs r4, 0
+_08091780:
+ lsls r1, r4, 2
+ ldr r0, _080917A4
+ ldr r0, [r0]
+ adds r2, r1, r0
+ ldrb r1, [r2]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _080917A8
+ ldrb r0, [r2, 0x2]
+ bl sub_8091764
+ lsls r0, 24
+ cmp r0, 0
+ beq _080917A8
+ movs r0, 0x1
+ b _080917B0
+ .align 2, 0
+_080917A4: .4byte gUnknown_203B460
+_080917A8:
+ adds r4, 0x1
+ cmp r4, 0x13
+ ble _08091780
+ movs r0, 0
+_080917B0:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_809177C
+
+ thumb_func_start sub_80917B8
+sub_80917B8:
+ push {r4,lr}
+ adds r4, r0, 0
+ ldrb r0, [r4, 0x2]
+ bl sub_8090A60
+ lsls r0, 24
+ cmp r0, 0
+ beq _080917E0
+ ldr r2, _080917DC
+ ldr r1, [r2]
+ ldrb r0, [r4, 0x2]
+ lsls r0, 1
+ adds r1, 0x50
+ adds r1, r0
+ ldrh r0, [r1]
+ ldrb r3, [r4, 0x1]
+ adds r0, r3
+ b _080917F0
+ .align 2, 0
+_080917DC: .4byte gUnknown_203B460
+_080917E0:
+ ldr r2, _0809180C
+ ldr r1, [r2]
+ ldrb r0, [r4, 0x2]
+ lsls r0, 1
+ adds r1, 0x50
+ adds r1, r0
+ ldrh r0, [r1]
+ adds r0, 0x1
+_080917F0:
+ strh r0, [r1]
+ ldr r0, [r2]
+ ldrb r1, [r4, 0x2]
+ lsls r1, 1
+ adds r0, 0x50
+ adds r2, r0, r1
+ ldrh r0, [r2]
+ ldr r1, _08091810
+ cmp r0, r1
+ bls _08091806
+ strh r1, [r2]
+_08091806:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0809180C: .4byte gUnknown_203B460
+_08091810: .4byte 0x000003e7
+ thumb_func_end sub_80917B8
+
+ thumb_func_start sub_8091814
+sub_8091814:
+ push {lr}
+ movs r3, 0
+ ldr r0, _0809183C
+ ldr r0, [r0]
+ movs r2, 0x8C
+ lsls r2, 2
+ adds r1, r0, r2
+ movs r2, 0x7
+_08091824:
+ ldrb r0, [r1]
+ cmp r0, 0
+ beq _0809182C
+ adds r3, 0x1
+_0809182C:
+ adds r1, 0x4
+ subs r2, 0x1
+ cmp r2, 0
+ bge _08091824
+ adds r0, r3, 0
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0809183C: .4byte gUnknown_203B460
+ thumb_func_end sub_8091814
+
+ thumb_func_start sub_8091840
+sub_8091840:
+ lsls r0, 24
+ ldr r1, _08091858
+ lsrs r0, 22
+ movs r2, 0x8C
+ lsls r2, 2
+ adds r0, r2
+ ldr r1, [r1]
+ adds r1, r0
+ movs r0, 0
+ strb r0, [r1]
+ strb r0, [r1, 0x1]
+ bx lr
+ .align 2, 0
+_08091858: .4byte gUnknown_203B460
+ thumb_func_end sub_8091840
+
+ thumb_func_start sub_809185C
+sub_809185C:
+ lsls r0, 24
+ ldr r1, _08091870
+ lsrs r0, 22
+ movs r2, 0x8C
+ lsls r2, 2
+ adds r0, r2
+ ldr r1, [r1]
+ adds r1, r0
+ adds r0, r1, 0
+ bx lr
+ .align 2, 0
+_08091870: .4byte gUnknown_203B460
+ thumb_func_end sub_809185C
+
+ thumb_func_start sub_8091874
+sub_8091874:
+ push {r4-r7,lr}
+ movs r2, 0
+ movs r4, 0
+ ldr r7, _08091884
+ movs r6, 0x8C
+ lsls r6, 2
+ movs r3, 0
+ b _080918A0
+ .align 2, 0
+_08091884: .4byte gUnknown_203B460
+_08091888:
+ cmp r2, r4
+ ble _0809189A
+ ldr r0, [r7]
+ lsls r1, r4, 2
+ adds r0, r6
+ adds r1, r0, r1
+ adds r0, r3
+ ldr r0, [r0]
+ str r0, [r1]
+_0809189A:
+ adds r3, 0x4
+ adds r2, 0x1
+ adds r4, 0x1
+_080918A0:
+ cmp r2, 0x7
+ bgt _080918CA
+ ldr r0, [r7]
+ adds r0, r3
+ adds r0, r6
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _080918CA
+ ldr r5, _080918E8
+ movs r1, 0x8C
+ lsls r1, 2
+_080918B6:
+ adds r3, 0x4
+ adds r2, 0x1
+ cmp r2, 0x7
+ bgt _080918CA
+ ldr r0, [r5]
+ adds r0, r3
+ adds r0, r1
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _080918B6
+_080918CA:
+ cmp r2, 0x8
+ bne _08091888
+ cmp r4, 0x7
+ bgt _080918E0
+_080918D2:
+ lsls r0, r4, 24
+ lsrs r0, 24
+ bl sub_8091840
+ adds r4, 0x1
+ cmp r4, 0x7
+ ble _080918D2
+_080918E0:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080918E8: .4byte gUnknown_203B460
+ thumb_func_end sub_8091874
+
+ thumb_func_start sub_80918EC
+sub_80918EC:
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ movs r0, 0
+_080918F8:
+ adds r1, r0, 0x1
+ mov r8, r1
+ mov r6, r8
+ cmp r1, 0x7
+ bgt _08091964
+ ldr r1, _08091978
+ mov r9, r1
+ lsls r7, r0, 2
+ movs r0, 0x8C
+ lsls r0, 2
+ mov r10, r0
+_0809190E:
+ mov r1, r9
+ ldr r0, [r1]
+ adds r0, r7
+ add r0, r10
+ ldrb r0, [r0]
+ bl GetItemOrder
+ adds r4, r0, 0
+ mov r1, r9
+ ldr r0, [r1]
+ lsls r5, r6, 2
+ adds r0, r5
+ add r0, r10
+ ldrb r0, [r0]
+ bl GetItemOrder
+ cmp r4, r0
+ bgt _0809194C
+ cmp r4, r0
+ bne _0809195E
+ mov r1, r9
+ ldr r0, [r1]
+ adds r2, r0, r7
+ ldr r1, _0809197C
+ adds r2, r1
+ adds r0, r5
+ adds r0, r1
+ ldrb r1, [r2]
+ ldrb r0, [r0]
+ cmp r1, r0
+ bcs _0809195E
+_0809194C:
+ mov r1, r9
+ ldr r0, [r1]
+ add r0, r10
+ adds r2, r0, r7
+ ldr r3, [r2]
+ adds r0, r5
+ ldr r1, [r0]
+ str r1, [r2]
+ str r3, [r0]
+_0809195E:
+ adds r6, 0x1
+ cmp r6, 0x7
+ ble _0809190E
+_08091964:
+ mov r0, r8
+ cmp r0, 0x6
+ ble _080918F8
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08091978: .4byte gUnknown_203B460
+_0809197C: .4byte 0x00000231
+ thumb_func_end sub_80918EC
+
+ thumb_func_start sub_8091980
+sub_8091980:
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ sub sp, 0x10
+ lsls r0, 24
+ lsrs r0, 24
+ mov r8, r0
+ mov r1, sp
+ ldr r0, _080919F4
+ ldm r0!, {r2-r4}
+ stm r1!, {r2-r4}
+ ldr r0, [r0]
+ str r0, [r1]
+ movs r5, 0
+_0809199C:
+ lsls r0, r5, 24
+ lsrs r0, 24
+ bl sub_8091840
+ adds r5, 0x1
+ cmp r5, 0x7
+ ble _0809199C
+ mov r0, r8
+ lsls r7, r0, 2
+ ldr r6, _080919F8
+ movs r5, 0x7
+_080919B2:
+ adds r0, r6, 0
+ bl RandomCapped
+ adds r4, r0, 0
+ adds r0, r6, 0
+ bl RandomCapped
+ adds r2, r0, 0
+ mov r1, sp
+ adds r0, r1, r7
+ ldr r0, [r0]
+ adds r1, r4, 0
+ bl sub_8091E94
+ lsls r0, 24
+ lsrs r0, 24
+ bl sub_80919FC
+ subs r5, 0x1
+ cmp r5, 0
+ bge _080919B2
+ bl sub_80918EC
+ mov r0, r8
+ bl sub_8091BB4
+ add sp, 0x10
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080919F4: .4byte gUnknown_81097E8
+_080919F8: .4byte 0x0000270f
+ thumb_func_end sub_8091980
+
+ thumb_func_start sub_80919FC
+sub_80919FC:
+ push {r4,r5,lr}
+ sub sp, 0x4
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ mov r0, sp
+ bl sub_8090B08
+ movs r3, 0
+ ldr r5, _08091A34
+ movs r4, 0x8C
+ lsls r4, 2
+_08091A14:
+ ldr r1, [r5]
+ lsls r2, r3, 2
+ adds r0, r1, r2
+ adds r0, r4
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _08091A38
+ movs r3, 0x8C
+ lsls r3, 2
+ adds r0, r1, r3
+ adds r0, r2
+ ldr r1, [sp]
+ str r1, [r0]
+ movs r0, 0
+ b _08091A40
+ .align 2, 0
+_08091A34: .4byte gUnknown_203B460
+_08091A38:
+ adds r3, 0x1
+ cmp r3, 0x7
+ ble _08091A14
+ movs r0, 0x1
+_08091A40:
+ add sp, 0x4
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80919FC
+
+ thumb_func_start sub_8091A48
+sub_8091A48:
+ push {lr}
+ movs r3, 0
+ ldr r0, _08091A70
+ ldr r0, [r0]
+ movs r2, 0x94
+ lsls r2, 2
+ adds r1, r0, r2
+ movs r2, 0x3
+_08091A58:
+ ldrb r0, [r1]
+ cmp r0, 0
+ beq _08091A60
+ adds r3, 0x1
+_08091A60:
+ adds r1, 0x4
+ subs r2, 0x1
+ cmp r2, 0
+ bge _08091A58
+ adds r0, r3, 0
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08091A70: .4byte gUnknown_203B460
+ thumb_func_end sub_8091A48
+
+ thumb_func_start sub_8091A74
+sub_8091A74:
+ lsls r0, 24
+ ldr r1, _08091A8C
+ lsrs r0, 22
+ movs r2, 0x94
+ lsls r2, 2
+ adds r0, r2
+ ldr r1, [r1]
+ adds r1, r0
+ movs r0, 0
+ strb r0, [r1]
+ strb r0, [r1, 0x1]
+ bx lr
+ .align 2, 0
+_08091A8C: .4byte gUnknown_203B460
+ thumb_func_end sub_8091A74
+
+ thumb_func_start sub_8091A90
+sub_8091A90:
+ lsls r0, 24
+ ldr r1, _08091AA4
+ lsrs r0, 22
+ movs r2, 0x94
+ lsls r2, 2
+ adds r0, r2
+ ldr r1, [r1]
+ adds r1, r0
+ adds r0, r1, 0
+ bx lr
+ .align 2, 0
+_08091AA4: .4byte gUnknown_203B460
+ thumb_func_end sub_8091A90
+
+ thumb_func_start sub_8091AA8
+sub_8091AA8:
+ push {r4-r7,lr}
+ movs r2, 0
+ movs r4, 0
+ ldr r7, _08091AB8
+ movs r6, 0x94
+ lsls r6, 2
+ movs r3, 0
+ b _08091AD4
+ .align 2, 0
+_08091AB8: .4byte gUnknown_203B460
+_08091ABC:
+ cmp r2, r4
+ ble _08091ACE
+ ldr r0, [r7]
+ lsls r1, r4, 2
+ adds r0, r6
+ adds r1, r0, r1
+ adds r0, r3
+ ldr r0, [r0]
+ str r0, [r1]
+_08091ACE:
+ adds r3, 0x4
+ adds r2, 0x1
+ adds r4, 0x1
+_08091AD4:
+ cmp r2, 0x3
+ bgt _08091AFE
+ ldr r0, [r7]
+ adds r0, r3
+ adds r0, r6
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _08091AFE
+ ldr r5, _08091B1C
+ movs r1, 0x94
+ lsls r1, 2
+_08091AEA:
+ adds r3, 0x4
+ adds r2, 0x1
+ cmp r2, 0x3
+ bgt _08091AFE
+ ldr r0, [r5]
+ adds r0, r3
+ adds r0, r1
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _08091AEA
+_08091AFE:
+ cmp r2, 0x4
+ bne _08091ABC
+ cmp r4, 0x3
+ bgt _08091B14
+_08091B06:
+ lsls r0, r4, 24
+ lsrs r0, 24
+ bl sub_8091A74
+ adds r4, 0x1
+ cmp r4, 0x3
+ ble _08091B06
+_08091B14:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08091B1C: .4byte gUnknown_203B460
+ thumb_func_end sub_8091AA8
+
+ thumb_func_start sub_8091B20
+sub_8091B20:
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ movs r0, 0
+_08091B2C:
+ adds r1, r0, 0x1
+ mov r8, r1
+ mov r6, r8
+ cmp r1, 0x3
+ bgt _08091B98
+ ldr r1, _08091BAC
+ mov r9, r1
+ lsls r7, r0, 2
+ movs r0, 0x94
+ lsls r0, 2
+ mov r10, r0
+_08091B42:
+ mov r1, r9
+ ldr r0, [r1]
+ adds r0, r7
+ add r0, r10
+ ldrb r0, [r0]
+ bl GetItemOrder
+ adds r4, r0, 0
+ mov r1, r9
+ ldr r0, [r1]
+ lsls r5, r6, 2
+ adds r0, r5
+ add r0, r10
+ ldrb r0, [r0]
+ bl GetItemOrder
+ cmp r4, r0
+ bgt _08091B80
+ cmp r4, r0
+ bne _08091B92
+ mov r1, r9
+ ldr r0, [r1]
+ adds r2, r0, r7
+ ldr r1, _08091BB0
+ adds r2, r1
+ adds r0, r5
+ adds r0, r1
+ ldrb r1, [r2]
+ ldrb r0, [r0]
+ cmp r1, r0
+ bcs _08091B92
+_08091B80:
+ mov r1, r9
+ ldr r0, [r1]
+ add r0, r10
+ adds r2, r0, r7
+ ldr r3, [r2]
+ adds r0, r5
+ ldr r1, [r0]
+ str r1, [r2]
+ str r3, [r0]
+_08091B92:
+ adds r6, 0x1
+ cmp r6, 0x3
+ ble _08091B42
+_08091B98:
+ mov r0, r8
+ cmp r0, 0x2
+ ble _08091B2C
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08091BAC: .4byte gUnknown_203B460
+_08091BB0: .4byte 0x00000251
+ thumb_func_end sub_8091B20
+
+ thumb_func_start sub_8091BB4
+sub_8091BB4:
+ push {r4-r7,lr}
+ sub sp, 0x10
+ lsls r0, 24
+ lsrs r4, r0, 24
+ mov r1, sp
+ ldr r0, _08091C14
+ ldm r0!, {r2,r3,r5}
+ stm r1!, {r2,r3,r5}
+ ldr r0, [r0]
+ str r0, [r1]
+ movs r5, 0
+_08091BCA:
+ lsls r0, r5, 24
+ lsrs r0, 24
+ bl sub_8091A74
+ adds r5, 0x1
+ cmp r5, 0x3
+ ble _08091BCA
+ lsls r7, r4, 2
+ ldr r6, _08091C18
+ movs r5, 0x3
+_08091BDE:
+ adds r0, r6, 0
+ bl RandomCapped
+ adds r4, r0, 0
+ adds r0, r6, 0
+ bl RandomCapped
+ adds r2, r0, 0
+ mov r1, sp
+ adds r0, r1, r7
+ ldr r0, [r0]
+ adds r1, r4, 0
+ bl sub_8091E94
+ lsls r0, 24
+ lsrs r0, 24
+ bl sub_8091C1C
+ subs r5, 0x1
+ cmp r5, 0
+ bge _08091BDE
+ bl sub_8091B20
+ add sp, 0x10
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08091C14: .4byte gUnknown_81097F8
+_08091C18: .4byte 0x0000270f
+ thumb_func_end sub_8091BB4
+
+ thumb_func_start sub_8091C1C
+sub_8091C1C:
+ push {r4,r5,lr}
+ sub sp, 0x4
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ mov r0, sp
+ bl sub_8090B08
+ movs r3, 0
+ ldr r5, _08091C54
+ movs r4, 0x94
+ lsls r4, 2
+_08091C34:
+ ldr r1, [r5]
+ lsls r2, r3, 2
+ adds r0, r1, r2
+ adds r0, r4
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _08091C58
+ movs r3, 0x94
+ lsls r3, 2
+ adds r0, r1, r3
+ adds r0, r2
+ ldr r1, [sp]
+ str r1, [r0]
+ movs r0, 0
+ b _08091C60
+ .align 2, 0
+_08091C54: .4byte gUnknown_203B460
+_08091C58:
+ adds r3, 0x1
+ cmp r3, 0x3
+ ble _08091C34
+ movs r0, 0x1
+_08091C60:
+ add sp, 0x4
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8091C1C
+
+ thumb_func_start sub_8091C68
+sub_8091C68:
+ push {r4-r6,lr}
+ sub sp, 0x10
+ adds r3, r0, 0
+ adds r2, r1, 0
+ mov r0, sp
+ adds r1, r3, 0
+ bl sub_809486C
+ movs r4, 0
+ ldr r5, _08091D10
+_08091C7C:
+ lsls r0, r4, 2
+ ldr r1, [r5]
+ adds r1, r0
+ mov r0, sp
+ bl sub_8091E28
+ adds r4, 0x1
+ cmp r4, 0x13
+ ble _08091C7C
+ ldr r6, _08091D10
+ movs r5, 0x50
+ movs r4, 0xEF
+_08091C94:
+ ldr r1, [r6]
+ adds r1, r5
+ mov r0, sp
+ movs r2, 0xA
+ bl sub_809488C
+ adds r5, 0x2
+ subs r4, 0x1
+ cmp r4, 0
+ bge _08091C94
+ ldr r6, _08091D10
+ movs r5, 0x8C
+ lsls r5, 2
+ movs r4, 0x7
+_08091CB0:
+ ldr r1, [r6]
+ adds r1, r5
+ mov r0, sp
+ bl sub_8091DE0
+ adds r5, 0x4
+ subs r4, 0x1
+ cmp r4, 0
+ bge _08091CB0
+ ldr r6, _08091D10
+ movs r5, 0x94
+ lsls r5, 2
+ movs r4, 0x3
+_08091CCA:
+ ldr r1, [r6]
+ adds r1, r5
+ mov r0, sp
+ bl sub_8091DE0
+ adds r5, 0x4
+ subs r4, 0x1
+ cmp r4, 0
+ bge _08091CCA
+ ldr r4, _08091D10
+ ldr r1, [r4]
+ movs r0, 0x98
+ lsls r0, 2
+ adds r1, r0
+ mov r0, sp
+ movs r2, 0x18
+ bl sub_809488C
+ ldr r1, [r4]
+ movs r0, 0x99
+ lsls r0, 2
+ adds r1, r0
+ mov r0, sp
+ movs r2, 0x18
+ bl sub_809488C
+ mov r0, sp
+ bl nullsub_102
+ ldr r0, [sp, 0x8]
+ add sp, 0x10
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08091D10: .4byte gUnknown_203B460
+ thumb_func_end sub_8091C68
+
+ thumb_func_start sub_8091D14
+sub_8091D14:
+ push {r4-r6,lr}
+ sub sp, 0x10
+ adds r3, r0, 0
+ adds r2, r1, 0
+ mov r0, sp
+ adds r1, r3, 0
+ bl sub_809485C
+ movs r4, 0
+ ldr r5, _08091DBC
+_08091D28:
+ lsls r0, r4, 2
+ ldr r1, [r5]
+ adds r1, r0
+ mov r0, sp
+ bl sub_8091E00
+ adds r4, 0x1
+ cmp r4, 0x13
+ ble _08091D28
+ ldr r6, _08091DBC
+ movs r5, 0x50
+ movs r4, 0xEF
+_08091D40:
+ ldr r1, [r6]
+ adds r1, r5
+ mov r0, sp
+ movs r2, 0xA
+ bl sub_8094924
+ adds r5, 0x2
+ subs r4, 0x1
+ cmp r4, 0
+ bge _08091D40
+ ldr r6, _08091DBC
+ movs r5, 0x8C
+ lsls r5, 2
+ movs r4, 0x7
+_08091D5C:
+ ldr r1, [r6]
+ adds r1, r5
+ mov r0, sp
+ bl sub_8091DC0
+ adds r5, 0x4
+ subs r4, 0x1
+ cmp r4, 0
+ bge _08091D5C
+ ldr r6, _08091DBC
+ movs r5, 0x94
+ lsls r5, 2
+ movs r4, 0x3
+_08091D76:
+ ldr r1, [r6]
+ adds r1, r5
+ mov r0, sp
+ bl sub_8091DC0
+ adds r5, 0x4
+ subs r4, 0x1
+ cmp r4, 0
+ bge _08091D76
+ ldr r4, _08091DBC
+ ldr r1, [r4]
+ movs r0, 0x98
+ lsls r0, 2
+ adds r1, r0
+ mov r0, sp
+ movs r2, 0x18
+ bl sub_8094924
+ ldr r1, [r4]
+ movs r0, 0x99
+ lsls r0, 2
+ adds r1, r0
+ mov r0, sp
+ movs r2, 0x18
+ bl sub_8094924
+ mov r0, sp
+ bl nullsub_102
+ ldr r0, [sp, 0x8]
+ add sp, 0x10
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08091DBC: .4byte gUnknown_203B460
+ thumb_func_end sub_8091D14
+
+ thumb_func_start sub_8091DC0
+sub_8091DC0:
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ adds r4, r1, 0
+ movs r2, 0x8
+ bl sub_8094924
+ adds r4, 0x1
+ adds r0, r5, 0
+ adds r1, r4, 0
+ movs r2, 0x7
+ bl sub_8094924
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8091DC0
+
+ thumb_func_start sub_8091DE0
+sub_8091DE0:
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ adds r4, r1, 0
+ movs r2, 0x8
+ bl sub_809488C
+ adds r4, 0x1
+ adds r0, r5, 0
+ adds r1, r4, 0
+ movs r2, 0x7
+ bl sub_809488C
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8091DE0
+
+ thumb_func_start sub_8091E00
+sub_8091E00:
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ adds r5, r1, 0
+ movs r2, 0x8
+ bl sub_8094924
+ adds r1, r5, 0x1
+ adds r0, r4, 0
+ movs r2, 0x7
+ bl sub_8094924
+ adds r5, 0x2
+ adds r0, r4, 0
+ adds r1, r5, 0
+ movs r2, 0x8
+ bl sub_8094924
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8091E00
+
+ thumb_func_start sub_8091E28
+sub_8091E28:
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ adds r5, r1, 0
+ movs r2, 0x8
+ bl sub_809488C
+ adds r1, r5, 0x1
+ adds r0, r4, 0
+ movs r2, 0x7
+ bl sub_809488C
+ adds r5, 0x2
+ adds r0, r4, 0
+ adds r1, r5, 0
+ movs r2, 0x8
+ bl sub_809488C
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8091E28
+
+ thumb_func_start sub_8091E50
+sub_8091E50:
+ lsls r0, 24
+ ldr r1, _08091E5C
+ lsrs r0, 22
+ adds r0, r1
+ ldr r0, [r0]
+ bx lr
+ .align 2, 0
+_08091E5C: .4byte gUnknown_810AF50
+ thumb_func_end sub_8091E50
+
+ thumb_func_start sub_8091E60
+sub_8091E60:
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r3, r0, 24
+ lsls r0, r1, 24
+ lsrs r4, r0, 24
+ cmp r3, 0x3E
+ bhi _08091E8C
+ ldr r2, _08091E88
+ lsrs r0, 27
+ lsls r1, r3, 5
+ adds r0, r1
+ adds r0, r2
+ ldrb r0, [r0]
+ movs r1, 0x7
+ ands r1, r4
+ asrs r0, r1
+ movs r1, 0x1
+ ands r0, r1
+ b _08091E8E
+ .align 2, 0
+_08091E88: .4byte gUnknown_8108F64
+_08091E8C:
+ movs r0, 0
+_08091E8E:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8091E60
+
+ thumb_func_start sub_8091E94
+sub_8091E94:
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ ldr r4, _08091EE4
+ add sp, r4
+ mov r8, r1
+ mov r10, r2
+ ldr r1, _08091EE8
+ subs r0, 0x1
+ lsls r0, 2
+ adds r0, r1
+ movs r3, 0
+ add r1, sp, 0x18
+ mov r9, r1
+ ldr r2, _08091EEC
+ mov r12, r2
+ add r6, sp, 0x1F8
+ ldr r2, [r0]
+ adds r7, r6, 0
+ movs r4, 0
+_08091EC0:
+ ldrh r1, [r2]
+ cmp r1, r12
+ bls _08091EF4
+ ldrh r0, [r2]
+ ldr r1, _08091EF0
+ adds r0, r1
+ cmp r0, 0
+ beq _08091EFC
+ movs r5, 0
+ adds r1, r7, r4
+_08091ED4:
+ strh r5, [r1]
+ adds r1, 0x2
+ adds r4, 0x2
+ adds r3, 0x1
+ subs r0, 0x1
+ cmp r0, 0
+ bne _08091ED4
+ b _08091EFC
+ .align 2, 0
+_08091EE4: .4byte 0xfffffc10
+_08091EE8: .4byte gUnknown_8108E58
+_08091EEC: .4byte 0x0000752f
+_08091EF0: .4byte 0xffff8ad0
+_08091EF4:
+ adds r0, r6, r4
+ strh r1, [r0]
+ adds r4, 0x2
+ adds r3, 0x1
+_08091EFC:
+ adds r2, 0x2
+ cmp r3, 0xFB
+ ble _08091EC0
+ movs r3, 0xB
+ add r2, sp, 0x1F8
+ mov r1, sp
+_08091F08:
+ ldrh r0, [r2]
+ strh r0, [r1]
+ adds r2, 0x2
+ adds r1, 0x2
+ subs r3, 0x1
+ cmp r3, 0
+ bge _08091F08
+ mov r2, r9
+ add r1, sp, 0x210
+ movs r3, 0xEF
+_08091F1C:
+ ldrh r0, [r1]
+ strh r0, [r2]
+ adds r1, 0x2
+ adds r2, 0x2
+ subs r3, 0x1
+ cmp r3, 0
+ bge _08091F1C
+ movs r7, 0xC
+ movs r6, 0
+ mov r0, sp
+ movs r2, 0
+ ldrsh r0, [r0, r2]
+ cmp r0, 0
+ beq _08091F4A
+ mov r0, sp
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ cmp r0, r8
+ blt _08091F4A
+ movs r7, 0
+ b _08091F66
+_08091F46:
+ mov r8, r5
+ b _08091F9C
+_08091F4A:
+ adds r6, 0x1
+ cmp r6, 0xB
+ bgt _08091F66
+ lsls r0, r6, 1
+ mov r2, sp
+ adds r1, r2, r0
+ movs r2, 0
+ ldrsh r0, [r1, r2]
+ cmp r0, 0
+ beq _08091F4A
+ cmp r0, r8
+ blt _08091F4A
+ lsls r0, r6, 24
+ lsrs r7, r0, 24
+_08091F66:
+ movs r0, 0x46
+ mov r8, r0
+ cmp r7, 0xC
+ beq _08091F9C
+ movs r6, 0
+ mov r4, r9
+_08091F72:
+ movs r1, 0
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ beq _08091F94
+ lsls r0, r6, 24
+ lsrs r5, r0, 24
+ adds r0, r5, 0
+ bl GetItemType
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, r7
+ bne _08091F94
+ movs r2, 0
+ ldrsh r0, [r4, r2]
+ cmp r0, r10
+ bge _08091F46
+_08091F94:
+ adds r4, 0x2
+ adds r6, 0x1
+ cmp r6, 0xEF
+ ble _08091F72
+_08091F9C:
+ mov r0, r8
+ movs r3, 0xFC
+ lsls r3, 2
+ add sp, r3
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8091E94
+
+ thumb_func_start sub_8091FB4
+sub_8091FB4:
+ push {r4-r6,lr}
+ movs r6, 0
+_08091FB8:
+ ldr r0, _08092038
+ lsls r1, r6, 2
+ ldr r0, [r0]
+ adds r4, r0, r1
+ ldrb r1, [r4]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _08091FE8
+ movs r0, 0xF7
+ ands r0, r1
+ movs r5, 0
+ strb r0, [r4]
+ ldrb r0, [r4, 0x2]
+ cmp r0, 0x69
+ bne _08091FE8
+ adds r0, r4, 0
+ bl sub_80915D4
+ bl sub_80913A0
+ strb r5, [r4, 0x2]
+ strb r5, [r4, 0x1]
+ strb r5, [r4]
+_08091FE8:
+ adds r6, 0x1
+ cmp r6, 0x13
+ ble _08091FB8
+ bl sub_80910B4
+ movs r6, 0
+_08091FF4:
+ movs r0, 0x58
+ adds r1, r6, 0
+ muls r1, r0
+ ldr r0, _0809203C
+ ldr r0, [r0]
+ adds r2, r1, r0
+ ldrb r1, [r2]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _08092026
+ adds r4, r2, 0
+ adds r4, 0x28
+ ldrb r0, [r4]
+ cmp r0, 0
+ beq _08092026
+ cmp r0, 0x69
+ bne _08092026
+ adds r0, r4, 0
+ bl sub_80915E4
+ bl sub_80913A0
+ movs r0, 0
+ strb r0, [r4]
+_08092026:
+ adds r6, 0x1
+ movs r0, 0xCE
+ lsls r0, 1
+ cmp r6, r0
+ ble _08091FF4
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08092038: .4byte gUnknown_203B460
+_0809203C: .4byte gRecruitedPokemonRef
+ thumb_func_end sub_8091FB4
+
+ .align 2,0
diff --git a/asm/jirachi_wish.s b/asm/jirachi_wish.s
index ba23793..6ac1fc7 100644
--- a/asm/jirachi_wish.s
+++ b/asm/jirachi_wish.s
@@ -60,7 +60,7 @@ JirachiWish:
movs r1, 0x46
bl sub_803E708
ldr r0, _0808B848
- bl sub_8083E38
+ bl PlaySoundEffect
movs r0, 0x96
movs r1, 0x46
bl sub_803E708
@@ -78,14 +78,14 @@ JirachiWish:
bl sub_80856E0
movs r0, 0xB5
lsls r0, 1
- bl sub_8083E38
+ bl PlaySoundEffect
ldr r0, _0808B850
bl sub_8052910
movs r0, 0xA
movs r1, 0x46
bl sub_803E708
adds r0, r6, 0
- bl sub_808696C
+ bl SpriteLookAroundEffect
ldr r0, _0808B854
bl sub_8052910
movs r0, 0xA
@@ -165,7 +165,7 @@ _0808B6D2:
beq _0808B744
movs r0, 0xA6
lsls r0, 1
- bl sub_8083E38
+ bl PlaySoundEffect
adds r0, r7, 0
bl sub_808BB3C
adds r0, r6, 0
@@ -249,7 +249,7 @@ _0808B77E:
beq _0808B7FA
movs r0, 0xC8
lsls r0, 1
- bl sub_8083E38
+ bl PlaySoundEffect
adds r0, r7, 0
bl sub_808BB3C
adds r0, r6, 0
@@ -320,7 +320,7 @@ _0808B87C:
adds r0, r4, 0
bl UnlockFriendArea
movs r0, 0xD4
- bl sub_8083E38
+ bl PlaySoundEffect
bl sub_8083600
adds r1, r0, 0
ldr r0, _0808BA3C
@@ -399,7 +399,7 @@ _0808B8F4:
beq _0808B970
movs r0, 0xC8
lsls r0, 1
- bl sub_8083E38
+ bl PlaySoundEffect
adds r0, r7, 0
bl sub_808BB3C
adds r0, r6, 0
@@ -534,7 +534,7 @@ sub_808BAA4:
push {r4,r5,lr}
sub sp, 0x4
ldr r0, _0808BB34
- bl sub_8083E38
+ bl PlaySoundEffect
ldr r1, _0808BB38
movs r0, 0x1F
str r0, [r1]
diff --git a/asm/kangaskhan_storage.s b/asm/kangaskhan_storage.s
new file mode 100644
index 0000000..cdd121a
--- /dev/null
+++ b/asm/kangaskhan_storage.s
@@ -0,0 +1,685 @@
+ .include "constants/gba_constants.inc"
+ .include "asm/macros.inc"
+
+ .syntax unified
+
+ .text
+
+ thumb_func_start sub_8016FF8
+sub_8016FF8:
+ push {r4,r5,lr}
+ sub sp, 0x14
+ ldr r1, _08017014
+ ldr r0, [r1]
+ ldr r0, [r0, 0x4]
+ adds r4, r1, 0
+ cmp r0, 0x1D
+ bls _0801700A
+ b _08017584
+_0801700A:
+ lsls r0, 2
+ ldr r1, _08017018
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_08017014: .4byte gUnknown_203B208
+_08017018: .4byte _0801701C
+ .align 2, 0
+_0801701C:
+ .4byte _08017094
+ .4byte _080170BC
+ .4byte _0801710C
+ .4byte _0801713C
+ .4byte _08017584
+ .4byte _0801715C
+ .4byte _0801718C
+ .4byte _080171BC
+ .4byte _080171EC
+ .4byte _0801721C
+ .4byte _0801724C
+ .4byte _0801726C
+ .4byte _0801728C
+ .4byte _080172AC
+ .4byte _080172BA
+ .4byte _080172C2
+ .4byte _080174A8
+ .4byte _080172E4
+ .4byte _0801731C
+ .4byte _08017344
+ .4byte _08017394
+ .4byte _080173B4
+ .4byte _080173E8
+ .4byte _080173F6
+ .4byte _08017404
+ .4byte _08017474
+ .4byte _080174A8
+ .4byte _080174B2
+ .4byte _080174E8
+ .4byte _08017530
+_08017094:
+ bl sub_80175FC
+ ldr r2, _080170B4
+ ldr r0, [r2]
+ adds r0, 0xE4
+ movs r4, 0
+ movs r1, 0x1
+ strb r1, [r0]
+ ldr r3, _080170B8
+ ldr r5, [r2]
+ ldr r1, [r5]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 4
+ adds r0, r3
+ b _080170DA
+ .align 2, 0
+_080170B4: .4byte gUnknown_203B208
+_080170B8: .4byte gUnknown_80D5404
+_080170BC:
+ bl sub_80175FC
+ ldr r1, _08017104
+ ldr r0, [r1]
+ adds r0, 0xE4
+ movs r4, 0
+ strb r4, [r0]
+ ldr r2, _08017108
+ ldr r5, [r1]
+ ldr r1, [r5]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 4
+ adds r2, 0x4
+ adds r0, r2
+_080170DA:
+ ldr r0, [r0]
+ ldr r2, [r5, 0x18]
+ adds r3, r5, 0
+ adds r3, 0x24
+ adds r1, r5, 0
+ adds r1, 0x4C
+ str r1, [sp]
+ movs r1, 0x4
+ str r1, [sp, 0x4]
+ str r4, [sp, 0x8]
+ adds r1, r5, 0
+ adds r1, 0xE8
+ ldr r1, [r1]
+ str r1, [sp, 0xC]
+ movs r1, 0xC
+ str r1, [sp, 0x10]
+ movs r1, 0
+ bl sub_8014248
+ b _08017584
+ .align 2, 0
+_08017104: .4byte gUnknown_203B208
+_08017108: .4byte gUnknown_80D5404
+_0801710C:
+ ldr r0, [r4]
+ movs r1, 0x1
+ str r1, [r0, 0x8]
+ adds r0, 0xE4
+ movs r1, 0
+ strb r1, [r0]
+ ldr r2, _08017134
+ ldr r3, [r4]
+ ldr r1, [r3]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 4
+ adds r2, 0x4C
+ adds r0, r2
+ ldr r0, [r0]
+ adds r3, 0xE8
+ ldr r2, [r3]
+ ldr r3, _08017138
+ b _080173D8
+ .align 2, 0
+_08017134: .4byte gUnknown_80D5404
+_08017138: .4byte 0x0000010d
+_0801713C:
+ ldr r0, [r4]
+ movs r1, 0x4
+ str r1, [r0, 0x8]
+ adds r0, 0xE4
+ movs r1, 0x1
+ strb r1, [r0]
+ ldr r2, _08017158
+ ldr r3, [r4]
+ ldr r1, [r3]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 4
+ adds r2, 0x8
+ b _080173CE
+ .align 2, 0
+_08017158: .4byte gUnknown_80D5404
+_0801715C:
+ ldr r0, [r4]
+ movs r1, 0x1
+ str r1, [r0, 0x8]
+ adds r0, 0xE4
+ movs r1, 0
+ strb r1, [r0]
+ ldr r2, _08017184
+ ldr r3, [r4]
+ ldr r1, [r3]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 4
+ adds r2, 0x34
+ adds r0, r2
+ ldr r0, [r0]
+ adds r3, 0xE8
+ ldr r2, [r3]
+ ldr r3, _08017188
+ b _080173D8
+ .align 2, 0
+_08017184: .4byte gUnknown_80D5404
+_08017188: .4byte 0x0000010d
+_0801718C:
+ ldr r0, [r4]
+ movs r1, 0x1
+ str r1, [r0, 0x8]
+ adds r0, 0xE4
+ movs r1, 0
+ strb r1, [r0]
+ ldr r2, _080171B4
+ ldr r3, [r4]
+ ldr r1, [r3]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 4
+ adds r2, 0x38
+ adds r0, r2
+ ldr r0, [r0]
+ adds r3, 0xE8
+ ldr r2, [r3]
+ ldr r3, _080171B8
+ b _080173D8
+ .align 2, 0
+_080171B4: .4byte gUnknown_80D5404
+_080171B8: .4byte 0x0000010d
+_080171BC:
+ ldr r0, [r4]
+ movs r1, 0x1
+ str r1, [r0, 0x8]
+ adds r0, 0xE4
+ movs r1, 0
+ strb r1, [r0]
+ ldr r2, _080171E4
+ ldr r3, [r4]
+ ldr r1, [r3]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 4
+ adds r2, 0x3C
+ adds r0, r2
+ ldr r0, [r0]
+ adds r3, 0xE8
+ ldr r2, [r3]
+ ldr r3, _080171E8
+ b _080173D8
+ .align 2, 0
+_080171E4: .4byte gUnknown_80D5404
+_080171E8: .4byte 0x0000010d
+_080171EC:
+ ldr r0, [r4]
+ movs r1, 0x1
+ str r1, [r0, 0x8]
+ adds r0, 0xE4
+ movs r1, 0
+ strb r1, [r0]
+ ldr r2, _08017214
+ ldr r3, [r4]
+ ldr r1, [r3]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 4
+ adds r2, 0x48
+ adds r0, r2
+ ldr r0, [r0]
+ adds r3, 0xE8
+ ldr r2, [r3]
+ ldr r3, _08017218
+ b _080173D8
+ .align 2, 0
+_08017214: .4byte gUnknown_80D5404
+_08017218: .4byte 0x0000010d
+_0801721C:
+ ldr r0, _08017244
+ ldr r1, [r4]
+ adds r1, 0xC
+ movs r2, 0
+ bl sub_8090E14
+ ldr r0, [r4]
+ movs r1, 0xE
+ str r1, [r0, 0x8]
+ adds r0, 0xE4
+ movs r1, 0
+ strb r1, [r0]
+ ldr r2, _08017248
+ ldr r3, [r4]
+ ldr r1, [r3]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 4
+ adds r2, 0x40
+ b _080173CE
+ .align 2, 0
+_08017244: .4byte gUnknown_202DE58
+_08017248: .4byte gUnknown_80D5404
+_0801724C:
+ ldr r0, [r4]
+ movs r1, 0xE
+ str r1, [r0, 0x8]
+ adds r0, 0xE4
+ movs r1, 0
+ strb r1, [r0]
+ ldr r2, _08017268
+ ldr r3, [r4]
+ ldr r1, [r3]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 4
+ adds r2, 0x44
+ b _080173CE
+ .align 2, 0
+_08017268: .4byte gUnknown_80D5404
+_0801726C:
+ ldr r0, [r4]
+ movs r1, 0xD
+ str r1, [r0, 0x8]
+ adds r0, 0xE4
+ movs r1, 0
+ strb r1, [r0]
+ ldr r2, _08017288
+ ldr r3, [r4]
+ ldr r1, [r3]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 4
+ adds r2, 0xC
+ b _080173CE
+ .align 2, 0
+_08017288: .4byte gUnknown_80D5404
+_0801728C:
+ ldr r0, [r4]
+ movs r1, 0xE
+ str r1, [r0, 0x8]
+ adds r0, 0xE4
+ movs r1, 0
+ strb r1, [r0]
+ ldr r2, _080172A8
+ ldr r3, [r4]
+ ldr r1, [r3]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 4
+ adds r2, 0x10
+ b _080173CE
+ .align 2, 0
+_080172A8: .4byte gUnknown_80D5404
+_080172AC:
+ movs r0, 0x3
+ movs r1, 0x3
+ movs r2, 0
+ movs r3, 0xA
+ bl sub_801A5D8
+ b _08017584
+_080172BA:
+ movs r0, 0x1
+ bl sub_801A8D0
+ b _08017584
+_080172C2:
+ bl sub_801A9E0
+ bl sub_80176B8
+ ldr r0, _080172E0
+ ldr r2, [r0]
+ adds r0, r2, 0
+ adds r0, 0x58
+ adds r1, r2, 0
+ adds r1, 0x24
+ adds r3, r2, 0
+ adds r3, 0x4C
+ ldr r2, [r2, 0x1C]
+ b _08017494
+ .align 2, 0
+_080172E0: .4byte gUnknown_203B208
+_080172E4:
+ bl sub_80177F8
+ ldr r0, _08017310
+ ldr r4, _08017314
+ ldr r1, [r4]
+ adds r1, 0xC
+ movs r2, 0
+ bl sub_8090E14
+ ldr r0, [r4]
+ adds r0, 0xE4
+ movs r5, 0
+ strb r5, [r0]
+ ldr r2, _08017318
+ ldr r4, [r4]
+ ldr r1, [r4]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 4
+ adds r2, 0x14
+ b _08017504
+ .align 2, 0
+_08017310: .4byte gUnknown_202DE58
+_08017314: .4byte gUnknown_203B208
+_08017318: .4byte gUnknown_80D5404
+_0801731C:
+ bl sub_80177F8
+ ldr r1, _0801733C
+ ldr r0, [r1]
+ adds r0, 0xE4
+ movs r5, 0
+ strb r5, [r0]
+ ldr r2, _08017340
+ ldr r4, [r1]
+ ldr r1, [r4]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 4
+ adds r2, 0x18
+ b _08017504
+ .align 2, 0
+_0801733C: .4byte gUnknown_203B208
+_08017340: .4byte gUnknown_80D5404
+_08017344:
+ bl sub_8090A34
+ cmp r0, 0
+ bne _0801735C
+ bl sub_801A928
+ ldr r0, _08017358
+ ldr r1, [r0]
+ movs r0, 0x1
+ b _08017362
+ .align 2, 0
+_08017358: .4byte gUnknown_203B208
+_0801735C:
+ ldr r0, _08017388
+ ldr r1, [r0]
+ movs r0, 0xC
+_08017362:
+ str r0, [r1, 0x8]
+ ldr r3, _08017388
+ ldr r0, [r3]
+ adds r0, 0xE4
+ movs r1, 0x1
+ strb r1, [r0]
+ ldr r2, _0801738C
+ ldr r3, [r3]
+ ldr r1, [r3]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 4
+ adds r2, 0x1C
+ adds r0, r2
+ ldr r0, [r0]
+ adds r3, 0xE8
+ ldr r2, [r3]
+ ldr r3, _08017390
+ b _080173D8
+ .align 2, 0
+_08017388: .4byte gUnknown_203B208
+_0801738C: .4byte gUnknown_80D5404
+_08017390: .4byte 0x0000010d
+_08017394:
+ ldr r0, [r4]
+ movs r1, 0x16
+ str r1, [r0, 0x8]
+ adds r0, 0xE4
+ movs r1, 0
+ strb r1, [r0]
+ ldr r2, _080173B0
+ ldr r3, [r4]
+ ldr r1, [r3]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 4
+ adds r2, 0x20
+ b _080173CE
+ .align 2, 0
+_080173B0: .4byte gUnknown_80D5404
+_080173B4:
+ ldr r0, [r4]
+ movs r1, 0x17
+ str r1, [r0, 0x8]
+ adds r0, 0xE4
+ movs r1, 0
+ strb r1, [r0]
+ ldr r2, _080173E0
+ ldr r3, [r4]
+ ldr r1, [r3]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 4
+ adds r2, 0x24
+_080173CE:
+ adds r0, r2
+ ldr r0, [r0]
+ adds r3, 0xE8
+ ldr r2, [r3]
+ ldr r3, _080173E4
+_080173D8:
+ movs r1, 0
+ bl sub_80141B4
+ b _08017584
+ .align 2, 0
+_080173E0: .4byte gUnknown_80D5404
+_080173E4: .4byte 0x0000030d
+_080173E8:
+ movs r0, 0x1
+ movs r1, 0x3
+ movs r2, 0
+ movs r3, 0xA
+ bl sub_801C8C4
+ b _080173FC
+_080173F6:
+ movs r0, 0x1
+ bl sub_801CB5C
+_080173FC:
+ movs r0, 0
+ bl sub_801AD34
+ b _08017584
+_08017404:
+ ldr r2, [r4]
+ adds r1, r2, 0
+ adds r1, 0xB8
+ movs r0, 0x2
+ str r0, [r1]
+ subs r1, 0x8
+ movs r0, 0x1
+ str r0, [r1]
+ ldr r0, _08017430
+ ldr r1, [r0]
+ ldrb r0, [r2, 0xE]
+ lsls r0, 1
+ adds r1, 0x50
+ adds r3, r1, r0
+ ldrh r0, [r3]
+ cmp r0, 0x63
+ bls _08017434
+ adds r1, r2, 0
+ adds r1, 0xB4
+ movs r0, 0x63
+ b _0801743A
+ .align 2, 0
+_08017430: .4byte gUnknown_203B460
+_08017434:
+ adds r1, r2, 0
+ adds r1, 0xB4
+ ldrh r0, [r3]
+_0801743A:
+ str r0, [r1]
+ ldr r2, [r4]
+ adds r1, r2, 0
+ adds r1, 0xAC
+ adds r0, r2, 0
+ adds r0, 0xB4
+ ldr r0, [r0]
+ str r0, [r1]
+ adds r1, 0x10
+ movs r0, 0x1
+ str r0, [r1]
+ adds r1, 0x4
+ movs r3, 0x82
+ lsls r3, 1
+ adds r0, r2, r3
+ str r0, [r1]
+ adds r1, 0x4
+ movs r0, 0x28
+ str r0, [r1]
+ adds r1, 0x4
+ movs r0, 0x12
+ str r0, [r1]
+ adds r0, r2, 0
+ adds r0, 0xA8
+ bl sub_8013AA0
+ bl sub_8017598
+ b _08017584
+_08017474:
+ bl sub_801CCD8
+ movs r0, 0
+ bl sub_801AD34
+ bl sub_8017758
+ ldr r0, _080174A4
+ ldr r2, [r0]
+ adds r0, r2, 0
+ adds r0, 0x58
+ adds r1, r2, 0
+ adds r1, 0x24
+ adds r3, r2, 0
+ adds r3, 0x4C
+ ldr r2, [r2, 0x20]
+_08017494:
+ str r2, [sp]
+ movs r2, 0x2
+ str r2, [sp, 0x4]
+ movs r2, 0
+ bl sub_8012D60
+ b _08017584
+ .align 2, 0
+_080174A4: .4byte gUnknown_203B208
+_080174A8:
+ ldr r0, [r4]
+ adds r0, 0xC
+ bl sub_801B3C0
+ b _08017584
+_080174B2:
+ bl sub_80177F8
+ ldr r0, _080174DC
+ ldr r4, _080174E0
+ ldr r1, [r4]
+ adds r1, 0xC
+ movs r2, 0
+ bl sub_8090E14
+ ldr r0, [r4]
+ adds r0, 0xE4
+ movs r5, 0
+ strb r5, [r0]
+ ldr r2, _080174E4
+ ldr r4, [r4]
+ ldr r1, [r4]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 4
+ adds r2, 0x28
+ b _08017504
+ .align 2, 0
+_080174DC: .4byte gUnknown_202DE58
+_080174E0: .4byte gUnknown_203B208
+_080174E4: .4byte gUnknown_80D5404
+_080174E8:
+ bl sub_80177F8
+ ldr r1, _08017528
+ ldr r0, [r1]
+ adds r0, 0xE4
+ movs r5, 0
+ strb r5, [r0]
+ ldr r2, _0801752C
+ ldr r4, [r1]
+ ldr r1, [r4]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 4
+ adds r2, 0x2C
+_08017504:
+ adds r0, r2
+ ldr r0, [r0]
+ adds r3, r4, 0
+ adds r3, 0x24
+ str r5, [sp]
+ movs r1, 0x4
+ str r1, [sp, 0x4]
+ str r5, [sp, 0x8]
+ adds r4, 0xE8
+ ldr r1, [r4]
+ str r1, [sp, 0xC]
+ movs r1, 0xC
+ str r1, [sp, 0x10]
+ movs r1, 0
+ movs r2, 0x4
+ bl sub_8014248
+ b _08017584
+ .align 2, 0
+_08017528: .4byte gUnknown_203B208
+_0801752C: .4byte gUnknown_80D5404
+_08017530:
+ movs r0, 0x1
+ bl sub_801CF14
+ lsls r0, 24
+ cmp r0, 0
+ bne _08017544
+ bl sub_8090A34
+ cmp r0, 0x13
+ ble _08017554
+_08017544:
+ bl sub_801CBB8
+ ldr r0, _08017550
+ ldr r1, [r0]
+ movs r0, 0x1
+ b _0801755A
+ .align 2, 0
+_08017550: .4byte gUnknown_203B208
+_08017554:
+ ldr r0, _0801758C
+ ldr r1, [r0]
+ movs r0, 0x15
+_0801755A:
+ str r0, [r1, 0x8]
+ ldr r3, _0801758C
+ ldr r0, [r3]
+ adds r0, 0xE4
+ movs r1, 0x1
+ strb r1, [r0]
+ ldr r2, _08017590
+ ldr r3, [r3]
+ ldr r1, [r3]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 4
+ adds r2, 0x30
+ adds r0, r2
+ ldr r0, [r0]
+ adds r3, 0xE8
+ ldr r2, [r3]
+ ldr r3, _08017594
+ movs r1, 0
+ bl sub_80141B4
+_08017584:
+ add sp, 0x14
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0801758C: .4byte gUnknown_203B208
+_08017590: .4byte gUnknown_80D5404
+_08017594: .4byte 0x0000010d
+ thumb_func_end sub_8016FF8
+
+
+ .align 2,0
diff --git a/asm/kangaskhan_storage_1.s b/asm/kangaskhan_storage_1.s
new file mode 100644
index 0000000..733a90d
--- /dev/null
+++ b/asm/kangaskhan_storage_1.s
@@ -0,0 +1,2675 @@
+ .include "constants/gba_constants.inc"
+ .include "asm/macros.inc"
+
+ .syntax unified
+
+ .text
+
+ thumb_func_start sub_80175FC
+sub_80175FC:
+ push {r4-r7,lr}
+ ldr r4, _0801767C
+ ldr r0, [r4]
+ adds r0, 0x4C
+ movs r1, 0
+ movs r2, 0xA
+ bl MemoryFill16
+ ldr r3, [r4]
+ movs r2, 0
+ ldr r0, _08017680
+ ldr r0, [r0]
+ str r0, [r3, 0x24]
+ movs r0, 0x2
+ str r0, [r3, 0x28]
+ movs r1, 0x1
+ ldr r0, _08017684
+ ldr r0, [r0]
+ str r0, [r3, 0x2C]
+ movs r0, 0x3
+ str r0, [r3, 0x30]
+ ldr r0, _08017688
+ ldr r0, [r0]
+ str r0, [r3, 0x34]
+ movs r0, 0x6
+ str r0, [r3, 0x38]
+ ldr r0, _0801768C
+ ldr r0, [r0]
+ str r0, [r3, 0x3C]
+ str r1, [r3, 0x40]
+ movs r6, 0x4
+ str r2, [r3, 0x44]
+ str r1, [r3, 0x48]
+ movs r5, 0
+ mov r12, r3
+ adds r3, 0x28
+ mov r2, r12
+ adds r2, 0x4C
+_08017648:
+ ldrh r0, [r2]
+ cmp r0, 0
+ bne _08017658
+ ldr r1, [r3]
+ mov r7, r12
+ ldr r0, [r7, 0x18]
+ cmp r1, r0
+ beq _080176B2
+_08017658:
+ adds r3, 0x8
+ adds r2, 0x2
+ adds r5, 0x1
+ cmp r5, r6
+ blt _08017648
+ movs r5, 0
+ cmp r5, r6
+ bge _080176B2
+ ldr r1, [r4]
+ adds r0, r1, 0
+ adds r0, 0x4C
+ ldrh r0, [r0]
+ cmp r0, 0
+ bne _08017690
+ ldr r0, [r1, 0x28]
+ str r0, [r1, 0x18]
+ b _080176B2
+ .align 2, 0
+_0801767C: .4byte gUnknown_203B208
+_08017680: .4byte gUnknown_80D4958
+_08017684: .4byte gUnknown_80D4964
+_08017688: .4byte gUnknown_80D4970
+_0801768C: .4byte gUnknown_80D4934
+_08017690:
+ adds r5, 0x1
+ cmp r5, r6
+ bge _080176B2
+ ldr r2, [r4]
+ lsls r0, r5, 1
+ adds r1, r2, 0
+ adds r1, 0x4C
+ adds r1, r0
+ ldrh r0, [r1]
+ cmp r0, 0
+ bne _08017690
+ lsls r0, r5, 3
+ adds r1, r2, 0
+ adds r1, 0x28
+ adds r1, r0
+ ldr r0, [r1]
+ str r0, [r2, 0x18]
+_080176B2:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80175FC
+
+ thumb_func_start sub_80176B8
+sub_80176B8:
+ push {r4-r7,lr}
+ ldr r4, _08017724
+ ldr r0, [r4]
+ adds r0, 0x4C
+ movs r1, 0
+ movs r2, 0xA
+ bl MemoryFill16
+ ldr r3, [r4]
+ movs r2, 0
+ ldr r0, _08017728
+ ldr r0, [r0]
+ str r0, [r3, 0x24]
+ movs r0, 0x2
+ str r0, [r3, 0x28]
+ movs r1, 0x1
+ ldr r0, _0801772C
+ ldr r0, [r0]
+ str r0, [r3, 0x2C]
+ movs r0, 0x6
+ str r0, [r3, 0x30]
+ movs r6, 0x2
+ str r2, [r3, 0x34]
+ str r1, [r3, 0x38]
+ movs r5, 0
+ mov r12, r3
+ adds r3, 0x28
+ mov r2, r12
+ adds r2, 0x4C
+_080176F2:
+ ldrh r0, [r2]
+ cmp r0, 0
+ bne _08017702
+ ldr r1, [r3]
+ mov r7, r12
+ ldr r0, [r7, 0x1C]
+ cmp r1, r0
+ beq _08017752
+_08017702:
+ adds r3, 0x8
+ adds r2, 0x2
+ adds r5, 0x1
+ cmp r5, r6
+ blt _080176F2
+ movs r5, 0
+ cmp r5, r6
+ bge _08017752
+ ldr r1, [r4]
+ adds r0, r1, 0
+ adds r0, 0x4C
+ ldrh r0, [r0]
+ cmp r0, 0
+ bne _08017730
+ ldr r0, [r1, 0x28]
+ str r0, [r1, 0x1C]
+ b _08017752
+ .align 2, 0
+_08017724: .4byte gUnknown_203B208
+_08017728: .4byte gUnknown_80D4958
+_0801772C: .4byte gUnknown_80D4970
+_08017730:
+ adds r5, 0x1
+ cmp r5, r6
+ bge _08017752
+ ldr r2, [r4]
+ lsls r0, r5, 1
+ adds r1, r2, 0
+ adds r1, 0x4C
+ adds r1, r0
+ ldrh r0, [r1]
+ cmp r0, 0
+ bne _08017730
+ lsls r0, r5, 3
+ adds r1, r2, 0
+ adds r1, 0x28
+ adds r1, r0
+ ldr r0, [r1]
+ str r0, [r2, 0x1C]
+_08017752:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80176B8
+
+ thumb_func_start sub_8017758
+sub_8017758:
+ push {r4-r7,lr}
+ ldr r4, _080177C4
+ ldr r0, [r4]
+ adds r0, 0x4C
+ movs r1, 0
+ movs r2, 0xA
+ bl MemoryFill16
+ ldr r3, [r4]
+ movs r2, 0
+ ldr r0, _080177C8
+ ldr r0, [r0]
+ str r0, [r3, 0x24]
+ movs r0, 0x3
+ str r0, [r3, 0x28]
+ movs r1, 0x1
+ ldr r0, _080177CC
+ ldr r0, [r0]
+ str r0, [r3, 0x2C]
+ movs r0, 0x6
+ str r0, [r3, 0x30]
+ movs r6, 0x2
+ str r2, [r3, 0x34]
+ str r1, [r3, 0x38]
+ movs r5, 0
+ mov r12, r3
+ adds r3, 0x28
+ mov r2, r12
+ adds r2, 0x4C
+_08017792:
+ ldrh r0, [r2]
+ cmp r0, 0
+ bne _080177A2
+ ldr r1, [r3]
+ mov r7, r12
+ ldr r0, [r7, 0x20]
+ cmp r1, r0
+ beq _080177F2
+_080177A2:
+ adds r3, 0x8
+ adds r2, 0x2
+ adds r5, 0x1
+ cmp r5, r6
+ blt _08017792
+ movs r5, 0
+ cmp r5, r6
+ bge _080177F2
+ ldr r1, [r4]
+ adds r0, r1, 0
+ adds r0, 0x4C
+ ldrh r0, [r0]
+ cmp r0, 0
+ bne _080177D0
+ ldr r0, [r1, 0x28]
+ str r0, [r1, 0x20]
+ b _080177F2
+ .align 2, 0
+_080177C4: .4byte gUnknown_203B208
+_080177C8: .4byte gUnknown_80D4964
+_080177CC: .4byte gUnknown_80D4970
+_080177D0:
+ adds r5, 0x1
+ cmp r5, r6
+ bge _080177F2
+ ldr r2, [r4]
+ lsls r0, r5, 1
+ adds r1, r2, 0
+ adds r1, 0x4C
+ adds r1, r0
+ ldrh r0, [r1]
+ cmp r0, 0
+ bne _080177D0
+ lsls r0, r5, 3
+ adds r1, r2, 0
+ adds r1, 0x28
+ adds r1, r0
+ ldr r0, [r1]
+ str r0, [r2, 0x20]
+_080177F2:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8017758
+
+ thumb_func_start sub_80177F8
+sub_80177F8:
+ ldr r0, _0801781C
+ ldr r1, [r0]
+ movs r3, 0
+ ldr r0, _08017820
+ ldr r0, [r0]
+ str r0, [r1, 0x24]
+ movs r0, 0x4
+ str r0, [r1, 0x28]
+ movs r2, 0x1
+ ldr r0, _08017824
+ ldr r0, [r0]
+ str r0, [r1, 0x2C]
+ movs r0, 0x5
+ str r0, [r1, 0x30]
+ str r3, [r1, 0x34]
+ str r2, [r1, 0x38]
+ bx lr
+ .align 2, 0
+_0801781C: .4byte gUnknown_203B208
+_08017820: .4byte gUnknown_80D4920
+_08017824: .4byte gUnknown_80D4928
+ thumb_func_end sub_80177F8
+
+ thumb_func_start sub_8017828
+sub_8017828:
+ push {lr}
+ sub sp, 0x4
+ mov r0, sp
+ bl sub_80144A4
+ cmp r0, 0
+ bne _080178C8
+ ldr r1, [sp]
+ cmp r1, 0x1
+ beq _08017842
+ ldr r0, _08017854
+ ldr r0, [r0]
+ str r1, [r0, 0x18]
+_08017842:
+ ldr r0, [sp]
+ cmp r0, 0x2
+ beq _08017862
+ cmp r0, 0x2
+ bgt _08017858
+ cmp r0, 0x1
+ beq _080178C2
+ b _080178C8
+ .align 2, 0
+_08017854: .4byte gUnknown_203B208
+_08017858:
+ cmp r0, 0x3
+ beq _0801788E
+ cmp r0, 0x6
+ beq _080178BA
+ b _080178C8
+_08017862:
+ bl sub_8090A34
+ cmp r0, 0
+ bne _08017872
+ movs r0, 0x5
+ bl UpdateKangaskhanStorageState
+ b _080178C8
+_08017872:
+ movs r0, 0
+ bl sub_801CF50
+ lsls r0, 24
+ cmp r0, 0
+ beq _08017886
+ movs r0, 0x8
+ bl UpdateKangaskhanStorageState
+ b _080178C8
+_08017886:
+ movs r0, 0xB
+ bl UpdateKangaskhanStorageState
+ b _080178C8
+_0801788E:
+ movs r0, 0x1
+ bl sub_801CF14
+ lsls r0, 24
+ cmp r0, 0
+ beq _080178A2
+ movs r0, 0x7
+ bl UpdateKangaskhanStorageState
+ b _080178C8
+_080178A2:
+ bl sub_8090A34
+ cmp r0, 0x13
+ ble _080178B2
+ movs r0, 0x6
+ bl UpdateKangaskhanStorageState
+ b _080178C8
+_080178B2:
+ movs r0, 0x14
+ bl UpdateKangaskhanStorageState
+ b _080178C8
+_080178BA:
+ movs r0, 0x2
+ bl UpdateKangaskhanStorageState
+ b _080178C8
+_080178C2:
+ movs r0, 0x3
+ bl UpdateKangaskhanStorageState
+_080178C8:
+ add sp, 0x4
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8017828
+
+ thumb_func_start sub_80178D0
+sub_80178D0:
+ push {r4,lr}
+ sub sp, 0x4
+ mov r0, sp
+ bl sub_80144A4
+ cmp r0, 0
+ bne _0801791E
+ ldr r0, [sp]
+ cmp r0, 0x4
+ beq _080178F4
+ cmp r0, 0x4
+ bgt _080178EE
+ cmp r0, 0x1
+ beq _08017918
+ b _0801791E
+_080178EE:
+ cmp r0, 0x5
+ beq _08017918
+ b _0801791E
+_080178F4:
+ ldr r4, _08017914
+ ldr r0, [r4]
+ adds r0, 0xC
+ bl sub_80917B8
+ ldr r0, [r4]
+ ldr r0, [r0, 0x10]
+ bl sub_80911F8
+ bl sub_80910B4
+ movs r0, 0x13
+ bl UpdateKangaskhanStorageState
+ b _0801791E
+ .align 2, 0
+_08017914: .4byte gUnknown_203B208
+_08017918:
+ movs r0, 0xE
+ bl UpdateKangaskhanStorageState
+_0801791E:
+ add sp, 0x4
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80178D0
+
+ thumb_func_start sub_8017928
+sub_8017928:
+ push {lr}
+ sub sp, 0x8
+ mov r0, sp
+ bl sub_80144A4
+ cmp r0, 0
+ bne _080179A2
+ ldr r0, [sp]
+ cmp r0, 0x4
+ beq _0801794C
+ cmp r0, 0x4
+ bgt _08017946
+ cmp r0, 0x1
+ beq _0801799C
+ b _080179A2
+_08017946:
+ cmp r0, 0x5
+ beq _0801799C
+ b _080179A2
+_0801794C:
+ ldr r0, _0801798C
+ ldr r1, [r0]
+ ldr r0, _08017990
+ ldr r3, [r0]
+ ldrb r0, [r3, 0xE]
+ lsls r0, 1
+ adds r1, 0x50
+ adds r1, r0
+ ldrb r2, [r3, 0xD]
+ ldrh r0, [r1]
+ subs r0, r2
+ strh r0, [r1]
+ ldrb r2, [r3, 0xE]
+ ldr r1, _08017994
+ ldr r0, [sp, 0x4]
+ ands r0, r1
+ orrs r0, r2
+ str r0, [sp, 0x4]
+ ldrb r1, [r3, 0xD]
+ lsls r1, 8
+ ldr r2, _08017998
+ ands r0, r2
+ orrs r0, r1
+ str r0, [sp, 0x4]
+ add r0, sp, 0x4
+ bl sub_8091274
+ movs r0, 0x1D
+ bl UpdateKangaskhanStorageState
+ b _080179A2
+ .align 2, 0
+_0801798C: .4byte gUnknown_203B460
+_08017990: .4byte gUnknown_203B208
+_08017994: .4byte 0xffffff00
+_08017998: .4byte 0xffff00ff
+_0801799C:
+ movs r0, 0x17
+ bl UpdateKangaskhanStorageState
+_080179A2:
+ add sp, 0x8
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8017928
+
+ thumb_func_start sub_80179A8
+sub_80179A8:
+ push {r4-r7,lr}
+ sub sp, 0x4
+ mov r0, sp
+ bl sub_80144A4
+ cmp r0, 0
+ bne _08017A12
+ ldr r0, [sp]
+ cmp r0, 0x4
+ beq _080179CC
+ cmp r0, 0x4
+ bgt _080179C6
+ cmp r0, 0x1
+ beq _08017A0C
+ b _08017A12
+_080179C6:
+ cmp r0, 0x5
+ beq _08017A0C
+ b _08017A12
+_080179CC:
+ movs r5, 0
+ ldr r6, _08017A08
+ movs r7, 0
+_080179D2:
+ adds r0, r5, 0
+ bl sub_801AED0
+ cmp r0, 0
+ beq _080179F2
+ lsls r4, r5, 2
+ ldr r0, [r6]
+ adds r0, r4
+ bl sub_80917B8
+ ldr r0, [r6]
+ adds r0, r4
+ strb r7, [r0, 0x2]
+ ldr r0, [r6]
+ adds r0, r4
+ strb r7, [r0]
+_080179F2:
+ adds r5, 0x1
+ cmp r5, 0x13
+ ble _080179D2
+ bl sub_80910B4
+ bl sub_801AE84
+ movs r0, 0x13
+ bl UpdateKangaskhanStorageState
+ b _08017A12
+ .align 2, 0
+_08017A08: .4byte gUnknown_203B460
+_08017A0C:
+ movs r0, 0xE
+ bl UpdateKangaskhanStorageState
+_08017A12:
+ add sp, 0x4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80179A8
+
+ thumb_func_start sub_8017A1C
+sub_8017A1C:
+ push {r4-r6,lr}
+ sub sp, 0x8
+ mov r0, sp
+ bl sub_80144A4
+ cmp r0, 0
+ bne _08017AEE
+ ldr r0, [sp]
+ cmp r0, 0x4
+ beq _08017A40
+ cmp r0, 0x4
+ bgt _08017A3A
+ cmp r0, 0x1
+ beq _08017AE8
+ b _08017AEE
+_08017A3A:
+ cmp r0, 0x5
+ beq _08017AE8
+ b _08017AEE
+_08017A40:
+ movs r5, 0
+ ldr r6, _08017A88
+_08017A44:
+ lsls r0, r5, 24
+ lsrs r4, r0, 24
+ adds r0, r4, 0
+ bl sub_801CFE0
+ cmp r0, 0
+ beq _08017ACE
+ ldr r1, _08017A8C
+ ldr r0, [sp, 0x4]
+ ands r0, r1
+ orrs r0, r4
+ str r0, [sp, 0x4]
+ add r4, sp, 0x4
+ ldrb r0, [r4]
+ bl sub_8090A60
+ lsls r0, 24
+ cmp r0, 0
+ beq _08017AA2
+ ldr r2, _08017A90
+ ldr r1, [r2]
+ ldrb r0, [r4]
+ lsls r0, 1
+ adds r1, 0x50
+ adds r1, r0
+ ldrh r1, [r1]
+ cmp r1, 0x63
+ bls _08017A94
+ ldr r0, [sp, 0x4]
+ ands r0, r6
+ movs r1, 0xC6
+ lsls r1, 7
+ b _08017A9C
+ .align 2, 0
+_08017A88: .4byte 0xffff00ff
+_08017A8C: .4byte 0xffffff00
+_08017A90: .4byte gUnknown_203B460
+_08017A94:
+ lsls r1, 24
+ lsrs r1, 16
+ ldr r0, [sp, 0x4]
+ ands r0, r6
+_08017A9C:
+ orrs r0, r1
+ str r0, [sp, 0x4]
+ b _08017AB0
+_08017AA2:
+ ldr r0, [sp, 0x4]
+ ands r0, r6
+ movs r1, 0x80
+ lsls r1, 1
+ orrs r0, r1
+ str r0, [sp, 0x4]
+ ldr r2, _08017AE4
+_08017AB0:
+ ldr r3, [r2]
+ add r0, sp, 0x4
+ ldrb r1, [r4]
+ lsls r1, 1
+ adds r3, 0x50
+ adds r3, r1
+ ldr r1, [sp, 0x4]
+ lsrs r1, 8
+ lsls r1, 24
+ lsrs r1, 24
+ ldrh r2, [r3]
+ subs r2, r1
+ strh r2, [r3]
+ bl sub_8091274
+_08017ACE:
+ adds r5, 0x1
+ cmp r5, 0xEF
+ ble _08017A44
+ bl sub_80910B4
+ bl sub_801CF94
+ movs r0, 0x1D
+ bl UpdateKangaskhanStorageState
+ b _08017AEE
+ .align 2, 0
+_08017AE4: .4byte gUnknown_203B460
+_08017AE8:
+ movs r0, 0x17
+ bl UpdateKangaskhanStorageState
+_08017AEE:
+ add sp, 0x8
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8017A1C
+
+ thumb_func_start sub_8017AF8
+sub_8017AF8:
+ push {lr}
+ movs r0, 0x1
+ bl sub_801A6E8
+ cmp r0, 0x3
+ beq _08017B14
+ cmp r0, 0x3
+ bhi _08017B0E
+ cmp r0, 0x2
+ beq _08017B78
+ b _08017B82
+_08017B0E:
+ cmp r0, 0x4
+ beq _08017B50
+ b _08017B82
+_08017B14:
+ bl sub_801AEA8
+ cmp r0, 0
+ beq _08017B2A
+ movs r0, 0
+ bl sub_8099690
+ movs r0, 0x12
+ bl UpdateKangaskhanStorageState
+ b _08017B82
+_08017B2A:
+ bl sub_801A8AC
+ ldr r1, _08017B48
+ ldr r2, [r1]
+ str r0, [r2, 0x10]
+ ldr r1, _08017B4C
+ ldr r1, [r1]
+ lsls r0, 2
+ adds r1, r0
+ ldr r0, [r1]
+ str r0, [r2, 0xC]
+ movs r0, 0xF
+ bl UpdateKangaskhanStorageState
+ b _08017B82
+ .align 2, 0
+_08017B48: .4byte gUnknown_203B208
+_08017B4C: .4byte gUnknown_203B460
+_08017B50:
+ bl sub_801A8AC
+ ldr r1, _08017B70
+ ldr r2, [r1]
+ str r0, [r2, 0x10]
+ ldr r1, _08017B74
+ ldr r1, [r1]
+ lsls r0, 2
+ adds r1, r0
+ ldr r0, [r1]
+ str r0, [r2, 0xC]
+ movs r0, 0x10
+ bl UpdateKangaskhanStorageState
+ b _08017B82
+ .align 2, 0
+_08017B70: .4byte gUnknown_203B208
+_08017B74: .4byte gUnknown_203B460
+_08017B78:
+ bl sub_801A928
+ movs r0, 0x1
+ bl UpdateKangaskhanStorageState
+_08017B82:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8017AF8
+
+ thumb_func_start sub_8017B88
+sub_8017B88:
+ push {r4,lr}
+ movs r0, 0x1
+ bl sub_801CA08
+ cmp r0, 0x2
+ beq _08017C10
+ cmp r0, 0x2
+ bhi _08017B9E
+ cmp r0, 0x1
+ beq _08017C1C
+ b _08017C22
+_08017B9E:
+ cmp r0, 0x3
+ beq _08017BA8
+ cmp r0, 0x4
+ beq _08017BE4
+ b _08017C22
+_08017BA8:
+ bl sub_801CFB8
+ cmp r0, 0
+ beq _08017BB8
+ movs r0, 0x1C
+ bl UpdateKangaskhanStorageState
+ b _08017C22
+_08017BB8:
+ bl sub_801CB24
+ ldr r4, _08017BE0
+ ldr r1, [r4]
+ strb r0, [r1, 0x14]
+ ldr r1, [r4]
+ adds r0, r1, 0
+ adds r0, 0xC
+ ldrb r1, [r1, 0x14]
+ movs r2, 0
+ bl sub_8090A8C
+ ldr r1, [r4]
+ movs r0, 0x1
+ strb r0, [r1, 0xD]
+ movs r0, 0x19
+ bl UpdateKangaskhanStorageState
+ b _08017C22
+ .align 2, 0
+_08017BE0: .4byte gUnknown_203B208
+_08017BE4:
+ bl sub_801CB24
+ ldr r4, _08017C0C
+ ldr r1, [r4]
+ strb r0, [r1, 0x14]
+ ldr r1, [r4]
+ adds r0, r1, 0
+ adds r0, 0xC
+ ldrb r1, [r1, 0x14]
+ movs r2, 0
+ bl sub_8090A8C
+ ldr r1, [r4]
+ movs r0, 0x1
+ strb r0, [r1, 0xD]
+ movs r0, 0x1A
+ bl UpdateKangaskhanStorageState
+ b _08017C22
+ .align 2, 0
+_08017C0C: .4byte gUnknown_203B208
+_08017C10:
+ bl sub_801CBB8
+ movs r0, 0x1
+ bl UpdateKangaskhanStorageState
+ b _08017C22
+_08017C1C:
+ movs r0, 0
+ bl sub_801AD34
+_08017C22:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8017B88
+
+ thumb_func_start sub_8017C28
+sub_8017C28:
+ push {r4,lr}
+ movs r0, 0
+ bl sub_801CA08
+ ldr r4, _08017C54
+ ldr r0, [r4]
+ adds r0, 0x58
+ bl sub_8012FD8
+ ldr r0, [r4]
+ adds r0, 0xA8
+ bl sub_8013BBC
+ cmp r0, 0x1
+ beq _08017C58
+ cmp r0, 0x1
+ bcc _08017C76
+ cmp r0, 0x2
+ beq _08017C70
+ cmp r0, 0x3
+ beq _08017C5E
+ b _08017C76
+ .align 2, 0
+_08017C54: .4byte gUnknown_203B208
+_08017C58:
+ bl sub_8017598
+ b _08017C76
+_08017C5E:
+ ldr r0, [r4]
+ adds r1, r0, 0
+ adds r1, 0xA8
+ ldr r1, [r1]
+ strb r1, [r0, 0xD]
+ movs r0, 0x1B
+ bl UpdateKangaskhanStorageState
+ b _08017C76
+_08017C70:
+ movs r0, 0x17
+ bl UpdateKangaskhanStorageState
+_08017C76:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8017C28
+
+ thumb_func_start sub_8017C7C
+sub_8017C7C:
+ push {r4,lr}
+ sub sp, 0x4
+ movs r0, 0
+ str r0, [sp]
+ bl sub_801A6E8
+ ldr r4, _08017CBC
+ ldr r0, [r4]
+ adds r0, 0x58
+ bl sub_8012FD8
+ lsls r0, 24
+ cmp r0, 0
+ bne _08017CAC
+ ldr r0, [r4]
+ adds r0, 0x58
+ mov r1, sp
+ bl sub_8013114
+ ldr r1, [sp]
+ cmp r1, 0x1
+ beq _08017CAC
+ ldr r0, [r4]
+ str r1, [r0, 0x1C]
+_08017CAC:
+ ldr r0, [sp]
+ cmp r0, 0x2
+ beq _08017CC6
+ cmp r0, 0x2
+ bgt _08017CC0
+ cmp r0, 0x1
+ beq _08017D14
+ b _08017D1A
+ .align 2, 0
+_08017CBC: .4byte gUnknown_203B208
+_08017CC0:
+ cmp r0, 0x6
+ beq _08017D06
+ b _08017D1A
+_08017CC6:
+ movs r0, 0
+ bl sub_8099690
+ ldr r4, _08017CE4
+ ldr r0, [r4]
+ ldrb r0, [r0, 0xE]
+ bl sub_8091524
+ lsls r0, 24
+ cmp r0, 0
+ bne _08017CE8
+ movs r0, 0x9
+ bl UpdateKangaskhanStorageState
+ b _08017D1A
+ .align 2, 0
+_08017CE4: .4byte gUnknown_203B208
+_08017CE8:
+ ldr r0, [r4]
+ ldr r0, [r0, 0x10]
+ bl sub_801ADA0
+ lsls r0, 24
+ cmp r0, 0
+ bne _08017CFE
+ movs r0, 0xA
+ bl UpdateKangaskhanStorageState
+ b _08017D1A
+_08017CFE:
+ movs r0, 0x11
+ bl UpdateKangaskhanStorageState
+ b _08017D1A
+_08017D06:
+ movs r0, 0
+ bl sub_8099690
+ movs r0, 0x10
+ bl UpdateKangaskhanStorageState
+ b _08017D1A
+_08017D14:
+ movs r0, 0xE
+ bl UpdateKangaskhanStorageState
+_08017D1A:
+ add sp, 0x4
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8017C7C
+
+ thumb_func_start sub_8017D24
+sub_8017D24:
+ push {r4,lr}
+ sub sp, 0x4
+ movs r0, 0
+ str r0, [sp]
+ bl sub_801CA08
+ ldr r4, _08017D64
+ ldr r0, [r4]
+ adds r0, 0x58
+ bl sub_8012FD8
+ lsls r0, 24
+ cmp r0, 0
+ bne _08017D54
+ ldr r0, [r4]
+ adds r0, 0x58
+ mov r1, sp
+ bl sub_8013114
+ ldr r1, [sp]
+ cmp r1, 0x1
+ beq _08017D54
+ ldr r0, [r4]
+ str r1, [r0, 0x20]
+_08017D54:
+ ldr r0, [sp]
+ cmp r0, 0x3
+ beq _08017D6E
+ cmp r0, 0x3
+ bgt _08017D68
+ cmp r0, 0x1
+ beq _08017DB0
+ b _08017DB6
+ .align 2, 0
+_08017D64: .4byte gUnknown_203B208
+_08017D68:
+ cmp r0, 0x6
+ beq _08017DA8
+ b _08017DB6
+_08017D6E:
+ bl sub_8090A34
+ cmp r0, 0x13
+ ble _08017D82
+ bl sub_801CBB8
+ movs r0, 0x6
+ bl UpdateKangaskhanStorageState
+ b _08017DB6
+_08017D82:
+ ldr r0, _08017D9C
+ ldr r0, [r0]
+ ldrb r0, [r0, 0xE]
+ bl sub_8090A60
+ lsls r0, 24
+ cmp r0, 0
+ beq _08017DA0
+ movs r0, 0x18
+ bl UpdateKangaskhanStorageState
+ b _08017DB6
+ .align 2, 0
+_08017D9C: .4byte gUnknown_203B208
+_08017DA0:
+ movs r0, 0x1B
+ bl UpdateKangaskhanStorageState
+ b _08017DB6
+_08017DA8:
+ movs r0, 0x1A
+ bl UpdateKangaskhanStorageState
+ b _08017DB6
+_08017DB0:
+ movs r0, 0x17
+ bl UpdateKangaskhanStorageState
+_08017DB6:
+ add sp, 0x4
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8017D24
+
+ thumb_func_start sub_8017DC0
+sub_8017DC0:
+ push {lr}
+ bl sub_801B410
+ cmp r0, 0x1
+ bls _08017DD8
+ cmp r0, 0x3
+ bhi _08017DD8
+ bl sub_801B450
+ movs r0, 0xE
+ bl UpdateKangaskhanStorageState
+_08017DD8:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8017DC0
+
+ thumb_func_start sub_8017DDC
+sub_8017DDC:
+ push {lr}
+ bl sub_801B410
+ cmp r0, 0x1
+ bls _08017DF4
+ cmp r0, 0x3
+ bhi _08017DF4
+ bl sub_801B450
+ movs r0, 0x17
+ bl UpdateKangaskhanStorageState
+_08017DF4:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8017DDC
+
+ thumb_func_start sub_8017DF8
+sub_8017DF8:
+ push {lr}
+ sub sp, 0x4
+ mov r0, sp
+ bl sub_80144A4
+ cmp r0, 0
+ bne _08017E10
+ ldr r0, _08017E18
+ ldr r0, [r0]
+ ldr r0, [r0, 0x8]
+ bl UpdateKangaskhanStorageState
+_08017E10:
+ add sp, 0x4
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08017E18: .4byte gUnknown_203B208
+ thumb_func_end sub_8017DF8
+
+ thumb_func_start sub_8017E1C
+sub_8017E1C:
+ push {r4,lr}
+ bl ResetUnusedInputStruct
+ movs r0, 0
+ movs r1, 0x1
+ movs r2, 0x1
+ bl sub_800641C
+ ldr r4, _08017E50
+ movs r0, 0xA8
+ lsls r0, 1
+ movs r1, 0x8
+ bl MemoryAlloc
+ str r0, [r4]
+ movs r1, 0
+ str r1, [r0, 0x14]
+ str r1, [r0, 0x18]
+ str r1, [r0, 0x1C]
+ movs r0, 0
+ bl sub_8017F10
+ movs r0, 0x1
+ pop {r4}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08017E50: .4byte gUnknown_203B20C
+ thumb_func_end sub_8017E1C
+
+ thumb_func_start sub_8017E54
+sub_8017E54:
+ push {lr}
+ ldr r0, _08017E6C
+ ldr r0, [r0]
+ ldr r0, [r0]
+ cmp r0, 0xE
+ bhi _08017EEC
+ lsls r0, 2
+ ldr r1, _08017E70
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_08017E6C: .4byte gUnknown_203B20C
+_08017E70: .4byte _08017E74
+ .align 2, 0
+_08017E74:
+ .4byte _08017EB0
+ .4byte _08017EB8
+ .4byte _08017EEC
+ .4byte _08017EE8
+ .4byte _08017EBE
+ .4byte _08017EBE
+ .4byte _08017EC4
+ .4byte _08017ECA
+ .4byte _08017EEC
+ .4byte _08017EEC
+ .4byte _08017ED0
+ .4byte _08017ED0
+ .4byte _08017ED6
+ .4byte _08017EDC
+ .4byte _08017EE2
+_08017EB0:
+ movs r0, 0x1
+ bl sub_8017F10
+ b _08017EEC
+_08017EB8:
+ bl sub_8018588
+ b _08017EEC
+_08017EBE:
+ bl sub_8018620
+ b _08017EEC
+_08017EC4:
+ bl sub_8018904
+ b _08017EEC
+_08017ECA:
+ bl sub_8018AC8
+ b _08017EEC
+_08017ED0:
+ bl sub_80186F8
+ b _08017EEC
+_08017ED6:
+ bl sub_8018854
+ b _08017EEC
+_08017EDC:
+ bl sub_80189C8
+ b _08017EEC
+_08017EE2:
+ bl sub_8018AE4
+ b _08017EEC
+_08017EE8:
+ movs r0, 0x3
+ b _08017EEE
+_08017EEC:
+ movs r0, 0
+_08017EEE:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8017E54
+
+ thumb_func_start sub_8017EF4
+sub_8017EF4:
+ push {r4,lr}
+ ldr r4, _08017F0C
+ ldr r0, [r4]
+ cmp r0, 0
+ beq _08017F06
+ bl MemoryFree
+ movs r0, 0
+ str r0, [r4]
+_08017F06:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08017F0C: .4byte gUnknown_203B20C
+ thumb_func_end sub_8017EF4
+
+ thumb_func_start sub_8017F10
+sub_8017F10:
+ push {lr}
+ ldr r1, _08017F24
+ ldr r1, [r1]
+ str r0, [r1]
+ bl sub_8017F28
+ bl sub_8018100
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08017F24: .4byte gUnknown_203B20C
+ thumb_func_end sub_8017F10
+
+ thumb_func_start sub_8017F28
+sub_8017F28:
+ push {r4-r7,lr}
+ ldr r4, _08017F48
+ ldr r0, [r4]
+ adds r0, 0xF0
+ bl sub_8006518
+ ldr r0, [r4]
+ ldr r0, [r0]
+ cmp r0, 0xD
+ bls _08017F3E
+ b _080180BC
+_08017F3E:
+ lsls r0, 2
+ ldr r1, _08017F4C
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_08017F48: .4byte gUnknown_203B20C
+_08017F4C: .4byte _08017F50
+ .align 2, 0
+_08017F50:
+ .4byte _080180BC
+ .4byte _08017F88
+ .4byte _080180BC
+ .4byte _080180BC
+ .4byte _08017FE8
+ .4byte _08017FE8
+ .4byte _0801809C
+ .4byte _080180BC
+ .4byte _080180BC
+ .4byte _080180BC
+ .4byte _08018034
+ .4byte _08018034
+ .4byte _08018084
+ .4byte _0801809C
+_08017F88:
+ ldr r4, _08017FDC
+ ldr r1, [r4]
+ ldr r2, _08017FE0
+ adds r1, 0xF0
+ 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 r1, [r4]
+ movs r6, 0x84
+ lsls r6, 1
+ adds r1, r6
+ adds r0, r2, 0
+ ldm r0!, {r3,r5,r7}
+ stm r1!, {r3,r5,r7}
+ ldm r0!, {r3,r6,r7}
+ stm r1!, {r3,r6,r7}
+ ldr r0, [r4]
+ adds r0, 0xF0
+ ldm r2!, {r5-r7}
+ stm r0!, {r5-r7}
+ ldm r2!, {r1,r3,r5}
+ stm r0!, {r1,r3,r5}
+ bl sub_80182E4
+ ldr r2, [r4]
+ movs r0, 0x90
+ lsls r0, 1
+ adds r2, r0
+ ldr r1, _08017FE4
+ ldm r1!, {r3,r6,r7}
+ stm r2!, {r3,r6,r7}
+ ldm r1!, {r5-r7}
+ stm r2!, {r5-r7}
+ ldr r1, [r4]
+ adds r0, r1, r0
+ adds r1, 0x20
+ bl sub_8012CAC
+ b _080180E0
+ .align 2, 0
+_08017FDC: .4byte gUnknown_203B20C
+_08017FE0: .4byte gUnknown_80DB7B8
+_08017FE4: .4byte gUnknown_80DB7D0
+_08017FE8:
+ ldr r3, _0801802C
+ ldr r1, [r3]
+ ldr r2, _08018030
+ adds r1, 0xF0
+ adds r0, r2, 0
+ ldm r0!, {r4-r6}
+ stm r1!, {r4-r6}
+ ldm r0!, {r4,r5,r7}
+ stm r1!, {r4,r5,r7}
+ ldr r1, [r3]
+ movs r6, 0x84
+ lsls r6, 1
+ adds r1, r6
+ adds r0, r2, 0
+ ldm r0!, {r4,r5,r7}
+ stm r1!, {r4,r5,r7}
+ ldm r0!, {r4,r6,r7}
+ stm r1!, {r4,r6,r7}
+ ldr r1, [r3]
+ movs r5, 0x90
+ lsls r5, 1
+ adds r1, r5
+ adds r0, r2, 0
+ ldm r0!, {r4,r6,r7}
+ stm r1!, {r4,r6,r7}
+ ldm r0!, {r5-r7}
+ stm r1!, {r5-r7}
+ ldr r0, [r3]
+ adds r0, 0xF0
+ ldm r2!, {r1,r3,r4}
+ stm r0!, {r1,r3,r4}
+ ldm r2!, {r5-r7}
+ stm r0!, {r5-r7}
+ b _080180E0
+ .align 2, 0
+_0801802C: .4byte gUnknown_203B20C
+_08018030: .4byte gUnknown_80DB7B8
+_08018034:
+ ldr r3, _08018078
+ ldr r1, [r3]
+ ldr r2, _0801807C
+ adds r1, 0xF0
+ adds r0, r2, 0
+ ldm r0!, {r4-r6}
+ stm r1!, {r4-r6}
+ ldm r0!, {r4,r5,r7}
+ stm r1!, {r4,r5,r7}
+ ldr r1, [r3]
+ movs r6, 0x84
+ lsls r6, 1
+ adds r1, r6
+ adds r0, r2, 0
+ ldm r0!, {r4,r5,r7}
+ stm r1!, {r4,r5,r7}
+ ldm r0!, {r4,r6,r7}
+ stm r1!, {r4,r6,r7}
+ ldr r0, [r3]
+ movs r5, 0x90
+ lsls r5, 1
+ adds r0, r5
+ ldm r2!, {r1,r6,r7}
+ stm r0!, {r1,r6,r7}
+ ldm r2!, {r4-r6}
+ stm r0!, {r4-r6}
+ ldr r1, [r3]
+ adds r1, 0xF0
+ ldr r0, _08018080
+ ldm r0!, {r2,r3,r7}
+ stm r1!, {r2,r3,r7}
+ ldm r0!, {r4-r6}
+ stm r1!, {r4-r6}
+ b _080180E0
+ .align 2, 0
+_08018078: .4byte gUnknown_203B20C
+_0801807C: .4byte gUnknown_80DB7B8
+_08018080: .4byte gUnknown_80DB800
+_08018084:
+ ldr r0, _08018094
+ ldr r1, [r0]
+ movs r7, 0x84
+ lsls r7, 1
+ adds r1, r7
+ ldr r0, _08018098
+ b _080180A8
+ .align 2, 0
+_08018094: .4byte gUnknown_203B20C
+_08018098: .4byte gUnknown_80DB818
+_0801809C:
+ ldr r0, _080180B4
+ ldr r1, [r0]
+ movs r0, 0x90
+ lsls r0, 1
+ adds r1, r0
+ ldr r0, _080180B8
+_080180A8:
+ ldm r0!, {r2-r4}
+ stm r1!, {r2-r4}
+ ldm r0!, {r5-r7}
+ stm r1!, {r5-r7}
+ b _080180E0
+ .align 2, 0
+_080180B4: .4byte gUnknown_203B20C
+_080180B8: .4byte gUnknown_80DB7E8
+_080180BC:
+ ldr r0, _080180F8
+ mov r12, r0
+ ldr r4, _080180FC
+ movs r3, 0
+ movs r2, 0x3
+_080180C6:
+ mov r5, r12
+ ldr r1, [r5]
+ adds r1, r3
+ adds r1, 0xF0
+ 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 _080180C6
+_080180E0:
+ bl ResetUnusedInputStruct
+ ldr r0, _080180F8
+ ldr r0, [r0]
+ adds r0, 0xF0
+ movs r1, 0x1
+ movs r2, 0x1
+ bl sub_800641C
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080180F8: .4byte gUnknown_203B20C
+_080180FC: .4byte gUnknown_80DB7B8
+ thumb_func_end sub_8017F28
+
+ thumb_func_start sub_8018100
+sub_8018100:
+ push {r4,lr}
+ sub sp, 0x8
+ ldr r1, _0801811C
+ ldr r0, [r1]
+ ldr r0, [r0]
+ adds r4, r1, 0
+ cmp r0, 0xE
+ bls _08018112
+ b _08018278
+_08018112:
+ lsls r0, 2
+ ldr r1, _08018120
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_0801811C: .4byte gUnknown_203B20C
+_08018120: .4byte _08018124
+ .align 2, 0
+_08018124:
+ .4byte _08018278
+ .4byte _08018160
+ .4byte _08018278
+ .4byte _08018278
+ .4byte _08018172
+ .4byte _08018180
+ .4byte _08018188
+ .4byte _080181A8
+ .4byte _08018278
+ .4byte _08018278
+ .4byte _080181B2
+ .4byte _080181C0
+ .4byte _080181CE
+ .4byte _0801823C
+ .4byte _08018270
+_08018160:
+ ldr r2, [r4]
+ adds r0, r2, 0
+ adds r0, 0x70
+ adds r1, r2, 0
+ adds r1, 0x20
+ adds r3, r2, 0
+ adds r3, 0x60
+ ldr r2, [r2, 0x14]
+ b _0801825C
+_08018172:
+ movs r0, 0x3
+ movs r1, 0x3
+ movs r2, 0
+ movs r3, 0xA
+ bl sub_801A5D8
+ b _08018278
+_08018180:
+ movs r0, 0x1
+ bl sub_801A8D0
+ b _08018278
+_08018188:
+ bl sub_801A9E0
+ bl sub_801841C
+ ldr r0, _080181A4
+ ldr r2, [r0]
+ adds r0, r2, 0
+ adds r0, 0x70
+ adds r1, r2, 0
+ adds r1, 0x20
+ adds r3, r2, 0
+ adds r3, 0x60
+ ldr r2, [r2, 0x18]
+ b _0801825C
+ .align 2, 0
+_080181A4: .4byte gUnknown_203B20C
+_080181A8:
+ ldr r0, [r4]
+ adds r0, 0x8
+ bl sub_801B3C0
+ b _08018278
+_080181B2:
+ movs r0, 0x1
+ movs r1, 0x3
+ movs r2, 0
+ movs r3, 0xA
+ bl sub_801C8C4
+ b _080181C6
+_080181C0:
+ movs r0, 0x1
+ bl sub_801CB5C
+_080181C6:
+ movs r0, 0
+ bl sub_801AD34
+ b _08018278
+_080181CE:
+ ldr r2, [r4]
+ adds r1, r2, 0
+ adds r1, 0xD0
+ movs r0, 0x2
+ str r0, [r1]
+ subs r1, 0x8
+ movs r0, 0x1
+ str r0, [r1]
+ ldr r0, _080181F8
+ ldr r1, [r0]
+ ldrb r0, [r2, 0xA]
+ lsls r0, 1
+ adds r1, 0x50
+ adds r3, r1, r0
+ ldrh r0, [r3]
+ cmp r0, 0x63
+ bls _080181FC
+ adds r1, r2, 0
+ adds r1, 0xCC
+ movs r0, 0x63
+ b _08018202
+ .align 2, 0
+_080181F8: .4byte gUnknown_203B460
+_080181FC:
+ adds r1, r2, 0
+ adds r1, 0xCC
+ ldrh r0, [r3]
+_08018202:
+ str r0, [r1]
+ ldr r2, [r4]
+ adds r1, r2, 0
+ adds r1, 0xC4
+ adds r0, r2, 0
+ adds r0, 0xCC
+ ldr r0, [r0]
+ str r0, [r1]
+ adds r1, 0x10
+ movs r0, 0x1
+ str r0, [r1]
+ adds r1, 0x4
+ movs r3, 0x84
+ lsls r3, 1
+ adds r0, r2, r3
+ str r0, [r1]
+ adds r1, 0x4
+ movs r0, 0x28
+ str r0, [r1]
+ adds r1, 0x4
+ movs r0, 0x12
+ str r0, [r1]
+ adds r0, r2, 0
+ adds r0, 0xC0
+ bl sub_8013AA0
+ bl sub_8018280
+ b _08018278
+_0801823C:
+ bl sub_801CCD8
+ movs r0, 0
+ bl sub_801AD34
+ bl sub_80184D4
+ ldr r0, _0801826C
+ ldr r2, [r0]
+ adds r0, r2, 0
+ adds r0, 0x70
+ adds r1, r2, 0
+ adds r1, 0x20
+ adds r3, r2, 0
+ adds r3, 0x60
+ ldr r2, [r2, 0x1C]
+_0801825C:
+ str r2, [sp]
+ movs r2, 0x2
+ str r2, [sp, 0x4]
+ movs r2, 0
+ bl sub_8012D60
+ b _08018278
+ .align 2, 0
+_0801826C: .4byte gUnknown_203B20C
+_08018270:
+ ldr r0, [r4]
+ adds r0, 0x8
+ bl sub_801B3C0
+_08018278:
+ add sp, 0x8
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8018100
+
+ thumb_func_start sub_8018280
+sub_8018280:
+ push {r4,lr}
+ sub sp, 0x4
+ ldr r4, _080182DC
+ ldr r0, [r4]
+ adds r0, 0xD4
+ ldr r0, [r0]
+ bl sub_8008C54
+ ldr r0, [r4]
+ adds r0, 0xD4
+ ldr r0, [r0]
+ bl sub_80073B8
+ ldr r2, _080182E0
+ ldr r0, [r4]
+ adds r0, 0xD4
+ ldr r3, [r0]
+ movs r0, 0
+ str r0, [sp]
+ movs r0, 0x4
+ movs r1, 0
+ bl xxx_call_draw_string
+ ldr r0, [r4]
+ adds r0, 0xC0
+ bl sub_8013C68
+ ldr r0, [r4]
+ adds r0, 0xD4
+ ldr r0, [r0]
+ bl sub_80073E0
+ bl sub_801CCD8
+ movs r0, 0
+ bl sub_801AD34
+ ldr r0, [r4]
+ adds r0, 0x70
+ movs r1, 0
+ bl sub_8012EA4
+ add sp, 0x4
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080182DC: .4byte gUnknown_203B20C
+_080182E0: .4byte gUnknown_80DB830
+ thumb_func_end sub_8018280
+
+ thumb_func_start sub_80182E4
+sub_80182E4:
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ movs r0, 0
+ mov r8, r0
+ ldr r4, _080183DC
+ ldr r0, [r4]
+ adds r0, 0x60
+ movs r1, 0
+ movs r2, 0x10
+ bl MemoryFill16
+ ldr r1, [r4]
+ ldr r0, _080183E0
+ ldr r0, [r0]
+ str r0, [r1, 0x20]
+ movs r0, 0x2
+ str r0, [r1, 0x24]
+ bl sub_8090A34
+ cmp r0, 0
+ beq _0801831C
+ movs r0, 0
+ bl sub_801CF50
+ lsls r0, 24
+ cmp r0, 0
+ beq _08018324
+_0801831C:
+ ldr r0, [r4]
+ adds r0, 0x60
+ movs r1, 0x1
+ strh r1, [r0]
+_08018324:
+ movs r1, 0x1
+ add r8, r1
+ ldr r4, _080183DC
+ ldr r2, [r4]
+ mov r0, r8
+ lsls r3, r0, 3
+ adds r0, r2, 0
+ adds r0, 0x20
+ adds r0, r3
+ ldr r1, _080183E4
+ ldr r1, [r1]
+ str r1, [r0]
+ adds r2, 0x24
+ adds r2, r3
+ movs r0, 0x3
+ str r0, [r2]
+ movs r0, 0x1
+ bl sub_801CF14
+ lsls r0, 24
+ cmp r0, 0
+ bne _08018358
+ bl sub_8090A34
+ cmp r0, 0x13
+ ble _08018366
+_08018358:
+ ldr r0, [r4]
+ mov r2, r8
+ lsls r1, r2, 1
+ adds r0, 0x60
+ adds r0, r1
+ movs r1, 0x1
+ strh r1, [r0]
+_08018366:
+ movs r0, 0x1
+ add r8, r0
+ ldr r4, _080183DC
+ ldr r7, [r4]
+ mov r2, r8
+ lsls r1, r2, 3
+ adds r2, r7, 0
+ adds r2, 0x20
+ adds r3, r2, r1
+ ldr r0, _080183E8
+ ldr r0, [r0]
+ str r0, [r3]
+ adds r6, r7, 0
+ adds r6, 0x24
+ adds r1, r6, r1
+ movs r3, 0x1
+ str r3, [r1]
+ add r8, r3
+ mov r1, r8
+ lsls r0, r1, 3
+ adds r2, r0
+ movs r1, 0
+ str r1, [r2]
+ adds r0, r6, r0
+ str r3, [r0]
+ movs r5, 0
+ mov r12, r4
+ cmp r5, r8
+ bge _080183C0
+ adds r4, r7, 0
+ adds r2, r4, 0
+ adds r2, 0x60
+ adds r3, r6, 0
+_080183A8:
+ ldrh r0, [r2]
+ cmp r0, 0
+ bne _080183B6
+ ldr r1, [r3]
+ ldr r0, [r4, 0x14]
+ cmp r1, r0
+ beq _08018410
+_080183B6:
+ adds r2, 0x2
+ adds r3, 0x8
+ adds r5, 0x1
+ cmp r5, r8
+ blt _080183A8
+_080183C0:
+ movs r5, 0
+ cmp r5, r8
+ bge _08018410
+ mov r2, r12
+ ldr r1, [r2]
+ adds r0, r1, 0
+ adds r0, 0x60
+ ldrh r0, [r0]
+ cmp r0, 0
+ bne _080183EC
+ ldr r0, [r1, 0x24]
+ str r0, [r1, 0x14]
+ b _08018410
+ .align 2, 0
+_080183DC: .4byte gUnknown_203B20C
+_080183E0: .4byte gUnknown_80D4958
+_080183E4: .4byte gUnknown_80D4964
+_080183E8: .4byte gUnknown_80D4934
+_080183EC:
+ adds r5, 0x1
+ cmp r5, r8
+ bge _08018410
+ mov r0, r12
+ ldr r2, [r0]
+ lsls r0, r5, 1
+ adds r1, r2, 0
+ adds r1, 0x60
+ adds r1, r0
+ ldrh r0, [r1]
+ cmp r0, 0
+ bne _080183EC
+ lsls r0, r5, 3
+ adds r1, r2, 0
+ adds r1, 0x24
+ adds r1, r0
+ ldr r0, [r1]
+ str r0, [r2, 0x14]
+_08018410:
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80182E4
+
+ thumb_func_start sub_801841C
+sub_801841C:
+ push {r4-r7,lr}
+ ldr r4, _080184A0
+ ldr r0, [r4]
+ adds r0, 0x60
+ movs r1, 0
+ movs r2, 0x10
+ bl MemoryFill16
+ ldr r1, [r4]
+ ldr r0, _080184A4
+ ldr r0, [r0]
+ str r0, [r1, 0x20]
+ movs r0, 0x2
+ str r0, [r1, 0x24]
+ ldr r0, [r1, 0xC]
+ bl sub_801ADA0
+ lsls r0, 24
+ cmp r0, 0
+ bne _0801844C
+ ldr r0, [r4]
+ adds r0, 0x60
+ movs r1, 0x1
+ strh r1, [r0]
+_0801844C:
+ ldr r2, [r4]
+ movs r1, 0x1
+ ldr r0, _080184A8
+ ldr r0, [r0]
+ str r0, [r2, 0x28]
+ movs r0, 0x4
+ str r0, [r2, 0x2C]
+ movs r5, 0x2
+ movs r0, 0
+ str r0, [r2, 0x30]
+ str r1, [r2, 0x34]
+ movs r3, 0
+ adds r6, r4, 0
+ mov r12, r2
+ mov r4, r12
+ adds r4, 0x60
+ adds r2, 0x24
+_0801846E:
+ ldrh r0, [r4]
+ cmp r0, 0
+ bne _0801847E
+ ldr r1, [r2]
+ mov r7, r12
+ ldr r0, [r7, 0x18]
+ cmp r1, r0
+ beq _080184CE
+_0801847E:
+ adds r4, 0x2
+ adds r2, 0x8
+ adds r3, 0x1
+ cmp r3, r5
+ blt _0801846E
+ movs r3, 0
+ cmp r3, r5
+ bge _080184CE
+ ldr r1, [r6]
+ adds r0, r1, 0
+ adds r0, 0x60
+ ldrh r0, [r0]
+ cmp r0, 0
+ bne _080184AC
+ ldr r0, [r1, 0x24]
+ str r0, [r1, 0x18]
+ b _080184CE
+ .align 2, 0
+_080184A0: .4byte gUnknown_203B20C
+_080184A4: .4byte gUnknown_80D4958
+_080184A8: .4byte gUnknown_80D4970
+_080184AC:
+ adds r3, 0x1
+ cmp r3, r5
+ bge _080184CE
+ ldr r2, [r6]
+ lsls r0, r3, 1
+ adds r1, r2, 0
+ adds r1, 0x60
+ adds r1, r0
+ ldrh r0, [r1]
+ cmp r0, 0
+ bne _080184AC
+ lsls r0, r3, 3
+ adds r1, r2, 0
+ adds r1, 0x24
+ adds r1, r0
+ ldr r0, [r1]
+ str r0, [r2, 0x18]
+_080184CE:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_801841C
+
+ thumb_func_start sub_80184D4
+sub_80184D4:
+ push {r4-r7,lr}
+ ldr r4, _08018554
+ ldr r0, [r4]
+ adds r0, 0x60
+ movs r1, 0
+ movs r2, 0x10
+ bl MemoryFill16
+ ldr r1, [r4]
+ ldr r0, _08018558
+ ldr r0, [r0]
+ str r0, [r1, 0x20]
+ movs r0, 0x3
+ str r0, [r1, 0x24]
+ bl sub_8090A34
+ cmp r0, 0x13
+ ble _08018500
+ ldr r0, [r4]
+ adds r0, 0x60
+ movs r1, 0x1
+ strh r1, [r0]
+_08018500:
+ ldr r2, [r4]
+ movs r1, 0x1
+ ldr r0, _0801855C
+ ldr r0, [r0]
+ str r0, [r2, 0x28]
+ movs r0, 0x4
+ str r0, [r2, 0x2C]
+ movs r5, 0x2
+ movs r0, 0
+ str r0, [r2, 0x30]
+ str r1, [r2, 0x34]
+ movs r3, 0
+ adds r6, r4, 0
+ mov r12, r2
+ mov r4, r12
+ adds r4, 0x60
+ adds r2, 0x24
+_08018522:
+ ldrh r0, [r4]
+ cmp r0, 0
+ bne _08018532
+ ldr r1, [r2]
+ mov r7, r12
+ ldr r0, [r7, 0x1C]
+ cmp r1, r0
+ beq _08018582
+_08018532:
+ adds r4, 0x2
+ adds r2, 0x8
+ adds r3, 0x1
+ cmp r3, r5
+ blt _08018522
+ movs r3, 0
+ cmp r3, r5
+ bge _08018582
+ ldr r1, [r6]
+ adds r0, r1, 0
+ adds r0, 0x60
+ ldrh r0, [r0]
+ cmp r0, 0
+ bne _08018560
+ ldr r0, [r1, 0x24]
+ str r0, [r1, 0x1C]
+ b _08018582
+ .align 2, 0
+_08018554: .4byte gUnknown_203B20C
+_08018558: .4byte gUnknown_80D4964
+_0801855C: .4byte gUnknown_80D4970
+_08018560:
+ adds r3, 0x1
+ cmp r3, r5
+ bge _08018582
+ ldr r2, [r6]
+ lsls r0, r3, 1
+ adds r1, r2, 0
+ adds r1, 0x60
+ adds r1, r0
+ ldrh r0, [r1]
+ cmp r0, 0
+ bne _08018560
+ lsls r0, r3, 3
+ adds r1, r2, 0
+ adds r1, 0x24
+ adds r1, r0
+ ldr r0, [r1]
+ str r0, [r2, 0x1C]
+_08018582:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80184D4
+
+ thumb_func_start sub_8018588
+sub_8018588:
+ push {r4,lr}
+ sub sp, 0x4
+ movs r0, 0
+ str r0, [sp]
+ ldr r4, _080185C4
+ ldr r0, [r4]
+ adds r0, 0x70
+ bl sub_8012FD8
+ lsls r0, 24
+ cmp r0, 0
+ bne _080185B4
+ ldr r0, [r4]
+ adds r0, 0x70
+ mov r1, sp
+ bl sub_8013114
+ ldr r1, [sp]
+ cmp r1, 0x1
+ beq _080185B4
+ ldr r0, [r4]
+ str r1, [r0, 0x14]
+_080185B4:
+ ldr r0, [sp]
+ cmp r0, 0x2
+ beq _080185CE
+ cmp r0, 0x2
+ bgt _080185C8
+ cmp r0, 0x1
+ beq _08018610
+ b _08018616
+ .align 2, 0
+_080185C4: .4byte gUnknown_203B20C
+_080185C8:
+ cmp r0, 0x3
+ beq _080185EA
+ b _08018616
+_080185CE:
+ bl sub_8090A34
+ cmp r0, 0
+ beq _080185F6
+ movs r0, 0
+ bl sub_801CF50
+ lsls r0, 24
+ cmp r0, 0
+ bne _080185F6
+ movs r0, 0x4
+ bl sub_8017F10
+ b _08018616
+_080185EA:
+ movs r0, 0x1
+ bl sub_801CF14
+ lsls r0, 24
+ cmp r0, 0
+ beq _08018608
+_080185F6:
+ ldr r0, _08018604
+ ldr r0, [r0]
+ adds r0, 0x70
+ movs r1, 0x1
+ bl sub_8012EA4
+ b _08018616
+ .align 2, 0
+_08018604: .4byte gUnknown_203B20C
+_08018608:
+ movs r0, 0xA
+ bl sub_8017F10
+ b _08018616
+_08018610:
+ movs r0, 0x3
+ bl sub_8017F10
+_08018616:
+ add sp, 0x4
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8018588
+
+ thumb_func_start sub_8018620
+sub_8018620:
+ push {r4-r7,lr}
+ movs r0, 0x1
+ bl sub_801A6E8
+ cmp r0, 0x3
+ beq _0801863C
+ cmp r0, 0x3
+ bhi _08018636
+ cmp r0, 0x2
+ beq _080186E8
+ b _080186F2
+_08018636:
+ cmp r0, 0x4
+ beq _080186C0
+ b _080186F2
+_0801863C:
+ bl sub_801AEA8
+ cmp r0, 0
+ beq _08018698
+ movs r5, 0
+ ldr r6, _0801868C
+ movs r7, 0
+_0801864A:
+ adds r0, r5, 0
+ bl sub_801AED0
+ cmp r0, 0
+ beq _0801866A
+ lsls r4, r5, 2
+ ldr r0, [r6]
+ adds r0, r4
+ bl sub_80917B8
+ ldr r0, [r6]
+ adds r0, r4
+ strb r7, [r0, 0x2]
+ ldr r0, [r6]
+ adds r0, r4
+ strb r7, [r0]
+_0801866A:
+ adds r5, 0x1
+ cmp r5, 0x13
+ ble _0801864A
+ bl sub_80910B4
+ bl sub_801AE84
+ bl sub_8090A34
+ cmp r0, 0
+ bne _08018690
+ bl sub_801A928
+ movs r0, 0x1
+ bl sub_8017F10
+ b _080186F2
+ .align 2, 0
+_0801868C: .4byte gUnknown_203B460
+_08018690:
+ movs r0, 0x5
+ bl sub_8017F10
+ b _080186F2
+_08018698:
+ bl sub_801A8AC
+ ldr r1, _080186B8
+ ldr r2, [r1]
+ str r0, [r2, 0xC]
+ ldr r1, _080186BC
+ ldr r1, [r1]
+ lsls r0, 2
+ adds r1, r0
+ ldr r0, [r1]
+ str r0, [r2, 0x8]
+ movs r0, 0x6
+ bl sub_8017F10
+ b _080186F2
+ .align 2, 0
+_080186B8: .4byte gUnknown_203B20C
+_080186BC: .4byte gUnknown_203B460
+_080186C0:
+ bl sub_801A8AC
+ ldr r1, _080186E0
+ ldr r2, [r1]
+ str r0, [r2, 0xC]
+ ldr r1, _080186E4
+ ldr r1, [r1]
+ lsls r0, 2
+ adds r1, r0
+ ldr r0, [r1]
+ str r0, [r2, 0x8]
+ movs r0, 0x7
+ bl sub_8017F10
+ b _080186F2
+ .align 2, 0
+_080186E0: .4byte gUnknown_203B20C
+_080186E4: .4byte gUnknown_203B460
+_080186E8:
+ bl sub_801A928
+ movs r0, 0x1
+ bl sub_8017F10
+_080186F2:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8018620
+
+ thumb_func_start sub_80186F8
+sub_80186F8:
+ push {r4-r7,lr}
+ sub sp, 0x4
+ movs r0, 0x1
+ bl sub_801CA08
+ cmp r0, 0x2
+ bne _08018708
+ b _08018838
+_08018708:
+ cmp r0, 0x2
+ bhi _08018714
+ cmp r0, 0x1
+ bne _08018712
+ b _08018844
+_08018712:
+ b _0801884A
+_08018714:
+ cmp r0, 0x3
+ beq _0801871E
+ cmp r0, 0x4
+ beq _0801880C
+ b _0801884A
+_0801871E:
+ bl sub_801CFB8
+ cmp r0, 0
+ beq _080187E0
+ movs r6, 0
+ mov r5, sp
+ ldr r7, _0801876C
+_0801872C:
+ lsls r0, r6, 24
+ lsrs r4, r0, 24
+ adds r0, r4, 0
+ bl sub_801CFE0
+ cmp r0, 0
+ beq _080187B2
+ ldr r1, _08018770
+ ldr r0, [sp]
+ ands r0, r1
+ orrs r0, r4
+ str r0, [sp]
+ ldrb r0, [r5]
+ bl sub_8090A60
+ lsls r0, 24
+ cmp r0, 0
+ beq _08018786
+ ldr r2, _08018774
+ ldr r1, [r2]
+ ldrb r0, [r5]
+ lsls r0, 1
+ adds r1, 0x50
+ adds r1, r0
+ ldrh r1, [r1]
+ cmp r1, 0x63
+ bls _08018778
+ ldr r0, [sp]
+ ands r0, r7
+ movs r1, 0xC6
+ lsls r1, 7
+ b _08018780
+ .align 2, 0
+_0801876C: .4byte 0xffff00ff
+_08018770: .4byte 0xffffff00
+_08018774: .4byte gUnknown_203B460
+_08018778:
+ lsls r1, 24
+ lsrs r1, 16
+ ldr r0, [sp]
+ ands r0, r7
+_08018780:
+ orrs r0, r1
+ str r0, [sp]
+ b _08018794
+_08018786:
+ ldr r0, [sp]
+ ands r0, r7
+ movs r1, 0x80
+ lsls r1, 1
+ orrs r0, r1
+ str r0, [sp]
+ ldr r2, _080187DC
+_08018794:
+ ldr r2, [r2]
+ ldrb r0, [r5]
+ lsls r0, 1
+ adds r2, 0x50
+ adds r2, r0
+ ldr r0, [sp]
+ lsrs r0, 8
+ lsls r0, 24
+ lsrs r0, 24
+ ldrh r1, [r2]
+ subs r1, r0
+ strh r1, [r2]
+ mov r0, sp
+ bl sub_8091274
+_080187B2:
+ adds r6, 0x1
+ cmp r6, 0xEF
+ ble _0801872C
+ bl sub_80910B4
+ bl sub_801CF94
+ movs r0, 0x1
+ bl sub_801CF14
+ lsls r0, 24
+ cmp r0, 0
+ bne _08018838
+ bl sub_8090A34
+ cmp r0, 0x13
+ bgt _08018838
+ movs r0, 0xB
+ bl sub_8017F10
+ b _0801884A
+ .align 2, 0
+_080187DC: .4byte gUnknown_203B460
+_080187E0:
+ bl sub_801CB24
+ ldr r4, _08018808
+ ldr r1, [r4]
+ strb r0, [r1, 0x10]
+ ldr r1, [r4]
+ adds r0, r1, 0
+ adds r0, 0x8
+ ldrb r1, [r1, 0x10]
+ movs r2, 0
+ bl sub_8090A8C
+ ldr r1, [r4]
+ movs r0, 0x1
+ strb r0, [r1, 0x9]
+ movs r0, 0xD
+ bl sub_8017F10
+ b _0801884A
+ .align 2, 0
+_08018808: .4byte gUnknown_203B20C
+_0801880C:
+ bl sub_801CB24
+ ldr r4, _08018834
+ ldr r1, [r4]
+ strb r0, [r1, 0x10]
+ ldr r1, [r4]
+ adds r0, r1, 0
+ adds r0, 0x8
+ ldrb r1, [r1, 0x10]
+ movs r2, 0
+ bl sub_8090A8C
+ ldr r1, [r4]
+ movs r0, 0x1
+ strb r0, [r1, 0x9]
+ movs r0, 0xE
+ bl sub_8017F10
+ b _0801884A
+ .align 2, 0
+_08018834: .4byte gUnknown_203B20C
+_08018838:
+ bl sub_801CBB8
+ movs r0, 0x1
+ bl sub_8017F10
+ b _0801884A
+_08018844:
+ movs r0, 0
+ bl sub_801AD34
+_0801884A:
+ add sp, 0x4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80186F8
+
+ thumb_func_start sub_8018854
+sub_8018854:
+ push {r4,lr}
+ sub sp, 0x4
+ movs r0, 0
+ bl sub_801CA08
+ ldr r4, _080188E0
+ ldr r0, [r4]
+ adds r0, 0x70
+ bl sub_8012FD8
+ ldr r0, [r4]
+ adds r0, 0xC0
+ bl sub_8013BBC
+ cmp r0, 0x1
+ beq _080188F8
+ cmp r0, 0x1
+ bcc _080188FC
+ cmp r0, 0x2
+ beq _080188F0
+ cmp r0, 0x3
+ bne _080188FC
+ ldr r1, [r4]
+ adds r0, r1, 0
+ adds r0, 0xC0
+ ldr r0, [r0]
+ strb r0, [r1, 0x9]
+ ldr r0, _080188E4
+ ldr r1, [r0]
+ ldr r3, [r4]
+ ldrb r0, [r3, 0xA]
+ lsls r0, 1
+ adds r1, 0x50
+ adds r1, r0
+ ldrb r2, [r3, 0x9]
+ ldrh r0, [r1]
+ subs r0, r2
+ strh r0, [r1]
+ ldrb r2, [r3, 0xA]
+ ldr r1, _080188E8
+ ldr r0, [sp]
+ ands r0, r1
+ orrs r0, r2
+ str r0, [sp]
+ ldrb r1, [r3, 0x9]
+ lsls r1, 8
+ ldr r2, _080188EC
+ ands r0, r2
+ orrs r0, r1
+ str r0, [sp]
+ mov r0, sp
+ bl sub_8091274
+ movs r0, 0x1
+ bl sub_801CF14
+ lsls r0, 24
+ cmp r0, 0
+ bne _080188D2
+ bl sub_8090A34
+ cmp r0, 0x13
+ ble _080188F0
+_080188D2:
+ bl sub_801CBB8
+ movs r0, 0x1
+ bl sub_8017F10
+ b _080188FC
+ .align 2, 0
+_080188E0: .4byte gUnknown_203B20C
+_080188E4: .4byte gUnknown_203B460
+_080188E8: .4byte 0xffffff00
+_080188EC: .4byte 0xffff00ff
+_080188F0:
+ movs r0, 0xB
+ bl sub_8017F10
+ b _080188FC
+_080188F8:
+ bl sub_8018280
+_080188FC:
+ add sp, 0x4
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8018854
+
+ thumb_func_start sub_8018904
+sub_8018904:
+ push {r4,lr}
+ sub sp, 0x4
+ movs r0, 0
+ str r0, [sp]
+ bl sub_801A6E8
+ ldr r4, _08018944
+ ldr r0, [r4]
+ adds r0, 0x70
+ bl sub_8012FD8
+ lsls r0, 24
+ cmp r0, 0
+ bne _08018934
+ ldr r0, [r4]
+ adds r0, 0x70
+ mov r1, sp
+ bl sub_8013114
+ ldr r1, [sp]
+ cmp r1, 0x1
+ beq _08018934
+ ldr r0, [r4]
+ str r1, [r0, 0x18]
+_08018934:
+ ldr r0, [sp]
+ cmp r0, 0x2
+ beq _0801894E
+ cmp r0, 0x2
+ bgt _08018948
+ cmp r0, 0x1
+ beq _080189BA
+ b _080189C0
+ .align 2, 0
+_08018944: .4byte gUnknown_203B20C
+_08018948:
+ cmp r0, 0x4
+ beq _080189AC
+ b _080189C0
+_0801894E:
+ ldr r4, _08018978
+ ldr r0, [r4]
+ ldrb r0, [r0, 0xA]
+ bl sub_8091524
+ lsls r0, 24
+ cmp r0, 0
+ beq _0801896C
+ ldr r0, [r4]
+ ldr r0, [r0, 0xC]
+ bl sub_801ADA0
+ lsls r0, 24
+ cmp r0, 0
+ bne _0801897C
+_0801896C:
+ ldr r0, [r4]
+ adds r0, 0x70
+ movs r1, 0x1
+ bl sub_8012EA4
+ b _080189C0
+ .align 2, 0
+_08018978: .4byte gUnknown_203B20C
+_0801897C:
+ ldr r0, [r4]
+ adds r0, 0x8
+ bl sub_80917B8
+ ldr r0, [r4]
+ ldr r0, [r0, 0xC]
+ bl sub_80911F8
+ bl sub_80910B4
+ bl sub_8090A34
+ cmp r0, 0
+ bne _080189A4
+ bl sub_801A928
+ movs r0, 0x1
+ bl sub_8017F10
+ b _080189C0
+_080189A4:
+ movs r0, 0x5
+ bl sub_8017F10
+ b _080189C0
+_080189AC:
+ movs r0, 0
+ bl sub_8099690
+ movs r0, 0x7
+ bl sub_8017F10
+ b _080189C0
+_080189BA:
+ movs r0, 0x5
+ bl sub_8017F10
+_080189C0:
+ add sp, 0x4
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8018904
+
+ thumb_func_start sub_80189C8
+sub_80189C8:
+ push {r4,lr}
+ sub sp, 0x8
+ movs r0, 0
+ str r0, [sp]
+ bl sub_801CA08
+ ldr r4, _08018A08
+ ldr r0, [r4]
+ adds r0, 0x70
+ bl sub_8012FD8
+ lsls r0, 24
+ cmp r0, 0
+ bne _080189F8
+ ldr r0, [r4]
+ adds r0, 0x70
+ mov r1, sp
+ bl sub_8013114
+ ldr r1, [sp]
+ cmp r1, 0x1
+ beq _080189F8
+ ldr r0, [r4]
+ str r1, [r0, 0x1C]
+_080189F8:
+ ldr r0, [sp]
+ cmp r0, 0x3
+ beq _08018A12
+ cmp r0, 0x3
+ bgt _08018A0C
+ cmp r0, 0x1
+ beq _08018AB8
+ b _08018ABE
+ .align 2, 0
+_08018A08: .4byte gUnknown_203B20C
+_08018A0C:
+ cmp r0, 0x4
+ beq _08018AB0
+ b _08018ABE
+_08018A12:
+ bl sub_8090A34
+ cmp r0, 0x13
+ ble _08018A2C
+ ldr r0, _08018A28
+ ldr r0, [r0]
+ adds r0, 0x70
+ movs r1, 0x1
+ bl sub_8012EA4
+ b _08018ABE
+ .align 2, 0
+_08018A28: .4byte gUnknown_203B20C
+_08018A2C:
+ ldr r4, _08018A44
+ ldr r0, [r4]
+ ldrb r0, [r0, 0xA]
+ bl sub_8090A60
+ lsls r0, 24
+ cmp r0, 0
+ beq _08018A48
+ movs r0, 0xC
+ bl sub_8017F10
+ b _08018ABE
+ .align 2, 0
+_08018A44: .4byte gUnknown_203B20C
+_08018A48:
+ ldr r0, _08018A9C
+ ldr r1, [r0]
+ ldr r3, [r4]
+ ldrb r0, [r3, 0xA]
+ lsls r0, 1
+ adds r1, 0x50
+ adds r1, r0
+ ldrb r2, [r3, 0x9]
+ ldrh r0, [r1]
+ subs r0, r2
+ strh r0, [r1]
+ ldrb r2, [r3, 0xA]
+ ldr r1, _08018AA0
+ ldr r0, [sp, 0x4]
+ ands r0, r1
+ orrs r0, r2
+ str r0, [sp, 0x4]
+ ldrb r1, [r3, 0x9]
+ lsls r1, 8
+ ldr r2, _08018AA4
+ ands r0, r2
+ orrs r0, r1
+ str r0, [sp, 0x4]
+ add r0, sp, 0x4
+ bl sub_8091274
+ movs r0, 0x1
+ bl sub_801CF14
+ lsls r0, 24
+ cmp r0, 0
+ bne _08018A90
+ bl sub_8090A34
+ cmp r0, 0x13
+ ble _08018AA8
+_08018A90:
+ bl sub_801CBB8
+ movs r0, 0x1
+ bl sub_8017F10
+ b _08018ABE
+ .align 2, 0
+_08018A9C: .4byte gUnknown_203B460
+_08018AA0: .4byte 0xffffff00
+_08018AA4: .4byte 0xffff00ff
+_08018AA8:
+ movs r0, 0xB
+ bl sub_8017F10
+ b _08018ABE
+_08018AB0:
+ movs r0, 0xE
+ bl sub_8017F10
+ b _08018ABE
+_08018AB8:
+ movs r0, 0xB
+ bl sub_8017F10
+_08018ABE:
+ add sp, 0x8
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80189C8
+
+ thumb_func_start sub_8018AC8
+sub_8018AC8:
+ push {lr}
+ bl sub_801B410
+ cmp r0, 0x1
+ bls _08018AE0
+ cmp r0, 0x3
+ bhi _08018AE0
+ bl sub_801B450
+ movs r0, 0x5
+ bl sub_8017F10
+_08018AE0:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8018AC8
+
+ thumb_func_start sub_8018AE4
+sub_8018AE4:
+ push {lr}
+ bl sub_801B410
+ cmp r0, 0x1
+ bls _08018AFC
+ cmp r0, 0x3
+ bhi _08018AFC
+ bl sub_801B450
+ movs r0, 0xB
+ bl sub_8017F10
+_08018AFC:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8018AE4
+
+ .align 2,0
diff --git a/asm/kecleon_items.s b/asm/kecleon_items.s
new file mode 100644
index 0000000..e703eba
--- /dev/null
+++ b/asm/kecleon_items.s
@@ -0,0 +1,1530 @@
+ .include "constants/gba_constants.inc"
+ .include "asm/macros.inc"
+
+ .syntax unified
+
+ .text
+
+ thumb_func_start sub_8018E88
+sub_8018E88:
+ push {r4,lr}
+ sub sp, 0x14
+ ldr r1, _08018EA4
+ ldr r0, [r1]
+ ldr r0, [r0, 0x8]
+ adds r4, r1, 0
+ cmp r0, 0x20
+ bls _08018E9A
+ b _080194E8
+_08018E9A:
+ lsls r0, 2
+ ldr r1, _08018EA8
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_08018EA4: .4byte gUnknown_203B210
+_08018EA8: .4byte _08018EAC
+ .align 2, 0
+_08018EAC:
+ .4byte _08018F30
+ .4byte _08018F58
+ .4byte _08018FA8
+ .4byte _08018FD0
+ .4byte _080194E8
+ .4byte _08018FFC
+ .4byte _08019024
+ .4byte _0801904C
+ .4byte _08019070
+ .4byte _08019094
+ .4byte _080190B8
+ .4byte _080190DC
+ .4byte _08019104
+ .4byte _0801912C
+ .4byte _08019164
+ .4byte _0801918C
+ .4byte _080191B4
+ .4byte _08019294
+ .4byte _080191DC
+ .4byte _080191FA
+ .4byte _08019218
+ .4byte _080193F4
+ .4byte _08019254
+ .4byte _08019314
+ .4byte _0801933C
+ .4byte _080193FE
+ .4byte _08019364
+ .4byte _08019372
+ .4byte _08019380
+ .4byte _080193F4
+ .4byte _080193B4
+ .4byte _0801946C
+ .4byte _080194C0
+_08018F30:
+ bl sub_8019DAC
+ bl sub_80194F8
+ movs r0, 0
+ bl sub_8019E04
+ ldr r2, _08018F50
+ ldr r0, _08018F54
+ ldr r4, [r0]
+ ldr r1, [r4]
+ movs r0, 0x5C
+ muls r0, r1
+ adds r0, r2
+ b _08018F76
+ .align 2, 0
+_08018F50: .4byte gKecleonShopDialogue
+_08018F54: .4byte gUnknown_203B210
+_08018F58:
+ bl sub_8019DAC
+ bl sub_80194F8
+ movs r0, 0
+ bl sub_8019E04
+ ldr r1, _08018FA0
+ ldr r0, _08018FA4
+ ldr r4, [r0]
+ ldr r2, [r4]
+ movs r0, 0x5C
+ muls r0, r2
+ adds r1, 0x4
+ adds r0, r1
+_08018F76:
+ ldr r0, [r0]
+ ldr r2, [r4, 0x28]
+ adds r3, r4, 0
+ adds r3, 0x34
+ adds r1, r4, 0
+ adds r1, 0x74
+ str r1, [sp]
+ movs r1, 0x4
+ str r1, [sp, 0x4]
+ movs r1, 0
+ str r1, [sp, 0x8]
+ adds r1, r4, 0
+ adds r1, 0xE4
+ ldr r1, [r1]
+ str r1, [sp, 0xC]
+ movs r1, 0xC
+ str r1, [sp, 0x10]
+ movs r1, 0
+ bl sub_8014248
+ b _080194E8
+ .align 2, 0
+_08018FA0: .4byte gKecleonShopDialogue
+_08018FA4: .4byte gUnknown_203B210
+_08018FA8:
+ ldr r1, [r4]
+ movs r0, 0x1
+ str r0, [r1, 0xC]
+ movs r0, 0
+ bl sub_8019E04
+ ldr r1, _08018FCC
+ ldr r2, [r4]
+ ldr r3, [r2]
+ movs r0, 0x5C
+ muls r0, r3
+ adds r1, 0x58
+ adds r0, r1
+ ldr r0, [r0]
+ adds r2, 0xE4
+ ldr r2, [r2]
+ b _08019454
+ .align 2, 0
+_08018FCC: .4byte gKecleonShopDialogue
+_08018FD0:
+ ldr r1, [r4]
+ movs r0, 0x4
+ str r0, [r1, 0xC]
+ movs r0, 0
+ bl sub_8019E04
+ ldr r1, _08018FF4
+ ldr r2, [r4]
+ ldr r3, [r2]
+ movs r0, 0x5C
+ muls r0, r3
+ adds r1, 0x8
+ adds r0, r1
+ ldr r0, [r0]
+ adds r2, 0xE4
+ ldr r2, [r2]
+ ldr r3, _08018FF8
+ b _08019456
+ .align 2, 0
+_08018FF4: .4byte gKecleonShopDialogue
+_08018FF8: .4byte 0x0000030d
+_08018FFC:
+ ldr r1, [r4]
+ movs r0, 0x1
+ str r0, [r1, 0xC]
+ movs r0, 0
+ bl sub_8019E04
+ ldr r1, _08019020
+ ldr r2, [r4]
+ ldr r3, [r2]
+ movs r0, 0x5C
+ muls r0, r3
+ adds r1, 0x30
+ adds r0, r1
+ ldr r0, [r0]
+ adds r2, 0xE4
+ ldr r2, [r2]
+ b _08019454
+ .align 2, 0
+_08019020: .4byte gKecleonShopDialogue
+_08019024:
+ ldr r1, [r4]
+ movs r0, 0x10
+ str r0, [r1, 0xC]
+ movs r0, 0x1
+ bl sub_8019E04
+ ldr r1, _08019048
+ ldr r2, [r4]
+ ldr r3, [r2]
+ movs r0, 0x5C
+ muls r0, r3
+ adds r1, 0x34
+ adds r0, r1
+ ldr r0, [r0]
+ adds r2, 0xE4
+ ldr r2, [r2]
+ b _08019454
+ .align 2, 0
+_08019048: .4byte gKecleonShopDialogue
+_0801904C:
+ ldr r1, [r4]
+ movs r0, 0x1
+ str r0, [r1, 0xC]
+ bl sub_8019E04
+ ldr r1, _0801906C
+ ldr r2, [r4]
+ ldr r3, [r2]
+ movs r0, 0x5C
+ muls r0, r3
+ adds r1, 0x38
+ adds r0, r1
+ ldr r0, [r0]
+ adds r2, 0xE4
+ ldr r2, [r2]
+ b _08019454
+ .align 2, 0
+_0801906C: .4byte gKecleonShopDialogue
+_08019070:
+ ldr r1, [r4]
+ movs r0, 0x1
+ str r0, [r1, 0xC]
+ bl sub_8019E04
+ ldr r1, _08019090
+ ldr r2, [r4]
+ ldr r3, [r2]
+ movs r0, 0x5C
+ muls r0, r3
+ adds r1, 0x3C
+ adds r0, r1
+ ldr r0, [r0]
+ adds r2, 0xE4
+ ldr r2, [r2]
+ b _08019454
+ .align 2, 0
+_08019090: .4byte gKecleonShopDialogue
+_08019094:
+ ldr r1, [r4]
+ movs r0, 0x1
+ str r0, [r1, 0xC]
+ bl sub_8019E04
+ ldr r1, _080190B4
+ ldr r2, [r4]
+ ldr r3, [r2]
+ movs r0, 0x5C
+ muls r0, r3
+ adds r1, 0x40
+ adds r0, r1
+ ldr r0, [r0]
+ adds r2, 0xE4
+ ldr r2, [r2]
+ b _08019454
+ .align 2, 0
+_080190B4: .4byte gKecleonShopDialogue
+_080190B8:
+ ldr r1, [r4]
+ movs r0, 0x1
+ str r0, [r1, 0xC]
+ bl sub_8019E04
+ ldr r1, _080190D8
+ ldr r2, [r4]
+ ldr r3, [r2]
+ movs r0, 0x5C
+ muls r0, r3
+ adds r1, 0x44
+ adds r0, r1
+ ldr r0, [r0]
+ adds r2, 0xE4
+ ldr r2, [r2]
+ b _08019454
+ .align 2, 0
+_080190D8: .4byte gKecleonShopDialogue
+_080190DC:
+ ldr r1, [r4]
+ movs r0, 0x1
+ str r0, [r1, 0xC]
+ movs r0, 0
+ bl sub_8019E04
+ ldr r1, _08019100
+ ldr r2, [r4]
+ ldr r3, [r2]
+ movs r0, 0x5C
+ muls r0, r3
+ adds r1, 0x48
+ adds r0, r1
+ ldr r0, [r0]
+ adds r2, 0xE4
+ ldr r2, [r2]
+ b _08019454
+ .align 2, 0
+_08019100: .4byte gKecleonShopDialogue
+_08019104:
+ ldr r1, [r4]
+ movs r0, 0x10
+ str r0, [r1, 0xC]
+ movs r0, 0x1
+ bl sub_8019E04
+ ldr r1, _08019128
+ ldr r2, [r4]
+ ldr r3, [r2]
+ movs r0, 0x5C
+ muls r0, r3
+ adds r1, 0x4C
+ adds r0, r1
+ ldr r0, [r0]
+ adds r2, 0xE4
+ ldr r2, [r2]
+ b _08019454
+ .align 2, 0
+_08019128: .4byte gKecleonShopDialogue
+_0801912C:
+ ldr r0, _0801915C
+ ldr r1, [r4]
+ adds r1, 0x1C
+ movs r2, 0
+ bl sub_8090E14
+ ldr r1, [r4]
+ movs r0, 0x18
+ str r0, [r1, 0xC]
+ movs r0, 0x1
+ bl sub_8019E04
+ ldr r1, _08019160
+ ldr r2, [r4]
+ ldr r3, [r2]
+ movs r0, 0x5C
+ muls r0, r3
+ adds r1, 0x50
+ adds r0, r1
+ ldr r0, [r0]
+ adds r2, 0xE4
+ ldr r2, [r2]
+ b _08019454
+ .align 2, 0
+_0801915C: .4byte gUnknown_202DE58
+_08019160: .4byte gKecleonShopDialogue
+_08019164:
+ ldr r1, [r4]
+ movs r0, 0x18
+ str r0, [r1, 0xC]
+ movs r0, 0x1
+ bl sub_8019E04
+ ldr r1, _08019188
+ ldr r2, [r4]
+ ldr r3, [r2]
+ movs r0, 0x5C
+ muls r0, r3
+ adds r1, 0x54
+ adds r0, r1
+ ldr r0, [r0]
+ adds r2, 0xE4
+ ldr r2, [r2]
+ b _08019454
+ .align 2, 0
+_08019188: .4byte gKecleonShopDialogue
+_0801918C:
+ ldr r1, [r4]
+ movs r0, 0x12
+ str r0, [r1, 0xC]
+ movs r0, 0
+ bl sub_8019E04
+ ldr r1, _080191B0
+ ldr r2, [r4]
+ ldr r3, [r2]
+ movs r0, 0x5C
+ muls r0, r3
+ adds r1, 0xC
+ adds r0, r1
+ ldr r0, [r0]
+ adds r2, 0xE4
+ ldr r2, [r2]
+ b _08019454
+ .align 2, 0
+_080191B0: .4byte gKecleonShopDialogue
+_080191B4:
+ ldr r1, [r4]
+ movs r0, 0x13
+ str r0, [r1, 0xC]
+ movs r0, 0
+ bl sub_8019E04
+ ldr r1, _080191D8
+ ldr r2, [r4]
+ ldr r3, [r2]
+ movs r0, 0x5C
+ muls r0, r3
+ adds r1, 0x10
+ adds r0, r1
+ ldr r0, [r0]
+ adds r2, 0xE4
+ ldr r2, [r2]
+ b _08019454
+ .align 2, 0
+_080191D8: .4byte gKecleonShopDialogue
+_080191DC:
+ ldr r0, [r4]
+ ldrb r0, [r0, 0x4]
+ cmp r0, 0
+ beq _080191EC
+ movs r0, 0x3
+ bl sub_8019E40
+ b _080191F2
+_080191EC:
+ movs r0, 0x3
+ bl sub_801A20C
+_080191F2:
+ movs r0, 0
+ bl sub_801AD34
+ b _08019378
+_080191FA:
+ ldr r0, [r4]
+ ldrb r0, [r0, 0x4]
+ cmp r0, 0
+ beq _0801920A
+ movs r0, 0x1
+ bl sub_8019FCC
+ b _08019210
+_0801920A:
+ movs r0, 0x1
+ bl sub_801A398
+_08019210:
+ movs r0, 0
+ bl sub_801AD34
+ b _08019378
+_08019218:
+ ldr r0, [r4]
+ ldrb r0, [r0, 0x4]
+ cmp r0, 0
+ beq _08019226
+ bl sub_801A0D8
+ b _0801922A
+_08019226:
+ bl sub_801A4A4
+_0801922A:
+ movs r0, 0
+ bl sub_801AD34
+ movs r0, 0x1
+ bl sub_8016C40
+ bl sub_80195C0
+ ldr r0, _08019250
+ 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]
+ b _080193A0
+ .align 2, 0
+_08019250: .4byte gUnknown_203B210
+_08019254:
+ bl sub_8019700
+ ldr r0, _08019284
+ ldr r4, _08019288
+ ldr r1, [r4]
+ adds r1, 0x1C
+ movs r2, 0
+ bl sub_8090E14
+ ldr r1, _0801928C
+ ldr r0, [r4]
+ ldr r0, [r0, 0x10]
+ str r0, [r1]
+ movs r0, 0
+ bl sub_8019E04
+ ldr r1, _08019290
+ ldr r4, [r4]
+ ldr r2, [r4]
+ movs r0, 0x5C
+ muls r0, r2
+ adds r1, 0x14
+ b _0801948C
+ .align 2, 0
+_08019284: .4byte gUnknown_202DE58
+_08019288: .4byte gUnknown_203B210
+_0801928C: .4byte gUnknown_202DE30
+_08019290: .4byte gKecleonShopDialogue
+_08019294:
+ bl sub_8019D8C
+ cmp r0, 0
+ bne _080192C0
+ ldr r0, _080192AC
+ ldr r0, [r0]
+ ldrb r0, [r0, 0x4]
+ cmp r0, 0
+ beq _080192B0
+ bl sub_801A010
+ b _080192B4
+ .align 2, 0
+_080192AC: .4byte gUnknown_203B210
+_080192B0:
+ bl sub_801A3DC
+_080192B4:
+ ldr r0, _080192BC
+ ldr r1, [r0]
+ movs r0, 0xB
+ b _080192F2
+ .align 2, 0
+_080192BC: .4byte gUnknown_203B210
+_080192C0:
+ bl sub_8090A34
+ cmp r0, 0x13
+ ble _080192EC
+ ldr r0, _080192D8
+ ldr r0, [r0]
+ ldrb r0, [r0, 0x4]
+ cmp r0, 0
+ beq _080192DC
+ bl sub_801A010
+ b _080192E0
+ .align 2, 0
+_080192D8: .4byte gUnknown_203B210
+_080192DC:
+ bl sub_801A3DC
+_080192E0:
+ ldr r0, _080192E8
+ ldr r1, [r0]
+ movs r0, 0x1
+ b _080192F2
+ .align 2, 0
+_080192E8: .4byte gUnknown_203B210
+_080192EC:
+ ldr r0, _0801930C
+ ldr r1, [r0]
+ movs r0, 0x10
+_080192F2:
+ str r0, [r1, 0xC]
+ movs r0, 0
+ bl sub_8019E04
+ ldr r2, _08019310
+ ldr r0, _0801930C
+ ldr r1, [r0]
+ ldr r3, [r1]
+ movs r0, 0x5C
+ muls r0, r3
+ adds r2, 0x18
+ b _0801944C
+ .align 2, 0
+_0801930C: .4byte gUnknown_203B210
+_08019310: .4byte gKecleonShopDialogue
+_08019314:
+ ldr r1, [r4]
+ movs r0, 0x1A
+ str r0, [r1, 0xC]
+ movs r0, 0
+ bl sub_8019E04
+ ldr r1, _08019338
+ ldr r2, [r4]
+ ldr r3, [r2]
+ movs r0, 0x5C
+ muls r0, r3
+ adds r1, 0x1C
+ adds r0, r1
+ ldr r0, [r0]
+ adds r2, 0xE4
+ ldr r2, [r2]
+ b _08019454
+ .align 2, 0
+_08019338: .4byte gKecleonShopDialogue
+_0801933C:
+ ldr r1, [r4]
+ movs r0, 0x1B
+ str r0, [r1, 0xC]
+ movs r0, 0
+ bl sub_8019E04
+ ldr r1, _08019360
+ ldr r2, [r4]
+ ldr r3, [r2]
+ movs r0, 0x5C
+ muls r0, r3
+ adds r1, 0x20
+ adds r0, r1
+ ldr r0, [r0]
+ adds r2, 0xE4
+ ldr r2, [r2]
+ b _08019454
+ .align 2, 0
+_08019360: .4byte gKecleonShopDialogue
+_08019364:
+ movs r0, 0x4
+ movs r1, 0x3
+ movs r2, 0
+ movs r3, 0xA
+ bl sub_801A5D8
+ b _08019378
+_08019372:
+ movs r0, 0x1
+ bl sub_801A8D0
+_08019378:
+ movs r0, 0x1
+ bl sub_8016C40
+ b _080194E8
+_08019380:
+ bl sub_801A9E0
+ movs r0, 0x1
+ bl sub_8016C40
+ bl sub_8019660
+ ldr r0, _080193B0
+ 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, 0x2C]
+_080193A0:
+ str r2, [sp]
+ movs r2, 0x2
+ str r2, [sp, 0x4]
+ movs r2, 0
+ bl sub_8012D60
+ b _080194E8
+ .align 2, 0
+_080193B0: .4byte gUnknown_203B210
+_080193B4:
+ bl sub_8019700
+ ldr r0, _080193E4
+ ldr r4, _080193E8
+ ldr r1, [r4]
+ adds r1, 0x1C
+ movs r2, 0
+ bl sub_8090E14
+ ldr r1, _080193EC
+ ldr r0, [r4]
+ ldr r0, [r0, 0x10]
+ str r0, [r1]
+ movs r0, 0
+ bl sub_8019E04
+ ldr r1, _080193F0
+ ldr r4, [r4]
+ ldr r2, [r4]
+ movs r0, 0x5C
+ muls r0, r2
+ adds r1, 0x24
+ b _0801948C
+ .align 2, 0
+_080193E4: .4byte gUnknown_202DE58
+_080193E8: .4byte gUnknown_203B210
+_080193EC: .4byte gUnknown_202DE30
+_080193F0: .4byte gKecleonShopDialogue
+_080193F4:
+ ldr r0, [r4]
+ adds r0, 0x1C
+ bl sub_801B3C0
+ b _080194E8
+_080193FE:
+ bl sub_8090A34
+ cmp r0, 0
+ beq _08019418
+ ldr r0, _08019424
+ ldr r0, [r0]
+ movs r1, 0x98
+ lsls r1, 2
+ adds r0, r1
+ ldr r1, [r0]
+ ldr r0, _08019428
+ cmp r1, r0
+ ble _08019430
+_08019418:
+ bl sub_801A928
+ ldr r0, _0801942C
+ ldr r1, [r0]
+ movs r0, 0x1
+ b _08019436
+ .align 2, 0
+_08019424: .4byte gUnknown_203B460
+_08019428: .4byte 0x0001869e
+_0801942C: .4byte gUnknown_203B210
+_08019430:
+ ldr r0, _08019460
+ ldr r1, [r0]
+ movs r0, 0x18
+_08019436:
+ str r0, [r1, 0xC]
+ movs r0, 0
+ bl sub_8019E04
+ ldr r2, _08019464
+ ldr r0, _08019460
+ ldr r1, [r0]
+ ldr r3, [r1]
+ movs r0, 0x5C
+ muls r0, r3
+ adds r2, 0x2C
+_0801944C:
+ adds r0, r2
+ ldr r0, [r0]
+ adds r1, 0xE4
+ ldr r2, [r1]
+_08019454:
+ ldr r3, _08019468
+_08019456:
+ movs r1, 0
+ bl sub_80141B4
+ b _080194E8
+ .align 2, 0
+_08019460: .4byte gUnknown_203B210
+_08019464: .4byte gKecleonShopDialogue
+_08019468: .4byte 0x0000010d
+_0801946C:
+ bl sub_8019700
+ ldr r1, _080194B4
+ ldr r4, _080194B8
+ ldr r0, [r4]
+ ldr r0, [r0, 0x18]
+ str r0, [r1]
+ movs r0, 0
+ bl sub_8019E04
+ ldr r1, _080194BC
+ ldr r4, [r4]
+ ldr r2, [r4]
+ movs r0, 0x5C
+ muls r0, r2
+ adds r1, 0x28
+_0801948C:
+ adds r0, r1
+ ldr r0, [r0]
+ adds r3, r4, 0
+ adds r3, 0x34
+ movs r2, 0
+ str r2, [sp]
+ movs r1, 0x4
+ str r1, [sp, 0x4]
+ str r2, [sp, 0x8]
+ adds r4, 0xE4
+ ldr r1, [r4]
+ str r1, [sp, 0xC]
+ movs r1, 0xC
+ str r1, [sp, 0x10]
+ movs r1, 0
+ movs r2, 0x5
+ bl sub_8014248
+ b _080194E8
+ .align 2, 0
+_080194B4: .4byte gUnknown_202DE30
+_080194B8: .4byte gUnknown_203B210
+_080194BC: .4byte gKecleonShopDialogue
+_080194C0:
+ ldr r1, [r4]
+ movs r0, 0x1
+ str r0, [r1, 0xC]
+ movs r0, 0
+ bl sub_8019E04
+ ldr r1, _080194F0
+ ldr r2, [r4]
+ ldr r3, [r2]
+ movs r0, 0x5C
+ muls r0, r3
+ adds r1, 0x2C
+ adds r0, r1
+ ldr r0, [r0]
+ adds r2, 0xE4
+ ldr r2, [r2]
+ ldr r3, _080194F4
+ movs r1, 0
+ bl sub_80141B4
+_080194E8:
+ add sp, 0x14
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080194F0: .4byte gKecleonShopDialogue
+_080194F4: .4byte 0x0000010d
+ thumb_func_end sub_8018E88
+
+ thumb_func_start sub_80194F8
+sub_80194F8:
+ push {r4-r7,lr}
+ ldr r4, _08019580
+ ldr r0, [r4]
+ adds r0, 0x74
+ movs r1, 0
+ movs r2, 0x10
+ bl MemoryFill16
+ ldr r3, [r4]
+ movs r2, 0
+ ldr r0, _08019584
+ ldr r0, [r0]
+ str r0, [r3, 0x34]
+ movs r0, 0x2
+ str r0, [r3, 0x38]
+ movs r1, 0x1
+ ldr r0, _08019588
+ ldr r0, [r0]
+ str r0, [r3, 0x3C]
+ movs r0, 0x3
+ str r0, [r3, 0x40]
+ ldr r0, _0801958C
+ str r0, [r3, 0x44]
+ movs r0, 0x4
+ str r0, [r3, 0x48]
+ ldr r0, _08019590
+ ldr r0, [r0]
+ str r0, [r3, 0x4C]
+ movs r0, 0x7
+ str r0, [r3, 0x50]
+ ldr r0, _08019594
+ ldr r0, [r0]
+ str r0, [r3, 0x54]
+ str r1, [r3, 0x58]
+ movs r6, 0x5
+ str r2, [r3, 0x5C]
+ str r1, [r3, 0x60]
+ movs r5, 0
+ mov r12, r3
+ adds r3, 0x38
+ mov r2, r12
+ adds r2, 0x74
+_0801954C:
+ ldrh r0, [r2]
+ cmp r0, 0
+ bne _0801955C
+ ldr r1, [r3]
+ mov r7, r12
+ ldr r0, [r7, 0x28]
+ cmp r1, r0
+ beq _080195BA
+_0801955C:
+ adds r3, 0x8
+ adds r2, 0x2
+ adds r5, 0x1
+ cmp r5, r6
+ blt _0801954C
+ movs r5, 0
+ cmp r5, r6
+ bge _080195BA
+ ldr r1, [r4]
+ adds r0, r1, 0
+ adds r0, 0x74
+ ldrh r0, [r0]
+ cmp r0, 0
+ bne _08019598
+ ldr r0, [r1, 0x38]
+ str r0, [r1, 0x28]
+ b _080195BA
+ .align 2, 0
+_08019580: .4byte gUnknown_203B210
+_08019584: .4byte gUnknown_80D4978
+_08019588: .4byte gUnknown_80D4984
+_0801958C: .4byte gUnknown_80DB8A0
+_08019590: .4byte gUnknown_80D4970
+_08019594: .4byte gUnknown_80D4934
+_08019598:
+ adds r5, 0x1
+ cmp r5, r6
+ bge _080195BA
+ ldr r2, [r4]
+ lsls r0, r5, 1
+ adds r1, r2, 0
+ adds r1, 0x74
+ adds r1, r0
+ ldrh r0, [r1]
+ cmp r0, 0
+ bne _08019598
+ lsls r0, r5, 3
+ adds r1, r2, 0
+ adds r1, 0x38
+ adds r1, r0
+ ldr r0, [r1]
+ str r0, [r2, 0x28]
+_080195BA:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80194F8
+
+ thumb_func_start sub_80195C0
+sub_80195C0:
+ push {r4-r7,lr}
+ ldr r4, _0801962C
+ ldr r0, [r4]
+ adds r0, 0x74
+ movs r1, 0
+ movs r2, 0x10
+ bl MemoryFill16
+ ldr r3, [r4]
+ movs r2, 0
+ ldr r0, _08019630
+ ldr r0, [r0]
+ str r0, [r3, 0x34]
+ movs r0, 0x2
+ str r0, [r3, 0x38]
+ movs r1, 0x1
+ ldr r0, _08019634
+ ldr r0, [r0]
+ str r0, [r3, 0x3C]
+ movs r0, 0x7
+ 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
+_080195FA:
+ ldrh r0, [r2]
+ cmp r0, 0
+ bne _0801960A
+ ldr r1, [r3]
+ mov r7, r12
+ ldr r0, [r7, 0x30]
+ cmp r1, r0
+ beq _0801965A
+_0801960A:
+ adds r3, 0x8
+ adds r2, 0x2
+ adds r5, 0x1
+ cmp r5, r6
+ blt _080195FA
+ movs r5, 0
+ cmp r5, r6
+ bge _0801965A
+ ldr r1, [r4]
+ adds r0, r1, 0
+ adds r0, 0x74
+ ldrh r0, [r0]
+ cmp r0, 0
+ bne _08019638
+ ldr r0, [r1, 0x38]
+ str r0, [r1, 0x30]
+ b _0801965A
+ .align 2, 0
+_0801962C: .4byte gUnknown_203B210
+_08019630: .4byte gUnknown_80D4978
+_08019634: .4byte gUnknown_80D4970
+_08019638:
+ adds r5, 0x1
+ cmp r5, r6
+ bge _0801965A
+ ldr r2, [r4]
+ lsls r0, r5, 1
+ adds r1, r2, 0
+ adds r1, 0x74
+ adds r1, r0
+ ldrh r0, [r1]
+ cmp r0, 0
+ bne _08019638
+ lsls r0, r5, 3
+ adds r1, r2, 0
+ adds r1, 0x38
+ adds r1, r0
+ ldr r0, [r1]
+ str r0, [r2, 0x30]
+_0801965A:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80195C0
+
+ thumb_func_start sub_8019660
+sub_8019660:
+ push {r4-r7,lr}
+ ldr r4, _080196CC
+ ldr r0, [r4]
+ adds r0, 0x74
+ movs r1, 0
+ movs r2, 0x10
+ bl MemoryFill16
+ ldr r3, [r4]
+ movs r2, 0
+ ldr r0, _080196D0
+ ldr r0, [r0]
+ str r0, [r3, 0x34]
+ movs r0, 0x3
+ str r0, [r3, 0x38]
+ movs r1, 0x1
+ ldr r0, _080196D4
+ ldr r0, [r0]
+ str r0, [r3, 0x3C]
+ movs r0, 0x7
+ 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
+_0801969A:
+ ldrh r0, [r2]
+ cmp r0, 0
+ bne _080196AA
+ ldr r1, [r3]
+ mov r7, r12
+ ldr r0, [r7, 0x2C]
+ cmp r1, r0
+ beq _080196FA
+_080196AA:
+ adds r3, 0x8
+ adds r2, 0x2
+ adds r5, 0x1
+ cmp r5, r6
+ blt _0801969A
+ movs r5, 0
+ cmp r5, r6
+ bge _080196FA
+ ldr r1, [r4]
+ adds r0, r1, 0
+ adds r0, 0x74
+ ldrh r0, [r0]
+ cmp r0, 0
+ bne _080196D8
+ ldr r0, [r1, 0x38]
+ str r0, [r1, 0x2C]
+ b _080196FA
+ .align 2, 0
+_080196CC: .4byte gUnknown_203B210
+_080196D0: .4byte gUnknown_80D4984
+_080196D4: .4byte gUnknown_80D4970
+_080196D8:
+ adds r5, 0x1
+ cmp r5, r6
+ bge _080196FA
+ ldr r2, [r4]
+ lsls r0, r5, 1
+ adds r1, r2, 0
+ adds r1, 0x74
+ adds r1, r0
+ ldrh r0, [r1]
+ cmp r0, 0
+ bne _080196D8
+ lsls r0, r5, 3
+ adds r1, r2, 0
+ adds r1, 0x38
+ adds r1, r0
+ ldr r0, [r1]
+ str r0, [r2, 0x2C]
+_080196FA:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8019660
+
+ thumb_func_start sub_8019700
+sub_8019700:
+ ldr r0, _08019724
+ ldr r1, [r0]
+ movs r3, 0
+ ldr r0, _08019728
+ ldr r0, [r0]
+ str r0, [r1, 0x34]
+ movs r0, 0x5
+ str r0, [r1, 0x38]
+ movs r2, 0x1
+ ldr r0, _0801972C
+ ldr r0, [r0]
+ str r0, [r1, 0x3C]
+ movs r0, 0x6
+ str r0, [r1, 0x40]
+ str r3, [r1, 0x44]
+ str r2, [r1, 0x48]
+ bx lr
+ .align 2, 0
+_08019724: .4byte gUnknown_203B210
+_08019728: .4byte gUnknown_80D4920
+_0801972C: .4byte gUnknown_80D4928
+ thumb_func_end sub_8019700
+
+ thumb_func_start sub_8019730
+sub_8019730:
+ push {lr}
+ sub sp, 0x4
+ mov r0, sp
+ bl sub_80144A4
+ cmp r0, 0
+ beq _08019740
+ b _0801984A
+_08019740:
+ ldr r1, [sp]
+ cmp r1, 0x1
+ beq _0801974C
+ ldr r0, _08019760
+ ldr r0, [r0]
+ str r1, [r0, 0x28]
+_0801974C:
+ ldr r0, [sp]
+ subs r0, 0x1
+ cmp r0, 0x6
+ bls _08019756
+ b _0801984A
+_08019756:
+ lsls r0, 2
+ ldr r1, _08019764
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_08019760: .4byte gUnknown_203B210
+_08019764: .4byte _08019768
+ .align 2, 0
+_08019768:
+ .4byte _08019844
+ .4byte _08019784
+ .4byte _080197AC
+ .4byte _080197E4
+ .4byte _0801984A
+ .4byte _0801984A
+ .4byte _0801983C
+_08019784:
+ bl sub_8019D8C
+ cmp r0, 0
+ bne _08019794
+ movs r0, 0x5
+ bl UpdateKecleonStoreState
+ b _0801984A
+_08019794:
+ bl sub_8090A34
+ cmp r0, 0x13
+ ble _080197A4
+ movs r0, 0xA
+ bl UpdateKecleonStoreState
+ b _0801984A
+_080197A4:
+ movs r0, 0xF
+ bl UpdateKecleonStoreState
+ b _0801984A
+_080197AC:
+ bl sub_8090A34
+ cmp r0, 0
+ beq _080197EC
+ ldr r0, _080197D8
+ ldr r0, [r0]
+ ldr r0, [r0, 0x14]
+ cmp r0, 0
+ beq _080197FE
+ ldr r0, _080197DC
+ ldr r0, [r0]
+ movs r1, 0x98
+ lsls r1, 2
+ adds r0, r1
+ ldr r1, [r0]
+ ldr r0, _080197E0
+ cmp r1, r0
+ bgt _08019822
+ movs r0, 0x17
+ bl UpdateKecleonStoreState
+ b _0801984A
+ .align 2, 0
+_080197D8: .4byte gUnknown_203B210
+_080197DC: .4byte gUnknown_203B460
+_080197E0: .4byte 0x0001869e
+_080197E4:
+ bl sub_8090A34
+ cmp r0, 0
+ bne _080197F4
+_080197EC:
+ movs r0, 0x9
+ bl UpdateKecleonStoreState
+ b _0801984A
+_080197F4:
+ ldr r0, _08019808
+ ldr r1, [r0]
+ ldr r0, [r1, 0x14]
+ cmp r0, 0
+ bne _0801980C
+_080197FE:
+ movs r0, 0x8
+ bl UpdateKecleonStoreState
+ b _0801984A
+ .align 2, 0
+_08019808: .4byte gUnknown_203B210
+_0801980C:
+ ldr r0, _0801982C
+ ldr r0, [r0]
+ movs r2, 0x98
+ lsls r2, 2
+ adds r0, r2
+ ldr r1, [r1, 0x18]
+ ldr r0, [r0]
+ adds r1, r0
+ ldr r0, _08019830
+ cmp r1, r0
+ ble _08019834
+_08019822:
+ movs r0, 0x7
+ bl UpdateKecleonStoreState
+ b _0801984A
+ .align 2, 0
+_0801982C: .4byte gUnknown_203B460
+_08019830: .4byte 0x0001869f
+_08019834:
+ movs r0, 0x1F
+ bl UpdateKecleonStoreState
+ b _0801984A
+_0801983C:
+ movs r0, 0x2
+ bl UpdateKecleonStoreState
+ b _0801984A
+_08019844:
+ movs r0, 0x3
+ bl UpdateKecleonStoreState
+_0801984A:
+ add sp, 0x4
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8019730
+
+ thumb_func_start sub_8019850
+sub_8019850:
+ push {r4,lr}
+ sub sp, 0x4
+ mov r0, sp
+ bl sub_80144A4
+ cmp r0, 0
+ bne _080198DE
+ ldr r0, [sp]
+ cmp r0, 0x5
+ beq _08019874
+ cmp r0, 0x5
+ bgt _0801986E
+ cmp r0, 0x1
+ beq _080198D8
+ b _080198DE
+_0801986E:
+ cmp r0, 0x6
+ beq _080198D8
+ b _080198DE
+_08019874:
+ ldr r4, _080198A8
+ ldr r0, [r4]
+ ldr r0, [r0, 0x10]
+ negs r0, r0
+ bl sub_80913A0
+ ldr r1, [r4]
+ ldrb r0, [r1, 0x4]
+ cmp r0, 0
+ beq _080198AC
+ adds r0, r1, 0
+ adds r0, 0x20
+ ldrb r0, [r0]
+ bl sub_809185C
+ bl sub_8091274
+ ldr r0, [r4]
+ adds r0, 0x20
+ ldrb r0, [r0]
+ bl sub_8091840
+ bl sub_8091874
+ b _080198C8
+ .align 2, 0
+_080198A8: .4byte gUnknown_203B210
+_080198AC:
+ adds r0, r1, 0
+ adds r0, 0x21
+ ldrb r0, [r0]
+ bl sub_8091A90
+ bl sub_8091274
+ ldr r0, [r4]
+ adds r0, 0x21
+ ldrb r0, [r0]
+ bl sub_8091A74
+ bl sub_8091AA8
+_080198C8:
+ movs r0, 0xA6
+ lsls r0, 1
+ bl PlaySound
+ movs r0, 0x11
+ bl UpdateKecleonStoreState
+ b _080198DE
+_080198D8:
+ movs r0, 0x10
+ bl UpdateKecleonStoreState
+_080198DE:
+ add sp, 0x4
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8019850
+
+ thumb_func_start sub_80198E8
+sub_80198E8:
+ push {r4,lr}
+ sub sp, 0x4
+ mov r0, sp
+ bl sub_80144A4
+ cmp r0, 0
+ bne _0801993A
+ ldr r0, [sp]
+ cmp r0, 0x5
+ beq _0801990C
+ cmp r0, 0x5
+ bgt _08019906
+ cmp r0, 0x1
+ beq _08019934
+ b _0801993A
+_08019906:
+ cmp r0, 0x6
+ beq _08019934
+ b _0801993A
+_0801990C:
+ ldr r4, _08019930
+ ldr r0, [r4]
+ ldr r0, [r0, 0x10]
+ bl sub_80913A0
+ ldr r0, [r4]
+ ldr r0, [r0, 0x24]
+ bl sub_80911F8
+ movs r0, 0xA6
+ lsls r0, 1
+ bl PlaySound
+ movs r0, 0x19
+ bl UpdateKecleonStoreState
+ b _0801993A
+ .align 2, 0
+_08019930: .4byte gUnknown_203B210
+_08019934:
+ movs r0, 0x18
+ bl UpdateKecleonStoreState
+_0801993A:
+ add sp, 0x4
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80198E8
+
+ thumb_func_start sub_8019944
+sub_8019944:
+ push {r4,r5,lr}
+ sub sp, 0x4
+ mov r0, sp
+ bl sub_80144A4
+ cmp r0, 0
+ bne _080199C2
+ ldr r0, [sp]
+ cmp r0, 0x5
+ beq _08019968
+ cmp r0, 0x5
+ bgt _08019962
+ cmp r0, 0x1
+ beq _080199BC
+ b _080199C2
+_08019962:
+ cmp r0, 0x6
+ beq _080199BC
+ b _080199C2
+_08019968:
+ movs r4, 0
+ ldr r5, _080199B4
+_0801996C:
+ lsls r1, r4, 2
+ ldr r0, [r5]
+ adds r2, r0, r1
+ ldrb r1, [r2]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _0801998E
+ ldrb r0, [r2, 0x2]
+ bl sub_80914E4
+ lsls r0, 24
+ cmp r0, 0
+ beq _0801998E
+ adds r0, r4, 0
+ bl sub_8091234
+_0801998E:
+ adds r4, 0x1
+ cmp r4, 0x13
+ ble _0801996C
+ bl sub_80910B4
+ ldr r0, _080199B8
+ ldr r0, [r0]
+ ldr r0, [r0, 0x18]
+ bl sub_80913A0
+ movs r0, 0xA6
+ lsls r0, 1
+ bl PlaySound
+ movs r0, 0x20
+ bl UpdateKecleonStoreState
+ b _080199C2
+ .align 2, 0
+_080199B4: .4byte gUnknown_203B460
+_080199B8: .4byte gUnknown_203B210
+_080199BC:
+ movs r0, 0x1
+ bl UpdateKecleonStoreState
+_080199C2:
+ add sp, 0x4
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8019944
+
+ thumb_func_start sub_80199CC
+sub_80199CC:
+ push {r4,r5,lr}
+ ldr r0, _080199E0
+ ldr r0, [r0]
+ ldrb r0, [r0, 0x4]
+ cmp r0, 0
+ beq _080199E4
+ movs r0, 0x1
+ bl sub_8019EDC
+ b _080199EA
+ .align 2, 0
+_080199E0: .4byte gUnknown_203B210
+_080199E4:
+ movs r0, 0x1
+ bl sub_801A2A8
+_080199EA:
+ cmp r0, 0x2
+ beq _08019AD4
+ cmp r0, 0x2
+ bhi _080199FA
+ cmp r0, 0x1
+ bne _080199F8
+ b _08019AF4
+_080199F8:
+ b _08019B00
+_080199FA:
+ cmp r0, 0x3
+ beq _08019A04
+ cmp r0, 0x4
+ beq _08019A6C
+ b _08019B00
+_08019A04:
+ ldr r4, _08019A24
+ ldr r0, [r4]
+ ldrb r0, [r0, 0x4]
+ cmp r0, 0
+ beq _08019A28
+ bl sub_8019FB0
+ ldr r1, [r4]
+ adds r1, 0x20
+ strb r0, [r1]
+ ldr r0, [r4]
+ adds r0, 0x20
+ ldrb r0, [r0]
+ bl sub_809185C
+ b _08019A3C
+ .align 2, 0
+_08019A24: .4byte gUnknown_203B210
+_08019A28:
+ bl sub_801A37C
+ ldr r1, [r4]
+ adds r1, 0x21
+ strb r0, [r1]
+ ldr r0, [r4]
+ adds r0, 0x21
+ ldrb r0, [r0]
+ bl sub_8091A90
+_08019A3C:
+ adds r5, r0, 0
+ ldr r4, _08019A68
+ ldr r0, [r4]
+ adds r0, 0x1C
+ ldrb r1, [r5]
+ movs r2, 0
+ bl sub_8090A8C
+ ldr r1, [r4]
+ ldrb r0, [r5, 0x1]
+ strb r0, [r1, 0x1D]
+ ldr r0, [r4]
+ adds r0, 0x1C
+ bl sub_8090C7C
+ ldr r1, [r4]
+ str r0, [r1, 0x10]
+ movs r0, 0x14
+ bl UpdateKecleonStoreState
+ b _08019B00
+ .align 2, 0
+_08019A68: .4byte gUnknown_203B210
+_08019A6C:
+ ldr r4, _08019A8C
+ ldr r0, [r4]
+ ldrb r0, [r0, 0x4]
+ cmp r0, 0
+ beq _08019A90
+ bl sub_8019FB0
+ ldr r1, [r4]
+ adds r1, 0x20
+ strb r0, [r1]
+ ldr r0, [r4]
+ adds r0, 0x20
+ ldrb r0, [r0]
+ bl sub_809185C
+ b _08019AA4
+ .align 2, 0
+_08019A8C: .4byte gUnknown_203B210
+_08019A90:
+ bl sub_801A37C
+ ldr r1, [r4]
+ adds r1, 0x21
+ strb r0, [r1]
+ ldr r0, [r4]
+ adds r0, 0x21
+ ldrb r0, [r0]
+ bl sub_8091A90
+_08019AA4:
+ adds r5, r0, 0
+ ldr r4, _08019AD0
+ ldr r0, [r4]
+ adds r0, 0x1C
+ ldrb r1, [r5]
+ movs r2, 0
+ bl sub_8090A8C
+ ldr r1, [r4]
+ ldrb r0, [r5, 0x1]
+ strb r0, [r1, 0x1D]
+ ldr r0, [r4]
+ adds r0, 0x1C
+ bl sub_8090C7C
+ ldr r1, [r4]
+ str r0, [r1, 0x10]
+ movs r0, 0x15
+ bl UpdateKecleonStoreState
+ b _08019B00
+ .align 2, 0
+_08019AD0: .4byte gUnknown_203B210
+_08019AD4:
+ ldr r0, _08019AE4
+ ldr r0, [r0]
+ ldrb r0, [r0, 0x4]
+ cmp r0, 0
+ beq _08019AE8
+ bl sub_801A010
+ b _08019AEC
+ .align 2, 0
+_08019AE4: .4byte gUnknown_203B210
+_08019AE8:
+ bl sub_801A3DC
+_08019AEC:
+ movs r0, 0x1
+ bl UpdateKecleonStoreState
+ b _08019B00
+_08019AF4:
+ movs r0, 0
+ bl sub_801AD34
+ movs r0, 0x1
+ bl sub_8016C40
+_08019B00:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80199CC
+
+ .align 2,0
diff --git a/asm/load_screen.s b/asm/load_screen.s
deleted file mode 100644
index 81c84fb..0000000
--- a/asm/load_screen.s
+++ /dev/null
@@ -1,718 +0,0 @@
- .include "constants/gba_constants.inc"
- .include "asm/macros.inc"
-
- .syntax unified
-
- .text
-
- thumb_func_start CreateLoadScreen
-CreateLoadScreen:
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x10
- adds r6, r0, 0
- ldr r5, _080392EC
- ldr r0, [r5]
- cmp r0, 0
- bne _0803927C
- movs r4, 0x9F
- lsls r4, 2
- adds r0, r4, 0
- movs r1, 0x8
- bl MemoryAlloc
- str r0, [r5]
- movs r1, 0
- adds r2, r4, 0
- bl MemoryFill8
-_0803927C:
- ldr r0, [r5]
- str r6, [r0]
- mov r12, r5
- movs r0, 0xA2
- lsls r0, 1
- mov r8, r0
- ldr r4, _080392F0
- movs r3, 0
- movs r2, 0x3
-_0803928E:
- 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 _0803928E
- bl ResetUnusedInputStruct
- ldr r6, _080392EC
- ldr r0, [r6]
- movs r5, 0xA2
- lsls r5, 1
- adds r0, r5
- movs r1, 0x1
- movs r2, 0x1
- bl sub_800641C
- ldr r1, [r6]
- adds r0, r1, 0x4
- adds r1, r5
- ldr r3, _080392F4
- ldr r2, _080392F8
- str r2, [sp]
- movs r4, 0
- str r4, [sp, 0x4]
- movs r7, 0x6
- str r7, [sp, 0x8]
- str r4, [sp, 0xC]
- movs r2, 0
- bl SetMenuItems
- ldr r1, [r6]
- ldr r0, [r1]
- cmp r0, 0x7
- beq _08039306
- cmp r0, 0x7
- bhi _080392FC
- cmp r0, 0x6
- beq _08039338
- b _08039382
- .align 2, 0
-_080392EC: .4byte gUnknown_203B374
-_080392F0: .4byte gUnknown_80E75F8
-_080392F4: .4byte gUnknown_80E7610
-_080392F8: .4byte gUnknown_203B378
-_080392FC:
- cmp r0, 0x8
- beq _0803934C
- cmp r0, 0x9
- beq _0803936C
- b _08039382
-_08039306:
- bl sub_8039844
- lsls r0, 24
- cmp r0, 0
- beq _08039324
- ldr r1, [r6]
- adds r0, r1, 0x4
- adds r1, r5
- ldr r3, _0803931C
- ldr r2, _08039320
- b _08039354
- .align 2, 0
-_0803931C: .4byte gUnknown_80E762C
-_08039320: .4byte gUnknown_80E7644
-_08039324:
- ldr r1, [r6]
- adds r0, r1, 0x4
- adds r1, r5
- ldr r3, _08039330
- ldr r2, _08039334
- b _08039354
- .align 2, 0
-_08039330: .4byte gUnknown_80E762C
-_08039334: .4byte gUnknown_80E7684
-_08039338:
- adds r0, r1, 0x4
- adds r1, r5
- ldr r3, _08039344
- ldr r2, _08039348
- b _08039354
- .align 2, 0
-_08039344: .4byte gUnknown_80E762C
-_08039348: .4byte gUnknown_80E76B8
-_0803934C:
- adds r0, r1, 0x4
- adds r1, r5
- ldr r3, _08039364
- ldr r2, _08039368
-_08039354:
- str r2, [sp]
- str r4, [sp, 0x4]
- str r7, [sp, 0x8]
- str r4, [sp, 0xC]
- movs r2, 0x1
- bl SetMenuItems
- b _08039382
- .align 2, 0
-_08039364: .4byte gUnknown_80E762C
-_08039368: .4byte gUnknown_80E76E8
-_0803936C:
- adds r0, r1, 0x4
- adds r1, r5
- ldr r3, _080393DC
- ldr r2, _080393E0
- str r2, [sp]
- str r4, [sp, 0x4]
- str r7, [sp, 0x8]
- str r4, [sp, 0xC]
- movs r2, 0x1
- bl SetMenuItems
-_08039382:
- ldr r4, _080393E4
- ldr r1, [r4]
- adds r0, r1, 0x4
- movs r6, 0xA2
- lsls r6, 1
- adds r1, r6
- ldr r3, _080393E8
- ldr r2, _080393EC
- str r2, [sp]
- movs r2, 0x1
- str r2, [sp, 0x4]
- movs r2, 0x2
- str r2, [sp, 0x8]
- movs r2, 0
- str r2, [sp, 0xC]
- movs r2, 0x2
- bl SetMenuItems
- ldr r0, [r4]
- adds r0, 0x4
- movs r1, 0
- movs r2, 0
- bl sub_8035CF4
- ldr r0, [r4]
- adds r0, 0x4
- movs r1, 0x1
- movs r2, 0
- bl sub_8035CF4
- ldr r0, [r4]
- adds r0, 0x4
- movs r1, 0x2
- movs r2, 0x1
- bl sub_8035CF4
- bl DrawLoadScreenText
- add sp, 0x10
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080393DC: .4byte gUnknown_80E762C
-_080393E0: .4byte gUnknown_80E7730
-_080393E4: .4byte gUnknown_203B374
-_080393E8: .4byte gUnknown_80E7784
-_080393EC: .4byte gUnknown_80E779C
- thumb_func_end CreateLoadScreen
-
- thumb_func_start CleanLoadScreen
-CleanLoadScreen:
- push {r4,lr}
- bl ResetUnusedInputStruct
- movs r0, 0
- movs r1, 0x1
- movs r2, 0x1
- bl sub_800641C
- ldr r4, _08039418
- ldr r0, [r4]
- cmp r0, 0
- beq _08039410
- bl MemoryFree
- movs r0, 0
- str r0, [r4]
-_08039410:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08039418: .4byte gUnknown_203B374
- thumb_func_end CleanLoadScreen
-
- thumb_func_start sub_803941C
-sub_803941C:
- push {r4,r5,lr}
- sub sp, 0x4
- ldr r5, _08039458
- movs r0, 0x4
- str r0, [sp]
- ldr r4, _0803945C
- 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 _08039448
- ldr r0, [r4]
- adds r0, 0xA4
- mov r1, sp
- bl sub_8013114
-_08039448:
- ldr r0, [sp]
- cmp r0, 0x3
- bhi _08039498
- cmp r0, 0x2
- bcs _08039460
- cmp r0, 0x1
- beq _08039464
- b _08039498
- .align 2, 0
-_08039458: .4byte 0x0000ffdc
-_0803945C: .4byte gUnknown_203B374
-_08039460:
- movs r5, 0x1
- b _08039498
-_08039464:
- ldr r0, [r4]
- ldr r0, [r0]
- cmp r0, 0x7
- beq _08039480
- cmp r0, 0x7
- bhi _08039476
- cmp r0, 0x6
- beq _08039484
- b _08039498
-_08039476:
- cmp r0, 0x8
- beq _0803948E
- cmp r0, 0x9
- beq _08039492
- b _08039498
-_08039480:
- movs r5, 0x2
- b _08039498
-_08039484:
- movs r0, 0
- bl sub_8095240
- movs r5, 0x4
- b _08039498
-_0803948E:
- movs r5, 0x9
- b _08039498
-_08039492:
- bl sub_80122A8
- movs r5, 0x2E
-_08039498:
- adds r0, r5, 0
- add sp, 0x4
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_803941C
-
- thumb_func_start DrawLoadScreenText
-DrawLoadScreenText:
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x150
- bl sub_8011FA8
- mov r8, r0
- movs r0, 0
- bl sub_8008C54
- movs r0, 0
- bl sub_80073B8
- ldr r2, _0803952C
- movs r4, 0
- str r4, [sp]
- movs r0, 0x8
- movs r1, 0
- movs r3, 0
- bl xxx_call_draw_string
- ldr r2, _08039530
- str r4, [sp]
- movs r0, 0x8
- movs r1, 0xC
- movs r3, 0
- bl xxx_call_draw_string
- ldr r2, _08039534
- str r4, [sp]
- movs r0, 0x8
- movs r1, 0x18
- movs r3, 0
- bl xxx_call_draw_string
- ldr r2, _08039538
- str r4, [sp]
- movs r0, 0x8
- movs r1, 0x24
- movs r3, 0
- bl xxx_call_draw_string
- ldr r2, _0803953C
- str r4, [sp]
- movs r0, 0x8
- movs r1, 0x30
- movs r3, 0
- bl xxx_call_draw_string
- ldr r2, _08039540
- str r4, [sp]
- movs r0, 0x8
- movs r1, 0x3C
- movs r3, 0
- bl xxx_call_draw_string
- movs r0, 0
- bl sub_80023E4
- lsls r0, 24
- cmp r0, 0
- beq _08039544
- add r4, sp, 0x68
- adds r0, r4, 0
- bl sub_80920D8
- adds r2, r4, 0
- b _0803954E
- .align 2, 0
-_0803952C: .4byte gUnknown_80E77BC
-_08039530: .4byte gUnknown_80E77C4
-_08039534: .4byte gUnknown_80E77CC
-_08039538: .4byte gUnknown_80E77D8
-_0803953C: .4byte gUnknown_80E77E4
-_08039540: .4byte gUnknown_80E77F0
-_08039544:
- ldr r1, _08039588
- add r0, sp, 0x68
- bl strcpy
- add r2, sp, 0x68
-_0803954E:
- ldr r5, _0803958C
- ldr r0, [r5]
- movs r4, 0xD2
- lsls r4, 1
- adds r0, r4
- ldr r1, _08039590
- bl sub_800D158
- ldr r2, [r5]
- adds r2, r4
- movs r0, 0
- str r0, [sp]
- movs r0, 0x40
- movs r1, 0
- movs r3, 0
- bl xxx_call_draw_string
- bl sub_808D33C
- cmp r0, 0
- bne _08039598
- add r4, sp, 0x90
- ldr r1, _08039594
- adds r0, r4, 0
- movs r2, 0xA
- bl sub_80922B4
- b _080395A6
- .align 2, 0
-_08039588: .4byte gUnknown_80E77F8
-_0803958C: .4byte gUnknown_203B374
-_08039590: .4byte gUnknown_80E7804
-_08039594: .4byte gUnknown_80E7808
-_08039598:
- add r4, sp, 0x90
- adds r1, r0, 0
- adds r1, 0x4C
- adds r0, r4, 0
- movs r2, 0xA
- bl sub_80922B4
-_080395A6:
- adds r2, r4, 0
- ldr r5, _080395F0
- ldr r0, [r5]
- movs r4, 0xE4
- lsls r4, 1
- adds r0, r4
- ldr r6, _080395F4
- adds r1, r6, 0
- bl sub_800D158
- ldr r2, [r5]
- adds r2, r4
- movs r0, 0
- str r0, [sp]
- movs r0, 0x40
- movs r1, 0xC
- movs r3, 0
- bl xxx_call_draw_string
- movs r0, 0x1
- bl sub_8095324
- cmp r0, 0
- bne _080395E0
- movs r0, 0x7
- bl sub_8095324
- cmp r0, 0
- beq _08039606
-_080395E0:
- ldr r0, _080395F8
- cmp r8, r0
- bne _080395FC
- ldr r4, [r5]
- movs r0, 0xF6
- lsls r0, 1
- adds r4, r0
- b _08039676
- .align 2, 0
-_080395F0: .4byte gUnknown_203B374
-_080395F4: .4byte gUnknown_80E7804
-_080395F8: .4byte 0x000f1207
-_080395FC:
- ldr r0, [r5]
- movs r1, 0xF6
- lsls r1, 1
- adds r0, r1
- b _08039690
-_08039606:
- bl sub_8011C1C
- cmp r0, 0x1
- beq _08039624
- cmp r0, 0x2
- beq _08039668
- ldr r0, [r5]
- movs r2, 0xF6
- lsls r2, 1
- adds r0, r2
- ldr r1, _08039620
- b _08039692
- .align 2, 0
-_08039620: .4byte gUnknown_80E7824
-_08039624:
- movs r0, 0
- movs r1, 0x18
- bl sub_8001658
- cmp r0, 0x7
- beq _08039658
- cmp r0, 0xB
- beq _08039658
- bl sub_8098FB4
- adds r2, r0, 0
- add r0, sp, 0x4
- adds r1, r6, 0
- bl sub_800D158
- ldr r0, [r5]
- movs r3, 0xF6
- lsls r3, 1
- adds r1, r0, r3
- adds r3, 0x24
- adds r2, r0, r3
- add r0, sp, 0x4
- movs r3, 0
- bl xxx_format_string
- b _08039696
-_08039658:
- ldr r0, _08039664
- ldr r0, [r0]
- movs r1, 0xF6
- lsls r1, 1
- adds r0, r1
- b _08039690
- .align 2, 0
-_08039664: .4byte gUnknown_203B374
-_08039668:
- ldr r0, _08039684
- cmp r8, r0
- bne _08039688
- ldr r4, [r5]
- movs r2, 0xF6
- lsls r2, 1
- adds r4, r2
-_08039676:
- bl sub_809769C
- adds r1, r0, 0
- adds r0, r4, 0
- bl sub_8090228
- b _08039696
- .align 2, 0
-_08039684: .4byte 0x000f1207
-_08039688:
- ldr r0, [r5]
- movs r3, 0xF6
- lsls r3, 1
- adds r0, r3
-_08039690:
- ldr r1, _0803974C
-_08039692:
- bl sub_800D158
-_08039696:
- ldr r7, _08039750
- ldr r2, [r7]
- movs r0, 0xF6
- lsls r0, 1
- adds r2, r0
- movs r6, 0
- str r6, [sp]
- movs r0, 0x40
- movs r1, 0x18
- movs r3, 0
- bl xxx_call_draw_string
- ldr r0, _08039754
- ldr r0, [r0]
- add r1, sp, 0x144
- add r2, sp, 0x148
- add r3, sp, 0x14C
- bl DeconstructPlayTime
- ldr r0, [r7]
- movs r5, 0x84
- lsls r5, 2
- adds r0, r5
- ldr r1, _08039758
- add r2, sp, 0x144
- ldr r2, [r2]
- add r3, sp, 0x148
- ldr r3, [r3]
- add r4, sp, 0x14C
- ldr r4, [r4]
- str r4, [sp]
- bl sub_800D158
- ldr r2, [r7]
- adds r2, r5
- str r6, [sp]
- movs r0, 0x40
- movs r1, 0x24
- movs r3, 0
- bl xxx_call_draw_string
- bl sub_8097778
- adds r2, r0, 0
- ldr r0, [r7]
- movs r4, 0x8D
- lsls r4, 2
- adds r0, r4
- ldr r1, _0803975C
- bl sub_800D158
- ldr r2, [r7]
- adds r2, r4
- str r6, [sp]
- movs r0, 0x40
- movs r1, 0x30
- movs r3, 0
- bl xxx_call_draw_string
- ldr r0, _08039760
- cmp r8, r0
- bne _0803976C
- ldr r0, _08039764
- ldr r6, [r0]
- movs r1, 0xC
- ldrsh r0, [r6, r1]
- cmp r0, 0
- beq _0803976C
- add r5, sp, 0x130
- adds r1, r0, 0
- adds r0, r5, 0
- bl sub_808D930
- add r4, sp, 0xE0
- adds r1, r6, 0
- adds r1, 0x50
- adds r0, r4, 0
- movs r2, 0xA
- bl sub_80922B4
- ldr r0, [r7]
- movs r3, 0x96
- lsls r3, 2
- adds r0, r3
- ldr r1, _08039768
- adds r2, r4, 0
- adds r3, r5, 0
- bl sub_800D158
- b _0803977C
- .align 2, 0
-_0803974C: .4byte gUnknown_80E780C
-_08039750: .4byte gUnknown_203B374
-_08039754: .4byte gPlayTimeRef
-_08039758: .4byte gUnknown_80E7838
-_0803975C: .4byte gUnknown_80E7848
-_08039760: .4byte 0x000f1207
-_08039764: .4byte gUnknown_203B484
-_08039768: .4byte gUnknown_80E784C
-_0803976C:
- ldr r0, _080397AC
- ldr r0, [r0]
- movs r1, 0x96
- lsls r1, 2
- adds r0, r1
- ldr r1, _080397B0
- bl sub_800D158
-_0803977C:
- ldr r0, _080397AC
- ldr r2, [r0]
- movs r3, 0x96
- lsls r3, 2
- adds r2, r3
- movs r0, 0
- str r0, [sp]
- movs r0, 0x40
- movs r1, 0x3C
- movs r3, 0
- bl xxx_call_draw_string
- bl sub_80397B4
- movs r0, 0
- bl sub_80073E0
- add sp, 0x150
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080397AC: .4byte gUnknown_203B374
-_080397B0: .4byte gUnknown_80E7854
- thumb_func_end DrawLoadScreenText
-
- thumb_func_start sub_80397B4
-sub_80397B4:
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0xC
- ldr r0, _08039834
- ldr r1, _08039838
- bl OpenFileAndGetFileDataPtr
- adds r6, r0, 0
- movs r4, 0
-_080397C8:
- adds r0, r4, 0
- adds r0, 0xB0
- ldr r1, [r6, 0x4]
- lsls r2, r4, 2
- ldr r1, [r1, 0x4]
- adds r1, r2
- bl SetBGPaletteBufferColorArray
- adds r4, 0x1
- cmp r4, 0x3F
- ble _080397C8
- movs r7, 0x8
- movs r0, 0x49
- mov r8, r0
- movs r4, 0
-_080397E6:
- ldr r0, _0803983C
- lsls r5, r4, 2
- adds r0, r5, r0
- ldr r0, [r0]
- bl sub_80023E4
- lsls r0, 24
- cmp r0, 0
- beq _0803981C
- movs r0, 0x10
- str r0, [sp]
- ldr r0, [r6, 0x4]
- lsls r1, r4, 7
- ldr r0, [r0]
- adds r0, r1
- str r0, [sp, 0x4]
- ldr r0, _08039840
- adds r0, r5, r0
- ldr r0, [r0]
- str r0, [sp, 0x8]
- movs r0, 0
- adds r1, r7, 0
- mov r2, r8
- movs r3, 0x10
- bl sub_8007E20
- adds r7, 0x10
-_0803981C:
- adds r4, 0x1
- cmp r4, 0xB
- ble _080397E6
- adds r0, r6, 0
- bl CloseFile
- add sp, 0xC
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08039834: .4byte gUnknown_80E785C
-_08039838: .4byte gTitleMenuFileArchive
-_0803983C: .4byte gUnknown_203B3B8
-_08039840: .4byte gUnknown_203B388
- thumb_func_end sub_80397B4
-
- .align 2,0
diff --git a/asm/main_menu.s b/asm/main_menu.s
deleted file mode 100644
index ad0ce64..0000000
--- a/asm/main_menu.s
+++ /dev/null
@@ -1,76 +0,0 @@
- .include "constants/gba_constants.inc"
- .include "asm/macros.inc"
-
- .syntax unified
-
- .text
-
- thumb_func_start SetMenuItems
-SetMenuItems:
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x8
- adds r6, r0, 0
- adds r4, r1, 0
- adds r5, r2, 0
- ldr r0, [sp, 0x24]
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- lsls r0, r5, 1
- adds r0, r5
- lsls r0, 3
- adds r0, r4
- ldm r3!, {r1,r2,r7}
- stm r0!, {r1,r2,r7}
- ldm r3!, {r1,r2,r7}
- stm r0!, {r1,r2,r7}
- bl ResetUnusedInputStruct
- adds r0, r4, 0
- movs r1, 0x1
- movs r2, 0x1
- bl sub_800641C
- mov r0, r8
- cmp r0, 0
- beq _08035C90
- lsls r4, r5, 2
- adds r0, r4, r5
- lsls r0, 4
- adds r0, r6, r0
- ldr r1, [sp, 0x28]
- str r1, [sp]
- str r5, [sp, 0x4]
- ldr r1, [sp, 0x20]
- movs r2, 0
- movs r3, 0
- bl sub_8012D60
- b _08035CA8
-_08035C90:
- lsls r4, r5, 2
- adds r0, r4, r5
- lsls r0, 4
- adds r0, r6, r0
- mov r1, r8
- str r1, [sp]
- str r5, [sp, 0x4]
- ldr r1, [sp, 0x20]
- movs r2, 0
- movs r3, 0
- bl sub_8012E04
-_08035CA8:
- adds r0, r4, r5
- lsls r0, 4
- adds r0, r6
- adds r0, 0x4C
- movs r1, 0x1
- strb r1, [r0]
- add sp, 0x8
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end SetMenuItems
-
- .align 2,0
diff --git a/asm/makuhita_dojo.s b/asm/makuhita_dojo.s
new file mode 100644
index 0000000..c206233
--- /dev/null
+++ b/asm/makuhita_dojo.s
@@ -0,0 +1,908 @@
+ .include "constants/gba_constants.inc"
+ .include "asm/macros.inc"
+
+ .syntax unified
+
+ .text
+
+ thumb_func_start UpdateMakuhitaDialogue
+UpdateMakuhitaDialogue:
+ push {r4,r5,lr}
+ sub sp, 0x18
+ ldr r1, _0802FFA4
+ ldr r0, [r1]
+ ldr r0, [r0, 0x8]
+ adds r5, r1, 0
+ cmp r0, 0xD
+ bls _0802FF9A
+ b _080301A0
+_0802FF9A:
+ lsls r0, 2
+ ldr r1, _0802FFA8
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_0802FFA4: .4byte gUnknown_203B318
+_0802FFA8: .4byte _0802FFAC
+ .align 2, 0
+_0802FFAC:
+ .4byte _0802FFE4
+ .4byte _08030000
+ .4byte _08030038
+ .4byte _08030050
+ .4byte _08030068
+ .4byte _08030074
+ .4byte _080300DC
+ .4byte _080300C4
+ .4byte _080300F4
+ .4byte _0803010C
+ .4byte _08030148
+ .4byte _08030174
+ .4byte _08030180
+ .4byte _080301A0
+_0802FFE4:
+ bl sub_80301B0
+ ldr r2, _0802FFF8
+ ldr r0, _0802FFFC
+ ldr r5, [r0]
+ ldr r1, [r5, 0x4]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 3
+ b _0803000E
+ .align 2, 0
+_0802FFF8: .4byte gMakuhitaDialogue
+_0802FFFC: .4byte gUnknown_203B318
+_08030000:
+ ldr r2, _08030034
+ ldr r5, [r5]
+ ldr r1, [r5, 0x4]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 3
+ adds r2, 0x4
+_0803000E:
+ adds r0, r2
+ ldr r0, [r0]
+ ldr r2, [r5, 0x14]
+ adds r3, r5, 0
+ adds r3, 0x18
+ movs r4, 0
+ str r4, [sp]
+ movs r1, 0x4
+ str r1, [sp, 0x4]
+ str r4, [sp, 0x8]
+ ldr r1, [r5, 0x68]
+ str r1, [sp, 0xC]
+ movs r1, 0xC
+ str r1, [sp, 0x10]
+ movs r1, 0
+ bl sub_8014248
+ b _080301A0
+ .align 2, 0
+_08030034: .4byte gMakuhitaDialogue
+_08030038:
+ ldr r3, [r5]
+ movs r0, 0xD
+ str r0, [r3, 0xC]
+ ldr r2, _0803004C
+ ldr r1, [r3, 0x4]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 3
+ adds r2, 0x8
+ b _0803015A
+ .align 2, 0
+_0803004C: .4byte gMakuhitaDialogue
+_08030050:
+ ldr r3, [r5]
+ movs r0, 0x4
+ str r0, [r3, 0xC]
+ ldr r2, _08030064
+ ldr r1, [r3, 0x4]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 3
+ adds r2, 0xC
+ b _0803015A
+ .align 2, 0
+_08030064: .4byte gMakuhitaDialogue
+_08030068:
+ movs r0, 0x3
+ movs r1, 0
+ movs r2, 0xA
+ bl sub_80302E8
+ b _080301A0
+_08030074:
+ ldr r1, [r5]
+ movs r0, 0xD
+ str r0, [r1, 0xC]
+ movs r2, 0x10
+ ldrsh r0, [r1, r2]
+ bl sub_80A2740
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _080300B4
+ ldr r1, [sp, 0x14]
+ ands r1, r2
+ orrs r1, r0
+ ldr r0, _080300B8
+ ands r1, r0
+ movs r0, 0x80
+ lsls r0, 1
+ orrs r1, r0
+ str r1, [sp, 0x14]
+ ldr r0, _080300BC
+ add r1, sp, 0x14
+ bl sub_8090208
+ ldr r2, _080300C0
+ ldr r3, [r5]
+ ldr r1, [r3, 0x4]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 3
+ adds r2, 0x10
+ b _0803015A
+ .align 2, 0
+_080300B4: .4byte 0xffffff00
+_080300B8: .4byte 0xffff00ff
+_080300BC: .4byte gAvailablePokemonNames
+_080300C0: .4byte gMakuhitaDialogue
+_080300C4:
+ ldr r3, [r5]
+ movs r0, 0xD
+ str r0, [r3, 0xC]
+ ldr r2, _080300D8
+ ldr r1, [r3, 0x4]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 3
+ adds r2, 0x18
+ b _0803015A
+ .align 2, 0
+_080300D8: .4byte gMakuhitaDialogue
+_080300DC:
+ ldr r3, [r5]
+ movs r0, 0xD
+ str r0, [r3, 0xC]
+ ldr r2, _080300F0
+ ldr r1, [r3, 0x4]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 3
+ adds r2, 0x14
+ b _0803015A
+ .align 2, 0
+_080300F0: .4byte gMakuhitaDialogue
+_080300F4:
+ ldr r3, [r5]
+ movs r0, 0x9
+ str r0, [r3, 0xC]
+ ldr r2, _08030108
+ ldr r1, [r3, 0x4]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 3
+ adds r2, 0x1C
+ b _0803015A
+ .align 2, 0
+_08030108: .4byte gMakuhitaDialogue
+_0803010C:
+ ldr r4, _08030138
+ bl sub_808D33C
+ adds r1, r0, 0
+ adds r0, r4, 0
+ movs r2, 0x6
+ bl sub_808D9AC
+ ldr r0, _0803013C
+ ldr r1, [r0]
+ movs r0, 0xB
+ str r0, [r1, 0xC]
+ movs r0, 0xCB
+ bl PlaySound
+ ldr r0, _08030140
+ ldr r3, _08030144
+ movs r1, 0
+ movs r2, 0
+ bl sub_80141B4
+ b _080301A0
+ .align 2, 0
+_08030138: .4byte gPlayerName
+_0803013C: .4byte gUnknown_203B318
+_08030140: .4byte gUnknown_80E0778
+_08030144: .4byte 0x00000101
+_08030148:
+ ldr r3, [r5]
+ movs r0, 0xD
+ str r0, [r3, 0xC]
+ ldr r2, _0803016C
+ ldr r1, [r3, 0x4]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 3
+ adds r2, 0x20
+_0803015A:
+ adds r0, r2
+ ldr r0, [r0]
+ ldr r2, [r3, 0x68]
+ ldr r3, _08030170
+ movs r1, 0
+ bl sub_80141B4
+ b _080301A0
+ .align 2, 0
+_0803016C: .4byte gMakuhitaDialogue
+_08030170: .4byte 0x0000010d
+_08030174:
+ movs r0, 0x1
+ movs r1, 0x49
+ movs r2, 0x1
+ bl sub_801B60C
+ b _080301A0
+_08030180:
+ ldr r3, [r5]
+ movs r0, 0x1
+ str r0, [r3, 0xC]
+ ldr r2, _080301A8
+ ldr r1, [r3, 0x4]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 3
+ adds r2, 0x24
+ adds r0, r2
+ ldr r0, [r0]
+ ldr r2, [r3, 0x68]
+ ldr r3, _080301AC
+ movs r1, 0
+ bl sub_80141B4
+_080301A0:
+ add sp, 0x18
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080301A8: .4byte gMakuhitaDialogue
+_080301AC: .4byte 0x0000010d
+ thumb_func_end UpdateMakuhitaDialogue
+
+ thumb_func_start sub_80301B0
+sub_80301B0:
+ push {r4,lr}
+ ldr r4, _080301F8
+ ldr r1, [r4]
+ movs r2, 0x2
+ str r2, [r1, 0x14]
+ ldr r0, _080301FC
+ str r0, [r1, 0x18]
+ str r2, [r1, 0x1C]
+ bl sub_80306A4
+ lsls r0, 24
+ cmp r0, 0
+ beq _080301D6
+ ldr r0, [r4]
+ movs r1, 0x1
+ negs r1, r1
+ str r1, [r0, 0x1C]
+ movs r1, 0x1
+ str r1, [r0, 0x14]
+_080301D6:
+ ldr r1, [r4]
+ movs r2, 0x1
+ ldr r0, _08030200
+ ldr r0, [r0]
+ str r0, [r1, 0x20]
+ movs r0, 0x3
+ str r0, [r1, 0x24]
+ ldr r0, _08030204
+ ldr r0, [r0]
+ str r0, [r1, 0x28]
+ str r2, [r1, 0x2C]
+ movs r0, 0
+ str r0, [r1, 0x30]
+ str r2, [r1, 0x34]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080301F8: .4byte gUnknown_203B318
+_080301FC: .4byte gUnknown_80E07D8
+_08030200: .4byte gUnknown_80D4970
+_08030204: .4byte gUnknown_80D4934
+ thumb_func_end sub_80301B0
+
+ thumb_func_start sub_8030208
+sub_8030208:
+ push {lr}
+ sub sp, 0x4
+ mov r0, sp
+ bl sub_80144A4
+ cmp r0, 0
+ bne _08030250
+ ldr r0, _08030230
+ ldr r1, [r0]
+ ldr r0, [sp]
+ str r0, [r1, 0x14]
+ ldr r0, [sp]
+ cmp r0, 0x2
+ beq _0803023A
+ cmp r0, 0x2
+ bgt _08030234
+ cmp r0, 0x1
+ beq _0803024A
+ b _08030250
+ .align 2, 0
+_08030230: .4byte gUnknown_203B318
+_08030234:
+ cmp r0, 0x3
+ beq _08030242
+ b _08030250
+_0803023A:
+ movs r0, 0x3
+ bl sub_802FF04
+ b _08030250
+_08030242:
+ movs r0, 0xC
+ bl sub_802FF04
+ b _08030250
+_0803024A:
+ movs r0, 0x2
+ bl sub_802FF04
+_08030250:
+ add sp, 0x4
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8030208
+
+ thumb_func_start sub_8030258
+sub_8030258:
+ push {lr}
+ movs r0, 0x1
+ bl sub_80303AC
+ cmp r0, 0x2
+ beq _08030288
+ cmp r0, 0x2
+ bcc _0803029A
+ cmp r0, 0x3
+ bne _0803029A
+ bl sub_8030418
+ ldr r1, _08030284
+ ldr r1, [r1]
+ strh r0, [r1, 0x10]
+ bl sub_8030480
+ movs r0, 0x5
+ bl sub_802FF04
+ b _0803029A
+ .align 2, 0
+_08030284: .4byte gUnknown_203B318
+_08030288:
+ bl sub_8030480
+ ldr r0, _080302A0
+ ldr r1, [r0]
+ ldr r0, _080302A4
+ strh r0, [r1, 0x10]
+ movs r0, 0x1
+ bl sub_802FF04
+_0803029A:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080302A0: .4byte gUnknown_203B318
+_080302A4: .4byte 0x0000ffff
+ thumb_func_end sub_8030258
+
+ thumb_func_start sub_80302A8
+sub_80302A8:
+ push {lr}
+ bl sub_801B6AC
+ cmp r0, 0x1
+ bls _080302C0
+ cmp r0, 0x3
+ bhi _080302C0
+ bl sub_801B72C
+ movs r0, 0xA
+ bl sub_802FF04
+_080302C0:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80302A8
+
+ thumb_func_start sub_80302C4
+sub_80302C4:
+ push {lr}
+ sub sp, 0x4
+ mov r0, sp
+ bl sub_80144A4
+ cmp r0, 0
+ bne _080302DC
+ ldr r0, _080302E4
+ ldr r0, [r0]
+ ldr r0, [r0, 0xC]
+ bl sub_802FF04
+_080302DC:
+ add sp, 0x4
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080302E4: .4byte gUnknown_203B318
+ thumb_func_end sub_80302C4
+
+ thumb_func_start sub_80302E8
+sub_80302E8:
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ adds r5, r0, 0
+ adds r6, r1, 0
+ mov r8, r2
+ bl sub_80306A4
+ lsls r0, 24
+ cmp r0, 0
+ beq _08030302
+ movs r0, 0
+ b _0803039A
+_08030302:
+ ldr r4, _080303A4
+ ldr r0, [r4]
+ cmp r0, 0
+ bne _08030314
+ movs r0, 0xD0
+ movs r1, 0x8
+ bl MemoryAlloc
+ str r0, [r4]
+_08030314:
+ ldr r0, [r4]
+ str r5, [r0, 0x64]
+ lsls r1, r5, 1
+ adds r1, r5
+ lsls r1, 3
+ adds r1, 0x6C
+ adds r1, r0, r1
+ str r1, [r0, 0x68]
+ adds r0, 0x6C
+ bl sub_8006518
+ ldr r1, [r4]
+ ldr r2, [r1, 0x64]
+ lsls r0, r2, 1
+ adds r0, r2
+ lsls r0, 3
+ adds r1, r0
+ adds r1, 0x6C
+ ldr r0, _080303A8
+ ldm r0!, {r2,r3,r7}
+ stm r1!, {r2,r3,r7}
+ ldm r0!, {r2,r3,r7}
+ stm r1!, {r2,r3,r7}
+ ldr r2, [r4]
+ ldr r1, [r2, 0x68]
+ adds r0, r2, 0
+ adds r0, 0xCC
+ str r0, [r1, 0x14]
+ cmp r6, 0
+ beq _08030362
+ ldr r1, [r2, 0x64]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 3
+ adds r1, r2, 0
+ adds r1, 0x74
+ adds r1, r0
+ ldr r0, [r6]
+ str r0, [r1]
+_08030362:
+ ldr r0, [r4]
+ ldr r0, [r0, 0x68]
+ mov r1, r8
+ bl sub_8012D08
+ bl ResetUnusedInputStruct
+ ldr r0, [r4]
+ adds r0, 0x6C
+ movs r1, 0x1
+ movs r2, 0x1
+ bl sub_800641C
+ ldr r4, [r4]
+ adds r4, 0x30
+ bl sub_8030668
+ adds r1, r0, 0
+ adds r0, r4, 0
+ mov r2, r8
+ adds r3, r5, 0
+ bl sub_8013818
+ bl sub_80304C8
+ bl sub_803053C
+ movs r0, 0x1
+_0803039A:
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080303A4: .4byte gUnknown_203B31C
+_080303A8: .4byte gUnknown_80E0804
+ thumb_func_end sub_80302E8
+
+ thumb_func_start sub_80303AC
+sub_80303AC:
+ push {r4,lr}
+ lsls r0, 24
+ cmp r0, 0
+ bne _080303C8
+ ldr r0, _080303C4
+ ldr r0, [r0]
+ adds r0, 0x30
+ bl sub_8013660
+ movs r0, 0
+ b _08030410
+ .align 2, 0
+_080303C4: .4byte gUnknown_203B31C
+_080303C8:
+ ldr r4, _080303E4
+ ldr r0, [r4]
+ adds r0, 0x30
+ bl GetKeyPress
+ cmp r0, 0x1
+ beq _080303E8
+ cmp r0, 0x2
+ bne _080303F2
+ movs r0, 0x1
+ bl PlayMenuSoundEffect
+ movs r0, 0x2
+ b _08030410
+ .align 2, 0
+_080303E4: .4byte gUnknown_203B31C
+_080303E8:
+ movs r0, 0
+ bl PlayMenuSoundEffect
+ movs r0, 0x3
+ b _08030410
+_080303F2:
+ ldr r0, [r4]
+ adds r0, 0x30
+ movs r1, 0x1
+ bl sub_80138B8
+ lsls r0, 24
+ cmp r0, 0
+ bne _08030406
+ movs r0, 0
+ b _08030410
+_08030406:
+ bl sub_80304C8
+ bl sub_803053C
+ movs r0, 0x1
+_08030410:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80303AC
+
+ thumb_func_start sub_8030418
+sub_8030418:
+ ldr r0, _08030440
+ ldr r2, [r0]
+ adds r0, r2, 0
+ adds r0, 0x4E
+ 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, 0x48
+ movs r3, 0
+ ldrsh r1, [r1, r3]
+ adds r0, r1
+ lsls r0, 1
+ adds r0, r2, r0
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ bx lr
+ .align 2, 0
+_08030440: .4byte gUnknown_203B31C
+ thumb_func_end sub_8030418
+
+ thumb_func_start sub_8030444
+sub_8030444:
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ bl sub_8030668
+ adds r1, r0, 0
+ ldr r5, _0803047C
+ ldr r0, [r5]
+ adds r2, r0, 0
+ adds r2, 0x52
+ strh r1, [r2]
+ adds r0, 0x30
+ bl sub_8013984
+ bl sub_80304C8
+ bl sub_803053C
+ cmp r4, 0
+ beq _08030476
+ ldr r0, [r5]
+ adds r0, 0x30
+ bl AddMenuCursorSprite
+_08030476:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0803047C: .4byte gUnknown_203B31C
+ thumb_func_end sub_8030444
+
+ thumb_func_start sub_8030480
+sub_8030480:
+ push {r4,r5,lr}
+ ldr r4, _080304C0
+ ldr r2, [r4]
+ cmp r2, 0
+ beq _080304BA
+ ldr r0, [r2, 0x64]
+ lsls r1, r0, 1
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r2, r1
+ adds r1, 0x6C
+ ldr r0, _080304C4
+ 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, 0x6C
+ movs r1, 0x1
+ movs r2, 0x1
+ bl sub_800641C
+ ldr r0, [r4]
+ bl MemoryFree
+ movs r0, 0
+ str r0, [r4]
+_080304BA:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080304C0: .4byte gUnknown_203B31C
+_080304C4: .4byte gUnknown_80E07EC
+ thumb_func_end sub_8030480
+
+ thumb_func_start sub_80304C8
+sub_80304C8:
+ push {r4,lr}
+ ldr r4, _08030538
+ ldr r0, [r4]
+ adds r0, 0xCC
+ movs r2, 0
+ movs r1, 0x1
+ strb r1, [r0]
+ ldr r0, [r4]
+ adds r0, 0xCD
+ strb r2, [r0]
+ ldr r0, [r4]
+ adds r0, 0xCE
+ movs r1, 0x8
+ strb r1, [r0]
+ ldr r0, [r4]
+ adds r0, 0xCF
+ strb r2, [r0]
+ ldr r0, [r4]
+ adds r0, 0x4A
+ 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, 0x64]
+ lsls r1, r3, 1
+ adds r1, r3
+ lsls r1, 3
+ adds r1, r2, r1
+ adds r1, 0x7A
+ asrs r3, r0, 16
+ lsrs r0, 16
+ strh r0, [r1]
+ ldr r1, [r2, 0x64]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 3
+ adds r2, r0
+ adds r3, 0x2
+ adds r2, 0x7C
+ strh r3, [r2]
+ bl ResetUnusedInputStruct
+ ldr r0, [r4]
+ adds r0, 0x6C
+ movs r1, 0x1
+ movs r2, 0x1
+ bl sub_800641C
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08030538: .4byte gUnknown_203B31C
+ thumb_func_end sub_80304C8
+
+ thumb_func_start sub_803053C
+sub_803053C:
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ sub sp, 0x108
+ ldr r4, _08030658
+ ldr r0, [r4]
+ ldr r0, [r0, 0x64]
+ bl sub_8008C54
+ ldr r0, [r4]
+ ldr r0, [r0, 0x64]
+ bl sub_80073B8
+ ldr r2, _0803065C
+ ldr r0, [r4]
+ ldr r3, [r0, 0x64]
+ 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, 0xCE
+ ldrb r0, [r0]
+ lsls r0, 3
+ adds r0, 0x4
+ adds r1, r3, 0
+ adds r1, 0x4E
+ movs r5, 0
+ ldrsh r2, [r1, r5]
+ adds r2, 0x1
+ movs r1, 0x7
+ str r1, [sp]
+ ldr r1, [r3, 0x64]
+ str r1, [sp, 0x4]
+ movs r1, 0
+ movs r3, 0x2
+ bl sub_8012BC4
+ movs r0, 0
+ mov r9, r0
+ ldr r0, [r4]
+ adds r0, 0x4A
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ cmp r9, r0
+ bge _0803063E
+ mov r8, r4
+_080305A2:
+ mov r3, r8
+ ldr r1, [r3]
+ adds r0, r1, 0
+ adds r0, 0x4E
+ movs r5, 0
+ ldrsh r2, [r0, r5]
+ subs r0, 0x2
+ movs r3, 0
+ ldrsh r0, [r0, r3]
+ muls r0, r2
+ add r0, r9
+ lsls r0, 1
+ adds r1, r0
+ movs r5, 0
+ ldrsh r4, [r1, r5]
+ adds r0, r4, 0
+ bl sub_80A2740
+ lsls r0, 24
+ lsrs r7, r0, 24
+ adds r0, r4, 0
+ bl sub_80A2668
+ adds r4, r0, 0
+ lsls r4, 16
+ asrs r4, 16
+ mov r1, r8
+ ldr r0, [r1]
+ adds r0, 0x30
+ mov r1, r9
+ bl sub_8013800
+ adds r6, r0, 0
+ movs r5, 0x7
+ adds r0, r4, 0
+ bl sub_809758C
+ lsls r0, 24
+ cmp r0, 0
+ beq _08030608
+ mov r3, r8
+ ldr r0, [r3]
+ ldr r3, [r0, 0x64]
+ movs r0, 0
+ str r0, [sp]
+ movs r0, 0x8
+ adds r1, r6, 0
+ ldr r2, _08030660
+ bl xxx_call_draw_string
+ movs r5, 0x4
+_08030608:
+ adds r0, r7, 0
+ bl GetDungeonName1
+ adds r3, r0, 0
+ add r0, sp, 0x8
+ ldr r1, _08030664
+ adds r2, r5, 0
+ bl sub_800D158
+ mov r5, r8
+ ldr r0, [r5]
+ ldr r3, [r0, 0x64]
+ movs r0, 0
+ str r0, [sp]
+ movs r0, 0x10
+ adds r1, r6, 0
+ add r2, sp, 0x8
+ bl xxx_call_draw_string
+ movs r0, 0x1
+ add r9, r0
+ ldr r0, [r5]
+ adds r0, 0x4A
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ cmp r9, r0
+ blt _080305A2
+_0803063E:
+ ldr r0, _08030658
+ ldr r0, [r0]
+ ldr r0, [r0, 0x64]
+ bl sub_80073E0
+ add sp, 0x108
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08030658: .4byte gUnknown_203B31C
+_0803065C: .4byte gUnknown_80E081C
+_08030660: .4byte gUnknown_80E0824
+_08030664: .4byte gUnknown_80E0828
+ thumb_func_end sub_803053C
+
+ thumb_func_start sub_8030668
+sub_8030668:
+ push {r4-r6,lr}
+ movs r6, 0
+ movs r5, 0
+_0803066E:
+ lsls r0, r5, 16
+ asrs r4, r0, 16
+ adds r0, r4, 0
+ bl sub_8097504
+ lsls r0, 24
+ cmp r0, 0
+ beq _08030690
+ adds r0, r4, 0
+ bl sub_80A26CC
+ ldr r1, _080306A0
+ ldr r1, [r1]
+ lsls r2, r6, 1
+ adds r1, r2
+ strh r0, [r1]
+ adds r6, 0x1
+_08030690:
+ adds r5, 0x1
+ cmp r5, 0x16
+ ble _0803066E
+ adds r0, r6, 0
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080306A0: .4byte gUnknown_203B31C
+ thumb_func_end sub_8030668
+
+ thumb_func_start sub_80306A4
+sub_80306A4:
+ movs r0, 0
+ bx lr
+ thumb_func_end sub_80306A4
+
+ .align 2,0
diff --git a/asm/other_menus.s b/asm/other_menus.s
index 7168a67..6cefea7 100644
--- a/asm/other_menus.s
+++ b/asm/other_menus.s
@@ -223,7 +223,7 @@ _080375BE:
.align 2, 0
_080375CC: .4byte gUnknown_203B35C
_080375D0: .4byte 0xffff0000
-_080375D4: .4byte gUnknown_203B45C
+_080375D4: .4byte gRecruitedPokemonRef
_080375D8:
ldr r0, _08037610
ldr r0, [r0]
diff --git a/asm/pokemon.s b/asm/pokemon.s
index bd729f7..1e8d2ed 100644
--- a/asm/pokemon.s
+++ b/asm/pokemon.s
@@ -55,7 +55,7 @@ _0808CE46:
pop {r0}
bx r0
.align 2, 0
-_0808CE60: .4byte gUnknown_203B45C
+_0808CE60: .4byte gRecruitedPokemonRef
_0808CE64: .4byte 0x0000019d
_0808CE68: .4byte 0x00008df8
_0808CE6C: .4byte 0x00008f90
@@ -232,7 +232,7 @@ _0808CFB8:
bx r0
.align 2, 0
_0808CFC8: .4byte gMonsterParameters
-_0808CFCC: .4byte gUnknown_203B45C
+_0808CFCC: .4byte gRecruitedPokemonRef
thumb_func_end sub_808CE74
thumb_func_start sub_808CFD0
@@ -579,7 +579,7 @@ _0808D26A:
pop {r1}
bx r1
.align 2, 0
-_0808D274: .4byte gUnknown_203B45C
+_0808D274: .4byte gRecruitedPokemonRef
thumb_func_end sub_808D1DC
thumb_func_start sub_808D278
@@ -641,7 +641,7 @@ _0808D2DC:
pop {r1}
bx r1
.align 2, 0
-_0808D2E4: .4byte gUnknown_203B45C
+_0808D2E4: .4byte gRecruitedPokemonRef
thumb_func_end sub_808D278
thumb_func_start sub_808D2E8
@@ -714,7 +714,7 @@ _0808D344:
adds r0, r2, 0
b _0808D370
.align 2, 0
-_0808D360: .4byte gUnknown_203B45C
+_0808D360: .4byte gRecruitedPokemonRef
_0808D364:
adds r3, 0x1
movs r0, 0xCE
@@ -754,7 +754,7 @@ _0808D39A:
adds r0, r2, 0
b _0808D3B4
.align 2, 0
-_0808D3A4: .4byte gUnknown_203B45C
+_0808D3A4: .4byte gRecruitedPokemonRef
_0808D3A8:
adds r3, 0x1
movs r0, 0xCE
@@ -790,7 +790,7 @@ _0808D3CC:
adds r0, r3, 0
b _0808D3F0
.align 2, 0
-_0808D3E0: .4byte gUnknown_203B45C
+_0808D3E0: .4byte gRecruitedPokemonRef
_0808D3E4:
adds r2, 0x58
adds r3, 0x58
@@ -826,7 +826,7 @@ _0808D408:
adds r0, r3, 0
b _0808D42C
.align 2, 0
-_0808D41C: .4byte gUnknown_203B45C
+_0808D41C: .4byte gRecruitedPokemonRef
_0808D420:
adds r2, 0x58
adds r3, 0x58
@@ -869,7 +869,7 @@ _0808D44C:
adds r0, r2, 0
b _0808D478
.align 2, 0
-_0808D468: .4byte gUnknown_203B45C
+_0808D468: .4byte gRecruitedPokemonRef
_0808D46C:
adds r4, 0x1
_0808D46E:
@@ -909,7 +909,7 @@ _0808D498:
pop {r1}
bx r1
.align 2, 0
-_0808D4A8: .4byte gUnknown_203B45C
+_0808D4A8: .4byte gRecruitedPokemonRef
_0808D4AC: .4byte 0x0000019d
thumb_func_end sub_808D480
@@ -955,7 +955,7 @@ _0808D4E4:
pop {r1}
bx r1
.align 2, 0
-_0808D4F8: .4byte gUnknown_203B45C
+_0808D4F8: .4byte gRecruitedPokemonRef
_0808D4FC: .4byte 0x0000fffd
thumb_func_end sub_808D4B0
@@ -993,7 +993,7 @@ _0808D526:
pop {r1}
bx r1
.align 2, 0
-_0808D53C: .4byte gUnknown_203B45C
+_0808D53C: .4byte gRecruitedPokemonRef
_0808D540: .4byte 0x0000fffd
thumb_func_end sub_808D500
@@ -1031,7 +1031,7 @@ _0808D56C:
pop {r1}
bx r1
.align 2, 0
-_0808D57C: .4byte gUnknown_203B45C
+_0808D57C: .4byte gRecruitedPokemonRef
thumb_func_end sub_808D544
thumb_func_start sub_808D580
@@ -1059,7 +1059,7 @@ _0808D590:
adds r5, 0x1
b _0808D5BC
.align 2, 0
-_0808D5AC: .4byte gUnknown_203B45C
+_0808D5AC: .4byte gRecruitedPokemonRef
_0808D5B0:
adds r4, 0x1
adds r2, 0x58
@@ -1197,7 +1197,7 @@ _0808D68C:
pop {r1}
bx r1
.align 2, 0
-_0808D6A0: .4byte gUnknown_203B45C
+_0808D6A0: .4byte gRecruitedPokemonRef
thumb_func_end sub_808D654
thumb_func_start sub_808D6A4
@@ -1237,7 +1237,7 @@ _0808D6CE:
pop {r1}
bx r1
.align 2, 0
-_0808D6E4: .4byte gUnknown_203B45C
+_0808D6E4: .4byte gRecruitedPokemonRef
thumb_func_end sub_808D6A4
thumb_func_start sub_808D6E8
@@ -1287,7 +1287,7 @@ _0808D728:
movs r0, 0x1
b _0808D746
.align 2, 0
-_0808D740: .4byte gUnknown_203B45C
+_0808D740: .4byte gRecruitedPokemonRef
_0808D744:
movs r0, 0
_0808D746:
@@ -1361,7 +1361,7 @@ _0808D798:
movs r0, 0x1
b _0808D7CE
.align 2, 0
-_0808D7C8: .4byte gUnknown_203B45C
+_0808D7C8: .4byte gRecruitedPokemonRef
_0808D7CC:
movs r0, 0
_0808D7CE:
@@ -1391,7 +1391,7 @@ sub_808D7DC:
strb r0, [r1, 0x1]
bx lr
.align 2, 0
-_0808D7FC: .4byte gUnknown_203B45C
+_0808D7FC: .4byte gRecruitedPokemonRef
thumb_func_end sub_808D7DC
thumb_func_start sub_808D800
@@ -1412,7 +1412,7 @@ sub_808D800:
strb r1, [r0]
bx lr
.align 2, 0
-_0808D820: .4byte gUnknown_203B45C
+_0808D820: .4byte gRecruitedPokemonRef
thumb_func_end sub_808D800
thumb_func_start sub_808D824
@@ -1484,7 +1484,7 @@ _0808D888:
movs r0, 0x1
b _0808D8B4
.align 2, 0
-_0808D8A0: .4byte gUnknown_203B45C
+_0808D8A0: .4byte gRecruitedPokemonRef
_0808D8A4:
cmp r4, r0
blt _0808D8B2
@@ -1501,282 +1501,5 @@ _0808D8B4:
bx r1
thumb_func_end sub_808D864
- thumb_func_start CopySpeciesNametoBuffer
-CopySpeciesNametoBuffer:
- push {lr}
- lsls r1, 16
- asrs r1, 16
- ldr r2, _0808D8DC
- ldr r3, [r2]
- lsls r2, r1, 3
- adds r2, r1
- lsls r2, 3
- adds r2, r3
- ldr r1, [r2]
- movs r2, 0x14
- bl strncpy
- pop {r0}
- bx r0
- .align 2, 0
-_0808D8DC: .4byte gMonsterParameters
- thumb_func_end CopySpeciesNametoBuffer
-
- thumb_func_start sub_808D8E0
-sub_808D8E0:
- push {r4,lr}
- lsls r3, r1, 16
- asrs r3, 16
- ldr r1, _0808D900
- ldr r2, _0808D904
- ldr r4, [r2]
- lsls r2, r3, 3
- adds r2, r3
- lsls r2, 3
- adds r2, r4
- ldr r2, [r2]
- bl sub_800D158
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0808D900: .4byte gUnknown_8107600
-_0808D904: .4byte gMonsterParameters
- thumb_func_end sub_808D8E0
-
- thumb_func_start sub_808D908
-sub_808D908:
- push {r4,lr}
- lsls r3, r1, 16
- asrs r3, 16
- ldr r1, _0808D928
- ldr r2, _0808D92C
- ldr r4, [r2]
- lsls r2, r3, 3
- adds r2, r3
- lsls r2, 3
- adds r2, r4
- ldr r2, [r2]
- bl sub_800D158
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0808D928: .4byte gUnknown_8107608
-_0808D92C: .4byte gMonsterParameters
- thumb_func_end sub_808D908
-
- thumb_func_start sub_808D930
-sub_808D930:
- push {r4-r7,lr}
- adds r7, r0, 0
- lsls r1, 16
- asrs r6, r1, 16
- adds r0, r6, 0
- bl sub_808E770
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0xC9
- bne _0808D970
- ldr r5, _0808D968
- movs r0, 0xC9
- bl GetMonSpecies
- adds r4, r0, 0
- adds r0, r6, 0
- bl sub_808E8C8
- ldr r1, _0808D96C
- adds r0, r1
- ldrb r3, [r0]
- adds r0, r7, 0
- adds r1, r5, 0
- adds r2, r4, 0
- bl sub_800D158
- b _0808D986
- .align 2, 0
-_0808D968: .4byte gUnknown_8107630
-_0808D96C: .4byte gUnknown_8107610
-_0808D970:
- ldr r1, _0808D98C
- ldr r0, _0808D990
- ldr r2, [r0]
- lsls r0, r6, 3
- adds r0, r6
- lsls r0, 3
- adds r0, r2
- ldr r2, [r0]
- adds r0, r7, 0
- bl sub_800D158
-_0808D986:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0808D98C: .4byte gUnknown_8107638
-_0808D990: .4byte gMonsterParameters
- thumb_func_end sub_808D930
-
- thumb_func_start GetMonSpecies
-GetMonSpecies:
- lsls r0, 16
- asrs r0, 16
- ldr r1, _0808D9A8
- ldr r2, [r1]
- lsls r1, r0, 3
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- ldr r0, [r1]
- bx lr
- .align 2, 0
-_0808D9A8: .4byte gMonsterParameters
- thumb_func_end GetMonSpecies
-
- thumb_func_start sub_808D9AC
-sub_808D9AC:
- push {r4,r5,lr}
- sub sp, 0x14
- adds r5, r0, 0
- adds r4, r2, 0
- adds r1, 0x4C
- mov r0, sp
- movs r2, 0xA
- bl sub_80922B4
- cmp r4, 0
- bne _0808D9C4
- movs r4, 0x5
-_0808D9C4:
- ldr r1, _0808D9D8
- adds r0, r5, 0
- adds r2, r4, 0
- mov r3, sp
- bl sub_800D158
- add sp, 0x14
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0808D9D8: .4byte gUnknown_810763C
- thumb_func_end sub_808D9AC
-
- thumb_func_start sub_808D9DC
-sub_808D9DC:
- push {r4,r5,lr}
- sub sp, 0x14
- adds r5, r0, 0
- adds r4, r2, 0
- adds r1, 0x58
- mov r0, sp
- movs r2, 0xA
- bl sub_80922B4
- cmp r4, 0
- bne _0808D9F4
- movs r4, 0x6
-_0808D9F4:
- ldr r1, _0808DA08
- adds r0, r5, 0
- adds r2, r4, 0
- mov r3, sp
- bl sub_800D158
- add sp, 0x14
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0808DA08: .4byte gUnknown_810763C
- thumb_func_end sub_808D9DC
-
- thumb_func_start sub_808DA0C
-sub_808DA0C:
- push {r4,lr}
- sub sp, 0x14
- adds r4, r0, 0
- adds r1, 0x58
- mov r0, sp
- movs r2, 0xA
- bl sub_80922B4
- ldr r1, _0808DA30
- adds r0, r4, 0
- mov r2, sp
- bl sub_800D158
- add sp, 0x14
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0808DA30: .4byte gUnknown_8107638
- thumb_func_end sub_808DA0C
-
- thumb_func_start sub_808DA34
-sub_808DA34:
- push {lr}
- adds r1, 0x4C
- movs r2, 0xA
- bl sub_80922B4
- pop {r0}
- bx r0
- thumb_func_end sub_808DA34
-
- thumb_func_start sub_808DA44
-sub_808DA44:
- push {r4-r6,lr}
- sub sp, 0x30
- lsls r0, 16
- asrs r4, r0, 16
- lsls r1, 24
- lsrs r2, r1, 24
- cmp r2, 0xC
- bls _0808DAA0
- mov r1, sp
- ldr r0, _0808DA98
- ldm r0!, {r3,r5,r6}
- stm r1!, {r3,r5,r6}
- ldm r0!, {r3,r5,r6}
- stm r1!, {r3,r5,r6}
- ldm r0!, {r3,r5,r6}
- stm r1!, {r3,r5,r6}
- ldm r0!, {r3,r5,r6}
- stm r1!, {r3,r5,r6}
- mov r0, sp
- movs r1, 0
- ldrsh r0, [r0, r1]
- cmp r0, 0
- beq _0808DA92
- mov r1, sp
- add r3, sp, 0x48
-_0808DA76:
- movs r5, 0
- ldrsh r0, [r1, r5]
- cmp r0, r4
- bne _0808DA84
- ldr r0, [r1, 0x4]
- cmp r0, r2
- beq _0808DA9C
-_0808DA84:
- adds r1, 0x8
- cmp r1, r3
- bgt _0808DA92
- movs r6, 0
- ldrsh r0, [r1, r6]
- cmp r0, 0
- bne _0808DA76
-_0808DA92:
- movs r0, 0
- b _0808DAA6
- .align 2, 0
-_0808DA98: .4byte gUnknown_8107654
-_0808DA9C:
- movs r0, 0x1
- b _0808DAA6
-_0808DAA0:
- ldr r0, _0808DAB0
- adds r0, r2, r0
- ldrb r0, [r0]
-_0808DAA6:
- add sp, 0x30
- pop {r4-r6}
- pop {r1}
- bx r1
- .align 2, 0
-_0808DAB0: .4byte gUnknown_8107645
- thumb_func_end sub_808DA44
.align 2,0
diff --git a/asm/pokemon_1.s b/asm/pokemon_1.s
new file mode 100644
index 0000000..5417b8e
--- /dev/null
+++ b/asm/pokemon_1.s
@@ -0,0 +1,72 @@
+ .include "constants/gba_constants.inc"
+ .include "asm/macros.inc"
+
+ .syntax unified
+
+ .text
+
+ thumb_func_start sub_808DA44
+sub_808DA44:
+ push {r4-r6,lr}
+ sub sp, 0x30
+ lsls r0, 16
+ asrs r4, r0, 16
+ lsls r1, 24
+ lsrs r2, r1, 24
+ cmp r2, 0xC
+ bls _0808DAA0
+ mov r1, sp
+ ldr r0, _0808DA98
+ ldm r0!, {r3,r5,r6}
+ stm r1!, {r3,r5,r6}
+ ldm r0!, {r3,r5,r6}
+ stm r1!, {r3,r5,r6}
+ ldm r0!, {r3,r5,r6}
+ stm r1!, {r3,r5,r6}
+ ldm r0!, {r3,r5,r6}
+ stm r1!, {r3,r5,r6}
+ mov r0, sp
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ cmp r0, 0
+ beq _0808DA92
+ mov r1, sp
+ add r3, sp, 0x48
+_0808DA76:
+ movs r5, 0
+ ldrsh r0, [r1, r5]
+ cmp r0, r4
+ bne _0808DA84
+ ldr r0, [r1, 0x4]
+ cmp r0, r2
+ beq _0808DA9C
+_0808DA84:
+ adds r1, 0x8
+ cmp r1, r3
+ bgt _0808DA92
+ movs r6, 0
+ ldrsh r0, [r1, r6]
+ cmp r0, 0
+ bne _0808DA76
+_0808DA92:
+ movs r0, 0
+ b _0808DAA6
+ .align 2, 0
+_0808DA98: .4byte gUnknown_8107654
+_0808DA9C:
+ movs r0, 0x1
+ b _0808DAA6
+_0808DAA0:
+ ldr r0, _0808DAB0
+ adds r0, r2, r0
+ ldrb r0, [r0]
+_0808DAA6:
+ add sp, 0x30
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0808DAB0: .4byte gUnknown_8107645
+ thumb_func_end sub_808DA44
+
+ .align 2,0
diff --git a/asm/pokemon_square.s b/asm/pokemon_square.s
new file mode 100644
index 0000000..6eef7df
--- /dev/null
+++ b/asm/pokemon_square.s
@@ -0,0 +1,7112 @@
+ .include "constants/gba_constants.inc"
+ .include "asm/macros.inc"
+
+ .syntax unified
+
+ .text
+
+
+ thumb_func_start sub_8019E40
+sub_8019E40:
+ push {r4-r6,lr}
+ adds r6, r0, 0
+ bl sub_8091814
+ cmp r0, 0
+ beq _08019ED4
+ ldr r5, _08019EC8
+ 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, _08019ECC
+ 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 sub_8091814
+ adds r1, r0, 0
+ adds r0, r4, 0
+ movs r2, 0xA
+ adds r3, r6, 0
+ bl sub_8013818
+ ldr r0, [r5]
+ ldr r1, _08019ED0
+ ldrh r1, [r1]
+ strh r1, [r0, 0x18]
+ bl sub_8013984
+ bl sub_801A064
+ bl sub_801A0D8
+ movs r0, 0x1
+ b _08019ED6
+ .align 2, 0
+_08019EC8: .4byte gUnknown_203B214
+_08019ECC: .4byte gUnknown_80DB8CC
+_08019ED0: .4byte gUnknown_203B218
+_08019ED4:
+ movs r0, 0
+_08019ED6:
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8019E40
+
+ thumb_func_start sub_8019EDC
+sub_8019EDC:
+ push {lr}
+ sub sp, 0x4
+ lsls r0, 24
+ cmp r0, 0
+ bne _08019EF8
+ ldr r0, _08019EF4
+ ldr r0, [r0]
+ bl sub_8013660
+ movs r0, 0
+ b _08019FAA
+ .align 2, 0
+_08019EF4: .4byte gUnknown_203B214
+_08019EF8:
+ ldr r0, _08019F10
+ ldr r0, [r0]
+ bl GetKeyPress
+ cmp r0, 0x2
+ beq _08019F1A
+ cmp r0, 0x2
+ bgt _08019F14
+ cmp r0, 0x1
+ beq _08019F24
+ b _08019F88
+ .align 2, 0
+_08019F10: .4byte gUnknown_203B214
+_08019F14:
+ cmp r0, 0x4
+ beq _08019F7E
+ b _08019F88
+_08019F1A:
+ movs r0, 0x1
+ bl PlayMenuSoundEffect
+ movs r0, 0x2
+ b _08019FAA
+_08019F24:
+ bl sub_8019FB0
+ lsls r0, 24
+ lsrs r0, 24
+ bl sub_809185C
+ ldrb r2, [r0]
+ lsls r2, 16
+ ldr r3, _08019F68
+ ldr r1, [sp]
+ ands r1, r3
+ orrs r1, r2
+ str r1, [sp]
+ ldrb r0, [r0, 0x1]
+ lsls r0, 8
+ ldr r2, _08019F6C
+ ands r1, r2
+ orrs r1, r0
+ str r1, [sp]
+ mov r0, sp
+ bl sub_8090C7C
+ ldr r1, _08019F70
+ ldr r1, [r1]
+ movs r2, 0x98
+ lsls r2, 2
+ adds r1, r2
+ ldr r1, [r1]
+ cmp r0, r1
+ ble _08019F74
+ movs r0, 0x2
+ bl PlayMenuSoundEffect
+ b _08019F7A
+ .align 2, 0
+_08019F68: .4byte 0xff00ffff
+_08019F6C: .4byte 0xffff00ff
+_08019F70: .4byte gUnknown_203B460
+_08019F74:
+ movs r0, 0
+ bl PlayMenuSoundEffect
+_08019F7A:
+ movs r0, 0x3
+ b _08019FAA
+_08019F7E:
+ movs r0, 0x4
+ bl PlayMenuSoundEffect
+ movs r0, 0x4
+ b _08019FAA
+_08019F88:
+ ldr r0, _08019F9C
+ ldr r0, [r0]
+ movs r1, 0x1
+ bl sub_80138B8
+ lsls r0, 24
+ cmp r0, 0
+ bne _08019FA0
+ movs r0, 0
+ b _08019FAA
+ .align 2, 0
+_08019F9C: .4byte gUnknown_203B214
+_08019FA0:
+ bl sub_801A064
+ bl sub_801A0D8
+ movs r0, 0x1
+_08019FAA:
+ add sp, 0x4
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8019EDC
+
+ thumb_func_start sub_8019FB0
+sub_8019FB0:
+ ldr r0, _08019FC8
+ 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
+_08019FC8: .4byte gUnknown_203B214
+ thumb_func_end sub_8019FB0
+
+ thumb_func_start sub_8019FCC
+sub_8019FCC:
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ bl ResetUnusedInputStruct
+ ldr r5, _0801A00C
+ ldr r0, [r5]
+ adds r0, 0x3C
+ movs r1, 0
+ movs r2, 0
+ bl sub_800641C
+ bl sub_8091814
+ adds r1, r0, 0
+ ldr r0, [r5]
+ strh r1, [r0, 0x22]
+ bl sub_8013984
+ bl sub_801A064
+ bl sub_801A0D8
+ cmp r4, 0
+ beq _0801A006
+ ldr r0, [r5]
+ bl AddMenuCursorSprite
+_0801A006:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0801A00C: .4byte gUnknown_203B214
+ thumb_func_end sub_8019FCC
+
+ thumb_func_start sub_801A010
+sub_801A010:
+ push {r4,r5,lr}
+ ldr r4, _0801A058
+ ldr r2, [r4]
+ cmp r2, 0
+ beq _0801A050
+ ldr r1, _0801A05C
+ 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, _0801A060
+ 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]
+_0801A050:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0801A058: .4byte gUnknown_203B214
+_0801A05C: .4byte gUnknown_203B218
+_0801A060: .4byte gUnknown_80DB8B4
+ thumb_func_end sub_801A010
+
+ 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 sub_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 sub_8090C7C
+ 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 gUnknown_203B460
+_0801A1BC:
+ mov r0, r8
+ ldr r1, _0801A204
+ add r2, sp, 0x4
+ bl sub_800D158
+ 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 sub_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 sub_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 sub_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 sub_8090C7C
+ 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 gUnknown_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 sub_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 sub_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 sub_8090C7C
+ 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 gUnknown_203B460
+_0801A588:
+ mov r0, r8
+ ldr r1, _0801A5D0
+ add r2, sp, 0x4
+ bl sub_800D158
+ 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 sub_8090A34
+ 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 sub_80910B4
+ 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 sub_8090A34
+ 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 sub_80914E4
+ lsls r0, 24
+ cmp r0, 0
+ beq _0801A7F4
+ mov r0, sp
+ bl sub_8090CCC
+ 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 gUnknown_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 sub_80910B4
+ bl sub_8090A34
+ 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 gUnknown_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 sub_80914E4
+ 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 sub_8090CCC
+ 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 sub_800D158
+ 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 gUnknown_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 sub_8014FF0
+ 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 sub_8091764
+ 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 sub_8014FF0
+_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 sub_8090A34
+ 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 sub_8091524
+ lsls r0, 24
+ cmp r0, 0
+ beq _0801AE12
+ lsrs r0, r4, 24
+ bl sub_8090A60
+ 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 gUnknown_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 sub_8090A60
+ 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 gUnknown_203B460
+_0801AE6C:
+ adds r0, r5, 0x1
+_0801AE6E:
+ lsls r0, 16
+ lsrs r5, r0, 16
+_0801AE72:
+ adds r6, 0x1
+_0801AE74:
+ bl sub_8090A34
+ 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 sub_8090A34
+ cmp r7, r0
+ blt _0801AF12
+ mov r9, r8
+_0801AF78:
+ bl sub_8090A34
+ 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 gUnknown_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
+
+ thumb_func_start sub_801AFA4
+sub_801AFA4:
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ ldr r5, _0801AFEC
+ movs r0, 0xA4
+ movs r1, 0x8
+ bl MemoryAlloc
+ str r0, [r5]
+ str r4, [r0, 0x4]
+ ldr r1, _0801AFF0
+ ldr r1, [r1]
+ lsls r4, 2
+ adds r1, r4
+ ldrb r1, [r1, 0x2]
+ strb r1, [r0, 0x8]
+ ldr r0, [r5]
+ ldrb r0, [r0, 0x8]
+ bl sub_80913CC
+ ldr r1, [r5]
+ strh r0, [r1, 0xA]
+ ldr r0, _0801AFF4
+ ldrh r1, [r1, 0xA]
+ bl sub_8092C84
+ movs r0, 0
+ bl sub_8099690
+ bl sub_801B2F4
+ cmp r0, 0
+ bne _0801AFF8
+ movs r0, 0x3
+ bl sub_801B064
+ b _0801B004
+ .align 2, 0
+_0801AFEC: .4byte gUnknown_203B22C
+_0801AFF0: .4byte gUnknown_203B460
+_0801AFF4: .4byte gUnknown_202E1C8
+_0801AFF8:
+ ldr r1, [r5]
+ movs r0, 0x4
+ str r0, [r1, 0x60]
+ movs r0, 0
+ bl sub_801B064
+_0801B004:
+ movs r0, 0x1
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_801AFA4
+
+ thumb_func_start sub_801B00C
+sub_801B00C:
+ push {lr}
+ ldr r0, _0801B024
+ ldr r0, [r0]
+ ldr r0, [r0]
+ cmp r0, 0x1
+ beq _0801B036
+ cmp r0, 0x1
+ bgt _0801B028
+ cmp r0, 0
+ beq _0801B030
+ b _0801B03C
+ .align 2, 0
+_0801B024: .4byte gUnknown_203B22C
+_0801B028:
+ cmp r0, 0x4
+ bne _0801B03C
+ movs r0, 0x3
+ b _0801B042
+_0801B030:
+ bl sub_801B200
+ b _0801B040
+_0801B036:
+ bl sub_801B2AC
+ b _0801B040
+_0801B03C:
+ bl sub_801B2D8
+_0801B040:
+ movs r0, 0
+_0801B042:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_801B00C
+
+ thumb_func_start sub_801B048
+sub_801B048:
+ push {r4,lr}
+ ldr r4, _0801B060
+ ldr r0, [r4]
+ cmp r0, 0
+ beq _0801B05A
+ bl MemoryFree
+ movs r0, 0
+ str r0, [r4]
+_0801B05A:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0801B060: .4byte gUnknown_203B22C
+ thumb_func_end sub_801B048
+
+ thumb_func_start sub_801B064
+sub_801B064:
+ push {lr}
+ ldr r1, _0801B078
+ ldr r1, [r1]
+ str r0, [r1]
+ bl nullsub_37
+ bl sub_801B080
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0801B078: .4byte gUnknown_203B22C
+ thumb_func_end sub_801B064
+
+ thumb_func_start nullsub_37
+nullsub_37:
+ bx lr
+ thumb_func_end nullsub_37
+
+ thumb_func_start sub_801B080
+sub_801B080:
+ push {r4,lr}
+ sub sp, 0x14
+ ldr r1, _0801B09C
+ ldr r0, [r1]
+ ldr r0, [r0]
+ adds r4, r1, 0
+ cmp r0, 0x4
+ bhi _0801B168
+ lsls r0, 2
+ ldr r1, _0801B0A0
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_0801B09C: .4byte gUnknown_203B22C
+_0801B0A0: .4byte _0801B0A4
+ .align 2, 0
+_0801B0A4:
+ .4byte _0801B0B8
+ .4byte _0801B0E8
+ .4byte _0801B0FC
+ .4byte _0801B15C
+ .4byte _0801B168
+_0801B0B8:
+ bl sub_801B178
+ ldr r0, _0801B0E0
+ ldr r1, _0801B0E4
+ ldr r3, [r1]
+ ldr r2, [r3, 0x60]
+ adds r3, 0x64
+ movs r4, 0
+ str r4, [sp]
+ movs r1, 0x4
+ str r1, [sp, 0x4]
+ str r4, [sp, 0x8]
+ str r4, [sp, 0xC]
+ movs r1, 0x20
+ str r1, [sp, 0x10]
+ movs r1, 0
+ bl sub_8014248
+ b _0801B168
+ .align 2, 0
+_0801B0E0: .4byte gUnknown_80DB9BC
+_0801B0E4: .4byte gUnknown_203B22C
+_0801B0E8:
+ ldr r2, [r4]
+ adds r0, r2, 0
+ adds r0, 0x58
+ movs r3, 0
+ ldrsh r1, [r0, r3]
+ adds r2, 0xC
+ movs r0, 0x2
+ bl DisplayGulpinDialogueSprite
+ b _0801B168
+_0801B0FC:
+ ldr r1, [r4]
+ adds r0, r1, 0
+ adds r0, 0xC
+ ldr r1, [r1, 0x5C]
+ adds r1, 0x2C
+ bl sub_8094060
+ ldr r0, [r4]
+ ldrb r0, [r0, 0x8]
+ bl sub_80915A0
+ lsls r0, 24
+ cmp r0, 0
+ bne _0801B138
+ ldr r3, _0801B150
+ ldr r1, [r3]
+ ldr r2, [r4]
+ ldr r0, [r2, 0x4]
+ lsls r0, 2
+ adds r1, r0
+ ldrb r0, [r2, 0x8]
+ subs r0, 0x7D
+ strb r0, [r1, 0x1]
+ ldr r1, [r3]
+ ldr r0, [r4]
+ ldr r0, [r0, 0x4]
+ lsls r0, 2
+ adds r1, r0
+ movs r0, 0x7C
+ strb r0, [r1, 0x2]
+_0801B138:
+ movs r0, 0x9C
+ lsls r0, 1
+ bl PlaySound
+ ldr r0, _0801B154
+ ldr r3, _0801B158
+ movs r1, 0
+ movs r2, 0
+ bl sub_80141B4
+ b _0801B168
+ .align 2, 0
+_0801B150: .4byte gUnknown_203B460
+_0801B154: .4byte gUnknown_80DB9E4
+_0801B158: .4byte 0x00000121
+_0801B15C:
+ ldr r0, _0801B170
+ ldr r3, _0801B174
+ movs r1, 0
+ movs r2, 0
+ bl sub_80141B4
+_0801B168:
+ add sp, 0x14
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0801B170: .4byte gUnknown_80DBA0C
+_0801B174: .4byte 0x00000121
+ thumb_func_end sub_801B080
+
+ thumb_func_start sub_801B178
+sub_801B178:
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ movs r5, 0
+ ldr r1, _0801B1F4
+ ldr r0, [r1]
+ ldr r0, [r0, 0x4C]
+ cmp r5, r0
+ bge _0801B1D2
+ ldr r0, _0801B1F8
+ mov r8, r0
+ adds r7, r1, 0
+ movs r6, 0
+_0801B192:
+ ldr r4, _0801B1FC
+ adds r4, r6, r4
+ ldr r0, [r7]
+ lsls r1, r5, 1
+ adds r0, 0x50
+ adds r0, r1
+ movs r2, 0
+ ldrsh r1, [r0, r2]
+ movs r0, 0x58
+ muls r0, r1
+ mov r2, r8
+ ldr r1, [r2]
+ adds r1, r0
+ adds r0, r4, 0
+ bl sub_808DA34
+ ldr r2, [r7]
+ lsls r1, r5, 3
+ adds r0, r2, 0
+ adds r0, 0x64
+ adds r0, r1
+ str r4, [r0]
+ adds r0, r2, 0
+ adds r0, 0x68
+ adds r0, r1
+ adds r1, r5, 0x4
+ str r1, [r0]
+ adds r6, 0x50
+ adds r5, 0x1
+ ldr r0, [r2, 0x4C]
+ cmp r5, r0
+ blt _0801B192
+_0801B1D2:
+ ldr r0, _0801B1F4
+ ldr r2, [r0]
+ lsls r3, r5, 3
+ adds r0, r2, 0
+ adds r0, 0x64
+ adds r0, r3
+ movs r1, 0
+ str r1, [r0]
+ adds r2, 0x68
+ adds r2, r3
+ movs r0, 0x1
+ str r0, [r2]
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0801B1F4: .4byte gUnknown_203B22C
+_0801B1F8: .4byte gRecruitedPokemonRef
+_0801B1FC: .4byte gAvailablePokemonNames
+ thumb_func_end sub_801B178
+
+ thumb_func_start sub_801B200
+sub_801B200:
+ push {r4-r6,lr}
+ sub sp, 0x4
+ mov r0, sp
+ bl sub_80144A4
+ cmp r0, 0
+ bne _0801B2A4
+ ldr r5, _0801B228
+ ldr r3, [r5]
+ ldr r0, [sp]
+ str r0, [r3, 0x60]
+ ldr r1, [sp]
+ cmp r1, 0
+ beq _0801B2A4
+ cmp r1, 0x1
+ bne _0801B22C
+ movs r0, 0x4
+ bl sub_801B064
+ b _0801B2A4
+ .align 2, 0
+_0801B228: .4byte gUnknown_203B22C
+_0801B22C:
+ subs r1, 0x4
+ lsls r1, 1
+ adds r0, r3, 0
+ adds r0, 0x50
+ adds r0, r1
+ ldrh r0, [r0]
+ adds r1, r3, 0
+ adds r1, 0x58
+ strh r0, [r1]
+ ldr r2, _0801B26C
+ movs r0, 0
+ ldrsh r1, [r1, r0]
+ movs r0, 0x58
+ muls r0, r1
+ ldr r1, [r2]
+ adds r1, r0
+ str r1, [r3, 0x5C]
+ ldr r0, _0801B270
+ bl sub_808DA34
+ ldr r1, [r5]
+ adds r0, r1, 0
+ adds r0, 0xC
+ ldr r1, [r1, 0x5C]
+ adds r1, 0x2C
+ bl sub_809401C
+ movs r4, 0
+ adds r6, r5, 0
+ movs r5, 0xC
+ b _0801B278
+ .align 2, 0
+_0801B26C: .4byte gRecruitedPokemonRef
+_0801B270: .4byte gUnknown_202E218
+_0801B274:
+ adds r5, 0x8
+ adds r4, 0x1
+_0801B278:
+ cmp r4, 0x7
+ bgt _0801B292
+ ldr r3, [r6]
+ adds r2, r3, r5
+ ldrb r1, [r2]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ bne _0801B274
+ ldrh r1, [r3, 0xA]
+ adds r0, r2, 0
+ bl sub_8092AD4
+_0801B292:
+ cmp r4, 0x3
+ ble _0801B29E
+ movs r0, 0x1
+ bl sub_801B064
+ b _0801B2A4
+_0801B29E:
+ movs r0, 0x2
+ bl sub_801B064
+_0801B2A4:
+ add sp, 0x4
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_801B200
+
+ thumb_func_start sub_801B2AC
+sub_801B2AC:
+ push {lr}
+ bl sub_801E8C0
+ cmp r0, 0x2
+ beq _0801B2CA
+ cmp r0, 0x2
+ bcc _0801B2D4
+ cmp r0, 0x3
+ bne _0801B2D4
+ bl sub_801E93C
+ movs r0, 0x2
+ bl sub_801B064
+ b _0801B2D4
+_0801B2CA:
+ bl sub_801E93C
+ movs r0, 0
+ bl sub_801B064
+_0801B2D4:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_801B2AC
+
+ thumb_func_start sub_801B2D8
+sub_801B2D8:
+ push {lr}
+ sub sp, 0x4
+ mov r0, sp
+ bl sub_80144A4
+ cmp r0, 0
+ bne _0801B2EC
+ movs r0, 0x4
+ bl sub_801B064
+_0801B2EC:
+ add sp, 0x4
+ pop {r0}
+ bx r0
+ thumb_func_end sub_801B2D8
+
+ thumb_func_start sub_801B2F4
+sub_801B2F4:
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ sub sp, 0x10
+ mov r0, sp
+ bl sub_808D580
+ adds r6, r0, 0
+ ldr r2, _0801B36C
+ ldr r1, [r2]
+ movs r0, 0
+ str r0, [r1, 0x4C]
+ movs r5, 0
+ cmp r5, r6
+ bge _0801B35A
+ ldr r0, _0801B370
+ mov r8, r0
+ adds r7, r2, 0
+ mov r4, sp
+_0801B31A:
+ ldr r1, [r4]
+ movs r0, 0x58
+ muls r0, r1
+ mov r2, r8
+ ldr r1, [r2]
+ adds r1, r0
+ ldr r0, [r7]
+ ldrh r0, [r0, 0xA]
+ movs r2, 0x8
+ ldrsh r1, [r1, r2]
+ bl sub_808E190
+ lsls r0, 24
+ cmp r0, 0
+ beq _0801B352
+ ldr r2, [r7]
+ ldr r0, [r2, 0x4C]
+ lsls r0, 1
+ adds r1, r2, 0
+ adds r1, 0x50
+ adds r1, r0
+ ldr r0, [r4]
+ strh r0, [r1]
+ ldr r0, [r2, 0x4C]
+ cmp r0, 0x3
+ bgt _0801B35A
+ adds r0, 0x1
+ str r0, [r2, 0x4C]
+_0801B352:
+ adds r4, 0x4
+ adds r5, 0x1
+ cmp r5, r6
+ blt _0801B31A
+_0801B35A:
+ ldr r0, _0801B36C
+ ldr r0, [r0]
+ ldr r0, [r0, 0x4C]
+ add sp, 0x10
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0801B36C: .4byte gUnknown_203B22C
+_0801B370: .4byte gRecruitedPokemonRef
+ thumb_func_end sub_801B2F4
+
+ thumb_func_start sub_801B374
+sub_801B374:
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r1, _0801B3A8
+ ldr r4, [r1]
+ bl sub_80913CC
+ lsls r0, 16
+ lsrs r6, r0, 16
+ movs r5, 0
+_0801B388:
+ ldrh r0, [r4]
+ lsrs r0, 1
+ movs r1, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _0801B3AC
+ movs r0, 0x8
+ ldrsh r1, [r4, r0]
+ adds r0, r6, 0
+ bl sub_808E190
+ lsls r0, 24
+ cmp r0, 0
+ beq _0801B3AC
+ movs r0, 0
+ b _0801B3BA
+ .align 2, 0
+_0801B3A8: .4byte gRecruitedPokemonRef
+_0801B3AC:
+ adds r5, 0x1
+ adds r4, 0x58
+ movs r0, 0xCE
+ lsls r0, 1
+ cmp r5, r0
+ ble _0801B388
+ movs r0, 0x1
+_0801B3BA:
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_801B374
+
+ thumb_func_start sub_801B3C0
+sub_801B3C0:
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ movs r0, 0x1
+ bl ResetSprites
+ ldr r4, _0801B40C
+ movs r0, 0x94
+ movs r1, 0x8
+ bl MemoryAlloc
+ str r0, [r4]
+ ldr r1, [r5]
+ str r1, [r0, 0x4]
+ adds r0, 0x88
+ bl sub_801317C
+ ldr r0, [r4]
+ movs r1, 0
+ str r1, [r0, 0x24]
+ adds r0, 0x28
+ bl sub_80140B4
+ bl ResetUnusedInputStruct
+ ldr r0, [r4]
+ adds r0, 0x28
+ movs r1, 0x1
+ movs r2, 0x1
+ bl sub_800641C
+ movs r0, 0
+ bl sub_801B46C
+ movs r0, 0x1
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0801B40C: .4byte gUnknown_203B230
+ thumb_func_end sub_801B3C0
+
+ thumb_func_start sub_801B410
+sub_801B410:
+ push {lr}
+ ldr r0, _0801B428
+ ldr r0, [r0]
+ ldr r0, [r0]
+ cmp r0, 0x1
+ beq _0801B43C
+ cmp r0, 0x1
+ bgt _0801B42C
+ cmp r0, 0
+ beq _0801B436
+ b _0801B446
+ .align 2, 0
+_0801B428: .4byte gUnknown_203B230
+_0801B42C:
+ cmp r0, 0x2
+ beq _0801B446
+ cmp r0, 0x3
+ beq _0801B442
+ b _0801B446
+_0801B436:
+ bl sub_801B51C
+ b _0801B44A
+_0801B43C:
+ bl sub_801B590
+ b _0801B44A
+_0801B442:
+ movs r0, 0x3
+ b _0801B44C
+_0801B446:
+ movs r0, 0x2
+ b _0801B44C
+_0801B44A:
+ movs r0, 0
+_0801B44C:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_801B410
+
+ thumb_func_start sub_801B450
+sub_801B450:
+ push {r4,lr}
+ ldr r4, _0801B468
+ ldr r0, [r4]
+ cmp r0, 0
+ beq _0801B462
+ bl MemoryFree
+ movs r0, 0
+ str r0, [r4]
+_0801B462:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0801B468: .4byte gUnknown_203B230
+ thumb_func_end sub_801B450
+
+ thumb_func_start sub_801B46C
+sub_801B46C:
+ push {lr}
+ ldr r1, _0801B47C
+ ldr r1, [r1]
+ str r0, [r1]
+ bl sub_801B480
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0801B47C: .4byte gUnknown_203B230
+ thumb_func_end sub_801B46C
+
+ thumb_func_start sub_801B480
+sub_801B480:
+ push {r4,r5,lr}
+ sub sp, 0x4
+ ldr r5, _0801B4B0
+ ldr r0, [r5]
+ ldr r4, [r0]
+ cmp r4, 0x1
+ beq _0801B4B4
+ cmp r4, 0x1
+ bgt _0801B50C
+ cmp r4, 0
+ bne _0801B50C
+ ldr r0, [r0, 0x24]
+ bl sub_8008C54
+ ldr r2, [r5]
+ adds r0, r2, 0x4
+ ldr r1, [r2, 0x24]
+ adds r2, 0x10
+ bl sub_80913E0
+ ldr r1, [r5]
+ str r0, [r1, 0xC]
+ str r4, [r1, 0x20]
+ b _0801B50C
+ .align 2, 0
+_0801B4B0: .4byte gUnknown_203B230
+_0801B4B4:
+ ldr r0, [r0, 0x24]
+ bl sub_8008C54
+ ldr r0, [r5]
+ ldr r0, [r0, 0x24]
+ bl sub_80073B8
+ ldr r0, [r5]
+ ldr r1, [r0, 0x8]
+ lsls r1, 2
+ adds r0, 0x10
+ adds r0, r1
+ ldr r1, [r0]
+ ldr r0, _0801B514
+ ldr r1, [r1]
+ bl strcpy
+ ldr r2, _0801B518
+ ldr r0, [r5]
+ ldr r3, [r0, 0x24]
+ movs r4, 0
+ str r4, [sp]
+ movs r0, 0x10
+ movs r1, 0
+ bl sub_8014FF0
+ ldr r3, [r5]
+ ldr r1, [r3, 0x8]
+ lsls r1, 2
+ adds r0, r3, 0
+ adds r0, 0x10
+ adds r0, r1
+ ldr r0, [r0]
+ ldr r2, [r0, 0x4]
+ ldr r3, [r3, 0x24]
+ str r4, [sp]
+ movs r0, 0x4
+ movs r1, 0x10
+ bl sub_8014FF0
+ ldr r0, [r5]
+ ldr r0, [r0, 0x24]
+ bl sub_80073E0
+_0801B50C:
+ add sp, 0x4
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0801B514: .4byte gAvailablePokemonNames
+_0801B518: .4byte gUnknown_80DBA4C
+ thumb_func_end sub_801B480
+
+ thumb_func_start sub_801B51C
+sub_801B51C:
+ push {r4,lr}
+ ldr r0, _0801B558
+ ldr r2, [r0]
+ ldr r1, [r2, 0xC]
+ adds r4, r0, 0
+ cmp r1, 0
+ beq _0801B540
+ ldr r0, [r2, 0x20]
+ movs r1, 0x8
+ ands r0, r1
+ cmp r0, 0
+ beq _0801B538
+ bl sub_8013F84
+_0801B538:
+ ldr r1, [r4]
+ ldr r0, [r1, 0x20]
+ adds r0, 0x1
+ str r0, [r1, 0x20]
+_0801B540:
+ ldr r1, [r4]
+ adds r0, r1, 0
+ adds r0, 0x88
+ ldr r1, [r1, 0x24]
+ bl sub_8012A64
+ cmp r0, 0x1
+ beq _0801B55C
+ cmp r0, 0x2
+ beq _0801B57E
+ b _0801B58A
+ .align 2, 0
+_0801B558: .4byte gUnknown_203B230
+_0801B55C:
+ movs r0, 0
+ bl PlayMenuSoundEffect
+ ldr r1, [r4]
+ ldr r0, [r1, 0xC]
+ cmp r0, 0
+ beq _0801B576
+ movs r0, 0
+ str r0, [r1, 0x8]
+ movs r0, 0x1
+ bl sub_801B46C
+ b _0801B58A
+_0801B576:
+ movs r0, 0x3
+ bl sub_801B46C
+ b _0801B58A
+_0801B57E:
+ movs r0, 0x1
+ bl PlayMenuSoundEffect
+ movs r0, 0x2
+ bl sub_801B46C
+_0801B58A:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_801B51C
+
+ thumb_func_start sub_801B590
+sub_801B590:
+ push {r4,lr}
+ ldr r0, _0801B5D0
+ ldr r3, [r0]
+ ldr r1, [r3, 0xC]
+ subs r1, 0x1
+ ldr r2, [r3, 0x8]
+ adds r4, r0, 0
+ cmp r2, r1
+ bge _0801B5B8
+ ldr r0, [r3, 0x20]
+ movs r1, 0x8
+ ands r0, r1
+ cmp r0, 0
+ beq _0801B5B0
+ bl sub_8013F84
+_0801B5B0:
+ ldr r1, [r4]
+ ldr r0, [r1, 0x20]
+ adds r0, 0x1
+ str r0, [r1, 0x20]
+_0801B5B8:
+ ldr r1, [r4]
+ adds r0, r1, 0
+ adds r0, 0x88
+ ldr r1, [r1, 0x24]
+ bl sub_8012A64
+ cmp r0, 0x1
+ beq _0801B5D4
+ cmp r0, 0x2
+ beq _0801B5F8
+ b _0801B604
+ .align 2, 0
+_0801B5D0: .4byte gUnknown_203B230
+_0801B5D4:
+ movs r0, 0
+ bl PlayMenuSoundEffect
+ ldr r0, [r4]
+ ldr r1, [r0, 0x8]
+ adds r1, 0x1
+ str r1, [r0, 0x8]
+ ldr r0, [r0, 0xC]
+ cmp r1, r0
+ bge _0801B5F0
+ movs r0, 0x1
+ bl sub_801B46C
+ b _0801B604
+_0801B5F0:
+ movs r0, 0
+ bl sub_801B46C
+ b _0801B604
+_0801B5F8:
+ movs r0, 0x1
+ bl PlayMenuSoundEffect
+ movs r0, 0x2
+ bl sub_801B46C
+_0801B604:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_801B590
+
+ thumb_func_start sub_801B60C
+sub_801B60C:
+ push {r4-r7,lr}
+ adds r5, r0, 0
+ adds r4, r1, 0
+ lsls r4, 24
+ lsrs r4, 24
+ lsls r2, 24
+ lsrs r7, r2, 24
+ ldr r6, _0801B650
+ movs r0, 0xAA
+ lsls r0, 1
+ movs r1, 0x8
+ bl MemoryAlloc
+ str r0, [r6]
+ adds r2, r0, 0
+ adds r2, 0xC8
+ movs r1, 0
+ str r1, [r2]
+ str r5, [r0]
+ strb r4, [r0, 0x12]
+ ldr r0, [r6]
+ ldrb r0, [r0, 0x12]
+ bl sub_8090A60
+ lsls r0, 24
+ lsrs r1, r0, 24
+ cmp r1, 0
+ beq _0801B654
+ ldr r0, [r6]
+ strb r7, [r0, 0x11]
+ ldr r0, [r6]
+ strb r7, [r0, 0xC]
+ b _0801B65E
+ .align 2, 0
+_0801B650: .4byte gUnknown_203B234
+_0801B654:
+ ldr r0, [r6]
+ strb r1, [r0, 0x11]
+ ldr r1, [r6]
+ movs r0, 0x1
+ strb r0, [r1, 0xC]
+_0801B65E:
+ ldr r5, _0801B6A0
+ ldr r0, [r5]
+ movs r1, 0
+ movs r2, 0x1
+ strb r2, [r0, 0x10]
+ ldr r0, [r5]
+ str r1, [r0, 0x14]
+ strb r1, [r0, 0x18]
+ ldr r0, [r5]
+ strb r2, [r0, 0x1C]
+ ldr r4, _0801B6A4
+ bl sub_808D33C
+ adds r1, r0, 0
+ adds r0, r4, 0
+ movs r2, 0x6
+ bl sub_808D9AC
+ ldr r0, _0801B6A8
+ ldr r2, [r5]
+ adds r1, r2, 0
+ adds r1, 0x10
+ adds r2, 0x14
+ bl sub_8090E14
+ movs r0, 0
+ bl sub_801B748
+ movs r0, 0x1
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0801B6A0: .4byte gUnknown_203B234
+_0801B6A4: .4byte gAvailablePokemonNames
+_0801B6A8: .4byte gUnknown_202DE58
+ thumb_func_end sub_801B60C
+
+ thumb_func_start sub_801B6AC
+sub_801B6AC:
+ push {lr}
+ ldr r0, _0801B6C4
+ ldr r0, [r0]
+ ldr r0, [r0, 0x4]
+ subs r0, 0x6
+ cmp r0, 0xA
+ bhi _0801B720
+ lsls r0, 2
+ ldr r1, _0801B6C8
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_0801B6C4: .4byte gUnknown_203B234
+_0801B6C8: .4byte _0801B6CC
+ .align 2, 0
+_0801B6CC:
+ .4byte _0801B6FC
+ .4byte _0801B702
+ .4byte _0801B708
+ .4byte _0801B708
+ .4byte _0801B70E
+ .4byte _0801B714
+ .4byte _0801B71A
+ .4byte _0801B720
+ .4byte _0801B720
+ .4byte _0801B720
+ .4byte _0801B6F8
+_0801B6F8:
+ movs r0, 0x3
+ b _0801B726
+_0801B6FC:
+ bl sub_801BC64
+ b _0801B724
+_0801B702:
+ bl sub_801BC94
+ b _0801B724
+_0801B708:
+ bl sub_801BCCC
+ b _0801B724
+_0801B70E:
+ bl sub_801BD80
+ b _0801B724
+_0801B714:
+ bl sub_801BEAC
+ b _0801B724
+_0801B71A:
+ bl sub_801BE30
+ b _0801B724
+_0801B720:
+ bl sub_801BEC8
+_0801B724:
+ movs r0, 0
+_0801B726:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_801B6AC
+
+ thumb_func_start sub_801B72C
+sub_801B72C:
+ push {r4,lr}
+ ldr r4, _0801B744
+ ldr r0, [r4]
+ cmp r0, 0
+ beq _0801B73E
+ bl MemoryFree
+ movs r0, 0
+ str r0, [r4]
+_0801B73E:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0801B744: .4byte gUnknown_203B234
+ thumb_func_end sub_801B72C
+
+ thumb_func_start sub_801B748
+sub_801B748:
+ push {lr}
+ ldr r1, _0801B75C
+ ldr r1, [r1]
+ str r0, [r1, 0x4]
+ bl sub_801B760
+ bl sub_801B874
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0801B75C: .4byte gUnknown_203B234
+ thumb_func_end sub_801B748
+
+ thumb_func_start sub_801B760
+sub_801B760:
+ push {r4-r7,lr}
+ ldr r0, _0801B77C
+ ldr r1, [r0]
+ ldr r1, [r1, 0x4]
+ subs r1, 0x1
+ adds r4, r0, 0
+ cmp r1, 0xE
+ bls _0801B772
+ b _0801B86A
+_0801B772:
+ lsls r0, r1, 2
+ ldr r1, _0801B780
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_0801B77C: .4byte gUnknown_203B234
+_0801B780: .4byte _0801B784
+ .align 2, 0
+_0801B784:
+ .4byte _0801B7C0
+ .4byte _0801B86A
+ .4byte _0801B86A
+ .4byte _0801B86A
+ .4byte _0801B86A
+ .4byte _0801B7C0
+ .4byte _0801B7C0
+ .4byte _0801B7C0
+ .4byte _0801B7C0
+ .4byte _0801B800
+ .4byte _0801B7C0
+ .4byte _0801B840
+ .4byte _0801B7C0
+ .4byte _0801B7C0
+ .4byte _0801B7C0
+_0801B7C0:
+ ldr r4, _0801B7F8
+ ldr r0, [r4]
+ adds r0, 0xF4
+ bl sub_8006518
+ mov r12, r4
+ ldr r4, _0801B7FC
+ movs r3, 0
+ movs r2, 0x3
+_0801B7D2:
+ mov r0, r12
+ ldr r1, [r0]
+ adds r1, r3
+ adds r1, 0xF4
+ 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 _0801B7D2
+ bl ResetUnusedInputStruct
+ ldr r0, _0801B7F8
+ ldr r0, [r0]
+ b _0801B82E
+ .align 2, 0
+_0801B7F8: .4byte gUnknown_203B234
+_0801B7FC: .4byte gUnknown_80DBA58
+_0801B800:
+ ldr r0, [r4]
+ adds r0, 0xF4
+ bl sub_8006518
+ bl sub_801BB5C
+ ldr r2, [r4]
+ movs r0, 0x92
+ lsls r0, 1
+ adds r2, r0
+ ldr r1, _0801B83C
+ 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, 0xCC
+ bl sub_8012CAC
+ bl ResetUnusedInputStruct
+ ldr r0, [r4]
+_0801B82E:
+ adds r0, 0xF4
+ movs r1, 0x1
+ movs r2, 0x1
+ bl sub_800641C
+ b _0801B86A
+ .align 2, 0
+_0801B83C: .4byte gUnknown_80DBA70
+_0801B840:
+ ldr r0, [r4]
+ adds r0, 0xF4
+ bl sub_8006518
+ ldr r1, [r4]
+ movs r6, 0x86
+ lsls r6, 1
+ adds r1, r6
+ ldr r0, _0801B870
+ ldm r0!, {r2,r3,r7}
+ stm r1!, {r2,r3,r7}
+ ldm r0!, {r5-r7}
+ stm r1!, {r5-r7}
+ bl ResetUnusedInputStruct
+ ldr r0, [r4]
+ adds r0, 0xF4
+ movs r1, 0x1
+ movs r2, 0x1
+ bl sub_800641C
+_0801B86A:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0801B870: .4byte gUnknown_80DBA88
+ thumb_func_end sub_801B760
+
+ thumb_func_start sub_801B874
+sub_801B874:
+ push {r4,lr}
+ sub sp, 0x14
+ ldr r1, _0801B890
+ ldr r0, [r1]
+ ldr r0, [r0, 0x4]
+ adds r4, r1, 0
+ cmp r0, 0x10
+ bls _0801B886
+ b _0801BB0E
+_0801B886:
+ lsls r0, 2
+ ldr r1, _0801B894
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_0801B890: .4byte gUnknown_203B234
+_0801B894: .4byte _0801B898
+ .align 2, 0
+_0801B898:
+ .4byte _0801B8DC
+ .4byte _0801B9BC
+ .4byte _0801B9D8
+ .4byte _0801B9E0
+ .4byte _0801B9F0
+ .4byte _0801B9F8
+ .4byte _0801BA08
+ .4byte _0801BA34
+ .4byte _0801BA60
+ .4byte _0801BA6E
+ .4byte _0801BA76
+ .4byte _0801BA94
+ .4byte _0801BA9E
+ .4byte _0801BAD0
+ .4byte _0801BAE0
+ .4byte _0801BAFC
+ .4byte _0801BB0E
+_0801B8DC:
+ ldr r1, [r4]
+ ldrb r0, [r1, 0x12]
+ cmp r0, 0xEA
+ bne _0801B8FE
+ movs r0, 0x10
+ str r0, [r1, 0x8]
+ movs r0, 0
+ movs r1, 0x47
+ movs r2, 0x1
+ bl sub_8001784
+ cmp r0, 0
+ bne _0801B914
+ movs r0, 0
+ movs r1, 0x47
+ movs r2, 0x1
+ b _0801B92A
+_0801B8FE:
+ cmp r0, 0xEB
+ bne _0801B938
+ movs r0, 0x10
+ str r0, [r1, 0x8]
+ movs r0, 0
+ movs r1, 0x47
+ movs r2, 0
+ bl sub_8001784
+ cmp r0, 0
+ beq _0801B924
+_0801B914:
+ movs r0, 0xFA
+ lsls r0, 2
+ bl sub_80913A0
+ movs r0, 0x4
+ bl sub_801B748
+ b _0801BB0E
+_0801B924:
+ movs r0, 0
+ movs r1, 0x47
+ movs r2, 0
+_0801B92A:
+ movs r3, 0x1
+ bl sub_800199C
+ movs r0, 0x3
+ bl sub_801B748
+ b _0801BB0E
+_0801B938:
+ bl sub_8090A34
+ cmp r0, 0x13
+ ble _0801B986
+ ldr r0, [r4]
+ ldrb r0, [r0, 0x12]
+ bl sub_8091524
+ lsls r0, 24
+ cmp r0, 0
+ beq _0801B968
+ ldr r0, _0801B970
+ ldr r1, [r0]
+ ldr r2, [r4]
+ ldrb r0, [r2, 0x12]
+ lsls r0, 1
+ adds r1, 0x50
+ adds r3, r1, r0
+ ldrh r1, [r3]
+ ldrb r0, [r2, 0xC]
+ adds r1, r0
+ ldr r0, _0801B974
+ cmp r1, r0
+ ble _0801B978
+_0801B968:
+ ldr r1, [r4]
+ movs r0, 0x6
+ b _0801B99C
+ .align 2, 0
+_0801B970: .4byte gUnknown_203B460
+_0801B974: .4byte 0x000003e7
+_0801B978:
+ strh r1, [r3]
+ movs r0, 0xCB
+ bl PlaySound
+ ldr r1, [r4]
+ movs r0, 0x5
+ b _0801B99C
+_0801B986:
+ ldr r0, [r4]
+ adds r0, 0x10
+ bl sub_8091290
+ bl sub_80910B4
+ movs r0, 0xCB
+ bl PlaySound
+ ldr r1, [r4]
+ movs r0, 0x10
+_0801B99C:
+ str r0, [r1, 0x8]
+ ldr r0, _0801B9B0
+ ldr r0, [r0]
+ ldr r0, [r0]
+ cmp r0, 0x1
+ bne _0801B9B4
+ movs r0, 0x2
+ bl sub_801B748
+ b _0801BB0E
+ .align 2, 0
+_0801B9B0: .4byte gUnknown_203B234
+_0801B9B4:
+ movs r0, 0x1
+ bl sub_801B748
+ b _0801BB0E
+_0801B9BC:
+ movs r0, 0
+ bl sub_808D544
+ cmp r0, 0x1
+ bgt _0801B9D0
+ ldr r0, _0801B9CC
+ b _0801BAE8
+ .align 2, 0
+_0801B9CC: .4byte gUnknown_80DBAA0
+_0801B9D0:
+ ldr r0, _0801B9D4
+ b _0801BAE8
+ .align 2, 0
+_0801B9D4: .4byte gUnknown_80DBAD0
+_0801B9D8:
+ ldr r0, _0801B9DC
+ b _0801BAE8
+ .align 2, 0
+_0801B9DC: .4byte gUnknown_80DBB08
+_0801B9E0:
+ movs r0, 0xD4
+ bl PlaySound
+ ldr r0, _0801B9EC
+ b _0801BAE8
+ .align 2, 0
+_0801B9EC: .4byte gUnknown_80DBB38
+_0801B9F0:
+ ldr r0, _0801B9F4
+ b _0801BAE8
+ .align 2, 0
+_0801B9F4: .4byte gUnknown_80DBB9C
+_0801B9F8:
+ ldr r1, [r4]
+ movs r0, 0x10
+ str r0, [r1, 0x8]
+ ldr r0, _0801BA04
+ b _0801BAE8
+ .align 2, 0
+_0801BA04: .4byte gUnknown_80DBC28
+_0801BA08:
+ bl sub_801BB20
+ ldr r0, _0801BA2C
+ ldr r1, _0801BA30
+ ldr r3, [r1]
+ adds r3, 0xCC
+ movs r2, 0
+ str r2, [sp]
+ movs r1, 0x4
+ str r1, [sp, 0x4]
+ str r2, [sp, 0x8]
+ str r2, [sp, 0xC]
+ str r2, [sp, 0x10]
+ movs r1, 0
+ movs r2, 0x4
+ bl sub_8014248
+ b _0801BB0E
+ .align 2, 0
+_0801BA2C: .4byte gUnknown_80DBC60
+_0801BA30: .4byte gUnknown_203B234
+_0801BA34:
+ bl sub_801BC24
+ ldr r0, _0801BA58
+ ldr r1, _0801BA5C
+ ldr r3, [r1]
+ adds r3, 0xCC
+ movs r2, 0
+ str r2, [sp]
+ movs r1, 0x4
+ str r1, [sp, 0x4]
+ str r2, [sp, 0x8]
+ str r2, [sp, 0xC]
+ str r2, [sp, 0x10]
+ movs r1, 0
+ movs r2, 0x3
+ bl sub_8014248
+ b _0801BB0E
+ .align 2, 0
+_0801BA58: .4byte gUnknown_80DBC98
+_0801BA5C: .4byte gUnknown_203B234
+_0801BA60:
+ movs r0, 0x1
+ movs r1, 0x3
+ movs r2, 0
+ movs r3, 0xA
+ bl sub_801A5D8
+ b _0801BB0E
+_0801BA6E:
+ movs r0, 0x1
+ bl sub_801A8D0
+ b _0801BB0E
+_0801BA76:
+ bl sub_801A9E0
+ ldr r0, _0801BA90
+ ldr r2, [r0]
+ adds r0, r2, 0
+ adds r0, 0x28
+ adds r1, r2, 0
+ adds r1, 0xCC
+ adds r2, 0xC8
+ ldr r2, [r2]
+ str r2, [sp]
+ movs r2, 0x2
+ b _0801BAC0
+ .align 2, 0
+_0801BA90: .4byte gUnknown_203B234
+_0801BA94:
+ ldr r0, [r4]
+ adds r0, 0x20
+ bl sub_801B3C0
+ b _0801BB0E
+_0801BA9E:
+ bl sub_801A9E0
+ ldr r4, _0801BACC
+ ldr r0, [r4]
+ adds r0, 0x28
+ movs r1, 0
+ bl sub_8012EA4
+ bl sub_801BC24
+ ldr r1, [r4]
+ adds r0, r1, 0
+ adds r0, 0x78
+ adds r1, 0xCC
+ movs r2, 0x3
+ str r2, [sp]
+ movs r2, 0x1
+_0801BAC0:
+ str r2, [sp, 0x4]
+ movs r2, 0
+ movs r3, 0
+ bl sub_8012D60
+ b _0801BB0E
+ .align 2, 0
+_0801BACC: .4byte gUnknown_203B234
+_0801BAD0:
+ ldr r1, [r4]
+ movs r0, 0x10
+ str r0, [r1, 0x8]
+ ldr r0, _0801BADC
+ b _0801BAE8
+ .align 2, 0
+_0801BADC: .4byte gUnknown_80DBCC4
+_0801BAE0:
+ ldr r1, [r4]
+ movs r0, 0x10
+ str r0, [r1, 0x8]
+ ldr r0, _0801BAF4
+_0801BAE8:
+ ldr r3, _0801BAF8
+ movs r1, 0
+ movs r2, 0
+ bl sub_80141B4
+ b _0801BB0E
+ .align 2, 0
+_0801BAF4: .4byte gUnknown_80DBCE8
+_0801BAF8: .4byte 0x00000101
+_0801BAFC:
+ ldr r1, [r4]
+ movs r0, 0x10
+ str r0, [r1, 0x8]
+ ldr r0, _0801BB18
+ ldr r3, _0801BB1C
+ movs r1, 0
+ movs r2, 0
+ bl sub_80141B4
+_0801BB0E:
+ add sp, 0x14
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0801BB18: .4byte gUnknown_80DBD24
+_0801BB1C: .4byte 0x00000101
+ thumb_func_end sub_801B874
+
+ thumb_func_start sub_801BB20
+sub_801BB20:
+ ldr r0, _0801BB50
+ ldr r3, [r0]
+ movs r2, 0
+ adds r1, r3, 0
+ adds r1, 0xCC
+ ldr r0, _0801BB54
+ str r0, [r1]
+ adds r1, 0x4
+ movs r0, 0x4
+ str r0, [r1]
+ adds r1, 0x4
+ ldr r0, _0801BB58
+ str r0, [r1]
+ adds r1, 0x4
+ movs r0, 0x5
+ str r0, [r1]
+ adds r0, r3, 0
+ adds r0, 0xDC
+ str r2, [r0]
+ adds r1, 0x8
+ movs r0, 0x1
+ negs r0, r0
+ str r0, [r1]
+ bx lr
+ .align 2, 0
+_0801BB50: .4byte gUnknown_203B234
+_0801BB54: .4byte gKangaskhanTrashToolboxItem
+_0801BB58: .4byte gKangaskhanTrashReceivedItem
+ thumb_func_end sub_801BB20
+
+ thumb_func_start sub_801BB5C
+sub_801BB5C:
+ push {r4-r7,lr}
+ ldr r4, _0801BBEC
+ ldr r2, [r4]
+ adds r1, r2, 0
+ adds r1, 0xCC
+ ldr r0, _0801BBF0
+ str r0, [r1]
+ adds r1, 0x4
+ movs r0, 0x6
+ str r0, [r1]
+ ldr r0, [r2, 0x24]
+ bl sub_801ADA0
+ lsls r0, 24
+ cmp r0, 0
+ bne _0801BB86
+ ldr r0, [r4]
+ adds r0, 0xD0
+ movs r1, 0x1
+ negs r1, r1
+ str r1, [r0]
+_0801BB86:
+ ldr r0, [r4]
+ mov r12, r0
+ movs r3, 0x1
+ movs r2, 0x8
+ mov r1, r12
+ adds r1, 0xD4
+ ldr r0, _0801BBF4
+ str r0, [r1]
+ adds r1, 0x4
+ movs r0, 0x7
+ str r0, [r1]
+ adds r1, 0x4
+ ldr r0, _0801BBF8
+ ldr r0, [r0]
+ str r0, [r1]
+ mov r0, r12
+ adds r0, 0xE0
+ str r2, [r0]
+ movs r5, 0x3
+ adds r1, 0x8
+ movs r0, 0
+ str r0, [r1]
+ mov r0, r12
+ adds r0, 0xE8
+ str r3, [r0]
+ movs r3, 0
+ adds r6, r4, 0
+ movs r7, 0x1
+ negs r7, r7
+ mov r4, r12
+ adds r4, 0xC8
+ subs r1, 0x14
+_0801BBC6:
+ ldr r2, [r1]
+ cmp r2, r7
+ beq _0801BBD2
+ ldr r0, [r4]
+ cmp r2, r0
+ beq _0801BC1C
+_0801BBD2:
+ adds r1, 0x8
+ adds r3, 0x1
+ cmp r3, r5
+ blt _0801BBC6
+ movs r3, 0
+ cmp r3, r5
+ bge _0801BC1C
+ ldr r2, [r6]
+ adds r0, r2, 0
+ adds r0, 0xD0
+ ldr r1, [r0]
+ b _0801BC0E
+ .align 2, 0
+_0801BBEC: .4byte gUnknown_203B234
+_0801BBF0: .4byte gKangaskhanStorage
+_0801BBF4: .4byte gKangaskhanTrash
+_0801BBF8: .4byte gUnknown_80D4970
+_0801BBFC:
+ adds r3, 0x1
+ cmp r3, r5
+ bge _0801BC1C
+ ldr r2, [r6]
+ lsls r0, r3, 3
+ adds r1, r2, 0
+ adds r1, 0xD0
+ adds r1, r0
+ ldr r1, [r1]
+_0801BC0E:
+ movs r0, 0x1
+ negs r0, r0
+ cmp r1, r0
+ beq _0801BBFC
+ adds r0, r2, 0
+ adds r0, 0xC8
+ str r1, [r0]
+_0801BC1C:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_801BB5C
+
+ thumb_func_start sub_801BC24
+sub_801BC24:
+ ldr r0, _0801BC58
+ ldr r0, [r0]
+ mov r12, r0
+ movs r3, 0
+ mov r1, r12
+ adds r1, 0xCC
+ ldr r0, _0801BC5C
+ ldr r0, [r0]
+ str r0, [r1]
+ adds r1, 0x4
+ movs r0, 0x2
+ str r0, [r1]
+ movs r2, 0x1
+ adds r1, 0x4
+ ldr r0, _0801BC60
+ ldr r0, [r0]
+ str r0, [r1]
+ adds r1, 0x4
+ movs r0, 0x3
+ str r0, [r1]
+ mov r0, r12
+ adds r0, 0xDC
+ str r3, [r0]
+ adds r0, 0x4
+ str r2, [r0]
+ bx lr
+ .align 2, 0
+_0801BC58: .4byte gUnknown_203B234
+_0801BC5C: .4byte gUnknown_80D4920
+_0801BC60: .4byte gUnknown_80D4928
+ thumb_func_end sub_801BC24
+
+ thumb_func_start sub_801BC64
+sub_801BC64:
+ push {lr}
+ sub sp, 0x4
+ mov r0, sp
+ bl sub_80144A4
+ cmp r0, 0
+ bne _0801BC8C
+ ldr r0, [sp]
+ cmp r0, 0x4
+ beq _0801BC7E
+ cmp r0, 0x5
+ beq _0801BC86
+ b _0801BC8C
+_0801BC7E:
+ movs r0, 0x8
+ bl sub_801B748
+ b _0801BC8C
+_0801BC86:
+ movs r0, 0x7
+ bl sub_801B748
+_0801BC8C:
+ add sp, 0x4
+ pop {r0}
+ bx r0
+ thumb_func_end sub_801BC64
+
+ thumb_func_start sub_801BC94
+sub_801BC94:
+ push {lr}
+ sub sp, 0x4
+ mov r0, sp
+ bl sub_80144A4
+ cmp r0, 0
+ bne _0801BCC6
+ ldr r0, [sp]
+ cmp r0, 0x2
+ beq _0801BCB8
+ cmp r0, 0x2
+ bgt _0801BCB2
+ cmp r0, 0x1
+ beq _0801BCC0
+ b _0801BCC6
+_0801BCB2:
+ cmp r0, 0x3
+ beq _0801BCC0
+ b _0801BCC6
+_0801BCB8:
+ movs r0, 0xD
+ bl sub_801B748
+ b _0801BCC6
+_0801BCC0:
+ movs r0, 0x6
+ bl sub_801B748
+_0801BCC6:
+ add sp, 0x4
+ pop {r0}
+ bx r0
+ thumb_func_end sub_801BC94
+
+ thumb_func_start sub_801BCCC
+sub_801BCCC:
+ push {lr}
+ movs r0, 0x1
+ bl sub_801A6E8
+ cmp r0, 0x4
+ bhi _0801BD7A
+ lsls r0, 2
+ ldr r1, _0801BCE4
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_0801BCE4: .4byte _0801BCE8
+ .align 2, 0
+_0801BCE8:
+ .4byte _0801BD7A
+ .4byte _0801BD7A
+ .4byte _0801BD70
+ .4byte _0801BCFC
+ .4byte _0801BD34
+_0801BCFC:
+ bl sub_801A8AC
+ ldr r1, _0801BD28
+ ldr r2, [r1]
+ str r0, [r2, 0x24]
+ ldr r1, _0801BD2C
+ ldr r1, [r1]
+ lsls r0, 2
+ adds r1, r0
+ ldr r0, [r1]
+ str r0, [r2, 0x20]
+ ldr r0, _0801BD30
+ adds r1, r2, 0
+ adds r1, 0x20
+ adds r2, 0x14
+ bl sub_8090E14
+ movs r0, 0xA
+ bl sub_801B748
+ b _0801BD7A
+ .align 2, 0
+_0801BD28: .4byte gUnknown_203B234
+_0801BD2C: .4byte gUnknown_203B460
+_0801BD30: .4byte gUnknown_202DEA8
+_0801BD34:
+ bl sub_801A8AC
+ ldr r1, _0801BD64
+ ldr r2, [r1]
+ str r0, [r2, 0x24]
+ ldr r1, _0801BD68
+ ldr r1, [r1]
+ lsls r0, 2
+ adds r1, r0
+ ldr r0, [r1]
+ str r0, [r2, 0x20]
+ ldr r0, _0801BD6C
+ adds r1, r2, 0
+ adds r1, 0x20
+ adds r2, 0x14
+ bl sub_8090E14
+ movs r0, 0
+ bl sub_8099690
+ movs r0, 0xB
+ bl sub_801B748
+ b _0801BD7A
+ .align 2, 0
+_0801BD64: .4byte gUnknown_203B234
+_0801BD68: .4byte gUnknown_203B460
+_0801BD6C: .4byte gUnknown_202DEA8
+_0801BD70:
+ bl sub_801A928
+ movs r0, 0x6
+ bl sub_801B748
+_0801BD7A:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_801BCCC
+
+ thumb_func_start sub_801BD80
+sub_801BD80:
+ push {r4,lr}
+ sub sp, 0x4
+ movs r0, 0
+ str r0, [sp]
+ bl sub_801A6E8
+ ldr r4, _0801BDC4
+ ldr r0, [r4]
+ adds r0, 0x28
+ bl sub_8012FD8
+ lsls r0, 24
+ cmp r0, 0
+ bne _0801BDB2
+ ldr r0, [r4]
+ adds r0, 0x28
+ mov r1, sp
+ bl sub_8013114
+ ldr r1, [sp]
+ cmp r1, 0x1
+ beq _0801BDB2
+ ldr r0, [r4]
+ adds r0, 0xC8
+ str r1, [r0]
+_0801BDB2:
+ ldr r0, [sp]
+ cmp r0, 0x6
+ beq _0801BDD2
+ cmp r0, 0x6
+ bgt _0801BDC8
+ cmp r0, 0x1
+ beq _0801BE22
+ b _0801BE28
+ .align 2, 0
+_0801BDC4: .4byte gUnknown_203B234
+_0801BDC8:
+ cmp r0, 0x7
+ beq _0801BE0C
+ cmp r0, 0x8
+ beq _0801BE14
+ b _0801BE28
+_0801BDD2:
+ ldr r4, _0801BE08
+ ldr r0, [r4]
+ adds r0, 0x20
+ bl sub_80917B8
+ ldr r0, [r4]
+ ldr r0, [r0, 0x24]
+ bl sub_80911F8
+ ldr r0, [r4]
+ adds r0, 0x10
+ bl sub_8091290
+ bl sub_80910B4
+ movs r0, 0xCB
+ bl PlaySound
+ movs r0, 0
+ bl sub_8099690
+ bl sub_801A928
+ movs r0, 0xE
+ bl sub_801B748
+ b _0801BE28
+ .align 2, 0
+_0801BE08: .4byte gUnknown_203B234
+_0801BE0C:
+ movs r0, 0xC
+ bl sub_801B748
+ b _0801BE28
+_0801BE14:
+ movs r0, 0
+ bl sub_8099690
+ movs r0, 0xB
+ bl sub_801B748
+ b _0801BE28
+_0801BE22:
+ movs r0, 0x9
+ bl sub_801B748
+_0801BE28:
+ add sp, 0x4
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_801BD80
+
+ thumb_func_start sub_801BE30
+sub_801BE30:
+ push {r4,lr}
+ sub sp, 0x4
+ movs r0, 0
+ str r0, [sp]
+ bl sub_801A6E8
+ ldr r4, _0801BE70
+ ldr r0, [r4]
+ adds r0, 0x28
+ bl sub_8012FD8
+ ldr r0, [r4]
+ adds r0, 0x78
+ bl sub_8012FD8
+ lsls r0, 24
+ cmp r0, 0
+ bne _0801BE5E
+ ldr r0, [r4]
+ adds r0, 0x78
+ mov r1, sp
+ bl sub_8013114
+_0801BE5E:
+ ldr r0, [sp]
+ cmp r0, 0x2
+ beq _0801BE80
+ cmp r0, 0x2
+ bgt _0801BE74
+ cmp r0, 0x1
+ beq _0801BE78
+ b _0801BEA4
+ .align 2, 0
+_0801BE70: .4byte gUnknown_203B234
+_0801BE74:
+ cmp r0, 0x3
+ bne _0801BEA4
+_0801BE78:
+ movs r0, 0x9
+ bl sub_801B748
+ b _0801BEA4
+_0801BE80:
+ ldr r0, [r4]
+ ldr r0, [r0, 0x24]
+ bl sub_80911F8
+ ldr r0, [r4]
+ adds r0, 0x10
+ bl sub_8091290
+ bl sub_80910B4
+ movs r0, 0xCB
+ bl PlaySound
+ bl sub_801A928
+ movs r0, 0xF
+ bl sub_801B748
+_0801BEA4:
+ add sp, 0x4
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_801BE30
+
+ thumb_func_start sub_801BEAC
+sub_801BEAC:
+ push {lr}
+ bl sub_801B410
+ cmp r0, 0x1
+ bls _0801BEC4
+ cmp r0, 0x3
+ bhi _0801BEC4
+ bl sub_801B450
+ movs r0, 0x9
+ bl sub_801B748
+_0801BEC4:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_801BEAC
+
+ thumb_func_start sub_801BEC8
+sub_801BEC8:
+ push {lr}
+ sub sp, 0x4
+ mov r0, sp
+ bl sub_80144A4
+ cmp r0, 0
+ bne _0801BEE0
+ ldr r0, _0801BEE8
+ ldr r0, [r0]
+ ldr r0, [r0, 0x8]
+ bl sub_801B748
+_0801BEE0:
+ add sp, 0x4
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0801BEE8: .4byte gUnknown_203B234
+ thumb_func_end sub_801BEC8
+
+ thumb_func_start sub_801BEEC
+sub_801BEEC:
+ push {r4-r6,lr}
+ lsls r0, 16
+ asrs r5, r0, 16
+ adds r0, r5, 0
+ bl sub_801C5F0
+ lsls r0, 24
+ lsrs r6, r0, 24
+ cmp r6, 0
+ bne _0801BF40
+ ldr r4, _0801BF38
+ movs r0, 0x92
+ lsls r0, 1
+ movs r1, 0x8
+ bl MemoryAlloc
+ str r0, [r4]
+ str r6, [r0, 0x30]
+ strh r5, [r0, 0x4]
+ ldr r3, _0801BF3C
+ movs r1, 0x58
+ adds r2, r5, 0
+ muls r2, r1
+ ldr r1, [r3]
+ adds r1, r2
+ str r1, [r0, 0x8]
+ adds r0, 0xC
+ movs r2, 0x14
+ ldrsh r1, [r1, r2]
+ bl sub_808EBA8
+ ldr r1, [r4]
+ str r0, [r1, 0x2C]
+ movs r0, 0
+ bl sub_801BFB4
+ movs r0, 0x1
+ b _0801BF42
+ .align 2, 0
+_0801BF38: .4byte gUnknown_203B238
+_0801BF3C: .4byte gRecruitedPokemonRef
+_0801BF40:
+ movs r0, 0
+_0801BF42:
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_801BEEC
+
+ thumb_func_start sub_801BF48
+sub_801BF48:
+ push {lr}
+ ldr r0, _0801BF60
+ ldr r0, [r0]
+ ldr r0, [r0]
+ cmp r0, 0x4
+ bhi _0801BF90
+ lsls r0, 2
+ ldr r1, _0801BF64
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_0801BF60: .4byte gUnknown_203B238
+_0801BF64: .4byte _0801BF68
+ .align 2, 0
+_0801BF68:
+ .4byte _0801BF80
+ .4byte _0801BF80
+ .4byte _0801BF86
+ .4byte _0801BF8C
+ .4byte _0801BF7C
+_0801BF7C:
+ movs r0, 0x3
+ b _0801BF92
+_0801BF80:
+ bl sub_801C118
+ b _0801BF90
+_0801BF86:
+ bl sub_801C1A0
+ b _0801BF90
+_0801BF8C:
+ bl sub_801C228
+_0801BF90:
+ movs r0, 0
+_0801BF92:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_801BF48
+
+ thumb_func_start sub_801BF98
+sub_801BF98:
+ push {r4,lr}
+ ldr r4, _0801BFB0
+ ldr r0, [r4]
+ cmp r0, 0
+ beq _0801BFAA
+ bl MemoryFree
+ movs r0, 0
+ str r0, [r4]
+_0801BFAA:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0801BFB0: .4byte gUnknown_203B238
+ thumb_func_end sub_801BF98
+
+ thumb_func_start sub_801BFB4
+sub_801BFB4:
+ push {lr}
+ ldr r1, _0801BFC8
+ ldr r1, [r1]
+ str r0, [r1]
+ bl sub_801BFCC
+ bl sub_801C03C
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0801BFC8: .4byte gUnknown_203B238
+ thumb_func_end sub_801BFB4
+
+ thumb_func_start sub_801BFCC
+sub_801BFCC:
+ push {r4-r7,lr}
+ ldr r4, _0801BFF0
+ ldr r0, [r4]
+ adds r0, 0xC4
+ bl sub_8006518
+ ldr r1, [r4]
+ ldr r0, [r1]
+ cmp r0, 0x2
+ bne _0801BFF8
+ adds r1, 0xF4
+ ldr r0, _0801BFF4
+ ldm r0!, {r2-r4}
+ stm r1!, {r2-r4}
+ ldm r0!, {r5-r7}
+ stm r1!, {r5-r7}
+ b _0801C01A
+ .align 2, 0
+_0801BFF0: .4byte gUnknown_203B238
+_0801BFF4: .4byte gUnknown_80DBDB0
+_0801BFF8:
+ mov r12, r4
+ ldr r4, _0801C034
+ movs r3, 0
+ movs r2, 0x3
+_0801C000:
+ mov r0, r12
+ ldr r1, [r0]
+ adds r1, r3
+ adds r1, 0xC4
+ 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 _0801C000
+_0801C01A:
+ bl ResetUnusedInputStruct
+ ldr r0, _0801C038
+ ldr r0, [r0]
+ adds r0, 0xC4
+ movs r1, 0x1
+ movs r2, 0x1
+ bl sub_800641C
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0801C034: .4byte gUnknown_80DBD98
+_0801C038: .4byte gUnknown_203B238
+ thumb_func_end sub_801BFCC
+
+ thumb_func_start sub_801C03C
+sub_801C03C:
+ push {lr}
+ sub sp, 0x8
+ ldr r1, _0801C058
+ ldr r0, [r1]
+ ldr r0, [r0]
+ adds r2, r1, 0
+ cmp r0, 0x4
+ bhi _0801C0C2
+ lsls r0, 2
+ ldr r1, _0801C05C
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_0801C058: .4byte gUnknown_203B238
+_0801C05C: .4byte _0801C060
+ .align 2, 0
+_0801C060:
+ .4byte _0801C074
+ .4byte _0801C084
+ .4byte _0801C08C
+ .4byte _0801C0B8
+ .4byte _0801C0C2
+_0801C074:
+ ldr r0, [r2]
+ movs r1, 0x4
+ ldrsh r0, [r0, r1]
+ movs r1, 0
+ movs r2, 0x8
+ bl sub_801C244
+ b _0801C0C2
+_0801C084:
+ movs r0, 0x1
+ bl sub_801C3B0
+ b _0801C0C2
+_0801C08C:
+ bl sub_801C4C8
+ bl sub_801C0C8
+ ldr r0, _0801C0B4
+ ldr r2, [r0]
+ adds r0, r2, 0
+ adds r0, 0x74
+ adds r1, r2, 0
+ adds r1, 0x34
+ ldr r2, [r2, 0x30]
+ str r2, [sp]
+ movs r2, 0x2
+ str r2, [sp, 0x4]
+ movs r2, 0
+ movs r3, 0
+ bl sub_8012D60
+ b _0801C0C2
+ .align 2, 0
+_0801C0B4: .4byte gUnknown_203B238
+_0801C0B8:
+ ldr r0, [r2]
+ adds r0, 0x28
+ ldrb r0, [r0]
+ bl sub_801C620
+_0801C0C2:
+ add sp, 0x8
+ pop {r0}
+ bx r0
+ thumb_func_end sub_801C03C
+
+ thumb_func_start sub_801C0C8
+sub_801C0C8:
+ push {r4,r5,lr}
+ ldr r3, _0801C10C
+ ldr r1, [r3]
+ movs r4, 0
+ ldr r0, _0801C110
+ str r0, [r1, 0x34]
+ movs r0, 0x2
+ str r0, [r1, 0x38]
+ movs r2, 0x1
+ ldr r0, _0801C114
+ ldr r0, [r0]
+ str r0, [r1, 0x3C]
+ movs r0, 0x3
+ str r0, [r1, 0x40]
+ movs r5, 0x2
+ str r4, [r1, 0x44]
+ str r2, [r1, 0x48]
+ movs r2, 0
+ ldr r4, [r1, 0x30]
+ adds r1, 0x38
+_0801C0F0:
+ ldr r0, [r1]
+ cmp r0, r4
+ beq _0801C104
+ adds r1, 0x8
+ adds r2, 0x1
+ cmp r2, r5
+ blt _0801C0F0
+ ldr r1, [r3]
+ movs r0, 0x2
+ str r0, [r1, 0x30]
+_0801C104:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0801C10C: .4byte gUnknown_203B238
+_0801C110: .4byte gUnknown_80DBDC8
+_0801C114: .4byte gUnknown_80D4970
+ thumb_func_end sub_801C0C8
+
+ thumb_func_start sub_801C118
+sub_801C118:
+ push {lr}
+ movs r0, 0x1
+ bl sub_801C308
+ cmp r0, 0x4
+ bhi _0801C19A
+ lsls r0, 2
+ ldr r1, _0801C130
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_0801C130: .4byte _0801C134
+ .align 2, 0
+_0801C134:
+ .4byte _0801C19A
+ .4byte _0801C19A
+ .4byte _0801C190
+ .4byte _0801C148
+ .4byte _0801C16C
+_0801C148:
+ bl sub_801C390
+ ldr r1, _0801C168
+ ldr r2, [r1]
+ str r0, [r2, 0x24]
+ adds r1, r2, 0
+ adds r1, 0xC
+ adds r1, r0
+ ldrb r0, [r1]
+ adds r2, 0x28
+ strb r0, [r2]
+ movs r0, 0x2
+ bl sub_801BFB4
+ b _0801C19A
+ .align 2, 0
+_0801C168: .4byte gUnknown_203B238
+_0801C16C:
+ bl sub_801C390
+ ldr r1, _0801C18C
+ ldr r2, [r1]
+ str r0, [r2, 0x24]
+ adds r1, r2, 0
+ adds r1, 0xC
+ adds r1, r0
+ ldrb r0, [r1]
+ adds r2, 0x28
+ strb r0, [r2]
+ movs r0, 0x3
+ bl sub_801BFB4
+ b _0801C19A
+ .align 2, 0
+_0801C18C: .4byte gUnknown_203B238
+_0801C190:
+ bl sub_801C3F8
+ movs r0, 0x4
+ bl sub_801BFB4
+_0801C19A:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_801C118
+
+ thumb_func_start sub_801C1A0
+sub_801C1A0:
+ push {r4,lr}
+ sub sp, 0x4
+ movs r0, 0
+ str r0, [sp]
+ bl sub_801C308
+ ldr r4, _0801C1E0
+ ldr r0, [r4]
+ adds r0, 0x74
+ bl sub_8012FD8
+ lsls r0, 24
+ cmp r0, 0
+ bne _0801C1D0
+ ldr r0, [r4]
+ adds r0, 0x74
+ mov r1, sp
+ bl sub_8013114
+ ldr r1, [sp]
+ cmp r1, 0x1
+ beq _0801C1D0
+ ldr r0, [r4]
+ str r1, [r0, 0x30]
+_0801C1D0:
+ ldr r0, [sp]
+ cmp r0, 0x2
+ beq _0801C1EA
+ cmp r0, 0x2
+ bgt _0801C1E4
+ cmp r0, 0x1
+ beq _0801C218
+ b _0801C21E
+ .align 2, 0
+_0801C1E0: .4byte gUnknown_203B238
+_0801C1E4:
+ cmp r0, 0x3
+ beq _0801C210
+ b _0801C21E
+_0801C1EA:
+ ldr r0, _0801C208
+ bl PlaySound
+ ldr r0, _0801C20C
+ ldr r1, [r0]
+ ldr r0, [r1, 0x8]
+ adds r0, 0x20
+ adds r1, 0x28
+ ldrb r1, [r1]
+ bl sub_808EBF4
+ movs r0, 0x1
+ bl sub_801BFB4
+ b _0801C21E
+ .align 2, 0
+_0801C208: .4byte 0x00000133
+_0801C20C: .4byte gUnknown_203B238
+_0801C210:
+ movs r0, 0x3
+ bl sub_801BFB4
+ b _0801C21E
+_0801C218:
+ movs r0, 0x1
+ bl sub_801BFB4
+_0801C21E:
+ add sp, 0x4
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_801C1A0
+
+ thumb_func_start sub_801C228
+sub_801C228:
+ push {lr}
+ bl sub_801C674
+ cmp r0, 0x1
+ bls _0801C240
+ cmp r0, 0x3
+ bhi _0801C240
+ bl sub_801C6B4
+ movs r0, 0x1
+ bl sub_801BFB4
+_0801C240:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_801C228
+
+ thumb_func_start sub_801C244
+sub_801C244:
+ push {r4-r7,lr}
+ adds r6, r1, 0
+ adds r7, r2, 0
+ lsls r0, 16
+ asrs r0, 16
+ adds r4, r0, 0
+ bl sub_801C5F0
+ lsls r0, 24
+ cmp r0, 0
+ beq _0801C25E
+ movs r0, 0
+ b _0801C2F6
+_0801C25E:
+ ldr r5, _0801C2FC
+ ldr r0, [r5]
+ cmp r0, 0
+ bne _0801C270
+ movs r0, 0xC4
+ movs r1, 0x8
+ bl MemoryAlloc
+ str r0, [r5]
+_0801C270:
+ ldr r0, [r5]
+ strh r4, [r0]
+ ldr r3, _0801C300
+ movs r1, 0x58
+ adds r2, r4, 0
+ muls r2, r1
+ ldr r1, [r3]
+ adds r1, r2
+ str r1, [r0, 0x4]
+ adds r0, 0x8
+ movs r2, 0x14
+ ldrsh r1, [r1, r2]
+ bl sub_808EBA8
+ adds r1, r0, 0
+ ldr r0, [r5]
+ str r1, [r0, 0x20]
+ str r6, [r0, 0x58]
+ lsls r1, r6, 1
+ adds r1, r6
+ lsls r1, 3
+ adds r1, 0x60
+ adds r1, r0, r1
+ str r1, [r0, 0x5C]
+ adds r0, 0x60
+ bl sub_8006518
+ ldr r1, [r5]
+ ldr r2, [r1, 0x58]
+ lsls r0, r2, 1
+ adds r0, r2
+ lsls r0, 3
+ adds r1, r0
+ adds r1, 0x60
+ ldr r0, _0801C304
+ ldm r0!, {r2-r4}
+ stm r1!, {r2-r4}
+ ldm r0!, {r2-r4}
+ stm r1!, {r2-r4}
+ ldr r1, [r5]
+ ldr r0, [r1, 0x5C]
+ adds r1, 0xC0
+ str r1, [r0, 0x14]
+ adds r1, r7, 0
+ bl sub_8012D08
+ bl ResetUnusedInputStruct
+ ldr r0, [r5]
+ adds r0, 0x60
+ movs r1, 0x1
+ movs r2, 0x1
+ bl sub_800641C
+ ldr r1, [r5]
+ adds r0, r1, 0
+ adds r0, 0x24
+ ldr r1, [r1, 0x20]
+ adds r2, r7, 0
+ adds r3, r6, 0
+ bl sub_8013818
+ bl sub_801C440
+ bl sub_801C4C8
+ movs r0, 0x1
+_0801C2F6:
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0801C2FC: .4byte gUnknown_203B23C
+_0801C300: .4byte gRecruitedPokemonRef
+_0801C304: .4byte gUnknown_80DBDF0
+ thumb_func_end sub_801C244
+
+ thumb_func_start sub_801C308
+sub_801C308:
+ push {lr}
+ lsls r0, 24
+ cmp r0, 0
+ bne _0801C324
+ ldr r0, _0801C320
+ ldr r0, [r0]
+ adds r0, 0x24
+ bl sub_8013660
+ movs r0, 0
+ b _0801C38A
+ .align 2, 0
+_0801C320: .4byte gUnknown_203B23C
+_0801C324:
+ ldr r0, _0801C33C
+ ldr r0, [r0]
+ adds r0, 0x24
+ bl GetKeyPress
+ cmp r0, 0x2
+ beq _0801C346
+ cmp r0, 0x2
+ bgt _0801C340
+ cmp r0, 0x1
+ beq _0801C350
+ b _0801C364
+ .align 2, 0
+_0801C33C: .4byte gUnknown_203B23C
+_0801C340:
+ cmp r0, 0x4
+ beq _0801C35A
+ b _0801C364
+_0801C346:
+ movs r0, 0x1
+ bl PlayMenuSoundEffect
+ movs r0, 0x2
+ b _0801C38A
+_0801C350:
+ movs r0, 0
+ bl PlayMenuSoundEffect
+ movs r0, 0x3
+ b _0801C38A
+_0801C35A:
+ movs r0, 0x4
+ bl PlayMenuSoundEffect
+ movs r0, 0x4
+ b _0801C38A
+_0801C364:
+ ldr r0, _0801C37C
+ ldr r0, [r0]
+ adds r0, 0x24
+ movs r1, 0x1
+ bl sub_80138B8
+ lsls r0, 24
+ cmp r0, 0
+ bne _0801C380
+ movs r0, 0
+ b _0801C38A
+ .align 2, 0
+_0801C37C: .4byte gUnknown_203B23C
+_0801C380:
+ bl sub_801C440
+ bl sub_801C4C8
+ movs r0, 0x1
+_0801C38A:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_801C308
+
+ thumb_func_start sub_801C390
+sub_801C390:
+ ldr r0, _0801C3AC
+ ldr r2, [r0]
+ adds r0, r2, 0
+ adds r0, 0x42
+ movs r3, 0
+ ldrsh r1, [r0, r3]
+ subs r0, 0x2
+ movs r3, 0
+ ldrsh r0, [r0, r3]
+ muls r0, r1
+ movs r3, 0x3C
+ ldrsh r1, [r2, r3]
+ adds r0, r1
+ bx lr
+ .align 2, 0
+_0801C3AC: .4byte gUnknown_203B23C
+ thumb_func_end sub_801C390
+
+ thumb_func_start sub_801C3B0
+sub_801C3B0:
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ bl ResetUnusedInputStruct
+ ldr r5, _0801C3F4
+ ldr r0, [r5]
+ adds r0, 0x60
+ movs r1, 0
+ movs r2, 0
+ bl sub_800641C
+ ldr r0, [r5]
+ ldr r1, [r0, 0x20]
+ adds r2, r0, 0
+ adds r2, 0x46
+ strh r1, [r2]
+ adds r0, 0x24
+ bl sub_8013984
+ bl sub_801C440
+ bl sub_801C4C8
+ cmp r4, 0
+ beq _0801C3EE
+ ldr r0, [r5]
+ adds r0, 0x24
+ bl AddMenuCursorSprite
+_0801C3EE:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0801C3F4: .4byte gUnknown_203B23C
+ thumb_func_end sub_801C3B0
+
+ thumb_func_start sub_801C3F8
+sub_801C3F8:
+ push {r4,r5,lr}
+ ldr r4, _0801C438
+ ldr r2, [r4]
+ cmp r2, 0
+ beq _0801C432
+ ldr r0, [r2, 0x58]
+ lsls r1, r0, 1
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r2, r1
+ adds r1, 0x60
+ ldr r0, _0801C43C
+ 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, 0x60
+ movs r1, 0x1
+ movs r2, 0x1
+ bl sub_800641C
+ ldr r0, [r4]
+ bl MemoryFree
+ movs r0, 0
+ str r0, [r4]
+_0801C432:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0801C438: .4byte gUnknown_203B23C
+_0801C43C: .4byte gUnknown_80DBDD8
+ thumb_func_end sub_801C3F8
+
+ thumb_func_start sub_801C440
+sub_801C440:
+ push {r4,lr}
+ ldr r4, _0801C4C4
+ ldr r0, [r4]
+ adds r1, r0, 0
+ adds r1, 0x44
+ ldrh r1, [r1]
+ adds r0, 0xC0
+ movs r2, 0
+ strb r1, [r0]
+ ldr r0, [r4]
+ adds r1, r0, 0
+ adds r1, 0x42
+ ldrh r1, [r1]
+ adds r0, 0xC1
+ strb r1, [r0]
+ ldr r0, [r4]
+ adds r0, 0xC2
+ movs r1, 0xA
+ strb r1, [r0]
+ ldr r0, [r4]
+ adds r0, 0xC3
+ strb r2, [r0]
+ bl ResetUnusedInputStruct
+ ldr r0, [r4]
+ adds r0, 0x60
+ movs r1, 0x1
+ movs r2, 0x1
+ bl sub_800641C
+ ldr r0, [r4]
+ movs r1, 0x3E
+ ldrsh r0, [r0, r1]
+ movs r1, 0xC
+ bl sub_80095E4
+ adds r0, 0x2
+ ldr r2, [r4]
+ ldr r3, [r2, 0x58]
+ lsls r1, r3, 1
+ adds r1, r3
+ lsls r1, 3
+ adds r1, r2, r1
+ adds r1, 0x6E
+ lsls r0, 16
+ lsrs r0, 16
+ strh r0, [r1]
+ ldr r3, [r2, 0x58]
+ lsls r1, r3, 1
+ adds r1, r3
+ lsls r1, 3
+ adds r2, r1
+ adds r2, 0x70
+ strh r0, [r2]
+ bl ResetUnusedInputStruct
+ ldr r0, [r4]
+ adds r0, 0x60
+ movs r1, 0x1
+ movs r2, 0x1
+ bl sub_800641C
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0801C4C4: .4byte gUnknown_203B23C
+ thumb_func_end sub_801C440
+
+ thumb_func_start sub_801C4C8
+sub_801C4C8:
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ sub sp, 0x8
+ ldr r6, _0801C594
+ ldr r0, [r6]
+ ldr r0, [r0, 0x58]
+ bl sub_8008C54
+ ldr r0, [r6]
+ ldr r0, [r0, 0x58]
+ bl sub_80073B8
+ ldr r0, [r6]
+ adds r1, r0, 0
+ adds r1, 0x42
+ movs r2, 0
+ ldrsh r4, [r1, r2]
+ lsls r4, 3
+ adds r5, r4, 0
+ adds r5, 0xA
+ ldr r2, _0801C598
+ ldr r3, [r0, 0x58]
+ movs r0, 0
+ str r0, [sp]
+ adds r0, r5, 0
+ movs r1, 0
+ bl xxx_call_draw_string
+ adds r4, 0x4
+ ldr r1, [r6]
+ adds r0, r1, 0
+ adds r0, 0xC2
+ ldrb r0, [r0]
+ lsls r0, 3
+ adds r5, r4, r0
+ adds r0, r1, 0
+ adds r0, 0x42
+ movs r3, 0
+ ldrsh r2, [r0, r3]
+ adds r2, 0x1
+ movs r0, 0x7
+ str r0, [sp]
+ ldr r0, [r1, 0x58]
+ str r0, [sp, 0x4]
+ adds r0, r5, 0
+ movs r1, 0
+ movs r3, 0x1
+ bl sub_8012BC4
+ movs r5, 0
+ ldr r0, [r6]
+ movs r1, 0x3E
+ ldrsh r0, [r0, r1]
+ cmp r5, r0
+ bge _0801C5CC
+ ldr r2, _0801C59C
+ mov r8, r2
+_0801C53C:
+ ldr r2, [r6]
+ adds r0, r2, 0
+ adds r0, 0x42
+ movs r3, 0
+ ldrsh r1, [r0, r3]
+ subs r0, 0x2
+ movs r3, 0
+ ldrsh r0, [r0, r3]
+ muls r1, r0
+ adds r1, r5
+ adds r0, r2, 0
+ adds r0, 0x8
+ adds r0, r1
+ ldrb r4, [r0]
+ adds r0, r2, 0
+ adds r0, 0x24
+ adds r1, r5, 0
+ bl sub_8013800
+ adds r7, r0, 0
+ adds r0, r4, 0
+ bl sub_808EAB0
+ adds r1, r0, 0
+ mov r0, r8
+ movs r2, 0x50
+ bl strncpy
+ ldr r0, [r6]
+ ldr r0, [r0, 0x4]
+ adds r0, 0x20
+ movs r1, 0x1
+ lsls r1, r4
+ bl sub_808ECD0
+ lsls r0, 24
+ cmp r0, 0
+ beq _0801C5A4
+ mov r0, r8
+ subs r0, 0x50
+ ldr r1, _0801C5A0
+ bl strcpy
+ b _0801C5AE
+ .align 2, 0
+_0801C594: .4byte gUnknown_203B23C
+_0801C598: .4byte gUnknown_80DBE08
+_0801C59C: .4byte gUnknown_202DEA8
+_0801C5A0: .4byte gUnknown_80DBE14
+_0801C5A4:
+ mov r0, r8
+ subs r0, 0x50
+ ldr r1, _0801C5E4
+ bl strcpy
+_0801C5AE:
+ ldr r0, [r6]
+ ldr r3, [r0, 0x58]
+ movs r0, 0
+ str r0, [sp]
+ movs r0, 0xC
+ adds r1, r7, 0
+ ldr r2, _0801C5E8
+ bl sub_8014FF0
+ adds r5, 0x1
+ ldr r0, [r6]
+ movs r1, 0x3E
+ ldrsh r0, [r0, r1]
+ cmp r5, r0
+ blt _0801C53C
+_0801C5CC:
+ ldr r0, _0801C5EC
+ ldr r0, [r0]
+ ldr r0, [r0, 0x58]
+ bl sub_80073E0
+ add sp, 0x8
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0801C5E4: .4byte gUnknown_80DBE18
+_0801C5E8: .4byte gUnknown_80DBE1C
+_0801C5EC: .4byte gUnknown_203B23C
+ thumb_func_end sub_801C4C8
+
+ thumb_func_start sub_801C5F0
+sub_801C5F0:
+ push {lr}
+ sub sp, 0x18
+ lsls r0, 16
+ asrs r0, 16
+ ldr r2, _0801C614
+ movs r1, 0x58
+ muls r1, r0
+ ldr r0, [r2]
+ adds r0, r1
+ movs r2, 0x14
+ ldrsh r1, [r0, r2]
+ mov r0, sp
+ bl sub_808EBA8
+ cmp r0, 0
+ beq _0801C618
+ movs r0, 0
+ b _0801C61A
+ .align 2, 0
+_0801C614: .4byte gRecruitedPokemonRef
+_0801C618:
+ movs r0, 0x1
+_0801C61A:
+ add sp, 0x18
+ pop {r1}
+ bx r1
+ thumb_func_end sub_801C5F0
+
+ thumb_func_start sub_801C620
+sub_801C620:
+ push {r4-r6,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ movs r0, 0x1
+ bl ResetSprites
+ ldr r5, _0801C670
+ movs r0, 0x94
+ movs r1, 0x8
+ bl MemoryAlloc
+ str r0, [r5]
+ movs r6, 0
+ strb r4, [r0, 0x4]
+ ldr r0, [r5]
+ adds r0, 0x88
+ bl sub_801317C
+ ldr r0, [r5]
+ str r6, [r0, 0x24]
+ adds r0, 0x28
+ bl sub_80140B4
+ bl ResetUnusedInputStruct
+ ldr r0, [r5]
+ adds r0, 0x28
+ movs r1, 0x1
+ movs r2, 0x1
+ bl sub_800641C
+ movs r0, 0
+ bl sub_801C6D0
+ movs r0, 0x1
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0801C670: .4byte gUnknown_203B240
+ thumb_func_end sub_801C620
+
+ thumb_func_start sub_801C674
+sub_801C674:
+ push {lr}
+ ldr r0, _0801C68C
+ ldr r0, [r0]
+ ldr r0, [r0]
+ cmp r0, 0x1
+ beq _0801C6A0
+ cmp r0, 0x1
+ bgt _0801C690
+ cmp r0, 0
+ beq _0801C69A
+ b _0801C6AA
+ .align 2, 0
+_0801C68C: .4byte gUnknown_203B240
+_0801C690:
+ cmp r0, 0x2
+ beq _0801C6AA
+ cmp r0, 0x3
+ beq _0801C6A6
+ b _0801C6AA
+_0801C69A:
+ bl sub_801C7D4
+ b _0801C6AE
+_0801C6A0:
+ bl sub_801C848
+ b _0801C6AE
+_0801C6A6:
+ movs r0, 0x3
+ b _0801C6B0
+_0801C6AA:
+ movs r0, 0x2
+ b _0801C6B0
+_0801C6AE:
+ movs r0, 0
+_0801C6B0:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_801C674
+
+ thumb_func_start sub_801C6B4
+sub_801C6B4:
+ push {r4,lr}
+ ldr r4, _0801C6CC
+ ldr r0, [r4]
+ cmp r0, 0
+ beq _0801C6C6
+ bl MemoryFree
+ movs r0, 0
+ str r0, [r4]
+_0801C6C6:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0801C6CC: .4byte gUnknown_203B240
+ thumb_func_end sub_801C6B4
+
+ thumb_func_start sub_801C6D0
+sub_801C6D0:
+ push {lr}
+ ldr r1, _0801C6E0
+ ldr r1, [r1]
+ str r0, [r1]
+ bl sub_801C6E4
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0801C6E0: .4byte gUnknown_203B240
+ thumb_func_end sub_801C6D0
+
+ thumb_func_start sub_801C6E4
+sub_801C6E4:
+ push {r4,r5,lr}
+ sub sp, 0x4
+ ldr r5, _0801C760
+ ldr r0, [r5]
+ ldr r4, [r0]
+ cmp r4, 0x1
+ beq _0801C76C
+ cmp r4, 0x1
+ bgt _0801C7C4
+ cmp r4, 0
+ bne _0801C7C4
+ ldr r0, [r0, 0x24]
+ bl sub_8008C54
+ ldr r0, [r5]
+ ldr r0, [r0, 0x24]
+ bl sub_80073B8
+ ldr r0, [r5]
+ ldrb r0, [r0, 0x4]
+ bl sub_808EAB0
+ adds r1, r0, 0
+ ldr r0, _0801C764
+ bl strcpy
+ ldr r2, _0801C768
+ str r4, [sp]
+ movs r0, 0x10
+ movs r1, 0
+ movs r3, 0
+ bl sub_8014FF0
+ ldr r0, [r5]
+ ldrb r0, [r0, 0x4]
+ bl sub_808EADC
+ adds r2, r0, 0
+ ldr r0, [r5]
+ ldr r3, [r0, 0x24]
+ str r4, [sp]
+ movs r0, 0x8
+ movs r1, 0x10
+ bl xxx_call_draw_string
+ ldr r0, [r5]
+ ldr r0, [r0, 0x24]
+ bl sub_80073E0
+ ldr r0, [r5]
+ ldrb r0, [r0, 0x4]
+ bl sub_808EADC
+ ldr r1, [r5]
+ adds r1, 0x10
+ bl sub_8097DF0
+ ldr r1, [r5]
+ str r0, [r1, 0xC]
+ str r4, [r1, 0x20]
+ b _0801C7C4
+ .align 2, 0
+_0801C760: .4byte gUnknown_203B240
+_0801C764: .4byte gUnknown_202DE58
+_0801C768: .4byte gUnknown_80DBE2C
+_0801C76C:
+ ldr r0, [r0, 0x24]
+ bl sub_8008C54
+ ldr r0, [r5]
+ ldr r0, [r0, 0x24]
+ bl sub_80073B8
+ ldr r0, [r5]
+ ldr r1, [r0, 0x8]
+ lsls r1, 2
+ adds r0, 0x10
+ adds r0, r1
+ ldr r1, [r0]
+ ldr r0, _0801C7CC
+ ldr r1, [r1]
+ bl strcpy
+ ldr r2, _0801C7D0
+ ldr r0, [r5]
+ ldr r3, [r0, 0x24]
+ movs r4, 0
+ str r4, [sp]
+ movs r0, 0x10
+ movs r1, 0
+ bl sub_8014FF0
+ ldr r3, [r5]
+ ldr r1, [r3, 0x8]
+ lsls r1, 2
+ adds r0, r3, 0
+ adds r0, 0x10
+ adds r0, r1
+ ldr r0, [r0]
+ ldr r2, [r0, 0x4]
+ ldr r3, [r3, 0x24]
+ str r4, [sp]
+ movs r0, 0x4
+ movs r1, 0x10
+ bl sub_8014FF0
+ ldr r0, [r5]
+ ldr r0, [r0, 0x24]
+ bl sub_80073E0
+_0801C7C4:
+ add sp, 0x4
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0801C7CC: .4byte gAvailablePokemonNames
+_0801C7D0: .4byte gUnknown_80DBE30
+ thumb_func_end sub_801C6E4
+
+ thumb_func_start sub_801C7D4
+sub_801C7D4:
+ push {r4,lr}
+ ldr r0, _0801C810
+ ldr r2, [r0]
+ ldr r1, [r2, 0xC]
+ adds r4, r0, 0
+ cmp r1, 0
+ beq _0801C7F8
+ ldr r0, [r2, 0x20]
+ movs r1, 0x8
+ ands r0, r1
+ cmp r0, 0
+ beq _0801C7F0
+ bl sub_8013F84
+_0801C7F0:
+ ldr r1, [r4]
+ ldr r0, [r1, 0x20]
+ adds r0, 0x1
+ str r0, [r1, 0x20]
+_0801C7F8:
+ ldr r1, [r4]
+ adds r0, r1, 0
+ adds r0, 0x88
+ ldr r1, [r1, 0x24]
+ bl sub_8012A64
+ cmp r0, 0x1
+ beq _0801C814
+ cmp r0, 0x2
+ beq _0801C836
+ b _0801C842
+ .align 2, 0
+_0801C810: .4byte gUnknown_203B240
+_0801C814:
+ movs r0, 0
+ bl PlayMenuSoundEffect
+ ldr r1, [r4]
+ ldr r0, [r1, 0xC]
+ cmp r0, 0
+ beq _0801C82E
+ movs r0, 0
+ str r0, [r1, 0x8]
+ movs r0, 0x1
+ bl sub_801C6D0
+ b _0801C842
+_0801C82E:
+ movs r0, 0x3
+ bl sub_801C6D0
+ b _0801C842
+_0801C836:
+ movs r0, 0x1
+ bl PlayMenuSoundEffect
+ movs r0, 0x2
+ bl sub_801C6D0
+_0801C842:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_801C7D4
+
+ thumb_func_start sub_801C848
+sub_801C848:
+ push {r4,lr}
+ ldr r0, _0801C888
+ ldr r3, [r0]
+ ldr r1, [r3, 0xC]
+ subs r1, 0x1
+ ldr r2, [r3, 0x8]
+ adds r4, r0, 0
+ cmp r2, r1
+ bge _0801C870
+ ldr r0, [r3, 0x20]
+ movs r1, 0x8
+ ands r0, r1
+ cmp r0, 0
+ beq _0801C868
+ bl sub_8013F84
+_0801C868:
+ ldr r1, [r4]
+ ldr r0, [r1, 0x20]
+ adds r0, 0x1
+ str r0, [r1, 0x20]
+_0801C870:
+ ldr r1, [r4]
+ adds r0, r1, 0
+ adds r0, 0x88
+ ldr r1, [r1, 0x24]
+ bl sub_8012A64
+ cmp r0, 0x1
+ beq _0801C88C
+ cmp r0, 0x2
+ beq _0801C8B0
+ b _0801C8BC
+ .align 2, 0
+_0801C888: .4byte gUnknown_203B240
+_0801C88C:
+ movs r0, 0
+ bl PlayMenuSoundEffect
+ ldr r0, [r4]
+ ldr r1, [r0, 0x8]
+ adds r1, 0x1
+ str r1, [r0, 0x8]
+ ldr r0, [r0, 0xC]
+ cmp r1, r0
+ bge _0801C8A8
+ movs r0, 0x1
+ bl sub_801C6D0
+ b _0801C8BC
+_0801C8A8:
+ movs r0, 0
+ bl sub_801C6D0
+ b _0801C8BC
+_0801C8B0:
+ movs r0, 0x1
+ bl PlayMenuSoundEffect
+ movs r0, 0x2
+ bl sub_801C6D0
+_0801C8BC:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_801C848
+
+ thumb_func_start sub_801C8C4
+sub_801C8C4:
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ adds r4, r0, 0
+ adds r6, r1, 0
+ mov r9, r2
+ mov r10, r3
+ bl sub_801CF14
+ lsls r0, 24
+ cmp r0, 0
+ beq _0801C8E4
+ movs r0, 0
+ b _0801C9D0
+_0801C8E4:
+ ldr r5, _0801C9E0
+ ldr r0, [r5]
+ cmp r0, 0
+ bne _0801C8F6
+ ldr r0, _0801C9E4
+ movs r1, 0x8
+ bl MemoryAlloc
+ str r0, [r5]
+_0801C8F6:
+ ldr r0, [r5]
+ str r4, [r0]
+ bl sub_801CF94
+ ldr r0, [r5]
+ movs r4, 0x9D
+ lsls r4, 3
+ adds r1, r0, r4
+ str r6, [r1]
+ ldr r1, _0801C9E8
+ mov r8, r1
+ adds r2, r0, r1
+ lsls r1, r6, 1
+ adds r1, r6
+ lsls r1, 3
+ movs r7, 0x9E
+ lsls r7, 3
+ adds r1, r7
+ adds r1, r0, r1
+ str r1, [r2]
+ adds r0, r7
+ 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, r7
+ ldr r0, _0801C9EC
+ ldm r0!, {r2-r4}
+ stm r1!, {r2-r4}
+ ldm r0!, {r2-r4}
+ stm r1!, {r2-r4}
+ ldr r2, [r5]
+ mov r1, r8
+ adds r0, r2, r1
+ ldr r1, [r0]
+ movs r3, 0xAA
+ lsls r3, 3
+ adds r0, r2, r3
+ str r0, [r1, 0x14]
+ mov r4, r9
+ cmp r4, 0
+ beq _0801C96C
+ movs r1, 0x9D
+ lsls r1, 3
+ 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]
+_0801C96C:
+ ldr r0, [r5]
+ add r0, r8
+ ldr r0, [r0]
+ mov r1, r10
+ bl sub_8012D08
+ bl ResetUnusedInputStruct
+ ldr r0, [r5]
+ adds r0, r7
+ movs r1, 0x1
+ movs r2, 0x1
+ bl sub_800641C
+ ldr r4, [r5]
+ ldr r0, _0801C9F0
+ adds r4, r0
+ bl sub_801CE58
+ adds r1, r0, 0
+ adds r0, r4, 0
+ mov r2, r10
+ adds r3, r6, 0
+ bl sub_8013818
+ ldr r0, _0801C9F4
+ ldr r4, [r5]
+ ldr r1, [r0]
+ ldr r0, [r4]
+ cmp r1, r0
+ bne _0801C9C6
+ ldr r0, _0801C9F8
+ ldrh r1, [r0]
+ ldr r2, _0801C9FC
+ adds r0, r4, r2
+ strh r1, [r0]
+ ldr r0, _0801CA00
+ ldrh r1, [r0]
+ ldr r3, _0801CA04
+ adds r0, r4, r3
+ strh r1, [r0]
+ ldr r1, _0801C9F0
+ adds r0, r4, r1
+ bl sub_8013984
+_0801C9C6:
+ bl sub_801CC38
+ bl sub_801CCD8
+ movs r0, 0x1
+_0801C9D0:
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0801C9E0: .4byte gUnknown_203B244
+_0801C9E4: .4byte 0x00000554
+_0801C9E8: .4byte 0x000004ec
+_0801C9EC: .4byte gUnknown_80DBE54
+_0801C9F0: .4byte 0x000004b4
+_0801C9F4: .4byte gUnknown_203B248
+_0801C9F8: .4byte gUnknown_203B24C
+_0801C9FC: .4byte 0x000004cc
+_0801CA00: .4byte gUnknown_203B24E
+_0801CA04: .4byte 0x000004d2
+ thumb_func_end sub_801C8C4
+
+ thumb_func_start sub_801CA08
+sub_801CA08:
+ push {r4-r6,lr}
+ lsls r0, 24
+ cmp r0, 0
+ bne _0801CA28
+ ldr r0, _0801CA20
+ ldr r0, [r0]
+ ldr r1, _0801CA24
+ adds r0, r1
+ bl sub_8013660
+ movs r0, 0
+ b _0801CB1E
+ .align 2, 0
+_0801CA20: .4byte gUnknown_203B244
+_0801CA24: .4byte 0x000004b4
+_0801CA28:
+ ldr r0, _0801CA44
+ ldr r0, [r0]
+ ldr r1, _0801CA48
+ adds r0, r1
+ bl GetKeyPress
+ subs r0, 0x1
+ cmp r0, 0x5
+ bhi _0801CAF2
+ lsls r0, 2
+ ldr r1, _0801CA4C
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_0801CA44: .4byte gUnknown_203B244
+_0801CA48: .4byte 0x000004b4
+_0801CA4C: .4byte _0801CA50
+ .align 2, 0
+_0801CA50:
+ .4byte _0801CA72
+ .4byte _0801CA68
+ .4byte _0801CAF2
+ .4byte _0801CAE8
+ .4byte _0801CA7C
+ .4byte _0801CA7C
+_0801CA68:
+ movs r0, 0x1
+ bl PlayMenuSoundEffect
+ movs r0, 0x2
+ b _0801CB1E
+_0801CA72:
+ movs r0, 0
+ bl PlayMenuSoundEffect
+ movs r0, 0x3
+ b _0801CB1E
+_0801CA7C:
+ ldr r0, _0801CAD8
+ ldr r0, [r0]
+ ldr r0, [r0]
+ cmp r0, 0x1
+ bne _0801CAF2
+ bl sub_801CB24
+ lsls r0, 24
+ lsrs r5, r0, 24
+ adds r0, r5, 0
+ bl sub_801CFE0
+ movs r6, 0
+ cmp r0, 0
+ bne _0801CAB0
+ bl sub_8090A34
+ adds r4, r0, 0
+ bl sub_801CFB8
+ adds r4, r0
+ cmp r4, 0x13
+ bgt _0801CAAC
+ movs r6, 0x1
+_0801CAAC:
+ cmp r6, 0
+ beq _0801CAE0
+_0801CAB0:
+ movs r0, 0x6
+ bl PlayMenuSoundEffect
+ ldr r0, _0801CAD8
+ ldr r0, [r0]
+ lsls r1, r5, 2
+ adds r2, r0, 0
+ adds r2, 0xF4
+ adds r2, r1
+ ldr r1, [r2]
+ movs r3, 0x1
+ eors r1, r3
+ str r1, [r2]
+ ldr r1, _0801CADC
+ adds r0, r1
+ movs r1, 0
+ bl sub_80138B8
+ b _0801CB18
+ .align 2, 0
+_0801CAD8: .4byte gUnknown_203B244
+_0801CADC: .4byte 0x000004b4
+_0801CAE0:
+ movs r0, 0x2
+ bl PlayMenuSoundEffect
+ b _0801CAF2
+_0801CAE8:
+ movs r0, 0x4
+ bl PlayMenuSoundEffect
+ movs r0, 0x4
+ b _0801CB1E
+_0801CAF2:
+ ldr r0, _0801CB0C
+ ldr r0, [r0]
+ ldr r1, _0801CB10
+ adds r0, r1
+ movs r1, 0x1
+ bl sub_80138B8
+ lsls r0, 24
+ cmp r0, 0
+ bne _0801CB14
+ movs r0, 0
+ b _0801CB1E
+ .align 2, 0
+_0801CB0C: .4byte gUnknown_203B244
+_0801CB10: .4byte 0x000004b4
+_0801CB14:
+ bl sub_801CC38
+_0801CB18:
+ bl sub_801CCD8
+ movs r0, 0x1
+_0801CB1E:
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_801CA08
+
+ thumb_func_start sub_801CB24
+sub_801CB24:
+ ldr r0, _0801CB50
+ ldr r0, [r0]
+ ldr r2, _0801CB54
+ adds r1, r0, r2
+ movs r3, 0
+ ldrsh r2, [r1, r3]
+ movs r3, 0x9A
+ lsls r3, 3
+ adds r1, r0, r3
+ movs r3, 0
+ ldrsh r1, [r1, r3]
+ muls r2, r1
+ ldr r3, _0801CB58
+ adds r1, r0, r3
+ movs r3, 0
+ ldrsh r1, [r1, r3]
+ adds r2, r1
+ adds r0, 0x4
+ adds r0, r2
+ ldrb r0, [r0]
+ bx lr
+ .align 2, 0
+_0801CB50: .4byte gUnknown_203B244
+_0801CB54: .4byte 0x000004d2
+_0801CB58: .4byte 0x000004cc
+ thumb_func_end sub_801CB24
+
+ thumb_func_start sub_801CB5C
+sub_801CB5C:
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ bl ResetUnusedInputStruct
+ ldr r5, _0801CBAC
+ ldr r0, [r5]
+ movs r1, 0x9E
+ lsls r1, 3
+ adds r0, r1
+ movs r1, 0
+ movs r2, 0
+ bl sub_800641C
+ bl sub_801CE58
+ adds r2, r0, 0
+ ldr r0, [r5]
+ ldr r3, _0801CBB0
+ adds r1, r0, r3
+ strh r2, [r1]
+ ldr r1, _0801CBB4
+ adds r0, r1
+ bl sub_8013984
+ bl sub_801CC38
+ bl sub_801CCD8
+ cmp r4, 0
+ beq _0801CBA6
+ ldr r0, [r5]
+ ldr r3, _0801CBB4
+ adds r0, r3
+ bl AddMenuCursorSprite
+_0801CBA6:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0801CBAC: .4byte gUnknown_203B244
+_0801CBB0: .4byte 0x000004d6
+_0801CBB4: .4byte 0x000004b4
+ thumb_func_end sub_801CB5C
+
+ thumb_func_start sub_801CBB8
+sub_801CBB8:
+ push {r4-r6,lr}
+ ldr r5, _0801CC1C
+ ldr r2, [r5]
+ cmp r2, 0
+ beq _0801CC16
+ ldr r1, _0801CC20
+ ldr r0, [r2]
+ str r0, [r1]
+ ldr r1, _0801CC24
+ ldr r3, _0801CC28
+ adds r0, r2, r3
+ ldrh r0, [r0]
+ strh r0, [r1]
+ ldr r1, _0801CC2C
+ ldr r6, _0801CC30
+ adds r0, r2, r6
+ ldrh r0, [r0]
+ strh r0, [r1]
+ movs r1, 0x9D
+ lsls r1, 3
+ adds r0, r2, r1
+ ldr r0, [r0]
+ lsls r1, r0, 1
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r2, r1
+ movs r4, 0x9E
+ lsls r4, 3
+ adds r1, r4
+ ldr r0, _0801CC34
+ 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]
+_0801CC16:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0801CC1C: .4byte gUnknown_203B244
+_0801CC20: .4byte gUnknown_203B248
+_0801CC24: .4byte gUnknown_203B24C
+_0801CC28: .4byte 0x000004cc
+_0801CC2C: .4byte gUnknown_203B24E
+_0801CC30: .4byte 0x000004d2
+_0801CC34: .4byte gUnknown_80DBE3C
+ thumb_func_end sub_801CBB8
+
+ thumb_func_start sub_801CC38
+sub_801CC38:
+ push {r4,r5,lr}
+ ldr r4, _0801CCC4
+ ldr r0, [r4]
+ movs r1, 0xAA
+ lsls r1, 3
+ adds r0, r1
+ movs r2, 0
+ movs r1, 0x1
+ strb r1, [r0]
+ ldr r0, [r4]
+ ldr r1, _0801CCC8
+ 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, _0801CCCC
+ adds r0, r1
+ strb r2, [r0]
+ ldr r0, [r4]
+ ldr r2, _0801CCD0
+ adds r0, r2
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ movs r1, 0xC
+ bl sub_80095E4
+ adds r0, 0x2
+ lsls r0, 16
+ ldr r3, [r4]
+ movs r2, 0x9D
+ lsls r2, 3
+ adds r5, r3, r2
+ ldr r2, [r5]
+ lsls r1, r2, 1
+ adds r1, r2
+ lsls r1, 3
+ adds r1, r3, r1
+ ldr r2, _0801CCD4
+ adds r1, r2
+ asrs r2, r0, 16
+ lsrs r0, 16
+ strh r0, [r1]
+ ldr r1, [r5]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 3
+ adds r3, r0
+ adds r2, 0x2
+ movs r0, 0xA0
+ lsls r0, 3
+ adds r3, r0
+ strh r2, [r3]
+ bl ResetUnusedInputStruct
+ ldr r0, [r4]
+ movs r1, 0x9E
+ lsls r1, 3
+ adds r0, r1
+ movs r1, 0x1
+ movs r2, 0x1
+ bl sub_800641C
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0801CCC4: .4byte gUnknown_203B244
+_0801CCC8: .4byte 0x00000551
+_0801CCCC: .4byte 0x00000553
+_0801CCD0: .4byte 0x000004ce
+_0801CCD4: .4byte 0x000004fe
+ thumb_func_end sub_801CC38
+
+ thumb_func_start sub_801CCD8
+sub_801CCD8:
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ sub sp, 0x58
+ ldr r4, _0801CE38
+ ldr r0, [r4]
+ movs r5, 0x9D
+ lsls r5, 3
+ adds r0, r5
+ ldr r0, [r0]
+ bl sub_8008C54
+ ldr r0, [r4]
+ adds r0, r5
+ ldr r0, [r0]
+ bl sub_80073B8
+ ldr r2, _0801CE3C
+ ldr r0, [r4]
+ adds r0, r5
+ ldr r3, [r0]
+ movs r0, 0
+ str r0, [sp]
+ movs r0, 0xA
+ movs r1, 0
+ bl xxx_call_draw_string
+ ldr r3, [r4]
+ ldr r1, _0801CE40
+ adds r0, r3, r1
+ ldrb r0, [r0]
+ lsls r0, 3
+ adds r0, 0x4
+ ldr r2, _0801CE44
+ adds r1, r3, r2
+ movs r6, 0
+ ldrsh r2, [r1, r6]
+ adds r2, 0x1
+ movs r1, 0x7
+ str r1, [sp]
+ adds r3, r5
+ ldr r1, [r3]
+ str r1, [sp, 0x4]
+ movs r1, 0
+ movs r3, 0x2
+ bl sub_8012BC4
+ movs r7, 0
+ ldr r0, [r4]
+ ldr r1, _0801CE48
+ adds r0, r1
+ movs r2, 0
+ ldrsh r0, [r0, r2]
+ cmp r7, r0
+ bge _0801CE1A
+ adds r6, r4, 0
+ ldr r3, _0801CE4C
+ mov r9, r3
+ mov r8, r5
+_0801CD50:
+ ldr r1, [r6]
+ ldr r4, _0801CE44
+ adds r0, r1, r4
+ movs r3, 0
+ ldrsh r2, [r0, r3]
+ subs r4, 0x2
+ adds r0, r1, r4
+ movs r3, 0
+ ldrsh r0, [r0, r3]
+ muls r0, r2
+ adds r0, r7
+ adds r1, 0x4
+ adds r1, r0
+ ldrb r5, [r1]
+ add r0, sp, 0x8
+ adds r1, r5, 0
+ movs r2, 0
+ bl sub_8090DC4
+ ldr r0, [r6]
+ add r0, r9
+ adds r1, r7, 0
+ bl sub_8013800
+ adds r1, r0, 0
+ ldr r0, [r6]
+ add r0, r8
+ ldr r3, [r0]
+ movs r0, 0
+ str r0, [sp]
+ movs r0, 0x8
+ add r2, sp, 0x8
+ bl xxx_call_draw_string
+ ldr r0, [r6]
+ add r0, r9
+ adds r1, r7, 0
+ bl sub_8013800
+ adds r1, r0, 0
+ ldr r4, [r6]
+ ldr r2, _0801CE50
+ adds r0, r4, r2
+ ldr r0, [r0]
+ movs r3, 0xC
+ ldrsh r0, [r0, r3]
+ lsls r0, 3
+ subs r0, 0x2
+ ldr r2, _0801CE54
+ ldr r2, [r2]
+ lsls r3, r5, 1
+ adds r2, 0x50
+ adds r2, r3
+ ldrh r2, [r2]
+ movs r3, 0x5
+ str r3, [sp]
+ add r4, r8
+ ldr r3, [r4]
+ str r3, [sp, 0x4]
+ movs r3, 0x3
+ bl sub_8012BC4
+ adds r0, r5, 0
+ bl sub_801CFE0
+ movs r1, 0x1
+ ands r1, r0
+ cmp r1, 0
+ beq _0801CE0A
+ ldr r0, [r6]
+ ldr r4, _0801CE4C
+ adds r0, r4
+ adds r1, r7, 0
+ bl sub_8013800
+ adds r2, r0, 0
+ ldr r1, [r6]
+ movs r3, 0x9D
+ lsls r3, 3
+ adds r0, r1, r3
+ ldr r0, [r0]
+ adds r4, 0x38
+ adds r1, r4
+ ldr r1, [r1]
+ movs r4, 0xC
+ ldrsh r3, [r1, r4]
+ subs r3, 0x1
+ lsls r3, 3
+ movs r1, 0xA
+ str r1, [sp]
+ movs r1, 0x8
+ bl sub_8007B7C
+_0801CE0A:
+ adds r7, 0x1
+ ldr r0, [r6]
+ ldr r1, _0801CE48
+ adds r0, r1
+ movs r2, 0
+ ldrsh r0, [r0, r2]
+ cmp r7, r0
+ blt _0801CD50
+_0801CE1A:
+ ldr r0, _0801CE38
+ ldr r0, [r0]
+ movs r3, 0x9D
+ lsls r3, 3
+ adds r0, r3
+ 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
+_0801CE38: .4byte gUnknown_203B244
+_0801CE3C: .4byte gUnknown_80DBE6C
+_0801CE40: .4byte 0x00000552
+_0801CE44: .4byte 0x000004d2
+_0801CE48: .4byte 0x000004ce
+_0801CE4C: .4byte 0x000004b4
+_0801CE50: .4byte 0x000004ec
+_0801CE54: .4byte gUnknown_203B460
+ thumb_func_end sub_801CCD8
+
+ thumb_func_start sub_801CE58
+sub_801CE58:
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ sub sp, 0x4
+ movs r3, 0
+ movs r6, 0x1
+ ldr r4, _0801CF0C
+_0801CE68:
+ ldr r0, [r4]
+ ldr r0, [r0]
+ cmp r0, 0x2
+ beq _0801CE92
+ ldr r0, _0801CF10
+ ldr r0, [r0]
+ lsls r1, r6, 1
+ adds r0, 0x50
+ adds r0, r1
+ ldrh r0, [r0]
+ cmp r0, 0
+ beq _0801CE9C
+ lsls r0, r6, 24
+ lsrs r0, 24
+ str r3, [sp]
+ bl sub_8091524
+ lsls r0, 24
+ ldr r3, [sp]
+ cmp r0, 0
+ beq _0801CE9C
+_0801CE92:
+ ldr r0, [r4]
+ adds r0, 0x4
+ adds r0, r3
+ strb r6, [r0]
+ adds r3, 0x1
+_0801CE9C:
+ adds r6, 0x1
+ cmp r6, 0xEF
+ ble _0801CE68
+ movs r6, 0
+ subs r0, r3, 0x1
+ mov r9, r0
+ cmp r6, r9
+ bge _0801CEFC
+_0801CEAC:
+ adds r0, r6, 0x1
+ mov r8, r0
+ mov r5, r8
+ cmp r8, r3
+ bge _0801CEF6
+ ldr r7, _0801CF0C
+_0801CEB8:
+ ldr r0, [r7]
+ adds r0, 0x4
+ adds r0, r6
+ ldrb r0, [r0]
+ str r3, [sp]
+ bl GetItemOrder
+ adds r4, r0, 0
+ ldr r0, [r7]
+ adds r0, 0x4
+ adds r0, r5
+ ldrb r0, [r0]
+ bl GetItemOrder
+ ldr r3, [sp]
+ cmp r4, r0
+ ble _0801CEF0
+ ldr r0, [r7]
+ adds r0, 0x4
+ adds r1, r0, r6
+ ldrb r2, [r1]
+ adds r0, r5
+ ldrb r0, [r0]
+ strb r0, [r1]
+ ldr r0, [r7]
+ adds r0, 0x4
+ adds r0, r5
+ strb r2, [r0]
+_0801CEF0:
+ adds r5, 0x1
+ cmp r5, r3
+ blt _0801CEB8
+_0801CEF6:
+ mov r6, r8
+ cmp r6, r9
+ blt _0801CEAC
+_0801CEFC:
+ adds r0, r3, 0
+ add sp, 0x4
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0801CF0C: .4byte gUnknown_203B244
+_0801CF10: .4byte gUnknown_203B460
+ thumb_func_end sub_801CE58
+
+ thumb_func_start sub_801CF14
+sub_801CF14:
+ push {r4,lr}
+ cmp r0, 0x2
+ bne _0801CF1E
+_0801CF1A:
+ movs r0, 0
+ b _0801CF46
+_0801CF1E:
+ movs r4, 0x1
+_0801CF20:
+ ldr r0, _0801CF4C
+ ldr r0, [r0]
+ lsls r1, r4, 1
+ adds r0, 0x50
+ adds r0, r1
+ ldrh r0, [r0]
+ cmp r0, 0
+ beq _0801CF3E
+ lsls r0, r4, 24
+ lsrs r0, 24
+ bl sub_8091524
+ lsls r0, 24
+ cmp r0, 0
+ bne _0801CF1A
+_0801CF3E:
+ adds r4, 0x1
+ cmp r4, 0xEF
+ ble _0801CF20
+ movs r0, 0x1
+_0801CF46:
+ pop {r4}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0801CF4C: .4byte gUnknown_203B460
+ thumb_func_end sub_801CF14
+
+ thumb_func_start sub_801CF50
+sub_801CF50:
+ push {r4,r5,lr}
+ cmp r0, 0x2
+ bne _0801CF5A
+_0801CF56:
+ movs r0, 0
+ b _0801CF84
+_0801CF5A:
+ movs r4, 0x1
+ ldr r5, _0801CF8C
+_0801CF5E:
+ lsls r0, r4, 24
+ lsrs r0, 24
+ bl sub_8091524
+ lsls r0, 24
+ cmp r0, 0
+ beq _0801CF7C
+ ldr r0, _0801CF90
+ ldr r0, [r0]
+ lsls r1, r4, 1
+ adds r0, 0x50
+ adds r0, r1
+ ldrh r0, [r0]
+ cmp r0, r5
+ bls _0801CF56
+_0801CF7C:
+ adds r4, 0x1
+ cmp r4, 0xEF
+ ble _0801CF5E
+ movs r0, 0x1
+_0801CF84:
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0801CF8C: .4byte 0x000003e6
+_0801CF90: .4byte gUnknown_203B460
+ thumb_func_end sub_801CF50
+
+ thumb_func_start sub_801CF94
+sub_801CF94:
+ push {r4,lr}
+ movs r2, 0
+ ldr r4, _0801CFB4
+ movs r3, 0
+_0801CF9C:
+ ldr r0, [r4]
+ lsls r1, r2, 2
+ adds r0, 0xF4
+ adds r0, r1
+ str r3, [r0]
+ adds r2, 0x1
+ cmp r2, 0xEF
+ ble _0801CF9C
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0801CFB4: .4byte gUnknown_203B244
+ thumb_func_end sub_801CF94
+
+ thumb_func_start sub_801CFB8
+sub_801CFB8:
+ push {lr}
+ movs r3, 0
+ ldr r0, _0801CFDC
+ ldr r0, [r0]
+ adds r1, r0, 0
+ adds r1, 0xF4
+ movs r2, 0xEF
+_0801CFC6:
+ ldr r0, [r1]
+ cmp r0, 0
+ beq _0801CFCE
+ adds r3, 0x1
+_0801CFCE:
+ adds r1, 0x4
+ subs r2, 0x1
+ cmp r2, 0
+ bge _0801CFC6
+ adds r0, r3, 0
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0801CFDC: .4byte gUnknown_203B244
+ thumb_func_end sub_801CFB8
+
+ thumb_func_start sub_801CFE0
+sub_801CFE0:
+ lsls r0, 24
+ ldr r1, _0801CFF0
+ ldr r1, [r1]
+ lsrs r0, 22
+ adds r1, 0xF4
+ adds r1, r0
+ ldr r0, [r1]
+ bx lr
+ .align 2, 0
+_0801CFF0: .4byte gUnknown_203B244
+ thumb_func_end sub_801CFE0
+
+ thumb_func_start sub_801CFF4
+sub_801CFF4:
+ lsls r0, 24
+ ldr r2, _0801D004
+ ldr r2, [r2]
+ lsrs r0, 22
+ adds r2, 0xF4
+ adds r2, r0
+ str r1, [r2]
+ bx lr
+ .align 2, 0
+_0801D004: .4byte gUnknown_203B244
+ thumb_func_end sub_801CFF4
+
+ thumb_func_start sub_801D008
+sub_801D008:
+ ldr r0, _0801D010
+ ldr r0, [r0]
+ bx lr
+ .align 2, 0
+_0801D010: .4byte gUnknown_203B244
+ thumb_func_end sub_801D008
+
+ thumb_func_start sub_801D014
+sub_801D014:
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ bl ResetUnusedInputStruct
+ movs r0, 0
+ movs r1, 0x1
+ movs r2, 0x1
+ bl sub_800641C
+ ldr r4, _0801D054
+ movs r0, 0x8C
+ lsls r0, 1
+ movs r1, 0x8
+ bl MemoryAlloc
+ adds r2, r0, 0
+ str r2, [r4]
+ ldr r0, _0801D058
+ ldr r0, [r0]
+ str r0, [r2, 0x14]
+ str r5, [r2]
+ cmp r5, 0
+ beq _0801D088
+ movs r3, 0
+ ldr r0, _0801D05C
+ ldr r1, [r0]
+ adds r4, r0, 0
+ cmp r5, r1
+ bne _0801D060
+ strh r3, [r2, 0x4]
+ b _0801D08C
+ .align 2, 0
+_0801D054: .4byte gUnknown_203B250
+_0801D058: .4byte gUnknown_203B254
+_0801D05C: .4byte gRecruitedPokemonRef
+_0801D060:
+ adds r3, 0x1
+ movs r0, 0xCE
+ lsls r0, 1
+ cmp r3, r0
+ bgt _0801D08C
+ ldr r0, _0801D084
+ ldr r2, [r0]
+ lsls r0, r3, 16
+ asrs r0, 16
+ movs r1, 0x58
+ muls r1, r0
+ ldr r0, [r4]
+ adds r0, r1
+ ldr r1, [r2]
+ cmp r1, r0
+ bne _0801D060
+ strh r3, [r2, 0x4]
+ b _0801D08C
+ .align 2, 0
+_0801D084: .4byte gUnknown_203B250
+_0801D088:
+ ldr r0, _0801D0C4
+ strh r0, [r2, 0x4]
+_0801D08C:
+ bl sub_80A5728
+ lsls r0, 16
+ asrs r0, 16
+ bl sub_8002658
+ ldr r4, _0801D0C8
+ ldr r1, [r4]
+ movs r5, 0
+ strb r0, [r1, 0x6]
+ ldr r0, [r4]
+ strb r5, [r0, 0x8]
+ ldr r0, [r4]
+ strb r5, [r0, 0x9]
+ bl sub_808D33C
+ ldr r1, [r4]
+ str r0, [r1, 0xC]
+ strb r5, [r1, 0x7]
+ ldr r0, [r4]
+ ldr r0, [r0]
+ cmp r0, 0
+ beq _0801D0CC
+ movs r0, 0x5
+ bl sub_801D208
+ b _0801D0D2
+ .align 2, 0
+_0801D0C4: .4byte 0x0000019d
+_0801D0C8: .4byte gUnknown_203B250
+_0801D0CC:
+ movs r0, 0
+ bl sub_801D208
+_0801D0D2:
+ movs r0, 0x1
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_801D014
+
+ thumb_func_start sub_801D0DC
+sub_801D0DC:
+ push {lr}
+ ldr r0, _0801D0F4
+ ldr r0, [r0]
+ ldr r0, [r0, 0x10]
+ cmp r0, 0xC
+ bhi _0801D16C
+ lsls r0, 2
+ ldr r1, _0801D0F8
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_0801D0F4: .4byte gUnknown_203B250
+_0801D0F8: .4byte _0801D0FC
+ .align 2, 0
+_0801D0FC:
+ .4byte _0801D130
+ .4byte _0801D130
+ .4byte _0801D16C
+ .4byte _0801D136
+ .4byte _0801D13C
+ .4byte _0801D142
+ .4byte _0801D148
+ .4byte _0801D148
+ .4byte _0801D14E
+ .4byte _0801D154
+ .4byte _0801D15A
+ .4byte _0801D160
+ .4byte _0801D166
+_0801D130:
+ bl sub_801D680
+ b _0801D170
+_0801D136:
+ bl sub_801D760
+ b _0801D170
+_0801D13C:
+ bl sub_801D77C
+ b _0801D170
+_0801D142:
+ bl sub_801D798
+ b _0801D170
+_0801D148:
+ bl sub_801D7CC
+ b _0801D170
+_0801D14E:
+ bl sub_801D808
+ b _0801D170
+_0801D154:
+ bl sub_801D824
+ b _0801D170
+_0801D15A:
+ bl sub_801D840
+ b _0801D170
+_0801D160:
+ bl sub_801D85C
+ b _0801D170
+_0801D166:
+ bl sub_801D878
+ b _0801D170
+_0801D16C:
+ movs r0, 0x3
+ b _0801D172
+_0801D170:
+ movs r0, 0
+_0801D172:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_801D0DC
+
+ thumb_func_start sub_801D178
+sub_801D178:
+ push {r4,lr}
+ ldr r0, _0801D188
+ ldr r4, [r0]
+ ldrb r0, [r4, 0x9]
+ cmp r0, 0
+ beq _0801D18C
+ movs r0, 0x2
+ b _0801D1CC
+ .align 2, 0
+_0801D188: .4byte gUnknown_203B250
+_0801D18C:
+ ldrb r0, [r4, 0x7]
+ cmp r0, 0
+ beq _0801D196
+ movs r0, 0x3
+ b _0801D1CC
+_0801D196:
+ ldrb r0, [r4, 0x8]
+ cmp r0, 0
+ beq _0801D1A0
+ movs r0, 0x1
+ b _0801D1CC
+_0801D1A0:
+ bl sub_808D33C
+ ldr r1, [r4, 0xC]
+ cmp r1, r0
+ bne _0801D1C6
+ movs r0, 0x7
+ bl sub_80A7AE8
+ lsls r0, 16
+ cmp r0, 0
+ blt _0801D1CA
+ bl sub_808D3F8
+ ldrh r0, [r0]
+ lsrs r0, 1
+ movs r1, 0x1
+ ands r0, r1
+ cmp r0, 0
+ bne _0801D1CA
+_0801D1C6:
+ movs r0, 0x4
+ b _0801D1CC
+_0801D1CA:
+ movs r0, 0
+_0801D1CC:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_801D178
+
+ thumb_func_start sub_801D1D4
+sub_801D1D4:
+ ldr r0, _0801D1DC
+ ldr r0, [r0]
+ ldrb r0, [r0, 0x7]
+ bx lr
+ .align 2, 0
+_0801D1DC: .4byte gUnknown_203B250
+ thumb_func_end sub_801D1D4
+
+ thumb_func_start sub_801D1E0
+sub_801D1E0:
+ push {r4,lr}
+ ldr r4, _0801D200
+ ldr r2, [r4]
+ cmp r2, 0
+ beq _0801D1FA
+ ldr r0, _0801D204
+ ldr r1, [r2, 0x14]
+ str r1, [r0]
+ adds r0, r2, 0
+ bl MemoryFree
+ movs r0, 0
+ str r0, [r4]
+_0801D1FA:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0801D200: .4byte gUnknown_203B250
+_0801D204: .4byte gUnknown_203B254
+ thumb_func_end sub_801D1E0
+
+ thumb_func_start sub_801D208
+sub_801D208:
+ push {lr}
+ ldr r1, _0801D21C
+ ldr r1, [r1]
+ str r0, [r1, 0x10]
+ bl sub_801D220
+ bl sub_801D3A8
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0801D21C: .4byte gUnknown_203B250
+ thumb_func_end sub_801D208
+
+ thumb_func_start sub_801D220
+sub_801D220:
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ ldr r4, _0801D248
+ ldr r0, [r4]
+ adds r0, 0xB8
+ bl sub_8006518
+ ldr r0, [r4]
+ ldr r0, [r0, 0x10]
+ cmp r0, 0
+ beq _0801D250
+ cmp r0, 0x1
+ beq _0801D2C0
+ movs r2, 0
+ adds r7, r4, 0
+ ldr r3, _0801D24C
+ b _0801D368
+ .align 2, 0
+_0801D248: .4byte gUnknown_203B250
+_0801D24C: .4byte gUnknown_80DBE7C
+_0801D250:
+ bl sub_801D4C0
+ ldr r0, [r4]
+ ldr r0, [r0]
+ cmp r0, 0
+ beq _0801D290
+ adds r7, r4, 0
+ ldr r0, _0801D288
+ mov r9, r0
+ mov r12, r7
+ ldr r2, _0801D28C
+ mov r8, r2
+ movs r3, 0
+ movs r2, 0x3
+_0801D26C:
+ mov r4, r12
+ ldr r1, [r4]
+ adds r1, r3
+ adds r1, 0xB8
+ mov r0, r8
+ ldm r0!, {r4-r6}
+ stm r1!, {r4-r6}
+ ldm r0!, {r4-r6}
+ stm r1!, {r4-r6}
+ adds r3, 0x18
+ subs r2, 0x1
+ cmp r2, 0
+ bge _0801D26C
+ b _0801D2F6
+ .align 2, 0
+_0801D288: .4byte gUnknown_80DBE98
+_0801D28C: .4byte gUnknown_80DBE7C
+_0801D290:
+ adds r7, r4, 0
+ mov r8, r7
+ ldr r6, _0801D2BC
+ mov r9, r6
+ movs r3, 0
+ movs r2, 0x3
+_0801D29C:
+ mov r0, r8
+ ldr r1, [r0]
+ adds r1, r3
+ adds r1, 0xB8
+ mov r0, r9
+ ldm r0!, {r4-r6}
+ stm r1!, {r4-r6}
+ ldm r0!, {r4-r6}
+ stm r1!, {r4-r6}
+ movs r0, 0x18
+ add r9, r0
+ adds r3, 0x18
+ subs r2, 0x1
+ cmp r2, 0
+ bge _0801D29C
+ b _0801D34E
+ .align 2, 0
+_0801D2BC: .4byte gUnknown_80DBEB0
+_0801D2C0:
+ bl sub_801D4C0
+ ldr r0, [r4]
+ ldr r0, [r0]
+ cmp r0, 0
+ beq _0801D324
+ adds r7, r4, 0
+ ldr r2, _0801D31C
+ mov r9, r2
+ mov r8, r7
+ ldr r3, _0801D320
+ mov r12, r3
+ movs r3, 0
+ movs r2, 0x3
+_0801D2DC:
+ mov r4, r8
+ ldr r1, [r4]
+ adds r1, r3
+ adds r1, 0xB8
+ mov r0, r12
+ ldm r0!, {r4-r6}
+ stm r1!, {r4-r6}
+ ldm r0!, {r4-r6}
+ stm r1!, {r4-r6}
+ adds r3, 0x18
+ subs r2, 0x1
+ cmp r2, 0
+ bge _0801D2DC
+_0801D2F6:
+ ldr r1, [r7]
+ adds r1, 0xB8
+ mov r0, r9
+ ldm r0!, {r2,r5,r6}
+ stm r1!, {r2,r5,r6}
+ ldm r0!, {r3-r5}
+ stm r1!, {r3-r5}
+ ldr r1, [r7]
+ adds r0, r1, 0
+ adds r0, 0xB8
+ adds r1, 0x68
+ bl sub_8012CAC
+ ldr r0, [r7]
+ adds r0, 0xC4
+ movs r1, 0x9
+ strh r1, [r0]
+ b _0801D384
+ .align 2, 0
+_0801D31C: .4byte gUnknown_80DBE98
+_0801D320: .4byte gUnknown_80DBE7C
+_0801D324:
+ adds r7, r4, 0
+ mov r8, r7
+ ldr r6, _0801D364
+ mov r9, r6
+ movs r3, 0
+ movs r2, 0x3
+_0801D330:
+ mov r0, r8
+ ldr r1, [r0]
+ adds r1, r3
+ adds r1, 0xB8
+ mov r0, r9
+ ldm r0!, {r4-r6}
+ stm r1!, {r4-r6}
+ ldm r0!, {r4-r6}
+ stm r1!, {r4-r6}
+ movs r0, 0x18
+ add r9, r0
+ adds r3, 0x18
+ subs r2, 0x1
+ cmp r2, 0
+ bge _0801D330
+_0801D34E:
+ ldr r1, [r7]
+ adds r0, r1, 0
+ adds r0, 0xB8
+ adds r1, 0x68
+ bl sub_8012CAC
+ ldr r0, [r7]
+ adds r0, 0xC4
+ movs r1, 0x8
+ strh r1, [r0]
+ b _0801D384
+ .align 2, 0
+_0801D364: .4byte gUnknown_80DBEB0
+_0801D368:
+ ldr r0, [r7]
+ lsls r1, r2, 1
+ adds r1, r2
+ lsls r1, 3
+ adds r0, r1
+ adds r0, 0xB8
+ adds r1, r3, 0
+ ldm r1!, {r4-r6}
+ stm r0!, {r4-r6}
+ ldm r1!, {r4-r6}
+ stm r0!, {r4-r6}
+ adds r2, 0x1
+ cmp r2, 0x3
+ ble _0801D368
+_0801D384:
+ bl ResetUnusedInputStruct
+ ldr r0, _0801D3A4
+ ldr r0, [r0]
+ adds r0, 0xB8
+ movs r1, 0x1
+ movs r2, 0x1
+ bl sub_800641C
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0801D3A4: .4byte gUnknown_203B250
+ thumb_func_end sub_801D220
+
+ thumb_func_start sub_801D3A8
+sub_801D3A8:
+ push {r4-r6,lr}
+ sub sp, 0x8
+ ldr r1, _0801D3C4
+ ldr r0, [r1]
+ ldr r0, [r0, 0x10]
+ adds r6, r1, 0
+ cmp r0, 0xC
+ bls _0801D3BA
+ b _0801D4B6
+_0801D3BA:
+ lsls r0, 2
+ ldr r1, _0801D3C8
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_0801D3C4: .4byte gUnknown_203B250
+_0801D3C8: .4byte _0801D3CC
+ .align 2, 0
+_0801D3CC:
+ .4byte _0801D400
+ .4byte _0801D400
+ .4byte _0801D4B6
+ .4byte _0801D458
+ .4byte _0801D462
+ .4byte _0801D468
+ .4byte _0801D472
+ .4byte _0801D47A
+ .4byte _0801D482
+ .4byte _0801D490
+ .4byte _0801D49C
+ .4byte _0801D4AA
+ .4byte _0801D4B2
+_0801D400:
+ ldr r0, [r6]
+ ldr r5, [r0]
+ cmp r5, 0
+ beq _0801D438
+ ldr r4, _0801D434
+ adds r0, r4, 0
+ adds r1, r5, 0
+ movs r2, 0x7
+ bl sub_808D9AC
+ ldr r2, [r6]
+ str r4, [r2, 0x18]
+ adds r0, r2, 0
+ adds r0, 0x18
+ adds r1, r2, 0
+ adds r1, 0x68
+ adds r3, r2, 0
+ adds r3, 0xA8
+ ldr r2, [r2, 0x14]
+ str r2, [sp]
+ movs r2, 0
+ str r2, [sp, 0x4]
+ bl sub_8012D60
+ b _0801D4B6
+ .align 2, 0
+_0801D434: .4byte gAvailablePokemonNames
+_0801D438:
+ bl sub_801D894
+ ldr r2, [r6]
+ adds r0, r2, 0
+ adds r0, 0x18
+ adds r1, r2, 0
+ adds r1, 0x68
+ adds r3, r2, 0
+ adds r3, 0xA8
+ ldr r2, [r2, 0x14]
+ str r2, [sp]
+ str r5, [sp, 0x4]
+ movs r2, 0
+ bl sub_8012D60
+ b _0801D4B6
+_0801D458:
+ ldr r0, [r6]
+ ldr r0, [r0]
+ bl sub_80227B8
+ b _0801D4B6
+_0801D462:
+ bl sub_8027074
+ b _0801D4B6
+_0801D468:
+ ldr r0, [r6]
+ ldr r0, [r0]
+ bl sub_8025EF4
+ b _0801D4B6
+_0801D472:
+ movs r0, 0
+ bl sub_80252F0
+ b _0801D4B6
+_0801D47A:
+ movs r0, 0x1
+ bl sub_80252F0
+ b _0801D4B6
+_0801D482:
+ ldr r0, [r6]
+ movs r1, 0x4
+ ldrsh r0, [r0, r1]
+ movs r1, 0x2
+ bl sub_8024458
+ b _0801D4B6
+_0801D490:
+ ldr r0, [r6]
+ movs r1, 0x4
+ ldrsh r0, [r0, r1]
+ bl sub_801BEEC
+ b _0801D4B6
+_0801D49C:
+ ldr r0, [r6]
+ ldrb r0, [r0, 0x6]
+ movs r1, 0x1
+ movs r2, 0x2
+ bl sub_8021774
+ b _0801D4B6
+_0801D4AA:
+ movs r0, 0
+ bl sub_802C860
+ b _0801D4B6
+_0801D4B2:
+ bl sub_801DCC4
+_0801D4B6:
+ add sp, 0x8
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_801D3A8
+
+ thumb_func_start sub_801D4C0
+sub_801D4C0:
+ push {r4-r7,lr}
+ movs r6, 0
+ ldr r4, _0801D554
+ ldr r0, [r4]
+ adds r0, 0xA8
+ movs r1, 0
+ movs r2, 0x10
+ bl MemoryFill16
+ ldr r0, [r4]
+ ldrb r0, [r0, 0x6]
+ cmp r0, 0
+ bne _0801D568
+ bl sub_8096E2C
+ lsls r0, 24
+ cmp r0, 0
+ beq _0801D534
+ ldr r1, [r4]
+ movs r0, 0x2
+ str r0, [r1, 0x6C]
+ ldr r0, _0801D558
+ str r0, [r1, 0x68]
+ bl sub_8090A34
+ cmp r0, 0
+ bne _0801D4FE
+ ldr r0, [r4]
+ adds r0, 0xA8
+ movs r1, 0x1
+ strh r1, [r0]
+_0801D4FE:
+ ldr r1, [r4]
+ ldr r0, _0801D55C
+ str r0, [r1, 0x70]
+ movs r0, 0x4
+ str r0, [r1, 0x74]
+ movs r6, 0x2
+ movs r0, 0x2
+ bl sub_80023E4
+ lsls r0, 24
+ cmp r0, 0
+ beq _0801D534
+ ldr r1, [r4]
+ ldr r0, _0801D560
+ str r0, [r1, 0x78]
+ movs r0, 0x9
+ str r0, [r1, 0x7C]
+ bl sub_802C83C
+ lsls r0, 24
+ cmp r0, 0
+ beq _0801D532
+ ldr r0, [r4]
+ adds r0, 0xAC
+ movs r1, 0x1
+ strh r1, [r0]
+_0801D532:
+ movs r6, 0x3
+_0801D534:
+ ldr r4, _0801D554
+ ldr r2, [r4]
+ lsls r3, r6, 3
+ adds r0, r2, 0
+ adds r0, 0x68
+ adds r0, r3
+ ldr r1, _0801D564
+ str r1, [r0]
+ adds r2, 0x6C
+ adds r2, r3
+ movs r0, 0xB
+ str r0, [r2]
+ adds r6, 0x1
+ adds r7, r4, 0
+ b _0801D5E6
+ .align 2, 0
+_0801D554: .4byte gUnknown_203B250
+_0801D558: .4byte gMenuItems
+_0801D55C: .4byte gMenuTeam
+_0801D560: .4byte gMenuJobList
+_0801D564: .4byte gMenuOthers
+_0801D568:
+ ldr r0, _0801D63C
+ ldr r1, _0801D640
+ bl strcpy
+ bl sub_8096E2C
+ lsls r0, 24
+ cmp r0, 0
+ beq _0801D5B6
+ ldr r1, [r4]
+ ldr r0, _0801D644
+ ldr r0, [r0]
+ str r0, [r1, 0x68]
+ movs r0, 0x5
+ str r0, [r1, 0x6C]
+ movs r0, 0x4
+ bl sub_8024108
+ lsls r0, 24
+ cmp r0, 0
+ beq _0801D59A
+ ldr r0, [r4]
+ adds r0, 0xA8
+ movs r1, 0x1
+ strh r1, [r0]
+_0801D59A:
+ movs r6, 0x1
+ ldr r1, [r4]
+ movs r0, 0x2
+ str r0, [r1, 0x74]
+ ldr r0, _0801D648
+ str r0, [r1, 0x70]
+ bl sub_8090A34
+ cmp r0, 0
+ bne _0801D5B4
+ ldr r0, [r4]
+ adds r0, 0xAA
+ strh r6, [r0]
+_0801D5B4:
+ movs r6, 0x2
+_0801D5B6:
+ ldr r5, _0801D64C
+ ldr r1, [r5]
+ lsls r2, r6, 3
+ adds r3, r1, 0
+ adds r3, 0x68
+ adds r4, r3, r2
+ ldr r0, _0801D650
+ ldr r0, [r0]
+ str r0, [r4]
+ adds r1, 0x6C
+ adds r2, r1, r2
+ movs r0, 0x8
+ str r0, [r2]
+ adds r6, 0x1
+ lsls r2, r6, 3
+ adds r3, r2
+ ldr r0, _0801D654
+ ldr r0, [r0]
+ str r0, [r3]
+ adds r1, r2
+ movs r0, 0xA
+ str r0, [r1]
+ adds r6, 0x1
+ adds r7, r5, 0
+_0801D5E6:
+ ldr r4, [r7]
+ lsls r2, r6, 3
+ adds r0, r4, 0
+ adds r0, 0x68
+ adds r0, r2
+ movs r1, 0
+ str r1, [r0]
+ adds r1, r4, 0
+ adds r1, 0x6C
+ adds r2, r1, r2
+ movs r0, 0x1
+ str r0, [r2]
+ movs r3, 0
+ cmp r3, r6
+ bge _0801D622
+ adds r5, r4, 0
+ adds r4, 0xA8
+ adds r2, r1, 0
+_0801D60A:
+ ldrh r0, [r4]
+ cmp r0, 0
+ bne _0801D618
+ ldr r1, [r2]
+ ldr r0, [r5, 0x14]
+ cmp r1, r0
+ beq _0801D67A
+_0801D618:
+ adds r4, 0x2
+ adds r2, 0x8
+ adds r3, 0x1
+ cmp r3, r6
+ blt _0801D60A
+_0801D622:
+ movs r3, 0
+ cmp r3, r6
+ bge _0801D67A
+ ldr r1, [r7]
+ adds r0, r1, 0
+ adds r0, 0xA8
+ ldrh r0, [r0]
+ cmp r0, 0
+ bne _0801D658
+ ldr r0, [r1, 0x6C]
+ str r0, [r1, 0x14]
+ b _0801D67A
+ .align 2, 0
+_0801D63C: .4byte gAvailablePokemonNames
+_0801D640: .4byte gUnknown_80DBF34
+_0801D644: .4byte gUnknown_80D49A8
+_0801D648: .4byte gMenuItems
+_0801D64C: .4byte gUnknown_203B250
+_0801D650: .4byte gUnknown_80D4970
+_0801D654: .4byte gUnknown_80D49B4
+_0801D658:
+ adds r3, 0x1
+ cmp r3, r6
+ bge _0801D67A
+ ldr r2, [r7]
+ lsls r0, r3, 1
+ adds r1, r2, 0
+ adds r1, 0xA8
+ adds r1, r0
+ ldrh r0, [r1]
+ cmp r0, 0
+ bne _0801D658
+ lsls r0, r3, 3
+ adds r1, r2, 0
+ adds r1, 0x6C
+ adds r1, r0
+ ldr r0, [r1]
+ str r0, [r2, 0x14]
+_0801D67A:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_801D4C0
+
+ .align 2,0
diff --git a/asm/unk_menu_203B364.s b/asm/unk_menu_203B364.s
index d1a1cd4..40e9de2 100644
--- a/asm/unk_menu_203B364.s
+++ b/asm/unk_menu_203B364.s
@@ -5,8 +5,8 @@
.text
- thumb_func_start sub_8038630
-sub_8038630:
+ thumb_func_start UpdateSaveMenu
+UpdateSaveMenu:
push {r4-r6,lr}
sub sp, 0x18
ldr r5, _080386A8
@@ -31,7 +31,7 @@ _0803864C:
bl sub_8011C1C
adds r1, r0, 0
add r0, sp, 0x10
- bl sub_801203C
+ bl WriteSavetoPak
adds r4, r0, 0
bl sub_8014114
cmp r4, 0
@@ -256,7 +256,7 @@ _08038826:
pop {r4-r6}
pop {r1}
bx r1
- thumb_func_end sub_8038630
+ thumb_func_end UpdateSaveMenu
thumb_func_start sub_8038830
sub_8038830:
diff --git a/asm/wonder_mail.s b/asm/wonder_mail.s
index af15e98..2955f9f 100644
--- a/asm/wonder_mail.s
+++ b/asm/wonder_mail.s
@@ -768,7 +768,7 @@ _08028748:
b _0802878A
.align 2, 0
_08028760: .4byte 0x00000544
-_08028764: .4byte gUnknown_203B45C
+_08028764: .4byte gRecruitedPokemonRef
_08028768: .4byte gUnknown_203B2C0
_0802876C:
adds r1, r2, 0
diff --git a/asm/wonder_mail_1.s b/asm/wonder_mail_1.s
index 72c4401..a982ae8 100644
--- a/asm/wonder_mail_1.s
+++ b/asm/wonder_mail_1.s
@@ -591,7 +591,7 @@ sub_802AB98:
movs r4, 0x98
lsls r4, 1
adds r1, r4, 0
- bl sub_808D8E0
+ bl CopyYellowSpeciesNametoBuffer
adds r0, r4, 0
bl GetMonSpecies
adds r1, r0, 0
diff --git a/asm/wonder_mail_3.s b/asm/wonder_mail_3.s
index 44059a1..718d084 100644
--- a/asm/wonder_mail_3.s
+++ b/asm/wonder_mail_3.s
@@ -1438,14 +1438,14 @@ _0802DCE0:
ldr r1, [r1, 0x34]
movs r2, 0xC
ldrsh r1, [r1, r2]
- bl sub_808D8E0
+ bl CopyYellowSpeciesNametoBuffer
ldr r4, _0802DD64
ldr r0, [r5]
ldr r0, [r0, 0x34]
movs r2, 0xC
ldrsh r1, [r0, r2]
adds r0, r4, 0
- bl sub_808D8E0
+ bl CopyYellowSpeciesNametoBuffer
ldr r0, [r5]
ldr r0, [r0, 0x34]
movs r1, 0xC
@@ -2628,7 +2628,7 @@ _0802E658:
.4byte _0802E6B4
_0802E678:
ldr r0, _0802E6AC
- bl sub_8011988
+ bl PlaySound
ldr r4, _0802E6B0
ldr r0, [r4]
ldrb r0, [r0, 0x8]
@@ -2654,7 +2654,7 @@ _0802E6B4:
b _0802E732
_0802E6BC:
ldr r0, _0802E6F4
- bl sub_8011988
+ bl PlaySound
ldr r4, _0802E6F8
ldr r0, [r4]
ldrb r0, [r0, 0x8]
@@ -3582,7 +3582,7 @@ _0802EE00:
b _0802EE96
_0802EE06:
ldr r0, _0802EE28
- bl sub_8011988
+ bl PlaySound
ldr r4, _0802EE2C
ldr r0, [r4]
ldrb r0, [r0, 0x8]
@@ -4348,7 +4348,7 @@ _0802F3E0:
b _0802F6E4
_0802F3E8:
movs r0, 0xCB
- bl sub_8011988
+ bl PlaySound
ldr r0, _0802F414
ldr r0, [r0]
ldr r0, [r0, 0x10]
@@ -4450,7 +4450,7 @@ _0802F4BC:
ldrb r0, [r0]
bl UnlockFriendArea
movs r0, 0xCE
- bl sub_8011988
+ bl PlaySound
ldr r0, _0802F4E8
_0802F4DA:
ldr r3, _0802F4EC
@@ -4468,7 +4468,7 @@ _0802F4F0:
ldrb r0, [r0]
bl UnlockFriendArea
movs r0, 0xCE
- bl sub_8011988
+ bl PlaySound
ldr r0, _0802F518
ldr r3, _0802F51C
movs r1, 0
@@ -4630,7 +4630,7 @@ _0802F644:
ldr r0, [r0, 0x24]
bl AddToTeamRankPts
movs r0, 0xCB
- bl sub_8011988
+ bl PlaySound
ldr r4, [r5]
bl GetRescueTeamRank
ldrb r1, [r4, 0x9]
@@ -4665,7 +4665,7 @@ _0802F69C: .4byte gUnknown_80E0670
_0802F6A0: .4byte 0x00000101
_0802F6A4:
movs r0, 0xC9
- bl sub_8011988
+ bl PlaySound
ldr r0, _0802F6EC
ldr r1, [r0]
movs r0, 0x9
@@ -5493,4405 +5493,4 @@ _0802FD0E:
bx r1
thumb_func_end sub_802FCF0
- thumb_func_start sub_802FD14
-sub_802FD14:
- push {r4-r6,lr}
- adds r5, r0, 0
- bl ResetUnusedInputStruct
- movs r0, 0
- movs r1, 0x1
- movs r2, 0x1
- bl sub_800641C
- ldr r4, _0802FD48
- movs r0, 0xCC
- movs r1, 0x8
- bl MemoryAlloc
- str r0, [r4]
- ldr r1, _0802FD4C
- strh r1, [r0, 0x10]
- str r5, [r0]
- cmp r5, 0x7
- bhi _0802FDC0
- lsls r0, r5, 2
- ldr r1, _0802FD50
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0802FD48: .4byte gUnknown_203B318
-_0802FD4C: .4byte 0x0000ffff
-_0802FD50: .4byte _0802FD54
- .align 2, 0
-_0802FD54:
- .4byte _0802FD74
- .4byte _0802FD84
- .4byte _0802FD94
- .4byte _0802FDA4
- .4byte _0802FDB4
- .4byte _0802FDB8
- .4byte _0802FDBC
- .4byte _0802FDC0
-_0802FD74:
- movs r6, 0
- ldr r1, _0802FD80
- ldr r0, [r1]
- str r6, [r0, 0x4]
- b _0802FDCC
- .align 2, 0
-_0802FD80: .4byte gUnknown_203B318
-_0802FD84:
- movs r6, 0x7
- ldr r2, _0802FD90
- ldr r1, [r2]
- movs r0, 0
- b _0802FDC8
- .align 2, 0
-_0802FD90: .4byte gUnknown_203B318
-_0802FD94:
- movs r6, 0x6
- ldr r2, _0802FDA0
- ldr r1, [r2]
- movs r0, 0
- b _0802FDC8
- .align 2, 0
-_0802FDA0: .4byte gUnknown_203B318
-_0802FDA4:
- movs r6, 0x8
- ldr r2, _0802FDB0
- ldr r1, [r2]
- movs r0, 0
- b _0802FDC8
- .align 2, 0
-_0802FDB0: .4byte gUnknown_203B318
-_0802FDB4:
- movs r6, 0
- b _0802FDC2
-_0802FDB8:
- movs r6, 0x7
- b _0802FDC2
-_0802FDBC:
- movs r6, 0x6
- b _0802FDC2
-_0802FDC0:
- movs r6, 0x8
-_0802FDC2:
- ldr r2, _0802FDD8
- ldr r1, [r2]
- movs r0, 0x1
-_0802FDC8:
- str r0, [r1, 0x4]
- adds r1, r2, 0
-_0802FDCC:
- ldr r1, [r1]
- ldr r0, [r1, 0x4]
- cmp r0, 0x1
- bne _0802FDDC
- movs r0, 0
- b _0802FDE0
- .align 2, 0
-_0802FDD8: .4byte gUnknown_203B318
-_0802FDDC:
- adds r0, r1, 0
- adds r0, 0x58
-_0802FDE0:
- str r0, [r1, 0x68]
- ldr r0, _0802FE48
- ldr r5, _0802FE4C
- adds r1, r5, 0
- bl sub_808D8E0
- ldr r4, _0802FE50
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_808D8E0
- adds r0, r5, 0
- bl GetMonSpecies
- adds r1, r0, 0
- subs r4, 0x50
- adds r0, r4, 0
- bl strcpy
- adds r0, r5, 0
- bl GetDialogueSpriteDataPtr
- ldr r3, _0802FE54
- ldr r1, [r3]
- str r0, [r1, 0x58]
- ldr r0, [r0, 0x4]
- str r0, [r1, 0x5C]
- adds r1, 0x64
- movs r2, 0
- strb r2, [r1]
- ldr r0, [r3]
- adds r0, 0x65
- strb r2, [r0]
- ldr r0, [r3]
- adds r0, 0x66
- strb r2, [r0]
- ldr r1, [r3]
- adds r2, r1, 0
- adds r2, 0x60
- movs r0, 0x2
- strh r0, [r2]
- adds r1, 0x62
- movs r0, 0x8
- strh r0, [r1]
- adds r0, r6, 0
- bl sub_802FF04
- movs r0, 0x1
- pop {r4-r6}
- pop {r1}
- bx r1
- .align 2, 0
-_0802FE48: .4byte gUnknown_202E5D8
-_0802FE4C: .4byte 0x00000141
-_0802FE50: .4byte gUnknown_202E1C8
-_0802FE54: .4byte gUnknown_203B318
- thumb_func_end sub_802FD14
-
- thumb_func_start sub_802FE58
-sub_802FE58:
- push {lr}
- ldr r0, _0802FE70
- ldr r0, [r0]
- ldr r0, [r0, 0x8]
- cmp r0, 0xD
- bhi _0802FEC6
- lsls r0, 2
- ldr r1, _0802FE74
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0802FE70: .4byte gUnknown_203B318
-_0802FE74: .4byte _0802FE78
- .align 2, 0
-_0802FE78:
- .4byte _0802FEB0
- .4byte _0802FEB0
- .4byte _0802FEC6
- .4byte _0802FEC6
- .4byte _0802FEB6
- .4byte _0802FEC6
- .4byte _0802FEC6
- .4byte _0802FEC6
- .4byte _0802FEC6
- .4byte _0802FEC6
- .4byte _0802FEC6
- .4byte _0802FEBC
- .4byte _0802FEC6
- .4byte _0802FEC2
-_0802FEB0:
- bl sub_8030208
- b _0802FECA
-_0802FEB6:
- bl sub_8030258
- b _0802FECA
-_0802FEBC:
- bl sub_80302A8
- b _0802FECA
-_0802FEC2:
- movs r0, 0x3
- b _0802FECC
-_0802FEC6:
- bl sub_80302C4
-_0802FECA:
- movs r0, 0
-_0802FECC:
- pop {r1}
- bx r1
- thumb_func_end sub_802FE58
-
- thumb_func_start sub_802FED0
-sub_802FED0:
- ldr r0, _0802FEDC
- ldr r0, [r0]
- movs r1, 0x10
- ldrsh r0, [r0, r1]
- bx lr
- .align 2, 0
-_0802FEDC: .4byte gUnknown_203B318
- thumb_func_end sub_802FED0
-
- thumb_func_start sub_802FEE0
-sub_802FEE0:
- push {r4,lr}
- ldr r4, _0802FF00
- ldr r0, [r4]
- cmp r0, 0
- beq _0802FEFA
- ldr r0, [r0, 0x58]
- bl CloseFile
- ldr r0, [r4]
- bl MemoryFree
- movs r0, 0
- str r0, [r4]
-_0802FEFA:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0802FF00: .4byte gUnknown_203B318
- thumb_func_end sub_802FEE0
-
- thumb_func_start sub_802FF04
-sub_802FF04:
- push {lr}
- ldr r1, _0802FF18
- ldr r1, [r1]
- str r0, [r1, 0x8]
- bl sub_802FF1C
- bl sub_802FF88
- pop {r0}
- bx r0
- .align 2, 0
-_0802FF18: .4byte gUnknown_203B318
- thumb_func_end sub_802FF04
-
- thumb_func_start sub_802FF1C
-sub_802FF1C:
- push {r4-r7,lr}
- ldr r4, _0802FF3C
- ldr r0, [r4]
- adds r0, 0x6C
- bl sub_8006518
- ldr r0, [r4]
- ldr r0, [r0, 0x8]
- cmp r0, 0x4
- beq _0802FF44
- cmp r0, 0x4
- bgt _0802FF40
- cmp r0, 0
- beq _0802FF44
- b _0802FF68
- .align 2, 0
-_0802FF3C: .4byte gUnknown_203B318
-_0802FF40:
- cmp r0, 0xD
- bne _0802FF68
-_0802FF44:
- ldr r0, _0802FF80
- mov r12, r0
- ldr r4, _0802FF84
- movs r3, 0
- movs r2, 0x3
-_0802FF4E:
- mov r5, r12
- ldr r1, [r5]
- adds r1, r3
- adds r1, 0x6C
- 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 _0802FF4E
-_0802FF68:
- bl ResetUnusedInputStruct
- ldr r0, _0802FF80
- ldr r0, [r0]
- adds r0, 0x6C
- movs r1, 0x1
- movs r2, 0x1
- bl sub_800641C
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0802FF80: .4byte gUnknown_203B318
-_0802FF84: .4byte gUnknown_80E0760
- thumb_func_end sub_802FF1C
-
- thumb_func_start sub_802FF88
-sub_802FF88:
- push {r4,r5,lr}
- sub sp, 0x18
- ldr r1, _0802FFA4
- ldr r0, [r1]
- ldr r0, [r0, 0x8]
- adds r5, r1, 0
- cmp r0, 0xD
- bls _0802FF9A
- b _080301A0
-_0802FF9A:
- lsls r0, 2
- ldr r1, _0802FFA8
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0802FFA4: .4byte gUnknown_203B318
-_0802FFA8: .4byte _0802FFAC
- .align 2, 0
-_0802FFAC:
- .4byte _0802FFE4
- .4byte _08030000
- .4byte _08030038
- .4byte _08030050
- .4byte _08030068
- .4byte _08030074
- .4byte _080300DC
- .4byte _080300C4
- .4byte _080300F4
- .4byte _0803010C
- .4byte _08030148
- .4byte _08030174
- .4byte _08030180
- .4byte _080301A0
-_0802FFE4:
- bl sub_80301B0
- ldr r2, _0802FFF8
- ldr r0, _0802FFFC
- ldr r5, [r0]
- ldr r1, [r5, 0x4]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- b _0803000E
- .align 2, 0
-_0802FFF8: .4byte gMakuhitaDialogue
-_0802FFFC: .4byte gUnknown_203B318
-_08030000:
- ldr r2, _08030034
- ldr r5, [r5]
- ldr r1, [r5, 0x4]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r2, 0x4
-_0803000E:
- adds r0, r2
- ldr r0, [r0]
- ldr r2, [r5, 0x14]
- adds r3, r5, 0
- adds r3, 0x18
- movs r4, 0
- str r4, [sp]
- movs r1, 0x4
- str r1, [sp, 0x4]
- str r4, [sp, 0x8]
- ldr r1, [r5, 0x68]
- str r1, [sp, 0xC]
- movs r1, 0xC
- str r1, [sp, 0x10]
- movs r1, 0
- bl sub_8014248
- b _080301A0
- .align 2, 0
-_08030034: .4byte gMakuhitaDialogue
-_08030038:
- ldr r3, [r5]
- movs r0, 0xD
- str r0, [r3, 0xC]
- ldr r2, _0803004C
- ldr r1, [r3, 0x4]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r2, 0x8
- b _0803015A
- .align 2, 0
-_0803004C: .4byte gMakuhitaDialogue
-_08030050:
- ldr r3, [r5]
- movs r0, 0x4
- str r0, [r3, 0xC]
- ldr r2, _08030064
- ldr r1, [r3, 0x4]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r2, 0xC
- b _0803015A
- .align 2, 0
-_08030064: .4byte gMakuhitaDialogue
-_08030068:
- movs r0, 0x3
- movs r1, 0
- movs r2, 0xA
- bl sub_80302E8
- b _080301A0
-_08030074:
- ldr r1, [r5]
- movs r0, 0xD
- str r0, [r1, 0xC]
- movs r2, 0x10
- ldrsh r0, [r1, r2]
- bl sub_80A2740
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _080300B4
- ldr r1, [sp, 0x14]
- ands r1, r2
- orrs r1, r0
- ldr r0, _080300B8
- ands r1, r0
- movs r0, 0x80
- lsls r0, 1
- orrs r1, r0
- str r1, [sp, 0x14]
- ldr r0, _080300BC
- add r1, sp, 0x14
- bl sub_8090208
- ldr r2, _080300C0
- ldr r3, [r5]
- ldr r1, [r3, 0x4]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r2, 0x10
- b _0803015A
- .align 2, 0
-_080300B4: .4byte 0xffffff00
-_080300B8: .4byte 0xffff00ff
-_080300BC: .4byte gAvailablePokemonNames
-_080300C0: .4byte gMakuhitaDialogue
-_080300C4:
- ldr r3, [r5]
- movs r0, 0xD
- str r0, [r3, 0xC]
- ldr r2, _080300D8
- ldr r1, [r3, 0x4]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r2, 0x18
- b _0803015A
- .align 2, 0
-_080300D8: .4byte gMakuhitaDialogue
-_080300DC:
- ldr r3, [r5]
- movs r0, 0xD
- str r0, [r3, 0xC]
- ldr r2, _080300F0
- ldr r1, [r3, 0x4]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r2, 0x14
- b _0803015A
- .align 2, 0
-_080300F0: .4byte gMakuhitaDialogue
-_080300F4:
- ldr r3, [r5]
- movs r0, 0x9
- str r0, [r3, 0xC]
- ldr r2, _08030108
- ldr r1, [r3, 0x4]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r2, 0x1C
- b _0803015A
- .align 2, 0
-_08030108: .4byte gMakuhitaDialogue
-_0803010C:
- ldr r4, _08030138
- bl sub_808D33C
- adds r1, r0, 0
- adds r0, r4, 0
- movs r2, 0x6
- bl sub_808D9AC
- ldr r0, _0803013C
- ldr r1, [r0]
- movs r0, 0xB
- str r0, [r1, 0xC]
- movs r0, 0xCB
- bl sub_8011988
- ldr r0, _08030140
- ldr r3, _08030144
- movs r1, 0
- movs r2, 0
- bl sub_80141B4
- b _080301A0
- .align 2, 0
-_08030138: .4byte gPlayerName
-_0803013C: .4byte gUnknown_203B318
-_08030140: .4byte gUnknown_80E0778
-_08030144: .4byte 0x00000101
-_08030148:
- ldr r3, [r5]
- movs r0, 0xD
- str r0, [r3, 0xC]
- ldr r2, _0803016C
- ldr r1, [r3, 0x4]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r2, 0x20
-_0803015A:
- adds r0, r2
- ldr r0, [r0]
- ldr r2, [r3, 0x68]
- ldr r3, _08030170
- movs r1, 0
- bl sub_80141B4
- b _080301A0
- .align 2, 0
-_0803016C: .4byte gMakuhitaDialogue
-_08030170: .4byte 0x0000010d
-_08030174:
- movs r0, 0x1
- movs r1, 0x49
- movs r2, 0x1
- bl sub_801B60C
- b _080301A0
-_08030180:
- ldr r3, [r5]
- movs r0, 0x1
- str r0, [r3, 0xC]
- ldr r2, _080301A8
- ldr r1, [r3, 0x4]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r2, 0x24
- adds r0, r2
- ldr r0, [r0]
- ldr r2, [r3, 0x68]
- ldr r3, _080301AC
- movs r1, 0
- bl sub_80141B4
-_080301A0:
- add sp, 0x18
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080301A8: .4byte gMakuhitaDialogue
-_080301AC: .4byte 0x0000010d
- thumb_func_end sub_802FF88
-
- thumb_func_start sub_80301B0
-sub_80301B0:
- push {r4,lr}
- ldr r4, _080301F8
- ldr r1, [r4]
- movs r2, 0x2
- str r2, [r1, 0x14]
- ldr r0, _080301FC
- str r0, [r1, 0x18]
- str r2, [r1, 0x1C]
- bl sub_80306A4
- lsls r0, 24
- cmp r0, 0
- beq _080301D6
- ldr r0, [r4]
- movs r1, 0x1
- negs r1, r1
- str r1, [r0, 0x1C]
- movs r1, 0x1
- str r1, [r0, 0x14]
-_080301D6:
- ldr r1, [r4]
- movs r2, 0x1
- ldr r0, _08030200
- ldr r0, [r0]
- str r0, [r1, 0x20]
- movs r0, 0x3
- str r0, [r1, 0x24]
- ldr r0, _08030204
- ldr r0, [r0]
- str r0, [r1, 0x28]
- str r2, [r1, 0x2C]
- movs r0, 0
- str r0, [r1, 0x30]
- str r2, [r1, 0x34]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080301F8: .4byte gUnknown_203B318
-_080301FC: .4byte gUnknown_80E07D8
-_08030200: .4byte gUnknown_80D4970
-_08030204: .4byte gUnknown_80D4934
- thumb_func_end sub_80301B0
-
- thumb_func_start sub_8030208
-sub_8030208:
- push {lr}
- sub sp, 0x4
- mov r0, sp
- bl sub_80144A4
- cmp r0, 0
- bne _08030250
- ldr r0, _08030230
- ldr r1, [r0]
- ldr r0, [sp]
- str r0, [r1, 0x14]
- ldr r0, [sp]
- cmp r0, 0x2
- beq _0803023A
- cmp r0, 0x2
- bgt _08030234
- cmp r0, 0x1
- beq _0803024A
- b _08030250
- .align 2, 0
-_08030230: .4byte gUnknown_203B318
-_08030234:
- cmp r0, 0x3
- beq _08030242
- b _08030250
-_0803023A:
- movs r0, 0x3
- bl sub_802FF04
- b _08030250
-_08030242:
- movs r0, 0xC
- bl sub_802FF04
- b _08030250
-_0803024A:
- movs r0, 0x2
- bl sub_802FF04
-_08030250:
- add sp, 0x4
- pop {r0}
- bx r0
- thumb_func_end sub_8030208
-
- thumb_func_start sub_8030258
-sub_8030258:
- push {lr}
- movs r0, 0x1
- bl sub_80303AC
- cmp r0, 0x2
- beq _08030288
- cmp r0, 0x2
- bcc _0803029A
- cmp r0, 0x3
- bne _0803029A
- bl sub_8030418
- ldr r1, _08030284
- ldr r1, [r1]
- strh r0, [r1, 0x10]
- bl sub_8030480
- movs r0, 0x5
- bl sub_802FF04
- b _0803029A
- .align 2, 0
-_08030284: .4byte gUnknown_203B318
-_08030288:
- bl sub_8030480
- ldr r0, _080302A0
- ldr r1, [r0]
- ldr r0, _080302A4
- strh r0, [r1, 0x10]
- movs r0, 0x1
- bl sub_802FF04
-_0803029A:
- pop {r0}
- bx r0
- .align 2, 0
-_080302A0: .4byte gUnknown_203B318
-_080302A4: .4byte 0x0000ffff
- thumb_func_end sub_8030258
-
- thumb_func_start sub_80302A8
-sub_80302A8:
- push {lr}
- bl sub_801B6AC
- cmp r0, 0x1
- bls _080302C0
- cmp r0, 0x3
- bhi _080302C0
- bl sub_801B72C
- movs r0, 0xA
- bl sub_802FF04
-_080302C0:
- pop {r0}
- bx r0
- thumb_func_end sub_80302A8
-
- thumb_func_start sub_80302C4
-sub_80302C4:
- push {lr}
- sub sp, 0x4
- mov r0, sp
- bl sub_80144A4
- cmp r0, 0
- bne _080302DC
- ldr r0, _080302E4
- ldr r0, [r0]
- ldr r0, [r0, 0xC]
- bl sub_802FF04
-_080302DC:
- add sp, 0x4
- pop {r0}
- bx r0
- .align 2, 0
-_080302E4: .4byte gUnknown_203B318
- thumb_func_end sub_80302C4
-
- thumb_func_start sub_80302E8
-sub_80302E8:
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- adds r5, r0, 0
- adds r6, r1, 0
- mov r8, r2
- bl sub_80306A4
- lsls r0, 24
- cmp r0, 0
- beq _08030302
- movs r0, 0
- b _0803039A
-_08030302:
- ldr r4, _080303A4
- ldr r0, [r4]
- cmp r0, 0
- bne _08030314
- movs r0, 0xD0
- movs r1, 0x8
- bl MemoryAlloc
- str r0, [r4]
-_08030314:
- ldr r0, [r4]
- str r5, [r0, 0x64]
- lsls r1, r5, 1
- adds r1, r5
- lsls r1, 3
- adds r1, 0x6C
- adds r1, r0, r1
- str r1, [r0, 0x68]
- adds r0, 0x6C
- bl sub_8006518
- ldr r1, [r4]
- ldr r2, [r1, 0x64]
- lsls r0, r2, 1
- adds r0, r2
- lsls r0, 3
- adds r1, r0
- adds r1, 0x6C
- ldr r0, _080303A8
- ldm r0!, {r2,r3,r7}
- stm r1!, {r2,r3,r7}
- ldm r0!, {r2,r3,r7}
- stm r1!, {r2,r3,r7}
- ldr r2, [r4]
- ldr r1, [r2, 0x68]
- adds r0, r2, 0
- adds r0, 0xCC
- str r0, [r1, 0x14]
- cmp r6, 0
- beq _08030362
- ldr r1, [r2, 0x64]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 3
- adds r1, r2, 0
- adds r1, 0x74
- adds r1, r0
- ldr r0, [r6]
- str r0, [r1]
-_08030362:
- ldr r0, [r4]
- ldr r0, [r0, 0x68]
- mov r1, r8
- bl sub_8012D08
- bl ResetUnusedInputStruct
- ldr r0, [r4]
- adds r0, 0x6C
- movs r1, 0x1
- movs r2, 0x1
- bl sub_800641C
- ldr r4, [r4]
- adds r4, 0x30
- bl sub_8030668
- adds r1, r0, 0
- adds r0, r4, 0
- mov r2, r8
- adds r3, r5, 0
- bl sub_8013818
- bl sub_80304C8
- bl sub_803053C
- movs r0, 0x1
-_0803039A:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_080303A4: .4byte gUnknown_203B31C
-_080303A8: .4byte gUnknown_80E0804
- thumb_func_end sub_80302E8
-
- thumb_func_start sub_80303AC
-sub_80303AC:
- push {r4,lr}
- lsls r0, 24
- cmp r0, 0
- bne _080303C8
- ldr r0, _080303C4
- ldr r0, [r0]
- adds r0, 0x30
- bl sub_8013660
- movs r0, 0
- b _08030410
- .align 2, 0
-_080303C4: .4byte gUnknown_203B31C
-_080303C8:
- ldr r4, _080303E4
- ldr r0, [r4]
- adds r0, 0x30
- bl GetKeyPress
- cmp r0, 0x1
- beq _080303E8
- cmp r0, 0x2
- bne _080303F2
- movs r0, 0x1
- bl PlayMenuSoundEffect
- movs r0, 0x2
- b _08030410
- .align 2, 0
-_080303E4: .4byte gUnknown_203B31C
-_080303E8:
- movs r0, 0
- bl PlayMenuSoundEffect
- movs r0, 0x3
- b _08030410
-_080303F2:
- ldr r0, [r4]
- adds r0, 0x30
- movs r1, 0x1
- bl sub_80138B8
- lsls r0, 24
- cmp r0, 0
- bne _08030406
- movs r0, 0
- b _08030410
-_08030406:
- bl sub_80304C8
- bl sub_803053C
- movs r0, 0x1
-_08030410:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_80303AC
-
- thumb_func_start sub_8030418
-sub_8030418:
- ldr r0, _08030440
- ldr r2, [r0]
- adds r0, r2, 0
- adds r0, 0x4E
- 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, 0x48
- movs r3, 0
- ldrsh r1, [r1, r3]
- adds r0, r1
- lsls r0, 1
- adds r0, r2, r0
- movs r1, 0
- ldrsh r0, [r0, r1]
- bx lr
- .align 2, 0
-_08030440: .4byte gUnknown_203B31C
- thumb_func_end sub_8030418
-
- thumb_func_start sub_8030444
-sub_8030444:
- push {r4,r5,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- bl sub_8030668
- adds r1, r0, 0
- ldr r5, _0803047C
- ldr r0, [r5]
- adds r2, r0, 0
- adds r2, 0x52
- strh r1, [r2]
- adds r0, 0x30
- bl sub_8013984
- bl sub_80304C8
- bl sub_803053C
- cmp r4, 0
- beq _08030476
- ldr r0, [r5]
- adds r0, 0x30
- bl AddMenuCursorSprite
-_08030476:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0803047C: .4byte gUnknown_203B31C
- thumb_func_end sub_8030444
-
- thumb_func_start sub_8030480
-sub_8030480:
- push {r4,r5,lr}
- ldr r4, _080304C0
- ldr r2, [r4]
- cmp r2, 0
- beq _080304BA
- ldr r0, [r2, 0x64]
- lsls r1, r0, 1
- adds r1, r0
- lsls r1, 3
- adds r1, r2, r1
- adds r1, 0x6C
- ldr r0, _080304C4
- 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, 0x6C
- movs r1, 0x1
- movs r2, 0x1
- bl sub_800641C
- ldr r0, [r4]
- bl MemoryFree
- movs r0, 0
- str r0, [r4]
-_080304BA:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080304C0: .4byte gUnknown_203B31C
-_080304C4: .4byte gUnknown_80E07EC
- thumb_func_end sub_8030480
-
- thumb_func_start sub_80304C8
-sub_80304C8:
- push {r4,lr}
- ldr r4, _08030538
- ldr r0, [r4]
- adds r0, 0xCC
- movs r2, 0
- movs r1, 0x1
- strb r1, [r0]
- ldr r0, [r4]
- adds r0, 0xCD
- strb r2, [r0]
- ldr r0, [r4]
- adds r0, 0xCE
- movs r1, 0x8
- strb r1, [r0]
- ldr r0, [r4]
- adds r0, 0xCF
- strb r2, [r0]
- ldr r0, [r4]
- adds r0, 0x4A
- 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, 0x64]
- lsls r1, r3, 1
- adds r1, r3
- lsls r1, 3
- adds r1, r2, r1
- adds r1, 0x7A
- asrs r3, r0, 16
- lsrs r0, 16
- strh r0, [r1]
- ldr r1, [r2, 0x64]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 3
- adds r2, r0
- adds r3, 0x2
- adds r2, 0x7C
- strh r3, [r2]
- bl ResetUnusedInputStruct
- ldr r0, [r4]
- adds r0, 0x6C
- movs r1, 0x1
- movs r2, 0x1
- bl sub_800641C
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08030538: .4byte gUnknown_203B31C
- thumb_func_end sub_80304C8
-
- thumb_func_start sub_803053C
-sub_803053C:
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- sub sp, 0x108
- ldr r4, _08030658
- ldr r0, [r4]
- ldr r0, [r0, 0x64]
- bl sub_8008C54
- ldr r0, [r4]
- ldr r0, [r0, 0x64]
- bl sub_80073B8
- ldr r2, _0803065C
- ldr r0, [r4]
- ldr r3, [r0, 0x64]
- 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, 0xCE
- ldrb r0, [r0]
- lsls r0, 3
- adds r0, 0x4
- adds r1, r3, 0
- adds r1, 0x4E
- movs r5, 0
- ldrsh r2, [r1, r5]
- adds r2, 0x1
- movs r1, 0x7
- str r1, [sp]
- ldr r1, [r3, 0x64]
- str r1, [sp, 0x4]
- movs r1, 0
- movs r3, 0x2
- bl sub_8012BC4
- movs r0, 0
- mov r9, r0
- ldr r0, [r4]
- adds r0, 0x4A
- movs r1, 0
- ldrsh r0, [r0, r1]
- cmp r9, r0
- bge _0803063E
- mov r8, r4
-_080305A2:
- mov r3, r8
- ldr r1, [r3]
- adds r0, r1, 0
- adds r0, 0x4E
- movs r5, 0
- ldrsh r2, [r0, r5]
- subs r0, 0x2
- movs r3, 0
- ldrsh r0, [r0, r3]
- muls r0, r2
- add r0, r9
- lsls r0, 1
- adds r1, r0
- movs r5, 0
- ldrsh r4, [r1, r5]
- adds r0, r4, 0
- bl sub_80A2740
- lsls r0, 24
- lsrs r7, r0, 24
- adds r0, r4, 0
- bl sub_80A2668
- adds r4, r0, 0
- lsls r4, 16
- asrs r4, 16
- mov r1, r8
- ldr r0, [r1]
- adds r0, 0x30
- mov r1, r9
- bl sub_8013800
- adds r6, r0, 0
- movs r5, 0x7
- adds r0, r4, 0
- bl sub_809758C
- lsls r0, 24
- cmp r0, 0
- beq _08030608
- mov r3, r8
- ldr r0, [r3]
- ldr r3, [r0, 0x64]
- movs r0, 0
- str r0, [sp]
- movs r0, 0x8
- adds r1, r6, 0
- ldr r2, _08030660
- bl xxx_call_draw_string
- movs r5, 0x4
-_08030608:
- adds r0, r7, 0
- bl GetDungeonName1
- adds r3, r0, 0
- add r0, sp, 0x8
- ldr r1, _08030664
- adds r2, r5, 0
- bl sub_800D158
- mov r5, r8
- ldr r0, [r5]
- ldr r3, [r0, 0x64]
- movs r0, 0
- str r0, [sp]
- movs r0, 0x10
- adds r1, r6, 0
- add r2, sp, 0x8
- bl xxx_call_draw_string
- movs r0, 0x1
- add r9, r0
- ldr r0, [r5]
- adds r0, 0x4A
- movs r1, 0
- ldrsh r0, [r0, r1]
- cmp r9, r0
- blt _080305A2
-_0803063E:
- ldr r0, _08030658
- ldr r0, [r0]
- ldr r0, [r0, 0x64]
- bl sub_80073E0
- add sp, 0x108
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08030658: .4byte gUnknown_203B31C
-_0803065C: .4byte gUnknown_80E081C
-_08030660: .4byte gUnknown_80E0824
-_08030664: .4byte gUnknown_80E0828
- thumb_func_end sub_803053C
-
- thumb_func_start sub_8030668
-sub_8030668:
- push {r4-r6,lr}
- movs r6, 0
- movs r5, 0
-_0803066E:
- lsls r0, r5, 16
- asrs r4, r0, 16
- adds r0, r4, 0
- bl sub_8097504
- lsls r0, 24
- cmp r0, 0
- beq _08030690
- adds r0, r4, 0
- bl sub_80A26CC
- ldr r1, _080306A0
- ldr r1, [r1]
- lsls r2, r6, 1
- adds r1, r2
- strh r0, [r1]
- adds r6, 0x1
-_08030690:
- adds r5, 0x1
- cmp r5, 0x16
- ble _0803066E
- adds r0, r6, 0
- pop {r4-r6}
- pop {r1}
- bx r1
- .align 2, 0
-_080306A0: .4byte gUnknown_203B31C
- thumb_func_end sub_8030668
-
- thumb_func_start sub_80306A4
-sub_80306A4:
- movs r0, 0
- bx lr
- thumb_func_end sub_80306A4
-
- thumb_func_start sub_80306A8
-sub_80306A8:
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- adds r4, r0, 0
- adds r5, r1, 0
- adds r7, r2, 0
- mov r8, r3
- bl sub_8030C20
- lsls r0, 24
- cmp r0, 0
- beq _080306C4
- movs r0, 0
- b _08030756
-_080306C4:
- ldr r6, _08030760
- movs r0, 0xC4
- movs r1, 0x8
- bl MemoryAlloc
- str r0, [r6]
- str r4, [r0, 0x20]
- str r5, [r0, 0x58]
- lsls r1, r5, 1
- adds r1, r5
- lsls r1, 3
- adds r1, 0x60
- adds r1, r0, r1
- str r1, [r0, 0x5C]
- adds r0, 0x60
- bl sub_8006518
- ldr r1, [r6]
- ldr r2, [r1, 0x58]
- lsls r0, r2, 1
- adds r0, r2
- lsls r0, 3
- adds r1, r0
- adds r1, 0x60
- ldr r0, _08030764
- ldm r0!, {r2-r4}
- stm r1!, {r2-r4}
- ldm r0!, {r2-r4}
- stm r1!, {r2-r4}
- ldr r2, [r6]
- ldr r1, [r2, 0x5C]
- adds r0, r2, 0
- adds r0, 0xC0
- str r0, [r1, 0x14]
- cmp r7, 0
- beq _0803071E
- ldr r1, [r2, 0x58]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 3
- adds r1, r2, 0
- adds r1, 0x68
- adds r1, r0
- ldr r0, [r7]
- str r0, [r1]
-_0803071E:
- ldr r0, [r6]
- ldr r0, [r0, 0x5C]
- mov r1, r8
- bl sub_8012D08
- bl ResetUnusedInputStruct
- ldr r0, [r6]
- adds r0, 0x60
- movs r1, 0x1
- movs r2, 0x1
- bl sub_800641C
- ldr r4, [r6]
- adds r4, 0x24
- bl sub_8030A74
- adds r1, r0, 0
- adds r0, r4, 0
- mov r2, r8
- adds r3, r5, 0
- bl sub_8013818
- bl sub_80308A0
- bl sub_803092C
- movs r0, 0x1
-_08030756:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_08030760: .4byte gUnknown_203B320
-_08030764: .4byte gUnknown_80E0854
- thumb_func_end sub_80306A8
-
- thumb_func_start sub_8030768
-sub_8030768:
- push {lr}
- lsls r0, 24
- cmp r0, 0
- bne _08030784
- ldr r0, _08030780
- ldr r0, [r0]
- adds r0, 0x24
- bl sub_8013660
- movs r0, 0
- b _080307E6
- .align 2, 0
-_08030780: .4byte gUnknown_203B320
-_08030784:
- ldr r0, _0803079C
- ldr r0, [r0]
- adds r0, 0x24
- bl GetKeyPress
- cmp r0, 0x2
- beq _080307AE
- cmp r0, 0x2
- bgt _080307A0
- cmp r0, 0x1
- beq _080307B8
- b _080307C2
- .align 2, 0
-_0803079C: .4byte gUnknown_203B320
-_080307A0:
- cmp r0, 0x4
- bne _080307C2
- movs r0, 0x4
- bl PlayMenuSoundEffect
- movs r0, 0x4
- b _080307E6
-_080307AE:
- movs r0, 0x1
- bl PlayMenuSoundEffect
- movs r0, 0x2
- b _080307E6
-_080307B8:
- movs r0, 0
- bl PlayMenuSoundEffect
- movs r0, 0x3
- b _080307E6
-_080307C2:
- ldr r0, _080307D8
- ldr r0, [r0]
- adds r0, 0x24
- movs r1, 0x1
- bl sub_80138B8
- lsls r0, 24
- cmp r0, 0
- bne _080307DC
- movs r0, 0
- b _080307E6
- .align 2, 0
-_080307D8: .4byte gUnknown_203B320
-_080307DC:
- bl sub_80308A0
- bl sub_803092C
- movs r0, 0x1
-_080307E6:
- pop {r1}
- bx r1
- thumb_func_end sub_8030768
-
- thumb_func_start sub_80307EC
-sub_80307EC:
- ldr r0, _0803080C
- ldr r2, [r0]
- adds r0, r2, 0
- adds r0, 0x42
- movs r3, 0
- ldrsh r1, [r0, r3]
- subs r0, 0x2
- movs r3, 0
- ldrsh r0, [r0, r3]
- muls r0, r1
- movs r3, 0x3C
- ldrsh r1, [r2, r3]
- adds r0, r1
- adds r2, r0
- ldrb r0, [r2]
- bx lr
- .align 2, 0
-_0803080C: .4byte gUnknown_203B320
- thumb_func_end sub_80307EC
-
- thumb_func_start sub_8030810
-sub_8030810:
- push {r4,r5,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- bl sub_8030A74
- adds r1, r0, 0
- ldr r5, _08030848
- ldr r0, [r5]
- adds r2, r0, 0
- adds r2, 0x46
- strh r1, [r2]
- adds r0, 0x24
- bl sub_8013984
- bl sub_80308A0
- bl sub_803092C
- cmp r4, 0
- beq _08030842
- ldr r0, [r5]
- adds r0, 0x24
- bl AddMenuCursorSprite
-_08030842:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08030848: .4byte gUnknown_203B320
- thumb_func_end sub_8030810
-
- thumb_func_start sub_803084C
-sub_803084C:
- push {r4,r5,lr}
- ldr r4, _0803088C
- ldr r2, [r4]
- cmp r2, 0
- beq _08030886
- ldr r0, [r2, 0x58]
- lsls r1, r0, 1
- adds r1, r0
- lsls r1, 3
- adds r1, r2, r1
- adds r1, 0x60
- ldr r0, _08030890
- 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, 0x60
- movs r1, 0x1
- movs r2, 0x1
- bl sub_800641C
- ldr r0, [r4]
- bl MemoryFree
- movs r0, 0
- str r0, [r4]
-_08030886:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0803088C: .4byte gUnknown_203B320
-_08030890: .4byte gUnknown_80E083C
- thumb_func_end sub_803084C
-
- thumb_func_start sub_8030894
-sub_8030894:
- ldr r0, _0803089C
- ldr r0, [r0]
- bx lr
- .align 2, 0
-_0803089C: .4byte gUnknown_203B320
- thumb_func_end sub_8030894
-
- thumb_func_start sub_80308A0
-sub_80308A0:
- push {r4,lr}
- ldr r4, _08030928
- ldr r0, [r4]
- adds r1, r0, 0
- adds r1, 0x44
- ldrh r1, [r1]
- adds r0, 0xC0
- movs r2, 0
- strb r1, [r0]
- ldr r0, [r4]
- adds r1, r0, 0
- adds r1, 0x42
- ldrh r1, [r1]
- adds r0, 0xC1
- strb r1, [r0]
- ldr r0, [r4]
- adds r0, 0xC2
- movs r1, 0xC
- strb r1, [r0]
- ldr r0, [r4]
- adds r0, 0xC3
- strb r2, [r0]
- bl ResetUnusedInputStruct
- ldr r0, [r4]
- adds r0, 0x60
- movs r1, 0x1
- movs r2, 0x1
- bl sub_800641C
- ldr r0, [r4]
- movs r1, 0x3E
- ldrsh r0, [r0, r1]
- movs r1, 0xC
- bl sub_80095E4
- adds r0, 0x2
- lsls r0, 16
- ldr r2, [r4]
- ldr r3, [r2, 0x58]
- lsls r1, r3, 1
- adds r1, r3
- lsls r1, 3
- adds r1, r2, r1
- adds r1, 0x6E
- asrs r3, r0, 16
- lsrs r0, 16
- strh r0, [r1]
- ldr r1, [r2, 0x58]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 3
- adds r2, r0
- adds r3, 0x2
- adds r2, 0x70
- strh r3, [r2]
- bl ResetUnusedInputStruct
- ldr r0, [r4]
- adds r0, 0x60
- movs r1, 0x1
- movs r2, 0x1
- bl sub_800641C
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08030928: .4byte gUnknown_203B320
- thumb_func_end sub_80308A0
-
- thumb_func_start sub_803092C
-sub_803092C:
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- sub sp, 0x60
- ldr r7, _08030A24
- ldr r0, [r7]
- ldr r0, [r0, 0x58]
- bl sub_8008C54
- ldr r0, [r7]
- ldr r0, [r0, 0x58]
- bl sub_80073B8
- ldr r1, [r7]
- adds r0, r1, 0
- adds r0, 0x42
- movs r2, 0
- ldrsh r4, [r0, r2]
- lsls r4, 3
- adds r5, r4, 0
- adds r5, 0xA
- ldr r2, _08030A28
- ldr r0, [r1, 0x20]
- lsls r0, 2
- adds r0, r2
- ldr r2, [r0]
- ldr r3, [r1, 0x58]
- movs r0, 0
- str r0, [sp]
- adds r0, r5, 0
- movs r1, 0
- bl xxx_call_draw_string
- adds r4, 0x4
- ldr r3, [r7]
- adds r0, r3, 0
- adds r0, 0xC2
- ldrb r0, [r0]
- lsls r0, 3
- adds r5, r4, r0
- adds r0, r3, 0
- adds r0, 0x42
- movs r1, 0
- ldrsh r2, [r0, r1]
- adds r2, 0x1
- movs r0, 0x7
- str r0, [sp]
- ldr r0, [r3, 0x58]
- str r0, [sp, 0x4]
- adds r0, r5, 0
- movs r1, 0
- movs r3, 0x1
- bl sub_8012BC4
- movs r6, 0
- ldr r0, [r7]
- movs r2, 0x3E
- ldrsh r0, [r0, r2]
- cmp r6, r0
- bge _08030A56
- mov r9, r7
- mov r8, r6
- add r7, sp, 0x8
- mov r5, sp
- adds r5, 0x4B
-_080309B0:
- mov r3, r9
- ldr r1, [r3]
- adds r0, r1, 0
- adds r0, 0x42
- movs r3, 0
- ldrsh r2, [r0, r3]
- subs r0, 0x2
- movs r3, 0
- ldrsh r0, [r0, r3]
- muls r0, r2
- adds r0, r6
- adds r1, r0
- ldrb r0, [r1]
- bl sub_8095228
- adds r4, r0, 0
- mov r1, r9
- ldr r0, [r1]
- ldr r1, [r0, 0x58]
- str r1, [sp, 0x8]
- adds r0, 0x24
- adds r1, r6, 0
- bl sub_8013800
- str r0, [sp, 0x50]
- add r1, sp, 0x48
- movs r0, 0x7
- strb r0, [r1]
- mov r0, sp
- adds r0, 0x4A
- mov r2, r8
- strb r2, [r0]
- add r0, sp, 0x4C
- strb r2, [r0]
- adds r0, r4, 0x4
- str r0, [sp, 0x10]
- adds r0, 0x10
- str r0, [sp, 0x14]
- ldrh r0, [r4, 0xC]
- strh r0, [r7, 0x10]
- ldrh r0, [r4, 0xC]
- strh r0, [r7, 0x12]
- strb r2, [r7, 0x14]
- subs r1, 0x12
- movs r0, 0x5
- strb r0, [r1]
- ldrb r0, [r4]
- cmp r0, 0x4
- beq _08030A32
- cmp r0, 0x4
- bgt _08030A2C
- cmp r0, 0x2
- bgt _08030A3E
- cmp r0, 0x1
- blt _08030A3E
- movs r0, 0x1
- strb r0, [r5]
- b _08030A42
- .align 2, 0
-_08030A24: .4byte gUnknown_203B320
-_08030A28: .4byte gUnknown_80E086C
-_08030A2C:
- cmp r0, 0x5
- beq _08030A38
- b _08030A3E
-_08030A32:
- movs r0, 0x3
- strb r0, [r5]
- b _08030A42
-_08030A38:
- movs r0, 0x4
- strb r0, [r5]
- b _08030A42
-_08030A3E:
- mov r3, r8
- strb r3, [r5]
-_08030A42:
- add r0, sp, 0x8
- bl sub_803B6D4
- adds r6, 0x1
- mov r1, r9
- ldr r0, [r1]
- movs r2, 0x3E
- ldrsh r0, [r0, r2]
- cmp r6, r0
- blt _080309B0
-_08030A56:
- ldr r0, _08030A70
- ldr r0, [r0]
- ldr r0, [r0, 0x58]
- bl sub_80073E0
- add sp, 0x60
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08030A70: .4byte gUnknown_203B320
- thumb_func_end sub_803092C
-
- thumb_func_start sub_8030A74
-sub_8030A74:
- push {r4,r5,lr}
- movs r2, 0
- ldr r0, _08030A90
- ldr r0, [r0]
- ldr r0, [r0, 0x20]
- cmp r0, 0x7
- bls _08030A84
- b _08030C0E
-_08030A84:
- lsls r0, 2
- ldr r1, _08030A94
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08030A90: .4byte gUnknown_203B320
-_08030A94: .4byte _08030A98
- .align 2, 0
-_08030A98:
- .4byte _08030AB8
- .4byte _08030B10
- .4byte _08030B3C
- .4byte _08030B94
- .4byte _08030B68
- .4byte _08030BC0
- .4byte _08030AE4
- .4byte _08030BEC
-_08030AB8:
- movs r1, 0
- ldr r5, _08030ADC
- ldr r4, _08030AE0
- movs r3, 0
-_08030AC0:
- ldr r0, [r5]
- adds r0, r3
- ldrb r0, [r0]
- cmp r0, 0
- beq _08030AD2
- ldr r0, [r4]
- adds r0, r2
- strb r1, [r0]
- adds r2, 0x1
-_08030AD2:
- adds r3, 0x30
- adds r1, 0x1
- cmp r1, 0x1F
- ble _08030AC0
- b _08030C0E
- .align 2, 0
-_08030ADC: .4byte gUnknown_203B480
-_08030AE0: .4byte gUnknown_203B320
-_08030AE4:
- movs r1, 0
- ldr r5, _08030B08
- ldr r4, _08030B0C
- movs r3, 0
-_08030AEC:
- ldr r0, [r5]
- adds r0, r3
- ldrb r0, [r0]
- cmp r0, 0x6
- bne _08030AFE
- ldr r0, [r4]
- adds r0, r2
- strb r1, [r0]
- adds r2, 0x1
-_08030AFE:
- adds r3, 0x30
- adds r1, 0x1
- cmp r1, 0x1F
- ble _08030AEC
- b _08030C0E
- .align 2, 0
-_08030B08: .4byte gUnknown_203B480
-_08030B0C: .4byte gUnknown_203B320
-_08030B10:
- movs r1, 0
- ldr r5, _08030B34
- ldr r4, _08030B38
- movs r3, 0
-_08030B18:
- ldr r0, [r5]
- adds r0, r3
- ldrb r0, [r0]
- cmp r0, 0x1
- bne _08030B2A
- ldr r0, [r4]
- adds r0, r2
- strb r1, [r0]
- adds r2, 0x1
-_08030B2A:
- adds r3, 0x30
- adds r1, 0x1
- cmp r1, 0x1F
- ble _08030B18
- b _08030C0E
- .align 2, 0
-_08030B34: .4byte gUnknown_203B480
-_08030B38: .4byte gUnknown_203B320
-_08030B3C:
- movs r1, 0
- ldr r5, _08030B60
- ldr r4, _08030B64
- movs r3, 0
-_08030B44:
- ldr r0, [r5]
- adds r0, r3
- ldrb r0, [r0]
- cmp r0, 0x2
- bne _08030B56
- ldr r0, [r4]
- adds r0, r2
- strb r1, [r0]
- adds r2, 0x1
-_08030B56:
- adds r3, 0x30
- adds r1, 0x1
- cmp r1, 0x1F
- ble _08030B44
- b _08030C0E
- .align 2, 0
-_08030B60: .4byte gUnknown_203B480
-_08030B64: .4byte gUnknown_203B320
-_08030B68:
- movs r1, 0
- ldr r5, _08030B8C
- ldr r4, _08030B90
- movs r3, 0
-_08030B70:
- ldr r0, [r5]
- adds r0, r3
- ldrb r0, [r0]
- cmp r0, 0x4
- bne _08030B82
- ldr r0, [r4]
- adds r0, r2
- strb r1, [r0]
- adds r2, 0x1
-_08030B82:
- adds r3, 0x30
- adds r1, 0x1
- cmp r1, 0x1F
- ble _08030B70
- b _08030C0E
- .align 2, 0
-_08030B8C: .4byte gUnknown_203B480
-_08030B90: .4byte gUnknown_203B320
-_08030B94:
- movs r1, 0
- ldr r5, _08030BB8
- ldr r4, _08030BBC
- movs r3, 0
-_08030B9C:
- ldr r0, [r5]
- adds r0, r3
- ldrb r0, [r0]
- cmp r0, 0x3
- bne _08030BAE
- ldr r0, [r4]
- adds r0, r2
- strb r1, [r0]
- adds r2, 0x1
-_08030BAE:
- adds r3, 0x30
- adds r1, 0x1
- cmp r1, 0x1F
- ble _08030B9C
- b _08030C0E
- .align 2, 0
-_08030BB8: .4byte gUnknown_203B480
-_08030BBC: .4byte gUnknown_203B320
-_08030BC0:
- movs r1, 0
- ldr r5, _08030BE4
- ldr r4, _08030BE8
- movs r3, 0
-_08030BC8:
- ldr r0, [r5]
- adds r0, r3
- ldrb r0, [r0]
- cmp r0, 0x5
- bne _08030BDA
- ldr r0, [r4]
- adds r0, r2
- strb r1, [r0]
- adds r2, 0x1
-_08030BDA:
- adds r3, 0x30
- adds r1, 0x1
- cmp r1, 0x1F
- ble _08030BC8
- b _08030C0E
- .align 2, 0
-_08030BE4: .4byte gUnknown_203B480
-_08030BE8: .4byte gUnknown_203B320
-_08030BEC:
- movs r1, 0
- ldr r5, _08030C18
- ldr r4, _08030C1C
- movs r3, 0
-_08030BF4:
- ldr r0, [r5]
- adds r0, r3
- ldrb r0, [r0]
- cmp r0, 0x7
- bne _08030C06
- ldr r0, [r4]
- adds r0, r2
- strb r1, [r0]
- adds r2, 0x1
-_08030C06:
- adds r3, 0x30
- adds r1, 0x1
- cmp r1, 0x1F
- ble _08030BF4
-_08030C0E:
- adds r0, r2, 0
- pop {r4,r5}
- pop {r1}
- bx r1
- .align 2, 0
-_08030C18: .4byte gUnknown_203B480
-_08030C1C: .4byte gUnknown_203B320
- thumb_func_end sub_8030A74
-
- thumb_func_start sub_8030C20
-sub_8030C20:
- push {lr}
- cmp r0, 0x7
- bls _08030C28
- b _08030D34
-_08030C28:
- lsls r0, 2
- ldr r1, _08030C34
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08030C34: .4byte _08030C38
- .align 2, 0
-_08030C38:
- .4byte _08030C58
- .4byte _08030C90
- .4byte _08030CAC
- .4byte _08030CE4
- .4byte _08030CC8
- .4byte _08030D00
- .4byte _08030C74
- .4byte _08030D20
-_08030C58:
- movs r1, 0
- ldr r0, _08030C70
- ldr r2, [r0]
-_08030C5E:
- ldrb r0, [r2]
- cmp r0, 0
- bne _08030D1C
- adds r2, 0x30
- adds r1, 0x1
- cmp r1, 0x1F
- ble _08030C5E
- b _08030D34
- .align 2, 0
-_08030C70: .4byte gUnknown_203B480
-_08030C74:
- movs r1, 0
- ldr r0, _08030C8C
- ldr r2, [r0]
-_08030C7A:
- ldrb r0, [r2]
- cmp r0, 0x6
- beq _08030D1C
- adds r2, 0x30
- adds r1, 0x1
- cmp r1, 0x1F
- ble _08030C7A
- b _08030D34
- .align 2, 0
-_08030C8C: .4byte gUnknown_203B480
-_08030C90:
- movs r1, 0
- ldr r0, _08030CA8
- ldr r2, [r0]
-_08030C96:
- ldrb r0, [r2]
- cmp r0, 0x1
- beq _08030D1C
- adds r2, 0x30
- adds r1, 0x1
- cmp r1, 0x1F
- ble _08030C96
- b _08030D34
- .align 2, 0
-_08030CA8: .4byte gUnknown_203B480
-_08030CAC:
- movs r1, 0
- ldr r0, _08030CC4
- ldr r2, [r0]
-_08030CB2:
- ldrb r0, [r2]
- cmp r0, 0x2
- beq _08030D1C
- adds r2, 0x30
- adds r1, 0x1
- cmp r1, 0x1F
- ble _08030CB2
- b _08030D34
- .align 2, 0
-_08030CC4: .4byte gUnknown_203B480
-_08030CC8:
- movs r1, 0
- ldr r0, _08030CE0
- ldr r2, [r0]
-_08030CCE:
- ldrb r0, [r2]
- cmp r0, 0x4
- beq _08030D1C
- adds r2, 0x30
- adds r1, 0x1
- cmp r1, 0x1F
- ble _08030CCE
- b _08030D34
- .align 2, 0
-_08030CE0: .4byte gUnknown_203B480
-_08030CE4:
- movs r1, 0
- ldr r0, _08030CFC
- ldr r2, [r0]
-_08030CEA:
- ldrb r0, [r2]
- cmp r0, 0x3
- beq _08030D1C
- adds r2, 0x30
- adds r1, 0x1
- cmp r1, 0x1F
- ble _08030CEA
- b _08030D34
- .align 2, 0
-_08030CFC: .4byte gUnknown_203B480
-_08030D00:
- movs r1, 0
- ldr r0, _08030D18
- ldr r2, [r0]
-_08030D06:
- ldrb r0, [r2]
- cmp r0, 0x5
- beq _08030D1C
- adds r2, 0x30
- adds r1, 0x1
- cmp r1, 0x1F
- ble _08030D06
- b _08030D34
- .align 2, 0
-_08030D18: .4byte gUnknown_203B480
-_08030D1C:
- movs r0, 0
- b _08030D36
-_08030D20:
- movs r1, 0
- ldr r0, _08030D3C
- ldr r2, [r0]
-_08030D26:
- ldrb r0, [r2]
- cmp r0, 0x7
- beq _08030D1C
- adds r2, 0x30
- adds r1, 0x1
- cmp r1, 0x1F
- ble _08030D26
-_08030D34:
- movs r0, 0x1
-_08030D36:
- pop {r1}
- bx r1
- .align 2, 0
-_08030D3C: .4byte gUnknown_203B480
- thumb_func_end sub_8030C20
-
- thumb_func_start sub_8030D40
-sub_8030D40:
- push {r4-r6,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- lsls r4, 24
- lsrs r4, 24
- ldr r6, _08030D98
- movs r0, 0x78
- movs r1, 0x8
- bl MemoryAlloc
- str r0, [r6]
- strb r4, [r0, 0xC]
- ldr r0, [r6]
- bl sub_801317C
- ldr r0, [r6]
- str r5, [r0, 0x10]
- lsls r1, r5, 1
- adds r1, r5
- lsls r1, 3
- adds r1, 0x18
- adds r1, r0, r1
- str r1, [r0, 0x14]
- adds r0, 0x18
- bl sub_8006518
- ldr r1, [r6]
- ldr r2, [r1, 0x10]
- lsls r0, r2, 1
- adds r0, r2
- lsls r0, 3
- adds r1, r0
- adds r1, 0x18
- ldr r0, _08030D9C
- ldm r0!, {r2-r4}
- stm r1!, {r2-r4}
- ldm r0!, {r2-r4}
- stm r1!, {r2-r4}
- bl sub_8030DD4
- movs r0, 0x1
- pop {r4-r6}
- pop {r1}
- bx r1
- .align 2, 0
-_08030D98: .4byte gUnknown_203B324
-_08030D9C: .4byte gUnknown_80E091C
- thumb_func_end sub_8030D40
-
- thumb_func_start sub_8030DA0
-sub_8030DA0:
- push {lr}
- ldr r0, _08030DC0
- ldr r0, [r0]
- ldr r1, [r0, 0x10]
- bl sub_8012A64
- cmp r0, 0x1
- beq _08030DC4
- cmp r0, 0x2
- bne _08030DCE
- movs r0, 0x1
- bl PlayMenuSoundEffect
- movs r0, 0x2
- b _08030DD0
- .align 2, 0
-_08030DC0: .4byte gUnknown_203B324
-_08030DC4:
- movs r0, 0
- bl PlayMenuSoundEffect
- movs r0, 0x3
- b _08030DD0
-_08030DCE:
- movs r0, 0
-_08030DD0:
- pop {r1}
- bx r1
- thumb_func_end sub_8030DA0
-
- thumb_func_start sub_8030DD4
-sub_8030DD4:
- push {lr}
- bl sub_8030E2C
- bl sub_8030E48
- pop {r0}
- bx r0
- thumb_func_end sub_8030DD4
-
- thumb_func_start sub_8030DE4
-sub_8030DE4:
- push {r4,r5,lr}
- ldr r4, _08030E24
- ldr r2, [r4]
- cmp r2, 0
- beq _08030E1E
- ldr r0, [r2, 0x10]
- lsls r1, r0, 1
- adds r1, r0
- lsls r1, 3
- adds r1, r2, r1
- adds r1, 0x18
- ldr r0, _08030E28
- 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, 0x18
- movs r1, 0x1
- movs r2, 0x1
- bl sub_800641C
- ldr r0, [r4]
- bl MemoryFree
- movs r0, 0
- str r0, [r4]
-_08030E1E:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08030E24: .4byte gUnknown_203B324
-_08030E28: .4byte gUnknown_80E0900
- thumb_func_end sub_8030DE4
-
- thumb_func_start sub_8030E2C
-sub_8030E2C:
- push {lr}
- bl ResetUnusedInputStruct
- ldr r0, _08030E44
- ldr r0, [r0]
- adds r0, 0x18
- movs r1, 0x1
- movs r2, 0x1
- bl sub_800641C
- pop {r0}
- bx r0
- .align 2, 0
-_08030E44: .4byte gUnknown_203B324
- thumb_func_end sub_8030E2C
-
- thumb_func_start sub_8030E48
-sub_8030E48:
- push {r4-r6,lr}
- mov r6, r8
- push {r6}
- sub sp, 0x15C
- ldr r3, _08030EA8
- ldr r4, _08030EAC
- ldr r2, [r4]
- ldrb r1, [r2, 0xC]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 4
- ldr r1, [r3]
- adds r5, r1, r0
- ldr r0, [r2, 0x10]
- bl sub_80073B8
- ldr r0, [r4]
- ldr r0, [r0, 0x10]
- str r0, [sp, 0x4]
- add r1, sp, 0x44
- movs r2, 0
- movs r0, 0x7
- strb r0, [r1]
- mov r0, sp
- adds r0, 0x46
- strb r2, [r0]
- add r0, sp, 0x48
- strb r2, [r0]
- adds r0, r5, 0x4
- str r0, [sp, 0xC]
- adds r0, 0x10
- str r0, [sp, 0x10]
- add r1, sp, 0x4
- ldrh r0, [r5, 0xC]
- strh r0, [r1, 0x10]
- ldrh r0, [r5, 0xC]
- strh r0, [r1, 0x12]
- adds r0, r1, 0
- strb r2, [r0, 0x14]
- adds r2, r5, 0
- adds r2, 0x22
- ldrb r0, [r2]
- cmp r0, 0
- bne _08030EB0
- adds r1, 0x2E
- movs r0, 0x5
- strb r0, [r1]
- b _08030EBE
- .align 2, 0
-_08030EA8: .4byte gUnknown_203B480
-_08030EAC: .4byte gUnknown_203B324
-_08030EB0:
- mov r1, sp
- adds r1, 0x32
- movs r0, 0x2
- strb r0, [r1]
- ldrb r1, [r2]
- add r0, sp, 0x38
- strb r1, [r0]
-_08030EBE:
- ldrb r0, [r5]
- cmp r0, 0x2
- beq _08030ED2
- cmp r0, 0x2
- ble _08030EE2
- cmp r0, 0x4
- beq _08030ED2
- cmp r0, 0x5
- beq _08030EDA
- b _08030EE2
-_08030ED2:
- mov r1, sp
- adds r1, 0x45
- movs r0, 0xA
- b _08030EE8
-_08030EDA:
- mov r1, sp
- adds r1, 0x45
- movs r0, 0xB
- b _08030EE8
-_08030EE2:
- mov r1, sp
- adds r1, 0x45
- movs r0, 0x9
-_08030EE8:
- strb r0, [r1]
- add r0, sp, 0x4
- bl CreateRescueDescription
- ldrh r0, [r5, 0x10]
- ldr r1, _08030F48
- bl __umodsi3
- adds r4, r0, 0
- lsls r4, 16
- lsrs r4, 16
- ldr r2, _08030F4C
- ldr r5, _08030F50
- ldr r0, [r5]
- ldr r3, [r0, 0x10]
- movs r0, 0
- mov r8, r0
- str r0, [sp]
- movs r0, 0xA
- movs r1, 0x68
- bl xxx_call_draw_string
- add r6, sp, 0x5C
- ldr r1, _08030F54
- adds r0, r6, 0
- adds r2, r4, 0
- bl sub_800D158
- ldr r0, [r5]
- ldr r3, [r0, 0x10]
- mov r0, r8
- str r0, [sp]
- movs r0, 0x44
- movs r1, 0x68
- adds r2, r6, 0
- bl xxx_call_draw_string
- ldr r0, [r5]
- ldr r0, [r0, 0x10]
- bl sub_80073E0
- add sp, 0x15C
- pop {r3}
- mov r8, r3
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08030F48: .4byte 0x00002710
-_08030F4C: .4byte gUnknown_80E0934
-_08030F50: .4byte gUnknown_203B324
-_08030F54: .4byte gUnknown_80E0938
- thumb_func_end sub_8030E48
-
- thumb_func_start sub_8030F58
-sub_8030F58:
- push {r4-r6,lr}
- adds r6, r0, 0
- bl ResetUnusedInputStruct
- movs r0, 0
- movs r1, 0x1
- movs r2, 0x1
- bl sub_800641C
- ldr r5, _08030FF4
- ldr r0, [r5]
- cmp r0, 0
- bne _08030F88
- movs r4, 0x8E
- lsls r4, 1
- adds r0, r4, 0
- movs r1, 0x8
- bl MemoryAlloc
- str r0, [r5]
- movs r1, 0
- adds r2, r4, 0
- bl MemoryFill8
-_08030F88:
- ldr r0, [r5]
- movs r1, 0x8C
- lsls r1, 1
- adds r0, r1
- str r6, [r0]
- movs r0, 0x98
- lsls r0, 1
- bl GetDialogueSpriteDataPtr
- ldr r2, [r5]
- movs r4, 0x84
- lsls r4, 1
- adds r1, r2, r4
- str r0, [r1]
- movs r3, 0x86
- lsls r3, 1
- adds r1, r2, r3
- ldr r0, [r0, 0x4]
- str r0, [r1]
- movs r0, 0x8A
- lsls r0, 1
- adds r2, r0
- movs r1, 0
- strb r1, [r2]
- ldr r0, [r5]
- ldr r2, _08030FF8
- adds r0, r2
- strb r1, [r0]
- ldr r0, [r5]
- adds r3, 0xA
- adds r0, r3
- strb r1, [r0]
- ldr r2, [r5]
- movs r0, 0x88
- lsls r0, 1
- adds r1, r2, r0
- movs r0, 0x2
- strh r0, [r1]
- subs r3, 0x4
- adds r1, r2, r3
- movs r0, 0x8
- strh r0, [r1]
- adds r0, r6, 0
- bl sub_8030C20
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0
- beq _08031038
- cmp r6, 0x2
- beq _08030FFC
- cmp r6, 0x4
- beq _08031014
- b _08031022
- .align 2, 0
-_08030FF4: .4byte gUnknown_203B328
-_08030FF8: .4byte 0x00000115
-_08030FFC:
- ldr r0, _0803100C
- ldr r2, [r5]
- adds r2, r4
- ldr r3, _08031010
- movs r1, 0
- bl sub_80141B4
- b _08031022
- .align 2, 0
-_0803100C: .4byte gUnknown_80E09D8
-_08031010: .4byte 0x00000101
-_08031014:
- ldr r0, _0803102C
- ldr r2, [r5]
- adds r2, r4
- ldr r3, _08031030
- movs r1, 0
- bl sub_80141B4
-_08031022:
- ldr r0, _08031034
- ldr r1, [r0]
- movs r0, 0x5
- str r0, [r1]
- b _08031048
- .align 2, 0
-_0803102C: .4byte gUnknown_80E0A0C
-_08031030: .4byte 0x00000101
-_08031034: .4byte gUnknown_203B328
-_08031038:
- ldr r0, [r5]
- str r1, [r0]
- adds r0, r6, 0
- movs r1, 0
- movs r2, 0
- movs r3, 0x8
- bl sub_80306A8
-_08031048:
- movs r0, 0x1
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end sub_8030F58
-
- thumb_func_start sub_8031050
-sub_8031050:
- push {lr}
- ldr r1, _08031068
- ldr r0, [r1]
- ldr r0, [r0]
- adds r2, r1, 0
- cmp r0, 0x6
- bhi _080310AC
- lsls r0, 2
- ldr r1, _0803106C
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08031068: .4byte gUnknown_203B328
-_0803106C: .4byte _08031070
- .align 2, 0
-_08031070:
- .4byte _0803108C
- .4byte _08031092
- .4byte _08031098
- .4byte _08031098
- .4byte _080310A2
- .4byte _080310A8
- .4byte _080310A8
-_0803108C:
- bl sub_8031300
- b _080310AC
-_08031092:
- bl sub_803136C
- b _080310AC
-_08031098:
- ldr r0, [r2]
- ldr r0, [r0]
- bl sub_80313D8
- b _080310AC
-_080310A2:
- bl sub_8031498
- b _080310AC
-_080310A8:
- movs r0, 0x3
- b _080310AE
-_080310AC:
- movs r0, 0
-_080310AE:
- pop {r1}
- bx r1
- thumb_func_end sub_8031050
-
- thumb_func_start sub_80310B4
-sub_80310B4:
- push {r4,lr}
- bl sub_803084C
- ldr r4, _080310E0
- ldr r0, [r4]
- cmp r0, 0
- beq _080310D8
- movs r1, 0x84
- lsls r1, 1
- adds r0, r1
- ldr r0, [r0]
- bl CloseFile
- ldr r0, [r4]
- bl MemoryFree
- movs r0, 0
- str r0, [r4]
-_080310D8:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080310E0: .4byte gUnknown_203B328
- thumb_func_end sub_80310B4
-
- thumb_func_start sub_80310E4
-sub_80310E4:
- push {lr}
- ldr r1, _080310F8
- ldr r1, [r1]
- str r0, [r1]
- bl sub_80310FC
- bl sub_8031258
- pop {r0}
- bx r0
- .align 2, 0
-_080310F8: .4byte gUnknown_203B328
- thumb_func_end sub_80310E4
-
- thumb_func_start sub_80310FC
-sub_80310FC:
- push {r4-r6,lr}
- ldr r4, _0803111C
- ldr r0, [r4]
- adds r0, 0xA8
- bl sub_8006518
- ldr r0, [r4]
- ldr r0, [r0]
- cmp r0, 0x6
- bls _08031112
- b _0803122C
-_08031112:
- lsls r0, 2
- ldr r1, _08031120
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0803111C: .4byte gUnknown_203B328
-_08031120: .4byte _08031124
- .align 2, 0
-_08031124:
- .4byte _08031140
- .4byte _08031178
- .4byte _080311C0
- .4byte _080311C0
- .4byte _080311E8
- .4byte _0803122C
- .4byte _0803122C
-_08031140:
- ldr r3, _08031170
- ldr r1, [r3]
- ldr r2, _08031174
- adds r1, 0xC0
- adds r0, r2, 0
- ldm r0!, {r4-r6}
- stm r1!, {r4-r6}
- ldm r0!, {r4-r6}
- stm r1!, {r4-r6}
- ldr r1, [r3]
- adds r1, 0xD8
- adds r0, r2, 0
- ldm r0!, {r4-r6}
- stm r1!, {r4-r6}
- ldm r0!, {r4-r6}
- stm r1!, {r4-r6}
- ldr r0, [r3]
- adds r0, 0xF0
- ldm r2!, {r1,r3,r4}
- stm r0!, {r1,r3,r4}
- ldm r2!, {r1,r5,r6}
- stm r0!, {r1,r5,r6}
- b _0803123A
- .align 2, 0
-_08031170: .4byte gUnknown_203B328
-_08031174: .4byte gUnknown_80E0990
-_08031178:
- ldr r3, _080311B0
- ldr r1, [r3]
- adds r1, 0xC0
- ldr r0, _080311B4
- ldm r0!, {r2,r4,r5}
- stm r1!, {r2,r4,r5}
- ldm r0!, {r2,r4,r6}
- stm r1!, {r2,r4,r6}
- ldr r1, [r3]
- ldr r2, _080311B8
- adds r1, 0xD8
- adds r0, r2, 0
- ldm r0!, {r4-r6}
- stm r1!, {r4-r6}
- ldm r0!, {r4-r6}
- stm r1!, {r4-r6}
- ldr r0, [r3]
- adds r0, 0xF0
- ldm r2!, {r1,r5,r6}
- stm r0!, {r1,r5,r6}
- ldm r2!, {r4-r6}
- stm r0!, {r4-r6}
- ldr r0, [r3]
- adds r0, 0xC0
- ldr r1, _080311BC
- bl sub_8012CAC
- b _0803123A
- .align 2, 0
-_080311B0: .4byte gUnknown_203B328
-_080311B4: .4byte gUnknown_80E09A8
-_080311B8: .4byte gUnknown_80E0990
-_080311BC: .4byte gUnknown_80E0968
-_080311C0:
- ldr r2, _080311DC
- ldr r1, [r2]
- adds r1, 0xD8
- ldr r0, _080311E0
- ldm r0!, {r3-r5}
- stm r1!, {r3-r5}
- ldm r0!, {r3,r4,r6}
- stm r1!, {r3,r4,r6}
- ldr r0, [r2]
- adds r0, 0xD8
- ldr r1, _080311E4
- bl sub_8012CAC
- b _0803123A
- .align 2, 0
-_080311DC: .4byte gUnknown_203B328
-_080311E0: .4byte gUnknown_80E09C0
-_080311E4: .4byte gUnknown_80E0948
-_080311E8:
- ldr r3, _08031224
- ldr r1, [r3]
- ldr r2, _08031228
- adds r1, 0xA8
- adds r0, r2, 0
- ldm r0!, {r4-r6}
- stm r1!, {r4-r6}
- ldm r0!, {r4-r6}
- stm r1!, {r4-r6}
- ldr r1, [r3]
- adds r1, 0xC0
- adds r0, r2, 0
- ldm r0!, {r4-r6}
- stm r1!, {r4-r6}
- ldm r0!, {r4-r6}
- stm r1!, {r4-r6}
- ldr r1, [r3]
- adds r1, 0xD8
- adds r0, r2, 0
- ldm r0!, {r4-r6}
- stm r1!, {r4-r6}
- ldm r0!, {r4-r6}
- stm r1!, {r4-r6}
- ldr r0, [r3]
- adds r0, 0xF0
- ldm r2!, {r1,r5,r6}
- stm r0!, {r1,r5,r6}
- ldm r2!, {r3-r5}
- stm r0!, {r3-r5}
- b _0803123A
- .align 2, 0
-_08031224: .4byte gUnknown_203B328
-_08031228: .4byte gUnknown_80E0990
-_0803122C:
- bl ResetUnusedInputStruct
- movs r0, 0
- movs r1, 0x1
- movs r2, 0x1
- bl sub_800641C
-_0803123A:
- bl ResetUnusedInputStruct
- ldr r0, _08031254
- ldr r0, [r0]
- adds r0, 0xA8
- movs r1, 0x1
- movs r2, 0x1
- bl sub_800641C
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08031254: .4byte gUnknown_203B328
- thumb_func_end sub_80310FC
-
- thumb_func_start sub_8031258
-sub_8031258:
- push {r4,lr}
- sub sp, 0x8
- ldr r1, _08031274
- ldr r0, [r1]
- ldr r0, [r0]
- adds r2, r1, 0
- cmp r0, 0x6
- bhi _080312F6
- lsls r0, 2
- ldr r1, _08031278
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08031274: .4byte gUnknown_203B328
-_08031278: .4byte _0803127C
- .align 2, 0
-_0803127C:
- .4byte _08031298
- .4byte _080312A0
- .4byte _080312BC
- .4byte _080312BC
- .4byte _080312EC
- .4byte _080312F6
- .4byte _080312F6
-_08031298:
- movs r0, 0x1
- bl sub_8030810
- b _080312F6
-_080312A0:
- bl sub_803092C
- ldr r0, _080312B4
- ldr r0, [r0]
- adds r0, 0x8
- ldr r1, _080312B8
- movs r2, 0x4
- str r2, [sp]
- movs r2, 0x1
- b _080312D8
- .align 2, 0
-_080312B4: .4byte gUnknown_203B328
-_080312B8: .4byte gUnknown_80E0968
-_080312BC:
- bl sub_803092C
- ldr r4, _080312E4
- ldr r0, [r4]
- adds r0, 0x8
- movs r1, 0
- bl sub_8012EA4
- ldr r0, [r4]
- adds r0, 0x58
- ldr r1, _080312E8
- movs r2, 0x3
- str r2, [sp]
- movs r2, 0x2
-_080312D8:
- str r2, [sp, 0x4]
- movs r2, 0
- movs r3, 0
- bl sub_8012D60
- b _080312F6
- .align 2, 0
-_080312E4: .4byte gUnknown_203B328
-_080312E8: .4byte gUnknown_80E0948
-_080312EC:
- ldr r0, [r2]
- ldrb r0, [r0, 0x4]
- movs r1, 0x3
- bl sub_8030D40
-_080312F6:
- add sp, 0x8
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_8031258
-
- thumb_func_start sub_8031300
-sub_8031300:
- push {lr}
- movs r0, 0x1
- bl sub_8030768
- cmp r0, 0x4
- bhi _08031366
- lsls r0, 2
- ldr r1, _08031318
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08031318: .4byte _0803131C
- .align 2, 0
-_0803131C:
- .4byte _08031366
- .4byte _08031366
- .4byte _08031360
- .4byte _08031330
- .4byte _08031348
-_08031330:
- bl sub_80307EC
- ldr r1, _08031344
- ldr r1, [r1]
- strb r0, [r1, 0x4]
- movs r0, 0x1
- bl sub_80310E4
- b _08031366
- .align 2, 0
-_08031344: .4byte gUnknown_203B328
-_08031348:
- bl sub_80307EC
- ldr r1, _0803135C
- ldr r1, [r1]
- strb r0, [r1, 0x4]
- movs r0, 0x4
- bl sub_80310E4
- b _08031366
- .align 2, 0
-_0803135C: .4byte gUnknown_203B328
-_08031360:
- movs r0, 0x6
- bl sub_80310E4
-_08031366:
- pop {r0}
- bx r0
- thumb_func_end sub_8031300
-
- thumb_func_start sub_803136C
-sub_803136C:
- push {r4,lr}
- sub sp, 0x4
- movs r0, 0
- str r0, [sp]
- bl sub_8030768
- ldr r4, _080313A4
- ldr r0, [r4]
- adds r0, 0x8
- bl sub_8012FD8
- lsls r0, 24
- cmp r0, 0
- bne _08031392
- ldr r0, [r4]
- adds r0, 0x8
- mov r1, sp
- bl sub_8013114
-_08031392:
- ldr r0, [sp]
- cmp r0, 0x4
- beq _080313C2
- cmp r0, 0x4
- bgt _080313A8
- cmp r0, 0x1
- beq _080313B2
- b _080313D0
- .align 2, 0
-_080313A4: .4byte gUnknown_203B328
-_080313A8:
- cmp r0, 0x5
- beq _080313CA
- cmp r0, 0x6
- beq _080313BA
- b _080313D0
-_080313B2:
- movs r0, 0
- bl sub_80310E4
- b _080313D0
-_080313BA:
- movs r0, 0x3
- bl sub_80310E4
- b _080313D0
-_080313C2:
- movs r0, 0x2
- bl sub_80310E4
- b _080313D0
-_080313CA:
- movs r0, 0x4
- bl sub_80310E4
-_080313D0:
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_803136C
-
- thumb_func_start sub_80313D8
-sub_80313D8:
- push {r4,r5,lr}
- sub sp, 0x4
- adds r5, r0, 0
- movs r0, 0
- str r0, [sp]
- bl sub_8030768
- ldr r4, _08031418
- ldr r0, [r4]
- adds r0, 0x8
- bl sub_8012FD8
- ldr r0, [r4]
- adds r0, 0x58
- bl sub_8012FD8
- lsls r0, 24
- cmp r0, 0
- bne _08031408
- ldr r0, [r4]
- adds r0, 0x58
- mov r1, sp
- bl sub_8013114
-_08031408:
- ldr r0, [sp]
- cmp r0, 0x2
- beq _08031428
- cmp r0, 0x2
- bgt _0803141C
- cmp r0, 0x1
- beq _08031420
- b _0803148E
- .align 2, 0
-_08031418: .4byte gUnknown_203B328
-_0803141C:
- cmp r0, 0x3
- bne _0803148E
-_08031420:
- movs r0, 0
- bl sub_80310E4
- b _0803148E
-_08031428:
- cmp r5, 0x2
- beq _08031432
- cmp r5, 0x3
- beq _0803143C
- b _0803145A
-_08031432:
- ldr r0, [r4]
- ldrb r0, [r0, 0x4]
- bl sub_8095240
- b _0803145A
-_0803143C:
- ldr r4, _08031480
- movs r3, 0
- movs r1, 0
- movs r2, 0x1F
-_08031444:
- ldr r0, [r4]
- adds r0, r1
- strb r3, [r0]
- ldr r0, [r4]
- adds r0, r1
- adds r0, 0x22
- strb r3, [r0]
- adds r1, 0x30
- subs r2, 0x1
- cmp r2, 0
- bge _08031444
-_0803145A:
- ldr r0, _08031484
- ldr r0, [r0]
- movs r1, 0x8C
- lsls r1, 1
- adds r0, r1
- ldr r0, [r0]
- cmp r0, 0x2
- beq _0803146E
- cmp r0, 0x4
- bne _0803148E
-_0803146E:
- bl sub_8030C20
- lsls r0, 24
- cmp r0, 0
- beq _08031488
- movs r0, 0x5
- bl sub_80310E4
- b _0803148E
- .align 2, 0
-_08031480: .4byte gUnknown_203B480
-_08031484: .4byte gUnknown_203B328
-_08031488:
- movs r0, 0
- bl sub_80310E4
-_0803148E:
- add sp, 0x4
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_80313D8
-
- thumb_func_start sub_8031498
-sub_8031498:
- push {lr}
- bl sub_8030DA0
- cmp r0, 0x1
- bls _080314B0
- cmp r0, 0x3
- bhi _080314B0
- bl sub_8030DE4
- movs r0, 0
- bl sub_80310E4
-_080314B0:
- pop {r0}
- bx r0
- thumb_func_end sub_8031498
-
- thumb_func_start sub_80314B4
-sub_80314B4:
- push {r4-r6,lr}
- lsls r0, 16
- asrs r5, r0, 16
- bl ResetUnusedInputStruct
- movs r0, 0
- movs r1, 0x1
- movs r2, 0x1
- bl sub_800641C
- ldr r6, _08031534
- movs r0, 0x18
- movs r1, 0x8
- bl MemoryAlloc
- str r0, [r6]
- ldr r0, _08031538
- adds r1, r5, 0
- bl sub_808D8E0
- adds r0, r5, 0
- bl GetMonSpecies
- adds r1, r0, 0
- ldr r0, _0803153C
- bl strcpy
- ldr r0, [r6]
- movs r4, 0
- str r4, [r0, 0x8]
- str r4, [r0, 0xC]
- cmp r5, 0
- beq _0803151E
- adds r0, r5, 0
- bl GetDialogueSpriteDataPtr
- ldr r1, [r6]
- str r0, [r1, 0x8]
- strb r4, [r1, 0x14]
- ldr r0, [r6]
- strb r4, [r0, 0x15]
- ldr r0, [r6]
- strb r4, [r0, 0x16]
- ldr r1, [r6]
- movs r0, 0x2
- strh r0, [r1, 0x10]
- movs r0, 0x8
- strh r0, [r1, 0x12]
- ldr r0, [r1, 0x8]
- cmp r0, 0
- beq _0803151E
- ldr r0, [r0, 0x4]
- str r0, [r1, 0xC]
-_0803151E:
- ldr r0, _08031534
- ldr r1, [r0]
- movs r0, 0
- str r0, [r1, 0x4]
- movs r0, 0x1
- bl sub_80317C0
- movs r0, 0x1
- pop {r4-r6}
- pop {r1}
- bx r1
- .align 2, 0
-_08031534: .4byte gUnknown_203B32C
-_08031538: .4byte gUnknown_202E5D8
-_0803153C: .4byte gAvailablePokemonNames
- thumb_func_end sub_80314B4
-
- thumb_func_start sub_8031540
-sub_8031540:
- push {lr}
- ldr r0, _08031558
- ldr r0, [r0]
- ldrb r0, [r0]
- cmp r0, 0x9
- bhi _080315BA
- lsls r0, 2
- ldr r1, _0803155C
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08031558: .4byte gUnknown_203B32C
-_0803155C: .4byte _08031560
- .align 2, 0
-_08031560:
- .4byte _080315AC
- .4byte _08031588
- .4byte _08031588
- .4byte _0803158E
- .4byte _08031594
- .4byte _0803159A
- .4byte _080315A0
- .4byte _080315A6
- .4byte _080315B0
- .4byte _080315B6
-_08031588:
- bl sub_80317D8
- b _080315BA
-_0803158E:
- bl sub_8031848
- b _080315BA
-_08031594:
- bl sub_8031864
- b _080315BA
-_0803159A:
- bl sub_80318D0
- b _080315BA
-_080315A0:
- bl sub_80318EC
- b _080315BA
-_080315A6:
- bl sub_803192C
- b _080315BA
-_080315AC:
- movs r0, 0x3
- b _080315BC
-_080315B0:
- bl sub_8031948
- b _080315BA
-_080315B6:
- bl sub_8031988
-_080315BA:
- movs r0, 0
-_080315BC:
- pop {r1}
- bx r1
- thumb_func_end sub_8031540
-
- thumb_func_start sub_80315C0
-sub_80315C0:
- push {r4,lr}
- ldr r4, _080315E4
- ldr r0, [r4]
- cmp r0, 0
- beq _080315DE
- ldr r0, [r0, 0x8]
- cmp r0, 0
- beq _080315D4
- bl CloseFile
-_080315D4:
- ldr r0, [r4]
- bl MemoryFree
- movs r0, 0
- str r0, [r4]
-_080315DE:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080315E4: .4byte gUnknown_203B32C
- thumb_func_end sub_80315C0
-
- thumb_func_start nullsub_39
-nullsub_39:
- bx lr
- thumb_func_end nullsub_39
-
- thumb_func_start sub_80315EC
-sub_80315EC:
- push {r4,r5,lr}
- sub sp, 0x14
- movs r5, 0
- ldr r0, _08031618
- ldr r2, [r0]
- ldr r1, [r2, 0x8]
- adds r3, r0, 0
- cmp r1, 0
- beq _08031602
- adds r5, r2, 0
- adds r5, 0x8
-_08031602:
- ldrb r0, [r2]
- subs r0, 0x1
- cmp r0, 0x8
- bls _0803160C
- b _080317B0
-_0803160C:
- lsls r0, 2
- ldr r1, _0803161C
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08031618: .4byte gUnknown_203B32C
-_0803161C: .4byte _08031620
- .align 2, 0
-_08031620:
- .4byte _08031700
- .4byte _08031714
- .4byte _08031728
- .4byte _08031758
- .4byte _08031780
- .4byte _08031694
- .4byte _080316A8
- .4byte _08031644
- .4byte _08031658
-_08031644:
- ldr r0, _08031650
- ldr r1, [r3]
- ldr r2, [r1, 0x4]
- ldr r3, _08031654
- b _08031760
- .align 2, 0
-_08031650: .4byte gUnknown_80E0C4C
-_08031654: .4byte gUnknown_80E0BD4
-_08031658:
- ldr r0, [r3]
- ldr r0, [r0, 0x4]
- cmp r0, 0x10
- beq _0803167C
- cmp r0, 0x10
- bgt _0803166A
- cmp r0, 0xF
- beq _08031674
- b _080317B0
-_0803166A:
- cmp r0, 0x11
- beq _08031684
- cmp r0, 0x12
- beq _0803168C
- b _080317B0
-_08031674:
- ldr r0, _08031678
- b _08031790
- .align 2, 0
-_08031678: .4byte gUnknown_80E0C70
-_0803167C:
- ldr r0, _08031680
- b _08031790
- .align 2, 0
-_08031680: .4byte gUnknown_80E0DD0
-_08031684:
- ldr r0, _08031688
- b _08031790
- .align 2, 0
-_08031688: .4byte gUnknown_80E0ED8
-_0803168C:
- ldr r0, _08031690
- b _08031790
- .align 2, 0
-_08031690: .4byte gUnknown_80E10C8
-_08031694:
- ldr r0, _080316A0
- ldr r1, [r3]
- ldr r2, [r1, 0x4]
- ldr r3, _080316A4
- b _08031760
- .align 2, 0
-_080316A0: .4byte gUnknown_80E0C4C
-_080316A4: .4byte gUnknown_80E0B3C
-_080316A8:
- ldr r0, [r3]
- ldr r0, [r0, 0x4]
- subs r0, 0xA
- cmp r0, 0x4
- bls _080316B4
- b _080317B0
-_080316B4:
- lsls r0, 2
- ldr r1, _080316C0
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080316C0: .4byte _080316C4
- .align 2, 0
-_080316C4:
- .4byte _080316D8
- .4byte _080316E0
- .4byte _080316F0
- .4byte _080316E8
- .4byte _080316F8
-_080316D8:
- ldr r0, _080316DC
- b _08031790
- .align 2, 0
-_080316DC: .4byte gUnknown_80E120C
-_080316E0:
- ldr r0, _080316E4
- b _08031790
- .align 2, 0
-_080316E4: .4byte gUnknown_80E136C
-_080316E8:
- ldr r0, _080316EC
- b _08031790
- .align 2, 0
-_080316EC: .4byte gUnknown_80E1420
-_080316F0:
- ldr r0, _080316F4
- b _08031790
- .align 2, 0
-_080316F4: .4byte gUnknown_80E157C
-_080316F8:
- ldr r0, _080316FC
- b _08031790
- .align 2, 0
-_080316FC: .4byte gUnknown_80E169C
-_08031700:
- ldr r0, _0803170C
- ldr r1, [r3]
- ldr r2, [r1, 0x4]
- ldr r3, _08031710
- b _08031760
- .align 2, 0
-_0803170C: .4byte gUnknown_80E17C8
-_08031710: .4byte gUnknown_80E0A48
-_08031714:
- ldr r0, _08031720
- ldr r1, [r3]
- ldr r2, [r1, 0x4]
- ldr r3, _08031724
- b _08031760
- .align 2, 0
-_08031720: .4byte gUnknown_80E183C
-_08031724: .4byte gUnknown_80E0A48
-_08031728:
- ldr r0, [r3]
- ldr r0, [r0, 0x4]
- cmp r0, 0x1
- beq _08031748
- cmp r0, 0x1
- bgt _0803173A
- cmp r0, 0
- beq _08031740
- b _080317B0
-_0803173A:
- cmp r0, 0x2
- beq _08031750
- b _080317B0
-_08031740:
- ldr r0, _08031744
- b _08031790
- .align 2, 0
-_08031744: .4byte gUnknown_80E1868
-_08031748:
- ldr r0, _0803174C
- b _08031790
- .align 2, 0
-_0803174C: .4byte gUnknown_80E1A30
-_08031750:
- ldr r0, _08031754
- b _08031790
- .align 2, 0
-_08031754: .4byte gUnknown_80E1AD8
-_08031758:
- ldr r0, _08031778
- ldr r1, [r3]
- ldr r2, [r1, 0x4]
- ldr r3, _0803177C
-_08031760:
- movs r4, 0
- str r4, [sp]
- movs r1, 0x4
- str r1, [sp, 0x4]
- str r4, [sp, 0x8]
- str r5, [sp, 0xC]
- movs r1, 0xC
- str r1, [sp, 0x10]
- movs r1, 0
- bl sub_8014248
- b _080317B0
- .align 2, 0
-_08031778: .4byte gUnknown_80E0C4C
-_0803177C: .4byte gUnknown_80E0ABC
-_08031780:
- ldr r0, [r3]
- ldr r0, [r0, 0x4]
- cmp r0, 0x6
- beq _0803178E
- cmp r0, 0x9
- beq _080317A4
- b _080317B0
-_0803178E:
- ldr r0, _0803179C
-_08031790:
- ldr r3, _080317A0
- movs r1, 0
- adds r2, r5, 0
- bl sub_80141B4
- b _080317B0
- .align 2, 0
-_0803179C: .4byte gUnknown_80E1B88
-_080317A0: .4byte 0x0000010d
-_080317A4:
- ldr r0, _080317B8
- ldr r3, _080317BC
- movs r1, 0
- adds r2, r5, 0
- bl sub_80141B4
-_080317B0:
- add sp, 0x14
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080317B8: .4byte gUnknown_80E1D84
-_080317BC: .4byte 0x0000010d
- thumb_func_end sub_80315EC
-
- thumb_func_start sub_80317C0
-sub_80317C0:
- push {lr}
- ldr r1, _080317D4
- ldr r1, [r1]
- strb r0, [r1]
- bl nullsub_39
- bl sub_80315EC
- pop {r0}
- bx r0
- .align 2, 0
-_080317D4: .4byte gUnknown_203B32C
- thumb_func_end sub_80317C0
-
- thumb_func_start sub_80317D8
-sub_80317D8:
- push {lr}
- sub sp, 0x4
- mov r0, sp
- bl sub_80144A4
- cmp r0, 0
- bne _0803183C
- ldr r2, [sp]
- cmp r2, 0x5
- bhi _0803183C
- lsls r0, r2, 2
- ldr r1, _080317F8
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080317F8: .4byte _080317FC
- .align 2, 0
-_080317FC:
- .4byte _08031830
- .4byte _08031830
- .4byte _08031830
- .4byte _0803181C
- .4byte _08031814
- .4byte _08031814
-_08031814:
- movs r0, 0
- bl sub_80317C0
- b _0803183C
-_0803181C:
- ldr r0, _0803182C
- ldr r0, [r0]
- str r2, [r0, 0x4]
- movs r0, 0x4
- bl sub_80317C0
- b _0803183C
- .align 2, 0
-_0803182C: .4byte gUnknown_203B32C
-_08031830:
- ldr r0, _08031844
- ldr r0, [r0]
- str r2, [r0, 0x4]
- movs r0, 0x3
- bl sub_80317C0
-_0803183C:
- add sp, 0x4
- pop {r0}
- bx r0
- .align 2, 0
-_08031844: .4byte gUnknown_203B32C
- thumb_func_end sub_80317D8
-
- thumb_func_start sub_8031848
-sub_8031848:
- push {lr}
- sub sp, 0x4
- mov r0, sp
- bl sub_80144A4
- cmp r0, 0
- bne _0803185C
- movs r0, 0x2
- bl sub_80317C0
-_0803185C:
- add sp, 0x4
- pop {r0}
- bx r0
- thumb_func_end sub_8031848
-
- thumb_func_start sub_8031864
-sub_8031864:
- push {lr}
- sub sp, 0x4
- mov r0, sp
- bl sub_80144A4
- cmp r0, 0
- bne _080318C4
- ldr r0, [sp]
- subs r1, r0, 0x5
- adds r2, r0, 0
- cmp r1, 0x4
- bhi _080318C4
- lsls r0, r1, 2
- ldr r1, _08031888
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08031888: .4byte _0803188C
- .align 2, 0
-_0803188C:
- .4byte _080318A0
- .4byte _080318B8
- .4byte _080318A8
- .4byte _080318B0
- .4byte _080318B8
-_080318A0:
- movs r0, 0x2
- bl sub_80317C0
- b _080318C4
-_080318A8:
- movs r0, 0x6
- bl sub_80317C0
- b _080318C4
-_080318B0:
- movs r0, 0x8
- bl sub_80317C0
- b _080318C4
-_080318B8:
- ldr r0, _080318CC
- ldr r0, [r0]
- str r2, [r0, 0x4]
- movs r0, 0x5
- bl sub_80317C0
-_080318C4:
- add sp, 0x4
- pop {r0}
- bx r0
- .align 2, 0
-_080318CC: .4byte gUnknown_203B32C
- thumb_func_end sub_8031864
-
- thumb_func_start sub_80318D0
-sub_80318D0:
- push {lr}
- sub sp, 0x4
- mov r0, sp
- bl sub_80144A4
- cmp r0, 0
- bne _080318E4
- movs r0, 0x4
- bl sub_80317C0
-_080318E4:
- add sp, 0x4
- pop {r0}
- bx r0
- thumb_func_end sub_80318D0
-
- thumb_func_start sub_80318EC
-sub_80318EC:
- push {lr}
- sub sp, 0x4
- mov r0, sp
- bl sub_80144A4
- cmp r0, 0
- bne _08031920
- ldr r1, [sp]
- cmp r1, 0x5
- bne _08031908
- movs r0, 0x4
- bl sub_80317C0
- b _08031920
-_08031908:
- cmp r1, 0x5
- blt _08031920
- cmp r1, 0xE
- bgt _08031920
- cmp r1, 0xA
- blt _08031920
- ldr r0, _08031928
- ldr r0, [r0]
- str r1, [r0, 0x4]
- movs r0, 0x7
- bl sub_80317C0
-_08031920:
- add sp, 0x4
- pop {r0}
- bx r0
- .align 2, 0
-_08031928: .4byte gUnknown_203B32C
- thumb_func_end sub_80318EC
-
- thumb_func_start sub_803192C
-sub_803192C:
- push {lr}
- sub sp, 0x4
- mov r0, sp
- bl sub_80144A4
- cmp r0, 0
- bne _08031940
- movs r0, 0x6
- bl sub_80317C0
-_08031940:
- add sp, 0x4
- pop {r0}
- bx r0
- thumb_func_end sub_803192C
-
- thumb_func_start sub_8031948
-sub_8031948:
- push {lr}
- sub sp, 0x4
- mov r0, sp
- bl sub_80144A4
- cmp r0, 0
- bne _0803197C
- ldr r1, [sp]
- cmp r1, 0x5
- bne _08031964
- movs r0, 0x4
- bl sub_80317C0
- b _0803197C
-_08031964:
- cmp r1, 0x5
- blt _0803197C
- cmp r1, 0x12
- bgt _0803197C
- cmp r1, 0xF
- blt _0803197C
- ldr r0, _08031984
- ldr r0, [r0]
- str r1, [r0, 0x4]
- movs r0, 0x9
- bl sub_80317C0
-_0803197C:
- add sp, 0x4
- pop {r0}
- bx r0
- .align 2, 0
-_08031984: .4byte gUnknown_203B32C
- thumb_func_end sub_8031948
-
- thumb_func_start sub_8031988
-sub_8031988:
- push {lr}
- sub sp, 0x4
- mov r0, sp
- bl sub_80144A4
- cmp r0, 0
- bne _0803199C
- movs r0, 0x8
- bl sub_80317C0
-_0803199C:
- add sp, 0x4
- pop {r0}
- bx r0
- thumb_func_end sub_8031988
-
- thumb_func_start sub_80319A4
-sub_80319A4:
- 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, _080319F4
- movs r0, 0x78
- 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
- ldr r1, [r6]
- mov r0, r8
- str r0, [r1, 0x10]
- lsls r0, 1
- add r0, r8
- lsls r0, 3
- adds r0, 0x18
- adds r0, r1, r0
- str r0, [r1, 0x14]
- bl sub_8031A2C
- movs r0, 0x1
- pop {r3}
- mov r8, r3
- pop {r4-r6}
- pop {r1}
- bx r1
- .align 2, 0
-_080319F4: .4byte gUnknown_203B330
- thumb_func_end sub_80319A4
-
- thumb_func_start sub_80319F8
-sub_80319F8:
- push {lr}
- ldr r0, _08031A18
- ldr r0, [r0]
- ldr r1, [r0, 0x10]
- bl sub_8012A64
- cmp r0, 0x1
- beq _08031A1C
- cmp r0, 0x2
- bne _08031A26
- movs r0, 0x1
- bl PlayMenuSoundEffect
- movs r0, 0x2
- b _08031A28
- .align 2, 0
-_08031A18: .4byte gUnknown_203B330
-_08031A1C:
- movs r0, 0
- bl PlayMenuSoundEffect
- movs r0, 0x3
- b _08031A28
-_08031A26:
- movs r0, 0
-_08031A28:
- pop {r1}
- bx r1
- thumb_func_end sub_80319F8
-
- thumb_func_start sub_8031A2C
-sub_8031A2C:
- push {lr}
- bl sub_8031A84
- bl sub_8031AE8
- pop {r0}
- bx r0
- thumb_func_end sub_8031A2C
-
- thumb_func_start sub_8031A3C
-sub_8031A3C:
- push {r4,r5,lr}
- ldr r4, _08031A7C
- ldr r2, [r4]
- cmp r2, 0
- beq _08031A76
- ldr r0, [r2, 0x10]
- lsls r1, r0, 1
- adds r1, r0
- lsls r1, 3
- adds r1, r2, r1
- adds r1, 0x18
- ldr r0, _08031A80
- 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, 0x18
- movs r1, 0x1
- movs r2, 0x1
- bl sub_800641C
- ldr r0, [r4]
- bl MemoryFree
- movs r0, 0
- str r0, [r4]
-_08031A76:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08031A7C: .4byte gUnknown_203B330
-_08031A80: .4byte gUnknown_80E1EFC
- thumb_func_end sub_8031A3C
-
- thumb_func_start sub_8031A84
-sub_8031A84:
- push {r4,r5,lr}
- ldr r4, _08031AE0
- ldr r0, [r4]
- adds r0, 0x18
- bl sub_8006518
- ldr r1, [r4]
- ldr r2, [r1, 0x10]
- lsls r0, r2, 1
- adds r0, r2
- lsls r0, 3
- adds r1, r0
- adds r1, 0x18
- ldr r0, _08031AE4
- ldm r0!, {r2,r3,r5}
- stm r1!, {r2,r3,r5}
- ldm r0!, {r2,r3,r5}
- stm r1!, {r2,r3,r5}
- ldr r1, [r4]
- ldrb r0, [r1, 0xC]
- cmp r0, 0x2
- bne _08031AC6
- ldrb r0, [r1, 0xD]
- bl sub_80969D0
- adds r1, r0, 0
- cmp r1, 0
- bne _08031ABE
- movs r1, 0x1
-_08031ABE:
- ldr r0, [r4]
- ldr r0, [r0, 0x14]
- bl sub_8012D08
-_08031AC6:
- bl ResetUnusedInputStruct
- ldr r0, _08031AE0
- ldr r0, [r0]
- adds r0, 0x18
- movs r1, 0x1
- movs r2, 0x1
- bl sub_800641C
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08031AE0: .4byte gUnknown_203B330
-_08031AE4: .4byte gUnknown_80E1F18
- thumb_func_end sub_8031A84
-
- thumb_func_start sub_8031AE8
-sub_8031AE8:
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0xDC
- ldr r7, _08031B24
- ldr r0, [r7]
- ldr r0, [r0, 0x10]
- bl sub_80073B8
- ldr r2, _08031B28
- ldr r0, [r7]
- ldr r3, [r0, 0x10]
- movs r6, 0
- str r6, [sp]
- movs r0, 0xA
- movs r1, 0
- bl xxx_call_draw_string
- ldr r1, [r7]
- ldrb r0, [r1, 0xC]
- cmp r0, 0x1
- beq _08031B2C
- cmp r0, 0x1
- bgt _08031B1E
- b _08031CD4
-_08031B1E:
- cmp r0, 0x2
- beq _08031B94
- b _08031CD4
- .align 2, 0
-_08031B24: .4byte gUnknown_203B330
-_08031B28: .4byte gUnknown_80E1F30
-_08031B2C:
- add r4, sp, 0x68
- adds r0, r4, 0
- bl sub_8099394
- ldrb r0, [r4]
- bl sub_8095228
- adds r5, r0, 0
- ldr r0, [r7]
- ldr r3, [r0, 0x10]
- movs r0, 0xA
- movs r1, 0x10
- movs r2, 0x3
- bl sub_803B6B0
- ldr r1, _08031B8C
- ldrb r2, [r5, 0x5]
- add r0, sp, 0x4
- bl sub_800D158
- ldr r0, [r7]
- ldr r3, [r0, 0x10]
- str r6, [sp]
- movs r0, 0x15
- movs r1, 0x10
- add r2, sp, 0x4
- bl xxx_call_draw_string
- ldr r4, _08031B90
- movs r1, 0xC
- ldrsh r0, [r5, r1]
- bl GetMonSpecies
- adds r2, r0, 0
- add r0, sp, 0x4
- adds r1, r4, 0
- bl sub_800D158
- ldr r0, [r7]
- ldr r3, [r0, 0x10]
- str r6, [sp]
- movs r0, 0x28
- movs r1, 0x10
- add r2, sp, 0x4
- bl xxx_call_draw_string
- b _08031D4E
- .align 2, 0
-_08031B8C: .4byte gUnknown_80E1F3C
-_08031B90: .4byte gUnknown_80E1F40
-_08031B94:
- ldrb r0, [r1, 0xD]
- bl sub_80969D0
- adds r1, r0, 0
- cmp r1, 0
- bne _08031BB0
- ldr r2, _08031BAC
- ldr r0, [r7]
- ldr r3, [r0, 0x10]
- str r1, [sp]
- b _08031D2C
- .align 2, 0
-_08031BAC: .4byte gUnknown_80E1F54
-_08031BB0:
- movs r6, 0x10
- movs r2, 0
- mov r10, r2
- mov r8, r2
- ldr r0, _08031C28
- mov r9, r0
- mov r1, sp
- adds r1, 0x6C
- str r1, [sp, 0xD8]
-_08031BC2:
- mov r2, r10
- lsls r0, r2, 24
- lsrs r0, 24
- bl sub_8096AB4
- adds r4, r0, 0
- ldr r1, [r7]
- ldrb r0, [r4, 0x4]
- ldrb r2, [r1, 0xD]
- cmp r0, r2
- bne _08031CC2
- ldrb r0, [r4]
- cmp r0, 0
- beq _08031CC2
- cmp r0, 0x5
- beq _08031CC2
- cmp r0, 0x7
- beq _08031CC2
- ldr r3, [r1, 0x10]
- movs r0, 0xA
- adds r1, r6, 0
- movs r2, 0x3
- bl sub_803B6B0
- ldrb r0, [r4, 0x1]
- add r5, sp, 0x6C
- cmp r0, 0x3
- beq _08031C16
- ldrb r2, [r4, 0x5]
- ldr r0, [sp, 0xD8]
- ldr r1, _08031C2C
- bl sub_800D158
- ldr r0, [r7]
- ldr r3, [r0, 0x10]
- mov r0, r8
- str r0, [sp]
- movs r0, 0x15
- adds r1, r6, 0
- ldr r2, [sp, 0xD8]
- bl xxx_call_draw_string
-_08031C16:
- ldrb r0, [r4, 0x1]
- cmp r0, 0x3
- beq _08031C58
- cmp r0, 0x3
- bgt _08031C30
- cmp r0, 0x2
- beq _08031C70
- b _08031C9C
- .align 2, 0
-_08031C28: .4byte gUnknown_202DE58
-_08031C2C: .4byte gUnknown_80E1F3C
-_08031C30:
- cmp r0, 0x4
- bne _08031C9C
- ldrb r1, [r4, 0x10]
- mov r0, r9
- movs r2, 0
- bl sub_8090DC4
- adds r0, r5, 0
- ldr r1, _08031C54
- mov r2, r9
- bl sub_800D158
- ldr r0, [r7]
- ldr r3, [r0, 0x10]
- mov r1, r8
- str r1, [sp]
- b _08031C8A
- .align 2, 0
-_08031C54: .4byte gUnknown_80E1F60
-_08031C58:
- ldrb r1, [r4, 0x10]
- mov r0, r9
- movs r2, 0
- bl sub_8090DC4
- adds r0, r5, 0
- ldr r1, _08031C6C
- mov r2, r9
- b _08031C7E
- .align 2, 0
-_08031C6C: .4byte gUnknown_80E1F70
-_08031C70:
- movs r1, 0xE
- ldrsh r0, [r4, r1]
- bl GetMonSpecies
- adds r2, r0, 0
- adds r0, r5, 0
- ldr r1, _08031C98
-_08031C7E:
- bl sub_800D158
- ldr r0, [r7]
- ldr r3, [r0, 0x10]
- mov r2, r8
- str r2, [sp]
-_08031C8A:
- movs r0, 0x28
- adds r1, r6, 0
- adds r2, r5, 0
- bl xxx_call_draw_string
- b _08031CC0
- .align 2, 0
-_08031C98: .4byte gUnknown_80E1F80
-_08031C9C:
- movs r1, 0xE
- ldrsh r0, [r4, r1]
- bl GetMonSpecies
- adds r2, r0, 0
- adds r0, r5, 0
- ldr r1, _08031CD0
- bl sub_800D158
- ldr r0, [r7]
- ldr r3, [r0, 0x10]
- mov r2, r8
- str r2, [sp]
- movs r0, 0x28
- adds r1, r6, 0
- adds r2, r5, 0
- bl xxx_call_draw_string
-_08031CC0:
- adds r6, 0xC
-_08031CC2:
- movs r0, 0x1
- add r10, r0
- mov r1, r10
- cmp r1, 0x7
- bgt _08031CCE
- b _08031BC2
-_08031CCE:
- b _08031D4E
- .align 2, 0
-_08031CD0: .4byte gUnknown_80E1F40
-_08031CD4:
- add r0, sp, 0xD0
- mov r4, sp
- adds r4, 0xD2
- adds r1, r4, 0
- bl sub_80992E0
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0
- beq _08031D04
- movs r2, 0
- ldrsh r0, [r4, r2]
- bl GetCurrentMissionText
- adds r2, r0, 0
- ldr r0, _08031D00
- ldr r0, [r0]
- ldr r3, [r0, 0x10]
- movs r0, 0
- str r0, [sp]
- b _08031D2C
- .align 2, 0
-_08031D00: .4byte gUnknown_203B330
-_08031D04:
- add r4, sp, 0xD4
- adds r0, r4, 0
- bl sub_8099360
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0
- beq _08031D3C
- ldrb r0, [r4]
- bl sub_80A2688
- lsls r0, 16
- asrs r0, 16
- bl sub_80975DC
- adds r2, r0, 0
- ldr r0, _08031D38
- ldr r0, [r0]
- ldr r3, [r0, 0x10]
- str r5, [sp]
-_08031D2C:
- movs r0, 0xA
- movs r1, 0x10
- bl xxx_call_draw_string
- b _08031D4E
- .align 2, 0
-_08031D38: .4byte gUnknown_203B330
-_08031D3C:
- ldr r2, _08031D68
- ldr r0, _08031D6C
- ldr r0, [r0]
- ldr r3, [r0, 0x10]
- str r1, [sp]
- movs r0, 0xA
- movs r1, 0x10
- bl xxx_call_draw_string
-_08031D4E:
- ldr r0, _08031D6C
- ldr r0, [r0]
- ldr r0, [r0, 0x10]
- bl sub_80073E0
- add sp, 0xDC
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08031D68: .4byte gUnknown_80E1F94
-_08031D6C: .4byte gUnknown_203B330
- thumb_func_end sub_8031AE8
-
- thumb_func_start sub_8031D70
-sub_8031D70:
- push {r4-r6,lr}
- adds r6, r0, 0
- adds r4, r1, 0
- ldr r5, _08031DC4
- movs r0, 0x7C
- movs r1, 0x8
- bl MemoryAlloc
- str r0, [r5]
- stm r0!, {r6}
- bl sub_801317C
- ldr r0, [r5]
- str r4, [r0, 0x10]
- lsls r1, r4, 1
- adds r1, r4
- lsls r1, 3
- adds r1, 0x18
- adds r1, r0, r1
- str r1, [r0, 0x14]
- adds r0, 0x18
- bl sub_8006518
- ldr r1, [r5]
- ldr r2, [r1, 0x10]
- lsls r0, r2, 1
- adds r0, r2
- lsls r0, 3
- adds r1, r0
- adds r1, 0x18
- ldr r0, _08031DC8
- ldm r0!, {r2-r4}
- stm r1!, {r2-r4}
- ldm r0!, {r2-r4}
- stm r1!, {r2-r4}
- bl sub_8031E00
- movs r0, 0x1
- pop {r4-r6}
- pop {r1}
- bx r1
- .align 2, 0
-_08031DC4: .4byte gUnknown_203B334
-_08031DC8: .4byte gUnknown_80E1FC4
- thumb_func_end sub_8031D70
-
- thumb_func_start sub_8031DCC
-sub_8031DCC:
- push {lr}
- ldr r0, _08031DEC
- ldr r1, [r0]
- adds r0, r1, 0x4
- ldr r1, [r1, 0x10]
- bl sub_8012A64
- cmp r0, 0x1
- beq _08031DF0
- cmp r0, 0x2
- bne _08031DFA
- movs r0, 0x1
- bl PlayMenuSoundEffect
- movs r0, 0x2
- b _08031DFC
- .align 2, 0
-_08031DEC: .4byte gUnknown_203B334
-_08031DF0:
- movs r0, 0
- bl PlayMenuSoundEffect
- movs r0, 0x3
- b _08031DFC
-_08031DFA:
- movs r0, 0
-_08031DFC:
- pop {r1}
- bx r1
- thumb_func_end sub_8031DCC
-
- thumb_func_start sub_8031E00
-sub_8031E00:
- push {lr}
- bl sub_8031E58
- bl sub_8031E74
- pop {r0}
- bx r0
- thumb_func_end sub_8031E00
-
- thumb_func_start sub_8031E10
-sub_8031E10:
- push {r4,r5,lr}
- ldr r4, _08031E50
- ldr r2, [r4]
- cmp r2, 0
- beq _08031E4A
- ldr r0, [r2, 0x10]
- lsls r1, r0, 1
- adds r1, r0
- lsls r1, 3
- adds r1, r2, r1
- adds r1, 0x18
- ldr r0, _08031E54
- 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, 0x18
- movs r1, 0x1
- movs r2, 0x1
- bl sub_800641C
- ldr r0, [r4]
- bl MemoryFree
- movs r0, 0
- str r0, [r4]
-_08031E4A:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08031E50: .4byte gUnknown_203B334
-_08031E54: .4byte gUnknown_80E1FA8
- thumb_func_end sub_8031E10
-
- thumb_func_start sub_8031E58
-sub_8031E58:
- push {lr}
- bl ResetUnusedInputStruct
- ldr r0, _08031E70
- ldr r0, [r0]
- adds r0, 0x18
- movs r1, 0x1
- movs r2, 0x1
- bl sub_800641C
- pop {r0}
- bx r0
- .align 2, 0
-_08031E70: .4byte gUnknown_203B334
- thumb_func_end sub_8031E58
-
- thumb_func_start sub_8031E74
-sub_8031E74:
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x3C
- ldr r3, _08031EC0
- ldr r5, _08031EC4
- ldr r2, [r5]
- ldr r1, [r2]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 4
- ldr r4, [r3]
- adds r4, r0
- ldr r0, [r2, 0x10]
- bl sub_80073B8
- ldr r2, _08031EC8
- ldr r0, [r5]
- ldr r3, [r0, 0x10]
- movs r0, 0
- str r0, [sp]
- movs r0, 0x14
- movs r1, 0
- bl xxx_call_draw_string
- add r0, sp, 0x4
- adds r1, r4, 0
- bl sub_803D2C0
- movs r7, 0
- mov r8, r5
-_08031EB2:
- cmp r7, 0x4
- ble _08031ED0
- cmp r7, 0xC
- bgt _08031ECC
- movs r6, 0x6
- movs r5, 0x16
- b _08031F00
- .align 2, 0
-_08031EC0: .4byte gUnknown_203B480
-_08031EC4: .4byte gUnknown_203B334
-_08031EC8: .4byte gUnknown_80E1FDC
-_08031ECC:
- cmp r7, 0x11
- bgt _08031ED6
-_08031ED0:
- movs r6, 0x7
- movs r5, 0x15
- b _08031F00
-_08031ED6:
- cmp r7, 0x16
- ble _08031EE8
- cmp r7, 0x1E
- bgt _08031EE4
- movs r6, 0x6
- movs r5, 0x25
- b _08031F00
-_08031EE4:
- cmp r7, 0x23
- bgt _08031EEE
-_08031EE8:
- movs r6, 0x7
- movs r5, 0x24
- b _08031F00
-_08031EEE:
- cmp r7, 0x28
- ble _08031EFC
- cmp r7, 0x30
- bgt _08031EFC
- movs r6, 0x6
- movs r5, 0x34
- b _08031F00
-_08031EFC:
- movs r6, 0x7
- movs r5, 0x33
-_08031F00:
- adds r0, r7, 0
- movs r1, 0x12
- bl __modsi3
- movs r1, 0xB
- adds r4, r0, 0
- muls r4, r1
- adds r4, 0x6
- mov r0, sp
- adds r0, r7
- adds r0, 0x4
- ldrb r2, [r0]
- mov r1, r8
- ldr r0, [r1]
- ldr r0, [r0, 0x10]
- str r0, [sp]
- adds r0, r4, 0
- adds r1, r5, 0
- adds r3, r6, 0
- bl sub_8012C60
- mov r1, r8
- ldr r0, [r1]
- ldr r0, [r0, 0x10]
- adds r2, r5, 0
- adds r2, 0xA
- movs r1, 0x5
- str r1, [sp]
- adds r1, r4, 0
- movs r3, 0xA
- bl sub_80078A4
- adds r7, 0x1
- cmp r7, 0x35
- ble _08031EB2
- ldr r0, _08031F5C
- ldr r0, [r0]
- ldr r0, [r0, 0x10]
- bl sub_80073E0
- add sp, 0x3C
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08031F5C: .4byte gUnknown_203B334
- thumb_func_end sub_8031E74
-
.align 2,0
diff --git a/asm/wonder_mail_4.s b/asm/wonder_mail_4.s
new file mode 100644
index 0000000..f250af6
--- /dev/null
+++ b/asm/wonder_mail_4.s
@@ -0,0 +1,1821 @@
+ .include "constants/gba_constants.inc"
+ .include "asm/macros.inc"
+
+ .syntax unified
+
+ .text
+
+ thumb_func_start sub_80306A8
+sub_80306A8:
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ adds r4, r0, 0
+ adds r5, r1, 0
+ adds r7, r2, 0
+ mov r8, r3
+ bl sub_8030C20
+ lsls r0, 24
+ cmp r0, 0
+ beq _080306C4
+ movs r0, 0
+ b _08030756
+_080306C4:
+ ldr r6, _08030760
+ movs r0, 0xC4
+ movs r1, 0x8
+ bl MemoryAlloc
+ str r0, [r6]
+ str r4, [r0, 0x20]
+ str r5, [r0, 0x58]
+ lsls r1, r5, 1
+ adds r1, r5
+ lsls r1, 3
+ adds r1, 0x60
+ adds r1, r0, r1
+ str r1, [r0, 0x5C]
+ adds r0, 0x60
+ bl sub_8006518
+ ldr r1, [r6]
+ ldr r2, [r1, 0x58]
+ lsls r0, r2, 1
+ adds r0, r2
+ lsls r0, 3
+ adds r1, r0
+ adds r1, 0x60
+ ldr r0, _08030764
+ ldm r0!, {r2-r4}
+ stm r1!, {r2-r4}
+ ldm r0!, {r2-r4}
+ stm r1!, {r2-r4}
+ ldr r2, [r6]
+ ldr r1, [r2, 0x5C]
+ adds r0, r2, 0
+ adds r0, 0xC0
+ str r0, [r1, 0x14]
+ cmp r7, 0
+ beq _0803071E
+ ldr r1, [r2, 0x58]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 3
+ adds r1, r2, 0
+ adds r1, 0x68
+ adds r1, r0
+ ldr r0, [r7]
+ str r0, [r1]
+_0803071E:
+ ldr r0, [r6]
+ ldr r0, [r0, 0x5C]
+ mov r1, r8
+ bl sub_8012D08
+ bl ResetUnusedInputStruct
+ ldr r0, [r6]
+ adds r0, 0x60
+ movs r1, 0x1
+ movs r2, 0x1
+ bl sub_800641C
+ ldr r4, [r6]
+ adds r4, 0x24
+ bl sub_8030A74
+ adds r1, r0, 0
+ adds r0, r4, 0
+ mov r2, r8
+ adds r3, r5, 0
+ bl sub_8013818
+ bl sub_80308A0
+ bl sub_803092C
+ movs r0, 0x1
+_08030756:
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08030760: .4byte gUnknown_203B320
+_08030764: .4byte gUnknown_80E0854
+ thumb_func_end sub_80306A8
+
+ thumb_func_start sub_8030768
+sub_8030768:
+ push {lr}
+ lsls r0, 24
+ cmp r0, 0
+ bne _08030784
+ ldr r0, _08030780
+ ldr r0, [r0]
+ adds r0, 0x24
+ bl sub_8013660
+ movs r0, 0
+ b _080307E6
+ .align 2, 0
+_08030780: .4byte gUnknown_203B320
+_08030784:
+ ldr r0, _0803079C
+ ldr r0, [r0]
+ adds r0, 0x24
+ bl GetKeyPress
+ cmp r0, 0x2
+ beq _080307AE
+ cmp r0, 0x2
+ bgt _080307A0
+ cmp r0, 0x1
+ beq _080307B8
+ b _080307C2
+ .align 2, 0
+_0803079C: .4byte gUnknown_203B320
+_080307A0:
+ cmp r0, 0x4
+ bne _080307C2
+ movs r0, 0x4
+ bl PlayMenuSoundEffect
+ movs r0, 0x4
+ b _080307E6
+_080307AE:
+ movs r0, 0x1
+ bl PlayMenuSoundEffect
+ movs r0, 0x2
+ b _080307E6
+_080307B8:
+ movs r0, 0
+ bl PlayMenuSoundEffect
+ movs r0, 0x3
+ b _080307E6
+_080307C2:
+ ldr r0, _080307D8
+ ldr r0, [r0]
+ adds r0, 0x24
+ movs r1, 0x1
+ bl sub_80138B8
+ lsls r0, 24
+ cmp r0, 0
+ bne _080307DC
+ movs r0, 0
+ b _080307E6
+ .align 2, 0
+_080307D8: .4byte gUnknown_203B320
+_080307DC:
+ bl sub_80308A0
+ bl sub_803092C
+ movs r0, 0x1
+_080307E6:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8030768
+
+ thumb_func_start sub_80307EC
+sub_80307EC:
+ ldr r0, _0803080C
+ ldr r2, [r0]
+ adds r0, r2, 0
+ adds r0, 0x42
+ movs r3, 0
+ ldrsh r1, [r0, r3]
+ subs r0, 0x2
+ movs r3, 0
+ ldrsh r0, [r0, r3]
+ muls r0, r1
+ movs r3, 0x3C
+ ldrsh r1, [r2, r3]
+ adds r0, r1
+ adds r2, r0
+ ldrb r0, [r2]
+ bx lr
+ .align 2, 0
+_0803080C: .4byte gUnknown_203B320
+ thumb_func_end sub_80307EC
+
+ thumb_func_start sub_8030810
+sub_8030810:
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ bl sub_8030A74
+ adds r1, r0, 0
+ ldr r5, _08030848
+ ldr r0, [r5]
+ adds r2, r0, 0
+ adds r2, 0x46
+ strh r1, [r2]
+ adds r0, 0x24
+ bl sub_8013984
+ bl sub_80308A0
+ bl sub_803092C
+ cmp r4, 0
+ beq _08030842
+ ldr r0, [r5]
+ adds r0, 0x24
+ bl AddMenuCursorSprite
+_08030842:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08030848: .4byte gUnknown_203B320
+ thumb_func_end sub_8030810
+
+ thumb_func_start sub_803084C
+sub_803084C:
+ push {r4,r5,lr}
+ ldr r4, _0803088C
+ ldr r2, [r4]
+ cmp r2, 0
+ beq _08030886
+ ldr r0, [r2, 0x58]
+ lsls r1, r0, 1
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r2, r1
+ adds r1, 0x60
+ ldr r0, _08030890
+ 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, 0x60
+ movs r1, 0x1
+ movs r2, 0x1
+ bl sub_800641C
+ ldr r0, [r4]
+ bl MemoryFree
+ movs r0, 0
+ str r0, [r4]
+_08030886:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0803088C: .4byte gUnknown_203B320
+_08030890: .4byte gUnknown_80E083C
+ thumb_func_end sub_803084C
+
+ thumb_func_start sub_8030894
+sub_8030894:
+ ldr r0, _0803089C
+ ldr r0, [r0]
+ bx lr
+ .align 2, 0
+_0803089C: .4byte gUnknown_203B320
+ thumb_func_end sub_8030894
+
+ thumb_func_start sub_80308A0
+sub_80308A0:
+ push {r4,lr}
+ ldr r4, _08030928
+ ldr r0, [r4]
+ adds r1, r0, 0
+ adds r1, 0x44
+ ldrh r1, [r1]
+ adds r0, 0xC0
+ movs r2, 0
+ strb r1, [r0]
+ ldr r0, [r4]
+ adds r1, r0, 0
+ adds r1, 0x42
+ ldrh r1, [r1]
+ adds r0, 0xC1
+ strb r1, [r0]
+ ldr r0, [r4]
+ adds r0, 0xC2
+ movs r1, 0xC
+ strb r1, [r0]
+ ldr r0, [r4]
+ adds r0, 0xC3
+ strb r2, [r0]
+ bl ResetUnusedInputStruct
+ ldr r0, [r4]
+ adds r0, 0x60
+ movs r1, 0x1
+ movs r2, 0x1
+ bl sub_800641C
+ ldr r0, [r4]
+ movs r1, 0x3E
+ ldrsh r0, [r0, r1]
+ movs r1, 0xC
+ bl sub_80095E4
+ adds r0, 0x2
+ lsls r0, 16
+ ldr r2, [r4]
+ ldr r3, [r2, 0x58]
+ lsls r1, r3, 1
+ adds r1, r3
+ lsls r1, 3
+ adds r1, r2, r1
+ adds r1, 0x6E
+ asrs r3, r0, 16
+ lsrs r0, 16
+ strh r0, [r1]
+ ldr r1, [r2, 0x58]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 3
+ adds r2, r0
+ adds r3, 0x2
+ adds r2, 0x70
+ strh r3, [r2]
+ bl ResetUnusedInputStruct
+ ldr r0, [r4]
+ adds r0, 0x60
+ movs r1, 0x1
+ movs r2, 0x1
+ bl sub_800641C
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08030928: .4byte gUnknown_203B320
+ thumb_func_end sub_80308A0
+
+ thumb_func_start sub_803092C
+sub_803092C:
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ sub sp, 0x60
+ ldr r7, _08030A24
+ ldr r0, [r7]
+ ldr r0, [r0, 0x58]
+ bl sub_8008C54
+ ldr r0, [r7]
+ ldr r0, [r0, 0x58]
+ bl sub_80073B8
+ ldr r1, [r7]
+ adds r0, r1, 0
+ adds r0, 0x42
+ movs r2, 0
+ ldrsh r4, [r0, r2]
+ lsls r4, 3
+ adds r5, r4, 0
+ adds r5, 0xA
+ ldr r2, _08030A28
+ ldr r0, [r1, 0x20]
+ lsls r0, 2
+ adds r0, r2
+ ldr r2, [r0]
+ ldr r3, [r1, 0x58]
+ movs r0, 0
+ str r0, [sp]
+ adds r0, r5, 0
+ movs r1, 0
+ bl xxx_call_draw_string
+ adds r4, 0x4
+ ldr r3, [r7]
+ adds r0, r3, 0
+ adds r0, 0xC2
+ ldrb r0, [r0]
+ lsls r0, 3
+ adds r5, r4, r0
+ adds r0, r3, 0
+ adds r0, 0x42
+ movs r1, 0
+ ldrsh r2, [r0, r1]
+ adds r2, 0x1
+ movs r0, 0x7
+ str r0, [sp]
+ ldr r0, [r3, 0x58]
+ str r0, [sp, 0x4]
+ adds r0, r5, 0
+ movs r1, 0
+ movs r3, 0x1
+ bl sub_8012BC4
+ movs r6, 0
+ ldr r0, [r7]
+ movs r2, 0x3E
+ ldrsh r0, [r0, r2]
+ cmp r6, r0
+ bge _08030A56
+ mov r9, r7
+ mov r8, r6
+ add r7, sp, 0x8
+ mov r5, sp
+ adds r5, 0x4B
+_080309B0:
+ mov r3, r9
+ ldr r1, [r3]
+ adds r0, r1, 0
+ adds r0, 0x42
+ movs r3, 0
+ ldrsh r2, [r0, r3]
+ subs r0, 0x2
+ movs r3, 0
+ ldrsh r0, [r0, r3]
+ muls r0, r2
+ adds r0, r6
+ adds r1, r0
+ ldrb r0, [r1]
+ bl sub_8095228
+ adds r4, r0, 0
+ mov r1, r9
+ ldr r0, [r1]
+ ldr r1, [r0, 0x58]
+ str r1, [sp, 0x8]
+ adds r0, 0x24
+ adds r1, r6, 0
+ bl sub_8013800
+ str r0, [sp, 0x50]
+ add r1, sp, 0x48
+ movs r0, 0x7
+ strb r0, [r1]
+ mov r0, sp
+ adds r0, 0x4A
+ mov r2, r8
+ strb r2, [r0]
+ add r0, sp, 0x4C
+ strb r2, [r0]
+ adds r0, r4, 0x4
+ str r0, [sp, 0x10]
+ adds r0, 0x10
+ str r0, [sp, 0x14]
+ ldrh r0, [r4, 0xC]
+ strh r0, [r7, 0x10]
+ ldrh r0, [r4, 0xC]
+ strh r0, [r7, 0x12]
+ strb r2, [r7, 0x14]
+ subs r1, 0x12
+ movs r0, 0x5
+ strb r0, [r1]
+ ldrb r0, [r4]
+ cmp r0, 0x4
+ beq _08030A32
+ cmp r0, 0x4
+ bgt _08030A2C
+ cmp r0, 0x2
+ bgt _08030A3E
+ cmp r0, 0x1
+ blt _08030A3E
+ movs r0, 0x1
+ strb r0, [r5]
+ b _08030A42
+ .align 2, 0
+_08030A24: .4byte gUnknown_203B320
+_08030A28: .4byte gUnknown_80E086C
+_08030A2C:
+ cmp r0, 0x5
+ beq _08030A38
+ b _08030A3E
+_08030A32:
+ movs r0, 0x3
+ strb r0, [r5]
+ b _08030A42
+_08030A38:
+ movs r0, 0x4
+ strb r0, [r5]
+ b _08030A42
+_08030A3E:
+ mov r3, r8
+ strb r3, [r5]
+_08030A42:
+ add r0, sp, 0x8
+ bl sub_803B6D4
+ adds r6, 0x1
+ mov r1, r9
+ ldr r0, [r1]
+ movs r2, 0x3E
+ ldrsh r0, [r0, r2]
+ cmp r6, r0
+ blt _080309B0
+_08030A56:
+ ldr r0, _08030A70
+ ldr r0, [r0]
+ ldr r0, [r0, 0x58]
+ bl sub_80073E0
+ add sp, 0x60
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08030A70: .4byte gUnknown_203B320
+ thumb_func_end sub_803092C
+
+ thumb_func_start sub_8030A74
+sub_8030A74:
+ push {r4,r5,lr}
+ movs r2, 0
+ ldr r0, _08030A90
+ ldr r0, [r0]
+ ldr r0, [r0, 0x20]
+ cmp r0, 0x7
+ bls _08030A84
+ b _08030C0E
+_08030A84:
+ lsls r0, 2
+ ldr r1, _08030A94
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_08030A90: .4byte gUnknown_203B320
+_08030A94: .4byte _08030A98
+ .align 2, 0
+_08030A98:
+ .4byte _08030AB8
+ .4byte _08030B10
+ .4byte _08030B3C
+ .4byte _08030B94
+ .4byte _08030B68
+ .4byte _08030BC0
+ .4byte _08030AE4
+ .4byte _08030BEC
+_08030AB8:
+ movs r1, 0
+ ldr r5, _08030ADC
+ ldr r4, _08030AE0
+ movs r3, 0
+_08030AC0:
+ ldr r0, [r5]
+ adds r0, r3
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _08030AD2
+ ldr r0, [r4]
+ adds r0, r2
+ strb r1, [r0]
+ adds r2, 0x1
+_08030AD2:
+ adds r3, 0x30
+ adds r1, 0x1
+ cmp r1, 0x1F
+ ble _08030AC0
+ b _08030C0E
+ .align 2, 0
+_08030ADC: .4byte gUnknown_203B480
+_08030AE0: .4byte gUnknown_203B320
+_08030AE4:
+ movs r1, 0
+ ldr r5, _08030B08
+ ldr r4, _08030B0C
+ movs r3, 0
+_08030AEC:
+ ldr r0, [r5]
+ adds r0, r3
+ ldrb r0, [r0]
+ cmp r0, 0x6
+ bne _08030AFE
+ ldr r0, [r4]
+ adds r0, r2
+ strb r1, [r0]
+ adds r2, 0x1
+_08030AFE:
+ adds r3, 0x30
+ adds r1, 0x1
+ cmp r1, 0x1F
+ ble _08030AEC
+ b _08030C0E
+ .align 2, 0
+_08030B08: .4byte gUnknown_203B480
+_08030B0C: .4byte gUnknown_203B320
+_08030B10:
+ movs r1, 0
+ ldr r5, _08030B34
+ ldr r4, _08030B38
+ movs r3, 0
+_08030B18:
+ ldr r0, [r5]
+ adds r0, r3
+ ldrb r0, [r0]
+ cmp r0, 0x1
+ bne _08030B2A
+ ldr r0, [r4]
+ adds r0, r2
+ strb r1, [r0]
+ adds r2, 0x1
+_08030B2A:
+ adds r3, 0x30
+ adds r1, 0x1
+ cmp r1, 0x1F
+ ble _08030B18
+ b _08030C0E
+ .align 2, 0
+_08030B34: .4byte gUnknown_203B480
+_08030B38: .4byte gUnknown_203B320
+_08030B3C:
+ movs r1, 0
+ ldr r5, _08030B60
+ ldr r4, _08030B64
+ movs r3, 0
+_08030B44:
+ ldr r0, [r5]
+ adds r0, r3
+ ldrb r0, [r0]
+ cmp r0, 0x2
+ bne _08030B56
+ ldr r0, [r4]
+ adds r0, r2
+ strb r1, [r0]
+ adds r2, 0x1
+_08030B56:
+ adds r3, 0x30
+ adds r1, 0x1
+ cmp r1, 0x1F
+ ble _08030B44
+ b _08030C0E
+ .align 2, 0
+_08030B60: .4byte gUnknown_203B480
+_08030B64: .4byte gUnknown_203B320
+_08030B68:
+ movs r1, 0
+ ldr r5, _08030B8C
+ ldr r4, _08030B90
+ movs r3, 0
+_08030B70:
+ ldr r0, [r5]
+ adds r0, r3
+ ldrb r0, [r0]
+ cmp r0, 0x4
+ bne _08030B82
+ ldr r0, [r4]
+ adds r0, r2
+ strb r1, [r0]
+ adds r2, 0x1
+_08030B82:
+ adds r3, 0x30
+ adds r1, 0x1
+ cmp r1, 0x1F
+ ble _08030B70
+ b _08030C0E
+ .align 2, 0
+_08030B8C: .4byte gUnknown_203B480
+_08030B90: .4byte gUnknown_203B320
+_08030B94:
+ movs r1, 0
+ ldr r5, _08030BB8
+ ldr r4, _08030BBC
+ movs r3, 0
+_08030B9C:
+ ldr r0, [r5]
+ adds r0, r3
+ ldrb r0, [r0]
+ cmp r0, 0x3
+ bne _08030BAE
+ ldr r0, [r4]
+ adds r0, r2
+ strb r1, [r0]
+ adds r2, 0x1
+_08030BAE:
+ adds r3, 0x30
+ adds r1, 0x1
+ cmp r1, 0x1F
+ ble _08030B9C
+ b _08030C0E
+ .align 2, 0
+_08030BB8: .4byte gUnknown_203B480
+_08030BBC: .4byte gUnknown_203B320
+_08030BC0:
+ movs r1, 0
+ ldr r5, _08030BE4
+ ldr r4, _08030BE8
+ movs r3, 0
+_08030BC8:
+ ldr r0, [r5]
+ adds r0, r3
+ ldrb r0, [r0]
+ cmp r0, 0x5
+ bne _08030BDA
+ ldr r0, [r4]
+ adds r0, r2
+ strb r1, [r0]
+ adds r2, 0x1
+_08030BDA:
+ adds r3, 0x30
+ adds r1, 0x1
+ cmp r1, 0x1F
+ ble _08030BC8
+ b _08030C0E
+ .align 2, 0
+_08030BE4: .4byte gUnknown_203B480
+_08030BE8: .4byte gUnknown_203B320
+_08030BEC:
+ movs r1, 0
+ ldr r5, _08030C18
+ ldr r4, _08030C1C
+ movs r3, 0
+_08030BF4:
+ ldr r0, [r5]
+ adds r0, r3
+ ldrb r0, [r0]
+ cmp r0, 0x7
+ bne _08030C06
+ ldr r0, [r4]
+ adds r0, r2
+ strb r1, [r0]
+ adds r2, 0x1
+_08030C06:
+ adds r3, 0x30
+ adds r1, 0x1
+ cmp r1, 0x1F
+ ble _08030BF4
+_08030C0E:
+ adds r0, r2, 0
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08030C18: .4byte gUnknown_203B480
+_08030C1C: .4byte gUnknown_203B320
+ thumb_func_end sub_8030A74
+
+ thumb_func_start sub_8030C20
+sub_8030C20:
+ push {lr}
+ cmp r0, 0x7
+ bls _08030C28
+ b _08030D34
+_08030C28:
+ lsls r0, 2
+ ldr r1, _08030C34
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_08030C34: .4byte _08030C38
+ .align 2, 0
+_08030C38:
+ .4byte _08030C58
+ .4byte _08030C90
+ .4byte _08030CAC
+ .4byte _08030CE4
+ .4byte _08030CC8
+ .4byte _08030D00
+ .4byte _08030C74
+ .4byte _08030D20
+_08030C58:
+ movs r1, 0
+ ldr r0, _08030C70
+ ldr r2, [r0]
+_08030C5E:
+ ldrb r0, [r2]
+ cmp r0, 0
+ bne _08030D1C
+ adds r2, 0x30
+ adds r1, 0x1
+ cmp r1, 0x1F
+ ble _08030C5E
+ b _08030D34
+ .align 2, 0
+_08030C70: .4byte gUnknown_203B480
+_08030C74:
+ movs r1, 0
+ ldr r0, _08030C8C
+ ldr r2, [r0]
+_08030C7A:
+ ldrb r0, [r2]
+ cmp r0, 0x6
+ beq _08030D1C
+ adds r2, 0x30
+ adds r1, 0x1
+ cmp r1, 0x1F
+ ble _08030C7A
+ b _08030D34
+ .align 2, 0
+_08030C8C: .4byte gUnknown_203B480
+_08030C90:
+ movs r1, 0
+ ldr r0, _08030CA8
+ ldr r2, [r0]
+_08030C96:
+ ldrb r0, [r2]
+ cmp r0, 0x1
+ beq _08030D1C
+ adds r2, 0x30
+ adds r1, 0x1
+ cmp r1, 0x1F
+ ble _08030C96
+ b _08030D34
+ .align 2, 0
+_08030CA8: .4byte gUnknown_203B480
+_08030CAC:
+ movs r1, 0
+ ldr r0, _08030CC4
+ ldr r2, [r0]
+_08030CB2:
+ ldrb r0, [r2]
+ cmp r0, 0x2
+ beq _08030D1C
+ adds r2, 0x30
+ adds r1, 0x1
+ cmp r1, 0x1F
+ ble _08030CB2
+ b _08030D34
+ .align 2, 0
+_08030CC4: .4byte gUnknown_203B480
+_08030CC8:
+ movs r1, 0
+ ldr r0, _08030CE0
+ ldr r2, [r0]
+_08030CCE:
+ ldrb r0, [r2]
+ cmp r0, 0x4
+ beq _08030D1C
+ adds r2, 0x30
+ adds r1, 0x1
+ cmp r1, 0x1F
+ ble _08030CCE
+ b _08030D34
+ .align 2, 0
+_08030CE0: .4byte gUnknown_203B480
+_08030CE4:
+ movs r1, 0
+ ldr r0, _08030CFC
+ ldr r2, [r0]
+_08030CEA:
+ ldrb r0, [r2]
+ cmp r0, 0x3
+ beq _08030D1C
+ adds r2, 0x30
+ adds r1, 0x1
+ cmp r1, 0x1F
+ ble _08030CEA
+ b _08030D34
+ .align 2, 0
+_08030CFC: .4byte gUnknown_203B480
+_08030D00:
+ movs r1, 0
+ ldr r0, _08030D18
+ ldr r2, [r0]
+_08030D06:
+ ldrb r0, [r2]
+ cmp r0, 0x5
+ beq _08030D1C
+ adds r2, 0x30
+ adds r1, 0x1
+ cmp r1, 0x1F
+ ble _08030D06
+ b _08030D34
+ .align 2, 0
+_08030D18: .4byte gUnknown_203B480
+_08030D1C:
+ movs r0, 0
+ b _08030D36
+_08030D20:
+ movs r1, 0
+ ldr r0, _08030D3C
+ ldr r2, [r0]
+_08030D26:
+ ldrb r0, [r2]
+ cmp r0, 0x7
+ beq _08030D1C
+ adds r2, 0x30
+ adds r1, 0x1
+ cmp r1, 0x1F
+ ble _08030D26
+_08030D34:
+ movs r0, 0x1
+_08030D36:
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08030D3C: .4byte gUnknown_203B480
+ thumb_func_end sub_8030C20
+
+ thumb_func_start sub_8030D40
+sub_8030D40:
+ push {r4-r6,lr}
+ adds r4, r0, 0
+ adds r5, r1, 0
+ lsls r4, 24
+ lsrs r4, 24
+ ldr r6, _08030D98
+ movs r0, 0x78
+ movs r1, 0x8
+ bl MemoryAlloc
+ str r0, [r6]
+ strb r4, [r0, 0xC]
+ ldr r0, [r6]
+ bl sub_801317C
+ ldr r0, [r6]
+ str r5, [r0, 0x10]
+ lsls r1, r5, 1
+ adds r1, r5
+ lsls r1, 3
+ adds r1, 0x18
+ adds r1, r0, r1
+ str r1, [r0, 0x14]
+ adds r0, 0x18
+ bl sub_8006518
+ ldr r1, [r6]
+ ldr r2, [r1, 0x10]
+ lsls r0, r2, 1
+ adds r0, r2
+ lsls r0, 3
+ adds r1, r0
+ adds r1, 0x18
+ ldr r0, _08030D9C
+ ldm r0!, {r2-r4}
+ stm r1!, {r2-r4}
+ ldm r0!, {r2-r4}
+ stm r1!, {r2-r4}
+ bl sub_8030DD4
+ movs r0, 0x1
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08030D98: .4byte gUnknown_203B324
+_08030D9C: .4byte gUnknown_80E091C
+ thumb_func_end sub_8030D40
+
+ thumb_func_start sub_8030DA0
+sub_8030DA0:
+ push {lr}
+ ldr r0, _08030DC0
+ ldr r0, [r0]
+ ldr r1, [r0, 0x10]
+ bl sub_8012A64
+ cmp r0, 0x1
+ beq _08030DC4
+ cmp r0, 0x2
+ bne _08030DCE
+ movs r0, 0x1
+ bl PlayMenuSoundEffect
+ movs r0, 0x2
+ b _08030DD0
+ .align 2, 0
+_08030DC0: .4byte gUnknown_203B324
+_08030DC4:
+ movs r0, 0
+ bl PlayMenuSoundEffect
+ movs r0, 0x3
+ b _08030DD0
+_08030DCE:
+ movs r0, 0
+_08030DD0:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8030DA0
+
+ thumb_func_start sub_8030DD4
+sub_8030DD4:
+ push {lr}
+ bl sub_8030E2C
+ bl sub_8030E48
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8030DD4
+
+ thumb_func_start sub_8030DE4
+sub_8030DE4:
+ push {r4,r5,lr}
+ ldr r4, _08030E24
+ ldr r2, [r4]
+ cmp r2, 0
+ beq _08030E1E
+ ldr r0, [r2, 0x10]
+ lsls r1, r0, 1
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r2, r1
+ adds r1, 0x18
+ ldr r0, _08030E28
+ 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, 0x18
+ movs r1, 0x1
+ movs r2, 0x1
+ bl sub_800641C
+ ldr r0, [r4]
+ bl MemoryFree
+ movs r0, 0
+ str r0, [r4]
+_08030E1E:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08030E24: .4byte gUnknown_203B324
+_08030E28: .4byte gUnknown_80E0900
+ thumb_func_end sub_8030DE4
+
+ thumb_func_start sub_8030E2C
+sub_8030E2C:
+ push {lr}
+ bl ResetUnusedInputStruct
+ ldr r0, _08030E44
+ ldr r0, [r0]
+ adds r0, 0x18
+ movs r1, 0x1
+ movs r2, 0x1
+ bl sub_800641C
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08030E44: .4byte gUnknown_203B324
+ thumb_func_end sub_8030E2C
+
+ thumb_func_start sub_8030E48
+sub_8030E48:
+ push {r4-r6,lr}
+ mov r6, r8
+ push {r6}
+ sub sp, 0x15C
+ ldr r3, _08030EA8
+ ldr r4, _08030EAC
+ ldr r2, [r4]
+ ldrb r1, [r2, 0xC]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 4
+ ldr r1, [r3]
+ adds r5, r1, r0
+ ldr r0, [r2, 0x10]
+ bl sub_80073B8
+ ldr r0, [r4]
+ ldr r0, [r0, 0x10]
+ str r0, [sp, 0x4]
+ add r1, sp, 0x44
+ movs r2, 0
+ movs r0, 0x7
+ strb r0, [r1]
+ mov r0, sp
+ adds r0, 0x46
+ strb r2, [r0]
+ add r0, sp, 0x48
+ strb r2, [r0]
+ adds r0, r5, 0x4
+ str r0, [sp, 0xC]
+ adds r0, 0x10
+ str r0, [sp, 0x10]
+ add r1, sp, 0x4
+ ldrh r0, [r5, 0xC]
+ strh r0, [r1, 0x10]
+ ldrh r0, [r5, 0xC]
+ strh r0, [r1, 0x12]
+ adds r0, r1, 0
+ strb r2, [r0, 0x14]
+ adds r2, r5, 0
+ adds r2, 0x22
+ ldrb r0, [r2]
+ cmp r0, 0
+ bne _08030EB0
+ adds r1, 0x2E
+ movs r0, 0x5
+ strb r0, [r1]
+ b _08030EBE
+ .align 2, 0
+_08030EA8: .4byte gUnknown_203B480
+_08030EAC: .4byte gUnknown_203B324
+_08030EB0:
+ mov r1, sp
+ adds r1, 0x32
+ movs r0, 0x2
+ strb r0, [r1]
+ ldrb r1, [r2]
+ add r0, sp, 0x38
+ strb r1, [r0]
+_08030EBE:
+ ldrb r0, [r5]
+ cmp r0, 0x2
+ beq _08030ED2
+ cmp r0, 0x2
+ ble _08030EE2
+ cmp r0, 0x4
+ beq _08030ED2
+ cmp r0, 0x5
+ beq _08030EDA
+ b _08030EE2
+_08030ED2:
+ mov r1, sp
+ adds r1, 0x45
+ movs r0, 0xA
+ b _08030EE8
+_08030EDA:
+ mov r1, sp
+ adds r1, 0x45
+ movs r0, 0xB
+ b _08030EE8
+_08030EE2:
+ mov r1, sp
+ adds r1, 0x45
+ movs r0, 0x9
+_08030EE8:
+ strb r0, [r1]
+ add r0, sp, 0x4
+ bl CreateRescueDescription
+ ldrh r0, [r5, 0x10]
+ ldr r1, _08030F48
+ bl __umodsi3
+ adds r4, r0, 0
+ lsls r4, 16
+ lsrs r4, 16
+ ldr r2, _08030F4C
+ ldr r5, _08030F50
+ ldr r0, [r5]
+ ldr r3, [r0, 0x10]
+ movs r0, 0
+ mov r8, r0
+ str r0, [sp]
+ movs r0, 0xA
+ movs r1, 0x68
+ bl xxx_call_draw_string
+ add r6, sp, 0x5C
+ ldr r1, _08030F54
+ adds r0, r6, 0
+ adds r2, r4, 0
+ bl sub_800D158
+ ldr r0, [r5]
+ ldr r3, [r0, 0x10]
+ mov r0, r8
+ str r0, [sp]
+ movs r0, 0x44
+ movs r1, 0x68
+ adds r2, r6, 0
+ bl xxx_call_draw_string
+ ldr r0, [r5]
+ ldr r0, [r0, 0x10]
+ bl sub_80073E0
+ add sp, 0x15C
+ pop {r3}
+ mov r8, r3
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08030F48: .4byte 0x00002710
+_08030F4C: .4byte gUnknown_80E0934
+_08030F50: .4byte gUnknown_203B324
+_08030F54: .4byte gUnknown_80E0938
+ thumb_func_end sub_8030E48
+
+ thumb_func_start sub_8030F58
+sub_8030F58:
+ push {r4-r6,lr}
+ adds r6, r0, 0
+ bl ResetUnusedInputStruct
+ movs r0, 0
+ movs r1, 0x1
+ movs r2, 0x1
+ bl sub_800641C
+ ldr r5, _08030FF4
+ ldr r0, [r5]
+ cmp r0, 0
+ bne _08030F88
+ movs r4, 0x8E
+ lsls r4, 1
+ adds r0, r4, 0
+ movs r1, 0x8
+ bl MemoryAlloc
+ str r0, [r5]
+ movs r1, 0
+ adds r2, r4, 0
+ bl MemoryFill8
+_08030F88:
+ ldr r0, [r5]
+ movs r1, 0x8C
+ lsls r1, 1
+ adds r0, r1
+ str r6, [r0]
+ movs r0, 0x98
+ lsls r0, 1
+ bl GetDialogueSpriteDataPtr
+ ldr r2, [r5]
+ movs r4, 0x84
+ lsls r4, 1
+ adds r1, r2, r4
+ str r0, [r1]
+ movs r3, 0x86
+ lsls r3, 1
+ adds r1, r2, r3
+ ldr r0, [r0, 0x4]
+ str r0, [r1]
+ movs r0, 0x8A
+ lsls r0, 1
+ adds r2, r0
+ movs r1, 0
+ strb r1, [r2]
+ ldr r0, [r5]
+ ldr r2, _08030FF8
+ adds r0, r2
+ strb r1, [r0]
+ ldr r0, [r5]
+ adds r3, 0xA
+ adds r0, r3
+ strb r1, [r0]
+ ldr r2, [r5]
+ movs r0, 0x88
+ lsls r0, 1
+ adds r1, r2, r0
+ movs r0, 0x2
+ strh r0, [r1]
+ subs r3, 0x4
+ adds r1, r2, r3
+ movs r0, 0x8
+ strh r0, [r1]
+ adds r0, r6, 0
+ bl sub_8030C20
+ lsls r0, 24
+ lsrs r1, r0, 24
+ cmp r1, 0
+ beq _08031038
+ cmp r6, 0x2
+ beq _08030FFC
+ cmp r6, 0x4
+ beq _08031014
+ b _08031022
+ .align 2, 0
+_08030FF4: .4byte gUnknown_203B328
+_08030FF8: .4byte 0x00000115
+_08030FFC:
+ ldr r0, _0803100C
+ ldr r2, [r5]
+ adds r2, r4
+ ldr r3, _08031010
+ movs r1, 0
+ bl sub_80141B4
+ b _08031022
+ .align 2, 0
+_0803100C: .4byte gUnknown_80E09D8
+_08031010: .4byte 0x00000101
+_08031014:
+ ldr r0, _0803102C
+ ldr r2, [r5]
+ adds r2, r4
+ ldr r3, _08031030
+ movs r1, 0
+ bl sub_80141B4
+_08031022:
+ ldr r0, _08031034
+ ldr r1, [r0]
+ movs r0, 0x5
+ str r0, [r1]
+ b _08031048
+ .align 2, 0
+_0803102C: .4byte gUnknown_80E0A0C
+_08031030: .4byte 0x00000101
+_08031034: .4byte gUnknown_203B328
+_08031038:
+ ldr r0, [r5]
+ str r1, [r0]
+ adds r0, r6, 0
+ movs r1, 0
+ movs r2, 0
+ movs r3, 0x8
+ bl sub_80306A8
+_08031048:
+ movs r0, 0x1
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8030F58
+
+ thumb_func_start sub_8031050
+sub_8031050:
+ push {lr}
+ ldr r1, _08031068
+ ldr r0, [r1]
+ ldr r0, [r0]
+ adds r2, r1, 0
+ cmp r0, 0x6
+ bhi _080310AC
+ lsls r0, 2
+ ldr r1, _0803106C
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_08031068: .4byte gUnknown_203B328
+_0803106C: .4byte _08031070
+ .align 2, 0
+_08031070:
+ .4byte _0803108C
+ .4byte _08031092
+ .4byte _08031098
+ .4byte _08031098
+ .4byte _080310A2
+ .4byte _080310A8
+ .4byte _080310A8
+_0803108C:
+ bl sub_8031300
+ b _080310AC
+_08031092:
+ bl sub_803136C
+ b _080310AC
+_08031098:
+ ldr r0, [r2]
+ ldr r0, [r0]
+ bl sub_80313D8
+ b _080310AC
+_080310A2:
+ bl sub_8031498
+ b _080310AC
+_080310A8:
+ movs r0, 0x3
+ b _080310AE
+_080310AC:
+ movs r0, 0
+_080310AE:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8031050
+
+ thumb_func_start sub_80310B4
+sub_80310B4:
+ push {r4,lr}
+ bl sub_803084C
+ ldr r4, _080310E0
+ ldr r0, [r4]
+ cmp r0, 0
+ beq _080310D8
+ movs r1, 0x84
+ lsls r1, 1
+ adds r0, r1
+ ldr r0, [r0]
+ bl CloseFile
+ ldr r0, [r4]
+ bl MemoryFree
+ movs r0, 0
+ str r0, [r4]
+_080310D8:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080310E0: .4byte gUnknown_203B328
+ thumb_func_end sub_80310B4
+
+ thumb_func_start sub_80310E4
+sub_80310E4:
+ push {lr}
+ ldr r1, _080310F8
+ ldr r1, [r1]
+ str r0, [r1]
+ bl sub_80310FC
+ bl sub_8031258
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080310F8: .4byte gUnknown_203B328
+ thumb_func_end sub_80310E4
+
+ thumb_func_start sub_80310FC
+sub_80310FC:
+ push {r4-r6,lr}
+ ldr r4, _0803111C
+ ldr r0, [r4]
+ adds r0, 0xA8
+ bl sub_8006518
+ ldr r0, [r4]
+ ldr r0, [r0]
+ cmp r0, 0x6
+ bls _08031112
+ b _0803122C
+_08031112:
+ lsls r0, 2
+ ldr r1, _08031120
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_0803111C: .4byte gUnknown_203B328
+_08031120: .4byte _08031124
+ .align 2, 0
+_08031124:
+ .4byte _08031140
+ .4byte _08031178
+ .4byte _080311C0
+ .4byte _080311C0
+ .4byte _080311E8
+ .4byte _0803122C
+ .4byte _0803122C
+_08031140:
+ ldr r3, _08031170
+ ldr r1, [r3]
+ ldr r2, _08031174
+ adds r1, 0xC0
+ adds r0, r2, 0
+ ldm r0!, {r4-r6}
+ stm r1!, {r4-r6}
+ ldm r0!, {r4-r6}
+ stm r1!, {r4-r6}
+ ldr r1, [r3]
+ adds r1, 0xD8
+ adds r0, r2, 0
+ ldm r0!, {r4-r6}
+ stm r1!, {r4-r6}
+ ldm r0!, {r4-r6}
+ stm r1!, {r4-r6}
+ ldr r0, [r3]
+ adds r0, 0xF0
+ ldm r2!, {r1,r3,r4}
+ stm r0!, {r1,r3,r4}
+ ldm r2!, {r1,r5,r6}
+ stm r0!, {r1,r5,r6}
+ b _0803123A
+ .align 2, 0
+_08031170: .4byte gUnknown_203B328
+_08031174: .4byte gUnknown_80E0990
+_08031178:
+ ldr r3, _080311B0
+ ldr r1, [r3]
+ adds r1, 0xC0
+ ldr r0, _080311B4
+ ldm r0!, {r2,r4,r5}
+ stm r1!, {r2,r4,r5}
+ ldm r0!, {r2,r4,r6}
+ stm r1!, {r2,r4,r6}
+ ldr r1, [r3]
+ ldr r2, _080311B8
+ adds r1, 0xD8
+ adds r0, r2, 0
+ ldm r0!, {r4-r6}
+ stm r1!, {r4-r6}
+ ldm r0!, {r4-r6}
+ stm r1!, {r4-r6}
+ ldr r0, [r3]
+ adds r0, 0xF0
+ ldm r2!, {r1,r5,r6}
+ stm r0!, {r1,r5,r6}
+ ldm r2!, {r4-r6}
+ stm r0!, {r4-r6}
+ ldr r0, [r3]
+ adds r0, 0xC0
+ ldr r1, _080311BC
+ bl sub_8012CAC
+ b _0803123A
+ .align 2, 0
+_080311B0: .4byte gUnknown_203B328
+_080311B4: .4byte gUnknown_80E09A8
+_080311B8: .4byte gUnknown_80E0990
+_080311BC: .4byte gUnknown_80E0968
+_080311C0:
+ ldr r2, _080311DC
+ ldr r1, [r2]
+ adds r1, 0xD8
+ ldr r0, _080311E0
+ ldm r0!, {r3-r5}
+ stm r1!, {r3-r5}
+ ldm r0!, {r3,r4,r6}
+ stm r1!, {r3,r4,r6}
+ ldr r0, [r2]
+ adds r0, 0xD8
+ ldr r1, _080311E4
+ bl sub_8012CAC
+ b _0803123A
+ .align 2, 0
+_080311DC: .4byte gUnknown_203B328
+_080311E0: .4byte gUnknown_80E09C0
+_080311E4: .4byte gUnknown_80E0948
+_080311E8:
+ ldr r3, _08031224
+ ldr r1, [r3]
+ ldr r2, _08031228
+ adds r1, 0xA8
+ adds r0, r2, 0
+ ldm r0!, {r4-r6}
+ stm r1!, {r4-r6}
+ ldm r0!, {r4-r6}
+ stm r1!, {r4-r6}
+ ldr r1, [r3]
+ adds r1, 0xC0
+ adds r0, r2, 0
+ ldm r0!, {r4-r6}
+ stm r1!, {r4-r6}
+ ldm r0!, {r4-r6}
+ stm r1!, {r4-r6}
+ ldr r1, [r3]
+ adds r1, 0xD8
+ adds r0, r2, 0
+ ldm r0!, {r4-r6}
+ stm r1!, {r4-r6}
+ ldm r0!, {r4-r6}
+ stm r1!, {r4-r6}
+ ldr r0, [r3]
+ adds r0, 0xF0
+ ldm r2!, {r1,r5,r6}
+ stm r0!, {r1,r5,r6}
+ ldm r2!, {r3-r5}
+ stm r0!, {r3-r5}
+ b _0803123A
+ .align 2, 0
+_08031224: .4byte gUnknown_203B328
+_08031228: .4byte gUnknown_80E0990
+_0803122C:
+ bl ResetUnusedInputStruct
+ movs r0, 0
+ movs r1, 0x1
+ movs r2, 0x1
+ bl sub_800641C
+_0803123A:
+ bl ResetUnusedInputStruct
+ ldr r0, _08031254
+ ldr r0, [r0]
+ adds r0, 0xA8
+ movs r1, 0x1
+ movs r2, 0x1
+ bl sub_800641C
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08031254: .4byte gUnknown_203B328
+ thumb_func_end sub_80310FC
+
+ thumb_func_start sub_8031258
+sub_8031258:
+ push {r4,lr}
+ sub sp, 0x8
+ ldr r1, _08031274
+ ldr r0, [r1]
+ ldr r0, [r0]
+ adds r2, r1, 0
+ cmp r0, 0x6
+ bhi _080312F6
+ lsls r0, 2
+ ldr r1, _08031278
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_08031274: .4byte gUnknown_203B328
+_08031278: .4byte _0803127C
+ .align 2, 0
+_0803127C:
+ .4byte _08031298
+ .4byte _080312A0
+ .4byte _080312BC
+ .4byte _080312BC
+ .4byte _080312EC
+ .4byte _080312F6
+ .4byte _080312F6
+_08031298:
+ movs r0, 0x1
+ bl sub_8030810
+ b _080312F6
+_080312A0:
+ bl sub_803092C
+ ldr r0, _080312B4
+ ldr r0, [r0]
+ adds r0, 0x8
+ ldr r1, _080312B8
+ movs r2, 0x4
+ str r2, [sp]
+ movs r2, 0x1
+ b _080312D8
+ .align 2, 0
+_080312B4: .4byte gUnknown_203B328
+_080312B8: .4byte gUnknown_80E0968
+_080312BC:
+ bl sub_803092C
+ ldr r4, _080312E4
+ ldr r0, [r4]
+ adds r0, 0x8
+ movs r1, 0
+ bl sub_8012EA4
+ ldr r0, [r4]
+ adds r0, 0x58
+ ldr r1, _080312E8
+ movs r2, 0x3
+ str r2, [sp]
+ movs r2, 0x2
+_080312D8:
+ str r2, [sp, 0x4]
+ movs r2, 0
+ movs r3, 0
+ bl sub_8012D60
+ b _080312F6
+ .align 2, 0
+_080312E4: .4byte gUnknown_203B328
+_080312E8: .4byte gUnknown_80E0948
+_080312EC:
+ ldr r0, [r2]
+ ldrb r0, [r0, 0x4]
+ movs r1, 0x3
+ bl sub_8030D40
+_080312F6:
+ add sp, 0x8
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8031258
+
+ thumb_func_start sub_8031300
+sub_8031300:
+ push {lr}
+ movs r0, 0x1
+ bl sub_8030768
+ cmp r0, 0x4
+ bhi _08031366
+ lsls r0, 2
+ ldr r1, _08031318
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_08031318: .4byte _0803131C
+ .align 2, 0
+_0803131C:
+ .4byte _08031366
+ .4byte _08031366
+ .4byte _08031360
+ .4byte _08031330
+ .4byte _08031348
+_08031330:
+ bl sub_80307EC
+ ldr r1, _08031344
+ ldr r1, [r1]
+ strb r0, [r1, 0x4]
+ movs r0, 0x1
+ bl sub_80310E4
+ b _08031366
+ .align 2, 0
+_08031344: .4byte gUnknown_203B328
+_08031348:
+ bl sub_80307EC
+ ldr r1, _0803135C
+ ldr r1, [r1]
+ strb r0, [r1, 0x4]
+ movs r0, 0x4
+ bl sub_80310E4
+ b _08031366
+ .align 2, 0
+_0803135C: .4byte gUnknown_203B328
+_08031360:
+ movs r0, 0x6
+ bl sub_80310E4
+_08031366:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8031300
+
+ thumb_func_start sub_803136C
+sub_803136C:
+ push {r4,lr}
+ sub sp, 0x4
+ movs r0, 0
+ str r0, [sp]
+ bl sub_8030768
+ ldr r4, _080313A4
+ ldr r0, [r4]
+ adds r0, 0x8
+ bl sub_8012FD8
+ lsls r0, 24
+ cmp r0, 0
+ bne _08031392
+ ldr r0, [r4]
+ adds r0, 0x8
+ mov r1, sp
+ bl sub_8013114
+_08031392:
+ ldr r0, [sp]
+ cmp r0, 0x4
+ beq _080313C2
+ cmp r0, 0x4
+ bgt _080313A8
+ cmp r0, 0x1
+ beq _080313B2
+ b _080313D0
+ .align 2, 0
+_080313A4: .4byte gUnknown_203B328
+_080313A8:
+ cmp r0, 0x5
+ beq _080313CA
+ cmp r0, 0x6
+ beq _080313BA
+ b _080313D0
+_080313B2:
+ movs r0, 0
+ bl sub_80310E4
+ b _080313D0
+_080313BA:
+ movs r0, 0x3
+ bl sub_80310E4
+ b _080313D0
+_080313C2:
+ movs r0, 0x2
+ bl sub_80310E4
+ b _080313D0
+_080313CA:
+ movs r0, 0x4
+ bl sub_80310E4
+_080313D0:
+ add sp, 0x4
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_803136C
+
+ thumb_func_start sub_80313D8
+sub_80313D8:
+ push {r4,r5,lr}
+ sub sp, 0x4
+ adds r5, r0, 0
+ movs r0, 0
+ str r0, [sp]
+ bl sub_8030768
+ ldr r4, _08031418
+ ldr r0, [r4]
+ adds r0, 0x8
+ bl sub_8012FD8
+ ldr r0, [r4]
+ adds r0, 0x58
+ bl sub_8012FD8
+ lsls r0, 24
+ cmp r0, 0
+ bne _08031408
+ ldr r0, [r4]
+ adds r0, 0x58
+ mov r1, sp
+ bl sub_8013114
+_08031408:
+ ldr r0, [sp]
+ cmp r0, 0x2
+ beq _08031428
+ cmp r0, 0x2
+ bgt _0803141C
+ cmp r0, 0x1
+ beq _08031420
+ b _0803148E
+ .align 2, 0
+_08031418: .4byte gUnknown_203B328
+_0803141C:
+ cmp r0, 0x3
+ bne _0803148E
+_08031420:
+ movs r0, 0
+ bl sub_80310E4
+ b _0803148E
+_08031428:
+ cmp r5, 0x2
+ beq _08031432
+ cmp r5, 0x3
+ beq _0803143C
+ b _0803145A
+_08031432:
+ ldr r0, [r4]
+ ldrb r0, [r0, 0x4]
+ bl sub_8095240
+ b _0803145A
+_0803143C:
+ ldr r4, _08031480
+ movs r3, 0
+ movs r1, 0
+ movs r2, 0x1F
+_08031444:
+ ldr r0, [r4]
+ adds r0, r1
+ strb r3, [r0]
+ ldr r0, [r4]
+ adds r0, r1
+ adds r0, 0x22
+ strb r3, [r0]
+ adds r1, 0x30
+ subs r2, 0x1
+ cmp r2, 0
+ bge _08031444
+_0803145A:
+ ldr r0, _08031484
+ ldr r0, [r0]
+ movs r1, 0x8C
+ lsls r1, 1
+ adds r0, r1
+ ldr r0, [r0]
+ cmp r0, 0x2
+ beq _0803146E
+ cmp r0, 0x4
+ bne _0803148E
+_0803146E:
+ bl sub_8030C20
+ lsls r0, 24
+ cmp r0, 0
+ beq _08031488
+ movs r0, 0x5
+ bl sub_80310E4
+ b _0803148E
+ .align 2, 0
+_08031480: .4byte gUnknown_203B480
+_08031484: .4byte gUnknown_203B328
+_08031488:
+ movs r0, 0
+ bl sub_80310E4
+_0803148E:
+ add sp, 0x4
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80313D8
+
+ thumb_func_start sub_8031498
+sub_8031498:
+ push {lr}
+ bl sub_8030DA0
+ cmp r0, 0x1
+ bls _080314B0
+ cmp r0, 0x3
+ bhi _080314B0
+ bl sub_8030DE4
+ movs r0, 0
+ bl sub_80310E4
+_080314B0:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8031498
diff --git a/asm/wonder_mail_5.s b/asm/wonder_mail_5.s
new file mode 100644
index 0000000..1669b8d
--- /dev/null
+++ b/asm/wonder_mail_5.s
@@ -0,0 +1,571 @@
+ .include "constants/gba_constants.inc"
+ .include "asm/macros.inc"
+
+ .syntax unified
+
+ .text
+
+
+ thumb_func_start sub_8031AE8
+sub_8031AE8:
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0xDC
+ ldr r7, _08031B24
+ ldr r0, [r7]
+ ldr r0, [r0, 0x10]
+ bl sub_80073B8
+ ldr r2, _08031B28
+ ldr r0, [r7]
+ ldr r3, [r0, 0x10]
+ movs r6, 0
+ str r6, [sp]
+ movs r0, 0xA
+ movs r1, 0
+ bl xxx_call_draw_string
+ ldr r1, [r7]
+ ldrb r0, [r1, 0xC]
+ cmp r0, 0x1
+ beq _08031B2C
+ cmp r0, 0x1
+ bgt _08031B1E
+ b _08031CD4
+_08031B1E:
+ cmp r0, 0x2
+ beq _08031B94
+ b _08031CD4
+ .align 2, 0
+_08031B24: .4byte gUnknown_203B330
+_08031B28: .4byte gUnknown_80E1F30
+_08031B2C:
+ add r4, sp, 0x68
+ adds r0, r4, 0
+ bl sub_8099394
+ ldrb r0, [r4]
+ bl sub_8095228
+ adds r5, r0, 0
+ ldr r0, [r7]
+ ldr r3, [r0, 0x10]
+ movs r0, 0xA
+ movs r1, 0x10
+ movs r2, 0x3
+ bl sub_803B6B0
+ ldr r1, _08031B8C
+ ldrb r2, [r5, 0x5]
+ add r0, sp, 0x4
+ bl sub_800D158
+ ldr r0, [r7]
+ ldr r3, [r0, 0x10]
+ str r6, [sp]
+ movs r0, 0x15
+ movs r1, 0x10
+ add r2, sp, 0x4
+ bl xxx_call_draw_string
+ ldr r4, _08031B90
+ movs r1, 0xC
+ ldrsh r0, [r5, r1]
+ bl GetMonSpecies
+ adds r2, r0, 0
+ add r0, sp, 0x4
+ adds r1, r4, 0
+ bl sub_800D158
+ ldr r0, [r7]
+ ldr r3, [r0, 0x10]
+ str r6, [sp]
+ movs r0, 0x28
+ movs r1, 0x10
+ add r2, sp, 0x4
+ bl xxx_call_draw_string
+ b _08031D4E
+ .align 2, 0
+_08031B8C: .4byte gUnknown_80E1F3C
+_08031B90: .4byte gUnknown_80E1F40
+_08031B94:
+ ldrb r0, [r1, 0xD]
+ bl sub_80969D0
+ adds r1, r0, 0
+ cmp r1, 0
+ bne _08031BB0
+ ldr r2, _08031BAC
+ ldr r0, [r7]
+ ldr r3, [r0, 0x10]
+ str r1, [sp]
+ b _08031D2C
+ .align 2, 0
+_08031BAC: .4byte gUnknown_80E1F54
+_08031BB0:
+ movs r6, 0x10
+ movs r2, 0
+ mov r10, r2
+ mov r8, r2
+ ldr r0, _08031C28
+ mov r9, r0
+ mov r1, sp
+ adds r1, 0x6C
+ str r1, [sp, 0xD8]
+_08031BC2:
+ mov r2, r10
+ lsls r0, r2, 24
+ lsrs r0, 24
+ bl sub_8096AB4
+ adds r4, r0, 0
+ ldr r1, [r7]
+ ldrb r0, [r4, 0x4]
+ ldrb r2, [r1, 0xD]
+ cmp r0, r2
+ bne _08031CC2
+ ldrb r0, [r4]
+ cmp r0, 0
+ beq _08031CC2
+ cmp r0, 0x5
+ beq _08031CC2
+ cmp r0, 0x7
+ beq _08031CC2
+ ldr r3, [r1, 0x10]
+ movs r0, 0xA
+ adds r1, r6, 0
+ movs r2, 0x3
+ bl sub_803B6B0
+ ldrb r0, [r4, 0x1]
+ add r5, sp, 0x6C
+ cmp r0, 0x3
+ beq _08031C16
+ ldrb r2, [r4, 0x5]
+ ldr r0, [sp, 0xD8]
+ ldr r1, _08031C2C
+ bl sub_800D158
+ ldr r0, [r7]
+ ldr r3, [r0, 0x10]
+ mov r0, r8
+ str r0, [sp]
+ movs r0, 0x15
+ adds r1, r6, 0
+ ldr r2, [sp, 0xD8]
+ bl xxx_call_draw_string
+_08031C16:
+ ldrb r0, [r4, 0x1]
+ cmp r0, 0x3
+ beq _08031C58
+ cmp r0, 0x3
+ bgt _08031C30
+ cmp r0, 0x2
+ beq _08031C70
+ b _08031C9C
+ .align 2, 0
+_08031C28: .4byte gUnknown_202DE58
+_08031C2C: .4byte gUnknown_80E1F3C
+_08031C30:
+ cmp r0, 0x4
+ bne _08031C9C
+ ldrb r1, [r4, 0x10]
+ mov r0, r9
+ movs r2, 0
+ bl sub_8090DC4
+ adds r0, r5, 0
+ ldr r1, _08031C54
+ mov r2, r9
+ bl sub_800D158
+ ldr r0, [r7]
+ ldr r3, [r0, 0x10]
+ mov r1, r8
+ str r1, [sp]
+ b _08031C8A
+ .align 2, 0
+_08031C54: .4byte gUnknown_80E1F60
+_08031C58:
+ ldrb r1, [r4, 0x10]
+ mov r0, r9
+ movs r2, 0
+ bl sub_8090DC4
+ adds r0, r5, 0
+ ldr r1, _08031C6C
+ mov r2, r9
+ b _08031C7E
+ .align 2, 0
+_08031C6C: .4byte gUnknown_80E1F70
+_08031C70:
+ movs r1, 0xE
+ ldrsh r0, [r4, r1]
+ bl GetMonSpecies
+ adds r2, r0, 0
+ adds r0, r5, 0
+ ldr r1, _08031C98
+_08031C7E:
+ bl sub_800D158
+ ldr r0, [r7]
+ ldr r3, [r0, 0x10]
+ mov r2, r8
+ str r2, [sp]
+_08031C8A:
+ movs r0, 0x28
+ adds r1, r6, 0
+ adds r2, r5, 0
+ bl xxx_call_draw_string
+ b _08031CC0
+ .align 2, 0
+_08031C98: .4byte gUnknown_80E1F80
+_08031C9C:
+ movs r1, 0xE
+ ldrsh r0, [r4, r1]
+ bl GetMonSpecies
+ adds r2, r0, 0
+ adds r0, r5, 0
+ ldr r1, _08031CD0
+ bl sub_800D158
+ ldr r0, [r7]
+ ldr r3, [r0, 0x10]
+ mov r2, r8
+ str r2, [sp]
+ movs r0, 0x28
+ adds r1, r6, 0
+ adds r2, r5, 0
+ bl xxx_call_draw_string
+_08031CC0:
+ adds r6, 0xC
+_08031CC2:
+ movs r0, 0x1
+ add r10, r0
+ mov r1, r10
+ cmp r1, 0x7
+ bgt _08031CCE
+ b _08031BC2
+_08031CCE:
+ b _08031D4E
+ .align 2, 0
+_08031CD0: .4byte gUnknown_80E1F40
+_08031CD4:
+ add r0, sp, 0xD0
+ mov r4, sp
+ adds r4, 0xD2
+ adds r1, r4, 0
+ bl sub_80992E0
+ lsls r0, 24
+ lsrs r5, r0, 24
+ cmp r5, 0
+ beq _08031D04
+ movs r2, 0
+ ldrsh r0, [r4, r2]
+ bl GetCurrentMissionText
+ adds r2, r0, 0
+ ldr r0, _08031D00
+ ldr r0, [r0]
+ ldr r3, [r0, 0x10]
+ movs r0, 0
+ str r0, [sp]
+ b _08031D2C
+ .align 2, 0
+_08031D00: .4byte gUnknown_203B330
+_08031D04:
+ add r4, sp, 0xD4
+ adds r0, r4, 0
+ bl sub_8099360
+ lsls r0, 24
+ lsrs r1, r0, 24
+ cmp r1, 0
+ beq _08031D3C
+ ldrb r0, [r4]
+ bl sub_80A2688
+ lsls r0, 16
+ asrs r0, 16
+ bl sub_80975DC
+ adds r2, r0, 0
+ ldr r0, _08031D38
+ ldr r0, [r0]
+ ldr r3, [r0, 0x10]
+ str r5, [sp]
+_08031D2C:
+ movs r0, 0xA
+ movs r1, 0x10
+ bl xxx_call_draw_string
+ b _08031D4E
+ .align 2, 0
+_08031D38: .4byte gUnknown_203B330
+_08031D3C:
+ ldr r2, _08031D68
+ ldr r0, _08031D6C
+ ldr r0, [r0]
+ ldr r3, [r0, 0x10]
+ str r1, [sp]
+ movs r0, 0xA
+ movs r1, 0x10
+ bl xxx_call_draw_string
+_08031D4E:
+ ldr r0, _08031D6C
+ ldr r0, [r0]
+ ldr r0, [r0, 0x10]
+ bl sub_80073E0
+ add sp, 0xDC
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08031D68: .4byte gUnknown_80E1F94
+_08031D6C: .4byte gUnknown_203B330
+ thumb_func_end sub_8031AE8
+
+ thumb_func_start sub_8031D70
+sub_8031D70:
+ push {r4-r6,lr}
+ adds r6, r0, 0
+ adds r4, r1, 0
+ ldr r5, _08031DC4
+ movs r0, 0x7C
+ movs r1, 0x8
+ bl MemoryAlloc
+ str r0, [r5]
+ stm r0!, {r6}
+ bl sub_801317C
+ ldr r0, [r5]
+ str r4, [r0, 0x10]
+ lsls r1, r4, 1
+ adds r1, r4
+ lsls r1, 3
+ adds r1, 0x18
+ adds r1, r0, r1
+ str r1, [r0, 0x14]
+ adds r0, 0x18
+ bl sub_8006518
+ ldr r1, [r5]
+ ldr r2, [r1, 0x10]
+ lsls r0, r2, 1
+ adds r0, r2
+ lsls r0, 3
+ adds r1, r0
+ adds r1, 0x18
+ ldr r0, _08031DC8
+ ldm r0!, {r2-r4}
+ stm r1!, {r2-r4}
+ ldm r0!, {r2-r4}
+ stm r1!, {r2-r4}
+ bl sub_8031E00
+ movs r0, 0x1
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08031DC4: .4byte gUnknown_203B334
+_08031DC8: .4byte gUnknown_80E1FC4
+ thumb_func_end sub_8031D70
+
+ thumb_func_start sub_8031DCC
+sub_8031DCC:
+ push {lr}
+ ldr r0, _08031DEC
+ ldr r1, [r0]
+ adds r0, r1, 0x4
+ ldr r1, [r1, 0x10]
+ bl sub_8012A64
+ cmp r0, 0x1
+ beq _08031DF0
+ cmp r0, 0x2
+ bne _08031DFA
+ movs r0, 0x1
+ bl PlayMenuSoundEffect
+ movs r0, 0x2
+ b _08031DFC
+ .align 2, 0
+_08031DEC: .4byte gUnknown_203B334
+_08031DF0:
+ movs r0, 0
+ bl PlayMenuSoundEffect
+ movs r0, 0x3
+ b _08031DFC
+_08031DFA:
+ movs r0, 0
+_08031DFC:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8031DCC
+
+ thumb_func_start sub_8031E00
+sub_8031E00:
+ push {lr}
+ bl sub_8031E58
+ bl sub_8031E74
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8031E00
+
+ thumb_func_start sub_8031E10
+sub_8031E10:
+ push {r4,r5,lr}
+ ldr r4, _08031E50
+ ldr r2, [r4]
+ cmp r2, 0
+ beq _08031E4A
+ ldr r0, [r2, 0x10]
+ lsls r1, r0, 1
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r2, r1
+ adds r1, 0x18
+ ldr r0, _08031E54
+ 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, 0x18
+ movs r1, 0x1
+ movs r2, 0x1
+ bl sub_800641C
+ ldr r0, [r4]
+ bl MemoryFree
+ movs r0, 0
+ str r0, [r4]
+_08031E4A:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08031E50: .4byte gUnknown_203B334
+_08031E54: .4byte gUnknown_80E1FA8
+ thumb_func_end sub_8031E10
+
+ thumb_func_start sub_8031E58
+sub_8031E58:
+ push {lr}
+ bl ResetUnusedInputStruct
+ ldr r0, _08031E70
+ ldr r0, [r0]
+ adds r0, 0x18
+ movs r1, 0x1
+ movs r2, 0x1
+ bl sub_800641C
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08031E70: .4byte gUnknown_203B334
+ thumb_func_end sub_8031E58
+
+ thumb_func_start sub_8031E74
+sub_8031E74:
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ sub sp, 0x3C
+ ldr r3, _08031EC0
+ ldr r5, _08031EC4
+ ldr r2, [r5]
+ ldr r1, [r2]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 4
+ ldr r4, [r3]
+ adds r4, r0
+ ldr r0, [r2, 0x10]
+ bl sub_80073B8
+ ldr r2, _08031EC8
+ ldr r0, [r5]
+ ldr r3, [r0, 0x10]
+ movs r0, 0
+ str r0, [sp]
+ movs r0, 0x14
+ movs r1, 0
+ bl xxx_call_draw_string
+ add r0, sp, 0x4
+ adds r1, r4, 0
+ bl sub_803D2C0
+ movs r7, 0
+ mov r8, r5
+_08031EB2:
+ cmp r7, 0x4
+ ble _08031ED0
+ cmp r7, 0xC
+ bgt _08031ECC
+ movs r6, 0x6
+ movs r5, 0x16
+ b _08031F00
+ .align 2, 0
+_08031EC0: .4byte gUnknown_203B480
+_08031EC4: .4byte gUnknown_203B334
+_08031EC8: .4byte gUnknown_80E1FDC
+_08031ECC:
+ cmp r7, 0x11
+ bgt _08031ED6
+_08031ED0:
+ movs r6, 0x7
+ movs r5, 0x15
+ b _08031F00
+_08031ED6:
+ cmp r7, 0x16
+ ble _08031EE8
+ cmp r7, 0x1E
+ bgt _08031EE4
+ movs r6, 0x6
+ movs r5, 0x25
+ b _08031F00
+_08031EE4:
+ cmp r7, 0x23
+ bgt _08031EEE
+_08031EE8:
+ movs r6, 0x7
+ movs r5, 0x24
+ b _08031F00
+_08031EEE:
+ cmp r7, 0x28
+ ble _08031EFC
+ cmp r7, 0x30
+ bgt _08031EFC
+ movs r6, 0x6
+ movs r5, 0x34
+ b _08031F00
+_08031EFC:
+ movs r6, 0x7
+ movs r5, 0x33
+_08031F00:
+ adds r0, r7, 0
+ movs r1, 0x12
+ bl __modsi3
+ movs r1, 0xB
+ adds r4, r0, 0
+ muls r4, r1
+ adds r4, 0x6
+ mov r0, sp
+ adds r0, r7
+ adds r0, 0x4
+ ldrb r2, [r0]
+ mov r1, r8
+ ldr r0, [r1]
+ ldr r0, [r0, 0x10]
+ str r0, [sp]
+ adds r0, r4, 0
+ adds r1, r5, 0
+ adds r3, r6, 0
+ bl sub_8012C60
+ mov r1, r8
+ ldr r0, [r1]
+ ldr r0, [r0, 0x10]
+ adds r2, r5, 0
+ adds r2, 0xA
+ movs r1, 0x5
+ str r1, [sp]
+ adds r1, r4, 0
+ movs r3, 0xA
+ bl sub_80078A4
+ adds r7, 0x1
+ cmp r7, 0x35
+ ble _08031EB2
+ ldr r0, _08031F5C
+ ldr r0, [r0]
+ ldr r0, [r0, 0x10]
+ bl sub_80073E0
+ add sp, 0x3C
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08031F5C: .4byte gUnknown_203B334
+ thumb_func_end sub_8031E74
+
+ .align 2,0
diff --git a/data/data_80B9BB8.s b/data/data_80B9BB8.s
index 0801563..e88989f 100644
--- a/data/data_80B9BB8.s
+++ b/data/data_80B9BB8.s
@@ -1,17 +1,5 @@
.section .rodata
- .string "pksdir0\0"
- .align 2,0
-
- .global gByteShiftLookup
-gByteShiftLookup: @ 80B9BB8
- .4byte 0
- .4byte 8
- .4byte 16
- .4byte 24
-
- .string "pksdir0\0"
- .string "pksdir0\0"
.string "PKD ROM USER DATA 000000\0"
.global gUnknown_80B9BF1
@@ -526,7 +514,13 @@ gUnknown_80D4120: @ 80D4120
.global gUnknown_80D4124
gUnknown_80D4124: @ 80D4124
- .incbin "baserom.gba", 0xD4124, 0x20
+ .string "$i0($v02"
+ .byte 0x81, 0x5E
+ .asciz "$v12)"
+ .align 2,0
+
+ .asciz "pksdir0"
+ .asciz "pksdir0"
.global gUnknown_80D4144
gUnknown_80D4144: @ 80D4144
@@ -768,11 +762,42 @@ gUnknown_80D47B8: @ 80D47B8
.byte 0x07, 0x00, 0x00, 0x00
.byte 0x02, 0x00, 0x00, 0x00
.byte 0x02, 0x00, 0x00, 0x00
+
+ .global UnkData_80D47C4
+ UnkData_80D47C4:
.byte 0x01, 0x00, 0x10, 0x00
.global gUnknown_80D47C8
gUnknown_80D47C8: @ 80D47C8
- .incbin "baserom.gba", 0xD47C8, 0x60
+@ replacing .incbin "baserom.gba", 0x000d47c8, 0x60
+ .byte 0x00, 0x00, 0x00, 0x00
+ .byte 0x06, 0x00, 0x00, 0x00
+ .byte 0x02, 0x00, 0x02, 0x00
+ .byte 0x1a, 0x00, 0x0c, 0x00
+ .byte 0x0c, 0x00, 0x00, 0x00
+
+ .4byte UnkData_80D47C4
+
+ .byte 0x00, 0x00, 0x00, 0x00
+ .byte 0x03, 0x00, 0x00, 0x00
+ .byte 0x00, 0x00, 0x00, 0x00
+ .byte 0x00, 0x00, 0x00, 0x00
+ .byte 0x00, 0x00, 0x00, 0x00
+ .byte 0x00, 0x00, 0x00, 0x00
+
+ .byte 0x00, 0x00, 0x00, 0x00
+ .byte 0x03, 0x00, 0x00, 0x00
+ .byte 0x00, 0x00, 0x00, 0x00
+ .byte 0x00, 0x00, 0x00, 0x00
+ .byte 0x00, 0x00, 0x00, 0x00
+ .byte 0x00, 0x00, 0x00, 0x00
+
+ .byte 0x00, 0x00, 0x00, 0x00
+ .byte 0x03, 0x00, 0x00, 0x00
+ .byte 0x00, 0x00, 0x00, 0x00
+ .byte 0x00, 0x00, 0x00, 0x00
+ .byte 0x00, 0x00, 0x00, 0x00
+ .byte 0x00, 0x00, 0x00, 0x00
.global gUnknown_80D4828
gUnknown_80D4828: @ 80D4828
@@ -781,30 +806,43 @@ gUnknown_80D4828: @ 80D4828
.global gUnknown_80D4830
gUnknown_80D4830: @ 80D4830
- .incbin "baserom.gba", 0xD4830, 0x2C
+ .byte 0x01, 0x00, 0x00, 0x00, 0x0a, 0x00, 0x00, 0x00, 0x64, 0x00, 0x00, 0x00, 0xe8, 0x03, 0x00, 0x00, 0x10, 0x27, 0x00, 0x00, 0xa0, 0x86, 0x01, 0x00, 0x40, 0x42, 0x0f, 0x00, 0x80, 0x96, 0x98, 0x00
+ .byte 0x00, 0xe1, 0xf5, 0x05
+ .asciz "pksdir0"
+
.global gUnknown_80D485C
gUnknown_80D485C: @ 80D485C
- .byte 0x78, 0x48, 0x0D, 0x08
+ .4byte Data_80D4878
.byte 0x01, 0x00, 0x00, 0x00
- .byte 0x74, 0x48, 0x0D, 0x08
+ .4byte Data_80D4874
.byte 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00
.byte 0xFF, 0xFF, 0xFF, 0xFF
+
+ .global Data_80D4874
+ Data_80D4874:
.string "No\0"
.align 2,0
+ .global Data_80D4878
+ Data_80D4878:
.string "*Yes\0"
.align 2,0
.global gUnknown_80D4880
gUnknown_80D4880: @ 80D4880
- .byte 0x9C, 0x48, 0x0D, 0x08 @ Pointer to Yes
+ .4byte Data_80D489C
.byte 0x01, 0x00, 0x00, 0x00
- .byte 0x98, 0x48, 0x0D, 0x08 @ Pointer to No
+ .4byte Data_80D4898
.byte 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00 @ End of table
.byte 0xFF, 0xFF, 0xFF, 0xFF
+
+ .global Data_80D4898
+ Data_80D4898:
.string "*No\0"
+ .global Data_80D489C
+ Data_80D489C:
.string "Yes\0"
.align 2,0
@@ -1765,6 +1803,8 @@ gUnknown_80DBE7C: @ 80DBE7C
.byte 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00
+ .global UnkData_80DBE94
+ UnkData_80DBE94:
.byte 0x01, 0x00, 0x07, 0x00
.global gUnknown_80DBE98
@@ -1775,7 +1815,7 @@ gUnknown_80DBE98: @ 80DBE98
.byte 0x09, 0x00, 0x06, 0x00
.byte 0x06, 0x00, 0x00, 0x00
- .byte 0x94, 0xBE, 0x0D, 0x08
+ .4byte UnkData_80DBE94
.global gUnknown_80DBEB0
gUnknown_80DBEB0: @ 80DBEB0
@@ -1860,6 +1900,8 @@ gUnknown_80DBFB0: @ 80DBFB0
.byte 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00
+ .global UnkData_80DBFC8
+ UnkData_80DBFC8:
.byte 0x01, 0x00, 0x07, 0x00
.global gUnknown_80DBFCC
@@ -1870,7 +1912,7 @@ gUnknown_80DBFCC: @ 80DBFCC
.byte 0x0A, 0x00, 0x06, 0x00
.byte 0x06, 0x00, 0x00, 0x00
- .byte 0xC8, 0xBF, 0x0D, 0x08
+ .4byte UnkData_80DBFC8
.global gOthers_MenuOption
gOthers_MenuOption: @ 80DBFE4
@@ -1903,6 +1945,8 @@ gUnknown_80DC020: @ 80DC020
.byte 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00
+ .global UnkData_80DC038
+ UnkData_80DC038:
.byte 0x01, 0x00, 0x0a, 0x00
.global gUnknown_80DC03C
@@ -1913,7 +1957,7 @@ gUnknown_80DC03C: @ 80DC03C
.byte 0x18, 0x00, 0x10, 0x00
.byte 0x12, 0x00, 0x00, 0x00
- .byte 0x38, 0xC0, 0x0D, 0x08
+ .4byte UnkData_80DC038
@ Window Settings
@@ -1955,6 +1999,8 @@ gUnknown_80DC0A0: @ 80DC0A0
.byte 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00
+ .global Data_80DC0B8
+ Data_80DC0B8:
.byte 0x01, 0x00, 0x08, 0x00
.global gUnknown_80DC0BC
@@ -1965,7 +2011,7 @@ gUnknown_80DC0BC: @ 80DC0BC
.byte 0x18, 0x00, 0x0E, 0x00
.byte 0x0E, 0x00, 0x00, 0x00
- .byte 0xB8, 0xC0, 0x0D, 0x08
+ .4byte Data_80DC0B8
.global gUnknown_80DC0D4
gUnknown_80DC0D4: @ 80DC0D4
@@ -2005,7 +2051,18 @@ gUnknown_80DC11C: @ 80DC11C
.global gUnknown_80DC134
gUnknown_80DC134: @ 80DC134
- .incbin "baserom.gba", 0xDC134, 0x30
+ .byte 0x00, 0x00, 0x00, 0x00
+ .byte 0x03, 0x00, 0x00, 0x00
+ .byte 0x16, 0x00, 0x04, 0x00
+ .byte 0x06, 0x00, 0x03, 0x00
+ .byte 0x03, 0x00, 0x00, 0x00
+ .byte 0x00, 0x00, 0x00, 0x00
+ .byte 0x00, 0x00, 0x00, 0x00
+ .byte 0x03, 0x00, 0x00, 0x00
+ .byte 0x16, 0x00, 0x0e, 0x00
+ .byte 0x06, 0x00, 0x03, 0x00
+ .byte 0x03, 0x00, 0x00, 0x00
+ .byte 0x00, 0x00, 0x00, 0x00
.global gUnknown_80DC164
gUnknown_80DC164: @ 80DC164
@@ -2042,6 +2099,8 @@ gUnknown_80DC240: @ 80DC240
.byte 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00
+ .global Data_80DC258
+ Data_80DC258:
.byte 0x01, 0x00, 0x0f, 0x00
.global gUnknown_80DC25C
@@ -2056,7 +2115,8 @@ gUnknown_80DC25C: @ 80DC25C
.byte 0x08, 0x00
.byte 0x08, 0x00
.byte 0x00, 0x00
- .byte 0x58, 0xc2, 0x0d, 0x08
+
+ .4byte Data_80DC258
.global gUnknown_80DC274
gUnknown_80DC274: @ 80DC274
@@ -2909,7 +2969,17 @@ gUnknown_80DDA80: @ 80DDA80
.global gUnknown_80DDAA0
gUnknown_80DDAA0: @ 80DDAA0
- .incbin "baserom.gba", 0xDDAA0, 0x2C
+ .4byte SendWOPokemon
+ .byte 0x12, 0x00, 0x00, 0x00
+ .4byte gWonderMailCancel
+ .byte 0x0a, 0x00, 0x00, 0x00
+ .byte 0x00, 0x00, 0x00, 0x00
+ .byte 0x0a, 0x00, 0x00, 0x00
+
+ .global SendWOPokemon
+ SendWOPokemon:
+ .string "Send w/o Pokémon\0"
+ .align 2,0
.global gUnknown_80DDACC
gUnknown_80DDACC: @ 80DDACC
@@ -2971,5 +3041,23 @@ gUnknown_80DDB24: @ 80DDB24
.global gUnknown_80DDB60
gUnknown_80DDB60: @ 80DDB60
- .incbin "baserom.gba", 0xDDB60, 0x48
+
+ .4byte SendPokemon_80DDB98
+ .byte 0x11, 0x00, 0x00, 0x00
+ .4byte DontSendPokemon_80DDB80
+ .byte 0x12, 0x00, 0x00, 0x00
+ .4byte gWonderMailCancel
+ .byte 0x0a, 0x00, 0x00, 0x00
+ .byte 0x00, 0x00, 0x00, 0x00
+ .byte 0x0a, 0x00, 0x00, 0x00
+
+ .global DontSendPokemon_80DDB80
+ DontSendPokemon_80DDB80:
+ .string "Don~27t Send Pokémon\0"
+ .align 2,0
+
+ .global SendPokemon_80DDB98
+ SendPokemon_80DDB98:
+ .string "Send Pokémon\0"
+ .align 2,0
diff --git a/data/data_80DED44.s b/data/data_80DED44.s
index ce3aad8..0f0884a 100644
--- a/data/data_80DED44.s
+++ b/data/data_80DED44.s
@@ -2,7 +2,6 @@
.global gUnknown_80DED48
gUnknown_80DED48: @ 80DED48
- @ replacing .incbin "baserom.gba", 0x000ded48, 0x18
.byte 0x00, 0x00, 0x00, 0x00
.byte 0x03, 0x00, 0x00, 0x00
.byte 0x15, 0x00, 0x04, 0x00
@@ -12,7 +11,6 @@ gUnknown_80DED48: @ 80DED48
.global gUnknown_80DED60
gUnknown_80DED60: @ 80DED60
- @ replacing .incbin "baserom.gba", 0x000ded60, 0x18
.byte 0x00, 0x00, 0x00, 0x00
.byte 0x03, 0x00, 0x00, 0x00
.byte 0x16, 0x00, 0x07, 0x00
@@ -22,7 +20,6 @@ gUnknown_80DED60: @ 80DED60
.global gUnknown_80DED78
gUnknown_80DED78: @ 80DED78
- @ replacing .incbin "baserom.gba", 0x000ded78, 0x40
.4byte Confirm_80DED98
.byte 0x0b, 0x00, 0x00, 0x00
.4byte Info_80DED90
@@ -48,7 +45,6 @@ gUnknown_80DED78: @ 80DED78
.global gUnknown_80DEDB8
gUnknown_80DEDB8: @ 80DEDB8
- @ replacing .incbin "baserom.gba", 0x000dedb8, 0x50
.4byte SendThankYou_Text
.byte 0x01, 0x00, 0x00, 0x00
.4byte GetThankYou_Text
@@ -76,7 +72,6 @@ gUnknown_80DEDB8: @ 80DEDB8
.global gUnknown_80DEE08
gUnknown_80DEE08: @ 80DEE08
@ Thank You Mail Pelipper Menu
- @ replacing .incbin "baserom.gba", 0x000dee08, 0x3c
.4byte GameLinkCable_Text
.byte 0x03, 0x00, 0x00, 0x00
.4byte Password_Text
@@ -99,7 +94,6 @@ gUnknown_80DEE08: @ 80DEE08
.global gUnknown_80DEE44
gUnknown_80DEE44: @ 80DEE44
@ Game Link Cable Thank-You Mail Menu
- @ replacing .incbin "baserom.gba", 0x000dee44, 0x1c
.4byte Yes_80DEE5C
.byte 0x07, 0x00, 0x00, 0x00
.4byte Cancel_80DEDD8
@@ -114,7 +108,6 @@ gUnknown_80DEE44: @ 80DEE44
.global gUnknown_80DEE60
gUnknown_80DEE60: @ 80DEE60
- @ replacing .incbin "baserom.gba", 0x000dee60, 0x1c
.4byte Yes_80DEE5C
.byte 0x07, 0x00, 0x00, 0x00
.4byte No_80DEE78
@@ -129,7 +122,6 @@ gUnknown_80DEE60: @ 80DEE60
.global gUnknown_80DEE7C
gUnknown_80DEE7C: @ 80DEE7C
- @ replacing .incbin "baserom.gba", 0x000dee7c, 0x40
.4byte SendItem_Text
.byte 0x09, 0x00, 0x00, 0x00
.4byte DontSendItemText
@@ -151,7 +143,6 @@ gUnknown_80DEE7C: @ 80DEE7C
.global gUnknown_80DEEBC
gUnknown_80DEEBC: @ 80DEEBC
- @ replacing .incbin "baserom.gba", 0x000deebc, 0x28
.4byte SendWOItem_Text
.byte 0x0a, 0x00, 0x00, 0x00
.4byte Cancel_80DEDD8
@@ -166,7 +157,6 @@ gUnknown_80DEEBC: @ 80DEEBC
.global gUnknown_80DEEE4
gUnknown_80DEEE4: @ 80DEEE4
- @ replacing .incbin "baserom.gba", 0x000deee4, 0x20
.4byte Yes_80DEE5C
.byte 0x07, 0x00, 0x00, 0x00
.4byte No_80DEE78
@@ -193,12 +183,10 @@ gUnknown_80DFBD0: @ 80DFBD0
.global gUnknown_80DFBE8
gUnknown_80DFBE8: @ 80DFBE8
-@ replacing .incbin "baserom.gba", 0x000dfbe8, 0x4
.byte 0x01, 0x00, 0x0c, 0x00
.global gUnknown_80DFBEC
gUnknown_80DFBEC: @ 80DFBEC
-@ replacing .incbin "baserom.gba", 0x000dfbec, 0x18
.byte 0x00, 0x00, 0x00, 0x00
.byte 0x06, 0x00, 0x00, 0x00
.byte 0x02, 0x00, 0x02, 0x00
@@ -251,7 +239,6 @@ gUnknown_80DFC50: @ 80DFC50
.global gUnknown_80DFC5C
gUnknown_80DFC5C: @ 80DFC5C
-@ replacing .incbin "baserom.gba", 0x000dfc5c, 0x18
.byte 0x00, 0x00, 0x00, 0x00
.byte 0x03, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00
@@ -261,7 +248,6 @@ gUnknown_80DFC5C: @ 80DFC5C
.global gUnknown_80DFC74
gUnknown_80DFC74: @ 80DFC74
-@ replacing .incbin "baserom.gba", 0x000dfc74, 0x18
.byte 0x00, 0x00, 0x00, 0x00
.byte 0x06, 0x00, 0x00, 0x00
.byte 0x02, 0x00, 0x02, 0x00
@@ -276,7 +262,6 @@ gMailboxText: @ 80DFC8C
.global gUnknown_80DFC9C
gUnknown_80DFC9C: @ 80DFC9C
-@ replacing .incbin "baserom.gba", 0x000dfc9c, 0x18
.byte 0x00, 0x00, 0x00, 0x00
.byte 0x03, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00
@@ -286,7 +271,6 @@ gUnknown_80DFC9C: @ 80DFC9C
.global gUnknown_80DFCB4
gUnknown_80DFCB4: @ 80DFCB4
-@ replacing .incbin "baserom.gba", 0x000dfcb4, 0x18
.byte 0x00, 0x00, 0x00, 0x00
.byte 0x06, 0x00, 0x00, 0x00
.byte 0x02, 0x00, 0x02, 0x00
@@ -302,7 +286,6 @@ gBulletinBoardText: @ 80DFCCC
.global gUnknown_80DFCE4
gUnknown_80DFCE4: @ 80DFCE4
-@ replacing .incbin "baserom.gba", 0x000dfce4, 0x18
.byte 0x00, 0x00, 0x00, 0x00
.byte 0x03, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00
@@ -312,7 +295,6 @@ gUnknown_80DFCE4: @ 80DFCE4
.global gUnknown_80DFCFC
gUnknown_80DFCFC: @ 80DFCFC
-@ replacing .incbin "baserom.gba", 0x000dfcfc, 0x18
.byte 0x00, 0x00
.byte 0x00, 0x00
.byte 0x06, 0x00
@@ -334,7 +316,6 @@ gUnknown_80DFD14: @ 80DFD14
.global gUnknown_80DFD28
gUnknown_80DFD28: @ 80DFD28
-@ replacing .incbin "baserom.gba", 0x000dfd28, 0x18
.byte 0x00, 0x00, 0x00, 0x00
.byte 0x03, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00
@@ -344,7 +325,6 @@ gUnknown_80DFD28: @ 80DFD28
.global gUnknown_80DFD40
gUnknown_80DFD40: @ 80DFD40
-@ replacing .incbin "baserom.gba", 0x000dfd40, 0x18
.byte 0x00, 0x00
.byte 0x00, 0x00
.byte 0x04, 0x00
@@ -360,7 +340,6 @@ gUnknown_80DFD40: @ 80DFD40
.global gUnknown_80DFD58
gUnknown_80DFD58: @ 80DFD58
-@ replacing .incbin "baserom.gba", 0x000dfd58, 0x18
.byte 0x00, 0x00
.byte 0x00, 0x00
.byte 0x04, 0x00
@@ -386,7 +365,6 @@ gUnknown_80DFD7C: @ 80DFD7C
.global gUnknown_80DFD8C
gUnknown_80DFD8C: @ 80DFD8C
-@ replacing .incbin "baserom.gba", 0x000dfd8c, 0x18
.byte 0x00, 0x00, 0x00, 0x00
.byte 0x03, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00
@@ -396,7 +374,6 @@ gUnknown_80DFD8C: @ 80DFD8C
.global gUnknown_80DFDA4
gUnknown_80DFDA4: @ 80DFDA4
-@ replacing .incbin "baserom.gba", 0x000dfda4, 0x18
.byte 0x00, 0x00, 0x00, 0x00
.byte 0x06, 0x00, 0x00, 0x00
.byte 0x02, 0x00, 0x02, 0x0
@@ -614,7 +591,19 @@ gUnknown_80E03B8: @ 80E03B8
.global gUnknown_80E03C4
gUnknown_80E03C4: @ 80E03C4
- .incbin "baserom.gba", 0xE03C4, 0x30
+ .byte 0x00, 0x00, 0x00, 0x00
+ .byte 0x03, 0x00, 0x00, 0x00
+ .byte 0x00, 0x00, 0x00, 0x00
+ .byte 0x00, 0x00, 0x00, 0x00
+ .byte 0x00, 0x00, 0x00, 0x00
+ .byte 0x00, 0x00, 0x00, 0x00
+
+ .byte 0x00, 0x00, 0x00, 0x00
+ .byte 0x03, 0x00, 0x00, 0x00
+ .byte 0x03, 0x00, 0x03, 0x00
+ .byte 0x07, 0x00, 0x03, 0x00
+ .byte 0x03, 0x00, 0x00, 0x00
+ .byte 0x00, 0x00, 0x00, 0x00
.global gUnknown_80E03F4
gUnknown_80E03F4: @ 80E03F4
@@ -650,7 +639,11 @@ gUnknown_80E0434: @ 80E0434
.global gUnknown_80E045C
gUnknown_80E045C: @ 80E045C
- .incbin "baserom.gba", 0xE045C, 0x28
+@ replacing .incbin "baserom.gba", 0x000e045c, 0x28
+ .string "#+#CN$m0#R received\n"
+ .string "#+#C5$d0#R"
+ .byte 0x20, 0x83
+ .byte 0xbf, 0x83, 0xc4, 0x2e, 0x00, 0x00, 0x00, 0x00
.global gUnknown_80E0484
gUnknown_80E0484: @ 80E0484
@@ -977,232 +970,13 @@ gUnknown_80E09C0: @ 80E09C0
.global gUnknown_80E09D8
gUnknown_80E09D8: @ 80E09D8
- .incbin "baserom.gba", 0xE09D8, 0x34
+ .string " ...Uh~2c no?\n"
+ .asciz "You don~27t have any #CGSOS Mail#R."
+ .align 2,0
.global gUnknown_80E0A0C
gUnknown_80E0A0C: @ 80E0A0C
- .incbin "baserom.gba", 0xE0A0C, 0x3C
-
- .global gUnknown_80E0A48
-gUnknown_80E0A48: @ 80E0A48
- @ Pelipper help menu (one not at the counter on the right)
- .incbin "baserom.gba", 0xE0A48, 0x74
-
- .global gUnknown_80E0ABC
-gUnknown_80E0ABC: @ 80E0ABC
- @ Friend Rescue menu from help menu
- @ replacing .incbin "baserom.gba", 0x000e0abc, 0x80
- .4byte FriendRescueInfo_Text
- .byte 0x06, 0x00, 0x00, 0x00
- .4byte GoRescue_Text
- .byte 0x07, 0x00, 0x00, 0x00
- .4byte GetHelp_Text
- .byte 0x08, 0x00, 0x00, 0x00
- .4byte DeletingMailInfo_Text
- .byte 0x09, 0x00, 0x00, 0x00
- .4byte Exit_80EA0EC
- .byte 0x05, 0x00, 0x00, 0x00
- .byte 0x00, 0x00, 0x00, 0x00
- .byte 0x05, 0x00, 0x00, 0x00
-
- .global Exit_80E0AEC
- Exit_80EA0EC:
- .string "Exit\0"
- .align 2,0
-
- .global DeletingMailInfo_Text
- DeletingMailInfo_Text:
- .string "Deleting Mail Info\0"
- .align 2,0
-
- .global GetHelp_Text
- GetHelp_Text:
- .string "#C6Get help#R \0"
- .align 2,0
-
- .global GoRescue_Text
- GoRescue_Text:
- .string "#C6Go rescue#R \0"
- .align 2,0
-
- .global FriendRescueInfo_Text
- FriendRescueInfo_Text:
- .string "Friend Rescue Info\0"
- .align 2,0
-
- .global gUnknown_80E0B3C
-gUnknown_80E0B3C: @ 80E0B3C
- @ Go Resuce menu from Peilipper help menu
- @ replacing .incbin "baserom.gba", 0x000e0b3c, 0x98
- .4byte RescueProcedures_Text
- .byte 0x0a, 0x00, 0x00, 0x00
- .4byte ReceiveSOSMail_Text
- .byte 0x0b, 0x00, 0x00, 0x00
- .4byte LeaveForRescue_Text
- .byte 0x0c, 0x00, 0x00, 0x00
- .4byte SendAOKMail_Text
- .byte 0x0d, 0x00, 0x00, 0x00
- .4byte GetThankYouMail_Text
- .byte 0x0e, 0x00, 0x00, 0x00
- .4byte Exit_80EA0EC
- .byte 0x05, 0x00, 0x00, 0x00
- .byte 0x00, 0x00, 0x00, 0x00
- .byte 0x05, 0x00, 0x00, 0x00
-
- .global GetThankYouMail_Text
- GetThankYouMail_Text:
- .string "Get Thank-You Mail\0"
- .align 2,0
-
- .global SendAOKMail_Text
- SendAOKMail_Text:
- .string "Send A-OK Mail\0"
- .align 2,0
-
- .global LeaveForResuce_Text
- LeaveForRescue_Text:
- .string "Leave for Rescue\0"
- .align 2,0
-
- .global ReceiveSOSMail_Text
- ReceiveSOSMail_Text:
- .string "Receive SOS Mail\0"
- .align 2,0
-
- .global RescueProcedures_Text
- RescueProcedures_Text:
- .string "Rescue Procedures\0"
- .align 2,0
-
- .global gUnknown_80E0BD4
-gUnknown_80E0BD4: @ 80E0BD4
- @ Get help menu from Pelipper help menu
- @ replacing .incbin "baserom.gba", 0x000e0bd4, 0x78
- .4byte GettingHelp_Text
- .byte 0x0f, 0x00, 0x00, 0x00
- .4byte SendSOSMail_Text
- .byte 0x10, 0x00, 0x00, 0x00
- .4byte RecieveAOKMail_Text
- .byte 0x11, 0x00, 0x00, 0x00
- .4byte SentThankYouMail_Text
- .byte 0x12, 0x00, 0x00, 0x00
- .4byte Exit_80EA0EC
- .byte 0x05, 0x00, 0x00, 0x00
- .byte 0x00, 0x00, 0x00, 0x00
- .byte 0x05, 0x00, 0x00, 0x00
-
- .global SendThankYouMail_Text
- SentThankYouMail_Text:
- .string "Send Thank-You Mail\0"
- .align 2,0
-
- .global ReceiveAOKMail_Text
- RecieveAOKMail_Text:
- .string "Receive A-OK Mail\0"
- .align 2,0
-
- .global SendSOSMail_Text
- SendSOSMail_Text:
- .string "Send SOS Mail\0"
- .align 2,0
-
- .global GettingHelp_Text
- GettingHelp_Text:
- .string "Getting Help\0"
- .align 2,0
-
-
- .include "data/text/wonder_mail_4.inc"
-
- .global gUnknown_80E1EFC
-gUnknown_80E1EFC: @ 80E1EFC
- .byte 0x00, 0x00, 0x00, 0x00
- .byte 0x03, 0x00, 0x00, 0x00
- .byte 0x00, 0x00, 0x00, 0x00
- .byte 0x00, 0x00, 0x00, 0x00
- .byte 0x00, 0x00, 0x00, 0x00
- .byte 0x00, 0x00, 0x00, 0x00
-
- .global gUnkData_80E1F14
- gUnkData_80E1F14:
- .byte 0x01, 0x00, 0x08, 0x00
-
- .global gUnknown_80E1F18
-gUnknown_80E1F18: @ 80E1F18
- .byte 0x00, 0x00, 0x00, 0x00
- .byte 0x06, 0x00, 0x00, 0x00
- .byte 0x02, 0x00, 0x02, 0x00
- .byte 0x14, 0x00, 0x04, 0x00
- .byte 0x04, 0x00, 0x00, 0x00
-
- .4byte gUnkData_80E1F14
-
- .global gUnknown_80E1F30
-gUnknown_80E1F30: @ 80E1F30
- .string "Objectives\0"
- .align 2,0
-
- .global gUnknown_80E1F3C
-gUnknown_80E1F3C: @ 80E1F3C
- .string "%dF\0"
-
- .global gUnknown_80E1F40
-gUnknown_80E1F40: @ 80E1F40
- .string " Rescue #C6%s#R\0"
- .align 2,0
-
- .global gUnknown_80E1F54
-gUnknown_80E1F54: @ 80E1F54
- .string "Just go!\0"
- .align 2,0
-
- .global gUnknown_80E1F60
-gUnknown_80E1F60: @ 80E1F60
- .string " Bring #C4%s#R\0"
- .align 2,0
-
- .global gUnknown_80E1F70
-gUnknown_80E1F70: @ 80E1F70
- .string " Find #C4%s#R\0"
- .align 2,0
-
- .global gUnknown_80E1F80
-gUnknown_80E1F80: @ 80E1F80
- .string " Escort to #C6%s#R\0"
- .align 2,0
-
- .global gUnknown_80E1F94
-gUnknown_80E1F94: @ 80E1F94
- .string "#CW???#R\0"
- .align 2,0
- .string "pksdir0\0"
-
- .global gUnknown_80E1FA8
-gUnknown_80E1FA8: @ 80E1FA8
- .byte 0x00, 0x00, 0x00, 0x00
- .byte 0x03, 0x00, 0x00, 0x00
- .byte 0x00, 0x00, 0x00, 0x00
- .byte 0x00, 0x00, 0x00, 0x00
- .byte 0x00, 0x00, 0x00, 0x00
- .byte 0x00, 0x00, 0x00, 0x00
-
- .global gUnkData_80E1FC0
- gUnkData_80E1FC0:
- .byte 0x01, 0x00, 0x0A, 0x00
-
- .global gUnknown_80E1FC4
-gUnknown_80E1FC4: @ 80E1FC4
- .byte 0x00, 0x00, 0x00, 0x00
- .byte 0x06, 0x00, 0x00, 0x00
- .byte 0x02, 0x00, 0x02, 0x00
- .byte 0x1a, 0x00, 0x0a, 0x00
- .byte 0x0a, 0x00, 0x00, 0x00
-
- .4byte gUnkData_80E1FC0
-
- .global gUnknown_80E1FDC
-gUnknown_80E1FDC: @ 80E1FDC
- .string "Password\0"
- .align 2,0
- .string "pksdir0\0"
+ .string " ...Uh~2c no?\n"
+ .asciz "You don~27t have any #CGA-OK Mail#R."
.align 2,0
+ .asciz "pksdir0"
diff --git a/data/data_80E1F30.s b/data/data_80E1F30.s
new file mode 100644
index 0000000..725d0e5
--- /dev/null
+++ b/data/data_80E1F30.s
@@ -0,0 +1,71 @@
+ .section .rodata
+
+ .global gUnknown_80E1F30
+gUnknown_80E1F30: @ 80E1F30
+ .string "Objectives\0"
+ .align 2,0
+
+ .global gUnknown_80E1F3C
+gUnknown_80E1F3C: @ 80E1F3C
+ .string "%dF\0"
+
+ .global gUnknown_80E1F40
+gUnknown_80E1F40: @ 80E1F40
+ .string " Rescue #C6%s#R\0"
+ .align 2,0
+
+ .global gUnknown_80E1F54
+gUnknown_80E1F54: @ 80E1F54
+ .string "Just go!\0"
+ .align 2,0
+
+ .global gUnknown_80E1F60
+gUnknown_80E1F60: @ 80E1F60
+ .string " Bring #C4%s#R\0"
+ .align 2,0
+
+ .global gUnknown_80E1F70
+gUnknown_80E1F70: @ 80E1F70
+ .string " Find #C4%s#R\0"
+ .align 2,0
+
+ .global gUnknown_80E1F80
+gUnknown_80E1F80: @ 80E1F80
+ .string " Escort to #C6%s#R\0"
+ .align 2,0
+
+ .global gUnknown_80E1F94
+gUnknown_80E1F94: @ 80E1F94
+ .string "#CW???#R\0"
+ .align 2,0
+ .string "pksdir0\0"
+
+ .global gUnknown_80E1FA8
+gUnknown_80E1FA8: @ 80E1FA8
+ .byte 0x00, 0x00, 0x00, 0x00
+ .byte 0x03, 0x00, 0x00, 0x00
+ .byte 0x00, 0x00, 0x00, 0x00
+ .byte 0x00, 0x00, 0x00, 0x00
+ .byte 0x00, 0x00, 0x00, 0x00
+ .byte 0x00, 0x00, 0x00, 0x00
+
+ .global gUnkData_80E1FC0
+ gUnkData_80E1FC0:
+ .byte 0x01, 0x00, 0x0A, 0x00
+
+ .global gUnknown_80E1FC4
+gUnknown_80E1FC4: @ 80E1FC4
+ .byte 0x00, 0x00, 0x00, 0x00
+ .byte 0x06, 0x00, 0x00, 0x00
+ .byte 0x02, 0x00, 0x02, 0x00
+ .byte 0x1a, 0x00, 0x0a, 0x00
+ .byte 0x0a, 0x00, 0x00, 0x00
+
+ .4byte gUnkData_80E1FC0
+
+ .global gUnknown_80E1FDC
+gUnknown_80E1FDC: @ 80E1FDC
+ .string "Password\0"
+ .align 2,0
+ .string "pksdir0\0"
+ .align 2,0
diff --git a/data/data_80E2068.s b/data/data_80E2068.s
index d30aaa2..be653e5 100644
--- a/data/data_80E2068.s
+++ b/data/data_80E2068.s
@@ -255,19 +255,54 @@ gUnknown_80E22F0: @ 80E22F0
.global gUnknown_80E231C
gUnknown_80E231C: @ 80E231C
- .incbin "baserom.gba", 0xE231C, 0x18
+ .byte 0x00, 0x00, 0x00, 0x00
+ .byte 0x03, 0x00, 0x00, 0x00
+ .byte 0x16, 0x00, 0x07, 0x00
+ .byte 0x06, 0x00, 0x04, 0x00
+ .byte 0x04, 0x00, 0x00, 0x00
+ .byte 0x00, 0x00, 0x00, 0x00
.global gUnknown_80E2334
gUnknown_80E2334: @ 80E2334
- .incbin "baserom.gba", 0xE2334, 0x18
+ .byte 0x00, 0x00, 0x00, 0x00
+ .byte 0x03, 0x00, 0x00, 0x00
+ .byte 0x16, 0x00, 0x06, 0x00
+ .byte 0x06, 0x00, 0x04, 0x00
+ .byte 0x04, 0x00, 0x00, 0x00
+ .byte 0x00, 0x00, 0x00, 0x00
.global gUnknown_80E234C
gUnknown_80E234C: @ 80E234C
- .incbin "baserom.gba", 0xE234C, 0x20
+ .4byte Confirm_80E2364
+ .byte 0x09, 0x00, 0x00, 0x00
+ .4byte Info_80E2098
+ .byte 0x0a, 0x00, 0x00, 0x00
+ .byte 0x00, 0x00, 0x00, 0x00
+ .byte 0x08, 0x00, 0x00, 0x00
+ .global Confirm_80E2364
+ Confirm_80E2364:
+ .string "Confirm\0"
+ .align 2,0
.global gUnknown_80E236C
gUnknown_80E236C: @ 80E236C
- .incbin "baserom.gba", 0xE236C, 0x3C
+ .4byte GameLinkCable_80E2398
+ .byte 0x0b, 0x00, 0x00, 0x00
+ .4byte Password_80E238C
+ .byte 0x0d, 0x00, 0x00, 0x00
+ .4byte Cancel_80E22A8
+ .byte 0x08, 0x00, 0x00, 0x00
+ .byte 0x00, 0x00, 0x00, 0x00
+ .byte 0x08, 0x00, 0x00, 0x00
+
+ .global Password_80E238C
+ Password_80E238C:
+ .string "Password\0"
+ .align 2,0
+ .global GameLinkCable_80E2398
+ GameLinkCable_80E2398:
+ .string "Game Link cable\0"
+ .align 2,0
.global gUnknown_80E23A8
gUnknown_80E23A8: @ 80E23A8
@@ -388,7 +423,8 @@ gUnknown_80E29D0: @ 80E29D0
.global gUnknown_80E2A0C
gUnknown_80E2A0C: @ 80E2A0C
- .incbin "baserom.gba", 0xE2A0C, 0x10
+ .asciz "Save completed."
+ .align 2,0
.global gUnknown_80E2A1C
gUnknown_80E2A1C: @ 80E2A1C
@@ -396,11 +432,13 @@ gUnknown_80E2A1C: @ 80E2A1C
.global gUnknown_80E2A5C
gUnknown_80E2A5C: @ 80E2A5C
- .incbin "baserom.gba", 0xE2A5C, 0x24
+ .asciz "Here is the #CGSOS Mail password#R."
+ .align 2,0
.global gUnknown_80E2A80
gUnknown_80E2A80: @ 80E2A80
- .incbin "baserom.gba", 0xE2A80, 0x28
+ .asciz "Here is the #CGA-OK Mail password#R."
+ .align 2,0
.global gUnknown_80E2AA8
gUnknown_80E2AA8: @ 80E2AA8
@@ -444,7 +482,8 @@ gUnknown_80E2D30: @ 80E2D30
.global gUnknown_80E2D60
gUnknown_80E2D60: @ 80E2D60
- .incbin "baserom.gba", 0xE2D60, 0x1C
+ .asciz "There is no #CGA-OK Mail#R."
+ .align 2,0
.global gUnknown_80E2D7C
gUnknown_80E2D7C: @ 80E2D7C
@@ -854,7 +893,12 @@ gUnknown_80E59C8: @ 80E59C8
.global gUnknown_80E59E0
gUnknown_80E59E0: @ 80E59E0
- .incbin "baserom.gba", 0xE59E0, 0x18
+ .byte 0x00, 0x00, 0x00, 0x00
+ .byte 0x03, 0x00, 0x00, 0x00
+ .byte 0x02, 0x00, 0x02, 0x00
+ .byte 0x0A, 0x00, 0x03, 0x00
+ .byte 0x03, 0x00, 0x00, 0x00
+ .byte 0x00, 0x00, 0x00, 0x00
.global gUnknown_80E59F8
gUnknown_80E59F8: @ 80E59F8
@@ -862,11 +906,21 @@ gUnknown_80E59F8: @ 80E59F8
.global gUnknown_80E5A60
gUnknown_80E5A60: @ 80E5A60
- .incbin "baserom.gba", 0xE5A60, 0x18
+ .byte 0x00, 0x00, 0x00, 0x00
+ .byte 0x03, 0x00, 0x00, 0x00
+ .byte 0x02, 0x00, 0x02, 0x00
+ .byte 0x0A, 0x00, 0x08, 0x00
+ .byte 0x08, 0x00, 0x00, 0x00
+ .byte 0x00, 0x00, 0x00, 0x00
.global gUnknown_80E5A78
gUnknown_80E5A78: @ 80E5A78
- .incbin "baserom.gba", 0xE5A78, 0x18
+ .byte 0x00, 0x00, 0x00, 0x00
+ .byte 0x03, 0x00, 0x00, 0x00
+ .byte 0x02, 0x00, 0x02, 0x00
+ .byte 0x0B, 0x00, 0x09, 0x00
+ .byte 0x09, 0x00, 0x00, 0x00
+ .byte 0x00, 0x00, 0x00, 0x00
.global gUnknown_80E5A90
gUnknown_80E5A90: @ 80E5A90
@@ -878,7 +932,12 @@ gUnknown_80E5AFC: @ 80E5AFC
.global gUnknown_80E5B34
gUnknown_80E5B34: @ 80E5B34
- .incbin "baserom.gba", 0xE5B34, 0x18
+ .byte 0x00, 0x00, 0x00, 0x00
+ .byte 0x03, 0x00, 0x00, 0x00
+ .byte 0x02, 0x00, 0x02, 0x00
+ .byte 0x0A, 0x00, 0x08, 0x00
+ .byte 0x08, 0x00, 0x00, 0x00
+ .byte 0x00, 0x00, 0x00, 0x00
.global gUnknown_80E5B4C
gUnknown_80E5B4C: @ 80E5B4C
@@ -890,7 +949,12 @@ gUnknown_80E5B8C: @ 80E5B8C
.global gUnknown_80E5BC4
gUnknown_80E5BC4: @ 80E5BC4
- .incbin "baserom.gba", 0xE5BC4, 0x18
+ .byte 0x00, 0x00, 0x00, 0x00
+ .byte 0x03, 0x00, 0x00, 0x00
+ .byte 0x02, 0x00, 0x02, 0x00
+ .byte 0x0A, 0x00, 0x08, 0x00
+ .byte 0x08, 0x00, 0x00, 0x00
+ .byte 0x00, 0x00, 0x00, 0x00
.global gUnknown_80E5BDC
gUnknown_80E5BDC: @ 80E5BDC
@@ -902,7 +966,12 @@ gUnknown_80E5C18: @ 80E5C18
.global gUnknown_80E5CB4
gUnknown_80E5CB4: @ 80E5CB4
- .incbin "baserom.gba", 0xE5CB4, 0x18
+ .byte 0x00, 0x00, 0x00, 0x00
+ .byte 0x03, 0x00, 0x00, 0x00
+ .byte 0x02, 0x00, 0x0F, 0x00
+ .byte 0x1A, 0x00, 0x03, 0x00
+ .byte 0x03, 0x00, 0x00, 0x00
+ .byte 0x00, 0x00, 0x00, 0x00
.global gUnknown_80E5CCC
gUnknown_80E5CCC: @ 80E5CCC
@@ -952,39 +1021,121 @@ gUnknown_80E6030: @ 80E6030
.global gUnknown_80E60A0
gUnknown_80E60A0: @ 80E60A0
- .incbin "baserom.gba", 0xE60A0, 0x34
+ .4byte SendItem_80E60C8
+ .4byte 1
+ .4byte ReceiveItem_80E60B8
+ .4byte 2
+ .4byte 0
+ .4byte 0
+
+ .global ReceiveItem_80E60B8
+ ReceiveItem_80E60B8:
+ .asciz "Receive item"
+ .align 2,0
+
+ .global SendItem_80E60C8
+ SendItem_80E60C8:
+ .asciz "Send item"
+ .align 2,0
.global gUnknown_80E60D4
gUnknown_80E60D4: @ 80E60D4
- .incbin "baserom.gba", 0xE60D4, 0x18
+ .4byte SendItem_80E60C8
+ .byte 0xFF, 0xFF, 0xFF, 0xFF
+ .4byte ReceiveItem_80E60B8
+ .4byte 2
+ .4byte 0
+ .4byte 0
.global gUnknown_80E60EC
gUnknown_80E60EC: @ 80E60EC
- .incbin "baserom.gba", 0xE60EC, 0x18
+ .byte 0x00, 0x00, 0x00, 0x00
+ .byte 0x03, 0x00, 0x00, 0x00
+ .byte 0x15, 0x00, 0x04, 0x00
+ .byte 0x06, 0x00, 0x05, 0x00
+ .byte 0x05, 0x00, 0x00, 0x00
+ .byte 0x00, 0x00, 0x00, 0x00
.global gUnknown_80E6104
gUnknown_80E6104: @ 80E6104
- .incbin "baserom.gba", 0xE6104, 0x50
+ .4byte Confirm_80E6134
+ .4byte 3
+ .4byte Info_80E612C
+ .4byte 4
+ .4byte Cancel_80E6124
+ .4byte 7
+ .4byte 0
+ .4byte 0
+
+ .global Cancel_80E6124
+ Cancel_80E6124:
+ .asciz "Cancel"
+ .align 2,0
+
+
+ .global Info_80E612C
+ Info_80E612C:
+ .asciz "Info"
+ .align 2,0
+
+ .global Confirm_80E6134
+ Confirm_80E6134:
+ .asciz "Confirm"
+ .align 2,0
+
+ .byte 0x00, 0x00, 0x00, 0x00
+ .byte 0x03, 0x00, 0x00, 0x00
+ .byte 0x16, 0x00, 0x09, 0x00
+ .byte 0x05, 0x00, 0x03, 0x00
+ .byte 0x03, 0x00, 0x00, 0x00
+ .byte 0x00, 0x00, 0x00, 0x00
.global gUnknown_80E6154
gUnknown_80E6154: @ 80E6154
- .incbin "baserom.gba", 0xE6154, 0x20
+ .4byte Yes_80E6170
+ .4byte 5
+ .4byte No_80E616C
+ .4byte 6
+ .4byte 0
+ .4byte 0
+
+ .global No_80E616C
+ No_80E616C:
+ .asciz "No"
+ .align 2,0
+
+ .global Yes_80E6170
+ Yes_80E6170:
+ .asciz "Yes"
+ .align 2,0
.global gUnknown_80E6174
gUnknown_80E6174: @ 80E6174
- .incbin "baserom.gba", 0xE6174, 0x18
+ .byte 0x00, 0x00, 0x00, 0x00
+ .byte 0x03, 0x00, 0x00, 0x00
+ .byte 0x15, 0x00, 0x0D, 0x00
+ .byte 0x06, 0x00, 0x04, 0x00
+ .byte 0x04, 0x00, 0x00, 0x00
+ .byte 0x00, 0x00, 0x00, 0x00
.global gUnknown_80E618C
gUnknown_80E618C: @ 80E618C
- .incbin "baserom.gba", 0xE618C, 0x18
+ .4byte Yes_80E6170
+ .4byte 5
+ .4byte Cancel_80E6124
+ .4byte 0
+ .4byte 0
+ .4byte 0
.global gUnknown_80E61A4
gUnknown_80E61A4: @ 80E61A4
- .incbin "baserom.gba", 0xE61A4, 0x1C
+ .asciz "What would you like to do? "
+ .align 2,0
.global gUnknown_80E61C0
gUnknown_80E61C0: @ 80E61C0
- .incbin "baserom.gba", 0xE61C0, 0x24
+ .asciz "Please choose the item to be sent."
+ .align 2,0
.global gUnknown_80E61E4
gUnknown_80E61E4: @ 80E61E4
@@ -1013,7 +1164,8 @@ gUnknown_80E6358: @ 80E6358
@ Trade Items Link Errors
.global gTradeItemsCommunicationError
gTradeItemsCommunicationError: @ 80E6378
- .incbin "baserom.gba", 0xE6378, 0x24
+ .asciz "There was a communication error."
+ .align 2,0
.global gUnknown_80E639C
gUnknown_80E639C: @ 80E639C
@@ -1033,17 +1185,30 @@ gUnknown_80E64AC: @ 80E64AC
.global gTradeItemsHowManyText
gTradeItemsHowManyText: @ 80E6528
- .incbin "baserom.gba", 0xE6528, 0x14
+ .asciz "How many?"
+ .align 2,0
+ .asciz "pksdir0"
@ End of Trade Menu Data
.global gUnknown_80E653C
gUnknown_80E653C: @ 80E653C
- .incbin "baserom.gba", 0xE653C, 0x18
+ .byte 0x00, 0x00, 0x00, 0x00
+ .byte 0x03, 0x00, 0x00, 0x00
+ .byte 0x00, 0x00, 0x00, 0x00
+ .byte 0x00, 0x00, 0x00, 0x00
+ .byte 0x00, 0x00, 0x00, 0x00
+ .byte 0x00, 0x00, 0x00, 0x00
.global gUnknown_80E6554
gUnknown_80E6554: @ 80E6554
- .incbin "baserom.gba", 0xE6554, 0x18
+ .byte 0x00, 0x00, 0x00, 0x00
+ .byte 0x03, 0x00, 0x00, 0x00
+ .byte 0x03, 0x00, 0x08, 0x00
+ .byte 0x18, 0x00, 0x05, 0x00
+ .byte 0x05, 0x00, 0x00, 0x00
+ .byte 0x00, 0x00, 0x00, 0x00
+
.global gUnknown_80E656C
gUnknown_80E656C: @ 80E656C
@@ -1067,7 +1232,12 @@ gUnknown_80E667C: @ 80E667C
.global gUnknown_80E66BC
gUnknown_80E66BC: @ 80E66BC
- .incbin "baserom.gba", 0xE66BC, 0x18
+ .byte 0x00, 0x00, 0x00, 0x00
+ .byte 0x03, 0x00, 0x00, 0x00
+ .byte 0x03, 0x00, 0x08, 0x00
+ .byte 0x18, 0x00, 0x05, 0x00
+ .byte 0x05, 0x00, 0x00, 0x00
+ .byte 0x00, 0x00, 0x00, 0x00
.global gUnknown_80E66D4
gUnknown_80E66D4: @ 80E66D4
@@ -1075,7 +1245,12 @@ gUnknown_80E66D4: @ 80E66D4
.global gUnknown_80E6748
gUnknown_80E6748: @ 80E6748
- .incbin "baserom.gba", 0xE6748, 0x18
+ .byte 0x00, 0x00, 0x00, 0x00
+ .byte 0x03, 0x00, 0x00, 0x00
+ .byte 0x03, 0x00, 0x08, 0x00
+ .byte 0x18, 0x00, 0x05, 0x00
+ .byte 0x05, 0x00, 0x00, 0x00
+ .byte 0x00, 0x00, 0x00, 0x00
.global gUnknown_80E6760
gUnknown_80E6760: @ 80E6760
@@ -1083,7 +1258,12 @@ gUnknown_80E6760: @ 80E6760
.global gUnknown_80E67D4
gUnknown_80E67D4: @ 80E67D4
- .incbin "baserom.gba", 0xE67D4, 0x18
+ .byte 0x00, 0x00, 0x00, 0x00
+ .byte 0x03, 0x00, 0x00, 0x00
+ .byte 0x03, 0x00, 0x08, 0x00
+ .byte 0x18, 0x00, 0x05, 0x00
+ .byte 0x05, 0x00, 0x00, 0x00
+ .byte 0x00, 0x00, 0x00, 0x00
.global gUnknown_80E67EC
gUnknown_80E67EC: @ 80E67EC
@@ -1091,7 +1271,12 @@ gUnknown_80E67EC: @ 80E67EC
.global gUnknown_80E689C
gUnknown_80E689C: @ 80E689C
- .incbin "baserom.gba", 0xE689C, 0x18
+ .byte 0x00, 0x00, 0x00, 0x00
+ .byte 0x03, 0x00, 0x00, 0x00
+ .byte 0x03, 0x00, 0x08, 0x00
+ .byte 0x18, 0x00, 0x05, 0x00
+ .byte 0x05, 0x00, 0x00, 0x00
+ .byte 0x00, 0x00, 0x00, 0x00
.global gUnknown_80E68B4
gUnknown_80E68B4: @ 80E68B4
@@ -1099,7 +1284,12 @@ gUnknown_80E68B4: @ 80E68B4
.global gUnknown_80E6938
gUnknown_80E6938: @ 80E6938
- .incbin "baserom.gba", 0xE6938, 0x18
+ .byte 0x00, 0x00, 0x00, 0x00
+ .byte 0x03, 0x00, 0x00, 0x00
+ .byte 0x03, 0x00, 0x08, 0x00
+ .byte 0x18, 0x00, 0x05, 0x00
+ .byte 0x05, 0x00, 0x00, 0x00
+ .byte 0x00, 0x00, 0x00, 0x00
.global gUnknown_80E6950
gUnknown_80E6950: @ 80E6950
@@ -1107,7 +1297,12 @@ gUnknown_80E6950: @ 80E6950
.global gUnknown_80E69B0
gUnknown_80E69B0: @ 80E69B0
- .incbin "baserom.gba", 0xE69B0, 0x18
+ .byte 0x00, 0x00, 0x00, 0x00
+ .byte 0x03, 0x00, 0x00, 0x00
+ .byte 0x03, 0x00, 0x08, 0x00
+ .byte 0x18, 0x00, 0x05, 0x00
+ .byte 0x05, 0x00, 0x00, 0x00
+ .byte 0x00, 0x00, 0x00, 0x00
.global gUnknown_80E69C8
gUnknown_80E69C8: @ 80E69C8
@@ -1115,7 +1310,12 @@ gUnknown_80E69C8: @ 80E69C8
.global gUnknown_80E6A10
gUnknown_80E6A10: @ 80E6A10
- .incbin "baserom.gba", 0xE6A10, 0x18
+ .byte 0x00, 0x00, 0x00, 0x00
+ .byte 0x03, 0x00, 0x00, 0x00
+ .byte 0x03, 0x00, 0x08, 0x00
+ .byte 0x18, 0x00, 0x05, 0x00
+ .byte 0x05, 0x00, 0x00, 0x00
+ .byte 0x00, 0x00, 0x00, 0x00
.global gUnknown_80E6A28
gUnknown_80E6A28: @ 80E6A28
@@ -1123,7 +1323,12 @@ gUnknown_80E6A28: @ 80E6A28
.global gUnknown_80E6A74
gUnknown_80E6A74: @ 80E6A74
- .incbin "baserom.gba", 0xE6A74, 0x18
+ .byte 0x00, 0x00, 0x00, 0x00
+ .byte 0x03, 0x00, 0x00, 0x00
+ .byte 0x03, 0x00, 0x08, 0x00
+ .byte 0x18, 0x00, 0x05, 0x00
+ .byte 0x05, 0x00, 0x00, 0x00
+ .byte 0x00, 0x00, 0x00, 0x00
.global gUnknown_80E6A8C
gUnknown_80E6A8C: @ 80E6A8C
@@ -1131,7 +1336,12 @@ gUnknown_80E6A8C: @ 80E6A8C
.global gUnknown_80E6B78
gUnknown_80E6B78: @ 80E6B78
- .incbin "baserom.gba", 0xE6B78, 0x18
+ .byte 0x00, 0x00, 0x00, 0x00
+ .byte 0x03, 0x00, 0x00, 0x00
+ .byte 0x03, 0x00, 0x08, 0x00
+ .byte 0x18, 0x00, 0x05, 0x00
+ .byte 0x05, 0x00, 0x00, 0x00
+ .byte 0x00, 0x00, 0x00, 0x00
.global gUnknown_80E6B90
gUnknown_80E6B90: @ 80E6B90
@@ -1139,7 +1349,12 @@ gUnknown_80E6B90: @ 80E6B90
.global gUnknown_80E6BF4
gUnknown_80E6BF4: @ 80E6BF4
- .incbin "baserom.gba", 0xE6BF4, 0x18
+ .byte 0x00, 0x00, 0x00, 0x00
+ .byte 0x03, 0x00, 0x00, 0x00
+ .byte 0x03, 0x00, 0x08, 0x00
+ .byte 0x18, 0x00, 0x05, 0x00
+ .byte 0x05, 0x00, 0x00, 0x00
+ .byte 0x00, 0x00, 0x00, 0x00
.global gUnknown_80E6C0C
gUnknown_80E6C0C: @ 80E6C0C
@@ -1147,7 +1362,12 @@ gUnknown_80E6C0C: @ 80E6C0C
.global gUnknown_80E6C50
gUnknown_80E6C50: @ 80E6C50
- .incbin "baserom.gba", 0xE6C50, 0x18
+ .byte 0x00, 0x00, 0x00, 0x00
+ .byte 0x03, 0x00, 0x00, 0x00
+ .byte 0x03, 0x00, 0x08, 0x00
+ .byte 0x18, 0x00, 0x05, 0x00
+ .byte 0x05, 0x00, 0x00, 0x00
+ .byte 0x00, 0x00, 0x00, 0x00
.global gUnknown_80E6C68
gUnknown_80E6C68: @ 80E6C68
@@ -1155,7 +1375,12 @@ gUnknown_80E6C68: @ 80E6C68
.global gUnknown_80E6CD0
gUnknown_80E6CD0: @ 80E6CD0
- .incbin "baserom.gba", 0xE6CD0, 0x18
+ .byte 0x00, 0x00, 0x00, 0x00
+ .byte 0x03, 0x00, 0x00, 0x00
+ .byte 0x03, 0x00, 0x08, 0x00
+ .byte 0x18, 0x00, 0x05, 0x00
+ .byte 0x05, 0x00, 0x00, 0x00
+ .byte 0x00, 0x00, 0x00, 0x00
.global gUnknown_80E6CE8
gUnknown_80E6CE8: @ 80E6CE8
@@ -1163,7 +1388,12 @@ gUnknown_80E6CE8: @ 80E6CE8
.global gUnknown_80E6D54
gUnknown_80E6D54: @ 80E6D54
- .incbin "baserom.gba", 0xE6D54, 0x18
+ .byte 0x00, 0x00, 0x00, 0x00
+ .byte 0x03, 0x00, 0x00, 0x00
+ .byte 0x03, 0x00, 0x08, 0x00
+ .byte 0x18, 0x00, 0x05, 0x00
+ .byte 0x05, 0x00, 0x00, 0x00
+ .byte 0x00, 0x00, 0x00, 0x00
.global gUnknown_80E6D6C
gUnknown_80E6D6C: @ 80E6D6C
@@ -1171,7 +1401,12 @@ gUnknown_80E6D6C: @ 80E6D6C
.global gUnknown_80E6DDC
gUnknown_80E6DDC: @ 80E6DDC
- .incbin "baserom.gba", 0xE6DDC, 0x18
+ .byte 0x00, 0x00, 0x00, 0x00
+ .byte 0x03, 0x00, 0x00, 0x00
+ .byte 0x03, 0x00, 0x08, 0x00
+ .byte 0x18, 0x00, 0x05, 0x00
+ .byte 0x05, 0x00, 0x00, 0x00
+ .byte 0x00, 0x00, 0x00, 0x00
.global gUnknown_80E6DF4
gUnknown_80E6DF4: @ 80E6DF4
@@ -1181,23 +1416,67 @@ gUnknown_80E6DF4: @ 80E6DF4
.global gUnknown_80E6E7C
gUnknown_80E6E7C: @ 80E6E7C
- .incbin "baserom.gba", 0xE6E7C, 0x18
+ .byte 0x00, 0x00, 0x00, 0x00
+ .byte 0x03, 0x00, 0x00, 0x00
+ .byte 0x00, 0x00, 0x00, 0x00
+ .byte 0x00, 0x00, 0x00, 0x00
+ .byte 0x00, 0x00, 0x00, 0x00
+ .byte 0x00, 0x00, 0x00, 0x00
.global gUnknown_80E6E94
gUnknown_80E6E94: @ 80E6E94
- .incbin "baserom.gba", 0xE6E94, 0x18
+ .byte 0x00, 0x00, 0x00, 0x00
+ .byte 0x03, 0x00, 0x00, 0x00
+ .byte 0x05, 0x00, 0x09, 0x00
+ .byte 0x13, 0x00, 0x05, 0x00
+ .byte 0x05, 0x00, 0x00, 0x00
+ .byte 0x00, 0x00, 0x00, 0x00
.global gUnknown_80E6EAC
gUnknown_80E6EAC: @ 80E6EAC
- .incbin "baserom.gba", 0xE6EAC, 0x74
+ .4byte Caution_80E6F04
+ .4byte 3
+ .4byte StorageEmpty_80E6EE4
+ .4byte 3
+ .4byte CheckAgain_80E6ECC
+ .4byte 3
+ .4byte 0
+ .4byte 1
+
+ .global CheckAgain_80E6ECC
+ CheckAgain_80E6ECC:
+ .asciz "#+Please check again."
+ .align 2,0
+
+ .global StorageEmpty_80E6EE4
+ StorageEmpty_80E6EE4:
+ .asciz "#+The storage space is empty!"
+ .align 2,0
+
+ .global Caution_80E6F04
+ Caution_80E6F04:
+ .asciz "#+#C2Caution!#R "
+ .align 2,0
+
+ .asciz "pksdir0"
.global gUnknown_80E6F20
gUnknown_80E6F20: @ 80E6F20
- .incbin "baserom.gba", 0xE6F20, 0x18
+ .byte 0x00, 0x00, 0x00, 0x00
+ .byte 0x03, 0x00, 0x00, 0x00
+ .byte 0x00, 0x00, 0x00, 0x00
+ .byte 0x00, 0x00, 0x00, 0x00
+ .byte 0x00, 0x00, 0x00, 0x00
+ .byte 0x00, 0x00, 0x00, 0x00
.global gUnknown_80E6F38
gUnknown_80E6F38: @ 80E6F38
- .incbin "baserom.gba", 0xE6F38, 0x18
+ .byte 0x00, 0x00, 0x00, 0x00
+ .byte 0x03, 0x00, 0x00, 0x00
+ .byte 0x05, 0x00, 0x08, 0x00
+ .byte 0x15, 0x00, 0x05, 0x00
+ .byte 0x05, 0x00, 0x00, 0x00
+ .byte 0x00, 0x00, 0x00, 0x00
.global gUnknown_80E6F50
gUnknown_80E6F50: @ 80E6F50
@@ -1213,11 +1492,40 @@ gUnknown_80E701C: @ 80E701C
.global gUnknown_80E7090
gUnknown_80E7090: @ 80E7090
- .incbin "baserom.gba", 0xE7090, 0x3C
+ .4byte 0x80e6fac
+ .4byte 4
+ .4byte DeletingAdventure_80E70B0
+ .4byte 4
+ .4byte 0x80e6f70
+ .4byte 4
+ .4byte 0
+ .4byte 2
+
+ .global DeletingAdventure_80E70B0
+ DeletingAdventure_80E70B0:
+ .string "#+Deleting your adventure!"
+ .align 2,0
.global gUnknown_80E70CC
gUnknown_80E70CC: @ 80E70CC
- .incbin "baserom.gba", 0xE70CC, 0x48
+ .4byte 0x80e7008
+ .4byte 4
+ .4byte AdventureDeleted_80E70F0
+ .4byte 4
+ .4byte Data_80E70EC
+ .4byte 4
+ .4byte 0
+ .4byte 2
+
+ .global Data_80E70EC
+ Data_80E70EC:
+ .string " "
+ .align 2,0
+
+ .global AdventureDeleted_80E70F0
+ AdventureDeleted_80E70F0:
+ .string "#+Your adventure has been deleted."
+ .align 2,0
.global gUnknown_80E7114
gUnknown_80E7114: @ 80E7114
@@ -1247,7 +1555,29 @@ gUnknown_80E71FC: @ 80E71FC
.global gUnknown_80E7214
gUnknown_80E7214: @ 80E7214
- .incbin "baserom.gba", 0xE7214, 0x64
+ .4byte Error_80E7268
+ .4byte 0xC
+ .4byte IncorrectPassword_80E7250
+ .4byte 0xC
+ .4byte CheckAgain_80E7234
+ .4byte 0xC
+ .4byte 0
+ .4byte 0xA
+
+ .global CheckAgain_80E7234
+ CheckAgain_80E7234:
+ .asciz "#+Please check it again."
+ .align 2,0
+
+ .global IncorrectPassword_80E7250
+ IncorrectPassword_80E7250:
+ .asciz "#+Incorrect password!"
+ .align 2,0
+
+ .global Error_80E7268
+ Error_80E7268:
+ .asciz "#+#C2Error!#R "
+ .align 2,0
.global gUnknown_80E7278
gUnknown_80E7278: @ 80E7278
@@ -1294,7 +1624,19 @@ gUnknown_80E72EC: @ 80E72EC
.global gUnknown_80E7304
gUnknown_80E7304: @ 80E7304
- .incbin "baserom.gba", 0xE7304, 0x40
+ .4byte Error_80E7268
+ .4byte 0xC
+ .4byte NotSOSMail_80E7324
+ .4byte 0xC
+ .4byte CheckAgain_80E7234
+ .4byte 0xC
+ .4byte 0
+ .4byte 0xA
+
+ .global NotSOSMail_80E7324
+ NotSOSMail_80E7324:
+ .asciz "#+This is not an #CGSOS Mail#R."
+ .align 2,0
.global gUnknown_80E7344
gUnknown_80E7344: @ 80E7344
@@ -1307,7 +1649,19 @@ gUnknown_80E7344: @ 80E7344
.global gUnknown_80E735C
gUnknown_80E735C: @ 80E735C
- .incbin "baserom.gba", 0xE735C, 0x50
+ .4byte Error_80E7268
+ .4byte 0xC
+ .4byte ReceiveSOSMail_80E737C
+ .4byte 0xC
+ .4byte CheckAgain_80E7234
+ .4byte 0xC
+ .4byte 0
+ .4byte 0xA
+
+ .global ReceiveSOSMail_80E737C
+ ReceiveSOSMail_80E737C:
+ .asciz "#+This #CGSOS Mail#R has been received already."
+ .align 2,0
.global gUnknown_80E73AC
gUnknown_80E73AC: @ 80E73AC
@@ -1324,7 +1678,12 @@ gUnknown_80E73C4: @ 80E73C4
.global gUnknown_80E7408
gUnknown_80E7408: @ 80E7408
- .incbin "baserom.gba", 0xE7408, 0x18
+ .byte 0x00, 0x00, 0x00, 0x00
+ .byte 0x03, 0x00, 0x00, 0x00
+ .byte 0x03, 0x00, 0x09, 0x00
+ .byte 0x17, 0x00, 0x05, 0x00
+ .byte 0x05, 0x00, 0x00, 0x00
+ .byte 0x00, 0x00, 0x00, 0x00
.global gUnknown_80E7420
gUnknown_80E7420: @ 80E7420
@@ -1332,7 +1691,12 @@ gUnknown_80E7420: @ 80E7420
.global gUnknown_80E7468
gUnknown_80E7468: @ 80E7468
- .incbin "baserom.gba", 0xE7468, 0x18
+ .byte 0x00, 0x00, 0x00, 0x00
+ .byte 0x03, 0x00, 0x00, 0x00
+ .byte 0x03, 0x00, 0x09, 0x00
+ .byte 0x17, 0x00, 0x05, 0x00
+ .byte 0x05, 0x00, 0x00, 0x00
+ .byte 0x00, 0x00, 0x00, 0x00
.global gUnknown_80E7480
gUnknown_80E7480: @ 80E7480
@@ -1340,7 +1704,12 @@ gUnknown_80E7480: @ 80E7480
.global gUnknown_80E74C8
gUnknown_80E74C8: @ 80E74C8
- .incbin "baserom.gba", 0xE74C8, 0x18
+ .byte 0x00, 0x00, 0x00, 0x00
+ .byte 0x03, 0x00, 0x00, 0x00
+ .byte 0x03, 0x00, 0x09, 0x00
+ .byte 0x17, 0x00, 0x05, 0x00
+ .byte 0x05, 0x00, 0x00, 0x00
+ .byte 0x00, 0x00, 0x00, 0x00
.global gUnknown_80E74E0
gUnknown_80E74E0: @ 80E74E0
@@ -1348,7 +1717,12 @@ gUnknown_80E74E0: @ 80E74E0
.global gUnknown_80E752C
gUnknown_80E752C: @ 80E752C
- .incbin "baserom.gba", 0xE752C, 0x18
+ .byte 0x00, 0x00, 0x00, 0x00
+ .byte 0x03, 0x00, 0x00, 0x00
+ .byte 0x03, 0x00, 0x09, 0x00
+ .byte 0x17, 0x00, 0x05, 0x00
+ .byte 0x05, 0x00, 0x00, 0x00
+ .byte 0x00, 0x00, 0x00, 0x00
.global gUnknown_80E7544
gUnknown_80E7544: @ 80E7544
@@ -1356,7 +1730,12 @@ gUnknown_80E7544: @ 80E7544
.global gUnknown_80E7588
gUnknown_80E7588: @ 80E7588
- .incbin "baserom.gba", 0xE7588, 0x18
+ .byte 0x00, 0x00, 0x00, 0x00
+ .byte 0x03, 0x00, 0x00, 0x00
+ .byte 0x03, 0x00, 0x09, 0x00
+ .byte 0x17, 0x00, 0x05, 0x00
+ .byte 0x05, 0x00, 0x00, 0x00
+ .byte 0x00, 0x00, 0x00, 0x00
.global gUnknown_80E75A0
gUnknown_80E75A0: @ 80E75A0
@@ -1364,15 +1743,31 @@ gUnknown_80E75A0: @ 80E75A0
.global gUnknown_80E75F8
gUnknown_80E75F8: @ 80E75F8
- .incbin "baserom.gba", 0xE75F8, 0x18
+ .byte 0x00, 0x00, 0x00, 0x00
+ .byte 0x03, 0x00, 0x00, 0x00
+ .byte 0x00, 0x00, 0x00, 0x00
+ .byte 0x00, 0x00, 0x00, 0x00
+ .byte 0x00, 0x00, 0x00, 0x00
+ .byte 0x00, 0x00, 0x00, 0x00
.global gUnknown_80E7610
gUnknown_80E7610: @ 80E7610
- .incbin "baserom.gba", 0xE7610, 0x1C
+ .byte 0x00, 0x00, 0x00, 0x00
+ .byte 0x03, 0x00, 0x00, 0x00
+ .byte 0x02, 0x00, 0x02, 0x00
+ .byte 0x1A, 0x00, 0x0B, 0x00
+ .byte 0x0B, 0x00, 0x00, 0x00
+ .byte 0x00, 0x00, 0x00, 0x00
+ .byte 0x20, 0x00, 0x00, 0x00
.global gUnknown_80E762C
gUnknown_80E762C: @ 80E762C
- .incbin "baserom.gba", 0xE762C, 0x18
+ .byte 0x00, 0x00, 0x00, 0x00
+ .byte 0x03, 0x00, 0x00, 0x00
+ .byte 0x02, 0x00, 0x0F, 0x00
+ .byte 0x13, 0x00, 0x03, 0x00
+ .byte 0x03, 0x00, 0x00, 0x00
+ .byte 0x00, 0x00, 0x00, 0x00
.global gUnknown_80E7644
gUnknown_80E7644: @ 80E7644
@@ -1396,11 +1791,31 @@ gUnknown_80E7730: @ 80E7730
.global gUnknown_80E7784
gUnknown_80E7784: @ 80E7784
- .incbin "baserom.gba", 0xE7784, 0x18
+ .byte 0x00, 0x00, 0x00, 0x00
+ .byte 0x03, 0x00, 0x00, 0x00
+ .byte 0x17, 0x00, 0x0F, 0x00
+ .byte 0x05, 0x00, 0x03, 0x00
+ .byte 0x03, 0x00, 0x00, 0x00
+ .byte 0x00, 0x00, 0x00, 0x00
.global gUnknown_80E779C
gUnknown_80E779C: @ 80E779C
- .incbin "baserom.gba", 0xE779C, 0x20
+ .4byte Yes_80E77B8
+ .4byte 1
+ .4byte No_80E77B4
+ .4byte 2
+ .4byte 0
+ .4byte 3
+
+ .global No_80E77B4
+ No_80E77B4:
+ .asciz "No"
+ .align 2,0
+
+ .global Yes_80E77B8
+ Yes_80E77B8:
+ .asciz "Yes"
+ .align 2,0
.global gUnknown_80E77BC
gUnknown_80E77BC: @ 80E77BC
@@ -1642,562 +2057,21 @@ gUnknown_80E7CC4: @ 80E7CC4
.string "Would you like to enter it again?\0"
.align 2,0
.string "pksdir0\0"
- .byte 0x2C, 0x7D, 0x0E, 0x08
+ .4byte Yes_80E7D2C
.byte 0x01, 0x00, 0x00, 0x00
- .byte 0x24, 0x7D, 0x0E, 0x08
+ .4byte Cancel_80E7D24
.byte 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00
+
+ .global Cancel_80E7D24
+ Cancel_80E7D24:
.string "Cancel\0"
.align 2,0
+ .global Yes_80E7D2C
+ Yes_80E7D2C:
.string "Yes\0"
.align 2,0
.string "pksdir0\0"
.string "pksdir0\0"
- .global gUnknown_80E7D40
-gUnknown_80E7D40: @ 80E7D40
-@ replacing .incbin "baserom.gba", 0x000e7d40, 0x18
- .byte 0x00, 0x00, 0x00, 0x00
- .byte 0x03, 0x00, 0x00, 0x00
- .byte 0x00, 0x00, 0x00, 0x00
- .byte 0x00, 0x00, 0x00, 0x00
- .byte 0x00, 0x00, 0x00, 0x00
- .byte 0x00, 0x00, 0x00, 0x00
-
- .global gUnknown_80E7D58
-gUnknown_80E7D58: @ 80E7D58
-@ replacing .incbin "baserom.gba", 0x000e7d58, 0x18
- .byte 0x00, 0x00, 0x00, 0x00
- .byte 0x03, 0x00, 0x00, 0x00
- .byte 0x02, 0x00, 0x02, 0x00
- .byte 0x09, 0x00, 0x0b, 0x00
- .byte 0x0b, 0x00, 0x00, 0x00
- .byte 0x00, 0x00, 0x00, 0x00
-
- .global gDebugMenuItems
-gDebugMenuItems: @ 80E7D70
-@ replacing .incbin "baserom.gba", 0x000e7d70, 0xc4
- .4byte dungeons_string
- .byte 0x00, 0x00, 0x00, 0x00
- .4byte field_string
- .byte 0x01, 0x00, 0x00, 0x00
- .4byte field_map_string
- .byte 0x02, 0x00, 0x00, 0x00
- .4byte field_script_string
- .byte 0x03, 0x00, 0x00, 0x00
- .4byte debug_menu_string
- .byte 0x04, 0x00, 0x00, 0x00
- .4byte storage_string
- .byte 0x06, 0x00, 0x00, 0x00
- .4byte h_open_string
- .byte 0x09, 0x00, 0x00, 0x00
- .byte 0x00, 0x00, 0x00, 0x00
- .byte 0x0a, 0x00, 0x00, 0x00
-
- .global h_open_string
- h_open_string:
- .string "h-open\0"
- .align 2,0
-
- .global storage_string
- storage_string:
- .string "Storage\0"
- .align 2,0
-
- .global debug_menu_string
- debug_menu_string:
- .string "Debug Menu\0"
- .align 2,0
-
- .global field_script_string
- field_script_string:
- .string "Field Script\0"
- .align 2,0
-
- .global field_map_string
- field_map_string:
- .string "Field Map\0"
- .align 2,0
-
- .global field_string
- field_string:
- .string "Field\0"
- .align 2,0
-
- .global dungeons_string
- dungeons_string:
- .string "Dungeons\0"
- .align 2,0
-
- .string "pksdir0\0"
- .string "pksdir0\0"
- .string "pksdir0\0"
- .string "pksdir0\0"
- .string "pksdir0\0"
- .string "pksdir0\0"
- .string "pksdir0\0"
-
-
- .global gUnknown_80E7E34
-gUnknown_80E7E34: @ 80E7E34
-@ replacing .incbin "baserom.gba", 0x000e7e34, 0x18
- .byte 0x00, 0x00, 0x00, 0x00
- .byte 0x03, 0x00, 0x00, 0x00
- .byte 0x00, 0x00, 0x00, 0x00
- .byte 0x00, 0x00, 0x00, 0x00
- .byte 0x00, 0x00, 0x00, 0x00
- .byte 0x00, 0x00, 0x00, 0x00
-
- .global gUnknown_80E7E4C
-gUnknown_80E7E4C: @ 80E7E4C
-@ replacing .incbin "baserom.gba", 0x000e7e4c, 0x18
- .byte 0x00, 0x00, 0x00, 0x00
- .byte 0x03, 0x00, 0x00, 0x00
- .byte 0x14, 0x00, 0x04, 0x00
- .byte 0x06, 0x00, 0x03, 0x00
- .byte 0x03, 0x00, 0x00, 0x00
- .byte 0x00, 0x00, 0x00, 0x00
-
- .global gUnknown_80E7E64
-gUnknown_80E7E64: @ 80E7E64
-@ replacing .incbin "baserom.gba", 0x000e7e64, 0x18
- .byte 0x00, 0x00, 0x00, 0x00
- .byte 0x03, 0x00, 0x00, 0x00
- .byte 0x14, 0x00, 0x0e, 0x00
- .byte 0x06, 0x00, 0x04, 0x00
- .byte 0x04, 0x00, 0x00, 0x00
- .byte 0x00, 0x00, 0x00, 0x00
-
- .global gDebug_NumberText
-gDebug_NumberText: @ 80E7E7C
- .string "Number?\0"
- .align 2,0
- .string "pksdir0\0"
- .align 2,0
-
- .global gUnknown_80E7E8C
-gUnknown_80E7E8C: @ 80E7E8C
-@ replacing .incbin "baserom.gba", 0x000e7e8c, 0x18
- .byte 0x00, 0x00, 0x00, 0x00
- .byte 0x03, 0x00, 0x00, 0x00
- .byte 0x00, 0x00, 0x00, 0x00
- .byte 0x00, 0x00, 0x00, 0x00
- .byte 0x00, 0x00, 0x00, 0x00
- .byte 0x00, 0x00, 0x00, 0x00
-
- .global gUnknown_80E7EA4
-gUnknown_80E7EA4: @ 80E7EA4
-@ replacing .incbin "baserom.gba", 0x000e7ea4, 0x18
- .byte 0x00, 0x00, 0x00, 0x00
- .byte 0x03, 0x00, 0x00, 0x00
- .byte 0x15, 0x00, 0x04, 0x00
- .byte 0x06, 0x00, 0x03, 0x00
- .byte 0x03, 0x00, 0x00, 0x00
- .byte 0x00, 0x00, 0x00, 0x00
-
-
- .global gDebug_CloseText
-gDebug_CloseText: @ 80E7EBC
- .string "CLOSE\0"
- .align 2,0
-
- .global gDebug_OpenText
-gDebug_OpenText: @ 80E7EC4
- .string "OPEN\0"
- .align 2,0
- .string "pksdir0\0"
- .align 2,0
-
- .global gUnknown_80E7ED4
-gUnknown_80E7ED4: @ 80E7ED4
- .byte 0x00, 0x00, 0x00, 0x00
- .byte 0x03, 0x00, 0x00, 0x00
- .byte 0x00, 0x00, 0x00, 0x00
- .byte 0x00, 0x00, 0x00, 0x00
- .byte 0x00, 0x00, 0x00, 0x00
- .byte 0x00, 0x00, 0x00, 0x00
-
- .global gUnknown_80E7EEC
-gUnknown_80E7EEC: @ 80E7EEC
- .byte 0x00, 0x00, 0x00, 0x00
- .byte 0x03, 0x00, 0x00, 0x00
- .byte 0x13, 0x00, 0x04, 0x00
- .byte 0x09, 0x00, 0x03, 0x00
- .byte 0x03, 0x00, 0x00, 0x00
- .byte 0x00, 0x00, 0x00, 0x00
-
- .global gUnknown_80E7F04
-gUnknown_80E7F04: @ 80E7F04
- .byte 0x00, 0x00, 0x00, 0x00
- .byte 0x03, 0x00, 0x00, 0x00
- .byte 0x13, 0x00, 0x0e, 0x00
- .byte 0x06, 0x00, 0x04, 0x00
- .byte 0x04, 0x00, 0x00, 0x00
- .byte 0x00, 0x00, 0x00, 0x00
-
- .global gDebug_NumberText2
-gDebug_NumberText2: @ 80E7F1C
- .string "Number?\0"
- .align 2,0
-
- .global gDebug_LevelText
-gDebug_LevelText: @ 80E7F24
- .string "LEVEL\0"
- .align 2,0
-
- .global gUnknown_80E7F2C
-gUnknown_80E7F2C: @ 80E7F2C
- .string "Name\0"
- .align 2,0
- .string "pksdir0\0"
- .align 2,0
-
- .global gUnknown_80E7F3C
-gUnknown_80E7F3C: @ 80E7F3C
- .byte 0x00, 0x00, 0x00, 0x00
- .byte 0x03, 0x00, 0x00, 0x00
- .byte 0x00, 0x00, 0x00, 0x00
- .byte 0x00, 0x00, 0x00, 0x00
- .byte 0x00, 0x00, 0x00, 0x00
- .byte 0x00, 0x00, 0x00, 0x00
-
- .global gUnknown_80E7F54
-gUnknown_80E7F54: @ 80E7F54
- .byte 0x00, 0x00, 0x00, 0x00
- .byte 0x06, 0x00, 0x00, 0x00
- .byte 0x02, 0x00, 0x02, 0x00
- .byte 0x18, 0x00, 0x11, 0x00
- .byte 0x11, 0x00, 0x00, 0x00
- .byte 0x00, 0x00, 0x00, 0x00
-
- .global gUnknown_80E7F6C
-gUnknown_80E7F6C: @ 80E7F6C
- .string "Script\0"
- .align 2,0
- .string "pksdir0\0"
- .align 2,0
- .string "pksdir0\0"
- .align 2,0
- .string "pksdir0\0"
- .align 2,0
- .string "pksdir0\0"
- .align 2,0
-
- .global gUnknown_80E7F94
-gUnknown_80E7F94: @ 80E7F94
- .incbin "baserom.gba", 0xE7F94, 0x10C
-
- .global gUnknown_80E80A0
-gUnknown_80E80A0: @ 80E80A0
- .incbin "baserom.gba", 0xE80A0, 0x40
-
- .global gUnknown_80E80E0
-gUnknown_80E80E0: @ 80E80E0
- .incbin "baserom.gba", 0xE80E0, 0x46
-
- .global gUnknown_80E8126
-gUnknown_80E8126: @ 80E8126
- .incbin "baserom.gba", 0xE8126, 0x42
-
- .global gUnknown_80E8168
-gUnknown_80E8168: @ 80E8168
- .incbin "baserom.gba", 0xE8168, 0x18
-
- .global gUnknown_80E8180
-gUnknown_80E8180: @ 80E8180
- .incbin "baserom.gba", 0xE8180, 0x54
-
- .global gUnknown_80E81D4
-gUnknown_80E81D4: @ 80E81D4
- .incbin "baserom.gba", 0xE81D4, 0x608
-
- .global gMankeyMission
-gMankeyMission: @ 80E87DC
- .string "Punish bad #C6Mankey#R!\0"
- .align 2,0
-
- .global gSmeargleMission
-gSmeargleMission: @ 80E87F4
- .string "#C6Smeargle#R~27s desperate plea!\0"
- .align 2,0
-
- .global gMedichamMission
-gMedichamMission: @ 80E8818
- .string "#C6Medicham#R: Help me!\0"
- .align 2,0
-
- .global gUnknown_80E8830
-gUnknown_80E8830: @ 80E8830
- .string "Deliver one #C4%s#R.\0"
- .align 2,0
-
- .global gUnknown_80E8848
-gUnknown_80E8848: @ 80E8848
- .string "One #C4%s#R wanted!\0"
- .align 2,0
-
- .global gUnknown_80E885C
-gUnknown_80E885C: @ 80E885C
- .string "Save my child!\0"
- .align 2,0
-
- .global gUnknown_80E886C
-gUnknown_80E886C: @ 80E886C
- .string "Escort me to my love!\0"
- .align 2,0
-
- .global gUnknown_80E8884
-gUnknown_80E8884: @ 80E8884
- .string "Near %s\0"
- .align 2,0
-
- .global gUnknown_80E888C
-gUnknown_80E888C: @ 80E888C
- .string "Rescue Description\0"
- .align 2,0
-
- .global gUnknown_80E88A0
-gUnknown_80E88A0: @ 80E88A0
- .string "Please punish bad #C6Mankey#R~27s gang.\0"
- .align 2,0
-
- .global gUnknown_80E88C8
-gUnknown_80E88C8: @ 80E88C8
- .string "I didn~27t want to become a grown-up~2c so I\n"
- .string "fled~2c but now I~27ve lost my way! Help!\0"
- .align 2,0
-
- .global gUnknown_80E8920
-gUnknown_80E8920: @ 80E8920
- .string "This is #C6Medicham#R. Rescue me~2c please!\n"
- .string "The reward is a secret"
- .byte 0x81, 0x60
- .string "♪ "
- .align 2,0
-
- .global gUnknown_80E8968
-gUnknown_80E8968: @ 80E8968
- .string "With the item #C4%s#R~2c I can\n"
- .string "evolve! I~27m yearning to evolve! Help!\0"
- .align 2,0
-
- .global gUnknown_80E89B0
-gUnknown_80E89B0: @ 80E89B0
- .string "The #C4%s#R! What I love to eat\n"
- .string "and can~27t live without! Please get one!\0"
- .align 2,0
-
- .global gUnknown_80E89FC
-gUnknown_80E89FC: @ 80E89FC
- .string "This is a rescue through communication.\n"
- .string "Get a friend to help you!\0"
- .align 2,0
-
- .global gUnknown_80E8A40
-gUnknown_80E8A40: @ 80E8A40
- .string "This is a rescue through communication.\n"
- .string "Rescue a friend!\0"
- .align 2,0
-
- .global gUnknown_80E8A7C
-gUnknown_80E8A7C: @ 80E8A7C
- .string "This is a rescue through communication.\n"
- .string "Send your thanks to your friend!\0"
- .align 2,0
-
- .global gUnknown_80E8AC8
-gUnknown_80E8AC8: @ 80E8AC8
- .string "Client:\0"
- .align 2,0
-
- .global gUnknown_80E8AD0
-gUnknown_80E8AD0: @ 80E8AD0
- .string "%s#C4"
- .byte 0x81
- .string "i%s"
- .byte 0x81
- .string "j#R\0"
- .align 2,0
-
- .global gUnknown_80E8AE0
-gUnknown_80E8AE0: @ 80E8AE0
- .string "Objective:\0"
- .align 2,0
-
- .global gUnknown_80E8AEC
-gUnknown_80E8AEC: @ 80E8AEC
- .string "Friend Rescue\0"
- .align 2,0
-
- .global gUnknown_80E8AFC
-gUnknown_80E8AFC: @ 80E8AFC
- .string "Deliver #C4%s#R.\0"
- .align 2,0
-
- .global gUnknown_80E8B10
-gUnknown_80E8B10: @ 80E8B10
- .string "Find #C4%s#R.\0"
- .align 2,0
-
- .global gUnknown_80E8B20
-gUnknown_80E8B20: @ 80E8B20
- .string "Help me.\0"
- .align 2,0
-
- .global gUnknown_80E8B2C
-gUnknown_80E8B2C: @ 80E8B2C
- .string "Escort to #C6%s#R.\0"
- .align 2,0
-
- .global gUnknown_80E8B40
-gUnknown_80E8B40: @ 80E8B40
- .string "Find #C6%s#R.\0"
- .align 2,0
-
- .global gSpecialMissionText
-gSpecialMissionText: @ 80E8B50
- .string "Special mission\0"
- .align 2,0
-
- .global gPlaceText
-gPlaceText: @ 80E8B60
- .string "Place:\0"
- .align 2,0
-
- .global gDifficultyText
-gDifficultyText: @ 80E8B68
- .string "Difficulty:\0"
- .align 2,0
-
- .global gRewardText
-gRewardText: @ 80E8B74
- .string "Reward:\0"
- .align 2,0
-
- .global gUnknown_80E8B7C
-gUnknown_80E8B7C: @ 80E8B7C
- .string "Wonder Mail:\0"
- .align 2,0
- .string "pksdir0\0"
- .align 2,0
-
- .global gUnknown_80E8B94
-gUnknown_80E8B94: @ 80E8B94
- .incbin "baserom.gba", 0xE8B94, 0x38
-
- .global gUnknown_80E8BCC
-gUnknown_80E8BCC: @ 80E8BCC
- .byte 0xC8, 0x8B, 0x0E, 0x08
- .4byte SuspendText
- .4byte TakeJobText
- .4byte DoneText
-
- .global DoneText
- DoneText:
- .string "Done\0"
- .align 2,0
-
- .global TakeJobText
- TakeJobText:
- .string "Take Job\0"
- .align 2,0
-
- .global SuspendText
- SuspendText:
- .string "Suspend\0"
- .align 2,0
-
- .global gUnknown_80E8BF8
-gUnknown_80E8BF8: @ 80E8BF8
- .incbin "baserom.gba", 0xE8BF8, 0x50
-
- .global gMissionRewardText
-gMissionRewardText: @ 80E8C48
- .incbin "baserom.gba", 0xE8C48, 0x50
-
- .global gUnknown_80E8C98
-gUnknown_80E8C98: @ 80E8C98
- .incbin "baserom.gba", 0xE8C98, 0x14C
-
- .global gUnknown_80E8DE4
-gUnknown_80E8DE4: @ 80E8DE4
- .incbin "baserom.gba", 0xE8DE4, 0x1CC
-
- .global gUnknown_80E8FB0
-gUnknown_80E8FB0: @ 80E8FB0
- .incbin "baserom.gba", 0xE8FB0, 0x15C
-
- .global gUnknown_80E910C
-gUnknown_80E910C: @ 80E910C
- .incbin "baserom.gba", 0xE910C, 0xC8
-
- .global gUnknown_80E91D4
-gUnknown_80E91D4: @ 80E91D4
- .incbin "baserom.gba", 0xE91D4, 0x64C
-
- .global gUnknown_80E9820
-gUnknown_80E9820: @ 80E9820
- .incbin "baserom.gba", 0xE9820, 0x100
-
- .global gUnknown_80E9920
-gUnknown_80E9920: @ 80E9920
- .incbin "baserom.gba", 0xE9920, 0x66C
-
- .global gUnknown_80E9F8C
-gUnknown_80E9F8C: @ 80E9F8C
- .incbin "baserom.gba", 0xE9F8C, 0xED0
-
-@ Escort Mission Text
- .global gUnknown_80EAE5C
-gUnknown_80EAE5C: @ 80EAE5C
- .4byte TakeMe_Text
- .4byte WantToSee_Text
- .4byte TakeMeWith_Text
- .4byte EscortMe_Text
-
-
- .global EscortMe_Text
- EscortMe_Text:
- .asciz "Escort me!"
- .align 2,0
-
- .global TakeMeWith_Text
- TakeMeWith_Text:
- .asciz "Please take me with you!"
- .align 2,0
-
- .global WantToSee_Text
- WantToSee_Text:
- .asciz "I want to see #C6%s#R."
- .align 2,0
-
- .global TakeMe_Text
- TakeMe_Text:
- .asciz "Take me!"
- .align 2,0
-
- .global gUnknown_80EAEB8
-gUnknown_80EAEB8: @ 80EAEB8
- .incbin "baserom.gba", 0xEAEB8, 0x2E0
-
- .global gUnknown_80EB198
-gUnknown_80EB198: @ 80EB198
- .incbin "baserom.gba", 0xEB198, 0x88
-
- .global gUnknown_80EB220
-gUnknown_80EB220: @ 80EB220
- .incbin "baserom.gba", 0xEB220, 0xD0
-
- .global gUnknown_80EB2F0
-gUnknown_80EB2F0: @ 80EB2F0
- .incbin "baserom.gba", 0xEB2F0, 0x108
-
-@ Item Delivery Mission Text
- .global gUnknown_80EB3F8
-gUnknown_80EB3F8: @ 80EB3F8
- .incbin "baserom.gba", 0xEB3F8, 0x334
-
- .global gUnknown_80EB72C
-gUnknown_80EB72C: @ 80EB72C
- .incbin "baserom.gba", 0xEB72C, 0x2EC
diff --git a/data/data_80E7D40.s b/data/data_80E7D40.s
new file mode 100644
index 0000000..0d93398
--- /dev/null
+++ b/data/data_80E7D40.s
@@ -0,0 +1,653 @@
+ .section .rodata
+
+ .global gUnknown_80E7E34
+gUnknown_80E7E34: @ 80E7E34
+@ replacing .incbin "baserom.gba", 0x000e7e34, 0x18
+ .byte 0x00, 0x00, 0x00, 0x00
+ .byte 0x03, 0x00, 0x00, 0x00
+ .byte 0x00, 0x00, 0x00, 0x00
+ .byte 0x00, 0x00, 0x00, 0x00
+ .byte 0x00, 0x00, 0x00, 0x00
+ .byte 0x00, 0x00, 0x00, 0x00
+
+ .global gUnknown_80E7E4C
+gUnknown_80E7E4C: @ 80E7E4C
+@ replacing .incbin "baserom.gba", 0x000e7e4c, 0x18
+ .byte 0x00, 0x00, 0x00, 0x00
+ .byte 0x03, 0x00, 0x00, 0x00
+ .byte 0x14, 0x00, 0x04, 0x00
+ .byte 0x06, 0x00, 0x03, 0x00
+ .byte 0x03, 0x00, 0x00, 0x00
+ .byte 0x00, 0x00, 0x00, 0x00
+
+ .global gUnknown_80E7E64
+gUnknown_80E7E64: @ 80E7E64
+@ replacing .incbin "baserom.gba", 0x000e7e64, 0x18
+ .byte 0x00, 0x00, 0x00, 0x00
+ .byte 0x03, 0x00, 0x00, 0x00
+ .byte 0x14, 0x00, 0x0e, 0x00
+ .byte 0x06, 0x00, 0x04, 0x00
+ .byte 0x04, 0x00, 0x00, 0x00
+ .byte 0x00, 0x00, 0x00, 0x00
+
+ .global gDebug_NumberText
+gDebug_NumberText: @ 80E7E7C
+ .string "Number?\0"
+ .align 2,0
+ .string "pksdir0\0"
+ .align 2,0
+
+ .global gUnknown_80E7E8C
+gUnknown_80E7E8C: @ 80E7E8C
+@ replacing .incbin "baserom.gba", 0x000e7e8c, 0x18
+ .byte 0x00, 0x00, 0x00, 0x00
+ .byte 0x03, 0x00, 0x00, 0x00
+ .byte 0x00, 0x00, 0x00, 0x00
+ .byte 0x00, 0x00, 0x00, 0x00
+ .byte 0x00, 0x00, 0x00, 0x00
+ .byte 0x00, 0x00, 0x00, 0x00
+
+ .global gUnknown_80E7EA4
+gUnknown_80E7EA4: @ 80E7EA4
+@ replacing .incbin "baserom.gba", 0x000e7ea4, 0x18
+ .byte 0x00, 0x00, 0x00, 0x00
+ .byte 0x03, 0x00, 0x00, 0x00
+ .byte 0x15, 0x00, 0x04, 0x00
+ .byte 0x06, 0x00, 0x03, 0x00
+ .byte 0x03, 0x00, 0x00, 0x00
+ .byte 0x00, 0x00, 0x00, 0x00
+
+
+ .global gDebug_CloseText
+gDebug_CloseText: @ 80E7EBC
+ .string "CLOSE\0"
+ .align 2,0
+
+ .global gDebug_OpenText
+gDebug_OpenText: @ 80E7EC4
+ .string "OPEN\0"
+ .align 2,0
+ .string "pksdir0\0"
+ .align 2,0
+
+ .global gUnknown_80E7ED4
+gUnknown_80E7ED4: @ 80E7ED4
+ .byte 0x00, 0x00, 0x00, 0x00
+ .byte 0x03, 0x00, 0x00, 0x00
+ .byte 0x00, 0x00, 0x00, 0x00
+ .byte 0x00, 0x00, 0x00, 0x00
+ .byte 0x00, 0x00, 0x00, 0x00
+ .byte 0x00, 0x00, 0x00, 0x00
+
+ .global gUnknown_80E7EEC
+gUnknown_80E7EEC: @ 80E7EEC
+ .byte 0x00, 0x00, 0x00, 0x00
+ .byte 0x03, 0x00, 0x00, 0x00
+ .byte 0x13, 0x00, 0x04, 0x00
+ .byte 0x09, 0x00, 0x03, 0x00
+ .byte 0x03, 0x00, 0x00, 0x00
+ .byte 0x00, 0x00, 0x00, 0x00
+
+ .global gUnknown_80E7F04
+gUnknown_80E7F04: @ 80E7F04
+ .byte 0x00, 0x00, 0x00, 0x00
+ .byte 0x03, 0x00, 0x00, 0x00
+ .byte 0x13, 0x00, 0x0e, 0x00
+ .byte 0x06, 0x00, 0x04, 0x00
+ .byte 0x04, 0x00, 0x00, 0x00
+ .byte 0x00, 0x00, 0x00, 0x00
+
+ .global gDebug_NumberText2
+gDebug_NumberText2: @ 80E7F1C
+ .string "Number?\0"
+ .align 2,0
+
+ .global gDebug_LevelText
+gDebug_LevelText: @ 80E7F24
+ .string "LEVEL\0"
+ .align 2,0
+
+ .global gUnknown_80E7F2C
+gUnknown_80E7F2C: @ 80E7F2C
+ .string "Name\0"
+ .align 2,0
+ .string "pksdir0\0"
+ .align 2,0
+
+ .global gUnknown_80E7F3C
+gUnknown_80E7F3C: @ 80E7F3C
+ .byte 0x00, 0x00, 0x00, 0x00
+ .byte 0x03, 0x00, 0x00, 0x00
+ .byte 0x00, 0x00, 0x00, 0x00
+ .byte 0x00, 0x00, 0x00, 0x00
+ .byte 0x00, 0x00, 0x00, 0x00
+ .byte 0x00, 0x00, 0x00, 0x00
+
+ .global gUnknown_80E7F54
+gUnknown_80E7F54: @ 80E7F54
+ .byte 0x00, 0x00, 0x00, 0x00
+ .byte 0x06, 0x00, 0x00, 0x00
+ .byte 0x02, 0x00, 0x02, 0x00
+ .byte 0x18, 0x00, 0x11, 0x00
+ .byte 0x11, 0x00, 0x00, 0x00
+ .byte 0x00, 0x00, 0x00, 0x00
+
+ .global gUnknown_80E7F6C
+gUnknown_80E7F6C: @ 80E7F6C
+ .string "Script\0"
+ .align 2,0
+ .string "pksdir0\0"
+ .align 2,0
+ .string "pksdir0\0"
+ .align 2,0
+ .string "pksdir0\0"
+ .align 2,0
+ .string "pksdir0\0"
+ .align 2,0
+
+ .global gUnknown_80E7F94
+gUnknown_80E7F94: @ 80E7F94
+ .incbin "baserom.gba", 0xE7F94, 0x10C
+
+ .global gUnknown_80E80A0
+gUnknown_80E80A0: @ 80E80A0
+ .incbin "baserom.gba", 0xE80A0, 0x40
+
+ .global gUnknown_80E80E0
+gUnknown_80E80E0: @ 80E80E0
+ .incbin "baserom.gba", 0xE80E0, 0x46
+
+ .global gUnknown_80E8126
+gUnknown_80E8126: @ 80E8126
+ .incbin "baserom.gba", 0xE8126, 0x42
+
+ .global gUnknown_80E8168
+gUnknown_80E8168: @ 80E8168
+ .incbin "baserom.gba", 0xE8168, 0x18
+
+ .global gUnknown_80E8180
+gUnknown_80E8180: @ 80E8180
+ .incbin "baserom.gba", 0xE8180, 0x54
+
+ .global gUnknown_80E81D4
+gUnknown_80E81D4: @ 80E81D4
+ .incbin "baserom.gba", 0xE81D4, 0x608
+
+ .global gMankeyMission
+gMankeyMission: @ 80E87DC
+ .string "Punish bad #C6Mankey#R!\0"
+ .align 2,0
+
+ .global gSmeargleMission
+gSmeargleMission: @ 80E87F4
+ .string "#C6Smeargle#R~27s desperate plea!\0"
+ .align 2,0
+
+ .global gMedichamMission
+gMedichamMission: @ 80E8818
+ .string "#C6Medicham#R: Help me!\0"
+ .align 2,0
+
+ .global gUnknown_80E8830
+gUnknown_80E8830: @ 80E8830
+ .string "Deliver one #C4%s#R.\0"
+ .align 2,0
+
+ .global gUnknown_80E8848
+gUnknown_80E8848: @ 80E8848
+ .string "One #C4%s#R wanted!\0"
+ .align 2,0
+
+ .global gUnknown_80E885C
+gUnknown_80E885C: @ 80E885C
+ .string "Save my child!\0"
+ .align 2,0
+
+ .global gUnknown_80E886C
+gUnknown_80E886C: @ 80E886C
+ .string "Escort me to my love!\0"
+ .align 2,0
+
+ .global gUnknown_80E8884
+gUnknown_80E8884: @ 80E8884
+ .string "Near %s\0"
+ .align 2,0
+
+ .global gUnknown_80E888C
+gUnknown_80E888C: @ 80E888C
+ .string "Rescue Description\0"
+ .align 2,0
+
+ .global gMankeyMissionDescription
+gMankeyMissionDescription: @ 80E88A0
+ .string "Please punish bad #C6Mankey#R~27s gang.\0"
+ .align 2,0
+
+ .global gSmeargleMissionDescription
+gSmeargleMissionDescription: @ 80E88C8
+ .string "I didn~27t want to become a grown-up~2c so I\n"
+ .string "fled~2c but now I~27ve lost my way! Help!\0"
+ .align 2,0
+
+ .global gMedichamMissionDescription
+gMedichamMissionDescription: @ 80E8920
+ .string "This is #C6Medicham#R. Rescue me~2c please!\n"
+ .string "The reward is a secret"
+ .byte 0x81, 0x60
+ .string "♪ "
+ .align 2,0
+
+ .global gUnknown_80E8968
+gUnknown_80E8968: @ 80E8968
+ .string "With the item #C4%s#R~2c I can\n"
+ .string "evolve! I~27m yearning to evolve! Help!\0"
+ .align 2,0
+
+ .global gUnknown_80E89B0
+gUnknown_80E89B0: @ 80E89B0
+ .string "The #C4%s#R! What I love to eat\n"
+ .string "and can~27t live without! Please get one!\0"
+ .align 2,0
+
+ .global gUnknown_80E89FC
+gUnknown_80E89FC: @ 80E89FC
+ .string "This is a rescue through communication.\n"
+ .string "Get a friend to help you!\0"
+ .align 2,0
+
+ .global gUnknown_80E8A40
+gUnknown_80E8A40: @ 80E8A40
+ .string "This is a rescue through communication.\n"
+ .string "Rescue a friend!\0"
+ .align 2,0
+
+ .global gUnknown_80E8A7C
+gUnknown_80E8A7C: @ 80E8A7C
+ .string "This is a rescue through communication.\n"
+ .string "Send your thanks to your friend!\0"
+ .align 2,0
+
+ .global gUnknown_80E8AC8
+gUnknown_80E8AC8: @ 80E8AC8
+ .string "Client:\0"
+ .align 2,0
+
+ .global gUnknown_80E8AD0
+gUnknown_80E8AD0: @ 80E8AD0
+ .string "%s#C4"
+ .byte 0x81
+ .string "i%s"
+ .byte 0x81
+ .string "j#R\0"
+ .align 2,0
+
+ .global gUnknown_80E8AE0
+gUnknown_80E8AE0: @ 80E8AE0
+ .string "Objective:\0"
+ .align 2,0
+
+ .global gUnknown_80E8AEC
+gUnknown_80E8AEC: @ 80E8AEC
+ .string "Friend Rescue\0"
+ .align 2,0
+
+ .global gUnknown_80E8AFC
+gUnknown_80E8AFC: @ 80E8AFC
+ .string "Deliver #C4%s#R.\0"
+ .align 2,0
+
+ .global gUnknown_80E8B10
+gUnknown_80E8B10: @ 80E8B10
+ .string "Find #C4%s#R.\0"
+ .align 2,0
+
+ .global gUnknown_80E8B20
+gUnknown_80E8B20: @ 80E8B20
+ .string "Help me.\0"
+ .align 2,0
+
+ .global gUnknown_80E8B2C
+gUnknown_80E8B2C: @ 80E8B2C
+ .string "Escort to #C6%s#R.\0"
+ .align 2,0
+
+ .global gUnknown_80E8B40
+gUnknown_80E8B40: @ 80E8B40
+ .string "Find #C6%s#R.\0"
+ .align 2,0
+
+ .global gSpecialMissionText
+gSpecialMissionText: @ 80E8B50
+ .string "Special mission\0"
+ .align 2,0
+
+ .global gPlaceText
+gPlaceText: @ 80E8B60
+ .string "Place:\0"
+ .align 2,0
+
+ .global gDifficultyText
+gDifficultyText: @ 80E8B68
+ .string "Difficulty:\0"
+ .align 2,0
+
+ .global gRewardText
+gRewardText: @ 80E8B74
+ .string "Reward:\0"
+ .align 2,0
+
+ .global gUnknown_80E8B7C
+gUnknown_80E8B7C: @ 80E8B7C
+ .string "Wonder Mail:\0"
+ .align 2,0
+ .string "pksdir0\0"
+ .align 2,0
+
+ .global gUnknown_80E8B94
+gUnknown_80E8B94: @ 80E8B94
+@ replacing .incbin "baserom.gba", 0x000e8b94, 0x38
+ .4byte UnkData_80E8BC8
+ .4byte UnkData_80E8BC4
+ .4byte UnkData_80E8BC0
+ .4byte UnkData_80E8BBC
+ .4byte UnkData_80E8BB8
+ .4byte UnkData_80E8BB4
+ .4byte UnkData_80E8BB0
+
+ .global UnkData_80E8BB0
+ UnkData_80E8BB0:
+ .byte 0x83, 0xc3, 0x00, 0x00
+
+ .global UnkData_80E8BB4
+ UnkData_80E8BB4:
+ .byte 0x83, 0xc2, 0x00, 0x00
+
+ .global UnkData_80E8BB8
+ UnkData_80E8BB8:
+ .byte 0x83, 0xc1, 0x00, 0x00
+
+ .global UnkData_80E8BBC
+ UnkData_80E8BBC:
+ .byte 0x83, 0xc0, 0x00, 0x00
+
+ .global UnkData_80E8BC0
+ UnkData_80E8BC0:
+ .byte 0x87, 0x40, 0x00, 0x00
+
+ .global UnkData_80E8BC4
+ UnkData_80E8BC4:
+ .byte 0x84, 0x87, 0x00, 0x00
+
+ .global UnkData_80E8BC8
+ UnkData_80E8BC8:
+ .byte 0x81, 0x40, 0x00, 0x00
+
+
+ .global gUnknown_80E8BCC
+gUnknown_80E8BCC: @ 80E8BCC
+ .4byte UnkData_80E8BC8
+ .4byte SuspendText
+ .4byte TakeJobText
+ .4byte DoneText
+
+ .global DoneText
+ DoneText:
+ .string "Done\0"
+ .align 2,0
+
+ .global TakeJobText
+ TakeJobText:
+ .string "Take Job\0"
+ .align 2,0
+
+ .global SuspendText
+ SuspendText:
+ .string "Suspend\0"
+ .align 2,0
+
+ .global gUnknown_80E8BF8
+gUnknown_80E8BF8: @ 80E8BF8
+ .incbin "baserom.gba", 0xE8BF8, 0x50
+
+ .global gMissionRewardText
+gMissionRewardText: @ 80E8C48
+ .incbin "baserom.gba", 0xE8C48, 0x50
+
+ .global gUnknown_80E8C98
+gUnknown_80E8C98: @ 80E8C98
+ .incbin "baserom.gba", 0xE8C98, 0x14C
+
+ .global gUnknown_80E8DE4
+gUnknown_80E8DE4: @ 80E8DE4
+ .incbin "baserom.gba", 0xE8DE4, 0x1CC
+
+ .global gUnknown_80E8FB0
+gUnknown_80E8FB0: @ 80E8FB0
+ .incbin "baserom.gba", 0xE8FB0, 0x15C
+
+ .global gUnknown_80E910C
+gUnknown_80E910C: @ 80E910C
+ .incbin "baserom.gba", 0xE910C, 0xC8
+
+ .global gUnknown_80E91D4
+gUnknown_80E91D4: @ 80E91D4
+ .incbin "baserom.gba", 0xE91D4, 0x64C
+
+ .global gUnknown_80E9820
+gUnknown_80E9820: @ 80E9820
+ .incbin "baserom.gba", 0xE9820, 0x100
+
+ .global gUnknown_80E9920
+gUnknown_80E9920: @ 80E9920
+ .incbin "baserom.gba", 0xE9920, 0x66C
+
+ .global gUnknown_80E9F8C
+gUnknown_80E9F8C: @ 80E9F8C
+ .incbin "baserom.gba", 0xE9F8C, 0xED0
+
+@ Escort Mission Text
+ .global gUnknown_80EAE5C
+gUnknown_80EAE5C: @ 80EAE5C
+ .4byte TakeMe_Text
+ .4byte WantToSee_Text
+ .4byte TakeMeWith_Text
+ .4byte EscortMe_Text
+
+
+ .global EscortMe_Text
+ EscortMe_Text:
+ .asciz "Escort me!"
+ .align 2,0
+
+ .global TakeMeWith_Text
+ TakeMeWith_Text:
+ .asciz "Please take me with you!"
+ .align 2,0
+
+ .global WantToSee_Text
+ WantToSee_Text:
+ .asciz "I want to see #C6%s#R."
+ .align 2,0
+
+ .global TakeMe_Text
+ TakeMe_Text:
+ .asciz "Take me!"
+ .align 2,0
+
+ .global gUnknown_80EAEB8
+gUnknown_80EAEB8: @ 80EAEB8
+@ replacing .incbin "baserom.gba", 0x000eaeb8, 0x2e0
+ .byte 0x7c, 0xb1, 0x0e, 0x08
+ .byte 0x58, 0xb1, 0x0e, 0x08
+ .byte 0x38, 0xb1, 0x0e, 0x08
+ .byte 0x18, 0xb1, 0x0e, 0x08
+ .byte 0xfc, 0xb0, 0x0e, 0x08
+ .byte 0xdc, 0xb0, 0x0e, 0x08
+ .byte 0xb4, 0xb0, 0x0e, 0x08
+ .byte 0x90, 0xb0, 0x0e, 0x08
+ .byte 0x6c, 0xb0, 0x0e, 0x08
+ .byte 0x48, 0xb0, 0x0e, 0x08
+ .byte 0x30, 0xb0, 0x0e, 0x08
+ .byte 0x14, 0xb0, 0x0e, 0x08
+ .byte 0xf0, 0xaf, 0x0e, 0x08
+ .byte 0xd4, 0xaf, 0x0e, 0x08
+ .byte 0xa4, 0xaf, 0x0e, 0x08
+ .byte 0x94, 0xaf, 0x0e, 0x08
+ .byte 0x70, 0xaf, 0x0e, 0x08
+ .byte 0x4c, 0xaf, 0x0e, 0x08
+ .byte 0x2c, 0xaf, 0x0e, 0x08
+ .byte 0x08, 0xaf, 0x0e, 0x08
+
+ .asciz "I~27m close friends with #C6%s#R!"
+ .align 2,0
+
+ .asciz "I want to apologize to #C6%s#R."
+ .align 2,0
+
+ .asciz "I don~27t care how--we must meet!"
+ .align 2,0
+
+ .asciz "We have to meet--whatever it takes!"
+ .align 2,0
+
+ .asciz "I have to go!"
+ .align 2,0
+
+ .asciz "We haven~27t seen each other in a long time."
+ .align 2,0
+
+ .asciz "I~27m sick with worry..."
+ .align 2,0
+
+ .asciz "#C6%s#R may have fainted inside..."
+ .align 2,0
+
+ .asciz "#C6%s#R hasn~27t returned!"
+ .align 2,0
+
+ .asciz "I want to help #C6%s#R!"
+ .align 2,0
+
+ .asciz "Hurry~2c #C6%s#R is in trouble..."
+ .align 2,0
+
+ .asciz "#C6%s#R has been waiting forever..."
+ .align 2,0
+
+ .asciz "#C6%s#R is waiting in the dungeon."
+ .align 2,0
+
+ .asciz "I~27m too weak. It~27s not possible."
+ .align 2,0
+
+ .asciz "I can~27t go on my own power..."
+ .align 2,0
+
+ .asciz "I can~27t go by myself..."
+ .align 2,0
+
+ .asciz "I~27m worried about #C6%s#R..."
+ .align 2,0
+
+ .asciz "I want to meet with #C6%s#R."
+ .align 2,0
+
+ .asciz "We promised to meet in the dungeon!"
+ .align 2,0
+
+ .asciz "#C6%s#R is waiting for me!"
+ .align 2,0
+
+
+ .global gUnknown_80EB198
+gUnknown_80EB198: @ 80EB198
+ .4byte PleaseTakeMeToSee
+ .4byte PleaseTakeMeThere
+ .4byte PleaseEscortMe
+ .4byte SomeonePleaseEscort
+
+ .global SomeonePleaseEscort
+ SomeonePleaseEscort:
+ .asciz "Someone~2c please escort me!"
+ .align 2,0
+
+ .global PleaseEscortMe
+ PleaseEscortMe:
+ .asciz "Please escort me there!"
+ .align 2,0
+
+ .global PleaseTakeMeThere
+ PleaseTakeMeThere:
+ .asciz "Please take me there with you!"
+ .align 2,0
+
+ .global PleaseTakeMeToSee
+ PleaseTakeMeToSee:
+ .asciz "Please take me to see #C6%s#R!"
+ .align 2,0
+
+ .global gUnknown_80EB220
+gUnknown_80EB220: @ 80EB220
+@ replacing .incbin "baserom.gba", 0x000eb220, 0xd0
+ .byte 0xcc, 0xb2, 0x0e, 0x08
+ .byte 0xac, 0xb2, 0x0e, 0x08
+ .byte 0x94, 0xb2, 0x0e, 0x08
+ .byte 0x74, 0xb2, 0x0e, 0x08
+ .byte 0x50, 0xb2, 0x0e, 0x08
+ .byte 0x38, 0xb2, 0x0e, 0x08
+
+ .asciz "Without #C6%s#R~2c I..."
+ .align 2,0
+
+ .asciz "I~27m so worried about #C6%s#R..."
+ .align 2,0
+
+ .asciz "I really want to meet #C6%s#R!"
+ .align 2,0
+
+ .asciz "Help me meet #C6%s#R!"
+ .align 2,0
+
+ .asciz "Please escort me to my #C6%s#R!"
+ .align 2,0
+
+ .asciz "Please! Take me to meet #C6%s#R!"
+ .align 2,0
+
+ .global gUnknown_80EB2F0
+gUnknown_80EB2F0: @ 80EB2F0
+@ replacing .incbin "baserom.gba", 0x000eb2f0, 0x108
+ .byte 0xcc, 0xb3, 0x0e, 0x08
+ .byte 0xa4, 0xb3, 0x0e, 0x08
+ .byte 0x7c, 0xb3, 0x0e, 0x08
+ .byte 0x5c, 0xb3, 0x0e, 0x08
+ .byte 0x34, 0xb3, 0x0e, 0x08
+ .byte 0x08, 0xb3, 0x0e, 0x08
+
+ .asciz "I~27m very lonely! Please take me with you!"
+ .align 2,0
+
+ .asciz "It~27s no good if we~27re not together!"
+ .align 2,0
+
+ .asciz "This means everything to me!"
+ .align 2,0
+
+ .asciz "We~27ve promised our futures together."
+ .align 2,0
+
+ .asciz "We belong together! Please escort me!"
+ .align 2,0
+
+ .asciz "We~27re in love! Please~2c take me there!"
+ .align 2,0
+
+@ Item Delivery Mission Text
+ .global gUnknown_80EB3F8
+gUnknown_80EB3F8: @ 80EB3F8
+ .incbin "baserom.gba", 0xEB3F8, 0x334
+
+ .global gUnknown_80EB72C
+gUnknown_80EB72C: @ 80EB72C
+ .incbin "baserom.gba", 0xEB72C, 0x2EC
+
diff --git a/data/data_80F4278.s b/data/data_80F4278.s
index 5265b3c..f1d78e9 100644
--- a/data/data_80F4278.s
+++ b/data/data_80F4278.s
@@ -7799,8 +7799,8 @@ gUnknown_8107608: @ 8107608
.string "%s#r"
.align 2,0
- .global gUnknown_8107610
-gUnknown_8107610: @ 8107610
+ .global gUnownLetters
+gUnownLetters: @ 8107610
.string "ABCDEFGHIJKLMNOPQRSTUVWXYZ!?\0"
.align 2,0
@@ -7816,7 +7816,7 @@ gUnknown_8107638: @ 8107638
.global gUnknown_810763C
gUnknown_810763C: @ 810763C
- .incbin "baserom.gba", 0x10763C, 0x9
+ .string "#c%c%s#r\0"
.global gUnknown_8107645
gUnknown_8107645: @ 8107645
diff --git a/data/data_810AE24.s b/data/data_810AE24.s
index c7000db..03ab158 100644
--- a/data/data_810AE24.s
+++ b/data/data_810AE24.s
@@ -831,7 +831,7 @@ gUnknown_81161E8: @ 81161E8
@ replacing .incbin "baserom.gba", 0x001161e8, 0x10
.byte 0x01, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00
- .4byte sub_801641C
+ .4byte CleanFelicityBank
.4byte sub_80163A0
.global gUnknown_81161F8
@@ -887,7 +887,7 @@ gUnknown_8116258: @ 8116258
@ replacing .incbin "baserom.gba", 0x00116258, 0x10
.byte 0x01, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00
- .4byte sub_80315C0
+ .4byte CleanHelperPelipper
.4byte sub_8031540
.global gUnknown_8116268
diff --git a/data/dungeon/Autopilot/floor_id.inc b/data/dungeon/Autopilot/floor_id.inc
index 266c053..cf29555 100644
--- a/data/dungeon/Autopilot/floor_id.inc
+++ b/data/dungeon/Autopilot/floor_id.inc
@@ -1,9 +1,14 @@
.global AutopilotFloorID
AutopilotFloorID:
-.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x69, 0x04, 0x0e, 0x02, 0x0a, 0x00, 0x7e, 0x00, 0x01, 0x00, 0x02, 0x00
-.byte 0x42, 0x00, 0x00, 0x00, 0x6a, 0x04, 0x0e, 0x02, 0x0a, 0x00, 0x7e, 0x00, 0x01, 0x00, 0x02, 0x00, 0x42, 0x00, 0x00, 0x00, 0x6b, 0x04, 0x0f, 0x02, 0x0a, 0x00, 0x7e, 0x00, 0x01, 0x00, 0x02, 0x00
-.byte 0x42, 0x00, 0x00, 0x00, 0x6c, 0x04, 0x10, 0x02, 0x0a, 0x00, 0x7f, 0x00, 0x01, 0x00, 0x02, 0x00, 0x42, 0x00, 0x00, 0x00, 0x6d, 0x04, 0x11, 0x02, 0x0a, 0x00, 0x7f, 0x00, 0x01, 0x00, 0x02, 0x00
-.byte 0x42, 0x00, 0x00, 0x00, 0x6e, 0x04, 0x11, 0x02, 0x0a, 0x00, 0x7f, 0x00, 0x01, 0x00, 0x02, 0x00, 0x42, 0x00, 0x00, 0x00, 0x6f, 0x04, 0x12, 0x02, 0x0a, 0x00, 0x7f, 0x00, 0x01, 0x00, 0x02, 0x00
-.byte 0x42, 0x00, 0x00, 0x00, 0x70, 0x04, 0x12, 0x02, 0x0a, 0x00, 0x7f, 0x00, 0x01, 0x00, 0x02, 0x00, 0x42, 0x00, 0x00, 0x00, 0x71, 0x04, 0x12, 0x02, 0x0a, 0x00, 0x7f, 0x00, 0x01, 0x00, 0x02, 0x00
-.byte 0x42, 0x00, 0x00, 0x00, 0x72, 0x04, 0x13, 0x02, 0x0a, 0x00, 0x7f, 0x00, 0x01, 0x00, 0x02, 0x00, 0x42, 0x00, 0x00, 0x00
+.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+.byte 0x69, 0x04, 0x0e, 0x02, 0x0a, 0x00, 0x7e, 0x00, 0x01, 0x00, 0x02, 0x00, 0x42, 0x00, 0x00, 0x00
+.byte 0x6a, 0x04, 0x0e, 0x02, 0x0a, 0x00, 0x7e, 0x00, 0x01, 0x00, 0x02, 0x00, 0x42, 0x00, 0x00, 0x00
+.byte 0x6b, 0x04, 0x0f, 0x02, 0x0a, 0x00, 0x7e, 0x00, 0x01, 0x00, 0x02, 0x00, 0x42, 0x00, 0x00, 0x00
+.byte 0x6c, 0x04, 0x10, 0x02, 0x0a, 0x00, 0x7f, 0x00, 0x01, 0x00, 0x02, 0x00, 0x42, 0x00, 0x00, 0x00
+.byte 0x6d, 0x04, 0x11, 0x02, 0x0a, 0x00, 0x7f, 0x00, 0x01, 0x00, 0x02, 0x00, 0x42, 0x00, 0x00, 0x00
+.byte 0x6e, 0x04, 0x11, 0x02, 0x0a, 0x00, 0x7f, 0x00, 0x01, 0x00, 0x02, 0x00, 0x42, 0x00, 0x00, 0x00
+.byte 0x6f, 0x04, 0x12, 0x02, 0x0a, 0x00, 0x7f, 0x00, 0x01, 0x00, 0x02, 0x00, 0x42, 0x00, 0x00, 0x00
+.byte 0x70, 0x04, 0x12, 0x02, 0x0a, 0x00, 0x7f, 0x00, 0x01, 0x00, 0x02, 0x00, 0x42, 0x00, 0x00, 0x00
+.byte 0x71, 0x04, 0x12, 0x02, 0x0a, 0x00, 0x7f, 0x00, 0x01, 0x00, 0x02, 0x00, 0x42, 0x00, 0x00, 0x00
+.byte 0x72, 0x04, 0x13, 0x02, 0x0a, 0x00, 0x7f, 0x00, 0x01, 0x00, 0x02, 0x00, 0x42, 0x00, 0x00, 0x00
diff --git a/data/dungeon/Boss9/floor_id.inc b/data/dungeon/Boss9/floor_id.inc
index d890c06..c67eace 100644
--- a/data/dungeon/Boss9/floor_id.inc
+++ b/data/dungeon/Boss9/floor_id.inc
@@ -1,12 +1,16 @@
.global Boss9FloorID
Boss9FloorID:
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
-.byte 0xd8, 0x02, 0x53, 0x01, 0x3f, 0x00, 0x57, 0x00, 0x01, 0x00, 0x02, 0x00
-.byte 0x42, 0x00, 0x00, 0x00, 0xd9, 0x02, 0x53, 0x01, 0x3f, 0x00, 0x57, 0x00, 0x01, 0x00, 0x02, 0x00, 0x42, 0x00, 0x00, 0x00, 0xda, 0x02, 0x53, 0x01, 0x3f, 0x00, 0x57, 0x00, 0x01, 0x00, 0x02, 0x00
-.byte 0x42, 0x00, 0x00, 0x00, 0xdb, 0x02, 0x53, 0x01, 0x3f, 0x00, 0x58, 0x00, 0x01, 0x00, 0x02, 0x00, 0x42, 0x00, 0x00, 0x00, 0xdc, 0x02, 0x53, 0x01, 0x3f, 0x00, 0x58, 0x00, 0x01, 0x00, 0x02, 0x00
-.byte 0x42, 0x00, 0x00, 0x00, 0xdd, 0x02, 0x53, 0x01, 0x3f, 0x00, 0x58, 0x00, 0x01, 0x00, 0x02, 0x00, 0x42, 0x00, 0x00, 0x00, 0xde, 0x02, 0x53, 0x01, 0x3f, 0x00, 0x58, 0x00, 0x01, 0x00, 0x02, 0x00
-.byte 0x42, 0x00, 0x00, 0x00, 0xdf, 0x02, 0x53, 0x01, 0x3f, 0x00, 0x58, 0x00, 0x01, 0x00, 0x02, 0x00, 0x42, 0x00, 0x00, 0x00, 0xe0, 0x02, 0x53, 0x01, 0x3f, 0x00, 0x58, 0x00, 0x01, 0x00, 0x02, 0x00
-.byte 0x42, 0x00, 0x00, 0x00, 0xe1, 0x02, 0x53, 0x01, 0x3f, 0x00, 0x58, 0x00, 0x01, 0x00, 0x02, 0x00, 0x42, 0x00, 0x00, 0x00, 0xe2, 0x02, 0x53, 0x01, 0x3f, 0x00, 0x58, 0x00, 0x01, 0x00, 0x02, 0x00
-.byte 0x42, 0x00, 0x00, 0x00
+.byte 0xd8, 0x02, 0x53, 0x01, 0x3f, 0x00, 0x57, 0x00, 0x01, 0x00, 0x02, 0x00, 0x42, 0x00, 0x00, 0x00
+.byte 0xd9, 0x02, 0x53, 0x01, 0x3f, 0x00, 0x57, 0x00, 0x01, 0x00, 0x02, 0x00, 0x42, 0x00, 0x00, 0x00
+.byte 0xda, 0x02, 0x53, 0x01, 0x3f, 0x00, 0x57, 0x00, 0x01, 0x00, 0x02, 0x00, 0x42, 0x00, 0x00, 0x00
+.byte 0xdb, 0x02, 0x53, 0x01, 0x3f, 0x00, 0x58, 0x00, 0x01, 0x00, 0x02, 0x00, 0x42, 0x00, 0x00, 0x00
+.byte 0xdc, 0x02, 0x53, 0x01, 0x3f, 0x00, 0x58, 0x00, 0x01, 0x00, 0x02, 0x00, 0x42, 0x00, 0x00, 0x00
+.byte 0xdd, 0x02, 0x53, 0x01, 0x3f, 0x00, 0x58, 0x00, 0x01, 0x00, 0x02, 0x00, 0x42, 0x00, 0x00, 0x00
+.byte 0xde, 0x02, 0x53, 0x01, 0x3f, 0x00, 0x58, 0x00, 0x01, 0x00, 0x02, 0x00, 0x42, 0x00, 0x00, 0x00
+.byte 0xdf, 0x02, 0x53, 0x01, 0x3f, 0x00, 0x58, 0x00, 0x01, 0x00, 0x02, 0x00, 0x42, 0x00, 0x00, 0x00
+.byte 0xe0, 0x02, 0x53, 0x01, 0x3f, 0x00, 0x58, 0x00, 0x01, 0x00, 0x02, 0x00, 0x42, 0x00, 0x00, 0x00
+.byte 0xe1, 0x02, 0x53, 0x01, 0x3f, 0x00, 0x58, 0x00, 0x01, 0x00, 0x02, 0x00, 0x42, 0x00, 0x00, 0x00
+.byte 0xe2, 0x02, 0x53, 0x01, 0x3f, 0x00, 0x58, 0x00, 0x01, 0x00, 0x02, 0x00, 0x42, 0x00, 0x00, 0x00
.byte 0xe3, 0x02, 0x53, 0x01, 0x3f, 0x00, 0x58, 0x00, 0x01, 0x00, 0x02, 0x00, 0x42, 0x00, 0x00, 0x00
diff --git a/data/dungeon/D50/floor_id.inc b/data/dungeon/D50/floor_id.inc
index 47e9fe6..232ab1f 100644
--- a/data/dungeon/D50/floor_id.inc
+++ b/data/dungeon/D50/floor_id.inc
@@ -1,6 +1,6 @@
.global D50FloorID
D50FloorID:
-.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
-.byte 0x00, 0x00, 0x00, 0x00, 0x73, 0x04, 0x0e, 0x02, 0x57, 0x00, 0x57, 0x00, 0x01, 0x00, 0x02, 0x00, 0x42, 0x00, 0x00, 0x00, 0x74, 0x04, 0x0e, 0x02, 0x57, 0x00, 0x57, 0x00, 0x01, 0x00, 0x02, 0x00
-.byte 0x42, 0x00, 0x00, 0x00
+.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+.byte 0x73, 0x04, 0x0e, 0x02, 0x57, 0x00, 0x57, 0x00, 0x01, 0x00, 0x02, 0x00, 0x42, 0x00, 0x00, 0x00
+.byte 0x74, 0x04, 0x0e, 0x02, 0x57, 0x00, 0x57, 0x00, 0x01, 0x00, 0x02, 0x00, 0x42, 0x00, 0x00, 0x00
diff --git a/data/dungeon/D54/floor_id.inc b/data/dungeon/D54/floor_id.inc
index fcf58c6..fd761d1 100644
--- a/data/dungeon/D54/floor_id.inc
+++ b/data/dungeon/D54/floor_id.inc
@@ -1,21 +1,35 @@
.global D54FloorID
D54FloorID:
-.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
-.byte 0x00, 0x00, 0x00, 0x00, 0xf8, 0x04, 0x0e, 0x02, 0x0a, 0x00, 0x57, 0x00, 0x01, 0x00, 0x02, 0x00, 0x03, 0x00, 0x00, 0x00, 0xf9, 0x04, 0x0e, 0x02, 0x0a, 0x00, 0x57, 0x00, 0x01, 0x00, 0x02, 0x00
-.byte 0x03, 0x00, 0x00, 0x00, 0xfa, 0x04, 0x0f, 0x02, 0x0a, 0x00, 0x57, 0x00, 0x01, 0x00, 0x02, 0x00, 0x03, 0x00, 0x00, 0x00, 0xfb, 0x04, 0x10, 0x02, 0x0a, 0x00, 0x58, 0x00, 0x01, 0x00, 0x02, 0x00
-.byte 0x03, 0x00, 0x00, 0x00, 0xfc, 0x04, 0x11, 0x02, 0x0a, 0x00, 0x58, 0x00, 0x01, 0x00, 0x02, 0x00, 0x03, 0x00, 0x00, 0x00, 0xfd, 0x04, 0x11, 0x02, 0x0a, 0x00, 0x58, 0x00, 0x01, 0x00, 0x02, 0x00
-.byte 0x03, 0x00, 0x00, 0x00, 0xfe, 0x04, 0x12, 0x02, 0x0a, 0x00, 0x58, 0x00, 0x01, 0x00, 0x02, 0x00, 0x03, 0x00, 0x00, 0x00, 0xff, 0x04, 0x12, 0x02, 0x0a, 0x00, 0x58, 0x00, 0x01, 0x00, 0x02, 0x00
-.byte 0x03, 0x00, 0x00, 0x00, 0x00, 0x05, 0x12, 0x02, 0x0a, 0x00, 0x58, 0x00, 0x01, 0x00, 0x02, 0x00, 0x03, 0x00, 0x00, 0x00, 0x01, 0x05, 0x13, 0x02, 0x0a, 0x00, 0x58, 0x00, 0x01, 0x00, 0x02, 0x00
-.byte 0x03, 0x00, 0x00, 0x00, 0x02, 0x05, 0x13, 0x02, 0x0a, 0x00, 0x58, 0x00, 0x01, 0x00, 0x02, 0x00, 0x03, 0x00, 0x00, 0x00, 0x03, 0x05, 0x13, 0x02, 0x0a, 0x00, 0x58, 0x00, 0x01, 0x00, 0x02, 0x00
-.byte 0x03, 0x00, 0x00, 0x00, 0x04, 0x05, 0x13, 0x02, 0x0a, 0x00, 0x58, 0x00, 0x01, 0x00, 0x02, 0x00, 0x03, 0x00, 0x00, 0x00, 0x05, 0x05, 0x16, 0x02, 0x0a, 0x00, 0x58, 0x00, 0x01, 0x00, 0x02, 0x00
-.byte 0x03, 0x00, 0x00, 0x00, 0x06, 0x05, 0x16, 0x02, 0x0a, 0x00, 0x58, 0x00, 0x01, 0x00, 0x02, 0x00, 0x03, 0x00, 0x00, 0x00, 0x07, 0x05, 0x17, 0x02, 0x0a, 0x00, 0x58, 0x00, 0x01, 0x00, 0x02, 0x00
-.byte 0x03, 0x00, 0x00, 0x00, 0x08, 0x05, 0x17, 0x02, 0x0a, 0x00, 0x58, 0x00, 0x01, 0x00, 0x02, 0x00, 0x03, 0x00, 0x00, 0x00, 0x09, 0x05, 0x17, 0x02, 0x0a, 0x00, 0x58, 0x00, 0x01, 0x00, 0x02, 0x00
-.byte 0x03, 0x00, 0x00, 0x00, 0x0a, 0x05, 0x17, 0x02, 0x0a, 0x00, 0x58, 0x00, 0x01, 0x00, 0x02, 0x00, 0x03, 0x00, 0x00, 0x00, 0x0b, 0x05, 0x18, 0x02, 0x0a, 0x00, 0x58, 0x00, 0x01, 0x00, 0x02, 0x00
-.byte 0x03, 0x00, 0x00, 0x00, 0x0c, 0x05, 0x18, 0x02, 0x0a, 0x00, 0x58, 0x00, 0x01, 0x00, 0x02, 0x00, 0x03, 0x00, 0x00, 0x00, 0x0d, 0x05, 0x19, 0x02, 0x0a, 0x00, 0x58, 0x00, 0x01, 0x00, 0x02, 0x00
-.byte 0x03, 0x00, 0x00, 0x00, 0x0e, 0x05, 0x19, 0x02, 0x0a, 0x00, 0x58, 0x00, 0x01, 0x00, 0x02, 0x00, 0x03, 0x00, 0x00, 0x00, 0x0f, 0x05, 0x19, 0x02, 0x0a, 0x00, 0x58, 0x00, 0x01, 0x00, 0x02, 0x00
-.byte 0x03, 0x00, 0x00, 0x00, 0x10, 0x05, 0x19, 0x02, 0x0a, 0x00, 0x58, 0x00, 0x01, 0x00, 0x02, 0x00, 0x03, 0x00, 0x00, 0x00, 0x11, 0x05, 0x1a, 0x02, 0x0a, 0x00, 0x58, 0x00, 0x01, 0x00, 0x02, 0x00
-.byte 0x03, 0x00, 0x00, 0x00, 0x12, 0x05, 0x1a, 0x02, 0x0a, 0x00, 0x58, 0x00, 0x01, 0x00, 0x02, 0x00, 0x03, 0x00, 0x00, 0x00, 0x13, 0x05, 0x1a, 0x02, 0x0a, 0x00, 0x58, 0x00, 0x01, 0x00, 0x02, 0x00
-.byte 0x03, 0x00, 0x00, 0x00, 0x14, 0x05, 0x1a, 0x02, 0x0a, 0x00, 0x58, 0x00, 0x01, 0x00, 0x02, 0x00, 0x03, 0x00, 0x00, 0x00, 0x15, 0x05, 0x1a, 0x02, 0x0a, 0x00, 0x58, 0x00, 0x01, 0x00, 0x02, 0x00
-.byte 0x03, 0x00, 0x00, 0x00
+.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+.byte 0xf8, 0x04, 0x0e, 0x02, 0x0a, 0x00, 0x57, 0x00, 0x01, 0x00, 0x02, 0x00, 0x03, 0x00, 0x00, 0x00
+.byte 0xf9, 0x04, 0x0e, 0x02, 0x0a, 0x00, 0x57, 0x00, 0x01, 0x00, 0x02, 0x00, 0x03, 0x00, 0x00, 0x00
+.byte 0xfa, 0x04, 0x0f, 0x02, 0x0a, 0x00, 0x57, 0x00, 0x01, 0x00, 0x02, 0x00, 0x03, 0x00, 0x00, 0x00
+.byte 0xfb, 0x04, 0x10, 0x02, 0x0a, 0x00, 0x58, 0x00, 0x01, 0x00, 0x02, 0x00, 0x03, 0x00, 0x00, 0x00
+.byte 0xfc, 0x04, 0x11, 0x02, 0x0a, 0x00, 0x58, 0x00, 0x01, 0x00, 0x02, 0x00, 0x03, 0x00, 0x00, 0x00
+.byte 0xfd, 0x04, 0x11, 0x02, 0x0a, 0x00, 0x58, 0x00, 0x01, 0x00, 0x02, 0x00, 0x03, 0x00, 0x00, 0x00
+.byte 0xfe, 0x04, 0x12, 0x02, 0x0a, 0x00, 0x58, 0x00, 0x01, 0x00, 0x02, 0x00, 0x03, 0x00, 0x00, 0x00
+.byte 0xff, 0x04, 0x12, 0x02, 0x0a, 0x00, 0x58, 0x00, 0x01, 0x00, 0x02, 0x00, 0x03, 0x00, 0x00, 0x00
+.byte 0x00, 0x05, 0x12, 0x02, 0x0a, 0x00, 0x58, 0x00, 0x01, 0x00, 0x02, 0x00, 0x03, 0x00, 0x00, 0x00
+.byte 0x01, 0x05, 0x13, 0x02, 0x0a, 0x00, 0x58, 0x00, 0x01, 0x00, 0x02, 0x00, 0x03, 0x00, 0x00, 0x00
+.byte 0x02, 0x05, 0x13, 0x02, 0x0a, 0x00, 0x58, 0x00, 0x01, 0x00, 0x02, 0x00, 0x03, 0x00, 0x00, 0x00
+.byte 0x03, 0x05, 0x13, 0x02, 0x0a, 0x00, 0x58, 0x00, 0x01, 0x00, 0x02, 0x00, 0x03, 0x00, 0x00, 0x00
+.byte 0x04, 0x05, 0x13, 0x02, 0x0a, 0x00, 0x58, 0x00, 0x01, 0x00, 0x02, 0x00, 0x03, 0x00, 0x00, 0x00
+.byte 0x05, 0x05, 0x16, 0x02, 0x0a, 0x00, 0x58, 0x00, 0x01, 0x00, 0x02, 0x00, 0x03, 0x00, 0x00, 0x00
+.byte 0x06, 0x05, 0x16, 0x02, 0x0a, 0x00, 0x58, 0x00, 0x01, 0x00, 0x02, 0x00, 0x03, 0x00, 0x00, 0x00
+.byte 0x07, 0x05, 0x17, 0x02, 0x0a, 0x00, 0x58, 0x00, 0x01, 0x00, 0x02, 0x00, 0x03, 0x00, 0x00, 0x00
+.byte 0x08, 0x05, 0x17, 0x02, 0x0a, 0x00, 0x58, 0x00, 0x01, 0x00, 0x02, 0x00, 0x03, 0x00, 0x00, 0x00
+.byte 0x09, 0x05, 0x17, 0x02, 0x0a, 0x00, 0x58, 0x00, 0x01, 0x00, 0x02, 0x00, 0x03, 0x00, 0x00, 0x00
+.byte 0x0a, 0x05, 0x17, 0x02, 0x0a, 0x00, 0x58, 0x00, 0x01, 0x00, 0x02, 0x00, 0x03, 0x00, 0x00, 0x00
+.byte 0x0b, 0x05, 0x18, 0x02, 0x0a, 0x00, 0x58, 0x00, 0x01, 0x00, 0x02, 0x00, 0x03, 0x00, 0x00, 0x00
+.byte 0x0c, 0x05, 0x18, 0x02, 0x0a, 0x00, 0x58, 0x00, 0x01, 0x00, 0x02, 0x00, 0x03, 0x00, 0x00, 0x00
+.byte 0x0d, 0x05, 0x19, 0x02, 0x0a, 0x00, 0x58, 0x00, 0x01, 0x00, 0x02, 0x00, 0x03, 0x00, 0x00, 0x00
+.byte 0x0e, 0x05, 0x19, 0x02, 0x0a, 0x00, 0x58, 0x00, 0x01, 0x00, 0x02, 0x00, 0x03, 0x00, 0x00, 0x00
+.byte 0x0f, 0x05, 0x19, 0x02, 0x0a, 0x00, 0x58, 0x00, 0x01, 0x00, 0x02, 0x00, 0x03, 0x00, 0x00, 0x00
+.byte 0x10, 0x05, 0x19, 0x02, 0x0a, 0x00, 0x58, 0x00, 0x01, 0x00, 0x02, 0x00, 0x03, 0x00, 0x00, 0x00
+.byte 0x11, 0x05, 0x1a, 0x02, 0x0a, 0x00, 0x58, 0x00, 0x01, 0x00, 0x02, 0x00, 0x03, 0x00, 0x00, 0x00
+.byte 0x12, 0x05, 0x1a, 0x02, 0x0a, 0x00, 0x58, 0x00, 0x01, 0x00, 0x02, 0x00, 0x03, 0x00, 0x00, 0x00
+.byte 0x13, 0x05, 0x1a, 0x02, 0x0a, 0x00, 0x58, 0x00, 0x01, 0x00, 0x02, 0x00, 0x03, 0x00, 0x00, 0x00
+.byte 0x14, 0x05, 0x1a, 0x02, 0x0a, 0x00, 0x58, 0x00, 0x01, 0x00, 0x02, 0x00, 0x03, 0x00, 0x00, 0x00
+.byte 0x15, 0x05, 0x1a, 0x02, 0x0a, 0x00, 0x58, 0x00, 0x01, 0x00, 0x02, 0x00, 0x03, 0x00, 0x00, 0x00
diff --git a/data/dungeon/DesertRegion/floor_id.inc b/data/dungeon/DesertRegion/floor_id.inc
index 283cbfa..891141b 100644
--- a/data/dungeon/DesertRegion/floor_id.inc
+++ b/data/dungeon/DesertRegion/floor_id.inc
@@ -10,11 +10,15 @@ DesertRegionFloorID:
.byte 0xea, 0x02, 0x55, 0x01, 0x40, 0x00, 0x59, 0x00, 0x5a, 0x00, 0x2e, 0x00, 0x5b, 0x00, 0x00, 0x00
.byte 0xeb, 0x02, 0x55, 0x01, 0x40, 0x00, 0x59, 0x00, 0x5a, 0x00, 0x2e, 0x00, 0x5b, 0x00, 0x00, 0x00
.byte 0xec, 0x02, 0x55, 0x01, 0x40, 0x00, 0x59, 0x00, 0x5a, 0x00, 0x2e, 0x00, 0x5b, 0x00, 0x00, 0x00
-.byte 0xed, 0x02, 0x55, 0x01, 0x40, 0x00, 0x59, 0x00, 0x5a, 0x00, 0x2e, 0x00
-.byte 0x5b, 0x00, 0x00, 0x00, 0xee, 0x02, 0x55, 0x01, 0x40, 0x00, 0x59, 0x00, 0x5a, 0x00, 0x2e, 0x00, 0x5b, 0x00, 0x00, 0x00, 0xef, 0x02, 0x56, 0x01, 0x40, 0x00, 0x59, 0x00, 0x5a, 0x00, 0x2e, 0x00
-.byte 0x5b, 0x00, 0x00, 0x00, 0xf0, 0x02, 0x56, 0x01, 0x40, 0x00, 0x59, 0x00, 0x5a, 0x00, 0x2e, 0x00, 0x5b, 0x00, 0x00, 0x00, 0xf1, 0x02, 0x57, 0x01, 0x40, 0x00, 0x59, 0x00, 0x5a, 0x00, 0x2e, 0x00
-.byte 0x5b, 0x00, 0x00, 0x00, 0xf2, 0x02, 0x58, 0x01, 0x40, 0x00, 0x59, 0x00, 0x5a, 0x00, 0x2e, 0x00, 0x5b, 0x00, 0x00, 0x00, 0xf3, 0x02, 0x58, 0x01, 0x40, 0x00, 0x59, 0x00, 0x5a, 0x00, 0x2e, 0x00
-.byte 0x5b, 0x00, 0x00, 0x00, 0xf4, 0x02, 0x58, 0x01, 0x40, 0x00, 0x59, 0x00, 0x5a, 0x00, 0x2e, 0x00, 0x5b, 0x00, 0x00, 0x00, 0xf5, 0x02, 0x58, 0x01, 0x40, 0x00, 0x59, 0x00, 0x5a, 0x00, 0x2e, 0x00
-.byte 0x5b, 0x00, 0x00, 0x00, 0xf6, 0x02, 0x58, 0x01, 0x40, 0x00, 0x5c, 0x00, 0x5a, 0x00, 0x2e, 0x00, 0x5b, 0x00, 0x00, 0x00
+.byte 0xed, 0x02, 0x55, 0x01, 0x40, 0x00, 0x59, 0x00, 0x5a, 0x00, 0x2e, 0x00, 0x5b, 0x00, 0x00, 0x00
+.byte 0xee, 0x02, 0x55, 0x01, 0x40, 0x00, 0x59, 0x00, 0x5a, 0x00, 0x2e, 0x00, 0x5b, 0x00, 0x00, 0x00
+.byte 0xef, 0x02, 0x56, 0x01, 0x40, 0x00, 0x59, 0x00, 0x5a, 0x00, 0x2e, 0x00, 0x5b, 0x00, 0x00, 0x00
+.byte 0xf0, 0x02, 0x56, 0x01, 0x40, 0x00, 0x59, 0x00, 0x5a, 0x00, 0x2e, 0x00, 0x5b, 0x00, 0x00, 0x00
+.byte 0xf1, 0x02, 0x57, 0x01, 0x40, 0x00, 0x59, 0x00, 0x5a, 0x00, 0x2e, 0x00, 0x5b, 0x00, 0x00, 0x00
+.byte 0xf2, 0x02, 0x58, 0x01, 0x40, 0x00, 0x59, 0x00, 0x5a, 0x00, 0x2e, 0x00, 0x5b, 0x00, 0x00, 0x00
+.byte 0xf3, 0x02, 0x58, 0x01, 0x40, 0x00, 0x59, 0x00, 0x5a, 0x00, 0x2e, 0x00, 0x5b, 0x00, 0x00, 0x00
+.byte 0xf4, 0x02, 0x58, 0x01, 0x40, 0x00, 0x59, 0x00, 0x5a, 0x00, 0x2e, 0x00, 0x5b, 0x00, 0x00, 0x00
+.byte 0xf5, 0x02, 0x58, 0x01, 0x40, 0x00, 0x59, 0x00, 0x5a, 0x00, 0x2e, 0x00, 0x5b, 0x00, 0x00, 0x00
+.byte 0xf6, 0x02, 0x58, 0x01, 0x40, 0x00, 0x5c, 0x00, 0x5a, 0x00, 0x2e, 0x00, 0x5b, 0x00, 0x00, 0x00
.byte 0xf7, 0x02, 0x58, 0x01, 0x40, 0x00, 0x5c, 0x00, 0x5a, 0x00, 0x2e, 0x00, 0x5b, 0x00, 0x00, 0x00
diff --git a/data/dungeon/GreatCanyon/pokemon_found.inc b/data/dungeon/GreatCanyon/pokemon_found.inc
new file mode 100644
index 0000000..cafa22e
--- /dev/null
+++ b/data/dungeon/GreatCanyon/pokemon_found.inc
@@ -0,0 +1,85 @@
+.global GreatCanyon_1F_3F_Pokemon
+GreatCanyon_1F_3F_Pokemon:
+.byte 0x54, 0x1c, 0x95, 0x05, 0x95, 0x05, 0x00, 0x00
+.byte 0xbc, 0x1a, 0xbe, 0x10, 0xbe, 0x10, 0x00, 0x00
+.byte 0xe7, 0x1a, 0xe7, 0x1b, 0xe7, 0x1b, 0x00, 0x00
+.byte 0x00, 0x1d, 0x10, 0x27, 0x10, 0x27, 0x00, 0x00
+.byte 0x7c, 0xb5, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+.byte 0xa5, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+
+.global GreatCanyon_4F_Pokemon
+GreatCanyon_4F_Pokemon:
+.byte 0x2d, 0x1c, 0xa0, 0x0f, 0xa0, 0x0f, 0x00, 0x00
+.byte 0x54, 0x1c, 0x70, 0x17, 0x70, 0x17, 0x00, 0x00
+.byte 0x37, 0x1d, 0x10, 0x27, 0x10, 0x27, 0x00, 0x00
+.byte 0x7c, 0xb5, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+.byte 0xa5, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+
+.global GreatCanyon_5F_Pokemon
+GreatCanyon_5F_Pokemon:
+.byte 0x2d, 0x1c, 0xc4, 0x09, 0xc4, 0x09, 0x00, 0x00
+.byte 0xc6, 0x1c, 0x88, 0x13, 0x88, 0x13, 0x00, 0x00
+.byte 0x37, 0x1d, 0x4c, 0x1d, 0x4c, 0x1d, 0x00, 0x00
+.byte 0x65, 0x1d, 0x10, 0x27, 0x10, 0x27, 0x00, 0x00
+.byte 0x7c, 0xb5, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+.byte 0xa5, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+
+.global GreatCanyon_6F_Pokemon
+GreatCanyon_6F_Pokemon:
+.byte 0x2d, 0x1c, 0xd0, 0x07, 0xd0, 0x07, 0x00, 0x00
+.byte 0xa4, 0x1c, 0xa0, 0x0f, 0xa0, 0x0f, 0x00, 0x00
+.byte 0xc6, 0x1c, 0x70, 0x17, 0x70, 0x17, 0x00, 0x00
+.byte 0x37, 0x1d, 0x40, 0x1f, 0x40, 0x1f, 0x00, 0x00
+.byte 0x65, 0x1d, 0x10, 0x27, 0x10, 0x27, 0x00, 0x00
+.byte 0x7c, 0xb5, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+.byte 0xa5, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+
+.global GreatCanyon_7F_Pokemon
+GreatCanyon_7F_Pokemon:
+.byte 0xa4, 0x1c, 0xc4, 0x09, 0xc4, 0x09, 0x00, 0x00
+.byte 0xc6, 0x1c, 0x88, 0x13, 0x88, 0x13, 0x00, 0x00
+.byte 0xef, 0x1c, 0x4c, 0x1d, 0x4c, 0x1d, 0x00, 0x00
+.byte 0x65, 0x1d, 0x10, 0x27, 0x10, 0x27, 0x00, 0x00
+.byte 0x7c, 0xb5, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+.byte 0xa5, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+
+.global GreatCanyon_8F_Pokemon
+GreatCanyon_8F_Pokemon:
+.byte 0xa4, 0x1c, 0xc4, 0x09, 0xc4, 0x09, 0x00, 0x00
+.byte 0xa8, 0x1c, 0x88, 0x13, 0x88, 0x13, 0x00, 0x00
+.byte 0xef, 0x1c, 0x4c, 0x1d, 0x4c, 0x1d, 0x00, 0x00
+.byte 0x65, 0x1d, 0x10, 0x27, 0x10, 0x27, 0x00, 0x00
+.byte 0x7c, 0xb5, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+.byte 0xa5, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+
+
+.global GreatCanyon_9F_Pokemon
+GreatCanyon_9F_Pokemon:
+.byte 0xa8, 0x1c, 0x88, 0x13, 0x88, 0x13, 0x00, 0x00
+.byte 0xef, 0x1c, 0x10, 0x27, 0x10, 0x27, 0x00, 0x00
+.byte 0x7c, 0xb5, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+.byte 0xa5, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+
+.global GreatCanyon_10F_11F_Pokemon
+GreatCanyon_10F_11F_Pokemon:
+.byte 0x80, 0x1e, 0x05, 0x0c, 0x05, 0x0c, 0x00, 0x00
+.byte 0xa8, 0x1c, 0x0a, 0x18, 0x0a, 0x18, 0x00, 0x00
+.byte 0xfe, 0x1e, 0x10, 0x27, 0x10, 0x27, 0x00, 0x00
+.byte 0x7c, 0xb5, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+.byte 0xa5, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+
+.global GreatCanyon_12F_Pokemon
+GreatCanyon_12F_Pokemon:
+.byte 0x80, 0x1e, 0x5c, 0x11, 0x5c, 0x11, 0x00, 0x00
+.byte 0xfe, 0x1e, 0x10, 0x27, 0x10, 0x27, 0x00, 0x00
+.byte 0x7c, 0xb5, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+.byte 0xa5, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
diff --git a/data/dungeon/LapisCave/pokemon_found.inc b/data/dungeon/LapisCave/pokemon_found.inc
new file mode 100644
index 0000000..26c16f7
--- /dev/null
+++ b/data/dungeon/LapisCave/pokemon_found.inc
@@ -0,0 +1,57 @@
+.global LapisCave_1F_3F_Pokemon
+LapisCave_1F_3F_Pokemon:
+.byte 0x29, 0x22, 0x88, 0x13, 0x88, 0x13, 0x00, 0x00
+.byte 0x3b, 0x1d, 0x10, 0x27, 0x10, 0x27, 0x00, 0x00
+.byte 0x7c, 0xb5, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+.byte 0xa5, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+
+.global LapisCave_4F_Pokemon
+LapisCave_4F_Pokemon:
+.byte 0x1e, 0x1e, 0x05, 0x0d, 0x05, 0x0d, 0x00, 0x00
+.byte 0x21, 0x1e, 0x0b, 0x1a, 0x0b, 0x1a, 0x00, 0x00
+.byte 0x3b, 0x1d, 0x10, 0x27, 0x10, 0x27, 0x00, 0x00
+.byte 0x7c, 0xb5, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+.byte 0xa5, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+
+.global LapisCave_5F_8F_Pokemon
+LapisCave_5F_8F_Pokemon:
+.byte 0x1e, 0x1e, 0x05, 0x0d, 0x05, 0x0d, 0x00, 0x00
+.byte 0x21, 0x1e, 0x0b, 0x1a, 0x0b, 0x1a, 0x00, 0x00
+.byte 0x53, 0x1f, 0x10, 0x27, 0x10, 0x27, 0x00, 0x00
+.byte 0x7c, 0xb5, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+.byte 0xa5, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+
+.global LapisCave_9F_10F_Pokemon
+LapisCave_9F_10F_Pokemon:
+.byte 0x72, 0x1c, 0x88, 0x13, 0x88, 0x13, 0x00, 0x00
+.byte 0x7c, 0xb5, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+.byte 0x8f, 0x21, 0x10, 0x27, 0x10, 0x27, 0x00, 0x00
+.byte 0xa5, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+
+.global LapisCave_11F_12F_Pokemon
+LapisCave_11F_12F_Pokemon:
+.byte 0x2a, 0x14, 0x05, 0x0d, 0x05, 0x0d, 0x00, 0x00
+.byte 0x72, 0x1c, 0x0b, 0x1a, 0x0b, 0x1a, 0x00, 0x00
+.byte 0x7c, 0xb5, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+.byte 0x8f, 0x21, 0x10, 0x27, 0x10, 0x27, 0x00, 0x00
+.byte 0xa5, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+
+.global LapisCave_13F_Pokemon
+LapisCave_13F_Pokemon:
+.byte 0x2a, 0x14, 0x88, 0x13, 0x88, 0x13, 0x00, 0x00
+.byte 0x7c, 0xb5, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+.byte 0x8f, 0x21, 0x10, 0x27, 0x10, 0x27, 0x00, 0x00
+.byte 0xa5, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+
+.global LapisCave_14F_Pokemon
+LapisCave_14F_Pokemon:
+.byte 0x2a, 0x14, 0x10, 0x27, 0x10, 0x27, 0x00, 0x00
+.byte 0x7c, 0xb5, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+.byte 0xa5, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
diff --git a/data/dungeon/MtSteel/pokemon_found.inc b/data/dungeon/MtSteel/pokemon_found.inc
new file mode 100644
index 0000000..1cf6500
--- /dev/null
+++ b/data/dungeon/MtSteel/pokemon_found.inc
@@ -0,0 +1,53 @@
+.global MtSteel_1F_4F_Pokemon
+MtSteel_1F_4F_Pokemon:
+.byte 0x15, 0x08, 0x31, 0x09, 0x31, 0x09, 0x00, 0x00
+.byte 0x20, 0x0b, 0x62, 0x12, 0x62, 0x12, 0x00, 0x00
+.byte 0x49, 0x0d, 0xdf, 0x1d, 0xdf, 0x1d, 0x00, 0x00
+.byte 0x70, 0x0b, 0x10, 0x27, 0x10, 0x27, 0x00, 0x00
+.byte 0x7c, 0xb5, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+.byte 0xa5, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+
+.global MtSteel_5F_Pokemon
+MtSteel_5F_Pokemon:
+.byte 0x4a, 0x0a, 0x71, 0x07, 0x71, 0x07, 0x00, 0x00
+.byte 0x05, 0x0d, 0xe2, 0x0e, 0xe2, 0x0e, 0x00, 0x00
+.byte 0x20, 0x0b, 0x52, 0x16, 0x52, 0x16, 0x00, 0x00
+.byte 0x49, 0x0d, 0x9f, 0x1f, 0x9f, 0x1f, 0x00, 0x00
+.byte 0x4c, 0x0d, 0x10, 0x27, 0x10, 0x27, 0x00, 0x00
+.byte 0x7c, 0xb5, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+.byte 0xa5, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+
+.global MtSteel_6F_Pokemon
+MtSteel_6F_Pokemon:
+.byte 0x4a, 0x0a, 0x03, 0x08, 0x03, 0x08, 0x00, 0x00
+.byte 0x05, 0x0d, 0x07, 0x10, 0x07, 0x10, 0x00, 0x00
+.byte 0x49, 0x0d, 0x0b, 0x1a, 0x0b, 0x1a, 0x00, 0x00
+.byte 0x4c, 0x0d, 0x0e, 0x22, 0x0e, 0x22, 0x00, 0x00
+.byte 0x7c, 0xb5, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+.byte 0x92, 0x0b, 0x10, 0x27, 0x10, 0x27, 0x00, 0x00
+.byte 0xa5, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+
+.global MtSteel_7F_8F_Pokemon
+MtSteel_7F_8F_Pokemon:
+.byte 0x4a, 0x0a, 0x61, 0x06, 0x61, 0x06, 0x00, 0x00
+.byte 0x7f, 0x0c, 0x59, 0x0e, 0x59, 0x0e, 0x00, 0x00
+.byte 0x05, 0x0d, 0xba, 0x14, 0xba, 0x14, 0x00, 0x00
+.byte 0x49, 0x0d, 0xb3, 0x1c, 0xb3, 0x1c, 0x00, 0x00
+.byte 0x4c, 0x0d, 0x14, 0x23, 0x14, 0x23, 0x00, 0x00
+.byte 0x7c, 0xb5, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+.byte 0x92, 0x0b, 0x10, 0x27, 0x10, 0x27, 0x00, 0x00
+.byte 0xa5, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+
+.global MtSteel_9F_Pokemon
+MtSteel_9F_Pokemon:
+.byte 0x32, 0x0a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+.byte 0xfc, 0x14, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+.byte 0x49, 0x0d, 0x0b, 0x1a, 0x0b, 0x1a, 0x00, 0x00
+.byte 0x7c, 0xb5, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+.byte 0x92, 0x0b, 0x10, 0x27, 0x10, 0x27, 0x00, 0x00
+.byte 0xa5, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
diff --git a/data/dungeon/MtThunder/pokemon_found.inc b/data/dungeon/MtThunder/pokemon_found.inc
new file mode 100644
index 0000000..b2d3e93
--- /dev/null
+++ b/data/dungeon/MtThunder/pokemon_found.inc
@@ -0,0 +1,84 @@
+.global MtThunder_1F_Pokemon
+MtThunder_1F_Pokemon:
+.byte 0x0d, 0x10, 0x53, 0x07, 0x53, 0x07, 0x00, 0x00
+.byte 0x20, 0x18, 0x88, 0x13, 0x88, 0x13, 0x00, 0x00
+.byte 0x4e, 0x19, 0xbd, 0x1f, 0xbd, 0x1f, 0x00, 0x00
+.byte 0x64, 0x17, 0x10, 0x27, 0x10, 0x27, 0x00, 0x00
+.byte 0x7c, 0xb5, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+.byte 0xa5, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+
+.global MtThunder_2F_4F_Pokemon
+MtThunder_2F_4F_Pokemon:
+.byte 0x0d, 0x10, 0x95, 0x05, 0x95, 0x05, 0x00, 0x00
+.byte 0x11, 0x16, 0xe2, 0x0e, 0xe2, 0x0e, 0x00, 0x00
+.byte 0x20, 0x18, 0x2e, 0x18, 0x2e, 0x18, 0x00, 0x00
+.byte 0x4e, 0x19, 0x7b, 0x21, 0x7b, 0x21, 0x00, 0x00
+.byte 0x64, 0x17, 0x10, 0x27, 0x10, 0x27, 0x00, 0x00
+.byte 0x7c, 0xb5, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+.byte 0xa5, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+
+.global MtThunder_5F_Pokemon
+MtThunder_5F_Pokemon:
+.byte 0x0f, 0x14, 0x35, 0x05, 0x35, 0x05, 0x00, 0x00
+.byte 0x11, 0x16, 0x3b, 0x12, 0x3b, 0x12, 0x00, 0x00
+.byte 0x7d, 0x18, 0xa5, 0x1c, 0xa5, 0x1c, 0x00, 0x00
+.byte 0x03, 0x13, 0x10, 0x27, 0x10, 0x27, 0x00, 0x00
+.byte 0x7c, 0xb5, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+.byte 0xa5, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+
+.global MtThunder_6F_Pokemon
+MtThunder_6F_Pokemon:
+.byte 0x0f, 0x14, 0x02, 0x06, 0x02, 0x06, 0x00, 0x00
+.byte 0x7d, 0x18, 0x07, 0x12, 0x07, 0x12, 0x00, 0x00
+.byte 0xb5, 0x18, 0x0b, 0x1b, 0x0b, 0x1b, 0x00, 0x00
+.byte 0x03, 0x13, 0x10, 0x27, 0x10, 0x27, 0x00, 0x00
+.byte 0x7c, 0xb5, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+.byte 0xa5, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+
+.global MtThunder_7F_Pokemon
+MtThunder_7F_Pokemon:
+.byte 0x0f, 0x14, 0x57, 0x04, 0x57, 0x04, 0x00, 0x00
+.byte 0x7d, 0x18, 0x05, 0x0d, 0x05, 0x0d, 0x00, 0x00
+.byte 0xb5, 0x18, 0x88, 0x13, 0x88, 0x13, 0x00, 0x00
+.byte 0xe8, 0x18, 0x62, 0x1e, 0x62, 0x1e, 0x00, 0x00
+.byte 0x03, 0x13, 0x10, 0x27, 0x10, 0x27, 0x00, 0x00
+.byte 0x7c, 0xb5, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+.byte 0xa5, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+
+.global MtThunder_8F_Pokemon
+MtThunder_8F_Pokemon:
+.byte 0x0f, 0x14, 0x66, 0x03, 0x66, 0x03, 0x00, 0x00
+.byte 0x7d, 0x18, 0x31, 0x0a, 0x31, 0x0a, 0x00, 0x00
+.byte 0xb5, 0x18, 0x49, 0x0f, 0x49, 0x0f, 0x00, 0x00
+.byte 0xe8, 0x18, 0xc7, 0x17, 0xc7, 0x17, 0x00, 0x00
+.byte 0x03, 0x13, 0x92, 0x1e, 0x92, 0x1e, 0x00, 0x00
+.byte 0x4f, 0x13, 0x10, 0x27, 0x10, 0x27, 0x00, 0x00
+.byte 0x7c, 0xb5, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+.byte 0xa5, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+
+.global MtThunder_9F_Pokemon
+MtThunder_9F_Pokemon:
+.byte 0x3a, 0x14, 0x71, 0x07, 0x71, 0x07, 0x00, 0x00
+.byte 0xb5, 0x18, 0x05, 0x0d, 0x05, 0x0d, 0x00, 0x00
+.byte 0xe8, 0x18, 0x52, 0x16, 0x52, 0x16, 0x00, 0x00
+.byte 0x03, 0x13, 0xc3, 0x1d, 0xc3, 0x1d, 0x00, 0x00
+.byte 0x4f, 0x13, 0x10, 0x27, 0x10, 0x27, 0x00, 0x00
+.byte 0x7c, 0xb5, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+.byte 0xa5, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+
+.global MtThunder_10F_Pokemon
+MtThunder_10F_Pokemon:
+.byte 0x3a, 0x14, 0x31, 0x09, 0x31, 0x09, 0x00, 0x00
+.byte 0xb5, 0x18, 0x16, 0x10, 0x16, 0x10, 0x00, 0x00
+.byte 0xe8, 0x18, 0x93, 0x1b, 0x93, 0x1b, 0x00, 0x00
+.byte 0x4f, 0x13, 0x10, 0x27, 0x10, 0x27, 0x00, 0x00
+.byte 0x7c, 0xb5, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+.byte 0xa5, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
diff --git a/data/dungeon/MtThunderPeak/pokemon_found.inc b/data/dungeon/MtThunderPeak/pokemon_found.inc
new file mode 100644
index 0000000..b8ce32c
--- /dev/null
+++ b/data/dungeon/MtThunderPeak/pokemon_found.inc
@@ -0,0 +1,17 @@
+.global MtThunderPeak_1F_2F_Pokemon
+MtThunderPeak_1F_2F_Pokemon:
+.byte 0x3a, 0x14, 0xd0, 0x07, 0xd0, 0x07, 0x00, 0x00
+.byte 0x7d, 0x18, 0xa0, 0x0f, 0xa0, 0x0f, 0x00, 0x00
+.byte 0xb5, 0x18, 0x70, 0x17, 0x70, 0x17, 0x00, 0x00
+.byte 0xe8, 0x18, 0x40, 0x1f, 0x40, 0x1f, 0x00, 0x00
+.byte 0x4f, 0x13, 0x10, 0x27, 0x10, 0x27, 0x00, 0x00
+.byte 0x7c, 0xb5, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+.byte 0xa5, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+
+.global MtThunderPeak_3F_Pokemon
+MtThunderPeak_3F_Pokemon:
+.byte 0x91, 0x32, 0x10, 0x27, 0x10, 0x27, 0x00, 0x00
+.byte 0x7c, 0xb5, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+.byte 0xa5, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
diff --git a/data/dungeon/PitfallValley/floor_id.inc b/data/dungeon/PitfallValley/floor_id.inc
index 61a26bd..d63bfa6 100644
--- a/data/dungeon/PitfallValley/floor_id.inc
+++ b/data/dungeon/PitfallValley/floor_id.inc
@@ -2,20 +2,28 @@
PitfallValleyFloorID:
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0xa6, 0x02, 0x3d, 0x01, 0x3b, 0x00, 0x54, 0x00, 0x25, 0x00, 0x02, 0x00, 0x03, 0x00, 0x00, 0x00
-.byte 0xa7, 0x02, 0x3d, 0x01, 0x3b, 0x00, 0x54, 0x00, 0x25, 0x00, 0x02, 0x00, 0x03, 0x00, 0x00, 0x00, 0xa8, 0x02, 0x3d, 0x01, 0x3b, 0x00, 0x54, 0x00, 0x25, 0x00, 0x02, 0x00
-.byte 0x03, 0x00, 0x00, 0x00, 0xa9, 0x02, 0x3e, 0x01, 0x3b, 0x00, 0x55, 0x00, 0x25, 0x00, 0x02, 0x00, 0x03, 0x00, 0x00, 0x00, 0xaa, 0x02, 0x3e, 0x01, 0x3b, 0x00, 0x55, 0x00, 0x25, 0x00, 0x02, 0x00
-.byte 0x03, 0x00, 0x00, 0x00, 0xab, 0x02, 0x3e, 0x01, 0x3b, 0x00, 0x55, 0x00, 0x25, 0x00, 0x02, 0x00, 0x03, 0x00, 0x00, 0x00, 0xac, 0x02, 0x3f, 0x01, 0x3b, 0x00, 0x55, 0x00, 0x25, 0x00, 0x02, 0x00
-.byte 0x03, 0x00, 0x00, 0x00, 0xad, 0x02, 0x3f, 0x01, 0x3b, 0x00, 0x55, 0x00, 0x25, 0x00, 0x02, 0x00, 0x03, 0x00, 0x00, 0x00, 0xae, 0x02, 0x40, 0x01, 0x3b, 0x00, 0x55, 0x00, 0x25, 0x00, 0x02, 0x00
-.byte 0x03, 0x00, 0x00, 0x00, 0xaf, 0x02, 0x41, 0x01, 0x3b, 0x00, 0x55, 0x00, 0x25, 0x00, 0x02, 0x00, 0x03, 0x00, 0x00, 0x00, 0xb0, 0x02, 0x41, 0x01, 0x3b, 0x00, 0x55, 0x00, 0x25, 0x00, 0x02, 0x00
-.byte 0x03, 0x00, 0x00, 0x00, 0xb1, 0x02, 0x41, 0x01, 0x3b, 0x00, 0x55, 0x00, 0x25, 0x00, 0x02, 0x00, 0x03, 0x00, 0x00, 0x00, 0xb2, 0x02, 0x42, 0x01, 0x3b, 0x00, 0x55, 0x00, 0x25, 0x00, 0x02, 0x00
-.byte 0x03, 0x00, 0x00, 0x00, 0xb3, 0x02, 0x42, 0x01, 0x3b, 0x00, 0x55, 0x00, 0x25, 0x00, 0x02, 0x00, 0x03, 0x00, 0x00, 0x00, 0xb4, 0x02, 0x43, 0x01, 0x3b, 0x00, 0x55, 0x00, 0x25, 0x00, 0x02, 0x00
-.byte 0x03, 0x00, 0x00, 0x00, 0xb5, 0x02, 0x44, 0x01, 0x3b, 0x00, 0x55, 0x00, 0x25, 0x00, 0x02, 0x00, 0x03, 0x00, 0x00, 0x00, 0xb6, 0x02, 0x44, 0x01, 0x3b, 0x00, 0x55, 0x00, 0x25, 0x00, 0x02, 0x00
-.byte 0x03, 0x00, 0x00, 0x00, 0xb7, 0x02, 0x44, 0x01, 0x3b, 0x00, 0x55, 0x00, 0x25, 0x00, 0x02, 0x00, 0x03, 0x00, 0x00, 0x00, 0xb8, 0x02, 0x45, 0x01, 0x3b, 0x00, 0x55, 0x00, 0x25, 0x00, 0x02, 0x00
-.byte 0x03, 0x00, 0x00, 0x00, 0xb9, 0x02, 0x45, 0x01, 0x3b, 0x00, 0x55, 0x00, 0x25, 0x00, 0x02, 0x00, 0x03, 0x00, 0x00, 0x00, 0xba, 0x02, 0x46, 0x01, 0x3c, 0x00, 0x55, 0x00, 0x25, 0x00, 0x02, 0x00
-.byte 0x03, 0x00, 0x00, 0x00, 0xbb, 0x02, 0x46, 0x01, 0x3c, 0x00, 0x55, 0x00, 0x25, 0x00, 0x02, 0x00, 0x03, 0x00, 0x00, 0x00
-.byte 0xbc, 0x02, 0x46, 0x01, 0x3c, 0x00, 0x56, 0x00, 0x25, 0x00, 0x02, 0x00
-.byte 0x03, 0x00, 0x00, 0x00
+.byte 0xa7, 0x02, 0x3d, 0x01, 0x3b, 0x00, 0x54, 0x00, 0x25, 0x00, 0x02, 0x00, 0x03, 0x00, 0x00, 0x00
+.byte 0xa8, 0x02, 0x3d, 0x01, 0x3b, 0x00, 0x54, 0x00, 0x25, 0x00, 0x02, 0x00, 0x03, 0x00, 0x00, 0x00
+.byte 0xa9, 0x02, 0x3e, 0x01, 0x3b, 0x00, 0x55, 0x00, 0x25, 0x00, 0x02, 0x00, 0x03, 0x00, 0x00, 0x00
+.byte 0xaa, 0x02, 0x3e, 0x01, 0x3b, 0x00, 0x55, 0x00, 0x25, 0x00, 0x02, 0x00, 0x03, 0x00, 0x00, 0x00
+.byte 0xab, 0x02, 0x3e, 0x01, 0x3b, 0x00, 0x55, 0x00, 0x25, 0x00, 0x02, 0x00, 0x03, 0x00, 0x00, 0x00
+.byte 0xac, 0x02, 0x3f, 0x01, 0x3b, 0x00, 0x55, 0x00, 0x25, 0x00, 0x02, 0x00, 0x03, 0x00, 0x00, 0x00
+.byte 0xad, 0x02, 0x3f, 0x01, 0x3b, 0x00, 0x55, 0x00, 0x25, 0x00, 0x02, 0x00, 0x03, 0x00, 0x00, 0x00
+.byte 0xae, 0x02, 0x40, 0x01, 0x3b, 0x00, 0x55, 0x00, 0x25, 0x00, 0x02, 0x00, 0x03, 0x00, 0x00, 0x00
+.byte 0xaf, 0x02, 0x41, 0x01, 0x3b, 0x00, 0x55, 0x00, 0x25, 0x00, 0x02, 0x00, 0x03, 0x00, 0x00, 0x00
+.byte 0xb0, 0x02, 0x41, 0x01, 0x3b, 0x00, 0x55, 0x00, 0x25, 0x00, 0x02, 0x00, 0x03, 0x00, 0x00, 0x00
+.byte 0xb1, 0x02, 0x41, 0x01, 0x3b, 0x00, 0x55, 0x00, 0x25, 0x00, 0x02, 0x00, 0x03, 0x00, 0x00, 0x00
+.byte 0xb2, 0x02, 0x42, 0x01, 0x3b, 0x00, 0x55, 0x00, 0x25, 0x00, 0x02, 0x00, 0x03, 0x00, 0x00, 0x00
+.byte 0xb3, 0x02, 0x42, 0x01, 0x3b, 0x00, 0x55, 0x00, 0x25, 0x00, 0x02, 0x00, 0x03, 0x00, 0x00, 0x00
+.byte 0xb4, 0x02, 0x43, 0x01, 0x3b, 0x00, 0x55, 0x00, 0x25, 0x00, 0x02, 0x00, 0x03, 0x00, 0x00, 0x00
+.byte 0xb5, 0x02, 0x44, 0x01, 0x3b, 0x00, 0x55, 0x00, 0x25, 0x00, 0x02, 0x00, 0x03, 0x00, 0x00, 0x00
+.byte 0xb6, 0x02, 0x44, 0x01, 0x3b, 0x00, 0x55, 0x00, 0x25, 0x00, 0x02, 0x00, 0x03, 0x00, 0x00, 0x00
+.byte 0xb7, 0x02, 0x44, 0x01, 0x3b, 0x00, 0x55, 0x00, 0x25, 0x00, 0x02, 0x00, 0x03, 0x00, 0x00, 0x00
+.byte 0xb8, 0x02, 0x45, 0x01, 0x3b, 0x00, 0x55, 0x00, 0x25, 0x00, 0x02, 0x00, 0x03, 0x00, 0x00, 0x00
+.byte 0xb9, 0x02, 0x45, 0x01, 0x3b, 0x00, 0x55, 0x00, 0x25, 0x00, 0x02, 0x00, 0x03, 0x00, 0x00, 0x00
+.byte 0xba, 0x02, 0x46, 0x01, 0x3c, 0x00, 0x55, 0x00, 0x25, 0x00, 0x02, 0x00, 0x03, 0x00, 0x00, 0x00
+.byte 0xbb, 0x02, 0x46, 0x01, 0x3c, 0x00, 0x55, 0x00, 0x25, 0x00, 0x02, 0x00, 0x03, 0x00, 0x00, 0x00
+.byte 0xbc, 0x02, 0x46, 0x01, 0x3c, 0x00, 0x56, 0x00, 0x25, 0x00, 0x02, 0x00, 0x03, 0x00, 0x00, 0x00
.byte 0xbd, 0x02, 0x46, 0x01, 0x3c, 0x00, 0x56, 0x00, 0x25, 0x00, 0x02, 0x00, 0x03, 0x00, 0x00, 0x00
-.byte 0xbe, 0x02, 0x46, 0x01, 0x3d, 0x00, 0x56, 0x00, 0x25, 0x00, 0x02, 0x00
-.byte 0x03, 0x00, 0x00, 0x00
+.byte 0xbe, 0x02, 0x46, 0x01, 0x3d, 0x00, 0x56, 0x00, 0x25, 0x00, 0x02, 0x00, 0x03, 0x00, 0x00, 0x00
diff --git a/data/dungeon/RemainsIsland/floor_id.inc b/data/dungeon/RemainsIsland/floor_id.inc
index 6db9405..8b3a3d8 100644
--- a/data/dungeon/RemainsIsland/floor_id.inc
+++ b/data/dungeon/RemainsIsland/floor_id.inc
@@ -1,15 +1,24 @@
.global RemainsIslandFloorID
RemainsIslandFloorID:
-.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
-.byte 0x00, 0x00, 0x00, 0x00, 0x1b, 0x04, 0xeb, 0x01, 0x3e, 0x00, 0x77, 0x00, 0x25, 0x00, 0x02, 0x00, 0x6d, 0x00, 0x00, 0x00, 0x1c, 0x04, 0xeb, 0x01, 0x3e, 0x00, 0x77, 0x00, 0x25, 0x00, 0x02, 0x00
-.byte 0x6d, 0x00, 0x00, 0x00, 0x1d, 0x04, 0xeb, 0x01, 0x3e, 0x00, 0x77, 0x00, 0x25, 0x00, 0x02, 0x00, 0x6d, 0x00, 0x00, 0x00, 0x1e, 0x04, 0xec, 0x01, 0x3e, 0x00, 0x78, 0x00, 0x25, 0x00, 0x02, 0x00
-.byte 0x6d, 0x00, 0x00, 0x00, 0x1f, 0x04, 0xed, 0x01, 0x3e, 0x00, 0x78, 0x00, 0x25, 0x00, 0x02, 0x00, 0x6d, 0x00, 0x00, 0x00, 0x20, 0x04, 0xed, 0x01, 0x3e, 0x00, 0x78, 0x00, 0x25, 0x00, 0x02, 0x00
-.byte 0x6d, 0x00, 0x00, 0x00, 0x21, 0x04, 0xee, 0x01, 0x3e, 0x00, 0x78, 0x00, 0x25, 0x00, 0x02, 0x00, 0x6d, 0x00, 0x00, 0x00, 0x22, 0x04, 0xee, 0x01, 0x3e, 0x00, 0x78, 0x00, 0x25, 0x00, 0x02, 0x00
-.byte 0x6d, 0x00, 0x00, 0x00, 0x23, 0x04, 0xef, 0x01, 0x3e, 0x00, 0x78, 0x00, 0x25, 0x00, 0x02, 0x00, 0x6d, 0x00, 0x00, 0x00, 0x24, 0x04, 0xf0, 0x01, 0x3e, 0x00, 0x78, 0x00, 0x25, 0x00, 0x02, 0x00
-.byte 0x6d, 0x00, 0x00, 0x00, 0x25, 0x04, 0xf0, 0x01, 0x3e, 0x00, 0x78, 0x00, 0x25, 0x00, 0x02, 0x00, 0x6d, 0x00, 0x00, 0x00, 0x26, 0x04, 0xf0, 0x01, 0x3e, 0x00, 0x78, 0x00, 0x25, 0x00, 0x02, 0x00
-.byte 0x6d, 0x00, 0x00, 0x00, 0x27, 0x04, 0xf1, 0x01, 0x3e, 0x00, 0x78, 0x00, 0x25, 0x00, 0x02, 0x00, 0x6d, 0x00, 0x00, 0x00, 0x28, 0x04, 0xf2, 0x01, 0x3e, 0x00, 0x78, 0x00, 0x25, 0x00, 0x02, 0x00
-.byte 0x6d, 0x00, 0x00, 0x00, 0x29, 0x04, 0xf3, 0x01, 0x3e, 0x00, 0x78, 0x00, 0x25, 0x00, 0x02, 0x00, 0x6d, 0x00, 0x00, 0x00, 0x2a, 0x04, 0xf4, 0x01, 0x3e, 0x00, 0x78, 0x00, 0x25, 0x00, 0x02, 0x00
-.byte 0x6d, 0x00, 0x00, 0x00, 0x2b, 0x04, 0xf4, 0x01, 0x3e, 0x00, 0x78, 0x00, 0x25, 0x00, 0x02, 0x00, 0x6d, 0x00, 0x00, 0x00, 0x2c, 0x04, 0xf4, 0x01, 0x3e, 0x00, 0x78, 0x00, 0x25, 0x00, 0x02, 0x00
-.byte 0x6d, 0x00, 0x00, 0x00, 0x2d, 0x04, 0xf4, 0x01, 0x3e, 0x00, 0x78, 0x00, 0x25, 0x00, 0x02, 0x00, 0x6d, 0x00, 0x00, 0x00, 0x2e, 0x04, 0xf5, 0x01, 0x3e, 0x00, 0x78, 0x00, 0x25, 0x00, 0x02, 0x00
-.byte 0x6d, 0x00, 0x00, 0x00
+.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+.byte 0x1b, 0x04, 0xeb, 0x01, 0x3e, 0x00, 0x77, 0x00, 0x25, 0x00, 0x02, 0x00, 0x6d, 0x00, 0x00, 0x00
+.byte 0x1c, 0x04, 0xeb, 0x01, 0x3e, 0x00, 0x77, 0x00, 0x25, 0x00, 0x02, 0x00, 0x6d, 0x00, 0x00, 0x00
+.byte 0x1d, 0x04, 0xeb, 0x01, 0x3e, 0x00, 0x77, 0x00, 0x25, 0x00, 0x02, 0x00, 0x6d, 0x00, 0x00, 0x00
+.byte 0x1e, 0x04, 0xec, 0x01, 0x3e, 0x00, 0x78, 0x00, 0x25, 0x00, 0x02, 0x00, 0x6d, 0x00, 0x00, 0x00
+.byte 0x1f, 0x04, 0xed, 0x01, 0x3e, 0x00, 0x78, 0x00, 0x25, 0x00, 0x02, 0x00, 0x6d, 0x00, 0x00, 0x00
+.byte 0x20, 0x04, 0xed, 0x01, 0x3e, 0x00, 0x78, 0x00, 0x25, 0x00, 0x02, 0x00, 0x6d, 0x00, 0x00, 0x00
+.byte 0x21, 0x04, 0xee, 0x01, 0x3e, 0x00, 0x78, 0x00, 0x25, 0x00, 0x02, 0x00, 0x6d, 0x00, 0x00, 0x00
+.byte 0x22, 0x04, 0xee, 0x01, 0x3e, 0x00, 0x78, 0x00, 0x25, 0x00, 0x02, 0x00, 0x6d, 0x00, 0x00, 0x00
+.byte 0x23, 0x04, 0xef, 0x01, 0x3e, 0x00, 0x78, 0x00, 0x25, 0x00, 0x02, 0x00, 0x6d, 0x00, 0x00, 0x00
+.byte 0x24, 0x04, 0xf0, 0x01, 0x3e, 0x00, 0x78, 0x00, 0x25, 0x00, 0x02, 0x00, 0x6d, 0x00, 0x00, 0x00
+.byte 0x25, 0x04, 0xf0, 0x01, 0x3e, 0x00, 0x78, 0x00, 0x25, 0x00, 0x02, 0x00, 0x6d, 0x00, 0x00, 0x00
+.byte 0x26, 0x04, 0xf0, 0x01, 0x3e, 0x00, 0x78, 0x00, 0x25, 0x00, 0x02, 0x00, 0x6d, 0x00, 0x00, 0x00
+.byte 0x27, 0x04, 0xf1, 0x01, 0x3e, 0x00, 0x78, 0x00, 0x25, 0x00, 0x02, 0x00, 0x6d, 0x00, 0x00, 0x00
+.byte 0x28, 0x04, 0xf2, 0x01, 0x3e, 0x00, 0x78, 0x00, 0x25, 0x00, 0x02, 0x00, 0x6d, 0x00, 0x00, 0x00
+.byte 0x29, 0x04, 0xf3, 0x01, 0x3e, 0x00, 0x78, 0x00, 0x25, 0x00, 0x02, 0x00, 0x6d, 0x00, 0x00, 0x00
+.byte 0x2a, 0x04, 0xf4, 0x01, 0x3e, 0x00, 0x78, 0x00, 0x25, 0x00, 0x02, 0x00, 0x6d, 0x00, 0x00, 0x00
+.byte 0x2b, 0x04, 0xf4, 0x01, 0x3e, 0x00, 0x78, 0x00, 0x25, 0x00, 0x02, 0x00, 0x6d, 0x00, 0x00, 0x00
+.byte 0x2c, 0x04, 0xf4, 0x01, 0x3e, 0x00, 0x78, 0x00, 0x25, 0x00, 0x02, 0x00, 0x6d, 0x00, 0x00, 0x00
+.byte 0x2d, 0x04, 0xf4, 0x01, 0x3e, 0x00, 0x78, 0x00, 0x25, 0x00, 0x02, 0x00, 0x6d, 0x00, 0x00, 0x00
+.byte 0x2e, 0x04, 0xf5, 0x01, 0x3e, 0x00, 0x78, 0x00, 0x25, 0x00, 0x02, 0x00, 0x6d, 0x00, 0x00, 0x00
diff --git a/data/dungeon/RockPath/floor_id.inc b/data/dungeon/RockPath/floor_id.inc
index cc8f15b..0f886dd 100644
--- a/data/dungeon/RockPath/floor_id.inc
+++ b/data/dungeon/RockPath/floor_id.inc
@@ -1,7 +1,9 @@
.global RockPathFloorID
RockPathFloorID:
-.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x61, 0x04, 0x09, 0x02, 0x0a, 0x00, 0x7b, 0x00, 0x01, 0x00, 0x02, 0x00
-.byte 0x03, 0x00, 0x00, 0x00, 0x62, 0x04, 0x09, 0x02, 0x0a, 0x00, 0x7b, 0x00, 0x01, 0x00, 0x02, 0x00, 0x03, 0x00, 0x00, 0x00, 0x63, 0x04, 0x09, 0x02, 0x0a, 0x00, 0x7b, 0x00, 0x01, 0x00, 0x02, 0x00
-.byte 0x03, 0x00, 0x00, 0x00, 0x64, 0x04, 0x09, 0x02, 0x0a, 0x00, 0x7b, 0x00, 0x01, 0x00, 0x02, 0x00, 0x03, 0x00, 0x00, 0x00
+.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+.byte 0x61, 0x04, 0x09, 0x02, 0x0a, 0x00, 0x7b, 0x00, 0x01, 0x00, 0x02, 0x00, 0x03, 0x00, 0x00, 0x00
+.byte 0x62, 0x04, 0x09, 0x02, 0x0a, 0x00, 0x7b, 0x00, 0x01, 0x00, 0x02, 0x00, 0x03, 0x00, 0x00, 0x00
+.byte 0x63, 0x04, 0x09, 0x02, 0x0a, 0x00, 0x7b, 0x00, 0x01, 0x00, 0x02, 0x00, 0x03, 0x00, 0x00, 0x00
+.byte 0x64, 0x04, 0x09, 0x02, 0x0a, 0x00, 0x7b, 0x00, 0x01, 0x00, 0x02, 0x00, 0x03, 0x00, 0x00, 0x00
diff --git a/data/dungeon/SilentChasm/pokemon_found.inc b/data/dungeon/SilentChasm/pokemon_found.inc
new file mode 100644
index 0000000..d622578
--- /dev/null
+++ b/data/dungeon/SilentChasm/pokemon_found.inc
@@ -0,0 +1,84 @@
+.global SilentChasm_1F_3F_Pokemon
+SilentChasm_1F_3F_Pokemon:
+.byte 0x0d, 0x10, 0x83, 0x06, 0x83, 0x06, 0x00, 0x00
+.byte 0x2c, 0x14, 0x6b, 0x0a, 0x6b, 0x0a, 0x00, 0x00
+.byte 0x53, 0x14, 0xd5, 0x14, 0xd5, 0x14, 0x00, 0x00
+.byte 0xc1, 0x14, 0xa5, 0x1c, 0xa5, 0x1c, 0x00, 0x00
+.byte 0xf1, 0x14, 0x10, 0x27, 0x10, 0x27, 0x00, 0x00
+.byte 0x7c, 0xb5, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+.byte 0xa5, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+
+.global SilentChasm_4F_Pokemon
+SilentChasm_4F_Pokemon:
+.byte 0x0d, 0x10, 0xda, 0x0a, 0xda, 0x0a, 0x00, 0x00
+.byte 0x2c, 0x14, 0x5c, 0x11, 0x5c, 0x11, 0x00, 0x00
+.byte 0xc1, 0x14, 0x62, 0x1e, 0x62, 0x1e, 0x00, 0x00
+.byte 0x26, 0x15, 0x10, 0x27, 0x10, 0x27, 0x00, 0x00
+.byte 0x7c, 0xb5, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+.byte 0xa5, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+
+.global SilentChasm_5F_Pokemon
+SilentChasm_5F_Pokemon:
+.byte 0x0d, 0x10, 0xeb, 0x05, 0xeb, 0x05, 0x00, 0x00
+.byte 0x2c, 0x14, 0x78, 0x09, 0x78, 0x09, 0x00, 0x00
+.byte 0x3c, 0x14, 0x05, 0x0d, 0x05, 0x0d, 0x00, 0x00
+.byte 0xc1, 0x14, 0x20, 0x14, 0x20, 0x14, 0x00, 0x00
+.byte 0xfd, 0x16, 0x98, 0x1d, 0x98, 0x1d, 0x00, 0x00
+.byte 0x26, 0x15, 0x10, 0x27, 0x10, 0x27, 0x00, 0x00
+.byte 0x7c, 0xb5, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+.byte 0xa5, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+
+.global SilentChasm_6F_Pokemon
+SilentChasm_6F_Pokemon:
+.byte 0x0d, 0x10, 0x28, 0x04, 0x28, 0x04, 0x00, 0x00
+.byte 0x2c, 0x14, 0xa6, 0x06, 0xa6, 0x06, 0x00, 0x00
+.byte 0x3c, 0x14, 0x24, 0x09, 0x24, 0x09, 0x00, 0x00
+.byte 0xa7, 0x16, 0x21, 0x0e, 0x21, 0x0e, 0x00, 0x00
+.byte 0xc1, 0x14, 0x1e, 0x13, 0x1e, 0x13, 0x00, 0x00
+.byte 0xfd, 0x16, 0xc4, 0x19, 0xc4, 0x19, 0x00, 0x00
+.byte 0x26, 0x15, 0x6a, 0x20, 0x6a, 0x20, 0x00, 0x00
+.byte 0x61, 0x17, 0x10, 0x27, 0x10, 0x27, 0x00, 0x00
+.byte 0x7c, 0xb5, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+.byte 0xa5, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+
+.global SilentChasm_7F_Pokemon
+SilentChasm_7F_Pokemon:
+.byte 0x2c, 0x14, 0x8c, 0x02, 0x8c, 0x02, 0x00, 0x00
+.byte 0x2e, 0x16, 0xf2, 0x05, 0xf2, 0x05, 0x00, 0x00
+.byte 0x3c, 0x14, 0x7e, 0x08, 0x7e, 0x08, 0x00, 0x00
+.byte 0xa7, 0x16, 0x96, 0x0d, 0x96, 0x0d, 0x00, 0x00
+.byte 0xc1, 0x14, 0xaf, 0x12, 0xaf, 0x12, 0x00, 0x00
+.byte 0xfd, 0x16, 0x7a, 0x19, 0x7a, 0x19, 0x00, 0x00
+.byte 0x26, 0x15, 0x45, 0x20, 0x45, 0x20, 0x00, 0x00
+.byte 0x61, 0x17, 0x10, 0x27, 0x10, 0x27, 0x00, 0x00
+.byte 0x7c, 0xb5, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+.byte 0xa5, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+
+.global SilentChasm_8F_Pokemon
+SilentChasm_8F_Pokemon:
+.byte 0x2c, 0x14, 0xe8, 0x03, 0xe8, 0x03, 0x00, 0x00
+.byte 0x2e, 0x16, 0x1d, 0x09, 0x1d, 0x09, 0x00, 0x00
+.byte 0x3c, 0x14, 0x05, 0x0d, 0x05, 0x0d, 0x00, 0x00
+.byte 0xa7, 0x16, 0xd5, 0x14, 0xd5, 0x14, 0x00, 0x00
+.byte 0xc1, 0x14, 0xa5, 0x1c, 0xa5, 0x1c, 0x00, 0x00
+.byte 0x61, 0x17, 0x10, 0x27, 0x10, 0x27, 0x00, 0x00
+.byte 0x7c, 0xb5, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+.byte 0xa5, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+
+.global SilentChasm_9F_Pokemon
+SilentChasm_9F_Pokemon:
+.byte 0x0f, 0x14, 0xbc, 0x06, 0xbc, 0x06, 0x00, 0x00
+.byte 0x2c, 0x14, 0xc7, 0x0a, 0xc7, 0x0a, 0x00, 0x00
+.byte 0x2e, 0x16, 0x2a, 0x10, 0x2a, 0x10, 0x00, 0x00
+.byte 0x3c, 0x14, 0x34, 0x14, 0x34, 0x14, 0x00, 0x00
+.byte 0xa7, 0x16, 0x49, 0x1c, 0x49, 0x1c, 0x00, 0x00
+.byte 0x61, 0x17, 0x10, 0x27, 0x10, 0x27, 0x00, 0x00
+.byte 0x7c, 0xb5, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+.byte 0xa5, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
diff --git a/data/dungeon/SinisterWoods/pokemon_found.inc b/data/dungeon/SinisterWoods/pokemon_found.inc
new file mode 100644
index 0000000..a31fbad
--- /dev/null
+++ b/data/dungeon/SinisterWoods/pokemon_found.inc
@@ -0,0 +1,126 @@
+.global SinisterWoods_1F_Pokemon
+SinisterWoods_1F_Pokemon:
+.byte 0x2b, 0x0e, 0x2b, 0x06, 0x2b, 0x06, 0x00, 0x00
+.byte 0xb9, 0x0e, 0x9d, 0x16, 0x9d, 0x16, 0x00, 0x00
+.byte 0xf5, 0x10, 0x10, 0x27, 0x10, 0x27, 0x00, 0x00
+.byte 0x7c, 0xb5, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+.byte 0xa5, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+
+.global SinisterWoods_2F_Pokemon
+SinisterWoods_2F_Pokemon:
+.byte 0x2b, 0x0e, 0x54, 0x05, 0x54, 0x05, 0x00, 0x00
+.byte 0xb9, 0x0e, 0x88, 0x13, 0x88, 0x13, 0x00, 0x00
+.byte 0xc0, 0x10, 0xdc, 0x18, 0xdc, 0x18, 0x00, 0x00
+.byte 0xf5, 0x10, 0x10, 0x27, 0x10, 0x27, 0x00, 0x00
+.byte 0x7c, 0xb5, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+.byte 0xa5, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+
+.global SinisterWoods_3F_Pokemon
+SinisterWoods_3F_Pokemon:
+.byte 0x2b, 0x0e, 0xe8, 0x03, 0xe8, 0x03, 0x00, 0x00
+.byte 0xa1, 0x0c, 0x53, 0x0e, 0x53, 0x0e, 0x00, 0x00
+.byte 0xb9, 0x0e, 0xbd, 0x18, 0xbd, 0x18, 0x00, 0x00
+.byte 0xc0, 0x10, 0xa5, 0x1c, 0xa5, 0x1c, 0x00, 0x00
+.byte 0xf5, 0x10, 0x10, 0x27, 0x10, 0x27, 0x00, 0x00
+.byte 0x7c, 0xb5, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+.byte 0xa5, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+
+.global SinisterWoods_4F_Pokemon
+SinisterWoods_4F_Pokemon:
+.byte 0x2b, 0x0e, 0xa9, 0x03, 0xa9, 0x03, 0x00, 0x00
+.byte 0xa1, 0x0c, 0x6d, 0x0d, 0x6d, 0x0d, 0x00, 0x00
+.byte 0xb9, 0x0e, 0x31, 0x17, 0x31, 0x17, 0x00, 0x00
+.byte 0xc0, 0x10, 0xdb, 0x1a, 0xdb, 0x1a, 0x00, 0x00
+.byte 0x23, 0x11, 0xf5, 0x20, 0xf5, 0x20, 0x00, 0x00
+.byte 0x25, 0x11, 0x10, 0x27, 0x10, 0x27, 0x00, 0x00
+.byte 0x7c, 0xb5, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+.byte 0xa5, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+
+.global SinisterWoods_5F_Pokemon
+SinisterWoods_5F_Pokemon:
+.byte 0xa1, 0x0c, 0xe2, 0x0e, 0xe2, 0x0e, 0x00, 0x00
+.byte 0xc0, 0x10, 0x76, 0x14, 0x76, 0x14, 0x00, 0x00
+.byte 0x23, 0x11, 0xc3, 0x1d, 0xc3, 0x1d, 0x00, 0x00
+.byte 0x25, 0x11, 0x10, 0x27, 0x10, 0x27, 0x00, 0x00
+.byte 0x7c, 0xb5, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+.byte 0xa5, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+
+.global SinisterWoods_6F_Pokemon
+SinisterWoods_6F_Pokemon:
+.byte 0xa1, 0x0c, 0xc7, 0x0a, 0xc7, 0x0a, 0x00, 0x00
+.byte 0xc0, 0x10, 0xd1, 0x0e, 0xd1, 0x0e, 0x00, 0x00
+.byte 0x23, 0x11, 0x8d, 0x15, 0x8d, 0x15, 0x00, 0x00
+.byte 0x25, 0x11, 0x49, 0x1c, 0x49, 0x1c, 0x00, 0x00
+.byte 0x36, 0x13, 0x10, 0x27, 0x10, 0x27, 0x00, 0x00
+.byte 0x7c, 0xb5, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+.byte 0xa5, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+
+.global SinisterWoods_7F_Pokemon
+SinisterWoods_7F_Pokemon:
+.byte 0xa5, 0x0e, 0x60, 0x09, 0x60, 0x09, 0x00, 0x00
+.byte 0xc0, 0x10, 0x10, 0x0e, 0x10, 0x0e, 0x00, 0x00
+.byte 0x21, 0x11, 0x90, 0x1a, 0x90, 0x1a, 0x00, 0x00
+.byte 0x36, 0x13, 0x10, 0x27, 0x10, 0x27, 0x00, 0x00
+.byte 0x7c, 0xb5, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+.byte 0xa5, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+
+.global SinisterWoods_8F_9F_Pokemon
+SinisterWoods_8F_9F_Pokemon:
+.byte 0x7b, 0x14, 0xee, 0x08, 0xee, 0x08, 0x00, 0x00
+.byte 0xa5, 0x0e, 0xa0, 0x0f, 0xa0, 0x0f, 0x00, 0x00
+.byte 0xc2, 0x14, 0x35, 0x15, 0x35, 0x15, 0x00, 0x00
+.byte 0x21, 0x11, 0x22, 0x1e, 0x22, 0x1e, 0x00, 0x00
+.byte 0x36, 0x13, 0x10, 0x27, 0x10, 0x27, 0x00, 0x00
+.byte 0x7c, 0xb5, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+.byte 0xa5, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+
+.global SinisterWoods_10F_Pokemon
+SinisterWoods_10F_Pokemon:
+.byte 0x67, 0x10, 0x21, 0x06, 0x21, 0x06, 0x00, 0x00
+.byte 0x7b, 0x14, 0x41, 0x0c, 0x41, 0x0c, 0x00, 0x00
+.byte 0xa3, 0x0c, 0x62, 0x12, 0x62, 0x12, 0x00, 0x00
+.byte 0xa5, 0x0e, 0xfa, 0x16, 0xfa, 0x16, 0x00, 0x00
+.byte 0xc2, 0x14, 0xcf, 0x1a, 0xcf, 0x1a, 0x00, 0x00
+.byte 0x36, 0x13, 0xef, 0x20, 0xef, 0x20, 0x00, 0x00
+.byte 0x38, 0x11, 0x10, 0x27, 0x10, 0x27, 0x00, 0x00
+.byte 0x7c, 0xb5, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+.byte 0xa5, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+
+.global SinisterWoods_11F_Pokemon
+SinisterWoods_11F_Pokemon:
+.byte 0x67, 0x10, 0xd0, 0x07, 0xd0, 0x07, 0x00, 0x00
+.byte 0x7b, 0x14, 0xa0, 0x0f, 0xa0, 0x0f, 0x00, 0x00
+.byte 0xa3, 0x0c, 0x70, 0x17, 0x70, 0x17, 0x00, 0x00
+.byte 0x36, 0x13, 0x40, 0x1f, 0x40, 0x1f, 0x00, 0x00
+.byte 0x38, 0x11, 0x10, 0x27, 0x10, 0x27, 0x00, 0x00
+.byte 0x7c, 0xb5, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+.byte 0xa5, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+
+.global SinisterWoods_12F_Pokemon
+SinisterWoods_12F_Pokemon:
+.byte 0x67, 0x10, 0xc4, 0x09, 0xc4, 0x09, 0x00, 0x00
+.byte 0xa3, 0x0c, 0x88, 0x13, 0x88, 0x13, 0x00, 0x00
+.byte 0x36, 0x13, 0x4c, 0x1d, 0x4c, 0x1d, 0x00, 0x00
+.byte 0x38, 0x11, 0x10, 0x27, 0x10, 0x27, 0x00, 0x00
+.byte 0x7c, 0xb5, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+.byte 0xa5, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+
+.global SinisterWoods_13F_Pokemon
+SinisterWoods_13F_Pokemon:
+.byte 0x17, 0x1e, 0x05, 0x0d, 0x05, 0x0d, 0x00, 0x00
+.byte 0x5e, 0x1e, 0x0b, 0x1a, 0x0b, 0x1a, 0x00, 0x00
+.byte 0x4d, 0x19, 0x10, 0x27, 0x10, 0x27, 0x00, 0x00
+.byte 0x7c, 0xb5, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+.byte 0xa5, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
diff --git a/data/dungeon/SnowPath/floor_id.inc b/data/dungeon/SnowPath/floor_id.inc
index fe8e0e2..265dc7d 100644
--- a/data/dungeon/SnowPath/floor_id.inc
+++ b/data/dungeon/SnowPath/floor_id.inc
@@ -1,7 +1,8 @@
.global SnowPathFloorID
SnowPathFloorID:
-.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
-.byte 0x00, 0x00, 0x00, 0x00, 0x65, 0x04, 0x0a, 0x02, 0x0a, 0x00, 0x7c, 0x00, 0x01, 0x00, 0x02, 0x00, 0x03, 0x00, 0x00, 0x00, 0x66, 0x04, 0x0b, 0x02, 0x0a, 0x00, 0x7c, 0x00, 0x01, 0x00, 0x02, 0x00
-.byte 0x03, 0x00, 0x00, 0x00, 0x67, 0x04, 0x0c, 0x02, 0x0a, 0x00, 0x7c, 0x00, 0x01, 0x00, 0x02, 0x00, 0x03, 0x00, 0x00, 0x00, 0x68, 0x04, 0x0d, 0x02, 0x0a, 0x00, 0x7d, 0x00, 0x01, 0x00, 0x02, 0x00
-.byte 0x03, 0x00, 0x00, 0x00
+.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+.byte 0x65, 0x04, 0x0a, 0x02, 0x0a, 0x00, 0x7c, 0x00, 0x01, 0x00, 0x02, 0x00, 0x03, 0x00, 0x00, 0x00
+.byte 0x66, 0x04, 0x0b, 0x02, 0x0a, 0x00, 0x7c, 0x00, 0x01, 0x00, 0x02, 0x00, 0x03, 0x00, 0x00, 0x00
+.byte 0x67, 0x04, 0x0c, 0x02, 0x0a, 0x00, 0x7c, 0x00, 0x01, 0x00, 0x02, 0x00, 0x03, 0x00, 0x00, 0x00
+.byte 0x68, 0x04, 0x0d, 0x02, 0x0a, 0x00, 0x7d, 0x00, 0x01, 0x00, 0x02, 0x00, 0x03, 0x00, 0x00, 0x00
diff --git a/data/dungeon/SolarCave/floor_id.inc b/data/dungeon/SolarCave/floor_id.inc
index 475d630..08d7b70 100644
--- a/data/dungeon/SolarCave/floor_id.inc
+++ b/data/dungeon/SolarCave/floor_id.inc
@@ -1,16 +1,24 @@
.global SolarCaveFloorID
SolarCaveFloorID:
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
-.byte 0x84, 0x03, 0x9c, 0x01, 0x4b, 0x00, 0x66, 0x00, 0x01, 0x00, 0x2e, 0x00
-.byte 0x03, 0x00, 0x00, 0x00, 0x85, 0x03, 0x9c, 0x01, 0x4c, 0x00, 0x66, 0x00, 0x01, 0x00, 0x2e, 0x00, 0x03, 0x00, 0x00, 0x00, 0x86, 0x03, 0x9c, 0x01, 0x4d, 0x00, 0x66, 0x00, 0x01, 0x00, 0x2e, 0x00
-.byte 0x03, 0x00, 0x00, 0x00, 0x87, 0x03, 0x9d, 0x01, 0x4e, 0x00, 0x66, 0x00, 0x01, 0x00, 0x2e, 0x00, 0x03, 0x00, 0x00, 0x00, 0x88, 0x03, 0x9e, 0x01, 0x4f, 0x00, 0x66, 0x00, 0x01, 0x00, 0x2e, 0x00
-.byte 0x03, 0x00, 0x00, 0x00, 0x89, 0x03, 0x9f, 0x01, 0x50, 0x00, 0x66, 0x00, 0x01, 0x00, 0x2e, 0x00, 0x03, 0x00, 0x00, 0x00, 0x8a, 0x03, 0xa0, 0x01, 0x51, 0x00, 0x66, 0x00, 0x01, 0x00, 0x2e, 0x00
-.byte 0x03, 0x00, 0x00, 0x00, 0x8b, 0x03, 0xa1, 0x01, 0x51, 0x00, 0x66, 0x00, 0x01, 0x00, 0x2e, 0x00, 0x03, 0x00, 0x00, 0x00, 0x8c, 0x03, 0xa2, 0x01, 0x51, 0x00, 0x66, 0x00, 0x01, 0x00, 0x2e, 0x00
-.byte 0x03, 0x00, 0x00, 0x00, 0x8d, 0x03, 0xa3, 0x01, 0x51, 0x00, 0x67, 0x00, 0x01, 0x00, 0x2e, 0x00, 0x03, 0x00, 0x00, 0x00, 0x8e, 0x03, 0xa4, 0x01, 0x52, 0x00, 0x67, 0x00, 0x01, 0x00, 0x2e, 0x00
-.byte 0x03, 0x00, 0x00, 0x00, 0x8f, 0x03, 0xa5, 0x01, 0x52, 0x00, 0x67, 0x00, 0x01, 0x00, 0x2e, 0x00, 0x03, 0x00, 0x00, 0x00, 0x90, 0x03, 0xa6, 0x01, 0x52, 0x00, 0x67, 0x00, 0x01, 0x00, 0x2e, 0x00
-.byte 0x03, 0x00, 0x00, 0x00, 0x91, 0x03, 0xa6, 0x01, 0x52, 0x00, 0x67, 0x00, 0x01, 0x00, 0x2e, 0x00, 0x03, 0x00, 0x00, 0x00, 0x92, 0x03, 0xa7, 0x01, 0x52, 0x00, 0x67, 0x00, 0x01, 0x00, 0x2e, 0x00
-.byte 0x03, 0x00, 0x00, 0x00, 0x93, 0x03, 0xa8, 0x01, 0x53, 0x00, 0x68, 0x00, 0x01, 0x00, 0x2e, 0x00, 0x03, 0x00, 0x00, 0x00, 0x94, 0x03, 0xa9, 0x01, 0x53, 0x00, 0x68, 0x00, 0x01, 0x00, 0x2e, 0x00
-.byte 0x03, 0x00, 0x00, 0x00, 0x95, 0x03, 0xaa, 0x01, 0x53, 0x00, 0x68, 0x00, 0x01, 0x00, 0x2e, 0x00, 0x03, 0x00, 0x00, 0x00, 0x96, 0x03, 0xaa, 0x01, 0x53, 0x00, 0x68, 0x00, 0x01, 0x00, 0x2e, 0x00
-.byte 0x03, 0x00, 0x00, 0x00
+.byte 0x84, 0x03, 0x9c, 0x01, 0x4b, 0x00, 0x66, 0x00, 0x01, 0x00, 0x2e, 0x00, 0x03, 0x00, 0x00, 0x00
+.byte 0x85, 0x03, 0x9c, 0x01, 0x4c, 0x00, 0x66, 0x00, 0x01, 0x00, 0x2e, 0x00, 0x03, 0x00, 0x00, 0x00
+.byte 0x86, 0x03, 0x9c, 0x01, 0x4d, 0x00, 0x66, 0x00, 0x01, 0x00, 0x2e, 0x00, 0x03, 0x00, 0x00, 0x00
+.byte 0x87, 0x03, 0x9d, 0x01, 0x4e, 0x00, 0x66, 0x00, 0x01, 0x00, 0x2e, 0x00, 0x03, 0x00, 0x00, 0x00
+.byte 0x88, 0x03, 0x9e, 0x01, 0x4f, 0x00, 0x66, 0x00, 0x01, 0x00, 0x2e, 0x00, 0x03, 0x00, 0x00, 0x00
+.byte 0x89, 0x03, 0x9f, 0x01, 0x50, 0x00, 0x66, 0x00, 0x01, 0x00, 0x2e, 0x00, 0x03, 0x00, 0x00, 0x00
+.byte 0x8a, 0x03, 0xa0, 0x01, 0x51, 0x00, 0x66, 0x00, 0x01, 0x00, 0x2e, 0x00, 0x03, 0x00, 0x00, 0x00
+.byte 0x8b, 0x03, 0xa1, 0x01, 0x51, 0x00, 0x66, 0x00, 0x01, 0x00, 0x2e, 0x00, 0x03, 0x00, 0x00, 0x00
+.byte 0x8c, 0x03, 0xa2, 0x01, 0x51, 0x00, 0x66, 0x00, 0x01, 0x00, 0x2e, 0x00, 0x03, 0x00, 0x00, 0x00
+.byte 0x8d, 0x03, 0xa3, 0x01, 0x51, 0x00, 0x67, 0x00, 0x01, 0x00, 0x2e, 0x00, 0x03, 0x00, 0x00, 0x00
+.byte 0x8e, 0x03, 0xa4, 0x01, 0x52, 0x00, 0x67, 0x00, 0x01, 0x00, 0x2e, 0x00, 0x03, 0x00, 0x00, 0x00
+.byte 0x8f, 0x03, 0xa5, 0x01, 0x52, 0x00, 0x67, 0x00, 0x01, 0x00, 0x2e, 0x00, 0x03, 0x00, 0x00, 0x00
+.byte 0x90, 0x03, 0xa6, 0x01, 0x52, 0x00, 0x67, 0x00, 0x01, 0x00, 0x2e, 0x00, 0x03, 0x00, 0x00, 0x00
+.byte 0x91, 0x03, 0xa6, 0x01, 0x52, 0x00, 0x67, 0x00, 0x01, 0x00, 0x2e, 0x00, 0x03, 0x00, 0x00, 0x00
+.byte 0x92, 0x03, 0xa7, 0x01, 0x52, 0x00, 0x67, 0x00, 0x01, 0x00, 0x2e, 0x00, 0x03, 0x00, 0x00, 0x00
+.byte 0x93, 0x03, 0xa8, 0x01, 0x53, 0x00, 0x68, 0x00, 0x01, 0x00, 0x2e, 0x00, 0x03, 0x00, 0x00, 0x00
+.byte 0x94, 0x03, 0xa9, 0x01, 0x53, 0x00, 0x68, 0x00, 0x01, 0x00, 0x2e, 0x00, 0x03, 0x00, 0x00, 0x00
+.byte 0x95, 0x03, 0xaa, 0x01, 0x53, 0x00, 0x68, 0x00, 0x01, 0x00, 0x2e, 0x00, 0x03, 0x00, 0x00, 0x00
+.byte 0x96, 0x03, 0xaa, 0x01, 0x53, 0x00, 0x68, 0x00, 0x01, 0x00, 0x2e, 0x00, 0x03, 0x00, 0x00, 0x00
.byte 0x97, 0x03, 0xaa, 0x01, 0x54, 0x00, 0x68, 0x00, 0x01, 0x00, 0x2e, 0x00, 0x03, 0x00, 0x00, 0x00
diff --git a/data/dungeon/SouthernCavern/floor_id.inc b/data/dungeon/SouthernCavern/floor_id.inc
index 4729657..103b6f9 100644
--- a/data/dungeon/SouthernCavern/floor_id.inc
+++ b/data/dungeon/SouthernCavern/floor_id.inc
@@ -1,32 +1,54 @@
.global SouthernCavernFloorID
SouthernCavernFloorID:
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
-.byte 0xf8, 0x02, 0x59, 0x01, 0x41, 0x00, 0x5d, 0x00, 0x5e, 0x00, 0x2e, 0x00
-.byte 0x39, 0x00, 0x00, 0x00
-.byte 0xf9, 0x02, 0x59, 0x01, 0x41, 0x00, 0x5d, 0x00, 0x5e, 0x00, 0x2e, 0x00, 0x39, 0x00, 0x00, 0x00, 0xfa, 0x02, 0x59, 0x01, 0x41, 0x00, 0x5d, 0x00, 0x5e, 0x00, 0x2e, 0x00
-.byte 0x39, 0x00, 0x00, 0x00, 0xfb, 0x02, 0x59, 0x01, 0x41, 0x00, 0x5d, 0x00, 0x5e, 0x00, 0x2e, 0x00, 0x39, 0x00, 0x00, 0x00, 0xfc, 0x02, 0x5a, 0x01, 0x41, 0x00, 0x5d, 0x00, 0x5e, 0x00, 0x2e, 0x00
-.byte 0x39, 0x00, 0x00, 0x00, 0xfd, 0x02, 0x5a, 0x01, 0x41, 0x00, 0x5d, 0x00, 0x5e, 0x00, 0x2e, 0x00, 0x39, 0x00, 0x00, 0x00, 0xfe, 0x02, 0x5b, 0x01, 0x41, 0x00, 0x5d, 0x00, 0x5e, 0x00, 0x2e, 0x00
-.byte 0x39, 0x00, 0x00, 0x00, 0xff, 0x02, 0x5c, 0x01, 0x41, 0x00, 0x5d, 0x00, 0x5e, 0x00, 0x2e, 0x00, 0x39, 0x00, 0x00, 0x00, 0x00, 0x03, 0x5c, 0x01, 0x41, 0x00, 0x5d, 0x00, 0x5e, 0x00, 0x2e, 0x00
-.byte 0x39, 0x00, 0x00, 0x00, 0x01, 0x03, 0x5d, 0x01, 0x42, 0x00, 0x5d, 0x00, 0x5e, 0x00, 0x2e, 0x00, 0x39, 0x00, 0x00, 0x00, 0x02, 0x03, 0x5e, 0x01, 0x42, 0x00, 0x5d, 0x00, 0x5e, 0x00, 0x2e, 0x00
-.byte 0x39, 0x00, 0x00, 0x00, 0x03, 0x03, 0x5f, 0x01, 0x42, 0x00, 0x5d, 0x00, 0x5e, 0x00, 0x2e, 0x00, 0x39, 0x00, 0x00, 0x00, 0x04, 0x03, 0x5f, 0x01, 0x42, 0x00, 0x5d, 0x00, 0x5e, 0x00, 0x2e, 0x00
-.byte 0x39, 0x00, 0x00, 0x00, 0x05, 0x03, 0x5f, 0x01, 0x42, 0x00, 0x5d, 0x00, 0x5e, 0x00, 0x2e, 0x00, 0x39, 0x00, 0x00, 0x00, 0x06, 0x03, 0x60, 0x01, 0x42, 0x00, 0x5d, 0x00, 0x5e, 0x00, 0x2e, 0x00
-.byte 0x39, 0x00, 0x00, 0x00, 0x07, 0x03, 0x61, 0x01, 0x42, 0x00, 0x5d, 0x00, 0x5e, 0x00, 0x2e, 0x00, 0x39, 0x00, 0x00, 0x00, 0x08, 0x03, 0x61, 0x01, 0x42, 0x00, 0x5d, 0x00, 0x5e, 0x00, 0x2e, 0x00
-.byte 0x39, 0x00, 0x00, 0x00, 0x09, 0x03, 0x61, 0x01, 0x42, 0x00, 0x5d, 0x00, 0x5e, 0x00, 0x2e, 0x00, 0x39, 0x00, 0x00, 0x00, 0x0a, 0x03, 0x61, 0x01, 0x42, 0x00, 0x5d, 0x00, 0x5e, 0x00, 0x2e, 0x00
-.byte 0x39, 0x00, 0x00, 0x00, 0x0b, 0x03, 0x62, 0x01, 0x42, 0x00, 0x5d, 0x00, 0x5e, 0x00, 0x2e, 0x00, 0x39, 0x00, 0x00, 0x00, 0x0c, 0x03, 0x63, 0x01, 0x42, 0x00, 0x5d, 0x00, 0x5e, 0x00, 0x2e, 0x00
-.byte 0x39, 0x00, 0x00, 0x00, 0x0d, 0x03, 0x63, 0x01, 0x42, 0x00, 0x5d, 0x00, 0x5e, 0x00, 0x2e, 0x00, 0x39, 0x00, 0x00, 0x00, 0x0e, 0x03, 0x64, 0x01, 0x42, 0x00, 0x5d, 0x00, 0x5e, 0x00, 0x2e, 0x00
-.byte 0x39, 0x00, 0x00, 0x00, 0x0f, 0x03, 0x64, 0x01, 0x42, 0x00, 0x5d, 0x00, 0x5e, 0x00, 0x2e, 0x00, 0x39, 0x00, 0x00, 0x00, 0x10, 0x03, 0x65, 0x01, 0x42, 0x00, 0x5d, 0x00, 0x5e, 0x00, 0x2e, 0x00
-.byte 0x39, 0x00, 0x00, 0x00, 0x11, 0x03, 0x66, 0x01, 0x42, 0x00, 0x5d, 0x00, 0x5e, 0x00, 0x2e, 0x00, 0x39, 0x00, 0x00, 0x00, 0x12, 0x03, 0x67, 0x01, 0x42, 0x00, 0x5d, 0x00, 0x5e, 0x00, 0x2e, 0x00
-.byte 0x39, 0x00, 0x00, 0x00, 0x13, 0x03, 0x67, 0x01, 0x42, 0x00, 0x5d, 0x00, 0x5e, 0x00, 0x2e, 0x00, 0x39, 0x00, 0x00, 0x00, 0x14, 0x03, 0x67, 0x01, 0x42, 0x00, 0x5d, 0x00, 0x5e, 0x00, 0x2e, 0x00
-.byte 0x39, 0x00, 0x00, 0x00, 0x15, 0x03, 0x67, 0x01, 0x43, 0x00, 0x5d, 0x00, 0x5e, 0x00, 0x2e, 0x00, 0x39, 0x00, 0x00, 0x00, 0x16, 0x03, 0x68, 0x01, 0x44, 0x00, 0x5d, 0x00, 0x5e, 0x00, 0x2e, 0x00
-.byte 0x39, 0x00, 0x00, 0x00, 0x17, 0x03, 0x69, 0x01, 0x44, 0x00, 0x5d, 0x00, 0x5e, 0x00, 0x2e, 0x00, 0x39, 0x00, 0x00, 0x00, 0x18, 0x03, 0x69, 0x01, 0x44, 0x00, 0x5d, 0x00, 0x5e, 0x00, 0x2e, 0x00
-.byte 0x39, 0x00, 0x00, 0x00, 0x19, 0x03, 0x69, 0x01, 0x44, 0x00, 0x5d, 0x00, 0x5e, 0x00, 0x2e, 0x00, 0x39, 0x00, 0x00, 0x00, 0x1a, 0x03, 0x69, 0x01, 0x44, 0x00, 0x5d, 0x00, 0x5e, 0x00, 0x2e, 0x00
-.byte 0x39, 0x00, 0x00, 0x00, 0x1b, 0x03, 0x69, 0x01, 0x44, 0x00, 0x5d, 0x00, 0x5e, 0x00, 0x2e, 0x00, 0x39, 0x00, 0x00, 0x00, 0x1c, 0x03, 0x6a, 0x01, 0x44, 0x00, 0x5d, 0x00, 0x5e, 0x00, 0x2e, 0x00
-.byte 0x39, 0x00, 0x00, 0x00, 0x1d, 0x03, 0x6a, 0x01, 0x44, 0x00, 0x5d, 0x00, 0x5e, 0x00, 0x2e, 0x00, 0x39, 0x00, 0x00, 0x00, 0x1e, 0x03, 0x6a, 0x01, 0x44, 0x00, 0x5d, 0x00, 0x5e, 0x00, 0x2e, 0x00
-.byte 0x39, 0x00, 0x00, 0x00, 0x1f, 0x03, 0x6b, 0x01, 0x45, 0x00, 0x5d, 0x00, 0x5e, 0x00, 0x2e, 0x00, 0x39, 0x00, 0x00, 0x00, 0x20, 0x03, 0x6c, 0x01, 0x45, 0x00, 0x5d, 0x00, 0x5e, 0x00, 0x2e, 0x00
-.byte 0x39, 0x00, 0x00, 0x00, 0x21, 0x03, 0x6c, 0x01, 0x45, 0x00, 0x5d, 0x00, 0x5e, 0x00, 0x2e, 0x00, 0x39, 0x00, 0x00, 0x00, 0x22, 0x03, 0x6c, 0x01, 0x45, 0x00, 0x5d, 0x00, 0x5e, 0x00, 0x2e, 0x00
-.byte 0x39, 0x00, 0x00, 0x00, 0x23, 0x03, 0x6c, 0x01, 0x45, 0x00, 0x5d, 0x00, 0x5e, 0x00, 0x2e, 0x00, 0x39, 0x00, 0x00, 0x00, 0x24, 0x03, 0x6c, 0x01, 0x45, 0x00, 0x5d, 0x00, 0x5e, 0x00, 0x2e, 0x00
-.byte 0x39, 0x00, 0x00, 0x00, 0x25, 0x03, 0x6d, 0x01, 0x45, 0x00, 0x5d, 0x00, 0x5e, 0x00, 0x2e, 0x00, 0x39, 0x00, 0x00, 0x00, 0x26, 0x03, 0x6d, 0x01, 0x45, 0x00, 0x5d, 0x00, 0x5e, 0x00, 0x2e, 0x00
-.byte 0x39, 0x00, 0x00, 0x00, 0x27, 0x03, 0x6d, 0x01, 0x45, 0x00, 0x5d, 0x00, 0x5e, 0x00, 0x2e, 0x00, 0x39, 0x00, 0x00, 0x00, 0x28, 0x03, 0x6d, 0x01, 0x45, 0x00, 0x5f, 0x00, 0x5e, 0x00, 0x2e, 0x00
-.byte 0x39, 0x00, 0x00, 0x00
+.byte 0xf8, 0x02, 0x59, 0x01, 0x41, 0x00, 0x5d, 0x00, 0x5e, 0x00, 0x2e, 0x00, 0x39, 0x00, 0x00, 0x00
+.byte 0xf9, 0x02, 0x59, 0x01, 0x41, 0x00, 0x5d, 0x00, 0x5e, 0x00, 0x2e, 0x00, 0x39, 0x00, 0x00, 0x00
+.byte 0xfa, 0x02, 0x59, 0x01, 0x41, 0x00, 0x5d, 0x00, 0x5e, 0x00, 0x2e, 0x00, 0x39, 0x00, 0x00, 0x00
+.byte 0xfb, 0x02, 0x59, 0x01, 0x41, 0x00, 0x5d, 0x00, 0x5e, 0x00, 0x2e, 0x00, 0x39, 0x00, 0x00, 0x00
+.byte 0xfc, 0x02, 0x5a, 0x01, 0x41, 0x00, 0x5d, 0x00, 0x5e, 0x00, 0x2e, 0x00, 0x39, 0x00, 0x00, 0x00
+.byte 0xfd, 0x02, 0x5a, 0x01, 0x41, 0x00, 0x5d, 0x00, 0x5e, 0x00, 0x2e, 0x00, 0x39, 0x00, 0x00, 0x00
+.byte 0xfe, 0x02, 0x5b, 0x01, 0x41, 0x00, 0x5d, 0x00, 0x5e, 0x00, 0x2e, 0x00, 0x39, 0x00, 0x00, 0x00
+.byte 0xff, 0x02, 0x5c, 0x01, 0x41, 0x00, 0x5d, 0x00, 0x5e, 0x00, 0x2e, 0x00, 0x39, 0x00, 0x00, 0x00
+.byte 0x00, 0x03, 0x5c, 0x01, 0x41, 0x00, 0x5d, 0x00, 0x5e, 0x00, 0x2e, 0x00, 0x39, 0x00, 0x00, 0x00
+.byte 0x01, 0x03, 0x5d, 0x01, 0x42, 0x00, 0x5d, 0x00, 0x5e, 0x00, 0x2e, 0x00, 0x39, 0x00, 0x00, 0x00
+.byte 0x02, 0x03, 0x5e, 0x01, 0x42, 0x00, 0x5d, 0x00, 0x5e, 0x00, 0x2e, 0x00, 0x39, 0x00, 0x00, 0x00
+.byte 0x03, 0x03, 0x5f, 0x01, 0x42, 0x00, 0x5d, 0x00, 0x5e, 0x00, 0x2e, 0x00, 0x39, 0x00, 0x00, 0x00
+.byte 0x04, 0x03, 0x5f, 0x01, 0x42, 0x00, 0x5d, 0x00, 0x5e, 0x00, 0x2e, 0x00, 0x39, 0x00, 0x00, 0x00
+.byte 0x05, 0x03, 0x5f, 0x01, 0x42, 0x00, 0x5d, 0x00, 0x5e, 0x00, 0x2e, 0x00, 0x39, 0x00, 0x00, 0x00
+.byte 0x06, 0x03, 0x60, 0x01, 0x42, 0x00, 0x5d, 0x00, 0x5e, 0x00, 0x2e, 0x00, 0x39, 0x00, 0x00, 0x00
+.byte 0x07, 0x03, 0x61, 0x01, 0x42, 0x00, 0x5d, 0x00, 0x5e, 0x00, 0x2e, 0x00, 0x39, 0x00, 0x00, 0x00
+.byte 0x08, 0x03, 0x61, 0x01, 0x42, 0x00, 0x5d, 0x00, 0x5e, 0x00, 0x2e, 0x00, 0x39, 0x00, 0x00, 0x00
+.byte 0x09, 0x03, 0x61, 0x01, 0x42, 0x00, 0x5d, 0x00, 0x5e, 0x00, 0x2e, 0x00, 0x39, 0x00, 0x00, 0x00
+.byte 0x0a, 0x03, 0x61, 0x01, 0x42, 0x00, 0x5d, 0x00, 0x5e, 0x00, 0x2e, 0x00, 0x39, 0x00, 0x00, 0x00
+.byte 0x0b, 0x03, 0x62, 0x01, 0x42, 0x00, 0x5d, 0x00, 0x5e, 0x00, 0x2e, 0x00, 0x39, 0x00, 0x00, 0x00
+.byte 0x0c, 0x03, 0x63, 0x01, 0x42, 0x00, 0x5d, 0x00, 0x5e, 0x00, 0x2e, 0x00, 0x39, 0x00, 0x00, 0x00
+.byte 0x0d, 0x03, 0x63, 0x01, 0x42, 0x00, 0x5d, 0x00, 0x5e, 0x00, 0x2e, 0x00, 0x39, 0x00, 0x00, 0x00
+.byte 0x0e, 0x03, 0x64, 0x01, 0x42, 0x00, 0x5d, 0x00, 0x5e, 0x00, 0x2e, 0x00, 0x39, 0x00, 0x00, 0x00
+.byte 0x0f, 0x03, 0x64, 0x01, 0x42, 0x00, 0x5d, 0x00, 0x5e, 0x00, 0x2e, 0x00, 0x39, 0x00, 0x00, 0x00
+.byte 0x10, 0x03, 0x65, 0x01, 0x42, 0x00, 0x5d, 0x00, 0x5e, 0x00, 0x2e, 0x00, 0x39, 0x00, 0x00, 0x00
+.byte 0x11, 0x03, 0x66, 0x01, 0x42, 0x00, 0x5d, 0x00, 0x5e, 0x00, 0x2e, 0x00, 0x39, 0x00, 0x00, 0x00
+.byte 0x12, 0x03, 0x67, 0x01, 0x42, 0x00, 0x5d, 0x00, 0x5e, 0x00, 0x2e, 0x00, 0x39, 0x00, 0x00, 0x00
+.byte 0x13, 0x03, 0x67, 0x01, 0x42, 0x00, 0x5d, 0x00, 0x5e, 0x00, 0x2e, 0x00, 0x39, 0x00, 0x00, 0x00
+.byte 0x14, 0x03, 0x67, 0x01, 0x42, 0x00, 0x5d, 0x00, 0x5e, 0x00, 0x2e, 0x00, 0x39, 0x00, 0x00, 0x00
+.byte 0x15, 0x03, 0x67, 0x01, 0x43, 0x00, 0x5d, 0x00, 0x5e, 0x00, 0x2e, 0x00, 0x39, 0x00, 0x00, 0x00
+.byte 0x16, 0x03, 0x68, 0x01, 0x44, 0x00, 0x5d, 0x00, 0x5e, 0x00, 0x2e, 0x00, 0x39, 0x00, 0x00, 0x00
+.byte 0x17, 0x03, 0x69, 0x01, 0x44, 0x00, 0x5d, 0x00, 0x5e, 0x00, 0x2e, 0x00, 0x39, 0x00, 0x00, 0x00
+.byte 0x18, 0x03, 0x69, 0x01, 0x44, 0x00, 0x5d, 0x00, 0x5e, 0x00, 0x2e, 0x00, 0x39, 0x00, 0x00, 0x00
+.byte 0x19, 0x03, 0x69, 0x01, 0x44, 0x00, 0x5d, 0x00, 0x5e, 0x00, 0x2e, 0x00, 0x39, 0x00, 0x00, 0x00
+.byte 0x1a, 0x03, 0x69, 0x01, 0x44, 0x00, 0x5d, 0x00, 0x5e, 0x00, 0x2e, 0x00, 0x39, 0x00, 0x00, 0x00
+.byte 0x1b, 0x03, 0x69, 0x01, 0x44, 0x00, 0x5d, 0x00, 0x5e, 0x00, 0x2e, 0x00, 0x39, 0x00, 0x00, 0x00
+.byte 0x1c, 0x03, 0x6a, 0x01, 0x44, 0x00, 0x5d, 0x00, 0x5e, 0x00, 0x2e, 0x00, 0x39, 0x00, 0x00, 0x00
+.byte 0x1d, 0x03, 0x6a, 0x01, 0x44, 0x00, 0x5d, 0x00, 0x5e, 0x00, 0x2e, 0x00, 0x39, 0x00, 0x00, 0x00
+.byte 0x1e, 0x03, 0x6a, 0x01, 0x44, 0x00, 0x5d, 0x00, 0x5e, 0x00, 0x2e, 0x00, 0x39, 0x00, 0x00, 0x00
+.byte 0x1f, 0x03, 0x6b, 0x01, 0x45, 0x00, 0x5d, 0x00, 0x5e, 0x00, 0x2e, 0x00, 0x39, 0x00, 0x00, 0x00
+.byte 0x20, 0x03, 0x6c, 0x01, 0x45, 0x00, 0x5d, 0x00, 0x5e, 0x00, 0x2e, 0x00, 0x39, 0x00, 0x00, 0x00
+.byte 0x21, 0x03, 0x6c, 0x01, 0x45, 0x00, 0x5d, 0x00, 0x5e, 0x00, 0x2e, 0x00, 0x39, 0x00, 0x00, 0x00
+.byte 0x22, 0x03, 0x6c, 0x01, 0x45, 0x00, 0x5d, 0x00, 0x5e, 0x00, 0x2e, 0x00, 0x39, 0x00, 0x00, 0x00
+.byte 0x23, 0x03, 0x6c, 0x01, 0x45, 0x00, 0x5d, 0x00, 0x5e, 0x00, 0x2e, 0x00, 0x39, 0x00, 0x00, 0x00
+.byte 0x24, 0x03, 0x6c, 0x01, 0x45, 0x00, 0x5d, 0x00, 0x5e, 0x00, 0x2e, 0x00, 0x39, 0x00, 0x00, 0x00
+.byte 0x25, 0x03, 0x6d, 0x01, 0x45, 0x00, 0x5d, 0x00, 0x5e, 0x00, 0x2e, 0x00, 0x39, 0x00, 0x00, 0x00
+.byte 0x26, 0x03, 0x6d, 0x01, 0x45, 0x00, 0x5d, 0x00, 0x5e, 0x00, 0x2e, 0x00, 0x39, 0x00, 0x00, 0x00
+.byte 0x27, 0x03, 0x6d, 0x01, 0x45, 0x00, 0x5d, 0x00, 0x5e, 0x00, 0x2e, 0x00, 0x39, 0x00, 0x00, 0x00
+.byte 0x28, 0x03, 0x6d, 0x01, 0x45, 0x00, 0x5f, 0x00, 0x5e, 0x00, 0x2e, 0x00, 0x39, 0x00, 0x00, 0x00
.byte 0x29, 0x03, 0x6d, 0x01, 0x46, 0x00, 0x5f, 0x00, 0x5e, 0x00, 0x2e, 0x00, 0x39, 0x00, 0x00, 0x00
diff --git a/data/dungeon/ThunderwaveCave/pokemon_found.inc b/data/dungeon/ThunderwaveCave/pokemon_found.inc
new file mode 100644
index 0000000..007e8a0
--- /dev/null
+++ b/data/dungeon/ThunderwaveCave/pokemon_found.inc
@@ -0,0 +1,28 @@
+.global ThunderwaveCave_1F_2F_Pokemon
+ThunderwaveCave_1F_2F_Pokemon:
+.byte 0x13, 0x06, 0x88, 0x13, 0x88, 0x13, 0x00, 0x00
+.byte 0x1d, 0x08, 0x4c, 0x1d, 0x4c, 0x1d, 0x00, 0x00
+.byte 0x1e, 0x07, 0x10, 0x27, 0x10, 0x27, 0x00, 0x00
+.byte 0x7c, 0xb5, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+.byte 0xa5, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+
+.global ThunderwaveCave_3F_Pokemon
+ThunderwaveCave_3F_Pokemon:
+.byte 0x13, 0x06, 0x47, 0x10, 0x47, 0x10, 0x00, 0x00
+.byte 0x1d, 0x08, 0x6a, 0x18, 0x6a, 0x18, 0x00, 0x00
+.byte 0x64, 0x06, 0xed, 0x1e, 0xed, 0x1e, 0x00, 0x00
+.byte 0x1e, 0x07, 0x10, 0x27, 0x10, 0x27, 0x00, 0x00
+.byte 0x7c, 0xb5, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+.byte 0xa5, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+
+.global ThunderwaveCave_4F_5F_Pokemon
+ThunderwaveCave_4F_5F_Pokemon:
+.byte 0x64, 0x06, 0x06, 0x0f, 0x06, 0x0f, 0x00, 0x00
+.byte 0x08, 0x09, 0x0b, 0x1b, 0x0b, 0x1b, 0x00, 0x00
+.byte 0x50, 0x07, 0x0e, 0x21, 0x0e, 0x21, 0x00, 0x00
+.byte 0x51, 0x07, 0x10, 0x27, 0x10, 0x27, 0x00, 0x00
+.byte 0x7c, 0xb5, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+.byte 0xa5, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
diff --git a/data/dungeon/TinyWoods/pokemon_found.inc b/data/dungeon/TinyWoods/pokemon_found.inc
new file mode 100644
index 0000000..9a5b566
--- /dev/null
+++ b/data/dungeon/TinyWoods/pokemon_found.inc
@@ -0,0 +1,18 @@
+.global TinyWoods1F_2FPokemon
+TinyWoods1F_2F_Pokemon:
+.byte 0x10, 0x02, 0x05, 0x0d, 0x05, 0x0d, 0x00, 0x00
+.byte 0xbf, 0x02, 0x0b, 0x1a, 0x0b, 0x1a, 0x00, 0x00
+.byte 0x22, 0x03, 0x10, 0x27, 0x10, 0x27, 0x00, 0x00
+.byte 0x7c, 0xb5, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+.byte 0xa5, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+
+.global TinyWoods3FPokemon
+TinyWoods3F_Pokemon:
+.byte 0x10, 0x02, 0x29, 0x0b, 0x29, 0x0b, 0x00, 0x00
+.byte 0x66, 0x02, 0xbe, 0x10, 0xbe, 0x10, 0x00, 0x00
+.byte 0xbf, 0x02, 0xe7, 0x1b, 0xe7, 0x1b, 0x00, 0x00
+.byte 0x22, 0x03, 0x10, 0x27, 0x10, 0x27, 0x00, 0x00
+.byte 0x7c, 0xb5, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+.byte 0xa5, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
diff --git a/data/dungeon/WyvernHill/floor_id.inc b/data/dungeon/WyvernHill/floor_id.inc
index bb60244..6f2b2d9 100644
--- a/data/dungeon/WyvernHill/floor_id.inc
+++ b/data/dungeon/WyvernHill/floor_id.inc
@@ -1,20 +1,34 @@
.global WyvernHillFloorID
WyvernHillFloorID:
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
-.byte 0x2a, 0x03, 0x6e, 0x01, 0x07, 0x00, 0x60, 0x00, 0x5e, 0x00, 0x2e, 0x00, 0x42, 0x00, 0x00, 0x00, 0x2b, 0x03, 0x6e, 0x01, 0x07, 0x00, 0x60, 0x00, 0x5e, 0x00, 0x2e, 0x00
-.byte 0x42, 0x00, 0x00, 0x00, 0x2c, 0x03, 0x6e, 0x01, 0x07, 0x00, 0x60, 0x00, 0x5e, 0x00, 0x2e, 0x00, 0x42, 0x00, 0x00, 0x00, 0x2d, 0x03, 0x6f, 0x01, 0x07, 0x00, 0x60, 0x00, 0x5e, 0x00, 0x2e, 0x00
-.byte 0x42, 0x00, 0x00, 0x00, 0x2e, 0x03, 0x70, 0x01, 0x07, 0x00, 0x60, 0x00, 0x5e, 0x00, 0x2e, 0x00, 0x42, 0x00, 0x00, 0x00, 0x2f, 0x03, 0x71, 0x01, 0x07, 0x00, 0x60, 0x00, 0x5e, 0x00, 0x2e, 0x00
-.byte 0x42, 0x00, 0x00, 0x00, 0x30, 0x03, 0x71, 0x01, 0x07, 0x00, 0x60, 0x00, 0x5e, 0x00, 0x2e, 0x00, 0x42, 0x00, 0x00, 0x00, 0x31, 0x03, 0x71, 0x01, 0x07, 0x00, 0x60, 0x00, 0x5e, 0x00, 0x2e, 0x00
-.byte 0x42, 0x00, 0x00, 0x00, 0x32, 0x03, 0x72, 0x01, 0x07, 0x00, 0x60, 0x00, 0x5e, 0x00, 0x2e, 0x00, 0x42, 0x00, 0x00, 0x00, 0x33, 0x03, 0x73, 0x01, 0x09, 0x00, 0x60, 0x00, 0x5e, 0x00, 0x2e, 0x00
-.byte 0x42, 0x00, 0x00, 0x00, 0x34, 0x03, 0x73, 0x01, 0x09, 0x00, 0x60, 0x00, 0x5e, 0x00, 0x2e, 0x00, 0x42, 0x00, 0x00, 0x00, 0x35, 0x03, 0x74, 0x01, 0x09, 0x00, 0x60, 0x00, 0x5e, 0x00, 0x2e, 0x00
-.byte 0x42, 0x00, 0x00, 0x00, 0x36, 0x03, 0x75, 0x01, 0x09, 0x00, 0x60, 0x00, 0x5e, 0x00, 0x2e, 0x00, 0x42, 0x00, 0x00, 0x00, 0x37, 0x03, 0x75, 0x01, 0x09, 0x00, 0x60, 0x00, 0x5e, 0x00, 0x2e, 0x00
-.byte 0x42, 0x00, 0x00, 0x00, 0x38, 0x03, 0x75, 0x01, 0x09, 0x00, 0x60, 0x00, 0x5e, 0x00, 0x2e, 0x00, 0x42, 0x00, 0x00, 0x00, 0x39, 0x03, 0x76, 0x01, 0x09, 0x00, 0x60, 0x00, 0x5e, 0x00, 0x2e, 0x00
-.byte 0x42, 0x00, 0x00, 0x00, 0x3a, 0x03, 0x77, 0x01, 0x09, 0x00, 0x60, 0x00, 0x5e, 0x00, 0x2e, 0x00, 0x42, 0x00, 0x00, 0x00, 0x3b, 0x03, 0x77, 0x01, 0x09, 0x00, 0x60, 0x00, 0x5e, 0x00, 0x2e, 0x00
-.byte 0x42, 0x00, 0x00, 0x00, 0x3c, 0x03, 0x77, 0x01, 0x09, 0x00, 0x60, 0x00, 0x5e, 0x00, 0x2e, 0x00, 0x42, 0x00, 0x00, 0x00, 0x3d, 0x03, 0x77, 0x01, 0x09, 0x00, 0x60, 0x00, 0x5e, 0x00, 0x2e, 0x00
-.byte 0x42, 0x00, 0x00, 0x00, 0x3e, 0x03, 0x78, 0x01, 0x09, 0x00, 0x60, 0x00, 0x5e, 0x00, 0x2e, 0x00, 0x42, 0x00, 0x00, 0x00, 0x3f, 0x03, 0x79, 0x01, 0x09, 0x00, 0x60, 0x00, 0x5e, 0x00, 0x2e, 0x00
-.byte 0x42, 0x00, 0x00, 0x00, 0x40, 0x03, 0x79, 0x01, 0x09, 0x00, 0x60, 0x00, 0x5e, 0x00, 0x2e, 0x00, 0x42, 0x00, 0x00, 0x00, 0x41, 0x03, 0x7a, 0x01, 0x09, 0x00, 0x60, 0x00, 0x5e, 0x00, 0x2e, 0x00
-.byte 0x42, 0x00, 0x00, 0x00, 0x42, 0x03, 0x7b, 0x01, 0x09, 0x00, 0x60, 0x00, 0x5e, 0x00, 0x2e, 0x00, 0x42, 0x00, 0x00, 0x00, 0x43, 0x03, 0x7b, 0x01, 0x09, 0x00, 0x60, 0x00, 0x5e, 0x00, 0x2e, 0x00
-.byte 0x42, 0x00, 0x00, 0x00, 0x44, 0x03, 0x7b, 0x01, 0x09, 0x00, 0x60, 0x00, 0x5e, 0x00, 0x2e, 0x00, 0x42, 0x00, 0x00, 0x00, 0x45, 0x03, 0x7b, 0x01, 0x09, 0x00, 0x60, 0x00, 0x5e, 0x00, 0x2e, 0x00
-.byte 0x42, 0x00, 0x00, 0x00, 0x46, 0x03, 0x7b, 0x01, 0x09, 0x00, 0x61, 0x00, 0x5e, 0x00, 0x2e, 0x00, 0x42, 0x00, 0x00, 0x00
+.byte 0x2a, 0x03, 0x6e, 0x01, 0x07, 0x00, 0x60, 0x00, 0x5e, 0x00, 0x2e, 0x00, 0x42, 0x00, 0x00, 0x00
+.byte 0x2b, 0x03, 0x6e, 0x01, 0x07, 0x00, 0x60, 0x00, 0x5e, 0x00, 0x2e, 0x00, 0x42, 0x00, 0x00, 0x00
+.byte 0x2c, 0x03, 0x6e, 0x01, 0x07, 0x00, 0x60, 0x00, 0x5e, 0x00, 0x2e, 0x00, 0x42, 0x00, 0x00, 0x00
+.byte 0x2d, 0x03, 0x6f, 0x01, 0x07, 0x00, 0x60, 0x00, 0x5e, 0x00, 0x2e, 0x00, 0x42, 0x00, 0x00, 0x00
+.byte 0x2e, 0x03, 0x70, 0x01, 0x07, 0x00, 0x60, 0x00, 0x5e, 0x00, 0x2e, 0x00, 0x42, 0x00, 0x00, 0x00
+.byte 0x2f, 0x03, 0x71, 0x01, 0x07, 0x00, 0x60, 0x00, 0x5e, 0x00, 0x2e, 0x00, 0x42, 0x00, 0x00, 0x00
+.byte 0x30, 0x03, 0x71, 0x01, 0x07, 0x00, 0x60, 0x00, 0x5e, 0x00, 0x2e, 0x00, 0x42, 0x00, 0x00, 0x00
+.byte 0x31, 0x03, 0x71, 0x01, 0x07, 0x00, 0x60, 0x00, 0x5e, 0x00, 0x2e, 0x00, 0x42, 0x00, 0x00, 0x00
+.byte 0x32, 0x03, 0x72, 0x01, 0x07, 0x00, 0x60, 0x00, 0x5e, 0x00, 0x2e, 0x00, 0x42, 0x00, 0x00, 0x00
+.byte 0x33, 0x03, 0x73, 0x01, 0x09, 0x00, 0x60, 0x00, 0x5e, 0x00, 0x2e, 0x00, 0x42, 0x00, 0x00, 0x00
+.byte 0x34, 0x03, 0x73, 0x01, 0x09, 0x00, 0x60, 0x00, 0x5e, 0x00, 0x2e, 0x00, 0x42, 0x00, 0x00, 0x00
+.byte 0x35, 0x03, 0x74, 0x01, 0x09, 0x00, 0x60, 0x00, 0x5e, 0x00, 0x2e, 0x00, 0x42, 0x00, 0x00, 0x00
+.byte 0x36, 0x03, 0x75, 0x01, 0x09, 0x00, 0x60, 0x00, 0x5e, 0x00, 0x2e, 0x00, 0x42, 0x00, 0x00, 0x00
+.byte 0x37, 0x03, 0x75, 0x01, 0x09, 0x00, 0x60, 0x00, 0x5e, 0x00, 0x2e, 0x00, 0x42, 0x00, 0x00, 0x00
+.byte 0x38, 0x03, 0x75, 0x01, 0x09, 0x00, 0x60, 0x00, 0x5e, 0x00, 0x2e, 0x00, 0x42, 0x00, 0x00, 0x00
+.byte 0x39, 0x03, 0x76, 0x01, 0x09, 0x00, 0x60, 0x00, 0x5e, 0x00, 0x2e, 0x00, 0x42, 0x00, 0x00, 0x00
+.byte 0x3a, 0x03, 0x77, 0x01, 0x09, 0x00, 0x60, 0x00, 0x5e, 0x00, 0x2e, 0x00, 0x42, 0x00, 0x00, 0x00
+.byte 0x3b, 0x03, 0x77, 0x01, 0x09, 0x00, 0x60, 0x00, 0x5e, 0x00, 0x2e, 0x00, 0x42, 0x00, 0x00, 0x00
+.byte 0x3c, 0x03, 0x77, 0x01, 0x09, 0x00, 0x60, 0x00, 0x5e, 0x00, 0x2e, 0x00, 0x42, 0x00, 0x00, 0x00
+.byte 0x3d, 0x03, 0x77, 0x01, 0x09, 0x00, 0x60, 0x00, 0x5e, 0x00, 0x2e, 0x00, 0x42, 0x00, 0x00, 0x00
+.byte 0x3e, 0x03, 0x78, 0x01, 0x09, 0x00, 0x60, 0x00, 0x5e, 0x00, 0x2e, 0x00, 0x42, 0x00, 0x00, 0x00
+.byte 0x3f, 0x03, 0x79, 0x01, 0x09, 0x00, 0x60, 0x00, 0x5e, 0x00, 0x2e, 0x00, 0x42, 0x00, 0x00, 0x00
+.byte 0x40, 0x03, 0x79, 0x01, 0x09, 0x00, 0x60, 0x00, 0x5e, 0x00, 0x2e, 0x00, 0x42, 0x00, 0x00, 0x00
+.byte 0x41, 0x03, 0x7a, 0x01, 0x09, 0x00, 0x60, 0x00, 0x5e, 0x00, 0x2e, 0x00, 0x42, 0x00, 0x00, 0x00
+.byte 0x42, 0x03, 0x7b, 0x01, 0x09, 0x00, 0x60, 0x00, 0x5e, 0x00, 0x2e, 0x00, 0x42, 0x00, 0x00, 0x00
+.byte 0x43, 0x03, 0x7b, 0x01, 0x09, 0x00, 0x60, 0x00, 0x5e, 0x00, 0x2e, 0x00, 0x42, 0x00, 0x00, 0x00
+.byte 0x44, 0x03, 0x7b, 0x01, 0x09, 0x00, 0x60, 0x00, 0x5e, 0x00, 0x2e, 0x00, 0x42, 0x00, 0x00, 0x00
+.byte 0x45, 0x03, 0x7b, 0x01, 0x09, 0x00, 0x60, 0x00, 0x5e, 0x00, 0x2e, 0x00, 0x42, 0x00, 0x00, 0x00
+.byte 0x46, 0x03, 0x7b, 0x01, 0x09, 0x00, 0x61, 0x00, 0x5e, 0x00, 0x2e, 0x00, 0x42, 0x00, 0x00, 0x00
.byte 0x47, 0x03, 0x7c, 0x01, 0x47, 0x00, 0x61, 0x00, 0x5e, 0x00, 0x2e, 0x00, 0x42, 0x00, 0x00, 0x00
diff --git a/data/dungeon/banfont.inc b/data/dungeon/banfont.inc
index d806881..0a87029 100644
--- a/data/dungeon/banfont.inc
+++ b/data/dungeon/banfont.inc
@@ -1,7 +1,11 @@
.global banfont_SIRO
banfont_SIRO:
-.byte 0x53, 0x49, 0x52, 0x4f, 0x98, 0xbb, 0x49, 0x08, 0x00, 0x00, 0x00, 0x00
-.byte 0x00, 0x00, 0x00, 0x00, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0
+.string "SIRO"
+.4byte banfont_table
+.byte 0x00, 0x00, 0x00, 0x00
+.byte 0x00, 0x00, 0x00, 0x00
+
+.byte 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0
.byte 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0
.byte 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xa0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0
.byte 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xd0, 0x45, 0xfa, 0x0f, 0x0f, 0x0e, 0x02
@@ -282,4 +286,9 @@ banfont_SIRO:
.byte 0x4a, 0xb2, 0x49, 0x08, 0x6b, 0x00, 0x0a, 0x00, 0xce, 0xb2, 0x49, 0x08, 0x6c, 0x00, 0x04, 0x00, 0x37, 0xb3, 0x49, 0x08, 0x6d, 0x00, 0x0f, 0x00, 0xbc, 0xb3, 0x49, 0x08, 0x6e, 0x00, 0x09, 0x00
.byte 0x35, 0xb4, 0x49, 0x08, 0x6f, 0x00, 0x0a, 0x00, 0xb0, 0xb4, 0x49, 0x08, 0x70, 0x00, 0x0a, 0x00, 0x36, 0xb5, 0x49, 0x08, 0x72, 0x00, 0x09, 0x00, 0x9f, 0xb5, 0x49, 0x08, 0x73, 0x00, 0x0a, 0x00
.byte 0x1b, 0xb6, 0x49, 0x08, 0x74, 0x00, 0x0b, 0x00, 0x91, 0xb6, 0x49, 0x08, 0x75, 0x00, 0x0a, 0x00, 0x08, 0xb7, 0x49, 0x08, 0x76, 0x00, 0x0a, 0x00, 0x82, 0xb7, 0x49, 0x08, 0x77, 0x00, 0x0d, 0x00
-.byte 0x09, 0xb8, 0x49, 0x08, 0x78, 0x00, 0x0a, 0x00, 0x87, 0xb8, 0x49, 0x08, 0x79, 0x00, 0x0a, 0x00, 0x0b, 0xb9, 0x49, 0x08, 0x7a, 0x00, 0x0a, 0x00, 0x80, 0xb9, 0x49, 0x08, 0x43, 0x00, 0x00, 0x00
+.byte 0x09, 0xb8, 0x49, 0x08, 0x78, 0x00, 0x0a, 0x00, 0x87, 0xb8, 0x49, 0x08, 0x79, 0x00, 0x0a, 0x00, 0x0b, 0xb9, 0x49, 0x08, 0x7a, 0x00, 0x0a, 0x00
+
+.global banfont_table
+banfont_table:
+.byte 0x80, 0xb9, 0x49, 0x08
+.byte 0x43, 0x00, 0x00, 0x00
diff --git a/data/dungeon/colvec.inc b/data/dungeon/colvec.inc
index a2ee60f..dc68d7f 100644
--- a/data/dungeon/colvec.inc
+++ b/data/dungeon/colvec.inc
@@ -1,6 +1,13 @@
.global colvec_SIRO
colvec_SIRO:
-.byte 0x53, 0x49, 0x52, 0x4f, 0xf0, 0xbb, 0x49, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0x07, 0x07, 0x07, 0xff, 0x07, 0x07, 0x07, 0xff, 0x07, 0x07, 0x07, 0xff
+.string "SIRO"
+.4byte colvec
+.byte 0x00, 0x00, 0x00, 0x00
+.byte 0x00, 0x00, 0x00, 0x00
+
+.global colvec
+colvec:
+.byte 0x00, 0x00, 0x00, 0xff, 0x07, 0x07, 0x07, 0xff, 0x07, 0x07, 0x07, 0xff, 0x07, 0x07, 0x07, 0xff
.byte 0x07, 0x07, 0x07, 0xff, 0x07, 0x07, 0x07, 0xff, 0x07, 0x07, 0x07, 0xff, 0x07, 0x07, 0x07, 0xff, 0x0f, 0x0f, 0x0f, 0xff, 0x0f, 0x0f, 0x0f, 0xff, 0x0f, 0x0f, 0x0f, 0xff, 0x0f, 0x0f, 0x0f, 0xff
.byte 0x0f, 0x0f, 0x0f, 0xff, 0x0f, 0x0f, 0x0f, 0xff, 0x0f, 0x0f, 0x0f, 0xff, 0x0f, 0x0f, 0x0f, 0xff, 0x17, 0x17, 0x17, 0xff, 0x17, 0x17, 0x17, 0xff, 0x17, 0x17, 0x17, 0xff, 0x17, 0x17, 0x17, 0xff
.byte 0x17, 0x17, 0x17, 0xff, 0x17, 0x17, 0x17, 0xff, 0x17, 0x17, 0x17, 0xff, 0x17, 0x17, 0x17, 0xff, 0x1f, 0x1f, 0x1f, 0xff, 0x1f, 0x1f, 0x1f, 0xff, 0x1f, 0x1f, 0x1f, 0xff, 0x1f, 0x1f, 0x1f, 0xff
diff --git a/data/dungeon/etcfonta.inc b/data/dungeon/etcfonta.inc
index 4ce9eb0..725c946 100644
--- a/data/dungeon/etcfonta.inc
+++ b/data/dungeon/etcfonta.inc
@@ -1,7 +1,13 @@
.global etcfonta_SIRO
etcfonta_SIRO:
-.byte 0x53, 0x49, 0x52, 0x4f, 0x44, 0xe2, 0x49, 0x08, 0x00, 0x00, 0x00, 0x00
-.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x90, 0x09, 0x00, 0x90, 0xa9, 0x99, 0x09, 0x90, 0xa9, 0x99, 0x09, 0x00, 0x90, 0x09, 0x00, 0x00, 0x00, 0x00, 0x00
+.string "SIRO"
+.4byte etcfonta
+.byte 0x00, 0x00, 0x00, 0x00
+.byte 0x00, 0x00, 0x00, 0x00
+
+.global etcfonta
+etcfonta:
+.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x90, 0x09, 0x00, 0x90, 0xa9, 0x99, 0x09, 0x90, 0xa9, 0x99, 0x09, 0x00, 0x90, 0x09, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x90, 0x00, 0x90, 0xaa, 0x99, 0x90, 0x99, 0xaa, 0x99, 0x90, 0x99, 0xaa, 0x99, 0x00, 0x90, 0xaa, 0x99, 0x00, 0x00, 0x00, 0x90
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, 0x99, 0x99, 0x09, 0x00, 0x99, 0x99, 0x99, 0x09, 0x99, 0x99, 0x99, 0x09, 0x99, 0x99, 0x09, 0x00, 0x09, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0a, 0x00, 0x00, 0x0a, 0x00, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x00, 0x00, 0x0a, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, 0xa0, 0x00, 0x00, 0x0a, 0x00
diff --git a/data/dungeon/itempat.inc b/data/dungeon/itempat.inc
index d2efab8..dc8ba95 100644
--- a/data/dungeon/itempat.inc
+++ b/data/dungeon/itempat.inc
@@ -1,7 +1,12 @@
.global itempat_SIRO
itempat_SIRO:
.string "SIRO"
-.byte 0x04, 0x14, 0x4a, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+.4byte itempat_table
+.byte 0x00, 0x00, 0x00, 0x00
+.byte 0x00, 0x00, 0x00, 0x00
+
+.global itempat
+itempat:
.byte 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, 0x91, 0x01, 0x00, 0x00, 0x10, 0x19, 0x00, 0x00, 0x10, 0x89, 0x01, 0x00, 0x00, 0xa1, 0x18
.byte 0x00, 0x00, 0x81, 0x9a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0xa9, 0x00, 0x00, 0x10, 0xa8, 0x00, 0x00, 0x00, 0x91, 0x00, 0x00, 0x00, 0x91, 0x00, 0x00, 0x00, 0x81, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00
@@ -98,4 +103,9 @@ itempat_SIRO:
.byte 0x10, 0x34, 0x43, 0x34, 0x00, 0x00, 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0x11, 0xf3, 0x01, 0x00, 0x1f, 0x43, 0x1f, 0x00, 0x43, 0x38, 0x14, 0x00, 0xff, 0x98, 0x43, 0x01, 0xff, 0x81, 0x14, 0x00
.byte 0x43, 0x11, 0x01, 0x00, 0x00, 0xf1, 0xf3, 0x3f, 0x00, 0x10, 0xf4, 0x4f, 0x00, 0xd1, 0x18, 0x11, 0x00, 0x10, 0xda, 0x18, 0x00, 0x00, 0x11, 0x8a, 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x1f, 0x98, 0x19, 0x00, 0x81, 0x8a, 0x01, 0x00, 0x91, 0x11, 0x01, 0x00, 0x1d, 0x98, 0x1a, 0x00, 0x89, 0x19, 0x01, 0x00, 0x18, 0x01, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00
-.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x4a, 0x08, 0x00, 0x00, 0x00, 0x00
+.byte 0x00, 0x00, 0x00, 0x00
+
+.global itempat_table
+itempat_table:
+.4byte itempat
+.byte 0x00, 0x00, 0x00, 0x00
diff --git a/data/dungeon/jyochu.inc b/data/dungeon/jyochu.inc
index a688d43..84c2e96 100644
--- a/data/dungeon/jyochu.inc
+++ b/data/dungeon/jyochu.inc
@@ -1,7 +1,11 @@
.global jyochu_SIRO
jyochu_SIRO:
.string "SIRO"
-.byte 0x44, 0x1f, 0x4a, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00
+.4byte jyochu_table
+.byte 0x00, 0x00, 0x00, 0x00
+.byte 0x00, 0x00, 0x00, 0x00
+
+.byte 0xff, 0xff, 0x00, 0x00
.byte 0xf0, 0x01, 0xf0, 0x80, 0x00, 0xec, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0xf0, 0x01, 0xf0, 0x80, 0x10, 0xec, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff
.byte 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0xf0, 0x01, 0xf0, 0x80, 0x20, 0xec, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0xf0, 0x01, 0xf0, 0x80
.byte 0x30, 0xec, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0xf0, 0x01, 0xf0, 0x80, 0x40, 0xec, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff
@@ -91,6 +95,10 @@ jyochu_SIRO:
.byte 0xa7, 0x6f, 0x00, 0x80, 0xdf, 0xb7, 0x00, 0x80, 0xff, 0xf7, 0x00, 0x80, 0x00, 0x67, 0xb7, 0x80, 0x1f, 0x9f, 0xe7, 0x80, 0x9f, 0xe7, 0xff, 0x80, 0x9f, 0x00, 0x00, 0x80, 0xd7, 0x3f, 0x00, 0x80
.byte 0xff, 0x87, 0x5f, 0x80, 0xff, 0x87, 0xbf, 0x80, 0xff, 0xff, 0xff, 0x80, 0x1c, 0x14, 0x4a, 0x08, 0x30, 0x14, 0x4a, 0x08, 0x44, 0x14, 0x4a, 0x08, 0x58, 0x14, 0x4a, 0x08, 0x6c, 0x14, 0x4a, 0x08
.byte 0x84, 0x14, 0x4a, 0x08, 0x84, 0x14, 0x4a, 0x08, 0x84, 0x14, 0x4a, 0x08, 0x84, 0x14, 0x4a, 0x08, 0x84, 0x14, 0x4a, 0x08, 0x84, 0x14, 0x4a, 0x08, 0x84, 0x14, 0x4a, 0x08, 0x84, 0x14, 0x4a, 0x08
-.byte 0x20, 0x1f, 0x4a, 0x08, 0x0c, 0x1f, 0x4a, 0x08, 0x40, 0x1f, 0x4a, 0x08, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xcc, 0x14, 0x4a, 0x08, 0xcc, 0x1e, 0x4a, 0x08
+.byte 0x20, 0x1f, 0x4a, 0x08
+
+.global jyochu_table
+jyochu_table:
+.byte 0x0c, 0x1f, 0x4a, 0x08, 0x40, 0x1f, 0x4a, 0x08, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xcc, 0x14, 0x4a, 0x08, 0xcc, 0x1e, 0x4a, 0x08
.byte 0x50, 0x00, 0x00, 0x00
diff --git a/data/dungeon/levfont.inc b/data/dungeon/levfont.inc
index ab6358c..2fc24d6 100644
--- a/data/dungeon/levfont.inc
+++ b/data/dungeon/levfont.inc
@@ -1,7 +1,13 @@
.global levfont_SIRO
levfont_SIRO:
.string "SIRO"
-.byte 0x74, 0x1f, 0x4a, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+.4byte levfont
+.byte 0x00, 0x00, 0x00, 0x00
+.byte 0x00, 0x00, 0x00, 0x00
+
+.global levfont
+levfont:
+.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x11, 0x11, 0x01, 0x11, 0x11, 0x11, 0x11, 0x11, 0x61, 0x16, 0x11
.byte 0x11, 0x46, 0x64, 0x11, 0x11, 0x46, 0x64, 0x11, 0x11, 0x61, 0x16, 0x11, 0x11, 0x11, 0x11, 0x11, 0x10, 0x11, 0x11, 0x01, 0x10, 0xfc, 0xcf, 0x01, 0x11, 0x1f, 0xf1, 0x11, 0x11, 0x11, 0xf1, 0x11
.byte 0x11, 0x11, 0xcf, 0x11, 0x11, 0xf1, 0x1c, 0x11, 0x11, 0xcf, 0x11, 0x11, 0x11, 0xff, 0xff, 0x11, 0x50, 0x55, 0x55, 0x05, 0x10, 0xfc, 0xcf, 0x01, 0x11, 0x1f, 0xf1, 0x11, 0x11, 0x11, 0xf1, 0x11
diff --git a/data/dungeon/pokemon_found.inc b/data/dungeon/pokemon_found.inc
index e780b9a..9b5508b 100644
--- a/data/dungeon/pokemon_found.inc
+++ b/data/dungeon/pokemon_found.inc
@@ -1,398 +1,40 @@
@ Start of Pokemon Found (0x84b6064)
-.byte 0x10, 0x02, 0x05, 0x0d, 0x05, 0x0d, 0x00, 0x00
-.byte 0xbf, 0x02, 0x0b, 0x1a, 0x0b, 0x1a, 0x00, 0x00
-.byte 0x22, 0x03, 0x10, 0x27, 0x10, 0x27, 0x00, 0x00
-.byte 0x7c, 0xb5, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
-.byte 0xa5, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
-.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
-
-.byte 0x10, 0x02, 0x29, 0x0b, 0x29, 0x0b, 0x00, 0x00
-.byte 0x66, 0x02, 0xbe, 0x10, 0xbe, 0x10, 0x00, 0x00
-.byte 0xbf, 0x02, 0xe7, 0x1b, 0xe7, 0x1b, 0x00, 0x00
-.byte 0x22, 0x03, 0x10, 0x27, 0x10, 0x27, 0x00, 0x00
-.byte 0x7c, 0xb5, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
-.byte 0xa5, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
-.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
-
-.byte 0x13, 0x06, 0x88, 0x13, 0x88, 0x13, 0x00, 0x00
-.byte 0x1d, 0x08, 0x4c, 0x1d, 0x4c, 0x1d, 0x00, 0x00
-.byte 0x1e, 0x07, 0x10, 0x27, 0x10, 0x27, 0x00, 0x00
-.byte 0x7c, 0xb5, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
-.byte 0xa5, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
-.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
-
-.byte 0x13, 0x06, 0x47, 0x10, 0x47, 0x10, 0x00, 0x00
-.byte 0x1d, 0x08, 0x6a, 0x18, 0x6a, 0x18, 0x00, 0x00
-.byte 0x64, 0x06, 0xed, 0x1e, 0xed, 0x1e, 0x00, 0x00
-.byte 0x1e, 0x07, 0x10, 0x27, 0x10, 0x27, 0x00, 0x00
-.byte 0x7c, 0xb5, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
-.byte 0xa5, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
-.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
-
-.byte 0x64, 0x06, 0x06, 0x0f, 0x06, 0x0f, 0x00, 0x00
-.byte 0x08, 0x09, 0x0b, 0x1b, 0x0b, 0x1b, 0x00, 0x00
-.byte 0x50, 0x07, 0x0e, 0x21, 0x0e, 0x21, 0x00, 0x00
-.byte 0x51, 0x07, 0x10, 0x27, 0x10, 0x27, 0x00, 0x00
-.byte 0x7c, 0xb5, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
-.byte 0xa5, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
-.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
-
-.byte 0x15, 0x08, 0x31, 0x09, 0x31, 0x09, 0x00, 0x00
-.byte 0x20, 0x0b, 0x62, 0x12, 0x62, 0x12, 0x00, 0x00
-.byte 0x49, 0x0d, 0xdf, 0x1d, 0xdf, 0x1d, 0x00, 0x00
-.byte 0x70, 0x0b, 0x10, 0x27, 0x10, 0x27, 0x00, 0x00
-.byte 0x7c, 0xb5, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
-.byte 0xa5, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
-.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
-
-.byte 0x4a, 0x0a, 0x71, 0x07, 0x71, 0x07, 0x00, 0x00
-.byte 0x05, 0x0d, 0xe2, 0x0e, 0xe2, 0x0e, 0x00, 0x00
-.byte 0x20, 0x0b, 0x52, 0x16, 0x52, 0x16, 0x00, 0x00
-.byte 0x49, 0x0d, 0x9f, 0x1f, 0x9f, 0x1f, 0x00, 0x00
-.byte 0x4c, 0x0d, 0x10, 0x27, 0x10, 0x27, 0x00, 0x00
-.byte 0x7c, 0xb5, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
-.byte 0xa5, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
-.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
-
-.byte 0x4a, 0x0a, 0x03, 0x08, 0x03, 0x08, 0x00, 0x00
-.byte 0x05, 0x0d, 0x07, 0x10, 0x07, 0x10, 0x00, 0x00
-.byte 0x49, 0x0d, 0x0b, 0x1a, 0x0b, 0x1a, 0x00, 0x00
-.byte 0x4c, 0x0d, 0x0e, 0x22, 0x0e, 0x22, 0x00, 0x00
-.byte 0x7c, 0xb5, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
-.byte 0x92, 0x0b, 0x10, 0x27, 0x10, 0x27, 0x00, 0x00
-.byte 0xa5, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
-.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
-
-.byte 0x4a, 0x0a, 0x61, 0x06, 0x61, 0x06, 0x00, 0x00
-.byte 0x7f, 0x0c, 0x59, 0x0e, 0x59, 0x0e, 0x00, 0x00
-.byte 0x05, 0x0d, 0xba, 0x14, 0xba, 0x14, 0x00, 0x00
-.byte 0x49, 0x0d, 0xb3, 0x1c, 0xb3, 0x1c, 0x00, 0x00
-.byte 0x4c, 0x0d, 0x14, 0x23, 0x14, 0x23, 0x00, 0x00
-.byte 0x7c, 0xb5, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
-.byte 0x92, 0x0b, 0x10, 0x27, 0x10, 0x27, 0x00, 0x00
-.byte 0xa5, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
-.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
-
-.byte 0x32, 0x0a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
-.byte 0xfc, 0x14, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
-.byte 0x49, 0x0d, 0x0b, 0x1a, 0x0b, 0x1a, 0x00, 0x00
-.byte 0x7c, 0xb5, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
-.byte 0x92, 0x0b, 0x10, 0x27, 0x10, 0x27, 0x00, 0x00
-.byte 0xa5, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
-.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
-
-.byte 0x2b, 0x0e, 0x2b, 0x06, 0x2b, 0x06, 0x00, 0x00
-.byte 0xb9, 0x0e, 0x9d, 0x16, 0x9d, 0x16, 0x00, 0x00
-.byte 0xf5, 0x10, 0x10, 0x27, 0x10, 0x27, 0x00, 0x00
-.byte 0x7c, 0xb5, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
-.byte 0xa5, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
-.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
-
-.byte 0x2b, 0x0e, 0x54, 0x05, 0x54, 0x05, 0x00, 0x00
-.byte 0xb9, 0x0e, 0x88, 0x13, 0x88, 0x13, 0x00, 0x00
-.byte 0xc0, 0x10, 0xdc, 0x18, 0xdc, 0x18, 0x00, 0x00
-.byte 0xf5, 0x10, 0x10, 0x27, 0x10, 0x27, 0x00, 0x00
-.byte 0x7c, 0xb5, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
-.byte 0xa5, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
-.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
-
-.byte 0x2b, 0x0e, 0xe8, 0x03, 0xe8, 0x03, 0x00, 0x00
-.byte 0xa1, 0x0c, 0x53, 0x0e, 0x53, 0x0e, 0x00, 0x00
-.byte 0xb9, 0x0e, 0xbd, 0x18, 0xbd, 0x18, 0x00, 0x00
-.byte 0xc0, 0x10, 0xa5, 0x1c, 0xa5, 0x1c, 0x00, 0x00
-.byte 0xf5, 0x10, 0x10, 0x27, 0x10, 0x27, 0x00, 0x00
-.byte 0x7c, 0xb5, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
-.byte 0xa5, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
-.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
-
-.byte 0x2b, 0x0e, 0xa9, 0x03, 0xa9, 0x03, 0x00, 0x00
-.byte 0xa1, 0x0c, 0x6d, 0x0d, 0x6d, 0x0d, 0x00, 0x00
-.byte 0xb9, 0x0e, 0x31, 0x17, 0x31, 0x17, 0x00, 0x00
-.byte 0xc0, 0x10, 0xdb, 0x1a, 0xdb, 0x1a, 0x00, 0x00
-.byte 0x23, 0x11, 0xf5, 0x20, 0xf5, 0x20, 0x00, 0x00
-.byte 0x25, 0x11, 0x10, 0x27, 0x10, 0x27, 0x00, 0x00
-.byte 0x7c, 0xb5, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
-.byte 0xa5, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
-.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
-
-.byte 0xa1, 0x0c, 0xe2, 0x0e, 0xe2, 0x0e, 0x00, 0x00
-.byte 0xc0, 0x10, 0x76, 0x14, 0x76, 0x14, 0x00, 0x00
-.byte 0x23, 0x11, 0xc3, 0x1d, 0xc3, 0x1d, 0x00, 0x00
-.byte 0x25, 0x11, 0x10, 0x27, 0x10, 0x27, 0x00, 0x00
-.byte 0x7c, 0xb5, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
-.byte 0xa5, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
-.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
-
-.byte 0xa1, 0x0c, 0xc7, 0x0a, 0xc7, 0x0a, 0x00, 0x00
-.byte 0xc0, 0x10, 0xd1, 0x0e, 0xd1, 0x0e, 0x00, 0x00
-.byte 0x23, 0x11, 0x8d, 0x15, 0x8d, 0x15, 0x00, 0x00
-.byte 0x25, 0x11, 0x49, 0x1c, 0x49, 0x1c, 0x00, 0x00
-.byte 0x36, 0x13, 0x10, 0x27, 0x10, 0x27, 0x00, 0x00
-.byte 0x7c, 0xb5, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
-.byte 0xa5, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
-.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
-
-.byte 0xa5, 0x0e, 0x60, 0x09, 0x60, 0x09, 0x00, 0x00
-.byte 0xc0, 0x10, 0x10, 0x0e, 0x10, 0x0e, 0x00, 0x00
-.byte 0x21, 0x11, 0x90, 0x1a, 0x90, 0x1a, 0x00, 0x00
-.byte 0x36, 0x13, 0x10, 0x27, 0x10, 0x27, 0x00, 0x00
-.byte 0x7c, 0xb5, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
-.byte 0xa5, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
-.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
-
-.byte 0x7b, 0x14, 0xee, 0x08, 0xee, 0x08, 0x00, 0x00
-.byte 0xa5, 0x0e, 0xa0, 0x0f, 0xa0, 0x0f, 0x00, 0x00
-.byte 0xc2, 0x14, 0x35, 0x15, 0x35, 0x15, 0x00, 0x00
-.byte 0x21, 0x11, 0x22, 0x1e, 0x22, 0x1e, 0x00, 0x00
-.byte 0x36, 0x13, 0x10, 0x27, 0x10, 0x27, 0x00, 0x00
-.byte 0x7c, 0xb5, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
-.byte 0xa5, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
-.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
-.byte 0x67, 0x10, 0x21, 0x06, 0x21, 0x06, 0x00, 0x00
-.byte 0x7b, 0x14, 0x41, 0x0c, 0x41, 0x0c, 0x00, 0x00
-.byte 0xa3, 0x0c, 0x62, 0x12, 0x62, 0x12, 0x00, 0x00
-.byte 0xa5, 0x0e, 0xfa, 0x16, 0xfa, 0x16, 0x00, 0x00
-.byte 0xc2, 0x14, 0xcf, 0x1a, 0xcf, 0x1a, 0x00, 0x00
-.byte 0x36, 0x13, 0xef, 0x20, 0xef, 0x20, 0x00, 0x00
-.byte 0x38, 0x11, 0x10, 0x27, 0x10, 0x27, 0x00, 0x00
-.byte 0x7c, 0xb5, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
-.byte 0xa5, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
-.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+.include "data/dungeon/TinyWoods/pokemon_found.inc"
+.include "data/dungeon/ThunderwaveCave/pokemon_found.inc"
+.include "data/dungeon/MtSteel/pokemon_found.inc"
+.include "data/dungeon/SinisterWoods/pokemon_found.inc"
+.include "data/dungeon/SilentChasm/pokemon_found.inc"
+.include "data/dungeon/MtThunder/pokemon_found.inc"
+.include "data/dungeon/MtThunderPeak/pokemon_found.inc"
+.include "data/dungeon/GreatCanyon/pokemon_found.inc"
+.include "data/dungeon/LapisCave/pokemon_found.inc"
-.byte 0x67, 0x10, 0xd0, 0x07, 0xd0, 0x07, 0x00, 0x00
-.byte 0x7b, 0x14, 0xa0, 0x0f, 0xa0, 0x0f, 0x00, 0x00
-.byte 0xa3, 0x0c, 0x70, 0x17, 0x70, 0x17, 0x00, 0x00
-.byte 0x36, 0x13, 0x40, 0x1f, 0x40, 0x1f, 0x00, 0x00
-.byte 0x38, 0x11, 0x10, 0x27, 0x10, 0x27, 0x00, 0x00
-.byte 0x7c, 0xb5, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
-.byte 0xa5, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
-.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
-.byte 0x67, 0x10, 0xc4, 0x09, 0xc4, 0x09, 0x00, 0x00
-.byte 0xa3, 0x0c, 0x88, 0x13, 0x88, 0x13, 0x00, 0x00
-.byte 0x36, 0x13, 0x4c, 0x1d, 0x4c, 0x1d, 0x00, 0x00
-.byte 0x38, 0x11, 0x10, 0x27, 0x10, 0x27, 0x00, 0x00
+.byte 0x12, 0x20, 0x29, 0x0b, 0x29, 0x0b, 0x00, 0x00
+.byte 0xf3, 0x20, 0xbe, 0x10, 0xbe, 0x10, 0x00, 0x00
+.byte 0x09, 0x23, 0xe7, 0x1b, 0xe7, 0x1b, 0x00, 0x00
+.byte 0x5b, 0x1d, 0x10, 0x27, 0x10, 0x27, 0x00, 0x00
.byte 0x7c, 0xb5, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0xa5, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
-.byte 0x17, 0x1e, 0x05, 0x0d, 0x05, 0x0d, 0x00, 0x00
-.byte 0x5e, 0x1e, 0x0b, 0x1a, 0x0b, 0x1a, 0x00, 0x00
-.byte 0x4d, 0x19, 0x10, 0x27, 0x10, 0x27, 0x00, 0x00
+.byte 0xf3, 0x20, 0xd0, 0x07, 0xd0, 0x07, 0x00, 0x00
+.byte 0x09, 0x23, 0x70, 0x17, 0x70, 0x17, 0x00, 0x00
+.byte 0x5b, 0x1d, 0x10, 0x27, 0x10, 0x27, 0x00, 0x00
.byte 0x7c, 0xb5, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0xa5, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
-.byte 0x0d, 0x10, 0x83, 0x06, 0x83, 0x06, 0x00, 0x00
-.byte 0x2c, 0x14, 0x6b, 0x0a, 0x6b, 0x0a, 0x00, 0x00
-.byte 0x53, 0x14, 0xd5, 0x14, 0xd5, 0x14, 0x00, 0x00
-.byte 0xc1, 0x14, 0xa5, 0x1c, 0xa5, 0x1c, 0x00, 0x00
-.byte 0xf1, 0x14, 0x10, 0x27, 0x10, 0x27, 0x00, 0x00
+.byte 0xee, 0x1e, 0x18, 0x05, 0x18, 0x05, 0x00, 0x00
+.byte 0xf3, 0x20, 0xe3, 0x0b, 0xe3, 0x0b, 0x00, 0x00
+.byte 0x09, 0x23, 0x7a, 0x19, 0x7a, 0x19, 0x00, 0x00
+.byte 0x5b, 0x1d, 0x10, 0x27, 0x10, 0x27, 0x00, 0x00
.byte 0x7c, 0xb5, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0xa5, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
-.byte 0x0d, 0x10, 0xda, 0x0a, 0xda, 0x0a, 0x00, 0x00
-.byte 0x2c, 0x14, 0x5c, 0x11, 0x5c, 0x11, 0x00, 0x00
-.byte 0xc1, 0x14, 0x62, 0x1e, 0x62, 0x1e, 0x00, 0x00
-.byte 0x26, 0x15, 0x10, 0x27, 0x10, 0x27, 0x00, 0x00
-.byte 0x7c, 0xb5, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
-.byte 0xa5, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
-.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
-
-.byte 0x0d, 0x10, 0xeb, 0x05, 0xeb, 0x05, 0x00, 0x00
-.byte 0x2c, 0x14, 0x78, 0x09, 0x78, 0x09, 0x00, 0x00
-.byte 0x3c, 0x14, 0x05, 0x0d, 0x05, 0x0d, 0x00, 0x00
-.byte 0xc1, 0x14, 0x20, 0x14, 0x20, 0x14, 0x00, 0x00
-.byte 0xfd, 0x16, 0x98, 0x1d, 0x98, 0x1d, 0x00, 0x00
-.byte 0x26, 0x15, 0x10, 0x27, 0x10, 0x27, 0x00, 0x00
-.byte 0x7c, 0xb5, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
-.byte 0xa5, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
-.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
-
-.byte 0x0d, 0x10, 0x28, 0x04, 0x28, 0x04, 0x00, 0x00
-.byte 0x2c, 0x14, 0xa6, 0x06, 0xa6, 0x06, 0x00, 0x00
-.byte 0x3c, 0x14, 0x24, 0x09, 0x24, 0x09, 0x00, 0x00
-.byte 0xa7, 0x16, 0x21, 0x0e, 0x21, 0x0e, 0x00, 0x00
-.byte 0xc1, 0x14, 0x1e, 0x13, 0x1e, 0x13, 0x00, 0x00
-.byte 0xfd, 0x16, 0xc4, 0x19, 0xc4, 0x19, 0x00, 0x00
-.byte 0x26, 0x15, 0x6a, 0x20, 0x6a, 0x20, 0x00, 0x00
-.byte 0x61, 0x17, 0x10, 0x27, 0x10, 0x27, 0x00, 0x00
-.byte 0x7c, 0xb5, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
-.byte 0xa5, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
-.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
-
-.byte 0x2c, 0x14, 0x8c, 0x02, 0x8c, 0x02, 0x00, 0x00
-.byte 0x2e, 0x16, 0xf2, 0x05, 0xf2, 0x05, 0x00, 0x00
-.byte 0x3c, 0x14, 0x7e, 0x08, 0x7e, 0x08, 0x00, 0x00
-.byte 0xa7, 0x16, 0x96, 0x0d, 0x96, 0x0d, 0x00, 0x00
-.byte 0xc1, 0x14, 0xaf, 0x12, 0xaf, 0x12, 0x00, 0x00
-.byte 0xfd, 0x16, 0x7a, 0x19, 0x7a, 0x19, 0x00, 0x00
-.byte 0x26, 0x15, 0x45, 0x20, 0x45, 0x20, 0x00, 0x00
-.byte 0x61, 0x17, 0x10, 0x27, 0x10, 0x27, 0x00, 0x00
-.byte 0x7c, 0xb5, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
-.byte 0xa5, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
-.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
-
-.byte 0x2c, 0x14, 0xe8, 0x03, 0xe8, 0x03, 0x00, 0x00
-.byte 0x2e, 0x16, 0x1d, 0x09, 0x1d, 0x09, 0x00, 0x00
-.byte 0x3c, 0x14, 0x05, 0x0d, 0x05, 0x0d, 0x00, 0x00
-.byte 0xa7, 0x16, 0xd5, 0x14, 0xd5, 0x14, 0x00, 0x00
-.byte 0xc1, 0x14, 0xa5, 0x1c, 0xa5, 0x1c, 0x00, 0x00
-.byte 0x61, 0x17, 0x10, 0x27, 0x10, 0x27, 0x00, 0x00
-.byte 0x7c, 0xb5, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
-.byte 0xa5, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
-.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
-
-.byte 0x0f, 0x14, 0xbc, 0x06, 0xbc, 0x06, 0x00, 0x00
-.byte 0x2c, 0x14, 0xc7, 0x0a, 0xc7, 0x0a, 0x00, 0x00
-.byte 0x2e, 0x16, 0x2a, 0x10, 0x2a, 0x10, 0x00, 0x00
-.byte 0x3c, 0x14, 0x34, 0x14, 0x34, 0x14, 0x00, 0x00
-.byte 0xa7, 0x16, 0x49, 0x1c, 0x49, 0x1c, 0x00, 0x00
-.byte 0x61, 0x17, 0x10, 0x27, 0x10, 0x27, 0x00, 0x00
-.byte 0x7c, 0xb5, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
-.byte 0xa5, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
-.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
-
-.byte 0x0d, 0x10, 0x53, 0x07, 0x53, 0x07, 0x00, 0x00
-.byte 0x20, 0x18, 0x88, 0x13, 0x88, 0x13, 0x00, 0x00
-.byte 0x4e, 0x19, 0xbd, 0x1f, 0xbd, 0x1f, 0x00, 0x00
-.byte 0x64, 0x17, 0x10, 0x27, 0x10, 0x27, 0x00, 0x00
-.byte 0x7c, 0xb5, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
-.byte 0xa5, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
-.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
-
-.byte 0x0d, 0x10, 0x95, 0x05, 0x95, 0x05, 0x00, 0x00
-.byte 0x11, 0x16, 0xe2, 0x0e, 0xe2, 0x0e, 0x00, 0x00
-.byte 0x20, 0x18, 0x2e, 0x18, 0x2e, 0x18, 0x00, 0x00
-.byte 0x4e, 0x19, 0x7b, 0x21, 0x7b, 0x21, 0x00, 0x00
-.byte 0x64, 0x17, 0x10, 0x27, 0x10, 0x27, 0x00, 0x00
-.byte 0x7c, 0xb5, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
-.byte 0xa5, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
-.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
-
-.byte 0x0f, 0x14, 0x35, 0x05, 0x35, 0x05, 0x00, 0x00
-.byte 0x11, 0x16, 0x3b, 0x12, 0x3b, 0x12, 0x00, 0x00
-.byte 0x7d, 0x18, 0xa5, 0x1c, 0xa5, 0x1c, 0x00, 0x00
-.byte 0x03, 0x13, 0x10, 0x27, 0x10, 0x27, 0x00, 0x00
-.byte 0x7c, 0xb5, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
-.byte 0xa5, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
-.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
-
-.byte 0x0f, 0x14, 0x02, 0x06, 0x02, 0x06, 0x00, 0x00
-.byte 0x7d, 0x18, 0x07, 0x12, 0x07, 0x12, 0x00, 0x00
-.byte 0xb5, 0x18, 0x0b, 0x1b, 0x0b, 0x1b, 0x00, 0x00
-.byte 0x03, 0x13, 0x10, 0x27, 0x10, 0x27, 0x00, 0x00
-.byte 0x7c, 0xb5, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
-.byte 0xa5, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
-.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
-
-.byte 0x0f, 0x14, 0x57, 0x04, 0x57, 0x04, 0x00, 0x00
-.byte 0x7d, 0x18, 0x05, 0x0d, 0x05, 0x0d, 0x00, 0x00
-.byte 0xb5, 0x18, 0x88, 0x13, 0x88, 0x13, 0x00, 0x00
-.byte 0xe8, 0x18, 0x62, 0x1e, 0x62, 0x1e, 0x00, 0x00
-.byte 0x03, 0x13, 0x10, 0x27, 0x10, 0x27, 0x00, 0x00
-.byte 0x7c, 0xb5, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
-.byte 0xa5, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
-.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
-
-.byte 0x0f, 0x14, 0x66, 0x03, 0x66, 0x03, 0x00, 0x00
-.byte 0x7d, 0x18, 0x31, 0x0a, 0x31, 0x0a, 0x00, 0x00
-.byte 0xb5, 0x18, 0x49, 0x0f, 0x49, 0x0f, 0x00, 0x00
-.byte 0xe8, 0x18, 0xc7, 0x17, 0xc7, 0x17, 0x00, 0x00
-.byte 0x03, 0x13, 0x92, 0x1e, 0x92, 0x1e, 0x00, 0x00
-.byte 0x4f, 0x13, 0x10, 0x27, 0x10, 0x27, 0x00, 0x00
-.byte 0x7c, 0xb5, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
-.byte 0xa5, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
-.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
-
-.byte 0x3a, 0x14, 0x71, 0x07, 0x71, 0x07, 0x00, 0x00
-.byte 0xb5, 0x18, 0x05, 0x0d, 0x05, 0x0d, 0x00, 0x00
-.byte 0xe8, 0x18, 0x52, 0x16, 0x52, 0x16, 0x00, 0x00
-.byte 0x03, 0x13, 0xc3, 0x1d, 0xc3, 0x1d, 0x00, 0x00
-.byte 0x4f, 0x13, 0x10, 0x27, 0x10, 0x27, 0x00, 0x00
-.byte 0x7c, 0xb5, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
-.byte 0xa5, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
-.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
-
-.byte 0x3a, 0x14, 0x31, 0x09, 0x31, 0x09, 0x00, 0x00
-.byte 0xb5, 0x18, 0x16, 0x10, 0x16, 0x10, 0x00, 0x00
-.byte 0xe8, 0x18, 0x93, 0x1b, 0x93, 0x1b, 0x00, 0x00
-.byte 0x4f, 0x13, 0x10, 0x27, 0x10, 0x27, 0x00, 0x00
-.byte 0x7c, 0xb5, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
-.byte 0xa5, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
-.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
-
-.byte 0x3a, 0x14, 0xd0, 0x07, 0xd0, 0x07, 0x00, 0x00
-.byte 0x7d, 0x18, 0xa0, 0x0f, 0xa0, 0x0f, 0x00, 0x00
-.byte 0xb5, 0x18, 0x70, 0x17, 0x70, 0x17, 0x00, 0x00
-.byte 0xe8, 0x18, 0x40, 0x1f, 0x40, 0x1f, 0x00, 0x00
-.byte 0x4f, 0x13, 0x10, 0x27, 0x10, 0x27, 0x00, 0x00
-.byte 0x7c, 0xb5, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
-.byte 0xa5, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
-.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
-
-.byte 0x91, 0x32, 0x10, 0x27, 0x10, 0x27, 0x00, 0x00
-.byte 0x7c, 0xb5, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
-.byte 0xa5, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
-.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
-
-.byte 0x54, 0x1c, 0x95, 0x05, 0x95, 0x05, 0x00, 0x00
-.byte 0xbc, 0x1a, 0xbe, 0x10, 0xbe, 0x10, 0x00, 0x00
-.byte 0xe7, 0x1a, 0xe7, 0x1b, 0xe7, 0x1b, 0x00, 0x00
-.byte 0x00, 0x1d, 0x10, 0x27, 0x10, 0x27, 0x00, 0x00
-
-.byte 0x7c, 0xb5, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
-.byte 0xa5, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
-.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
-
-.byte 0x2d, 0x1c, 0xa0, 0x0f, 0xa0, 0x0f, 0x00, 0x00
-.byte 0x54, 0x1c, 0x70, 0x17, 0x70, 0x17, 0x00, 0x00
-.byte 0x37, 0x1d, 0x10, 0x27, 0x10, 0x27, 0x00, 0x00
-.byte 0x7c, 0xb5, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
-.byte 0xa5, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
-.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
-
-.byte 0x2d, 0x1c, 0xc4, 0x09, 0xc4, 0x09, 0x00, 0x00
-.byte 0xc6, 0x1c, 0x88, 0x13, 0x88, 0x13, 0x00, 0x00
-.byte 0x37, 0x1d, 0x4c, 0x1d, 0x4c, 0x1d, 0x00, 0x00
-.byte 0x65, 0x1d, 0x10, 0x27, 0x10, 0x27, 0x00, 0x00
-.byte 0x7c, 0xb5, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
-.byte 0xa5, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
-.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
-
-.byte 0x2d, 0x1c, 0xd0, 0x07, 0xd0, 0x07, 0x00, 0x00
-.byte 0xa4, 0x1c, 0xa0, 0x0f, 0xa0, 0x0f, 0x00, 0x00
-.byte 0xc6, 0x1c, 0x70, 0x17, 0x70, 0x17, 0x00, 0x00
-.byte 0x37, 0x1d, 0x40, 0x1f, 0x40, 0x1f, 0x00, 0x00
-.byte 0x65, 0x1d, 0x10, 0x27, 0x10, 0x27, 0x00, 0x00
-.byte 0x7c, 0xb5, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
-.byte 0xa5, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
-.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
-
-.byte 0xa4, 0x1c, 0xc4, 0x09, 0xc4, 0x09, 0x00, 0x00, 0xc6, 0x1c, 0x88, 0x13, 0x88, 0x13, 0x00, 0x00, 0xef, 0x1c, 0x4c, 0x1d, 0x4c, 0x1d, 0x00, 0x00, 0x65, 0x1d, 0x10, 0x27
-.byte 0x10, 0x27, 0x00, 0x00, 0x7c, 0xb5, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xa5, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xa4, 0x1c, 0xc4, 0x09
-.byte 0xc4, 0x09, 0x00, 0x00, 0xa8, 0x1c, 0x88, 0x13, 0x88, 0x13, 0x00, 0x00, 0xef, 0x1c, 0x4c, 0x1d, 0x4c, 0x1d, 0x00, 0x00, 0x65, 0x1d, 0x10, 0x27, 0x10, 0x27, 0x00, 0x00, 0x7c, 0xb5, 0x00, 0x00
-.byte 0x00, 0x00, 0x00, 0x00, 0xa5, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xa8, 0x1c, 0x88, 0x13, 0x88, 0x13, 0x00, 0x00, 0xef, 0x1c, 0x10, 0x27
-.byte 0x10, 0x27, 0x00, 0x00, 0x7c, 0xb5, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xa5, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x1e, 0x05, 0x0c
-.byte 0x05, 0x0c, 0x00, 0x00, 0xa8, 0x1c, 0x0a, 0x18, 0x0a, 0x18, 0x00, 0x00, 0xfe, 0x1e, 0x10, 0x27, 0x10, 0x27, 0x00, 0x00, 0x7c, 0xb5, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xa5, 0x03, 0x00, 0x00
-.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x1e, 0x5c, 0x11, 0x5c, 0x11, 0x00, 0x00, 0xfe, 0x1e, 0x10, 0x27, 0x10, 0x27, 0x00, 0x00, 0x7c, 0xb5, 0x00, 0x00
-.byte 0x00, 0x00, 0x00, 0x00, 0xa5, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x29, 0x22, 0x88, 0x13, 0x88, 0x13, 0x00, 0x00, 0x3b, 0x1d, 0x10, 0x27
-.byte 0x10, 0x27, 0x00, 0x00, 0x7c, 0xb5, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xa5, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x1e, 0x05, 0x0d
-.byte 0x05, 0x0d, 0x00, 0x00, 0x21, 0x1e, 0x0b, 0x1a, 0x0b, 0x1a, 0x00, 0x00, 0x3b, 0x1d, 0x10, 0x27, 0x10, 0x27, 0x00, 0x00, 0x7c, 0xb5, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xa5, 0x03, 0x00, 0x00
-.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x1e, 0x05, 0x0d, 0x05, 0x0d, 0x00, 0x00, 0x21, 0x1e, 0x0b, 0x1a, 0x0b, 0x1a, 0x00, 0x00, 0x53, 0x1f, 0x10, 0x27
-.byte 0x10, 0x27, 0x00, 0x00, 0x7c, 0xb5, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xa5, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x72, 0x1c, 0x88, 0x13
-.byte 0x88, 0x13, 0x00, 0x00, 0x7c, 0xb5, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x8f, 0x21, 0x10, 0x27, 0x10, 0x27, 0x00, 0x00, 0xa5, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
-.byte 0x00, 0x00, 0x00, 0x00, 0x2a, 0x14, 0x05, 0x0d, 0x05, 0x0d, 0x00, 0x00, 0x72, 0x1c, 0x0b, 0x1a, 0x0b, 0x1a, 0x00, 0x00, 0x7c, 0xb5, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x8f, 0x21, 0x10, 0x27
-.byte 0x10, 0x27, 0x00, 0x00, 0xa5, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x2a, 0x14, 0x88, 0x13, 0x88, 0x13, 0x00, 0x00, 0x7c, 0xb5, 0x00, 0x00
-.byte 0x00, 0x00, 0x00, 0x00, 0x8f, 0x21, 0x10, 0x27, 0x10, 0x27, 0x00, 0x00, 0xa5, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x2a, 0x14, 0x10, 0x27
-.byte 0x10, 0x27, 0x00, 0x00, 0x7c, 0xb5, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xa5, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x12, 0x20, 0x29, 0x0b
-.byte 0x29, 0x0b, 0x00, 0x00, 0xf3, 0x20, 0xbe, 0x10, 0xbe, 0x10, 0x00, 0x00, 0x09, 0x23, 0xe7, 0x1b, 0xe7, 0x1b, 0x00, 0x00, 0x5b, 0x1d, 0x10, 0x27, 0x10, 0x27, 0x00, 0x00, 0x7c, 0xb5, 0x00, 0x00
-.byte 0x00, 0x00, 0x00, 0x00, 0xa5, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf3, 0x20, 0xd0, 0x07, 0xd0, 0x07, 0x00, 0x00, 0x09, 0x23, 0x70, 0x17
-.byte 0x70, 0x17, 0x00, 0x00, 0x5b, 0x1d, 0x10, 0x27, 0x10, 0x27, 0x00, 0x00, 0x7c, 0xb5, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xa5, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
-.byte 0x00, 0x00, 0x00, 0x00, 0xee, 0x1e, 0x18, 0x05, 0x18, 0x05, 0x00, 0x00, 0xf3, 0x20, 0xe3, 0x0b, 0xe3, 0x0b, 0x00, 0x00, 0x09, 0x23, 0x7a, 0x19, 0x7a, 0x19, 0x00, 0x00, 0x5b, 0x1d, 0x10, 0x27
-.byte 0x10, 0x27, 0x00, 0x00, 0x7c, 0xb5, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xa5, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xee, 0x1e, 0xd0, 0x07
+.byte 0xee, 0x1e, 0xd0, 0x07
.byte 0xd0, 0x07, 0x00, 0x00, 0xf3, 0x20, 0x3b, 0x12, 0x3b, 0x12, 0x00, 0x00, 0x5b, 0x1d, 0x10, 0x27, 0x10, 0x27, 0x00, 0x00, 0x7c, 0xb5, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xa5, 0x03, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xee, 0x1e, 0xd0, 0x07, 0xd0, 0x07, 0x00, 0x00, 0xf3, 0x20, 0x3b, 0x12, 0x3b, 0x12, 0x00, 0x00, 0x5d, 0x1f, 0x10, 0x27
.byte 0x10, 0x27, 0x00, 0x00, 0x7c, 0xb5, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xa5, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x4e, 0x14, 0x96, 0x0d
@@ -1919,19 +1561,104 @@
.global DungeonPokemonFoundTable
DungeonPokemonFoundTable:
-.byte 0x64, 0x60, 0x4b, 0x08
-.byte 0x94, 0x60, 0x4b, 0x08, 0xcc, 0x60, 0x4b, 0x08, 0xfc, 0x60, 0x4b, 0x08, 0x34, 0x61, 0x4b, 0x08, 0x6c, 0x61, 0x4b, 0x08, 0xa4, 0x61, 0x4b, 0x08, 0xe4, 0x61, 0x4b, 0x08, 0x24, 0x62, 0x4b, 0x08
-.byte 0x6c, 0x62, 0x4b, 0x08, 0xa4, 0x62, 0x4b, 0x08, 0xd4, 0x62, 0x4b, 0x08, 0x0c, 0x63, 0x4b, 0x08, 0x4c, 0x63, 0x4b, 0x08, 0x94, 0x63, 0x4b, 0x08, 0xcc, 0x63, 0x4b, 0x08, 0x0c, 0x64, 0x4b, 0x08
-.byte 0x44, 0x64, 0x4b, 0x08, 0x84, 0x64, 0x4b, 0x08, 0xd4, 0x64, 0x4b, 0x08, 0x14, 0x65, 0x4b, 0x08, 0x4c, 0x65, 0x4b, 0x08, 0x7c, 0x65, 0x4b, 0x08, 0xbc, 0x65, 0x4b, 0x08, 0xf4, 0x65, 0x4b, 0x08
-.byte 0x3c, 0x66, 0x4b, 0x08, 0x94, 0x66, 0x4b, 0x08, 0xec, 0x66, 0x4b, 0x08, 0x34, 0x67, 0x4b, 0x08, 0x7c, 0x67, 0x4b, 0x08, 0xb4, 0x67, 0x4b, 0x08, 0xf4, 0x67, 0x4b, 0x08, 0x2c, 0x68, 0x4b, 0x08
-.byte 0x64, 0x68, 0x4b, 0x08, 0xa4, 0x68, 0x4b, 0x08, 0xec, 0x68, 0x4b, 0x08, 0x2c, 0x69, 0x4b, 0x08, 0x64, 0x69, 0x4b, 0x08, 0xa4, 0x69, 0x4b, 0x08, 0xc4, 0x69, 0x4b, 0x08, 0xfc, 0x69, 0x4b, 0x08
-.byte 0x2c, 0x6a, 0x4b, 0x08, 0x64, 0x6a, 0x4b, 0x08, 0xa4, 0x6a, 0x4b, 0x08, 0xdc, 0x6a, 0x4b, 0x08, 0x14, 0x6b, 0x4b, 0x08, 0x3c, 0x6b, 0x4b, 0x08, 0x6c, 0x6b, 0x4b, 0x08, 0x94, 0x6b, 0x4b, 0x08
-.byte 0xbc, 0x6b, 0x4b, 0x08, 0xec, 0x6b, 0x4b, 0x08, 0x1c, 0x6c, 0x4b, 0x08, 0x44, 0x6c, 0x4b, 0x08, 0x74, 0x6c, 0x4b, 0x08, 0x9c, 0x6c, 0x4b, 0x08, 0xbc, 0x6c, 0x4b, 0x08, 0xf4, 0x6c, 0x4b, 0x08
-.byte 0x24, 0x6d, 0x4b, 0x08, 0x5c, 0x6d, 0x4b, 0x08, 0x8c, 0x6d, 0x4b, 0x08, 0xbc, 0x6d, 0x4b, 0x08, 0xf4, 0x6d, 0x4b, 0x08, 0x24, 0x6e, 0x4b, 0x08, 0x4c, 0x6e, 0x4b, 0x08, 0x6c, 0x6e, 0x4b, 0x08
-.byte 0x94, 0x6e, 0x4b, 0x08, 0xc4, 0x6e, 0x4b, 0x08, 0xfc, 0x6e, 0x4b, 0x08, 0x2c, 0x6f, 0x4b, 0x08, 0x5c, 0x6f, 0x4b, 0x08, 0x94, 0x6f, 0x4b, 0x08, 0xbc, 0x6f, 0x4b, 0x08, 0xdc, 0x6f, 0x4b, 0x08
-.byte 0x0c, 0x70, 0x4b, 0x08, 0x4c, 0x70, 0x4b, 0x08, 0x7c, 0x70, 0x4b, 0x08, 0xb4, 0x70, 0x4b, 0x08, 0xe4, 0x70, 0x4b, 0x08, 0x14, 0x71, 0x4b, 0x08, 0x3c, 0x71, 0x4b, 0x08, 0x5c, 0x71, 0x4b, 0x08
-.byte 0x94, 0x71, 0x4b, 0x08, 0xcc, 0x71, 0x4b, 0x08, 0xfc, 0x71, 0x4b, 0x08, 0x34, 0x72, 0x4b, 0x08, 0x5c, 0x72, 0x4b, 0x08, 0x94, 0x72, 0x4b, 0x08, 0xd4, 0x72, 0x4b, 0x08, 0x0c, 0x73, 0x4b, 0x08
-.byte 0x3c, 0x73, 0x4b, 0x08, 0x64, 0x73, 0x4b, 0x08, 0x94, 0x73, 0x4b, 0x08, 0xcc, 0x73, 0x4b, 0x08, 0xf4, 0x73, 0x4b, 0x08, 0x14, 0x74, 0x4b, 0x08, 0x3c, 0x74, 0x4b, 0x08, 0x64, 0x74, 0x4b, 0x08
+.4byte TinyWoods1F_2F_Pokemon
+.4byte TinyWoods3F_Pokemon
+.4byte ThunderwaveCave_1F_2F_Pokemon
+.4byte ThunderwaveCave_3F_Pokemon
+.4byte ThunderwaveCave_4F_5F_Pokemon
+.4byte MtSteel_1F_4F_Pokemon
+.4byte MtSteel_5F_Pokemon
+.4byte MtSteel_6F_Pokemon
+.4byte MtSteel_7F_8F_Pokemon
+.4byte MtSteel_9F_Pokemon
+.4byte SinisterWoods_1F_Pokemon
+.4byte SinisterWoods_2F_Pokemon
+.4byte SinisterWoods_3F_Pokemon
+.4byte SinisterWoods_4F_Pokemon
+.4byte SinisterWoods_5F_Pokemon
+.4byte SinisterWoods_6F_Pokemon
+.4byte SinisterWoods_7F_Pokemon
+.4byte SinisterWoods_8F_9F_Pokemon
+.4byte SinisterWoods_10F_Pokemon
+.4byte SinisterWoods_11F_Pokemon
+.4byte SinisterWoods_12F_Pokemon
+.4byte SinisterWoods_13F_Pokemon
+.4byte SilentChasm_1F_3F_Pokemon
+.4byte SilentChasm_4F_Pokemon
+.4byte SilentChasm_5F_Pokemon
+.4byte SilentChasm_6F_Pokemon
+.4byte SilentChasm_7F_Pokemon
+.4byte SilentChasm_8F_Pokemon
+.4byte SilentChasm_9F_Pokemon
+.4byte MtThunder_1F_Pokemon
+.4byte MtThunder_2F_4F_Pokemon
+.4byte MtThunder_5F_Pokemon
+.4byte MtThunder_6F_Pokemon
+.4byte MtThunder_7F_Pokemon
+.4byte MtThunder_8F_Pokemon
+.4byte MtThunder_9F_Pokemon
+.4byte MtThunder_10F_Pokemon
+.4byte MtThunderPeak_1F_2F_Pokemon
+.4byte MtThunderPeak_3F_Pokemon
+.4byte GreatCanyon_1F_3F_Pokemon
+.4byte GreatCanyon_4F_Pokemon
+.4byte GreatCanyon_5F_Pokemon
+.4byte GreatCanyon_6F_Pokemon
+.4byte GreatCanyon_7F_Pokemon
+.4byte GreatCanyon_8F_Pokemon
+.4byte GreatCanyon_9F_Pokemon
+.4byte GreatCanyon_10F_11F_Pokemon
+.4byte GreatCanyon_12F_Pokemon
+.4byte LapisCave_1F_3F_Pokemon
+.4byte LapisCave_4F_Pokemon
+.4byte LapisCave_5F_8F_Pokemon
+.4byte LapisCave_9F_10F_Pokemon
+.4byte LapisCave_11F_12F_Pokemon
+.4byte LapisCave_13F_Pokemon
+.4byte LapisCave_14F_Pokemon
+
+.byte 0xbc, 0x6c, 0x4b, 0x08
+.byte 0xf4, 0x6c, 0x4b, 0x08
+.byte 0x24, 0x6d, 0x4b, 0x08
+.byte 0x5c, 0x6d, 0x4b, 0x08
+.byte 0x8c, 0x6d, 0x4b, 0x08
+.byte 0xbc, 0x6d, 0x4b, 0x08
+.byte 0xf4, 0x6d, 0x4b, 0x08
+.byte 0x24, 0x6e, 0x4b, 0x08
+.byte 0x4c, 0x6e, 0x4b, 0x08
+.byte 0x6c, 0x6e, 0x4b, 0x08
+.byte 0x94, 0x6e, 0x4b, 0x08
+.byte 0xc4, 0x6e, 0x4b, 0x08
+.byte 0xfc, 0x6e, 0x4b, 0x08
+.byte 0x2c, 0x6f, 0x4b, 0x08
+.byte 0x5c, 0x6f, 0x4b, 0x08
+.byte 0x94, 0x6f, 0x4b, 0x08
+.byte 0xbc, 0x6f, 0x4b, 0x08
+.byte 0xdc, 0x6f, 0x4b, 0x08
+.byte 0x0c, 0x70, 0x4b, 0x08
+.byte 0x4c, 0x70, 0x4b, 0x08
+.byte 0x7c, 0x70, 0x4b, 0x08
+.byte 0xb4, 0x70, 0x4b, 0x08
+.byte 0xe4, 0x70, 0x4b, 0x08
+.byte 0x14, 0x71, 0x4b, 0x08
+.byte 0x3c, 0x71, 0x4b, 0x08
+.byte 0x5c, 0x71, 0x4b, 0x08
+.byte 0x94, 0x71, 0x4b, 0x08
+.byte 0xcc, 0x71, 0x4b, 0x08
+.byte 0xfc, 0x71, 0x4b, 0x08
+.byte 0x34, 0x72, 0x4b, 0x08
+.byte 0x5c, 0x72, 0x4b, 0x08
+.byte 0x94, 0x72, 0x4b, 0x08
+.byte 0xd4, 0x72, 0x4b, 0x08
+.byte 0x0c, 0x73, 0x4b, 0x08
+.byte 0x3c, 0x73, 0x4b, 0x08
+.byte 0x64, 0x73, 0x4b, 0x08
+.byte 0x94, 0x73, 0x4b, 0x08
+.byte 0xcc, 0x73, 0x4b, 0x08
+.byte 0xf4, 0x73, 0x4b, 0x08
+.byte 0x14, 0x74, 0x4b, 0x08
+.byte 0x3c, 0x74, 0x4b, 0x08
+.byte 0x64, 0x74, 0x4b, 0x08
.byte 0x8c, 0x74, 0x4b, 0x08, 0xcc, 0x74, 0x4b, 0x08, 0x04, 0x75, 0x4b, 0x08, 0x34, 0x75, 0x4b, 0x08, 0x64, 0x75, 0x4b, 0x08, 0x9c, 0x75, 0x4b, 0x08, 0xdc, 0x75, 0x4b, 0x08, 0x1c, 0x76, 0x4b, 0x08
.byte 0x5c, 0x76, 0x4b, 0x08, 0x94, 0x76, 0x4b, 0x08, 0xcc, 0x76, 0x4b, 0x08, 0x0c, 0x77, 0x4b, 0x08, 0x4c, 0x77, 0x4b, 0x08, 0x84, 0x77, 0x4b, 0x08, 0xcc, 0x77, 0x4b, 0x08, 0xec, 0x77, 0x4b, 0x08
.byte 0x3c, 0x78, 0x4b, 0x08, 0x7c, 0x78, 0x4b, 0x08, 0xc4, 0x78, 0x4b, 0x08, 0xfc, 0x78, 0x4b, 0x08, 0x44, 0x79, 0x4b, 0x08, 0x8c, 0x79, 0x4b, 0x08, 0xcc, 0x79, 0x4b, 0x08, 0x0c, 0x7a, 0x4b, 0x08
diff --git a/data/dungeon/trappat.inc b/data/dungeon/trappat.inc
index d9767bb..1cd295c 100644
--- a/data/dungeon/trappat.inc
+++ b/data/dungeon/trappat.inc
@@ -1,7 +1,13 @@
.global Trappat_SIRO
Trappat_SIRO:
.string "SIRO"
-.byte 0xa0, 0x45, 0x4f, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x05, 0x01, 0x00, 0x00
+.4byte trappat_table
+.byte 0x00, 0x00, 0x00, 0x00
+.byte 0x00, 0x00, 0x00, 0x00
+
+.global trappat
+trappat:
+.byte 0x05, 0x01, 0x00, 0x00
.byte 0x34, 0x33, 0x33, 0x33, 0x45, 0x44, 0x44, 0x44, 0x45, 0x56, 0x44, 0x44, 0x45, 0x45, 0x44, 0x44, 0x45, 0x44, 0x44, 0x44, 0x45, 0x44, 0x44, 0x64, 0x45, 0x44, 0x44, 0x76, 0x45, 0x44, 0x54, 0x76
.byte 0x33, 0x33, 0x33, 0x33, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x65, 0x77, 0x67, 0x56, 0x76, 0x77, 0x77, 0x67, 0x77, 0x77, 0x77, 0x67, 0xf7, 0xff, 0x67, 0x56
.byte 0x33, 0x33, 0x33, 0x33, 0x44, 0x44, 0x44, 0x34, 0x44, 0x44, 0x65, 0x34, 0x44, 0x44, 0x54, 0x34, 0x44, 0x44, 0x44, 0x34, 0x56, 0x44, 0x44, 0x34, 0x55, 0x45, 0x44, 0x34, 0x66, 0x35, 0x43, 0x34
@@ -267,4 +273,8 @@ Trappat_SIRO:
.byte 0x57, 0x2f, 0x7f, 0xff, 0x87, 0x6f, 0x97, 0xff, 0x9f, 0x4f, 0x4f, 0xff, 0xd7, 0x5f, 0x5f, 0xff, 0xff, 0x8f, 0x87, 0xff, 0xdf, 0xb7, 0x00, 0xff, 0xff, 0xdf, 0x6f, 0xff, 0xef, 0xf7, 0xe7, 0xff
.byte 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, 0x00, 0xff, 0x1f, 0x1f, 0x1f, 0xff, 0x3f, 0x37, 0x47, 0xff, 0x67, 0x5f, 0x67, 0xff, 0x87, 0x87, 0x87, 0xff, 0xaf, 0xaf, 0xa7, 0xff, 0xcf, 0xd7, 0xc7, 0xff
.byte 0x4f, 0x97, 0x4f, 0xff, 0x47, 0xb7, 0x47, 0xff, 0x9f, 0x57, 0x0f, 0xff, 0xbf, 0x67, 0x17, 0xff, 0xdf, 0x77, 0x1f, 0xff, 0x7f, 0xff, 0x8f, 0xff, 0xb7, 0xe7, 0xf7, 0xff, 0xef, 0xf7, 0xe7, 0xff
-.byte 0x7c, 0x24, 0x4f, 0x08, 0x20, 0x45, 0x4f, 0x08
+
+.global trappat_table
+trappat_table:
+.4byte trappat
+.byte 0x20, 0x45, 0x4f, 0x08
diff --git a/data/dungeon/zmappat.inc b/data/dungeon/zmappat.inc
index d8632dc..a3c8ecc 100644
--- a/data/dungeon/zmappat.inc
+++ b/data/dungeon/zmappat.inc
@@ -1,7 +1,7 @@
.global Zmappat_SIRO
Zmappat_SIRO:
.string "SIRO"
-.byte 0xf8, 0x11, 0x50, 0x08
+.4byte zmappat_table
.byte 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00
@@ -1680,5 +1680,8 @@ Zmappat_SIRO:
.byte 0x37, 0xa7, 0x2f, 0xff, 0x00, 0x00, 0x00, 0x00
.byte 0xe7, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe7, 0x07, 0x00, 0x00, 0xe7, 0xe7, 0x00, 0xe7, 0xe7, 0x00, 0x00, 0xff, 0xff, 0xff, 0x00, 0xaf, 0xaf, 0xaf, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x67, 0x00, 0x00, 0x00, 0xe7, 0x00, 0x00, 0x00, 0x00, 0x00
+
+.global zmapat_table
+zmappat_table:
.byte 0xb8, 0x05, 0x50, 0x08
.byte 0xb8, 0x11, 0x50, 0x08
diff --git a/data/dungeon_sbin.s b/data/dungeon_sbin.s
index 170f716..efe6f64 100644
--- a/data/dungeon_sbin.s
+++ b/data/dungeon_sbin.s
@@ -571,57 +571,57 @@ StartOfDungeonTable:
.4byte PartnerConversion18SIRO
.byte 0x58, 0x0f, 0x3b, 0x08
.4byte PartnerConversion19SIRO
-.byte 0x50, 0x0f, 0x3b, 0x08
+.4byte talkp2_string
.4byte PartnerConversion2SIRO
-.byte 0x48, 0x0f, 0x3b, 0x08
+.4byte talkp20_string
.4byte PartnerConversion20SIRO
-.byte 0x40, 0x0f, 0x3b, 0x08
+.4byte talkp21_string
.4byte PartnerConversion21SIRO
-.byte 0x38, 0x0f, 0x3b, 0x08
+.4byte talkp22_string
.4byte PartnerConversion22SIRO
-.byte 0x30, 0x0f, 0x3b, 0x08
+.4byte talkp23_string
.4byte PartnerConversion23SIRO
-.byte 0x28, 0x0f, 0x3b, 0x08
+.4byte talkp24_string
.4byte PartnerConversion24SIRO
-.byte 0x20, 0x0f, 0x3b, 0x08
+.4byte talkp25_string
.4byte PartnerConversion25SIRO
-.byte 0x18, 0x0f, 0x3b, 0x08
+.4byte talkp26_string
.4byte PartnerConversion26SIRO
-.byte 0x10, 0x0f, 0x3b, 0x08
+.4byte talkp27_string
.4byte PartnerConversion27SIRO
-.byte 0x08, 0x0f, 0x3b, 0x08
+.4byte talkp28_string
.4byte PartnerConversion28SIRO
-.byte 0x00, 0x0f, 0x3b, 0x08
+.4byte talkp29_string
.4byte PartnerConversion29SIRO
-.byte 0xf8, 0x0e, 0x3b, 0x08
+.4byte talkp3_string
.4byte PartnerConversion3SIRO
-.byte 0xf0, 0x0e, 0x3b, 0x08
+.4byte talkp30_string
.4byte PartnerConversion30SIRO
-.byte 0xe8, 0x0e, 0x3b, 0x08
+.4byte talkp31_string
.4byte PartnerConversion31SIRO
-.byte 0xe0, 0x0e, 0x3b, 0x08
+.4byte talkp32_string
.4byte PartnerConversion32SIRO
-.byte 0xd8, 0x0e, 0x3b, 0x08
+.4byte talkp33_string
.4byte PartnerConversion33SIRO
-.byte 0xd0, 0x0e, 0x3b, 0x08
+.4byte talkp34_string
.4byte PartnerConversion34SIRO
-.byte 0xc8, 0x0e, 0x3b, 0x08
+.4byte talkp35_string
.4byte PartnerConversion35SIRO
-.byte 0xc0, 0x0e, 0x3b, 0x08
+.4byte talkp36_string
.4byte PartnerConversion36SIRO
-.byte 0xb8, 0x0e, 0x3b, 0x08
+.4byte talkp37_string
.4byte PartnerConversion37SIRO
-.byte 0xb0, 0x0e, 0x3b, 0x08
+.4byte talkp38_string
.4byte PartnerConversion38SIRO
-.byte 0xa8, 0x0e, 0x3b, 0x08
+.4byte talkp39_string
.4byte PartnerConversion39SIRO
-.byte 0xa0, 0x0e, 0x3b, 0x08
+.4byte talkp4_string
.4byte PartnerConversion4SIRO
-.byte 0x98, 0x0e, 0x3b, 0x08
+.4byte talkp40_string
.4byte PartnerConversion40SIRO
-.byte 0x90, 0x0e, 0x3b, 0x08
+.4byte talkp41_string
.4byte PartnerConversion41SIRO
-.byte 0x88, 0x0e, 0x3b, 0x08
+.4byte talkp42_string
.4byte PartnerConversion42SIRO
.4byte talkp5_string
.4byte PartnerConversion5SIRO
@@ -671,35 +671,87 @@ talkp5_string:
.string "talkp5\0"
.align 2,0
+.global talkp42_string
+talkp42_string:
.string "talkp42\0"
+.global talkp41_string
+talkp41_string:
.string "talkp41\0"
+.global talkp40_string
+talkp40_string:
.string "talkp40\0"
+.global talkp4_string
+talkp4_string:
.string "talkp4\0"
.align 2,0
+.global talkp39_string
+talkp39_string:
.string "talkp39\0"
+.global talkp38_string
+talkp38_string:
.string "talkp38\0"
+.global talkp37_string
+talkp37_string:
.string "talkp37\0"
+.global talkp36_string
+talkp36_string:
.string "talkp36\0"
+.global talkp35_string
+talkp35_string:
.string "talkp35\0"
+.global talkp34_string
+talkp34_string:
.string "talkp34\0"
+.global talkp33_string
+talkp33_string:
.string "talkp33\0"
+.global talkp32_string
+talkp32_string:
.string "talkp32\0"
+.global talkp31_string
+talkp31_string:
.string "talkp31\0"
+.global talkp30_string
+talkp30_string:
.string "talkp30\0"
+.global talkp3_string
+talkp3_string:
.string "talkp3\0"
.align 2,0
+.global talkp29_string
+talkp29_string:
.string "talkp29\0"
+.global talkp28_string
+talkp28_string:
.string "talkp28\0"
+.global talkp27_string
+talkp27_string:
.string "talkp27\0"
+.global talkp26_string
+talkp26_string:
.string "talkp26\0"
+.global talkp25_string
+talkp25_string:
.string "talkp25\0"
+.global talkp24_string
+talkp24_string:
.string "talkp24\0"
+.global talkp23_string
+talkp23_string:
.string "talkp23\0"
+.global talkp22_string
+talkp22_string:
.string "talkp22\0"
+.global talkp21_string
+talkp21_string:
.string "talkp21\0"
+.global talkp20_string
+talkp20_string:
.string "talkp20\0"
+.global talkp2_string
+talkp2_string:
.string "talkp2\0"
.align 2,0
@@ -812,17 +864,30 @@ talkp5_string:
.string "talk0\0"
.align 2,0
-.byte 0x6d, 0x61, 0x70, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x00, 0x00, 0x00, 0x00
-.byte 0x6c, 0x65, 0x76, 0x66, 0x6f, 0x6e, 0x74, 0x00
-.byte 0x6a, 0x79, 0x6f, 0x63, 0x68, 0x75, 0x00, 0x00
-.byte 0x69, 0x74, 0x65, 0x6d, 0x70, 0x61, 0x74, 0x00
-.byte 0x68, 0x70, 0x35, 0x66, 0x6f, 0x6e, 0x74, 0x00
-.byte 0x66, 0x69, 0x78, 0x65, 0x64, 0x6d, 0x61, 0x70, 0x00, 0x00, 0x00, 0x00
-.byte 0x65, 0x74, 0x63, 0x66, 0x6f, 0x6e, 0x74, 0x61, 0x00, 0x00, 0x00, 0x00
-.byte 0x65, 0x74, 0x63, 0x66, 0x6f, 0x6e, 0x74, 0x00
-.byte 0x63, 0x6f, 0x6c, 0x76, 0x65, 0x63, 0x00, 0x00
-.byte 0x62, 0x61, 0x6e, 0x72, 0x70, 0x61, 0x6c, 0x00
-.byte 0x62, 0x61, 0x6e, 0x66, 0x6f, 0x6e, 0x74, 0x00
+.string "mapparam\0"
+.align 2,0
+.string "levfont\0"
+.align 2,0
+.string "jyochu\0"
+.align 2,0
+.string "itempat\0"
+.align 2,0
+.string "hp5font\0"
+.align 2,0
+.string "fixedmap\0"
+.align 2,0
+.string "etcfonta\0"
+.align 2,0
+.string "etcfont\0"
+.align 2,0
+.string "colvec\0"
+.align 2,0
+.string "banrpal\0"
+.align 2,0
+.string "banfont\0"
+.align 2,0
+
+@ B__ Groups
.byte 0x62, 0x37, 0x35, 0x70, 0x61, 0x6c, 0x00, 0x00
.byte 0x62, 0x37, 0x35, 0x66, 0x6f, 0x6e, 0x00, 0x00
.byte 0x62, 0x37, 0x35, 0x65, 0x6d, 0x61, 0x70, 0x30, 0x00, 0x00, 0x00, 0x00
diff --git a/data/text/wonder_mail_4.inc b/data/text/wonder_mail_4.inc
deleted file mode 100644
index b1b2c12..0000000
--- a/data/text/wonder_mail_4.inc
+++ /dev/null
@@ -1,207 +0,0 @@
-gUnknown_80E0C4C:: @ 80E0C4C
- .string " So~2c what~27d you want to\n"
- .string "know?\0"
- .align 2, 0
-
-gUnknown_80E0C70:: @ 80E0C70
- .string " If you need to call for\n"
- .string "help~2c first send your friend\n"
- .string "an #CGSOS Mail#R.#P"
- .string " Once you send that mail~2c\n"
- .string "wait until your friend sends you back\n"
- .string "an #CGA-OK Mail#R.#P"
- .string " When you get that\n"
- .string "#CGA-OK Mail#R back~2c your team\n"
- .string "can continue from where it went down.#P"
- .string " Make sure you send your\n"
- .string "friend a #CGThank-You Mail#R.\n"
- .string "That~27s if you get revived~2c of course.\0"
- .align 2, 0
-
-gUnknown_80E0DD0:: @ 80E0DD0
- .string " If your team gets defeated\n"
- .string "in a dungeon~2c you can send an #CGSOS Mail#R\n"
- .string "to a friend willing to help.#P"
- .string " But I have to warn you.\n"
- .string "You can~27t get anyone to rescue you\n"
- .string "in certain places.#P"
- .string " If you need to send\n"
- .string "an #CGSOS Mail#R~2c you send it from the\n"
- .string "#CGmain menu#R.\0"
- .align 2, 0
-
-gUnknown_80E0ED8:: @ 80E0ED8
- .string " If your friend manages to\n"
- .string "rescue your team~2c you need to receive\n"
- .string "an #CGA-OK Mail#R from your friend.#P"
- .string " See~2c once you get that\n"
- .string "#CGA-OK Mail#R~2c your team can continue from\n"
- .string "where it went down in the dungeon.#P"
- .string " And~2c if you use\n"
- .string "a #CGGame Link cable#R~2c your friend can\n"
- .string "even send you a #CGhelper Pokémon#R.#P"
- .string " There~27s just one thing.\n"
- .string "A #CGhelper Pokémon#R can~27t bring\n"
- .string "any item it happens to be holding.#P"
- .string " You can receive that\n"
- .string "team-saving #CGA-OK Mail#R on the #CGmain menu#R~2c\n"
- .string "all right?\0"
- .align 2, 0
-
-gUnknown_80E10C8:: @ 80E10C8
- .string " If your team gets rescued~2c\n"
- .string "be sure to send your friend\n"
- .string "a #CGThank-You Mail#R.#P"
- .string " You do that by going to\n"
- .string "the #CGright counter#R~2c or\n"
- .string "by selecting it from the #CGmain menu#R.#P"
- .string " You can attach an item in\n"
- .string "storage to your #CGThank-You Mail#R\n"
- .string "as a #CGreward item#R.#P"
- .string " You don~27t want to ever\n"
- .string "forget to express your thanks.\0"
- .align 2, 0
-
-gUnknown_80E120C:: @ 80E120C
- .string " If you want to go and\n"
- .string "rescue your friend~27s KO~27d team~2c\n"
- .string "you need to receive an #CGSOS Mail#R.#P"
- .string " When you get that mail~2c\n"
- .string "you can rescue your friend at\n"
- .string "the #CGleft counter#R over there.#P"
- .string " If you do manage to rescue\n"
- .string "the team~2c you send your friend\n"
- .string "an #CGA-OK Mail#R.#P"
- .string " After you do that~2c your\n"
- .string "friend can send back to you\n"
- .string "a #CGThank-You Mail#R.\0"
- .align 2, 0
-
-gUnknown_80E136C:: @ 80E136C
- .string " To go off on a rescue~2c\n"
- .string "you first need to receive your friend~27s\n"
- .string "#CGSOS Mail#R.#P"
- .string " You do that at\n"
- .string "the #CGleft counter#R over there~2c\n"
- .string "or by selecting it from the #CGmain menu#R.\0"
- .align 2, 0
-
-gUnknown_80E1420:: @ 80E1420
- .string " If you succeed in rescuing\n"
- .string "that team~2c you send your friend an\n"
- .string "#CGA-OK Mail#R.#P"
- .string " You do that by going to\n"
- .string "the #CGleft counter#R~2c\n"
- .string "or from the #CGmain menu#R.#P"
- .string " You can send your friend\n"
- .string "a Pokémon as a helper from your Friend\n"
- .string "Areas using a #CGGame Link cable#R.#P"
- .string " This Pokémon won~27t\n"
- .string "disappear from its Friend Area~2c so\n"
- .string "don~27t you worry any.\0"
- .align 2, 0
-
-gUnknown_80E157C:: @ 80E157C
- .string " If you get an #CGSOS Mail#R~2c\n"
- .string "you head off on the rescue from\n"
- .string "the #CGleft counter#R.#P"
- .string " But~2c I have to warn you.\n"
- .string "You can~27t go off to rescue in a dungeon\n"
- .string "if you can~27t get into it.#P"
- .string " You~27ll be able to get\n"
- .string "there when you go farther in your\n"
- .string "adventure~2c so it won~27t do to fret.\0"
- .align 2, 0
-
-gUnknown_80E169C:: @ 80E169C
- .string " If you send your friend\n"
- .string "an #CGA-OK Mail#R~2c you can look forward\n"
- .string "to getting a #CGThank-You Mail#R back.#P"
- .string " You can receive it at\n"
- .string "the #CGright counter#R\n"
- .string "or on the #CGmain menu#R.#P"
- .string " But you need to #C2be careful#R.\n"
- .string "You #C2must not delete the A-OK Mail#R\n"
- .string "before you get the #CGThank-You Mail#R back.\0"
- .align 2, 0
-
-gUnknown_80E17C8:: @ 80E17C8
- .string " I~27m your guide to what you\n"
- .string "can expect at the Pelipper Post Office.\n"
- .string "If you have any questions~2c just ask away!\0"
- .align 2, 0
-
-gUnknown_80E183C:: @ 80E183C
- .string " Did you want to ask about\n"
- .string "anything else?\0"
- .align 2, 0
-
-gUnknown_80E1868:: @ 80E1868
- .string " #CGThe Pelipper Post Office#R\n"
- .string "keeps track of information from\n"
- .string "around the world.#P"
- .string " We inform folks\n"
- .string "about everything from gossip to calls\n"
- .string "for help from fellow Pokémon.#P"
- .string " For the latest news~2c check\n"
- .string "#CGyour Mailbox#R or the #CGBulletin Board#R\n"
- .string "outside~2c all right?#P"
- .string " Oh~2c that~27s not all.\n"
- .string "You can arrange for #CGFriend Rescue#R\n"
- .string "missions at that counter there.#P"
- .string " The #CGleft counter#R is\n"
- .string "for rescues~2c and the #CGright counter#R\n"
- .string "is for Thank-You Mail.\0"
- .align 2, 0
-
-gUnknown_80E1A30:: @ 80E1A30
- .string " The #CGBulletin Board#R outside\n"
- .string "here lists rescue requests.#P"
- .string " Take on rescue jobs from\n"
- .string "the Bulletin Board. Be a hero and handle\n"
- .string "the jobs for fellow Pokémon in need!\0"
- .align 2, 0
-
-gUnknown_80E1AD8:: @ 80E1AD8
- .string " If your rescue team\n"
- .string "becomes famous for doing lots of rescues~2c\n"
- .string "expect to get rescue requests directly.#P"
- .string " Our delivery $m0\n"
- .string "will take those jobs straight to your\n"
- .string "#CGMailbox#R.\0"
- .align 2, 0
-
-gUnknown_80E1B88:: @ 80E1B88
- .string " Friend Rescue is what we\n"
- .string "call rescue missions between friends using\n"
- .string "a #CGGame Link cable#R~2c #CGpasswords#R~2c etc.#P"
- .string " For instance~2c you can send\n"
- .string "out for help saying your team wiped out\n"
- .string "in a dungeon at such and such a place.#P"
- .string " Your friend could play\n"
- .string "the hero and come to your team~27s rescue.\n"
- .string "Or it can be the other way around~2c too.#P"
- .string " If you use #CGpasswords#R~2c\n"
- .string "you can do rescues with friends in\n"
- .string "far-away places.#P"
- .string " You can apply for Friend\n"
- .string "Rescue jobs at the #CGleft counter#R of\n"
- .string "that counter there.\0"
- .align 2, 0
-
-gUnknown_80E1D84:: @ 80E1D84
- .string " Deleting mail just means\n"
- .string "getting rid of old mail that you don~27t\n"
- .string "need anymore.#P"
- .string " If you do lots of Friend\n"
- .string "Rescues~2c you~27ll find #CGSOS Mail#R and\n"
- .string "#CGA-OK Mail#R piling up.#P"
- .string " Once you get #CG30 pieces#R~2c\n"
- .string "you won~27t be able to receive more mail.\n"
- .string "That~27s why you~27ll need to delete old mail.#P"
- .string " You can look through old\n"
- .string "mail at the #CGleft counter#R over there.\0"
- .align 2, 0
-
- .string "pksdir0\0"
- .align 2, 0
diff --git a/data/unk_data.s b/data/unk_data.s
index b9bc87d..aa9d19e 100644
--- a/data/unk_data.s
+++ b/data/unk_data.s
@@ -2,13 +2,13 @@
.string "pksdir0\0"
.4byte 1
- .4byte unk_data_table
+ .4byte monpal_table
.string "pksdir0\0"
- .global unk_data_table
- unk_data_table:
+ .global monpal_table
+ monpal_table:
.4byte monpal_string
- .4byte unkPalette
+ .4byte monPal
.global monpal_string
monpal_string:
@@ -17,8 +17,8 @@
.string "pksdir0\0"
@ Unknown Palette
- .global unkPalette
- unkPalette:
+ .global monPal
+ monPal:
.byte 0x00, 0x00, 0x00, 0x80
.byte 0x17, 0x17, 0x0f, 0x80
.byte 0x47, 0x37, 0x37, 0x80
diff --git a/include/constants/bg_music.h b/include/constants/bg_music.h
index df4c318..a51e244 100644
--- a/include/constants/bg_music.h
+++ b/include/constants/bg_music.h
@@ -1,6 +1,7 @@
#ifndef GUARD_BG_MUSIC_H
#define GUARD_BG_MUSIC_H
+#define MUS_TEAM_BASE 1
#define MUS_POKEMON_SQUARE 7
#define MUS_LOADING_SCREEN 8
#define MUS_THERES_TROUBLE 10
@@ -9,6 +10,10 @@
#define MUS_WORLD_CALAMITY 19
#define MUS_INTRO 40
#define MUS_TITLE_SCREEN 43
+#define MUS_CREDITS 44
+#define MUS_EPILOGUE 45
+#define MUS_DUNGEON_FAIL 51
+#define MUS_DUNGEON_COMPLETE 52
#define NUM_BG_SONGS 128
diff --git a/include/debug_menu.h b/include/debug_menu.h
index 7ca58f7..c70712f 100644
--- a/include/debug_menu.h
+++ b/include/debug_menu.h
@@ -13,6 +13,21 @@ enum DebugMenuOptions
MENU_DEBUG_MENU_H_OPEN = 9,
};
+struct unkData
+{
+ u8 unk0[24];
+};
+
+
+struct DebugMenu
+{
+ // size: 0x1A4
+ u8 fill0[0x140];
+ /* 0x140 */ struct unkData unk140[4];
+ u32 fill1A0;
+};
+
+
void CreateDebugMenu(void);
void DeleteDebugMenu(void);
u32 UpdateDebugMenu(void);
diff --git a/include/felicity_bank.h b/include/felicity_bank.h
new file mode 100644
index 0000000..a224ffd
--- /dev/null
+++ b/include/felicity_bank.h
@@ -0,0 +1,37 @@
+#ifndef FELICITY_BANK_H
+#define FELICITY_BANK_H
+
+#include "file_system.h"
+
+struct unkData
+{
+ u8 unk0[24];
+};
+
+struct unkStruct_203B204
+{
+ // size: 0x108
+ u32 unk0;
+ s32 currState;
+ u32 unk8;
+ u32 chosenAmount;
+ u32 unk10;
+ u8 fill14[0x64 - 0x14];
+ u32 unk64;
+ u8 fill68[0x78 - 0x68];
+ u32 unk78;
+ u8 fill7C[0x94 - 0x7C];
+ /* 0x94 */ struct OpenedFile *faceFile;
+ /* 0x98 */ u8 *faceData;
+ u16 unk9C;
+ u16 unk9E;
+ u8 unkA0;
+ u8 unkA1;
+ u8 unkA2;
+ u8 unkA3;
+ struct OpenedFile **unkA4;
+ struct unkData unkA8[4];
+};
+
+
+#endif
diff --git a/include/gUnknown_203B460.h b/include/gUnknown_203B460.h
new file mode 100644
index 0000000..bab85d8
--- /dev/null
+++ b/include/gUnknown_203B460.h
@@ -0,0 +1,28 @@
+#ifndef GUNKNOWN_203B460_H
+#define GUNKNOWN_203B460_H
+
+struct ItemStruct_203B460
+{
+ u8 unk0;
+ u8 numItems;
+ u8 itemIndex;
+};
+
+struct subStruct_203B460
+{
+ u8 unk0;
+ u8 unk1;
+};
+
+struct unkStruct_203B460
+{
+ struct ItemStruct_203B460 fill0[20];
+ u16 unk50[0x10];
+ u8 fill70[0x230 - 0x70];
+ struct subStruct_203B460 unk230[8];
+ struct subStruct_203B460 unk250[4]; // TODO: idk if this is identical struct or not.. Ghidra says sizes are same
+ /* 0x260 */ s32 teamMoney;
+ /* 0x264 */ u32 teamSavings;
+};
+
+#endif
diff --git a/include/gba/defines.h b/include/gba/defines.h
index 5f0123a..3dc76f6 100644
--- a/include/gba/defines.h
+++ b/include/gba/defines.h
@@ -31,8 +31,10 @@
#define BG_VRAM VRAM
#define BG_VRAM_SIZE 0x10000
-#define BG_CHAR_ADDR(n) (void *)(BG_VRAM + (0x4000 * (n)))
-#define BG_SCREEN_ADDR(n) (void *)(BG_VRAM + (0x800 * (n)))
+#define BG_CHAR_SIZE 0x4000
+#define BG_SCREEN_SIZE 0x800
+#define BG_CHAR_ADDR(n) (void *)(BG_VRAM + (BG_CHAR_SIZE * (n)))
+#define BG_SCREEN_ADDR(n) (void *)(BG_VRAM + (BG_SCREEN_SIZE * (n)))
#define BG_TILE_ADDR(n) (void *)(BG_VRAM + (0x80 * (n)))
// text-mode BG
@@ -61,4 +63,4 @@
#define WIN_RANGE(a, b) (((a) << 8) | (b))
-#endif // GUARD_GBA_DEFINES \ No newline at end of file
+#endif // GUARD_GBA_DEFINES
diff --git a/include/gba/io_reg.h b/include/gba/io_reg.h
index e50b580..93ee23f 100644
--- a/include/gba/io_reg.h
+++ b/include/gba/io_reg.h
@@ -698,7 +698,7 @@
#define KEY_INTR_ENABLE 0x0400
#define KEY_OR_INTR 0x0000
#define KEY_AND_INTR 0x8000
-#define DPAD_ANY 0x00F0
+#define DPAD_ANY ((DPAD_RIGHT | DPAD_LEFT | DPAD_UP | DPAD_DOWN)) // 0xF0
#define JOY_EXCL_DPAD 0x030F
// interrupt flags
diff --git a/include/gba/m4a_internal.h b/include/gba/m4a_internal.h
index b241eb3..d03d1a5 100644
--- a/include/gba/m4a_internal.h
+++ b/include/gba/m4a_internal.h
@@ -69,50 +69,50 @@ struct ToneData
struct CgbChannel
{
- u8 sf;
- u8 ty;
+ u8 statusFlags;
+ u8 type;
u8 rightVolume;
u8 leftVolume;
- u8 at;
- u8 de;
- u8 su;
- u8 re;
- u8 ky;
- u8 ev;
- u8 eg;
- u8 ec;
+ u8 attack;
+ u8 decay;
+ u8 sustain;
+ u8 release;
+ u8 key;
+ u8 envelopeVolume;
+ u8 envelopeGoal;
+ u8 envelopeCounter;
u8 echoVolume;
u8 echoLength;
- u8 d1;
- u8 d2;
- u8 gt;
- u8 mk;
- u8 ve;
- u8 pr;
- u8 rp;
- u8 d3[3];
- u8 d5;
- u8 sg;
- u8 n4;
+ u8 dummy1;
+ u8 dummy2;
+ u8 gateTime;
+ u8 midiKey;
+ u8 velocity;
+ u8 priority;
+ u8 rhythmPan;
+ u8 dummy3[3];
+ u8 dummy5;
+ u8 sustainGoal;
+ u8 n4; // NR[1-4]4 register (initial, length bit)
u8 pan;
u8 panMask;
- u8 mo;
- u8 le;
- u8 sw;
- u32 fr;
- u32* wp;
- u32 cp;
- u32 tp;
- u32 pp;
- u32 np;
- u8 d4[8];
+ u8 modify;
+ u8 length;
+ u8 sweep;
+ u32 frequency;
+ u32 *wavePointer; // instructs CgbMain to load targeted wave
+ u32 *currentPointer; // stores the currently loaded wave
+ struct MusicPlayerTrack *track;
+ void *prevChannelPointer;
+ void *nextChannelPointer;
+ u8 dummy4[8];
};
struct MusicPlayerTrack;
struct SoundChannel
{
- u8 status;
+ u8 statusFlags;
u8 type;
u8 rightVolume;
u8 leftVolume;
@@ -120,28 +120,28 @@ struct SoundChannel
u8 decay;
u8 sustain;
u8 release;
- u8 ky;
- u8 ev;
- u8 er;
- u8 el;
+ u8 key; // midi key as it was translated into final pitch
+ u8 envelopeVolume;
+ u8 envelopeVolumeRight;
+ u8 envelopeVolumeLeft;
u8 echoVolume;
u8 echoLength;
- u8 d1;
- u8 d2;
- u8 gt;
- u8 mk;
- u8 ve;
- u8 pr;
- u8 rp;
+ u8 dummy1;
+ u8 dummy2;
+ u8 gateTime;
+ u8 midiKey; // midi key as it was used in the track data
+ u8 velocity;
+ u8 priority;
+ u8 rhythmPan;
u8 d3[3];
- u32 ct;
+ u32 count;
u32 fw;
- u32 freq;
+ u32 frequency;
struct WaveData *wav;
- u32 cp;
+ s8 *currentPointer;
struct MusicPlayerTrack *track;
- u32 pp;
- u32 np;
+ void *prevChannelPointer;
+ void *nextChannelPointer;
u32 d4;
u16 xpi;
u16 xpc;
@@ -151,6 +151,16 @@ struct SoundChannel
#define PCM_DMA_BUF_SIZE 1584 // size of Direct Sound buffer
+struct MusicPlayerInfo;
+
+typedef void (*MPlayFunc)();
+typedef void (*PlyNoteFunc)(u32, struct MusicPlayerInfo *, struct MusicPlayerTrack *);
+typedef void (*CgbSoundFunc)(void);
+typedef void (*CgbOscOffFunc)(u8);
+typedef u32 (*MidiKeyToCgbFreqFunc)(u8, u8, u8);
+typedef void (*ExtVolPitFunc)(void);
+typedef void (*MPlayMainFunc)(struct MusicPlayerInfo *);
+
struct SoundInfo
{
// This field is normally equal to ID_NUMBER but it is set to other
@@ -168,7 +178,7 @@ struct SoundInfo
u8 freq;
u8 mode;
- u8 c15;
+ u8 c15; // periodically counts from 14 down to 0 (15 states)
u8 pcmDmaPeriod; // number of V-blanks per PCM DMA
u8 maxLines;
u8 gap[3];
@@ -176,14 +186,14 @@ struct SoundInfo
s32 pcmFreq;
s32 divFreq;
struct CgbChannel *cgbChans;
- u32 func;
- u32 intp;
- void (*CgbSound)(void);
- void (*CgbOscOff)(u8);
- u32 (*MidiKeyToCgbFreq)(u8, u8, u8);
- u32 MPlayJumpTable;
- u32 plynote;
- u32 ExtVolPit;
+ MPlayMainFunc MPlayMainHead;
+ struct MusicPlayerInfo *musicPlayerHead;
+ CgbSoundFunc CgbSound;
+ CgbOscOffFunc CgbOscOff;
+ MidiKeyToCgbFreqFunc MidiKeyToCgbFreq;
+ MPlayFunc *MPlayJumpTable;
+ PlyNoteFunc plynote;
+ ExtVolPitFunc ExtVolPit;
u8 gap2[16];
struct SoundChannel chans[MAX_DIRECTSOUND_CHANNELS];
s8 pcmBuffer[PCM_DMA_BUF_SIZE * 2];
@@ -270,8 +280,8 @@ struct MusicPlayerTrack
u8 lfoDelay;
u8 lfoDelayC;
u8 priority;
- u8 echoVolume;
- u8 echoLength;
+ u8 pseudoEchoVolume;
+ u8 pseudoEchoLength;
struct SoundChannel *chan;
struct ToneData tone;
u8 gap[10];
@@ -312,8 +322,8 @@ struct MusicPlayerInfo
struct MusicPlayerTrack *tracks;
struct ToneData *tone;
u32 ident;
- u32 func;
- u32 intp;
+ MPlayMainFunc MPlayMainNext;
+ struct MusicPlayerInfo *musicPlayerNext;
};
struct MusicPlayer
@@ -351,7 +361,7 @@ extern struct MusicPlayerTrack gPokemonCryTracks[];
extern char SoundMainRAM[];
-extern void *gMPlayJumpTable[];
+extern MPlayFunc gMPlayJumpTable[];
typedef void (*XcmdFunc)(struct MusicPlayerInfo *, struct MusicPlayerTrack *);
extern const XcmdFunc gXcmdTable[];
@@ -380,7 +390,7 @@ u32 umul3232H32(u32 multiplier, u32 multiplicand);
void SoundMain(void);
void SoundMainBTM(void);
void TrackStop(struct MusicPlayerInfo *mplayInfo, struct MusicPlayerTrack *track);
-void MPlayMain(void);
+void MPlayMain(struct MusicPlayerInfo *);
void RealClearChain(void *x);
void MPlayContinue(struct MusicPlayerInfo *mplayInfo);
@@ -399,7 +409,7 @@ void CgbSound(void);
void CgbOscOff(u8);
u32 MidiKeyToCgbFreq(u8, u8, u8);
void DummyFunc(void);
-void MPlayJumpTableCopy(void **mplayJumpTable);
+void MPlayJumpTableCopy(MPlayFunc *mplayJumpTable);
void SampleFreqSet(u32 freq);
void m4aSoundVSyncOn(void);
void m4aSoundVSyncOff(void);
@@ -443,7 +453,7 @@ void ply_tune(struct MusicPlayerInfo *, struct MusicPlayerTrack *);
void ply_port(struct MusicPlayerInfo *, struct MusicPlayerTrack *);
void ply_xcmd(struct MusicPlayerInfo *, struct MusicPlayerTrack *);
void ply_endtie(struct MusicPlayerInfo *, struct MusicPlayerTrack *);
-void ply_note(struct MusicPlayerInfo *, struct MusicPlayerTrack *);
+void ply_note(u32 note_cmd, struct MusicPlayerInfo *, struct MusicPlayerTrack *);
// extended sound command handler functions
void ply_xxx(struct MusicPlayerInfo *, struct MusicPlayerTrack *);
diff --git a/include/input.h b/include/input.h
index 9c93128..89b6039 100644
--- a/include/input.h
+++ b/include/input.h
@@ -46,6 +46,29 @@ struct UnusedInputStruct
/* 0x2A..0x2B - padding */
};
+struct UnkInputStruct
+{
+ /* 0x0 */ u8 unk0;
+ /* 0x1 */ u8 unk1;
+ /* 0x2 */ u8 unk2;
+ /* 0x3 */ u8 unk3;
+ /* 0x4 */ u8 unk4;
+ /* 0x5 */ u32 unk5;
+ /* 0x9 */ u32 unk9;
+ /* 0xD */ u32 unkD;
+ /* 0x12 */ u32 unk11;
+ /* 0x16 */ u32 unk15;
+ /* 0x1A */ u32 unk19;
+ /* 0x1E */ u32 unk1D;
+ /* 0x24 */ u32 unk24;
+ /* 0x28 */ u8 unk28;
+ /* 0x29 */ u8 a_button;
+ /* 0x2A */ u8 b_button;
+ /* 0x2B */ u8 dpad_right;
+ /* 0x2C */ u8 dpad_left;
+};
+
+
void InitInput(void);
void LoadBufferedInputs(void);
u8 sub_80048B8(void);
diff --git a/include/item.h b/include/item.h
new file mode 100644
index 0000000..060b750
--- /dev/null
+++ b/include/item.h
@@ -0,0 +1,58 @@
+#ifndef ITEMS_H
+#define ITEMS_H
+
+struct Item
+{
+ /* 0x0 */ u8 *namePointer;
+ /* 0x4 */ u32 buyPrice;
+ /* 0x8 */ u32 sellPrice;
+ /* 0xC */ u8 type;
+ /* 0xD */ u8 icon;
+ /* 0xE */ u16 fill;
+ /* 0x10 */ u8 *descriptionPointer;
+ /* 0x14 */ bool8 unkFood1[2];
+ /* 0x16 */ u8 throwDmg;
+ /* 0x17 */ u8 fill2;
+ /* 0x18 */ s16 move;
+ /* 0x1A */ u8 order; // Numbered order they are in storage
+ /* 0x1B */ u8 unkThrow1B[2];
+ /* 0x1D */ u8 palette;
+ /* 0x1E */ u8 category;
+ /* 0x1F */ u8 fill3;
+};
+
+enum ItemType
+{
+ ITEM_TYPE_THROWABLE,
+ ITEM_TYPE_ROCK,
+ ITEM_TYPE_BERRY_SEED,
+ ITEM_TYPE_APPLE_GUMMI,
+ ITEM_TYPE_HOLD_ITEM,
+ ITEM_TYPE_TM,
+ ITEM_TYPE_MONEY,
+ ITEM_TYPE_UNUSED,
+ ITEM_TYPE_MISC,
+ ITEM_TYPE_ORB,
+ ITEM_TYPE_LINK_BOX,
+ ITEM_TYPE_USED_TM
+};
+
+enum ItemCategory
+{
+ ITEM_CATEGORY_NOTHING,
+ ITEM_CATEGORY_THROWABLE,
+ ITEM_CATEGORY_ROCKS,
+ ITEM_CATEGORY_RIBBONS,
+ ITEM_CATEGORY_FOOD,
+ ITEM_CATEGORY_HEALING,
+ ITEM_CATEGORY_CHESTNUT,
+ ITEM_CATEGORY_MONEY_WISH_STONE,
+ ITEM_CATEGORY_MISC,
+ ITEM_CATEGORY_TM,
+ ITEM_CATEGORY_LINK_BOX,
+ ITEM_CATEGORY_SPECS,
+ ITEM_CATEGORY_SCARFS,
+ ITEM_CATEGORY_ORBS
+};
+
+#endif
diff --git a/include/kangaskhan_storage.h b/include/kangaskhan_storage.h
new file mode 100644
index 0000000..0d7ac52
--- /dev/null
+++ b/include/kangaskhan_storage.h
@@ -0,0 +1,41 @@
+#ifndef KANGASKHAN_STORAGE_H
+#define KANGASKHAN_STORAGE_H
+
+struct unkData
+{
+ u8 unk0[20];
+ u8 *array;
+};
+
+struct unkStruct_203B208
+{
+ // size: 0x14C
+ u32 unk0;
+ u32 currState;
+ u32 unk8;
+ u32 unkC;
+ u32 unk10;
+ u32 unk14;
+ u32 unk18;
+ u32 unk1C;
+ u32 unk20;
+ u8 fill24[0x58 - 0x24];
+ u32 unk58;
+ u8 unk5C[0xA8 - 0x5C];
+ u32 unkA8;
+ u8 unkAC[0xBC - 0xAC];
+ u32 unkBC;
+ u8 unkC0[0xD8 - 0xC0];
+ struct OpenedFile *faceFile;
+ u8 *faceData;
+ u16 unkE0;
+ u16 unkE2;
+ u8 unkE4;
+ u8 unkE5;
+ u8 unkE6;
+ u8 unkE7;
+ struct OpenedFile **unkE8;
+ struct unkData unkEC[4];
+};
+
+#endif
diff --git a/include/kecleon_items.h b/include/kecleon_items.h
new file mode 100644
index 0000000..f9added
--- /dev/null
+++ b/include/kecleon_items.h
@@ -0,0 +1,43 @@
+#ifndef KECLEON_ITEMS_H
+#define KECLEON_ITEMS_H
+
+#include "gUnknown_203B460.h"
+
+struct unkData
+{
+ u8 unk0[24];
+};
+
+struct unkStruct_203B210
+{
+ // size: 0x148
+ u32 unk0;
+ u8 unk4;
+ u8 fill5[3];
+ u32 currState;
+ u32 unkC;
+ s32 unk10;
+ u32 unk14;
+ u32 unk18;
+ struct ItemStruct_203B460 unk1C;
+ u32 unk20;
+ u32 unk24;
+ u32 unk28;
+ u32 unk2C;
+ u32 unk30;
+ u8 fill34[0x84 - 0x34];
+ u32 unk84;
+ u8 fill88[0xD4 - 0x88];
+ struct OpenedFile *unkD4;
+ u8 *unkD8;
+ u16 unkDC;
+ u16 unkDE;
+ u8 unkE0;
+ u8 unkE1;
+ u8 unkE2;
+ u8 unkE3;
+ struct OpenedFile **unkE4;
+ struct unkData unkE8[4];
+};
+
+#endif
diff --git a/include/main_menu.h b/include/main_menu.h
index db92f83..8a0b22d 100644
--- a/include/main_menu.h
+++ b/include/main_menu.h
@@ -8,6 +8,7 @@ enum MainMenuScreens
MENU_AWAITING_RESCUE = 6,
MENU_CONTINUE = 7,
MENU_DELETE_SAVE_PROMPT,
+ MENU_DELETE_SAVE_CONFIRM,
MENU_ADVENTURE_LOG = 10,
MENU_FRIEND_RESCUE,
MENU_TRADE_ITEMS,
diff --git a/include/menu.h b/include/menu.h
new file mode 100644
index 0000000..dbaeea6
--- /dev/null
+++ b/include/menu.h
@@ -0,0 +1,10 @@
+#ifndef MENU_H
+#define MENU_H
+
+struct MenuItem
+{
+ const char *text;
+ u32 menuAction; // action??
+};
+
+#endif
diff --git a/include/pokemon.h b/include/pokemon.h
index df87594..8014015 100644
--- a/include/pokemon.h
+++ b/include/pokemon.h
@@ -55,14 +55,19 @@ struct gPokemon
/* 0x33 */ bool8 unk33;
/* 0x34 */ struct EvolveStruct1 pre;
/* 0x38 */ struct EvolveNeeds need;
- /* 0x3C */ s16 unk3C[2]; // dexNo and internalNo
+ /* 0x3C */ s16 dexInternal[2]; // dexNo and internalNo
/* 0x40 */ s16 base_recruit;
- /* 0x42 */ s16 unk42[2]; // alphabetNo and parentNo
+ /* 0x42 */ s16 alphabetParent[2]; // alphabetNo and parentNo
};
+void CopySpeciesNametoBuffer(u8 * buffer, s16 index);
+void CopyYellowSpeciesNametoBuffer(u8 *buffer, s16 index);
+void CopyCyanSpeciesNametoBuffer(u8 *buffer, s16 index);
+
u8 *GetCategoryString(s16 index);
u8 GetPokemonSize(s16 index);
u8 GetShadowSize(s16 index);
+char * GetMonSpecies(s16 index);
s32 GetMoveSpeed(s16 index);
u8 GetWalkableTiles(s16 index);
u8 GetUnk1B(s16 index);
@@ -79,12 +84,12 @@ u16 GetPokemonAttSpatt(s16 index, u32 r1);
u16 GetPokemonDefSpdef(s16 index, u32 r1);
u8 GetPokemonType(s32 index, u32 typeIndex);;
u8 GetPokemonAbility(s16 index, u32 abilityIndex);
-s16 sub_808DCA0(s16 index, u32 r1);
+s16 GetDexInternalNo(s16 index, u32 r1);
s16 GetBaseRecruit(s16 index);
-s16 sub_808DCDC(s16 index, s32 r1);
-s16 sub_808DCFC(s16 index);
+s16 GetAlphabetParentNo(s16 index, s32 r1);
+s16 GetInternalNo(s16 index);
u32 CalculateEXPGain(s16 index, s32 level);
-s16 sub_808DD48(s16 index, struct unkEvolve *r1);
+s16 GetPokemonEvolveConditons(s16 index, struct unkEvolve *r1);
u8 GetPokemonOverworldPalette(s16 index, u32 r1);
bool8 IsPokemonDialogueSpriteAvail(s16 index, s32 r1);
struct OpenedFile *OpenPokemonDialogueSpriteFile(s16 index);
diff --git a/include/save.h b/include/save.h
index 2b4c1ec..da23b47 100644
--- a/include/save.h
+++ b/include/save.h
@@ -5,6 +5,14 @@
#include "exclusive_pokemon.h"
#include "rescue_team_info.h"
+enum
+{
+ SAVE_COMPLETED,
+ SAVE_NOT_WRTTEN,
+ SAVE_FAILED
+};
+
+
struct UnkStruct_sub_8011DAC {
u8 fill000[0x4];
u8 unk004[0x400];
@@ -18,7 +26,7 @@ struct UnkStruct_sub_8011DAC {
u8 fill42C[0x4];
u32 unk430;
u32 unk434;
- u32 unk438;
+ u32 savedFriendAreas;
u32 unk43C;
u32 unk440;
u32 unk444;
@@ -56,11 +64,11 @@ u32 sub_8011C1C(void);
void sub_8011C28(u32 in);
s32 sub_8011C34(void);
void sub_8011C40(s32 in);
-u32 sub_8011C4C(void);
+char *sub_8011C4C(void);
void sub_8011CA8(u32 *out, s32 size);
-u32 sub_8011DAC(u32 *a);
+u32 ReadSaveFromPak(u32 *a);
u32 sub_8011F9C(s32 *r0, u8 *dest, s32 size);
-bool8 sub_8011FF8(void);
+bool8 IsSaveCorrupted(void);
void sub_8012284(void);
void sub_8012298(void);
void sub_80122A8(void);
diff --git a/include/text.h b/include/text.h
index b786812..01e701d 100644
--- a/include/text.h
+++ b/include/text.h
@@ -25,4 +25,5 @@ void sub_8006554(void *a0, void *a1, void *a2, void *a3, u32 a4, const struct Un
void sub_800898C(void);
void sub_80089AC(const struct UnkTextStruct2 *a0, void *a1);
void sub_8009388(void);
+void sub_800641C(struct UnkTextStruct2 *a0, u8 a1, u8 a2);
#endif
diff --git a/include/trade_items_menu.h b/include/trade_items_menu.h
index 73435a3..36e6054 100644
--- a/include/trade_items_menu.h
+++ b/include/trade_items_menu.h
@@ -8,9 +8,9 @@ struct unkData
struct TradeSubStruct
{
- u8 unk0; // item id?
+ u8 itemIndex; // item id?
u8 fill3[0x3];
- u32 unk4; // number of items?
+ u32 numItems; // number of items?
};
@@ -22,7 +22,7 @@ struct TradeItemsMenu
u32 itemMode;
u32 linkStatus;
u32 unk10;
- u32 unk14; // item #
+ u32 numItemsToSend; // item #
u32 unk18;
u32 unk1C;
u32 unk20;
@@ -49,8 +49,8 @@ struct TradeItemsMenu
struct TradeSubStruct unk254;
u8 unk25C;
- u8 unk25D;
- u8 unk25E;
+ u8 chosenNum;
+ u8 chosenItem;
u8 fill25F[0x3A0 - 0x25F];
};
diff --git a/ld_script.txt b/ld_script.txt
index 3fcd3e4..8c7a85d 100755
--- a/ld_script.txt
+++ b/ld_script.txt
@@ -63,7 +63,6 @@ SECTIONS {
src/code_800558C.o(.text);
src/random.o(.text);
src/text.o(.text);
- . = ALIGN(4);
asm/text.o(.text);
src/code_8009804.o(.text);
asm/code_8009804.o(.text);
@@ -85,6 +84,17 @@ SECTIONS {
src/code_8012A18.o(.text);
src/more_input.o(.text);
asm/code_8012A18.o(.text);
+ src/felicity_bank.o(.text);
+ asm/felicity_bank.o(.text);
+ src/felicity_bank_1.o(.text);
+ src/kangaskhan_storage.o(.text);
+ asm/kangaskhan_storage.o(.text);
+ src/kangaskhan_storage_1.o(.text);
+ asm/kangaskhan_storage_1.o(.text);
+ src/kecleon_items.o(.text);
+ asm/kecleon_items.o(.text);
+ src/kecleon_items_1.o(.text);
+ asm/pokemon_square.o(.text);
src/code_801D760.o(.text);
asm/code_801D760.o(.text);
src/code_8027C84_pre.o(.text);
@@ -97,6 +107,11 @@ SECTIONS {
asm/code_802B640.o(.text);
src/wonder_mail_3.o(.text);
asm/wonder_mail_3.o(.text);
+ src/makuhita_dojo.o(.text);
+ asm/makuhita_dojo.o(.text);
+ asm/wonder_mail_4.o(.text);
+ src/post_office_guide.o(.text);
+ asm/wonder_mail_5.o(.text);
src/adventure_log.o(.text);
src/friend_rescue.o(.text);
asm/friend_rescue.o(.text);
@@ -104,8 +119,6 @@ SECTIONS {
asm/credits.o(.text);
src/credits.o(.text);
src/main_menu.o(.text);
- asm/main_menu.o(.text);
- src/main_menu_mid.o(.text);
asm/main_menu_1.o(.text);
src/main_menu_1.o(.text);
src/trade_items_menu.o(.text);
@@ -118,7 +131,6 @@ SECTIONS {
src/unk_menu_203B364.o(.text);
asm/unk_menu_203B364.o(.text);
asm/rescue_password_menu.o(.text);
- asm/load_screen.o(.text);
src/load_screen.o(.text);
src/wonder_mail_main_menu.o(.text);
asm/wonder_mail_main_menu.o(.text);
@@ -152,6 +164,8 @@ SECTIONS {
src/code_80521D0_1.o(.text);
src/pokemon.o(.text);
asm/pokemon.o(.text);
+ src/pokemon_mid.o(.text);
+ asm/pokemon_1.o(.text);
src/pokemon_1.o(.text);
src/code_808DAB4.o(.text);
asm/code_808DAB4.o(.text);
@@ -159,6 +173,8 @@ SECTIONS {
asm/code_808EAB0.o(.text);
src/dungeon.o(.text);
asm/code_809017C.o(.text);
+ src/items.o(.text);
+ asm/items.o(.text);
src/rescue_team_info.o(.text);
src/text_util.o(.text);
src/friend_area.o(.text);
@@ -255,8 +271,12 @@ SECTIONS {
data/data_80B9BB8.o(.rodata);
src/wonder_mail.o(.rodata);
data/data_80DED44.o(.rodata);
+ src/post_office_guide.o(.rodata);
+ data/data_80E1F30.o(.rodata);
src/adventure_log.o(.rodata);
data/data_80E2068.o(.rodata);
+ src/debug_menu.o(.rodata);
+ data/data_80E7D40.o(.rodata);
data/pokemon_mail.o(.rodata);
data/personality_test.o(.rodata);
src/personality_test.o(.rodata);
diff --git a/src/code_2.c b/src/code_2.c
index 94f3632..08db080 100644
--- a/src/code_2.c
+++ b/src/code_2.c
@@ -108,7 +108,7 @@ void GameLoop(void)
sub_800DAAC();
SetSavingIconCoords(0);
tmp = 0;
- if (sub_8011DAC(&tmp))
+ if (ReadSaveFromPak(&tmp))
sub_800135C();
xxx_script_related_8001334(14);
xxx_script_related_8001334(15);
diff --git a/src/code_800558C.c b/src/code_800558C.c
index e138454..df3fd38 100644
--- a/src/code_800558C.c
+++ b/src/code_800558C.c
@@ -8,7 +8,7 @@ extern bool32 gUnknown_2026E50;
extern bool32 gUnknown_2026E54;
extern u32 gUnknown_2026E58;
-extern void sub_800CC44(s32 r0, s32 r1);
+extern void SetBldAlphaReg(s32 r0, s32 r1);
// Unused
void sub_80060A8(void)
@@ -25,6 +25,6 @@ void sub_80060EC(void)
gUnknown_2026E3C = gUnknown_2026E58;
gUnknown_2026E54 = !gUnknown_2026E54;
gUnknown_2026E50 = !gUnknown_2026E50;
- sub_800CC44((gUnknown_2026E4E & 0x1F00) >> 8, gUnknown_2026E4E & 0x1F);
+ SetBldAlphaReg((gUnknown_2026E4E & 0x1F00) >> 8, gUnknown_2026E4E & 0x1F);
gUnknown_2026E38 = TRUE;
}
diff --git a/src/code_8009804.c b/src/code_8009804.c
index 1f1b054..23407a7 100644
--- a/src/code_8009804.c
+++ b/src/code_8009804.c
@@ -3,15 +3,21 @@
extern u8 gUnknown_202D238[4];
extern s32 gUnknown_202D23C;
+extern u16 gUnknown_202B038[2][32][32];
+extern u8 gUnknown_202B838[0x800];
+extern u8 gUnknown_202C038[0x800];
+extern u8 gUnknown_202C838[0x720];
struct unkStruct_202D240
{
u32 *unk0;
u32 *unk4;
- u32 *unk8;
+ u32 size;
};
extern struct unkStruct_202D240 gUnknown_202D240[8];
+extern void CpuCopy(void* dest, void *src, s32 size);
+
void vram_related_8009804(void)
{
u32 counter;
@@ -38,17 +44,17 @@ void vram_related_8009804(void)
*r1++ = 0;
}
r1 = (u32 *) PLTT;
- for(counter = 0; counter < 0x78; counter++)
+ for(counter = 0; counter < 120; counter++)
{
*r1++ = 0;
}
r1 = (u32 *) OBJ_PLTT;
- for(counter = 0; counter < 0x78; counter++)
+ for(counter = 0; counter < 120; counter++)
{
*r1++ = 0;
}
r1 = (u32 *) OAM;
- for(counter = 0; counter < 0x100; counter++)
+ for(counter = 0; counter < 256; counter++)
{
*r1++ = 0xa000a0;
}
@@ -63,12 +69,12 @@ void sub_80098A0(void)
gUnknown_202D238[3] = 0;
}
-void sub_80098BC(u32 *r0, u32 *r1, u32 *r2)
+void sub_80098BC(u32 *r0, u32 *r1, u32 r2)
{
if(gUnknown_202D23C < 8){
gUnknown_202D240[gUnknown_202D23C].unk0 = r0;
gUnknown_202D240[gUnknown_202D23C].unk4 = r1;
- gUnknown_202D240[gUnknown_202D23C].unk8 = r2;
+ gUnknown_202D240[gUnknown_202D23C].size = r2;
gUnknown_202D23C++;
}
}
@@ -77,3 +83,43 @@ void sub_80098F8(u32 r0)
{
gUnknown_202D238[r0] = 1;
}
+
+void sub_8009908(void)
+{
+ s32 index;
+ u32 iVar3;
+
+ index = 0;
+ if (index < gUnknown_202D23C) {
+ iVar3 = 0;
+ do {
+ CpuCopy(gUnknown_202D240[index].unk0,gUnknown_202D240[index].unk4,gUnknown_202D240[index].size);
+ iVar3 += sizeof(struct unkStruct_202D240);
+ index++;
+ } while (index < gUnknown_202D23C);
+ }
+ gUnknown_202D23C = 0;
+ if (gUnknown_202D238[0] != 0) {
+ gUnknown_202D238[0] = 0;
+ CpuCopy(BG_SCREEN_ADDR(12),gUnknown_202B038, BG_SCREEN_SIZE);
+ }
+ if (gUnknown_202D238[1] != 0) {
+ gUnknown_202D238[1] = 0;
+ CpuCopy(BG_SCREEN_ADDR(13),gUnknown_202B838, BG_SCREEN_SIZE);
+ }
+ if (gUnknown_202D238[2] != 0) {
+ gUnknown_202D238[2] = 0;
+ CpuCopy(BG_SCREEN_ADDR(14),gUnknown_202C038, BG_SCREEN_SIZE);
+ }
+ if (gUnknown_202D238[3] != 0) {
+ gUnknown_202D238[3] = 0;
+ CpuCopy(BG_SCREEN_ADDR(15),gUnknown_202C838, BG_SCREEN_SIZE);
+ }
+}
+
+void sub_80099C0(void)
+{
+ CpuCopy(BG_SCREEN_ADDR(12),gUnknown_202B038, BG_SCREEN_SIZE);
+ // TODO shouldn't this be 202B838? It didn't match... might need raw address
+ CpuCopy(BG_SCREEN_ADDR(13),gUnknown_202B038 + 0x1, BG_SCREEN_SIZE);
+}
diff --git a/src/code_800C9CC.c b/src/code_800C9CC.c
index 2b0c8dd..cbd2ede 100644
--- a/src/code_800C9CC.c
+++ b/src/code_800C9CC.c
@@ -3,8 +3,8 @@
#include "bg.h"
extern u16 gRawKeyInput;
-extern u8 gUnknown_202D6B8;
-extern u8 gUnknown_202D6B9;
+extern u8 gBldAlpha_CoeffA;
+extern u8 gBldAlpha_CoeffB;
extern u16 gBldAlpha;
extern u8 gUnknown_202D7FE;
@@ -51,34 +51,30 @@ void ReadKeyInput(struct Inputs *r0)
gRawKeyInput = keyInput;
}
-void sub_800CC44(s32 r0, s32 r1)
+void SetBldAlphaReg(s32 lowAlpha, s32 highAlpha)
{
- if(r0 < 0)
+ if(lowAlpha < 0)
{
- r0 = 0;
+ lowAlpha = 0;
}
- else
+ else if(lowAlpha > 16)
{
- if(r0 > 0x10)
- {
- r0 = 0x10;
- }
+ lowAlpha = 16;
}
- if(r1 < 0)
+
+ if(highAlpha < 0)
{
- r1 = 0;
+ highAlpha = 0;
}
- else
+ else if(highAlpha > 16)
{
- if(r1 > 0x10)
- {
- r1 = 0x10;
- }
+ highAlpha = 16;
}
- gUnknown_202D6B8 = r0;
- gUnknown_202D6B9 = r1;
- gBldAlpha = BLDALPHA_BLEND1(gUnknown_202D6B8, gUnknown_202D6B9);
+ gBldAlpha_CoeffA = lowAlpha;
+ gBldAlpha_CoeffB = highAlpha;
+
+ gBldAlpha = BLDALPHA_BLEND1(gBldAlpha_CoeffA, gBldAlpha_CoeffB);
}
void SetBG0RegOffsets(s32 xoffset, s32 yoffset)
diff --git a/src/code_800D090.c b/src/code_800D090.c
index b263d30..fc93392 100644
--- a/src/code_800D090.c
+++ b/src/code_800D090.c
@@ -31,7 +31,7 @@ void sub_800D098(void)
u32 dispcnt_save;
u32 ie_store;
- while(REG_VCOUNT <= 159)
+ while(REG_VCOUNT < 160)
;
// Save DISPCNT and set to 0
@@ -40,7 +40,7 @@ void sub_800D098(void)
*(u16 *)BG_PLTT = 0xefff;
- while(REG_KEYINPUT != 0x3ff) // 0011 1111 1111 (all buttons)
+ while(REG_KEYINPUT != KEYS_MASK)
;
@@ -71,9 +71,9 @@ void sub_800D098(void)
REG_IME = 1;
- while(REG_VCOUNT <= 159){}
+ while(REG_VCOUNT < 160){}
REG_DISPCNT = dispcnt_save; // restore DISPCNT
- while(REG_KEYINPUT != 0x3ff){} // All buttons
+ while(REG_KEYINPUT != KEYS_MASK){} // All buttons
}
void sub_800D158(u8 *buffer, const char *text, ...)
diff --git a/src/code_80118A4.c b/src/code_80118A4.c
index 39cc12b..815a737 100644
--- a/src/code_80118A4.c
+++ b/src/code_80118A4.c
@@ -206,7 +206,7 @@ void sub_8011924()
sub_800BF80();
}
-void sub_8011930(u16 speed)
+void xxx_call_fade_out_bgm(u16 speed)
{
FadeOutBGM(speed);
}
@@ -227,7 +227,7 @@ void sub_8011974(u16 songIndex, u16 r1)
sub_800C074(songIndex, r1);
}
-void sub_8011988(u16 songIndex)
+void PlaySound(u16 songIndex)
{
sub_800C074(songIndex, 256);
}
@@ -260,7 +260,7 @@ void sub_8011A04(void)
if(gUnknown_202DE22 > 0)
return;
gUnknown_202DE22 = 3;
- sub_800C074(0x131, 256);
+ sub_800C074(305, 256);
}
void sub_8011A2C(u32 r0)
diff --git a/src/code_801D760.c b/src/code_801D760.c
index 5577b86..b0f163a 100644
--- a/src/code_801D760.c
+++ b/src/code_801D760.c
@@ -1,6 +1,7 @@
#include "global.h"
#include "constants/friend_area.h"
#include "file_system.h"
+#include "gUnknown_203B460.h"
extern u32 sub_801BF48(void);
extern void sub_801BF98(void);
@@ -70,12 +71,6 @@ struct unk_203B250
struct unk_203B250 *gUnknown_203B250;
-struct unkStruct_203B460
-{
- u8 padding[0x260];
- /* 0x260 */ u32 teamMoney;
-};
-
extern struct unkStruct_203B460 *gUnknown_203B460;
void sub_801D680(void)
@@ -254,10 +249,10 @@ void sub_801D878(void)
void sub_801D894(void)
{
- u8 uVar1;
+ u8 rank;
const char *location;
- int iVar3;
- s32 size_var;
+ int location_length;
+ s32 x_coord;
// Stored on stack
u32 *preload_string;
@@ -272,22 +267,23 @@ void sub_801D894(void)
}
// TODO this is def a hack
xxx_format_string(location, auStack116, &preload_string + 1, 0);
- iVar3 = sub_8008ED0(auStack116);
- size_var = (0x80 - iVar3) / 2; // have to calculate here
+ location_length = sub_8008ED0(auStack116);
+ x_coord = (128 - location_length) / 2; // Centers the location name
sub_8008C54(1);
sub_80073B8(1);
- xxx_call_draw_string(size_var, 4, auStack116, 1, 0);
+ xxx_call_draw_string(x_coord, 4, auStack116, 1, 0);
sub_80073E0(1);
sub_8008C54(2);
sub_80073B8(2);
LoadTeamRankBadge(2, 8, 6);
- r5 = &gUnknown_80DBF3C; // Have to load before TeamRank funcs
- uVar1 = GetRescueTeamRank();
- sub_800D158(auStack116, r5, GetTeamRankString(uVar1), GetTeamRankPts());
- xxx_call_draw_string(0x20, 4, auStack116, 2, 0);
+// Have to load before TeamRank funcs
+ r5 = &gUnknown_80DBF3C; // %s #C5%d#R Pts.
+ rank = GetRescueTeamRank();
+ sub_800D158(auStack116, r5, GetTeamRankString(rank), GetTeamRankPts());
+ xxx_call_draw_string(32, 4, auStack116, 2, 0);
sub_800D158(auStack116, &gUnknown_80DBF4C, gUnknown_203B460->teamMoney);
- xxx_call_draw_string(0x20, 0x12, auStack116, 2, 0);
+ xxx_call_draw_string(32, 18, auStack116, 2, 0);
sub_80073E0(2);
}
diff --git a/src/code_8041AD0.c b/src/code_8041AD0.c
index 6c9c55c..738b881 100644
--- a/src/code_8041AD0.c
+++ b/src/code_8041AD0.c
@@ -18,7 +18,7 @@ extern u8 sub_8042768(struct unkDungeon_8041D5C *r0);
extern void sub_806CDD4(struct unkDungeon_8041D5C *r0, u8, u32);
extern u8 sub_8071858(struct unkDungeon_8041D5C *r0, u8);
extern u32 sub_806F62C(u32);
-extern void sub_8083E38(u32);
+extern void PlaySoundEffect(u32);
extern u8 sub_803F428(struct unkDungeon_8041D5C *r0);
extern void sub_8041550(struct unkDungeon_8041D5C *r0, u32, u32, u32, u32, u32);
@@ -650,32 +650,32 @@ void sub_80421AC(u32 r0, struct unkDungeon_8041D5C * r1)
void sub_80421C0(struct unkDungeon_8041D5C *r0, u16 r1)
{
if(r0 == NULL)
- sub_8083E38(r1);
+ PlaySoundEffect(r1);
else
if(sub_8042768(r0) != 0)
- sub_8083E38(r1);
+ PlaySoundEffect(r1);
}
void sub_80421EC(struct unkDungeon_8041D5C *r0, u16 r1)
{
if(sub_803F428(r0) != 0)
- sub_8083E38(r1);
+ PlaySoundEffect(r1);
}
void sub_8042208(struct unkDungeon_8041D5C *r0, u8 r1)
{
if(r1 == 0)
- sub_8083E38(0xA9 << 1);
+ PlaySoundEffect(0x152);
else if(r1 == 1)
- sub_8083E38(0x151);
+ PlaySoundEffect(0x151);
else
- sub_8083E38(0xA8 << 1);
+ PlaySoundEffect(0x150);
}
void sub_8042238(u32 r0, struct unkDungeon_8041D5C *r1)
{
if(r1->unk70->unk6 != 0)
- sub_8083E38(0x157);
+ PlaySoundEffect(0x157);
else
- sub_8083E38(0xAB << 1);
+ PlaySoundEffect(0x156);
}
diff --git a/src/code_80521D0_1.c b/src/code_80521D0_1.c
index d363682..ec29b38 100644
--- a/src/code_80521D0_1.c
+++ b/src/code_80521D0_1.c
@@ -4,6 +4,7 @@
#include "code_8041D5C.h"
#include "friend_area.h"
#include "constants/friend_area.h"
+#include "pokemon.h"
extern struct unkDungeon_8041D5C *sub_8085480(void);
extern struct unkDungeon_8041D5C *sub_8085680(u32);
@@ -66,7 +67,6 @@ extern void sub_800DC14(u32);
extern void sub_808BAA4();
extern void sub_8086A3C(struct unkDungeon_8041D5C *r0);
-extern void CopySpeciesNametoBuffer(char *r0, u32 r1);
extern void sub_8083E88(u32);
extern void sub_80854D4(void);
extern void sub_80855E4(void *);
@@ -81,9 +81,9 @@ extern void sub_80866C4(u32 *r0);
extern void sub_803E708(u32, u32);
extern void sub_8086448(void);
extern void sub_8086598(void);
-extern void sub_808696C();
+extern void SpriteLookAroundEffect(struct unkDungeon_8041D5C *);
extern void sub_80862BC(struct unkDungeon_8041D5C *);
-extern void sub_8083E38(u32);
+extern void PlaySoundEffect(u32);
extern void sub_806CDD4(struct unkDungeon_8041D5C *, u32, u32);
extern void sub_80869E4(struct unkDungeon_8041D5C *, u32, u32, u32);
extern void sub_806CE68(struct unkDungeon_8041D5C *, u32);
@@ -122,7 +122,7 @@ void sub_808C5A0(struct unkDungeon_8041D5C *r0);
void sub_808C9B0();
void sub_808C8E0(struct unkDungeon_8041D5C *param_1);
void sub_808C360(void);
-void sub_808C2D4();
+void KyogreScreenFlash();
void sub_808C0CC();
void sub_808BFA0();
@@ -166,7 +166,7 @@ void sub_808BBB8(struct unkDungeon_8041D5C *param_1)
sub_80861B8(param_1,0xe,0);
iVar1 = 0xa000;
iVar2 = 0x200;
- sub_8083E38(0x1f8);
+ PlaySoundEffect(0x1f8);
while( 1 ) {
iVar1 = iVar1 - iVar2;
if (iVar1 < 0x1800) {
@@ -183,13 +183,13 @@ void sub_808BC20(struct unkDungeon_8041D5C * param_1)
{
s32 uVar1;
- sub_8083E38(0x298);
+ PlaySoundEffect(0x298);
for(uVar1 = 0; uVar1 < 0x19; uVar1++){
sub_8085918(param_1,uVar1 & 7);
sub_803E708(3,0x46);
}
param_1->unk70->unk15E = 1;
- sub_8083E38(0x27f);
+ PlaySoundEffect(0x27f);
sub_80861F8(99,param_1,1);
}
@@ -200,9 +200,9 @@ void JirachiWishGrantDialogue(struct unkDungeon_8041D5C *param_1)
param_1->unk70->unk15D = 1;
// Nnnnnnnnnn!
sub_8052910(&gUnknown_81058A8);
- sub_8083E38(0x375);
+ PlaySoundEffect(0x375);
sub_80861F8(0x67,param_1,1);
- sub_8083E38(0x2a8);
+ PlaySoundEffect(0x2a8);
uVar2 = sub_80861F8(0x68,param_1,0);
// Taaaaaaaah!
sub_8052910(&gUnknown_81058C4);
@@ -329,7 +329,7 @@ void LugiaPreFightDialogue(void)
sub_8052910(&gUnknown_8105F38);
sub_803E708(10,0x46);
sub_8052910(&gUnknown_8105F74);
- sub_8083E38(0x1f8);
+ PlaySoundEffect(0x1f8);
sub_80861D4(uVar3,0xd,0);
sub_803E708(0x2b,0x46);
sub_80861B8(uVar3,0,0);
@@ -352,7 +352,7 @@ void sub_808BFA0(void)
{
s32 iVar1;
- sub_8083E38(0x1f6);
+ PlaySoundEffect(0x1f6);
for(iVar1 = 250; iVar1 > 149; iVar1 -= 10){
sub_8085C54(0,0,iVar1,1,1);
sub_803E46C(0x46);
@@ -375,7 +375,7 @@ void sub_808C02C(void)
{
s32 iVar1;
- sub_8083E38(0x1f6);
+ PlaySoundEffect(0x1f6);
for(iVar1 = 0; iVar1 < 200; iVar1 += 100){
sub_8085C54(iVar1,iVar1,iVar1,1,0);
@@ -460,7 +460,7 @@ void KyogrePreFightDialogue(void)
sub_8083F14();
if (HasRecruitedMon(SPECIES_KYOGRE)) {
sub_8083EA8(0x23,0x3c);
- sub_808696C(iVar2);
+ SpriteLookAroundEffect(iVar2);
sub_803E708(10,0x46);
sub_8052910(&gUnknown_81062A8);
sub_803E708(10,0x46);
@@ -480,14 +480,14 @@ void KyogrePreFightDialogue(void)
sub_808C360();
// My duels agaisnt $m3 (Groudon) left us both exhausted
sub_8052910(&gUnknown_8106140);
- sub_808C2D4();
+ KyogreScreenFlash();
// I am $m2 (Kyogre)!
// The lord of the sea!
sub_8052910(&gUnknown_8106214);
- sub_808C2D4();
+ KyogreScreenFlash();
// Witness the destructive force of my waves!
sub_8052910(&gUnknown_8106244);
- sub_808C2D4();
+ KyogreScreenFlash();
// Marvel at my awesome
// power!
sub_8052910(&gUnknown_810627C);
@@ -502,11 +502,11 @@ void nullsub_99(void)
{
}
-void sub_808C2D4(void)
+void KyogreScreenFlash(void)
{
s32 iVar1;
- sub_8083E38(0x1f8);
+ PlaySoundEffect(0x1f8);
for(iVar1 = 250; iVar1 > 149; iVar1 -= 10){
sub_8085C54(0,0,iVar1,1,1);
sub_803E46C(0x46);
@@ -532,7 +532,7 @@ void sub_808C360(void)
sub_803E9D0();
sub_803E46C(0x46);
gUnknown_203B418->unk7 = 0;
- sub_808C2D4();
+ KyogreScreenFlash();
}
void sub_808C3A0(void)
@@ -593,7 +593,7 @@ void sub_808C4C4(void)
{
s32 iVar1;
- sub_8083E38(0x2c1);
+ PlaySoundEffect(0x2c1);
for(iVar1 = 250; iVar1 > 149; iVar1 -= 10){
sub_8085C54(iVar1,0,0,1,1);
sub_803E46C(0x46);
@@ -675,14 +675,14 @@ void CelebiJoinDialogue(void)
if ((HasRecruitedMon(SPECIES_CELEBI)) || (sub_806FD18(local_1c) == '\0'))
{
sub_8068FE0(local_1c,0x21c,0);
- sub_808696C(uVar2);
+ SpriteLookAroundEffect(uVar2);
sub_803E708(10,0x46);
// .........
sub_8052910(&gUnknown_810663C);
}
else
{
- sub_808696C(uVar2);
+ SpriteLookAroundEffect(uVar2);
sub_803E708(10,0x46);
sub_80862BC(uVar2);
sub_803E708(10,0x46);
@@ -695,12 +695,12 @@ void CelebiJoinDialogue(void)
sub_8086598();
// The Time-Traveling Pokemon $m2 (Celebi)!
sub_8052910(&gUnknown_8106400);
- sub_8083E38(0x1c7);
+ PlaySoundEffect(0x1c7);
sub_806CDD4(local_1c,10,0);
sub_803E708(0x14,0x46);
sub_806CE68(local_1c,0);
sub_803E708(4,0x46);
- sub_8083E38(0x1c7);
+ PlaySoundEffect(0x1c7);
sub_806CDD4(local_1c,10,0);
sub_8052910(&gUnknown_810643C);
sub_803E708(10,0x46);
@@ -718,17 +718,17 @@ void CelebiJoinDialogue(void)
if (menuChoice == 1)
{
sub_8083F14();
- sub_8083E38(0xcc);
+ PlaySoundEffect(0xcc);
while (sub_8083E74(0xcc) != 0) {
sub_803E46C(0x46);
}
sub_8083E88(0x7f);
- sub_8083E38(0x1c7);
+ PlaySoundEffect(0x1c7);
sub_80861D4(local_1c,0xd,0);
sub_803E708(0x37,0x46);
- sub_8083E38(0x1d5);
+ PlaySoundEffect(0x1d5);
sub_803E708(0x1a,0x46);
- sub_8083E38(0x1d5);
+ PlaySoundEffect(0x1d5);
sub_803E708(0x1c,0x46);
sub_8052910(&gUnknown_8106468);
sub_803E708(10,0x46);
@@ -736,12 +736,12 @@ void CelebiJoinDialogue(void)
sub_8083E88(0x7f);
sub_8052910(&gUnknown_810648C);
sub_803E708(10,0x46);
- sub_8083E38(0x1c7);
+ PlaySoundEffect(0x1c7);
sub_80861D4(local_1c,0xd,0);
sub_803E708(0x37,0x46);
- sub_8083E38(0x1d5);
+ PlaySoundEffect(0x1d5);
sub_803E708(0x1a,0x46);
- sub_8083E38(0x1d5);
+ PlaySoundEffect(0x1d5);
sub_803E708(0x1b,0x46);
sub_8052910(&gUnknown_81064BC);
sub_803E708(10,0x46);
@@ -815,7 +815,7 @@ void CelebiJoinDialogue(void)
"\tmovs r2, 0\n"
"\tbl sub_8068FE0\n"
"\tadds r0, r7, 0\n"
- "\tbl sub_808696C\n"
+ "\tbl SpriteLookAroundEffect\n"
"\tmovs r0, 0xA\n"
"\tmovs r1, 0x46\n"
"\tbl sub_803E708\n"
@@ -826,7 +826,7 @@ void CelebiJoinDialogue(void)
"_0808C67C: .4byte gUnknown_810663C\n"
"_0808C680:\n"
"\tadds r0, r7, 0\n"
- "\tbl sub_808696C\n"
+ "\tbl SpriteLookAroundEffect\n"
"\tmovs r0, 0xA\n"
"\tmovs r1, 0x46\n"
"\tbl sub_803E708\n"
@@ -848,7 +848,7 @@ void CelebiJoinDialogue(void)
"\tbl sub_8052910\n"
"\tldr r4, _0808C724\n"
"\tadds r0, r4, 0\n"
- "\tbl sub_8083E38\n"
+ "\tbl PlaySoundEffect\n"
"\tldr r0, [sp]\n"
"\tmovs r1, 0xA\n"
"\tmovs r2, 0\n"
@@ -863,7 +863,7 @@ void CelebiJoinDialogue(void)
"\tmovs r1, 0x46\n"
"\tbl sub_803E708\n"
"\tadds r0, r4, 0\n"
- "\tbl sub_8083E38\n"
+ "\tbl PlaySoundEffect\n"
"\tldr r0, [sp]\n"
"\tmovs r1, 0xA\n"
"\tmovs r2, 0\n"
@@ -908,7 +908,7 @@ void CelebiJoinDialogue(void)
"\tbne _0808C824\n"
"\tbl sub_8083F14\n"
"\tmovs r0, 0xCC\n"
- "\tbl sub_8083E38\n"
+ "\tbl PlaySoundEffect\n"
"\tb _0808C76E\n"
"\t.align 2, 0\n"
"_0808C75C: .4byte gPtrPurityForestAllowCelebiToJoinText\n"
@@ -926,7 +926,7 @@ void CelebiJoinDialogue(void)
"\tmovs r0, 0x7F\n"
"\tbl sub_8083E88\n"
"\tmov r0, r8\n"
- "\tbl sub_8083E38\n"
+ "\tbl PlaySoundEffect\n"
"\tldr r0, [sp]\n"
"\tmovs r1, 0xD\n"
"\tmovs r2, 0\n"
@@ -935,12 +935,12 @@ void CelebiJoinDialogue(void)
"\tmovs r1, 0x46\n"
"\tbl sub_803E708\n"
"\tadds r0, r6, 0\n"
- "\tbl sub_8083E38\n"
+ "\tbl PlaySoundEffect\n"
"\tmovs r0, 0x1A\n"
"\tmovs r1, 0x46\n"
"\tbl sub_803E708\n"
"\tadds r0, r6, 0\n"
- "\tbl sub_8083E38\n"
+ "\tbl PlaySoundEffect\n"
"\tmovs r0, 0x1C\n"
"\tmovs r1, 0x46\n"
"\tbl sub_803E708\n"
@@ -961,7 +961,7 @@ void CelebiJoinDialogue(void)
"\tmovs r1, 0x46\n"
"\tbl sub_803E708\n"
"\tmov r0, r8\n"
- "\tbl sub_8083E38\n"
+ "\tbl PlaySoundEffect\n"
"\tldr r0, [sp]\n"
"\tmovs r1, 0xD\n"
"\tmovs r2, 0\n"
@@ -970,12 +970,12 @@ void CelebiJoinDialogue(void)
"\tmovs r1, 0x46\n"
"\tbl sub_803E708\n"
"\tadds r0, r6, 0\n"
- "\tbl sub_8083E38\n"
+ "\tbl PlaySoundEffect\n"
"\tmovs r0, 0x1A\n"
"\tmovs r1, 0x46\n"
"\tbl sub_803E708\n"
"\tadds r0, r6, 0\n"
- "\tbl sub_8083E38\n"
+ "\tbl PlaySoundEffect\n"
"\tmovs r0, 0x1B\n"
"\tmovs r1, 0x46\n"
"\tbl sub_803E708\n"
@@ -1073,7 +1073,7 @@ void sub_808C8E0(struct unkDungeon_8041D5C *param_1)
{
s32 iVar1;
- sub_8083E38(0x1a5);
+ PlaySoundEffect(0x1a5);
sub_806CDD4(param_1, 0, 0);
for(iVar1 = 0; iVar1 < 16; iVar1++){
param_1->unk70->unk174 = iVar1 << 8;
@@ -1149,7 +1149,7 @@ void MedichamResuceDialogue(void)
s32 counter;
temp = sub_8085680(7);
- sub_808696C();
+ SpriteLookAroundEffect(temp);
sub_803E708(0xA, 0x46);
// Oh my I can't seem to find a way out...
sub_8052910(&gUnknown_8106778);
@@ -1167,12 +1167,12 @@ void MedichamResuceDialogue(void)
sub_80869E4(temp, 4, 2, 0);
sub_8052910(&gUnknown_81067E0);
sub_803E708(0xA, 0x46);
- sub_8083E38(0x1c7);
+ PlaySoundEffect(0x1c7);
sub_806CDD4(temp, 0xA, 0);
sub_803E708(0x14, 0x46);
sub_806CE68(temp, 0);
sub_803E708(0x4, 0x46);
- sub_8083E38(0x1c7);
+ PlaySoundEffect(0x1c7);
sub_806CDD4(temp, 0xA, 0);
sub_803E708(0x14, 0x46);
// Yes Yes
@@ -1237,7 +1237,7 @@ void SmeargleRescueDialogue(void)
s32 counter;
temp = sub_8085680(0x1F);
- sub_808696C();
+ SpriteLookAroundEffect(temp);
sub_803E708(0xA, 0x46);
// Ohhh...
// I've lost my bearings
@@ -1259,12 +1259,12 @@ void SmeargleRescueDialogue(void)
// Oh! You are?
sub_8052910(&gUnknown_8106918);
sub_803E708(0xA, 0x46);
- sub_8083E38(0x1c7);
+ PlaySoundEffect(0x1c7);
sub_806CDD4(temp, 0xA, 0);
sub_803E708(0x14, 0x46);
sub_806CE68(temp, 0);
sub_803E708(0x4, 0x46);
- sub_8083E38(0x1c7);
+ PlaySoundEffect(0x1c7);
sub_806CDD4(temp, 0xA, 0);
sub_803E708(0x14, 0x46);
// Did you maybe come to rescue me?
diff --git a/src/code_8057824_1.c b/src/code_8057824_1.c
index c11a8c9..4138da4 100644
--- a/src/code_8057824_1.c
+++ b/src/code_8057824_1.c
@@ -2,6 +2,7 @@
#include "gUnknown_203B418.h"
#include "code_8041D5C.h"
#include "constants/species.h"
+#include "pokemon.h"
extern struct unkStruct_203B418 *gUnknown_203B418;
@@ -9,6 +10,83 @@ extern u32 gUnknown_202EDC8;
extern u8 gUnknown_202E038[0x50];
extern u8 gAvailablePokemonNames[0x58];
+extern s16 gUnknown_80F57CA;
+extern s16 gUnknown_80F57D2;
+extern s16 gUnknown_80F57D0;
+extern s16 gUnknown_80F57CE;
+
+extern u32 gUnknown_8103D8C;
+extern u32 gUnknown_8103D98;
+extern u32 gUnknown_8103DD8;
+extern u32 gUnknown_8103E28;
+extern u32 gUnknown_8103BD8;
+extern u32 gUnknown_8103C00;
+extern u32 gUnknown_8103C3C;
+extern u32 gUnknown_8103C74;
+extern u32 gUnknown_8103CC4;
+extern u32 gUnknown_8103D0C;
+extern u32 gUnknown_8103D50;
+extern u32 gUnknown_8103B58;
+extern u32 gUnknown_8103904;
+extern u32 gUnknown_8103938;
+extern u32 gUnknown_8103AA4;
+extern u32 gUnknown_8103AE4;
+extern u32 gUnknown_8103B30;
+extern u32 gUnknown_8103690;
+extern u32 gUnknown_8103844;
+extern u32 gUnknown_8103874;
+extern u32 gUnknown_81038A8;
+extern u32 gUnknown_81038F8;
+extern u32 gUnknown_8103500;
+extern u32 gUnknown_810352C;
+extern u32 gUnknown_8103578;
+extern u32 gUnknown_81035D4;
+extern u32 gUnknown_8103618;
+extern u32 gUnknown_810367C;
+extern u32 gUnknown_8103690;
+extern u32 gUnknown_81036C8;
+extern u32 gUnknown_81037A0;
+extern u32 gUnknown_81037D4;
+extern u32 gUnknown_8103820;
+extern u32 gUnknown_8102C30;
+extern u32 gUnknown_8102C54;
+extern u32 gUnknown_8102C98;
+extern u32 gUnknown_8102CB0;
+extern u32 gUnknown_8102CF8;
+extern u32 gUnknown_8102D34;
+extern u32 gUnknown_8102D4C;
+extern u32 gUnknown_8102D7C;
+extern u32 gUnknown_8102DFC;
+extern u32 gUnknown_8102E2C;
+extern u32 gUnknown_8102E54;
+extern u32 gUnknown_8102BE4;
+extern u32 gUnknown_8102BC4;
+extern u32 gUnknown_8102B54;
+extern u32 gUnknown_8102B1C;
+extern u32 gUnknown_8103488;
+extern u32 gUnknown_81033A0;
+extern u32 gUnknown_81033AC;
+extern u32 gUnknown_810343C;
+extern u32 gUnknown_810347C;
+extern u32 gUnknown_8103188;
+extern u32 gUnknown_8103228;
+extern u32 gUnknown_8103310;
+extern u32 gUnknown_8103340;
+extern u32 gUnknown_8102E70;
+extern u32 gUnknown_8102EBC;
+extern u32 gUnknown_8102EE0;
+extern u32 gUnknown_8102EF8;
+extern u32 gUnknown_8102F30;
+extern u32 gUnknown_8102F64;
+extern u32 gUnknown_8102F84;
+extern u32 gUnknown_8102FAC;
+extern u32 gUnknown_8102FC4;
+extern u32 gUnknown_8102FD8;
+extern u32 gUnknown_8103054;
+extern u32 gUnknown_81030D8;
+extern u32 gUnknown_8103110;
+extern u32 gUnknown_8103140;
+extern u32 gUnknown_8102B10;
extern u32 gUnknown_8105244;
extern u32 gUnknown_810517C;
extern u32 gUnknown_81050B4;
@@ -89,11 +167,60 @@ extern u32 gUnknown_8103F0C;
extern u32 gUnknown_8103F4C;
extern u32 gUnknown_8103FCC;
extern u32 gUnknown_8103E34;
+extern u32 gUnknown_8102A9C;
+extern u32 gUnknown_8102984;
+extern u32 gUnknown_81029B4;
+extern u32 gUnknown_8102A18;
+extern u32 gUnknown_8102A24;
+extern u32 gUnknown_8102A74;
+extern u32 gUnknown_81028D4;
+extern u32 gUnknown_8102918;
+extern u32 gUnknown_8102948;
+extern u32 gUnknown_8102478;
+extern u32 gUnknown_81025B4;
+extern u32 gUnknown_81025D4;
+extern u32 gUnknown_8102610;
+extern u32 gUnknown_81026C4;
+extern u32 gUnknown_810270C;
+extern u32 gUnknown_810272C;
+extern u32 gUnknown_81027BC;
+extern u32 gUnknown_8102810;
+extern u32 gUnknown_8102840;
+extern u32 gUnknown_810286C;
+extern u32 gUnknown_81028B8;
+extern u32 gUnknown_810232C;
+extern u32 gUnknown_8102398;
+extern u32 gUnknown_81023C4;
+extern u32 gUnknown_8102400;
+extern u32 gUnknown_8102454;
+extern u32 gUnknown_8100D3C;
+extern u32 gUnknown_8102158;
+extern u32 gUnknown_8102190;
+extern u32 gUnknown_8102200;
+extern u32 gUnknown_8102254;
+extern u32 gUnknown_81022F8;
+extern u32 gUnknown_8101A9C;
+extern u32 gUnknown_8101AD4;
+extern u32 gUnknown_8101C30;
+extern u32 gUnknown_8101CBC;
+extern u32 gUnknown_8101D8C;
+extern u32 gUnknown_8101DA0;
+extern u32 gUnknown_8101E1C;
+extern u32 gUnknown_8101EAC;
+extern u32 gUnknown_8102070;
+extern u32 gUnknown_81020A4;
+extern u32 gUnknown_81020D4;
+extern u32 gUnknown_8102108;
+extern u32 gUnknown_810193C;
+extern u32 gUnknown_8101970;
+extern u32 gUnknown_8101994;
+extern u32 gUnknown_81019E4;
+extern u32 gUnknown_8101A04;
+extern u32 gUnknown_8101A38;
extern struct unkDungeon_8041D5C *sub_8085480(void);
extern struct unkDungeon_8041D5C *sub_8085680(u32);
extern void sub_808BBA8(struct unkDungeon_8041D5C * );
-extern void CopySpeciesNametoBuffer(char *r0, u32 r1);
extern void sub_80855E4(void *);
extern void sub_8041888(u32);
extern void sub_80861B8(struct unkDungeon_8041D5C *, u32, u32);
@@ -105,7 +232,7 @@ extern void sub_808BC20(struct unkDungeon_8041D5C *);
extern void sub_80862BC(struct unkDungeon_8041D5C *);
extern void sub_8086448();
-extern void sub_808696C();
+extern void SpriteLookAroundEffect();
extern u32 sub_80861F8(u32, struct unkDungeon_8041D5C *, u32);
extern void sub_8086A70(struct unkDungeon_8041D5C *, u32, u32);
extern void sub_80858AC(u32 *, u32);
@@ -121,7 +248,7 @@ extern void sub_8085930(u32);
extern void sub_8068FE0(struct unkDungeon_8041D5C *, u32, u32);
extern void sub_8085918(struct unkDungeon_8041D5C *, u32);
extern void sub_8049ED4();
-extern void sub_8085860(s16 r0, u32 r1);
+extern void sub_8085860(s32 r0, u32 r1);
extern void sub_806CE68(struct unkDungeon_8041D5C *, u32);
extern void sub_8052D44(u8 *, struct unkDungeon_8041D5C *, struct unkDungeon_8041D5C *);
@@ -134,7 +261,7 @@ extern void sub_808B1CC(u8);
extern void sub_8090A8C(u8 *, u32, u32);
extern void sub_80464C8(struct unkDungeon_8041D5C *, u32, u8 *);
extern void sub_8098044(u32);
-extern void sub_8083E38(u32);
+extern void PlaySoundEffect(u32);
extern void sub_8085C54(u32, u32, u32, u32, u32);
extern void sub_803E46C(u32);
extern void sub_8085EB0();
@@ -189,79 +316,6 @@ extern void sub_8083F14();
extern u8 sub_80450E0(struct unkDungeon_8041D5C *);
extern u8 sub_8086AE4(u32);
-extern u32 gUnknown_8103D8C;
-extern u32 gUnknown_8103D98;
-extern u32 gUnknown_8103DD8;
-extern u32 gUnknown_8103E28;
-extern u32 gUnknown_8103BD8;
-extern u32 gUnknown_8103C00;
-extern u32 gUnknown_8103C3C;
-extern u32 gUnknown_8103C74;
-extern u32 gUnknown_8103CC4;
-extern u32 gUnknown_8103D0C;
-extern u32 gUnknown_8103D50;
-extern u32 gUnknown_8103B58;
-extern u32 gUnknown_8103904;
-extern u32 gUnknown_8103938;
-extern u32 gUnknown_8103AA4;
-extern u32 gUnknown_8103AE4;
-extern u32 gUnknown_8103B30;
-extern u32 gUnknown_8103690;
-extern u32 gUnknown_8103844;
-extern u32 gUnknown_8103874;
-extern u32 gUnknown_81038A8;
-extern u32 gUnknown_81038F8;
-extern u32 gUnknown_8103500;
-extern u32 gUnknown_810352C;
-extern u32 gUnknown_8103578;
-extern u32 gUnknown_81035D4;
-extern u32 gUnknown_8103618;
-extern u32 gUnknown_810367C;
-extern u32 gUnknown_8103690;
-extern u32 gUnknown_81036C8;
-extern u32 gUnknown_81037A0;
-extern u32 gUnknown_81037D4;
-extern u32 gUnknown_8103820;
-extern s16 gUnknown_80F57CA;
-extern u32 gUnknown_8102C30;
-extern u32 gUnknown_8102C54;
-extern u32 gUnknown_8102C98;
-extern u32 gUnknown_8102CB0;
-extern u32 gUnknown_8102CF8;
-extern u32 gUnknown_8102D34;
-extern u32 gUnknown_8102D4C;
-extern u32 gUnknown_8102D7C;
-extern u32 gUnknown_8102DFC;
-extern u32 gUnknown_8102E2C;
-extern u32 gUnknown_8102E54;
-extern u32 gUnknown_8102BE4;
-extern u32 gUnknown_8102BC4;
-extern u32 gUnknown_8102B54;
-extern u32 gUnknown_8102B1C;
-extern u32 gUnknown_8103488;
-extern u32 gUnknown_81033A0;
-extern u32 gUnknown_81033AC;
-extern u32 gUnknown_810343C;
-extern u32 gUnknown_810347C;
-extern u32 gUnknown_8103188;
-extern u32 gUnknown_8103228;
-extern u32 gUnknown_8103310;
-extern u32 gUnknown_8103340;
-extern u32 gUnknown_8102E70;
-extern u32 gUnknown_8102EBC;
-extern u32 gUnknown_8102EE0;
-extern u32 gUnknown_8102EF8;
-extern u32 gUnknown_8102F30;
-extern u32 gUnknown_8102F64;
-extern u32 gUnknown_8102F84;
-extern u32 gUnknown_8102FAC;
-extern u32 gUnknown_8102FC4;
-extern u32 gUnknown_8102FD8;
-extern u32 gUnknown_8103054;
-extern u32 gUnknown_81030D8;
-extern u32 gUnknown_8103110;
-extern u32 gUnknown_8103140;
-extern s16 gUnknown_80F57D2;
extern void sub_8072008(struct unkDungeon_8041D5C *, struct unkDungeon_8041D5C *, s16, u32, u32);
extern struct unkDungeon_8041D5C *sub_808548C();
@@ -274,8 +328,6 @@ extern void sub_8085374();
extern void sub_8086848(u32 ,u32);
extern void sub_80856C8(struct unkDungeon_8041D5C *, s32, s32);
extern void sub_80861D4(struct unkDungeon_8041D5C *, u32, u32);
-void sub_8088C08(struct unkDungeon_8041D5C * param_1);
-void sub_8088CA0(void);
extern void sub_8086738();
extern void sub_8086A54(struct unkDungeon_8041D5C *);
extern void sub_8086764();
@@ -284,6 +336,867 @@ extern u32 sub_803F994();
extern s32 sub_803F9B0();
extern void sub_803F878(u32,s32);
+void sub_8088C08(struct unkDungeon_8041D5C * param_1);
+void sub_8088CA0(void);
+void ArticunoScreenFlash(void);
+void sub_8088484(struct unkDungeon_8041D5C *param_1);
+void sub_8088574(void);
+
+void sub_8087D30(struct unkDungeon_8041D5C * param_1);
+void sub_8087D80(s32 r0, s32 r1);
+void sub_8087DE8(s32 r0, s32 r1);
+void sub_8087EB0(void);
+void sub_808654C(void);
+
+extern void sub_8086598();
+extern void sub_80865E8();
+
+
+extern void sub_8086500(void);
+extern void sub_8086690(void);
+void sub_8087F24(void);
+extern void sub_808663C(void);
+void sub_8087704(struct unkDungeon_8041D5C *param_1);
+void sub_808775C(int param_1);
+
+extern u32 gUnknown_81017E4;
+extern u32 gUnknown_81015A0;
+extern u32 gUnknown_8101898;
+extern u32 gUnknown_81018EC;
+extern u32 gUnknown_8101918;
+
+
+void ZapdosReFightDialogue(void)
+{
+ struct unkDungeon_8041D5C *iVar1;
+ struct unkDungeon_8041D5C *uVar2;
+
+ iVar1 = sub_8085480();
+ uVar2 = sub_8085680(8);
+ sub_8086448();
+ sub_803E708(10,0x46);
+ sub_8052910(&gUnknown_81017E4);
+ sub_803E708(10,0x46);
+ PlaySoundEffect(0x1da);
+ sub_8052910(&gUnknown_81015A0);
+ sub_803E708(10,0x46);
+ sub_8087704(uVar2);
+ sub_803E708(10,0x46);
+ sub_8052910(&gUnknown_8101898);
+ sub_808775C(1);
+ sub_8052910(&gUnknown_81018EC);
+ sub_808775C(2);
+ sub_8052910(&gUnknown_8101918);
+ sub_8086A70(uVar2,300,0xb);
+ sub_80858AC(&iVar1->unkC,0x10);
+}
+
+void ZapdosPostStoryPreFightDialogue(void)
+{
+ struct unkDungeon_8041D5C * iVar2;
+ struct unkDungeon_8041D5C * uVar3;
+
+ iVar2 = sub_8085480();
+ uVar3 = sub_8085680(8);
+ sub_8086448();
+ if (sub_8086AE4(SPECIES_ZAPDOS)) {
+ sub_80866C4(&gUnknown_8101A38);
+ }
+ else {
+ sub_808775C(1);
+ PlaySoundEffect(0x1da);
+ sub_8052910(&gUnknown_810193C);
+ sub_8087704(uVar3);
+ sub_8052910(&gUnknown_8101970);
+ sub_808775C(1);
+ sub_8052910(&gUnknown_8101994);
+ sub_808775C(2);
+ sub_8052910(&gUnknown_81019E4);
+ sub_808775C(2);
+ sub_8052910(&gUnknown_8101A04);
+ sub_803E708(10,0x46);
+ sub_8086A70(uVar3,300,0xb);
+ sub_80858AC(&iVar2->unkC,0x10);
+ }
+}
+
+
+void sub_8087704(struct unkDungeon_8041D5C *param_1)
+{
+ int iVar1;
+
+ param_1->unk70->unk15C = 1;
+ param_1->unk70->unk15E = 0;
+ param_1->unk70->unk174 = 200;
+ PlaySoundEffect(0x1ea);
+ for(iVar1 = 200; iVar1 >= 0; iVar1 -= 5)
+ {
+ param_1->unk70->unk174 = iVar1 * 256;
+ sub_803E46C(0x46);
+ }
+ sub_803E708(0x1e,0x46);
+}
+
+void sub_808775C(int param_1)
+{
+ int iVar1;
+ int iVar2;
+
+ PlaySoundEffect(0x1f6);
+ if (2 < param_1) {
+ for(iVar2 = 250; iVar2 > 199; iVar2 -= 10)
+ {
+ sub_8085C54(iVar2,iVar2,iVar2 / 2,1,1);
+ sub_803E46C(0x46);
+ }
+ }
+ if (1 < param_1) {
+ for(iVar2 = 250; iVar2 > 199; iVar2 -= 10)
+ {
+ sub_8085C54(iVar2,iVar2,iVar2 / 2,1,1);
+ sub_803E46C(0x46);
+ }
+ }
+ for(iVar2 = 250; iVar2 >= 0; iVar2 -= 10)
+ {
+ iVar1 = iVar2;
+ if (iVar2 < 0) {
+ iVar1 = iVar2 + 3;
+ }
+ sub_8085C54(iVar2,iVar2,iVar1 >> 2,1,1);
+ sub_803E46C(0x46);
+ }
+ sub_8085EB0();
+}
+
+
+
+void sub_80877E8(void)
+{
+ struct unkDungeon_8041D5C * iVar1;
+ struct unkDungeon_8041D5C * uVar2;
+
+ iVar1 = sub_8085480();
+ uVar2 = sub_8085680(9);
+ sub_8083E88(0x26);
+ sub_8085374();
+ sub_80854D4();
+ sub_8085930(6);
+ sub_80855E4(sub_8086A3C);
+ sub_8085918(uVar2,0);
+ sub_8086A3C(uVar2);
+ sub_8085860(iVar1->unk4 + -3,iVar1->unk6 + -2);
+ CopySpeciesNametoBuffer(gUnknown_202E038, SPECIES_MOLTRES);
+}
+
+void sub_8087848(void)
+{
+ struct unkDungeon_8041D5C *iVar2;
+ struct unkDungeon_8041D5C *uVar3;
+
+ u32 uVar4;
+ s32 iVar3;
+
+ iVar2 = sub_8085480();
+ uVar3 = sub_8085680(9);
+ sub_8083E88(0x26);
+ sub_80854D4();
+ sub_8085930(6);
+ sub_80855E4(sub_8086A3C);
+ if (sub_8086AE4(SPECIES_MOLTRES)) {
+ sub_8068FE0(uVar3,0x21c,0);
+ }
+ else {
+ sub_8072008(uVar3,uVar3,gUnknown_80F57CE,0,0);
+ sub_8085918(uVar3,0);
+ sub_8086A3C(uVar3);
+ }
+ sub_8085860(iVar2->unk4 - 5, iVar2->unk6);
+ uVar4 = sub_803F994();
+ iVar3 = sub_803F9B0();
+ sub_803F878(uVar4,iVar3 + -0x1000);
+ CopySpeciesNametoBuffer(gUnknown_202E038,SPECIES_MOLTRES);
+}
+
+
+
+void sub_80878F4(char param_1, s32 param_2)
+{
+ if ((((param_2 * 0x1000000) + 0xF6000000U) >> 0x18 < 3) && (param_1 == 0x9)) {
+ sub_8097FA8(0x7);
+ gUnknown_203B418->unk2 = 1;
+ }
+}
+
+void MoltresPreFightDialogue(void)
+{
+ struct unkDungeon_8041D5C *iVar1;
+ struct unkDungeon_8041D5C *uVar2;
+ struct unkDungeon_8041D5C *uVar3;
+
+ iVar1 = sub_8085480();
+ uVar2 = sub_808548C();
+ uVar3 = sub_8085680(9);
+ sub_8087D80(0xc,5);
+ sub_8086500();
+ sub_803E708(10,0x46);
+ sub_8052910(&gUnknown_8101A9C);
+ sub_803E708(10,0x46);
+ sub_80869E4(uVar2,4,1,5);
+ sub_803E708(4,0x46);
+ SpriteLookAroundEffect(uVar2);
+ sub_803E708(10,0x46);
+ sub_8052910(&gUnknown_8101AD4);
+ sub_803E708(10,0x46);
+ sub_8087D80(0xc,5);
+ sub_8087DE8(9,5);
+ sub_8052910(&gUnknown_8101C30);
+ sub_803E708(10,0x46);
+ sub_80869E4(uVar2,4,1,2);
+ sub_80869E4(iVar1,4,2,6);
+ sub_8052910(&gUnknown_8101CBC);
+ sub_803E708(10,0x46);
+ sub_80869E4(uVar2,4,2,6);
+ sub_8086690();
+ sub_8052910(&gUnknown_8101D8C);
+ sub_803E708(10,0x46);
+ sub_8085930(5);
+ sub_803E708(4,0x46);
+ sub_8085930(4);
+ PlaySoundEffect(0x2f2);
+ sub_8083F14();
+ sub_8087F24();
+ sub_8052910(&gUnknown_8101DA0);
+ sub_803E708(10,0x46);
+ sub_8052910(&gUnknown_8101E1C);
+ sub_803E708(10,0x46);
+ PlaySoundEffect(0x1cf);
+ sub_80856E0(uVar2,4);
+ sub_803E708(10,0x46);
+ sub_8052910(&gUnknown_8101EAC);
+ sub_803E708(10,0x46);
+ sub_8087EB0();
+ PlaySoundEffect(0x1da);
+ sub_8052910(&gUnknown_8102070);
+ sub_803E708(10,0x46);
+ sub_8087D80(9,5);
+ sub_8087DE8(0xb,5);
+ sub_8052910(&gUnknown_81020A4);
+ sub_803E708(10,0x46);
+ sub_8087D80(0xc,5);
+ sub_8087DE8(9,5);
+ sub_8087D30(uVar3);
+ sub_808663C();
+ sub_8087EB0();
+ sub_8052910(&gUnknown_81020D4);
+ sub_803E708(10,0x46);
+ sub_8087DE8(0xb,6);
+ sub_8052910(&gUnknown_8102108);
+ sub_803E708(10,0x46);
+ sub_8086A70(uVar3,400,0xb);
+ sub_80858AC(&iVar1->unkC,0x10);
+}
+
+
+void MoltresReFightDialogue(void)
+{
+ struct unkDungeon_8041D5C *iVar1;
+ struct unkDungeon_8041D5C *uVar2;
+ struct unkDungeon_8041D5C *uVar3;
+
+ iVar1 = sub_8085480();
+ uVar2 = sub_808548C();
+ uVar3 = sub_8085680(9);
+ sub_8087D80(10,5);
+ sub_8086500();
+ sub_803E708(10,0x46);
+ SpriteLookAroundEffect(uVar2);
+ sub_803E708(10,0x46);
+ sub_8052910(&gUnknown_8102158);
+ sub_803E708(10,0x46);
+ sub_80869E4(uVar2,4,1,2);
+ sub_80869E4(iVar1,4,2,6);
+ sub_8052910(&gUnknown_8102190);
+ sub_803E708(10,0x46);
+ sub_80869E4(uVar2,4,2,6);
+ sub_80869E4(iVar1,4,2,6);
+ sub_8086690();
+ sub_8087F24();
+ sub_803E708(10,0x46);
+ sub_8085930(5);
+ sub_803E708(4,0x46);
+ sub_8085930(4);
+ sub_8087D30(uVar3);
+ sub_808663C();
+ sub_8087EB0();
+ sub_8052910(&gUnknown_8102200);
+ sub_803E708(10,0x46);
+ sub_8087DE8(0xb,6);
+ sub_8052910(&gUnknown_8102254);
+ sub_803E708(10,0x46);
+ sub_8052910(&gUnknown_81022F8);
+ sub_803E708(10,0x46);
+ sub_8086A70(uVar3,400,0xb);
+ sub_80858AC(&iVar1->unkC,0x10);
+}
+
+void MoltresPostStoryPreFightDialogue(void)
+{
+ struct unkDungeon_8041D5C * iVar2;
+ struct unkDungeon_8041D5C * uVar3;
+
+ iVar2 = sub_8085480();
+ uVar3 = sub_8085680(9);
+ sub_8087D80(0xc,5);
+ sub_808654C();
+ if (sub_8086AE4(SPECIES_MOLTRES)) {
+ sub_8085930(5);
+ sub_803E708(4,0x46);
+ sub_8085930(4);
+ sub_803E708(4,0x46);
+ sub_803E708(10,0x46);
+ sub_8052910(&gUnknown_8100D3C);
+ sub_803E708(10,0x46);
+ gUnknown_203B418->unk2 = 1;
+ }
+ else {
+ sub_8052910(&gUnknown_810232C);
+ sub_8085930(5);
+ sub_803E708(4,0x46);
+ sub_8085930(4);
+ sub_8087D30(uVar3);
+ sub_8052910(&gUnknown_8102398);
+ sub_8087D80(0xc,5);
+ sub_8087DE8(9,5);
+ sub_8052910(&gUnknown_81023C4);
+ sub_8087EB0();
+ sub_8052910(&gUnknown_8102400);
+ sub_8087DE8(0xb,6);
+ sub_8052910(&gUnknown_8102454);
+ sub_803E708(10,0x46);
+ sub_8086A70(uVar3,400,0xb);
+ sub_80858AC(&iVar2->unkC,0x10);
+ }
+}
+
+void sub_8087D30(struct unkDungeon_8041D5C * param_1)
+{
+ s32 iVar1;
+
+ param_1->unk70->unk15C = 1;
+ param_1->unk70->unk15E = 0;
+ param_1->unk70->unk174 = 0xc800;
+ PlaySoundEffect(0x1f8);
+ iVar1 = 200;
+ for(iVar1 = 200; iVar1 >= 0; iVar1 -= 5)
+ {
+ param_1->unk70->unk174 = iVar1 << 8;
+ sub_803E46C(0x46);
+ }
+}
+
+NAKED
+void sub_8087D80(s32 r0, s32 r1)
+{
+ asm_unified("\tpush {lr}\n"
+ "\tsub sp, 0x8\n"
+ "\tadds r3, r1, 0\n"
+ "\tlsls r1, r0, 1\n"
+ "\tadds r1, r0\n"
+ "\tlsls r1, 11\n"
+ "\tmovs r2, 0xC0\n"
+ "\tlsls r2, 4\n"
+ "\tadds r0, r1, r2\n"
+ "\tcmp r0, 0\n"
+ "\tbge _08087D98\n"
+ "\tadds r0, 0xFF\n"
+"_08087D98:\n"
+ "\tlsls r0, 8\n"
+ "\tlsrs r0, 16\n"
+ "\tldr r1, _08087DE0\n"
+ "\tldr r2, [sp, 0x4]\n"
+ "\tands r2, r1\n"
+ "\torrs r2, r0\n"
+ "\tstr r2, [sp, 0x4]\n"
+ "\tlsls r0, r3, 1\n"
+ "\tadds r0, r3\n"
+ "\tlsls r0, 11\n"
+ "\tmovs r1, 0x80\n"
+ "\tlsls r1, 5\n"
+ "\tadds r0, r1\n"
+ "\tcmp r0, 0\n"
+ "\tbge _08087DB8\n"
+ "\tadds r0, 0xFF\n"
+"_08087DB8:\n"
+ "\tlsls r0, 8\n"
+ "\tlsrs r0, 16\n"
+ "\tlsls r0, 16\n"
+ "\tldr r1, _08087DE4\n"
+ "\tands r2, r1\n"
+ "\torrs r2, r0\n"
+ "\tstr r2, [sp, 0x4]\n"
+ "\tmovs r0, 0xB9\n"
+ "\tlsls r0, 1\n"
+ "\tmovs r1, 0\n"
+ "\tstr r1, [sp]\n"
+ "\tmovs r1, 0x10\n"
+ "\tmovs r2, 0\n"
+ "\tadd r3, sp, 0x4\n"
+ "\tbl sub_8085EC8\n"
+ "\tadd sp, 0x8\n"
+ "\tpop {r0}\n"
+ "\tbx r0\n"
+ "\t.align 2, 0\n"
+"_08087DE0: .4byte 0xffff0000\n"
+"_08087DE4: .4byte 0x0000ffff");
+}
+
+NAKED
+void sub_8087DE8(s32 r0, s32 r1)
+{
+ asm_unified("\tpush {r4-r6,lr}\n"
+ "\tsub sp, 0x8\n"
+ "\tadds r3, r1, 0\n"
+ "\tlsls r1, r0, 1\n"
+ "\tadds r1, r0\n"
+ "\tlsls r1, 11\n"
+ "\tmovs r2, 0xC0\n"
+ "\tlsls r2, 4\n"
+ "\tadds r0, r1, r2\n"
+ "\tcmp r0, 0\n"
+ "\tbge _08087E00\n"
+ "\tadds r0, 0xFF\n"
+"_08087E00:\n"
+ "\tlsls r0, 8\n"
+ "\tlsrs r0, 16\n"
+ "\tldr r1, _08087EA8\n"
+ "\tldr r2, [sp, 0x4]\n"
+ "\tands r2, r1\n"
+ "\torrs r2, r0\n"
+ "\tstr r2, [sp, 0x4]\n"
+ "\tlsls r0, r3, 1\n"
+ "\tadds r0, r3\n"
+ "\tlsls r0, 11\n"
+ "\tmovs r1, 0x80\n"
+ "\tlsls r1, 5\n"
+ "\tadds r0, r1\n"
+ "\tcmp r0, 0\n"
+ "\tbge _08087E20\n"
+ "\tadds r0, 0xFF\n"
+"_08087E20:\n"
+ "\tlsls r0, 8\n"
+ "\tlsrs r0, 16\n"
+ "\tlsls r0, 16\n"
+ "\tldr r1, _08087EAC\n"
+ "\tands r2, r1\n"
+ "\torrs r2, r0\n"
+ "\tstr r2, [sp, 0x4]\n"
+ "\tmovs r0, 0xB9\n"
+ "\tlsls r0, 1\n"
+ "\tmovs r1, 0\n"
+ "\tstr r1, [sp]\n"
+ "\tmovs r1, 0x16\n"
+ "\tmovs r2, 0\n"
+ "\tadd r3, sp, 0x4\n"
+ "\tbl sub_8085EC8\n"
+ "\tadds r6, r0, 0\n"
+ "\tmovs r0, 0xF6\n"
+ "\tlsls r0, 1\n"
+ "\tbl PlaySoundEffect\n"
+ "\tmovs r4, 0xFA\n"
+ "\tmovs r5, 0x1\n"
+"_08087E4E:\n"
+ "\tstr r5, [sp]\n"
+ "\tadds r0, r4, 0\n"
+ "\tmovs r1, 0\n"
+ "\tmovs r2, 0\n"
+ "\tmovs r3, 0x1\n"
+ "\tbl sub_8085C54\n"
+ "\tmovs r0, 0x46\n"
+ "\tbl sub_803E46C\n"
+ "\tsubs r4, 0xA\n"
+ "\tcmp r4, 0x13\n"
+ "\tbgt _08087E4E\n"
+ "\tmovs r0, 0xA\n"
+ "\tmovs r1, 0x46\n"
+ "\tbl sub_803E708\n"
+ "\tmovs r4, 0xFA\n"
+ "\tmovs r5, 0x1\n"
+"_08087E74:\n"
+ "\tstr r5, [sp]\n"
+ "\tadds r0, r4, 0\n"
+ "\tmovs r1, 0\n"
+ "\tmovs r2, 0\n"
+ "\tmovs r3, 0x1\n"
+ "\tbl sub_8085C54\n"
+ "\tmovs r0, 0x46\n"
+ "\tbl sub_803E46C\n"
+ "\tsubs r4, 0xA\n"
+ "\tcmp r4, 0\n"
+ "\tbge _08087E74\n"
+ "\tmovs r0, 0xA\n"
+ "\tmovs r1, 0x46\n"
+ "\tbl sub_803E708\n"
+ "\tbl sub_8085EB0\n"
+ "\tadds r0, r6, 0\n"
+ "\tbl sub_8085F44\n"
+ "\tadd sp, 0x8\n"
+ "\tpop {r4-r6}\n"
+ "\tpop {r0}\n"
+ "\tbx r0\n"
+ "\t.align 2, 0\n"
+"_08087EA8: .4byte 0xffff0000\n"
+"_08087EAC: .4byte 0x0000ffff");
+}
+
+void sub_8087EB0(void)
+{
+ int iVar1;
+
+ PlaySoundEffect(0x1ed);
+ iVar1 = 0xfa;
+ for(iVar1 = 250; iVar1 > 9; iVar1 -= 10)
+ {
+ sub_8085C54(iVar1,iVar1,iVar1 / 2,1,1);
+ sub_803E46C(0x46);
+ }
+ sub_803E708(0x1e,0x46);
+ PlaySoundEffect(0x1ed);
+ for(iVar1 = 250; iVar1 >= 0; iVar1 -= 10)
+ {
+ sub_8085C54(iVar1,iVar1,iVar1 / 2,1,1);
+ sub_803E46C(0x46);
+ }
+ sub_803E708(0x1e,0x46);
+ sub_8085EB0();
+}
+
+void sub_8087F24(void)
+{
+ s32 iVar1;
+
+ for(iVar1 = 0; iVar1 >= -80; iVar1 -= 8)
+ {
+ sub_8085C54(iVar1,iVar1,iVar1,0,0);
+ sub_803E46C(0x46);
+ }
+}
+
+
+void sub_8087F54(void)
+{
+ struct unkDungeon_8041D5C *iVar2;
+ struct unkDungeon_8041D5C *uVar3;
+
+ iVar2 = sub_8085480();
+ uVar3 = sub_8085680(0xd);
+ sub_8083E88(0x72);
+ sub_8085374();
+ sub_80854D4();
+ sub_8085930(4);
+ sub_80855E4(sub_8086A3C);
+ sub_8085918(uVar3, 0);
+ sub_8086A3C(uVar3);
+ sub_8085860(iVar2->unk4,iVar2->unk6 + -3);
+ CopySpeciesNametoBuffer(gUnknown_202E038, SPECIES_ARTICUNO);
+}
+
+void sub_8087FB4(void)
+{
+ struct unkDungeon_8041D5C *iVar2;
+
+ iVar2 = sub_8085680(0xd);
+ sub_8083E88(0x72);
+ sub_8085374();
+ sub_80854D4();
+ sub_8085930(4);
+ sub_8085918(iVar2, 0);
+ sub_806CDD4(iVar2, 0xF, 0);
+ CopySpeciesNametoBuffer(gUnknown_202E038, SPECIES_ARTICUNO);
+}
+
+void sub_8087FF8(void)
+{
+ struct unkDungeon_8041D5C *iVar2;
+ struct unkDungeon_8041D5C *uVar3;
+
+ iVar2 = sub_8085480();
+ uVar3 = sub_8085680(0xd);
+ sub_8085374();
+ sub_80854D4();
+ sub_8085930(4);
+ sub_80855E4(sub_8086A3C);
+ if (sub_8086AE4(SPECIES_ARTICUNO)) {
+ sub_8068FE0(uVar3,0x21c,0);
+ }
+ else {
+ sub_8072008(uVar3,uVar3,gUnknown_80F57D0,0,0);
+ sub_8085918(uVar3,0);
+ sub_8086A3C(uVar3);
+ }
+ sub_8085860(iVar2->unk4,iVar2->unk6 + -3);
+ CopySpeciesNametoBuffer(gUnknown_202E038, SPECIES_ARTICUNO);
+}
+
+
+
+void sub_8088088(char param_1, s32 param_2)
+{
+ if ((((param_2 * 0x1000000) + 0xF3000000U) >> 0x18 < 3) && (param_1 == 0xD)) {
+ sub_8097FA8(0x9);
+ gUnknown_203B418->unk2 = 1;
+ }
+}
+
+void ArticunoPreFightDialogue(void)
+{
+ struct unkDungeon_8041D5C *iVar1;
+ struct unkDungeon_8041D5C *uVar2;
+ struct unkDungeon_8041D5C *uVar3;
+
+ iVar1 = sub_8085480();
+ uVar2 = sub_808548C();
+ uVar3 = sub_8085680(0xd);
+ sub_8086448();
+ SpriteLookAroundEffect(uVar2);
+ sub_8052910(&gUnknown_8102478);
+ sub_803E708(10,0x46);
+ sub_8086598();
+ sub_8083F14();
+ sub_8052910(&gUnknown_81025B4);
+ sub_803E708(10,0x46);
+ sub_80869E4(uVar2,4,1,2);
+ sub_80869E4(iVar1,4,2,6);
+ sub_8052910(&gUnknown_81025D4);
+ sub_803E708(10,0x46);
+ sub_8085918(iVar1,6);
+ sub_803E708(4,0x46);
+ sub_8085918(iVar1,5);
+ sub_803E708(4,0x46);
+ sub_8085918(iVar1,6);
+ sub_803E708(4,0x46);
+ sub_8085918(iVar1,7);
+ sub_803E708(4,0x46);
+ sub_8085918(iVar1,6);
+ sub_803E708(4,0x46);
+ sub_8085918(iVar1,5);
+ sub_803E708(4,0x46);
+ sub_8085918(iVar1,6);
+ sub_803E708(10,0x46);
+ sub_8052910(&gUnknown_8102610);
+ sub_803E708(10,0x46);
+ sub_8052910(&gUnknown_81026C4);
+ sub_803E708(10,0x46);
+ sub_80869E4(iVar1,4,1,4);
+ sub_80869E4(uVar2,4,2,4);
+ PlaySoundEffect(0x1d5);
+ SpriteLookAroundEffect(uVar2);
+ PlaySoundEffect(0x1d5);
+ SpriteLookAroundEffect(iVar1);
+ sub_8052910(&gUnknown_810270C);
+ sub_803E708(10,0x46);
+ sub_8052910(&gUnknown_810272C);
+ sub_803E708(10,0x46);
+ PlaySoundEffect(0); // snow flurry
+ gUnknown_203B418->unkE265 = 7;
+ sub_807EAA0(0,1);
+ PlaySoundEffect(0x1ee); // flash effect?
+ sub_8088574();
+ sub_8052910(&gUnknown_81027BC);
+ sub_803E708(10,0x46);
+ ArticunoScreenFlash();
+ sub_8086738();
+ PlaySoundEffect(0x1da);
+ sub_8052910(&gUnknown_8102810);
+ sub_803E708(10,0x46);
+ PlaySoundEffect(0x1ea);
+ sub_8088484(uVar3);
+ sub_80865E8();
+ ArticunoScreenFlash();
+ sub_8052910(&gUnknown_8102840);
+ sub_806CDD4(uVar3,0xf,0);
+ ArticunoScreenFlash();
+ sub_8052910(&gUnknown_810286C);
+ sub_806CDD4(uVar3,0x10,0);
+ ArticunoScreenFlash();
+ sub_8052910(&gUnknown_81028B8);
+ sub_806CDD4(uVar3,0xf,0);
+ sub_803E708(0x10,0x46);
+ sub_8086A70(uVar3,0x1c2,0xb);
+ sub_80858AC(&iVar1->unkC,0x10);
+}
+
+void ArticunoReFightDialogue(void)
+{
+ struct unkDungeon_8041D5C *iVar1;
+ struct unkDungeon_8041D5C *uVar2;
+
+ iVar1 = sub_8085480();
+ uVar2 = sub_8085680(0xd);
+ gUnknown_203B418->unkE265 = 7;
+ sub_807EAA0(0,1);
+ sub_803E708(10,0x46);
+ sub_8052910(&gUnknown_81028D4);
+ sub_806CDD4(uVar2,0x10,0);
+ ArticunoScreenFlash();
+ sub_8052910(&gUnknown_8102918);
+ ArticunoScreenFlash();
+ sub_8052910(&gUnknown_8102948);
+ sub_806CDD4(uVar2,0xf,0);
+ sub_803E708(0x28,0x46);
+ sub_8086A70(uVar2,0x1c2,0xb);
+ sub_80858AC(&iVar1->unkC,0x10);
+}
+
+void ArticunoPostStoryPreFightDialogue(void)
+{
+ struct unkDungeon_8041D5C *iVar2;
+ struct unkDungeon_8041D5C *uVar3;
+
+ iVar2 = sub_8085480();
+ uVar3 = sub_8085680(0xd);
+ sub_8086448();
+ if (sub_8086AE4(SPECIES_ARTICUNO)) {
+ sub_80866C4(&gUnknown_8102A9C);
+ }
+ else {
+ gUnknown_203B418->unkE265 = 7;
+ sub_807EAA0(0,1);
+ ArticunoScreenFlash();
+ sub_8086738();
+ PlaySoundEffect(0x1da);
+ sub_8052910(&gUnknown_8102984);
+ sub_803E708(10,0x46);
+ sub_8088484(uVar3);
+ ArticunoScreenFlash();
+ sub_8052910(&gUnknown_81029B4);
+ sub_806CDD4(uVar3,0xf,0);
+ ArticunoScreenFlash();
+ sub_8052910(&gUnknown_8102A18);
+ sub_806CDD4(uVar3,0x10,0);
+ ArticunoScreenFlash();
+ sub_8052910(&gUnknown_8102A24);
+ ArticunoScreenFlash();
+ sub_8052910(&gUnknown_8102A74);
+ sub_806CDD4(uVar3,0xf,0);
+ sub_803E708(0x28,0x46);
+ sub_8086A70(uVar3,0x1c2,0xb);
+ sub_80858AC(&iVar2->unkC,0x10);
+ }
+}
+
+void sub_8088484(struct unkDungeon_8041D5C *param_1)
+{
+ int iVar1;
+
+ param_1->unk70->unk15C = 1;
+ param_1->unk70->unk15E = 0;
+ PlaySoundEffect(0x1ea);
+ for(iVar1 = 250; iVar1 >= 0; iVar1 -= 5)
+ {
+ param_1->unk70->unk174 = iVar1 * 256;
+ sub_8085C54(iVar1,iVar1,iVar1 / 2,1,0);
+ sub_803E46C(0x46);
+ }
+}
+
+void ArticunoScreenFlash(void)
+{
+ int iVar1;
+
+ PlaySoundEffect(0x2ad);
+ for(iVar1 = 250; iVar1 > 0x95; iVar1 -= 10)
+ {
+ sub_8085C54(iVar1 / 2,iVar1,iVar1,1,1);
+ sub_803E46C(0x46);
+ }
+ sub_803E708(4,0x46);
+ for(iVar1 = 250; iVar1 > 199; iVar1 -= 10)
+ {
+ sub_8085C54(0,iVar1,iVar1,1,1);
+ sub_803E46C(0x46);
+ }
+ sub_803E708(4,0x46);
+ for(iVar1 = 250; iVar1 >= 0; iVar1 -= 10)
+ {
+ sub_8085C54(iVar1 / 2,iVar1,iVar1,1,1);
+ sub_803E46C(0x46);
+ }
+ sub_803E708(4,0x46);
+ sub_8085EB0();
+}
+
+void sub_8088574(void)
+{
+ int iVar1;
+
+ for(iVar1 = 0; iVar1 <= 80; iVar1 += 8)
+ {
+ sub_8085C54(iVar1,iVar1,iVar1,0,0);
+ sub_803E46C(0x46);
+ }
+}
+
+void sub_80885A0(void)
+{
+ sub_8083ED8(0x3c);
+ sub_803E708(0x3c,0x46);
+ sub_8083F14();
+ gUnknown_203B418->unk7 = 1;
+}
+
+void sub_80885C4(void)
+{
+ struct unkDungeon_8041D5C * iVar1;
+
+ iVar1 = sub_8085480();
+ sub_8083ED8(0x3c);
+ sub_803E708(0x3c,0x46);
+ sub_8083F14();
+ sub_80854D4();
+ sub_8085930(4);
+ sub_80855E4(sub_8086A3C);
+ sub_8085860(iVar1->unk4,iVar1->unk6 - 3);
+}
+
+void sub_8088608(void)
+{
+ gUnknown_203B418->unk2 = 1;
+}
+
+void sub_8088618(void)
+{
+ sub_8086448();
+ // The mountain's summit...
+ // But there is no one here
+ // It's time to go back
+ sub_80866C4(&gUnknown_8102B10);
+}
+
+void sub_808862C(void)
+{
+ struct unkDungeon_8041D5C * iVar1;
+ struct unkDungeon_8041D5C * uVar2;
+ struct unkDungeon_8041D5C * uVar3;
+
+ iVar1 = sub_8085480();
+ uVar2 = sub_8085680(10);
+ uVar3 = sub_8085680(0xe);
+ sub_8083E88(0x72);
+ sub_80867F4();
+ sub_8085374();
+ sub_80854D4();
+ sub_8085930(4);
+ sub_80855E4(sub_8086A3C);
+ sub_8085918(uVar2,4);
+ sub_80861D4(uVar2,0xd,4);
+ sub_8085918(uVar3,0);
+ sub_8086A3C(uVar3);
+ sub_8085860(iVar1->unk4,iVar1->unk6 -3);
+ CopySpeciesNametoBuffer(gUnknown_202E038, SPECIES_GROUDON);
+ CopySpeciesNametoBuffer(gUnknown_202E038 + 0x50, SPECIES_ALAKAZAM);
+}
+
void sub_80886C4(void)
{
struct unkDungeon_8041D5C * iVar1;
@@ -296,7 +1209,7 @@ void sub_80886C4(void)
iVar1 = sub_8085480();
uVar2 = sub_8085680(10);
uVar3 = sub_8085680(0xe);
- sub_8083E38(0x3e5);
+ PlaySoundEffect(0x3e5);
sub_80867F4();
sub_8085374();
sub_80854D4();
@@ -326,7 +1239,7 @@ void sub_808875C(void)
sub_8085930(4);
sub_80855E4(sub_8086A3C);
sub_8068FE0(uVar3,0x21c,0);
- if (sub_8086AE4(0x19b) != '\0') {
+ if (sub_8086AE4(0x19b)) {
sub_8068FE0(uVar4,0x21c,0);
}
else {
@@ -386,14 +1299,14 @@ void GroudonPreFightDialogue(void)
sub_803E708(10,0x46);
sub_8052910(&gUnknown_8102F64);
sub_803E708(10,0x46);
- sub_8083E38(0x1d5);
- sub_808696C(uVar2);
+ PlaySoundEffect(0x1d5);
+ SpriteLookAroundEffect(uVar2);
sub_8052910(&gUnknown_8102F84);
sub_803E708(10,0x46);
sub_808682C();
sub_803E708(0x3c,0x46);
sub_80861B8(uVar3,6,4);
- sub_8083E38(0x205);
+ PlaySoundEffect(0x205);
sub_8086738();
sub_8068FE0(uVar3,0x21c,0);
sub_8052910(&gUnknown_8102FAC);
@@ -403,8 +1316,8 @@ void GroudonPreFightDialogue(void)
sub_8085930(4);
sub_8086764();
sub_803E708(0x28,0x46);
- sub_8083E38(0x1d5);
- sub_808696C(uVar2);
+ PlaySoundEffect(0x1d5);
+ SpriteLookAroundEffect(uVar2);
sub_8052910(&gUnknown_8102FD8);
sub_803E708(10,0x46);
sub_8086838(1,1,1);
@@ -422,7 +1335,7 @@ void GroudonPreFightDialogue(void)
sub_803E708(0x1e,0x46);
sub_808682C();
sub_803E708(0x3c,0x46);
- sub_8083E38(0x1fa);
+ PlaySoundEffect(0x1fa);
sub_8086738();
sub_8085930(4);
sub_8052910(&gUnknown_8103140);
@@ -455,7 +1368,7 @@ void GroudonReFightDialogue(void)
sub_808682C();
sub_803E708(0x3c,0x46);
sub_8083F14();
- sub_8083E38(0x1fa);
+ PlaySoundEffect(0x1fa);
sub_8086738();
sub_8052910(&gUnknown_8103340);
sub_803E708(10,0x46);
@@ -483,10 +1396,10 @@ void GroudonPostStoryPreFightDialogue(void)
sub_8088C08(uVar3);
sub_8088C08(uVar3);
sub_8052910(&gUnknown_81033AC);
- sub_8083E38(0x1f6);
+ PlaySoundEffect(0x1f6);
sub_8088CA0();
sub_8052910(&gUnknown_810343C);
- sub_8083E38(0x1f6);
+ PlaySoundEffect(0x1f6);
sub_8088CA0();
sub_8052910(&gUnknown_810347C);
sub_803E708(10,0x46);
@@ -504,7 +1417,7 @@ void sub_8088C08(struct unkDungeon_8041D5C * param_1)
for(iVar1 = 0; iVar1 < 0x2C; iVar1++)
{
if ((iVar1 == 10) || (iVar1 == 0x20)) {
- sub_8083E38(0x1f9);
+ PlaySoundEffect(0x1f9);
sub_8086838(0,1,0);
sub_808680C();
}
@@ -642,7 +1555,7 @@ void MagmaCavernMidDialogue(void)
iVar4 = sub_8085680(0xc);
sub_8052D44(auStack36,uVar1,uVar2);
sub_8086448();
- sub_808696C(uVar2);
+ SpriteLookAroundEffect(uVar2);
// Let's see..
// I wonder where we are?
sub_8052910(&gUnknown_8102B1C);
@@ -659,7 +1572,7 @@ void MagmaCavernMidDialogue(void)
sub_8083F14();
sub_80855E4(sub_80868F4);
sub_808680C();
- sub_8083E38(0x1c5);
+ PlaySoundEffect(0x1c5);
sub_803E708(0x28,0x46);
// Waaah!
// Qu-quake!
@@ -678,9 +1591,9 @@ void MagmaCavernMidDialogue(void)
// It's over.
sub_8052910(&gUnknown_8102BE4);
sub_803E708(10,0x46);
- sub_8083E38(0x1d5);
- sub_808696C(uVar2);
- sub_8083E38(0x1c7);
+ PlaySoundEffect(0x1d5);
+ SpriteLookAroundEffect(uVar2);
+ PlaySoundEffect(0x1c7);
sub_80856E0(uVar2,4);
// Hey! $m0!
// Over there!
@@ -721,8 +1634,8 @@ void MagmaCavernMidDialogue(void)
// We... It crushed us
sub_8052910(&gUnknown_8102D4C);
sub_803E708(10,0x46);
- sub_8083E38(0x1d5);
- sub_808696C(uVar2);
+ PlaySoundEffect(0x1d5);
+ SpriteLookAroundEffect(uVar2);
// That's right...
// What happened to $m3?
// Where is $m3?
@@ -755,7 +1668,7 @@ void sub_8089168(void)
iVar1 = sub_8085480();
sub_8086448();
sub_803E708(10,0x46);
- sub_808696C(iVar1);
+ SpriteLookAroundEffect(iVar1);
sub_803E708(10,0x46);
sub_80858AC(&iVar1->unkC,0x10);
}
@@ -908,7 +1821,7 @@ void RayquazaPreFightDialogue(void)
RayquazaScreenFlash();
sub_8052910(&gUnknown_810352C);
sub_80856E0(uVar2,4);
- sub_808696C(uVar2);
+ SpriteLookAroundEffect(uVar2);
sub_803E708(10,0x46);
sub_80869E4(uVar2,4,1,2);
sub_80869E4(iVar1,4,2,6);
@@ -921,7 +1834,7 @@ void RayquazaPreFightDialogue(void)
sub_803E708(10,0x46);
sub_8052910(&gUnknown_810367C);
RayquazaScreenFlash();
- sub_8083E38(0x1da); // Rayquaza Cry
+ PlaySoundEffect(0x1da); // Rayquaza Cry
sub_8052910(&gUnknown_8103690);
sub_8089620(uVar3);
sub_8052910(&gUnknown_81036C8);
@@ -944,7 +1857,7 @@ void RayquazaReFightDialogue(void)
uVar2 = sub_8085680(0xf);
sub_8086448();
RayquazaScreenFlash();
- sub_8083E38(0x1da); // Rayquaza Cry
+ PlaySoundEffect(0x1da); // Rayquaza Cry
sub_8052910(&gUnknown_8103690);
sub_803E708(10,0x46);
sub_8089620(uVar2);
@@ -971,7 +1884,7 @@ void RayquazaPostStoryPreFightDialogue(void)
sub_80866C4(&gUnknown_8103B58);
}
else {
- sub_8083E38(0x1da); // Rayquaza Cry
+ PlaySoundEffect(0x1da); // Rayquaza Cry
sub_8052910(&gUnknown_8103904);
sub_8089620(uVar3);
sub_8052910(&gUnknown_8103938);
@@ -994,7 +1907,7 @@ void sub_8089620(struct unkDungeon_8041D5C *param_1)
param_1->unk70->unk15E = 0;
iVar2 = 51200;
iVar1 = 0x600;
- sub_8083E38(0x1f8);
+ PlaySoundEffect(0x1f8);
while( 1 ) {
iVar2 = iVar2 - iVar1;
iVar1 = iVar1 -= 0x18;
@@ -1012,7 +1925,7 @@ void RayquazaScreenFlash(void)
{
s32 iVar1;
- sub_8083E38(0x1f6);
+ PlaySoundEffect(0x1f6);
for(iVar1 = 250; iVar1 > 149; iVar1 -= 10)
{
sub_8085C54(iVar1 / 2, iVar1, iVar1 / 2, 1, 1);
@@ -1267,7 +2180,7 @@ void sub_8089B64(struct unkDungeon_8041D5C *param_1)
param_1->unk70->unk15E = 0;
iVar2 = 51200;
iVar1 = 0x400;
- sub_8083E38(0x1f8);
+ PlaySoundEffect(0x1f8);
while( 1 ) {
iVar2 = iVar2 - iVar1;
iVar1 = iVar1 -= 11;
@@ -1285,7 +2198,7 @@ void MewtwoScreenFlash(void)
{
int iVar1;
- sub_8083E38(0x1f6);
+ PlaySoundEffect(0x1f6);
for(iVar1 = 250; iVar1 > 149; iVar1 -= 10)
{
sub_8085C54(iVar1,iVar1,iVar1,1,1);
@@ -1416,7 +2329,7 @@ void EnteiScreenFlash(void)
{
s32 iVar1;
- sub_8083E38(0x1ed);
+ PlaySoundEffect(0x1ed);
for(iVar1 = 250; iVar1 > 149; iVar1 -= 10)
{
sub_8085C54(iVar1, iVar1 / 2, iVar1 / 2, 1, 1);
@@ -1572,7 +2485,7 @@ void RaikouScreenFlash(void)
{
s32 iVar1;
- sub_8083E38(0x1f6);
+ PlaySoundEffect(0x1f6);
for(iVar1 = 250; iVar1 > 149; iVar1 -= 10)
{
sub_8085C54(iVar1,iVar1,iVar1,1,1);
@@ -1729,7 +2642,7 @@ void sub_808A528(struct unkDungeon_8041D5C * param_1)
param_1->unk70->unk15E = 0;
iVar2 = 51200;
iVar1 = 3072;
- sub_8083E38(0x1f8);
+ PlaySoundEffect(0x1f8);
while( 1 ) {
iVar2 = iVar2 - iVar1;
iVar1 -= 96;
@@ -1747,7 +2660,7 @@ void SuicuneScreenFlash(void)
{
s32 iVar1;
- sub_8083E38(0x1ee);
+ PlaySoundEffect(0x1ee);
for(iVar1 = 250; iVar1 > 149; iVar1 -= 10)
{
sub_8085C54(iVar1,iVar1,iVar1,1,1);
@@ -1843,7 +2756,7 @@ void HoOhPreFightDialogue(void)
sub_803E708(10,70);
sub_80855E4(sub_80868F4);
sub_808680C();
- sub_8083E38(0x1c5);
+ PlaySoundEffect(0x1c5);
sub_803E708(0xfa,70);
sub_808A904(uVar2);
sub_8083E58(0x1c5);
@@ -1908,7 +2821,7 @@ void sub_808A904(struct unkDungeon_8041D5C * param_1)
param_1->unk70->unk15E = 0;
iVar2 = 51200;
iVar1 = 3072;
- sub_8083E38(0x1f8);
+ PlaySoundEffect(0x1f8);
while( 1 ) {
iVar2 = iVar2 - iVar1;
iVar1 -= 96;
@@ -1926,7 +2839,7 @@ void HoOhScreenFlash(void)
{
s32 iVar1;
- sub_8083E38(0x1ed);
+ PlaySoundEffect(0x1ed);
for(iVar1 = 250; iVar1 > 149; iVar1 -= 10)
{
sub_8085C54(iVar1,iVar1,iVar1,1,1);
@@ -2065,7 +2978,7 @@ void LatiosScreenFlash(void)
{
s32 iVar1;
- sub_8083E38(0x1ee);
+ PlaySoundEffect(0x1ee);
gUnknown_202EDC8 = 0x1f;
for(iVar1 = 250; iVar1 > 149; iVar1 -= 10)
{
@@ -2616,7 +3529,7 @@ void JirachiPreFightDialogue(void)
sub_803E708(0x40,70);
sub_8052910(&gUnknown_8105438);
sub_803E708(10,70);
- sub_808696C(iVar1);
+ SpriteLookAroundEffect(iVar1);
sub_803E708(10,70);
sub_8052910(&gUnknown_81054A0);
sub_80861F8(0x37,uVar2,1);
diff --git a/src/code_808DAB4.c b/src/code_808DAB4.c
index 1762397..f606355 100644
--- a/src/code_808DAB4.c
+++ b/src/code_808DAB4.c
@@ -10,12 +10,12 @@ struct unkStruct_203B45C
u8 array[0x53];
};
-extern struct unkStruct_203B45C *gUnknown_203B45C;
+extern struct unkStruct_203B45C *gRecruitedPokemonRef;
extern void sub_808DE50(void* r0, struct unkStruct_203B45C *r1, u32 r2, u32 r3);
void sub_808DE30(void* r0, u32 r1)
{
- sub_808DE50(r0, &gUnknown_203B45C[r1], r1, r1 * sizeof(struct unkStruct_203B45C));
+ sub_808DE50(r0, &gRecruitedPokemonRef[r1], r1, r1 * sizeof(struct unkStruct_203B45C));
}
diff --git a/src/cpu.c b/src/cpu.c
index a948d66..7a50801 100644
--- a/src/cpu.c
+++ b/src/cpu.c
@@ -32,9 +32,9 @@ u32 sub_800CDE0(void)
return 1;
}
-void CpuCopy(void* src, void *dest, s32 size)
+void CpuCopy(void* dest, void *src, s32 size)
{
- CpuCopy32(dest, src, size);
+ CpuCopy32(src, dest, size);
}
void CpuClear(void* dest, s32 size)
@@ -42,9 +42,9 @@ void CpuClear(void* dest, s32 size)
CpuFill32(NULL, dest, size);
}
-void CpuFill(void* src, void *dest, s32 size)
+void CpuFill(void* dest, void *value, s32 size)
{
- CpuFill32(dest, src, size);
+ CpuFill32(value, dest, size);
}
#ifdef NONMATCHING
diff --git a/src/data/pelipper_help_guide_dialogue.h b/src/data/pelipper_help_guide_dialogue.h
new file mode 100644
index 0000000..678be4f
--- /dev/null
+++ b/src/data/pelipper_help_guide_dialogue.h
@@ -0,0 +1,187 @@
+ALIGNED(4) const char gWhatdYouWantToKnow[] =
+ _(" So~2c what~27d you want to\n"
+ "know?");
+
+ALIGNED(4) const char gGettingHelpExplaination[] =
+ _(" If you need to call for\n"
+ "help~2c first send your friend\n"
+ "an {COLOR_1 LIGHT_BLUE_2}SOS Mail{END_COLOR_TEXT_1}.{EXTRA_MSG}"
+ " Once you send that mail~2c\n"
+ "wait until your friend sends you back\n"
+ "an {COLOR_1 LIGHT_BLUE_2}A-OK Mail{END_COLOR_TEXT_1}.{EXTRA_MSG}"
+ " When you get that\n"
+ "{COLOR_1 LIGHT_BLUE_2}A-OK Mail{END_COLOR_TEXT_1} back~2c your team\n"
+ "can continue from where it went down.{EXTRA_MSG}"
+ " Make sure you send your\n"
+ "friend a {COLOR_1 LIGHT_BLUE_2}Thank-You Mail{END_COLOR_TEXT_1}.\n"
+ "That~27s if you get revived~2c of course.");
+
+ALIGNED(4) const char gSendSOSMailExplaination[] =
+ _(" If your team gets defeated\n"
+ "in a dungeon~2c you can send an {COLOR_1 LIGHT_BLUE_2}SOS Mail{END_COLOR_TEXT_1}\n"
+ "to a friend willing to help.{EXTRA_MSG}"
+ " But I have to warn you.\n"
+ "You can~27t get anyone to rescue you\n"
+ "in certain places.{EXTRA_MSG}"
+ " If you need to send\n"
+ "an {COLOR_1 LIGHT_BLUE_2}SOS Mail{END_COLOR_TEXT_1}~2c you send it from the\n"
+ "{COLOR_1 LIGHT_BLUE_2}main menu{END_COLOR_TEXT_1}.");
+
+ALIGNED(4) const char gReceiveAOKMailExplaination[] =
+ _(" If your friend manages to\n"
+ "rescue your team~2c you need to receive\n"
+ "an {COLOR_1 LIGHT_BLUE_2}A-OK Mail{END_COLOR_TEXT_1} from your friend.{EXTRA_MSG}"
+ " See~2c once you get that\n"
+ "{COLOR_1 LIGHT_BLUE_2}A-OK Mail{END_COLOR_TEXT_1}~2c your team can continue from\n"
+ "where it went down in the dungeon.{EXTRA_MSG}"
+ " And~2c if you use\n"
+ "a {COLOR_1 LIGHT_BLUE_2}Game Link cable{END_COLOR_TEXT_1}~2c your friend can\n"
+ "even send you a {COLOR_1 LIGHT_BLUE_2}helper Pokémon{END_COLOR_TEXT_1}.{EXTRA_MSG}"
+ " There~27s just one thing.\n"
+ "A {COLOR_1 LIGHT_BLUE_2}helper Pokémon{END_COLOR_TEXT_1} can~27t bring\n"
+ "any item it happens to be holding.{EXTRA_MSG}"
+ " You can receive that\n"
+ "team-saving {COLOR_1 LIGHT_BLUE_2}A-OK Mail{END_COLOR_TEXT_1} on the {COLOR_1 LIGHT_BLUE_2}main menu{END_COLOR_TEXT_1}~2c\n"
+ "all right?");
+
+ALIGNED(4) const char gSendThankYouMailExplaination[] =
+ _(" If your team gets rescued~2c\n"
+ "be sure to send your friend\n"
+ "a {COLOR_1 LIGHT_BLUE_2}Thank-You Mail{END_COLOR_TEXT_1}.{EXTRA_MSG}"
+ " You do that by going to\n"
+ "the {COLOR_1 LIGHT_BLUE_2}right counter{END_COLOR_TEXT_1}~2c or\n"
+ "by selecting it from the {COLOR_1 LIGHT_BLUE_2}main menu{END_COLOR_TEXT_1}.{EXTRA_MSG}"
+ " You can attach an item in\n"
+ "storage to your {COLOR_1 LIGHT_BLUE_2}Thank-You Mail{END_COLOR_TEXT_1}\n"
+ "as a {COLOR_1 LIGHT_BLUE_2}reward item{END_COLOR_TEXT_1}.{EXTRA_MSG}"
+ " You don~27t want to ever\n"
+ "forget to express your thanks.");
+
+ALIGNED(4) const char gRescueProceduresExplaination[] =
+ _(" If you want to go and\n"
+ "rescue your friend~27s KO~27d team~2c\n"
+ "you need to receive an {COLOR_1 LIGHT_BLUE_2}SOS Mail{END_COLOR_TEXT_1}.{EXTRA_MSG}"
+ " When you get that mail~2c\n"
+ "you can rescue your friend at\n"
+ "the {COLOR_1 LIGHT_BLUE_2}left counter{END_COLOR_TEXT_1} over there.{EXTRA_MSG}"
+ " If you do manage to rescue\n"
+ "the team~2c you send your friend\n"
+ "an {COLOR_1 LIGHT_BLUE_2}A-OK Mail{END_COLOR_TEXT_1}.{EXTRA_MSG}"
+ " After you do that~2c your\n"
+ "friend can send back to you\n"
+ "a {COLOR_1 LIGHT_BLUE_2}Thank-You Mail{END_COLOR_TEXT_1}.");
+
+ALIGNED(4) const char gReceiveSOSMailExplaination[] =
+ _(" To go off on a rescue~2c\n"
+ "you first need to receive your friend~27s\n"
+ "{COLOR_1 LIGHT_BLUE_2}SOS Mail{END_COLOR_TEXT_1}.{EXTRA_MSG}"
+ " You do that at\n"
+ "the {COLOR_1 LIGHT_BLUE_2}left counter{END_COLOR_TEXT_1} over there~2c\n"
+ "or by selecting it from the {COLOR_1 LIGHT_BLUE_2}main menu{END_COLOR_TEXT_1}.");
+
+ALIGNED(4) const char gSendAOKMailExplaination[] =
+ _(" If you succeed in rescuing\n"
+ "that team~2c you send your friend an\n"
+ "{COLOR_1 LIGHT_BLUE_2}A-OK Mail{END_COLOR_TEXT_1}.{EXTRA_MSG}"
+ " You do that by going to\n"
+ "the {COLOR_1 LIGHT_BLUE_2}left counter{END_COLOR_TEXT_1}~2c\n"
+ "or from the {COLOR_1 LIGHT_BLUE_2}main menu{END_COLOR_TEXT_1}.{EXTRA_MSG}"
+ " You can send your friend\n"
+ "a Pokémon as a helper from your Friend\n"
+ "Areas using a {COLOR_1 LIGHT_BLUE_2}Game Link cable{END_COLOR_TEXT_1}.{EXTRA_MSG}"
+ " This Pokémon won~27t\n"
+ "disappear from its Friend Area~2c so\n"
+ "don~27t you worry any.");
+
+ALIGNED(4) const char gLeaveForRescueExplaination[] =
+ _(" If you get an {COLOR_1 LIGHT_BLUE_2}SOS Mail{END_COLOR_TEXT_1}~2c\n"
+ "you head off on the rescue from\n"
+ "the {COLOR_1 LIGHT_BLUE_2}left counter{END_COLOR_TEXT_1}.{EXTRA_MSG}"
+ " But~2c I have to warn you.\n"
+ "You can~27t go off to rescue in a dungeon\n"
+ "if you can~27t get into it.{EXTRA_MSG}"
+ " You~27ll be able to get\n"
+ "there when you go farther in your\n"
+ "adventure~2c so it won~27t do to fret.");
+
+ALIGNED(4) const char gGetThankYouMailExplaination[] =
+ _(" If you send your friend\n"
+ "an {COLOR_1 LIGHT_BLUE_2}A-OK Mail{END_COLOR_TEXT_1}~2c you can look forward\n"
+ "to getting a {COLOR_1 LIGHT_BLUE_2}Thank-You Mail{END_COLOR_TEXT_1} back.{EXTRA_MSG}"
+ " You can receive it at\n"
+ "the {COLOR_1 LIGHT_BLUE_2}right counter{END_COLOR_TEXT_1}\n"
+ "or on the {COLOR_1 LIGHT_BLUE_2}main menu{END_COLOR_TEXT_1}.{EXTRA_MSG}"
+ " But you need to {COLOR_1 RED}be careful{END_COLOR_TEXT_1}.\n"
+ "You {COLOR_1 RED}must not delete the A-OK Mail{END_COLOR_TEXT_1}\n"
+ "before you get the {COLOR_1 LIGHT_BLUE_2}Thank-You Mail{END_COLOR_TEXT_1} back.");
+
+ALIGNED(4) const char gImYourGuide[] =
+ _(" I~27m your guide to what you\n"
+ "can expect at the Pelipper Post Office.\n"
+ "If you have any questions~2c just ask away!");
+
+ALIGNED(4) const char gAnythingElse[] =
+ _(" Did you want to ask about\n"
+ "anything else?");
+
+ALIGNED(4) const char gPostOfficeExplaination[] =
+ _(" {COLOR_1 LIGHT_BLUE_2}The Pelipper Post Office{END_COLOR_TEXT_1}\n"
+ "keeps track of information from\n"
+ "around the world.{EXTRA_MSG}"
+ " We inform folks\n"
+ "about everything from gossip to calls\n"
+ "for help from fellow Pokémon.{EXTRA_MSG}"
+ " For the latest news~2c check\n"
+ "{COLOR_1 LIGHT_BLUE_2}your Mailbox{END_COLOR_TEXT_1} or the {COLOR_1 LIGHT_BLUE_2}Bulletin Board{END_COLOR_TEXT_1}\n"
+ "outside~2c all right?{EXTRA_MSG}"
+ " Oh~2c that~27s not all.\n"
+ "You can arrange for {COLOR_1 LIGHT_BLUE_2}Friend Rescue{END_COLOR_TEXT_1}\n"
+ "missions at that counter there.{EXTRA_MSG}"
+ " The {COLOR_1 LIGHT_BLUE_2}left counter{END_COLOR_TEXT_1} is\n"
+ "for rescues~2c and the {COLOR_1 LIGHT_BLUE_2}right counter{END_COLOR_TEXT_1}\n"
+ "is for Thank-You Mail.");
+
+ALIGNED(4) const char gBulletinBoardExplaination[] =
+ _(" The {COLOR_1 LIGHT_BLUE_2}Bulletin Board{END_COLOR_TEXT_1} outside\n"
+ "here lists rescue requests.{EXTRA_MSG}"
+ " Take on rescue jobs from\n"
+ "the Bulletin Board. Be a hero and handle\n"
+ "the jobs for fellow Pokémon in need!");
+
+ALIGNED(4) const char gDeliveryExplaination[] =
+ _(" If your rescue team\n"
+ "becomes famous for doing lots of rescues~2c\n"
+ "expect to get rescue requests directly.{EXTRA_MSG}"
+ " Our delivery $m0\n"
+ "will take those jobs straight to your\n"
+ "{COLOR_1 LIGHT_BLUE_2}Mailbox{END_COLOR_TEXT_1}.");
+
+ALIGNED(4) const char gFriendRescueExplaination[] =
+ _(" Friend Rescue is what we\n"
+ "call rescue missions between friends using\n"
+ "a {COLOR_1 LIGHT_BLUE_2}Game Link cable{END_COLOR_TEXT_1}~2c {COLOR_1 LIGHT_BLUE_2}passwords{END_COLOR_TEXT_1}~2c etc.{EXTRA_MSG}"
+ " For instance~2c you can send\n"
+ "out for help saying your team wiped out\n"
+ "in a dungeon at such and such a place.{EXTRA_MSG}"
+ " Your friend could play\n"
+ "the hero and come to your team~27s rescue.\n"
+ "Or it can be the other way around~2c too.{EXTRA_MSG}"
+ " If you use {COLOR_1 LIGHT_BLUE_2}passwords{END_COLOR_TEXT_1}~2c\n"
+ "you can do rescues with friends in\n"
+ "far-away places.{EXTRA_MSG}"
+ " You can apply for Friend\n"
+ "Rescue jobs at the {COLOR_1 LIGHT_BLUE_2}left counter{END_COLOR_TEXT_1} of\n"
+ "that counter there.");
+
+ALIGNED(4) const char gDeletingMailExplaination[] =
+ _(" Deleting mail just means\n"
+ "getting rid of old mail that you don~27t\n"
+ "need anymore.{EXTRA_MSG}"
+ " If you do lots of Friend\n"
+ "Rescues~2c you~27ll find {COLOR_1 LIGHT_BLUE_2}SOS Mail{END_COLOR_TEXT_1} and\n"
+ "{COLOR_1 LIGHT_BLUE_2}A-OK Mail{END_COLOR_TEXT_1} piling up.{EXTRA_MSG}"
+ " Once you get {COLOR_1 LIGHT_BLUE_2}30 pieces{END_COLOR_TEXT_1}~2c\n"
+ "you won~27t be able to receive more mail.\n"
+ "That~27s why you~27ll need to delete old mail.{EXTRA_MSG}"
+ " You can look through old\n"
+ "mail at the {COLOR_1 LIGHT_BLUE_2}left counter{END_COLOR_TEXT_1} over there.");
diff --git a/src/debug_menu.c b/src/debug_menu.c
index 19561c2..3fa662c 100644
--- a/src/debug_menu.c
+++ b/src/debug_menu.c
@@ -1,37 +1,72 @@
#include "global.h"
#include "debug_menu.h"
#include "main_menu.h"
+#include "menu.h"
-struct unkData
+extern struct DebugMenu *gUnknown_203B3EC;
+
+const struct unkData gUnknown_80E7D40 =
{
- u8 unk0[24];
+ 0x00, 0x00, 0x00, 0x00,
+ 0x03, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00
};
-
-struct DebugMenu
+const struct unkData gUnknown_80E7D58 =
{
- // size: 0x1A4
- u8 fill0[0x140];
- /* 0x140 */ struct unkData unk140[4];
+ 0x00, 0x00, 0x00, 0x00,
+ 0x03, 0x00, 0x00, 0x00,
+ 0x02, 0x00, 0x02, 0x00,
+ 0x09, 0x00, 0x0b, 0x00,
+ 0x0b, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00
};
-extern struct DebugMenu *gUnknown_203B3EC;
-extern struct unkData gUnknown_80E7D40;
-struct MenuItem
+extern const char dungeons_string[];
+extern const char field_string[];
+extern const char field_map_string[];
+extern const char field_script_string[];
+extern const char debug_menu_string[];
+extern const char storage_string[];
+extern const char h_open_string[];
+
+
+const struct MenuItem gDebugMenuItems[8] =
{
- const char *text;
- u32 menuAction; // action??
+ {dungeons_string, MENU_DEBUG_MENU_DUNGEONS},
+ {field_string, MENU_DEBUG_MENU_FIELD},
+ {field_map_string, MENU_DEBUG_MENU_FIELD_MAP},
+ {field_script_string, MENU_DEBUG_MENU_FIELD_SCRIPT},
+ {debug_menu_string, MENU_DEBUG_MENU_DEBUG_MENU},
+ {storage_string, MENU_DEBUG_MENU_STORAGE},
+ {h_open_string, MENU_DEBUG_MENU_H_OPEN},
+ {NULL, 10},
};
+ALIGNED(4) const char h_open_string[] = _("h-open");
+ALIGNED(4) const char storage_string[] = _("Storage");
+ALIGNED(4) const char debug_menu_string[] = _("Debug Menu");
+ALIGNED(4) const char field_script_string[] = _("Field Script");
+ALIGNED(4) const char field_map_string[] = _("Field Map");
+ALIGNED(4) const char field_string[] = _("Field");
+ALIGNED(4) const char dungeons_string[] = _("Dungeons");
+ALIGNED(4) const char debug_fill0[] = _("pksdir0");
+ALIGNED(4) const char debug_fill1[] = _("pksdir0");
+ALIGNED(4) const char debug_fill2[] = _("pksdir0");
+ALIGNED(4) const char debug_fill3[] = _("pksdir0");
+ALIGNED(4) const char debug_fill4[] = _("pksdir0");
+ALIGNED(4) const char debug_fill5[] = _("pksdir0");
+ALIGNED(4) const char debug_fill6[] = _("pksdir0");
-extern struct MenuItem gDebugMenuItems[8];
-extern u32 gUnknown_80E7D58[6];
extern void *MemoryAlloc(u32, u32);
extern void MemoryFree(void *);
extern void MemoryFill8(u8 *, u8, u32);
-extern void sub_800641C(void *, u32, u32);
+extern void sub_800641C(struct unkData *, u32, u32);
extern void ResetUnusedInputStruct(void);
extern u8 sub_8012FD8(struct DebugMenu *);
@@ -40,7 +75,7 @@ extern void sub_80976F8(u8);
extern void sub_803A3BC(void);
extern void sub_803A3A0(void);
-extern void SetMenuItems(void *menu, void *, u32, u32 *, struct MenuItem *entries, u32, u32, u32);
+extern void SetMenuItems(void *menu, struct unkData *, u32, const struct unkData *, const struct MenuItem *entries, u32, u32, u32);
extern void sub_8035CF4(struct DebugMenu *, u32, u32);
extern void sub_8035CC0(struct unkData *, u32);
@@ -49,14 +84,14 @@ void CreateDebugMenu(void)
int iVar2;
if (gUnknown_203B3EC == NULL) {
- gUnknown_203B3EC = MemoryAlloc(0x1a4, 8);
- MemoryFill8((u8 *)gUnknown_203B3EC, 0, 0x1a4);
+ gUnknown_203B3EC = MemoryAlloc(sizeof(struct DebugMenu), 8);
+ MemoryFill8((u8 *)gUnknown_203B3EC, 0, sizeof(struct DebugMenu));
}
for(iVar2 = 0; iVar2 < 4; iVar2++){
gUnknown_203B3EC->unk140[iVar2] = gUnknown_80E7D40;
}
ResetUnusedInputStruct();
- sub_800641C(&gUnknown_203B3EC->unk140, 1, 1);
+ sub_800641C(gUnknown_203B3EC->unk140, 1, 1);
SetDebugMenuItems();
}
@@ -125,7 +160,7 @@ u32 UpdateDebugMenu(void)
void SetDebugMenuItems(void)
{
- SetMenuItems(gUnknown_203B3EC, gUnknown_203B3EC->unk140, 0, gUnknown_80E7D58, gDebugMenuItems, 1, 0xd, 0);
+ SetMenuItems(gUnknown_203B3EC, gUnknown_203B3EC->unk140, 0, &gUnknown_80E7D58, gDebugMenuItems, 1, 0xd, 0);
sub_8035CF4(gUnknown_203B3EC,0,1);
}
diff --git a/src/debug_menu_mid.c b/src/debug_menu_mid.c
index 7bd3d74..8ca2cbd 100644
--- a/src/debug_menu_mid.c
+++ b/src/debug_menu_mid.c
@@ -1,15 +1,13 @@
#include "global.h"
#include "input.h"
+#include "gUnknown_203B460.h"
struct unkData
{
- u8 unk0[14];
- u16 unkD;
- u16 unk10;
- u16 unk12;
- u8 *unk14;
+ u8 unk0[24];
};
+
struct unkStruct_203B3F0
{
// size: 0x138
@@ -63,12 +61,7 @@ struct unkStruct_203B3F4
extern struct unkStruct_203B3F4 *gUnknown_203B3F4;
-struct unkStruct_203B460
-{
- u8 unk0[0x50];
- u16 unk50[10];
-};
-extern struct unkStruct_203B460 *gUnknown_203B460; // TODO unify this
+extern struct unkStruct_203B460 *gUnknown_203B460;
extern void sub_801B3C0(u8 *);
extern void sub_8090A8C(u8 *, u8, u32);
extern void sub_8013AA0(u32 *);
@@ -80,7 +73,6 @@ extern struct unkData gUnknown_80E7EA4;
extern struct unkData gUnknown_80E7E8C;
extern u32 gDebug_NumberText;
-extern u32 gDebug_NumberText;
extern u32 gUnknown_80D4970;
@@ -357,7 +349,7 @@ u32 sub_803A888(void)
{
ResetUnusedInputStruct();
sub_800641C(0, 1, 1);
- gUnknown_203B3F4 = MemoryAlloc(0xFC, 8);
+ gUnknown_203B3F4 = MemoryAlloc(sizeof(struct unkStruct_203B3F4), 8);
sub_803A924(0);
return 1;
}
diff --git a/src/event_flag.c b/src/event_flag.c
index 91c5f87..97a01d0 100644
--- a/src/event_flag.c
+++ b/src/event_flag.c
@@ -13,7 +13,7 @@ struct unkEventStruct
u8 unk2; // Seems like friend area number
};
-struct unkEventStruct gUnknown_80B71E4[100]; // TODO figure out size of this
+extern struct unkEventStruct gUnknown_80B71E4[100]; // TODO figure out size of this
extern u8 gUnknown_2000A88[0x400];
diff --git a/src/felicity_bank.c b/src/felicity_bank.c
new file mode 100644
index 0000000..3bd3620
--- /dev/null
+++ b/src/felicity_bank.c
@@ -0,0 +1,144 @@
+#include "global.h"
+#include "pokemon.h"
+#include "file_system.h"
+#include "input.h"
+#include "constants/species.h"
+#include "felicity_bank.h"
+
+extern u8 gUnknown_202E5D8[];
+extern u8 gUnknown_202E1C8[];
+
+extern struct unkStruct_203B204 *gUnknown_203B204;
+extern struct unkData gUnknown_80DB6DC;
+extern struct unkData gUnknown_80DB6F4;
+extern struct unkData gUnknown_80DB70C;
+
+extern void *MemoryAlloc(u32, u32);
+extern void MemoryFree(void *);
+extern void sub_800641C(struct unkData *, u32, u32);
+extern void sub_8006518(struct unkData *);
+extern void sub_8016B24();
+extern void sub_80169BC();
+extern void Felicity_DepositMoney();
+extern void Felicity_WithdrawMoney();
+extern void sub_8016B00();
+extern void sub_801645C();
+extern void UpdateFelicityBankDialogue();
+
+void UpdateFelicityBankState(u32);
+
+u32 CreateFelicityBank(s32 param_1)
+{
+ char *monName;
+ struct OpenedFile * faceFile;
+
+ ResetUnusedInputStruct();
+ sub_800641C(0,1,1);
+ gUnknown_203B204 = MemoryAlloc(sizeof(struct unkStruct_203B204),8);
+ gUnknown_203B204->unk10 = 0;
+ gUnknown_203B204->unk0 = param_1;
+ CopyYellowSpeciesNametoBuffer(gUnknown_202E5D8, SPECIES_PERSIAN);
+ CopyYellowSpeciesNametoBuffer(gUnknown_202E1C8, SPECIES_PERSIAN);
+ monName = GetMonSpecies(SPECIES_PERSIAN);
+ strcpy(gUnknown_202E1C8 - 0x50, monName);
+ if (gUnknown_203B204->unk0 == 1) {
+ gUnknown_203B204->unkA4 = NULL;
+ }
+ else {
+ gUnknown_203B204->unkA4 = &gUnknown_203B204->faceFile;
+ }
+ faceFile = GetDialogueSpriteDataPtr(SPECIES_PERSIAN);
+ gUnknown_203B204->faceFile = faceFile;
+ gUnknown_203B204->faceData = faceFile->data;
+ gUnknown_203B204->unkA0 = 0;
+ gUnknown_203B204->unkA1 = 0;
+ gUnknown_203B204->unkA2 = 0;
+ gUnknown_203B204->unk9C = 2;
+ gUnknown_203B204->unk9E = 8;
+ UpdateFelicityBankState(0);
+ return 1;
+}
+
+u32 sub_80163A0(void)
+{
+ switch(gUnknown_203B204->currState) {
+ case 1:
+ sub_8016B24();
+ break;
+ case 2:
+ sub_80169BC();
+ break;
+ case 8:
+ Felicity_DepositMoney();
+ break;
+ case 11:
+ Felicity_WithdrawMoney();
+ break;
+ case 6:
+ return 3;
+ case 0:
+ case 3:
+ case 4:
+ case 5:
+ case 7:
+ case 9:
+ case 10:
+ case 12:
+ default:
+ sub_8016B00();
+ break;
+ }
+ return 0;
+}
+
+void CleanFelicityBank(void)
+{
+ if(gUnknown_203B204 != NULL)
+ {
+ CloseFile(gUnknown_203B204->faceFile);
+ MemoryFree(gUnknown_203B204);
+ gUnknown_203B204 = NULL;
+ }
+}
+
+void UpdateFelicityBankState(u32 newState)
+{
+ gUnknown_203B204->currState = newState;
+ sub_801645C();
+ UpdateFelicityBankDialogue();
+}
+
+void sub_801645C(void)
+{
+ s32 uVar3;
+
+ sub_8006518(gUnknown_203B204->unkA8);
+ switch(gUnknown_203B204->currState)
+ {
+ case 2:
+ gUnknown_203B204->unkA8[0].unk0[0] = 0x80;
+ gUnknown_203B204->unkA8[1].unk0[0] = 0x80;
+ gUnknown_203B204->unkA8[2].unk0[0] = 0x80;
+ gUnknown_203B204->unkA8[3] = gUnknown_80DB6F4;
+ ResetUnusedInputStruct();
+ sub_800641C(gUnknown_203B204->unkA8, 1, 0);
+ break;
+ case 8:
+ case 11:
+ gUnknown_203B204->unkA8[0].unk0[0] = 0x80;
+ gUnknown_203B204->unkA8[1].unk0[0] = 0x80;
+ gUnknown_203B204->unkA8[3] = gUnknown_80DB6F4;
+ gUnknown_203B204->unkA8[2] = gUnknown_80DB70C;
+ ResetUnusedInputStruct();
+ sub_800641C(gUnknown_203B204->unkA8, 1, 0);
+ break;
+ default:
+ for(uVar3 = 0; uVar3 < 4; uVar3++)
+ {
+ gUnknown_203B204->unkA8[uVar3] = gUnknown_80DB6DC;
+ }
+ ResetUnusedInputStruct();
+ sub_800641C(gUnknown_203B204->unkA8, 1, 1);
+ break;
+ }
+}
diff --git a/src/felicity_bank_1.c b/src/felicity_bank_1.c
new file mode 100644
index 0000000..171397b
--- /dev/null
+++ b/src/felicity_bank_1.c
@@ -0,0 +1,149 @@
+#include "global.h"
+#include "gUnknown_203B460.h"
+#include "felicity_bank.h"
+
+extern struct unkStruct_203B460 *gUnknown_203B460;
+extern struct unkStruct_203B204 *gUnknown_203B204;
+
+extern u8 gUnknown_80DB738;
+extern u8 gFelicityMoney[];
+extern u8 gFelicitySavings[];
+extern u8 *gFelicityWithdraw;
+extern u8 *gFelicityDeposit;
+
+extern void sub_8008C54(u32);
+extern void sub_80073B8(u32);
+extern void xxx_call_draw_string(s32 x, u32 y, u8 *, u32 , u32);
+extern void sub_8012BC4(u32 x, u32 y, u32, u32, u32, u32);
+extern void sub_80073E0(u32);
+extern void sub_8013C68(u32 *);
+extern s32 sub_80144A4(s32 *);
+extern void UpdateFelicityBankState(u32);
+extern void PlaySound(u32);
+
+extern u32 sub_8013BBC(u32 *);
+void sub_8016B48(u8 action);
+
+#define FELICITY_BANK_ACTION_WITHDRAW 0
+#define FELICITY_BANK_ACTION_DEPOSIT 1
+
+void sub_80169BC(void)
+{
+ s32 temp;
+ if(sub_80144A4(&temp) == 0)
+ {
+ gUnknown_203B204->unk10 = temp;
+ switch(temp)
+ {
+ case 2:
+ UpdateFelicityBankState(7);
+ break;
+ case 3:
+ UpdateFelicityBankState(10);
+ break;
+ case 4:
+ UpdateFelicityBankState(3);
+ break;
+ case 1:
+ UpdateFelicityBankState(4);
+ break;
+ }
+ }
+}
+
+void Felicity_DepositMoney(void)
+{
+ switch(sub_8013BBC(&gUnknown_203B204->unk64))
+ {
+ case 1:
+ sub_8016B48(FELICITY_BANK_ACTION_DEPOSIT);
+ break;
+ case 3:
+ gUnknown_203B204->chosenAmount = gUnknown_203B204->unk64;
+ gUnknown_203B460->teamSavings += gUnknown_203B204->chosenAmount;
+ gUnknown_203B460->teamMoney -= gUnknown_203B204->chosenAmount;
+ PlaySound(0x14c);
+ UpdateFelicityBankState(9);
+ break;
+ case 2:
+ UpdateFelicityBankState(5);
+ break;
+ case 0:
+ break;
+ }
+}
+
+void Felicity_WithdrawMoney(void)
+{
+ switch(sub_8013BBC(&gUnknown_203B204->unk64))
+ {
+ case 1:
+ sub_8016B48(FELICITY_BANK_ACTION_WITHDRAW);
+ break;
+ case 3:
+ gUnknown_203B204->chosenAmount = gUnknown_203B204->unk64;
+ gUnknown_203B460->teamMoney += gUnknown_203B204->chosenAmount;
+ gUnknown_203B460->teamSavings -= gUnknown_203B204->chosenAmount;
+ PlaySound(0x14c);
+ UpdateFelicityBankState(0xc);
+ break;
+ case 2:
+ UpdateFelicityBankState(5);
+ break;
+ case 0:
+ break;
+ }
+}
+
+void sub_8016B00(void)
+{
+ s32 auStack8;
+
+ if (sub_80144A4(&auStack8) == 0) {
+ UpdateFelicityBankState(gUnknown_203B204->unk8);
+ }
+}
+
+void sub_8016B24(void)
+{
+ s32 auStack8;
+
+ if (sub_80144A4(&auStack8) == 4) {
+ UpdateFelicityBankState(gUnknown_203B204->unk8);
+ }
+}
+
+void sub_8016B48(u8 action)
+{
+
+ sub_8008C54(gUnknown_203B204->unk78);
+ sub_80073B8(gUnknown_203B204->unk78);
+ if (action != FELICITY_BANK_ACTION_WITHDRAW) {
+ xxx_call_draw_string(12,0,gFelicityDeposit,gUnknown_203B204->unk78,0);
+ }
+ else {
+ xxx_call_draw_string(12,0,gFelicityWithdraw,gUnknown_203B204->unk78,0);
+ }
+ sub_8013C68(&gUnknown_203B204->unk64);
+ sub_80073E0(gUnknown_203B204->unk78);
+}
+
+void CreateFelicityMoneySavingsHeader(u32 param_1)
+{
+ sub_8008C54(param_1);
+ sub_80073B8(param_1);
+ xxx_call_draw_string(16, 4, gFelicityMoney, param_1, 0);
+ sub_8012BC4(96, 4, gUnknown_203B460->teamMoney, 5, 5, param_1);
+ xxx_call_draw_string(112, 4, gFelicitySavings, param_1, 0);
+ sub_8012BC4(200,4,gUnknown_203B460->teamSavings,7,5,param_1);
+ sub_80073E0(param_1);
+}
+
+void sub_8016C40(u32 param_1)
+{
+ sub_8008C54(param_1);
+ sub_80073B8(param_1);
+ xxx_call_draw_string(6, 0, &gUnknown_80DB738,param_1, 0); // Money
+ sub_8012BC4(42, 12, gUnknown_203B460->teamMoney, 5, 5, param_1);
+ sub_80073E0(param_1);
+}
diff --git a/src/file_system.c b/src/file_system.c
index 4c295fc..e2b78d4 100644
--- a/src/file_system.c
+++ b/src/file_system.c
@@ -1091,3 +1091,10 @@ bool32 sub_800B2D4(char *arg0, char *arg1, int length) {
}
return FALSE;
}
+
+// Has to be down here to match (rodata ordering)
+ALIGNED(4) const char file_filler[] = _("pksdir0");
+const u32 gByteShiftLookup[4] = {0, 8, 16, 24};
+ALIGNED(4) const char file_filler1[] = _("pksdir0");
+ALIGNED(4) const char file_filler2[] = _("pksdir0");
+
diff --git a/src/friend_area.c b/src/friend_area.c
index 5180eba..27eddee 100644
--- a/src/friend_area.c
+++ b/src/friend_area.c
@@ -16,7 +16,7 @@ struct unkStruct_203B45C
u8 unk29[0x2f];
};
-extern struct unkStruct_203B45C gUnknown_203B45C[];
+extern struct unkStruct_203B45C gRecruitedPokemonRef[];
extern bool8 *gFriendAreas;
@@ -365,11 +365,11 @@ void sub_8092404(u8 r0, u16 *r1, bool8 r2, bool8 r3)
r6 = 0;
for(counter = 0; counter <= 412; counter++)
{
- if((u8)(gUnknown_203B45C[counter].unk0) & 1)
+ if((u8)(gRecruitedPokemonRef[counter].unk0) & 1)
{
- if(((u8)gUnknown_203B45C[counter].unk2 == 0) || r2)
+ if(((u8)gRecruitedPokemonRef[counter].unk2 == 0) || r2)
{
- flag = (u8)gUnknown_203B45C[counter].unk4[0] == 65;
+ flag = (u8)gRecruitedPokemonRef[counter].unk4[0] == 65;
if(!flag || r3)
{
if(sub_80923D4(counter) == r0)
@@ -466,7 +466,7 @@ NAKED void sub_8092404(u8 r0, u16 *r1, bool8 r2, bool8 r3)
"\tpop {r0}\n"
"\tbx r0\n"
"\t.align 2, 0\n"
-"_08092494: .4byte gUnknown_203B45C\n"
+"_08092494: .4byte gRecruitedPokemonRef\n"
"_08092498: .4byte 0x0000ffff");
}
#endif
@@ -483,14 +483,14 @@ void sub_809249C(u8 index, u8 clear)
return;
for(counter = 0; counter <= 412; counter++)
{
- if((u8)(gUnknown_203B45C[counter].unk0) & 1)
+ if((u8)(gRecruitedPokemonRef[counter].unk0) & 1)
{
if(sub_80923D4(counter) == index)
{
- flag = (u8)gUnknown_203B45C[counter].unk4[0] == 65;
+ flag = (u8)gRecruitedPokemonRef[counter].unk4[0] == 65;
if(!flag)
{
- temp8 = (u8)gUnknown_203B45C[counter].unk2;
+ temp8 = (u8)gRecruitedPokemonRef[counter].unk2;
neg8 = -temp8;
neg8 |= temp8;
// still tries to left shift before the right shift..
@@ -501,7 +501,7 @@ void sub_809249C(u8 index, u8 clear)
}
else
{
- gUnknown_203B45C[counter].unk0 = neg8;
+ gRecruitedPokemonRef[counter].unk0 = neg8;
}
}
}
@@ -564,7 +564,7 @@ NAKED void sub_809249C(u8 index, u8 clear)
"\tb _08092502\n"
"\t.align 2, 0\n"
"_080924F8: .4byte gFriendAreas\n"
-"_080924FC: .4byte gUnknown_203B45C\n"
+"_080924FC: .4byte gRecruitedPokemonRef\n"
"_08092500:\n"
"\tstrh r0, [r4]\n"
"_08092502:\n"
diff --git a/src/friend_area_1.c b/src/friend_area_1.c
index 6600231..c3dd57f 100644
--- a/src/friend_area_1.c
+++ b/src/friend_area_1.c
@@ -8,7 +8,7 @@ extern void nullsub_102(u32 *r0);
extern void sub_809488C(u32 *r0, u32 *r1, u32 r2);
extern void sub_809486C(u32 *r0, u8 *r1, u32 r2);
-u32 sub_80927A8(u8 *r0, u32 r1)
+u32 SaveFriendAreas(u8 *r0, u32 r1)
{
u32 temp[5];
s32 counter;
@@ -26,7 +26,7 @@ u32 sub_80927A8(u8 *r0, u32 r1)
return temp[2];
}
-u32 sub_80927F4(u8 *r0, u32 r1)
+u32 ReadSavedFriendAreas(u8 *r0, u32 r1)
{
u32 temp[5];
s32 counter;
diff --git a/src/friend_rescue.c b/src/friend_rescue.c
index d84c793..d89f5ea 100644
--- a/src/friend_rescue.c
+++ b/src/friend_rescue.c
@@ -1,12 +1,11 @@
#include "global.h"
#include "friend_rescue.h"
+#include "pokemon.h"
#include "constants/species.h"
extern void sub_80338C4(u32);
extern s32 sub_80144A4(s32 *);
extern void sub_802F2C0();
-extern void sub_808D8E0(u8 *, u32);
-extern char * GetMonSpecies(u32);
extern u8 sub_809539C(u32, u32);
extern void sub_8095240(u8);
extern u32 sub_802F298();
@@ -127,7 +126,7 @@ u32 CreateFriendRescueMenu(void)
gUnknown_203B33C->unk530 = 0;
gUnknown_203B33C->unk218 = -1;
gUnknown_203B33C->unk538 = -1;
- sub_808D8E0(gUnknown_202E5D8, SPECIES_PELIPPER);
+ CopyYellowSpeciesNametoBuffer(gUnknown_202E5D8, SPECIES_PELIPPER);
monName = GetMonSpecies(SPECIES_PELIPPER);
strcpy(gAvailablePokemonNames,monName);
for(counter = 0; counter < 0x36; counter++){
diff --git a/src/friend_rescue_1.c b/src/friend_rescue_1.c
index 7fb2326..94baab3 100644
--- a/src/friend_rescue_1.c
+++ b/src/friend_rescue_1.c
@@ -1,12 +1,11 @@
#include "global.h"
#include "friend_rescue.h"
+#include "pokemon.h"
#include "constants/species.h"
extern void sub_80338C4(u32);
extern s32 sub_80144A4(s32 *);
extern void sub_802F2C0();
-extern void sub_808D8E0(u8 *, u32);
-extern char * GetMonSpecies(u32);
extern u8 sub_809539C(u32, u32);
extern void sub_8095240(u8);
extern u32 sub_802F298();
@@ -39,7 +38,7 @@ void sub_80352A4(void)
if ( sub_802F298() == 3) {
sub_802F2C0();
- sub_808D8E0(gUnknown_202E5D8, SPECIES_PELIPPER);
+ CopyYellowSpeciesNametoBuffer(gUnknown_202E5D8, SPECIES_PELIPPER);
monName = GetMonSpecies(SPECIES_PELIPPER);
strcpy(gAvailablePokemonNames, monName);
uVar1 = sub_809539C(6, gUnknown_203B33C->unk420);
diff --git a/src/items.c b/src/items.c
new file mode 100644
index 0000000..238bc06
--- /dev/null
+++ b/src/items.c
@@ -0,0 +1,310 @@
+#include "global.h"
+#include "file_system.h"
+#include "gUnknown_203B460.h"
+#include "random.h"
+#include "item.h"
+
+extern struct unkStruct_203B460 *gUnknown_203B460;
+extern struct unkStruct_203B460 gUnknown_20389A8;
+extern struct FileArchive gSystemFileArchive;
+extern const char gUnknown_8109764;
+extern struct OpenedFile *gItemParametersFile;
+extern struct Item *gItemParametersData;
+
+extern void sub_8091840(u8);
+extern u8 GetItemType(u8);
+extern u32 GetItemUnkThrow(u8, u32);
+extern s32 sub_80915D4(struct ItemStruct_203B460 *);
+extern u8 sub_80914E4(u8);
+extern void sub_8090F58(u32, u8 *, struct ItemStruct_203B460 *, u32);
+
+void LoadItemParameters(void)
+{
+ gUnknown_203B460 = &gUnknown_20389A8;
+ gItemParametersFile = OpenFileAndGetFileDataPtr(&gUnknown_8109764,&gSystemFileArchive);
+ gItemParametersData = (struct Item *) gItemParametersFile->data;
+}
+
+struct unkStruct_203B460 *GetMoneyItemsInfo(void)
+{
+ return &gUnknown_20389A8;
+}
+
+void InitializeMoneyItems(void)
+{
+ s32 iVar1;
+
+ for(iVar1 = 0; iVar1 < 0x14; iVar1++)
+ {
+ gUnknown_203B460->fill0[iVar1].unk0 = 0;
+ }
+
+ for(iVar1 = 0; iVar1 < 0xF0; iVar1++)
+ {
+ gUnknown_203B460->unk50[iVar1] = 0;
+ }
+
+ for(iVar1 = 0; iVar1 < 8; iVar1++)
+ {
+ sub_8091840(iVar1);
+ }
+ gUnknown_203B460->teamMoney = 0;
+ gUnknown_203B460->teamSavings = 0;
+}
+
+u32 sub_8090A34(void)
+{
+ s32 iVar2;
+ u32 iVar3;
+
+ iVar3 = 0;
+ for(iVar2 = 0; iVar2 < 0x14; iVar2++)
+ {
+ if ((gUnknown_203B460->fill0[iVar2].unk0 & 1) != 0) {
+ iVar3++;
+ }
+ }
+ return iVar3;
+}
+
+bool8 sub_8090A60(u8 itemIndex)
+{
+ if ((GetItemType(itemIndex) != ITEM_TYPE_THROWABLE) && (GetItemType(itemIndex) != ITEM_TYPE_ROCK)) {
+ return FALSE;
+ }
+ else {
+ return TRUE;
+ }
+}
+
+void sub_8090A8C(struct ItemStruct_203B460 *param_1,u8 itemIndex,u8 param_3)
+{
+ u32 uVar3;
+ u32 uVar4;
+
+ if (itemIndex != 0) {
+ param_1->unk0 = 1;
+ param_1->itemIndex = itemIndex;
+ if (sub_8090A60(itemIndex)) {
+ uVar3 = GetItemUnkThrow(itemIndex,0);
+ uVar4 = GetItemUnkThrow(itemIndex,1);
+ param_1->numItems = RandomRange(uVar3,uVar4);
+ }
+ else {
+ if (GetItemType(itemIndex) == ITEM_TYPE_MONEY) {
+ param_1->numItems = 1;
+ }
+ else {
+ param_1->numItems = 0;
+ }
+ }
+ if (param_3 != 0) {
+ param_1->unk0 |= 8;
+ }
+ }
+ else {
+ param_1->unk0 = 0;
+ param_1->itemIndex = 0;
+ param_1->numItems = 0;
+ }
+}
+
+// TODO is this a struct one too?
+void sub_8090B08(struct ItemStruct_203B460 *param_1,u8 itemIndex)
+{
+ u32 uVar2;
+ u32 uVar3;
+
+ if (itemIndex != 0) {
+ param_1->unk0 = itemIndex;
+ if (sub_8090A60(itemIndex)) {
+ uVar2 = GetItemUnkThrow(itemIndex,0);
+ uVar3 = GetItemUnkThrow(itemIndex,1);
+ param_1->numItems = RandomRange(uVar2,uVar3);
+ } else {
+ if (GetItemType(itemIndex) == ITEM_TYPE_MONEY) {
+ param_1->numItems = 1;
+ }
+ else {
+ param_1->numItems = 0;
+ }
+ }
+ }
+ else {
+ param_1->unk0 = 0;
+ param_1->numItems = 0;
+ }
+}
+
+NAKED
+void sub_8090B64(u32 r0, u32 r1)
+{
+ asm_unified("\tpush {r4-r6,lr}\n"
+ "\tadds r4, r0, 0\n"
+ "\tadds r5, r1, 0\n"
+ "\tldrb r1, [r5]\n"
+ "\tadds r0, r1, 0\n"
+ "\tcmp r0, 0\n"
+ "\tbeq _08090BA4\n"
+ "\tmovs r0, 0x1\n"
+ "\tstrb r0, [r4]\n"
+ "\tstrb r1, [r4, 0x2]\n"
+ "\tldrb r0, [r4, 0x2]\n"
+ "\tbl sub_8090A60\n"
+ "\tlsls r0, 24\n"
+ "\tlsrs r6, r0, 24\n"
+ "\tcmp r6, 0\n"
+ "\tbne _08090B9A\n"
+ "\tldrb r0, [r4, 0x2]\n"
+ "\tbl GetItemType\n"
+ "\tlsls r0, 24\n"
+ "\tlsrs r0, 24\n"
+ "\tcmp r0, 0x6\n"
+ "\tbeq _08090B9A\n"
+ "\tldrb r0, [r4, 0x2]\n"
+ "\tcmp r0, 0x7C\n"
+ "\tbne _08090BA0\n"
+"_08090B9A:\n"
+ "\tldrb r0, [r5, 0x1]\n"
+ "\tstrb r0, [r4, 0x1]\n"
+ "\tb _08090BAA\n"
+"_08090BA0:\n"
+ "\tstrb r6, [r4, 0x1]\n"
+ "\tb _08090BAA\n"
+"_08090BA4:\n"
+ "\tstrb r0, [r4, 0x2]\n"
+ "\tstrb r0, [r4, 0x1]\n"
+ "\tstrb r0, [r4]\n"
+"_08090BAA:\n"
+ "\tpop {r4-r6}\n"
+ "\tpop {r0}\n"
+ "\tbx r0");
+}
+
+void sub_8090BB0(struct ItemStruct_203B460 *param_1,struct ItemStruct_203B460 *param_2)
+{
+ if ((param_2->unk0 & 1) != 0) {
+ param_1->unk0 = param_2->itemIndex;
+ param_1->numItems = param_2->numItems;
+ }
+ else {
+ param_1->unk0 = 0;
+ }
+}
+
+u8 GetItemType(u8 index)
+{
+ return gItemParametersData[index].type;
+}
+
+s32 sub_8090BE4(struct ItemStruct_203B460 *param_1)
+{
+ if (param_1->itemIndex == 0x69) {
+ return sub_80915D4(param_1);
+ }
+ else {
+ if (sub_8090A60(param_1->itemIndex)) {
+ return gItemParametersData[param_1->itemIndex].buyPrice * param_1->numItems;
+ }
+ else {
+ return gItemParametersData[param_1->itemIndex].buyPrice;
+ }
+ }
+}
+
+s32 sub_8090C30(struct ItemStruct_203B460 *param_1)
+{
+ if (param_1->itemIndex == 0x69) {
+ return sub_80915D4(param_1);
+ }
+ else {
+ if (sub_8090A60(param_1->itemIndex)) {
+ return gItemParametersData[param_1->itemIndex].sellPrice * param_1->numItems;
+ }
+ else {
+ return gItemParametersData[param_1->itemIndex].sellPrice;
+ }
+ }
+}
+
+s32 sub_8090C7C(struct ItemStruct_203B460 *param_1)
+{
+ if (sub_80914E4(param_1->itemIndex) == 0) {
+ return 0;
+ }
+ else {
+ if (sub_8090A60(param_1->itemIndex)) {
+ return gItemParametersData[param_1->itemIndex].buyPrice * param_1->numItems;
+ }
+ else {
+ return gItemParametersData[param_1->itemIndex].buyPrice;
+ }
+ }
+}
+
+s32 sub_8090CCC(struct ItemStruct_203B460 *param_1)
+{
+ if (sub_80914E4(param_1->itemIndex) == 0) {
+ return 0;
+ }
+ else {
+ if (sub_8090A60(param_1->itemIndex)) {
+ return gItemParametersData[param_1->itemIndex].sellPrice * param_1->numItems;
+ }
+ else {
+ return gItemParametersData[param_1->itemIndex].sellPrice;
+ }
+ }
+}
+
+s32 GetItemBuyPrice(u8 itemIndex)
+{
+ return gItemParametersData[itemIndex].buyPrice;
+}
+
+s32 GetItemSellPrice(u8 itemIndex)
+{
+ return gItemParametersData[itemIndex].sellPrice;
+}
+
+u8 GetItemOrder(u8 itemIndex)
+{
+ return gItemParametersData[itemIndex].order;
+}
+
+u8 GetItemPalette(u8 itemIndex)
+{
+ return gItemParametersData[itemIndex].palette;
+}
+
+u8 GetItemCategory(u8 itemIndex)
+{
+ return gItemParametersData[itemIndex].category;
+}
+
+u32 GetItemUnkThrow(u8 itemIndex, u32 r1)
+{
+ return gItemParametersData[itemIndex].unkThrow1B[r1];
+}
+
+u8 *GetItemDescription(u8 itemIndex)
+{
+ return gItemParametersData[itemIndex].descriptionPointer;
+}
+
+u32 GetItemUnkFood(u8 itemIndex, u32 r1)
+{
+ return gItemParametersData[itemIndex].unkFood1[r1];
+}
+
+void sub_8090DC4(u32 param_1,u8 itemIndex,u32 param_3)
+{
+ char acStack104 [80];
+ struct ItemStruct_203B460 unkItem;
+
+ strncpy(acStack104,gItemParametersData[itemIndex].namePointer,0x50);
+ sub_8090A8C(&unkItem,itemIndex,0);
+ unkItem.numItems = 1;
+ sub_8090F58(param_1,acStack104,&unkItem,param_3);
+}
+
diff --git a/src/kangaskhan_storage.c b/src/kangaskhan_storage.c
new file mode 100644
index 0000000..c695aec
--- /dev/null
+++ b/src/kangaskhan_storage.c
@@ -0,0 +1,176 @@
+#include "global.h"
+#include "file_system.h"
+#include "pokemon.h"
+#include "input.h"
+#include "constants/species.h"
+#include "kangaskhan_storage.h"
+
+extern struct unkStruct_203B208 *gUnknown_203B208;
+extern struct unkData gUnknown_80DB748;
+extern struct unkData gUnknown_80DB778;
+extern struct unkData gUnknown_80DB790;
+extern struct unkData gUnknown_80DB760;
+
+extern u8 gUnknown_202E5D8[];
+extern u8 gUnknown_202E1C8[];
+extern void *MemoryAlloc(u32, u32);
+extern void MemoryFree(void *);
+extern void sub_800641C(struct unkData *, u32, u32);
+extern void sub_8006518(struct unkData *);
+void UpdateKangaskhanStorageState(u32);
+
+extern void sub_8017828();
+extern void sub_8017AF8();
+extern void sub_8017C7C();
+extern void sub_8017DC0();
+extern void sub_80178D0();
+extern void sub_80179A8();
+extern void sub_8017B88();
+extern void sub_8017C28();
+extern void sub_8017D24();
+extern void sub_8017DDC();
+extern void sub_8017928();
+extern void sub_8017A1C();
+extern void sub_8017DF8();
+void sub_8016E80();
+extern void sub_8016FF8();
+
+
+u32 DisplayKangaskhanDialogueSprite(s32 param_1)
+{
+ char *monName;
+ struct OpenedFile * faceFile;
+
+ ResetUnusedInputStruct();
+ sub_800641C(0,1,1);
+ gUnknown_203B208 = MemoryAlloc(0x14c,8);
+ gUnknown_203B208->unk18 = 0;
+ gUnknown_203B208->unk1C = 0;
+ gUnknown_203B208->unk20 = 0;
+ gUnknown_203B208->unk0 = param_1;
+ CopyYellowSpeciesNametoBuffer(gUnknown_202E5D8, SPECIES_KANGASKHAN);
+ CopyYellowSpeciesNametoBuffer(gUnknown_202E1C8, SPECIES_KANGASKHAN);
+ monName = GetMonSpecies(SPECIES_KANGASKHAN);
+ strcpy(gUnknown_202E1C8 - 0x50, monName);
+ if (gUnknown_203B208->unk0 == 1) {
+ gUnknown_203B208->unkE8 = 0;
+ }
+ else {
+ gUnknown_203B208->unkE8 = &gUnknown_203B208->faceFile;
+ }
+ faceFile = GetDialogueSpriteDataPtr(SPECIES_KANGASKHAN);
+ gUnknown_203B208->faceFile = faceFile;
+ gUnknown_203B208->faceData = faceFile->data;
+ gUnknown_203B208->unkE4 = 0;
+ gUnknown_203B208->unkE5 = 0;
+ gUnknown_203B208->unkE6 = 0;
+ gUnknown_203B208->unkE0 = 2;
+ gUnknown_203B208->unkE2 = 8;
+ UpdateKangaskhanStorageState(0);
+ return 1;
+}
+
+u32 sub_8016D54(void)
+{
+ switch(gUnknown_203B208->currState) {
+ case 0:
+ case 1:
+ sub_8017828();
+ break;
+ case 0xd:
+ case 0xe:
+ sub_8017AF8();
+ break;
+ case 0xf:
+ sub_8017C7C();
+ break;
+ case 0x10:
+ sub_8017DC0();
+ break;
+ case 0x11:
+ sub_80178D0();
+ break;
+ case 0x12:
+ sub_80179A8();
+ break;
+ case 0x16:
+ case 0x17:
+ sub_8017B88();
+ break;
+ case 0x18:
+ sub_8017C28();
+ break;
+ case 0x19:
+ sub_8017D24();
+ break;
+ case 0x1a:
+ sub_8017DDC();
+ break;
+ case 0x1b:
+ sub_8017928();
+ break;
+ case 0x1c:
+ sub_8017A1C();
+ break;
+ case 4:
+ return 3;
+ default:
+ sub_8017DF8();
+ break;
+ }
+ return 0;
+}
+
+void sub_8016E40(void)
+{
+ if(gUnknown_203B208 != NULL)
+ {
+ CloseFile(gUnknown_203B208->faceFile);
+ MemoryFree(gUnknown_203B208);
+ gUnknown_203B208 = NULL;
+ }
+}
+
+void UpdateKangaskhanStorageState(u32 newState)
+{
+ gUnknown_203B208->currState = newState;
+ sub_8016E80();
+ sub_8016FF8();
+}
+
+void sub_8016E80(void)
+{
+ s32 iVar3;
+
+ sub_8006518(gUnknown_203B208->unkEC);
+ switch(gUnknown_203B208->currState)
+ {
+ case 0xD:
+ case 0xE:
+ gUnknown_203B208->unkEC[0] = gUnknown_80DB748;
+ gUnknown_203B208->unkEC[1] = gUnknown_80DB748;
+ gUnknown_203B208->unkEC[2] = gUnknown_80DB748;
+ gUnknown_203B208->unkEC[0] = gUnknown_80DB748;
+ break;
+ case 0x16:
+ case 0x17:
+ gUnknown_203B208->unkEC[0] = gUnknown_80DB748;
+ gUnknown_203B208->unkEC[1] = gUnknown_80DB748;
+ gUnknown_203B208->unkEC[2] = gUnknown_80DB748;
+ gUnknown_203B208->unkEC[0] = gUnknown_80DB778;
+ break;
+ case 0x18:
+ gUnknown_203B208->unkEC[1] = gUnknown_80DB790;
+ break;
+ case 0xF:
+ case 0x19:
+ gUnknown_203B208->unkEC[2] = gUnknown_80DB760;
+ break;
+ default:
+ for(iVar3 = 0; iVar3 < 4; iVar3++)
+ gUnknown_203B208->unkEC[iVar3] = gUnknown_80DB748;
+ break;
+ }
+ ResetUnusedInputStruct();
+ sub_800641C(gUnknown_203B208->unkEC, 1, 1);
+}
diff --git a/src/kangaskhan_storage_1.c b/src/kangaskhan_storage_1.c
new file mode 100644
index 0000000..25cc2a6
--- /dev/null
+++ b/src/kangaskhan_storage_1.c
@@ -0,0 +1,32 @@
+#include "global.h"
+#include "file_system.h"
+#include "pokemon.h"
+#include "input.h"
+#include "constants/species.h"
+#include "kangaskhan_storage.h"
+
+extern struct unkStruct_203B208 *gUnknown_203B208;
+
+extern u8 gUnknown_80DB7A8;
+
+extern void xxx_call_draw_string(u32 x, u32 y, u8 *, u32, u32);
+extern void sub_801CCD8();
+extern void sub_801AD34(u32);
+extern void sub_8012EA4(u32 *, u32);
+extern void sub_8008C54(u32);
+extern void sub_80073B8(u32);
+extern void sub_8013C68(u32 *);
+extern void sub_80073E0(u32);
+
+void sub_8017598(void)
+{
+
+ sub_8008C54(gUnknown_203B208->unkBC);
+ sub_80073B8(gUnknown_203B208->unkBC);
+ xxx_call_draw_string(4,0,&gUnknown_80DB7A8,gUnknown_203B208->unkBC,0); // Number?
+ sub_8013C68(&gUnknown_203B208->unkA8);
+ sub_80073E0(gUnknown_203B208->unkBC);
+ sub_801CCD8();
+ sub_801AD34(0);
+ sub_8012EA4(&gUnknown_203B208->unk58,0);
+}
diff --git a/src/kecleon_items.c b/src/kecleon_items.c
new file mode 100644
index 0000000..a3d0fd0
--- /dev/null
+++ b/src/kecleon_items.c
@@ -0,0 +1,193 @@
+#include "global.h"
+#include "file_system.h"
+#include "pokemon.h"
+#include "constants/species.h"
+#include "input.h"
+#include "kecleon_items.h"
+
+extern struct unkStruct_203B210 *gUnknown_203B210;
+extern u8 gUnknown_202E5D8[];
+extern u8 gUnknown_202E1C8[];
+extern struct unkData gUnknown_80DB840;
+extern struct unkData gUnknown_80DB870;
+extern struct unkData gUnknown_80DB888;
+extern struct unkData gUnknown_80DB858;
+
+extern void *MemoryAlloc(u32, u32);
+extern void MemoryFree(void *);
+void UpdateKecleonStoreState(u32);
+
+extern void sub_8019730();
+extern void sub_80199CC();
+extern void sub_8019B08();
+extern void sub_8019BBC();
+extern void sub_8019C78();
+extern void sub_8019850();
+extern void sub_80198E8();
+extern void sub_8019944();
+extern void sub_8019D30();
+extern void sub_8019D4C();
+extern void sub_8019D68();
+extern void sub_8018D30();
+extern void sub_8018E88();
+extern void sub_8006518(struct unkData *);
+extern void sub_800641C(struct unkData *, u32, u32);
+
+u32 DisplayKeckleonDialogueSprite(u32 param_1)
+{
+ char *monName;
+ struct OpenedFile *faceFile;
+
+ gUnknown_203B210 = MemoryAlloc(0x148,8);
+ gUnknown_203B210->unk28 = 0;
+ gUnknown_203B210->unk2C = 0;
+ gUnknown_203B210->unk30 = 0;
+ gUnknown_203B210->unk0 = param_1;
+ switch(param_1)
+ {
+ case 0:
+ gUnknown_203B210->unk4 = 1;
+ gUnknown_203B210->unkE4 = &gUnknown_203B210->unkD4;
+ CopyYellowSpeciesNametoBuffer(gUnknown_202E5D8, SPECIES_KECLEON);
+ CopyYellowSpeciesNametoBuffer(gUnknown_202E1C8, SPECIES_KECLEON);
+ monName = GetMonSpecies( SPECIES_KECLEON);
+ strcpy(gUnknown_202E1C8 - 0x50, monName);
+ break;
+ case 1:
+ gUnknown_203B210->unk4 = 1;
+ gUnknown_203B210->unkE4 = 0;
+ CopyYellowSpeciesNametoBuffer(gUnknown_202E5D8, SPECIES_KECLEON);
+ CopyYellowSpeciesNametoBuffer(gUnknown_202E1C8, SPECIES_KECLEON);
+ monName = GetMonSpecies( SPECIES_KECLEON);
+ strcpy(gUnknown_202E1C8 - 0x50, monName);
+ break;
+ case 2:
+ gUnknown_203B210->unk4 = 0;
+ gUnknown_203B210->unkE4 = &gUnknown_203B210->unkD4;
+ CopyYellowSpeciesNametoBuffer(gUnknown_202E5D8, SPECIES_KECLEON);
+ CopyYellowSpeciesNametoBuffer(gUnknown_202E1C8, SPECIES_KECLEON);
+ monName = GetMonSpecies( SPECIES_KECLEON);
+ strcpy(gUnknown_202E1C8 - 0x50, monName);
+ break;
+ case 3:
+ gUnknown_203B210->unk4 = 0;
+ gUnknown_203B210->unkE4 = 0;
+ CopyYellowSpeciesNametoBuffer(gUnknown_202E5D8, SPECIES_KECLEON);
+ CopyYellowSpeciesNametoBuffer(gUnknown_202E1C8, SPECIES_KECLEON);
+ monName = GetMonSpecies( SPECIES_KECLEON);
+ strcpy(gUnknown_202E1C8 - 0x50, monName);
+ break;
+ default:
+ break;
+ }
+ faceFile = GetDialogueSpriteDataPtr(SPECIES_KECLEON);
+ gUnknown_203B210->unkD4 = faceFile;
+ gUnknown_203B210->unkD8 = faceFile->data;
+ gUnknown_203B210->unkE0 = 0;
+ gUnknown_203B210->unkE1 = 0;
+ gUnknown_203B210->unkE2 = 0;
+ gUnknown_203B210->unkDC = 2;
+ gUnknown_203B210->unkDE = 8;
+ UpdateKecleonStoreState(0);
+ return 1;
+}
+
+u32 sub_8018C04(void)
+{
+ switch(gUnknown_203B210->currState) {
+ case 0:
+ case 1:
+ sub_8019730();
+ break;
+ case 0x12:
+ case 0x13:
+ sub_80199CC();
+ break;
+ case 0x1a:
+ case 0x1b:
+ sub_8019B08();
+ break;
+ case 0x14:
+ sub_8019BBC();
+ break;
+ case 0x1c:
+ sub_8019C78();
+ break;
+ case 0x16:
+ sub_8019850();
+ break;
+ case 0x1e:
+ sub_80198E8();
+ break;
+ case 0x1f:
+ sub_8019944();
+ break;
+ case 0x15:
+ sub_8019D30();
+ break;
+ case 0x1d:
+ sub_8019D4C();
+ break;
+ case 4:
+ return 3;
+ default:
+ sub_8019D68();
+ break;
+ }
+ return 0;
+}
+
+void sub_8018CF0(void)
+{
+ if(gUnknown_203B210 != NULL)
+ {
+ CloseFile(gUnknown_203B210->unkD4);
+ MemoryFree(gUnknown_203B210);
+ gUnknown_203B210 = NULL;
+ }
+}
+
+void UpdateKecleonStoreState(u32 newState)
+{
+ gUnknown_203B210->currState = newState;
+ sub_8018D30();
+ sub_8018E88();
+}
+
+void sub_8018D30(void)
+{
+ s32 iVar3;
+ sub_8006518(gUnknown_203B210->unkE8);
+ switch(gUnknown_203B210->currState)
+ {
+ case 0x12:
+ case 0x13:
+ gUnknown_203B210->unkE8[0] = gUnknown_80DB840;
+ gUnknown_203B210->unkE8[2] = gUnknown_80DB840;
+ gUnknown_203B210->unkE8[0] = gUnknown_80DB870;
+ gUnknown_203B210->unkE8[1] = gUnknown_80DB888;
+ break;
+ case 0x1A:
+ case 0x1B:
+ gUnknown_203B210->unkE8[0] = gUnknown_80DB840;
+ gUnknown_203B210->unkE8[1] = gUnknown_80DB840;
+ gUnknown_203B210->unkE8[2] = gUnknown_80DB840;
+ gUnknown_203B210->unkE8[1] = gUnknown_80DB888;
+ break;
+ case 0x14:
+ case 0x1C:
+ gUnknown_203B210->unkE8[2] = gUnknown_80DB858;
+ break;
+ default:
+ case 0x15:
+ case 0x16:
+ case 0x17:
+ case 0x18:
+ case 0x19:
+ for(iVar3 = 0; iVar3 < 4; iVar3++)
+ gUnknown_203B210->unkE8[iVar3] = gUnknown_80DB840;
+ break;
+ }
+ ResetUnusedInputStruct();
+ sub_800641C(gUnknown_203B210->unkE8, 1, 1);
+}
diff --git a/src/kecleon_items_1.c b/src/kecleon_items_1.c
new file mode 100644
index 0000000..f305c6f
--- /dev/null
+++ b/src/kecleon_items_1.c
@@ -0,0 +1,222 @@
+#include "global.h"
+#include "file_system.h"
+#include "pokemon.h"
+#include "constants/species.h"
+#include "input.h"
+#include "kecleon_items.h"
+#include "gUnknown_203B460.h"
+
+extern struct unkStruct_203B210 *gUnknown_203B210;
+extern struct unkStruct_203B460 *gUnknown_203B460;
+
+extern u32 sub_8090CCC(struct ItemStruct_203B460 *);
+extern u8 sub_80914E4(u8);
+extern u32 sub_8091814(void);
+extern u32 sub_8091A48(void);
+extern s32 sub_80144A4(s32 *);
+void UpdateKecleonStoreState(u32);
+extern u32 sub_801B410(void);
+extern void sub_801B450(void);
+
+extern void sub_8099690(u32);
+extern u8 sub_8012FD8(u32 *);
+extern void sub_8013114(u32 *, u32 *);
+extern void sub_8019EDC(u32);
+extern void sub_801A2A8(u32);
+extern s32 sub_801A8AC(void);
+extern u32 sub_801A6E8(u32);
+extern void sub_801A928(void);
+extern void sub_8016C40(u32);
+
+void sub_8019B08(void)
+{
+ switch(sub_801A6E8(1))
+ {
+ case 0:
+ break;
+ case 3:
+ gUnknown_203B210->unk24 = sub_801A8AC();
+ gUnknown_203B210->unk1C = gUnknown_203B460->fill0[gUnknown_203B210->unk24];
+ gUnknown_203B210->unk10 = sub_8090CCC(&gUnknown_203B210->unk1C);
+ UpdateKecleonStoreState(0x1c);
+ break;
+ case 4:
+ gUnknown_203B210->unk24 = sub_801A8AC();
+ gUnknown_203B210->unk1C = gUnknown_203B460->fill0[gUnknown_203B210->unk24];
+ gUnknown_203B210->unk10 = sub_8090CCC(&gUnknown_203B210->unk1C);
+ sub_8099690(0);
+ UpdateKecleonStoreState(0x1d);
+ break;
+ case 2:
+ sub_801A928();
+ UpdateKecleonStoreState(1);
+ break;
+ case 1:
+ default:
+ sub_8016C40(1);
+ break;
+ }
+}
+
+void sub_8019BBC(void)
+{
+ int local_c;
+
+ local_c = 0;
+ if (gUnknown_203B210->unk4 != 0) {
+ sub_8019EDC(0);
+ }
+ else {
+ sub_801A2A8(0);
+ }
+ if ((sub_8012FD8(&gUnknown_203B210->unk84) == 0) && (sub_8013114(&gUnknown_203B210->unk84,&local_c), local_c != 1)) {
+ gUnknown_203B210->unk30 = local_c;
+ }
+ switch(local_c){
+ case 2:
+ if (gUnknown_203B460->teamMoney == 0) {
+ UpdateKecleonStoreState(0x6);
+ }
+ else {
+ if (gUnknown_203B210->unk10 > gUnknown_203B460->teamMoney) {
+ UpdateKecleonStoreState(0xC);
+ }
+ else {
+ UpdateKecleonStoreState(0x16);
+ }
+ }
+ break;
+ case 7:
+ UpdateKecleonStoreState(0x15);
+ break;
+ case 1:
+ UpdateKecleonStoreState(0x13);
+ break;
+ }
+}
+
+void sub_8019C78(void)
+{
+ int local_c;
+
+ local_c = 0;
+ sub_801A6E8(0);
+ if ((sub_8012FD8(&gUnknown_203B210->unk84) == '\0') && (sub_8013114(&gUnknown_203B210->unk84,&local_c), local_c != 1)) {
+ gUnknown_203B210->unk2C = local_c;
+ }
+ switch(local_c){
+ case 3:
+ sub_8099690(0);
+ if (sub_80914E4(gUnknown_203B210->unk1C.itemIndex) == '\0') {
+ UpdateKecleonStoreState(0xd);
+ }
+ else {
+ if (gUnknown_203B210->unk10 + gUnknown_203B460->teamMoney > 99999) {
+ UpdateKecleonStoreState(0xe);
+
+ }
+ else {
+ UpdateKecleonStoreState(0x1e);
+ }
+ }
+ break;
+ case 7:
+ sub_8099690(0);
+ UpdateKecleonStoreState(0x1d);
+ break;
+ case 1:
+ UpdateKecleonStoreState(0x1b);
+ break;
+ }
+}
+
+void sub_8019D30(void)
+{
+ switch(sub_801B410())
+ {
+ case 2:
+ case 3:
+ sub_801B450();
+ UpdateKecleonStoreState(0x13);
+ break;
+ case 0:
+ case 1:
+ break;
+ }
+}
+
+void sub_8019D4C(void)
+{
+ switch(sub_801B410())
+ {
+ case 2:
+ case 3:
+ sub_801B450();
+ UpdateKecleonStoreState(0x1B);
+ break;
+ case 0:
+ case 1:
+ break;
+ }
+}
+
+
+void sub_8019D68(void)
+{
+ s32 temp;
+ if(sub_80144A4(&temp) == 0)
+ {
+ UpdateKecleonStoreState(gUnknown_203B210->unkC);
+ }
+}
+
+u32 sub_8019D8C(void)
+{
+ if(gUnknown_203B210->unk4 != 0)
+ {
+ return sub_8091814();
+ }
+ else
+ {
+ return sub_8091A48();
+ }
+}
+
+void sub_8019DAC(void)
+{
+ s32 iVar3;
+ struct ItemStruct_203B460 *pbVar4;
+ s32 iVar5;
+
+ gUnknown_203B210->unk14 = 0;
+ gUnknown_203B210->unk18 = 0;
+ iVar5 = 0;
+ do {
+ pbVar4 = &gUnknown_203B460->fill0[iVar5];
+ if (((pbVar4->unk0 & 1) != 0) && (sub_80914E4(pbVar4->itemIndex) != 0)) {
+ iVar3 = sub_8090CCC(pbVar4);
+ gUnknown_203B210->unk18 += iVar3;
+ gUnknown_203B210->unk14++;
+ }
+ iVar5 = iVar5 + 1;
+ } while (iVar5 < 0x14);
+}
+
+void sub_8019E04(int param_1)
+{
+
+ if (gUnknown_203B210->unk4 != 0) {
+ if (param_1 == 1)
+ gUnknown_203B210->unkE0 = 1;
+ else
+ gUnknown_203B210->unkE0 = 0;
+ }
+ else
+ {
+ if (param_1 == 1)
+ gUnknown_203B210->unkE0 = 7;
+ else
+ gUnknown_203B210->unkE0 = 6;
+ }
+}
+
diff --git a/src/load_screen.c b/src/load_screen.c
index d79a420..e49d5a9 100644
--- a/src/load_screen.c
+++ b/src/load_screen.c
@@ -1,22 +1,724 @@
#include "global.h"
+#include "input.h"
+#include "main_menu.h"
+#include "play_time.h"
+#include "file_system.h"
-s32 sub_8011FA8(void);
-s32 sub_8095324(u32);
-s32 sub_8011C1C(void);
+extern struct PlayTimeStruct *gPlayTimeRef;
+extern struct PlayTimeStruct gPlayTime;
-bool8 sub_8039844(void)
+extern const struct FileArchive gTitleMenuFileArchive;
+
+struct unkStruct_808D33C
+{
+ u8 fill0[0x4C];
+ u8 unk4C;
+};
+
+struct unkStruct_203B484
+{
+ u8 fill0[0xC];
+ s16 unkC;
+ u8 fillE[0x50 - 0xE];
+ u32 unk50;
+};
+
+struct unkData
+{
+ u8 unk0[24];
+};
+
+struct unkStruct_203B374
+{
+ // size: 0x27c
+ u32 currMenu;
+ u32 unk4;
+ u8 fill8[0x54 - 8];
+ u32 unk54;
+ u8 fill58[0xA4 - 0x58];
+ u32 unkA4;
+ u8 fillA8[0x144 - 0xA8];
+ struct unkData unk144[4];
+ /* 0x1A4 */ u8 formattedTeamName[0x24];
+ /* 0x1C8 */ u8 formattedPlayerName[0x24];
+ /* 0x1EC */ u8 formattedLocation[0x24];
+ /* 0x210 */ u8 formattedPlayTime[0x24];
+ /* 0x234 */ u8 formattedAdventures[0x24];
+ /* 0x258 */ u8 formattedHelperInfo[0x24];
+};
+
+extern struct unkStruct_203B374 *gUnknown_203B374;
+extern u32 gUnknown_203B378;
+extern u32 gUnknown_203B3B8[];
+extern u32 gUnknown_203B388[];
+extern struct unkStruct_203B484 *gUnknown_203B484;
+
+extern struct unkData gUnknown_80E75F8;
+extern struct unkData gUnknown_80E7610;
+extern struct unkData gUnknown_80E762C;
+extern u32 gUnknown_80E7644;
+extern u32 gUnknown_80E7684;
+extern u32 gUnknown_80E76B8;
+extern u32 gUnknown_80E76E8;
+extern u32 gUnknown_80E7730;
+extern struct unkData gUnknown_80E7784;
+extern u32 gUnknown_80E779C;
+extern u8 gUnknown_80E77BC;
+extern u8 gUnknown_80E77C4;
+extern u8 gUnknown_80E77CC;
+extern u8 gUnknown_80E77D8;
+extern u8 gUnknown_80E77E4;
+extern u8 gUnknown_80E77F0;
+extern u8 gUnknown_80E77F8;
+extern u8 gUnknown_80E7804;
+extern u8 gUnknown_80E7808;
+extern u8 gUnknown_80E780C;
+extern u8 gUnknown_80E7824;
+extern u8 gUnknown_80E7838;
+extern u8 gUnknown_80E7848;
+extern u8 gUnknown_80E784C;
+extern u8 gUnknown_80E7854;
+extern const char gUnknown_80E785C[]; // clmkpat
+
+
+extern void *MemoryAlloc(u32, u32);
+extern void MemoryFill8(u8 *, u32, u32);
+extern void MemoryFree(void *);
+u8 IsQuickSave(void);
+void DrawLoadScreenText(void);
+extern void sub_8035CF4(u32 *, u32, u32);
+extern void sub_800641C(struct unkData *, u32, u32);
+extern void SetMenuItems(u32 *, struct unkData *, u32, struct unkData *, u32 *, u32, u32, u32);
+extern u8 sub_8012FD8(u32 *);
+extern void sub_8013114(u32 *, u32 *);
+extern void sub_8095240(u32);
+extern void sub_80122A8(void);
+
+extern void sub_80920D8(u8 *);
+extern struct unkStruct_808D33C *sub_808D33C(void);
+extern u8 sub_80023E4(u32);
+extern u8 *sub_8098FB4();
+extern void sub_800D158(u8 *buffer, u8 *text, ...);
+extern s32 sub_8011C1C(void);
+extern u8 *sub_809769C(void);
+extern u32 sub_8097778(void);
+extern void xxx_call_draw_string(u32 x, u32 y, u8 *, u32, u32);
+extern void sub_8090228(u8 *, u8 *);
+extern void sub_80922B4(u8 *, u8 *, u32);
+extern s32 sub_8095324(u32);
+extern u32 sub_8001658(u32, u32);
+void sub_80397B4(void);
+extern void sub_80073E0(u32);
+extern s32 sub_8011FA8(void);
+
+extern void sub_8008C54(u32);
+extern void sub_80073B8(u32);
+extern void sub_808D930(u8 *, s16);
+extern void xxx_format_string(u8 *, u8 *, u8 *, u32);
+
+extern void SetBGPaletteBufferColorArray(s32, s32);
+extern void sub_8007E20(s32, s32, s32, u32, u32, s32, u32);
+
+
+void CreateLoadScreen(u32 currMenu)
+{
+ int iVar8;
+
+ if (gUnknown_203B374 == NULL) {
+ gUnknown_203B374 = MemoryAlloc(sizeof(struct unkStruct_203B374),8);
+ MemoryFill8((u8 *)gUnknown_203B374,0,sizeof(struct unkStruct_203B374));
+ }
+ gUnknown_203B374->currMenu = currMenu;
+ for(iVar8 = 0; iVar8 < 4; iVar8++){
+ gUnknown_203B374->unk144[iVar8] = gUnknown_80E75F8;
+ }
+ ResetUnusedInputStruct();
+ sub_800641C(gUnknown_203B374->unk144,1,1);
+ SetMenuItems(&gUnknown_203B374->unk4,gUnknown_203B374->unk144,0,&gUnknown_80E7610,&gUnknown_203B378,0,6,0);
+ switch(gUnknown_203B374->currMenu){
+ case MENU_CONTINUE:
+ if (IsQuickSave())
+ SetMenuItems(&gUnknown_203B374->unk4,gUnknown_203B374->unk144,1,&gUnknown_80E762C,&gUnknown_80E7644,0,6,0);
+ else
+ SetMenuItems(&gUnknown_203B374->unk4,gUnknown_203B374->unk144,1,&gUnknown_80E762C,&gUnknown_80E7684,0,6,0);
+ break;
+ case MENU_AWAITING_RESCUE:
+ SetMenuItems(&gUnknown_203B374->unk4,gUnknown_203B374->unk144,1,&gUnknown_80E762C,&gUnknown_80E76B8,0,6,0);
+ break;
+ case MENU_DELETE_SAVE_PROMPT:
+ SetMenuItems(&gUnknown_203B374->unk4,gUnknown_203B374->unk144,1,&gUnknown_80E762C,&gUnknown_80E76E8,0,6,0);
+ break;
+ case MENU_DELETE_SAVE_CONFIRM:
+ SetMenuItems(&gUnknown_203B374->unk4,gUnknown_203B374->unk144,1,&gUnknown_80E762C, &gUnknown_80E7730,0,6,0);
+ break;
+ }
+ SetMenuItems(&gUnknown_203B374->unk4,gUnknown_203B374->unk144,2,&gUnknown_80E7784,&gUnknown_80E779C,1,2,0);
+ sub_8035CF4(&gUnknown_203B374->unk4,0,0);
+ sub_8035CF4(&gUnknown_203B374->unk4,1,0);
+ sub_8035CF4(&gUnknown_203B374->unk4,2,1);
+ DrawLoadScreenText();
+}
+
+void CleanLoadScreen(void)
+{
+ ResetUnusedInputStruct();
+ sub_800641C(NULL, 1, 1);
+ if(gUnknown_203B374 != NULL)
+ {
+ MemoryFree(gUnknown_203B374);
+ gUnknown_203B374 = NULL;
+ }
+}
+
+u32 UpdateLoadScreenMenu(void)
+{
+ u32 nextMenu;
+ u32 menuAction;
+
+ nextMenu = MENU_NO_SCREEN_CHANGE;
+ menuAction = 4;
+ sub_8012FD8(&gUnknown_203B374->unk54);
+ if (sub_8012FD8(&gUnknown_203B374->unkA4) == '\0') {
+ sub_8013114(&gUnknown_203B374->unkA4,&menuAction);
+ }
+
+ switch(menuAction)
+ {
+ case 3:
+ case 2:
+ nextMenu = MENU_MAIN_SCREEN;
+ break;
+ case 1:
+ switch(gUnknown_203B374->currMenu)
+ {
+ case MENU_CONTINUE:
+ nextMenu = 2; // MENU_???
+ break;
+ case MENU_AWAITING_RESCUE:
+ sub_8095240(0);
+ nextMenu = 4; // MENU_???
+ break;
+ case MENU_DELETE_SAVE_PROMPT:
+ nextMenu = MENU_DELETE_SAVE_CONFIRM;
+ break;
+ case MENU_DELETE_SAVE_CONFIRM:
+ sub_80122A8();
+ nextMenu = MENU_DELETE_SAVE;
+ break;
+ }
+ break;
+ case 5:
+ default:
+ break;
+ }
+ return nextMenu;
+}
+
+#ifdef NONMATCHING
+void DrawLoadScreenText(void)
+{
+ int iVar2;
+ u32 numAdventures;
+ u8 auStack356 [100];
+ u8 teamNameBuffer [40];
+ u8 playerName [80];
+ u8 nameHelper [80];
+ u8 speciesHelper [20];
+ u32 hours;
+ u32 minutes;
+ u32 seconds;
+ struct unkStruct_808D33C *playerInfo;
+
+ iVar2 = sub_8011FA8();
+ sub_8008C54(0);
+ sub_80073B8(0);
+ xxx_call_draw_string(8,0, &gUnknown_80E77BC,0,0); // Team:
+ xxx_call_draw_string(8,12,&gUnknown_80E77C4,0,0); // Name:
+ xxx_call_draw_string(8,24,&gUnknown_80E77CC,0,0); // Location:
+ xxx_call_draw_string(8,36,&gUnknown_80E77D8,0,0); // Play time:
+ xxx_call_draw_string(8,48,&gUnknown_80E77E4,0,0); // Adventures:
+ xxx_call_draw_string(8,60,&gUnknown_80E77F0,0,0); // Helper:
+
+ // Draw Team Name
+ if (sub_80023E4(0) != '\0') {
+ sub_80920D8(teamNameBuffer);
+ }
+ else {
+ strcpy(teamNameBuffer,&gUnknown_80E77F8);
+ }
+ sub_800D158(gUnknown_203B374->formattedTeamName,&gUnknown_80E7804,teamNameBuffer);
+ xxx_call_draw_string(64,0,gUnknown_203B374->formattedTeamName,0,0);
+
+ // Draw Player Name
+ playerInfo = sub_808D33C();
+ if (playerInfo == NULL) {
+ sub_80922B4(playerName,&gUnknown_80E7808,10);
+ }
+ else {
+ sub_80922B4(playerName,&playerInfo->unk4C,10);
+ }
+ sub_800D158(gUnknown_203B374->formattedPlayerName,&gUnknown_80E7804,playerName);
+ xxx_call_draw_string(64,12,gUnknown_203B374->formattedPlayerName,0,0);
+
+ // Draw Location Info
+ // TODO: fix these branches.. correct logic but branching isn't right
+ if ((sub_8095324(1) != 0) || (sub_8095324(7) != 0)) {
+ if (iVar2 == 0xf1207) {
+ sub_8090228(gUnknown_203B374->formattedLocation,sub_809769C());
+ }
+ else {
+ sub_800D158(gUnknown_203B374->formattedLocation,&gUnknown_80E780C); // Quicksave data deleted
+ }
+ }
+ else {
+ switch(sub_8011C1C())
+ {
+ default:
+ sub_800D158(gUnknown_203B374->formattedLocation,&gUnknown_80E7824); // Location unknown
+ break;
+ case 1:
+ switch(sub_8001658(0,24))
+ {
+ default:
+ sub_800D158(auStack356,&gUnknown_80E7804,sub_8098FB4());
+ xxx_format_string(auStack356,gUnknown_203B374->formattedLocation,gUnknown_203B374->formattedPlayTime,0);
+ break;
+ case 0x7:
+ case 0xB:
+ sub_800D158(gUnknown_203B374->formattedLocation,&gUnknown_80E780C); // Quicksave data deleted
+ break;
+ }
+ break;
+ case 2:
+ if (iVar2 == 0xf1207)
+ {
+ sub_8090228(gUnknown_203B374->formattedLocation,sub_809769C());
+ } else {
+ sub_800D158(gUnknown_203B374->formattedLocation,&gUnknown_80E780C); // Quicksave data deleted
+ }
+ break;
+ }
+ }
+ xxx_call_draw_string(64,24,gUnknown_203B374->formattedLocation,0,0);
+
+ // Draw Play Time
+ DeconstructPlayTime(gPlayTimeRef,&hours,&minutes,&seconds);
+ sub_800D158(gUnknown_203B374->formattedPlayTime,&gUnknown_80E7838,hours,minutes,seconds);
+ xxx_call_draw_string(64,36,gUnknown_203B374->formattedPlayTime,0,0);
+
+ // Draw Adventures Info
+ numAdventures = sub_8097778();
+ sub_800D158(gUnknown_203B374->formattedAdventures,&gUnknown_80E7848,numAdventures); // %d
+ xxx_call_draw_string(64,48,gUnknown_203B374->formattedAdventures,0,0);
+
+ // Draw Helper Info
+ if ((iVar2 == 0xf1207) && (gUnknown_203B484->unkC != 0)) {
+ sub_808D930(speciesHelper,gUnknown_203B484->unkC);
+ // TODO very hacky match here
+ sub_80922B4(nameHelper,(u8 *)(&gUnknown_203B484 + 0x14),10);
+ sub_800D158(gUnknown_203B374->formattedHelperInfo,&gUnknown_80E784C,nameHelper,speciesHelper); // %s (%s)
+ }
+ else {
+ sub_800D158(gUnknown_203B374->formattedHelperInfo,&gUnknown_80E7854); // -----
+ }
+ xxx_call_draw_string(64,60,gUnknown_203B374->formattedHelperInfo,0,0);
+
+ sub_80397B4(); // Draw event icons??
+ sub_80073E0(0);
+}
+#else
+NAKED
+void DrawLoadScreenText(void)
+{
+ asm_unified("\tpush {r4-r7,lr}\n"
+ "\tmov r7, r8\n"
+ "\tpush {r7}\n"
+ "\tsub sp, 0x150\n"
+ "\tbl sub_8011FA8\n"
+ "\tmov r8, r0\n"
+ "\tmovs r0, 0\n"
+ "\tbl sub_8008C54\n"
+ "\tmovs r0, 0\n"
+ "\tbl sub_80073B8\n"
+ "\tldr r2, _0803952C\n"
+ "\tmovs r4, 0\n"
+ "\tstr r4, [sp]\n"
+ "\tmovs r0, 0x8\n"
+ "\tmovs r1, 0\n"
+ "\tmovs r3, 0\n"
+ "\tbl xxx_call_draw_string\n"
+ "\tldr r2, _08039530\n"
+ "\tstr r4, [sp]\n"
+ "\tmovs r0, 0x8\n"
+ "\tmovs r1, 0xC\n"
+ "\tmovs r3, 0\n"
+ "\tbl xxx_call_draw_string\n"
+ "\tldr r2, _08039534\n"
+ "\tstr r4, [sp]\n"
+ "\tmovs r0, 0x8\n"
+ "\tmovs r1, 0x18\n"
+ "\tmovs r3, 0\n"
+ "\tbl xxx_call_draw_string\n"
+ "\tldr r2, _08039538\n"
+ "\tstr r4, [sp]\n"
+ "\tmovs r0, 0x8\n"
+ "\tmovs r1, 0x24\n"
+ "\tmovs r3, 0\n"
+ "\tbl xxx_call_draw_string\n"
+ "\tldr r2, _0803953C\n"
+ "\tstr r4, [sp]\n"
+ "\tmovs r0, 0x8\n"
+ "\tmovs r1, 0x30\n"
+ "\tmovs r3, 0\n"
+ "\tbl xxx_call_draw_string\n"
+ "\tldr r2, _08039540\n"
+ "\tstr r4, [sp]\n"
+ "\tmovs r0, 0x8\n"
+ "\tmovs r1, 0x3C\n"
+ "\tmovs r3, 0\n"
+ "\tbl xxx_call_draw_string\n"
+ "\tmovs r0, 0\n"
+ "\tbl sub_80023E4\n"
+ "\tlsls r0, 24\n"
+ "\tcmp r0, 0\n"
+ "\tbeq _08039544\n"
+ "\tadd r4, sp, 0x68\n"
+ "\tadds r0, r4, 0\n"
+ "\tbl sub_80920D8\n"
+ "\tadds r2, r4, 0\n"
+ "\tb _0803954E\n"
+ "\t.align 2, 0\n"
+"_0803952C: .4byte gUnknown_80E77BC\n"
+"_08039530: .4byte gUnknown_80E77C4\n"
+"_08039534: .4byte gUnknown_80E77CC\n"
+"_08039538: .4byte gUnknown_80E77D8\n"
+"_0803953C: .4byte gUnknown_80E77E4\n"
+"_08039540: .4byte gUnknown_80E77F0\n"
+"_08039544:\n"
+ "\tldr r1, _08039588\n"
+ "\tadd r0, sp, 0x68\n"
+ "\tbl strcpy\n"
+ "\tadd r2, sp, 0x68\n"
+"_0803954E:\n"
+ "\tldr r5, _0803958C\n"
+ "\tldr r0, [r5]\n"
+ "\tmovs r4, 0xD2\n"
+ "\tlsls r4, 1\n"
+ "\tadds r0, r4\n"
+ "\tldr r1, _08039590\n"
+ "\tbl sub_800D158\n"
+ "\tldr r2, [r5]\n"
+ "\tadds r2, r4\n"
+ "\tmovs r0, 0\n"
+ "\tstr r0, [sp]\n"
+ "\tmovs r0, 0x40\n"
+ "\tmovs r1, 0\n"
+ "\tmovs r3, 0\n"
+ "\tbl xxx_call_draw_string\n"
+ "\tbl sub_808D33C\n"
+ "\tcmp r0, 0\n"
+ "\tbne _08039598\n"
+ "\tadd r4, sp, 0x90\n"
+ "\tldr r1, _08039594\n"
+ "\tadds r0, r4, 0\n"
+ "\tmovs r2, 0xA\n"
+ "\tbl sub_80922B4\n"
+ "\tb _080395A6\n"
+ "\t.align 2, 0\n"
+"_08039588: .4byte gUnknown_80E77F8\n"
+"_0803958C: .4byte gUnknown_203B374\n"
+"_08039590: .4byte gUnknown_80E7804\n"
+"_08039594: .4byte gUnknown_80E7808\n"
+"_08039598:\n"
+ "\tadd r4, sp, 0x90\n"
+ "\tadds r1, r0, 0\n"
+ "\tadds r1, 0x4C\n"
+ "\tadds r0, r4, 0\n"
+ "\tmovs r2, 0xA\n"
+ "\tbl sub_80922B4\n"
+"_080395A6:\n"
+ "\tadds r2, r4, 0\n"
+ "\tldr r5, _080395F0\n"
+ "\tldr r0, [r5]\n"
+ "\tmovs r4, 0xE4\n"
+ "\tlsls r4, 1\n"
+ "\tadds r0, r4\n"
+ "\tldr r6, _080395F4\n"
+ "\tadds r1, r6, 0\n"
+ "\tbl sub_800D158\n"
+ "\tldr r2, [r5]\n"
+ "\tadds r2, r4\n"
+ "\tmovs r0, 0\n"
+ "\tstr r0, [sp]\n"
+ "\tmovs r0, 0x40\n"
+ "\tmovs r1, 0xC\n"
+ "\tmovs r3, 0\n"
+ "\tbl xxx_call_draw_string\n"
+ "\tmovs r0, 0x1\n"
+ "\tbl sub_8095324\n"
+ "\tcmp r0, 0\n"
+ "\tbne _080395E0\n"
+ "\tmovs r0, 0x7\n"
+ "\tbl sub_8095324\n"
+ "\tcmp r0, 0\n"
+ "\tbeq _08039606\n"
+"_080395E0:\n"
+ "\tldr r0, _080395F8\n"
+ "\tcmp r8, r0\n"
+ "\tbne _080395FC\n"
+ "\tldr r4, [r5]\n"
+ "\tmovs r0, 0xF6\n"
+ "\tlsls r0, 1\n"
+ "\tadds r4, r0\n"
+ "\tb _08039676\n"
+ "\t.align 2, 0\n"
+"_080395F0: .4byte gUnknown_203B374\n"
+"_080395F4: .4byte gUnknown_80E7804\n"
+"_080395F8: .4byte 0x000f1207\n"
+"_080395FC:\n"
+ "\tldr r0, [r5]\n"
+ "\tmovs r1, 0xF6\n"
+ "\tlsls r1, 1\n"
+ "\tadds r0, r1\n"
+ "\tb _08039690\n"
+"_08039606:\n"
+ "\tbl sub_8011C1C\n"
+ "\tcmp r0, 0x1\n"
+ "\tbeq _08039624\n"
+ "\tcmp r0, 0x2\n"
+ "\tbeq _08039668\n"
+ "\tldr r0, [r5]\n"
+ "\tmovs r2, 0xF6\n"
+ "\tlsls r2, 1\n"
+ "\tadds r0, r2\n"
+ "\tldr r1, _08039620\n"
+ "\tb _08039692\n"
+ "\t.align 2, 0\n"
+"_08039620: .4byte gUnknown_80E7824\n"
+"_08039624:\n"
+ "\tmovs r0, 0\n"
+ "\tmovs r1, 0x18\n"
+ "\tbl sub_8001658\n"
+ "\tcmp r0, 0x7\n"
+ "\tbeq _08039658\n"
+ "\tcmp r0, 0xB\n"
+ "\tbeq _08039658\n"
+ "\tbl sub_8098FB4\n"
+ "\tadds r2, r0, 0\n"
+ "\tadd r0, sp, 0x4\n"
+ "\tadds r1, r6, 0\n"
+ "\tbl sub_800D158\n"
+ "\tldr r0, [r5]\n"
+ "\tmovs r3, 0xF6\n"
+ "\tlsls r3, 1\n"
+ "\tadds r1, r0, r3\n"
+ "\tadds r3, 0x24\n"
+ "\tadds r2, r0, r3\n"
+ "\tadd r0, sp, 0x4\n"
+ "\tmovs r3, 0\n"
+ "\tbl xxx_format_string\n"
+ "\tb _08039696\n"
+"_08039658:\n"
+ "\tldr r0, _08039664\n"
+ "\tldr r0, [r0]\n"
+ "\tmovs r1, 0xF6\n"
+ "\tlsls r1, 1\n"
+ "\tadds r0, r1\n"
+ "\tb _08039690\n"
+ "\t.align 2, 0\n"
+"_08039664: .4byte gUnknown_203B374\n"
+"_08039668:\n"
+ "\tldr r0, _08039684\n"
+ "\tcmp r8, r0\n"
+ "\tbne _08039688\n"
+ "\tldr r4, [r5]\n"
+ "\tmovs r2, 0xF6\n"
+ "\tlsls r2, 1\n"
+ "\tadds r4, r2\n"
+"_08039676:\n"
+ "\tbl sub_809769C\n"
+ "\tadds r1, r0, 0\n"
+ "\tadds r0, r4, 0\n"
+ "\tbl sub_8090228\n"
+ "\tb _08039696\n"
+ "\t.align 2, 0\n"
+"_08039684: .4byte 0x000f1207\n"
+"_08039688:\n"
+ "\tldr r0, [r5]\n"
+ "\tmovs r3, 0xF6\n"
+ "\tlsls r3, 1\n"
+ "\tadds r0, r3\n"
+"_08039690:\n"
+ "\tldr r1, _0803974C\n"
+"_08039692:\n"
+ "\tbl sub_800D158\n"
+"_08039696:\n"
+ "\tldr r7, _08039750\n"
+ "\tldr r2, [r7]\n"
+ "\tmovs r0, 0xF6\n"
+ "\tlsls r0, 1\n"
+ "\tadds r2, r0\n"
+ "\tmovs r6, 0\n"
+ "\tstr r6, [sp]\n"
+ "\tmovs r0, 0x40\n"
+ "\tmovs r1, 0x18\n"
+ "\tmovs r3, 0\n"
+ "\tbl xxx_call_draw_string\n"
+ "\tldr r0, _08039754\n"
+ "\tldr r0, [r0]\n"
+ "\tadd r1, sp, 0x144\n"
+ "\tadd r2, sp, 0x148\n"
+ "\tadd r3, sp, 0x14C\n"
+ "\tbl DeconstructPlayTime\n"
+ "\tldr r0, [r7]\n"
+ "\tmovs r5, 0x84\n"
+ "\tlsls r5, 2\n"
+ "\tadds r0, r5\n"
+ "\tldr r1, _08039758\n"
+ "\tadd r2, sp, 0x144\n"
+ "\tldr r2, [r2]\n"
+ "\tadd r3, sp, 0x148\n"
+ "\tldr r3, [r3]\n"
+ "\tadd r4, sp, 0x14C\n"
+ "\tldr r4, [r4]\n"
+ "\tstr r4, [sp]\n"
+ "\tbl sub_800D158\n"
+ "\tldr r2, [r7]\n"
+ "\tadds r2, r5\n"
+ "\tstr r6, [sp]\n"
+ "\tmovs r0, 0x40\n"
+ "\tmovs r1, 0x24\n"
+ "\tmovs r3, 0\n"
+ "\tbl xxx_call_draw_string\n"
+ "\tbl sub_8097778\n"
+ "\tadds r2, r0, 0\n"
+ "\tldr r0, [r7]\n"
+ "\tmovs r4, 0x8D\n"
+ "\tlsls r4, 2\n"
+ "\tadds r0, r4\n"
+ "\tldr r1, _0803975C\n"
+ "\tbl sub_800D158\n"
+ "\tldr r2, [r7]\n"
+ "\tadds r2, r4\n"
+ "\tstr r6, [sp]\n"
+ "\tmovs r0, 0x40\n"
+ "\tmovs r1, 0x30\n"
+ "\tmovs r3, 0\n"
+ "\tbl xxx_call_draw_string\n"
+ "\tldr r0, _08039760\n"
+ "\tcmp r8, r0\n"
+ "\tbne _0803976C\n"
+ "\tldr r0, _08039764\n"
+ "\tldr r6, [r0]\n"
+ "\tmovs r1, 0xC\n"
+ "\tldrsh r0, [r6, r1]\n"
+ "\tcmp r0, 0\n"
+ "\tbeq _0803976C\n"
+ "\tadd r5, sp, 0x130\n"
+ "\tadds r1, r0, 0\n"
+ "\tadds r0, r5, 0\n"
+ "\tbl sub_808D930\n"
+ "\tadd r4, sp, 0xE0\n"
+ "\tadds r1, r6, 0\n"
+ "\tadds r1, 0x50\n"
+ "\tadds r0, r4, 0\n"
+ "\tmovs r2, 0xA\n"
+ "\tbl sub_80922B4\n"
+ "\tldr r0, [r7]\n"
+ "\tmovs r3, 0x96\n"
+ "\tlsls r3, 2\n"
+ "\tadds r0, r3\n"
+ "\tldr r1, _08039768\n"
+ "\tadds r2, r4, 0\n"
+ "\tadds r3, r5, 0\n"
+ "\tbl sub_800D158\n"
+ "\tb _0803977C\n"
+ "\t.align 2, 0\n"
+"_0803974C: .4byte gUnknown_80E780C\n"
+"_08039750: .4byte gUnknown_203B374\n"
+"_08039754: .4byte gPlayTimeRef\n"
+"_08039758: .4byte gUnknown_80E7838\n"
+"_0803975C: .4byte gUnknown_80E7848\n"
+"_08039760: .4byte 0x000f1207\n"
+"_08039764: .4byte gUnknown_203B484\n"
+"_08039768: .4byte gUnknown_80E784C\n"
+"_0803976C:\n"
+ "\tldr r0, _080397AC\n"
+ "\tldr r0, [r0]\n"
+ "\tmovs r1, 0x96\n"
+ "\tlsls r1, 2\n"
+ "\tadds r0, r1\n"
+ "\tldr r1, _080397B0\n"
+ "\tbl sub_800D158\n"
+"_0803977C:\n"
+ "\tldr r0, _080397AC\n"
+ "\tldr r2, [r0]\n"
+ "\tmovs r3, 0x96\n"
+ "\tlsls r3, 2\n"
+ "\tadds r2, r3\n"
+ "\tmovs r0, 0\n"
+ "\tstr r0, [sp]\n"
+ "\tmovs r0, 0x40\n"
+ "\tmovs r1, 0x3C\n"
+ "\tmovs r3, 0\n"
+ "\tbl xxx_call_draw_string\n"
+ "\tbl sub_80397B4\n"
+ "\tmovs r0, 0\n"
+ "\tbl sub_80073E0\n"
+ "\tadd sp, 0x150\n"
+ "\tpop {r3}\n"
+ "\tmov r8, r3\n"
+ "\tpop {r4-r7}\n"
+ "\tpop {r0}\n"
+ "\tbx r0\n"
+ "\t.align 2, 0\n"
+"_080397AC: .4byte gUnknown_203B374\n"
+"_080397B0: .4byte gUnknown_80E7854");
+}
+#endif
+
+// Think structure of clmkFile is like Team Rank Badges except each pic has a diff pallete
+// TODO clean up but it matches so yea
+void sub_80397B4(void)
+{
+ struct OpenedFile *clmkFile;
+ int iVar3;
+ int iVar4;
+ s32 other_arg;
+
+ clmkFile = OpenFileAndGetFileDataPtr(gUnknown_80E785C,&gTitleMenuFileArchive); // clmkpat
+
+ for(iVar3 = 0; iVar3 < 64; iVar3++)
+ {
+ SetBGPaletteBufferColorArray(iVar3 + 176,*(int *)((clmkFile->data) + 4) + iVar3 * 4);
+ }
+
+ iVar4 = 8;
+ other_arg = 0x49;
+ for(iVar3 = 0; iVar3 < 12; iVar3++)
+ {
+ if (sub_80023E4(gUnknown_203B3B8[iVar3]) != 0) {
+ sub_8007E20(0,iVar4,other_arg,0x10,0x10,*(int *)(clmkFile->data) + iVar3 * 0x80,
+ gUnknown_203B388[iVar3]);
+ iVar4 += 16;
+ }
+ }
+ CloseFile(clmkFile);
+}
+
+bool8 IsQuickSave(void)
{
int iVar1;
- bool8 return_var;
+ bool8 isQuicksave;
iVar1 = sub_8011FA8();
- return_var = 0;
+ isQuicksave = FALSE;
if (sub_8095324(1) != 0 || sub_8095324(7) != 0)
{
if (iVar1 == 0xf1207)
- return_var = 1;
+ isQuicksave = TRUE;
}
else if (sub_8011C1C() == 2 && iVar1 == 0xf1207)
- return_var = 1;
- return return_var;
+ isQuicksave = TRUE;
+ return isQuicksave;
}
diff --git a/src/m4a.c b/src/m4a.c
index 2144c8b..3c96c88 100644
--- a/src/m4a.c
+++ b/src/m4a.c
@@ -273,13 +273,13 @@ void MPlayExtender(struct CgbChannel *cgbChans)
CpuFill32(0, cgbChans, sizeof(struct CgbChannel) * 4);
- cgbChans[0].ty = 1;
+ cgbChans[0].type = 1;
cgbChans[0].panMask = 0x11;
- cgbChans[1].ty = 2;
+ cgbChans[1].type = 2;
cgbChans[1].panMask = 0x22;
- cgbChans[2].ty = 3;
+ cgbChans[2].type = 3;
cgbChans[2].panMask = 0x44;
- cgbChans[3].ty = 4;
+ cgbChans[3].type = 4;
cgbChans[3].panMask = 0x88;
soundInfo->ident = ident;
@@ -334,15 +334,15 @@ void SoundInit(struct SoundInfo *soundInfo)
soundInfo->maxChans = 8;
soundInfo->masterVolume = 15;
- soundInfo->plynote = (u32)ply_note;
+ soundInfo->plynote = ply_note;
soundInfo->CgbSound = DummyFunc;
- soundInfo->CgbOscOff = (void (*)(u8))DummyFunc;
- soundInfo->MidiKeyToCgbFreq = (u32 (*)(u8, u8, u8))DummyFunc;
- soundInfo->ExtVolPit = (u32)DummyFunc;
+ soundInfo->CgbOscOff = (CgbOscOffFunc)DummyFunc;
+ soundInfo->MidiKeyToCgbFreq = (MidiKeyToCgbFreqFunc)DummyFunc;
+ soundInfo->ExtVolPit = (ExtVolPitFunc)DummyFunc;
MPlayJumpTableCopy(gMPlayJumpTable);
- soundInfo->MPlayJumpTable = (u32)gMPlayJumpTable;
+ soundInfo->MPlayJumpTable = gMPlayJumpTable;
SampleFreqSet(SOUND_MODE_FREQ_13379);
@@ -409,7 +409,7 @@ void m4aSoundMode(u32 mode)
while (temp != 0)
{
- chan->status = 0;
+ chan->statusFlags = 0;
temp--;
chan++;
}
@@ -455,7 +455,7 @@ void SoundClear(void)
while (i > 0)
{
- ((struct SoundChannel *)chan)->status = 0;
+ ((struct SoundChannel *)chan)->statusFlags = 0;
i--;
chan = (void *)((s32)chan + sizeof(struct SoundChannel));
}
@@ -469,7 +469,7 @@ void SoundClear(void)
while (i <= 4)
{
soundInfo->CgbOscOff(i);
- ((struct CgbChannel *)chan)->sf = 0;
+ ((struct CgbChannel *)chan)->statusFlags = 0;
i++;
chan = (void *)((s32)chan + sizeof(struct CgbChannel));
}
@@ -544,15 +544,19 @@ void MPlayOpen(struct MusicPlayerInfo *mplayInfo, struct MusicPlayerTrack *track
tracks++;
}
- if (soundInfo->func != 0)
+ // append music player and MPlayMain to linked list
+
+ if (soundInfo->MPlayMainHead != 0)
{
- mplayInfo->func = soundInfo->func;
- mplayInfo->intp = soundInfo->intp;
- soundInfo->func = 0;
+ mplayInfo->MPlayMainNext = soundInfo->MPlayMainHead;
+ mplayInfo->musicPlayerNext = soundInfo->musicPlayerHead;
+ // NULL assignment semantically useless, but required for match
+ soundInfo->MPlayMainHead = NULL;
+
}
- soundInfo->intp = (u32)mplayInfo;
- soundInfo->func = (u32)MPlayMain;
+ soundInfo->musicPlayerHead = mplayInfo;
+ soundInfo->MPlayMainHead = MPlayMain;
soundInfo->ident = ID_NUMBER;
mplayInfo->ident = ID_NUMBER;
}
@@ -842,17 +846,17 @@ void CgbModVol(struct CgbChannel *chan)
if (!CgbPan(chan))
{
chan->pan = 0xFF;
- chan->eg = (u32)(chan->rightVolume + chan->leftVolume) / 16;
+ chan->envelopeGoal = (u32)(chan->rightVolume + chan->leftVolume) / 16;
}
else
{
- chan->eg = (u32)(chan->rightVolume + chan->leftVolume) / 16;
- if (chan->eg > 15)
- chan->eg = 15;
+ chan->envelopeGoal = (u32)(chan->rightVolume + chan->leftVolume) / 16;
+ if (chan->envelopeGoal > 15)
+ chan->envelopeGoal = 15;
}
- chan->sg = (chan->eg * chan->su + 15) >> 4;
+ chan->sustainGoal = (chan->envelopeGoal * chan->sustain + 15) >> 4;
chan->pan &= chan->panMask;
}
@@ -879,7 +883,7 @@ void CgbSound(void)
for (ch = 1, channels = soundInfo->cgbChans; ch <= 4; ch++, channels++)
{
- if (!(channels->sf & 0xc7))
+ if (!(channels->statusFlags & 0xc7))
continue;
switch (ch)
@@ -917,53 +921,53 @@ void CgbSound(void)
prevC15 = soundInfo->c15;
evAdd = *nrx2ptr;
- if (channels->sf & 0x80)
+ if (channels->statusFlags & 0x80)
{
- if (!(channels->sf & 0x40))
+ if (!(channels->statusFlags & 0x40))
{
- channels->sf = 3;
- channels->mo = 3;
+ channels->statusFlags = 3;
+ channels->modify = 3;
CgbModVol(channels);
switch (ch)
{
case 1:
- *nrx0ptr = channels->sw;
+ *nrx0ptr = channels->sweep;
// fallthrough
case 2:
- *nrx1ptr = ((u32)channels->wp << 6) + channels->le;
+ *nrx1ptr = ((u32)channels->wavePointer << 6) + channels->length;
goto loc_82E0E30;
case 3:
- if ((u32)channels->wp != channels->cp)
+ if (channels->wavePointer != channels->currentPointer)
{
*nrx0ptr = 0x40;
- REG_WAVE_RAM0 = channels->wp[0];
- REG_WAVE_RAM1 = channels->wp[1];
- REG_WAVE_RAM2 = channels->wp[2];
- REG_WAVE_RAM3 = channels->wp[3];
- channels->cp = (u32)channels->wp;
+ REG_WAVE_RAM0 = channels->wavePointer[0];
+ REG_WAVE_RAM1 = channels->wavePointer[1];
+ REG_WAVE_RAM2 = channels->wavePointer[2];
+ REG_WAVE_RAM3 = channels->wavePointer[3];
+ channels->currentPointer = channels->wavePointer;
}
*nrx0ptr = 0;
- *nrx1ptr = channels->le;
- if (channels->le)
+ *nrx1ptr = channels->length;
+ if (channels->length)
channels->n4 = -64;
else
channels->n4 = -128;
break;
default:
- *nrx1ptr = channels->le;
- *nrx3ptr = (u32)channels->wp << 3;
+ *nrx1ptr = channels->length;
+ *nrx3ptr = (u32)channels->wavePointer << 3;
loc_82E0E30:
- evAdd = channels->at + 8;
- if (channels->le)
+ evAdd = channels->attack + 8;
+ if (channels->length)
channels->n4 = 64;
else
channels->n4 = 0;
break;
}
- channels->ec = channels->at;
- if ((s8)(channels->at & mask))
+ channels->envelopeCounter = channels->attack;
+ if ((s8)(channels->attack & mask))
{
- channels->ev = 0;
+ channels->envelopeVolume = 0;
goto EC_MINUS;
}
else
@@ -976,28 +980,28 @@ void CgbSound(void)
goto loc_82E0E82;
}
}
- else if (channels->sf & 0x04)
+ else if (channels->statusFlags & 0x04)
{
channels->echoLength--;
if ((s8)(channels->echoLength & mask) <= 0)
{
loc_82E0E82:
CgbOscOff(ch);
- channels->sf = 0;
+ channels->statusFlags = 0;
goto LAST_LABEL;
}
goto loc_82E0FD6;
}
- else if ((channels->sf & 0x40) && (channels->sf & 0x03))
+ else if ((channels->statusFlags & 0x40) && (channels->statusFlags & 0x03))
{
- channels->sf &= 0xfc;
- channels->ec = channels->re;
- if ((s8)(channels->re & mask))
+ channels->statusFlags &= 0xfc;
+ channels->envelopeCounter = channels->release;
+ if ((s8)(channels->release & mask))
{
- channels->mo |= 1;
+ channels->modify |= 1;
if (ch != 3)
{
- evAdd = channels->re;
+ evAdd = channels->release;
}
goto EC_MINUS;
}
@@ -1009,24 +1013,24 @@ void CgbSound(void)
else
{
loc_82E0ED0:
- if (channels->ec == 0)
+ if (channels->envelopeCounter == 0)
{
if (ch == 3)
{
- channels->mo |= 1;
+ channels->modify |= 1;
}
CgbModVol(channels);
- if ((channels->sf & 0x3) == 0)
+ if ((channels->statusFlags & 0x3) == 0)
{
- channels->ev--;
- if ((s8)(channels->ev & mask) <= 0)
+ channels->envelopeVolume--;
+ if ((s8)(channels->envelopeVolume & mask) <= 0)
{
loc_82E0F02:
- channels->ev = ((channels->eg * channels->echoVolume) + 0xFF) >> 8;
- if (channels->ev)
+ channels->envelopeVolume = ((channels->envelopeGoal * channels->echoVolume) + 0xFF) >> 8;
+ if (channels->envelopeVolume)
{
- channels->sf |= 0x4;
- channels->mo |= 1;
+ channels->statusFlags |= 0x4;
+ channels->modify |= 1;
if (ch != 3)
{
evAdd = 8;
@@ -1040,34 +1044,34 @@ void CgbSound(void)
}
else
{
- channels->ec = channels->re;
+ channels->envelopeCounter = channels->release;
}
}
- else if ((channels->sf & 0x3) == 1)
+ else if ((channels->statusFlags & 0x3) == 1)
{
loc_82E0F3A:
- channels->ev = channels->sg;
- channels->ec = 7;
+ channels->envelopeVolume = channels->sustainGoal;
+ channels->envelopeCounter = 7;
}
- else if ((channels->sf & 0x3) == 2)
+ else if ((channels->statusFlags & 0x3) == 2)
{
int ev, sg;
- channels->ev--;
- ev = (s8)(channels->ev & mask);
- sg = (s8)(channels->sg);
+ channels->envelopeVolume--;
+ ev = (s8)(channels->envelopeVolume & mask);
+ sg = (s8)(channels->sustainGoal);
if (ev <= sg)
{
loc_82E0F5A:
- if (channels->su == 0)
+ if (channels->sustain == 0)
{
- channels->sf &= 0xfc;
+ channels->statusFlags &= 0xfc;
goto loc_82E0F02;
}
else
{
- channels->sf--;
- channels->mo |= 1;
+ channels->statusFlags--;
+ channels->modify |= 1;
if (ch != 3)
{
evAdd = 8;
@@ -1077,24 +1081,24 @@ void CgbSound(void)
}
else
{
- channels->ec = channels->de;
+ channels->envelopeCounter = channels->decay;
}
}
else
{
- channels->ev++;
- if ((u8)(channels->ev & mask) >= channels->eg)
+ channels->envelopeVolume++;
+ if ((u8)(channels->envelopeVolume & mask) >= channels->envelopeGoal)
{
loc_82E0F96:
- channels->sf--;
- channels->ec = channels->de;
- if ((u8)(channels->ec & mask))
+ channels->statusFlags--;
+ channels->envelopeCounter = channels->decay;
+ if ((u8)(channels->envelopeCounter & mask))
{
- channels->mo |= 1;
- channels->ev = channels->eg;
+ channels->modify |= 1;
+ channels->envelopeVolume = channels->envelopeGoal;
if (ch != 3)
{
- evAdd = channels->de;
+ evAdd = channels->decay;
}
}
else
@@ -1104,14 +1108,14 @@ void CgbSound(void)
}
else
{
- channels->ec = channels->at;
+ channels->envelopeCounter = channels->attack;
}
}
}
}
EC_MINUS:
- channels->ec--;
+ channels->envelopeCounter--;
if (prevC15 == 0)
{
prevC15--;
@@ -1119,39 +1123,39 @@ void CgbSound(void)
}
loc_82E0FD6:
- if (channels->mo & 0x2)
+ if (channels->modify & 0x2)
{
- if (ch < 4 && (channels->ty & 0x08))
+ if (ch < 4 && (channels->type & 0x08))
{
int biasH = REG_SOUNDBIAS_H;
if (biasH < 64)
{
- channels->fr = (channels->fr + 2) & 0x7fc;
+ channels->frequency = (channels->frequency + 2) & 0x7fc;
}
else if (biasH < 128)
{
- channels->fr = (channels->fr + 1) & 0x7fe;
+ channels->frequency = (channels->frequency + 1) & 0x7fe;
}
}
if (ch != 4)
{
- *nrx3ptr = channels->fr;
+ *nrx3ptr = channels->frequency;
}
else
{
- *nrx3ptr = (*nrx3ptr & 0x08) | channels->fr;
+ *nrx3ptr = (*nrx3ptr & 0x08) | channels->frequency;
}
- channels->n4 = (channels->n4 & 0xC0) + (*((u8*)(&channels->fr) + 1));
+ channels->n4 = (channels->n4 & 0xC0) + (*((u8*)(&channels->frequency) + 1));
*nrx4ptr = (s8)(channels->n4 & mask);
}
- if (channels->mo & 1)
+ if (channels->modify & 1)
{
REG_NR51 = (REG_NR51 & ~channels->panMask) | channels->pan;
if (ch == 3)
{
- *nrx2ptr = gCgb3Vol[channels->ev];
+ *nrx2ptr = gCgb3Vol[channels->envelopeVolume];
if (channels->n4 & 0x80)
{
*nrx0ptr = 0x80;
@@ -1162,7 +1166,7 @@ void CgbSound(void)
else
{
evAdd &= 0xf;
- *nrx2ptr = (channels->ev << 4) + evAdd;
+ *nrx2ptr = (channels->envelopeVolume << 4) + evAdd;
*nrx4ptr = channels->n4 | 0x80;
if (ch == 1 && !(*nrx0ptr & 0x08))
{
@@ -1172,7 +1176,7 @@ void CgbSound(void)
}
LAST_LABEL:
- channels->mo = 0;
+ channels->modify = 0;
}
}
@@ -1532,13 +1536,13 @@ void ply_xrele(struct MusicPlayerInfo *mplayInfo, struct MusicPlayerTrack *track
void ply_xiecv(struct MusicPlayerInfo *mplayInfo, struct MusicPlayerTrack *track)
{
- track->echoVolume = *track->cmdPtr;
+ track->pseudoEchoVolume = *track->cmdPtr;
track->cmdPtr++;
}
void ply_xiecl(struct MusicPlayerInfo *mplayInfo, struct MusicPlayerTrack *track)
{
- track->echoLength = *track->cmdPtr;
+ track->pseudoEchoLength = *track->cmdPtr;
track->cmdPtr++;
}
diff --git a/src/main.c b/src/main.c
index da984c6..ee657d6 100644
--- a/src/main.c
+++ b/src/main.c
@@ -53,7 +53,7 @@ extern void Hang(void);
extern void VBlank_CB(void);
extern void nullsub_17(void);
-extern void sub_800BD08(void); // music initializer
+extern void InitMusic(void); // music initializer
extern void sub_800D6AC(void);
extern void sub_800D7D0(void);
@@ -135,9 +135,9 @@ void sub_800B540(void)
}
nullsub_17();
- sub_800BD08(); // initialize music and stop DMAs
+ InitMusic(); // initialize music and stop DMAs
- while(REG_VCOUNT <= 159){}
+ while(REG_VCOUNT < 160){}
REG_IE ^= INTR_FLAG_TIMER3 | INTR_FLAG_VBLANK | INTR_FLAG_VCOUNT; // 0x45
@@ -156,7 +156,7 @@ void sub_800B540(void)
gInterruptsEnabled = 1;
EnableInterrupts();
- while(REG_VCOUNT <= 159){}
+ while(REG_VCOUNT < 160){}
}
bool8 EnableInterrupts(void)
diff --git a/src/main_menu.c b/src/main_menu.c
index e590334..62dc4d9 100644
--- a/src/main_menu.c
+++ b/src/main_menu.c
@@ -2,6 +2,8 @@
#include "debug_menu.h"
#include "main_menu.h"
#include "adventure_log.h"
+#include "input.h"
+#include "menu.h"
// NOTE: 0x13 and 0x14
// Communication Screen?
@@ -35,9 +37,9 @@ extern void CreateWonderMailMenu(void);
extern void CreateLoadScreen(u32);
extern s32 sub_8035DB4(u32);
extern void CreateRescuePasswordMenu(u32);
-extern void sub_803850C(u32);
+extern void CreateSaveMenu(u32);
extern s32 UpdateMainMenu(void);
-extern s32 sub_803941C(void);
+extern s32 UpdateLoadScreenMenu(void);
extern s32 UpdateTradeItemsMenu(void);
extern s32 UpdateFriendRescueMenu(void);
extern s32 UpdateWonderMailMenu(void);
@@ -45,7 +47,7 @@ extern s32 UpdateDualSlotMenu(void);
extern s32 UpdateWirelessCommsMenu(void);
extern s32 UpdateRescuePasswordMenu(void);
extern s32 sub_80383D4(void);
-extern s32 sub_8038630(void);
+extern s32 UpdateSaveMenu(void);
extern void CleanMainMenu(void);
extern void CleanLoadScreen(void);
@@ -57,7 +59,49 @@ extern void CleanDualSlotMenu(void);
extern void CleanWirelessCommsMenu(void);
extern void CleanRescuePasswordMenu(void);
extern void sub_80383A8(void);
-extern void sub_8038604(void);
+extern void CleanSaveMenu(void);
+
+struct unkSubStruct
+{
+ u32 unk0;
+ u32 unk4;
+};
+
+struct unkStruct_203B34C
+{
+ // size: 0x1A8
+ u32 unk0;
+ u32 unk4;
+ struct unkSubStruct *unk8; // Array of menu choices??
+ u8 fillC[0x30 - 0xC];
+ s16 unk30;
+ u8 fill32[0x144 - 0x32];
+ struct unkData unk144[4];
+ /* 0x1A4 */ u32 currMenuChoice;
+};
+
+extern struct unkStruct_203B34C *gUnknown_203B34C;
+
+extern struct MainMenu *gMainMenu;
+extern struct unkData gUnknown_80E59A8;
+extern struct unkData gUnknown_80E59C8;
+extern void sub_8006518(struct unkData *);
+extern void sub_800641C(struct unkData *, u32, u32);
+
+extern bool8 SetMainMenuText();
+extern void SetMainMenuItems();
+
+struct unkStruct_Menu
+{
+ // size 0x50;
+ u8 fil0[0x4C];
+ u8 unk4C;
+ u8 fill4D[0x50 - 0x4D];
+};
+
+extern void sub_8012D60(struct unkStruct_Menu *, const struct MenuItem *, u32, u32, u32, u32);
+extern void sub_8012E04(struct unkStruct_Menu *, const struct MenuItem *, u32, u32, u32, u32);
+
void InitMainMenu(void)
{
@@ -65,7 +109,7 @@ void InitMainMenu(void)
gMainMenu = MemoryAlloc(sizeof(struct MainMenu),8);
MemoryFill8((u8 *)gMainMenu, 0, sizeof(struct MainMenu));
}
- gMainMenu->currMenu = 0xffdc;
+ gMainMenu->currMenu = MENU_NO_SCREEN_CHANGE;
gMainMenu->nextMenu = MENU_MAIN_SCREEN;
gMainMenu->lastMenu = MENU_MAIN_SCREEN;
gMainMenu->unk38 = -1;
@@ -97,7 +141,7 @@ void SetUpMenu(void)
case MENU_AWAITING_RESCUE:
case MENU_CONTINUE:
case MENU_DELETE_SAVE_PROMPT:
- case 9:
+ case MENU_DELETE_SAVE_CONFIRM:
CreateLoadScreen(gMainMenu->nextMenu);
break;
case MENU_TRADE_ITEMS:
@@ -131,8 +175,8 @@ void SetUpMenu(void)
case 0x2b:
case 0x2c:
case 0x2d:
- case 0x2e:
- sub_803850C(gMainMenu->nextMenu);
+ case MENU_DELETE_SAVE:
+ CreateSaveMenu(gMainMenu->nextMenu);
break;
case MENU_DEBUG:
CreateDebugMenu();
@@ -155,8 +199,8 @@ s32 UpdateMenu(void)
case MENU_AWAITING_RESCUE:
case MENU_CONTINUE:
case MENU_DELETE_SAVE_PROMPT:
- case 9:
- nextMenu = sub_803941C();
+ case MENU_DELETE_SAVE_CONFIRM:
+ nextMenu = UpdateLoadScreenMenu();
break;
case MENU_TRADE_ITEMS:
iVar1 = UpdateTradeItemsMenu();
@@ -212,8 +256,8 @@ s32 UpdateMenu(void)
case 0x2b:
case 0x2c:
case 0x2d:
- case 0x2e:
- nextMenu = sub_8038630();
+ case MENU_DELETE_SAVE:
+ nextMenu = UpdateSaveMenu();
break;
case MENU_DEBUG:
nextMenu = UpdateDebugMenu();
@@ -235,7 +279,7 @@ void CleanUpMenu(void)
case MENU_AWAITING_RESCUE:
case MENU_CONTINUE:
case MENU_DELETE_SAVE_PROMPT:
- case 9:
+ case MENU_DELETE_SAVE_CONFIRM:
CleanLoadScreen();
break;
case MENU_TRADE_ITEMS:
@@ -276,8 +320,8 @@ void CleanUpMenu(void)
case 0x2b:
case 0x2c:
case 0x2d:
- case 0x2e:
- sub_8038604();
+ case MENU_DELETE_SAVE:
+ CleanSaveMenu();
break;
case MENU_DEBUG:
DeleteDebugMenu();
@@ -305,3 +349,186 @@ void sub_8035C1C(void)
gMainMenu->sub.unk2C = 1;
gMainMenu->sub.unk2D = 0;
}
+
+void
+SetMenuItems(struct unkStruct_Menu *param_1, struct unkData *unkData, int param_3, const struct unkData *param_4, const struct MenuItem *param_5, char param_6 ,u32 param_7, u32 unused_8)
+{
+ unkData[param_3] = *param_4;
+ ResetUnusedInputStruct();
+ sub_800641C(unkData,1,1);
+ if (param_6 != '\0') {
+ sub_8012D60(&param_1[param_3],param_5,0,0,param_7,param_3);
+ }
+ else {
+ sub_8012E04(&param_1[param_3],param_5,0,0,0,param_3);
+ }
+ param_1[param_3].unk4C = 1;
+}
+
+void sub_8035CC0(struct unkData *dataArray, u32 index)
+{
+ sub_8006518(dataArray);
+ dataArray[index] = gUnknown_80E59A8;
+ ResetUnusedInputStruct();
+ sub_800641C(dataArray, 1, 1);
+}
+
+NAKED
+void sub_8035CF4(void * Menu, u32 index, u8 r2)
+{
+ asm_unified("\tpush {lr}\n"
+ "\tadds r3, r0, 0\n"
+ "\tlsls r0, r1, 2\n"
+ "\tadds r0, r1\n"
+ "\tlsls r0, 4\n"
+ "\tadds r0, r3\n"
+ "\tadds r1, r0, 0\n"
+ "\tadds r1, 0x4C\n"
+ "\tstrb r2, [r1]\n"
+ "\tadds r2, r0, 0\n"
+ "\tadds r2, 0x4D\n"
+ "\tmovs r1, 0x1\n"
+ "\tstrb r1, [r2]\n"
+ "\tsubs r1, 0x2\n"
+ "\tstr r1, [r0, 0x48]\n"
+ "\tbl sub_8012EBC\n"
+ "\tpop {r0}\n"
+ "\tbx r0");
+}
+
+void sub_8035D1C(void)
+{
+ gMainMenu->unk38 = -1;
+}
+
+void sub_8035D30(s32 r0)
+{
+ gMainMenu->unk38 = r0;
+}
+
+s16 sub_8035D3C(void)
+{
+ return gMainMenu->unk38;
+}
+
+struct MainMenu *GetMainMenu(void)
+{
+ return gMainMenu;
+}
+
+void sub_8035D58(void)
+{
+ gMainMenu->unk3C = -1;
+}
+
+void sub_8035D68(s32 r0)
+{
+ gMainMenu->unk3C = r0;
+}
+
+s32 sub_8035D74(void)
+{
+ return gMainMenu->unk3C;
+}
+
+
+// Unused
+NAKED
+void sub_8035D80(void *r0)
+{
+ asm_unified(
+ "\tldr r1, _08035D90\n"
+ "\tldr r2, [r1]\n"
+ "\tldr r1, [r0, 0x4]\n"
+ "\tldr r0, [r0]\n"
+ "\tstr r0, [r2, 0x30]\n"
+ "\tstr r1, [r2, 0x34]\n"
+ "\tbx lr\n"
+ "\t.align 2, 0\n"
+"_08035D90: .4byte gMainMenu");
+}
+
+u8 *sub_8035D94(void)
+{
+ return &gMainMenu->unk30;
+}
+
+
+void sub_8035DA0(void)
+{
+ gMainMenu->unk30 = 0;
+ gMainMenu->unk34 = 0;
+}
+
+s32 sub_8035DB4(u32 currMenu)
+{
+ s32 returnVar = 8;
+ switch(currMenu)
+ {
+ case MENU_COMMUNICATION_1:
+ returnVar = 0;
+ break;
+ case MENU_COMMUNICATION_2:
+ returnVar = 1;
+ break;
+ case 0x15:
+ returnVar = 2;
+ break;
+ case 0x16:
+ returnVar = 3;
+ break;
+ case 0x17:
+ returnVar = 4;
+ break;
+ case 0x18:
+ returnVar = 5;
+ break;
+ case 0x19:
+ returnVar = 6;
+ break;
+ case 0x1a:
+ returnVar = 7;
+ }
+ return returnVar;
+}
+
+void DrawMainMenu(void)
+{
+ s32 iVar3;
+
+ if(gUnknown_203B34C == NULL)
+ {
+ gUnknown_203B34C = MemoryAlloc(sizeof(struct unkStruct_203B34C), 8);
+ MemoryFill8((u8 *)gUnknown_203B34C, 0, sizeof(struct unkStruct_203B34C));
+ }
+
+ for(iVar3 = 0; iVar3 < 4; iVar3++)
+ {
+ gUnknown_203B34C->unk144[iVar3] = gUnknown_80E59C8;
+ }
+
+ ResetUnusedInputStruct();
+ sub_800641C(gUnknown_203B34C->unk144, 1, 1);
+ SetMainMenuItems();
+ gUnknown_203B34C->currMenuChoice = -1;
+
+ if(SetMainMenuText())
+ {
+ sub_8035CF4(&gUnknown_203B34C->unk4,2,0);
+ }
+
+ sub_8035CF4(&gUnknown_203B34C->unk4,0,1);
+ gUnknown_203B34C->unk0 = 1;
+}
+
+void CleanMainMenu(void)
+{
+ ResetUnusedInputStruct();
+ sub_800641C(NULL, 1, 1);
+ if(gUnknown_203B34C != NULL)
+ {
+ MemoryFree(gUnknown_203B34C);
+ gUnknown_203B34C = NULL;
+ }
+}
+
diff --git a/src/main_menu_1.c b/src/main_menu_1.c
index 6715af4..1879db4 100644
--- a/src/main_menu_1.c
+++ b/src/main_menu_1.c
@@ -1,23 +1,18 @@
#include "global.h"
#include "main_menu.h"
+#include "menu.h"
struct unkData
{
u8 unk0[24];
};
-struct unkSubStruct
-{
- u32 unk0;
- u32 unk4;
-};
-
struct unkStruct_203B34C
{
// size: 0x1A8
u32 unk0;
u32 unk4;
- struct unkSubStruct *unk8; // Array of menu choices??
+ struct MenuItem *unk8; // Array of menu choices??
u8 fillC[0x30 - 0xC];
s16 unk30;
u8 fill32[0x144 - 0x32];
@@ -26,54 +21,54 @@ struct unkStruct_203B34C
};
extern struct unkStruct_203B34C *gUnknown_203B34C;
+extern u32 gUnknown_203B350;
extern u32 gUnknown_80E59E0;
-extern u32 gUnknown_203B350;
-extern u32 gUnknown_80E59F8;
extern u32 gUnknown_80E5A78;
extern u32 gUnknown_80E5B34;
-extern u32 gUnknown_80E5A90;
-extern u32 gUnknown_80E5A60;
-extern u32 gUnknown_80E5AFC;
-extern u32 gUnknown_80E5B8C;
-extern u32 gUnknown_80E5B4C;
extern u32 gUnknown_80E5BC4;
-extern u32 gUnknown_80E5BDC;
-extern u32 gUnknown_80E5C18;
-
extern u32 gUnknown_80E5CB4;
-extern u32 gUnknown_80E5D48;
-extern u32 gUnknown_80E5CCC;
-extern u32 gUnknown_80E5F1C;
-extern u32 gUnknown_80E5DA0;
-extern u32 gUnknown_80E5DF0;
-extern u32 gUnknown_80E5D0C;
-extern u32 gUnknown_80E6030;
-extern u32 gUnknown_80E5FCC;
-extern u32 gUnknown_80E5F80;
-extern u32 gUnknown_80E5EBC;
-extern u32 gUnknown_80E5E5C;
+extern u32 gUnknown_80E5A60;
+
+extern const struct MenuItem gUnknown_80E59F8[];
+extern const struct MenuItem gUnknown_80E5A90[];
+extern const struct MenuItem gUnknown_80E5AFC[];
+extern const struct MenuItem gUnknown_80E5B4C[];
+extern const struct MenuItem gUnknown_80E5B8C[];
+extern const struct MenuItem gUnknown_80E5BDC[];
+extern const struct MenuItem gUnknown_80E5C18[];
+extern const struct MenuItem gUnknown_80E5CCC[];
+extern const struct MenuItem gUnknown_80E5D0C[];
+extern const struct MenuItem gUnknown_80E5D48[];
+extern const struct MenuItem gUnknown_80E5DA0[];
+extern const struct MenuItem gUnknown_80E5DF0[];
+extern const struct MenuItem gUnknown_80E5E5C[];
+extern const struct MenuItem gUnknown_80E5EBC[];
+extern const struct MenuItem gUnknown_80E5F1C[];
+extern const struct MenuItem gUnknown_80E5F80[];
+extern const struct MenuItem gUnknown_80E5FCC[];
+extern const struct MenuItem gUnknown_80E6030[];
extern u8 sub_803D0D8();
extern s32 sub_8011C34();
extern s32 sub_8095324(u32);
-extern void SetMenuItems(u32 *, struct unkData *, u32, u32 *, u32 *, u32, u32, u32);
+extern void SetMenuItems(u32 *, struct unkData *, u32, u32 *, const struct MenuItem *, u32, u32, u32);
void SetMainMenuItems(void);
-extern u8 SetMainMenuText();
+extern bool8 SetMainMenuText();
extern void sub_8035CF4(u32 *, u32, u32);
extern void sub_8035CC0(struct unkData *, u32);
-u8 SetMainMenuText(void)
+bool8 SetMainMenuText(void)
{
u32 menuChoice;
- struct unkSubStruct *preload;
+ struct MenuItem *preload;
// Have to load the pointer before the index
preload = gUnknown_203B34C->unk8;
- menuChoice = preload[gUnknown_203B34C->unk30].unk4; // chosen menu action?
+ menuChoice = preload[gUnknown_203B34C->unk30].menuAction; // chosen menu action?
if (gUnknown_203B34C->currMenuChoice == menuChoice) {
- return 0;
+ return FALSE;
}
gUnknown_203B34C->currMenuChoice = menuChoice;
@@ -82,55 +77,55 @@ u8 SetMainMenuText(void)
switch(menuChoice) {
case MENU_WIRELESS_COMMS:
// Using wireless communications, you can go on an adventure to unknown worlds.
- SetMenuItems(&gUnknown_203B34C->unk4,gUnknown_203B34C->unk144,2,&gUnknown_80E5CB4,&gUnknown_80E6030,0,0,0);
+ SetMenuItems(&gUnknown_203B34C->unk4,gUnknown_203B34C->unk144,2,&gUnknown_80E5CB4,gUnknown_80E6030,0,0,0);
break;
case MENU_WONDER_MAIL:
// Using passwords, you can receive Wonder Mail
- SetMenuItems(&gUnknown_203B34C->unk4,gUnknown_203B34C->unk144,2,&gUnknown_80E5CB4,&gUnknown_80E5F80,0,0,0);
+ SetMenuItems(&gUnknown_203B34C->unk4,gUnknown_203B34C->unk144,2,&gUnknown_80E5CB4,gUnknown_80E5F80,0,0,0);
break;
case MENU_AWAITING_RESCUE:
// You are awaiting resuce by a friend
// You can give up waiting for rescue
- SetMenuItems(&gUnknown_203B34C->unk4,gUnknown_203B34C->unk144,2,&gUnknown_80E5CB4,&gUnknown_80E5F1C,0,0,0);
+ SetMenuItems(&gUnknown_203B34C->unk4,gUnknown_203B34C->unk144,2,&gUnknown_80E5CB4,gUnknown_80E5F1C,0,0,0);
break;
case MENU_NEW_GAME:
// Start an entirely new adventure
- SetMenuItems(&gUnknown_203B34C->unk4,gUnknown_203B34C->unk144,2,&gUnknown_80E5CB4,&gUnknown_80E5CCC,0,0,0);
+ SetMenuItems(&gUnknown_203B34C->unk4,gUnknown_203B34C->unk144,2,&gUnknown_80E5CB4,gUnknown_80E5CCC,0,0,0);
break;
case MENU_CONTINUE:
// Resume your adventure from where you last saved
- SetMenuItems(&gUnknown_203B34C->unk4,gUnknown_203B34C->unk144,2,&gUnknown_80E5CB4,&gUnknown_80E5DA0,0,0,0);
+ SetMenuItems(&gUnknown_203B34C->unk4,gUnknown_203B34C->unk144,2,&gUnknown_80E5CB4,gUnknown_80E5DA0,0,0,0);
break;
case MENU_DELETE_SAVE_PROMPT:
// This will delete your saved game data.
// Beware! This will delete it forever
- SetMenuItems(&gUnknown_203B34C->unk4,gUnknown_203B34C->unk144,2,&gUnknown_80E5CB4,&gUnknown_80E5DF0,0,0,0);
+ SetMenuItems(&gUnknown_203B34C->unk4,gUnknown_203B34C->unk144,2,&gUnknown_80E5CB4,gUnknown_80E5DF0,0,0,0);
break;
case MENU_ADVENTURE_LOG:
// Check your career as an adventurer
- SetMenuItems(&gUnknown_203B34C->unk4,gUnknown_203B34C->unk144,2,&gUnknown_80E5CB4,&gUnknown_80E5D0C,0,0,0);
+ SetMenuItems(&gUnknown_203B34C->unk4,gUnknown_203B34C->unk144,2,&gUnknown_80E5CB4,gUnknown_80E5D0C,0,0,0);
break;
case MENU_FRIEND_RESCUE:
// Using a Game Link cable or passwords, friends may rescue each other
- SetMenuItems(&gUnknown_203B34C->unk4,gUnknown_203B34C->unk144,2,&gUnknown_80E5CB4,&gUnknown_80E5E5C,0,0,0);
+ SetMenuItems(&gUnknown_203B34C->unk4,gUnknown_203B34C->unk144,2,&gUnknown_80E5CB4,gUnknown_80E5E5C,0,0,0);
break;
case MENU_TRADE_ITEMS:
// Using a Game Link cable you can trade stored items with a friend
- SetMenuItems(&gUnknown_203B34C->unk4,gUnknown_203B34C->unk144,2,&gUnknown_80E5CB4,&gUnknown_80E5EBC,0,0,0);
+ SetMenuItems(&gUnknown_203B34C->unk4,gUnknown_203B34C->unk144,2,&gUnknown_80E5CB4,gUnknown_80E5EBC,0,0,0);
break;
case MENU_DUAL_SLOT:
// Using Dual Slot function, you can receive teams from your friends
- SetMenuItems(&gUnknown_203B34C->unk4,gUnknown_203B34C->unk144,2,&gUnknown_80E5CB4,&gUnknown_80E5FCC,0,0,0);
+ SetMenuItems(&gUnknown_203B34C->unk4,gUnknown_203B34C->unk144,2,&gUnknown_80E5CB4,gUnknown_80E5FCC,0,0,0);
break;
case MENU_DEBUG:
// This is the Debug Mode.
// It won't be in the release version
- SetMenuItems(&gUnknown_203B34C->unk4,gUnknown_203B34C->unk144,2,&gUnknown_80E5CB4,&gUnknown_80E5D48,0,0,0);
+ SetMenuItems(&gUnknown_203B34C->unk4,gUnknown_203B34C->unk144,2,&gUnknown_80E5CB4,gUnknown_80E5D48,0,0,0);
break;
default:
break;
}
- return 1;
+ return TRUE;
}
void sub_803623C(void)
@@ -138,7 +133,7 @@ void sub_803623C(void)
sub_8035CC0(gUnknown_203B34C->unk144,1);
SetMainMenuItems();
gUnknown_203B34C->currMenuChoice = -1;
- if (SetMainMenuText() != 0) {
+ if (SetMainMenuText()) {
sub_8035CF4(&gUnknown_203B34C->unk4,2,0);
}
sub_8035CF4(&gUnknown_203B34C->unk4,0,1);
@@ -156,7 +151,7 @@ void SetMainMenuItems(void)
// Friend Rescue
// Trade Items
// Wonder Mail
- SetMenuItems(&gUnknown_203B34C->unk4,gUnknown_203B34C->unk144,0,&gUnknown_80E5A78,&gUnknown_80E5C18,1,gUnknown_203B350,1);
+ SetMenuItems(&gUnknown_203B34C->unk4,gUnknown_203B34C->unk144,0,&gUnknown_80E5A78,gUnknown_80E5C18,1,gUnknown_203B350,1);
}
else {
// Revive Team
@@ -164,7 +159,7 @@ void SetMainMenuItems(void)
// Adventure Log
// Friend Rescue
// Trade Items
- SetMenuItems(&gUnknown_203B34C->unk4,gUnknown_203B34C->unk144,0,&gUnknown_80E5BC4,&gUnknown_80E5BDC,1,gUnknown_203B350,1);
+ SetMenuItems(&gUnknown_203B34C->unk4,gUnknown_203B34C->unk144,0,&gUnknown_80E5BC4,gUnknown_80E5BDC,1,gUnknown_203B350,1);
}
}
else {
@@ -175,7 +170,7 @@ void SetMainMenuItems(void)
// Friend Rescue
// Trade Items
// Wonder Mail
- SetMenuItems(&gUnknown_203B34C->unk4,gUnknown_203B34C->unk144,0,&gUnknown_80E5A78,&gUnknown_80E5AFC,1,gUnknown_203B350,1);
+ SetMenuItems(&gUnknown_203B34C->unk4,gUnknown_203B34C->unk144,0,&gUnknown_80E5A78,gUnknown_80E5AFC,1,gUnknown_203B350,1);
}
else {
// Continue
@@ -183,7 +178,7 @@ void SetMainMenuItems(void)
// Adventure Log
// Friend Rescue
// Trade Items
- SetMenuItems(&gUnknown_203B34C->unk4,gUnknown_203B34C->unk144,0,&gUnknown_80E5A60,&gUnknown_80E5A90,1,gUnknown_203B350,1);
+ SetMenuItems(&gUnknown_203B34C->unk4,gUnknown_203B34C->unk144,0,&gUnknown_80E5A60,gUnknown_80E5A90,1,gUnknown_203B350,1);
}
}
}
@@ -195,7 +190,7 @@ void SetMainMenuItems(void)
// Friend Rescue
// Trade Items
// Wonder Mail
- SetMenuItems(&gUnknown_203B34C->unk4,gUnknown_203B34C->unk144,0,&gUnknown_80E5A78,&gUnknown_80E5B8C,1,gUnknown_203B350,1);
+ SetMenuItems(&gUnknown_203B34C->unk4,gUnknown_203B34C->unk144,0,&gUnknown_80E5A78,gUnknown_80E5B8C,1,gUnknown_203B350,1);
}
else {
// Awaiting Rescue
@@ -203,7 +198,7 @@ void SetMainMenuItems(void)
// Adventure Log
// Friend Rescue
// Trade Items
- SetMenuItems(&gUnknown_203B34C->unk4,gUnknown_203B34C->unk144,0,&gUnknown_80E5B34,&gUnknown_80E5B4C,1,gUnknown_203B350,1);
+ SetMenuItems(&gUnknown_203B34C->unk4,gUnknown_203B34C->unk144,0,&gUnknown_80E5B34,gUnknown_80E5B4C,1,gUnknown_203B350,1);
}
}
}
@@ -211,7 +206,7 @@ void SetMainMenuItems(void)
{
// New Game
// Adventure Log
- SetMenuItems(&gUnknown_203B34C->unk4,gUnknown_203B34C->unk144,0,&gUnknown_80E59E0,&gUnknown_80E59F8,1,gUnknown_203B350,1);
+ SetMenuItems(&gUnknown_203B34C->unk4,gUnknown_203B34C->unk144,0,&gUnknown_80E59E0,gUnknown_80E59F8,1,gUnknown_203B350,1);
}
}
diff --git a/src/main_menu_mid.c b/src/main_menu_mid.c
deleted file mode 100644
index e6e0868..0000000
--- a/src/main_menu_mid.c
+++ /dev/null
@@ -1,208 +0,0 @@
-#include "global.h"
-#include "main_menu.h"
-#include "input.h"
-
-struct unkData
-{
- u8 unk0[24];
-};
-
-struct unkSubStruct
-{
- u32 unk0;
- u32 unk4;
-};
-
-struct unkStruct_203B34C
-{
- // size: 0x1A8
- u32 unk0;
- u32 unk4;
- struct unkSubStruct *unk8; // Array of menu choices??
- u8 fillC[0x30 - 0xC];
- s16 unk30;
- u8 fill32[0x144 - 0x32];
- struct unkData unk144[4];
- /* 0x1A4 */ u32 currMenuChoice;
-};
-
-extern struct unkStruct_203B34C *gUnknown_203B34C;
-
-
-
-extern struct MainMenu *gMainMenu;
-extern struct unkData gUnknown_80E59A8;
-extern struct unkData gUnknown_80E59C8;
-extern void sub_8006518(struct unkData *);
-extern void sub_800641C(struct unkData *, u32, u32);
-extern void *MemoryAlloc(u32, u32);
-extern void MemoryFill8(u8*, u8, s32);
-extern void MemoryFree(void *);
-
-extern u8 SetMainMenuText();
-extern void SetMainMenuItems();
-
-void sub_8035CC0(struct unkData *dataArray, u32 index)
-{
- sub_8006518(dataArray);
- dataArray[index] = gUnknown_80E59A8;
- ResetUnusedInputStruct();
- sub_800641C(dataArray, 1, 1);
-}
-
-NAKED
-void sub_8035CF4(void * Menu, u32 index, u8 r2)
-{
- asm_unified("\tpush {lr}\n"
- "\tadds r3, r0, 0\n"
- "\tlsls r0, r1, 2\n"
- "\tadds r0, r1\n"
- "\tlsls r0, 4\n"
- "\tadds r0, r3\n"
- "\tadds r1, r0, 0\n"
- "\tadds r1, 0x4C\n"
- "\tstrb r2, [r1]\n"
- "\tadds r2, r0, 0\n"
- "\tadds r2, 0x4D\n"
- "\tmovs r1, 0x1\n"
- "\tstrb r1, [r2]\n"
- "\tsubs r1, 0x2\n"
- "\tstr r1, [r0, 0x48]\n"
- "\tbl sub_8012EBC\n"
- "\tpop {r0}\n"
- "\tbx r0");
-}
-
-void sub_8035D1C(void)
-{
- gMainMenu->unk38 = -1;
-}
-
-void sub_8035D30(s32 r0)
-{
- gMainMenu->unk38 = r0;
-}
-
-s16 sub_8035D3C(void)
-{
- return gMainMenu->unk38;
-}
-
-struct MainMenu *GetMainMenu(void)
-{
- return gMainMenu;
-}
-
-void sub_8035D58(void)
-{
- gMainMenu->unk3C = -1;
-}
-
-void sub_8035D68(s32 r0)
-{
- gMainMenu->unk3C = r0;
-}
-
-s32 sub_8035D74(void)
-{
- return gMainMenu->unk3C;
-}
-
-NAKED
-void sub_8035D80(void *r0)
-{
- asm_unified(
- "\tldr r1, _08035D90\n"
- "\tldr r2, [r1]\n"
- "\tldr r1, [r0, 0x4]\n"
- "\tldr r0, [r0]\n"
- "\tstr r0, [r2, 0x30]\n"
- "\tstr r1, [r2, 0x34]\n"
- "\tbx lr\n"
- "\t.align 2, 0\n"
-"_08035D90: .4byte gMainMenu");
-}
-
-u8 *sub_8035D94(void)
-{
- return &gMainMenu->unk30;
-}
-
-
-void sub_8035DA0(void)
-{
- gMainMenu->unk30 = 0;
- gMainMenu->unk34 = 0;
-}
-
-u32 sub_8035DB4(u32 r0)
-{
- u32 returnVar = 8;
- switch(r0)
- {
- case MENU_COMMUNICATION_1:
- returnVar = 0;
- break;
- case MENU_COMMUNICATION_2:
- returnVar = 1;
- break;
- case 0x15:
- returnVar = 2;
- break;
- case 0x16:
- returnVar = 3;
- break;
- case 0x17:
- returnVar = 4;
- break;
- case 0x18:
- returnVar = 5;
- break;
- case 0x19:
- returnVar = 6;
- break;
- case 0x1a:
- returnVar = 7;
- }
- return returnVar;
-}
-
-void DrawMainMenu(void)
-{
- s32 iVar3;
-
- if(gUnknown_203B34C == NULL)
- {
- gUnknown_203B34C = MemoryAlloc(0x1A8, 8);
- MemoryFill8((u8 *)gUnknown_203B34C, 0, 0x1A8);
- }
-
- for(iVar3 = 0; iVar3 < 4; iVar3++)
- {
- gUnknown_203B34C->unk144[iVar3] = gUnknown_80E59C8;
- }
-
- ResetUnusedInputStruct();
- sub_800641C(gUnknown_203B34C->unk144, 1, 1);
- SetMainMenuItems();
- gUnknown_203B34C->currMenuChoice = -1;
-
- if(SetMainMenuText() != 0)
- {
- sub_8035CF4(&gUnknown_203B34C->unk4,2,0);
- }
-
- sub_8035CF4(&gUnknown_203B34C->unk4,0,1);
- gUnknown_203B34C->unk0 = 1;
-}
-
-void CleanMainMenu(void)
-{
- ResetUnusedInputStruct();
- sub_800641C(NULL, 1, 1);
- if(gUnknown_203B34C != NULL)
- {
- MemoryFree(gUnknown_203B34C);
- gUnknown_203B34C = NULL;
- }
-}
diff --git a/src/makuhita_dojo.c b/src/makuhita_dojo.c
new file mode 100644
index 0000000..6061531
--- /dev/null
+++ b/src/makuhita_dojo.c
@@ -0,0 +1,184 @@
+#include "global.h"
+#include "file_system.h"
+#include "pokemon.h"
+#include "input.h"
+#include "constants/species.h"
+
+struct unkData
+{
+ u8 unk0[24];
+};
+
+struct unkStruct_203B318
+{
+ // size: 0xcc
+ u32 unk0;
+ u32 unk4;
+ s32 unk8;
+ u8 fillC[0x10 - 0xC];
+ s16 unk10;
+ u8 fill[0x58 - 0x12];
+ struct OpenedFile *faceFile;
+ u8 *faceData;
+ u16 unk60;
+ u16 unk62;
+ u8 unk64;
+ u8 unk65;
+ u8 unk66;
+ u8 unk67;
+ struct OpenedFile** unk68;
+ struct unkData unk6C[4];
+};
+
+extern u8 gUnknown_202E5D8[];
+extern u8 gUnknown_202E1C8[];
+extern struct unkStruct_203B318 *gUnknown_203B318;
+extern struct unkData gUnknown_80E0760;
+
+extern void sub_800641C(struct unkData *, u32, u32);
+extern void sub_8006518(struct unkData *);
+extern void *MemoryAlloc(u32, u32);
+extern void MemoryFree(void *);
+
+extern void sub_8030208();
+extern void sub_8030258();
+extern void sub_80302A8();
+extern void sub_80302C4();
+extern void UpdateMakuhitaDialogue();
+
+void sub_802FF04(s32);
+void sub_802FF1C();
+
+u32 CreateMakuhitaShop(u32 param_1)
+{
+ char *monName;
+ struct OpenedFile *faceFile;
+ u32 initialState;
+
+ ResetUnusedInputStruct();
+ sub_800641C(0,1,1);
+ gUnknown_203B318 = MemoryAlloc(0xcc,8);
+ gUnknown_203B318->unk10 = -1;
+ gUnknown_203B318->unk0 = param_1;
+ switch(param_1) {
+ case 0:
+ initialState = 0;
+ gUnknown_203B318->unk4 = 0;
+ break;
+ case 1:
+ initialState = 7;
+ gUnknown_203B318->unk4 = 0;
+ break;
+ case 2:
+ initialState = 6;
+ gUnknown_203B318->unk4 = 0;
+ break;
+ case 3:
+ initialState = 8;
+ gUnknown_203B318->unk4 = 0;
+ break;
+ case 4:
+ initialState = 0;
+ gUnknown_203B318->unk4 = 1;
+ break;
+ case 5:
+ initialState = 7;
+ gUnknown_203B318->unk4 = 1;
+ break;
+ case 6:
+ initialState = 6;
+ gUnknown_203B318->unk4 = 1;
+ break;
+ case 7:
+ default:
+ initialState = 8;
+ gUnknown_203B318->unk4 = 1;
+ break;
+ }
+ if (gUnknown_203B318->unk4 == 1) {
+ gUnknown_203B318->unk68 = NULL;
+ }
+ else {
+ gUnknown_203B318->unk68 = &gUnknown_203B318->faceFile;
+ }
+ CopyYellowSpeciesNametoBuffer(gUnknown_202E5D8,SPECIES_MAKUHITA);
+ CopyYellowSpeciesNametoBuffer(gUnknown_202E1C8,SPECIES_MAKUHITA);
+ monName = GetMonSpecies(SPECIES_MAKUHITA);
+ strcpy(gUnknown_202E1C8 - 0x50, monName);
+ faceFile = GetDialogueSpriteDataPtr(SPECIES_MAKUHITA);
+ gUnknown_203B318->faceFile = faceFile;
+ gUnknown_203B318->faceData = faceFile->data;
+ gUnknown_203B318->unk64 = 0;
+ gUnknown_203B318->unk65 = 0;
+ gUnknown_203B318->unk66 = 0;
+ gUnknown_203B318->unk60 = 2;
+ gUnknown_203B318->unk62 = 8;
+ sub_802FF04(initialState);
+ return 1;
+}
+
+u32 sub_802FE58(void)
+{
+
+ switch(gUnknown_203B318->unk8) {
+ case 0:
+ case 1:
+ sub_8030208();
+ break;
+ case 4:
+ sub_8030258();
+ break;
+ case 11:
+ sub_80302A8();
+ break;
+ case 13:
+ return 3;
+ default:
+ sub_80302C4();
+ break;
+ }
+ return 0;
+}
+
+s16 sub_802FED0(void)
+{
+ return gUnknown_203B318->unk10;
+}
+
+void sub_802FEE0(void)
+{
+ if(gUnknown_203B318 != NULL)
+ {
+ CloseFile(gUnknown_203B318->faceFile);
+ MemoryFree(gUnknown_203B318);
+ gUnknown_203B318 = NULL;
+ }
+}
+
+void sub_802FF04(s32 newState)
+{
+ gUnknown_203B318->unk8 = newState;
+ sub_802FF1C();
+ UpdateMakuhitaDialogue();
+}
+
+void sub_802FF1C(void)
+{
+ s32 iVar3;
+ sub_8006518(gUnknown_203B318->unk6C);
+ switch(gUnknown_203B318->unk8)
+ {
+ case 0:
+ case 4:
+ case 13:
+ for(iVar3 = 0; iVar3 < 4; iVar3++)
+ {
+ gUnknown_203B318->unk6C[iVar3] = gUnknown_80E0760;
+ }
+ break;
+ default:
+ break;
+ }
+ ResetUnusedInputStruct();
+ sub_800641C(gUnknown_203B318->unk6C, 1, 1);
+}
diff --git a/src/more_input.c b/src/more_input.c
index 9ab4c97..d3c030c 100644
--- a/src/more_input.c
+++ b/src/more_input.c
@@ -1,28 +1,6 @@
#include "global.h"
#include "input.h"
-struct UnkInputStruct
-{
- /* 0x0 */ u8 unk0;
- /* 0x1 */ u8 unk1;
- /* 0x2 */ u8 unk2;
- /* 0x3 */ u8 unk3;
- /* 0x4 */ u8 unk4;
- /* 0x5 */ u32 unk5;
- /* 0x9 */ u32 unk9;
- /* 0xD */ u32 unkD;
- /* 0x12 */ u32 unk11;
- /* 0x16 */ u32 unk15;
- /* 0x1A */ u32 unk19;
- /* 0x1E */ u32 unk1D;
- /* 0x24 */ u32 unk24;
- /* 0x28 */ u8 unk28;
- /* 0x29 */ u8 a_button;
- /* 0x2A */ u8 b_button;
- /* 0x2B */ u8 dpad_right;
- /* 0x2C */ u8 dpad_left;
-};
-
extern void nullsub_34(struct UnkInputStruct *r0);
extern struct Inputs gRealInputs;
diff --git a/src/music_pre.c b/src/music_pre.c
index b357b97..410c923 100644
--- a/src/music_pre.c
+++ b/src/music_pre.c
@@ -67,6 +67,15 @@ extern struct BGControlStruct gBG1Control;
extern struct BGControlStruct gBG2Control;
extern struct BGControlStruct gBG3Control;
+enum
+{
+ BG0,
+ BG1,
+ BG2,
+ BG3,
+ NUM_BGS
+};
+
extern void SoundVSync();
extern void BlinkSavingIcon();
@@ -312,21 +321,21 @@ void sub_800BB44(void)
u16 dispcnt_store;
bool8 interrupt_flag;
- while(REG_KEYINPUT != 0x3ff){}
+ while(REG_KEYINPUT != KEYS_MASK){}
interrupt_flag = DisableInterrupts();
- while(REG_VCOUNT <= 159){}
+ while(REG_VCOUNT < 160){}
dispcnt_store = REG_DISPCNT;
- REG_DISPCNT = 0x80;
+ REG_DISPCNT = DISPCNT_FORCED_BLANK;
- *(vu16 *)BG_PLTT = 0x7fff;
+ *(vu16 *)BG_PLTT = RGB_WHITE;
ie_store = REG_IE;
REG_IE = INTR_FLAG_KEYPAD | INTR_FLAG_GAMEPAK;
- REG_KEYCNT = 0x8304;
+ REG_KEYCNT = KEY_AND_INTR | R_BUTTON | L_BUTTON | SELECT_BUTTON; // 0x8304
REG_IME = 1;
SoundBiasReset();
@@ -337,11 +346,11 @@ void sub_800BB44(void)
REG_IE = ie_store;
REG_KEYCNT = 0;
REG_DISPCNT = dispcnt_store;
- *(vu16 *)BG_PLTT = 0;
+ *(vu16 *)BG_PLTT = RGB_BLACK;
if(interrupt_flag)
EnableInterrupts();
- while(REG_KEYINPUT != 0x3ff){}
+ while(REG_KEYINPUT != KEYS_MASK){}
}
void nullsub_17(void)
@@ -350,21 +359,21 @@ void nullsub_17(void)
void UpdateBGControlRegisters(void)
{
- u32 BG[4];
+ u32 BGCNT_Priority[NUM_BGS];
if(gUnknown_202D7FE == 1)
{
- BG[0] = 1;
- BG[1] = 2;
- BG[2] = 0;
- BG[3] = 3;
+ BGCNT_Priority[BG0] = BGCNT_PRIORITY(1);
+ BGCNT_Priority[BG1] = BGCNT_PRIORITY(2);
+ BGCNT_Priority[BG2] = BGCNT_PRIORITY(0);
+ BGCNT_Priority[BG3] = BGCNT_PRIORITY(3);
}
else
{
- BG[0] = 0;
- BG[1] = 1;
- BG[2] = 2;
- BG[3] = 3;
+ BGCNT_Priority[BG0] = BGCNT_PRIORITY(0);
+ BGCNT_Priority[BG1] = BGCNT_PRIORITY(1);
+ BGCNT_Priority[BG2] = BGCNT_PRIORITY(2);
+ BGCNT_Priority[BG3] = BGCNT_PRIORITY(3);
}
REG_BG0HOFS = gBG0Control.hofs;
@@ -376,23 +385,17 @@ void UpdateBGControlRegisters(void)
REG_BG3HOFS = gBG3Control.hofs;
REG_BG3VOFS = gBG3Control.vofs;
- REG_BG0CNT = BG[0] | 0xB0 << 6;
- REG_BG1CNT = BG[1] | 0xB4 << 6;
- if(gBG2Control.unk2 == 0x80 << 8)
- {
- REG_BG2CNT = BG[2] | 0x2e08;
- }
+ REG_BG0CNT = BGCNT_Priority[BG0] | BGCNT_SCREENBASE(12) | BGCNT_CHARBASE(0) | BGCNT_WRAP; // 0x2C00
+ REG_BG1CNT = BGCNT_Priority[BG1] | BGCNT_SCREENBASE(13) | BGCNT_CHARBASE(0) | BGCNT_WRAP; // 0x2D00
+ if(gBG2Control.unk2 == 0x8000)
+ REG_BG2CNT = BGCNT_Priority[BG2] | BGCNT_SCREENBASE(14) | BGCNT_CHARBASE(2) | BGCNT_WRAP; // 0x2E08
else
- {
- REG_BG2CNT = BG[2] | 0xB8 << 6;
- }
-
- REG_BG3CNT = BG[3] | 0x2f08;
+ REG_BG2CNT = BGCNT_Priority[BG2] | BGCNT_SCREENBASE(14) | BGCNT_CHARBASE(0) | BGCNT_WRAP; // 0x2E00
+ REG_BG3CNT = BGCNT_Priority[BG3] | BGCNT_SCREENBASE(15) | BGCNT_CHARBASE(2) | BGCNT_WRAP;
REG_BLDCNT = gBldCnt;
}
-// Some kind of initializer for music?
-void sub_800BD08(void)
+void InitMusic(void)
{
s32 counter;
u16 zero;
@@ -477,7 +480,6 @@ void StartNewBGM(u16 songIndex)
void FadeInNewBGM(u16 SongIndex, u16 speed)
{
bool8 interrupt_flag;
- u16 temp_store;
if(!IsBGSong(SongIndex))
return;
@@ -485,8 +487,7 @@ void FadeInNewBGM(u16 SongIndex, u16 speed)
return;
if(SongIndex == gCurrentBGSong)
{
- temp_store = gBGMusicPlayerState - 1;
- if((temp_store) <= 1)
+ if((u16)(gBGMusicPlayerState - 1) <= 1)
return;
}
@@ -608,8 +609,8 @@ void sub_800C074(u16 SongIndex, u16 param_2)
if (SongIndex == 0x3e5)
return;
- if (0x100 < param_2)
- param_2 = 0x100;
+ if (256 < param_2)
+ param_2 = 256;
if (sub_800CACC(SongIndex))
{
diff --git a/src/other_menus.c b/src/other_menus.c
index f64c976..86a90fc 100644
--- a/src/other_menus.c
+++ b/src/other_menus.c
@@ -1,6 +1,8 @@
#include "global.h"
#include "input.h"
#include "main_menu.h"
+#include "gUnknown_203B460.h"
+#include "menu.h"
struct unkData
{
@@ -29,34 +31,34 @@ extern struct unkStruct_203B35C *gUnknown_203B35C;
extern struct unkData gUnknown_80E653C;
-extern u32 gUnknown_80E66BC;
-extern u32 gUnknown_80E66D4;
-extern u32 gUnknown_80E6748;
-extern u32 gUnknown_80E6760;
-extern u32 gUnknown_80E67D4;
-extern u32 gUnknown_80E67EC;
-extern u32 gUnknown_80E689C;
-extern u32 gUnknown_80E68B4;
-extern u32 gUnknown_80E6938;
-extern u32 gUnknown_80E6950;
-extern u32 gUnknown_80E69B0;
-extern u32 gUnknown_80E69C8;
-extern u32 gUnknown_80E6A10;
-extern u32 gUnknown_80E6A28;
-extern u32 gUnknown_80E6A74;
-extern u32 gUnknown_80E6A8C;
-extern u32 gUnknown_80E6B78;
-extern u32 gUnknown_80E6B90;
-extern u32 gUnknown_80E6BF4;
-extern u32 gUnknown_80E6C0C;
-extern u32 gUnknown_80E6C50;
-extern u32 gUnknown_80E6C68;
-extern u32 gUnknown_80E6CD0;
-extern u32 gUnknown_80E6CE8;
-extern u32 gUnknown_80E6DDC;
-extern u32 gUnknown_80E6DF4;
-extern u32 gUnknown_80E6D54;
-extern u32 gUnknown_80E6D6C;
+extern struct unkData gUnknown_80E66BC;
+extern struct MenuItem gUnknown_80E66D4[];
+extern struct unkData gUnknown_80E6748;
+extern struct MenuItem gUnknown_80E6760[];
+extern struct unkData gUnknown_80E67D4;
+extern struct MenuItem gUnknown_80E67EC[];
+extern struct unkData gUnknown_80E689C;
+extern struct MenuItem gUnknown_80E68B4[];
+extern struct unkData gUnknown_80E6938;
+extern struct MenuItem gUnknown_80E6950[];
+extern struct unkData gUnknown_80E69B0;
+extern struct MenuItem gUnknown_80E69C8[];
+extern struct unkData gUnknown_80E6A10;
+extern struct MenuItem gUnknown_80E6A28[];
+extern struct unkData gUnknown_80E6A74;
+extern struct MenuItem gUnknown_80E6A8C[];
+extern struct unkData gUnknown_80E6B78;
+extern struct MenuItem gUnknown_80E6B90[];
+extern struct unkData gUnknown_80E6BF4;
+extern struct MenuItem gUnknown_80E6C0C[];
+extern struct unkData gUnknown_80E6C50;
+extern struct MenuItem gUnknown_80E6C68[];
+extern struct unkData gUnknown_80E6CD0;
+extern struct MenuItem gUnknown_80E6CE8[];
+extern struct unkData gUnknown_80E6DDC;
+extern struct MenuItem gUnknown_80E6DF4[];
+extern struct unkData gUnknown_80E6D54;
+extern struct MenuItem gUnknown_80E6D6C[];
struct unkStruct_8035D94
{
@@ -67,12 +69,7 @@ struct unkStruct_8035D94
extern struct unkStruct_8035D94 *sub_8035D94();
-struct unkStruct_203B460
-{
- u8 unk0[0x50];
- u16 unk50[10];
-};
-extern struct unkStruct_203B460 *gUnknown_203B460; // TODO unify this
+extern struct unkStruct_203B460 *gUnknown_203B460;
extern void sub_8037400(void);
extern void sub_800641C(void *, u32, u32);
@@ -92,7 +89,7 @@ extern void sub_80371B8(void);
extern void sub_8037900(void);
extern void PlayMenuSoundEffect(u32);
extern u32 sub_8037798(void);
-extern void SetMenuItems(void *, void *, u32, u32 *, u32 *, u32, u32, u32);
+extern void SetMenuItems(void *, void *, u32, struct unkData *, struct MenuItem *, u32, u32, u32);
extern void sub_8005838(u32, u32);
extern void sub_80060EC();
extern void sub_800CB20();
@@ -131,7 +128,7 @@ void sub_8036FDC(s32 param_1)
}
ResetUnusedInputStruct();
sub_800641C(gUnknown_203B35C->unk15C,1,1);
- SetMenuItems(&gUnknown_203B35C->unk1C,gUnknown_203B35C->unk15C,0,&gUnknown_80E6CD0,&gUnknown_80E6CE8,0,
+ SetMenuItems(&gUnknown_203B35C->unk1C,gUnknown_203B35C->unk15C,0,&gUnknown_80E6CD0,gUnknown_80E6CE8,0,
6,0);
sub_8035CF4(&gUnknown_203B35C->unk1C,0,1);
sub_80376CC();
@@ -313,11 +310,11 @@ u32 sub_80370F0(void)
void sub_80371B8(void)
{
struct unkStruct_8035D94 *pbVar2;
- u32 *ppuVar4;
- u32 *puVar5;
+ struct MenuItem *MenuItems;
+ struct unkData *puVar5;
puVar5 = NULL;
- ppuVar4 = NULL;
+ MenuItems = NULL;
sub_8037400();
if ((gUnknown_203B35C->unk0 < 2) &&(gUnknown_203B35C->unk4 == 0)) {
if (sub_8037C10(0) != 0) {
@@ -326,8 +323,7 @@ void sub_80371B8(void)
// Success!
// The item exchange with your friend
// went through successfully
- SetMenuItems(&gUnknown_203B35C->unk1C, gUnknown_203B35C->unk15C, 0, &gUnknown_80E6C50,
- &gUnknown_80E6C68, 0, 6, 0);
+ SetMenuItems(&gUnknown_203B35C->unk1C, gUnknown_203B35C->unk15C, 0, &gUnknown_80E6C50, gUnknown_80E6C68, 0, 6, 0);
sub_8035CF4(&gUnknown_203B35C->unk1C, 0, 1);
}
}
@@ -337,57 +333,57 @@ void sub_80371B8(void)
switch(gUnknown_203B35C->unk4) {
case 0:
puVar5 = &gUnknown_80E66BC;
- ppuVar4 = &gUnknown_80E66D4;
+ MenuItems = gUnknown_80E66D4;
break;
case 3:
puVar5 = &gUnknown_80E6D54;
- ppuVar4 = &gUnknown_80E6D6C;
+ MenuItems = gUnknown_80E6D6C;
break;
case 2:
puVar5 = &gUnknown_80E6DDC;
- ppuVar4 = &gUnknown_80E6DF4;
+ MenuItems = gUnknown_80E6DF4;
break;
case 4:
puVar5 = &gUnknown_80E67D4;
- ppuVar4 = &gUnknown_80E67EC;
+ MenuItems = gUnknown_80E67EC;
break;
case 1:
case 5:
puVar5 = &gUnknown_80E6748;
- ppuVar4 = &gUnknown_80E6760;
+ MenuItems = gUnknown_80E6760;
break;
case 6:
puVar5 = &gUnknown_80E689C;
- ppuVar4 = &gUnknown_80E68B4;
+ MenuItems = gUnknown_80E68B4;
break;
case 7:
puVar5 = &gUnknown_80E6938;
- ppuVar4 = &gUnknown_80E6950;
+ MenuItems = gUnknown_80E6950;
break;
case 9:
puVar5 = &gUnknown_80E69B0;
- ppuVar4 = &gUnknown_80E69C8;
+ MenuItems = gUnknown_80E69C8;
break;
case 0xb:
puVar5 = &gUnknown_80E6A10;
- ppuVar4 = &gUnknown_80E6A28;
+ MenuItems = gUnknown_80E6A28;
break;
case 0xd:
puVar5 = &gUnknown_80E6A74;
- ppuVar4 = &gUnknown_80E6A8C;
+ MenuItems = gUnknown_80E6A8C;
break;
case 0xe:
puVar5 = &gUnknown_80E6B78;
// Error, there was a problem on your friend's end
- ppuVar4 = &gUnknown_80E6B90;
+ MenuItems = gUnknown_80E6B90;
break;
case 0xf:
puVar5 = &gUnknown_80E6BF4;
// Error, your friend is not responding
- ppuVar4 = &gUnknown_80E6C0C;
+ MenuItems = gUnknown_80E6C0C;
break;
}
- SetMenuItems(&gUnknown_203B35C->unk1C, gUnknown_203B35C->unk15C, 0, puVar5, ppuVar4, 0, 6, 0);
+ SetMenuItems(&gUnknown_203B35C->unk1C, gUnknown_203B35C->unk15C, 0, puVar5, MenuItems, 0, 6, 0);
sub_8035CF4(&gUnknown_203B35C->unk1C, 0, 1);
// TODO clean this if statement up...
if ((((gUnknown_203B35C->unk4 != 0) &&(gUnknown_203B35C->unk0 == 0)) &&
diff --git a/src/personality_test.c b/src/personality_test.c
index 974ca03..8d28ef3 100644
--- a/src/personality_test.c
+++ b/src/personality_test.c
@@ -22,14 +22,12 @@ extern void sub_8014248(const char *text, u32, u32, u32 *r0, u32, u32, u32, u32,
extern u32 sub_80144A4(s32 *);
-extern char* GetMonSpecies(u32);
extern void CopyStringtoBuffer(char *r0, char *r1);
extern void sub_801602C(u32, char *r0);
extern u32 sub_8016080(void);
extern void sub_80160D8(void);
extern void sub_8099690(u32);
-extern void CopySpeciesNametoBuffer(char *r0, u32);
extern void sub_8006518(void *);
extern void sub_800641C(void *, u32, u32);
@@ -94,7 +92,7 @@ extern u32 gGenderMenu;
extern const char gUnknown_80F42C0;
extern u8 gNatureQuestionTable[NUM_QUIZ_QUESTIONS];
-extern char gAvailablePokemonNames[0x50];
+extern u8 gAvailablePokemonNames[0x50];
extern const char gHardyDescription[];
extern const char gDocileDescription[];
diff --git a/src/pokemon.c b/src/pokemon.c
index 75d7577..90a0c00 100644
--- a/src/pokemon.c
+++ b/src/pokemon.c
@@ -2,8 +2,8 @@
#include "pokemon.h"
#include "file_system.h"
-extern u32 *gUnknown_203B45C;
-extern u32 gUnknown_202F400;
+extern u32 *gRecruitedPokemonRef;
+extern u32 gRecruitedPokemon;
extern struct FileArchive gSystemFileArchive;
extern const char gUnknown_81075F4;
extern struct OpenedFile *gMonsterParametersFile;
@@ -12,7 +12,7 @@ extern struct gPokemon *gMonsterParameters;
void LoadMonsterParameters(void)
{
- gUnknown_203B45C = &gUnknown_202F400;
+ gRecruitedPokemonRef = &gRecruitedPokemon;
gMonsterParametersFile = OpenFileAndGetFileDataPtr(&gUnknown_81075F4, &gSystemFileArchive);
gMonsterParameters = (struct gPokemon *)gMonsterParametersFile->data;
gLevelCurrentPokeId = 0;
@@ -20,6 +20,6 @@ void LoadMonsterParameters(void)
u32 *sub_808CE00(void)
{
- return &gUnknown_202F400;
+ return &gRecruitedPokemon;
}
diff --git a/src/pokemon_1.c b/src/pokemon_1.c
index 440265b..a6aff55 100644
--- a/src/pokemon_1.c
+++ b/src/pokemon_1.c
@@ -104,9 +104,9 @@ u8 GetPokemonAbility(s16 index, u32 abilityIndex)
return gMonsterParameters[index].abilities[abilityIndex];
}
-s16 sub_808DCA0(s16 index, u32 r1)
+s16 GetDexInternalNo(s16 index, u32 r1)
{
- return gMonsterParameters[index].unk3C[r1];
+ return gMonsterParameters[index].dexInternal[r1];
}
s16 GetBaseRecruit(s16 index)
@@ -114,15 +114,15 @@ s16 GetBaseRecruit(s16 index)
return gMonsterParameters[index].base_recruit;
}
-s16 sub_808DCDC(s16 index, s32 r1)
+s16 GetAlphabetParentNo(s16 index, s32 r1)
{
- return gMonsterParameters[index].unk42[r1];
+ return gMonsterParameters[index].alphabetParent[r1];
}
-s16 sub_808DCFC(s16 index)
+s16 GetInternalNo(s16 index)
{
- return gMonsterParameters[index].unk3C[1];
+ return gMonsterParameters[index].dexInternal[1];
}
#ifdef NONMATCHING
@@ -159,7 +159,7 @@ u32 CalculateEXPGain(s16 index, s32 level)
}
#endif
-s16 sub_808DD48(s16 index, struct unkEvolve *r1)
+s16 GetPokemonEvolveConditions(s16 index, struct unkEvolve *r1)
{
struct EvolveStruct1 temp2;
struct EvolveNeeds temp1;
diff --git a/src/pokemon_mid.c b/src/pokemon_mid.c
new file mode 100644
index 0000000..e8405c8
--- /dev/null
+++ b/src/pokemon_mid.c
@@ -0,0 +1,94 @@
+#include "global.h"
+#include "pokemon.h"
+#include "constants/species.h"
+
+extern struct gPokemon *gMonsterParameters;
+extern const char gUnknown_8107600[];
+extern const char gUnknown_8107608[];
+extern const char gUnownLetters[];
+extern const char gUnknown_8107630[];
+extern const char gUnknown_8107638[];
+extern const char gUnknown_810763C[];
+
+extern void sub_800D158(u8 *buffer, const char *r2, ...);
+extern s16 sub_808E770(u32);
+extern s32 GetUnownIndex(s32);
+extern void sub_80922B4(u8 *, u8 *, s32);
+
+extern void sub_800D158(u8 *buffer, const char *r2, ...);
+
+void CopySpeciesNametoBuffer(u8 * buffer, s16 index)
+{
+ strncpy(buffer, gMonsterParameters[index].species, 0x14);
+}
+
+void CopyYellowSpeciesNametoBuffer(u8 *buffer, s16 index)
+{
+ s32 new_index = index;
+ sub_800D158(buffer, gUnknown_8107600, gMonsterParameters[new_index].species); // #c6%s#r
+}
+
+void CopyCyanSpeciesNametoBuffer(u8 *buffer, s16 index)
+{
+ s32 new_index = index;
+ sub_800D158(buffer, gUnknown_8107608, gMonsterParameters[new_index].species); // #c5%s#r
+}
+
+void sub_808D930(u8 *buffer, s16 index)
+{
+ char *unownString;
+ s32 newIndex;
+ s32 unownIndex;
+ const char *preload;
+
+ newIndex = index;
+ if (sub_808E770(newIndex) == SPECIES_UNOWN) {
+ preload = gUnknown_8107630; // %s%c
+ unownString = GetMonSpecies(SPECIES_UNOWN);
+ unownIndex = GetUnownIndex(newIndex);
+ sub_800D158(buffer,preload,unownString,gUnownLetters[unownIndex]); // ABCDEFGHIJKLMNOPQRSTUVWXYZ!?
+ }
+ else {
+ sub_800D158(buffer,gUnknown_8107638, gMonsterParameters[newIndex].species); // %s
+ }
+}
+
+char * GetMonSpecies(s16 index)
+{
+ return gMonsterParameters[index].species;
+}
+
+void sub_808D9AC(u8 *param_1, u8 *param_2, s32 param_3)
+{
+ u8 auStack32 [20];
+
+ sub_80922B4(auStack32, param_2 + 0x4c, 10);
+ if (param_3 == 0) {
+ param_3 = 5;
+ }
+ sub_800D158(param_1,gUnknown_810763C,param_3,auStack32); // #c%c%s#r
+}
+
+void sub_808D9DC(u8 *param_1, u8 *param_2, s32 param_3)
+{
+ u8 auStack32 [20];
+
+ sub_80922B4(auStack32, param_2 + 0x58, 10);
+ if (param_3 == 0) {
+ param_3 = 6;
+ }
+ sub_800D158(param_1,gUnknown_810763C,param_3,auStack32); // #c%c%s#r
+}
+
+void sub_808DA0C(u8 *param_1, u8 *param_2)
+{
+ u8 auStack32 [20];
+
+ sub_80922B4(auStack32, param_2 + 0x58, 10);
+ sub_800D158(param_1,gUnknown_8107638,auStack32); // %s
+}
+
+void sub_808DA34(u8 *param_1, u8 *param_2)
+{
+ sub_80922B4(param_1, param_2 + 0x4c, 10);
+}
diff --git a/src/post_office_guide.c b/src/post_office_guide.c
new file mode 100644
index 0000000..42a8acb
--- /dev/null
+++ b/src/post_office_guide.c
@@ -0,0 +1,568 @@
+#include "global.h"
+#include "pokemon.h"
+#include "file_system.h"
+#include "input.h"
+#include "constants/species.h"
+#include "menu.h"
+
+struct PostOfficeHelper
+{
+ // size: 0x18
+ u8 state;
+ s32 currMenuChoice;
+ struct OpenedFile *faceFile;
+ u8 *faceData;
+ u16 unk10;
+ u16 unk12;
+ u8 unk14;
+ u8 unk15;
+ u8 unk16;
+};
+
+extern struct PostOfficeHelper *gPostOfficeHelper;
+
+
+struct unkData
+{
+ u8 unk0[20];
+ const u8 *unk20;
+};
+
+struct unkStruct_203B330
+{
+ struct UnkInputStruct *unk0;
+ u8 fill4[0x8];
+ u8 unkC;
+ u8 unkD;
+ u8 fillE[2];
+ u32 unk10;
+ struct unkData *unk14;
+ struct unkData unk18[3];
+};
+extern struct unkStruct_203B330 *gUnknown_203B330;
+
+
+extern const char DeletingMailInfo_Text[];
+extern const char GetHelp_Text[];
+extern const char GoRescue_Text[];
+extern const char FriendRescueInfo_Text[];
+
+extern const char SendThankYouMail_Text[];
+extern const char ReceiveAOKMail_Text[];
+extern const char SendSOSMail_Text[];
+extern const char GettingHelp_Text[];
+extern const char GetThankYouMail_Text[];
+extern const char SendAOKMail_Text[];
+extern const char LeaveForRescue_Text[];
+extern const char ReceiveSOSMail_Text[];
+extern const char RescueProcedures_Text[];
+extern const char Exit_80EA0EC[];
+
+
+extern const char Cancel_80E0A78[];
+extern const char FriendRescue_80E0A80[];
+extern const char Delivery_Text[];
+extern const char BulletinBoard_Text[];
+extern const char PostOffice_Text[];
+
+const struct MenuItem gPostOfficeHelpStartMenu[] =
+{
+ {PostOffice_Text, 0x0},
+ {BulletinBoard_Text, 0x1},
+ {Delivery_Text, 0x2},
+ {FriendRescue_80E0A80,0x3},
+ {Cancel_80E0A78,0x4},
+ {NULL,0x5}
+};
+
+ALIGNED(4) const char Cancel_80E0A78[] = _("Cancel");
+ALIGNED(4) const char FriendRescue_80E0A80[] = _("{COLOR_1 YELLOW}Friend Rescue{END_COLOR_TEXT_1} ");
+ALIGNED(4) const char Delivery_Text[] = _("Delivery");
+ALIGNED(4) const char BulletinBoard_Text[] = _("Bulletin Board");
+ALIGNED(4) const char PostOffice_Text[] = _("Post Office");
+
+const struct MenuItem gPostOfficeHelpFriendRescueMenu[] =
+{
+ {FriendRescueInfo_Text, 0x6},
+ {GoRescue_Text, 0x7},
+ {GetHelp_Text, 0x8},
+ {DeletingMailInfo_Text,0x9},
+ {Exit_80EA0EC,0x5},
+ {NULL,0x5}
+};
+
+ALIGNED(4) const char Exit_80EA0EC[] = _("Exit");
+ALIGNED(4) const char DeletingMailInfo_Text[] = _("Deleting Mail Info");
+ALIGNED(4) const char GetHelp_Text[] = _("{COLOR_1 YELLOW}Get help{END_COLOR_TEXT_1} ");
+ALIGNED(4) const char GoRescue_Text[] = _("{COLOR_1 YELLOW}Go rescue{END_COLOR_TEXT_1} ");
+ALIGNED(4) const char FriendRescueInfo_Text[] = _("Friend Rescue Info");
+
+
+const struct MenuItem gPostOfficeHelpGoRescueMenu[] =
+{
+ {RescueProcedures_Text, 0xA},
+ {ReceiveSOSMail_Text, 0xB},
+ {LeaveForRescue_Text, 0xC},
+ {SendAOKMail_Text, 0xD},
+ {GetThankYouMail_Text,0xE},
+ {Exit_80EA0EC,0x5},
+ {NULL,0x5}
+};
+
+ALIGNED(4) const char GetThankYouMail_Text[] = _("Get Thank-You Mail");
+ALIGNED(4) const char SendAOKMail_Text[] = _("Send A-OK Mail");
+ALIGNED(4) const char LeaveForRescue_Text[] = _("Leave for Rescue");
+ALIGNED(4) const char ReceiveSOSMail_Text[] = _("Receive SOS Mail");
+ALIGNED(4) const char RescueProcedures_Text[] = _("Rescue Procedures");
+
+
+const struct MenuItem gPostOfficeHelpGetHelpMenu[] =
+{
+ {GettingHelp_Text, 0xF},
+ {SendSOSMail_Text, 0x10},
+ {ReceiveAOKMail_Text, 0x11},
+ {SendThankYouMail_Text,0x12},
+ {Exit_80EA0EC,0x5},
+ {NULL,0x5}
+};
+
+ALIGNED(4) const char SendThankYouMail_Text[] = _("Send Thank-You Mail");
+ALIGNED(4) const char ReceiveAOKMail_Text[] = _("Receive A-OK Mail");
+ALIGNED(4) const char SendSOSMail_Text[] = _("Send SOS Mail");
+ALIGNED(4) const char GettingHelp_Text[] = _("Getting Help");
+
+#include "data/pelipper_help_guide_dialogue.h"
+
+ALIGNED(4) const u8 wonder_mail_fill[] = _("pksdir0");
+
+const struct unkData gUnknown_80E1EFC =
+{
+ 0, 0, 0, 0,
+ 3, 0, 0, 0,
+ 0, 0, 0, 0,
+ 0, 0, 0, 0,
+ 0, 0, 0, 0,
+ NULL
+};
+
+const u8 gUnkData_80E1F14[] = {1, 0, 8, 0};
+
+const struct unkData gUnknown_80E1F18 =
+{
+ 0, 0, 0, 0,
+ 6, 0, 0, 0,
+ 2, 0, 2, 0,
+ 0x14, 0, 4, 0,
+ 4, 0, 0, 0,
+ gUnkData_80E1F14
+};
+
+extern void sub_80141B4(const char *r0, u32, struct OpenedFile **r1, u32);
+extern void sub_8014248(const char *r0, u32, u32, const struct MenuItem *r4, u32, u32, u32, struct OpenedFile **r5, u32);
+extern u32 sub_8012A64(struct UnkInputStruct**, u32);
+extern void PlayMenuSoundEffect(u32);
+extern void sub_8031A84();
+extern void sub_8031AE8();
+
+extern u8 gUnknown_202E5D8[];
+extern u8 gAvailablePokemonNames[];
+extern void *MemoryAlloc(u32, u32);
+extern void MemoryFree(void *);
+extern void sub_800641C(struct unkData *, u32, u32);
+extern void sub_8006518(struct unkData *);
+extern void sub_8031A2C(void);
+extern void sub_801317C(void *);
+
+void UpdateHelperPelipperState(u8);
+void HandlePostOfficeHelpStartMenuSelection();
+void sub_8031848();
+extern void HandlePostOfficeHelpFriendRescueMenuSelection();
+extern void sub_80318D0();
+extern void HandlePostOfficeHelpGoRescueMenuSelection();
+extern void sub_803192C();
+extern void HandlePostOfficeHelpGetHelpMenuSelection();
+extern void sub_8031988();
+extern s32 sub_80144A4(s32 *);
+extern s32 sub_80969D0(u8);
+extern void sub_8012D08(struct unkData *, s32);
+
+
+u32 CreateHelperPelipperMenu(s16 speciesID)
+{
+ char *monName;
+ struct OpenedFile *faceFile;
+ int species_32;
+
+ species_32 = speciesID;
+ ResetUnusedInputStruct();
+ sub_800641C(0,1,1);
+ gPostOfficeHelper = MemoryAlloc(sizeof(struct PostOfficeHelper), 8);
+ CopyYellowSpeciesNametoBuffer(gUnknown_202E5D8, speciesID);
+ monName = GetMonSpecies(speciesID);
+ strcpy(gAvailablePokemonNames, monName);
+ gPostOfficeHelper->faceFile = NULL;
+ gPostOfficeHelper->faceData = NULL;
+ if (speciesID != SPECIES_NONE) {
+ faceFile = GetDialogueSpriteDataPtr(species_32);
+ gPostOfficeHelper->faceFile = faceFile;
+ gPostOfficeHelper->unk14 = 0;
+ gPostOfficeHelper->unk15 = 0;
+ gPostOfficeHelper->unk16 = 0;
+ gPostOfficeHelper->unk10 = 2;
+ gPostOfficeHelper->unk12 = 8;
+ if (gPostOfficeHelper->faceFile != NULL) {
+ gPostOfficeHelper->faceData = gPostOfficeHelper->faceFile->data;
+ }
+ }
+ gPostOfficeHelper->currMenuChoice = 0;
+ UpdateHelperPelipperState(1);
+ return 1;
+}
+
+
+u32 sub_8031540(void)
+{
+ switch(gPostOfficeHelper->state) {
+ case 1:
+ case 2:
+ HandlePostOfficeHelpStartMenuSelection();
+ break;
+ case 3:
+ sub_8031848();
+ break;
+ case 4:
+ HandlePostOfficeHelpFriendRescueMenuSelection();
+ break;
+ case 5:
+ sub_80318D0();
+ break;
+ case 6:
+ HandlePostOfficeHelpGoRescueMenuSelection();
+ break;
+ case 7:
+ sub_803192C();
+ break;
+ case 0:
+ return 3;
+ case 8:
+ HandlePostOfficeHelpGetHelpMenuSelection();
+ break;
+ case 9:
+ sub_8031988();
+ break;
+ }
+ return 0;
+}
+
+void CleanHelperPelipper(void)
+{
+ if(gPostOfficeHelper != NULL)
+ {
+ if(gPostOfficeHelper->faceFile != NULL)
+ CloseFile(gPostOfficeHelper->faceFile);
+ MemoryFree(gPostOfficeHelper);
+ gPostOfficeHelper = NULL;
+ }
+}
+
+void nullsub_39(void)
+{
+}
+
+void UpdateHelperPelipperText(void)
+{
+ struct OpenedFile **faceFile;
+ faceFile = NULL;
+ if(gPostOfficeHelper->faceFile != NULL)
+ faceFile = &gPostOfficeHelper->faceFile;
+
+ switch(gPostOfficeHelper->state)
+ {
+ case 8:
+ sub_8014248(gWhatdYouWantToKnow, 0, gPostOfficeHelper->currMenuChoice, gPostOfficeHelpGetHelpMenu, 0, 4, 0, faceFile, 0xC);
+ break;
+ case 9:
+ switch(gPostOfficeHelper->currMenuChoice)
+ {
+ case 15:
+ sub_80141B4(gGettingHelpExplaination, 0, faceFile, 0x10d);
+ break;
+ case 16:
+ sub_80141B4(gSendSOSMailExplaination, 0, faceFile, 0x10d);
+ break;
+ case 17:
+ sub_80141B4(gReceiveAOKMailExplaination, 0, faceFile, 0x10d);
+ break;
+ case 18:
+ sub_80141B4(gSendThankYouMailExplaination, 0, faceFile, 0x10d);
+ break;
+ default:
+ break;
+ }
+ break;
+ case 6:
+ sub_8014248(gWhatdYouWantToKnow, 0, gPostOfficeHelper->currMenuChoice, gPostOfficeHelpGoRescueMenu, 0, 4, 0, faceFile, 0xC);
+ break;
+ case 7:
+ switch(gPostOfficeHelper->currMenuChoice)
+ {
+ case 10:
+ sub_80141B4(gRescueProceduresExplaination, 0, faceFile, 0x10d);
+ break;
+ case 11:
+ sub_80141B4(gReceiveSOSMailExplaination, 0, faceFile, 0x10d);
+ break;
+ case 13:
+ sub_80141B4(gSendAOKMailExplaination, 0, faceFile, 0x10d);
+ break;
+ case 12:
+ sub_80141B4(gLeaveForRescueExplaination, 0, faceFile, 0x10d);
+ break;
+ case 14:
+ sub_80141B4(gGetThankYouMailExplaination, 0, faceFile, 0x10d);
+ break;
+ default:
+ break;
+ }
+ break;
+ case 1:
+ sub_8014248(gImYourGuide, 0, gPostOfficeHelper->currMenuChoice, gPostOfficeHelpStartMenu, 0, 4, 0, faceFile, 0xC);
+ break;
+ case 2:
+ sub_8014248(gAnythingElse, 0, gPostOfficeHelper->currMenuChoice, gPostOfficeHelpStartMenu, 0, 4, 0, faceFile, 0xC);
+ break;
+ case 3:
+ switch(gPostOfficeHelper->currMenuChoice)
+ {
+ case 0:
+ sub_80141B4(gPostOfficeExplaination, 0, faceFile, 0x10d);
+ break;
+ case 1:
+ sub_80141B4(gBulletinBoardExplaination, 0, faceFile, 0x10d);
+ break;
+ case 2:
+ sub_80141B4(gDeliveryExplaination, 0, faceFile, 0x10d);
+ break;
+ default:
+ break;
+ }
+ break;
+ case 4:
+ sub_8014248(gWhatdYouWantToKnow, 0, gPostOfficeHelper->currMenuChoice, gPostOfficeHelpFriendRescueMenu, 0, 4, 0, faceFile, 0xC);
+ break;
+ case 5:
+ switch(gPostOfficeHelper->currMenuChoice)
+ {
+ case 6:
+ sub_80141B4(gFriendRescueExplaination, 0, faceFile, 0x10d);
+ break;
+ case 9:
+ sub_80141B4(gDeletingMailExplaination, 0, faceFile, 0x10d);
+ break;
+ default:
+ break;
+ }
+ break;
+ default:
+ break;
+ }
+}
+
+void UpdateHelperPelipperState(u8 newState)
+{
+ gPostOfficeHelper->state = newState;
+ nullsub_39();
+ UpdateHelperPelipperText();
+}
+
+void HandlePostOfficeHelpStartMenuSelection(void)
+{
+ s32 chosenAction;
+ if(sub_80144A4(&chosenAction) == 0)
+ {
+ switch(chosenAction)
+ {
+ case 4:
+ case 5:
+ UpdateHelperPelipperState(0);
+ break;
+ case 3:
+ gPostOfficeHelper->currMenuChoice = chosenAction;
+ UpdateHelperPelipperState(4);
+ break;
+ case 0:
+ case 1:
+ case 2:
+ gPostOfficeHelper->currMenuChoice = chosenAction;
+ UpdateHelperPelipperState(3);
+ break;
+ }
+ }
+}
+
+void sub_8031848(void)
+{
+ s32 temp;
+ if(sub_80144A4(&temp) == 0)
+ {
+ UpdateHelperPelipperState(2);
+ }
+}
+
+void HandlePostOfficeHelpFriendRescueMenuSelection(void)
+{
+ s32 chosenAction;
+ if(sub_80144A4(&chosenAction) == 0)
+ {
+ switch(chosenAction)
+ {
+ case 5:
+ UpdateHelperPelipperState(2);
+ break;
+ case 7:
+ UpdateHelperPelipperState(6);
+ break;
+ case 8:
+ UpdateHelperPelipperState(8);
+ break;
+ case 6:
+ case 9:
+ gPostOfficeHelper->currMenuChoice = chosenAction;
+ UpdateHelperPelipperState(5);
+ break;
+ }
+ }
+}
+
+void sub_80318D0(void)
+{
+ s32 temp;
+ if(sub_80144A4(&temp) == 0)
+ {
+ UpdateHelperPelipperState(4);
+ }
+}
+
+void HandlePostOfficeHelpGoRescueMenuSelection(void)
+{
+ s32 chosenAction;
+ if(sub_80144A4(&chosenAction) == 0)
+ {
+ switch(chosenAction)
+ {
+ case 5:
+ UpdateHelperPelipperState(4);
+ break;
+ case 10:
+ case 11:
+ case 12:
+ case 13:
+ case 14:
+ gPostOfficeHelper->currMenuChoice = chosenAction;
+ UpdateHelperPelipperState(7);
+ break;
+ }
+ }
+}
+
+void sub_803192C(void)
+{
+ s32 temp;
+ if(sub_80144A4(&temp) == 0)
+ {
+ UpdateHelperPelipperState(6);
+ }
+}
+
+void HandlePostOfficeHelpGetHelpMenuSelection(void)
+{
+ s32 chosenAction;
+ if(sub_80144A4(&chosenAction) == 0)
+ {
+ switch(chosenAction)
+ {
+ case 5:
+ UpdateHelperPelipperState(4);
+ break;
+ case 15:
+ case 16:
+ case 17:
+ case 18:
+ gPostOfficeHelper->currMenuChoice = chosenAction;
+ UpdateHelperPelipperState(9);
+ break;
+ }
+ }
+}
+
+void sub_8031988(void)
+{
+ s32 temp;
+ if(sub_80144A4(&temp) == 0)
+ {
+ UpdateHelperPelipperState(8);
+ }
+}
+
+u32 sub_80319A4(u8 param_1,u8 param_2,int param_3)
+{
+
+ gUnknown_203B330 = MemoryAlloc(0x78,8);
+ gUnknown_203B330->unkC = param_1;
+ gUnknown_203B330->unkD = param_2;
+ sub_801317C(gUnknown_203B330);
+ gUnknown_203B330->unk10 = param_3;
+ gUnknown_203B330->unk14 = &gUnknown_203B330->unk18[param_3];
+ sub_8031A2C();
+ return 1;
+}
+
+u32 sub_80319F8(void)
+{
+ switch(sub_8012A64(&gUnknown_203B330->unk0, gUnknown_203B330->unk10))
+ {
+ case 2:
+ PlayMenuSoundEffect(1);
+ return 2;
+ case 1:
+ PlayMenuSoundEffect(0);
+ return 3;
+ default:
+ return 0;
+ }
+}
+
+void sub_8031A2C(void)
+{
+ sub_8031A84();
+ sub_8031AE8();
+}
+
+void sub_8031A3C(void)
+{
+ if(gUnknown_203B330 != NULL)
+ {
+ gUnknown_203B330->unk18[gUnknown_203B330->unk10] = gUnknown_80E1EFC;
+ ResetUnusedInputStruct();
+ sub_800641C(gUnknown_203B330->unk18, 1, 1);
+ MemoryFree(gUnknown_203B330);
+ gUnknown_203B330 = NULL;
+ }
+}
+
+void sub_8031A84(void)
+{
+ s32 iVar1;
+
+ sub_8006518(gUnknown_203B330->unk18);
+ gUnknown_203B330->unk18[gUnknown_203B330->unk10] = gUnknown_80E1F18;
+ if (gUnknown_203B330->unkC == 2) {
+ iVar1 = sub_80969D0(gUnknown_203B330->unkD);
+ if (iVar1 == 0) {
+ iVar1 = 1;
+ }
+ sub_8012D08(gUnknown_203B330->unk14,iVar1);
+ }
+ ResetUnusedInputStruct();
+ sub_800641C(gUnknown_203B330->unk18,1,1);
+}
diff --git a/src/save.c b/src/save.c
index 36eca52..bfeee9b 100644
--- a/src/save.c
+++ b/src/save.c
@@ -23,8 +23,8 @@ struct unk_struct
struct unk_203B188
{
- u32 unk0;
- u32 unk4;
+ u32 state;
+ u32 readStatus;
};
@@ -32,9 +32,9 @@ extern struct unk_203B188 *gUnknown_203B188;
struct unkStruct_203B18C
{
- u32 unk0;
+ u32 state;
s32 unk4;
- u32 unk8;
+ u32 saveStatus;
struct OpenedFile *faceFile;
u8 *faceData;
u16 unk14;
@@ -50,7 +50,7 @@ extern struct unkStruct_203B18C *gUnknown_203B18C;
struct unkStruct_203B190
{
- s32 unk0;
+ s32 state;
u8 *unk4;
u32 unk8;
u8 unkC;
@@ -59,20 +59,20 @@ extern struct unkStruct_203B190 *gUnknown_203B190;
struct unkStruct_203B194
{
- s32 unk0;
+ s32 state;
u8 *unk4;
u32 unk8;
u8 unkC;
u8 padding[0x10 - 0xD];
- u32 unk10;
+ u32 quickSaveStatus;
};
extern struct unkStruct_203B194 *gUnknown_203B194;
extern s32 gUnknown_202DE28;
extern u32 gUnknown_203B17C;
-extern u32 gUnknown_203B180;
-extern u32 *gUnknown_203B45C;
+extern char *gUnknown_203B180;
+extern u32 *gRecruitedPokemonRef;
extern u32 *gUnknown_203B460;
extern struct RescueTeamData *gRescueTeamInfoRef;
extern u8 *gFriendAreas;
@@ -116,8 +116,8 @@ extern u32 sub_808F2B0(void* a, s32 b);
extern u32 sub_8091C68(u8 *, u32);
extern u32 sub_8091D14(void* a, s32 b);
extern u32 sub_80921C4(u8 *, u32);
-extern u32 sub_80927A8(u8 *, u32);
-extern u32 sub_80927F4(void* a, s32 b);
+extern u32 SaveFriendAreas(u8 *, u32);
+extern u32 ReadSavedFriendAreas(void* a, s32 b);
extern u8 *sub_8095100(void);
extern u32 *sub_8095108(void);
extern u32 *sub_8095110(void);
@@ -133,8 +133,8 @@ extern void sub_80993E4();
extern void sub_800135C(void);
extern u32 *sub_808CE00(void);
extern void sub_808CE08(void);
-extern u32 *sub_80909D0(void);
-extern void sub_80909D8(void);
+extern u32 *GetMoneyItemsInfo(void);
+extern void InitializeMoneyItems(void);
extern u32 sub_8094990(void);
extern void sub_8094998(u8 r0);
extern u8 *sub_80950F8(void);
@@ -177,7 +177,7 @@ void sub_8011C40(s32 in)
gUnknown_202DE28 = in;
}
-u32 sub_8011C4C(void)
+char *sub_8011C4C(void)
{
return gUnknown_203B180;
}
@@ -287,7 +287,7 @@ bool8 sub_8011DA8(void)
return TRUE;
}
-u32 sub_8011DAC(u32 *a)
+u32 ReadSaveFromPak(u32 *a)
{
struct UnkStruct_sub_8011DAC *r5 = MemoryAlloc(sizeof(struct UnkStruct_sub_8011DAC), 5);
u8 *r4 = (u8*)r5->unk448;
@@ -353,8 +353,8 @@ u32 sub_8011DAC(u32 *a)
r7 = 3;
}
r4 += 0x10;
- r1 = sub_80927F4(r4, 0x8);
- if (r1 != r5->unk438) {
+ r1 = ReadSavedFriendAreas(r4, 0x8);
+ if (r1 != r5->savedFriendAreas) {
r7 = 3;
}
r4 += 0x8;
@@ -406,27 +406,25 @@ u32 sub_8011FA8(void)
return temp3;
}
-bool8 sub_8011FF8(void)
+bool8 IsSaveCorrupted(void)
{
- u32 temp2;
u32 temp;
- bool8 r6;
+ bool8 isCorrupted;
struct unk_struct *r5 = MemoryAlloc(sizeof(struct unk_struct), 5);
temp = 0x1F;
- r6 = FALSE;
- temp2 = ReadSaveSector(&temp, (u8 *)r5, sizeof(struct unk_struct));
- if(temp2 == 0)
+ isCorrupted = FALSE;
+ if(ReadSaveSector(&temp, (u8 *)r5, sizeof(struct unk_struct)) == 0)
{
if(r5->unk14 == 0x5071412)
{
- r6 = TRUE;
+ isCorrupted = TRUE;
}
}
MemoryFree(r5);
- return r6;
+ return isCorrupted;
}
-u32 sub_801203C(s32 *param_1,u32 param_2)
+u32 WriteSavetoPak(s32 *param_1,u32 param_2)
{
struct UnkStruct_sub_8011DAC *iVar1;
char *__src;
@@ -447,7 +445,7 @@ u32 sub_801203C(s32 *param_1,u32 param_2)
iVar1->unk420 = gUnknown_203B184->unk058;
}
iVar1->unk414 = 0x5071412;
- __src = (char *)sub_8011C4C();
+ __src = sub_8011C4C();
strncpy(iVar1->unk404,__src,16);
if (gUnknown_203B184 == NULL) {
sub_8002700(&iVar1->unk004);
@@ -464,7 +462,7 @@ u32 sub_801203C(s32 *param_1,u32 param_2)
array_ptr += 0x1D8;
iVar1->unk434 = sub_80921C4(array_ptr,0x10);
array_ptr += 0x10;
- iVar1->unk438 = sub_80927A8(array_ptr,8);
+ iVar1->savedFriendAreas = SaveFriendAreas(array_ptr,8);
array_ptr += 8;
iVar1->unk43C = sub_8097D60(array_ptr,0x100);
array_ptr += 0x100;
@@ -480,7 +478,8 @@ u32 sub_801203C(s32 *param_1,u32 param_2)
return r5;
if (r4 != 0)
return r4;
- return r5;
+
+ return 0; // Success
}
@@ -492,7 +491,7 @@ s32 sub_80121D4(s32 *a, u8 *src, s32 size)
u32 sub_80121E0(u32 r0)
{
u32 temp;
- u32 *temp2;
+ char *temp2;
u32 temp3;
struct unk_struct *r4 = MemoryAlloc(sizeof(struct unk_struct), 5);
temp = 0x1F;
@@ -501,8 +500,8 @@ u32 sub_80121E0(u32 r0)
r4->unk1C = *sub_809769C();
r4->unk14 = 0x5071412;
- temp2 = (u32 *)sub_8011C4C();
- strncpy((u8 *)r4 + 4, (u8*)temp2, 16);
+ temp2 = sub_8011C4C();
+ strncpy((u8 *)r4 + 4, temp2, 16);
sub_80958E4((u8 *)r4 + 32, 0);
temp3 = WriteSaveSector(&temp, (u8 *)r4, sizeof(struct unk_struct));
MemoryFree(r4);
@@ -543,7 +542,6 @@ void sub_80122A8(void)
sub_80122F4();
sub_8012300();
sub_8012240();
-
}
void nullsub_33(void)
@@ -572,7 +570,7 @@ void sub_8012300(void)
{
InitializeFriendAreas();
sub_808CE08();
- sub_80909D8();
+ InitializeMoneyItems();
InitializeResuceTeamInfo();
sub_80972F4();
sub_8095118();
@@ -595,7 +593,7 @@ void sub_8012334(struct UnkStruct_203B184 *r0)
if(r0 != NULL)
{
gUnknown_203B460 = r0->unk0;
- gUnknown_203B45C = r0->unk4;
+ gRecruitedPokemonRef = r0->unk4;
gUnknown_203B480 = r0->unk8;
gUnknown_203B484 = r0->unkC;
gUnknown_203B488 = r0->unk10;
@@ -609,8 +607,8 @@ void sub_8012334(struct UnkStruct_203B184 *r0)
gPlayTimeRef = r0->playTime;
return;
}
- gUnknown_203B460 = sub_80909D0();
- gUnknown_203B45C = sub_808CE00();
+ gUnknown_203B460 = GetMoneyItemsInfo();
+ gRecruitedPokemonRef = sub_808CE00();
gUnknown_203B480 = sub_80950F8();
gUnknown_203B484 = sub_8095100();
gUnknown_203B488 = sub_8095108();
@@ -628,7 +626,7 @@ void sub_8012334(struct UnkStruct_203B184 *r0)
void sub_8012468(void)
{
gUnknown_203B188 = MemoryAlloc(sizeof(struct unk_203B188), 5);
- gUnknown_203B188->unk0 = 1;
+ gUnknown_203B188->state = 1;
}
@@ -636,41 +634,41 @@ u8 sub_8012484(void)
{
u32 temp;
u32 temp2;
- switch(gUnknown_203B188->unk0)
+ switch(gUnknown_203B188->state)
{
case 0:
- gUnknown_203B188->unk0 = 1;
+ gUnknown_203B188->state = 1;
break;
case 1:
temp = 0;
- gUnknown_203B188->unk4 = sub_8011DAC(&temp);
- gUnknown_203B188->unk0 = 2;
+ gUnknown_203B188->readStatus = ReadSaveFromPak(&temp);
+ gUnknown_203B188->state = 2;
break;
case 2:
- if(gUnknown_203B188->unk4 != 0)
+ if(gUnknown_203B188->readStatus != 0)
{
- if(sub_8011FF8())
+ if(IsSaveCorrupted())
{
sub_80141B4(&gSaveCorrupted, 0, 0, 0x301);
- gUnknown_203B188->unk0 = 3;
+ gUnknown_203B188->state = 3;
}
else
{
- gUnknown_203B188->unk0 = 4;
+ gUnknown_203B188->state = 4;
}
}
else
{
- gUnknown_203B188->unk0 = 6;
+ gUnknown_203B188->state = 6;
}
break;
case 3:
if(sub_80144A4(&temp2) == 0)
- gUnknown_203B188->unk0 = 4;
+ gUnknown_203B188->state = 4;
break;
case 4:
sub_8012298();
- gUnknown_203B188->unk0 = 6;
+ gUnknown_203B188->state = 6;
case 5:
break;
case 6:
@@ -688,11 +686,11 @@ void sub_8012558(void)
}
}
-#ifdef NONMATCHING
void sub_8012574(s16 PokemonID)
{
struct OpenedFile *file;
s32 id_s32;
+ u8 *preload_face;
id_s32 = PokemonID; // had to cast for asr shift
@@ -702,7 +700,7 @@ void sub_8012574(s16 PokemonID)
gUnknown_203B18C->faceFile = NULL;
gUnknown_203B18C->faceData = NULL;
if (PokemonID != 0) {
- file = GetDialogueSpriteDataPtr(id_s32);
+ file = GetDialogueSpriteDataPtr(PokemonID);
gUnknown_203B18C->faceFile = file;
gUnknown_203B18C->faceData = file->data;
gUnknown_203B18C->unk18 = 0;
@@ -712,85 +710,14 @@ void sub_8012574(s16 PokemonID)
gUnknown_203B18C->unk16 = 8;
}
if (gUnknown_203B18C->faceFile != 0) {
- // LDR r0 and R2 statements get flipped... basically matches
- sub_80141B4(&gSavingAdventure,0,(u8 *)&gUnknown_203B18C->faceFile,0x20);
+ preload_face = (u8 *)&gUnknown_203B18C->faceFile;
+ sub_80141B4(&gSavingAdventure,0,preload_face,0x20);
}
else {
sub_80141B4(&gSavingAdventure,0,0,0x20);
}
- gUnknown_203B18C->unk0 = 3;
+ gUnknown_203B18C->state = 3;
}
-#else
-NAKED
-void sub_8012574(s16 PokemonID)
-{
- asm_unified("\tpush {r4-r6,lr}\n"
- "\tlsls r0, 16\n"
- "\tasrs r4, r0, 16\n"
- "\tbl sub_80993D8\n"
- "\tldr r5, _080125D4\n"
- "\tmovs r0, 0x20\n"
- "\tmovs r1, 0x5\n"
- "\tbl MemoryAlloc\n"
- "\tstr r0, [r5]\n"
- "\tmovs r6, 0\n"
- "\tmovs r1, 0\n"
- "\tstrh r4, [r0, 0x1C]\n"
- "\tstr r1, [r0, 0xC]\n"
- "\tstr r1, [r0, 0x10]\n"
- "\tcmp r4, 0\n"
- "\tbeq _080125BA\n"
- "\tadds r0, r4, 0\n"
- "\tbl GetDialogueSpriteDataPtr\n"
- "\tldr r1, [r5]\n"
- "\tstr r0, [r1, 0xC]\n"
- "\tldr r0, [r0, 0x4]\n"
- "\tstr r0, [r1, 0x10]\n"
- "\tstrb r6, [r1, 0x18]\n"
- "\tldr r0, [r5]\n"
- "\tstrb r6, [r0, 0x19]\n"
- "\tldr r0, [r5]\n"
- "\tstrb r6, [r0, 0x1A]\n"
- "\tldr r1, [r5]\n"
- "\tmovs r0, 0x2\n"
- "\tstrh r0, [r1, 0x14]\n"
- "\tmovs r0, 0x8\n"
- "\tstrh r0, [r1, 0x16]\n"
-"_080125BA:\n"
- "\tldr r1, [r5]\n"
- "\tldr r0, [r1, 0xC]\n"
- "\tcmp r0, 0\n"
- "\tbeq _080125DC\n"
- "\tadds r2, r1, 0\n"
- "\tadds r2, 0xC\n"
- "\tldr r0, _080125D8\n"
- "\tmovs r1, 0\n"
- "\tmovs r3, 0x20\n"
- "\tbl sub_80141B4\n"
- "\tb _080125E8\n"
- "\t.align 2, 0\n"
-"_080125D4: .4byte gUnknown_203B18C\n"
-"_080125D8: .4byte gSavingAdventure\n"
-"_080125DC:\n"
- "\tldr r0, _080125F8\n"
- "\tmovs r1, 0\n"
- "\tmovs r2, 0\n"
- "\tmovs r3, 0x20\n"
- "\tbl sub_80141B4\n"
-"_080125E8:\n"
- "\tldr r0, _080125FC\n"
- "\tldr r1, [r0]\n"
- "\tmovs r0, 0x3\n"
- "\tstr r0, [r1]\n"
- "\tpop {r4-r6}\n"
- "\tpop {r0}\n"
- "\tbx r0\n"
- "\t.align 2, 0\n"
-"_080125F8: .4byte gSavingAdventure\n"
-"_080125FC: .4byte gUnknown_203B18C");
-
-}
-#endif
bool8 sub_8012600(void)
{
@@ -802,53 +729,53 @@ bool8 sub_8012600(void)
if (gUnknown_203B18C->faceFile != 0) {
faceFile = &gUnknown_203B18C->faceFile;
}
- switch(gUnknown_203B18C->unk0)
+ switch(gUnknown_203B18C->state)
{
case 0:
- gUnknown_203B18C->unk0 = 7;
+ gUnknown_203B18C->state = 7;
break;
case 1:
gUnknown_203B18C->unk4++;
if (8 < gUnknown_203B18C->unk4) {
sub_80141B4(&gWriteGamePak, 0, 0, 0x20);
- gUnknown_203B18C->unk0 = 3;
+ gUnknown_203B18C->state = 3;
}
break;
case 2:
break;
case 3:
- gUnknown_203B18C->unk0 = 4;
+ gUnknown_203B18C->state = 4;
break;
case 4:
local_14 = 0;
sub_80140DC();
- gUnknown_203B18C->unk8 = sub_801203C(&local_14, sub_8011C1C());
- switch(gUnknown_203B18C->unk8)
+ gUnknown_203B18C->saveStatus = WriteSavetoPak(&local_14, sub_8011C1C());
+ switch(gUnknown_203B18C->saveStatus)
{
- case 0:
+ case SAVE_COMPLETED:
if(gUnknown_203B18C->faceFile != NULL)
sub_80141B4(&gSaveCompleted, 0, (u8 *)faceFile, 0x101);
else
sub_80141B4(&gSaveCompleted, 0, (u8 *)faceFile, 0x101);
- gUnknown_203B18C->unk0 = 5;
+ gUnknown_203B18C->state = 5;
break;
- case 1:
+ case SAVE_NOT_WRTTEN:
sub_80141B4(&gSaveNotWritten, 0, 0, 0);
- gUnknown_203B18C->unk0 = 6;
+ gUnknown_203B18C->state = 6;
break;
default:
if(gUnknown_203B18C->faceFile != NULL)
sub_80141B4(&gSaveFailed, 0, (u8 *)faceFile, 0x101);
else
sub_80141B4(&gSaveFailed, 0, (u8 *)faceFile, 0x101);
- gUnknown_203B18C->unk0 = 5;
+ gUnknown_203B18C->state = 5;
break;
}
sub_8014114();
break;
case 5:
if (sub_80144A4(&other_stack) == 0)
- gUnknown_203B18C->unk0 = 7;
+ gUnknown_203B18C->state = 7;
break;
case 6:
break;
@@ -860,7 +787,7 @@ bool8 sub_8012600(void)
u32 sub_8012744(void)
{
- return gUnknown_203B18C->unk8;
+ return gUnknown_203B18C->saveStatus;
}
void sub_8012750(void)
@@ -881,7 +808,7 @@ void sub_801277C(u8 *r0, u32 r1)
gUnknown_203B190->unk4 = r0;
gUnknown_203B190->unk8 = r1;
gUnknown_203B190->unkC = 0;
- gUnknown_203B190->unk0 = 1;
+ gUnknown_203B190->state = 1;
}
u32 sub_80127A8(void)
@@ -889,27 +816,27 @@ u32 sub_80127A8(void)
u32 stack_1;
u32 stack_2;
- switch(gUnknown_203B190->unk0)
+ switch(gUnknown_203B190->state)
{
case 0:
- gUnknown_203B190->unk0 = 1;
+ gUnknown_203B190->state = 1;
break;
case 1:
stack_1 = 16;
if(sub_8011F9C(&stack_1, gUnknown_203B190->unk4, gUnknown_203B190->unk8) == 0)
{
gUnknown_203B190->unkC = 1;
- gUnknown_203B190->unk0 = 3;
+ gUnknown_203B190->state = 3;
}
else
{
sub_80141B4(&gUnknown_80D44C8, 0, 0, 0x301);
- gUnknown_203B190->unk0 = 2;
+ gUnknown_203B190->state = 2;
}
break;
case 2:
if(sub_80144A4(&stack_2) == 0)
- gUnknown_203B190->unk0 = 3;
+ gUnknown_203B190->state = 3;
break;
case 3:
return 0;
@@ -938,7 +865,7 @@ void sub_8012850(u8 *r0, u32 r1, u8 r2)
gUnknown_203B194->unk4 = r0;
gUnknown_203B194->unk8 = r1;
gUnknown_203B194->unkC = r2;
- gUnknown_203B194->unk0 = 0;
+ gUnknown_203B194->state = 0;
if(gUnknown_203B194->unkC != 0)
sub_80141B4(&gUnknown_80D45AC, 0, 0, 0x20);
else
@@ -949,51 +876,51 @@ u32 sub_80128B0(void)
{
u32 stack_1;
u32 stack_2;
- switch(gUnknown_203B194->unk0)
+ switch(gUnknown_203B194->state)
{
case 0:
- gUnknown_203B194->unk0 = 1;
+ gUnknown_203B194->state = 1;
break;
case 1:
sub_80140DC();
stack_1 = 16;
- gUnknown_203B194->unk10 = sub_80121D4(&stack_1, gUnknown_203B194->unk4, gUnknown_203B194->unk8);
- gUnknown_203B194->unk0 = 2;
+ gUnknown_203B194->quickSaveStatus = sub_80121D4(&stack_1, gUnknown_203B194->unk4, gUnknown_203B194->unk8);
+ gUnknown_203B194->state = 2;
return 1;
case 2:
stack_1 = 0;
- if(gUnknown_203B194->unk10 == 0)
- gUnknown_203B194->unk10 = sub_801203C(&stack_1, 2);
- switch(gUnknown_203B194->unk10)
+ if(gUnknown_203B194->quickSaveStatus == 0)
+ gUnknown_203B194->quickSaveStatus = WriteSavetoPak(&stack_1, 2);
+ switch(gUnknown_203B194->quickSaveStatus)
{
- case 0:
+ case SAVE_COMPLETED:
sub_80121E0(0xf1207);
if(gUnknown_203B194->unkC != 0)
sub_80141B4(&gUnknown_80D45F4, 0, 0, 0x301);
else
sub_80141B4(&gUnknown_80D4668, 0, 0, 0x301);
- gUnknown_203B194->unk0 = 3;
+ gUnknown_203B194->state = 3;
break;
- case 1:
+ case SAVE_NOT_WRTTEN:
sub_80141B4(&gSaveNotWritten2, 0, 0, 0);
- gUnknown_203B194->unk0 = 4;
+ gUnknown_203B194->state = 4;
break;
default:
sub_80121E0(0xf1209);
sub_80141B4(&gSaveFailed2, 0, 0, 0x301);
- gUnknown_203B194->unk0 = 3;
+ gUnknown_203B194->state = 3;
break;
}
sub_8014114();
break;
case 3:
if(sub_80144A4(&stack_2) == 0)
- gUnknown_203B194->unk0 = 5;
+ gUnknown_203B194->state = 5;
break;
case 4:
break;
case 5:
- if(gUnknown_203B194->unk10 == 0)
+ if(gUnknown_203B194->quickSaveStatus == SAVE_COMPLETED)
return 2;
else
return 3;
diff --git a/src/text.c b/src/text.c
index 6ef7f5e..2c74e53 100644
--- a/src/text.c
+++ b/src/text.c
@@ -2,23 +2,7 @@
#include "file_system.h"
#include "code_800558C.h"
#include "code_800B540.h"
-
-struct UnkTextStruct1 {
- u8 fill00[4];
- u16 unk04;
- u8 fill06[2];
- u16 unk08;
- u8 fill04[0x3c];
- u8 unk46;
-};
-
-struct UnkTextStruct2 {
- u8 fill00[0x0c];
- s16 unk0c;
- u8 fill0e[2];
- s16 unk10;
- u8 fill12[0x06];
-};
+#include "text.h"
extern char gUnknown_3000E94[];
@@ -38,13 +22,6 @@ EWRAM_DATA u32 gUnknown_202B030;
EWRAM_DATA u8 gUnknown_202B034;
EWRAM_DATA u16 gUnknown_202B038[2][32][32];
-u32 xxx_update_some_bg_tiles(u32 a0);
-void sub_8006438(const struct UnkTextStruct2 *a0, u8 a1, u8 a2, u32 *a3);
-void sub_8006554(void *a0, void *a1, void *a2, void *a3, u32 a4, const struct UnkTextStruct2 *a5, u8 a6, u32 a7, u32 *a8, u32 a9);
-void sub_800898C(void);
-void sub_80089AC(const struct UnkTextStruct2 *a0, void *a1);
-void sub_8009388(void);
-
extern const struct UnkTextStruct2 gUnknown_80B857C[4];
extern const char gKanjiA_file_string[];
extern const char gKanjiB_file_string[];
@@ -158,7 +135,7 @@ void sub_80063D8(int a0)
gUnknown_202B030 = retval;
}
-void sub_800641C(void *a0, u8 a1, u8 a2)
+void sub_800641C(struct UnkTextStruct2 *a0, u8 a1, u8 a2)
{
u32 r3 = 0;
sub_8006438(a0, a1, a2, &r3);
diff --git a/src/text_util.c b/src/text_util.c
index 1de233c..1c3042c 100644
--- a/src/text_util.c
+++ b/src/text_util.c
@@ -179,7 +179,7 @@ u8 sub_8092364(u8 index)
return gUnknown_810AC6A[index];
}
-void sub_8092374(char *buffer, u8 index)
+void CopyAbilityNametoBuffer(char *buffer, u8 index)
{
strncpy(buffer, gAbilityNames[index], 0x50);
}
diff --git a/src/trade_items_menu.c b/src/trade_items_menu.c
index 2582931..5ca115a 100644
--- a/src/trade_items_menu.c
+++ b/src/trade_items_menu.c
@@ -1,17 +1,11 @@
#include "global.h"
#include "input.h"
#include "trade_items_menu.h"
+#include "gUnknown_203B460.h"
extern struct TradeItemsMenu *gTradeItemsMenu;
-struct unkStruct_203B460
-{
- u8 unk0[0x50];
- u16 unk50[10];
-};
-
-
-extern struct unkStruct_203B460 *gUnknown_203B460; // TODO unify this
+extern struct unkStruct_203B460 *gUnknown_203B460;
extern u32 gUnknown_202DE30;
extern u32 gUnknown_202DE58;
extern struct unkData gUnknown_80E6174;
@@ -63,7 +57,7 @@ extern void sub_801CB5C(u32);
extern void sub_8035CF4(u32 *, u32, u32);
extern u32 sub_8013BBC(u32 *);
void sub_8036F30();
-extern void sub_80369D0();
+extern void TradeItem_AddItem();
extern void sub_8012574(u32);
extern void sub_80141B4(u32 *, u32, u32, u32);
@@ -86,13 +80,13 @@ extern void sub_801C8C4(u32, u32, s32 *, u32);
void SetTradeItemMenu(u32);
void PrintTradeItemsLinkError(u32);
-void sub_803652C();
+void TradeItem_MainMenu();
void sub_8036590();
void sub_80365AC();
void sub_8036674();
void sub_8036788();
void sub_8036728();
-extern void sub_8036830();
+void TradeItem_SendItemConfirm();
void sub_803689C();
void sub_80368D4();
void sub_8036934();
@@ -147,7 +141,7 @@ u32 UpdateTradeItemsMenu(void)
switch(gTradeItemsMenu->currMenu) {
case TRADE_ITEMS_MAIN_MENU:
- sub_803652C();
+ TradeItem_MainMenu();
break;
case TRADE_ITEMS_SEND_ITEM:
sub_8036590();
@@ -165,7 +159,7 @@ u32 UpdateTradeItemsMenu(void)
sub_8036788();
break;
case TRADE_ITEMS_SEND_ITEM_CONFIRM:
- sub_8036830();
+ TradeItem_SendItemConfirm();
break;
case TRADE_ITEMS_RECEIVE_ITEM:
sub_803689C();
@@ -206,7 +200,7 @@ u32 UpdateTradeItemsMenu(void)
return 0;
}
-void sub_803652C(void)
+void TradeItem_MainMenu(void)
{
s32 menuAction;
@@ -243,8 +237,8 @@ void sub_8036590(void)
void sub_80365AC(void)
{
- gTradeItemsMenu->unk25E = 0;
- gTradeItemsMenu->unk25D = 1;
+ gTradeItemsMenu->chosenItem = 0;
+ gTradeItemsMenu->chosenNum = 1;
gTradeItemsMenu->unk25C = 0;
switch(sub_801CA08(1)){
case 2:
@@ -254,14 +248,14 @@ void sub_80365AC(void)
break;
case 3:
// Pop up menu with Confirm, Info, Cancel
- gTradeItemsMenu->unk25E = sub_801CB24();
- gTradeItemsMenu->unk25D = 1;
+ gTradeItemsMenu->chosenItem = sub_801CB24();
+ gTradeItemsMenu->chosenNum = 1;
SetTradeItemMenu(TRADE_ITEMS_SEND_ITEM_POPUP_MENU);
break;
case 4:
gTradeItemsMenu->unk4 = 2;
- gTradeItemsMenu->unk25E = sub_801CB24();
- gTradeItemsMenu->unk25D = 1;
+ gTradeItemsMenu->chosenItem = sub_801CB24();
+ gTradeItemsMenu->chosenNum = 1;
sub_8006518(&gTradeItemsMenu->unk1E4);
ResetUnusedInputStruct();
sub_800641C(0,1,1);
@@ -329,7 +323,7 @@ void sub_8036788(void)
{
sub_8012FD8(&gTradeItemsMenu->unk134);
sub_801CA08(0);
- switch(sub_8013BBC(&gTradeItemsMenu->unk14)){
+ switch(sub_8013BBC(&gTradeItemsMenu->numItemsToSend)){
case 1:
// When you change the #
sub_801CCD8();
@@ -345,9 +339,9 @@ void sub_8036788(void)
break;
case 3:
// Confirm # of item
- gTradeItemsMenu->unk25D = gTradeItemsMenu->unk14;
- gTradeItemsMenu->unk254.unk0 = gTradeItemsMenu->unk25E;
- gTradeItemsMenu->unk254.unk4 = gTradeItemsMenu->unk14;
+ gTradeItemsMenu->chosenNum = gTradeItemsMenu->numItemsToSend;
+ gTradeItemsMenu->unk254.itemIndex = gTradeItemsMenu->chosenItem;
+ gTradeItemsMenu->unk254.numItems = gTradeItemsMenu->numItemsToSend;
sub_801CBB8();
SetTradeItemMenu(TRADE_ITEMS_SEND_ITEM_CONFIRM);
break;
@@ -356,7 +350,7 @@ void sub_8036788(void)
}
}
-void sub_8036830(void)
+void TradeItem_SendItemConfirm(void)
{
int menuAction;
u16 load;
@@ -367,9 +361,9 @@ void sub_8036830(void)
case 5:
sub_801CBB8();
// Used temp var to get correct statements
- load = gUnknown_203B460->unk50[gTradeItemsMenu->unk25E];
- load -= gTradeItemsMenu->unk14;
- gUnknown_203B460->unk50[gTradeItemsMenu->unk25E] = load;
+ load = gUnknown_203B460->unk50[gTradeItemsMenu->chosenItem];
+ load -= gTradeItemsMenu->numItemsToSend;
+ gUnknown_203B460->unk50[gTradeItemsMenu->chosenItem] = load;
SetTradeItemMenu(TRADE_ITEMS_PREPARE_TRADE_SAVING);
sub_8012574(0);
break;
@@ -409,9 +403,9 @@ void sub_80368D4(void)
break;
case 7:
case 0:
- if ((gTradeItemsMenu->unk254.unk0 != 0) && (gTradeItemsMenu->unk254.unk4 != 0))
+ if ((gTradeItemsMenu->unk254.itemIndex != 0) && (gTradeItemsMenu->unk254.numItems != 0))
{
- sub_80369D0();
+ TradeItem_AddItem();
SetTradeItemMenu(0x11);
sub_8012574(0);
}
@@ -447,10 +441,10 @@ void sub_8036950(void)
}
}
else {
- if (((gTradeItemsMenu->itemMode == TRADE_ITEMS_SEND_ITEM_MODE) && (gTradeItemsMenu->unk254.unk0 != 0))
- && (gTradeItemsMenu->unk254.unk4 != 0)) {
+ if (((gTradeItemsMenu->itemMode == TRADE_ITEMS_SEND_ITEM_MODE) && (gTradeItemsMenu->unk254.itemIndex != 0))
+ && (gTradeItemsMenu->unk254.numItems != 0)) {
// Link Failure
- sub_80369D0(); // Add back the item
+ TradeItem_AddItem(); // Add back the item
SetTradeItemMenu(0xb);
sub_8012574(0);
}
@@ -462,13 +456,13 @@ void sub_8036950(void)
}
}
-void sub_80369D0(void)
+void TradeItem_AddItem(void)
{
// Use temp var to get correct statements
u16 load;
- load = gUnknown_203B460->unk50[gTradeItemsMenu->unk254.unk0];
- load += gTradeItemsMenu->unk254.unk4;
- gUnknown_203B460->unk50[gTradeItemsMenu->unk254.unk0] = load;
+ load = gUnknown_203B460->unk50[gTradeItemsMenu->unk254.itemIndex];
+ load += gTradeItemsMenu->unk254.numItems;
+ gUnknown_203B460->unk50[gTradeItemsMenu->unk254.itemIndex] = load;
}
void sub_80369FC(void)
@@ -609,8 +603,8 @@ void sub_8036B28(void)
sub_8036F74();
break;
case 6:
- gUnknown_202DE30 = gTradeItemsMenu->unk14;
- sub_8090DC4(&gUnknown_202DE58,gTradeItemsMenu->unk25E,0);
+ gUnknown_202DE30 = gTradeItemsMenu->numItemsToSend;
+ sub_8090DC4(&gUnknown_202DE58,gTradeItemsMenu->chosenItem,0);
sub_8014248(&gUnknown_80E61E4,0,5, &gUnknown_80E6154,0,4,0,0,0x101);
break;
case 7:
@@ -630,13 +624,13 @@ void sub_8036B28(void)
// Needs a mov r2, 0
// and mov r3, 0
temp = &gTradeItemsMenu->unk244;
- temp->unk0 = 0;
- temp->unk4 = 0;
+ temp->itemIndex = 0;
+ temp->numItems = 0;
temp += 1; // move to unk24C
- temp->unk0 = 0;
- temp->unk4 = 0;
+ temp->itemIndex = 0;
+ temp->numItems = 0;
// Regs are fixed back up after
sub_8011830();
@@ -648,9 +642,9 @@ void sub_8036B28(void)
case TRADE_ITEMS_SEND_ITEM_MODE:
temp = &gTradeItemsMenu->unk244;
temp2 = &gTradeItemsMenu->unk254;
- load_2 = temp2->unk4;
- temp->unk0 = temp2->unk0;
- temp->unk4 = load_2;
+ load_2 = temp2->numItems;
+ temp->itemIndex = temp2->itemIndex;
+ temp->numItems = load_2;
case TRADE_ITEMS_RECEIVE_ITEM_MODE:
gTradeItemsMenu->linkStatus = sub_8037D64(gTradeItemsMenu->itemMode,&gTradeItemsMenu->unk244,&gTradeItemsMenu->unk24C);
default:
@@ -664,21 +658,21 @@ void sub_8036B28(void)
xxx_call_start_bg_music();
break;
case 0xe:
- if (gTradeItemsMenu->unk24C.unk4 == 0) {
- gUnknown_202DE30 = gTradeItemsMenu->unk244.unk4;
+ if (gTradeItemsMenu->unk24C.numItems == 0) {
+ gUnknown_202DE30 = gTradeItemsMenu->unk244.numItems;
// Cast is needed
- sub_8090DC4(&gUnknown_202DE58,(u8)gTradeItemsMenu->unk244.unk0,0);
+ sub_8090DC4(&gUnknown_202DE58,(u8)gTradeItemsMenu->unk244.itemIndex,0);
}
else {
- gUnknown_202DE30 = gTradeItemsMenu->unk24C.unk4;
+ gUnknown_202DE30 = gTradeItemsMenu->unk24C.numItems;
// Cast is needed
- sub_8090DC4(&gUnknown_202DE58,(u8)gTradeItemsMenu->unk24C.unk0,0);
+ sub_8090DC4(&gUnknown_202DE58,(u8)gTradeItemsMenu->unk24C.itemIndex,0);
}
sub_80141B4(&gUnknown_80E6314,0,0,0x101);
break;
case 0xd:
- gUnknown_202DE30 = gTradeItemsMenu->unk14;
- sub_8090DC4(&gUnknown_202DE58,gTradeItemsMenu->unk25E,0);
+ gUnknown_202DE30 = gTradeItemsMenu->numItemsToSend;
+ sub_8090DC4(&gUnknown_202DE58,gTradeItemsMenu->chosenItem,0);
sub_80141B4(&gUnknown_80E6358,0,0,0x101);
break;
case 0xB:
@@ -1084,7 +1078,7 @@ void sub_8036ECC(u32 index, u32 r1)
gTradeItemsMenu->unk34 = 0x12;
gTradeItemsMenu->unk28 = index;
gTradeItemsMenu->unk2C = &gTradeItemsMenu->unk184[index];
- sub_8013AA0(&gTradeItemsMenu->unk14);
+ sub_8013AA0(&gTradeItemsMenu->numItemsToSend);
gTradeItemsMenu->unk184[index] = gUnknown_80E6174;
ResetUnusedInputStruct();
sub_800641C((u32 *)&gTradeItemsMenu->unk184, 1, 1);
@@ -1099,14 +1093,14 @@ void sub_8036F30(void)
sub_80073B8(uVar1);
// Draw "How many?"
xxx_call_draw_string(2, 0, &gTradeItemsHowManyText, uVar1, 0);
- sub_8013C68(&gTradeItemsMenu->unk14);
+ sub_8013C68(&gTradeItemsMenu->numItemsToSend);
sub_80073E0(uVar1);
}
void sub_8036F74(void)
{
sub_8006518((u32 *)&gTradeItemsMenu->unk184);
- sub_8036ECC(2, gUnknown_203B460->unk50[gTradeItemsMenu->unk25E]);
+ sub_8036ECC(2, gUnknown_203B460->unk50[gTradeItemsMenu->chosenItem]);
sub_801CCD8();
sub_8035CF4(&gTradeItemsMenu->unk44, 3, 0);
sub_8036F30();
diff --git a/src/unk_menu_203B360.c b/src/unk_menu_203B360.c
index 220b737..811ce38 100644
--- a/src/unk_menu_203B360.c
+++ b/src/unk_menu_203B360.c
@@ -26,8 +26,8 @@ struct unkStruct_203B360
extern struct unkStruct_203B360 *gUnknown_203B360;
extern struct unkData gUnknown_80E6E7C;
-extern u32 gUnknown_80E6E94;
-extern u32 gUnknown_80E6EAC;
+extern struct unkData gUnknown_80E6E94;
+extern struct MenuItem gUnknown_80E6EAC[];
extern void *MemoryAlloc(u32, u32);
extern void MemoryFill8(u8 *, u8, u32);
@@ -35,7 +35,7 @@ extern void MemoryFree(void *);
extern void sub_8038440();
extern void sub_8035CF4(u32 *, u32, u32);
extern void sub_800641C(void *, u32, u32);
-extern void SetMenuItems(void *, void *, u32, u32 *, u32 *, u32, u32, u32);
+extern void SetMenuItems(void *, struct unkData *, u32, struct unkData *, struct MenuItem *, u32, u32, u32);
extern u8 sub_80130A8(u32 *);
extern void sub_8013114(u32 *, u32 *);
extern void sub_80384D0();
@@ -57,7 +57,7 @@ void sub_80382E4(s32 param_1)
// Caution!
// The storage space is empty!
// Please check again.
- SetMenuItems(&gUnknown_203B360->unk8,gUnknown_203B360->unk148,0,&gUnknown_80E6E94,&gUnknown_80E6EAC,
+ SetMenuItems(&gUnknown_203B360->unk8,gUnknown_203B360->unk148,0,&gUnknown_80E6E94,gUnknown_80E6EAC,
0,4,0);
}
sub_8035CF4(&gUnknown_203B360->unk8,0,1);
diff --git a/src/unk_menu_203B364.c b/src/unk_menu_203B364.c
index f6f6766..baba184 100644
--- a/src/unk_menu_203B364.c
+++ b/src/unk_menu_203B364.c
@@ -1,5 +1,7 @@
#include "global.h"
#include "input.h"
+#include "menu.h"
+#include "main_menu.h"
struct unkData
{
@@ -27,9 +29,9 @@ struct unkStruct_203B360
extern struct unkStruct_203B360 *gUnknown_203B364;
extern struct unkData gUnknown_80E6F20;
-extern u32 gUnknown_80E6F38;
-extern u32 gUnknown_80E7090;
-extern u32 gUnknown_80E6F50;
+extern struct unkData gUnknown_80E6F38;
+extern struct MenuItem gUnknown_80E7090[];
+extern struct MenuItem gUnknown_80E6F50[];
extern void *MemoryAlloc(u32, u32);
extern void MemoryFill8(u8 *, u8, u32);
@@ -37,13 +39,13 @@ extern void MemoryFree(void *);
extern void sub_8038440();
extern void sub_8035CF4(u32 *, u32, u32);
extern void sub_800641C(void *, u32, u32);
-extern void SetMenuItems(void *, void *, u32, u32 *, u32 *, u32, u32, u32);
+extern void SetMenuItems(void *, struct unkData *, u32, struct unkData *, struct MenuItem *, u32, u32, u32);
extern u8 sub_80130A8(u32 *);
extern void sub_8013114(u32 *, u32 *);
extern void sub_80384D0();
extern void sub_8038830();
-void sub_803850C(s32 param_1)
+void CreateSaveMenu(s32 currMenu)
{
s32 iVar4;
@@ -57,29 +59,29 @@ void sub_803850C(s32 param_1)
ResetUnusedInputStruct();
sub_800641C(gUnknown_203B364->unk148,1,1);
- if (param_1 == 0x2e) {
+ if (currMenu == MENU_DELETE_SAVE) {
// Beware, Deleting your Adventure
- SetMenuItems(&gUnknown_203B364->unk8,gUnknown_203B364->unk148,0,&gUnknown_80E6F38,&gUnknown_80E7090,
+ SetMenuItems(&gUnknown_203B364->unk8,gUnknown_203B364->unk148,0,&gUnknown_80E6F38,gUnknown_80E7090,
0,6,0);
}
else {
// Saving your Adventure
- SetMenuItems(&gUnknown_203B364->unk8,gUnknown_203B364->unk148,0,&gUnknown_80E6F38,&gUnknown_80E6F50,
+ SetMenuItems(&gUnknown_203B364->unk8,gUnknown_203B364->unk148,0,&gUnknown_80E6F38,gUnknown_80E6F50,
0,6,0);
}
sub_8035CF4(&gUnknown_203B364->unk8,0,1);
gUnknown_203B364->unk4 = 0;
- gUnknown_203B364->currMenu = param_1;
+ gUnknown_203B364->currMenu = currMenu;
sub_8038830();
}
-void sub_8038604(void)
+void CleanSaveMenu(void)
{
ResetUnusedInputStruct();
sub_800641C(0,1,1);
- if (gUnknown_203B364 != 0) {
+ if (gUnknown_203B364 != NULL) {
MemoryFree(gUnknown_203B364);
- gUnknown_203B364 = 0;
+ gUnknown_203B364 = NULL;
}
}
diff --git a/src/wonder_mail.c b/src/wonder_mail.c
index 0947f24..6f93048 100644
--- a/src/wonder_mail.c
+++ b/src/wonder_mail.c
@@ -110,8 +110,6 @@ extern u8 sub_8024108(u32);
extern u32 sub_8031DCC();
extern void sub_8031E10();
extern void sub_8031E00();
-void sub_808D8E0(u8 *, u32);
-extern char* GetMonSpecies(u32);
extern s32 sub_80953D4(u32);
extern void sub_802B2BC(u32);
@@ -856,16 +854,16 @@ void sub_8029374(void)
void sub_802939C(void)
{
s32 temp;
- u32 return_var;
+ u32 saveStatus;
if(sub_80144A4(&temp) != 0)
{
return;
}
if(!sub_8012600())
{
- return_var = sub_8012744();
+ saveStatus = sub_8012744();
sub_8012750();
- if(return_var == 0)
+ if(saveStatus == SAVE_COMPLETED)
{
sub_8028B04(0x25);
}
@@ -1353,7 +1351,7 @@ u32 sub_8029B50(void)
gUnknown_203B2C4 = MemoryAlloc(sizeof(struct WonderMailStruct_203B2C4), 8);
MemoryFill8((u8 *)gUnknown_203B2C4, 0, sizeof(struct WonderMailStruct_203B2C4));
- sub_808D8E0(gUnknown_202E5D8, SPECIES_PELIPPER);
+ CopyYellowSpeciesNametoBuffer(gUnknown_202E5D8, SPECIES_PELIPPER);
monName = GetMonSpecies(SPECIES_PELIPPER);
strcpy(gAvailablePokemonNames, monName);
faceFile = GetDialogueSpriteDataPtr(SPECIES_PELIPPER);
@@ -1981,14 +1979,14 @@ void sub_802A68C(void)
void sub_802A6B4(void)
{
- int iVar2;
+ int saveStatus;
u32 temp;
if (sub_80144A4(&temp) == 0) {
if (sub_8012600() == 0) {
- iVar2 = sub_8012744();
+ saveStatus = sub_8012744();
sub_8012750();
- if (iVar2 == 0) {
+ if (saveStatus == SAVE_COMPLETED) {
sub_802B2BC(0x20);
}
else {
diff --git a/src/wonder_mail_2.c b/src/wonder_mail_2.c
index 12654e3..911df42 100644
--- a/src/wonder_mail_2.c
+++ b/src/wonder_mail_2.c
@@ -7,7 +7,7 @@
struct unkStruct_203B2C8
{
// size: 0x140
- u8 unk0;
+ u8 currState;
u8 unk1;
u16 unk2;
/* 0x4 */ struct OpenedFile *faceFile;
@@ -68,7 +68,6 @@ extern void sub_8097790();
extern struct unkStruct_8095228 *sub_8095228(u8);
extern char gUnknown_202E5D8[0x50];
extern char gAvailablePokemonNames[0x50];
-void sub_808D8E0(u8 *, u32);
extern u32 sub_802F298();
extern void sub_802F2C0();
extern u32 sub_8011C34();
@@ -101,7 +100,6 @@ extern const char gUnknown_80DFB14[];
extern const char gUnknown_80DF9F0[];
extern const char gUnknown_80DF9F8[];
extern u8 sub_80023E4(u32);
-extern char * GetMonSpecies(u32);
u32 sub_802B2D4(void)
{
@@ -113,7 +111,7 @@ u32 sub_802B2D4(void)
gUnknown_203B2C8 = MemoryAlloc(0x140,8);
MemoryFill8((u8 *)gUnknown_203B2C8,0,0x140);
gUnknown_203B2C8->unk1 = -1;
- sub_808D8E0(gUnknown_202E5D8, SPECIES_PELIPPER);
+ CopyYellowSpeciesNametoBuffer(gUnknown_202E5D8, SPECIES_PELIPPER);
faceFile = GetDialogueSpriteDataPtr(SPECIES_PELIPPER);
gUnknown_203B2C8->faceFile = faceFile;
gUnknown_203B2C8->faceData = faceFile->data;
@@ -133,7 +131,7 @@ u32 sub_802B2D4(void)
u32 sub_802B358(void)
{
- switch(gUnknown_203B2C8->unk0) {
+ switch(gUnknown_203B2C8->currState) {
case 0:
sub_802B560();
break;
@@ -175,55 +173,55 @@ void sub_802B3E0(void)
char *monName;
char teamNameBuffer[40];
- switch(gUnknown_203B2C8->unk0) {
- case 0:
- if (sub_80023E4(0) != '\0') {
- // Copy Team Name to buffer
- sub_80920D8(teamNameBuffer);
- }
- else {
- // Copy "????" to buffer
- strcpy(teamNameBuffer,gUnknown_80DF9F0);
- }
- // Print and expand placeholders?
- sub_800D158(gUnknown_203B2C8->unk14,gUnknown_80DF9F8,teamNameBuffer);
- // Display to screen with Pelliper face
- sub_80141B4(gUnknown_203B2C8->unk14, 0, (u32 *)&gUnknown_203B2C8->faceFile, 0x10d);
- break;
- case 1:
- monName = GetMonSpecies(SPECIES_PELIPPER);
- strcpy(gUnknown_203B2C8->unk114, monName);
- gUnknown_203B2C8->unk128 = 0x130;
- gUnknown_203B2C8->unk12A = 2;
- gUnknown_203B2C8->unk12C = 0;
- sub_8097790();
- iVar3 = sub_8095228(gUnknown_203B2C8->unk1);
- sub_803C37C(&iVar3->unk4, 0, &gUnknown_203B2C8->unk130);
- gUnknown_203B2C8->unk138 = sub_803C200(&iVar3->unk4, 0);
- gUnknown_203B2C8->unk131 = 0;
- gUnknown_203B2C8->unk132 = 0;
- gUnknown_203B2C8->unk133 = 10;
- gUnknown_203B2C8->unk134 = 0;
- sub_802F204(gUnknown_203B2C8->unk114, 0);
- break;
- case 2:
- // I hope you will keep on rescuing your friends
- // I must save your adventure
- sub_80141B4(gUnknown_80DFAA8, 0, (u32 *)&gUnknown_203B2C8->faceFile, 0x10d);
- break;
- case 4:
- // Oh yes, that's right. Please don't forget to send an A-OK Mail
- // to the friend you just rescued
- sub_80141B4(gUnknown_80DFB14, 0, (u32 *)&gUnknown_203B2C8->faceFile, 0x10d);
- case 3:
- case 5:
- break;
+ switch(gUnknown_203B2C8->currState) {
+ case 0:
+ if (sub_80023E4(0) != '\0') {
+ // Copy Team Name to buffer
+ sub_80920D8(teamNameBuffer);
+ }
+ else {
+ // Copy "????" to buffer
+ strcpy(teamNameBuffer,gUnknown_80DF9F0);
+ }
+ // Print and expand placeholders?
+ sub_800D158(gUnknown_203B2C8->unk14,gUnknown_80DF9F8,teamNameBuffer);
+ // Display to screen with Pelliper face
+ sub_80141B4(gUnknown_203B2C8->unk14, 0, (u32 *)&gUnknown_203B2C8->faceFile, 0x10d);
+ break;
+ case 1:
+ monName = GetMonSpecies(SPECIES_PELIPPER);
+ strcpy(gUnknown_203B2C8->unk114, monName);
+ gUnknown_203B2C8->unk128 = 0x130;
+ gUnknown_203B2C8->unk12A = 2;
+ gUnknown_203B2C8->unk12C = 0;
+ sub_8097790();
+ iVar3 = sub_8095228(gUnknown_203B2C8->unk1);
+ sub_803C37C(&iVar3->unk4, 0, &gUnknown_203B2C8->unk130);
+ gUnknown_203B2C8->unk138 = sub_803C200(&iVar3->unk4, 0);
+ gUnknown_203B2C8->unk131 = 0;
+ gUnknown_203B2C8->unk132 = 0;
+ gUnknown_203B2C8->unk133 = 10;
+ gUnknown_203B2C8->unk134 = 0;
+ sub_802F204(gUnknown_203B2C8->unk114, 0);
+ break;
+ case 2:
+ // I hope you will keep on rescuing your friends
+ // I must save your adventure
+ sub_80141B4(gUnknown_80DFAA8, 0, (u32 *)&gUnknown_203B2C8->faceFile, 0x10d);
+ break;
+ case 4:
+ // Oh yes, that's right. Please don't forget to send an A-OK Mail
+ // to the friend you just rescued
+ sub_80141B4(gUnknown_80DFB14, 0, (u32 *)&gUnknown_203B2C8->faceFile, 0x10d);
+ case 3:
+ case 5:
+ break;
}
}
void sub_802B548(u32 newState)
{
- gUnknown_203B2C8->unk0 = newState;
+ gUnknown_203B2C8->currState = newState;
nullsub_132();
sub_802B3E0();
}
@@ -243,7 +241,7 @@ void sub_802B57C(void)
if (sub_802F298() == 3) {
sub_802F2C0();
- sub_808D8E0(gUnknown_202E5D8, SPECIES_PELIPPER);
+ CopyYellowSpeciesNametoBuffer(gUnknown_202E5D8, SPECIES_PELIPPER);
monName = GetMonSpecies(SPECIES_PELIPPER);
strcpy(gAvailablePokemonNames, monName);
sub_802B548(2);
diff --git a/src/wonder_mail_pre.c b/src/wonder_mail_pre.c
index e6c2ecb..a187a9c 100644
--- a/src/wonder_mail_pre.c
+++ b/src/wonder_mail_pre.c
@@ -8,9 +8,7 @@
extern void* MemoryAlloc(u32 a, u32 b);
extern void MemoryFill8(u8 *dest, u8 value, s32 size);
-extern char* GetMonSpecies(u32);
extern void sub_800641C(void *r0, u8, u8);
-void sub_808D8E0(u8 *, u32);
extern struct WonderMailStruct_203B2C0 *gUnknown_203B2C0;
extern char gUnknown_202E5D8[0x50];
@@ -81,7 +79,7 @@ u32 sub_8027F88(void)
gUnknown_203B2C0->unk53C = 0;
gUnknown_203B2C0->unk218 = -1;
gUnknown_203B2C0->unk544 = -1;
- sub_808D8E0(gUnknown_202E5D8, SPECIES_PELIPPER);
+ CopyYellowSpeciesNametoBuffer(gUnknown_202E5D8, SPECIES_PELIPPER);
monName = GetMonSpecies(SPECIES_PELIPPER);
strcpy(gAvailablePokemonNames, monName);
faceFile = GetDialogueSpriteDataPtr(SPECIES_PELIPPER);
diff --git a/sym_ewram.txt b/sym_ewram.txt
index a34a8e0..503fc68 100644
--- a/sym_ewram.txt
+++ b/sym_ewram.txt
@@ -329,10 +329,10 @@ gBG2Control = .; /* 202D6A8 */
gBG3Control = .; /* 202D6B0 */
. += 0x8;
-gUnknown_202D6B8 = .; /* 202D6B8 */
+gBldAlpha_CoeffA = .; /* 202D6B8 */
. += 0x1;
-gUnknown_202D6B9 = .; /* 202D6B9 */
+gBldAlpha_CoeffB = .; /* 202D6B9 */
. += 0x141;
gBldAlpha = .; /* 202D7FA */
@@ -885,7 +885,7 @@ gMonsterParametersFile = .; /* 202F3E4 */
gUnknown_202F3E8 = .; /* 202F3E8 */
. += 0x18;
-gUnknown_202F400 = .; /* 202F400 */
+gRecruitedPokemon = .; /* 202F400 */
. += 0x90E8;
gLevelCurrentPokeId = .; /* 20384E8 */
@@ -895,7 +895,10 @@ gLevelCurrentData = .; /* 20384F0 */
. += 0x4B0;
gItemParametersFile = .; /* 20389A0 */
- . += 0x8;
+ . += 0x4;
+
+gItemParametersData = .; /* 20389A4 */
+ . += 0x4;
gUnknown_20389A8 = .; /* 20389A8 */
. += 0x268;
diff --git a/sym_ewram2.txt b/sym_ewram2.txt
index 872987f..1845fac 100644
--- a/sym_ewram2.txt
+++ b/sym_ewram2.txt
@@ -440,7 +440,7 @@ gUnknown_203B324 = .; /* 203B324 */
gUnknown_203B328 = .; /* 203B328 */
. += 0x4;
-gUnknown_203B32C = .; /* 203B32C */
+gPostOfficeHelper = .; /* 203B32C */
. += 0x4;
gUnknown_203B330 = .; /* 203B330 */
@@ -584,7 +584,7 @@ gUnknown_203B454 = .; /* 203B454 */
gUnknown_203B458 = .; /* 203B458 */
. += 0x4;
-gUnknown_203B45C = .; /* 203B45C */
+gRecruitedPokemonRef = .; /* 203B45C */
. += 0x4;
gUnknown_203B460 = .; /* 203B460 */