summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSeth Barberee <seth.barberee@gmail.com>2021-06-18 17:56:20 -0500
committerSeth Barberee <seth.barberee@gmail.com>2021-06-18 17:56:20 -0500
commitf1fdcc2b0ade13ad1a4cc7360eac70f27396d26a (patch)
tree3ac5b9f61650299f96095e3d3c09ad771793be08
parente806b05526bfcc540cb2c1f3165a96e76f6c235d (diff)
more splitting and labeling with some decomp
-rw-r--r--asm/code_801AFA4.s2322
-rw-r--r--asm/code_801B3C0.s2024
-rw-r--r--asm/code_803D110.s6
-rw-r--r--asm/code_80428A0.s2
-rw-r--r--asm/code_8048480.s2
-rw-r--r--asm/code_807001C.s2
-rw-r--r--asm/code_8095014.s3785
-rw-r--r--asm/code_80958E8.s3495
-rw-r--r--asm/items.s8
-rw-r--r--asm/kecleon_items.s6
-rw-r--r--asm/pokemon_3.s (renamed from asm/code_808EAB0.s)0
-rw-r--r--asm/wonder_mail_1.s634
-rw-r--r--asm/wonder_mail_3.s119
-rw-r--r--data/data_80E2068.s14
-rw-r--r--data/data_80F4278.s26
-rw-r--r--data/data_810AE24.s2
-rw-r--r--data/text/chunsoft.inc11
-rw-r--r--include/constants/wonder_mail.h28
-rw-r--r--include/felicity_bank.h5
-rw-r--r--include/gUnknown_203B460.h3
-rw-r--r--include/global.h2
-rw-r--r--include/kangaskhan_storage.h3
-rw-r--r--include/kecleon_items.h14
-rw-r--r--include/wonder_mail.h19
-rwxr-xr-xld_script.txt8
-rw-r--r--src/code_801AFA4.c4
-rw-r--r--src/code_801B3C0.c189
-rw-r--r--src/code_801C620.c15
-rw-r--r--src/code_801D760.c6
-rw-r--r--src/code_80521D0_1.c1
-rw-r--r--src/code_8057824_1.c1
-rw-r--r--src/code_80958E8.c178
-rw-r--r--src/ds_menus.c2
-rw-r--r--src/event_flag.c1
-rw-r--r--src/exclusive_pokemon.c1
-rw-r--r--src/felicity_bank.c1
-rw-r--r--src/friend_rescue.c1
-rw-r--r--src/friend_rescue_1.c1
-rw-r--r--src/gulpin_shop.c1
-rw-r--r--src/items.c6
-rw-r--r--src/kangaskhan_storage.c1
-rw-r--r--src/kangaskhan_storage_1.c1
-rw-r--r--src/kecleon_items.c17
-rw-r--r--src/kecleon_items_1.c44
-rw-r--r--src/makuhita_dojo.c1
-rw-r--r--src/personality_test.c1
-rw-r--r--src/pokemon.c1
-rw-r--r--src/pokemon_3.c (renamed from src/code_808EAB0.c)0
-rw-r--r--src/pokemon_mid.c1
-rw-r--r--src/post_office_guide.c258
-rw-r--r--src/save.c2
-rw-r--r--src/trade_items_menu.c8
-rw-r--r--src/wonder_mail.c370
-rw-r--r--src/wonder_mail_2.c25
-rw-r--r--src/wonder_mail_3.c49
-rw-r--r--src/wonder_mail_main_menu.c171
-rw-r--r--src/wonder_mail_pre.c1
57 files changed, 6697 insertions, 7202 deletions
diff --git a/asm/code_801AFA4.s b/asm/code_801AFA4.s
index c966a8c..f966cb0 100644
--- a/asm/code_801AFA4.s
+++ b/asm/code_801AFA4.s
@@ -277,7 +277,7 @@ sub_801B374:
lsrs r0, 24
ldr r1, _0801B3A8
ldr r4, [r1]
- bl sub_80913CC
+ bl GetItemMove
lsls r0, 16
lsrs r6, r0, 16
movs r5, 0
@@ -313,2324 +313,4 @@ _0801B3BA:
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 GetIQSkillName
- 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
-
.align 2,0
diff --git a/asm/code_801B3C0.s b/asm/code_801B3C0.s
new file mode 100644
index 0000000..9d9fddc
--- /dev/null
+++ b/asm/code_801B3C0.s
@@ -0,0 +1,2024 @@
+ .include "constants/gba_constants.inc"
+ .include "asm/macros.inc"
+
+ .syntax unified
+
+ .text
+
+
+ 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 GetIQSkillName
+ 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
+
+ .align 2,0
diff --git a/asm/code_803D110.s b/asm/code_803D110.s
index daa639c..6111ed1 100644
--- a/asm/code_803D110.s
+++ b/asm/code_803D110.s
@@ -314,8 +314,8 @@ _0803D32A:
_0803D354: .4byte gUnknown_80F43F0
thumb_func_end sub_803D2C0
- thumb_func_start sub_803D358
-sub_803D358:
+ thumb_func_start DecodeWonderMailPassword
+DecodeWonderMailPassword:
push {r4-r7,lr}
mov r7, r10
mov r6, r9
@@ -409,7 +409,7 @@ _0803D402:
pop {r4-r7}
pop {r1}
bx r1
- thumb_func_end sub_803D358
+ thumb_func_end DecodeWonderMailPassword
thumb_func_start sub_803D414
sub_803D414:
diff --git a/asm/code_80428A0.s b/asm/code_80428A0.s
index 4af9445..c85bf60 100644
--- a/asm/code_80428A0.s
+++ b/asm/code_80428A0.s
@@ -8771,7 +8771,7 @@ sub_8046F00:
cmp r0, 0x5
bne _08046F7C
ldrb r0, [r4, 0x2]
- bl sub_80913CC
+ bl GetItemMove
lsls r0, 16
lsrs r7, r0, 16
ldrb r0, [r4, 0x2]
diff --git a/asm/code_8048480.s b/asm/code_8048480.s
index 300d379..c24da61 100644
--- a/asm/code_8048480.s
+++ b/asm/code_8048480.s
@@ -562,7 +562,7 @@ sub_8048950:
mov r10, r0
mov r8, r1
ldrb r0, [r1, 0x2]
- bl sub_80913CC
+ bl GetItemMove
lsls r0, 16
lsrs r0, 16
mov r9, r0
diff --git a/asm/code_807001C.s b/asm/code_807001C.s
index df6ba13..499f9ad 100644
--- a/asm/code_807001C.s
+++ b/asm/code_807001C.s
@@ -25994,7 +25994,7 @@ _0807CBAC:
add r4, sp, 0x20
lsls r5, 8
lsrs r0, r5, 24
- bl sub_80913CC
+ bl GetItemMove
adds r1, r0, 0
lsls r1, 16
lsrs r1, 16
diff --git a/asm/code_8095014.s b/asm/code_8095014.s
index 9a119ae..3c4419b 100644
--- a/asm/code_8095014.s
+++ b/asm/code_8095014.s
@@ -935,3790 +935,5 @@ sub_80958E4:
bx lr
thumb_func_end sub_80958E4
- thumb_func_start sub_80958E8
-sub_80958E8:
- ldr r1, _080958F0
- ldr r0, _080958F4
- str r0, [r1]
- bx lr
- .align 2, 0
-_080958F0: .4byte gUnknown_203B490
-_080958F4: .4byte gUnknown_2039448
- thumb_func_end sub_80958E8
-
- thumb_func_start sub_80958F8
-sub_80958F8:
- ldr r0, _080958FC
- bx lr
- .align 2, 0
-_080958FC: .4byte gUnknown_2039448
- thumb_func_end sub_80958F8
-
- thumb_func_start sub_8095900
-sub_8095900:
- push {r4-r7,lr}
- movs r4, 0
-_08095904:
- lsls r0, r4, 24
- lsrs r0, 24
- bl sub_8096040
- adds r4, 0x1
- cmp r4, 0x3
- ble _08095904
- movs r4, 0
-_08095914:
- lsls r0, r4, 24
- lsrs r0, 24
- bl sub_80965B8
- adds r4, 0x1
- cmp r4, 0x7
- ble _08095914
- movs r4, 0
-_08095924:
- lsls r0, r4, 24
- lsrs r0, 24
- bl sub_8096C3C
- adds r4, 0x1
- cmp r4, 0x7
- ble _08095924
- movs r4, 0
- ldr r3, _080959B8
- movs r2, 0xBC
- lsls r2, 2
- movs r1, 0
-_0809593C:
- ldr r0, [r3]
- adds r0, r2
- adds r0, r4
- strb r1, [r0]
- adds r4, 0x1
- cmp r4, 0x37
- ble _0809593C
- ldr r4, _080959B8
- ldr r0, [r4]
- movs r1, 0xCA
- lsls r1, 2
- adds r0, r1
- movs r1, 0
- strb r1, [r0]
- ldr r0, [r4]
- movs r7, 0xC8
- lsls r7, 1
- adds r0, r7
- movs r1, 0x28
- bl MemoryClear8
- ldr r0, [r4]
- movs r1, 0xDC
- lsls r1, 1
- adds r0, r1
- movs r1, 0x78
- bl MemoryClear8
- adds r3, r4, 0
- movs r5, 0
- movs r2, 0
- movs r6, 0x8C
- lsls r6, 2
- movs r4, 0xF
-_08095980:
- ldr r0, [r3]
- adds r0, r2
- adds r0, r6
- movs r1, 0x63
- strb r1, [r0]
- ldr r0, [r3]
- adds r0, r2
- ldr r7, _080959BC
- adds r0, r7
- movs r1, 0x1
- strb r1, [r0]
- ldr r1, [r3]
- adds r7, 0x3
- adds r0, r1, r7
- adds r0, r2
- str r5, [r0]
- adds r7, 0x4
- adds r0, r1, r7
- adds r0, r2
- str r5, [r0]
- adds r2, 0xC
- subs r4, 0x1
- cmp r4, 0
- bge _08095980
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080959B8: .4byte gUnknown_203B490
-_080959BC: .4byte 0x00000231
- thumb_func_end sub_8095900
-
- thumb_func_start sub_80959C0
-sub_80959C0:
- push {lr}
- adds r1, r0, 0
- ldrb r0, [r1]
- cmp r0, 0x5
- bne _080959D6
- adds r0, r1, 0
- bl sub_80959DC
- lsls r0, 24
- lsrs r0, 24
- b _080959D8
-_080959D6:
- movs r0, 0
-_080959D8:
- pop {r1}
- bx r1
- thumb_func_end sub_80959C0
-
- thumb_func_start sub_80959DC
-sub_80959DC:
- push {r4-r6,lr}
- adds r5, r0, 0
- ldrb r0, [r5, 0x1]
- cmp r0, 0x4
- bls _080959E8
- b _08095B16
-_080959E8:
- cmp r0, 0x4
- bne _080959F8
- ldrb r0, [r5, 0x4]
- bl GetMaxItemCount
- cmp r0, 0
- bne _080959F8
- b _08095B16
-_080959F8:
- ldrb r0, [r5, 0x2]
- cmp r0, 0x9
- bls _08095A00
- b _08095B16
-_08095A00:
- ldrb r0, [r5, 0x4]
- bl sub_809095C
- lsls r0, 24
- cmp r0, 0
- beq _08095A0E
- b _08095B16
-_08095A0E:
- ldrb r4, [r5, 0x5]
- ldrb r0, [r5, 0x4]
- bl sub_8090298
- cmp r4, r0
- bge _08095B16
- adds r4, r5, 0x4
- adds r0, r4, 0
- bl sub_809017C
- lsls r0, 24
- adds r6, r4, 0
- cmp r0, 0
- bne _08095B16
- movs r1, 0xC
- ldrsh r0, [r5, r1]
- cmp r0, 0
- beq _08095B16
- ldr r4, _08095B1C
- cmp r0, r4
- bgt _08095B16
- movs r2, 0xC
- ldrsh r0, [r5, r2]
- bl sub_808E770
- movs r2, 0xC
- ldrsh r1, [r5, r2]
- lsls r0, 16
- asrs r0, 16
- cmp r1, r0
- bne _08095B16
- movs r1, 0xC
- ldrsh r0, [r5, r1]
- bl sub_803C0DC
- lsls r0, 24
- cmp r0, 0
- beq _08095B16
- movs r2, 0xE
- ldrsh r0, [r5, r2]
- cmp r0, r4
- bgt _08095B16
- movs r1, 0xE
- ldrsh r0, [r5, r1]
- bl sub_808E770
- movs r2, 0xE
- ldrsh r1, [r5, r2]
- lsls r0, 16
- asrs r0, 16
- cmp r1, r0
- bne _08095B16
- movs r1, 0xE
- ldrsh r0, [r5, r1]
- bl sub_803C0DC
- lsls r0, 24
- cmp r0, 0
- beq _08095B16
- ldrb r0, [r5, 0x1]
- subs r0, 0x1
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bls _08095A9C
- movs r2, 0xE
- ldrsh r1, [r5, r2]
- movs r2, 0xC
- ldrsh r0, [r5, r2]
- cmp r1, r0
- bne _08095B16
-_08095A9C:
- ldrb r0, [r5, 0x10]
- bl sub_8092040
- lsls r0, 24
- cmp r0, 0
- bne _08095B16
- ldrb r0, [r5, 0x10]
- bl sub_8090A60
- lsls r0, 24
- cmp r0, 0
- bne _08095B16
- ldrb r0, [r5, 0x10]
- bl sub_8091524
- lsls r0, 24
- cmp r0, 0
- beq _08095B16
- ldrb r0, [r5, 0x1]
- cmp r0, 0x3
- bne _08095AD4
- ldrb r0, [r5, 0x4]
- ldrb r1, [r5, 0x10]
- bl sub_8091E60
- lsls r0, 24
- cmp r0, 0
- beq _08095B16
-_08095AD4:
- ldrb r0, [r5, 0x11]
- cmp r0, 0x4
- beq _08095B16
- cmp r0, 0xA
- beq _08095B16
- cmp r0, 0xA
- bhi _08095B16
- ldrb r0, [r5, 0x12]
- bl sub_8092040
- lsls r0, 24
- cmp r0, 0
- bne _08095B16
- ldrb r0, [r5, 0x13]
- cmp r0, 0x39
- bhi _08095B16
- ldrb r0, [r5, 0x11]
- cmp r0, 0x9
- bne _08095B20
- ldrb r0, [r5, 0x13]
- bl GetFriendAreaUnlockCondition
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x2
- bne _08095B16
- ldrb r1, [r5, 0x1]
- adds r0, r6, 0
- bl sub_803C1D0
- lsls r0, 24
- cmp r0, 0
- bne _08095B20
-_08095B16:
- movs r0, 0
- b _08095B22
- .align 2, 0
-_08095B1C: .4byte 0x000001a7
-_08095B20:
- movs r0, 0x1
-_08095B22:
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end sub_80959DC
-
- thumb_func_start sub_8095B28
-sub_8095B28:
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- ldr r4, _08095B44
- add sp, r4
- adds r4, r0, 0
- bl sub_8095CE0
- lsls r0, 24
- cmp r0, 0
- bne _08095B48
- movs r0, 0
- b _08095CCC
- .align 2, 0
-_08095B44: .4byte 0xfffffcb0
-_08095B48:
- movs r0, 0x5
- strb r0, [r4]
- movs r0, 0x8
- bl RandomCapped
- ldr r1, _08095BC8
- adds r0, r1
- ldrb r0, [r0]
- strb r0, [r4, 0x1]
- cmp r0, 0x2
- bne _08095B6C
- bl GetRescueTeamRank
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0
- bne _08095B6C
- strb r0, [r4, 0x1]
-_08095B6C:
- movs r0, 0
- strb r0, [r4, 0x2]
- bl Random
- ldr r1, _08095BCC
- ands r1, r0
- str r1, [r4, 0x8]
- movs r7, 0
- movs r5, 0x1
- adds r0, r4, 0x4
- mov r8, r0
- movs r1, 0x12
- adds r1, r4
- mov r9, r1
- mov r6, sp
-_08095B8A:
- lsls r0, r5, 16
- asrs r0, 16
- bl sub_803C110
- lsls r0, 24
- cmp r0, 0
- beq _08095B9E
- strh r5, [r6]
- adds r6, 0x2
- adds r7, 0x1
-_08095B9E:
- adds r5, 0x1
- ldr r0, _08095BD0
- cmp r5, r0
- ble _08095B8A
- cmp r7, 0
- beq _08095BD4
- adds r0, r7, 0
- bl RandomCapped
- lsls r0, 1
- add r0, sp
- ldrh r0, [r0]
- strh r0, [r4, 0xC]
- adds r0, r7, 0
- bl RandomCapped
- lsls r0, 1
- add r0, sp
- ldrh r0, [r0]
- b _08095BDC
- .align 2, 0
-_08095BC8: .4byte gUnknown_8109984
-_08095BCC: .4byte 0x00ffffff
-_08095BD0: .4byte 0x000001a7
-_08095BD4:
- movs r0, 0x10
- strh r0, [r4, 0xC]
- movs r0, 0x91
- lsls r0, 1
-_08095BDC:
- strh r0, [r4, 0xE]
- ldrb r0, [r4, 0x1]
- subs r0, 0x1
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bls _08095BEE
- ldrh r0, [r4, 0xC]
- strh r0, [r4, 0xE]
-_08095BEE:
- ldrb r0, [r4, 0x4]
- bl sub_8095F28
- strb r0, [r4, 0x10]
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0
- bne _08095C10
- strb r0, [r4, 0x1]
- ldrh r0, [r4, 0xC]
- strh r0, [r4, 0xE]
- adds r2, r4, 0
- adds r2, 0x10
- mov r0, r8
- movs r1, 0
- bl sub_803C37C
-_08095C10:
- ldrb r0, [r4, 0x4]
- bl GetMaxItemCount
- adds r1, r0, 0
- cmp r1, 0
- bne _08095C28
- ldrb r0, [r4, 0x1]
- cmp r0, 0x4
- bne _08095C28
- strb r1, [r4, 0x1]
- ldrh r0, [r4, 0xC]
- strh r0, [r4, 0xE]
-_08095C28:
- ldrb r1, [r4, 0x1]
- mov r0, r8
- mov r2, r9
- bl sub_803C37C
- ldrb r0, [r4, 0x10]
- ldrb r1, [r4, 0x12]
- cmp r0, r1
- beq _08095C28
- movs r0, 0
- strb r0, [r4, 0x13]
- ldrb r0, [r4, 0x1]
- cmp r0, 0x2
- beq _08095C90
- cmp r0, 0x2
- bgt _08095C4E
- cmp r0, 0x1
- beq _08095C6C
- b _08095CCA
-_08095C4E:
- cmp r0, 0x4
- bgt _08095CCA
- bl Random
- adds r1, r0, 0
- movs r0, 0xE0
- lsls r0, 3
- ands r1, r0
- movs r0, 0xC0
- lsls r0, 2
- cmp r1, r0
- beq _08095CC4
- cmp r1, r0
- bgt _08095CB4
- b _08095CAA
-_08095C6C:
- bl Random
- adds r1, r0, 0
- movs r0, 0x70
- ands r1, r0
- cmp r1, 0x10
- beq _08095C80
- cmp r1, 0x30
- beq _08095C88
- b _08095CCA
-_08095C80:
- adds r0, r4, 0
- bl sub_803C3E0
- b _08095CCA
-_08095C88:
- adds r0, r4, 0
- bl sub_803C45C
- b _08095CCA
-_08095C90:
- bl Random
- movs r1, 0xC0
- lsls r1, 6
- ands r1, r0
- movs r0, 0x80
- lsls r0, 5
- cmp r1, r0
- bne _08095CCA
- adds r0, r4, 0
- bl sub_803C4F0
- b _08095CCA
-_08095CAA:
- movs r0, 0x80
- lsls r0, 1
- cmp r1, r0
- beq _08095CBC
- b _08095CCA
-_08095CB4:
- movs r0, 0xC0
- lsls r0, 3
- cmp r1, r0
- bne _08095CCA
-_08095CBC:
- adds r0, r4, 0
- bl sub_803C580
- b _08095CCA
-_08095CC4:
- adds r0, r4, 0
- bl sub_803C610
-_08095CCA:
- movs r0, 0x1
-_08095CCC:
- movs r3, 0xD4
- lsls r3, 2
- add sp, r3
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_8095B28
-
- thumb_func_start sub_8095CE0
-sub_8095CE0:
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x60
- str r0, [sp, 0x44]
- mov r0, sp
- bl sub_80A29B0
- str r0, [sp, 0x4C]
- cmp r0, 0
- bne _08095D0C
- mov r0, sp
- add r1, sp, 0x4C
- ldrb r1, [r1]
- strb r1, [r0]
- mov r1, sp
- movs r0, 0x1
- strb r0, [r1, 0x1]
- movs r2, 0x2
- str r2, [sp, 0x4C]
-_08095D0C:
- ldr r0, [sp, 0x4C]
- bl RandomCapped
- mov r9, r0
- str r0, [sp, 0x48]
- mov r1, sp
- adds r1, 0x40
- str r1, [sp, 0x5C]
-_08095D1C:
- mov r0, sp
- add r0, r9
- ldrb r7, [r0]
- adds r0, r7, 0
- bl sub_8090298
- str r0, [sp, 0x58]
- lsrs r0, 31
- ldr r2, [sp, 0x58]
- adds r0, r2, r0
- asrs r0, 1
- str r0, [sp, 0x54]
- adds r1, r2, 0
- bl RandomRange
- adds r4, r0, 0
- str r4, [sp, 0x50]
-_08095D3E:
- movs r0, 0x1
- mov r8, r0
- ldr r1, _08095DF4
- ldr r0, [sp, 0x40]
- ands r0, r1
- orrs r0, r7
- lsls r2, r4, 24
- lsrs r2, 16
- ldr r1, _08095DF8
- ands r0, r1
- orrs r0, r2
- str r0, [sp, 0x40]
- ldr r0, [sp, 0x5C]
- bl sub_809017C
- lsls r0, 24
- cmp r0, 0
- beq _08095D66
- movs r1, 0
- mov r8, r1
-_08095D66:
- ldr r2, _08095DFC
- mov r10, r2
- movs r6, 0
- movs r5, 0x3
-_08095D6E:
- mov r1, r10
- ldr r0, [r1]
- adds r0, r6
- adds r1, r7, 0
- adds r2, r4, 0
- movs r3, 0x1
- bl sub_8095E38
- lsls r0, 24
- cmp r0, 0
- beq _08095D88
- movs r2, 0
- mov r8, r2
-_08095D88:
- adds r6, 0x14
- subs r5, 0x1
- cmp r5, 0
- bge _08095D6E
- ldr r0, _08095DFC
- mov r10, r0
- movs r6, 0x50
- movs r5, 0x7
-_08095D98:
- mov r1, r10
- ldr r0, [r1]
- adds r0, r6
- adds r1, r7, 0
- adds r2, r4, 0
- movs r3, 0x1
- bl sub_8095E38
- lsls r0, 24
- cmp r0, 0
- beq _08095DB2
- movs r2, 0
- mov r8, r2
-_08095DB2:
- adds r6, 0x14
- subs r5, 0x1
- cmp r5, 0
- bge _08095D98
- ldr r0, _08095DFC
- mov r10, r0
- movs r6, 0xF0
- movs r5, 0x7
-_08095DC2:
- mov r1, r10
- ldr r0, [r1]
- adds r0, r6
- adds r1, r7, 0
- adds r2, r4, 0
- movs r3, 0x1
- bl sub_8095E38
- lsls r0, 24
- cmp r0, 0
- beq _08095DDC
- movs r2, 0
- mov r8, r2
-_08095DDC:
- adds r6, 0x14
- subs r5, 0x1
- cmp r5, 0
- bge _08095DC2
- mov r0, r8
- cmp r0, 0
- beq _08095E00
- ldr r1, [sp, 0x44]
- strb r7, [r1, 0x4]
- strb r4, [r1, 0x5]
- movs r0, 0x1
- b _08095E28
- .align 2, 0
-_08095DF4: .4byte 0xffffff00
-_08095DF8: .4byte 0xffff00ff
-_08095DFC: .4byte gUnknown_203B490
-_08095E00:
- adds r4, 0x1
- ldr r2, [sp, 0x58]
- cmp r4, r2
- blt _08095E0A
- ldr r4, [sp, 0x54]
-_08095E0A:
- ldr r0, [sp, 0x50]
- cmp r4, r0
- bne _08095D3E
- movs r1, 0x1
- add r9, r1
- ldr r2, [sp, 0x4C]
- cmp r9, r2
- bne _08095E1E
- movs r0, 0
- mov r9, r0
-_08095E1E:
- ldr r1, [sp, 0x48]
- cmp r9, r1
- beq _08095E26
- b _08095D1C
-_08095E26:
- movs r0, 0
-_08095E28:
- add sp, 0x60
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_8095CE0
-
- thumb_func_start sub_8095E38
-sub_8095E38:
- push {r4,lr}
- adds r4, r0, 0
- lsls r1, 24
- lsrs r1, 24
- lsls r3, 24
- lsrs r3, 24
- ldrb r0, [r4]
- cmp r0, 0
- beq _08095E6E
- ldrb r0, [r4, 0x1]
- cmp r0, 0x2
- bne _08095E5E
- cmp r3, 0x1
- bne _08095E5E
- ldrb r0, [r4, 0x4]
- cmp r0, r1
- bne _08095E6E
- movs r0, 0x1
- b _08095E70
-_08095E5E:
- ldrb r0, [r4, 0x4]
- cmp r0, r1
- bne _08095E6E
- ldrb r0, [r4, 0x5]
- cmp r0, r2
- bne _08095E6E
- movs r0, 0x1
- b _08095E70
-_08095E6E:
- movs r0, 0
-_08095E70:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_8095E38
-
- thumb_func_start sub_8095E78
-sub_8095E78:
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x3C
- movs r6, 0
- movs r5, 0x1
-_08095E84:
- ldr r0, _08095F04
- ldr r0, [r0]
- adds r0, r5
- ldrb r0, [r0]
- adds r1, r5, 0x1
- mov r8, r1
- cmp r0, 0
- bne _08095EF6
- lsls r0, r5, 24
- lsrs r0, 24
- bl GetFriendAreaUnlockCondition
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x2
- bne _08095EF6
- movs r4, 0
- ldr r0, _08095F08
- ldr r1, [r0]
- movs r3, 0x3
-_08095EAC:
- ldrb r0, [r1]
- cmp r0, 0
- beq _08095EBA
- ldrb r0, [r1, 0x11]
- cmp r0, 0x9
- bne _08095EBA
- movs r4, 0x1
-_08095EBA:
- adds r1, 0x14
- subs r3, 0x1
- cmp r3, 0
- bge _08095EAC
- ldr r0, _08095F08
- ldr r0, [r0]
- adds r2, r0, 0
- adds r2, 0xF0
- adds r1, r0, 0
- movs r3, 0x7
-_08095ECE:
- ldrb r0, [r2]
- cmp r0, 0
- beq _08095EE0
- ldr r7, _08095F0C
- adds r0, r1, r7
- ldrb r0, [r0]
- cmp r0, 0x9
- bne _08095EE0
- movs r4, 0x1
-_08095EE0:
- adds r2, 0x14
- adds r1, 0x14
- subs r3, 0x1
- cmp r3, 0
- bge _08095ECE
- cmp r4, 0
- bne _08095EF6
- mov r1, sp
- adds r0, r1, r6
- strb r5, [r0]
- adds r6, 0x1
-_08095EF6:
- mov r5, r8
- cmp r5, 0x39
- ble _08095E84
- cmp r6, 0
- bne _08095F10
- movs r0, 0
- b _08095F1A
- .align 2, 0
-_08095F04: .4byte gFriendAreas
-_08095F08: .4byte gUnknown_203B490
-_08095F0C: .4byte 0x00000101
-_08095F10:
- adds r0, r6, 0
- bl RandomCapped
- add r0, sp
- ldrb r0, [r0]
-_08095F1A:
- add sp, 0x3C
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_8095E78
-
- thumb_func_start sub_8095F28
-sub_8095F28:
- push {r4-r7,lr}
- sub sp, 0xF0
- lsls r0, 24
- lsrs r7, r0, 24
- movs r6, 0
- movs r5, 0x1
-_08095F34:
- lsls r4, r5, 24
- cmp r7, 0x63
- beq _08095F48
- lsrs r1, r4, 24
- adds r0, r7, 0
- bl sub_8091E60
- lsls r0, 24
- cmp r0, 0
- beq _08095F6A
-_08095F48:
- lsrs r4, 24
- adds r0, r4, 0
- bl sub_8090A60
- lsls r0, 24
- cmp r0, 0
- bne _08095F6A
- adds r0, r4, 0
- bl sub_8091524
- lsls r0, 24
- cmp r0, 0
- beq _08095F6A
- mov r1, sp
- adds r0, r1, r6
- strb r5, [r0]
- adds r6, 0x1
-_08095F6A:
- adds r5, 0x1
- cmp r5, 0xEF
- ble _08095F34
- cmp r6, 0
- beq _08095F80
- adds r0, r6, 0
- bl RandomCapped
- add r0, sp
- ldrb r0, [r0]
- b _08095F82
-_08095F80:
- movs r0, 0
-_08095F82:
- add sp, 0xF0
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_8095F28
-
- thumb_func_start sub_8095F8C
-sub_8095F8C:
- push {r4,r5,lr}
- movs r5, 0
- movs r4, 0
-_08095F92:
- lsls r0, r4, 24
- lsrs r0, 24
- bl sub_8096000
- lsls r0, 24
- cmp r0, 0
- bne _08095FA2
- adds r5, 0x1
-_08095FA2:
- adds r4, 0x1
- cmp r4, 0x3
- ble _08095F92
- adds r0, r5, 0
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8095F8C
-
- thumb_func_start sub_8095FB0
-sub_8095FB0:
- push {r4,r5,lr}
- adds r4, r0, 0
- movs r3, 0
- ldr r5, _08095FD4
- movs r2, 0
-_08095FBA:
- ldr r0, [r5]
- adds r1, r0, r2
- ldrb r0, [r1]
- cmp r0, 0
- bne _08095FD8
- adds r0, r4, 0
- ldm r0!, {r2-r4}
- stm r1!, {r2-r4}
- ldm r0!, {r2,r3}
- stm r1!, {r2,r3}
- movs r0, 0
- b _08095FE2
- .align 2, 0
-_08095FD4: .4byte gUnknown_203B490
-_08095FD8:
- adds r2, 0x14
- adds r3, 0x1
- cmp r3, 0x3
- ble _08095FBA
- movs r0, 0x1
-_08095FE2:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8095FB0
-
- thumb_func_start sub_8095FE8
-sub_8095FE8:
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _08095FFC
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 2
- ldr r0, [r2]
- adds r0, r1
- bx lr
- .align 2, 0
-_08095FFC: .4byte gUnknown_203B490
- thumb_func_end sub_8095FE8
-
- thumb_func_start sub_8096000
-sub_8096000:
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r1, _0809601C
- ldr r2, [r1]
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 2
- adds r2, r1
- ldrb r0, [r2]
- cmp r0, 0
- beq _08096020
- movs r0, 0
- b _08096022
- .align 2, 0
-_0809601C: .4byte gUnknown_203B490
-_08096020:
- movs r0, 0x1
-_08096022:
- pop {r1}
- bx r1
- thumb_func_end sub_8096000
-
- thumb_func_start sub_8096028
-sub_8096028:
- push {r4,lr}
- movs r4, 0
-_0809602C:
- lsls r0, r4, 24
- lsrs r0, 24
- bl sub_8096040
- adds r4, 0x1
- cmp r4, 0x3
- ble _0809602C
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_8096028
-
- thumb_func_start sub_8096040
-sub_8096040:
- push {r4,lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r3, _08096074
- ldr r1, [r3]
- lsls r2, r0, 2
- adds r2, r0
- lsls r2, 2
- adds r1, r2
- movs r4, 0
- strb r4, [r1]
- ldr r0, [r3]
- adds r0, r2
- movs r1, 0x63
- strb r1, [r0, 0x4]
- ldr r0, [r3]
- adds r0, r2
- strb r4, [r0, 0x5]
- ldr r0, [r3]
- adds r0, r2
- movs r1, 0x5
- strb r1, [r0, 0x11]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08096074: .4byte gUnknown_203B490
- thumb_func_end sub_8096040
-
- thumb_func_start sub_8096078
-sub_8096078:
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- movs r2, 0
- movs r3, 0
- ldr r0, _08096090
- mov r12, r0
- mov r8, r3
- movs r4, 0
- mov r9, r4
- b _080960B6
- .align 2, 0
-_08096090: .4byte gUnknown_203B490
-_08096094:
- cmp r2, r3
- ble _080960AA
- mov r1, r12
- ldr r0, [r1]
- mov r5, r8
- adds r1, r0, r5
- adds r0, r4
- ldm r0!, {r5-r7}
- stm r1!, {r5-r7}
- ldm r0!, {r6,r7}
- stm r1!, {r6,r7}
-_080960AA:
- adds r4, 0x14
- movs r0, 0x14
- add r9, r0
- adds r2, 0x1
- add r8, r0
- adds r3, 0x1
-_080960B6:
- cmp r2, 0x3
- bgt _080960E2
- mov r1, r12
- ldr r0, [r1]
- adds r0, r4
- ldrb r0, [r0]
- cmp r0, 0
- bne _080960E2
- ldr r6, _08096110
- mov r1, r9
-_080960CA:
- adds r1, 0x14
- adds r4, 0x14
- movs r5, 0x14
- add r9, r5
- adds r2, 0x1
- cmp r2, 0x3
- bgt _080960E2
- ldr r0, [r6]
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0
- beq _080960CA
-_080960E2:
- cmp r2, 0x4
- bne _08096094
- cmp r3, 0x3
- bgt _08096102
- ldr r4, _08096110
- movs r2, 0
- lsls r0, r3, 2
- adds r0, r3
- lsls r1, r0, 2
-_080960F4:
- ldr r0, [r4]
- adds r0, r1
- strb r2, [r0]
- adds r1, 0x14
- adds r3, 0x1
- cmp r3, 0x3
- ble _080960F4
-_08096102:
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08096110: .4byte gUnknown_203B490
- thumb_func_end sub_8096078
-
- thumb_func_start sub_8096114
-sub_8096114:
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x14
- movs r1, 0
-_08096122:
- adds r0, r1, 0x1
- mov r10, r0
- mov r8, r10
- cmp r0, 0x3
- bgt _08096198
- ldr r2, _080961B0
- mov r9, r2
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 2
- mov r12, r0
- mov r3, r10
- lsls r0, r3, 2
- add r0, r10
- lsls r4, r0, 2
-_08096140:
- mov r5, r9
- ldr r1, [r5]
- adds r3, r1, r4
- ldrb r0, [r3]
- cmp r0, 0
- beq _0809618C
- mov r6, r12
- adds r2, r1, r6
- ldrb r1, [r2, 0x4]
- ldrb r0, [r3, 0x4]
- cmp r1, r0
- bhi _08096164
- cmp r1, r0
- bne _0809618C
- ldrb r0, [r2, 0x5]
- ldrb r7, [r3, 0x5]
- cmp r0, r7
- bls _0809618C
-_08096164:
- mov r1, sp
- adds r0, r2, 0
- ldm r0!, {r5-r7}
- stm r1!, {r5-r7}
- ldm r0!, {r5,r6}
- stm r1!, {r5,r6}
- adds r1, r2, 0
- adds r0, r3, 0
- ldm r0!, {r2,r3,r7}
- stm r1!, {r2,r3,r7}
- ldm r0!, {r5,r6}
- stm r1!, {r5,r6}
- mov r7, r9
- ldr r1, [r7]
- adds r1, r4
- mov r0, sp
- ldm r0!, {r2,r3,r5}
- stm r1!, {r2,r3,r5}
- ldm r0!, {r6,r7}
- stm r1!, {r6,r7}
-_0809618C:
- adds r4, 0x14
- movs r0, 0x1
- add r8, r0
- mov r1, r8
- cmp r1, 0x3
- ble _08096140
-_08096198:
- mov r1, r10
- cmp r1, 0x2
- ble _08096122
- add sp, 0x14
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080961B0: .4byte gUnknown_203B490
- thumb_func_end sub_8096114
-
- thumb_func_start sub_80961B4
-sub_80961B4:
- push {lr}
- bl sub_8096E2C
- lsls r0, 24
- cmp r0, 0
- beq _080961CE
- ldr r0, _080961D4
- ldr r0, [r0]
- movs r1, 0xCA
- lsls r1, 2
- adds r0, r1
- movs r1, 0x1
- strb r1, [r0]
-_080961CE:
- pop {r0}
- bx r0
- .align 2, 0
-_080961D4: .4byte gUnknown_203B490
- thumb_func_end sub_80961B4
-
- thumb_func_start sub_80961D8
-sub_80961D8:
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- movs r7, 0
- bl sub_8095F8C
- adds r6, r0, 0
- movs r1, 0x4
- bl RandomRange
- mov r8, r0
- cmp r6, 0x3
- bgt _08096202
- ldr r4, _08096208
- ldr r0, [r4]
- movs r2, 0xCA
- lsls r2, 2
- adds r1, r0, r2
- ldrb r0, [r1]
- cmp r0, 0
- bne _0809620C
-_08096202:
- movs r0, 0
- b _080963A8
- .align 2, 0
-_08096208: .4byte gUnknown_203B490
-_0809620C:
- strb r7, [r1]
- movs r5, 0x38
- movs r0, 0xA
- movs r1, 0x31
- movs r2, 0x1
- bl sub_8001D08
- lsls r0, 24
- cmp r0, 0
- beq _0809623A
- ldr r0, [r4]
- ldr r1, _08096328
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0
- bne _0809623A
- movs r0, 0x35
- bl sub_8096E80
- lsls r0, 24
- cmp r0, 0
- bne _0809623A
- movs r5, 0x35
-_0809623A:
- movs r0, 0xF
- bl sub_80023E4
- lsls r0, 24
- cmp r0, 0
- beq _0809629C
- ldr r0, _0809632C
- ldr r0, [r0]
- movs r2, 0xC9
- lsls r2, 2
- adds r0, r2
- ldrb r0, [r0]
- cmp r0, 0
- bne _08096264
- movs r0, 0x34
- bl sub_8096E80
- lsls r0, 24
- cmp r0, 0
- bne _08096264
- movs r5, 0x34
-_08096264:
- ldr r0, _0809632C
- ldr r0, [r0]
- ldr r1, _08096330
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0
- bne _08096280
- movs r0, 0x33
- bl sub_8096E80
- lsls r0, 24
- cmp r0, 0
- bne _08096280
- movs r5, 0x33
-_08096280:
- ldr r0, _0809632C
- ldr r0, [r0]
- ldr r2, _08096334
- adds r0, r2
- ldrb r0, [r0]
- cmp r0, 0
- bne _0809629C
- movs r0, 0x32
- bl sub_8096E80
- lsls r0, 24
- cmp r0, 0
- bne _0809629C
- movs r5, 0x32
-_0809629C:
- bl GetRescueTeamRank
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x6
- bne _080962C4
- ldr r0, _0809632C
- ldr r0, [r0]
- ldr r1, _08096338
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0
- bne _080962C4
- movs r0, 0x36
- bl sub_8096E80
- lsls r0, 24
- cmp r0, 0
- bne _080962C4
- movs r5, 0x36
-_080962C4:
- movs r0, 0x6
- bl sub_80023E4
- lsls r0, 24
- cmp r0, 0
- beq _080962EC
- ldr r0, _0809632C
- ldr r0, [r0]
- ldr r2, _0809633C
- adds r0, r2
- ldrb r0, [r0]
- cmp r0, 0
- bne _080962EC
- movs r0, 0x37
- bl sub_8096E80
- lsls r0, 24
- cmp r0, 0
- bne _080962EC
- movs r5, 0x37
-_080962EC:
- cmp r5, 0x38
- bne _08096310
- cmp r6, r8
- bgt _08096392
- bl sub_8096E2C
- lsls r0, 24
- lsrs r5, r0, 24
- movs r0, 0xE
- bl sub_80023E4
- lsls r0, 24
- cmp r0, 0
- bne _0809630C
- cmp r5, 0x2
- bhi _0809638E
-_0809630C:
- cmp r5, 0x31
- bhi _0809638E
-_08096310:
- lsls r0, r6, 24
- lsrs r0, 24
- bl sub_8095FE8
- adds r4, r0, 0
- movs r0, 0x1
- strb r0, [r4]
- movs r0, 0x62
- strb r0, [r4, 0x4]
- strb r5, [r4, 0x5]
- b _0809638A
- .align 2, 0
-_08096328: .4byte 0x00000325
-_0809632C: .4byte gUnknown_203B490
-_08096330: .4byte 0x00000323
-_08096334: .4byte 0x00000322
-_08096338: .4byte 0x00000326
-_0809633C: .4byte 0x00000327
-_08096340:
- lsls r0, r6, 24
- lsrs r0, 24
- bl sub_8095FE8
- adds r4, r0, 0
- bl sub_8095B28
- lsls r0, 24
- cmp r0, 0
- beq _08096392
- bl sub_8095E78
- lsls r0, 24
- lsrs r5, r0, 24
- adds r0, r4, 0x4
- ldrb r1, [r4, 0x1]
- bl sub_803C1D0
- lsls r0, 24
- cmp r0, 0
- bne _0809636C
- movs r5, 0
-_0809636C:
- movs r0, 0x5
- movs r1, 0xA
- bl RandomRange
- strb r0, [r4, 0x11]
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x9
- bne _0809638A
- cmp r5, 0
- bne _08096388
- movs r0, 0x5
- strb r0, [r4, 0x11]
- b _0809638A
-_08096388:
- strb r5, [r4, 0x13]
-_0809638A:
- movs r7, 0x1
- adds r6, 0x1
-_0809638E:
- cmp r6, r8
- ble _08096340
-_08096392:
- bl sub_80963B4
- lsls r0, 24
- cmp r0, 0
- beq _0809639E
- movs r7, 0x1
-_0809639E:
- bl sub_8096078
- bl sub_8096114
- adds r0, r7, 0
-_080963A8:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_80961D8
-
- thumb_func_start sub_80963B4
-sub_80963B4:
- push {r4-r6,lr}
- movs r6, 0
- bl sub_8096E2C
- lsls r0, 24
- lsrs r5, r0, 24
- bl sub_8095F8C
- adds r4, r0, 0
- cmp r4, 0x3
- ble _080963CE
- movs r0, 0
- b _080963F4
-_080963CE:
- movs r0, 0xE
- bl sub_80023E4
- lsls r0, 24
- cmp r0, 0
- beq _080963F2
- cmp r5, 0x31
- bhi _080963F2
- lsls r0, r4, 24
- lsrs r0, 24
- bl sub_8095FE8
- movs r1, 0x1
- strb r1, [r0]
- movs r1, 0x62
- strb r1, [r0, 0x4]
- strb r5, [r0, 0x5]
- movs r6, 0x1
-_080963F2:
- adds r0, r6, 0
-_080963F4:
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end sub_80963B4
-
- thumb_func_start sub_80963FC
-sub_80963FC:
- push {r4-r6,lr}
- movs r6, 0
-_08096400:
- lsls r0, r6, 24
- lsrs r4, r0, 24
- adds r0, r4, 0
- bl sub_8095FE8
- adds r5, r0, 0
- ldrb r0, [r5]
- cmp r0, 0x1
- beq _08096418
- adds r0, r4, 0
- bl sub_8096040
-_08096418:
- adds r6, 0x1
- cmp r6, 0x3
- ble _08096400
- bl sub_8096078
- bl sub_8095F8C
- lsls r0, 24
- lsrs r0, 24
- bl sub_8095FE8
- adds r5, r0, 0
- movs r0, 0
- movs r4, 0x5
- strb r4, [r5]
- strb r0, [r5, 0x1]
- strb r0, [r5, 0x2]
- movs r0, 0x2
- strb r0, [r5, 0x4]
- movs r0, 0x3
- strb r0, [r5, 0x5]
- bl Random
- ldr r1, _08096484
- ands r1, r0
- str r1, [r5, 0x8]
- movs r0, 0x10
- strh r0, [r5, 0xC]
- strh r0, [r5, 0xE]
- ldrb r0, [r5, 0x4]
- bl sub_8095F28
- strb r0, [r5, 0x10]
- strb r4, [r5, 0x11]
-_0809645C:
- ldrb r1, [r5, 0x1]
- adds r0, r5, 0x4
- adds r2, r5, 0
- adds r2, 0x12
- bl sub_803C37C
- ldrb r0, [r5, 0x10]
- ldrb r1, [r5, 0x12]
- cmp r0, r1
- beq _0809645C
- movs r0, 0
- strb r0, [r5, 0x13]
- bl sub_8096078
- bl sub_8096114
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08096484: .4byte 0x00ffffff
- thumb_func_end sub_80963FC
-
- thumb_func_start sub_8096488
-sub_8096488:
- push {r4,lr}
- movs r4, 0
-_0809648C:
- lsls r0, r4, 24
- lsrs r0, 24
- bl sub_8096040
- adds r4, 0x1
- cmp r4, 0x3
- ble _0809648C
- movs r0, 0
- bl sub_8095FE8
- movs r2, 0
- movs r1, 0x1
- strb r1, [r0]
- movs r1, 0x62
- strb r1, [r0, 0x4]
- strb r2, [r0, 0x5]
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_8096488
-
- thumb_func_start sub_80964B4
-sub_80964B4:
- push {lr}
- ldr r0, _080964D4
- ldr r0, [r0]
- ldr r1, _080964D8
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0
- bne _080964DC
- movs r0, 0x35
- bl sub_8096E80
- lsls r0, 24
- cmp r0, 0
- bne _080964DC
- movs r0, 0
- b _080964DE
- .align 2, 0
-_080964D4: .4byte gUnknown_203B490
-_080964D8: .4byte 0x00000325
-_080964DC:
- movs r0, 0x1
-_080964DE:
- pop {r1}
- bx r1
- thumb_func_end sub_80964B4
-
- thumb_func_start sub_80964E4
-sub_80964E4:
- push {lr}
- ldr r0, _08096504
- ldr r0, [r0]
- ldr r1, _08096508
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0
- bne _0809650C
- movs r0, 0x36
- bl sub_8096E80
- lsls r0, 24
- cmp r0, 0
- bne _0809650C
- movs r0, 0
- b _0809650E
- .align 2, 0
-_08096504: .4byte gUnknown_203B490
-_08096508: .4byte 0x00000326
-_0809650C:
- movs r0, 0x1
-_0809650E:
- pop {r1}
- bx r1
- thumb_func_end sub_80964E4
-
- thumb_func_start sub_8096514
-sub_8096514:
- push {r4,r5,lr}
- movs r5, 0
- movs r4, 0
-_0809651A:
- lsls r0, r4, 24
- lsrs r0, 24
- bl sub_809658C
- lsls r0, 24
- cmp r0, 0
- bne _0809652A
- adds r5, 0x1
-_0809652A:
- adds r4, 0x1
- cmp r4, 0x7
- ble _0809651A
- adds r0, r5, 0
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8096514
-
- thumb_func_start sub_8096538
-sub_8096538:
- push {r4,r5,lr}
- adds r4, r0, 0
- movs r3, 0
- ldr r5, _08096560
- movs r2, 0
-_08096542:
- ldr r0, [r5]
- adds r0, r2
- adds r1, r0, 0
- adds r1, 0x50
- ldrb r0, [r1]
- cmp r0, 0
- bne _08096564
- adds r0, r4, 0
- ldm r0!, {r2-r4}
- stm r1!, {r2-r4}
- ldm r0!, {r2,r3}
- stm r1!, {r2,r3}
- movs r0, 0
- b _0809656E
- .align 2, 0
-_08096560: .4byte gUnknown_203B490
-_08096564:
- adds r2, 0x14
- adds r3, 0x1
- cmp r3, 0x7
- ble _08096542
- movs r0, 0x1
-_0809656E:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8096538
-
- thumb_func_start sub_8096574
-sub_8096574:
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _08096588
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 2
- adds r1, 0x50
- ldr r0, [r2]
- adds r0, r1
- bx lr
- .align 2, 0
-_08096588: .4byte gUnknown_203B490
- thumb_func_end sub_8096574
-
- thumb_func_start sub_809658C
-sub_809658C:
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r1, _080965AC
- ldr r2, [r1]
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 2
- adds r2, r1
- adds r2, 0x50
- ldrb r0, [r2]
- cmp r0, 0
- beq _080965B0
- movs r0, 0
- b _080965B2
- .align 2, 0
-_080965AC: .4byte gUnknown_203B490
-_080965B0:
- movs r0, 0x1
-_080965B2:
- pop {r1}
- bx r1
- thumb_func_end sub_809658C
-
- thumb_func_start sub_80965B8
-sub_80965B8:
- push {r4,lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r4, _080965F0
- ldr r1, [r4]
- lsls r2, r0, 2
- adds r2, r0
- lsls r2, 2
- adds r1, r2
- adds r1, 0x50
- movs r3, 0
- strb r3, [r1]
- ldr r0, [r4]
- adds r0, r2
- adds r0, 0x54
- movs r1, 0x63
- strb r1, [r0]
- ldr r0, [r4]
- adds r0, r2
- adds r0, 0x55
- strb r3, [r0]
- ldr r0, [r4]
- adds r0, r2
- adds r0, 0x61
- strb r3, [r0]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080965F0: .4byte gUnknown_203B490
- thumb_func_end sub_80965B8
-
- thumb_func_start sub_80965F4
-sub_80965F4:
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- movs r2, 0
- movs r3, 0
- ldr r0, _0809660C
- mov r12, r0
- mov r8, r3
- movs r4, 0
- mov r9, r4
- b _08096636
- .align 2, 0
-_0809660C: .4byte gUnknown_203B490
-_08096610:
- cmp r2, r3
- ble _0809662A
- mov r1, r12
- ldr r0, [r1]
- mov r5, r8
- adds r1, r0, r5
- adds r0, r4
- adds r1, 0x50
- adds r0, 0x50
- ldm r0!, {r5-r7}
- stm r1!, {r5-r7}
- ldm r0!, {r6,r7}
- stm r1!, {r6,r7}
-_0809662A:
- adds r4, 0x14
- movs r0, 0x14
- add r9, r0
- adds r2, 0x1
- add r8, r0
- adds r3, 0x1
-_08096636:
- cmp r2, 0x7
- bgt _08096666
- mov r1, r12
- ldr r0, [r1]
- adds r0, r4
- adds r0, 0x50
- ldrb r0, [r0]
- cmp r0, 0
- bne _08096666
- ldr r6, _08096694
- mov r1, r9
-_0809664C:
- adds r1, 0x14
- adds r4, 0x14
- movs r5, 0x14
- add r9, r5
- adds r2, 0x1
- cmp r2, 0x7
- bgt _08096666
- ldr r0, [r6]
- adds r0, r1
- adds r0, 0x50
- ldrb r0, [r0]
- cmp r0, 0
- beq _0809664C
-_08096666:
- cmp r2, 0x8
- bne _08096610
- cmp r3, 0x7
- bgt _08096688
- ldr r4, _08096694
- movs r2, 0
- lsls r0, r3, 2
- adds r0, r3
- lsls r1, r0, 2
-_08096678:
- ldr r0, [r4]
- adds r0, r1
- adds r0, 0x50
- strb r2, [r0]
- adds r1, 0x14
- adds r3, 0x1
- cmp r3, 0x7
- ble _08096678
-_08096688:
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08096694: .4byte gUnknown_203B490
- thumb_func_end sub_80965F4
-
- thumb_func_start sub_8096698
-sub_8096698:
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x14
- movs r1, 0
-_080966A6:
- adds r6, r1, 0x1
- mov r10, r6
- cmp r6, 0x7
- bgt _08096730
- ldr r0, _08096748
- mov r8, r0
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 2
- mov r9, r0
- lsls r0, r6, 2
- adds r0, r6
- lsls r4, r0, 2
-_080966C0:
- mov r2, r8
- ldr r1, [r2]
- adds r3, r1, r4
- adds r5, r3, 0
- adds r5, 0x50
- ldrb r0, [r5]
- cmp r0, 0
- beq _08096724
- add r1, r9
- mov r12, r1
- mov r0, r12
- adds r0, 0x54
- adds r1, r3, 0
- adds r1, 0x54
- ldrb r2, [r0]
- ldrb r0, [r1]
- cmp r2, r0
- bhi _080966F6
- cmp r2, r0
- bne _08096724
- mov r0, r12
- adds r0, 0x55
- adds r1, 0x1
- ldrb r0, [r0]
- ldrb r1, [r1]
- cmp r0, r1
- bls _08096724
-_080966F6:
- mov r1, sp
- mov r0, r12
- adds r0, 0x50
- ldm r0!, {r2,r3,r7}
- stm r1!, {r2,r3,r7}
- ldm r0!, {r3,r7}
- stm r1!, {r3,r7}
- mov r1, r12
- adds r1, 0x50
- adds r0, r5, 0
- ldm r0!, {r2,r3,r5}
- stm r1!, {r2,r3,r5}
- ldm r0!, {r2,r7}
- stm r1!, {r2,r7}
- mov r3, r8
- ldr r1, [r3]
- adds r1, r4
- adds r1, 0x50
- mov r0, sp
- ldm r0!, {r2,r5,r7}
- stm r1!, {r2,r5,r7}
- ldm r0!, {r3,r5}
- stm r1!, {r3,r5}
-_08096724:
- adds r4, 0x14
- movs r7, 0x1
- add r10, r7
- mov r0, r10
- cmp r0, 0x7
- ble _080966C0
-_08096730:
- adds r1, r6, 0
- cmp r1, 0x6
- ble _080966A6
- add sp, 0x14
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08096748: .4byte gUnknown_203B490
- thumb_func_end sub_8096698
-
- thumb_func_start sub_809674C
-sub_809674C:
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- movs r0, 0x4
- movs r1, 0x8
- bl RandomRange
- mov r8, r0
- ldr r3, _08096864
- movs r2, 0
- movs r1, 0
- movs r7, 0x7
-_08096764:
- ldr r0, [r3]
- adds r0, r1
- adds r0, 0x50
- strb r2, [r0]
- adds r1, 0x14
- subs r7, 0x1
- cmp r7, 0
- bge _08096764
- movs r7, 0
- movs r0, 0xE
- bl sub_8097318
- lsls r0, 24
- cmp r0, 0
- beq _080967C0
- movs r0, 0
- bl sub_8096574
- adds r5, r0, 0
- movs r4, 0x2
- strb r4, [r5]
- movs r0, 0x6
- strb r0, [r5, 0x1]
- movs r0, 0x1
- strb r0, [r5, 0x2]
- movs r0, 0x2A
- strb r0, [r5, 0x4]
- movs r0, 0xA
- strb r0, [r5, 0x5]
- bl Random
- ldr r1, _08096868
- ands r1, r0
- str r1, [r5, 0x8]
- movs r1, 0
- movs r0, 0xC2
- lsls r0, 1
- strh r0, [r5, 0xC]
- movs r0, 0x38
- strh r0, [r5, 0xE]
- strb r1, [r5, 0x10]
- strb r4, [r5, 0x11]
- movs r0, 0x3A
- strb r0, [r5, 0x12]
- strb r1, [r5, 0x13]
- movs r7, 0x1
-_080967C0:
- movs r0, 0xF
- bl sub_8097318
- lsls r0, 24
- cmp r0, 0
- beq _0809680A
- lsls r0, r7, 24
- lsrs r0, 24
- bl sub_8096574
- adds r5, r0, 0
- movs r0, 0x3
- strb r0, [r5]
- movs r0, 0x6
- strb r0, [r5, 0x1]
- movs r4, 0x2
- strb r4, [r5, 0x2]
- movs r0, 0x35
- strb r0, [r5, 0x4]
- movs r0, 0xF
- strb r0, [r5, 0x5]
- bl Random
- ldr r1, _08096868
- ands r1, r0
- str r1, [r5, 0x8]
- movs r1, 0
- movs r0, 0x82
- lsls r0, 1
- strh r0, [r5, 0xC]
- strh r0, [r5, 0xE]
- strb r1, [r5, 0x10]
- strb r4, [r5, 0x11]
- movs r0, 0x3A
- strb r0, [r5, 0x12]
- strb r1, [r5, 0x13]
- adds r7, 0x1
-_0809680A:
- movs r0, 0x1C
- bl sub_8097318
- lsls r0, 24
- cmp r0, 0
- beq _08096854
- lsls r0, r7, 24
- lsrs r0, 24
- bl sub_8096574
- adds r5, r0, 0
- movs r0, 0x4
- strb r0, [r5]
- movs r0, 0x6
- strb r0, [r5, 0x1]
- movs r0, 0x3
- strb r0, [r5, 0x2]
- movs r0, 0x1A
- strb r0, [r5, 0x4]
- movs r0, 0x14
- strb r0, [r5, 0x5]
- bl Random
- ldr r1, _08096868
- ands r1, r0
- str r1, [r5, 0x8]
- movs r1, 0
- ldr r0, _0809686C
- strh r0, [r5, 0xC]
- strh r0, [r5, 0xE]
- strb r1, [r5, 0x10]
- movs r0, 0x2
- strb r0, [r5, 0x11]
- movs r0, 0x3A
- strb r0, [r5, 0x12]
- strb r1, [r5, 0x13]
- adds r7, 0x1
-_08096854:
- lsls r0, r7, 2
- adds r0, r7
- lsls r0, 2
- adds r5, r0, 0
- adds r5, 0x50
- adds r4, r0, 0
- b _08096886
- .align 2, 0
-_08096864: .4byte gUnknown_203B490
-_08096868: .4byte 0x00ffffff
-_0809686C: .4byte 0x0000014d
-_08096870:
- movs r0, 0
- movs r1, 0x4
- bl RandomRange
- ldr r1, [r6]
- adds r1, r4
- adds r1, 0x61
- strb r0, [r1]
- adds r5, 0x14
- adds r4, 0x14
- adds r7, 0x1
-_08096886:
- cmp r7, r8
- bgt _0809689A
- ldr r6, _080968AC
- ldr r0, [r6]
- adds r0, r5
- bl sub_8095B28
- lsls r0, 24
- cmp r0, 0
- bne _08096870
-_0809689A:
- bl sub_80965F4
- bl sub_8096698
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080968AC: .4byte gUnknown_203B490
- thumb_func_end sub_809674C
-
- thumb_func_start sub_80968B0
-sub_80968B0:
- push {r4,r5,lr}
- adds r3, r0, 0
- movs r4, 0
- ldr r0, _08096928
- ldr r0, [r0]
- adds r2, r0, 0
- adds r2, 0xF0
-_080968BE:
- ldrb r0, [r2]
- cmp r0, 0
- beq _0809692C
- ldrb r0, [r3, 0x1]
- ldrb r1, [r2, 0x1]
- cmp r0, r1
- bne _0809692C
- ldrb r0, [r3, 0x2]
- ldrb r5, [r2, 0x2]
- cmp r0, r5
- bne _0809692C
- ldrb r0, [r3, 0x4]
- ldrb r1, [r2, 0x4]
- cmp r0, r1
- bne _0809692C
- ldrb r0, [r3, 0x5]
- ldrb r5, [r2, 0x5]
- cmp r0, r5
- bne _0809692C
- ldr r1, [r3, 0x8]
- ldr r0, [r2, 0x8]
- cmp r1, r0
- bne _0809692C
- movs r0, 0xC
- ldrsh r1, [r3, r0]
- movs r5, 0xC
- ldrsh r0, [r2, r5]
- cmp r1, r0
- bne _0809692C
- movs r0, 0xE
- ldrsh r1, [r3, r0]
- movs r5, 0xE
- ldrsh r0, [r2, r5]
- cmp r1, r0
- bne _0809692C
- ldrb r0, [r3, 0x10]
- ldrb r1, [r2, 0x10]
- cmp r0, r1
- bne _0809692C
- ldrb r0, [r3, 0x11]
- ldrb r5, [r2, 0x11]
- cmp r0, r5
- bne _0809692C
- ldrb r0, [r3, 0x12]
- ldrb r1, [r2, 0x12]
- cmp r0, r1
- bne _0809692C
- ldrb r0, [r3, 0x13]
- ldrb r5, [r2, 0x13]
- cmp r0, r5
- bne _0809692C
- movs r0, 0x1
- b _08096936
- .align 2, 0
-_08096928: .4byte gUnknown_203B490
-_0809692C:
- adds r2, 0x14
- adds r4, 0x1
- cmp r4, 0x7
- ble _080968BE
- movs r0, 0
-_08096936:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_80968B0
-
- thumb_func_start sub_809693C
-sub_809693C:
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- adds r4, r0, 0
- ldrb r0, [r4, 0x4]
- mov r9, r0
- ldrb r0, [r4, 0x5]
- mov r8, r0
- movs r7, 0
- adds r0, r4, 0
- bl sub_80959C0
- lsls r0, 24
- cmp r0, 0
- bne _08096962
- b _0809699A
-_0809695E:
- movs r0, 0x1
- b _0809699C
-_08096962:
- ldrb r0, [r4, 0x1]
- cmp r0, 0x2
- bne _0809696A
- movs r7, 0x1
-_0809696A:
- movs r6, 0
- movs r5, 0xF0
- movs r4, 0
-_08096970:
- ldr r0, _080969A8
- ldr r1, [r0]
- adds r0, r1, r4
- adds r0, 0xF0
- ldrb r0, [r0]
- cmp r0, 0x6
- bne _08096990
- adds r0, r1, r5
- mov r1, r9
- mov r2, r8
- adds r3, r7, 0
- bl sub_8095E38
- lsls r0, 24
- cmp r0, 0
- bne _0809695E
-_08096990:
- adds r5, 0x14
- adds r4, 0x14
- adds r6, 0x1
- cmp r6, 0x7
- ble _08096970
-_0809699A:
- movs r0, 0
-_0809699C:
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_080969A8: .4byte gUnknown_203B490
- thumb_func_end sub_809693C
-
- thumb_func_start sub_80969AC
-sub_80969AC:
- push {r4,r5,lr}
- movs r5, 0
- movs r4, 0
-_080969B2:
- lsls r0, r4, 24
- lsrs r0, 24
- bl sub_8096ACC
- lsls r0, 24
- cmp r0, 0
- bne _080969C2
- adds r5, 0x1
-_080969C2:
- adds r4, 0x1
- cmp r4, 0x7
- ble _080969B2
- adds r0, r5, 0
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_80969AC
-
- thumb_func_start sub_80969D0
-sub_80969D0:
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r6, r0, 24
- movs r5, 0
- movs r4, 0
-_080969DA:
- lsls r0, r4, 24
- lsrs r0, 24
- bl sub_8096AB4
- adds r1, r0, 0
- ldrb r0, [r1, 0x4]
- cmp r0, r6
- bne _080969FA
- ldrb r0, [r1]
- cmp r0, 0x6
- beq _080969F8
- cmp r0, 0x8
- beq _080969F8
- cmp r0, 0x9
- bne _080969FA
-_080969F8:
- adds r5, 0x1
-_080969FA:
- adds r4, 0x1
- cmp r4, 0x7
- ble _080969DA
- adds r0, r5, 0
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end sub_80969D0
-
- thumb_func_start sub_8096A08
-sub_8096A08:
- push {r4-r6,lr}
- sub sp, 0xC
- adds r6, r1, 0
- lsls r0, 24
- lsrs r5, r0, 24
- movs r4, 0
-_08096A14:
- lsls r0, r4, 24
- lsrs r0, 24
- bl sub_8096AB4
- adds r2, r0, 0
- ldrb r0, [r2, 0x4]
- cmp r0, r5
- bne _08096A68
- ldrb r0, [r2]
- cmp r0, 0x6
- bne _08096A68
- ldrb r0, [r2, 0x1]
- cmp r0, 0x2
- bne _08096A68
- ldr r1, _08096A60
- ldr r0, [sp, 0x8]
- ands r0, r1
- movs r1, 0x4A
- orrs r0, r1
- ldr r1, _08096A64
- ands r0, r1
- movs r1, 0x80
- lsls r1, 1
- orrs r0, r1
- str r0, [sp, 0x8]
- movs r0, 0xC
- ldrsh r1, [r2, r0]
- add r0, sp, 0x8
- str r0, [sp]
- movs r0, 0
- str r0, [sp, 0x4]
- adds r0, r6, 0
- movs r2, 0
- movs r3, 0
- bl sub_808CFD0
- movs r0, 0x1
- b _08096A70
- .align 2, 0
-_08096A60: .4byte 0xffffff00
-_08096A64: .4byte 0xffff00ff
-_08096A68:
- adds r4, 0x1
- cmp r4, 0x7
- ble _08096A14
- movs r0, 0
-_08096A70:
- add sp, 0xC
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end sub_8096A08
-
- thumb_func_start sub_8096A78
-sub_8096A78:
- push {r4,r5,lr}
- adds r4, r0, 0
- movs r3, 0
- ldr r5, _08096AA0
- movs r2, 0
-_08096A82:
- ldr r0, [r5]
- adds r0, r2
- adds r1, r0, 0
- adds r1, 0xF0
- ldrb r0, [r1]
- cmp r0, 0
- bne _08096AA4
- adds r0, r4, 0
- ldm r0!, {r2-r4}
- stm r1!, {r2-r4}
- ldm r0!, {r2,r3}
- stm r1!, {r2,r3}
- movs r0, 0
- b _08096AAE
- .align 2, 0
-_08096AA0: .4byte gUnknown_203B490
-_08096AA4:
- adds r2, 0x14
- adds r3, 0x1
- cmp r3, 0x7
- ble _08096A82
- movs r0, 0x1
-_08096AAE:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8096A78
-
- thumb_func_start sub_8096AB4
-sub_8096AB4:
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _08096AC8
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 2
- adds r1, 0xF0
- ldr r0, [r2]
- adds r0, r1
- bx lr
- .align 2, 0
-_08096AC8: .4byte gUnknown_203B490
- thumb_func_end sub_8096AB4
-
- thumb_func_start sub_8096ACC
-sub_8096ACC:
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r1, _08096AEC
- ldr r2, [r1]
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 2
- adds r2, r1
- adds r2, 0xF0
- ldrb r0, [r2]
- cmp r0, 0
- beq _08096AF0
- movs r0, 0
- b _08096AF2
- .align 2, 0
-_08096AEC: .4byte gUnknown_203B490
-_08096AF0:
- movs r0, 0x1
-_08096AF2:
- pop {r1}
- bx r1
- thumb_func_end sub_8096ACC
-
- thumb_func_start sub_8096AF8
-sub_8096AF8:
- push {r4-r6,lr}
- adds r5, r0, 0
- adds r0, r1, 0
- adds r4, r2, 0
- lsls r0, 24
- lsrs r0, 24
- lsls r4, 24
- lsrs r4, 24
- bl sub_8096AB4
- adds r3, r0, 0
- movs r1, 0
- strb r1, [r5]
- ldrh r0, [r3, 0xC]
- strh r0, [r5, 0x2]
- strh r1, [r5, 0x4]
- ldrb r0, [r3, 0x4]
- cmp r0, r4
- bne _08096B92
- ldrb r0, [r3, 0x1]
- cmp r0, 0x4
- bhi _08096B92
- lsls r0, 2
- ldr r1, _08096B30
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08096B30: .4byte _08096B34
- .align 2, 0
-_08096B34:
- .4byte _08096B78
- .4byte _08096B84
- .4byte _08096B84
- .4byte _08096B48
- .4byte _08096B78
-_08096B48:
- ldrb r0, [r3]
- cmp r0, 0x6
- bne _08096B92
- ldr r0, _08096B74
- movs r6, 0x1
- ldr r2, [r0]
- movs r4, 0x13
-_08096B56:
- ldrb r1, [r2]
- adds r0, r6, 0
- ands r0, r1
- cmp r0, 0
- beq _08096B6A
- ldrb r0, [r2, 0x2]
- ldrb r1, [r3, 0x10]
- cmp r0, r1
- bne _08096B6A
- strb r6, [r5]
-_08096B6A:
- adds r2, 0x4
- subs r4, 0x1
- cmp r4, 0
- bge _08096B56
- b _08096B92
- .align 2, 0
-_08096B74: .4byte gUnknown_203B460
-_08096B78:
- ldrb r0, [r3]
- cmp r0, 0x9
- bne _08096B92
- movs r0, 0x1
- strb r0, [r5]
- b _08096B92
-_08096B84:
- ldrb r0, [r3]
- cmp r0, 0x9
- bne _08096B92
- movs r0, 0x1
- strb r0, [r5]
- ldrh r0, [r3, 0xE]
- strh r0, [r5, 0x4]
-_08096B92:
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_8096AF8
-
- thumb_func_start sub_8096B98
-sub_8096B98:
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- movs r4, 0
-_08096BA0:
- lsls r0, r4, 24
- lsrs r0, 24
- bl sub_8096AB4
- adds r1, r0, 0
- ldrb r0, [r1]
- cmp r0, 0x6
- bne _08096BC2
- ldrb r0, [r1, 0x1]
- cmp r0, 0x2
- bne _08096BC2
- ldrb r0, [r1, 0x4]
- cmp r0, r5
- bne _08096BC2
- movs r2, 0xE
- ldrsh r0, [r1, r2]
- b _08096BCA
-_08096BC2:
- adds r4, 0x1
- cmp r4, 0x7
- ble _08096BA0
- movs r0, 0
-_08096BCA:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8096B98
-
- thumb_func_start sub_8096BD0
-sub_8096BD0:
- push {r4,r5,lr}
- ldr r0, _08096C04
- ldr r0, [r0]
- adds r5, r0, 0
- adds r5, 0xF0
- movs r4, 0
-_08096BDC:
- ldrb r0, [r5]
- cmp r0, 0x9
- bgt _08096BEE
- cmp r0, 0x7
- blt _08096BEE
- lsls r0, r4, 24
- lsrs r0, 24
- bl sub_8096C3C
-_08096BEE:
- adds r5, 0x14
- adds r4, 0x1
- cmp r4, 0x7
- ble _08096BDC
- bl sub_8096C80
- bl sub_8096D24
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08096C04: .4byte gUnknown_203B490
- thumb_func_end sub_8096BD0
-
- thumb_func_start sub_8096C08
-sub_8096C08:
- push {lr}
- adds r3, r0, 0
- ldr r0, _08096C28
- ldr r0, [r0]
- adds r1, r0, 0
- adds r1, 0xF0
- movs r2, 0
-_08096C16:
- ldrb r0, [r1]
- cmp r0, 0x4
- bls _08096C2C
- ldrb r0, [r1, 0x2]
- cmp r0, 0x4
- bne _08096C2C
- strb r2, [r3]
- movs r0, 0x1
- b _08096C36
- .align 2, 0
-_08096C28: .4byte gUnknown_203B490
-_08096C2C:
- adds r1, 0x14
- adds r2, 0x1
- cmp r2, 0x7
- ble _08096C16
- movs r0, 0
-_08096C36:
- pop {r1}
- bx r1
- thumb_func_end sub_8096C08
-
- thumb_func_start sub_8096C3C
-sub_8096C3C:
- push {r4,lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r3, _08096C78
- ldr r1, [r3]
- lsls r2, r0, 2
- adds r2, r0
- lsls r2, 2
- adds r1, r2
- adds r1, 0xF0
- movs r4, 0
- strb r4, [r1]
- ldr r0, [r3]
- adds r0, r2
- adds r0, 0xF4
- movs r1, 0x63
- strb r1, [r0]
- ldr r0, [r3]
- adds r0, r2
- adds r0, 0xF5
- strb r4, [r0]
- ldr r0, [r3]
- adds r0, r2
- ldr r2, _08096C7C
- adds r1, r0, r2
- movs r0, 0x5
- strb r0, [r1]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08096C78: .4byte gUnknown_203B490
-_08096C7C: .4byte 0x00000101
- thumb_func_end sub_8096C3C
-
- thumb_func_start sub_8096C80
-sub_8096C80:
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- movs r2, 0
- movs r3, 0
- ldr r0, _08096C98
- mov r12, r0
- mov r8, r3
- movs r4, 0
- mov r9, r4
- b _08096CC2
- .align 2, 0
-_08096C98: .4byte gUnknown_203B490
-_08096C9C:
- cmp r2, r3
- ble _08096CB6
- mov r1, r12
- ldr r0, [r1]
- mov r5, r8
- adds r1, r0, r5
- adds r0, r4
- adds r1, 0xF0
- adds r0, 0xF0
- ldm r0!, {r5-r7}
- stm r1!, {r5-r7}
- ldm r0!, {r6,r7}
- stm r1!, {r6,r7}
-_08096CB6:
- adds r4, 0x14
- movs r0, 0x14
- add r9, r0
- adds r2, 0x1
- add r8, r0
- adds r3, 0x1
-_08096CC2:
- cmp r2, 0x7
- bgt _08096CF2
- mov r1, r12
- ldr r0, [r1]
- adds r0, r4
- adds r0, 0xF0
- ldrb r0, [r0]
- cmp r0, 0
- bne _08096CF2
- ldr r6, _08096D20
- mov r1, r9
-_08096CD8:
- adds r1, 0x14
- adds r4, 0x14
- movs r5, 0x14
- add r9, r5
- adds r2, 0x1
- cmp r2, 0x7
- bgt _08096CF2
- ldr r0, [r6]
- adds r0, r1
- adds r0, 0xF0
- ldrb r0, [r0]
- cmp r0, 0
- beq _08096CD8
-_08096CF2:
- cmp r2, 0x8
- bne _08096C9C
- cmp r3, 0x7
- bgt _08096D14
- ldr r4, _08096D20
- movs r2, 0
- lsls r0, r3, 2
- adds r0, r3
- lsls r1, r0, 2
-_08096D04:
- ldr r0, [r4]
- adds r0, r1
- adds r0, 0xF0
- strb r2, [r0]
- adds r1, 0x14
- adds r3, 0x1
- cmp r3, 0x7
- ble _08096D04
-_08096D14:
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08096D20: .4byte gUnknown_203B490
- thumb_func_end sub_8096C80
-
- thumb_func_start sub_8096D24
-sub_8096D24:
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x18
- movs r1, 0
-_08096D32:
- adds r6, r1, 0x1
- mov r10, r6
- cmp r6, 0x7
- bgt _08096DBC
- ldr r0, _08096DD4
- mov r8, r0
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 2
- mov r9, r0
- lsls r0, r6, 2
- adds r0, r6
- lsls r4, r0, 2
-_08096D4C:
- mov r1, r8
- ldr r2, [r1]
- adds r3, r2, r4
- adds r5, r3, 0
- adds r5, 0xF0
- str r5, [sp, 0x14]
- ldrb r0, [r5]
- cmp r0, 0
- beq _08096DB0
- add r2, r9
- mov r12, r2
- mov r0, r12
- adds r0, 0xF4
- adds r1, r3, 0
- adds r1, 0xF4
- ldrb r2, [r0]
- ldrb r0, [r1]
- cmp r2, r0
- bhi _08096D84
- cmp r2, r0
- bne _08096DB0
- mov r0, r12
- adds r0, 0xF5
- adds r1, 0x1
- ldrb r0, [r0]
- ldrb r1, [r1]
- cmp r0, r1
- bls _08096DB0
-_08096D84:
- mov r2, r12
- adds r2, 0xF0
- mov r1, sp
- adds r0, r2, 0
- ldm r0!, {r3,r5,r7}
- stm r1!, {r3,r5,r7}
- ldm r0!, {r3,r7}
- stm r1!, {r3,r7}
- ldr r0, [sp, 0x14]
- ldm r0!, {r1,r5,r7}
- stm r2!, {r1,r5,r7}
- ldm r0!, {r3,r5}
- stm r2!, {r3,r5}
- mov r7, r8
- ldr r1, [r7]
- adds r1, r4
- adds r1, 0xF0
- mov r0, sp
- ldm r0!, {r2,r3,r5}
- stm r1!, {r2,r3,r5}
- ldm r0!, {r2,r7}
- stm r1!, {r2,r7}
-_08096DB0:
- adds r4, 0x14
- movs r3, 0x1
- add r10, r3
- mov r5, r10
- cmp r5, 0x7
- ble _08096D4C
-_08096DBC:
- adds r1, r6, 0
- cmp r1, 0x6
- ble _08096D32
- add sp, 0x18
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08096DD4: .4byte gUnknown_203B490
- thumb_func_end sub_8096D24
-
- thumb_func_start sub_8096DD8
-sub_8096DD8:
- ldr r0, _08096DE4
- ldr r0, [r0]
- movs r1, 0xC8
- lsls r1, 1
- adds r0, r1
- bx lr
- .align 2, 0
-_08096DE4: .4byte gUnknown_203B490
- thumb_func_end sub_8096DD8
-
- thumb_func_start sub_8096DE8
-sub_8096DE8:
- ldr r0, _08096DF4
- ldr r0, [r0]
- movs r1, 0xDC
- lsls r1, 1
- adds r0, r1
- bx lr
- .align 2, 0
-_08096DF4: .4byte gUnknown_203B490
- thumb_func_end sub_8096DE8
-
- thumb_func_start sub_8096DF8
-sub_8096DF8:
- lsls r0, 24
- lsrs r0, 24
- ldr r1, _08096E10
- ldr r1, [r1]
- movs r2, 0xBC
- lsls r2, 2
- adds r1, r2
- adds r1, r0
- movs r0, 0x1
- strb r0, [r1]
- bx lr
- .align 2, 0
-_08096E10: .4byte gUnknown_203B490
- thumb_func_end sub_8096DF8
-
- thumb_func_start sub_8096E14
-sub_8096E14:
- lsls r0, 24
- lsrs r0, 24
- ldr r1, _08096E28
- ldr r1, [r1]
- movs r2, 0xBC
- lsls r2, 2
- adds r1, r2
- adds r1, r0
- ldrb r0, [r1]
- bx lr
- .align 2, 0
-_08096E28: .4byte gUnknown_203B490
- thumb_func_end sub_8096E14
-
- thumb_func_start sub_8096E2C
-sub_8096E2C:
- push {lr}
- movs r3, 0
- ldr r0, _08096E70
- ldr r1, [r0]
- movs r2, 0x3
-_08096E36:
- ldrb r0, [r1]
- cmp r0, 0x1
- bne _08096E48
- ldrb r0, [r1, 0x5]
- cmp r3, r0
- bgt _08096E48
- cmp r0, 0x31
- bhi _08096E48
- adds r3, r0, 0x1
-_08096E48:
- adds r1, 0x14
- subs r2, 0x1
- cmp r2, 0
- bge _08096E36
- adds r2, r3, 0
- cmp r2, 0x31
- bgt _08096E7A
- ldr r0, _08096E70
- ldr r0, [r0]
- movs r3, 0xBC
- lsls r3, 2
- adds r1, r0, r3
-_08096E60:
- adds r0, r1, r2
- ldrb r0, [r0]
- cmp r0, 0
- bne _08096E74
- lsls r0, r2, 24
- lsrs r0, 24
- b _08096E7C
- .align 2, 0
-_08096E70: .4byte gUnknown_203B490
-_08096E74:
- adds r2, 0x1
- cmp r2, 0x31
- ble _08096E60
-_08096E7A:
- movs r0, 0x38
-_08096E7C:
- pop {r1}
- bx r1
- thumb_func_end sub_8096E2C
-
- thumb_func_start sub_8096E80
-sub_8096E80:
- push {lr}
- lsls r0, 24
- lsrs r3, r0, 24
- movs r2, 0
- ldr r0, _08096E9C
- ldr r1, [r0]
-_08096E8C:
- ldrb r0, [r1]
- cmp r0, 0x1
- bne _08096EA0
- ldrb r0, [r1, 0x5]
- cmp r3, r0
- bne _08096EA0
- movs r0, 0x1
- b _08096EAA
- .align 2, 0
-_08096E9C: .4byte gUnknown_203B490
-_08096EA0:
- adds r1, 0x14
- adds r2, 0x1
- cmp r2, 0x3
- ble _08096E8C
- movs r0, 0
-_08096EAA:
- pop {r1}
- bx r1
- thumb_func_end sub_8096E80
-
- thumb_func_start sub_8096EB0
-sub_8096EB0:
- ldrb r1, [r0, 0x2]
- ldrb r2, [r0, 0x1]
- adds r1, r2
- ldrb r3, [r0, 0x4]
- adds r2, r1, r3
- ldrb r1, [r0, 0x5]
- adds r2, r1
- ldr r1, [r0, 0x8]
- lsls r1, 8
- adds r2, r1
- movs r3, 0xC
- ldrsh r1, [r0, r3]
- lsls r1, 12
- adds r2, r1
- movs r3, 0xE
- ldrsh r1, [r0, r3]
- lsls r1, 16
- adds r2, r1
- ldrb r1, [r0, 0x10]
- lsls r1, 24
- adds r1, r2, r1
- ldrb r3, [r0, 0x11]
- adds r2, r1, r3
- ldrb r1, [r0, 0x12]
- adds r1, r2, r1
- ldrb r0, [r0, 0x13]
- adds r2, r1, r0
- adds r0, r2, 0
- bx lr
- thumb_func_end sub_8096EB0
-
- thumb_func_start sub_8096EEC
-sub_8096EEC:
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- mov r12, r0
- movs r3, 0xF
- ldr r5, _08096F4C
- mov r8, r5
- movs r4, 0x8C
- lsls r4, 2
-_08096EFE:
- mov r0, r8
- ldr r2, [r0]
- lsls r1, r3, 1
- adds r1, r3
- lsls r1, 2
- adds r1, r2, r1
- subs r3, 0x1
- lsls r0, r3, 1
- adds r0, r3
- lsls r0, 2
- adds r2, r0
- adds r1, r4
- adds r2, r4
- ldm r2!, {r0,r6,r7}
- stm r1!, {r0,r6,r7}
- cmp r3, 0
- bgt _08096EFE
- ldr r2, [r5]
- movs r3, 0x8C
- lsls r3, 2
- adds r2, r3
- mov r6, r12
- ldr r0, [r6, 0x4]
- ldr r1, [r6, 0x8]
- str r0, [r2]
- str r1, [r2, 0x4]
- mov r0, r12
- bl sub_8096EB0
- ldr r1, [r5]
- movs r7, 0x8E
- lsls r7, 2
- adds r1, r7
- str r0, [r1]
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08096F4C: .4byte gUnknown_203B490
- thumb_func_end sub_8096EEC
-
- thumb_func_start sub_8096F50
-sub_8096F50:
- push {r4-r7,lr}
- adds r4, r0, 0
- bl sub_8096EB0
- mov r12, r0
- movs r5, 0
- ldr r0, _08096F8C
- ldr r7, [r0]
- ldrb r6, [r4, 0x4]
- movs r3, 0
-_08096F64:
- movs r1, 0x8C
- lsls r1, 2
- adds r0, r3, r1
- adds r2, r7, r0
- ldrb r0, [r2]
- cmp r0, r6
- bne _08096F90
- ldrb r0, [r2, 0x1]
- ldrb r1, [r4, 0x5]
- cmp r0, r1
- bne _08096F90
- ldr r1, [r2, 0x4]
- ldr r0, [r4, 0x8]
- cmp r1, r0
- bne _08096F90
- ldr r0, [r2, 0x8]
- cmp r0, r12
- bne _08096F90
- movs r0, 0x1
- b _08096F9A
- .align 2, 0
-_08096F8C: .4byte gUnknown_203B490
-_08096F90:
- adds r3, 0xC
- adds r5, 0x1
- cmp r5, 0xF
- ble _08096F64
- movs r0, 0
-_08096F9A:
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_8096F50
-
- thumb_func_start sub_8096FA0
-sub_8096FA0:
- push {r4-r7,lr}
- sub sp, 0x14
- adds r3, r0, 0
- adds r2, r1, 0
- mov r0, sp
- adds r1, r3, 0
- bl sub_809485C
- add r7, sp, 0x10
- ldr r6, _08097020
- movs r5, 0
- movs r4, 0x3
-_08096FB8:
- ldr r1, [r6]
- adds r1, r5
- mov r0, sp
- bl sub_80971EC
- adds r5, 0x14
- subs r4, 0x1
- cmp r4, 0
- bge _08096FB8
- ldr r6, _08097020
- movs r5, 0x50
- movs r4, 0x7
-_08096FD0:
- ldr r1, [r6]
- adds r1, r5
- mov r0, sp
- bl sub_80971EC
- adds r5, 0x14
- subs r4, 0x1
- cmp r4, 0
- bge _08096FD0
- ldr r6, _08097020
- movs r5, 0xF0
- movs r4, 0x7
-_08096FE8:
- ldr r1, [r6]
- adds r1, r5
- mov r0, sp
- bl sub_80971EC
- adds r5, 0x14
- subs r4, 0x1
- cmp r4, 0
- bge _08096FE8
- movs r4, 0
- movs r6, 0x1
- ldr r5, _08097020
-_08097000:
- mov r0, sp
- adds r1, r7, 0
- movs r2, 0x1
- bl sub_8094924
- ldr r1, [sp, 0x10]
- ands r1, r6
- cmp r1, 0
- beq _08097024
- ldr r0, [r5]
- movs r1, 0xBC
- lsls r1, 2
- adds r0, r1
- adds r0, r4
- strb r6, [r0]
- b _08097030
- .align 2, 0
-_08097020: .4byte gUnknown_203B490
-_08097024:
- ldr r0, [r5]
- movs r2, 0xBC
- lsls r2, 2
- adds r0, r2
- adds r0, r4
- strb r1, [r0]
-_08097030:
- adds r4, 0x1
- cmp r4, 0x37
- ble _08097000
- mov r0, sp
- adds r1, r7, 0
- movs r2, 0x1
- bl sub_8094924
- ldr r1, [sp, 0x10]
- movs r2, 0x1
- ands r1, r2
- cmp r1, 0
- beq _0809705C
- ldr r0, _08097058
- ldr r0, [r0]
- movs r1, 0xCA
- lsls r1, 2
- adds r0, r1
- strb r2, [r0]
- b _08097068
- .align 2, 0
-_08097058: .4byte gUnknown_203B490
-_0809705C:
- ldr r0, _080970D4
- ldr r0, [r0]
- movs r2, 0xCA
- lsls r2, 2
- adds r0, r2
- strb r1, [r0]
-_08097068:
- ldr r4, _080970D4
- ldr r1, [r4]
- movs r0, 0xC8
- lsls r0, 1
- adds r1, r0
- movs r2, 0xA0
- lsls r2, 1
- mov r0, sp
- bl sub_8094924
- ldr r1, [r4]
- movs r2, 0xDC
- lsls r2, 1
- adds r1, r2
- movs r2, 0xF0
- lsls r2, 2
- mov r0, sp
- bl sub_8094924
- adds r6, r4, 0
- movs r5, 0x8C
- lsls r5, 2
- movs r4, 0xF
-_08097096:
- ldr r1, [r6]
- adds r1, r5
- adds r1, 0x8
- mov r0, sp
- movs r2, 0x20
- bl sub_8094924
- ldr r1, [r6]
- adds r1, r5
- adds r1, 0x4
- mov r0, sp
- movs r2, 0x18
- bl sub_8094924
- ldr r1, [r6]
- adds r1, r5
- mov r0, sp
- bl sub_8090314
- adds r5, 0xC
- subs r4, 0x1
- cmp r4, 0
- bge _08097096
- mov r0, sp
- bl nullsub_102
- ldr r0, [sp, 0x8]
- add sp, 0x14
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_080970D4: .4byte gUnknown_203B490
- thumb_func_end sub_8096FA0
-
- thumb_func_start sub_80970D8
-sub_80970D8:
- push {r4-r7,lr}
- sub sp, 0x14
- adds r3, r0, 0
- adds r2, r1, 0
- mov r0, sp
- adds r1, r3, 0
- bl sub_809486C
- add r7, sp, 0x10
- ldr r6, _080971E8
- movs r5, 0
- movs r4, 0x3
-_080970F0:
- ldr r1, [r6]
- adds r1, r5
- mov r0, sp
- bl sub_8097270
- adds r5, 0x14
- subs r4, 0x1
- cmp r4, 0
- bge _080970F0
- ldr r6, _080971E8
- movs r5, 0x50
- movs r4, 0x7
-_08097108:
- ldr r1, [r6]
- adds r1, r5
- mov r0, sp
- bl sub_8097270
- adds r5, 0x14
- subs r4, 0x1
- cmp r4, 0
- bge _08097108
- ldr r6, _080971E8
- movs r5, 0xF0
- movs r4, 0x7
-_08097120:
- ldr r1, [r6]
- adds r1, r5
- mov r0, sp
- bl sub_8097270
- adds r5, 0x14
- subs r4, 0x1
- cmp r4, 0
- bge _08097120
- movs r4, 0
-_08097134:
- ldr r0, _080971E8
- ldr r0, [r0]
- movs r1, 0xBC
- lsls r1, 2
- adds r0, r1
- adds r0, r4
- ldrb r0, [r0]
- cmp r0, 0
- beq _0809714A
- movs r0, 0x1
- negs r0, r0
-_0809714A:
- str r0, [sp, 0x10]
- mov r0, sp
- adds r1, r7, 0
- movs r2, 0x1
- bl sub_809488C
- adds r4, 0x1
- cmp r4, 0x37
- ble _08097134
- ldr r0, _080971E8
- ldr r0, [r0]
- movs r1, 0xCA
- lsls r1, 2
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0
- beq _08097170
- movs r0, 0x1
- negs r0, r0
-_08097170:
- str r0, [sp, 0x10]
- mov r0, sp
- adds r1, r7, 0
- movs r2, 0x1
- bl sub_809488C
- ldr r4, _080971E8
- ldr r1, [r4]
- movs r0, 0xC8
- lsls r0, 1
- adds r1, r0
- movs r2, 0xA0
- lsls r2, 1
- mov r0, sp
- bl sub_809488C
- ldr r1, [r4]
- movs r0, 0xDC
- lsls r0, 1
- adds r1, r0
- movs r2, 0xF0
- lsls r2, 2
- mov r0, sp
- bl sub_809488C
- adds r6, r4, 0
- movs r5, 0x8C
- lsls r5, 2
- movs r4, 0xF
-_080971AA:
- ldr r1, [r6]
- adds r1, r5
- adds r1, 0x8
- mov r0, sp
- movs r2, 0x20
- bl sub_809488C
- ldr r1, [r6]
- adds r1, r5
- adds r1, 0x4
- mov r0, sp
- movs r2, 0x18
- bl sub_809488C
- ldr r1, [r6]
- adds r1, r5
- mov r0, sp
- bl sub_80902F4
- adds r5, 0xC
- subs r4, 0x1
- cmp r4, 0
- bge _080971AA
- mov r0, sp
- bl nullsub_102
- ldr r0, [sp, 0x8]
- add sp, 0x14
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_080971E8: .4byte gUnknown_203B490
- thumb_func_end sub_80970D8
-
- thumb_func_start sub_80971EC
-sub_80971EC:
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- movs r2, 0x4
- bl sub_8094924
- adds r1, r5, 0x1
- adds r0, r4, 0
- movs r2, 0x3
- bl sub_8094924
- adds r1, r5, 0x2
- adds r0, r4, 0
- movs r2, 0x4
- bl sub_8094924
- adds r1, r5, 0
- adds r1, 0xC
- adds r0, r4, 0
- movs r2, 0x9
- bl sub_8094924
- adds r1, r5, 0
- adds r1, 0xE
- adds r0, r4, 0
- movs r2, 0x9
- bl sub_8094924
- adds r1, r5, 0
- adds r1, 0x10
- adds r0, r4, 0
- movs r2, 0x8
- bl sub_8094924
- adds r1, r5, 0
- adds r1, 0x11
- adds r0, r4, 0
- movs r2, 0x4
- bl sub_8094924
- adds r1, r5, 0
- adds r1, 0x12
- adds r0, r4, 0
- movs r2, 0x8
- bl sub_8094924
- adds r1, r5, 0
- adds r1, 0x13
- adds r0, r4, 0
- movs r2, 0x6
- bl sub_8094924
- adds r1, r5, 0
- adds r1, 0x8
- adds r0, r4, 0
- movs r2, 0x18
- bl sub_8094924
- adds r1, r5, 0x4
- adds r0, r4, 0
- bl sub_8090314
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_80971EC
-
- thumb_func_start sub_8097270
-sub_8097270:
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- movs r2, 0x4
- bl sub_809488C
- adds r1, r5, 0x1
- adds r0, r4, 0
- movs r2, 0x3
- bl sub_809488C
- adds r1, r5, 0x2
- adds r0, r4, 0
- movs r2, 0x4
- bl sub_809488C
- adds r1, r5, 0
- adds r1, 0xC
- adds r0, r4, 0
- movs r2, 0x9
- bl sub_809488C
- adds r1, r5, 0
- adds r1, 0xE
- adds r0, r4, 0
- movs r2, 0x9
- bl sub_809488C
- adds r1, r5, 0
- adds r1, 0x10
- adds r0, r4, 0
- movs r2, 0x8
- bl sub_809488C
- adds r1, r5, 0
- adds r1, 0x11
- adds r0, r4, 0
- movs r2, 0x4
- bl sub_809488C
- adds r1, r5, 0
- adds r1, 0x12
- adds r0, r4, 0
- movs r2, 0x8
- bl sub_809488C
- adds r1, r5, 0
- adds r1, 0x13
- adds r0, r4, 0
- movs r2, 0x6
- bl sub_809488C
- adds r1, r5, 0
- adds r1, 0x8
- adds r0, r4, 0
- movs r2, 0x18
- bl sub_809488C
- adds r1, r5, 0x4
- adds r0, r4, 0
- bl sub_80902F4
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_8097270
-
- thumb_func_start sub_80972F4
-sub_80972F4:
- push {lr}
- movs r0, 0
- movs r1, 0x2B
- bl sub_80015C0
- movs r0, 0
- movs r1, 0x2C
- bl sub_80015C0
- movs r0, 0
- movs r1, 0x2D
- bl sub_80015C0
- pop {r0}
- bx r0
- thumb_func_end sub_80972F4
-
- thumb_func_start nullsub_128
-nullsub_128:
- bx lr
- thumb_func_end nullsub_128
-
- thumb_func_start sub_8097318
-sub_8097318:
- push {lr}
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0xD
- bne _08097326
- movs r0, 0
- b _08097338
-_08097326:
- lsls r2, r0, 16
- lsrs r2, 16
- movs r0, 0
- movs r1, 0x2B
- bl sub_8001784
- cmp r0, 0
- beq _08097338
- movs r0, 0x1
-_08097338:
- pop {r1}
- bx r1
- thumb_func_end sub_8097318
-
- thumb_func_start sub_809733C
-sub_809733C:
- push {r4-r6,lr}
- lsls r0, 16
- asrs r4, r0, 16
- lsls r1, 24
- lsrs r6, r1, 24
- cmp r4, 0xD
- beq _0809737C
- lsls r0, r4, 16
- lsrs r5, r0, 16
- movs r0, 0
- movs r1, 0x2C
- adds r2, r5, 0
- bl sub_8001784
- cmp r0, 0
- bne _0809737C
- movs r0, 0
- movs r1, 0x2B
- adds r2, r5, 0
- adds r3, r6, 0
- bl sub_800199C
- cmp r6, 0
- beq _0809737C
- cmp r4, 0xE
- blt _0809737C
- cmp r4, 0xF
- ble _08097378
- cmp r4, 0x1C
- bne _0809737C
-_08097378:
- bl sub_809674C
-_0809737C:
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_809733C
-
- thumb_func_start sub_8097384
-sub_8097384:
- push {lr}
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0xD
- bne _08097392
- movs r0, 0
- b _080973A4
-_08097392:
- lsls r2, r0, 16
- lsrs r2, 16
- movs r0, 0
- movs r1, 0x2C
- bl sub_8001784
- cmp r0, 0
- beq _080973A4
- movs r0, 0x1
-_080973A4:
- pop {r1}
- bx r1
- thumb_func_end sub_8097384
-
- thumb_func_start sub_80973A8
-sub_80973A8:
- push {r4-r6,lr}
- lsls r0, 16
- asrs r0, 16
- lsls r1, 24
- lsrs r6, r1, 24
- cmp r0, 0xD
- beq _080973EE
- lsls r5, r0, 16
- cmp r6, 0
- beq _080973E2
- bl sub_80A26B8
- lsls r0, 16
- asrs r4, r0, 16
- lsrs r2, r5, 16
- movs r0, 0
- movs r1, 0x2B
- movs r3, 0
- bl sub_800199C
- movs r0, 0x1
- negs r0, r0
- cmp r4, r0
- beq _080973E2
- movs r0, 0
- movs r1, 0x12
- adds r2, r4, 0
- bl sub_80018D8
-_080973E2:
- lsrs r2, r5, 16
- movs r0, 0
- movs r1, 0x2C
- adds r3, r6, 0
- bl sub_800199C
-_080973EE:
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_80973A8
-
- thumb_func_start sub_80973F4
-sub_80973F4:
- push {lr}
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0xD
- bne _08097402
- movs r0, 0
- b _08097414
-_08097402:
- lsls r2, r0, 16
- lsrs r2, 16
- movs r0, 0
- movs r1, 0x2D
- bl sub_8001784
- cmp r0, 0
- beq _08097414
- movs r0, 0x1
-_08097414:
- pop {r1}
- bx r1
- thumb_func_end sub_80973F4
-
- thumb_func_start sub_8097418
-sub_8097418:
- push {r4-r7,lr}
- lsls r0, 16
- asrs r5, r0, 16
- lsls r1, 24
- lsrs r7, r1, 24
- cmp r5, 0xD
- beq _08097470
- lsls r6, r5, 16
- cmp r7, 0
- beq _08097464
- lsrs r2, r6, 16
- movs r0, 0
- movs r1, 0x2C
- movs r3, 0
- bl sub_800199C
- cmp r5, 0x1E
- bgt _08097464
- lsls r0, r5, 3
- ldr r1, _08097478
- adds r4, r0, r1
- ldrb r0, [r4, 0x4]
- cmp r0, 0xFF
- beq _0809744C
- bl sub_8097FA8
-_0809744C:
- ldrb r0, [r4, 0x5]
- cmp r0, 0xFF
- beq _08097456
- bl sub_8097FA8
-_08097456:
- cmp r5, 0x9
- bne _08097460
- movs r0, 0x1F
- bl sub_8097FA8
-_08097460:
- bl sub_8097FF8
-_08097464:
- lsrs r2, r6, 16
- movs r0, 0
- movs r1, 0x2D
- adds r3, r7, 0
- bl sub_800199C
-_08097470:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08097478: .4byte gStoryMissionText
- thumb_func_end sub_8097418
.align 2,0
diff --git a/asm/code_80958E8.s b/asm/code_80958E8.s
new file mode 100644
index 0000000..896c0dd
--- /dev/null
+++ b/asm/code_80958E8.s
@@ -0,0 +1,3495 @@
+ .include "constants/gba_constants.inc"
+ .include "asm/macros.inc"
+
+ .syntax unified
+
+ .text
+
+ thumb_func_start sub_8095B28
+sub_8095B28:
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ ldr r4, _08095B44
+ add sp, r4
+ adds r4, r0, 0
+ bl sub_8095CE0
+ lsls r0, 24
+ cmp r0, 0
+ bne _08095B48
+ movs r0, 0
+ b _08095CCC
+ .align 2, 0
+_08095B44: .4byte 0xfffffcb0
+_08095B48:
+ movs r0, 0x5
+ strb r0, [r4]
+ movs r0, 0x8
+ bl RandomCapped
+ ldr r1, _08095BC8
+ adds r0, r1
+ ldrb r0, [r0]
+ strb r0, [r4, 0x1]
+ cmp r0, 0x2
+ bne _08095B6C
+ bl GetRescueTeamRank
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0
+ bne _08095B6C
+ strb r0, [r4, 0x1]
+_08095B6C:
+ movs r0, 0
+ strb r0, [r4, 0x2]
+ bl Random
+ ldr r1, _08095BCC
+ ands r1, r0
+ str r1, [r4, 0x8]
+ movs r7, 0
+ movs r5, 0x1
+ adds r0, r4, 0x4
+ mov r8, r0
+ movs r1, 0x12
+ adds r1, r4
+ mov r9, r1
+ mov r6, sp
+_08095B8A:
+ lsls r0, r5, 16
+ asrs r0, 16
+ bl sub_803C110
+ lsls r0, 24
+ cmp r0, 0
+ beq _08095B9E
+ strh r5, [r6]
+ adds r6, 0x2
+ adds r7, 0x1
+_08095B9E:
+ adds r5, 0x1
+ ldr r0, _08095BD0
+ cmp r5, r0
+ ble _08095B8A
+ cmp r7, 0
+ beq _08095BD4
+ adds r0, r7, 0
+ bl RandomCapped
+ lsls r0, 1
+ add r0, sp
+ ldrh r0, [r0]
+ strh r0, [r4, 0xC]
+ adds r0, r7, 0
+ bl RandomCapped
+ lsls r0, 1
+ add r0, sp
+ ldrh r0, [r0]
+ b _08095BDC
+ .align 2, 0
+_08095BC8: .4byte gUnknown_8109984
+_08095BCC: .4byte 0x00ffffff
+_08095BD0: .4byte 0x000001a7
+_08095BD4:
+ movs r0, 0x10
+ strh r0, [r4, 0xC]
+ movs r0, 0x91
+ lsls r0, 1
+_08095BDC:
+ strh r0, [r4, 0xE]
+ ldrb r0, [r4, 0x1]
+ subs r0, 0x1
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bls _08095BEE
+ ldrh r0, [r4, 0xC]
+ strh r0, [r4, 0xE]
+_08095BEE:
+ ldrb r0, [r4, 0x4]
+ bl sub_8095F28
+ strb r0, [r4, 0x10]
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0
+ bne _08095C10
+ strb r0, [r4, 0x1]
+ ldrh r0, [r4, 0xC]
+ strh r0, [r4, 0xE]
+ adds r2, r4, 0
+ adds r2, 0x10
+ mov r0, r8
+ movs r1, 0
+ bl sub_803C37C
+_08095C10:
+ ldrb r0, [r4, 0x4]
+ bl GetMaxItemCount
+ adds r1, r0, 0
+ cmp r1, 0
+ bne _08095C28
+ ldrb r0, [r4, 0x1]
+ cmp r0, 0x4
+ bne _08095C28
+ strb r1, [r4, 0x1]
+ ldrh r0, [r4, 0xC]
+ strh r0, [r4, 0xE]
+_08095C28:
+ ldrb r1, [r4, 0x1]
+ mov r0, r8
+ mov r2, r9
+ bl sub_803C37C
+ ldrb r0, [r4, 0x10]
+ ldrb r1, [r4, 0x12]
+ cmp r0, r1
+ beq _08095C28
+ movs r0, 0
+ strb r0, [r4, 0x13]
+ ldrb r0, [r4, 0x1]
+ cmp r0, 0x2
+ beq _08095C90
+ cmp r0, 0x2
+ bgt _08095C4E
+ cmp r0, 0x1
+ beq _08095C6C
+ b _08095CCA
+_08095C4E:
+ cmp r0, 0x4
+ bgt _08095CCA
+ bl Random
+ adds r1, r0, 0
+ movs r0, 0xE0
+ lsls r0, 3
+ ands r1, r0
+ movs r0, 0xC0
+ lsls r0, 2
+ cmp r1, r0
+ beq _08095CC4
+ cmp r1, r0
+ bgt _08095CB4
+ b _08095CAA
+_08095C6C:
+ bl Random
+ adds r1, r0, 0
+ movs r0, 0x70
+ ands r1, r0
+ cmp r1, 0x10
+ beq _08095C80
+ cmp r1, 0x30
+ beq _08095C88
+ b _08095CCA
+_08095C80:
+ adds r0, r4, 0
+ bl sub_803C3E0
+ b _08095CCA
+_08095C88:
+ adds r0, r4, 0
+ bl sub_803C45C
+ b _08095CCA
+_08095C90:
+ bl Random
+ movs r1, 0xC0
+ lsls r1, 6
+ ands r1, r0
+ movs r0, 0x80
+ lsls r0, 5
+ cmp r1, r0
+ bne _08095CCA
+ adds r0, r4, 0
+ bl sub_803C4F0
+ b _08095CCA
+_08095CAA:
+ movs r0, 0x80
+ lsls r0, 1
+ cmp r1, r0
+ beq _08095CBC
+ b _08095CCA
+_08095CB4:
+ movs r0, 0xC0
+ lsls r0, 3
+ cmp r1, r0
+ bne _08095CCA
+_08095CBC:
+ adds r0, r4, 0
+ bl sub_803C580
+ b _08095CCA
+_08095CC4:
+ adds r0, r4, 0
+ bl sub_803C610
+_08095CCA:
+ movs r0, 0x1
+_08095CCC:
+ movs r3, 0xD4
+ lsls r3, 2
+ add sp, r3
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8095B28
+
+ thumb_func_start sub_8095CE0
+sub_8095CE0:
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x60
+ str r0, [sp, 0x44]
+ mov r0, sp
+ bl sub_80A29B0
+ str r0, [sp, 0x4C]
+ cmp r0, 0
+ bne _08095D0C
+ mov r0, sp
+ add r1, sp, 0x4C
+ ldrb r1, [r1]
+ strb r1, [r0]
+ mov r1, sp
+ movs r0, 0x1
+ strb r0, [r1, 0x1]
+ movs r2, 0x2
+ str r2, [sp, 0x4C]
+_08095D0C:
+ ldr r0, [sp, 0x4C]
+ bl RandomCapped
+ mov r9, r0
+ str r0, [sp, 0x48]
+ mov r1, sp
+ adds r1, 0x40
+ str r1, [sp, 0x5C]
+_08095D1C:
+ mov r0, sp
+ add r0, r9
+ ldrb r7, [r0]
+ adds r0, r7, 0
+ bl sub_8090298
+ str r0, [sp, 0x58]
+ lsrs r0, 31
+ ldr r2, [sp, 0x58]
+ adds r0, r2, r0
+ asrs r0, 1
+ str r0, [sp, 0x54]
+ adds r1, r2, 0
+ bl RandomRange
+ adds r4, r0, 0
+ str r4, [sp, 0x50]
+_08095D3E:
+ movs r0, 0x1
+ mov r8, r0
+ ldr r1, _08095DF4
+ ldr r0, [sp, 0x40]
+ ands r0, r1
+ orrs r0, r7
+ lsls r2, r4, 24
+ lsrs r2, 16
+ ldr r1, _08095DF8
+ ands r0, r1
+ orrs r0, r2
+ str r0, [sp, 0x40]
+ ldr r0, [sp, 0x5C]
+ bl sub_809017C
+ lsls r0, 24
+ cmp r0, 0
+ beq _08095D66
+ movs r1, 0
+ mov r8, r1
+_08095D66:
+ ldr r2, _08095DFC
+ mov r10, r2
+ movs r6, 0
+ movs r5, 0x3
+_08095D6E:
+ mov r1, r10
+ ldr r0, [r1]
+ adds r0, r6
+ adds r1, r7, 0
+ adds r2, r4, 0
+ movs r3, 0x1
+ bl sub_8095E38
+ lsls r0, 24
+ cmp r0, 0
+ beq _08095D88
+ movs r2, 0
+ mov r8, r2
+_08095D88:
+ adds r6, 0x14
+ subs r5, 0x1
+ cmp r5, 0
+ bge _08095D6E
+ ldr r0, _08095DFC
+ mov r10, r0
+ movs r6, 0x50
+ movs r5, 0x7
+_08095D98:
+ mov r1, r10
+ ldr r0, [r1]
+ adds r0, r6
+ adds r1, r7, 0
+ adds r2, r4, 0
+ movs r3, 0x1
+ bl sub_8095E38
+ lsls r0, 24
+ cmp r0, 0
+ beq _08095DB2
+ movs r2, 0
+ mov r8, r2
+_08095DB2:
+ adds r6, 0x14
+ subs r5, 0x1
+ cmp r5, 0
+ bge _08095D98
+ ldr r0, _08095DFC
+ mov r10, r0
+ movs r6, 0xF0
+ movs r5, 0x7
+_08095DC2:
+ mov r1, r10
+ ldr r0, [r1]
+ adds r0, r6
+ adds r1, r7, 0
+ adds r2, r4, 0
+ movs r3, 0x1
+ bl sub_8095E38
+ lsls r0, 24
+ cmp r0, 0
+ beq _08095DDC
+ movs r2, 0
+ mov r8, r2
+_08095DDC:
+ adds r6, 0x14
+ subs r5, 0x1
+ cmp r5, 0
+ bge _08095DC2
+ mov r0, r8
+ cmp r0, 0
+ beq _08095E00
+ ldr r1, [sp, 0x44]
+ strb r7, [r1, 0x4]
+ strb r4, [r1, 0x5]
+ movs r0, 0x1
+ b _08095E28
+ .align 2, 0
+_08095DF4: .4byte 0xffffff00
+_08095DF8: .4byte 0xffff00ff
+_08095DFC: .4byte gUnknown_203B490
+_08095E00:
+ adds r4, 0x1
+ ldr r2, [sp, 0x58]
+ cmp r4, r2
+ blt _08095E0A
+ ldr r4, [sp, 0x54]
+_08095E0A:
+ ldr r0, [sp, 0x50]
+ cmp r4, r0
+ bne _08095D3E
+ movs r1, 0x1
+ add r9, r1
+ ldr r2, [sp, 0x4C]
+ cmp r9, r2
+ bne _08095E1E
+ movs r0, 0
+ mov r9, r0
+_08095E1E:
+ ldr r1, [sp, 0x48]
+ cmp r9, r1
+ beq _08095E26
+ b _08095D1C
+_08095E26:
+ movs r0, 0
+_08095E28:
+ add sp, 0x60
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8095CE0
+
+ thumb_func_start sub_8095E38
+sub_8095E38:
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ lsls r3, 24
+ lsrs r3, 24
+ ldrb r0, [r4]
+ cmp r0, 0
+ beq _08095E6E
+ ldrb r0, [r4, 0x1]
+ cmp r0, 0x2
+ bne _08095E5E
+ cmp r3, 0x1
+ bne _08095E5E
+ ldrb r0, [r4, 0x4]
+ cmp r0, r1
+ bne _08095E6E
+ movs r0, 0x1
+ b _08095E70
+_08095E5E:
+ ldrb r0, [r4, 0x4]
+ cmp r0, r1
+ bne _08095E6E
+ ldrb r0, [r4, 0x5]
+ cmp r0, r2
+ bne _08095E6E
+ movs r0, 0x1
+ b _08095E70
+_08095E6E:
+ movs r0, 0
+_08095E70:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8095E38
+
+ thumb_func_start sub_8095E78
+sub_8095E78:
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ sub sp, 0x3C
+ movs r6, 0
+ movs r5, 0x1
+_08095E84:
+ ldr r0, _08095F04
+ ldr r0, [r0]
+ adds r0, r5
+ ldrb r0, [r0]
+ adds r1, r5, 0x1
+ mov r8, r1
+ cmp r0, 0
+ bne _08095EF6
+ lsls r0, r5, 24
+ lsrs r0, 24
+ bl GetFriendAreaUnlockCondition
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x2
+ bne _08095EF6
+ movs r4, 0
+ ldr r0, _08095F08
+ ldr r1, [r0]
+ movs r3, 0x3
+_08095EAC:
+ ldrb r0, [r1]
+ cmp r0, 0
+ beq _08095EBA
+ ldrb r0, [r1, 0x11]
+ cmp r0, 0x9
+ bne _08095EBA
+ movs r4, 0x1
+_08095EBA:
+ adds r1, 0x14
+ subs r3, 0x1
+ cmp r3, 0
+ bge _08095EAC
+ ldr r0, _08095F08
+ ldr r0, [r0]
+ adds r2, r0, 0
+ adds r2, 0xF0
+ adds r1, r0, 0
+ movs r3, 0x7
+_08095ECE:
+ ldrb r0, [r2]
+ cmp r0, 0
+ beq _08095EE0
+ ldr r7, _08095F0C
+ adds r0, r1, r7
+ ldrb r0, [r0]
+ cmp r0, 0x9
+ bne _08095EE0
+ movs r4, 0x1
+_08095EE0:
+ adds r2, 0x14
+ adds r1, 0x14
+ subs r3, 0x1
+ cmp r3, 0
+ bge _08095ECE
+ cmp r4, 0
+ bne _08095EF6
+ mov r1, sp
+ adds r0, r1, r6
+ strb r5, [r0]
+ adds r6, 0x1
+_08095EF6:
+ mov r5, r8
+ cmp r5, 0x39
+ ble _08095E84
+ cmp r6, 0
+ bne _08095F10
+ movs r0, 0
+ b _08095F1A
+ .align 2, 0
+_08095F04: .4byte gFriendAreas
+_08095F08: .4byte gUnknown_203B490
+_08095F0C: .4byte 0x00000101
+_08095F10:
+ adds r0, r6, 0
+ bl RandomCapped
+ add r0, sp
+ ldrb r0, [r0]
+_08095F1A:
+ add sp, 0x3C
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8095E78
+
+ thumb_func_start sub_8095F28
+sub_8095F28:
+ push {r4-r7,lr}
+ sub sp, 0xF0
+ lsls r0, 24
+ lsrs r7, r0, 24
+ movs r6, 0
+ movs r5, 0x1
+_08095F34:
+ lsls r4, r5, 24
+ cmp r7, 0x63
+ beq _08095F48
+ lsrs r1, r4, 24
+ adds r0, r7, 0
+ bl sub_8091E60
+ lsls r0, 24
+ cmp r0, 0
+ beq _08095F6A
+_08095F48:
+ lsrs r4, 24
+ adds r0, r4, 0
+ bl sub_8090A60
+ lsls r0, 24
+ cmp r0, 0
+ bne _08095F6A
+ adds r0, r4, 0
+ bl sub_8091524
+ lsls r0, 24
+ cmp r0, 0
+ beq _08095F6A
+ mov r1, sp
+ adds r0, r1, r6
+ strb r5, [r0]
+ adds r6, 0x1
+_08095F6A:
+ adds r5, 0x1
+ cmp r5, 0xEF
+ ble _08095F34
+ cmp r6, 0
+ beq _08095F80
+ adds r0, r6, 0
+ bl RandomCapped
+ add r0, sp
+ ldrb r0, [r0]
+ b _08095F82
+_08095F80:
+ movs r0, 0
+_08095F82:
+ add sp, 0xF0
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8095F28
+
+ thumb_func_start sub_8095F8C
+sub_8095F8C:
+ push {r4,r5,lr}
+ movs r5, 0
+ movs r4, 0
+_08095F92:
+ lsls r0, r4, 24
+ lsrs r0, 24
+ bl sub_8096000
+ lsls r0, 24
+ cmp r0, 0
+ bne _08095FA2
+ adds r5, 0x1
+_08095FA2:
+ adds r4, 0x1
+ cmp r4, 0x3
+ ble _08095F92
+ adds r0, r5, 0
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8095F8C
+
+ thumb_func_start sub_8095FB0
+sub_8095FB0:
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ movs r3, 0
+ ldr r5, _08095FD4
+ movs r2, 0
+_08095FBA:
+ ldr r0, [r5]
+ adds r1, r0, r2
+ ldrb r0, [r1]
+ cmp r0, 0
+ bne _08095FD8
+ adds r0, r4, 0
+ ldm r0!, {r2-r4}
+ stm r1!, {r2-r4}
+ ldm r0!, {r2,r3}
+ stm r1!, {r2,r3}
+ movs r0, 0
+ b _08095FE2
+ .align 2, 0
+_08095FD4: .4byte gUnknown_203B490
+_08095FD8:
+ adds r2, 0x14
+ adds r3, 0x1
+ cmp r3, 0x3
+ ble _08095FBA
+ movs r0, 0x1
+_08095FE2:
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8095FB0
+
+ thumb_func_start sub_8095FE8
+sub_8095FE8:
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _08095FFC
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 2
+ ldr r0, [r2]
+ adds r0, r1
+ bx lr
+ .align 2, 0
+_08095FFC: .4byte gUnknown_203B490
+ thumb_func_end sub_8095FE8
+
+ thumb_func_start sub_8096000
+sub_8096000:
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r1, _0809601C
+ ldr r2, [r1]
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 2
+ adds r2, r1
+ ldrb r0, [r2]
+ cmp r0, 0
+ beq _08096020
+ movs r0, 0
+ b _08096022
+ .align 2, 0
+_0809601C: .4byte gUnknown_203B490
+_08096020:
+ movs r0, 0x1
+_08096022:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8096000
+
+ thumb_func_start sub_8096028
+sub_8096028:
+ push {r4,lr}
+ movs r4, 0
+_0809602C:
+ lsls r0, r4, 24
+ lsrs r0, 24
+ bl sub_8096040
+ adds r4, 0x1
+ cmp r4, 0x3
+ ble _0809602C
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8096028
+
+ thumb_func_start sub_8096040
+sub_8096040:
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r3, _08096074
+ ldr r1, [r3]
+ lsls r2, r0, 2
+ adds r2, r0
+ lsls r2, 2
+ adds r1, r2
+ movs r4, 0
+ strb r4, [r1]
+ ldr r0, [r3]
+ adds r0, r2
+ movs r1, 0x63
+ strb r1, [r0, 0x4]
+ ldr r0, [r3]
+ adds r0, r2
+ strb r4, [r0, 0x5]
+ ldr r0, [r3]
+ adds r0, r2
+ movs r1, 0x5
+ strb r1, [r0, 0x11]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08096074: .4byte gUnknown_203B490
+ thumb_func_end sub_8096040
+
+ thumb_func_start sub_8096078
+sub_8096078:
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ movs r2, 0
+ movs r3, 0
+ ldr r0, _08096090
+ mov r12, r0
+ mov r8, r3
+ movs r4, 0
+ mov r9, r4
+ b _080960B6
+ .align 2, 0
+_08096090: .4byte gUnknown_203B490
+_08096094:
+ cmp r2, r3
+ ble _080960AA
+ mov r1, r12
+ ldr r0, [r1]
+ mov r5, r8
+ adds r1, r0, r5
+ adds r0, r4
+ ldm r0!, {r5-r7}
+ stm r1!, {r5-r7}
+ ldm r0!, {r6,r7}
+ stm r1!, {r6,r7}
+_080960AA:
+ adds r4, 0x14
+ movs r0, 0x14
+ add r9, r0
+ adds r2, 0x1
+ add r8, r0
+ adds r3, 0x1
+_080960B6:
+ cmp r2, 0x3
+ bgt _080960E2
+ mov r1, r12
+ ldr r0, [r1]
+ adds r0, r4
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _080960E2
+ ldr r6, _08096110
+ mov r1, r9
+_080960CA:
+ adds r1, 0x14
+ adds r4, 0x14
+ movs r5, 0x14
+ add r9, r5
+ adds r2, 0x1
+ cmp r2, 0x3
+ bgt _080960E2
+ ldr r0, [r6]
+ adds r0, r1
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _080960CA
+_080960E2:
+ cmp r2, 0x4
+ bne _08096094
+ cmp r3, 0x3
+ bgt _08096102
+ ldr r4, _08096110
+ movs r2, 0
+ lsls r0, r3, 2
+ adds r0, r3
+ lsls r1, r0, 2
+_080960F4:
+ ldr r0, [r4]
+ adds r0, r1
+ strb r2, [r0]
+ adds r1, 0x14
+ adds r3, 0x1
+ cmp r3, 0x3
+ ble _080960F4
+_08096102:
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08096110: .4byte gUnknown_203B490
+ thumb_func_end sub_8096078
+
+ thumb_func_start sub_8096114
+sub_8096114:
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x14
+ movs r1, 0
+_08096122:
+ adds r0, r1, 0x1
+ mov r10, r0
+ mov r8, r10
+ cmp r0, 0x3
+ bgt _08096198
+ ldr r2, _080961B0
+ mov r9, r2
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 2
+ mov r12, r0
+ mov r3, r10
+ lsls r0, r3, 2
+ add r0, r10
+ lsls r4, r0, 2
+_08096140:
+ mov r5, r9
+ ldr r1, [r5]
+ adds r3, r1, r4
+ ldrb r0, [r3]
+ cmp r0, 0
+ beq _0809618C
+ mov r6, r12
+ adds r2, r1, r6
+ ldrb r1, [r2, 0x4]
+ ldrb r0, [r3, 0x4]
+ cmp r1, r0
+ bhi _08096164
+ cmp r1, r0
+ bne _0809618C
+ ldrb r0, [r2, 0x5]
+ ldrb r7, [r3, 0x5]
+ cmp r0, r7
+ bls _0809618C
+_08096164:
+ mov r1, sp
+ adds r0, r2, 0
+ ldm r0!, {r5-r7}
+ stm r1!, {r5-r7}
+ ldm r0!, {r5,r6}
+ stm r1!, {r5,r6}
+ adds r1, r2, 0
+ adds r0, r3, 0
+ ldm r0!, {r2,r3,r7}
+ stm r1!, {r2,r3,r7}
+ ldm r0!, {r5,r6}
+ stm r1!, {r5,r6}
+ mov r7, r9
+ ldr r1, [r7]
+ adds r1, r4
+ mov r0, sp
+ ldm r0!, {r2,r3,r5}
+ stm r1!, {r2,r3,r5}
+ ldm r0!, {r6,r7}
+ stm r1!, {r6,r7}
+_0809618C:
+ adds r4, 0x14
+ movs r0, 0x1
+ add r8, r0
+ mov r1, r8
+ cmp r1, 0x3
+ ble _08096140
+_08096198:
+ mov r1, r10
+ cmp r1, 0x2
+ ble _08096122
+ add sp, 0x14
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080961B0: .4byte gUnknown_203B490
+ thumb_func_end sub_8096114
+
+ thumb_func_start sub_80961B4
+sub_80961B4:
+ push {lr}
+ bl sub_8096E2C
+ lsls r0, 24
+ cmp r0, 0
+ beq _080961CE
+ ldr r0, _080961D4
+ ldr r0, [r0]
+ movs r1, 0xCA
+ lsls r1, 2
+ adds r0, r1
+ movs r1, 0x1
+ strb r1, [r0]
+_080961CE:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080961D4: .4byte gUnknown_203B490
+ thumb_func_end sub_80961B4
+
+ thumb_func_start sub_80961D8
+sub_80961D8:
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ movs r7, 0
+ bl sub_8095F8C
+ adds r6, r0, 0
+ movs r1, 0x4
+ bl RandomRange
+ mov r8, r0
+ cmp r6, 0x3
+ bgt _08096202
+ ldr r4, _08096208
+ ldr r0, [r4]
+ movs r2, 0xCA
+ lsls r2, 2
+ adds r1, r0, r2
+ ldrb r0, [r1]
+ cmp r0, 0
+ bne _0809620C
+_08096202:
+ movs r0, 0
+ b _080963A8
+ .align 2, 0
+_08096208: .4byte gUnknown_203B490
+_0809620C:
+ strb r7, [r1]
+ movs r5, 0x38
+ movs r0, 0xA
+ movs r1, 0x31
+ movs r2, 0x1
+ bl sub_8001D08
+ lsls r0, 24
+ cmp r0, 0
+ beq _0809623A
+ ldr r0, [r4]
+ ldr r1, _08096328
+ adds r0, r1
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _0809623A
+ movs r0, 0x35
+ bl sub_8096E80
+ lsls r0, 24
+ cmp r0, 0
+ bne _0809623A
+ movs r5, 0x35
+_0809623A:
+ movs r0, 0xF
+ bl sub_80023E4
+ lsls r0, 24
+ cmp r0, 0
+ beq _0809629C
+ ldr r0, _0809632C
+ ldr r0, [r0]
+ movs r2, 0xC9
+ lsls r2, 2
+ adds r0, r2
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _08096264
+ movs r0, 0x34
+ bl sub_8096E80
+ lsls r0, 24
+ cmp r0, 0
+ bne _08096264
+ movs r5, 0x34
+_08096264:
+ ldr r0, _0809632C
+ ldr r0, [r0]
+ ldr r1, _08096330
+ adds r0, r1
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _08096280
+ movs r0, 0x33
+ bl sub_8096E80
+ lsls r0, 24
+ cmp r0, 0
+ bne _08096280
+ movs r5, 0x33
+_08096280:
+ ldr r0, _0809632C
+ ldr r0, [r0]
+ ldr r2, _08096334
+ adds r0, r2
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _0809629C
+ movs r0, 0x32
+ bl sub_8096E80
+ lsls r0, 24
+ cmp r0, 0
+ bne _0809629C
+ movs r5, 0x32
+_0809629C:
+ bl GetRescueTeamRank
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x6
+ bne _080962C4
+ ldr r0, _0809632C
+ ldr r0, [r0]
+ ldr r1, _08096338
+ adds r0, r1
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _080962C4
+ movs r0, 0x36
+ bl sub_8096E80
+ lsls r0, 24
+ cmp r0, 0
+ bne _080962C4
+ movs r5, 0x36
+_080962C4:
+ movs r0, 0x6
+ bl sub_80023E4
+ lsls r0, 24
+ cmp r0, 0
+ beq _080962EC
+ ldr r0, _0809632C
+ ldr r0, [r0]
+ ldr r2, _0809633C
+ adds r0, r2
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _080962EC
+ movs r0, 0x37
+ bl sub_8096E80
+ lsls r0, 24
+ cmp r0, 0
+ bne _080962EC
+ movs r5, 0x37
+_080962EC:
+ cmp r5, 0x38
+ bne _08096310
+ cmp r6, r8
+ bgt _08096392
+ bl sub_8096E2C
+ lsls r0, 24
+ lsrs r5, r0, 24
+ movs r0, 0xE
+ bl sub_80023E4
+ lsls r0, 24
+ cmp r0, 0
+ bne _0809630C
+ cmp r5, 0x2
+ bhi _0809638E
+_0809630C:
+ cmp r5, 0x31
+ bhi _0809638E
+_08096310:
+ lsls r0, r6, 24
+ lsrs r0, 24
+ bl sub_8095FE8
+ adds r4, r0, 0
+ movs r0, 0x1
+ strb r0, [r4]
+ movs r0, 0x62
+ strb r0, [r4, 0x4]
+ strb r5, [r4, 0x5]
+ b _0809638A
+ .align 2, 0
+_08096328: .4byte 0x00000325
+_0809632C: .4byte gUnknown_203B490
+_08096330: .4byte 0x00000323
+_08096334: .4byte 0x00000322
+_08096338: .4byte 0x00000326
+_0809633C: .4byte 0x00000327
+_08096340:
+ lsls r0, r6, 24
+ lsrs r0, 24
+ bl sub_8095FE8
+ adds r4, r0, 0
+ bl sub_8095B28
+ lsls r0, 24
+ cmp r0, 0
+ beq _08096392
+ bl sub_8095E78
+ lsls r0, 24
+ lsrs r5, r0, 24
+ adds r0, r4, 0x4
+ ldrb r1, [r4, 0x1]
+ bl sub_803C1D0
+ lsls r0, 24
+ cmp r0, 0
+ bne _0809636C
+ movs r5, 0
+_0809636C:
+ movs r0, 0x5
+ movs r1, 0xA
+ bl RandomRange
+ strb r0, [r4, 0x11]
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x9
+ bne _0809638A
+ cmp r5, 0
+ bne _08096388
+ movs r0, 0x5
+ strb r0, [r4, 0x11]
+ b _0809638A
+_08096388:
+ strb r5, [r4, 0x13]
+_0809638A:
+ movs r7, 0x1
+ adds r6, 0x1
+_0809638E:
+ cmp r6, r8
+ ble _08096340
+_08096392:
+ bl sub_80963B4
+ lsls r0, 24
+ cmp r0, 0
+ beq _0809639E
+ movs r7, 0x1
+_0809639E:
+ bl sub_8096078
+ bl sub_8096114
+ adds r0, r7, 0
+_080963A8:
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80961D8
+
+ thumb_func_start sub_80963B4
+sub_80963B4:
+ push {r4-r6,lr}
+ movs r6, 0
+ bl sub_8096E2C
+ lsls r0, 24
+ lsrs r5, r0, 24
+ bl sub_8095F8C
+ adds r4, r0, 0
+ cmp r4, 0x3
+ ble _080963CE
+ movs r0, 0
+ b _080963F4
+_080963CE:
+ movs r0, 0xE
+ bl sub_80023E4
+ lsls r0, 24
+ cmp r0, 0
+ beq _080963F2
+ cmp r5, 0x31
+ bhi _080963F2
+ lsls r0, r4, 24
+ lsrs r0, 24
+ bl sub_8095FE8
+ movs r1, 0x1
+ strb r1, [r0]
+ movs r1, 0x62
+ strb r1, [r0, 0x4]
+ strb r5, [r0, 0x5]
+ movs r6, 0x1
+_080963F2:
+ adds r0, r6, 0
+_080963F4:
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80963B4
+
+ thumb_func_start sub_80963FC
+sub_80963FC:
+ push {r4-r6,lr}
+ movs r6, 0
+_08096400:
+ lsls r0, r6, 24
+ lsrs r4, r0, 24
+ adds r0, r4, 0
+ bl sub_8095FE8
+ adds r5, r0, 0
+ ldrb r0, [r5]
+ cmp r0, 0x1
+ beq _08096418
+ adds r0, r4, 0
+ bl sub_8096040
+_08096418:
+ adds r6, 0x1
+ cmp r6, 0x3
+ ble _08096400
+ bl sub_8096078
+ bl sub_8095F8C
+ lsls r0, 24
+ lsrs r0, 24
+ bl sub_8095FE8
+ adds r5, r0, 0
+ movs r0, 0
+ movs r4, 0x5
+ strb r4, [r5]
+ strb r0, [r5, 0x1]
+ strb r0, [r5, 0x2]
+ movs r0, 0x2
+ strb r0, [r5, 0x4]
+ movs r0, 0x3
+ strb r0, [r5, 0x5]
+ bl Random
+ ldr r1, _08096484
+ ands r1, r0
+ str r1, [r5, 0x8]
+ movs r0, 0x10
+ strh r0, [r5, 0xC]
+ strh r0, [r5, 0xE]
+ ldrb r0, [r5, 0x4]
+ bl sub_8095F28
+ strb r0, [r5, 0x10]
+ strb r4, [r5, 0x11]
+_0809645C:
+ ldrb r1, [r5, 0x1]
+ adds r0, r5, 0x4
+ adds r2, r5, 0
+ adds r2, 0x12
+ bl sub_803C37C
+ ldrb r0, [r5, 0x10]
+ ldrb r1, [r5, 0x12]
+ cmp r0, r1
+ beq _0809645C
+ movs r0, 0
+ strb r0, [r5, 0x13]
+ bl sub_8096078
+ bl sub_8096114
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08096484: .4byte 0x00ffffff
+ thumb_func_end sub_80963FC
+
+ thumb_func_start sub_8096488
+sub_8096488:
+ push {r4,lr}
+ movs r4, 0
+_0809648C:
+ lsls r0, r4, 24
+ lsrs r0, 24
+ bl sub_8096040
+ adds r4, 0x1
+ cmp r4, 0x3
+ ble _0809648C
+ movs r0, 0
+ bl sub_8095FE8
+ movs r2, 0
+ movs r1, 0x1
+ strb r1, [r0]
+ movs r1, 0x62
+ strb r1, [r0, 0x4]
+ strb r2, [r0, 0x5]
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8096488
+
+ thumb_func_start sub_80964B4
+sub_80964B4:
+ push {lr}
+ ldr r0, _080964D4
+ ldr r0, [r0]
+ ldr r1, _080964D8
+ adds r0, r1
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _080964DC
+ movs r0, 0x35
+ bl sub_8096E80
+ lsls r0, 24
+ cmp r0, 0
+ bne _080964DC
+ movs r0, 0
+ b _080964DE
+ .align 2, 0
+_080964D4: .4byte gUnknown_203B490
+_080964D8: .4byte 0x00000325
+_080964DC:
+ movs r0, 0x1
+_080964DE:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80964B4
+
+ thumb_func_start sub_80964E4
+sub_80964E4:
+ push {lr}
+ ldr r0, _08096504
+ ldr r0, [r0]
+ ldr r1, _08096508
+ adds r0, r1
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _0809650C
+ movs r0, 0x36
+ bl sub_8096E80
+ lsls r0, 24
+ cmp r0, 0
+ bne _0809650C
+ movs r0, 0
+ b _0809650E
+ .align 2, 0
+_08096504: .4byte gUnknown_203B490
+_08096508: .4byte 0x00000326
+_0809650C:
+ movs r0, 0x1
+_0809650E:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80964E4
+
+ thumb_func_start sub_8096514
+sub_8096514:
+ push {r4,r5,lr}
+ movs r5, 0
+ movs r4, 0
+_0809651A:
+ lsls r0, r4, 24
+ lsrs r0, 24
+ bl sub_809658C
+ lsls r0, 24
+ cmp r0, 0
+ bne _0809652A
+ adds r5, 0x1
+_0809652A:
+ adds r4, 0x1
+ cmp r4, 0x7
+ ble _0809651A
+ adds r0, r5, 0
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8096514
+
+ thumb_func_start sub_8096538
+sub_8096538:
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ movs r3, 0
+ ldr r5, _08096560
+ movs r2, 0
+_08096542:
+ ldr r0, [r5]
+ adds r0, r2
+ adds r1, r0, 0
+ adds r1, 0x50
+ ldrb r0, [r1]
+ cmp r0, 0
+ bne _08096564
+ adds r0, r4, 0
+ ldm r0!, {r2-r4}
+ stm r1!, {r2-r4}
+ ldm r0!, {r2,r3}
+ stm r1!, {r2,r3}
+ movs r0, 0
+ b _0809656E
+ .align 2, 0
+_08096560: .4byte gUnknown_203B490
+_08096564:
+ adds r2, 0x14
+ adds r3, 0x1
+ cmp r3, 0x7
+ ble _08096542
+ movs r0, 0x1
+_0809656E:
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8096538
+
+ thumb_func_start sub_8096574
+sub_8096574:
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _08096588
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 2
+ adds r1, 0x50
+ ldr r0, [r2]
+ adds r0, r1
+ bx lr
+ .align 2, 0
+_08096588: .4byte gUnknown_203B490
+ thumb_func_end sub_8096574
+
+ thumb_func_start sub_809658C
+sub_809658C:
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r1, _080965AC
+ ldr r2, [r1]
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 2
+ adds r2, r1
+ adds r2, 0x50
+ ldrb r0, [r2]
+ cmp r0, 0
+ beq _080965B0
+ movs r0, 0
+ b _080965B2
+ .align 2, 0
+_080965AC: .4byte gUnknown_203B490
+_080965B0:
+ movs r0, 0x1
+_080965B2:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_809658C
+
+ thumb_func_start sub_80965B8
+sub_80965B8:
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r4, _080965F0
+ ldr r1, [r4]
+ lsls r2, r0, 2
+ adds r2, r0
+ lsls r2, 2
+ adds r1, r2
+ adds r1, 0x50
+ movs r3, 0
+ strb r3, [r1]
+ ldr r0, [r4]
+ adds r0, r2
+ adds r0, 0x54
+ movs r1, 0x63
+ strb r1, [r0]
+ ldr r0, [r4]
+ adds r0, r2
+ adds r0, 0x55
+ strb r3, [r0]
+ ldr r0, [r4]
+ adds r0, r2
+ adds r0, 0x61
+ strb r3, [r0]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080965F0: .4byte gUnknown_203B490
+ thumb_func_end sub_80965B8
+
+ thumb_func_start sub_80965F4
+sub_80965F4:
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ movs r2, 0
+ movs r3, 0
+ ldr r0, _0809660C
+ mov r12, r0
+ mov r8, r3
+ movs r4, 0
+ mov r9, r4
+ b _08096636
+ .align 2, 0
+_0809660C: .4byte gUnknown_203B490
+_08096610:
+ cmp r2, r3
+ ble _0809662A
+ mov r1, r12
+ ldr r0, [r1]
+ mov r5, r8
+ adds r1, r0, r5
+ adds r0, r4
+ adds r1, 0x50
+ adds r0, 0x50
+ ldm r0!, {r5-r7}
+ stm r1!, {r5-r7}
+ ldm r0!, {r6,r7}
+ stm r1!, {r6,r7}
+_0809662A:
+ adds r4, 0x14
+ movs r0, 0x14
+ add r9, r0
+ adds r2, 0x1
+ add r8, r0
+ adds r3, 0x1
+_08096636:
+ cmp r2, 0x7
+ bgt _08096666
+ mov r1, r12
+ ldr r0, [r1]
+ adds r0, r4
+ adds r0, 0x50
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _08096666
+ ldr r6, _08096694
+ mov r1, r9
+_0809664C:
+ adds r1, 0x14
+ adds r4, 0x14
+ movs r5, 0x14
+ add r9, r5
+ adds r2, 0x1
+ cmp r2, 0x7
+ bgt _08096666
+ ldr r0, [r6]
+ adds r0, r1
+ adds r0, 0x50
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _0809664C
+_08096666:
+ cmp r2, 0x8
+ bne _08096610
+ cmp r3, 0x7
+ bgt _08096688
+ ldr r4, _08096694
+ movs r2, 0
+ lsls r0, r3, 2
+ adds r0, r3
+ lsls r1, r0, 2
+_08096678:
+ ldr r0, [r4]
+ adds r0, r1
+ adds r0, 0x50
+ strb r2, [r0]
+ adds r1, 0x14
+ adds r3, 0x1
+ cmp r3, 0x7
+ ble _08096678
+_08096688:
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08096694: .4byte gUnknown_203B490
+ thumb_func_end sub_80965F4
+
+ thumb_func_start sub_8096698
+sub_8096698:
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x14
+ movs r1, 0
+_080966A6:
+ adds r6, r1, 0x1
+ mov r10, r6
+ cmp r6, 0x7
+ bgt _08096730
+ ldr r0, _08096748
+ mov r8, r0
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 2
+ mov r9, r0
+ lsls r0, r6, 2
+ adds r0, r6
+ lsls r4, r0, 2
+_080966C0:
+ mov r2, r8
+ ldr r1, [r2]
+ adds r3, r1, r4
+ adds r5, r3, 0
+ adds r5, 0x50
+ ldrb r0, [r5]
+ cmp r0, 0
+ beq _08096724
+ add r1, r9
+ mov r12, r1
+ mov r0, r12
+ adds r0, 0x54
+ adds r1, r3, 0
+ adds r1, 0x54
+ ldrb r2, [r0]
+ ldrb r0, [r1]
+ cmp r2, r0
+ bhi _080966F6
+ cmp r2, r0
+ bne _08096724
+ mov r0, r12
+ adds r0, 0x55
+ adds r1, 0x1
+ ldrb r0, [r0]
+ ldrb r1, [r1]
+ cmp r0, r1
+ bls _08096724
+_080966F6:
+ mov r1, sp
+ mov r0, r12
+ adds r0, 0x50
+ ldm r0!, {r2,r3,r7}
+ stm r1!, {r2,r3,r7}
+ ldm r0!, {r3,r7}
+ stm r1!, {r3,r7}
+ mov r1, r12
+ adds r1, 0x50
+ adds r0, r5, 0
+ ldm r0!, {r2,r3,r5}
+ stm r1!, {r2,r3,r5}
+ ldm r0!, {r2,r7}
+ stm r1!, {r2,r7}
+ mov r3, r8
+ ldr r1, [r3]
+ adds r1, r4
+ adds r1, 0x50
+ mov r0, sp
+ ldm r0!, {r2,r5,r7}
+ stm r1!, {r2,r5,r7}
+ ldm r0!, {r3,r5}
+ stm r1!, {r3,r5}
+_08096724:
+ adds r4, 0x14
+ movs r7, 0x1
+ add r10, r7
+ mov r0, r10
+ cmp r0, 0x7
+ ble _080966C0
+_08096730:
+ adds r1, r6, 0
+ cmp r1, 0x6
+ ble _080966A6
+ add sp, 0x14
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08096748: .4byte gUnknown_203B490
+ thumb_func_end sub_8096698
+
+ thumb_func_start sub_809674C
+sub_809674C:
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ movs r0, 0x4
+ movs r1, 0x8
+ bl RandomRange
+ mov r8, r0
+ ldr r3, _08096864
+ movs r2, 0
+ movs r1, 0
+ movs r7, 0x7
+_08096764:
+ ldr r0, [r3]
+ adds r0, r1
+ adds r0, 0x50
+ strb r2, [r0]
+ adds r1, 0x14
+ subs r7, 0x1
+ cmp r7, 0
+ bge _08096764
+ movs r7, 0
+ movs r0, 0xE
+ bl sub_8097318
+ lsls r0, 24
+ cmp r0, 0
+ beq _080967C0
+ movs r0, 0
+ bl sub_8096574
+ adds r5, r0, 0
+ movs r4, 0x2
+ strb r4, [r5]
+ movs r0, 0x6
+ strb r0, [r5, 0x1]
+ movs r0, 0x1
+ strb r0, [r5, 0x2]
+ movs r0, 0x2A
+ strb r0, [r5, 0x4]
+ movs r0, 0xA
+ strb r0, [r5, 0x5]
+ bl Random
+ ldr r1, _08096868
+ ands r1, r0
+ str r1, [r5, 0x8]
+ movs r1, 0
+ movs r0, 0xC2
+ lsls r0, 1
+ strh r0, [r5, 0xC]
+ movs r0, 0x38
+ strh r0, [r5, 0xE]
+ strb r1, [r5, 0x10]
+ strb r4, [r5, 0x11]
+ movs r0, 0x3A
+ strb r0, [r5, 0x12]
+ strb r1, [r5, 0x13]
+ movs r7, 0x1
+_080967C0:
+ movs r0, 0xF
+ bl sub_8097318
+ lsls r0, 24
+ cmp r0, 0
+ beq _0809680A
+ lsls r0, r7, 24
+ lsrs r0, 24
+ bl sub_8096574
+ adds r5, r0, 0
+ movs r0, 0x3
+ strb r0, [r5]
+ movs r0, 0x6
+ strb r0, [r5, 0x1]
+ movs r4, 0x2
+ strb r4, [r5, 0x2]
+ movs r0, 0x35
+ strb r0, [r5, 0x4]
+ movs r0, 0xF
+ strb r0, [r5, 0x5]
+ bl Random
+ ldr r1, _08096868
+ ands r1, r0
+ str r1, [r5, 0x8]
+ movs r1, 0
+ movs r0, 0x82
+ lsls r0, 1
+ strh r0, [r5, 0xC]
+ strh r0, [r5, 0xE]
+ strb r1, [r5, 0x10]
+ strb r4, [r5, 0x11]
+ movs r0, 0x3A
+ strb r0, [r5, 0x12]
+ strb r1, [r5, 0x13]
+ adds r7, 0x1
+_0809680A:
+ movs r0, 0x1C
+ bl sub_8097318
+ lsls r0, 24
+ cmp r0, 0
+ beq _08096854
+ lsls r0, r7, 24
+ lsrs r0, 24
+ bl sub_8096574
+ adds r5, r0, 0
+ movs r0, 0x4
+ strb r0, [r5]
+ movs r0, 0x6
+ strb r0, [r5, 0x1]
+ movs r0, 0x3
+ strb r0, [r5, 0x2]
+ movs r0, 0x1A
+ strb r0, [r5, 0x4]
+ movs r0, 0x14
+ strb r0, [r5, 0x5]
+ bl Random
+ ldr r1, _08096868
+ ands r1, r0
+ str r1, [r5, 0x8]
+ movs r1, 0
+ ldr r0, _0809686C
+ strh r0, [r5, 0xC]
+ strh r0, [r5, 0xE]
+ strb r1, [r5, 0x10]
+ movs r0, 0x2
+ strb r0, [r5, 0x11]
+ movs r0, 0x3A
+ strb r0, [r5, 0x12]
+ strb r1, [r5, 0x13]
+ adds r7, 0x1
+_08096854:
+ lsls r0, r7, 2
+ adds r0, r7
+ lsls r0, 2
+ adds r5, r0, 0
+ adds r5, 0x50
+ adds r4, r0, 0
+ b _08096886
+ .align 2, 0
+_08096864: .4byte gUnknown_203B490
+_08096868: .4byte 0x00ffffff
+_0809686C: .4byte 0x0000014d
+_08096870:
+ movs r0, 0
+ movs r1, 0x4
+ bl RandomRange
+ ldr r1, [r6]
+ adds r1, r4
+ adds r1, 0x61
+ strb r0, [r1]
+ adds r5, 0x14
+ adds r4, 0x14
+ adds r7, 0x1
+_08096886:
+ cmp r7, r8
+ bgt _0809689A
+ ldr r6, _080968AC
+ ldr r0, [r6]
+ adds r0, r5
+ bl sub_8095B28
+ lsls r0, 24
+ cmp r0, 0
+ bne _08096870
+_0809689A:
+ bl sub_80965F4
+ bl sub_8096698
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080968AC: .4byte gUnknown_203B490
+ thumb_func_end sub_809674C
+
+ thumb_func_start sub_80968B0
+sub_80968B0:
+ push {r4,r5,lr}
+ adds r3, r0, 0
+ movs r4, 0
+ ldr r0, _08096928
+ ldr r0, [r0]
+ adds r2, r0, 0
+ adds r2, 0xF0
+_080968BE:
+ ldrb r0, [r2]
+ cmp r0, 0
+ beq _0809692C
+ ldrb r0, [r3, 0x1]
+ ldrb r1, [r2, 0x1]
+ cmp r0, r1
+ bne _0809692C
+ ldrb r0, [r3, 0x2]
+ ldrb r5, [r2, 0x2]
+ cmp r0, r5
+ bne _0809692C
+ ldrb r0, [r3, 0x4]
+ ldrb r1, [r2, 0x4]
+ cmp r0, r1
+ bne _0809692C
+ ldrb r0, [r3, 0x5]
+ ldrb r5, [r2, 0x5]
+ cmp r0, r5
+ bne _0809692C
+ ldr r1, [r3, 0x8]
+ ldr r0, [r2, 0x8]
+ cmp r1, r0
+ bne _0809692C
+ movs r0, 0xC
+ ldrsh r1, [r3, r0]
+ movs r5, 0xC
+ ldrsh r0, [r2, r5]
+ cmp r1, r0
+ bne _0809692C
+ movs r0, 0xE
+ ldrsh r1, [r3, r0]
+ movs r5, 0xE
+ ldrsh r0, [r2, r5]
+ cmp r1, r0
+ bne _0809692C
+ ldrb r0, [r3, 0x10]
+ ldrb r1, [r2, 0x10]
+ cmp r0, r1
+ bne _0809692C
+ ldrb r0, [r3, 0x11]
+ ldrb r5, [r2, 0x11]
+ cmp r0, r5
+ bne _0809692C
+ ldrb r0, [r3, 0x12]
+ ldrb r1, [r2, 0x12]
+ cmp r0, r1
+ bne _0809692C
+ ldrb r0, [r3, 0x13]
+ ldrb r5, [r2, 0x13]
+ cmp r0, r5
+ bne _0809692C
+ movs r0, 0x1
+ b _08096936
+ .align 2, 0
+_08096928: .4byte gUnknown_203B490
+_0809692C:
+ adds r2, 0x14
+ adds r4, 0x1
+ cmp r4, 0x7
+ ble _080968BE
+ movs r0, 0
+_08096936:
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80968B0
+
+ thumb_func_start sub_809693C
+sub_809693C:
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ adds r4, r0, 0
+ ldrb r0, [r4, 0x4]
+ mov r9, r0
+ ldrb r0, [r4, 0x5]
+ mov r8, r0
+ movs r7, 0
+ adds r0, r4, 0
+ bl IsValidWonderMail
+ lsls r0, 24
+ cmp r0, 0
+ bne _08096962
+ b _0809699A
+_0809695E:
+ movs r0, 0x1
+ b _0809699C
+_08096962:
+ ldrb r0, [r4, 0x1]
+ cmp r0, 0x2
+ bne _0809696A
+ movs r7, 0x1
+_0809696A:
+ movs r6, 0
+ movs r5, 0xF0
+ movs r4, 0
+_08096970:
+ ldr r0, _080969A8
+ ldr r1, [r0]
+ adds r0, r1, r4
+ adds r0, 0xF0
+ ldrb r0, [r0]
+ cmp r0, 0x6
+ bne _08096990
+ adds r0, r1, r5
+ mov r1, r9
+ mov r2, r8
+ adds r3, r7, 0
+ bl sub_8095E38
+ lsls r0, 24
+ cmp r0, 0
+ bne _0809695E
+_08096990:
+ adds r5, 0x14
+ adds r4, 0x14
+ adds r6, 0x1
+ cmp r6, 0x7
+ ble _08096970
+_0809699A:
+ movs r0, 0
+_0809699C:
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080969A8: .4byte gUnknown_203B490
+ thumb_func_end sub_809693C
+
+ thumb_func_start sub_80969AC
+sub_80969AC:
+ push {r4,r5,lr}
+ movs r5, 0
+ movs r4, 0
+_080969B2:
+ lsls r0, r4, 24
+ lsrs r0, 24
+ bl sub_8096ACC
+ lsls r0, 24
+ cmp r0, 0
+ bne _080969C2
+ adds r5, 0x1
+_080969C2:
+ adds r4, 0x1
+ cmp r4, 0x7
+ ble _080969B2
+ adds r0, r5, 0
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80969AC
+
+ thumb_func_start sub_80969D0
+sub_80969D0:
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r6, r0, 24
+ movs r5, 0
+ movs r4, 0
+_080969DA:
+ lsls r0, r4, 24
+ lsrs r0, 24
+ bl sub_8096AB4
+ adds r1, r0, 0
+ ldrb r0, [r1, 0x4]
+ cmp r0, r6
+ bne _080969FA
+ ldrb r0, [r1]
+ cmp r0, 0x6
+ beq _080969F8
+ cmp r0, 0x8
+ beq _080969F8
+ cmp r0, 0x9
+ bne _080969FA
+_080969F8:
+ adds r5, 0x1
+_080969FA:
+ adds r4, 0x1
+ cmp r4, 0x7
+ ble _080969DA
+ adds r0, r5, 0
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80969D0
+
+ thumb_func_start sub_8096A08
+sub_8096A08:
+ push {r4-r6,lr}
+ sub sp, 0xC
+ adds r6, r1, 0
+ lsls r0, 24
+ lsrs r5, r0, 24
+ movs r4, 0
+_08096A14:
+ lsls r0, r4, 24
+ lsrs r0, 24
+ bl sub_8096AB4
+ adds r2, r0, 0
+ ldrb r0, [r2, 0x4]
+ cmp r0, r5
+ bne _08096A68
+ ldrb r0, [r2]
+ cmp r0, 0x6
+ bne _08096A68
+ ldrb r0, [r2, 0x1]
+ cmp r0, 0x2
+ bne _08096A68
+ ldr r1, _08096A60
+ ldr r0, [sp, 0x8]
+ ands r0, r1
+ movs r1, 0x4A
+ orrs r0, r1
+ ldr r1, _08096A64
+ ands r0, r1
+ movs r1, 0x80
+ lsls r1, 1
+ orrs r0, r1
+ str r0, [sp, 0x8]
+ movs r0, 0xC
+ ldrsh r1, [r2, r0]
+ add r0, sp, 0x8
+ str r0, [sp]
+ movs r0, 0
+ str r0, [sp, 0x4]
+ adds r0, r6, 0
+ movs r2, 0
+ movs r3, 0
+ bl sub_808CFD0
+ movs r0, 0x1
+ b _08096A70
+ .align 2, 0
+_08096A60: .4byte 0xffffff00
+_08096A64: .4byte 0xffff00ff
+_08096A68:
+ adds r4, 0x1
+ cmp r4, 0x7
+ ble _08096A14
+ movs r0, 0
+_08096A70:
+ add sp, 0xC
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8096A08
+
+ thumb_func_start sub_8096A78
+sub_8096A78:
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ movs r3, 0
+ ldr r5, _08096AA0
+ movs r2, 0
+_08096A82:
+ ldr r0, [r5]
+ adds r0, r2
+ adds r1, r0, 0
+ adds r1, 0xF0
+ ldrb r0, [r1]
+ cmp r0, 0
+ bne _08096AA4
+ adds r0, r4, 0
+ ldm r0!, {r2-r4}
+ stm r1!, {r2-r4}
+ ldm r0!, {r2,r3}
+ stm r1!, {r2,r3}
+ movs r0, 0
+ b _08096AAE
+ .align 2, 0
+_08096AA0: .4byte gUnknown_203B490
+_08096AA4:
+ adds r2, 0x14
+ adds r3, 0x1
+ cmp r3, 0x7
+ ble _08096A82
+ movs r0, 0x1
+_08096AAE:
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8096A78
+
+ thumb_func_start sub_8096AB4
+sub_8096AB4:
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _08096AC8
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 2
+ adds r1, 0xF0
+ ldr r0, [r2]
+ adds r0, r1
+ bx lr
+ .align 2, 0
+_08096AC8: .4byte gUnknown_203B490
+ thumb_func_end sub_8096AB4
+
+ thumb_func_start sub_8096ACC
+sub_8096ACC:
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r1, _08096AEC
+ ldr r2, [r1]
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 2
+ adds r2, r1
+ adds r2, 0xF0
+ ldrb r0, [r2]
+ cmp r0, 0
+ beq _08096AF0
+ movs r0, 0
+ b _08096AF2
+ .align 2, 0
+_08096AEC: .4byte gUnknown_203B490
+_08096AF0:
+ movs r0, 0x1
+_08096AF2:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8096ACC
+
+ thumb_func_start sub_8096AF8
+sub_8096AF8:
+ push {r4-r6,lr}
+ adds r5, r0, 0
+ adds r0, r1, 0
+ adds r4, r2, 0
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r4, 24
+ lsrs r4, 24
+ bl sub_8096AB4
+ adds r3, r0, 0
+ movs r1, 0
+ strb r1, [r5]
+ ldrh r0, [r3, 0xC]
+ strh r0, [r5, 0x2]
+ strh r1, [r5, 0x4]
+ ldrb r0, [r3, 0x4]
+ cmp r0, r4
+ bne _08096B92
+ ldrb r0, [r3, 0x1]
+ cmp r0, 0x4
+ bhi _08096B92
+ lsls r0, 2
+ ldr r1, _08096B30
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_08096B30: .4byte _08096B34
+ .align 2, 0
+_08096B34:
+ .4byte _08096B78
+ .4byte _08096B84
+ .4byte _08096B84
+ .4byte _08096B48
+ .4byte _08096B78
+_08096B48:
+ ldrb r0, [r3]
+ cmp r0, 0x6
+ bne _08096B92
+ ldr r0, _08096B74
+ movs r6, 0x1
+ ldr r2, [r0]
+ movs r4, 0x13
+_08096B56:
+ ldrb r1, [r2]
+ adds r0, r6, 0
+ ands r0, r1
+ cmp r0, 0
+ beq _08096B6A
+ ldrb r0, [r2, 0x2]
+ ldrb r1, [r3, 0x10]
+ cmp r0, r1
+ bne _08096B6A
+ strb r6, [r5]
+_08096B6A:
+ adds r2, 0x4
+ subs r4, 0x1
+ cmp r4, 0
+ bge _08096B56
+ b _08096B92
+ .align 2, 0
+_08096B74: .4byte gUnknown_203B460
+_08096B78:
+ ldrb r0, [r3]
+ cmp r0, 0x9
+ bne _08096B92
+ movs r0, 0x1
+ strb r0, [r5]
+ b _08096B92
+_08096B84:
+ ldrb r0, [r3]
+ cmp r0, 0x9
+ bne _08096B92
+ movs r0, 0x1
+ strb r0, [r5]
+ ldrh r0, [r3, 0xE]
+ strh r0, [r5, 0x4]
+_08096B92:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8096AF8
+
+ thumb_func_start sub_8096B98
+sub_8096B98:
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ movs r4, 0
+_08096BA0:
+ lsls r0, r4, 24
+ lsrs r0, 24
+ bl sub_8096AB4
+ adds r1, r0, 0
+ ldrb r0, [r1]
+ cmp r0, 0x6
+ bne _08096BC2
+ ldrb r0, [r1, 0x1]
+ cmp r0, 0x2
+ bne _08096BC2
+ ldrb r0, [r1, 0x4]
+ cmp r0, r5
+ bne _08096BC2
+ movs r2, 0xE
+ ldrsh r0, [r1, r2]
+ b _08096BCA
+_08096BC2:
+ adds r4, 0x1
+ cmp r4, 0x7
+ ble _08096BA0
+ movs r0, 0
+_08096BCA:
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8096B98
+
+ thumb_func_start sub_8096BD0
+sub_8096BD0:
+ push {r4,r5,lr}
+ ldr r0, _08096C04
+ ldr r0, [r0]
+ adds r5, r0, 0
+ adds r5, 0xF0
+ movs r4, 0
+_08096BDC:
+ ldrb r0, [r5]
+ cmp r0, 0x9
+ bgt _08096BEE
+ cmp r0, 0x7
+ blt _08096BEE
+ lsls r0, r4, 24
+ lsrs r0, 24
+ bl sub_8096C3C
+_08096BEE:
+ adds r5, 0x14
+ adds r4, 0x1
+ cmp r4, 0x7
+ ble _08096BDC
+ bl sub_8096C80
+ bl sub_8096D24
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08096C04: .4byte gUnknown_203B490
+ thumb_func_end sub_8096BD0
+
+ thumb_func_start sub_8096C08
+sub_8096C08:
+ push {lr}
+ adds r3, r0, 0
+ ldr r0, _08096C28
+ ldr r0, [r0]
+ adds r1, r0, 0
+ adds r1, 0xF0
+ movs r2, 0
+_08096C16:
+ ldrb r0, [r1]
+ cmp r0, 0x4
+ bls _08096C2C
+ ldrb r0, [r1, 0x2]
+ cmp r0, 0x4
+ bne _08096C2C
+ strb r2, [r3]
+ movs r0, 0x1
+ b _08096C36
+ .align 2, 0
+_08096C28: .4byte gUnknown_203B490
+_08096C2C:
+ adds r1, 0x14
+ adds r2, 0x1
+ cmp r2, 0x7
+ ble _08096C16
+ movs r0, 0
+_08096C36:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8096C08
+
+ thumb_func_start sub_8096C3C
+sub_8096C3C:
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r3, _08096C78
+ ldr r1, [r3]
+ lsls r2, r0, 2
+ adds r2, r0
+ lsls r2, 2
+ adds r1, r2
+ adds r1, 0xF0
+ movs r4, 0
+ strb r4, [r1]
+ ldr r0, [r3]
+ adds r0, r2
+ adds r0, 0xF4
+ movs r1, 0x63
+ strb r1, [r0]
+ ldr r0, [r3]
+ adds r0, r2
+ adds r0, 0xF5
+ strb r4, [r0]
+ ldr r0, [r3]
+ adds r0, r2
+ ldr r2, _08096C7C
+ adds r1, r0, r2
+ movs r0, 0x5
+ strb r0, [r1]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08096C78: .4byte gUnknown_203B490
+_08096C7C: .4byte 0x00000101
+ thumb_func_end sub_8096C3C
+
+ thumb_func_start sub_8096C80
+sub_8096C80:
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ movs r2, 0
+ movs r3, 0
+ ldr r0, _08096C98
+ mov r12, r0
+ mov r8, r3
+ movs r4, 0
+ mov r9, r4
+ b _08096CC2
+ .align 2, 0
+_08096C98: .4byte gUnknown_203B490
+_08096C9C:
+ cmp r2, r3
+ ble _08096CB6
+ mov r1, r12
+ ldr r0, [r1]
+ mov r5, r8
+ adds r1, r0, r5
+ adds r0, r4
+ adds r1, 0xF0
+ adds r0, 0xF0
+ ldm r0!, {r5-r7}
+ stm r1!, {r5-r7}
+ ldm r0!, {r6,r7}
+ stm r1!, {r6,r7}
+_08096CB6:
+ adds r4, 0x14
+ movs r0, 0x14
+ add r9, r0
+ adds r2, 0x1
+ add r8, r0
+ adds r3, 0x1
+_08096CC2:
+ cmp r2, 0x7
+ bgt _08096CF2
+ mov r1, r12
+ ldr r0, [r1]
+ adds r0, r4
+ adds r0, 0xF0
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _08096CF2
+ ldr r6, _08096D20
+ mov r1, r9
+_08096CD8:
+ adds r1, 0x14
+ adds r4, 0x14
+ movs r5, 0x14
+ add r9, r5
+ adds r2, 0x1
+ cmp r2, 0x7
+ bgt _08096CF2
+ ldr r0, [r6]
+ adds r0, r1
+ adds r0, 0xF0
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _08096CD8
+_08096CF2:
+ cmp r2, 0x8
+ bne _08096C9C
+ cmp r3, 0x7
+ bgt _08096D14
+ ldr r4, _08096D20
+ movs r2, 0
+ lsls r0, r3, 2
+ adds r0, r3
+ lsls r1, r0, 2
+_08096D04:
+ ldr r0, [r4]
+ adds r0, r1
+ adds r0, 0xF0
+ strb r2, [r0]
+ adds r1, 0x14
+ adds r3, 0x1
+ cmp r3, 0x7
+ ble _08096D04
+_08096D14:
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08096D20: .4byte gUnknown_203B490
+ thumb_func_end sub_8096C80
+
+ thumb_func_start sub_8096D24
+sub_8096D24:
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x18
+ movs r1, 0
+_08096D32:
+ adds r6, r1, 0x1
+ mov r10, r6
+ cmp r6, 0x7
+ bgt _08096DBC
+ ldr r0, _08096DD4
+ mov r8, r0
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 2
+ mov r9, r0
+ lsls r0, r6, 2
+ adds r0, r6
+ lsls r4, r0, 2
+_08096D4C:
+ mov r1, r8
+ ldr r2, [r1]
+ adds r3, r2, r4
+ adds r5, r3, 0
+ adds r5, 0xF0
+ str r5, [sp, 0x14]
+ ldrb r0, [r5]
+ cmp r0, 0
+ beq _08096DB0
+ add r2, r9
+ mov r12, r2
+ mov r0, r12
+ adds r0, 0xF4
+ adds r1, r3, 0
+ adds r1, 0xF4
+ ldrb r2, [r0]
+ ldrb r0, [r1]
+ cmp r2, r0
+ bhi _08096D84
+ cmp r2, r0
+ bne _08096DB0
+ mov r0, r12
+ adds r0, 0xF5
+ adds r1, 0x1
+ ldrb r0, [r0]
+ ldrb r1, [r1]
+ cmp r0, r1
+ bls _08096DB0
+_08096D84:
+ mov r2, r12
+ adds r2, 0xF0
+ mov r1, sp
+ adds r0, r2, 0
+ ldm r0!, {r3,r5,r7}
+ stm r1!, {r3,r5,r7}
+ ldm r0!, {r3,r7}
+ stm r1!, {r3,r7}
+ ldr r0, [sp, 0x14]
+ ldm r0!, {r1,r5,r7}
+ stm r2!, {r1,r5,r7}
+ ldm r0!, {r3,r5}
+ stm r2!, {r3,r5}
+ mov r7, r8
+ ldr r1, [r7]
+ adds r1, r4
+ adds r1, 0xF0
+ mov r0, sp
+ ldm r0!, {r2,r3,r5}
+ stm r1!, {r2,r3,r5}
+ ldm r0!, {r2,r7}
+ stm r1!, {r2,r7}
+_08096DB0:
+ adds r4, 0x14
+ movs r3, 0x1
+ add r10, r3
+ mov r5, r10
+ cmp r5, 0x7
+ ble _08096D4C
+_08096DBC:
+ adds r1, r6, 0
+ cmp r1, 0x6
+ ble _08096D32
+ add sp, 0x18
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08096DD4: .4byte gUnknown_203B490
+ thumb_func_end sub_8096D24
+
+ thumb_func_start sub_8096DD8
+sub_8096DD8:
+ ldr r0, _08096DE4
+ ldr r0, [r0]
+ movs r1, 0xC8
+ lsls r1, 1
+ adds r0, r1
+ bx lr
+ .align 2, 0
+_08096DE4: .4byte gUnknown_203B490
+ thumb_func_end sub_8096DD8
+
+ thumb_func_start sub_8096DE8
+sub_8096DE8:
+ ldr r0, _08096DF4
+ ldr r0, [r0]
+ movs r1, 0xDC
+ lsls r1, 1
+ adds r0, r1
+ bx lr
+ .align 2, 0
+_08096DF4: .4byte gUnknown_203B490
+ thumb_func_end sub_8096DE8
+
+ thumb_func_start sub_8096DF8
+sub_8096DF8:
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r1, _08096E10
+ ldr r1, [r1]
+ movs r2, 0xBC
+ lsls r2, 2
+ adds r1, r2
+ adds r1, r0
+ movs r0, 0x1
+ strb r0, [r1]
+ bx lr
+ .align 2, 0
+_08096E10: .4byte gUnknown_203B490
+ thumb_func_end sub_8096DF8
+
+ thumb_func_start sub_8096E14
+sub_8096E14:
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r1, _08096E28
+ ldr r1, [r1]
+ movs r2, 0xBC
+ lsls r2, 2
+ adds r1, r2
+ adds r1, r0
+ ldrb r0, [r1]
+ bx lr
+ .align 2, 0
+_08096E28: .4byte gUnknown_203B490
+ thumb_func_end sub_8096E14
+
+ thumb_func_start sub_8096E2C
+sub_8096E2C:
+ push {lr}
+ movs r3, 0
+ ldr r0, _08096E70
+ ldr r1, [r0]
+ movs r2, 0x3
+_08096E36:
+ ldrb r0, [r1]
+ cmp r0, 0x1
+ bne _08096E48
+ ldrb r0, [r1, 0x5]
+ cmp r3, r0
+ bgt _08096E48
+ cmp r0, 0x31
+ bhi _08096E48
+ adds r3, r0, 0x1
+_08096E48:
+ adds r1, 0x14
+ subs r2, 0x1
+ cmp r2, 0
+ bge _08096E36
+ adds r2, r3, 0
+ cmp r2, 0x31
+ bgt _08096E7A
+ ldr r0, _08096E70
+ ldr r0, [r0]
+ movs r3, 0xBC
+ lsls r3, 2
+ adds r1, r0, r3
+_08096E60:
+ adds r0, r1, r2
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _08096E74
+ lsls r0, r2, 24
+ lsrs r0, 24
+ b _08096E7C
+ .align 2, 0
+_08096E70: .4byte gUnknown_203B490
+_08096E74:
+ adds r2, 0x1
+ cmp r2, 0x31
+ ble _08096E60
+_08096E7A:
+ movs r0, 0x38
+_08096E7C:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8096E2C
+
+ thumb_func_start sub_8096E80
+sub_8096E80:
+ push {lr}
+ lsls r0, 24
+ lsrs r3, r0, 24
+ movs r2, 0
+ ldr r0, _08096E9C
+ ldr r1, [r0]
+_08096E8C:
+ ldrb r0, [r1]
+ cmp r0, 0x1
+ bne _08096EA0
+ ldrb r0, [r1, 0x5]
+ cmp r3, r0
+ bne _08096EA0
+ movs r0, 0x1
+ b _08096EAA
+ .align 2, 0
+_08096E9C: .4byte gUnknown_203B490
+_08096EA0:
+ adds r1, 0x14
+ adds r2, 0x1
+ cmp r2, 0x3
+ ble _08096E8C
+ movs r0, 0
+_08096EAA:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8096E80
+
+ thumb_func_start sub_8096EB0
+sub_8096EB0:
+ ldrb r1, [r0, 0x2]
+ ldrb r2, [r0, 0x1]
+ adds r1, r2
+ ldrb r3, [r0, 0x4]
+ adds r2, r1, r3
+ ldrb r1, [r0, 0x5]
+ adds r2, r1
+ ldr r1, [r0, 0x8]
+ lsls r1, 8
+ adds r2, r1
+ movs r3, 0xC
+ ldrsh r1, [r0, r3]
+ lsls r1, 12
+ adds r2, r1
+ movs r3, 0xE
+ ldrsh r1, [r0, r3]
+ lsls r1, 16
+ adds r2, r1
+ ldrb r1, [r0, 0x10]
+ lsls r1, 24
+ adds r1, r2, r1
+ ldrb r3, [r0, 0x11]
+ adds r2, r1, r3
+ ldrb r1, [r0, 0x12]
+ adds r1, r2, r1
+ ldrb r0, [r0, 0x13]
+ adds r2, r1, r0
+ adds r0, r2, 0
+ bx lr
+ thumb_func_end sub_8096EB0
+
+ thumb_func_start sub_8096EEC
+sub_8096EEC:
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ mov r12, r0
+ movs r3, 0xF
+ ldr r5, _08096F4C
+ mov r8, r5
+ movs r4, 0x8C
+ lsls r4, 2
+_08096EFE:
+ mov r0, r8
+ ldr r2, [r0]
+ lsls r1, r3, 1
+ adds r1, r3
+ lsls r1, 2
+ adds r1, r2, r1
+ subs r3, 0x1
+ lsls r0, r3, 1
+ adds r0, r3
+ lsls r0, 2
+ adds r2, r0
+ adds r1, r4
+ adds r2, r4
+ ldm r2!, {r0,r6,r7}
+ stm r1!, {r0,r6,r7}
+ cmp r3, 0
+ bgt _08096EFE
+ ldr r2, [r5]
+ movs r3, 0x8C
+ lsls r3, 2
+ adds r2, r3
+ mov r6, r12
+ ldr r0, [r6, 0x4]
+ ldr r1, [r6, 0x8]
+ str r0, [r2]
+ str r1, [r2, 0x4]
+ mov r0, r12
+ bl sub_8096EB0
+ ldr r1, [r5]
+ movs r7, 0x8E
+ lsls r7, 2
+ adds r1, r7
+ str r0, [r1]
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08096F4C: .4byte gUnknown_203B490
+ thumb_func_end sub_8096EEC
+
+ thumb_func_start sub_8096F50
+sub_8096F50:
+ push {r4-r7,lr}
+ adds r4, r0, 0
+ bl sub_8096EB0
+ mov r12, r0
+ movs r5, 0
+ ldr r0, _08096F8C
+ ldr r7, [r0]
+ ldrb r6, [r4, 0x4]
+ movs r3, 0
+_08096F64:
+ movs r1, 0x8C
+ lsls r1, 2
+ adds r0, r3, r1
+ adds r2, r7, r0
+ ldrb r0, [r2]
+ cmp r0, r6
+ bne _08096F90
+ ldrb r0, [r2, 0x1]
+ ldrb r1, [r4, 0x5]
+ cmp r0, r1
+ bne _08096F90
+ ldr r1, [r2, 0x4]
+ ldr r0, [r4, 0x8]
+ cmp r1, r0
+ bne _08096F90
+ ldr r0, [r2, 0x8]
+ cmp r0, r12
+ bne _08096F90
+ movs r0, 0x1
+ b _08096F9A
+ .align 2, 0
+_08096F8C: .4byte gUnknown_203B490
+_08096F90:
+ adds r3, 0xC
+ adds r5, 0x1
+ cmp r5, 0xF
+ ble _08096F64
+ movs r0, 0
+_08096F9A:
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8096F50
+
+ thumb_func_start sub_8096FA0
+sub_8096FA0:
+ push {r4-r7,lr}
+ sub sp, 0x14
+ adds r3, r0, 0
+ adds r2, r1, 0
+ mov r0, sp
+ adds r1, r3, 0
+ bl sub_809485C
+ add r7, sp, 0x10
+ ldr r6, _08097020
+ movs r5, 0
+ movs r4, 0x3
+_08096FB8:
+ ldr r1, [r6]
+ adds r1, r5
+ mov r0, sp
+ bl sub_80971EC
+ adds r5, 0x14
+ subs r4, 0x1
+ cmp r4, 0
+ bge _08096FB8
+ ldr r6, _08097020
+ movs r5, 0x50
+ movs r4, 0x7
+_08096FD0:
+ ldr r1, [r6]
+ adds r1, r5
+ mov r0, sp
+ bl sub_80971EC
+ adds r5, 0x14
+ subs r4, 0x1
+ cmp r4, 0
+ bge _08096FD0
+ ldr r6, _08097020
+ movs r5, 0xF0
+ movs r4, 0x7
+_08096FE8:
+ ldr r1, [r6]
+ adds r1, r5
+ mov r0, sp
+ bl sub_80971EC
+ adds r5, 0x14
+ subs r4, 0x1
+ cmp r4, 0
+ bge _08096FE8
+ movs r4, 0
+ movs r6, 0x1
+ ldr r5, _08097020
+_08097000:
+ mov r0, sp
+ adds r1, r7, 0
+ movs r2, 0x1
+ bl sub_8094924
+ ldr r1, [sp, 0x10]
+ ands r1, r6
+ cmp r1, 0
+ beq _08097024
+ ldr r0, [r5]
+ movs r1, 0xBC
+ lsls r1, 2
+ adds r0, r1
+ adds r0, r4
+ strb r6, [r0]
+ b _08097030
+ .align 2, 0
+_08097020: .4byte gUnknown_203B490
+_08097024:
+ ldr r0, [r5]
+ movs r2, 0xBC
+ lsls r2, 2
+ adds r0, r2
+ adds r0, r4
+ strb r1, [r0]
+_08097030:
+ adds r4, 0x1
+ cmp r4, 0x37
+ ble _08097000
+ mov r0, sp
+ adds r1, r7, 0
+ movs r2, 0x1
+ bl sub_8094924
+ ldr r1, [sp, 0x10]
+ movs r2, 0x1
+ ands r1, r2
+ cmp r1, 0
+ beq _0809705C
+ ldr r0, _08097058
+ ldr r0, [r0]
+ movs r1, 0xCA
+ lsls r1, 2
+ adds r0, r1
+ strb r2, [r0]
+ b _08097068
+ .align 2, 0
+_08097058: .4byte gUnknown_203B490
+_0809705C:
+ ldr r0, _080970D4
+ ldr r0, [r0]
+ movs r2, 0xCA
+ lsls r2, 2
+ adds r0, r2
+ strb r1, [r0]
+_08097068:
+ ldr r4, _080970D4
+ ldr r1, [r4]
+ movs r0, 0xC8
+ lsls r0, 1
+ adds r1, r0
+ movs r2, 0xA0
+ lsls r2, 1
+ mov r0, sp
+ bl sub_8094924
+ ldr r1, [r4]
+ movs r2, 0xDC
+ lsls r2, 1
+ adds r1, r2
+ movs r2, 0xF0
+ lsls r2, 2
+ mov r0, sp
+ bl sub_8094924
+ adds r6, r4, 0
+ movs r5, 0x8C
+ lsls r5, 2
+ movs r4, 0xF
+_08097096:
+ ldr r1, [r6]
+ adds r1, r5
+ adds r1, 0x8
+ mov r0, sp
+ movs r2, 0x20
+ bl sub_8094924
+ ldr r1, [r6]
+ adds r1, r5
+ adds r1, 0x4
+ mov r0, sp
+ movs r2, 0x18
+ bl sub_8094924
+ ldr r1, [r6]
+ adds r1, r5
+ mov r0, sp
+ bl sub_8090314
+ adds r5, 0xC
+ subs r4, 0x1
+ cmp r4, 0
+ bge _08097096
+ mov r0, sp
+ bl nullsub_102
+ ldr r0, [sp, 0x8]
+ add sp, 0x14
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080970D4: .4byte gUnknown_203B490
+ thumb_func_end sub_8096FA0
+
+ thumb_func_start sub_80970D8
+sub_80970D8:
+ push {r4-r7,lr}
+ sub sp, 0x14
+ adds r3, r0, 0
+ adds r2, r1, 0
+ mov r0, sp
+ adds r1, r3, 0
+ bl sub_809486C
+ add r7, sp, 0x10
+ ldr r6, _080971E8
+ movs r5, 0
+ movs r4, 0x3
+_080970F0:
+ ldr r1, [r6]
+ adds r1, r5
+ mov r0, sp
+ bl sub_8097270
+ adds r5, 0x14
+ subs r4, 0x1
+ cmp r4, 0
+ bge _080970F0
+ ldr r6, _080971E8
+ movs r5, 0x50
+ movs r4, 0x7
+_08097108:
+ ldr r1, [r6]
+ adds r1, r5
+ mov r0, sp
+ bl sub_8097270
+ adds r5, 0x14
+ subs r4, 0x1
+ cmp r4, 0
+ bge _08097108
+ ldr r6, _080971E8
+ movs r5, 0xF0
+ movs r4, 0x7
+_08097120:
+ ldr r1, [r6]
+ adds r1, r5
+ mov r0, sp
+ bl sub_8097270
+ adds r5, 0x14
+ subs r4, 0x1
+ cmp r4, 0
+ bge _08097120
+ movs r4, 0
+_08097134:
+ ldr r0, _080971E8
+ ldr r0, [r0]
+ movs r1, 0xBC
+ lsls r1, 2
+ adds r0, r1
+ adds r0, r4
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _0809714A
+ movs r0, 0x1
+ negs r0, r0
+_0809714A:
+ str r0, [sp, 0x10]
+ mov r0, sp
+ adds r1, r7, 0
+ movs r2, 0x1
+ bl sub_809488C
+ adds r4, 0x1
+ cmp r4, 0x37
+ ble _08097134
+ ldr r0, _080971E8
+ ldr r0, [r0]
+ movs r1, 0xCA
+ lsls r1, 2
+ adds r0, r1
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _08097170
+ movs r0, 0x1
+ negs r0, r0
+_08097170:
+ str r0, [sp, 0x10]
+ mov r0, sp
+ adds r1, r7, 0
+ movs r2, 0x1
+ bl sub_809488C
+ ldr r4, _080971E8
+ ldr r1, [r4]
+ movs r0, 0xC8
+ lsls r0, 1
+ adds r1, r0
+ movs r2, 0xA0
+ lsls r2, 1
+ mov r0, sp
+ bl sub_809488C
+ ldr r1, [r4]
+ movs r0, 0xDC
+ lsls r0, 1
+ adds r1, r0
+ movs r2, 0xF0
+ lsls r2, 2
+ mov r0, sp
+ bl sub_809488C
+ adds r6, r4, 0
+ movs r5, 0x8C
+ lsls r5, 2
+ movs r4, 0xF
+_080971AA:
+ ldr r1, [r6]
+ adds r1, r5
+ adds r1, 0x8
+ mov r0, sp
+ movs r2, 0x20
+ bl sub_809488C
+ ldr r1, [r6]
+ adds r1, r5
+ adds r1, 0x4
+ mov r0, sp
+ movs r2, 0x18
+ bl sub_809488C
+ ldr r1, [r6]
+ adds r1, r5
+ mov r0, sp
+ bl sub_80902F4
+ adds r5, 0xC
+ subs r4, 0x1
+ cmp r4, 0
+ bge _080971AA
+ mov r0, sp
+ bl nullsub_102
+ ldr r0, [sp, 0x8]
+ add sp, 0x14
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080971E8: .4byte gUnknown_203B490
+ thumb_func_end sub_80970D8
+
+ thumb_func_start sub_80971EC
+sub_80971EC:
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ adds r5, r1, 0
+ movs r2, 0x4
+ bl sub_8094924
+ adds r1, r5, 0x1
+ adds r0, r4, 0
+ movs r2, 0x3
+ bl sub_8094924
+ adds r1, r5, 0x2
+ adds r0, r4, 0
+ movs r2, 0x4
+ bl sub_8094924
+ adds r1, r5, 0
+ adds r1, 0xC
+ adds r0, r4, 0
+ movs r2, 0x9
+ bl sub_8094924
+ adds r1, r5, 0
+ adds r1, 0xE
+ adds r0, r4, 0
+ movs r2, 0x9
+ bl sub_8094924
+ adds r1, r5, 0
+ adds r1, 0x10
+ adds r0, r4, 0
+ movs r2, 0x8
+ bl sub_8094924
+ adds r1, r5, 0
+ adds r1, 0x11
+ adds r0, r4, 0
+ movs r2, 0x4
+ bl sub_8094924
+ adds r1, r5, 0
+ adds r1, 0x12
+ adds r0, r4, 0
+ movs r2, 0x8
+ bl sub_8094924
+ adds r1, r5, 0
+ adds r1, 0x13
+ adds r0, r4, 0
+ movs r2, 0x6
+ bl sub_8094924
+ adds r1, r5, 0
+ adds r1, 0x8
+ adds r0, r4, 0
+ movs r2, 0x18
+ bl sub_8094924
+ adds r1, r5, 0x4
+ adds r0, r4, 0
+ bl sub_8090314
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80971EC
+
+ thumb_func_start sub_8097270
+sub_8097270:
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ adds r5, r1, 0
+ movs r2, 0x4
+ bl sub_809488C
+ adds r1, r5, 0x1
+ adds r0, r4, 0
+ movs r2, 0x3
+ bl sub_809488C
+ adds r1, r5, 0x2
+ adds r0, r4, 0
+ movs r2, 0x4
+ bl sub_809488C
+ adds r1, r5, 0
+ adds r1, 0xC
+ adds r0, r4, 0
+ movs r2, 0x9
+ bl sub_809488C
+ adds r1, r5, 0
+ adds r1, 0xE
+ adds r0, r4, 0
+ movs r2, 0x9
+ bl sub_809488C
+ adds r1, r5, 0
+ adds r1, 0x10
+ adds r0, r4, 0
+ movs r2, 0x8
+ bl sub_809488C
+ adds r1, r5, 0
+ adds r1, 0x11
+ adds r0, r4, 0
+ movs r2, 0x4
+ bl sub_809488C
+ adds r1, r5, 0
+ adds r1, 0x12
+ adds r0, r4, 0
+ movs r2, 0x8
+ bl sub_809488C
+ adds r1, r5, 0
+ adds r1, 0x13
+ adds r0, r4, 0
+ movs r2, 0x6
+ bl sub_809488C
+ adds r1, r5, 0
+ adds r1, 0x8
+ adds r0, r4, 0
+ movs r2, 0x18
+ bl sub_809488C
+ adds r1, r5, 0x4
+ adds r0, r4, 0
+ bl sub_80902F4
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8097270
+
+ thumb_func_start sub_80972F4
+sub_80972F4:
+ push {lr}
+ movs r0, 0
+ movs r1, 0x2B
+ bl sub_80015C0
+ movs r0, 0
+ movs r1, 0x2C
+ bl sub_80015C0
+ movs r0, 0
+ movs r1, 0x2D
+ bl sub_80015C0
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80972F4
+
+ thumb_func_start nullsub_128
+nullsub_128:
+ bx lr
+ thumb_func_end nullsub_128
+
+ thumb_func_start sub_8097318
+sub_8097318:
+ push {lr}
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0xD
+ bne _08097326
+ movs r0, 0
+ b _08097338
+_08097326:
+ lsls r2, r0, 16
+ lsrs r2, 16
+ movs r0, 0
+ movs r1, 0x2B
+ bl sub_8001784
+ cmp r0, 0
+ beq _08097338
+ movs r0, 0x1
+_08097338:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8097318
+
+ thumb_func_start sub_809733C
+sub_809733C:
+ push {r4-r6,lr}
+ lsls r0, 16
+ asrs r4, r0, 16
+ lsls r1, 24
+ lsrs r6, r1, 24
+ cmp r4, 0xD
+ beq _0809737C
+ lsls r0, r4, 16
+ lsrs r5, r0, 16
+ movs r0, 0
+ movs r1, 0x2C
+ adds r2, r5, 0
+ bl sub_8001784
+ cmp r0, 0
+ bne _0809737C
+ movs r0, 0
+ movs r1, 0x2B
+ adds r2, r5, 0
+ adds r3, r6, 0
+ bl sub_800199C
+ cmp r6, 0
+ beq _0809737C
+ cmp r4, 0xE
+ blt _0809737C
+ cmp r4, 0xF
+ ble _08097378
+ cmp r4, 0x1C
+ bne _0809737C
+_08097378:
+ bl sub_809674C
+_0809737C:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_809733C
+
+ thumb_func_start sub_8097384
+sub_8097384:
+ push {lr}
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0xD
+ bne _08097392
+ movs r0, 0
+ b _080973A4
+_08097392:
+ lsls r2, r0, 16
+ lsrs r2, 16
+ movs r0, 0
+ movs r1, 0x2C
+ bl sub_8001784
+ cmp r0, 0
+ beq _080973A4
+ movs r0, 0x1
+_080973A4:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8097384
+
+ thumb_func_start sub_80973A8
+sub_80973A8:
+ push {r4-r6,lr}
+ lsls r0, 16
+ asrs r0, 16
+ lsls r1, 24
+ lsrs r6, r1, 24
+ cmp r0, 0xD
+ beq _080973EE
+ lsls r5, r0, 16
+ cmp r6, 0
+ beq _080973E2
+ bl sub_80A26B8
+ lsls r0, 16
+ asrs r4, r0, 16
+ lsrs r2, r5, 16
+ movs r0, 0
+ movs r1, 0x2B
+ movs r3, 0
+ bl sub_800199C
+ movs r0, 0x1
+ negs r0, r0
+ cmp r4, r0
+ beq _080973E2
+ movs r0, 0
+ movs r1, 0x12
+ adds r2, r4, 0
+ bl sub_80018D8
+_080973E2:
+ lsrs r2, r5, 16
+ movs r0, 0
+ movs r1, 0x2C
+ adds r3, r6, 0
+ bl sub_800199C
+_080973EE:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80973A8
+
+ thumb_func_start sub_80973F4
+sub_80973F4:
+ push {lr}
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0xD
+ bne _08097402
+ movs r0, 0
+ b _08097414
+_08097402:
+ lsls r2, r0, 16
+ lsrs r2, 16
+ movs r0, 0
+ movs r1, 0x2D
+ bl sub_8001784
+ cmp r0, 0
+ beq _08097414
+ movs r0, 0x1
+_08097414:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80973F4
+
+ thumb_func_start sub_8097418
+sub_8097418:
+ push {r4-r7,lr}
+ lsls r0, 16
+ asrs r5, r0, 16
+ lsls r1, 24
+ lsrs r7, r1, 24
+ cmp r5, 0xD
+ beq _08097470
+ lsls r6, r5, 16
+ cmp r7, 0
+ beq _08097464
+ lsrs r2, r6, 16
+ movs r0, 0
+ movs r1, 0x2C
+ movs r3, 0
+ bl sub_800199C
+ cmp r5, 0x1E
+ bgt _08097464
+ lsls r0, r5, 3
+ ldr r1, _08097478
+ adds r4, r0, r1
+ ldrb r0, [r4, 0x4]
+ cmp r0, 0xFF
+ beq _0809744C
+ bl sub_8097FA8
+_0809744C:
+ ldrb r0, [r4, 0x5]
+ cmp r0, 0xFF
+ beq _08097456
+ bl sub_8097FA8
+_08097456:
+ cmp r5, 0x9
+ bne _08097460
+ movs r0, 0x1F
+ bl sub_8097FA8
+_08097460:
+ bl sub_8097FF8
+_08097464:
+ lsrs r2, r6, 16
+ movs r0, 0
+ movs r1, 0x2D
+ adds r3, r7, 0
+ bl sub_800199C
+_08097470:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08097478: .4byte gStoryMissionText
+ thumb_func_end sub_8097418
+
+ .align 2,0
diff --git a/asm/items.s b/asm/items.s
index 87c7dc7..639ee66 100644
--- a/asm/items.s
+++ b/asm/items.s
@@ -797,8 +797,8 @@ _080913C4: .4byte gUnknown_203B460
_080913C8: .4byte 0x0001869f
thumb_func_end sub_80913A0
- thumb_func_start sub_80913CC
-sub_80913CC:
+ thumb_func_start GetItemMove
+GetItemMove:
lsls r0, 24
ldr r1, _080913DC
ldr r1, [r1]
@@ -808,7 +808,7 @@ sub_80913CC:
bx lr
.align 2, 0
_080913DC: .4byte gItemParametersData
- thumb_func_end sub_80913CC
+ thumb_func_end GetItemMove
thumb_func_start sub_80913E0
sub_80913E0:
@@ -861,7 +861,7 @@ _08091414:
bne _080914B6
add r4, sp, 0x54
ldrb r0, [r6, 0x2]
- bl sub_80913CC
+ bl GetItemMove
adds r1, r0, 0
lsls r1, 16
lsrs r1, 16
diff --git a/asm/kecleon_items.s b/asm/kecleon_items.s
index e703eba..72a16f2 100644
--- a/asm/kecleon_items.s
+++ b/asm/kecleon_items.s
@@ -5,8 +5,8 @@
.text
- thumb_func_start sub_8018E88
-sub_8018E88:
+ thumb_func_start UpdateKecleonStoreDialogue
+UpdateKecleonStoreDialogue:
push {r4,lr}
sub sp, 0x14
ldr r1, _08018EA4
@@ -753,7 +753,7 @@ _080194E8:
.align 2, 0
_080194F0: .4byte gKecleonShopDialogue
_080194F4: .4byte 0x0000010d
- thumb_func_end sub_8018E88
+ thumb_func_end UpdateKecleonStoreDialogue
thumb_func_start sub_80194F8
sub_80194F8:
diff --git a/asm/code_808EAB0.s b/asm/pokemon_3.s
index a008794..a008794 100644
--- a/asm/code_808EAB0.s
+++ b/asm/pokemon_3.s
diff --git a/asm/wonder_mail_1.s b/asm/wonder_mail_1.s
index 6c9d8e6..133b481 100644
--- a/asm/wonder_mail_1.s
+++ b/asm/wonder_mail_1.s
@@ -5,626 +5,6 @@
.text
- thumb_func_start sub_802A75C
-sub_802A75C:
- push {lr}
- sub sp, 0x4
- mov r0, sp
- bl sub_80144A4
- cmp r0, 0
- bne _0802A792
- ldr r0, [sp]
- cmp r0, 0
- beq _0802A78C
- cmp r0, 0x7
- bne _0802A792
- ldr r0, _0802A788
- ldr r0, [r0]
- movs r1, 0xA7
- lsls r1, 3
- adds r0, r1
- ldr r0, [r0]
- movs r0, 0x16
- bl sub_802B2BC
- b _0802A792
- .align 2, 0
-_0802A788: .4byte gUnknown_203B2C4
-_0802A78C:
- movs r0, 0x1
- bl sub_802B2BC
-_0802A792:
- add sp, 0x4
- pop {r0}
- bx r0
- thumb_func_end sub_802A75C
-
- thumb_func_start sub_802A798
-sub_802A798:
- push {r4,r5,lr}
- sub sp, 0x4
- mov r0, sp
- bl sub_80144A4
- cmp r0, 0
- bne _0802A81E
- ldr r0, [sp]
- cmp r0, 0x7
- beq _0802A7BC
- cmp r0, 0x7
- bgt _0802A7B6
- cmp r0, 0
- beq _0802A818
- b _0802A81E
-_0802A7B6:
- cmp r0, 0x8
- beq _0802A810
- b _0802A81E
-_0802A7BC:
- ldr r4, _0802A800
- ldr r0, [r4]
- movs r1, 0x86
- lsls r1, 2
- adds r0, r1
- ldrb r0, [r0]
- bl sub_8095228
- adds r2, r0, 0
- ldr r1, [r4]
- ldr r3, _0802A804
- adds r0, r1, r3
- ldrb r0, [r0]
- cmp r0, 0
- beq _0802A7E2
- ldr r5, _0802A808
- adds r0, r1, r5
- ldr r0, [r0]
- str r0, [r2, 0x20]
-_0802A7E2:
- ldr r0, _0802A80C
- ldr r1, [r0]
- ldr r0, [r4]
- adds r0, r3
- ldrb r0, [r0]
- lsls r0, 1
- adds r1, 0x50
- adds r1, r0
- ldrh r0, [r1]
- subs r0, 0x1
- strh r0, [r1]
- movs r0, 0x29
- bl sub_802B2BC
- b _0802A81E
- .align 2, 0
-_0802A800: .4byte gUnknown_203B2C4
-_0802A804: .4byte 0x0000041e
-_0802A808: .4byte 0x0000041c
-_0802A80C: .4byte gUnknown_203B460
-_0802A810:
- movs r0, 0xB
- bl sub_802B2BC
- b _0802A81E
-_0802A818:
- movs r0, 0x1
- bl sub_802B2BC
-_0802A81E:
- add sp, 0x4
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_802A798
-
- thumb_func_start sub_802A828
-sub_802A828:
- push {lr}
- sub sp, 0x4
- mov r0, sp
- bl sub_80144A4
- cmp r0, 0
- bne _0802A848
- movs r0, 0x2A
- bl sub_802B2BC
- movs r0, 0x1
- bl sub_8011C28
- movs r0, 0
- bl PrepareSavePakWrite
-_0802A848:
- add sp, 0x4
- pop {r0}
- bx r0
- thumb_func_end sub_802A828
-
- thumb_func_start sub_802A850
-sub_802A850:
- push {lr}
- sub sp, 0x4
- mov r0, sp
- bl sub_80144A4
- cmp r0, 0
- bne _0802A89A
- bl WriteSavePak
- lsls r0, 24
- cmp r0, 0
- bne _0802A89A
- bl FinishWriteSavePak
- ldr r0, _0802A884
- ldr r0, [r0]
- ldr r1, _0802A888
- adds r0, r1
- ldr r0, [r0]
- cmp r0, 0x3
- blt _0802A89A
- cmp r0, 0x4
- ble _0802A88C
- cmp r0, 0x5
- beq _0802A894
- b _0802A89A
- .align 2, 0
-_0802A884: .4byte gUnknown_203B2C4
-_0802A888: .4byte 0x00000534
-_0802A88C:
- movs r0, 0x1D
- bl sub_802B2BC
- b _0802A89A
-_0802A894:
- movs r0, 0x19
- bl sub_802B2BC
-_0802A89A:
- add sp, 0x4
- pop {r0}
- bx r0
- thumb_func_end sub_802A850
-
- thumb_func_start sub_802A8A0
-sub_802A8A0:
- push {lr}
- sub sp, 0x4
- mov r0, sp
- bl sub_80144A4
- cmp r0, 0
- bne _0802A8B4
- movs r0, 0x13
- bl sub_802B2BC
-_0802A8B4:
- add sp, 0x4
- pop {r0}
- bx r0
- thumb_func_end sub_802A8A0
-
- thumb_func_start sub_802A8BC
-sub_802A8BC:
- push {lr}
- sub sp, 0x4
- mov r0, sp
- bl sub_80144A4
- cmp r0, 0
- bne _0802A90A
- ldr r0, [sp]
- cmp r0, 0
- beq _0802A904
- cmp r0, 0xA
- bne _0802A90A
- ldr r0, _0802A8EC
- ldr r0, [r0]
- ldr r1, _0802A8F0
- adds r0, r1
- ldr r0, [r0]
- cmp r0, 0x3
- blt _0802A90A
- cmp r0, 0x4
- ble _0802A8F4
- cmp r0, 0x5
- beq _0802A8FC
- b _0802A90A
- .align 2, 0
-_0802A8EC: .4byte gUnknown_203B2C4
-_0802A8F0: .4byte 0x00000534
-_0802A8F4:
- movs r0, 0x1D
- bl sub_802B2BC
- b _0802A90A
-_0802A8FC:
- movs r0, 0x19
- bl sub_802B2BC
- b _0802A90A
-_0802A904:
- movs r0, 0x1
- bl sub_802B2BC
-_0802A90A:
- add sp, 0x4
- pop {r0}
- bx r0
- thumb_func_end sub_802A8BC
-
- thumb_func_start sub_802A910
-sub_802A910:
- push {lr}
- sub sp, 0x4
- mov r0, sp
- bl sub_80144A4
- cmp r0, 0
- bne _0802A986
- ldr r0, [sp]
- cmp r0, 0x9
- beq _0802A934
- cmp r0, 0x9
- bgt _0802A92E
- cmp r0, 0
- beq _0802A980
- b _0802A986
-_0802A92E:
- cmp r0, 0xA
- beq _0802A950
- b _0802A986
-_0802A934:
- movs r0, 0
- bl sub_801CF14
- lsls r0, 24
- cmp r0, 0
- beq _0802A948
- movs r0, 0xA
- bl sub_802B2BC
- b _0802A986
-_0802A948:
- movs r0, 0xB
- bl sub_802B2BC
- b _0802A986
-_0802A950:
- ldr r0, _0802A968
- ldr r0, [r0]
- ldr r1, _0802A96C
- adds r0, r1
- ldr r0, [r0]
- cmp r0, 0x3
- blt _0802A986
- cmp r0, 0x4
- ble _0802A970
- cmp r0, 0x5
- beq _0802A978
- b _0802A986
- .align 2, 0
-_0802A968: .4byte gUnknown_203B2C4
-_0802A96C: .4byte 0x00000534
-_0802A970:
- movs r0, 0x1D
- bl sub_802B2BC
- b _0802A986
-_0802A978:
- movs r0, 0x19
- bl sub_802B2BC
- b _0802A986
-_0802A980:
- movs r0, 0x1
- bl sub_802B2BC
-_0802A986:
- add sp, 0x4
- pop {r0}
- bx r0
- thumb_func_end sub_802A910
-
- thumb_func_start sub_802A98C
-sub_802A98C:
- push {lr}
- sub sp, 0x4
- mov r0, sp
- bl sub_80144A4
- cmp r0, 0
- bne _0802A9A0
- movs r0, 0x8
- bl sub_802B2BC
-_0802A9A0:
- add sp, 0x4
- pop {r0}
- bx r0
- thumb_func_end sub_802A98C
-
- thumb_func_start sub_802A9A8
-sub_802A9A8:
- push {lr}
- sub sp, 0x4
- mov r0, sp
- bl sub_80144A4
- cmp r0, 0
- bne _0802A9F6
- ldr r0, [sp]
- cmp r0, 0
- beq _0802A9F0
- cmp r0, 0x7
- bne _0802A9F6
- ldr r0, _0802A9D8
- ldr r0, [r0]
- ldr r1, _0802A9DC
- adds r0, r1
- ldr r0, [r0]
- cmp r0, 0x3
- blt _0802A9F6
- cmp r0, 0x4
- ble _0802A9E0
- cmp r0, 0x5
- beq _0802A9E8
- b _0802A9F6
- .align 2, 0
-_0802A9D8: .4byte gUnknown_203B2C4
-_0802A9DC: .4byte 0x00000534
-_0802A9E0:
- movs r0, 0x1D
- bl sub_802B2BC
- b _0802A9F6
-_0802A9E8:
- movs r0, 0x19
- bl sub_802B2BC
- b _0802A9F6
-_0802A9F0:
- movs r0, 0x1
- bl sub_802B2BC
-_0802A9F6:
- add sp, 0x4
- pop {r0}
- bx r0
- thumb_func_end sub_802A9A8
-
- thumb_func_start sub_802A9FC
-sub_802A9FC:
- push {lr}
- sub sp, 0x4
- mov r0, sp
- bl sub_80144A4
- cmp r0, 0
- bne _0802AA22
- ldr r0, [sp]
- cmp r0, 0
- beq _0802AA1C
- cmp r0, 0x7
- bne _0802AA22
- movs r0, 0x26
- bl sub_802B2BC
- b _0802AA22
-_0802AA1C:
- movs r0, 0x1
- bl sub_802B2BC
-_0802AA22:
- add sp, 0x4
- pop {r0}
- bx r0
- thumb_func_end sub_802A9FC
-
- thumb_func_start sub_802AA28
-sub_802AA28:
- push {lr}
- sub sp, 0x4
- mov r0, sp
- bl sub_80144A4
- cmp r0, 0
- bne _0802AAA6
- ldr r2, [sp]
- cmp r2, 0
- beq _0802AAA0
- cmp r2, 0
- blt _0802AAA6
- cmp r2, 0x5
- bgt _0802AAA6
- cmp r2, 0x3
- blt _0802AAA6
- ldr r0, _0802AA7C
- ldr r0, [r0]
- ldr r3, _0802AA80
- adds r1, r0, r3
- str r2, [r1]
- movs r1, 0xA7
- lsls r1, 3
- adds r0, r1
- ldr r0, [r0]
- cmp r0, 0x1
- bne _0802AA8C
- movs r0, 0x5
- bl sub_80953D4
- lsls r0, 24
- lsrs r0, 24
- bl sub_8095228
- adds r0, 0x22
- ldrb r0, [r0]
- cmp r0, 0
- beq _0802AA84
- movs r0, 0x7
- bl sub_802B2BC
- b _0802AAA6
- .align 2, 0
-_0802AA7C: .4byte gUnknown_203B2C4
-_0802AA80: .4byte 0x00000534
-_0802AA84:
- movs r0, 0x9
- bl sub_802B2BC
- b _0802AAA6
-_0802AA8C:
- cmp r2, 0x5
- bne _0802AA98
- movs r0, 0x26
- bl sub_802B2BC
- b _0802AAA6
-_0802AA98:
- movs r0, 0x1D
- bl sub_802B2BC
- b _0802AAA6
-_0802AAA0:
- movs r0, 0x1
- bl sub_802B2BC
-_0802AAA6:
- add sp, 0x4
- pop {r0}
- bx r0
- thumb_func_end sub_802AA28
-
- thumb_func_start sub_802AAAC
-sub_802AAAC:
- push {lr}
- sub sp, 0x4
- mov r0, sp
- bl sub_80144A4
- cmp r0, 0
- bne _0802AAC0
- movs r0, 0x1
- bl sub_802B2BC
-_0802AAC0:
- add sp, 0x4
- pop {r0}
- bx r0
- thumb_func_end sub_802AAAC
-
- thumb_func_start sub_802AAC8
-sub_802AAC8:
- push {lr}
- sub sp, 0x4
- mov r0, sp
- bl sub_80144A4
- cmp r0, 0
- bne _0802AADC
- movs r0, 0x3
- bl sub_802B2BC
-_0802AADC:
- add sp, 0x4
- pop {r0}
- bx r0
- thumb_func_end sub_802AAC8
-
- thumb_func_start sub_802AAE4
-sub_802AAE4:
- push {lr}
- sub sp, 0x4
- mov r0, sp
- bl sub_80144A4
- cmp r0, 0
- bne _0802AB5A
- ldr r2, [sp]
- cmp r2, 0x1
- beq _0802AB08
- cmp r2, 0x1
- bgt _0802AB02
- cmp r2, 0
- beq _0802AB54
- b _0802AB5A
-_0802AB02:
- cmp r2, 0x2
- beq _0802AB38
- b _0802AB5A
-_0802AB08:
- ldr r0, _0802AB2C
- ldr r0, [r0]
- movs r1, 0x6
- str r1, [r0, 0x40]
- movs r1, 0xA7
- lsls r1, 3
- adds r0, r1
- str r2, [r0]
- movs r0, 0x5
- bl sub_8095324
- cmp r0, 0
- bne _0802AB30
- movs r0, 0x4
- bl sub_802B2BC
- b _0802AB5A
- .align 2, 0
-_0802AB2C: .4byte gUnknown_203B2C4
-_0802AB30:
- movs r0, 0xF
- bl sub_802B2BC
- b _0802AB5A
-_0802AB38:
- ldr r0, _0802AB50
- ldr r0, [r0]
- movs r1, 0x7
- str r1, [r0, 0x40]
- movs r1, 0xA7
- lsls r1, 3
- adds r0, r1
- str r2, [r0]
- movs r0, 0x6
- bl sub_802B2BC
- b _0802AB5A
- .align 2, 0
-_0802AB50: .4byte gUnknown_203B2C4
-_0802AB54:
- movs r0, 0x2
- bl sub_802B2BC
-_0802AB5A:
- add sp, 0x4
- pop {r0}
- bx r0
- thumb_func_end sub_802AAE4
-
- thumb_func_start sub_802AB60
-sub_802AB60:
- push {lr}
- sub sp, 0x4
- mov r0, sp
- bl sub_80144A4
- cmp r0, 0
- bne _0802AB74
- movs r0, 0x22
- bl sub_802B2BC
-_0802AB74:
- add sp, 0x4
- pop {r0}
- bx r0
- thumb_func_end sub_802AB60
-
- thumb_func_start sub_802AB7C
-sub_802AB7C:
- push {lr}
- sub sp, 0x4
- mov r0, sp
- bl sub_80144A4
- cmp r0, 0
- bne _0802AB90
- movs r0, 0x22
- bl sub_802B2BC
-_0802AB90:
- add sp, 0x4
- pop {r0}
- bx r0
- thumb_func_end sub_802AB7C
-
- thumb_func_start sub_802AB98
-sub_802AB98:
- push {r4,lr}
- bl sub_802F298
- cmp r0, 0x3
- bne _0802ABE0
- bl sub_802F2C0
- ldr r0, _0802ABE8
- movs r4, 0x98
- lsls r4, 1
- adds r1, r4, 0
- bl CopyYellowSpeciesNametoBuffer
- adds r0, r4, 0
- bl GetMonSpecies
- adds r1, r0, 0
- ldr r0, _0802ABEC
- bl strcpy
- ldr r0, _0802ABF0
- ldr r0, [r0]
- movs r1, 0x86
- lsls r1, 3
- adds r0, r1
- ldr r1, [r0]
- movs r0, 0x6
- bl sub_809539C
- lsls r0, 24
- lsrs r0, 24
- bl sub_8095240
- movs r0, 0x24
- bl sub_802B2BC
-_0802ABE0:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0802ABE8: .4byte gUnknown_202E5D8
-_0802ABEC: .4byte gAvailablePokemonNames
-_0802ABF0: .4byte gUnknown_203B2C4
- thumb_func_end sub_802AB98
-
- thumb_func_start nullsub_131
-nullsub_131:
- bx lr
- thumb_func_end nullsub_131
-
thumb_func_start sub_802ABF8
sub_802ABF8:
push {r4-r6,lr}
@@ -1423,18 +803,4 @@ _0802B2B4: .4byte gUnknown_80DF9A4
_0802B2B8: .4byte gUnknown_80DEE08
thumb_func_end sub_802ABF8
- thumb_func_start sub_802B2BC
-sub_802B2BC:
- push {lr}
- ldr r1, _0802B2D0
- ldr r1, [r1]
- strb r0, [r1]
- bl nullsub_131
- bl sub_802ABF8
- pop {r0}
- bx r0
- .align 2, 0
-_0802B2D0: .4byte gUnknown_203B2C4
- thumb_func_end sub_802B2BC
-
.align 2,0
diff --git a/asm/wonder_mail_3.s b/asm/wonder_mail_3.s
index 718d084..df1ab03 100644
--- a/asm/wonder_mail_3.s
+++ b/asm/wonder_mail_3.s
@@ -5,125 +5,6 @@
.text
- thumb_func_start sub_802D1B8
-sub_802D1B8:
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- ldr r4, _0802D1E0
- ldr r0, [r4]
- movs r1, 0xD4
- lsls r1, 1
- adds r0, r1
- bl sub_8006518
- ldr r0, [r4]
- ldr r0, [r0]
- cmp r0, 0xD
- beq _0802D1EA
- cmp r0, 0xD
- bgt _0802D1E4
- cmp r0, 0x2
- beq _0802D27E
- b _0802D254
- .align 2, 0
-_0802D1E0: .4byte gUnknown_203B2F8
-_0802D1E4:
- cmp r0, 0xE
- beq _0802D21C
- b _0802D254
-_0802D1EA:
- bl sub_802D5A4
- ldr r2, [r4]
- movs r0, 0xEC
- lsls r0, 1
- adds r2, r0
- ldr r1, _0802D218
- 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
- movs r6, 0x8C
- lsls r6, 1
- adds r1, r6
- bl sub_8012CAC
- ldr r0, [r4]
- movs r7, 0xF2
- lsls r7, 1
- b _0802D246
- .align 2, 0
-_0802D218: .4byte gUnknown_80DFE04
-_0802D21C:
- bl sub_802D63C
- ldr r2, [r4]
- movs r0, 0xF8
- lsls r0, 1
- adds r2, r0
- ldr r1, _0802D250
- 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
- movs r6, 0xAC
- lsls r6, 1
- adds r1, r6
- bl sub_8012CAC
- ldr r0, [r4]
- movs r7, 0xFE
- lsls r7, 1
-_0802D246:
- adds r0, r7
- movs r1, 0x6
- strh r1, [r0]
- b _0802D27E
- .align 2, 0
-_0802D250: .4byte gUnknown_80DFE1C
-_0802D254:
- ldr r0, _0802D2A0
- mov r12, r0
- movs r1, 0xD4
- lsls r1, 1
- mov r8, r1
- ldr r4, _0802D2A4
- movs r3, 0
- movs r2, 0x3
-_0802D264:
- 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 _0802D264
-_0802D27E:
- bl ResetUnusedInputStruct
- ldr r0, _0802D2A0
- ldr r0, [r0]
- movs r6, 0xD4
- lsls r6, 1
- adds r0, r6
- movs r1, 0x1
- movs r2, 0x1
- bl sub_800641C
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0802D2A0: .4byte gUnknown_203B2F8
-_0802D2A4: .4byte gUnknown_80DFDD4
- thumb_func_end sub_802D1B8
-
thumb_func_start sub_802D2A8
sub_802D2A8:
push {r4,lr}
diff --git a/data/data_80E2068.s b/data/data_80E2068.s
index be653e5..094f272 100644
--- a/data/data_80E2068.s
+++ b/data/data_80E2068.s
@@ -1412,7 +1412,19 @@ gUnknown_80E6DDC: @ 80E6DDC
gUnknown_80E6DF4: @ 80E6DF4
.incbin "baserom.gba", 0xE6DF4, 0x5C
- .include "data/text/chunsoft.inc"
+ .global gUnknown_80E6E50
+gUnknown_80E6E50:: @ 80E6E50
+ .string "CHUNSOFT\0"
+ .align 2,0
+
+ .string "pksdir0\0"
+
+ .string "pksdir0\0"
+
+ .string "pksdir0\0"
+
+ .string "pksdir0\0"
+
.global gUnknown_80E6E7C
gUnknown_80E6E7C: @ 80E6E7C
diff --git a/data/data_80F4278.s b/data/data_80F4278.s
index f1d78e9..9203841 100644
--- a/data/data_80F4278.s
+++ b/data/data_80F4278.s
@@ -8224,7 +8224,7 @@ gUnknown_810A350: @ 810A350
.byte 0x18, 0x19, 0x1e, 0x27, 0x31, 0x32, 0x33, 0x36, 0x37, 0x3d, 0x3f
.global gUnknown_810A35B
-gUnknown_810A35B: @ 810A35B
+gUnknown_810A35B: @ 810A35B (item related)
@ replacing .incbin "baserom.gba", 0x0010a35b, 0x10
.byte 0xed, 0xee, 0xef, 0xb1, 0xe9, 0x24, 0xd8, 0xd2, 0xb0, 0xdc, 0x32, 0x33, 0x34, 0xc2, 0xec, 0xf0
@@ -8248,18 +8248,18 @@ gUnknown_810A36B: @ 810A36B
.global gUnknown_810A378
gUnknown_810A378: @ 810A378
@ replacing .incbin "baserom.gba", 0x0010a378, 0x18
- .byte 0x01, 0x00
- .byte 0x19, 0x00
- .byte 0x01, 0x00
- .byte 0x01, 0x00
- .byte 0xe7, 0x03
- .byte 0xe7, 0x03
- .byte 0x23, 0x00
- .byte 0x28, 0x00
- .byte 0x14, 0x00
- .byte 0x0f, 0x00
- .byte 0x0a, 0x00
- .byte 0xe7, 0x03
+ .2byte 0x01
+ .2byte 0x19
+ .2byte 0x01
+ .2byte 0x01
+ .2byte 0x3e7
+ .2byte 0x3e7
+ .2byte 0x23
+ .2byte 0x28
+ .2byte 0x14
+ .2byte 0x0f
+ .2byte 0x0a
+ .2byte 0x3e7
.global gUnknown_810A390
gUnknown_810A390: @ 810A390
diff --git a/data/data_810AE24.s b/data/data_810AE24.s
index a699873..5e8528f 100644
--- a/data/data_810AE24.s
+++ b/data/data_810AE24.s
@@ -888,7 +888,7 @@ gUnknown_8116258: @ 8116258
.byte 0x01, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00
.4byte CleanHelperPelipper
- .4byte sub_8031540
+ .4byte HelperPelliperCallback
.global gUnknown_8116268
gUnknown_8116268: @ 8116268
diff --git a/data/text/chunsoft.inc b/data/text/chunsoft.inc
deleted file mode 100644
index 19c7513..0000000
--- a/data/text/chunsoft.inc
+++ /dev/null
@@ -1,11 +0,0 @@
-gUnknown_80E6E50:: @ 80E6E50
- .string "CHUNSOFT\0"
- .align 2,0
-
- .string "pksdir0\0"
-
- .string "pksdir0\0"
-
- .string "pksdir0\0"
-
- .string "pksdir0\0"
diff --git a/include/constants/wonder_mail.h b/include/constants/wonder_mail.h
new file mode 100644
index 0000000..ab5a9ee
--- /dev/null
+++ b/include/constants/wonder_mail.h
@@ -0,0 +1,28 @@
+#ifndef GUARD_CONSTANTS_WONDER_MAIL_H
+#define GUARD_CONSTANTS_WONDER_MAIL_H
+
+enum MissionType
+{
+ HELP_POKE,
+ FIND_POKE,
+ ESCORT,
+ FIND_ITEM,
+ DELIVER_ITEM
+};
+
+enum RewardType
+{
+ MONEY,
+ MONEY_EXTRA,
+ ITEM,
+ ITEM_EXTRA,
+ BLANK_4,
+ MONEY1,
+ MONEY1_EXTRA,
+ ITEM1,
+ ITEM1_EXTRA,
+ FRIEND_AREA,
+ END_REWARDS
+};
+
+#endif //GUARD_CONSTANTS_WONDER_MAIL_H
diff --git a/include/felicity_bank.h b/include/felicity_bank.h
index d09843b..5b68d65 100644
--- a/include/felicity_bank.h
+++ b/include/felicity_bank.h
@@ -3,6 +3,7 @@
#include "file_system.h"
#include "text.h"
+#include "menu.h"
struct unkStruct_203B204
{
@@ -12,7 +13,9 @@ struct unkStruct_203B204
u32 unk8;
u32 chosenAmount;
u32 unk10;
- u8 fill14[0x64 - 0x14];
+ struct MenuItem unk14[5];
+ u8 fill3C[0x54 - 0x3C];
+ u16 unk54[8];
u32 unk64;
u8 fill68[0x78 - 0x68];
u32 unk78;
diff --git a/include/gUnknown_203B460.h b/include/gUnknown_203B460.h
index bab85d8..7418bc1 100644
--- a/include/gUnknown_203B460.h
+++ b/include/gUnknown_203B460.h
@@ -17,8 +17,7 @@ struct subStruct_203B460
struct unkStruct_203B460
{
struct ItemStruct_203B460 fill0[20];
- u16 unk50[0x10];
- u8 fill70[0x230 - 0x70];
+ u16 unk50[0xF0];
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;
diff --git a/include/global.h b/include/global.h
index b991d34..cc56a5e 100644
--- a/include/global.h
+++ b/include/global.h
@@ -5,6 +5,8 @@
#include "config.h" // We need to define config before gba headers as print stuff needs the functions nulled before defines.
#include "gba/gba.h"
+#include "constants/species.h"
+
// IDE support
#if defined(__APPLE__) || defined(__CYGWIN__)
#define _(x) x
diff --git a/include/kangaskhan_storage.h b/include/kangaskhan_storage.h
index 93f319c..3f1292a 100644
--- a/include/kangaskhan_storage.h
+++ b/include/kangaskhan_storage.h
@@ -2,6 +2,7 @@
#define KANGASKHAN_STORAGE_H
#include "text.h"
+#include "menu.h"
struct unkStruct_203B208
{
@@ -17,7 +18,7 @@ struct unkStruct_203B208
u32 unk18;
u32 unk1C;
u32 unk20;
- u8 fill24[0x4C - 0x24];
+ struct MenuItem unk24[5];
u16 unk4C[5];
u32 unk58;
u8 unk5C[0xA8 - 0x5C];
diff --git a/include/kecleon_items.h b/include/kecleon_items.h
index 321fcc3..5716ea3 100644
--- a/include/kecleon_items.h
+++ b/include/kecleon_items.h
@@ -3,25 +3,31 @@
#include "gUnknown_203B460.h"
#include "text.h"
+#include "menu.h"
struct unkStruct_203B210
{
// size: 0x148
u32 unk0;
- u8 unk4;
+ bool8 unk4;
u8 fill5[3];
u32 currState;
u32 unkC;
- s32 unk10;
+ s32 itemSellPrice;
u32 unk14;
u32 unk18;
struct ItemStruct_203B460 unk1C;
- u32 unk20;
+ u8 unk20;
+ u8 unk21;
+ u8 unk22;
+ u8 unk23;
u32 unk24;
u32 unk28;
u32 unk2C;
u32 unk30;
- u8 fill34[0x84 - 0x34];
+ struct MenuItem unk34[3];
+ u8 fill4C[0x74 - 0x4C];
+ u16 unk74[8];
u32 unk84;
u8 fill88[0xD4 - 0x88];
struct OpenedFile *faceFile;
diff --git a/include/wonder_mail.h b/include/wonder_mail.h
index 0d58a20..1f9af3e 100644
--- a/include/wonder_mail.h
+++ b/include/wonder_mail.h
@@ -4,7 +4,24 @@
#include "file_system.h"
#include "text.h"
-#define PASSWORD_BUFFER_SIZE 0x36
+#define PASSWORD_BUFFER_SIZE 54
+
+struct WonderMail
+{
+ /* 0x0 */ u8 mailType; // mail type
+ /* 0x1 */ u8 missionType; // mission type
+ /* 0x2 */ u8 unk2;
+ /* 0x3 */ u8 unk3;
+ /* 0x4 */ u8 dungeon; // dungeon
+ /* 0x5 */ u8 floor; // floor
+ /* 0x8 */ u32 unk8;
+ /* 0xC */ s16 clientPoke; // client pokemon
+ /* 0xE */ s16 targetPoke; // target
+ /* 0x10 */ u8 targetItem; // item to find/deliver
+ /* 0x11 */ u8 rewardType; // reward type
+ /* 0x12 */ u8 itemReward; // item reward
+ /* 0x13 */ u8 friendAreaReward; // friend area
+};
struct WonderMailStruct_203B2C0
diff --git a/ld_script.txt b/ld_script.txt
index 53a20ae..e920b4a 100755
--- a/ld_script.txt
+++ b/ld_script.txt
@@ -104,6 +104,8 @@ SECTIONS {
asm/pokemon_square.o(.text);
src/code_801AFA4.o(.text);
asm/code_801AFA4.o(.text);
+ src/code_801B3C0.o(.text);
+ asm/code_801B3C0.o(.text);
src/code_801C620.o(.text);
asm/code_801C620.o(.text);
src/code_801D760.o(.text);
@@ -188,8 +190,8 @@ SECTIONS {
asm/pokemon_1.o(.text);
src/pokemon_1.o(.text);
asm/pokemon_2.o(.text);
- src/code_808EAB0.o(.text);
- asm/code_808EAB0.o(.text);
+ src/pokemon_3.o(.text);
+ asm/pokemon_3.o(.text);
src/dungeon.o(.text);
asm/code_809017C.o(.text);
src/items.o(.text);
@@ -205,6 +207,8 @@ SECTIONS {
src/play_time.o(.text);
src/code_8094F88.o(.text);
asm/code_8095014.o(.text);
+ src/code_80958E8.o(.text);
+ asm/code_80958E8.o(.text);
src/code_809747C.o(.text);
asm/code_809747C.o(.text);
src/code_809747C_1.o(.text);
diff --git a/src/code_801AFA4.c b/src/code_801AFA4.c
index 78c1764..47db0a0 100644
--- a/src/code_801AFA4.c
+++ b/src/code_801AFA4.c
@@ -5,7 +5,7 @@
extern struct unkStruct_203B460 *gUnknown_203B460;
-extern u16 sub_80913CC(u8);
+extern u16 GetItemMove(u8);
extern void sub_8092C84(u8 *, u16);
extern void sub_8099690(u32);
extern u32 sub_801B2F4(void);
@@ -60,7 +60,7 @@ u32 sub_801AFA4(u32 r0)
gUnknown_203B22C = MemoryAlloc(0xA4, 8);
gUnknown_203B22C->unk4 = r0;
gUnknown_203B22C->unk8 = gUnknown_203B460->fill0[r0].itemIndex;
- gUnknown_203B22C->unkA = sub_80913CC(gUnknown_203B22C->unk8);
+ gUnknown_203B22C->unkA = GetItemMove(gUnknown_203B22C->unk8);
sub_8092C84(gUnknown_202E1C8, gUnknown_203B22C->unkA);
sub_8099690(0);
if(sub_801B2F4() == 0)
diff --git a/src/code_801B3C0.c b/src/code_801B3C0.c
new file mode 100644
index 0000000..3d24376
--- /dev/null
+++ b/src/code_801B3C0.c
@@ -0,0 +1,189 @@
+#include "global.h"
+#include "text.h"
+#include "input.h"
+#include "memory.h"
+
+struct subStruct_203B240
+{
+ char * unk0;
+ char * unk4;
+};
+
+struct unkStruct_41C
+{
+ u8 unk41C;
+ u8 unk41D;
+ u8 unk41E;
+ u8 unk41F;
+};
+
+// based off of 203B240..
+struct unkStruct_203B230
+{
+ // size: 0x94
+ s32 state;
+ struct unkStruct_41C unk4;
+ s32 unk8;
+ s32 unkC;
+ struct subStruct_203B240 *unk10[2];
+ u8 fill14[0x20 - 0x18];
+ u32 unk20;
+ u32 unk24;
+ struct UnkTextStruct2 unk28[4];
+ u32 unk88;
+ u32 unk8C;
+ u32 unk90;
+};
+extern struct unkStruct_203B230 *gUnknown_203B230;
+
+extern u8 gAvailablePokemonNames[0x58];
+extern u8 gUnknown_80DBA4C[];
+
+extern void sub_8008C54(u32);
+extern void sub_80073E0(u32);
+extern void sub_80073B8(u32);
+extern void sub_8014FF0(u32, u32, u8 *, u32, u32);
+extern void PlayMenuSoundEffect(u32);
+extern void sub_8013F84(void);
+extern u32 sub_8012A64(u32 *, u32);
+extern s32 sub_80913E0(struct unkStruct_41C *, u32, struct subStruct_203B240 **);
+
+extern void sub_801317C(u32 *);
+extern void sub_80140B4(struct UnkTextStruct2 *);
+extern void sub_801B46C(u32);
+extern void ResetSprites(u32);
+
+void sub_801B51C();
+void sub_801B590();
+void sub_801B480();
+
+
+u32 sub_801B3C0(struct unkStruct_41C *param_1)
+{
+ ResetSprites(1);
+ gUnknown_203B230 = MemoryAlloc(sizeof(struct unkStruct_203B230),8);
+ gUnknown_203B230->unk4 = *param_1;
+ sub_801317C(&gUnknown_203B230->unk88);
+ gUnknown_203B230->unk24 = 0;
+ sub_80140B4(gUnknown_203B230->unk28);
+ ResetUnusedInputStruct();
+ sub_800641C(gUnknown_203B230->unk28,1,1);
+ sub_801B46C(0);
+ return 1;
+}
+
+u32 sub_801B410(void)
+{
+ switch(gUnknown_203B230->state)
+ {
+ case 0:
+ sub_801B51C();
+ break;
+ case 1:
+ sub_801B590();
+ break;
+ case 3:
+ return 3;
+ case 2:
+ default:
+ return 2;
+ }
+ return 0;
+}
+
+void sub_801B450(void)
+{
+ if(gUnknown_203B230 != NULL)
+ {
+ MemoryFree(gUnknown_203B230);
+ gUnknown_203B230 = NULL;
+ }
+}
+
+void sub_801B46C(u32 newState)
+{
+ gUnknown_203B230->state = newState;
+ sub_801B480();
+}
+
+void sub_801B480(void)
+{
+ struct subStruct_203B240 *preload;
+ switch(gUnknown_203B230->state)
+ {
+ case 0:
+ sub_8008C54(gUnknown_203B230->unk24);
+ gUnknown_203B230->unkC = sub_80913E0(&gUnknown_203B230->unk4, gUnknown_203B230->unk24, gUnknown_203B230->unk10);
+ gUnknown_203B230->unk20 = 0;
+ break;
+ case 1:
+ sub_8008C54(gUnknown_203B230->unk24);
+ sub_80073B8(gUnknown_203B230->unk24);
+ preload = gUnknown_203B230->unk10[gUnknown_203B230->unk8];
+ strcpy(gAvailablePokemonNames, preload->unk0);
+ sub_8014FF0(16, 0, gUnknown_80DBA4C, gUnknown_203B230->unk24, 0); // $m0
+ sub_8014FF0(4, 16, gUnknown_203B230->unk10[gUnknown_203B230->unk8]->unk4, gUnknown_203B230->unk24, 0);
+ sub_80073E0(gUnknown_203B230->unk24);
+ break;
+ case 2:
+ default:
+ break;
+ }
+}
+
+void sub_801B51C(void)
+{
+ if(gUnknown_203B230->unkC != 0)
+ {
+ if(gUnknown_203B230->unk20 & 8)
+ sub_8013F84();
+ gUnknown_203B230->unk20++;
+ }
+ switch(sub_8012A64(&gUnknown_203B230->unk88, gUnknown_203B230->unk24))
+ {
+ case 1:
+ PlayMenuSoundEffect(0);
+ if(gUnknown_203B230->unkC != 0)
+ {
+ gUnknown_203B230->unk8 = 0;
+ sub_801B46C(1);
+ }
+ else
+ sub_801B46C(3);
+ break;
+ case 2:
+ PlayMenuSoundEffect(1);
+ sub_801B46C(2);
+ break;
+ default:
+ break;
+ }
+}
+
+void sub_801B590(void)
+{
+
+ if (gUnknown_203B230->unk8 < (gUnknown_203B230->unkC - 1)) {
+ if ((gUnknown_203B230->unk20 & 8)) {
+ sub_8013F84();
+ }
+ gUnknown_203B230->unk20++;
+ }
+ switch(sub_8012A64(&gUnknown_203B230->unk88,gUnknown_203B230->unk24))
+ {
+ case 1:
+ PlayMenuSoundEffect(0);
+ gUnknown_203B230->unk8++;
+ if (gUnknown_203B230->unk8 < gUnknown_203B230->unkC) {
+ sub_801B46C(1);
+ }
+ else {
+ sub_801B46C(0);
+ }
+ break;
+ case 2:
+ PlayMenuSoundEffect(1);
+ sub_801B46C(2);
+ break;
+ }
+}
diff --git a/src/code_801C620.c b/src/code_801C620.c
index c2c2c44..8272340 100644
--- a/src/code_801C620.c
+++ b/src/code_801C620.c
@@ -12,7 +12,7 @@ struct subStruct_203B240
struct unkStruct_203B240
{
// size: 0x94
- s32 unk0;
+ s32 state;
u8 unk4;
u8 fill5[3];
s32 unk8;
@@ -72,7 +72,7 @@ u32 sub_801C620(u8 param_1)
u32 sub_801C674(void)
{
- switch(gUnknown_203B240->unk0)
+ switch(gUnknown_203B240->state)
{
case 0:
sub_801C7D4();
@@ -98,9 +98,9 @@ void sub_801C6B4(void)
}
}
-void sub_801C6D0(s32 unk0)
+void sub_801C6D0(s32 newState)
{
- gUnknown_203B240->unk0 = unk0;
+ gUnknown_203B240->state = newState;
sub_801C6E4();
}
@@ -109,7 +109,7 @@ void sub_801C6E4(void)
char *skillName;
struct subStruct_203B240 *preload;
- switch(gUnknown_203B240->unk0)
+ switch(gUnknown_203B240->state)
{
case 0:
sub_8008C54(gUnknown_203B240->unk24);
@@ -139,9 +139,8 @@ void sub_801C6E4(void)
void sub_801C7D4(void)
{
-
if (gUnknown_203B240->unkC != 0) {
- if ((gUnknown_203B240->unk20 & 8) != 0) {
+ if ((gUnknown_203B240->unk20 & 8)) {
sub_8013F84();
}
gUnknown_203B240->unk20++;
@@ -169,7 +168,7 @@ void sub_801C848(void)
{
if (gUnknown_203B240->unk8 < (gUnknown_203B240->unkC - 1)) {
- if ((gUnknown_203B240->unk20 & 8) != 0) {
+ if ((gUnknown_203B240->unk20 & 8)) {
sub_8013F84();
}
gUnknown_203B240->unk20++;
diff --git a/src/code_801D760.c b/src/code_801D760.c
index 3b07d05..db034a7 100644
--- a/src/code_801D760.c
+++ b/src/code_801D760.c
@@ -1,10 +1,12 @@
#include "global.h"
+#include "friend_area.h"
#include "constants/friend_area.h"
#include "file_system.h"
#include "gUnknown_203B460.h"
#include "memory.h"
#include "input.h"
#include "text.h"
+#include "rescue_team_info.h"
struct unkStruct_203B258
{
@@ -57,10 +59,6 @@ extern const char *sub_8098FB4();
extern void xxx_format_string(const char *, u8 *, u32 **, u32);
extern s32 sub_8008ED0(u8 *);
extern void xxx_call_draw_string(s32 size, u32, u8 *, u32, u32);
-extern const char *GetFriendAreaName(u8);
-extern u8 GetRescueTeamRank();
-extern const char *GetTeamRankString(u8);
-extern s32 GetTeamRankPts();
extern void sub_8008C54(u32);
extern void sub_80073B8(u32);
extern void sub_80073E0(u32);
diff --git a/src/code_80521D0_1.c b/src/code_80521D0_1.c
index 2abbf88..bb0d928 100644
--- a/src/code_80521D0_1.c
+++ b/src/code_80521D0_1.c
@@ -1,5 +1,4 @@
#include "global.h"
-#include "constants/species.h"
#include "gUnknown_203B418.h"
#include "code_8041D5C.h"
#include "friend_area.h"
diff --git a/src/code_8057824_1.c b/src/code_8057824_1.c
index 4138da4..0337dce 100644
--- a/src/code_8057824_1.c
+++ b/src/code_8057824_1.c
@@ -1,7 +1,6 @@
#include "global.h"
#include "gUnknown_203B418.h"
#include "code_8041D5C.h"
-#include "constants/species.h"
#include "pokemon.h"
extern struct unkStruct_203B418 *gUnknown_203B418;
diff --git a/src/code_80958E8.c b/src/code_80958E8.c
new file mode 100644
index 0000000..462b408
--- /dev/null
+++ b/src/code_80958E8.c
@@ -0,0 +1,178 @@
+#include "global.h"
+#include "memory.h"
+#include "friend_area.h"
+#include "constants/friend_area.h"
+#include "wonder_mail.h"
+#include "constants/wonder_mail.h"
+
+struct subStruct_203B490
+{
+ // size: 0xC
+ u8 unk0;
+ u8 unk1;
+ u8 fill2[2];
+ u32 unk4;
+ u32 unk8;
+};
+
+
+struct unkStruct_203B490
+{
+ // size: 0x330?
+
+ u8 fill0[0x190];
+ u8 unk190[0x28];
+ u8 unk1B8[0x78];
+ struct subStruct_203B490 unk230[16];
+ u8 unk2F0[0x38];
+ u8 unk328;
+};
+
+
+extern u8 sub_809095C(u8);
+extern s32 sub_8090298(u8);
+extern u8 sub_809017C(u8 *);
+extern s16 sub_808E770(s16);
+extern u8 sub_8092040(u8);
+extern u8 sub_803C1D0(u8 *, u8);
+extern u8 sub_8090A60(u8);
+extern u8 sub_8091524(u8);
+extern u8 sub_8091E60(u8 ,u8 );
+extern u32 GetMaxItemCount(u8);
+extern u8 sub_803C0DC(s16);
+extern void sub_8096040(u8);
+extern void sub_80965B8(u8);
+extern void sub_8096C3C(u8);
+extern bool8 ValidateWonderMail(struct WonderMail *);
+
+extern struct unkStruct_203B490 *gUnknown_203B490;
+extern struct unkStruct_203B490 gUnknown_2039448;
+
+void sub_80958E8()
+{
+ gUnknown_203B490 = &gUnknown_2039448;
+}
+
+struct unkStruct_203B490 *sub_80958F8(void)
+{
+ return &gUnknown_2039448;
+}
+
+void sub_8095900(void)
+{
+ s32 iVar2;
+ for(iVar2 = 0; iVar2 < 4; iVar2++)
+ {
+ sub_8096040(iVar2);
+ }
+ for(iVar2 = 0; iVar2 < 8; iVar2++)
+ {
+ sub_80965B8(iVar2);
+ }
+ for(iVar2 = 0; iVar2 < 8; iVar2++)
+ {
+ sub_8096C3C(iVar2);
+ }
+ for(iVar2 = 0; iVar2 < 0x38; iVar2++)
+ {
+ gUnknown_203B490->unk2F0[iVar2] = 0;
+ }
+ gUnknown_203B490->unk328 = 0;
+ MemoryClear8(gUnknown_203B490->unk190, sizeof(gUnknown_203B490->unk190));
+ MemoryClear8(gUnknown_203B490->unk1B8, sizeof(gUnknown_203B490->unk1B8));
+ for(iVar2 = 0; iVar2 < 16; iVar2++)
+ {
+ gUnknown_203B490->unk230[iVar2].unk0 = 0x63;
+ gUnknown_203B490->unk230[iVar2].unk1 = 1;
+ gUnknown_203B490->unk230[iVar2].unk4 = 0;
+ gUnknown_203B490->unk230[iVar2].unk8 = 0;
+ }
+}
+
+bool8 IsValidWonderMail(struct WonderMail *WonderMailData)
+{
+ // Has to equal 5 for Wonder Mail
+ // https://web.archive.org/web/20080913124416/http://www.upokecenter.com/games/dungeon/guides/passwords.html
+ //
+ if(WonderMailData->mailType != 5)
+ {
+ return FALSE;
+ }
+ else
+ {
+ return ValidateWonderMail(WonderMailData);
+ }
+}
+
+bool8 ValidateWonderMail(struct WonderMail *data)
+{
+
+ if(data->missionType > DELIVER_ITEM)
+ return FALSE;
+ else
+ {
+ if(data->missionType == DELIVER_ITEM && GetMaxItemCount(data->dungeon) == 0)
+ return FALSE;
+
+ if(data->unk2 > 9)
+ return FALSE;
+
+ if(sub_809095C(data->dungeon) != 0)
+ return FALSE;
+ if(data->floor >= sub_8090298(data->dungeon))
+ return FALSE;
+ if(sub_809017C(&(data->dungeon)) != 0)
+ return FALSE;
+
+ if(data->clientPoke == SPECIES_NONE)
+ return FALSE;
+ if(data->clientPoke > SPECIES_RAYQUAZA_CUTSCENE)
+ return FALSE;
+ if(data->clientPoke != sub_808E770(data->clientPoke))
+ return FALSE;
+ if(sub_803C0DC(data->clientPoke) == 0)
+ return FALSE;
+
+ if(data->targetPoke > SPECIES_RAYQUAZA_CUTSCENE)
+ return FALSE;
+ if(data->targetPoke != sub_808E770(data->targetPoke))
+ return FALSE;
+ if(sub_803C0DC(data->targetPoke) == 0)
+ return FALSE;
+
+ // Item Delivery/Finding
+ if((u8)(data->missionType - 1) > FIND_POKE)
+ if(data->targetPoke != data->clientPoke)
+ return FALSE;
+
+ if(sub_8092040(data->targetItem) != 0)
+ return FALSE;
+ if(sub_8090A60(data->targetItem) != 0)
+ return FALSE;
+ if(sub_8091524(data->targetItem) == 0)
+ return FALSE;
+
+ // Item finding
+ if(data->missionType == FIND_ITEM && sub_8091E60(data->dungeon, data->targetItem) == 0)
+ return FALSE;
+
+ if(data->rewardType == BLANK_4 || data->rewardType == END_REWARDS || data->rewardType > END_REWARDS)
+ return FALSE;
+
+ if(sub_8092040(data->itemReward) != 0)
+ return FALSE;
+
+ // Friend Area Reward
+ if(data->friendAreaReward > FINAL_ISLAND)
+ return FALSE;
+
+ if(data->rewardType == FRIEND_AREA)
+ {
+ if(GetFriendAreaUnlockCondition(data->friendAreaReward) != UNLOCK_WONDER_MAIL)
+ return FALSE;
+ if(sub_803C1D0(&(data->dungeon), data->missionType) == 0)
+ return FALSE;
+ }
+ return TRUE;
+ }
+}
diff --git a/src/ds_menus.c b/src/ds_menus.c
index 29100b6..7d7bc27 100644
--- a/src/ds_menus.c
+++ b/src/ds_menus.c
@@ -6,7 +6,7 @@ extern u8 *gUnknown_203B3E8;
extern void nullsub_54();
extern void sub_8039E18();
-void sub_803A1C0(u8 r0)
+void SetWonderMailMainMenuState(u8 r0)
{
*gUnknown_203B3E8 = r0;
nullsub_54();
diff --git a/src/event_flag.c b/src/event_flag.c
index 97a01d0..41552b3 100644
--- a/src/event_flag.c
+++ b/src/event_flag.c
@@ -9,6 +9,7 @@ extern u8 sub_8002658(s16);
struct unkEventStruct
{
+ // size: 0x4
s16 unk0;
u8 unk2; // Seems like friend area number
};
diff --git a/src/exclusive_pokemon.c b/src/exclusive_pokemon.c
index 903b189..1e1effc 100644
--- a/src/exclusive_pokemon.c
+++ b/src/exclusive_pokemon.c
@@ -1,5 +1,4 @@
#include "global.h"
-#include "constants/species.h"
#include "exclusive_pokemon.h"
const struct ExclusivePokemon gExclusivePokemon[NUM_EXCLUSIVE_POKEMON] = {
diff --git a/src/felicity_bank.c b/src/felicity_bank.c
index 28550dd..727c957 100644
--- a/src/felicity_bank.c
+++ b/src/felicity_bank.c
@@ -2,7 +2,6 @@
#include "pokemon.h"
#include "file_system.h"
#include "input.h"
-#include "constants/species.h"
#include "felicity_bank.h"
#include "memory.h"
diff --git a/src/friend_rescue.c b/src/friend_rescue.c
index ef1d729..73e937e 100644
--- a/src/friend_rescue.c
+++ b/src/friend_rescue.c
@@ -1,7 +1,6 @@
#include "global.h"
#include "friend_rescue.h"
#include "pokemon.h"
-#include "constants/species.h"
#include "memory.h"
#include "text.h"
diff --git a/src/friend_rescue_1.c b/src/friend_rescue_1.c
index 94baab3..7c0509a 100644
--- a/src/friend_rescue_1.c
+++ b/src/friend_rescue_1.c
@@ -1,7 +1,6 @@
#include "global.h"
#include "friend_rescue.h"
#include "pokemon.h"
-#include "constants/species.h"
extern void sub_80338C4(u32);
extern s32 sub_80144A4(s32 *);
diff --git a/src/gulpin_shop.c b/src/gulpin_shop.c
index 810a191..43dc94b 100644
--- a/src/gulpin_shop.c
+++ b/src/gulpin_shop.c
@@ -2,7 +2,6 @@
#include "file_system.h"
#include "pokemon.h"
#include "memory.h"
-#include "constants/species.h"
#include "text.h"
#include "input.h"
diff --git a/src/items.c b/src/items.c
index d6128f5..2c7dd90 100644
--- a/src/items.c
+++ b/src/items.c
@@ -16,7 +16,7 @@ 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 bool8 sub_80914E4(u8);
extern void sub_8090F58(u32, u8 *, struct ItemStruct_203B460 *, u32);
void LoadItemParameters(void)
@@ -230,7 +230,7 @@ s32 sub_8090C30(struct ItemStruct_203B460 *param_1)
s32 sub_8090C7C(struct ItemStruct_203B460 *param_1)
{
- if (sub_80914E4(param_1->itemIndex) == 0) {
+ if (!sub_80914E4(param_1->itemIndex)) {
return 0;
}
else {
@@ -245,7 +245,7 @@ s32 sub_8090C7C(struct ItemStruct_203B460 *param_1)
s32 sub_8090CCC(struct ItemStruct_203B460 *param_1)
{
- if (sub_80914E4(param_1->itemIndex) == 0) {
+ if (!sub_80914E4(param_1->itemIndex)) {
return 0;
}
else {
diff --git a/src/kangaskhan_storage.c b/src/kangaskhan_storage.c
index f77d129..e23fe89 100644
--- a/src/kangaskhan_storage.c
+++ b/src/kangaskhan_storage.c
@@ -2,7 +2,6 @@
#include "file_system.h"
#include "pokemon.h"
#include "input.h"
-#include "constants/species.h"
#include "kangaskhan_storage.h"
#include "memory.h"
diff --git a/src/kangaskhan_storage_1.c b/src/kangaskhan_storage_1.c
index 25cc2a6..61bcf08 100644
--- a/src/kangaskhan_storage_1.c
+++ b/src/kangaskhan_storage_1.c
@@ -2,7 +2,6 @@
#include "file_system.h"
#include "pokemon.h"
#include "input.h"
-#include "constants/species.h"
#include "kangaskhan_storage.h"
extern struct unkStruct_203B208 *gUnknown_203B208;
diff --git a/src/kecleon_items.c b/src/kecleon_items.c
index f1f2806..da049a2 100644
--- a/src/kecleon_items.c
+++ b/src/kecleon_items.c
@@ -1,7 +1,6 @@
#include "global.h"
#include "file_system.h"
#include "pokemon.h"
-#include "constants/species.h"
#include "input.h"
#include "kecleon_items.h"
#include "memory.h"
@@ -28,7 +27,7 @@ extern void sub_8019D30();
extern void sub_8019D4C();
extern void sub_8019D68();
extern void sub_8018D30();
-extern void sub_8018E88();
+extern void UpdateKecleonStoreDialogue();
u32 DisplayKeckleonDialogueSprite(u32 param_1)
{
@@ -43,7 +42,7 @@ u32 DisplayKeckleonDialogueSprite(u32 param_1)
switch(param_1)
{
case 0:
- gUnknown_203B210->unk4 = 1;
+ gUnknown_203B210->unk4 = TRUE;
gUnknown_203B210->unkE4 = &gUnknown_203B210->faceFile;
CopyYellowSpeciesNametoBuffer(gUnknown_202E5D8, SPECIES_KECLEON);
CopyYellowSpeciesNametoBuffer(gUnknown_202E1C8, SPECIES_KECLEON);
@@ -51,15 +50,15 @@ u32 DisplayKeckleonDialogueSprite(u32 param_1)
strcpy(gUnknown_202E1C8 - 0x50, monName);
break;
case 1:
- gUnknown_203B210->unk4 = 1;
- gUnknown_203B210->unkE4 = 0;
+ gUnknown_203B210->unk4 = TRUE;
+ gUnknown_203B210->unkE4 = NULL;
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->unk4 = FALSE;
gUnknown_203B210->unkE4 = &gUnknown_203B210->faceFile;
CopyYellowSpeciesNametoBuffer(gUnknown_202E5D8, SPECIES_KECLEON);
CopyYellowSpeciesNametoBuffer(gUnknown_202E1C8, SPECIES_KECLEON);
@@ -67,8 +66,8 @@ u32 DisplayKeckleonDialogueSprite(u32 param_1)
strcpy(gUnknown_202E1C8 - 0x50, monName);
break;
case 3:
- gUnknown_203B210->unk4 = 0;
- gUnknown_203B210->unkE4 = 0;
+ gUnknown_203B210->unk4 = FALSE;
+ gUnknown_203B210->unkE4 = NULL;
CopyYellowSpeciesNametoBuffer(gUnknown_202E5D8, SPECIES_KECLEON);
CopyYellowSpeciesNametoBuffer(gUnknown_202E1C8, SPECIES_KECLEON);
monName = GetMonSpecies( SPECIES_KECLEON);
@@ -148,7 +147,7 @@ void UpdateKecleonStoreState(u32 newState)
{
gUnknown_203B210->currState = newState;
sub_8018D30();
- sub_8018E88();
+ UpdateKecleonStoreDialogue();
}
void sub_8018D30(void)
diff --git a/src/kecleon_items_1.c b/src/kecleon_items_1.c
index 0db9bb3..0746f3b 100644
--- a/src/kecleon_items_1.c
+++ b/src/kecleon_items_1.c
@@ -1,7 +1,6 @@
#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"
@@ -10,7 +9,7 @@ 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 bool8 sub_80914E4(u8);
extern u32 sub_8091814(void);
extern u32 sub_8091A48(void);
extern s32 sub_80144A4(s32 *);
@@ -37,13 +36,13 @@ void sub_8019B08(void)
case 3:
gUnknown_203B210->unk24 = sub_801A8AC();
gUnknown_203B210->unk1C = gUnknown_203B460->fill0[gUnknown_203B210->unk24];
- gUnknown_203B210->unk10 = sub_8090CCC(&gUnknown_203B210->unk1C);
+ gUnknown_203B210->itemSellPrice = 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);
+ gUnknown_203B210->itemSellPrice = sub_8090CCC(&gUnknown_203B210->unk1C);
sub_8099690(0);
UpdateKecleonStoreState(0x1d);
break;
@@ -63,7 +62,7 @@ void sub_8019BBC(void)
int menuAction;
menuAction = 0;
- if (gUnknown_203B210->unk4 != 0) {
+ if (gUnknown_203B210->unk4) {
sub_8019EDC(0);
}
else {
@@ -77,13 +76,11 @@ void sub_8019BBC(void)
if (gUnknown_203B460->teamMoney == 0) {
UpdateKecleonStoreState(0x6);
}
+ else if (gUnknown_203B210->itemSellPrice > gUnknown_203B460->teamMoney) {
+ UpdateKecleonStoreState(0xC);
+ }
else {
- if (gUnknown_203B210->unk10 > gUnknown_203B460->teamMoney) {
- UpdateKecleonStoreState(0xC);
- }
- else {
- UpdateKecleonStoreState(0x16);
- }
+ UpdateKecleonStoreState(0x16);
}
break;
case 7:
@@ -107,17 +104,14 @@ void sub_8019C78(void)
switch(menuAction){
case 3:
sub_8099690(0);
- if (sub_80914E4(gUnknown_203B210->unk1C.itemIndex) == '\0') {
+ if (!sub_80914E4(gUnknown_203B210->unk1C.itemIndex)) {
UpdateKecleonStoreState(0xd);
}
+ else if (gUnknown_203B210->itemSellPrice + gUnknown_203B460->teamMoney > 99999) {
+ UpdateKecleonStoreState(0xe);
+ }
else {
- if (gUnknown_203B210->unk10 + gUnknown_203B460->teamMoney > 99999) {
- UpdateKecleonStoreState(0xe);
-
- }
- else {
- UpdateKecleonStoreState(0x1e);
- }
+ UpdateKecleonStoreState(0x1e);
}
break;
case 7:
@@ -172,7 +166,7 @@ void sub_8019D68(void)
u32 sub_8019D8C(void)
{
- if(gUnknown_203B210->unk4 != 0)
+ if(gUnknown_203B210->unk4)
{
return sub_8091814();
}
@@ -190,22 +184,20 @@ void sub_8019DAC(void)
gUnknown_203B210->unk14 = 0;
gUnknown_203B210->unk18 = 0;
- iVar5 = 0;
- do {
+ for(iVar5 = 0; iVar5 < 0x14; iVar5++){
pbVar4 = &gUnknown_203B460->fill0[iVar5];
- if (((pbVar4->unk0 & 1) != 0) && (sub_80914E4(pbVar4->itemIndex) != 0)) {
+ if (((pbVar4->unk0 & 1) != 0) && (sub_80914E4(pbVar4->itemIndex))) {
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 (gUnknown_203B210->unk4) {
if (param_1 == 1)
gUnknown_203B210->unkE0 = 1;
else
diff --git a/src/makuhita_dojo.c b/src/makuhita_dojo.c
index b01e1a6..1e061da 100644
--- a/src/makuhita_dojo.c
+++ b/src/makuhita_dojo.c
@@ -2,7 +2,6 @@
#include "file_system.h"
#include "pokemon.h"
#include "input.h"
-#include "constants/species.h"
#include "memory.h"
#include "text.h"
diff --git a/src/personality_test.c b/src/personality_test.c
index 1ec55e2..5272c88 100644
--- a/src/personality_test.c
+++ b/src/personality_test.c
@@ -1,7 +1,6 @@
#include "global.h"
#include "personality_test.h"
#include "constants/emotions.h"
-#include "constants/species.h"
#include "random.h"
#include "file_system.h"
#include "pokemon.h"
diff --git a/src/pokemon.c b/src/pokemon.c
index 2499e11..263e482 100644
--- a/src/pokemon.c
+++ b/src/pokemon.c
@@ -1,7 +1,6 @@
#include "global.h"
#include "pokemon.h"
#include "file_system.h"
-#include "constants/species.h"
extern struct FileArchive gSystemFileArchive;
extern const char gUnknown_81075F4;
diff --git a/src/code_808EAB0.c b/src/pokemon_3.c
index fd03834..fd03834 100644
--- a/src/code_808EAB0.c
+++ b/src/pokemon_3.c
diff --git a/src/pokemon_mid.c b/src/pokemon_mid.c
index 9653217..d5ae74a 100644
--- a/src/pokemon_mid.c
+++ b/src/pokemon_mid.c
@@ -1,6 +1,5 @@
#include "global.h"
#include "pokemon.h"
-#include "constants/species.h"
extern struct gPokemon *gMonsterParameters;
extern const char gUnknown_8107600[];
diff --git a/src/post_office_guide.c b/src/post_office_guide.c
index 2c0f1d6..8fbfe56 100644
--- a/src/post_office_guide.c
+++ b/src/post_office_guide.c
@@ -2,7 +2,6 @@
#include "pokemon.h"
#include "file_system.h"
#include "input.h"
-#include "constants/species.h"
#include "menu.h"
#include "memory.h"
#include "text.h"
@@ -62,14 +61,51 @@ extern const char Delivery_Text[];
extern const char BulletinBoard_Text[];
extern const char PostOffice_Text[];
+enum PostOfficeStates
+{
+ EXIT_POST_OFFICE_MENU,
+ IM_GUIDE_START_MENU,
+ ANYTHING_ELSE_START_MENU,
+ RETURN_TO_START_MENU,
+ DISPLAY_FRIEND_RESCUE_MENU,
+ RETURN_TO_FRIEND_RESCUE,
+ DISPLAY_GO_RESCUE_MENU,
+ RETURN_TO_GO_RESCUE,
+ DISPLAY_GET_HELP_MENU,
+ RETURN_TO_GET_HELP,
+};
+
+enum PostOfficeMenuActions
+{
+ POST_OFFICE,
+ BULLETIN_BOARD,
+ DELIVERY,
+ FRIEND_RESCUE,
+ CANCEL,
+ EXIT,
+ FRIEND_RESCUE_INFO,
+ GO_RESCUE,
+ GET_HELP_MENU,
+ DELETING_MAIL,
+ RESCUE_PROCEDURES,
+ RECEIVE_SOS_MAIL,
+ LEAVE_FOR_RESCUE,
+ SEND_AOK_MAIL,
+ GET_THANK_YOU_MAIL,
+ GETTING_HELP,
+ SEND_SOS_MAIL,
+ RECEIVE_AOK_MAIL,
+ SEND_THANK_YOU_MAIL
+};
+
const struct MenuItem gPostOfficeHelpStartMenu[] =
{
- {PostOffice_Text, 0x0},
- {BulletinBoard_Text, 0x1},
- {Delivery_Text, 0x2},
- {FriendRescue_80E0A80,0x3},
- {Cancel_80E0A78,0x4},
- {NULL,0x5}
+ {PostOffice_Text, POST_OFFICE},
+ {BulletinBoard_Text, BULLETIN_BOARD},
+ {Delivery_Text, DELIVERY},
+ {FriendRescue_80E0A80, FRIEND_RESCUE},
+ {Cancel_80E0A78, CANCEL},
+ {NULL, EXIT}
};
ALIGNED(4) const char Cancel_80E0A78[] = _("Cancel");
@@ -80,12 +116,12 @@ 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}
+ {FriendRescueInfo_Text, FRIEND_RESCUE_INFO},
+ {GoRescue_Text, GO_RESCUE},
+ {GetHelp_Text, GET_HELP_MENU},
+ {DeletingMailInfo_Text, DELETING_MAIL},
+ {Exit_80EA0EC, EXIT},
+ {NULL, EXIT}
};
ALIGNED(4) const char Exit_80EA0EC[] = _("Exit");
@@ -97,13 +133,13 @@ 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}
+ {RescueProcedures_Text, RESCUE_PROCEDURES},
+ {ReceiveSOSMail_Text, RECEIVE_SOS_MAIL},
+ {LeaveForRescue_Text, LEAVE_FOR_RESCUE},
+ {SendAOKMail_Text, SEND_AOK_MAIL},
+ {GetThankYouMail_Text, GET_THANK_YOU_MAIL},
+ {Exit_80EA0EC, EXIT},
+ {NULL, EXIT}
};
ALIGNED(4) const char GetThankYouMail_Text[] = _("Get Thank-You Mail");
@@ -115,12 +151,12 @@ 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}
+ {GettingHelp_Text, GETTING_HELP},
+ {SendSOSMail_Text, SEND_SOS_MAIL},
+ {ReceiveAOKMail_Text, RECEIVE_AOK_MAIL},
+ {SendThankYouMail_Text, SEND_THANK_YOU_MAIL},
+ {Exit_80EA0EC, EXIT},
+ {NULL, EXIT}
};
ALIGNED(4) const char SendThankYouMail_Text[] = _("Send Thank-You Mail");
@@ -168,13 +204,13 @@ extern void sub_801317C(void *);
void UpdateHelperPelipperState(u8);
void HandlePostOfficeHelpStartMenuSelection();
-void sub_8031848();
+void ReturnToPostOfficeStartMenu();
extern void HandlePostOfficeHelpFriendRescueMenuSelection();
-extern void sub_80318D0();
+extern void ReturnToFriendRescueMenu();
extern void HandlePostOfficeHelpGoRescueMenuSelection();
-extern void sub_803192C();
+extern void ReturntoGoRescueMenu();
extern void HandlePostOfficeHelpGetHelpMenuSelection();
-extern void sub_8031988();
+extern void ReturnToGetHelpMenu();
extern s32 sub_80144A4(s32 *);
extern s32 sub_80969D0(u8);
extern void sub_8012D08(struct UnkTextStruct2 *, s32);
@@ -208,40 +244,40 @@ u32 CreateHelperPelipperMenu(s16 speciesID)
}
}
gPostOfficeHelper->currMenuChoice = 0;
- UpdateHelperPelipperState(1);
+ UpdateHelperPelipperState(IM_GUIDE_START_MENU);
return 1;
}
-u32 sub_8031540(void)
+u32 HelperPelliperCallback(void)
{
switch(gPostOfficeHelper->state) {
- case 1:
- case 2:
+ case IM_GUIDE_START_MENU:
+ case ANYTHING_ELSE_START_MENU:
HandlePostOfficeHelpStartMenuSelection();
break;
- case 3:
- sub_8031848();
+ case RETURN_TO_START_MENU:
+ ReturnToPostOfficeStartMenu();
break;
- case 4:
+ case DISPLAY_FRIEND_RESCUE_MENU:
HandlePostOfficeHelpFriendRescueMenuSelection();
break;
- case 5:
- sub_80318D0();
+ case RETURN_TO_FRIEND_RESCUE:
+ ReturnToFriendRescueMenu();
break;
- case 6:
+ case DISPLAY_GO_RESCUE_MENU:
HandlePostOfficeHelpGoRescueMenuSelection();
break;
- case 7:
- sub_803192C();
+ case RETURN_TO_GO_RESCUE:
+ ReturntoGoRescueMenu();
break;
- case 0:
+ case EXIT_POST_OFFICE_MENU:
return 3;
- case 8:
+ case DISPLAY_GET_HELP_MENU:
HandlePostOfficeHelpGetHelpMenuSelection();
break;
- case 9:
- sub_8031988();
+ case RETURN_TO_GET_HELP:
+ ReturnToGetHelpMenu();
break;
}
return 0;
@@ -271,85 +307,85 @@ void UpdateHelperPelipperText(void)
switch(gPostOfficeHelper->state)
{
- case 8:
+ case DISPLAY_GET_HELP_MENU:
sub_8014248(gWhatdYouWantToKnow, 0, gPostOfficeHelper->currMenuChoice, gPostOfficeHelpGetHelpMenu, 0, 4, 0, faceFile, 0xC);
break;
- case 9:
+ case RETURN_TO_GET_HELP:
switch(gPostOfficeHelper->currMenuChoice)
{
- case 15:
+ case GETTING_HELP:
sub_80141B4(gGettingHelpExplaination, 0, faceFile, 0x10d);
break;
- case 16:
+ case SEND_SOS_MAIL:
sub_80141B4(gSendSOSMailExplaination, 0, faceFile, 0x10d);
break;
- case 17:
+ case RECEIVE_AOK_MAIL:
sub_80141B4(gReceiveAOKMailExplaination, 0, faceFile, 0x10d);
break;
- case 18:
+ case SEND_THANK_YOU_MAIL:
sub_80141B4(gSendThankYouMailExplaination, 0, faceFile, 0x10d);
break;
default:
break;
}
break;
- case 6:
+ case DISPLAY_GO_RESCUE_MENU:
sub_8014248(gWhatdYouWantToKnow, 0, gPostOfficeHelper->currMenuChoice, gPostOfficeHelpGoRescueMenu, 0, 4, 0, faceFile, 0xC);
break;
- case 7:
+ case RETURN_TO_GO_RESCUE:
switch(gPostOfficeHelper->currMenuChoice)
{
- case 10:
+ case RESCUE_PROCEDURES:
sub_80141B4(gRescueProceduresExplaination, 0, faceFile, 0x10d);
break;
- case 11:
+ case RECEIVE_SOS_MAIL:
sub_80141B4(gReceiveSOSMailExplaination, 0, faceFile, 0x10d);
break;
- case 13:
+ case SEND_AOK_MAIL:
sub_80141B4(gSendAOKMailExplaination, 0, faceFile, 0x10d);
break;
- case 12:
+ case LEAVE_FOR_RESCUE:
sub_80141B4(gLeaveForRescueExplaination, 0, faceFile, 0x10d);
break;
- case 14:
+ case GET_THANK_YOU_MAIL:
sub_80141B4(gGetThankYouMailExplaination, 0, faceFile, 0x10d);
break;
default:
break;
}
break;
- case 1:
+ case IM_GUIDE_START_MENU:
sub_8014248(gImYourGuide, 0, gPostOfficeHelper->currMenuChoice, gPostOfficeHelpStartMenu, 0, 4, 0, faceFile, 0xC);
break;
- case 2:
+ case ANYTHING_ELSE_START_MENU:
sub_8014248(gAnythingElse, 0, gPostOfficeHelper->currMenuChoice, gPostOfficeHelpStartMenu, 0, 4, 0, faceFile, 0xC);
break;
- case 3:
+ case RETURN_TO_START_MENU:
switch(gPostOfficeHelper->currMenuChoice)
{
- case 0:
+ case POST_OFFICE:
sub_80141B4(gPostOfficeExplaination, 0, faceFile, 0x10d);
break;
- case 1:
+ case BULLETIN_BOARD:
sub_80141B4(gBulletinBoardExplaination, 0, faceFile, 0x10d);
break;
- case 2:
+ case DELIVERY:
sub_80141B4(gDeliveryExplaination, 0, faceFile, 0x10d);
break;
default:
break;
}
break;
- case 4:
+ case DISPLAY_FRIEND_RESCUE_MENU:
sub_8014248(gWhatdYouWantToKnow, 0, gPostOfficeHelper->currMenuChoice, gPostOfficeHelpFriendRescueMenu, 0, 4, 0, faceFile, 0xC);
break;
- case 5:
+ case RETURN_TO_FRIEND_RESCUE:
switch(gPostOfficeHelper->currMenuChoice)
{
- case 6:
+ case FRIEND_RESCUE_INFO:
sub_80141B4(gFriendRescueExplaination, 0, faceFile, 0x10d);
break;
- case 9:
+ case DELETING_MAIL:
sub_80141B4(gDeletingMailExplaination, 0, faceFile, 0x10d);
break;
default:
@@ -375,30 +411,30 @@ void HandlePostOfficeHelpStartMenuSelection(void)
{
switch(chosenAction)
{
- case 4:
- case 5:
- UpdateHelperPelipperState(0);
+ case CANCEL:
+ case EXIT:
+ UpdateHelperPelipperState(EXIT_POST_OFFICE_MENU);
break;
- case 3:
+ case FRIEND_RESCUE:
gPostOfficeHelper->currMenuChoice = chosenAction;
- UpdateHelperPelipperState(4);
+ UpdateHelperPelipperState(DISPLAY_FRIEND_RESCUE_MENU);
break;
- case 0:
- case 1:
- case 2:
+ case POST_OFFICE:
+ case BULLETIN_BOARD:
+ case DELIVERY:
gPostOfficeHelper->currMenuChoice = chosenAction;
- UpdateHelperPelipperState(3);
+ UpdateHelperPelipperState(RETURN_TO_START_MENU);
break;
}
}
}
-void sub_8031848(void)
+void ReturnToPostOfficeStartMenu(void)
{
s32 temp;
if(sub_80144A4(&temp) == 0)
{
- UpdateHelperPelipperState(2);
+ UpdateHelperPelipperState(ANYTHING_ELSE_START_MENU);
}
}
@@ -409,30 +445,30 @@ void HandlePostOfficeHelpFriendRescueMenuSelection(void)
{
switch(chosenAction)
{
- case 5:
- UpdateHelperPelipperState(2);
+ case EXIT:
+ UpdateHelperPelipperState(ANYTHING_ELSE_START_MENU);
break;
- case 7:
- UpdateHelperPelipperState(6);
+ case GO_RESCUE:
+ UpdateHelperPelipperState(DISPLAY_GO_RESCUE_MENU);
break;
- case 8:
- UpdateHelperPelipperState(8);
+ case GET_HELP_MENU:
+ UpdateHelperPelipperState(DISPLAY_GET_HELP_MENU);
break;
- case 6:
- case 9:
+ case FRIEND_RESCUE_INFO:
+ case DELETING_MAIL:
gPostOfficeHelper->currMenuChoice = chosenAction;
- UpdateHelperPelipperState(5);
+ UpdateHelperPelipperState(RETURN_TO_FRIEND_RESCUE);
break;
}
}
}
-void sub_80318D0(void)
+void ReturnToFriendRescueMenu(void)
{
s32 temp;
if(sub_80144A4(&temp) == 0)
{
- UpdateHelperPelipperState(4);
+ UpdateHelperPelipperState(DISPLAY_FRIEND_RESCUE_MENU);
}
}
@@ -443,27 +479,27 @@ void HandlePostOfficeHelpGoRescueMenuSelection(void)
{
switch(chosenAction)
{
- case 5:
- UpdateHelperPelipperState(4);
+ case EXIT:
+ UpdateHelperPelipperState(DISPLAY_FRIEND_RESCUE_MENU);
break;
- case 10:
- case 11:
- case 12:
- case 13:
- case 14:
+ case RESCUE_PROCEDURES:
+ case RECEIVE_SOS_MAIL:
+ case LEAVE_FOR_RESCUE:
+ case SEND_AOK_MAIL:
+ case GET_THANK_YOU_MAIL:
gPostOfficeHelper->currMenuChoice = chosenAction;
- UpdateHelperPelipperState(7);
+ UpdateHelperPelipperState(RETURN_TO_GO_RESCUE);
break;
}
}
}
-void sub_803192C(void)
+void ReturntoGoRescueMenu(void)
{
s32 temp;
if(sub_80144A4(&temp) == 0)
{
- UpdateHelperPelipperState(6);
+ UpdateHelperPelipperState(DISPLAY_GO_RESCUE_MENU);
}
}
@@ -474,26 +510,26 @@ void HandlePostOfficeHelpGetHelpMenuSelection(void)
{
switch(chosenAction)
{
- case 5:
- UpdateHelperPelipperState(4);
+ case EXIT:
+ UpdateHelperPelipperState(DISPLAY_FRIEND_RESCUE_MENU);
break;
- case 15:
- case 16:
- case 17:
- case 18:
+ case GETTING_HELP:
+ case SEND_SOS_MAIL:
+ case RECEIVE_AOK_MAIL:
+ case SEND_THANK_YOU_MAIL:
gPostOfficeHelper->currMenuChoice = chosenAction;
- UpdateHelperPelipperState(9);
+ UpdateHelperPelipperState(RETURN_TO_GET_HELP);
break;
}
}
}
-void sub_8031988(void)
+void ReturnToGetHelpMenu(void)
{
s32 temp;
if(sub_80144A4(&temp) == 0)
{
- UpdateHelperPelipperState(8);
+ UpdateHelperPelipperState(DISPLAY_GET_HELP_MENU);
}
}
@@ -503,7 +539,7 @@ 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);
+ sub_801317C(&gUnknown_203B330->unk0);
gUnknown_203B330->unk10 = param_3;
gUnknown_203B330->unk14 = &gUnknown_203B330->unk18[param_3];
sub_8031A2C();
diff --git a/src/save.c b/src/save.c
index b040f72..a5bc356 100644
--- a/src/save.c
+++ b/src/save.c
@@ -731,7 +731,7 @@ void PrepareSavePakWrite(s16 PokemonID)
gSavePakWrite->pokeID = id_s32;
gSavePakWrite->faceFile = NULL;
gSavePakWrite->faceData = NULL;
- if (PokemonID != 0) {
+ if (PokemonID != SPECIES_NONE) {
file = GetDialogueSpriteDataPtr(PokemonID);
gSavePakWrite->faceFile = file;
gSavePakWrite->faceData = file->data;
diff --git a/src/trade_items_menu.c b/src/trade_items_menu.c
index d9cdc33..0e1d171 100644
--- a/src/trade_items_menu.c
+++ b/src/trade_items_menu.c
@@ -357,7 +357,7 @@ void TradeItem_SendItemConfirm(void)
load -= gTradeItemsMenu->numItemsToSend;
gUnknown_203B460->unk50[gTradeItemsMenu->chosenItem] = load;
SetTradeItemMenu(TRADE_ITEMS_PREPARE_TRADE_SAVING);
- PrepareSavePakWrite(0);
+ PrepareSavePakWrite(SPECIES_NONE);
break;
case 6:
case 0:
@@ -399,7 +399,7 @@ void sub_80368D4(void)
{
TradeItem_AddItem();
SetTradeItemMenu(0x11);
- PrepareSavePakWrite(0);
+ PrepareSavePakWrite(SPECIES_NONE);
}
break;
}
@@ -438,7 +438,7 @@ void sub_8036950(void)
// Link Failure
TradeItem_AddItem(); // Add back the item
SetTradeItemMenu(0xb);
- PrepareSavePakWrite(0);
+ PrepareSavePakWrite(SPECIES_NONE);
}
else {
PrintTradeItemsLinkError(gTradeItemsMenu->linkStatus);
@@ -482,7 +482,7 @@ void sub_8036A34(void)
if(sub_80144A4(&temp) == 0)
{
SetTradeItemMenu(0x10);
- PrepareSavePakWrite(0);
+ PrepareSavePakWrite(SPECIES_NONE);
}
}
diff --git a/src/wonder_mail.c b/src/wonder_mail.c
index 05d3d03..770a1ff 100644
--- a/src/wonder_mail.c
+++ b/src/wonder_mail.c
@@ -2,13 +2,14 @@
#include "save.h"
#include "pokemon.h"
#include "file_system.h"
-#include "constants/species.h"
#include "wonder_mail.h"
#include "memory.h"
#include "text.h"
+#include "gUnknown_203B460.h"
extern struct WonderMailStruct_203B2C0 *gUnknown_203B2C0;
extern struct WonderMailStruct_203B2C4 *gUnknown_203B2C4;
+extern struct unkStruct_203B460 *gUnknown_203B460;
struct unkStruct_8095228
{
@@ -36,6 +37,8 @@ extern u8 sub_8030C20(u32);
extern u32 sub_8031050();
extern void sub_80310B4();
extern u32 sub_8095350();
+extern u8 sub_801CF14(u32);
+extern u32 sub_802F298();
extern struct unkStruct_8095228 *sub_8095228(u8);
extern u8 sub_80A2824(u32);
@@ -478,7 +481,7 @@ void sub_8028E84()
}
sub_8028B04(24);
sub_8011C28(1);
- PrepareSavePakWrite(0);
+ PrepareSavePakWrite(SPECIES_NONE);
}
void sub_8028EAC()
@@ -522,15 +525,14 @@ void sub_8028F04()
s32 temp;
s32 counter;
- if(sub_80144A4(&temp) != 0)
- {
- return;
- }
- for(counter = 0; counter <= 31; counter++)
+ if(sub_80144A4(&temp) == 0)
{
- sub_8095240(counter);
+ for(counter = 0; counter <= 31; counter++)
+ {
+ sub_8095240(counter);
+ }
+ sub_8028B04(21);
}
- sub_8028B04(21);
}
void sub_8028F30()
@@ -543,7 +545,7 @@ void sub_8028F30()
}
sub_8028B04(22);
sub_8011C28(1);
- PrepareSavePakWrite(0);
+ PrepareSavePakWrite(SPECIES_NONE);
}
void sub_8028F58()
@@ -839,7 +841,7 @@ void sub_8029374(void)
}
sub_8028B04(0x24);
sub_8011C28(1);
- PrepareSavePakWrite(0);
+ PrepareSavePakWrite(SPECIES_NONE);
}
void sub_802939C(void)
@@ -1288,7 +1290,7 @@ void sub_8029AB0(void)
}
sub_8028B04(0x38);
sub_8011C28(1);
- PrepareSavePakWrite(0);
+ PrepareSavePakWrite(SPECIES_NONE);
}
void sub_8029AD8(void)
@@ -1873,7 +1875,7 @@ void sub_802A4AC(void)
{
sub_802B2BC(0x18);
sub_8011C28(1);
- PrepareSavePakWrite(0);
+ PrepareSavePakWrite(SPECIES_NONE);
}
}
@@ -1994,7 +1996,7 @@ void sub_802A6F0(void)
if (sub_80144A4(&temp) == 0) {
sub_802B2BC(0x18);
sub_8011C28(1);
- PrepareSavePakWrite(0);
+ PrepareSavePakWrite(SPECIES_NONE);
}
}
@@ -2005,7 +2007,7 @@ void sub_802A718(void)
if (sub_80144A4(&temp) == 0) {
sub_802B2BC(0x25);
sub_8011C28(1);
- PrepareSavePakWrite(0);
+ PrepareSavePakWrite(SPECIES_NONE);
}
}
@@ -2017,3 +2019,341 @@ void sub_802A740(void)
sub_802B2BC(0x1e);
}
}
+
+void sub_802A75C(void)
+{
+ s32 temp;
+ if(sub_80144A4(&temp) == 0)
+ {
+ switch(temp)
+ {
+ case 7:
+ // NOTE: if statement is needed to match
+ if(gUnknown_203B2C4->unk538)
+ sub_802B2BC(0x16);
+ else
+ sub_802B2BC(0x16);
+ break;
+ case 0:
+ sub_802B2BC(1);
+ break;
+ }
+ }
+}
+
+void sub_802A798(void)
+{
+ s32 temp;
+ struct unkStruct_8095228 *return_var;
+ if(sub_80144A4(&temp) == 0)
+ {
+ switch(temp)
+ {
+ case 7:
+ return_var = sub_8095228(gUnknown_203B2C4->unk218);
+ if(gUnknown_203B2C4->unk41C.unk41E != 0)
+ {
+ return_var->unk20 = gUnknown_203B2C4->unk41C;
+ }
+ gUnknown_203B460->unk50[gUnknown_203B2C4->unk41C.unk41E]--;
+ sub_802B2BC(0x29);
+ break;
+ case 8:
+ sub_802B2BC(0xB);
+ break;
+ case 0:
+ sub_802B2BC(1);
+ break;
+ }
+ }
+}
+
+void sub_802A828(void)
+{
+ s32 temp;
+ if(sub_80144A4(&temp) == 0)
+ {
+ sub_802B2BC(0x2A);
+ sub_8011C28(1);
+ PrepareSavePakWrite(SPECIES_NONE);
+ }
+}
+
+void sub_802A850(void)
+{
+ s32 temp;
+ if(sub_80144A4(&temp) == 0)
+ {
+ if(!WriteSavePak())
+ {
+ FinishWriteSavePak();
+ switch(gUnknown_203B2C4->unk534)
+ {
+ case 3:
+ case 4:
+ sub_802B2BC(0x1D);
+ break;
+ case 5:
+ sub_802B2BC(0x19);
+ break;
+ }
+ }
+ }
+}
+
+void sub_802A8A0(void)
+{
+ s32 temp;
+
+ if (sub_80144A4(&temp) == 0) {
+ sub_802B2BC(0x13);
+ }
+}
+
+void sub_802A8BC(void)
+{
+ s32 temp;
+ if(sub_80144A4(&temp) == 0)
+ {
+ switch(temp)
+ {
+ case 0xA:
+ switch(gUnknown_203B2C4->unk534)
+ {
+ case 3:
+ case 4:
+ sub_802B2BC(0x1D);
+ break;
+ case 5:
+ sub_802B2BC(0x19);
+ break;
+ }
+ break;
+ case 0:
+ sub_802B2BC(1);
+ break;
+ }
+ }
+}
+
+void sub_802A910(void)
+{
+ s32 temp;
+ if(sub_80144A4(&temp) == 0)
+ {
+ switch(temp)
+ {
+ case 9:
+ if(sub_801CF14(0) != 0)
+ {
+ sub_802B2BC(0xA);
+ }
+ else
+ {
+ sub_802B2BC(0xB);
+ }
+ break;
+ case 0xA:
+ switch(gUnknown_203B2C4->unk534)
+ {
+ case 3:
+ case 4:
+ sub_802B2BC(0x1D);
+ break;
+ case 5:
+ sub_802B2BC(0x19);
+ break;
+ }
+ break;
+ case 0:
+ sub_802B2BC(1);
+ break;
+ }
+ }
+}
+
+void sub_802A98C(void)
+{
+ s32 temp;
+
+ if (sub_80144A4(&temp) == 0) {
+ sub_802B2BC(0x8);
+ }
+}
+
+void sub_802A9A8(void)
+{
+ s32 temp;
+ if(sub_80144A4(&temp) == 0)
+ {
+ switch(temp)
+ {
+ case 0x7:
+ switch(gUnknown_203B2C4->unk534)
+ {
+ case 3:
+ case 4:
+ sub_802B2BC(0x1D);
+ break;
+ case 5:
+ sub_802B2BC(0x19);
+ break;
+ }
+ break;
+ case 0:
+ sub_802B2BC(1);
+ break;
+ }
+ }
+}
+
+void sub_802A9FC(void)
+{
+ s32 temp;
+ if(sub_80144A4(&temp) == 0)
+ {
+ switch(temp)
+ {
+ case 0x7:
+ sub_802B2BC(0x26);
+ break;
+ case 0:
+ sub_802B2BC(1);
+ break;
+ }
+ }
+}
+
+void sub_802AA28(void)
+{
+ s32 temp;
+ struct unkStruct_8095228 *return_var;
+ if(sub_80144A4(&temp) == 0)
+ {
+ switch(temp)
+ {
+ case 3:
+ case 4:
+ case 5:
+ gUnknown_203B2C4->unk534 = temp;
+ switch(gUnknown_203B2C4->unk538)
+ {
+ case 1:
+ return_var = sub_8095228(sub_80953D4(5));
+ if(return_var->unk20.unk41E != 0)
+ {
+ sub_802B2BC(7);
+ }
+ else
+ {
+ sub_802B2BC(9);
+ }
+ break;
+ default:
+ if(gUnknown_203B2C4->unk534 == 5)
+ {
+ sub_802B2BC(0x26);
+ }
+ else
+ {
+ sub_802B2BC(0x1D);
+ }
+ break;
+ }
+ break;
+ case 0:
+ sub_802B2BC(1);
+ break;
+ }
+ }
+}
+
+void sub_802AAAC(void)
+{
+ s32 temp;
+ if(sub_80144A4(&temp) == 0)
+ {
+ sub_802B2BC(1);
+ }
+}
+
+void sub_802AAC8(void)
+{
+ s32 temp;
+ if(sub_80144A4(&temp) == 0)
+ {
+ sub_802B2BC(3);
+ }
+}
+
+void sub_802AAE4(void)
+{
+ s32 temp;
+ if(sub_80144A4(&temp) == 0)
+ {
+ switch(temp)
+ {
+ case 1:
+ gUnknown_203B2C4->unk40 = 6;
+ gUnknown_203B2C4->unk538 = 1;
+ if(sub_8095324(5) == 0)
+ {
+ sub_802B2BC(4);
+ }
+ else
+ {
+ sub_802B2BC(0xF);
+ }
+ break;
+ case 2:
+ gUnknown_203B2C4->unk40 = 7;
+ gUnknown_203B2C4->unk538 = 2;
+ sub_802B2BC(6);
+ break;
+ case 0:
+ sub_802B2BC(2);
+ break;
+ }
+ }
+}
+
+void sub_802AB60(void)
+{
+ s32 temp;
+ if(sub_80144A4(&temp) == 0)
+ {
+ sub_802B2BC(0x22);
+ }
+}
+
+void sub_802AB7C(void)
+{
+ s32 temp;
+ if(sub_80144A4(&temp) == 0)
+ {
+ sub_802B2BC(0x22);
+ }
+}
+
+
+void sub_802AB98(void)
+{
+ const char *monName;
+ switch(sub_802F298())
+ {
+ case 3:
+ sub_802F2C0();
+ CopyYellowSpeciesNametoBuffer(gUnknown_202E5D8, SPECIES_PELIPPER);
+ monName = GetMonSpecies(SPECIES_PELIPPER);
+ strcpy(gAvailablePokemonNames, monName);
+ sub_8095240(sub_809539C(6, gUnknown_203B2C4->unk430));
+ sub_802B2BC(0x24);
+ break;
+ default:
+ break;
+ }
+}
+
+void nullsub_131(void)
+{
+}
diff --git a/src/wonder_mail_2.c b/src/wonder_mail_2.c
index 2791d0c..62e4b00 100644
--- a/src/wonder_mail_2.c
+++ b/src/wonder_mail_2.c
@@ -2,10 +2,12 @@
#include "file_system.h"
#include "input.h"
#include "pokemon.h"
-#include "constants/species.h"
#include "memory.h"
#include "text.h"
#include "save.h"
+#include "wonder_mail.h"
+
+extern struct WonderMailStruct_203B2C4 *gUnknown_203B2C4;
struct unkStruct_203B2C8
{
@@ -41,15 +43,6 @@ struct unkStruct_203B2C8
extern struct unkStruct_203B2C8 *gUnknown_203B2C8;
-struct unkStruct_41C
-{
- u8 unk41C;
- u8 unk41D;
- u8 unk41E;
- u8 unk41F;
-};
-
-
struct unkStruct_8095228
{
u8 unk0;
@@ -95,6 +88,16 @@ extern const char gUnknown_80DF9F0[];
extern const char gUnknown_80DF9F8[];
extern u8 sub_80023E4(u32);
+extern void nullsub_131(void);
+extern void sub_802ABF8(void);
+
+void sub_802B2BC(u32 newState)
+{
+ gUnknown_203B2C4->state = newState;
+ nullsub_131();
+ sub_802ABF8();
+}
+
u32 sub_802B2D4(void)
{
s32 iVar1;
@@ -255,7 +258,7 @@ void sub_802B5B8(void)
puVar3->unk28 = uVar2;
sub_802B548(3);
sub_8011C28(1);
- PrepareSavePakWrite(0);
+ PrepareSavePakWrite(SPECIES_NONE);
}
}
diff --git a/src/wonder_mail_3.c b/src/wonder_mail_3.c
index 80552f6..88fa520 100644
--- a/src/wonder_mail_3.c
+++ b/src/wonder_mail_3.c
@@ -1,10 +1,12 @@
#include "global.h"
#include "memory.h"
+#include "text.h"
+#include "input.h"
struct unkStruct_203B2F8
{
// size: 0x208
- u32 state; // state
+ s32 state; // state
u32 unk4;
u8 unk8;
u8 unk9;
@@ -15,8 +17,22 @@ struct unkStruct_203B2F8
u32 unk6C;
u32 unk70;
u32 unk74;
+ u8 fill78[0x118 - 0x78];
+ u32 unk118;
+ u8 fill11C[0x158 - 0x11C];
+ u32 unk158;
+ u8 fill15C[0x198 - 0x15C];
+ u16 unk198[8];
+ struct UnkTextStruct2 unk1A8[4];
+ u32 unk1E4;
};
extern struct unkStruct_203B2F8 *gUnknown_203B2F8;
+extern struct UnkTextStruct2 gUnknown_80DFE04;
+extern struct UnkTextStruct2 gUnknown_80DFE1C;
+extern struct UnkTextStruct2 gUnknown_80DFDD4;
+extern void sub_8012CAC(struct UnkTextStruct2 *, u32 *);
+extern void sub_802D63C(void);
+extern void sub_802D5A4(void);
extern u8 sub_8099328(u8 *);
extern u32 sub_8011C1C();
@@ -103,3 +119,34 @@ void sub_802D1A0(u32 newState)
sub_802D1B8();
sub_802D2A8();
}
+
+void sub_802D1B8(void)
+{
+ s32 iVar2;
+ sub_8006518(gUnknown_203B2F8->unk1A8);
+ switch(gUnknown_203B2F8->state)
+ {
+ case 0xD:
+ sub_802D5A4();
+ gUnknown_203B2F8->unk1A8[2] = gUnknown_80DFE04;
+ sub_8012CAC(&gUnknown_203B2F8->unk1A8[2], &gUnknown_203B2F8->unk118);
+ gUnknown_203B2F8->unk1A8[2].unk0c = 6;
+ break;
+ case 0xE:
+ sub_802D63C();
+ gUnknown_203B2F8->unk1A8[3] = gUnknown_80DFE1C;
+ sub_8012CAC(&gUnknown_203B2F8->unk1A8[3], &gUnknown_203B2F8->unk158);
+ gUnknown_203B2F8->unk1A8[3].unk0c = 6;
+ break;
+ default:
+ for(iVar2 = 0; iVar2 < 4; iVar2++)
+ {
+ gUnknown_203B2F8->unk1A8[iVar2] = gUnknown_80DFDD4;
+ }
+ break;
+ case 2:
+ break;
+ }
+ ResetUnusedInputStruct();
+ sub_800641C(gUnknown_203B2F8->unk1A8, 1, 1);
+}
diff --git a/src/wonder_mail_main_menu.c b/src/wonder_mail_main_menu.c
index 2b475a8..d6d6c2d 100644
--- a/src/wonder_mail_main_menu.c
+++ b/src/wonder_mail_main_menu.c
@@ -3,30 +3,35 @@
#include "memory.h"
#include "text.h"
#include "input.h"
+#include "wonder_mail.h"
+#define WONDER_MAIL_MAIN_SCREEN 4
#define EXIT_TO_MAIN_MENU 5
+#define COMMUNICATION_ERROR 10
#define PASSWORD_SUCCESS 13
+#define PREPARE_SAVE 14
+#define SAVE_ADVENTURE 15
+#define WONDER_MAIL_ADDED 16
+#define PROMPT_PASSWORD_ENTRY 17
#define PASSWORD_INVALID 19
#define PASSWORD_ENTRY_SCREEN 18
-struct unkWonderMailData
-{
- u8 unk0[20];
-};
-
struct unkStruct_203B3E8
{
// size: 0x49C
- u8 unk0; // state variable?
- u8 PasswordEntryBuffer[0x36]; // Wonder Mail Buffer...
- struct unkWonderMailData unk38; // 0x30 - 0x14
- u8 unk38_1[0x30 - 20]; // TODO: split for the ldm/stm stuff (fix dumb hack)
+ u8 state; // state variable?
+ u8 PasswordEntryBuffer[PASSWORD_BUFFER_SIZE]; // Wonder Mail Buffer...
+ union UNK38
+ {
+ struct WonderMail decodedMail; // 0x14
+ u8 unk38_u8[0x30]; // idk why it fills to 0x30 instead...
+ } UNK38;
u8 fill68[0x1EC - 0x68];
struct UnkTextStruct2 unk1EC[4];
u32 unk24C;
u32 wonderMailStatus;
u8 fill254[0x3C0 - 0x254];
- struct unkWonderMailData unk3C0; // 0x3C0 + 0x14
+ struct WonderMail unk3C0;
u8 fill3D0[0x490 - 0x3D4];
u32 unk490;
u32 unk494;
@@ -40,7 +45,7 @@ extern u32 sub_8095324(u32);
extern u32 sub_80144A4(s32 *);
extern u32 sub_8011C1C(void);
extern struct unkStruct_203B3E8 *gUnknown_203B3E8;
-extern void sub_803A1C0(u8);
+extern void SetWonderMailMainMenuState(u8);
extern void sub_8030DE4(void);
extern void sub_801B450(void);
extern void sub_803084C(void);
@@ -53,25 +58,25 @@ extern u8 sub_802D178();
extern void sub_802D184();
extern s32 sub_80154F0();
-extern bool8 sub_803D358(u8 *, void *);
-extern bool8 sub_80959C0(void *);
+extern bool8 DecodeWonderMailPassword(u8 *, struct WonderMail *);
+extern bool8 IsValidWonderMail(struct WonderMail *WonderMailData);
extern void sub_80141B4(u32 *r0, u32, u32 *r1, u32);
void sub_8039BAC(u32);
-void sub_8039A18(void);
+void HandleWonderMailMainScreen(void);
void sub_8039AA8(void);
void sub_8039B14(void);
void sub_8039B20(void);
void sub_8039B58(void);
void sub_8039D88(void);
-void sub_8039D28(void);
-void sub_8039D68(void);
-void sub_8039DA4(void);
-void sub_8039DCC(void);
+void HandlePasswordSuccess(void);
+void HandlePrepareSaveScreen(void);
+void HandleSaveAdventureScreen(void);
+void HandleWonderMailAddedScreen(void);
void sub_8039B3C(void);
void sub_8039D0C(void);
-void sub_8039C60(void);
-void sub_8039DE8(void);
+void HandlePasswordEntryScreen(void);
+void HandleInvalidPasswordMenu(void);
extern u32 gUnknown_80E7914;
@@ -95,7 +100,7 @@ bool8 CreateWonderMailMenu(void)
gUnknown_203B3E8 = MemoryAlloc(sizeof(struct unkStruct_203B3E8), 8);
MemoryFill8((u8 *)gUnknown_203B3E8, 0, sizeof(struct unkStruct_203B3E8));
- for(iVar2 = 0; iVar2 < 0x36; iVar2++){
+ for(iVar2 = 0; iVar2 < PASSWORD_BUFFER_SIZE; iVar2++){
gUnknown_203B3E8->PasswordEntryBuffer[iVar2] = 0;
}
@@ -103,15 +108,15 @@ bool8 CreateWonderMailMenu(void)
gUnknown_203B3E8->unk494 = 2;
gUnknown_203B3E8->unk498 = 1;
gUnknown_203B3E8->unk490 = 5; // ??? Why?
- sub_803A1C0(0x11); // 0x11 -> Display "Enter Wonder Mail Password"
+ SetWonderMailMainMenuState(PROMPT_PASSWORD_ENTRY); // -> Display "Enter Wonder Mail Password"
return 1;
}
u8 UpdateWonderMailMenu(void)
{
- switch(gUnknown_203B3E8->unk0) {
- case 4:
- sub_8039A18();
+ switch(gUnknown_203B3E8->state) {
+ case WONDER_MAIL_MAIN_SCREEN:
+ HandleWonderMailMainScreen();
break;
case EXIT_TO_MAIN_MENU: // When you exit out of the menu
return 3;
@@ -133,28 +138,28 @@ u8 UpdateWonderMailMenu(void)
sub_8039D88();
break;
case PASSWORD_SUCCESS:
- sub_8039D28();
+ HandlePasswordSuccess();
break;
- case 14:
- sub_8039D68();
+ case PREPARE_SAVE:
+ HandlePrepareSaveScreen();
break;
- case 15: // Saving adventure
- sub_8039DA4();
+ case SAVE_ADVENTURE: // Saving adventure
+ HandleSaveAdventureScreen();
break;
- case 16: // Display "Recieved Wonder Mail was added" and go back to main menu
- sub_8039DCC();
+ case WONDER_MAIL_ADDED: // Display "Recieved Wonder Mail was added" and go back to main menu
+ HandleWonderMailAddedScreen();
break;
- case 10:
+ case COMMUNICATION_ERROR:
sub_8039B3C();
break;
- case 17: // "Please enter the Wonder Mail Password" Screen
+ case PROMPT_PASSWORD_ENTRY: // "Please enter the Wonder Mail Password" Screen
sub_8039D0C();
break;
case PASSWORD_ENTRY_SCREEN: // Password Entry
- sub_8039C60();
+ HandlePasswordEntryScreen();
break;
case PASSWORD_INVALID:
- sub_8039DE8();
+ HandleInvalidPasswordMenu();
}
return 0;
}
@@ -173,25 +178,25 @@ void CleanWonderMailMenu(void)
}
}
-void sub_8039A18(void)
+void HandleWonderMailMainScreen(void)
{
- s32 local_8;
+ s32 menuAction;
- if (sub_80144A4(&local_8) == 0) {
+ if (sub_80144A4(&menuAction) == 0) {
gUnknown_203B3E8->unk24C = 10;
- switch(local_8) {
+ switch(menuAction) {
case 3:
case 4:
gUnknown_203B3E8->unk490 = 3;
- sub_803A1C0(8);
+ SetWonderMailMainMenuState(8);
break;
case 5:
gUnknown_203B3E8->unk490 = 5;
- sub_803A1C0(17);
+ SetWonderMailMainMenuState(PROMPT_PASSWORD_ENTRY);
break;
case 0:
case 8:
- sub_803A1C0(EXIT_TO_MAIN_MENU);
+ SetWonderMailMainMenuState(EXIT_TO_MAIN_MENU);
break;
}
}
@@ -199,24 +204,24 @@ void sub_8039A18(void)
void sub_8039AA8(void)
{
- s32 local_8;
+ s32 menuAction;
- if (sub_80144A4(&local_8) == 0) {
- switch(local_8){
+ if (sub_80144A4(&menuAction) == 0) {
+ switch(menuAction){
case 6:
if (gUnknown_203B3E8->unk494 == 1) {
- sub_803A1C0(2);
+ SetWonderMailMainMenuState(2);
}
else {
- sub_803A1C0(12);
+ SetWonderMailMainMenuState(12);
}
break;
case 0:
if (gUnknown_203B3E8->unk494 == 1) {
- sub_803A1C0(1);
+ SetWonderMailMainMenuState(1);
}
else {
- sub_803A1C0(4);
+ SetWonderMailMainMenuState(WONDER_MAIL_MAIN_SCREEN);
}
break;
}
@@ -225,7 +230,7 @@ void sub_8039AA8(void)
void sub_8039B14(void)
{
- sub_803A1C0(6);
+ SetWonderMailMainMenuState(6);
}
void sub_8039B20(void)
@@ -233,7 +238,7 @@ void sub_8039B20(void)
s32 local_8;
if (sub_80144A4(&local_8) == 0) {
- sub_803A1C0(9);
+ SetWonderMailMainMenuState(9);
}
}
@@ -242,7 +247,7 @@ void sub_8039B3C(void)
s32 local_8;
if (sub_80144A4(&local_8) == 0) {
- sub_803A1C0(4);
+ SetWonderMailMainMenuState(WONDER_MAIL_MAIN_SCREEN);
}
}
@@ -254,16 +259,16 @@ void sub_8039B58(void)
if (gUnknown_203B3E8->wonderMailStatus == 0) {
switch(gUnknown_203B3E8->unk24C){
case 9:
- sub_803A1C0(7);
+ SetWonderMailMainMenuState(7);
break;
case 10:
- sub_803A1C0(PASSWORD_SUCCESS);
+ SetWonderMailMainMenuState(PASSWORD_SUCCESS);
break;
}
}
else {
sub_8039BAC(gUnknown_203B3E8->wonderMailStatus);
- sub_803A1C0(10);
+ SetWonderMailMainMenuState(COMMUNICATION_ERROR);
}
}
}
@@ -305,7 +310,7 @@ void sub_8039BAC(u32 arg)
case 7:
case 8:
case 9:
- case 10:
+ case COMMUNICATION_ERROR:
case 11:
case 12:
case PASSWORD_SUCCESS:
@@ -317,36 +322,36 @@ void sub_8039BAC(u32 arg)
}
}
-void sub_8039C60(void)
+void HandlePasswordEntryScreen(void)
{
int iVar2;
iVar2 = sub_80154F0();
- MemoryFill8((u8 *)&gUnknown_203B3E8->unk38, 0, 0x30);
+ MemoryFill8(gUnknown_203B3E8->UNK38.unk38_u8, 0, sizeof(gUnknown_203B3E8->UNK38));
switch(iVar2){
case 3:
sub_80155F0();
ResetUnusedInputStruct();
sub_800641C(gUnknown_203B3E8->unk1EC,1,1);
- if ( !sub_803D358(gUnknown_203B3E8->PasswordEntryBuffer, &gUnknown_203B3E8->unk38) || !sub_80959C0(&gUnknown_203B3E8->unk38) )
+ if ( !DecodeWonderMailPassword(gUnknown_203B3E8->PasswordEntryBuffer, &gUnknown_203B3E8->UNK38.decodedMail) || !IsValidWonderMail(&gUnknown_203B3E8->UNK38.decodedMail) )
{
// Invalid password
- sub_803A1C0(PASSWORD_INVALID);
+ SetWonderMailMainMenuState(PASSWORD_INVALID);
}
else {
// Successful password
// Copy the decoded data to another buffer?
- gUnknown_203B3E8->unk3C0 = gUnknown_203B3E8->unk38;
+ gUnknown_203B3E8->unk3C0 = gUnknown_203B3E8->UNK38.decodedMail;
gUnknown_203B3E8->unk498 = 1;
- sub_803A1C0(PASSWORD_SUCCESS);
+ SetWonderMailMainMenuState(PASSWORD_SUCCESS);
}
- break;
+ break;
case 2:
sub_80155F0();
ResetUnusedInputStruct();
sub_800641C(gUnknown_203B3E8->unk1EC,1,1);
- sub_803A1C0(EXIT_TO_MAIN_MENU);
+ SetWonderMailMainMenuState(EXIT_TO_MAIN_MENU);
break;
}
}
@@ -356,31 +361,31 @@ void sub_8039D0C(void)
int iVar2;
if(sub_80144A4(&iVar2) == 0)
{
- sub_803A1C0(PASSWORD_ENTRY_SCREEN);
+ SetWonderMailMainMenuState(PASSWORD_ENTRY_SCREEN);
}
}
-void sub_8039D28(void)
+void HandlePasswordSuccess(void)
{
if (sub_802D0E0() == 3) {
gUnknown_203B3E8->unk498 = sub_802D178();
sub_802D184();
if (gUnknown_203B3E8->unk498 != 0) {
- sub_803A1C0(0xe);
+ SetWonderMailMainMenuState(PREPARE_SAVE);
}
else {
- sub_803A1C0(0x10);
+ SetWonderMailMainMenuState(WONDER_MAIL_ADDED);
}
}
}
-void sub_8039D68(void)
+void HandlePrepareSaveScreen(void)
{
int iVar2;
if(sub_80144A4(&iVar2) == 0)
{
- sub_803A1C0(0xF);
- PrepareSavePakWrite(0); // "Saving Adventure.."
+ SetWonderMailMainMenuState(SAVE_ADVENTURE);
+ PrepareSavePakWrite(SPECIES_NONE); // "Saving Adventure.."
}
}
@@ -389,11 +394,11 @@ void sub_8039D88(void)
int iVar2;
if(sub_80144A4(&iVar2) == 0)
{
- sub_803A1C0(8);
+ SetWonderMailMainMenuState(8);
}
}
-void sub_8039DA4(void)
+void HandleSaveAdventureScreen(void)
{
int iVar2;
if(sub_80144A4(&iVar2) == 0)
@@ -401,34 +406,34 @@ void sub_8039DA4(void)
if(!WriteSavePak())
{
FinishWriteSavePak();
- sub_803A1C0(0x10);
+ SetWonderMailMainMenuState(WONDER_MAIL_ADDED);
}
}
}
-void sub_8039DCC(void)
+void HandleWonderMailAddedScreen(void)
{
int iVar2;
if(sub_80144A4(&iVar2) == 0)
{
- sub_803A1C0(EXIT_TO_MAIN_MENU);
+ SetWonderMailMainMenuState(EXIT_TO_MAIN_MENU);
}
}
-void sub_8039DE8(void)
+void HandleInvalidPasswordMenu(void)
{
- int iVar2;
+ s32 menuAction;
// Prompt to re-enter password
- if(sub_80144A4(&iVar2) == 0)
+ if(sub_80144A4(&menuAction) == 0)
{
- switch(iVar2)
+ switch(menuAction)
{
case 6: // Yes
- sub_803A1C0(0x11);
+ SetWonderMailMainMenuState(PROMPT_PASSWORD_ENTRY);
break;
case 0: // No
- sub_803A1C0(EXIT_TO_MAIN_MENU);
+ SetWonderMailMainMenuState(EXIT_TO_MAIN_MENU);
break;
}
}
diff --git a/src/wonder_mail_pre.c b/src/wonder_mail_pre.c
index 4cf76c8..9e2e5cc 100644
--- a/src/wonder_mail_pre.c
+++ b/src/wonder_mail_pre.c
@@ -2,7 +2,6 @@
#include "file_system.h"
#include "input.h"
#include "pokemon.h"
-#include "constants/species.h"
#include "wonder_mail.h"
#include "memory.h"