summaryrefslogtreecommitdiff
path: root/asm
diff options
context:
space:
mode:
Diffstat (limited to 'asm')
-rw-r--r--asm/code_8009804.s140
-rw-r--r--asm/code_80428A0.s2
-rw-r--r--asm/code_80521D0.s102
-rw-r--r--asm/code_809D148.s14
-rw-r--r--asm/code_80A7714.s8
-rw-r--r--asm/credits.s479
-rw-r--r--asm/main_menu.s12746
-rw-r--r--asm/wonder_mail.s13751
8 files changed, 13288 insertions, 13954 deletions
diff --git a/asm/code_8009804.s b/asm/code_8009804.s
index edd2bd1..809ec8a 100644
--- a/asm/code_8009804.s
+++ b/asm/code_8009804.s
@@ -5,146 +5,6 @@
.text
- thumb_func_start vram_related_8009804
-vram_related_8009804:
- push {lr}
- movs r1, 0xC0
- lsls r1, 19
- movs r0, 0
- ldr r3, _0800987C
- movs r2, 0
-_08009810:
- stm r1!, {r2}
- adds r0, 0x1
- cmp r0, r3
- bls _08009810
- ldr r1, _08009880
- movs r0, 0
- ldr r3, _08009884
- movs r2, 0
-_08009820:
- stm r1!, {r2}
- adds r0, 0x1
- cmp r0, r3
- bls _08009820
- ldr r1, _08009888
- movs r0, 0
- ldr r3, _0800988C
- movs r2, 0
-_08009830:
- stm r1!, {r2}
- adds r0, 0x1
- cmp r0, r3
- bls _08009830
- ldr r1, _08009890
- movs r0, 0
- ldr r3, _08009894
- movs r2, 0
-_08009840:
- stm r1!, {r2}
- adds r0, 0x1
- cmp r0, r3
- bls _08009840
- movs r1, 0xA0
- lsls r1, 19
- movs r0, 0
- movs r2, 0
-_08009850:
- stm r1!, {r2}
- adds r0, 0x1
- cmp r0, 0x77
- bls _08009850
- ldr r1, _08009898
- movs r0, 0
- movs r2, 0
-_0800985E:
- stm r1!, {r2}
- adds r0, 0x1
- cmp r0, 0x77
- bls _0800985E
- movs r1, 0xE0
- lsls r1, 19
- movs r0, 0
- ldr r2, _0800989C
-_0800986E:
- stm r1!, {r2}
- adds r0, 0x1
- cmp r0, 0xFF
- bls _0800986E
- pop {r0}
- bx r0
- .align 2, 0
-_0800987C: .4byte 0x000013bf
-_08009880: .4byte 0x06007000
-_08009884: .4byte 0x000003ff
-_08009888: .4byte 0x06008000
-_0800988C: .4byte 0x00001fff
-_08009890: .4byte 0x06010000
-_08009894: .4byte 0x00001f7f
-_08009898: .4byte 0x05000200
-_0800989C: .4byte 0x00a000a0
- thumb_func_end vram_related_8009804
-
- thumb_func_start sub_80098A0
-sub_80098A0:
- ldr r0, _080098B4
- movs r1, 0
- str r1, [r0]
- ldr r0, _080098B8
- strb r1, [r0]
- strb r1, [r0, 0x1]
- strb r1, [r0, 0x2]
- strb r1, [r0, 0x3]
- bx lr
- .align 2, 0
-_080098B4: .4byte gUnknown_202D23C
-_080098B8: .4byte gUnknown_202D238
- thumb_func_end sub_80098A0
-
- thumb_func_start sub_80098BC
-sub_80098BC:
- push {r4-r7,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- adds r6, r2, 0
- ldr r7, _080098F0
- ldr r3, [r7]
- cmp r3, 0x7
- bgt _080098E8
- ldr r2, _080098F4
- lsls r1, r3, 1
- adds r1, r3
- lsls r1, 2
- adds r0, r1, r2
- str r4, [r0]
- adds r0, r2, 0x4
- adds r0, r1, r0
- str r5, [r0]
- adds r2, 0x8
- adds r1, r2
- str r6, [r1]
- adds r0, r3, 0x1
- str r0, [r7]
-_080098E8:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080098F0: .4byte gUnknown_202D23C
-_080098F4: .4byte gUnknown_202D240
- thumb_func_end sub_80098BC
-
- thumb_func_start sub_80098F8
-sub_80098F8:
- ldr r1, _08009904
- adds r0, r1
- movs r1, 0x1
- strb r1, [r0]
- bx lr
- .align 2, 0
-_08009904: .4byte gUnknown_202D238
- thumb_func_end sub_80098F8
-
thumb_func_start sub_8009908
sub_8009908:
push {r4-r7,lr}
diff --git a/asm/code_80428A0.s b/asm/code_80428A0.s
index 3314b15..6c37244 100644
--- a/asm/code_80428A0.s
+++ b/asm/code_80428A0.s
@@ -1516,7 +1516,7 @@ _08043706:
strb r5, [r0, 0x5]
cmp r6, 0
bne _08043778
- bl sub_8084B64
+ bl DisplayPreFightDialogue
ldr r1, [r4]
ldrb r0, [r1, 0x4]
cmp r0, 0
diff --git a/asm/code_80521D0.s b/asm/code_80521D0.s
index 2e47ea9..672fffb 100644
--- a/asm/code_80521D0.s
+++ b/asm/code_80521D0.s
@@ -101583,8 +101583,8 @@ _08084B5C:
bx r0
thumb_func_end sub_80848F0
- thumb_func_start sub_8084B64
-sub_8084B64:
+ thumb_func_start DisplayPreFightDialogue
+DisplayPreFightDialogue:
push {lr}
ldr r0, _08084B80
ldr r0, [r0]
@@ -101668,7 +101668,7 @@ _08084B8C:
.4byte _08084DD6
.4byte _08084DDA
_08084C80:
- bl sub_8086C0C
+ bl SkarmonyPreFightDialogue
b _08084DDA
_08084C86:
bl sub_8086DAC
@@ -101761,22 +101761,22 @@ _08084D34:
bl sub_8089D2C
b _08084DDA
_08084D3A:
- bl sub_8089D8C
+ bl EnteiPreFightDialogue1
b _08084DDA
_08084D40:
- bl sub_8089DEC
+ bl EnteiPreFightDialogue
b _08084DDA
_08084D46:
- bl sub_808A020
+ bl RaikouPreFightDialogue
b _08084DDA
_08084D4C:
- bl sub_808A0C8
+ bl RaikouPreFightDialogue1
b _08084DDA
_08084D52:
- bl sub_808A144
+ bl RaikouPreFightDialogue2
b _08084DDA
_08084D58:
- bl sub_808A39C
+ bl SuicunePreFightDialogue
b _08084DDA
_08084D5E:
bl sub_808A454
@@ -101788,10 +101788,10 @@ _08084D6A:
bl sub_808A724
b _08084DDA
_08084D70:
- bl sub_808A828
+ bl HoOhPreFightDialogue
b _08084DDA
_08084D76:
- bl sub_808AB20
+ bl LatiosPreFightDialogue
b _08084DDA
_08084D7C:
bl sub_808ABD8
@@ -101815,10 +101815,10 @@ _08084DA0:
bl sub_808BA78
b _08084DDA
_08084DA6:
- bl sub_808BE94
+ bl LugiaPreFightDialogue
b _08084DDA
_08084DAC:
- bl sub_808C1CC
+ bl KyogrePreFightDialogue
b _08084DDA
_08084DB2:
bl sub_808C43C
@@ -101855,7 +101855,7 @@ _08084DDA:
.align 2, 0
_08084DF8: .4byte gUnknown_203B418
_08084DFC: .4byte 0x0001356c
- thumb_func_end sub_8084B64
+ thumb_func_end DisplayPreFightDialogue
thumb_func_start sub_8084E00
sub_8084E00:
@@ -105598,8 +105598,8 @@ _08086C02:
_08086C08: .4byte gUnknown_203B418
thumb_func_end sub_8086BDC
- thumb_func_start sub_8086C0C
-sub_8086C0C:
+ thumb_func_start SkarmonyPreFightDialogue
+SkarmonyPreFightDialogue:
push {r4-r6,lr}
mov r6, r9
mov r5, r8
@@ -105758,7 +105758,7 @@ _08086D9C: .4byte gUnknown_8100928
_08086DA0: .4byte gUnknown_8100A04
_08086DA4: .4byte gUnknown_8100B80
_08086DA8: .4byte gUnknown_8100BC0
- thumb_func_end sub_8086C0C
+ thumb_func_end SkarmonyPreFightDialogue
thumb_func_start sub_8086DAC
sub_8086DAC:
@@ -110953,8 +110953,8 @@ _08089D84: .4byte gUnknown_81041AC
_08089D88: .4byte gUnknown_81041F8
thumb_func_end sub_8089D2C
- thumb_func_start sub_8089D8C
-sub_8089D8C:
+ thumb_func_start EnteiPreFightDialogue1
+EnteiPreFightDialogue1:
push {r4,r5,lr}
bl sub_8085480
adds r4, r0, 0
@@ -110989,10 +110989,10 @@ sub_8089D8C:
_08089DE0: .4byte gUnknown_8104240
_08089DE4: .4byte gUnknown_81042AC
_08089DE8: .4byte gUnknown_81042B8
- thumb_func_end sub_8089D8C
+ thumb_func_end EnteiPreFightDialogue1
- thumb_func_start sub_8089DEC
-sub_8089DEC:
+ thumb_func_start EnteiPreFightDialogue
+EnteiPreFightDialogue:
push {r4,r5,lr}
bl sub_8085480
adds r5, r0, 0
@@ -111040,7 +111040,7 @@ _08089E54:
_08089E5C: .4byte gUnknown_8104310
_08089E60: .4byte gUnknown_810439C
_08089E64: .4byte gUnknown_81043C0
- thumb_func_end sub_8089DEC
+ thumb_func_end EnteiPreFightDialogue
thumb_func_start sub_8089E68
sub_8089E68:
@@ -111249,8 +111249,8 @@ _0808A016:
_0808A01C: .4byte gUnknown_203B418
thumb_func_end sub_8089FF0
- thumb_func_start sub_808A020
-sub_808A020:
+ thumb_func_start RaikouPreFightDialogue
+RaikouPreFightDialogue:
push {r4,r5,lr}
bl sub_8085480
adds r4, r0, 0
@@ -111309,10 +111309,10 @@ _0808A0B8: .4byte gUnknown_810453C
_0808A0BC: .4byte gUnknown_8104570
_0808A0C0: .4byte gUnknown_81045B0
_0808A0C4: .4byte 0x0000028a
- thumb_func_end sub_808A020
+ thumb_func_end RaikouPreFightDialogue
- thumb_func_start sub_808A0C8
-sub_808A0C8:
+ thumb_func_start RaikouPreFightDialogue1
+RaikouPreFightDialogue1:
push {r4,r5,lr}
bl sub_8085480
adds r4, r0, 0
@@ -111358,10 +111358,10 @@ _0808A134: .4byte gUnknown_81045F8
_0808A138: .4byte gUnknown_8104674
_0808A13C: .4byte gUnknown_81046A0
_0808A140: .4byte 0x0000028a
- thumb_func_end sub_808A0C8
+ thumb_func_end RaikouPreFightDialogue1
- thumb_func_start sub_808A144
-sub_808A144:
+ thumb_func_start RaikouPreFightDialogue2
+RaikouPreFightDialogue2:
push {r4,r5,lr}
bl sub_8085480
adds r5, r0, 0
@@ -111419,7 +111419,7 @@ _0808A1C8: .4byte gUnknown_81046CC
_0808A1CC: .4byte gUnknown_8104744
_0808A1D0: .4byte gUnknown_810476C
_0808A1D4: .4byte 0x0000028a
- thumb_func_end sub_808A144
+ thumb_func_end RaikouPreFightDialogue2
thumb_func_start sub_808A1D8
sub_808A1D8:
@@ -111630,8 +111630,8 @@ _0808A392:
_0808A398: .4byte gUnknown_203B418
thumb_func_end sub_808A36C
- thumb_func_start sub_808A39C
-sub_808A39C:
+ thumb_func_start SuicunePreFightDialogue
+SuicunePreFightDialogue:
push {r4,r5,lr}
bl sub_8085480
adds r4, r0, 0
@@ -111695,7 +111695,7 @@ _0808A444: .4byte gUnknown_8104888
_0808A448: .4byte gUnknown_81048C8
_0808A44C: .4byte gUnknown_8104914
_0808A450: .4byte 0x0000028a
- thumb_func_end sub_808A39C
+ thumb_func_end SuicunePreFightDialogue
thumb_func_start sub_808A454
sub_808A454:
@@ -112120,8 +112120,8 @@ _0808A820: .4byte gUnknown_8104CB4
_0808A824: .4byte gUnknown_8104CE0
thumb_func_end sub_808A724
- thumb_func_start sub_808A828
-sub_808A828:
+ thumb_func_start HoOhPreFightDialogue
+HoOhPreFightDialogue:
push {r4,r5,lr}
sub sp, 0x8
bl sub_8085480
@@ -112202,7 +112202,7 @@ _0808A8F4: .4byte sub_8086910
_0808A8F8: .4byte gUnknown_8104D60
_0808A8FC: .4byte gUnknown_8104DDC
_0808A900: .4byte gUnknown_8104E0C
- thumb_func_end sub_808A828
+ thumb_func_end HoOhPreFightDialogue
thumb_func_start sub_808A904
sub_808A904:
@@ -112453,8 +112453,8 @@ _0808AB16:
_0808AB1C: .4byte gUnknown_203B418
thumb_func_end sub_808AAF0
- thumb_func_start sub_808AB20
-sub_808AB20:
+ thumb_func_start LatiosPreFightDialogue
+LatiosPreFightDialogue:
push {r4,r5,lr}
sub sp, 0x10
bl sub_8085480
@@ -112524,7 +112524,7 @@ _0808ABC8: .4byte 0x000001bd
_0808ABCC: .4byte gUnknown_8104E60
_0808ABD0: .4byte gUnknown_8104EFC
_0808ABD4: .4byte gUnknown_8104F30
- thumb_func_end sub_808AB20
+ thumb_func_end LatiosPreFightDialogue
thumb_func_start sub_808ABD8
sub_808ABD8:
@@ -113495,7 +113495,7 @@ _0808B418:
lsls r0, 24
cmp r0, 0
beq _0808B43C
- bl sub_808B5B8
+ bl JirachiWish
b _0808B440
.align 2, 0
_0808B434: .4byte gUnknown_203B418
@@ -113655,8 +113655,8 @@ _0808B5B0: .4byte gUnknown_81055F4
_0808B5B4: .4byte gUnknown_203B418
thumb_func_end sub_808B50C
- thumb_func_start sub_808B5B8
-sub_808B5B8:
+ thumb_func_start JirachiWish
+JirachiWish:
push {r4-r7,lr}
mov r7, r10
mov r6, r9
@@ -114155,7 +114155,7 @@ _0808BA68: .4byte gUnknown_203B418
_0808BA6C: .4byte 0x00000674
_0808BA70: .4byte gUnknown_81058E0
_0808BA74: .4byte gUnknown_810593C
- thumb_func_end sub_808B5B8
+ thumb_func_end JirachiWish
thumb_func_start sub_808BA78
sub_808BA78:
@@ -114662,8 +114662,8 @@ _0808BE8A:
_0808BE90: .4byte gUnknown_203B418
thumb_func_end sub_808BE70
- thumb_func_start sub_808BE94
-sub_808BE94:
+ thumb_func_start LugiaPreFightDialogue
+LugiaPreFightDialogue:
push {r4-r6,lr}
sub sp, 0x4
bl sub_8085480
@@ -114762,7 +114762,7 @@ _0808BF90: .4byte gUnknown_8105F74
_0808BF94: .4byte gUnknown_8105FA0
_0808BF98: .4byte gUnknown_8105FD8
_0808BF9C: .4byte gUnknown_8106024
- thumb_func_end sub_808BE94
+ thumb_func_end LugiaPreFightDialogue
thumb_func_start sub_808BFA0
sub_808BFA0:
@@ -115024,8 +115024,8 @@ _0808C1C4:
_0808C1C8: .4byte gUnknown_203B418
thumb_func_end sub_808C1A4
- thumb_func_start sub_808C1CC
-sub_808C1CC:
+ thumb_func_start KyogrePreFightDialogue
+KyogrePreFightDialogue:
push {r4,r5,lr}
bl sub_8085480
adds r4, r0, 0
@@ -115121,7 +115121,7 @@ _0808C2C0: .4byte gUnknown_8106140
_0808C2C4: .4byte gUnknown_8106214
_0808C2C8: .4byte gUnknown_8106244
_0808C2CC: .4byte gUnknown_810627C
- thumb_func_end sub_808C1CC
+ thumb_func_end KyogrePreFightDialogue
thumb_func_start nullsub_99
nullsub_99:
diff --git a/asm/code_809D148.s b/asm/code_809D148.s
index a48ad08..410ed17 100644
--- a/asm/code_809D148.s
+++ b/asm/code_809D148.s
@@ -701,7 +701,7 @@ sub_809D710:
ldrb r0, [r4, 0x12]
b _0809D746
.align 2, 0
-_0809D73C: .4byte gUnknown_812F1F8
+_0809D73C: .4byte gFunctionScriptTable
_0809D740:
ldr r0, _0809D750
strh r0, [r3, 0x6]
@@ -3937,7 +3937,7 @@ _0809F442:
ldrsh r2, [r0, r3]
b _0809F4B6
.align 2, 0
-_0809F4AC: .4byte gUnknown_812F1F8
+_0809F4AC: .4byte gFunctionScriptTable
_0809F4B0:
mov r4, r10
movs r5, 0xC
@@ -4023,7 +4023,7 @@ _0809F4FE:
ldrsh r2, [r0, r4]
b _0809F566
.align 2, 0
-_0809F55C: .4byte gUnknown_812F1F8
+_0809F55C: .4byte gFunctionScriptTable
_0809F560:
mov r5, r10
movs r0, 0xC
@@ -7677,7 +7677,7 @@ _080A1344:
str r0, [r1, 0x8]
bl _0809EAE0
.align 2, 0
-_080A1364: .4byte gUnknown_812F1F8
+_080A1364: .4byte gFunctionScriptTable
_080A1368:
mov r1, r10
adds r1, 0x10
@@ -7862,7 +7862,7 @@ _080A14C4:
movs r0, 0
b _080A14DE
.align 2, 0
-_080A14C8: .4byte gUnknown_812F1F8
+_080A14C8: .4byte gFunctionScriptTable
_080A14CC: .4byte gUnknown_8116488
_080A14D0: .4byte gUnknown_81166F8
_080A14D4: .4byte gUnknown_81164E4
@@ -8081,7 +8081,7 @@ _080A1720:
_080A1726:
bl _080A236A
.align 2, 0
-_080A172C: .4byte gUnknown_813237C
+_080A172C: .4byte gFriendAreaDialogue
_080A1730:
movs r0, 0
movs r1, 0x14
@@ -9374,7 +9374,7 @@ _080A2182:
bl _call_via_r2
b _080A1EBE
.align 2, 0
-_080A21D8: .4byte gUnknown_812F1F8
+_080A21D8: .4byte gFunctionScriptTable
_080A21DC: .4byte 0x00001310
_080A21E0: .4byte 0xfffffc00
_080A21E4:
diff --git a/asm/code_80A7714.s b/asm/code_80A7714.s
index 64ef659..6717a3c 100644
--- a/asm/code_80A7714.s
+++ b/asm/code_80A7714.s
@@ -1846,7 +1846,7 @@ _080A860C:
b _080A865A
.align 2, 0
_080A861C: .4byte gUnknown_8117F10
-_080A8620: .4byte gUnknown_812F1F8
+_080A8620: .4byte gFunctionScriptTable
_080A8624: .4byte gUnknown_3001B80
_080A8628: .4byte gUnknown_811817C
_080A862C: .4byte gUnknown_8118188
@@ -9431,7 +9431,7 @@ _080AC142:
_080AC154: .4byte gUnknown_81182A0
_080AC158: .4byte gUnknown_81182F4
_080AC15C: .4byte gUnknown_8118350
-_080AC160: .4byte gUnknown_812F1F8
+_080AC160: .4byte gFunctionScriptTable
_080AC164: .4byte gUnknown_81184A4
thumb_func_end GroundObject_Add
@@ -11225,7 +11225,7 @@ GroundEffect_Add:
movs r6, 0
b _080ACE38
.align 2, 0
-_080ACE08: .4byte gUnknown_811EE38
+_080ACE08: .4byte gFunctionScriptData
_080ACE0C: .4byte gUnknown_3001B8C
_080ACE10:
adds r0, r2, 0x1
@@ -11542,7 +11542,7 @@ _080AD062:
bx r1
.align 2, 0
_080AD074: .4byte gUnknown_8118544
-_080AD078: .4byte gUnknown_812F1F8
+_080AD078: .4byte gFunctionScriptTable
_080AD07C: .4byte gUnknown_81186CC
thumb_func_end GroundEffect_Add
diff --git a/asm/credits.s b/asm/credits.s
new file mode 100644
index 0000000..f42c628
--- /dev/null
+++ b/asm/credits.s
@@ -0,0 +1,479 @@
+ .include "constants/gba_constants.inc"
+ .include "asm/macros.inc"
+
+ .syntax unified
+
+ .text
+
+ thumb_func_start sub_8035404
+sub_8035404:
+ push {r4,lr}
+ sub sp, 0x4
+ adds r4, r0, 0
+ mov r0, sp
+ bl sub_80144A4
+ cmp r0, 0
+ bne _0803541A
+ adds r0, r4, 0
+ bl sub_80338C4
+_0803541A:
+ add sp, 0x4
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8035404
+
+ thumb_func_start sub_8035424
+sub_8035424:
+ push {lr}
+ movs r0, 0x6
+ bl sub_80338C4
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8035424
+
+ thumb_func_start sub_8035430
+sub_8035430:
+ push {lr}
+ movs r0, 0x4F
+ bl sub_80338C4
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8035430
+
+ thumb_func_start nullsub_50
+nullsub_50:
+ bx lr
+ thumb_func_end nullsub_50
+
+ thumb_func_start nullsub_51
+nullsub_51:
+ bx lr
+ thumb_func_end nullsub_51
+
+ thumb_func_start sub_8035444
+sub_8035444:
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ sub sp, 0x84
+ mov r8, r0
+ adds r5, r1, 0
+ ldr r4, _080354C0
+ movs r0, 0x6C
+ movs r1, 0x8
+ bl MemoryAlloc
+ str r0, [r4]
+ movs r1, 0
+ str r1, [r0, 0x60]
+ str r5, [r0, 0x64]
+ mov r1, r8
+ str r1, [r0, 0x68]
+ ldr r2, _080354C4
+ mov r12, r2
+ mov r9, r4
+ movs r3, 0
+ movs r2, 0x3
+_08035472:
+ ldr r1, [r4]
+ adds r1, r3
+ mov r0, r12
+ ldm r0!, {r5-r7}
+ stm r1!, {r5-r7}
+ ldm r0!, {r5-r7}
+ stm r1!, {r5-r7}
+ adds r3, 0x18
+ subs r2, 0x1
+ cmp r2, 0
+ bge _08035472
+ mov r0, r9
+ ldr r1, [r0]
+ ldr r0, _080354C8
+ ldm r0!, {r2-r4}
+ stm r1!, {r2-r4}
+ ldm r0!, {r5-r7}
+ stm r1!, {r5-r7}
+ bl ResetUnusedInputStruct
+ mov r1, r9
+ ldr r0, [r1]
+ movs r1, 0x1
+ movs r2, 0x1
+ bl sub_800641C
+ movs r0, 0x2
+ bl sub_8099690
+ movs r0, 0
+ bl sub_80073B8
+ mov r2, r8
+ lsls r0, r2, 2
+ ldr r1, _080354CC
+ adds r0, r1
+ ldr r1, [r0]
+ movs r5, 0
+ b _08035542
+ .align 2, 0
+_080354C0: .4byte gUnknown_203B340
+_080354C4: .4byte gUnknown_80E4A10
+_080354C8: .4byte gUnknown_80E4A28
+_080354CC: .4byte gUnknown_80E591C
+_080354D0:
+ ldr r2, [r1, 0x8]
+ movs r3, 0x4
+ ldrsh r0, [r1, r3]
+ cmp r0, 0
+ blt _080354DE
+ adds r5, r0, 0
+ b _080354E4
+_080354DE:
+ movs r6, 0x4
+ ldrsh r0, [r1, r6]
+ subs r5, r0
+_080354E4:
+ movs r7, 0x2
+ ldrsh r6, [r1, r7]
+ movs r3, 0
+ ldrsh r0, [r1, r3]
+ cmp r0, 0x1
+ beq _080354FA
+ cmp r0, 0x2
+ beq _08035514
+ adds r4, r1, 0
+ adds r4, 0xC
+ b _08035532
+_080354FA:
+ add r3, sp, 0x4
+ ldrb r0, [r2]
+ adds r4, r1, 0
+ adds r4, 0xC
+ cmp r0, 0
+ beq _0803552C
+_08035506:
+ strb r0, [r3]
+ adds r2, 0x1
+ adds r3, 0x1
+ ldrb r0, [r2]
+ cmp r0, 0
+ bne _08035506
+ b _0803552C
+_08035514:
+ add r3, sp, 0x4
+ ldrb r0, [r2]
+ adds r4, r1, 0
+ adds r4, 0xC
+ cmp r0, 0
+ beq _0803552C
+_08035520:
+ strb r0, [r3]
+ adds r2, 0x1
+ adds r3, 0x1
+ ldrb r0, [r2]
+ cmp r0, 0
+ bne _08035520
+_0803552C:
+ movs r0, 0
+ strb r0, [r3]
+ add r2, sp, 0x4
+_08035532:
+ movs r0, 0
+ str r0, [sp]
+ adds r0, r6, 0
+ adds r1, r5, 0
+ movs r3, 0
+ bl xxx_call_draw_string
+ adds r1, r4, 0
+_08035542:
+ ldr r0, [r1, 0x8]
+ cmp r0, 0
+ bne _080354D0
+ movs r0, 0
+ bl sub_80073E0
+ movs r0, 0
+ bl SelectCharmap
+ ldr r2, _08035570
+ movs r0, 0x9
+ movs r1, 0
+ ldr r2, [r2]
+ bl sub_8099AFC
+ movs r0, 0x1
+ add sp, 0x84
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08035570: .4byte gCreditsTable
+ thumb_func_end sub_8035444
+
+ thumb_func_start sub_8035574
+sub_8035574:
+ push {r4,lr}
+ ldr r1, _0803558C
+ ldr r0, [r1]
+ ldr r0, [r0, 0x60]
+ adds r4, r1, 0
+ cmp r0, 0x4
+ bhi _08035654
+ lsls r0, 2
+ ldr r1, _08035590
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_0803558C: .4byte gUnknown_203B340
+_08035590: .4byte _08035594
+ .align 2, 0
+_08035594:
+ .4byte _080355A8
+ .4byte _080355D0
+ .4byte _080355E8
+ .4byte _08035610
+ .4byte _08035638
+_080355A8:
+ bl sub_8099B94
+ lsls r0, 24
+ cmp r0, 0
+ bne _08035654
+ ldr r0, _080355C8
+ ldr r1, [r0]
+ movs r0, 0x1
+ str r0, [r1, 0x60]
+ ldr r2, _080355CC
+ movs r0, 0x9
+ movs r1, 0x1E
+ ldr r2, [r2]
+ bl sub_8099A5C
+ b _08035654
+ .align 2, 0
+_080355C8: .4byte gUnknown_203B340
+_080355CC: .4byte gCreditsTable
+_080355D0:
+ bl sub_8099B94
+ lsls r0, 24
+ cmp r0, 0
+ bne _08035654
+ ldr r0, _080355E4
+ ldr r1, [r0]
+ movs r0, 0x2
+ str r0, [r1, 0x60]
+ b _08035654
+ .align 2, 0
+_080355E4: .4byte gUnknown_203B340
+_080355E8:
+ ldr r1, [r4]
+ ldr r0, [r1, 0x64]
+ cmp r0, 0
+ bgt _08035600
+ movs r0, 0x3
+ str r0, [r1, 0x60]
+ ldr r2, _0803560C
+ movs r0, 0x9
+ movs r1, 0x1E
+ ldr r2, [r2]
+ bl sub_8099AFC
+_08035600:
+ ldr r1, [r4]
+ ldr r0, [r1, 0x64]
+ subs r0, 0x1
+ str r0, [r1, 0x64]
+ b _08035654
+ .align 2, 0
+_0803560C: .4byte gCreditsTable
+_08035610:
+ bl sub_8099B94
+ lsls r0, 24
+ cmp r0, 0
+ bne _08035654
+ bl ResetUnusedInputStruct
+ movs r0, 0
+ movs r1, 0x1
+ movs r2, 0x1
+ bl sub_800641C
+ ldr r0, _08035634
+ ldr r1, [r0]
+ movs r0, 0x4
+ str r0, [r1, 0x60]
+ b _08035654
+ .align 2, 0
+_08035634: .4byte gUnknown_203B340
+_08035638:
+ movs r0, 0
+ bl sub_8099690
+ ldr r2, _08035650
+ movs r0, 0x1
+ movs r1, 0
+ ldr r2, [r2]
+ bl sub_8099A5C
+ movs r0, 0x3
+ b _08035656
+ .align 2, 0
+_08035650: .4byte gCreditsTable
+_08035654:
+ movs r0, 0
+_08035656:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8035574
+
+ thumb_func_start sub_803565C
+sub_803565C:
+ push {r4,lr}
+ ldr r4, _08035674
+ ldr r0, [r4]
+ cmp r0, 0
+ beq _0803566E
+ bl MemoryFree
+ movs r0, 0
+ str r0, [r4]
+_0803566E:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08035674: .4byte gUnknown_203B340
+ thumb_func_end sub_803565C
+
+ thumb_func_start sub_8035678
+sub_8035678:
+ push {r4,lr}
+ ldr r4, _0803569C
+ movs r0, 0x8
+ movs r1, 0x8
+ bl MemoryAlloc
+ str r0, [r4]
+ movs r1, 0
+ str r1, [r0]
+ str r1, [r0, 0x4]
+ movs r0, 0
+ movs r1, 0x39
+ bl sub_80015C0
+ movs r0, 0x1
+ pop {r4}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0803569C: .4byte gUnknown_203B344
+ thumb_func_end sub_8035678
+
+ thumb_func_start sub_80356A0
+sub_80356A0:
+ push {r4,lr}
+ ldr r0, _080356C4
+ ldrh r4, [r0]
+ ldr r3, _080356C8
+ ldr r2, _080356CC
+ ldr r1, [r2]
+ ldr r0, [r1, 0x4]
+ lsls r0, 1
+ adds r0, r3
+ ldrh r3, [r0]
+ ldr r0, [r1]
+ cmp r0, 0x4
+ bhi _08035734
+ lsls r0, 2
+ ldr r1, _080356D0
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080356C4: .4byte gRealInputs
+_080356C8: .4byte gUnknown_80E5990
+_080356CC: .4byte gUnknown_203B344
+_080356D0: .4byte _080356D4
+ .align 2, 0
+_080356D4:
+ .4byte _08035728
+ .4byte _080356E8
+ .4byte _08035710
+ .4byte _0803574C
+ .4byte _08035730
+_080356E8:
+ cmp r3, 0
+ bne _080356F4
+ ldr r1, [r2]
+ movs r0, 0x4
+ str r0, [r1]
+ b _08035734
+_080356F4:
+ cmp r4, r3
+ bne _08035700
+ ldr r1, [r2]
+ movs r0, 0x2
+ str r0, [r1]
+ b _08035734
+_08035700:
+ ands r3, r4
+ cmp r3, r4
+ bne _08035728
+ ldr r1, [r2]
+ ldr r0, [r1, 0x4]
+ cmp r0, 0
+ bne _08035734
+ b _0803572A
+_08035710:
+ cmp r4, 0
+ bne _08035722
+ ldr r1, [r2]
+ movs r0, 0x1
+ str r0, [r1]
+ ldr r0, [r1, 0x4]
+ adds r0, 0x1
+ str r0, [r1, 0x4]
+ b _08035734
+_08035722:
+ ands r3, r4
+ cmp r3, r4
+ beq _08035734
+_08035728:
+ ldr r1, [r2]
+_0803572A:
+ movs r0, 0x3
+ str r0, [r1]
+ b _08035734
+_08035730:
+ movs r0, 0x3
+ b _0803574E
+_08035734:
+ movs r0, 0
+ movs r1, 0x39
+ bl sub_8001658
+ cmp r0, 0
+ bne _08035744
+ movs r0, 0
+ b _0803574E
+_08035744:
+ ldr r0, _08035754
+ ldr r1, [r0]
+ movs r0, 0x3
+ str r0, [r1]
+_0803574C:
+ movs r0, 0x2
+_0803574E:
+ pop {r4}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08035754: .4byte gUnknown_203B344
+ thumb_func_end sub_80356A0
+
+ thumb_func_start sub_8035758
+sub_8035758:
+ push {r4,lr}
+ ldr r4, _08035770
+ ldr r0, [r4]
+ cmp r0, 0
+ beq _0803576A
+ bl MemoryFree
+ movs r0, 0
+ str r0, [r4]
+_0803576A:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08035770: .4byte gUnknown_203B344
+ thumb_func_end sub_8035758
+
+ .align 2,0
diff --git a/asm/main_menu.s b/asm/main_menu.s
new file mode 100644
index 0000000..0892fb3
--- /dev/null
+++ b/asm/main_menu.s
@@ -0,0 +1,12746 @@
+ .include "constants/gba_constants.inc"
+ .include "asm/macros.inc"
+
+ .syntax unified
+
+ .text
+
+ thumb_func_start sub_8035C00
+sub_8035C00:
+ ldr r1, _08035C0C
+ ldr r1, [r1]
+ ldr r0, [r0]
+ str r0, [r1, 0x2C]
+ bx lr
+ .align 2, 0
+_08035C0C: .4byte gUnknown_203B348
+ thumb_func_end sub_8035C00
+
+ thumb_func_start sub_8035C10
+sub_8035C10:
+ ldr r0, _08035C18
+ ldr r0, [r0]
+ adds r0, 0x2C
+ bx lr
+ .align 2, 0
+_08035C18: .4byte gUnknown_203B348
+ thumb_func_end sub_8035C10
+
+ thumb_func_start sub_8035C1C
+sub_8035C1C:
+ ldr r2, _08035C38
+ ldr r0, [r2]
+ adds r0, 0x2E
+ movs r3, 0
+ strb r3, [r0]
+ ldr r0, [r2]
+ adds r0, 0x2C
+ movs r1, 0x1
+ strb r1, [r0]
+ ldr r0, [r2]
+ adds r0, 0x2D
+ strb r3, [r0]
+ bx lr
+ .align 2, 0
+_08035C38: .4byte gUnknown_203B348
+ thumb_func_end sub_8035C1C
+
+ thumb_func_start SetMenuItems
+SetMenuItems:
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ sub sp, 0x8
+ adds r6, r0, 0
+ adds r4, r1, 0
+ adds r5, r2, 0
+ ldr r0, [sp, 0x24]
+ lsls r0, 24
+ lsrs r0, 24
+ mov r8, r0
+ lsls r0, r5, 1
+ adds r0, r5
+ lsls r0, 3
+ adds r0, r4
+ ldm r3!, {r1,r2,r7}
+ stm r0!, {r1,r2,r7}
+ ldm r3!, {r1,r2,r7}
+ stm r0!, {r1,r2,r7}
+ bl ResetUnusedInputStruct
+ adds r0, r4, 0
+ movs r1, 0x1
+ movs r2, 0x1
+ bl sub_800641C
+ mov r0, r8
+ cmp r0, 0
+ beq _08035C90
+ lsls r4, r5, 2
+ adds r0, r4, r5
+ lsls r0, 4
+ adds r0, r6, r0
+ ldr r1, [sp, 0x28]
+ str r1, [sp]
+ str r5, [sp, 0x4]
+ ldr r1, [sp, 0x20]
+ movs r2, 0
+ movs r3, 0
+ bl sub_8012D60
+ b _08035CA8
+_08035C90:
+ lsls r4, r5, 2
+ adds r0, r4, r5
+ lsls r0, 4
+ adds r0, r6, r0
+ mov r1, r8
+ str r1, [sp]
+ str r5, [sp, 0x4]
+ ldr r1, [sp, 0x20]
+ movs r2, 0
+ movs r3, 0
+ bl sub_8012E04
+_08035CA8:
+ adds r0, r4, r5
+ lsls r0, 4
+ adds r0, r6
+ adds r0, 0x4C
+ movs r1, 0x1
+ strb r1, [r0]
+ add sp, 0x8
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end SetMenuItems
+
+ thumb_func_start sub_8035CC0
+sub_8035CC0:
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ adds r4, r1, 0
+ bl sub_8006518
+ lsls r1, r4, 1
+ adds r1, r4
+ lsls r1, 3
+ adds r1, r5
+ ldr r0, _08035CF0
+ ldm r0!, {r2-r4}
+ stm r1!, {r2-r4}
+ ldm r0!, {r2-r4}
+ stm r1!, {r2-r4}
+ bl ResetUnusedInputStruct
+ adds r0, r5, 0
+ movs r1, 0x1
+ movs r2, 0x1
+ bl sub_800641C
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08035CF0: .4byte gUnknown_80E59A8
+ thumb_func_end sub_8035CC0
+
+ thumb_func_start sub_8035CF4
+sub_8035CF4:
+ push {lr}
+ adds r3, r0, 0
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 4
+ adds r0, r3
+ adds r1, r0, 0
+ adds r1, 0x4C
+ strb r2, [r1]
+ adds r2, r0, 0
+ adds r2, 0x4D
+ movs r1, 0x1
+ strb r1, [r2]
+ subs r1, 0x2
+ str r1, [r0, 0x48]
+ bl sub_8012EBC
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8035CF4
+
+ thumb_func_start sub_8035D1C
+sub_8035D1C:
+ ldr r0, _08035D28
+ ldr r1, [r0]
+ ldr r0, _08035D2C
+ strh r0, [r1, 0x38]
+ bx lr
+ .align 2, 0
+_08035D28: .4byte gUnknown_203B348
+_08035D2C: .4byte 0x0000ffff
+ thumb_func_end sub_8035D1C
+
+ thumb_func_start sub_8035D30
+sub_8035D30:
+ ldr r1, _08035D38
+ ldr r1, [r1]
+ strh r0, [r1, 0x38]
+ bx lr
+ .align 2, 0
+_08035D38: .4byte gUnknown_203B348
+ thumb_func_end sub_8035D30
+
+ thumb_func_start sub_8035D3C
+sub_8035D3C:
+ ldr r0, _08035D48
+ ldr r0, [r0]
+ movs r1, 0x38
+ ldrsh r0, [r0, r1]
+ bx lr
+ .align 2, 0
+_08035D48: .4byte gUnknown_203B348
+ thumb_func_end sub_8035D3C
+
+ thumb_func_start sub_8035D4C
+sub_8035D4C:
+ ldr r0, _08035D54
+ ldr r0, [r0]
+ bx lr
+ .align 2, 0
+_08035D54: .4byte gUnknown_203B348
+ thumb_func_end sub_8035D4C
+
+ thumb_func_start sub_8035D58
+sub_8035D58:
+ ldr r0, _08035D64
+ ldr r1, [r0]
+ movs r0, 0x1
+ negs r0, r0
+ str r0, [r1, 0x3C]
+ bx lr
+ .align 2, 0
+_08035D64: .4byte gUnknown_203B348
+ thumb_func_end sub_8035D58
+
+ thumb_func_start sub_8035D68
+sub_8035D68:
+ ldr r1, _08035D70
+ ldr r1, [r1]
+ str r0, [r1, 0x3C]
+ bx lr
+ .align 2, 0
+_08035D70: .4byte gUnknown_203B348
+ thumb_func_end sub_8035D68
+
+ thumb_func_start sub_8035D74
+sub_8035D74:
+ ldr r0, _08035D7C
+ ldr r0, [r0]
+ ldr r0, [r0, 0x3C]
+ bx lr
+ .align 2, 0
+_08035D7C: .4byte gUnknown_203B348
+ thumb_func_end sub_8035D74
+
+ thumb_func_start sub_8035D80
+sub_8035D80:
+ ldr r1, _08035D90
+ ldr r2, [r1]
+ ldr r1, [r0, 0x4]
+ ldr r0, [r0]
+ str r0, [r2, 0x30]
+ str r1, [r2, 0x34]
+ bx lr
+ .align 2, 0
+_08035D90: .4byte gUnknown_203B348
+ thumb_func_end sub_8035D80
+
+ thumb_func_start sub_8035D94
+sub_8035D94:
+ ldr r0, _08035D9C
+ ldr r0, [r0]
+ adds r0, 0x30
+ bx lr
+ .align 2, 0
+_08035D9C: .4byte gUnknown_203B348
+ thumb_func_end sub_8035D94
+
+ thumb_func_start sub_8035DA0
+sub_8035DA0:
+ ldr r2, _08035DB0
+ ldr r0, [r2]
+ adds r0, 0x30
+ movs r1, 0
+ strb r1, [r0]
+ ldr r0, [r2]
+ str r1, [r0, 0x34]
+ bx lr
+ .align 2, 0
+_08035DB0: .4byte gUnknown_203B348
+ thumb_func_end sub_8035DA0
+
+ thumb_func_start sub_8035DB4
+sub_8035DB4:
+ push {lr}
+ movs r1, 0x8
+ subs r0, 0x13
+ cmp r0, 0x7
+ bhi _08035E0A
+ lsls r0, 2
+ ldr r1, _08035DC8
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_08035DC8: .4byte _08035DCC
+ .align 2, 0
+_08035DCC:
+ .4byte _08035DEC
+ .4byte _08035DF0
+ .4byte _08035DF4
+ .4byte _08035DF8
+ .4byte _08035DFC
+ .4byte _08035E00
+ .4byte _08035E04
+ .4byte _08035E08
+_08035DEC:
+ movs r1, 0
+ b _08035E0A
+_08035DF0:
+ movs r1, 0x1
+ b _08035E0A
+_08035DF4:
+ movs r1, 0x2
+ b _08035E0A
+_08035DF8:
+ movs r1, 0x3
+ b _08035E0A
+_08035DFC:
+ movs r1, 0x4
+ b _08035E0A
+_08035E00:
+ movs r1, 0x5
+ b _08035E0A
+_08035E04:
+ movs r1, 0x6
+ b _08035E0A
+_08035E08:
+ movs r1, 0x7
+_08035E0A:
+ adds r0, r1, 0
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8035DB4
+
+ thumb_func_start sub_8035E10
+sub_8035E10:
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ ldr r5, _08035EB8
+ ldr r0, [r5]
+ cmp r0, 0
+ bne _08035E34
+ movs r4, 0xD4
+ lsls r4, 1
+ adds r0, r4, 0
+ movs r1, 0x8
+ bl MemoryAlloc
+ str r0, [r5]
+ movs r1, 0
+ adds r2, r4, 0
+ bl MemoryFill8
+_08035E34:
+ mov r12, r5
+ movs r0, 0xA2
+ lsls r0, 1
+ mov r8, r0
+ ldr r4, _08035EBC
+ movs r3, 0
+ movs r2, 0x3
+_08035E42:
+ mov r5, r12
+ ldr r1, [r5]
+ adds r1, r3
+ add r1, r8
+ adds r0, r4, 0
+ ldm r0!, {r5-r7}
+ stm r1!, {r5-r7}
+ ldm r0!, {r5-r7}
+ stm r1!, {r5-r7}
+ adds r3, 0x18
+ subs r2, 0x1
+ cmp r2, 0
+ bge _08035E42
+ bl ResetUnusedInputStruct
+ ldr r4, _08035EB8
+ ldr r0, [r4]
+ movs r6, 0xA2
+ lsls r6, 1
+ adds r0, r6
+ movs r1, 0x1
+ movs r2, 0x1
+ bl sub_800641C
+ bl sub_803628C
+ ldr r0, [r4]
+ movs r7, 0xD2
+ lsls r7, 1
+ adds r0, r7
+ movs r1, 0x1
+ negs r1, r1
+ str r1, [r0]
+ bl SetMainMenuType
+ lsls r0, 24
+ cmp r0, 0
+ beq _08035E9A
+ ldr r0, [r4]
+ adds r0, 0x4
+ movs r1, 0x2
+ movs r2, 0
+ bl sub_8035CF4
+_08035E9A:
+ ldr r0, [r4]
+ adds r0, 0x4
+ movs r1, 0
+ movs r2, 0x1
+ bl sub_8035CF4
+ ldr r1, [r4]
+ movs r0, 0x1
+ str r0, [r1]
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08035EB8: .4byte gUnknown_203B34C
+_08035EBC: .4byte gUnknown_80E59C8
+ thumb_func_end sub_8035E10
+
+ thumb_func_start sub_8035EC0
+sub_8035EC0:
+ push {r4,lr}
+ bl ResetUnusedInputStruct
+ movs r0, 0
+ movs r1, 0x1
+ movs r2, 0x1
+ bl sub_800641C
+ ldr r4, _08035EE8
+ ldr r0, [r4]
+ cmp r0, 0
+ beq _08035EE0
+ bl MemoryFree
+ movs r0, 0
+ str r0, [r4]
+_08035EE0:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08035EE8: .4byte gUnknown_203B34C
+ thumb_func_end sub_8035EC0
+
+ thumb_func_start sub_8035EEC
+sub_8035EEC:
+ push {r4-r6,lr}
+ sub sp, 0x4
+ ldr r6, _08035F64
+ str r6, [sp]
+ ldr r4, _08035F68
+ ldr r0, [r4]
+ ldr r5, [r0]
+ cmp r5, 0xC
+ beq _08035FB8
+ cmp r5, 0xC
+ bls _08035F04
+ b _0803601A
+_08035F04:
+ cmp r5, 0x1
+ beq _08035F0A
+ b _0803601A
+_08035F0A:
+ adds r0, 0xA4
+ bl sub_8012FD8
+ ldr r0, [r4]
+ adds r0, 0x4
+ bl sub_8012FD8
+ lsls r0, 24
+ cmp r0, 0
+ bne _08035F28
+ ldr r0, [r4]
+ adds r0, 0x4
+ mov r1, sp
+ bl sub_8013114
+_08035F28:
+ bl SetMainMenuType
+ lsls r0, 24
+ cmp r0, 0
+ beq _08035F4A
+ ldr r0, [r4]
+ adds r0, 0x4
+ movs r1, 0
+ movs r2, 0x1
+ bl sub_8035CF4
+ ldr r0, [r4]
+ adds r0, 0x4
+ movs r1, 0x2
+ movs r2, 0
+ bl sub_8035CF4
+_08035F4A:
+ ldr r1, [sp]
+ cmp r1, 0xC
+ beq _08035FA8
+ cmp r1, 0xC
+ bhi _08035F6C
+ cmp r1, 0x3
+ beq _08035FAC
+ cmp r1, 0x3
+ bcc _0803601A
+ cmp r1, 0x6
+ bcc _0803601A
+ b _08035FAC
+ .align 2, 0
+_08035F64: .4byte 0x0000ffdc
+_08035F68: .4byte gUnknown_203B34C
+_08035F6C:
+ cmp r1, r6
+ beq _08035FF2
+ cmp r1, r6
+ bhi _08035F7A
+ cmp r1, 0x10
+ bhi _0803601A
+ b _08035FAC
+_08035F7A:
+ ldr r0, _08035FA4
+ cmp r1, r0
+ bne _0803601A
+ ldr r0, [r4]
+ str r5, [r0]
+ str r6, [sp]
+ bl ResetUnusedInputStruct
+ ldr r0, [r4]
+ adds r0, 0x4
+ movs r1, 0
+ movs r2, 0x1
+ bl sub_8035CF4
+ ldr r0, [r4]
+ adds r0, 0x4
+ movs r1, 0x2
+ movs r2, 0
+ bl sub_8035CF4
+ b _0803601A
+ .align 2, 0
+_08035FA4: .4byte 0x0000ffdd
+_08035FA8:
+ bl sub_8035DA0
+_08035FAC:
+ ldr r1, _08035FB4
+ ldr r0, [sp]
+ str r0, [r1]
+ b _0803601A
+ .align 2, 0
+_08035FB4: .4byte gUnknown_203B350
+_08035FB8:
+ adds r0, 0x54
+ bl sub_8012FD8
+ lsls r0, 24
+ cmp r0, 0
+ bne _08035FCE
+ ldr r0, [r4]
+ adds r0, 0x54
+ mov r1, sp
+ bl sub_8013114
+_08035FCE:
+ ldr r1, [sp]
+ cmp r1, 0x12
+ beq _08036008
+ cmp r1, 0x12
+ bhi _08035FDE
+ cmp r1, 0x11
+ beq _08035FFC
+ b _0803601A
+_08035FDE:
+ cmp r1, r6
+ beq _08036018
+ ldr r0, _08035FF8
+ cmp r1, r0
+ bne _0803601A
+ bl sub_803623C
+ ldr r1, [r4]
+ movs r0, 0x1
+ str r0, [r1]
+_08035FF2:
+ str r6, [sp]
+ b _0803601A
+ .align 2, 0
+_08035FF8: .4byte 0x0000ffdd
+_08035FFC:
+ ldr r0, _08036004
+ str r1, [r0]
+ str r5, [sp]
+ b _0803601A
+ .align 2, 0
+_08036004: .4byte gUnknown_203B354
+_08036008:
+ ldr r0, _08036014
+ str r1, [r0]
+ movs r0, 0x14
+ str r0, [sp]
+ b _0803601A
+ .align 2, 0
+_08036014: .4byte gUnknown_203B354
+_08036018:
+ str r1, [sp]
+_0803601A:
+ ldr r0, [sp]
+ add sp, 0x4
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8035EEC
+
+ thumb_func_start SetMainMenuType
+SetMainMenuType:
+ push {r4-r6,lr}
+ sub sp, 0x10
+ ldr r6, _08036048
+ ldr r2, [r6]
+ ldr r0, [r2, 0x8]
+ movs r3, 0x30
+ ldrsh r1, [r2, r3]
+ lsls r1, 3
+ adds r1, r0
+ ldr r5, [r1, 0x4]
+ movs r0, 0xD2
+ lsls r0, 1
+ adds r1, r2, r0
+ ldr r0, [r1]
+ cmp r0, r5
+ bne _0803604C
+ movs r0, 0
+ b _08036226
+ .align 2, 0
+_08036048: .4byte gUnknown_203B34C
+_0803604C:
+ str r5, [r1]
+ movs r4, 0xA2
+ lsls r4, 1
+ adds r0, r2, r4
+ movs r1, 0x2
+ bl sub_8035CC0
+ ldr r0, [r6]
+ adds r0, r4
+ movs r1, 0x3
+ bl sub_8035CC0
+ subs r0, r5, 0x3
+ cmp r0, 0xD
+ bls _0803606C
+ b _08036224
+_0803606C:
+ lsls r0, 2
+ ldr r1, _08036078
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_08036078: .4byte _0803607C
+ .align 2, 0
+_0803607C:
+ .4byte _08036114
+ .4byte _08036224
+ .4byte _08036224
+ .4byte _080360F4
+ .4byte _08036134
+ .4byte _08036154
+ .4byte _08036224
+ .4byte _08036174
+ .4byte _08036194
+ .4byte _080361B4
+ .4byte _080360D4
+ .4byte _080361D4
+ .4byte _080360B4
+ .4byte _08036204
+_080360B4:
+ ldr r0, _080360C8
+ ldr r1, [r0]
+ adds r0, r1, 0x4
+ movs r2, 0xA2
+ lsls r2, 1
+ adds r1, r2
+ ldr r3, _080360CC
+ ldr r2, _080360D0
+ b _080361E4
+ .align 2, 0
+_080360C8: .4byte gUnknown_203B34C
+_080360CC: .4byte gUnknown_80E5CB4
+_080360D0: .4byte gUnknown_80E6030
+_080360D4:
+ ldr r0, _080360E8
+ ldr r1, [r0]
+ adds r0, r1, 0x4
+ movs r3, 0xA2
+ lsls r3, 1
+ adds r1, r3
+ ldr r3, _080360EC
+ ldr r2, _080360F0
+ b _080361E4
+ .align 2, 0
+_080360E8: .4byte gUnknown_203B34C
+_080360EC: .4byte gUnknown_80E5CB4
+_080360F0: .4byte gUnknown_80E5F80
+_080360F4:
+ ldr r0, _08036108
+ ldr r1, [r0]
+ adds r0, r1, 0x4
+ movs r2, 0xA2
+ lsls r2, 1
+ adds r1, r2
+ ldr r3, _0803610C
+ ldr r2, _08036110
+ b _080361E4
+ .align 2, 0
+_08036108: .4byte gUnknown_203B34C
+_0803610C: .4byte gUnknown_80E5CB4
+_08036110: .4byte gUnknown_80E5F1C
+_08036114:
+ ldr r0, _08036128
+ ldr r1, [r0]
+ adds r0, r1, 0x4
+ movs r3, 0xA2
+ lsls r3, 1
+ adds r1, r3
+ ldr r3, _0803612C
+ ldr r2, _08036130
+ b _080361E4
+ .align 2, 0
+_08036128: .4byte gUnknown_203B34C
+_0803612C: .4byte gUnknown_80E5CB4
+_08036130: .4byte gUnknown_80E5CCC
+_08036134:
+ ldr r0, _08036148
+ ldr r1, [r0]
+ adds r0, r1, 0x4
+ movs r2, 0xA2
+ lsls r2, 1
+ adds r1, r2
+ ldr r3, _0803614C
+ ldr r2, _08036150
+ b _080361E4
+ .align 2, 0
+_08036148: .4byte gUnknown_203B34C
+_0803614C: .4byte gUnknown_80E5CB4
+_08036150: .4byte gUnknown_80E5DA0
+_08036154:
+ ldr r0, _08036168
+ ldr r1, [r0]
+ adds r0, r1, 0x4
+ movs r3, 0xA2
+ lsls r3, 1
+ adds r1, r3
+ ldr r3, _0803616C
+ ldr r2, _08036170
+ b _080361E4
+ .align 2, 0
+_08036168: .4byte gUnknown_203B34C
+_0803616C: .4byte gUnknown_80E5CB4
+_08036170: .4byte gUnknown_80E5DF0
+_08036174:
+ ldr r0, _08036188
+ ldr r1, [r0]
+ adds r0, r1, 0x4
+ movs r2, 0xA2
+ lsls r2, 1
+ adds r1, r2
+ ldr r3, _0803618C
+ ldr r2, _08036190
+ b _080361E4
+ .align 2, 0
+_08036188: .4byte gUnknown_203B34C
+_0803618C: .4byte gUnknown_80E5CB4
+_08036190: .4byte gUnknown_80E5D0C
+_08036194:
+ ldr r0, _080361A8
+ ldr r1, [r0]
+ adds r0, r1, 0x4
+ movs r3, 0xA2
+ lsls r3, 1
+ adds r1, r3
+ ldr r3, _080361AC
+ ldr r2, _080361B0
+ b _080361E4
+ .align 2, 0
+_080361A8: .4byte gUnknown_203B34C
+_080361AC: .4byte gUnknown_80E5CB4
+_080361B0: .4byte gUnknown_80E5E5C
+_080361B4:
+ ldr r0, _080361C8
+ ldr r1, [r0]
+ adds r0, r1, 0x4
+ movs r2, 0xA2
+ lsls r2, 1
+ adds r1, r2
+ ldr r3, _080361CC
+ ldr r2, _080361D0
+ b _080361E4
+ .align 2, 0
+_080361C8: .4byte gUnknown_203B34C
+_080361CC: .4byte gUnknown_80E5CB4
+_080361D0: .4byte gUnknown_80E5EBC
+_080361D4:
+ ldr r0, _080361F8
+ ldr r1, [r0]
+ adds r0, r1, 0x4
+ movs r3, 0xA2
+ lsls r3, 1
+ adds r1, r3
+ ldr r3, _080361FC
+ ldr r2, _08036200
+_080361E4:
+ str r2, [sp]
+ movs r2, 0
+ str r2, [sp, 0x4]
+ str r2, [sp, 0x8]
+ str r2, [sp, 0xC]
+ movs r2, 0x2
+ bl SetMenuItems
+ b _08036224
+ .align 2, 0
+_080361F8: .4byte gUnknown_203B34C
+_080361FC: .4byte gUnknown_80E5CB4
+_08036200: .4byte gUnknown_80E5FCC
+_08036204:
+ ldr r0, _08036230
+ ldr r1, [r0]
+ adds r0, r1, 0x4
+ movs r2, 0xA2
+ lsls r2, 1
+ adds r1, r2
+ ldr r3, _08036234
+ ldr r2, _08036238
+ str r2, [sp]
+ movs r2, 0
+ str r2, [sp, 0x4]
+ str r2, [sp, 0x8]
+ str r2, [sp, 0xC]
+ movs r2, 0x2
+ bl SetMenuItems
+_08036224:
+ movs r0, 0x1
+_08036226:
+ add sp, 0x10
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08036230: .4byte gUnknown_203B34C
+_08036234: .4byte gUnknown_80E5CB4
+_08036238: .4byte gUnknown_80E5D48
+ thumb_func_end SetMainMenuType
+
+ thumb_func_start sub_803623C
+sub_803623C:
+ push {r4,lr}
+ ldr r4, _08036288
+ ldr r0, [r4]
+ movs r1, 0xA2
+ lsls r1, 1
+ adds r0, r1
+ movs r1, 0x1
+ bl sub_8035CC0
+ bl sub_803628C
+ ldr r0, [r4]
+ movs r1, 0xD2
+ lsls r1, 1
+ adds r0, r1
+ movs r1, 0x1
+ negs r1, r1
+ str r1, [r0]
+ bl SetMainMenuType
+ lsls r0, 24
+ cmp r0, 0
+ beq _08036276
+ ldr r0, [r4]
+ adds r0, 0x4
+ movs r1, 0x2
+ movs r2, 0
+ bl sub_8035CF4
+_08036276:
+ ldr r0, [r4]
+ adds r0, 0x4
+ movs r1, 0
+ movs r2, 0x1
+ bl sub_8035CF4
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08036288: .4byte gUnknown_203B34C
+ thumb_func_end sub_803623C
+
+ thumb_func_start sub_803628C
+sub_803628C:
+ push {r4,lr}
+ sub sp, 0x10
+ bl sub_8011C34
+ movs r1, 0x1
+ negs r1, r1
+ cmp r0, r1
+ bne _0803629E
+ b _080363A4
+_0803629E:
+ movs r0, 0x1
+ bl sub_8095324
+ cmp r0, 0
+ bne _08036344
+ movs r0, 0x7
+ bl sub_8095324
+ cmp r0, 0
+ beq _080362FC
+ bl sub_803D0D8
+ lsls r0, 24
+ cmp r0, 0
+ beq _080362DC
+ ldr r0, _080362D0
+ ldr r1, [r0]
+ adds r0, r1, 0x4
+ movs r2, 0xA2
+ lsls r2, 1
+ adds r1, r2
+ ldr r3, _080362D4
+ ldr r2, _080362D8
+ b _0803637C
+ .align 2, 0
+_080362D0: .4byte gUnknown_203B34C
+_080362D4: .4byte gUnknown_80E5A78
+_080362D8: .4byte gUnknown_80E5C18
+_080362DC:
+ ldr r0, _080362F0
+ ldr r1, [r0]
+ adds r0, r1, 0x4
+ movs r2, 0xA2
+ lsls r2, 1
+ adds r1, r2
+ ldr r3, _080362F4
+ ldr r2, _080362F8
+ b _0803637C
+ .align 2, 0
+_080362F0: .4byte gUnknown_203B34C
+_080362F4: .4byte gUnknown_80E5BC4
+_080362F8: .4byte gUnknown_80E5BDC
+_080362FC:
+ bl sub_803D0D8
+ lsls r0, 24
+ cmp r0, 0
+ beq _08036324
+ ldr r0, _08036318
+ ldr r1, [r0]
+ adds r0, r1, 0x4
+ movs r2, 0xA2
+ lsls r2, 1
+ adds r1, r2
+ ldr r3, _0803631C
+ ldr r2, _08036320
+ b _0803637C
+ .align 2, 0
+_08036318: .4byte gUnknown_203B34C
+_0803631C: .4byte gUnknown_80E5A78
+_08036320: .4byte gUnknown_80E5AFC
+_08036324:
+ ldr r0, _08036338
+ ldr r1, [r0]
+ adds r0, r1, 0x4
+ movs r2, 0xA2
+ lsls r2, 1
+ adds r1, r2
+ ldr r3, _0803633C
+ ldr r2, _08036340
+ b _0803637C
+ .align 2, 0
+_08036338: .4byte gUnknown_203B34C
+_0803633C: .4byte gUnknown_80E5A60
+_08036340: .4byte gUnknown_80E5A90
+_08036344:
+ bl sub_803D0D8
+ lsls r0, 24
+ cmp r0, 0
+ beq _0803636C
+ ldr r0, _08036360
+ ldr r1, [r0]
+ adds r0, r1, 0x4
+ movs r2, 0xA2
+ lsls r2, 1
+ adds r1, r2
+ ldr r3, _08036364
+ ldr r2, _08036368
+ b _0803637C
+ .align 2, 0
+_08036360: .4byte gUnknown_203B34C
+_08036364: .4byte gUnknown_80E5A78
+_08036368: .4byte gUnknown_80E5B8C
+_0803636C:
+ ldr r0, _08036394
+ ldr r1, [r0]
+ adds r0, r1, 0x4
+ movs r2, 0xA2
+ lsls r2, 1
+ adds r1, r2
+ ldr r3, _08036398
+ ldr r2, _0803639C
+_0803637C:
+ str r2, [sp]
+ movs r4, 0x1
+ str r4, [sp, 0x4]
+ ldr r2, _080363A0
+ ldr r2, [r2]
+ str r2, [sp, 0x8]
+ str r4, [sp, 0xC]
+ movs r2, 0
+ bl SetMenuItems
+ b _080363C8
+ .align 2, 0
+_08036394: .4byte gUnknown_203B34C
+_08036398: .4byte gUnknown_80E5B34
+_0803639C: .4byte gUnknown_80E5B4C
+_080363A0: .4byte gUnknown_203B350
+_080363A4:
+ ldr r0, _080363D0
+ ldr r1, [r0]
+ adds r0, r1, 0x4
+ movs r2, 0xA2
+ lsls r2, 1
+ adds r1, r2
+ ldr r3, _080363D4
+ ldr r2, _080363D8
+ str r2, [sp]
+ movs r4, 0x1
+ str r4, [sp, 0x4]
+ ldr r2, _080363DC
+ ldr r2, [r2]
+ str r2, [sp, 0x8]
+ str r4, [sp, 0xC]
+ movs r2, 0
+ bl SetMenuItems
+_080363C8:
+ add sp, 0x10
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080363D0: .4byte gUnknown_203B34C
+_080363D4: .4byte gUnknown_80E59E0
+_080363D8: .4byte gUnknown_80E59F8
+_080363DC: .4byte gUnknown_203B350
+ thumb_func_end sub_803628C
+
+ thumb_func_start sub_80363E0
+sub_80363E0:
+ push {lr}
+ ldr r0, _080363F4
+ ldr r0, [r0]
+ cmp r0, 0
+ beq _080363F8
+ ldr r0, [r0]
+ cmp r0, 0xC
+ beq _080363F8
+ movs r0, 0x1
+ b _080363FA
+ .align 2, 0
+_080363F4: .4byte gUnknown_203B34C
+_080363F8:
+ movs r0, 0
+_080363FA:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80363E0
+
+ thumb_func_start sub_8036400
+sub_8036400:
+ push {r4,r5,lr}
+ bl ResetUnusedInputStruct
+ movs r0, 0
+ movs r1, 0x1
+ movs r2, 0x1
+ bl sub_800641C
+ ldr r5, _08036444
+ movs r4, 0xE8
+ lsls r4, 2
+ adds r0, r4, 0
+ movs r1, 0x8
+ bl MemoryAlloc
+ str r0, [r5]
+ movs r1, 0
+ adds r2, r4, 0
+ bl MemoryFill8
+ bl sub_8035C1C
+ bl sub_8035DA0
+ ldr r1, [r5]
+ movs r0, 0x13
+ str r0, [r1, 0x4]
+ movs r0, 0
+ bl sub_8036FC4
+ movs r0, 0x1
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08036444: .4byte gUnknown_203B358
+ thumb_func_end sub_8036400
+
+ thumb_func_start sub_8036448
+sub_8036448:
+ push {lr}
+ ldr r0, _08036460
+ ldr r0, [r0]
+ ldr r0, [r0]
+ cmp r0, 0x12
+ bhi _08036524
+ lsls r0, 2
+ ldr r1, _08036464
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_08036460: .4byte gUnknown_203B358
+_08036464: .4byte _08036468
+ .align 2, 0
+_08036468:
+ .4byte _080364B4
+ .4byte _080364BA
+ .4byte _080364C0
+ .4byte _080364C6
+ .4byte _080364D2
+ .4byte _080364CC
+ .4byte _080364D8
+ .4byte _080364DE
+ .4byte _080364E4
+ .4byte _080364F0
+ .4byte _080364F6
+ .4byte _080364FC
+ .4byte _08036502
+ .4byte _08036514
+ .4byte _08036508
+ .4byte _080364EA
+ .4byte _0803650E
+ .4byte _0803651A
+ .4byte _08036520
+_080364B4:
+ bl sub_803652C
+ b _08036524
+_080364BA:
+ bl sub_8036590
+ b _08036524
+_080364C0:
+ bl sub_80365AC
+ b _08036524
+_080364C6:
+ bl sub_8036674
+ b _08036524
+_080364CC:
+ bl sub_8036728
+ b _08036524
+_080364D2:
+ bl sub_8036788
+ b _08036524
+_080364D8:
+ bl sub_8036830
+ b _08036524
+_080364DE:
+ bl sub_803689C
+ b _08036524
+_080364E4:
+ bl sub_80368D4
+ b _08036524
+_080364EA:
+ bl sub_8036A7C
+ b _08036524
+_080364F0:
+ bl sub_8036934
+ b _08036524
+_080364F6:
+ bl sub_8036950
+ b _08036524
+_080364FC:
+ bl sub_8036AA4
+ b _08036524
+_08036502:
+ bl sub_80369FC
+ b _08036524
+_08036508:
+ bl sub_8036A34
+ b _08036524
+_0803650E:
+ bl sub_8036A54
+ b _08036524
+_08036514:
+ bl sub_8036A18
+ b _08036524
+_0803651A:
+ bl sub_8036ADC
+ b _08036524
+_08036520:
+ movs r0, 0x3
+ b _08036526
+_08036524:
+ movs r0, 0
+_08036526:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8036448
+
+ thumb_func_start sub_803652C
+sub_803652C:
+ push {lr}
+ sub sp, 0x4
+ mov r0, sp
+ bl sub_80144A4
+ adds r1, r0, 0
+ cmp r1, 0
+ bne _0803658A
+ ldr r2, [sp]
+ cmp r2, 0x1
+ beq _08036556
+ cmp r2, 0x1
+ bgt _0803654C
+ cmp r2, 0
+ beq _08036584
+ b _0803658A
+_0803654C:
+ cmp r2, 0x2
+ beq _0803656C
+ cmp r2, 0x7
+ beq _08036584
+ b _0803658A
+_08036556:
+ ldr r0, _08036568
+ ldr r0, [r0]
+ str r1, [r0, 0x8]
+ str r2, [r0, 0x10]
+ movs r0, 0x1
+ bl sub_8036FC4
+ b _0803658A
+ .align 2, 0
+_08036568: .4byte gUnknown_203B358
+_0803656C:
+ ldr r0, _08036580
+ ldr r1, [r0]
+ movs r0, 0x1
+ str r0, [r1, 0x8]
+ str r2, [r1, 0x10]
+ movs r0, 0x7
+ bl sub_8036FC4
+ b _0803658A
+ .align 2, 0
+_08036580: .4byte gUnknown_203B358
+_08036584:
+ movs r0, 0x12
+ bl sub_8036FC4
+_0803658A:
+ add sp, 0x4
+ pop {r0}
+ bx r0
+ thumb_func_end sub_803652C
+
+ thumb_func_start sub_8036590
+sub_8036590:
+ push {lr}
+ sub sp, 0x4
+ mov r0, sp
+ bl sub_80144A4
+ cmp r0, 0
+ bne _080365A4
+ movs r0, 0x2
+ bl sub_8036FC4
+_080365A4:
+ add sp, 0x4
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8036590
+
+ thumb_func_start sub_80365AC
+sub_80365AC:
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ ldr r4, _080365E8
+ ldr r0, [r4]
+ ldr r7, _080365EC
+ adds r0, r7
+ movs r1, 0
+ strb r1, [r0]
+ ldr r0, [r4]
+ ldr r6, _080365F0
+ adds r0, r6
+ movs r5, 0x1
+ strb r5, [r0]
+ ldr r0, [r4]
+ movs r2, 0x97
+ lsls r2, 2
+ mov r8, r2
+ add r0, r8
+ strb r1, [r0]
+ movs r0, 0x1
+ bl sub_801CA08
+ cmp r0, 0x3
+ beq _08036606
+ cmp r0, 0x3
+ bhi _080365F4
+ cmp r0, 0x2
+ beq _080365FA
+ b _0803666A
+ .align 2, 0
+_080365E8: .4byte gUnknown_203B358
+_080365EC: .4byte 0x0000025e
+_080365F0: .4byte 0x0000025d
+_080365F4:
+ cmp r0, 0x4
+ beq _0803662C
+ b _0803666A
+_080365FA:
+ bl sub_801CBB8
+ movs r0, 0
+ bl sub_8036FC4
+ b _0803666A
+_08036606:
+ bl sub_801CB24
+ ldr r1, [r4]
+ ldr r2, _08036624
+ adds r1, r2
+ strb r0, [r1]
+ ldr r0, [r4]
+ ldr r1, _08036628
+ adds r0, r1
+ strb r5, [r0]
+ movs r0, 0x3
+ bl sub_8036FC4
+ b _0803666A
+ .align 2, 0
+_08036624: .4byte 0x0000025e
+_08036628: .4byte 0x0000025d
+_0803662C:
+ ldr r1, [r4]
+ movs r0, 0x2
+ str r0, [r1, 0x4]
+ bl sub_801CB24
+ ldr r1, [r4]
+ adds r1, r7
+ strb r0, [r1]
+ ldr r0, [r4]
+ adds r0, r6
+ strb r5, [r0]
+ ldr r0, [r4]
+ movs r2, 0xF2
+ lsls r2, 1
+ adds r0, r2
+ bl sub_8006518
+ bl ResetUnusedInputStruct
+ movs r0, 0
+ movs r1, 0x1
+ movs r2, 0x1
+ bl sub_800641C
+ ldr r0, [r4]
+ add r0, r8
+ bl sub_801B3C0
+ movs r0, 0x5
+ bl sub_8036FC4
+_0803666A:
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80365AC
+
+ thumb_func_start sub_8036674
+sub_8036674:
+ push {r4,lr}
+ sub sp, 0x4
+ movs r0, 0x1
+ negs r0, r0
+ str r0, [sp]
+ movs r0, 0
+ bl sub_801CA08
+ ldr r4, _080366B8
+ ldr r0, [r4]
+ movs r1, 0x9A
+ lsls r1, 1
+ adds r0, r1
+ bl sub_8012FD8
+ lsls r0, 24
+ cmp r0, 0
+ bne _080366A6
+ ldr r0, [r4]
+ movs r1, 0x9A
+ lsls r1, 1
+ adds r0, r1
+ mov r1, sp
+ bl sub_8013114
+_080366A6:
+ ldr r0, [sp]
+ cmp r0, 0x3
+ beq _080366C6
+ cmp r0, 0x3
+ bgt _080366BC
+ cmp r0, 0
+ beq _08036700
+ b _0803671A
+ .align 2, 0
+_080366B8: .4byte gUnknown_203B358
+_080366BC:
+ cmp r0, 0x4
+ beq _080366CE
+ cmp r0, 0x7
+ beq _08036700
+ b _0803671A
+_080366C6:
+ movs r0, 0x4
+ bl sub_8036FC4
+ b _0803671A
+_080366CE:
+ ldr r0, [r4]
+ movs r1, 0x13
+ str r1, [r0, 0x4]
+ movs r1, 0xF2
+ lsls r1, 1
+ adds r0, r1
+ bl sub_8006518
+ bl ResetUnusedInputStruct
+ movs r0, 0
+ movs r1, 0x1
+ movs r2, 0x1
+ bl sub_800641C
+ ldr r0, [r4]
+ movs r1, 0x97
+ lsls r1, 2
+ adds r0, r1
+ bl sub_801B3C0
+ movs r0, 0x5
+ bl sub_8036FC4
+ b _0803671A
+_08036700:
+ ldr r0, _08036724
+ ldr r0, [r0]
+ movs r1, 0xC2
+ lsls r1, 1
+ adds r0, r1
+ movs r1, 0x3
+ bl sub_8035CC0
+ bl sub_801CCD8
+ movs r0, 0x2
+ bl sub_8036FC4
+_0803671A:
+ add sp, 0x4
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08036724: .4byte gUnknown_203B358
+ thumb_func_end sub_8036674
+
+ thumb_func_start sub_8036728
+sub_8036728:
+ push {r4,lr}
+ bl sub_801B410
+ cmp r0, 0x1
+ beq _08036780
+ cmp r0, 0x1
+ bcc _08036780
+ cmp r0, 0x3
+ bhi _08036780
+ bl sub_801B450
+ bl ResetUnusedInputStruct
+ ldr r4, _08036778
+ ldr r0, [r4]
+ movs r1, 0xF2
+ lsls r1, 1
+ adds r0, r1
+ movs r1, 0x1
+ movs r2, 0x1
+ bl sub_800641C
+ movs r0, 0x1
+ bl sub_801CB5C
+ ldr r4, [r4]
+ ldr r0, [r4, 0x4]
+ cmp r0, 0x13
+ bne _0803677C
+ adds r0, r4, 0
+ adds r0, 0x44
+ movs r1, 0x3
+ movs r2, 0x1
+ bl sub_8035CF4
+ movs r0, 0x3
+ bl sub_8036FC4
+ b _08036780
+ .align 2, 0
+_08036778: .4byte gUnknown_203B358
+_0803677C:
+ bl sub_8036FC4
+_08036780:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8036728
+
+ thumb_func_start sub_8036788
+sub_8036788:
+ push {r4,lr}
+ ldr r4, _080367B8
+ ldr r0, [r4]
+ movs r1, 0x9A
+ lsls r1, 1
+ adds r0, r1
+ bl sub_8012FD8
+ movs r0, 0
+ bl sub_801CA08
+ ldr r0, [r4]
+ adds r0, 0x14
+ bl sub_8013BBC
+ cmp r0, 0x1
+ beq _080367BC
+ cmp r0, 0x1
+ bcc _08036824
+ cmp r0, 0x2
+ beq _080367D2
+ cmp r0, 0x3
+ beq _080367F8
+ b _08036824
+ .align 2, 0
+_080367B8: .4byte gUnknown_203B358
+_080367BC:
+ bl sub_801CCD8
+ ldr r0, [r4]
+ adds r0, 0x44
+ movs r1, 0x3
+ movs r2, 0
+ bl sub_8035CF4
+ bl sub_8036F30
+ b _08036824
+_080367D2:
+ ldr r0, [r4]
+ movs r2, 0xC2
+ lsls r2, 1
+ adds r0, r2
+ movs r1, 0x2
+ bl sub_8035CC0
+ bl sub_801CCD8
+ ldr r0, [r4]
+ adds r0, 0x44
+ movs r1, 0x3
+ movs r2, 0x1
+ bl sub_8035CF4
+ movs r0, 0x3
+ bl sub_8036FC4
+ b _08036824
+_080367F8:
+ ldr r0, [r4]
+ ldr r1, [r0, 0x14]
+ ldr r2, _0803682C
+ adds r0, r2
+ strb r1, [r0]
+ ldr r0, [r4]
+ adds r2, 0x1
+ adds r1, r0, r2
+ ldrb r1, [r1]
+ subs r2, 0xA
+ adds r0, r2
+ strb r1, [r0]
+ ldr r0, [r4]
+ adds r2, 0x4
+ adds r1, r0, r2
+ ldr r0, [r0, 0x14]
+ str r0, [r1]
+ bl sub_801CBB8
+ movs r0, 0x6
+ bl sub_8036FC4
+_08036824:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0803682C: .4byte 0x0000025d
+ thumb_func_end sub_8036788
+
+ thumb_func_start sub_8036830
+sub_8036830:
+ push {lr}
+ sub sp, 0x4
+ mov r0, sp
+ bl sub_80144A4
+ cmp r0, 0
+ bne _08036896
+ ldr r0, [sp]
+ cmp r0, 0x5
+ beq _08036854
+ cmp r0, 0x5
+ bgt _0803684E
+ cmp r0, 0
+ beq _08036890
+ b _08036896
+_0803684E:
+ cmp r0, 0x6
+ beq _08036890
+ b _08036896
+_08036854:
+ bl sub_801CBB8
+ ldr r0, _08036884
+ ldr r2, [r0]
+ ldr r0, _08036888
+ ldr r1, [r0]
+ ldr r3, _0803688C
+ adds r0, r1, r3
+ ldrb r0, [r0]
+ lsls r0, 1
+ adds r2, 0x50
+ adds r2, r0
+ ldrh r0, [r2]
+ ldr r1, [r1, 0x14]
+ subs r0, r1
+ strh r0, [r2]
+ movs r0, 0xF
+ bl sub_8036FC4
+ movs r0, 0
+ bl sub_8012574
+ b _08036896
+ .align 2, 0
+_08036884: .4byte gUnknown_203B460
+_08036888: .4byte gUnknown_203B358
+_0803688C: .4byte 0x0000025e
+_08036890:
+ movs r0, 0
+ bl sub_8036FC4
+_08036896:
+ add sp, 0x4
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8036830
+
+ thumb_func_start sub_803689C
+sub_803689C:
+ push {lr}
+ sub sp, 0x4
+ mov r0, sp
+ bl sub_80144A4
+ cmp r0, 0
+ bne _080368CE
+ ldr r0, [sp]
+ cmp r0, 0x5
+ beq _080368C0
+ cmp r0, 0x5
+ bgt _080368BA
+ cmp r0, 0
+ beq _080368C8
+ b _080368CE
+_080368BA:
+ cmp r0, 0x7
+ beq _080368C8
+ b _080368CE
+_080368C0:
+ movs r0, 0x9
+ bl sub_8036FC4
+ b _080368CE
+_080368C8:
+ movs r0, 0x12
+ bl sub_8036FC4
+_080368CE:
+ add sp, 0x4
+ pop {r0}
+ bx r0
+ thumb_func_end sub_803689C
+
+ thumb_func_start sub_80368D4
+sub_80368D4:
+ push {lr}
+ sub sp, 0x4
+ mov r0, sp
+ bl sub_80144A4
+ cmp r0, 0
+ bne _0803692A
+ ldr r0, [sp]
+ cmp r0, 0x5
+ beq _080368F8
+ cmp r0, 0x5
+ bgt _080368F2
+ cmp r0, 0
+ beq _08036900
+ b _0803692A
+_080368F2:
+ cmp r0, 0x7
+ beq _08036900
+ b _0803692A
+_080368F8:
+ movs r0, 0x9
+ bl sub_8036FC4
+ b _0803692A
+_08036900:
+ ldr r0, _08036930
+ ldr r1, [r0]
+ movs r2, 0x95
+ lsls r2, 2
+ adds r0, r1, r2
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _0803692A
+ adds r2, 0x4
+ adds r0, r1, r2
+ ldr r0, [r0]
+ cmp r0, 0
+ beq _0803692A
+ bl sub_80369D0
+ movs r0, 0x11
+ bl sub_8036FC4
+ movs r0, 0
+ bl sub_8012574
+_0803692A:
+ add sp, 0x4
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08036930: .4byte gUnknown_203B358
+ thumb_func_end sub_80368D4
+
+ thumb_func_start sub_8036934
+sub_8036934:
+ push {lr}
+ sub sp, 0x4
+ mov r0, sp
+ bl sub_80144A4
+ cmp r0, 0
+ bne _08036948
+ movs r0, 0xA
+ bl sub_8036FC4
+_08036948:
+ add sp, 0x4
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8036934
+
+ thumb_func_start sub_8036950
+sub_8036950:
+ push {lr}
+ sub sp, 0x4
+ mov r0, sp
+ bl sub_80144A4
+ cmp r0, 0
+ bne _080369C8
+ ldr r0, _08036978
+ ldr r2, [r0]
+ ldr r1, [r2, 0xC]
+ adds r3, r0, 0
+ cmp r1, 0
+ bne _0803698C
+ ldr r0, [r2, 0x8]
+ cmp r0, 0
+ beq _0803697C
+ cmp r0, 0x1
+ beq _08036984
+ b _080369C8
+ .align 2, 0
+_08036978: .4byte gUnknown_203B358
+_0803697C:
+ movs r0, 0xD
+ bl sub_8036FC4
+ b _080369C8
+_08036984:
+ movs r0, 0xE
+ bl sub_8036FC4
+ b _080369C8
+_0803698C:
+ ldr r0, [r2, 0x8]
+ cmp r0, 0
+ bne _080369BA
+ movs r1, 0x95
+ lsls r1, 2
+ adds r0, r2, r1
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _080369BA
+ adds r1, 0x4
+ adds r0, r2, r1
+ ldr r0, [r0]
+ cmp r0, 0
+ beq _080369BA
+ bl sub_80369D0
+ movs r0, 0xB
+ bl sub_8036FC4
+ movs r0, 0
+ bl sub_8012574
+ b _080369C8
+_080369BA:
+ ldr r0, [r3]
+ ldr r0, [r0, 0xC]
+ bl sub_8036E18
+ movs r0, 0xC
+ bl sub_8036FC4
+_080369C8:
+ add sp, 0x4
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8036950
+
+ thumb_func_start sub_80369D0
+sub_80369D0:
+ ldr r0, _080369F4
+ ldr r2, [r0]
+ ldr r0, _080369F8
+ ldr r1, [r0]
+ movs r3, 0x95
+ lsls r3, 2
+ adds r0, r1, r3
+ ldrb r0, [r0]
+ lsls r0, 1
+ adds r2, 0x50
+ adds r2, r0
+ ldrh r0, [r2]
+ adds r3, 0x4
+ adds r1, r3
+ ldr r1, [r1]
+ adds r0, r1
+ strh r0, [r2]
+ bx lr
+ .align 2, 0
+_080369F4: .4byte gUnknown_203B460
+_080369F8: .4byte gUnknown_203B358
+ thumb_func_end sub_80369D0
+
+ thumb_func_start sub_80369FC
+sub_80369FC:
+ push {lr}
+ sub sp, 0x4
+ mov r0, sp
+ bl sub_80144A4
+ cmp r0, 0
+ bne _08036A10
+ movs r0, 0
+ bl sub_8036FC4
+_08036A10:
+ add sp, 0x4
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80369FC
+
+ thumb_func_start sub_8036A18
+sub_8036A18:
+ push {lr}
+ sub sp, 0x4
+ mov r0, sp
+ bl sub_80144A4
+ cmp r0, 0
+ bne _08036A2C
+ movs r0, 0x12
+ bl sub_8036FC4
+_08036A2C:
+ add sp, 0x4
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8036A18
+
+ thumb_func_start sub_8036A34
+sub_8036A34:
+ push {lr}
+ sub sp, 0x4
+ mov r0, sp
+ bl sub_80144A4
+ cmp r0, 0
+ bne _08036A4E
+ movs r0, 0x10
+ bl sub_8036FC4
+ movs r0, 0
+ bl sub_8012574
+_08036A4E:
+ add sp, 0x4
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8036A34
+
+ thumb_func_start sub_8036A54
+sub_8036A54:
+ push {lr}
+ sub sp, 0x4
+ mov r0, sp
+ bl sub_80144A4
+ cmp r0, 0
+ bne _08036A76
+ bl sub_8012600
+ lsls r0, 24
+ cmp r0, 0
+ bne _08036A76
+ bl sub_8012750
+ movs r0, 0x12
+ bl sub_8036FC4
+_08036A76:
+ add sp, 0x4
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8036A54
+
+ thumb_func_start sub_8036A7C
+sub_8036A7C:
+ push {lr}
+ sub sp, 0x4
+ mov r0, sp
+ bl sub_80144A4
+ cmp r0, 0
+ bne _08036A9E
+ bl sub_8012600
+ lsls r0, 24
+ cmp r0, 0
+ bne _08036A9E
+ bl sub_8012750
+ movs r0, 0x8
+ bl sub_8036FC4
+_08036A9E:
+ add sp, 0x4
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8036A7C
+
+ thumb_func_start sub_8036AA4
+sub_8036AA4:
+ push {lr}
+ sub sp, 0x4
+ mov r0, sp
+ bl sub_80144A4
+ cmp r0, 0
+ bne _08036AD0
+ bl sub_8012600
+ lsls r0, 24
+ cmp r0, 0
+ bne _08036AD0
+ bl sub_8012750
+ ldr r0, _08036AD8
+ ldr r0, [r0]
+ ldr r0, [r0, 0xC]
+ bl sub_8036E18
+ movs r0, 0xC
+ bl sub_8036FC4
+_08036AD0:
+ add sp, 0x4
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08036AD8: .4byte gUnknown_203B358
+ thumb_func_end sub_8036AA4
+
+ thumb_func_start sub_8036ADC
+sub_8036ADC:
+ push {lr}
+ sub sp, 0x4
+ mov r0, sp
+ bl sub_80144A4
+ cmp r0, 0
+ bne _08036AFE
+ bl sub_8012600
+ lsls r0, 24
+ cmp r0, 0
+ bne _08036AFE
+ bl sub_8012750
+ movs r0, 0x12
+ bl sub_8036FC4
+_08036AFE:
+ add sp, 0x4
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8036ADC
+
+ thumb_func_start sub_8036B04
+sub_8036B04:
+ push {r4,lr}
+ ldr r4, _08036B20
+ ldr r0, [r4]
+ cmp r0, 0
+ beq _08036B1A
+ bl MemoryFree
+ movs r0, 0
+ str r0, [r4]
+ bl sub_801CBB8
+_08036B1A:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08036B20: .4byte gUnknown_203B358
+ thumb_func_end sub_8036B04
+
+ thumb_func_start nullsub_52
+nullsub_52:
+ bx lr
+ thumb_func_end nullsub_52
+
+ thumb_func_start sub_8036B28
+sub_8036B28:
+ push {r4,r5,lr}
+ sub sp, 0x18
+ ldr r1, _08036B44
+ ldr r0, [r1]
+ ldr r0, [r0]
+ adds r5, r1, 0
+ cmp r0, 0x12
+ bls _08036B3A
+ b _08036DFA
+_08036B3A:
+ lsls r0, 2
+ ldr r1, _08036B48
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_08036B44: .4byte gUnknown_203B358
+_08036B48: .4byte _08036B4C
+ .align 2, 0
+_08036B4C:
+ .4byte _08036B98
+ .4byte _08036BDC
+ .4byte _08036BE4
+ .4byte _08036C14
+ .4byte _08036C58
+ .4byte _08036DFA
+ .4byte _08036C5E
+ .4byte _08036C90
+ .4byte _08036C98
+ .4byte _08036CC0
+ .4byte _08036CD8
+ .4byte _08036DFA
+ .4byte _08036DFA
+ .4byte _08036DD8
+ .4byte _08036D70
+ .4byte _08036DFA
+ .4byte _08036DFA
+ .4byte _08036DFA
+ .4byte _08036DFA
+_08036B98:
+ movs r0, 0
+ bl sub_801CF14
+ lsls r0, 24
+ lsrs r2, r0, 24
+ cmp r2, 0
+ beq _08036BB8
+ ldr r0, _08036BB0
+ ldr r3, _08036BB4
+ movs r2, 0
+ b _08036BBC
+ .align 2, 0
+_08036BB0: .4byte gUnknown_80E61A4
+_08036BB4: .4byte gUnknown_80E60D4
+_08036BB8:
+ ldr r0, _08036BD4
+ ldr r3, _08036BD8
+_08036BBC:
+ str r2, [sp]
+ movs r1, 0x4
+ str r1, [sp, 0x4]
+ str r2, [sp, 0x8]
+ str r2, [sp, 0xC]
+ adds r1, 0xFD
+ str r1, [sp, 0x10]
+ movs r1, 0
+ movs r2, 0x1
+ bl sub_8014248
+ b _08036DFA
+ .align 2, 0
+_08036BD4: .4byte gUnknown_80E61A4
+_08036BD8: .4byte gUnknown_80E60A0
+_08036BDC:
+ ldr r0, _08036BE0
+ b _08036DBA
+ .align 2, 0
+_08036BE0: .4byte gUnknown_80E61C0
+_08036BE4:
+ bl sub_801D008
+ cmp r0, 0
+ beq _08036BEE
+ b _08036DFA
+_08036BEE:
+ bl ResetUnusedInputStruct
+ movs r0, 0
+ movs r1, 0x1
+ movs r2, 0x1
+ bl sub_800641C
+ ldr r0, _08036C10
+ str r0, [sp, 0x14]
+ movs r0, 0
+ movs r1, 0x1
+ add r2, sp, 0x14
+ movs r3, 0x9
+ bl sub_801C8C4
+ b _08036DFA
+ .align 2, 0
+_08036C10: .4byte 0x00020003
+_08036C14:
+ ldr r0, [r5]
+ movs r4, 0xC2
+ lsls r4, 1
+ adds r0, r4
+ bl sub_8006518
+ ldr r1, [r5]
+ adds r0, r1, 0
+ adds r0, 0x44
+ adds r1, r4
+ ldr r3, _08036C50
+ ldr r2, _08036C54
+ str r2, [sp]
+ movs r2, 0x1
+ str r2, [sp, 0x4]
+ movs r2, 0
+ str r2, [sp, 0x8]
+ str r2, [sp, 0xC]
+ movs r2, 0x3
+ bl SetMenuItems
+ bl sub_801CCD8
+ ldr r0, [r5]
+ adds r0, 0x44
+ movs r1, 0x3
+ movs r2, 0x1
+ bl sub_8035CF4
+ b _08036DFA
+ .align 2, 0
+_08036C50: .4byte gUnknown_80E60EC
+_08036C54: .4byte gUnknown_80E6104
+_08036C58:
+ bl sub_8036F74
+ b _08036DFA
+_08036C5E:
+ ldr r2, _08036C7C
+ ldr r1, [r5]
+ ldr r0, [r1, 0x14]
+ str r0, [r2]
+ ldr r0, _08036C80
+ ldr r2, _08036C84
+ adds r1, r2
+ ldrb r1, [r1]
+ movs r2, 0
+ bl sub_8090DC4
+ ldr r0, _08036C88
+ ldr r3, _08036C8C
+ b _08036C9C
+ .align 2, 0
+_08036C7C: .4byte gUnknown_202DE30
+_08036C80: .4byte gUnknown_202DE58
+_08036C84: .4byte 0x0000025e
+_08036C88: .4byte gUnknown_80E61E4
+_08036C8C: .4byte gUnknown_80E6154
+_08036C90:
+ ldr r0, _08036C94
+ b _08036C9A
+ .align 2, 0
+_08036C94: .4byte gUnknown_80E6214
+_08036C98:
+ ldr r0, _08036CB8
+_08036C9A:
+ ldr r3, _08036CBC
+_08036C9C:
+ movs r2, 0
+ str r2, [sp]
+ movs r1, 0x4
+ str r1, [sp, 0x4]
+ str r2, [sp, 0x8]
+ str r2, [sp, 0xC]
+ adds r1, 0xFD
+ str r1, [sp, 0x10]
+ movs r1, 0
+ movs r2, 0x5
+ bl sub_8014248
+ b _08036DFA
+ .align 2, 0
+_08036CB8: .4byte gUnknown_80E6268
+_08036CBC: .4byte gUnknown_80E618C
+_08036CC0:
+ movs r0, 0
+ bl nullsub_23
+ ldr r0, _08036CD4
+ movs r1, 0
+ movs r2, 0
+ movs r3, 0
+ bl sub_80141B4
+ b _08036DFA
+ .align 2, 0
+_08036CD4: .4byte gUnknown_80E62C4
+_08036CD8:
+ ldr r4, _08036D18
+ ldr r1, [r4]
+ movs r0, 0
+ str r0, [r1, 0xC]
+ movs r2, 0
+ movs r3, 0
+ movs r5, 0x91
+ lsls r5, 2
+ adds r0, r1, r5
+ str r2, [r0]
+ str r3, [r0, 0x4]
+ movs r0, 0x93
+ lsls r0, 2
+ adds r1, r0
+ str r2, [r1]
+ str r3, [r1, 0x4]
+ bl sub_8011830
+ ldr r0, [r4]
+ ldr r0, [r0, 0x8]
+ bl sub_8037B28
+ ldr r4, [r4]
+ str r0, [r4, 0xC]
+ cmp r0, 0
+ bne _08036D44
+ ldr r0, [r4, 0x8]
+ cmp r0, 0
+ beq _08036D1C
+ cmp r0, 0x1
+ beq _08036D2C
+ b _08036D44
+ .align 2, 0
+_08036D18: .4byte gUnknown_203B358
+_08036D1C:
+ adds r2, r4, r5
+ movs r1, 0x95
+ lsls r1, 2
+ adds r0, r4, r1
+ ldr r1, [r0, 0x4]
+ ldr r0, [r0]
+ str r0, [r2]
+ str r1, [r2, 0x4]
+_08036D2C:
+ ldr r4, _08036D6C
+ ldr r2, [r4]
+ ldr r0, [r2, 0x8]
+ movs r3, 0x91
+ lsls r3, 2
+ adds r1, r2, r3
+ adds r3, 0x8
+ adds r2, r3
+ bl sub_8037D64
+ ldr r1, [r4]
+ str r0, [r1, 0xC]
+_08036D44:
+ ldr r4, _08036D6C
+ ldr r2, [r4]
+ ldr r0, [r2, 0xC]
+ cmp r0, 0
+ bne _08036D66
+ ldr r0, [r2, 0x8]
+ cmp r0, 0x1
+ bhi _08036D66
+ movs r3, 0x91
+ lsls r3, 2
+ adds r1, r2, r3
+ adds r3, 0x8
+ adds r2, r3
+ bl sub_80381F4
+ ldr r1, [r4]
+ str r0, [r1, 0xC]
+_08036D66:
+ bl xxx_call_start_bg_music
+ b _08036DFA
+ .align 2, 0
+_08036D6C: .4byte gUnknown_203B358
+_08036D70:
+ ldr r2, [r5]
+ movs r1, 0x94
+ lsls r1, 2
+ adds r0, r2, r1
+ ldr r1, [r0]
+ cmp r1, 0
+ bne _08036DA4
+ ldr r1, _08036D9C
+ movs r3, 0x92
+ lsls r3, 2
+ adds r0, r2, r3
+ ldr r0, [r0]
+ str r0, [r1]
+ ldr r0, _08036DA0
+ subs r3, 0x4
+ adds r1, r2, r3
+ ldrb r1, [r1]
+ movs r2, 0
+ bl sub_8090DC4
+ b _08036DB8
+ .align 2, 0
+_08036D9C: .4byte gUnknown_202DE30
+_08036DA0: .4byte gUnknown_202DE58
+_08036DA4:
+ ldr r0, _08036DC8
+ str r1, [r0]
+ ldr r0, _08036DCC
+ movs r3, 0x93
+ lsls r3, 2
+ adds r1, r2, r3
+ ldrb r1, [r1]
+ movs r2, 0
+ bl sub_8090DC4
+_08036DB8:
+ ldr r0, _08036DD0
+_08036DBA:
+ ldr r3, _08036DD4
+ movs r1, 0
+ movs r2, 0
+ bl sub_80141B4
+ b _08036DFA
+ .align 2, 0
+_08036DC8: .4byte gUnknown_202DE30
+_08036DCC: .4byte gUnknown_202DE58
+_08036DD0: .4byte gUnknown_80E6314
+_08036DD4: .4byte 0x00000101
+_08036DD8:
+ ldr r2, _08036E04
+ ldr r1, [r5]
+ ldr r0, [r1, 0x14]
+ str r0, [r2]
+ ldr r0, _08036E08
+ ldr r2, _08036E0C
+ adds r1, r2
+ ldrb r1, [r1]
+ movs r2, 0
+ bl sub_8090DC4
+ ldr r0, _08036E10
+ ldr r3, _08036E14
+ movs r1, 0
+ movs r2, 0
+ bl sub_80141B4
+_08036DFA:
+ add sp, 0x18
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08036E04: .4byte gUnknown_202DE30
+_08036E08: .4byte gUnknown_202DE58
+_08036E0C: .4byte 0x0000025e
+_08036E10: .4byte gUnknown_80E6358
+_08036E14: .4byte 0x00000101
+ thumb_func_end sub_8036B28
+
+ thumb_func_start sub_8036E18
+sub_8036E18:
+ push {lr}
+ cmp r0, 0xF
+ bhi _08036EB4
+ lsls r0, 2
+ ldr r1, _08036E28
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_08036E28: .4byte _08036E2C
+ .align 2, 0
+_08036E2C:
+ .4byte _08036EC0
+ .4byte _08036E6C
+ .4byte _08036E7C
+ .4byte _08036E74
+ .4byte _08036E84
+ .4byte _08036E8C
+ .4byte _08036EB4
+ .4byte _08036EB4
+ .4byte _08036EB4
+ .4byte _08036EB4
+ .4byte _08036EB4
+ .4byte _08036EB4
+ .4byte _08036EB4
+ .4byte _08036EB4
+ .4byte _08036E94
+ .4byte _08036E9C
+_08036E6C:
+ ldr r0, _08036E70
+ b _08036E9E
+ .align 2, 0
+_08036E70: .4byte gUnknown_80E6378
+_08036E74:
+ ldr r0, _08036E78
+ b _08036E9E
+ .align 2, 0
+_08036E78: .4byte gUnknown_80E639C
+_08036E7C:
+ ldr r0, _08036E80
+ b _08036E9E
+ .align 2, 0
+_08036E80: .4byte gUnknown_80E63F8
+_08036E84:
+ ldr r0, _08036E88
+ b _08036E9E
+ .align 2, 0
+_08036E88: .4byte gUnknown_80E6448
+_08036E8C:
+ ldr r0, _08036E90
+ b _08036E9E
+ .align 2, 0
+_08036E90: .4byte gUnknown_80E6378
+_08036E94:
+ ldr r0, _08036E98
+ b _08036E9E
+ .align 2, 0
+_08036E98: .4byte gUnknown_80E6378
+_08036E9C:
+ ldr r0, _08036EAC
+_08036E9E:
+ ldr r3, _08036EB0
+ movs r1, 0
+ movs r2, 0
+ bl sub_80141B4
+ b _08036EC0
+ .align 2, 0
+_08036EAC: .4byte gUnknown_80E64AC
+_08036EB0: .4byte 0x00000101
+_08036EB4:
+ ldr r0, _08036EC4
+ ldr r3, _08036EC8
+ movs r1, 0
+ movs r2, 0
+ bl sub_80141B4
+_08036EC0:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08036EC4: .4byte gUnknown_80E6378
+_08036EC8: .4byte 0x00000101
+ thumb_func_end sub_8036E18
+
+ thumb_func_start sub_8036ECC
+sub_8036ECC:
+ push {r4-r6,lr}
+ adds r3, r0, 0
+ ldr r6, _08036F28
+ ldr r0, [r6]
+ movs r2, 0x3
+ str r2, [r0, 0x24]
+ movs r2, 0x1
+ str r2, [r0, 0x18]
+ str r2, [r0, 0x1C]
+ str r1, [r0, 0x20]
+ movs r1, 0x2C
+ str r1, [r0, 0x30]
+ movs r1, 0x12
+ str r1, [r0, 0x34]
+ str r3, [r0, 0x28]
+ lsls r4, r3, 1
+ adds r4, r3
+ lsls r4, 3
+ movs r5, 0xC2
+ lsls r5, 1
+ adds r1, r4, r5
+ adds r1, r0, r1
+ str r1, [r0, 0x2C]
+ adds r0, 0x14
+ bl sub_8013AA0
+ ldr r1, [r6]
+ adds r1, r4
+ adds r1, r5
+ ldr r0, _08036F2C
+ ldm r0!, {r2-r4}
+ stm r1!, {r2-r4}
+ ldm r0!, {r2-r4}
+ stm r1!, {r2-r4}
+ bl ResetUnusedInputStruct
+ ldr r0, [r6]
+ adds r0, r5
+ movs r1, 0x1
+ movs r2, 0x1
+ bl sub_800641C
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08036F28: .4byte gUnknown_203B358
+_08036F2C: .4byte gUnknown_80E6174
+ thumb_func_end sub_8036ECC
+
+ thumb_func_start sub_8036F30
+sub_8036F30:
+ push {r4,r5,lr}
+ sub sp, 0x4
+ ldr r5, _08036F6C
+ ldr r0, [r5]
+ ldr r4, [r0, 0x28]
+ adds r0, r4, 0
+ bl sub_8008C54
+ adds r0, r4, 0
+ bl sub_80073B8
+ ldr r2, _08036F70
+ movs r0, 0
+ str r0, [sp]
+ movs r0, 0x2
+ movs r1, 0
+ adds r3, r4, 0
+ bl xxx_call_draw_string
+ ldr r0, [r5]
+ adds r0, 0x14
+ bl sub_8013C68
+ adds r0, r4, 0
+ bl sub_80073E0
+ add sp, 0x4
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08036F6C: .4byte gUnknown_203B358
+_08036F70: .4byte gUnknown_80E6528
+ thumb_func_end sub_8036F30
+
+ thumb_func_start sub_8036F74
+sub_8036F74:
+ push {r4,lr}
+ ldr r4, _08036FB8
+ ldr r0, [r4]
+ movs r1, 0xC2
+ lsls r1, 1
+ adds r0, r1
+ bl sub_8006518
+ ldr r0, _08036FBC
+ ldr r1, [r0]
+ ldr r0, [r4]
+ ldr r2, _08036FC0
+ adds r0, r2
+ ldrb r0, [r0]
+ lsls r0, 1
+ adds r1, 0x50
+ adds r1, r0
+ ldrh r1, [r1]
+ movs r0, 0x2
+ bl sub_8036ECC
+ bl sub_801CCD8
+ ldr r0, [r4]
+ adds r0, 0x44
+ movs r1, 0x3
+ movs r2, 0
+ bl sub_8035CF4
+ bl sub_8036F30
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08036FB8: .4byte gUnknown_203B358
+_08036FBC: .4byte gUnknown_203B460
+_08036FC0: .4byte 0x0000025e
+ thumb_func_end sub_8036F74
+
+ thumb_func_start sub_8036FC4
+sub_8036FC4:
+ push {lr}
+ ldr r1, _08036FD8
+ ldr r1, [r1]
+ str r0, [r1]
+ bl nullsub_52
+ bl sub_8036B28
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08036FD8: .4byte gUnknown_203B358
+ thumb_func_end sub_8036FC4
+
+ thumb_func_start sub_8036FDC
+sub_8036FDC:
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ sub sp, 0x10
+ adds r6, r0, 0
+ bl ResetUnusedInputStruct
+ movs r0, 0
+ movs r1, 0x1
+ movs r2, 0x1
+ bl sub_800641C
+ movs r0, 0
+ bl ResetSprites
+ ldr r5, _080370C0
+ ldr r0, [r5]
+ cmp r0, 0
+ bne _08037016
+ ldr r4, _080370C4
+ adds r0, r4, 0
+ movs r1, 0x8
+ bl MemoryAlloc
+ str r0, [r5]
+ movs r1, 0
+ adds r2, r4, 0
+ bl MemoryFill8
+_08037016:
+ ldr r0, [r5]
+ str r6, [r0]
+ movs r1, 0
+ str r1, [r0, 0x4]
+ str r1, [r0, 0x8]
+ movs r3, 0
+ adds r7, r5, 0
+ movs r6, 0xE0
+ lsls r6, 1
+ movs r4, 0
+ movs r5, 0xDE
+ lsls r5, 1
+_0803702E:
+ ldr r0, [r7]
+ lsls r2, r3, 3
+ adds r1, r0, r6
+ adds r1, r2
+ str r4, [r1]
+ adds r0, r2
+ adds r0, r5
+ strb r4, [r0]
+ adds r3, 0x1
+ cmp r3, 0x1
+ ble _0803702E
+ ldr r0, _080370C0
+ mov r12, r0
+ movs r5, 0xAE
+ lsls r5, 1
+ mov r8, r5
+ ldr r4, _080370C8
+ movs r3, 0
+ movs r2, 0x3
+_08037054:
+ mov r6, r12
+ ldr r1, [r6]
+ adds r1, r3
+ add r1, r8
+ adds r0, r4, 0
+ ldm r0!, {r5-r7}
+ stm r1!, {r5-r7}
+ ldm r0!, {r5-r7}
+ stm r1!, {r5-r7}
+ adds r3, 0x18
+ subs r2, 0x1
+ cmp r2, 0
+ bge _08037054
+ movs r6, 0
+ bl ResetUnusedInputStruct
+ ldr r5, _080370C0
+ ldr r0, [r5]
+ movs r4, 0xAE
+ lsls r4, 1
+ adds r0, r4
+ movs r1, 0x1
+ movs r2, 0x1
+ bl sub_800641C
+ ldr r1, [r5]
+ adds r0, r1, 0
+ adds r0, 0x1C
+ adds r1, r4
+ ldr r3, _080370CC
+ ldr r2, _080370D0
+ str r2, [sp]
+ str r6, [sp, 0x4]
+ movs r2, 0x6
+ str r2, [sp, 0x8]
+ str r6, [sp, 0xC]
+ movs r2, 0
+ bl SetMenuItems
+ ldr r0, [r5]
+ adds r0, 0x1C
+ movs r1, 0
+ movs r2, 0x1
+ bl sub_8035CF4
+ bl sub_80376CC
+ add sp, 0x10
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080370C0: .4byte gUnknown_203B35C
+_080370C4: .4byte 0x00000504
+_080370C8: .4byte gUnknown_80E653C
+_080370CC: .4byte gUnknown_80E6CD0
+_080370D0: .4byte gUnknown_80E6CE8
+ thumb_func_end sub_8036FDC
+
+ thumb_func_start sub_80370D4
+sub_80370D4:
+ push {r4,lr}
+ ldr r4, _080370EC
+ ldr r0, [r4]
+ cmp r0, 0
+ beq _080370E6
+ bl MemoryFree
+ movs r0, 0
+ str r0, [r4]
+_080370E6:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080370EC: .4byte gUnknown_203B35C
+ thumb_func_end sub_80370D4
+
+ thumb_func_start sub_80370F0
+sub_80370F0:
+ push {r4,r5,lr}
+ sub sp, 0x4
+ movs r0, 0x4
+ str r0, [sp]
+ ldr r5, _08037110
+ ldr r4, _08037114
+ ldr r1, [r4]
+ ldr r0, [r1, 0x8]
+ cmp r0, 0x1
+ beq _08037148
+ cmp r0, 0x1
+ bcc _08037118
+ cmp r0, 0x2
+ beq _08037158
+ b _080371A8
+ .align 2, 0
+_08037110: .4byte 0x0000ffdc
+_08037114: .4byte gUnknown_203B35C
+_08037118:
+ adds r0, r1, 0
+ adds r0, 0x1C
+ bl sub_80130A8
+ lsls r0, 24
+ cmp r0, 0
+ bne _08037130
+ ldr r0, [r4]
+ adds r0, 0x1C
+ mov r1, sp
+ bl sub_8013114
+_08037130:
+ ldr r0, [sp]
+ cmp r0, 0x4
+ bne _0803713C
+ bl sub_8037748
+ b _080371A8
+_0803713C:
+ ldr r1, [r4]
+ movs r0, 0x1
+ str r0, [r1, 0x8]
+ bl sub_8037900
+ b _080371A8
+_08037148:
+ bl sub_80376CC
+ ldr r1, [r4]
+ movs r0, 0x2
+ str r0, [r1, 0x8]
+ bl sub_80371B8
+ b _080371A8
+_08037158:
+ ldr r0, [r1]
+ cmp r0, 0x1
+ bhi _08037172
+ ldr r0, [r1, 0x4]
+ cmp r0, 0
+ bne _08037172
+ movs r0, 0
+ bl sub_8037C10
+ cmp r0, 0
+ bne _08037172
+ movs r0, 0x29
+ b _080371AA
+_08037172:
+ ldr r4, _080371B4
+ ldr r0, [r4]
+ adds r0, 0x1C
+ bl sub_80130A8
+ lsls r0, 24
+ cmp r0, 0
+ bne _0803718C
+ ldr r0, [r4]
+ adds r0, 0x1C
+ mov r1, sp
+ bl sub_8013114
+_0803718C:
+ ldr r0, [sp]
+ cmp r0, 0x4
+ beq _080371A4
+ movs r0, 0x3
+ bl sub_80119D4
+ bl sub_8037798
+ adds r5, r0, 0
+ ldr r1, [r4]
+ movs r0, 0x4
+ str r0, [r1, 0x8]
+_080371A4:
+ bl sub_8037748
+_080371A8:
+ adds r0, r5, 0
+_080371AA:
+ add sp, 0x4
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080371B4: .4byte gUnknown_203B35C
+ thumb_func_end sub_80370F0
+
+ thumb_func_start sub_80371B8
+sub_80371B8:
+ push {r4-r7,lr}
+ sub sp, 0x10
+ movs r6, 0
+ movs r5, 0
+ bl sub_8037400
+ ldr r7, _0803721C
+ ldr r1, [r7]
+ ldr r0, [r1]
+ cmp r0, 0x1
+ bhi _08037228
+ ldr r0, [r1, 0x4]
+ cmp r0, 0
+ bne _08037228
+ movs r0, 0
+ bl sub_8037C10
+ cmp r0, 0
+ bne _080371E0
+ b _080373AC
+_080371E0:
+ bl sub_80376CC
+ ldr r0, [r7]
+ movs r4, 0xAE
+ lsls r4, 1
+ adds r0, r4
+ movs r1, 0
+ bl sub_8035CC0
+ ldr r1, [r7]
+ adds r0, r1, 0
+ adds r0, 0x1C
+ adds r1, r4
+ ldr r3, _08037220
+ ldr r2, _08037224
+ str r2, [sp]
+ str r6, [sp, 0x4]
+ movs r2, 0x6
+ str r2, [sp, 0x8]
+ str r6, [sp, 0xC]
+ movs r2, 0
+ bl SetMenuItems
+ ldr r0, [r7]
+ adds r0, 0x1C
+ movs r1, 0
+ movs r2, 0x1
+ bl sub_8035CF4
+ b _080373AC
+ .align 2, 0
+_0803721C: .4byte gUnknown_203B35C
+_08037220: .4byte gUnknown_80E6C50
+_08037224: .4byte gUnknown_80E6C68
+_08037228:
+ bl sub_80376CC
+ ldr r4, _08037250
+ ldr r0, [r4]
+ movs r1, 0xAE
+ lsls r1, 1
+ adds r0, r1
+ movs r1, 0
+ bl sub_8035CC0
+ ldr r0, [r4]
+ ldr r0, [r0, 0x4]
+ cmp r0, 0xF
+ bls _08037246
+ b _0803734C
+_08037246:
+ lsls r0, 2
+ ldr r1, _08037254
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_08037250: .4byte gUnknown_203B35C
+_08037254: .4byte _08037258
+ .align 2, 0
+_08037258:
+ .4byte _08037298
+ .4byte _080372D8
+ .4byte _080372B8
+ .4byte _080372A8
+ .4byte _080372C8
+ .4byte _080372D8
+ .4byte _080372E8
+ .4byte _080372F8
+ .4byte _0803734C
+ .4byte _08037308
+ .4byte _0803734C
+ .4byte _08037318
+ .4byte _0803734C
+ .4byte _08037328
+ .4byte _08037338
+ .4byte _08037348
+_08037298:
+ ldr r6, _080372A0
+ ldr r5, _080372A4
+ b _0803734C
+ .align 2, 0
+_080372A0: .4byte gUnknown_80E66BC
+_080372A4: .4byte gUnknown_80E66D4
+_080372A8:
+ ldr r6, _080372B0
+ ldr r5, _080372B4
+ b _0803734C
+ .align 2, 0
+_080372B0: .4byte gUnknown_80E6D54
+_080372B4: .4byte gUnknown_80E6D6C
+_080372B8:
+ ldr r6, _080372C0
+ ldr r5, _080372C4
+ b _0803734C
+ .align 2, 0
+_080372C0: .4byte gUnknown_80E6DDC
+_080372C4: .4byte gUnknown_80E6DF4
+_080372C8:
+ ldr r6, _080372D0
+ ldr r5, _080372D4
+ b _0803734C
+ .align 2, 0
+_080372D0: .4byte gUnknown_80E67D4
+_080372D4: .4byte gUnknown_80E67EC
+_080372D8:
+ ldr r6, _080372E0
+ ldr r5, _080372E4
+ b _0803734C
+ .align 2, 0
+_080372E0: .4byte gUnknown_80E6748
+_080372E4: .4byte gUnknown_80E6760
+_080372E8:
+ ldr r6, _080372F0
+ ldr r5, _080372F4
+ b _0803734C
+ .align 2, 0
+_080372F0: .4byte gUnknown_80E689C
+_080372F4: .4byte gUnknown_80E68B4
+_080372F8:
+ ldr r6, _08037300
+ ldr r5, _08037304
+ b _0803734C
+ .align 2, 0
+_08037300: .4byte gUnknown_80E6938
+_08037304: .4byte gUnknown_80E6950
+_08037308:
+ ldr r6, _08037310
+ ldr r5, _08037314
+ b _0803734C
+ .align 2, 0
+_08037310: .4byte gUnknown_80E69B0
+_08037314: .4byte gUnknown_80E69C8
+_08037318:
+ ldr r6, _08037320
+ ldr r5, _08037324
+ b _0803734C
+ .align 2, 0
+_08037320: .4byte gUnknown_80E6A10
+_08037324: .4byte gUnknown_80E6A28
+_08037328:
+ ldr r6, _08037330
+ ldr r5, _08037334
+ b _0803734C
+ .align 2, 0
+_08037330: .4byte gUnknown_80E6A74
+_08037334: .4byte gUnknown_80E6A8C
+_08037338:
+ ldr r6, _08037340
+ ldr r5, _08037344
+ b _0803734C
+ .align 2, 0
+_08037340: .4byte gUnknown_80E6B78
+_08037344: .4byte gUnknown_80E6B90
+_08037348:
+ ldr r6, _080373B4
+ ldr r5, _080373B8
+_0803734C:
+ ldr r4, _080373BC
+ ldr r1, [r4]
+ adds r0, r1, 0
+ adds r0, 0x1C
+ movs r2, 0xAE
+ lsls r2, 1
+ adds r1, r2
+ str r5, [sp]
+ movs r3, 0
+ str r3, [sp, 0x4]
+ movs r2, 0x6
+ str r2, [sp, 0x8]
+ str r3, [sp, 0xC]
+ movs r2, 0
+ adds r3, r6, 0
+ bl SetMenuItems
+ ldr r0, [r4]
+ adds r0, 0x1C
+ movs r1, 0
+ movs r2, 0x1
+ bl sub_8035CF4
+ ldr r4, [r4]
+ ldr r0, [r4, 0x4]
+ cmp r0, 0
+ beq _080373AC
+ ldr r0, [r4]
+ cmp r0, 0
+ bne _080373AC
+ bl sub_8035D94
+ adds r2, r0, 0
+ ldrb r0, [r2]
+ cmp r0, 0
+ beq _080373AC
+ ldr r3, [r2, 0x4]
+ cmp r3, 0
+ beq _080373AC
+ ldr r0, _080373C0
+ ldr r1, [r0]
+ ldrb r0, [r2]
+ lsls r0, 1
+ adds r1, 0x50
+ adds r1, r0
+ ldrh r0, [r1]
+ adds r0, r3
+ strh r0, [r1]
+_080373AC:
+ add sp, 0x10
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080373B4: .4byte gUnknown_80E6BF4
+_080373B8: .4byte gUnknown_80E6C0C
+_080373BC: .4byte gUnknown_203B35C
+_080373C0: .4byte gUnknown_203B460
+ thumb_func_end sub_80371B8
+
+ thumb_func_start sub_80373C4
+sub_80373C4:
+ push {lr}
+ movs r0, 0
+ movs r1, 0
+ bl sub_8005838
+ bl sub_80060EC
+ bl sub_800CB20
+ bl LoadBufferedInputs
+ bl TransferBGPaletteBuffer
+ bl xxx_call_update_bg_vram
+ bl sub_8009908
+ bl xxx_call_update_bg_sound_input
+ movs r0, 0
+ bl ResetSprites
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80373C4
+
+ thumb_func_start sub_80373F4
+sub_80373F4:
+ ldr r0, _080373FC
+ ldr r0, [r0]
+ bx lr
+ .align 2, 0
+_080373FC: .4byte gUnknown_203B35C
+ thumb_func_end sub_80373F4
+
+ thumb_func_start sub_8037400
+sub_8037400:
+ push {r4-r6,lr}
+ movs r6, 0
+ movs r5, 0
+ bl sub_8037810
+ bl sub_8011830
+ ldr r4, _08037434
+ ldr r0, [r4]
+ ldr r0, [r0]
+ bl sub_8037B28
+ ldr r4, [r4]
+ str r0, [r4, 0x4]
+ cmp r0, 0
+ beq _08037422
+ b _080376BE
+_08037422:
+ ldr r0, [r4]
+ cmp r0, 0xA
+ bls _0803742A
+ b _080375E8
+_0803742A:
+ lsls r0, 2
+ ldr r1, _08037438
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_08037434: .4byte gUnknown_203B35C
+_08037438: .4byte _0803743C
+ .align 2, 0
+_0803743C:
+ .4byte _08037494
+ .4byte _080374B8
+ .4byte _08037534
+ .4byte _0803751C
+ .4byte _0803756C
+ .4byte _080375D8
+ .4byte _080374E4
+ .4byte _080374D0
+ .4byte _080375E8
+ .4byte _08037480
+ .4byte _08037468
+_08037468:
+ ldr r0, _0803747C
+ ldr r0, [r0]
+ movs r1, 0xE7
+ lsls r1, 2
+ adds r6, r0, r1
+ movs r2, 0x8A
+ lsls r2, 3
+ adds r5, r0, r2
+ b _080375E8
+ .align 2, 0
+_0803747C: .4byte gUnknown_203B35C
+_08037480:
+ ldr r0, _08037490
+ ldr r0, [r0]
+ movs r3, 0xE7
+ lsls r3, 2
+ adds r6, r0, r3
+ movs r4, 0x8A
+ lsls r4, 3
+ b _080375E6
+ .align 2, 0
+_08037490: .4byte gUnknown_203B35C
+_08037494:
+ bl sub_8035D94
+ ldr r1, _080374B4
+ ldr r3, [r1]
+ movs r5, 0xDE
+ lsls r5, 1
+ adds r2, r3, r5
+ ldr r1, [r0, 0x4]
+ ldr r0, [r0]
+ str r0, [r2]
+ str r1, [r2, 0x4]
+ adds r6, r2, 0
+ movs r0, 0xE2
+ lsls r0, 1
+ adds r5, r3, r0
+ b _080375E8
+ .align 2, 0
+_080374B4: .4byte gUnknown_203B35C
+_080374B8:
+ ldr r0, _080374CC
+ ldr r0, [r0]
+ movs r1, 0xDE
+ lsls r1, 1
+ adds r6, r0, r1
+ movs r2, 0xE2
+ lsls r2, 1
+ adds r5, r0, r2
+ b _080375E8
+ .align 2, 0
+_080374CC: .4byte gUnknown_203B35C
+_080374D0:
+ ldr r0, _080374E0
+ ldr r0, [r0]
+ movs r3, 0xE6
+ lsls r3, 1
+ adds r6, r0, r3
+ movs r4, 0xFE
+ lsls r4, 1
+ b _080375E6
+ .align 2, 0
+_080374E0: .4byte gUnknown_203B35C
+_080374E4:
+ bl sub_8035D74
+ lsls r0, 24
+ lsrs r0, 24
+ bl sub_8095228
+ ldr r3, _08037518
+ ldr r1, [r3]
+ movs r2, 0xE6
+ lsls r2, 1
+ adds r1, r2
+ ldm r0!, {r4-r6}
+ stm r1!, {r4-r6}
+ ldm r0!, {r4-r6}
+ stm r1!, {r4-r6}
+ ldm r0!, {r4-r6}
+ stm r1!, {r4-r6}
+ ldm r0!, {r4-r6}
+ stm r1!, {r4-r6}
+ ldr r0, [r3]
+ adds r6, r0, r2
+ movs r1, 0xFE
+ lsls r1, 1
+ adds r5, r0, r1
+ b _080375E8
+ .align 2, 0
+_08037518: .4byte gUnknown_203B35C
+_0803751C:
+ ldr r0, _08037530
+ ldr r0, [r0]
+ movs r2, 0x8B
+ lsls r2, 2
+ adds r6, r0, r2
+ movs r3, 0x97
+ lsls r3, 2
+ adds r5, r0, r3
+ b _080375E8
+ .align 2, 0
+_08037530: .4byte gUnknown_203B35C
+_08037534:
+ bl sub_8035D74
+ lsls r0, 24
+ lsrs r0, 24
+ bl sub_8095228
+ ldr r3, _08037568
+ ldr r1, [r3]
+ movs r2, 0x8B
+ lsls r2, 2
+ adds r1, r2
+ ldm r0!, {r4-r6}
+ stm r1!, {r4-r6}
+ ldm r0!, {r4-r6}
+ stm r1!, {r4-r6}
+ ldm r0!, {r4-r6}
+ stm r1!, {r4-r6}
+ ldm r0!, {r4-r6}
+ stm r1!, {r4-r6}
+ ldr r0, [r3]
+ adds r6, r0, r2
+ movs r1, 0x97
+ lsls r1, 2
+ adds r5, r0, r1
+ b _080375E8
+ .align 2, 0
+_08037568: .4byte gUnknown_203B35C
+_0803756C:
+ bl sub_8035D74
+ lsls r0, 24
+ lsrs r0, 24
+ bl sub_8095228
+ ldr r4, _080375CC
+ ldr r1, [r4]
+ movs r5, 0xA3
+ lsls r5, 2
+ adds r1, r5
+ ldm r0!, {r2,r3,r6}
+ stm r1!, {r2,r3,r6}
+ ldm r0!, {r2,r3,r6}
+ stm r1!, {r2,r3,r6}
+ ldm r0!, {r2,r3,r6}
+ stm r1!, {r2,r3,r6}
+ ldm r0!, {r2,r3,r6}
+ stm r1!, {r2,r3,r6}
+ bl sub_8035D3C
+ lsls r0, 16
+ ldr r1, _080375D0
+ cmp r0, r1
+ beq _080375BE
+ bl sub_8035D3C
+ ldr r3, [r4]
+ movs r1, 0xAF
+ lsls r1, 2
+ adds r3, r1
+ ldr r1, _080375D4
+ ldr r1, [r1]
+ lsls r0, 16
+ asrs r0, 16
+ movs r2, 0x58
+ muls r0, r2
+ adds r1, r0
+ adds r0, r3, 0
+ bl memcpy
+_080375BE:
+ ldr r0, [r4]
+ adds r6, r0, r5
+ movs r2, 0xC5
+ lsls r2, 2
+ adds r5, r0, r2
+ b _080375E8
+ .align 2, 0
+_080375CC: .4byte gUnknown_203B35C
+_080375D0: .4byte 0xffff0000
+_080375D4: .4byte gUnknown_203B45C
+_080375D8:
+ ldr r0, _08037610
+ ldr r0, [r0]
+ movs r3, 0xA3
+ lsls r3, 2
+ adds r6, r0, r3
+ movs r4, 0xC5
+ lsls r4, 2
+_080375E6:
+ adds r5, r0, r4
+_080375E8:
+ ldr r4, _08037610
+ ldr r0, [r4]
+ ldr r0, [r0]
+ adds r1, r6, 0
+ adds r2, r5, 0
+ bl sub_8037D64
+ ldr r1, [r4]
+ str r0, [r1, 0x4]
+ cmp r0, 0
+ bne _080376BE
+ ldr r0, [r1]
+ cmp r0, 0xA
+ bhi _080376AE
+ lsls r0, 2
+ ldr r1, _08037614
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_08037610: .4byte gUnknown_203B35C
+_08037614: .4byte _08037618
+ .align 2, 0
+_08037618:
+ .4byte _08037644
+ .4byte _08037644
+ .4byte _08037658
+ .4byte _08037658
+ .4byte _0803766C
+ .4byte _0803766C
+ .4byte _08037684
+ .4byte _08037684
+ .4byte _080376AE
+ .4byte _0803769C
+ .4byte _0803769C
+_08037644:
+ ldr r0, _08037654
+ ldr r2, [r0]
+ movs r5, 0xDE
+ lsls r5, 1
+ adds r6, r2, r5
+ movs r1, 0xE2
+ lsls r1, 1
+ b _0803767A
+ .align 2, 0
+_08037654: .4byte gUnknown_203B35C
+_08037658:
+ ldr r0, _08037668
+ ldr r2, [r0]
+ movs r3, 0x8B
+ lsls r3, 2
+ adds r6, r2, r3
+ movs r4, 0x97
+ lsls r4, 2
+ b _08037692
+ .align 2, 0
+_08037668: .4byte gUnknown_203B35C
+_0803766C:
+ ldr r0, _08037680
+ ldr r2, [r0]
+ movs r5, 0xA3
+ lsls r5, 2
+ adds r6, r2, r5
+ movs r1, 0xC5
+ lsls r1, 2
+_0803767A:
+ adds r5, r2, r1
+ adds r4, r0, 0
+ b _080376AE
+ .align 2, 0
+_08037680: .4byte gUnknown_203B35C
+_08037684:
+ ldr r0, _08037698
+ ldr r2, [r0]
+ movs r3, 0xE6
+ lsls r3, 1
+ adds r6, r2, r3
+ movs r4, 0xFE
+ lsls r4, 1
+_08037692:
+ adds r5, r2, r4
+ adds r4, r0, 0
+ b _080376AE
+ .align 2, 0
+_08037698: .4byte gUnknown_203B35C
+_0803769C:
+ ldr r1, _080376C8
+ ldr r0, [r1]
+ movs r5, 0xE7
+ lsls r5, 2
+ adds r6, r0, r5
+ movs r2, 0x8A
+ lsls r2, 3
+ adds r5, r0, r2
+ adds r4, r1, 0
+_080376AE:
+ ldr r0, [r4]
+ ldr r0, [r0]
+ adds r1, r6, 0
+ adds r2, r5, 0
+ bl sub_80381F4
+ ldr r1, [r4]
+ str r0, [r1, 0x4]
+_080376BE:
+ bl xxx_call_start_bg_music
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080376C8: .4byte gUnknown_203B35C
+ thumb_func_end sub_8037400
+
+ thumb_func_start sub_80376CC
+sub_80376CC:
+ push {r4,lr}
+ ldr r0, _08037728
+ ldr r3, [r0]
+ ldrh r1, [r3, 0xC]
+ ldr r0, _0803772C
+ ands r0, r1
+ ldr r1, _08037730
+ ands r0, r1
+ ldr r4, _08037734
+ ands r0, r4
+ ldr r1, _08037738
+ ands r0, r1
+ ldr r1, _0803773C
+ ands r0, r1
+ movs r2, 0x80
+ lsls r2, 7
+ ldr r1, _08037740
+ ands r0, r1
+ orrs r0, r2
+ strh r0, [r3, 0xC]
+ movs r2, 0xFC
+ lsls r2, 2
+ ldrh r1, [r3, 0x10]
+ movs r0, 0xFC
+ lsls r0, 8
+ ands r0, r1
+ orrs r0, r2
+ ands r0, r4
+ movs r2, 0xF
+ movs r4, 0xF0
+ lsls r4, 8
+ ldr r1, _08037744
+ ands r0, r1
+ orrs r0, r4
+ strh r0, [r3, 0x10]
+ movs r0, 0
+ strh r0, [r3, 0xE]
+ movs r1, 0xC0
+ lsls r1, 4
+ ldrh r0, [r3, 0x12]
+ ands r2, r0
+ orrs r2, r1
+ strh r2, [r3, 0x12]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08037728: .4byte gUnknown_203B35C
+_0803772C: .4byte 0x0000feff
+_08037730: .4byte 0x0000fdff
+_08037734: .4byte 0x0000f3ff
+_08037738: .4byte 0x0000efff
+_0803773C: .4byte 0x0000dfff
+_08037740: .4byte 0x00003fff
+_08037744: .4byte 0x00000fff
+ thumb_func_end sub_80376CC
+
+ thumb_func_start sub_8037748
+sub_8037748:
+ push {r4,lr}
+ ldr r4, _08037794
+ ldr r3, [r4]
+ ldrh r1, [r3, 0xE]
+ movs r0, 0xFE
+ lsls r0, 8
+ ands r0, r1
+ movs r1, 0x70
+ orrs r0, r1
+ strh r0, [r3, 0xE]
+ movs r2, 0xD0
+ lsls r2, 3
+ ldrh r1, [r3, 0x12]
+ movs r0, 0xF
+ ands r0, r1
+ orrs r0, r2
+ strh r0, [r3, 0x12]
+ ldr r0, [r3, 0x14]
+ movs r1, 0x8
+ ands r0, r1
+ cmp r0, 0
+ beq _08037782
+ adds r0, r3, 0
+ adds r0, 0xC
+ adds r1, 0xF8
+ movs r2, 0
+ movs r3, 0
+ bl AddSprite
+_08037782:
+ bl xxx_draw_string_80144C4
+ ldr r1, [r4]
+ ldr r0, [r1, 0x14]
+ adds r0, 0x1
+ str r0, [r1, 0x14]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08037794: .4byte gUnknown_203B35C
+ thumb_func_end sub_8037748
+
+ thumb_func_start sub_8037798
+sub_8037798:
+ push {lr}
+ ldr r2, _080377B4
+ ldr r1, _080377B8
+ ldr r0, [r1]
+ ldr r0, [r0]
+ adds r3, r1, 0
+ cmp r0, 0xA
+ bhi _0803780A
+ lsls r0, 2
+ ldr r1, _080377BC
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080377B4: .4byte 0x0000ffdc
+_080377B8: .4byte gUnknown_203B35C
+_080377BC: .4byte _080377C0
+ .align 2, 0
+_080377C0:
+ .4byte _080377EC
+ .4byte _080377EC
+ .4byte _080377F0
+ .4byte _080377F0
+ .4byte _080377F0
+ .4byte _080377F0
+ .4byte _080377F0
+ .4byte _080377F0
+ .4byte _0803780A
+ .4byte _080377FE
+ .4byte _080377FE
+_080377EC:
+ movs r2, 0x1
+ b _0803780A
+_080377F0:
+ ldr r0, [r3]
+ ldr r0, [r0, 0x4]
+ movs r2, 0x1
+ cmp r0, 0
+ bne _0803780A
+ movs r2, 0x2A
+ b _0803780A
+_080377FE:
+ ldr r0, [r3]
+ ldr r0, [r0, 0x4]
+ movs r2, 0xD
+ cmp r0, 0
+ bne _0803780A
+ movs r2, 0x2B
+_0803780A:
+ adds r0, r2, 0
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8037798
+
+ thumb_func_start sub_8037810
+sub_8037810:
+ push {r4-r6,lr}
+ ldr r6, _080378FC
+ ldr r0, [r6]
+ movs r5, 0xDE
+ lsls r5, 1
+ adds r0, r5
+ movs r1, 0
+ movs r2, 0x8
+ bl MemoryFill8
+ ldr r0, [r6]
+ movs r4, 0xE2
+ lsls r4, 1
+ adds r0, r4
+ movs r1, 0
+ movs r2, 0x8
+ bl MemoryFill8
+ ldr r0, [r6]
+ adds r5, r0, r5
+ movs r1, 0
+ movs r2, 0
+ str r1, [r5]
+ str r2, [r5, 0x4]
+ adds r4, r0, r4
+ str r1, [r4]
+ str r2, [r4, 0x4]
+ movs r2, 0xE6
+ lsls r2, 1
+ adds r0, r2
+ movs r1, 0
+ movs r2, 0x30
+ bl MemoryFill8
+ ldr r0, [r6]
+ movs r3, 0xFE
+ lsls r3, 1
+ adds r0, r3
+ movs r1, 0
+ movs r2, 0x30
+ bl MemoryFill8
+ ldr r0, [r6]
+ movs r1, 0x8B
+ lsls r1, 2
+ adds r0, r1
+ movs r1, 0
+ movs r2, 0x30
+ bl MemoryFill8
+ ldr r0, [r6]
+ movs r2, 0x97
+ lsls r2, 2
+ adds r0, r2
+ movs r1, 0
+ movs r2, 0x30
+ bl MemoryFill8
+ ldr r0, [r6]
+ movs r3, 0xA3
+ lsls r3, 2
+ adds r0, r3
+ movs r1, 0
+ movs r2, 0x30
+ bl MemoryFill8
+ ldr r0, [r6]
+ movs r1, 0xC5
+ lsls r1, 2
+ adds r0, r1
+ movs r1, 0
+ movs r2, 0x30
+ bl MemoryFill8
+ ldr r0, [r6]
+ movs r2, 0xAF
+ lsls r2, 2
+ adds r0, r2
+ movs r1, 0
+ movs r2, 0x58
+ bl MemoryFill8
+ ldr r0, [r6]
+ movs r3, 0xD1
+ lsls r3, 2
+ adds r0, r3
+ movs r1, 0
+ movs r2, 0x58
+ bl MemoryFill8
+ ldr r0, [r6]
+ movs r1, 0xE7
+ lsls r1, 2
+ adds r0, r1
+ movs r1, 0
+ movs r2, 0xB4
+ bl MemoryFill8
+ ldr r0, [r6]
+ movs r2, 0x8A
+ lsls r2, 3
+ adds r0, r2
+ movs r1, 0
+ movs r2, 0xB4
+ bl MemoryFill8
+ ldr r2, [r6]
+ movs r3, 0xB1
+ lsls r3, 2
+ adds r0, r2, r3
+ movs r1, 0
+ strh r1, [r0]
+ adds r3, 0x88
+ adds r0, r2, r3
+ strh r1, [r0]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080378FC: .4byte gUnknown_203B35C
+ thumb_func_end sub_8037810
+
+ thumb_func_start sub_8037900
+sub_8037900:
+ push {r4,lr}
+ sub sp, 0x10
+ ldr r4, _08037928
+ ldr r0, [r4]
+ movs r1, 0xAE
+ lsls r1, 1
+ adds r0, r1
+ movs r1, 0
+ bl sub_8035CC0
+ ldr r0, [r4]
+ ldr r0, [r0]
+ cmp r0, 0xA
+ bls _0803791E
+ b _08037A14
+_0803791E:
+ lsls r0, 2
+ ldr r1, _0803792C
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_08037928: .4byte gUnknown_203B35C
+_0803792C: .4byte _08037930
+ .align 2, 0
+_08037930:
+ .4byte _0803795C
+ .4byte _0803795C
+ .4byte _0803797C
+ .4byte _0803797C
+ .4byte _0803799C
+ .4byte _0803799C
+ .4byte _080379BC
+ .4byte _080379BC
+ .4byte _08037A14
+ .4byte _080379F0
+ .4byte _080379F0
+_0803795C:
+ ldr r0, _08037970
+ ldr r1, [r0]
+ adds r0, r1, 0
+ adds r0, 0x1C
+ movs r2, 0xAE
+ lsls r2, 1
+ adds r1, r2
+ ldr r3, _08037974
+ ldr r2, _08037978
+ b _080379CE
+ .align 2, 0
+_08037970: .4byte gUnknown_203B35C
+_08037974: .4byte gUnknown_80E6554
+_08037978: .4byte gUnknown_80E656C
+_0803797C:
+ ldr r0, _08037990
+ ldr r1, [r0]
+ adds r0, r1, 0
+ adds r0, 0x1C
+ movs r2, 0xAE
+ lsls r2, 1
+ adds r1, r2
+ ldr r3, _08037994
+ ldr r2, _08037998
+ b _080379CE
+ .align 2, 0
+_08037990: .4byte gUnknown_203B35C
+_08037994: .4byte gUnknown_80E6554
+_08037998: .4byte gUnknown_80E65D8
+_0803799C:
+ ldr r0, _080379B0
+ ldr r1, [r0]
+ adds r0, r1, 0
+ adds r0, 0x1C
+ movs r2, 0xAE
+ lsls r2, 1
+ adds r1, r2
+ ldr r3, _080379B4
+ ldr r2, _080379B8
+ b _080379CE
+ .align 2, 0
+_080379B0: .4byte gUnknown_203B35C
+_080379B4: .4byte gUnknown_80E6554
+_080379B8: .4byte gUnknown_80E661C
+_080379BC:
+ ldr r0, _080379E4
+ ldr r1, [r0]
+ adds r0, r1, 0
+ adds r0, 0x1C
+ movs r2, 0xAE
+ lsls r2, 1
+ adds r1, r2
+ ldr r3, _080379E8
+ ldr r2, _080379EC
+_080379CE:
+ str r2, [sp]
+ movs r4, 0
+ str r4, [sp, 0x4]
+ movs r2, 0x6
+ str r2, [sp, 0x8]
+ str r4, [sp, 0xC]
+ movs r2, 0
+ bl SetMenuItems
+ b _08037A14
+ .align 2, 0
+_080379E4: .4byte gUnknown_203B35C
+_080379E8: .4byte gUnknown_80E6554
+_080379EC: .4byte gUnknown_80E665C
+_080379F0:
+ ldr r0, _08037A38
+ ldr r1, [r0]
+ adds r0, r1, 0
+ adds r0, 0x1C
+ movs r2, 0xAE
+ lsls r2, 1
+ adds r1, r2
+ ldr r3, _08037A3C
+ ldr r2, _08037A40
+ str r2, [sp]
+ movs r4, 0
+ str r4, [sp, 0x4]
+ movs r2, 0x6
+ str r2, [sp, 0x8]
+ str r4, [sp, 0xC]
+ movs r2, 0
+ bl SetMenuItems
+_08037A14:
+ ldr r4, _08037A38
+ ldr r0, [r4]
+ adds r0, 0x1C
+ movs r1, 0
+ movs r2, 0x1
+ bl sub_8035CF4
+ bl sub_80373C4
+ ldr r0, [r4]
+ adds r0, 0x1C
+ bl sub_80130A8
+ add sp, 0x10
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08037A38: .4byte gUnknown_203B35C
+_08037A3C: .4byte gUnknown_80E6554
+_08037A40: .4byte gUnknown_80E667C
+ thumb_func_end sub_8037900
+
+ thumb_func_start nullsub_202
+nullsub_202:
+ bx lr
+ thumb_func_end nullsub_202
+
+ thumb_func_start sub_8037A48
+sub_8037A48:
+ push {r4-r6,lr}
+ sub sp, 0x28
+ movs r6, 0x1
+ movs r0, 0
+ mov r1, sp
+ movs r2, 0x14
+ bl sub_800D670
+ add r4, sp, 0x14
+ movs r0, 0x1
+ adds r1, r4, 0
+ movs r2, 0x14
+ bl sub_800D670
+ ldr r1, _08037AAC
+ movs r3, 0x8
+ adds r2, r1, 0
+ adds r0, r2, 0x4
+_08037A6C:
+ str r3, [r0]
+ subs r0, 0x4
+ cmp r0, r1
+ bge _08037A6C
+ ldr r0, [sp, 0x10]
+ str r0, [r2]
+ ldr r0, [r4, 0x10]
+ str r0, [r2, 0x4]
+ ldr r5, _08037AB0
+ mov r0, sp
+ adds r1, r5, 0
+ bl strcmp
+ cmp r0, 0
+ beq _08037A8C
+ movs r0, 0x1
+_08037A8C:
+ lsls r0, 24
+ cmp r0, 0
+ bne _08037AA6
+ adds r0, r4, 0
+ adds r1, r5, 0
+ bl strcmp
+ cmp r0, 0
+ beq _08037AA0
+ movs r0, 0x1
+_08037AA0:
+ lsls r0, 24
+ cmp r0, 0
+ beq _08037AB4
+_08037AA6:
+ movs r0, 0
+ b _08037B1E
+ .align 2, 0
+_08037AAC: .4byte gUnknown_202EC40
+_08037AB0: .4byte gUnknown_80E6E50
+_08037AB4:
+ ldr r1, [sp, 0x10]
+ cmp r1, 0
+ bne _08037AC0
+ ldr r0, [r4, 0x10]
+ cmp r0, 0x1
+ beq _08037B1C
+_08037AC0:
+ cmp r1, 0x1
+ bne _08037ACA
+ ldr r0, [r4, 0x10]
+ cmp r0, 0
+ beq _08037B1C
+_08037ACA:
+ cmp r1, 0x2
+ bne _08037AD4
+ ldr r0, [r4, 0x10]
+ cmp r0, 0x3
+ beq _08037B1C
+_08037AD4:
+ cmp r1, 0x3
+ bne _08037ADE
+ ldr r0, [r4, 0x10]
+ cmp r0, 0x2
+ beq _08037B1C
+_08037ADE:
+ cmp r1, 0x9
+ bne _08037AE8
+ ldr r0, [r4, 0x10]
+ cmp r0, 0xA
+ beq _08037B1C
+_08037AE8:
+ cmp r1, 0xA
+ bne _08037AF2
+ ldr r0, [r4, 0x10]
+ cmp r0, 0x9
+ beq _08037B1C
+_08037AF2:
+ cmp r1, 0x4
+ bne _08037AFC
+ ldr r0, [r4, 0x10]
+ cmp r0, 0x5
+ beq _08037B1C
+_08037AFC:
+ cmp r1, 0x5
+ bne _08037B06
+ ldr r0, [r4, 0x10]
+ cmp r0, 0x4
+ beq _08037B1C
+_08037B06:
+ cmp r1, 0x6
+ bne _08037B10
+ ldr r0, [r4, 0x10]
+ cmp r0, 0x7
+ beq _08037B1C
+_08037B10:
+ cmp r1, 0x7
+ bne _08037B1A
+ ldr r0, [r4, 0x10]
+ cmp r0, 0x6
+ beq _08037B1C
+_08037B1A:
+ movs r6, 0
+_08037B1C:
+ adds r0, r6, 0
+_08037B1E:
+ add sp, 0x28
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8037A48
+
+ thumb_func_start sub_8037B28
+sub_8037B28:
+ push {r4,r5,lr}
+ sub sp, 0x14
+ adds r4, r0, 0
+ movs r5, 0
+ bl sub_800D414
+ ldr r0, _08037B58
+ str r5, [r0]
+ ldr r5, _08037B5C
+ mov r0, sp
+ movs r1, 0
+ movs r2, 0x14
+ bl MemoryFill8
+ mov r0, sp
+ adds r1, r5, 0
+ bl strcpy
+ str r4, [sp, 0x10]
+ mov r0, sp
+ movs r1, 0x14
+ bl sub_800D59C
+ b _08037B7A
+ .align 2, 0
+_08037B58: .4byte gUnknown_202EC38
+_08037B5C: .4byte gUnknown_80E6E50
+_08037B60:
+ cmp r5, 0x3
+ beq _08037BCC
+ cmp r5, 0x4
+ beq _08037BD8
+ cmp r5, 0x5
+ beq _08037BF0
+ ldr r2, _08037BC0
+ ldr r1, [r2]
+ ldr r0, _08037BC4
+ cmp r1, r0
+ bgt _08037BE4
+ adds r0, r1, 0x1
+ str r0, [r2]
+_08037B7A:
+ movs r4, 0
+_08037B7C:
+ bl sub_80373C4
+ bl sub_8012AE8
+ cmp r0, 0x3
+ bgt _08037B8C
+ cmp r0, 0x2
+ bge _08037BF0
+_08037B8C:
+ adds r4, 0x1
+ cmp r4, 0
+ ble _08037B7C
+ bl sub_800D33C
+ adds r5, r0, 0
+ bl sub_800D570
+ cmp r5, 0x2
+ bne _08037B60
+ bl sub_800D600
+ lsls r0, 24
+ cmp r0, 0
+ beq _08037BFC
+ bl sub_8037A48
+ lsls r0, 24
+ cmp r0, 0
+ bne _08037BC8
+ movs r4, 0x4
+ bl sub_800D520
+ bl sub_800D510
+ b _08037C06
+ .align 2, 0
+_08037BC0: .4byte gUnknown_202EC38
+_08037BC4: .4byte 0x00000707
+_08037BC8:
+ movs r4, 0
+ b _08037C06
+_08037BCC:
+ bl sub_800D520
+ bl sub_800D510
+ movs r0, 0x2
+ b _08037C08
+_08037BD8:
+ bl sub_800D520
+ bl sub_800D510
+ movs r0, 0x3
+ b _08037C08
+_08037BE4:
+ bl sub_800D520
+ bl sub_800D510
+ movs r0, 0xF
+ b _08037C08
+_08037BF0:
+ bl sub_800D520
+ bl sub_800D510
+ movs r0, 0x1
+ b _08037C08
+_08037BFC:
+ movs r4, 0x5
+ bl sub_800D520
+ bl sub_800D510
+_08037C06:
+ adds r0, r4, 0
+_08037C08:
+ add sp, 0x14
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8037B28
+
+ thumb_func_start sub_8037C10
+sub_8037C10:
+ push {lr}
+ lsls r0, 24
+ cmp r0, 0
+ beq _08037C24
+ bl sub_800D588
+ lsls r0, 24
+ cmp r0, 0
+ bne _08037C38
+ b _08037C2E
+_08037C24:
+ bl sub_800D588
+ lsls r0, 24
+ cmp r0, 0
+ beq _08037C38
+_08037C2E:
+ ldr r0, _08037C34
+ ldr r0, [r0, 0x4]
+ b _08037C3C
+ .align 2, 0
+_08037C34: .4byte gUnknown_202EC40
+_08037C38:
+ ldr r0, _08037C40
+ ldr r0, [r0]
+_08037C3C:
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08037C40: .4byte gUnknown_202EC40
+ thumb_func_end sub_8037C10
+
+ thumb_func_start sub_8037C44
+sub_8037C44:
+ push {r4-r6,lr}
+ adds r6, r0, 0
+ adds r5, r1, 0
+ movs r4, 0
+_08037C4C:
+ adds r0, r4, 0
+ bl sub_800D68C
+ adds r4, 0x1
+ cmp r4, 0x1
+ ble _08037C4C
+ cmp r6, 0xA
+ bhi _08037CBE
+ lsls r0, r6, 2
+ ldr r1, _08037C68
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_08037C68: .4byte _08037C6C
+ .align 2, 0
+_08037C6C:
+ .4byte _08037C98
+ .4byte _08037C98
+ .4byte _08037CA2
+ .4byte _08037CA2
+ .4byte _08037CAC
+ .4byte _08037CAC
+ .4byte _08037CA2
+ .4byte _08037CA2
+ .4byte _08037CBE
+ .4byte _08037CB6
+ .4byte _08037CB6
+_08037C98:
+ adds r0, r5, 0
+ movs r1, 0x8
+ bl sub_800D59C
+ b _08037CBE
+_08037CA2:
+ adds r0, r5, 0
+ movs r1, 0x30
+ bl sub_800D59C
+ b _08037CBE
+_08037CAC:
+ adds r0, r5, 0
+ movs r1, 0x88
+ bl sub_800D59C
+ b _08037CBE
+_08037CB6:
+ adds r0, r5, 0
+ movs r1, 0xB4
+ bl sub_800D59C
+_08037CBE:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8037C44
+
+ thumb_func_start sub_8037CC4
+sub_8037CC4:
+ push {r4,lr}
+ adds r3, r1, 0
+ adds r4, r2, 0
+ cmp r0, 0xA
+ bhi _08037D5E
+ lsls r0, 2
+ ldr r1, _08037CD8
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_08037CD8: .4byte _08037CDC
+ .align 2, 0
+_08037CDC:
+ .4byte _08037D08
+ .4byte _08037D08
+ .4byte _08037D1E
+ .4byte _08037D1E
+ .4byte _08037D34
+ .4byte _08037D34
+ .4byte _08037D1E
+ .4byte _08037D1E
+ .4byte _08037D5E
+ .4byte _08037D4A
+ .4byte _08037D4A
+_08037D08:
+ movs r0, 0
+ adds r1, r3, 0
+ movs r2, 0x8
+ bl sub_800D670
+ movs r0, 0x1
+ adds r1, r4, 0
+ movs r2, 0x8
+ bl sub_800D670
+ b _08037D5E
+_08037D1E:
+ movs r0, 0
+ adds r1, r3, 0
+ movs r2, 0x30
+ bl sub_800D670
+ movs r0, 0x1
+ adds r1, r4, 0
+ movs r2, 0x30
+ bl sub_800D670
+ b _08037D5E
+_08037D34:
+ movs r0, 0
+ adds r1, r3, 0
+ movs r2, 0x88
+ bl sub_800D670
+ movs r0, 0x1
+ adds r1, r4, 0
+ movs r2, 0x88
+ bl sub_800D670
+ b _08037D5E
+_08037D4A:
+ movs r0, 0
+ adds r1, r3, 0
+ movs r2, 0xB4
+ bl sub_800D670
+ movs r0, 0x1
+ adds r1, r4, 0
+ movs r2, 0xB4
+ bl sub_800D670
+_08037D5E:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8037CC4
+
+ thumb_func_start sub_8037D64
+sub_8037D64:
+ push {r4-r7,lr}
+ adds r5, r0, 0
+ adds r6, r1, 0
+ adds r7, r2, 0
+ movs r4, 0
+ ldr r0, _08037D80
+ str r4, [r0]
+ bl sub_800D494
+ adds r0, r5, 0
+ adds r1, r6, 0
+ bl sub_8037C44
+ b _08037D96
+ .align 2, 0
+_08037D80: .4byte gUnknown_202EC48
+_08037D84:
+ subs r0, r4, 0x3
+ cmp r0, 0x2
+ bls _08037DBC
+ ldr r1, _08037DB8
+ ldr r0, [r1]
+ cmp r0, 0x63
+ bgt _08037DC8
+ adds r0, 0x1
+ str r0, [r1]
+_08037D96:
+ bl sub_80373C4
+ bl sub_800D33C
+ adds r4, r0, 0
+ bl sub_800D570
+ cmp r4, 0x2
+ bne _08037D84
+ bl sub_800D600
+ lsls r0, 24
+ cmp r0, 0
+ beq _08037DD4
+ movs r4, 0
+ b _08037DDE
+ .align 2, 0
+_08037DB8: .4byte gUnknown_202EC48
+_08037DBC:
+ bl sub_800D520
+ bl sub_800D510
+ movs r0, 0x1
+ b _08037DEA
+_08037DC8:
+ bl sub_800D520
+ bl sub_800D510
+ movs r0, 0xF
+ b _08037DEA
+_08037DD4:
+ bl sub_800D520
+ bl sub_800D510
+ movs r4, 0x5
+_08037DDE:
+ adds r0, r5, 0
+ adds r1, r6, 0
+ adds r2, r7, 0
+ bl sub_8037CC4
+ adds r0, r4, 0
+_08037DEA:
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8037D64
+
+ thumb_func_start sub_8037DF0
+sub_8037DF0:
+ push {r4,lr}
+ sub sp, 0x8
+ movs r4, 0
+ movs r0, 0
+ mov r1, sp
+ movs r2, 0x4
+ bl sub_800D670
+ add r1, sp, 0x4
+ movs r0, 0x1
+ movs r2, 0x4
+ bl sub_800D670
+ ldr r0, [sp]
+ cmp r0, 0
+ bne _08037E16
+ ldr r0, [sp, 0x4]
+ cmp r0, 0
+ beq _08037E2C
+_08037E16:
+ bl sub_800D588
+ lsls r0, 24
+ cmp r0, 0
+ bne _08037E24
+ ldr r4, [sp, 0x4]
+ b _08037E26
+_08037E24:
+ ldr r4, [sp]
+_08037E26:
+ cmp r4, 0
+ bne _08037E2C
+ movs r4, 0xE
+_08037E2C:
+ adds r0, r4, 0
+ add sp, 0x8
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8037DF0
+
+ thumb_func_start sub_8037E38
+sub_8037E38:
+ push {r4-r6,lr}
+ adds r6, r0, 0
+ adds r5, r1, 0
+ bl sub_800D588
+ lsls r0, 24
+ adds r4, r6, 0
+ cmp r0, 0
+ bne _08037E4C
+ adds r4, r5, 0
+_08037E4C:
+ bl sub_800D588
+ lsls r0, 24
+ adds r3, r5, 0
+ cmp r0, 0
+ bne _08037E5A
+ adds r3, r6, 0
+_08037E5A:
+ ldrb r0, [r4]
+ ldrb r1, [r3]
+ cmp r0, r1
+ bne _08037E70
+ ldr r0, _08037E6C
+ ldr r1, [r0]
+ ldrb r0, [r4]
+ b _08037E76
+ .align 2, 0
+_08037E6C: .4byte gUnknown_203B460
+_08037E70:
+ ldr r0, _08037E8C
+ ldr r1, [r0]
+ ldrb r0, [r3]
+_08037E76:
+ lsls r0, 1
+ adds r1, 0x50
+ adds r1, r0
+ ldrh r2, [r1]
+ ldr r0, [r3, 0x4]
+ adds r2, r0
+ strh r2, [r1]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08037E8C: .4byte gUnknown_203B460
+ thumb_func_end sub_8037E38
+
+ thumb_func_start sub_8037E90
+sub_8037E90:
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ adds r4, r1, 0
+ bl sub_800D588
+ lsls r0, 24
+ cmp r0, 0
+ bne _08037EA2
+ adds r4, r5, 0
+_08037EA2:
+ movs r0, 0x2
+ strb r0, [r4]
+ adds r0, r4, 0
+ bl sub_80951BC
+ ldr r0, [r4, 0x10]
+ bl sub_8095274
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8037E90
+
+ thumb_func_start nullsub_53
+nullsub_53:
+ bx lr
+ thumb_func_end nullsub_53
+
+ thumb_func_start sub_8037EBC
+sub_8037EBC:
+ push {r4-r6,lr}
+ adds r6, r0, 0
+ adds r4, r1, 0
+ bl sub_800D588
+ lsls r0, 24
+ adds r5, r4, 0
+ cmp r0, 0
+ bne _08037ED0
+ adds r5, r6, 0
+_08037ED0:
+ ldr r1, [r5, 0x10]
+ movs r0, 0x1
+ bl sub_809539C
+ lsls r0, 24
+ lsrs r0, 24
+ bl sub_8095228
+ adds r4, r0, 0
+ adds r1, r4, 0
+ adds r0, r5, 0
+ ldm r0!, {r2,r3,r6}
+ stm r1!, {r2,r3,r6}
+ ldm r0!, {r2,r3,r6}
+ stm r1!, {r2,r3,r6}
+ ldm r0!, {r2,r3,r6}
+ stm r1!, {r2,r3,r6}
+ ldm r0!, {r2,r3,r6}
+ stm r1!, {r2,r3,r6}
+ movs r0, 0x5
+ strb r0, [r4]
+ adds r0, r4, 0
+ bl sub_80951FC
+ movs r0, 0x7
+ strb r0, [r4]
+ movs r0, 0x38
+ ldrsh r6, [r5, r0]
+ cmp r6, 0
+ beq _08037F30
+ ldr r4, _08037F2C
+ ldr r0, [r4]
+ ldr r1, [r5, 0x10]
+ stm r0!, {r1}
+ adds r1, r5, 0
+ adds r1, 0x30
+ movs r2, 0x58
+ bl memcpy
+ ldr r1, [r4]
+ movs r0, 0x42
+ strb r0, [r1, 0x8]
+ ldr r1, [r4]
+ movs r0, 0x1
+ strb r0, [r1, 0x9]
+ b _08037F40
+ .align 2, 0
+_08037F2C: .4byte gUnknown_203B484
+_08037F30:
+ ldr r4, _08037F48
+ ldr r0, [r4]
+ movs r1, 0
+ movs r2, 0x5C
+ bl MemoryFill8
+ ldr r0, [r4]
+ strh r6, [r0, 0xC]
+_08037F40:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08037F48: .4byte gUnknown_203B484
+ thumb_func_end sub_8037EBC
+
+ thumb_func_start sub_8037F4C
+sub_8037F4C:
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ adds r4, r1, 0
+ bl sub_800D588
+ lsls r0, 24
+ cmp r0, 0
+ bne _08037F5E
+ adds r4, r5, 0
+_08037F5E:
+ ldr r1, [r4, 0x10]
+ movs r0, 0x4
+ bl sub_809539C
+ lsls r0, 24
+ lsrs r0, 24
+ bl sub_8095228
+ adds r2, r0, 0
+ adds r1, r4, 0
+ ldm r1!, {r3-r5}
+ stm r2!, {r3-r5}
+ ldm r1!, {r3-r5}
+ stm r2!, {r3-r5}
+ ldm r1!, {r3-r5}
+ stm r2!, {r3-r5}
+ ldm r1!, {r3-r5}
+ stm r2!, {r3-r5}
+ movs r1, 0x6
+ strb r1, [r0]
+ bl sub_8035D4C
+ cmp r0, 0
+ beq _08037F96
+ adds r1, r0, 0
+ adds r1, 0x3A
+ movs r0, 0x1
+ strb r0, [r1]
+_08037F96:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8037F4C
+
+ thumb_func_start sub_8037F9C
+sub_8037F9C:
+ push {lr}
+ adds r3, r1, 0
+ cmp r0, 0xA
+ bhi _08038010
+ lsls r0, 2
+ ldr r1, _08037FB0
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_08037FB0: .4byte _08037FB4
+ .align 2, 0
+_08037FB4:
+ .4byte _08037FE0
+ .4byte _08037FE0
+ .4byte _08038010
+ .4byte _08037FF4
+ .4byte _08038010
+ .4byte _08037FFE
+ .4byte _08038010
+ .4byte _08037FEA
+ .4byte _08038010
+ .4byte _08038010
+ .4byte _08038008
+_08037FE0:
+ adds r0, r3, 0
+ adds r1, r2, 0
+ bl sub_8037E38
+ b _08038010
+_08037FEA:
+ adds r0, r3, 0
+ adds r1, r2, 0
+ bl sub_8037F4C
+ b _08038010
+_08037FF4:
+ adds r0, r3, 0
+ adds r1, r2, 0
+ bl sub_8037E90
+ b _08038010
+_08037FFE:
+ adds r0, r3, 0
+ adds r1, r2, 0
+ bl sub_8037EBC
+ b _08038010
+_08038008:
+ adds r0, r3, 0
+ adds r1, r2, 0
+ bl nullsub_53
+_08038010:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8037F9C
+
+ thumb_func_start sub_8038014
+sub_8038014:
+ push {r4-r6,lr}
+ adds r6, r0, 0
+ adds r5, r1, 0
+ bl sub_800D588
+ lsls r0, 24
+ adds r4, r6, 0
+ cmp r0, 0
+ bne _08038028
+ adds r4, r5, 0
+_08038028:
+ bl sub_800D588
+ lsls r0, 24
+ adds r3, r5, 0
+ cmp r0, 0
+ bne _08038036
+ adds r3, r6, 0
+_08038036:
+ ldrb r0, [r4]
+ ldrb r1, [r3]
+ cmp r0, r1
+ bne _0803804C
+ ldr r0, _08038048
+ ldr r1, [r0]
+ ldrb r0, [r4]
+ b _08038052
+ .align 2, 0
+_08038048: .4byte gUnknown_203B460
+_0803804C:
+ ldr r0, _08038070
+ ldr r1, [r0]
+ ldrb r0, [r3]
+_08038052:
+ lsls r0, 1
+ adds r1, 0x50
+ adds r1, r0
+ ldrh r2, [r1]
+ ldr r0, [r3, 0x4]
+ adds r2, r0
+ ldr r0, _08038074
+ movs r1, 0
+ cmp r2, r0
+ ble _08038068
+ movs r1, 0x6
+_08038068:
+ adds r0, r1, 0
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08038070: .4byte gUnknown_203B460
+_08038074: .4byte 0x000003e7
+ thumb_func_end sub_8038014
+
+ thumb_func_start sub_8038078
+sub_8038078:
+ push {r4-r6,lr}
+ adds r5, r0, 0
+ adds r4, r1, 0
+ bl sub_800D588
+ lsls r0, 24
+ cmp r0, 0
+ bne _0803808A
+ adds r4, r5, 0
+_0803808A:
+ ldr r6, [r4, 0x10]
+ ldr r0, _08038098
+ ldr r0, [r0]
+ cmp r0, 0
+ beq _0803809C
+ ldr r5, [r0, 0x50]
+ b _080380A2
+ .align 2, 0
+_08038098: .4byte gUnknown_203B184
+_0803809C:
+ bl sub_8011C34
+ adds r5, r0, 0
+_080380A2:
+ movs r0, 0x4
+ adds r1, r6, 0
+ bl sub_80952F0
+ lsls r0, 24
+ cmp r0, 0
+ beq _080380BA
+ ldr r0, [r4, 0x28]
+ cmp r0, r5
+ bne _080380BA
+ movs r0, 0
+ b _080380BC
+_080380BA:
+ movs r0, 0xB
+_080380BC:
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8038078
+
+ thumb_func_start sub_80380C4
+sub_80380C4:
+ push {r4-r6,lr}
+ adds r6, r0, 0
+ adds r4, r1, 0
+ bl sub_800D588
+ lsls r0, 24
+ adds r5, r4, 0
+ cmp r0, 0
+ bne _080380D8
+ adds r5, r6, 0
+_080380D8:
+ ldr r4, [r5, 0x10]
+ movs r0, 0x2
+ adds r1, r4, 0
+ bl sub_80952F0
+ lsls r0, 24
+ cmp r0, 0
+ bne _08038110
+ movs r0, 0x4
+ adds r1, r4, 0
+ bl sub_80952F0
+ lsls r0, 24
+ cmp r0, 0
+ bne _08038110
+ movs r0, 0x6
+ adds r1, r4, 0
+ bl sub_80952F0
+ lsls r0, 24
+ cmp r0, 0
+ bne _08038110
+ ldr r0, [r5, 0x10]
+ bl sub_8095298
+ lsls r0, 24
+ cmp r0, 0
+ beq _08038114
+_08038110:
+ movs r0, 0x7
+ b _08038126
+_08038114:
+ bl sub_8095190
+ movs r1, 0x1
+ negs r1, r1
+ cmp r0, r1
+ beq _08038124
+ movs r0, 0
+ b _08038126
+_08038124:
+ movs r0, 0xD
+_08038126:
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80380C4
+
+ thumb_func_start sub_803812C
+sub_803812C:
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ adds r4, r1, 0
+ bl sub_800D588
+ lsls r0, 24
+ cmp r0, 0
+ bne _0803813E
+ adds r4, r5, 0
+_0803813E:
+ ldr r1, [r4, 0x10]
+ movs r0, 0x1
+ bl sub_80952F0
+ lsls r0, 24
+ cmp r0, 0
+ bne _08038150
+ movs r0, 0x9
+ b _08038152
+_08038150:
+ movs r0, 0
+_08038152:
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_803812C
+
+ thumb_func_start sub_8038158
+sub_8038158:
+ movs r0, 0
+ bx lr
+ thumb_func_end sub_8038158
+
+ thumb_func_start sub_803815C
+sub_803815C:
+ push {r4,lr}
+ adds r3, r1, 0
+ movs r4, 0
+ cmp r0, 0xA
+ bhi _080381D2
+ lsls r0, 2
+ ldr r1, _08038170
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_08038170: .4byte _08038174
+ .align 2, 0
+_08038174:
+ .4byte _080381A0
+ .4byte _080381A0
+ .4byte _080381D2
+ .4byte _080381B4
+ .4byte _080381D2
+ .4byte _080381BE
+ .4byte _080381D2
+ .4byte _080381AA
+ .4byte _080381D2
+ .4byte _080381D2
+ .4byte _080381C8
+_080381A0:
+ adds r0, r3, 0
+ adds r1, r2, 0
+ bl sub_8038014
+ b _080381D0
+_080381AA:
+ adds r0, r3, 0
+ adds r1, r2, 0
+ bl sub_8038078
+ b _080381D0
+_080381B4:
+ adds r0, r3, 0
+ adds r1, r2, 0
+ bl sub_80380C4
+ b _080381D0
+_080381BE:
+ adds r0, r3, 0
+ adds r1, r2, 0
+ bl sub_803812C
+ b _080381D0
+_080381C8:
+ adds r0, r3, 0
+ adds r1, r2, 0
+ bl sub_8038158
+_080381D0:
+ adds r4, r0, 0
+_080381D2:
+ adds r0, r4, 0
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_803815C
+
+ thumb_func_start sub_80381DC
+sub_80381DC:
+ push {lr}
+ bl sub_8037F9C
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80381DC
+
+ thumb_func_start sub_80381E8
+sub_80381E8:
+ push {lr}
+ bl sub_803815C
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80381E8
+
+ thumb_func_start sub_80381F4
+sub_80381F4:
+ push {r4-r7,lr}
+ sub sp, 0x4
+ adds r5, r0, 0
+ adds r6, r1, 0
+ adds r7, r2, 0
+ movs r4, 0
+ bl sub_803815C
+ str r0, [sp]
+ ldr r0, _08038218
+ str r4, [r0]
+ bl sub_800D494
+ mov r0, sp
+ movs r1, 0x4
+ bl sub_800D59C
+ b _0803822E
+ .align 2, 0
+_08038218: .4byte gUnknown_202EC4C
+_0803821C:
+ subs r0, r4, 0x3
+ cmp r0, 0x2
+ bls _08038272
+ ldr r1, _08038250
+ ldr r0, [r1]
+ cmp r0, 0x63
+ bgt _0803827E
+ adds r0, 0x1
+ str r0, [r1]
+_0803822E:
+ bl sub_80373C4
+ bl sub_800D33C
+ adds r4, r0, 0
+ bl sub_800D570
+ cmp r4, 0x2
+ bne _0803821C
+ bl sub_800D600
+ lsls r0, 24
+ cmp r0, 0
+ beq _08038254
+ bl sub_8037DF0
+ b _0803825E
+ .align 2, 0
+_08038250: .4byte gUnknown_202EC4C
+_08038254:
+ bl sub_800D520
+ bl sub_800D510
+ movs r0, 0x5
+_0803825E:
+ str r0, [sp]
+ ldr r0, [sp]
+ cmp r0, 0
+ bne _0803828A
+ adds r0, r5, 0
+ adds r1, r6, 0
+ adds r2, r7, 0
+ bl sub_8037F9C
+ b _08038292
+_08038272:
+ bl sub_800D520
+ bl sub_800D510
+ movs r0, 0x1
+ b _08038298
+_0803827E:
+ bl sub_800D520
+ bl sub_800D510
+ movs r0, 0xF
+ b _08038298
+_0803828A:
+ bl sub_800D520
+ bl sub_800D510
+_08038292:
+ bl sub_800D520
+ ldr r0, [sp]
+_08038298:
+ add sp, 0x4
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80381F4
+
+ thumb_func_start sub_80382A0
+sub_80382A0:
+ push {lr}
+ movs r0, 0
+ bl sub_8031F60
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80382A0
+
+ thumb_func_start sub_80382AC
+sub_80382AC:
+ push {lr}
+ bl ResetUnusedInputStruct
+ movs r0, 0
+ movs r1, 0x1
+ movs r2, 0x1
+ bl sub_800641C
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80382AC
+
+ thumb_func_start sub_80382C0
+sub_80382C0:
+ push {r4,lr}
+ ldr r4, _080382E0
+ movs r0, 0x1
+ bl sub_8031FD8
+ cmp r0, 0x1
+ bls _080382D8
+ cmp r0, 0x3
+ bhi _080382D8
+ bl sub_803203C
+ movs r4, 0x1
+_080382D8:
+ adds r0, r4, 0
+ pop {r4}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080382E0: .4byte 0x0000ffdc
+ thumb_func_end sub_80382C0
+
+ thumb_func_start sub_80382E4
+sub_80382E4:
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ sub sp, 0x10
+ mov r8, r0
+ ldr r5, _08038398
+ ldr r0, [r5]
+ cmp r0, 0
+ bne _0803830E
+ movs r4, 0xDA
+ lsls r4, 1
+ adds r0, r4, 0
+ movs r1, 0x8
+ bl MemoryAlloc
+ str r0, [r5]
+ movs r1, 0
+ adds r2, r4, 0
+ bl MemoryFill8
+_0803830E:
+ mov r12, r5
+ movs r0, 0xA4
+ lsls r0, 1
+ mov r9, r0
+ ldr r4, _0803839C
+ movs r3, 0
+ movs r2, 0x3
+_0803831C:
+ mov r5, r12
+ ldr r1, [r5]
+ adds r1, r3
+ add r1, r9
+ adds r0, r4, 0
+ ldm r0!, {r5-r7}
+ stm r1!, {r5-r7}
+ ldm r0!, {r5-r7}
+ stm r1!, {r5-r7}
+ adds r3, 0x18
+ subs r2, 0x1
+ cmp r2, 0
+ bge _0803831C
+ bl ResetUnusedInputStruct
+ ldr r5, _08038398
+ ldr r0, [r5]
+ movs r6, 0xA4
+ lsls r6, 1
+ adds r0, r6
+ movs r1, 0x1
+ movs r2, 0x1
+ bl sub_800641C
+ mov r7, r8
+ cmp r7, 0x25
+ bne _08038370
+ ldr r1, [r5]
+ adds r0, r1, 0
+ adds r0, 0x8
+ adds r1, r6
+ ldr r3, _080383A0
+ ldr r2, _080383A4
+ str r2, [sp]
+ movs r4, 0
+ str r4, [sp, 0x4]
+ movs r2, 0x4
+ str r2, [sp, 0x8]
+ str r4, [sp, 0xC]
+ movs r2, 0
+ bl SetMenuItems
+_08038370:
+ ldr r0, [r5]
+ adds r0, 0x8
+ movs r1, 0
+ movs r2, 0x1
+ bl sub_8035CF4
+ ldr r1, [r5]
+ mov r0, r8
+ str r0, [r1]
+ movs r0, 0
+ str r0, [r1, 0x4]
+ bl sub_8038440
+ add sp, 0x10
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08038398: .4byte gUnknown_203B360
+_0803839C: .4byte gUnknown_80E6E7C
+_080383A0: .4byte gUnknown_80E6E94
+_080383A4: .4byte gUnknown_80E6EAC
+ thumb_func_end sub_80382E4
+
+ thumb_func_start sub_80383A8
+sub_80383A8:
+ push {r4,lr}
+ bl ResetUnusedInputStruct
+ movs r0, 0
+ movs r1, 0x1
+ movs r2, 0x1
+ bl sub_800641C
+ ldr r4, _080383D0
+ ldr r0, [r4]
+ cmp r0, 0
+ beq _080383C8
+ bl MemoryFree
+ movs r0, 0
+ str r0, [r4]
+_080383C8:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080383D0: .4byte gUnknown_203B360
+ thumb_func_end sub_80383A8
+
+ thumb_func_start sub_80383D4
+sub_80383D4:
+ push {r4-r6,lr}
+ sub sp, 0x4
+ movs r0, 0x2
+ str r0, [sp]
+ ldr r6, _08038410
+ ldr r4, _08038414
+ ldr r0, [r4]
+ ldr r5, [r0, 0x4]
+ cmp r5, 0
+ bne _08038434
+ adds r0, 0x8
+ bl sub_80130A8
+ lsls r0, 24
+ cmp r0, 0
+ bne _080383FE
+ ldr r0, [r4]
+ adds r0, 0x8
+ mov r1, sp
+ bl sub_8013114
+_080383FE:
+ ldr r0, [sp]
+ cmp r0, 0x2
+ beq _0803842C
+ cmp r0, 0x2
+ bhi _08038418
+ cmp r0, 0x1
+ beq _0803841C
+ b _08038430
+ .align 2, 0
+_08038410: .4byte 0x0000ffdc
+_08038414: .4byte gUnknown_203B360
+_08038418:
+ cmp r0, 0x3
+ bne _08038430
+_0803841C:
+ ldr r0, _08038428
+ ldr r1, [r0]
+ movs r0, 0
+ str r0, [r1, 0x4]
+ movs r6, 0x1
+ b _08038430
+ .align 2, 0
+_08038428: .4byte gUnknown_203B360
+_0803842C:
+ ldr r0, [r4]
+ str r5, [r0, 0x4]
+_08038430:
+ bl sub_80384D0
+_08038434:
+ adds r0, r6, 0
+ add sp, 0x4
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80383D4
+
+ thumb_func_start sub_8038440
+sub_8038440:
+ push {r4,r5,lr}
+ movs r5, 0
+ ldr r0, _080384B0
+ ldr r0, [r0]
+ mov r12, r0
+ movs r3, 0xD4
+ lsls r3, 1
+ add r3, r12
+ ldrh r1, [r3]
+ ldr r0, _080384B4
+ ands r0, r1
+ ldr r1, _080384B8
+ ands r0, r1
+ ldr r4, _080384BC
+ ands r0, r4
+ ldr r1, _080384C0
+ ands r0, r1
+ ldr r1, _080384C4
+ ands r0, r1
+ movs r2, 0x80
+ lsls r2, 7
+ ldr r1, _080384C8
+ ands r0, r1
+ orrs r0, r2
+ strh r0, [r3]
+ movs r2, 0xFC
+ lsls r2, 2
+ ldrh r1, [r3, 0x4]
+ movs r0, 0xFC
+ lsls r0, 8
+ ands r0, r1
+ orrs r0, r2
+ ands r0, r4
+ movs r2, 0xF
+ movs r4, 0xF0
+ lsls r4, 8
+ ldr r1, _080384CC
+ ands r0, r1
+ orrs r0, r4
+ strh r0, [r3, 0x4]
+ movs r0, 0x70
+ strh r0, [r3, 0x2]
+ movs r1, 0xE0
+ lsls r1, 3
+ ldrh r0, [r3, 0x6]
+ ands r2, r0
+ orrs r2, r1
+ strh r2, [r3, 0x6]
+ movs r0, 0xD8
+ lsls r0, 1
+ add r0, r12
+ str r5, [r0]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080384B0: .4byte gUnknown_203B360
+_080384B4: .4byte 0x0000feff
+_080384B8: .4byte 0x0000fdff
+_080384BC: .4byte 0x0000f3ff
+_080384C0: .4byte 0x0000efff
+_080384C4: .4byte 0x0000dfff
+_080384C8: .4byte 0x00003fff
+_080384CC: .4byte 0x00000fff
+ thumb_func_end sub_8038440
+
+ thumb_func_start sub_80384D0
+sub_80384D0:
+ push {r4,r5,lr}
+ ldr r5, _08038508
+ ldr r2, [r5]
+ movs r4, 0xD8
+ lsls r4, 1
+ adds r0, r2, r4
+ ldr r0, [r0]
+ movs r1, 0x8
+ ands r0, r1
+ cmp r0, 0
+ beq _080384F6
+ movs r1, 0xD4
+ lsls r1, 1
+ adds r0, r2, r1
+ subs r1, 0xA8
+ movs r2, 0
+ movs r3, 0
+ bl AddSprite
+_080384F6:
+ ldr r1, [r5]
+ adds r1, r4
+ ldr r0, [r1]
+ adds r0, 0x1
+ str r0, [r1]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08038508: .4byte gUnknown_203B360
+ thumb_func_end sub_80384D0
+
+ thumb_func_start sub_803850C
+sub_803850C:
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ sub sp, 0x10
+ mov r8, r0
+ ldr r5, _0803859C
+ ldr r0, [r5]
+ cmp r0, 0
+ bne _08038536
+ movs r4, 0xDA
+ lsls r4, 1
+ adds r0, r4, 0
+ movs r1, 0x8
+ bl MemoryAlloc
+ str r0, [r5]
+ movs r1, 0
+ adds r2, r4, 0
+ bl MemoryFill8
+_08038536:
+ mov r12, r5
+ movs r0, 0xA4
+ lsls r0, 1
+ mov r9, r0
+ ldr r4, _080385A0
+ movs r3, 0
+ movs r2, 0x3
+_08038544:
+ mov r5, r12
+ ldr r1, [r5]
+ adds r1, r3
+ add r1, r9
+ adds r0, r4, 0
+ ldm r0!, {r5-r7}
+ stm r1!, {r5-r7}
+ ldm r0!, {r5-r7}
+ stm r1!, {r5-r7}
+ adds r3, 0x18
+ subs r2, 0x1
+ cmp r2, 0
+ bge _08038544
+ bl ResetUnusedInputStruct
+ ldr r4, _0803859C
+ ldr r0, [r4]
+ movs r6, 0xA4
+ lsls r6, 1
+ adds r0, r6
+ movs r1, 0x1
+ movs r2, 0x1
+ bl sub_800641C
+ mov r7, r8
+ cmp r7, 0x2E
+ bne _080385AC
+ ldr r1, [r4]
+ adds r0, r1, 0
+ adds r0, 0x8
+ adds r1, r6
+ ldr r3, _080385A4
+ ldr r2, _080385A8
+ str r2, [sp]
+ movs r4, 0
+ str r4, [sp, 0x4]
+ movs r2, 0x6
+ str r2, [sp, 0x8]
+ str r4, [sp, 0xC]
+ movs r2, 0
+ bl SetMenuItems
+ b _080385CE
+ .align 2, 0
+_0803859C: .4byte gUnknown_203B364
+_080385A0: .4byte gUnknown_80E6F20
+_080385A4: .4byte gUnknown_80E6F38
+_080385A8: .4byte gUnknown_80E7090
+_080385AC:
+ ldr r1, [r4]
+ adds r0, r1, 0
+ adds r0, 0x8
+ movs r2, 0xA4
+ lsls r2, 1
+ adds r1, r2
+ ldr r3, _080385F8
+ ldr r2, _080385FC
+ str r2, [sp]
+ movs r4, 0
+ str r4, [sp, 0x4]
+ movs r2, 0x6
+ str r2, [sp, 0x8]
+ str r4, [sp, 0xC]
+ movs r2, 0
+ bl SetMenuItems
+_080385CE:
+ ldr r4, _08038600
+ ldr r0, [r4]
+ adds r0, 0x8
+ movs r1, 0
+ movs r2, 0x1
+ bl sub_8035CF4
+ ldr r1, [r4]
+ movs r0, 0
+ str r0, [r1, 0x4]
+ mov r5, r8
+ str r5, [r1]
+ bl sub_8038830
+ add sp, 0x10
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080385F8: .4byte gUnknown_80E6F38
+_080385FC: .4byte gUnknown_80E6F50
+_08038600: .4byte gUnknown_203B364
+ thumb_func_end sub_803850C
+
+ thumb_func_start sub_8038604
+sub_8038604:
+ push {r4,lr}
+ bl ResetUnusedInputStruct
+ movs r0, 0
+ movs r1, 0x1
+ movs r2, 0x1
+ bl sub_800641C
+ ldr r4, _0803862C
+ ldr r0, [r4]
+ cmp r0, 0
+ beq _08038624
+ bl MemoryFree
+ movs r0, 0
+ str r0, [r4]
+_08038624:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0803862C: .4byte gUnknown_203B364
+ thumb_func_end sub_8038604
+
+ thumb_func_start sub_8038630
+sub_8038630:
+ push {r4-r6,lr}
+ sub sp, 0x18
+ ldr r5, _080386A8
+ movs r0, 0x3
+ str r0, [sp, 0x14]
+ ldr r6, _080386AC
+ ldr r0, [r6]
+ ldr r4, [r0, 0x4]
+ cmp r4, 0x1
+ bne _08038646
+ b _08038798
+_08038646:
+ cmp r4, 0x1
+ bcc _0803864C
+ b _08038824
+_0803864C:
+ adds r0, 0x8
+ bl sub_8012FD8
+ movs r5, 0
+ str r5, [sp, 0x10]
+ bl sub_80140F8
+ bl sub_8011C1C
+ adds r1, r0, 0
+ add r0, sp, 0x10
+ bl sub_801203C
+ adds r4, r0, 0
+ bl sub_8014114
+ cmp r4, 0
+ beq _080386B8
+ cmp r4, 0x1
+ beq _08038738
+ ldr r0, [r6]
+ movs r4, 0xA4
+ lsls r4, 1
+ adds r0, r4
+ movs r1, 0
+ bl sub_8035CC0
+ ldr r1, [r6]
+ ldr r0, [r1]
+ cmp r0, 0x2E
+ bne _08038750
+ adds r0, r1, 0
+ adds r0, 0x8
+ adds r1, r4
+ ldr r3, _080386B0
+ ldr r2, _080386B4
+ str r2, [sp]
+ str r5, [sp, 0x4]
+ movs r2, 0x6
+ str r2, [sp, 0x8]
+ str r5, [sp, 0xC]
+ movs r2, 0
+ bl SetMenuItems
+ b _0803876E
+ .align 2, 0
+_080386A8: .4byte 0x0000ffdc
+_080386AC: .4byte gUnknown_203B364
+_080386B0: .4byte gUnknown_80E6F38
+_080386B4: .4byte gUnknown_80E7114
+_080386B8:
+ ldr r0, [r6]
+ movs r1, 0xA4
+ lsls r1, 1
+ adds r0, r1
+ movs r1, 0
+ bl sub_8035CC0
+ ldr r1, [r6]
+ ldr r0, [r1]
+ cmp r0, 0x2E
+ bne _080386F8
+ adds r0, r1, 0
+ adds r0, 0x8
+ movs r2, 0xA4
+ lsls r2, 1
+ adds r1, r2
+ ldr r3, _080386F0
+ ldr r2, _080386F4
+ str r2, [sp]
+ str r5, [sp, 0x4]
+ movs r2, 0x6
+ str r2, [sp, 0x8]
+ str r5, [sp, 0xC]
+ movs r2, 0
+ bl SetMenuItems
+ b _08038716
+ .align 2, 0
+_080386F0: .4byte gUnknown_80E6F38
+_080386F4: .4byte gUnknown_80E70CC
+_080386F8:
+ adds r0, r1, 0
+ adds r0, 0x8
+ movs r2, 0xA4
+ lsls r2, 1
+ adds r1, r2
+ ldr r3, _08038728
+ ldr r2, _0803872C
+ str r2, [sp]
+ str r5, [sp, 0x4]
+ movs r2, 0x6
+ str r2, [sp, 0x8]
+ str r5, [sp, 0xC]
+ movs r2, 0
+ bl SetMenuItems
+_08038716:
+ ldr r4, _08038730
+ ldr r1, [r4]
+ ldr r0, [r1]
+ cmp r0, 0x2D
+ bne _08038734
+ movs r0, 0x1
+ str r0, [r1, 0x4]
+ movs r0, 0x13
+ b _08038826
+ .align 2, 0
+_08038728: .4byte gUnknown_80E6F38
+_0803872C: .4byte gUnknown_80E6FBC
+_08038730: .4byte gUnknown_203B364
+_08038734:
+ adds r0, r1, 0
+ b _08038772
+_08038738:
+ ldr r0, _0803874C
+ movs r1, 0
+ movs r2, 0
+ movs r3, 0
+ bl sub_80141B4
+ ldr r1, [r6]
+ movs r0, 0x5
+ b _08038780
+ .align 2, 0
+_0803874C: .4byte gUnknown_80E7178
+_08038750:
+ adds r0, r1, 0
+ adds r0, 0x8
+ movs r2, 0xA4
+ lsls r2, 1
+ adds r1, r2
+ ldr r3, _08038788
+ ldr r2, _0803878C
+ str r2, [sp]
+ str r5, [sp, 0x4]
+ movs r2, 0x6
+ str r2, [sp, 0x8]
+ str r5, [sp, 0xC]
+ movs r2, 0
+ bl SetMenuItems
+_0803876E:
+ ldr r4, _08038790
+ ldr r0, [r4]
+_08038772:
+ adds r0, 0x8
+ movs r1, 0
+ movs r2, 0x1
+ bl sub_8035CF4
+ ldr r1, [r4]
+ movs r0, 0x1
+_08038780:
+ str r0, [r1, 0x4]
+ ldr r5, _08038794
+ b _08038824
+ .align 2, 0
+_08038788: .4byte gUnknown_80E6F38
+_0803878C: .4byte gUnknown_80E701C
+_08038790: .4byte gUnknown_203B364
+_08038794: .4byte 0x0000ffdc
+_08038798:
+ adds r0, 0x8
+ bl sub_80130A8
+ lsls r0, 24
+ cmp r0, 0
+ bne _080387AE
+ ldr r0, [r6]
+ adds r0, 0x8
+ add r1, sp, 0x14
+ bl sub_8013114
+_080387AE:
+ ldr r0, [sp, 0x14]
+ cmp r0, 0x3
+ beq _0803881C
+ cmp r0, 0x3
+ bhi _080387BE
+ cmp r0, 0x2
+ beq _080387C2
+ b _08038820
+_080387BE:
+ cmp r0, 0x4
+ bne _08038820
+_080387C2:
+ ldr r4, _080387D8
+ ldr r1, [r4]
+ ldr r0, [r1]
+ cmp r0, 0x29
+ beq _080387D0
+ cmp r0, 0x2E
+ bne _080387DC
+_080387D0:
+ movs r0, 0x1
+ str r0, [r1, 0x4]
+ movs r5, 0x1
+ b _08038820
+ .align 2, 0
+_080387D8: .4byte gUnknown_203B364
+_080387DC:
+ cmp r0, 0x2D
+ bne _080387E8
+ movs r0, 0x1
+ str r0, [r1, 0x4]
+ movs r5, 0x13
+ b _08038820
+_080387E8:
+ cmp r0, 0x2C
+ bne _080387F4
+ movs r0, 0x1
+ str r0, [r1, 0x4]
+ movs r5, 0x1F
+ b _08038820
+_080387F4:
+ bl sub_8035D4C
+ adds r0, 0x3A
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _0803880A
+ ldr r1, [r4]
+ movs r0, 0x1
+ str r0, [r1, 0x4]
+ movs r5, 0x35
+ b _08038820
+_0803880A:
+ ldr r0, [r4]
+ movs r1, 0x1
+ str r1, [r0, 0x4]
+ ldr r0, [r0]
+ movs r5, 0xB
+ cmp r0, 0x2B
+ bne _08038820
+ movs r5, 0xD
+ b _08038820
+_0803881C:
+ ldr r0, [r6]
+ str r4, [r0, 0x4]
+_08038820:
+ bl sub_80388C4
+_08038824:
+ adds r0, r5, 0
+_08038826:
+ add sp, 0x18
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8038630
+
+ thumb_func_start sub_8038830
+sub_8038830:
+ push {r4,r5,lr}
+ movs r5, 0
+ ldr r0, _080388A4
+ ldr r0, [r0]
+ mov r12, r0
+ movs r3, 0xD4
+ lsls r3, 1
+ add r3, r12
+ ldrh r1, [r3]
+ ldr r0, _080388A8
+ ands r0, r1
+ ldr r1, _080388AC
+ ands r0, r1
+ ldr r4, _080388B0
+ ands r0, r4
+ ldr r1, _080388B4
+ ands r0, r1
+ ldr r1, _080388B8
+ ands r0, r1
+ movs r2, 0x80
+ lsls r2, 7
+ ldr r1, _080388BC
+ ands r0, r1
+ orrs r0, r2
+ strh r0, [r3]
+ movs r2, 0xFC
+ lsls r2, 2
+ ldrh r1, [r3, 0x4]
+ movs r0, 0xFC
+ lsls r0, 8
+ ands r0, r1
+ orrs r0, r2
+ ands r0, r4
+ movs r2, 0xF
+ movs r4, 0xF0
+ lsls r4, 8
+ ldr r1, _080388C0
+ ands r0, r1
+ orrs r0, r4
+ strh r0, [r3, 0x4]
+ movs r0, 0x70
+ strh r0, [r3, 0x2]
+ movs r1, 0xD0
+ lsls r1, 3
+ ldrh r0, [r3, 0x6]
+ ands r2, r0
+ orrs r2, r1
+ strh r2, [r3, 0x6]
+ movs r0, 0xD8
+ lsls r0, 1
+ add r0, r12
+ str r5, [r0]
+ movs r0, 0
+ bl ResetSprites
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080388A4: .4byte gUnknown_203B364
+_080388A8: .4byte 0x0000feff
+_080388AC: .4byte 0x0000fdff
+_080388B0: .4byte 0x0000f3ff
+_080388B4: .4byte 0x0000efff
+_080388B8: .4byte 0x0000dfff
+_080388BC: .4byte 0x00003fff
+_080388C0: .4byte 0x00000fff
+ thumb_func_end sub_8038830
+
+ thumb_func_start sub_80388C4
+sub_80388C4:
+ push {r4,r5,lr}
+ ldr r5, _080388FC
+ ldr r2, [r5]
+ movs r4, 0xD8
+ lsls r4, 1
+ adds r0, r2, r4
+ ldr r0, [r0]
+ movs r1, 0x8
+ ands r0, r1
+ cmp r0, 0
+ beq _080388EA
+ movs r1, 0xD4
+ lsls r1, 1
+ adds r0, r2, r1
+ subs r1, 0xA8
+ movs r2, 0
+ movs r3, 0
+ bl AddSprite
+_080388EA:
+ ldr r1, [r5]
+ adds r1, r4
+ ldr r0, [r1]
+ adds r0, 0x1
+ str r0, [r1]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080388FC: .4byte gUnknown_203B364
+ thumb_func_end sub_80388C4
+
+ thumb_func_start sub_8038900
+sub_8038900:
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ adds r6, r0, 0
+ ldr r5, _080389B8
+ ldr r0, [r5]
+ cmp r0, 0
+ bne _0803892A
+ movs r4, 0x85
+ lsls r4, 2
+ adds r0, r4, 0
+ movs r1, 0x8
+ bl MemoryAlloc
+ str r0, [r5]
+ movs r1, 0
+ adds r2, r4, 0
+ bl MemoryFill8
+_0803892A:
+ movs r0, 0x1B
+ negs r0, r0
+ adds r0, r6
+ mov r8, r0
+ mov r12, r5
+ movs r1, 0xA4
+ lsls r1, 1
+ mov r9, r1
+ ldr r4, _080389BC
+ mov r10, r4
+ movs r3, 0
+ movs r2, 0x3
+_08038942:
+ mov r5, r12
+ ldr r1, [r5]
+ adds r1, r3
+ add r1, r9
+ mov r0, r10
+ ldm r0!, {r4,r5,r7}
+ stm r1!, {r4,r5,r7}
+ ldm r0!, {r4,r5,r7}
+ stm r1!, {r4,r5,r7}
+ adds r3, 0x18
+ subs r2, 0x1
+ cmp r2, 0
+ bge _08038942
+ bl ResetUnusedInputStruct
+ ldr r4, _080389B8
+ ldr r0, [r4]
+ movs r7, 0xA4
+ lsls r7, 1
+ adds r0, r7
+ movs r1, 0x1
+ movs r2, 0x1
+ bl sub_800641C
+ ldr r2, _080389C0
+ ldrb r0, [r2]
+ cmp r0, 0
+ bne _08038986
+ ldr r0, _080389C4
+ ldr r1, [r0]
+ adds r7, r4, 0
+ adds r5, r0, 0
+ cmp r1, r6
+ beq _080389A0
+_08038986:
+ adds r7, r4, 0
+ adds r3, r2, 0
+ ldr r5, _080389C4
+ ldr r1, _080389C8
+ movs r2, 0
+ adds r0, r1, 0
+ adds r0, 0x35
+_08038994:
+ strb r2, [r0]
+ subs r0, 0x1
+ cmp r0, r1
+ bge _08038994
+ movs r0, 0
+ strb r0, [r3]
+_080389A0:
+ ldr r0, [r7]
+ str r6, [r0]
+ str r6, [r5]
+ mov r0, r8
+ cmp r0, 0x7
+ bhi _08038A36
+ lsls r0, 2
+ ldr r1, _080389CC
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080389B8: .4byte gUnknown_203B370
+_080389BC: .4byte gUnknown_80E71E4
+_080389C0: .4byte gUnknown_203B368
+_080389C4: .4byte gUnknown_203B36C
+_080389C8: .4byte gUnknown_202EC50
+_080389CC: .4byte _080389D0
+ .align 2, 0
+_080389D0:
+ .4byte _080389F0
+ .4byte _080389FC
+ .4byte _080389F0
+ .4byte _080389FC
+ .4byte _080389F0
+ .4byte _080389FC
+ .4byte _08038A0C
+ .4byte _08038A2E
+_080389F0:
+ bl sub_8035D74
+ movs r1, 0
+ bl sub_8031D70
+ b _08038A36
+_080389FC:
+ ldr r1, _08038A08
+ movs r0, 0x4
+ bl sub_80151C0
+ b _08038A36
+ .align 2, 0
+_08038A08: .4byte gUnknown_202EC50
+_08038A0C:
+ movs r0, 0x1F
+ bl sub_8095228
+ adds r4, r0, 0
+ movs r1, 0
+ movs r2, 0x30
+ bl MemoryFill8
+ movs r1, 0
+ movs r0, 0x2
+ strb r0, [r4]
+ adds r4, 0x22
+ strb r1, [r4]
+ movs r0, 0x1F
+ bl sub_8031D70
+ b _08038A36
+_08038A2E:
+ ldr r1, _08038A54
+ movs r0, 0x4
+ bl sub_80151C0
+_08038A36:
+ adds r0, r6, 0
+ bl sub_8039000
+ ldr r1, _08038A58
+ ldr r1, [r1]
+ str r0, [r1, 0x4]
+ bl sub_8039174
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08038A54: .4byte gUnknown_202EC50
+_08038A58: .4byte gUnknown_203B370
+ thumb_func_end sub_8038900
+
+ thumb_func_start sub_8038A5C
+sub_8038A5C:
+ push {r4,lr}
+ bl ResetUnusedInputStruct
+ movs r0, 0
+ movs r1, 0x1
+ movs r2, 0x1
+ bl sub_800641C
+ ldr r4, _08038A8C
+ ldr r0, [r4]
+ cmp r0, 0
+ beq _08038A86
+ bl sub_80155F0
+ bl sub_8031E10
+ ldr r0, [r4]
+ bl MemoryFree
+ movs r0, 0
+ str r0, [r4]
+_08038A86:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08038A8C: .4byte gUnknown_203B370
+ thumb_func_end sub_8038A5C
+
+ thumb_func_start sub_8038A90
+sub_8038A90:
+ push {r4-r6,lr}
+ sub sp, 0x34
+ movs r0, 0xB
+ str r0, [sp, 0x30]
+ ldr r5, _08038AB4
+ ldr r1, _08038AB8
+ ldr r0, [r1]
+ ldr r0, [r0, 0x4]
+ adds r6, r1, 0
+ cmp r0, 0x9
+ bls _08038AA8
+ b _08038DB0
+_08038AA8:
+ lsls r0, 2
+ ldr r1, _08038ABC
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_08038AB4: .4byte 0x0000ffdc
+_08038AB8: .4byte gUnknown_203B370
+_08038ABC: .4byte _08038AC0
+ .align 2, 0
+_08038AC0:
+ .4byte _08038AE8
+ .4byte _08038AFC
+ .4byte _08038AE8
+ .4byte _08038AFC
+ .4byte _08038AE8
+ .4byte _08038AFC
+ .4byte _08038C78
+ .4byte _08038C8C
+ .4byte _08038CC2
+ .4byte _08038D38
+_08038AE8:
+ bl sub_8031DCC
+ ldr r5, _08038AF8
+ cmp r0, 0
+ bne _08038AF4
+ b _08038DB0
+_08038AF4:
+ movs r5, 0xB
+ b _08038DB0
+ .align 2, 0
+_08038AF8: .4byte 0x0000ffdc
+_08038AFC:
+ bl sub_80154F0
+ adds r4, r0, 0
+ mov r0, sp
+ movs r1, 0
+ movs r2, 0x30
+ bl MemoryFill8
+ cmp r4, 0x1
+ bne _08038B12
+ b _08038CBC
+_08038B12:
+ cmp r4, 0x1
+ bcs _08038B18
+ b _08038CB0
+_08038B18:
+ cmp r4, 0x2
+ beq _08038AF4
+ cmp r4, 0x3
+ beq _08038B22
+ b _08038DB0
+_08038B22:
+ ldr r0, _08038B44
+ ldr r0, [r0]
+ ldr r0, [r0]
+ ldr r1, _08038B48
+ mov r2, sp
+ bl sub_8039068
+ subs r0, 0x7
+ cmp r0, 0x11
+ bls _08038B38
+ b _08038DB0
+_08038B38:
+ lsls r0, 2
+ ldr r1, _08038B4C
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_08038B44: .4byte gUnknown_203B370
+_08038B48: .4byte gUnknown_202EC50
+_08038B4C: .4byte _08038B50
+ .align 2, 0
+_08038B50:
+ .4byte _08038BA4
+ .4byte _08038DB0
+ .4byte _08038BD8
+ .4byte _08038DB0
+ .4byte _08038C28
+ .4byte _08038DB0
+ .4byte _08038B9C
+ .4byte _08038DB0
+ .4byte _08038DB0
+ .4byte _08038DB0
+ .4byte _08038B98
+ .4byte _08038BA0
+ .4byte _08038BD4
+ .4byte _08038C24
+ .4byte _08038DB0
+ .4byte _08038BA8
+ .4byte _08038BDC
+ .4byte _08038C2C
+_08038B98:
+ movs r0, 0x11
+ b _08038CA4
+_08038B9C:
+ movs r0, 0xD
+ b _08038CA4
+_08038BA0:
+ movs r0, 0x12
+ b _08038CA4
+_08038BA4:
+ movs r0, 0x7
+ b _08038CA4
+_08038BA8:
+ ldr r0, [sp, 0x10]
+ bl sub_8095274
+ bl sub_8038F98
+ ldr r0, _08038BCC
+ ldr r1, [r0]
+ movs r0, 0x9
+ str r0, [r1, 0x4]
+ ldr r5, _08038BD0
+ mov r1, sp
+ movs r0, 0x2
+ strb r0, [r1]
+ mov r0, sp
+ bl sub_80951BC
+ b _08038DB0
+ .align 2, 0
+_08038BCC: .4byte gUnknown_203B370
+_08038BD0: .4byte 0x0000ffdc
+_08038BD4:
+ movs r0, 0x13
+ b _08038CA4
+_08038BD8:
+ movs r0, 0x9
+ b _08038CA4
+_08038BDC:
+ bl sub_8038F98
+ ldr r0, _08038C18
+ ldr r1, [r0]
+ movs r0, 0x9
+ str r0, [r1, 0x4]
+ ldr r5, _08038C1C
+ mov r1, sp
+ movs r0, 0x5
+ strb r0, [r1]
+ mov r0, sp
+ bl sub_80951FC
+ ldr r1, [sp, 0x10]
+ movs r0, 0x1
+ bl sub_809539C
+ lsls r0, 24
+ lsrs r0, 24
+ bl sub_8095228
+ movs r1, 0x7
+ strb r1, [r0]
+ ldr r0, _08038C20
+ movs r1, 0
+ movs r2, 0x5C
+ bl MemoryFill8
+ b _08038DB0
+ .align 2, 0
+_08038C18: .4byte gUnknown_203B370
+_08038C1C: .4byte 0x0000ffdc
+_08038C20: .4byte gUnknown_203B484
+_08038C24:
+ movs r0, 0x14
+ b _08038CA4
+_08038C28:
+ movs r0, 0xB
+ b _08038CA4
+_08038C2C:
+ bl sub_8038F98
+ ldr r0, _08038C70
+ ldr r1, [r0]
+ movs r0, 0x9
+ str r0, [r1, 0x4]
+ ldr r5, _08038C74
+ ldr r1, [sp, 0x10]
+ movs r0, 0x4
+ bl sub_809539C
+ lsls r0, 24
+ lsrs r0, 24
+ bl sub_8095228
+ adds r2, r0, 0
+ mov r1, sp
+ ldm r1!, {r3,r4,r6}
+ stm r2!, {r3,r4,r6}
+ ldm r1!, {r3,r4,r6}
+ stm r2!, {r3,r4,r6}
+ ldm r1!, {r3,r4,r6}
+ stm r2!, {r3,r4,r6}
+ ldm r1!, {r3,r4,r6}
+ stm r2!, {r3,r4,r6}
+ movs r1, 0x6
+ strb r1, [r0]
+ bl sub_8035D4C
+ adds r0, 0x3A
+ movs r1, 0x1
+ strb r1, [r0]
+ b _08038DB0
+ .align 2, 0
+_08038C70: .4byte gUnknown_203B370
+_08038C74: .4byte 0x0000ffdc
+_08038C78:
+ bl sub_8031DCC
+ ldr r5, _08038C88
+ cmp r0, 0
+ bne _08038C84
+ b _08038DB0
+_08038C84:
+ movs r5, 0xD
+ b _08038DB0
+ .align 2, 0
+_08038C88: .4byte 0x0000ffdc
+_08038C8C:
+ bl sub_80154F0
+ cmp r0, 0x1
+ beq _08038CBC
+ cmp r0, 0x1
+ bcc _08038CB0
+ cmp r0, 0x2
+ beq _08038C84
+ cmp r0, 0x3
+ beq _08038CA2
+ b _08038DB0
+_08038CA2:
+ movs r0, 0x15
+_08038CA4:
+ bl sub_8038DC0
+ ldr r0, _08038CB4
+ ldr r1, [r0]
+ movs r0, 0x8
+ str r0, [r1, 0x4]
+_08038CB0:
+ ldr r5, _08038CB8
+ b _08038DB0
+ .align 2, 0
+_08038CB4: .4byte gUnknown_203B370
+_08038CB8: .4byte 0x0000ffdc
+_08038CBC:
+ bl sub_8031E00
+ b _08038CB0
+_08038CC2:
+ ldr r0, [r6]
+ adds r0, 0x8
+ bl sub_8012FD8
+ lsls r0, 24
+ cmp r0, 0
+ bne _08038CDA
+ ldr r0, [r6]
+ adds r0, 0x8
+ add r1, sp, 0x30
+ bl sub_8013114
+_08038CDA:
+ ldr r0, [sp, 0x30]
+ cmp r0, 0xB
+ beq _08038D24
+ cmp r0, 0xB
+ bhi _08038CEA
+ cmp r0, 0xA
+ beq _08038CEE
+ b _08038DB0
+_08038CEA:
+ cmp r0, 0xC
+ bne _08038DB0
+_08038CEE:
+ bl sub_8039174
+ bl ResetUnusedInputStruct
+ movs r0, 0
+ movs r1, 0x1
+ movs r2, 0x1
+ bl sub_800641C
+ ldr r1, _08038D1C
+ movs r0, 0x4
+ bl sub_80151C0
+ ldr r0, _08038D20
+ ldr r1, [r0]
+ movs r0, 0x8
+ str r0, [r1, 0x4]
+ ldr r0, [r1]
+ subs r0, 0x21
+ movs r5, 0xB
+ cmp r0, 0x1
+ bhi _08038DB0
+ b _08038C84
+ .align 2, 0
+_08038D1C: .4byte gUnknown_202EC50
+_08038D20: .4byte gUnknown_203B370
+_08038D24:
+ ldr r1, [r6]
+ movs r0, 0x8
+ str r0, [r1, 0x4]
+ ldr r5, _08038D34
+ bl sub_80391F8
+ b _08038DB0
+ .align 2, 0
+_08038D34: .4byte 0x0000ffdc
+_08038D38:
+ adds r4, r6, 0
+ ldr r0, [r4]
+ adds r0, 0x8
+ bl sub_8012FD8
+ lsls r0, 24
+ cmp r0, 0
+ bne _08038D52
+ ldr r0, [r4]
+ adds r0, 0x8
+ add r1, sp, 0x30
+ bl sub_8013114
+_08038D52:
+ ldr r0, [sp, 0x30]
+ cmp r0, 0xB
+ beq _08038DA4
+ cmp r0, 0xB
+ bhi _08038D62
+ cmp r0, 0xA
+ beq _08038D66
+ b _08038DB0
+_08038D62:
+ cmp r0, 0xC
+ bne _08038DB0
+_08038D66:
+ bl sub_8039174
+ bl ResetUnusedInputStruct
+ movs r0, 0
+ movs r1, 0x1
+ movs r2, 0x1
+ bl sub_800641C
+ ldr r1, _08038D9C
+ movs r0, 0x4
+ bl sub_80151C0
+ ldr r4, _08038DA0
+ ldr r0, [r4]
+ ldr r0, [r0]
+ bl sub_8039000
+ ldr r1, [r4]
+ str r0, [r1, 0x4]
+ ldr r0, [r1]
+ subs r0, 0x21
+ movs r5, 0x2A
+ cmp r0, 0x1
+ bhi _08038DB0
+ movs r5, 0x2B
+ b _08038DB0
+ .align 2, 0
+_08038D9C: .4byte gUnknown_202EC50
+_08038DA0: .4byte gUnknown_203B370
+_08038DA4:
+ ldr r1, [r6]
+ movs r0, 0x9
+ str r0, [r1, 0x4]
+ ldr r5, _08038DBC
+ bl sub_80391F8
+_08038DB0:
+ adds r0, r5, 0
+ add sp, 0x34
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08038DBC: .4byte 0x0000ffdc
+ thumb_func_end sub_8038A90
+
+ thumb_func_start sub_8038DC0
+sub_8038DC0:
+ push {r4,lr}
+ sub sp, 0x10
+ adds r4, r0, 0
+ ldr r0, _08038DF8
+ ldr r0, [r0]
+ movs r1, 0xD4
+ lsls r1, 1
+ adds r0, r1
+ bl sub_8006518
+ bl ResetUnusedInputStruct
+ movs r0, 0
+ movs r1, 0x1
+ movs r2, 0x1
+ bl sub_800641C
+ bl sub_80155F0
+ subs r0, r4, 0x7
+ cmp r0, 0xE
+ bls _08038DEE
+ b _08038F74
+_08038DEE:
+ lsls r0, 2
+ ldr r1, _08038DFC
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_08038DF8: .4byte gUnknown_203B370
+_08038DFC: .4byte _08038E00
+ .align 2, 0
+_08038E00:
+ .4byte _08038E7C
+ .4byte _08038F74
+ .4byte _08038EDC
+ .4byte _08038F74
+ .4byte _08038F1C
+ .4byte _08038F74
+ .4byte _08038E9C
+ .4byte _08038F74
+ .4byte _08038F74
+ .4byte _08038F74
+ .4byte _08038E3C
+ .4byte _08038E5C
+ .4byte _08038EBC
+ .4byte _08038EFC
+ .4byte _08038F50
+_08038E3C:
+ ldr r0, _08038E50
+ ldr r1, [r0]
+ adds r0, r1, 0
+ adds r0, 0x8
+ movs r2, 0xA4
+ lsls r2, 1
+ adds r1, r2
+ ldr r3, _08038E54
+ ldr r2, _08038E58
+ b _08038F2E
+ .align 2, 0
+_08038E50: .4byte gUnknown_203B370
+_08038E54: .4byte gUnknown_80E71FC
+_08038E58: .4byte gUnknown_80E7214
+_08038E5C:
+ ldr r0, _08038E70
+ ldr r1, [r0]
+ adds r0, r1, 0
+ adds r0, 0x8
+ movs r2, 0xA4
+ lsls r2, 1
+ adds r1, r2
+ ldr r3, _08038E74
+ ldr r2, _08038E78
+ b _08038F2E
+ .align 2, 0
+_08038E70: .4byte gUnknown_203B370
+_08038E74: .4byte gUnknown_80E72EC
+_08038E78: .4byte gUnknown_80E7304
+_08038E7C:
+ ldr r0, _08038E90
+ ldr r1, [r0]
+ adds r0, r1, 0
+ adds r0, 0x8
+ movs r2, 0xA4
+ lsls r2, 1
+ adds r1, r2
+ ldr r3, _08038E94
+ ldr r2, _08038E98
+ b _08038F2E
+ .align 2, 0
+_08038E90: .4byte gUnknown_203B370
+_08038E94: .4byte gUnknown_80E7344
+_08038E98: .4byte gUnknown_80E735C
+_08038E9C:
+ ldr r0, _08038EB0
+ ldr r1, [r0]
+ adds r0, r1, 0
+ adds r0, 0x8
+ movs r2, 0xA4
+ lsls r2, 1
+ adds r1, r2
+ ldr r3, _08038EB4
+ ldr r2, _08038EB8
+ b _08038F2E
+ .align 2, 0
+_08038EB0: .4byte gUnknown_203B370
+_08038EB4: .4byte gUnknown_80E7588
+_08038EB8: .4byte gUnknown_80E75A0
+_08038EBC:
+ ldr r0, _08038ED0
+ ldr r1, [r0]
+ adds r0, r1, 0
+ adds r0, 0x8
+ movs r2, 0xA4
+ lsls r2, 1
+ adds r1, r2
+ ldr r3, _08038ED4
+ ldr r2, _08038ED8
+ b _08038F2E
+ .align 2, 0
+_08038ED0: .4byte gUnknown_203B370
+_08038ED4: .4byte gUnknown_80E73AC
+_08038ED8: .4byte gUnknown_80E73C4
+_08038EDC:
+ ldr r0, _08038EF0
+ ldr r1, [r0]
+ adds r0, r1, 0
+ adds r0, 0x8
+ movs r2, 0xA4
+ lsls r2, 1
+ adds r1, r2
+ ldr r3, _08038EF4
+ ldr r2, _08038EF8
+ b _08038F2E
+ .align 2, 0
+_08038EF0: .4byte gUnknown_203B370
+_08038EF4: .4byte gUnknown_80E7408
+_08038EF8: .4byte gUnknown_80E7420
+_08038EFC:
+ ldr r0, _08038F10
+ ldr r1, [r0]
+ adds r0, r1, 0
+ adds r0, 0x8
+ movs r2, 0xA4
+ lsls r2, 1
+ adds r1, r2
+ ldr r3, _08038F14
+ ldr r2, _08038F18
+ b _08038F2E
+ .align 2, 0
+_08038F10: .4byte gUnknown_203B370
+_08038F14: .4byte gUnknown_80E7468
+_08038F18: .4byte gUnknown_80E7480
+_08038F1C:
+ ldr r0, _08038F44
+ ldr r1, [r0]
+ adds r0, r1, 0
+ adds r0, 0x8
+ movs r2, 0xA4
+ lsls r2, 1
+ adds r1, r2
+ ldr r3, _08038F48
+ ldr r2, _08038F4C
+_08038F2E:
+ str r2, [sp]
+ movs r4, 0
+ str r4, [sp, 0x4]
+ movs r2, 0xD
+ str r2, [sp, 0x8]
+ str r4, [sp, 0xC]
+ movs r2, 0
+ bl SetMenuItems
+ b _08038F74
+ .align 2, 0
+_08038F44: .4byte gUnknown_203B370
+_08038F48: .4byte gUnknown_80E74C8
+_08038F4C: .4byte gUnknown_80E74E0
+_08038F50:
+ ldr r0, _08038F8C
+ ldr r1, [r0]
+ adds r0, r1, 0
+ adds r0, 0x8
+ movs r2, 0xA4
+ lsls r2, 1
+ adds r1, r2
+ ldr r3, _08038F90
+ ldr r2, _08038F94
+ str r2, [sp]
+ movs r4, 0
+ str r4, [sp, 0x4]
+ movs r2, 0xD
+ str r2, [sp, 0x8]
+ str r4, [sp, 0xC]
+ movs r2, 0
+ bl SetMenuItems
+_08038F74:
+ ldr r0, _08038F8C
+ ldr r0, [r0]
+ adds r0, 0x8
+ movs r1, 0
+ movs r2, 0x1
+ bl sub_8035CF4
+ add sp, 0x10
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08038F8C: .4byte gUnknown_203B370
+_08038F90: .4byte gUnknown_80E752C
+_08038F94: .4byte gUnknown_80E7544
+ thumb_func_end sub_8038DC0
+
+ thumb_func_start sub_8038F98
+sub_8038F98:
+ push {r4,r5,lr}
+ sub sp, 0x10
+ ldr r5, _08038FF4
+ ldr r0, [r5]
+ movs r1, 0xD4
+ lsls r1, 1
+ adds r0, r1
+ bl sub_8006518
+ bl ResetUnusedInputStruct
+ movs r0, 0
+ movs r1, 0x1
+ movs r2, 0x1
+ bl sub_800641C
+ bl sub_80155F0
+ ldr r1, [r5]
+ adds r0, r1, 0
+ adds r0, 0x8
+ movs r2, 0xA4
+ lsls r2, 1
+ adds r1, r2
+ ldr r3, _08038FF8
+ ldr r2, _08038FFC
+ str r2, [sp]
+ movs r4, 0
+ str r4, [sp, 0x4]
+ movs r2, 0xD
+ str r2, [sp, 0x8]
+ str r4, [sp, 0xC]
+ movs r2, 0
+ bl SetMenuItems
+ ldr r0, [r5]
+ adds r0, 0x8
+ movs r1, 0
+ movs r2, 0x1
+ bl sub_8035CF4
+ add sp, 0x10
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08038FF4: .4byte gUnknown_203B370
+_08038FF8: .4byte gUnknown_80E7278
+_08038FFC: .4byte gUnknown_80E7290
+ thumb_func_end sub_8038F98
+
+ thumb_func_start sub_8039000
+sub_8039000:
+ push {lr}
+ movs r1, 0xB
+ ldr r0, _0803901C
+ ldr r0, [r0]
+ ldr r0, [r0]
+ subs r0, 0x1B
+ cmp r0, 0x7
+ bhi _08039062
+ lsls r0, 2
+ ldr r1, _08039020
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_0803901C: .4byte gUnknown_203B370
+_08039020: .4byte _08039024
+ .align 2, 0
+_08039024:
+ .4byte _08039044
+ .4byte _08039054
+ .4byte _0803904C
+ .4byte _0803905C
+ .4byte _08039048
+ .4byte _08039058
+ .4byte _08039050
+ .4byte _08039060
+_08039044:
+ movs r1, 0
+ b _08039062
+_08039048:
+ movs r1, 0x4
+ b _08039062
+_0803904C:
+ movs r1, 0x2
+ b _08039062
+_08039050:
+ movs r1, 0x6
+ b _08039062
+_08039054:
+ movs r1, 0x1
+ b _08039062
+_08039058:
+ movs r1, 0x5
+ b _08039062
+_0803905C:
+ movs r1, 0x3
+ b _08039062
+_08039060:
+ movs r1, 0x7
+_08039062:
+ adds r0, r1, 0
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8039000
+
+ thumb_func_start sub_8039068
+sub_8039068:
+ push {r4-r6,lr}
+ adds r6, r0, 0
+ adds r0, r1, 0
+ adds r5, r2, 0
+ adds r1, r5, 0
+ bl sub_803D204
+ lsls r0, 24
+ cmp r0, 0
+ beq _080390AC
+ ldrb r0, [r5]
+ cmp r0, 0x7
+ bhi _080390AC
+ ldrb r4, [r5, 0x5]
+ ldrb r0, [r5, 0x4]
+ bl sub_8090298
+ cmp r4, r0
+ bge _080390AC
+ movs r0, 0xC
+ ldrsh r1, [r5, r0]
+ cmp r1, 0
+ beq _080390AC
+ ldr r0, _080390B0
+ cmp r1, r0
+ bgt _080390AC
+ adds r0, r5, 0
+ adds r0, 0x22
+ ldrb r0, [r0]
+ bl sub_8092040
+ lsls r0, 24
+ cmp r0, 0
+ beq _080390B4
+_080390AC:
+ movs r0, 0x11
+ b _0803916E
+ .align 2, 0
+_080390B0: .4byte 0x000001a7
+_080390B4:
+ cmp r6, 0x1E
+ beq _08039120
+ cmp r6, 0x1E
+ bhi _080390C2
+ cmp r6, 0x1C
+ beq _080390C8
+ b _0803916A
+_080390C2:
+ cmp r6, 0x20
+ beq _08039140
+ b _0803916A
+_080390C8:
+ ldrb r0, [r5]
+ cmp r0, 0x1
+ beq _080390D2
+ movs r0, 0x12
+ b _0803916E
+_080390D2:
+ ldr r1, [r5, 0x10]
+ movs r0, 0x2
+ bl sub_80952F0
+ lsls r0, 24
+ cmp r0, 0
+ bne _08039108
+ ldr r1, [r5, 0x10]
+ movs r0, 0x4
+ bl sub_80952F0
+ lsls r0, 24
+ cmp r0, 0
+ bne _08039108
+ ldr r1, [r5, 0x10]
+ movs r0, 0x6
+ bl sub_80952F0
+ lsls r0, 24
+ cmp r0, 0
+ bne _08039108
+ ldr r0, [r5, 0x10]
+ bl sub_8095298
+ lsls r0, 24
+ cmp r0, 0
+ beq _0803910C
+_08039108:
+ movs r0, 0x7
+ b _0803916E
+_0803910C:
+ bl sub_8095190
+ movs r1, 0x1
+ negs r1, r1
+ cmp r0, r1
+ bne _0803911C
+ movs r0, 0xD
+ b _0803916E
+_0803911C:
+ movs r0, 0x16
+ b _0803916E
+_08039120:
+ ldrb r0, [r5]
+ cmp r0, 0x4
+ beq _0803912A
+ movs r0, 0x13
+ b _0803916E
+_0803912A:
+ ldr r1, [r5, 0x10]
+ movs r0, 0x1
+ bl sub_80952F0
+ lsls r0, 24
+ cmp r0, 0
+ bne _0803913C
+ movs r0, 0x9
+ b _0803916E
+_0803913C:
+ movs r0, 0x17
+ b _0803916E
+_08039140:
+ ldrb r0, [r5]
+ cmp r0, 0x5
+ beq _0803914A
+ movs r0, 0x14
+ b _0803916E
+_0803914A:
+ ldr r1, [r5, 0x10]
+ movs r0, 0x4
+ bl sub_80952F0
+ lsls r0, 24
+ cmp r0, 0
+ beq _08039162
+ bl sub_8011C34
+ ldr r1, [r5, 0x28]
+ cmp r1, r0
+ beq _08039166
+_08039162:
+ movs r0, 0xB
+ b _0803916E
+_08039166:
+ movs r0, 0x18
+ b _0803916E
+_0803916A:
+ movs r0, 0x1
+ negs r0, r0
+_0803916E:
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8039068
+
+ thumb_func_start sub_8039174
+sub_8039174:
+ push {r4,lr}
+ ldr r0, _080391D8
+ ldr r3, [r0]
+ movs r0, 0x82
+ lsls r0, 2
+ adds r3, r0
+ ldrh r1, [r3]
+ ldr r0, _080391DC
+ ands r0, r1
+ ldr r1, _080391E0
+ ands r0, r1
+ ldr r4, _080391E4
+ ands r0, r4
+ ldr r1, _080391E8
+ ands r0, r1
+ ldr r1, _080391EC
+ ands r0, r1
+ movs r2, 0x80
+ lsls r2, 7
+ ldr r1, _080391F0
+ ands r0, r1
+ orrs r0, r2
+ strh r0, [r3]
+ movs r2, 0xFC
+ lsls r2, 2
+ ldrh r1, [r3, 0x4]
+ movs r0, 0xFC
+ lsls r0, 8
+ ands r0, r1
+ orrs r0, r2
+ ands r0, r4
+ movs r2, 0xF
+ movs r4, 0xF0
+ lsls r4, 8
+ ldr r1, _080391F4
+ ands r0, r1
+ orrs r0, r4
+ strh r0, [r3, 0x4]
+ movs r0, 0
+ strh r0, [r3, 0x2]
+ movs r1, 0xC0
+ lsls r1, 4
+ ldrh r0, [r3, 0x6]
+ ands r2, r0
+ orrs r2, r1
+ strh r2, [r3, 0x6]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080391D8: .4byte gUnknown_203B370
+_080391DC: .4byte 0x0000feff
+_080391E0: .4byte 0x0000fdff
+_080391E4: .4byte 0x0000f3ff
+_080391E8: .4byte 0x0000efff
+_080391EC: .4byte 0x0000dfff
+_080391F0: .4byte 0x00003fff
+_080391F4: .4byte 0x00000fff
+ thumb_func_end sub_8039174
+
+ thumb_func_start sub_80391F8
+sub_80391F8:
+ push {r4-r6,lr}
+ ldr r6, _08039250
+ ldr r2, [r6]
+ movs r0, 0x82
+ lsls r0, 2
+ adds r4, r2, r0
+ ldrh r1, [r4, 0x2]
+ movs r0, 0xFE
+ lsls r0, 8
+ ands r0, r1
+ movs r1, 0x70
+ orrs r0, r1
+ strh r0, [r4, 0x2]
+ movs r3, 0xE0
+ lsls r3, 3
+ ldrh r1, [r4, 0x6]
+ movs r0, 0xF
+ ands r0, r1
+ orrs r0, r3
+ strh r0, [r4, 0x6]
+ movs r5, 0x84
+ lsls r5, 2
+ adds r2, r5
+ ldr r0, [r2]
+ movs r1, 0x8
+ ands r0, r1
+ cmp r0, 0
+ beq _0803923C
+ adds r1, 0xF8
+ adds r0, r4, 0
+ movs r2, 0
+ movs r3, 0
+ bl AddSprite
+_0803923C:
+ bl xxx_draw_string_80144C4
+ ldr r1, [r6]
+ adds r1, r5
+ ldr r0, [r1]
+ adds r0, 0x1
+ str r0, [r1]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08039250: .4byte gUnknown_203B370
+ thumb_func_end sub_80391F8
+
+ thumb_func_start sub_8039254
+sub_8039254:
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ sub sp, 0x10
+ adds r6, r0, 0
+ ldr r5, _080392EC
+ ldr r0, [r5]
+ cmp r0, 0
+ bne _0803927C
+ movs r4, 0x9F
+ lsls r4, 2
+ adds r0, r4, 0
+ movs r1, 0x8
+ bl MemoryAlloc
+ str r0, [r5]
+ movs r1, 0
+ adds r2, r4, 0
+ bl MemoryFill8
+_0803927C:
+ ldr r0, [r5]
+ str r6, [r0]
+ mov r12, r5
+ movs r0, 0xA2
+ lsls r0, 1
+ mov r8, r0
+ ldr r4, _080392F0
+ movs r3, 0
+ movs r2, 0x3
+_0803928E:
+ mov r5, r12
+ ldr r1, [r5]
+ adds r1, r3
+ add r1, r8
+ adds r0, r4, 0
+ ldm r0!, {r5-r7}
+ stm r1!, {r5-r7}
+ ldm r0!, {r5-r7}
+ stm r1!, {r5-r7}
+ adds r3, 0x18
+ subs r2, 0x1
+ cmp r2, 0
+ bge _0803928E
+ bl ResetUnusedInputStruct
+ ldr r6, _080392EC
+ ldr r0, [r6]
+ movs r5, 0xA2
+ lsls r5, 1
+ adds r0, r5
+ movs r1, 0x1
+ movs r2, 0x1
+ bl sub_800641C
+ ldr r1, [r6]
+ adds r0, r1, 0x4
+ adds r1, r5
+ ldr r3, _080392F4
+ ldr r2, _080392F8
+ str r2, [sp]
+ movs r4, 0
+ str r4, [sp, 0x4]
+ movs r7, 0x6
+ str r7, [sp, 0x8]
+ str r4, [sp, 0xC]
+ movs r2, 0
+ bl SetMenuItems
+ ldr r1, [r6]
+ ldr r0, [r1]
+ cmp r0, 0x7
+ beq _08039306
+ cmp r0, 0x7
+ bhi _080392FC
+ cmp r0, 0x6
+ beq _08039338
+ b _08039382
+ .align 2, 0
+_080392EC: .4byte gUnknown_203B374
+_080392F0: .4byte gUnknown_80E75F8
+_080392F4: .4byte gUnknown_80E7610
+_080392F8: .4byte gUnknown_203B378
+_080392FC:
+ cmp r0, 0x8
+ beq _0803934C
+ cmp r0, 0x9
+ beq _0803936C
+ b _08039382
+_08039306:
+ bl sub_8039844
+ lsls r0, 24
+ cmp r0, 0
+ beq _08039324
+ ldr r1, [r6]
+ adds r0, r1, 0x4
+ adds r1, r5
+ ldr r3, _0803931C
+ ldr r2, _08039320
+ b _08039354
+ .align 2, 0
+_0803931C: .4byte gUnknown_80E762C
+_08039320: .4byte gUnknown_80E7644
+_08039324:
+ ldr r1, [r6]
+ adds r0, r1, 0x4
+ adds r1, r5
+ ldr r3, _08039330
+ ldr r2, _08039334
+ b _08039354
+ .align 2, 0
+_08039330: .4byte gUnknown_80E762C
+_08039334: .4byte gUnknown_80E7684
+_08039338:
+ adds r0, r1, 0x4
+ adds r1, r5
+ ldr r3, _08039344
+ ldr r2, _08039348
+ b _08039354
+ .align 2, 0
+_08039344: .4byte gUnknown_80E762C
+_08039348: .4byte gUnknown_80E76B8
+_0803934C:
+ adds r0, r1, 0x4
+ adds r1, r5
+ ldr r3, _08039364
+ ldr r2, _08039368
+_08039354:
+ str r2, [sp]
+ str r4, [sp, 0x4]
+ str r7, [sp, 0x8]
+ str r4, [sp, 0xC]
+ movs r2, 0x1
+ bl SetMenuItems
+ b _08039382
+ .align 2, 0
+_08039364: .4byte gUnknown_80E762C
+_08039368: .4byte gUnknown_80E76E8
+_0803936C:
+ adds r0, r1, 0x4
+ adds r1, r5
+ ldr r3, _080393DC
+ ldr r2, _080393E0
+ str r2, [sp]
+ str r4, [sp, 0x4]
+ str r7, [sp, 0x8]
+ str r4, [sp, 0xC]
+ movs r2, 0x1
+ bl SetMenuItems
+_08039382:
+ ldr r4, _080393E4
+ ldr r1, [r4]
+ adds r0, r1, 0x4
+ movs r6, 0xA2
+ lsls r6, 1
+ adds r1, r6
+ ldr r3, _080393E8
+ ldr r2, _080393EC
+ str r2, [sp]
+ movs r2, 0x1
+ str r2, [sp, 0x4]
+ movs r2, 0x2
+ str r2, [sp, 0x8]
+ movs r2, 0
+ str r2, [sp, 0xC]
+ movs r2, 0x2
+ bl SetMenuItems
+ ldr r0, [r4]
+ adds r0, 0x4
+ movs r1, 0
+ movs r2, 0
+ bl sub_8035CF4
+ ldr r0, [r4]
+ adds r0, 0x4
+ movs r1, 0x1
+ movs r2, 0
+ bl sub_8035CF4
+ ldr r0, [r4]
+ adds r0, 0x4
+ movs r1, 0x2
+ movs r2, 0x1
+ bl sub_8035CF4
+ bl sub_80394A4
+ add sp, 0x10
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080393DC: .4byte gUnknown_80E762C
+_080393E0: .4byte gUnknown_80E7730
+_080393E4: .4byte gUnknown_203B374
+_080393E8: .4byte gUnknown_80E7784
+_080393EC: .4byte gUnknown_80E779C
+ thumb_func_end sub_8039254
+
+ thumb_func_start sub_80393F0
+sub_80393F0:
+ push {r4,lr}
+ bl ResetUnusedInputStruct
+ movs r0, 0
+ movs r1, 0x1
+ movs r2, 0x1
+ bl sub_800641C
+ ldr r4, _08039418
+ ldr r0, [r4]
+ cmp r0, 0
+ beq _08039410
+ bl MemoryFree
+ movs r0, 0
+ str r0, [r4]
+_08039410:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08039418: .4byte gUnknown_203B374
+ thumb_func_end sub_80393F0
+
+ thumb_func_start sub_803941C
+sub_803941C:
+ push {r4,r5,lr}
+ sub sp, 0x4
+ ldr r5, _08039458
+ movs r0, 0x4
+ str r0, [sp]
+ ldr r4, _0803945C
+ ldr r0, [r4]
+ adds r0, 0x54
+ bl sub_8012FD8
+ ldr r0, [r4]
+ adds r0, 0xA4
+ bl sub_8012FD8
+ lsls r0, 24
+ cmp r0, 0
+ bne _08039448
+ ldr r0, [r4]
+ adds r0, 0xA4
+ mov r1, sp
+ bl sub_8013114
+_08039448:
+ ldr r0, [sp]
+ cmp r0, 0x3
+ bhi _08039498
+ cmp r0, 0x2
+ bcs _08039460
+ cmp r0, 0x1
+ beq _08039464
+ b _08039498
+ .align 2, 0
+_08039458: .4byte 0x0000ffdc
+_0803945C: .4byte gUnknown_203B374
+_08039460:
+ movs r5, 0x1
+ b _08039498
+_08039464:
+ ldr r0, [r4]
+ ldr r0, [r0]
+ cmp r0, 0x7
+ beq _08039480
+ cmp r0, 0x7
+ bhi _08039476
+ cmp r0, 0x6
+ beq _08039484
+ b _08039498
+_08039476:
+ cmp r0, 0x8
+ beq _0803948E
+ cmp r0, 0x9
+ beq _08039492
+ b _08039498
+_08039480:
+ movs r5, 0x2
+ b _08039498
+_08039484:
+ movs r0, 0
+ bl sub_8095240
+ movs r5, 0x4
+ b _08039498
+_0803948E:
+ movs r5, 0x9
+ b _08039498
+_08039492:
+ bl sub_80122A8
+ movs r5, 0x2E
+_08039498:
+ adds r0, r5, 0
+ add sp, 0x4
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_803941C
+
+ thumb_func_start sub_80394A4
+sub_80394A4:
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ sub sp, 0x150
+ bl sub_8011FA8
+ mov r8, r0
+ movs r0, 0
+ bl sub_8008C54
+ movs r0, 0
+ bl sub_80073B8
+ ldr r2, _0803952C
+ movs r4, 0
+ str r4, [sp]
+ movs r0, 0x8
+ movs r1, 0
+ movs r3, 0
+ bl xxx_call_draw_string
+ ldr r2, _08039530
+ str r4, [sp]
+ movs r0, 0x8
+ movs r1, 0xC
+ movs r3, 0
+ bl xxx_call_draw_string
+ ldr r2, _08039534
+ str r4, [sp]
+ movs r0, 0x8
+ movs r1, 0x18
+ movs r3, 0
+ bl xxx_call_draw_string
+ ldr r2, _08039538
+ str r4, [sp]
+ movs r0, 0x8
+ movs r1, 0x24
+ movs r3, 0
+ bl xxx_call_draw_string
+ ldr r2, _0803953C
+ str r4, [sp]
+ movs r0, 0x8
+ movs r1, 0x30
+ movs r3, 0
+ bl xxx_call_draw_string
+ ldr r2, _08039540
+ str r4, [sp]
+ movs r0, 0x8
+ movs r1, 0x3C
+ movs r3, 0
+ bl xxx_call_draw_string
+ movs r0, 0
+ bl sub_80023E4
+ lsls r0, 24
+ cmp r0, 0
+ beq _08039544
+ add r4, sp, 0x68
+ adds r0, r4, 0
+ bl sub_80920D8
+ adds r2, r4, 0
+ b _0803954E
+ .align 2, 0
+_0803952C: .4byte gUnknown_80E77BC
+_08039530: .4byte gUnknown_80E77C4
+_08039534: .4byte gUnknown_80E77CC
+_08039538: .4byte gUnknown_80E77D8
+_0803953C: .4byte gUnknown_80E77E4
+_08039540: .4byte gUnknown_80E77F0
+_08039544:
+ ldr r1, _08039588
+ add r0, sp, 0x68
+ bl strcpy
+ add r2, sp, 0x68
+_0803954E:
+ ldr r5, _0803958C
+ ldr r0, [r5]
+ movs r4, 0xD2
+ lsls r4, 1
+ adds r0, r4
+ ldr r1, _08039590
+ bl sub_800D158
+ ldr r2, [r5]
+ adds r2, r4
+ movs r0, 0
+ str r0, [sp]
+ movs r0, 0x40
+ movs r1, 0
+ movs r3, 0
+ bl xxx_call_draw_string
+ bl sub_808D33C
+ cmp r0, 0
+ bne _08039598
+ add r4, sp, 0x90
+ ldr r1, _08039594
+ adds r0, r4, 0
+ movs r2, 0xA
+ bl sub_80922B4
+ b _080395A6
+ .align 2, 0
+_08039588: .4byte gUnknown_80E77F8
+_0803958C: .4byte gUnknown_203B374
+_08039590: .4byte gUnknown_80E7804
+_08039594: .4byte gUnknown_80E7808
+_08039598:
+ add r4, sp, 0x90
+ adds r1, r0, 0
+ adds r1, 0x4C
+ adds r0, r4, 0
+ movs r2, 0xA
+ bl sub_80922B4
+_080395A6:
+ adds r2, r4, 0
+ ldr r5, _080395F0
+ ldr r0, [r5]
+ movs r4, 0xE4
+ lsls r4, 1
+ adds r0, r4
+ ldr r6, _080395F4
+ adds r1, r6, 0
+ bl sub_800D158
+ ldr r2, [r5]
+ adds r2, r4
+ movs r0, 0
+ str r0, [sp]
+ movs r0, 0x40
+ movs r1, 0xC
+ movs r3, 0
+ bl xxx_call_draw_string
+ movs r0, 0x1
+ bl sub_8095324
+ cmp r0, 0
+ bne _080395E0
+ movs r0, 0x7
+ bl sub_8095324
+ cmp r0, 0
+ beq _08039606
+_080395E0:
+ ldr r0, _080395F8
+ cmp r8, r0
+ bne _080395FC
+ ldr r4, [r5]
+ movs r0, 0xF6
+ lsls r0, 1
+ adds r4, r0
+ b _08039676
+ .align 2, 0
+_080395F0: .4byte gUnknown_203B374
+_080395F4: .4byte gUnknown_80E7804
+_080395F8: .4byte 0x000f1207
+_080395FC:
+ ldr r0, [r5]
+ movs r1, 0xF6
+ lsls r1, 1
+ adds r0, r1
+ b _08039690
+_08039606:
+ bl sub_8011C1C
+ cmp r0, 0x1
+ beq _08039624
+ cmp r0, 0x2
+ beq _08039668
+ ldr r0, [r5]
+ movs r2, 0xF6
+ lsls r2, 1
+ adds r0, r2
+ ldr r1, _08039620
+ b _08039692
+ .align 2, 0
+_08039620: .4byte gUnknown_80E7824
+_08039624:
+ movs r0, 0
+ movs r1, 0x18
+ bl sub_8001658
+ cmp r0, 0x7
+ beq _08039658
+ cmp r0, 0xB
+ beq _08039658
+ bl sub_8098FB4
+ adds r2, r0, 0
+ add r0, sp, 0x4
+ adds r1, r6, 0
+ bl sub_800D158
+ ldr r0, [r5]
+ movs r3, 0xF6
+ lsls r3, 1
+ adds r1, r0, r3
+ adds r3, 0x24
+ adds r2, r0, r3
+ add r0, sp, 0x4
+ movs r3, 0
+ bl xxx_format_string
+ b _08039696
+_08039658:
+ ldr r0, _08039664
+ ldr r0, [r0]
+ movs r1, 0xF6
+ lsls r1, 1
+ adds r0, r1
+ b _08039690
+ .align 2, 0
+_08039664: .4byte gUnknown_203B374
+_08039668:
+ ldr r0, _08039684
+ cmp r8, r0
+ bne _08039688
+ ldr r4, [r5]
+ movs r2, 0xF6
+ lsls r2, 1
+ adds r4, r2
+_08039676:
+ bl sub_809769C
+ adds r1, r0, 0
+ adds r0, r4, 0
+ bl sub_8090228
+ b _08039696
+ .align 2, 0
+_08039684: .4byte 0x000f1207
+_08039688:
+ ldr r0, [r5]
+ movs r3, 0xF6
+ lsls r3, 1
+ adds r0, r3
+_08039690:
+ ldr r1, _0803974C
+_08039692:
+ bl sub_800D158
+_08039696:
+ ldr r7, _08039750
+ ldr r2, [r7]
+ movs r0, 0xF6
+ lsls r0, 1
+ adds r2, r0
+ movs r6, 0
+ str r6, [sp]
+ movs r0, 0x40
+ movs r1, 0x18
+ movs r3, 0
+ bl xxx_call_draw_string
+ ldr r0, _08039754
+ ldr r0, [r0]
+ add r1, sp, 0x144
+ add r2, sp, 0x148
+ add r3, sp, 0x14C
+ bl DeconstructPlayTime
+ ldr r0, [r7]
+ movs r5, 0x84
+ lsls r5, 2
+ adds r0, r5
+ ldr r1, _08039758
+ add r2, sp, 0x144
+ ldr r2, [r2]
+ add r3, sp, 0x148
+ ldr r3, [r3]
+ add r4, sp, 0x14C
+ ldr r4, [r4]
+ str r4, [sp]
+ bl sub_800D158
+ ldr r2, [r7]
+ adds r2, r5
+ str r6, [sp]
+ movs r0, 0x40
+ movs r1, 0x24
+ movs r3, 0
+ bl xxx_call_draw_string
+ bl sub_8097778
+ adds r2, r0, 0
+ ldr r0, [r7]
+ movs r4, 0x8D
+ lsls r4, 2
+ adds r0, r4
+ ldr r1, _0803975C
+ bl sub_800D158
+ ldr r2, [r7]
+ adds r2, r4
+ str r6, [sp]
+ movs r0, 0x40
+ movs r1, 0x30
+ movs r3, 0
+ bl xxx_call_draw_string
+ ldr r0, _08039760
+ cmp r8, r0
+ bne _0803976C
+ ldr r0, _08039764
+ ldr r6, [r0]
+ movs r1, 0xC
+ ldrsh r0, [r6, r1]
+ cmp r0, 0
+ beq _0803976C
+ add r5, sp, 0x130
+ adds r1, r0, 0
+ adds r0, r5, 0
+ bl sub_808D930
+ add r4, sp, 0xE0
+ adds r1, r6, 0
+ adds r1, 0x50
+ adds r0, r4, 0
+ movs r2, 0xA
+ bl sub_80922B4
+ ldr r0, [r7]
+ movs r3, 0x96
+ lsls r3, 2
+ adds r0, r3
+ ldr r1, _08039768
+ adds r2, r4, 0
+ adds r3, r5, 0
+ bl sub_800D158
+ b _0803977C
+ .align 2, 0
+_0803974C: .4byte gUnknown_80E780C
+_08039750: .4byte gUnknown_203B374
+_08039754: .4byte gUnknown_203B47C
+_08039758: .4byte gUnknown_80E7838
+_0803975C: .4byte gUnknown_80E7848
+_08039760: .4byte 0x000f1207
+_08039764: .4byte gUnknown_203B484
+_08039768: .4byte gUnknown_80E784C
+_0803976C:
+ ldr r0, _080397AC
+ ldr r0, [r0]
+ movs r1, 0x96
+ lsls r1, 2
+ adds r0, r1
+ ldr r1, _080397B0
+ bl sub_800D158
+_0803977C:
+ ldr r0, _080397AC
+ ldr r2, [r0]
+ movs r3, 0x96
+ lsls r3, 2
+ adds r2, r3
+ movs r0, 0
+ str r0, [sp]
+ movs r0, 0x40
+ movs r1, 0x3C
+ movs r3, 0
+ bl xxx_call_draw_string
+ bl sub_80397B4
+ movs r0, 0
+ bl sub_80073E0
+ add sp, 0x150
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080397AC: .4byte gUnknown_203B374
+_080397B0: .4byte gUnknown_80E7854
+ thumb_func_end sub_80394A4
+
+ thumb_func_start sub_80397B4
+sub_80397B4:
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ sub sp, 0xC
+ ldr r0, _08039834
+ ldr r1, _08039838
+ bl OpenFileAndGetFileDataPtr
+ adds r6, r0, 0
+ movs r4, 0
+_080397C8:
+ adds r0, r4, 0
+ adds r0, 0xB0
+ ldr r1, [r6, 0x4]
+ lsls r2, r4, 2
+ ldr r1, [r1, 0x4]
+ adds r1, r2
+ bl SetBGPaletteBufferColorArray
+ adds r4, 0x1
+ cmp r4, 0x3F
+ ble _080397C8
+ movs r7, 0x8
+ movs r0, 0x49
+ mov r8, r0
+ movs r4, 0
+_080397E6:
+ ldr r0, _0803983C
+ lsls r5, r4, 2
+ adds r0, r5, r0
+ ldr r0, [r0]
+ bl sub_80023E4
+ lsls r0, 24
+ cmp r0, 0
+ beq _0803981C
+ movs r0, 0x10
+ str r0, [sp]
+ ldr r0, [r6, 0x4]
+ lsls r1, r4, 7
+ ldr r0, [r0]
+ adds r0, r1
+ str r0, [sp, 0x4]
+ ldr r0, _08039840
+ adds r0, r5, r0
+ ldr r0, [r0]
+ str r0, [sp, 0x8]
+ movs r0, 0
+ adds r1, r7, 0
+ mov r2, r8
+ movs r3, 0x10
+ bl sub_8007E20
+ adds r7, 0x10
+_0803981C:
+ adds r4, 0x1
+ cmp r4, 0xB
+ ble _080397E6
+ adds r0, r6, 0
+ bl CloseFile
+ add sp, 0xC
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08039834: .4byte gUnknown_80E785C
+_08039838: .4byte gTitleMenuFileArchive
+_0803983C: .4byte gUnknown_203B3B8
+_08039840: .4byte gUnknown_203B388
+ thumb_func_end sub_80397B4
+
+ thumb_func_start sub_8039844
+sub_8039844:
+ push {r4,r5,lr}
+ bl sub_8011FA8
+ adds r5, r0, 0
+ movs r4, 0
+ movs r0, 0x1
+ bl sub_8095324
+ cmp r0, 0
+ bne _0803986A
+ movs r0, 0x7
+ bl sub_8095324
+ cmp r0, 0
+ bne _0803986A
+ bl sub_8011C1C
+ cmp r0, 0x2
+ bne _08039872
+_0803986A:
+ ldr r0, _0803987C
+ cmp r5, r0
+ bne _08039872
+ movs r4, 0x1
+_08039872:
+ adds r0, r4, 0
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0803987C: .4byte 0x000f1207
+ thumb_func_end sub_8039844
+
+ thumb_func_start sub_8039880
+sub_8039880:
+ push {r4,lr}
+ movs r4, 0
+ movs r0, 0x1
+ bl sub_8095324
+ cmp r0, 0
+ bne _080398A0
+ movs r0, 0x7
+ bl sub_8095324
+ cmp r0, 0
+ bne _080398A0
+ bl sub_8011C1C
+ cmp r0, 0x2
+ bne _080398A2
+_080398A0:
+ movs r4, 0x1
+_080398A2:
+ adds r0, r4, 0
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8039880
+
+ thumb_func_start sub_80398AC
+sub_80398AC:
+ push {r4,r5,lr}
+ bl ResetUnusedInputStruct
+ movs r0, 0
+ movs r1, 0x1
+ movs r2, 0x1
+ bl sub_800641C
+ ldr r5, _0803991C
+ ldr r4, _08039920
+ adds r0, r4, 0
+ movs r1, 0x8
+ bl MemoryAlloc
+ str r0, [r5]
+ movs r1, 0
+ adds r2, r4, 0
+ bl MemoryFill8
+ movs r1, 0
+ movs r2, 0
+ adds r4, r5, 0
+_080398D8:
+ ldr r0, [r5]
+ adds r0, 0x1
+ adds r0, r1
+ strb r2, [r0]
+ adds r1, 0x1
+ cmp r1, 0x35
+ ble _080398D8
+ ldr r1, [r4]
+ movs r3, 0x92
+ lsls r3, 3
+ adds r2, r1, r3
+ movs r0, 0x3
+ str r0, [r2]
+ ldr r0, _08039924
+ adds r2, r1, r0
+ movs r0, 0x2
+ str r0, [r2]
+ movs r0, 0x93
+ lsls r0, 3
+ adds r1, r0
+ movs r0, 0x1
+ strb r0, [r1]
+ ldr r0, [r4]
+ adds r0, r3
+ movs r1, 0x5
+ str r1, [r0]
+ movs r0, 0x11
+ bl sub_803A1C0
+ movs r0, 0x1
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0803991C: .4byte gUnknown_203B3E8
+_08039920: .4byte 0x0000049c
+_08039924: .4byte 0x00000494
+ thumb_func_end sub_80398AC
+
+ thumb_func_start sub_8039928
+sub_8039928:
+ push {lr}
+ ldr r0, _08039940
+ ldr r0, [r0]
+ ldrb r0, [r0]
+ subs r0, 0x4
+ cmp r0, 0xF
+ bhi _080399DE
+ lsls r0, 2
+ ldr r1, _08039944
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_08039940: .4byte gUnknown_203B3E8
+_08039944: .4byte _08039948
+ .align 2, 0
+_08039948:
+ .4byte _08039988
+ .4byte _0803998E
+ .4byte _0803999E
+ .4byte _080399AA
+ .4byte _08039992
+ .4byte _080399A4
+ .4byte _080399C8
+ .4byte _080399DE
+ .4byte _08039998
+ .4byte _080399B0
+ .4byte _080399B6
+ .4byte _080399BC
+ .4byte _080399C2
+ .4byte _080399CE
+ .4byte _080399D4
+ .4byte _080399DA
+_08039988:
+ bl sub_8039A18
+ b _080399DE
+_0803998E:
+ movs r0, 0x3
+ b _080399E0
+_08039992:
+ bl sub_8039AA8
+ b _080399DE
+_08039998:
+ bl sub_8039B14
+ b _080399DE
+_0803999E:
+ bl sub_8039B20
+ b _080399DE
+_080399A4:
+ bl sub_8039B58
+ b _080399DE
+_080399AA:
+ bl sub_8039D88
+ b _080399DE
+_080399B0:
+ bl sub_8039D28
+ b _080399DE
+_080399B6:
+ bl sub_8039D68
+ b _080399DE
+_080399BC:
+ bl sub_8039DA4
+ b _080399DE
+_080399C2:
+ bl sub_8039DCC
+ b _080399DE
+_080399C8:
+ bl sub_8039B3C
+ b _080399DE
+_080399CE:
+ bl sub_8039D0C
+ b _080399DE
+_080399D4:
+ bl sub_8039C60
+ b _080399DE
+_080399DA:
+ bl sub_8039DE8
+_080399DE:
+ movs r0, 0
+_080399E0:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8039928
+
+ thumb_func_start sub_80399E4
+sub_80399E4:
+ push {r4,lr}
+ ldr r4, _08039A14
+ ldr r0, [r4]
+ cmp r0, 0
+ beq _08039A0E
+ bl MemoryFree
+ movs r0, 0
+ str r0, [r4]
+ bl sub_8030DE4
+ bl sub_801B450
+ bl sub_803084C
+ bl sub_801CBB8
+ bl sub_80155F0
+ bl sub_8031E10
+_08039A0E:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08039A14: .4byte gUnknown_203B3E8
+ thumb_func_end sub_80399E4
+
+ thumb_func_start sub_8039A18
+sub_8039A18:
+ push {lr}
+ sub sp, 0x4
+ mov r0, sp
+ bl sub_80144A4
+ cmp r0, 0
+ bne _08039AA2
+ ldr r0, _08039A48
+ ldr r1, [r0]
+ movs r2, 0x93
+ lsls r2, 2
+ adds r1, r2
+ movs r2, 0xA
+ str r2, [r1]
+ ldr r1, [sp]
+ adds r2, r0, 0
+ cmp r1, 0x8
+ bhi _08039AA2
+ lsls r0, r1, 2
+ ldr r1, _08039A4C
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_08039A48: .4byte gUnknown_203B3E8
+_08039A4C: .4byte _08039A50
+ .align 2, 0
+_08039A50:
+ .4byte _08039A9C
+ .4byte _08039AA2
+ .4byte _08039AA2
+ .4byte _08039A74
+ .4byte _08039A74
+ .4byte _08039A88
+ .4byte _08039AA2
+ .4byte _08039AA2
+ .4byte _08039A9C
+_08039A74:
+ ldr r0, [r2]
+ movs r1, 0x92
+ lsls r1, 3
+ adds r0, r1
+ movs r1, 0x3
+ str r1, [r0]
+ movs r0, 0x8
+ bl sub_803A1C0
+ b _08039AA2
+_08039A88:
+ ldr r0, [r2]
+ movs r2, 0x92
+ lsls r2, 3
+ adds r0, r2
+ movs r1, 0x5
+ str r1, [r0]
+ movs r0, 0x11
+ bl sub_803A1C0
+ b _08039AA2
+_08039A9C:
+ movs r0, 0x5
+ bl sub_803A1C0
+_08039AA2:
+ add sp, 0x4
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8039A18
+
+ thumb_func_start sub_8039AA8
+sub_8039AA8:
+ push {lr}
+ sub sp, 0x4
+ mov r0, sp
+ bl sub_80144A4
+ cmp r0, 0
+ bne _08039B0E
+ ldr r0, [sp]
+ cmp r0, 0
+ beq _08039AE8
+ cmp r0, 0x6
+ bne _08039B0E
+ ldr r0, _08039AD8
+ ldr r0, [r0]
+ ldr r1, _08039ADC
+ adds r0, r1
+ ldr r0, [r0]
+ cmp r0, 0x1
+ bne _08039AE0
+ movs r0, 0x2
+ bl sub_803A1C0
+ b _08039B0E
+ .align 2, 0
+_08039AD8: .4byte gUnknown_203B3E8
+_08039ADC: .4byte 0x00000494
+_08039AE0:
+ movs r0, 0xC
+ bl sub_803A1C0
+ b _08039B0E
+_08039AE8:
+ ldr r0, _08039B00
+ ldr r0, [r0]
+ ldr r1, _08039B04
+ adds r0, r1
+ ldr r0, [r0]
+ cmp r0, 0x1
+ bne _08039B08
+ movs r0, 0x1
+ bl sub_803A1C0
+ b _08039B0E
+ .align 2, 0
+_08039B00: .4byte gUnknown_203B3E8
+_08039B04: .4byte 0x00000494
+_08039B08:
+ movs r0, 0x4
+ bl sub_803A1C0
+_08039B0E:
+ add sp, 0x4
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8039AA8
+
+ thumb_func_start sub_8039B14
+sub_8039B14:
+ push {lr}
+ movs r0, 0x6
+ bl sub_803A1C0
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8039B14
+
+ thumb_func_start sub_8039B20
+sub_8039B20:
+ push {lr}
+ sub sp, 0x4
+ mov r0, sp
+ bl sub_80144A4
+ cmp r0, 0
+ bne _08039B34
+ movs r0, 0x9
+ bl sub_803A1C0
+_08039B34:
+ add sp, 0x4
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8039B20
+
+ thumb_func_start sub_8039B3C
+sub_8039B3C:
+ push {lr}
+ sub sp, 0x4
+ mov r0, sp
+ bl sub_80144A4
+ cmp r0, 0
+ bne _08039B50
+ movs r0, 0x4
+ bl sub_803A1C0
+_08039B50:
+ add sp, 0x4
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8039B3C
+
+ thumb_func_start sub_8039B58
+sub_8039B58:
+ push {lr}
+ sub sp, 0x4
+ mov r0, sp
+ bl sub_80144A4
+ cmp r0, 0
+ bne _08039BA6
+ ldr r0, _08039B88
+ ldr r1, [r0]
+ movs r2, 0x94
+ lsls r2, 2
+ adds r0, r1, r2
+ ldr r0, [r0]
+ cmp r0, 0
+ bne _08039B9C
+ subs r2, 0x4
+ adds r0, r1, r2
+ ldr r0, [r0]
+ cmp r0, 0x9
+ beq _08039B8C
+ cmp r0, 0xA
+ beq _08039B94
+ b _08039BA6
+ .align 2, 0
+_08039B88: .4byte gUnknown_203B3E8
+_08039B8C:
+ movs r0, 0x7
+ bl sub_803A1C0
+ b _08039BA6
+_08039B94:
+ movs r0, 0xD
+ bl sub_803A1C0
+ b _08039BA6
+_08039B9C:
+ bl sub_8039BAC
+ movs r0, 0xA
+ bl sub_803A1C0
+_08039BA6:
+ add sp, 0x4
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8039B58
+
+ thumb_func_start sub_8039BAC
+sub_8039BAC:
+ push {lr}
+ cmp r0, 0xF
+ bhi _08039C48
+ lsls r0, 2
+ ldr r1, _08039BBC
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_08039BBC: .4byte _08039BC0
+ .align 2, 0
+_08039BC0:
+ .4byte _08039C54
+ .4byte _08039C00
+ .4byte _08039C10
+ .4byte _08039C08
+ .4byte _08039C18
+ .4byte _08039C20
+ .4byte _08039C48
+ .4byte _08039C48
+ .4byte _08039C48
+ .4byte _08039C48
+ .4byte _08039C48
+ .4byte _08039C48
+ .4byte _08039C48
+ .4byte _08039C48
+ .4byte _08039C28
+ .4byte _08039C30
+_08039C00:
+ ldr r0, _08039C04
+ b _08039C32
+ .align 2, 0
+_08039C04: .4byte gUnknown_80E7914
+_08039C08:
+ ldr r0, _08039C0C
+ b _08039C32
+ .align 2, 0
+_08039C0C: .4byte gUnknown_80E7938
+_08039C10:
+ ldr r0, _08039C14
+ b _08039C32
+ .align 2, 0
+_08039C14: .4byte gUnknown_80E7994
+_08039C18:
+ ldr r0, _08039C1C
+ b _08039C32
+ .align 2, 0
+_08039C1C: .4byte gUnknown_80E79E4
+_08039C20:
+ ldr r0, _08039C24
+ b _08039C32
+ .align 2, 0
+_08039C24: .4byte gUnknown_80E7914
+_08039C28:
+ ldr r0, _08039C2C
+ b _08039C32
+ .align 2, 0
+_08039C2C: .4byte gUnknown_80E7914
+_08039C30:
+ ldr r0, _08039C40
+_08039C32:
+ ldr r3, _08039C44
+ movs r1, 0
+ movs r2, 0
+ bl sub_80141B4
+ b _08039C54
+ .align 2, 0
+_08039C40: .4byte gUnknown_80E7A48
+_08039C44: .4byte 0x00000101
+_08039C48:
+ ldr r0, _08039C58
+ ldr r3, _08039C5C
+ movs r1, 0
+ movs r2, 0
+ bl sub_80141B4
+_08039C54:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08039C58: .4byte gUnknown_80E7914
+_08039C5C: .4byte 0x00000101
+ thumb_func_end sub_8039BAC
+
+ thumb_func_start sub_8039C60
+sub_8039C60:
+ push {r4,r5,lr}
+ bl sub_80154F0
+ adds r4, r0, 0
+ ldr r5, _08039CBC
+ ldr r0, [r5]
+ adds r0, 0x38
+ movs r1, 0
+ movs r2, 0x30
+ bl MemoryFill8
+ cmp r4, 0x2
+ beq _08039CE6
+ cmp r4, 0x3
+ bne _08039D04
+ bl sub_80155F0
+ bl ResetUnusedInputStruct
+ ldr r0, [r5]
+ movs r1, 0xF6
+ lsls r1, 1
+ adds r0, r1
+ movs r1, 0x1
+ movs r2, 0x1
+ bl sub_800641C
+ ldr r1, [r5]
+ adds r0, r1, 0x1
+ adds r1, 0x38
+ bl sub_803D358
+ lsls r0, 24
+ cmp r0, 0
+ beq _08039CB4
+ ldr r0, [r5]
+ adds r0, 0x38
+ bl sub_80959C0
+ lsls r0, 24
+ cmp r0, 0
+ bne _08039CC0
+_08039CB4:
+ movs r0, 0x13
+ bl sub_803A1C0
+ b _08039D04
+ .align 2, 0
+_08039CBC: .4byte gUnknown_203B3E8
+_08039CC0:
+ ldr r0, [r5]
+ movs r2, 0xF0
+ lsls r2, 2
+ adds r1, r0, r2
+ adds r0, 0x38
+ ldm r0!, {r2-r4}
+ stm r1!, {r2-r4}
+ ldm r0!, {r3,r4}
+ stm r1!, {r3,r4}
+ ldr r0, [r5]
+ movs r1, 0x93
+ lsls r1, 3
+ adds r0, r1
+ movs r1, 0x1
+ strb r1, [r0]
+ movs r0, 0xD
+ bl sub_803A1C0
+ b _08039D04
+_08039CE6:
+ bl sub_80155F0
+ bl ResetUnusedInputStruct
+ ldr r0, [r5]
+ movs r2, 0xF6
+ lsls r2, 1
+ adds r0, r2
+ movs r1, 0x1
+ movs r2, 0x1
+ bl sub_800641C
+ movs r0, 0x5
+ bl sub_803A1C0
+_08039D04:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8039C60
+
+ thumb_func_start sub_8039D0C
+sub_8039D0C:
+ push {lr}
+ sub sp, 0x4
+ mov r0, sp
+ bl sub_80144A4
+ cmp r0, 0
+ bne _08039D20
+ movs r0, 0x12
+ bl sub_803A1C0
+_08039D20:
+ add sp, 0x4
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8039D0C
+
+ thumb_func_start sub_8039D28
+sub_8039D28:
+ push {r4,r5,lr}
+ bl sub_802D0E0
+ cmp r0, 0x3
+ bne _08039D62
+ bl sub_802D178
+ ldr r5, _08039D58
+ ldr r1, [r5]
+ movs r4, 0x93
+ lsls r4, 3
+ adds r1, r4
+ strb r0, [r1]
+ bl sub_802D184
+ ldr r0, [r5]
+ adds r0, r4
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _08039D5C
+ movs r0, 0xE
+ bl sub_803A1C0
+ b _08039D62
+ .align 2, 0
+_08039D58: .4byte gUnknown_203B3E8
+_08039D5C:
+ movs r0, 0x10
+ bl sub_803A1C0
+_08039D62:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8039D28
+
+ thumb_func_start sub_8039D68
+sub_8039D68:
+ push {lr}
+ sub sp, 0x4
+ mov r0, sp
+ bl sub_80144A4
+ cmp r0, 0
+ bne _08039D82
+ movs r0, 0xF
+ bl sub_803A1C0
+ movs r0, 0
+ bl sub_8012574
+_08039D82:
+ add sp, 0x4
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8039D68
+
+ thumb_func_start sub_8039D88
+sub_8039D88:
+ push {lr}
+ sub sp, 0x4
+ mov r0, sp
+ bl sub_80144A4
+ cmp r0, 0
+ bne _08039D9C
+ movs r0, 0x8
+ bl sub_803A1C0
+_08039D9C:
+ add sp, 0x4
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8039D88
+
+ thumb_func_start sub_8039DA4
+sub_8039DA4:
+ push {lr}
+ sub sp, 0x4
+ mov r0, sp
+ bl sub_80144A4
+ cmp r0, 0
+ bne _08039DC6
+ bl sub_8012600
+ lsls r0, 24
+ cmp r0, 0
+ bne _08039DC6
+ bl sub_8012750
+ movs r0, 0x10
+ bl sub_803A1C0
+_08039DC6:
+ add sp, 0x4
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8039DA4
+
+ thumb_func_start sub_8039DCC
+sub_8039DCC:
+ push {lr}
+ sub sp, 0x4
+ mov r0, sp
+ bl sub_80144A4
+ cmp r0, 0
+ bne _08039DE0
+ movs r0, 0x5
+ bl sub_803A1C0
+_08039DE0:
+ add sp, 0x4
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8039DCC
+
+ thumb_func_start sub_8039DE8
+sub_8039DE8:
+ push {lr}
+ sub sp, 0x4
+ mov r0, sp
+ bl sub_80144A4
+ cmp r0, 0
+ bne _08039E0E
+ ldr r0, [sp]
+ cmp r0, 0
+ beq _08039E08
+ cmp r0, 0x6
+ bne _08039E0E
+ movs r0, 0x11
+ bl sub_803A1C0
+ b _08039E0E
+_08039E08:
+ movs r0, 0x5
+ bl sub_803A1C0
+_08039E0E:
+ add sp, 0x4
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8039DE8
+
+ thumb_func_start nullsub_54
+nullsub_54:
+ bx lr
+ thumb_func_end nullsub_54
+
+ thumb_func_start sub_8039E18
+sub_8039E18:
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ sub sp, 0x14
+ ldr r1, _08039E38
+ ldr r0, [r1]
+ ldrb r0, [r0]
+ adds r6, r1, 0
+ cmp r0, 0x13
+ bls _08039E2E
+ b _0803A1AA
+_08039E2E:
+ lsls r0, 2
+ ldr r1, _08039E3C
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_08039E38: .4byte gUnknown_203B3E8
+_08039E3C: .4byte _08039E40
+ .align 2, 0
+_08039E40:
+ .4byte _08039E90
+ .4byte _08039EB8
+ .4byte _0803A1AA
+ .4byte _08039EC8
+ .4byte _08039EDC
+ .4byte _0803A1AA
+ .4byte _08039FF4
+ .4byte _08039FA4
+ .4byte _08039FCC
+ .4byte _0803A00C
+ .4byte _0803A1AA
+ .4byte _0803A1AA
+ .4byte _0803A1AA
+ .4byte _08039F04
+ .4byte _08039F68
+ .4byte _0803A1AA
+ .4byte _08039FAC
+ .4byte _0803A152
+ .4byte _0803A168
+ .4byte _0803A18E
+_08039E90:
+ ldr r0, _08039EB0
+ ldr r3, _08039EB4
+ movs r2, 0
+ str r2, [sp]
+ movs r1, 0x4
+ str r1, [sp, 0x4]
+ str r2, [sp, 0x8]
+ str r2, [sp, 0xC]
+ adds r1, 0xFD
+ str r1, [sp, 0x10]
+ movs r1, 0
+ movs r2, 0x1
+ bl sub_8014248
+ b _0803A1AA
+ .align 2, 0
+_08039EB0: .4byte gUnknown_80E7AC4
+_08039EB4: .4byte gUnknown_80E786C
+_08039EB8:
+ ldr r0, _08039EC0
+ ldr r3, _08039EC4
+ b _08039EE0
+ .align 2, 0
+_08039EC0: .4byte gUnknown_80E7AE0
+_08039EC4: .4byte gUnknown_80E7894
+_08039EC8:
+ bl ResetUnusedInputStruct
+ movs r0, 0
+ movs r1, 0x1
+ movs r2, 0x1
+ bl sub_800641C
+ bl sub_802EF48
+ b _0803A1AA
+_08039EDC:
+ ldr r0, _08039EFC
+ ldr r3, _08039F00
+_08039EE0:
+ movs r2, 0
+ str r2, [sp]
+ movs r1, 0x4
+ str r1, [sp, 0x4]
+ str r2, [sp, 0x8]
+ str r2, [sp, 0xC]
+ adds r1, 0xFD
+ str r1, [sp, 0x10]
+ movs r1, 0
+ movs r2, 0x3
+ bl sub_8014248
+ b _0803A1AA
+ .align 2, 0
+_08039EFC: .4byte gUnknown_80E7B14
+_08039F00: .4byte gUnknown_80E78D8
+_08039F04:
+ ldr r0, [r6]
+ ldr r2, _08039F3C
+ adds r1, r0, r2
+ movs r3, 0xF0
+ lsls r3, 2
+ adds r0, r3
+ ldm r0!, {r2-r4}
+ stm r1!, {r2-r4}
+ ldm r0!, {r2,r4}
+ stm r1!, {r2,r4}
+ ldr r2, [r6]
+ ldr r3, _08039F40
+ adds r0, r2, r3
+ ldrb r0, [r0]
+ cmp r0, 0x4
+ bne _08039F44
+ movs r4, 0x91
+ lsls r4, 3
+ adds r1, r2, r4
+ subs r3, 0xA2
+ adds r0, r2, r3
+ str r0, [r1]
+ adds r4, 0x4
+ adds r1, r2, r4
+ adds r3, 0x28
+ adds r0, r2, r3
+ str r0, [r1]
+ b _08039F54
+ .align 2, 0
+_08039F3C: .4byte 0x00000474
+_08039F40: .4byte 0x00000476
+_08039F44:
+ movs r4, 0x91
+ lsls r4, 3
+ adds r0, r2, r4
+ movs r1, 0
+ str r1, [r0]
+ ldr r3, _08039F60
+ adds r0, r2, r3
+ str r1, [r0]
+_08039F54:
+ ldr r0, [r6]
+ ldr r4, _08039F64
+ adds r0, r4
+ bl sub_802D098
+ b _0803A1AA
+ .align 2, 0
+_08039F60: .4byte 0x0000048c
+_08039F64: .4byte 0x00000474
+_08039F68:
+ ldr r1, [r6]
+ movs r2, 0x93
+ lsls r2, 3
+ adds r0, r1, r2
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _08039F9C
+ movs r3, 0x92
+ lsls r3, 3
+ adds r0, r1, r3
+ ldr r0, [r0]
+ cmp r0, 0x4
+ bne _08039F84
+ b _0803A1AA
+_08039F84:
+ cmp r0, 0x4
+ bgt _08039F8E
+ cmp r0, 0x3
+ beq _08039F94
+ b _0803A1AA
+_08039F8E:
+ cmp r0, 0x5
+ beq _08039F94
+ b _0803A1AA
+_08039F94:
+ ldr r0, _08039F98
+ b _0803A154
+ .align 2, 0
+_08039F98: .4byte gUnknown_80E7B48
+_08039F9C:
+ ldr r0, _08039FA0
+ b _0803A154
+ .align 2, 0
+_08039FA0: .4byte gUnknown_80E7B48
+_08039FA4:
+ ldr r0, _08039FA8
+ b _0803A154
+ .align 2, 0
+_08039FA8: .4byte gUnknown_80E7B68
+_08039FAC:
+ ldr r0, [r6]
+ movs r4, 0x93
+ lsls r4, 3
+ adds r0, r4
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _08039FC4
+ ldr r0, _08039FC0
+ b _0803A154
+ .align 2, 0
+_08039FC0: .4byte gUnknown_80E7B88
+_08039FC4:
+ ldr r0, _08039FC8
+ b _0803A154
+ .align 2, 0
+_08039FC8: .4byte gUnknown_80E7BC8
+_08039FCC:
+ ldr r0, _08039FEC
+ ldr r3, _08039FF0
+ movs r2, 0
+ str r2, [sp]
+ movs r1, 0x4
+ str r1, [sp, 0x4]
+ str r2, [sp, 0x8]
+ str r2, [sp, 0xC]
+ adds r1, 0xFD
+ str r1, [sp, 0x10]
+ movs r1, 0
+ movs r2, 0x6
+ bl sub_8014248
+ b _0803A1AA
+ .align 2, 0
+_08039FEC: .4byte gUnknown_80E7BEC
+_08039FF0: .4byte gUnknown_80E78F8
+_08039FF4:
+ movs r0, 0
+ bl nullsub_23
+ ldr r0, _0803A008
+ movs r1, 0
+ movs r2, 0
+ movs r3, 0
+ bl sub_80141B4
+ b _0803A1AA
+ .align 2, 0
+_0803A008: .4byte gUnknown_80E7C48
+_0803A00C:
+ ldr r0, [r6]
+ movs r1, 0x94
+ lsls r1, 2
+ mov r8, r1
+ add r0, r8
+ movs r1, 0
+ str r1, [r0]
+ bl sub_8011830
+ ldr r0, [r6]
+ movs r7, 0x93
+ lsls r7, 2
+ adds r0, r7
+ ldr r0, [r0]
+ bl sub_8037B28
+ ldr r2, [r6]
+ mov r3, r8
+ adds r1, r2, r3
+ str r0, [r1]
+ cmp r0, 0
+ beq _0803A03A
+ b _0803A14C
+_0803A03A:
+ adds r4, r7, 0
+ adds r0, r2, r4
+ ldr r0, [r0]
+ cmp r0, 0x9
+ beq _0803A04A
+ cmp r0, 0xA
+ beq _0803A0AA
+ b _0803A0DE
+_0803A04A:
+ movs r5, 0x95
+ lsls r5, 2
+ adds r0, r2, r5
+ movs r1, 0
+ movs r2, 0xB4
+ bl MemoryFill8
+ ldr r0, [r6]
+ movs r1, 0xEF
+ lsls r1, 2
+ adds r0, r1
+ ldrb r0, [r0]
+ bl sub_803B344
+ adds r4, r0, 0
+ ldr r1, [r4, 0x14]
+ cmp r1, 0
+ beq _0803A08C
+ ldr r0, [r6]
+ movs r2, 0x9A
+ lsls r2, 2
+ adds r0, r2
+ movs r2, 0x28
+ bl MemoryCopy8
+ ldr r0, [r6]
+ movs r3, 0xA4
+ lsls r3, 2
+ adds r0, r3
+ ldr r1, [r4, 0x18]
+ movs r2, 0x78
+ bl MemoryCopy8
+_0803A08C:
+ ldr r1, [r6]
+ adds r1, r5
+ adds r0, r4, 0
+ ldm r0!, {r2-r4}
+ stm r1!, {r2-r4}
+ ldm r0!, {r2,r4}
+ stm r1!, {r2,r4}
+ ldr r2, [r6]
+ adds r0, r2, r7
+ ldr r0, [r0]
+ adds r1, r2, r5
+ movs r3, 0xC2
+ lsls r3, 2
+ adds r2, r3
+ b _0803A0D4
+_0803A0AA:
+ movs r4, 0x95
+ lsls r4, 2
+ adds r0, r2, r4
+ movs r1, 0
+ movs r2, 0xB4
+ bl MemoryFill8
+ ldr r0, [r6]
+ movs r5, 0xC2
+ lsls r5, 2
+ adds r0, r5
+ movs r1, 0
+ movs r2, 0xB4
+ bl MemoryFill8
+ ldr r2, [r6]
+ adds r0, r2, r7
+ ldr r0, [r0]
+ adds r4, r2, r4
+ adds r2, r5
+ adds r1, r4, 0
+_0803A0D4:
+ bl sub_8037D64
+ ldr r1, [r6]
+ add r1, r8
+ str r0, [r1]
+_0803A0DE:
+ ldr r4, _0803A134
+ ldr r2, [r4]
+ movs r5, 0x94
+ lsls r5, 2
+ adds r0, r2, r5
+ ldr r0, [r0]
+ cmp r0, 0
+ bne _0803A14C
+ movs r1, 0x93
+ lsls r1, 2
+ adds r0, r2, r1
+ ldr r0, [r0]
+ cmp r0, 0xA
+ bhi _0803A14C
+ cmp r0, 0x9
+ bcc _0803A14C
+ movs r3, 0x95
+ lsls r3, 2
+ adds r1, r2, r3
+ adds r3, 0xB4
+ adds r2, r3
+ bl sub_80381F4
+ ldr r1, [r4]
+ adds r1, r5
+ str r0, [r1]
+ bl sub_800D588
+ lsls r0, 24
+ cmp r0, 0
+ beq _0803A138
+ ldr r1, [r4]
+ movs r4, 0xF0
+ lsls r4, 2
+ adds r0, r1, r4
+ movs r2, 0xC2
+ lsls r2, 2
+ adds r1, r2
+ movs r2, 0xB4
+ bl memcpy
+ b _0803A14C
+ .align 2, 0
+_0803A134: .4byte gUnknown_203B3E8
+_0803A138:
+ ldr r1, [r4]
+ movs r3, 0xF0
+ lsls r3, 2
+ adds r0, r1, r3
+ movs r4, 0x95
+ lsls r4, 2
+ adds r1, r4
+ movs r2, 0xB4
+ bl memcpy
+_0803A14C:
+ bl xxx_call_start_bg_music
+ b _0803A1AA
+_0803A152:
+ ldr r0, _0803A160
+_0803A154:
+ ldr r3, _0803A164
+ movs r1, 0
+ movs r2, 0
+ bl sub_80141B4
+ b _0803A1AA
+ .align 2, 0
+_0803A160: .4byte gUnknown_80E7C98
+_0803A164: .4byte 0x00000101
+_0803A168:
+ ldr r0, [r6]
+ movs r1, 0xF6
+ lsls r1, 1
+ adds r0, r1
+ bl sub_8006518
+ bl ResetUnusedInputStruct
+ movs r0, 0
+ movs r1, 0x1
+ movs r2, 0x1
+ bl sub_800641C
+ ldr r1, [r6]
+ adds r1, 0x1
+ movs r0, 0x5
+ bl sub_80151C0
+ b _0803A1AA
+_0803A18E:
+ ldr r0, _0803A1B8
+ ldr r3, _0803A1BC
+ movs r2, 0
+ str r2, [sp]
+ movs r1, 0x4
+ str r1, [sp, 0x4]
+ str r2, [sp, 0x8]
+ str r2, [sp, 0xC]
+ adds r1, 0xFD
+ str r1, [sp, 0x10]
+ movs r1, 0
+ movs r2, 0x6
+ bl sub_8014248
+_0803A1AA:
+ add sp, 0x14
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0803A1B8: .4byte gUnknown_80E7CC4
+_0803A1BC: .4byte gUnknown_80E78F8
+ thumb_func_end sub_8039E18
+
+ thumb_func_start sub_803A1C0
+sub_803A1C0:
+ push {lr}
+ ldr r1, _0803A1D4
+ ldr r1, [r1]
+ strb r0, [r1]
+ bl nullsub_54
+ bl sub_8039E18
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0803A1D4: .4byte gUnknown_203B3E8
+ thumb_func_end sub_803A1C0
+
+ thumb_func_start sub_803A1D8
+sub_803A1D8:
+ movs r0, 0x1
+ bx lr
+ thumb_func_end sub_803A1D8
+
+ thumb_func_start sub_803A1DC
+sub_803A1DC:
+ movs r0, 0
+ bx lr
+ thumb_func_end sub_803A1DC
+
+ thumb_func_start nullsub_55
+nullsub_55:
+ bx lr
+ thumb_func_end nullsub_55
+
+ thumb_func_start sub_803A1E4
+sub_803A1E4:
+ movs r0, 0x1
+ bx lr
+ thumb_func_end sub_803A1E4
+
+ thumb_func_start sub_803A1E8
+sub_803A1E8:
+ movs r0, 0x2
+ bx lr
+ thumb_func_end sub_803A1E8
+
+ thumb_func_start sub_803A1EC
+sub_803A1EC:
+ push {lr}
+ bl ResetUnusedInputStruct
+ movs r0, 0
+ movs r1, 0x1
+ movs r2, 0x1
+ bl sub_800641C
+ pop {r0}
+ bx r0
+ thumb_func_end sub_803A1EC
+
+ thumb_func_start CreateDebugMenu
+CreateDebugMenu:
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ ldr r5, _0803A270
+ ldr r0, [r5]
+ cmp r0, 0
+ bne _0803A224
+ movs r4, 0xD2
+ lsls r4, 1
+ adds r0, r4, 0
+ movs r1, 0x8
+ bl MemoryAlloc
+ str r0, [r5]
+ movs r1, 0
+ adds r2, r4, 0
+ bl MemoryFill8
+_0803A224:
+ mov r12, r5
+ movs r0, 0xA0
+ lsls r0, 1
+ mov r8, r0
+ ldr r4, _0803A274
+ movs r3, 0
+ movs r2, 0x3
+_0803A232:
+ mov r5, r12
+ ldr r1, [r5]
+ adds r1, r3
+ add r1, r8
+ adds r0, r4, 0
+ ldm r0!, {r5-r7}
+ stm r1!, {r5-r7}
+ ldm r0!, {r5-r7}
+ stm r1!, {r5-r7}
+ adds r3, 0x18
+ subs r2, 0x1
+ cmp r2, 0
+ bge _0803A232
+ bl ResetUnusedInputStruct
+ ldr r0, _0803A270
+ ldr r0, [r0]
+ movs r6, 0xA0
+ lsls r6, 1
+ adds r0, r6
+ movs r1, 0x1
+ movs r2, 0x1
+ bl sub_800641C
+ bl SetDebugMenuItems
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0803A270: .4byte gUnknown_203B3EC
+_0803A274: .4byte gUnknown_80E7D40
+ thumb_func_end CreateDebugMenu
+
+ thumb_func_start DeleteDebugMenu
+DeleteDebugMenu:
+ push {r4,lr}
+ bl ResetUnusedInputStruct
+ movs r0, 0
+ movs r1, 0x1
+ movs r2, 0x1
+ bl sub_800641C
+ ldr r4, _0803A2A0
+ ldr r0, [r4]
+ cmp r0, 0
+ beq _0803A298
+ bl MemoryFree
+ movs r0, 0
+ str r0, [r4]
+_0803A298:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0803A2A0: .4byte gUnknown_203B3EC
+ thumb_func_end DeleteDebugMenu
+
+ thumb_func_start sub_803A2A4
+sub_803A2A4:
+ push {r4,r5,lr}
+ sub sp, 0x4
+ ldr r4, _0803A2D4
+ movs r0, 0xB
+ str r0, [sp]
+ ldr r5, _0803A2D8
+ ldr r0, [r5]
+ bl sub_8012FD8
+ lsls r0, 24
+ cmp r0, 0
+ bne _0803A2C4
+ ldr r0, [r5]
+ mov r1, sp
+ bl sub_8013114
+_0803A2C4:
+ ldr r0, [sp]
+ cmp r0, 0xB
+ bhi _0803A34E
+ lsls r0, 2
+ ldr r1, _0803A2DC
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_0803A2D4: .4byte 0x0000ffdc
+_0803A2D8: .4byte gUnknown_203B3EC
+_0803A2DC: .4byte _0803A2E0
+ .align 2, 0
+_0803A2E0:
+ .4byte _0803A310
+ .4byte _0803A314
+ .4byte _0803A318
+ .4byte _0803A31C
+ .4byte _0803A320
+ .4byte _0803A324
+ .4byte _0803A328
+ .4byte _0803A34E
+ .4byte _0803A34E
+ .4byte _0803A330
+ .4byte _0803A344
+ .4byte _0803A34C
+_0803A310:
+ movs r4, 0x2F
+ b _0803A34E
+_0803A314:
+ movs r4, 0x30
+ b _0803A34E
+_0803A318:
+ movs r4, 0x31
+ b _0803A34E
+_0803A31C:
+ movs r4, 0x32
+ b _0803A34E
+_0803A320:
+ movs r4, 0x33
+ b _0803A34E
+_0803A324:
+ movs r4, 0x34
+ b _0803A34E
+_0803A328:
+ bl sub_803A3BC
+ movs r4, 0x1
+ b _0803A34E
+_0803A330:
+ movs r4, 0
+_0803A332:
+ lsls r0, r4, 24
+ lsrs r0, 24
+ bl sub_80976F8
+ adds r4, 0x1
+ cmp r4, 0x1F
+ ble _0803A332
+ movs r4, 0x1
+ b _0803A34E
+_0803A344:
+ bl sub_803A3A0
+ movs r4, 0x1
+ b _0803A34E
+_0803A34C:
+ ldr r4, _0803A358
+_0803A34E:
+ adds r0, r4, 0
+ add sp, 0x4
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0803A358: .4byte 0x0000ffdc
+ thumb_func_end sub_803A2A4
+
+ thumb_func_start SetDebugMenuItems
+SetDebugMenuItems:
+ push {r4,lr}
+ sub sp, 0x10
+ ldr r4, _0803A394
+ ldr r0, [r4]
+ movs r2, 0xA0
+ lsls r2, 1
+ adds r1, r0, r2
+ ldr r3, _0803A398
+ ldr r2, _0803A39C
+ str r2, [sp]
+ movs r2, 0x1
+ str r2, [sp, 0x4]
+ movs r2, 0xD
+ str r2, [sp, 0x8]
+ movs r2, 0
+ str r2, [sp, 0xC]
+ bl SetMenuItems
+ ldr r0, [r4]
+ movs r1, 0
+ movs r2, 0x1
+ bl sub_8035CF4
+ add sp, 0x10
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0803A394: .4byte gUnknown_203B3EC
+_0803A398: .4byte gUnknown_80E7D58
+_0803A39C: .4byte gDebugMenuItems
+ thumb_func_end SetDebugMenuItems
+
+ thumb_func_start sub_803A3A0
+sub_803A3A0:
+ push {lr}
+ ldr r0, _0803A3B8
+ ldr r0, [r0]
+ movs r1, 0xA0
+ lsls r1, 1
+ adds r0, r1
+ movs r1, 0
+ bl sub_8035CC0
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0803A3B8: .4byte gUnknown_203B3EC
+ thumb_func_end sub_803A3A0
+
+ thumb_func_start sub_803A3BC
+sub_803A3BC:
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x84
+ movs r5, 0x1
+ add r4, sp, 0x60
+ add r6, sp, 0x68
+ add r0, sp, 0x7C
+ mov r8, r0
+ add r0, sp, 0x80
+ mov r10, r0
+_0803A3D6:
+ lsls r0, r5, 24
+ lsrs r0, 24
+ bl UnlockFriendArea
+ adds r5, 0x1
+ cmp r5, 0x39
+ ble _0803A3D6
+ movs r5, 0
+ adds r7, r4, 0
+_0803A3E8:
+ movs r0, 0
+ mov r9, r0
+ ldr r0, _0803A454
+ str r0, [sp, 0x7C]
+ adds r5, 0x1
+ lsls r4, r5, 16
+ asrs r4, 16
+ adds r0, r7, 0
+ movs r1, 0
+ movs r2, 0x8
+ bl memset
+ movs r0, 0x27
+ strh r0, [r7]
+ adds r0, r6, 0
+ adds r1, r4, 0
+ bl sub_808D8BC
+ adds r0, r6, 0
+ adds r1, r6, 0
+ bl sub_80922F4
+ movs r0, 0x40
+ strb r0, [r6]
+ mov r0, r8
+ str r0, [sp]
+ str r7, [sp, 0x4]
+ add r0, sp, 0x8
+ adds r1, r4, 0
+ adds r2, r6, 0
+ movs r3, 0x43
+ bl sub_808CFD0
+ add r0, sp, 0x8
+ bl sub_808D1DC
+ ldr r0, _0803A458
+ cmp r5, r0
+ ble _0803A3E8
+ mov r0, r9
+ str r0, [sp, 0x80]
+ mov r0, r10
+ movs r1, 0x1
+ bl sub_801203C
+ add sp, 0x84
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0803A454: .4byte 0x00001006
+_0803A458: .4byte 0x0000012b
+ thumb_func_end sub_803A3BC
+
+ thumb_func_start sub_803A45C
+sub_803A45C:
+ push {r4,lr}
+ bl ResetUnusedInputStruct
+ movs r0, 0
+ movs r1, 0x1
+ movs r2, 0x1
+ bl sub_800641C
+ ldr r4, _0803A488
+ movs r0, 0x9C
+ lsls r0, 1
+ movs r1, 0x8
+ bl MemoryAlloc
+ str r0, [r4]
+ movs r0, 0
+ bl sub_803A504
+ movs r0, 0x1
+ pop {r4}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0803A488: .4byte gUnknown_203B3F0
+ thumb_func_end sub_803A45C
+
+ thumb_func_start sub_803A48C
+sub_803A48C:
+ push {lr}
+ ldr r0, _0803A4A4
+ ldr r0, [r0]
+ ldr r0, [r0]
+ cmp r0, 0x5
+ bhi _0803A4E0
+ lsls r0, 2
+ ldr r1, _0803A4A8
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_0803A4A4: .4byte gUnknown_203B3F0
+_0803A4A8: .4byte _0803A4AC
+ .align 2, 0
+_0803A4AC:
+ .4byte _0803A4C4
+ .4byte _0803A4C4
+ .4byte _0803A4CA
+ .4byte _0803A4D0
+ .4byte _0803A4D6
+ .4byte _0803A4DC
+_0803A4C4:
+ bl sub_803A740
+ b _0803A4E0
+_0803A4CA:
+ bl sub_803A7B0
+ b _0803A4E0
+_0803A4D0:
+ bl sub_803A810
+ b _0803A4E0
+_0803A4D6:
+ bl sub_803A86C
+ b _0803A4E0
+_0803A4DC:
+ movs r0, 0x3
+ b _0803A4E2
+_0803A4E0:
+ movs r0, 0
+_0803A4E2:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_803A48C
+
+ thumb_func_start sub_803A4E8
+sub_803A4E8:
+ push {r4,lr}
+ ldr r4, _0803A500
+ ldr r0, [r4]
+ cmp r0, 0
+ beq _0803A4FA
+ bl MemoryFree
+ movs r0, 0
+ str r0, [r4]
+_0803A4FA:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0803A500: .4byte gUnknown_203B3F0
+ thumb_func_end sub_803A4E8
+
+ thumb_func_start sub_803A504
+sub_803A504:
+ push {lr}
+ ldr r1, _0803A518
+ ldr r1, [r1]
+ str r0, [r1]
+ bl sub_803A51C
+ bl sub_803A5A0
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0803A518: .4byte gUnknown_203B3F0
+ thumb_func_end sub_803A504
+
+ thumb_func_start sub_803A51C
+sub_803A51C:
+ push {r4-r7,lr}
+ ldr r4, _0803A53C
+ ldr r0, [r4]
+ adds r0, 0xD8
+ bl sub_8006518
+ ldr r1, [r4]
+ ldr r0, [r1]
+ cmp r0, 0x2
+ beq _0803A544
+ cmp r0, 0x3
+ bne _0803A55C
+ adds r1, 0xF0
+ ldr r0, _0803A540
+ b _0803A54C
+ .align 2, 0
+_0803A53C: .4byte gUnknown_203B3F0
+_0803A540: .4byte gUnknown_80E7E64
+_0803A544:
+ movs r0, 0x84
+ lsls r0, 1
+ adds r1, r0
+ ldr r0, _0803A558
+_0803A54C:
+ ldm r0!, {r2-r4}
+ stm r1!, {r2-r4}
+ ldm r0!, {r5-r7}
+ stm r1!, {r5-r7}
+ b _0803A57E
+ .align 2, 0
+_0803A558: .4byte gUnknown_80E7E4C
+_0803A55C:
+ mov r12, r4
+ ldr r4, _0803A598
+ movs r3, 0
+ movs r2, 0x3
+_0803A564:
+ mov r0, r12
+ ldr r1, [r0]
+ adds r1, r3
+ adds r1, 0xD8
+ adds r0, r4, 0
+ ldm r0!, {r5-r7}
+ stm r1!, {r5-r7}
+ ldm r0!, {r5-r7}
+ stm r1!, {r5-r7}
+ adds r3, 0x18
+ subs r2, 0x1
+ cmp r2, 0
+ bge _0803A564
+_0803A57E:
+ bl ResetUnusedInputStruct
+ ldr r0, _0803A59C
+ ldr r0, [r0]
+ adds r0, 0xD8
+ movs r1, 0x1
+ movs r2, 0x1
+ bl sub_800641C
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0803A598: .4byte gUnknown_80E7E34
+_0803A59C: .4byte gUnknown_203B3F0
+ thumb_func_end sub_803A51C
+
+ thumb_func_start sub_803A5A0
+sub_803A5A0:
+ push {lr}
+ sub sp, 0xC
+ ldr r1, _0803A5BC
+ ldr r0, [r1]
+ ldr r0, [r0]
+ adds r2, r1, 0
+ cmp r0, 0x5
+ bhi _0803A68A
+ lsls r0, 2
+ ldr r1, _0803A5C0
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_0803A5BC: .4byte gUnknown_203B3F0
+_0803A5C0: .4byte _0803A5C4
+ .align 2, 0
+_0803A5C4:
+ .4byte _0803A5DC
+ .4byte _0803A5EA
+ .4byte _0803A5F2
+ .4byte _0803A61C
+ .4byte _0803A678
+ .4byte _0803A68A
+_0803A5DC:
+ movs r0, 0x2
+ movs r1, 0x3
+ movs r2, 0
+ movs r3, 0xA
+ bl sub_801C8C4
+ b _0803A68A
+_0803A5EA:
+ movs r0, 0x1
+ bl sub_801CB5C
+ b _0803A68A
+_0803A5F2:
+ bl sub_801CCD8
+ bl sub_803A6F0
+ ldr r0, _0803A618
+ ldr r2, [r0]
+ adds r0, r2, 0
+ adds r0, 0x4C
+ adds r1, r2, 0
+ adds r1, 0xC
+ ldr r2, [r2, 0x8]
+ str r2, [sp]
+ movs r2, 0x2
+ str r2, [sp, 0x4]
+ movs r2, 0
+ movs r3, 0
+ bl sub_8012D60
+ b _0803A68A
+ .align 2, 0
+_0803A618: .4byte gUnknown_203B3F0
+_0803A61C:
+ ldr r3, [r2]
+ adds r1, r3, 0
+ adds r1, 0xAC
+ movs r0, 0x3
+ str r0, [r1]
+ subs r1, 0x8
+ movs r0, 0
+ str r0, [r1]
+ adds r1, 0x4
+ ldr r0, _0803A670
+ str r0, [r1]
+ adds r2, r3, 0
+ adds r2, 0xA0
+ ldr r0, _0803A674
+ ldr r1, [r0]
+ ldrb r0, [r3, 0x4]
+ lsls r0, 1
+ adds r1, 0x50
+ adds r1, r0
+ ldrh r0, [r1]
+ str r0, [r2]
+ adds r1, r3, 0
+ adds r1, 0xB0
+ movs r0, 0x1
+ str r0, [r1]
+ adds r1, 0x4
+ adds r0, r3, 0
+ adds r0, 0xF0
+ str r0, [r1]
+ adds r1, 0x4
+ movs r0, 0x2C
+ str r0, [r1]
+ adds r1, 0x4
+ movs r0, 0x12
+ str r0, [r1]
+ adds r0, r3, 0
+ adds r0, 0x9C
+ bl sub_8013AA0
+ bl sub_803A690
+ b _0803A68A
+ .align 2, 0
+_0803A670: .4byte 0x000003e7
+_0803A674: .4byte gUnknown_203B460
+_0803A678:
+ ldr r0, [r2]
+ ldrb r1, [r0, 0x4]
+ add r0, sp, 0x8
+ movs r2, 0
+ bl sub_8090A8C
+ add r0, sp, 0x8
+ bl sub_801B3C0
+_0803A68A:
+ add sp, 0xC
+ pop {r0}
+ bx r0
+ thumb_func_end sub_803A5A0
+
+ thumb_func_start sub_803A690
+sub_803A690:
+ push {r4,lr}
+ sub sp, 0x4
+ ldr r4, _0803A6E8
+ ldr r0, [r4]
+ adds r0, 0xB0
+ ldr r0, [r0]
+ bl sub_8008C54
+ ldr r0, [r4]
+ adds r0, 0xB0
+ ldr r0, [r0]
+ bl sub_80073B8
+ ldr r2, _0803A6EC
+ ldr r0, [r4]
+ adds r0, 0xB0
+ ldr r3, [r0]
+ movs r0, 0
+ str r0, [sp]
+ movs r0, 0x4
+ movs r1, 0
+ bl xxx_call_draw_string
+ ldr r0, [r4]
+ adds r0, 0x9C
+ bl sub_8013C68
+ ldr r0, [r4]
+ adds r0, 0xB0
+ ldr r0, [r0]
+ bl sub_80073E0
+ bl sub_801CCD8
+ ldr r0, [r4]
+ adds r0, 0x4C
+ movs r1, 0
+ bl sub_8012EA4
+ add sp, 0x4
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0803A6E8: .4byte gUnknown_203B3F0
+_0803A6EC: .4byte gUnknown_80E7E7C
+ thumb_func_end sub_803A690
+
+ thumb_func_start sub_803A6F0
+sub_803A6F0:
+ push {r4,lr}
+ ldr r4, _0803A734
+ ldr r1, [r4]
+ ldr r0, _0803A738
+ str r0, [r1, 0xC]
+ movs r0, 0x2
+ str r0, [r1, 0x10]
+ str r0, [r1, 0x8]
+ ldrb r0, [r1, 0x4]
+ bl sub_8091524
+ lsls r0, 24
+ cmp r0, 0
+ bne _0803A718
+ ldr r0, [r4]
+ movs r1, 0x1
+ negs r1, r1
+ str r1, [r0, 0x10]
+ movs r1, 0x3
+ str r1, [r0, 0x8]
+_0803A718:
+ ldr r1, [r4]
+ movs r2, 0x1
+ ldr r0, _0803A73C
+ ldr r0, [r0]
+ str r0, [r1, 0x14]
+ movs r0, 0x3
+ str r0, [r1, 0x18]
+ movs r0, 0
+ str r0, [r1, 0x1C]
+ str r2, [r1, 0x20]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0803A734: .4byte gUnknown_203B3F0
+_0803A738: .4byte gUnknown_80E7E7C
+_0803A73C: .4byte gUnknown_80D4970
+ thumb_func_end sub_803A6F0
+
+ thumb_func_start sub_803A740
+sub_803A740:
+ push {lr}
+ movs r0, 0x1
+ bl sub_801CA08
+ cmp r0, 0x4
+ bhi _0803A7AA
+ lsls r0, 2
+ ldr r1, _0803A758
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_0803A758: .4byte _0803A75C
+ .align 2, 0
+_0803A75C:
+ .4byte _0803A7AA
+ .4byte _0803A7AA
+ .4byte _0803A7A0
+ .4byte _0803A770
+ .4byte _0803A788
+_0803A770:
+ bl sub_801CB24
+ ldr r1, _0803A784
+ ldr r1, [r1]
+ strb r0, [r1, 0x4]
+ movs r0, 0x2
+ bl sub_803A504
+ b _0803A7AA
+ .align 2, 0
+_0803A784: .4byte gUnknown_203B3F0
+_0803A788:
+ bl sub_801CB24
+ ldr r1, _0803A79C
+ ldr r1, [r1]
+ strb r0, [r1, 0x4]
+ movs r0, 0x4
+ bl sub_803A504
+ b _0803A7AA
+ .align 2, 0
+_0803A79C: .4byte gUnknown_203B3F0
+_0803A7A0:
+ bl sub_801CBB8
+ movs r0, 0x5
+ bl sub_803A504
+_0803A7AA:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_803A740
+
+ thumb_func_start sub_803A7B0
+sub_803A7B0:
+ push {r4,lr}
+ sub sp, 0x4
+ movs r0, 0
+ str r0, [sp]
+ bl sub_801CA08
+ ldr r4, _0803A7E8
+ ldr r0, [r4]
+ adds r0, 0x4C
+ bl sub_8012FD8
+ lsls r0, 24
+ cmp r0, 0
+ bne _0803A7D6
+ ldr r0, [r4]
+ adds r0, 0x4C
+ mov r1, sp
+ bl sub_8013114
+_0803A7D6:
+ ldr r0, [sp]
+ cmp r0, 0x2
+ beq _0803A7F2
+ cmp r0, 0x2
+ bgt _0803A7EC
+ cmp r0, 0x1
+ beq _0803A802
+ b _0803A808
+ .align 2, 0
+_0803A7E8: .4byte gUnknown_203B3F0
+_0803A7EC:
+ cmp r0, 0x3
+ beq _0803A7FA
+ b _0803A808
+_0803A7F2:
+ movs r0, 0x3
+ bl sub_803A504
+ b _0803A808
+_0803A7FA:
+ movs r0, 0x4
+ bl sub_803A504
+ b _0803A808
+_0803A802:
+ movs r0, 0x1
+ bl sub_803A504
+_0803A808:
+ add sp, 0x4
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_803A7B0
+
+ thumb_func_start sub_803A810
+sub_803A810:
+ push {r4,lr}
+ movs r0, 0
+ bl sub_801CA08
+ ldr r4, _0803A838
+ ldr r0, [r4]
+ adds r0, 0x4C
+ bl sub_8012FD8
+ ldr r0, [r4]
+ adds r0, 0x9C
+ bl sub_8013BBC
+ cmp r0, 0x2
+ beq _0803A854
+ cmp r0, 0x2
+ bhi _0803A83C
+ cmp r0, 0x1
+ beq _0803A860
+ b _0803A864
+ .align 2, 0
+_0803A838: .4byte gUnknown_203B3F0
+_0803A83C:
+ cmp r0, 0x3
+ bne _0803A864
+ ldr r0, _0803A85C
+ ldr r2, [r0]
+ ldr r1, [r4]
+ ldrb r0, [r1, 0x4]
+ lsls r0, 1
+ adds r2, 0x50
+ adds r2, r0
+ adds r1, 0x9C
+ ldr r0, [r1]
+ strh r0, [r2]
+_0803A854:
+ movs r0, 0x1
+ bl sub_803A504
+ b _0803A864
+ .align 2, 0
+_0803A85C: .4byte gUnknown_203B460
+_0803A860:
+ bl sub_803A690
+_0803A864:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_803A810
+
+ thumb_func_start sub_803A86C
+sub_803A86C:
+ push {lr}
+ bl sub_801B410
+ cmp r0, 0x1
+ bls _0803A884
+ cmp r0, 0x3
+ bhi _0803A884
+ bl sub_801B450
+ movs r0, 0x1
+ bl sub_803A504
+_0803A884:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_803A86C
+
+ thumb_func_start sub_803A888
+sub_803A888:
+ push {r4,lr}
+ bl ResetUnusedInputStruct
+ movs r0, 0
+ movs r1, 0x1
+ movs r2, 0x1
+ bl sub_800641C
+ ldr r4, _0803A8B4
+ movs r0, 0xFC
+ movs r1, 0x8
+ bl MemoryAlloc
+ str r0, [r4]
+ movs r0, 0
+ bl sub_803A924
+ movs r0, 0x1
+ pop {r4}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0803A8B4: .4byte gUnknown_203B3F4
+ thumb_func_end sub_803A888
+
+ thumb_func_start sub_803A8B8
+sub_803A8B8:
+ push {lr}
+ ldr r0, _0803A8D0
+ ldr r0, [r0]
+ ldr r0, [r0]
+ cmp r0, 0x4
+ bhi _0803A902
+ lsls r0, 2
+ ldr r1, _0803A8D4
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_0803A8D0: .4byte gUnknown_203B3F4
+_0803A8D4: .4byte _0803A8D8
+ .align 2, 0
+_0803A8D8:
+ .4byte _0803A8EC
+ .4byte _0803A8EC
+ .4byte _0803A8F2
+ .4byte _0803A8F8
+ .4byte _0803A8FE
+_0803A8EC:
+ bl sub_803AAC4
+ b _0803A902
+_0803A8F2:
+ bl sub_803AB34
+ b _0803A902
+_0803A8F8:
+ bl sub_803ABAC
+ b _0803A902
+_0803A8FE:
+ movs r0, 0x3
+ b _0803A904
+_0803A902:
+ movs r0, 0
+_0803A904:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_803A8B8
+
+ thumb_func_start sub_803A908
+sub_803A908:
+ push {r4,lr}
+ ldr r4, _0803A920
+ ldr r0, [r4]
+ cmp r0, 0
+ beq _0803A91A
+ bl MemoryFree
+ movs r0, 0
+ str r0, [r4]
+_0803A91A:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0803A920: .4byte gUnknown_203B3F4
+ thumb_func_end sub_803A908
+
+ thumb_func_start sub_803A924
+sub_803A924:
+ push {lr}
+ ldr r1, _0803A938
+ ldr r1, [r1]
+ str r0, [r1]
+ bl sub_803A93C
+ bl sub_803A9AC
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0803A938: .4byte gUnknown_203B3F4
+ thumb_func_end sub_803A924
+
+ thumb_func_start sub_803A93C
+sub_803A93C:
+ push {r4-r7,lr}
+ ldr r4, _0803A960
+ ldr r0, [r4]
+ adds r0, 0x9C
+ bl sub_8006518
+ ldr r1, [r4]
+ ldr r0, [r1]
+ cmp r0, 0x2
+ bne _0803A968
+ adds r1, 0xCC
+ ldr r0, _0803A964
+ ldm r0!, {r2-r4}
+ stm r1!, {r2-r4}
+ ldm r0!, {r5-r7}
+ stm r1!, {r5-r7}
+ b _0803A98A
+ .align 2, 0
+_0803A960: .4byte gUnknown_203B3F4
+_0803A964: .4byte gUnknown_80E7EA4
+_0803A968:
+ mov r12, r4
+ ldr r4, _0803A9A4
+ movs r3, 0
+ movs r2, 0x3
+_0803A970:
+ mov r0, r12
+ ldr r1, [r0]
+ adds r1, r3
+ adds r1, 0x9C
+ adds r0, r4, 0
+ ldm r0!, {r5-r7}
+ stm r1!, {r5-r7}
+ ldm r0!, {r5-r7}
+ stm r1!, {r5-r7}
+ adds r3, 0x18
+ subs r2, 0x1
+ cmp r2, 0
+ bge _0803A970
+_0803A98A:
+ bl ResetUnusedInputStruct
+ ldr r0, _0803A9A8
+ ldr r0, [r0]
+ adds r0, 0x9C
+ movs r1, 0x1
+ movs r2, 0x1
+ bl sub_800641C
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0803A9A4: .4byte gUnknown_80E7E8C
+_0803A9A8: .4byte gUnknown_203B3F4
+ thumb_func_end sub_803A93C
+
+ thumb_func_start sub_803A9AC
+sub_803A9AC:
+ push {lr}
+ sub sp, 0x8
+ ldr r1, _0803A9C8
+ ldr r0, [r1]
+ ldr r0, [r0]
+ adds r2, r1, 0
+ cmp r0, 0x4
+ bhi _0803AA2C
+ lsls r0, 2
+ ldr r1, _0803A9CC
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_0803A9C8: .4byte gUnknown_203B3F4
+_0803A9CC: .4byte _0803A9D0
+ .align 2, 0
+_0803A9D0:
+ .4byte _0803A9E4
+ .4byte _0803A9EE
+ .4byte _0803A9F6
+ .4byte _0803AA20
+ .4byte _0803AA2C
+_0803A9E4:
+ movs r0, 0
+ movs r1, 0x3
+ bl sub_80211AC
+ b _0803AA2C
+_0803A9EE:
+ movs r0, 0x1
+ bl sub_8021354
+ b _0803AA2C
+_0803A9F6:
+ bl sub_8021494
+ bl sub_803AA34
+ ldr r0, _0803AA1C
+ ldr r2, [r0]
+ adds r0, r2, 0
+ adds r0, 0x4C
+ adds r1, r2, 0
+ adds r1, 0xC
+ ldr r2, [r2, 0x8]
+ str r2, [sp]
+ movs r2, 0x2
+ str r2, [sp, 0x4]
+ movs r2, 0
+ movs r3, 0
+ bl sub_8012D60
+ b _0803AA2C
+ .align 2, 0
+_0803AA1C: .4byte gUnknown_203B3F4
+_0803AA20:
+ ldr r0, [r2]
+ ldrb r0, [r0, 0x4]
+ movs r1, 0x1
+ movs r2, 0
+ bl sub_8021774
+_0803AA2C:
+ add sp, 0x8
+ pop {r0}
+ bx r0
+ thumb_func_end sub_803A9AC
+
+ thumb_func_start sub_803AA34
+sub_803AA34:
+ push {r4,r5,lr}
+ movs r4, 0
+ ldr r0, _0803AA64
+ ldr r1, [r0]
+ ldr r2, _0803AA68
+ ldr r3, [r2]
+ ldrb r0, [r3, 0x4]
+ adds r1, r0
+ ldrb r0, [r1]
+ adds r5, r2, 0
+ cmp r0, 0
+ beq _0803AA7A
+ ldr r0, _0803AA6C
+ str r0, [r3, 0xC]
+ bl sub_803ABC8
+ lsls r0, 24
+ cmp r0, 0
+ beq _0803AA70
+ ldr r1, [r5]
+ movs r0, 0x3
+ str r0, [r1, 0x10]
+ b _0803AA82
+ .align 2, 0
+_0803AA64: .4byte gFriendAreas
+_0803AA68: .4byte gUnknown_203B3F4
+_0803AA6C: .4byte gUnknown_80E7EBC
+_0803AA70:
+ ldr r1, [r5]
+ movs r0, 0x1
+ negs r0, r0
+ str r0, [r1, 0x10]
+ b _0803AA82
+_0803AA7A:
+ ldr r0, _0803AABC
+ str r0, [r3, 0xC]
+ movs r0, 0x2
+ str r0, [r3, 0x10]
+_0803AA82:
+ adds r4, 0x1
+ ldr r5, [r5]
+ mov r12, r5
+ lsls r1, r4, 3
+ mov r3, r12
+ adds r3, 0xC
+ adds r2, r3, r1
+ ldr r0, _0803AAC0
+ ldr r0, [r0]
+ str r0, [r2]
+ mov r2, r12
+ adds r2, 0x10
+ adds r1, r2, r1
+ movs r0, 0x4
+ str r0, [r1]
+ adds r4, 0x1
+ lsls r1, r4, 3
+ adds r3, r1
+ movs r0, 0
+ str r0, [r3]
+ adds r2, r1
+ movs r0, 0x1
+ str r0, [r2]
+ mov r1, r12
+ ldr r0, [r1, 0x10]
+ str r0, [r1, 0x8]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0803AABC: .4byte gUnknown_80E7EC4
+_0803AAC0: .4byte gUnknown_80D4970
+ thumb_func_end sub_803AA34
+
+ thumb_func_start sub_803AAC4
+sub_803AAC4:
+ push {lr}
+ movs r0, 0x1
+ bl sub_8021274
+ cmp r0, 0x4
+ bhi _0803AB2E
+ lsls r0, 2
+ ldr r1, _0803AADC
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_0803AADC: .4byte _0803AAE0
+ .align 2, 0
+_0803AAE0:
+ .4byte _0803AB2E
+ .4byte _0803AB2E
+ .4byte _0803AB24
+ .4byte _0803AAF4
+ .4byte _0803AB0C
+_0803AAF4:
+ bl sub_802132C
+ ldr r1, _0803AB08
+ ldr r1, [r1]
+ strb r0, [r1, 0x4]
+ movs r0, 0x2
+ bl sub_803A924
+ b _0803AB2E
+ .align 2, 0
+_0803AB08: .4byte gUnknown_203B3F4
+_0803AB0C:
+ bl sub_802132C
+ ldr r1, _0803AB20
+ ldr r1, [r1]
+ strb r0, [r1, 0x4]
+ movs r0, 0x3
+ bl sub_803A924
+ b _0803AB2E
+ .align 2, 0
+_0803AB20: .4byte gUnknown_203B3F4
+_0803AB24:
+ bl sub_80213A0
+ movs r0, 0x4
+ bl sub_803A924
+_0803AB2E:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_803AAC4
+
+ thumb_func_start sub_803AB34
+sub_803AB34:
+ push {r4,lr}
+ sub sp, 0x4
+ movs r0, 0
+ str r0, [sp]
+ bl sub_8021274
+ ldr r4, _0803AB6C
+ ldr r0, [r4]
+ adds r0, 0x4C
+ bl sub_8012FD8
+ lsls r0, 24
+ cmp r0, 0
+ bne _0803AB5A
+ ldr r0, [r4]
+ adds r0, 0x4C
+ mov r1, sp
+ bl sub_8013114
+_0803AB5A:
+ ldr r0, [sp]
+ cmp r0, 0x2
+ beq _0803AB7A
+ cmp r0, 0x2
+ bgt _0803AB70
+ cmp r0, 0x1
+ beq _0803AB9E
+ b _0803ABA4
+ .align 2, 0
+_0803AB6C: .4byte gUnknown_203B3F4
+_0803AB70:
+ cmp r0, 0x3
+ beq _0803AB84
+ cmp r0, 0x4
+ beq _0803AB96
+ b _0803ABA4
+_0803AB7A:
+ ldr r0, [r4]
+ ldrb r0, [r0, 0x4]
+ bl UnlockFriendArea
+ b _0803AB8E
+_0803AB84:
+ ldr r0, [r4]
+ ldrb r0, [r0, 0x4]
+ movs r1, 0x1
+ bl sub_809249C
+_0803AB8E:
+ movs r0, 0x1
+ bl sub_803A924
+ b _0803ABA4
+_0803AB96:
+ movs r0, 0x3
+ bl sub_803A924
+ b _0803ABA4
+_0803AB9E:
+ movs r0, 0x1
+ bl sub_803A924
+_0803ABA4:
+ add sp, 0x4
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_803AB34
+
+ thumb_func_start sub_803ABAC
+sub_803ABAC:
+ push {lr}
+ bl sub_80217EC
+ cmp r0, 0x1
+ bls _0803ABC4
+ cmp r0, 0x3
+ bhi _0803ABC4
+ bl sub_8021830
+ movs r0, 0x1
+ bl sub_803A924
+_0803ABC4:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_803ABAC
+
+ thumb_func_start sub_803ABC8
+sub_803ABC8:
+ push {r4-r6,lr}
+ movs r5, 0
+ movs r6, 0x1
+_0803ABCE:
+ ldr r2, _0803AC08
+ movs r0, 0x58
+ adds r1, r5, 0
+ muls r1, r0
+ ldr r0, [r2]
+ adds r2, r0, r1
+ ldrh r1, [r2]
+ adds r0, r6, 0
+ ands r0, r1
+ cmp r0, 0
+ beq _0803AC10
+ lsrs r0, r1, 1
+ ands r0, r6
+ cmp r0, 0
+ beq _0803AC10
+ ldr r0, _0803AC0C
+ ldr r4, [r0]
+ movs r1, 0x8
+ ldrsh r0, [r2, r1]
+ bl GetFriendArea
+ ldrb r1, [r4, 0x4]
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r1, r0
+ bne _0803AC10
+ movs r0, 0
+ b _0803AC1C
+ .align 2, 0
+_0803AC08: .4byte gUnknown_203B45C
+_0803AC0C: .4byte gUnknown_203B3F4
+_0803AC10:
+ adds r5, 0x1
+ movs r0, 0xCE
+ lsls r0, 1
+ cmp r5, r0
+ ble _0803ABCE
+ movs r0, 0x1
+_0803AC1C:
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_803ABC8
+
+ thumb_func_start sub_803AC24
+sub_803AC24:
+ push {r4,lr}
+ ldr r4, _0803AC44
+ movs r0, 0xA0
+ lsls r0, 1
+ movs r1, 0x8
+ bl MemoryAlloc
+ str r0, [r4]
+ movs r0, 0
+ bl sub_803ACD0
+ movs r0, 0x1
+ pop {r4}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0803AC44: .4byte gUnknown_203B3F8
+ thumb_func_end sub_803AC24
+
+ thumb_func_start sub_803AC48
+sub_803AC48:
+ push {lr}
+ ldr r0, _0803AC60
+ ldr r0, [r0]
+ ldr r0, [r0]
+ cmp r0, 0x7
+ bhi _0803ACA8
+ lsls r0, 2
+ ldr r1, _0803AC64
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_0803AC60: .4byte gUnknown_203B3F8
+_0803AC64: .4byte _0803AC68
+ .align 2, 0
+_0803AC68:
+ .4byte _0803AC88
+ .4byte _0803AC90
+ .4byte _0803AC90
+ .4byte _0803AC96
+ .4byte _0803ACA8
+ .4byte _0803AC9C
+ .4byte _0803ACA2
+ .4byte _0803ACA8
+_0803AC88:
+ movs r0, 0x1
+ bl sub_803ACD0
+ b _0803ACAC
+_0803AC90:
+ bl sub_803AF38
+ b _0803ACAC
+_0803AC96:
+ bl sub_803AF88
+ b _0803ACAC
+_0803AC9C:
+ bl sub_803AFE8
+ b _0803ACAC
+_0803ACA2:
+ bl sub_803B034
+ b _0803ACAC
+_0803ACA8:
+ movs r0, 0x3
+ b _0803ACAE
+_0803ACAC:
+ movs r0, 0
+_0803ACAE:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_803AC48
+
+ thumb_func_start sub_803ACB4
+sub_803ACB4:
+ push {r4,lr}
+ ldr r4, _0803ACCC
+ ldr r0, [r4]
+ cmp r0, 0
+ beq _0803ACC6
+ bl MemoryFree
+ movs r0, 0
+ str r0, [r4]
+_0803ACC6:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0803ACCC: .4byte gUnknown_203B3F8
+ thumb_func_end sub_803ACB4
+
+ thumb_func_start sub_803ACD0
+sub_803ACD0:
+ push {lr}
+ ldr r1, _0803ACE4
+ ldr r1, [r1]
+ str r0, [r1]
+ bl sub_803ACE8
+ bl sub_803AD88
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0803ACE4: .4byte gUnknown_203B3F8
+ thumb_func_end sub_803ACD0
+
+ thumb_func_start sub_803ACE8
+sub_803ACE8:
+ push {r4-r7,lr}
+ ldr r4, _0803AD08
+ ldr r0, [r4]
+ adds r0, 0xE0
+ bl sub_8006518
+ ldr r1, [r4]
+ ldr r0, [r1]
+ cmp r0, 0x3
+ beq _0803AD10
+ cmp r0, 0x5
+ beq _0803AD38
+ movs r2, 0
+ ldr r3, _0803AD0C
+ b _0803AD50
+ .align 2, 0
+_0803AD08: .4byte gUnknown_203B3F8
+_0803AD0C: .4byte gUnknown_80E7ED4
+_0803AD10:
+ bl sub_803AEB0
+ ldr r2, [r4]
+ movs r0, 0x88
+ lsls r0, 1
+ adds r2, r0
+ ldr r1, _0803AD34
+ ldm r1!, {r3,r5,r6}
+ stm r2!, {r3,r5,r6}
+ ldm r1!, {r3,r5,r7}
+ stm r2!, {r3,r5,r7}
+ ldr r1, [r4]
+ adds r0, r1, r0
+ adds r1, 0x90
+ bl sub_8012CAC
+ b _0803AD6C
+ .align 2, 0
+_0803AD34: .4byte gUnknown_80E7EEC
+_0803AD38:
+ movs r6, 0x94
+ lsls r6, 1
+ adds r1, r6
+ ldr r0, _0803AD4C
+ ldm r0!, {r2,r3,r7}
+ stm r1!, {r2,r3,r7}
+ ldm r0!, {r4-r6}
+ stm r1!, {r4-r6}
+ b _0803AD6C
+ .align 2, 0
+_0803AD4C: .4byte gUnknown_80E7F04
+_0803AD50:
+ ldr r0, [r4]
+ lsls r1, r2, 1
+ adds r1, r2
+ lsls r1, 3
+ adds r0, r1
+ adds r0, 0xE0
+ adds r1, r3, 0
+ ldm r1!, {r5-r7}
+ stm r0!, {r5-r7}
+ ldm r1!, {r5-r7}
+ stm r0!, {r5-r7}
+ adds r2, 0x1
+ cmp r2, 0x3
+ ble _0803AD50
+_0803AD6C:
+ bl ResetUnusedInputStruct
+ ldr r0, _0803AD84
+ ldr r0, [r0]
+ adds r0, 0xE0
+ movs r1, 0x1
+ movs r2, 0x1
+ bl sub_800641C
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0803AD84: .4byte gUnknown_203B3F8
+ thumb_func_end sub_803ACE8
+
+ thumb_func_start sub_803AD88
+sub_803AD88:
+ push {lr}
+ sub sp, 0x8
+ ldr r1, _0803ADA4
+ ldr r0, [r1]
+ ldr r0, [r0]
+ adds r2, r1, 0
+ cmp r0, 0x7
+ bhi _0803AE50
+ lsls r0, 2
+ ldr r1, _0803ADA8
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_0803ADA4: .4byte gUnknown_203B3F8
+_0803ADA8: .4byte _0803ADAC
+ .align 2, 0
+_0803ADAC:
+ .4byte _0803AE50
+ .4byte _0803ADCC
+ .4byte _0803ADDA
+ .4byte _0803ADE2
+ .4byte _0803AE50
+ .4byte _0803AE0C
+ .4byte _0803AE44
+ .4byte _0803AE50
+_0803ADCC:
+ movs r0, 0x1
+ movs r1, 0
+ movs r2, 0
+ movs r3, 0xA
+ bl sub_8023868
+ b _0803AE50
+_0803ADDA:
+ movs r0, 0x1
+ bl sub_8023B7C
+ b _0803AE50
+_0803ADE2:
+ bl sub_8023DA4
+ ldr r0, _0803AE08
+ ldr r2, [r0]
+ adds r0, r2, 0
+ adds r0, 0x10
+ adds r1, r2, 0
+ adds r1, 0x90
+ adds r3, r2, 0
+ adds r3, 0xD0
+ ldr r2, [r2, 0xC]
+ str r2, [sp]
+ movs r2, 0x2
+ str r2, [sp, 0x4]
+ movs r2, 0
+ bl sub_8012D60
+ b _0803AE50
+ .align 2, 0
+_0803AE08: .4byte gUnknown_203B3F8
+_0803AE0C:
+ ldr r2, [r2]
+ movs r1, 0x3
+ str r1, [r2, 0x70]
+ movs r0, 0x1
+ str r0, [r2, 0x68]
+ movs r0, 0x64
+ str r0, [r2, 0x6C]
+ ldr r0, [r2, 0x8]
+ ldrb r0, [r0, 0x3]
+ str r0, [r2, 0x64]
+ str r1, [r2, 0x74]
+ movs r1, 0x94
+ lsls r1, 1
+ adds r0, r2, r1
+ str r0, [r2, 0x78]
+ movs r0, 0x2C
+ str r0, [r2, 0x7C]
+ adds r1, r2, 0
+ adds r1, 0x80
+ movs r0, 0x12
+ str r0, [r1]
+ adds r0, r2, 0
+ adds r0, 0x60
+ bl sub_8013AA0
+ bl sub_803AE58
+ b _0803AE50
+_0803AE44:
+ ldr r0, [r2]
+ ldr r1, [r0, 0x8]
+ adds r1, 0x4C
+ movs r0, 0x2
+ bl sub_801602C
+_0803AE50:
+ add sp, 0x8
+ pop {r0}
+ bx r0
+ thumb_func_end sub_803AD88
+
+ thumb_func_start sub_803AE58
+sub_803AE58:
+ push {r4,lr}
+ sub sp, 0x4
+ ldr r4, _0803AEA8
+ ldr r0, [r4]
+ ldr r0, [r0, 0x74]
+ bl sub_8008C54
+ ldr r0, [r4]
+ ldr r0, [r0, 0x74]
+ bl sub_80073B8
+ ldr r2, _0803AEAC
+ ldr r0, [r4]
+ ldr r3, [r0, 0x74]
+ movs r0, 0
+ str r0, [sp]
+ movs r0, 0x4
+ movs r1, 0
+ bl xxx_call_draw_string
+ ldr r0, [r4]
+ adds r0, 0x60
+ bl sub_8013C68
+ ldr r0, [r4]
+ ldr r0, [r0, 0x74]
+ bl sub_80073E0
+ bl sub_8023DA4
+ ldr r0, [r4]
+ adds r0, 0x10
+ movs r1, 0
+ bl sub_8012EA4
+ add sp, 0x4
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0803AEA8: .4byte gUnknown_203B3F8
+_0803AEAC: .4byte gUnknown_80E7F1C
+ thumb_func_end sub_803AE58
+
+ thumb_func_start sub_803AEB0
+sub_803AEB0:
+ push {r4-r6,lr}
+ ldr r4, _0803AEFC
+ ldr r0, [r4]
+ adds r0, 0xD0
+ movs r1, 0
+ movs r2, 0x10
+ bl MemoryFill16
+ ldr r4, [r4]
+ movs r3, 0
+ adds r1, r4, 0
+ adds r1, 0x90
+ ldr r0, _0803AF00
+ str r0, [r1]
+ adds r5, r4, 0
+ adds r5, 0x94
+ movs r0, 0x4
+ str r0, [r5]
+ movs r2, 0x1
+ adds r1, 0x8
+ ldr r0, _0803AF04
+ str r0, [r1]
+ adds r1, 0x4
+ movs r0, 0x5
+ str r0, [r1]
+ movs r6, 0x2
+ adds r0, r4, 0
+ adds r0, 0xA0
+ str r3, [r0]
+ adds r0, 0x4
+ str r2, [r0]
+ adds r0, 0x2C
+ ldrh r0, [r0]
+ cmp r0, 0
+ bne _0803AF08
+ ldr r0, [r5]
+ str r0, [r4, 0xC]
+ b _0803AF2C
+ .align 2, 0
+_0803AEFC: .4byte gUnknown_203B3F8
+_0803AF00: .4byte gUnknown_80E7F24
+_0803AF04: .4byte gUnknown_80E7F2C
+_0803AF08:
+ adds r3, 0x1
+ cmp r3, r6
+ bge _0803AF2C
+ ldr r0, _0803AF34
+ ldr r2, [r0]
+ lsls r1, r3, 1
+ adds r0, r2, 0
+ adds r0, 0xD0
+ adds r0, r1
+ ldrh r0, [r0]
+ cmp r0, 0
+ bne _0803AF08
+ lsls r0, r3, 3
+ adds r1, r2, 0
+ adds r1, 0x94
+ adds r1, r0
+ ldr r0, [r1]
+ str r0, [r2, 0xC]
+_0803AF2C:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0803AF34: .4byte gUnknown_203B3F8
+ thumb_func_end sub_803AEB0
+
+ thumb_func_start sub_803AF38
+sub_803AF38:
+ push {lr}
+ movs r0, 0x1
+ bl sub_8023A94
+ cmp r0, 0x2
+ beq _0803AF78
+ cmp r0, 0x2
+ bcc _0803AF82
+ cmp r0, 0x3
+ bne _0803AF82
+ bl sub_8023B44
+ ldr r1, _0803AF70
+ ldr r1, [r1]
+ strh r0, [r1, 0x4]
+ ldr r3, _0803AF74
+ movs r0, 0x4
+ ldrsh r2, [r1, r0]
+ movs r0, 0x58
+ muls r2, r0
+ ldr r0, [r3]
+ adds r0, r2
+ str r0, [r1, 0x8]
+ movs r0, 0x3
+ bl sub_803ACD0
+ b _0803AF82
+ .align 2, 0
+_0803AF70: .4byte gUnknown_203B3F8
+_0803AF74: .4byte gUnknown_203B45C
+_0803AF78:
+ bl sub_8023C60
+ movs r0, 0x7
+ bl sub_803ACD0
+_0803AF82:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_803AF38
+
+ thumb_func_start sub_803AF88
+sub_803AF88:
+ push {r4,lr}
+ sub sp, 0x4
+ movs r0, 0
+ str r0, [sp]
+ bl sub_8023A94
+ ldr r4, _0803AFC0
+ ldr r0, [r4]
+ adds r0, 0x10
+ bl sub_8012FD8
+ lsls r0, 24
+ cmp r0, 0
+ bne _0803AFAE
+ ldr r0, [r4]
+ adds r0, 0x10
+ mov r1, sp
+ bl sub_8013114
+_0803AFAE:
+ ldr r0, [sp]
+ cmp r0, 0x4
+ beq _0803AFCA
+ cmp r0, 0x4
+ bgt _0803AFC4
+ cmp r0, 0x1
+ beq _0803AFDA
+ b _0803AFE0
+ .align 2, 0
+_0803AFC0: .4byte gUnknown_203B3F8
+_0803AFC4:
+ cmp r0, 0x5
+ beq _0803AFD2
+ b _0803AFE0
+_0803AFCA:
+ movs r0, 0x5
+ bl sub_803ACD0
+ b _0803AFE0
+_0803AFD2:
+ movs r0, 0x6
+ bl sub_803ACD0
+ b _0803AFE0
+_0803AFDA:
+ movs r0, 0x2
+ bl sub_803ACD0
+_0803AFE0:
+ add sp, 0x4
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_803AF88
+
+ thumb_func_start sub_803AFE8
+sub_803AFE8:
+ push {r4,lr}
+ movs r0, 0
+ bl sub_8023A94
+ ldr r4, _0803B010
+ ldr r0, [r4]
+ adds r0, 0x10
+ bl sub_8012FD8
+ ldr r0, [r4]
+ adds r0, 0x60
+ bl sub_8013BBC
+ cmp r0, 0x2
+ beq _0803B020
+ cmp r0, 0x2
+ bhi _0803B014
+ cmp r0, 0x1
+ beq _0803B028
+ b _0803B02C
+ .align 2, 0
+_0803B010: .4byte gUnknown_203B3F8
+_0803B014:
+ cmp r0, 0x3
+ bne _0803B02C
+ ldr r0, [r4]
+ ldr r1, [r0, 0x8]
+ ldr r0, [r0, 0x60]
+ strb r0, [r1, 0x3]
+_0803B020:
+ movs r0, 0x2
+ bl sub_803ACD0
+ b _0803B02C
+_0803B028:
+ bl sub_803AE58
+_0803B02C:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_803AFE8
+
+ thumb_func_start sub_803B034
+sub_803B034:
+ push {lr}
+ bl sub_8016080
+ cmp r0, 0x3
+ bhi _0803B04C
+ cmp r0, 0x2
+ bcc _0803B04C
+ bl sub_80160D8
+ movs r0, 0x2
+ bl sub_803ACD0
+_0803B04C:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_803B034
+
+ thumb_func_start sub_803B050
+sub_803B050:
+ push {r4-r7,lr}
+ ldr r4, _0803B0F4
+ movs r0, 0xF4
+ lsls r0, 2
+ movs r1, 0x8
+ bl MemoryAlloc
+ str r0, [r4]
+ movs r1, 0x3
+ str r1, [r0, 0x34]
+ adds r1, r0, 0
+ adds r1, 0x84
+ str r1, [r0, 0x38]
+ adds r0, 0x3C
+ bl sub_8006518
+ ldr r1, [r4]
+ ldr r2, [r1, 0x34]
+ lsls r0, r2, 1
+ adds r0, r2
+ lsls r0, 3
+ adds r1, r0
+ adds r1, 0x3C
+ ldr r0, _0803B0F8
+ ldm r0!, {r2,r3,r5}
+ stm r1!, {r2,r3,r5}
+ ldm r0!, {r2,r3,r5}
+ stm r1!, {r2,r3,r5}
+ ldr r0, [r4]
+ ldr r1, [r0, 0x38]
+ adds r0, 0x9C
+ str r0, [r1, 0x14]
+ bl ResetUnusedInputStruct
+ ldr r0, [r4]
+ adds r0, 0x3C
+ movs r1, 0x1
+ movs r2, 0x1
+ bl sub_800641C
+ movs r2, 0
+ movs r3, 0
+ movs r7, 0xCB
+ lsls r7, 1
+ movs r6, 0x80
+ lsls r6, 9
+ movs r5, 0
+_0803B0AE:
+ ldr r0, _0803B0FC
+ adds r0, r5, r0
+ movs r1, 0x2
+ ldrsh r0, [r0, r1]
+ ldr r4, _0803B0F4
+ cmp r0, 0xA
+ bne _0803B0C8
+ ldr r0, [r4]
+ lsls r1, r2, 1
+ adds r0, 0xA0
+ adds r0, r1
+ strh r3, [r0]
+ adds r2, 0x1
+_0803B0C8:
+ adds r0, r6, 0
+ movs r3, 0x80
+ lsls r3, 9
+ adds r6, r3
+ adds r5, 0xC
+ asrs r3, r0, 16
+ cmp r3, r7
+ ble _0803B0AE
+ ldr r0, [r4]
+ ldr r3, [r0, 0x34]
+ adds r1, r2, 0
+ movs r2, 0xA
+ bl sub_8013818
+ bl sub_803B204
+ bl sub_803B284
+ movs r0, 0x1
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0803B0F4: .4byte gUnknown_203B3FC
+_0803B0F8: .4byte gUnknown_80E7F54
+_0803B0FC: .4byte gFunctionScriptTable
+ thumb_func_end sub_803B050
+
+ thumb_func_start sub_803B100
+sub_803B100:
+ push {lr}
+ adds r1, r0, 0
+ lsls r1, 16
+ asrs r1, 16
+ ldr r0, _0803B11C
+ ldr r0, [r0]
+ bl sub_8013878
+ bl sub_803B204
+ bl sub_803B284
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0803B11C: .4byte gUnknown_203B3FC
+ thumb_func_end sub_803B100
+
+ thumb_func_start sub_803B120
+sub_803B120:
+ push {r4,lr}
+ ldr r4, _0803B13C
+ ldr r0, [r4]
+ bl GetKeyPress
+ cmp r0, 0x1
+ beq _0803B140
+ cmp r0, 0x2
+ bne _0803B144
+ movs r0, 0x1
+ bl sub_80119D4
+ movs r0, 0x2
+ b _0803B160
+ .align 2, 0
+_0803B13C: .4byte gUnknown_203B3FC
+_0803B140:
+ movs r0, 0x3
+ b _0803B160
+_0803B144:
+ ldr r0, [r4]
+ movs r1, 0x1
+ bl sub_80138B8
+ lsls r0, 24
+ cmp r0, 0
+ bne _0803B156
+ movs r0, 0
+ b _0803B160
+_0803B156:
+ bl sub_803B204
+ bl sub_803B284
+ movs r0, 0x1
+_0803B160:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_803B120
+
+ thumb_func_start sub_803B168
+sub_803B168:
+ ldr r0, _0803B188
+ ldr r0, [r0]
+ movs r1, 0x1E
+ ldrsh r2, [r0, r1]
+ movs r3, 0x1C
+ ldrsh r1, [r0, r3]
+ muls r1, r2
+ movs r3, 0x18
+ ldrsh r2, [r0, r3]
+ adds r1, r2
+ lsls r1, 1
+ adds r0, 0xA0
+ adds r0, r1
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ bx lr
+ .align 2, 0
+_0803B188: .4byte gUnknown_203B3FC
+ thumb_func_end sub_803B168
+
+ thumb_func_start sub_803B18C
+sub_803B18C:
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ ldr r5, _0803B1B8
+ ldr r0, [r5]
+ movs r1, 0xE5
+ strh r1, [r0, 0x22]
+ bl sub_8013984
+ bl sub_803B204
+ bl sub_803B284
+ cmp r4, 0
+ beq _0803B1B2
+ ldr r0, [r5]
+ bl AddMenuCursorSprite
+_0803B1B2:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0803B1B8: .4byte gUnknown_203B3FC
+ thumb_func_end sub_803B18C
+
+ thumb_func_start sub_803B1BC
+sub_803B1BC:
+ push {r4,r5,lr}
+ ldr r4, _0803B1FC
+ ldr r2, [r4]
+ cmp r2, 0
+ beq _0803B1F6
+ ldr r0, [r2, 0x34]
+ lsls r1, r0, 1
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r2, r1
+ adds r1, 0x3C
+ ldr r0, _0803B200
+ ldm r0!, {r2,r3,r5}
+ stm r1!, {r2,r3,r5}
+ ldm r0!, {r2,r3,r5}
+ stm r1!, {r2,r3,r5}
+ bl ResetUnusedInputStruct
+ ldr r0, [r4]
+ adds r0, 0x3C
+ movs r1, 0x1
+ movs r2, 0x1
+ bl sub_800641C
+ ldr r0, [r4]
+ bl MemoryFree
+ movs r0, 0
+ str r0, [r4]
+_0803B1F6:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0803B1FC: .4byte gUnknown_203B3FC
+_0803B200: .4byte gUnknown_80E7F3C
+ thumb_func_end sub_803B1BC
+
+ thumb_func_start sub_803B204
+sub_803B204:
+ push {r4,lr}
+ ldr r4, _0803B280
+ ldr r0, [r4]
+ adds r0, 0x9C
+ movs r2, 0
+ movs r1, 0x1
+ strb r1, [r0]
+ ldr r0, [r4]
+ adds r0, 0x9D
+ strb r2, [r0]
+ ldr r0, [r4]
+ adds r0, 0x9E
+ movs r1, 0x8
+ strb r1, [r0]
+ ldr r0, [r4]
+ adds r0, 0x9F
+ strb r2, [r0]
+ bl ResetUnusedInputStruct
+ ldr r0, [r4]
+ adds r0, 0x3C
+ movs r1, 0x1
+ movs r2, 0x1
+ bl sub_800641C
+ ldr r0, [r4]
+ movs r1, 0x1A
+ ldrsh r0, [r0, r1]
+ movs r1, 0xC
+ bl sub_80095E4
+ adds r0, 0x2
+ lsls r0, 16
+ ldr r2, [r4]
+ ldr r3, [r2, 0x34]
+ lsls r1, r3, 1
+ adds r1, r3
+ lsls r1, 3
+ adds r1, r2, r1
+ adds r1, 0x4A
+ asrs r3, r0, 16
+ lsrs r0, 16
+ strh r0, [r1]
+ ldr r1, [r2, 0x34]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 3
+ adds r2, r0
+ adds r3, 0x2
+ adds r2, 0x4C
+ strh r3, [r2]
+ bl ResetUnusedInputStruct
+ ldr r0, [r4]
+ adds r0, 0x3C
+ movs r1, 0x1
+ movs r2, 0x1
+ bl sub_800641C
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0803B280: .4byte gUnknown_203B3FC
+ thumb_func_end sub_803B204
+
+ thumb_func_start sub_803B284
+sub_803B284:
+ push {r4-r6,lr}
+ sub sp, 0x8
+ ldr r6, _0803B338
+ ldr r0, [r6]
+ ldr r0, [r0, 0x34]
+ bl sub_8008C54
+ ldr r0, [r6]
+ ldr r0, [r0, 0x34]
+ bl sub_80073B8
+ ldr r2, _0803B33C
+ ldr r0, [r6]
+ ldr r3, [r0, 0x34]
+ movs r0, 0
+ str r0, [sp]
+ movs r0, 0xA
+ movs r1, 0
+ bl xxx_call_draw_string
+ ldr r1, [r6]
+ adds r0, r1, 0
+ adds r0, 0x9E
+ ldrb r4, [r0]
+ lsls r4, 3
+ subs r4, 0x2
+ movs r0, 0x1E
+ ldrsh r2, [r1, r0]
+ adds r2, 0x1
+ movs r0, 0x7
+ str r0, [sp]
+ ldr r0, [r1, 0x34]
+ str r0, [sp, 0x4]
+ adds r0, r4, 0
+ movs r1, 0
+ movs r3, 0x2
+ bl sub_8012BC4
+ movs r5, 0
+ ldr r0, [r6]
+ movs r1, 0x1A
+ ldrsh r0, [r0, r1]
+ cmp r5, r0
+ bge _0803B324
+_0803B2DC:
+ ldr r0, [r6]
+ movs r3, 0x1E
+ ldrsh r2, [r0, r3]
+ movs r3, 0x1C
+ ldrsh r1, [r0, r3]
+ muls r2, r1
+ adds r2, r5
+ lsls r2, 1
+ adds r1, r0, 0
+ adds r1, 0xA0
+ adds r1, r2
+ movs r2, 0
+ ldrsh r1, [r1, r2]
+ lsls r4, r1, 1
+ adds r4, r1
+ lsls r4, 2
+ ldr r1, _0803B340
+ adds r4, r1
+ adds r1, r5, 0
+ bl sub_8013800
+ adds r1, r0, 0
+ ldr r2, [r4, 0x4]
+ ldr r0, [r6]
+ ldr r3, [r0, 0x34]
+ movs r0, 0
+ str r0, [sp]
+ movs r0, 0x8
+ bl xxx_call_draw_string
+ adds r5, 0x1
+ ldr r0, [r6]
+ movs r3, 0x1A
+ ldrsh r0, [r0, r3]
+ cmp r5, r0
+ blt _0803B2DC
+_0803B324:
+ ldr r0, _0803B338
+ ldr r0, [r0]
+ ldr r0, [r0, 0x34]
+ bl sub_80073E0
+ add sp, 0x8
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0803B338: .4byte gUnknown_203B3FC
+_0803B33C: .4byte gUnknown_80E7F6C
+_0803B340: .4byte gFunctionScriptTable
+ thumb_func_end sub_803B284
+
+ thumb_func_start sub_803B344
+sub_803B344:
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ lsls r0, r1, 3
+ subs r0, r1
+ lsls r0, 2
+ ldr r1, _0803B358
+ adds r0, r1
+ bx lr
+ .align 2, 0
+_0803B358: .4byte gUnknown_80E7F94
+ thumb_func_end sub_803B344
+
+ thumb_func_start sub_803B35C
+sub_803B35C:
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ adds r4, r1, 0
+ adds r1, 0x18
+ bl sub_803C21C
+ ldrb r0, [r5, 0x2]
+ subs r0, 0x1
+ cmp r0, 0x8
+ bls _0803B372
+ b _0803B4FA
+_0803B372:
+ lsls r0, 2
+ ldr r1, _0803B37C
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_0803B37C: .4byte _0803B380
+ .align 2, 0
+_0803B380:
+ .4byte _0803B3A4
+ .4byte _0803B3BE
+ .4byte _0803B3D8
+ .4byte _0803B3F2
+ .4byte _0803B414
+ .4byte _0803B442
+ .4byte _0803B470
+ .4byte _0803B49E
+ .4byte _0803B4CC
+_0803B3A4:
+ adds r0, r4, 0
+ adds r0, 0x40
+ movs r1, 0
+ strb r1, [r0]
+ adds r0, 0x1
+ strb r1, [r0]
+ adds r1, r4, 0
+ adds r1, 0x42
+ movs r0, 0x6
+ strb r0, [r1]
+ subs r1, 0x14
+ movs r0, 0x5
+ b _0803B576
+_0803B3BE:
+ adds r0, r4, 0
+ adds r0, 0x40
+ movs r1, 0x1
+ strb r1, [r0]
+ adds r0, 0x1
+ strb r1, [r0]
+ adds r1, r4, 0
+ adds r1, 0x42
+ movs r0, 0x6
+ strb r0, [r1]
+ subs r1, 0x14
+ movs r0, 0x5
+ b _0803B576
+_0803B3D8:
+ adds r0, r4, 0
+ adds r0, 0x40
+ movs r1, 0x2
+ strb r1, [r0]
+ adds r0, 0x1
+ strb r1, [r0]
+ adds r1, r4, 0
+ adds r1, 0x42
+ movs r0, 0x6
+ strb r0, [r1]
+ subs r1, 0x14
+ movs r0, 0x5
+ b _0803B576
+_0803B3F2:
+ adds r0, r4, 0
+ adds r0, 0x40
+ movs r1, 0x3
+ strb r1, [r0]
+ adds r0, 0x1
+ strb r1, [r0]
+ adds r1, r4, 0
+ adds r1, 0x42
+ movs r0, 0x6
+ strb r0, [r1]
+ bl sub_8096DD8
+ str r0, [r4, 0x4C]
+ bl sub_8096DE8
+ str r0, [r4, 0x50]
+ b _0803B578
+_0803B414:
+ ldrb r0, [r5, 0x1]
+ cmp r0, 0x3
+ bne _0803B42A
+ adds r0, r4, 0
+ adds r0, 0x40
+ movs r1, 0xB
+ strb r1, [r0]
+ adds r1, r4, 0
+ adds r1, 0x42
+ movs r0, 0x1
+ b _0803B438
+_0803B42A:
+ adds r0, r4, 0
+ adds r0, 0x40
+ movs r1, 0xC
+ strb r1, [r0]
+ adds r1, r4, 0
+ adds r1, 0x42
+ movs r0, 0x2
+_0803B438:
+ strb r0, [r1]
+ adds r1, r4, 0
+ adds r1, 0x41
+ movs r0, 0x4
+ b _0803B576
+_0803B442:
+ ldrb r0, [r5, 0x1]
+ cmp r0, 0x3
+ bne _0803B458
+ adds r0, r4, 0
+ adds r0, 0x40
+ movs r1, 0xB
+ strb r1, [r0]
+ adds r1, r4, 0
+ adds r1, 0x42
+ movs r0, 0x1
+ b _0803B466
+_0803B458:
+ adds r0, r4, 0
+ adds r0, 0x40
+ movs r1, 0xC
+ strb r1, [r0]
+ adds r1, r4, 0
+ adds r1, 0x42
+ movs r0, 0x2
+_0803B466:
+ strb r0, [r1]
+ adds r1, r4, 0
+ adds r1, 0x41
+ movs r0, 0x5
+ b _0803B576
+_0803B470:
+ adds r0, r5, 0
+ bl sub_803B600
+ str r0, [r4, 0x4]
+ movs r1, 0x1
+ negs r1, r1
+ cmp r0, r1
+ bne _0803B488
+ adds r1, r4, 0
+ adds r1, 0x40
+ movs r0, 0x9
+ b _0803B48E
+_0803B488:
+ adds r1, r4, 0
+ adds r1, 0x40
+ movs r0, 0x4
+_0803B48E:
+ strb r0, [r1]
+ adds r1, r4, 0
+ adds r1, 0x41
+ movs r0, 0x6
+ strb r0, [r1]
+ adds r1, 0x1
+ movs r0, 0x4
+ b _0803B576
+_0803B49E:
+ adds r0, r5, 0
+ bl sub_803B628
+ str r0, [r4, 0x4]
+ movs r1, 0x1
+ negs r1, r1
+ cmp r0, r1
+ bne _0803B4B6
+ adds r1, r4, 0
+ adds r1, 0x40
+ movs r0, 0x9
+ b _0803B4BC
+_0803B4B6:
+ adds r1, r4, 0
+ adds r1, 0x40
+ movs r0, 0x5
+_0803B4BC:
+ strb r0, [r1]
+ adds r1, r4, 0
+ adds r1, 0x41
+ movs r0, 0x7
+ strb r0, [r1]
+ adds r1, 0x1
+ movs r0, 0x4
+ b _0803B576
+_0803B4CC:
+ adds r0, r5, 0
+ bl sub_803B66C
+ str r0, [r4, 0x4]
+ movs r1, 0x1
+ negs r1, r1
+ cmp r0, r1
+ bne _0803B4E4
+ adds r1, r4, 0
+ adds r1, 0x40
+ movs r0, 0xA
+ b _0803B4EA
+_0803B4E4:
+ adds r1, r4, 0
+ adds r1, 0x40
+ movs r0, 0x6
+_0803B4EA:
+ strb r0, [r1]
+ adds r1, r4, 0
+ adds r1, 0x41
+ movs r0, 0x8
+ strb r0, [r1]
+ adds r1, 0x1
+ movs r0, 0x5
+ b _0803B576
+_0803B4FA:
+ ldrb r0, [r5, 0x1]
+ cmp r0, 0x2
+ beq _0803B528
+ cmp r0, 0x2
+ bgt _0803B50A
+ cmp r0, 0x1
+ beq _0803B514
+ b _0803B564
+_0803B50A:
+ cmp r0, 0x3
+ beq _0803B53C
+ cmp r0, 0x4
+ beq _0803B550
+ b _0803B564
+_0803B514:
+ adds r1, r4, 0
+ adds r1, 0x40
+ movs r0, 0x9
+ strb r0, [r1]
+ adds r1, 0x1
+ movs r0, 0xD
+ strb r0, [r1]
+ adds r1, 0x1
+ movs r0, 0x4
+ b _0803B576
+_0803B528:
+ adds r1, r4, 0
+ adds r1, 0x40
+ movs r0, 0xA
+ strb r0, [r1]
+ adds r1, 0x1
+ movs r0, 0xE
+ strb r0, [r1]
+ adds r1, 0x1
+ movs r0, 0x5
+ b _0803B576
+_0803B53C:
+ adds r1, r4, 0
+ adds r1, 0x40
+ movs r0, 0xB
+ strb r0, [r1]
+ adds r1, 0x1
+ movs r0, 0xF
+ strb r0, [r1]
+ adds r1, 0x1
+ movs r0, 0x1
+ b _0803B576
+_0803B550:
+ adds r1, r4, 0
+ adds r1, 0x40
+ movs r0, 0xC
+ strb r0, [r1]
+ adds r1, 0x1
+ movs r0, 0x10
+ strb r0, [r1]
+ adds r1, 0x1
+ movs r0, 0x2
+ b _0803B576
+_0803B564:
+ adds r1, r4, 0
+ adds r1, 0x40
+ movs r0, 0x8
+ strb r0, [r1]
+ adds r1, 0x1
+ movs r0, 0xC
+ strb r0, [r1]
+ adds r1, 0x1
+ movs r0, 0x3
+_0803B576:
+ strb r0, [r1]
+_0803B578:
+ adds r0, r5, 0x4
+ str r0, [r4, 0x8]
+ movs r0, 0
+ str r0, [r4, 0xC]
+ ldrh r0, [r5, 0xC]
+ movs r1, 0
+ strh r0, [r4, 0x10]
+ ldrh r0, [r5, 0xE]
+ strh r0, [r4, 0x12]
+ ldrb r0, [r5, 0x10]
+ strb r0, [r4, 0x14]
+ ldrb r0, [r5]
+ subs r0, 0x2
+ cmp r0, 0x7
+ bhi _0803B5EC
+ lsls r0, 2
+ ldr r1, _0803B5A0
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_0803B5A0: .4byte _0803B5A4
+ .align 2, 0
+_0803B5A4:
+ .4byte _0803B5C4
+ .4byte _0803B5C4
+ .4byte _0803B5C4
+ .4byte _0803B5C4
+ .4byte _0803B5DC
+ .4byte _0803B5CC
+ .4byte _0803B5DC
+ .4byte _0803B5DC
+_0803B5C4:
+ adds r0, r4, 0
+ adds r0, 0x43
+ movs r1, 0x1
+ b _0803B5F0
+_0803B5CC:
+ adds r1, r4, 0
+ adds r1, 0x43
+ movs r0, 0
+ strb r0, [r1]
+ adds r1, 0x1
+ movs r0, 0x3
+ strb r0, [r1]
+ b _0803B5F6
+_0803B5DC:
+ adds r1, r4, 0
+ adds r1, 0x43
+ movs r0, 0x3
+ strb r0, [r1]
+ adds r1, 0x1
+ movs r0, 0x2
+ strb r0, [r1]
+ b _0803B5F6
+_0803B5EC:
+ adds r0, r4, 0
+ adds r0, 0x43
+_0803B5F0:
+ strb r1, [r0]
+ adds r0, 0x1
+ strb r1, [r0]
+_0803B5F6:
+ str r5, [r4, 0x54]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_803B35C
+
+ thumb_func_start sub_803B600
+sub_803B600:
+ push {lr}
+ ldr r2, _0803B614
+ movs r1, 0
+ ldr r3, [r0, 0xC]
+_0803B608:
+ ldr r0, [r2]
+ cmp r0, r3
+ bne _0803B618
+ adds r0, r1, 0
+ b _0803B624
+ .align 2, 0
+_0803B614: .4byte gUnknown_80E9920
+_0803B618:
+ adds r2, 0x8
+ adds r1, 0x1
+ cmp r1, 0x14
+ ble _0803B608
+ movs r0, 0x1
+ negs r0, r0
+_0803B624:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_803B600
+
+ thumb_func_start sub_803B628
+sub_803B628:
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ ldr r2, _0803B654
+ movs r3, 0
+_0803B630:
+ ldr r1, [r2]
+ ldr r0, [r4, 0xC]
+ cmp r1, r0
+ beq _0803B650
+ movs r0, 0x2
+ ldrsh r1, [r2, r0]
+ movs r5, 0xC
+ ldrsh r0, [r4, r5]
+ cmp r1, r0
+ bne _0803B658
+ movs r0, 0
+ ldrsh r1, [r2, r0]
+ movs r5, 0xE
+ ldrsh r0, [r4, r5]
+ cmp r1, r0
+ bne _0803B658
+_0803B650:
+ adds r0, r3, 0
+ b _0803B664
+ .align 2, 0
+_0803B654: .4byte gUnknown_80E9F8C
+_0803B658:
+ adds r2, 0xC
+ adds r3, 0x1
+ cmp r3, 0x2C
+ ble _0803B630
+ movs r0, 0x1
+ negs r0, r0
+_0803B664:
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_803B628
+
+ thumb_func_start sub_803B66C
+sub_803B66C:
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ ldr r2, _0803B698
+ movs r3, 0
+_0803B674:
+ ldr r1, [r2]
+ ldr r0, [r4, 0xC]
+ cmp r1, r0
+ beq _0803B694
+ movs r0, 0x2
+ ldrsh r1, [r2, r0]
+ movs r5, 0xC
+ ldrsh r0, [r4, r5]
+ cmp r1, r0
+ bne _0803B69C
+ movs r0, 0
+ ldrsh r1, [r2, r0]
+ movs r5, 0xE
+ ldrsh r0, [r4, r5]
+ cmp r1, r0
+ bne _0803B69C
+_0803B694:
+ adds r0, r3, 0
+ b _0803B6A8
+ .align 2, 0
+_0803B698: .4byte gUnknown_80E8168
+_0803B69C:
+ adds r2, 0x4
+ adds r3, 0x1
+ cmp r3, 0x5
+ ble _0803B674
+ movs r0, 0x1
+ negs r0, r0
+_0803B6A8:
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_803B66C
+
+ thumb_func_start sub_803B6B0
+sub_803B6B0:
+ push {r4,lr}
+ sub sp, 0x4
+ lsls r2, 24
+ ldr r4, _0803B6D0
+ lsrs r2, 22
+ adds r2, r4
+ ldr r2, [r2]
+ movs r4, 0
+ str r4, [sp]
+ bl xxx_call_draw_string
+ add sp, 0x4
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0803B6D0: .4byte gUnknown_80E8B94
+ thumb_func_end sub_803B6B0
+
+ thumb_func_start sub_803B6D4
+sub_803B6D4:
+ push {r4-r7,lr}
+ sub sp, 0x144
+ adds r7, r0, 0
+ ldr r1, [r7, 0x48]
+ adds r0, 0x43
+ ldrb r2, [r0]
+ ldr r3, [r7]
+ movs r0, 0xA
+ bl sub_803B6B0
+ adds r0, r7, 0
+ adds r0, 0x40
+ ldrb r0, [r0]
+ cmp r0, 0xC
+ bls _0803B6F4
+ b _0803B86C
+_0803B6F4:
+ lsls r0, 2
+ ldr r1, _0803B700
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_0803B700: .4byte _0803B704
+ .align 2, 0
+_0803B704:
+ .4byte _0803B73E
+ .4byte _0803B748
+ .4byte _0803B754
+ .4byte _0803B738
+ .4byte _0803B7A4
+ .4byte _0803B7B0
+ .4byte _0803B7C8
+ .4byte _0803B760
+ .4byte _0803B86C
+ .4byte _0803B818
+ .4byte _0803B7E0
+ .4byte _0803B788
+ .4byte _0803B76A
+_0803B738:
+ ldr r1, [r7, 0x48]
+ ldr r2, [r7, 0x4C]
+ b _0803B7CC
+_0803B73E:
+ ldr r1, [r7, 0x48]
+ ldr r2, _0803B744
+ b _0803B7CC
+ .align 2, 0
+_0803B744: .4byte gMankeyMission
+_0803B748:
+ ldr r1, [r7, 0x48]
+ ldr r2, _0803B750
+ b _0803B7CC
+ .align 2, 0
+_0803B750: .4byte gSmeargleMission
+_0803B754:
+ ldr r1, [r7, 0x48]
+ ldr r2, _0803B75C
+ b _0803B7CC
+ .align 2, 0
+_0803B75C: .4byte gMedichamMission
+_0803B760:
+ ldr r1, [r7, 0x8]
+ add r0, sp, 0x4
+ bl sub_8090208
+ b _0803B850
+_0803B76A:
+ ldr r4, _0803B780
+ ldrb r1, [r7, 0x14]
+ adds r0, r4, 0
+ movs r2, 0
+ bl sub_8090DC4
+ ldr r1, _0803B784
+ add r0, sp, 0x4
+ adds r2, r4, 0
+ b _0803B84C
+ .align 2, 0
+_0803B780: .4byte gUnknown_202DE58
+_0803B784: .4byte gUnknown_80E8830
+_0803B788:
+ ldr r4, _0803B79C
+ ldrb r1, [r7, 0x14]
+ adds r0, r4, 0
+ movs r2, 0
+ bl sub_8090DC4
+ ldr r1, _0803B7A0
+ add r0, sp, 0x4
+ adds r2, r4, 0
+ b _0803B84C
+ .align 2, 0
+_0803B79C: .4byte gUnknown_202DE58
+_0803B7A0: .4byte gUnknown_80E8848
+_0803B7A4:
+ ldr r1, [r7, 0x48]
+ ldr r2, _0803B7AC
+ b _0803B7CC
+ .align 2, 0
+_0803B7AC: .4byte gUnknown_80E885C
+_0803B7B0:
+ ldr r1, [r7, 0x48]
+ ldr r3, _0803B7C4
+ ldr r2, [r7, 0x4]
+ lsls r0, r2, 1
+ adds r0, r2
+ lsls r0, 2
+ adds r3, 0x4
+ adds r0, r3
+ ldr r2, [r0]
+ b _0803B7CC
+ .align 2, 0
+_0803B7C4: .4byte gUnknown_80E9F8C
+_0803B7C8:
+ ldr r1, [r7, 0x48]
+ ldr r2, _0803B7DC
+_0803B7CC:
+ ldr r3, [r7]
+ movs r0, 0
+ str r0, [sp]
+ movs r0, 0x15
+ bl xxx_call_draw_string
+ b _0803B8B4
+ .align 2, 0
+_0803B7DC: .4byte gUnknown_80E886C
+_0803B7E0:
+ ldr r0, [r7, 0x8]
+ ldr r4, [r0, 0x4]
+ ldrb r0, [r0]
+ adds r4, r0
+ lsls r4, 24
+ lsrs r4, 24
+ movs r1, 0x12
+ ldrsh r0, [r7, r1]
+ bl sub_808D994
+ adds r1, r0, 0
+ ldr r5, _0803B810
+ adds r0, r5, 0
+ bl strcpy
+ ldr r1, _0803B814
+ movs r0, 0x3
+ ands r4, r0
+ lsls r4, 2
+ adds r4, r1
+ ldr r1, [r4]
+ add r0, sp, 0x4
+ adds r2, r5, 0
+ b _0803B84C
+ .align 2, 0
+_0803B810: .4byte gUnknown_202DF98
+_0803B814: .4byte gUnknown_80EAE5C
+_0803B818:
+ ldr r0, [r7, 0x8]
+ ldr r4, [r0, 0x4]
+ ldrb r0, [r0]
+ adds r4, r0
+ lsls r4, 24
+ lsrs r4, 24
+ movs r1, 0x12
+ ldrsh r0, [r7, r1]
+ bl sub_808D994
+ adds r1, r0, 0
+ ldr r6, _0803B864
+ adds r0, r6, 0
+ bl strcpy
+ ldr r5, _0803B868
+ adds r0, r4, 0
+ movs r1, 0xA
+ bl __umodsi3
+ lsls r0, 24
+ lsrs r0, 22
+ adds r0, r5
+ ldr r1, [r0]
+ add r0, sp, 0x4
+ adds r2, r6, 0
+_0803B84C:
+ bl sub_800D158
+_0803B850:
+ ldr r1, [r7, 0x48]
+ ldr r3, [r7]
+ movs r0, 0
+ str r0, [sp]
+ movs r0, 0x15
+ add r2, sp, 0x4
+ bl xxx_call_draw_string
+ b _0803B8B4
+ .align 2, 0
+_0803B864: .4byte gUnknown_202DF98
+_0803B868: .4byte gUnknown_80E910C
+_0803B86C:
+ ldr r0, [r7, 0x8]
+ ldr r4, [r0, 0x4]
+ ldrb r0, [r0]
+ adds r4, r0
+ lsls r4, 24
+ lsrs r4, 24
+ movs r1, 0x12
+ ldrsh r0, [r7, r1]
+ bl sub_808D994
+ adds r1, r0, 0
+ ldr r6, _0803B8E8
+ adds r0, r6, 0
+ bl strcpy
+ ldr r5, _0803B8EC
+ adds r0, r4, 0
+ movs r1, 0xF
+ bl __umodsi3
+ lsls r0, 24
+ lsrs r0, 22
+ adds r0, r5
+ ldr r1, [r0]
+ add r0, sp, 0x4
+ adds r2, r6, 0
+ bl sub_800D158
+ ldr r1, [r7, 0x48]
+ ldr r3, [r7]
+ movs r0, 0
+ str r0, [sp]
+ movs r0, 0x15
+ add r2, sp, 0x4
+ bl xxx_call_draw_string
+_0803B8B4:
+ adds r0, r7, 0
+ adds r0, 0x40
+ ldrb r1, [r0]
+ adds r6, r0, 0
+ cmp r1, 0x7
+ bne _0803B916
+ ldr r5, [r7, 0xC]
+ cmp r5, 0
+ bne _0803B8F0
+ bl sub_8016028
+ movs r4, 0xB2
+ subs r4, r0
+ movs r1, 0x10
+ ldrsh r0, [r7, r1]
+ bl sub_808D994
+ adds r2, r0, 0
+ ldr r1, [r7, 0x48]
+ ldr r3, [r7]
+ str r5, [sp]
+ adds r0, r4, 0
+ bl xxx_call_draw_string
+ b _0803B956
+ .align 2, 0
+_0803B8E8: .4byte gUnknown_202DF98
+_0803B8EC: .4byte gUnknown_80E8C98
+_0803B8F0:
+ add r4, sp, 0xCC
+ adds r0, r4, 0
+ adds r1, r5, 0
+ movs r2, 0xA
+ bl sub_80922B4
+ bl sub_8016028
+ adds r1, r0, 0
+ movs r0, 0xB2
+ subs r0, r1
+ ldr r1, [r7, 0x48]
+ ldr r3, [r7]
+ movs r2, 0
+ str r2, [sp]
+ adds r2, r4, 0
+ bl xxx_call_draw_string
+ b _0803B956
+_0803B916:
+ adds r0, r7, 0
+ adds r0, 0x42
+ ldrb r0, [r0]
+ cmp r0, 0x1
+ bne _0803B93C
+ add r4, sp, 0xE0
+ ldr r1, [r7, 0x8]
+ adds r0, r4, 0
+ bl sub_8090228
+ ldr r1, _0803B938
+ add r0, sp, 0x4
+ adds r2, r4, 0
+ bl sub_800D158
+ b _0803B944
+ .align 2, 0
+_0803B938: .4byte gUnknown_80E8884
+_0803B93C:
+ ldr r1, [r7, 0x8]
+ add r0, sp, 0x4
+ bl sub_8090228
+_0803B944:
+ ldr r1, [r7, 0x48]
+ adds r1, 0xC
+ ldr r3, [r7]
+ movs r0, 0
+ str r0, [sp]
+ movs r0, 0x1D
+ add r2, sp, 0x4
+ bl xxx_call_draw_string
+_0803B956:
+ ldrb r0, [r6]
+ cmp r0, 0x7
+ bne _0803B962
+ ldr r0, [r7, 0x8]
+ movs r1, 0
+ b _0803B968
+_0803B962:
+ ldr r0, [r7, 0x8]
+ ldr r1, [r7, 0x54]
+ ldrb r1, [r1, 0x1]
+_0803B968:
+ bl sub_803C1D0
+ lsls r0, 24
+ lsrs r0, 24
+ bl sub_803C1F0
+ adds r2, r0, 0
+ ldr r1, [r7, 0x48]
+ ldr r3, [r7]
+ movs r0, 0
+ str r0, [sp]
+ movs r0, 0xB4
+ bl xxx_call_draw_string
+ add sp, 0x144
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_803B6D4
+
+ thumb_func_start sub_803B98C
+sub_803B98C:
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ sub sp, 0x1FC
+ adds r7, r0, 0
+ movs r0, 0
+ mov r9, r0
+ ldr r2, _0803B9E0
+ ldr r3, [r7]
+ str r0, [sp]
+ movs r0, 0xA
+ movs r1, 0
+ bl xxx_call_draw_string
+ ldr r1, _0803B9E4
+ adds r0, r7, 0
+ adds r0, 0x44
+ ldrb r0, [r0]
+ lsls r0, 2
+ adds r0, r1
+ ldr r2, [r0]
+ ldr r3, [r7]
+ mov r1, r9
+ str r1, [sp]
+ movs r0, 0x6C
+ movs r1, 0
+ bl xxx_call_draw_string
+ movs r0, 0x10
+ mov r9, r0
+ adds r0, r7, 0
+ adds r0, 0x41
+ ldrb r0, [r0]
+ cmp r0, 0x10
+ bls _0803B9D6
+ b _0803BCC0
+_0803B9D6:
+ lsls r0, 2
+ ldr r1, _0803B9E8
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_0803B9E0: .4byte gUnknown_80E888C
+_0803B9E4: .4byte gUnknown_80E8BCC
+_0803B9E8: .4byte _0803B9EC
+ .align 2, 0
+_0803B9EC:
+ .4byte _0803BA34
+ .4byte _0803BA3C
+ .4byte _0803BA44
+ .4byte _0803BA30
+ .4byte _0803BA4C
+ .4byte _0803BA6C
+ .4byte _0803BA8C
+ .4byte _0803BAA0
+ .4byte _0803BBF0
+ .4byte _0803BAE8
+ .4byte _0803BAF0
+ .4byte _0803BAF8
+ .4byte _0803BCC0
+ .4byte _0803BC58
+ .4byte _0803BB74
+ .4byte _0803BB10
+ .4byte _0803BB10
+_0803BA30:
+ ldr r2, [r7, 0x50]
+ b _0803BAFA
+_0803BA34:
+ ldr r2, _0803BA38
+ b _0803BAFA
+ .align 2, 0
+_0803BA38: .4byte gUnknown_80E88A0
+_0803BA3C:
+ ldr r2, _0803BA40
+ b _0803BAFA
+ .align 2, 0
+_0803BA40: .4byte gUnknown_80E88C8
+_0803BA44:
+ ldr r2, _0803BA48
+ b _0803BAFA
+ .align 2, 0
+_0803BA48: .4byte gUnknown_80E8920
+_0803BA4C:
+ ldr r4, _0803BA64
+ ldrb r1, [r7, 0x14]
+ adds r0, r4, 0
+ movs r2, 0
+ bl sub_8090DC4
+ ldr r1, _0803BA68
+ add r0, sp, 0x4
+ adds r2, r4, 0
+ bl sub_800D158
+ b _0803BACC
+ .align 2, 0
+_0803BA64: .4byte gUnknown_202DE58
+_0803BA68: .4byte gUnknown_80E8968
+_0803BA6C:
+ ldr r4, _0803BA84
+ ldrb r1, [r7, 0x14]
+ adds r0, r4, 0
+ movs r2, 0
+ bl sub_8090DC4
+ ldr r1, _0803BA88
+ add r0, sp, 0x4
+ adds r2, r4, 0
+ bl sub_800D158
+ b _0803BACC
+ .align 2, 0
+_0803BA84: .4byte gUnknown_202DE58
+_0803BA88: .4byte gUnknown_80E89B0
+_0803BA8C:
+ ldr r1, _0803BA9C
+ ldr r0, [r7, 0x4]
+ lsls r0, 3
+ adds r1, 0x4
+ adds r0, r1
+ ldr r2, [r0]
+ b _0803BAFA
+ .align 2, 0
+_0803BA9C: .4byte gUnknown_80E9920
+_0803BAA0:
+ movs r1, 0x12
+ ldrsh r0, [r7, r1]
+ bl sub_808D994
+ adds r1, r0, 0
+ ldr r4, _0803BAE0
+ adds r0, r4, 0
+ bl strcpy
+ ldr r2, _0803BAE4
+ ldr r1, [r7, 0x4]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ adds r2, 0x8
+ adds r0, r2
+ ldr r1, [r0]
+ add r0, sp, 0x4
+ adds r2, r4, 0
+ adds r3, r4, 0
+ bl sub_800D158
+_0803BACC:
+ ldr r3, [r7]
+ movs r0, 0
+ str r0, [sp]
+ movs r0, 0xA
+ mov r1, r9
+ add r2, sp, 0x4
+ bl xxx_call_draw_string
+ b _0803BD42
+ .align 2, 0
+_0803BAE0: .4byte gUnknown_202DF98
+_0803BAE4: .4byte gUnknown_80E9F8C
+_0803BAE8:
+ ldr r2, _0803BAEC
+ b _0803BAFA
+ .align 2, 0
+_0803BAEC: .4byte gUnknown_80E89FC
+_0803BAF0:
+ ldr r2, _0803BAF4
+ b _0803BAFA
+ .align 2, 0
+_0803BAF4: .4byte gUnknown_80E8A40
+_0803BAF8:
+ ldr r2, _0803BB0C
+_0803BAFA:
+ ldr r3, [r7]
+ movs r0, 0
+ str r0, [sp]
+ movs r0, 0xA
+ mov r1, r9
+ bl xxx_call_draw_string
+ b _0803BD42
+ .align 2, 0
+_0803BB0C: .4byte gUnknown_80E8A7C
+_0803BB10:
+ ldr r0, [r7, 0x8]
+ ldr r5, [r0, 0x4]
+ ldrb r4, [r0]
+ adds r4, r5, r4
+ lsls r4, 24
+ lsrs r4, 24
+ ldrb r0, [r0, 0x1]
+ adds r5, r0
+ lsls r5, 24
+ lsrs r5, 24
+ ldr r0, _0803BB68
+ mov r8, r0
+ ldrb r1, [r7, 0x14]
+ movs r2, 0
+ bl sub_8090DC4
+ ldr r6, _0803BB6C
+ adds r0, r4, 0
+ movs r1, 0x16
+ bl __umodsi3
+ lsls r0, 24
+ lsrs r0, 22
+ adds r0, r6
+ ldr r1, [r0]
+ add r0, sp, 0x4
+ mov r2, r8
+ bl sub_800D158
+ ldr r3, [r7]
+ movs r6, 0
+ str r6, [sp]
+ movs r0, 0xA
+ mov r1, r9
+ add r2, sp, 0x4
+ bl xxx_call_draw_string
+ movs r1, 0xC
+ add r9, r1
+ ldr r4, _0803BB70
+ adds r0, r5, 0
+ movs r1, 0x16
+ b _0803BD1A
+ .align 2, 0
+_0803BB68: .4byte gUnknown_202DE58
+_0803BB6C: .4byte gUnknown_80EB3F8
+_0803BB70: .4byte gUnknown_80EB72C
+_0803BB74:
+ ldr r0, [r7, 0x8]
+ ldr r5, [r0, 0x4]
+ ldrb r4, [r0]
+ adds r4, r5, r4
+ lsls r4, 24
+ lsrs r4, 24
+ ldrb r0, [r0, 0x1]
+ adds r5, r0
+ lsls r5, 24
+ lsrs r5, 24
+ movs r1, 0x12
+ ldrsh r0, [r7, r1]
+ bl sub_808D994
+ adds r1, r0, 0
+ ldr r0, _0803BBE4
+ mov r8, r0
+ bl strcpy
+ ldr r6, _0803BBE8
+ adds r0, r4, 0
+ movs r1, 0x14
+ bl __umodsi3
+ lsls r0, 24
+ lsrs r0, 22
+ adds r0, r6
+ ldr r1, [r0]
+ add r0, sp, 0x4
+ mov r2, r8
+ bl sub_800D158
+ ldr r3, [r7]
+ movs r4, 0
+ str r4, [sp]
+ movs r0, 0xA
+ mov r1, r9
+ add r2, sp, 0x4
+ bl xxx_call_draw_string
+ movs r1, 0xC
+ add r9, r1
+ ldr r1, _0803BBEC
+ movs r0, 0x3
+ ands r5, r0
+ lsls r5, 2
+ adds r5, r1
+ ldr r1, [r5]
+ add r0, sp, 0x4
+ mov r2, r8
+ bl sub_800D158
+ ldr r3, [r7]
+ str r4, [sp]
+ b _0803BD32
+ .align 2, 0
+_0803BBE4: .4byte gUnknown_202DF98
+_0803BBE8: .4byte gUnknown_80EAEB8
+_0803BBEC: .4byte gUnknown_80EB198
+_0803BBF0:
+ ldr r0, [r7, 0x8]
+ ldr r5, [r0, 0x4]
+ ldrb r4, [r0]
+ adds r4, r5, r4
+ lsls r4, 24
+ lsrs r4, 24
+ ldrb r0, [r0, 0x1]
+ adds r5, r0
+ lsls r5, 24
+ lsrs r5, 24
+ movs r1, 0x12
+ ldrsh r0, [r7, r1]
+ bl sub_808D994
+ adds r1, r0, 0
+ ldr r0, _0803BC4C
+ mov r8, r0
+ bl strcpy
+ ldr r6, _0803BC50
+ adds r0, r4, 0
+ movs r1, 0x6
+ bl __umodsi3
+ lsls r0, 24
+ lsrs r0, 22
+ adds r0, r6
+ ldr r1, [r0]
+ add r0, sp, 0x4
+ mov r2, r8
+ bl sub_800D158
+ ldr r3, [r7]
+ movs r6, 0
+ str r6, [sp]
+ movs r0, 0xA
+ mov r1, r9
+ add r2, sp, 0x4
+ bl xxx_call_draw_string
+ movs r1, 0xC
+ add r9, r1
+ ldr r4, _0803BC54
+ adds r0, r5, 0
+ movs r1, 0x6
+ b _0803BD1A
+ .align 2, 0
+_0803BC4C: .4byte gUnknown_202DF98
+_0803BC50: .4byte gUnknown_80EB220
+_0803BC54: .4byte gUnknown_80EB2F0
+_0803BC58:
+ ldr r0, [r7, 0x8]
+ ldr r5, [r0, 0x4]
+ ldrb r4, [r0]
+ adds r4, r5, r4
+ lsls r4, 24
+ lsrs r4, 24
+ ldrb r0, [r0, 0x1]
+ adds r5, r0
+ lsls r5, 24
+ lsrs r5, 24
+ movs r1, 0x12
+ ldrsh r0, [r7, r1]
+ bl sub_808D994
+ adds r1, r0, 0
+ ldr r0, _0803BCB4
+ mov r8, r0
+ bl strcpy
+ ldr r6, _0803BCB8
+ adds r0, r4, 0
+ movs r1, 0x2D
+ bl __umodsi3
+ lsls r0, 24
+ lsrs r0, 22
+ adds r0, r6
+ ldr r1, [r0]
+ add r0, sp, 0x4
+ mov r2, r8
+ bl sub_800D158
+ ldr r3, [r7]
+ movs r6, 0
+ str r6, [sp]
+ movs r0, 0xA
+ mov r1, r9
+ add r2, sp, 0x4
+ bl xxx_call_draw_string
+ movs r1, 0xC
+ add r9, r1
+ ldr r4, _0803BCBC
+ adds r0, r5, 0
+ movs r1, 0xA
+ b _0803BD1A
+ .align 2, 0
+_0803BCB4: .4byte gUnknown_202DF98
+_0803BCB8: .4byte gUnknown_80E91D4
+_0803BCBC: .4byte gUnknown_80E9820
+_0803BCC0:
+ ldr r0, [r7, 0x8]
+ ldr r5, [r0, 0x4]
+ ldrb r4, [r0]
+ adds r4, r5, r4
+ lsls r4, 24
+ lsrs r4, 24
+ ldrb r0, [r0, 0x1]
+ adds r5, r0
+ lsls r5, 24
+ lsrs r5, 24
+ movs r1, 0x10
+ ldrsh r0, [r7, r1]
+ bl sub_808D994
+ adds r1, r0, 0
+ ldr r0, _0803BD78
+ mov r8, r0
+ bl strcpy
+ ldr r6, _0803BD7C
+ adds r0, r4, 0
+ movs r1, 0xD
+ bl __umodsi3
+ lsls r0, 24
+ lsrs r0, 22
+ adds r0, r6
+ ldr r1, [r0]
+ add r0, sp, 0x4
+ mov r2, r8
+ bl sub_800D158
+ ldr r3, [r7]
+ movs r6, 0
+ str r6, [sp]
+ movs r0, 0xA
+ mov r1, r9
+ add r2, sp, 0x4
+ bl xxx_call_draw_string
+ movs r1, 0xC
+ add r9, r1
+ ldr r4, _0803BD80
+ adds r0, r5, 0
+ movs r1, 0xD
+_0803BD1A:
+ bl __umodsi3
+ lsls r0, 24
+ lsrs r0, 22
+ adds r0, r4
+ ldr r1, [r0]
+ add r0, sp, 0x4
+ mov r2, r8
+ bl sub_800D158
+ ldr r3, [r7]
+ str r6, [sp]
+_0803BD32:
+ movs r0, 0xA
+ mov r1, r9
+ add r2, sp, 0x4
+ bl xxx_call_draw_string
+ movs r0, 0xC
+ negs r0, r0
+ add r9, r0
+_0803BD42:
+ movs r1, 0x1C
+ add r9, r1
+ ldr r2, _0803BD84
+ ldr r3, [r7]
+ movs r0, 0
+ mov r8, r0
+ str r0, [sp]
+ movs r0, 0xA
+ mov r1, r9
+ bl xxx_call_draw_string
+ ldr r1, [r7, 0xC]
+ cmp r1, 0
+ bne _0803BD88
+ movs r1, 0x10
+ ldrsh r0, [r7, r1]
+ bl sub_808D994
+ adds r2, r0, 0
+ ldr r3, [r7]
+ mov r0, r8
+ str r0, [sp]
+ movs r0, 0x44
+ mov r1, r9
+ bl xxx_call_draw_string
+ b _0803BDBC
+ .align 2, 0
+_0803BD78: .4byte gUnknown_202DF98
+_0803BD7C: .4byte gUnknown_80E8DE4
+_0803BD80: .4byte gUnknown_80E8FB0
+_0803BD84: .4byte gUnknown_80E8AC8
+_0803BD88:
+ add r6, sp, 0x158
+ adds r0, r6, 0
+ movs r2, 0xA
+ bl sub_80922B4
+ add r4, sp, 0x16C
+ movs r0, 0x10
+ ldrsh r1, [r7, r0]
+ adds r0, r4, 0
+ bl sub_808D930
+ add r5, sp, 0x130
+ ldr r1, _0803BDE8
+ adds r0, r5, 0
+ adds r2, r6, 0
+ adds r3, r4, 0
+ bl sub_800D158
+ ldr r3, [r7]
+ mov r1, r8
+ str r1, [sp]
+ movs r0, 0x44
+ mov r1, r9
+ adds r2, r5, 0
+ bl xxx_call_draw_string
+_0803BDBC:
+ movs r0, 0xC
+ add r9, r0
+ ldr r2, _0803BDEC
+ ldr r3, [r7]
+ movs r0, 0
+ str r0, [sp]
+ movs r0, 0xA
+ mov r1, r9
+ bl xxx_call_draw_string
+ adds r0, r7, 0
+ adds r0, 0x42
+ ldrb r1, [r0]
+ adds r5, r0, 0
+ cmp r1, 0x6
+ bhi _0803BEB8
+ lsls r0, r1, 2
+ ldr r1, _0803BDF0
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_0803BDE8: .4byte gUnknown_80E8AD0
+_0803BDEC: .4byte gUnknown_80E8AE0
+_0803BDF0: .4byte _0803BDF4
+ .align 2, 0
+_0803BDF4:
+ .4byte _0803BE10
+ .4byte _0803BE30
+ .4byte _0803BE18
+ .4byte _0803BE48
+ .4byte _0803BE80
+ .4byte _0803BE60
+ .4byte _0803BEB8
+_0803BE10:
+ ldr r2, _0803BE14
+ b _0803BE4A
+ .align 2, 0
+_0803BE14: .4byte gUnknown_80E8AEC
+_0803BE18:
+ ldr r4, _0803BE28
+ ldrb r1, [r7, 0x14]
+ adds r0, r4, 0
+ movs r2, 0
+ bl sub_8090DC4
+ ldr r1, _0803BE2C
+ b _0803BE94
+ .align 2, 0
+_0803BE28: .4byte gUnknown_202DE58
+_0803BE2C: .4byte gUnknown_80E8AFC
+_0803BE30:
+ ldr r4, _0803BE40
+ ldrb r1, [r7, 0x14]
+ adds r0, r4, 0
+ movs r2, 0
+ bl sub_8090DC4
+ ldr r1, _0803BE44
+ b _0803BE94
+ .align 2, 0
+_0803BE40: .4byte gUnknown_202DE58
+_0803BE44: .4byte gUnknown_80E8B10
+_0803BE48:
+ ldr r2, _0803BE5C
+_0803BE4A:
+ ldr r3, [r7]
+ movs r0, 0
+ str r0, [sp]
+ movs r0, 0x44
+ mov r1, r9
+ bl xxx_call_draw_string
+ b _0803BEC8
+ .align 2, 0
+_0803BE5C: .4byte gUnknown_80E8B20
+_0803BE60:
+ movs r1, 0x12
+ ldrsh r0, [r7, r1]
+ bl sub_808D994
+ adds r1, r0, 0
+ ldr r4, _0803BE78
+ adds r0, r4, 0
+ bl strcpy
+ ldr r1, _0803BE7C
+ b _0803BE94
+ .align 2, 0
+_0803BE78: .4byte gUnknown_202DF98
+_0803BE7C: .4byte gUnknown_80E8B2C
+_0803BE80:
+ movs r1, 0x12
+ ldrsh r0, [r7, r1]
+ bl sub_808D994
+ adds r1, r0, 0
+ ldr r4, _0803BEB0
+ adds r0, r4, 0
+ bl strcpy
+ ldr r1, _0803BEB4
+_0803BE94:
+ add r0, sp, 0x4
+ adds r2, r4, 0
+ bl sub_800D158
+ ldr r3, [r7]
+ movs r0, 0
+ str r0, [sp]
+ movs r0, 0x44
+ mov r1, r9
+ add r2, sp, 0x4
+ bl xxx_call_draw_string
+ b _0803BEC8
+ .align 2, 0
+_0803BEB0: .4byte gUnknown_202DF98
+_0803BEB4: .4byte gUnknown_80E8B40
+_0803BEB8:
+ ldr r2, _0803BEF8
+ ldr r3, [r7]
+ movs r0, 0
+ str r0, [sp]
+ movs r0, 0x44
+ mov r1, r9
+ bl xxx_call_draw_string
+_0803BEC8:
+ movs r0, 0xC
+ add r9, r0
+ ldr r2, _0803BEFC
+ ldr r3, [r7]
+ movs r0, 0
+ str r0, [sp]
+ movs r0, 0xA
+ mov r1, r9
+ bl xxx_call_draw_string
+ ldrb r0, [r5]
+ cmp r0, 0x1
+ bne _0803BF04
+ add r4, sp, 0x180
+ ldr r1, [r7, 0x8]
+ adds r0, r4, 0
+ bl sub_8090228
+ ldr r1, _0803BF00
+ add r0, sp, 0x4
+ adds r2, r4, 0
+ bl sub_800D158
+ b _0803BF0C
+ .align 2, 0
+_0803BEF8: .4byte gSpecialMissionText
+_0803BEFC: .4byte gPlaceText
+_0803BF00: .4byte gUnknown_80E8884
+_0803BF04:
+ ldr r1, [r7, 0x8]
+ add r0, sp, 0x4
+ bl sub_8090228
+_0803BF0C:
+ ldr r3, [r7]
+ movs r0, 0
+ str r0, [sp]
+ movs r0, 0x44
+ mov r1, r9
+ add r2, sp, 0x4
+ bl xxx_call_draw_string
+ ldrb r0, [r5]
+ cmp r0, 0
+ bne _0803BF28
+ ldr r0, [r7, 0x8]
+ movs r1, 0
+ b _0803BF2E
+_0803BF28:
+ ldr r0, [r7, 0x8]
+ ldr r1, [r7, 0x54]
+ ldrb r1, [r1, 0x1]
+_0803BF2E:
+ bl sub_803C1D0
+ lsls r0, 24
+ lsrs r4, r0, 24
+ movs r1, 0xC
+ add r9, r1
+ ldr r2, _0803BF88
+ ldr r3, [r7]
+ movs r6, 0
+ str r6, [sp]
+ movs r0, 0xA
+ mov r1, r9
+ bl xxx_call_draw_string
+ adds r0, r4, 0
+ bl sub_803C1F0
+ adds r2, r0, 0
+ ldr r3, [r7]
+ str r6, [sp]
+ movs r0, 0x44
+ mov r1, r9
+ bl xxx_call_draw_string
+ movs r0, 0xC
+ add r9, r0
+ ldr r2, _0803BF8C
+ ldr r3, [r7]
+ str r6, [sp]
+ movs r0, 0xA
+ mov r1, r9
+ bl xxx_call_draw_string
+ adds r0, r7, 0
+ adds r0, 0x2E
+ ldrb r2, [r0]
+ adds r5, r0, 0
+ cmp r2, 0x4
+ bhi _0803C02C
+ lsls r0, r2, 2
+ ldr r1, _0803BF90
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_0803BF88: .4byte gDifficultyText
+_0803BF8C: .4byte gRewardText
+_0803BF90: .4byte _0803BF94
+ .align 2, 0
+_0803BF94:
+ .4byte _0803BFA8
+ .4byte _0803BFBC
+ .4byte _0803BFD0
+ .4byte _0803BFD0
+ .4byte _0803C00C
+_0803BFA8:
+ ldr r1, _0803BFB8
+ ldrb r0, [r5]
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, [r0]
+ ldr r2, [r7, 0x30]
+ add r0, sp, 0x4
+ b _0803BFEE
+ .align 2, 0
+_0803BFB8: .4byte gUnknown_80E8C48
+_0803BFBC:
+ ldr r1, _0803BFCC
+ ldrb r0, [r5]
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, [r0]
+ ldr r2, [r7, 0x30]
+ add r0, sp, 0x4
+ b _0803BFEE
+ .align 2, 0
+_0803BFCC: .4byte gUnknown_80E8C48
+_0803BFD0:
+ ldr r4, _0803C004
+ adds r0, r7, 0
+ adds r0, 0x34
+ ldrb r1, [r0]
+ adds r0, r4, 0
+ movs r2, 0
+ bl sub_8090DC4
+ ldr r1, _0803C008
+ ldrb r0, [r5]
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, [r0]
+ add r0, sp, 0x4
+ adds r2, r4, 0
+_0803BFEE:
+ bl sub_800D158
+ ldr r3, [r7]
+ movs r0, 0
+ str r0, [sp]
+ movs r0, 0x44
+ mov r1, r9
+ add r2, sp, 0x4
+ bl xxx_call_draw_string
+ b _0803C040
+ .align 2, 0
+_0803C004: .4byte gUnknown_202DE58
+_0803C008: .4byte gUnknown_80E8C48
+_0803C00C:
+ ldr r1, _0803C028
+ ldrb r0, [r5]
+ lsls r0, 2
+ adds r0, r1
+ ldr r2, [r0]
+ ldr r3, [r7]
+ movs r0, 0
+ str r0, [sp]
+ movs r0, 0x44
+ mov r1, r9
+ bl xxx_call_draw_string
+ b _0803C040
+ .align 2, 0
+_0803C028: .4byte gUnknown_80E8C48
+_0803C02C:
+ ldr r1, _0803C0D4
+ lsls r0, r2, 2
+ adds r0, r1
+ ldr r2, [r0]
+ ldr r3, [r7]
+ str r6, [sp]
+ movs r0, 0x44
+ mov r1, r9
+ bl xxx_call_draw_string
+_0803C040:
+ movs r1, 0xC
+ add r9, r1
+ adds r0, r7, 0
+ adds r0, 0x41
+ ldrb r1, [r0]
+ adds r0, r1, 0
+ subs r0, 0x9
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x2
+ bls _0803C0C6
+ cmp r1, 0x3
+ beq _0803C0C6
+ ldr r0, [r7, 0x54]
+ ldrb r0, [r0]
+ cmp r0, 0x5
+ bne _0803C0C6
+ ldr r2, _0803C0D8
+ ldr r3, [r7]
+ movs r0, 0
+ str r0, [sp]
+ movs r0, 0xA
+ mov r1, r9
+ bl xxx_call_draw_string
+ add r0, sp, 0x1E4
+ ldr r1, [r7, 0x54]
+ bl sub_803D414
+ movs r4, 0
+_0803C07C:
+ cmp r4, 0xC
+ bne _0803C084
+ movs r0, 0xC
+ add r9, r0
+_0803C084:
+ movs r5, 0x7
+ cmp r4, 0x3
+ ble _0803C09C
+ movs r5, 0x6
+ cmp r4, 0x7
+ ble _0803C09C
+ movs r5, 0x7
+ cmp r4, 0xF
+ ble _0803C09C
+ cmp r4, 0x13
+ bgt _0803C09C
+ movs r5, 0x6
+_0803C09C:
+ adds r0, r4, 0
+ movs r1, 0xC
+ bl __modsi3
+ adds r1, r0, 0
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 1
+ adds r0, 0x54
+ add r1, sp, 0x1E4
+ adds r1, r4
+ ldrb r2, [r1]
+ ldr r1, [r7]
+ str r1, [sp]
+ mov r1, r9
+ adds r3, r5, 0
+ bl sub_8012C60
+ adds r4, 0x1
+ cmp r4, 0x17
+ ble _0803C07C
+_0803C0C6:
+ add sp, 0x1FC
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0803C0D4: .4byte gUnknown_80E8C48
+_0803C0D8: .4byte gUnknown_80E8B7C
+ thumb_func_end sub_803B98C
+
+ thumb_func_start sub_803C0DC
+sub_803C0DC:
+ push {lr}
+ lsls r0, 16
+ asrs r0, 16
+ bl sub_808E770
+ lsls r0, 16
+ asrs r2, r0, 16
+ ldr r1, _0803C0F0
+ b _0803C102
+ .align 2, 0
+_0803C0F0: .4byte gUnknown_80E80E0
+_0803C0F4:
+ movs r3, 0
+ ldrsh r0, [r1, r3]
+ cmp r0, r2
+ bne _0803C100
+ movs r0, 0
+ b _0803C10C
+_0803C100:
+ adds r1, 0x2
+_0803C102:
+ movs r3, 0
+ ldrsh r0, [r1, r3]
+ cmp r0, 0
+ bne _0803C0F4
+ movs r0, 0x1
+_0803C10C:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_803C0DC
+
+ thumb_func_start sub_803C110
+sub_803C110:
+ push {r4,lr}
+ lsls r0, 16
+ asrs r4, r0, 16
+ adds r0, r4, 0
+ bl sub_8098134
+ lsls r0, 24
+ cmp r0, 0
+ beq _0803C180
+ adds r0, r4, 0
+ bl sub_808E770
+ lsls r0, 16
+ asrs r0, 16
+ cmp r4, r0
+ bne _0803C180
+ adds r0, r4, 0
+ bl sub_803C0DC
+ lsls r0, 24
+ cmp r0, 0
+ beq _0803C180
+ movs r0, 0x6
+ bl sub_80023E4
+ lsls r0, 24
+ cmp r0, 0
+ bne _0803C188
+ ldr r1, _0803C184
+ movs r2, 0
+ ldrsh r0, [r1, r2]
+ cmp r0, 0
+ beq _0803C168
+ adds r2, r1, 0
+_0803C154:
+ movs r3, 0
+ ldrsh r0, [r2, r3]
+ cmp r0, r4
+ beq _0803C180
+ adds r1, 0x2
+ adds r2, 0x2
+ movs r3, 0
+ ldrsh r0, [r1, r3]
+ cmp r0, 0
+ bne _0803C154
+_0803C168:
+ bl sub_808D33C
+ movs r1, 0x8
+ ldrsh r0, [r0, r1]
+ cmp r0, r4
+ beq _0803C180
+ bl sub_808D378
+ movs r2, 0x8
+ ldrsh r0, [r0, r2]
+ cmp r0, r4
+ bne _0803C188
+_0803C180:
+ movs r0, 0
+ b _0803C18A
+ .align 2, 0
+_0803C184: .4byte gUnknown_80E8126
+_0803C188:
+ movs r0, 0x1
+_0803C18A:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_803C110
+
+ .align 2,0
diff --git a/asm/wonder_mail.s b/asm/wonder_mail.s
index df22c33..352d41c 100644
--- a/asm/wonder_mail.s
+++ b/asm/wonder_mail.s
@@ -23027,13755 +23027,4 @@ _0803536C: .4byte gUnknown_203B33C
_08035370: .4byte 0x00000564
thumb_func_end sub_8035300
- thumb_func_start sub_8035374
-sub_8035374:
- push {lr}
- sub sp, 0x4
- mov r0, sp
- bl sub_80144A4
- cmp r0, 0
- bne _080353AC
- ldr r1, [sp]
- cmp r1, 0x19
- bne _08035390
- movs r0, 0x78
- bl sub_80338C4
- b _080353AC
-_08035390:
- cmp r1, 0x19
- blt _080353AC
- cmp r1, 0x22
- bgt _080353AC
- cmp r1, 0x1E
- blt _080353AC
- ldr r0, _080353B4
- ldr r0, [r0]
- ldr r2, _080353B8
- adds r0, r2
- str r1, [r0]
- movs r0, 0x7B
- bl sub_80338C4
-_080353AC:
- add sp, 0x4
- pop {r0}
- bx r0
- .align 2, 0
-_080353B4: .4byte gUnknown_203B33C
-_080353B8: .4byte 0x00000564
- thumb_func_end sub_8035374
-
- thumb_func_start sub_80353BC
-sub_80353BC:
- push {lr}
- sub sp, 0x4
- mov r0, sp
- bl sub_80144A4
- cmp r0, 0
- bne _080353F4
- ldr r1, [sp]
- cmp r1, 0x19
- bne _080353D8
- movs r0, 0x78
- bl sub_80338C4
- b _080353F4
-_080353D8:
- cmp r1, 0x19
- blt _080353F4
- cmp r1, 0x26
- bgt _080353F4
- cmp r1, 0x23
- blt _080353F4
- ldr r0, _080353FC
- ldr r0, [r0]
- ldr r2, _08035400
- adds r0, r2
- str r1, [r0]
- movs r0, 0x7D
- bl sub_80338C4
-_080353F4:
- add sp, 0x4
- pop {r0}
- bx r0
- .align 2, 0
-_080353FC: .4byte gUnknown_203B33C
-_08035400: .4byte 0x00000564
- thumb_func_end sub_80353BC
-
- thumb_func_start sub_8035404
-sub_8035404:
- push {r4,lr}
- sub sp, 0x4
- adds r4, r0, 0
- mov r0, sp
- bl sub_80144A4
- cmp r0, 0
- bne _0803541A
- adds r0, r4, 0
- bl sub_80338C4
-_0803541A:
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_8035404
-
- thumb_func_start sub_8035424
-sub_8035424:
- push {lr}
- movs r0, 0x6
- bl sub_80338C4
- pop {r0}
- bx r0
- thumb_func_end sub_8035424
-
- thumb_func_start sub_8035430
-sub_8035430:
- push {lr}
- movs r0, 0x4F
- bl sub_80338C4
- pop {r0}
- bx r0
- thumb_func_end sub_8035430
-
- thumb_func_start nullsub_50
-nullsub_50:
- bx lr
- thumb_func_end nullsub_50
-
- thumb_func_start nullsub_51
-nullsub_51:
- bx lr
- thumb_func_end nullsub_51
-
- thumb_func_start sub_8035444
-sub_8035444:
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- sub sp, 0x84
- mov r8, r0
- adds r5, r1, 0
- ldr r4, _080354C0
- movs r0, 0x6C
- movs r1, 0x8
- bl MemoryAlloc
- str r0, [r4]
- movs r1, 0
- str r1, [r0, 0x60]
- str r5, [r0, 0x64]
- mov r1, r8
- str r1, [r0, 0x68]
- ldr r2, _080354C4
- mov r12, r2
- mov r9, r4
- movs r3, 0
- movs r2, 0x3
-_08035472:
- ldr r1, [r4]
- adds r1, r3
- mov r0, r12
- ldm r0!, {r5-r7}
- stm r1!, {r5-r7}
- ldm r0!, {r5-r7}
- stm r1!, {r5-r7}
- adds r3, 0x18
- subs r2, 0x1
- cmp r2, 0
- bge _08035472
- mov r0, r9
- ldr r1, [r0]
- ldr r0, _080354C8
- ldm r0!, {r2-r4}
- stm r1!, {r2-r4}
- ldm r0!, {r5-r7}
- stm r1!, {r5-r7}
- bl ResetUnusedInputStruct
- mov r1, r9
- ldr r0, [r1]
- movs r1, 0x1
- movs r2, 0x1
- bl sub_800641C
- movs r0, 0x2
- bl sub_8099690
- movs r0, 0
- bl sub_80073B8
- mov r2, r8
- lsls r0, r2, 2
- ldr r1, _080354CC
- adds r0, r1
- ldr r1, [r0]
- movs r5, 0
- b _08035542
- .align 2, 0
-_080354C0: .4byte gUnknown_203B340
-_080354C4: .4byte gUnknown_80E4A10
-_080354C8: .4byte gUnknown_80E4A28
-_080354CC: .4byte gUnknown_80E591C
-_080354D0:
- ldr r2, [r1, 0x8]
- movs r3, 0x4
- ldrsh r0, [r1, r3]
- cmp r0, 0
- blt _080354DE
- adds r5, r0, 0
- b _080354E4
-_080354DE:
- movs r6, 0x4
- ldrsh r0, [r1, r6]
- subs r5, r0
-_080354E4:
- movs r7, 0x2
- ldrsh r6, [r1, r7]
- movs r3, 0
- ldrsh r0, [r1, r3]
- cmp r0, 0x1
- beq _080354FA
- cmp r0, 0x2
- beq _08035514
- adds r4, r1, 0
- adds r4, 0xC
- b _08035532
-_080354FA:
- add r3, sp, 0x4
- ldrb r0, [r2]
- adds r4, r1, 0
- adds r4, 0xC
- cmp r0, 0
- beq _0803552C
-_08035506:
- strb r0, [r3]
- adds r2, 0x1
- adds r3, 0x1
- ldrb r0, [r2]
- cmp r0, 0
- bne _08035506
- b _0803552C
-_08035514:
- add r3, sp, 0x4
- ldrb r0, [r2]
- adds r4, r1, 0
- adds r4, 0xC
- cmp r0, 0
- beq _0803552C
-_08035520:
- strb r0, [r3]
- adds r2, 0x1
- adds r3, 0x1
- ldrb r0, [r2]
- cmp r0, 0
- bne _08035520
-_0803552C:
- movs r0, 0
- strb r0, [r3]
- add r2, sp, 0x4
-_08035532:
- movs r0, 0
- str r0, [sp]
- adds r0, r6, 0
- adds r1, r5, 0
- movs r3, 0
- bl xxx_call_draw_string
- adds r1, r4, 0
-_08035542:
- ldr r0, [r1, 0x8]
- cmp r0, 0
- bne _080354D0
- movs r0, 0
- bl sub_80073E0
- movs r0, 0
- bl SelectCharmap
- ldr r2, _08035570
- movs r0, 0x9
- movs r1, 0
- ldr r2, [r2]
- bl sub_8099AFC
- movs r0, 0x1
- add sp, 0x84
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_08035570: .4byte gCreditsTable
- thumb_func_end sub_8035444
-
- thumb_func_start sub_8035574
-sub_8035574:
- push {r4,lr}
- ldr r1, _0803558C
- ldr r0, [r1]
- ldr r0, [r0, 0x60]
- adds r4, r1, 0
- cmp r0, 0x4
- bhi _08035654
- lsls r0, 2
- ldr r1, _08035590
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0803558C: .4byte gUnknown_203B340
-_08035590: .4byte _08035594
- .align 2, 0
-_08035594:
- .4byte _080355A8
- .4byte _080355D0
- .4byte _080355E8
- .4byte _08035610
- .4byte _08035638
-_080355A8:
- bl sub_8099B94
- lsls r0, 24
- cmp r0, 0
- bne _08035654
- ldr r0, _080355C8
- ldr r1, [r0]
- movs r0, 0x1
- str r0, [r1, 0x60]
- ldr r2, _080355CC
- movs r0, 0x9
- movs r1, 0x1E
- ldr r2, [r2]
- bl sub_8099A5C
- b _08035654
- .align 2, 0
-_080355C8: .4byte gUnknown_203B340
-_080355CC: .4byte gCreditsTable
-_080355D0:
- bl sub_8099B94
- lsls r0, 24
- cmp r0, 0
- bne _08035654
- ldr r0, _080355E4
- ldr r1, [r0]
- movs r0, 0x2
- str r0, [r1, 0x60]
- b _08035654
- .align 2, 0
-_080355E4: .4byte gUnknown_203B340
-_080355E8:
- ldr r1, [r4]
- ldr r0, [r1, 0x64]
- cmp r0, 0
- bgt _08035600
- movs r0, 0x3
- str r0, [r1, 0x60]
- ldr r2, _0803560C
- movs r0, 0x9
- movs r1, 0x1E
- ldr r2, [r2]
- bl sub_8099AFC
-_08035600:
- ldr r1, [r4]
- ldr r0, [r1, 0x64]
- subs r0, 0x1
- str r0, [r1, 0x64]
- b _08035654
- .align 2, 0
-_0803560C: .4byte gCreditsTable
-_08035610:
- bl sub_8099B94
- lsls r0, 24
- cmp r0, 0
- bne _08035654
- bl ResetUnusedInputStruct
- movs r0, 0
- movs r1, 0x1
- movs r2, 0x1
- bl sub_800641C
- ldr r0, _08035634
- ldr r1, [r0]
- movs r0, 0x4
- str r0, [r1, 0x60]
- b _08035654
- .align 2, 0
-_08035634: .4byte gUnknown_203B340
-_08035638:
- movs r0, 0
- bl sub_8099690
- ldr r2, _08035650
- movs r0, 0x1
- movs r1, 0
- ldr r2, [r2]
- bl sub_8099A5C
- movs r0, 0x3
- b _08035656
- .align 2, 0
-_08035650: .4byte gCreditsTable
-_08035654:
- movs r0, 0
-_08035656:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_8035574
-
- thumb_func_start sub_803565C
-sub_803565C:
- push {r4,lr}
- ldr r4, _08035674
- ldr r0, [r4]
- cmp r0, 0
- beq _0803566E
- bl MemoryFree
- movs r0, 0
- str r0, [r4]
-_0803566E:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08035674: .4byte gUnknown_203B340
- thumb_func_end sub_803565C
-
- thumb_func_start sub_8035678
-sub_8035678:
- push {r4,lr}
- ldr r4, _0803569C
- movs r0, 0x8
- movs r1, 0x8
- bl MemoryAlloc
- str r0, [r4]
- movs r1, 0
- str r1, [r0]
- str r1, [r0, 0x4]
- movs r0, 0
- movs r1, 0x39
- bl sub_80015C0
- movs r0, 0x1
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_0803569C: .4byte gUnknown_203B344
- thumb_func_end sub_8035678
-
- thumb_func_start sub_80356A0
-sub_80356A0:
- push {r4,lr}
- ldr r0, _080356C4
- ldrh r4, [r0]
- ldr r3, _080356C8
- ldr r2, _080356CC
- ldr r1, [r2]
- ldr r0, [r1, 0x4]
- lsls r0, 1
- adds r0, r3
- ldrh r3, [r0]
- ldr r0, [r1]
- cmp r0, 0x4
- bhi _08035734
- lsls r0, 2
- ldr r1, _080356D0
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080356C4: .4byte gRealInputs
-_080356C8: .4byte gUnknown_80E5990
-_080356CC: .4byte gUnknown_203B344
-_080356D0: .4byte _080356D4
- .align 2, 0
-_080356D4:
- .4byte _08035728
- .4byte _080356E8
- .4byte _08035710
- .4byte _0803574C
- .4byte _08035730
-_080356E8:
- cmp r3, 0
- bne _080356F4
- ldr r1, [r2]
- movs r0, 0x4
- str r0, [r1]
- b _08035734
-_080356F4:
- cmp r4, r3
- bne _08035700
- ldr r1, [r2]
- movs r0, 0x2
- str r0, [r1]
- b _08035734
-_08035700:
- ands r3, r4
- cmp r3, r4
- bne _08035728
- ldr r1, [r2]
- ldr r0, [r1, 0x4]
- cmp r0, 0
- bne _08035734
- b _0803572A
-_08035710:
- cmp r4, 0
- bne _08035722
- ldr r1, [r2]
- movs r0, 0x1
- str r0, [r1]
- ldr r0, [r1, 0x4]
- adds r0, 0x1
- str r0, [r1, 0x4]
- b _08035734
-_08035722:
- ands r3, r4
- cmp r3, r4
- beq _08035734
-_08035728:
- ldr r1, [r2]
-_0803572A:
- movs r0, 0x3
- str r0, [r1]
- b _08035734
-_08035730:
- movs r0, 0x3
- b _0803574E
-_08035734:
- movs r0, 0
- movs r1, 0x39
- bl sub_8001658
- cmp r0, 0
- bne _08035744
- movs r0, 0
- b _0803574E
-_08035744:
- ldr r0, _08035754
- ldr r1, [r0]
- movs r0, 0x3
- str r0, [r1]
-_0803574C:
- movs r0, 0x2
-_0803574E:
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_08035754: .4byte gUnknown_203B344
- thumb_func_end sub_80356A0
-
- thumb_func_start sub_8035758
-sub_8035758:
- push {r4,lr}
- ldr r4, _08035770
- ldr r0, [r4]
- cmp r0, 0
- beq _0803576A
- bl MemoryFree
- movs r0, 0
- str r0, [r4]
-_0803576A:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08035770: .4byte gUnknown_203B344
- thumb_func_end sub_8035758
-
- thumb_func_start InitMainMenu
-InitMainMenu:
- push {r4,r5,lr}
- ldr r5, _080357C8
- ldr r0, [r5]
- cmp r0, 0
- bne _08035790
- movs r0, 0x40
- movs r1, 0x8
- bl MemoryAlloc
- str r0, [r5]
- movs r1, 0
- movs r2, 0x40
- bl MemoryFill8
-_08035790:
- ldr r0, [r5]
- ldr r1, _080357CC
- str r1, [r0]
- movs r2, 0x1
- str r2, [r0, 0x4]
- str r2, [r0, 0x8]
- adds r1, 0x23
- strh r1, [r0, 0x38]
- movs r1, 0x1
- negs r1, r1
- str r1, [r0, 0x3C]
- adds r0, 0x2E
- movs r4, 0
- strb r4, [r0]
- ldr r0, [r5]
- adds r0, 0x2C
- strb r2, [r0]
- ldr r0, [r5]
- adds r0, 0x2D
- strb r4, [r0]
- bl sub_8035DA0
- ldr r0, [r5]
- adds r0, 0x3A
- strb r4, [r0]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080357C8: .4byte gUnknown_203B348
-_080357CC: .4byte 0x0000ffdc
- thumb_func_end InitMainMenu
-
- thumb_func_start sub_80357D0
-sub_80357D0:
- push {r4,lr}
- ldr r4, _080357E8
- ldr r0, [r4]
- cmp r0, 0
- beq _080357E2
- bl MemoryFree
- movs r0, 0
- str r0, [r4]
-_080357E2:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080357E8: .4byte gUnknown_203B348
- thumb_func_end sub_80357D0
-
- thumb_func_start SetUpMenu
-SetUpMenu:
- push {lr}
- ldr r0, _08035810
- ldr r0, [r0]
- ldr r1, [r0]
- ldr r0, [r0, 0x4]
- cmp r1, r0
- bne _080357FC
- b _08035958
-_080357FC:
- subs r0, 0x1
- cmp r0, 0x2D
- bls _08035804
- b _08035950
-_08035804:
- lsls r0, 2
- ldr r1, _08035814
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08035810: .4byte gUnknown_203B348
-_08035814: .4byte _08035818
- .align 2, 0
-_08035818:
- .4byte _080358D0
- .4byte _08035950
- .4byte _08035950
- .4byte _08035950
- .4byte _08035950
- .4byte _080358E0
- .4byte _080358E0
- .4byte _080358E0
- .4byte _080358E0
- .4byte _08035934
- .4byte _0803590C
- .4byte _080358F0
- .4byte _08035912
- .4byte _08035918
- .4byte _0803591E
- .4byte _0803594C
- .4byte _08035950
- .4byte _08035950
- .4byte _080358F6
- .4byte _080358F6
- .4byte _08035950
- .4byte _08035950
- .4byte _08035950
- .4byte _08035950
- .4byte _08035950
- .4byte _08035950
- .4byte _08035950
- .4byte _08035950
- .4byte _08035950
- .4byte _08035950
- .4byte _08035950
- .4byte _08035950
- .4byte _08035924
- .4byte _08035924
- .4byte _08035950
- .4byte _08035950
- .4byte _08035950
- .4byte _08035950
- .4byte _08035950
- .4byte _08035950
- .4byte _0803593A
- .4byte _0803593A
- .4byte _0803593A
- .4byte _0803593A
- .4byte _0803593A
- .4byte _0803593A
-_080358D0:
- bl sub_8094C14
- movs r0, 0
- bl sub_8099690
- bl sub_8035E10
- b _08035950
-_080358E0:
- ldr r0, _080358EC
- ldr r0, [r0]
- ldr r0, [r0, 0x4]
- bl sub_8039254
- b _08035950
- .align 2, 0
-_080358EC: .4byte gUnknown_203B348
-_080358F0:
- bl sub_8036400
- b _08035950
-_080358F6:
- ldr r0, _08035908
- ldr r0, [r0]
- ldr r0, [r0, 0x4]
- bl sub_8035DB4
- bl sub_8036FDC
- b _08035950
- .align 2, 0
-_08035908: .4byte gUnknown_203B348
-_0803590C:
- bl sub_803225C
- b _08035950
-_08035912:
- bl sub_80398AC
- b _08035950
-_08035918:
- bl sub_803A1D8
- b _08035950
-_0803591E:
- bl sub_803A1E4
- b _08035950
-_08035924:
- ldr r0, _08035930
- ldr r0, [r0]
- ldr r0, [r0, 0x4]
- bl sub_8038900
- b _08035950
- .align 2, 0
-_08035930: .4byte gUnknown_203B348
-_08035934:
- bl sub_80382A0
- b _08035950
-_0803593A:
- ldr r0, _08035948
- ldr r0, [r0]
- ldr r0, [r0, 0x4]
- bl sub_803850C
- b _08035950
- .align 2, 0
-_08035948: .4byte gUnknown_203B348
-_0803594C:
- bl sub_803A200
-_08035950:
- ldr r0, _0803595C
- ldr r1, [r0]
- ldr r0, [r1, 0x4]
- str r0, [r1]
-_08035958:
- pop {r0}
- bx r0
- .align 2, 0
-_0803595C: .4byte gUnknown_203B348
- thumb_func_end SetUpMenu
-
- thumb_func_start UpdateMenu
-UpdateMenu:
- push {lr}
- ldr r2, _0803597C
- ldr r0, _08035980
- ldr r0, [r0]
- ldr r0, [r0, 0x4]
- subs r0, 0x1
- cmp r0, 0x2D
- bls _08035972
- b _08035AA6
-_08035972:
- lsls r0, 2
- ldr r1, _08035984
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0803597C: .4byte 0x0000ffdc
-_08035980: .4byte gUnknown_203B348
-_08035984: .4byte _08035988
- .align 2, 0
-_08035988:
- .4byte _08035A40
- .4byte _08035AA6
- .4byte _08035AA6
- .4byte _08035AA6
- .4byte _08035AA6
- .4byte _08035A46
- .4byte _08035A46
- .4byte _08035A46
- .4byte _08035A46
- .4byte _08035A8E
- .4byte _08035A52
- .4byte _08035A4C
- .4byte _08035A58
- .4byte _08035A5E
- .4byte _08035A70
- .4byte _08035AA0
- .4byte _08035AA6
- .4byte _08035AA6
- .4byte _08035AA6
- .4byte _08035AA6
- .4byte _08035AA6
- .4byte _08035AA6
- .4byte _08035AA6
- .4byte _08035AA6
- .4byte _08035AA6
- .4byte _08035AA6
- .4byte _08035AA6
- .4byte _08035AA6
- .4byte _08035AA6
- .4byte _08035AA6
- .4byte _08035AA6
- .4byte _08035AA6
- .4byte _08035A88
- .4byte _08035A88
- .4byte _08035AA6
- .4byte _08035A94
- .4byte _08035A94
- .4byte _08035A94
- .4byte _08035A94
- .4byte _08035A94
- .4byte _08035A9A
- .4byte _08035A9A
- .4byte _08035A9A
- .4byte _08035A9A
- .4byte _08035A9A
- .4byte _08035A9A
-_08035A40:
- bl sub_8035EEC
- b _08035AA4
-_08035A46:
- bl sub_803941C
- b _08035AA4
-_08035A4C:
- bl sub_8036448
- b _08035A62
-_08035A52:
- bl sub_8032318
- b _08035A62
-_08035A58:
- bl sub_8039928
- b _08035A62
-_08035A5E:
- bl sub_803A1DC
-_08035A62:
- movs r2, 0x1
- cmp r0, 0x3
- beq _08035AA6
- ldr r2, _08035A6C
- b _08035AA6
- .align 2, 0
-_08035A6C: .4byte 0x0000ffdc
-_08035A70:
- bl sub_803A1E8
- movs r2, 0x5
- cmp r0, 0x3
- beq _08035AA6
- ldr r2, _08035A84
- cmp r0, 0x2
- bne _08035AA6
- movs r2, 0x1
- b _08035AA6
- .align 2, 0
-_08035A84: .4byte 0x0000ffdc
-_08035A88:
- bl sub_8038A90
- b _08035AA4
-_08035A8E:
- bl sub_80382C0
- b _08035AA4
-_08035A94:
- bl sub_80383D4
- b _08035AA4
-_08035A9A:
- bl sub_8038630
- b _08035AA4
-_08035AA0:
- bl sub_803A2A4
-_08035AA4:
- adds r2, r0, 0
-_08035AA6:
- ldr r0, _08035AB8
- cmp r2, r0
- beq _08035AB2
- ldr r0, _08035ABC
- ldr r0, [r0]
- str r2, [r0, 0x4]
-_08035AB2:
- adds r0, r2, 0
- pop {r1}
- bx r1
- .align 2, 0
-_08035AB8: .4byte 0x0000ffdc
-_08035ABC: .4byte gUnknown_203B348
- thumb_func_end UpdateMenu
-
- thumb_func_start CleanUpMenu
-CleanUpMenu:
- push {lr}
- ldr r0, _08035AE4
- ldr r0, [r0]
- ldr r1, [r0, 0x8]
- ldr r0, [r0, 0x4]
- cmp r1, r0
- bne _08035AD0
- b _08035BF8
-_08035AD0:
- subs r0, r1, 0x1
- cmp r0, 0x2D
- bls _08035AD8
- b _08035BF0
-_08035AD8:
- lsls r0, 2
- ldr r1, _08035AE8
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08035AE4: .4byte gUnknown_203B348
-_08035AE8: .4byte _08035AEC
- .align 2, 0
-_08035AEC:
- .4byte _08035BA4
- .4byte _08035BF0
- .4byte _08035BF0
- .4byte _08035BF0
- .4byte _08035BF0
- .4byte _08035BAA
- .4byte _08035BAA
- .4byte _08035BAA
- .4byte _08035BAA
- .4byte _08035BDA
- .4byte _08035BBC
- .4byte _08035BB0
- .4byte _08035BC2
- .4byte _08035BC8
- .4byte _08035BCE
- .4byte _08035BEC
- .4byte _08035BF0
- .4byte _08035BF0
- .4byte _08035BB6
- .4byte _08035BB6
- .4byte _08035BF0
- .4byte _08035BF0
- .4byte _08035BF0
- .4byte _08035BF0
- .4byte _08035BF0
- .4byte _08035BF0
- .4byte _08035BF0
- .4byte _08035BF0
- .4byte _08035BF0
- .4byte _08035BF0
- .4byte _08035BF0
- .4byte _08035BF0
- .4byte _08035BD4
- .4byte _08035BD4
- .4byte _08035BF0
- .4byte _08035BE0
- .4byte _08035BE0
- .4byte _08035BE0
- .4byte _08035BE0
- .4byte _08035BE0
- .4byte _08035BE6
- .4byte _08035BE6
- .4byte _08035BE6
- .4byte _08035BE6
- .4byte _08035BE6
- .4byte _08035BE6
-_08035BA4:
- bl sub_8035EC0
- b _08035BF0
-_08035BAA:
- bl sub_80393F0
- b _08035BF0
-_08035BB0:
- bl sub_8036B04
- b _08035BF0
-_08035BB6:
- bl sub_80370D4
- b _08035BF0
-_08035BBC:
- bl sub_80327E4
- b _08035BF0
-_08035BC2:
- bl sub_80399E4
- b _08035BF0
-_08035BC8:
- bl nullsub_55
- b _08035BF0
-_08035BCE:
- bl sub_803A1EC
- b _08035BF0
-_08035BD4:
- bl sub_8038A5C
- b _08035BF0
-_08035BDA:
- bl sub_80382AC
- b _08035BF0
-_08035BE0:
- bl sub_80383A8
- b _08035BF0
-_08035BE6:
- bl sub_8038604
- b _08035BF0
-_08035BEC:
- bl sub_803A278
-_08035BF0:
- ldr r0, _08035BFC
- ldr r1, [r0]
- ldr r0, [r1, 0x4]
- str r0, [r1, 0x8]
-_08035BF8:
- pop {r0}
- bx r0
- .align 2, 0
-_08035BFC: .4byte gUnknown_203B348
- thumb_func_end CleanUpMenu
-
- thumb_func_start sub_8035C00
-sub_8035C00:
- ldr r1, _08035C0C
- ldr r1, [r1]
- ldr r0, [r0]
- str r0, [r1, 0x2C]
- bx lr
- .align 2, 0
-_08035C0C: .4byte gUnknown_203B348
- thumb_func_end sub_8035C00
-
- thumb_func_start sub_8035C10
-sub_8035C10:
- ldr r0, _08035C18
- ldr r0, [r0]
- adds r0, 0x2C
- bx lr
- .align 2, 0
-_08035C18: .4byte gUnknown_203B348
- thumb_func_end sub_8035C10
-
- thumb_func_start sub_8035C1C
-sub_8035C1C:
- ldr r2, _08035C38
- ldr r0, [r2]
- adds r0, 0x2E
- movs r3, 0
- strb r3, [r0]
- ldr r0, [r2]
- adds r0, 0x2C
- movs r1, 0x1
- strb r1, [r0]
- ldr r0, [r2]
- adds r0, 0x2D
- strb r3, [r0]
- bx lr
- .align 2, 0
-_08035C38: .4byte gUnknown_203B348
- thumb_func_end sub_8035C1C
-
- thumb_func_start SetMenuItems
-SetMenuItems:
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x8
- adds r6, r0, 0
- adds r4, r1, 0
- adds r5, r2, 0
- ldr r0, [sp, 0x24]
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- lsls r0, r5, 1
- adds r0, r5
- lsls r0, 3
- adds r0, r4
- ldm r3!, {r1,r2,r7}
- stm r0!, {r1,r2,r7}
- ldm r3!, {r1,r2,r7}
- stm r0!, {r1,r2,r7}
- bl ResetUnusedInputStruct
- adds r0, r4, 0
- movs r1, 0x1
- movs r2, 0x1
- bl sub_800641C
- mov r0, r8
- cmp r0, 0
- beq _08035C90
- lsls r4, r5, 2
- adds r0, r4, r5
- lsls r0, 4
- adds r0, r6, r0
- ldr r1, [sp, 0x28]
- str r1, [sp]
- str r5, [sp, 0x4]
- ldr r1, [sp, 0x20]
- movs r2, 0
- movs r3, 0
- bl sub_8012D60
- b _08035CA8
-_08035C90:
- lsls r4, r5, 2
- adds r0, r4, r5
- lsls r0, 4
- adds r0, r6, r0
- mov r1, r8
- str r1, [sp]
- str r5, [sp, 0x4]
- ldr r1, [sp, 0x20]
- movs r2, 0
- movs r3, 0
- bl sub_8012E04
-_08035CA8:
- adds r0, r4, r5
- lsls r0, 4
- adds r0, r6
- adds r0, 0x4C
- movs r1, 0x1
- strb r1, [r0]
- add sp, 0x8
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end SetMenuItems
-
- thumb_func_start sub_8035CC0
-sub_8035CC0:
- push {r4,r5,lr}
- adds r5, r0, 0
- adds r4, r1, 0
- bl sub_8006518
- lsls r1, r4, 1
- adds r1, r4
- lsls r1, 3
- adds r1, r5
- ldr r0, _08035CF0
- ldm r0!, {r2-r4}
- stm r1!, {r2-r4}
- ldm r0!, {r2-r4}
- stm r1!, {r2-r4}
- bl ResetUnusedInputStruct
- adds r0, r5, 0
- movs r1, 0x1
- movs r2, 0x1
- bl sub_800641C
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08035CF0: .4byte gUnknown_80E59A8
- thumb_func_end sub_8035CC0
-
- thumb_func_start sub_8035CF4
-sub_8035CF4:
- push {lr}
- adds r3, r0, 0
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 4
- adds r0, r3
- adds r1, r0, 0
- adds r1, 0x4C
- strb r2, [r1]
- adds r2, r0, 0
- adds r2, 0x4D
- movs r1, 0x1
- strb r1, [r2]
- subs r1, 0x2
- str r1, [r0, 0x48]
- bl sub_8012EBC
- pop {r0}
- bx r0
- thumb_func_end sub_8035CF4
-
- thumb_func_start sub_8035D1C
-sub_8035D1C:
- ldr r0, _08035D28
- ldr r1, [r0]
- ldr r0, _08035D2C
- strh r0, [r1, 0x38]
- bx lr
- .align 2, 0
-_08035D28: .4byte gUnknown_203B348
-_08035D2C: .4byte 0x0000ffff
- thumb_func_end sub_8035D1C
-
- thumb_func_start sub_8035D30
-sub_8035D30:
- ldr r1, _08035D38
- ldr r1, [r1]
- strh r0, [r1, 0x38]
- bx lr
- .align 2, 0
-_08035D38: .4byte gUnknown_203B348
- thumb_func_end sub_8035D30
-
- thumb_func_start sub_8035D3C
-sub_8035D3C:
- ldr r0, _08035D48
- ldr r0, [r0]
- movs r1, 0x38
- ldrsh r0, [r0, r1]
- bx lr
- .align 2, 0
-_08035D48: .4byte gUnknown_203B348
- thumb_func_end sub_8035D3C
-
- thumb_func_start sub_8035D4C
-sub_8035D4C:
- ldr r0, _08035D54
- ldr r0, [r0]
- bx lr
- .align 2, 0
-_08035D54: .4byte gUnknown_203B348
- thumb_func_end sub_8035D4C
-
- thumb_func_start sub_8035D58
-sub_8035D58:
- ldr r0, _08035D64
- ldr r1, [r0]
- movs r0, 0x1
- negs r0, r0
- str r0, [r1, 0x3C]
- bx lr
- .align 2, 0
-_08035D64: .4byte gUnknown_203B348
- thumb_func_end sub_8035D58
-
- thumb_func_start sub_8035D68
-sub_8035D68:
- ldr r1, _08035D70
- ldr r1, [r1]
- str r0, [r1, 0x3C]
- bx lr
- .align 2, 0
-_08035D70: .4byte gUnknown_203B348
- thumb_func_end sub_8035D68
-
- thumb_func_start sub_8035D74
-sub_8035D74:
- ldr r0, _08035D7C
- ldr r0, [r0]
- ldr r0, [r0, 0x3C]
- bx lr
- .align 2, 0
-_08035D7C: .4byte gUnknown_203B348
- thumb_func_end sub_8035D74
-
- thumb_func_start sub_8035D80
-sub_8035D80:
- ldr r1, _08035D90
- ldr r2, [r1]
- ldr r1, [r0, 0x4]
- ldr r0, [r0]
- str r0, [r2, 0x30]
- str r1, [r2, 0x34]
- bx lr
- .align 2, 0
-_08035D90: .4byte gUnknown_203B348
- thumb_func_end sub_8035D80
-
- thumb_func_start sub_8035D94
-sub_8035D94:
- ldr r0, _08035D9C
- ldr r0, [r0]
- adds r0, 0x30
- bx lr
- .align 2, 0
-_08035D9C: .4byte gUnknown_203B348
- thumb_func_end sub_8035D94
-
- thumb_func_start sub_8035DA0
-sub_8035DA0:
- ldr r2, _08035DB0
- ldr r0, [r2]
- adds r0, 0x30
- movs r1, 0
- strb r1, [r0]
- ldr r0, [r2]
- str r1, [r0, 0x34]
- bx lr
- .align 2, 0
-_08035DB0: .4byte gUnknown_203B348
- thumb_func_end sub_8035DA0
-
- thumb_func_start sub_8035DB4
-sub_8035DB4:
- push {lr}
- movs r1, 0x8
- subs r0, 0x13
- cmp r0, 0x7
- bhi _08035E0A
- lsls r0, 2
- ldr r1, _08035DC8
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08035DC8: .4byte _08035DCC
- .align 2, 0
-_08035DCC:
- .4byte _08035DEC
- .4byte _08035DF0
- .4byte _08035DF4
- .4byte _08035DF8
- .4byte _08035DFC
- .4byte _08035E00
- .4byte _08035E04
- .4byte _08035E08
-_08035DEC:
- movs r1, 0
- b _08035E0A
-_08035DF0:
- movs r1, 0x1
- b _08035E0A
-_08035DF4:
- movs r1, 0x2
- b _08035E0A
-_08035DF8:
- movs r1, 0x3
- b _08035E0A
-_08035DFC:
- movs r1, 0x4
- b _08035E0A
-_08035E00:
- movs r1, 0x5
- b _08035E0A
-_08035E04:
- movs r1, 0x6
- b _08035E0A
-_08035E08:
- movs r1, 0x7
-_08035E0A:
- adds r0, r1, 0
- pop {r1}
- bx r1
- thumb_func_end sub_8035DB4
-
- thumb_func_start sub_8035E10
-sub_8035E10:
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- ldr r5, _08035EB8
- ldr r0, [r5]
- cmp r0, 0
- bne _08035E34
- movs r4, 0xD4
- lsls r4, 1
- adds r0, r4, 0
- movs r1, 0x8
- bl MemoryAlloc
- str r0, [r5]
- movs r1, 0
- adds r2, r4, 0
- bl MemoryFill8
-_08035E34:
- mov r12, r5
- movs r0, 0xA2
- lsls r0, 1
- mov r8, r0
- ldr r4, _08035EBC
- movs r3, 0
- movs r2, 0x3
-_08035E42:
- mov r5, r12
- ldr r1, [r5]
- adds r1, r3
- add r1, r8
- adds r0, r4, 0
- ldm r0!, {r5-r7}
- stm r1!, {r5-r7}
- ldm r0!, {r5-r7}
- stm r1!, {r5-r7}
- adds r3, 0x18
- subs r2, 0x1
- cmp r2, 0
- bge _08035E42
- bl ResetUnusedInputStruct
- ldr r4, _08035EB8
- ldr r0, [r4]
- movs r6, 0xA2
- lsls r6, 1
- adds r0, r6
- movs r1, 0x1
- movs r2, 0x1
- bl sub_800641C
- bl sub_803628C
- ldr r0, [r4]
- movs r7, 0xD2
- lsls r7, 1
- adds r0, r7
- movs r1, 0x1
- negs r1, r1
- str r1, [r0]
- bl SetMainMenuType
- lsls r0, 24
- cmp r0, 0
- beq _08035E9A
- ldr r0, [r4]
- adds r0, 0x4
- movs r1, 0x2
- movs r2, 0
- bl sub_8035CF4
-_08035E9A:
- ldr r0, [r4]
- adds r0, 0x4
- movs r1, 0
- movs r2, 0x1
- bl sub_8035CF4
- ldr r1, [r4]
- movs r0, 0x1
- str r0, [r1]
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08035EB8: .4byte gUnknown_203B34C
-_08035EBC: .4byte gUnknown_80E59C8
- thumb_func_end sub_8035E10
-
- thumb_func_start sub_8035EC0
-sub_8035EC0:
- push {r4,lr}
- bl ResetUnusedInputStruct
- movs r0, 0
- movs r1, 0x1
- movs r2, 0x1
- bl sub_800641C
- ldr r4, _08035EE8
- ldr r0, [r4]
- cmp r0, 0
- beq _08035EE0
- bl MemoryFree
- movs r0, 0
- str r0, [r4]
-_08035EE0:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08035EE8: .4byte gUnknown_203B34C
- thumb_func_end sub_8035EC0
-
- thumb_func_start sub_8035EEC
-sub_8035EEC:
- push {r4-r6,lr}
- sub sp, 0x4
- ldr r6, _08035F64
- str r6, [sp]
- ldr r4, _08035F68
- ldr r0, [r4]
- ldr r5, [r0]
- cmp r5, 0xC
- beq _08035FB8
- cmp r5, 0xC
- bls _08035F04
- b _0803601A
-_08035F04:
- cmp r5, 0x1
- beq _08035F0A
- b _0803601A
-_08035F0A:
- adds r0, 0xA4
- bl sub_8012FD8
- ldr r0, [r4]
- adds r0, 0x4
- bl sub_8012FD8
- lsls r0, 24
- cmp r0, 0
- bne _08035F28
- ldr r0, [r4]
- adds r0, 0x4
- mov r1, sp
- bl sub_8013114
-_08035F28:
- bl SetMainMenuType
- lsls r0, 24
- cmp r0, 0
- beq _08035F4A
- ldr r0, [r4]
- adds r0, 0x4
- movs r1, 0
- movs r2, 0x1
- bl sub_8035CF4
- ldr r0, [r4]
- adds r0, 0x4
- movs r1, 0x2
- movs r2, 0
- bl sub_8035CF4
-_08035F4A:
- ldr r1, [sp]
- cmp r1, 0xC
- beq _08035FA8
- cmp r1, 0xC
- bhi _08035F6C
- cmp r1, 0x3
- beq _08035FAC
- cmp r1, 0x3
- bcc _0803601A
- cmp r1, 0x6
- bcc _0803601A
- b _08035FAC
- .align 2, 0
-_08035F64: .4byte 0x0000ffdc
-_08035F68: .4byte gUnknown_203B34C
-_08035F6C:
- cmp r1, r6
- beq _08035FF2
- cmp r1, r6
- bhi _08035F7A
- cmp r1, 0x10
- bhi _0803601A
- b _08035FAC
-_08035F7A:
- ldr r0, _08035FA4
- cmp r1, r0
- bne _0803601A
- ldr r0, [r4]
- str r5, [r0]
- str r6, [sp]
- bl ResetUnusedInputStruct
- ldr r0, [r4]
- adds r0, 0x4
- movs r1, 0
- movs r2, 0x1
- bl sub_8035CF4
- ldr r0, [r4]
- adds r0, 0x4
- movs r1, 0x2
- movs r2, 0
- bl sub_8035CF4
- b _0803601A
- .align 2, 0
-_08035FA4: .4byte 0x0000ffdd
-_08035FA8:
- bl sub_8035DA0
-_08035FAC:
- ldr r1, _08035FB4
- ldr r0, [sp]
- str r0, [r1]
- b _0803601A
- .align 2, 0
-_08035FB4: .4byte gUnknown_203B350
-_08035FB8:
- adds r0, 0x54
- bl sub_8012FD8
- lsls r0, 24
- cmp r0, 0
- bne _08035FCE
- ldr r0, [r4]
- adds r0, 0x54
- mov r1, sp
- bl sub_8013114
-_08035FCE:
- ldr r1, [sp]
- cmp r1, 0x12
- beq _08036008
- cmp r1, 0x12
- bhi _08035FDE
- cmp r1, 0x11
- beq _08035FFC
- b _0803601A
-_08035FDE:
- cmp r1, r6
- beq _08036018
- ldr r0, _08035FF8
- cmp r1, r0
- bne _0803601A
- bl sub_803623C
- ldr r1, [r4]
- movs r0, 0x1
- str r0, [r1]
-_08035FF2:
- str r6, [sp]
- b _0803601A
- .align 2, 0
-_08035FF8: .4byte 0x0000ffdd
-_08035FFC:
- ldr r0, _08036004
- str r1, [r0]
- str r5, [sp]
- b _0803601A
- .align 2, 0
-_08036004: .4byte gUnknown_203B354
-_08036008:
- ldr r0, _08036014
- str r1, [r0]
- movs r0, 0x14
- str r0, [sp]
- b _0803601A
- .align 2, 0
-_08036014: .4byte gUnknown_203B354
-_08036018:
- str r1, [sp]
-_0803601A:
- ldr r0, [sp]
- add sp, 0x4
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end sub_8035EEC
-
- thumb_func_start SetMainMenuType
-SetMainMenuType:
- push {r4-r6,lr}
- sub sp, 0x10
- ldr r6, _08036048
- ldr r2, [r6]
- ldr r0, [r2, 0x8]
- movs r3, 0x30
- ldrsh r1, [r2, r3]
- lsls r1, 3
- adds r1, r0
- ldr r5, [r1, 0x4]
- movs r0, 0xD2
- lsls r0, 1
- adds r1, r2, r0
- ldr r0, [r1]
- cmp r0, r5
- bne _0803604C
- movs r0, 0
- b _08036226
- .align 2, 0
-_08036048: .4byte gUnknown_203B34C
-_0803604C:
- str r5, [r1]
- movs r4, 0xA2
- lsls r4, 1
- adds r0, r2, r4
- movs r1, 0x2
- bl sub_8035CC0
- ldr r0, [r6]
- adds r0, r4
- movs r1, 0x3
- bl sub_8035CC0
- subs r0, r5, 0x3
- cmp r0, 0xD
- bls _0803606C
- b _08036224
-_0803606C:
- lsls r0, 2
- ldr r1, _08036078
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08036078: .4byte _0803607C
- .align 2, 0
-_0803607C:
- .4byte _08036114
- .4byte _08036224
- .4byte _08036224
- .4byte _080360F4
- .4byte _08036134
- .4byte _08036154
- .4byte _08036224
- .4byte _08036174
- .4byte _08036194
- .4byte _080361B4
- .4byte _080360D4
- .4byte _080361D4
- .4byte _080360B4
- .4byte _08036204
-_080360B4:
- ldr r0, _080360C8
- ldr r1, [r0]
- adds r0, r1, 0x4
- movs r2, 0xA2
- lsls r2, 1
- adds r1, r2
- ldr r3, _080360CC
- ldr r2, _080360D0
- b _080361E4
- .align 2, 0
-_080360C8: .4byte gUnknown_203B34C
-_080360CC: .4byte gUnknown_80E5CB4
-_080360D0: .4byte gUnknown_80E6030
-_080360D4:
- ldr r0, _080360E8
- ldr r1, [r0]
- adds r0, r1, 0x4
- movs r3, 0xA2
- lsls r3, 1
- adds r1, r3
- ldr r3, _080360EC
- ldr r2, _080360F0
- b _080361E4
- .align 2, 0
-_080360E8: .4byte gUnknown_203B34C
-_080360EC: .4byte gUnknown_80E5CB4
-_080360F0: .4byte gUnknown_80E5F80
-_080360F4:
- ldr r0, _08036108
- ldr r1, [r0]
- adds r0, r1, 0x4
- movs r2, 0xA2
- lsls r2, 1
- adds r1, r2
- ldr r3, _0803610C
- ldr r2, _08036110
- b _080361E4
- .align 2, 0
-_08036108: .4byte gUnknown_203B34C
-_0803610C: .4byte gUnknown_80E5CB4
-_08036110: .4byte gUnknown_80E5F1C
-_08036114:
- ldr r0, _08036128
- ldr r1, [r0]
- adds r0, r1, 0x4
- movs r3, 0xA2
- lsls r3, 1
- adds r1, r3
- ldr r3, _0803612C
- ldr r2, _08036130
- b _080361E4
- .align 2, 0
-_08036128: .4byte gUnknown_203B34C
-_0803612C: .4byte gUnknown_80E5CB4
-_08036130: .4byte gUnknown_80E5CCC
-_08036134:
- ldr r0, _08036148
- ldr r1, [r0]
- adds r0, r1, 0x4
- movs r2, 0xA2
- lsls r2, 1
- adds r1, r2
- ldr r3, _0803614C
- ldr r2, _08036150
- b _080361E4
- .align 2, 0
-_08036148: .4byte gUnknown_203B34C
-_0803614C: .4byte gUnknown_80E5CB4
-_08036150: .4byte gUnknown_80E5DA0
-_08036154:
- ldr r0, _08036168
- ldr r1, [r0]
- adds r0, r1, 0x4
- movs r3, 0xA2
- lsls r3, 1
- adds r1, r3
- ldr r3, _0803616C
- ldr r2, _08036170
- b _080361E4
- .align 2, 0
-_08036168: .4byte gUnknown_203B34C
-_0803616C: .4byte gUnknown_80E5CB4
-_08036170: .4byte gUnknown_80E5DF0
-_08036174:
- ldr r0, _08036188
- ldr r1, [r0]
- adds r0, r1, 0x4
- movs r2, 0xA2
- lsls r2, 1
- adds r1, r2
- ldr r3, _0803618C
- ldr r2, _08036190
- b _080361E4
- .align 2, 0
-_08036188: .4byte gUnknown_203B34C
-_0803618C: .4byte gUnknown_80E5CB4
-_08036190: .4byte gUnknown_80E5D0C
-_08036194:
- ldr r0, _080361A8
- ldr r1, [r0]
- adds r0, r1, 0x4
- movs r3, 0xA2
- lsls r3, 1
- adds r1, r3
- ldr r3, _080361AC
- ldr r2, _080361B0
- b _080361E4
- .align 2, 0
-_080361A8: .4byte gUnknown_203B34C
-_080361AC: .4byte gUnknown_80E5CB4
-_080361B0: .4byte gUnknown_80E5E5C
-_080361B4:
- ldr r0, _080361C8
- ldr r1, [r0]
- adds r0, r1, 0x4
- movs r2, 0xA2
- lsls r2, 1
- adds r1, r2
- ldr r3, _080361CC
- ldr r2, _080361D0
- b _080361E4
- .align 2, 0
-_080361C8: .4byte gUnknown_203B34C
-_080361CC: .4byte gUnknown_80E5CB4
-_080361D0: .4byte gUnknown_80E5EBC
-_080361D4:
- ldr r0, _080361F8
- ldr r1, [r0]
- adds r0, r1, 0x4
- movs r3, 0xA2
- lsls r3, 1
- adds r1, r3
- ldr r3, _080361FC
- ldr r2, _08036200
-_080361E4:
- str r2, [sp]
- movs r2, 0
- str r2, [sp, 0x4]
- str r2, [sp, 0x8]
- str r2, [sp, 0xC]
- movs r2, 0x2
- bl SetMenuItems
- b _08036224
- .align 2, 0
-_080361F8: .4byte gUnknown_203B34C
-_080361FC: .4byte gUnknown_80E5CB4
-_08036200: .4byte gUnknown_80E5FCC
-_08036204:
- ldr r0, _08036230
- ldr r1, [r0]
- adds r0, r1, 0x4
- movs r2, 0xA2
- lsls r2, 1
- adds r1, r2
- ldr r3, _08036234
- ldr r2, _08036238
- str r2, [sp]
- movs r2, 0
- str r2, [sp, 0x4]
- str r2, [sp, 0x8]
- str r2, [sp, 0xC]
- movs r2, 0x2
- bl SetMenuItems
-_08036224:
- movs r0, 0x1
-_08036226:
- add sp, 0x10
- pop {r4-r6}
- pop {r1}
- bx r1
- .align 2, 0
-_08036230: .4byte gUnknown_203B34C
-_08036234: .4byte gUnknown_80E5CB4
-_08036238: .4byte gUnknown_80E5D48
- thumb_func_end SetMainMenuType
-
- thumb_func_start sub_803623C
-sub_803623C:
- push {r4,lr}
- ldr r4, _08036288
- ldr r0, [r4]
- movs r1, 0xA2
- lsls r1, 1
- adds r0, r1
- movs r1, 0x1
- bl sub_8035CC0
- bl sub_803628C
- ldr r0, [r4]
- movs r1, 0xD2
- lsls r1, 1
- adds r0, r1
- movs r1, 0x1
- negs r1, r1
- str r1, [r0]
- bl SetMainMenuType
- lsls r0, 24
- cmp r0, 0
- beq _08036276
- ldr r0, [r4]
- adds r0, 0x4
- movs r1, 0x2
- movs r2, 0
- bl sub_8035CF4
-_08036276:
- ldr r0, [r4]
- adds r0, 0x4
- movs r1, 0
- movs r2, 0x1
- bl sub_8035CF4
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08036288: .4byte gUnknown_203B34C
- thumb_func_end sub_803623C
-
- thumb_func_start sub_803628C
-sub_803628C:
- push {r4,lr}
- sub sp, 0x10
- bl sub_8011C34
- movs r1, 0x1
- negs r1, r1
- cmp r0, r1
- bne _0803629E
- b _080363A4
-_0803629E:
- movs r0, 0x1
- bl sub_8095324
- cmp r0, 0
- bne _08036344
- movs r0, 0x7
- bl sub_8095324
- cmp r0, 0
- beq _080362FC
- bl sub_803D0D8
- lsls r0, 24
- cmp r0, 0
- beq _080362DC
- ldr r0, _080362D0
- ldr r1, [r0]
- adds r0, r1, 0x4
- movs r2, 0xA2
- lsls r2, 1
- adds r1, r2
- ldr r3, _080362D4
- ldr r2, _080362D8
- b _0803637C
- .align 2, 0
-_080362D0: .4byte gUnknown_203B34C
-_080362D4: .4byte gUnknown_80E5A78
-_080362D8: .4byte gUnknown_80E5C18
-_080362DC:
- ldr r0, _080362F0
- ldr r1, [r0]
- adds r0, r1, 0x4
- movs r2, 0xA2
- lsls r2, 1
- adds r1, r2
- ldr r3, _080362F4
- ldr r2, _080362F8
- b _0803637C
- .align 2, 0
-_080362F0: .4byte gUnknown_203B34C
-_080362F4: .4byte gUnknown_80E5BC4
-_080362F8: .4byte gUnknown_80E5BDC
-_080362FC:
- bl sub_803D0D8
- lsls r0, 24
- cmp r0, 0
- beq _08036324
- ldr r0, _08036318
- ldr r1, [r0]
- adds r0, r1, 0x4
- movs r2, 0xA2
- lsls r2, 1
- adds r1, r2
- ldr r3, _0803631C
- ldr r2, _08036320
- b _0803637C
- .align 2, 0
-_08036318: .4byte gUnknown_203B34C
-_0803631C: .4byte gUnknown_80E5A78
-_08036320: .4byte gUnknown_80E5AFC
-_08036324:
- ldr r0, _08036338
- ldr r1, [r0]
- adds r0, r1, 0x4
- movs r2, 0xA2
- lsls r2, 1
- adds r1, r2
- ldr r3, _0803633C
- ldr r2, _08036340
- b _0803637C
- .align 2, 0
-_08036338: .4byte gUnknown_203B34C
-_0803633C: .4byte gUnknown_80E5A60
-_08036340: .4byte gUnknown_80E5A90
-_08036344:
- bl sub_803D0D8
- lsls r0, 24
- cmp r0, 0
- beq _0803636C
- ldr r0, _08036360
- ldr r1, [r0]
- adds r0, r1, 0x4
- movs r2, 0xA2
- lsls r2, 1
- adds r1, r2
- ldr r3, _08036364
- ldr r2, _08036368
- b _0803637C
- .align 2, 0
-_08036360: .4byte gUnknown_203B34C
-_08036364: .4byte gUnknown_80E5A78
-_08036368: .4byte gUnknown_80E5B8C
-_0803636C:
- ldr r0, _08036394
- ldr r1, [r0]
- adds r0, r1, 0x4
- movs r2, 0xA2
- lsls r2, 1
- adds r1, r2
- ldr r3, _08036398
- ldr r2, _0803639C
-_0803637C:
- str r2, [sp]
- movs r4, 0x1
- str r4, [sp, 0x4]
- ldr r2, _080363A0
- ldr r2, [r2]
- str r2, [sp, 0x8]
- str r4, [sp, 0xC]
- movs r2, 0
- bl SetMenuItems
- b _080363C8
- .align 2, 0
-_08036394: .4byte gUnknown_203B34C
-_08036398: .4byte gUnknown_80E5B34
-_0803639C: .4byte gUnknown_80E5B4C
-_080363A0: .4byte gUnknown_203B350
-_080363A4:
- ldr r0, _080363D0
- ldr r1, [r0]
- adds r0, r1, 0x4
- movs r2, 0xA2
- lsls r2, 1
- adds r1, r2
- ldr r3, _080363D4
- ldr r2, _080363D8
- str r2, [sp]
- movs r4, 0x1
- str r4, [sp, 0x4]
- ldr r2, _080363DC
- ldr r2, [r2]
- str r2, [sp, 0x8]
- str r4, [sp, 0xC]
- movs r2, 0
- bl SetMenuItems
-_080363C8:
- add sp, 0x10
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080363D0: .4byte gUnknown_203B34C
-_080363D4: .4byte gUnknown_80E59E0
-_080363D8: .4byte gUnknown_80E59F8
-_080363DC: .4byte gUnknown_203B350
- thumb_func_end sub_803628C
-
- thumb_func_start sub_80363E0
-sub_80363E0:
- push {lr}
- ldr r0, _080363F4
- ldr r0, [r0]
- cmp r0, 0
- beq _080363F8
- ldr r0, [r0]
- cmp r0, 0xC
- beq _080363F8
- movs r0, 0x1
- b _080363FA
- .align 2, 0
-_080363F4: .4byte gUnknown_203B34C
-_080363F8:
- movs r0, 0
-_080363FA:
- pop {r1}
- bx r1
- thumb_func_end sub_80363E0
-
- thumb_func_start sub_8036400
-sub_8036400:
- push {r4,r5,lr}
- bl ResetUnusedInputStruct
- movs r0, 0
- movs r1, 0x1
- movs r2, 0x1
- bl sub_800641C
- ldr r5, _08036444
- movs r4, 0xE8
- lsls r4, 2
- adds r0, r4, 0
- movs r1, 0x8
- bl MemoryAlloc
- str r0, [r5]
- movs r1, 0
- adds r2, r4, 0
- bl MemoryFill8
- bl sub_8035C1C
- bl sub_8035DA0
- ldr r1, [r5]
- movs r0, 0x13
- str r0, [r1, 0x4]
- movs r0, 0
- bl sub_8036FC4
- movs r0, 0x1
- pop {r4,r5}
- pop {r1}
- bx r1
- .align 2, 0
-_08036444: .4byte gUnknown_203B358
- thumb_func_end sub_8036400
-
- thumb_func_start sub_8036448
-sub_8036448:
- push {lr}
- ldr r0, _08036460
- ldr r0, [r0]
- ldr r0, [r0]
- cmp r0, 0x12
- bhi _08036524
- lsls r0, 2
- ldr r1, _08036464
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08036460: .4byte gUnknown_203B358
-_08036464: .4byte _08036468
- .align 2, 0
-_08036468:
- .4byte _080364B4
- .4byte _080364BA
- .4byte _080364C0
- .4byte _080364C6
- .4byte _080364D2
- .4byte _080364CC
- .4byte _080364D8
- .4byte _080364DE
- .4byte _080364E4
- .4byte _080364F0
- .4byte _080364F6
- .4byte _080364FC
- .4byte _08036502
- .4byte _08036514
- .4byte _08036508
- .4byte _080364EA
- .4byte _0803650E
- .4byte _0803651A
- .4byte _08036520
-_080364B4:
- bl sub_803652C
- b _08036524
-_080364BA:
- bl sub_8036590
- b _08036524
-_080364C0:
- bl sub_80365AC
- b _08036524
-_080364C6:
- bl sub_8036674
- b _08036524
-_080364CC:
- bl sub_8036728
- b _08036524
-_080364D2:
- bl sub_8036788
- b _08036524
-_080364D8:
- bl sub_8036830
- b _08036524
-_080364DE:
- bl sub_803689C
- b _08036524
-_080364E4:
- bl sub_80368D4
- b _08036524
-_080364EA:
- bl sub_8036A7C
- b _08036524
-_080364F0:
- bl sub_8036934
- b _08036524
-_080364F6:
- bl sub_8036950
- b _08036524
-_080364FC:
- bl sub_8036AA4
- b _08036524
-_08036502:
- bl sub_80369FC
- b _08036524
-_08036508:
- bl sub_8036A34
- b _08036524
-_0803650E:
- bl sub_8036A54
- b _08036524
-_08036514:
- bl sub_8036A18
- b _08036524
-_0803651A:
- bl sub_8036ADC
- b _08036524
-_08036520:
- movs r0, 0x3
- b _08036526
-_08036524:
- movs r0, 0
-_08036526:
- pop {r1}
- bx r1
- thumb_func_end sub_8036448
-
- thumb_func_start sub_803652C
-sub_803652C:
- push {lr}
- sub sp, 0x4
- mov r0, sp
- bl sub_80144A4
- adds r1, r0, 0
- cmp r1, 0
- bne _0803658A
- ldr r2, [sp]
- cmp r2, 0x1
- beq _08036556
- cmp r2, 0x1
- bgt _0803654C
- cmp r2, 0
- beq _08036584
- b _0803658A
-_0803654C:
- cmp r2, 0x2
- beq _0803656C
- cmp r2, 0x7
- beq _08036584
- b _0803658A
-_08036556:
- ldr r0, _08036568
- ldr r0, [r0]
- str r1, [r0, 0x8]
- str r2, [r0, 0x10]
- movs r0, 0x1
- bl sub_8036FC4
- b _0803658A
- .align 2, 0
-_08036568: .4byte gUnknown_203B358
-_0803656C:
- ldr r0, _08036580
- ldr r1, [r0]
- movs r0, 0x1
- str r0, [r1, 0x8]
- str r2, [r1, 0x10]
- movs r0, 0x7
- bl sub_8036FC4
- b _0803658A
- .align 2, 0
-_08036580: .4byte gUnknown_203B358
-_08036584:
- movs r0, 0x12
- bl sub_8036FC4
-_0803658A:
- add sp, 0x4
- pop {r0}
- bx r0
- thumb_func_end sub_803652C
-
- thumb_func_start sub_8036590
-sub_8036590:
- push {lr}
- sub sp, 0x4
- mov r0, sp
- bl sub_80144A4
- cmp r0, 0
- bne _080365A4
- movs r0, 0x2
- bl sub_8036FC4
-_080365A4:
- add sp, 0x4
- pop {r0}
- bx r0
- thumb_func_end sub_8036590
-
- thumb_func_start sub_80365AC
-sub_80365AC:
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- ldr r4, _080365E8
- ldr r0, [r4]
- ldr r7, _080365EC
- adds r0, r7
- movs r1, 0
- strb r1, [r0]
- ldr r0, [r4]
- ldr r6, _080365F0
- adds r0, r6
- movs r5, 0x1
- strb r5, [r0]
- ldr r0, [r4]
- movs r2, 0x97
- lsls r2, 2
- mov r8, r2
- add r0, r8
- strb r1, [r0]
- movs r0, 0x1
- bl sub_801CA08
- cmp r0, 0x3
- beq _08036606
- cmp r0, 0x3
- bhi _080365F4
- cmp r0, 0x2
- beq _080365FA
- b _0803666A
- .align 2, 0
-_080365E8: .4byte gUnknown_203B358
-_080365EC: .4byte 0x0000025e
-_080365F0: .4byte 0x0000025d
-_080365F4:
- cmp r0, 0x4
- beq _0803662C
- b _0803666A
-_080365FA:
- bl sub_801CBB8
- movs r0, 0
- bl sub_8036FC4
- b _0803666A
-_08036606:
- bl sub_801CB24
- ldr r1, [r4]
- ldr r2, _08036624
- adds r1, r2
- strb r0, [r1]
- ldr r0, [r4]
- ldr r1, _08036628
- adds r0, r1
- strb r5, [r0]
- movs r0, 0x3
- bl sub_8036FC4
- b _0803666A
- .align 2, 0
-_08036624: .4byte 0x0000025e
-_08036628: .4byte 0x0000025d
-_0803662C:
- ldr r1, [r4]
- movs r0, 0x2
- str r0, [r1, 0x4]
- bl sub_801CB24
- ldr r1, [r4]
- adds r1, r7
- strb r0, [r1]
- ldr r0, [r4]
- adds r0, r6
- strb r5, [r0]
- ldr r0, [r4]
- movs r2, 0xF2
- lsls r2, 1
- adds r0, r2
- bl sub_8006518
- bl ResetUnusedInputStruct
- movs r0, 0
- movs r1, 0x1
- movs r2, 0x1
- bl sub_800641C
- ldr r0, [r4]
- add r0, r8
- bl sub_801B3C0
- movs r0, 0x5
- bl sub_8036FC4
-_0803666A:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_80365AC
-
- thumb_func_start sub_8036674
-sub_8036674:
- push {r4,lr}
- sub sp, 0x4
- movs r0, 0x1
- negs r0, r0
- str r0, [sp]
- movs r0, 0
- bl sub_801CA08
- ldr r4, _080366B8
- ldr r0, [r4]
- movs r1, 0x9A
- lsls r1, 1
- adds r0, r1
- bl sub_8012FD8
- lsls r0, 24
- cmp r0, 0
- bne _080366A6
- ldr r0, [r4]
- movs r1, 0x9A
- lsls r1, 1
- adds r0, r1
- mov r1, sp
- bl sub_8013114
-_080366A6:
- ldr r0, [sp]
- cmp r0, 0x3
- beq _080366C6
- cmp r0, 0x3
- bgt _080366BC
- cmp r0, 0
- beq _08036700
- b _0803671A
- .align 2, 0
-_080366B8: .4byte gUnknown_203B358
-_080366BC:
- cmp r0, 0x4
- beq _080366CE
- cmp r0, 0x7
- beq _08036700
- b _0803671A
-_080366C6:
- movs r0, 0x4
- bl sub_8036FC4
- b _0803671A
-_080366CE:
- ldr r0, [r4]
- movs r1, 0x13
- str r1, [r0, 0x4]
- movs r1, 0xF2
- lsls r1, 1
- adds r0, r1
- bl sub_8006518
- bl ResetUnusedInputStruct
- movs r0, 0
- movs r1, 0x1
- movs r2, 0x1
- bl sub_800641C
- ldr r0, [r4]
- movs r1, 0x97
- lsls r1, 2
- adds r0, r1
- bl sub_801B3C0
- movs r0, 0x5
- bl sub_8036FC4
- b _0803671A
-_08036700:
- ldr r0, _08036724
- ldr r0, [r0]
- movs r1, 0xC2
- lsls r1, 1
- adds r0, r1
- movs r1, 0x3
- bl sub_8035CC0
- bl sub_801CCD8
- movs r0, 0x2
- bl sub_8036FC4
-_0803671A:
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08036724: .4byte gUnknown_203B358
- thumb_func_end sub_8036674
-
- thumb_func_start sub_8036728
-sub_8036728:
- push {r4,lr}
- bl sub_801B410
- cmp r0, 0x1
- beq _08036780
- cmp r0, 0x1
- bcc _08036780
- cmp r0, 0x3
- bhi _08036780
- bl sub_801B450
- bl ResetUnusedInputStruct
- ldr r4, _08036778
- ldr r0, [r4]
- movs r1, 0xF2
- lsls r1, 1
- adds r0, r1
- movs r1, 0x1
- movs r2, 0x1
- bl sub_800641C
- movs r0, 0x1
- bl sub_801CB5C
- ldr r4, [r4]
- ldr r0, [r4, 0x4]
- cmp r0, 0x13
- bne _0803677C
- adds r0, r4, 0
- adds r0, 0x44
- movs r1, 0x3
- movs r2, 0x1
- bl sub_8035CF4
- movs r0, 0x3
- bl sub_8036FC4
- b _08036780
- .align 2, 0
-_08036778: .4byte gUnknown_203B358
-_0803677C:
- bl sub_8036FC4
-_08036780:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_8036728
-
- thumb_func_start sub_8036788
-sub_8036788:
- push {r4,lr}
- ldr r4, _080367B8
- ldr r0, [r4]
- movs r1, 0x9A
- lsls r1, 1
- adds r0, r1
- bl sub_8012FD8
- movs r0, 0
- bl sub_801CA08
- ldr r0, [r4]
- adds r0, 0x14
- bl sub_8013BBC
- cmp r0, 0x1
- beq _080367BC
- cmp r0, 0x1
- bcc _08036824
- cmp r0, 0x2
- beq _080367D2
- cmp r0, 0x3
- beq _080367F8
- b _08036824
- .align 2, 0
-_080367B8: .4byte gUnknown_203B358
-_080367BC:
- bl sub_801CCD8
- ldr r0, [r4]
- adds r0, 0x44
- movs r1, 0x3
- movs r2, 0
- bl sub_8035CF4
- bl sub_8036F30
- b _08036824
-_080367D2:
- ldr r0, [r4]
- movs r2, 0xC2
- lsls r2, 1
- adds r0, r2
- movs r1, 0x2
- bl sub_8035CC0
- bl sub_801CCD8
- ldr r0, [r4]
- adds r0, 0x44
- movs r1, 0x3
- movs r2, 0x1
- bl sub_8035CF4
- movs r0, 0x3
- bl sub_8036FC4
- b _08036824
-_080367F8:
- ldr r0, [r4]
- ldr r1, [r0, 0x14]
- ldr r2, _0803682C
- adds r0, r2
- strb r1, [r0]
- ldr r0, [r4]
- adds r2, 0x1
- adds r1, r0, r2
- ldrb r1, [r1]
- subs r2, 0xA
- adds r0, r2
- strb r1, [r0]
- ldr r0, [r4]
- adds r2, 0x4
- adds r1, r0, r2
- ldr r0, [r0, 0x14]
- str r0, [r1]
- bl sub_801CBB8
- movs r0, 0x6
- bl sub_8036FC4
-_08036824:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0803682C: .4byte 0x0000025d
- thumb_func_end sub_8036788
-
- thumb_func_start sub_8036830
-sub_8036830:
- push {lr}
- sub sp, 0x4
- mov r0, sp
- bl sub_80144A4
- cmp r0, 0
- bne _08036896
- ldr r0, [sp]
- cmp r0, 0x5
- beq _08036854
- cmp r0, 0x5
- bgt _0803684E
- cmp r0, 0
- beq _08036890
- b _08036896
-_0803684E:
- cmp r0, 0x6
- beq _08036890
- b _08036896
-_08036854:
- bl sub_801CBB8
- ldr r0, _08036884
- ldr r2, [r0]
- ldr r0, _08036888
- ldr r1, [r0]
- ldr r3, _0803688C
- adds r0, r1, r3
- ldrb r0, [r0]
- lsls r0, 1
- adds r2, 0x50
- adds r2, r0
- ldrh r0, [r2]
- ldr r1, [r1, 0x14]
- subs r0, r1
- strh r0, [r2]
- movs r0, 0xF
- bl sub_8036FC4
- movs r0, 0
- bl sub_8012574
- b _08036896
- .align 2, 0
-_08036884: .4byte gUnknown_203B460
-_08036888: .4byte gUnknown_203B358
-_0803688C: .4byte 0x0000025e
-_08036890:
- movs r0, 0
- bl sub_8036FC4
-_08036896:
- add sp, 0x4
- pop {r0}
- bx r0
- thumb_func_end sub_8036830
-
- thumb_func_start sub_803689C
-sub_803689C:
- push {lr}
- sub sp, 0x4
- mov r0, sp
- bl sub_80144A4
- cmp r0, 0
- bne _080368CE
- ldr r0, [sp]
- cmp r0, 0x5
- beq _080368C0
- cmp r0, 0x5
- bgt _080368BA
- cmp r0, 0
- beq _080368C8
- b _080368CE
-_080368BA:
- cmp r0, 0x7
- beq _080368C8
- b _080368CE
-_080368C0:
- movs r0, 0x9
- bl sub_8036FC4
- b _080368CE
-_080368C8:
- movs r0, 0x12
- bl sub_8036FC4
-_080368CE:
- add sp, 0x4
- pop {r0}
- bx r0
- thumb_func_end sub_803689C
-
- thumb_func_start sub_80368D4
-sub_80368D4:
- push {lr}
- sub sp, 0x4
- mov r0, sp
- bl sub_80144A4
- cmp r0, 0
- bne _0803692A
- ldr r0, [sp]
- cmp r0, 0x5
- beq _080368F8
- cmp r0, 0x5
- bgt _080368F2
- cmp r0, 0
- beq _08036900
- b _0803692A
-_080368F2:
- cmp r0, 0x7
- beq _08036900
- b _0803692A
-_080368F8:
- movs r0, 0x9
- bl sub_8036FC4
- b _0803692A
-_08036900:
- ldr r0, _08036930
- ldr r1, [r0]
- movs r2, 0x95
- lsls r2, 2
- adds r0, r1, r2
- ldrb r0, [r0]
- cmp r0, 0
- beq _0803692A
- adds r2, 0x4
- adds r0, r1, r2
- ldr r0, [r0]
- cmp r0, 0
- beq _0803692A
- bl sub_80369D0
- movs r0, 0x11
- bl sub_8036FC4
- movs r0, 0
- bl sub_8012574
-_0803692A:
- add sp, 0x4
- pop {r0}
- bx r0
- .align 2, 0
-_08036930: .4byte gUnknown_203B358
- thumb_func_end sub_80368D4
-
- thumb_func_start sub_8036934
-sub_8036934:
- push {lr}
- sub sp, 0x4
- mov r0, sp
- bl sub_80144A4
- cmp r0, 0
- bne _08036948
- movs r0, 0xA
- bl sub_8036FC4
-_08036948:
- add sp, 0x4
- pop {r0}
- bx r0
- thumb_func_end sub_8036934
-
- thumb_func_start sub_8036950
-sub_8036950:
- push {lr}
- sub sp, 0x4
- mov r0, sp
- bl sub_80144A4
- cmp r0, 0
- bne _080369C8
- ldr r0, _08036978
- ldr r2, [r0]
- ldr r1, [r2, 0xC]
- adds r3, r0, 0
- cmp r1, 0
- bne _0803698C
- ldr r0, [r2, 0x8]
- cmp r0, 0
- beq _0803697C
- cmp r0, 0x1
- beq _08036984
- b _080369C8
- .align 2, 0
-_08036978: .4byte gUnknown_203B358
-_0803697C:
- movs r0, 0xD
- bl sub_8036FC4
- b _080369C8
-_08036984:
- movs r0, 0xE
- bl sub_8036FC4
- b _080369C8
-_0803698C:
- ldr r0, [r2, 0x8]
- cmp r0, 0
- bne _080369BA
- movs r1, 0x95
- lsls r1, 2
- adds r0, r2, r1
- ldrb r0, [r0]
- cmp r0, 0
- beq _080369BA
- adds r1, 0x4
- adds r0, r2, r1
- ldr r0, [r0]
- cmp r0, 0
- beq _080369BA
- bl sub_80369D0
- movs r0, 0xB
- bl sub_8036FC4
- movs r0, 0
- bl sub_8012574
- b _080369C8
-_080369BA:
- ldr r0, [r3]
- ldr r0, [r0, 0xC]
- bl sub_8036E18
- movs r0, 0xC
- bl sub_8036FC4
-_080369C8:
- add sp, 0x4
- pop {r0}
- bx r0
- thumb_func_end sub_8036950
-
- thumb_func_start sub_80369D0
-sub_80369D0:
- ldr r0, _080369F4
- ldr r2, [r0]
- ldr r0, _080369F8
- ldr r1, [r0]
- movs r3, 0x95
- lsls r3, 2
- adds r0, r1, r3
- ldrb r0, [r0]
- lsls r0, 1
- adds r2, 0x50
- adds r2, r0
- ldrh r0, [r2]
- adds r3, 0x4
- adds r1, r3
- ldr r1, [r1]
- adds r0, r1
- strh r0, [r2]
- bx lr
- .align 2, 0
-_080369F4: .4byte gUnknown_203B460
-_080369F8: .4byte gUnknown_203B358
- thumb_func_end sub_80369D0
-
- thumb_func_start sub_80369FC
-sub_80369FC:
- push {lr}
- sub sp, 0x4
- mov r0, sp
- bl sub_80144A4
- cmp r0, 0
- bne _08036A10
- movs r0, 0
- bl sub_8036FC4
-_08036A10:
- add sp, 0x4
- pop {r0}
- bx r0
- thumb_func_end sub_80369FC
-
- thumb_func_start sub_8036A18
-sub_8036A18:
- push {lr}
- sub sp, 0x4
- mov r0, sp
- bl sub_80144A4
- cmp r0, 0
- bne _08036A2C
- movs r0, 0x12
- bl sub_8036FC4
-_08036A2C:
- add sp, 0x4
- pop {r0}
- bx r0
- thumb_func_end sub_8036A18
-
- thumb_func_start sub_8036A34
-sub_8036A34:
- push {lr}
- sub sp, 0x4
- mov r0, sp
- bl sub_80144A4
- cmp r0, 0
- bne _08036A4E
- movs r0, 0x10
- bl sub_8036FC4
- movs r0, 0
- bl sub_8012574
-_08036A4E:
- add sp, 0x4
- pop {r0}
- bx r0
- thumb_func_end sub_8036A34
-
- thumb_func_start sub_8036A54
-sub_8036A54:
- push {lr}
- sub sp, 0x4
- mov r0, sp
- bl sub_80144A4
- cmp r0, 0
- bne _08036A76
- bl sub_8012600
- lsls r0, 24
- cmp r0, 0
- bne _08036A76
- bl sub_8012750
- movs r0, 0x12
- bl sub_8036FC4
-_08036A76:
- add sp, 0x4
- pop {r0}
- bx r0
- thumb_func_end sub_8036A54
-
- thumb_func_start sub_8036A7C
-sub_8036A7C:
- push {lr}
- sub sp, 0x4
- mov r0, sp
- bl sub_80144A4
- cmp r0, 0
- bne _08036A9E
- bl sub_8012600
- lsls r0, 24
- cmp r0, 0
- bne _08036A9E
- bl sub_8012750
- movs r0, 0x8
- bl sub_8036FC4
-_08036A9E:
- add sp, 0x4
- pop {r0}
- bx r0
- thumb_func_end sub_8036A7C
-
- thumb_func_start sub_8036AA4
-sub_8036AA4:
- push {lr}
- sub sp, 0x4
- mov r0, sp
- bl sub_80144A4
- cmp r0, 0
- bne _08036AD0
- bl sub_8012600
- lsls r0, 24
- cmp r0, 0
- bne _08036AD0
- bl sub_8012750
- ldr r0, _08036AD8
- ldr r0, [r0]
- ldr r0, [r0, 0xC]
- bl sub_8036E18
- movs r0, 0xC
- bl sub_8036FC4
-_08036AD0:
- add sp, 0x4
- pop {r0}
- bx r0
- .align 2, 0
-_08036AD8: .4byte gUnknown_203B358
- thumb_func_end sub_8036AA4
-
- thumb_func_start sub_8036ADC
-sub_8036ADC:
- push {lr}
- sub sp, 0x4
- mov r0, sp
- bl sub_80144A4
- cmp r0, 0
- bne _08036AFE
- bl sub_8012600
- lsls r0, 24
- cmp r0, 0
- bne _08036AFE
- bl sub_8012750
- movs r0, 0x12
- bl sub_8036FC4
-_08036AFE:
- add sp, 0x4
- pop {r0}
- bx r0
- thumb_func_end sub_8036ADC
-
- thumb_func_start sub_8036B04
-sub_8036B04:
- push {r4,lr}
- ldr r4, _08036B20
- ldr r0, [r4]
- cmp r0, 0
- beq _08036B1A
- bl MemoryFree
- movs r0, 0
- str r0, [r4]
- bl sub_801CBB8
-_08036B1A:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08036B20: .4byte gUnknown_203B358
- thumb_func_end sub_8036B04
-
- thumb_func_start nullsub_52
-nullsub_52:
- bx lr
- thumb_func_end nullsub_52
-
- thumb_func_start sub_8036B28
-sub_8036B28:
- push {r4,r5,lr}
- sub sp, 0x18
- ldr r1, _08036B44
- ldr r0, [r1]
- ldr r0, [r0]
- adds r5, r1, 0
- cmp r0, 0x12
- bls _08036B3A
- b _08036DFA
-_08036B3A:
- lsls r0, 2
- ldr r1, _08036B48
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08036B44: .4byte gUnknown_203B358
-_08036B48: .4byte _08036B4C
- .align 2, 0
-_08036B4C:
- .4byte _08036B98
- .4byte _08036BDC
- .4byte _08036BE4
- .4byte _08036C14
- .4byte _08036C58
- .4byte _08036DFA
- .4byte _08036C5E
- .4byte _08036C90
- .4byte _08036C98
- .4byte _08036CC0
- .4byte _08036CD8
- .4byte _08036DFA
- .4byte _08036DFA
- .4byte _08036DD8
- .4byte _08036D70
- .4byte _08036DFA
- .4byte _08036DFA
- .4byte _08036DFA
- .4byte _08036DFA
-_08036B98:
- movs r0, 0
- bl sub_801CF14
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0
- beq _08036BB8
- ldr r0, _08036BB0
- ldr r3, _08036BB4
- movs r2, 0
- b _08036BBC
- .align 2, 0
-_08036BB0: .4byte gUnknown_80E61A4
-_08036BB4: .4byte gUnknown_80E60D4
-_08036BB8:
- ldr r0, _08036BD4
- ldr r3, _08036BD8
-_08036BBC:
- str r2, [sp]
- movs r1, 0x4
- str r1, [sp, 0x4]
- str r2, [sp, 0x8]
- str r2, [sp, 0xC]
- adds r1, 0xFD
- str r1, [sp, 0x10]
- movs r1, 0
- movs r2, 0x1
- bl sub_8014248
- b _08036DFA
- .align 2, 0
-_08036BD4: .4byte gUnknown_80E61A4
-_08036BD8: .4byte gUnknown_80E60A0
-_08036BDC:
- ldr r0, _08036BE0
- b _08036DBA
- .align 2, 0
-_08036BE0: .4byte gUnknown_80E61C0
-_08036BE4:
- bl sub_801D008
- cmp r0, 0
- beq _08036BEE
- b _08036DFA
-_08036BEE:
- bl ResetUnusedInputStruct
- movs r0, 0
- movs r1, 0x1
- movs r2, 0x1
- bl sub_800641C
- ldr r0, _08036C10
- str r0, [sp, 0x14]
- movs r0, 0
- movs r1, 0x1
- add r2, sp, 0x14
- movs r3, 0x9
- bl sub_801C8C4
- b _08036DFA
- .align 2, 0
-_08036C10: .4byte 0x00020003
-_08036C14:
- ldr r0, [r5]
- movs r4, 0xC2
- lsls r4, 1
- adds r0, r4
- bl sub_8006518
- ldr r1, [r5]
- adds r0, r1, 0
- adds r0, 0x44
- adds r1, r4
- ldr r3, _08036C50
- ldr r2, _08036C54
- str r2, [sp]
- movs r2, 0x1
- str r2, [sp, 0x4]
- movs r2, 0
- str r2, [sp, 0x8]
- str r2, [sp, 0xC]
- movs r2, 0x3
- bl SetMenuItems
- bl sub_801CCD8
- ldr r0, [r5]
- adds r0, 0x44
- movs r1, 0x3
- movs r2, 0x1
- bl sub_8035CF4
- b _08036DFA
- .align 2, 0
-_08036C50: .4byte gUnknown_80E60EC
-_08036C54: .4byte gUnknown_80E6104
-_08036C58:
- bl sub_8036F74
- b _08036DFA
-_08036C5E:
- ldr r2, _08036C7C
- ldr r1, [r5]
- ldr r0, [r1, 0x14]
- str r0, [r2]
- ldr r0, _08036C80
- ldr r2, _08036C84
- adds r1, r2
- ldrb r1, [r1]
- movs r2, 0
- bl sub_8090DC4
- ldr r0, _08036C88
- ldr r3, _08036C8C
- b _08036C9C
- .align 2, 0
-_08036C7C: .4byte gUnknown_202DE30
-_08036C80: .4byte gUnknown_202DE58
-_08036C84: .4byte 0x0000025e
-_08036C88: .4byte gUnknown_80E61E4
-_08036C8C: .4byte gUnknown_80E6154
-_08036C90:
- ldr r0, _08036C94
- b _08036C9A
- .align 2, 0
-_08036C94: .4byte gUnknown_80E6214
-_08036C98:
- ldr r0, _08036CB8
-_08036C9A:
- ldr r3, _08036CBC
-_08036C9C:
- movs r2, 0
- str r2, [sp]
- movs r1, 0x4
- str r1, [sp, 0x4]
- str r2, [sp, 0x8]
- str r2, [sp, 0xC]
- adds r1, 0xFD
- str r1, [sp, 0x10]
- movs r1, 0
- movs r2, 0x5
- bl sub_8014248
- b _08036DFA
- .align 2, 0
-_08036CB8: .4byte gUnknown_80E6268
-_08036CBC: .4byte gUnknown_80E618C
-_08036CC0:
- movs r0, 0
- bl nullsub_23
- ldr r0, _08036CD4
- movs r1, 0
- movs r2, 0
- movs r3, 0
- bl sub_80141B4
- b _08036DFA
- .align 2, 0
-_08036CD4: .4byte gUnknown_80E62C4
-_08036CD8:
- ldr r4, _08036D18
- ldr r1, [r4]
- movs r0, 0
- str r0, [r1, 0xC]
- movs r2, 0
- movs r3, 0
- movs r5, 0x91
- lsls r5, 2
- adds r0, r1, r5
- str r2, [r0]
- str r3, [r0, 0x4]
- movs r0, 0x93
- lsls r0, 2
- adds r1, r0
- str r2, [r1]
- str r3, [r1, 0x4]
- bl sub_8011830
- ldr r0, [r4]
- ldr r0, [r0, 0x8]
- bl sub_8037B28
- ldr r4, [r4]
- str r0, [r4, 0xC]
- cmp r0, 0
- bne _08036D44
- ldr r0, [r4, 0x8]
- cmp r0, 0
- beq _08036D1C
- cmp r0, 0x1
- beq _08036D2C
- b _08036D44
- .align 2, 0
-_08036D18: .4byte gUnknown_203B358
-_08036D1C:
- adds r2, r4, r5
- movs r1, 0x95
- lsls r1, 2
- adds r0, r4, r1
- ldr r1, [r0, 0x4]
- ldr r0, [r0]
- str r0, [r2]
- str r1, [r2, 0x4]
-_08036D2C:
- ldr r4, _08036D6C
- ldr r2, [r4]
- ldr r0, [r2, 0x8]
- movs r3, 0x91
- lsls r3, 2
- adds r1, r2, r3
- adds r3, 0x8
- adds r2, r3
- bl sub_8037D64
- ldr r1, [r4]
- str r0, [r1, 0xC]
-_08036D44:
- ldr r4, _08036D6C
- ldr r2, [r4]
- ldr r0, [r2, 0xC]
- cmp r0, 0
- bne _08036D66
- ldr r0, [r2, 0x8]
- cmp r0, 0x1
- bhi _08036D66
- movs r3, 0x91
- lsls r3, 2
- adds r1, r2, r3
- adds r3, 0x8
- adds r2, r3
- bl sub_80381F4
- ldr r1, [r4]
- str r0, [r1, 0xC]
-_08036D66:
- bl xxx_call_start_bg_music
- b _08036DFA
- .align 2, 0
-_08036D6C: .4byte gUnknown_203B358
-_08036D70:
- ldr r2, [r5]
- movs r1, 0x94
- lsls r1, 2
- adds r0, r2, r1
- ldr r1, [r0]
- cmp r1, 0
- bne _08036DA4
- ldr r1, _08036D9C
- movs r3, 0x92
- lsls r3, 2
- adds r0, r2, r3
- ldr r0, [r0]
- str r0, [r1]
- ldr r0, _08036DA0
- subs r3, 0x4
- adds r1, r2, r3
- ldrb r1, [r1]
- movs r2, 0
- bl sub_8090DC4
- b _08036DB8
- .align 2, 0
-_08036D9C: .4byte gUnknown_202DE30
-_08036DA0: .4byte gUnknown_202DE58
-_08036DA4:
- ldr r0, _08036DC8
- str r1, [r0]
- ldr r0, _08036DCC
- movs r3, 0x93
- lsls r3, 2
- adds r1, r2, r3
- ldrb r1, [r1]
- movs r2, 0
- bl sub_8090DC4
-_08036DB8:
- ldr r0, _08036DD0
-_08036DBA:
- ldr r3, _08036DD4
- movs r1, 0
- movs r2, 0
- bl sub_80141B4
- b _08036DFA
- .align 2, 0
-_08036DC8: .4byte gUnknown_202DE30
-_08036DCC: .4byte gUnknown_202DE58
-_08036DD0: .4byte gUnknown_80E6314
-_08036DD4: .4byte 0x00000101
-_08036DD8:
- ldr r2, _08036E04
- ldr r1, [r5]
- ldr r0, [r1, 0x14]
- str r0, [r2]
- ldr r0, _08036E08
- ldr r2, _08036E0C
- adds r1, r2
- ldrb r1, [r1]
- movs r2, 0
- bl sub_8090DC4
- ldr r0, _08036E10
- ldr r3, _08036E14
- movs r1, 0
- movs r2, 0
- bl sub_80141B4
-_08036DFA:
- add sp, 0x18
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08036E04: .4byte gUnknown_202DE30
-_08036E08: .4byte gUnknown_202DE58
-_08036E0C: .4byte 0x0000025e
-_08036E10: .4byte gUnknown_80E6358
-_08036E14: .4byte 0x00000101
- thumb_func_end sub_8036B28
-
- thumb_func_start sub_8036E18
-sub_8036E18:
- push {lr}
- cmp r0, 0xF
- bhi _08036EB4
- lsls r0, 2
- ldr r1, _08036E28
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08036E28: .4byte _08036E2C
- .align 2, 0
-_08036E2C:
- .4byte _08036EC0
- .4byte _08036E6C
- .4byte _08036E7C
- .4byte _08036E74
- .4byte _08036E84
- .4byte _08036E8C
- .4byte _08036EB4
- .4byte _08036EB4
- .4byte _08036EB4
- .4byte _08036EB4
- .4byte _08036EB4
- .4byte _08036EB4
- .4byte _08036EB4
- .4byte _08036EB4
- .4byte _08036E94
- .4byte _08036E9C
-_08036E6C:
- ldr r0, _08036E70
- b _08036E9E
- .align 2, 0
-_08036E70: .4byte gUnknown_80E6378
-_08036E74:
- ldr r0, _08036E78
- b _08036E9E
- .align 2, 0
-_08036E78: .4byte gUnknown_80E639C
-_08036E7C:
- ldr r0, _08036E80
- b _08036E9E
- .align 2, 0
-_08036E80: .4byte gUnknown_80E63F8
-_08036E84:
- ldr r0, _08036E88
- b _08036E9E
- .align 2, 0
-_08036E88: .4byte gUnknown_80E6448
-_08036E8C:
- ldr r0, _08036E90
- b _08036E9E
- .align 2, 0
-_08036E90: .4byte gUnknown_80E6378
-_08036E94:
- ldr r0, _08036E98
- b _08036E9E
- .align 2, 0
-_08036E98: .4byte gUnknown_80E6378
-_08036E9C:
- ldr r0, _08036EAC
-_08036E9E:
- ldr r3, _08036EB0
- movs r1, 0
- movs r2, 0
- bl sub_80141B4
- b _08036EC0
- .align 2, 0
-_08036EAC: .4byte gUnknown_80E64AC
-_08036EB0: .4byte 0x00000101
-_08036EB4:
- ldr r0, _08036EC4
- ldr r3, _08036EC8
- movs r1, 0
- movs r2, 0
- bl sub_80141B4
-_08036EC0:
- pop {r0}
- bx r0
- .align 2, 0
-_08036EC4: .4byte gUnknown_80E6378
-_08036EC8: .4byte 0x00000101
- thumb_func_end sub_8036E18
-
- thumb_func_start sub_8036ECC
-sub_8036ECC:
- push {r4-r6,lr}
- adds r3, r0, 0
- ldr r6, _08036F28
- ldr r0, [r6]
- movs r2, 0x3
- str r2, [r0, 0x24]
- movs r2, 0x1
- str r2, [r0, 0x18]
- str r2, [r0, 0x1C]
- str r1, [r0, 0x20]
- movs r1, 0x2C
- str r1, [r0, 0x30]
- movs r1, 0x12
- str r1, [r0, 0x34]
- str r3, [r0, 0x28]
- lsls r4, r3, 1
- adds r4, r3
- lsls r4, 3
- movs r5, 0xC2
- lsls r5, 1
- adds r1, r4, r5
- adds r1, r0, r1
- str r1, [r0, 0x2C]
- adds r0, 0x14
- bl sub_8013AA0
- ldr r1, [r6]
- adds r1, r4
- adds r1, r5
- ldr r0, _08036F2C
- ldm r0!, {r2-r4}
- stm r1!, {r2-r4}
- ldm r0!, {r2-r4}
- stm r1!, {r2-r4}
- bl ResetUnusedInputStruct
- ldr r0, [r6]
- adds r0, r5
- movs r1, 0x1
- movs r2, 0x1
- bl sub_800641C
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08036F28: .4byte gUnknown_203B358
-_08036F2C: .4byte gUnknown_80E6174
- thumb_func_end sub_8036ECC
-
- thumb_func_start sub_8036F30
-sub_8036F30:
- push {r4,r5,lr}
- sub sp, 0x4
- ldr r5, _08036F6C
- ldr r0, [r5]
- ldr r4, [r0, 0x28]
- adds r0, r4, 0
- bl sub_8008C54
- adds r0, r4, 0
- bl sub_80073B8
- ldr r2, _08036F70
- movs r0, 0
- str r0, [sp]
- movs r0, 0x2
- movs r1, 0
- adds r3, r4, 0
- bl xxx_call_draw_string
- ldr r0, [r5]
- adds r0, 0x14
- bl sub_8013C68
- adds r0, r4, 0
- bl sub_80073E0
- add sp, 0x4
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08036F6C: .4byte gUnknown_203B358
-_08036F70: .4byte gUnknown_80E6528
- thumb_func_end sub_8036F30
-
- thumb_func_start sub_8036F74
-sub_8036F74:
- push {r4,lr}
- ldr r4, _08036FB8
- ldr r0, [r4]
- movs r1, 0xC2
- lsls r1, 1
- adds r0, r1
- bl sub_8006518
- ldr r0, _08036FBC
- ldr r1, [r0]
- ldr r0, [r4]
- ldr r2, _08036FC0
- adds r0, r2
- ldrb r0, [r0]
- lsls r0, 1
- adds r1, 0x50
- adds r1, r0
- ldrh r1, [r1]
- movs r0, 0x2
- bl sub_8036ECC
- bl sub_801CCD8
- ldr r0, [r4]
- adds r0, 0x44
- movs r1, 0x3
- movs r2, 0
- bl sub_8035CF4
- bl sub_8036F30
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08036FB8: .4byte gUnknown_203B358
-_08036FBC: .4byte gUnknown_203B460
-_08036FC0: .4byte 0x0000025e
- thumb_func_end sub_8036F74
-
- thumb_func_start sub_8036FC4
-sub_8036FC4:
- push {lr}
- ldr r1, _08036FD8
- ldr r1, [r1]
- str r0, [r1]
- bl nullsub_52
- bl sub_8036B28
- pop {r0}
- bx r0
- .align 2, 0
-_08036FD8: .4byte gUnknown_203B358
- thumb_func_end sub_8036FC4
-
- thumb_func_start sub_8036FDC
-sub_8036FDC:
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x10
- adds r6, r0, 0
- bl ResetUnusedInputStruct
- movs r0, 0
- movs r1, 0x1
- movs r2, 0x1
- bl sub_800641C
- movs r0, 0
- bl ResetSprites
- ldr r5, _080370C0
- ldr r0, [r5]
- cmp r0, 0
- bne _08037016
- ldr r4, _080370C4
- adds r0, r4, 0
- movs r1, 0x8
- bl MemoryAlloc
- str r0, [r5]
- movs r1, 0
- adds r2, r4, 0
- bl MemoryFill8
-_08037016:
- ldr r0, [r5]
- str r6, [r0]
- movs r1, 0
- str r1, [r0, 0x4]
- str r1, [r0, 0x8]
- movs r3, 0
- adds r7, r5, 0
- movs r6, 0xE0
- lsls r6, 1
- movs r4, 0
- movs r5, 0xDE
- lsls r5, 1
-_0803702E:
- ldr r0, [r7]
- lsls r2, r3, 3
- adds r1, r0, r6
- adds r1, r2
- str r4, [r1]
- adds r0, r2
- adds r0, r5
- strb r4, [r0]
- adds r3, 0x1
- cmp r3, 0x1
- ble _0803702E
- ldr r0, _080370C0
- mov r12, r0
- movs r5, 0xAE
- lsls r5, 1
- mov r8, r5
- ldr r4, _080370C8
- movs r3, 0
- movs r2, 0x3
-_08037054:
- mov r6, r12
- ldr r1, [r6]
- adds r1, r3
- add r1, r8
- adds r0, r4, 0
- ldm r0!, {r5-r7}
- stm r1!, {r5-r7}
- ldm r0!, {r5-r7}
- stm r1!, {r5-r7}
- adds r3, 0x18
- subs r2, 0x1
- cmp r2, 0
- bge _08037054
- movs r6, 0
- bl ResetUnusedInputStruct
- ldr r5, _080370C0
- ldr r0, [r5]
- movs r4, 0xAE
- lsls r4, 1
- adds r0, r4
- movs r1, 0x1
- movs r2, 0x1
- bl sub_800641C
- ldr r1, [r5]
- adds r0, r1, 0
- adds r0, 0x1C
- adds r1, r4
- ldr r3, _080370CC
- ldr r2, _080370D0
- str r2, [sp]
- str r6, [sp, 0x4]
- movs r2, 0x6
- str r2, [sp, 0x8]
- str r6, [sp, 0xC]
- movs r2, 0
- bl SetMenuItems
- ldr r0, [r5]
- adds r0, 0x1C
- movs r1, 0
- movs r2, 0x1
- bl sub_8035CF4
- bl sub_80376CC
- add sp, 0x10
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080370C0: .4byte gUnknown_203B35C
-_080370C4: .4byte 0x00000504
-_080370C8: .4byte gUnknown_80E653C
-_080370CC: .4byte gUnknown_80E6CD0
-_080370D0: .4byte gUnknown_80E6CE8
- thumb_func_end sub_8036FDC
-
- thumb_func_start sub_80370D4
-sub_80370D4:
- push {r4,lr}
- ldr r4, _080370EC
- ldr r0, [r4]
- cmp r0, 0
- beq _080370E6
- bl MemoryFree
- movs r0, 0
- str r0, [r4]
-_080370E6:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080370EC: .4byte gUnknown_203B35C
- thumb_func_end sub_80370D4
-
- thumb_func_start sub_80370F0
-sub_80370F0:
- push {r4,r5,lr}
- sub sp, 0x4
- movs r0, 0x4
- str r0, [sp]
- ldr r5, _08037110
- ldr r4, _08037114
- ldr r1, [r4]
- ldr r0, [r1, 0x8]
- cmp r0, 0x1
- beq _08037148
- cmp r0, 0x1
- bcc _08037118
- cmp r0, 0x2
- beq _08037158
- b _080371A8
- .align 2, 0
-_08037110: .4byte 0x0000ffdc
-_08037114: .4byte gUnknown_203B35C
-_08037118:
- adds r0, r1, 0
- adds r0, 0x1C
- bl sub_80130A8
- lsls r0, 24
- cmp r0, 0
- bne _08037130
- ldr r0, [r4]
- adds r0, 0x1C
- mov r1, sp
- bl sub_8013114
-_08037130:
- ldr r0, [sp]
- cmp r0, 0x4
- bne _0803713C
- bl sub_8037748
- b _080371A8
-_0803713C:
- ldr r1, [r4]
- movs r0, 0x1
- str r0, [r1, 0x8]
- bl sub_8037900
- b _080371A8
-_08037148:
- bl sub_80376CC
- ldr r1, [r4]
- movs r0, 0x2
- str r0, [r1, 0x8]
- bl sub_80371B8
- b _080371A8
-_08037158:
- ldr r0, [r1]
- cmp r0, 0x1
- bhi _08037172
- ldr r0, [r1, 0x4]
- cmp r0, 0
- bne _08037172
- movs r0, 0
- bl sub_8037C10
- cmp r0, 0
- bne _08037172
- movs r0, 0x29
- b _080371AA
-_08037172:
- ldr r4, _080371B4
- ldr r0, [r4]
- adds r0, 0x1C
- bl sub_80130A8
- lsls r0, 24
- cmp r0, 0
- bne _0803718C
- ldr r0, [r4]
- adds r0, 0x1C
- mov r1, sp
- bl sub_8013114
-_0803718C:
- ldr r0, [sp]
- cmp r0, 0x4
- beq _080371A4
- movs r0, 0x3
- bl sub_80119D4
- bl sub_8037798
- adds r5, r0, 0
- ldr r1, [r4]
- movs r0, 0x4
- str r0, [r1, 0x8]
-_080371A4:
- bl sub_8037748
-_080371A8:
- adds r0, r5, 0
-_080371AA:
- add sp, 0x4
- pop {r4,r5}
- pop {r1}
- bx r1
- .align 2, 0
-_080371B4: .4byte gUnknown_203B35C
- thumb_func_end sub_80370F0
-
- thumb_func_start sub_80371B8
-sub_80371B8:
- push {r4-r7,lr}
- sub sp, 0x10
- movs r6, 0
- movs r5, 0
- bl sub_8037400
- ldr r7, _0803721C
- ldr r1, [r7]
- ldr r0, [r1]
- cmp r0, 0x1
- bhi _08037228
- ldr r0, [r1, 0x4]
- cmp r0, 0
- bne _08037228
- movs r0, 0
- bl sub_8037C10
- cmp r0, 0
- bne _080371E0
- b _080373AC
-_080371E0:
- bl sub_80376CC
- ldr r0, [r7]
- movs r4, 0xAE
- lsls r4, 1
- adds r0, r4
- movs r1, 0
- bl sub_8035CC0
- ldr r1, [r7]
- adds r0, r1, 0
- adds r0, 0x1C
- adds r1, r4
- ldr r3, _08037220
- ldr r2, _08037224
- str r2, [sp]
- str r6, [sp, 0x4]
- movs r2, 0x6
- str r2, [sp, 0x8]
- str r6, [sp, 0xC]
- movs r2, 0
- bl SetMenuItems
- ldr r0, [r7]
- adds r0, 0x1C
- movs r1, 0
- movs r2, 0x1
- bl sub_8035CF4
- b _080373AC
- .align 2, 0
-_0803721C: .4byte gUnknown_203B35C
-_08037220: .4byte gUnknown_80E6C50
-_08037224: .4byte gUnknown_80E6C68
-_08037228:
- bl sub_80376CC
- ldr r4, _08037250
- ldr r0, [r4]
- movs r1, 0xAE
- lsls r1, 1
- adds r0, r1
- movs r1, 0
- bl sub_8035CC0
- ldr r0, [r4]
- ldr r0, [r0, 0x4]
- cmp r0, 0xF
- bls _08037246
- b _0803734C
-_08037246:
- lsls r0, 2
- ldr r1, _08037254
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08037250: .4byte gUnknown_203B35C
-_08037254: .4byte _08037258
- .align 2, 0
-_08037258:
- .4byte _08037298
- .4byte _080372D8
- .4byte _080372B8
- .4byte _080372A8
- .4byte _080372C8
- .4byte _080372D8
- .4byte _080372E8
- .4byte _080372F8
- .4byte _0803734C
- .4byte _08037308
- .4byte _0803734C
- .4byte _08037318
- .4byte _0803734C
- .4byte _08037328
- .4byte _08037338
- .4byte _08037348
-_08037298:
- ldr r6, _080372A0
- ldr r5, _080372A4
- b _0803734C
- .align 2, 0
-_080372A0: .4byte gUnknown_80E66BC
-_080372A4: .4byte gUnknown_80E66D4
-_080372A8:
- ldr r6, _080372B0
- ldr r5, _080372B4
- b _0803734C
- .align 2, 0
-_080372B0: .4byte gUnknown_80E6D54
-_080372B4: .4byte gUnknown_80E6D6C
-_080372B8:
- ldr r6, _080372C0
- ldr r5, _080372C4
- b _0803734C
- .align 2, 0
-_080372C0: .4byte gUnknown_80E6DDC
-_080372C4: .4byte gUnknown_80E6DF4
-_080372C8:
- ldr r6, _080372D0
- ldr r5, _080372D4
- b _0803734C
- .align 2, 0
-_080372D0: .4byte gUnknown_80E67D4
-_080372D4: .4byte gUnknown_80E67EC
-_080372D8:
- ldr r6, _080372E0
- ldr r5, _080372E4
- b _0803734C
- .align 2, 0
-_080372E0: .4byte gUnknown_80E6748
-_080372E4: .4byte gUnknown_80E6760
-_080372E8:
- ldr r6, _080372F0
- ldr r5, _080372F4
- b _0803734C
- .align 2, 0
-_080372F0: .4byte gUnknown_80E689C
-_080372F4: .4byte gUnknown_80E68B4
-_080372F8:
- ldr r6, _08037300
- ldr r5, _08037304
- b _0803734C
- .align 2, 0
-_08037300: .4byte gUnknown_80E6938
-_08037304: .4byte gUnknown_80E6950
-_08037308:
- ldr r6, _08037310
- ldr r5, _08037314
- b _0803734C
- .align 2, 0
-_08037310: .4byte gUnknown_80E69B0
-_08037314: .4byte gUnknown_80E69C8
-_08037318:
- ldr r6, _08037320
- ldr r5, _08037324
- b _0803734C
- .align 2, 0
-_08037320: .4byte gUnknown_80E6A10
-_08037324: .4byte gUnknown_80E6A28
-_08037328:
- ldr r6, _08037330
- ldr r5, _08037334
- b _0803734C
- .align 2, 0
-_08037330: .4byte gUnknown_80E6A74
-_08037334: .4byte gUnknown_80E6A8C
-_08037338:
- ldr r6, _08037340
- ldr r5, _08037344
- b _0803734C
- .align 2, 0
-_08037340: .4byte gUnknown_80E6B78
-_08037344: .4byte gUnknown_80E6B90
-_08037348:
- ldr r6, _080373B4
- ldr r5, _080373B8
-_0803734C:
- ldr r4, _080373BC
- ldr r1, [r4]
- adds r0, r1, 0
- adds r0, 0x1C
- movs r2, 0xAE
- lsls r2, 1
- adds r1, r2
- str r5, [sp]
- movs r3, 0
- str r3, [sp, 0x4]
- movs r2, 0x6
- str r2, [sp, 0x8]
- str r3, [sp, 0xC]
- movs r2, 0
- adds r3, r6, 0
- bl SetMenuItems
- ldr r0, [r4]
- adds r0, 0x1C
- movs r1, 0
- movs r2, 0x1
- bl sub_8035CF4
- ldr r4, [r4]
- ldr r0, [r4, 0x4]
- cmp r0, 0
- beq _080373AC
- ldr r0, [r4]
- cmp r0, 0
- bne _080373AC
- bl sub_8035D94
- adds r2, r0, 0
- ldrb r0, [r2]
- cmp r0, 0
- beq _080373AC
- ldr r3, [r2, 0x4]
- cmp r3, 0
- beq _080373AC
- ldr r0, _080373C0
- ldr r1, [r0]
- ldrb r0, [r2]
- lsls r0, 1
- adds r1, 0x50
- adds r1, r0
- ldrh r0, [r1]
- adds r0, r3
- strh r0, [r1]
-_080373AC:
- add sp, 0x10
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080373B4: .4byte gUnknown_80E6BF4
-_080373B8: .4byte gUnknown_80E6C0C
-_080373BC: .4byte gUnknown_203B35C
-_080373C0: .4byte gUnknown_203B460
- thumb_func_end sub_80371B8
-
- thumb_func_start sub_80373C4
-sub_80373C4:
- push {lr}
- movs r0, 0
- movs r1, 0
- bl sub_8005838
- bl sub_80060EC
- bl sub_800CB20
- bl LoadBufferedInputs
- bl TransferBGPaletteBuffer
- bl xxx_call_update_bg_vram
- bl sub_8009908
- bl xxx_call_update_bg_sound_input
- movs r0, 0
- bl ResetSprites
- pop {r0}
- bx r0
- thumb_func_end sub_80373C4
-
- thumb_func_start sub_80373F4
-sub_80373F4:
- ldr r0, _080373FC
- ldr r0, [r0]
- bx lr
- .align 2, 0
-_080373FC: .4byte gUnknown_203B35C
- thumb_func_end sub_80373F4
-
- thumb_func_start sub_8037400
-sub_8037400:
- push {r4-r6,lr}
- movs r6, 0
- movs r5, 0
- bl sub_8037810
- bl sub_8011830
- ldr r4, _08037434
- ldr r0, [r4]
- ldr r0, [r0]
- bl sub_8037B28
- ldr r4, [r4]
- str r0, [r4, 0x4]
- cmp r0, 0
- beq _08037422
- b _080376BE
-_08037422:
- ldr r0, [r4]
- cmp r0, 0xA
- bls _0803742A
- b _080375E8
-_0803742A:
- lsls r0, 2
- ldr r1, _08037438
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08037434: .4byte gUnknown_203B35C
-_08037438: .4byte _0803743C
- .align 2, 0
-_0803743C:
- .4byte _08037494
- .4byte _080374B8
- .4byte _08037534
- .4byte _0803751C
- .4byte _0803756C
- .4byte _080375D8
- .4byte _080374E4
- .4byte _080374D0
- .4byte _080375E8
- .4byte _08037480
- .4byte _08037468
-_08037468:
- ldr r0, _0803747C
- ldr r0, [r0]
- movs r1, 0xE7
- lsls r1, 2
- adds r6, r0, r1
- movs r2, 0x8A
- lsls r2, 3
- adds r5, r0, r2
- b _080375E8
- .align 2, 0
-_0803747C: .4byte gUnknown_203B35C
-_08037480:
- ldr r0, _08037490
- ldr r0, [r0]
- movs r3, 0xE7
- lsls r3, 2
- adds r6, r0, r3
- movs r4, 0x8A
- lsls r4, 3
- b _080375E6
- .align 2, 0
-_08037490: .4byte gUnknown_203B35C
-_08037494:
- bl sub_8035D94
- ldr r1, _080374B4
- ldr r3, [r1]
- movs r5, 0xDE
- lsls r5, 1
- adds r2, r3, r5
- ldr r1, [r0, 0x4]
- ldr r0, [r0]
- str r0, [r2]
- str r1, [r2, 0x4]
- adds r6, r2, 0
- movs r0, 0xE2
- lsls r0, 1
- adds r5, r3, r0
- b _080375E8
- .align 2, 0
-_080374B4: .4byte gUnknown_203B35C
-_080374B8:
- ldr r0, _080374CC
- ldr r0, [r0]
- movs r1, 0xDE
- lsls r1, 1
- adds r6, r0, r1
- movs r2, 0xE2
- lsls r2, 1
- adds r5, r0, r2
- b _080375E8
- .align 2, 0
-_080374CC: .4byte gUnknown_203B35C
-_080374D0:
- ldr r0, _080374E0
- ldr r0, [r0]
- movs r3, 0xE6
- lsls r3, 1
- adds r6, r0, r3
- movs r4, 0xFE
- lsls r4, 1
- b _080375E6
- .align 2, 0
-_080374E0: .4byte gUnknown_203B35C
-_080374E4:
- bl sub_8035D74
- lsls r0, 24
- lsrs r0, 24
- bl sub_8095228
- ldr r3, _08037518
- ldr r1, [r3]
- movs r2, 0xE6
- lsls r2, 1
- adds r1, r2
- ldm r0!, {r4-r6}
- stm r1!, {r4-r6}
- ldm r0!, {r4-r6}
- stm r1!, {r4-r6}
- ldm r0!, {r4-r6}
- stm r1!, {r4-r6}
- ldm r0!, {r4-r6}
- stm r1!, {r4-r6}
- ldr r0, [r3]
- adds r6, r0, r2
- movs r1, 0xFE
- lsls r1, 1
- adds r5, r0, r1
- b _080375E8
- .align 2, 0
-_08037518: .4byte gUnknown_203B35C
-_0803751C:
- ldr r0, _08037530
- ldr r0, [r0]
- movs r2, 0x8B
- lsls r2, 2
- adds r6, r0, r2
- movs r3, 0x97
- lsls r3, 2
- adds r5, r0, r3
- b _080375E8
- .align 2, 0
-_08037530: .4byte gUnknown_203B35C
-_08037534:
- bl sub_8035D74
- lsls r0, 24
- lsrs r0, 24
- bl sub_8095228
- ldr r3, _08037568
- ldr r1, [r3]
- movs r2, 0x8B
- lsls r2, 2
- adds r1, r2
- ldm r0!, {r4-r6}
- stm r1!, {r4-r6}
- ldm r0!, {r4-r6}
- stm r1!, {r4-r6}
- ldm r0!, {r4-r6}
- stm r1!, {r4-r6}
- ldm r0!, {r4-r6}
- stm r1!, {r4-r6}
- ldr r0, [r3]
- adds r6, r0, r2
- movs r1, 0x97
- lsls r1, 2
- adds r5, r0, r1
- b _080375E8
- .align 2, 0
-_08037568: .4byte gUnknown_203B35C
-_0803756C:
- bl sub_8035D74
- lsls r0, 24
- lsrs r0, 24
- bl sub_8095228
- ldr r4, _080375CC
- ldr r1, [r4]
- movs r5, 0xA3
- lsls r5, 2
- adds r1, r5
- ldm r0!, {r2,r3,r6}
- stm r1!, {r2,r3,r6}
- ldm r0!, {r2,r3,r6}
- stm r1!, {r2,r3,r6}
- ldm r0!, {r2,r3,r6}
- stm r1!, {r2,r3,r6}
- ldm r0!, {r2,r3,r6}
- stm r1!, {r2,r3,r6}
- bl sub_8035D3C
- lsls r0, 16
- ldr r1, _080375D0
- cmp r0, r1
- beq _080375BE
- bl sub_8035D3C
- ldr r3, [r4]
- movs r1, 0xAF
- lsls r1, 2
- adds r3, r1
- ldr r1, _080375D4
- ldr r1, [r1]
- lsls r0, 16
- asrs r0, 16
- movs r2, 0x58
- muls r0, r2
- adds r1, r0
- adds r0, r3, 0
- bl memcpy
-_080375BE:
- ldr r0, [r4]
- adds r6, r0, r5
- movs r2, 0xC5
- lsls r2, 2
- adds r5, r0, r2
- b _080375E8
- .align 2, 0
-_080375CC: .4byte gUnknown_203B35C
-_080375D0: .4byte 0xffff0000
-_080375D4: .4byte gUnknown_203B45C
-_080375D8:
- ldr r0, _08037610
- ldr r0, [r0]
- movs r3, 0xA3
- lsls r3, 2
- adds r6, r0, r3
- movs r4, 0xC5
- lsls r4, 2
-_080375E6:
- adds r5, r0, r4
-_080375E8:
- ldr r4, _08037610
- ldr r0, [r4]
- ldr r0, [r0]
- adds r1, r6, 0
- adds r2, r5, 0
- bl sub_8037D64
- ldr r1, [r4]
- str r0, [r1, 0x4]
- cmp r0, 0
- bne _080376BE
- ldr r0, [r1]
- cmp r0, 0xA
- bhi _080376AE
- lsls r0, 2
- ldr r1, _08037614
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08037610: .4byte gUnknown_203B35C
-_08037614: .4byte _08037618
- .align 2, 0
-_08037618:
- .4byte _08037644
- .4byte _08037644
- .4byte _08037658
- .4byte _08037658
- .4byte _0803766C
- .4byte _0803766C
- .4byte _08037684
- .4byte _08037684
- .4byte _080376AE
- .4byte _0803769C
- .4byte _0803769C
-_08037644:
- ldr r0, _08037654
- ldr r2, [r0]
- movs r5, 0xDE
- lsls r5, 1
- adds r6, r2, r5
- movs r1, 0xE2
- lsls r1, 1
- b _0803767A
- .align 2, 0
-_08037654: .4byte gUnknown_203B35C
-_08037658:
- ldr r0, _08037668
- ldr r2, [r0]
- movs r3, 0x8B
- lsls r3, 2
- adds r6, r2, r3
- movs r4, 0x97
- lsls r4, 2
- b _08037692
- .align 2, 0
-_08037668: .4byte gUnknown_203B35C
-_0803766C:
- ldr r0, _08037680
- ldr r2, [r0]
- movs r5, 0xA3
- lsls r5, 2
- adds r6, r2, r5
- movs r1, 0xC5
- lsls r1, 2
-_0803767A:
- adds r5, r2, r1
- adds r4, r0, 0
- b _080376AE
- .align 2, 0
-_08037680: .4byte gUnknown_203B35C
-_08037684:
- ldr r0, _08037698
- ldr r2, [r0]
- movs r3, 0xE6
- lsls r3, 1
- adds r6, r2, r3
- movs r4, 0xFE
- lsls r4, 1
-_08037692:
- adds r5, r2, r4
- adds r4, r0, 0
- b _080376AE
- .align 2, 0
-_08037698: .4byte gUnknown_203B35C
-_0803769C:
- ldr r1, _080376C8
- ldr r0, [r1]
- movs r5, 0xE7
- lsls r5, 2
- adds r6, r0, r5
- movs r2, 0x8A
- lsls r2, 3
- adds r5, r0, r2
- adds r4, r1, 0
-_080376AE:
- ldr r0, [r4]
- ldr r0, [r0]
- adds r1, r6, 0
- adds r2, r5, 0
- bl sub_80381F4
- ldr r1, [r4]
- str r0, [r1, 0x4]
-_080376BE:
- bl xxx_call_start_bg_music
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080376C8: .4byte gUnknown_203B35C
- thumb_func_end sub_8037400
-
- thumb_func_start sub_80376CC
-sub_80376CC:
- push {r4,lr}
- ldr r0, _08037728
- ldr r3, [r0]
- ldrh r1, [r3, 0xC]
- ldr r0, _0803772C
- ands r0, r1
- ldr r1, _08037730
- ands r0, r1
- ldr r4, _08037734
- ands r0, r4
- ldr r1, _08037738
- ands r0, r1
- ldr r1, _0803773C
- ands r0, r1
- movs r2, 0x80
- lsls r2, 7
- ldr r1, _08037740
- ands r0, r1
- orrs r0, r2
- strh r0, [r3, 0xC]
- movs r2, 0xFC
- lsls r2, 2
- ldrh r1, [r3, 0x10]
- movs r0, 0xFC
- lsls r0, 8
- ands r0, r1
- orrs r0, r2
- ands r0, r4
- movs r2, 0xF
- movs r4, 0xF0
- lsls r4, 8
- ldr r1, _08037744
- ands r0, r1
- orrs r0, r4
- strh r0, [r3, 0x10]
- movs r0, 0
- strh r0, [r3, 0xE]
- movs r1, 0xC0
- lsls r1, 4
- ldrh r0, [r3, 0x12]
- ands r2, r0
- orrs r2, r1
- strh r2, [r3, 0x12]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08037728: .4byte gUnknown_203B35C
-_0803772C: .4byte 0x0000feff
-_08037730: .4byte 0x0000fdff
-_08037734: .4byte 0x0000f3ff
-_08037738: .4byte 0x0000efff
-_0803773C: .4byte 0x0000dfff
-_08037740: .4byte 0x00003fff
-_08037744: .4byte 0x00000fff
- thumb_func_end sub_80376CC
-
- thumb_func_start sub_8037748
-sub_8037748:
- push {r4,lr}
- ldr r4, _08037794
- ldr r3, [r4]
- ldrh r1, [r3, 0xE]
- movs r0, 0xFE
- lsls r0, 8
- ands r0, r1
- movs r1, 0x70
- orrs r0, r1
- strh r0, [r3, 0xE]
- movs r2, 0xD0
- lsls r2, 3
- ldrh r1, [r3, 0x12]
- movs r0, 0xF
- ands r0, r1
- orrs r0, r2
- strh r0, [r3, 0x12]
- ldr r0, [r3, 0x14]
- movs r1, 0x8
- ands r0, r1
- cmp r0, 0
- beq _08037782
- adds r0, r3, 0
- adds r0, 0xC
- adds r1, 0xF8
- movs r2, 0
- movs r3, 0
- bl AddSprite
-_08037782:
- bl xxx_draw_string_80144C4
- ldr r1, [r4]
- ldr r0, [r1, 0x14]
- adds r0, 0x1
- str r0, [r1, 0x14]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08037794: .4byte gUnknown_203B35C
- thumb_func_end sub_8037748
-
- thumb_func_start sub_8037798
-sub_8037798:
- push {lr}
- ldr r2, _080377B4
- ldr r1, _080377B8
- ldr r0, [r1]
- ldr r0, [r0]
- adds r3, r1, 0
- cmp r0, 0xA
- bhi _0803780A
- lsls r0, 2
- ldr r1, _080377BC
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080377B4: .4byte 0x0000ffdc
-_080377B8: .4byte gUnknown_203B35C
-_080377BC: .4byte _080377C0
- .align 2, 0
-_080377C0:
- .4byte _080377EC
- .4byte _080377EC
- .4byte _080377F0
- .4byte _080377F0
- .4byte _080377F0
- .4byte _080377F0
- .4byte _080377F0
- .4byte _080377F0
- .4byte _0803780A
- .4byte _080377FE
- .4byte _080377FE
-_080377EC:
- movs r2, 0x1
- b _0803780A
-_080377F0:
- ldr r0, [r3]
- ldr r0, [r0, 0x4]
- movs r2, 0x1
- cmp r0, 0
- bne _0803780A
- movs r2, 0x2A
- b _0803780A
-_080377FE:
- ldr r0, [r3]
- ldr r0, [r0, 0x4]
- movs r2, 0xD
- cmp r0, 0
- bne _0803780A
- movs r2, 0x2B
-_0803780A:
- adds r0, r2, 0
- pop {r1}
- bx r1
- thumb_func_end sub_8037798
-
- thumb_func_start sub_8037810
-sub_8037810:
- push {r4-r6,lr}
- ldr r6, _080378FC
- ldr r0, [r6]
- movs r5, 0xDE
- lsls r5, 1
- adds r0, r5
- movs r1, 0
- movs r2, 0x8
- bl MemoryFill8
- ldr r0, [r6]
- movs r4, 0xE2
- lsls r4, 1
- adds r0, r4
- movs r1, 0
- movs r2, 0x8
- bl MemoryFill8
- ldr r0, [r6]
- adds r5, r0, r5
- movs r1, 0
- movs r2, 0
- str r1, [r5]
- str r2, [r5, 0x4]
- adds r4, r0, r4
- str r1, [r4]
- str r2, [r4, 0x4]
- movs r2, 0xE6
- lsls r2, 1
- adds r0, r2
- movs r1, 0
- movs r2, 0x30
- bl MemoryFill8
- ldr r0, [r6]
- movs r3, 0xFE
- lsls r3, 1
- adds r0, r3
- movs r1, 0
- movs r2, 0x30
- bl MemoryFill8
- ldr r0, [r6]
- movs r1, 0x8B
- lsls r1, 2
- adds r0, r1
- movs r1, 0
- movs r2, 0x30
- bl MemoryFill8
- ldr r0, [r6]
- movs r2, 0x97
- lsls r2, 2
- adds r0, r2
- movs r1, 0
- movs r2, 0x30
- bl MemoryFill8
- ldr r0, [r6]
- movs r3, 0xA3
- lsls r3, 2
- adds r0, r3
- movs r1, 0
- movs r2, 0x30
- bl MemoryFill8
- ldr r0, [r6]
- movs r1, 0xC5
- lsls r1, 2
- adds r0, r1
- movs r1, 0
- movs r2, 0x30
- bl MemoryFill8
- ldr r0, [r6]
- movs r2, 0xAF
- lsls r2, 2
- adds r0, r2
- movs r1, 0
- movs r2, 0x58
- bl MemoryFill8
- ldr r0, [r6]
- movs r3, 0xD1
- lsls r3, 2
- adds r0, r3
- movs r1, 0
- movs r2, 0x58
- bl MemoryFill8
- ldr r0, [r6]
- movs r1, 0xE7
- lsls r1, 2
- adds r0, r1
- movs r1, 0
- movs r2, 0xB4
- bl MemoryFill8
- ldr r0, [r6]
- movs r2, 0x8A
- lsls r2, 3
- adds r0, r2
- movs r1, 0
- movs r2, 0xB4
- bl MemoryFill8
- ldr r2, [r6]
- movs r3, 0xB1
- lsls r3, 2
- adds r0, r2, r3
- movs r1, 0
- strh r1, [r0]
- adds r3, 0x88
- adds r0, r2, r3
- strh r1, [r0]
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080378FC: .4byte gUnknown_203B35C
- thumb_func_end sub_8037810
-
- thumb_func_start sub_8037900
-sub_8037900:
- push {r4,lr}
- sub sp, 0x10
- ldr r4, _08037928
- ldr r0, [r4]
- movs r1, 0xAE
- lsls r1, 1
- adds r0, r1
- movs r1, 0
- bl sub_8035CC0
- ldr r0, [r4]
- ldr r0, [r0]
- cmp r0, 0xA
- bls _0803791E
- b _08037A14
-_0803791E:
- lsls r0, 2
- ldr r1, _0803792C
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08037928: .4byte gUnknown_203B35C
-_0803792C: .4byte _08037930
- .align 2, 0
-_08037930:
- .4byte _0803795C
- .4byte _0803795C
- .4byte _0803797C
- .4byte _0803797C
- .4byte _0803799C
- .4byte _0803799C
- .4byte _080379BC
- .4byte _080379BC
- .4byte _08037A14
- .4byte _080379F0
- .4byte _080379F0
-_0803795C:
- ldr r0, _08037970
- ldr r1, [r0]
- adds r0, r1, 0
- adds r0, 0x1C
- movs r2, 0xAE
- lsls r2, 1
- adds r1, r2
- ldr r3, _08037974
- ldr r2, _08037978
- b _080379CE
- .align 2, 0
-_08037970: .4byte gUnknown_203B35C
-_08037974: .4byte gUnknown_80E6554
-_08037978: .4byte gUnknown_80E656C
-_0803797C:
- ldr r0, _08037990
- ldr r1, [r0]
- adds r0, r1, 0
- adds r0, 0x1C
- movs r2, 0xAE
- lsls r2, 1
- adds r1, r2
- ldr r3, _08037994
- ldr r2, _08037998
- b _080379CE
- .align 2, 0
-_08037990: .4byte gUnknown_203B35C
-_08037994: .4byte gUnknown_80E6554
-_08037998: .4byte gUnknown_80E65D8
-_0803799C:
- ldr r0, _080379B0
- ldr r1, [r0]
- adds r0, r1, 0
- adds r0, 0x1C
- movs r2, 0xAE
- lsls r2, 1
- adds r1, r2
- ldr r3, _080379B4
- ldr r2, _080379B8
- b _080379CE
- .align 2, 0
-_080379B0: .4byte gUnknown_203B35C
-_080379B4: .4byte gUnknown_80E6554
-_080379B8: .4byte gUnknown_80E661C
-_080379BC:
- ldr r0, _080379E4
- ldr r1, [r0]
- adds r0, r1, 0
- adds r0, 0x1C
- movs r2, 0xAE
- lsls r2, 1
- adds r1, r2
- ldr r3, _080379E8
- ldr r2, _080379EC
-_080379CE:
- str r2, [sp]
- movs r4, 0
- str r4, [sp, 0x4]
- movs r2, 0x6
- str r2, [sp, 0x8]
- str r4, [sp, 0xC]
- movs r2, 0
- bl SetMenuItems
- b _08037A14
- .align 2, 0
-_080379E4: .4byte gUnknown_203B35C
-_080379E8: .4byte gUnknown_80E6554
-_080379EC: .4byte gUnknown_80E665C
-_080379F0:
- ldr r0, _08037A38
- ldr r1, [r0]
- adds r0, r1, 0
- adds r0, 0x1C
- movs r2, 0xAE
- lsls r2, 1
- adds r1, r2
- ldr r3, _08037A3C
- ldr r2, _08037A40
- str r2, [sp]
- movs r4, 0
- str r4, [sp, 0x4]
- movs r2, 0x6
- str r2, [sp, 0x8]
- str r4, [sp, 0xC]
- movs r2, 0
- bl SetMenuItems
-_08037A14:
- ldr r4, _08037A38
- ldr r0, [r4]
- adds r0, 0x1C
- movs r1, 0
- movs r2, 0x1
- bl sub_8035CF4
- bl sub_80373C4
- ldr r0, [r4]
- adds r0, 0x1C
- bl sub_80130A8
- add sp, 0x10
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08037A38: .4byte gUnknown_203B35C
-_08037A3C: .4byte gUnknown_80E6554
-_08037A40: .4byte gUnknown_80E667C
- thumb_func_end sub_8037900
-
- thumb_func_start nullsub_202
-nullsub_202:
- bx lr
- thumb_func_end nullsub_202
-
- thumb_func_start sub_8037A48
-sub_8037A48:
- push {r4-r6,lr}
- sub sp, 0x28
- movs r6, 0x1
- movs r0, 0
- mov r1, sp
- movs r2, 0x14
- bl sub_800D670
- add r4, sp, 0x14
- movs r0, 0x1
- adds r1, r4, 0
- movs r2, 0x14
- bl sub_800D670
- ldr r1, _08037AAC
- movs r3, 0x8
- adds r2, r1, 0
- adds r0, r2, 0x4
-_08037A6C:
- str r3, [r0]
- subs r0, 0x4
- cmp r0, r1
- bge _08037A6C
- ldr r0, [sp, 0x10]
- str r0, [r2]
- ldr r0, [r4, 0x10]
- str r0, [r2, 0x4]
- ldr r5, _08037AB0
- mov r0, sp
- adds r1, r5, 0
- bl strcmp
- cmp r0, 0
- beq _08037A8C
- movs r0, 0x1
-_08037A8C:
- lsls r0, 24
- cmp r0, 0
- bne _08037AA6
- adds r0, r4, 0
- adds r1, r5, 0
- bl strcmp
- cmp r0, 0
- beq _08037AA0
- movs r0, 0x1
-_08037AA0:
- lsls r0, 24
- cmp r0, 0
- beq _08037AB4
-_08037AA6:
- movs r0, 0
- b _08037B1E
- .align 2, 0
-_08037AAC: .4byte gUnknown_202EC40
-_08037AB0: .4byte gUnknown_80E6E50
-_08037AB4:
- ldr r1, [sp, 0x10]
- cmp r1, 0
- bne _08037AC0
- ldr r0, [r4, 0x10]
- cmp r0, 0x1
- beq _08037B1C
-_08037AC0:
- cmp r1, 0x1
- bne _08037ACA
- ldr r0, [r4, 0x10]
- cmp r0, 0
- beq _08037B1C
-_08037ACA:
- cmp r1, 0x2
- bne _08037AD4
- ldr r0, [r4, 0x10]
- cmp r0, 0x3
- beq _08037B1C
-_08037AD4:
- cmp r1, 0x3
- bne _08037ADE
- ldr r0, [r4, 0x10]
- cmp r0, 0x2
- beq _08037B1C
-_08037ADE:
- cmp r1, 0x9
- bne _08037AE8
- ldr r0, [r4, 0x10]
- cmp r0, 0xA
- beq _08037B1C
-_08037AE8:
- cmp r1, 0xA
- bne _08037AF2
- ldr r0, [r4, 0x10]
- cmp r0, 0x9
- beq _08037B1C
-_08037AF2:
- cmp r1, 0x4
- bne _08037AFC
- ldr r0, [r4, 0x10]
- cmp r0, 0x5
- beq _08037B1C
-_08037AFC:
- cmp r1, 0x5
- bne _08037B06
- ldr r0, [r4, 0x10]
- cmp r0, 0x4
- beq _08037B1C
-_08037B06:
- cmp r1, 0x6
- bne _08037B10
- ldr r0, [r4, 0x10]
- cmp r0, 0x7
- beq _08037B1C
-_08037B10:
- cmp r1, 0x7
- bne _08037B1A
- ldr r0, [r4, 0x10]
- cmp r0, 0x6
- beq _08037B1C
-_08037B1A:
- movs r6, 0
-_08037B1C:
- adds r0, r6, 0
-_08037B1E:
- add sp, 0x28
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end sub_8037A48
-
- thumb_func_start sub_8037B28
-sub_8037B28:
- push {r4,r5,lr}
- sub sp, 0x14
- adds r4, r0, 0
- movs r5, 0
- bl sub_800D414
- ldr r0, _08037B58
- str r5, [r0]
- ldr r5, _08037B5C
- mov r0, sp
- movs r1, 0
- movs r2, 0x14
- bl MemoryFill8
- mov r0, sp
- adds r1, r5, 0
- bl strcpy
- str r4, [sp, 0x10]
- mov r0, sp
- movs r1, 0x14
- bl sub_800D59C
- b _08037B7A
- .align 2, 0
-_08037B58: .4byte gUnknown_202EC38
-_08037B5C: .4byte gUnknown_80E6E50
-_08037B60:
- cmp r5, 0x3
- beq _08037BCC
- cmp r5, 0x4
- beq _08037BD8
- cmp r5, 0x5
- beq _08037BF0
- ldr r2, _08037BC0
- ldr r1, [r2]
- ldr r0, _08037BC4
- cmp r1, r0
- bgt _08037BE4
- adds r0, r1, 0x1
- str r0, [r2]
-_08037B7A:
- movs r4, 0
-_08037B7C:
- bl sub_80373C4
- bl sub_8012AE8
- cmp r0, 0x3
- bgt _08037B8C
- cmp r0, 0x2
- bge _08037BF0
-_08037B8C:
- adds r4, 0x1
- cmp r4, 0
- ble _08037B7C
- bl sub_800D33C
- adds r5, r0, 0
- bl sub_800D570
- cmp r5, 0x2
- bne _08037B60
- bl sub_800D600
- lsls r0, 24
- cmp r0, 0
- beq _08037BFC
- bl sub_8037A48
- lsls r0, 24
- cmp r0, 0
- bne _08037BC8
- movs r4, 0x4
- bl sub_800D520
- bl sub_800D510
- b _08037C06
- .align 2, 0
-_08037BC0: .4byte gUnknown_202EC38
-_08037BC4: .4byte 0x00000707
-_08037BC8:
- movs r4, 0
- b _08037C06
-_08037BCC:
- bl sub_800D520
- bl sub_800D510
- movs r0, 0x2
- b _08037C08
-_08037BD8:
- bl sub_800D520
- bl sub_800D510
- movs r0, 0x3
- b _08037C08
-_08037BE4:
- bl sub_800D520
- bl sub_800D510
- movs r0, 0xF
- b _08037C08
-_08037BF0:
- bl sub_800D520
- bl sub_800D510
- movs r0, 0x1
- b _08037C08
-_08037BFC:
- movs r4, 0x5
- bl sub_800D520
- bl sub_800D510
-_08037C06:
- adds r0, r4, 0
-_08037C08:
- add sp, 0x14
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8037B28
-
- thumb_func_start sub_8037C10
-sub_8037C10:
- push {lr}
- lsls r0, 24
- cmp r0, 0
- beq _08037C24
- bl sub_800D588
- lsls r0, 24
- cmp r0, 0
- bne _08037C38
- b _08037C2E
-_08037C24:
- bl sub_800D588
- lsls r0, 24
- cmp r0, 0
- beq _08037C38
-_08037C2E:
- ldr r0, _08037C34
- ldr r0, [r0, 0x4]
- b _08037C3C
- .align 2, 0
-_08037C34: .4byte gUnknown_202EC40
-_08037C38:
- ldr r0, _08037C40
- ldr r0, [r0]
-_08037C3C:
- pop {r1}
- bx r1
- .align 2, 0
-_08037C40: .4byte gUnknown_202EC40
- thumb_func_end sub_8037C10
-
- thumb_func_start sub_8037C44
-sub_8037C44:
- push {r4-r6,lr}
- adds r6, r0, 0
- adds r5, r1, 0
- movs r4, 0
-_08037C4C:
- adds r0, r4, 0
- bl sub_800D68C
- adds r4, 0x1
- cmp r4, 0x1
- ble _08037C4C
- cmp r6, 0xA
- bhi _08037CBE
- lsls r0, r6, 2
- ldr r1, _08037C68
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08037C68: .4byte _08037C6C
- .align 2, 0
-_08037C6C:
- .4byte _08037C98
- .4byte _08037C98
- .4byte _08037CA2
- .4byte _08037CA2
- .4byte _08037CAC
- .4byte _08037CAC
- .4byte _08037CA2
- .4byte _08037CA2
- .4byte _08037CBE
- .4byte _08037CB6
- .4byte _08037CB6
-_08037C98:
- adds r0, r5, 0
- movs r1, 0x8
- bl sub_800D59C
- b _08037CBE
-_08037CA2:
- adds r0, r5, 0
- movs r1, 0x30
- bl sub_800D59C
- b _08037CBE
-_08037CAC:
- adds r0, r5, 0
- movs r1, 0x88
- bl sub_800D59C
- b _08037CBE
-_08037CB6:
- adds r0, r5, 0
- movs r1, 0xB4
- bl sub_800D59C
-_08037CBE:
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_8037C44
-
- thumb_func_start sub_8037CC4
-sub_8037CC4:
- push {r4,lr}
- adds r3, r1, 0
- adds r4, r2, 0
- cmp r0, 0xA
- bhi _08037D5E
- lsls r0, 2
- ldr r1, _08037CD8
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08037CD8: .4byte _08037CDC
- .align 2, 0
-_08037CDC:
- .4byte _08037D08
- .4byte _08037D08
- .4byte _08037D1E
- .4byte _08037D1E
- .4byte _08037D34
- .4byte _08037D34
- .4byte _08037D1E
- .4byte _08037D1E
- .4byte _08037D5E
- .4byte _08037D4A
- .4byte _08037D4A
-_08037D08:
- movs r0, 0
- adds r1, r3, 0
- movs r2, 0x8
- bl sub_800D670
- movs r0, 0x1
- adds r1, r4, 0
- movs r2, 0x8
- bl sub_800D670
- b _08037D5E
-_08037D1E:
- movs r0, 0
- adds r1, r3, 0
- movs r2, 0x30
- bl sub_800D670
- movs r0, 0x1
- adds r1, r4, 0
- movs r2, 0x30
- bl sub_800D670
- b _08037D5E
-_08037D34:
- movs r0, 0
- adds r1, r3, 0
- movs r2, 0x88
- bl sub_800D670
- movs r0, 0x1
- adds r1, r4, 0
- movs r2, 0x88
- bl sub_800D670
- b _08037D5E
-_08037D4A:
- movs r0, 0
- adds r1, r3, 0
- movs r2, 0xB4
- bl sub_800D670
- movs r0, 0x1
- adds r1, r4, 0
- movs r2, 0xB4
- bl sub_800D670
-_08037D5E:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_8037CC4
-
- thumb_func_start sub_8037D64
-sub_8037D64:
- push {r4-r7,lr}
- adds r5, r0, 0
- adds r6, r1, 0
- adds r7, r2, 0
- movs r4, 0
- ldr r0, _08037D80
- str r4, [r0]
- bl sub_800D494
- adds r0, r5, 0
- adds r1, r6, 0
- bl sub_8037C44
- b _08037D96
- .align 2, 0
-_08037D80: .4byte gUnknown_202EC48
-_08037D84:
- subs r0, r4, 0x3
- cmp r0, 0x2
- bls _08037DBC
- ldr r1, _08037DB8
- ldr r0, [r1]
- cmp r0, 0x63
- bgt _08037DC8
- adds r0, 0x1
- str r0, [r1]
-_08037D96:
- bl sub_80373C4
- bl sub_800D33C
- adds r4, r0, 0
- bl sub_800D570
- cmp r4, 0x2
- bne _08037D84
- bl sub_800D600
- lsls r0, 24
- cmp r0, 0
- beq _08037DD4
- movs r4, 0
- b _08037DDE
- .align 2, 0
-_08037DB8: .4byte gUnknown_202EC48
-_08037DBC:
- bl sub_800D520
- bl sub_800D510
- movs r0, 0x1
- b _08037DEA
-_08037DC8:
- bl sub_800D520
- bl sub_800D510
- movs r0, 0xF
- b _08037DEA
-_08037DD4:
- bl sub_800D520
- bl sub_800D510
- movs r4, 0x5
-_08037DDE:
- adds r0, r5, 0
- adds r1, r6, 0
- adds r2, r7, 0
- bl sub_8037CC4
- adds r0, r4, 0
-_08037DEA:
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_8037D64
-
- thumb_func_start sub_8037DF0
-sub_8037DF0:
- push {r4,lr}
- sub sp, 0x8
- movs r4, 0
- movs r0, 0
- mov r1, sp
- movs r2, 0x4
- bl sub_800D670
- add r1, sp, 0x4
- movs r0, 0x1
- movs r2, 0x4
- bl sub_800D670
- ldr r0, [sp]
- cmp r0, 0
- bne _08037E16
- ldr r0, [sp, 0x4]
- cmp r0, 0
- beq _08037E2C
-_08037E16:
- bl sub_800D588
- lsls r0, 24
- cmp r0, 0
- bne _08037E24
- ldr r4, [sp, 0x4]
- b _08037E26
-_08037E24:
- ldr r4, [sp]
-_08037E26:
- cmp r4, 0
- bne _08037E2C
- movs r4, 0xE
-_08037E2C:
- adds r0, r4, 0
- add sp, 0x8
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_8037DF0
-
- thumb_func_start sub_8037E38
-sub_8037E38:
- push {r4-r6,lr}
- adds r6, r0, 0
- adds r5, r1, 0
- bl sub_800D588
- lsls r0, 24
- adds r4, r6, 0
- cmp r0, 0
- bne _08037E4C
- adds r4, r5, 0
-_08037E4C:
- bl sub_800D588
- lsls r0, 24
- adds r3, r5, 0
- cmp r0, 0
- bne _08037E5A
- adds r3, r6, 0
-_08037E5A:
- ldrb r0, [r4]
- ldrb r1, [r3]
- cmp r0, r1
- bne _08037E70
- ldr r0, _08037E6C
- ldr r1, [r0]
- ldrb r0, [r4]
- b _08037E76
- .align 2, 0
-_08037E6C: .4byte gUnknown_203B460
-_08037E70:
- ldr r0, _08037E8C
- ldr r1, [r0]
- ldrb r0, [r3]
-_08037E76:
- lsls r0, 1
- adds r1, 0x50
- adds r1, r0
- ldrh r2, [r1]
- ldr r0, [r3, 0x4]
- adds r2, r0
- strh r2, [r1]
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08037E8C: .4byte gUnknown_203B460
- thumb_func_end sub_8037E38
-
- thumb_func_start sub_8037E90
-sub_8037E90:
- push {r4,r5,lr}
- adds r5, r0, 0
- adds r4, r1, 0
- bl sub_800D588
- lsls r0, 24
- cmp r0, 0
- bne _08037EA2
- adds r4, r5, 0
-_08037EA2:
- movs r0, 0x2
- strb r0, [r4]
- adds r0, r4, 0
- bl sub_80951BC
- ldr r0, [r4, 0x10]
- bl sub_8095274
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_8037E90
-
- thumb_func_start nullsub_53
-nullsub_53:
- bx lr
- thumb_func_end nullsub_53
-
- thumb_func_start sub_8037EBC
-sub_8037EBC:
- push {r4-r6,lr}
- adds r6, r0, 0
- adds r4, r1, 0
- bl sub_800D588
- lsls r0, 24
- adds r5, r4, 0
- cmp r0, 0
- bne _08037ED0
- adds r5, r6, 0
-_08037ED0:
- ldr r1, [r5, 0x10]
- movs r0, 0x1
- bl sub_809539C
- lsls r0, 24
- lsrs r0, 24
- bl sub_8095228
- adds r4, r0, 0
- adds r1, r4, 0
- adds r0, r5, 0
- ldm r0!, {r2,r3,r6}
- stm r1!, {r2,r3,r6}
- ldm r0!, {r2,r3,r6}
- stm r1!, {r2,r3,r6}
- ldm r0!, {r2,r3,r6}
- stm r1!, {r2,r3,r6}
- ldm r0!, {r2,r3,r6}
- stm r1!, {r2,r3,r6}
- movs r0, 0x5
- strb r0, [r4]
- adds r0, r4, 0
- bl sub_80951FC
- movs r0, 0x7
- strb r0, [r4]
- movs r0, 0x38
- ldrsh r6, [r5, r0]
- cmp r6, 0
- beq _08037F30
- ldr r4, _08037F2C
- ldr r0, [r4]
- ldr r1, [r5, 0x10]
- stm r0!, {r1}
- adds r1, r5, 0
- adds r1, 0x30
- movs r2, 0x58
- bl memcpy
- ldr r1, [r4]
- movs r0, 0x42
- strb r0, [r1, 0x8]
- ldr r1, [r4]
- movs r0, 0x1
- strb r0, [r1, 0x9]
- b _08037F40
- .align 2, 0
-_08037F2C: .4byte gUnknown_203B484
-_08037F30:
- ldr r4, _08037F48
- ldr r0, [r4]
- movs r1, 0
- movs r2, 0x5C
- bl MemoryFill8
- ldr r0, [r4]
- strh r6, [r0, 0xC]
-_08037F40:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08037F48: .4byte gUnknown_203B484
- thumb_func_end sub_8037EBC
-
- thumb_func_start sub_8037F4C
-sub_8037F4C:
- push {r4,r5,lr}
- adds r5, r0, 0
- adds r4, r1, 0
- bl sub_800D588
- lsls r0, 24
- cmp r0, 0
- bne _08037F5E
- adds r4, r5, 0
-_08037F5E:
- ldr r1, [r4, 0x10]
- movs r0, 0x4
- bl sub_809539C
- lsls r0, 24
- lsrs r0, 24
- bl sub_8095228
- adds r2, r0, 0
- adds r1, r4, 0
- ldm r1!, {r3-r5}
- stm r2!, {r3-r5}
- ldm r1!, {r3-r5}
- stm r2!, {r3-r5}
- ldm r1!, {r3-r5}
- stm r2!, {r3-r5}
- ldm r1!, {r3-r5}
- stm r2!, {r3-r5}
- movs r1, 0x6
- strb r1, [r0]
- bl sub_8035D4C
- cmp r0, 0
- beq _08037F96
- adds r1, r0, 0
- adds r1, 0x3A
- movs r0, 0x1
- strb r0, [r1]
-_08037F96:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_8037F4C
-
- thumb_func_start sub_8037F9C
-sub_8037F9C:
- push {lr}
- adds r3, r1, 0
- cmp r0, 0xA
- bhi _08038010
- lsls r0, 2
- ldr r1, _08037FB0
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08037FB0: .4byte _08037FB4
- .align 2, 0
-_08037FB4:
- .4byte _08037FE0
- .4byte _08037FE0
- .4byte _08038010
- .4byte _08037FF4
- .4byte _08038010
- .4byte _08037FFE
- .4byte _08038010
- .4byte _08037FEA
- .4byte _08038010
- .4byte _08038010
- .4byte _08038008
-_08037FE0:
- adds r0, r3, 0
- adds r1, r2, 0
- bl sub_8037E38
- b _08038010
-_08037FEA:
- adds r0, r3, 0
- adds r1, r2, 0
- bl sub_8037F4C
- b _08038010
-_08037FF4:
- adds r0, r3, 0
- adds r1, r2, 0
- bl sub_8037E90
- b _08038010
-_08037FFE:
- adds r0, r3, 0
- adds r1, r2, 0
- bl sub_8037EBC
- b _08038010
-_08038008:
- adds r0, r3, 0
- adds r1, r2, 0
- bl nullsub_53
-_08038010:
- pop {r0}
- bx r0
- thumb_func_end sub_8037F9C
-
- thumb_func_start sub_8038014
-sub_8038014:
- push {r4-r6,lr}
- adds r6, r0, 0
- adds r5, r1, 0
- bl sub_800D588
- lsls r0, 24
- adds r4, r6, 0
- cmp r0, 0
- bne _08038028
- adds r4, r5, 0
-_08038028:
- bl sub_800D588
- lsls r0, 24
- adds r3, r5, 0
- cmp r0, 0
- bne _08038036
- adds r3, r6, 0
-_08038036:
- ldrb r0, [r4]
- ldrb r1, [r3]
- cmp r0, r1
- bne _0803804C
- ldr r0, _08038048
- ldr r1, [r0]
- ldrb r0, [r4]
- b _08038052
- .align 2, 0
-_08038048: .4byte gUnknown_203B460
-_0803804C:
- ldr r0, _08038070
- ldr r1, [r0]
- ldrb r0, [r3]
-_08038052:
- lsls r0, 1
- adds r1, 0x50
- adds r1, r0
- ldrh r2, [r1]
- ldr r0, [r3, 0x4]
- adds r2, r0
- ldr r0, _08038074
- movs r1, 0
- cmp r2, r0
- ble _08038068
- movs r1, 0x6
-_08038068:
- adds r0, r1, 0
- pop {r4-r6}
- pop {r1}
- bx r1
- .align 2, 0
-_08038070: .4byte gUnknown_203B460
-_08038074: .4byte 0x000003e7
- thumb_func_end sub_8038014
-
- thumb_func_start sub_8038078
-sub_8038078:
- push {r4-r6,lr}
- adds r5, r0, 0
- adds r4, r1, 0
- bl sub_800D588
- lsls r0, 24
- cmp r0, 0
- bne _0803808A
- adds r4, r5, 0
-_0803808A:
- ldr r6, [r4, 0x10]
- ldr r0, _08038098
- ldr r0, [r0]
- cmp r0, 0
- beq _0803809C
- ldr r5, [r0, 0x50]
- b _080380A2
- .align 2, 0
-_08038098: .4byte gUnknown_203B184
-_0803809C:
- bl sub_8011C34
- adds r5, r0, 0
-_080380A2:
- movs r0, 0x4
- adds r1, r6, 0
- bl sub_80952F0
- lsls r0, 24
- cmp r0, 0
- beq _080380BA
- ldr r0, [r4, 0x28]
- cmp r0, r5
- bne _080380BA
- movs r0, 0
- b _080380BC
-_080380BA:
- movs r0, 0xB
-_080380BC:
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end sub_8038078
-
- thumb_func_start sub_80380C4
-sub_80380C4:
- push {r4-r6,lr}
- adds r6, r0, 0
- adds r4, r1, 0
- bl sub_800D588
- lsls r0, 24
- adds r5, r4, 0
- cmp r0, 0
- bne _080380D8
- adds r5, r6, 0
-_080380D8:
- ldr r4, [r5, 0x10]
- movs r0, 0x2
- adds r1, r4, 0
- bl sub_80952F0
- lsls r0, 24
- cmp r0, 0
- bne _08038110
- movs r0, 0x4
- adds r1, r4, 0
- bl sub_80952F0
- lsls r0, 24
- cmp r0, 0
- bne _08038110
- movs r0, 0x6
- adds r1, r4, 0
- bl sub_80952F0
- lsls r0, 24
- cmp r0, 0
- bne _08038110
- ldr r0, [r5, 0x10]
- bl sub_8095298
- lsls r0, 24
- cmp r0, 0
- beq _08038114
-_08038110:
- movs r0, 0x7
- b _08038126
-_08038114:
- bl sub_8095190
- movs r1, 0x1
- negs r1, r1
- cmp r0, r1
- beq _08038124
- movs r0, 0
- b _08038126
-_08038124:
- movs r0, 0xD
-_08038126:
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end sub_80380C4
-
- thumb_func_start sub_803812C
-sub_803812C:
- push {r4,r5,lr}
- adds r5, r0, 0
- adds r4, r1, 0
- bl sub_800D588
- lsls r0, 24
- cmp r0, 0
- bne _0803813E
- adds r4, r5, 0
-_0803813E:
- ldr r1, [r4, 0x10]
- movs r0, 0x1
- bl sub_80952F0
- lsls r0, 24
- cmp r0, 0
- bne _08038150
- movs r0, 0x9
- b _08038152
-_08038150:
- movs r0, 0
-_08038152:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_803812C
-
- thumb_func_start sub_8038158
-sub_8038158:
- movs r0, 0
- bx lr
- thumb_func_end sub_8038158
-
- thumb_func_start sub_803815C
-sub_803815C:
- push {r4,lr}
- adds r3, r1, 0
- movs r4, 0
- cmp r0, 0xA
- bhi _080381D2
- lsls r0, 2
- ldr r1, _08038170
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08038170: .4byte _08038174
- .align 2, 0
-_08038174:
- .4byte _080381A0
- .4byte _080381A0
- .4byte _080381D2
- .4byte _080381B4
- .4byte _080381D2
- .4byte _080381BE
- .4byte _080381D2
- .4byte _080381AA
- .4byte _080381D2
- .4byte _080381D2
- .4byte _080381C8
-_080381A0:
- adds r0, r3, 0
- adds r1, r2, 0
- bl sub_8038014
- b _080381D0
-_080381AA:
- adds r0, r3, 0
- adds r1, r2, 0
- bl sub_8038078
- b _080381D0
-_080381B4:
- adds r0, r3, 0
- adds r1, r2, 0
- bl sub_80380C4
- b _080381D0
-_080381BE:
- adds r0, r3, 0
- adds r1, r2, 0
- bl sub_803812C
- b _080381D0
-_080381C8:
- adds r0, r3, 0
- adds r1, r2, 0
- bl sub_8038158
-_080381D0:
- adds r4, r0, 0
-_080381D2:
- adds r0, r4, 0
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_803815C
-
- thumb_func_start sub_80381DC
-sub_80381DC:
- push {lr}
- bl sub_8037F9C
- pop {r0}
- bx r0
- thumb_func_end sub_80381DC
-
- thumb_func_start sub_80381E8
-sub_80381E8:
- push {lr}
- bl sub_803815C
- pop {r1}
- bx r1
- thumb_func_end sub_80381E8
-
- thumb_func_start sub_80381F4
-sub_80381F4:
- push {r4-r7,lr}
- sub sp, 0x4
- adds r5, r0, 0
- adds r6, r1, 0
- adds r7, r2, 0
- movs r4, 0
- bl sub_803815C
- str r0, [sp]
- ldr r0, _08038218
- str r4, [r0]
- bl sub_800D494
- mov r0, sp
- movs r1, 0x4
- bl sub_800D59C
- b _0803822E
- .align 2, 0
-_08038218: .4byte gUnknown_202EC4C
-_0803821C:
- subs r0, r4, 0x3
- cmp r0, 0x2
- bls _08038272
- ldr r1, _08038250
- ldr r0, [r1]
- cmp r0, 0x63
- bgt _0803827E
- adds r0, 0x1
- str r0, [r1]
-_0803822E:
- bl sub_80373C4
- bl sub_800D33C
- adds r4, r0, 0
- bl sub_800D570
- cmp r4, 0x2
- bne _0803821C
- bl sub_800D600
- lsls r0, 24
- cmp r0, 0
- beq _08038254
- bl sub_8037DF0
- b _0803825E
- .align 2, 0
-_08038250: .4byte gUnknown_202EC4C
-_08038254:
- bl sub_800D520
- bl sub_800D510
- movs r0, 0x5
-_0803825E:
- str r0, [sp]
- ldr r0, [sp]
- cmp r0, 0
- bne _0803828A
- adds r0, r5, 0
- adds r1, r6, 0
- adds r2, r7, 0
- bl sub_8037F9C
- b _08038292
-_08038272:
- bl sub_800D520
- bl sub_800D510
- movs r0, 0x1
- b _08038298
-_0803827E:
- bl sub_800D520
- bl sub_800D510
- movs r0, 0xF
- b _08038298
-_0803828A:
- bl sub_800D520
- bl sub_800D510
-_08038292:
- bl sub_800D520
- ldr r0, [sp]
-_08038298:
- add sp, 0x4
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_80381F4
-
- thumb_func_start sub_80382A0
-sub_80382A0:
- push {lr}
- movs r0, 0
- bl sub_8031F60
- pop {r0}
- bx r0
- thumb_func_end sub_80382A0
-
- thumb_func_start sub_80382AC
-sub_80382AC:
- push {lr}
- bl ResetUnusedInputStruct
- movs r0, 0
- movs r1, 0x1
- movs r2, 0x1
- bl sub_800641C
- pop {r0}
- bx r0
- thumb_func_end sub_80382AC
-
- thumb_func_start sub_80382C0
-sub_80382C0:
- push {r4,lr}
- ldr r4, _080382E0
- movs r0, 0x1
- bl sub_8031FD8
- cmp r0, 0x1
- bls _080382D8
- cmp r0, 0x3
- bhi _080382D8
- bl sub_803203C
- movs r4, 0x1
-_080382D8:
- adds r0, r4, 0
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_080382E0: .4byte 0x0000ffdc
- thumb_func_end sub_80382C0
-
- thumb_func_start sub_80382E4
-sub_80382E4:
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- sub sp, 0x10
- mov r8, r0
- ldr r5, _08038398
- ldr r0, [r5]
- cmp r0, 0
- bne _0803830E
- movs r4, 0xDA
- lsls r4, 1
- adds r0, r4, 0
- movs r1, 0x8
- bl MemoryAlloc
- str r0, [r5]
- movs r1, 0
- adds r2, r4, 0
- bl MemoryFill8
-_0803830E:
- mov r12, r5
- movs r0, 0xA4
- lsls r0, 1
- mov r9, r0
- ldr r4, _0803839C
- movs r3, 0
- movs r2, 0x3
-_0803831C:
- mov r5, r12
- ldr r1, [r5]
- adds r1, r3
- add r1, r9
- adds r0, r4, 0
- ldm r0!, {r5-r7}
- stm r1!, {r5-r7}
- ldm r0!, {r5-r7}
- stm r1!, {r5-r7}
- adds r3, 0x18
- subs r2, 0x1
- cmp r2, 0
- bge _0803831C
- bl ResetUnusedInputStruct
- ldr r5, _08038398
- ldr r0, [r5]
- movs r6, 0xA4
- lsls r6, 1
- adds r0, r6
- movs r1, 0x1
- movs r2, 0x1
- bl sub_800641C
- mov r7, r8
- cmp r7, 0x25
- bne _08038370
- ldr r1, [r5]
- adds r0, r1, 0
- adds r0, 0x8
- adds r1, r6
- ldr r3, _080383A0
- ldr r2, _080383A4
- str r2, [sp]
- movs r4, 0
- str r4, [sp, 0x4]
- movs r2, 0x4
- str r2, [sp, 0x8]
- str r4, [sp, 0xC]
- movs r2, 0
- bl SetMenuItems
-_08038370:
- ldr r0, [r5]
- adds r0, 0x8
- movs r1, 0
- movs r2, 0x1
- bl sub_8035CF4
- ldr r1, [r5]
- mov r0, r8
- str r0, [r1]
- movs r0, 0
- str r0, [r1, 0x4]
- bl sub_8038440
- add sp, 0x10
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08038398: .4byte gUnknown_203B360
-_0803839C: .4byte gUnknown_80E6E7C
-_080383A0: .4byte gUnknown_80E6E94
-_080383A4: .4byte gUnknown_80E6EAC
- thumb_func_end sub_80382E4
-
- thumb_func_start sub_80383A8
-sub_80383A8:
- push {r4,lr}
- bl ResetUnusedInputStruct
- movs r0, 0
- movs r1, 0x1
- movs r2, 0x1
- bl sub_800641C
- ldr r4, _080383D0
- ldr r0, [r4]
- cmp r0, 0
- beq _080383C8
- bl MemoryFree
- movs r0, 0
- str r0, [r4]
-_080383C8:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080383D0: .4byte gUnknown_203B360
- thumb_func_end sub_80383A8
-
- thumb_func_start sub_80383D4
-sub_80383D4:
- push {r4-r6,lr}
- sub sp, 0x4
- movs r0, 0x2
- str r0, [sp]
- ldr r6, _08038410
- ldr r4, _08038414
- ldr r0, [r4]
- ldr r5, [r0, 0x4]
- cmp r5, 0
- bne _08038434
- adds r0, 0x8
- bl sub_80130A8
- lsls r0, 24
- cmp r0, 0
- bne _080383FE
- ldr r0, [r4]
- adds r0, 0x8
- mov r1, sp
- bl sub_8013114
-_080383FE:
- ldr r0, [sp]
- cmp r0, 0x2
- beq _0803842C
- cmp r0, 0x2
- bhi _08038418
- cmp r0, 0x1
- beq _0803841C
- b _08038430
- .align 2, 0
-_08038410: .4byte 0x0000ffdc
-_08038414: .4byte gUnknown_203B360
-_08038418:
- cmp r0, 0x3
- bne _08038430
-_0803841C:
- ldr r0, _08038428
- ldr r1, [r0]
- movs r0, 0
- str r0, [r1, 0x4]
- movs r6, 0x1
- b _08038430
- .align 2, 0
-_08038428: .4byte gUnknown_203B360
-_0803842C:
- ldr r0, [r4]
- str r5, [r0, 0x4]
-_08038430:
- bl sub_80384D0
-_08038434:
- adds r0, r6, 0
- add sp, 0x4
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end sub_80383D4
-
- thumb_func_start sub_8038440
-sub_8038440:
- push {r4,r5,lr}
- movs r5, 0
- ldr r0, _080384B0
- ldr r0, [r0]
- mov r12, r0
- movs r3, 0xD4
- lsls r3, 1
- add r3, r12
- ldrh r1, [r3]
- ldr r0, _080384B4
- ands r0, r1
- ldr r1, _080384B8
- ands r0, r1
- ldr r4, _080384BC
- ands r0, r4
- ldr r1, _080384C0
- ands r0, r1
- ldr r1, _080384C4
- ands r0, r1
- movs r2, 0x80
- lsls r2, 7
- ldr r1, _080384C8
- ands r0, r1
- orrs r0, r2
- strh r0, [r3]
- movs r2, 0xFC
- lsls r2, 2
- ldrh r1, [r3, 0x4]
- movs r0, 0xFC
- lsls r0, 8
- ands r0, r1
- orrs r0, r2
- ands r0, r4
- movs r2, 0xF
- movs r4, 0xF0
- lsls r4, 8
- ldr r1, _080384CC
- ands r0, r1
- orrs r0, r4
- strh r0, [r3, 0x4]
- movs r0, 0x70
- strh r0, [r3, 0x2]
- movs r1, 0xE0
- lsls r1, 3
- ldrh r0, [r3, 0x6]
- ands r2, r0
- orrs r2, r1
- strh r2, [r3, 0x6]
- movs r0, 0xD8
- lsls r0, 1
- add r0, r12
- str r5, [r0]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080384B0: .4byte gUnknown_203B360
-_080384B4: .4byte 0x0000feff
-_080384B8: .4byte 0x0000fdff
-_080384BC: .4byte 0x0000f3ff
-_080384C0: .4byte 0x0000efff
-_080384C4: .4byte 0x0000dfff
-_080384C8: .4byte 0x00003fff
-_080384CC: .4byte 0x00000fff
- thumb_func_end sub_8038440
-
- thumb_func_start sub_80384D0
-sub_80384D0:
- push {r4,r5,lr}
- ldr r5, _08038508
- ldr r2, [r5]
- movs r4, 0xD8
- lsls r4, 1
- adds r0, r2, r4
- ldr r0, [r0]
- movs r1, 0x8
- ands r0, r1
- cmp r0, 0
- beq _080384F6
- movs r1, 0xD4
- lsls r1, 1
- adds r0, r2, r1
- subs r1, 0xA8
- movs r2, 0
- movs r3, 0
- bl AddSprite
-_080384F6:
- ldr r1, [r5]
- adds r1, r4
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08038508: .4byte gUnknown_203B360
- thumb_func_end sub_80384D0
-
- thumb_func_start sub_803850C
-sub_803850C:
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- sub sp, 0x10
- mov r8, r0
- ldr r5, _0803859C
- ldr r0, [r5]
- cmp r0, 0
- bne _08038536
- movs r4, 0xDA
- lsls r4, 1
- adds r0, r4, 0
- movs r1, 0x8
- bl MemoryAlloc
- str r0, [r5]
- movs r1, 0
- adds r2, r4, 0
- bl MemoryFill8
-_08038536:
- mov r12, r5
- movs r0, 0xA4
- lsls r0, 1
- mov r9, r0
- ldr r4, _080385A0
- movs r3, 0
- movs r2, 0x3
-_08038544:
- mov r5, r12
- ldr r1, [r5]
- adds r1, r3
- add r1, r9
- adds r0, r4, 0
- ldm r0!, {r5-r7}
- stm r1!, {r5-r7}
- ldm r0!, {r5-r7}
- stm r1!, {r5-r7}
- adds r3, 0x18
- subs r2, 0x1
- cmp r2, 0
- bge _08038544
- bl ResetUnusedInputStruct
- ldr r4, _0803859C
- ldr r0, [r4]
- movs r6, 0xA4
- lsls r6, 1
- adds r0, r6
- movs r1, 0x1
- movs r2, 0x1
- bl sub_800641C
- mov r7, r8
- cmp r7, 0x2E
- bne _080385AC
- ldr r1, [r4]
- adds r0, r1, 0
- adds r0, 0x8
- adds r1, r6
- ldr r3, _080385A4
- ldr r2, _080385A8
- str r2, [sp]
- movs r4, 0
- str r4, [sp, 0x4]
- movs r2, 0x6
- str r2, [sp, 0x8]
- str r4, [sp, 0xC]
- movs r2, 0
- bl SetMenuItems
- b _080385CE
- .align 2, 0
-_0803859C: .4byte gUnknown_203B364
-_080385A0: .4byte gUnknown_80E6F20
-_080385A4: .4byte gUnknown_80E6F38
-_080385A8: .4byte gUnknown_80E7090
-_080385AC:
- ldr r1, [r4]
- adds r0, r1, 0
- adds r0, 0x8
- movs r2, 0xA4
- lsls r2, 1
- adds r1, r2
- ldr r3, _080385F8
- ldr r2, _080385FC
- str r2, [sp]
- movs r4, 0
- str r4, [sp, 0x4]
- movs r2, 0x6
- str r2, [sp, 0x8]
- str r4, [sp, 0xC]
- movs r2, 0
- bl SetMenuItems
-_080385CE:
- ldr r4, _08038600
- ldr r0, [r4]
- adds r0, 0x8
- movs r1, 0
- movs r2, 0x1
- bl sub_8035CF4
- ldr r1, [r4]
- movs r0, 0
- str r0, [r1, 0x4]
- mov r5, r8
- str r5, [r1]
- bl sub_8038830
- add sp, 0x10
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080385F8: .4byte gUnknown_80E6F38
-_080385FC: .4byte gUnknown_80E6F50
-_08038600: .4byte gUnknown_203B364
- thumb_func_end sub_803850C
-
- thumb_func_start sub_8038604
-sub_8038604:
- push {r4,lr}
- bl ResetUnusedInputStruct
- movs r0, 0
- movs r1, 0x1
- movs r2, 0x1
- bl sub_800641C
- ldr r4, _0803862C
- ldr r0, [r4]
- cmp r0, 0
- beq _08038624
- bl MemoryFree
- movs r0, 0
- str r0, [r4]
-_08038624:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0803862C: .4byte gUnknown_203B364
- thumb_func_end sub_8038604
-
- thumb_func_start sub_8038630
-sub_8038630:
- push {r4-r6,lr}
- sub sp, 0x18
- ldr r5, _080386A8
- movs r0, 0x3
- str r0, [sp, 0x14]
- ldr r6, _080386AC
- ldr r0, [r6]
- ldr r4, [r0, 0x4]
- cmp r4, 0x1
- bne _08038646
- b _08038798
-_08038646:
- cmp r4, 0x1
- bcc _0803864C
- b _08038824
-_0803864C:
- adds r0, 0x8
- bl sub_8012FD8
- movs r5, 0
- str r5, [sp, 0x10]
- bl sub_80140F8
- bl sub_8011C1C
- adds r1, r0, 0
- add r0, sp, 0x10
- bl sub_801203C
- adds r4, r0, 0
- bl sub_8014114
- cmp r4, 0
- beq _080386B8
- cmp r4, 0x1
- beq _08038738
- ldr r0, [r6]
- movs r4, 0xA4
- lsls r4, 1
- adds r0, r4
- movs r1, 0
- bl sub_8035CC0
- ldr r1, [r6]
- ldr r0, [r1]
- cmp r0, 0x2E
- bne _08038750
- adds r0, r1, 0
- adds r0, 0x8
- adds r1, r4
- ldr r3, _080386B0
- ldr r2, _080386B4
- str r2, [sp]
- str r5, [sp, 0x4]
- movs r2, 0x6
- str r2, [sp, 0x8]
- str r5, [sp, 0xC]
- movs r2, 0
- bl SetMenuItems
- b _0803876E
- .align 2, 0
-_080386A8: .4byte 0x0000ffdc
-_080386AC: .4byte gUnknown_203B364
-_080386B0: .4byte gUnknown_80E6F38
-_080386B4: .4byte gUnknown_80E7114
-_080386B8:
- ldr r0, [r6]
- movs r1, 0xA4
- lsls r1, 1
- adds r0, r1
- movs r1, 0
- bl sub_8035CC0
- ldr r1, [r6]
- ldr r0, [r1]
- cmp r0, 0x2E
- bne _080386F8
- adds r0, r1, 0
- adds r0, 0x8
- movs r2, 0xA4
- lsls r2, 1
- adds r1, r2
- ldr r3, _080386F0
- ldr r2, _080386F4
- str r2, [sp]
- str r5, [sp, 0x4]
- movs r2, 0x6
- str r2, [sp, 0x8]
- str r5, [sp, 0xC]
- movs r2, 0
- bl SetMenuItems
- b _08038716
- .align 2, 0
-_080386F0: .4byte gUnknown_80E6F38
-_080386F4: .4byte gUnknown_80E70CC
-_080386F8:
- adds r0, r1, 0
- adds r0, 0x8
- movs r2, 0xA4
- lsls r2, 1
- adds r1, r2
- ldr r3, _08038728
- ldr r2, _0803872C
- str r2, [sp]
- str r5, [sp, 0x4]
- movs r2, 0x6
- str r2, [sp, 0x8]
- str r5, [sp, 0xC]
- movs r2, 0
- bl SetMenuItems
-_08038716:
- ldr r4, _08038730
- ldr r1, [r4]
- ldr r0, [r1]
- cmp r0, 0x2D
- bne _08038734
- movs r0, 0x1
- str r0, [r1, 0x4]
- movs r0, 0x13
- b _08038826
- .align 2, 0
-_08038728: .4byte gUnknown_80E6F38
-_0803872C: .4byte gUnknown_80E6FBC
-_08038730: .4byte gUnknown_203B364
-_08038734:
- adds r0, r1, 0
- b _08038772
-_08038738:
- ldr r0, _0803874C
- movs r1, 0
- movs r2, 0
- movs r3, 0
- bl sub_80141B4
- ldr r1, [r6]
- movs r0, 0x5
- b _08038780
- .align 2, 0
-_0803874C: .4byte gUnknown_80E7178
-_08038750:
- adds r0, r1, 0
- adds r0, 0x8
- movs r2, 0xA4
- lsls r2, 1
- adds r1, r2
- ldr r3, _08038788
- ldr r2, _0803878C
- str r2, [sp]
- str r5, [sp, 0x4]
- movs r2, 0x6
- str r2, [sp, 0x8]
- str r5, [sp, 0xC]
- movs r2, 0
- bl SetMenuItems
-_0803876E:
- ldr r4, _08038790
- ldr r0, [r4]
-_08038772:
- adds r0, 0x8
- movs r1, 0
- movs r2, 0x1
- bl sub_8035CF4
- ldr r1, [r4]
- movs r0, 0x1
-_08038780:
- str r0, [r1, 0x4]
- ldr r5, _08038794
- b _08038824
- .align 2, 0
-_08038788: .4byte gUnknown_80E6F38
-_0803878C: .4byte gUnknown_80E701C
-_08038790: .4byte gUnknown_203B364
-_08038794: .4byte 0x0000ffdc
-_08038798:
- adds r0, 0x8
- bl sub_80130A8
- lsls r0, 24
- cmp r0, 0
- bne _080387AE
- ldr r0, [r6]
- adds r0, 0x8
- add r1, sp, 0x14
- bl sub_8013114
-_080387AE:
- ldr r0, [sp, 0x14]
- cmp r0, 0x3
- beq _0803881C
- cmp r0, 0x3
- bhi _080387BE
- cmp r0, 0x2
- beq _080387C2
- b _08038820
-_080387BE:
- cmp r0, 0x4
- bne _08038820
-_080387C2:
- ldr r4, _080387D8
- ldr r1, [r4]
- ldr r0, [r1]
- cmp r0, 0x29
- beq _080387D0
- cmp r0, 0x2E
- bne _080387DC
-_080387D0:
- movs r0, 0x1
- str r0, [r1, 0x4]
- movs r5, 0x1
- b _08038820
- .align 2, 0
-_080387D8: .4byte gUnknown_203B364
-_080387DC:
- cmp r0, 0x2D
- bne _080387E8
- movs r0, 0x1
- str r0, [r1, 0x4]
- movs r5, 0x13
- b _08038820
-_080387E8:
- cmp r0, 0x2C
- bne _080387F4
- movs r0, 0x1
- str r0, [r1, 0x4]
- movs r5, 0x1F
- b _08038820
-_080387F4:
- bl sub_8035D4C
- adds r0, 0x3A
- ldrb r0, [r0]
- cmp r0, 0
- beq _0803880A
- ldr r1, [r4]
- movs r0, 0x1
- str r0, [r1, 0x4]
- movs r5, 0x35
- b _08038820
-_0803880A:
- ldr r0, [r4]
- movs r1, 0x1
- str r1, [r0, 0x4]
- ldr r0, [r0]
- movs r5, 0xB
- cmp r0, 0x2B
- bne _08038820
- movs r5, 0xD
- b _08038820
-_0803881C:
- ldr r0, [r6]
- str r4, [r0, 0x4]
-_08038820:
- bl sub_80388C4
-_08038824:
- adds r0, r5, 0
-_08038826:
- add sp, 0x18
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end sub_8038630
-
- thumb_func_start sub_8038830
-sub_8038830:
- push {r4,r5,lr}
- movs r5, 0
- ldr r0, _080388A4
- ldr r0, [r0]
- mov r12, r0
- movs r3, 0xD4
- lsls r3, 1
- add r3, r12
- ldrh r1, [r3]
- ldr r0, _080388A8
- ands r0, r1
- ldr r1, _080388AC
- ands r0, r1
- ldr r4, _080388B0
- ands r0, r4
- ldr r1, _080388B4
- ands r0, r1
- ldr r1, _080388B8
- ands r0, r1
- movs r2, 0x80
- lsls r2, 7
- ldr r1, _080388BC
- ands r0, r1
- orrs r0, r2
- strh r0, [r3]
- movs r2, 0xFC
- lsls r2, 2
- ldrh r1, [r3, 0x4]
- movs r0, 0xFC
- lsls r0, 8
- ands r0, r1
- orrs r0, r2
- ands r0, r4
- movs r2, 0xF
- movs r4, 0xF0
- lsls r4, 8
- ldr r1, _080388C0
- ands r0, r1
- orrs r0, r4
- strh r0, [r3, 0x4]
- movs r0, 0x70
- strh r0, [r3, 0x2]
- movs r1, 0xD0
- lsls r1, 3
- ldrh r0, [r3, 0x6]
- ands r2, r0
- orrs r2, r1
- strh r2, [r3, 0x6]
- movs r0, 0xD8
- lsls r0, 1
- add r0, r12
- str r5, [r0]
- movs r0, 0
- bl ResetSprites
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080388A4: .4byte gUnknown_203B364
-_080388A8: .4byte 0x0000feff
-_080388AC: .4byte 0x0000fdff
-_080388B0: .4byte 0x0000f3ff
-_080388B4: .4byte 0x0000efff
-_080388B8: .4byte 0x0000dfff
-_080388BC: .4byte 0x00003fff
-_080388C0: .4byte 0x00000fff
- thumb_func_end sub_8038830
-
- thumb_func_start sub_80388C4
-sub_80388C4:
- push {r4,r5,lr}
- ldr r5, _080388FC
- ldr r2, [r5]
- movs r4, 0xD8
- lsls r4, 1
- adds r0, r2, r4
- ldr r0, [r0]
- movs r1, 0x8
- ands r0, r1
- cmp r0, 0
- beq _080388EA
- movs r1, 0xD4
- lsls r1, 1
- adds r0, r2, r1
- subs r1, 0xA8
- movs r2, 0
- movs r3, 0
- bl AddSprite
-_080388EA:
- ldr r1, [r5]
- adds r1, r4
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080388FC: .4byte gUnknown_203B364
- thumb_func_end sub_80388C4
-
- thumb_func_start sub_8038900
-sub_8038900:
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- adds r6, r0, 0
- ldr r5, _080389B8
- ldr r0, [r5]
- cmp r0, 0
- bne _0803892A
- movs r4, 0x85
- lsls r4, 2
- adds r0, r4, 0
- movs r1, 0x8
- bl MemoryAlloc
- str r0, [r5]
- movs r1, 0
- adds r2, r4, 0
- bl MemoryFill8
-_0803892A:
- movs r0, 0x1B
- negs r0, r0
- adds r0, r6
- mov r8, r0
- mov r12, r5
- movs r1, 0xA4
- lsls r1, 1
- mov r9, r1
- ldr r4, _080389BC
- mov r10, r4
- movs r3, 0
- movs r2, 0x3
-_08038942:
- mov r5, r12
- ldr r1, [r5]
- adds r1, r3
- add r1, r9
- mov r0, r10
- ldm r0!, {r4,r5,r7}
- stm r1!, {r4,r5,r7}
- ldm r0!, {r4,r5,r7}
- stm r1!, {r4,r5,r7}
- adds r3, 0x18
- subs r2, 0x1
- cmp r2, 0
- bge _08038942
- bl ResetUnusedInputStruct
- ldr r4, _080389B8
- ldr r0, [r4]
- movs r7, 0xA4
- lsls r7, 1
- adds r0, r7
- movs r1, 0x1
- movs r2, 0x1
- bl sub_800641C
- ldr r2, _080389C0
- ldrb r0, [r2]
- cmp r0, 0
- bne _08038986
- ldr r0, _080389C4
- ldr r1, [r0]
- adds r7, r4, 0
- adds r5, r0, 0
- cmp r1, r6
- beq _080389A0
-_08038986:
- adds r7, r4, 0
- adds r3, r2, 0
- ldr r5, _080389C4
- ldr r1, _080389C8
- movs r2, 0
- adds r0, r1, 0
- adds r0, 0x35
-_08038994:
- strb r2, [r0]
- subs r0, 0x1
- cmp r0, r1
- bge _08038994
- movs r0, 0
- strb r0, [r3]
-_080389A0:
- ldr r0, [r7]
- str r6, [r0]
- str r6, [r5]
- mov r0, r8
- cmp r0, 0x7
- bhi _08038A36
- lsls r0, 2
- ldr r1, _080389CC
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080389B8: .4byte gUnknown_203B370
-_080389BC: .4byte gUnknown_80E71E4
-_080389C0: .4byte gUnknown_203B368
-_080389C4: .4byte gUnknown_203B36C
-_080389C8: .4byte gUnknown_202EC50
-_080389CC: .4byte _080389D0
- .align 2, 0
-_080389D0:
- .4byte _080389F0
- .4byte _080389FC
- .4byte _080389F0
- .4byte _080389FC
- .4byte _080389F0
- .4byte _080389FC
- .4byte _08038A0C
- .4byte _08038A2E
-_080389F0:
- bl sub_8035D74
- movs r1, 0
- bl sub_8031D70
- b _08038A36
-_080389FC:
- ldr r1, _08038A08
- movs r0, 0x4
- bl sub_80151C0
- b _08038A36
- .align 2, 0
-_08038A08: .4byte gUnknown_202EC50
-_08038A0C:
- movs r0, 0x1F
- bl sub_8095228
- adds r4, r0, 0
- movs r1, 0
- movs r2, 0x30
- bl MemoryFill8
- movs r1, 0
- movs r0, 0x2
- strb r0, [r4]
- adds r4, 0x22
- strb r1, [r4]
- movs r0, 0x1F
- bl sub_8031D70
- b _08038A36
-_08038A2E:
- ldr r1, _08038A54
- movs r0, 0x4
- bl sub_80151C0
-_08038A36:
- adds r0, r6, 0
- bl sub_8039000
- ldr r1, _08038A58
- ldr r1, [r1]
- str r0, [r1, 0x4]
- bl sub_8039174
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08038A54: .4byte gUnknown_202EC50
-_08038A58: .4byte gUnknown_203B370
- thumb_func_end sub_8038900
-
- thumb_func_start sub_8038A5C
-sub_8038A5C:
- push {r4,lr}
- bl ResetUnusedInputStruct
- movs r0, 0
- movs r1, 0x1
- movs r2, 0x1
- bl sub_800641C
- ldr r4, _08038A8C
- ldr r0, [r4]
- cmp r0, 0
- beq _08038A86
- bl sub_80155F0
- bl sub_8031E10
- ldr r0, [r4]
- bl MemoryFree
- movs r0, 0
- str r0, [r4]
-_08038A86:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08038A8C: .4byte gUnknown_203B370
- thumb_func_end sub_8038A5C
-
- thumb_func_start sub_8038A90
-sub_8038A90:
- push {r4-r6,lr}
- sub sp, 0x34
- movs r0, 0xB
- str r0, [sp, 0x30]
- ldr r5, _08038AB4
- ldr r1, _08038AB8
- ldr r0, [r1]
- ldr r0, [r0, 0x4]
- adds r6, r1, 0
- cmp r0, 0x9
- bls _08038AA8
- b _08038DB0
-_08038AA8:
- lsls r0, 2
- ldr r1, _08038ABC
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08038AB4: .4byte 0x0000ffdc
-_08038AB8: .4byte gUnknown_203B370
-_08038ABC: .4byte _08038AC0
- .align 2, 0
-_08038AC0:
- .4byte _08038AE8
- .4byte _08038AFC
- .4byte _08038AE8
- .4byte _08038AFC
- .4byte _08038AE8
- .4byte _08038AFC
- .4byte _08038C78
- .4byte _08038C8C
- .4byte _08038CC2
- .4byte _08038D38
-_08038AE8:
- bl sub_8031DCC
- ldr r5, _08038AF8
- cmp r0, 0
- bne _08038AF4
- b _08038DB0
-_08038AF4:
- movs r5, 0xB
- b _08038DB0
- .align 2, 0
-_08038AF8: .4byte 0x0000ffdc
-_08038AFC:
- bl sub_80154F0
- adds r4, r0, 0
- mov r0, sp
- movs r1, 0
- movs r2, 0x30
- bl MemoryFill8
- cmp r4, 0x1
- bne _08038B12
- b _08038CBC
-_08038B12:
- cmp r4, 0x1
- bcs _08038B18
- b _08038CB0
-_08038B18:
- cmp r4, 0x2
- beq _08038AF4
- cmp r4, 0x3
- beq _08038B22
- b _08038DB0
-_08038B22:
- ldr r0, _08038B44
- ldr r0, [r0]
- ldr r0, [r0]
- ldr r1, _08038B48
- mov r2, sp
- bl sub_8039068
- subs r0, 0x7
- cmp r0, 0x11
- bls _08038B38
- b _08038DB0
-_08038B38:
- lsls r0, 2
- ldr r1, _08038B4C
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08038B44: .4byte gUnknown_203B370
-_08038B48: .4byte gUnknown_202EC50
-_08038B4C: .4byte _08038B50
- .align 2, 0
-_08038B50:
- .4byte _08038BA4
- .4byte _08038DB0
- .4byte _08038BD8
- .4byte _08038DB0
- .4byte _08038C28
- .4byte _08038DB0
- .4byte _08038B9C
- .4byte _08038DB0
- .4byte _08038DB0
- .4byte _08038DB0
- .4byte _08038B98
- .4byte _08038BA0
- .4byte _08038BD4
- .4byte _08038C24
- .4byte _08038DB0
- .4byte _08038BA8
- .4byte _08038BDC
- .4byte _08038C2C
-_08038B98:
- movs r0, 0x11
- b _08038CA4
-_08038B9C:
- movs r0, 0xD
- b _08038CA4
-_08038BA0:
- movs r0, 0x12
- b _08038CA4
-_08038BA4:
- movs r0, 0x7
- b _08038CA4
-_08038BA8:
- ldr r0, [sp, 0x10]
- bl sub_8095274
- bl sub_8038F98
- ldr r0, _08038BCC
- ldr r1, [r0]
- movs r0, 0x9
- str r0, [r1, 0x4]
- ldr r5, _08038BD0
- mov r1, sp
- movs r0, 0x2
- strb r0, [r1]
- mov r0, sp
- bl sub_80951BC
- b _08038DB0
- .align 2, 0
-_08038BCC: .4byte gUnknown_203B370
-_08038BD0: .4byte 0x0000ffdc
-_08038BD4:
- movs r0, 0x13
- b _08038CA4
-_08038BD8:
- movs r0, 0x9
- b _08038CA4
-_08038BDC:
- bl sub_8038F98
- ldr r0, _08038C18
- ldr r1, [r0]
- movs r0, 0x9
- str r0, [r1, 0x4]
- ldr r5, _08038C1C
- mov r1, sp
- movs r0, 0x5
- strb r0, [r1]
- mov r0, sp
- bl sub_80951FC
- ldr r1, [sp, 0x10]
- movs r0, 0x1
- bl sub_809539C
- lsls r0, 24
- lsrs r0, 24
- bl sub_8095228
- movs r1, 0x7
- strb r1, [r0]
- ldr r0, _08038C20
- movs r1, 0
- movs r2, 0x5C
- bl MemoryFill8
- b _08038DB0
- .align 2, 0
-_08038C18: .4byte gUnknown_203B370
-_08038C1C: .4byte 0x0000ffdc
-_08038C20: .4byte gUnknown_203B484
-_08038C24:
- movs r0, 0x14
- b _08038CA4
-_08038C28:
- movs r0, 0xB
- b _08038CA4
-_08038C2C:
- bl sub_8038F98
- ldr r0, _08038C70
- ldr r1, [r0]
- movs r0, 0x9
- str r0, [r1, 0x4]
- ldr r5, _08038C74
- ldr r1, [sp, 0x10]
- movs r0, 0x4
- bl sub_809539C
- lsls r0, 24
- lsrs r0, 24
- bl sub_8095228
- adds r2, r0, 0
- mov r1, sp
- ldm r1!, {r3,r4,r6}
- stm r2!, {r3,r4,r6}
- ldm r1!, {r3,r4,r6}
- stm r2!, {r3,r4,r6}
- ldm r1!, {r3,r4,r6}
- stm r2!, {r3,r4,r6}
- ldm r1!, {r3,r4,r6}
- stm r2!, {r3,r4,r6}
- movs r1, 0x6
- strb r1, [r0]
- bl sub_8035D4C
- adds r0, 0x3A
- movs r1, 0x1
- strb r1, [r0]
- b _08038DB0
- .align 2, 0
-_08038C70: .4byte gUnknown_203B370
-_08038C74: .4byte 0x0000ffdc
-_08038C78:
- bl sub_8031DCC
- ldr r5, _08038C88
- cmp r0, 0
- bne _08038C84
- b _08038DB0
-_08038C84:
- movs r5, 0xD
- b _08038DB0
- .align 2, 0
-_08038C88: .4byte 0x0000ffdc
-_08038C8C:
- bl sub_80154F0
- cmp r0, 0x1
- beq _08038CBC
- cmp r0, 0x1
- bcc _08038CB0
- cmp r0, 0x2
- beq _08038C84
- cmp r0, 0x3
- beq _08038CA2
- b _08038DB0
-_08038CA2:
- movs r0, 0x15
-_08038CA4:
- bl sub_8038DC0
- ldr r0, _08038CB4
- ldr r1, [r0]
- movs r0, 0x8
- str r0, [r1, 0x4]
-_08038CB0:
- ldr r5, _08038CB8
- b _08038DB0
- .align 2, 0
-_08038CB4: .4byte gUnknown_203B370
-_08038CB8: .4byte 0x0000ffdc
-_08038CBC:
- bl sub_8031E00
- b _08038CB0
-_08038CC2:
- ldr r0, [r6]
- adds r0, 0x8
- bl sub_8012FD8
- lsls r0, 24
- cmp r0, 0
- bne _08038CDA
- ldr r0, [r6]
- adds r0, 0x8
- add r1, sp, 0x30
- bl sub_8013114
-_08038CDA:
- ldr r0, [sp, 0x30]
- cmp r0, 0xB
- beq _08038D24
- cmp r0, 0xB
- bhi _08038CEA
- cmp r0, 0xA
- beq _08038CEE
- b _08038DB0
-_08038CEA:
- cmp r0, 0xC
- bne _08038DB0
-_08038CEE:
- bl sub_8039174
- bl ResetUnusedInputStruct
- movs r0, 0
- movs r1, 0x1
- movs r2, 0x1
- bl sub_800641C
- ldr r1, _08038D1C
- movs r0, 0x4
- bl sub_80151C0
- ldr r0, _08038D20
- ldr r1, [r0]
- movs r0, 0x8
- str r0, [r1, 0x4]
- ldr r0, [r1]
- subs r0, 0x21
- movs r5, 0xB
- cmp r0, 0x1
- bhi _08038DB0
- b _08038C84
- .align 2, 0
-_08038D1C: .4byte gUnknown_202EC50
-_08038D20: .4byte gUnknown_203B370
-_08038D24:
- ldr r1, [r6]
- movs r0, 0x8
- str r0, [r1, 0x4]
- ldr r5, _08038D34
- bl sub_80391F8
- b _08038DB0
- .align 2, 0
-_08038D34: .4byte 0x0000ffdc
-_08038D38:
- adds r4, r6, 0
- ldr r0, [r4]
- adds r0, 0x8
- bl sub_8012FD8
- lsls r0, 24
- cmp r0, 0
- bne _08038D52
- ldr r0, [r4]
- adds r0, 0x8
- add r1, sp, 0x30
- bl sub_8013114
-_08038D52:
- ldr r0, [sp, 0x30]
- cmp r0, 0xB
- beq _08038DA4
- cmp r0, 0xB
- bhi _08038D62
- cmp r0, 0xA
- beq _08038D66
- b _08038DB0
-_08038D62:
- cmp r0, 0xC
- bne _08038DB0
-_08038D66:
- bl sub_8039174
- bl ResetUnusedInputStruct
- movs r0, 0
- movs r1, 0x1
- movs r2, 0x1
- bl sub_800641C
- ldr r1, _08038D9C
- movs r0, 0x4
- bl sub_80151C0
- ldr r4, _08038DA0
- ldr r0, [r4]
- ldr r0, [r0]
- bl sub_8039000
- ldr r1, [r4]
- str r0, [r1, 0x4]
- ldr r0, [r1]
- subs r0, 0x21
- movs r5, 0x2A
- cmp r0, 0x1
- bhi _08038DB0
- movs r5, 0x2B
- b _08038DB0
- .align 2, 0
-_08038D9C: .4byte gUnknown_202EC50
-_08038DA0: .4byte gUnknown_203B370
-_08038DA4:
- ldr r1, [r6]
- movs r0, 0x9
- str r0, [r1, 0x4]
- ldr r5, _08038DBC
- bl sub_80391F8
-_08038DB0:
- adds r0, r5, 0
- add sp, 0x34
- pop {r4-r6}
- pop {r1}
- bx r1
- .align 2, 0
-_08038DBC: .4byte 0x0000ffdc
- thumb_func_end sub_8038A90
-
- thumb_func_start sub_8038DC0
-sub_8038DC0:
- push {r4,lr}
- sub sp, 0x10
- adds r4, r0, 0
- ldr r0, _08038DF8
- ldr r0, [r0]
- movs r1, 0xD4
- lsls r1, 1
- adds r0, r1
- bl sub_8006518
- bl ResetUnusedInputStruct
- movs r0, 0
- movs r1, 0x1
- movs r2, 0x1
- bl sub_800641C
- bl sub_80155F0
- subs r0, r4, 0x7
- cmp r0, 0xE
- bls _08038DEE
- b _08038F74
-_08038DEE:
- lsls r0, 2
- ldr r1, _08038DFC
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08038DF8: .4byte gUnknown_203B370
-_08038DFC: .4byte _08038E00
- .align 2, 0
-_08038E00:
- .4byte _08038E7C
- .4byte _08038F74
- .4byte _08038EDC
- .4byte _08038F74
- .4byte _08038F1C
- .4byte _08038F74
- .4byte _08038E9C
- .4byte _08038F74
- .4byte _08038F74
- .4byte _08038F74
- .4byte _08038E3C
- .4byte _08038E5C
- .4byte _08038EBC
- .4byte _08038EFC
- .4byte _08038F50
-_08038E3C:
- ldr r0, _08038E50
- ldr r1, [r0]
- adds r0, r1, 0
- adds r0, 0x8
- movs r2, 0xA4
- lsls r2, 1
- adds r1, r2
- ldr r3, _08038E54
- ldr r2, _08038E58
- b _08038F2E
- .align 2, 0
-_08038E50: .4byte gUnknown_203B370
-_08038E54: .4byte gUnknown_80E71FC
-_08038E58: .4byte gUnknown_80E7214
-_08038E5C:
- ldr r0, _08038E70
- ldr r1, [r0]
- adds r0, r1, 0
- adds r0, 0x8
- movs r2, 0xA4
- lsls r2, 1
- adds r1, r2
- ldr r3, _08038E74
- ldr r2, _08038E78
- b _08038F2E
- .align 2, 0
-_08038E70: .4byte gUnknown_203B370
-_08038E74: .4byte gUnknown_80E72EC
-_08038E78: .4byte gUnknown_80E7304
-_08038E7C:
- ldr r0, _08038E90
- ldr r1, [r0]
- adds r0, r1, 0
- adds r0, 0x8
- movs r2, 0xA4
- lsls r2, 1
- adds r1, r2
- ldr r3, _08038E94
- ldr r2, _08038E98
- b _08038F2E
- .align 2, 0
-_08038E90: .4byte gUnknown_203B370
-_08038E94: .4byte gUnknown_80E7344
-_08038E98: .4byte gUnknown_80E735C
-_08038E9C:
- ldr r0, _08038EB0
- ldr r1, [r0]
- adds r0, r1, 0
- adds r0, 0x8
- movs r2, 0xA4
- lsls r2, 1
- adds r1, r2
- ldr r3, _08038EB4
- ldr r2, _08038EB8
- b _08038F2E
- .align 2, 0
-_08038EB0: .4byte gUnknown_203B370
-_08038EB4: .4byte gUnknown_80E7588
-_08038EB8: .4byte gUnknown_80E75A0
-_08038EBC:
- ldr r0, _08038ED0
- ldr r1, [r0]
- adds r0, r1, 0
- adds r0, 0x8
- movs r2, 0xA4
- lsls r2, 1
- adds r1, r2
- ldr r3, _08038ED4
- ldr r2, _08038ED8
- b _08038F2E
- .align 2, 0
-_08038ED0: .4byte gUnknown_203B370
-_08038ED4: .4byte gUnknown_80E73AC
-_08038ED8: .4byte gUnknown_80E73C4
-_08038EDC:
- ldr r0, _08038EF0
- ldr r1, [r0]
- adds r0, r1, 0
- adds r0, 0x8
- movs r2, 0xA4
- lsls r2, 1
- adds r1, r2
- ldr r3, _08038EF4
- ldr r2, _08038EF8
- b _08038F2E
- .align 2, 0
-_08038EF0: .4byte gUnknown_203B370
-_08038EF4: .4byte gUnknown_80E7408
-_08038EF8: .4byte gUnknown_80E7420
-_08038EFC:
- ldr r0, _08038F10
- ldr r1, [r0]
- adds r0, r1, 0
- adds r0, 0x8
- movs r2, 0xA4
- lsls r2, 1
- adds r1, r2
- ldr r3, _08038F14
- ldr r2, _08038F18
- b _08038F2E
- .align 2, 0
-_08038F10: .4byte gUnknown_203B370
-_08038F14: .4byte gUnknown_80E7468
-_08038F18: .4byte gUnknown_80E7480
-_08038F1C:
- ldr r0, _08038F44
- ldr r1, [r0]
- adds r0, r1, 0
- adds r0, 0x8
- movs r2, 0xA4
- lsls r2, 1
- adds r1, r2
- ldr r3, _08038F48
- ldr r2, _08038F4C
-_08038F2E:
- str r2, [sp]
- movs r4, 0
- str r4, [sp, 0x4]
- movs r2, 0xD
- str r2, [sp, 0x8]
- str r4, [sp, 0xC]
- movs r2, 0
- bl SetMenuItems
- b _08038F74
- .align 2, 0
-_08038F44: .4byte gUnknown_203B370
-_08038F48: .4byte gUnknown_80E74C8
-_08038F4C: .4byte gUnknown_80E74E0
-_08038F50:
- ldr r0, _08038F8C
- ldr r1, [r0]
- adds r0, r1, 0
- adds r0, 0x8
- movs r2, 0xA4
- lsls r2, 1
- adds r1, r2
- ldr r3, _08038F90
- ldr r2, _08038F94
- str r2, [sp]
- movs r4, 0
- str r4, [sp, 0x4]
- movs r2, 0xD
- str r2, [sp, 0x8]
- str r4, [sp, 0xC]
- movs r2, 0
- bl SetMenuItems
-_08038F74:
- ldr r0, _08038F8C
- ldr r0, [r0]
- adds r0, 0x8
- movs r1, 0
- movs r2, 0x1
- bl sub_8035CF4
- add sp, 0x10
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08038F8C: .4byte gUnknown_203B370
-_08038F90: .4byte gUnknown_80E752C
-_08038F94: .4byte gUnknown_80E7544
- thumb_func_end sub_8038DC0
-
- thumb_func_start sub_8038F98
-sub_8038F98:
- push {r4,r5,lr}
- sub sp, 0x10
- ldr r5, _08038FF4
- ldr r0, [r5]
- movs r1, 0xD4
- lsls r1, 1
- adds r0, r1
- bl sub_8006518
- bl ResetUnusedInputStruct
- movs r0, 0
- movs r1, 0x1
- movs r2, 0x1
- bl sub_800641C
- bl sub_80155F0
- ldr r1, [r5]
- adds r0, r1, 0
- adds r0, 0x8
- movs r2, 0xA4
- lsls r2, 1
- adds r1, r2
- ldr r3, _08038FF8
- ldr r2, _08038FFC
- str r2, [sp]
- movs r4, 0
- str r4, [sp, 0x4]
- movs r2, 0xD
- str r2, [sp, 0x8]
- str r4, [sp, 0xC]
- movs r2, 0
- bl SetMenuItems
- ldr r0, [r5]
- adds r0, 0x8
- movs r1, 0
- movs r2, 0x1
- bl sub_8035CF4
- add sp, 0x10
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08038FF4: .4byte gUnknown_203B370
-_08038FF8: .4byte gUnknown_80E7278
-_08038FFC: .4byte gUnknown_80E7290
- thumb_func_end sub_8038F98
-
- thumb_func_start sub_8039000
-sub_8039000:
- push {lr}
- movs r1, 0xB
- ldr r0, _0803901C
- ldr r0, [r0]
- ldr r0, [r0]
- subs r0, 0x1B
- cmp r0, 0x7
- bhi _08039062
- lsls r0, 2
- ldr r1, _08039020
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0803901C: .4byte gUnknown_203B370
-_08039020: .4byte _08039024
- .align 2, 0
-_08039024:
- .4byte _08039044
- .4byte _08039054
- .4byte _0803904C
- .4byte _0803905C
- .4byte _08039048
- .4byte _08039058
- .4byte _08039050
- .4byte _08039060
-_08039044:
- movs r1, 0
- b _08039062
-_08039048:
- movs r1, 0x4
- b _08039062
-_0803904C:
- movs r1, 0x2
- b _08039062
-_08039050:
- movs r1, 0x6
- b _08039062
-_08039054:
- movs r1, 0x1
- b _08039062
-_08039058:
- movs r1, 0x5
- b _08039062
-_0803905C:
- movs r1, 0x3
- b _08039062
-_08039060:
- movs r1, 0x7
-_08039062:
- adds r0, r1, 0
- pop {r1}
- bx r1
- thumb_func_end sub_8039000
-
- thumb_func_start sub_8039068
-sub_8039068:
- push {r4-r6,lr}
- adds r6, r0, 0
- adds r0, r1, 0
- adds r5, r2, 0
- adds r1, r5, 0
- bl sub_803D204
- lsls r0, 24
- cmp r0, 0
- beq _080390AC
- ldrb r0, [r5]
- cmp r0, 0x7
- bhi _080390AC
- ldrb r4, [r5, 0x5]
- ldrb r0, [r5, 0x4]
- bl sub_8090298
- cmp r4, r0
- bge _080390AC
- movs r0, 0xC
- ldrsh r1, [r5, r0]
- cmp r1, 0
- beq _080390AC
- ldr r0, _080390B0
- cmp r1, r0
- bgt _080390AC
- adds r0, r5, 0
- adds r0, 0x22
- ldrb r0, [r0]
- bl sub_8092040
- lsls r0, 24
- cmp r0, 0
- beq _080390B4
-_080390AC:
- movs r0, 0x11
- b _0803916E
- .align 2, 0
-_080390B0: .4byte 0x000001a7
-_080390B4:
- cmp r6, 0x1E
- beq _08039120
- cmp r6, 0x1E
- bhi _080390C2
- cmp r6, 0x1C
- beq _080390C8
- b _0803916A
-_080390C2:
- cmp r6, 0x20
- beq _08039140
- b _0803916A
-_080390C8:
- ldrb r0, [r5]
- cmp r0, 0x1
- beq _080390D2
- movs r0, 0x12
- b _0803916E
-_080390D2:
- ldr r1, [r5, 0x10]
- movs r0, 0x2
- bl sub_80952F0
- lsls r0, 24
- cmp r0, 0
- bne _08039108
- ldr r1, [r5, 0x10]
- movs r0, 0x4
- bl sub_80952F0
- lsls r0, 24
- cmp r0, 0
- bne _08039108
- ldr r1, [r5, 0x10]
- movs r0, 0x6
- bl sub_80952F0
- lsls r0, 24
- cmp r0, 0
- bne _08039108
- ldr r0, [r5, 0x10]
- bl sub_8095298
- lsls r0, 24
- cmp r0, 0
- beq _0803910C
-_08039108:
- movs r0, 0x7
- b _0803916E
-_0803910C:
- bl sub_8095190
- movs r1, 0x1
- negs r1, r1
- cmp r0, r1
- bne _0803911C
- movs r0, 0xD
- b _0803916E
-_0803911C:
- movs r0, 0x16
- b _0803916E
-_08039120:
- ldrb r0, [r5]
- cmp r0, 0x4
- beq _0803912A
- movs r0, 0x13
- b _0803916E
-_0803912A:
- ldr r1, [r5, 0x10]
- movs r0, 0x1
- bl sub_80952F0
- lsls r0, 24
- cmp r0, 0
- bne _0803913C
- movs r0, 0x9
- b _0803916E
-_0803913C:
- movs r0, 0x17
- b _0803916E
-_08039140:
- ldrb r0, [r5]
- cmp r0, 0x5
- beq _0803914A
- movs r0, 0x14
- b _0803916E
-_0803914A:
- ldr r1, [r5, 0x10]
- movs r0, 0x4
- bl sub_80952F0
- lsls r0, 24
- cmp r0, 0
- beq _08039162
- bl sub_8011C34
- ldr r1, [r5, 0x28]
- cmp r1, r0
- beq _08039166
-_08039162:
- movs r0, 0xB
- b _0803916E
-_08039166:
- movs r0, 0x18
- b _0803916E
-_0803916A:
- movs r0, 0x1
- negs r0, r0
-_0803916E:
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end sub_8039068
-
- thumb_func_start sub_8039174
-sub_8039174:
- push {r4,lr}
- ldr r0, _080391D8
- ldr r3, [r0]
- movs r0, 0x82
- lsls r0, 2
- adds r3, r0
- ldrh r1, [r3]
- ldr r0, _080391DC
- ands r0, r1
- ldr r1, _080391E0
- ands r0, r1
- ldr r4, _080391E4
- ands r0, r4
- ldr r1, _080391E8
- ands r0, r1
- ldr r1, _080391EC
- ands r0, r1
- movs r2, 0x80
- lsls r2, 7
- ldr r1, _080391F0
- ands r0, r1
- orrs r0, r2
- strh r0, [r3]
- movs r2, 0xFC
- lsls r2, 2
- ldrh r1, [r3, 0x4]
- movs r0, 0xFC
- lsls r0, 8
- ands r0, r1
- orrs r0, r2
- ands r0, r4
- movs r2, 0xF
- movs r4, 0xF0
- lsls r4, 8
- ldr r1, _080391F4
- ands r0, r1
- orrs r0, r4
- strh r0, [r3, 0x4]
- movs r0, 0
- strh r0, [r3, 0x2]
- movs r1, 0xC0
- lsls r1, 4
- ldrh r0, [r3, 0x6]
- ands r2, r0
- orrs r2, r1
- strh r2, [r3, 0x6]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080391D8: .4byte gUnknown_203B370
-_080391DC: .4byte 0x0000feff
-_080391E0: .4byte 0x0000fdff
-_080391E4: .4byte 0x0000f3ff
-_080391E8: .4byte 0x0000efff
-_080391EC: .4byte 0x0000dfff
-_080391F0: .4byte 0x00003fff
-_080391F4: .4byte 0x00000fff
- thumb_func_end sub_8039174
-
- thumb_func_start sub_80391F8
-sub_80391F8:
- push {r4-r6,lr}
- ldr r6, _08039250
- ldr r2, [r6]
- movs r0, 0x82
- lsls r0, 2
- adds r4, r2, r0
- ldrh r1, [r4, 0x2]
- movs r0, 0xFE
- lsls r0, 8
- ands r0, r1
- movs r1, 0x70
- orrs r0, r1
- strh r0, [r4, 0x2]
- movs r3, 0xE0
- lsls r3, 3
- ldrh r1, [r4, 0x6]
- movs r0, 0xF
- ands r0, r1
- orrs r0, r3
- strh r0, [r4, 0x6]
- movs r5, 0x84
- lsls r5, 2
- adds r2, r5
- ldr r0, [r2]
- movs r1, 0x8
- ands r0, r1
- cmp r0, 0
- beq _0803923C
- adds r1, 0xF8
- adds r0, r4, 0
- movs r2, 0
- movs r3, 0
- bl AddSprite
-_0803923C:
- bl xxx_draw_string_80144C4
- ldr r1, [r6]
- adds r1, r5
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08039250: .4byte gUnknown_203B370
- thumb_func_end sub_80391F8
-
- thumb_func_start sub_8039254
-sub_8039254:
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x10
- adds r6, r0, 0
- ldr r5, _080392EC
- ldr r0, [r5]
- cmp r0, 0
- bne _0803927C
- movs r4, 0x9F
- lsls r4, 2
- adds r0, r4, 0
- movs r1, 0x8
- bl MemoryAlloc
- str r0, [r5]
- movs r1, 0
- adds r2, r4, 0
- bl MemoryFill8
-_0803927C:
- ldr r0, [r5]
- str r6, [r0]
- mov r12, r5
- movs r0, 0xA2
- lsls r0, 1
- mov r8, r0
- ldr r4, _080392F0
- movs r3, 0
- movs r2, 0x3
-_0803928E:
- mov r5, r12
- ldr r1, [r5]
- adds r1, r3
- add r1, r8
- adds r0, r4, 0
- ldm r0!, {r5-r7}
- stm r1!, {r5-r7}
- ldm r0!, {r5-r7}
- stm r1!, {r5-r7}
- adds r3, 0x18
- subs r2, 0x1
- cmp r2, 0
- bge _0803928E
- bl ResetUnusedInputStruct
- ldr r6, _080392EC
- ldr r0, [r6]
- movs r5, 0xA2
- lsls r5, 1
- adds r0, r5
- movs r1, 0x1
- movs r2, 0x1
- bl sub_800641C
- ldr r1, [r6]
- adds r0, r1, 0x4
- adds r1, r5
- ldr r3, _080392F4
- ldr r2, _080392F8
- str r2, [sp]
- movs r4, 0
- str r4, [sp, 0x4]
- movs r7, 0x6
- str r7, [sp, 0x8]
- str r4, [sp, 0xC]
- movs r2, 0
- bl SetMenuItems
- ldr r1, [r6]
- ldr r0, [r1]
- cmp r0, 0x7
- beq _08039306
- cmp r0, 0x7
- bhi _080392FC
- cmp r0, 0x6
- beq _08039338
- b _08039382
- .align 2, 0
-_080392EC: .4byte gUnknown_203B374
-_080392F0: .4byte gUnknown_80E75F8
-_080392F4: .4byte gUnknown_80E7610
-_080392F8: .4byte gUnknown_203B378
-_080392FC:
- cmp r0, 0x8
- beq _0803934C
- cmp r0, 0x9
- beq _0803936C
- b _08039382
-_08039306:
- bl sub_8039844
- lsls r0, 24
- cmp r0, 0
- beq _08039324
- ldr r1, [r6]
- adds r0, r1, 0x4
- adds r1, r5
- ldr r3, _0803931C
- ldr r2, _08039320
- b _08039354
- .align 2, 0
-_0803931C: .4byte gUnknown_80E762C
-_08039320: .4byte gUnknown_80E7644
-_08039324:
- ldr r1, [r6]
- adds r0, r1, 0x4
- adds r1, r5
- ldr r3, _08039330
- ldr r2, _08039334
- b _08039354
- .align 2, 0
-_08039330: .4byte gUnknown_80E762C
-_08039334: .4byte gUnknown_80E7684
-_08039338:
- adds r0, r1, 0x4
- adds r1, r5
- ldr r3, _08039344
- ldr r2, _08039348
- b _08039354
- .align 2, 0
-_08039344: .4byte gUnknown_80E762C
-_08039348: .4byte gUnknown_80E76B8
-_0803934C:
- adds r0, r1, 0x4
- adds r1, r5
- ldr r3, _08039364
- ldr r2, _08039368
-_08039354:
- str r2, [sp]
- str r4, [sp, 0x4]
- str r7, [sp, 0x8]
- str r4, [sp, 0xC]
- movs r2, 0x1
- bl SetMenuItems
- b _08039382
- .align 2, 0
-_08039364: .4byte gUnknown_80E762C
-_08039368: .4byte gUnknown_80E76E8
-_0803936C:
- adds r0, r1, 0x4
- adds r1, r5
- ldr r3, _080393DC
- ldr r2, _080393E0
- str r2, [sp]
- str r4, [sp, 0x4]
- str r7, [sp, 0x8]
- str r4, [sp, 0xC]
- movs r2, 0x1
- bl SetMenuItems
-_08039382:
- ldr r4, _080393E4
- ldr r1, [r4]
- adds r0, r1, 0x4
- movs r6, 0xA2
- lsls r6, 1
- adds r1, r6
- ldr r3, _080393E8
- ldr r2, _080393EC
- str r2, [sp]
- movs r2, 0x1
- str r2, [sp, 0x4]
- movs r2, 0x2
- str r2, [sp, 0x8]
- movs r2, 0
- str r2, [sp, 0xC]
- movs r2, 0x2
- bl SetMenuItems
- ldr r0, [r4]
- adds r0, 0x4
- movs r1, 0
- movs r2, 0
- bl sub_8035CF4
- ldr r0, [r4]
- adds r0, 0x4
- movs r1, 0x1
- movs r2, 0
- bl sub_8035CF4
- ldr r0, [r4]
- adds r0, 0x4
- movs r1, 0x2
- movs r2, 0x1
- bl sub_8035CF4
- bl sub_80394A4
- add sp, 0x10
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080393DC: .4byte gUnknown_80E762C
-_080393E0: .4byte gUnknown_80E7730
-_080393E4: .4byte gUnknown_203B374
-_080393E8: .4byte gUnknown_80E7784
-_080393EC: .4byte gUnknown_80E779C
- thumb_func_end sub_8039254
-
- thumb_func_start sub_80393F0
-sub_80393F0:
- push {r4,lr}
- bl ResetUnusedInputStruct
- movs r0, 0
- movs r1, 0x1
- movs r2, 0x1
- bl sub_800641C
- ldr r4, _08039418
- ldr r0, [r4]
- cmp r0, 0
- beq _08039410
- bl MemoryFree
- movs r0, 0
- str r0, [r4]
-_08039410:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08039418: .4byte gUnknown_203B374
- thumb_func_end sub_80393F0
-
- thumb_func_start sub_803941C
-sub_803941C:
- push {r4,r5,lr}
- sub sp, 0x4
- ldr r5, _08039458
- movs r0, 0x4
- str r0, [sp]
- ldr r4, _0803945C
- ldr r0, [r4]
- adds r0, 0x54
- bl sub_8012FD8
- ldr r0, [r4]
- adds r0, 0xA4
- bl sub_8012FD8
- lsls r0, 24
- cmp r0, 0
- bne _08039448
- ldr r0, [r4]
- adds r0, 0xA4
- mov r1, sp
- bl sub_8013114
-_08039448:
- ldr r0, [sp]
- cmp r0, 0x3
- bhi _08039498
- cmp r0, 0x2
- bcs _08039460
- cmp r0, 0x1
- beq _08039464
- b _08039498
- .align 2, 0
-_08039458: .4byte 0x0000ffdc
-_0803945C: .4byte gUnknown_203B374
-_08039460:
- movs r5, 0x1
- b _08039498
-_08039464:
- ldr r0, [r4]
- ldr r0, [r0]
- cmp r0, 0x7
- beq _08039480
- cmp r0, 0x7
- bhi _08039476
- cmp r0, 0x6
- beq _08039484
- b _08039498
-_08039476:
- cmp r0, 0x8
- beq _0803948E
- cmp r0, 0x9
- beq _08039492
- b _08039498
-_08039480:
- movs r5, 0x2
- b _08039498
-_08039484:
- movs r0, 0
- bl sub_8095240
- movs r5, 0x4
- b _08039498
-_0803948E:
- movs r5, 0x9
- b _08039498
-_08039492:
- bl sub_80122A8
- movs r5, 0x2E
-_08039498:
- adds r0, r5, 0
- add sp, 0x4
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_803941C
-
- thumb_func_start sub_80394A4
-sub_80394A4:
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x150
- bl sub_8011FA8
- mov r8, r0
- movs r0, 0
- bl sub_8008C54
- movs r0, 0
- bl sub_80073B8
- ldr r2, _0803952C
- movs r4, 0
- str r4, [sp]
- movs r0, 0x8
- movs r1, 0
- movs r3, 0
- bl xxx_call_draw_string
- ldr r2, _08039530
- str r4, [sp]
- movs r0, 0x8
- movs r1, 0xC
- movs r3, 0
- bl xxx_call_draw_string
- ldr r2, _08039534
- str r4, [sp]
- movs r0, 0x8
- movs r1, 0x18
- movs r3, 0
- bl xxx_call_draw_string
- ldr r2, _08039538
- str r4, [sp]
- movs r0, 0x8
- movs r1, 0x24
- movs r3, 0
- bl xxx_call_draw_string
- ldr r2, _0803953C
- str r4, [sp]
- movs r0, 0x8
- movs r1, 0x30
- movs r3, 0
- bl xxx_call_draw_string
- ldr r2, _08039540
- str r4, [sp]
- movs r0, 0x8
- movs r1, 0x3C
- movs r3, 0
- bl xxx_call_draw_string
- movs r0, 0
- bl sub_80023E4
- lsls r0, 24
- cmp r0, 0
- beq _08039544
- add r4, sp, 0x68
- adds r0, r4, 0
- bl sub_80920D8
- adds r2, r4, 0
- b _0803954E
- .align 2, 0
-_0803952C: .4byte gUnknown_80E77BC
-_08039530: .4byte gUnknown_80E77C4
-_08039534: .4byte gUnknown_80E77CC
-_08039538: .4byte gUnknown_80E77D8
-_0803953C: .4byte gUnknown_80E77E4
-_08039540: .4byte gUnknown_80E77F0
-_08039544:
- ldr r1, _08039588
- add r0, sp, 0x68
- bl strcpy
- add r2, sp, 0x68
-_0803954E:
- ldr r5, _0803958C
- ldr r0, [r5]
- movs r4, 0xD2
- lsls r4, 1
- adds r0, r4
- ldr r1, _08039590
- bl sub_800D158
- ldr r2, [r5]
- adds r2, r4
- movs r0, 0
- str r0, [sp]
- movs r0, 0x40
- movs r1, 0
- movs r3, 0
- bl xxx_call_draw_string
- bl sub_808D33C
- cmp r0, 0
- bne _08039598
- add r4, sp, 0x90
- ldr r1, _08039594
- adds r0, r4, 0
- movs r2, 0xA
- bl sub_80922B4
- b _080395A6
- .align 2, 0
-_08039588: .4byte gUnknown_80E77F8
-_0803958C: .4byte gUnknown_203B374
-_08039590: .4byte gUnknown_80E7804
-_08039594: .4byte gUnknown_80E7808
-_08039598:
- add r4, sp, 0x90
- adds r1, r0, 0
- adds r1, 0x4C
- adds r0, r4, 0
- movs r2, 0xA
- bl sub_80922B4
-_080395A6:
- adds r2, r4, 0
- ldr r5, _080395F0
- ldr r0, [r5]
- movs r4, 0xE4
- lsls r4, 1
- adds r0, r4
- ldr r6, _080395F4
- adds r1, r6, 0
- bl sub_800D158
- ldr r2, [r5]
- adds r2, r4
- movs r0, 0
- str r0, [sp]
- movs r0, 0x40
- movs r1, 0xC
- movs r3, 0
- bl xxx_call_draw_string
- movs r0, 0x1
- bl sub_8095324
- cmp r0, 0
- bne _080395E0
- movs r0, 0x7
- bl sub_8095324
- cmp r0, 0
- beq _08039606
-_080395E0:
- ldr r0, _080395F8
- cmp r8, r0
- bne _080395FC
- ldr r4, [r5]
- movs r0, 0xF6
- lsls r0, 1
- adds r4, r0
- b _08039676
- .align 2, 0
-_080395F0: .4byte gUnknown_203B374
-_080395F4: .4byte gUnknown_80E7804
-_080395F8: .4byte 0x000f1207
-_080395FC:
- ldr r0, [r5]
- movs r1, 0xF6
- lsls r1, 1
- adds r0, r1
- b _08039690
-_08039606:
- bl sub_8011C1C
- cmp r0, 0x1
- beq _08039624
- cmp r0, 0x2
- beq _08039668
- ldr r0, [r5]
- movs r2, 0xF6
- lsls r2, 1
- adds r0, r2
- ldr r1, _08039620
- b _08039692
- .align 2, 0
-_08039620: .4byte gUnknown_80E7824
-_08039624:
- movs r0, 0
- movs r1, 0x18
- bl sub_8001658
- cmp r0, 0x7
- beq _08039658
- cmp r0, 0xB
- beq _08039658
- bl sub_8098FB4
- adds r2, r0, 0
- add r0, sp, 0x4
- adds r1, r6, 0
- bl sub_800D158
- ldr r0, [r5]
- movs r3, 0xF6
- lsls r3, 1
- adds r1, r0, r3
- adds r3, 0x24
- adds r2, r0, r3
- add r0, sp, 0x4
- movs r3, 0
- bl xxx_format_string
- b _08039696
-_08039658:
- ldr r0, _08039664
- ldr r0, [r0]
- movs r1, 0xF6
- lsls r1, 1
- adds r0, r1
- b _08039690
- .align 2, 0
-_08039664: .4byte gUnknown_203B374
-_08039668:
- ldr r0, _08039684
- cmp r8, r0
- bne _08039688
- ldr r4, [r5]
- movs r2, 0xF6
- lsls r2, 1
- adds r4, r2
-_08039676:
- bl sub_809769C
- adds r1, r0, 0
- adds r0, r4, 0
- bl sub_8090228
- b _08039696
- .align 2, 0
-_08039684: .4byte 0x000f1207
-_08039688:
- ldr r0, [r5]
- movs r3, 0xF6
- lsls r3, 1
- adds r0, r3
-_08039690:
- ldr r1, _0803974C
-_08039692:
- bl sub_800D158
-_08039696:
- ldr r7, _08039750
- ldr r2, [r7]
- movs r0, 0xF6
- lsls r0, 1
- adds r2, r0
- movs r6, 0
- str r6, [sp]
- movs r0, 0x40
- movs r1, 0x18
- movs r3, 0
- bl xxx_call_draw_string
- ldr r0, _08039754
- ldr r0, [r0]
- add r1, sp, 0x144
- add r2, sp, 0x148
- add r3, sp, 0x14C
- bl DeconstructPlayTime
- ldr r0, [r7]
- movs r5, 0x84
- lsls r5, 2
- adds r0, r5
- ldr r1, _08039758
- add r2, sp, 0x144
- ldr r2, [r2]
- add r3, sp, 0x148
- ldr r3, [r3]
- add r4, sp, 0x14C
- ldr r4, [r4]
- str r4, [sp]
- bl sub_800D158
- ldr r2, [r7]
- adds r2, r5
- str r6, [sp]
- movs r0, 0x40
- movs r1, 0x24
- movs r3, 0
- bl xxx_call_draw_string
- bl sub_8097778
- adds r2, r0, 0
- ldr r0, [r7]
- movs r4, 0x8D
- lsls r4, 2
- adds r0, r4
- ldr r1, _0803975C
- bl sub_800D158
- ldr r2, [r7]
- adds r2, r4
- str r6, [sp]
- movs r0, 0x40
- movs r1, 0x30
- movs r3, 0
- bl xxx_call_draw_string
- ldr r0, _08039760
- cmp r8, r0
- bne _0803976C
- ldr r0, _08039764
- ldr r6, [r0]
- movs r1, 0xC
- ldrsh r0, [r6, r1]
- cmp r0, 0
- beq _0803976C
- add r5, sp, 0x130
- adds r1, r0, 0
- adds r0, r5, 0
- bl sub_808D930
- add r4, sp, 0xE0
- adds r1, r6, 0
- adds r1, 0x50
- adds r0, r4, 0
- movs r2, 0xA
- bl sub_80922B4
- ldr r0, [r7]
- movs r3, 0x96
- lsls r3, 2
- adds r0, r3
- ldr r1, _08039768
- adds r2, r4, 0
- adds r3, r5, 0
- bl sub_800D158
- b _0803977C
- .align 2, 0
-_0803974C: .4byte gUnknown_80E780C
-_08039750: .4byte gUnknown_203B374
-_08039754: .4byte gUnknown_203B47C
-_08039758: .4byte gUnknown_80E7838
-_0803975C: .4byte gUnknown_80E7848
-_08039760: .4byte 0x000f1207
-_08039764: .4byte gUnknown_203B484
-_08039768: .4byte gUnknown_80E784C
-_0803976C:
- ldr r0, _080397AC
- ldr r0, [r0]
- movs r1, 0x96
- lsls r1, 2
- adds r0, r1
- ldr r1, _080397B0
- bl sub_800D158
-_0803977C:
- ldr r0, _080397AC
- ldr r2, [r0]
- movs r3, 0x96
- lsls r3, 2
- adds r2, r3
- movs r0, 0
- str r0, [sp]
- movs r0, 0x40
- movs r1, 0x3C
- movs r3, 0
- bl xxx_call_draw_string
- bl sub_80397B4
- movs r0, 0
- bl sub_80073E0
- add sp, 0x150
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080397AC: .4byte gUnknown_203B374
-_080397B0: .4byte gUnknown_80E7854
- thumb_func_end sub_80394A4
-
- thumb_func_start sub_80397B4
-sub_80397B4:
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0xC
- ldr r0, _08039834
- ldr r1, _08039838
- bl OpenFileAndGetFileDataPtr
- adds r6, r0, 0
- movs r4, 0
-_080397C8:
- adds r0, r4, 0
- adds r0, 0xB0
- ldr r1, [r6, 0x4]
- lsls r2, r4, 2
- ldr r1, [r1, 0x4]
- adds r1, r2
- bl SetBGPaletteBufferColorArray
- adds r4, 0x1
- cmp r4, 0x3F
- ble _080397C8
- movs r7, 0x8
- movs r0, 0x49
- mov r8, r0
- movs r4, 0
-_080397E6:
- ldr r0, _0803983C
- lsls r5, r4, 2
- adds r0, r5, r0
- ldr r0, [r0]
- bl sub_80023E4
- lsls r0, 24
- cmp r0, 0
- beq _0803981C
- movs r0, 0x10
- str r0, [sp]
- ldr r0, [r6, 0x4]
- lsls r1, r4, 7
- ldr r0, [r0]
- adds r0, r1
- str r0, [sp, 0x4]
- ldr r0, _08039840
- adds r0, r5, r0
- ldr r0, [r0]
- str r0, [sp, 0x8]
- movs r0, 0
- adds r1, r7, 0
- mov r2, r8
- movs r3, 0x10
- bl sub_8007E20
- adds r7, 0x10
-_0803981C:
- adds r4, 0x1
- cmp r4, 0xB
- ble _080397E6
- adds r0, r6, 0
- bl CloseFile
- add sp, 0xC
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08039834: .4byte gUnknown_80E785C
-_08039838: .4byte gTitleMenuFileArchive
-_0803983C: .4byte gUnknown_203B3B8
-_08039840: .4byte gUnknown_203B388
- thumb_func_end sub_80397B4
-
- thumb_func_start sub_8039844
-sub_8039844:
- push {r4,r5,lr}
- bl sub_8011FA8
- adds r5, r0, 0
- movs r4, 0
- movs r0, 0x1
- bl sub_8095324
- cmp r0, 0
- bne _0803986A
- movs r0, 0x7
- bl sub_8095324
- cmp r0, 0
- bne _0803986A
- bl sub_8011C1C
- cmp r0, 0x2
- bne _08039872
-_0803986A:
- ldr r0, _0803987C
- cmp r5, r0
- bne _08039872
- movs r4, 0x1
-_08039872:
- adds r0, r4, 0
- pop {r4,r5}
- pop {r1}
- bx r1
- .align 2, 0
-_0803987C: .4byte 0x000f1207
- thumb_func_end sub_8039844
-
- thumb_func_start sub_8039880
-sub_8039880:
- push {r4,lr}
- movs r4, 0
- movs r0, 0x1
- bl sub_8095324
- cmp r0, 0
- bne _080398A0
- movs r0, 0x7
- bl sub_8095324
- cmp r0, 0
- bne _080398A0
- bl sub_8011C1C
- cmp r0, 0x2
- bne _080398A2
-_080398A0:
- movs r4, 0x1
-_080398A2:
- adds r0, r4, 0
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_8039880
-
- thumb_func_start sub_80398AC
-sub_80398AC:
- push {r4,r5,lr}
- bl ResetUnusedInputStruct
- movs r0, 0
- movs r1, 0x1
- movs r2, 0x1
- bl sub_800641C
- ldr r5, _0803991C
- ldr r4, _08039920
- adds r0, r4, 0
- movs r1, 0x8
- bl MemoryAlloc
- str r0, [r5]
- movs r1, 0
- adds r2, r4, 0
- bl MemoryFill8
- movs r1, 0
- movs r2, 0
- adds r4, r5, 0
-_080398D8:
- ldr r0, [r5]
- adds r0, 0x1
- adds r0, r1
- strb r2, [r0]
- adds r1, 0x1
- cmp r1, 0x35
- ble _080398D8
- ldr r1, [r4]
- movs r3, 0x92
- lsls r3, 3
- adds r2, r1, r3
- movs r0, 0x3
- str r0, [r2]
- ldr r0, _08039924
- adds r2, r1, r0
- movs r0, 0x2
- str r0, [r2]
- movs r0, 0x93
- lsls r0, 3
- adds r1, r0
- movs r0, 0x1
- strb r0, [r1]
- ldr r0, [r4]
- adds r0, r3
- movs r1, 0x5
- str r1, [r0]
- movs r0, 0x11
- bl sub_803A1C0
- movs r0, 0x1
- pop {r4,r5}
- pop {r1}
- bx r1
- .align 2, 0
-_0803991C: .4byte gUnknown_203B3E8
-_08039920: .4byte 0x0000049c
-_08039924: .4byte 0x00000494
- thumb_func_end sub_80398AC
-
- thumb_func_start sub_8039928
-sub_8039928:
- push {lr}
- ldr r0, _08039940
- ldr r0, [r0]
- ldrb r0, [r0]
- subs r0, 0x4
- cmp r0, 0xF
- bhi _080399DE
- lsls r0, 2
- ldr r1, _08039944
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08039940: .4byte gUnknown_203B3E8
-_08039944: .4byte _08039948
- .align 2, 0
-_08039948:
- .4byte _08039988
- .4byte _0803998E
- .4byte _0803999E
- .4byte _080399AA
- .4byte _08039992
- .4byte _080399A4
- .4byte _080399C8
- .4byte _080399DE
- .4byte _08039998
- .4byte _080399B0
- .4byte _080399B6
- .4byte _080399BC
- .4byte _080399C2
- .4byte _080399CE
- .4byte _080399D4
- .4byte _080399DA
-_08039988:
- bl sub_8039A18
- b _080399DE
-_0803998E:
- movs r0, 0x3
- b _080399E0
-_08039992:
- bl sub_8039AA8
- b _080399DE
-_08039998:
- bl sub_8039B14
- b _080399DE
-_0803999E:
- bl sub_8039B20
- b _080399DE
-_080399A4:
- bl sub_8039B58
- b _080399DE
-_080399AA:
- bl sub_8039D88
- b _080399DE
-_080399B0:
- bl sub_8039D28
- b _080399DE
-_080399B6:
- bl sub_8039D68
- b _080399DE
-_080399BC:
- bl sub_8039DA4
- b _080399DE
-_080399C2:
- bl sub_8039DCC
- b _080399DE
-_080399C8:
- bl sub_8039B3C
- b _080399DE
-_080399CE:
- bl sub_8039D0C
- b _080399DE
-_080399D4:
- bl sub_8039C60
- b _080399DE
-_080399DA:
- bl sub_8039DE8
-_080399DE:
- movs r0, 0
-_080399E0:
- pop {r1}
- bx r1
- thumb_func_end sub_8039928
-
- thumb_func_start sub_80399E4
-sub_80399E4:
- push {r4,lr}
- ldr r4, _08039A14
- ldr r0, [r4]
- cmp r0, 0
- beq _08039A0E
- bl MemoryFree
- movs r0, 0
- str r0, [r4]
- bl sub_8030DE4
- bl sub_801B450
- bl sub_803084C
- bl sub_801CBB8
- bl sub_80155F0
- bl sub_8031E10
-_08039A0E:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08039A14: .4byte gUnknown_203B3E8
- thumb_func_end sub_80399E4
-
- thumb_func_start sub_8039A18
-sub_8039A18:
- push {lr}
- sub sp, 0x4
- mov r0, sp
- bl sub_80144A4
- cmp r0, 0
- bne _08039AA2
- ldr r0, _08039A48
- ldr r1, [r0]
- movs r2, 0x93
- lsls r2, 2
- adds r1, r2
- movs r2, 0xA
- str r2, [r1]
- ldr r1, [sp]
- adds r2, r0, 0
- cmp r1, 0x8
- bhi _08039AA2
- lsls r0, r1, 2
- ldr r1, _08039A4C
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08039A48: .4byte gUnknown_203B3E8
-_08039A4C: .4byte _08039A50
- .align 2, 0
-_08039A50:
- .4byte _08039A9C
- .4byte _08039AA2
- .4byte _08039AA2
- .4byte _08039A74
- .4byte _08039A74
- .4byte _08039A88
- .4byte _08039AA2
- .4byte _08039AA2
- .4byte _08039A9C
-_08039A74:
- ldr r0, [r2]
- movs r1, 0x92
- lsls r1, 3
- adds r0, r1
- movs r1, 0x3
- str r1, [r0]
- movs r0, 0x8
- bl sub_803A1C0
- b _08039AA2
-_08039A88:
- ldr r0, [r2]
- movs r2, 0x92
- lsls r2, 3
- adds r0, r2
- movs r1, 0x5
- str r1, [r0]
- movs r0, 0x11
- bl sub_803A1C0
- b _08039AA2
-_08039A9C:
- movs r0, 0x5
- bl sub_803A1C0
-_08039AA2:
- add sp, 0x4
- pop {r0}
- bx r0
- thumb_func_end sub_8039A18
-
- thumb_func_start sub_8039AA8
-sub_8039AA8:
- push {lr}
- sub sp, 0x4
- mov r0, sp
- bl sub_80144A4
- cmp r0, 0
- bne _08039B0E
- ldr r0, [sp]
- cmp r0, 0
- beq _08039AE8
- cmp r0, 0x6
- bne _08039B0E
- ldr r0, _08039AD8
- ldr r0, [r0]
- ldr r1, _08039ADC
- adds r0, r1
- ldr r0, [r0]
- cmp r0, 0x1
- bne _08039AE0
- movs r0, 0x2
- bl sub_803A1C0
- b _08039B0E
- .align 2, 0
-_08039AD8: .4byte gUnknown_203B3E8
-_08039ADC: .4byte 0x00000494
-_08039AE0:
- movs r0, 0xC
- bl sub_803A1C0
- b _08039B0E
-_08039AE8:
- ldr r0, _08039B00
- ldr r0, [r0]
- ldr r1, _08039B04
- adds r0, r1
- ldr r0, [r0]
- cmp r0, 0x1
- bne _08039B08
- movs r0, 0x1
- bl sub_803A1C0
- b _08039B0E
- .align 2, 0
-_08039B00: .4byte gUnknown_203B3E8
-_08039B04: .4byte 0x00000494
-_08039B08:
- movs r0, 0x4
- bl sub_803A1C0
-_08039B0E:
- add sp, 0x4
- pop {r0}
- bx r0
- thumb_func_end sub_8039AA8
-
- thumb_func_start sub_8039B14
-sub_8039B14:
- push {lr}
- movs r0, 0x6
- bl sub_803A1C0
- pop {r0}
- bx r0
- thumb_func_end sub_8039B14
-
- thumb_func_start sub_8039B20
-sub_8039B20:
- push {lr}
- sub sp, 0x4
- mov r0, sp
- bl sub_80144A4
- cmp r0, 0
- bne _08039B34
- movs r0, 0x9
- bl sub_803A1C0
-_08039B34:
- add sp, 0x4
- pop {r0}
- bx r0
- thumb_func_end sub_8039B20
-
- thumb_func_start sub_8039B3C
-sub_8039B3C:
- push {lr}
- sub sp, 0x4
- mov r0, sp
- bl sub_80144A4
- cmp r0, 0
- bne _08039B50
- movs r0, 0x4
- bl sub_803A1C0
-_08039B50:
- add sp, 0x4
- pop {r0}
- bx r0
- thumb_func_end sub_8039B3C
-
- thumb_func_start sub_8039B58
-sub_8039B58:
- push {lr}
- sub sp, 0x4
- mov r0, sp
- bl sub_80144A4
- cmp r0, 0
- bne _08039BA6
- ldr r0, _08039B88
- ldr r1, [r0]
- movs r2, 0x94
- lsls r2, 2
- adds r0, r1, r2
- ldr r0, [r0]
- cmp r0, 0
- bne _08039B9C
- subs r2, 0x4
- adds r0, r1, r2
- ldr r0, [r0]
- cmp r0, 0x9
- beq _08039B8C
- cmp r0, 0xA
- beq _08039B94
- b _08039BA6
- .align 2, 0
-_08039B88: .4byte gUnknown_203B3E8
-_08039B8C:
- movs r0, 0x7
- bl sub_803A1C0
- b _08039BA6
-_08039B94:
- movs r0, 0xD
- bl sub_803A1C0
- b _08039BA6
-_08039B9C:
- bl sub_8039BAC
- movs r0, 0xA
- bl sub_803A1C0
-_08039BA6:
- add sp, 0x4
- pop {r0}
- bx r0
- thumb_func_end sub_8039B58
-
- thumb_func_start sub_8039BAC
-sub_8039BAC:
- push {lr}
- cmp r0, 0xF
- bhi _08039C48
- lsls r0, 2
- ldr r1, _08039BBC
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08039BBC: .4byte _08039BC0
- .align 2, 0
-_08039BC0:
- .4byte _08039C54
- .4byte _08039C00
- .4byte _08039C10
- .4byte _08039C08
- .4byte _08039C18
- .4byte _08039C20
- .4byte _08039C48
- .4byte _08039C48
- .4byte _08039C48
- .4byte _08039C48
- .4byte _08039C48
- .4byte _08039C48
- .4byte _08039C48
- .4byte _08039C48
- .4byte _08039C28
- .4byte _08039C30
-_08039C00:
- ldr r0, _08039C04
- b _08039C32
- .align 2, 0
-_08039C04: .4byte gUnknown_80E7914
-_08039C08:
- ldr r0, _08039C0C
- b _08039C32
- .align 2, 0
-_08039C0C: .4byte gUnknown_80E7938
-_08039C10:
- ldr r0, _08039C14
- b _08039C32
- .align 2, 0
-_08039C14: .4byte gUnknown_80E7994
-_08039C18:
- ldr r0, _08039C1C
- b _08039C32
- .align 2, 0
-_08039C1C: .4byte gUnknown_80E79E4
-_08039C20:
- ldr r0, _08039C24
- b _08039C32
- .align 2, 0
-_08039C24: .4byte gUnknown_80E7914
-_08039C28:
- ldr r0, _08039C2C
- b _08039C32
- .align 2, 0
-_08039C2C: .4byte gUnknown_80E7914
-_08039C30:
- ldr r0, _08039C40
-_08039C32:
- ldr r3, _08039C44
- movs r1, 0
- movs r2, 0
- bl sub_80141B4
- b _08039C54
- .align 2, 0
-_08039C40: .4byte gUnknown_80E7A48
-_08039C44: .4byte 0x00000101
-_08039C48:
- ldr r0, _08039C58
- ldr r3, _08039C5C
- movs r1, 0
- movs r2, 0
- bl sub_80141B4
-_08039C54:
- pop {r0}
- bx r0
- .align 2, 0
-_08039C58: .4byte gUnknown_80E7914
-_08039C5C: .4byte 0x00000101
- thumb_func_end sub_8039BAC
-
- thumb_func_start sub_8039C60
-sub_8039C60:
- push {r4,r5,lr}
- bl sub_80154F0
- adds r4, r0, 0
- ldr r5, _08039CBC
- ldr r0, [r5]
- adds r0, 0x38
- movs r1, 0
- movs r2, 0x30
- bl MemoryFill8
- cmp r4, 0x2
- beq _08039CE6
- cmp r4, 0x3
- bne _08039D04
- bl sub_80155F0
- bl ResetUnusedInputStruct
- ldr r0, [r5]
- movs r1, 0xF6
- lsls r1, 1
- adds r0, r1
- movs r1, 0x1
- movs r2, 0x1
- bl sub_800641C
- ldr r1, [r5]
- adds r0, r1, 0x1
- adds r1, 0x38
- bl sub_803D358
- lsls r0, 24
- cmp r0, 0
- beq _08039CB4
- ldr r0, [r5]
- adds r0, 0x38
- bl sub_80959C0
- lsls r0, 24
- cmp r0, 0
- bne _08039CC0
-_08039CB4:
- movs r0, 0x13
- bl sub_803A1C0
- b _08039D04
- .align 2, 0
-_08039CBC: .4byte gUnknown_203B3E8
-_08039CC0:
- ldr r0, [r5]
- movs r2, 0xF0
- lsls r2, 2
- adds r1, r0, r2
- adds r0, 0x38
- ldm r0!, {r2-r4}
- stm r1!, {r2-r4}
- ldm r0!, {r3,r4}
- stm r1!, {r3,r4}
- ldr r0, [r5]
- movs r1, 0x93
- lsls r1, 3
- adds r0, r1
- movs r1, 0x1
- strb r1, [r0]
- movs r0, 0xD
- bl sub_803A1C0
- b _08039D04
-_08039CE6:
- bl sub_80155F0
- bl ResetUnusedInputStruct
- ldr r0, [r5]
- movs r2, 0xF6
- lsls r2, 1
- adds r0, r2
- movs r1, 0x1
- movs r2, 0x1
- bl sub_800641C
- movs r0, 0x5
- bl sub_803A1C0
-_08039D04:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_8039C60
-
- thumb_func_start sub_8039D0C
-sub_8039D0C:
- push {lr}
- sub sp, 0x4
- mov r0, sp
- bl sub_80144A4
- cmp r0, 0
- bne _08039D20
- movs r0, 0x12
- bl sub_803A1C0
-_08039D20:
- add sp, 0x4
- pop {r0}
- bx r0
- thumb_func_end sub_8039D0C
-
- thumb_func_start sub_8039D28
-sub_8039D28:
- push {r4,r5,lr}
- bl sub_802D0E0
- cmp r0, 0x3
- bne _08039D62
- bl sub_802D178
- ldr r5, _08039D58
- ldr r1, [r5]
- movs r4, 0x93
- lsls r4, 3
- adds r1, r4
- strb r0, [r1]
- bl sub_802D184
- ldr r0, [r5]
- adds r0, r4
- ldrb r0, [r0]
- cmp r0, 0
- beq _08039D5C
- movs r0, 0xE
- bl sub_803A1C0
- b _08039D62
- .align 2, 0
-_08039D58: .4byte gUnknown_203B3E8
-_08039D5C:
- movs r0, 0x10
- bl sub_803A1C0
-_08039D62:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_8039D28
-
- thumb_func_start sub_8039D68
-sub_8039D68:
- push {lr}
- sub sp, 0x4
- mov r0, sp
- bl sub_80144A4
- cmp r0, 0
- bne _08039D82
- movs r0, 0xF
- bl sub_803A1C0
- movs r0, 0
- bl sub_8012574
-_08039D82:
- add sp, 0x4
- pop {r0}
- bx r0
- thumb_func_end sub_8039D68
-
- thumb_func_start sub_8039D88
-sub_8039D88:
- push {lr}
- sub sp, 0x4
- mov r0, sp
- bl sub_80144A4
- cmp r0, 0
- bne _08039D9C
- movs r0, 0x8
- bl sub_803A1C0
-_08039D9C:
- add sp, 0x4
- pop {r0}
- bx r0
- thumb_func_end sub_8039D88
-
- thumb_func_start sub_8039DA4
-sub_8039DA4:
- push {lr}
- sub sp, 0x4
- mov r0, sp
- bl sub_80144A4
- cmp r0, 0
- bne _08039DC6
- bl sub_8012600
- lsls r0, 24
- cmp r0, 0
- bne _08039DC6
- bl sub_8012750
- movs r0, 0x10
- bl sub_803A1C0
-_08039DC6:
- add sp, 0x4
- pop {r0}
- bx r0
- thumb_func_end sub_8039DA4
-
- thumb_func_start sub_8039DCC
-sub_8039DCC:
- push {lr}
- sub sp, 0x4
- mov r0, sp
- bl sub_80144A4
- cmp r0, 0
- bne _08039DE0
- movs r0, 0x5
- bl sub_803A1C0
-_08039DE0:
- add sp, 0x4
- pop {r0}
- bx r0
- thumb_func_end sub_8039DCC
-
- thumb_func_start sub_8039DE8
-sub_8039DE8:
- push {lr}
- sub sp, 0x4
- mov r0, sp
- bl sub_80144A4
- cmp r0, 0
- bne _08039E0E
- ldr r0, [sp]
- cmp r0, 0
- beq _08039E08
- cmp r0, 0x6
- bne _08039E0E
- movs r0, 0x11
- bl sub_803A1C0
- b _08039E0E
-_08039E08:
- movs r0, 0x5
- bl sub_803A1C0
-_08039E0E:
- add sp, 0x4
- pop {r0}
- bx r0
- thumb_func_end sub_8039DE8
-
- thumb_func_start nullsub_54
-nullsub_54:
- bx lr
- thumb_func_end nullsub_54
-
- thumb_func_start sub_8039E18
-sub_8039E18:
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x14
- ldr r1, _08039E38
- ldr r0, [r1]
- ldrb r0, [r0]
- adds r6, r1, 0
- cmp r0, 0x13
- bls _08039E2E
- b _0803A1AA
-_08039E2E:
- lsls r0, 2
- ldr r1, _08039E3C
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08039E38: .4byte gUnknown_203B3E8
-_08039E3C: .4byte _08039E40
- .align 2, 0
-_08039E40:
- .4byte _08039E90
- .4byte _08039EB8
- .4byte _0803A1AA
- .4byte _08039EC8
- .4byte _08039EDC
- .4byte _0803A1AA
- .4byte _08039FF4
- .4byte _08039FA4
- .4byte _08039FCC
- .4byte _0803A00C
- .4byte _0803A1AA
- .4byte _0803A1AA
- .4byte _0803A1AA
- .4byte _08039F04
- .4byte _08039F68
- .4byte _0803A1AA
- .4byte _08039FAC
- .4byte _0803A152
- .4byte _0803A168
- .4byte _0803A18E
-_08039E90:
- ldr r0, _08039EB0
- ldr r3, _08039EB4
- movs r2, 0
- str r2, [sp]
- movs r1, 0x4
- str r1, [sp, 0x4]
- str r2, [sp, 0x8]
- str r2, [sp, 0xC]
- adds r1, 0xFD
- str r1, [sp, 0x10]
- movs r1, 0
- movs r2, 0x1
- bl sub_8014248
- b _0803A1AA
- .align 2, 0
-_08039EB0: .4byte gUnknown_80E7AC4
-_08039EB4: .4byte gUnknown_80E786C
-_08039EB8:
- ldr r0, _08039EC0
- ldr r3, _08039EC4
- b _08039EE0
- .align 2, 0
-_08039EC0: .4byte gUnknown_80E7AE0
-_08039EC4: .4byte gUnknown_80E7894
-_08039EC8:
- bl ResetUnusedInputStruct
- movs r0, 0
- movs r1, 0x1
- movs r2, 0x1
- bl sub_800641C
- bl sub_802EF48
- b _0803A1AA
-_08039EDC:
- ldr r0, _08039EFC
- ldr r3, _08039F00
-_08039EE0:
- movs r2, 0
- str r2, [sp]
- movs r1, 0x4
- str r1, [sp, 0x4]
- str r2, [sp, 0x8]
- str r2, [sp, 0xC]
- adds r1, 0xFD
- str r1, [sp, 0x10]
- movs r1, 0
- movs r2, 0x3
- bl sub_8014248
- b _0803A1AA
- .align 2, 0
-_08039EFC: .4byte gUnknown_80E7B14
-_08039F00: .4byte gUnknown_80E78D8
-_08039F04:
- ldr r0, [r6]
- ldr r2, _08039F3C
- adds r1, r0, r2
- movs r3, 0xF0
- lsls r3, 2
- adds r0, r3
- ldm r0!, {r2-r4}
- stm r1!, {r2-r4}
- ldm r0!, {r2,r4}
- stm r1!, {r2,r4}
- ldr r2, [r6]
- ldr r3, _08039F40
- adds r0, r2, r3
- ldrb r0, [r0]
- cmp r0, 0x4
- bne _08039F44
- movs r4, 0x91
- lsls r4, 3
- adds r1, r2, r4
- subs r3, 0xA2
- adds r0, r2, r3
- str r0, [r1]
- adds r4, 0x4
- adds r1, r2, r4
- adds r3, 0x28
- adds r0, r2, r3
- str r0, [r1]
- b _08039F54
- .align 2, 0
-_08039F3C: .4byte 0x00000474
-_08039F40: .4byte 0x00000476
-_08039F44:
- movs r4, 0x91
- lsls r4, 3
- adds r0, r2, r4
- movs r1, 0
- str r1, [r0]
- ldr r3, _08039F60
- adds r0, r2, r3
- str r1, [r0]
-_08039F54:
- ldr r0, [r6]
- ldr r4, _08039F64
- adds r0, r4
- bl sub_802D098
- b _0803A1AA
- .align 2, 0
-_08039F60: .4byte 0x0000048c
-_08039F64: .4byte 0x00000474
-_08039F68:
- ldr r1, [r6]
- movs r2, 0x93
- lsls r2, 3
- adds r0, r1, r2
- ldrb r0, [r0]
- cmp r0, 0
- beq _08039F9C
- movs r3, 0x92
- lsls r3, 3
- adds r0, r1, r3
- ldr r0, [r0]
- cmp r0, 0x4
- bne _08039F84
- b _0803A1AA
-_08039F84:
- cmp r0, 0x4
- bgt _08039F8E
- cmp r0, 0x3
- beq _08039F94
- b _0803A1AA
-_08039F8E:
- cmp r0, 0x5
- beq _08039F94
- b _0803A1AA
-_08039F94:
- ldr r0, _08039F98
- b _0803A154
- .align 2, 0
-_08039F98: .4byte gUnknown_80E7B48
-_08039F9C:
- ldr r0, _08039FA0
- b _0803A154
- .align 2, 0
-_08039FA0: .4byte gUnknown_80E7B48
-_08039FA4:
- ldr r0, _08039FA8
- b _0803A154
- .align 2, 0
-_08039FA8: .4byte gUnknown_80E7B68
-_08039FAC:
- ldr r0, [r6]
- movs r4, 0x93
- lsls r4, 3
- adds r0, r4
- ldrb r0, [r0]
- cmp r0, 0
- beq _08039FC4
- ldr r0, _08039FC0
- b _0803A154
- .align 2, 0
-_08039FC0: .4byte gUnknown_80E7B88
-_08039FC4:
- ldr r0, _08039FC8
- b _0803A154
- .align 2, 0
-_08039FC8: .4byte gUnknown_80E7BC8
-_08039FCC:
- ldr r0, _08039FEC
- ldr r3, _08039FF0
- movs r2, 0
- str r2, [sp]
- movs r1, 0x4
- str r1, [sp, 0x4]
- str r2, [sp, 0x8]
- str r2, [sp, 0xC]
- adds r1, 0xFD
- str r1, [sp, 0x10]
- movs r1, 0
- movs r2, 0x6
- bl sub_8014248
- b _0803A1AA
- .align 2, 0
-_08039FEC: .4byte gUnknown_80E7BEC
-_08039FF0: .4byte gUnknown_80E78F8
-_08039FF4:
- movs r0, 0
- bl nullsub_23
- ldr r0, _0803A008
- movs r1, 0
- movs r2, 0
- movs r3, 0
- bl sub_80141B4
- b _0803A1AA
- .align 2, 0
-_0803A008: .4byte gUnknown_80E7C48
-_0803A00C:
- ldr r0, [r6]
- movs r1, 0x94
- lsls r1, 2
- mov r8, r1
- add r0, r8
- movs r1, 0
- str r1, [r0]
- bl sub_8011830
- ldr r0, [r6]
- movs r7, 0x93
- lsls r7, 2
- adds r0, r7
- ldr r0, [r0]
- bl sub_8037B28
- ldr r2, [r6]
- mov r3, r8
- adds r1, r2, r3
- str r0, [r1]
- cmp r0, 0
- beq _0803A03A
- b _0803A14C
-_0803A03A:
- adds r4, r7, 0
- adds r0, r2, r4
- ldr r0, [r0]
- cmp r0, 0x9
- beq _0803A04A
- cmp r0, 0xA
- beq _0803A0AA
- b _0803A0DE
-_0803A04A:
- movs r5, 0x95
- lsls r5, 2
- adds r0, r2, r5
- movs r1, 0
- movs r2, 0xB4
- bl MemoryFill8
- ldr r0, [r6]
- movs r1, 0xEF
- lsls r1, 2
- adds r0, r1
- ldrb r0, [r0]
- bl sub_803B344
- adds r4, r0, 0
- ldr r1, [r4, 0x14]
- cmp r1, 0
- beq _0803A08C
- ldr r0, [r6]
- movs r2, 0x9A
- lsls r2, 2
- adds r0, r2
- movs r2, 0x28
- bl MemoryCopy8
- ldr r0, [r6]
- movs r3, 0xA4
- lsls r3, 2
- adds r0, r3
- ldr r1, [r4, 0x18]
- movs r2, 0x78
- bl MemoryCopy8
-_0803A08C:
- ldr r1, [r6]
- adds r1, r5
- adds r0, r4, 0
- ldm r0!, {r2-r4}
- stm r1!, {r2-r4}
- ldm r0!, {r2,r4}
- stm r1!, {r2,r4}
- ldr r2, [r6]
- adds r0, r2, r7
- ldr r0, [r0]
- adds r1, r2, r5
- movs r3, 0xC2
- lsls r3, 2
- adds r2, r3
- b _0803A0D4
-_0803A0AA:
- movs r4, 0x95
- lsls r4, 2
- adds r0, r2, r4
- movs r1, 0
- movs r2, 0xB4
- bl MemoryFill8
- ldr r0, [r6]
- movs r5, 0xC2
- lsls r5, 2
- adds r0, r5
- movs r1, 0
- movs r2, 0xB4
- bl MemoryFill8
- ldr r2, [r6]
- adds r0, r2, r7
- ldr r0, [r0]
- adds r4, r2, r4
- adds r2, r5
- adds r1, r4, 0
-_0803A0D4:
- bl sub_8037D64
- ldr r1, [r6]
- add r1, r8
- str r0, [r1]
-_0803A0DE:
- ldr r4, _0803A134
- ldr r2, [r4]
- movs r5, 0x94
- lsls r5, 2
- adds r0, r2, r5
- ldr r0, [r0]
- cmp r0, 0
- bne _0803A14C
- movs r1, 0x93
- lsls r1, 2
- adds r0, r2, r1
- ldr r0, [r0]
- cmp r0, 0xA
- bhi _0803A14C
- cmp r0, 0x9
- bcc _0803A14C
- movs r3, 0x95
- lsls r3, 2
- adds r1, r2, r3
- adds r3, 0xB4
- adds r2, r3
- bl sub_80381F4
- ldr r1, [r4]
- adds r1, r5
- str r0, [r1]
- bl sub_800D588
- lsls r0, 24
- cmp r0, 0
- beq _0803A138
- ldr r1, [r4]
- movs r4, 0xF0
- lsls r4, 2
- adds r0, r1, r4
- movs r2, 0xC2
- lsls r2, 2
- adds r1, r2
- movs r2, 0xB4
- bl memcpy
- b _0803A14C
- .align 2, 0
-_0803A134: .4byte gUnknown_203B3E8
-_0803A138:
- ldr r1, [r4]
- movs r3, 0xF0
- lsls r3, 2
- adds r0, r1, r3
- movs r4, 0x95
- lsls r4, 2
- adds r1, r4
- movs r2, 0xB4
- bl memcpy
-_0803A14C:
- bl xxx_call_start_bg_music
- b _0803A1AA
-_0803A152:
- ldr r0, _0803A160
-_0803A154:
- ldr r3, _0803A164
- movs r1, 0
- movs r2, 0
- bl sub_80141B4
- b _0803A1AA
- .align 2, 0
-_0803A160: .4byte gUnknown_80E7C98
-_0803A164: .4byte 0x00000101
-_0803A168:
- ldr r0, [r6]
- movs r1, 0xF6
- lsls r1, 1
- adds r0, r1
- bl sub_8006518
- bl ResetUnusedInputStruct
- movs r0, 0
- movs r1, 0x1
- movs r2, 0x1
- bl sub_800641C
- ldr r1, [r6]
- adds r1, 0x1
- movs r0, 0x5
- bl sub_80151C0
- b _0803A1AA
-_0803A18E:
- ldr r0, _0803A1B8
- ldr r3, _0803A1BC
- movs r2, 0
- str r2, [sp]
- movs r1, 0x4
- str r1, [sp, 0x4]
- str r2, [sp, 0x8]
- str r2, [sp, 0xC]
- adds r1, 0xFD
- str r1, [sp, 0x10]
- movs r1, 0
- movs r2, 0x6
- bl sub_8014248
-_0803A1AA:
- add sp, 0x14
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0803A1B8: .4byte gUnknown_80E7CC4
-_0803A1BC: .4byte gUnknown_80E78F8
- thumb_func_end sub_8039E18
-
- thumb_func_start sub_803A1C0
-sub_803A1C0:
- push {lr}
- ldr r1, _0803A1D4
- ldr r1, [r1]
- strb r0, [r1]
- bl nullsub_54
- bl sub_8039E18
- pop {r0}
- bx r0
- .align 2, 0
-_0803A1D4: .4byte gUnknown_203B3E8
- thumb_func_end sub_803A1C0
-
- thumb_func_start sub_803A1D8
-sub_803A1D8:
- movs r0, 0x1
- bx lr
- thumb_func_end sub_803A1D8
-
- thumb_func_start sub_803A1DC
-sub_803A1DC:
- movs r0, 0
- bx lr
- thumb_func_end sub_803A1DC
-
- thumb_func_start nullsub_55
-nullsub_55:
- bx lr
- thumb_func_end nullsub_55
-
- thumb_func_start sub_803A1E4
-sub_803A1E4:
- movs r0, 0x1
- bx lr
- thumb_func_end sub_803A1E4
-
- thumb_func_start sub_803A1E8
-sub_803A1E8:
- movs r0, 0x2
- bx lr
- thumb_func_end sub_803A1E8
-
- thumb_func_start sub_803A1EC
-sub_803A1EC:
- push {lr}
- bl ResetUnusedInputStruct
- movs r0, 0
- movs r1, 0x1
- movs r2, 0x1
- bl sub_800641C
- pop {r0}
- bx r0
- thumb_func_end sub_803A1EC
-
- thumb_func_start sub_803A200
-sub_803A200:
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- ldr r5, _0803A270
- ldr r0, [r5]
- cmp r0, 0
- bne _0803A224
- movs r4, 0xD2
- lsls r4, 1
- adds r0, r4, 0
- movs r1, 0x8
- bl MemoryAlloc
- str r0, [r5]
- movs r1, 0
- adds r2, r4, 0
- bl MemoryFill8
-_0803A224:
- mov r12, r5
- movs r0, 0xA0
- lsls r0, 1
- mov r8, r0
- ldr r4, _0803A274
- movs r3, 0
- movs r2, 0x3
-_0803A232:
- mov r5, r12
- ldr r1, [r5]
- adds r1, r3
- add r1, r8
- adds r0, r4, 0
- ldm r0!, {r5-r7}
- stm r1!, {r5-r7}
- ldm r0!, {r5-r7}
- stm r1!, {r5-r7}
- adds r3, 0x18
- subs r2, 0x1
- cmp r2, 0
- bge _0803A232
- bl ResetUnusedInputStruct
- ldr r0, _0803A270
- ldr r0, [r0]
- movs r6, 0xA0
- lsls r6, 1
- adds r0, r6
- movs r1, 0x1
- movs r2, 0x1
- bl sub_800641C
- bl SetDebugMenuItems
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0803A270: .4byte gUnknown_203B3EC
-_0803A274: .4byte gUnknown_80E7D40
- thumb_func_end sub_803A200
-
- thumb_func_start sub_803A278
-sub_803A278:
- push {r4,lr}
- bl ResetUnusedInputStruct
- movs r0, 0
- movs r1, 0x1
- movs r2, 0x1
- bl sub_800641C
- ldr r4, _0803A2A0
- ldr r0, [r4]
- cmp r0, 0
- beq _0803A298
- bl MemoryFree
- movs r0, 0
- str r0, [r4]
-_0803A298:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0803A2A0: .4byte gUnknown_203B3EC
- thumb_func_end sub_803A278
-
- thumb_func_start sub_803A2A4
-sub_803A2A4:
- push {r4,r5,lr}
- sub sp, 0x4
- ldr r4, _0803A2D4
- movs r0, 0xB
- str r0, [sp]
- ldr r5, _0803A2D8
- ldr r0, [r5]
- bl sub_8012FD8
- lsls r0, 24
- cmp r0, 0
- bne _0803A2C4
- ldr r0, [r5]
- mov r1, sp
- bl sub_8013114
-_0803A2C4:
- ldr r0, [sp]
- cmp r0, 0xB
- bhi _0803A34E
- lsls r0, 2
- ldr r1, _0803A2DC
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0803A2D4: .4byte 0x0000ffdc
-_0803A2D8: .4byte gUnknown_203B3EC
-_0803A2DC: .4byte _0803A2E0
- .align 2, 0
-_0803A2E0:
- .4byte _0803A310
- .4byte _0803A314
- .4byte _0803A318
- .4byte _0803A31C
- .4byte _0803A320
- .4byte _0803A324
- .4byte _0803A328
- .4byte _0803A34E
- .4byte _0803A34E
- .4byte _0803A330
- .4byte _0803A344
- .4byte _0803A34C
-_0803A310:
- movs r4, 0x2F
- b _0803A34E
-_0803A314:
- movs r4, 0x30
- b _0803A34E
-_0803A318:
- movs r4, 0x31
- b _0803A34E
-_0803A31C:
- movs r4, 0x32
- b _0803A34E
-_0803A320:
- movs r4, 0x33
- b _0803A34E
-_0803A324:
- movs r4, 0x34
- b _0803A34E
-_0803A328:
- bl sub_803A3BC
- movs r4, 0x1
- b _0803A34E
-_0803A330:
- movs r4, 0
-_0803A332:
- lsls r0, r4, 24
- lsrs r0, 24
- bl sub_80976F8
- adds r4, 0x1
- cmp r4, 0x1F
- ble _0803A332
- movs r4, 0x1
- b _0803A34E
-_0803A344:
- bl sub_803A3A0
- movs r4, 0x1
- b _0803A34E
-_0803A34C:
- ldr r4, _0803A358
-_0803A34E:
- adds r0, r4, 0
- add sp, 0x4
- pop {r4,r5}
- pop {r1}
- bx r1
- .align 2, 0
-_0803A358: .4byte 0x0000ffdc
- thumb_func_end sub_803A2A4
-
- thumb_func_start SetDebugMenuItems
-SetDebugMenuItems:
- push {r4,lr}
- sub sp, 0x10
- ldr r4, _0803A394
- ldr r0, [r4]
- movs r2, 0xA0
- lsls r2, 1
- adds r1, r0, r2
- ldr r3, _0803A398
- ldr r2, _0803A39C
- str r2, [sp]
- movs r2, 0x1
- str r2, [sp, 0x4]
- movs r2, 0xD
- str r2, [sp, 0x8]
- movs r2, 0
- str r2, [sp, 0xC]
- bl SetMenuItems
- ldr r0, [r4]
- movs r1, 0
- movs r2, 0x1
- bl sub_8035CF4
- add sp, 0x10
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0803A394: .4byte gUnknown_203B3EC
-_0803A398: .4byte gUnknown_80E7D58
-_0803A39C: .4byte gUnknown_80E7D70
- thumb_func_end SetDebugMenuItems
-
- thumb_func_start sub_803A3A0
-sub_803A3A0:
- push {lr}
- ldr r0, _0803A3B8
- ldr r0, [r0]
- movs r1, 0xA0
- lsls r1, 1
- adds r0, r1
- movs r1, 0
- bl sub_8035CC0
- pop {r0}
- bx r0
- .align 2, 0
-_0803A3B8: .4byte gUnknown_203B3EC
- thumb_func_end sub_803A3A0
-
- thumb_func_start sub_803A3BC
-sub_803A3BC:
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x84
- movs r5, 0x1
- add r4, sp, 0x60
- add r6, sp, 0x68
- add r0, sp, 0x7C
- mov r8, r0
- add r0, sp, 0x80
- mov r10, r0
-_0803A3D6:
- lsls r0, r5, 24
- lsrs r0, 24
- bl UnlockFriendArea
- adds r5, 0x1
- cmp r5, 0x39
- ble _0803A3D6
- movs r5, 0
- adds r7, r4, 0
-_0803A3E8:
- movs r0, 0
- mov r9, r0
- ldr r0, _0803A454
- str r0, [sp, 0x7C]
- adds r5, 0x1
- lsls r4, r5, 16
- asrs r4, 16
- adds r0, r7, 0
- movs r1, 0
- movs r2, 0x8
- bl memset
- movs r0, 0x27
- strh r0, [r7]
- adds r0, r6, 0
- adds r1, r4, 0
- bl sub_808D8BC
- adds r0, r6, 0
- adds r1, r6, 0
- bl sub_80922F4
- movs r0, 0x40
- strb r0, [r6]
- mov r0, r8
- str r0, [sp]
- str r7, [sp, 0x4]
- add r0, sp, 0x8
- adds r1, r4, 0
- adds r2, r6, 0
- movs r3, 0x43
- bl sub_808CFD0
- add r0, sp, 0x8
- bl sub_808D1DC
- ldr r0, _0803A458
- cmp r5, r0
- ble _0803A3E8
- mov r0, r9
- str r0, [sp, 0x80]
- mov r0, r10
- movs r1, 0x1
- bl sub_801203C
- add sp, 0x84
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0803A454: .4byte 0x00001006
-_0803A458: .4byte 0x0000012b
- thumb_func_end sub_803A3BC
-
- thumb_func_start sub_803A45C
-sub_803A45C:
- push {r4,lr}
- bl ResetUnusedInputStruct
- movs r0, 0
- movs r1, 0x1
- movs r2, 0x1
- bl sub_800641C
- ldr r4, _0803A488
- movs r0, 0x9C
- lsls r0, 1
- movs r1, 0x8
- bl MemoryAlloc
- str r0, [r4]
- movs r0, 0
- bl sub_803A504
- movs r0, 0x1
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_0803A488: .4byte gUnknown_203B3F0
- thumb_func_end sub_803A45C
-
- thumb_func_start sub_803A48C
-sub_803A48C:
- push {lr}
- ldr r0, _0803A4A4
- ldr r0, [r0]
- ldr r0, [r0]
- cmp r0, 0x5
- bhi _0803A4E0
- lsls r0, 2
- ldr r1, _0803A4A8
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0803A4A4: .4byte gUnknown_203B3F0
-_0803A4A8: .4byte _0803A4AC
- .align 2, 0
-_0803A4AC:
- .4byte _0803A4C4
- .4byte _0803A4C4
- .4byte _0803A4CA
- .4byte _0803A4D0
- .4byte _0803A4D6
- .4byte _0803A4DC
-_0803A4C4:
- bl sub_803A740
- b _0803A4E0
-_0803A4CA:
- bl sub_803A7B0
- b _0803A4E0
-_0803A4D0:
- bl sub_803A810
- b _0803A4E0
-_0803A4D6:
- bl sub_803A86C
- b _0803A4E0
-_0803A4DC:
- movs r0, 0x3
- b _0803A4E2
-_0803A4E0:
- movs r0, 0
-_0803A4E2:
- pop {r1}
- bx r1
- thumb_func_end sub_803A48C
-
- thumb_func_start sub_803A4E8
-sub_803A4E8:
- push {r4,lr}
- ldr r4, _0803A500
- ldr r0, [r4]
- cmp r0, 0
- beq _0803A4FA
- bl MemoryFree
- movs r0, 0
- str r0, [r4]
-_0803A4FA:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0803A500: .4byte gUnknown_203B3F0
- thumb_func_end sub_803A4E8
-
- thumb_func_start sub_803A504
-sub_803A504:
- push {lr}
- ldr r1, _0803A518
- ldr r1, [r1]
- str r0, [r1]
- bl sub_803A51C
- bl sub_803A5A0
- pop {r0}
- bx r0
- .align 2, 0
-_0803A518: .4byte gUnknown_203B3F0
- thumb_func_end sub_803A504
-
- thumb_func_start sub_803A51C
-sub_803A51C:
- push {r4-r7,lr}
- ldr r4, _0803A53C
- ldr r0, [r4]
- adds r0, 0xD8
- bl sub_8006518
- ldr r1, [r4]
- ldr r0, [r1]
- cmp r0, 0x2
- beq _0803A544
- cmp r0, 0x3
- bne _0803A55C
- adds r1, 0xF0
- ldr r0, _0803A540
- b _0803A54C
- .align 2, 0
-_0803A53C: .4byte gUnknown_203B3F0
-_0803A540: .4byte gUnknown_80E7E64
-_0803A544:
- movs r0, 0x84
- lsls r0, 1
- adds r1, r0
- ldr r0, _0803A558
-_0803A54C:
- ldm r0!, {r2-r4}
- stm r1!, {r2-r4}
- ldm r0!, {r5-r7}
- stm r1!, {r5-r7}
- b _0803A57E
- .align 2, 0
-_0803A558: .4byte gUnknown_80E7E4C
-_0803A55C:
- mov r12, r4
- ldr r4, _0803A598
- movs r3, 0
- movs r2, 0x3
-_0803A564:
- mov r0, r12
- ldr r1, [r0]
- adds r1, r3
- adds r1, 0xD8
- adds r0, r4, 0
- ldm r0!, {r5-r7}
- stm r1!, {r5-r7}
- ldm r0!, {r5-r7}
- stm r1!, {r5-r7}
- adds r3, 0x18
- subs r2, 0x1
- cmp r2, 0
- bge _0803A564
-_0803A57E:
- bl ResetUnusedInputStruct
- ldr r0, _0803A59C
- ldr r0, [r0]
- adds r0, 0xD8
- movs r1, 0x1
- movs r2, 0x1
- bl sub_800641C
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0803A598: .4byte gUnknown_80E7E34
-_0803A59C: .4byte gUnknown_203B3F0
- thumb_func_end sub_803A51C
-
- thumb_func_start sub_803A5A0
-sub_803A5A0:
- push {lr}
- sub sp, 0xC
- ldr r1, _0803A5BC
- ldr r0, [r1]
- ldr r0, [r0]
- adds r2, r1, 0
- cmp r0, 0x5
- bhi _0803A68A
- lsls r0, 2
- ldr r1, _0803A5C0
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0803A5BC: .4byte gUnknown_203B3F0
-_0803A5C0: .4byte _0803A5C4
- .align 2, 0
-_0803A5C4:
- .4byte _0803A5DC
- .4byte _0803A5EA
- .4byte _0803A5F2
- .4byte _0803A61C
- .4byte _0803A678
- .4byte _0803A68A
-_0803A5DC:
- movs r0, 0x2
- movs r1, 0x3
- movs r2, 0
- movs r3, 0xA
- bl sub_801C8C4
- b _0803A68A
-_0803A5EA:
- movs r0, 0x1
- bl sub_801CB5C
- b _0803A68A
-_0803A5F2:
- bl sub_801CCD8
- bl sub_803A6F0
- ldr r0, _0803A618
- ldr r2, [r0]
- adds r0, r2, 0
- adds r0, 0x4C
- adds r1, r2, 0
- adds r1, 0xC
- ldr r2, [r2, 0x8]
- str r2, [sp]
- movs r2, 0x2
- str r2, [sp, 0x4]
- movs r2, 0
- movs r3, 0
- bl sub_8012D60
- b _0803A68A
- .align 2, 0
-_0803A618: .4byte gUnknown_203B3F0
-_0803A61C:
- ldr r3, [r2]
- adds r1, r3, 0
- adds r1, 0xAC
- movs r0, 0x3
- str r0, [r1]
- subs r1, 0x8
- movs r0, 0
- str r0, [r1]
- adds r1, 0x4
- ldr r0, _0803A670
- str r0, [r1]
- adds r2, r3, 0
- adds r2, 0xA0
- ldr r0, _0803A674
- ldr r1, [r0]
- ldrb r0, [r3, 0x4]
- lsls r0, 1
- adds r1, 0x50
- adds r1, r0
- ldrh r0, [r1]
- str r0, [r2]
- adds r1, r3, 0
- adds r1, 0xB0
- movs r0, 0x1
- str r0, [r1]
- adds r1, 0x4
- adds r0, r3, 0
- adds r0, 0xF0
- str r0, [r1]
- adds r1, 0x4
- movs r0, 0x2C
- str r0, [r1]
- adds r1, 0x4
- movs r0, 0x12
- str r0, [r1]
- adds r0, r3, 0
- adds r0, 0x9C
- bl sub_8013AA0
- bl sub_803A690
- b _0803A68A
- .align 2, 0
-_0803A670: .4byte 0x000003e7
-_0803A674: .4byte gUnknown_203B460
-_0803A678:
- ldr r0, [r2]
- ldrb r1, [r0, 0x4]
- add r0, sp, 0x8
- movs r2, 0
- bl sub_8090A8C
- add r0, sp, 0x8
- bl sub_801B3C0
-_0803A68A:
- add sp, 0xC
- pop {r0}
- bx r0
- thumb_func_end sub_803A5A0
-
- thumb_func_start sub_803A690
-sub_803A690:
- push {r4,lr}
- sub sp, 0x4
- ldr r4, _0803A6E8
- ldr r0, [r4]
- adds r0, 0xB0
- ldr r0, [r0]
- bl sub_8008C54
- ldr r0, [r4]
- adds r0, 0xB0
- ldr r0, [r0]
- bl sub_80073B8
- ldr r2, _0803A6EC
- ldr r0, [r4]
- adds r0, 0xB0
- ldr r3, [r0]
- movs r0, 0
- str r0, [sp]
- movs r0, 0x4
- movs r1, 0
- bl xxx_call_draw_string
- ldr r0, [r4]
- adds r0, 0x9C
- bl sub_8013C68
- ldr r0, [r4]
- adds r0, 0xB0
- ldr r0, [r0]
- bl sub_80073E0
- bl sub_801CCD8
- ldr r0, [r4]
- adds r0, 0x4C
- movs r1, 0
- bl sub_8012EA4
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0803A6E8: .4byte gUnknown_203B3F0
-_0803A6EC: .4byte gUnknown_80E7E7C
- thumb_func_end sub_803A690
-
- thumb_func_start sub_803A6F0
-sub_803A6F0:
- push {r4,lr}
- ldr r4, _0803A734
- ldr r1, [r4]
- ldr r0, _0803A738
- str r0, [r1, 0xC]
- movs r0, 0x2
- str r0, [r1, 0x10]
- str r0, [r1, 0x8]
- ldrb r0, [r1, 0x4]
- bl sub_8091524
- lsls r0, 24
- cmp r0, 0
- bne _0803A718
- ldr r0, [r4]
- movs r1, 0x1
- negs r1, r1
- str r1, [r0, 0x10]
- movs r1, 0x3
- str r1, [r0, 0x8]
-_0803A718:
- ldr r1, [r4]
- movs r2, 0x1
- ldr r0, _0803A73C
- ldr r0, [r0]
- str r0, [r1, 0x14]
- movs r0, 0x3
- str r0, [r1, 0x18]
- movs r0, 0
- str r0, [r1, 0x1C]
- str r2, [r1, 0x20]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0803A734: .4byte gUnknown_203B3F0
-_0803A738: .4byte gUnknown_80E7E7C
-_0803A73C: .4byte gUnknown_80D4970
- thumb_func_end sub_803A6F0
-
- thumb_func_start sub_803A740
-sub_803A740:
- push {lr}
- movs r0, 0x1
- bl sub_801CA08
- cmp r0, 0x4
- bhi _0803A7AA
- lsls r0, 2
- ldr r1, _0803A758
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0803A758: .4byte _0803A75C
- .align 2, 0
-_0803A75C:
- .4byte _0803A7AA
- .4byte _0803A7AA
- .4byte _0803A7A0
- .4byte _0803A770
- .4byte _0803A788
-_0803A770:
- bl sub_801CB24
- ldr r1, _0803A784
- ldr r1, [r1]
- strb r0, [r1, 0x4]
- movs r0, 0x2
- bl sub_803A504
- b _0803A7AA
- .align 2, 0
-_0803A784: .4byte gUnknown_203B3F0
-_0803A788:
- bl sub_801CB24
- ldr r1, _0803A79C
- ldr r1, [r1]
- strb r0, [r1, 0x4]
- movs r0, 0x4
- bl sub_803A504
- b _0803A7AA
- .align 2, 0
-_0803A79C: .4byte gUnknown_203B3F0
-_0803A7A0:
- bl sub_801CBB8
- movs r0, 0x5
- bl sub_803A504
-_0803A7AA:
- pop {r0}
- bx r0
- thumb_func_end sub_803A740
-
- thumb_func_start sub_803A7B0
-sub_803A7B0:
- push {r4,lr}
- sub sp, 0x4
- movs r0, 0
- str r0, [sp]
- bl sub_801CA08
- ldr r4, _0803A7E8
- ldr r0, [r4]
- adds r0, 0x4C
- bl sub_8012FD8
- lsls r0, 24
- cmp r0, 0
- bne _0803A7D6
- ldr r0, [r4]
- adds r0, 0x4C
- mov r1, sp
- bl sub_8013114
-_0803A7D6:
- ldr r0, [sp]
- cmp r0, 0x2
- beq _0803A7F2
- cmp r0, 0x2
- bgt _0803A7EC
- cmp r0, 0x1
- beq _0803A802
- b _0803A808
- .align 2, 0
-_0803A7E8: .4byte gUnknown_203B3F0
-_0803A7EC:
- cmp r0, 0x3
- beq _0803A7FA
- b _0803A808
-_0803A7F2:
- movs r0, 0x3
- bl sub_803A504
- b _0803A808
-_0803A7FA:
- movs r0, 0x4
- bl sub_803A504
- b _0803A808
-_0803A802:
- movs r0, 0x1
- bl sub_803A504
-_0803A808:
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_803A7B0
-
- thumb_func_start sub_803A810
-sub_803A810:
- push {r4,lr}
- movs r0, 0
- bl sub_801CA08
- ldr r4, _0803A838
- ldr r0, [r4]
- adds r0, 0x4C
- bl sub_8012FD8
- ldr r0, [r4]
- adds r0, 0x9C
- bl sub_8013BBC
- cmp r0, 0x2
- beq _0803A854
- cmp r0, 0x2
- bhi _0803A83C
- cmp r0, 0x1
- beq _0803A860
- b _0803A864
- .align 2, 0
-_0803A838: .4byte gUnknown_203B3F0
-_0803A83C:
- cmp r0, 0x3
- bne _0803A864
- ldr r0, _0803A85C
- ldr r2, [r0]
- ldr r1, [r4]
- ldrb r0, [r1, 0x4]
- lsls r0, 1
- adds r2, 0x50
- adds r2, r0
- adds r1, 0x9C
- ldr r0, [r1]
- strh r0, [r2]
-_0803A854:
- movs r0, 0x1
- bl sub_803A504
- b _0803A864
- .align 2, 0
-_0803A85C: .4byte gUnknown_203B460
-_0803A860:
- bl sub_803A690
-_0803A864:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_803A810
-
- thumb_func_start sub_803A86C
-sub_803A86C:
- push {lr}
- bl sub_801B410
- cmp r0, 0x1
- bls _0803A884
- cmp r0, 0x3
- bhi _0803A884
- bl sub_801B450
- movs r0, 0x1
- bl sub_803A504
-_0803A884:
- pop {r0}
- bx r0
- thumb_func_end sub_803A86C
-
- thumb_func_start sub_803A888
-sub_803A888:
- push {r4,lr}
- bl ResetUnusedInputStruct
- movs r0, 0
- movs r1, 0x1
- movs r2, 0x1
- bl sub_800641C
- ldr r4, _0803A8B4
- movs r0, 0xFC
- movs r1, 0x8
- bl MemoryAlloc
- str r0, [r4]
- movs r0, 0
- bl sub_803A924
- movs r0, 0x1
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_0803A8B4: .4byte gUnknown_203B3F4
- thumb_func_end sub_803A888
-
- thumb_func_start sub_803A8B8
-sub_803A8B8:
- push {lr}
- ldr r0, _0803A8D0
- ldr r0, [r0]
- ldr r0, [r0]
- cmp r0, 0x4
- bhi _0803A902
- lsls r0, 2
- ldr r1, _0803A8D4
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0803A8D0: .4byte gUnknown_203B3F4
-_0803A8D4: .4byte _0803A8D8
- .align 2, 0
-_0803A8D8:
- .4byte _0803A8EC
- .4byte _0803A8EC
- .4byte _0803A8F2
- .4byte _0803A8F8
- .4byte _0803A8FE
-_0803A8EC:
- bl sub_803AAC4
- b _0803A902
-_0803A8F2:
- bl sub_803AB34
- b _0803A902
-_0803A8F8:
- bl sub_803ABAC
- b _0803A902
-_0803A8FE:
- movs r0, 0x3
- b _0803A904
-_0803A902:
- movs r0, 0
-_0803A904:
- pop {r1}
- bx r1
- thumb_func_end sub_803A8B8
-
- thumb_func_start sub_803A908
-sub_803A908:
- push {r4,lr}
- ldr r4, _0803A920
- ldr r0, [r4]
- cmp r0, 0
- beq _0803A91A
- bl MemoryFree
- movs r0, 0
- str r0, [r4]
-_0803A91A:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0803A920: .4byte gUnknown_203B3F4
- thumb_func_end sub_803A908
-
- thumb_func_start sub_803A924
-sub_803A924:
- push {lr}
- ldr r1, _0803A938
- ldr r1, [r1]
- str r0, [r1]
- bl sub_803A93C
- bl sub_803A9AC
- pop {r0}
- bx r0
- .align 2, 0
-_0803A938: .4byte gUnknown_203B3F4
- thumb_func_end sub_803A924
-
- thumb_func_start sub_803A93C
-sub_803A93C:
- push {r4-r7,lr}
- ldr r4, _0803A960
- ldr r0, [r4]
- adds r0, 0x9C
- bl sub_8006518
- ldr r1, [r4]
- ldr r0, [r1]
- cmp r0, 0x2
- bne _0803A968
- adds r1, 0xCC
- ldr r0, _0803A964
- ldm r0!, {r2-r4}
- stm r1!, {r2-r4}
- ldm r0!, {r5-r7}
- stm r1!, {r5-r7}
- b _0803A98A
- .align 2, 0
-_0803A960: .4byte gUnknown_203B3F4
-_0803A964: .4byte gUnknown_80E7EA4
-_0803A968:
- mov r12, r4
- ldr r4, _0803A9A4
- movs r3, 0
- movs r2, 0x3
-_0803A970:
- mov r0, r12
- ldr r1, [r0]
- adds r1, r3
- adds r1, 0x9C
- adds r0, r4, 0
- ldm r0!, {r5-r7}
- stm r1!, {r5-r7}
- ldm r0!, {r5-r7}
- stm r1!, {r5-r7}
- adds r3, 0x18
- subs r2, 0x1
- cmp r2, 0
- bge _0803A970
-_0803A98A:
- bl ResetUnusedInputStruct
- ldr r0, _0803A9A8
- ldr r0, [r0]
- adds r0, 0x9C
- movs r1, 0x1
- movs r2, 0x1
- bl sub_800641C
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0803A9A4: .4byte gUnknown_80E7E8C
-_0803A9A8: .4byte gUnknown_203B3F4
- thumb_func_end sub_803A93C
-
- thumb_func_start sub_803A9AC
-sub_803A9AC:
- push {lr}
- sub sp, 0x8
- ldr r1, _0803A9C8
- ldr r0, [r1]
- ldr r0, [r0]
- adds r2, r1, 0
- cmp r0, 0x4
- bhi _0803AA2C
- lsls r0, 2
- ldr r1, _0803A9CC
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0803A9C8: .4byte gUnknown_203B3F4
-_0803A9CC: .4byte _0803A9D0
- .align 2, 0
-_0803A9D0:
- .4byte _0803A9E4
- .4byte _0803A9EE
- .4byte _0803A9F6
- .4byte _0803AA20
- .4byte _0803AA2C
-_0803A9E4:
- movs r0, 0
- movs r1, 0x3
- bl sub_80211AC
- b _0803AA2C
-_0803A9EE:
- movs r0, 0x1
- bl sub_8021354
- b _0803AA2C
-_0803A9F6:
- bl sub_8021494
- bl sub_803AA34
- ldr r0, _0803AA1C
- ldr r2, [r0]
- adds r0, r2, 0
- adds r0, 0x4C
- adds r1, r2, 0
- adds r1, 0xC
- ldr r2, [r2, 0x8]
- str r2, [sp]
- movs r2, 0x2
- str r2, [sp, 0x4]
- movs r2, 0
- movs r3, 0
- bl sub_8012D60
- b _0803AA2C
- .align 2, 0
-_0803AA1C: .4byte gUnknown_203B3F4
-_0803AA20:
- ldr r0, [r2]
- ldrb r0, [r0, 0x4]
- movs r1, 0x1
- movs r2, 0
- bl sub_8021774
-_0803AA2C:
- add sp, 0x8
- pop {r0}
- bx r0
- thumb_func_end sub_803A9AC
-
- thumb_func_start sub_803AA34
-sub_803AA34:
- push {r4,r5,lr}
- movs r4, 0
- ldr r0, _0803AA64
- ldr r1, [r0]
- ldr r2, _0803AA68
- ldr r3, [r2]
- ldrb r0, [r3, 0x4]
- adds r1, r0
- ldrb r0, [r1]
- adds r5, r2, 0
- cmp r0, 0
- beq _0803AA7A
- ldr r0, _0803AA6C
- str r0, [r3, 0xC]
- bl sub_803ABC8
- lsls r0, 24
- cmp r0, 0
- beq _0803AA70
- ldr r1, [r5]
- movs r0, 0x3
- str r0, [r1, 0x10]
- b _0803AA82
- .align 2, 0
-_0803AA64: .4byte gFriendAreas
-_0803AA68: .4byte gUnknown_203B3F4
-_0803AA6C: .4byte gUnknown_80E7EBC
-_0803AA70:
- ldr r1, [r5]
- movs r0, 0x1
- negs r0, r0
- str r0, [r1, 0x10]
- b _0803AA82
-_0803AA7A:
- ldr r0, _0803AABC
- str r0, [r3, 0xC]
- movs r0, 0x2
- str r0, [r3, 0x10]
-_0803AA82:
- adds r4, 0x1
- ldr r5, [r5]
- mov r12, r5
- lsls r1, r4, 3
- mov r3, r12
- adds r3, 0xC
- adds r2, r3, r1
- ldr r0, _0803AAC0
- ldr r0, [r0]
- str r0, [r2]
- mov r2, r12
- adds r2, 0x10
- adds r1, r2, r1
- movs r0, 0x4
- str r0, [r1]
- adds r4, 0x1
- lsls r1, r4, 3
- adds r3, r1
- movs r0, 0
- str r0, [r3]
- adds r2, r1
- movs r0, 0x1
- str r0, [r2]
- mov r1, r12
- ldr r0, [r1, 0x10]
- str r0, [r1, 0x8]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0803AABC: .4byte gUnknown_80E7EC4
-_0803AAC0: .4byte gUnknown_80D4970
- thumb_func_end sub_803AA34
-
- thumb_func_start sub_803AAC4
-sub_803AAC4:
- push {lr}
- movs r0, 0x1
- bl sub_8021274
- cmp r0, 0x4
- bhi _0803AB2E
- lsls r0, 2
- ldr r1, _0803AADC
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0803AADC: .4byte _0803AAE0
- .align 2, 0
-_0803AAE0:
- .4byte _0803AB2E
- .4byte _0803AB2E
- .4byte _0803AB24
- .4byte _0803AAF4
- .4byte _0803AB0C
-_0803AAF4:
- bl sub_802132C
- ldr r1, _0803AB08
- ldr r1, [r1]
- strb r0, [r1, 0x4]
- movs r0, 0x2
- bl sub_803A924
- b _0803AB2E
- .align 2, 0
-_0803AB08: .4byte gUnknown_203B3F4
-_0803AB0C:
- bl sub_802132C
- ldr r1, _0803AB20
- ldr r1, [r1]
- strb r0, [r1, 0x4]
- movs r0, 0x3
- bl sub_803A924
- b _0803AB2E
- .align 2, 0
-_0803AB20: .4byte gUnknown_203B3F4
-_0803AB24:
- bl sub_80213A0
- movs r0, 0x4
- bl sub_803A924
-_0803AB2E:
- pop {r0}
- bx r0
- thumb_func_end sub_803AAC4
-
- thumb_func_start sub_803AB34
-sub_803AB34:
- push {r4,lr}
- sub sp, 0x4
- movs r0, 0
- str r0, [sp]
- bl sub_8021274
- ldr r4, _0803AB6C
- ldr r0, [r4]
- adds r0, 0x4C
- bl sub_8012FD8
- lsls r0, 24
- cmp r0, 0
- bne _0803AB5A
- ldr r0, [r4]
- adds r0, 0x4C
- mov r1, sp
- bl sub_8013114
-_0803AB5A:
- ldr r0, [sp]
- cmp r0, 0x2
- beq _0803AB7A
- cmp r0, 0x2
- bgt _0803AB70
- cmp r0, 0x1
- beq _0803AB9E
- b _0803ABA4
- .align 2, 0
-_0803AB6C: .4byte gUnknown_203B3F4
-_0803AB70:
- cmp r0, 0x3
- beq _0803AB84
- cmp r0, 0x4
- beq _0803AB96
- b _0803ABA4
-_0803AB7A:
- ldr r0, [r4]
- ldrb r0, [r0, 0x4]
- bl UnlockFriendArea
- b _0803AB8E
-_0803AB84:
- ldr r0, [r4]
- ldrb r0, [r0, 0x4]
- movs r1, 0x1
- bl sub_809249C
-_0803AB8E:
- movs r0, 0x1
- bl sub_803A924
- b _0803ABA4
-_0803AB96:
- movs r0, 0x3
- bl sub_803A924
- b _0803ABA4
-_0803AB9E:
- movs r0, 0x1
- bl sub_803A924
-_0803ABA4:
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_803AB34
-
- thumb_func_start sub_803ABAC
-sub_803ABAC:
- push {lr}
- bl sub_80217EC
- cmp r0, 0x1
- bls _0803ABC4
- cmp r0, 0x3
- bhi _0803ABC4
- bl sub_8021830
- movs r0, 0x1
- bl sub_803A924
-_0803ABC4:
- pop {r0}
- bx r0
- thumb_func_end sub_803ABAC
-
- thumb_func_start sub_803ABC8
-sub_803ABC8:
- push {r4-r6,lr}
- movs r5, 0
- movs r6, 0x1
-_0803ABCE:
- ldr r2, _0803AC08
- movs r0, 0x58
- adds r1, r5, 0
- muls r1, r0
- ldr r0, [r2]
- adds r2, r0, r1
- ldrh r1, [r2]
- adds r0, r6, 0
- ands r0, r1
- cmp r0, 0
- beq _0803AC10
- lsrs r0, r1, 1
- ands r0, r6
- cmp r0, 0
- beq _0803AC10
- ldr r0, _0803AC0C
- ldr r4, [r0]
- movs r1, 0x8
- ldrsh r0, [r2, r1]
- bl GetFriendArea
- ldrb r1, [r4, 0x4]
- lsls r0, 24
- lsrs r0, 24
- cmp r1, r0
- bne _0803AC10
- movs r0, 0
- b _0803AC1C
- .align 2, 0
-_0803AC08: .4byte gUnknown_203B45C
-_0803AC0C: .4byte gUnknown_203B3F4
-_0803AC10:
- adds r5, 0x1
- movs r0, 0xCE
- lsls r0, 1
- cmp r5, r0
- ble _0803ABCE
- movs r0, 0x1
-_0803AC1C:
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end sub_803ABC8
-
- thumb_func_start sub_803AC24
-sub_803AC24:
- push {r4,lr}
- ldr r4, _0803AC44
- movs r0, 0xA0
- lsls r0, 1
- movs r1, 0x8
- bl MemoryAlloc
- str r0, [r4]
- movs r0, 0
- bl sub_803ACD0
- movs r0, 0x1
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_0803AC44: .4byte gUnknown_203B3F8
- thumb_func_end sub_803AC24
-
- thumb_func_start sub_803AC48
-sub_803AC48:
- push {lr}
- ldr r0, _0803AC60
- ldr r0, [r0]
- ldr r0, [r0]
- cmp r0, 0x7
- bhi _0803ACA8
- lsls r0, 2
- ldr r1, _0803AC64
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0803AC60: .4byte gUnknown_203B3F8
-_0803AC64: .4byte _0803AC68
- .align 2, 0
-_0803AC68:
- .4byte _0803AC88
- .4byte _0803AC90
- .4byte _0803AC90
- .4byte _0803AC96
- .4byte _0803ACA8
- .4byte _0803AC9C
- .4byte _0803ACA2
- .4byte _0803ACA8
-_0803AC88:
- movs r0, 0x1
- bl sub_803ACD0
- b _0803ACAC
-_0803AC90:
- bl sub_803AF38
- b _0803ACAC
-_0803AC96:
- bl sub_803AF88
- b _0803ACAC
-_0803AC9C:
- bl sub_803AFE8
- b _0803ACAC
-_0803ACA2:
- bl sub_803B034
- b _0803ACAC
-_0803ACA8:
- movs r0, 0x3
- b _0803ACAE
-_0803ACAC:
- movs r0, 0
-_0803ACAE:
- pop {r1}
- bx r1
- thumb_func_end sub_803AC48
-
- thumb_func_start sub_803ACB4
-sub_803ACB4:
- push {r4,lr}
- ldr r4, _0803ACCC
- ldr r0, [r4]
- cmp r0, 0
- beq _0803ACC6
- bl MemoryFree
- movs r0, 0
- str r0, [r4]
-_0803ACC6:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0803ACCC: .4byte gUnknown_203B3F8
- thumb_func_end sub_803ACB4
-
- thumb_func_start sub_803ACD0
-sub_803ACD0:
- push {lr}
- ldr r1, _0803ACE4
- ldr r1, [r1]
- str r0, [r1]
- bl sub_803ACE8
- bl sub_803AD88
- pop {r0}
- bx r0
- .align 2, 0
-_0803ACE4: .4byte gUnknown_203B3F8
- thumb_func_end sub_803ACD0
-
- thumb_func_start sub_803ACE8
-sub_803ACE8:
- push {r4-r7,lr}
- ldr r4, _0803AD08
- ldr r0, [r4]
- adds r0, 0xE0
- bl sub_8006518
- ldr r1, [r4]
- ldr r0, [r1]
- cmp r0, 0x3
- beq _0803AD10
- cmp r0, 0x5
- beq _0803AD38
- movs r2, 0
- ldr r3, _0803AD0C
- b _0803AD50
- .align 2, 0
-_0803AD08: .4byte gUnknown_203B3F8
-_0803AD0C: .4byte gUnknown_80E7ED4
-_0803AD10:
- bl sub_803AEB0
- ldr r2, [r4]
- movs r0, 0x88
- lsls r0, 1
- adds r2, r0
- ldr r1, _0803AD34
- ldm r1!, {r3,r5,r6}
- stm r2!, {r3,r5,r6}
- ldm r1!, {r3,r5,r7}
- stm r2!, {r3,r5,r7}
- ldr r1, [r4]
- adds r0, r1, r0
- adds r1, 0x90
- bl sub_8012CAC
- b _0803AD6C
- .align 2, 0
-_0803AD34: .4byte gUnknown_80E7EEC
-_0803AD38:
- movs r6, 0x94
- lsls r6, 1
- adds r1, r6
- ldr r0, _0803AD4C
- ldm r0!, {r2,r3,r7}
- stm r1!, {r2,r3,r7}
- ldm r0!, {r4-r6}
- stm r1!, {r4-r6}
- b _0803AD6C
- .align 2, 0
-_0803AD4C: .4byte gUnknown_80E7F04
-_0803AD50:
- ldr r0, [r4]
- lsls r1, r2, 1
- adds r1, r2
- lsls r1, 3
- adds r0, r1
- adds r0, 0xE0
- adds r1, r3, 0
- ldm r1!, {r5-r7}
- stm r0!, {r5-r7}
- ldm r1!, {r5-r7}
- stm r0!, {r5-r7}
- adds r2, 0x1
- cmp r2, 0x3
- ble _0803AD50
-_0803AD6C:
- bl ResetUnusedInputStruct
- ldr r0, _0803AD84
- ldr r0, [r0]
- adds r0, 0xE0
- movs r1, 0x1
- movs r2, 0x1
- bl sub_800641C
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0803AD84: .4byte gUnknown_203B3F8
- thumb_func_end sub_803ACE8
-
- thumb_func_start sub_803AD88
-sub_803AD88:
- push {lr}
- sub sp, 0x8
- ldr r1, _0803ADA4
- ldr r0, [r1]
- ldr r0, [r0]
- adds r2, r1, 0
- cmp r0, 0x7
- bhi _0803AE50
- lsls r0, 2
- ldr r1, _0803ADA8
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0803ADA4: .4byte gUnknown_203B3F8
-_0803ADA8: .4byte _0803ADAC
- .align 2, 0
-_0803ADAC:
- .4byte _0803AE50
- .4byte _0803ADCC
- .4byte _0803ADDA
- .4byte _0803ADE2
- .4byte _0803AE50
- .4byte _0803AE0C
- .4byte _0803AE44
- .4byte _0803AE50
-_0803ADCC:
- movs r0, 0x1
- movs r1, 0
- movs r2, 0
- movs r3, 0xA
- bl sub_8023868
- b _0803AE50
-_0803ADDA:
- movs r0, 0x1
- bl sub_8023B7C
- b _0803AE50
-_0803ADE2:
- bl sub_8023DA4
- ldr r0, _0803AE08
- ldr r2, [r0]
- adds r0, r2, 0
- adds r0, 0x10
- adds r1, r2, 0
- adds r1, 0x90
- adds r3, r2, 0
- adds r3, 0xD0
- ldr r2, [r2, 0xC]
- str r2, [sp]
- movs r2, 0x2
- str r2, [sp, 0x4]
- movs r2, 0
- bl sub_8012D60
- b _0803AE50
- .align 2, 0
-_0803AE08: .4byte gUnknown_203B3F8
-_0803AE0C:
- ldr r2, [r2]
- movs r1, 0x3
- str r1, [r2, 0x70]
- movs r0, 0x1
- str r0, [r2, 0x68]
- movs r0, 0x64
- str r0, [r2, 0x6C]
- ldr r0, [r2, 0x8]
- ldrb r0, [r0, 0x3]
- str r0, [r2, 0x64]
- str r1, [r2, 0x74]
- movs r1, 0x94
- lsls r1, 1
- adds r0, r2, r1
- str r0, [r2, 0x78]
- movs r0, 0x2C
- str r0, [r2, 0x7C]
- adds r1, r2, 0
- adds r1, 0x80
- movs r0, 0x12
- str r0, [r1]
- adds r0, r2, 0
- adds r0, 0x60
- bl sub_8013AA0
- bl sub_803AE58
- b _0803AE50
-_0803AE44:
- ldr r0, [r2]
- ldr r1, [r0, 0x8]
- adds r1, 0x4C
- movs r0, 0x2
- bl sub_801602C
-_0803AE50:
- add sp, 0x8
- pop {r0}
- bx r0
- thumb_func_end sub_803AD88
-
- thumb_func_start sub_803AE58
-sub_803AE58:
- push {r4,lr}
- sub sp, 0x4
- ldr r4, _0803AEA8
- ldr r0, [r4]
- ldr r0, [r0, 0x74]
- bl sub_8008C54
- ldr r0, [r4]
- ldr r0, [r0, 0x74]
- bl sub_80073B8
- ldr r2, _0803AEAC
- ldr r0, [r4]
- ldr r3, [r0, 0x74]
- movs r0, 0
- str r0, [sp]
- movs r0, 0x4
- movs r1, 0
- bl xxx_call_draw_string
- ldr r0, [r4]
- adds r0, 0x60
- bl sub_8013C68
- ldr r0, [r4]
- ldr r0, [r0, 0x74]
- bl sub_80073E0
- bl sub_8023DA4
- ldr r0, [r4]
- adds r0, 0x10
- movs r1, 0
- bl sub_8012EA4
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0803AEA8: .4byte gUnknown_203B3F8
-_0803AEAC: .4byte gUnknown_80E7F1C
- thumb_func_end sub_803AE58
-
- thumb_func_start sub_803AEB0
-sub_803AEB0:
- push {r4-r6,lr}
- ldr r4, _0803AEFC
- ldr r0, [r4]
- adds r0, 0xD0
- movs r1, 0
- movs r2, 0x10
- bl MemoryFill16
- ldr r4, [r4]
- movs r3, 0
- adds r1, r4, 0
- adds r1, 0x90
- ldr r0, _0803AF00
- str r0, [r1]
- adds r5, r4, 0
- adds r5, 0x94
- movs r0, 0x4
- str r0, [r5]
- movs r2, 0x1
- adds r1, 0x8
- ldr r0, _0803AF04
- str r0, [r1]
- adds r1, 0x4
- movs r0, 0x5
- str r0, [r1]
- movs r6, 0x2
- adds r0, r4, 0
- adds r0, 0xA0
- str r3, [r0]
- adds r0, 0x4
- str r2, [r0]
- adds r0, 0x2C
- ldrh r0, [r0]
- cmp r0, 0
- bne _0803AF08
- ldr r0, [r5]
- str r0, [r4, 0xC]
- b _0803AF2C
- .align 2, 0
-_0803AEFC: .4byte gUnknown_203B3F8
-_0803AF00: .4byte gUnknown_80E7F24
-_0803AF04: .4byte gUnknown_80E7F2C
-_0803AF08:
- adds r3, 0x1
- cmp r3, r6
- bge _0803AF2C
- ldr r0, _0803AF34
- ldr r2, [r0]
- lsls r1, r3, 1
- adds r0, r2, 0
- adds r0, 0xD0
- adds r0, r1
- ldrh r0, [r0]
- cmp r0, 0
- bne _0803AF08
- lsls r0, r3, 3
- adds r1, r2, 0
- adds r1, 0x94
- adds r1, r0
- ldr r0, [r1]
- str r0, [r2, 0xC]
-_0803AF2C:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0803AF34: .4byte gUnknown_203B3F8
- thumb_func_end sub_803AEB0
-
- thumb_func_start sub_803AF38
-sub_803AF38:
- push {lr}
- movs r0, 0x1
- bl sub_8023A94
- cmp r0, 0x2
- beq _0803AF78
- cmp r0, 0x2
- bcc _0803AF82
- cmp r0, 0x3
- bne _0803AF82
- bl sub_8023B44
- ldr r1, _0803AF70
- ldr r1, [r1]
- strh r0, [r1, 0x4]
- ldr r3, _0803AF74
- movs r0, 0x4
- ldrsh r2, [r1, r0]
- movs r0, 0x58
- muls r2, r0
- ldr r0, [r3]
- adds r0, r2
- str r0, [r1, 0x8]
- movs r0, 0x3
- bl sub_803ACD0
- b _0803AF82
- .align 2, 0
-_0803AF70: .4byte gUnknown_203B3F8
-_0803AF74: .4byte gUnknown_203B45C
-_0803AF78:
- bl sub_8023C60
- movs r0, 0x7
- bl sub_803ACD0
-_0803AF82:
- pop {r0}
- bx r0
- thumb_func_end sub_803AF38
-
- thumb_func_start sub_803AF88
-sub_803AF88:
- push {r4,lr}
- sub sp, 0x4
- movs r0, 0
- str r0, [sp]
- bl sub_8023A94
- ldr r4, _0803AFC0
- ldr r0, [r4]
- adds r0, 0x10
- bl sub_8012FD8
- lsls r0, 24
- cmp r0, 0
- bne _0803AFAE
- ldr r0, [r4]
- adds r0, 0x10
- mov r1, sp
- bl sub_8013114
-_0803AFAE:
- ldr r0, [sp]
- cmp r0, 0x4
- beq _0803AFCA
- cmp r0, 0x4
- bgt _0803AFC4
- cmp r0, 0x1
- beq _0803AFDA
- b _0803AFE0
- .align 2, 0
-_0803AFC0: .4byte gUnknown_203B3F8
-_0803AFC4:
- cmp r0, 0x5
- beq _0803AFD2
- b _0803AFE0
-_0803AFCA:
- movs r0, 0x5
- bl sub_803ACD0
- b _0803AFE0
-_0803AFD2:
- movs r0, 0x6
- bl sub_803ACD0
- b _0803AFE0
-_0803AFDA:
- movs r0, 0x2
- bl sub_803ACD0
-_0803AFE0:
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_803AF88
-
- thumb_func_start sub_803AFE8
-sub_803AFE8:
- push {r4,lr}
- movs r0, 0
- bl sub_8023A94
- ldr r4, _0803B010
- ldr r0, [r4]
- adds r0, 0x10
- bl sub_8012FD8
- ldr r0, [r4]
- adds r0, 0x60
- bl sub_8013BBC
- cmp r0, 0x2
- beq _0803B020
- cmp r0, 0x2
- bhi _0803B014
- cmp r0, 0x1
- beq _0803B028
- b _0803B02C
- .align 2, 0
-_0803B010: .4byte gUnknown_203B3F8
-_0803B014:
- cmp r0, 0x3
- bne _0803B02C
- ldr r0, [r4]
- ldr r1, [r0, 0x8]
- ldr r0, [r0, 0x60]
- strb r0, [r1, 0x3]
-_0803B020:
- movs r0, 0x2
- bl sub_803ACD0
- b _0803B02C
-_0803B028:
- bl sub_803AE58
-_0803B02C:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_803AFE8
-
- thumb_func_start sub_803B034
-sub_803B034:
- push {lr}
- bl sub_8016080
- cmp r0, 0x3
- bhi _0803B04C
- cmp r0, 0x2
- bcc _0803B04C
- bl sub_80160D8
- movs r0, 0x2
- bl sub_803ACD0
-_0803B04C:
- pop {r0}
- bx r0
- thumb_func_end sub_803B034
-
- thumb_func_start sub_803B050
-sub_803B050:
- push {r4-r7,lr}
- ldr r4, _0803B0F4
- movs r0, 0xF4
- lsls r0, 2
- movs r1, 0x8
- bl MemoryAlloc
- str r0, [r4]
- movs r1, 0x3
- str r1, [r0, 0x34]
- adds r1, r0, 0
- adds r1, 0x84
- str r1, [r0, 0x38]
- adds r0, 0x3C
- bl sub_8006518
- ldr r1, [r4]
- ldr r2, [r1, 0x34]
- lsls r0, r2, 1
- adds r0, r2
- lsls r0, 3
- adds r1, r0
- adds r1, 0x3C
- ldr r0, _0803B0F8
- ldm r0!, {r2,r3,r5}
- stm r1!, {r2,r3,r5}
- ldm r0!, {r2,r3,r5}
- stm r1!, {r2,r3,r5}
- ldr r0, [r4]
- ldr r1, [r0, 0x38]
- adds r0, 0x9C
- str r0, [r1, 0x14]
- bl ResetUnusedInputStruct
- ldr r0, [r4]
- adds r0, 0x3C
- movs r1, 0x1
- movs r2, 0x1
- bl sub_800641C
- movs r2, 0
- movs r3, 0
- movs r7, 0xCB
- lsls r7, 1
- movs r6, 0x80
- lsls r6, 9
- movs r5, 0
-_0803B0AE:
- ldr r0, _0803B0FC
- adds r0, r5, r0
- movs r1, 0x2
- ldrsh r0, [r0, r1]
- ldr r4, _0803B0F4
- cmp r0, 0xA
- bne _0803B0C8
- ldr r0, [r4]
- lsls r1, r2, 1
- adds r0, 0xA0
- adds r0, r1
- strh r3, [r0]
- adds r2, 0x1
-_0803B0C8:
- adds r0, r6, 0
- movs r3, 0x80
- lsls r3, 9
- adds r6, r3
- adds r5, 0xC
- asrs r3, r0, 16
- cmp r3, r7
- ble _0803B0AE
- ldr r0, [r4]
- ldr r3, [r0, 0x34]
- adds r1, r2, 0
- movs r2, 0xA
- bl sub_8013818
- bl sub_803B204
- bl sub_803B284
- movs r0, 0x1
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_0803B0F4: .4byte gUnknown_203B3FC
-_0803B0F8: .4byte gUnknown_80E7F54
-_0803B0FC: .4byte gUnknown_812F1F8
- thumb_func_end sub_803B050
-
- thumb_func_start sub_803B100
-sub_803B100:
- push {lr}
- adds r1, r0, 0
- lsls r1, 16
- asrs r1, 16
- ldr r0, _0803B11C
- ldr r0, [r0]
- bl sub_8013878
- bl sub_803B204
- bl sub_803B284
- pop {r0}
- bx r0
- .align 2, 0
-_0803B11C: .4byte gUnknown_203B3FC
- thumb_func_end sub_803B100
-
- thumb_func_start sub_803B120
-sub_803B120:
- push {r4,lr}
- ldr r4, _0803B13C
- ldr r0, [r4]
- bl GetKeyPress
- cmp r0, 0x1
- beq _0803B140
- cmp r0, 0x2
- bne _0803B144
- movs r0, 0x1
- bl sub_80119D4
- movs r0, 0x2
- b _0803B160
- .align 2, 0
-_0803B13C: .4byte gUnknown_203B3FC
-_0803B140:
- movs r0, 0x3
- b _0803B160
-_0803B144:
- ldr r0, [r4]
- movs r1, 0x1
- bl sub_80138B8
- lsls r0, 24
- cmp r0, 0
- bne _0803B156
- movs r0, 0
- b _0803B160
-_0803B156:
- bl sub_803B204
- bl sub_803B284
- movs r0, 0x1
-_0803B160:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_803B120
-
- thumb_func_start sub_803B168
-sub_803B168:
- ldr r0, _0803B188
- ldr r0, [r0]
- movs r1, 0x1E
- ldrsh r2, [r0, r1]
- movs r3, 0x1C
- ldrsh r1, [r0, r3]
- muls r1, r2
- movs r3, 0x18
- ldrsh r2, [r0, r3]
- adds r1, r2
- lsls r1, 1
- adds r0, 0xA0
- adds r0, r1
- movs r1, 0
- ldrsh r0, [r0, r1]
- bx lr
- .align 2, 0
-_0803B188: .4byte gUnknown_203B3FC
- thumb_func_end sub_803B168
-
- thumb_func_start sub_803B18C
-sub_803B18C:
- push {r4,r5,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- ldr r5, _0803B1B8
- ldr r0, [r5]
- movs r1, 0xE5
- strh r1, [r0, 0x22]
- bl sub_8013984
- bl sub_803B204
- bl sub_803B284
- cmp r4, 0
- beq _0803B1B2
- ldr r0, [r5]
- bl AddMenuCursorSprite
-_0803B1B2:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0803B1B8: .4byte gUnknown_203B3FC
- thumb_func_end sub_803B18C
-
- thumb_func_start sub_803B1BC
-sub_803B1BC:
- push {r4,r5,lr}
- ldr r4, _0803B1FC
- ldr r2, [r4]
- cmp r2, 0
- beq _0803B1F6
- ldr r0, [r2, 0x34]
- lsls r1, r0, 1
- adds r1, r0
- lsls r1, 3
- adds r1, r2, r1
- adds r1, 0x3C
- ldr r0, _0803B200
- ldm r0!, {r2,r3,r5}
- stm r1!, {r2,r3,r5}
- ldm r0!, {r2,r3,r5}
- stm r1!, {r2,r3,r5}
- bl ResetUnusedInputStruct
- ldr r0, [r4]
- adds r0, 0x3C
- movs r1, 0x1
- movs r2, 0x1
- bl sub_800641C
- ldr r0, [r4]
- bl MemoryFree
- movs r0, 0
- str r0, [r4]
-_0803B1F6:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0803B1FC: .4byte gUnknown_203B3FC
-_0803B200: .4byte gUnknown_80E7F3C
- thumb_func_end sub_803B1BC
-
- thumb_func_start sub_803B204
-sub_803B204:
- push {r4,lr}
- ldr r4, _0803B280
- ldr r0, [r4]
- adds r0, 0x9C
- movs r2, 0
- movs r1, 0x1
- strb r1, [r0]
- ldr r0, [r4]
- adds r0, 0x9D
- strb r2, [r0]
- ldr r0, [r4]
- adds r0, 0x9E
- movs r1, 0x8
- strb r1, [r0]
- ldr r0, [r4]
- adds r0, 0x9F
- strb r2, [r0]
- bl ResetUnusedInputStruct
- ldr r0, [r4]
- adds r0, 0x3C
- movs r1, 0x1
- movs r2, 0x1
- bl sub_800641C
- ldr r0, [r4]
- movs r1, 0x1A
- ldrsh r0, [r0, r1]
- movs r1, 0xC
- bl sub_80095E4
- adds r0, 0x2
- lsls r0, 16
- ldr r2, [r4]
- ldr r3, [r2, 0x34]
- lsls r1, r3, 1
- adds r1, r3
- lsls r1, 3
- adds r1, r2, r1
- adds r1, 0x4A
- asrs r3, r0, 16
- lsrs r0, 16
- strh r0, [r1]
- ldr r1, [r2, 0x34]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 3
- adds r2, r0
- adds r3, 0x2
- adds r2, 0x4C
- strh r3, [r2]
- bl ResetUnusedInputStruct
- ldr r0, [r4]
- adds r0, 0x3C
- movs r1, 0x1
- movs r2, 0x1
- bl sub_800641C
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0803B280: .4byte gUnknown_203B3FC
- thumb_func_end sub_803B204
-
- thumb_func_start sub_803B284
-sub_803B284:
- push {r4-r6,lr}
- sub sp, 0x8
- ldr r6, _0803B338
- ldr r0, [r6]
- ldr r0, [r0, 0x34]
- bl sub_8008C54
- ldr r0, [r6]
- ldr r0, [r0, 0x34]
- bl sub_80073B8
- ldr r2, _0803B33C
- ldr r0, [r6]
- ldr r3, [r0, 0x34]
- movs r0, 0
- str r0, [sp]
- movs r0, 0xA
- movs r1, 0
- bl xxx_call_draw_string
- ldr r1, [r6]
- adds r0, r1, 0
- adds r0, 0x9E
- ldrb r4, [r0]
- lsls r4, 3
- subs r4, 0x2
- movs r0, 0x1E
- ldrsh r2, [r1, r0]
- adds r2, 0x1
- movs r0, 0x7
- str r0, [sp]
- ldr r0, [r1, 0x34]
- str r0, [sp, 0x4]
- adds r0, r4, 0
- movs r1, 0
- movs r3, 0x2
- bl sub_8012BC4
- movs r5, 0
- ldr r0, [r6]
- movs r1, 0x1A
- ldrsh r0, [r0, r1]
- cmp r5, r0
- bge _0803B324
-_0803B2DC:
- ldr r0, [r6]
- movs r3, 0x1E
- ldrsh r2, [r0, r3]
- movs r3, 0x1C
- ldrsh r1, [r0, r3]
- muls r2, r1
- adds r2, r5
- lsls r2, 1
- adds r1, r0, 0
- adds r1, 0xA0
- adds r1, r2
- movs r2, 0
- ldrsh r1, [r1, r2]
- lsls r4, r1, 1
- adds r4, r1
- lsls r4, 2
- ldr r1, _0803B340
- adds r4, r1
- adds r1, r5, 0
- bl sub_8013800
- adds r1, r0, 0
- ldr r2, [r4, 0x4]
- ldr r0, [r6]
- ldr r3, [r0, 0x34]
- movs r0, 0
- str r0, [sp]
- movs r0, 0x8
- bl xxx_call_draw_string
- adds r5, 0x1
- ldr r0, [r6]
- movs r3, 0x1A
- ldrsh r0, [r0, r3]
- cmp r5, r0
- blt _0803B2DC
-_0803B324:
- ldr r0, _0803B338
- ldr r0, [r0]
- ldr r0, [r0, 0x34]
- bl sub_80073E0
- add sp, 0x8
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0803B338: .4byte gUnknown_203B3FC
-_0803B33C: .4byte gUnknown_80E7F6C
-_0803B340: .4byte gUnknown_812F1F8
- thumb_func_end sub_803B284
-
- thumb_func_start sub_803B344
-sub_803B344:
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- ldr r1, _0803B358
- adds r0, r1
- bx lr
- .align 2, 0
-_0803B358: .4byte gUnknown_80E7F94
- thumb_func_end sub_803B344
-
- thumb_func_start sub_803B35C
-sub_803B35C:
- push {r4,r5,lr}
- adds r5, r0, 0
- adds r4, r1, 0
- adds r1, 0x18
- bl sub_803C21C
- ldrb r0, [r5, 0x2]
- subs r0, 0x1
- cmp r0, 0x8
- bls _0803B372
- b _0803B4FA
-_0803B372:
- lsls r0, 2
- ldr r1, _0803B37C
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0803B37C: .4byte _0803B380
- .align 2, 0
-_0803B380:
- .4byte _0803B3A4
- .4byte _0803B3BE
- .4byte _0803B3D8
- .4byte _0803B3F2
- .4byte _0803B414
- .4byte _0803B442
- .4byte _0803B470
- .4byte _0803B49E
- .4byte _0803B4CC
-_0803B3A4:
- adds r0, r4, 0
- adds r0, 0x40
- movs r1, 0
- strb r1, [r0]
- adds r0, 0x1
- strb r1, [r0]
- adds r1, r4, 0
- adds r1, 0x42
- movs r0, 0x6
- strb r0, [r1]
- subs r1, 0x14
- movs r0, 0x5
- b _0803B576
-_0803B3BE:
- adds r0, r4, 0
- adds r0, 0x40
- movs r1, 0x1
- strb r1, [r0]
- adds r0, 0x1
- strb r1, [r0]
- adds r1, r4, 0
- adds r1, 0x42
- movs r0, 0x6
- strb r0, [r1]
- subs r1, 0x14
- movs r0, 0x5
- b _0803B576
-_0803B3D8:
- adds r0, r4, 0
- adds r0, 0x40
- movs r1, 0x2
- strb r1, [r0]
- adds r0, 0x1
- strb r1, [r0]
- adds r1, r4, 0
- adds r1, 0x42
- movs r0, 0x6
- strb r0, [r1]
- subs r1, 0x14
- movs r0, 0x5
- b _0803B576
-_0803B3F2:
- adds r0, r4, 0
- adds r0, 0x40
- movs r1, 0x3
- strb r1, [r0]
- adds r0, 0x1
- strb r1, [r0]
- adds r1, r4, 0
- adds r1, 0x42
- movs r0, 0x6
- strb r0, [r1]
- bl sub_8096DD8
- str r0, [r4, 0x4C]
- bl sub_8096DE8
- str r0, [r4, 0x50]
- b _0803B578
-_0803B414:
- ldrb r0, [r5, 0x1]
- cmp r0, 0x3
- bne _0803B42A
- adds r0, r4, 0
- adds r0, 0x40
- movs r1, 0xB
- strb r1, [r0]
- adds r1, r4, 0
- adds r1, 0x42
- movs r0, 0x1
- b _0803B438
-_0803B42A:
- adds r0, r4, 0
- adds r0, 0x40
- movs r1, 0xC
- strb r1, [r0]
- adds r1, r4, 0
- adds r1, 0x42
- movs r0, 0x2
-_0803B438:
- strb r0, [r1]
- adds r1, r4, 0
- adds r1, 0x41
- movs r0, 0x4
- b _0803B576
-_0803B442:
- ldrb r0, [r5, 0x1]
- cmp r0, 0x3
- bne _0803B458
- adds r0, r4, 0
- adds r0, 0x40
- movs r1, 0xB
- strb r1, [r0]
- adds r1, r4, 0
- adds r1, 0x42
- movs r0, 0x1
- b _0803B466
-_0803B458:
- adds r0, r4, 0
- adds r0, 0x40
- movs r1, 0xC
- strb r1, [r0]
- adds r1, r4, 0
- adds r1, 0x42
- movs r0, 0x2
-_0803B466:
- strb r0, [r1]
- adds r1, r4, 0
- adds r1, 0x41
- movs r0, 0x5
- b _0803B576
-_0803B470:
- adds r0, r5, 0
- bl sub_803B600
- str r0, [r4, 0x4]
- movs r1, 0x1
- negs r1, r1
- cmp r0, r1
- bne _0803B488
- adds r1, r4, 0
- adds r1, 0x40
- movs r0, 0x9
- b _0803B48E
-_0803B488:
- adds r1, r4, 0
- adds r1, 0x40
- movs r0, 0x4
-_0803B48E:
- strb r0, [r1]
- adds r1, r4, 0
- adds r1, 0x41
- movs r0, 0x6
- strb r0, [r1]
- adds r1, 0x1
- movs r0, 0x4
- b _0803B576
-_0803B49E:
- adds r0, r5, 0
- bl sub_803B628
- str r0, [r4, 0x4]
- movs r1, 0x1
- negs r1, r1
- cmp r0, r1
- bne _0803B4B6
- adds r1, r4, 0
- adds r1, 0x40
- movs r0, 0x9
- b _0803B4BC
-_0803B4B6:
- adds r1, r4, 0
- adds r1, 0x40
- movs r0, 0x5
-_0803B4BC:
- strb r0, [r1]
- adds r1, r4, 0
- adds r1, 0x41
- movs r0, 0x7
- strb r0, [r1]
- adds r1, 0x1
- movs r0, 0x4
- b _0803B576
-_0803B4CC:
- adds r0, r5, 0
- bl sub_803B66C
- str r0, [r4, 0x4]
- movs r1, 0x1
- negs r1, r1
- cmp r0, r1
- bne _0803B4E4
- adds r1, r4, 0
- adds r1, 0x40
- movs r0, 0xA
- b _0803B4EA
-_0803B4E4:
- adds r1, r4, 0
- adds r1, 0x40
- movs r0, 0x6
-_0803B4EA:
- strb r0, [r1]
- adds r1, r4, 0
- adds r1, 0x41
- movs r0, 0x8
- strb r0, [r1]
- adds r1, 0x1
- movs r0, 0x5
- b _0803B576
-_0803B4FA:
- ldrb r0, [r5, 0x1]
- cmp r0, 0x2
- beq _0803B528
- cmp r0, 0x2
- bgt _0803B50A
- cmp r0, 0x1
- beq _0803B514
- b _0803B564
-_0803B50A:
- cmp r0, 0x3
- beq _0803B53C
- cmp r0, 0x4
- beq _0803B550
- b _0803B564
-_0803B514:
- adds r1, r4, 0
- adds r1, 0x40
- movs r0, 0x9
- strb r0, [r1]
- adds r1, 0x1
- movs r0, 0xD
- strb r0, [r1]
- adds r1, 0x1
- movs r0, 0x4
- b _0803B576
-_0803B528:
- adds r1, r4, 0
- adds r1, 0x40
- movs r0, 0xA
- strb r0, [r1]
- adds r1, 0x1
- movs r0, 0xE
- strb r0, [r1]
- adds r1, 0x1
- movs r0, 0x5
- b _0803B576
-_0803B53C:
- adds r1, r4, 0
- adds r1, 0x40
- movs r0, 0xB
- strb r0, [r1]
- adds r1, 0x1
- movs r0, 0xF
- strb r0, [r1]
- adds r1, 0x1
- movs r0, 0x1
- b _0803B576
-_0803B550:
- adds r1, r4, 0
- adds r1, 0x40
- movs r0, 0xC
- strb r0, [r1]
- adds r1, 0x1
- movs r0, 0x10
- strb r0, [r1]
- adds r1, 0x1
- movs r0, 0x2
- b _0803B576
-_0803B564:
- adds r1, r4, 0
- adds r1, 0x40
- movs r0, 0x8
- strb r0, [r1]
- adds r1, 0x1
- movs r0, 0xC
- strb r0, [r1]
- adds r1, 0x1
- movs r0, 0x3
-_0803B576:
- strb r0, [r1]
-_0803B578:
- adds r0, r5, 0x4
- str r0, [r4, 0x8]
- movs r0, 0
- str r0, [r4, 0xC]
- ldrh r0, [r5, 0xC]
- movs r1, 0
- strh r0, [r4, 0x10]
- ldrh r0, [r5, 0xE]
- strh r0, [r4, 0x12]
- ldrb r0, [r5, 0x10]
- strb r0, [r4, 0x14]
- ldrb r0, [r5]
- subs r0, 0x2
- cmp r0, 0x7
- bhi _0803B5EC
- lsls r0, 2
- ldr r1, _0803B5A0
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0803B5A0: .4byte _0803B5A4
- .align 2, 0
-_0803B5A4:
- .4byte _0803B5C4
- .4byte _0803B5C4
- .4byte _0803B5C4
- .4byte _0803B5C4
- .4byte _0803B5DC
- .4byte _0803B5CC
- .4byte _0803B5DC
- .4byte _0803B5DC
-_0803B5C4:
- adds r0, r4, 0
- adds r0, 0x43
- movs r1, 0x1
- b _0803B5F0
-_0803B5CC:
- adds r1, r4, 0
- adds r1, 0x43
- movs r0, 0
- strb r0, [r1]
- adds r1, 0x1
- movs r0, 0x3
- strb r0, [r1]
- b _0803B5F6
-_0803B5DC:
- adds r1, r4, 0
- adds r1, 0x43
- movs r0, 0x3
- strb r0, [r1]
- adds r1, 0x1
- movs r0, 0x2
- strb r0, [r1]
- b _0803B5F6
-_0803B5EC:
- adds r0, r4, 0
- adds r0, 0x43
-_0803B5F0:
- strb r1, [r0]
- adds r0, 0x1
- strb r1, [r0]
-_0803B5F6:
- str r5, [r4, 0x54]
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_803B35C
-
- thumb_func_start sub_803B600
-sub_803B600:
- push {lr}
- ldr r2, _0803B614
- movs r1, 0
- ldr r3, [r0, 0xC]
-_0803B608:
- ldr r0, [r2]
- cmp r0, r3
- bne _0803B618
- adds r0, r1, 0
- b _0803B624
- .align 2, 0
-_0803B614: .4byte gUnknown_80E9920
-_0803B618:
- adds r2, 0x8
- adds r1, 0x1
- cmp r1, 0x14
- ble _0803B608
- movs r0, 0x1
- negs r0, r0
-_0803B624:
- pop {r1}
- bx r1
- thumb_func_end sub_803B600
-
- thumb_func_start sub_803B628
-sub_803B628:
- push {r4,r5,lr}
- adds r4, r0, 0
- ldr r2, _0803B654
- movs r3, 0
-_0803B630:
- ldr r1, [r2]
- ldr r0, [r4, 0xC]
- cmp r1, r0
- beq _0803B650
- movs r0, 0x2
- ldrsh r1, [r2, r0]
- movs r5, 0xC
- ldrsh r0, [r4, r5]
- cmp r1, r0
- bne _0803B658
- movs r0, 0
- ldrsh r1, [r2, r0]
- movs r5, 0xE
- ldrsh r0, [r4, r5]
- cmp r1, r0
- bne _0803B658
-_0803B650:
- adds r0, r3, 0
- b _0803B664
- .align 2, 0
-_0803B654: .4byte gUnknown_80E9F8C
-_0803B658:
- adds r2, 0xC
- adds r3, 0x1
- cmp r3, 0x2C
- ble _0803B630
- movs r0, 0x1
- negs r0, r0
-_0803B664:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_803B628
-
- thumb_func_start sub_803B66C
-sub_803B66C:
- push {r4,r5,lr}
- adds r4, r0, 0
- ldr r2, _0803B698
- movs r3, 0
-_0803B674:
- ldr r1, [r2]
- ldr r0, [r4, 0xC]
- cmp r1, r0
- beq _0803B694
- movs r0, 0x2
- ldrsh r1, [r2, r0]
- movs r5, 0xC
- ldrsh r0, [r4, r5]
- cmp r1, r0
- bne _0803B69C
- movs r0, 0
- ldrsh r1, [r2, r0]
- movs r5, 0xE
- ldrsh r0, [r4, r5]
- cmp r1, r0
- bne _0803B69C
-_0803B694:
- adds r0, r3, 0
- b _0803B6A8
- .align 2, 0
-_0803B698: .4byte gUnknown_80E8168
-_0803B69C:
- adds r2, 0x4
- adds r3, 0x1
- cmp r3, 0x5
- ble _0803B674
- movs r0, 0x1
- negs r0, r0
-_0803B6A8:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_803B66C
-
- thumb_func_start sub_803B6B0
-sub_803B6B0:
- push {r4,lr}
- sub sp, 0x4
- lsls r2, 24
- ldr r4, _0803B6D0
- lsrs r2, 22
- adds r2, r4
- ldr r2, [r2]
- movs r4, 0
- str r4, [sp]
- bl xxx_call_draw_string
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0803B6D0: .4byte gUnknown_80E8B94
- thumb_func_end sub_803B6B0
-
- thumb_func_start sub_803B6D4
-sub_803B6D4:
- push {r4-r7,lr}
- sub sp, 0x144
- adds r7, r0, 0
- ldr r1, [r7, 0x48]
- adds r0, 0x43
- ldrb r2, [r0]
- ldr r3, [r7]
- movs r0, 0xA
- bl sub_803B6B0
- adds r0, r7, 0
- adds r0, 0x40
- ldrb r0, [r0]
- cmp r0, 0xC
- bls _0803B6F4
- b _0803B86C
-_0803B6F4:
- lsls r0, 2
- ldr r1, _0803B700
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0803B700: .4byte _0803B704
- .align 2, 0
-_0803B704:
- .4byte _0803B73E
- .4byte _0803B748
- .4byte _0803B754
- .4byte _0803B738
- .4byte _0803B7A4
- .4byte _0803B7B0
- .4byte _0803B7C8
- .4byte _0803B760
- .4byte _0803B86C
- .4byte _0803B818
- .4byte _0803B7E0
- .4byte _0803B788
- .4byte _0803B76A
-_0803B738:
- ldr r1, [r7, 0x48]
- ldr r2, [r7, 0x4C]
- b _0803B7CC
-_0803B73E:
- ldr r1, [r7, 0x48]
- ldr r2, _0803B744
- b _0803B7CC
- .align 2, 0
-_0803B744: .4byte gMankeyMission
-_0803B748:
- ldr r1, [r7, 0x48]
- ldr r2, _0803B750
- b _0803B7CC
- .align 2, 0
-_0803B750: .4byte gSmeargleMission
-_0803B754:
- ldr r1, [r7, 0x48]
- ldr r2, _0803B75C
- b _0803B7CC
- .align 2, 0
-_0803B75C: .4byte gMedichamMission
-_0803B760:
- ldr r1, [r7, 0x8]
- add r0, sp, 0x4
- bl sub_8090208
- b _0803B850
-_0803B76A:
- ldr r4, _0803B780
- ldrb r1, [r7, 0x14]
- adds r0, r4, 0
- movs r2, 0
- bl sub_8090DC4
- ldr r1, _0803B784
- add r0, sp, 0x4
- adds r2, r4, 0
- b _0803B84C
- .align 2, 0
-_0803B780: .4byte gUnknown_202DE58
-_0803B784: .4byte gUnknown_80E8830
-_0803B788:
- ldr r4, _0803B79C
- ldrb r1, [r7, 0x14]
- adds r0, r4, 0
- movs r2, 0
- bl sub_8090DC4
- ldr r1, _0803B7A0
- add r0, sp, 0x4
- adds r2, r4, 0
- b _0803B84C
- .align 2, 0
-_0803B79C: .4byte gUnknown_202DE58
-_0803B7A0: .4byte gUnknown_80E8848
-_0803B7A4:
- ldr r1, [r7, 0x48]
- ldr r2, _0803B7AC
- b _0803B7CC
- .align 2, 0
-_0803B7AC: .4byte gUnknown_80E885C
-_0803B7B0:
- ldr r1, [r7, 0x48]
- ldr r3, _0803B7C4
- ldr r2, [r7, 0x4]
- lsls r0, r2, 1
- adds r0, r2
- lsls r0, 2
- adds r3, 0x4
- adds r0, r3
- ldr r2, [r0]
- b _0803B7CC
- .align 2, 0
-_0803B7C4: .4byte gUnknown_80E9F8C
-_0803B7C8:
- ldr r1, [r7, 0x48]
- ldr r2, _0803B7DC
-_0803B7CC:
- ldr r3, [r7]
- movs r0, 0
- str r0, [sp]
- movs r0, 0x15
- bl xxx_call_draw_string
- b _0803B8B4
- .align 2, 0
-_0803B7DC: .4byte gUnknown_80E886C
-_0803B7E0:
- ldr r0, [r7, 0x8]
- ldr r4, [r0, 0x4]
- ldrb r0, [r0]
- adds r4, r0
- lsls r4, 24
- lsrs r4, 24
- movs r1, 0x12
- ldrsh r0, [r7, r1]
- bl sub_808D994
- adds r1, r0, 0
- ldr r5, _0803B810
- adds r0, r5, 0
- bl strcpy
- ldr r1, _0803B814
- movs r0, 0x3
- ands r4, r0
- lsls r4, 2
- adds r4, r1
- ldr r1, [r4]
- add r0, sp, 0x4
- adds r2, r5, 0
- b _0803B84C
- .align 2, 0
-_0803B810: .4byte gUnknown_202DF98
-_0803B814: .4byte gUnknown_80EAE5C
-_0803B818:
- ldr r0, [r7, 0x8]
- ldr r4, [r0, 0x4]
- ldrb r0, [r0]
- adds r4, r0
- lsls r4, 24
- lsrs r4, 24
- movs r1, 0x12
- ldrsh r0, [r7, r1]
- bl sub_808D994
- adds r1, r0, 0
- ldr r6, _0803B864
- adds r0, r6, 0
- bl strcpy
- ldr r5, _0803B868
- adds r0, r4, 0
- movs r1, 0xA
- bl __umodsi3
- lsls r0, 24
- lsrs r0, 22
- adds r0, r5
- ldr r1, [r0]
- add r0, sp, 0x4
- adds r2, r6, 0
-_0803B84C:
- bl sub_800D158
-_0803B850:
- ldr r1, [r7, 0x48]
- ldr r3, [r7]
- movs r0, 0
- str r0, [sp]
- movs r0, 0x15
- add r2, sp, 0x4
- bl xxx_call_draw_string
- b _0803B8B4
- .align 2, 0
-_0803B864: .4byte gUnknown_202DF98
-_0803B868: .4byte gUnknown_80E910C
-_0803B86C:
- ldr r0, [r7, 0x8]
- ldr r4, [r0, 0x4]
- ldrb r0, [r0]
- adds r4, r0
- lsls r4, 24
- lsrs r4, 24
- movs r1, 0x12
- ldrsh r0, [r7, r1]
- bl sub_808D994
- adds r1, r0, 0
- ldr r6, _0803B8E8
- adds r0, r6, 0
- bl strcpy
- ldr r5, _0803B8EC
- adds r0, r4, 0
- movs r1, 0xF
- bl __umodsi3
- lsls r0, 24
- lsrs r0, 22
- adds r0, r5
- ldr r1, [r0]
- add r0, sp, 0x4
- adds r2, r6, 0
- bl sub_800D158
- ldr r1, [r7, 0x48]
- ldr r3, [r7]
- movs r0, 0
- str r0, [sp]
- movs r0, 0x15
- add r2, sp, 0x4
- bl xxx_call_draw_string
-_0803B8B4:
- adds r0, r7, 0
- adds r0, 0x40
- ldrb r1, [r0]
- adds r6, r0, 0
- cmp r1, 0x7
- bne _0803B916
- ldr r5, [r7, 0xC]
- cmp r5, 0
- bne _0803B8F0
- bl sub_8016028
- movs r4, 0xB2
- subs r4, r0
- movs r1, 0x10
- ldrsh r0, [r7, r1]
- bl sub_808D994
- adds r2, r0, 0
- ldr r1, [r7, 0x48]
- ldr r3, [r7]
- str r5, [sp]
- adds r0, r4, 0
- bl xxx_call_draw_string
- b _0803B956
- .align 2, 0
-_0803B8E8: .4byte gUnknown_202DF98
-_0803B8EC: .4byte gUnknown_80E8C98
-_0803B8F0:
- add r4, sp, 0xCC
- adds r0, r4, 0
- adds r1, r5, 0
- movs r2, 0xA
- bl sub_80922B4
- bl sub_8016028
- adds r1, r0, 0
- movs r0, 0xB2
- subs r0, r1
- ldr r1, [r7, 0x48]
- ldr r3, [r7]
- movs r2, 0
- str r2, [sp]
- adds r2, r4, 0
- bl xxx_call_draw_string
- b _0803B956
-_0803B916:
- adds r0, r7, 0
- adds r0, 0x42
- ldrb r0, [r0]
- cmp r0, 0x1
- bne _0803B93C
- add r4, sp, 0xE0
- ldr r1, [r7, 0x8]
- adds r0, r4, 0
- bl sub_8090228
- ldr r1, _0803B938
- add r0, sp, 0x4
- adds r2, r4, 0
- bl sub_800D158
- b _0803B944
- .align 2, 0
-_0803B938: .4byte gUnknown_80E8884
-_0803B93C:
- ldr r1, [r7, 0x8]
- add r0, sp, 0x4
- bl sub_8090228
-_0803B944:
- ldr r1, [r7, 0x48]
- adds r1, 0xC
- ldr r3, [r7]
- movs r0, 0
- str r0, [sp]
- movs r0, 0x1D
- add r2, sp, 0x4
- bl xxx_call_draw_string
-_0803B956:
- ldrb r0, [r6]
- cmp r0, 0x7
- bne _0803B962
- ldr r0, [r7, 0x8]
- movs r1, 0
- b _0803B968
-_0803B962:
- ldr r0, [r7, 0x8]
- ldr r1, [r7, 0x54]
- ldrb r1, [r1, 0x1]
-_0803B968:
- bl sub_803C1D0
- lsls r0, 24
- lsrs r0, 24
- bl sub_803C1F0
- adds r2, r0, 0
- ldr r1, [r7, 0x48]
- ldr r3, [r7]
- movs r0, 0
- str r0, [sp]
- movs r0, 0xB4
- bl xxx_call_draw_string
- add sp, 0x144
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_803B6D4
-
- thumb_func_start sub_803B98C
-sub_803B98C:
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- sub sp, 0x1FC
- adds r7, r0, 0
- movs r0, 0
- mov r9, r0
- ldr r2, _0803B9E0
- ldr r3, [r7]
- str r0, [sp]
- movs r0, 0xA
- movs r1, 0
- bl xxx_call_draw_string
- ldr r1, _0803B9E4
- adds r0, r7, 0
- adds r0, 0x44
- ldrb r0, [r0]
- lsls r0, 2
- adds r0, r1
- ldr r2, [r0]
- ldr r3, [r7]
- mov r1, r9
- str r1, [sp]
- movs r0, 0x6C
- movs r1, 0
- bl xxx_call_draw_string
- movs r0, 0x10
- mov r9, r0
- adds r0, r7, 0
- adds r0, 0x41
- ldrb r0, [r0]
- cmp r0, 0x10
- bls _0803B9D6
- b _0803BCC0
-_0803B9D6:
- lsls r0, 2
- ldr r1, _0803B9E8
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0803B9E0: .4byte gUnknown_80E888C
-_0803B9E4: .4byte gUnknown_80E8BCC
-_0803B9E8: .4byte _0803B9EC
- .align 2, 0
-_0803B9EC:
- .4byte _0803BA34
- .4byte _0803BA3C
- .4byte _0803BA44
- .4byte _0803BA30
- .4byte _0803BA4C
- .4byte _0803BA6C
- .4byte _0803BA8C
- .4byte _0803BAA0
- .4byte _0803BBF0
- .4byte _0803BAE8
- .4byte _0803BAF0
- .4byte _0803BAF8
- .4byte _0803BCC0
- .4byte _0803BC58
- .4byte _0803BB74
- .4byte _0803BB10
- .4byte _0803BB10
-_0803BA30:
- ldr r2, [r7, 0x50]
- b _0803BAFA
-_0803BA34:
- ldr r2, _0803BA38
- b _0803BAFA
- .align 2, 0
-_0803BA38: .4byte gUnknown_80E88A0
-_0803BA3C:
- ldr r2, _0803BA40
- b _0803BAFA
- .align 2, 0
-_0803BA40: .4byte gUnknown_80E88C8
-_0803BA44:
- ldr r2, _0803BA48
- b _0803BAFA
- .align 2, 0
-_0803BA48: .4byte gUnknown_80E8920
-_0803BA4C:
- ldr r4, _0803BA64
- ldrb r1, [r7, 0x14]
- adds r0, r4, 0
- movs r2, 0
- bl sub_8090DC4
- ldr r1, _0803BA68
- add r0, sp, 0x4
- adds r2, r4, 0
- bl sub_800D158
- b _0803BACC
- .align 2, 0
-_0803BA64: .4byte gUnknown_202DE58
-_0803BA68: .4byte gUnknown_80E8968
-_0803BA6C:
- ldr r4, _0803BA84
- ldrb r1, [r7, 0x14]
- adds r0, r4, 0
- movs r2, 0
- bl sub_8090DC4
- ldr r1, _0803BA88
- add r0, sp, 0x4
- adds r2, r4, 0
- bl sub_800D158
- b _0803BACC
- .align 2, 0
-_0803BA84: .4byte gUnknown_202DE58
-_0803BA88: .4byte gUnknown_80E89B0
-_0803BA8C:
- ldr r1, _0803BA9C
- ldr r0, [r7, 0x4]
- lsls r0, 3
- adds r1, 0x4
- adds r0, r1
- ldr r2, [r0]
- b _0803BAFA
- .align 2, 0
-_0803BA9C: .4byte gUnknown_80E9920
-_0803BAA0:
- movs r1, 0x12
- ldrsh r0, [r7, r1]
- bl sub_808D994
- adds r1, r0, 0
- ldr r4, _0803BAE0
- adds r0, r4, 0
- bl strcpy
- ldr r2, _0803BAE4
- ldr r1, [r7, 0x4]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r2, 0x8
- adds r0, r2
- ldr r1, [r0]
- add r0, sp, 0x4
- adds r2, r4, 0
- adds r3, r4, 0
- bl sub_800D158
-_0803BACC:
- ldr r3, [r7]
- movs r0, 0
- str r0, [sp]
- movs r0, 0xA
- mov r1, r9
- add r2, sp, 0x4
- bl xxx_call_draw_string
- b _0803BD42
- .align 2, 0
-_0803BAE0: .4byte gUnknown_202DF98
-_0803BAE4: .4byte gUnknown_80E9F8C
-_0803BAE8:
- ldr r2, _0803BAEC
- b _0803BAFA
- .align 2, 0
-_0803BAEC: .4byte gUnknown_80E89FC
-_0803BAF0:
- ldr r2, _0803BAF4
- b _0803BAFA
- .align 2, 0
-_0803BAF4: .4byte gUnknown_80E8A40
-_0803BAF8:
- ldr r2, _0803BB0C
-_0803BAFA:
- ldr r3, [r7]
- movs r0, 0
- str r0, [sp]
- movs r0, 0xA
- mov r1, r9
- bl xxx_call_draw_string
- b _0803BD42
- .align 2, 0
-_0803BB0C: .4byte gUnknown_80E8A7C
-_0803BB10:
- ldr r0, [r7, 0x8]
- ldr r5, [r0, 0x4]
- ldrb r4, [r0]
- adds r4, r5, r4
- lsls r4, 24
- lsrs r4, 24
- ldrb r0, [r0, 0x1]
- adds r5, r0
- lsls r5, 24
- lsrs r5, 24
- ldr r0, _0803BB68
- mov r8, r0
- ldrb r1, [r7, 0x14]
- movs r2, 0
- bl sub_8090DC4
- ldr r6, _0803BB6C
- adds r0, r4, 0
- movs r1, 0x16
- bl __umodsi3
- lsls r0, 24
- lsrs r0, 22
- adds r0, r6
- ldr r1, [r0]
- add r0, sp, 0x4
- mov r2, r8
- bl sub_800D158
- ldr r3, [r7]
- movs r6, 0
- str r6, [sp]
- movs r0, 0xA
- mov r1, r9
- add r2, sp, 0x4
- bl xxx_call_draw_string
- movs r1, 0xC
- add r9, r1
- ldr r4, _0803BB70
- adds r0, r5, 0
- movs r1, 0x16
- b _0803BD1A
- .align 2, 0
-_0803BB68: .4byte gUnknown_202DE58
-_0803BB6C: .4byte gUnknown_80EB3F8
-_0803BB70: .4byte gUnknown_80EB72C
-_0803BB74:
- ldr r0, [r7, 0x8]
- ldr r5, [r0, 0x4]
- ldrb r4, [r0]
- adds r4, r5, r4
- lsls r4, 24
- lsrs r4, 24
- ldrb r0, [r0, 0x1]
- adds r5, r0
- lsls r5, 24
- lsrs r5, 24
- movs r1, 0x12
- ldrsh r0, [r7, r1]
- bl sub_808D994
- adds r1, r0, 0
- ldr r0, _0803BBE4
- mov r8, r0
- bl strcpy
- ldr r6, _0803BBE8
- adds r0, r4, 0
- movs r1, 0x14
- bl __umodsi3
- lsls r0, 24
- lsrs r0, 22
- adds r0, r6
- ldr r1, [r0]
- add r0, sp, 0x4
- mov r2, r8
- bl sub_800D158
- ldr r3, [r7]
- movs r4, 0
- str r4, [sp]
- movs r0, 0xA
- mov r1, r9
- add r2, sp, 0x4
- bl xxx_call_draw_string
- movs r1, 0xC
- add r9, r1
- ldr r1, _0803BBEC
- movs r0, 0x3
- ands r5, r0
- lsls r5, 2
- adds r5, r1
- ldr r1, [r5]
- add r0, sp, 0x4
- mov r2, r8
- bl sub_800D158
- ldr r3, [r7]
- str r4, [sp]
- b _0803BD32
- .align 2, 0
-_0803BBE4: .4byte gUnknown_202DF98
-_0803BBE8: .4byte gUnknown_80EAEB8
-_0803BBEC: .4byte gUnknown_80EB198
-_0803BBF0:
- ldr r0, [r7, 0x8]
- ldr r5, [r0, 0x4]
- ldrb r4, [r0]
- adds r4, r5, r4
- lsls r4, 24
- lsrs r4, 24
- ldrb r0, [r0, 0x1]
- adds r5, r0
- lsls r5, 24
- lsrs r5, 24
- movs r1, 0x12
- ldrsh r0, [r7, r1]
- bl sub_808D994
- adds r1, r0, 0
- ldr r0, _0803BC4C
- mov r8, r0
- bl strcpy
- ldr r6, _0803BC50
- adds r0, r4, 0
- movs r1, 0x6
- bl __umodsi3
- lsls r0, 24
- lsrs r0, 22
- adds r0, r6
- ldr r1, [r0]
- add r0, sp, 0x4
- mov r2, r8
- bl sub_800D158
- ldr r3, [r7]
- movs r6, 0
- str r6, [sp]
- movs r0, 0xA
- mov r1, r9
- add r2, sp, 0x4
- bl xxx_call_draw_string
- movs r1, 0xC
- add r9, r1
- ldr r4, _0803BC54
- adds r0, r5, 0
- movs r1, 0x6
- b _0803BD1A
- .align 2, 0
-_0803BC4C: .4byte gUnknown_202DF98
-_0803BC50: .4byte gUnknown_80EB220
-_0803BC54: .4byte gUnknown_80EB2F0
-_0803BC58:
- ldr r0, [r7, 0x8]
- ldr r5, [r0, 0x4]
- ldrb r4, [r0]
- adds r4, r5, r4
- lsls r4, 24
- lsrs r4, 24
- ldrb r0, [r0, 0x1]
- adds r5, r0
- lsls r5, 24
- lsrs r5, 24
- movs r1, 0x12
- ldrsh r0, [r7, r1]
- bl sub_808D994
- adds r1, r0, 0
- ldr r0, _0803BCB4
- mov r8, r0
- bl strcpy
- ldr r6, _0803BCB8
- adds r0, r4, 0
- movs r1, 0x2D
- bl __umodsi3
- lsls r0, 24
- lsrs r0, 22
- adds r0, r6
- ldr r1, [r0]
- add r0, sp, 0x4
- mov r2, r8
- bl sub_800D158
- ldr r3, [r7]
- movs r6, 0
- str r6, [sp]
- movs r0, 0xA
- mov r1, r9
- add r2, sp, 0x4
- bl xxx_call_draw_string
- movs r1, 0xC
- add r9, r1
- ldr r4, _0803BCBC
- adds r0, r5, 0
- movs r1, 0xA
- b _0803BD1A
- .align 2, 0
-_0803BCB4: .4byte gUnknown_202DF98
-_0803BCB8: .4byte gUnknown_80E91D4
-_0803BCBC: .4byte gUnknown_80E9820
-_0803BCC0:
- ldr r0, [r7, 0x8]
- ldr r5, [r0, 0x4]
- ldrb r4, [r0]
- adds r4, r5, r4
- lsls r4, 24
- lsrs r4, 24
- ldrb r0, [r0, 0x1]
- adds r5, r0
- lsls r5, 24
- lsrs r5, 24
- movs r1, 0x10
- ldrsh r0, [r7, r1]
- bl sub_808D994
- adds r1, r0, 0
- ldr r0, _0803BD78
- mov r8, r0
- bl strcpy
- ldr r6, _0803BD7C
- adds r0, r4, 0
- movs r1, 0xD
- bl __umodsi3
- lsls r0, 24
- lsrs r0, 22
- adds r0, r6
- ldr r1, [r0]
- add r0, sp, 0x4
- mov r2, r8
- bl sub_800D158
- ldr r3, [r7]
- movs r6, 0
- str r6, [sp]
- movs r0, 0xA
- mov r1, r9
- add r2, sp, 0x4
- bl xxx_call_draw_string
- movs r1, 0xC
- add r9, r1
- ldr r4, _0803BD80
- adds r0, r5, 0
- movs r1, 0xD
-_0803BD1A:
- bl __umodsi3
- lsls r0, 24
- lsrs r0, 22
- adds r0, r4
- ldr r1, [r0]
- add r0, sp, 0x4
- mov r2, r8
- bl sub_800D158
- ldr r3, [r7]
- str r6, [sp]
-_0803BD32:
- movs r0, 0xA
- mov r1, r9
- add r2, sp, 0x4
- bl xxx_call_draw_string
- movs r0, 0xC
- negs r0, r0
- add r9, r0
-_0803BD42:
- movs r1, 0x1C
- add r9, r1
- ldr r2, _0803BD84
- ldr r3, [r7]
- movs r0, 0
- mov r8, r0
- str r0, [sp]
- movs r0, 0xA
- mov r1, r9
- bl xxx_call_draw_string
- ldr r1, [r7, 0xC]
- cmp r1, 0
- bne _0803BD88
- movs r1, 0x10
- ldrsh r0, [r7, r1]
- bl sub_808D994
- adds r2, r0, 0
- ldr r3, [r7]
- mov r0, r8
- str r0, [sp]
- movs r0, 0x44
- mov r1, r9
- bl xxx_call_draw_string
- b _0803BDBC
- .align 2, 0
-_0803BD78: .4byte gUnknown_202DF98
-_0803BD7C: .4byte gUnknown_80E8DE4
-_0803BD80: .4byte gUnknown_80E8FB0
-_0803BD84: .4byte gUnknown_80E8AC8
-_0803BD88:
- add r6, sp, 0x158
- adds r0, r6, 0
- movs r2, 0xA
- bl sub_80922B4
- add r4, sp, 0x16C
- movs r0, 0x10
- ldrsh r1, [r7, r0]
- adds r0, r4, 0
- bl sub_808D930
- add r5, sp, 0x130
- ldr r1, _0803BDE8
- adds r0, r5, 0
- adds r2, r6, 0
- adds r3, r4, 0
- bl sub_800D158
- ldr r3, [r7]
- mov r1, r8
- str r1, [sp]
- movs r0, 0x44
- mov r1, r9
- adds r2, r5, 0
- bl xxx_call_draw_string
-_0803BDBC:
- movs r0, 0xC
- add r9, r0
- ldr r2, _0803BDEC
- ldr r3, [r7]
- movs r0, 0
- str r0, [sp]
- movs r0, 0xA
- mov r1, r9
- bl xxx_call_draw_string
- adds r0, r7, 0
- adds r0, 0x42
- ldrb r1, [r0]
- adds r5, r0, 0
- cmp r1, 0x6
- bhi _0803BEB8
- lsls r0, r1, 2
- ldr r1, _0803BDF0
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0803BDE8: .4byte gUnknown_80E8AD0
-_0803BDEC: .4byte gUnknown_80E8AE0
-_0803BDF0: .4byte _0803BDF4
- .align 2, 0
-_0803BDF4:
- .4byte _0803BE10
- .4byte _0803BE30
- .4byte _0803BE18
- .4byte _0803BE48
- .4byte _0803BE80
- .4byte _0803BE60
- .4byte _0803BEB8
-_0803BE10:
- ldr r2, _0803BE14
- b _0803BE4A
- .align 2, 0
-_0803BE14: .4byte gUnknown_80E8AEC
-_0803BE18:
- ldr r4, _0803BE28
- ldrb r1, [r7, 0x14]
- adds r0, r4, 0
- movs r2, 0
- bl sub_8090DC4
- ldr r1, _0803BE2C
- b _0803BE94
- .align 2, 0
-_0803BE28: .4byte gUnknown_202DE58
-_0803BE2C: .4byte gUnknown_80E8AFC
-_0803BE30:
- ldr r4, _0803BE40
- ldrb r1, [r7, 0x14]
- adds r0, r4, 0
- movs r2, 0
- bl sub_8090DC4
- ldr r1, _0803BE44
- b _0803BE94
- .align 2, 0
-_0803BE40: .4byte gUnknown_202DE58
-_0803BE44: .4byte gUnknown_80E8B10
-_0803BE48:
- ldr r2, _0803BE5C
-_0803BE4A:
- ldr r3, [r7]
- movs r0, 0
- str r0, [sp]
- movs r0, 0x44
- mov r1, r9
- bl xxx_call_draw_string
- b _0803BEC8
- .align 2, 0
-_0803BE5C: .4byte gUnknown_80E8B20
-_0803BE60:
- movs r1, 0x12
- ldrsh r0, [r7, r1]
- bl sub_808D994
- adds r1, r0, 0
- ldr r4, _0803BE78
- adds r0, r4, 0
- bl strcpy
- ldr r1, _0803BE7C
- b _0803BE94
- .align 2, 0
-_0803BE78: .4byte gUnknown_202DF98
-_0803BE7C: .4byte gUnknown_80E8B2C
-_0803BE80:
- movs r1, 0x12
- ldrsh r0, [r7, r1]
- bl sub_808D994
- adds r1, r0, 0
- ldr r4, _0803BEB0
- adds r0, r4, 0
- bl strcpy
- ldr r1, _0803BEB4
-_0803BE94:
- add r0, sp, 0x4
- adds r2, r4, 0
- bl sub_800D158
- ldr r3, [r7]
- movs r0, 0
- str r0, [sp]
- movs r0, 0x44
- mov r1, r9
- add r2, sp, 0x4
- bl xxx_call_draw_string
- b _0803BEC8
- .align 2, 0
-_0803BEB0: .4byte gUnknown_202DF98
-_0803BEB4: .4byte gUnknown_80E8B40
-_0803BEB8:
- ldr r2, _0803BEF8
- ldr r3, [r7]
- movs r0, 0
- str r0, [sp]
- movs r0, 0x44
- mov r1, r9
- bl xxx_call_draw_string
-_0803BEC8:
- movs r0, 0xC
- add r9, r0
- ldr r2, _0803BEFC
- ldr r3, [r7]
- movs r0, 0
- str r0, [sp]
- movs r0, 0xA
- mov r1, r9
- bl xxx_call_draw_string
- ldrb r0, [r5]
- cmp r0, 0x1
- bne _0803BF04
- add r4, sp, 0x180
- ldr r1, [r7, 0x8]
- adds r0, r4, 0
- bl sub_8090228
- ldr r1, _0803BF00
- add r0, sp, 0x4
- adds r2, r4, 0
- bl sub_800D158
- b _0803BF0C
- .align 2, 0
-_0803BEF8: .4byte gSpecialMissionText
-_0803BEFC: .4byte gPlaceText
-_0803BF00: .4byte gUnknown_80E8884
-_0803BF04:
- ldr r1, [r7, 0x8]
- add r0, sp, 0x4
- bl sub_8090228
-_0803BF0C:
- ldr r3, [r7]
- movs r0, 0
- str r0, [sp]
- movs r0, 0x44
- mov r1, r9
- add r2, sp, 0x4
- bl xxx_call_draw_string
- ldrb r0, [r5]
- cmp r0, 0
- bne _0803BF28
- ldr r0, [r7, 0x8]
- movs r1, 0
- b _0803BF2E
-_0803BF28:
- ldr r0, [r7, 0x8]
- ldr r1, [r7, 0x54]
- ldrb r1, [r1, 0x1]
-_0803BF2E:
- bl sub_803C1D0
- lsls r0, 24
- lsrs r4, r0, 24
- movs r1, 0xC
- add r9, r1
- ldr r2, _0803BF88
- ldr r3, [r7]
- movs r6, 0
- str r6, [sp]
- movs r0, 0xA
- mov r1, r9
- bl xxx_call_draw_string
- adds r0, r4, 0
- bl sub_803C1F0
- adds r2, r0, 0
- ldr r3, [r7]
- str r6, [sp]
- movs r0, 0x44
- mov r1, r9
- bl xxx_call_draw_string
- movs r0, 0xC
- add r9, r0
- ldr r2, _0803BF8C
- ldr r3, [r7]
- str r6, [sp]
- movs r0, 0xA
- mov r1, r9
- bl xxx_call_draw_string
- adds r0, r7, 0
- adds r0, 0x2E
- ldrb r2, [r0]
- adds r5, r0, 0
- cmp r2, 0x4
- bhi _0803C02C
- lsls r0, r2, 2
- ldr r1, _0803BF90
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0803BF88: .4byte gDifficultyText
-_0803BF8C: .4byte gRewardText
-_0803BF90: .4byte _0803BF94
- .align 2, 0
-_0803BF94:
- .4byte _0803BFA8
- .4byte _0803BFBC
- .4byte _0803BFD0
- .4byte _0803BFD0
- .4byte _0803C00C
-_0803BFA8:
- ldr r1, _0803BFB8
- ldrb r0, [r5]
- lsls r0, 2
- adds r0, r1
- ldr r1, [r0]
- ldr r2, [r7, 0x30]
- add r0, sp, 0x4
- b _0803BFEE
- .align 2, 0
-_0803BFB8: .4byte gUnknown_80E8C48
-_0803BFBC:
- ldr r1, _0803BFCC
- ldrb r0, [r5]
- lsls r0, 2
- adds r0, r1
- ldr r1, [r0]
- ldr r2, [r7, 0x30]
- add r0, sp, 0x4
- b _0803BFEE
- .align 2, 0
-_0803BFCC: .4byte gUnknown_80E8C48
-_0803BFD0:
- ldr r4, _0803C004
- adds r0, r7, 0
- adds r0, 0x34
- ldrb r1, [r0]
- adds r0, r4, 0
- movs r2, 0
- bl sub_8090DC4
- ldr r1, _0803C008
- ldrb r0, [r5]
- lsls r0, 2
- adds r0, r1
- ldr r1, [r0]
- add r0, sp, 0x4
- adds r2, r4, 0
-_0803BFEE:
- bl sub_800D158
- ldr r3, [r7]
- movs r0, 0
- str r0, [sp]
- movs r0, 0x44
- mov r1, r9
- add r2, sp, 0x4
- bl xxx_call_draw_string
- b _0803C040
- .align 2, 0
-_0803C004: .4byte gUnknown_202DE58
-_0803C008: .4byte gUnknown_80E8C48
-_0803C00C:
- ldr r1, _0803C028
- ldrb r0, [r5]
- lsls r0, 2
- adds r0, r1
- ldr r2, [r0]
- ldr r3, [r7]
- movs r0, 0
- str r0, [sp]
- movs r0, 0x44
- mov r1, r9
- bl xxx_call_draw_string
- b _0803C040
- .align 2, 0
-_0803C028: .4byte gUnknown_80E8C48
-_0803C02C:
- ldr r1, _0803C0D4
- lsls r0, r2, 2
- adds r0, r1
- ldr r2, [r0]
- ldr r3, [r7]
- str r6, [sp]
- movs r0, 0x44
- mov r1, r9
- bl xxx_call_draw_string
-_0803C040:
- movs r1, 0xC
- add r9, r1
- adds r0, r7, 0
- adds r0, 0x41
- ldrb r1, [r0]
- adds r0, r1, 0
- subs r0, 0x9
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x2
- bls _0803C0C6
- cmp r1, 0x3
- beq _0803C0C6
- ldr r0, [r7, 0x54]
- ldrb r0, [r0]
- cmp r0, 0x5
- bne _0803C0C6
- ldr r2, _0803C0D8
- ldr r3, [r7]
- movs r0, 0
- str r0, [sp]
- movs r0, 0xA
- mov r1, r9
- bl xxx_call_draw_string
- add r0, sp, 0x1E4
- ldr r1, [r7, 0x54]
- bl sub_803D414
- movs r4, 0
-_0803C07C:
- cmp r4, 0xC
- bne _0803C084
- movs r0, 0xC
- add r9, r0
-_0803C084:
- movs r5, 0x7
- cmp r4, 0x3
- ble _0803C09C
- movs r5, 0x6
- cmp r4, 0x7
- ble _0803C09C
- movs r5, 0x7
- cmp r4, 0xF
- ble _0803C09C
- cmp r4, 0x13
- bgt _0803C09C
- movs r5, 0x6
-_0803C09C:
- adds r0, r4, 0
- movs r1, 0xC
- bl __modsi3
- adds r1, r0, 0
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 1
- adds r0, 0x54
- add r1, sp, 0x1E4
- adds r1, r4
- ldrb r2, [r1]
- ldr r1, [r7]
- str r1, [sp]
- mov r1, r9
- adds r3, r5, 0
- bl sub_8012C60
- adds r4, 0x1
- cmp r4, 0x17
- ble _0803C07C
-_0803C0C6:
- add sp, 0x1FC
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0803C0D4: .4byte gUnknown_80E8C48
-_0803C0D8: .4byte gUnknown_80E8B7C
- thumb_func_end sub_803B98C
-
- thumb_func_start sub_803C0DC
-sub_803C0DC:
- push {lr}
- lsls r0, 16
- asrs r0, 16
- bl sub_808E770
- lsls r0, 16
- asrs r2, r0, 16
- ldr r1, _0803C0F0
- b _0803C102
- .align 2, 0
-_0803C0F0: .4byte gUnknown_80E80E0
-_0803C0F4:
- movs r3, 0
- ldrsh r0, [r1, r3]
- cmp r0, r2
- bne _0803C100
- movs r0, 0
- b _0803C10C
-_0803C100:
- adds r1, 0x2
-_0803C102:
- movs r3, 0
- ldrsh r0, [r1, r3]
- cmp r0, 0
- bne _0803C0F4
- movs r0, 0x1
-_0803C10C:
- pop {r1}
- bx r1
- thumb_func_end sub_803C0DC
-
- thumb_func_start sub_803C110
-sub_803C110:
- push {r4,lr}
- lsls r0, 16
- asrs r4, r0, 16
- adds r0, r4, 0
- bl sub_8098134
- lsls r0, 24
- cmp r0, 0
- beq _0803C180
- adds r0, r4, 0
- bl sub_808E770
- lsls r0, 16
- asrs r0, 16
- cmp r4, r0
- bne _0803C180
- adds r0, r4, 0
- bl sub_803C0DC
- lsls r0, 24
- cmp r0, 0
- beq _0803C180
- movs r0, 0x6
- bl sub_80023E4
- lsls r0, 24
- cmp r0, 0
- bne _0803C188
- ldr r1, _0803C184
- movs r2, 0
- ldrsh r0, [r1, r2]
- cmp r0, 0
- beq _0803C168
- adds r2, r1, 0
-_0803C154:
- movs r3, 0
- ldrsh r0, [r2, r3]
- cmp r0, r4
- beq _0803C180
- adds r1, 0x2
- adds r2, 0x2
- movs r3, 0
- ldrsh r0, [r1, r3]
- cmp r0, 0
- bne _0803C154
-_0803C168:
- bl sub_808D33C
- movs r1, 0x8
- ldrsh r0, [r0, r1]
- cmp r0, r4
- beq _0803C180
- bl sub_808D378
- movs r2, 0x8
- ldrsh r0, [r0, r2]
- cmp r0, r4
- bne _0803C188
-_0803C180:
- movs r0, 0
- b _0803C18A
- .align 2, 0
-_0803C184: .4byte gUnknown_80E8126
-_0803C188:
- movs r0, 0x1
-_0803C18A:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_803C110
-
.align 2,0