summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSeth Barberee <seth.barberee@gmail.com>2020-11-23 15:22:16 -0600
committerSeth Barberee <seth.barberee@gmail.com>2020-11-23 15:22:16 -0600
commit2582d7a8680e32493403d484c1990e1a63fb2015 (patch)
tree1994f24742ed525d9fcc7f5e31617f01e08f41c4
parentfc7f14ab66ff8e23cd758a9435f8ac48e99ae75f (diff)
isemi-identified VRAM and split personality test funcs
-rw-r--r--asm/code_8009804.s6
-rw-r--r--asm/code_8027C84.s2022
-rw-r--r--asm/code_80428A0.s2
-rw-r--r--asm/code_8095014.s1519
-rw-r--r--asm/code_809747C.s1446
-rw-r--r--asm/personality_test.s2030
-rw-r--r--include/dungeon.h1
-rwxr-xr-xld_script.txt5
-rw-r--r--src/code_8027C84.c25
-rw-r--r--src/code_809747C.c81
-rw-r--r--src/personality_test.c25
11 files changed, 3591 insertions, 3571 deletions
diff --git a/asm/code_8009804.s b/asm/code_8009804.s
index ba4860f..edd2bd1 100644
--- a/asm/code_8009804.s
+++ b/asm/code_8009804.s
@@ -5,8 +5,8 @@
.text
- thumb_func_start sub_8009804
-sub_8009804:
+ thumb_func_start vram_related_8009804
+vram_related_8009804:
push {lr}
movs r1, 0xC0
lsls r1, 19
@@ -83,7 +83,7 @@ _08009890: .4byte 0x06010000
_08009894: .4byte 0x00001f7f
_08009898: .4byte 0x05000200
_0800989C: .4byte 0x00a000a0
- thumb_func_end sub_8009804
+ thumb_func_end vram_related_8009804
thumb_func_start sub_80098A0
sub_80098A0:
diff --git a/asm/code_8027C84.s b/asm/code_8027C84.s
index a099f3d..fa48de9 100644
--- a/asm/code_8027C84.s
+++ b/asm/code_8027C84.s
@@ -40592,2026 +40592,4 @@ _0803C18A:
bx r1
thumb_func_end sub_803C110
- thumb_func_start sub_803C190
-sub_803C190:
- lsls r0, 24
- ldr r1, _0803C19C
- lsrs r0, 21
- adds r0, r1
- ldr r0, [r0]
- bx lr
- .align 2, 0
-_0803C19C: .4byte gUnknown_80EBA18
- thumb_func_end sub_803C190
-
- thumb_func_start sub_803C1A0
-sub_803C1A0:
- lsls r0, 24
- ldr r1, _0803C1B0
- lsrs r0, 21
- adds r1, 0x4
- adds r0, r1
- ldr r0, [r0]
- bx lr
- .align 2, 0
-_0803C1B0: .4byte gUnknown_80EBA18
- thumb_func_end sub_803C1A0
-
- thumb_func_start sub_803C1B4
-sub_803C1B4:
- push {r4,lr}
- lsls r4, r1, 24
- lsrs r4, 24
- bl sub_80908D8
- cmp r4, 0x2
- bne _0803C1C4
- adds r0, 0x2
-_0803C1C4:
- cmp r0, 0xF
- ble _0803C1CA
- movs r0, 0xF
-_0803C1CA:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_803C1B4
-
- thumb_func_start sub_803C1D0
-sub_803C1D0:
- push {lr}
- lsls r1, 24
- lsrs r1, 24
- bl sub_803C1B4
- adds r1, r0, 0
- lsrs r0, r1, 31
- adds r0, r1, r0
- asrs r1, r0, 1
- lsls r0, r1, 24
- lsrs r0, 24
- cmp r0, 0x6
- bls _0803C1EC
- movs r0, 0x6
-_0803C1EC:
- pop {r1}
- bx r1
- thumb_func_end sub_803C1D0
-
- thumb_func_start sub_803C1F0
-sub_803C1F0:
- lsls r0, 24
- ldr r1, _0803C1FC
- lsrs r0, 22
- adds r0, r1
- ldr r0, [r0]
- bx lr
- .align 2, 0
-_0803C1FC: .4byte gUnknown_80E8BF8
- thumb_func_end sub_803C1F0
-
- thumb_func_start sub_803C200
-sub_803C200:
- push {lr}
- lsls r1, 24
- lsrs r1, 24
- bl sub_803C1B4
- ldr r1, _0803C218
- lsls r0, 2
- adds r0, r1
- ldr r0, [r0]
- pop {r1}
- bx r1
- .align 2, 0
-_0803C218: .4byte gUnknown_80E80A0
- thumb_func_end sub_803C200
-
- thumb_func_start sub_803C21C
-sub_803C21C:
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- adds r6, r0, 0
- adds r4, r1, 0
- adds r0, r6, 0x4
- ldrb r1, [r6, 0x1]
- bl sub_803C1D0
- lsls r0, 24
- lsrs r2, r0, 24
- movs r0, 0
- str r0, [r4, 0x18]
- movs r3, 0
- movs r1, 0x2
- adds r0, r4, 0
- adds r0, 0x1E
-_0803C23E:
- strb r3, [r0]
- subs r0, 0x1
- subs r1, 0x1
- cmp r1, 0
- bge _0803C23E
- adds r0, r4, 0
- adds r0, 0x20
- movs r1, 0
- strb r1, [r0]
- movs r1, 0xA
- strb r1, [r4, 0x1F]
- ldrb r1, [r6, 0x11]
- adds r3, r0, 0
- cmp r1, 0x9
- bhi _0803C354
- lsls r0, r1, 2
- ldr r1, _0803C268
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0803C268: .4byte _0803C26C
- .align 2, 0
-_0803C26C:
- .4byte _0803C294
- .4byte _0803C2A2
- .4byte _0803C2B4
- .4byte _0803C2BE
- .4byte _0803C354
- .4byte _0803C2E0
- .4byte _0803C2EE
- .4byte _0803C300
- .4byte _0803C30A
- .4byte _0803C34A
-_0803C294:
- movs r0, 0
- strb r0, [r4, 0x16]
- adds r1, r2, 0x1
- movs r0, 0x64
- muls r0, r1
- str r0, [r4, 0x18]
- b _0803C358
-_0803C2A2:
- movs r0, 0x1
- strb r0, [r4, 0x16]
- adds r1, r2, 0x1
- movs r0, 0x64
- muls r0, r1
- str r0, [r4, 0x18]
- ldrb r0, [r6, 0x12]
- strb r0, [r4, 0x1C]
- b _0803C358
-_0803C2B4:
- movs r0, 0x2
- strb r0, [r4, 0x16]
- ldrb r0, [r6, 0x12]
- strb r0, [r4, 0x1C]
- b _0803C358
-_0803C2BE:
- movs r0, 0x3
- strb r0, [r4, 0x16]
- ldrb r0, [r6, 0x12]
- strb r0, [r4, 0x1C]
- adds r5, r6, 0x4
- adds r7, r4, 0
- adds r7, 0x1D
-_0803C2CC:
- ldrb r1, [r6, 0x1]
- adds r0, r5, 0
- adds r2, r7, 0
- bl sub_803C37C
- ldrb r0, [r4, 0x1C]
- ldrb r1, [r4, 0x1D]
- cmp r0, r1
- beq _0803C2CC
- b _0803C35A
-_0803C2E0:
- movs r0, 0
- strb r0, [r4, 0x16]
- adds r1, r2, 0x1
- movs r0, 0xC8
- muls r0, r1
- str r0, [r4, 0x18]
- b _0803C358
-_0803C2EE:
- movs r0, 0x1
- strb r0, [r4, 0x16]
- adds r1, r2, 0x1
- movs r0, 0xC8
- muls r0, r1
- str r0, [r4, 0x18]
- ldrb r0, [r6, 0x12]
- strb r0, [r4, 0x1C]
- b _0803C358
-_0803C300:
- movs r0, 0x2
- strb r0, [r4, 0x16]
- ldrb r0, [r6, 0x12]
- strb r0, [r4, 0x1C]
- b _0803C358
-_0803C30A:
- movs r0, 0x3
- strb r0, [r4, 0x16]
- ldrb r0, [r6, 0x12]
- strb r0, [r4, 0x1C]
- adds r5, r6, 0x4
- adds r7, r4, 0
- adds r7, 0x1D
- movs r0, 0x1E
- adds r0, r4
- mov r8, r0
-_0803C31E:
- ldrb r1, [r6, 0x1]
- adds r0, r5, 0
- adds r2, r7, 0
- bl sub_803C37C
- ldrb r0, [r4, 0x1C]
- ldrb r1, [r4, 0x1D]
- cmp r0, r1
- beq _0803C31E
-_0803C330:
- ldrb r1, [r6, 0x1]
- adds r0, r5, 0
- mov r2, r8
- bl sub_803C37C
- ldrb r0, [r4, 0x1C]
- ldrb r1, [r4, 0x1E]
- cmp r0, r1
- beq _0803C330
- ldrb r0, [r4, 0x1D]
- cmp r0, r1
- beq _0803C330
- b _0803C35A
-_0803C34A:
- movs r0, 0x4
- strb r0, [r4, 0x16]
- ldrb r0, [r6, 0x13]
- strb r0, [r3]
- b _0803C358
-_0803C354:
- movs r0, 0x5
- strb r0, [r4, 0x16]
-_0803C358:
- adds r5, r6, 0x4
-_0803C35A:
- movs r0, 0xC
- ldrsh r1, [r6, r0]
- adds r0, r4, 0
- bl sub_808D8E0
- ldrh r0, [r6, 0xC]
- strh r0, [r4, 0x14]
- ldrb r1, [r6, 0x1]
- adds r0, r5, 0
- bl sub_803C200
- str r0, [r4, 0x24]
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_803C21C
-
- thumb_func_start sub_803C37C
-sub_803C37C:
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- adds r6, r0, 0
- mov r8, r2
- lsls r1, 24
- lsrs r1, 24
- bl sub_803C1B4
- adds r7, r0, 0
- adds r0, r6, 0
- adds r1, r7, 0
- bl sub_8090910
-_0803C398:
- movs r5, 0
- adds r0, r6, 0
- adds r1, r7, 0
- bl sub_8090910
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0xEA
- bne _0803C3BA
- movs r0, 0
- movs r1, 0x47
- movs r2, 0x1
- bl sub_8001784
- negs r1, r0
- orrs r1, r0
- lsrs r5, r1, 31
-_0803C3BA:
- cmp r4, 0xEB
- bne _0803C3CE
- movs r0, 0
- movs r1, 0x47
- movs r2, 0
- bl sub_8001784
- cmp r0, 0
- beq _0803C3CE
- movs r5, 0x1
-_0803C3CE:
- cmp r5, 0
- bne _0803C398
- mov r0, r8
- strb r4, [r0]
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_803C37C
-
- thumb_func_start sub_803C3E0
-sub_803C3E0:
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x54
- adds r7, r0, 0
- movs r6, 0
- ldr r5, _0803C42C
- movs r4, 0
- mov r8, sp
-_0803C3F2:
- movs r1, 0
- ldrsh r0, [r5, r1]
- bl sub_803C110
- lsls r0, 24
- cmp r0, 0
- beq _0803C41A
- movs r1, 0x2
- ldrsh r0, [r5, r1]
- bl sub_803C110
- lsls r0, 24
- cmp r0, 0
- beq _0803C41A
- mov r0, r8
- adds r0, 0x4
- mov r8, r0
- subs r0, 0x4
- stm r0!, {r4}
- adds r6, 0x1
-_0803C41A:
- adds r5, 0x8
- adds r4, 0x1
- cmp r4, 0x14
- ble _0803C3F2
- ldr r5, _0803C42C
- cmp r6, 0
- bne _0803C430
- movs r0, 0
- b _0803C44E
- .align 2, 0
-_0803C42C: .4byte gUnknown_80E9920
-_0803C430:
- adds r0, r6, 0
- bl RandomCapped
- lsls r0, 2
- add r0, sp
- ldr r4, [r0]
- lsls r0, r4, 3
- adds r5, r0, r5
- ldrh r0, [r5]
- strh r0, [r7, 0xC]
- ldrh r0, [r5, 0x2]
- strh r0, [r7, 0xE]
- movs r0, 0x7
- strb r0, [r7, 0x2]
- movs r0, 0x1
-_0803C44E:
- add sp, 0x54
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_803C3E0
-
- thumb_func_start sub_803C45C
-sub_803C45C:
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0xB4
- adds r7, r0, 0
- movs r6, 0
- ldr r5, _0803C4CC
- movs r4, 0
- mov r8, sp
-_0803C46E:
- movs r1, 0
- ldrsh r0, [r5, r1]
- bl sub_803C110
- lsls r0, 24
- cmp r0, 0
- beq _0803C496
- movs r1, 0x2
- ldrsh r0, [r5, r1]
- bl sub_803C110
- lsls r0, 24
- cmp r0, 0
- beq _0803C496
- mov r0, r8
- adds r0, 0x4
- mov r8, r0
- subs r0, 0x4
- stm r0!, {r4}
- adds r6, 0x1
-_0803C496:
- adds r5, 0xC
- adds r4, 0x1
- cmp r4, 0x2C
- ble _0803C46E
- ldr r5, _0803C4CC
- cmp r6, 0
- beq _0803C4E0
- adds r0, r6, 0
- bl RandomCapped
- lsls r0, 2
- add r0, sp
- ldr r4, [r0]
- lsls r0, r4, 1
- adds r0, r4
- lsls r0, 2
- adds r5, r0, r5
- bl Random
- movs r1, 0x10
- ands r1, r0
- cmp r1, 0
- beq _0803C4D0
- ldrh r0, [r5]
- strh r0, [r7, 0xC]
- ldrh r0, [r5, 0x2]
- b _0803C4D6
- .align 2, 0
-_0803C4CC: .4byte gUnknown_80E9F8C
-_0803C4D0:
- ldrh r0, [r5, 0x2]
- strh r0, [r7, 0xC]
- ldrh r0, [r5]
-_0803C4D6:
- strh r0, [r7, 0xE]
- movs r0, 0x8
- strb r0, [r7, 0x2]
- movs r0, 0x1
- b _0803C4E2
-_0803C4E0:
- movs r0, 0
-_0803C4E2:
- add sp, 0xB4
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_803C45C
-
- thumb_func_start sub_803C4F0
-sub_803C4F0:
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x18
- adds r7, r0, 0
- movs r6, 0
- ldr r5, _0803C55C
- movs r4, 0
- mov r8, sp
-_0803C502:
- movs r1, 0
- ldrsh r0, [r5, r1]
- bl sub_803C110
- lsls r0, 24
- cmp r0, 0
- beq _0803C52A
- movs r1, 0x2
- ldrsh r0, [r5, r1]
- bl sub_803C110
- lsls r0, 24
- cmp r0, 0
- beq _0803C52A
- mov r0, r8
- adds r0, 0x4
- mov r8, r0
- subs r0, 0x4
- stm r0!, {r4}
- adds r6, 0x1
-_0803C52A:
- adds r5, 0x4
- adds r4, 0x1
- cmp r4, 0x5
- ble _0803C502
- ldr r5, _0803C55C
- cmp r6, 0
- beq _0803C570
- adds r0, r6, 0
- bl RandomCapped
- lsls r0, 2
- add r0, sp
- ldr r4, [r0]
- lsls r0, r4, 2
- adds r5, r0, r5
- bl Random
- movs r1, 0x10
- ands r1, r0
- cmp r1, 0
- beq _0803C560
- ldrh r0, [r5]
- strh r0, [r7, 0xC]
- ldrh r0, [r5, 0x2]
- b _0803C566
- .align 2, 0
-_0803C55C: .4byte gUnknown_80E8168
-_0803C560:
- ldrh r0, [r5, 0x2]
- strh r0, [r7, 0xC]
- ldrh r0, [r5]
-_0803C566:
- strh r0, [r7, 0xE]
- movs r0, 0x9
- strb r0, [r7, 0x2]
- movs r0, 0x1
- b _0803C572
-_0803C570:
- movs r0, 0
-_0803C572:
- add sp, 0x18
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_803C4F0
-
- thumb_func_start sub_803C580
-sub_803C580:
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x54
- adds r6, r0, 0
- movs r7, 0
- ldr r5, _0803C5D8
- movs r0, 0x6
- bl sub_80023E4
- lsls r0, 24
- cmp r0, 0
- beq _0803C5D2
- movs r4, 0
- mov r8, sp
-_0803C59E:
- movs r1, 0
- ldrsh r0, [r5, r1]
- bl sub_803C110
- lsls r0, 24
- cmp r0, 0
- beq _0803C5C6
- ldrb r0, [r6, 0x4]
- ldrb r1, [r5, 0x2]
- bl sub_8091E60
- lsls r0, 24
- cmp r0, 0
- beq _0803C5C6
- mov r0, r8
- adds r0, 0x4
- mov r8, r0
- subs r0, 0x4
- stm r0!, {r4}
- adds r7, 0x1
-_0803C5C6:
- adds r5, 0x4
- adds r4, 0x1
- cmp r4, 0x14
- ble _0803C59E
- cmp r7, 0
- bne _0803C5DC
-_0803C5D2:
- movs r0, 0
- b _0803C600
- .align 2, 0
-_0803C5D8: .4byte gUnknown_80E8180
-_0803C5DC:
- adds r0, r7, 0
- bl RandomCapped
- lsls r0, 2
- add r0, sp
- ldr r4, [r0]
- lsls r1, r4, 2
- ldr r0, _0803C60C
- adds r5, r1, r0
- ldrh r0, [r5]
- strh r0, [r6, 0xC]
- ldrh r0, [r5]
- strh r0, [r6, 0xE]
- ldrb r0, [r5, 0x2]
- strb r0, [r6, 0x10]
- movs r0, 0x5
- strb r0, [r6, 0x2]
- movs r0, 0x1
-_0803C600:
- add sp, 0x54
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_0803C60C: .4byte gUnknown_80E8180
- thumb_func_end sub_803C580
-
- thumb_func_start sub_803C610
-sub_803C610:
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- ldr r4, _0803C660
- add sp, r4
- adds r6, r0, 0
- movs r7, 0
- ldr r4, _0803C664
- movs r5, 0
- mov r8, sp
-_0803C624:
- movs r1, 0
- ldrsh r0, [r4, r1]
- bl sub_803C110
- lsls r0, 24
- cmp r0, 0
- beq _0803C64C
- ldrb r0, [r6, 0x4]
- ldrb r1, [r4, 0x2]
- bl sub_8091E60
- lsls r0, 24
- cmp r0, 0
- beq _0803C64C
- mov r0, r8
- adds r0, 0x4
- mov r8, r0
- subs r0, 0x4
- stm r0!, {r5}
- adds r7, 0x1
-_0803C64C:
- adds r4, 0x4
- adds r5, 0x1
- ldr r0, _0803C668
- cmp r5, r0
- ble _0803C624
- cmp r7, 0
- bne _0803C66C
- movs r0, 0
- b _0803C690
- .align 2, 0
-_0803C660: .4byte 0xfffff9f8
-_0803C664: .4byte gUnknown_80E81D4
-_0803C668: .4byte 0x00000181
-_0803C66C:
- adds r0, r7, 0
- bl RandomCapped
- lsls r0, 2
- add r0, sp
- ldr r5, [r0]
- lsls r1, r5, 2
- ldr r0, _0803C6A0
- adds r4, r1, r0
- ldrh r0, [r4]
- strh r0, [r6, 0xC]
- ldrh r0, [r4]
- strh r0, [r6, 0xE]
- ldrb r0, [r4, 0x2]
- strb r0, [r6, 0x10]
- movs r0, 0x6
- strb r0, [r6, 0x2]
- movs r0, 0x1
-_0803C690:
- movs r3, 0xC1
- lsls r3, 3
- add sp, r3
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_0803C6A0: .4byte gUnknown_80E81D4
- thumb_func_end sub_803C610
-
- thumb_func_start sub_803C6A4
-sub_803C6A4:
- push {r4,lr}
- ldr r4, _0803C6CC
- movs r0, 0xC0
- movs r1, 0x8
- bl MemoryAlloc
- str r0, [r4]
- adds r0, 0xB4
- bl sub_801317C
- bl sub_803C6D0
- movs r0, 0x1
- bl sub_8099690
- movs r0, 0x1
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_0803C6CC: .4byte gUnknown_203B400
- thumb_func_end sub_803C6A4
-
- thumb_func_start sub_803C6D0
-sub_803C6D0:
- push {r4,r5,lr}
- ldr r4, _0803C72C
- ldr r0, [r4]
- adds r0, 0x4
- bl sub_8001024
- ldr r1, [r4]
- movs r0, 0
- str r0, [r1]
- str r0, [r1, 0x34]
- str r0, [r1, 0x38]
- movs r2, 0
- movs r5, 0
- adds r3, r4, 0
-_0803C6EC:
- ldr r0, [r4]
- lsls r1, r2, 2
- adds r0, 0x44
- adds r0, r1
- str r5, [r0]
- adds r2, 0x1
- cmp r2, 0xC
- ble _0803C6EC
- ldr r1, [r3]
- movs r0, 0
- str r0, [r1, 0x3C]
- movs r2, 0
- adds r4, r3, 0
- movs r1, 0
-_0803C708:
- ldr r0, [r4]
- adds r0, 0x78
- adds r0, r2
- strb r1, [r0]
- adds r2, 0x1
- cmp r2, 0x36
- ble _0803C708
- ldr r0, [r3]
- adds r0, 0x40
- movs r1, 0
- strb r1, [r0]
- ldr r0, [r3]
- adds r0, 0xB0
- str r1, [r0]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0803C72C: .4byte gUnknown_203B400
- thumb_func_end sub_803C6D0
-
- thumb_func_start sub_803C730
-sub_803C730:
- push {r4,r5,lr}
- ldr r0, _0803C750
- ldr r1, [r0]
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- ldr r0, [r1, 0x34]
- cmp r0, 0xF
- bls _0803C744
- b _0803C848
-_0803C744:
- lsls r0, 2
- ldr r1, _0803C754
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0803C750: .4byte gUnknown_203B400
-_0803C754: .4byte _0803C758
- .align 2, 0
-_0803C758:
- .4byte _0803C798
- .4byte _0803C79E
- .4byte _0803C7A4
- .4byte _0803C7AA
- .4byte _0803C7B0
- .4byte _0803C7B6
- .4byte _0803C7BC
- .4byte _0803C7C2
- .4byte _0803C7C8
- .4byte _0803C7CE
- .4byte _0803C7D4
- .4byte _0803C7DA
- .4byte _0803C7E0
- .4byte _0803C7E6
- .4byte _0803C7EC
- .4byte _0803C7F2
-_0803C798:
- bl sub_803C870
- b _0803C848
-_0803C79E:
- bl sub_803C908
- b _0803C848
-_0803C7A4:
- bl sub_803C920
- b _0803C848
-_0803C7AA:
- bl sub_803C98C
- b _0803C848
-_0803C7B0:
- bl sub_803C9D8
- b _0803C848
-_0803C7B6:
- bl sub_803CA54
- b _0803C848
-_0803C7BC:
- bl sub_803CA8C
- b _0803C848
-_0803C7C2:
- bl sub_803CAAC
- b _0803C848
-_0803C7C8:
- bl sub_803CAD4
- b _0803C848
-_0803C7CE:
- bl sub_803CAF4
- b _0803C848
-_0803C7D4:
- bl sub_803CB14
- b _0803C848
-_0803C7DA:
- bl sub_803CB5C
- b _0803C848
-_0803C7E0:
- bl sub_803CB7C
- b _0803C848
-_0803C7E6:
- bl sub_803CBB0
- b _0803C848
-_0803C7EC:
- bl sub_803CBE4
- b _0803C848
-_0803C7F2:
- bl Random
- ldr r4, _0803C844
- ldr r1, [r4]
- ldr r1, [r1]
- adds r5, r0, 0
- muls r5, r1
- bl Random
- bl sub_8094D28
- movs r1, 0
- ldr r0, [r4]
- adds r2, r0, 0
- adds r2, 0x44
-_0803C810:
- ldm r2!, {r0}
- adds r0, r1
- adds r0, 0x3
- muls r5, r0
- adds r1, 0x1
- cmp r1, 0xC
- ble _0803C810
- bl sub_8094E4C
- adds r5, r0
- movs r0, 0x1
- negs r0, r0
- cmp r5, r0
- bne _0803C838
- adds r4, r5, 0
-_0803C82E:
- bl sub_8094E4C
- adds r5, r0
- cmp r5, r4
- beq _0803C82E
-_0803C838:
- adds r0, r5, 0
- bl sub_8011C40
- movs r0, 0x3
- b _0803C84A
- .align 2, 0
-_0803C844: .4byte gUnknown_203B400
-_0803C848:
- movs r0, 0
-_0803C84A:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_803C730
-
- thumb_func_start sub_803C850
-sub_803C850:
- push {r4,lr}
- ldr r4, _0803C86C
- ldr r0, [r4]
- adds r0, 0x4
- bl sub_8001044
- ldr r0, [r4]
- bl MemoryFree
- movs r0, 0
- str r0, [r4]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0803C86C: .4byte gUnknown_203B400
- thumb_func_end sub_803C850
-
- thumb_func_start sub_803C870
-sub_803C870:
- push {r4-r6,lr}
- sub sp, 0x14
- ldr r5, _0803C8A4
- ldr r1, [r5]
- ldr r0, [r1, 0x38]
- adds r0, 0x1
- str r0, [r1, 0x38]
- cmp r0, 0x8
- ble _0803C8B4
- ldr r0, _0803C8A8
- ldr r3, _0803C8AC
- movs r1, 0
- str r1, [sp]
- movs r4, 0x3
- str r4, [sp, 0x4]
- str r1, [sp, 0x8]
- str r1, [sp, 0xC]
- ldr r1, _0803C8B0
- str r1, [sp, 0x10]
- movs r1, 0
- movs r2, 0
- bl sub_8014248
- ldr r0, [r5]
- str r4, [r0, 0x34]
- b _0803C8F8
- .align 2, 0
-_0803C8A4: .4byte gUnknown_203B400
-_0803C8A8: .4byte gGenderText
-_0803C8AC: .4byte gUnknown_80F275C
-_0803C8B0: .4byte 0x00000101
-_0803C8B4:
- adds r4, r5, 0
-_0803C8B6:
- movs r0, 0x37
- bl RandomCapped
- ldr r1, [r4]
- str r0, [r1, 0x3C]
- adds r1, 0x78
- adds r1, r0
- ldrb r0, [r1]
- cmp r0, 0x1
- beq _0803C8B6
- ldr r2, _0803C900
- ldr r1, _0803C904
- ldr r0, [r1]
- ldr r0, [r0, 0x3C]
- adds r0, r2
- ldrb r4, [r0]
- movs r3, 0
- adds r6, r1, 0
- movs r5, 0x1
-_0803C8DC:
- adds r0, r3, r2
- ldrb r0, [r0]
- cmp r0, r4
- bne _0803C8EC
- ldr r0, [r1]
- adds r0, 0x78
- adds r0, r3
- strb r5, [r0]
-_0803C8EC:
- adds r3, 0x1
- cmp r3, 0x36
- ble _0803C8DC
- ldr r1, [r6]
- movs r0, 0x1
- str r0, [r1, 0x34]
-_0803C8F8:
- add sp, 0x14
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0803C900: .4byte gNatureQuestionTable
-_0803C904: .4byte gUnknown_203B400
- thumb_func_end sub_803C870
-
- thumb_func_start sub_803C908
-sub_803C908:
- push {lr}
- bl sub_803CC04
- ldr r0, _0803C91C
- ldr r1, [r0]
- movs r0, 0x2
- str r0, [r1, 0x34]
- pop {r0}
- bx r0
- .align 2, 0
-_0803C91C: .4byte gUnknown_203B400
- thumb_func_end sub_803C908
-
- thumb_func_start sub_803C920
-sub_803C920:
- push {r4-r6,lr}
- sub sp, 0x4
- mov r0, sp
- bl sub_80144A4
- cmp r0, 0
- bne _0803C97C
- ldr r3, [sp]
- cmp r3, 0x63
- bne _0803C944
- ldr r0, _0803C940
- ldr r1, [r0]
- movs r0, 0x37
- str r0, [r1, 0x3C]
- movs r0, 0x1
- b _0803C97A
- .align 2, 0
-_0803C940: .4byte gUnknown_203B400
-_0803C944:
- ldr r1, _0803C984
- ldr r2, _0803C988
- ldr r0, [r2]
- ldr r0, [r0, 0x3C]
- lsls r0, 2
- adds r0, r1
- ldr r0, [r0]
- ldr r4, [r0, 0x8]
- lsls r0, r3, 4
- adds r4, r0
- movs r3, 0
- adds r6, r2, 0
- adds r5, r6, 0
-_0803C95E:
- ldr r1, [r5]
- lsls r0, r3, 2
- adds r1, 0x44
- adds r1, r0
- adds r0, r4, r3
- ldrb r2, [r0]
- ldr r0, [r1]
- adds r0, r2
- str r0, [r1]
- adds r3, 0x1
- cmp r3, 0xC
- ble _0803C95E
- ldr r1, [r6]
- movs r0, 0
-_0803C97A:
- str r0, [r1, 0x34]
-_0803C97C:
- add sp, 0x4
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0803C984: .4byte gPersonalityQuestionPointerTable
-_0803C988: .4byte gUnknown_203B400
- thumb_func_end sub_803C920
-
- thumb_func_start sub_803C98C
-sub_803C98C:
- push {lr}
- sub sp, 0x4
- mov r0, sp
- bl sub_80144A4
- cmp r0, 0
- bne _0803C9CA
- ldr r1, [sp]
- cmp r1, 0
- bne _0803C9AC
- ldr r0, _0803C9A8
- ldr r0, [r0]
- adds r0, 0xB0
- b _0803C9B4
- .align 2, 0
-_0803C9A8: .4byte gUnknown_203B400
-_0803C9AC:
- ldr r0, _0803C9D0
- ldr r0, [r0]
- adds r0, 0xB0
- movs r1, 0x1
-_0803C9B4:
- str r1, [r0]
- ldr r0, _0803C9D4
- ldr r0, [r0]
- strb r1, [r0, 0xB]
- movs r0, 0
- bl sub_8099690
- ldr r0, _0803C9D0
- ldr r1, [r0]
- movs r0, 0x4
- str r0, [r1, 0x34]
-_0803C9CA:
- add sp, 0x4
- pop {r0}
- bx r0
- .align 2, 0
-_0803C9D0: .4byte gUnknown_203B400
-_0803C9D4: .4byte gUnknown_203B46C
- thumb_func_end sub_803C98C
-
- thumb_func_start sub_803C9D8
-sub_803C9D8:
- push {r4-r7,lr}
- movs r0, 0xD
- bl RandomCapped
- ldr r2, _0803CA4C
- ldr r1, [r2]
- adds r1, 0x40
- strb r0, [r1]
- ldr r0, [r2]
- adds r0, 0x40
- ldrb r3, [r0]
- adds r7, r2, 0
- movs r5, 0xB
-_0803C9F2:
- adds r3, 0x1
- cmp r3, 0xC
- ble _0803C9FA
- movs r3, 0
-_0803C9FA:
- ldr r0, [r7]
- lsls r2, r3, 2
- adds r1, r0, 0
- adds r1, 0x44
- adds r2, r1, r2
- adds r4, r0, 0
- adds r4, 0x40
- ldrb r0, [r4]
- lsls r0, 2
- adds r1, r0
- ldr r2, [r2]
- ldr r0, [r1]
- ldr r6, _0803CA4C
- cmp r2, r0
- ble _0803CA1A
- strb r3, [r4]
-_0803CA1A:
- subs r5, 0x1
- cmp r5, 0
- bge _0803C9F2
- ldr r3, [r6]
- ldr r2, _0803CA50
- adds r0, r3, 0
- adds r0, 0xB0
- ldr r1, [r0]
- lsls r1, 1
- subs r0, 0x70
- ldrb r0, [r0]
- lsls r0, 2
- adds r1, r0
- adds r1, r2
- ldrh r0, [r1]
- strh r0, [r3, 0x8]
- bl sub_803CC40
- ldr r1, [r6]
- movs r0, 0x5
- str r0, [r1, 0x34]
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0803CA4C: .4byte gUnknown_203B400
-_0803CA50: .4byte gStarters
- thumb_func_end sub_803C9D8
-
- thumb_func_start sub_803CA54
-sub_803CA54:
- push {lr}
- sub sp, 0x4
- mov r0, sp
- bl sub_80144A4
- cmp r0, 0
- bne _0803CA7A
- ldr r0, _0803CA80
- ldr r3, _0803CA84
- movs r1, 0
- movs r2, 0
- bl sub_80141B4
- bl sub_803CC80
- ldr r0, _0803CA88
- ldr r1, [r0]
- movs r0, 0x6
- str r0, [r1, 0x34]
-_0803CA7A:
- add sp, 0x4
- pop {r0}
- bx r0
- .align 2, 0
-_0803CA80: .4byte gStarterReveal
-_0803CA84: .4byte 0x00000101
-_0803CA88: .4byte gUnknown_203B400
- thumb_func_end sub_803CA54
-
- thumb_func_start sub_803CA8C
-sub_803CA8C:
- push {lr}
- sub sp, 0x4
- mov r0, sp
- bl sub_80144A4
- cmp r0, 0
- bne _0803CAA2
- ldr r0, _0803CAA8
- ldr r1, [r0]
- movs r0, 0x7
- str r0, [r1, 0x34]
-_0803CAA2:
- add sp, 0x4
- pop {r0}
- bx r0
- .align 2, 0
-_0803CAA8: .4byte gUnknown_203B400
- thumb_func_end sub_803CA8C
-
- thumb_func_start sub_803CAAC
-sub_803CAAC:
- push {lr}
- ldr r0, _0803CAC8
- ldr r3, _0803CACC
- movs r1, 0
- movs r2, 0
- bl sub_80141B4
- ldr r0, _0803CAD0
- ldr r1, [r0]
- movs r0, 0x8
- str r0, [r1, 0x34]
- pop {r0}
- bx r0
- .align 2, 0
-_0803CAC8: .4byte gUnknown_80F27DC
-_0803CACC: .4byte 0x00000301
-_0803CAD0: .4byte gUnknown_203B400
- thumb_func_end sub_803CAAC
-
- thumb_func_start sub_803CAD4
-sub_803CAD4:
- push {lr}
- sub sp, 0x4
- mov r0, sp
- bl sub_80144A4
- cmp r0, 0
- bne _0803CAEA
- ldr r0, _0803CAF0
- ldr r1, [r0]
- movs r0, 0x9
- str r0, [r1, 0x34]
-_0803CAEA:
- add sp, 0x4
- pop {r0}
- bx r0
- .align 2, 0
-_0803CAF0: .4byte gUnknown_203B400
- thumb_func_end sub_803CAD4
-
- thumb_func_start sub_803CAF4
-sub_803CAF4:
- push {r4,lr}
- ldr r4, _0803CB10
- ldr r0, [r4]
- movs r1, 0x8
- ldrsh r0, [r0, r1]
- bl sub_803CD08
- ldr r1, [r4]
- movs r0, 0xA
- str r0, [r1, 0x34]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0803CB10: .4byte gUnknown_203B400
- thumb_func_end sub_803CAF4
-
- thumb_func_start sub_803CB14
-sub_803CB14:
- push {r4,r5,lr}
- bl sub_803CDC0
- lsls r0, 16
- lsrs r5, r0, 16
- ldr r0, _0803CB4C
- cmp r5, r0
- beq _0803CB46
- subs r0, 0x1
- cmp r5, r0
- beq _0803CB46
- bl sub_803CE6C
- ldr r4, _0803CB50
- ldr r0, [r4]
- strh r5, [r0, 0xA]
- ldr r0, _0803CB54
- ldr r3, _0803CB58
- movs r1, 0
- movs r2, 0
- bl sub_80141B4
- ldr r1, [r4]
- movs r0, 0xB
- str r0, [r1, 0x34]
-_0803CB46:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0803CB4C: .4byte 0x0000ffff
-_0803CB50: .4byte gUnknown_203B400
-_0803CB54: .4byte gUnknown_80F286C
-_0803CB58: .4byte 0x00000301
- thumb_func_end sub_803CB14
-
- thumb_func_start sub_803CB5C
-sub_803CB5C:
- push {lr}
- sub sp, 0x4
- mov r0, sp
- bl sub_80144A4
- cmp r0, 0
- bne _0803CB72
- ldr r0, _0803CB78
- ldr r1, [r0]
- movs r0, 0xC
- str r0, [r1, 0x34]
-_0803CB72:
- add sp, 0x4
- pop {r0}
- bx r0
- .align 2, 0
-_0803CB78: .4byte gUnknown_203B400
- thumb_func_end sub_803CB5C
-
- thumb_func_start sub_803CB7C
-sub_803CB7C:
- push {r4,r5,lr}
- ldr r4, _0803CBAC
- ldr r0, [r4]
- adds r5, r0, 0
- adds r5, 0x20
- movs r1, 0xA
- ldrsh r0, [r0, r1]
- bl sub_808D994
- adds r1, r0, 0
- adds r0, r5, 0
- bl sub_80922F4
- ldr r1, [r4]
- adds r1, 0x20
- movs r0, 0x3
- bl sub_801602C
- ldr r1, [r4]
- movs r0, 0xD
- str r0, [r1, 0x34]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0803CBAC: .4byte gUnknown_203B400
- thumb_func_end sub_803CB7C
-
- thumb_func_start sub_803CBB0
-sub_803CBB0:
- push {lr}
- bl sub_8016080
- cmp r0, 0
- beq _0803CBD2
- bl sub_80160D8
- ldr r0, _0803CBD8
- ldr r3, _0803CBDC
- movs r1, 0
- movs r2, 0
- bl sub_80141B4
- ldr r0, _0803CBE0
- ldr r1, [r0]
- movs r0, 0xE
- str r0, [r1, 0x34]
-_0803CBD2:
- pop {r0}
- bx r0
- .align 2, 0
-_0803CBD8: .4byte gUnknown_80F2898
-_0803CBDC: .4byte 0x00000301
-_0803CBE0: .4byte gUnknown_203B400
- thumb_func_end sub_803CBB0
-
- thumb_func_start sub_803CBE4
-sub_803CBE4:
- push {lr}
- sub sp, 0x4
- mov r0, sp
- bl sub_80144A4
- cmp r0, 0
- bne _0803CBFA
- ldr r0, _0803CC00
- ldr r1, [r0]
- movs r0, 0xF
- str r0, [r1, 0x34]
-_0803CBFA:
- add sp, 0x4
- pop {r0}
- bx r0
- .align 2, 0
-_0803CC00: .4byte gUnknown_203B400
- thumb_func_end sub_803CBE4
-
- thumb_func_start sub_803CC04
-sub_803CC04:
- push {lr}
- sub sp, 0x14
- ldr r1, _0803CC38
- ldr r0, _0803CC3C
- ldr r0, [r0]
- ldr r0, [r0, 0x3C]
- lsls r0, 2
- adds r0, r1
- ldr r1, [r0]
- ldr r0, [r1]
- ldr r3, [r1, 0x4]
- movs r2, 0
- str r2, [sp]
- movs r1, 0x3
- str r1, [sp, 0x4]
- str r2, [sp, 0x8]
- str r2, [sp, 0xC]
- adds r1, 0xFE
- str r1, [sp, 0x10]
- movs r1, 0
- bl sub_8014248
- add sp, 0x14
- pop {r0}
- bx r0
- .align 2, 0
-_0803CC38: .4byte gPersonalityQuestionPointerTable
-_0803CC3C: .4byte gUnknown_203B400
- thumb_func_end sub_803CC04
-
- thumb_func_start sub_803CC40
-sub_803CC40:
- push {r4,lr}
- ldr r0, _0803CC70
- ldr r4, _0803CC74
- ldr r1, [r4]
- movs r2, 0x8
- ldrsh r1, [r1, r2]
- bl sub_808D8BC
- ldr r1, _0803CC78
- ldr r0, [r4]
- adds r0, 0x40
- ldrb r0, [r0]
- lsls r0, 2
- adds r0, r1
- ldr r0, [r0]
- ldr r3, _0803CC7C
- movs r1, 0
- movs r2, 0
- bl sub_80141B4
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0803CC70: .4byte gUnknown_202DF98
-_0803CC74: .4byte gUnknown_203B400
-_0803CC78: .4byte gPersonalityTypeDescriptionTable
-_0803CC7C: .4byte 0x00000101
- thumb_func_end sub_803CC40
-
- thumb_func_start sub_803CC80
-sub_803CC80:
- push {r4-r7,lr}
- sub sp, 0x60
- ldr r0, _0803CD00
- ldr r0, [r0]
- movs r1, 0x8
- ldrsh r4, [r0, r1]
- mov r0, sp
- bl sub_8006518
- add r1, sp, 0x18
- ldr r0, _0803CD04
- ldm r0!, {r2,r3,r5}
- stm r1!, {r2,r3,r5}
- ldm r0!, {r2,r3,r5}
- stm r1!, {r2,r3,r5}
- bl sub_8004914
- mov r0, sp
- movs r1, 0x1
- movs r2, 0
- bl sub_800641C
- movs r0, 0x1
- bl sub_8008C54
- movs r0, 0x1
- bl sub_80073B8
- adds r0, r4, 0
- bl sub_808DDD0
- adds r5, r0, 0
- ldr r0, [r5, 0x4]
- ldr r6, [r0, 0xC]
- movs r4, 0
- movs r7, 0x8
-_0803CCC8:
- adds r0, r4, 0
- adds r0, 0xE0
- ldr r1, [r5, 0x4]
- adds r1, r7
- lsls r2, r4, 2
- ldr r1, [r1]
- adds r1, r2
- bl SetBGPaletteBufferColorArray
- adds r4, 0x1
- cmp r4, 0xF
- ble _0803CCC8
- movs r0, 0x1
- adds r1, r6, 0
- movs r2, 0xE
- bl sub_800836C
- adds r0, r5, 0
- bl CloseFile
- movs r0, 0x1
- bl sub_80073E0
- add sp, 0x60
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0803CD00: .4byte gUnknown_203B400
-_0803CD04: .4byte gUnknown_80F4244
- thumb_func_end sub_803CC80
-
- thumb_func_start sub_803CD08
-sub_803CD08:
- push {r4-r7,lr}
- adds r4, r0, 0
- lsls r4, 16
- asrs r4, 16
- bl sub_803CEAC
- ldr r5, _0803CDB0
- ldr r0, [r5]
- movs r3, 0
- movs r1, 0
- strh r4, [r0]
- str r1, [r0, 0x4C]
- adds r1, r0, 0
- adds r1, 0x54
- str r1, [r0, 0x50]
- ldr r0, _0803CDB4
- ldm r0!, {r2,r4,r6}
- stm r1!, {r2,r4,r6}
- ldm r0!, {r2,r4,r7}
- stm r1!, {r2,r4,r7}
- ldr r1, [r5]
- adds r1, 0x6C
- ldr r0, _0803CDB8
- ldm r0!, {r2,r6,r7}
- stm r1!, {r2,r6,r7}
- ldm r0!, {r4,r6,r7}
- stm r1!, {r4,r6,r7}
- ldr r1, [r5]
- ldr r2, _0803CDBC
- adds r1, 0x84
- adds r0, r2, 0
- ldm r0!, {r4,r6,r7}
- stm r1!, {r4,r6,r7}
- ldm r0!, {r4,r6,r7}
- stm r1!, {r4,r6,r7}
- ldr r0, [r5]
- adds r0, 0x9C
- ldm r2!, {r1,r4,r6}
- stm r0!, {r1,r4,r6}
- ldm r2!, {r1,r4,r7}
- stm r0!, {r1,r4,r7}
- ldr r0, [r5]
- ldr r1, [r0, 0x50]
- adds r0, 0xB4
- str r0, [r1, 0x14]
- movs r1, 0x1
- strb r1, [r0]
- ldr r0, [r5]
- adds r0, 0xB5
- strb r3, [r0]
- ldr r0, [r5]
- adds r0, 0xB6
- movs r1, 0x6
- strb r1, [r0]
- ldr r0, [r5]
- adds r0, 0xB7
- strb r3, [r0]
- bl sub_8004914
- ldr r0, [r5]
- adds r0, 0x54
- movs r1, 0x1
- movs r2, 0x1
- bl sub_800641C
- ldr r4, [r5]
- adds r4, 0x18
- bl sub_803D030
- adds r1, r0, 0
- ldr r0, [r5]
- ldr r3, [r0, 0x4C]
- adds r0, r4, 0
- movs r2, 0xA
- bl sub_8013818
- bl sub_803CEF0
- bl sub_803CFC0
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0803CDB0: .4byte gUnknown_203B404
-_0803CDB4: .4byte gUnknown_80F4290
-_0803CDB8: .4byte gUnknown_80F42A8
-_0803CDBC: .4byte gUnknown_80F4278
- thumb_func_end sub_803CD08
-
- thumb_func_start sub_803CDC0
-sub_803CDC0:
- push {r4,r5,lr}
- ldr r4, _0803CDF0
- ldr r1, [r4]
- movs r0, 0x30
- ldrsh r5, [r1, r0]
- movs r0, 0
- strb r0, [r1, 0x16]
- ldr r0, [r4]
- adds r0, 0x18
- bl GetKeyPress
- cmp r0, 0x1
- bne _0803CDF4
- movs r0, 0
- bl sub_80119D4
- ldr r0, [r4]
- movs r2, 0x30
- ldrsh r1, [r0, r2]
- lsls r1, 1
- adds r0, 0x2
- adds r0, r1
- ldrh r0, [r0]
- b _0803CE2A
- .align 2, 0
-_0803CDF0: .4byte gUnknown_203B404
-_0803CDF4:
- ldr r0, [r4]
- adds r0, 0x18
- movs r1, 0x1
- bl sub_80138B8
- lsls r0, 24
- cmp r0, 0
- beq _0803CE08
- bl sub_803CEF0
-_0803CE08:
- ldr r0, [r4]
- movs r1, 0x30
- ldrsh r0, [r0, r1]
- cmp r5, r0
- beq _0803CE16
- bl sub_803CFC0
-_0803CE16:
- ldr r0, [r4]
- ldrb r0, [r0, 0x16]
- cmp r0, 0
- bne _0803CE28
- ldr r0, _0803CE24
- b _0803CE2A
- .align 2, 0
-_0803CE24: .4byte 0x0000ffff
-_0803CE28:
- ldr r0, _0803CE30
-_0803CE2A:
- pop {r4,r5}
- pop {r1}
- bx r1
- .align 2, 0
-_0803CE30: .4byte 0x0000fffe
- thumb_func_end sub_803CDC0
-
- thumb_func_start sub_803CE34
-sub_803CE34:
- push {r4,r5,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- bl sub_803D030
- adds r1, r0, 0
- ldr r5, _0803CE68
- ldr r0, [r5]
- strh r1, [r0, 0x3A]
- adds r0, 0x18
- bl sub_8013984
- bl sub_803CEF0
- bl sub_803CFC0
- cmp r4, 0
- beq _0803CE62
- ldr r0, [r5]
- adds r0, 0x18
- bl AddMenuCursorSprite
-_0803CE62:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0803CE68: .4byte gUnknown_203B404
- thumb_func_end sub_803CE34
-
- thumb_func_start sub_803CE6C
-sub_803CE6C:
- push {r4,r5,lr}
- ldr r4, _0803CEA4
- ldr r1, [r4]
- ldr r2, [r1, 0x4C]
- lsls r0, r2, 1
- adds r0, r2
- lsls r0, 3
- adds r1, r0
- adds r1, 0x54
- ldr r0, _0803CEA8
- ldm r0!, {r2,r3,r5}
- stm r1!, {r2,r3,r5}
- ldm r0!, {r2,r3,r5}
- stm r1!, {r2,r3,r5}
- bl sub_8004914
- ldr r0, [r4]
- adds r0, 0x54
- movs r1, 0x1
- movs r2, 0x1
- bl sub_800641C
- bl sub_803CECC
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0803CEA4: .4byte gUnknown_203B404
-_0803CEA8: .4byte gUnknown_80F4278
- thumb_func_end sub_803CE6C
-
- thumb_func_start sub_803CEAC
-sub_803CEAC:
- push {r4,lr}
- ldr r4, _0803CEC4
- movs r0, 0xB8
- movs r1, 0x8
- bl MemoryAlloc
- str r0, [r4]
- bl nullsub_135
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0803CEC4: .4byte gUnknown_203B404
- thumb_func_end sub_803CEAC
-
- thumb_func_start nullsub_135
-nullsub_135:
- bx lr
- thumb_func_end nullsub_135
-
- thumb_func_start sub_803CECC
-sub_803CECC:
- push {r4,lr}
- ldr r4, _0803CEEC
- ldr r0, [r4]
- cmp r0, 0
- beq _0803CEE4
- bl nullsub_135
- ldr r0, [r4]
- bl MemoryFree
- movs r0, 0
- str r0, [r4]
-_0803CEE4:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0803CEEC: .4byte gUnknown_203B404
- thumb_func_end sub_803CECC
-
- thumb_func_start sub_803CEF0
-sub_803CEF0:
- push {r4-r6,lr}
- sub sp, 0x4
- ldr r6, _0803CF60
- ldr r0, [r6]
- movs r1, 0x32
- ldrsh r0, [r0, r1]
- movs r1, 0xC
- bl sub_80095E4
- adds r0, 0x2
- lsls r0, 16
- ldr r2, [r6]
- ldr r3, [r2, 0x4C]
- lsls r1, r3, 1
- adds r1, r3
- lsls r1, 3
- adds r1, r2, r1
- adds r1, 0x62
- movs r4, 0
- asrs r3, r0, 16
- lsrs r0, 16
- strh r0, [r1]
- ldr r1, [r2, 0x4C]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 3
- adds r2, r0
- adds r3, 0x2
- adds r2, 0x64
- strh r3, [r2]
- bl sub_8004914
- ldr r0, [r6]
- adds r0, 0x54
- movs r1, 0x1
- movs r2, 0x1
- bl sub_800641C
- ldr r0, [r6]
- ldr r0, [r0, 0x4C]
- bl sub_8008C54
- ldr r0, [r6]
- ldr r0, [r0, 0x4C]
- bl sub_80073B8
- ldr r2, _0803CF64
- ldr r0, [r6]
- ldr r3, [r0, 0x4C]
- str r4, [sp]
- movs r0, 0xC
- movs r1, 0
- bl xxx_call_draw_string
- movs r5, 0
- b _0803CF98
- .align 2, 0
-_0803CF60: .4byte gUnknown_203B404
-_0803CF64: .4byte gUnknown_80F42C0
-_0803CF68:
- ldr r0, [r6]
- adds r0, 0x18
- adds r1, r5, 0
- bl sub_8013800
- adds r4, r0, 0
- ldr r0, [r6]
- lsls r1, r5, 1
- adds r0, 0x2
- adds r0, r1
- movs r1, 0
- ldrsh r0, [r0, r1]
- bl sub_808D994
- adds r2, r0, 0
- ldr r0, [r6]
- ldr r3, [r0, 0x4C]
- movs r0, 0
- str r0, [sp]
- movs r0, 0x8
- adds r1, r4, 0
- bl xxx_call_draw_string
- adds r5, 0x1
-_0803CF98:
- ldr r0, [r6]
- movs r1, 0x32
- ldrsh r0, [r0, r1]
- cmp r5, r0
- blt _0803CF68
- ldr r4, _0803CFBC
- ldr r0, [r4]
- ldr r0, [r0, 0x4C]
- bl sub_80073E0
- ldr r1, [r4]
- movs r0, 0x1
- strb r0, [r1, 0x16]
- add sp, 0x4
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0803CFBC: .4byte gUnknown_203B404
- thumb_func_end sub_803CEF0
-
- thumb_func_start sub_803CFC0
-sub_803CFC0:
- push {r4-r7,lr}
- ldr r0, _0803D02C
- ldr r0, [r0]
- movs r2, 0x30
- ldrsh r1, [r0, r2]
- lsls r1, 1
- adds r0, 0x2
- adds r0, r1
- movs r1, 0
- ldrsh r4, [r0, r1]
- movs r0, 0x1
- bl sub_8008C54
- movs r0, 0x1
- bl sub_80073B8
- adds r0, r4, 0
- bl sub_808DDD0
- adds r5, r0, 0
- ldr r0, [r5, 0x4]
- ldr r6, [r0, 0x4]
- movs r4, 0
- movs r7, 0
-_0803CFF0:
- adds r0, r4, 0
- adds r0, 0xE0
- ldr r1, [r5, 0x4]
- adds r1, r7
- lsls r2, r4, 2
- ldr r1, [r1]
- adds r1, r2
- bl SetBGPaletteBufferColorArray
- adds r4, 0x1
- cmp r4, 0xF
- ble _0803CFF0
- movs r0, 0x1
- adds r1, r6, 0
- movs r2, 0xE
- bl sub_800836C
- adds r0, r5, 0
- bl CloseFile
- movs r0, 0x1
- bl sub_80073E0
- ldr r0, _0803D02C
- ldr r1, [r0]
- movs r0, 0x1
- strb r0, [r1, 0x16]
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0803D02C: .4byte gUnknown_203B404
- thumb_func_end sub_803CFC0
-
- thumb_func_start sub_803D030
-sub_803D030:
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x8
- movs r0, 0
- mov r8, r0
- ldr r4, _0803D0D0
- ldr r0, [r4]
- movs r1, 0
- ldrsh r0, [r0, r1]
- movs r1, 0
- bl sub_808DC68
- mov r1, sp
- strb r0, [r1]
- ldr r0, [r4]
- movs r2, 0
- ldrsh r0, [r0, r2]
- movs r1, 0x1
- bl sub_808DC68
- mov r1, sp
- strb r0, [r1, 0x1]
- movs r7, 0
- add r6, sp, 0x4
- mov r5, sp
-_0803D064:
- ldr r0, _0803D0D4
- lsls r1, r7, 1
- adds r1, r0
- movs r0, 0
- ldrsh r4, [r1, r0]
- adds r0, r4, 0
- movs r1, 0
- bl sub_808DC68
- strb r0, [r6]
- adds r0, r4, 0
- movs r1, 0x1
- bl sub_808DC68
- adds r2, r0, 0
- strb r2, [r6, 0x1]
- ldrb r1, [r6]
- cmp r1, 0
- beq _0803D096
- ldrb r0, [r5]
- cmp r1, r0
- beq _0803D0BC
- ldrb r0, [r5, 0x1]
- cmp r1, r0
- beq _0803D0BC
-_0803D096:
- lsls r0, r2, 24
- lsrs r1, r0, 24
- cmp r1, 0
- beq _0803D0AA
- ldrb r2, [r5]
- cmp r1, r2
- beq _0803D0BC
- ldrb r0, [r5, 0x1]
- cmp r1, r0
- beq _0803D0BC
-_0803D0AA:
- ldr r0, _0803D0D0
- ldr r0, [r0]
- mov r2, r8
- lsls r1, r2, 1
- adds r0, 0x2
- adds r0, r1
- strh r4, [r0]
- movs r0, 0x1
- add r8, r0
-_0803D0BC:
- adds r7, 0x1
- cmp r7, 0x9
- ble _0803D064
- mov r0, r8
- add sp, 0x8
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_0803D0D0: .4byte gUnknown_203B404
-_0803D0D4: .4byte gPartners
- thumb_func_end sub_803D030
-
.align 2,0
diff --git a/asm/code_80428A0.s b/asm/code_80428A0.s
index 85b2ec5..ab7f48a 100644
--- a/asm/code_80428A0.s
+++ b/asm/code_80428A0.s
@@ -2181,7 +2181,7 @@ _08043CD4: .4byte gUnknown_203B41C
thumb_func_start sub_8043CD8
sub_8043CD8:
push {lr}
- bl sub_8009804
+ bl vram_related_8009804
pop {r0}
bx r0
thumb_func_end sub_8043CD8
diff --git a/asm/code_8095014.s b/asm/code_8095014.s
index 297aafd..7a3d217 100644
--- a/asm/code_8095014.s
+++ b/asm/code_8095014.s
@@ -4817,1523 +4817,4 @@ _08097470:
_08097478: .4byte gStoryMissionText
thumb_func_end sub_8097418
- thumb_func_start sub_809747C
-sub_809747C:
- push {lr}
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0xD
- beq _08097494
- bl sub_80A270C
- lsls r0, 24
- lsrs r0, 24
- bl GetDungeonName1
- b _08097496
-_08097494:
- ldr r0, _0809749C
-_08097496:
- pop {r1}
- bx r1
- .align 2, 0
-_0809749C: .4byte gDummyScenarioText
- thumb_func_end sub_809747C
-
- thumb_func_start sub_80974A0
-sub_80974A0:
- push {lr}
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0xD
- beq _080974B8
- bl sub_80A270C
- lsls r0, 24
- lsrs r0, 24
- bl GetDungeonName1
- b _080974BA
-_080974B8:
- ldr r0, _080974C0
-_080974BA:
- pop {r1}
- bx r1
- .align 2, 0
-_080974C0: .4byte gDummyScenarioText
- thumb_func_end sub_80974A0
-
- thumb_func_start sub_80974C4
-sub_80974C4:
- push {lr}
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1E
- ble _080974D8
- ldr r0, _080974D4
- b _080974E0
- .align 2, 0
-_080974D4: .4byte gUnknown_8109CC0
-_080974D8:
- lsls r0, 3
- ldr r1, _080974E4
- adds r0, r1
- ldr r0, [r0]
-_080974E0:
- pop {r1}
- bx r1
- .align 2, 0
-_080974E4: .4byte gStoryMissionText
- thumb_func_end sub_80974C4
-
- thumb_func_start sub_80974E8
-sub_80974E8:
- push {lr}
- movs r0, 0
- movs r1, 0x2E
- bl sub_80015C0
- movs r0, 0
- movs r1, 0x2F
- bl sub_80015C0
- pop {r0}
- bx r0
- thumb_func_end sub_80974E8
-
- thumb_func_start nullsub_208
-nullsub_208:
- bx lr
- thumb_func_end nullsub_208
-
- thumb_func_start sub_8097504
-sub_8097504:
- push {lr}
- lsls r0, 16
- asrs r0, 16
- adds r1, r0, 0
- cmp r0, 0x10
- bgt _08097568
- cmp r0, 0xE
- bhi _08097580
- lsls r0, 2
- ldr r1, _08097520
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08097520: .4byte _08097524
- .align 2, 0
-_08097524:
- .4byte _08097564
- .4byte _08097564
- .4byte _08097560
- .4byte _08097580
- .4byte _08097580
- .4byte _08097564
- .4byte _08097580
- .4byte _08097564
- .4byte _08097580
- .4byte _08097564
- .4byte _08097560
- .4byte _08097560
- .4byte _08097560
- .4byte _08097574
- .4byte _08097564
-_08097560:
- movs r0, 0xE
- b _08097576
-_08097564:
- movs r0, 0xF
- b _08097576
-_08097568:
- cmp r1, 0x16
- bgt _08097584
- cmp r1, 0x16
- beq _08097584
- cmp r1, 0x15
- beq _08097584
-_08097574:
- movs r0, 0x6
-_08097576:
- bl sub_80023E4
- lsls r0, 24
- cmp r0, 0
- beq _08097584
-_08097580:
- movs r0, 0x1
- b _08097586
-_08097584:
- movs r0, 0
-_08097586:
- pop {r1}
- bx r1
- thumb_func_end sub_8097504
-
- thumb_func_start sub_809758C
-sub_809758C:
- push {lr}
- adds r2, r0, 0
- lsls r2, 16
- lsrs r2, 16
- movs r0, 0
- movs r1, 0x2E
- bl sub_8001784
- cmp r0, 0
- beq _080975A2
- movs r0, 0x1
-_080975A2:
- pop {r1}
- bx r1
- thumb_func_end sub_809758C
-
- thumb_func_start sub_80975A8
-sub_80975A8:
- push {lr}
- adds r2, r0, 0
- adds r3, r1, 0
- lsls r3, 24
- lsrs r3, 24
- lsls r2, 16
- lsrs r2, 16
- movs r0, 0
- movs r1, 0x2E
- bl sub_800199C
- pop {r0}
- bx r0
- thumb_func_end sub_80975A8
-
- thumb_func_start sub_80975C4
-sub_80975C4:
- push {lr}
- lsls r0, 16
- asrs r0, 16
- bl sub_80A2728
- lsls r0, 24
- lsrs r0, 24
- bl GetDungeonName1
- pop {r1}
- bx r1
- thumb_func_end sub_80975C4
-
- thumb_func_start sub_80975DC
-sub_80975DC:
- push {lr}
- lsls r0, 16
- ldr r1, _08097600
- adds r0, r1
- lsrs r0, 16
- cmp r0, 0x1
- bhi _08097610
- movs r2, 0x1
- negs r2, r2
- movs r0, 0x3
- movs r1, 0xE
- bl sub_8001D08
- lsls r0, 24
- cmp r0, 0
- beq _08097608
- ldr r0, _08097604
- b _08097612
- .align 2, 0
-_08097600: .4byte 0xffe90000
-_08097604: .4byte gMeetNinetalesText
-_08097608:
- ldr r0, _0809760C
- b _08097612
- .align 2, 0
-_0809760C: .4byte gAvoidCaptureText
-_08097610:
- ldr r0, _08097618
-_08097612:
- pop {r1}
- bx r1
- .align 2, 0
-_08097618: .4byte gFinalScenarioText
- thumb_func_end sub_80975DC
-
- thumb_func_start sub_809761C
-sub_809761C:
- push {r4,lr}
- movs r4, 0
-_08097620:
- lsls r0, r4, 16
- asrs r0, 16
- bl sub_809758C
- lsls r0, 24
- cmp r0, 0
- bne _08097632
- movs r0, 0
- b _0809763A
-_08097632:
- adds r4, 0x1
- cmp r4, 0x10
- ble _08097620
- movs r0, 0x1
-_0809763A:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_809761C
-
- thumb_func_start sub_8097640
-sub_8097640:
- push {lr}
- movs r0, 0
- movs r1, 0x2E
- movs r2, 0x1F
- bl sub_8001784
- cmp r0, 0
- bne _0809766A
- bl sub_809761C
- lsls r0, 24
- cmp r0, 0
- beq _0809766A
- movs r0, 0
- movs r1, 0x2E
- movs r2, 0x1F
- movs r3, 0x1
- bl sub_800199C
- movs r0, 0x1
- b _0809766C
-_0809766A:
- movs r0, 0
-_0809766C:
- pop {r1}
- bx r1
- thumb_func_end sub_8097640
-
- thumb_func_start sub_8097670
-sub_8097670:
- ldr r1, _08097678
- ldr r0, _0809767C
- str r0, [r1]
- bx lr
- .align 2, 0
-_08097678: .4byte gUnknown_203B494
-_0809767C: .4byte gUnknown_2039778
- thumb_func_end sub_8097670
-
- thumb_func_start sub_8097680
-sub_8097680:
- ldr r0, _08097684
- bx lr
- .align 2, 0
-_08097684: .4byte gUnknown_2039778
- thumb_func_end sub_8097680
-
- thumb_func_start sub_8097688
-sub_8097688:
- ldr r3, _08097698
- ldr r2, [r3]
- ldrb r1, [r0]
- strb r1, [r2, 0x10]
- ldr r1, [r3]
- ldrb r0, [r0, 0x1]
- strb r0, [r1, 0x11]
- bx lr
- .align 2, 0
-_08097698: .4byte gUnknown_203B494
- thumb_func_end sub_8097688
-
- thumb_func_start sub_809769C
-sub_809769C:
- ldr r0, _080976A4
- ldr r0, [r0]
- adds r0, 0x10
- bx lr
- .align 2, 0
-_080976A4: .4byte gUnknown_203B494
- thumb_func_end sub_809769C
-
- thumb_func_start sub_80976A8
-sub_80976A8:
- push {r4,lr}
- ldr r3, _080976F4
- ldr r1, [r3]
- movs r0, 0
- str r0, [r1]
- strh r0, [r1, 0x14]
- strh r0, [r1, 0x16]
- strh r0, [r1, 0x18]
- adds r2, r1, 0
- adds r2, 0xC0
- str r0, [r2]
- str r0, [r1, 0x8]
- str r0, [r1, 0xC]
- movs r2, 0
- adds r4, r3, 0
- movs r3, 0
-_080976C8:
- ldr r0, [r4]
- lsls r1, r2, 2
- adds r0, 0x1C
- adds r0, r1
- str r3, [r0]
- adds r2, 0x1
- cmp r2, 0xD
- ble _080976C8
- movs r2, 0
- ldr r4, _080976F4
- movs r3, 0
-_080976DE:
- ldr r0, [r4]
- lsls r1, r2, 2
- adds r0, 0x8C
- adds r0, r1
- str r3, [r0]
- adds r2, 0x1
- cmp r2, 0xC
- ble _080976DE
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080976F4: .4byte gUnknown_203B494
- thumb_func_end sub_80976A8
-
- thumb_func_start sub_80976F8
-sub_80976F8:
- lsls r0, 24
- lsrs r0, 24
- ldr r1, _0809770C
- ldr r2, [r1]
- movs r1, 0x1
- lsls r1, r0
- ldr r0, [r2]
- orrs r0, r1
- str r0, [r2]
- bx lr
- .align 2, 0
-_0809770C: .4byte gUnknown_203B494
- thumb_func_end sub_80976F8
-
- thumb_func_start sub_8097710
-sub_8097710:
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r1, _0809772C
- ldr r2, [r1]
- movs r1, 0x1
- lsls r1, r0
- ldr r0, [r2]
- ands r0, r1
- cmp r0, 0
- bne _08097730
- movs r0, 0
- b _08097732
- .align 2, 0
-_0809772C: .4byte gUnknown_203B494
-_08097730:
- movs r0, 0x1
-_08097732:
- pop {r1}
- bx r1
- thumb_func_end sub_8097710
-
- thumb_func_start sub_8097738
-sub_8097738:
- lsls r0, 24
- ldr r1, _08097744
- lsrs r0, 22
- adds r0, r1
- ldr r0, [r0]
- bx lr
- .align 2, 0
-_08097744: .4byte gAdventureLogText
- thumb_func_end sub_8097738
-
- thumb_func_start sub_8097748
-sub_8097748:
- ldr r0, _08097754
- ldr r1, [r0]
- movs r0, 0
- str r0, [r1, 0x4]
- bx lr
- .align 2, 0
-_08097754: .4byte gUnknown_203B494
- thumb_func_end sub_8097748
-
- thumb_func_start sub_8097758
-sub_8097758:
- push {lr}
- ldr r0, _08097770
- ldr r1, [r0]
- ldr r0, [r1, 0x4]
- adds r0, 0x1
- str r0, [r1, 0x4]
- ldr r2, _08097774
- cmp r0, r2
- ble _0809776C
- str r2, [r1, 0x4]
-_0809776C:
- pop {r0}
- bx r0
- .align 2, 0
-_08097770: .4byte gUnknown_203B494
-_08097774: .4byte 0x0001869f
- thumb_func_end sub_8097758
-
- thumb_func_start sub_8097778
-sub_8097778:
- ldr r0, _08097780
- ldr r0, [r0]
- ldr r0, [r0, 0x4]
- bx lr
- .align 2, 0
-_08097780: .4byte gUnknown_203B494
- thumb_func_end sub_8097778
-
- thumb_func_start sub_8097784
-sub_8097784:
- ldr r1, _0809778C
- ldr r1, [r1]
- str r0, [r1, 0x4]
- bx lr
- .align 2, 0
-_0809778C: .4byte gUnknown_203B494
- thumb_func_end sub_8097784
-
- thumb_func_start sub_8097790
-sub_8097790:
- push {lr}
- ldr r0, _080977B0
- ldr r1, [r0]
- ldr r0, [r1, 0x8]
- adds r0, 0x1
- str r0, [r1, 0x8]
- ldr r2, _080977B4
- cmp r0, r2
- ble _080977A4
- str r2, [r1, 0x8]
-_080977A4:
- movs r0, 0x8
- bl sub_80976F8
- pop {r0}
- bx r0
- .align 2, 0
-_080977B0: .4byte gUnknown_203B494
-_080977B4: .4byte 0x0001869f
- thumb_func_end sub_8097790
-
- thumb_func_start sub_80977B8
-sub_80977B8:
- ldr r0, _080977C0
- ldr r0, [r0]
- ldr r0, [r0, 0x8]
- bx lr
- .align 2, 0
-_080977C0: .4byte gUnknown_203B494
- thumb_func_end sub_80977B8
-
- thumb_func_start sub_80977C4
-sub_80977C4:
- ldr r1, _080977CC
- ldr r1, [r1]
- str r0, [r1, 0x8]
- bx lr
- .align 2, 0
-_080977CC: .4byte gUnknown_203B494
- thumb_func_end sub_80977C4
-
- thumb_func_start sub_80977D0
-sub_80977D0:
- push {lr}
- ldr r0, _080977F0
- ldr r1, [r0]
- ldr r0, [r1, 0xC]
- adds r0, 0x1
- str r0, [r1, 0xC]
- ldr r2, _080977F4
- cmp r0, r2
- ble _080977E4
- str r2, [r1, 0xC]
-_080977E4:
- movs r0, 0x9
- bl sub_80976F8
- pop {r0}
- bx r0
- .align 2, 0
-_080977F0: .4byte gUnknown_203B494
-_080977F4: .4byte 0x0001869f
- thumb_func_end sub_80977D0
-
- thumb_func_start sub_80977F8
-sub_80977F8:
- ldr r0, _08097800
- ldr r0, [r0]
- ldr r0, [r0, 0xC]
- bx lr
- .align 2, 0
-_08097800: .4byte gUnknown_203B494
- thumb_func_end sub_80977F8
-
- thumb_func_start sub_8097804
-sub_8097804:
- ldr r1, _0809780C
- ldr r1, [r1]
- str r0, [r1, 0xC]
- bx lr
- .align 2, 0
-_0809780C: .4byte gUnknown_203B494
- thumb_func_end sub_8097804
-
- thumb_func_start sub_8097810
-sub_8097810:
- push {lr}
- ldr r0, _08097830
- ldr r2, [r0]
- ldrh r3, [r2, 0x14]
- movs r0, 0x14
- ldrsh r1, [r2, r0]
- ldr r0, _08097834
- cmp r1, r0
- bgt _08097826
- adds r0, r3, 0x1
- strh r0, [r2, 0x14]
-_08097826:
- movs r0, 0xB
- bl sub_80976F8
- pop {r0}
- bx r0
- .align 2, 0
-_08097830: .4byte gUnknown_203B494
-_08097834: .4byte 0x0000270e
- thumb_func_end sub_8097810
-
- thumb_func_start sub_8097838
-sub_8097838:
- ldr r0, _08097844
- ldr r0, [r0]
- movs r1, 0x14
- ldrsh r0, [r0, r1]
- bx lr
- .align 2, 0
-_08097844: .4byte gUnknown_203B494
- thumb_func_end sub_8097838
-
- thumb_func_start sub_8097848
-sub_8097848:
- push {lr}
- ldr r0, _08097868
- ldr r2, [r0]
- ldrh r3, [r2, 0x16]
- movs r0, 0x16
- ldrsh r1, [r2, r0]
- ldr r0, _0809786C
- cmp r1, r0
- bgt _0809785E
- adds r0, r3, 0x1
- strh r0, [r2, 0x16]
-_0809785E:
- movs r0, 0xA
- bl sub_80976F8
- pop {r0}
- bx r0
- .align 2, 0
-_08097868: .4byte gUnknown_203B494
-_0809786C: .4byte 0x0000270e
- thumb_func_end sub_8097848
-
- thumb_func_start sub_8097870
-sub_8097870:
- ldr r0, _0809787C
- ldr r0, [r0]
- movs r1, 0x16
- ldrsh r0, [r0, r1]
- bx lr
- .align 2, 0
-_0809787C: .4byte gUnknown_203B494
- thumb_func_end sub_8097870
-
- thumb_func_start sub_8097880
-sub_8097880:
- ldr r0, _0809788C
- ldr r0, [r0]
- movs r1, 0x18
- ldrsh r0, [r0, r1]
- bx lr
- .align 2, 0
-_0809788C: .4byte gUnknown_203B494
- thumb_func_end sub_8097880
-
- thumb_func_start sub_8097890
-sub_8097890:
- push {lr}
- ldr r0, _080978B0
- ldr r0, [r0]
- adds r2, r0, 0
- adds r2, 0xC0
- ldr r1, [r2]
- ldr r0, _080978B4
- cmp r1, r0
- bgt _080978A6
- adds r0, r1, 0x1
- str r0, [r2]
-_080978A6:
- movs r0, 0xC
- bl sub_80976F8
- pop {r0}
- bx r0
- .align 2, 0
-_080978B0: .4byte gUnknown_203B494
-_080978B4: .4byte 0x0001869e
- thumb_func_end sub_8097890
-
- thumb_func_start sub_80978B8
-sub_80978B8:
- ldr r0, _080978C4
- ldr r0, [r0]
- adds r0, 0xC0
- movs r1, 0
- ldrsh r0, [r0, r1]
- bx lr
- .align 2, 0
-_080978C4: .4byte gUnknown_203B494
- thumb_func_end sub_80978B8
-
- thumb_func_start sub_80978C8
-sub_80978C8:
- push {lr}
- lsls r0, 16
- asrs r0, 16
- bl sub_808E858
- lsls r0, 16
- asrs r3, r0, 16
- ldr r0, _080978FC
- ldr r2, [r0]
- adds r0, r3, 0
- cmp r3, 0
- bge _080978E2
- adds r0, 0x1F
-_080978E2:
- asrs r0, 5
- lsls r1, r0, 2
- adds r2, 0x54
- adds r2, r1
- lsls r0, 5
- subs r0, r3, r0
- movs r1, 0x1
- lsls r1, r0
- ldr r0, [r2]
- orrs r0, r1
- str r0, [r2]
- pop {r0}
- bx r0
- .align 2, 0
-_080978FC: .4byte gUnknown_203B494
- thumb_func_end sub_80978C8
-
- thumb_func_start sub_8097900
-sub_8097900:
- push {lr}
- lsls r0, 16
- asrs r0, 16
- bl sub_808E858
- lsls r0, 16
- asrs r3, r0, 16
- ldr r0, _08097938
- ldr r2, [r0]
- adds r0, r3, 0
- cmp r3, 0
- bge _0809791A
- adds r0, 0x1F
-_0809791A:
- asrs r0, 5
- lsls r1, r0, 2
- adds r2, 0x1C
- adds r2, r1
- lsls r0, 5
- subs r0, r3, r0
- movs r1, 0x1
- lsls r1, r0
- ldr r0, [r2]
- ands r0, r1
- cmp r0, 0
- bne _0809793C
- movs r0, 0
- b _0809793E
- .align 2, 0
-_08097938: .4byte gUnknown_203B494
-_0809793C:
- movs r0, 0x1
-_0809793E:
- pop {r1}
- bx r1
- thumb_func_end sub_8097900
-
- thumb_func_start sub_8097944
-sub_8097944:
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x8
- movs r0, 0x1
- str r0, [sp]
- movs r1, 0x1
- str r1, [sp, 0x4]
- movs r0, 0xD
- bl sub_8097710
- lsls r0, 24
- cmp r0, 0
- bne _08097974
- bl sub_8092614
- lsls r0, 24
- cmp r0, 0
- beq _08097974
- movs r0, 0xD
- bl sub_80976F8
-_08097974:
- movs r4, 0
- ldr r0, _08097B5C
- mov r10, r0
- mov r8, r4
-_0809797C:
- ldr r1, _08097B60
- ldr r0, [r1]
- mov r1, r8
- adds r2, r1, r0
- ldrb r1, [r2]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _080979F6
- movs r0, 0x8
- ldrsh r3, [r2, r0]
- mov r1, r10
- ldr r2, [r1]
- adds r0, r3, 0
- cmp r3, 0
- bge _0809799E
- adds r0, 0x1F
-_0809799E:
- asrs r0, 5
- lsls r1, r0, 2
- adds r2, 0x1C
- adds r2, r1
- lsls r0, 5
- subs r0, r3, r0
- movs r1, 0x1
- lsls r1, r0
- ldr r0, [r2]
- orrs r0, r1
- str r0, [r2]
- ldr r0, _08097B60
- mov r9, r0
- mov r12, r8
- movs r7, 0x1
- movs r6, 0x2C
- movs r5, 0x3
-_080979C0:
- mov r1, r9
- ldr r0, [r1]
- add r0, r12
- adds r3, r0, r6
- ldrb r1, [r3]
- adds r0, r7, 0
- ands r0, r1
- cmp r0, 0
- beq _080979EE
- mov r0, r10
- ldr r2, [r0]
- ldrh r3, [r3, 0x2]
- lsrs r0, r3, 5
- lsls r0, 2
- adds r2, 0x8C
- adds r2, r0
- movs r0, 0x1F
- ands r3, r0
- adds r1, r7, 0
- lsls r1, r3
- ldr r0, [r2]
- orrs r0, r1
- str r0, [r2]
-_080979EE:
- adds r6, 0x8
- subs r5, 0x1
- cmp r5, 0
- bge _080979C0
-_080979F6:
- movs r1, 0x58
- add r8, r1
- adds r4, 0x1
- movs r0, 0xCE
- lsls r0, 1
- cmp r4, r0
- ble _0809797C
- movs r4, 0
- ldr r1, _08097B64
-_08097A08:
- cmp r4, 0
- bne _08097A0E
- b _08097B80
-_08097A0E:
- ldr r0, _08097B68
- cmp r4, r0
- bne _08097A16
- b _08097B80
-_08097A16:
- adds r0, 0x1
- cmp r4, r0
- bne _08097A1E
- b _08097B80
-_08097A1E:
- adds r0, 0x1
- cmp r4, r0
- bne _08097A26
- b _08097B80
-_08097A26:
- adds r0, 0x26
- cmp r4, r0
- bne _08097A2E
- b _08097B80
-_08097A2E:
- adds r0, 0x1
- cmp r4, r0
- bne _08097A36
- b _08097B80
-_08097A36:
- adds r0, 0x1
- cmp r4, r0
- bne _08097A3E
- b _08097B80
-_08097A3E:
- adds r0, 0x1
- cmp r4, r0
- bne _08097A46
- b _08097B80
-_08097A46:
- adds r0, 0x1
- cmp r4, r0
- bne _08097A4E
- b _08097B80
-_08097A4E:
- adds r0, 0x1
- cmp r4, r0
- bne _08097A56
- b _08097B80
-_08097A56:
- cmp r4, r1
- bne _08097A5C
- b _08097B80
-_08097A5C:
- ldr r0, _08097B5C
- ldr r5, [r0]
- adds r0, r4, 0
- cmp r4, 0
- bge _08097A68
- adds r0, 0x1F
-_08097A68:
- asrs r0, 5
- lsls r3, r0, 2
- adds r1, r5, 0
- adds r1, 0x54
- adds r1, r3
- lsls r0, 5
- subs r0, r4, r0
- movs r2, 0x1
- lsls r2, r0
- ldr r0, [r1]
- ands r0, r2
- cmp r0, 0
- bne _08097A86
- movs r0, 0
- str r0, [sp, 0x4]
-_08097A86:
- adds r0, r5, 0
- adds r0, 0x1C
- adds r0, r3
- ldr r0, [r0]
- ands r0, r2
- cmp r0, 0
- beq _08097B7C
- cmp r4, 0x92
- bne _08097A9E
- movs r0, 0x10
- bl sub_80976F8
-_08097A9E:
- cmp r4, 0x91
- bne _08097AA8
- movs r0, 0x11
- bl sub_80976F8
-_08097AA8:
- cmp r4, 0x90
- bne _08097AB2
- movs r0, 0x12
- bl sub_80976F8
-_08097AB2:
- movs r0, 0xCF
- lsls r0, 1
- cmp r4, r0
- bne _08097AC0
- movs r0, 0x13
- bl sub_80976F8
-_08097AC0:
- ldr r0, _08097B6C
- cmp r4, r0
- bne _08097ACC
- movs r0, 0x14
- bl sub_80976F8
-_08097ACC:
- movs r0, 0x86
- lsls r0, 1
- cmp r4, r0
- bne _08097ADA
- movs r0, 0x15
- bl sub_80976F8
-_08097ADA:
- movs r0, 0x87
- lsls r0, 1
- cmp r4, r0
- bne _08097AE8
- movs r0, 0x16
- bl sub_80976F8
-_08097AE8:
- ldr r0, _08097B70
- cmp r4, r0
- bne _08097AF4
- movs r0, 0x17
- bl sub_80976F8
-_08097AF4:
- movs r0, 0xCD
- lsls r0, 1
- cmp r4, r0
- bne _08097B02
- movs r0, 0x18
- bl sub_80976F8
-_08097B02:
- ldr r0, _08097B74
- cmp r4, r0
- bne _08097B0E
- movs r0, 0x19
- bl sub_80976F8
-_08097B0E:
- movs r0, 0xCE
- lsls r0, 1
- cmp r4, r0
- bne _08097B1C
- movs r0, 0x1A
- bl sub_80976F8
-_08097B1C:
- movs r0, 0x89
- lsls r0, 1
- cmp r4, r0
- bne _08097B2A
- movs r0, 0x1B
- bl sub_80976F8
-_08097B2A:
- movs r0, 0x8A
- lsls r0, 1
- cmp r4, r0
- bne _08097B38
- movs r0, 0x1C
- bl sub_80976F8
-_08097B38:
- cmp r4, 0x97
- bne _08097B42
- movs r0, 0x1D
- bl sub_80976F8
-_08097B42:
- cmp r4, 0x96
- bne _08097B4C
- movs r0, 0x1E
- bl sub_80976F8
-_08097B4C:
- ldr r0, _08097B78
- cmp r4, r0
- bne _08097B80
- movs r0, 0x1F
- bl sub_80976F8
- b _08097B80
- .align 2, 0
-_08097B5C: .4byte gUnknown_203B494
-_08097B60: .4byte gUnknown_203B45C
-_08097B64: .4byte 0x000001a7
-_08097B68: .4byte 0x00000179
-_08097B6C: .4byte 0x0000010d
-_08097B70: .4byte 0x00000113
-_08097B74: .4byte 0x0000019b
-_08097B78: .4byte 0x0000019d
-_08097B7C:
- movs r1, 0
- str r1, [sp]
-_08097B80:
- adds r4, 0x1
- ldr r1, _08097C0C
- cmp r4, r1
- bgt _08097B8A
- b _08097A08
-_08097B8A:
- ldr r0, [sp]
- cmp r0, 0
- beq _08097B96
- movs r0, 0xF
- bl sub_80976F8
-_08097B96:
- ldr r1, [sp, 0x4]
- cmp r1, 0
- beq _08097BA2
- movs r0, 0xE
- bl sub_80976F8
-_08097BA2:
- movs r3, 0
- movs r4, 0
-_08097BA6:
- cmp r4, 0
- beq _08097BE2
- ldr r0, _08097C10
- cmp r4, r0
- beq _08097BE2
- adds r0, 0x1
- cmp r4, r0
- beq _08097BE2
- adds r0, 0x1
- cmp r4, r0
- beq _08097BE2
- ldr r0, _08097C14
- ldr r2, [r0]
- adds r0, r4, 0
- cmp r4, 0
- bge _08097BC8
- adds r0, 0x1F
-_08097BC8:
- asrs r0, 5
- lsls r1, r0, 2
- adds r2, 0x8C
- adds r2, r1
- lsls r0, 5
- subs r0, r4, r0
- movs r1, 0x1
- lsls r1, r0
- ldr r0, [r2]
- ands r0, r1
- cmp r0, 0
- beq _08097BE2
- adds r3, 0x1
-_08097BE2:
- adds r4, 0x1
- movs r0, 0xCE
- lsls r0, 1
- cmp r4, r0
- ble _08097BA6
- cmp r3, 0
- beq _08097BFC
- ldr r0, _08097C14
- ldr r0, [r0]
- strh r3, [r0, 0x18]
- movs r0, 0x7
- bl sub_80976F8
-_08097BFC:
- add sp, 0x8
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08097C0C: .4byte 0x000001a7
-_08097C10: .4byte 0x00000163
-_08097C14: .4byte gUnknown_203B494
- thumb_func_end sub_8097944
-
- thumb_func_start sub_8097C18
-sub_8097C18:
- push {r4-r6,lr}
- adds r5, r0, 0
- bl sub_8097944
- ldr r4, _08097CBC
- ldr r1, [r4]
- adds r1, 0x4
- adds r0, r5, 0
- movs r2, 0x11
- bl sub_809488C
- ldr r1, [r4]
- adds r1, 0x8
- adds r0, r5, 0
- movs r2, 0x11
- bl sub_809488C
- ldr r1, [r4]
- adds r1, 0xC
- adds r0, r5, 0
- movs r2, 0x11
- bl sub_809488C
- ldr r1, [r4]
- adds r0, r5, 0
- movs r2, 0x20
- bl sub_809488C
- ldr r1, [r4]
- adds r1, 0x14
- adds r0, r5, 0
- movs r2, 0xE
- bl sub_809488C
- ldr r1, [r4]
- adds r1, 0x16
- adds r0, r5, 0
- movs r2, 0xE
- bl sub_809488C
- ldr r1, [r4]
- adds r1, 0x18
- adds r0, r5, 0
- movs r2, 0x9
- bl sub_809488C
- ldr r1, [r4]
- adds r1, 0xC0
- adds r0, r5, 0
- movs r2, 0x11
- bl sub_809488C
- ldr r1, [r4]
- adds r1, 0x1C
- movs r6, 0xE0
- lsls r6, 1
- adds r0, r5, 0
- adds r2, r6, 0
- bl sub_809488C
- ldr r1, [r4]
- adds r1, 0x54
- adds r0, r5, 0
- adds r2, r6, 0
- bl sub_809488C
- ldr r1, [r4]
- adds r1, 0x8C
- movs r2, 0xD0
- lsls r2, 1
- adds r0, r5, 0
- bl sub_809488C
- ldr r1, [r4]
- adds r1, 0x10
- adds r0, r5, 0
- bl sub_80902F4
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08097CBC: .4byte gUnknown_203B494
- thumb_func_end sub_8097C18
-
- thumb_func_start sub_8097CC0
-sub_8097CC0:
- push {r4-r6,lr}
- adds r5, r0, 0
- ldr r4, _08097D5C
- ldr r1, [r4]
- adds r1, 0x4
- movs r2, 0x11
- bl sub_8094924
- ldr r1, [r4]
- adds r1, 0x8
- adds r0, r5, 0
- movs r2, 0x11
- bl sub_8094924
- ldr r1, [r4]
- adds r1, 0xC
- adds r0, r5, 0
- movs r2, 0x11
- bl sub_8094924
- ldr r1, [r4]
- adds r0, r5, 0
- movs r2, 0x20
- bl sub_8094924
- ldr r1, [r4]
- adds r1, 0x14
- adds r0, r5, 0
- movs r2, 0xE
- bl sub_8094924
- ldr r1, [r4]
- adds r1, 0x16
- adds r0, r5, 0
- movs r2, 0xE
- bl sub_8094924
- ldr r1, [r4]
- adds r1, 0x18
- adds r0, r5, 0
- movs r2, 0x9
- bl sub_8094924
- ldr r1, [r4]
- adds r1, 0xC0
- adds r0, r5, 0
- movs r2, 0x11
- bl sub_8094924
- ldr r1, [r4]
- adds r1, 0x1C
- movs r6, 0xE0
- lsls r6, 1
- adds r0, r5, 0
- adds r2, r6, 0
- bl sub_8094924
- ldr r1, [r4]
- adds r1, 0x54
- adds r0, r5, 0
- adds r2, r6, 0
- bl sub_8094924
- ldr r1, [r4]
- adds r1, 0x8C
- movs r2, 0xD0
- lsls r2, 1
- adds r0, r5, 0
- bl sub_8094924
- ldr r1, [r4]
- adds r1, 0x10
- adds r0, r5, 0
- bl sub_8090314
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08097D5C: .4byte gUnknown_203B494
- thumb_func_end sub_8097CC0
-
- thumb_func_start sub_8097D60
-sub_8097D60:
- push {lr}
- sub sp, 0x10
- adds r3, r0, 0
- adds r2, r1, 0
- mov r0, sp
- adds r1, r3, 0
- bl sub_809486C
- mov r0, sp
- bl sub_8094A44
- mov r0, sp
- bl sub_8095044
- mov r0, sp
- bl sub_8097C18
- mov r0, sp
- bl sub_8098248
- mov r0, sp
- bl nullsub_102
- ldr r0, [sp, 0x8]
- add sp, 0x10
- pop {r1}
- bx r1
- thumb_func_end sub_8097D60
-
- thumb_func_start sub_8097D98
-sub_8097D98:
- push {lr}
- sub sp, 0x10
- adds r3, r0, 0
- adds r2, r1, 0
- mov r0, sp
- adds r1, r3, 0
- bl sub_809485C
- mov r0, sp
- bl sub_8094B18
- mov r0, sp
- bl sub_8095080
- mov r0, sp
- bl sub_8097CC0
- mov r0, sp
- bl sub_8098308
- mov r0, sp
- bl nullsub_102
- ldr r0, [sp, 0x8]
- add sp, 0x10
- pop {r1}
- bx r1
- thumb_func_end sub_8097D98
-
- thumb_func_start sub_8097DD0
-sub_8097DD0:
- push {lr}
- adds r2, r0, 0
- adds r3, r1, 0
- ldr r1, [r2]
- ldr r0, [r3]
- cmp r1, r0
- bne _08097DEA
- ldr r1, [r2, 0x4]
- ldr r0, [r3, 0x4]
- cmp r1, r0
- bne _08097DEA
- movs r0, 0x1
- b _08097DEC
-_08097DEA:
- movs r0, 0
-_08097DEC:
- pop {r1}
- bx r1
- thumb_func_end sub_8097DD0
-
- thumb_func_start sub_8097DF0
-sub_8097DF0:
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x1F8
- mov r8, r0
- str r1, [sp, 0x1F0]
- movs r0, 0
- mov r9, r0
- movs r7, 0
- ldr r1, _08097E3C
- ldr r0, [r1]
- cmp r0, 0
- beq _08097E6E
-_08097E0E:
- movs r4, 0
- lsls r5, r7, 3
- lsls r1, r7, 2
- mov r10, r1
- adds r6, r7, 0x1
- ldr r2, _08097E3C
- adds r3, r5, r2
- add r1, sp, 0x18C
-_08097E1E:
- ldr r0, [r3]
- adds r0, r4
- ldrb r2, [r0]
- cmp r2, 0x23
- bne _08097E40
- ldrb r0, [r0, 0x1]
- cmp r0, 0x72
- bne _08097E40
- strb r2, [r1]
- adds r1, 0x1
- strb r0, [r1]
- adds r1, 0x1
- movs r0, 0
- strb r0, [r1]
- b _08097E50
- .align 2, 0
-_08097E3C: .4byte gStatusDescriptions
-_08097E40:
- ldr r0, [r3]
- adds r0, r4
- ldrb r0, [r0]
- strb r0, [r1]
- adds r1, 0x1
- adds r4, 0x1
- cmp r4, 0x63
- ble _08097E1E
-_08097E50:
- add r0, sp, 0x18C
- bl strlen
- mov r1, sp
- add r1, r10
- str r0, [r1]
- adds r7, r6, 0
- cmp r6, 0x62
- bgt _08097E6E
- lsls r0, r6, 3
- ldr r1, _08097EB4
- adds r0, r1
- ldr r0, [r0]
- cmp r0, 0
- bne _08097E0E
-_08097E6E:
- mov r2, r8
- ldrb r0, [r2]
- cmp r0, 0
- beq _08097F2C
- ldr r3, _08097EB4
-_08097E78:
- cmp r0, 0x23
- bne _08097F08
- movs r7, 0
- adds r1, r3, 0
- ldr r0, [r1]
- cmp r0, 0
- beq _08097F20
- mov r2, r9
- lsls r0, r2, 2
- ldr r2, [sp, 0x1F0]
- adds r0, r2
- mov r10, r0
-_08097E90:
- lsls r4, r7, 3
- adds r0, r4, r1
- ldr r0, [r0]
- lsls r1, r7, 2
- add r1, sp
- ldr r2, [r1]
- mov r1, r8
- str r3, [sp, 0x1F4]
- bl sub_800B2D4
- lsls r0, 24
- adds r5, r4, 0
- adds r6, r7, 0x1
- ldr r3, [sp, 0x1F4]
- cmp r0, 0
- bne _08097EF0
- movs r4, 0
- b _08097EBA
- .align 2, 0
-_08097EB4: .4byte gStatusDescriptions
-_08097EB8:
- adds r4, 0x1
-_08097EBA:
- cmp r4, r9
- bge _08097ED6
- adds r0, r5, r3
- lsls r1, r4, 2
- ldr r2, [sp, 0x1F0]
- adds r1, r2
- ldr r1, [r1]
- str r3, [sp, 0x1F4]
- bl sub_8097DD0
- lsls r0, 24
- ldr r3, [sp, 0x1F4]
- cmp r0, 0
- beq _08097EB8
-_08097ED6:
- cmp r4, r9
- bne _08097EF0
- mov r0, r9
- cmp r0, 0x3
- bgt _08097EF0
- adds r0, r5, r3
- mov r1, r10
- adds r1, 0x4
- mov r10, r1
- subs r1, 0x4
- stm r1!, {r0}
- movs r2, 0x1
- add r9, r2
-_08097EF0:
- adds r7, r6, 0
- cmp r6, 0x62
- bgt _08097F20
- ldr r1, _08097F04
- lsls r0, r6, 3
- adds r0, r1
- ldr r0, [r0]
- cmp r0, 0
- bne _08097E90
- b _08097F20
- .align 2, 0
-_08097F04: .4byte gStatusDescriptions
-_08097F08:
- mov r0, r8
- ldrb r1, [r0]
- adds r0, r1, 0
- adds r0, 0x7F
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x3
- bls _08097F1C
- cmp r1, 0x87
- bne _08097F20
-_08097F1C:
- movs r1, 0x1
- add r8, r1
-_08097F20:
- movs r2, 0x1
- add r8, r2
- mov r1, r8
- ldrb r0, [r1]
- cmp r0, 0
- bne _08097E78
-_08097F2C:
- mov r0, r9
- add sp, 0x1F8
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_8097DF0
-
.align 2,0
diff --git a/asm/code_809747C.s b/asm/code_809747C.s
new file mode 100644
index 0000000..17e2dab
--- /dev/null
+++ b/asm/code_809747C.s
@@ -0,0 +1,1446 @@
+ .include "constants/gba_constants.inc"
+ .include "asm/macros.inc"
+
+ .syntax unified
+
+ .text
+
+
+ thumb_func_start sub_8097504
+sub_8097504:
+ push {lr}
+ lsls r0, 16
+ asrs r0, 16
+ adds r1, r0, 0
+ cmp r0, 0x10
+ bgt _08097568
+ cmp r0, 0xE
+ bhi _08097580
+ lsls r0, 2
+ ldr r1, _08097520
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_08097520: .4byte _08097524
+ .align 2, 0
+_08097524:
+ .4byte _08097564
+ .4byte _08097564
+ .4byte _08097560
+ .4byte _08097580
+ .4byte _08097580
+ .4byte _08097564
+ .4byte _08097580
+ .4byte _08097564
+ .4byte _08097580
+ .4byte _08097564
+ .4byte _08097560
+ .4byte _08097560
+ .4byte _08097560
+ .4byte _08097574
+ .4byte _08097564
+_08097560:
+ movs r0, 0xE
+ b _08097576
+_08097564:
+ movs r0, 0xF
+ b _08097576
+_08097568:
+ cmp r1, 0x16
+ bgt _08097584
+ cmp r1, 0x16
+ beq _08097584
+ cmp r1, 0x15
+ beq _08097584
+_08097574:
+ movs r0, 0x6
+_08097576:
+ bl sub_80023E4
+ lsls r0, 24
+ cmp r0, 0
+ beq _08097584
+_08097580:
+ movs r0, 0x1
+ b _08097586
+_08097584:
+ movs r0, 0
+_08097586:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8097504
+
+ thumb_func_start sub_809758C
+sub_809758C:
+ push {lr}
+ adds r2, r0, 0
+ lsls r2, 16
+ lsrs r2, 16
+ movs r0, 0
+ movs r1, 0x2E
+ bl sub_8001784
+ cmp r0, 0
+ beq _080975A2
+ movs r0, 0x1
+_080975A2:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_809758C
+
+ thumb_func_start sub_80975A8
+sub_80975A8:
+ push {lr}
+ adds r2, r0, 0
+ adds r3, r1, 0
+ lsls r3, 24
+ lsrs r3, 24
+ lsls r2, 16
+ lsrs r2, 16
+ movs r0, 0
+ movs r1, 0x2E
+ bl sub_800199C
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80975A8
+
+ thumb_func_start sub_80975C4
+sub_80975C4:
+ push {lr}
+ lsls r0, 16
+ asrs r0, 16
+ bl sub_80A2728
+ lsls r0, 24
+ lsrs r0, 24
+ bl GetDungeonName1
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80975C4
+
+ thumb_func_start sub_80975DC
+sub_80975DC:
+ push {lr}
+ lsls r0, 16
+ ldr r1, _08097600
+ adds r0, r1
+ lsrs r0, 16
+ cmp r0, 0x1
+ bhi _08097610
+ movs r2, 0x1
+ negs r2, r2
+ movs r0, 0x3
+ movs r1, 0xE
+ bl sub_8001D08
+ lsls r0, 24
+ cmp r0, 0
+ beq _08097608
+ ldr r0, _08097604
+ b _08097612
+ .align 2, 0
+_08097600: .4byte 0xffe90000
+_08097604: .4byte gMeetNinetalesText
+_08097608:
+ ldr r0, _0809760C
+ b _08097612
+ .align 2, 0
+_0809760C: .4byte gAvoidCaptureText
+_08097610:
+ ldr r0, _08097618
+_08097612:
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08097618: .4byte gFinalScenarioText
+ thumb_func_end sub_80975DC
+
+ thumb_func_start sub_809761C
+sub_809761C:
+ push {r4,lr}
+ movs r4, 0
+_08097620:
+ lsls r0, r4, 16
+ asrs r0, 16
+ bl sub_809758C
+ lsls r0, 24
+ cmp r0, 0
+ bne _08097632
+ movs r0, 0
+ b _0809763A
+_08097632:
+ adds r4, 0x1
+ cmp r4, 0x10
+ ble _08097620
+ movs r0, 0x1
+_0809763A:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_809761C
+
+ thumb_func_start sub_8097640
+sub_8097640:
+ push {lr}
+ movs r0, 0
+ movs r1, 0x2E
+ movs r2, 0x1F
+ bl sub_8001784
+ cmp r0, 0
+ bne _0809766A
+ bl sub_809761C
+ lsls r0, 24
+ cmp r0, 0
+ beq _0809766A
+ movs r0, 0
+ movs r1, 0x2E
+ movs r2, 0x1F
+ movs r3, 0x1
+ bl sub_800199C
+ movs r0, 0x1
+ b _0809766C
+_0809766A:
+ movs r0, 0
+_0809766C:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8097640
+
+ thumb_func_start sub_8097670
+sub_8097670:
+ ldr r1, _08097678
+ ldr r0, _0809767C
+ str r0, [r1]
+ bx lr
+ .align 2, 0
+_08097678: .4byte gUnknown_203B494
+_0809767C: .4byte gUnknown_2039778
+ thumb_func_end sub_8097670
+
+ thumb_func_start sub_8097680
+sub_8097680:
+ ldr r0, _08097684
+ bx lr
+ .align 2, 0
+_08097684: .4byte gUnknown_2039778
+ thumb_func_end sub_8097680
+
+ thumb_func_start sub_8097688
+sub_8097688:
+ ldr r3, _08097698
+ ldr r2, [r3]
+ ldrb r1, [r0]
+ strb r1, [r2, 0x10]
+ ldr r1, [r3]
+ ldrb r0, [r0, 0x1]
+ strb r0, [r1, 0x11]
+ bx lr
+ .align 2, 0
+_08097698: .4byte gUnknown_203B494
+ thumb_func_end sub_8097688
+
+ thumb_func_start sub_809769C
+sub_809769C:
+ ldr r0, _080976A4
+ ldr r0, [r0]
+ adds r0, 0x10
+ bx lr
+ .align 2, 0
+_080976A4: .4byte gUnknown_203B494
+ thumb_func_end sub_809769C
+
+ thumb_func_start sub_80976A8
+sub_80976A8:
+ push {r4,lr}
+ ldr r3, _080976F4
+ ldr r1, [r3]
+ movs r0, 0
+ str r0, [r1]
+ strh r0, [r1, 0x14]
+ strh r0, [r1, 0x16]
+ strh r0, [r1, 0x18]
+ adds r2, r1, 0
+ adds r2, 0xC0
+ str r0, [r2]
+ str r0, [r1, 0x8]
+ str r0, [r1, 0xC]
+ movs r2, 0
+ adds r4, r3, 0
+ movs r3, 0
+_080976C8:
+ ldr r0, [r4]
+ lsls r1, r2, 2
+ adds r0, 0x1C
+ adds r0, r1
+ str r3, [r0]
+ adds r2, 0x1
+ cmp r2, 0xD
+ ble _080976C8
+ movs r2, 0
+ ldr r4, _080976F4
+ movs r3, 0
+_080976DE:
+ ldr r0, [r4]
+ lsls r1, r2, 2
+ adds r0, 0x8C
+ adds r0, r1
+ str r3, [r0]
+ adds r2, 0x1
+ cmp r2, 0xC
+ ble _080976DE
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080976F4: .4byte gUnknown_203B494
+ thumb_func_end sub_80976A8
+
+ thumb_func_start sub_80976F8
+sub_80976F8:
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r1, _0809770C
+ ldr r2, [r1]
+ movs r1, 0x1
+ lsls r1, r0
+ ldr r0, [r2]
+ orrs r0, r1
+ str r0, [r2]
+ bx lr
+ .align 2, 0
+_0809770C: .4byte gUnknown_203B494
+ thumb_func_end sub_80976F8
+
+ thumb_func_start sub_8097710
+sub_8097710:
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r1, _0809772C
+ ldr r2, [r1]
+ movs r1, 0x1
+ lsls r1, r0
+ ldr r0, [r2]
+ ands r0, r1
+ cmp r0, 0
+ bne _08097730
+ movs r0, 0
+ b _08097732
+ .align 2, 0
+_0809772C: .4byte gUnknown_203B494
+_08097730:
+ movs r0, 0x1
+_08097732:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8097710
+
+ thumb_func_start sub_8097738
+sub_8097738:
+ lsls r0, 24
+ ldr r1, _08097744
+ lsrs r0, 22
+ adds r0, r1
+ ldr r0, [r0]
+ bx lr
+ .align 2, 0
+_08097744: .4byte gAdventureLogText
+ thumb_func_end sub_8097738
+
+ thumb_func_start sub_8097748
+sub_8097748:
+ ldr r0, _08097754
+ ldr r1, [r0]
+ movs r0, 0
+ str r0, [r1, 0x4]
+ bx lr
+ .align 2, 0
+_08097754: .4byte gUnknown_203B494
+ thumb_func_end sub_8097748
+
+ thumb_func_start sub_8097758
+sub_8097758:
+ push {lr}
+ ldr r0, _08097770
+ ldr r1, [r0]
+ ldr r0, [r1, 0x4]
+ adds r0, 0x1
+ str r0, [r1, 0x4]
+ ldr r2, _08097774
+ cmp r0, r2
+ ble _0809776C
+ str r2, [r1, 0x4]
+_0809776C:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08097770: .4byte gUnknown_203B494
+_08097774: .4byte 0x0001869f
+ thumb_func_end sub_8097758
+
+ thumb_func_start sub_8097778
+sub_8097778:
+ ldr r0, _08097780
+ ldr r0, [r0]
+ ldr r0, [r0, 0x4]
+ bx lr
+ .align 2, 0
+_08097780: .4byte gUnknown_203B494
+ thumb_func_end sub_8097778
+
+ thumb_func_start sub_8097784
+sub_8097784:
+ ldr r1, _0809778C
+ ldr r1, [r1]
+ str r0, [r1, 0x4]
+ bx lr
+ .align 2, 0
+_0809778C: .4byte gUnknown_203B494
+ thumb_func_end sub_8097784
+
+ thumb_func_start sub_8097790
+sub_8097790:
+ push {lr}
+ ldr r0, _080977B0
+ ldr r1, [r0]
+ ldr r0, [r1, 0x8]
+ adds r0, 0x1
+ str r0, [r1, 0x8]
+ ldr r2, _080977B4
+ cmp r0, r2
+ ble _080977A4
+ str r2, [r1, 0x8]
+_080977A4:
+ movs r0, 0x8
+ bl sub_80976F8
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080977B0: .4byte gUnknown_203B494
+_080977B4: .4byte 0x0001869f
+ thumb_func_end sub_8097790
+
+ thumb_func_start sub_80977B8
+sub_80977B8:
+ ldr r0, _080977C0
+ ldr r0, [r0]
+ ldr r0, [r0, 0x8]
+ bx lr
+ .align 2, 0
+_080977C0: .4byte gUnknown_203B494
+ thumb_func_end sub_80977B8
+
+ thumb_func_start sub_80977C4
+sub_80977C4:
+ ldr r1, _080977CC
+ ldr r1, [r1]
+ str r0, [r1, 0x8]
+ bx lr
+ .align 2, 0
+_080977CC: .4byte gUnknown_203B494
+ thumb_func_end sub_80977C4
+
+ thumb_func_start sub_80977D0
+sub_80977D0:
+ push {lr}
+ ldr r0, _080977F0
+ ldr r1, [r0]
+ ldr r0, [r1, 0xC]
+ adds r0, 0x1
+ str r0, [r1, 0xC]
+ ldr r2, _080977F4
+ cmp r0, r2
+ ble _080977E4
+ str r2, [r1, 0xC]
+_080977E4:
+ movs r0, 0x9
+ bl sub_80976F8
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080977F0: .4byte gUnknown_203B494
+_080977F4: .4byte 0x0001869f
+ thumb_func_end sub_80977D0
+
+ thumb_func_start sub_80977F8
+sub_80977F8:
+ ldr r0, _08097800
+ ldr r0, [r0]
+ ldr r0, [r0, 0xC]
+ bx lr
+ .align 2, 0
+_08097800: .4byte gUnknown_203B494
+ thumb_func_end sub_80977F8
+
+ thumb_func_start sub_8097804
+sub_8097804:
+ ldr r1, _0809780C
+ ldr r1, [r1]
+ str r0, [r1, 0xC]
+ bx lr
+ .align 2, 0
+_0809780C: .4byte gUnknown_203B494
+ thumb_func_end sub_8097804
+
+ thumb_func_start sub_8097810
+sub_8097810:
+ push {lr}
+ ldr r0, _08097830
+ ldr r2, [r0]
+ ldrh r3, [r2, 0x14]
+ movs r0, 0x14
+ ldrsh r1, [r2, r0]
+ ldr r0, _08097834
+ cmp r1, r0
+ bgt _08097826
+ adds r0, r3, 0x1
+ strh r0, [r2, 0x14]
+_08097826:
+ movs r0, 0xB
+ bl sub_80976F8
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08097830: .4byte gUnknown_203B494
+_08097834: .4byte 0x0000270e
+ thumb_func_end sub_8097810
+
+ thumb_func_start sub_8097838
+sub_8097838:
+ ldr r0, _08097844
+ ldr r0, [r0]
+ movs r1, 0x14
+ ldrsh r0, [r0, r1]
+ bx lr
+ .align 2, 0
+_08097844: .4byte gUnknown_203B494
+ thumb_func_end sub_8097838
+
+ thumb_func_start sub_8097848
+sub_8097848:
+ push {lr}
+ ldr r0, _08097868
+ ldr r2, [r0]
+ ldrh r3, [r2, 0x16]
+ movs r0, 0x16
+ ldrsh r1, [r2, r0]
+ ldr r0, _0809786C
+ cmp r1, r0
+ bgt _0809785E
+ adds r0, r3, 0x1
+ strh r0, [r2, 0x16]
+_0809785E:
+ movs r0, 0xA
+ bl sub_80976F8
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08097868: .4byte gUnknown_203B494
+_0809786C: .4byte 0x0000270e
+ thumb_func_end sub_8097848
+
+ thumb_func_start sub_8097870
+sub_8097870:
+ ldr r0, _0809787C
+ ldr r0, [r0]
+ movs r1, 0x16
+ ldrsh r0, [r0, r1]
+ bx lr
+ .align 2, 0
+_0809787C: .4byte gUnknown_203B494
+ thumb_func_end sub_8097870
+
+ thumb_func_start sub_8097880
+sub_8097880:
+ ldr r0, _0809788C
+ ldr r0, [r0]
+ movs r1, 0x18
+ ldrsh r0, [r0, r1]
+ bx lr
+ .align 2, 0
+_0809788C: .4byte gUnknown_203B494
+ thumb_func_end sub_8097880
+
+ thumb_func_start sub_8097890
+sub_8097890:
+ push {lr}
+ ldr r0, _080978B0
+ ldr r0, [r0]
+ adds r2, r0, 0
+ adds r2, 0xC0
+ ldr r1, [r2]
+ ldr r0, _080978B4
+ cmp r1, r0
+ bgt _080978A6
+ adds r0, r1, 0x1
+ str r0, [r2]
+_080978A6:
+ movs r0, 0xC
+ bl sub_80976F8
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080978B0: .4byte gUnknown_203B494
+_080978B4: .4byte 0x0001869e
+ thumb_func_end sub_8097890
+
+ thumb_func_start sub_80978B8
+sub_80978B8:
+ ldr r0, _080978C4
+ ldr r0, [r0]
+ adds r0, 0xC0
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ bx lr
+ .align 2, 0
+_080978C4: .4byte gUnknown_203B494
+ thumb_func_end sub_80978B8
+
+ thumb_func_start sub_80978C8
+sub_80978C8:
+ push {lr}
+ lsls r0, 16
+ asrs r0, 16
+ bl sub_808E858
+ lsls r0, 16
+ asrs r3, r0, 16
+ ldr r0, _080978FC
+ ldr r2, [r0]
+ adds r0, r3, 0
+ cmp r3, 0
+ bge _080978E2
+ adds r0, 0x1F
+_080978E2:
+ asrs r0, 5
+ lsls r1, r0, 2
+ adds r2, 0x54
+ adds r2, r1
+ lsls r0, 5
+ subs r0, r3, r0
+ movs r1, 0x1
+ lsls r1, r0
+ ldr r0, [r2]
+ orrs r0, r1
+ str r0, [r2]
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080978FC: .4byte gUnknown_203B494
+ thumb_func_end sub_80978C8
+
+ thumb_func_start sub_8097900
+sub_8097900:
+ push {lr}
+ lsls r0, 16
+ asrs r0, 16
+ bl sub_808E858
+ lsls r0, 16
+ asrs r3, r0, 16
+ ldr r0, _08097938
+ ldr r2, [r0]
+ adds r0, r3, 0
+ cmp r3, 0
+ bge _0809791A
+ adds r0, 0x1F
+_0809791A:
+ asrs r0, 5
+ lsls r1, r0, 2
+ adds r2, 0x1C
+ adds r2, r1
+ lsls r0, 5
+ subs r0, r3, r0
+ movs r1, 0x1
+ lsls r1, r0
+ ldr r0, [r2]
+ ands r0, r1
+ cmp r0, 0
+ bne _0809793C
+ movs r0, 0
+ b _0809793E
+ .align 2, 0
+_08097938: .4byte gUnknown_203B494
+_0809793C:
+ movs r0, 0x1
+_0809793E:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8097900
+
+ thumb_func_start sub_8097944
+sub_8097944:
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x8
+ movs r0, 0x1
+ str r0, [sp]
+ movs r1, 0x1
+ str r1, [sp, 0x4]
+ movs r0, 0xD
+ bl sub_8097710
+ lsls r0, 24
+ cmp r0, 0
+ bne _08097974
+ bl sub_8092614
+ lsls r0, 24
+ cmp r0, 0
+ beq _08097974
+ movs r0, 0xD
+ bl sub_80976F8
+_08097974:
+ movs r4, 0
+ ldr r0, _08097B5C
+ mov r10, r0
+ mov r8, r4
+_0809797C:
+ ldr r1, _08097B60
+ ldr r0, [r1]
+ mov r1, r8
+ adds r2, r1, r0
+ ldrb r1, [r2]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _080979F6
+ movs r0, 0x8
+ ldrsh r3, [r2, r0]
+ mov r1, r10
+ ldr r2, [r1]
+ adds r0, r3, 0
+ cmp r3, 0
+ bge _0809799E
+ adds r0, 0x1F
+_0809799E:
+ asrs r0, 5
+ lsls r1, r0, 2
+ adds r2, 0x1C
+ adds r2, r1
+ lsls r0, 5
+ subs r0, r3, r0
+ movs r1, 0x1
+ lsls r1, r0
+ ldr r0, [r2]
+ orrs r0, r1
+ str r0, [r2]
+ ldr r0, _08097B60
+ mov r9, r0
+ mov r12, r8
+ movs r7, 0x1
+ movs r6, 0x2C
+ movs r5, 0x3
+_080979C0:
+ mov r1, r9
+ ldr r0, [r1]
+ add r0, r12
+ adds r3, r0, r6
+ ldrb r1, [r3]
+ adds r0, r7, 0
+ ands r0, r1
+ cmp r0, 0
+ beq _080979EE
+ mov r0, r10
+ ldr r2, [r0]
+ ldrh r3, [r3, 0x2]
+ lsrs r0, r3, 5
+ lsls r0, 2
+ adds r2, 0x8C
+ adds r2, r0
+ movs r0, 0x1F
+ ands r3, r0
+ adds r1, r7, 0
+ lsls r1, r3
+ ldr r0, [r2]
+ orrs r0, r1
+ str r0, [r2]
+_080979EE:
+ adds r6, 0x8
+ subs r5, 0x1
+ cmp r5, 0
+ bge _080979C0
+_080979F6:
+ movs r1, 0x58
+ add r8, r1
+ adds r4, 0x1
+ movs r0, 0xCE
+ lsls r0, 1
+ cmp r4, r0
+ ble _0809797C
+ movs r4, 0
+ ldr r1, _08097B64
+_08097A08:
+ cmp r4, 0
+ bne _08097A0E
+ b _08097B80
+_08097A0E:
+ ldr r0, _08097B68
+ cmp r4, r0
+ bne _08097A16
+ b _08097B80
+_08097A16:
+ adds r0, 0x1
+ cmp r4, r0
+ bne _08097A1E
+ b _08097B80
+_08097A1E:
+ adds r0, 0x1
+ cmp r4, r0
+ bne _08097A26
+ b _08097B80
+_08097A26:
+ adds r0, 0x26
+ cmp r4, r0
+ bne _08097A2E
+ b _08097B80
+_08097A2E:
+ adds r0, 0x1
+ cmp r4, r0
+ bne _08097A36
+ b _08097B80
+_08097A36:
+ adds r0, 0x1
+ cmp r4, r0
+ bne _08097A3E
+ b _08097B80
+_08097A3E:
+ adds r0, 0x1
+ cmp r4, r0
+ bne _08097A46
+ b _08097B80
+_08097A46:
+ adds r0, 0x1
+ cmp r4, r0
+ bne _08097A4E
+ b _08097B80
+_08097A4E:
+ adds r0, 0x1
+ cmp r4, r0
+ bne _08097A56
+ b _08097B80
+_08097A56:
+ cmp r4, r1
+ bne _08097A5C
+ b _08097B80
+_08097A5C:
+ ldr r0, _08097B5C
+ ldr r5, [r0]
+ adds r0, r4, 0
+ cmp r4, 0
+ bge _08097A68
+ adds r0, 0x1F
+_08097A68:
+ asrs r0, 5
+ lsls r3, r0, 2
+ adds r1, r5, 0
+ adds r1, 0x54
+ adds r1, r3
+ lsls r0, 5
+ subs r0, r4, r0
+ movs r2, 0x1
+ lsls r2, r0
+ ldr r0, [r1]
+ ands r0, r2
+ cmp r0, 0
+ bne _08097A86
+ movs r0, 0
+ str r0, [sp, 0x4]
+_08097A86:
+ adds r0, r5, 0
+ adds r0, 0x1C
+ adds r0, r3
+ ldr r0, [r0]
+ ands r0, r2
+ cmp r0, 0
+ beq _08097B7C
+ cmp r4, 0x92
+ bne _08097A9E
+ movs r0, 0x10
+ bl sub_80976F8
+_08097A9E:
+ cmp r4, 0x91
+ bne _08097AA8
+ movs r0, 0x11
+ bl sub_80976F8
+_08097AA8:
+ cmp r4, 0x90
+ bne _08097AB2
+ movs r0, 0x12
+ bl sub_80976F8
+_08097AB2:
+ movs r0, 0xCF
+ lsls r0, 1
+ cmp r4, r0
+ bne _08097AC0
+ movs r0, 0x13
+ bl sub_80976F8
+_08097AC0:
+ ldr r0, _08097B6C
+ cmp r4, r0
+ bne _08097ACC
+ movs r0, 0x14
+ bl sub_80976F8
+_08097ACC:
+ movs r0, 0x86
+ lsls r0, 1
+ cmp r4, r0
+ bne _08097ADA
+ movs r0, 0x15
+ bl sub_80976F8
+_08097ADA:
+ movs r0, 0x87
+ lsls r0, 1
+ cmp r4, r0
+ bne _08097AE8
+ movs r0, 0x16
+ bl sub_80976F8
+_08097AE8:
+ ldr r0, _08097B70
+ cmp r4, r0
+ bne _08097AF4
+ movs r0, 0x17
+ bl sub_80976F8
+_08097AF4:
+ movs r0, 0xCD
+ lsls r0, 1
+ cmp r4, r0
+ bne _08097B02
+ movs r0, 0x18
+ bl sub_80976F8
+_08097B02:
+ ldr r0, _08097B74
+ cmp r4, r0
+ bne _08097B0E
+ movs r0, 0x19
+ bl sub_80976F8
+_08097B0E:
+ movs r0, 0xCE
+ lsls r0, 1
+ cmp r4, r0
+ bne _08097B1C
+ movs r0, 0x1A
+ bl sub_80976F8
+_08097B1C:
+ movs r0, 0x89
+ lsls r0, 1
+ cmp r4, r0
+ bne _08097B2A
+ movs r0, 0x1B
+ bl sub_80976F8
+_08097B2A:
+ movs r0, 0x8A
+ lsls r0, 1
+ cmp r4, r0
+ bne _08097B38
+ movs r0, 0x1C
+ bl sub_80976F8
+_08097B38:
+ cmp r4, 0x97
+ bne _08097B42
+ movs r0, 0x1D
+ bl sub_80976F8
+_08097B42:
+ cmp r4, 0x96
+ bne _08097B4C
+ movs r0, 0x1E
+ bl sub_80976F8
+_08097B4C:
+ ldr r0, _08097B78
+ cmp r4, r0
+ bne _08097B80
+ movs r0, 0x1F
+ bl sub_80976F8
+ b _08097B80
+ .align 2, 0
+_08097B5C: .4byte gUnknown_203B494
+_08097B60: .4byte gUnknown_203B45C
+_08097B64: .4byte 0x000001a7
+_08097B68: .4byte 0x00000179
+_08097B6C: .4byte 0x0000010d
+_08097B70: .4byte 0x00000113
+_08097B74: .4byte 0x0000019b
+_08097B78: .4byte 0x0000019d
+_08097B7C:
+ movs r1, 0
+ str r1, [sp]
+_08097B80:
+ adds r4, 0x1
+ ldr r1, _08097C0C
+ cmp r4, r1
+ bgt _08097B8A
+ b _08097A08
+_08097B8A:
+ ldr r0, [sp]
+ cmp r0, 0
+ beq _08097B96
+ movs r0, 0xF
+ bl sub_80976F8
+_08097B96:
+ ldr r1, [sp, 0x4]
+ cmp r1, 0
+ beq _08097BA2
+ movs r0, 0xE
+ bl sub_80976F8
+_08097BA2:
+ movs r3, 0
+ movs r4, 0
+_08097BA6:
+ cmp r4, 0
+ beq _08097BE2
+ ldr r0, _08097C10
+ cmp r4, r0
+ beq _08097BE2
+ adds r0, 0x1
+ cmp r4, r0
+ beq _08097BE2
+ adds r0, 0x1
+ cmp r4, r0
+ beq _08097BE2
+ ldr r0, _08097C14
+ ldr r2, [r0]
+ adds r0, r4, 0
+ cmp r4, 0
+ bge _08097BC8
+ adds r0, 0x1F
+_08097BC8:
+ asrs r0, 5
+ lsls r1, r0, 2
+ adds r2, 0x8C
+ adds r2, r1
+ lsls r0, 5
+ subs r0, r4, r0
+ movs r1, 0x1
+ lsls r1, r0
+ ldr r0, [r2]
+ ands r0, r1
+ cmp r0, 0
+ beq _08097BE2
+ adds r3, 0x1
+_08097BE2:
+ adds r4, 0x1
+ movs r0, 0xCE
+ lsls r0, 1
+ cmp r4, r0
+ ble _08097BA6
+ cmp r3, 0
+ beq _08097BFC
+ ldr r0, _08097C14
+ ldr r0, [r0]
+ strh r3, [r0, 0x18]
+ movs r0, 0x7
+ bl sub_80976F8
+_08097BFC:
+ add sp, 0x8
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08097C0C: .4byte 0x000001a7
+_08097C10: .4byte 0x00000163
+_08097C14: .4byte gUnknown_203B494
+ thumb_func_end sub_8097944
+
+ thumb_func_start sub_8097C18
+sub_8097C18:
+ push {r4-r6,lr}
+ adds r5, r0, 0
+ bl sub_8097944
+ ldr r4, _08097CBC
+ ldr r1, [r4]
+ adds r1, 0x4
+ adds r0, r5, 0
+ movs r2, 0x11
+ bl sub_809488C
+ ldr r1, [r4]
+ adds r1, 0x8
+ adds r0, r5, 0
+ movs r2, 0x11
+ bl sub_809488C
+ ldr r1, [r4]
+ adds r1, 0xC
+ adds r0, r5, 0
+ movs r2, 0x11
+ bl sub_809488C
+ ldr r1, [r4]
+ adds r0, r5, 0
+ movs r2, 0x20
+ bl sub_809488C
+ ldr r1, [r4]
+ adds r1, 0x14
+ adds r0, r5, 0
+ movs r2, 0xE
+ bl sub_809488C
+ ldr r1, [r4]
+ adds r1, 0x16
+ adds r0, r5, 0
+ movs r2, 0xE
+ bl sub_809488C
+ ldr r1, [r4]
+ adds r1, 0x18
+ adds r0, r5, 0
+ movs r2, 0x9
+ bl sub_809488C
+ ldr r1, [r4]
+ adds r1, 0xC0
+ adds r0, r5, 0
+ movs r2, 0x11
+ bl sub_809488C
+ ldr r1, [r4]
+ adds r1, 0x1C
+ movs r6, 0xE0
+ lsls r6, 1
+ adds r0, r5, 0
+ adds r2, r6, 0
+ bl sub_809488C
+ ldr r1, [r4]
+ adds r1, 0x54
+ adds r0, r5, 0
+ adds r2, r6, 0
+ bl sub_809488C
+ ldr r1, [r4]
+ adds r1, 0x8C
+ movs r2, 0xD0
+ lsls r2, 1
+ adds r0, r5, 0
+ bl sub_809488C
+ ldr r1, [r4]
+ adds r1, 0x10
+ adds r0, r5, 0
+ bl sub_80902F4
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08097CBC: .4byte gUnknown_203B494
+ thumb_func_end sub_8097C18
+
+ thumb_func_start sub_8097CC0
+sub_8097CC0:
+ push {r4-r6,lr}
+ adds r5, r0, 0
+ ldr r4, _08097D5C
+ ldr r1, [r4]
+ adds r1, 0x4
+ movs r2, 0x11
+ bl sub_8094924
+ ldr r1, [r4]
+ adds r1, 0x8
+ adds r0, r5, 0
+ movs r2, 0x11
+ bl sub_8094924
+ ldr r1, [r4]
+ adds r1, 0xC
+ adds r0, r5, 0
+ movs r2, 0x11
+ bl sub_8094924
+ ldr r1, [r4]
+ adds r0, r5, 0
+ movs r2, 0x20
+ bl sub_8094924
+ ldr r1, [r4]
+ adds r1, 0x14
+ adds r0, r5, 0
+ movs r2, 0xE
+ bl sub_8094924
+ ldr r1, [r4]
+ adds r1, 0x16
+ adds r0, r5, 0
+ movs r2, 0xE
+ bl sub_8094924
+ ldr r1, [r4]
+ adds r1, 0x18
+ adds r0, r5, 0
+ movs r2, 0x9
+ bl sub_8094924
+ ldr r1, [r4]
+ adds r1, 0xC0
+ adds r0, r5, 0
+ movs r2, 0x11
+ bl sub_8094924
+ ldr r1, [r4]
+ adds r1, 0x1C
+ movs r6, 0xE0
+ lsls r6, 1
+ adds r0, r5, 0
+ adds r2, r6, 0
+ bl sub_8094924
+ ldr r1, [r4]
+ adds r1, 0x54
+ adds r0, r5, 0
+ adds r2, r6, 0
+ bl sub_8094924
+ ldr r1, [r4]
+ adds r1, 0x8C
+ movs r2, 0xD0
+ lsls r2, 1
+ adds r0, r5, 0
+ bl sub_8094924
+ ldr r1, [r4]
+ adds r1, 0x10
+ adds r0, r5, 0
+ bl sub_8090314
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08097D5C: .4byte gUnknown_203B494
+ thumb_func_end sub_8097CC0
+
+ thumb_func_start sub_8097D60
+sub_8097D60:
+ push {lr}
+ sub sp, 0x10
+ adds r3, r0, 0
+ adds r2, r1, 0
+ mov r0, sp
+ adds r1, r3, 0
+ bl sub_809486C
+ mov r0, sp
+ bl sub_8094A44
+ mov r0, sp
+ bl sub_8095044
+ mov r0, sp
+ bl sub_8097C18
+ mov r0, sp
+ bl sub_8098248
+ mov r0, sp
+ bl nullsub_102
+ ldr r0, [sp, 0x8]
+ add sp, 0x10
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8097D60
+
+ thumb_func_start sub_8097D98
+sub_8097D98:
+ push {lr}
+ sub sp, 0x10
+ adds r3, r0, 0
+ adds r2, r1, 0
+ mov r0, sp
+ adds r1, r3, 0
+ bl sub_809485C
+ mov r0, sp
+ bl sub_8094B18
+ mov r0, sp
+ bl sub_8095080
+ mov r0, sp
+ bl sub_8097CC0
+ mov r0, sp
+ bl sub_8098308
+ mov r0, sp
+ bl nullsub_102
+ ldr r0, [sp, 0x8]
+ add sp, 0x10
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8097D98
+
+ thumb_func_start sub_8097DD0
+sub_8097DD0:
+ push {lr}
+ adds r2, r0, 0
+ adds r3, r1, 0
+ ldr r1, [r2]
+ ldr r0, [r3]
+ cmp r1, r0
+ bne _08097DEA
+ ldr r1, [r2, 0x4]
+ ldr r0, [r3, 0x4]
+ cmp r1, r0
+ bne _08097DEA
+ movs r0, 0x1
+ b _08097DEC
+_08097DEA:
+ movs r0, 0
+_08097DEC:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8097DD0
+
+ thumb_func_start sub_8097DF0
+sub_8097DF0:
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x1F8
+ mov r8, r0
+ str r1, [sp, 0x1F0]
+ movs r0, 0
+ mov r9, r0
+ movs r7, 0
+ ldr r1, _08097E3C
+ ldr r0, [r1]
+ cmp r0, 0
+ beq _08097E6E
+_08097E0E:
+ movs r4, 0
+ lsls r5, r7, 3
+ lsls r1, r7, 2
+ mov r10, r1
+ adds r6, r7, 0x1
+ ldr r2, _08097E3C
+ adds r3, r5, r2
+ add r1, sp, 0x18C
+_08097E1E:
+ ldr r0, [r3]
+ adds r0, r4
+ ldrb r2, [r0]
+ cmp r2, 0x23
+ bne _08097E40
+ ldrb r0, [r0, 0x1]
+ cmp r0, 0x72
+ bne _08097E40
+ strb r2, [r1]
+ adds r1, 0x1
+ strb r0, [r1]
+ adds r1, 0x1
+ movs r0, 0
+ strb r0, [r1]
+ b _08097E50
+ .align 2, 0
+_08097E3C: .4byte gStatusDescriptions
+_08097E40:
+ ldr r0, [r3]
+ adds r0, r4
+ ldrb r0, [r0]
+ strb r0, [r1]
+ adds r1, 0x1
+ adds r4, 0x1
+ cmp r4, 0x63
+ ble _08097E1E
+_08097E50:
+ add r0, sp, 0x18C
+ bl strlen
+ mov r1, sp
+ add r1, r10
+ str r0, [r1]
+ adds r7, r6, 0
+ cmp r6, 0x62
+ bgt _08097E6E
+ lsls r0, r6, 3
+ ldr r1, _08097EB4
+ adds r0, r1
+ ldr r0, [r0]
+ cmp r0, 0
+ bne _08097E0E
+_08097E6E:
+ mov r2, r8
+ ldrb r0, [r2]
+ cmp r0, 0
+ beq _08097F2C
+ ldr r3, _08097EB4
+_08097E78:
+ cmp r0, 0x23
+ bne _08097F08
+ movs r7, 0
+ adds r1, r3, 0
+ ldr r0, [r1]
+ cmp r0, 0
+ beq _08097F20
+ mov r2, r9
+ lsls r0, r2, 2
+ ldr r2, [sp, 0x1F0]
+ adds r0, r2
+ mov r10, r0
+_08097E90:
+ lsls r4, r7, 3
+ adds r0, r4, r1
+ ldr r0, [r0]
+ lsls r1, r7, 2
+ add r1, sp
+ ldr r2, [r1]
+ mov r1, r8
+ str r3, [sp, 0x1F4]
+ bl sub_800B2D4
+ lsls r0, 24
+ adds r5, r4, 0
+ adds r6, r7, 0x1
+ ldr r3, [sp, 0x1F4]
+ cmp r0, 0
+ bne _08097EF0
+ movs r4, 0
+ b _08097EBA
+ .align 2, 0
+_08097EB4: .4byte gStatusDescriptions
+_08097EB8:
+ adds r4, 0x1
+_08097EBA:
+ cmp r4, r9
+ bge _08097ED6
+ adds r0, r5, r3
+ lsls r1, r4, 2
+ ldr r2, [sp, 0x1F0]
+ adds r1, r2
+ ldr r1, [r1]
+ str r3, [sp, 0x1F4]
+ bl sub_8097DD0
+ lsls r0, 24
+ ldr r3, [sp, 0x1F4]
+ cmp r0, 0
+ beq _08097EB8
+_08097ED6:
+ cmp r4, r9
+ bne _08097EF0
+ mov r0, r9
+ cmp r0, 0x3
+ bgt _08097EF0
+ adds r0, r5, r3
+ mov r1, r10
+ adds r1, 0x4
+ mov r10, r1
+ subs r1, 0x4
+ stm r1!, {r0}
+ movs r2, 0x1
+ add r9, r2
+_08097EF0:
+ adds r7, r6, 0
+ cmp r6, 0x62
+ bgt _08097F20
+ ldr r1, _08097F04
+ lsls r0, r6, 3
+ adds r0, r1
+ ldr r0, [r0]
+ cmp r0, 0
+ bne _08097E90
+ b _08097F20
+ .align 2, 0
+_08097F04: .4byte gStatusDescriptions
+_08097F08:
+ mov r0, r8
+ ldrb r1, [r0]
+ adds r0, r1, 0
+ adds r0, 0x7F
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x3
+ bls _08097F1C
+ cmp r1, 0x87
+ bne _08097F20
+_08097F1C:
+ movs r1, 0x1
+ add r8, r1
+_08097F20:
+ movs r2, 0x1
+ add r8, r2
+ mov r1, r8
+ ldrb r0, [r1]
+ cmp r0, 0
+ bne _08097E78
+_08097F2C:
+ mov r0, r9
+ add sp, 0x1F8
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8097DF0
+
+ .align 2,0
+
diff --git a/asm/personality_test.s b/asm/personality_test.s
new file mode 100644
index 0000000..0c45e92
--- /dev/null
+++ b/asm/personality_test.s
@@ -0,0 +1,2030 @@
+ .include "constants/gba_constants.inc"
+ .include "asm/macros.inc"
+
+ .syntax unified
+
+ .text
+
+ thumb_func_start sub_803C190
+sub_803C190:
+ lsls r0, 24
+ ldr r1, _0803C19C
+ lsrs r0, 21
+ adds r0, r1
+ ldr r0, [r0]
+ bx lr
+ .align 2, 0
+_0803C19C: .4byte gUnknown_80EBA18
+ thumb_func_end sub_803C190
+
+ thumb_func_start sub_803C1A0
+sub_803C1A0:
+ lsls r0, 24
+ ldr r1, _0803C1B0
+ lsrs r0, 21
+ adds r1, 0x4
+ adds r0, r1
+ ldr r0, [r0]
+ bx lr
+ .align 2, 0
+_0803C1B0: .4byte gUnknown_80EBA18
+ thumb_func_end sub_803C1A0
+
+ thumb_func_start sub_803C1B4
+sub_803C1B4:
+ push {r4,lr}
+ lsls r4, r1, 24
+ lsrs r4, 24
+ bl sub_80908D8
+ cmp r4, 0x2
+ bne _0803C1C4
+ adds r0, 0x2
+_0803C1C4:
+ cmp r0, 0xF
+ ble _0803C1CA
+ movs r0, 0xF
+_0803C1CA:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_803C1B4
+
+ thumb_func_start sub_803C1D0
+sub_803C1D0:
+ push {lr}
+ lsls r1, 24
+ lsrs r1, 24
+ bl sub_803C1B4
+ adds r1, r0, 0
+ lsrs r0, r1, 31
+ adds r0, r1, r0
+ asrs r1, r0, 1
+ lsls r0, r1, 24
+ lsrs r0, 24
+ cmp r0, 0x6
+ bls _0803C1EC
+ movs r0, 0x6
+_0803C1EC:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_803C1D0
+
+ thumb_func_start sub_803C1F0
+sub_803C1F0:
+ lsls r0, 24
+ ldr r1, _0803C1FC
+ lsrs r0, 22
+ adds r0, r1
+ ldr r0, [r0]
+ bx lr
+ .align 2, 0
+_0803C1FC: .4byte gUnknown_80E8BF8
+ thumb_func_end sub_803C1F0
+
+ thumb_func_start sub_803C200
+sub_803C200:
+ push {lr}
+ lsls r1, 24
+ lsrs r1, 24
+ bl sub_803C1B4
+ ldr r1, _0803C218
+ lsls r0, 2
+ adds r0, r1
+ ldr r0, [r0]
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0803C218: .4byte gUnknown_80E80A0
+ thumb_func_end sub_803C200
+
+ thumb_func_start sub_803C21C
+sub_803C21C:
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ adds r6, r0, 0
+ adds r4, r1, 0
+ adds r0, r6, 0x4
+ ldrb r1, [r6, 0x1]
+ bl sub_803C1D0
+ lsls r0, 24
+ lsrs r2, r0, 24
+ movs r0, 0
+ str r0, [r4, 0x18]
+ movs r3, 0
+ movs r1, 0x2
+ adds r0, r4, 0
+ adds r0, 0x1E
+_0803C23E:
+ strb r3, [r0]
+ subs r0, 0x1
+ subs r1, 0x1
+ cmp r1, 0
+ bge _0803C23E
+ adds r0, r4, 0
+ adds r0, 0x20
+ movs r1, 0
+ strb r1, [r0]
+ movs r1, 0xA
+ strb r1, [r4, 0x1F]
+ ldrb r1, [r6, 0x11]
+ adds r3, r0, 0
+ cmp r1, 0x9
+ bhi _0803C354
+ lsls r0, r1, 2
+ ldr r1, _0803C268
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_0803C268: .4byte _0803C26C
+ .align 2, 0
+_0803C26C:
+ .4byte _0803C294
+ .4byte _0803C2A2
+ .4byte _0803C2B4
+ .4byte _0803C2BE
+ .4byte _0803C354
+ .4byte _0803C2E0
+ .4byte _0803C2EE
+ .4byte _0803C300
+ .4byte _0803C30A
+ .4byte _0803C34A
+_0803C294:
+ movs r0, 0
+ strb r0, [r4, 0x16]
+ adds r1, r2, 0x1
+ movs r0, 0x64
+ muls r0, r1
+ str r0, [r4, 0x18]
+ b _0803C358
+_0803C2A2:
+ movs r0, 0x1
+ strb r0, [r4, 0x16]
+ adds r1, r2, 0x1
+ movs r0, 0x64
+ muls r0, r1
+ str r0, [r4, 0x18]
+ ldrb r0, [r6, 0x12]
+ strb r0, [r4, 0x1C]
+ b _0803C358
+_0803C2B4:
+ movs r0, 0x2
+ strb r0, [r4, 0x16]
+ ldrb r0, [r6, 0x12]
+ strb r0, [r4, 0x1C]
+ b _0803C358
+_0803C2BE:
+ movs r0, 0x3
+ strb r0, [r4, 0x16]
+ ldrb r0, [r6, 0x12]
+ strb r0, [r4, 0x1C]
+ adds r5, r6, 0x4
+ adds r7, r4, 0
+ adds r7, 0x1D
+_0803C2CC:
+ ldrb r1, [r6, 0x1]
+ adds r0, r5, 0
+ adds r2, r7, 0
+ bl sub_803C37C
+ ldrb r0, [r4, 0x1C]
+ ldrb r1, [r4, 0x1D]
+ cmp r0, r1
+ beq _0803C2CC
+ b _0803C35A
+_0803C2E0:
+ movs r0, 0
+ strb r0, [r4, 0x16]
+ adds r1, r2, 0x1
+ movs r0, 0xC8
+ muls r0, r1
+ str r0, [r4, 0x18]
+ b _0803C358
+_0803C2EE:
+ movs r0, 0x1
+ strb r0, [r4, 0x16]
+ adds r1, r2, 0x1
+ movs r0, 0xC8
+ muls r0, r1
+ str r0, [r4, 0x18]
+ ldrb r0, [r6, 0x12]
+ strb r0, [r4, 0x1C]
+ b _0803C358
+_0803C300:
+ movs r0, 0x2
+ strb r0, [r4, 0x16]
+ ldrb r0, [r6, 0x12]
+ strb r0, [r4, 0x1C]
+ b _0803C358
+_0803C30A:
+ movs r0, 0x3
+ strb r0, [r4, 0x16]
+ ldrb r0, [r6, 0x12]
+ strb r0, [r4, 0x1C]
+ adds r5, r6, 0x4
+ adds r7, r4, 0
+ adds r7, 0x1D
+ movs r0, 0x1E
+ adds r0, r4
+ mov r8, r0
+_0803C31E:
+ ldrb r1, [r6, 0x1]
+ adds r0, r5, 0
+ adds r2, r7, 0
+ bl sub_803C37C
+ ldrb r0, [r4, 0x1C]
+ ldrb r1, [r4, 0x1D]
+ cmp r0, r1
+ beq _0803C31E
+_0803C330:
+ ldrb r1, [r6, 0x1]
+ adds r0, r5, 0
+ mov r2, r8
+ bl sub_803C37C
+ ldrb r0, [r4, 0x1C]
+ ldrb r1, [r4, 0x1E]
+ cmp r0, r1
+ beq _0803C330
+ ldrb r0, [r4, 0x1D]
+ cmp r0, r1
+ beq _0803C330
+ b _0803C35A
+_0803C34A:
+ movs r0, 0x4
+ strb r0, [r4, 0x16]
+ ldrb r0, [r6, 0x13]
+ strb r0, [r3]
+ b _0803C358
+_0803C354:
+ movs r0, 0x5
+ strb r0, [r4, 0x16]
+_0803C358:
+ adds r5, r6, 0x4
+_0803C35A:
+ movs r0, 0xC
+ ldrsh r1, [r6, r0]
+ adds r0, r4, 0
+ bl sub_808D8E0
+ ldrh r0, [r6, 0xC]
+ strh r0, [r4, 0x14]
+ ldrb r1, [r6, 0x1]
+ adds r0, r5, 0
+ bl sub_803C200
+ str r0, [r4, 0x24]
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_803C21C
+
+ thumb_func_start sub_803C37C
+sub_803C37C:
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ adds r6, r0, 0
+ mov r8, r2
+ lsls r1, 24
+ lsrs r1, 24
+ bl sub_803C1B4
+ adds r7, r0, 0
+ adds r0, r6, 0
+ adds r1, r7, 0
+ bl sub_8090910
+_0803C398:
+ movs r5, 0
+ adds r0, r6, 0
+ adds r1, r7, 0
+ bl sub_8090910
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0xEA
+ bne _0803C3BA
+ movs r0, 0
+ movs r1, 0x47
+ movs r2, 0x1
+ bl sub_8001784
+ negs r1, r0
+ orrs r1, r0
+ lsrs r5, r1, 31
+_0803C3BA:
+ cmp r4, 0xEB
+ bne _0803C3CE
+ movs r0, 0
+ movs r1, 0x47
+ movs r2, 0
+ bl sub_8001784
+ cmp r0, 0
+ beq _0803C3CE
+ movs r5, 0x1
+_0803C3CE:
+ cmp r5, 0
+ bne _0803C398
+ mov r0, r8
+ strb r4, [r0]
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_803C37C
+
+ thumb_func_start sub_803C3E0
+sub_803C3E0:
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ sub sp, 0x54
+ adds r7, r0, 0
+ movs r6, 0
+ ldr r5, _0803C42C
+ movs r4, 0
+ mov r8, sp
+_0803C3F2:
+ movs r1, 0
+ ldrsh r0, [r5, r1]
+ bl sub_803C110
+ lsls r0, 24
+ cmp r0, 0
+ beq _0803C41A
+ movs r1, 0x2
+ ldrsh r0, [r5, r1]
+ bl sub_803C110
+ lsls r0, 24
+ cmp r0, 0
+ beq _0803C41A
+ mov r0, r8
+ adds r0, 0x4
+ mov r8, r0
+ subs r0, 0x4
+ stm r0!, {r4}
+ adds r6, 0x1
+_0803C41A:
+ adds r5, 0x8
+ adds r4, 0x1
+ cmp r4, 0x14
+ ble _0803C3F2
+ ldr r5, _0803C42C
+ cmp r6, 0
+ bne _0803C430
+ movs r0, 0
+ b _0803C44E
+ .align 2, 0
+_0803C42C: .4byte gUnknown_80E9920
+_0803C430:
+ adds r0, r6, 0
+ bl RandomCapped
+ lsls r0, 2
+ add r0, sp
+ ldr r4, [r0]
+ lsls r0, r4, 3
+ adds r5, r0, r5
+ ldrh r0, [r5]
+ strh r0, [r7, 0xC]
+ ldrh r0, [r5, 0x2]
+ strh r0, [r7, 0xE]
+ movs r0, 0x7
+ strb r0, [r7, 0x2]
+ movs r0, 0x1
+_0803C44E:
+ add sp, 0x54
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_803C3E0
+
+ thumb_func_start sub_803C45C
+sub_803C45C:
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ sub sp, 0xB4
+ adds r7, r0, 0
+ movs r6, 0
+ ldr r5, _0803C4CC
+ movs r4, 0
+ mov r8, sp
+_0803C46E:
+ movs r1, 0
+ ldrsh r0, [r5, r1]
+ bl sub_803C110
+ lsls r0, 24
+ cmp r0, 0
+ beq _0803C496
+ movs r1, 0x2
+ ldrsh r0, [r5, r1]
+ bl sub_803C110
+ lsls r0, 24
+ cmp r0, 0
+ beq _0803C496
+ mov r0, r8
+ adds r0, 0x4
+ mov r8, r0
+ subs r0, 0x4
+ stm r0!, {r4}
+ adds r6, 0x1
+_0803C496:
+ adds r5, 0xC
+ adds r4, 0x1
+ cmp r4, 0x2C
+ ble _0803C46E
+ ldr r5, _0803C4CC
+ cmp r6, 0
+ beq _0803C4E0
+ adds r0, r6, 0
+ bl RandomCapped
+ lsls r0, 2
+ add r0, sp
+ ldr r4, [r0]
+ lsls r0, r4, 1
+ adds r0, r4
+ lsls r0, 2
+ adds r5, r0, r5
+ bl Random
+ movs r1, 0x10
+ ands r1, r0
+ cmp r1, 0
+ beq _0803C4D0
+ ldrh r0, [r5]
+ strh r0, [r7, 0xC]
+ ldrh r0, [r5, 0x2]
+ b _0803C4D6
+ .align 2, 0
+_0803C4CC: .4byte gUnknown_80E9F8C
+_0803C4D0:
+ ldrh r0, [r5, 0x2]
+ strh r0, [r7, 0xC]
+ ldrh r0, [r5]
+_0803C4D6:
+ strh r0, [r7, 0xE]
+ movs r0, 0x8
+ strb r0, [r7, 0x2]
+ movs r0, 0x1
+ b _0803C4E2
+_0803C4E0:
+ movs r0, 0
+_0803C4E2:
+ add sp, 0xB4
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_803C45C
+
+ thumb_func_start sub_803C4F0
+sub_803C4F0:
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ sub sp, 0x18
+ adds r7, r0, 0
+ movs r6, 0
+ ldr r5, _0803C55C
+ movs r4, 0
+ mov r8, sp
+_0803C502:
+ movs r1, 0
+ ldrsh r0, [r5, r1]
+ bl sub_803C110
+ lsls r0, 24
+ cmp r0, 0
+ beq _0803C52A
+ movs r1, 0x2
+ ldrsh r0, [r5, r1]
+ bl sub_803C110
+ lsls r0, 24
+ cmp r0, 0
+ beq _0803C52A
+ mov r0, r8
+ adds r0, 0x4
+ mov r8, r0
+ subs r0, 0x4
+ stm r0!, {r4}
+ adds r6, 0x1
+_0803C52A:
+ adds r5, 0x4
+ adds r4, 0x1
+ cmp r4, 0x5
+ ble _0803C502
+ ldr r5, _0803C55C
+ cmp r6, 0
+ beq _0803C570
+ adds r0, r6, 0
+ bl RandomCapped
+ lsls r0, 2
+ add r0, sp
+ ldr r4, [r0]
+ lsls r0, r4, 2
+ adds r5, r0, r5
+ bl Random
+ movs r1, 0x10
+ ands r1, r0
+ cmp r1, 0
+ beq _0803C560
+ ldrh r0, [r5]
+ strh r0, [r7, 0xC]
+ ldrh r0, [r5, 0x2]
+ b _0803C566
+ .align 2, 0
+_0803C55C: .4byte gUnknown_80E8168
+_0803C560:
+ ldrh r0, [r5, 0x2]
+ strh r0, [r7, 0xC]
+ ldrh r0, [r5]
+_0803C566:
+ strh r0, [r7, 0xE]
+ movs r0, 0x9
+ strb r0, [r7, 0x2]
+ movs r0, 0x1
+ b _0803C572
+_0803C570:
+ movs r0, 0
+_0803C572:
+ add sp, 0x18
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_803C4F0
+
+ thumb_func_start sub_803C580
+sub_803C580:
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ sub sp, 0x54
+ adds r6, r0, 0
+ movs r7, 0
+ ldr r5, _0803C5D8
+ movs r0, 0x6
+ bl sub_80023E4
+ lsls r0, 24
+ cmp r0, 0
+ beq _0803C5D2
+ movs r4, 0
+ mov r8, sp
+_0803C59E:
+ movs r1, 0
+ ldrsh r0, [r5, r1]
+ bl sub_803C110
+ lsls r0, 24
+ cmp r0, 0
+ beq _0803C5C6
+ ldrb r0, [r6, 0x4]
+ ldrb r1, [r5, 0x2]
+ bl sub_8091E60
+ lsls r0, 24
+ cmp r0, 0
+ beq _0803C5C6
+ mov r0, r8
+ adds r0, 0x4
+ mov r8, r0
+ subs r0, 0x4
+ stm r0!, {r4}
+ adds r7, 0x1
+_0803C5C6:
+ adds r5, 0x4
+ adds r4, 0x1
+ cmp r4, 0x14
+ ble _0803C59E
+ cmp r7, 0
+ bne _0803C5DC
+_0803C5D2:
+ movs r0, 0
+ b _0803C600
+ .align 2, 0
+_0803C5D8: .4byte gUnknown_80E8180
+_0803C5DC:
+ adds r0, r7, 0
+ bl RandomCapped
+ lsls r0, 2
+ add r0, sp
+ ldr r4, [r0]
+ lsls r1, r4, 2
+ ldr r0, _0803C60C
+ adds r5, r1, r0
+ ldrh r0, [r5]
+ strh r0, [r6, 0xC]
+ ldrh r0, [r5]
+ strh r0, [r6, 0xE]
+ ldrb r0, [r5, 0x2]
+ strb r0, [r6, 0x10]
+ movs r0, 0x5
+ strb r0, [r6, 0x2]
+ movs r0, 0x1
+_0803C600:
+ add sp, 0x54
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0803C60C: .4byte gUnknown_80E8180
+ thumb_func_end sub_803C580
+
+ thumb_func_start sub_803C610
+sub_803C610:
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ ldr r4, _0803C660
+ add sp, r4
+ adds r6, r0, 0
+ movs r7, 0
+ ldr r4, _0803C664
+ movs r5, 0
+ mov r8, sp
+_0803C624:
+ movs r1, 0
+ ldrsh r0, [r4, r1]
+ bl sub_803C110
+ lsls r0, 24
+ cmp r0, 0
+ beq _0803C64C
+ ldrb r0, [r6, 0x4]
+ ldrb r1, [r4, 0x2]
+ bl sub_8091E60
+ lsls r0, 24
+ cmp r0, 0
+ beq _0803C64C
+ mov r0, r8
+ adds r0, 0x4
+ mov r8, r0
+ subs r0, 0x4
+ stm r0!, {r5}
+ adds r7, 0x1
+_0803C64C:
+ adds r4, 0x4
+ adds r5, 0x1
+ ldr r0, _0803C668
+ cmp r5, r0
+ ble _0803C624
+ cmp r7, 0
+ bne _0803C66C
+ movs r0, 0
+ b _0803C690
+ .align 2, 0
+_0803C660: .4byte 0xfffff9f8
+_0803C664: .4byte gUnknown_80E81D4
+_0803C668: .4byte 0x00000181
+_0803C66C:
+ adds r0, r7, 0
+ bl RandomCapped
+ lsls r0, 2
+ add r0, sp
+ ldr r5, [r0]
+ lsls r1, r5, 2
+ ldr r0, _0803C6A0
+ adds r4, r1, r0
+ ldrh r0, [r4]
+ strh r0, [r6, 0xC]
+ ldrh r0, [r4]
+ strh r0, [r6, 0xE]
+ ldrb r0, [r4, 0x2]
+ strb r0, [r6, 0x10]
+ movs r0, 0x6
+ strb r0, [r6, 0x2]
+ movs r0, 0x1
+_0803C690:
+ movs r3, 0xC1
+ lsls r3, 3
+ add sp, r3
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0803C6A0: .4byte gUnknown_80E81D4
+ thumb_func_end sub_803C610
+
+ thumb_func_start sub_803C6A4
+sub_803C6A4:
+ push {r4,lr}
+ ldr r4, _0803C6CC
+ movs r0, 0xC0
+ movs r1, 0x8
+ bl MemoryAlloc
+ str r0, [r4]
+ adds r0, 0xB4
+ bl sub_801317C
+ bl sub_803C6D0
+ movs r0, 0x1
+ bl sub_8099690
+ movs r0, 0x1
+ pop {r4}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0803C6CC: .4byte gUnknown_203B400
+ thumb_func_end sub_803C6A4
+
+ thumb_func_start sub_803C6D0
+sub_803C6D0:
+ push {r4,r5,lr}
+ ldr r4, _0803C72C
+ ldr r0, [r4]
+ adds r0, 0x4
+ bl sub_8001024
+ ldr r1, [r4]
+ movs r0, 0
+ str r0, [r1]
+ str r0, [r1, 0x34]
+ str r0, [r1, 0x38]
+ movs r2, 0
+ movs r5, 0
+ adds r3, r4, 0
+_0803C6EC:
+ ldr r0, [r4]
+ lsls r1, r2, 2
+ adds r0, 0x44
+ adds r0, r1
+ str r5, [r0]
+ adds r2, 0x1
+ cmp r2, 0xC
+ ble _0803C6EC
+ ldr r1, [r3]
+ movs r0, 0
+ str r0, [r1, 0x3C]
+ movs r2, 0
+ adds r4, r3, 0
+ movs r1, 0
+_0803C708:
+ ldr r0, [r4]
+ adds r0, 0x78
+ adds r0, r2
+ strb r1, [r0]
+ adds r2, 0x1
+ cmp r2, 0x36
+ ble _0803C708
+ ldr r0, [r3]
+ adds r0, 0x40
+ movs r1, 0
+ strb r1, [r0]
+ ldr r0, [r3]
+ adds r0, 0xB0
+ str r1, [r0]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0803C72C: .4byte gUnknown_203B400
+ thumb_func_end sub_803C6D0
+
+ thumb_func_start sub_803C730
+sub_803C730:
+ push {r4,r5,lr}
+ ldr r0, _0803C750
+ ldr r1, [r0]
+ ldr r0, [r1]
+ adds r0, 0x1
+ str r0, [r1]
+ ldr r0, [r1, 0x34]
+ cmp r0, 0xF
+ bls _0803C744
+ b _0803C848
+_0803C744:
+ lsls r0, 2
+ ldr r1, _0803C754
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_0803C750: .4byte gUnknown_203B400
+_0803C754: .4byte _0803C758
+ .align 2, 0
+_0803C758:
+ .4byte _0803C798
+ .4byte _0803C79E
+ .4byte _0803C7A4
+ .4byte _0803C7AA
+ .4byte _0803C7B0
+ .4byte _0803C7B6
+ .4byte _0803C7BC
+ .4byte _0803C7C2
+ .4byte _0803C7C8
+ .4byte _0803C7CE
+ .4byte _0803C7D4
+ .4byte _0803C7DA
+ .4byte _0803C7E0
+ .4byte _0803C7E6
+ .4byte _0803C7EC
+ .4byte _0803C7F2
+_0803C798:
+ bl sub_803C870
+ b _0803C848
+_0803C79E:
+ bl sub_803C908
+ b _0803C848
+_0803C7A4:
+ bl sub_803C920
+ b _0803C848
+_0803C7AA:
+ bl sub_803C98C
+ b _0803C848
+_0803C7B0:
+ bl sub_803C9D8
+ b _0803C848
+_0803C7B6:
+ bl sub_803CA54
+ b _0803C848
+_0803C7BC:
+ bl sub_803CA8C
+ b _0803C848
+_0803C7C2:
+ bl sub_803CAAC
+ b _0803C848
+_0803C7C8:
+ bl sub_803CAD4
+ b _0803C848
+_0803C7CE:
+ bl sub_803CAF4
+ b _0803C848
+_0803C7D4:
+ bl sub_803CB14
+ b _0803C848
+_0803C7DA:
+ bl sub_803CB5C
+ b _0803C848
+_0803C7E0:
+ bl sub_803CB7C
+ b _0803C848
+_0803C7E6:
+ bl sub_803CBB0
+ b _0803C848
+_0803C7EC:
+ bl sub_803CBE4
+ b _0803C848
+_0803C7F2:
+ bl Random
+ ldr r4, _0803C844
+ ldr r1, [r4]
+ ldr r1, [r1]
+ adds r5, r0, 0
+ muls r5, r1
+ bl Random
+ bl sub_8094D28
+ movs r1, 0
+ ldr r0, [r4]
+ adds r2, r0, 0
+ adds r2, 0x44
+_0803C810:
+ ldm r2!, {r0}
+ adds r0, r1
+ adds r0, 0x3
+ muls r5, r0
+ adds r1, 0x1
+ cmp r1, 0xC
+ ble _0803C810
+ bl sub_8094E4C
+ adds r5, r0
+ movs r0, 0x1
+ negs r0, r0
+ cmp r5, r0
+ bne _0803C838
+ adds r4, r5, 0
+_0803C82E:
+ bl sub_8094E4C
+ adds r5, r0
+ cmp r5, r4
+ beq _0803C82E
+_0803C838:
+ adds r0, r5, 0
+ bl sub_8011C40
+ movs r0, 0x3
+ b _0803C84A
+ .align 2, 0
+_0803C844: .4byte gUnknown_203B400
+_0803C848:
+ movs r0, 0
+_0803C84A:
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_803C730
+
+ thumb_func_start sub_803C850
+sub_803C850:
+ push {r4,lr}
+ ldr r4, _0803C86C
+ ldr r0, [r4]
+ adds r0, 0x4
+ bl sub_8001044
+ ldr r0, [r4]
+ bl MemoryFree
+ movs r0, 0
+ str r0, [r4]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0803C86C: .4byte gUnknown_203B400
+ thumb_func_end sub_803C850
+
+ thumb_func_start sub_803C870
+sub_803C870:
+ push {r4-r6,lr}
+ sub sp, 0x14
+ ldr r5, _0803C8A4
+ ldr r1, [r5]
+ ldr r0, [r1, 0x38]
+ adds r0, 0x1
+ str r0, [r1, 0x38]
+ cmp r0, 0x8
+ ble _0803C8B4
+ ldr r0, _0803C8A8
+ ldr r3, _0803C8AC
+ movs r1, 0
+ str r1, [sp]
+ movs r4, 0x3
+ str r4, [sp, 0x4]
+ str r1, [sp, 0x8]
+ str r1, [sp, 0xC]
+ ldr r1, _0803C8B0
+ str r1, [sp, 0x10]
+ movs r1, 0
+ movs r2, 0
+ bl sub_8014248
+ ldr r0, [r5]
+ str r4, [r0, 0x34]
+ b _0803C8F8
+ .align 2, 0
+_0803C8A4: .4byte gUnknown_203B400
+_0803C8A8: .4byte gGenderText
+_0803C8AC: .4byte gUnknown_80F275C
+_0803C8B0: .4byte 0x00000101
+_0803C8B4:
+ adds r4, r5, 0
+_0803C8B6:
+ movs r0, 0x37
+ bl RandomCapped
+ ldr r1, [r4]
+ str r0, [r1, 0x3C]
+ adds r1, 0x78
+ adds r1, r0
+ ldrb r0, [r1]
+ cmp r0, 0x1
+ beq _0803C8B6
+ ldr r2, _0803C900
+ ldr r1, _0803C904
+ ldr r0, [r1]
+ ldr r0, [r0, 0x3C]
+ adds r0, r2
+ ldrb r4, [r0]
+ movs r3, 0
+ adds r6, r1, 0
+ movs r5, 0x1
+_0803C8DC:
+ adds r0, r3, r2
+ ldrb r0, [r0]
+ cmp r0, r4
+ bne _0803C8EC
+ ldr r0, [r1]
+ adds r0, 0x78
+ adds r0, r3
+ strb r5, [r0]
+_0803C8EC:
+ adds r3, 0x1
+ cmp r3, 0x36
+ ble _0803C8DC
+ ldr r1, [r6]
+ movs r0, 0x1
+ str r0, [r1, 0x34]
+_0803C8F8:
+ add sp, 0x14
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0803C900: .4byte gNatureQuestionTable
+_0803C904: .4byte gUnknown_203B400
+ thumb_func_end sub_803C870
+
+ thumb_func_start sub_803C908
+sub_803C908:
+ push {lr}
+ bl sub_803CC04
+ ldr r0, _0803C91C
+ ldr r1, [r0]
+ movs r0, 0x2
+ str r0, [r1, 0x34]
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0803C91C: .4byte gUnknown_203B400
+ thumb_func_end sub_803C908
+
+ thumb_func_start sub_803C920
+sub_803C920:
+ push {r4-r6,lr}
+ sub sp, 0x4
+ mov r0, sp
+ bl sub_80144A4
+ cmp r0, 0
+ bne _0803C97C
+ ldr r3, [sp]
+ cmp r3, 0x63
+ bne _0803C944
+ ldr r0, _0803C940
+ ldr r1, [r0]
+ movs r0, 0x37
+ str r0, [r1, 0x3C]
+ movs r0, 0x1
+ b _0803C97A
+ .align 2, 0
+_0803C940: .4byte gUnknown_203B400
+_0803C944:
+ ldr r1, _0803C984
+ ldr r2, _0803C988
+ ldr r0, [r2]
+ ldr r0, [r0, 0x3C]
+ lsls r0, 2
+ adds r0, r1
+ ldr r0, [r0]
+ ldr r4, [r0, 0x8]
+ lsls r0, r3, 4
+ adds r4, r0
+ movs r3, 0
+ adds r6, r2, 0
+ adds r5, r6, 0
+_0803C95E:
+ ldr r1, [r5]
+ lsls r0, r3, 2
+ adds r1, 0x44
+ adds r1, r0
+ adds r0, r4, r3
+ ldrb r2, [r0]
+ ldr r0, [r1]
+ adds r0, r2
+ str r0, [r1]
+ adds r3, 0x1
+ cmp r3, 0xC
+ ble _0803C95E
+ ldr r1, [r6]
+ movs r0, 0
+_0803C97A:
+ str r0, [r1, 0x34]
+_0803C97C:
+ add sp, 0x4
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0803C984: .4byte gPersonalityQuestionPointerTable
+_0803C988: .4byte gUnknown_203B400
+ thumb_func_end sub_803C920
+
+ thumb_func_start sub_803C98C
+sub_803C98C:
+ push {lr}
+ sub sp, 0x4
+ mov r0, sp
+ bl sub_80144A4
+ cmp r0, 0
+ bne _0803C9CA
+ ldr r1, [sp]
+ cmp r1, 0
+ bne _0803C9AC
+ ldr r0, _0803C9A8
+ ldr r0, [r0]
+ adds r0, 0xB0
+ b _0803C9B4
+ .align 2, 0
+_0803C9A8: .4byte gUnknown_203B400
+_0803C9AC:
+ ldr r0, _0803C9D0
+ ldr r0, [r0]
+ adds r0, 0xB0
+ movs r1, 0x1
+_0803C9B4:
+ str r1, [r0]
+ ldr r0, _0803C9D4
+ ldr r0, [r0]
+ strb r1, [r0, 0xB]
+ movs r0, 0
+ bl sub_8099690
+ ldr r0, _0803C9D0
+ ldr r1, [r0]
+ movs r0, 0x4
+ str r0, [r1, 0x34]
+_0803C9CA:
+ add sp, 0x4
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0803C9D0: .4byte gUnknown_203B400
+_0803C9D4: .4byte gUnknown_203B46C
+ thumb_func_end sub_803C98C
+
+ thumb_func_start sub_803C9D8
+sub_803C9D8:
+ push {r4-r7,lr}
+ movs r0, 0xD
+ bl RandomCapped
+ ldr r2, _0803CA4C
+ ldr r1, [r2]
+ adds r1, 0x40
+ strb r0, [r1]
+ ldr r0, [r2]
+ adds r0, 0x40
+ ldrb r3, [r0]
+ adds r7, r2, 0
+ movs r5, 0xB
+_0803C9F2:
+ adds r3, 0x1
+ cmp r3, 0xC
+ ble _0803C9FA
+ movs r3, 0
+_0803C9FA:
+ ldr r0, [r7]
+ lsls r2, r3, 2
+ adds r1, r0, 0
+ adds r1, 0x44
+ adds r2, r1, r2
+ adds r4, r0, 0
+ adds r4, 0x40
+ ldrb r0, [r4]
+ lsls r0, 2
+ adds r1, r0
+ ldr r2, [r2]
+ ldr r0, [r1]
+ ldr r6, _0803CA4C
+ cmp r2, r0
+ ble _0803CA1A
+ strb r3, [r4]
+_0803CA1A:
+ subs r5, 0x1
+ cmp r5, 0
+ bge _0803C9F2
+ ldr r3, [r6]
+ ldr r2, _0803CA50
+ adds r0, r3, 0
+ adds r0, 0xB0
+ ldr r1, [r0]
+ lsls r1, 1
+ subs r0, 0x70
+ ldrb r0, [r0]
+ lsls r0, 2
+ adds r1, r0
+ adds r1, r2
+ ldrh r0, [r1]
+ strh r0, [r3, 0x8]
+ bl sub_803CC40
+ ldr r1, [r6]
+ movs r0, 0x5
+ str r0, [r1, 0x34]
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0803CA4C: .4byte gUnknown_203B400
+_0803CA50: .4byte gStarters
+ thumb_func_end sub_803C9D8
+
+ thumb_func_start sub_803CA54
+sub_803CA54:
+ push {lr}
+ sub sp, 0x4
+ mov r0, sp
+ bl sub_80144A4
+ cmp r0, 0
+ bne _0803CA7A
+ ldr r0, _0803CA80
+ ldr r3, _0803CA84
+ movs r1, 0
+ movs r2, 0
+ bl sub_80141B4
+ bl sub_803CC80
+ ldr r0, _0803CA88
+ ldr r1, [r0]
+ movs r0, 0x6
+ str r0, [r1, 0x34]
+_0803CA7A:
+ add sp, 0x4
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0803CA80: .4byte gStarterReveal
+_0803CA84: .4byte 0x00000101
+_0803CA88: .4byte gUnknown_203B400
+ thumb_func_end sub_803CA54
+
+ thumb_func_start sub_803CA8C
+sub_803CA8C:
+ push {lr}
+ sub sp, 0x4
+ mov r0, sp
+ bl sub_80144A4
+ cmp r0, 0
+ bne _0803CAA2
+ ldr r0, _0803CAA8
+ ldr r1, [r0]
+ movs r0, 0x7
+ str r0, [r1, 0x34]
+_0803CAA2:
+ add sp, 0x4
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0803CAA8: .4byte gUnknown_203B400
+ thumb_func_end sub_803CA8C
+
+ thumb_func_start sub_803CAAC
+sub_803CAAC:
+ push {lr}
+ ldr r0, _0803CAC8
+ ldr r3, _0803CACC
+ movs r1, 0
+ movs r2, 0
+ bl sub_80141B4
+ ldr r0, _0803CAD0
+ ldr r1, [r0]
+ movs r0, 0x8
+ str r0, [r1, 0x34]
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0803CAC8: .4byte gUnknown_80F27DC
+_0803CACC: .4byte 0x00000301
+_0803CAD0: .4byte gUnknown_203B400
+ thumb_func_end sub_803CAAC
+
+ thumb_func_start sub_803CAD4
+sub_803CAD4:
+ push {lr}
+ sub sp, 0x4
+ mov r0, sp
+ bl sub_80144A4
+ cmp r0, 0
+ bne _0803CAEA
+ ldr r0, _0803CAF0
+ ldr r1, [r0]
+ movs r0, 0x9
+ str r0, [r1, 0x34]
+_0803CAEA:
+ add sp, 0x4
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0803CAF0: .4byte gUnknown_203B400
+ thumb_func_end sub_803CAD4
+
+ thumb_func_start sub_803CAF4
+sub_803CAF4:
+ push {r4,lr}
+ ldr r4, _0803CB10
+ ldr r0, [r4]
+ movs r1, 0x8
+ ldrsh r0, [r0, r1]
+ bl sub_803CD08
+ ldr r1, [r4]
+ movs r0, 0xA
+ str r0, [r1, 0x34]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0803CB10: .4byte gUnknown_203B400
+ thumb_func_end sub_803CAF4
+
+ thumb_func_start sub_803CB14
+sub_803CB14:
+ push {r4,r5,lr}
+ bl sub_803CDC0
+ lsls r0, 16
+ lsrs r5, r0, 16
+ ldr r0, _0803CB4C
+ cmp r5, r0
+ beq _0803CB46
+ subs r0, 0x1
+ cmp r5, r0
+ beq _0803CB46
+ bl sub_803CE6C
+ ldr r4, _0803CB50
+ ldr r0, [r4]
+ strh r5, [r0, 0xA]
+ ldr r0, _0803CB54
+ ldr r3, _0803CB58
+ movs r1, 0
+ movs r2, 0
+ bl sub_80141B4
+ ldr r1, [r4]
+ movs r0, 0xB
+ str r0, [r1, 0x34]
+_0803CB46:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0803CB4C: .4byte 0x0000ffff
+_0803CB50: .4byte gUnknown_203B400
+_0803CB54: .4byte gUnknown_80F286C
+_0803CB58: .4byte 0x00000301
+ thumb_func_end sub_803CB14
+
+ thumb_func_start sub_803CB5C
+sub_803CB5C:
+ push {lr}
+ sub sp, 0x4
+ mov r0, sp
+ bl sub_80144A4
+ cmp r0, 0
+ bne _0803CB72
+ ldr r0, _0803CB78
+ ldr r1, [r0]
+ movs r0, 0xC
+ str r0, [r1, 0x34]
+_0803CB72:
+ add sp, 0x4
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0803CB78: .4byte gUnknown_203B400
+ thumb_func_end sub_803CB5C
+
+ thumb_func_start sub_803CB7C
+sub_803CB7C:
+ push {r4,r5,lr}
+ ldr r4, _0803CBAC
+ ldr r0, [r4]
+ adds r5, r0, 0
+ adds r5, 0x20
+ movs r1, 0xA
+ ldrsh r0, [r0, r1]
+ bl sub_808D994
+ adds r1, r0, 0
+ adds r0, r5, 0
+ bl sub_80922F4
+ ldr r1, [r4]
+ adds r1, 0x20
+ movs r0, 0x3
+ bl sub_801602C
+ ldr r1, [r4]
+ movs r0, 0xD
+ str r0, [r1, 0x34]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0803CBAC: .4byte gUnknown_203B400
+ thumb_func_end sub_803CB7C
+
+ thumb_func_start sub_803CBB0
+sub_803CBB0:
+ push {lr}
+ bl sub_8016080
+ cmp r0, 0
+ beq _0803CBD2
+ bl sub_80160D8
+ ldr r0, _0803CBD8
+ ldr r3, _0803CBDC
+ movs r1, 0
+ movs r2, 0
+ bl sub_80141B4
+ ldr r0, _0803CBE0
+ ldr r1, [r0]
+ movs r0, 0xE
+ str r0, [r1, 0x34]
+_0803CBD2:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0803CBD8: .4byte gUnknown_80F2898
+_0803CBDC: .4byte 0x00000301
+_0803CBE0: .4byte gUnknown_203B400
+ thumb_func_end sub_803CBB0
+
+ thumb_func_start sub_803CBE4
+sub_803CBE4:
+ push {lr}
+ sub sp, 0x4
+ mov r0, sp
+ bl sub_80144A4
+ cmp r0, 0
+ bne _0803CBFA
+ ldr r0, _0803CC00
+ ldr r1, [r0]
+ movs r0, 0xF
+ str r0, [r1, 0x34]
+_0803CBFA:
+ add sp, 0x4
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0803CC00: .4byte gUnknown_203B400
+ thumb_func_end sub_803CBE4
+
+ thumb_func_start sub_803CC04
+sub_803CC04:
+ push {lr}
+ sub sp, 0x14
+ ldr r1, _0803CC38
+ ldr r0, _0803CC3C
+ ldr r0, [r0]
+ ldr r0, [r0, 0x3C]
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, [r0]
+ ldr r0, [r1]
+ ldr r3, [r1, 0x4]
+ movs r2, 0
+ str r2, [sp]
+ movs r1, 0x3
+ str r1, [sp, 0x4]
+ str r2, [sp, 0x8]
+ str r2, [sp, 0xC]
+ adds r1, 0xFE
+ str r1, [sp, 0x10]
+ movs r1, 0
+ bl sub_8014248
+ add sp, 0x14
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0803CC38: .4byte gPersonalityQuestionPointerTable
+_0803CC3C: .4byte gUnknown_203B400
+ thumb_func_end sub_803CC04
+
+ thumb_func_start sub_803CC40
+sub_803CC40:
+ push {r4,lr}
+ ldr r0, _0803CC70
+ ldr r4, _0803CC74
+ ldr r1, [r4]
+ movs r2, 0x8
+ ldrsh r1, [r1, r2]
+ bl sub_808D8BC
+ ldr r1, _0803CC78
+ ldr r0, [r4]
+ adds r0, 0x40
+ ldrb r0, [r0]
+ lsls r0, 2
+ adds r0, r1
+ ldr r0, [r0]
+ ldr r3, _0803CC7C
+ movs r1, 0
+ movs r2, 0
+ bl sub_80141B4
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0803CC70: .4byte gUnknown_202DF98
+_0803CC74: .4byte gUnknown_203B400
+_0803CC78: .4byte gPersonalityTypeDescriptionTable
+_0803CC7C: .4byte 0x00000101
+ thumb_func_end sub_803CC40
+
+ thumb_func_start sub_803CC80
+sub_803CC80:
+ push {r4-r7,lr}
+ sub sp, 0x60
+ ldr r0, _0803CD00
+ ldr r0, [r0]
+ movs r1, 0x8
+ ldrsh r4, [r0, r1]
+ mov r0, sp
+ bl sub_8006518
+ add r1, sp, 0x18
+ ldr r0, _0803CD04
+ ldm r0!, {r2,r3,r5}
+ stm r1!, {r2,r3,r5}
+ ldm r0!, {r2,r3,r5}
+ stm r1!, {r2,r3,r5}
+ bl sub_8004914
+ mov r0, sp
+ movs r1, 0x1
+ movs r2, 0
+ bl sub_800641C
+ movs r0, 0x1
+ bl sub_8008C54
+ movs r0, 0x1
+ bl sub_80073B8
+ adds r0, r4, 0
+ bl sub_808DDD0
+ adds r5, r0, 0
+ ldr r0, [r5, 0x4]
+ ldr r6, [r0, 0xC]
+ movs r4, 0
+ movs r7, 0x8
+_0803CCC8:
+ adds r0, r4, 0
+ adds r0, 0xE0
+ ldr r1, [r5, 0x4]
+ adds r1, r7
+ lsls r2, r4, 2
+ ldr r1, [r1]
+ adds r1, r2
+ bl SetBGPaletteBufferColorArray
+ adds r4, 0x1
+ cmp r4, 0xF
+ ble _0803CCC8
+ movs r0, 0x1
+ adds r1, r6, 0
+ movs r2, 0xE
+ bl sub_800836C
+ adds r0, r5, 0
+ bl CloseFile
+ movs r0, 0x1
+ bl sub_80073E0
+ add sp, 0x60
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0803CD00: .4byte gUnknown_203B400
+_0803CD04: .4byte gUnknown_80F4244
+ thumb_func_end sub_803CC80
+
+ thumb_func_start sub_803CD08
+sub_803CD08:
+ push {r4-r7,lr}
+ adds r4, r0, 0
+ lsls r4, 16
+ asrs r4, 16
+ bl sub_803CEAC
+ ldr r5, _0803CDB0
+ ldr r0, [r5]
+ movs r3, 0
+ movs r1, 0
+ strh r4, [r0]
+ str r1, [r0, 0x4C]
+ adds r1, r0, 0
+ adds r1, 0x54
+ str r1, [r0, 0x50]
+ ldr r0, _0803CDB4
+ ldm r0!, {r2,r4,r6}
+ stm r1!, {r2,r4,r6}
+ ldm r0!, {r2,r4,r7}
+ stm r1!, {r2,r4,r7}
+ ldr r1, [r5]
+ adds r1, 0x6C
+ ldr r0, _0803CDB8
+ ldm r0!, {r2,r6,r7}
+ stm r1!, {r2,r6,r7}
+ ldm r0!, {r4,r6,r7}
+ stm r1!, {r4,r6,r7}
+ ldr r1, [r5]
+ ldr r2, _0803CDBC
+ adds r1, 0x84
+ adds r0, r2, 0
+ ldm r0!, {r4,r6,r7}
+ stm r1!, {r4,r6,r7}
+ ldm r0!, {r4,r6,r7}
+ stm r1!, {r4,r6,r7}
+ ldr r0, [r5]
+ adds r0, 0x9C
+ ldm r2!, {r1,r4,r6}
+ stm r0!, {r1,r4,r6}
+ ldm r2!, {r1,r4,r7}
+ stm r0!, {r1,r4,r7}
+ ldr r0, [r5]
+ ldr r1, [r0, 0x50]
+ adds r0, 0xB4
+ str r0, [r1, 0x14]
+ movs r1, 0x1
+ strb r1, [r0]
+ ldr r0, [r5]
+ adds r0, 0xB5
+ strb r3, [r0]
+ ldr r0, [r5]
+ adds r0, 0xB6
+ movs r1, 0x6
+ strb r1, [r0]
+ ldr r0, [r5]
+ adds r0, 0xB7
+ strb r3, [r0]
+ bl sub_8004914
+ ldr r0, [r5]
+ adds r0, 0x54
+ movs r1, 0x1
+ movs r2, 0x1
+ bl sub_800641C
+ ldr r4, [r5]
+ adds r4, 0x18
+ bl sub_803D030
+ adds r1, r0, 0
+ ldr r0, [r5]
+ ldr r3, [r0, 0x4C]
+ adds r0, r4, 0
+ movs r2, 0xA
+ bl sub_8013818
+ bl sub_803CEF0
+ bl sub_803CFC0
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0803CDB0: .4byte gUnknown_203B404
+_0803CDB4: .4byte gUnknown_80F4290
+_0803CDB8: .4byte gUnknown_80F42A8
+_0803CDBC: .4byte gUnknown_80F4278
+ thumb_func_end sub_803CD08
+
+ thumb_func_start sub_803CDC0
+sub_803CDC0:
+ push {r4,r5,lr}
+ ldr r4, _0803CDF0
+ ldr r1, [r4]
+ movs r0, 0x30
+ ldrsh r5, [r1, r0]
+ movs r0, 0
+ strb r0, [r1, 0x16]
+ ldr r0, [r4]
+ adds r0, 0x18
+ bl GetKeyPress
+ cmp r0, 0x1
+ bne _0803CDF4
+ movs r0, 0
+ bl sub_80119D4
+ ldr r0, [r4]
+ movs r2, 0x30
+ ldrsh r1, [r0, r2]
+ lsls r1, 1
+ adds r0, 0x2
+ adds r0, r1
+ ldrh r0, [r0]
+ b _0803CE2A
+ .align 2, 0
+_0803CDF0: .4byte gUnknown_203B404
+_0803CDF4:
+ ldr r0, [r4]
+ adds r0, 0x18
+ movs r1, 0x1
+ bl sub_80138B8
+ lsls r0, 24
+ cmp r0, 0
+ beq _0803CE08
+ bl sub_803CEF0
+_0803CE08:
+ ldr r0, [r4]
+ movs r1, 0x30
+ ldrsh r0, [r0, r1]
+ cmp r5, r0
+ beq _0803CE16
+ bl sub_803CFC0
+_0803CE16:
+ ldr r0, [r4]
+ ldrb r0, [r0, 0x16]
+ cmp r0, 0
+ bne _0803CE28
+ ldr r0, _0803CE24
+ b _0803CE2A
+ .align 2, 0
+_0803CE24: .4byte 0x0000ffff
+_0803CE28:
+ ldr r0, _0803CE30
+_0803CE2A:
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0803CE30: .4byte 0x0000fffe
+ thumb_func_end sub_803CDC0
+
+ thumb_func_start sub_803CE34
+sub_803CE34:
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ bl sub_803D030
+ adds r1, r0, 0
+ ldr r5, _0803CE68
+ ldr r0, [r5]
+ strh r1, [r0, 0x3A]
+ adds r0, 0x18
+ bl sub_8013984
+ bl sub_803CEF0
+ bl sub_803CFC0
+ cmp r4, 0
+ beq _0803CE62
+ ldr r0, [r5]
+ adds r0, 0x18
+ bl AddMenuCursorSprite
+_0803CE62:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0803CE68: .4byte gUnknown_203B404
+ thumb_func_end sub_803CE34
+
+ thumb_func_start sub_803CE6C
+sub_803CE6C:
+ push {r4,r5,lr}
+ ldr r4, _0803CEA4
+ ldr r1, [r4]
+ ldr r2, [r1, 0x4C]
+ lsls r0, r2, 1
+ adds r0, r2
+ lsls r0, 3
+ adds r1, r0
+ adds r1, 0x54
+ ldr r0, _0803CEA8
+ ldm r0!, {r2,r3,r5}
+ stm r1!, {r2,r3,r5}
+ ldm r0!, {r2,r3,r5}
+ stm r1!, {r2,r3,r5}
+ bl sub_8004914
+ ldr r0, [r4]
+ adds r0, 0x54
+ movs r1, 0x1
+ movs r2, 0x1
+ bl sub_800641C
+ bl sub_803CECC
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0803CEA4: .4byte gUnknown_203B404
+_0803CEA8: .4byte gUnknown_80F4278
+ thumb_func_end sub_803CE6C
+
+ thumb_func_start sub_803CEAC
+sub_803CEAC:
+ push {r4,lr}
+ ldr r4, _0803CEC4
+ movs r0, 0xB8
+ movs r1, 0x8
+ bl MemoryAlloc
+ str r0, [r4]
+ bl nullsub_135
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0803CEC4: .4byte gUnknown_203B404
+ thumb_func_end sub_803CEAC
+
+ thumb_func_start nullsub_135
+nullsub_135:
+ bx lr
+ thumb_func_end nullsub_135
+
+ thumb_func_start sub_803CECC
+sub_803CECC:
+ push {r4,lr}
+ ldr r4, _0803CEEC
+ ldr r0, [r4]
+ cmp r0, 0
+ beq _0803CEE4
+ bl nullsub_135
+ ldr r0, [r4]
+ bl MemoryFree
+ movs r0, 0
+ str r0, [r4]
+_0803CEE4:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0803CEEC: .4byte gUnknown_203B404
+ thumb_func_end sub_803CECC
+
+ thumb_func_start sub_803CEF0
+sub_803CEF0:
+ push {r4-r6,lr}
+ sub sp, 0x4
+ ldr r6, _0803CF60
+ ldr r0, [r6]
+ movs r1, 0x32
+ ldrsh r0, [r0, r1]
+ movs r1, 0xC
+ bl sub_80095E4
+ adds r0, 0x2
+ lsls r0, 16
+ ldr r2, [r6]
+ ldr r3, [r2, 0x4C]
+ lsls r1, r3, 1
+ adds r1, r3
+ lsls r1, 3
+ adds r1, r2, r1
+ adds r1, 0x62
+ movs r4, 0
+ asrs r3, r0, 16
+ lsrs r0, 16
+ strh r0, [r1]
+ ldr r1, [r2, 0x4C]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 3
+ adds r2, r0
+ adds r3, 0x2
+ adds r2, 0x64
+ strh r3, [r2]
+ bl sub_8004914
+ ldr r0, [r6]
+ adds r0, 0x54
+ movs r1, 0x1
+ movs r2, 0x1
+ bl sub_800641C
+ ldr r0, [r6]
+ ldr r0, [r0, 0x4C]
+ bl sub_8008C54
+ ldr r0, [r6]
+ ldr r0, [r0, 0x4C]
+ bl sub_80073B8
+ ldr r2, _0803CF64
+ ldr r0, [r6]
+ ldr r3, [r0, 0x4C]
+ str r4, [sp]
+ movs r0, 0xC
+ movs r1, 0
+ bl xxx_call_draw_string
+ movs r5, 0
+ b _0803CF98
+ .align 2, 0
+_0803CF60: .4byte gUnknown_203B404
+_0803CF64: .4byte gUnknown_80F42C0
+_0803CF68:
+ ldr r0, [r6]
+ adds r0, 0x18
+ adds r1, r5, 0
+ bl sub_8013800
+ adds r4, r0, 0
+ ldr r0, [r6]
+ lsls r1, r5, 1
+ adds r0, 0x2
+ adds r0, r1
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ bl sub_808D994
+ adds r2, r0, 0
+ ldr r0, [r6]
+ ldr r3, [r0, 0x4C]
+ movs r0, 0
+ str r0, [sp]
+ movs r0, 0x8
+ adds r1, r4, 0
+ bl xxx_call_draw_string
+ adds r5, 0x1
+_0803CF98:
+ ldr r0, [r6]
+ movs r1, 0x32
+ ldrsh r0, [r0, r1]
+ cmp r5, r0
+ blt _0803CF68
+ ldr r4, _0803CFBC
+ ldr r0, [r4]
+ ldr r0, [r0, 0x4C]
+ bl sub_80073E0
+ ldr r1, [r4]
+ movs r0, 0x1
+ strb r0, [r1, 0x16]
+ add sp, 0x4
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0803CFBC: .4byte gUnknown_203B404
+ thumb_func_end sub_803CEF0
+
+ thumb_func_start sub_803CFC0
+sub_803CFC0:
+ push {r4-r7,lr}
+ ldr r0, _0803D02C
+ ldr r0, [r0]
+ movs r2, 0x30
+ ldrsh r1, [r0, r2]
+ lsls r1, 1
+ adds r0, 0x2
+ adds r0, r1
+ movs r1, 0
+ ldrsh r4, [r0, r1]
+ movs r0, 0x1
+ bl sub_8008C54
+ movs r0, 0x1
+ bl sub_80073B8
+ adds r0, r4, 0
+ bl sub_808DDD0
+ adds r5, r0, 0
+ ldr r0, [r5, 0x4]
+ ldr r6, [r0, 0x4]
+ movs r4, 0
+ movs r7, 0
+_0803CFF0:
+ adds r0, r4, 0
+ adds r0, 0xE0
+ ldr r1, [r5, 0x4]
+ adds r1, r7
+ lsls r2, r4, 2
+ ldr r1, [r1]
+ adds r1, r2
+ bl SetBGPaletteBufferColorArray
+ adds r4, 0x1
+ cmp r4, 0xF
+ ble _0803CFF0
+ movs r0, 0x1
+ adds r1, r6, 0
+ movs r2, 0xE
+ bl sub_800836C
+ adds r0, r5, 0
+ bl CloseFile
+ movs r0, 0x1
+ bl sub_80073E0
+ ldr r0, _0803D02C
+ ldr r1, [r0]
+ movs r0, 0x1
+ strb r0, [r1, 0x16]
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0803D02C: .4byte gUnknown_203B404
+ thumb_func_end sub_803CFC0
+
+ thumb_func_start sub_803D030
+sub_803D030:
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ sub sp, 0x8
+ movs r0, 0
+ mov r8, r0
+ ldr r4, _0803D0D0
+ ldr r0, [r4]
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ movs r1, 0
+ bl sub_808DC68
+ mov r1, sp
+ strb r0, [r1]
+ ldr r0, [r4]
+ movs r2, 0
+ ldrsh r0, [r0, r2]
+ movs r1, 0x1
+ bl sub_808DC68
+ mov r1, sp
+ strb r0, [r1, 0x1]
+ movs r7, 0
+ add r6, sp, 0x4
+ mov r5, sp
+_0803D064:
+ ldr r0, _0803D0D4
+ lsls r1, r7, 1
+ adds r1, r0
+ movs r0, 0
+ ldrsh r4, [r1, r0]
+ adds r0, r4, 0
+ movs r1, 0
+ bl sub_808DC68
+ strb r0, [r6]
+ adds r0, r4, 0
+ movs r1, 0x1
+ bl sub_808DC68
+ adds r2, r0, 0
+ strb r2, [r6, 0x1]
+ ldrb r1, [r6]
+ cmp r1, 0
+ beq _0803D096
+ ldrb r0, [r5]
+ cmp r1, r0
+ beq _0803D0BC
+ ldrb r0, [r5, 0x1]
+ cmp r1, r0
+ beq _0803D0BC
+_0803D096:
+ lsls r0, r2, 24
+ lsrs r1, r0, 24
+ cmp r1, 0
+ beq _0803D0AA
+ ldrb r2, [r5]
+ cmp r1, r2
+ beq _0803D0BC
+ ldrb r0, [r5, 0x1]
+ cmp r1, r0
+ beq _0803D0BC
+_0803D0AA:
+ ldr r0, _0803D0D0
+ ldr r0, [r0]
+ mov r2, r8
+ lsls r1, r2, 1
+ adds r0, 0x2
+ adds r0, r1
+ strh r4, [r0]
+ movs r0, 0x1
+ add r8, r0
+_0803D0BC:
+ adds r7, 0x1
+ cmp r7, 0x9
+ ble _0803D064
+ mov r0, r8
+ add sp, 0x8
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0803D0D0: .4byte gUnknown_203B404
+_0803D0D4: .4byte gPartners
+ thumb_func_end sub_803D030
+
+ .align 2,0
diff --git a/include/dungeon.h b/include/dungeon.h
index 96cc579..faf58e5 100644
--- a/include/dungeon.h
+++ b/include/dungeon.h
@@ -27,5 +27,6 @@ struct Dungeon
extern struct Dungeon gDungeons[];
extern struct DungeonName gDungeonNames[];
+const u8 *GetDungeonName1(u8 dungeon);
#endif //GUARD_DUNGEON_H
diff --git a/ld_script.txt b/ld_script.txt
index 28ed166..86faeb8 100755
--- a/ld_script.txt
+++ b/ld_script.txt
@@ -97,7 +97,8 @@ SECTIONS {
asm/code_801D760.o(.text);
src/code_8027C84_pre.o(.text);
asm/code_8027C84.o(.text);
- src/code_8027C84.o(.text);
+ asm/personality_test.o(.text);
+ src/personality_test.o(.text);
asm/code_803D110.o(.text);
src/code_8040094.o(.text);
asm/code_8040094.o(.text);
@@ -124,6 +125,8 @@ SECTIONS {
asm/code_8092334.o(.text);
src/code_8094F88.o(.text);
asm/code_8095014.o(.text);
+ src/code_809747C.o(.text);
+ asm/code_809747C.o(.text);
src/code_8097F40.o(.text);
asm/code_8097F40.o(.text);
asm/code_8098468.o(.text);
diff --git a/src/code_8027C84.c b/src/code_8027C84.c
deleted file mode 100644
index e21400c..0000000
--- a/src/code_8027C84.c
+++ /dev/null
@@ -1,25 +0,0 @@
-#include "global.h"
-
-extern u8 gUnknown_80F42D0[];
-extern u8 gUnknown_80F42F0[];
-extern u8 gUnknown_203B408;
-
-u8 sub_803D0D8()
-{
- return gUnknown_203B408;
-}
-
-void sub_803D0E4(u8 r0)
-{
- gUnknown_203B408 = r0;
-}
-
-u8 sub_803D0F0(u8 r0)
-{
- return gUnknown_80F42F0[r0];
-}
-
-u8 sub_803D100(u8 r0)
-{
- return gUnknown_80F42D0[r0];
-}
diff --git a/src/code_809747C.c b/src/code_809747C.c
new file mode 100644
index 0000000..56e057e
--- /dev/null
+++ b/src/code_809747C.c
@@ -0,0 +1,81 @@
+#include "global.h"
+#include "dungeon.h"
+
+extern u32 *gStoryMissionText[];
+extern const u8 gDummyScenarioText;
+extern u32 gUnknown_8109CC0;
+extern u8 sub_80A270C();
+extern void sub_80015C0(u8, u8);
+
+const u8 *sub_809747C(s16 r0)
+{
+ if(r0 == 0xD)
+ {
+ return &gDummyScenarioText;
+ }
+ else
+ {
+ return GetDungeonName1(sub_80A270C());
+ }
+}
+
+const u8 *sub_80974A0(s16 r0)
+{
+ if(r0 == 0xD)
+ {
+ return &gDummyScenarioText;
+ }
+ else
+ {
+ return GetDungeonName1(sub_80A270C());
+ }
+}
+
+#ifndef NONMATCHING
+NAKED
+#endif
+u32 *sub_80974C4(s16 r0)
+{
+#ifdef NONMATCHING
+ // TODO fix regswap memes of r0/r1
+ if(r0 <= 0x1E)
+ {
+ return gStoryMissionText[(r0 << 1)];
+ }
+ else
+ {
+ return &gUnknown_8109CC0;
+ }
+#else
+ asm_unified("\tpush {lr}\n"
+ "\tlsls r0, 16\n"
+ "\tasrs r0, 16\n"
+ "\tcmp r0, 0x1E\n"
+ "\tble _080974D8\n"
+ "\tldr r0, _080974D4\n"
+ "\tb _080974E0\n"
+ "\t.align 2, 0\n"
+"_080974D4: .4byte gUnknown_8109CC0\n"
+"_080974D8:\n"
+ "\tlsls r0, 3\n"
+ "\tldr r1, _080974E4\n"
+ "\tadds r0, r1\n"
+ "\tldr r0, [r0]\n"
+"_080974E0:\n"
+ "\tpop {r1}\n"
+ "\tbx r1\n"
+ "\t.align 2, 0\n"
+"_080974E4: .4byte gStoryMissionText");
+
+#endif
+}
+
+void sub_80974E8(void)
+{
+ sub_80015C0(0, 0x2E);
+ sub_80015C0(0, 0x2F);
+}
+
+void nullsub_208(void)
+{
+}
diff --git a/src/personality_test.c b/src/personality_test.c
index bac1b89..c0562e4 100644
--- a/src/personality_test.c
+++ b/src/personality_test.c
@@ -28,3 +28,28 @@ const u16 gPartners[10] =
SPECIES_MUDKIP
};
+extern u8 gUnknown_80F42D0[];
+extern u8 gUnknown_80F42F0[];
+extern u8 gUnknown_203B408;
+
+u8 sub_803D0D8()
+{
+ return gUnknown_203B408;
+}
+
+void sub_803D0E4(u8 r0)
+{
+ gUnknown_203B408 = r0;
+}
+
+u8 sub_803D0F0(u8 r0)
+{
+ return gUnknown_80F42F0[r0];
+}
+
+u8 sub_803D100(u8 r0)
+{
+ return gUnknown_80F42D0[r0];
+}
+
+