summaryrefslogtreecommitdiff
path: root/asm/record_mixing.s
diff options
context:
space:
mode:
authorDiegoisawesome <diego@domoreaweso.me>2016-11-01 12:20:17 -0500
committerDiegoisawesome <diego@domoreaweso.me>2016-11-01 12:20:17 -0500
commitb4a39100c0e052bdab3cfa2da707072c2ee18115 (patch)
treedcea69ec49430f004c17ff71b77587cafd78c69a /asm/record_mixing.s
parentf09f9cef752c37e3cc0686573c1fdb29da842772 (diff)
parent6f0e42a91aeeedd64725ce57e3dad6a38421d8e9 (diff)
Merge https://github.com/pret/pokeemerald
Diffstat (limited to 'asm/record_mixing.s')
-rw-r--r--asm/record_mixing.s3711
1 files changed, 3711 insertions, 0 deletions
diff --git a/asm/record_mixing.s b/asm/record_mixing.s
new file mode 100644
index 000000000..a706fef91
--- /dev/null
+++ b/asm/record_mixing.s
@@ -0,0 +1,3711 @@
+ .include "asm/macros.inc"
+ .include "constants/constants.inc"
+
+ .syntax unified
+
+ .text
+
+ thumb_func_start sub_80E6BE8
+sub_80E6BE8: @ 80E6BE8
+ push {lr}
+ ldr r0, =sub_80E715C
+ bl sub_80B37D4
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_80E6BE8
+
+ thumb_func_start sub_80E6BF8
+sub_80E6BF8: @ 80E6BF8
+ push {r4,lr}
+ ldr r2, =0x03001134
+ ldr r0, =0x03005d8c
+ ldr r1, [r0]
+ ldr r3, =0x00001a9c
+ adds r0, r1, r3
+ str r0, [r2]
+ ldr r2, =0x03001138
+ ldr r4, =0x000027cc
+ adds r0, r1, r4
+ str r0, [r2]
+ ldr r2, =0x0300113c
+ ldr r3, =0x00002b50
+ adds r0, r1, r3
+ str r0, [r2]
+ ldr r2, =0x03001140
+ ldr r4, =0x00002e28
+ adds r0, r1, r4
+ str r0, [r2]
+ ldr r2, =0x03001144
+ ldr r3, =0x00002e68
+ adds r0, r1, r3
+ str r0, [r2]
+ ldr r2, =0x03001148
+ ldr r0, =0x02039f9c
+ str r0, [r2]
+ ldr r2, =0x0300114c
+ ldr r0, =0x03005d90
+ ldr r0, [r0]
+ ldr r4, =0x0000064c
+ adds r3, r0, r4
+ str r3, [r2]
+ ldr r2, =0x03001150
+ ldr r4, =0x00003b58
+ adds r1, r4
+ str r1, [r2]
+ ldr r1, =0x03001154
+ adds r0, 0xDC
+ str r0, [r1]
+ ldr r0, =0x03001158
+ str r3, [r0]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_80E6BF8
+
+ thumb_func_start sub_80E6CA0
+sub_80E6CA0: @ 80E6CA0
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ ldr r0, =0x03001134
+ ldr r1, [r0]
+ movs r4, 0xC8
+ lsls r4, 4
+ adds r0, r5, 0
+ adds r2, r4, 0
+ bl memcpy
+ adds r4, r5, r4
+ ldr r0, =0x03001138
+ ldr r1, [r0]
+ movs r2, 0xE1
+ lsls r2, 2
+ adds r0, r4, 0
+ bl memcpy
+ adds r0, r4, 0
+ bl sub_80F14F8
+ ldr r1, =0x00001004
+ adds r0, r5, r1
+ ldr r1, =0x0300113c
+ ldr r1, [r1]
+ movs r2, 0x40
+ bl memcpy
+ ldr r2, =0x00001044
+ adds r0, r5, r2
+ ldr r1, =0x03001140
+ ldr r1, [r1]
+ movs r2, 0x40
+ bl memcpy
+ ldr r1, =0x00001084
+ adds r0, r5, r1
+ ldr r1, =0x03001144
+ ldr r1, [r1]
+ movs r2, 0x28
+ bl memcpy
+ ldr r2, =0x000010ac
+ adds r0, r5, r2
+ bl sub_80E89F8
+ ldr r0, =0x0300114c
+ ldr r0, [r0]
+ ldr r2, =0x00001124
+ adds r1, r5, r2
+ bl sub_81659DC
+ bl link_get_multiplayer_id
+ lsls r0, 24
+ cmp r0, 0
+ bne _080E6D1C
+ bl sub_81539D4
+ ldr r2, =0x000011c8
+ adds r1, r5, r2
+ strh r0, [r1]
+_080E6D1C:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_80E6CA0
+
+ thumb_func_start sub_80E6D54
+sub_80E6D54: @ 80E6D54
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ ldr r0, =0x03001134
+ ldr r1, [r0]
+ movs r4, 0xC8
+ lsls r4, 4
+ adds r0, r5, 0
+ adds r2, r4, 0
+ bl memcpy
+ adds r0, r5, 0
+ bl sub_80EB18C
+ adds r4, r5, r4
+ ldr r0, =0x03001138
+ ldr r1, [r0]
+ movs r2, 0xE1
+ lsls r2, 2
+ adds r0, r4, 0
+ bl memcpy
+ adds r0, r4, 0
+ bl sub_80F1208
+ ldr r1, =0x00001004
+ adds r0, r5, r1
+ ldr r1, =0x0300113c
+ ldr r1, [r1]
+ movs r2, 0x40
+ bl memcpy
+ ldr r2, =0x00001044
+ adds r4, r5, r2
+ ldr r0, =0x03001140
+ ldr r1, [r0]
+ adds r0, r4, 0
+ movs r2, 0x40
+ bl memcpy
+ adds r0, r4, 0
+ bl sub_8120B70
+ ldr r1, =0x00001084
+ adds r0, r5, r1
+ ldr r1, =0x03001144
+ ldr r1, [r1]
+ movs r2, 0x28
+ bl memcpy
+ ldr r2, =0x000010ac
+ adds r4, r5, r2
+ adds r0, r4, 0
+ bl sub_80E89F8
+ adds r0, r4, 0
+ bl sub_80E8A54
+ ldr r0, =0x0300114c
+ ldr r0, [r0]
+ ldr r1, =0x00001124
+ adds r4, r5, r1
+ adds r1, r4, 0
+ bl sub_81659DC
+ adds r0, r4, 0
+ bl TaskDummy4
+ bl link_get_multiplayer_id
+ lsls r0, 24
+ cmp r0, 0
+ bne _080E6DEE
+ bl sub_81539D4
+ ldr r2, =0x000011c8
+ adds r1, r5, r2
+ strh r0, [r1]
+_080E6DEE:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_80E6D54
+
+ thumb_func_start sub_80E6E24
+sub_80E6E24: @ 80E6E24
+ push {r4,r5,lr}
+ bl sub_80E9914
+ bl sub_80F0BB8
+ bl sub_80E6BF8
+ bl sub_800A064
+ cmp r0, 0
+ beq _080E6E60
+ bl sub_800A03C
+ cmp r0, 0
+ bne _080E6E50
+ ldr r0, =0x0203a018
+ ldr r0, [r0]
+ bl sub_80E6CA0
+ b _080E6F12
+ .pool
+_080E6E50:
+ ldr r0, =0x0203a018
+ ldr r0, [r0]
+ bl sub_80E6D54
+ b _080E6F12
+ .pool
+_080E6E60:
+ ldr r5, =0x0203a018
+ ldr r0, [r5]
+ ldr r1, =0x03001134
+ ldr r1, [r1]
+ movs r4, 0xC8
+ lsls r4, 4
+ adds r2, r4, 0
+ bl memcpy
+ ldr r0, [r5]
+ adds r0, r4
+ ldr r1, =0x03001138
+ ldr r1, [r1]
+ movs r2, 0xE1
+ lsls r2, 2
+ bl memcpy
+ ldr r0, [r5]
+ ldr r1, =0x00001004
+ adds r0, r1
+ ldr r1, =0x0300113c
+ ldr r1, [r1]
+ movs r2, 0x40
+ bl memcpy
+ ldr r0, [r5]
+ ldr r2, =0x00001044
+ adds r0, r2
+ ldr r1, =0x03001140
+ ldr r1, [r1]
+ movs r2, 0x40
+ bl memcpy
+ ldr r0, [r5]
+ ldr r1, =0x00001214
+ adds r0, r1
+ ldr r1, =0x03001150
+ ldr r1, [r1]
+ movs r2, 0x40
+ bl memcpy
+ ldr r0, [r5]
+ ldr r2, =0x00001084
+ adds r0, r2
+ ldr r1, =0x03001144
+ ldr r1, [r1]
+ movs r2, 0x28
+ bl memcpy
+ ldr r0, [r5]
+ ldr r1, =0x000010ac
+ adds r0, r1
+ bl sub_80E89F8
+ ldr r0, [r5]
+ ldr r4, =0x00001124
+ adds r0, r4
+ ldr r1, =0x0300114c
+ ldr r1, [r1]
+ movs r2, 0xEC
+ bl memcpy
+ ldr r0, [r5]
+ adds r0, r4
+ bl sub_80E8AC0
+ bl link_get_multiplayer_id
+ lsls r0, 24
+ cmp r0, 0
+ bne _080E6EFA
+ bl sub_81539D4
+ ldr r1, [r5]
+ ldr r2, =0x00001210
+ adds r1, r2
+ strh r0, [r1]
+_080E6EFA:
+ ldr r0, [r5]
+ ldr r1, =0x00001254
+ adds r0, r1
+ ldr r1, =0x03001154
+ ldr r1, [r1]
+ bl sub_80E8110
+ ldr r0, [r5]
+ ldr r2, =0x000012dc
+ adds r0, r2
+ bl sub_80E8260
+_080E6F12:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_80E6E24
+
+ thumb_func_start sub_80E6F60
+sub_80E6F60: @ 80E6F60
+ push {r4-r6,lr}
+ mov r6, r8
+ push {r6}
+ adds r4, r0, 0
+ bl sub_800A064
+ cmp r0, 0
+ beq _080E7014
+ ldr r5, =0x0203a014
+ ldr r0, [r5]
+ movs r1, 0xC8
+ lsls r1, 4
+ mov r8, r1
+ add r0, r8
+ bl sub_80E7B2C
+ ldr r0, [r5]
+ ldr r6, =0x00001230
+ lsls r4, 24
+ lsrs r4, 24
+ adds r1, r6, 0
+ adds r2, r4, 0
+ bl sub_80EAF80
+ ldr r3, [r5]
+ ldr r1, =0x000010ac
+ adds r0, r3, r1
+ add r3, r8
+ adds r1, r6, 0
+ adds r2, r4, 0
+ bl sub_80E7B60
+ ldr r0, [r5]
+ ldr r1, =0x00001124
+ adds r0, r1
+ adds r1, r6, 0
+ adds r2, r4, 0
+ bl sub_80E7948
+ ldr r0, [r5]
+ add r0, r8
+ adds r1, r6, 0
+ adds r2, r4, 0
+ bl sub_80F01E8
+ ldr r0, [r5]
+ ldr r1, =0x00001004
+ adds r0, r1
+ adds r1, r6, 0
+ adds r2, r4, 0
+ bl sub_80F0C7C
+ ldr r0, [r5]
+ ldr r1, =0x00001044
+ adds r0, r1
+ adds r1, r6, 0
+ adds r2, r4, 0
+ bl sub_80E78C4
+ ldr r0, [r5]
+ ldr r1, =0x00001084
+ adds r0, r1
+ adds r1, r6, 0
+ adds r2, r4, 0
+ bl sub_812287C
+ ldr r0, [r5]
+ ldr r1, =0x000011c8
+ adds r0, r1
+ adds r1, r4, 0
+ bl sub_80E7F68
+ b _080E70BE
+ .pool
+_080E7014:
+ ldr r5, =0x0203a014
+ ldr r0, [r5]
+ movs r1, 0xC8
+ lsls r1, 4
+ mov r8, r1
+ add r0, r8
+ bl sub_80E7B2C
+ ldr r0, [r5]
+ ldr r6, =0x00001444
+ lsls r4, 24
+ lsrs r4, 24
+ adds r1, r6, 0
+ adds r2, r4, 0
+ bl sub_80EAF80
+ ldr r0, [r5]
+ add r0, r8
+ adds r1, r6, 0
+ adds r2, r4, 0
+ bl sub_80F01E8
+ ldr r0, [r5]
+ ldr r1, =0x00001004
+ adds r0, r1
+ adds r1, r6, 0
+ adds r2, r4, 0
+ bl sub_80F0C7C
+ ldr r0, [r5]
+ ldr r1, =0x00001044
+ adds r0, r1
+ adds r1, r6, 0
+ adds r2, r4, 0
+ bl sub_80E78C4
+ ldr r0, [r5]
+ ldr r1, =0x00001084
+ adds r0, r1
+ adds r1, r6, 0
+ adds r2, r4, 0
+ bl sub_812287C
+ ldr r3, [r5]
+ ldr r1, =0x000010ac
+ adds r0, r3, r1
+ add r3, r8
+ adds r1, r6, 0
+ adds r2, r4, 0
+ bl sub_80E7B60
+ ldr r0, [r5]
+ ldr r1, =0x00001124
+ adds r0, r1
+ adds r1, r6, 0
+ adds r2, r4, 0
+ bl sub_80E7948
+ ldr r0, [r5]
+ ldr r1, =0x00001210
+ adds r0, r1
+ adds r1, r4, 0
+ bl sub_80E7F68
+ ldr r0, [r5]
+ ldr r1, =0x00001214
+ adds r0, r1
+ adds r1, r6, 0
+ adds r2, r4, 0
+ bl sub_80E7A14
+ ldr r0, [r5]
+ ldr r1, =0x00001254
+ adds r0, r1
+ adds r1, r6, 0
+ adds r2, r4, 0
+ bl sub_80E8468
+ ldr r0, [r5]
+ ldr r1, =0x000012dc
+ adds r0, r1
+ adds r1, r6, 0
+ adds r2, r4, 0
+ bl sub_80E89AC
+_080E70BE:
+ pop {r3}
+ mov r8, r3
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_80E6F60
+
+ thumb_func_start sub_80E70F4
+sub_80E70F4: @ 80E70F4
+ push {r4,lr}
+ sub sp, 0xC
+ adds r4, r0, 0
+ movs r0, 0
+ movs r1, 0
+ bl sub_81973C4
+ movs r0, 0x1
+ str r0, [sp]
+ movs r0, 0
+ str r0, [sp, 0x4]
+ str r0, [sp, 0x8]
+ movs r1, 0x1
+ adds r2, r4, 0
+ movs r3, 0
+ bl Print
+ movs r0, 0
+ movs r1, 0x3
+ bl CopyWindowToVram
+ add sp, 0xC
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80E70F4
+
+ thumb_func_start sub_80E7128
+sub_80E7128: @ 80E7128
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, =0x03005e00
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r4, r1, r2
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x32
+ bne _080E7150
+ movs r0, 0xE2
+ bl audio_play
+ movs r0, 0
+ strh r0, [r4, 0x8]
+_080E7150:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_80E7128
+
+ thumb_func_start sub_80E715C
+sub_80E715C: @ 80E715C
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ ldr r1, =0x03005e08
+ adds r5, r0, r1
+ movs r1, 0
+ ldrsh r0, [r5, r1]
+ cmp r0, 0x5
+ bls _080E7176
+ b _080E730A
+_080E7176:
+ lsls r0, 2
+ ldr r1, =_080E7188
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .pool
+ .align 2, 0
+_080E7188:
+ .4byte _080E71A0
+ .4byte _080E7218
+ .4byte _080E724C
+ .4byte _080E726C
+ .4byte _080E72AC
+ .4byte _080E72C0
+_080E71A0:
+ ldr r4, =0x0203a018
+ ldr r0, =0x00001444
+ bl Alloc
+ str r0, [r4]
+ ldr r4, =0x0203a014
+ ldr r0, =0x00005110
+ bl Alloc
+ str r0, [r4]
+ ldr r0, =0x020375e2
+ ldrb r0, [r0]
+ bl sub_8009628
+ movs r0, 0x80
+ lsls r0, 7
+ movs r1, 0x1
+ bl VarSet
+ ldr r1, =0x03001130
+ movs r0, 0
+ strb r0, [r1]
+ bl sub_80E6E24
+ bl sub_80FB00C
+ movs r0, 0x1
+ strh r0, [r5]
+ ldr r0, =sub_80E7324
+ movs r1, 0x50
+ bl CreateTask
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x14]
+ ldr r0, =sub_80E7128
+ movs r1, 0x51
+ bl CreateTask
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x1E]
+ b _080E730A
+ .pool
+_080E7218:
+ ldr r2, =0x03005e00
+ movs r0, 0x14
+ ldrsh r1, [r5, r0]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 3
+ adds r0, r2
+ ldrb r0, [r0, 0x4]
+ cmp r0, 0
+ bne _080E730A
+ movs r0, 0x2
+ strh r0, [r5]
+ ldr r0, =0x00000894
+ bl FlagSet
+ bl sub_80FB074
+ ldrb r0, [r5, 0x1E]
+ bl DestroyTask
+ b _080E730A
+ .pool
+_080E724C:
+ ldr r0, =sub_80E7FF8
+ movs r1, 0xA
+ bl CreateTask
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x14]
+ movs r0, 0x3
+ strh r0, [r5]
+ movs r0, 0xE0
+ bl audio_play
+ b _080E730A
+ .pool
+_080E726C:
+ ldr r2, =0x03005e00
+ movs r0, 0x14
+ ldrsh r1, [r5, r0]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 3
+ adds r0, r2
+ ldrb r4, [r0, 0x4]
+ cmp r4, 0
+ bne _080E730A
+ movs r0, 0x4
+ strh r0, [r5]
+ ldr r0, =0x030030fc
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _080E7296
+ bl sub_80B3050
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x14]
+_080E7296:
+ ldr r0, =gUnknown_085EEA8E
+ bl sub_80E70F4
+ strh r4, [r5, 0x10]
+ b _080E730A
+ .pool
+_080E72AC:
+ ldrh r0, [r5, 0x10]
+ adds r0, 0x1
+ strh r0, [r5, 0x10]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x3C
+ ble _080E730A
+ movs r0, 0x5
+ strh r0, [r5]
+ b _080E730A
+_080E72C0:
+ ldr r2, =0x03005e00
+ movs r0, 0x14
+ ldrsh r1, [r5, r0]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 3
+ adds r0, r2
+ ldrb r0, [r0, 0x4]
+ cmp r0, 0
+ bne _080E730A
+ ldr r0, =0x0203a014
+ ldr r0, [r0]
+ bl Free
+ ldr r0, =0x0203a018
+ ldr r0, [r0]
+ bl Free
+ bl sub_808729C
+ ldr r0, =0x030030fc
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _080E72F8
+ ldr r0, =sub_80AF2B4
+ movs r1, 0xA
+ bl CreateTask
+_080E72F8:
+ movs r0, 0
+ movs r1, 0x1
+ bl sub_8197434
+ adds r0, r4, 0
+ bl DestroyTask
+ bl script_env_2_enable_and_set_ctx_running
+_080E730A:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_80E715C
+
+ thumb_func_start sub_80E7324
+sub_80E7324: @ 80E7324
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ ldr r6, =0x03005e00
+ adds r5, r0, r6
+ movs r0, 0x8
+ ldrsh r1, [r5, r0]
+ cmp r1, 0x64
+ beq _080E73A0
+ cmp r1, 0x64
+ bgt _080E7362
+ cmp r1, 0x1
+ bne _080E7346
+ b _080E7464
+_080E7346:
+ cmp r1, 0x1
+ bgt _080E7354
+ cmp r1, 0
+ beq _080E7384
+ b _080E7566
+ .pool
+_080E7354:
+ cmp r1, 0x2
+ bne _080E735A
+ b _080E7490
+_080E735A:
+ cmp r1, 0x5
+ bne _080E7360
+ b _080E7550
+_080E7360:
+ b _080E7566
+_080E7362:
+ cmp r1, 0xC9
+ beq _080E73F8
+ cmp r1, 0xC9
+ bgt _080E7370
+ cmp r1, 0x65
+ beq _080E73B8
+ b _080E7566
+_080E7370:
+ ldr r0, =0x0000012d
+ cmp r1, r0
+ beq _080E7432
+ adds r0, 0x63
+ cmp r1, r0
+ beq _080E744A
+ b _080E7566
+ .pool
+_080E7384:
+ ldr r0, =gUnknown_085EEA7E
+ bl sub_80E70F4
+ movs r0, 0xE1
+ lsls r0, 3
+ strh r0, [r5, 0x18]
+ movs r0, 0xC8
+ lsls r0, 1
+ strh r0, [r5, 0x8]
+ bl sub_8009FAC
+ b _080E7566
+ .pool
+_080E73A0:
+ ldrh r0, [r5, 0x20]
+ adds r0, 0x1
+ strh r0, [r5, 0x20]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x14
+ bgt _080E73B0
+ b _080E7566
+_080E73B0:
+ movs r0, 0
+ strh r0, [r5, 0x20]
+ movs r0, 0x65
+ b _080E7564
+_080E73B8:
+ bl sub_800ABAC
+ lsls r0, 24
+ lsrs r4, r0, 24
+ bl sub_800ABBC
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _080E73EA
+ bl sub_800AA48
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r4, r0
+ beq _080E73DA
+ b _080E7566
+_080E73DA:
+ movs r0, 0x15
+ bl audio_play
+ movs r1, 0
+ movs r0, 0xC9
+ strh r0, [r5, 0x8]
+ strh r1, [r5, 0x20]
+ b _080E7566
+_080E73EA:
+ movs r0, 0x16
+ bl audio_play
+ ldr r0, =0x0000012d
+ b _080E7564
+ .pool
+_080E73F8:
+ bl sub_800AA48
+ adds r4, r0, 0
+ bl sub_800ABAC
+ lsls r4, 24
+ lsls r0, 24
+ cmp r4, r0
+ beq _080E740C
+ b _080E7566
+_080E740C:
+ ldrh r4, [r5, 0x20]
+ adds r4, 0x1
+ strh r4, [r5, 0x20]
+ lsls r4, 16
+ asrs r4, 16
+ bl sub_800ABAC
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, r0, 4
+ subs r1, r0
+ lsls r1, 1
+ cmp r4, r1
+ bgt _080E742A
+ b _080E7566
+_080E742A:
+ bl sub_800A620
+ movs r0, 0x1
+ b _080E7564
+_080E7432:
+ bl sub_800AA48
+ adds r4, r0, 0
+ bl sub_800ABAC
+ lsls r4, 24
+ lsls r0, 24
+ cmp r4, r0
+ beq _080E7446
+ b _080E7566
+_080E7446:
+ movs r0, 0x1
+ b _080E7564
+_080E744A:
+ ldrh r0, [r5, 0x20]
+ adds r0, 0x1
+ strh r0, [r5, 0x20]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x14
+ bgt _080E745A
+ b _080E7566
+_080E745A:
+ movs r0, 0x1
+ strh r0, [r5, 0x8]
+ movs r0, 0
+ strh r0, [r5, 0x20]
+ b _080E7566
+_080E7464:
+ ldr r0, =0x03003124
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _080E746E
+ b _080E7566
+_080E746E:
+ ldr r4, =0x02021cc4
+ bl sub_80E7810
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ adds r0, r4, 0
+ movs r2, 0x2
+ movs r3, 0x2
+ bl ConvertIntToDecimalString
+ movs r0, 0x5
+ b _080E7564
+ .pool
+_080E7490:
+ bl sub_800ABAC
+ lsls r0, 24
+ lsrs r0, 24
+ movs r1, 0
+ strh r0, [r5, 0x14]
+ strh r1, [r5, 0x8]
+ bl sub_80E7810
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x12]
+ ldr r0, =sub_80E756C
+ str r0, [r5]
+ bl sub_800A064
+ cmp r0, 0
+ beq _080E7504
+ ldr r0, =0x0203a018
+ ldr r0, [r0]
+ adds r1, r5, 0
+ adds r1, 0xC
+ bl sub_80E7808
+ ldr r0, =sub_80E7630
+ movs r1, 0x50
+ bl CreateTask
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x1C]
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r0, r1, r6
+ strh r4, [r0, 0x8]
+ ldr r0, =0x0203a014
+ ldr r0, [r0]
+ adds r1, r6, r1
+ adds r1, 0x12
+ bl sub_80E7808
+ ldr r1, =0x0300115c
+ ldr r0, =0x00001230
+ str r0, [r1]
+ b _080E7566
+ .pool
+_080E7504:
+ ldr r0, =0x0203a018
+ ldr r0, [r0]
+ adds r1, r5, 0
+ adds r1, 0xC
+ bl sub_80E7808
+ ldr r0, =sub_80E7630
+ movs r1, 0x50
+ bl CreateTask
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x1C]
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r0, r1, r6
+ strh r4, [r0, 0x8]
+ ldr r0, =0x0203a014
+ ldr r0, [r0]
+ adds r1, r6, r1
+ adds r1, 0x12
+ bl sub_80E7808
+ ldr r1, =0x0300115c
+ ldr r0, =0x00001444
+ str r0, [r1]
+ b _080E7566
+ .pool
+_080E7550:
+ ldrh r0, [r5, 0x1C]
+ adds r0, 0x1
+ strh r0, [r5, 0x1C]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x3C
+ ble _080E7566
+ movs r0, 0
+ strh r0, [r5, 0x1C]
+ movs r0, 0x2
+_080E7564:
+ strh r0, [r5, 0x8]
+_080E7566:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80E7324
+
+ thumb_func_start sub_80E756C
+sub_80E756C: @ 80E756C
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ ldr r0, =0x03005e00
+ adds r5, r1, r0
+ movs r2, 0x8
+ ldrsh r1, [r5, r2]
+ adds r2, r0, 0
+ cmp r1, 0x4
+ bhi _080E7624
+ lsls r0, r1, 2
+ ldr r1, =_080E7598
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .pool
+ .align 2, 0
+_080E7598:
+ .4byte _080E75AC
+ .4byte _080E75D0
+ .4byte _080E7624
+ .4byte _080E75E2
+ .4byte _080E760E
+_080E75AC:
+ adds r0, r5, 0
+ adds r0, 0xC
+ bl sub_80E77FC
+ adds r1, r0, 0
+ movs r0, 0x10
+ ldrsh r2, [r5, r0]
+ movs r0, 0xC8
+ muls r0, r2
+ adds r1, r0
+ ldr r0, =0x020228c4
+ movs r2, 0xC8
+ bl memcpy
+ b _080E75FC
+ .pool
+_080E75D0:
+ bl link_get_multiplayer_id
+ lsls r0, 24
+ cmp r0, 0
+ bne _080E75FC
+ movs r0, 0x1
+ bl sub_800A4D8
+ b _080E75FC
+_080E75E2:
+ ldrh r0, [r5, 0x10]
+ adds r0, 0x1
+ strh r0, [r5, 0x10]
+ movs r1, 0x10
+ ldrsh r4, [r5, r1]
+ ldr r0, =0x0300115c
+ ldr r0, [r0]
+ movs r1, 0xC8
+ bl __udivsi3
+ adds r0, 0x1
+ cmp r4, r0
+ bne _080E7608
+_080E75FC:
+ ldrh r0, [r5, 0x8]
+ adds r0, 0x1
+ strh r0, [r5, 0x8]
+ b _080E7624
+ .pool
+_080E7608:
+ movs r0, 0
+ strh r0, [r5, 0x8]
+ b _080E7624
+_080E760E:
+ movs r1, 0x1C
+ ldrsh r0, [r5, r1]
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r2
+ ldrb r0, [r1, 0x4]
+ cmp r0, 0
+ bne _080E7624
+ ldr r0, =sub_80E77D4
+ str r0, [r5]
+_080E7624:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_80E756C
+
+ thumb_func_start sub_80E7630
+sub_80E7630: @ 80E7630
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0xC
+ lsls r0, 24
+ lsrs r0, 24
+ str r0, [sp]
+ lsls r0, 2
+ ldr r1, [sp]
+ adds r0, r1
+ lsls r0, 3
+ ldr r1, =0x03005e00
+ adds r0, r1
+ mov r10, r0
+ bl sub_800A550
+ lsls r0, 24
+ lsrs r0, 24
+ str r0, [sp, 0x4]
+ movs r2, 0
+ str r2, [sp, 0x8]
+ bl sub_800A9D8
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r3, [sp, 0x4]
+ cmp r3, r0
+ bne _080E773E
+ movs r4, 0
+ mov r8, r4
+ b _080E771C
+ .pool
+_080E7678:
+ ldr r1, [sp, 0x4]
+ mov r0, r8
+ asrs r1, r0
+ movs r0, 0x1
+ ands r1, r0
+ movs r2, 0x1
+ add r2, r8
+ mov r9, r2
+ cmp r1, 0
+ beq _080E7714
+ mov r0, r10
+ adds r0, 0x12
+ bl sub_80E77FC
+ mov r3, r9
+ lsls r4, r3, 1
+ mov r5, r10
+ adds r5, 0x8
+ adds r4, r5, r4
+ movs r2, 0
+ ldrsh r1, [r4, r2]
+ movs r7, 0xC8
+ muls r1, r7
+ adds r0, r1
+ ldr r3, =0x0300115c
+ ldr r1, [r3]
+ mov r2, r8
+ muls r2, r1
+ adds r1, r2, 0
+ adds r6, r0, r1
+ mov r0, r8
+ bl sub_80E7820
+ adds r1, r0, 0
+ movs r3, 0
+ ldrsh r2, [r4, r3]
+ adds r0, r2, 0x1
+ muls r0, r7
+ ldr r4, =0x0300115c
+ ldr r3, [r4]
+ cmp r0, r3
+ bls _080E76DC
+ muls r2, r7
+ subs r2, r3, r2
+ adds r0, r6, 0
+ bl memcpy
+ b _080E76E4
+ .pool
+_080E76DC:
+ adds r0, r6, 0
+ movs r2, 0xC8
+ bl memcpy
+_080E76E4:
+ mov r0, r8
+ bl sub_800A5EC
+ mov r0, r9
+ lsls r1, r0, 1
+ adds r1, r5, r1
+ ldrh r0, [r1]
+ adds r0, 0x1
+ strh r0, [r1]
+ movs r2, 0
+ ldrsh r4, [r1, r2]
+ ldr r3, =0x0300115c
+ ldr r0, [r3]
+ movs r1, 0xC8
+ bl __udivsi3
+ adds r0, 0x1
+ cmp r4, r0
+ bne _080E7714
+ ldr r0, [sp, 0x8]
+ adds r0, 0x1
+ lsls r0, 24
+ lsrs r0, 24
+ str r0, [sp, 0x8]
+_080E7714:
+ mov r4, r9
+ lsls r0, r4, 24
+ lsrs r0, 24
+ mov r8, r0
+_080E771C:
+ bl sub_8009FCC
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r8, r0
+ bcc _080E7678
+ ldr r2, =0x03005e00
+ mov r0, r10
+ movs r3, 0x8
+ ldrsh r1, [r0, r3]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 3
+ adds r0, r2
+ ldrh r1, [r0, 0x8]
+ adds r1, 0x1
+ strh r1, [r0, 0x8]
+_080E773E:
+ bl sub_8009FCC
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r4, [sp, 0x8]
+ cmp r4, r0
+ bne _080E7752
+ ldr r0, [sp]
+ bl DestroyTask
+_080E7752:
+ add sp, 0xC
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_80E7630
+
+ thumb_func_start sub_80E776C
+sub_80E776C: @ 80E776C
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r3, r0, 24
+ lsls r0, r3, 2
+ adds r0, r3
+ lsls r0, 3
+ ldr r2, =0x03005e00
+ adds r0, r2
+ movs r4, 0x1C
+ ldrsh r1, [r0, r4]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 3
+ adds r0, r2
+ ldrb r0, [r0, 0x4]
+ cmp r0, 0
+ bne _080E7794
+ adds r0, r3, 0
+ bl DestroyTask
+_080E7794:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_80E776C
+
+ thumb_func_start sub_80E77A0
+sub_80E77A0: @ 80E77A0
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ ldr r0, =0x03005e00
+ adds r1, r0
+ ldr r0, =sub_80E776C
+ str r0, [r1]
+ ldr r0, =0x03001130
+ ldrb r0, [r0]
+ cmp r0, 0x1
+ bne _080E77C4
+ movs r2, 0x12
+ ldrsh r0, [r1, r2]
+ bl sub_80E6F60
+_080E77C4:
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_80E77A0
+
+ thumb_func_start sub_80E77D4
+sub_80E77D4: @ 80E77D4
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, =0x03005e00
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r2
+ ldr r0, =sub_80E77A0
+ str r0, [r1]
+ ldr r1, =0x03001130
+ movs r0, 0x1
+ strb r0, [r1]
+ bx lr
+ .pool
+ thumb_func_end sub_80E77D4
+
+ thumb_func_start sub_80E77FC
+sub_80E77FC: @ 80E77FC
+ adds r1, r0, 0
+ ldrh r0, [r1]
+ ldrh r1, [r1, 0x2]
+ lsls r1, 16
+ orrs r0, r1
+ bx lr
+ thumb_func_end sub_80E77FC
+
+ thumb_func_start sub_80E7808
+sub_80E7808: @ 80E7808
+ strh r0, [r1]
+ lsrs r0, 16
+ strh r0, [r1, 0x2]
+ bx lr
+ thumb_func_end sub_80E7808
+
+ thumb_func_start sub_80E7810
+sub_80E7810: @ 80E7810
+ push {lr}
+ bl link_get_multiplayer_id
+ lsls r0, 24
+ lsrs r0, 24
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80E7810
+
+ thumb_func_start sub_80E7820
+sub_80E7820: @ 80E7820
+ lsls r0, 24
+ lsrs r0, 16
+ ldr r1, =0x020223c4
+ adds r0, r1
+ bx lr
+ .pool
+ thumb_func_end sub_80E7820
+
+ thumb_func_start sub_80E7830
+sub_80E7830: @ 80E7830
+ push {r4,lr}
+ adds r4, r0, 0
+ bl sub_8009FCC
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x3
+ beq _080E7868
+ cmp r0, 0x3
+ bhi _080E784A
+ cmp r0, 0x2
+ beq _080E7850
+ b _080E78B8
+_080E784A:
+ cmp r0, 0x4
+ beq _080E7894
+ b _080E78B8
+_080E7850:
+ movs r3, 0
+ ldr r2, =gUnknown_0858CF8C
+ adds r1, r4, 0
+_080E7856:
+ adds r0, r3, r2
+ ldrb r0, [r0]
+ stm r1!, {r0}
+ adds r3, 0x1
+ cmp r3, 0x1
+ bls _080E7856
+ b _080E78B8
+ .pool
+_080E7868:
+ movs r0, 0
+ bl sub_800A2A4
+ adds r2, r0, 0
+ movs r0, 0x1
+ ands r2, r0
+ movs r3, 0
+ ldr r1, =gUnknown_0858CF8E
+ lsls r0, r2, 1
+ adds r0, r2
+ adds r1, r0, r1
+ adds r2, r4, 0
+_080E7880:
+ ldrb r0, [r1]
+ stm r2!, {r0}
+ adds r1, 0x1
+ adds r3, 0x1
+ cmp r3, 0x2
+ bls _080E7880
+ b _080E78B8
+ .pool
+_080E7894:
+ movs r0, 0
+ bl sub_800A2A4
+ movs r1, 0x9
+ bl __umodsi3
+ adds r2, r0, 0
+ movs r3, 0
+ ldr r1, =gUnknown_0858CF94
+ lsls r0, r2, 2
+ adds r1, r0, r1
+ adds r2, r4, 0
+_080E78AC:
+ ldrb r0, [r1]
+ stm r2!, {r0}
+ adds r1, 0x1
+ adds r3, 0x1
+ cmp r3, 0x3
+ bls _080E78AC
+_080E78B8:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_80E7830
+
+ thumb_func_start sub_80E78C4
+sub_80E78C4: @ 80E78C4
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ sub sp, 0x10
+ mov r9, r0
+ mov r8, r1
+ lsls r2, 24
+ lsrs r7, r2, 24
+ mov r0, sp
+ bl sub_80E7830
+ lsls r0, r7, 2
+ add r0, sp
+ ldr r1, [r0]
+ mov r0, r8
+ muls r0, r1
+ mov r2, r9
+ adds r6, r2, r0
+ ldr r2, =0x020229e8
+ lsls r0, r1, 3
+ subs r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrb r4, [r0]
+ ldrh r5, [r0, 0x1A]
+ bl sub_800A064
+ cmp r0, 0
+ beq _080E7910
+ adds r0, r6, 0
+ adds r1, r4, 0
+ adds r2, r5, 0
+ bl sub_8120D34
+ b _080E791A
+ .pool
+_080E7910:
+ adds r0, r6, 0
+ adds r1, r4, 0
+ adds r2, r5, 0
+ bl sub_8120CD0
+_080E791A:
+ ldr r0, =0x03001140
+ ldr r0, [r0]
+ lsls r1, r7, 2
+ add r1, sp
+ ldr r1, [r1]
+ mov r2, r8
+ muls r2, r1
+ adds r1, r2, 0
+ add r1, r9
+ movs r2, 0x40
+ bl memcpy
+ bl sub_8120670
+ add sp, 0x10
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_80E78C4
+
+ thumb_func_start sub_80E7948
+sub_80E7948: @ 80E7948
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ sub sp, 0x10
+ mov r8, r0
+ adds r7, r1, 0
+ lsls r2, 24
+ lsrs r6, r2, 24
+ mov r0, sp
+ bl sub_80E7830
+ bl sub_800A064
+ cmp r0, 0
+ beq _080E79AC
+ lsls r0, r6, 2
+ mov r1, sp
+ adds r5, r1, r0
+ ldr r0, [r5]
+ muls r0, r7
+ add r0, r8
+ adds r4, r7, 0
+ muls r4, r6
+ mov r1, r8
+ adds r6, r1, r4
+ adds r1, r6, 0
+ bl sub_816587C
+ mov r9, r4
+ cmp r0, 0x1
+ bne _080E79FE
+ adds r7, r6, 0
+ ldr r2, =0x020229e8
+ ldr r1, [r5]
+ lsls r0, r1, 3
+ subs r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrh r1, [r0, 0x1A]
+ adds r0, r7, 0
+ adds r0, 0xE4
+ strb r1, [r0]
+ adds r0, r7, 0
+ bl sub_8164F70
+ b _080E79FE
+ .pool
+_080E79AC:
+ adds r5, r7, 0
+ muls r5, r6
+ mov r0, r8
+ adds r4, r0, r5
+ lsls r0, r6, 2
+ add r0, sp
+ ldr r0, [r0]
+ adds r1, r7, 0
+ muls r1, r0
+ add r1, r8
+ adds r0, r4, 0
+ movs r2, 0xEC
+ bl memcpy
+ adds r7, r4, 0
+ movs r6, 0
+ mov r9, r5
+_080E79CE:
+ movs r0, 0x2C
+ muls r0, r6
+ adds r0, 0x34
+ adds r1, r7, r0
+ ldrh r0, [r1]
+ cmp r0, 0
+ beq _080E79F2
+ adds r4, r1, 0
+ adds r4, 0x20
+ adds r0, r4, 0
+ bl sub_8009228
+ cmp r0, 0
+ beq _080E79F2
+ adds r0, r4, 0
+ movs r1, 0x1
+ bl StopMusicWhileStringIsPrinted
+_080E79F2:
+ adds r6, 0x1
+ cmp r6, 0x3
+ ble _080E79CE
+ adds r0, r7, 0
+ bl sub_8164F70
+_080E79FE:
+ mov r0, r8
+ add r0, r9
+ bl sub_81628A0
+ add sp, 0x10
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80E7948
+
+ thumb_func_start sub_80E7A14
+sub_80E7A14: @ 80E7A14
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ sub sp, 0x10
+ mov r8, r0
+ adds r7, r1, 0
+ lsls r2, 24
+ lsrs r5, r2, 24
+ mov r0, sp
+ bl sub_80E7830
+ adds r0, r7, 0
+ muls r0, r5
+ add r0, r8
+ ldr r6, =0x03001150
+ ldr r1, [r6]
+ movs r2, 0x40
+ bl memcpy
+ bl sub_818D9AC
+ lsls r0, 24
+ cmp r0, 0
+ bne _080E7A60
+ movs r0, 0x40
+ bl Alloc
+ adds r4, r0, 0
+ cmp r4, 0
+ beq _080E7A8A
+ ldr r1, [r6]
+ movs r2, 0x40
+ bl memcpy
+ b _080E7A62
+ .pool
+_080E7A60:
+ movs r4, 0
+_080E7A62:
+ ldr r0, =0x03001150
+ ldr r0, [r0]
+ lsls r1, r5, 2
+ add r1, sp
+ ldr r1, [r1]
+ muls r1, r7
+ add r1, r8
+ movs r2, 0x40
+ bl memcpy
+ bl sub_818DA78
+ cmp r4, 0
+ beq _080E7A8A
+ adds r0, r4, 0
+ bl sub_818E570
+ adds r0, r4, 0
+ bl Free
+_080E7A8A:
+ add sp, 0x10
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_80E7A14
+
+ thumb_func_start sub_80E7A9C
+sub_80E7A9C: @ 80E7A9C
+ ldrh r0, [r0, 0x20]
+ lsls r0, 24
+ lsrs r0, 24
+ bx lr
+ thumb_func_end sub_80E7A9C
+
+ thumb_func_start sub_80E7AA4
+sub_80E7AA4: @ 80E7AA4
+ push {r4-r6,lr}
+ mov r6, r10
+ mov r5, r9
+ mov r4, r8
+ push {r4-r6}
+ sub sp, 0x38
+ mov r8, r0
+ mov r10, r1
+ mov r9, r2
+ adds r4, r3, 0
+ ldr r5, [sp, 0x54]
+ lsls r4, 24
+ lsls r5, 24
+ lsrs r5, 24
+ lsrs r4, 23
+ add r4, r9
+ ldrb r0, [r4]
+ mov r6, r10
+ muls r6, r0
+ add r6, r8
+ ldrb r0, [r4, 0x1]
+ lsls r1, r0, 3
+ subs r1, r0
+ lsls r1, 3
+ adds r1, r6, r1
+ mov r0, sp
+ movs r2, 0x38
+ bl memcpy
+ lsls r5, 1
+ add r5, r9
+ ldrb r0, [r5]
+ mov r1, r10
+ muls r1, r0
+ adds r0, r1, 0
+ add r8, r0
+ ldrb r1, [r4, 0x1]
+ lsls r0, r1, 3
+ subs r0, r1
+ lsls r0, 3
+ adds r6, r0
+ ldrb r0, [r5, 0x1]
+ lsls r1, r0, 3
+ subs r1, r0
+ lsls r1, 3
+ add r1, r8
+ adds r0, r6, 0
+ movs r2, 0x38
+ bl memcpy
+ ldrb r1, [r5, 0x1]
+ lsls r0, r1, 3
+ subs r0, r1
+ lsls r0, 3
+ add r8, r0
+ mov r0, r8
+ mov r1, sp
+ movs r2, 0x38
+ bl memcpy
+ add sp, 0x38
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80E7AA4
+
+ thumb_func_start sub_80E7B2C
+sub_80E7B2C: @ 80E7B2C
+ push {r4,lr}
+ adds r3, r0, 0
+ movs r2, 0
+ movs r1, 0
+ ldr r4, =0x03001160
+_080E7B36:
+ adds r0, r3, r1
+ ldrb r0, [r0]
+ adds r0, r2, r0
+ lsls r0, 24
+ lsrs r2, r0, 24
+ adds r1, 0x1
+ cmp r1, 0xFF
+ ble _080E7B36
+ strb r2, [r4]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_80E7B2C
+
+ thumb_func_start sub_80E7B54
+sub_80E7B54: @ 80E7B54
+ ldr r0, =0x03001160
+ ldrb r0, [r0]
+ bx lr
+ .pool
+ thumb_func_end sub_80E7B54
+
+ thumb_func_start sub_80E7B60
+sub_80E7B60: @ 80E7B60
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x58
+ str r0, [sp, 0x2C]
+ str r1, [sp, 0x30]
+ lsls r2, 24
+ lsrs r2, 24
+ mov r9, r2
+ bl GenerateRandomNumber2
+ lsls r0, 16
+ lsrs r0, 16
+ str r0, [sp, 0x38]
+ ldr r0, =0x020229e8
+ ldrh r0, [r0, 0x4]
+ bl SeedRng2
+ bl sub_8009FCC
+ lsls r0, 24
+ lsrs r4, r0, 24
+ movs r0, 0
+ mov r8, r0
+ mov r1, sp
+ adds r1, 0x1C
+ str r1, [sp, 0x4C]
+ mov r2, sp
+ adds r2, 0x1D
+ str r2, [sp, 0x50]
+ mov r3, sp
+ adds r3, 0xC
+ str r3, [sp, 0x48]
+ movs r7, 0xFF
+ add r3, sp, 0x8
+ movs r2, 0
+ adds r6, r1, 0
+ ldr r5, [sp, 0x50]
+_080E7BB0:
+ mov r1, sp
+ add r1, r8
+ adds r1, 0x4
+ ldrb r0, [r1]
+ orrs r0, r7
+ strb r0, [r1]
+ mov r1, r8
+ adds r0, r3, r1
+ strb r2, [r0]
+ lsls r1, 1
+ adds r0, r6, r1
+ strb r2, [r0]
+ adds r1, r5, r1
+ strb r2, [r1]
+ mov r0, r8
+ adds r0, 0x1
+ lsls r0, 16
+ lsrs r0, 16
+ mov r8, r0
+ cmp r0, 0x3
+ bls _080E7BB0
+ bl sub_800A064
+ str r0, [sp, 0x3C]
+ movs r2, 0
+ mov r8, r2
+ lsls r4, 16
+ str r4, [sp, 0x54]
+ ldr r0, [sp, 0x30]
+ mov r3, r9
+ muls r3, r0
+ str r3, [sp, 0x44]
+ b _080E7D04
+ .pool
+_080E7BF8:
+ ldr r1, [sp, 0x30]
+ mov r0, r8
+ muls r0, r1
+ ldr r2, [sp, 0x2C]
+ adds r7, r2, r0
+ ldr r1, =0x020229e8
+ mov r3, r8
+ lsls r0, r3, 3
+ subs r0, r3
+ lsls r0, 2
+ adds r0, r1
+ ldrh r1, [r0, 0x1A]
+ mov r9, r1
+ ldrb r0, [r0]
+ str r0, [sp, 0x40]
+ movs r6, 0
+ ldr r0, [r7, 0x70]
+ cmp r6, r0
+ bcs _080E7CFA
+ movs r2, 0x10
+ negs r2, r2
+ mov r10, r2
+_080E7C24:
+ lsls r0, r6, 3
+ subs r0, r6
+ lsls r0, 3
+ adds r5, r7, r0
+ ldrh r0, [r5, 0x20]
+ cmp r0, 0
+ beq _080E7CEE
+ ldr r3, [sp, 0x3C]
+ cmp r3, 0
+ beq _080E7C9A
+ adds r4, r5, 0
+ adds r4, 0x24
+ adds r0, r4, 0
+ bl GetStringLength
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0x5
+ bhi _080E7C54
+ movs r4, 0x1
+ b _080E7C5C
+ .pool
+_080E7C54:
+ adds r0, r4, 0
+ bl StripExtendedControlCodes
+ mov r4, r9
+_080E7C5C:
+ ldrh r1, [r5, 0x2C]
+ ldr r0, =0x000015fc
+ cmp r1, r0
+ bne _080E7C74
+ adds r0, r5, 0
+ adds r0, 0x2C
+ bl StripExtendedControlCodes
+ movs r1, 0x1
+ b _080E7C76
+ .pool
+_080E7C74:
+ mov r1, r9
+_080E7C76:
+ ldr r0, [sp, 0x40]
+ subs r0, 0x1
+ cmp r0, 0x1
+ bhi _080E7CEE
+ adds r2, r5, 0
+ adds r2, 0x37
+ movs r0, 0xF
+ ands r4, r0
+ ldrb r0, [r2]
+ mov r3, r10
+ ands r0, r3
+ orrs r0, r4
+ lsls r1, 4
+ movs r3, 0xF
+ ands r0, r3
+ orrs r0, r1
+ strb r0, [r2]
+ b _080E7CEE
+_080E7C9A:
+ mov r0, r9
+ cmp r0, 0x1
+ bne _080E7CEE
+ adds r0, r5, 0
+ adds r0, 0x24
+ bl sub_8009228
+ cmp r0, 0
+ beq _080E7CBA
+ adds r0, r5, 0
+ adds r0, 0x37
+ ldrb r1, [r0]
+ mov r2, r10
+ ands r1, r2
+ movs r2, 0x1
+ b _080E7CC6
+_080E7CBA:
+ adds r0, r5, 0
+ adds r0, 0x37
+ ldrb r1, [r0]
+ mov r3, r10
+ ands r1, r3
+ movs r2, 0x2
+_080E7CC6:
+ orrs r1, r2
+ strb r1, [r0]
+ adds r4, r0, 0
+ adds r0, r5, 0
+ adds r0, 0x2C
+ bl sub_8009228
+ cmp r0, 0
+ beq _080E7CE2
+ ldrb r0, [r4]
+ movs r1, 0xF
+ ands r1, r0
+ movs r0, 0x10
+ b _080E7CEA
+_080E7CE2:
+ ldrb r0, [r4]
+ movs r1, 0xF
+ ands r1, r0
+ movs r0, 0x20
+_080E7CEA:
+ orrs r1, r0
+ strb r1, [r4]
+_080E7CEE:
+ adds r0, r6, 0x1
+ lsls r0, 16
+ lsrs r6, r0, 16
+ ldr r0, [r7, 0x70]
+ cmp r6, r0
+ bcc _080E7C24
+_080E7CFA:
+ mov r0, r8
+ adds r0, 0x1
+ lsls r0, 16
+ lsrs r0, 16
+ mov r8, r0
+_080E7D04:
+ bl sub_8009FCC
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r8, r0
+ bcs _080E7D12
+ b _080E7BF8
+_080E7D12:
+ movs r0, 0
+ str r0, [sp, 0x34]
+ mov r8, r0
+ ldr r1, [sp, 0x54]
+ lsrs r0, r1, 16
+ ldr r2, [sp, 0x34]
+ cmp r2, r0
+ bcs _080E7D70
+ adds r5, r0, 0
+_080E7D24:
+ ldr r3, [sp, 0x30]
+ mov r0, r8
+ muls r0, r3
+ ldr r1, [sp, 0x2C]
+ adds r7, r1, r0
+ ldr r0, [r7, 0x70]
+ cmp r0, 0
+ beq _080E7D62
+ movs r6, 0
+ cmp r6, r0
+ bcs _080E7D62
+ adds r3, r7, 0
+ adds r3, 0x74
+ ldr r2, [sp, 0x4C]
+ mov r0, r8
+ lsls r1, r0, 1
+ movs r4, 0x1
+_080E7D46:
+ lsls r0, r6, 1
+ adds r0, r3, r0
+ ldrh r0, [r0]
+ cmp r0, 0
+ bne _080E7D56
+ adds r0, r6, r1
+ adds r0, r2, r0
+ strb r4, [r0]
+_080E7D56:
+ adds r0, r6, 0x1
+ lsls r0, 16
+ lsrs r6, r0, 16
+ ldr r0, [r7, 0x70]
+ cmp r6, r0
+ bcc _080E7D46
+_080E7D62:
+ mov r0, r8
+ adds r0, 0x1
+ lsls r0, 16
+ lsrs r0, 16
+ mov r8, r0
+ cmp r8, r5
+ bcc _080E7D24
+_080E7D70:
+ movs r6, 0
+ mov r8, r6
+ ldr r1, [sp, 0x54]
+ cmp r1, 0
+ beq _080E7E64
+ add r2, sp, 0x24
+ mov r10, r2
+ movs r3, 0x25
+ add r3, sp
+ mov r9, r3
+_080E7D84:
+ ldr r1, [sp, 0x30]
+ mov r0, r8
+ muls r0, r1
+ ldr r2, [sp, 0x2C]
+ adds r7, r2, r0
+ mov r3, r8
+ lsls r1, r3, 1
+ ldr r2, [sp, 0x4C]
+ adds r0, r2, r1
+ ldrb r0, [r0]
+ cmp r0, 0x1
+ beq _080E7DA6
+ ldr r3, [sp, 0x50]
+ adds r0, r3, r1
+ ldrb r0, [r0]
+ cmp r0, 0x1
+ bne _080E7DB0
+_080E7DA6:
+ ldr r0, [sp, 0x34]
+ adds r0, 0x1
+ lsls r0, 24
+ lsrs r0, 24
+ str r0, [sp, 0x34]
+_080E7DB0:
+ ldr r2, [sp, 0x4C]
+ adds r0, r2, r1
+ ldrb r0, [r0]
+ cmp r0, 0x1
+ bne _080E7DD4
+ ldr r3, [sp, 0x50]
+ adds r0, r3, r1
+ ldrb r2, [r0]
+ cmp r2, 0
+ bne _080E7DD4
+_080E7DC4:
+ lsls r1, r6, 1
+ mov r3, r10
+ adds r0, r3, r1
+ mov r3, r8
+ strb r3, [r0]
+ add r1, r9
+ strb r2, [r1]
+ b _080E7E4E
+_080E7DD4:
+ ldr r2, [sp, 0x4C]
+ adds r0, r2, r1
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _080E7DE8
+ ldr r3, [sp, 0x50]
+ adds r0, r3, r1
+ ldrb r2, [r0]
+ cmp r2, 0x1
+ beq _080E7DC4
+_080E7DE8:
+ ldr r2, [sp, 0x4C]
+ adds r0, r2, r1
+ ldrb r0, [r0]
+ cmp r0, 0x1
+ bne _080E7E54
+ ldr r3, [sp, 0x50]
+ adds r0, r3, r1
+ ldrb r0, [r0]
+ cmp r0, 0x1
+ bne _080E7E54
+ lsls r5, r6, 1
+ mov r1, r10
+ adds r0, r1, r5
+ mov r2, r8
+ strb r2, [r0]
+ adds r0, r7, 0
+ bl sub_80E7A9C
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ adds r0, r7, 0
+ adds r0, 0x38
+ bl sub_80E7A9C
+ lsls r0, 24
+ lsrs r1, r0, 24
+ cmp r4, 0
+ bne _080E7E30
+ cmp r1, 0
+ beq _080E7E34
+ mov r3, r9
+ adds r1, r3, r5
+ movs r0, 0x1
+ strb r0, [r1]
+ b _080E7E4E
+_080E7E30:
+ cmp r1, 0
+ beq _080E7E48
+_080E7E34:
+ bl GenerateRandomNumber2
+ mov r1, r9
+ adds r2, r1, r5
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0x1
+ ands r0, r1
+ strb r0, [r2]
+ b _080E7E4E
+_080E7E48:
+ mov r2, r9
+ adds r0, r2, r5
+ strb r1, [r0]
+_080E7E4E:
+ adds r0, r6, 0x1
+ lsls r0, 16
+ lsrs r6, r0, 16
+_080E7E54:
+ mov r0, r8
+ adds r0, 0x1
+ lsls r0, 16
+ lsrs r3, r0, 16
+ mov r8, r3
+ ldr r1, [sp, 0x54]
+ cmp r0, r1
+ bcc _080E7D84
+_080E7E64:
+ movs r2, 0
+ mov r8, r2
+ ldr r3, [sp, 0x44]
+ lsls r0, r3, 4
+ subs r0, r3
+ lsls r0, 3
+ ldr r1, [sp, 0x2C]
+ adds r7, r1, r0
+ ldr r1, [sp, 0x48]
+_080E7E76:
+ mov r2, r8
+ lsls r0, r2, 2
+ adds r0, r1, r0
+ str r7, [r0]
+ mov r0, r8
+ adds r0, 0x1
+ lsls r0, 16
+ lsrs r0, 16
+ mov r8, r0
+ cmp r0, 0x3
+ bls _080E7E76
+ bl sub_80E7B54
+ lsls r0, 24
+ lsrs r0, 24
+ movs r1, 0x3
+ bl __umodsi3
+ lsls r0, 24
+ lsrs r1, r0, 24
+ ldr r3, [sp, 0x34]
+ cmp r3, 0x3
+ beq _080E7EC8
+ cmp r3, 0x3
+ bgt _080E7EAE
+ cmp r3, 0x2
+ beq _080E7EB6
+ b _080E7F1C
+_080E7EAE:
+ ldr r0, [sp, 0x34]
+ cmp r0, 0x4
+ beq _080E7EE8
+ b _080E7F1C
+_080E7EB6:
+ add r2, sp, 0x24
+ movs r0, 0x1
+ str r0, [sp]
+ ldr r0, [sp, 0x2C]
+ ldr r1, [sp, 0x30]
+ movs r3, 0
+ bl sub_80E7AA4
+ b _080E7F1C
+_080E7EC8:
+ ldr r0, =gUnknown_0858CFB8
+ lsls r1, 1
+ adds r2, r1, r0
+ ldrb r3, [r2]
+ adds r0, 0x1
+ adds r1, r0
+ ldrb r0, [r1]
+ add r2, sp, 0x24
+ str r0, [sp]
+ ldr r0, [sp, 0x2C]
+ ldr r1, [sp, 0x30]
+ bl sub_80E7AA4
+ b _080E7F1C
+ .pool
+_080E7EE8:
+ add r6, sp, 0x24
+ ldr r4, =gUnknown_0858CFBE
+ lsls r5, r1, 2
+ adds r0, r5, r4
+ ldrb r3, [r0]
+ adds r0, r4, 0x1
+ adds r0, r5, r0
+ ldrb r0, [r0]
+ str r0, [sp]
+ ldr r0, [sp, 0x2C]
+ ldr r1, [sp, 0x30]
+ adds r2, r6, 0
+ bl sub_80E7AA4
+ adds r0, r4, 0x2
+ adds r0, r5, r0
+ ldrb r3, [r0]
+ adds r4, 0x3
+ adds r5, r4
+ ldrb r0, [r5]
+ str r0, [sp]
+ ldr r0, [sp, 0x2C]
+ ldr r1, [sp, 0x30]
+ adds r2, r6, 0
+ bl sub_80E7AA4
+_080E7F1C:
+ ldr r1, [sp, 0x2C]
+ ldr r2, [sp, 0x44]
+ adds r7, r1, r2
+ ldr r4, =0x03005d8c
+ ldr r0, [r4]
+ movs r3, 0xC2
+ lsls r3, 6
+ adds r0, r3
+ adds r1, r7, 0
+ movs r2, 0x38
+ bl memcpy
+ ldr r0, [r4]
+ ldr r1, =0x0000310c
+ adds r0, r1
+ adds r1, r7, 0
+ adds r1, 0x38
+ movs r2, 0x38
+ bl memcpy
+ ldr r0, [sp, 0x38]
+ bl SeedRng
+ add sp, 0x58
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_80E7B60
+
+ thumb_func_start sub_80E7F68
+sub_80E7F68: @ 80E7F68
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r1, 24
+ cmp r1, 0
+ beq _080E7FEC
+ ldrh r0, [r4]
+ cmp r0, 0
+ beq _080E7FEC
+ bl sub_80D6C68
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x5
+ bne _080E7FEC
+ ldrh r0, [r4]
+ movs r1, 0x1
+ bl sub_80D6724
+ lsls r0, 24
+ cmp r0, 0
+ bne _080E7FE4
+ ldrh r0, [r4]
+ movs r1, 0x1
+ bl sub_80D6D1C
+ lsls r0, 24
+ cmp r0, 0
+ bne _080E7FE4
+ ldrh r0, [r4]
+ movs r1, 0x1
+ bl bag_add_item
+ lsls r0, 24
+ cmp r0, 0
+ beq _080E7FE4
+ ldr r0, =0x00004001
+ ldrh r1, [r4]
+ bl VarSet
+ ldr r0, =0x02021cc4
+ ldr r1, =0x020229f0
+ bl CopyString
+ ldrh r1, [r4]
+ ldr r0, =0x00000113
+ cmp r1, r0
+ bne _080E7FEC
+ ldr r0, =0x000008b3
+ bl FlagSet
+ b _080E7FEC
+ .pool
+_080E7FE4:
+ ldr r0, =0x00004001
+ movs r1, 0
+ bl VarSet
+_080E7FEC:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_80E7F68
+
+ thumb_func_start sub_80E7FF8
+sub_80E7FF8: @ 80E7FF8
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ ldr r1, =0x03005e00
+ adds r4, r0, r1
+ movs r1, 0x8
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x9
+ bls _080E8012
+ b _080E810A
+_080E8012:
+ lsls r0, 2
+ ldr r1, =_080E8024
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .pool
+ .align 2, 0
+_080E8024:
+ .4byte _080E80F2
+ .4byte _080E804C
+ .4byte _080E805A
+ .4byte _080E8064
+ .4byte _080E807C
+ .4byte _080E8090
+ .4byte _080E80A4
+ .4byte _080E80C0
+ .4byte _080E80EE
+ .4byte _080E80FA
+_080E804C:
+ bl sub_800A064
+ cmp r0, 0
+ bne _080E80F2
+ movs r0, 0x6
+ strh r0, [r4, 0x8]
+ b _080E810A
+_080E805A:
+ bl sub_8076D5C
+ bl sub_8153430
+ b _080E80F2
+_080E8064:
+ bl sub_8153474
+ lsls r0, 24
+ cmp r0, 0
+ beq _080E810A
+ bl sav2_gender2_inplace_and_xFE
+ movs r1, 0
+ movs r0, 0x4
+ strh r0, [r4, 0x8]
+ strh r1, [r4, 0xA]
+ b _080E810A
+_080E807C:
+ ldrh r0, [r4, 0xA]
+ adds r0, 0x1
+ strh r0, [r4, 0xA]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0xA
+ ble _080E810A
+ bl sub_800AC34
+ b _080E80F2
+_080E8090:
+ ldr r0, =0x03003124
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _080E810A
+ adds r0, r5, 0
+ bl DestroyTask
+ b _080E810A
+ .pool
+_080E80A4:
+ movs r0, 0
+ bl sub_801048C
+ lsls r0, 24
+ cmp r0, 0
+ bne _080E810A
+ ldr r0, =sub_8153688
+ movs r1, 0x5
+ bl CreateTask
+ b _080E80F2
+ .pool
+_080E80C0:
+ ldr r0, =sub_8153688
+ bl FuncIsActiveTask
+ lsls r0, 24
+ cmp r0, 0
+ bne _080E810A
+ ldr r0, =0x030030fc
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _080E80E8
+ movs r0, 0x1
+ bl sub_801048C
+ movs r0, 0x8
+ strh r0, [r4, 0x8]
+ b _080E810A
+ .pool
+_080E80E8:
+ movs r0, 0x4
+ strh r0, [r4, 0x8]
+ b _080E810A
+_080E80EE:
+ bl sub_800ADF8
+_080E80F2:
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+ b _080E810A
+_080E80FA:
+ bl sub_800A520
+ lsls r0, 24
+ cmp r0, 0
+ beq _080E810A
+ adds r0, r5, 0
+ bl DestroyTask
+_080E810A:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80E7FF8
+
+ thumb_func_start sub_80E8110
+sub_80E8110: @ 80E8110
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x10
+ str r0, [sp]
+ mov r10, r1
+ adds r1, r0, 0
+ adds r1, 0x38
+ movs r0, 0xFF
+ strb r0, [r1]
+ ldr r1, [sp]
+ adds r1, 0x7C
+ movs r0, 0x1
+ negs r0, r0
+ strb r0, [r1]
+ ldr r0, [sp]
+ mov r1, r10
+ movs r2, 0x44
+ bl memcpy
+ movs r0, 0
+ str r0, [sp, 0x8]
+ movs r1, 0
+ str r1, [sp, 0xC]
+ movs r2, 0
+ str r2, [sp, 0x4]
+ mov r8, r2
+ movs r7, 0
+ ldr r0, =0x03005d90
+ mov r9, r0
+_080E8150:
+ mov r1, r9
+ ldr r0, [r1]
+ adds r0, 0xB2
+ ldrb r0, [r0]
+ lsls r0, 27
+ lsrs r0, 30
+ adds r0, r7, r0
+ movs r1, 0x3
+ bl __modsi3
+ adds r6, r0, 0x1
+ lsls r0, r6, 4
+ adds r0, r6
+ lsls r0, 2
+ mov r2, r10
+ adds r1, r0, r2
+ adds r0, r1, 0
+ adds r0, 0x38
+ ldrb r0, [r0]
+ cmp r0, 0xFF
+ beq _080E81B8
+ adds r5, r1, 0
+ adds r5, 0x34
+ adds r0, r5, 0
+ bl sub_80842DC
+ adds r4, r0, 0
+ mov r1, r9
+ ldr r0, [r1]
+ adds r0, 0xA
+ bl sub_80842DC
+ cmp r4, r0
+ beq _080E819A
+ movs r2, 0x1
+ add r8, r2
+ str r6, [sp, 0x4]
+_080E819A:
+ adds r0, r5, 0
+ bl sub_80842DC
+ adds r4, r0, 0
+ mov r1, r9
+ ldr r0, [r1]
+ adds r0, 0xA
+ bl sub_80842DC
+ cmp r4, r0
+ bne _080E81B8
+ ldr r2, [sp, 0xC]
+ adds r2, 0x1
+ str r2, [sp, 0xC]
+ str r6, [sp, 0x8]
+_080E81B8:
+ adds r7, 0x1
+ cmp r7, 0x1
+ ble _080E8150
+ mov r0, r8
+ cmp r0, 0
+ bne _080E81D0
+ ldr r1, [sp, 0xC]
+ cmp r1, 0
+ beq _080E81D0
+ mov r8, r1
+ ldr r2, [sp, 0x8]
+ str r2, [sp, 0x4]
+_080E81D0:
+ mov r0, r8
+ cmp r0, 0x1
+ beq _080E81E0
+ cmp r0, 0x2
+ beq _080E81EC
+ b _080E824C
+ .pool
+_080E81E0:
+ ldr r2, [sp, 0x4]
+ lsls r1, r2, 4
+ adds r1, r2
+ lsls r1, 2
+ add r1, r10
+ b _080E820E
+_080E81EC:
+ bl GenerateRandomNumber2
+ lsls r0, 16
+ ldr r1, =0x33330000
+ cmp r0, r1
+ bls _080E8224
+ ldr r0, =0x03005d90
+ ldr r0, [r0]
+ adds r0, 0xB2
+ ldrb r0, [r0]
+ lsls r0, 27
+ lsrs r0, 30
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ add r1, r10
+ adds r1, 0x44
+_080E820E:
+ ldr r0, [sp]
+ adds r0, 0x44
+ movs r2, 0x44
+ bl memcpy
+ b _080E824C
+ .pool
+_080E8224:
+ ldr r0, =0x03005d90
+ ldr r0, [r0]
+ adds r0, 0xB2
+ ldrb r0, [r0]
+ lsls r0, 27
+ lsrs r0, 30
+ adds r0, 0x1
+ movs r1, 0x3
+ bl __modsi3
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ add r1, r10
+ adds r1, 0x44
+ ldr r0, [sp]
+ adds r0, 0x44
+ movs r2, 0x44
+ bl memcpy
+_080E824C:
+ add sp, 0x10
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_80E8110
+
+ thumb_func_start sub_80E8260
+sub_80E8260: @ 80E8260
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0xC
+ mov r8, r0
+ movs r6, 0
+ ldr r0, =0x03005d90
+ mov r10, r0
+_080E8274:
+ movs r7, 0
+ lsls r0, r6, 5
+ adds r6, 0x1
+ mov r9, r6
+ mov r1, r8
+ adds r4, r0, r1
+ adds r0, 0x6
+ adds r6, r1, r0
+ adds r5, r4, 0
+_080E8286:
+ mov r2, r10
+ ldr r1, [r2]
+ adds r1, 0xA
+ adds r0, r5, 0
+ bl sub_80842F4
+ movs r0, 0x2
+ strb r0, [r4, 0xE]
+ mov r0, r10
+ ldr r1, [r0]
+ adds r0, r6, 0
+ bl CopyString
+ adds r4, 0x10
+ adds r6, 0x10
+ adds r5, 0x10
+ adds r7, 0x1
+ cmp r7, 0x1
+ ble _080E8286
+ mov r6, r9
+ cmp r6, 0x8
+ ble _080E8274
+ ldr r1, =0x03005d90
+ mov r10, r1
+ ldr r2, =0x00000ee1
+ str r2, [sp, 0x4]
+ movs r4, 0x99
+ lsls r4, 1
+ add r4, r8
+ movs r0, 0x95
+ lsls r0, 1
+ add r0, r8
+ mov r9, r0
+ ldr r1, =0x00000ef1
+ str r1, [sp, 0x8]
+ movs r6, 0x92
+ lsls r6, 1
+ add r6, r8
+ movs r5, 0x90
+ lsls r5, 1
+ add r5, r8
+ movs r7, 0x1
+_080E82DA:
+ movs r0, 0x2
+ strb r0, [r4, 0x8]
+ mov r2, r10
+ ldr r1, [r2]
+ adds r1, 0xA
+ adds r0, r5, 0
+ bl sub_80842F4
+ mov r0, r10
+ ldr r1, [r0]
+ ldr r2, [sp, 0x8]
+ adds r1, r2
+ adds r0, r6, 0
+ bl sub_80842F4
+ mov r0, r10
+ ldr r1, [r0]
+ mov r0, r9
+ bl CopyString
+ mov r2, r10
+ ldr r1, [r2]
+ ldr r0, [sp, 0x4]
+ adds r1, r0
+ adds r0, r4, 0
+ bl CopyString
+ ldr r1, [sp, 0x4]
+ adds r1, 0x8
+ str r1, [sp, 0x4]
+ adds r4, 0x1C
+ movs r2, 0x1C
+ add r9, r2
+ ldr r0, [sp, 0x8]
+ adds r0, 0x4
+ str r0, [sp, 0x8]
+ adds r6, 0x1C
+ adds r5, 0x1C
+ subs r7, 0x1
+ cmp r7, 0
+ bge _080E82DA
+ movs r6, 0
+ ldr r0, =0x03005d90
+ ldr r3, [r0]
+ mov r4, r8
+ movs r1, 0xC4
+ adds r1, r4
+ mov r9, r1
+ movs r2, 0x84
+ adds r2, r4
+ mov r8, r2
+ movs r0, 0x44
+ adds r0, r4
+ mov r12, r0
+ adds r7, r4, 0x4
+ movs r1, 0xCF
+ lsls r1, 4
+ adds r1, r3, r1
+ str r1, [sp]
+ mov r10, r4
+ ldr r2, =0x00000cf4
+ adds r5, r3, r2
+_080E8356:
+ lsls r2, r6, 1
+ ldr r1, [sp]
+ ldrh r0, [r1]
+ strh r0, [r7]
+ ldrh r0, [r5]
+ strh r0, [r7, 0x20]
+ ldrh r0, [r5, 0x4]
+ mov r1, r12
+ strh r0, [r1]
+ ldr r1, =0x00000d14
+ adds r0, r3, r1
+ adds r0, r2
+ ldrh r0, [r0]
+ mov r1, r12
+ strh r0, [r1, 0x20]
+ movs r1, 0xDD
+ lsls r1, 4
+ adds r0, r3, r1
+ adds r0, r2
+ ldrh r0, [r0]
+ mov r1, r8
+ strh r0, [r1]
+ ldr r1, =0x00000dde
+ adds r0, r3, r1
+ adds r0, r2
+ ldrh r0, [r0]
+ mov r1, r8
+ strh r0, [r1, 0x20]
+ ldr r1, =0x00000dea
+ adds r0, r3, r1
+ adds r0, r2
+ ldrh r0, [r0]
+ mov r1, r9
+ strh r0, [r1]
+ ldr r1, =0x00000e08
+ adds r0, r3, r1
+ adds r0, r2
+ ldrh r0, [r0]
+ mov r1, r9
+ strh r0, [r1, 0x20]
+ ldr r1, =0x00000e1e
+ adds r0, r3, r1
+ adds r0, r2
+ ldrh r1, [r0]
+ movs r0, 0x82
+ lsls r0, 1
+ add r0, r10
+ strh r1, [r0]
+ ldr r1, =0x00000cfc
+ adds r0, r3, r1
+ adds r0, r2
+ ldrh r1, [r0]
+ movs r2, 0x94
+ lsls r2, 1
+ adds r0, r4, r2
+ strh r1, [r0]
+ adds r4, 0x1C
+ movs r0, 0x10
+ add r9, r0
+ add r8, r0
+ add r12, r0
+ adds r7, 0x10
+ ldr r1, [sp]
+ adds r1, 0x2
+ str r1, [sp]
+ add r10, r0
+ adds r5, 0x2
+ adds r6, 0x1
+ cmp r6, 0x1
+ ble _080E8356
+ add sp, 0xC
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_80E8260
+
+ thumb_func_start sub_80E841C
+sub_80E841C: @ 80E841C
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ adds r7, r0, 0
+ movs r0, 0
+ mov r8, r0
+ adds r6, r1, 0
+ adds r6, 0x34
+ adds r5, r1, 0
+_080E842E:
+ adds r0, r7, 0
+ adds r0, 0x34
+ bl sub_80842DC
+ adds r4, r0, 0
+ adds r0, r6, 0
+ bl sub_80842DC
+ cmp r4, r0
+ bne _080E844E
+ ldrb r0, [r7, 0x2]
+ ldrb r1, [r5, 0x2]
+ cmp r0, r1
+ bne _080E844E
+ movs r0, 0x1
+ b _080E845E
+_080E844E:
+ adds r6, 0x44
+ adds r5, 0x44
+ movs r0, 0x1
+ add r8, r0
+ mov r1, r8
+ cmp r1, 0x3
+ ble _080E842E
+ movs r0, 0
+_080E845E:
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80E841C
+
+ thumb_func_start sub_80E8468
+sub_80E8468: @ 80E8468
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ sub sp, 0x14
+ adds r6, r0, 0
+ adds r5, r1, 0
+ adds r4, r2, 0
+ mov r0, sp
+ bl sub_80E7830
+ lsls r4, 2
+ mov r1, sp
+ adds r0, r1, r4
+ ldr r0, [r0]
+ muls r0, r5
+ adds r3, r6, r0
+ movs r7, 0
+ movs r2, 0
+ mov r8, r2
+ movs r5, 0
+ adds r6, r3, 0
+ adds r6, 0x38
+ adds r4, r3, 0
+_080E8496:
+ ldrb r0, [r6]
+ cmp r0, 0xFF
+ beq _080E84B4
+ ldr r0, =0x03005d90
+ ldr r1, [r0]
+ adds r1, 0xDC
+ adds r0, r4, 0
+ str r3, [sp, 0x10]
+ bl sub_80E841C
+ ldr r3, [sp, 0x10]
+ cmp r0, 0
+ bne _080E84B4
+ adds r7, 0x1
+ mov r8, r5
+_080E84B4:
+ adds r6, 0x44
+ adds r4, 0x44
+ adds r5, 0x1
+ cmp r5, 0x1
+ ble _080E8496
+ cmp r7, 0x1
+ beq _080E84CC
+ cmp r7, 0x2
+ beq _080E8508
+ b _080E8566
+ .pool
+_080E84CC:
+ ldr r4, =0x03005d90
+ ldr r0, [r4]
+ adds r1, r0, 0
+ adds r1, 0xB2
+ ldrb r1, [r1]
+ lsls r1, 27
+ lsrs r1, 30
+ adds r2, r1, 0x1
+ lsls r1, r2, 4
+ adds r1, r2
+ lsls r1, 2
+ adds r0, r1
+ adds r0, 0xDC
+ mov r2, r8
+ lsls r1, r2, 4
+ add r1, r8
+ lsls r1, 2
+ adds r1, r3
+ movs r2, 0x44
+ bl memcpy
+ ldr r4, [r4]
+ adds r4, 0xB2
+ ldrb r5, [r4]
+ lsls r0, r5, 27
+ lsrs r0, 30
+ adds r0, 0x1
+ b _080E8550
+ .pool
+_080E8508:
+ movs r5, 0
+ adds r6, r3, 0
+_080E850C:
+ movs r0, 0x1
+ eors r0, r5
+ ldr r7, =0x03005d90
+ ldr r4, [r7]
+ adds r1, r4, 0
+ adds r1, 0xB2
+ ldrb r1, [r1]
+ lsls r1, 27
+ lsrs r1, 30
+ adds r0, r1
+ movs r1, 0x3
+ bl __modsi3
+ adds r2, r0, 0x1
+ lsls r0, r2, 4
+ adds r0, r2
+ lsls r0, 2
+ adds r4, r0
+ adds r4, 0xDC
+ adds r0, r4, 0
+ adds r1, r6, 0
+ movs r2, 0x44
+ bl memcpy
+ adds r6, 0x44
+ adds r5, 0x1
+ cmp r5, 0x1
+ ble _080E850C
+ ldr r4, [r7]
+ adds r4, 0xB2
+ ldrb r5, [r4]
+ lsls r0, r5, 27
+ lsrs r0, 30
+ adds r0, 0x2
+_080E8550:
+ movs r1, 0x3
+ bl __modsi3
+ movs r1, 0x3
+ ands r0, r1
+ lsls r0, 3
+ movs r1, 0x19
+ negs r1, r1
+ ands r1, r5
+ orrs r1, r0
+ strb r1, [r4]
+_080E8566:
+ add sp, 0x14
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_80E8468
+
+ thumb_func_start sub_80E8578
+sub_80E8578: @ 80E8578
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x54
+ str r0, [sp]
+ ldr r0, [sp, 0x74]
+ movs r4, 0
+ mov r8, r4
+ movs r5, 0
+ str r5, [sp, 0x4]
+ ldr r4, =0x03001168
+ b _080E85A0
+ .pool
+_080E8598:
+ adds r1, r2
+ ldr r6, [sp, 0x4]
+ adds r6, 0x1
+ str r6, [sp, 0x4]
+_080E85A0:
+ ldr r5, [sp, 0x4]
+ cmp r5, r0
+ bge _080E85B6
+ cmp r5, r3
+ beq _080E85B0
+ stm r4!, {r1}
+ movs r6, 0x1
+ add r8, r6
+_080E85B0:
+ mov r5, r8
+ cmp r5, 0x3
+ bne _080E8598
+_080E85B6:
+ movs r6, 0
+ str r6, [sp, 0x4]
+ subs r0, 0x1
+ str r0, [sp, 0x24]
+_080E85BE:
+ movs r0, 0
+ str r0, [sp, 0x8]
+ ldr r1, [sp, 0x4]
+ adds r1, 0x1
+ str r1, [sp, 0x28]
+ ldr r2, [sp, 0x4]
+ lsls r2, 1
+ str r2, [sp, 0x34]
+ ldr r3, [sp, 0x4]
+ adds r3, r2, r3
+ str r3, [sp, 0x10]
+ movs r4, 0
+ str r4, [sp, 0x44]
+ movs r5, 0
+ str r5, [sp, 0x48]
+_080E85DC:
+ movs r6, 0
+ mov r8, r6
+ ldr r0, =0x03005d90
+ ldr r1, [r0]
+ ldr r2, [sp, 0x10]
+ lsls r0, r2, 5
+ ldr r3, [sp, 0x48]
+ adds r0, r3, r0
+ adds r3, r0, r1
+ lsls r0, r2, 6
+ ldr r4, [sp, 0x44]
+ adds r0, r4, r0
+ ldr r5, [sp]
+ adds r2, r0, r5
+_080E85F8:
+ adds r0, r2, 0
+ movs r6, 0x87
+ lsls r6, 2
+ adds r1, r3, r6
+ ldm r1!, {r4-r6}
+ stm r0!, {r4-r6}
+ ldr r1, [r1]
+ str r1, [r0]
+ adds r3, 0x10
+ adds r2, 0x10
+ movs r0, 0x1
+ add r8, r0
+ mov r1, r8
+ cmp r1, 0x2
+ ble _080E85F8
+ movs r2, 0
+ mov r8, r2
+ ldr r3, [sp, 0x24]
+ cmp r8, r3
+ bge _080E86DC
+ ldr r4, [sp, 0x4]
+ lsls r4, 5
+ mov r9, r4
+ ldr r5, [sp, 0x8]
+ lsls r7, r5, 4
+ ldr r6, [sp, 0x34]
+ ldr r1, [sp, 0x4]
+ adds r0, r6, r1
+ lsls r0, 6
+ str r0, [sp, 0x14]
+ ldr r2, [sp]
+ adds r0, r2, r0
+ ldr r3, [sp, 0x44]
+ str r3, [sp, 0x18]
+ adds r0, r3
+ str r0, [sp, 0x1C]
+ ldr r4, [sp, 0x14]
+ adds r0, r3, r4
+ adds r0, r2
+ adds r0, 0x30
+ mov r10, r0
+_080E864A:
+ movs r5, 0
+ str r5, [sp, 0xC]
+ movs r3, 0
+ mov r6, r8
+ lsls r6, 2
+ str r6, [sp, 0x38]
+ ldr r1, [sp, 0x18]
+ ldr r2, [sp, 0x14]
+ adds r0, r1, r2
+ ldr r4, [sp]
+ adds r5, r0, r4
+ ldr r0, =0x03001168
+ adds r0, r6, r0
+ str r0, [sp, 0x50]
+_080E8666:
+ lsls r0, r3, 4
+ ldr r6, [sp, 0x1C]
+ adds r0, r6, r0
+ str r3, [sp, 0x4C]
+ bl sub_80842DC
+ adds r4, r0, 0
+ ldr r1, [sp, 0x50]
+ ldr r0, [r1]
+ add r0, r9
+ adds r0, r7
+ bl sub_80842DC
+ ldr r3, [sp, 0x4C]
+ cmp r4, r0
+ bne _080E86A8
+ ldr r2, [sp, 0xC]
+ adds r2, 0x1
+ str r2, [sp, 0xC]
+ ldr r4, [sp, 0x50]
+ ldr r0, [r4]
+ mov r6, r9
+ adds r1, r7, r6
+ adds r1, r0, r1
+ ldrh r0, [r5, 0x4]
+ ldrh r2, [r1, 0x4]
+ cmp r0, r2
+ bcs _080E86A8
+ adds r0, r5, 0
+ ldm r1!, {r2,r4,r6}
+ stm r0!, {r2,r4,r6}
+ ldr r1, [r1]
+ str r1, [r0]
+_080E86A8:
+ adds r5, 0x10
+ adds r3, 0x1
+ cmp r3, 0x2
+ ble _080E8666
+ ldr r3, [sp, 0xC]
+ cmp r3, 0
+ bne _080E86CE
+ ldr r0, =0x03001168
+ ldr r4, [sp, 0x38]
+ adds r0, r4, r0
+ ldr r0, [r0]
+ mov r5, r9
+ adds r2, r7, r5
+ mov r1, r10
+ adds r0, r2
+ ldm r0!, {r2,r3,r6}
+ stm r1!, {r2,r3,r6}
+ ldr r0, [r0]
+ str r0, [r1]
+_080E86CE:
+ movs r4, 0x10
+ add r10, r4
+ movs r5, 0x1
+ add r8, r5
+ ldr r6, [sp, 0x24]
+ cmp r8, r6
+ blt _080E864A
+_080E86DC:
+ ldr r0, [sp, 0x44]
+ adds r0, 0x60
+ str r0, [sp, 0x44]
+ ldr r1, [sp, 0x48]
+ adds r1, 0x30
+ str r1, [sp, 0x48]
+ ldr r2, [sp, 0x8]
+ adds r2, 0x1
+ str r2, [sp, 0x8]
+ cmp r2, 0x1
+ bgt _080E86F4
+ b _080E85DC
+_080E86F4:
+ ldr r3, [sp, 0x28]
+ str r3, [sp, 0x4]
+ cmp r3, 0x8
+ bgt _080E86FE
+ b _080E85BE
+_080E86FE:
+ movs r4, 0
+ str r4, [sp, 0x8]
+_080E8702:
+ ldr r5, [sp, 0x8]
+ adds r5, 0x1
+ str r5, [sp, 0x2C]
+ ldr r0, =0x03005d90
+ ldr r1, [r0]
+ movs r0, 0x54
+ ldr r6, [sp, 0x8]
+ muls r0, r6
+ adds r3, r0, r1
+ movs r0, 0xA8
+ muls r0, r6
+ ldr r1, [sp]
+ adds r2, r0, r1
+ movs r4, 0x2
+ mov r8, r4
+_080E8720:
+ movs r5, 0xD8
+ lsls r5, 3
+ adds r0, r2, r5
+ ldr r6, =0x0000057c
+ adds r1, r3, r6
+ ldm r1!, {r4-r6}
+ stm r0!, {r4-r6}
+ ldm r1!, {r4-r6}
+ stm r0!, {r4-r6}
+ ldr r1, [r1]
+ str r1, [r0]
+ adds r3, 0x1C
+ adds r2, 0x1C
+ movs r0, 0x1
+ negs r0, r0
+ add r8, r0
+ mov r1, r8
+ cmp r1, 0
+ bge _080E8720
+ movs r2, 0
+ mov r8, r2
+ ldr r3, [sp, 0x24]
+ cmp r8, r3
+ blt _080E8752
+ b _080E885A
+_080E8752:
+ ldr r4, [sp, 0x8]
+ lsls r1, r4, 3
+ movs r0, 0xA8
+ adds r5, r4, 0
+ muls r5, r0
+ str r5, [sp, 0x20]
+ str r5, [sp, 0x3C]
+ subs r1, r4
+ lsls r1, 2
+ mov r10, r1
+_080E8766:
+ movs r6, 0
+ str r6, [sp, 0xC]
+ mov r0, r8
+ lsls r0, 2
+ str r0, [sp, 0x38]
+ mov r1, r8
+ adds r1, 0x1
+ str r1, [sp, 0x30]
+ ldr r0, =0x03001168
+ ldr r2, [sp, 0x38]
+ adds r2, r0
+ mov r9, r2
+ ldr r3, [sp]
+ movs r4, 0xD8
+ lsls r4, 3
+ adds r0, r3, r4
+ ldr r5, [sp, 0x3C]
+ adds r7, r5, r0
+ str r6, [sp, 0x40]
+ movs r3, 0x2
+_080E878E:
+ ldr r1, [sp, 0x20]
+ movs r2, 0xD8
+ lsls r2, 3
+ adds r0, r1, r2
+ ldr r4, [sp]
+ adds r0, r4, r0
+ ldr r6, [sp, 0x40]
+ adds r5, r0, r6
+ adds r0, r5, 0
+ str r3, [sp, 0x4C]
+ bl sub_80842DC
+ adds r4, r0, 0
+ movs r6, 0x90
+ lsls r6, 1
+ add r6, r10
+ mov r1, r9
+ ldr r0, [r1]
+ adds r0, r6
+ bl sub_80842DC
+ ldr r3, [sp, 0x4C]
+ cmp r4, r0
+ bne _080E8808
+ adds r0, r5, 0x4
+ bl sub_80842DC
+ adds r4, r0, 0
+ mov r2, r9
+ ldr r0, [r2]
+ adds r0, r6
+ adds r0, 0x4
+ bl sub_80842DC
+ ldr r3, [sp, 0x4C]
+ cmp r4, r0
+ bne _080E8808
+ ldr r4, [sp, 0xC]
+ adds r4, 0x1
+ str r4, [sp, 0xC]
+ mov r5, r9
+ ldr r0, [r5]
+ mov r6, r10
+ adds r2, r0, r6
+ movs r0, 0x94
+ lsls r0, 1
+ adds r1, r2, r0
+ ldrh r0, [r7, 0x8]
+ ldrh r1, [r1]
+ cmp r0, r1
+ bcs _080E8808
+ adds r0, r7, 0
+ movs r4, 0x90
+ lsls r4, 1
+ adds r1, r2, r4
+ ldm r1!, {r2,r5,r6}
+ stm r0!, {r2,r5,r6}
+ ldm r1!, {r4-r6}
+ stm r0!, {r4-r6}
+ ldr r1, [r1]
+ str r1, [r0]
+_080E8808:
+ adds r7, 0x1C
+ ldr r0, [sp, 0x40]
+ adds r0, 0x1C
+ str r0, [sp, 0x40]
+ subs r3, 0x1
+ cmp r3, 0
+ bge _080E878E
+ ldr r1, [sp, 0xC]
+ cmp r1, 0
+ bne _080E8850
+ mov r0, r8
+ adds r0, 0x3
+ lsls r1, r0, 3
+ subs r1, r0
+ lsls r1, 2
+ ldr r2, [sp, 0x20]
+ adds r1, r2
+ ldr r3, [sp]
+ adds r1, r3, r1
+ ldr r0, =0x03001168
+ ldr r4, [sp, 0x38]
+ adds r0, r4, r0
+ ldr r0, [r0]
+ add r0, r10
+ movs r5, 0xD8
+ lsls r5, 3
+ adds r1, r5
+ movs r6, 0x90
+ lsls r6, 1
+ adds r0, r6
+ ldm r0!, {r2-r4}
+ stm r1!, {r2-r4}
+ ldm r0!, {r2,r5,r6}
+ stm r1!, {r2,r5,r6}
+ ldr r0, [r0]
+ str r0, [r1]
+_080E8850:
+ ldr r3, [sp, 0x30]
+ mov r8, r3
+ ldr r4, [sp, 0x24]
+ cmp r8, r4
+ blt _080E8766
+_080E885A:
+ ldr r5, [sp, 0x2C]
+ str r5, [sp, 0x8]
+ cmp r5, 0x1
+ bgt _080E8864
+ b _080E8702
+_080E8864:
+ add sp, 0x54
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_80E8578
+
+ thumb_func_start sub_80E8880
+sub_80E8880: @ 80E8880
+ push {r4-r7,lr}
+ mov r12, r0
+ adds r7, r1, 0
+ movs r5, 0
+_080E8888:
+ movs r2, 0
+ movs r4, 0x1
+ negs r4, r4
+ movs r1, 0
+ adds r6, r5, 0x1
+ adds r3, r7, 0
+_080E8894:
+ ldrh r0, [r3, 0x4]
+ cmp r0, r2
+ ble _080E889E
+ adds r4, r1, 0
+ adds r2, r0, 0
+_080E889E:
+ adds r3, 0x10
+ adds r1, 0x1
+ cmp r1, 0x5
+ ble _080E8894
+ cmp r4, 0
+ blt _080E88C0
+ lsls r1, r5, 4
+ lsls r2, r4, 4
+ adds r2, r7
+ add r1, r12
+ adds r0, r2, 0
+ ldm r0!, {r3-r5}
+ stm r1!, {r3-r5}
+ ldr r0, [r0]
+ str r0, [r1]
+ movs r0, 0
+ strh r0, [r2, 0x4]
+_080E88C0:
+ adds r5, r6, 0
+ cmp r5, 0x2
+ ble _080E8888
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80E8880
+
+ thumb_func_start sub_80E88CC
+sub_80E88CC: @ 80E88CC
+ push {r4-r7,lr}
+ mov r12, r0
+ adds r6, r1, 0
+ movs r5, 0
+_080E88D4:
+ movs r3, 0
+ movs r4, 0x1
+ negs r4, r4
+ movs r2, 0
+ adds r7, r5, 0x1
+ adds r1, r6, 0
+_080E88E0:
+ ldrh r0, [r1, 0x8]
+ cmp r0, r3
+ ble _080E88EA
+ adds r4, r2, 0
+ adds r3, r0, 0
+_080E88EA:
+ adds r1, 0x1C
+ adds r2, 0x1
+ cmp r2, 0x5
+ ble _080E88E0
+ cmp r4, 0
+ blt _080E8918
+ lsls r1, r5, 3
+ subs r1, r5
+ lsls r1, 2
+ lsls r2, r4, 3
+ subs r2, r4
+ lsls r2, 2
+ adds r2, r6
+ add r1, r12
+ adds r0, r2, 0
+ ldm r0!, {r3-r5}
+ stm r1!, {r3-r5}
+ ldm r0!, {r3-r5}
+ stm r1!, {r3-r5}
+ ldr r0, [r0]
+ str r0, [r1]
+ movs r0, 0
+ strh r0, [r2, 0x8]
+_080E8918:
+ adds r5, r7, 0
+ cmp r5, 0x2
+ ble _080E88D4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80E88CC
+
+ thumb_func_start sub_80E8924
+sub_80E8924: @ 80E8924
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ mov r9, r0
+ movs r0, 0
+ ldr r1, =0x03005d90
+ mov r10, r1
+_080E8936:
+ lsls r1, r0, 1
+ adds r2, r0, 0x1
+ mov r8, r2
+ adds r1, r0
+ lsls r0, r1, 5
+ movs r2, 0x87
+ lsls r2, 2
+ adds r7, r0, r2
+ lsls r1, 6
+ mov r0, r9
+ adds r4, r0, r1
+ movs r6, 0
+ movs r5, 0x1
+_080E8950:
+ mov r1, r10
+ ldr r0, [r1]
+ adds r0, r7
+ adds r0, r6
+ adds r1, r4, 0
+ bl sub_80E8880
+ adds r4, 0x60
+ adds r6, 0x30
+ subs r5, 0x1
+ cmp r5, 0
+ bge _080E8950
+ mov r0, r8
+ cmp r0, 0x8
+ ble _080E8936
+ movs r5, 0
+ ldr r4, =0x03005d90
+_080E8972:
+ movs r0, 0x54
+ adds r1, r5, 0
+ muls r1, r0
+ ldr r2, =0x0000057c
+ adds r1, r2
+ ldr r0, [r4]
+ adds r0, r1
+ movs r1, 0xA8
+ muls r1, r5
+ movs r2, 0xD8
+ lsls r2, 3
+ adds r1, r2
+ add r1, r9
+ bl sub_80E88CC
+ adds r5, 0x1
+ cmp r5, 0x1
+ ble _080E8972
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_80E8924
+
+ thumb_func_start sub_80E89AC
+sub_80E89AC: @ 80E89AC
+ push {r4-r6,lr}
+ mov r6, r9
+ mov r5, r8
+ push {r5,r6}
+ sub sp, 0x4
+ adds r6, r0, 0
+ mov r8, r1
+ mov r9, r2
+ bl sub_8009FCC
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ movs r0, 0x81
+ lsls r0, 4
+ bl AllocZeroed
+ adds r5, r0, 0
+ str r4, [sp]
+ adds r1, r6, 0
+ mov r2, r8
+ mov r3, r9
+ bl sub_80E8578
+ adds r0, r5, 0
+ bl sub_80E8924
+ adds r0, r5, 0
+ bl Free
+ add sp, 0x4
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80E89AC
+
+ thumb_func_start sub_80E89F8
+sub_80E89F8: @ 80E89F8
+ push {r4-r6,lr}
+ adds r6, r0, 0
+ ldr r5, =0x02039f9c
+ ldr r4, =0x03005d8c
+ ldr r1, [r4]
+ movs r0, 0xC2
+ lsls r0, 6
+ adds r1, r0
+ adds r0, r5, 0
+ movs r2, 0x38
+ bl memcpy
+ ldr r1, [r4]
+ ldr r0, =0x0000310c
+ adds r1, r0
+ adds r0, r5, 0
+ adds r0, 0x38
+ movs r2, 0x38
+ bl memcpy
+ ldr r0, [r4]
+ ldr r1, =0x00003030
+ adds r0, r1
+ adds r1, r5, 0
+ bl sub_806FA9C
+ ldr r0, =0x03001148
+ ldr r1, [r0]
+ adds r0, r6, 0
+ movs r2, 0x78
+ bl memcpy
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_80E89F8
+
+ thumb_func_start sub_80E8A54
+sub_80E8A54: @ 80E8A54
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ adds r5, r0, 0
+ movs r0, 0
+ mov r9, r0
+ ldr r0, [r5, 0x70]
+ cmp r9, r0
+ bcs _080E8AAE
+ adds r4, r5, 0
+ adds r4, 0x2C
+ movs r0, 0x24
+ adds r0, r5
+ mov r8, r0
+ adds r7, r5, 0
+ adds r7, 0x37
+ adds r6, r5, 0
+_080E8A78:
+ ldrh r0, [r6, 0x20]
+ cmp r0, 0
+ beq _080E8A9A
+ ldrb r1, [r4, 0xB]
+ movs r0, 0xF
+ ands r0, r1
+ cmp r0, 0x1
+ beq _080E8A90
+ mov r0, r8
+ movs r1, 0xFC
+ bl sub_81DB4DC
+_080E8A90:
+ ldrb r1, [r7]
+ lsrs r1, 4
+ adds r0, r4, 0
+ bl StopMusicWhileStringIsPrinted
+_080E8A9A:
+ adds r4, 0x38
+ movs r0, 0x38
+ add r8, r0
+ adds r7, 0x38
+ adds r6, 0x38
+ movs r0, 0x1
+ add r9, r0
+ ldr r0, [r5, 0x70]
+ cmp r9, r0
+ bcc _080E8A78
+_080E8AAE:
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80E8A54
+
+ thumb_func_start TaskDummy4
+TaskDummy4: @ 80E8ABC
+ bx lr
+ thumb_func_end TaskDummy4
+
+ thumb_func_start sub_80E8AC0
+sub_80E8AC0: @ 80E8AC0
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ movs r4, 0
+_080E8AC6:
+ movs r0, 0x2C
+ muls r0, r4
+ adds r0, 0x34
+ adds r1, r5, r0
+ ldrh r0, [r1]
+ cmp r0, 0
+ beq _080E8ADC
+ adds r0, r1, 0
+ adds r0, 0x20
+ bl StripExtendedControlCodes
+_080E8ADC:
+ adds r4, 0x1
+ cmp r4, 0x3
+ ble _080E8AC6
+ adds r0, r5, 0
+ bl sub_8164F70
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80E8AC0
+
+ .align 2, 0 @ Don't pad with nop.