summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMarijn van der Werf <marijn.vanderwerf@gmail.com>2017-06-25 03:17:17 +0200
committerMarijn van der Werf <marijn.vanderwerf@gmail.com>2017-06-25 03:17:17 +0200
commit68206d17de4beeb9f98af8c0b54047f9ef30de44 (patch)
tree9434000f6d68a7092b90c199d6354110dc99a266
parent7695f0f536581e11791a055744bd66f099ed5a63 (diff)
add alternative asm
-rw-r--r--.travis.yml1
-rw-r--r--asm-de/berry_blender.s9141
-rw-r--r--asm-de/contest_link_80C2020.s5639
-rw-r--r--asm-de/contest_link_80C857C.s1409
-rw-r--r--asm-de/easy_chat.s10905
5 files changed, 27095 insertions, 0 deletions
diff --git a/.travis.yml b/.travis.yml
index 6a8602d30..3d620e560 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -49,6 +49,7 @@ matrix:
env: _="Build German"
before_script:
- cp override-de.mk override.mk
+ - rsync -avhI asm-de/ asm/
- rsync -avhI data-de/ data/
- rsync -avhI graphics-de/ graphics/
script:
diff --git a/asm-de/berry_blender.s b/asm-de/berry_blender.s
new file mode 100644
index 000000000..59aa1894a
--- /dev/null
+++ b/asm-de/berry_blender.s
@@ -0,0 +1,9141 @@
+ .include "constants/gba_constants.inc"
+ .include "constants/species_constants.inc"
+ .include "asm/macros.inc"
+
+ .syntax unified
+
+ .text
+
+ thumb_func_start sub_804E290
+sub_804E290: @ 804E290
+ push {lr}
+ ldr r0, _0804E2B0 @ =gMPlay_SE2
+ ldr r1, _0804E2B4 @ =0x0000ffff
+ ldr r2, _0804E2B8 @ =gUnknown_03004854
+ ldr r2, [r2]
+ adds r2, 0x56
+ movs r3, 0
+ ldrsh r2, [r2, r3]
+ subs r2, 0x80
+ lsls r2, 17
+ asrs r2, 16
+ bl m4aMPlayPitchControl
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0804E2B0: .4byte gMPlay_SE2
+_0804E2B4: .4byte 0x0000ffff
+_0804E2B8: .4byte gUnknown_03004854
+ thumb_func_end sub_804E290
+
+ thumb_func_start sub_804E2BC
+sub_804E2BC: @ 804E2BC
+ push {lr}
+ bl sub_80514A4
+ bl sub_80514F0
+ bl LoadOam
+ bl ProcessSpriteCopyRequests
+ bl TransferPlttBuffer
+ pop {r0}
+ bx r0
+ thumb_func_end sub_804E2BC
+
+ thumb_func_start sub_804E2D8
+sub_804E2D8: @ 804E2D8
+ push {lr}
+ bl LoadOam
+ bl ProcessSpriteCopyRequests
+ bl TransferPlttBuffer
+ pop {r0}
+ bx r0
+ thumb_func_end sub_804E2D8
+
+ thumb_func_start sub_804E2EC
+sub_804E2EC: @ 804E2EC
+ push {r4-r7,lr}
+ ldr r1, _0804E308 @ =gUnknown_03004854
+ ldr r0, [r1]
+ ldrb r0, [r0, 0x1]
+ mov r12, r1
+ cmp r0, 0x9
+ bls _0804E2FC
+ b _0804E4F4
+_0804E2FC:
+ lsls r0, 2
+ ldr r1, _0804E30C @ =_0804E310
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_0804E308: .4byte gUnknown_03004854
+_0804E30C: .4byte _0804E310
+ .align 2, 0
+_0804E310:
+ .4byte _0804E338
+ .4byte _0804E34C
+ .4byte _0804E380
+ .4byte _0804E3C4
+ .4byte _0804E3D8
+ .4byte _0804E3EC
+ .4byte _0804E410
+ .4byte _0804E434
+ .4byte _0804E48C
+ .4byte _0804E4BC
+_0804E338:
+ ldr r0, _0804E344 @ =gUnknown_08E6C100
+ ldr r1, _0804E348 @ =0x02010000
+ bl sub_800D238
+ b _0804E49E
+ .align 2, 0
+_0804E344: .4byte gUnknown_08E6C100
+_0804E348: .4byte 0x02010000
+_0804E34C:
+ ldr r1, _0804E36C @ =gUnknown_08215C2C
+ ldr r2, _0804E370 @ =0x06004000
+ ldr r0, _0804E374 @ =0x040000d4
+ str r1, [r0]
+ str r2, [r0, 0x4]
+ ldr r1, _0804E378 @ =0x80000200
+ str r1, [r0, 0x8]
+ ldr r0, [r0, 0x8]
+ ldr r0, _0804E37C @ =gUnknown_08215C0C
+ movs r2, 0x80
+ lsls r2, 1
+ movs r1, 0
+ bl LoadPalette
+ b _0804E49E
+ .align 2, 0
+_0804E36C: .4byte gUnknown_08215C2C
+_0804E370: .4byte 0x06004000
+_0804E374: .4byte 0x040000d4
+_0804E378: .4byte 0x80000200
+_0804E37C: .4byte gUnknown_08215C0C
+_0804E380:
+ ldr r3, _0804E3B8 @ =0x02010000
+ movs r4, 0xC0
+ lsls r4, 19
+ movs r5, 0x80
+ lsls r5, 6
+ ldr r1, _0804E3BC @ =0x040000d4
+ ldr r6, _0804E3C0 @ =0x80000800
+ movs r2, 0x80
+ lsls r2, 5
+ movs r7, 0x80
+ lsls r7, 24
+_0804E396:
+ str r3, [r1]
+ str r4, [r1, 0x4]
+ str r6, [r1, 0x8]
+ ldr r0, [r1, 0x8]
+ adds r3, r2
+ adds r4, r2
+ subs r5, r2
+ cmp r5, r2
+ bhi _0804E396
+ str r3, [r1]
+ str r4, [r1, 0x4]
+ lsrs r0, r5, 1
+ orrs r0, r7
+ str r0, [r1, 0x8]
+ ldr r0, [r1, 0x8]
+ mov r0, r12
+ b _0804E4A0
+ .align 2, 0
+_0804E3B8: .4byte 0x02010000
+_0804E3BC: .4byte 0x040000d4
+_0804E3C0: .4byte 0x80000800
+_0804E3C4:
+ ldr r0, _0804E3D0 @ =gUnknown_08E6C920
+ ldr r1, _0804E3D4 @ =0x02010000
+ bl sub_800D238
+ b _0804E49E
+ .align 2, 0
+_0804E3D0: .4byte gUnknown_08E6C920
+_0804E3D4: .4byte 0x02010000
+_0804E3D8:
+ ldr r0, _0804E3E4 @ =gUnknown_08E6D354
+ ldr r1, _0804E3E8 @ =0x02013000
+ bl sub_800D238
+ b _0804E49E
+ .align 2, 0
+_0804E3E4: .4byte gUnknown_08E6D354
+_0804E3E8: .4byte 0x02013000
+_0804E3EC:
+ ldr r1, _0804E400 @ =0x02010000
+ ldr r2, _0804E404 @ =0x0600e000
+ ldr r0, _0804E408 @ =0x040000d4
+ str r1, [r0]
+ str r2, [r0, 0x4]
+ ldr r1, _0804E40C @ =0x80000800
+ str r1, [r0, 0x8]
+ ldr r0, [r0, 0x8]
+ mov r0, r12
+ b _0804E4A0
+ .align 2, 0
+_0804E400: .4byte 0x02010000
+_0804E404: .4byte 0x0600e000
+_0804E408: .4byte 0x040000d4
+_0804E40C: .4byte 0x80000800
+_0804E410:
+ ldr r1, _0804E424 @ =0x02011000
+ ldr r2, _0804E428 @ =0x0600f000
+ ldr r0, _0804E42C @ =0x040000d4
+ str r1, [r0]
+ str r2, [r0, 0x4]
+ ldr r1, _0804E430 @ =0x80000800
+ str r1, [r0, 0x8]
+ ldr r0, [r0, 0x8]
+ mov r0, r12
+ b _0804E4A0
+ .align 2, 0
+_0804E424: .4byte 0x02011000
+_0804E428: .4byte 0x0600f000
+_0804E42C: .4byte 0x040000d4
+_0804E430: .4byte 0x80000800
+_0804E434:
+ ldr r3, _0804E474 @ =0x02013000
+ movs r2, 0
+ adds r6, r3, 0
+ ldr r7, _0804E478 @ =gUnknown_0821602C
+ movs r0, 0x80
+ lsls r0, 1
+ adds r5, r0, 0
+ ldr r4, _0804E47C @ =0x0000027f
+_0804E444:
+ lsls r0, r2, 1
+ adds r0, r3
+ ldrh r1, [r0]
+ orrs r1, r5
+ strh r1, [r0]
+ adds r0, r2, 0x1
+ lsls r0, 16
+ lsrs r2, r0, 16
+ cmp r2, r4
+ bls _0804E444
+ ldr r1, _0804E480 @ =0x06006000
+ ldr r0, _0804E484 @ =0x040000d4
+ str r6, [r0]
+ str r1, [r0, 0x4]
+ ldr r1, _0804E488 @ =0x80000280
+ str r1, [r0, 0x8]
+ ldr r0, [r0, 0x8]
+ adds r0, r7, 0
+ movs r1, 0x80
+ movs r2, 0x20
+ bl LoadPalette
+ b _0804E49E
+ .align 2, 0
+_0804E474: .4byte 0x02013000
+_0804E478: .4byte gUnknown_0821602C
+_0804E47C: .4byte 0x0000027f
+_0804E480: .4byte 0x06006000
+_0804E484: .4byte 0x040000d4
+_0804E488: .4byte 0x80000280
+_0804E48C:
+ ldr r0, _0804E4AC @ =gUnknown_082163DC
+ bl LoadSpriteSheet
+ ldr r0, _0804E4B0 @ =gUnknown_082164F4
+ bl LoadSpriteSheet
+ ldr r0, _0804E4B4 @ =gUnknown_08216454
+ bl LoadSpriteSheet
+_0804E49E:
+ ldr r0, _0804E4B8 @ =gUnknown_03004854
+_0804E4A0:
+ ldr r1, [r0]
+ ldrb r0, [r1, 0x1]
+ adds r0, 0x1
+ strb r0, [r1, 0x1]
+ b _0804E4F4
+ .align 2, 0
+_0804E4AC: .4byte gUnknown_082163DC
+_0804E4B0: .4byte gUnknown_082164F4
+_0804E4B4: .4byte gUnknown_08216454
+_0804E4B8: .4byte gUnknown_03004854
+_0804E4BC:
+ ldr r0, _0804E4E0 @ =gUnknown_08216540
+ bl LoadSpriteSheet
+ ldr r0, _0804E4E4 @ =gUnknown_08216574
+ bl LoadSpriteSheet
+ ldr r0, _0804E4E8 @ =gUnknown_082163EC
+ bl LoadSpritePalette
+ ldr r0, _0804E4EC @ =gUnknown_082163E4
+ bl LoadSpritePalette
+ ldr r0, _0804E4F0 @ =gUnknown_03004854
+ ldr r1, [r0]
+ movs r0, 0
+ strb r0, [r1, 0x1]
+ movs r0, 0x1
+ b _0804E4F6
+ .align 2, 0
+_0804E4E0: .4byte gUnknown_08216540
+_0804E4E4: .4byte gUnknown_08216574
+_0804E4E8: .4byte gUnknown_082163EC
+_0804E4EC: .4byte gUnknown_082163E4
+_0804E4F0: .4byte gUnknown_03004854
+_0804E4F4:
+ movs r0, 0
+_0804E4F6:
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_804E2EC
+
+ thumb_func_start sub_804E4FC
+sub_804E4FC: @ 804E4FC
+ movs r1, 0x80
+ lsls r1, 19
+ ldr r2, _0804E52C @ =0x00001341
+ adds r0, r2, 0
+ strh r0, [r1]
+ adds r1, 0xC
+ movs r2, 0x91
+ lsls r2, 7
+ adds r0, r2, 0
+ strh r0, [r1]
+ subs r1, 0x2
+ ldr r2, _0804E530 @ =0x00000c0d
+ adds r0, r2, 0
+ strh r0, [r1]
+ ldr r0, _0804E534 @ =REG_BG0HOFS
+ movs r1, 0
+ strh r1, [r0]
+ adds r0, 0x2
+ strh r1, [r0]
+ adds r0, 0x2
+ strh r1, [r0]
+ adds r0, 0x2
+ strh r1, [r0]
+ bx lr
+ .align 2, 0
+_0804E52C: .4byte 0x00001341
+_0804E530: .4byte 0x00000c0d
+_0804E534: .4byte REG_BG0HOFS
+ thumb_func_end sub_804E4FC
+
+ thumb_func_start sub_804E538
+sub_804E538: @ 804E538
+ push {lr}
+ ldr r1, _0804E55C @ =gUnknown_03004854
+ ldr r0, _0804E560 @ =0x02018000
+ str r0, [r1]
+ adds r2, r0, 0
+ adds r2, 0x6F
+ movs r1, 0
+ strb r1, [r0]
+ strb r1, [r2]
+ ldr r0, _0804E564 @ =gSpecialVar_0x8004
+ ldrb r0, [r0]
+ bl sub_804E884
+ ldr r0, _0804E568 @ =sub_804E56C
+ bl SetMainCallback2
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0804E55C: .4byte gUnknown_03004854
+_0804E560: .4byte 0x02018000
+_0804E564: .4byte gSpecialVar_0x8004
+_0804E568: .4byte sub_804E56C
+ thumb_func_end sub_804E538
+
+ thumb_func_start sub_804E56C
+sub_804E56C: @ 804E56C
+ push {r4-r6,lr}
+ sub sp, 0x4
+ ldr r0, _0804E588 @ =gUnknown_03004854
+ ldr r0, [r0]
+ ldrb r0, [r0]
+ cmp r0, 0x6
+ bls _0804E57C
+ b _0804E71A
+_0804E57C:
+ lsls r0, 2
+ ldr r1, _0804E58C @ =_0804E590
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_0804E588: .4byte gUnknown_03004854
+_0804E58C: .4byte _0804E590
+ .align 2, 0
+_0804E590:
+ .4byte _0804E5AC
+ .4byte _0804E614
+ .4byte _0804E67C
+ .4byte _0804E692
+ .4byte _0804E6A8
+ .4byte _0804E6D4
+ .4byte _0804E700
+_0804E5AC:
+ movs r0, 0x80
+ lsls r0, 19
+ movs r5, 0
+ strh r5, [r0]
+ bl ResetSpriteData
+ bl FreeAllSpritePalettes
+ movs r0, 0
+ bl SetVBlankCallback
+ ldr r4, _0804E60C @ =gWindowConfig_81E6F68
+ adds r0, r4, 0
+ bl SetUpWindowConfig
+ adds r0, r4, 0
+ bl InitMenuWindow
+ ldr r3, _0804E610 @ =gUnknown_03004854
+ ldr r2, [r3]
+ ldrb r0, [r2]
+ adds r0, 0x1
+ movs r1, 0
+ strb r0, [r2]
+ ldr r2, [r3]
+ movs r3, 0xA0
+ lsls r3, 1
+ adds r0, r2, r3
+ strh r1, [r0]
+ subs r3, 0x2
+ adds r0, r2, r3
+ strh r1, [r0]
+ movs r0, 0xA1
+ lsls r0, 1
+ adds r3, r2, r0
+ movs r0, 0x50
+ strh r0, [r3]
+ movs r3, 0xA2
+ lsls r3, 1
+ adds r0, r2, r3
+ strh r1, [r0]
+ adds r3, 0x2
+ adds r0, r2, r3
+ strh r1, [r0]
+ strb r5, [r2, 0x1]
+ bl sub_8051474
+ b _0804E71A
+ .align 2, 0
+_0804E60C: .4byte gWindowConfig_81E6F68
+_0804E610: .4byte gUnknown_03004854
+_0804E614:
+ bl sub_804E2EC
+ lsls r0, 24
+ cmp r0, 0
+ bne _0804E620
+ b _0804E71A
+_0804E620:
+ movs r4, 0
+ ldr r5, _0804E668 @ =gUnknown_082162E4
+ ldr r6, _0804E66C @ =gUnknown_03004854
+_0804E626:
+ ldrb r1, [r5]
+ ldrb r2, [r5, 0x1]
+ ldr r0, _0804E670 @ =gSpriteTemplate_82163F4
+ movs r3, 0x1
+ bl CreateSprite
+ ldr r1, [r6]
+ adds r1, 0x5C
+ adds r1, r4
+ strb r0, [r1]
+ ldr r0, [r6]
+ adds r0, 0x5C
+ adds r0, r4
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _0804E674 @ =gSprites
+ adds r0, r1
+ adds r1, r4, 0
+ adds r1, 0x8
+ lsls r1, 24
+ lsrs r1, 24
+ bl StartSpriteAnim
+ adds r5, 0x2
+ adds r4, 0x1
+ cmp r4, 0x3
+ ble _0804E626
+ ldr r0, _0804E678 @ =sub_804E2BC
+ bl SetVBlankCallback
+ b _0804E6BE
+ .align 2, 0
+_0804E668: .4byte gUnknown_082162E4
+_0804E66C: .4byte gUnknown_03004854
+_0804E670: .4byte gSpriteTemplate_82163F4
+_0804E674: .4byte gSprites
+_0804E678: .4byte sub_804E2BC
+_0804E67C:
+ movs r0, 0x1
+ negs r0, r0
+ movs r1, 0
+ str r1, [sp]
+ movs r2, 0x10
+ movs r3, 0
+ bl BeginNormalPaletteFade
+ bl sub_8051474
+ b _0804E6BE
+_0804E692:
+ bl sub_804E4FC
+ ldr r0, _0804E6A4 @ =gPaletteFade
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _0804E71A
+ b _0804E6BE
+ .align 2, 0
+_0804E6A4: .4byte gPaletteFade
+_0804E6A8:
+ movs r0, 0
+ movs r1, 0xE
+ movs r2, 0x1D
+ movs r3, 0x13
+ bl MenuDrawTextWindow
+ ldr r0, _0804E6CC @ =gOtherText_BlenderChooseBerry
+ movs r1, 0x1
+ movs r2, 0xF
+ bl MenuPrintMessage
+_0804E6BE:
+ ldr r0, _0804E6D0 @ =gUnknown_03004854
+ ldr r1, [r0]
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+ b _0804E71A
+ .align 2, 0
+_0804E6CC: .4byte gOtherText_BlenderChooseBerry
+_0804E6D0: .4byte gUnknown_03004854
+_0804E6D4:
+ bl MenuUpdateWindowText
+ lsls r0, 24
+ cmp r0, 0
+ beq _0804E71A
+ ldr r0, _0804E6FC @ =gUnknown_03004854
+ ldr r1, [r0]
+ ldrb r0, [r1]
+ adds r0, 0x1
+ movs r2, 0
+ strb r0, [r1]
+ movs r0, 0x1
+ negs r0, r0
+ str r2, [sp]
+ movs r1, 0
+ movs r3, 0x10
+ bl BeginNormalPaletteFade
+ b _0804E71A
+ .align 2, 0
+_0804E6FC: .4byte gUnknown_03004854
+_0804E700:
+ ldr r0, _0804E730 @ =gPaletteFade
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0
+ bne _0804E71A
+ bl sub_80A6978
+ ldr r0, _0804E734 @ =gUnknown_03004854
+ ldr r0, [r0]
+ strb r4, [r0]
+_0804E71A:
+ bl AnimateSprites
+ bl BuildOamBuffer
+ bl UpdatePaletteFade
+ add sp, 0x4
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0804E730: .4byte gPaletteFade
+_0804E734: .4byte gUnknown_03004854
+ thumb_func_end sub_804E56C
+
+ thumb_func_start sub_804E738
+sub_804E738: @ 804E738
+ push {r4,lr}
+ adds r4, r0, 0
+ ldrh r0, [r4, 0x3A]
+ ldrh r1, [r4, 0x30]
+ adds r0, r1
+ strh r0, [r4, 0x30]
+ ldrh r1, [r4, 0x32]
+ ldrh r2, [r4, 0x36]
+ subs r1, r2
+ ldrh r0, [r4, 0x3C]
+ adds r1, r0
+ strh r1, [r4, 0x32]
+ ldrh r3, [r4, 0x2E]
+ adds r0, r3
+ strh r0, [r4, 0x2E]
+ subs r2, 0x1
+ strh r2, [r4, 0x36]
+ lsls r0, 16
+ lsls r1, 16
+ cmp r0, r1
+ bge _0804E786
+ ldrh r0, [r4, 0x34]
+ subs r0, 0x1
+ strh r0, [r4, 0x36]
+ strh r0, [r4, 0x34]
+ ldrh r0, [r4, 0x38]
+ adds r0, 0x1
+ strh r0, [r4, 0x38]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x3
+ ble _0804E780
+ adds r0, r4, 0
+ bl DestroySprite
+ b _0804E786
+_0804E780:
+ movs r0, 0x74
+ bl PlaySE
+_0804E786:
+ ldrh r0, [r4, 0x30]
+ strh r0, [r4, 0x20]
+ ldrh r0, [r4, 0x32]
+ strh r0, [r4, 0x22]
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_804E738
+
+ thumb_func_start sub_804E794
+sub_804E794: @ 804E794
+ push {r4-r6,lr}
+ ldr r5, [sp, 0x10]
+ ldr r6, [sp, 0x14]
+ lsls r2, 16
+ lsrs r2, 16
+ movs r4, 0
+ strh r2, [r0, 0x2E]
+ strh r1, [r0, 0x30]
+ strh r2, [r0, 0x32]
+ strh r3, [r0, 0x34]
+ movs r1, 0xA
+ strh r1, [r0, 0x36]
+ strh r4, [r0, 0x38]
+ strh r5, [r0, 0x3A]
+ strh r6, [r0, 0x3C]
+ ldr r1, _0804E7BC @ =sub_804E738
+ str r1, [r0, 0x1C]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0804E7BC: .4byte sub_804E738
+ thumb_func_end sub_804E794
+
+ thumb_func_start sub_804E7C0
+sub_804E7C0: @ 804E7C0
+ push {r4-r6,lr}
+ mov r6, r8
+ push {r6}
+ sub sp, 0x8
+ adds r6, r1, 0
+ lsls r6, 24
+ lsrs r6, 24
+ lsls r0, 24
+ movs r1, 0xF6
+ lsls r1, 23
+ adds r0, r1
+ lsrs r0, 24
+ movs r3, 0x1
+ ands r3, r6
+ movs r1, 0
+ movs r2, 0x50
+ bl sub_80A7DEC
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r2, r0, 4
+ mov r8, r2
+ add r8, r0
+ mov r3, r8
+ lsls r3, 2
+ mov r8, r3
+ ldr r0, _0804E83C @ =gSprites
+ add r8, r0
+ ldr r5, _0804E840 @ =gUnknown_08216594
+ lsls r4, r6, 2
+ adds r4, r6
+ lsls r4, 1
+ adds r0, r4, r5
+ movs r6, 0
+ ldrsh r1, [r0, r6]
+ adds r0, r5, 0x2
+ adds r0, r4, r0
+ movs r3, 0
+ ldrsh r2, [r0, r3]
+ adds r0, r5, 0x4
+ adds r0, r4, r0
+ movs r6, 0
+ ldrsh r3, [r0, r6]
+ adds r0, r5, 0x6
+ adds r0, r4, r0
+ movs r6, 0
+ ldrsh r0, [r0, r6]
+ str r0, [sp]
+ adds r5, 0x8
+ adds r4, r5
+ movs r5, 0
+ ldrsh r0, [r4, r5]
+ str r0, [sp, 0x4]
+ mov r0, r8
+ bl sub_804E794
+ add sp, 0x8
+ pop {r3}
+ mov r8, r3
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0804E83C: .4byte gSprites
+_0804E840: .4byte gUnknown_08216594
+ thumb_func_end sub_804E7C0
+
+ thumb_func_start sub_804E844
+sub_804E844: @ 804E844
+ push {r4-r6,lr}
+ adds r6, r0, 0
+ lsls r5, r1, 16
+ lsrs r5, 16
+ adds r0, r5, 0
+ adds r0, 0x7C
+ lsls r0, 24
+ lsrs r0, 24
+ bl GetBerryInfo
+ adds r4, r0, 0
+ strh r5, [r6]
+ adds r0, r6, 0x2
+ adds r1, r4, 0
+ bl StringCopy
+ ldrb r0, [r4, 0x15]
+ strb r0, [r6, 0x9]
+ ldrb r0, [r4, 0x16]
+ strb r0, [r6, 0xA]
+ ldrb r0, [r4, 0x17]
+ strb r0, [r6, 0xB]
+ ldrb r0, [r4, 0x18]
+ strb r0, [r6, 0xC]
+ ldrb r0, [r4, 0x19]
+ strb r0, [r6, 0xD]
+ ldrb r0, [r4, 0x1A]
+ strb r0, [r6, 0xE]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_804E844
+
+ thumb_func_start sub_804E884
+sub_804E884: @ 804E884
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r1, r0, 24
+ cmp r1, 0
+ beq _0804E89E
+ ldr r2, _0804E8AC @ =gLinkPlayers
+ movs r3, 0x5
+ adds r0, r2, 0
+ adds r0, 0x54
+_0804E896:
+ strh r3, [r0, 0x1A]
+ subs r0, 0x1C
+ cmp r0, r2
+ bge _0804E896
+_0804E89E:
+ cmp r1, 0x1
+ beq _0804E8C4
+ cmp r1, 0x1
+ bgt _0804E8B0
+ cmp r1, 0
+ beq _0804E8BA
+ b _0804E974
+ .align 2, 0
+_0804E8AC: .4byte gLinkPlayers
+_0804E8B0:
+ cmp r1, 0x2
+ beq _0804E8F8
+ cmp r1, 0x3
+ beq _0804E93C
+ b _0804E974
+_0804E8BA:
+ ldr r0, _0804E8C0 @ =gUnknown_03004834
+ strb r1, [r0]
+ b _0804E974
+ .align 2, 0
+_0804E8C0: .4byte gUnknown_03004834
+_0804E8C4:
+ ldr r0, _0804E8E4 @ =gUnknown_03004834
+ strb r1, [r0]
+ ldr r0, _0804E8E8 @ =gUnknown_03004854
+ ldr r0, [r0]
+ adds r0, 0x88
+ movs r1, 0x2
+ strb r1, [r0]
+ ldr r4, _0804E8EC @ =gLinkPlayers + 0x8
+ ldr r1, _0804E8F0 @ =gSaveBlock2
+ adds r0, r4, 0
+ bl StringCopy
+ adds r4, 0x1C
+ ldr r0, _0804E8F4 @ =gUnknown_082162B8
+ ldr r1, [r0]
+ b _0804E920
+ .align 2, 0
+_0804E8E4: .4byte gUnknown_03004834
+_0804E8E8: .4byte gUnknown_03004854
+_0804E8EC: .4byte gLinkPlayers + 0x8
+_0804E8F0: .4byte gSaveBlock2
+_0804E8F4: .4byte gUnknown_082162B8
+_0804E8F8:
+ ldr r0, _0804E928 @ =gUnknown_03004834
+ strb r1, [r0]
+ ldr r0, _0804E92C @ =gUnknown_03004854
+ ldr r0, [r0]
+ adds r0, 0x88
+ movs r1, 0x3
+ strb r1, [r0]
+ ldr r4, _0804E930 @ =gLinkPlayers + 0x8
+ ldr r1, _0804E934 @ =gSaveBlock2
+ adds r0, r4, 0
+ bl StringCopy
+ adds r0, r4, 0
+ adds r0, 0x1C
+ ldr r5, _0804E938 @ =gUnknown_082162B8
+ ldr r1, [r5]
+ bl StringCopy
+ adds r4, 0x38
+ ldr r1, [r5, 0x4]
+_0804E920:
+ adds r0, r4, 0
+ bl StringCopy
+ b _0804E974
+ .align 2, 0
+_0804E928: .4byte gUnknown_03004834
+_0804E92C: .4byte gUnknown_03004854
+_0804E930: .4byte gLinkPlayers + 0x8
+_0804E934: .4byte gSaveBlock2
+_0804E938: .4byte gUnknown_082162B8
+_0804E93C:
+ ldr r0, _0804E97C @ =gUnknown_03004834
+ strb r1, [r0]
+ ldr r0, _0804E980 @ =gUnknown_03004854
+ ldr r0, [r0]
+ adds r0, 0x88
+ movs r1, 0x4
+ strb r1, [r0]
+ ldr r4, _0804E984 @ =gLinkPlayers + 0x8
+ ldr r1, _0804E988 @ =gSaveBlock2
+ adds r0, r4, 0
+ bl StringCopy
+ adds r0, r4, 0
+ adds r0, 0x1C
+ ldr r5, _0804E98C @ =gUnknown_082162B8
+ ldr r1, [r5]
+ bl StringCopy
+ adds r0, r4, 0
+ adds r0, 0x38
+ ldr r1, [r5, 0x4]
+ bl StringCopy
+ adds r4, 0x54
+ ldr r1, [r5, 0x8]
+ adds r0, r4, 0
+ bl StringCopy
+_0804E974:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0804E97C: .4byte gUnknown_03004834
+_0804E980: .4byte gUnknown_03004854
+_0804E984: .4byte gLinkPlayers + 0x8
+_0804E988: .4byte gSaveBlock2
+_0804E98C: .4byte gUnknown_082162B8
+ thumb_func_end sub_804E884
+
+ thumb_func_start sub_804E990
+sub_804E990: @ 804E990
+ push {r4,r5,lr}
+ movs r0, 0x80
+ lsls r0, 19
+ movs r2, 0
+ strh r2, [r0]
+ ldr r3, _0804E9D8 @ =gUnknown_03004854
+ ldr r0, _0804E9DC @ =0x02018000
+ str r0, [r3]
+ movs r1, 0
+ strb r2, [r0]
+ movs r2, 0x9A
+ lsls r2, 1
+ adds r0, r2
+ str r1, [r0]
+ movs r2, 0
+ ldr r5, _0804E9E0 @ =gSpecialVar_0x8004
+ adds r4, r3, 0
+ movs r3, 0
+_0804E9B4:
+ ldr r0, [r4]
+ lsls r1, r2, 1
+ adds r0, 0x80
+ adds r0, r1
+ strh r3, [r0]
+ adds r2, 0x1
+ cmp r2, 0x3
+ ble _0804E9B4
+ ldrb r0, [r5]
+ bl sub_804E884
+ ldrh r0, [r5]
+ cmp r0, 0
+ bne _0804E9E8
+ ldr r0, _0804E9E4 @ =sub_804E9F8
+ bl SetMainCallback2
+ b _0804E9EE
+ .align 2, 0
+_0804E9D8: .4byte gUnknown_03004854
+_0804E9DC: .4byte 0x02018000
+_0804E9E0: .4byte gSpecialVar_0x8004
+_0804E9E4: .4byte sub_804E9F8
+_0804E9E8:
+ ldr r0, _0804E9F4 @ =sub_804F378
+ bl SetMainCallback2
+_0804E9EE:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0804E9F4: .4byte sub_804F378
+ thumb_func_end sub_804E990
+
+ thumb_func_start sub_804E9F8
+sub_804E9F8: @ 804E9F8
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ sub sp, 0x4
+ ldr r1, _0804EA18 @ =gUnknown_03004854
+ ldr r0, [r1]
+ ldrb r0, [r0]
+ mov r8, r1
+ cmp r0, 0x66
+ bls _0804EA0E
+ b _0804F0CE
+_0804EA0E:
+ lsls r0, 2
+ ldr r1, _0804EA1C @ =_0804EA20
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_0804EA18: .4byte gUnknown_03004854
+_0804EA1C: .4byte _0804EA20
+ .align 2, 0
+_0804EA20:
+ .4byte _0804EBBC
+ .4byte _0804EC74
+ .4byte _0804EC94
+ .4byte _0804ECE8
+ .4byte _0804ECFA
+ .4byte _0804ED14
+ .4byte _0804F0CE
+ .4byte _0804F0CE
+ .4byte _0804ED48
+ .4byte _0804ED94
+ .4byte _0804EDB8
+ .4byte _0804EE46
+ .4byte _0804EEA0
+ .4byte _0804EF16
+ .4byte _0804EF34
+ .4byte _0804EFD8
+ .4byte _0804F00C
+ .4byte _0804F0CE
+ .4byte _0804F020
+ .4byte _0804F024
+ .4byte _0804F02A
+ .4byte _0804F03A
+ .4byte _0804F0CE
+ .4byte _0804F0CE
+ .4byte _0804F0CE
+ .4byte _0804F0CE
+ .4byte _0804F0CE
+ .4byte _0804F0CE
+ .4byte _0804F0CE
+ .4byte _0804F0CE
+ .4byte _0804F0CE
+ .4byte _0804F0CE
+ .4byte _0804F0CE
+ .4byte _0804F0CE
+ .4byte _0804F0CE
+ .4byte _0804F0CE
+ .4byte _0804F0CE
+ .4byte _0804F0CE
+ .4byte _0804F0CE
+ .4byte _0804F0CE
+ .4byte _0804F0CE
+ .4byte _0804F0CE
+ .4byte _0804F0CE
+ .4byte _0804F0CE
+ .4byte _0804F0CE
+ .4byte _0804F0CE
+ .4byte _0804F0CE
+ .4byte _0804F0CE
+ .4byte _0804F0CE
+ .4byte _0804F0CE
+ .4byte _0804F0CE
+ .4byte _0804F0CE
+ .4byte _0804F0CE
+ .4byte _0804F0CE
+ .4byte _0804F0CE
+ .4byte _0804F0CE
+ .4byte _0804F0CE
+ .4byte _0804F0CE
+ .4byte _0804F0CE
+ .4byte _0804F0CE
+ .4byte _0804F0CE
+ .4byte _0804F0CE
+ .4byte _0804F0CE
+ .4byte _0804F0CE
+ .4byte _0804F0CE
+ .4byte _0804F0CE
+ .4byte _0804F0CE
+ .4byte _0804F0CE
+ .4byte _0804F0CE
+ .4byte _0804F0CE
+ .4byte _0804F0CE
+ .4byte _0804F0CE
+ .4byte _0804F0CE
+ .4byte _0804F0CE
+ .4byte _0804F0CE
+ .4byte _0804F0CE
+ .4byte _0804F0CE
+ .4byte _0804F0CE
+ .4byte _0804F0CE
+ .4byte _0804F0CE
+ .4byte _0804F0CE
+ .4byte _0804F0CE
+ .4byte _0804F0CE
+ .4byte _0804F0CE
+ .4byte _0804F0CE
+ .4byte _0804F0CE
+ .4byte _0804F0CE
+ .4byte _0804F0CE
+ .4byte _0804F0CE
+ .4byte _0804F0CE
+ .4byte _0804F0CE
+ .4byte _0804F0CE
+ .4byte _0804F0CE
+ .4byte _0804F0CE
+ .4byte _0804F0CE
+ .4byte _0804F0CE
+ .4byte _0804F0CE
+ .4byte _0804F0CE
+ .4byte _0804F0CE
+ .4byte _0804F0CE
+ .4byte _0804F084
+ .4byte _0804F0A0
+ .4byte _0804F0BC
+_0804EBBC:
+ bl ResetSpriteData
+ bl FreeAllSpritePalettes
+ bl ResetTasks
+ ldr r0, _0804EC60 @ =sub_804E2BC
+ bl SetVBlankCallback
+ ldr r4, _0804EC64 @ =gWindowConfig_81E6F68
+ adds r0, r4, 0
+ bl SetUpWindowConfig
+ adds r0, r4, 0
+ bl InitMenuWindow
+ ldr r1, _0804EC68 @ =gLinkType
+ ldr r2, _0804EC6C @ =0x00004422
+ adds r0, r2, 0
+ strh r0, [r1]
+ ldr r3, _0804EC70 @ =gUnknown_03004854
+ ldr r1, [r3]
+ ldrb r0, [r1]
+ adds r0, 0x1
+ movs r2, 0
+ strb r0, [r1]
+ ldr r0, [r3]
+ adds r4, r0, 0
+ adds r4, 0x4E
+ movs r1, 0
+ strh r2, [r4]
+ adds r0, 0x7E
+ strb r1, [r0]
+ ldr r1, [r3]
+ movs r4, 0xA2
+ lsls r4, 1
+ adds r0, r1, r4
+ strh r2, [r0]
+ adds r4, 0x2
+ adds r0, r1, r4
+ strh r2, [r0]
+ movs r5, 0
+ movs r6, 0
+ mov r8, r3
+ movs r7, 0xA6
+ lsls r7, 1
+_0804EC18:
+ ldr r0, [r3]
+ lsls r1, r5, 1
+ adds r0, 0x70
+ adds r0, r1
+ strh r6, [r0]
+ adds r4, r5, 0x1
+ adds r1, r5
+ lsls r1, 1
+ movs r2, 0x2
+_0804EC2A:
+ ldr r0, [r3]
+ adds r0, r7
+ adds r0, r1
+ strh r6, [r0]
+ adds r1, 0x2
+ subs r2, 0x1
+ cmp r2, 0
+ bge _0804EC2A
+ adds r5, r4, 0
+ cmp r5, 0x3
+ ble _0804EC18
+ mov r0, r8
+ ldr r3, [r0]
+ adds r0, r3, 0
+ adds r0, 0x7C
+ movs r2, 0
+ movs r1, 0
+ strh r1, [r0]
+ subs r0, 0x26
+ strh r1, [r0]
+ subs r0, 0x2
+ strh r1, [r0]
+ adds r0, 0x6
+ strh r1, [r0]
+ strb r2, [r3, 0x1]
+ b _0804F0CE
+ .align 2, 0
+_0804EC60: .4byte sub_804E2BC
+_0804EC64: .4byte gWindowConfig_81E6F68
+_0804EC68: .4byte gLinkType
+_0804EC6C: .4byte 0x00004422
+_0804EC70: .4byte gUnknown_03004854
+_0804EC74:
+ bl sub_804E2EC
+ lsls r0, 24
+ cmp r0, 0
+ bne _0804EC80
+ b _0804F0CE
+_0804EC80:
+ ldr r0, _0804EC90 @ =gUnknown_03004854
+ ldr r1, [r0]
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+ bl sub_8051474
+ b _0804F0CE
+ .align 2, 0
+_0804EC90: .4byte gUnknown_03004854
+_0804EC94:
+ movs r5, 0
+ ldr r4, _0804ECD8 @ =gUnknown_082162E4
+ ldr r6, _0804ECDC @ =gUnknown_03004854
+_0804EC9A:
+ ldrb r1, [r4]
+ ldrb r2, [r4, 0x1]
+ ldr r0, _0804ECE0 @ =gSpriteTemplate_82163F4
+ movs r3, 0x1
+ bl CreateSprite
+ ldr r1, [r6]
+ adds r1, 0x60
+ adds r1, r5
+ strb r0, [r1]
+ ldr r0, [r6]
+ adds r0, 0x60
+ adds r0, r5
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _0804ECE4 @ =gSprites
+ adds r0, r1
+ adds r1, r5, 0
+ adds r1, 0x8
+ lsls r1, 24
+ lsrs r1, 24
+ bl StartSpriteAnim
+ adds r4, 0x2
+ adds r5, 0x1
+ cmp r5, 0x3
+ ble _0804EC9A
+ b _0804F0AA
+ .align 2, 0
+_0804ECD8: .4byte gUnknown_082162E4
+_0804ECDC: .4byte gUnknown_03004854
+_0804ECE0: .4byte gSpriteTemplate_82163F4
+_0804ECE4: .4byte gSprites
+_0804ECE8:
+ movs r0, 0x1
+ negs r0, r0
+ movs r1, 0
+ str r1, [sp]
+ movs r2, 0x10
+ movs r3, 0
+ bl BeginNormalPaletteFade
+ b _0804F0AA
+_0804ECFA:
+ bl sub_804E4FC
+ ldr r0, _0804ED10 @ =gPaletteFade
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ beq _0804ED0C
+ b _0804F0CE
+_0804ED0C:
+ b _0804F0AA
+ .align 2, 0
+_0804ED10: .4byte gPaletteFade
+_0804ED14:
+ movs r0, 0
+ movs r1, 0xD
+ movs r2, 0x1D
+ movs r3, 0x13
+ bl MenuDrawTextWindow
+ ldr r0, _0804ED40 @ =gOtherText_LinkStandby3
+ movs r1, 0x1
+ movs r2, 0xE
+ bl MenuPrint
+ ldr r2, _0804ED44 @ =gUnknown_03004854
+ ldr r1, [r2]
+ movs r3, 0
+ movs r0, 0x8
+ strb r0, [r1]
+ ldr r0, [r2]
+ movs r1, 0x98
+ lsls r1, 1
+ adds r0, r1
+ str r3, [r0]
+ b _0804F0CE
+ .align 2, 0
+_0804ED40: .4byte gOtherText_LinkStandby3
+_0804ED44: .4byte gUnknown_03004854
+_0804ED48:
+ mov r2, r8
+ ldr r1, [r2]
+ ldrb r0, [r1]
+ adds r0, 0x1
+ movs r5, 0
+ strb r0, [r1]
+ ldr r0, [r2]
+ movs r3, 0x9E
+ lsls r3, 1
+ adds r0, r3
+ strb r5, [r0]
+ ldr r0, [r2]
+ movs r4, 0xBE
+ lsls r4, 1
+ adds r0, r4
+ ldr r1, _0804ED8C @ =gScriptItemId
+ ldrh r1, [r1]
+ bl sub_804E844
+ ldr r0, _0804ED90 @ =gBlockSendBuffer
+ mov r2, r8
+ ldr r1, [r2]
+ adds r1, r4
+ movs r2, 0x10
+ bl memcpy
+ bl sub_80084A4
+ mov r3, r8
+ ldr r0, [r3]
+ subs r4, 0x4C
+ adds r0, r4
+ str r5, [r0]
+ b _0804F0CE
+ .align 2, 0
+_0804ED8C: .4byte gScriptItemId
+_0804ED90: .4byte gBlockSendBuffer
+_0804ED94:
+ bl sub_8007ECC
+ lsls r0, 24
+ cmp r0, 0
+ bne _0804EDA0
+ b _0804F0CE
+_0804EDA0:
+ bl ResetBlockReceivedFlags
+ bl GetMultiplayerId
+ lsls r0, 24
+ cmp r0, 0
+ beq _0804EDB0
+ b _0804F0AA
+_0804EDB0:
+ movs r0, 0x4
+ bl sub_8007E9C
+ b _0804F0AA
+_0804EDB8:
+ mov r0, r8
+ ldr r1, [r0]
+ movs r2, 0x98
+ lsls r2, 1
+ adds r1, r2
+ ldr r0, [r1]
+ adds r0, 0x1
+ str r0, [r1]
+ cmp r0, 0x14
+ bgt _0804EDCE
+ b _0804F0CE
+_0804EDCE:
+ bl MenuZeroFillScreen
+ bl GetBlockReceivedStatus
+ adds r4, r0, 0
+ bl sub_8008198
+ lsls r4, 24
+ lsls r0, 24
+ cmp r4, r0
+ beq _0804EDE6
+ b _0804F0CE
+_0804EDE6:
+ movs r5, 0
+ mov r7, r8
+ movs r6, 0xBE
+ lsls r6, 1
+ b _0804EE18
+_0804EDF0:
+ ldr r0, [r7]
+ lsls r4, r5, 4
+ adds r0, r4, r0
+ adds r0, r6
+ lsls r1, r5, 8
+ ldr r2, _0804EE2C @ =gBlockRecvBuffer
+ adds r1, r2
+ movs r2, 0x10
+ bl memcpy
+ ldr r0, [r7]
+ lsls r2, r5, 1
+ adds r1, r0, 0
+ adds r1, 0x80
+ adds r1, r2
+ adds r0, r4
+ adds r0, r6
+ ldrh r0, [r0]
+ strh r0, [r1]
+ adds r5, 0x1
+_0804EE18:
+ bl GetLinkPlayerCount
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r5, r0
+ blt _0804EDF0
+ bl ResetBlockReceivedFlags
+ b _0804F0AA
+ .align 2, 0
+_0804EE2C: .4byte gBlockRecvBuffer
+_0804EE30:
+ ldrb r1, [r4]
+ lsls r1, 1
+ adds r0, r2, 0
+ adds r0, 0x80
+ adds r0, r1
+ ldrh r0, [r0]
+ lsls r1, r5, 24
+ lsrs r1, 24
+ bl sub_804E7C0
+ b _0804EE7A
+_0804EE46:
+ bl GetLinkPlayerCount
+ ldr r2, _0804EE98 @ =gUnknown_03004854
+ ldr r1, [r2]
+ adds r1, 0x88
+ strb r0, [r1]
+ movs r5, 0
+ ldr r2, [r2]
+ movs r3, 0x9E
+ lsls r3, 1
+ adds r4, r2, r3
+ ldr r1, _0804EE9C @ =gUnknown_082162EC
+ adds r0, r2, 0
+ adds r0, 0x88
+ ldrb r0, [r0]
+ subs r0, 0x2
+ lsls r0, 2
+ ldrb r3, [r4]
+ adds r0, r1
+_0804EE6C:
+ ldrb r1, [r0]
+ cmp r3, r1
+ beq _0804EE30
+ adds r0, 0x1
+ adds r5, 0x1
+ cmp r5, 0x3
+ ble _0804EE6C
+_0804EE7A:
+ ldr r3, _0804EE98 @ =gUnknown_03004854
+ ldr r1, [r3]
+ movs r4, 0x98
+ lsls r4, 1
+ adds r2, r1, r4
+ movs r0, 0
+ str r0, [r2]
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+ ldr r1, [r3]
+ movs r0, 0x9E
+ lsls r0, 1
+ adds r1, r0
+ b _0804F0AE
+ .align 2, 0
+_0804EE98: .4byte gUnknown_03004854
+_0804EE9C: .4byte gUnknown_082162EC
+_0804EEA0:
+ mov r1, r8
+ ldr r2, [r1]
+ movs r3, 0x98
+ lsls r3, 1
+ adds r1, r2, r3
+ ldr r0, [r1]
+ adds r0, 0x1
+ str r0, [r1]
+ cmp r0, 0x3C
+ bgt _0804EEB6
+ b _0804F0CE
+_0804EEB6:
+ movs r4, 0x9E
+ lsls r4, 1
+ adds r0, r2, r4
+ adds r1, r2, 0
+ adds r1, 0x88
+ ldrb r0, [r0]
+ ldrb r1, [r1]
+ cmp r0, r1
+ bcc _0804EF00
+ ldrb r0, [r2]
+ adds r0, 0x1
+ strb r0, [r2]
+ mov r0, r8
+ ldr r2, [r0]
+ ldr r3, _0804EEF4 @ =gUnknown_082162F8
+ ldr r1, _0804EEF8 @ =gUnknown_08216300
+ adds r0, r2, 0
+ adds r0, 0x88
+ ldrb r0, [r0]
+ subs r0, 0x2
+ adds r0, r1
+ ldrb r0, [r0]
+ lsls r0, 1
+ adds r0, r3
+ ldr r3, _0804EEFC @ =0xffffa800
+ adds r1, r3, 0
+ ldrh r0, [r0]
+ adds r1, r0
+ adds r2, 0x54
+ strh r1, [r2]
+ b _0804EF06
+ .align 2, 0
+_0804EEF4: .4byte gUnknown_082162F8
+_0804EEF8: .4byte gUnknown_08216300
+_0804EEFC: .4byte 0xffffa800
+_0804EF00:
+ ldrb r0, [r2]
+ subs r0, 0x1
+ strb r0, [r2]
+_0804EF06:
+ mov r4, r8
+ ldr r0, [r4]
+ movs r1, 0x98
+ lsls r1, 1
+ adds r0, r1
+ movs r1, 0
+ str r1, [r0]
+ b _0804F0CE
+_0804EF16:
+ bl sub_8007ECC
+ lsls r0, 24
+ cmp r0, 0
+ bne _0804EF22
+ b _0804F0CE
+_0804EF22:
+ ldr r2, _0804EF30 @ =gUnknown_03004854
+ ldr r1, [r2]
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+ ldr r0, [r2]
+ b _0804EFBC
+ .align 2, 0
+_0804EF30: .4byte gUnknown_03004854
+_0804EF34:
+ movs r2, 0x80
+ lsls r2, 19
+ ldrh r0, [r2]
+ movs r3, 0x80
+ lsls r3, 3
+ adds r1, r3, 0
+ orrs r0, r1
+ strh r0, [r2]
+ mov r4, r8
+ ldr r2, [r4]
+ adds r1, r2, 0
+ adds r1, 0x54
+ movs r3, 0x80
+ lsls r3, 2
+ adds r0, r3, 0
+ ldrh r4, [r1]
+ adds r0, r4
+ strh r0, [r1]
+ movs r0, 0xA1
+ lsls r0, 1
+ adds r1, r2, r0
+ ldrh r0, [r1]
+ adds r0, 0x4
+ strh r0, [r1]
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0xFF
+ bls _0804EFB8
+ ldrb r0, [r2]
+ adds r0, 0x1
+ strb r0, [r2]
+ mov r1, r8
+ ldr r3, [r1]
+ movs r2, 0xA1
+ lsls r2, 1
+ adds r1, r3, r2
+ movs r0, 0x80
+ lsls r0, 1
+ strh r0, [r1]
+ ldr r2, _0804EFC8 @ =gUnknown_082162F8
+ ldr r1, _0804EFCC @ =gUnknown_08216300
+ adds r0, r3, 0
+ adds r0, 0x88
+ ldrb r0, [r0]
+ subs r0, 0x2
+ adds r0, r1
+ ldrb r0, [r0]
+ lsls r0, 1
+ adds r0, r2
+ ldrh r1, [r0]
+ adds r0, r3, 0
+ adds r0, 0x54
+ strh r1, [r0]
+ ldr r1, _0804EFD0 @ =REG_BG2CNT
+ ldr r4, _0804EFD4 @ =0x00004882
+ adds r0, r4, 0
+ strh r0, [r1]
+ movs r0, 0x98
+ lsls r0, 1
+ adds r1, r3, r0
+ movs r0, 0
+ str r0, [r1]
+ bl sub_804F238
+ bl BuyMenuDrawFieldObjects
+_0804EFB8:
+ mov r1, r8
+ ldr r0, [r1]
+_0804EFBC:
+ movs r2, 0xB4
+ lsls r2, 1
+ adds r0, r2
+ bl sub_8051414
+ b _0804F0CE
+ .align 2, 0
+_0804EFC8: .4byte gUnknown_082162F8
+_0804EFCC: .4byte gUnknown_08216300
+_0804EFD0: .4byte REG_BG2CNT
+_0804EFD4: .4byte 0x00004882
+_0804EFD8:
+ bl sub_8051B8C
+ lsls r0, 24
+ cmp r0, 0
+ beq _0804EFF6
+ ldr r0, _0804F008 @ =gUnknown_03004854
+ ldr r1, [r0]
+ movs r3, 0x98
+ lsls r3, 1
+ adds r2, r1, r3
+ movs r0, 0
+ str r0, [r2]
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+_0804EFF6:
+ ldr r0, _0804F008 @ =gUnknown_03004854
+ ldr r0, [r0]
+ movs r4, 0xB4
+ lsls r4, 1
+ adds r0, r4
+ bl sub_8051414
+ b _0804F0CE
+ .align 2, 0
+_0804F008: .4byte gUnknown_03004854
+_0804F00C:
+ ldr r0, _0804F01C @ =gSpriteTemplate_8216548
+ movs r2, 0x10
+ negs r2, r2
+ movs r1, 0x78
+ movs r3, 0x3
+ bl CreateSprite
+ b _0804F0AA
+ .align 2, 0
+_0804F01C: .4byte gSpriteTemplate_8216548
+_0804F020:
+ mov r0, r8
+ b _0804F0AC
+_0804F024:
+ bl sub_80084A4
+ b _0804F0AA
+_0804F02A:
+ bl sub_8007ECC
+ lsls r0, 24
+ cmp r0, 0
+ beq _0804F0CE
+ bl sub_8007E24
+ b _0804F0AA
+_0804F03A:
+ mov r1, r8
+ ldr r3, [r1]
+ adds r2, r3, 0
+ adds r2, 0x56
+ movs r1, 0
+ movs r0, 0x80
+ strh r0, [r2]
+ movs r2, 0x96
+ lsls r2, 1
+ adds r0, r3, r2
+ str r1, [r0]
+ ldr r0, _0804F07C @ =sub_80501FC
+ bl SetMainCallback2
+ bl GetCurrentMapMusic
+ lsls r0, 16
+ lsrs r0, 16
+ ldr r4, _0804F080 @ =0x00000193
+ cmp r0, r4
+ beq _0804F074
+ bl GetCurrentMapMusic
+ mov r3, r8
+ ldr r1, [r3]
+ movs r2, 0xBC
+ lsls r2, 1
+ adds r1, r2
+ strh r0, [r1]
+_0804F074:
+ adds r0, r4, 0
+ bl PlayBGM
+ b _0804F0CE
+ .align 2, 0
+_0804F07C: .4byte sub_80501FC
+_0804F080: .4byte 0x00000193
+_0804F084:
+ movs r0, 0
+ movs r1, 0xD
+ movs r2, 0x1D
+ movs r3, 0x13
+ bl MenuDrawTextWindow
+ ldr r0, _0804F09C @ =gOtherText_LinkNotFound
+ movs r1, 0x1
+ movs r2, 0xF
+ bl MenuPrintMessage
+ b _0804F0AA
+ .align 2, 0
+_0804F09C: .4byte gOtherText_LinkNotFound
+_0804F0A0:
+ bl MenuUpdateWindowText
+ lsls r0, 24
+ cmp r0, 0
+ beq _0804F0CE
+_0804F0AA:
+ ldr r0, _0804F0B8 @ =gUnknown_03004854
+_0804F0AC:
+ ldr r1, [r0]
+_0804F0AE:
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+ b _0804F0CE
+ .align 2, 0
+_0804F0B8: .4byte gUnknown_03004854
+_0804F0BC:
+ ldr r0, _0804F0EC @ =gPaletteFade
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _0804F0CE
+ ldr r0, _0804F0F0 @ =c2_exit_to_overworld_1_continue_scripts_restart_music
+ bl SetMainCallback2
+_0804F0CE:
+ bl RunTasks
+ bl AnimateSprites
+ bl BuildOamBuffer
+ bl UpdatePaletteFade
+ add sp, 0x4
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0804F0EC: .4byte gPaletteFade
+_0804F0F0: .4byte c2_exit_to_overworld_1_continue_scripts_restart_music
+ thumb_func_end sub_804E9F8
+
+ thumb_func_start sub_804F0F4
+sub_804F0F4: @ 804F0F4
+ push {r4,lr}
+ movs r1, 0x80
+ lsls r1, 19
+ movs r0, 0
+ strh r0, [r1]
+ bl ResetSpriteData
+ bl FreeAllSpritePalettes
+ bl ResetTasks
+ ldr r0, _0804F158 @ =sub_804E2BC
+ bl SetVBlankCallback
+ ldr r4, _0804F15C @ =gWindowConfig_81E6F68
+ adds r0, r4, 0
+ bl SetUpWindowConfig
+ adds r0, r4, 0
+ bl InitMenuWindow
+ ldr r1, _0804F160 @ =gLinkType
+ ldr r2, _0804F164 @ =0x00004422
+ adds r0, r2, 0
+ strh r0, [r1]
+ ldr r0, _0804F168 @ =gUnknown_03004854
+ ldr r2, [r0]
+ adds r0, r2, 0
+ adds r0, 0x4E
+ movs r1, 0
+ strh r1, [r0]
+ adds r0, 0x8
+ strh r1, [r0]
+ subs r0, 0x2
+ strh r1, [r0]
+ adds r0, 0x6
+ strh r1, [r0]
+ movs r3, 0xA2
+ lsls r3, 1
+ adds r0, r2, r3
+ strh r1, [r0]
+ adds r3, 0x2
+ adds r0, r2, r3
+ strh r1, [r0]
+ ldrb r0, [r2]
+ adds r0, 0x1
+ strb r0, [r2]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0804F158: .4byte sub_804E2BC
+_0804F15C: .4byte gWindowConfig_81E6F68
+_0804F160: .4byte gLinkType
+_0804F164: .4byte 0x00004422
+_0804F168: .4byte gUnknown_03004854
+ thumb_func_end sub_804F0F4
+
+ thumb_func_start task_tutorial_oak_boy_girl
+task_tutorial_oak_boy_girl: @ 804F16C
+ push {lr}
+ lsls r0, 16
+ lsls r1, 24
+ lsrs r0, 24
+ adds r2, r0, 0
+ adds r2, 0x18
+ ldr r0, _0804F1A8 @ =gUnknown_03004854
+ ldr r0, [r0]
+ lsrs r1, 23
+ adds r0, 0xA2
+ adds r0, r1
+ ldrb r0, [r0]
+ ldr r1, _0804F1AC @ =gUnknown_08216303
+ adds r0, r1
+ ldrb r1, [r0]
+ cmp r2, r1
+ bcc _0804F1B4
+ adds r0, r1, 0
+ adds r0, 0x30
+ cmp r2, r0
+ bcs _0804F1B4
+ subs r0, 0x1C
+ cmp r2, r0
+ bcc _0804F1B0
+ adds r0, 0x8
+ cmp r2, r0
+ bcs _0804F1B0
+ movs r0, 0x2
+ b _0804F1B6
+ .align 2, 0
+_0804F1A8: .4byte gUnknown_03004854
+_0804F1AC: .4byte gUnknown_08216303
+_0804F1B0:
+ movs r0, 0x1
+ b _0804F1B6
+_0804F1B4:
+ movs r0, 0
+_0804F1B6:
+ pop {r1}
+ bx r1
+ thumb_func_end task_tutorial_oak_boy_girl
+
+ thumb_func_start sub_804F1BC
+sub_804F1BC: @ 804F1BC
+ push {r4-r7,lr}
+ lsls r0, 16
+ lsrs r0, 16
+ lsls r1, 24
+ lsrs r1, 24
+ movs r4, 0
+ cmp r0, 0xAF
+ bne _0804F1EE
+ movs r3, 0
+ subs r5, r1, 0x1
+ adds r2, 0x9
+_0804F1D2:
+ adds r0, r2, r4
+ adds r1, r2, r3
+ ldrb r0, [r0]
+ ldrb r1, [r1]
+ cmp r0, r1
+ bls _0804F1E0
+ adds r4, r3, 0
+_0804F1E0:
+ adds r0, r3, 0x1
+ lsls r0, 16
+ lsrs r3, r0, 16
+ cmp r3, 0x4
+ bls _0804F1D2
+ adds r0, r4, 0x5
+ b _0804F204
+_0804F1EE:
+ subs r0, 0x85
+ lsls r0, 16
+ lsrs r4, r0, 16
+ subs r5, r1, 0x1
+ cmp r4, 0x4
+ bls _0804F208
+ adds r0, r4, 0
+ movs r1, 0x5
+ bl __umodsi3
+ adds r0, 0x5
+_0804F204:
+ lsls r0, 16
+ lsrs r4, r0, 16
+_0804F208:
+ movs r3, 0
+ cmp r3, r5
+ bge _0804F22E
+ ldr r7, _0804F234 @ =gUnknown_082165BC
+ lsls r0, r4, 1
+ adds r6, r0, r4
+_0804F214:
+ adds r4, r3, 0x1
+ lsls r0, r4, 24
+ lsrs r0, 24
+ adds r1, r3, r6
+ adds r1, r7
+ ldrb r1, [r1]
+ adds r1, 0x85
+ bl sub_80516C4
+ lsls r4, 16
+ lsrs r3, r4, 16
+ cmp r3, r5
+ blt _0804F214
+_0804F22E:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0804F234: .4byte gUnknown_082165BC
+ thumb_func_end sub_804F1BC
+
+ thumb_func_start sub_804F238
+sub_804F238: @ 804F238
+ push {r4-r7,lr}
+ movs r4, 0
+ ldr r7, _0804F2A0 @ =gUnknown_03004854
+ movs r6, 0xFF
+ ldr r5, _0804F2A4 @ =gUnknown_082162EC
+_0804F242:
+ ldr r3, [r7]
+ lsls r2, r4, 1
+ adds r0, r3, 0
+ adds r0, 0xA2
+ adds r0, r2
+ strh r6, [r0]
+ adds r1, r3, 0
+ adds r1, 0x9A
+ adds r1, r2
+ adds r0, r3, 0
+ adds r0, 0x88
+ ldrb r0, [r0]
+ subs r0, 0x2
+ lsls r0, 2
+ adds r0, r4, r0
+ adds r0, r5
+ ldrb r0, [r0]
+ strh r0, [r1]
+ adds r4, 0x1
+ cmp r4, 0x3
+ ble _0804F242
+ movs r3, 0
+ ldr r7, _0804F2A0 @ =gUnknown_03004854
+_0804F270:
+ movs r4, 0
+ adds r6, r3, 0x1
+ lsls r5, r3, 1
+_0804F276:
+ ldr r2, [r7]
+ lsls r0, r4, 1
+ adds r1, r2, 0
+ adds r1, 0x9A
+ adds r1, r0
+ ldrh r0, [r1]
+ cmp r0, r3
+ bne _0804F28E
+ adds r0, r2, 0
+ adds r0, 0xA2
+ adds r0, r5
+ strh r4, [r0]
+_0804F28E:
+ adds r4, 0x1
+ cmp r4, 0x3
+ ble _0804F276
+ adds r3, r6, 0
+ cmp r3, 0x3
+ ble _0804F270
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0804F2A0: .4byte gUnknown_03004854
+_0804F2A4: .4byte gUnknown_082162EC
+ thumb_func_end sub_804F238
+
+ thumb_func_start BuyMenuDrawFieldObjects
+BuyMenuDrawFieldObjects: @ 804F2A8
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ movs r6, 0
+ ldr r7, _0804F360 @ =gUnknown_03004854
+ ldr r0, _0804F364 @ =gUnknown_082162D4
+ mov r8, r0
+_0804F2B6:
+ ldr r2, [r7]
+ lsls r4, r6, 1
+ adds r0, r2, 0
+ adds r0, 0x9A
+ adds r3, r0, r4
+ ldrh r0, [r3]
+ cmp r0, 0xFF
+ beq _0804F34A
+ ldr r5, _0804F368 @ =gStringVar1
+ adds r1, r2, 0
+ adds r1, 0x5C
+ ldrh r3, [r3]
+ adds r1, r3
+ adds r0, r2, 0
+ adds r0, 0x60
+ adds r0, r6
+ ldrb r0, [r0]
+ strb r0, [r1]
+ ldr r0, [r7]
+ adds r1, r0, 0
+ adds r1, 0x9A
+ adds r1, r4
+ adds r0, 0x5C
+ ldrh r1, [r1]
+ adds r0, r1
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _0804F36C @ =gSprites
+ adds r0, r1
+ lsls r1, r6, 24
+ lsrs r1, 24
+ bl StartSpriteAnim
+ bl GetMultiplayerId
+ lsls r0, 24
+ ldr r1, [r7]
+ adds r1, 0x9A
+ adds r1, r4
+ lsrs r0, 24
+ ldrh r1, [r1]
+ cmp r0, r1
+ bne _0804F31A
+ adds r0, r5, 0
+ ldr r1, _0804F370 @ =gUnknown_082162C4
+ bl StringCopy
+ adds r5, r0, 0
+_0804F31A:
+ ldr r0, [r7]
+ adds r0, 0x9A
+ adds r0, r4
+ ldrh r0, [r0]
+ lsls r1, r0, 3
+ subs r1, r0
+ lsls r1, 2
+ ldr r0, _0804F374 @ =gLinkPlayers + 0x8
+ adds r1, r0
+ adds r0, r5, 0
+ bl StringCopy
+ mov r0, r8
+ ldrb r1, [r0]
+ lsls r1, 3
+ adds r1, 0x1
+ lsls r1, 24
+ lsrs r1, 24
+ ldrb r2, [r0, 0x1]
+ lsls r2, 3
+ ldr r0, _0804F368 @ =gStringVar1
+ movs r3, 0x1
+ bl MenuPrint_PixelCoords
+_0804F34A:
+ movs r0, 0x2
+ add r8, r0
+ adds r6, 0x1
+ cmp r6, 0x3
+ ble _0804F2B6
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0804F360: .4byte gUnknown_03004854
+_0804F364: .4byte gUnknown_082162D4
+_0804F368: .4byte gStringVar1
+_0804F36C: .4byte gSprites
+_0804F370: .4byte gUnknown_082162C4
+_0804F374: .4byte gLinkPlayers + 0x8
+ thumb_func_end BuyMenuDrawFieldObjects
+
+ thumb_func_start sub_804F378
+sub_804F378: @ 804F378
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ sub sp, 0x4
+ ldr r1, _0804F398 @ =gUnknown_03004854
+ ldr r0, [r1]
+ ldrb r0, [r0]
+ mov r8, r1
+ cmp r0, 0x15
+ bls _0804F38E
+ b _0804F7E6
+_0804F38E:
+ lsls r0, 2
+ ldr r1, _0804F39C @ =_0804F3A0
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_0804F398: .4byte gUnknown_03004854
+_0804F39C: .4byte _0804F3A0
+ .align 2, 0
+_0804F3A0:
+ .4byte _0804F3F8
+ .4byte _0804F474
+ .4byte _0804F494
+ .4byte _0804F4EC
+ .4byte _0804F518
+ .4byte _0804F7E6
+ .4byte _0804F7E6
+ .4byte _0804F7E6
+ .4byte _0804F54C
+ .4byte _0804F7E6
+ .4byte _0804F7E6
+ .4byte _0804F578
+ .4byte _0804F5C8
+ .4byte _0804F636
+ .4byte _0804F650
+ .4byte _0804F6F8
+ .4byte _0804F720
+ .4byte _0804F7E6
+ .4byte _0804F73C
+ .4byte _0804F742
+ .4byte _0804F748
+ .4byte _0804F754
+_0804F3F8:
+ bl sub_804F0F4
+ ldr r4, _0804F46C @ =gScriptItemId
+ ldrh r1, [r4]
+ movs r0, 0
+ bl sub_80516C4
+ ldr r5, _0804F470 @ =gUnknown_03004854
+ ldr r0, [r5]
+ movs r6, 0xBE
+ lsls r6, 1
+ adds r0, r6
+ ldrh r1, [r4]
+ bl sub_804E844
+ ldrh r0, [r4]
+ ldr r2, [r5]
+ adds r1, r2, 0
+ adds r1, 0x88
+ ldrb r1, [r1]
+ adds r2, r6
+ bl sub_804F1BC
+ movs r4, 0
+ movs r6, 0
+ mov r8, r5
+ movs r7, 0xA6
+ lsls r7, 1
+_0804F430:
+ ldr r0, [r5]
+ lsls r1, r4, 1
+ adds r0, 0x70
+ adds r0, r1
+ strh r6, [r0]
+ adds r3, r4, 0x1
+ adds r1, r4
+ lsls r1, 1
+ movs r2, 0x2
+_0804F442:
+ ldr r0, [r5]
+ adds r0, r7
+ adds r0, r1
+ strh r6, [r0]
+ adds r1, 0x2
+ subs r2, 0x1
+ cmp r2, 0
+ bge _0804F442
+ adds r4, r3, 0
+ cmp r4, 0x3
+ ble _0804F430
+ mov r0, r8
+ ldr r3, [r0]
+ adds r1, r3, 0
+ adds r1, 0x7C
+ movs r2, 0
+ movs r0, 0
+ strh r0, [r1]
+ strb r2, [r3, 0x1]
+ b _0804F7E6
+ .align 2, 0
+_0804F46C: .4byte gScriptItemId
+_0804F470: .4byte gUnknown_03004854
+_0804F474:
+ bl sub_804E2EC
+ lsls r0, 24
+ cmp r0, 0
+ bne _0804F480
+ b _0804F7E6
+_0804F480:
+ ldr r0, _0804F490 @ =gUnknown_03004854
+ ldr r1, [r0]
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+ bl sub_8051474
+ b _0804F7E6
+ .align 2, 0
+_0804F490: .4byte gUnknown_03004854
+_0804F494:
+ movs r4, 0
+ ldr r5, _0804F4DC @ =gUnknown_082162E4
+ ldr r6, _0804F4E0 @ =gUnknown_03004854
+_0804F49A:
+ ldrb r1, [r5]
+ ldrb r2, [r5, 0x1]
+ ldr r0, _0804F4E4 @ =gSpriteTemplate_82163F4
+ movs r3, 0x1
+ bl CreateSprite
+ ldr r1, [r6]
+ adds r1, 0x60
+ adds r1, r4
+ strb r0, [r1]
+ ldr r0, [r6]
+ adds r0, 0x60
+ adds r0, r4
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _0804F4E8 @ =gSprites
+ adds r0, r1
+ adds r1, r4, 0
+ adds r1, 0x8
+ lsls r1, 24
+ lsrs r1, 24
+ bl StartSpriteAnim
+ adds r5, 0x2
+ adds r4, 0x1
+ cmp r4, 0x3
+ ble _0804F49A
+ ldr r0, _0804F4E0 @ =gUnknown_03004854
+ ldr r1, [r0]
+ b _0804F74C
+ .align 2, 0
+_0804F4DC: .4byte gUnknown_082162E4
+_0804F4E0: .4byte gUnknown_03004854
+_0804F4E4: .4byte gSpriteTemplate_82163F4
+_0804F4E8: .4byte gSprites
+_0804F4EC:
+ movs r0, 0x1
+ negs r0, r0
+ movs r4, 0
+ str r4, [sp]
+ movs r1, 0
+ movs r2, 0x10
+ movs r3, 0
+ bl BeginNormalPaletteFade
+ ldr r2, _0804F514 @ =gUnknown_03004854
+ ldr r1, [r2]
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+ ldr r0, [r2]
+ movs r1, 0x98
+ lsls r1, 1
+ adds r0, r1
+ str r4, [r0]
+ b _0804F7E6
+ .align 2, 0
+_0804F514: .4byte gUnknown_03004854
+_0804F518:
+ mov r2, r8
+ ldr r1, [r2]
+ movs r3, 0x98
+ lsls r3, 1
+ adds r1, r3
+ ldr r0, [r1]
+ adds r0, 0x1
+ str r0, [r1]
+ cmp r0, 0x2
+ bne _0804F530
+ bl sub_804E4FC
+_0804F530:
+ ldr r0, _0804F548 @ =gPaletteFade
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ beq _0804F53E
+ b _0804F7E6
+_0804F53E:
+ mov r5, r8
+ ldr r1, [r5]
+ movs r0, 0x8
+ strb r0, [r1]
+ b _0804F7E6
+ .align 2, 0
+_0804F548: .4byte gPaletteFade
+_0804F54C:
+ mov r0, r8
+ ldr r1, [r0]
+ movs r2, 0
+ movs r0, 0xB
+ strb r0, [r1]
+ mov r1, r8
+ ldr r0, [r1]
+ movs r3, 0x9E
+ lsls r3, 1
+ adds r0, r3
+ strb r2, [r0]
+ b _0804F7E6
+_0804F564:
+ lsls r1, 1
+ adds r0, r3, 0
+ adds r0, 0x80
+ adds r0, r1
+ ldrh r0, [r0]
+ lsls r1, r4, 24
+ lsrs r1, 24
+ bl sub_804E7C0
+ b _0804F5A2
+_0804F578:
+ movs r4, 0
+ ldr r2, _0804F5C0 @ =gUnknown_082162EC
+ ldr r0, _0804F5C4 @ =gUnknown_03004854
+ ldr r3, [r0]
+ adds r0, r3, 0
+ adds r0, 0x88
+ ldrb r0, [r0]
+ subs r0, 0x2
+ lsls r0, 2
+ movs r5, 0x9E
+ lsls r5, 1
+ adds r1, r3, r5
+ ldrb r1, [r1]
+ adds r0, r2
+_0804F594:
+ ldrb r2, [r0]
+ cmp r1, r2
+ beq _0804F564
+ adds r0, 0x1
+ adds r4, 0x1
+ cmp r4, 0x3
+ ble _0804F594
+_0804F5A2:
+ ldr r3, _0804F5C4 @ =gUnknown_03004854
+ ldr r1, [r3]
+ movs r5, 0x98
+ lsls r5, 1
+ adds r2, r1, r5
+ movs r0, 0
+ str r0, [r2]
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+ ldr r1, [r3]
+ movs r0, 0x9E
+ lsls r0, 1
+ adds r1, r0
+ b _0804F74C
+ .align 2, 0
+_0804F5C0: .4byte gUnknown_082162EC
+_0804F5C4: .4byte gUnknown_03004854
+_0804F5C8:
+ mov r1, r8
+ ldr r3, [r1]
+ movs r2, 0x98
+ lsls r2, 1
+ adds r1, r3, r2
+ ldr r0, [r1]
+ adds r0, 0x1
+ str r0, [r1]
+ cmp r0, 0x3C
+ bgt _0804F5DE
+ b _0804F7E6
+_0804F5DE:
+ movs r5, 0x9E
+ lsls r5, 1
+ adds r0, r3, r5
+ adds r4, r3, 0
+ adds r4, 0x88
+ ldrb r0, [r0]
+ ldrb r1, [r4]
+ cmp r0, r1
+ bcc _0804F620
+ ldr r2, _0804F614 @ =gUnknown_082162F8
+ ldr r1, _0804F618 @ =gUnknown_08216300
+ ldrb r0, [r4]
+ subs r0, 0x2
+ adds r0, r1
+ ldrb r0, [r0]
+ lsls r0, 1
+ adds r0, r2
+ ldr r2, _0804F61C @ =0xffffa800
+ adds r1, r2, 0
+ ldrh r0, [r0]
+ adds r1, r0
+ adds r0, r3, 0
+ adds r0, 0x54
+ strh r1, [r0]
+ ldrb r0, [r3]
+ adds r0, 0x1
+ b _0804F624
+ .align 2, 0
+_0804F614: .4byte gUnknown_082162F8
+_0804F618: .4byte gUnknown_08216300
+_0804F61C: .4byte 0xffffa800
+_0804F620:
+ ldrb r0, [r3]
+ subs r0, 0x1
+_0804F624:
+ strb r0, [r3]
+ mov r3, r8
+ ldr r0, [r3]
+ movs r5, 0x98
+ lsls r5, 1
+ adds r0, r5
+ movs r1, 0
+ str r1, [r0]
+ b _0804F7E6
+_0804F636:
+ mov r1, r8
+ ldr r0, [r1]
+ ldrb r1, [r0]
+ adds r1, 0x1
+ strb r1, [r0]
+ bl sub_804F238
+ movs r0, 0x2B
+ bl PlaySE
+ mov r2, r8
+ ldr r0, [r2]
+ b _0804F710
+_0804F650:
+ movs r2, 0x80
+ lsls r2, 19
+ ldrh r0, [r2]
+ movs r5, 0x80
+ lsls r5, 3
+ adds r1, r5, 0
+ orrs r0, r1
+ strh r0, [r2]
+ mov r0, r8
+ ldr r2, [r0]
+ adds r1, r2, 0
+ adds r1, 0x54
+ movs r3, 0x80
+ lsls r3, 2
+ adds r0, r3, 0
+ ldrh r5, [r1]
+ adds r0, r5
+ strh r0, [r1]
+ movs r0, 0xA1
+ lsls r0, 1
+ adds r1, r2, r0
+ ldrh r0, [r1]
+ adds r0, 0x4
+ strh r0, [r1]
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0xFF
+ bls _0804F6D6
+ ldrb r0, [r2]
+ adds r0, 0x1
+ strb r0, [r2]
+ mov r1, r8
+ ldr r3, [r1]
+ movs r2, 0xA1
+ lsls r2, 1
+ adds r1, r3, r2
+ movs r0, 0x80
+ lsls r0, 1
+ strh r0, [r1]
+ ldr r2, _0804F6E8 @ =gUnknown_082162F8
+ ldr r1, _0804F6EC @ =gUnknown_08216300
+ adds r0, r3, 0
+ adds r0, 0x88
+ ldrb r0, [r0]
+ subs r0, 0x2
+ adds r0, r1
+ ldrb r0, [r0]
+ lsls r0, 1
+ adds r0, r2
+ ldrh r1, [r0]
+ adds r0, r3, 0
+ adds r0, 0x54
+ strh r1, [r0]
+ ldr r1, _0804F6F0 @ =REG_BG2CNT
+ ldr r5, _0804F6F4 @ =0x00004882
+ adds r0, r5, 0
+ strh r0, [r1]
+ movs r0, 0x98
+ lsls r0, 1
+ adds r1, r3, r0
+ movs r0, 0
+ str r0, [r1]
+ movs r0, 0x34
+ bl PlaySE
+ bl BuyMenuDrawFieldObjects
+_0804F6D6:
+ mov r1, r8
+ ldr r0, [r1]
+ movs r2, 0xB4
+ lsls r2, 1
+ adds r0, r2
+ bl sub_8051414
+ b _0804F7E6
+ .align 2, 0
+_0804F6E8: .4byte gUnknown_082162F8
+_0804F6EC: .4byte gUnknown_08216300
+_0804F6F0: .4byte REG_BG2CNT
+_0804F6F4: .4byte 0x00004882
+_0804F6F8:
+ bl sub_8051B8C
+ lsls r0, 24
+ cmp r0, 0
+ beq _0804F70C
+ ldr r0, _0804F71C @ =gUnknown_03004854
+ ldr r1, [r0]
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+_0804F70C:
+ ldr r0, _0804F71C @ =gUnknown_03004854
+ ldr r0, [r0]
+_0804F710:
+ movs r3, 0xB4
+ lsls r3, 1
+ adds r0, r3
+ bl sub_8051414
+ b _0804F7E6
+ .align 2, 0
+_0804F71C: .4byte gUnknown_03004854
+_0804F720:
+ ldr r0, _0804F734 @ =gSpriteTemplate_8216548
+ movs r2, 0x10
+ negs r2, r2
+ movs r1, 0x78
+ movs r3, 0x3
+ bl CreateSprite
+ ldr r0, _0804F738 @ =gUnknown_03004854
+ ldr r1, [r0]
+ b _0804F74C
+ .align 2, 0
+_0804F734: .4byte gSpriteTemplate_8216548
+_0804F738: .4byte gUnknown_03004854
+_0804F73C:
+ mov r5, r8
+ ldr r1, [r5]
+ b _0804F74C
+_0804F742:
+ mov r0, r8
+ ldr r1, [r0]
+ b _0804F74C
+_0804F748:
+ mov r2, r8
+ ldr r1, [r2]
+_0804F74C:
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+ b _0804F7E6
+_0804F754:
+ bl sub_804F81C
+ ldr r3, _0804F804 @ =gUnknown_03004854
+ ldr r4, [r3]
+ adds r5, r4, 0
+ adds r5, 0x56
+ movs r2, 0
+ movs r1, 0
+ movs r0, 0x80
+ strh r0, [r5]
+ movs r5, 0x96
+ lsls r5, 1
+ adds r0, r4, r5
+ str r1, [r0]
+ ldr r1, _0804F808 @ =0x0000014b
+ adds r0, r4, r1
+ strb r2, [r0]
+ ldr r0, [r3]
+ adds r0, 0x7E
+ strb r2, [r0]
+ ldr r0, _0804F80C @ =sub_80501FC
+ bl SetMainCallback2
+ movs r4, 0
+ ldr r0, _0804F810 @ =gSpecialVar_0x8004
+ ldrh r0, [r0]
+ cmp r4, r0
+ bge _0804F7B8
+ movs r5, 0xA0
+ lsls r5, 20
+ ldr r6, _0804F814 @ =gUnknown_08216308
+_0804F792:
+ ldm r6!, {r0}
+ lsrs r1, r5, 24
+ bl CreateTask
+ ldr r1, _0804F804 @ =gUnknown_03004854
+ ldr r1, [r1]
+ movs r2, 0xA4
+ lsls r2, 1
+ adds r1, r2
+ adds r1, r4
+ strb r0, [r1]
+ movs r3, 0x80
+ lsls r3, 17
+ adds r5, r3
+ adds r4, 0x1
+ ldr r0, _0804F810 @ =gSpecialVar_0x8004
+ ldrh r0, [r0]
+ cmp r4, r0
+ blt _0804F792
+_0804F7B8:
+ bl GetCurrentMapMusic
+ lsls r0, 16
+ lsrs r0, 16
+ ldr r4, _0804F818 @ =0x00000193
+ cmp r0, r4
+ beq _0804F7D6
+ bl GetCurrentMapMusic
+ ldr r1, _0804F804 @ =gUnknown_03004854
+ ldr r1, [r1]
+ movs r5, 0xBC
+ lsls r5, 1
+ adds r1, r5
+ strh r0, [r1]
+_0804F7D6:
+ adds r0, r4, 0
+ bl PlayBGM
+ movs r0, 0x35
+ bl PlaySE
+ bl sub_804E290
+_0804F7E6:
+ bl RunTasks
+ bl AnimateSprites
+ bl BuildOamBuffer
+ bl UpdatePaletteFade
+ add sp, 0x4
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0804F804: .4byte gUnknown_03004854
+_0804F808: .4byte 0x0000014b
+_0804F80C: .4byte sub_80501FC
+_0804F810: .4byte gSpecialVar_0x8004
+_0804F814: .4byte gUnknown_08216308
+_0804F818: .4byte 0x00000193
+ thumb_func_end sub_804F378
+
+ thumb_func_start sub_804F81C
+sub_804F81C: @ 804F81C
+ push {lr}
+ ldr r3, _0804F83C @ =gSendCmd
+ movs r0, 0
+ ldr r1, _0804F840 @ =gRecvCmds
+ movs r2, 0x3
+_0804F826:
+ strh r0, [r3]
+ strh r0, [r3, 0x4]
+ strh r0, [r1]
+ strh r0, [r1, 0x10]
+ adds r1, 0x2
+ subs r2, 0x1
+ cmp r2, 0
+ bge _0804F826
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0804F83C: .4byte gSendCmd
+_0804F840: .4byte gRecvCmds
+ thumb_func_end sub_804F81C
+
+ thumb_func_start sub_804F844
+sub_804F844: @ 804F844
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r3, r0, 24
+ ldr r1, _0804F884 @ =gTasks
+ lsls r0, r3, 2
+ adds r0, r3
+ lsls r0, 3
+ adds r2, r0, r1
+ ldrh r0, [r2, 0x8]
+ adds r0, 0x1
+ strh r0, [r2, 0x8]
+ lsls r0, 16
+ asrs r0, 16
+ movs r4, 0xA
+ ldrsh r1, [r2, r4]
+ cmp r0, r1
+ ble _0804F87C
+ ldr r0, _0804F888 @ =gRecvCmds
+ movs r4, 0xC
+ ldrsh r1, [r2, r4]
+ lsls r1, 1
+ adds r0, 0x10
+ adds r1, r0
+ ldr r0, _0804F88C @ =0x00002345
+ strh r0, [r1]
+ adds r0, r3, 0
+ bl DestroyTask
+_0804F87C:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0804F884: .4byte gTasks
+_0804F888: .4byte gRecvCmds
+_0804F88C: .4byte 0x00002345
+ thumb_func_end sub_804F844
+
+ thumb_func_start sub_804F890
+sub_804F890: @ 804F890
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ adds r4, r1, 0
+ lsls r5, 24
+ lsrs r5, 24
+ lsls r4, 24
+ lsrs r4, 24
+ ldr r0, _0804F8C0 @ =sub_804F844
+ movs r1, 0x50
+ bl CreateTask
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _0804F8C4 @ =gTasks
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r2
+ strh r4, [r1, 0xA]
+ strh r5, [r1, 0xC]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0804F8C0: .4byte sub_804F844
+_0804F8C4: .4byte gTasks
+ thumb_func_end sub_804F890
+
+ thumb_func_start sub_804F8C8
+sub_804F8C8: @ 804F8C8
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldr r4, _0804F934 @ =gUnknown_03004854
+ ldr r0, [r4]
+ adds r0, 0x54
+ ldrh r0, [r0]
+ movs r1, 0x1
+ bl task_tutorial_oak_boy_girl
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x2
+ beq _0804F8E6
+ b _0804F9DC
+_0804F8E6:
+ ldr r2, _0804F938 @ =gTasks
+ lsls r1, r5, 2
+ adds r0, r1, r5
+ lsls r0, 3
+ adds r0, r2
+ movs r2, 0x8
+ ldrsh r0, [r0, r2]
+ adds r6, r1, 0
+ cmp r0, 0
+ beq _0804F8FC
+ b _0804F9EA
+_0804F8FC:
+ ldr r0, [r4]
+ ldr r1, _0804F93C @ =0x0000014b
+ adds r0, r1
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _0804F9BE
+ bl Random
+ lsls r0, 16
+ lsrs r0, 16
+ ldr r1, _0804F940 @ =0x0000028f
+ bl __udivsi3
+ lsls r0, 24
+ lsrs r1, r0, 24
+ adds r3, r1, 0
+ ldr r0, [r4]
+ adds r0, 0x56
+ movs r4, 0
+ ldrsh r2, [r0, r4]
+ ldr r0, _0804F944 @ =0x000001f3
+ cmp r2, r0
+ bgt _0804F964
+ cmp r1, 0x4B
+ bls _0804F950
+ ldr r1, _0804F948 @ =gRecvCmds
+ ldr r0, _0804F94C @ =0x00004523
+ b _0804F954
+ .align 2, 0
+_0804F934: .4byte gUnknown_03004854
+_0804F938: .4byte gTasks
+_0804F93C: .4byte 0x0000014b
+_0804F940: .4byte 0x0000028f
+_0804F944: .4byte 0x000001f3
+_0804F948: .4byte gRecvCmds
+_0804F94C: .4byte 0x00004523
+_0804F950:
+ ldr r1, _0804F95C @ =gRecvCmds
+ ldr r0, _0804F960 @ =0x00005432
+_0804F954:
+ strh r0, [r1, 0x12]
+ ldr r0, _0804F960 @ =0x00005432
+ b _0804F9C2
+ .align 2, 0
+_0804F95C: .4byte gRecvCmds
+_0804F960: .4byte 0x00005432
+_0804F964:
+ ldr r0, _0804F980 @ =0x000005db
+ cmp r2, r0
+ bgt _0804F992
+ cmp r1, 0x50
+ bhi _0804F9BE
+ adds r0, r1, 0
+ subs r0, 0x15
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x3B
+ bhi _0804F98C
+ ldr r1, _0804F984 @ =gRecvCmds
+ ldr r0, _0804F988 @ =0x00005432
+ b _0804F9C2
+ .align 2, 0
+_0804F980: .4byte 0x000005db
+_0804F984: .4byte gRecvCmds
+_0804F988: .4byte 0x00005432
+_0804F98C:
+ cmp r1, 0x9
+ bhi _0804F9C4
+ b _0804F9B4
+_0804F992:
+ cmp r1, 0x5A
+ bhi _0804F9BE
+ adds r0, r1, 0
+ subs r0, 0x47
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x13
+ bhi _0804F9B0
+ ldr r1, _0804F9A8 @ =gRecvCmds
+ ldr r0, _0804F9AC @ =0x00005432
+ b _0804F9C2
+ .align 2, 0
+_0804F9A8: .4byte gRecvCmds
+_0804F9AC: .4byte 0x00005432
+_0804F9B0:
+ cmp r3, 0x1D
+ bhi _0804F9C4
+_0804F9B4:
+ movs r0, 0x1
+ movs r1, 0x5
+ bl sub_804F890
+ b _0804F9C4
+_0804F9BE:
+ ldr r1, _0804F9D0 @ =gRecvCmds
+ ldr r0, _0804F9D4 @ =0x00004523
+_0804F9C2:
+ strh r0, [r1, 0x12]
+_0804F9C4:
+ ldr r0, _0804F9D8 @ =gTasks
+ adds r1, r6, r5
+ lsls r1, 3
+ adds r1, r0
+ movs r0, 0x1
+ b _0804F9E8
+ .align 2, 0
+_0804F9D0: .4byte gRecvCmds
+_0804F9D4: .4byte 0x00004523
+_0804F9D8: .4byte gTasks
+_0804F9DC:
+ ldr r0, _0804F9F0 @ =gTasks
+ lsls r1, r5, 2
+ adds r1, r5
+ lsls r1, 3
+ adds r1, r0
+ movs r0, 0
+_0804F9E8:
+ strh r0, [r1, 0x8]
+_0804F9EA:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0804F9F0: .4byte gTasks
+ thumb_func_end sub_804F8C8
+
+ thumb_func_start sub_804F9F4
+sub_804F9F4: @ 804F9F4
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r6, _0804FA78 @ =gUnknown_03004854
+ ldr r3, [r6]
+ adds r0, r3, 0
+ adds r0, 0x54
+ ldrh r0, [r0]
+ movs r1, 0xC0
+ lsls r1, 5
+ adds r0, r1
+ ldr r1, _0804FA7C @ =0x0000ffff
+ ands r0, r1
+ adds r1, r3, 0
+ adds r1, 0xA6
+ ldrb r1, [r1]
+ lsrs r2, r0, 8
+ ldr r0, _0804FA80 @ =gUnknown_08216303
+ adds r1, r0
+ ldrb r1, [r1]
+ adds r0, r1, 0
+ adds r0, 0x14
+ cmp r2, r0
+ bls _0804FB04
+ adds r0, 0x14
+ cmp r2, r0
+ bcs _0804FB04
+ ldr r2, _0804FA84 @ =gTasks
+ lsls r1, r4, 2
+ adds r0, r1, r4
+ lsls r0, 3
+ adds r2, r0, r2
+ movs r5, 0x8
+ ldrsh r0, [r2, r5]
+ adds r5, r1, 0
+ cmp r0, 0
+ bne _0804FB12
+ ldr r1, _0804FA88 @ =0x0000014b
+ adds r0, r3, r1
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _0804FAF0
+ bl Random
+ lsls r0, 16
+ lsrs r0, 16
+ ldr r1, _0804FA8C @ =0x0000028f
+ bl __udivsi3
+ lsls r0, 24
+ lsrs r2, r0, 24
+ adds r3, r2, 0
+ ldr r0, [r6]
+ adds r0, 0x56
+ movs r6, 0
+ ldrsh r1, [r0, r6]
+ ldr r0, _0804FA90 @ =0x000001f3
+ cmp r1, r0
+ bgt _0804FAAC
+ cmp r2, 0x42
+ bls _0804FA9C
+ ldr r1, _0804FA94 @ =gRecvCmds
+ ldr r0, _0804FA98 @ =0x00004523
+ strh r0, [r1, 0x14]
+ b _0804FAD4
+ .align 2, 0
+_0804FA78: .4byte gUnknown_03004854
+_0804FA7C: .4byte 0x0000ffff
+_0804FA80: .4byte gUnknown_08216303
+_0804FA84: .4byte gTasks
+_0804FA88: .4byte 0x0000014b
+_0804FA8C: .4byte 0x0000028f
+_0804FA90: .4byte 0x000001f3
+_0804FA94: .4byte gRecvCmds
+_0804FA98: .4byte 0x00004523
+_0804FA9C:
+ ldr r1, _0804FAA4 @ =gRecvCmds
+ ldr r0, _0804FAA8 @ =0x00005432
+ strh r0, [r1, 0x14]
+ b _0804FAD4
+ .align 2, 0
+_0804FAA4: .4byte gRecvCmds
+_0804FAA8: .4byte 0x00005432
+_0804FAAC:
+ cmp r2, 0x41
+ bls _0804FAB6
+ ldr r1, _0804FAE0 @ =gRecvCmds
+ ldr r0, _0804FAE4 @ =0x00004523
+ strh r0, [r1, 0x14]
+_0804FAB6:
+ adds r0, r2, 0
+ subs r0, 0x29
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x18
+ bhi _0804FAC8
+ ldr r1, _0804FAE0 @ =gRecvCmds
+ ldr r0, _0804FAE8 @ =0x00005432
+ strh r0, [r1, 0x14]
+_0804FAC8:
+ cmp r3, 0x9
+ bhi _0804FAD4
+ movs r0, 0x2
+ movs r1, 0x5
+ bl sub_804F890
+_0804FAD4:
+ ldr r0, _0804FAEC @ =gTasks
+ adds r1, r5, r4
+ lsls r1, 3
+ adds r1, r0
+ movs r0, 0x1
+ b _0804FB10
+ .align 2, 0
+_0804FAE0: .4byte gRecvCmds
+_0804FAE4: .4byte 0x00004523
+_0804FAE8: .4byte 0x00005432
+_0804FAEC: .4byte gTasks
+_0804FAF0:
+ ldr r0, _0804FAFC @ =gRecvCmds
+ ldr r1, _0804FB00 @ =0x00004523
+ strh r1, [r0, 0x14]
+ movs r0, 0x1
+ strh r0, [r2, 0x8]
+ b _0804FB12
+ .align 2, 0
+_0804FAFC: .4byte gRecvCmds
+_0804FB00: .4byte 0x00004523
+_0804FB04:
+ ldr r0, _0804FB18 @ =gTasks
+ lsls r1, r4, 2
+ adds r1, r4
+ lsls r1, 3
+ adds r1, r0
+ movs r0, 0
+_0804FB10:
+ strh r0, [r1, 0x8]
+_0804FB12:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0804FB18: .4byte gTasks
+ thumb_func_end sub_804F9F4
+
+ thumb_func_start sub_804FB1C
+sub_804FB1C: @ 804FB1C
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r5, _0804FB9C @ =gUnknown_03004854
+ ldr r3, [r5]
+ adds r0, r3, 0
+ adds r0, 0x54
+ ldrh r0, [r0]
+ movs r1, 0xC0
+ lsls r1, 5
+ adds r0, r1
+ ldr r1, _0804FBA0 @ =0x0000ffff
+ ands r0, r1
+ adds r1, r3, 0
+ adds r1, 0xA8
+ ldrb r1, [r1]
+ lsrs r2, r0, 8
+ ldr r0, _0804FBA4 @ =gUnknown_08216303
+ adds r1, r0
+ ldrb r1, [r1]
+ adds r0, r1, 0
+ adds r0, 0x14
+ cmp r2, r0
+ bls _0804FC30
+ adds r0, 0x14
+ cmp r2, r0
+ bcs _0804FC30
+ ldr r2, _0804FBA8 @ =gTasks
+ lsls r1, r4, 2
+ adds r0, r1, r4
+ lsls r0, 3
+ adds r2, r0, r2
+ movs r6, 0x8
+ ldrsh r0, [r2, r6]
+ adds r6, r1, 0
+ cmp r0, 0
+ bne _0804FC3E
+ ldr r1, _0804FBAC @ =0x0000014b
+ adds r0, r3, r1
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _0804FC1C
+ bl Random
+ lsls r0, 16
+ lsrs r0, 16
+ ldr r1, _0804FBB0 @ =0x0000028f
+ bl __udivsi3
+ lsls r0, 24
+ lsrs r2, r0, 24
+ ldr r0, [r5]
+ adds r0, 0x56
+ movs r3, 0
+ ldrsh r1, [r0, r3]
+ ldr r0, _0804FBB4 @ =0x000001f3
+ cmp r1, r0
+ bgt _0804FBD0
+ cmp r2, 0x58
+ bls _0804FBC0
+ ldr r1, _0804FBB8 @ =gRecvCmds
+ ldr r0, _0804FBBC @ =0x00004523
+ strh r0, [r1, 0x16]
+ b _0804FC02
+ .align 2, 0
+_0804FB9C: .4byte gUnknown_03004854
+_0804FBA0: .4byte 0x0000ffff
+_0804FBA4: .4byte gUnknown_08216303
+_0804FBA8: .4byte gTasks
+_0804FBAC: .4byte 0x0000014b
+_0804FBB0: .4byte 0x0000028f
+_0804FBB4: .4byte 0x000001f3
+_0804FBB8: .4byte gRecvCmds
+_0804FBBC: .4byte 0x00004523
+_0804FBC0:
+ ldr r1, _0804FBC8 @ =gRecvCmds
+ ldr r0, _0804FBCC @ =0x00005432
+ strh r0, [r1, 0x16]
+ b _0804FC02
+ .align 2, 0
+_0804FBC8: .4byte gRecvCmds
+_0804FBCC: .4byte 0x00005432
+_0804FBD0:
+ cmp r2, 0x3C
+ bls _0804FBE4
+ ldr r1, _0804FBDC @ =gRecvCmds
+ ldr r0, _0804FBE0 @ =0x00004523
+ b _0804FBF4
+ .align 2, 0
+_0804FBDC: .4byte gRecvCmds
+_0804FBE0: .4byte 0x00004523
+_0804FBE4:
+ adds r0, r2, 0
+ subs r0, 0x38
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x4
+ bhi _0804FBF6
+ ldr r1, _0804FC10 @ =gRecvCmds
+ ldr r0, _0804FC14 @ =0x00005432
+_0804FBF4:
+ strh r0, [r1, 0x16]
+_0804FBF6:
+ cmp r2, 0x4
+ bhi _0804FC02
+ movs r0, 0x3
+ movs r1, 0x5
+ bl sub_804F890
+_0804FC02:
+ ldr r0, _0804FC18 @ =gTasks
+ adds r1, r6, r4
+ lsls r1, 3
+ adds r1, r0
+ movs r0, 0x1
+ b _0804FC3C
+ .align 2, 0
+_0804FC10: .4byte gRecvCmds
+_0804FC14: .4byte 0x00005432
+_0804FC18: .4byte gTasks
+_0804FC1C:
+ ldr r0, _0804FC28 @ =gRecvCmds
+ ldr r1, _0804FC2C @ =0x00004523
+ strh r1, [r0, 0x16]
+ movs r0, 0x1
+ strh r0, [r2, 0x8]
+ b _0804FC3E
+ .align 2, 0
+_0804FC28: .4byte gRecvCmds
+_0804FC2C: .4byte 0x00004523
+_0804FC30:
+ ldr r0, _0804FC44 @ =gTasks
+ lsls r1, r4, 2
+ adds r1, r4
+ lsls r1, 3
+ adds r1, r0
+ movs r0, 0
+_0804FC3C:
+ strh r0, [r1, 0x8]
+_0804FC3E:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0804FC44: .4byte gTasks
+ thumb_func_end sub_804FB1C
+
+ thumb_func_start sub_804FC48
+sub_804FC48: @ 804FC48
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ lsls r0, 16
+ lsrs r7, r0, 16
+ mov r8, r7
+ lsls r1, 24
+ ldr r0, _0804FCBC @ =gSpriteTemplate_821645C
+ ldr r4, _0804FCC0 @ =gUnknown_082162E4
+ lsrs r1, 23
+ adds r2, r1, r4
+ ldrb r6, [r2]
+ ldr r5, _0804FCC4 @ =gUnknown_082162CC
+ adds r2, r1, r5
+ movs r3, 0
+ ldrsb r3, [r2, r3]
+ lsls r2, r3, 2
+ adds r2, r3
+ lsls r2, 1
+ subs r6, r2
+ adds r4, 0x1
+ adds r4, r1, r4
+ ldrb r2, [r4]
+ adds r5, 0x1
+ adds r1, r5
+ movs r3, 0
+ ldrsb r3, [r1, r3]
+ lsls r1, r3, 2
+ adds r1, r3
+ lsls r1, 1
+ subs r2, r1
+ adds r1, r6, 0
+ movs r3, 0x1
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r1, r0, 24
+ adds r2, r1, 0
+ ldr r0, _0804FCC8 @ =0x00004523
+ cmp r7, r0
+ bne _0804FCD4
+ lsls r4, r1, 4
+ adds r4, r1
+ lsls r4, 2
+ ldr r5, _0804FCCC @ =gSprites
+ adds r0, r4, r5
+ movs r1, 0x2
+ bl StartSpriteAnim
+ adds r5, 0x1C
+ adds r4, r5
+ ldr r0, _0804FCD0 @ =sub_8051684
+ str r0, [r4]
+ movs r0, 0x28
+ bl PlaySE
+ b _0804FD18
+ .align 2, 0
+_0804FCBC: .4byte gSpriteTemplate_821645C
+_0804FCC0: .4byte gUnknown_082162E4
+_0804FCC4: .4byte gUnknown_082162CC
+_0804FCC8: .4byte 0x00004523
+_0804FCCC: .4byte gSprites
+_0804FCD0: .4byte sub_8051684
+_0804FCD4:
+ ldr r0, _0804FCF4 @ =0x00005432
+ cmp r7, r0
+ bne _0804FCFC
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _0804FCF8 @ =gSprites
+ adds r0, r1
+ movs r1, 0
+ bl StartSpriteAnim
+ movs r0, 0x1F
+ bl PlaySE
+ b _0804FD18
+ .align 2, 0
+_0804FCF4: .4byte 0x00005432
+_0804FCF8: .4byte gSprites
+_0804FCFC:
+ ldr r0, _0804FD28 @ =0x00002345
+ cmp r8, r0
+ bne _0804FD18
+ lsls r0, r2, 4
+ adds r0, r2
+ lsls r0, 2
+ ldr r1, _0804FD2C @ =gSprites
+ adds r0, r1
+ movs r1, 0x1
+ bl StartSpriteAnim
+ movs r0, 0x20
+ bl PlaySE
+_0804FD18:
+ bl sub_805156C
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0804FD28: .4byte 0x00002345
+_0804FD2C: .4byte gSprites
+ thumb_func_end sub_804FC48
+
+ thumb_func_start sub_804FD30
+sub_804FD30: @ 804FD30
+ push {r4-r7,lr}
+ lsls r0, 16
+ lsrs r4, r0, 16
+ adds r5, r4, 0
+ bl sub_804E290
+ ldr r0, _0804FD50 @ =0x00004523
+ cmp r4, r0
+ beq _0804FD64
+ cmp r4, r0
+ bgt _0804FD58
+ ldr r0, _0804FD54 @ =0x00002345
+ cmp r4, r0
+ beq _0804FE34
+ b _0804FE60
+ .align 2, 0
+_0804FD50: .4byte 0x00004523
+_0804FD54: .4byte 0x00002345
+_0804FD58:
+ ldr r0, _0804FD60 @ =0x00005432
+ cmp r5, r0
+ beq _0804FDFC
+ b _0804FE60
+ .align 2, 0
+_0804FD60: .4byte 0x00005432
+_0804FD64:
+ ldr r7, _0804FD94 @ =gUnknown_03004854
+ ldr r4, [r7]
+ adds r5, r4, 0
+ adds r5, 0x56
+ ldrh r6, [r5]
+ movs r0, 0
+ ldrsh r1, [r5, r0]
+ ldr r0, _0804FD98 @ =0x000005db
+ cmp r1, r0
+ bgt _0804FDA0
+ ldr r1, _0804FD9C @ =gUnknown_082165DA
+ adds r0, r4, 0
+ adds r0, 0x88
+ ldrb r0, [r0]
+ adds r0, r1
+ ldrb r1, [r0]
+ movs r0, 0xC0
+ lsls r0, 1
+ bl __divsi3
+ adds r0, r6, r0
+ strh r0, [r5]
+ b _0804FE60
+ .align 2, 0
+_0804FD94: .4byte gUnknown_03004854
+_0804FD98: .4byte 0x000005db
+_0804FD9C: .4byte gUnknown_082165DA
+_0804FDA0:
+ ldr r1, _0804FDF8 @ =gUnknown_082165DA
+ adds r0, r4, 0
+ adds r0, 0x88
+ ldrb r0, [r0]
+ adds r0, r1
+ ldrb r1, [r0]
+ movs r0, 0x80
+ bl __divsi3
+ adds r0, r6, r0
+ strh r0, [r5]
+ movs r1, 0xA2
+ lsls r1, 1
+ adds r4, r1
+ movs r1, 0
+ ldrsh r0, [r5, r1]
+ movs r1, 0x64
+ bl __divsi3
+ adds r1, r0, 0
+ subs r1, 0xA
+ lsls r1, 16
+ lsrs r1, 16
+ adds r0, r4, 0
+ bl sub_8051AC8
+ ldr r0, [r7]
+ movs r1, 0xA3
+ lsls r1, 1
+ adds r4, r0, r1
+ adds r0, 0x56
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ movs r1, 0x64
+ bl __divsi3
+ adds r1, r0, 0
+ subs r1, 0xA
+ lsls r1, 16
+ lsrs r1, 16
+ adds r0, r4, 0
+ bl sub_8051AC8
+ b _0804FE60
+ .align 2, 0
+_0804FDF8: .4byte gUnknown_082165DA
+_0804FDFC:
+ ldr r0, _0804FE28 @ =gUnknown_03004854
+ ldr r2, [r0]
+ adds r4, r2, 0
+ adds r4, 0x56
+ ldrh r5, [r4]
+ movs r0, 0
+ ldrsh r1, [r4, r0]
+ ldr r0, _0804FE2C @ =0x000005db
+ cmp r1, r0
+ bgt _0804FE60
+ ldr r1, _0804FE30 @ =gUnknown_082165DA
+ adds r0, r2, 0
+ adds r0, 0x88
+ ldrb r0, [r0]
+ adds r0, r1
+ ldrb r1, [r0]
+ movs r0, 0x80
+ lsls r0, 1
+ bl __divsi3
+ adds r0, r5, r0
+ b _0804FE5E
+ .align 2, 0
+_0804FE28: .4byte gUnknown_03004854
+_0804FE2C: .4byte 0x000005db
+_0804FE30: .4byte gUnknown_082165DA
+_0804FE34:
+ ldr r0, _0804FE68 @ =gUnknown_03004854
+ ldr r0, [r0]
+ adds r4, r0, 0
+ adds r4, 0x56
+ ldr r1, _0804FE6C @ =gUnknown_082165DA
+ adds r0, 0x88
+ ldrb r0, [r0]
+ adds r0, r1
+ ldrb r1, [r0]
+ movs r0, 0x80
+ lsls r0, 1
+ bl __divsi3
+ ldrh r1, [r4]
+ subs r1, r0
+ strh r1, [r4]
+ lsls r1, 16
+ asrs r1, 16
+ cmp r1, 0x7F
+ bgt _0804FE60
+ movs r0, 0x80
+_0804FE5E:
+ strh r0, [r4]
+_0804FE60:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0804FE68: .4byte gUnknown_03004854
+_0804FE6C: .4byte gUnknown_082165DA
+ thumb_func_end sub_804FD30
+
+ thumb_func_start sub_804FE70
+sub_804FE70: @ 804FE70
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x4
+ ldr r0, _0804FF40 @ =gSpecialVar_0x8004
+ ldrh r0, [r0]
+ cmp r0, 0
+ beq _0804FEB6
+ ldr r3, _0804FF44 @ =gSendCmd
+ ldrh r0, [r3, 0x4]
+ ldr r2, _0804FF48 @ =gRecvCmds
+ cmp r0, 0
+ beq _0804FE98
+ movs r1, 0
+ strh r0, [r2, 0x10]
+ ldr r0, _0804FF4C @ =0x00004444
+ strh r0, [r2]
+ strh r1, [r3, 0x4]
+_0804FE98:
+ ldr r0, _0804FF48 @ =gRecvCmds
+ ldr r3, _0804FF4C @ =0x00004444
+ adds r1, r2, 0x2
+ adds r2, r0, 0
+ adds r2, 0x12
+ movs r6, 0x2
+_0804FEA4:
+ ldrh r0, [r2]
+ cmp r0, 0
+ beq _0804FEAC
+ strh r3, [r1]
+_0804FEAC:
+ adds r1, 0x2
+ adds r2, 0x2
+ subs r6, 0x1
+ cmp r6, 0
+ bge _0804FEA4
+_0804FEB6:
+ movs r6, 0
+ ldr r7, _0804FF50 @ =gUnknown_03004854
+ adds r1, r7, 0
+ ldr r0, [r1]
+ adds r0, 0x88
+ ldrb r0, [r0]
+ cmp r6, r0
+ blt _0804FEC8
+ b _0805005C
+_0804FEC8:
+ movs r2, 0
+ str r2, [sp]
+ mov r9, r2
+ ldr r0, _0804FF48 @ =gRecvCmds
+ adds r0, 0x10
+ mov r8, r0
+ ldr r1, _0804FF54 @ =0x00005432
+ mov r10, r1
+_0804FED8:
+ ldr r2, [sp]
+ ldr r1, _0804FF48 @ =gRecvCmds
+ adds r0, r2, r1
+ ldrh r1, [r0]
+ ldr r0, _0804FF4C @ =0x00004444
+ cmp r1, r0
+ beq _0804FEE8
+ b _0805003E
+_0804FEE8:
+ ldr r0, [r7]
+ adds r0, 0xA2
+ adds r0, r2
+ ldrh r5, [r0]
+ mov r2, r8
+ ldrh r4, [r2]
+ ldr r0, _0804FF58 @ =0x00004523
+ cmp r4, r0
+ bne _0804FF60
+ bl sub_804FD30
+ ldr r0, [r7]
+ movs r1, 0x9F
+ lsls r1, 1
+ adds r4, r0, r1
+ adds r0, 0x56
+ movs r2, 0
+ ldrsh r0, [r0, r2]
+ movs r1, 0x37
+ bl __divsi3
+ ldrh r1, [r4]
+ adds r1, r0
+ strh r1, [r4]
+ lsls r1, 16
+ ldr r0, _0804FF5C @ =0x03e70000
+ cmp r1, r0
+ bls _0804FF26
+ movs r0, 0xFA
+ lsls r0, 2
+ strh r0, [r4]
+_0804FF26:
+ lsls r1, r5, 24
+ lsrs r1, 24
+ ldr r0, _0804FF58 @ =0x00004523
+ bl sub_804FC48
+ ldr r1, [r7]
+ movs r0, 0xA6
+ lsls r0, 1
+ adds r1, r0
+ add r1, r9
+ ldrh r0, [r1]
+ adds r0, 0x1
+ b _0804FFCA
+ .align 2, 0
+_0804FF40: .4byte gSpecialVar_0x8004
+_0804FF44: .4byte gSendCmd
+_0804FF48: .4byte gRecvCmds
+_0804FF4C: .4byte 0x00004444
+_0804FF50: .4byte gUnknown_03004854
+_0804FF54: .4byte 0x00005432
+_0804FF58: .4byte 0x00004523
+_0804FF5C: .4byte 0x03e70000
+_0804FF60:
+ cmp r4, r10
+ bne _0804FF9E
+ mov r0, r10
+ bl sub_804FD30
+ ldr r0, [r7]
+ movs r1, 0x9F
+ lsls r1, 1
+ adds r4, r0, r1
+ adds r0, 0x56
+ movs r2, 0
+ ldrsh r0, [r0, r2]
+ movs r1, 0x46
+ bl __divsi3
+ ldrh r1, [r4]
+ adds r1, r0
+ strh r1, [r4]
+ lsls r1, r5, 24
+ lsrs r1, 24
+ mov r0, r10
+ bl sub_804FC48
+ ldr r1, [r7]
+ movs r0, 0xA7
+ lsls r0, 1
+ adds r1, r0
+ add r1, r9
+ ldrh r0, [r1]
+ adds r0, 0x1
+ b _0804FFCA
+_0804FF9E:
+ ldr r0, _08050018 @ =0x00002345
+ cmp r4, r0
+ bne _0804FFD6
+ lsls r1, r5, 24
+ lsrs r1, 24
+ adds r0, r4, 0
+ bl sub_804FC48
+ adds r0, r4, 0
+ bl sub_804FD30
+ ldr r0, [r7]
+ movs r1, 0xA8
+ lsls r1, 1
+ adds r0, r1
+ mov r2, r9
+ adds r1, r0, r2
+ ldrh r2, [r1]
+ ldr r0, _0805001C @ =0x000003e6
+ cmp r2, r0
+ bhi _0804FFCC
+ adds r0, r2, 0x1
+_0804FFCA:
+ strh r0, [r1]
+_0804FFCC:
+ mov r0, r8
+ ldrh r1, [r0]
+ ldr r0, _08050018 @ =0x00002345
+ cmp r1, r0
+ beq _0804FFE4
+_0804FFD6:
+ mov r1, r8
+ ldrh r0, [r1]
+ ldr r2, _08050020 @ =0x00004523
+ cmp r0, r2
+ beq _0804FFE4
+ cmp r0, r10
+ bne _0805003E
+_0804FFE4:
+ ldr r0, _08050024 @ =gUnknown_03004854
+ ldr r0, [r0]
+ adds r2, r0, 0
+ adds r2, 0x56
+ movs r0, 0
+ ldrsh r1, [r2, r0]
+ ldr r0, _08050028 @ =0x000005dc
+ cmp r1, r0
+ ble _08050034
+ adds r0, r1, 0
+ ldr r2, _0805002C @ =0xfffffd12
+ adds r0, r2
+ movs r1, 0x14
+ bl __divsi3
+ adds r1, r0, 0
+ movs r0, 0x80
+ lsls r0, 1
+ adds r1, r0
+ lsls r1, 16
+ lsrs r1, 16
+ ldr r0, _08050030 @ =gMPlay_BGM
+ bl m4aMPlayTempoControl
+ b _0805003E
+ .align 2, 0
+_08050018: .4byte 0x00002345
+_0805001C: .4byte 0x000003e6
+_08050020: .4byte 0x00004523
+_08050024: .4byte gUnknown_03004854
+_08050028: .4byte 0x000005dc
+_0805002C: .4byte 0xfffffd12
+_08050030: .4byte gMPlay_BGM
+_08050034:
+ ldr r0, _08050098 @ =gMPlay_BGM
+ movs r1, 0x80
+ lsls r1, 1
+ bl m4aMPlayTempoControl
+_0805003E:
+ ldr r1, [sp]
+ adds r1, 0x2
+ str r1, [sp]
+ movs r2, 0x6
+ add r9, r2
+ movs r0, 0x2
+ add r8, r0
+ adds r6, 0x1
+ ldr r7, _0805009C @ =gUnknown_03004854
+ ldr r0, [r7]
+ adds r0, 0x88
+ ldrb r0, [r0]
+ cmp r6, r0
+ bge _0805005C
+ b _0804FED8
+_0805005C:
+ ldr r0, _080500A0 @ =gSpecialVar_0x8004
+ ldrh r0, [r0]
+ cmp r0, 0
+ beq _08050088
+ movs r6, 0
+ ldr r3, _0805009C @ =gUnknown_03004854
+ ldr r0, [r3]
+ adds r0, 0x88
+ ldrb r0, [r0]
+ cmp r6, r0
+ bge _08050088
+ movs r2, 0
+ ldr r1, _080500A4 @ =gRecvCmds
+_08050076:
+ strh r2, [r1]
+ strh r2, [r1, 0x10]
+ adds r1, 0x2
+ adds r6, 0x1
+ ldr r0, [r3]
+ adds r0, 0x88
+ ldrb r0, [r0]
+ cmp r6, r0
+ blt _08050076
+_08050088:
+ add sp, 0x4
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08050098: .4byte gMPlay_BGM
+_0805009C: .4byte gUnknown_03004854
+_080500A0: .4byte gSpecialVar_0x8004
+_080500A4: .4byte gRecvCmds
+ thumb_func_end sub_804FE70
+
+ thumb_func_start sub_80500A8
+sub_80500A8: @ 80500A8
+ push {r4-r6,lr}
+ movs r6, 0
+ ldr r5, _080500EC @ =gUnknown_03004854
+ ldr r4, [r5]
+ bl GetMultiplayerId
+ lsls r0, 24
+ lsrs r0, 23
+ adds r4, 0xA2
+ adds r4, r0
+ ldrb r3, [r4]
+ ldr r0, [r5]
+ adds r0, 0x6F
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _0805018A
+ ldr r0, _080500F0 @ =gSaveBlock2
+ ldrb r0, [r0, 0x13]
+ cmp r0, 0x2
+ bne _080500FC
+ ldr r2, _080500F4 @ =gMain
+ ldrh r1, [r2, 0x2E]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _0805010A
+ ldrh r0, [r2, 0x28]
+ ldr r1, _080500F8 @ =0x00000201
+ bics r1, r0
+ negs r0, r1
+ orrs r0, r1
+ lsrs r6, r0, 31
+ b _0805010A
+ .align 2, 0
+_080500EC: .4byte gUnknown_03004854
+_080500F0: .4byte gSaveBlock2
+_080500F4: .4byte gMain
+_080500F8: .4byte 0x00000201
+_080500FC:
+ ldr r0, _0805015C @ =gMain
+ ldrh r1, [r0, 0x2E]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _0805010A
+ movs r6, 0x1
+_0805010A:
+ cmp r6, 0
+ beq _0805018A
+ ldr r4, _08050160 @ =gUnknown_03004854
+ ldr r1, [r4]
+ lsls r2, r3, 1
+ adds r0, r1, 0
+ adds r0, 0x9A
+ adds r0, r2
+ adds r1, 0x5C
+ ldrh r0, [r0]
+ adds r1, r0
+ ldrb r1, [r1]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _08050164 @ =gSprites
+ adds r0, r1
+ adds r1, r3, 0x4
+ lsls r1, 24
+ lsrs r1, 24
+ bl StartSpriteAnim
+ ldr r0, [r4]
+ adds r0, 0x54
+ ldrh r4, [r0]
+ bl GetMultiplayerId
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ adds r0, r4, 0
+ bl task_tutorial_oak_boy_girl
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x2
+ bne _08050170
+ ldr r1, _08050168 @ =gSendCmd
+ ldr r0, _0805016C @ =0x00004523
+ b _08050188
+ .align 2, 0
+_0805015C: .4byte gMain
+_08050160: .4byte gUnknown_03004854
+_08050164: .4byte gSprites
+_08050168: .4byte gSendCmd
+_0805016C: .4byte 0x00004523
+_08050170:
+ cmp r0, 0x1
+ bne _08050184
+ ldr r1, _0805017C @ =gSendCmd
+ ldr r0, _08050180 @ =0x00005432
+ b _08050188
+ .align 2, 0
+_0805017C: .4byte gSendCmd
+_08050180: .4byte 0x00005432
+_08050184:
+ ldr r1, _080501E4 @ =gSendCmd
+ ldr r0, _080501E8 @ =0x00002345
+_08050188:
+ strh r0, [r1, 0x4]
+_0805018A:
+ ldr r2, _080501EC @ =gUnknown_03004854
+ ldr r1, [r2]
+ adds r1, 0x7E
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x5
+ bls _080501BA
+ ldr r0, [r2]
+ adds r1, r0, 0
+ adds r1, 0x56
+ ldrh r3, [r1]
+ movs r4, 0
+ ldrsh r0, [r1, r4]
+ cmp r0, 0x80
+ ble _080501B2
+ subs r0, r3, 0x1
+ strh r0, [r1]
+_080501B2:
+ ldr r0, [r2]
+ adds r0, 0x7E
+ movs r1, 0
+ strb r1, [r0]
+_080501BA:
+ ldr r0, _080501F0 @ =gUnknown_020297ED
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _080501DE
+ ldr r0, _080501F4 @ =gMain
+ ldrh r1, [r0, 0x2E]
+ movs r0, 0x80
+ lsls r0, 2
+ ands r0, r1
+ cmp r0, 0
+ beq _080501DE
+ ldr r0, [r2]
+ ldr r1, _080501F8 @ =0x0000014b
+ adds r2, r0, r1
+ ldrb r0, [r2]
+ movs r1, 0x1
+ eors r0, r1
+ strb r0, [r2]
+_080501DE:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080501E4: .4byte gSendCmd
+_080501E8: .4byte 0x00002345
+_080501EC: .4byte gUnknown_03004854
+_080501F0: .4byte gUnknown_020297ED
+_080501F4: .4byte gMain
+_080501F8: .4byte 0x0000014b
+ thumb_func_end sub_80500A8
+
+ thumb_func_start sub_80501FC
+sub_80501FC: @ 80501FC
+ push {r4-r6,lr}
+ bl sub_8051474
+ ldr r4, _08050294 @ =gUnknown_03004854
+ ldr r0, [r4]
+ movs r1, 0x96
+ lsls r1, 1
+ adds r2, r0, r1
+ ldr r1, [r2]
+ ldr r0, _08050298 @ =0x00057e03
+ cmp r1, r0
+ bhi _08050218
+ adds r0, r1, 0x1
+ str r0, [r2]
+_08050218:
+ bl sub_80500A8
+ ldr r1, [r4]
+ adds r0, r1, 0
+ adds r0, 0x56
+ ldrh r0, [r0]
+ movs r5, 0x9F
+ lsls r5, 1
+ adds r1, r5
+ ldrh r1, [r1]
+ bl SetLinkDebugValues
+ bl sub_804FE70
+ ldr r0, [r4]
+ adds r0, r5
+ ldrh r0, [r0]
+ movs r6, 0xFA
+ lsls r6, 2
+ adds r1, r6, 0
+ bl sub_805194C
+ ldr r0, [r4]
+ adds r0, 0x56
+ ldrh r0, [r0]
+ bl sub_8051A3C
+ bl sub_8051B18
+ bl sub_805123C
+ ldr r2, [r4]
+ adds r3, r2, 0
+ adds r3, 0x6F
+ ldrb r0, [r3]
+ cmp r0, 0
+ bne _0805027E
+ movs r1, 0xA0
+ lsls r1, 1
+ adds r0, r2, r1
+ ldrh r1, [r0]
+ ldr r0, _0805029C @ =0x000003e7
+ cmp r1, r0
+ bls _0805027E
+ adds r0, r2, r5
+ strh r6, [r0]
+ movs r0, 0x1
+ strb r0, [r3]
+ ldr r0, _080502A0 @ =sub_8050954
+ bl SetMainCallback2
+_0805027E:
+ bl RunTasks
+ bl AnimateSprites
+ bl BuildOamBuffer
+ bl UpdatePaletteFade
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08050294: .4byte gUnknown_03004854
+_08050298: .4byte 0x00057e03
+_0805029C: .4byte 0x000003e7
+_080502A0: .4byte sub_8050954
+ thumb_func_end sub_80501FC
+
+ thumb_func_start help_system_is_not_first_time
+help_system_is_not_first_time: @ 80502A4
+ push {r4,r5,lr}
+ lsls r1, 24
+ lsls r2, 24
+ lsrs r1, 20
+ adds r4, r1, r0
+ lsrs r2, 20
+ adds r5, r2, r0
+ ldrh r0, [r4]
+ ldrh r1, [r5]
+ cmp r0, r1
+ bne _080502E2
+ adds r0, r4, 0x2
+ adds r1, r5, 0x2
+ bl StringCompare
+ cmp r0, 0
+ bne _080502F0
+ ldr r0, [r4, 0x8]
+ ldr r2, _080502E8 @ =0xffffff00
+ ands r0, r2
+ ldr r1, [r5, 0x8]
+ ands r1, r2
+ cmp r0, r1
+ bne _080502F0
+ ldr r0, [r4, 0xC]
+ ldr r2, _080502EC @ =0x00ffffff
+ ands r0, r2
+ ldr r1, [r5, 0xC]
+ ands r1, r2
+ cmp r0, r1
+ bne _080502F0
+_080502E2:
+ movs r0, 0x1
+ b _080502F2
+ .align 2, 0
+_080502E8: .4byte 0xffffff00
+_080502EC: .4byte 0x00ffffff
+_080502F0:
+ movs r0, 0
+_080502F2:
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end help_system_is_not_first_time
+
+ thumb_func_start sub_80502F8
+sub_80502F8: @ 80502F8
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x14
+ mov r10, r0
+ lsls r2, 24
+ lsrs r2, 24
+ str r2, [sp, 0x10]
+ lsls r3, 24
+ lsrs r3, 24
+ mov r2, sp
+ movs r4, 0x5
+_08050314:
+ ldrh r0, [r1]
+ strh r0, [r2]
+ adds r1, 0x2
+ adds r2, 0x2
+ subs r4, 0x1
+ cmp r4, 0
+ bge _08050314
+ movs r6, 0
+ mov r1, sp
+ movs r4, 0x4
+_08050328:
+ movs r2, 0
+ ldrsh r0, [r1, r2]
+ cmp r0, 0
+ bne _08050332
+ adds r6, 0x1
+_08050332:
+ adds r1, 0x2
+ subs r4, 0x1
+ cmp r4, 0
+ bge _08050328
+ cmp r6, 0x5
+ beq _08050386
+ cmp r3, 0x3
+ bhi _08050386
+ movs r4, 0
+ ldr r3, [sp, 0x10]
+ cmp r4, r3
+ bge _0805039E
+ mov r3, r10
+_0805034C:
+ movs r6, 0
+ ldr r7, [sp, 0x10]
+ cmp r6, r7
+ bge _08050394
+ mov r9, r3
+ mov r5, r10
+ lsls r0, r4, 24
+ mov r8, r0
+_0805035C:
+ mov r1, r9
+ ldrh r0, [r1]
+ ldrh r2, [r5]
+ cmp r0, r2
+ bne _0805038A
+ cmp r4, r6
+ beq _0805038A
+ cmp r0, 0xAF
+ bne _08050386
+ lsls r2, r6, 24
+ lsrs r2, 24
+ mov r0, r10
+ mov r7, r8
+ lsrs r1, r7, 24
+ str r3, [sp, 0xC]
+ bl help_system_is_not_first_time
+ lsls r0, 24
+ ldr r3, [sp, 0xC]
+ cmp r0, 0
+ beq _0805038A
+_08050386:
+ movs r0, 0xC
+ b _080504DE
+_0805038A:
+ adds r5, 0x10
+ adds r6, 0x1
+ ldr r0, [sp, 0x10]
+ cmp r6, r0
+ blt _0805035C
+_08050394:
+ adds r3, 0x10
+ adds r4, 0x1
+ ldr r1, [sp, 0x10]
+ cmp r4, r1
+ blt _0805034C
+_0805039E:
+ movs r2, 0
+ mov r1, sp
+ movs r4, 0x4
+_080503A4:
+ movs r3, 0
+ ldrsh r0, [r1, r3]
+ cmp r0, 0
+ ble _080503B2
+ adds r0, r2, 0x1
+ lsls r0, 24
+ lsrs r2, r0, 24
+_080503B2:
+ adds r1, 0x2
+ subs r4, 0x1
+ cmp r4, 0
+ bge _080503A4
+ cmp r2, 0x3
+ bls _080503C2
+ movs r0, 0xD
+ b _080504DE
+_080503C2:
+ cmp r2, 0x3
+ bne _080503CA
+ movs r0, 0xB
+ b _080504DE
+_080503CA:
+ movs r4, 0
+ mov r1, sp
+_080503CE:
+ movs r7, 0
+ ldrsh r0, [r1, r7]
+ cmp r0, 0x32
+ ble _080503D8
+ b _080504D8
+_080503D8:
+ adds r1, 0x2
+ adds r4, 0x1
+ cmp r4, 0x4
+ ble _080503CE
+ cmp r2, 0x1
+ bne _0805042A
+ mov r0, sp
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ cmp r0, 0
+ ble _080503F2
+ movs r0, 0x1
+ b _080504DE
+_080503F2:
+ mov r0, sp
+ ldrh r0, [r0, 0x2]
+ lsls r0, 16
+ cmp r0, 0
+ ble _08050400
+ movs r0, 0x2
+ b _080504DE
+_08050400:
+ mov r0, sp
+ movs r3, 0x4
+ ldrsh r0, [r0, r3]
+ cmp r0, 0
+ ble _0805040E
+ movs r0, 0x3
+ b _080504DE
+_0805040E:
+ mov r0, sp
+ movs r4, 0x6
+ ldrsh r0, [r0, r4]
+ cmp r0, 0
+ ble _0805041C
+ movs r0, 0x4
+ b _080504DE
+_0805041C:
+ mov r0, sp
+ movs r7, 0x8
+ ldrsh r0, [r0, r7]
+ cmp r0, 0
+ ble _0805042A
+ movs r0, 0x5
+ b _080504DE
+_0805042A:
+ cmp r2, 0x2
+ bne _080504DC
+ movs r4, 0
+ ldr r5, _08050474 @ =gUnknown_03000520
+ mov r1, sp
+ adds r2, r5, 0
+_08050436:
+ movs r3, 0
+ ldrsh r0, [r1, r3]
+ cmp r0, 0
+ ble _08050442
+ strh r4, [r2]
+ adds r2, 0x2
+_08050442:
+ adds r1, 0x2
+ adds r4, 0x1
+ cmp r4, 0x4
+ ble _08050436
+ movs r4, 0
+ ldrsh r3, [r5, r4]
+ lsls r0, r3, 1
+ mov r7, sp
+ adds r1, r7, r0
+ movs r0, 0x2
+ ldrsh r2, [r5, r0]
+ lsls r0, r2, 1
+ add r0, sp
+ movs r4, 0
+ ldrsh r1, [r1, r4]
+ movs r7, 0
+ ldrsh r0, [r0, r7]
+ cmp r1, r0
+ blt _08050498
+ adds r0, r3, 0
+ cmp r0, 0
+ bne _08050478
+ lsls r0, r2, 16
+ b _080504A2
+ .align 2, 0
+_08050474: .4byte gUnknown_03000520
+_08050478:
+ cmp r0, 0x1
+ bne _08050480
+ lsls r0, r2, 16
+ b _080504AE
+_08050480:
+ cmp r0, 0x2
+ bne _08050488
+ lsls r0, r2, 16
+ b _080504BA
+_08050488:
+ cmp r0, 0x3
+ bne _08050490
+ lsls r0, r2, 16
+ b _080504C6
+_08050490:
+ cmp r0, 0x4
+ bne _080504DC
+ lsls r0, r2, 16
+ b _080504D2
+_08050498:
+ movs r2, 0x2
+ ldrsh r0, [r5, r2]
+ cmp r0, 0
+ bne _080504A8
+ lsls r0, r3, 16
+_080504A2:
+ movs r1, 0x6
+ orrs r0, r1
+ b _080504DE
+_080504A8:
+ cmp r0, 0x1
+ bne _080504B4
+ lsls r0, r3, 16
+_080504AE:
+ movs r1, 0x7
+ orrs r0, r1
+ b _080504DE
+_080504B4:
+ cmp r0, 0x2
+ bne _080504C0
+ lsls r0, r3, 16
+_080504BA:
+ movs r1, 0x8
+ orrs r0, r1
+ b _080504DE
+_080504C0:
+ cmp r0, 0x3
+ bne _080504CC
+ lsls r0, r3, 16
+_080504C6:
+ movs r1, 0x9
+ orrs r0, r1
+ b _080504DE
+_080504CC:
+ cmp r0, 0x4
+ bne _080504DC
+ lsls r0, r3, 16
+_080504D2:
+ movs r1, 0xA
+ orrs r0, r1
+ b _080504DE
+_080504D8:
+ movs r0, 0xE
+ b _080504DE
+_080504DC:
+ movs r0, 0
+_080504DE:
+ add sp, 0x14
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80502F8
+
+ thumb_func_start sub_80504F0
+sub_80504F0: @ 80504F0
+ ldr r1, _080504F8 @ =gUnknown_0300052C
+ strh r0, [r1]
+ bx lr
+ .align 2, 0
+_080504F8: .4byte gUnknown_0300052C
+ thumb_func_end sub_80504F0
+
+ thumb_func_start unref_sub_80504FC
+unref_sub_80504FC: @ 80504FC
+ ldr r0, _08050504 @ =gUnknown_0300052C
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ bx lr
+ .align 2, 0
+_08050504: .4byte gUnknown_0300052C
+ thumb_func_end unref_sub_80504FC
+
+ thumb_func_start sub_8050508
+sub_8050508: @ 8050508
+ ldr r1, _08050510 @ =gUnknown_0300052E
+ strh r0, [r1]
+ bx lr
+ .align 2, 0
+_08050510: .4byte gUnknown_0300052E
+ thumb_func_end sub_8050508
+
+ thumb_func_start unref_sub_8050514
+unref_sub_8050514: @ 8050514
+ ldr r0, _0805051C @ =gUnknown_0300052E
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ bx lr
+ .align 2, 0
+_0805051C: .4byte gUnknown_0300052E
+ thumb_func_end unref_sub_8050514
+
+ thumb_func_start sub_8050520
+sub_8050520: @ 8050520
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x10
+ str r0, [sp]
+ mov r8, r1
+ str r3, [sp, 0x4]
+ ldr r0, [sp, 0x30]
+ lsls r2, 24
+ lsrs r2, 24
+ mov r9, r2
+ lsls r0, 16
+ lsrs r0, 16
+ str r0, [sp, 0x8]
+ ldr r7, _080505DC @ =gUnknown_03000510
+ adds r2, r7, 0
+ movs r1, 0
+ adds r0, r7, 0
+ adds r0, 0xA
+_0805054A:
+ strh r1, [r0]
+ subs r0, 0x2
+ cmp r0, r2
+ bge _0805054A
+ movs r6, 0
+ cmp r6, r9
+ bge _08050580
+ ldr r0, _080505DC @ =gUnknown_03000510
+ mov r12, r0
+ ldr r5, [sp]
+ adds r5, 0x9
+_08050560:
+ movs r3, 0
+ adds r4, r5, 0
+ mov r2, r12
+_08050566:
+ adds r1, r4, r3
+ ldrh r0, [r2]
+ ldrb r1, [r1]
+ adds r0, r1
+ strh r0, [r2]
+ adds r2, 0x2
+ adds r3, 0x1
+ cmp r3, 0x5
+ ble _08050566
+ adds r5, 0x10
+ adds r6, 0x1
+ cmp r6, r9
+ blt _08050560
+_08050580:
+ movs r1, 0
+ ldrsh r3, [r7, r1]
+ ldrh r0, [r7]
+ ldrh r1, [r7, 0x2]
+ subs r0, r1
+ strh r0, [r7]
+ ldrh r0, [r7, 0x4]
+ subs r1, r0
+ strh r1, [r7, 0x2]
+ ldrh r1, [r7, 0x6]
+ subs r0, r1
+ strh r0, [r7, 0x4]
+ ldrh r0, [r7, 0x8]
+ subs r1, r0
+ strh r1, [r7, 0x6]
+ subs r0, r3
+ strh r0, [r7, 0x8]
+ movs r3, 0
+ movs r2, 0
+ adds r1, r7, 0
+ movs r6, 0x4
+_080505AA:
+ movs r4, 0
+ ldrsh r0, [r1, r4]
+ cmp r0, 0
+ bge _080505B6
+ strh r2, [r1]
+ adds r3, 0x1
+_080505B6:
+ adds r1, 0x2
+ subs r6, 0x1
+ cmp r6, 0
+ bge _080505AA
+ lsls r0, r3, 24
+ lsrs r0, 24
+ mov r10, r0
+ movs r4, 0
+ ldr r1, _080505DC @ =gUnknown_03000510
+ movs r6, 0x4
+_080505CA:
+ ldrh r2, [r1]
+ movs r5, 0
+ ldrsh r0, [r1, r5]
+ cmp r0, 0
+ ble _080505E4
+ cmp r0, r3
+ bge _080505E0
+ strh r4, [r1]
+ b _080505E4
+ .align 2, 0
+_080505DC: .4byte gUnknown_03000510
+_080505E0:
+ subs r0, r2, r3
+ strh r0, [r1]
+_080505E4:
+ adds r1, 0x2
+ subs r6, 0x1
+ cmp r6, 0
+ bge _080505CA
+ ldr r1, _080506C4 @ =gUnknown_03000510
+ ldr r2, _080506C8 @ =gUnknown_03000530
+ movs r6, 0x4
+_080505F2:
+ movs r3, 0
+ ldrsh r0, [r1, r3]
+ stm r2!, {r0}
+ adds r1, 0x2
+ subs r6, 0x1
+ cmp r6, 0
+ bge _080505F2
+ ldr r1, _080506CC @ =0x0000014d
+ ldr r0, [sp, 0x8]
+ bl __udivsi3
+ lsls r0, 16
+ lsrs r0, 16
+ adds r3, r0, 0
+ adds r3, 0x64
+ ldr r4, _080506D0 @ =gUnknown_0300055C
+ str r3, [r4]
+ movs r6, 0x4
+_08050616:
+ movs r0, 0
+ ldrsh r5, [r7, r0]
+ adds r0, r5, 0
+ muls r0, r3
+ movs r1, 0xA
+ str r3, [sp, 0xC]
+ bl __divsi3
+ adds r5, r0, 0
+ movs r1, 0xA
+ bl __modsi3
+ adds r4, r0, 0
+ adds r0, r5, 0
+ movs r1, 0xA
+ bl __divsi3
+ adds r5, r0, 0
+ ldr r3, [sp, 0xC]
+ cmp r4, 0x4
+ ble _08050642
+ adds r5, 0x1
+_08050642:
+ strh r5, [r7]
+ adds r7, 0x2
+ subs r6, 0x1
+ cmp r6, 0
+ bge _08050616
+ ldr r1, _080506C4 @ =gUnknown_03000510
+ ldr r2, _080506D4 @ =gUnknown_03000548
+ movs r6, 0x4
+_08050652:
+ movs r3, 0
+ ldrsh r0, [r1, r3]
+ stm r2!, {r0}
+ adds r1, 0x2
+ subs r6, 0x1
+ cmp r6, 0
+ bge _08050652
+ ldr r4, _080506C4 @ =gUnknown_03000510
+ ldr r0, [sp]
+ adds r1, r4, 0
+ mov r2, r9
+ mov r3, r10
+ bl sub_80502F8
+ mov r5, r8
+ strb r0, [r5]
+ movs r1, 0xA
+ ldrsh r0, [r4, r1]
+ mov r1, r9
+ bl __divsi3
+ mov r3, r9
+ subs r0, r3
+ strh r0, [r4, 0xA]
+ lsls r0, 16
+ cmp r0, 0
+ bge _0805068C
+ movs r0, 0
+ strh r0, [r4, 0xA]
+_0805068C:
+ mov r5, r8
+ ldrb r0, [r5]
+ cmp r0, 0xC
+ bne _080506E6
+ bl Random
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0xA
+ bl __umodsi3
+ lsls r0, 16
+ lsrs r3, r0, 16
+ movs r6, 0
+ ldr r0, _080506D8 @ =gUnknown_082165DF
+ adds r0, r3, r0
+ ldrb r0, [r0]
+ adds r1, r4, 0
+ movs r4, 0x1
+ movs r3, 0x2
+_080506B4:
+ adds r2, r0, 0
+ asrs r2, r6
+ ands r2, r4
+ cmp r2, 0
+ beq _080506DC
+ strh r3, [r1]
+ b _080506DE
+ .align 2, 0
+_080506C4: .4byte gUnknown_03000510
+_080506C8: .4byte gUnknown_03000530
+_080506CC: .4byte 0x0000014d
+_080506D0: .4byte gUnknown_0300055C
+_080506D4: .4byte gUnknown_03000548
+_080506D8: .4byte gUnknown_082165DF
+_080506DC:
+ strh r2, [r1]
+_080506DE:
+ adds r1, 0x2
+ adds r6, 0x1
+ cmp r6, 0x4
+ ble _080506B4
+_080506E6:
+ ldr r7, _08050740 @ =gUnknown_03000510
+ movs r2, 0xFF
+ adds r1, r7, 0
+ movs r6, 0x5
+_080506EE:
+ movs r3, 0
+ ldrsh r0, [r1, r3]
+ cmp r0, 0xFF
+ ble _080506F8
+ strh r2, [r1]
+_080506F8:
+ adds r1, 0x2
+ subs r6, 0x1
+ cmp r6, 0
+ bge _080506EE
+ ldrh r0, [r7]
+ mov r4, r8
+ strb r0, [r4, 0x1]
+ ldrh r0, [r7, 0x2]
+ strb r0, [r4, 0x2]
+ ldrh r0, [r7, 0x4]
+ strb r0, [r4, 0x3]
+ ldrh r0, [r7, 0x6]
+ strb r0, [r4, 0x4]
+ ldrh r0, [r7, 0x8]
+ strb r0, [r4, 0x5]
+ ldrh r0, [r7, 0xA]
+ strb r0, [r4, 0x6]
+ movs r6, 0
+ adds r2, r7, 0
+_0805071E:
+ ldr r5, [sp, 0x4]
+ adds r1, r5, r6
+ ldrh r0, [r2]
+ strb r0, [r1]
+ adds r2, 0x2
+ adds r6, 0x1
+ cmp r6, 0x5
+ ble _0805071E
+ add sp, 0x10
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08050740: .4byte gUnknown_03000510
+ thumb_func_end sub_8050520
+
+ thumb_func_start sub_8050744
+sub_8050744: @ 8050744
+ push {r4,lr}
+ sub sp, 0x4
+ ldr r4, [sp, 0xC]
+ lsls r2, 24
+ lsrs r2, 24
+ lsls r4, 16
+ lsrs r4, 16
+ str r4, [sp]
+ bl sub_8050520
+ add sp, 0x4
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8050744
+
+ thumb_func_start sub_8050760
+sub_8050760: @ 8050760
+ push {r4-r6,lr}
+ ldr r0, _08050780 @ =gUnknown_03004854
+ ldr r0, [r0]
+ movs r2, 0x96
+ lsls r2, 1
+ adds r1, r0, r2
+ ldrh r1, [r1]
+ adds r0, 0x5A
+ ldrh r4, [r0]
+ movs r2, 0
+ ldr r5, _08050784 @ =0x00000383
+ cmp r1, r5
+ bhi _08050788
+ movs r2, 0x5
+ b _080507DA
+ .align 2, 0
+_08050780: .4byte gUnknown_03004854
+_08050784: .4byte 0x00000383
+_08050788:
+ ldr r3, _0805079C @ =0xfffffc7c
+ adds r0, r1, r3
+ lsls r0, 16
+ lsrs r0, 16
+ ldr r3, _080507A0 @ =0x00000257
+ cmp r0, r3
+ bhi _080507A4
+ movs r2, 0x4
+ b _080507DA
+ .align 2, 0
+_0805079C: .4byte 0xfffffc7c
+_080507A0: .4byte 0x00000257
+_080507A4:
+ ldr r6, _080507B4 @ =0xfffffa24
+ adds r0, r1, r6
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, r3
+ bhi _080507B8
+ movs r2, 0x3
+ b _080507DA
+ .align 2, 0
+_080507B4: .4byte 0xfffffa24
+_080507B8:
+ ldr r3, _080507C8 @ =0xfffff7cc
+ adds r0, r1, r3
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, r5
+ bhi _080507CC
+ movs r2, 0x2
+ b _080507DA
+ .align 2, 0
+_080507C8: .4byte 0xfffff7cc
+_080507CC:
+ ldr r6, _080507F8 @ =0xfffff31c
+ adds r0, r1, r6
+ lsls r0, 16
+ ldr r1, _080507FC @ =0x012b0000
+ cmp r0, r1
+ bhi _080507DA
+ movs r2, 0x1
+_080507DA:
+ lsls r0, r2, 16
+ asrs r0, 16
+ bl sub_8050508
+ movs r2, 0
+ cmp r4, 0x40
+ bhi _080508BC
+ adds r0, r4, 0
+ subs r0, 0x32
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0x31
+ bhi _08050804
+ ldr r2, _08050800 @ =0x0000ffff
+ b _080508BC
+ .align 2, 0
+_080507F8: .4byte 0xfffff31c
+_080507FC: .4byte 0x012b0000
+_08050800: .4byte 0x0000ffff
+_08050804:
+ adds r0, r4, 0
+ subs r0, 0x64
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0x31
+ bhi _08050818
+ ldr r2, _08050814 @ =0x0000fffe
+ b _080508BC
+ .align 2, 0
+_08050814: .4byte 0x0000fffe
+_08050818:
+ adds r0, r4, 0
+ subs r0, 0x96
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0x31
+ bhi _0805082C
+ ldr r2, _08050828 @ =0x0000fffd
+ b _080508BC
+ .align 2, 0
+_08050828: .4byte 0x0000fffd
+_0805082C:
+ adds r0, r4, 0
+ subs r0, 0xC8
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0x31
+ bhi _08050840
+ ldr r2, _0805083C @ =0x0000fffc
+ b _080508BC
+ .align 2, 0
+_0805083C: .4byte 0x0000fffc
+_08050840:
+ adds r0, r4, 0
+ subs r0, 0xFA
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0x31
+ bhi _08050854
+ ldr r2, _08050850 @ =0x0000fffb
+ b _080508BC
+ .align 2, 0
+_08050850: .4byte 0x0000fffb
+_08050854:
+ ldr r1, _08050864 @ =0xfffffea2
+ adds r0, r4, r1
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0x31
+ bhi _0805086C
+ ldr r2, _08050868 @ =0x0000fffa
+ b _080508BC
+ .align 2, 0
+_08050864: .4byte 0xfffffea2
+_08050868: .4byte 0x0000fffa
+_0805086C:
+ ldr r3, _0805087C @ =0xfffffe70
+ adds r0, r4, r3
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0x31
+ bhi _08050884
+ ldr r2, _08050880 @ =0x0000fff9
+ b _080508BC
+ .align 2, 0
+_0805087C: .4byte 0xfffffe70
+_08050880: .4byte 0x0000fff9
+_08050884:
+ ldr r6, _08050894 @ =0xfffffe0c
+ adds r0, r4, r6
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0x31
+ bhi _0805089C
+ ldr r2, _08050898 @ =0x0000fff8
+ b _080508BC
+ .align 2, 0
+_08050894: .4byte 0xfffffe0c
+_08050898: .4byte 0x0000fff8
+_0805089C:
+ ldr r1, _080508AC @ =0xfffffdda
+ adds r0, r4, r1
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0x31
+ bhi _080508B4
+ ldr r2, _080508B0 @ =0x0000fff7
+ b _080508BC
+ .align 2, 0
+_080508AC: .4byte 0xfffffdda
+_080508B0: .4byte 0x0000fff7
+_080508B4:
+ ldr r0, _080508CC @ =0x00000257
+ cmp r4, r0
+ bls _080508BC
+ ldr r2, _080508D0 @ =0x0000fff6
+_080508BC:
+ lsls r0, r2, 16
+ asrs r0, 16
+ bl sub_80504F0
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080508CC: .4byte 0x00000257
+_080508D0: .4byte 0x0000fff6
+ thumb_func_end sub_8050760
+
+ thumb_func_start sub_80508D4
+sub_80508D4: @ 80508D4
+ push {lr}
+ ldr r2, _080508F8 @ =gUnknown_03004854
+ ldr r1, [r2]
+ adds r1, 0xAA
+ strb r0, [r1]
+ ldr r0, [r2]
+ adds r0, 0xAA
+ ldrb r1, [r0]
+ lsls r1, 28
+ movs r0, 0x90
+ lsls r0, 23
+ adds r1, r0
+ lsrs r1, 24
+ movs r0, 0xC0
+ bl sub_814A880
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080508F8: .4byte gUnknown_03004854
+ thumb_func_end sub_80508D4
+
+ thumb_func_start sub_80508FC
+sub_80508FC: @ 80508FC
+ push {r4,lr}
+ sub sp, 0x4
+ ldr r4, _08050944 @ =gUnknown_03004854
+ ldr r0, [r4]
+ adds r0, 0xAA
+ movs r1, 0
+ strb r1, [r0]
+ movs r0, 0x17
+ movs r1, 0x8
+ movs r2, 0x1C
+ movs r3, 0xD
+ bl MenuDrawTextWindow
+ ldr r1, _08050948 @ =0x0000ffff
+ ldr r3, _0805094C @ =0x00002d9f
+ movs r0, 0x20
+ str r0, [sp]
+ movs r0, 0
+ movs r2, 0xC
+ bl sub_814A5C0
+ ldr r0, _08050950 @ =gOtherText_YesNoTerminating
+ movs r1, 0x18
+ movs r2, 0x9
+ bl MenuPrint
+ ldr r0, [r4]
+ adds r0, 0xAA
+ ldrb r0, [r0]
+ bl sub_80508D4
+ add sp, 0x4
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08050944: .4byte gUnknown_03004854
+_08050948: .4byte 0x0000ffff
+_0805094C: .4byte 0x00002d9f
+_08050950: .4byte gOtherText_YesNoTerminating
+ thumb_func_end sub_80508FC
+
+ thumb_func_start sub_8050954
+sub_8050954: @ 8050954
+ push {r4-r7,lr}
+ bl sub_8051474
+ bl GetMultiplayerId
+ ldr r0, _08050978 @ =gUnknown_03004854
+ ldr r0, [r0]
+ adds r0, 0x6F
+ ldrb r0, [r0]
+ subs r0, 0x1
+ cmp r0, 0xC
+ bls _0805096E
+ b _08050CB6
+_0805096E:
+ lsls r0, 2
+ ldr r1, _0805097C @ =_08050980
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_08050978: .4byte gUnknown_03004854
+_0805097C: .4byte _08050980
+ .align 2, 0
+_08050980:
+ .4byte _080509B4
+ .4byte _080509F8
+ .4byte _08050A4C
+ .4byte _08050A94
+ .4byte _08050AD0
+ .4byte _08050ADE
+ .4byte _08050B08
+ .4byte _08050B34
+ .4byte _08050B42
+ .4byte _08050B58
+ .4byte _08050BE0
+ .4byte _08050C64
+ .4byte _08050C98
+_080509B4:
+ bl ClearLinkCallback
+ ldr r0, _080509C8 @ =gMPlay_BGM
+ movs r1, 0x80
+ lsls r1, 1
+ bl m4aMPlayTempoControl
+ movs r4, 0
+ b _080509E4
+ .align 2, 0
+_080509C8: .4byte gMPlay_BGM
+_080509CC:
+ ldr r0, _080509F0 @ =gUnknown_03004854
+ ldr r0, [r0]
+ movs r1, 0xA4
+ lsls r1, 1
+ adds r0, r1
+ adds r0, r4
+ ldrb r0, [r0]
+ bl DestroyTask
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+_080509E4:
+ ldr r0, _080509F4 @ =gSpecialVar_0x8004
+ ldrh r0, [r0]
+ cmp r4, r0
+ bcc _080509CC
+ b _08050C82
+ .align 2, 0
+_080509F0: .4byte gUnknown_03004854
+_080509F4: .4byte gSpecialVar_0x8004
+_080509F8:
+ ldr r1, _08050A24 @ =gUnknown_03004854
+ ldr r3, [r1]
+ adds r2, r3, 0
+ adds r2, 0x56
+ ldrh r0, [r2]
+ subs r0, 0x20
+ strh r0, [r2]
+ lsls r0, 16
+ adds r4, r1, 0
+ cmp r0, 0
+ bgt _08050A40
+ movs r0, 0
+ strh r0, [r2]
+ ldr r0, _08050A28 @ =gReceivedRemoteLinkPlayers
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _08050A2C
+ adds r1, r3, 0
+ adds r1, 0x6F
+ ldrb r0, [r1]
+ adds r0, 0x1
+ b _08050A32
+ .align 2, 0
+_08050A24: .4byte gUnknown_03004854
+_08050A28: .4byte gReceivedRemoteLinkPlayers
+_08050A2C:
+ adds r1, r3, 0
+ adds r1, 0x6F
+ movs r0, 0x5
+_08050A32:
+ strb r0, [r1]
+ ldr r0, [r4]
+ movs r1, 0
+ strb r1, [r0]
+ ldr r0, _08050A48 @ =gMPlay_SE2
+ bl m4aMPlayStop
+_08050A40:
+ bl sub_804E290
+ b _08050CB6
+ .align 2, 0
+_08050A48: .4byte gMPlay_SE2
+_08050A4C:
+ bl GetMultiplayerId
+ lsls r0, 24
+ cmp r0, 0
+ beq _08050A58
+ b _08050C82
+_08050A58:
+ bl sub_8007ECC
+ lsls r0, 24
+ cmp r0, 0
+ bne _08050A64
+ b _08050CB6
+_08050A64:
+ ldr r4, _08050A90 @ =gUnknown_03004854
+ ldr r3, [r4]
+ movs r2, 0xDE
+ lsls r2, 1
+ adds r1, r3, r2
+ movs r5, 0x96
+ lsls r5, 1
+ adds r0, r3, r5
+ ldr r0, [r0]
+ str r0, [r1]
+ adds r0, r3, 0
+ adds r0, 0x5A
+ ldrh r2, [r0]
+ adds r5, 0x94
+ adds r0, r3, r5
+ strh r2, [r0]
+ movs r0, 0
+ movs r2, 0x28
+ bl SendBlock
+ ldr r1, [r4]
+ b _08050C86
+ .align 2, 0
+_08050A90: .4byte gUnknown_03004854
+_08050A94:
+ bl GetBlockReceivedStatus
+ lsls r0, 24
+ cmp r0, 0
+ bne _08050AA0
+ b _08050CB6
+_08050AA0:
+ ldr r2, _08050AC8 @ =gBlockRecvBuffer
+ ldr r0, _08050ACC @ =gUnknown_03004854
+ ldr r3, [r0]
+ ldrh r0, [r2, 0x4]
+ adds r1, r3, 0
+ adds r1, 0x5A
+ strh r0, [r1]
+ movs r0, 0x96
+ lsls r0, 1
+ adds r1, r3, r0
+ ldr r0, [r2]
+ str r0, [r1]
+ adds r1, r3, 0
+ adds r1, 0x6F
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+ bl ResetBlockReceivedFlags
+ b _08050CB6
+ .align 2, 0
+_08050AC8: .4byte gBlockRecvBuffer
+_08050ACC: .4byte gUnknown_03004854
+_08050AD0:
+ bl sub_8052228
+ lsls r0, 24
+ cmp r0, 0
+ bne _08050ADC
+ b _08050CB6
+_08050ADC:
+ b _08050C82
+_08050ADE:
+ bl sub_8051C58
+ lsls r0, 24
+ cmp r0, 0
+ bne _08050AEA
+ b _08050CB6
+_08050AEA:
+ ldr r0, _08050AFC @ =gUnknown_03004834
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _08050B00
+ movs r0, 0x22
+ bl IncrementGameStat
+ b _08050C82
+ .align 2, 0
+_08050AFC: .4byte gUnknown_03004834
+_08050B00:
+ movs r0, 0x21
+ bl IncrementGameStat
+ b _08050C82
+_08050B08:
+ ldr r0, _08050B2C @ =gUnknown_03004854
+ ldr r1, [r0]
+ adds r1, 0x6F
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+ movs r0, 0
+ movs r1, 0xE
+ movs r2, 0x1D
+ movs r3, 0x13
+ bl MenuDrawTextWindow
+ ldr r0, _08050B30 @ =gOtherText_BlendAnotherBerryPrompt
+ movs r1, 0x1
+ movs r2, 0xF
+ bl MenuPrintMessage
+ b _08050CB6
+ .align 2, 0
+_08050B2C: .4byte gUnknown_03004854
+_08050B30: .4byte gOtherText_BlendAnotherBerryPrompt
+_08050B34:
+ bl MenuUpdateWindowText
+ lsls r0, 24
+ cmp r0, 0
+ bne _08050B40
+ b _08050CB6
+_08050B40:
+ b _08050C82
+_08050B42:
+ ldr r4, _08050B54 @ =gUnknown_03004854
+ ldr r0, [r4]
+ adds r0, 0xAA
+ movs r1, 0
+ strb r1, [r0]
+ bl sub_80508FC
+ ldr r1, [r4]
+ b _08050C86
+ .align 2, 0
+_08050B54: .4byte gUnknown_03004854
+_08050B58:
+ ldr r0, _08050B80 @ =gMain
+ ldrh r1, [r0, 0x2E]
+ movs r0, 0x40
+ ands r0, r1
+ cmp r0, 0
+ beq _08050B88
+ ldr r0, _08050B84 @ =gUnknown_03004854
+ ldr r0, [r0]
+ adds r0, 0xAA
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _08050B76
+ movs r0, 0x5
+ bl PlaySE
+_08050B76:
+ movs r0, 0
+ bl sub_80508D4
+ b _08050CB6
+ .align 2, 0
+_08050B80: .4byte gMain
+_08050B84: .4byte gUnknown_03004854
+_08050B88:
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ beq _08050BA8
+ ldr r0, _08050BA4 @ =gUnknown_03004854
+ ldr r0, [r0]
+ adds r0, 0xAA
+ ldrb r0, [r0]
+ cmp r0, 0x1
+ beq _08050BD4
+ movs r0, 0x5
+ bl PlaySE
+ b _08050BD4
+ .align 2, 0
+_08050BA4: .4byte gUnknown_03004854
+_08050BA8:
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _08050BB8
+ movs r0, 0x5
+ bl PlaySE
+ b _08050C82
+_08050BB8:
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ bne _08050BC2
+ b _08050CB6
+_08050BC2:
+ movs r0, 0x5
+ bl PlaySE
+ ldr r0, _08050BDC @ =gUnknown_03004854
+ ldr r1, [r0]
+ adds r1, 0x6F
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+_08050BD4:
+ movs r0, 0x1
+ bl sub_80508D4
+ b _08050CB6
+ .align 2, 0
+_08050BDC: .4byte gUnknown_03004854
+_08050BE0:
+ ldr r6, _08050C10 @ =gSendCmd
+ movs r7, 0
+ ldr r0, _08050C14 @ =0x00002fff
+ strh r0, [r6]
+ ldr r4, _08050C18 @ =gUnknown_03004854
+ ldr r2, [r4]
+ adds r0, r2, 0
+ adds r0, 0xAA
+ ldrb r5, [r0]
+ cmp r5, 0
+ bne _08050C50
+ movs r0, 0x4
+ bl IsBagPocketNonEmpty
+ lsls r0, 24
+ cmp r0, 0
+ bne _08050C20
+ ldr r0, [r4]
+ adds r0, 0x7C
+ movs r1, 0x2
+ strh r1, [r0]
+ ldr r0, _08050C1C @ =0x00009999
+ b _08050C48
+ .align 2, 0
+_08050C10: .4byte gSendCmd
+_08050C14: .4byte 0x00002fff
+_08050C18: .4byte gUnknown_03004854
+_08050C1C: .4byte 0x00009999
+_08050C20:
+ bl sub_810CA00
+ lsls r0, 24
+ asrs r0, 24
+ movs r1, 0x1
+ negs r1, r1
+ cmp r0, r1
+ bne _08050C40
+ ldr r0, [r4]
+ adds r0, 0x7C
+ movs r1, 0x3
+ strh r1, [r0]
+ ldr r0, _08050C3C @ =0x0000aaaa
+ b _08050C48
+ .align 2, 0
+_08050C3C: .4byte 0x0000aaaa
+_08050C40:
+ ldr r0, [r4]
+ adds r0, 0x7C
+ strh r5, [r0]
+ ldr r0, _08050C4C @ =0x00007779
+_08050C48:
+ strh r0, [r6, 0x2]
+ b _08050C82
+ .align 2, 0
+_08050C4C: .4byte 0x00007779
+_08050C50:
+ adds r1, r2, 0
+ adds r1, 0x7C
+ movs r0, 0x1
+ strh r0, [r1]
+ ldr r0, _08050C60 @ =0x00008888
+ strh r0, [r6, 0x2]
+ subs r1, 0xD
+ b _08050C88
+ .align 2, 0
+_08050C60: .4byte 0x00008888
+_08050C64:
+ ldr r0, _08050C70 @ =gUnknown_03004834
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _08050C78
+ ldr r0, _08050C74 @ =sub_80510E8
+ b _08050CA4
+ .align 2, 0
+_08050C70: .4byte gUnknown_03004834
+_08050C74: .4byte sub_80510E8
+_08050C78:
+ ldr r0, _08050C90 @ =gOtherText_LinkStandby3
+ movs r1, 0x1
+ movs r2, 0xF
+ bl MenuPrintMessage
+_08050C82:
+ ldr r0, _08050C94 @ =gUnknown_03004854
+ ldr r1, [r0]
+_08050C86:
+ adds r1, 0x6F
+_08050C88:
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+ b _08050CB6
+ .align 2, 0
+_08050C90: .4byte gOtherText_LinkStandby3
+_08050C94: .4byte gUnknown_03004854
+_08050C98:
+ bl MenuUpdateWindowText
+ lsls r0, 24
+ cmp r0, 0
+ beq _08050CB6
+ ldr r0, _08050CE0 @ =sub_8050E30
+_08050CA4:
+ bl SetMainCallback2
+ ldr r2, _08050CE4 @ =gUnknown_03004854
+ ldr r0, [r2]
+ adds r0, 0x6F
+ movs r1, 0
+ strb r1, [r0]
+ ldr r0, [r2]
+ strb r1, [r0]
+_08050CB6:
+ bl sub_8051B18
+ ldr r0, _08050CE4 @ =gUnknown_03004854
+ ldr r0, [r0]
+ adds r0, 0x56
+ ldrh r0, [r0]
+ bl sub_8051A3C
+ bl sub_805123C
+ bl RunTasks
+ bl AnimateSprites
+ bl BuildOamBuffer
+ bl UpdatePaletteFade
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08050CE0: .4byte sub_8050E30
+_08050CE4: .4byte gUnknown_03004854
+ thumb_func_end sub_8050954
+
+ thumb_func_start sub_8050CE8
+sub_8050CE8: @ 8050CE8
+ push {r4,lr}
+ ldr r1, _08050D08 @ =gUnknown_03004854
+ ldr r0, [r1]
+ movs r2, 0xE2
+ lsls r2, 1
+ adds r0, r2
+ ldr r0, [r0]
+ adds r4, r1, 0
+ cmp r0, 0x6
+ bls _08050CFE
+ b _08050E28
+_08050CFE:
+ lsls r0, 2
+ ldr r1, _08050D0C @ =_08050D10
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_08050D08: .4byte gUnknown_03004854
+_08050D0C: .4byte _08050D10
+ .align 2, 0
+_08050D10:
+ .4byte _08050D2C
+ .4byte _08050D44
+ .4byte _08050D70
+ .4byte _08050D80
+ .4byte _08050DA6
+ .4byte _08050DEC
+ .4byte _08050E06
+_08050D2C:
+ bl sub_80084A4
+ ldr r0, _08050D40 @ =gUnknown_03004854
+ ldr r2, [r0]
+ movs r3, 0xE2
+ lsls r3, 1
+ adds r1, r2, r3
+ movs r0, 0x1
+ b _08050DF8
+ .align 2, 0
+_08050D40: .4byte gUnknown_03004854
+_08050D44:
+ bl sub_8007ECC
+ lsls r0, 24
+ cmp r0, 0
+ beq _08050E28
+ ldr r0, _08050D68 @ =gUnknown_03004854
+ ldr r1, [r0]
+ movs r2, 0xE2
+ lsls r2, 1
+ adds r1, r2
+ ldr r0, [r1]
+ adds r0, 0x1
+ str r0, [r1]
+ ldr r1, _08050D6C @ =gSoftResetDisabled
+ movs r0, 0x1
+ strb r0, [r1]
+ b _08050E28
+ .align 2, 0
+_08050D68: .4byte gUnknown_03004854
+_08050D6C: .4byte gSoftResetDisabled
+_08050D70:
+ bl sub_8125E2C
+ ldr r0, _08050D7C @ =gUnknown_03004854
+ ldr r2, [r0]
+ b _08050DEE
+ .align 2, 0
+_08050D7C: .4byte gUnknown_03004854
+_08050D80:
+ ldr r1, [r4]
+ movs r2, 0x98
+ lsls r2, 1
+ adds r1, r2
+ ldr r0, [r1]
+ adds r0, 0x1
+ str r0, [r1]
+ cmp r0, 0xA
+ bne _08050E28
+ bl sub_80084A4
+ ldr r1, [r4]
+ movs r3, 0xE2
+ lsls r3, 1
+ adds r1, r3
+ ldr r0, [r1]
+ adds r0, 0x1
+ str r0, [r1]
+ b _08050E28
+_08050DA6:
+ bl sub_8007ECC
+ lsls r0, 24
+ cmp r0, 0
+ beq _08050E28
+ bl sub_8125E6C
+ lsls r0, 24
+ lsrs r2, r0, 24
+ cmp r2, 0
+ beq _08050DD0
+ ldr r0, _08050DCC @ =gUnknown_03004854
+ ldr r0, [r0]
+ movs r1, 0xE2
+ lsls r1, 1
+ adds r0, r1
+ movs r1, 0x5
+ str r1, [r0]
+ b _08050E28
+ .align 2, 0
+_08050DCC: .4byte gUnknown_03004854
+_08050DD0:
+ ldr r0, _08050DE8 @ =gUnknown_03004854
+ ldr r1, [r0]
+ movs r3, 0x98
+ lsls r3, 1
+ adds r0, r1, r3
+ str r2, [r0]
+ movs r0, 0xE2
+ lsls r0, 1
+ adds r1, r0
+ movs r0, 0x3
+ str r0, [r1]
+ b _08050E28
+ .align 2, 0
+_08050DE8: .4byte gUnknown_03004854
+_08050DEC:
+ ldr r2, [r4]
+_08050DEE:
+ movs r3, 0xE2
+ lsls r3, 1
+ adds r1, r2, r3
+ ldr r0, [r1]
+ adds r0, 0x1
+_08050DF8:
+ str r0, [r1]
+ movs r0, 0x98
+ lsls r0, 1
+ adds r1, r2, r0
+ movs r0, 0
+ str r0, [r1]
+ b _08050E28
+_08050E06:
+ ldr r1, [r4]
+ movs r2, 0x98
+ lsls r2, 1
+ adds r1, r2
+ ldr r0, [r1]
+ adds r0, 0x1
+ str r0, [r1]
+ cmp r0, 0x5
+ ble _08050E28
+ ldr r1, _08050E24 @ =gSoftResetDisabled
+ movs r0, 0
+ strb r0, [r1]
+ movs r0, 0x1
+ b _08050E2A
+ .align 2, 0
+_08050E24: .4byte gSoftResetDisabled
+_08050E28:
+ movs r0, 0
+_08050E2A:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8050CE8
+
+ thumb_func_start sub_8050E30
+sub_8050E30: @ 8050E30
+ push {r4,r5,lr}
+ sub sp, 0x4
+ ldr r1, _08050E50 @ =gUnknown_03004854
+ ldr r0, [r1]
+ adds r0, 0x6F
+ ldrb r0, [r0]
+ adds r5, r1, 0
+ cmp r0, 0xC
+ bls _08050E44
+ b _080510AC
+_08050E44:
+ lsls r0, 2
+ ldr r1, _08050E54 @ =_08050E58
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_08050E50: .4byte gUnknown_03004854
+_08050E54: .4byte _08050E58
+ .align 2, 0
+_08050E58:
+ .4byte _08050E8C
+ .4byte _08050ED8
+ .4byte _08050F00
+ .4byte _08050F54
+ .4byte _08050F74
+ .4byte _08050F92
+ .4byte _08050FBC
+ .4byte _08050FEC
+ .4byte _08051008
+ .4byte _08051018
+ .4byte _0805103C
+ .4byte _0805107C
+ .4byte _0805109E
+_08050E8C:
+ ldr r1, [r5]
+ adds r0, r1, 0
+ adds r0, 0x70
+ ldrh r2, [r0]
+ ldr r0, _08050EB8 @ =0x00002222
+ cmp r2, r0
+ beq _08050F8A
+ ldr r0, _08050EBC @ =0x00001111
+ cmp r2, r0
+ beq _08050EA2
+ b _080510AC
+_08050EA2:
+ adds r0, r1, 0
+ adds r0, 0x78
+ ldrh r2, [r0]
+ ldr r0, _08050EC0 @ =0x00009999
+ cmp r2, r0
+ bne _08050EC4
+ adds r1, 0x6F
+ movs r0, 0x2
+ strb r0, [r1]
+ b _080510AC
+ .align 2, 0
+_08050EB8: .4byte 0x00002222
+_08050EBC: .4byte 0x00001111
+_08050EC0: .4byte 0x00009999
+_08050EC4:
+ ldr r0, _08050ED4 @ =0x0000aaaa
+ cmp r2, r0
+ bne _08050F8A
+ adds r1, 0x6F
+ movs r0, 0x1
+ strb r0, [r1]
+ b _080510AC
+ .align 2, 0
+_08050ED4: .4byte 0x0000aaaa
+_08050ED8:
+ ldr r0, [r5]
+ adds r0, 0x6F
+ movs r1, 0x3
+ strb r1, [r0]
+ bl DestroyMenuCursor
+ movs r0, 0x17
+ movs r1, 0x8
+ movs r2, 0x1C
+ movs r3, 0xD
+ bl MenuZeroFillWindowRect
+ ldr r4, _08050EF8 @ =gStringVar4
+ ldr r1, _08050EFC @ =gOtherText_OtherCaseIsFull
+ b _08050F1E
+ .align 2, 0
+_08050EF8: .4byte gStringVar4
+_08050EFC: .4byte gOtherText_OtherCaseIsFull
+_08050F00:
+ ldr r1, [r5]
+ adds r1, 0x6F
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+ bl DestroyMenuCursor
+ movs r0, 0x17
+ movs r1, 0x8
+ movs r2, 0x1C
+ movs r3, 0xD
+ bl MenuZeroFillWindowRect
+ ldr r4, _08050F48 @ =gStringVar4
+ ldr r1, _08050F4C @ =gOtherText_NoBerriesForBlend
+_08050F1E:
+ adds r0, r4, 0
+ bl StringCopy
+ ldr r0, [r5]
+ adds r0, 0x7A
+ ldrh r0, [r0]
+ lsls r1, r0, 3
+ subs r1, r0
+ lsls r1, 2
+ ldr r0, _08050F50 @ =gLinkPlayers + 0x8
+ adds r1, r0
+ adds r0, r4, 0
+ bl de_sub_8073110
+ adds r0, r4, 0
+ movs r1, 0x1
+ movs r2, 0xF
+ bl MenuPrintMessage
+ b _080510AC
+ .align 2, 0
+_08050F48: .4byte gStringVar4
+_08050F4C: .4byte gOtherText_NoBerriesForBlend
+_08050F50: .4byte gLinkPlayers + 0x8
+_08050F54:
+ bl MenuUpdateWindowText
+ lsls r0, 24
+ cmp r0, 0
+ bne _08050F60
+ b _080510AC
+_08050F60:
+ ldr r0, _08050F70 @ =gUnknown_03004854
+ ldr r1, [r0]
+ movs r0, 0x98
+ lsls r0, 1
+ adds r2, r1, r0
+ movs r0, 0
+ str r0, [r2]
+ b _08051094
+ .align 2, 0
+_08050F70: .4byte gUnknown_03004854
+_08050F74:
+ ldr r2, [r5]
+ movs r0, 0x98
+ lsls r0, 1
+ adds r1, r2, r0
+ ldr r0, [r1]
+ adds r0, 0x1
+ str r0, [r1]
+ cmp r0, 0x3C
+ bgt _08050F88
+ b _080510AC
+_08050F88:
+ adds r1, r2, 0
+_08050F8A:
+ adds r1, 0x6F
+ movs r0, 0x5
+ strb r0, [r1]
+ b _080510AC
+_08050F92:
+ movs r0, 0
+ movs r1, 0xE
+ movs r2, 0x1D
+ movs r3, 0x13
+ bl MenuDrawTextWindow
+ ldr r0, _08050FB4 @ =gMultiText_Saving
+ movs r1, 0x2
+ movs r2, 0xF
+ bl MenuPrint
+ bl sub_80084A4
+ ldr r0, _08050FB8 @ =gUnknown_03004854
+ ldr r1, [r0]
+ b _08051094
+ .align 2, 0
+_08050FB4: .4byte gMultiText_Saving
+_08050FB8: .4byte gUnknown_03004854
+_08050FBC:
+ bl sub_8007ECC
+ lsls r0, 24
+ cmp r0, 0
+ beq _080510AC
+ ldr r3, _08050FE8 @ =gUnknown_03004854
+ ldr r1, [r3]
+ movs r2, 0x98
+ lsls r2, 1
+ adds r0, r1, r2
+ movs r2, 0
+ str r2, [r0]
+ adds r1, 0x6F
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+ ldr r0, [r3]
+ movs r1, 0xE2
+ lsls r1, 1
+ adds r0, r1
+ str r2, [r0]
+ b _080510AC
+ .align 2, 0
+_08050FE8: .4byte gUnknown_03004854
+_08050FEC:
+ bl sub_8050CE8
+ lsls r0, 24
+ cmp r0, 0
+ beq _080510AC
+ movs r0, 0x37
+ bl PlaySE
+ ldr r0, _08051004 @ =gUnknown_03004854
+ ldr r1, [r0]
+ b _08051094
+ .align 2, 0
+_08051004: .4byte gUnknown_03004854
+_08051008:
+ ldr r1, [r5]
+ adds r1, 0x6F
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+ bl sub_80084A4
+ b _080510AC
+_08051018:
+ bl sub_8007ECC
+ lsls r0, 24
+ cmp r0, 0
+ beq _080510AC
+ movs r0, 0x1
+ negs r0, r0
+ movs r1, 0
+ str r1, [sp]
+ movs r2, 0
+ movs r3, 0x10
+ bl BeginNormalPaletteFade
+ ldr r0, _08051038 @ =gUnknown_03004854
+ ldr r1, [r0]
+ b _08051094
+ .align 2, 0
+_08051038: .4byte gUnknown_03004854
+_0805103C:
+ ldr r0, _08051064 @ =gPaletteFade
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ lsls r0, 24
+ lsrs r3, r0, 24
+ cmp r3, 0
+ bne _080510AC
+ ldr r2, [r5]
+ adds r0, r2, 0
+ adds r0, 0x70
+ ldrh r1, [r0]
+ ldr r0, _08051068 @ =0x00002222
+ cmp r1, r0
+ bne _08051070
+ ldr r0, _0805106C @ =sub_804E538
+ bl SetMainCallback2
+ b _080510AC
+ .align 2, 0
+_08051064: .4byte gPaletteFade
+_08051068: .4byte 0x00002222
+_0805106C: .4byte sub_804E538
+_08051070:
+ movs r1, 0x98
+ lsls r1, 1
+ adds r0, r2, r1
+ str r3, [r0]
+ adds r1, r2, 0
+ b _08051094
+_0805107C:
+ ldr r1, [r5]
+ movs r2, 0x98
+ lsls r2, 1
+ adds r1, r2
+ ldr r0, [r1]
+ adds r0, 0x1
+ str r0, [r1]
+ cmp r0, 0x1E
+ ble _080510AC
+ bl sub_800832C
+ ldr r1, [r5]
+_08051094:
+ adds r1, 0x6F
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+ b _080510AC
+_0805109E:
+ ldr r0, _080510C8 @ =gReceivedRemoteLinkPlayers
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _080510AC
+ ldr r0, _080510CC @ =c2_exit_to_overworld_1_continue_scripts_restart_music
+ bl SetMainCallback2
+_080510AC:
+ bl sub_805123C
+ bl RunTasks
+ bl AnimateSprites
+ bl BuildOamBuffer
+ bl UpdatePaletteFade
+ add sp, 0x4
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080510C8: .4byte gReceivedRemoteLinkPlayers
+_080510CC: .4byte c2_exit_to_overworld_1_continue_scripts_restart_music
+ thumb_func_end sub_8050E30
+
+ thumb_func_start sub_80510E8
+sub_80510E8: @ 80510E8
+ push {lr}
+ ldr r1, _08051104 @ =gUnknown_03004854
+ ldr r0, [r1]
+ adds r0, 0x6F
+ ldrb r0, [r0]
+ adds r3, r1, 0
+ cmp r0, 0xA
+ bls _080510FA
+ b _0805121E
+_080510FA:
+ lsls r0, 2
+ ldr r1, _08051108 @ =_0805110C
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_08051104: .4byte gUnknown_03004854
+_08051108: .4byte _0805110C
+ .align 2, 0
+_0805110C:
+ .4byte _08051138
+ .4byte _0805116E
+ .4byte _08051190
+ .4byte _080511BC
+ .4byte _0805121E
+ .4byte _0805121E
+ .4byte _0805121E
+ .4byte _0805121E
+ .4byte _0805121E
+ .4byte _080511D8
+ .4byte _080511F0
+_08051138:
+ ldr r1, [r3]
+ adds r0, r1, 0
+ adds r0, 0x7C
+ ldrh r0, [r0]
+ cmp r0, 0x1
+ bhi _0805114A
+ adds r1, 0x6F
+ movs r0, 0x9
+ strb r0, [r1]
+_0805114A:
+ ldr r2, [r3]
+ adds r0, r2, 0
+ adds r0, 0x7C
+ ldrh r1, [r0]
+ cmp r1, 0x2
+ bne _0805115A
+ subs r0, 0xD
+ strb r1, [r0]
+_0805115A:
+ ldr r1, [r3]
+ adds r0, r1, 0
+ adds r0, 0x7C
+ ldrh r0, [r0]
+ cmp r0, 0x3
+ bne _0805121E
+ adds r1, 0x6F
+ movs r0, 0x1
+ strb r0, [r1]
+ b _0805121E
+_0805116E:
+ ldr r0, [r3]
+ adds r0, 0x6F
+ movs r1, 0x3
+ strb r1, [r0]
+ bl DestroyMenuCursor
+ movs r0, 0x17
+ movs r1, 0x8
+ movs r2, 0x1C
+ movs r3, 0xD
+ bl MenuZeroFillWindowRect
+ ldr r0, _0805118C @ =gOtherText_CaseIsFull
+ b _080511AC
+ .align 2, 0
+_0805118C: .4byte gOtherText_CaseIsFull
+_08051190:
+ ldr r0, [r3]
+ adds r0, 0x6F
+ ldrb r1, [r0]
+ adds r1, 0x1
+ strb r1, [r0]
+ bl DestroyMenuCursor
+ movs r0, 0x17
+ movs r1, 0x8
+ movs r2, 0x1C
+ movs r3, 0xD
+ bl MenuZeroFillWindowRect
+ ldr r0, _080511B8 @ =gOtherText_OutOfBerries
+_080511AC:
+ movs r1, 0x1
+ movs r2, 0xF
+ bl MenuPrintMessage
+ b _0805121E
+ .align 2, 0
+_080511B8: .4byte gOtherText_OutOfBerries
+_080511BC:
+ bl MenuUpdateWindowText
+ lsls r0, 24
+ cmp r0, 0
+ beq _0805121E
+ ldr r0, _080511D4 @ =gUnknown_03004854
+ ldr r0, [r0]
+ adds r0, 0x6F
+ movs r1, 0x9
+ strb r1, [r0]
+ b _0805121E
+ .align 2, 0
+_080511D4: .4byte gUnknown_03004854
+_080511D8:
+ movs r0, 0x3
+ bl BeginFastPaletteFade
+ ldr r0, _080511EC @ =gUnknown_03004854
+ ldr r1, [r0]
+ adds r1, 0x6F
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+ b _0805121E
+ .align 2, 0
+_080511EC: .4byte gUnknown_03004854
+_080511F0:
+ ldr r0, _08051210 @ =gPaletteFade
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _0805121E
+ ldr r0, [r3]
+ adds r0, 0x7C
+ ldrh r0, [r0]
+ cmp r0, 0
+ bne _08051218
+ ldr r0, _08051214 @ =sub_804E538
+ bl SetMainCallback2
+ b _0805121E
+ .align 2, 0
+_08051210: .4byte gPaletteFade
+_08051214: .4byte sub_804E538
+_08051218:
+ ldr r0, _08051238 @ =c2_exit_to_overworld_1_continue_scripts_restart_music
+ bl SetMainCallback2
+_0805121E:
+ bl sub_805123C
+ bl RunTasks
+ bl AnimateSprites
+ bl BuildOamBuffer
+ bl UpdatePaletteFade
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08051238: .4byte c2_exit_to_overworld_1_continue_scripts_restart_music
+ thumb_func_end sub_80510E8
+
+ thumb_func_start sub_805123C
+sub_805123C: @ 805123C
+ push {r4-r6,lr}
+ ldr r0, _0805126C @ =gReceivedRemoteLinkPlayers
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _08051248
+ b _08051404
+_08051248:
+ ldr r4, _08051270 @ =gRecvCmds
+ ldrh r1, [r4]
+ ldr r0, _08051274 @ =0x00002fff
+ cmp r1, r0
+ bne _080512C6
+ ldrh r1, [r4, 0x8]
+ ldr r0, _08051278 @ =0x00001111
+ cmp r1, r0
+ bne _080512B8
+ ldrh r3, [r4, 0x10]
+ ldr r0, _0805127C @ =0x00009999
+ cmp r3, r0
+ beq _08051298
+ cmp r3, r0
+ bgt _08051284
+ ldr r0, _08051280 @ =0x00008888
+ b _08051286
+ .align 2, 0
+_0805126C: .4byte gReceivedRemoteLinkPlayers
+_08051270: .4byte gRecvCmds
+_08051274: .4byte 0x00002fff
+_08051278: .4byte 0x00001111
+_0805127C: .4byte 0x00009999
+_08051280: .4byte 0x00008888
+_08051284:
+ ldr r0, _08051290 @ =0x0000aaaa
+_08051286:
+ cmp r3, r0
+ beq _08051298
+ ldr r2, _08051294 @ =gUnknown_03004854
+ b _080512A8
+ .align 2, 0
+_08051290: .4byte 0x0000aaaa
+_08051294: .4byte gUnknown_03004854
+_08051298:
+ ldr r2, _080512B0 @ =gUnknown_03004854
+ ldr r0, [r2]
+ adds r1, r0, 0
+ adds r1, 0x78
+ strh r3, [r1]
+ ldrh r1, [r4, 0x18]
+ adds r0, 0x7A
+ strh r1, [r0]
+_080512A8:
+ ldr r0, [r2]
+ adds r0, 0x70
+ ldr r1, _080512B4 @ =0x00001111
+ b _080512C4
+ .align 2, 0
+_080512B0: .4byte gUnknown_03004854
+_080512B4: .4byte 0x00001111
+_080512B8:
+ ldr r0, _080512F4 @ =0x00002222
+ cmp r1, r0
+ bne _080512C6
+ ldr r0, _080512F8 @ =gUnknown_03004854
+ ldr r0, [r0]
+ adds r0, 0x70
+_080512C4:
+ strh r1, [r0]
+_080512C6:
+ bl GetMultiplayerId
+ lsls r0, 24
+ cmp r0, 0
+ beq _080512D2
+ b _08051404
+_080512D2:
+ ldr r2, _080512F8 @ =gUnknown_03004854
+ ldr r0, [r2]
+ adds r0, 0x70
+ ldrh r1, [r0]
+ ldr r0, _080512FC @ =0x00001111
+ cmp r1, r0
+ bne _080512E2
+ b _08051404
+_080512E2:
+ ldr r0, _080512F4 @ =0x00002222
+ cmp r1, r0
+ bne _080512EA
+ b _08051404
+_080512EA:
+ movs r4, 0
+ ldr r6, _08051300 @ =0x00002fff
+ adds r5, r2, 0
+ b _0805134E
+ .align 2, 0
+_080512F4: .4byte 0x00002222
+_080512F8: .4byte gUnknown_03004854
+_080512FC: .4byte 0x00001111
+_08051300: .4byte 0x00002fff
+_08051304:
+ ldr r1, _08051328 @ =gRecvCmds
+ lsls r2, r4, 1
+ adds r0, r2, r1
+ ldrh r0, [r0]
+ cmp r0, r6
+ bne _08051348
+ adds r0, r1, 0
+ adds r0, 0x8
+ adds r0, r2, r0
+ ldrh r1, [r0]
+ ldr r0, _0805132C @ =0x00008888
+ cmp r1, r0
+ beq _08051340
+ cmp r1, r0
+ bgt _08051334
+ ldr r0, _08051330 @ =0x00007779
+ b _0805133C
+ .align 2, 0
+_08051328: .4byte gRecvCmds
+_0805132C: .4byte 0x00008888
+_08051330: .4byte 0x00007779
+_08051334:
+ ldr r0, _08051360 @ =0x00009999
+ cmp r1, r0
+ beq _08051340
+ ldr r0, _08051364 @ =0x0000aaaa
+_0805133C:
+ cmp r1, r0
+ bne _08051348
+_08051340:
+ ldr r0, [r5]
+ adds r0, 0x70
+ adds r0, r2
+ strh r1, [r0]
+_08051348:
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+_0805134E:
+ bl GetLinkPlayerCount
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r4, r0
+ bcc _08051304
+ movs r4, 0
+ b _0805136E
+ .align 2, 0
+_08051360: .4byte 0x00009999
+_08051364: .4byte 0x0000aaaa
+_08051368:
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+_0805136E:
+ bl GetLinkPlayerCount
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r4, r0
+ bcs _0805138A
+ ldr r0, _0805139C @ =gUnknown_03004854
+ ldr r0, [r0]
+ lsls r1, r4, 1
+ adds r0, 0x70
+ adds r0, r1
+ ldrh r0, [r0]
+ cmp r0, 0
+ bne _08051368
+_0805138A:
+ bl GetLinkPlayerCount
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r4, r0
+ bne _08051404
+ movs r4, 0
+ ldr r5, _080513A0 @ =0x00007779
+ b _080513AA
+ .align 2, 0
+_0805139C: .4byte gUnknown_03004854
+_080513A0: .4byte 0x00007779
+_080513A4:
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+_080513AA:
+ bl GetLinkPlayerCount
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r4, r0
+ bcs _080513C6
+ ldr r0, _080513E0 @ =gUnknown_03004854
+ ldr r0, [r0]
+ lsls r1, r4, 1
+ adds r0, 0x70
+ adds r0, r1
+ ldrh r0, [r0]
+ cmp r0, r5
+ beq _080513A4
+_080513C6:
+ ldr r5, _080513E4 @ =gSendCmd
+ movs r6, 0
+ ldr r0, _080513E8 @ =0x00002fff
+ strh r0, [r5]
+ bl GetLinkPlayerCount
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r4, r0
+ bne _080513F0
+ ldr r0, _080513EC @ =0x00002222
+ strh r0, [r5, 0x2]
+ b _08051404
+ .align 2, 0
+_080513E0: .4byte gUnknown_03004854
+_080513E4: .4byte gSendCmd
+_080513E8: .4byte 0x00002fff
+_080513EC: .4byte 0x00002222
+_080513F0:
+ ldr r0, _0805140C @ =0x00001111
+ strh r0, [r5, 0x2]
+ ldr r0, _08051410 @ =gUnknown_03004854
+ ldr r0, [r0]
+ lsls r1, r4, 1
+ adds r0, 0x70
+ adds r0, r1
+ ldrh r0, [r0]
+ strh r0, [r5, 0x4]
+ strh r4, [r5, 0x6]
+_08051404:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0805140C: .4byte 0x00001111
+_08051410: .4byte gUnknown_03004854
+ thumb_func_end sub_805123C
+
+ thumb_func_start sub_8051414
+sub_8051414: @ 8051414
+ push {lr}
+ sub sp, 0x14
+ adds r1, r0, 0
+ movs r0, 0xF0
+ lsls r0, 7
+ str r0, [sp]
+ movs r0, 0xA0
+ lsls r0, 7
+ str r0, [sp, 0x4]
+ mov r3, sp
+ ldr r0, _08051470 @ =gUnknown_03004854
+ ldr r0, [r0]
+ mov r12, r0
+ movs r0, 0xA2
+ lsls r0, 1
+ add r0, r12
+ ldrh r2, [r0]
+ movs r0, 0x78
+ subs r0, r2
+ strh r0, [r3, 0x8]
+ movs r0, 0xA3
+ lsls r0, 1
+ add r0, r12
+ ldrh r2, [r0]
+ movs r0, 0x50
+ subs r0, r2
+ strh r0, [r3, 0xA]
+ mov r2, sp
+ movs r3, 0xA1
+ lsls r3, 1
+ add r3, r12
+ ldrh r0, [r3]
+ strh r0, [r2, 0xC]
+ ldrh r0, [r3]
+ strh r0, [r2, 0xE]
+ mov r0, r12
+ adds r0, 0x54
+ ldrh r0, [r0]
+ strh r0, [r2, 0x10]
+ mov r0, sp
+ movs r2, 0x1
+ bl BgAffineSet
+ add sp, 0x14
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08051470: .4byte gUnknown_03004854
+ thumb_func_end sub_8051414
+
+ thumb_func_start sub_8051474
+sub_8051474: @ 8051474
+ push {lr}
+ ldr r0, _080514A0 @ =gUnknown_03004854
+ ldr r3, [r0]
+ adds r1, r3, 0
+ adds r1, 0x54
+ ldrh r2, [r1]
+ adds r0, r3, 0
+ adds r0, 0x58
+ strh r2, [r0]
+ subs r0, 0x2
+ ldrh r0, [r0]
+ ldrh r2, [r1]
+ adds r0, r2
+ strh r0, [r1]
+ movs r1, 0xB4
+ lsls r1, 1
+ adds r0, r3, r1
+ bl sub_8051414
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080514A0: .4byte gUnknown_03004854
+ thumb_func_end sub_8051474
+
+ thumb_func_start sub_80514A4
+sub_80514A4: @ 80514A4
+ ldr r1, _080514E8 @ =REG_BG2PA
+ ldr r0, _080514EC @ =gUnknown_03004854
+ ldr r2, [r0]
+ movs r3, 0xB4
+ lsls r3, 1
+ adds r0, r2, r3
+ ldrh r0, [r0]
+ strh r0, [r1]
+ adds r1, 0x2
+ adds r3, 0x2
+ adds r0, r2, r3
+ ldrh r0, [r0]
+ strh r0, [r1]
+ adds r1, 0x2
+ adds r3, 0x2
+ adds r0, r2, r3
+ ldrh r0, [r0]
+ strh r0, [r1]
+ adds r1, 0x2
+ adds r3, 0x2
+ adds r0, r2, r3
+ ldrh r0, [r0]
+ strh r0, [r1]
+ adds r1, 0x2
+ adds r3, 0x2
+ adds r0, r2, r3
+ ldr r0, [r0]
+ str r0, [r1]
+ adds r1, 0x4
+ adds r3, 0x4
+ adds r0, r2, r3
+ ldr r0, [r0]
+ str r0, [r1]
+ bx lr
+ .align 2, 0
+_080514E8: .4byte REG_BG2PA
+_080514EC: .4byte gUnknown_03004854
+ thumb_func_end sub_80514A4
+
+ thumb_func_start sub_80514F0
+sub_80514F0: @ 80514F0
+ ldr r1, _0805151C @ =REG_BG1HOFS
+ ldr r0, _08051520 @ =gUnknown_03004854
+ ldr r3, [r0]
+ movs r0, 0xA2
+ lsls r0, 1
+ adds r2, r3, r0
+ ldrh r0, [r2]
+ strh r0, [r1]
+ adds r1, 0x2
+ movs r0, 0xA3
+ lsls r0, 1
+ adds r3, r0
+ ldrh r0, [r3]
+ strh r0, [r1]
+ subs r1, 0x6
+ ldrh r0, [r2]
+ strh r0, [r1]
+ adds r1, 0x2
+ ldrh r0, [r3]
+ strh r0, [r1]
+ bx lr
+ .align 2, 0
+_0805151C: .4byte REG_BG1HOFS
+_08051520: .4byte gUnknown_03004854
+ thumb_func_end sub_80514F0
+
+ thumb_func_start sub_8051524
+sub_8051524: @ 8051524
+ push {lr}
+ adds r2, r0, 0
+ ldrh r0, [r2, 0x2E]
+ ldrh r1, [r2, 0x32]
+ adds r0, r1
+ strh r0, [r2, 0x32]
+ ldrh r0, [r2, 0x30]
+ ldrh r1, [r2, 0x34]
+ adds r0, r1
+ strh r0, [r2, 0x34]
+ movs r1, 0x32
+ ldrsh r0, [r2, r1]
+ cmp r0, 0
+ bge _08051542
+ adds r0, 0x7
+_08051542:
+ asrs r0, 3
+ strh r0, [r2, 0x24]
+ movs r1, 0x34
+ ldrsh r0, [r2, r1]
+ cmp r0, 0
+ bge _08051550
+ adds r0, 0x7
+_08051550:
+ asrs r0, 3
+ strh r0, [r2, 0x26]
+ adds r0, r2, 0
+ adds r0, 0x3F
+ ldrb r1, [r0]
+ movs r0, 0x10
+ ands r0, r1
+ cmp r0, 0
+ beq _08051568
+ adds r0, r2, 0
+ bl DestroySprite
+_08051568:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8051524
+
+ thumb_func_start sub_805156C
+sub_805156C: @ 805156C
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ bl Random
+ lsls r0, 16
+ lsrs r1, r0, 16
+ movs r0, 0x1
+ ands r1, r0
+ adds r0, r1, 0x1
+ cmp r0, 0
+ beq _08051628
+ ldr r0, _08051638 @ =gSineTable
+ mov r9, r0
+ ldr r2, _0805163C @ =gSprites
+ mov r10, r2
+ adds r6, r1, 0x1
+ movs r3, 0x1F
+ mov r8, r3
+ movs r7, 0x10
+_08051598:
+ bl Random
+ ldr r1, _08051640 @ =gUnknown_03004854
+ ldr r4, [r1]
+ adds r4, 0x54
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0x14
+ bl __umodsi3
+ ldrh r1, [r4]
+ adds r1, r0
+ lsls r1, 16
+ movs r0, 0xFF
+ lsls r0, 16
+ ands r0, r1
+ lsrs r2, r0, 16
+ adds r0, r2, 0
+ adds r0, 0x40
+ lsls r0, 1
+ add r0, r9
+ movs r3, 0
+ ldrsh r1, [r0, r3]
+ cmp r1, 0
+ bge _080515CC
+ adds r1, 0x3
+_080515CC:
+ asrs r1, 2
+ lsls r0, r2, 1
+ add r0, r9
+ movs r2, 0
+ ldrsh r0, [r0, r2]
+ cmp r0, 0
+ bge _080515DC
+ adds r0, 0x3
+_080515DC:
+ asrs r2, r0, 2
+ adds r1, 0x78
+ adds r2, 0x50
+ ldr r0, _08051644 @ =gSpriteTemplate_82164FC
+ movs r3, 0x1
+ bl CreateSprite
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ bl Random
+ lsls r5, r4, 4
+ adds r5, r4
+ lsls r5, 2
+ mov r3, r10
+ adds r4, r5, r3
+ lsls r0, 16
+ lsrs r0, 16
+ mov r1, r8
+ ands r0, r1
+ subs r0, r7, r0
+ strh r0, [r4, 0x2E]
+ bl Random
+ lsls r0, 16
+ lsrs r0, 16
+ mov r2, r8
+ ands r0, r2
+ subs r0, r7, r0
+ strh r0, [r4, 0x30]
+ ldr r3, _08051648 @ =gSprites + 0x1C
+ adds r5, r3
+ ldr r0, _0805164C @ =sub_8051524
+ str r0, [r5]
+ subs r6, 0x1
+ cmp r6, 0
+ bne _08051598
+_08051628:
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08051638: .4byte gSineTable
+_0805163C: .4byte gSprites
+_08051640: .4byte gUnknown_03004854
+_08051644: .4byte gSpriteTemplate_82164FC
+_08051648: .4byte gSprites + 0x1C
+_0805164C: .4byte sub_8051524
+ thumb_func_end sub_805156C
+
+ thumb_func_start sub_8051650
+sub_8051650: @ 8051650
+ push {r4,lr}
+ adds r4, r0, 0
+ ldrh r0, [r4, 0x2E]
+ adds r0, 0x1
+ strh r0, [r4, 0x2E]
+ movs r1, 0x2E
+ ldrsh r0, [r4, r1]
+ movs r1, 0x3
+ bl __divsi3
+ negs r0, r0
+ strh r0, [r4, 0x26]
+ adds r0, r4, 0
+ adds r0, 0x3F
+ ldrb r1, [r0]
+ movs r0, 0x10
+ ands r0, r1
+ cmp r0, 0
+ beq _0805167C
+ adds r0, r4, 0
+ bl DestroySprite
+_0805167C:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8051650
+
+ thumb_func_start sub_8051684
+sub_8051684: @ 8051684
+ push {lr}
+ adds r2, r0, 0
+ ldrh r0, [r2, 0x2E]
+ adds r0, 0x1
+ strh r0, [r2, 0x2E]
+ movs r1, 0x2E
+ ldrsh r0, [r2, r1]
+ lsls r0, 1
+ negs r0, r0
+ strh r0, [r2, 0x26]
+ lsls r0, 16
+ asrs r0, 16
+ movs r1, 0xC
+ negs r1, r1
+ cmp r0, r1
+ bge _080516A8
+ ldr r0, _080516C0 @ =0x0000fff4
+ strh r0, [r2, 0x26]
+_080516A8:
+ adds r0, r2, 0
+ adds r0, 0x3F
+ ldrb r1, [r0]
+ movs r0, 0x10
+ ands r0, r1
+ cmp r0, 0
+ beq _080516BC
+ adds r0, r2, 0
+ bl DestroySprite
+_080516BC:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080516C0: .4byte 0x0000fff4
+ thumb_func_end sub_8051684
+
+ thumb_func_start sub_80516C4
+sub_80516C4: @ 80516C4
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, 16
+ lsrs r1, 16
+ ldr r2, _080516F4 @ =gUnknown_03004854
+ ldr r3, [r2]
+ lsls r4, r0, 1
+ adds r2, r3, 0
+ adds r2, 0x80
+ adds r2, r4
+ strh r1, [r2]
+ lsls r0, 4
+ movs r2, 0xBE
+ lsls r2, 1
+ adds r0, r2
+ adds r3, r0
+ adds r0, r3, 0
+ bl sub_804E844
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080516F4: .4byte gUnknown_03004854
+ thumb_func_end sub_80516C4
+
+ thumb_func_start unref_sub_80516F8
+unref_sub_80516F8: @ 80516F8
+ push {r4-r6,lr}
+ sub sp, 0x4
+ lsls r0, 24
+ lsrs r0, 24
+ adds r5, r0, 0
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ ldr r1, _080517B8 @ =gTasks
+ adds r4, r0, r1
+ ldr r6, _080517BC @ =gReceivedRemoteLinkPlayers
+ ldrb r0, [r6]
+ cmp r0, 0
+ beq _0805180C
+ bl GetMultiplayerId
+ lsls r0, 24
+ lsrs r1, r0, 24
+ cmp r1, 0
+ bne _080517D4
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x78
+ ble _08051730
+ strh r1, [r4, 0x8]
+_08051730:
+ movs r1, 0x8
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x64
+ bne _080517A0
+ ldr r0, _080517C0 @ =gUnknown_03004854
+ ldr r0, [r0]
+ adds r0, 0x4
+ movs r1, 0x14
+ str r1, [sp]
+ movs r1, 0
+ movs r2, 0
+ movs r3, 0x10
+ bl ZeroFillWindowRect
+ movs r0, 0x4
+ movs r1, 0x4
+ movs r2, 0xA
+ movs r3, 0xC
+ bl MenuDrawTextWindow
+ movs r2, 0
+ ldr r6, _080517C4 @ =gLinkPlayers + 0x4
+_0805175C:
+ adds r4, r2, 0x1
+ lsls r0, r4, 3
+ subs r0, r4
+ lsls r0, 2
+ adds r0, r6
+ ldr r0, [r0]
+ cmp r0, 0
+ beq _08051784
+ ldr r1, _080517C8 @ =gUnknown_08216284
+ lsls r0, r2, 2
+ adds r0, r1
+ ldr r0, [r0]
+ lsls r2, 25
+ movs r1, 0xA0
+ lsls r1, 19
+ adds r2, r1
+ lsrs r2, 24
+ movs r1, 0x5
+ bl MenuPrint
+_08051784:
+ movs r0, 0
+ movs r1, 0xD
+ movs r2, 0x1D
+ movs r3, 0x13
+ bl MenuDrawTextWindow
+ ldr r0, _080517CC @ =gOtherText_PressAToStart
+ movs r1, 0x1
+ movs r2, 0xF
+ bl MenuPrint
+ adds r2, r4, 0
+ cmp r2, 0x2
+ ble _0805175C
+_080517A0:
+ ldr r0, _080517D0 @ =gMain
+ ldrh r1, [r0, 0x2E]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _0805180C
+ bl sub_8007E4C
+ adds r0, r5, 0
+ bl DestroyTask
+ b _0805180C
+ .align 2, 0
+_080517B8: .4byte gTasks
+_080517BC: .4byte gReceivedRemoteLinkPlayers
+_080517C0: .4byte gUnknown_03004854
+_080517C4: .4byte gLinkPlayers + 0x4
+_080517C8: .4byte gUnknown_08216284
+_080517CC: .4byte gOtherText_PressAToStart
+_080517D0: .4byte gMain
+_080517D4:
+ movs r1, 0x8
+ ldrsh r0, [r4, r1]
+ cmp r0, 0xA
+ bne _080517E6
+ ldr r0, _08051814 @ =gOtherText_PleaseWait
+ movs r1, 0x3
+ movs r2, 0xA
+ bl MenuPrint
+_080517E6:
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x78
+ ble _080517F8
+ movs r0, 0
+ strh r0, [r4, 0x8]
+_080517F8:
+ ldr r0, _08051818 @ =byte_3002A68
+ ldrb r0, [r0]
+ cmp r0, 0x4
+ bls _0805180C
+ ldrb r0, [r6]
+ cmp r0, 0x1
+ bne _0805180C
+ adds r0, r5, 0
+ bl DestroyTask
+_0805180C:
+ add sp, 0x4
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08051814: .4byte gOtherText_PleaseWait
+_08051818: .4byte byte_3002A68
+ thumb_func_end unref_sub_80516F8
+
+ thumb_func_start sub_805181C
+sub_805181C: @ 805181C
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r1, 0x2E
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x1
+ beq _08051858
+ cmp r0, 0x1
+ bgt _08051832
+ cmp r0, 0
+ beq _08051838
+ b _080518BE
+_08051832:
+ cmp r0, 0x2
+ beq _08051872
+ b _080518BE
+_08051838:
+ ldrh r0, [r4, 0x30]
+ adds r0, 0x8
+ strh r0, [r4, 0x30]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x58
+ ble _080518BE
+ movs r0, 0x58
+ strh r0, [r4, 0x30]
+ ldrh r0, [r4, 0x2E]
+ adds r0, 0x1
+ strh r0, [r4, 0x2E]
+ movs r0, 0x38
+ bl PlaySE
+ b _080518BE
+_08051858:
+ ldrh r0, [r4, 0x32]
+ adds r0, 0x1
+ strh r0, [r4, 0x32]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x14
+ ble _080518BE
+ ldrh r0, [r4, 0x2E]
+ adds r0, 0x1
+ strh r0, [r4, 0x2E]
+ movs r0, 0
+ strh r0, [r4, 0x32]
+ b _080518BE
+_08051872:
+ ldrh r0, [r4, 0x30]
+ adds r0, 0x4
+ strh r0, [r4, 0x30]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0xB0
+ ble _080518BE
+ ldrh r0, [r4, 0x34]
+ adds r0, 0x1
+ adds r1, r0, 0
+ strh r0, [r4, 0x34]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x3
+ bne _080518AC
+ adds r0, r4, 0
+ bl DestroySprite
+ ldr r0, _080518A8 @ =gSpriteTemplate_821657C
+ movs r2, 0x14
+ negs r2, r2
+ movs r1, 0x78
+ movs r3, 0x2
+ bl CreateSprite
+ b _080518BE
+ .align 2, 0
+_080518A8: .4byte gSpriteTemplate_821657C
+_080518AC:
+ movs r0, 0
+ strh r0, [r4, 0x2E]
+ ldr r0, _080518C8 @ =0x0000fff0
+ strh r0, [r4, 0x30]
+ lsls r1, 24
+ lsrs r1, 24
+ adds r0, r4, 0
+ bl StartSpriteAnim
+_080518BE:
+ ldrh r0, [r4, 0x30]
+ strh r0, [r4, 0x26]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080518C8: .4byte 0x0000fff0
+ thumb_func_end sub_805181C
+
+ thumb_func_start sub_80518CC
+sub_80518CC: @ 80518CC
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r1, 0x2E
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x1
+ beq _08051908
+ cmp r0, 0x1
+ bgt _080518E2
+ cmp r0, 0
+ beq _080518E8
+ b _0805193C
+_080518E2:
+ cmp r0, 0x2
+ beq _0805191E
+ b _0805193C
+_080518E8:
+ ldrh r0, [r4, 0x30]
+ adds r0, 0x8
+ strh r0, [r4, 0x30]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x5C
+ ble _0805193C
+ movs r0, 0x5C
+ strh r0, [r4, 0x30]
+ ldrh r0, [r4, 0x2E]
+ adds r0, 0x1
+ strh r0, [r4, 0x2E]
+ movs r0, 0x15
+ bl PlaySE
+ b _0805193C
+_08051908:
+ ldrh r0, [r4, 0x32]
+ adds r0, 0x1
+ strh r0, [r4, 0x32]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x14
+ ble _0805193C
+ ldrh r0, [r4, 0x2E]
+ adds r0, 0x1
+ strh r0, [r4, 0x2E]
+ b _0805193C
+_0805191E:
+ ldrh r0, [r4, 0x30]
+ adds r0, 0x4
+ strh r0, [r4, 0x30]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0xB0
+ ble _0805193C
+ ldr r0, _08051948 @ =gUnknown_03004854
+ ldr r1, [r0]
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+ adds r0, r4, 0
+ bl DestroySprite
+_0805193C:
+ ldrh r0, [r4, 0x30]
+ strh r0, [r4, 0x26]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08051948: .4byte gUnknown_03004854
+ thumb_func_end sub_80518CC
+
+ thumb_func_start sub_805194C
+sub_805194C: @ 805194C
+ push {lr}
+ lsls r0, 16
+ lsrs r0, 16
+ lsls r1, 16
+ lsrs r3, r1, 16
+ ldr r1, _08051978 @ =gUnknown_03004854
+ ldr r1, [r1]
+ movs r2, 0xA0
+ lsls r2, 1
+ adds r1, r2
+ ldrh r2, [r1]
+ cmp r2, r0
+ bcs _08051972
+ adds r0, r2, 0x2
+ strh r0, [r1]
+ ldrh r0, [r1]
+ adds r1, r3, 0
+ bl sub_805197C
+_08051972:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08051978: .4byte gUnknown_03004854
+ thumb_func_end sub_805194C
+
+ thumb_func_start sub_805197C
+sub_805197C: @ 805197C
+ push {r4-r7,lr}
+ lsls r0, 16
+ lsls r1, 16
+ lsrs r1, 16
+ ldr r7, _08051A0C @ =0x06006000
+ lsrs r0, 10
+ bl __divsi3
+ adds r1, r0, 0
+ cmp r1, 0
+ bge _08051994
+ adds r0, r1, 0x7
+_08051994:
+ asrs r4, r0, 3
+ movs r3, 0
+ cmp r3, r4
+ bge _080519BC
+ ldr r0, _08051A10 @ =0x000081e9
+ adds r6, r0, 0
+ adds r0, 0x10
+ adds r5, r0, 0
+ adds r2, r7, 0
+ adds r2, 0x56
+ adds r0, r7, 0
+ adds r3, r4, 0
+_080519AC:
+ strh r6, [r0, 0x16]
+ strh r5, [r2]
+ adds r2, 0x2
+ adds r0, 0x2
+ subs r3, 0x1
+ cmp r3, 0
+ bne _080519AC
+ adds r3, r4, 0
+_080519BC:
+ adds r0, r1, 0
+ cmp r1, 0
+ bge _080519C4
+ adds r0, r1, 0x7
+_080519C4:
+ asrs r2, r0, 3
+ lsls r0, r2, 3
+ subs r2, r1, r0
+ cmp r2, 0
+ beq _080519E2
+ lsls r0, r3, 1
+ adds r0, r7
+ ldr r4, _08051A14 @ =0xffff81e1
+ adds r1, r2, r4
+ strh r1, [r0, 0x16]
+ adds r0, 0x56
+ adds r4, 0x10
+ adds r1, r2, r4
+ strh r1, [r0]
+ adds r3, 0x1
+_080519E2:
+ cmp r3, 0x7
+ bgt _08051A06
+ ldr r0, _08051A18 @ =0x000081e1
+ adds r4, r0, 0
+ adds r0, 0x10
+ adds r2, r0, 0
+ lsls r1, r3, 1
+ adds r0, r1, 0
+ adds r0, 0x56
+ adds r0, r7
+ adds r1, r7
+_080519F8:
+ strh r4, [r1, 0x16]
+ strh r2, [r0]
+ adds r0, 0x2
+ adds r1, 0x2
+ adds r3, 0x1
+ cmp r3, 0x7
+ ble _080519F8
+_08051A06:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08051A0C: .4byte 0x06006000
+_08051A10: .4byte 0x000081e9
+_08051A14: .4byte 0xffff81e1
+_08051A18: .4byte 0x000081e1
+ thumb_func_end sub_805197C
+
+ thumb_func_start sub_8051A1C
+sub_8051A1C: @ 8051A1C
+ push {lr}
+ lsls r0, 16
+ lsrs r0, 16
+ ldr r1, _08051A34 @ =0x00057e40
+ muls r0, r1
+ cmp r0, 0
+ bge _08051A2E
+ ldr r1, _08051A38 @ =0x0000ffff
+ adds r0, r1
+_08051A2E:
+ asrs r0, 16
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08051A34: .4byte 0x00057e40
+_08051A38: .4byte 0x0000ffff
+ thumb_func_end sub_8051A1C
+
+ thumb_func_start sub_8051A3C
+sub_8051A3C: @ 8051A3C
+ push {r4-r6,lr}
+ sub sp, 0x8
+ lsls r0, 16
+ lsrs r0, 16
+ bl sub_8051A1C
+ adds r5, r0, 0
+ ldr r0, _08051ABC @ =gUnknown_03004854
+ ldr r0, [r0]
+ adds r1, r0, 0
+ adds r1, 0x5A
+ ldrh r0, [r1]
+ cmp r0, r5
+ bcs _08051A5A
+ strh r5, [r1]
+_08051A5A:
+ movs r6, 0
+_08051A5C:
+ mov r0, sp
+ adds r4, r0, r6
+ adds r0, r5, 0
+ movs r1, 0xA
+ bl __umodsi3
+ strb r0, [r4]
+ adds r0, r5, 0
+ movs r1, 0xA
+ bl __udivsi3
+ adds r5, r0, 0
+ adds r0, r6, 0x1
+ lsls r0, 24
+ lsrs r6, r0, 24
+ cmp r6, 0x4
+ bls _08051A5C
+ ldr r2, _08051AC0 @ =0x06006458
+ mov r0, sp
+ ldr r3, _08051AC4 @ =0x00008172
+ adds r1, r3, 0
+ ldrb r0, [r0, 0x4]
+ adds r0, r1, r0
+ strh r0, [r2]
+ adds r2, 0x2
+ mov r0, sp
+ ldrb r0, [r0, 0x3]
+ adds r0, r1
+ strh r0, [r2]
+ adds r2, 0x2
+ mov r0, sp
+ ldrb r0, [r0, 0x2]
+ adds r0, r1
+ strh r0, [r2]
+ adds r2, 0x4
+ mov r0, sp
+ ldrb r0, [r0, 0x1]
+ adds r0, r1
+ strh r0, [r2]
+ adds r2, 0x2
+ mov r0, sp
+ ldrb r0, [r0]
+ adds r1, r0
+ strh r1, [r2]
+ add sp, 0x8
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08051ABC: .4byte gUnknown_03004854
+_08051AC0: .4byte 0x06006458
+_08051AC4: .4byte 0x00008172
+ thumb_func_end sub_8051A3C
+
+ thumb_func_start sub_8051AC8
+sub_8051AC8: @ 8051AC8
+ push {r4-r6,lr}
+ adds r6, r0, 0
+ lsls r4, r1, 16
+ lsrs r5, r4, 16
+ movs r1, 0
+ ldrsh r0, [r6, r1]
+ cmp r0, 0
+ bne _08051AEC
+ bl Random
+ lsls r0, 16
+ lsrs r0, 16
+ adds r1, r5, 0
+ bl __umodsi3
+ lsrs r1, r4, 17
+ subs r0, r1
+ strh r0, [r6]
+_08051AEC:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8051AC8
+
+ thumb_func_start sub_8051AF4
+sub_8051AF4: @ 8051AF4
+ push {lr}
+ adds r1, r0, 0
+ ldrh r2, [r1]
+ movs r3, 0
+ ldrsh r0, [r1, r3]
+ cmp r0, 0
+ bge _08051B06
+ adds r0, r2, 0x1
+ strh r0, [r1]
+_08051B06:
+ ldrh r2, [r1]
+ movs r3, 0
+ ldrsh r0, [r1, r3]
+ cmp r0, 0
+ ble _08051B14
+ subs r0, r2, 0x1
+ strh r0, [r1]
+_08051B14:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8051AF4
+
+ thumb_func_start sub_8051B18
+sub_8051B18: @ 8051B18
+ push {r4,lr}
+ ldr r4, _08051B3C @ =gUnknown_03004854
+ ldr r0, [r4]
+ movs r1, 0xA2
+ lsls r1, 1
+ adds r0, r1
+ bl sub_8051AF4
+ ldr r0, [r4]
+ movs r1, 0xA3
+ lsls r1, 1
+ adds r0, r1
+ bl sub_8051AF4
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08051B3C: .4byte gUnknown_03004854
+ thumb_func_end sub_8051B18
+
+ thumb_func_start sub_8051B40
+sub_8051B40: @ 8051B40
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ lsls r1, 16
+ lsrs r1, 16
+ movs r5, 0x8
+ cmp r1, 0x9
+ bhi _08051B50
+ movs r5, 0x10
+_08051B50:
+ ldrh r0, [r4]
+ movs r2, 0
+ ldrsh r1, [r4, r2]
+ cmp r1, 0
+ bne _08051B6E
+ bl Random
+ lsls r0, 16
+ lsrs r0, 16
+ adds r1, r5, 0
+ bl __modsi3
+ lsrs r1, r5, 1
+ subs r0, r1
+ b _08051B82
+_08051B6E:
+ cmp r1, 0
+ bge _08051B76
+ adds r0, 0x1
+ strh r0, [r4]
+_08051B76:
+ ldrh r1, [r4]
+ movs r2, 0
+ ldrsh r0, [r4, r2]
+ cmp r0, 0
+ ble _08051B84
+ subs r0, r1, 0x1
+_08051B82:
+ strh r0, [r4]
+_08051B84:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8051B40
+
+ thumb_func_start sub_8051B8C
+sub_8051B8C: @ 8051B8C
+ push {r4,r5,lr}
+ ldr r5, _08051BE4 @ =gUnknown_03004854
+ ldr r2, [r5]
+ movs r4, 0x98
+ lsls r4, 1
+ adds r0, r2, r4
+ ldr r1, [r0]
+ cmp r1, 0
+ bne _08051BAC
+ movs r3, 0xA2
+ lsls r3, 1
+ adds r0, r2, r3
+ strh r1, [r0]
+ adds r3, 0x2
+ adds r0, r2, r3
+ strh r1, [r0]
+_08051BAC:
+ ldr r0, [r5]
+ adds r2, r0, r4
+ ldr r1, [r2]
+ adds r1, 0x1
+ str r1, [r2]
+ movs r2, 0xA2
+ lsls r2, 1
+ adds r0, r2
+ lsls r1, 16
+ lsrs r1, 16
+ bl sub_8051B40
+ ldr r1, [r5]
+ movs r3, 0xA3
+ lsls r3, 1
+ adds r0, r1, r3
+ adds r1, r4
+ ldrh r1, [r1]
+ bl sub_8051B40
+ ldr r2, [r5]
+ adds r0, r2, r4
+ ldr r0, [r0]
+ cmp r0, 0x14
+ beq _08051BE8
+ movs r0, 0
+ b _08051BFC
+ .align 2, 0
+_08051BE4: .4byte gUnknown_03004854
+_08051BE8:
+ movs r1, 0xA2
+ lsls r1, 1
+ adds r0, r2, r1
+ movs r1, 0
+ strh r1, [r0]
+ movs r3, 0xA3
+ lsls r3, 1
+ adds r0, r2, r3
+ strh r1, [r0]
+ movs r0, 0x1
+_08051BFC:
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8051B8C
+
+ thumb_func_start sub_8051C04
+sub_8051C04: @ 8051C04
+ ldr r1, _08051C20 @ =gUnknown_03004854
+ ldr r2, [r1]
+ movs r3, 0xA2
+ lsls r3, 1
+ adds r1, r2, r3
+ ldrh r1, [r1]
+ negs r1, r1
+ strh r1, [r0, 0x24]
+ adds r3, 0x2
+ adds r1, r2, r3
+ ldrh r1, [r1]
+ negs r1, r1
+ strh r1, [r0, 0x26]
+ bx lr
+ .align 2, 0
+_08051C20: .4byte gUnknown_03004854
+ thumb_func_end sub_8051C04
+
+ thumb_func_start sub_8051C24
+sub_8051C24: @ 8051C24
+ push {lr}
+ ldr r2, _08051C4C @ =gSaveBlock1
+ ldr r0, _08051C50 @ =gUnknown_03004854
+ ldr r1, [r0]
+ adds r0, r1, 0
+ adds r0, 0x88
+ ldrb r0, [r0]
+ subs r0, 0x2
+ lsls r0, 1
+ ldr r3, _08051C54 @ =0x0000096c
+ adds r2, r3
+ adds r2, r0, r2
+ adds r1, 0x5A
+ ldrh r1, [r1]
+ ldrh r0, [r2]
+ cmp r0, r1
+ bcs _08051C48
+ strh r1, [r2]
+_08051C48:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08051C4C: .4byte gSaveBlock1
+_08051C50: .4byte gUnknown_03004854
+_08051C54: .4byte 0x0000096c
+ thumb_func_end sub_8051C24
+
+ thumb_func_start sub_8051C58
+sub_8051C58: @ 8051C58
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x34
+ ldr r1, _08051C7C @ =gUnknown_03004854
+ ldr r0, [r1]
+ ldrb r0, [r0]
+ adds r2, r1, 0
+ cmp r0, 0x6
+ bls _08051C72
+ b _08052006
+_08051C72:
+ lsls r0, 2
+ ldr r1, _08051C80 @ =_08051C84
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_08051C7C: .4byte gUnknown_03004854
+_08051C80: .4byte _08051C84
+ .align 2, 0
+_08051C84:
+ .4byte _08051CA0
+ .4byte _08051CB6
+ .4byte _08051CD0
+ .4byte _08051D20
+ .4byte _08051F40
+ .4byte _08051F54
+ .4byte _08051FF4
+_08051CA0:
+ ldr r1, [r2]
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+ ldr r0, [r2]
+ movs r1, 0x98
+ lsls r1, 1
+ adds r0, r1
+ movs r1, 0x11
+ str r1, [r0]
+ b _08052006
+_08051CB6:
+ ldr r1, [r2]
+ movs r0, 0x98
+ lsls r0, 1
+ adds r2, r1, r0
+ ldr r0, [r2]
+ subs r0, 0xA
+ str r0, [r2]
+ cmp r0, 0
+ blt _08051CCA
+ b _08052006
+_08051CCA:
+ movs r0, 0
+ str r0, [r2]
+ b _08051FDE
+_08051CD0:
+ ldr r1, [r2]
+ movs r2, 0x98
+ lsls r2, 1
+ adds r1, r2
+ ldr r0, [r1]
+ adds r0, 0x1
+ str r0, [r1]
+ cmp r0, 0x14
+ bgt _08051CE4
+ b _08052006
+_08051CE4:
+ movs r6, 0
+_08051CE6:
+ ldr r4, _08051D18 @ =gUnknown_03004854
+ ldr r0, [r4]
+ adds r0, 0x50
+ adds r0, r6
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _08051D1C @ =gSprites
+ adds r0, r1
+ bl DestroySprite
+ adds r0, r6, 0x1
+ lsls r0, 16
+ lsrs r6, r0, 16
+ cmp r6, 0x2
+ bls _08051CE6
+ ldr r1, [r4]
+ movs r0, 0x98
+ lsls r0, 1
+ adds r2, r1, r0
+ movs r0, 0
+ str r0, [r2]
+ b _08051FDE
+ .align 2, 0
+_08051D18: .4byte gUnknown_03004854
+_08051D1C: .4byte gSprites
+_08051D20:
+ movs r0, 0x4
+ movs r1, 0x2
+ movs r2, 0x19
+ movs r3, 0x11
+ bl MenuDrawTextWindow
+ ldr r0, _08051F10 @ =gOtherText_ResultsOfBlending
+ movs r1, 0x5
+ movs r2, 0x3
+ movs r3, 0xA0
+ bl sub_8072BD8
+ movs r6, 0
+ ldr r1, _08051F14 @ =gUnknown_03004854
+ ldr r0, [r1]
+ adds r0, 0x88
+ add r2, sp, 0xC
+ mov r9, r2
+ mov r2, sp
+ adds r2, 0x16
+ str r2, [sp, 0x30]
+ ldrb r0, [r0]
+ cmp r6, r0
+ bcs _08051E04
+ mov r8, r1
+ ldr r0, _08051F18 @ =gLinkPlayers
+ mov r10, r0
+_08051D56:
+ mov r1, r8
+ ldr r2, [r1]
+ movs r1, 0xB2
+ lsls r1, 1
+ adds r0, r2, r1
+ adds r0, r6
+ ldrb r5, [r0]
+ mov r7, r9
+ lsls r1, r5, 4
+ adds r1, r2
+ movs r2, 0xBF
+ lsls r2, 1
+ adds r1, r2
+ adds r0, r7, 0
+ bl StringCopy
+ lsls r4, r5, 3
+ subs r4, r5
+ lsls r4, 2
+ mov r1, r10
+ adds r0, r4, r1
+ ldrb r1, [r0, 0x1A]
+ adds r0, r7, 0
+ bl ConvertInternationalString
+ adds r0, r7, 0
+ ldr r1, _08051F1C @ =gOtherText_Berry
+ bl de_sub_8073174
+ mov r2, r8
+ ldr r0, [r2]
+ adds r7, r0, 0
+ adds r7, 0xAB
+ adds r5, r6, 0x1
+ adds r0, r7, 0
+ adds r1, r5, 0
+ bl ConvertIntToDecimalString
+ adds r7, r0, 0
+ movs r1, 0
+ strb r1, [r7]
+ movs r0, 0xAD
+ strb r0, [r7, 0x1]
+ strb r1, [r7, 0x2]
+ adds r7, 0x3
+ ldr r0, _08051F20 @ =gLinkPlayers + 0x8
+ adds r4, r0
+ adds r0, r7, 0
+ adds r1, r4, 0
+ movs r2, 0x58
+ movs r3, 0
+ bl sub_8072C74
+ adds r7, r0, 0
+ add r1, sp, 0xC
+ movs r2, 0x9D
+ movs r3, 0
+ bl sub_8072C74
+ mov r2, r8
+ ldr r1, [r2]
+ adds r0, r1, 0
+ adds r0, 0xAB
+ ldr r3, _08051F24 @ =gUnknown_082165E9
+ adds r1, 0x88
+ ldrb r2, [r1]
+ adds r3, r2, r3
+ ldr r1, _08051F28 @ =gUnknown_082165EE
+ adds r2, r1
+ ldrb r1, [r2]
+ adds r2, r6, 0
+ muls r2, r1
+ ldrb r3, [r3]
+ adds r2, r3
+ lsls r2, 24
+ lsrs r2, 24
+ movs r1, 0x5
+ bl MenuPrint
+ lsls r5, 16
+ lsrs r6, r5, 16
+ mov r1, r8
+ ldr r0, [r1]
+ adds r0, 0x88
+ ldrb r0, [r0]
+ cmp r6, r0
+ bcc _08051D56
+_08051E04:
+ ldr r6, _08051F14 @ =gUnknown_03004854
+ ldr r0, [r6]
+ adds r0, 0x5A
+ ldrh r0, [r0]
+ movs r1, 0x64
+ bl __umodsi3
+ adds r1, r0, 0
+ lsls r1, 16
+ lsrs r1, 16
+ mov r0, r9
+ movs r2, 0x2
+ movs r3, 0x2
+ bl ConvertIntToDecimalStringN
+ ldr r0, [r6]
+ adds r7, r0, 0
+ adds r7, 0xAB
+ ldr r1, _08051F2C @ =gOtherText_MaxSpeed
+ adds r0, r7, 0
+ bl StringCopy
+ adds r7, r0, 0
+ ldr r0, [r6]
+ adds r0, 0x5A
+ ldrh r0, [r0]
+ movs r1, 0x64
+ bl __udivsi3
+ adds r1, r0, 0
+ lsls r1, 16
+ lsrs r1, 16
+ adds r0, r7, 0
+ movs r2, 0x79
+ movs r3, 0x1
+ bl sub_8072C14
+ adds r7, r0, 0
+ movs r0, 0xB8
+ strb r0, [r7]
+ adds r7, 0x1
+ adds r0, r7, 0
+ mov r1, r9
+ movs r2, 0x88
+ movs r3, 0x1
+ bl sub_8072C74
+ adds r7, r0, 0
+ ldr r1, _08051F30 @ =gOtherText_RPM
+ bl StringCopy
+ ldr r0, [r6]
+ adds r0, 0xAB
+ movs r1, 0x5
+ movs r2, 0xD
+ bl MenuPrint
+ ldr r0, [r6]
+ movs r2, 0x96
+ lsls r2, 1
+ adds r0, r2
+ ldr r0, [r0]
+ movs r1, 0x3C
+ bl __udivsi3
+ adds r4, r0, 0
+ lsls r4, 16
+ lsrs r4, 16
+ adds r0, r4, 0
+ movs r1, 0x3C
+ bl __umodsi3
+ adds r5, r0, 0
+ lsls r5, 16
+ lsrs r5, 16
+ adds r0, r4, 0
+ movs r1, 0x3C
+ bl __udivsi3
+ adds r1, r0, 0
+ lsls r1, 16
+ lsrs r1, 16
+ mov r0, r9
+ movs r2, 0x2
+ movs r3, 0x2
+ bl ConvertIntToDecimalStringN
+ ldr r0, [sp, 0x30]
+ adds r1, r5, 0
+ movs r2, 0x2
+ movs r3, 0x2
+ bl ConvertIntToDecimalStringN
+ ldr r0, [r6]
+ adds r7, r0, 0
+ adds r7, 0xAB
+ ldr r1, _08051F34 @ =gOtherText_RequiredTime
+ adds r0, r7, 0
+ bl StringCopy
+ adds r7, r0, 0
+ mov r1, r9
+ movs r2, 0x63
+ movs r3, 0x1
+ bl sub_8072C74
+ adds r7, r0, 0
+ ldr r1, _08051F38 @ =gOtherText_Min
+ bl StringAppend
+ adds r7, r0, 0
+ ldr r1, [sp, 0x30]
+ movs r2, 0x88
+ movs r3, 0x1
+ bl sub_8072C74
+ adds r7, r0, 0
+ ldr r1, _08051F3C @ =gOtherText_Sec
+ bl StringCopy
+ ldr r0, [r6]
+ adds r0, 0xAB
+ movs r1, 0x5
+ movs r2, 0xF
+ bl MenuPrint
+ ldr r1, [r6]
+ movs r0, 0x98
+ lsls r0, 1
+ adds r2, r1, r0
+ movs r0, 0
+ str r0, [r2]
+ b _08051FDE
+ .align 2, 0
+_08051F10: .4byte gOtherText_ResultsOfBlending
+_08051F14: .4byte gUnknown_03004854
+_08051F18: .4byte gLinkPlayers
+_08051F1C: .4byte gOtherText_Berry
+_08051F20: .4byte gLinkPlayers + 0x8
+_08051F24: .4byte gUnknown_082165E9
+_08051F28: .4byte gUnknown_082165EE
+_08051F2C: .4byte gOtherText_MaxSpeed
+_08051F30: .4byte gOtherText_RPM
+_08051F34: .4byte gOtherText_RequiredTime
+_08051F38: .4byte gOtherText_Min
+_08051F3C: .4byte gOtherText_Sec
+_08051F40:
+ ldr r0, _08051F50 @ =gMain
+ ldrh r1, [r0, 0x2E]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _08052006
+ ldr r1, [r2]
+ b _08051FDE
+ .align 2, 0
+_08051F50: .4byte gMain
+_08051F54:
+ bl MenuZeroFillScreen
+ movs r0, 0
+ movs r1, 0xE
+ movs r2, 0x1D
+ movs r3, 0x13
+ bl MenuDrawTextWindow
+ movs r6, 0
+ add r5, sp, 0x28
+ ldr r0, _08051FE8 @ =gUnknown_03004854
+ ldr r0, [r0]
+ adds r3, r0, 0
+ adds r3, 0x80
+ add r2, sp, 0x20
+_08051F72:
+ lsls r1, r6, 1
+ adds r0, r3, r1
+ ldrh r0, [r0]
+ cmp r0, 0
+ beq _08051F82
+ adds r1, r2, r1
+ subs r0, 0x85
+ strh r0, [r1]
+_08051F82:
+ adds r0, r6, 0x1
+ lsls r0, 16
+ lsrs r6, r0, 16
+ cmp r6, 0x3
+ bls _08051F72
+ bl sub_8050760
+ ldr r4, _08051FE8 @ =gUnknown_03004854
+ ldr r3, [r4]
+ movs r1, 0xBE
+ lsls r1, 1
+ adds r0, r3, r1
+ adds r1, r3, 0
+ adds r1, 0x88
+ ldrb r2, [r1]
+ subs r1, 0x2E
+ ldrh r1, [r1]
+ str r1, [sp]
+ adds r1, r5, 0
+ add r3, sp, 0x4
+ bl sub_8050520
+ ldr r1, [r4]
+ adds r1, 0xAB
+ adds r0, r5, 0
+ bl sub_805201C
+ ldr r0, _08051FEC @ =sub_8052BD0
+ movs r1, 0x6
+ bl CreateTask
+ ldr r0, [r4]
+ adds r0, 0xAB
+ movs r1, 0x1
+ movs r2, 0xF
+ bl MenuPrintMessage
+ ldr r0, _08051FF0 @ =gScriptItemId
+ ldrh r0, [r0]
+ movs r1, 0x1
+ bl RemoveBagItem
+ adds r0, r5, 0
+ bl sub_810CA34
+ ldr r1, [r4]
+_08051FDE:
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+ b _08052006
+ .align 2, 0
+_08051FE8: .4byte gUnknown_03004854
+_08051FEC: .4byte sub_8052BD0
+_08051FF0: .4byte gScriptItemId
+_08051FF4:
+ bl MenuUpdateWindowText
+ lsls r0, 24
+ cmp r0, 0
+ beq _08052006
+ bl sub_8051C24
+ movs r0, 0x1
+ b _08052008
+_08052006:
+ movs r0, 0
+_08052008:
+ add sp, 0x34
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8051C58
+
+ thumb_func_start sub_805201C
+sub_805201C: @ 805201C
+ push {r4-r6,lr}
+ sub sp, 0xC
+ adds r5, r0, 0
+ adds r6, r1, 0
+ movs r0, 0xFF
+ strb r0, [r6]
+ ldr r1, _080520B0 @ =gPokeblockNames
+ ldrb r0, [r5]
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, [r0]
+ adds r0, r6, 0
+ bl StringCopy
+ ldr r1, _080520B4 @ =gOtherText_PokeBlockMade
+ adds r0, r6, 0
+ bl de_sub_8073174
+ ldr r1, _080520B8 @ =gUnknown_082162C8
+ adds r0, r6, 0
+ bl StringAppend
+ adds r0, r5, 0
+ bl sub_810C9B0
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ adds r0, r5, 0
+ bl sub_810C9E8
+ adds r5, r0, 0
+ lsls r5, 24
+ lsrs r5, 24
+ ldr r1, _080520BC @ =gOtherText_BlockLevelIs
+ adds r0, r6, 0
+ bl StringAppend
+ mov r0, sp
+ adds r1, r4, 0
+ movs r2, 0
+ movs r3, 0x3
+ bl ConvertIntToDecimalStringN
+ adds r0, r6, 0
+ mov r1, sp
+ bl StringAppend
+ ldr r1, _080520C0 @ =gOtherText_BlockFeelIs
+ adds r0, r6, 0
+ bl StringAppend
+ mov r0, sp
+ adds r1, r5, 0
+ movs r2, 0
+ movs r3, 0x3
+ bl ConvertIntToDecimalStringN
+ adds r0, r6, 0
+ mov r1, sp
+ bl StringAppend
+ ldr r1, _080520C4 @ =gOtherText_Period
+ adds r0, r6, 0
+ bl StringAppend
+ ldr r1, _080520C8 @ =gUnknown_08216249
+ adds r0, r6, 0
+ bl StringAppend
+ add sp, 0xC
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080520B0: .4byte gPokeblockNames
+_080520B4: .4byte gOtherText_PokeBlockMade
+_080520B8: .4byte gUnknown_082162C8
+_080520BC: .4byte gOtherText_BlockLevelIs
+_080520C0: .4byte gOtherText_BlockFeelIs
+_080520C4: .4byte gOtherText_Period
+_080520C8: .4byte gUnknown_08216249
+ thumb_func_end sub_805201C
+
+ thumb_func_start sub_80520CC
+sub_80520CC: @ 80520CC
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ mov r9, r0
+ mov r12, r2
+ lsls r1, 24
+ lsrs r7, r1, 24
+ movs r0, 0
+ cmp r0, r7
+ bge _08052118
+_080520E2:
+ movs r5, 0
+ adds r1, r0, 0x1
+ mov r8, r1
+ cmp r5, r7
+ bge _08052112
+ mov r1, r9
+ adds r6, r1, r0
+_080520F0:
+ ldrb r4, [r6]
+ lsls r1, r4, 2
+ add r1, r12
+ mov r0, r9
+ adds r2, r0, r5
+ ldrb r3, [r2]
+ lsls r0, r3, 2
+ add r0, r12
+ ldr r1, [r1]
+ ldr r0, [r0]
+ cmp r1, r0
+ bls _0805210C
+ strb r3, [r6]
+ strb r4, [r2]
+_0805210C:
+ adds r5, 0x1
+ cmp r5, r7
+ blt _080520F0
+_08052112:
+ mov r0, r8
+ cmp r0, r7
+ blt _080520E2
+_08052118:
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80520CC
+
+ thumb_func_start sub_8052124
+sub_8052124: @ 8052124
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x18
+ movs r5, 0
+ ldr r1, _08052144 @ =gUnknown_03004854
+ ldr r0, [r1]
+ adds r0, 0x88
+ mov r10, r1
+ mov r2, sp
+ adds r2, 0x4
+ str r2, [sp, 0x14]
+ b _08052158
+ .align 2, 0
+_08052144: .4byte gUnknown_03004854
+_08052148:
+ mov r4, sp
+ adds r0, r4, r5
+ strb r5, [r0]
+ adds r0, r5, 0x1
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldr r0, [r1]
+ adds r0, 0x88
+_08052158:
+ ldrb r0, [r0]
+ cmp r5, r0
+ bcc _08052148
+ movs r5, 0
+ mov r1, r10
+ ldr r0, [r1]
+ adds r1, r0, 0
+ adds r1, 0x88
+ ldrb r2, [r1]
+ cmp r5, r2
+ bcs _080521D6
+ ldr r4, [sp, 0x14]
+ mov r9, r4
+ movs r2, 0xA6
+ lsls r2, 1
+ adds r2, r0
+ mov r8, r2
+ mov r12, r1
+ movs r4, 0xA7
+ lsls r4, 1
+ adds r7, r0, r4
+ movs r1, 0xA8
+ lsls r1, 1
+ adds r6, r0, r1
+_08052188:
+ lsls r4, r5, 2
+ add r4, r9
+ lsls r3, r5, 1
+ adds r3, r5
+ lsls r3, 1
+ mov r2, r8
+ adds r0, r2, r3
+ ldrh r2, [r0]
+ lsls r0, r2, 5
+ subs r0, r2
+ lsls r1, r0, 6
+ subs r1, r0
+ lsls r1, 3
+ adds r1, r2
+ lsls r1, 6
+ str r1, [r4]
+ adds r0, r7, r3
+ ldrh r2, [r0]
+ lsls r0, r2, 5
+ subs r0, r2
+ lsls r0, 2
+ adds r0, r2
+ lsls r0, 3
+ adds r1, r0
+ str r1, [r4]
+ movs r0, 0xFA
+ lsls r0, 2
+ adds r1, r0
+ adds r3, r6, r3
+ ldrh r0, [r3]
+ subs r1, r0
+ str r1, [r4]
+ adds r0, r5, 0x1
+ lsls r0, 24
+ lsrs r5, r0, 24
+ mov r1, r12
+ ldrb r1, [r1]
+ cmp r5, r1
+ bcc _08052188
+_080521D6:
+ mov r2, r10
+ ldr r0, [r2]
+ adds r0, 0x88
+ ldrb r1, [r0]
+ mov r0, sp
+ ldr r2, [sp, 0x14]
+ bl sub_80520CC
+ movs r5, 0
+ mov r4, r10
+ ldr r0, [r4]
+ adds r0, 0x88
+ ldrb r0, [r0]
+ cmp r5, r0
+ bcs _08052218
+ mov r2, r10
+ movs r3, 0xB2
+ lsls r3, 1
+_080521FA:
+ ldr r1, [r2]
+ adds r1, r3
+ adds r1, r5
+ mov r4, sp
+ adds r0, r4, r5
+ ldrb r0, [r0]
+ strb r0, [r1]
+ adds r0, r5, 0x1
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldr r0, [r2]
+ adds r0, 0x88
+ ldrb r0, [r0]
+ cmp r5, r0
+ bcc _080521FA
+_08052218:
+ add sp, 0x18
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8052124
+
+ thumb_func_start sub_8052228
+sub_8052228: @ 8052228
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ ldr r1, _08052248 @ =gUnknown_03004854
+ ldr r0, [r1]
+ ldrb r0, [r0]
+ adds r2, r1, 0
+ cmp r0, 0x6
+ bls _0805223C
+ b _080524AE
+_0805223C:
+ lsls r0, 2
+ ldr r1, _0805224C @ =_08052250
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_08052248: .4byte gUnknown_03004854
+_0805224C: .4byte _08052250
+ .align 2, 0
+_08052250:
+ .4byte _0805226C
+ .4byte _08052282
+ .4byte _0805229C
+ .4byte _080522B6
+ .4byte _08052464
+ .4byte _0805247E
+ .4byte _080524A4
+_0805226C:
+ ldr r1, [r2]
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+ ldr r0, [r2]
+ movs r1, 0x98
+ lsls r1, 1
+ adds r0, r1
+ movs r1, 0xFF
+ str r1, [r0]
+ b _080524AE
+_08052282:
+ ldr r1, [r2]
+ movs r0, 0x98
+ lsls r0, 1
+ adds r2, r1, r0
+ ldr r0, [r2]
+ subs r0, 0xA
+ str r0, [r2]
+ cmp r0, 0
+ blt _08052296
+ b _080524AE
+_08052296:
+ movs r0, 0
+ str r0, [r2]
+ b _08052494
+_0805229C:
+ ldr r1, [r2]
+ movs r0, 0x98
+ lsls r0, 1
+ adds r2, r1, r0
+ ldr r0, [r2]
+ adds r0, 0x1
+ str r0, [r2]
+ cmp r0, 0x14
+ bgt _080522B0
+ b _080524AE
+_080522B0:
+ movs r0, 0
+ str r0, [r2]
+ b _08052494
+_080522B6:
+ movs r0, 0x4
+ movs r1, 0x2
+ movs r2, 0x19
+ movs r3, 0x11
+ bl MenuDrawTextWindow
+ ldr r0, _0805236C @ =gOtherText_Ranking
+ movs r1, 0x5
+ movs r2, 0x3
+ movs r3, 0xA0
+ bl sub_8072BD8
+ ldr r6, _08052370 @ =gSpriteTemplate_821645C
+ adds r0, r6, 0
+ movs r1, 0x8C
+ movs r2, 0x34
+ movs r3, 0
+ bl CreateSprite
+ ldr r7, _08052374 @ =gUnknown_03004854
+ ldr r1, [r7]
+ adds r1, 0x50
+ strb r0, [r1]
+ ldr r1, _08052378 @ =gSprites
+ mov r8, r1
+ ldr r2, [r7]
+ adds r2, 0x50
+ ldrb r1, [r2]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ mov r5, r8
+ adds r5, 0x1C
+ adds r0, r5
+ ldr r4, _0805237C @ =SpriteCallbackDummy
+ str r4, [r0]
+ ldrb r1, [r2]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ add r0, r8
+ movs r1, 0x3
+ bl StartSpriteAnim
+ adds r0, r6, 0
+ movs r1, 0xA4
+ movs r2, 0x34
+ movs r3, 0
+ bl CreateSprite
+ ldr r1, [r7]
+ adds r1, 0x51
+ strb r0, [r1]
+ ldr r0, [r7]
+ adds r0, 0x51
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ str r4, [r0]
+ adds r0, r6, 0
+ movs r1, 0xBC
+ movs r2, 0x34
+ movs r3, 0
+ bl CreateSprite
+ ldr r1, [r7]
+ adds r1, 0x52
+ strb r0, [r1]
+ ldr r2, [r7]
+ adds r2, 0x52
+ ldrb r1, [r2]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ str r4, [r0]
+ ldrb r1, [r2]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ add r0, r8
+ movs r1, 0x1
+ bl StartSpriteAnim
+ bl sub_8052124
+ movs r2, 0
+ mov r8, r2
+ b _0805243C
+ .align 2, 0
+_0805236C: .4byte gOtherText_Ranking
+_08052370: .4byte gSpriteTemplate_821645C
+_08052374: .4byte gUnknown_03004854
+_08052378: .4byte gSprites
+_0805237C: .4byte SpriteCallbackDummy
+_08052380:
+ ldr r1, [r7]
+ movs r2, 0xB2
+ lsls r2, 1
+ adds r0, r1, r2
+ add r0, r8
+ ldrb r5, [r0]
+ adds r2, r1, 0
+ adds r2, 0xAB
+ movs r0, 0xFC
+ strb r0, [r2]
+ movs r0, 0x13
+ strb r0, [r2, 0x1]
+ movs r0, 0x4
+ strb r0, [r2, 0x2]
+ adds r2, 0x3
+ mov r6, r8
+ adds r6, 0x1
+ adds r0, r2, 0
+ adds r1, r6, 0
+ bl ConvertIntToDecimalString
+ adds r2, r0, 0
+ movs r1, 0
+ strb r1, [r2]
+ movs r0, 0xAD
+ strb r0, [r2, 0x1]
+ strb r1, [r2, 0x2]
+ adds r2, 0x3
+ lsls r1, r5, 3
+ subs r1, r5
+ lsls r1, 2
+ ldr r0, _08052458 @ =gLinkPlayers + 0x8
+ adds r1, r0
+ adds r0, r2, 0
+ bl StringCopy
+ adds r2, r0, 0
+ ldr r0, [r7]
+ lsls r4, r5, 1
+ adds r4, r5
+ lsls r4, 1
+ movs r1, 0xA6
+ lsls r1, 1
+ adds r0, r1
+ adds r0, r4
+ ldrh r1, [r0]
+ adds r0, r2, 0
+ movs r2, 0x6C
+ movs r3, 0x1
+ bl sub_8072C14
+ adds r2, r0, 0
+ ldr r0, [r7]
+ movs r1, 0xA7
+ lsls r1, 1
+ adds r0, r1
+ adds r0, r4
+ ldrh r1, [r0]
+ adds r0, r2, 0
+ movs r2, 0x84
+ movs r3, 0x1
+ bl sub_8072C14
+ adds r2, r0, 0
+ ldr r0, [r7]
+ movs r1, 0xA8
+ lsls r1, 1
+ adds r0, r1
+ adds r0, r4
+ ldrh r1, [r0]
+ adds r0, r2, 0
+ movs r2, 0x9C
+ movs r3, 0x1
+ bl sub_8072C14
+ ldr r1, [r7]
+ adds r0, r1, 0
+ adds r0, 0xAB
+ ldr r2, _0805245C @ =gUnknown_082165F3
+ adds r1, 0x88
+ ldrb r1, [r1]
+ adds r1, r2
+ ldrb r1, [r1]
+ mov r2, r8
+ muls r2, r1
+ adds r2, 0x8
+ lsls r2, 24
+ lsrs r2, 24
+ movs r1, 0x5
+ bl MenuPrint
+ lsls r6, 16
+ lsrs r6, 16
+ mov r8, r6
+_0805243C:
+ ldr r0, [r7]
+ adds r0, 0x88
+ ldrb r0, [r0]
+ cmp r8, r0
+ bcc _08052380
+ ldr r0, _08052460 @ =gUnknown_03004854
+ ldr r1, [r0]
+ movs r0, 0x98
+ lsls r0, 1
+ adds r2, r1, r0
+ movs r0, 0
+ str r0, [r2]
+ b _08052494
+ .align 2, 0
+_08052458: .4byte gLinkPlayers + 0x8
+_0805245C: .4byte gUnknown_082165F3
+_08052460: .4byte gUnknown_03004854
+_08052464:
+ ldr r2, [r2]
+ movs r0, 0x98
+ lsls r0, 1
+ adds r1, r2, r0
+ ldr r0, [r1]
+ adds r0, 0x1
+ str r0, [r1]
+ cmp r0, 0x14
+ ble _080524AE
+ ldrb r0, [r2]
+ adds r0, 0x1
+ strb r0, [r2]
+ b _080524AE
+_0805247E:
+ ldr r0, _0805249C @ =gMain
+ ldrh r1, [r0, 0x2E]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _080524AE
+ movs r0, 0x5
+ bl PlaySE
+ ldr r0, _080524A0 @ =gUnknown_03004854
+ ldr r1, [r0]
+_08052494:
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+ b _080524AE
+ .align 2, 0
+_0805249C: .4byte gMain
+_080524A0: .4byte gUnknown_03004854
+_080524A4:
+ ldr r1, [r2]
+ movs r0, 0
+ strb r0, [r1]
+ movs r0, 0x1
+ b _080524B0
+_080524AE:
+ movs r0, 0
+_080524B0:
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8052228
+
+ thumb_func_start unref_sub_80524BC
+unref_sub_80524BC: @ 80524BC
+ push {r4,lr}
+ bl ResetSpriteData
+ bl FreeAllSpritePalettes
+ bl ResetTasks
+ ldr r0, _0805251C @ =sub_804E2D8
+ bl SetVBlankCallback
+ ldr r4, _08052520 @ =gWindowConfig_81E6CE4
+ adds r0, r4, 0
+ bl SetUpWindowConfig
+ adds r0, r4, 0
+ bl InitMenuWindow
+ ldr r0, _08052524 @ =gMain
+ ldrh r0, [r0, 0x20]
+ bl SeedRng
+ movs r1, 0x80
+ lsls r1, 19
+ movs r2, 0xAA
+ lsls r2, 5
+ adds r0, r2, 0
+ strh r0, [r1]
+ bl RunTasks
+ bl AnimateSprites
+ bl BuildOamBuffer
+ bl UpdatePaletteFade
+ ldr r1, _08052528 @ =gUnknown_03000560
+ movs r0, 0xFA
+ lsls r0, 5
+ strh r0, [r1, 0x1A]
+ ldrb r0, [r1, 0x10]
+ adds r0, 0x1
+ strb r0, [r1, 0x10]
+ ldr r0, _0805252C @ =sub_8052AF8
+ bl SetMainCallback2
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0805251C: .4byte sub_804E2D8
+_08052520: .4byte gWindowConfig_81E6CE4
+_08052524: .4byte gMain
+_08052528: .4byte gUnknown_03000560
+_0805252C: .4byte sub_8052AF8
+ thumb_func_end unref_sub_80524BC
+
+ thumb_func_start sub_8052530
+sub_8052530: @ 8052530
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x98
+ ldr r1, _080525C8 @ =gOtherText_BPMAndDash
+ mov r0, sp
+ bl StringCopy
+ mov r0, sp
+ movs r1, 0x2
+ movs r2, 0
+ bl MenuPrint
+ ldr r4, _080525CC @ =gUnknown_03000560
+ movs r1, 0x1A
+ ldrsh r0, [r4, r1]
+ movs r1, 0x64
+ bl __divsi3
+ adds r1, r0, 0
+ lsls r1, 16
+ asrs r1, 16
+ mov r0, sp
+ movs r2, 0x2
+ movs r3, 0x3
+ bl ConvertIntToDecimalStringN
+ mov r0, sp
+ movs r1, 0x6
+ movs r2, 0
+ bl MenuPrint
+ movs r6, 0
+ mov r2, sp
+ adds r2, 0x3
+ str r2, [sp, 0x84]
+ mov r3, sp
+ adds r3, 0x6
+ str r3, [sp, 0x88]
+ mov r0, sp
+ adds r0, 0x9
+ str r0, [sp, 0x8C]
+ mov r1, sp
+ adds r1, 0xC
+ str r1, [sp, 0x90]
+ adds r2, 0xC
+ str r2, [sp, 0x94]
+ mov r8, r4
+ mov r7, sp
+ ldr r3, _080525D0 @ =gBerries
+ mov r9, r3
+ ldr r0, _080525D4 @ =gUnknown_082165F8
+ mov r10, r0
+_0805259E:
+ mov r1, r8
+ movs r0, 0
+ ldrsb r0, [r1, r0]
+ cmp r0, r6
+ bne _080525D8
+ movs r0, 0xEF
+ strb r0, [r7]
+ mov r0, r8
+ adds r0, 0x1
+ adds r0, r6, r0
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ adds r0, 0x85
+ lsls r0, 16
+ lsrs r0, 16
+ mov r1, sp
+ adds r1, 0x1
+ bl CopyItemName
+ b _080525F8
+ .align 2, 0
+_080525C8: .4byte gOtherText_BPMAndDash
+_080525CC: .4byte gUnknown_03000560
+_080525D0: .4byte gBerries
+_080525D4: .4byte gUnknown_082165F8
+_080525D8:
+ mov r0, r8
+ adds r0, 0x1
+ adds r0, r6, r0
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ adds r0, 0x85
+ lsls r0, 16
+ lsrs r0, 16
+ mov r1, sp
+ bl CopyItemName
+ movs r0, 0
+ strb r0, [r7, 0x6]
+ movs r0, 0xFF
+ strb r0, [r7, 0x7]
+_080525F8:
+ lsls r5, r6, 1
+ adds r5, r6
+ adds r5, 0x3
+ lsls r5, 24
+ lsrs r5, 24
+ mov r0, sp
+ movs r1, 0x2
+ adds r2, r5, 0
+ bl MenuPrint
+ mov r4, r8
+ adds r4, 0x1
+ adds r4, r6, r4
+ movs r1, 0
+ ldrsb r1, [r4, r1]
+ lsls r0, r1, 3
+ subs r0, r1
+ lsls r0, 2
+ add r0, r9
+ ldrb r1, [r0, 0x15]
+ mov r0, sp
+ movs r2, 0x2
+ movs r3, 0x2
+ bl ConvertIntToDecimalStringN
+ mov r0, sp
+ mov r1, r10
+ bl StringAppend
+ movs r1, 0
+ ldrsb r1, [r4, r1]
+ lsls r0, r1, 3
+ subs r0, r1
+ lsls r0, 2
+ add r0, r9
+ ldrb r1, [r0, 0x16]
+ ldr r0, [sp, 0x84]
+ movs r2, 0x2
+ movs r3, 0x2
+ bl ConvertIntToDecimalStringN
+ mov r0, sp
+ mov r1, r10
+ bl StringAppend
+ movs r1, 0
+ ldrsb r1, [r4, r1]
+ lsls r0, r1, 3
+ subs r0, r1
+ lsls r0, 2
+ add r0, r9
+ ldrb r1, [r0, 0x17]
+ ldr r0, [sp, 0x88]
+ movs r2, 0x2
+ movs r3, 0x2
+ bl ConvertIntToDecimalStringN
+ mov r0, sp
+ mov r1, r10
+ bl StringAppend
+ movs r1, 0
+ ldrsb r1, [r4, r1]
+ lsls r0, r1, 3
+ subs r0, r1
+ lsls r0, 2
+ add r0, r9
+ ldrb r1, [r0, 0x18]
+ ldr r0, [sp, 0x8C]
+ movs r2, 0x2
+ movs r3, 0x2
+ bl ConvertIntToDecimalStringN
+ mov r0, sp
+ mov r1, r10
+ bl StringAppend
+ movs r1, 0
+ ldrsb r1, [r4, r1]
+ lsls r0, r1, 3
+ subs r0, r1
+ lsls r0, 2
+ add r0, r9
+ ldrb r1, [r0, 0x19]
+ ldr r0, [sp, 0x90]
+ movs r2, 0x2
+ movs r3, 0x2
+ bl ConvertIntToDecimalStringN
+ mov r0, sp
+ mov r1, r10
+ bl StringAppend
+ movs r1, 0
+ ldrsb r1, [r4, r1]
+ lsls r0, r1, 3
+ subs r0, r1
+ lsls r0, 2
+ add r0, r9
+ ldrb r1, [r0, 0x1A]
+ ldr r0, [sp, 0x94]
+ movs r2, 0x2
+ movs r3, 0x2
+ bl ConvertIntToDecimalStringN
+ movs r2, 0x1
+ negs r2, r2
+ add r3, sp, 0x80
+ strb r2, [r3]
+ movs r0, 0xFF
+ strb r0, [r7, 0x11]
+ mov r0, sp
+ movs r1, 0x7
+ adds r2, r5, 0
+ bl MenuPrint
+ adds r0, r6, 0x1
+ lsls r0, 24
+ lsrs r6, r0, 24
+ cmp r6, 0x3
+ bhi _080526EC
+ b _0805259E
+_080526EC:
+ mov r1, r8
+ ldrb r0, [r1, 0x8]
+ cmp r0, 0
+ beq _080527A4
+ ldr r1, _080527B4 @ =gPokeblockNames
+ mov r2, r8
+ ldrb r0, [r2, 0x8]
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, [r0]
+ mov r0, sp
+ bl StringCopy
+ mov r0, sp
+ movs r1, 0x2
+ movs r2, 0xF
+ bl MenuPrint
+ mov r3, r8
+ ldrb r1, [r3, 0x11]
+ mov r0, sp
+ movs r2, 0x2
+ movs r3, 0x2
+ bl ConvertIntToHexStringN
+ ldr r4, _080527B8 @ =gUnknown_082165F8
+ mov r0, sp
+ adds r1, r4, 0
+ bl StringAppend
+ mov r0, r8
+ ldrb r1, [r0, 0x12]
+ ldr r0, [sp, 0x84]
+ movs r2, 0x2
+ movs r3, 0x2
+ bl ConvertIntToHexStringN
+ mov r0, sp
+ adds r1, r4, 0
+ bl StringAppend
+ mov r2, r8
+ ldrb r1, [r2, 0x13]
+ ldr r0, [sp, 0x88]
+ movs r2, 0x2
+ movs r3, 0x2
+ bl ConvertIntToHexStringN
+ mov r0, sp
+ adds r1, r4, 0
+ bl StringAppend
+ mov r3, r8
+ ldrb r1, [r3, 0x14]
+ ldr r0, [sp, 0x8C]
+ movs r2, 0x2
+ movs r3, 0x2
+ bl ConvertIntToHexStringN
+ mov r0, sp
+ adds r1, r4, 0
+ bl StringAppend
+ mov r0, r8
+ ldrb r1, [r0, 0x15]
+ ldr r0, [sp, 0x90]
+ movs r2, 0x2
+ movs r3, 0x2
+ bl ConvertIntToHexStringN
+ mov r0, sp
+ adds r1, r4, 0
+ bl StringAppend
+ mov r2, r8
+ ldrb r1, [r2, 0x16]
+ ldr r0, [sp, 0x94]
+ movs r2, 0x2
+ movs r3, 0x2
+ bl ConvertIntToHexStringN
+ mov r1, sp
+ ldrb r0, [r1, 0x11]
+ add r3, sp, 0x80
+ ldrb r3, [r3]
+ orrs r0, r3
+ strb r0, [r1, 0x11]
+ mov r0, sp
+ movs r1, 0x7
+ movs r2, 0x11
+ bl MenuPrint
+_080527A4:
+ add sp, 0x98
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080527B4: .4byte gPokeblockNames
+_080527B8: .4byte gUnknown_082165F8
+ thumb_func_end sub_8052530
+
+ thumb_func_start sub_80527BC
+sub_80527BC: @ 80527BC
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ sub sp, 0x58
+ ldr r0, _08052844 @ =gUnknown_020297DC
+ ldrb r0, [r0]
+ add r6, sp, 0x48
+ cmp r0, 0x1
+ bne _08052814
+ movs r1, 0
+ ldr r3, _08052848 @ =gUnknown_03004840
+ movs r2, 0
+_080527D6:
+ lsls r0, r1, 1
+ adds r0, r3
+ strh r2, [r0]
+ adds r0, r1, 0x1
+ lsls r0, 16
+ lsrs r1, r0, 16
+ cmp r1, 0x9
+ bls _080527D6
+ bl Random
+ ldr r1, _0805284C @ =gUnknown_03004830
+ strh r0, [r1]
+ ldr r1, _08052850 @ =gUnknown_020297E0
+ movs r0, 0
+ str r0, [r1]
+ ldr r1, _08052844 @ =gUnknown_020297DC
+ movs r0, 0x2
+ strb r0, [r1]
+ movs r4, 0
+ ldr r2, _08052854 @ =0x02000000
+ movs r1, 0
+_08052800:
+ adds r0, r4, r2
+ strb r1, [r0]
+ adds r0, r4, 0x1
+ lsls r0, 16
+ lsrs r4, r0, 16
+ cmp r4, 0xC7
+ bls _08052800
+ ldr r1, _08052858 @ =gUnknown_020297E8
+ movs r0, 0
+ strb r0, [r1]
+_08052814:
+ movs r4, 0
+ movs r0, 0x1
+ mov r8, r0
+ ldr r7, _08052858 @ =gUnknown_020297E8
+ ldr r5, _08052850 @ =gUnknown_020297E0
+ ldr r1, _08052854 @ =0x02000000
+ mov r9, r1
+ ldr r3, _0805285C @ =gUnknown_020297E4
+_08052824:
+ str r3, [sp, 0x54]
+ bl Random
+ lsls r0, 16
+ lsrs r0, 31
+ mov r1, r8
+ ands r0, r1
+ ldr r3, [sp, 0x54]
+ ldrb r1, [r7]
+ cmp r0, r1
+ bne _08052860
+ ldr r0, [r5]
+ adds r0, 0x1
+ str r0, [r5]
+ b _0805287A
+ .align 2, 0
+_08052844: .4byte gUnknown_020297DC
+_08052848: .4byte gUnknown_03004840
+_0805284C: .4byte gUnknown_03004830
+_08052850: .4byte gUnknown_020297E0
+_08052854: .4byte 0x02000000
+_08052858: .4byte gUnknown_020297E8
+_0805285C: .4byte gUnknown_020297E4
+_08052860:
+ ldr r2, [r3]
+ lsls r0, r2, 1
+ add r0, r9
+ ldr r1, [r5]
+ strh r1, [r0]
+ adds r2, 0x1
+ str r2, [r3]
+ movs r0, 0
+ str r0, [r5]
+ ldrb r0, [r7]
+ mov r1, r8
+ eors r0, r1
+ strb r0, [r7]
+_0805287A:
+ adds r0, r4, 0x1
+ lsls r0, 16
+ lsrs r4, r0, 16
+ cmp r4, 0x63
+ bls _08052824
+ mov r1, sp
+ movs r0, 0xFF
+ strb r0, [r1]
+ ldr r0, _08052900 @ =gUnknown_03004830
+ ldrh r1, [r0]
+ adds r0, r6, 0
+ movs r2, 0x2
+ movs r3, 0x8
+ bl ConvertIntToHexStringN
+ mov r0, sp
+ adds r1, r6, 0
+ bl StringAppend
+ ldr r1, _08052904 @ =gUnknown_082165F8
+ mov r0, sp
+ bl StringAppend
+ ldr r0, _08052908 @ =gUnknown_020297E0
+ ldr r1, [r0]
+ adds r0, r6, 0
+ movs r2, 0x2
+ movs r3, 0x8
+ bl ConvertIntToHexStringN
+ mov r0, sp
+ adds r1, r6, 0
+ bl StringAppend
+ ldr r1, _0805290C @ =gUnknown_08216600
+ mov r0, sp
+ bl StringAppend
+ ldr r4, _08052910 @ =gUnknown_020297DC
+ ldrb r0, [r4]
+ cmp r0, 0x3
+ bne _080528E8
+ ldr r0, _08052914 @ =gUnknown_020297E4
+ ldr r1, [r0]
+ adds r0, r6, 0
+ movs r2, 0x2
+ movs r3, 0x10
+ bl ConvertIntToHexStringN
+ mov r0, sp
+ adds r1, r6, 0
+ bl StringAppend
+ movs r0, 0
+ strb r0, [r4]
+_080528E8:
+ mov r0, sp
+ movs r1, 0x2
+ movs r2, 0xF
+ bl MenuPrint
+ add sp, 0x58
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08052900: .4byte gUnknown_03004830
+_08052904: .4byte gUnknown_082165F8
+_08052908: .4byte gUnknown_020297E0
+_0805290C: .4byte gUnknown_08216600
+_08052910: .4byte gUnknown_020297DC
+_08052914: .4byte gUnknown_020297E4
+ thumb_func_end sub_80527BC
+
+ thumb_func_start sub_8052918
+sub_8052918: @ 8052918
+ push {r4-r6,lr}
+ sub sp, 0x4C
+ ldr r2, _08052A88 @ =gMain
+ ldrh r1, [r2, 0x2E]
+ movs r0, 0x80
+ lsls r0, 1
+ ands r0, r1
+ ldr r4, _08052A8C @ =gUnknown_03000560
+ cmp r0, 0
+ beq _0805294C
+ movs r1, 0xFA
+ lsls r1, 2
+ adds r0, r1, 0
+ ldrh r1, [r4, 0x1A]
+ adds r0, r1
+ strh r0, [r4, 0x1A]
+ lsls r0, 16
+ ldr r1, _08052A90 @ =0x75300000
+ cmp r0, r1
+ ble _08052946
+ movs r0, 0xFA
+ lsls r0, 2
+ strh r0, [r4, 0x1A]
+_08052946:
+ ldrb r0, [r4, 0x10]
+ adds r0, 0x1
+ strb r0, [r4, 0x10]
+_0805294C:
+ ldrh r1, [r2, 0x2E]
+ movs r0, 0x80
+ lsls r0, 2
+ ands r0, r1
+ cmp r0, 0
+ beq _08052972
+ ldr r1, _08052A94 @ =0xfffffc18
+ adds r0, r1, 0
+ ldrh r1, [r4, 0x1A]
+ adds r0, r1
+ strh r0, [r4, 0x1A]
+ lsls r0, 16
+ cmp r0, 0
+ bge _0805296C
+ ldr r0, _08052A98 @ =0x00007530
+ strh r0, [r4, 0x1A]
+_0805296C:
+ ldrb r0, [r4, 0x10]
+ adds r0, 0x1
+ strb r0, [r4, 0x10]
+_08052972:
+ ldrh r1, [r2, 0x2E]
+ movs r0, 0x40
+ ands r0, r1
+ cmp r0, 0
+ beq _08052992
+ ldrb r0, [r4]
+ subs r0, 0x1
+ strb r0, [r4]
+ lsls r0, 24
+ cmp r0, 0
+ bge _0805298C
+ movs r0, 0x3
+ strb r0, [r4]
+_0805298C:
+ ldrb r0, [r4, 0x10]
+ adds r0, 0x1
+ strb r0, [r4, 0x10]
+_08052992:
+ ldrh r1, [r2, 0x2E]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ beq _080529B4
+ ldrb r0, [r4]
+ adds r0, 0x1
+ strb r0, [r4]
+ lsls r0, 24
+ asrs r0, 24
+ cmp r0, 0x3
+ ble _080529AE
+ movs r0, 0
+ strb r0, [r4]
+_080529AE:
+ ldrb r0, [r4, 0x10]
+ adds r0, 0x1
+ strb r0, [r4, 0x10]
+_080529B4:
+ ldrh r1, [r2, 0x2E]
+ movs r0, 0x20
+ ands r0, r1
+ cmp r0, 0
+ beq _080529E4
+ adds r3, r4, 0
+ movs r1, 0
+ ldrsb r1, [r3, r1]
+ adds r5, r3, 0x1
+ adds r1, r5
+ ldrb r0, [r1]
+ subs r0, 0x1
+ strb r0, [r1]
+ lsls r0, 24
+ cmp r0, 0
+ bge _080529DE
+ movs r0, 0
+ ldrsb r0, [r3, r0]
+ adds r0, r5
+ movs r1, 0x2A
+ strb r1, [r0]
+_080529DE:
+ ldrb r0, [r4, 0x10]
+ adds r0, 0x1
+ strb r0, [r4, 0x10]
+_080529E4:
+ ldrh r1, [r2, 0x2E]
+ movs r0, 0x10
+ ands r0, r1
+ cmp r0, 0
+ beq _08052A16
+ ldr r3, _08052A8C @ =gUnknown_03000560
+ movs r1, 0
+ ldrsb r1, [r3, r1]
+ adds r4, r3, 0x1
+ adds r1, r4
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+ lsls r0, 24
+ asrs r0, 24
+ cmp r0, 0x2A
+ ble _08052A10
+ movs r0, 0
+ ldrsb r0, [r3, r0]
+ adds r0, r4
+ movs r1, 0
+ strb r1, [r0]
+_08052A10:
+ ldrb r0, [r3, 0x10]
+ adds r0, 0x1
+ strb r0, [r3, 0x10]
+_08052A16:
+ ldrh r1, [r2, 0x2E]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _08052AA0
+ movs r6, 0
+ movs r4, 0
+ ldr r5, _08052A8C @ =gUnknown_03000560
+_08052A26:
+ adds r0, r5, 0x1
+ adds r2, r4, r0
+ movs r0, 0
+ ldrsb r0, [r2, r0]
+ cmp r0, 0x2A
+ beq _08052A64
+ adds r0, r6, 0x1
+ lsls r0, 16
+ lsrs r6, r0, 16
+ lsls r0, r4, 1
+ mov r1, sp
+ adds r1, r0
+ adds r1, 0x4
+ movs r0, 0
+ ldrsb r0, [r2, r0]
+ strh r0, [r1]
+ add r0, sp, 0xC
+ lsls r1, r4, 4
+ adds r0, r1
+ movs r1, 0
+ ldrsb r1, [r2, r1]
+ adds r1, 0x85
+ lsls r1, 16
+ lsrs r1, 16
+ bl sub_804E844
+ adds r0, r4, 0x1
+ lsls r0, 16
+ lsrs r4, r0, 16
+ cmp r4, 0x3
+ bls _08052A26
+_08052A64:
+ cmp r6, 0x1
+ bls _08052A9C
+ add r0, sp, 0xC
+ adds r1, r5, 0
+ adds r1, 0x8
+ lsls r2, r6, 24
+ lsrs r2, 24
+ adds r3, r5, 0
+ adds r3, 0x11
+ ldrh r4, [r5, 0x1A]
+ str r4, [sp]
+ bl sub_8050744
+ ldrb r0, [r5, 0x10]
+ adds r0, 0x1
+ strb r0, [r5, 0x10]
+ b _08052AA0
+ .align 2, 0
+_08052A88: .4byte gMain
+_08052A8C: .4byte gUnknown_03000560
+_08052A90: .4byte 0x75300000
+_08052A94: .4byte 0xfffffc18
+_08052A98: .4byte 0x00007530
+_08052A9C:
+ movs r0, 0xFF
+ strb r0, [r5, 0x8]
+_08052AA0:
+ ldr r4, _08052AE8 @ =gUnknown_03000560
+ ldrb r0, [r4, 0x10]
+ cmp r0, 0
+ beq _08052AB0
+ bl sub_8052530
+ movs r0, 0
+ strb r0, [r4, 0x10]
+_08052AB0:
+ ldr r3, _08052AEC @ =gMain
+ ldrh r1, [r3, 0x2E]
+ movs r0, 0x4
+ ands r0, r1
+ cmp r0, 0
+ beq _08052AD4
+ ldr r2, _08052AF0 @ =gUnknown_020297DC
+ ldrb r0, [r2]
+ adds r1, r0, 0
+ cmp r1, 0
+ bne _08052ADC
+ adds r0, 0x1
+ strb r0, [r2]
+ ldr r0, _08052AF4 @ =gUnknown_020297E0
+ str r1, [r0]
+ ldrh r0, [r3, 0x20]
+ bl SeedRng
+_08052AD4:
+ ldr r0, _08052AF0 @ =gUnknown_020297DC
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _08052AE0
+_08052ADC:
+ bl sub_80527BC
+_08052AE0:
+ add sp, 0x4C
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08052AE8: .4byte gUnknown_03000560
+_08052AEC: .4byte gMain
+_08052AF0: .4byte gUnknown_020297DC
+_08052AF4: .4byte gUnknown_020297E0
+ thumb_func_end sub_8052918
+
+ thumb_func_start sub_8052AF8
+sub_8052AF8: @ 8052AF8
+ push {lr}
+ bl sub_8052918
+ bl RunTasks
+ bl AnimateSprites
+ bl BuildOamBuffer
+ bl UpdatePaletteFade
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8052AF8
+
+ thumb_func_start ShowBerryBlenderRecordWindow
+ShowBerryBlenderRecordWindow: @ 8052B14
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ sub sp, 0x20
+ movs r0, 0x6
+ movs r1, 0x3
+ movs r2, 0x17
+ movs r3, 0x10
+ bl MenuDrawTextWindow
+ ldr r0, _08052BAC @ =gMultiText_BerryBlenderMaxSpeedRecord
+ movs r1, 0x8
+ movs r2, 0x4
+ bl MenuPrint
+ ldr r0, _08052BB0 @ =gMultiText_2P3P4P
+ movs r1, 0x8
+ movs r2, 0x9
+ bl MenuPrint
+ movs r0, 0
+ mov r8, r0
+ ldr r0, _08052BB4 @ =gSaveBlock1
+ movs r7, 0x90
+ lsls r7, 20
+ ldr r1, _08052BB8 @ =0x0000096c
+ adds r6, r0, r1
+_08052B4A:
+ ldrh r4, [r6]
+ adds r0, r4, 0
+ movs r1, 0x64
+ bl __udivsi3
+ adds r1, r0, 0
+ mov r0, sp
+ movs r2, 0x12
+ movs r3, 0x1
+ bl sub_8072C14
+ adds r5, r0, 0
+ movs r0, 0xB8
+ strb r0, [r5]
+ adds r5, 0x1
+ adds r0, r4, 0
+ movs r1, 0x64
+ bl __umodsi3
+ adds r1, r0, 0
+ adds r0, r5, 0
+ movs r2, 0x2
+ movs r3, 0x2
+ bl ConvertIntToDecimalStringN
+ adds r5, r0, 0
+ ldr r1, _08052BBC @ =gOtherText_RPM
+ bl StringAppend
+ lsrs r2, r7, 24
+ mov r0, sp
+ movs r1, 0xF
+ bl MenuPrint
+ movs r0, 0x80
+ lsls r0, 18
+ adds r7, r0
+ adds r6, 0x2
+ movs r1, 0x1
+ add r8, r1
+ mov r0, r8
+ cmp r0, 0x2
+ ble _08052B4A
+ add sp, 0x20
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08052BAC: .4byte gMultiText_BerryBlenderMaxSpeedRecord
+_08052BB0: .4byte gMultiText_2P3P4P
+_08052BB4: .4byte gSaveBlock1
+_08052BB8: .4byte 0x0000096c
+_08052BBC: .4byte gOtherText_RPM
+ thumb_func_end ShowBerryBlenderRecordWindow
+
+ thumb_func_start sub_8052BD0
+sub_8052BD0: @ 8052BD0
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ adds r5, r0, 0
+ ldr r1, _08052C1C @ =gTasks
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ adds r4, r0, r1
+ movs r1, 0x8
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ bne _08052BF6
+ ldr r0, _08052C20 @ =0x0000016f
+ bl PlayFanfare
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+_08052BF6:
+ bl IsFanfareTaskInactive
+ lsls r0, 24
+ cmp r0, 0
+ beq _08052C16
+ ldr r0, _08052C24 @ =gUnknown_03004854
+ ldr r0, [r0]
+ movs r1, 0xBC
+ lsls r1, 1
+ adds r0, r1
+ ldrh r0, [r0]
+ bl PlayBGM
+ adds r0, r5, 0
+ bl DestroyTask
+_08052C16:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08052C1C: .4byte gTasks
+_08052C20: .4byte 0x0000016f
+_08052C24: .4byte gUnknown_03004854
+ thumb_func_end sub_8052BD0
diff --git a/asm-de/contest_link_80C2020.s b/asm-de/contest_link_80C2020.s
new file mode 100644
index 000000000..646851c2d
--- /dev/null
+++ b/asm-de/contest_link_80C2020.s
@@ -0,0 +1,5639 @@
+ .include "constants/gba_constants.inc"
+ .include "constants/species_constants.inc"
+ .include "asm/macros.inc"
+
+ .syntax unified
+
+ .text
+
+ thumb_func_start sub_80C2020
+sub_80C2020: @ 80C2020
+ push {r4,r5,lr}
+ movs r5, 0x80
+ lsls r5, 19
+ movs r0, 0x40
+ strh r0, [r5]
+ ldr r4, _080C20F0 @ =gWindowConfig_81E6FA0
+ adds r0, r4, 0
+ bl SetUpWindowConfig
+ ldr r0, _080C20F4 @ =gMenuWindow
+ adds r1, r4, 0
+ bl InitWindowFromConfig
+ ldr r1, _080C20F8 @ =REG_BG0CNT
+ movs r2, 0xF8
+ lsls r2, 6
+ adds r0, r2, 0
+ strh r0, [r1]
+ adds r1, 0x2
+ ldr r3, _080C20FC @ =0x00001803
+ adds r0, r3, 0
+ strh r0, [r1]
+ adds r1, 0x2
+ ldr r2, _080C2100 @ =0x00001c03
+ adds r0, r2, 0
+ strh r0, [r1]
+ adds r1, 0x2
+ ldr r3, _080C2104 @ =0x00003a03
+ adds r0, r3, 0
+ strh r0, [r1]
+ ldr r0, _080C2108 @ =REG_MOSAIC
+ movs r2, 0
+ strh r2, [r0]
+ adds r1, 0x3A
+ ldr r3, _080C210C @ =0x00003f3f
+ adds r0, r3, 0
+ strh r0, [r1]
+ adds r1, 0x2
+ subs r3, 0x11
+ adds r0, r3, 0
+ strh r0, [r1]
+ ldr r0, _080C2110 @ =REG_WIN0H
+ strh r2, [r0]
+ adds r0, 0x4
+ strh r2, [r0]
+ subs r0, 0x2
+ strh r2, [r0]
+ adds r0, 0x4
+ strh r2, [r0]
+ adds r0, 0xA
+ strh r2, [r0]
+ adds r0, 0x2
+ strh r2, [r0]
+ adds r0, 0x2
+ strh r2, [r0]
+ subs r0, 0x44
+ strh r2, [r0]
+ adds r0, 0x2
+ strh r2, [r0]
+ adds r0, 0x2
+ strh r2, [r0]
+ adds r0, 0x2
+ strh r2, [r0]
+ adds r0, 0x2
+ strh r2, [r0]
+ adds r0, 0x2
+ strh r2, [r0]
+ adds r0, 0x2
+ strh r2, [r0]
+ adds r0, 0x2
+ strh r2, [r0]
+ ldrh r0, [r5]
+ movs r3, 0xFE
+ lsls r3, 7
+ adds r1, r3, 0
+ orrs r0, r1
+ strh r0, [r5]
+ ldr r0, _080C2114 @ =gUnknown_030042A4
+ strh r2, [r0]
+ ldr r0, _080C2118 @ =gUnknown_030042A0
+ strh r2, [r0]
+ ldr r0, _080C211C @ =gUnknown_030042C0
+ strh r2, [r0]
+ ldr r0, _080C2120 @ =gUnknown_030041B4
+ strh r2, [r0]
+ ldr r0, _080C2124 @ =gUnknown_03004288
+ strh r2, [r0]
+ ldr r0, _080C2128 @ =gUnknown_03004280
+ strh r2, [r0]
+ ldr r0, _080C212C @ =gUnknown_030041B0
+ strh r2, [r0]
+ ldr r0, _080C2130 @ =gUnknown_030041B8
+ strh r2, [r0]
+ ldr r0, _080C2134 @ =gUnknown_030042C4
+ strh r2, [r0]
+ ldr r0, _080C2138 @ =gUnknown_03004240
+ strh r2, [r0]
+ ldr r0, _080C213C @ =gUnknown_03004200
+ strh r2, [r0]
+ ldr r0, _080C2140 @ =gUnknown_03004244
+ strh r2, [r0]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C20F0: .4byte gWindowConfig_81E6FA0
+_080C20F4: .4byte gMenuWindow
+_080C20F8: .4byte REG_BG0CNT
+_080C20FC: .4byte 0x00001803
+_080C2100: .4byte 0x00001c03
+_080C2104: .4byte 0x00003a03
+_080C2108: .4byte REG_MOSAIC
+_080C210C: .4byte 0x00003f3f
+_080C2110: .4byte REG_WIN0H
+_080C2114: .4byte gUnknown_030042A4
+_080C2118: .4byte gUnknown_030042A0
+_080C211C: .4byte gUnknown_030042C0
+_080C2120: .4byte gUnknown_030041B4
+_080C2124: .4byte gUnknown_03004288
+_080C2128: .4byte gUnknown_03004280
+_080C212C: .4byte gUnknown_030041B0
+_080C2130: .4byte gUnknown_030041B8
+_080C2134: .4byte gUnknown_030042C4
+_080C2138: .4byte gUnknown_03004240
+_080C213C: .4byte gUnknown_03004200
+_080C2140: .4byte gUnknown_03004244
+ thumb_func_end sub_80C2020
+
+ thumb_func_start sub_80C2144
+sub_80C2144: @ 80C2144
+ push {r4-r7,lr}
+ sub sp, 0x4
+ movs r2, 0xC0
+ lsls r2, 19
+ movs r3, 0xC0
+ lsls r3, 9
+ ldr r0, _080C220C @ =gUnknown_08D1977C
+ mov r12, r0
+ movs r5, 0
+ ldr r1, _080C2210 @ =0x040000d4
+ movs r4, 0x80
+ lsls r4, 5
+ ldr r6, _080C2214 @ =0x85000400
+ movs r7, 0x85
+ lsls r7, 24
+_080C2162:
+ str r5, [sp]
+ mov r0, sp
+ str r0, [r1]
+ str r2, [r1, 0x4]
+ str r6, [r1, 0x8]
+ ldr r0, [r1, 0x8]
+ adds r2, r4
+ subs r3, r4
+ cmp r3, r4
+ bhi _080C2162
+ str r5, [sp]
+ mov r0, sp
+ str r0, [r1]
+ str r2, [r1, 0x4]
+ lsrs r0, r3, 2
+ orrs r0, r7
+ str r0, [r1, 0x8]
+ ldr r0, [r1, 0x8]
+ movs r1, 0xC0
+ lsls r1, 19
+ mov r0, r12
+ bl LZDecompressVram
+ ldr r0, _080C2218 @ =gUnknown_08D1A490
+ ldr r1, _080C221C @ =0x0600d000
+ bl LZDecompressVram
+ ldr r0, _080C2220 @ =gUnknown_08D1A364
+ ldr r1, _080C2224 @ =0x0600e000
+ bl LZDecompressVram
+ ldr r0, _080C2228 @ =gUnknown_08D1A250
+ ldr r1, _080C222C @ =0x0600f000
+ bl LZDecompressVram
+ bl sub_80C37E4
+ ldr r0, _080C2230 @ =gUnknown_08D1A618
+ movs r2, 0x80
+ lsls r2, 2
+ movs r1, 0
+ bl LoadCompressedPalette
+ ldr r0, _080C2234 @ =gWindowConfig_81E6FA0
+ bl LoadFontDefaultPalette
+ movs r6, 0
+_080C21C0:
+ lsls r5, r6, 24
+ lsrs r5, 24
+ adds r0, r5, 0
+ movs r1, 0x1
+ bl sub_80C3990
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ adds r0, r5, 0
+ movs r1, 0x1
+ bl sub_80C39E4
+ movs r5, 0
+ lsls r1, r6, 1
+ adds r2, r6, 0x1
+ mov r12, r2
+ lsls r4, 24
+ asrs r7, r4, 24
+ adds r1, r6
+ lsls r1, 6
+ lsls r4, r0, 24
+_080C21EC:
+ ldr r6, _080C2238 @ =0x000060b2
+ cmp r5, r7
+ bge _080C21F4
+ adds r6, 0x2
+_080C21F4:
+ asrs r2, r4, 24
+ adds r0, r2, 0
+ cmp r2, 0
+ bge _080C21FE
+ negs r0, r2
+_080C21FE:
+ cmp r5, r0
+ bge _080C2240
+ ldr r3, _080C223C @ =0x000060a4
+ cmp r2, 0
+ bge _080C2242
+ adds r3, 0x2
+ b _080C2242
+ .align 2, 0
+_080C220C: .4byte gUnknown_08D1977C
+_080C2210: .4byte 0x040000d4
+_080C2214: .4byte 0x85000400
+_080C2218: .4byte gUnknown_08D1A490
+_080C221C: .4byte 0x0600d000
+_080C2220: .4byte gUnknown_08D1A364
+_080C2224: .4byte 0x0600e000
+_080C2228: .4byte gUnknown_08D1A250
+_080C222C: .4byte 0x0600f000
+_080C2230: .4byte gUnknown_08D1A618
+_080C2234: .4byte gWindowConfig_81E6FA0
+_080C2238: .4byte 0x000060b2
+_080C223C: .4byte 0x000060a4
+_080C2240:
+ ldr r3, _080C2264 @ =0x000060a2
+_080C2242:
+ ldr r2, _080C2268 @ =0x0600c166
+ adds r0, r1, r2
+ strh r6, [r0]
+ adds r2, 0x40
+ adds r0, r1, r2
+ strh r3, [r0]
+ adds r1, 0x2
+ adds r5, 0x1
+ cmp r5, 0x9
+ ble _080C21EC
+ mov r6, r12
+ cmp r6, 0x3
+ ble _080C21C0
+ add sp, 0x4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C2264: .4byte 0x000060a2
+_080C2268: .4byte 0x0600c166
+ thumb_func_end sub_80C2144
+
+ thumb_func_start sub_80C226C
+sub_80C226C: @ 80C226C
+ push {r4-r7,lr}
+ sub sp, 0x4
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldr r0, _080C2288 @ =gContestPlayerMonIndex
+ ldrb r0, [r0]
+ cmp r5, r0
+ bne _080C2294
+ ldr r0, _080C228C @ =gDisplayedStringBattle
+ ldr r1, _080C2290 @ =gUnknown_083D17DC
+ bl StringCopy
+ adds r2, r0, 0
+ b _080C2296
+ .align 2, 0
+_080C2288: .4byte gContestPlayerMonIndex
+_080C228C: .4byte gDisplayedStringBattle
+_080C2290: .4byte gUnknown_083D17DC
+_080C2294:
+ ldr r2, _080C22E8 @ =gDisplayedStringBattle
+_080C2296:
+ movs r4, 0xFC
+ strb r4, [r2]
+ movs r0, 0x6
+ strb r0, [r2, 0x1]
+ movs r0, 0x4
+ strb r0, [r2, 0x2]
+ adds r2, 0x3
+ lsls r6, r5, 6
+ ldr r7, _080C22EC @ =gContestMons + 0x2
+ adds r1, r6, r7
+ adds r0, r2, 0
+ bl StringCopy
+ adds r2, r0, 0
+ strb r4, [r2]
+ movs r0, 0x13
+ strb r0, [r2, 0x1]
+ movs r0, 0x32
+ strb r0, [r2, 0x2]
+ adds r2, 0x3
+ ldr r1, _080C22F0 @ =gUnknown_083D17E0
+ adds r0, r2, 0
+ bl StringCopy
+ adds r2, r0, 0
+ ldr r0, _080C22F4 @ =gIsLinkContest
+ ldrb r1, [r0]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _080C22FC
+ lsls r4, r5, 3
+ subs r1, r4, r5
+ lsls r1, 2
+ ldr r0, _080C22F8 @ =gLinkPlayers + 0x8
+ adds r1, r0
+ adds r0, r2, 0
+ bl StringCopy
+ b _080C230A
+ .align 2, 0
+_080C22E8: .4byte gDisplayedStringBattle
+_080C22EC: .4byte gContestMons + 0x2
+_080C22F0: .4byte gUnknown_083D17E0
+_080C22F4: .4byte gIsLinkContest
+_080C22F8: .4byte gLinkPlayers + 0x8
+_080C22FC:
+ adds r1, r7, 0
+ adds r1, 0xB
+ adds r1, r6, r1
+ adds r0, r2, 0
+ bl StringCopy
+ lsls r4, r5, 3
+_080C230A:
+ ldr r0, _080C2334 @ =gMenuWindow
+ ldr r1, _080C2338 @ =gDisplayedStringBattle
+ adds r2, r4, r5
+ lsls r2, 18
+ ldr r3, _080C233C @ =0x03020000
+ adds r2, r3
+ lsrs r2, 16
+ lsls r3, r5, 1
+ adds r3, r5
+ adds r3, 0x4
+ lsls r3, 24
+ lsrs r3, 24
+ str r3, [sp]
+ movs r3, 0x7
+ bl sub_8003460
+ add sp, 0x4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C2334: .4byte gMenuWindow
+_080C2338: .4byte gDisplayedStringBattle
+_080C233C: .4byte 0x03020000
+ thumb_func_end sub_80C226C
+
+ thumb_func_start sub_80C2340
+sub_80C2340: @ 80C2340
+ push {r4,lr}
+ movs r4, 0
+_080C2344:
+ lsls r0, r4, 24
+ lsrs r0, 24
+ bl sub_80C226C
+ adds r4, 0x1
+ cmp r4, 0x3
+ ble _080C2344
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80C2340
+
+ thumb_func_start sub_80C2358
+sub_80C2358: @ 80C2358
+ push {r4,r5,lr}
+ sub sp, 0x4
+ ldr r5, _080C240C @ =gPaletteFade
+ ldrb r0, [r5, 0x8]
+ movs r1, 0x80
+ orrs r0, r1
+ strb r0, [r5, 0x8]
+ movs r0, 0
+ bl SetVBlankCallback
+ bl sub_80C2020
+ bl dp12_8087EA4
+ bl ResetPaletteFade
+ bl ResetSpriteData
+ bl ResetTasks
+ bl FreeAllSpritePalettes
+ bl sub_80C2144
+ bl sub_80C310C
+ movs r0, 0
+ movs r1, 0x1
+ bl sub_80C30D4
+ bl sub_80C2340
+ ldr r4, _080C2410 @ =0x02018000
+ adds r0, r4, 0
+ movs r1, 0
+ movs r2, 0x18
+ bl memset
+ adds r0, r4, 0
+ adds r0, 0x18
+ movs r1, 0
+ movs r2, 0x50
+ bl memset
+ bl sub_80C33DC
+ movs r0, 0x1
+ negs r0, r0
+ movs r1, 0
+ str r1, [sp]
+ movs r2, 0x10
+ movs r3, 0
+ bl BeginNormalPaletteFade
+ ldrb r1, [r5, 0x8]
+ movs r0, 0x7F
+ ands r0, r1
+ strb r0, [r5, 0x8]
+ ldr r0, _080C2414 @ =sub_80C24F4
+ movs r1, 0x5
+ bl CreateTask
+ strb r0, [r4, 0x2]
+ ldr r0, _080C2418 @ =sub_80C2430
+ bl SetMainCallback2
+ ldr r1, _080C241C @ =gUnknown_03004200
+ movs r0, 0xF0
+ strh r0, [r1]
+ ldr r1, _080C2420 @ =gUnknown_03004244
+ ldr r2, _080C2424 @ =0x000080a0
+ adds r0, r2, 0
+ strh r0, [r1]
+ ldr r0, _080C2428 @ =sub_80C2F28
+ movs r1, 0x14
+ bl CreateTask
+ bl sub_80C3F00
+ movs r0, 0xDF
+ lsls r0, 1
+ bl PlayBGM
+ ldr r0, _080C242C @ =sub_80C2448
+ bl SetVBlankCallback
+ add sp, 0x4
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C240C: .4byte gPaletteFade
+_080C2410: .4byte 0x02018000
+_080C2414: .4byte sub_80C24F4
+_080C2418: .4byte sub_80C2430
+_080C241C: .4byte gUnknown_03004200
+_080C2420: .4byte gUnknown_03004244
+_080C2424: .4byte 0x000080a0
+_080C2428: .4byte sub_80C2F28
+_080C242C: .4byte sub_80C2448
+ thumb_func_end sub_80C2358
+
+ thumb_func_start sub_80C2430
+sub_80C2430: @ 80C2430
+ push {lr}
+ bl AnimateSprites
+ bl BuildOamBuffer
+ bl RunTasks
+ bl UpdatePaletteFade
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80C2430
+
+ thumb_func_start sub_80C2448
+sub_80C2448: @ 80C2448
+ push {lr}
+ ldr r1, _080C24C0 @ =REG_BG0HOFS
+ ldr r0, _080C24C4 @ =gUnknown_030042A4
+ ldrh r0, [r0]
+ strh r0, [r1]
+ adds r1, 0x2
+ ldr r0, _080C24C8 @ =gUnknown_030042A0
+ ldrh r0, [r0]
+ strh r0, [r1]
+ adds r1, 0x2
+ ldr r0, _080C24CC @ =gUnknown_030042C0
+ ldrh r0, [r0]
+ strh r0, [r1]
+ adds r1, 0x2
+ ldr r0, _080C24D0 @ =gUnknown_030041B4
+ ldrh r0, [r0]
+ strh r0, [r1]
+ adds r1, 0x2
+ ldr r0, _080C24D4 @ =gUnknown_03004288
+ ldrh r0, [r0]
+ strh r0, [r1]
+ adds r1, 0x2
+ ldr r0, _080C24D8 @ =gUnknown_03004280
+ ldrh r0, [r0]
+ strh r0, [r1]
+ adds r1, 0x2
+ ldr r0, _080C24DC @ =gUnknown_030041B0
+ ldrh r0, [r0]
+ strh r0, [r1]
+ adds r1, 0x2
+ ldr r0, _080C24E0 @ =gUnknown_030041B8
+ ldrh r0, [r0]
+ strh r0, [r1]
+ adds r1, 0x22
+ ldr r0, _080C24E4 @ =gUnknown_030042C4
+ ldrh r0, [r0]
+ strh r0, [r1]
+ adds r1, 0x4
+ ldr r0, _080C24E8 @ =gUnknown_03004240
+ ldrh r0, [r0]
+ strh r0, [r1]
+ subs r1, 0x2
+ ldr r0, _080C24EC @ =gUnknown_03004200
+ ldrh r0, [r0]
+ strh r0, [r1]
+ adds r1, 0x4
+ ldr r0, _080C24F0 @ =gUnknown_03004244
+ ldrh r0, [r0]
+ strh r0, [r1]
+ bl LoadOam
+ bl ProcessSpriteCopyRequests
+ bl TransferPlttBuffer
+ bl sub_8089668
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C24C0: .4byte REG_BG0HOFS
+_080C24C4: .4byte gUnknown_030042A4
+_080C24C8: .4byte gUnknown_030042A0
+_080C24CC: .4byte gUnknown_030042C0
+_080C24D0: .4byte gUnknown_030041B4
+_080C24D4: .4byte gUnknown_03004288
+_080C24D8: .4byte gUnknown_03004280
+_080C24DC: .4byte gUnknown_030041B0
+_080C24E0: .4byte gUnknown_030041B8
+_080C24E4: .4byte gUnknown_030042C4
+_080C24E8: .4byte gUnknown_03004240
+_080C24EC: .4byte gUnknown_03004200
+_080C24F0: .4byte gUnknown_03004244
+ thumb_func_end sub_80C2448
+
+ thumb_func_start sub_80C24F4
+sub_80C24F4: @ 80C24F4
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ adds r2, r4, 0
+ ldr r0, _080C252C @ =gPaletteFade
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _080C254E
+ ldr r0, _080C2530 @ =gIsLinkContest
+ ldrb r1, [r0]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _080C2540
+ ldr r0, _080C2534 @ =gOtherText_LinkStandby
+ bl sub_80C3698
+ ldr r1, _080C2538 @ =gTasks
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _080C253C @ =sub_80C255C
+ str r1, [r0]
+ b _080C254E
+ .align 2, 0
+_080C252C: .4byte gPaletteFade
+_080C2530: .4byte gIsLinkContest
+_080C2534: .4byte gOtherText_LinkStandby
+_080C2538: .4byte gTasks
+_080C253C: .4byte sub_80C255C
+_080C2540:
+ ldr r0, _080C2554 @ =gTasks
+ lsls r1, r2, 2
+ adds r1, r2
+ lsls r1, 3
+ adds r1, r0
+ ldr r0, _080C2558 @ =sub_80C2600
+ str r0, [r1]
+_080C254E:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C2554: .4byte gTasks
+_080C2558: .4byte sub_80C2600
+ thumb_func_end sub_80C24F4
+
+ thumb_func_start sub_80C255C
+sub_80C255C: @ 80C255C
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r0, _080C2594 @ =gReceivedRemoteLinkPlayers
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _080C258C
+ bl GetLinkPlayerCount
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x4
+ bne _080C258C
+ ldr r0, _080C2598 @ =sub_80C25A4
+ movs r1, 0
+ bl CreateTask
+ ldr r1, _080C259C @ =gTasks
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _080C25A0 @ =TaskDummy
+ str r1, [r0]
+_080C258C:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C2594: .4byte gReceivedRemoteLinkPlayers
+_080C2598: .4byte sub_80C25A4
+_080C259C: .4byte gTasks
+_080C25A0: .4byte TaskDummy
+ thumb_func_end sub_80C255C
+
+ thumb_func_start sub_80C25A4
+sub_80C25A4: @ 80C25A4
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r1, _080C25B8 @ =sub_80C89DC
+ ldr r2, _080C25BC @ =sub_80C25C0
+ bl SetTaskFuncWithFollowupFunc
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C25B8: .4byte sub_80C89DC
+_080C25BC: .4byte sub_80C25C0
+ thumb_func_end sub_80C25A4
+
+ thumb_func_start sub_80C25C0
+sub_80C25C0: @ 80C25C0
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ bl sub_8007ECC
+ lsls r0, 24
+ cmp r0, 0
+ beq _080C25EC
+ adds r0, r4, 0
+ bl DestroyTask
+ ldr r2, _080C25F4 @ =gTasks
+ ldr r0, _080C25F8 @ =0x02018000
+ ldrb r1, [r0, 0x2]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 3
+ adds r0, r2
+ ldr r1, _080C25FC @ =sub_80C2600
+ str r1, [r0]
+ bl sub_80C3764
+_080C25EC:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C25F4: .4byte gTasks
+_080C25F8: .4byte 0x02018000
+_080C25FC: .4byte sub_80C2600
+ thumb_func_end sub_80C25C0
+
+ thumb_func_start sub_80C2600
+sub_80C2600: @ 80C2600
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _080C2644 @ =gTasks
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r5, r1, r2
+ ldrh r1, [r5, 0x8]
+ movs r2, 0x8
+ ldrsh r0, [r5, r2]
+ cmp r0, 0
+ bne _080C2654
+ ldr r0, _080C2648 @ =sub_80C2F64
+ movs r1, 0x14
+ bl CreateTask
+ ldr r4, _080C264C @ =gContestText_AnnounceResults
+ ldr r0, _080C2650 @ =0x02018000
+ ldrb r1, [r0]
+ adds r0, r4, 0
+ bl sub_80C3158
+ adds r0, r4, 0
+ bl sub_80C34AC
+ lsls r0, 16
+ asrs r0, 16
+ movs r3, 0x88
+ lsls r3, 3
+ movs r1, 0x90
+ movs r2, 0x78
+ b _080C26A6
+ .align 2, 0
+_080C2644: .4byte gTasks
+_080C2648: .4byte sub_80C2F64
+_080C264C: .4byte gContestText_AnnounceResults
+_080C2650: .4byte 0x02018000
+_080C2654:
+ cmp r0, 0x1
+ bne _080C2668
+ ldr r0, _080C2664 @ =0x02018000
+ ldrb r0, [r0, 0x4]
+ cmp r0, 0
+ bne _080C26D4
+ b _080C267C
+ .align 2, 0
+_080C2664: .4byte 0x02018000
+_080C2668:
+ cmp r0, 0x2
+ bne _080C2684
+ ldrh r0, [r5, 0xA]
+ adds r0, 0x1
+ strh r0, [r5, 0xA]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x15
+ bne _080C26D4
+ movs r0, 0
+_080C267C:
+ strh r0, [r5, 0xA]
+ adds r0, r1, 0x1
+ strh r0, [r5, 0x8]
+ b _080C26D4
+_080C2684:
+ cmp r0, 0x3
+ bne _080C26C0
+ ldr r4, _080C26B4 @ =gContestText_PreliminaryResults
+ ldr r0, _080C26B8 @ =0x02018000
+ ldrb r1, [r0]
+ adds r0, r4, 0
+ bl sub_80C3158
+ adds r0, r4, 0
+ bl sub_80C34AC
+ lsls r0, 16
+ asrs r0, 16
+ ldr r2, _080C26BC @ =0x0000ffff
+ movs r3, 0x88
+ lsls r3, 3
+ movs r1, 0x90
+_080C26A6:
+ bl sub_80C34CC
+ ldrh r0, [r5, 0x8]
+ adds r0, 0x1
+ strh r0, [r5, 0x8]
+ b _080C26D4
+ .align 2, 0
+_080C26B4: .4byte gContestText_PreliminaryResults
+_080C26B8: .4byte 0x02018000
+_080C26BC: .4byte 0x0000ffff
+_080C26C0:
+ cmp r0, 0x4
+ bne _080C26D4
+ ldr r0, _080C26DC @ =0x02018000
+ ldrb r0, [r0, 0x4]
+ cmp r0, 0x2
+ bne _080C26D4
+ movs r0, 0
+ strh r0, [r5, 0x8]
+ ldr r0, _080C26E0 @ =sub_80C26E4
+ str r0, [r5]
+_080C26D4:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C26DC: .4byte 0x02018000
+_080C26E0: .4byte sub_80C26E4
+ thumb_func_end sub_80C2600
+
+ thumb_func_start sub_80C26E4
+sub_80C26E4: @ 80C26E4
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _080C2708 @ =gTasks
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r4, r1, r2
+ movs r1, 0x8
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x1
+ beq _080C2744
+ cmp r0, 0x1
+ bgt _080C270C
+ cmp r0, 0
+ beq _080C2712
+ b _080C2766
+ .align 2, 0
+_080C2708: .4byte gTasks
+_080C270C:
+ cmp r0, 0x2
+ beq _080C2754
+ b _080C2766
+_080C2712:
+ ldr r5, _080C2738 @ =0x02018000
+ ldrb r0, [r5, 0xA]
+ cmp r0, 0
+ bne _080C2766
+ ldrh r1, [r4, 0xC]
+ adds r0, r1, 0x1
+ strh r0, [r4, 0xC]
+ lsls r1, 24
+ lsrs r1, 24
+ movs r0, 0
+ bl sub_80C40D4
+ ldrb r0, [r5, 0x14]
+ cmp r0, 0
+ bne _080C273C
+ movs r0, 0x2
+ strh r0, [r4, 0x8]
+ b _080C2766
+ .align 2, 0
+_080C2738: .4byte 0x02018000
+_080C273C:
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+ b _080C2766
+_080C2744:
+ ldr r0, _080C2750 @ =0x02018000
+ ldrb r0, [r0, 0x14]
+ cmp r0, 0
+ bne _080C2766
+ strh r0, [r4, 0x8]
+ b _080C2766
+ .align 2, 0
+_080C2750: .4byte 0x02018000
+_080C2754:
+ movs r0, 0x88
+ lsls r0, 3
+ bl sub_80C3520
+ movs r0, 0
+ strh r0, [r4, 0x8]
+ strh r0, [r4, 0xC]
+ ldr r0, _080C276C @ =sub_80C2770
+ str r0, [r4]
+_080C2766:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C276C: .4byte sub_80C2770
+ thumb_func_end sub_80C26E4
+
+ thumb_func_start sub_80C2770
+sub_80C2770: @ 80C2770
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r2, r0, 24
+ adds r4, r2, 0
+ ldr r5, _080C27BC @ =0x02018000
+ ldrb r3, [r5, 0x4]
+ cmp r3, 0
+ bne _080C27CC
+ ldr r1, _080C27C0 @ =gTasks
+ lsls r0, r2, 2
+ adds r0, r2
+ lsls r0, 3
+ adds r1, r0, r1
+ ldrh r0, [r1, 0xA]
+ adds r0, 0x1
+ strh r0, [r1, 0xA]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x15
+ bne _080C27DE
+ strh r3, [r1, 0xA]
+ ldr r4, _080C27C4 @ =gContestText_Round2Results
+ ldrb r1, [r5]
+ adds r0, r4, 0
+ bl sub_80C3158
+ adds r0, r4, 0
+ bl sub_80C34AC
+ lsls r0, 16
+ asrs r0, 16
+ ldr r2, _080C27C8 @ =0x0000ffff
+ movs r3, 0x88
+ lsls r3, 3
+ movs r1, 0x90
+ bl sub_80C34CC
+ b _080C27DE
+ .align 2, 0
+_080C27BC: .4byte 0x02018000
+_080C27C0: .4byte gTasks
+_080C27C4: .4byte gContestText_Round2Results
+_080C27C8: .4byte 0x0000ffff
+_080C27CC:
+ cmp r3, 0x2
+ bne _080C27DE
+ ldr r0, _080C27E4 @ =gTasks
+ lsls r1, r4, 2
+ adds r1, r4
+ lsls r1, 3
+ adds r1, r0
+ ldr r0, _080C27E8 @ =sub_80C27EC
+ str r0, [r1]
+_080C27DE:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C27E4: .4byte gTasks
+_080C27E8: .4byte sub_80C27EC
+ thumb_func_end sub_80C2770
+
+ thumb_func_start sub_80C27EC
+sub_80C27EC: @ 80C27EC
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _080C2810 @ =gTasks
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r4, r1, r2
+ movs r1, 0x8
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x1
+ beq _080C284C
+ cmp r0, 0x1
+ bgt _080C2814
+ cmp r0, 0
+ beq _080C281A
+ b _080C286C
+ .align 2, 0
+_080C2810: .4byte gTasks
+_080C2814:
+ cmp r0, 0x2
+ beq _080C285C
+ b _080C286C
+_080C281A:
+ ldr r5, _080C2840 @ =0x02018000
+ ldrb r0, [r5, 0xA]
+ cmp r0, 0
+ bne _080C286C
+ ldrh r1, [r4, 0xC]
+ adds r0, r1, 0x1
+ strh r0, [r4, 0xC]
+ lsls r1, 24
+ lsrs r1, 24
+ movs r0, 0x1
+ bl sub_80C40D4
+ ldrb r0, [r5, 0x14]
+ cmp r0, 0
+ bne _080C2844
+ movs r0, 0x2
+ strh r0, [r4, 0x8]
+ b _080C286C
+ .align 2, 0
+_080C2840: .4byte 0x02018000
+_080C2844:
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+ b _080C286C
+_080C284C:
+ ldr r0, _080C2858 @ =0x02018000
+ ldrb r0, [r0, 0x14]
+ cmp r0, 0
+ bne _080C286C
+ strh r0, [r4, 0x8]
+ b _080C286C
+ .align 2, 0
+_080C2858: .4byte 0x02018000
+_080C285C:
+ movs r0, 0x88
+ lsls r0, 3
+ bl sub_80C3520
+ movs r0, 0
+ strh r0, [r4, 0x8]
+ ldr r0, _080C2874 @ =sub_80C2878
+ str r0, [r4]
+_080C286C:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C2874: .4byte sub_80C2878
+ thumb_func_end sub_80C27EC
+
+ thumb_func_start sub_80C2878
+sub_80C2878: @ 80C2878
+ push {r4-r7,lr}
+ sub sp, 0x64
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldr r1, _080C28A0 @ =gTasks
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ adds r0, r1
+ movs r2, 0x8
+ ldrsh r0, [r0, r2]
+ adds r2, r1, 0
+ cmp r0, 0x5
+ bls _080C2896
+ b _080C2A80
+_080C2896:
+ lsls r0, 2
+ ldr r1, _080C28A4 @ =_080C28A8
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080C28A0: .4byte gTasks
+_080C28A4: .4byte _080C28A8
+ .align 2, 0
+_080C28A8:
+ .4byte _080C28C0
+ .4byte _080C28E0
+ .4byte _080C28FE
+ .4byte _080C2938
+ .4byte _080C299C
+ .4byte _080C2A70
+_080C28C0:
+ ldr r0, _080C28DC @ =0x02018000
+ ldrb r0, [r0, 0x4]
+ cmp r0, 0
+ beq _080C28CA
+ b _080C2A80
+_080C28CA:
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ adds r0, r2
+ ldrh r1, [r0, 0x8]
+ adds r1, 0x1
+ strh r1, [r0, 0x8]
+ b _080C2A80
+ .align 2, 0
+_080C28DC: .4byte 0x02018000
+_080C28E0:
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ adds r1, r0, r2
+ ldrh r0, [r1, 0xA]
+ adds r0, 0x1
+ strh r0, [r1, 0xA]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x1F
+ beq _080C28F8
+ b _080C2A80
+_080C28F8:
+ movs r0, 0
+ strh r0, [r1, 0xA]
+ b _080C2A4A
+_080C28FE:
+ movs r4, 0
+ lsls r6, r5, 2
+ ldr r7, _080C292C @ =gTasks
+_080C2904:
+ ldr r0, _080C2930 @ =sub_80C3A5C
+ movs r1, 0xA
+ bl CreateTask
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r7
+ ldr r0, _080C2934 @ =gUnknown_02038690
+ adds r0, r4, r0
+ ldrb r0, [r0]
+ strh r0, [r1, 0x8]
+ strh r4, [r1, 0xA]
+ adds r4, 0x1
+ cmp r4, 0x3
+ ble _080C2904
+ b _080C2A42
+ .align 2, 0
+_080C292C: .4byte gTasks
+_080C2930: .4byte sub_80C3A5C
+_080C2934: .4byte gUnknown_02038690
+_080C2938:
+ ldr r0, _080C2990 @ =0x02018000
+ ldrb r0, [r0, 0x5]
+ cmp r0, 0x4
+ beq _080C2942
+ b _080C2A80
+_080C2942:
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ adds r4, r0, r2
+ ldrh r0, [r4, 0xA]
+ adds r0, 0x1
+ strh r0, [r4, 0xA]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x1F
+ beq _080C295A
+ b _080C2A80
+_080C295A:
+ movs r0, 0
+ strh r0, [r4, 0xA]
+ ldr r0, _080C2994 @ =sub_80C3B30
+ movs r1, 0xA
+ bl CreateTask
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+ movs r4, 0
+ ldr r1, _080C2998 @ =gUnknown_02038690
+ ldrb r0, [r1]
+ cmp r0, 0
+ beq _080C2984
+_080C2976:
+ adds r4, 0x1
+ cmp r4, 0x3
+ bgt _080C2984
+ adds r0, r4, r1
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _080C2976
+_080C2984:
+ lsls r0, r4, 24
+ lsrs r0, 24
+ movs r1, 0xE
+ bl sub_80C3E60
+ b _080C2A80
+ .align 2, 0
+_080C2990: .4byte 0x02018000
+_080C2994: .4byte sub_80C3B30
+_080C2998: .4byte gUnknown_02038690
+_080C299C:
+ lsls r1, r5, 2
+ adds r0, r1, r5
+ lsls r0, 3
+ adds r2, r0, r2
+ ldrh r0, [r2, 0xA]
+ adds r0, 0x1
+ strh r0, [r2, 0xA]
+ lsls r0, 16
+ asrs r0, 16
+ adds r6, r1, 0
+ cmp r0, 0x15
+ bne _080C2A80
+ movs r0, 0
+ strh r0, [r2, 0xA]
+ movs r4, 0
+ ldr r2, _080C29F4 @ =gUnknown_02038690
+ ldrb r0, [r2]
+ ldr r1, _080C29F8 @ =gIsLinkContest
+ ldr r3, _080C29FC @ =gStringVar1
+ cmp r0, 0
+ beq _080C29D4
+_080C29C6:
+ adds r4, 0x1
+ cmp r4, 0x3
+ bgt _080C29D4
+ adds r0, r4, r2
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _080C29C6
+_080C29D4:
+ ldrb r1, [r1]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _080C2A04
+ lsls r1, r4, 3
+ subs r1, r4
+ lsls r1, 2
+ ldr r0, _080C2A00 @ =gLinkPlayers + 0x8
+ adds r1, r0
+ adds r0, r3, 0
+ bl StringCopy
+ lsls r4, 6
+ b _080C2A10
+ .align 2, 0
+_080C29F4: .4byte gUnknown_02038690
+_080C29F8: .4byte gIsLinkContest
+_080C29FC: .4byte gStringVar1
+_080C2A00: .4byte gLinkPlayers + 0x8
+_080C2A04:
+ lsls r4, 6
+ ldr r1, _080C2A54 @ =gUnknown_0203857D
+ adds r1, r4, r1
+ adds r0, r3, 0
+ bl StringCopy
+_080C2A10:
+ ldr r0, _080C2A58 @ =gStringVar2
+ ldr r1, _080C2A5C @ =gContestMons + 0x2
+ adds r1, r4, r1
+ bl StringCopy
+ ldr r1, _080C2A60 @ =gContestText_PokeWon
+ mov r0, sp
+ bl StringExpandPlaceholders
+ ldr r0, _080C2A64 @ =0x02018000
+ ldrb r1, [r0]
+ mov r0, sp
+ bl sub_80C3158
+ mov r0, sp
+ bl sub_80C34AC
+ lsls r0, 16
+ asrs r0, 16
+ ldr r2, _080C2A68 @ =0x0000ffff
+ movs r3, 0x88
+ lsls r3, 3
+ movs r1, 0x90
+ bl sub_80C34CC
+_080C2A42:
+ ldr r0, _080C2A6C @ =gTasks
+ adds r1, r6, r5
+ lsls r1, 3
+ adds r1, r0
+_080C2A4A:
+ ldrh r0, [r1, 0x8]
+ adds r0, 0x1
+ strh r0, [r1, 0x8]
+ b _080C2A80
+ .align 2, 0
+_080C2A54: .4byte gUnknown_0203857D
+_080C2A58: .4byte gStringVar2
+_080C2A5C: .4byte gContestMons + 0x2
+_080C2A60: .4byte gContestText_PokeWon
+_080C2A64: .4byte 0x02018000
+_080C2A68: .4byte 0x0000ffff
+_080C2A6C: .4byte gTasks
+_080C2A70:
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ adds r0, r2
+ movs r1, 0
+ strh r1, [r0, 0x8]
+ ldr r1, _080C2A88 @ =sub_80C2A8C
+ str r1, [r0]
+_080C2A80:
+ add sp, 0x64
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C2A88: .4byte sub_80C2A8C
+ thumb_func_end sub_80C2878
+
+ thumb_func_start sub_80C2A8C
+sub_80C2A8C: @ 80C2A8C
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x10
+ lsls r0, 24
+ lsrs r7, r0, 24
+ ldr r1, _080C2ABC @ =gTasks
+ lsls r0, r7, 2
+ adds r0, r7
+ lsls r0, 3
+ adds r0, r1
+ movs r2, 0x8
+ ldrsh r0, [r0, r2]
+ adds r4, r1, 0
+ cmp r0, 0x5
+ bls _080C2AB2
+ b _080C2D04
+_080C2AB2:
+ lsls r0, 2
+ ldr r1, _080C2AC0 @ =_080C2AC4
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080C2ABC: .4byte gTasks
+_080C2AC0: .4byte _080C2AC4
+ .align 2, 0
+_080C2AC4:
+ .4byte _080C2ADC
+ .4byte _080C2C04
+ .4byte _080C2C54
+ .4byte _080C2C64
+ .4byte _080C2CA8
+ .4byte _080C2CE8
+_080C2ADC:
+ ldr r1, _080C2BC4 @ =gUnknown_030042C4
+ movs r0, 0xF0
+ strh r0, [r1]
+ ldr r1, _080C2BC8 @ =gUnknown_03004240
+ ldr r3, _080C2BCC @ =0x00005050
+ adds r0, r3, 0
+ strh r0, [r1]
+ movs r1, 0
+ ldr r3, _080C2BD0 @ =gUnknown_02038690
+ ldrb r0, [r3]
+ lsls r4, r7, 2
+ mov r10, r4
+ ldr r2, _080C2BD4 @ =gContestMons
+ ldr r5, _080C2BD8 @ =gMonFrontPicTable
+ mov r12, r5
+ ldr r4, _080C2BDC @ =gMonFrontPicCoords
+ mov r8, r4
+ ldr r5, _080C2BE0 @ =gUnknown_081FAF4C
+ mov r9, r5
+ cmp r0, 0
+ beq _080C2B14
+_080C2B06:
+ adds r1, 0x1
+ cmp r1, 0x3
+ bgt _080C2B14
+ adds r0, r1, r3
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _080C2B06
+_080C2B14:
+ lsls r1, 6
+ adds r0, r1, r2
+ ldrh r6, [r0]
+ adds r0, r2, 0
+ adds r0, 0x38
+ adds r0, r1, r0
+ ldr r4, [r0]
+ adds r0, r2, 0
+ adds r0, 0x3C
+ adds r1, r0
+ ldr r1, [r1]
+ str r1, [sp, 0xC]
+ lsls r0, r6, 3
+ add r0, r12
+ lsls r2, r6, 2
+ add r2, r8
+ ldrb r1, [r2]
+ ldrb r2, [r2, 0x1]
+ mov r5, r9
+ ldr r3, [r5, 0x4]
+ str r3, [sp]
+ str r6, [sp, 0x4]
+ str r4, [sp, 0x8]
+ ldr r3, _080C2BE4 @ =0x02000000
+ bl HandleLoadSpecialPokePic
+ adds r0, r6, 0
+ ldr r1, [sp, 0xC]
+ adds r2, r4, 0
+ bl sub_80409C8
+ adds r4, r0, 0
+ bl LoadCompressedObjectPalette
+ adds r0, r6, 0
+ movs r1, 0x1
+ bl GetMonSpriteTemplate_803C56C
+ ldr r0, _080C2BE8 @ =gUnknown_02024E8C
+ ldrh r1, [r4, 0x4]
+ strh r1, [r0, 0x2]
+ movs r1, 0x88
+ lsls r1, 1
+ movs r2, 0x50
+ movs r3, 0xA
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r5, _080C2BEC @ =gSprites
+ lsls r2, r0, 4
+ adds r2, r0
+ lsls r2, 2
+ adds r3, r2, r5
+ strh r6, [r3, 0x30]
+ ldrb r4, [r3, 0x5]
+ movs r1, 0xD
+ negs r1, r1
+ ands r1, r4
+ strb r1, [r3, 0x5]
+ adds r5, 0x1C
+ adds r2, r5
+ ldr r1, _080C2BF0 @ =sub_80C3C44
+ str r1, [r2]
+ ldr r2, _080C2BE4 @ =0x02000000
+ movs r3, 0xC0
+ lsls r3, 9
+ adds r1, r2, r3
+ strb r0, [r1, 0x8]
+ ldr r0, _080C2BF4 @ =gUnknown_083D17CC
+ bl LoadCompressedObjectPic
+ ldr r0, _080C2BF8 @ =gUnknown_083D17D4
+ bl LoadCompressedObjectPalette
+ ldr r0, _080C2BFC @ =sub_80C3D04
+ movs r1, 0xA
+ bl CreateTask
+ ldr r0, _080C2C00 @ =gTasks
+ mov r4, r10
+ adds r1, r4, r7
+ lsls r1, 3
+ adds r1, r0
+ ldrh r0, [r1, 0x8]
+ adds r0, 0x1
+ strh r0, [r1, 0x8]
+ b _080C2D04
+ .align 2, 0
+_080C2BC4: .4byte gUnknown_030042C4
+_080C2BC8: .4byte gUnknown_03004240
+_080C2BCC: .4byte 0x00005050
+_080C2BD0: .4byte gUnknown_02038690
+_080C2BD4: .4byte gContestMons
+_080C2BD8: .4byte gMonFrontPicTable
+_080C2BDC: .4byte gMonFrontPicCoords
+_080C2BE0: .4byte gUnknown_081FAF4C
+_080C2BE4: .4byte 0x02000000
+_080C2BE8: .4byte gUnknown_02024E8C
+_080C2BEC: .4byte gSprites
+_080C2BF0: .4byte sub_80C3C44
+_080C2BF4: .4byte gUnknown_083D17CC
+_080C2BF8: .4byte gUnknown_083D17D4
+_080C2BFC: .4byte sub_80C3D04
+_080C2C00: .4byte gTasks
+_080C2C04:
+ lsls r0, r7, 2
+ adds r0, r7
+ lsls r0, 3
+ adds r4, r0, r4
+ ldrh r0, [r4, 0xE]
+ adds r0, 0x1
+ strh r0, [r4, 0xE]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x1
+ bne _080C2D04
+ movs r0, 0
+ strh r0, [r4, 0xE]
+ ldrh r0, [r4, 0xC]
+ adds r0, 0x2
+ strh r0, [r4, 0xC]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x20
+ ble _080C2C30
+ movs r0, 0x20
+ strh r0, [r4, 0xC]
+_080C2C30:
+ ldrb r2, [r4, 0xC]
+ ldr r3, _080C2C50 @ =gUnknown_03004240
+ movs r0, 0x50
+ subs r0, r2
+ lsls r0, 8
+ adds r1, r2, 0
+ adds r1, 0x50
+ orrs r0, r1
+ strh r0, [r3]
+ cmp r2, 0x20
+ bne _080C2D04
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+ b _080C2D04
+ .align 2, 0
+_080C2C50: .4byte gUnknown_03004240
+_080C2C54:
+ ldr r0, _080C2C60 @ =0x02018000
+ ldrb r0, [r0, 0x6]
+ cmp r0, 0x1
+ bne _080C2D04
+ b _080C2CD0
+ .align 2, 0
+_080C2C60: .4byte 0x02018000
+_080C2C64:
+ lsls r0, r7, 2
+ adds r0, r7
+ lsls r0, 3
+ adds r3, r0, r4
+ ldrh r0, [r3, 0xA]
+ adds r0, 0x1
+ strh r0, [r3, 0xA]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x79
+ bne _080C2D04
+ movs r0, 0
+ strh r0, [r3, 0xA]
+ ldr r2, _080C2C9C @ =gSprites
+ ldr r0, _080C2CA0 @ =0x02018000
+ ldrb r1, [r0, 0x8]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r2, 0x1C
+ adds r0, r2
+ ldr r1, _080C2CA4 @ =sub_80C3CB8
+ str r1, [r0]
+ ldrh r0, [r3, 0x8]
+ adds r0, 0x1
+ strh r0, [r3, 0x8]
+ b _080C2D04
+ .align 2, 0
+_080C2C9C: .4byte gSprites
+_080C2CA0: .4byte 0x02018000
+_080C2CA4: .4byte sub_80C3CB8
+_080C2CA8:
+ ldr r0, _080C2CE0 @ =0x02018000
+ ldrb r0, [r0, 0x6]
+ cmp r0, 0x2
+ bne _080C2D04
+ ldr r3, _080C2CE4 @ =gUnknown_03004240
+ ldrh r0, [r3]
+ lsrs r2, r0, 8
+ adds r0, r2, 0x2
+ lsls r0, 24
+ lsrs r2, r0, 24
+ cmp r2, 0x50
+ bls _080C2CC2
+ movs r2, 0x50
+_080C2CC2:
+ lsls r1, r2, 8
+ movs r0, 0xA0
+ subs r0, r2
+ orrs r1, r0
+ strh r1, [r3]
+ cmp r2, 0x50
+ bne _080C2D04
+_080C2CD0:
+ lsls r0, r7, 2
+ adds r0, r7
+ lsls r0, 3
+ adds r0, r4
+ ldrh r1, [r0, 0x8]
+ adds r1, 0x1
+ strh r1, [r0, 0x8]
+ b _080C2D04
+ .align 2, 0
+_080C2CE0: .4byte 0x02018000
+_080C2CE4: .4byte gUnknown_03004240
+_080C2CE8:
+ ldr r2, _080C2D14 @ =0x02018000
+ ldrb r0, [r2, 0x6]
+ cmp r0, 0x2
+ bne _080C2D04
+ movs r1, 0
+ movs r0, 0x1
+ strb r0, [r2, 0x9]
+ lsls r0, r7, 2
+ adds r0, r7
+ lsls r0, 3
+ adds r0, r4
+ strh r1, [r0, 0x8]
+ ldr r1, _080C2D18 @ =sub_80C2D1C
+ str r1, [r0]
+_080C2D04:
+ add sp, 0x10
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C2D14: .4byte 0x02018000
+_080C2D18: .4byte sub_80C2D1C
+ thumb_func_end sub_80C2A8C
+
+ thumb_func_start sub_80C2D1C
+sub_80C2D1C: @ 80C2D1C
+ push {r4-r7,lr}
+ lsls r0, 24
+ lsrs r7, r0, 24
+ ldr r0, _080C2D6C @ =gMain
+ ldrh r1, [r0, 0x2E]
+ movs r2, 0x1
+ adds r0, r2, 0
+ ands r0, r1
+ cmp r0, 0
+ beq _080C2D66
+ ldr r0, _080C2D70 @ =gIsLinkContest
+ ldrb r1, [r0]
+ adds r0, r2, 0
+ ands r0, r1
+ lsls r6, r7, 2
+ cmp r0, 0
+ bne _080C2D5A
+ ldr r5, _080C2D74 @ =gContestMons
+ movs r4, 0x3
+_080C2D42:
+ ldrh r0, [r5]
+ bl SpeciesToNationalPokedexNum
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0x2
+ bl GetNationalPokedexFlag
+ adds r5, 0x40
+ subs r4, 0x1
+ cmp r4, 0
+ bge _080C2D42
+_080C2D5A:
+ ldr r0, _080C2D78 @ =gTasks
+ adds r1, r6, r7
+ lsls r1, 3
+ adds r1, r0
+ ldr r0, _080C2D7C @ =sub_80C2D80
+ str r0, [r1]
+_080C2D66:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C2D6C: .4byte gMain
+_080C2D70: .4byte gIsLinkContest
+_080C2D74: .4byte gContestMons
+_080C2D78: .4byte gTasks
+_080C2D7C: .4byte sub_80C2D80
+ thumb_func_end sub_80C2D1C
+
+ thumb_func_start sub_80C2D80
+sub_80C2D80: @ 80C2D80
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r0, _080C2DAC @ =gIsLinkContest
+ ldrb r1, [r0]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _080C2DBC
+ ldr r0, _080C2DB0 @ =gOtherText_LinkStandby
+ bl sub_80C3698
+ bl sub_800832C
+ ldr r1, _080C2DB4 @ =gTasks
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _080C2DB8 @ =sub_80C2DD8
+ str r1, [r0]
+ b _080C2DCA
+ .align 2, 0
+_080C2DAC: .4byte gIsLinkContest
+_080C2DB0: .4byte gOtherText_LinkStandby
+_080C2DB4: .4byte gTasks
+_080C2DB8: .4byte sub_80C2DD8
+_080C2DBC:
+ ldr r0, _080C2DD0 @ =gTasks
+ lsls r1, r4, 2
+ adds r1, r4
+ lsls r1, 3
+ adds r1, r0
+ ldr r0, _080C2DD4 @ =sub_80C2E14
+ str r0, [r1]
+_080C2DCA:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C2DD0: .4byte gTasks
+_080C2DD4: .4byte sub_80C2E14
+ thumb_func_end sub_80C2D80
+
+ thumb_func_start sub_80C2DD8
+sub_80C2DD8: @ 80C2DD8
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r0, _080C2E04 @ =gReceivedRemoteLinkPlayers
+ ldrb r1, [r0]
+ cmp r1, 0
+ bne _080C2DFC
+ ldr r0, _080C2E08 @ =gIsLinkContest
+ strb r1, [r0]
+ bl sub_80C3764
+ ldr r1, _080C2E0C @ =gTasks
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _080C2E10 @ =sub_80C2E14
+ str r1, [r0]
+_080C2DFC:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C2E04: .4byte gReceivedRemoteLinkPlayers
+_080C2E08: .4byte gIsLinkContest
+_080C2E0C: .4byte gTasks
+_080C2E10: .4byte sub_80C2E14
+ thumb_func_end sub_80C2DD8
+
+ thumb_func_start sub_80C2E14
+sub_80C2E14: @ 80C2E14
+ push {r4-r6,lr}
+ sub sp, 0x4
+ adds r5, r0, 0
+ lsls r5, 24
+ lsrs r5, 24
+ ldr r1, _080C2E80 @ =gUnknown_02038690
+ ldr r0, _080C2E84 @ =gContestPlayerMonIndex
+ ldrb r0, [r0]
+ adds r0, r1
+ ldrb r0, [r0]
+ bl sub_80BE284
+ movs r0, 0x2
+ bl sub_810FB10
+ ldr r0, _080C2E88 @ =gScriptContestRank
+ ldrb r0, [r0]
+ bl sub_80B2A7C
+ movs r0, 0xFE
+ bl sub_80B2A7C
+ ldr r4, _080C2E8C @ =0x02000000
+ ldr r0, _080C2E90 @ =0x00015ddf
+ adds r1, r4, r0
+ movs r6, 0
+ movs r0, 0x1
+ strb r0, [r1]
+ movs r0, 0xFE
+ movs r1, 0
+ bl sub_80B2C4C
+ ldr r1, _080C2E94 @ =0x00015dde
+ adds r4, r1
+ strb r0, [r4]
+ str r6, [sp]
+ movs r0, 0xFF
+ movs r1, 0
+ movs r2, 0
+ movs r3, 0x10
+ bl BeginHardwarePaletteFade
+ ldr r1, _080C2E98 @ =gTasks
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _080C2E9C @ =sub_80C2EA0
+ str r1, [r0]
+ add sp, 0x4
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C2E80: .4byte gUnknown_02038690
+_080C2E84: .4byte gContestPlayerMonIndex
+_080C2E88: .4byte gScriptContestRank
+_080C2E8C: .4byte 0x02000000
+_080C2E90: .4byte 0x00015ddf
+_080C2E94: .4byte 0x00015dde
+_080C2E98: .4byte gTasks
+_080C2E9C: .4byte sub_80C2EA0
+ thumb_func_end sub_80C2E14
+
+ thumb_func_start sub_80C2EA0
+sub_80C2EA0: @ 80C2EA0
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r2, r0, 24
+ adds r5, r2, 0
+ ldr r0, _080C2ED8 @ =gPaletteFade
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ lsls r0, 24
+ lsrs r3, r0, 24
+ cmp r3, 0
+ bne _080C2F18
+ ldr r1, _080C2EDC @ =gTasks
+ lsls r0, r2, 2
+ adds r0, r2
+ lsls r0, 3
+ adds r4, r0, r1
+ movs r1, 0xA
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ bne _080C2EE8
+ ldr r0, _080C2EE0 @ =0x02018000
+ ldrb r0, [r0, 0x3]
+ bl DestroyTask
+ ldr r0, _080C2EE4 @ =0x0000ffff
+ b _080C2EEE
+ .align 2, 0
+_080C2ED8: .4byte gPaletteFade
+_080C2EDC: .4byte gTasks
+_080C2EE0: .4byte 0x02018000
+_080C2EE4: .4byte 0x0000ffff
+_080C2EE8:
+ cmp r0, 0x1
+ bne _080C2F04
+ ldr r0, _080C2F00 @ =0xffff0000
+_080C2EEE:
+ movs r1, 0x10
+ movs r2, 0
+ bl BlendPalettes
+ ldrh r0, [r4, 0xA]
+ adds r0, 0x1
+ strh r0, [r4, 0xA]
+ b _080C2F18
+ .align 2, 0
+_080C2F00: .4byte 0xffff0000
+_080C2F04:
+ ldr r0, _080C2F20 @ =REG_BLDCNT
+ strh r3, [r0]
+ adds r0, 0x4
+ strh r3, [r0]
+ adds r0, r5, 0
+ bl DestroyTask
+ ldr r0, _080C2F24 @ =c2_exit_to_overworld_1_continue_scripts_restart_music
+ bl SetMainCallback2
+_080C2F18:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C2F20: .4byte REG_BLDCNT
+_080C2F24: .4byte c2_exit_to_overworld_1_continue_scripts_restart_music
+ thumb_func_end sub_80C2EA0
+
+ thumb_func_start sub_80C2F28
+sub_80C2F28: @ 80C2F28
+ push {r4,r5,lr}
+ ldr r2, _080C2F5C @ =gUnknown_030041B0
+ ldrh r3, [r2]
+ adds r0, r3, 0x2
+ strh r0, [r2]
+ ldr r4, _080C2F60 @ =gUnknown_030041B8
+ ldrh r5, [r4]
+ adds r1, r5, 0x1
+ strh r1, [r4]
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0xFF
+ bls _080C2F48
+ adds r0, r3, 0
+ subs r0, 0xFD
+ strh r0, [r2]
+_080C2F48:
+ lsls r0, r1, 16
+ lsrs r0, 16
+ cmp r0, 0xFF
+ bls _080C2F56
+ adds r0, r5, 0
+ subs r0, 0xFE
+ strh r0, [r4]
+_080C2F56:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C2F5C: .4byte gUnknown_030041B0
+_080C2F60: .4byte gUnknown_030041B8
+ thumb_func_end sub_80C2F28
+
+ thumb_func_start sub_80C2F64
+sub_80C2F64: @ 80C2F64
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldr r1, _080C2F94 @ =gTasks
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ adds r2, r0, r1
+ ldrh r0, [r2, 0x8]
+ adds r0, 0x1
+ strh r0, [r2, 0x8]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x2
+ bne _080C2FE6
+ movs r0, 0
+ strh r0, [r2, 0x8]
+ movs r3, 0xC
+ ldrsh r0, [r2, r3]
+ cmp r0, 0
+ bne _080C2F98
+ ldrh r0, [r2, 0xA]
+ adds r0, 0x1
+ b _080C2F9C
+ .align 2, 0
+_080C2F94: .4byte gTasks
+_080C2F98:
+ ldrh r0, [r2, 0xA]
+ subs r0, 0x1
+_080C2F9C:
+ strh r0, [r2, 0xA]
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ adds r1, r0, r1
+ movs r2, 0xA
+ ldrsh r0, [r1, r2]
+ cmp r0, 0x10
+ bne _080C2FB2
+ movs r0, 0x1
+ b _080C2FB6
+_080C2FB2:
+ cmp r0, 0
+ bne _080C2FB8
+_080C2FB6:
+ strh r0, [r1, 0xC]
+_080C2FB8:
+ ldr r0, _080C3000 @ =gTasks
+ lsls r4, r5, 2
+ adds r4, r5
+ lsls r4, 3
+ adds r4, r0
+ ldrb r2, [r4, 0xA]
+ ldr r3, _080C3004 @ =0x00002ede
+ movs r0, 0x6B
+ movs r1, 0x1
+ bl BlendPalette
+ ldrb r2, [r4, 0xA]
+ ldr r3, _080C3008 @ =0x00007fff
+ movs r0, 0x68
+ movs r1, 0x1
+ bl BlendPalette
+ ldrb r2, [r4, 0xA]
+ ldr r3, _080C300C @ =0x000077be
+ movs r0, 0x6E
+ movs r1, 0x1
+ bl BlendPalette
+_080C2FE6:
+ ldr r1, _080C3000 @ =gTasks
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ adds r0, r1
+ movs r3, 0xA
+ ldrsh r4, [r0, r3]
+ cmp r4, 0
+ bne _080C3014
+ ldr r0, _080C3010 @ =0x02018000
+ strb r4, [r0, 0xA]
+ b _080C301A
+ .align 2, 0
+_080C3000: .4byte gTasks
+_080C3004: .4byte 0x00002ede
+_080C3008: .4byte 0x00007fff
+_080C300C: .4byte 0x000077be
+_080C3010: .4byte 0x02018000
+_080C3014:
+ ldr r1, _080C3020 @ =0x02018000
+ movs r0, 0x1
+ strb r0, [r1, 0xA]
+_080C301A:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C3020: .4byte 0x02018000
+ thumb_func_end sub_80C2F64
+
+ thumb_func_start sub_80C3024
+sub_80C3024: @ 80C3024
+ push {r4-r6,lr}
+ ldr r6, [sp, 0x10]
+ lsls r0, 16
+ lsrs r0, 16
+ lsls r1, 24
+ lsrs r4, r1, 24
+ lsls r2, 24
+ lsrs r5, r2, 24
+ lsls r3, 24
+ cmp r3, 0
+ beq _080C30B0
+ adds r1, r6, 0
+ bl GetMonIconPtr
+ lsls r1, r5, 9
+ adds r0, r1
+ adds r0, 0x80
+ lsls r1, r4, 9
+ ldr r2, _080C30A0 @ =0x06004000
+ adds r1, r2
+ ldr r2, _080C30A4 @ =0x040000d4
+ str r0, [r2]
+ str r1, [r2, 0x4]
+ ldr r0, _080C30A8 @ =0x84000060
+ str r0, [r2, 0x8]
+ ldr r0, [r2, 0x8]
+ adds r1, r4, 0
+ adds r1, 0xA
+ lsls r1, 28
+ lsls r0, r4, 20
+ movs r2, 0x80
+ lsls r2, 18
+ adds r0, r2
+ orrs r0, r1
+ lsrs r1, r0, 16
+ lsls r0, r4, 1
+ adds r0, r4
+ lsls r0, 21
+ movs r2, 0x83
+ lsls r2, 16
+ adds r0, r2
+ lsrs r5, r0, 16
+ movs r2, 0
+ ldr r6, _080C30AC @ =0x0600c000
+_080C307C:
+ lsls r0, r2, 5
+ adds r4, r2, 0x1
+ adds r0, r5
+ movs r3, 0x3
+ lsls r0, 1
+ adds r2, r0, r6
+_080C3088:
+ strh r1, [r2]
+ adds r0, r1, 0x1
+ lsls r0, 16
+ lsrs r1, r0, 16
+ adds r2, 0x2
+ subs r3, 0x1
+ cmp r3, 0
+ bge _080C3088
+ adds r2, r4, 0
+ cmp r2, 0x2
+ ble _080C307C
+ b _080C30CA
+ .align 2, 0
+_080C30A0: .4byte 0x06004000
+_080C30A4: .4byte 0x040000d4
+_080C30A8: .4byte 0x84000060
+_080C30AC: .4byte 0x0600c000
+_080C30B0:
+ adds r1, r6, 0
+ bl GetMonIconPtr
+ lsls r1, r5, 9
+ adds r0, r1
+ adds r0, 0x80
+ lsls r1, r4, 9
+ ldr r2, _080C30D0 @ =0x06004000
+ adds r1, r2
+ movs r2, 0xC0
+ lsls r2, 1
+ bl RequestSpriteCopy
+_080C30CA:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C30D0: .4byte 0x06004000
+ thumb_func_end sub_80C3024
+
+ thumb_func_start sub_80C30D4
+sub_80C30D4: @ 80C30D4
+ push {r4-r7,lr}
+ sub sp, 0x4
+ lsls r0, 24
+ lsrs r7, r0, 24
+ lsls r1, 24
+ lsrs r6, r1, 24
+ movs r5, 0
+ ldr r4, _080C3108 @ =gContestMons
+_080C30E4:
+ ldrh r0, [r4]
+ lsls r1, r5, 24
+ lsrs r1, 24
+ ldr r2, [r4, 0x38]
+ str r2, [sp]
+ adds r2, r7, 0
+ adds r3, r6, 0
+ bl sub_80C3024
+ adds r4, 0x40
+ adds r5, 0x1
+ cmp r5, 0x3
+ ble _080C30E4
+ add sp, 0x4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C3108: .4byte gContestMons
+ thumb_func_end sub_80C30D4
+
+ thumb_func_start sub_80C310C
+sub_80C310C: @ 80C310C
+ push {r4-r6,lr}
+ movs r4, 0
+ ldr r6, _080C314C @ =gMonIconPaletteIndices
+ movs r5, 0xA0
+ lsls r5, 16
+_080C3116:
+ ldr r1, _080C3150 @ =gContestMons
+ lsls r0, r4, 6
+ adds r0, r1
+ ldrh r0, [r0]
+ movs r1, 0
+ bl mon_icon_convert_unown_species_id
+ lsls r0, 16
+ lsrs r0, 16
+ adds r0, r6
+ ldrb r0, [r0]
+ lsls r0, 5
+ ldr r1, _080C3154 @ =gMonIconPalettes
+ adds r0, r1
+ lsrs r1, r5, 16
+ movs r2, 0x20
+ bl LoadPalette
+ movs r0, 0x80
+ lsls r0, 13
+ adds r5, r0
+ adds r4, 0x1
+ cmp r4, 0x3
+ ble _080C3116
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C314C: .4byte gMonIconPaletteIndices
+_080C3150: .4byte gContestMons
+_080C3154: .4byte gMonIconPalettes
+ thumb_func_end sub_80C310C
+
+ thumb_func_start sub_80C3158
+sub_80C3158: @ 80C3158
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x1C
+ mov r9, r0
+ lsls r1, 24
+ lsrs r1, 24
+ lsls r2, r1, 4
+ adds r2, r1
+ lsls r2, 2
+ ldr r3, _080C32C0 @ =gSprites
+ adds r2, r3
+ mov r1, sp
+ ldrh r0, [r2, 0x4]
+ lsls r0, 22
+ lsrs r0, 22
+ strh r0, [r1]
+ mov r4, sp
+ movs r0, 0x2E
+ ldrsh r1, [r2, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r3
+ ldrh r0, [r0, 0x4]
+ lsls r0, 22
+ lsrs r0, 22
+ strh r0, [r4, 0x2]
+ movs r0, 0x30
+ ldrsh r1, [r2, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r3
+ ldrh r0, [r0, 0x4]
+ lsls r0, 22
+ lsrs r0, 22
+ strh r0, [r4, 0x4]
+ movs r0, 0x32
+ ldrsh r1, [r2, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r3
+ ldrh r0, [r0, 0x4]
+ lsls r0, 22
+ lsrs r0, 22
+ strh r0, [r4, 0x6]
+ ldr r1, _080C32C4 @ =gWindowConfig_81E7278
+ mov r8, r1
+ ldr r7, _080C32C8 @ =0x06010000
+ ldr r2, _080C32CC @ =0x040000d4
+ ldr r6, _080C32D0 @ =0x85000100
+ mov r1, sp
+ movs r5, 0
+ add r3, sp, 0x8
+ movs r4, 0x3
+_080C31CE:
+ ldrh r0, [r1]
+ lsls r0, 5
+ adds r0, r7
+ str r5, [sp, 0x8]
+ str r3, [r2]
+ str r0, [r2, 0x4]
+ str r6, [r2, 0x8]
+ ldr r0, [r2, 0x8]
+ adds r1, 0x2
+ subs r4, 0x1
+ cmp r4, 0
+ bge _080C31CE
+ mov r0, r8
+ mov r1, r9
+ bl GetStringWidthGivenWindowConfig
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldr r2, _080C32D4 @ =gDisplayedStringBattle
+ ldr r1, _080C32D8 @ =gUnknown_083D17E2
+ adds r0, r2, 0
+ bl StringCopy
+ adds r2, r0, 0
+ mvns r0, r5
+ adds r1, r0, 0x1
+ movs r0, 0x7
+ ands r1, r0
+ cmp r1, 0
+ beq _080C3218
+ movs r0, 0xFC
+ strb r0, [r2]
+ movs r0, 0x11
+ strb r0, [r2, 0x1]
+ lsrs r0, r1, 1
+ strb r0, [r2, 0x2]
+ adds r2, 0x3
+_080C3218:
+ adds r6, r5, 0x7
+ movs r1, 0x8
+ negs r1, r1
+ adds r0, r1, 0
+ ands r6, r0
+ lsls r6, 24
+ lsrs r5, r6, 24
+ adds r0, r2, 0
+ mov r1, r9
+ bl StringCopy
+ adds r2, r0, 0
+ movs r0, 0xFC
+ strb r0, [r2]
+ movs r0, 0x13
+ strb r0, [r2, 0x1]
+ strb r5, [r2, 0x2]
+ movs r0, 0xFF
+ strb r0, [r2, 0x3]
+ ldr r0, _080C32DC @ =0x02018068
+ mov r10, r0
+ ldr r1, _080C32D4 @ =gDisplayedStringBattle
+ bl sub_80034D4
+ mov r0, sp
+ ldrh r4, [r0]
+ lsls r4, 5
+ ldr r1, _080C32C8 @ =0x06010000
+ adds r7, r4, r1
+ ldr r0, _080C32E0 @ =gUnknown_083D1624
+ mov r9, r0
+ ldr r1, _080C32E4 @ =REG_BG0CNT
+ mov r8, r1
+ adds r1, r7, 0
+ mov r2, r8
+ bl CpuSet
+ mov r5, r9
+ adds r5, 0x80
+ ldr r0, _080C32E8 @ =0x06010100
+ adds r1, r4, r0
+ adds r0, r5, 0
+ mov r2, r8
+ bl CpuSet
+ ldr r0, _080C32EC @ =0x06010200
+ adds r1, r4, r0
+ adds r0, r5, 0
+ mov r2, r8
+ bl CpuSet
+ mov r0, r9
+ adds r0, 0x40
+ ldr r1, _080C32F0 @ =0x06010300
+ adds r4, r1
+ adds r1, r4, 0
+ mov r2, r8
+ bl CpuSet
+ lsrs r5, r6, 27
+ movs r4, 0
+ cmp r4, r5
+ bgt _080C3382
+ mov r6, sp
+ mov r0, r10
+ adds r0, 0x20
+ str r0, [sp, 0xC]
+ mov r1, r10
+ str r1, [sp, 0x10]
+ ldr r0, _080C32F4 @ =0x0600fd20
+ str r0, [sp, 0x14]
+ ldr r1, _080C32F8 @ =0x0600fe20
+ str r1, [sp, 0x18]
+ ldr r0, _080C32FC @ =0x0600ff20
+ mov r10, r0
+ ldr r1, _080C3300 @ =0x06010020
+ mov r9, r1
+_080C32B2:
+ cmp r4, 0x6
+ bgt _080C3304
+ ldrh r0, [r6]
+ lsls r0, 5
+ mov r1, r9
+ b _080C3322
+ .align 2, 0
+_080C32C0: .4byte gSprites
+_080C32C4: .4byte gWindowConfig_81E7278
+_080C32C8: .4byte 0x06010000
+_080C32CC: .4byte 0x040000d4
+_080C32D0: .4byte 0x85000100
+_080C32D4: .4byte gDisplayedStringBattle
+_080C32D8: .4byte gUnknown_083D17E2
+_080C32DC: .4byte 0x02018068
+_080C32E0: .4byte gUnknown_083D1624
+_080C32E4: .4byte REG_BG0CNT
+_080C32E8: .4byte 0x06010100
+_080C32EC: .4byte 0x06010200
+_080C32F0: .4byte 0x06010300
+_080C32F4: .4byte 0x0600fd20
+_080C32F8: .4byte 0x0600fe20
+_080C32FC: .4byte 0x0600ff20
+_080C3300: .4byte 0x06010020
+_080C3304:
+ cmp r4, 0xE
+ bgt _080C3310
+ ldrh r0, [r6, 0x2]
+ lsls r0, 5
+ mov r1, r10
+ b _080C3322
+_080C3310:
+ cmp r4, 0x16
+ bgt _080C331C
+ ldrh r0, [r6, 0x4]
+ lsls r0, 5
+ ldr r1, [sp, 0x18]
+ b _080C3322
+_080C331C:
+ ldrh r0, [r6, 0x6]
+ lsls r0, 5
+ ldr r1, [sp, 0x14]
+_080C3322:
+ adds r7, r0, r1
+ cmp r4, r5
+ beq _080C3382
+ ldr r0, _080C33D0 @ =gUnknown_083D16E4
+ adds r1, r7, 0
+ mov r2, r8
+ bl CpuSet
+ movs r0, 0xC0
+ lsls r0, 2
+ adds r1, r7, r0
+ ldr r0, _080C33D0 @ =gUnknown_083D16E4
+ adds r0, 0x20
+ mov r2, r8
+ bl CpuSet
+ movs r0, 0x80
+ lsls r0, 1
+ adds r1, r7, r0
+ ldr r0, [sp, 0x10]
+ mov r2, r8
+ bl CpuSet
+ movs r0, 0x80
+ lsls r0, 2
+ adds r1, r7, r0
+ ldr r0, [sp, 0xC]
+ mov r2, r8
+ bl CpuSet
+ ldr r1, [sp, 0xC]
+ adds r1, 0x40
+ str r1, [sp, 0xC]
+ ldr r0, [sp, 0x10]
+ adds r0, 0x40
+ str r0, [sp, 0x10]
+ ldr r1, [sp, 0x14]
+ adds r1, 0x20
+ str r1, [sp, 0x14]
+ ldr r0, [sp, 0x18]
+ adds r0, 0x20
+ str r0, [sp, 0x18]
+ movs r1, 0x20
+ add r10, r1
+ add r9, r1
+ adds r4, 0x1
+ cmp r4, r5
+ ble _080C32B2
+_080C3382:
+ ldr r4, _080C33D4 @ =gUnknown_083D1644
+ ldr r5, _080C33D8 @ =REG_BG0CNT
+ adds r0, r4, 0
+ adds r1, r7, 0
+ adds r2, r5, 0
+ bl CpuSet
+ adds r6, r4, 0
+ adds r6, 0x80
+ movs r0, 0x80
+ lsls r0, 1
+ adds r1, r7, r0
+ adds r0, r6, 0
+ adds r2, r5, 0
+ bl CpuSet
+ movs r0, 0x80
+ lsls r0, 2
+ adds r1, r7, r0
+ adds r0, r6, 0
+ adds r2, r5, 0
+ bl CpuSet
+ adds r4, 0x40
+ movs r0, 0xC0
+ lsls r0, 2
+ adds r1, r7, r0
+ adds r0, r4, 0
+ adds r2, r5, 0
+ bl CpuSet
+ add sp, 0x1C
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C33D0: .4byte gUnknown_083D16E4
+_080C33D4: .4byte gUnknown_083D1644
+_080C33D8: .4byte REG_BG0CNT
+ thumb_func_end sub_80C3158
+
+ thumb_func_start sub_80C33DC
+sub_80C33DC: @ 80C33DC
+ push {r4-r6,lr}
+ sub sp, 0x20
+ mov r1, sp
+ ldr r0, _080C3498 @ =gSpriteTemplate_83D174C
+ ldm r0!, {r2-r4}
+ stm r1!, {r2-r4}
+ ldm r0!, {r2-r4}
+ stm r1!, {r2-r4}
+ add r5, sp, 0x18
+ ldr r6, _080C349C @ =gUnknown_083D1764
+ movs r4, 0x7
+_080C33F2:
+ adds r0, r6, 0
+ bl LoadSpriteSheet
+ adds r6, 0x8
+ subs r4, 0x1
+ cmp r4, 0
+ bge _080C33F2
+ ldr r0, _080C34A0 @ =gUnknown_083D17A4
+ bl LoadSpritePalette
+ movs r4, 0
+ mov r6, sp
+_080C340A:
+ mov r0, sp
+ movs r1, 0x88
+ lsls r1, 1
+ movs r2, 0x90
+ movs r3, 0xA
+ bl CreateSprite
+ adds r1, r5, r4
+ strb r0, [r1]
+ ldrh r0, [r6]
+ adds r0, 0x1
+ strh r0, [r6]
+ adds r4, 0x1
+ cmp r4, 0x7
+ ble _080C340A
+ ldr r2, _080C34A4 @ =gSprites
+ ldrb r1, [r5]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrb r1, [r5, 0x1]
+ movs r3, 0
+ strh r1, [r0, 0x2E]
+ ldrb r1, [r5]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrb r1, [r5, 0x2]
+ strh r1, [r0, 0x30]
+ ldrb r1, [r5]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrb r1, [r5, 0x3]
+ strh r1, [r0, 0x32]
+ ldrb r1, [r5, 0x4]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrb r1, [r5, 0x5]
+ strh r1, [r0, 0x2E]
+ ldrb r1, [r5, 0x4]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrb r1, [r5, 0x6]
+ strh r1, [r0, 0x30]
+ ldrb r1, [r5, 0x4]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrb r1, [r5, 0x7]
+ strh r1, [r0, 0x32]
+ ldr r1, _080C34A8 @ =0x02018000
+ ldrb r0, [r5]
+ strb r0, [r1]
+ strb r3, [r1, 0x4]
+ ldrb r0, [r5, 0x4]
+ strb r0, [r1, 0x1]
+ bl sub_80C3764
+ add sp, 0x20
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C3498: .4byte gSpriteTemplate_83D174C
+_080C349C: .4byte gUnknown_083D1764
+_080C34A0: .4byte gUnknown_083D17A4
+_080C34A4: .4byte gSprites
+_080C34A8: .4byte 0x02018000
+ thumb_func_end sub_80C33DC
+
+ thumb_func_start sub_80C34AC
+sub_80C34AC: @ 80C34AC
+ push {lr}
+ bl StringLength
+ lsls r0, 16
+ lsrs r0, 16
+ lsls r1, r0, 1
+ adds r1, r0
+ lsls r1, 25
+ lsrs r1, 25
+ movs r0, 0x70
+ subs r0, r1
+ lsls r0, 16
+ lsrs r0, 16
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80C34AC
+
+ thumb_func_start sub_80C34CC
+sub_80C34CC: @ 80C34CC
+ push {r4-r6,lr}
+ mov r6, r8
+ push {r6}
+ ldr r4, _080C3514 @ =0x02018000
+ mov r8, r4
+ ldrb r5, [r4]
+ lsls r4, r5, 4
+ adds r4, r5
+ lsls r4, 2
+ ldr r5, _080C3518 @ =gSprites
+ adds r4, r5
+ movs r6, 0
+ movs r5, 0x88
+ lsls r5, 1
+ strh r5, [r4, 0x20]
+ strh r1, [r4, 0x22]
+ strh r6, [r4, 0x24]
+ strh r6, [r4, 0x26]
+ lsls r0, 16
+ asrs r0, 16
+ adds r0, 0x20
+ strh r0, [r4, 0x36]
+ strh r2, [r4, 0x38]
+ strh r3, [r4, 0x3A]
+ strh r6, [r4, 0x3C]
+ ldr r0, _080C351C @ =sub_80C3588
+ str r0, [r4, 0x1C]
+ movs r0, 0x1
+ mov r1, r8
+ strb r0, [r1, 0x4]
+ pop {r3}
+ mov r8, r3
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C3514: .4byte 0x02018000
+_080C3518: .4byte gSprites
+_080C351C: .4byte sub_80C3588
+ thumb_func_end sub_80C34CC
+
+ thumb_func_start sub_80C3520
+sub_80C3520: @ 80C3520
+ push {r4,r5,lr}
+ ldr r4, _080C3558 @ =0x02018000
+ ldrb r2, [r4]
+ lsls r1, r2, 4
+ adds r1, r2
+ lsls r1, 2
+ ldr r2, _080C355C @ =gSprites
+ adds r1, r2
+ ldrh r2, [r1, 0x24]
+ ldrh r3, [r1, 0x20]
+ adds r2, r3
+ movs r3, 0
+ strh r2, [r1, 0x20]
+ ldrh r2, [r1, 0x26]
+ ldrh r5, [r1, 0x22]
+ adds r2, r5
+ strh r2, [r1, 0x22]
+ strh r3, [r1, 0x26]
+ strh r3, [r1, 0x24]
+ strh r0, [r1, 0x3A]
+ strh r3, [r1, 0x3C]
+ ldr r0, _080C3560 @ =sub_80C3630
+ str r0, [r1, 0x1C]
+ movs r0, 0x3
+ strb r0, [r4, 0x4]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C3558: .4byte 0x02018000
+_080C355C: .4byte gSprites
+_080C3560: .4byte sub_80C3630
+ thumb_func_end sub_80C3520
+
+ thumb_func_start sub_80C3564
+sub_80C3564: @ 80C3564
+ movs r3, 0
+ movs r2, 0
+ movs r1, 0x88
+ lsls r1, 1
+ strh r1, [r0, 0x20]
+ movs r1, 0x90
+ strh r1, [r0, 0x22]
+ strh r2, [r0, 0x26]
+ strh r2, [r0, 0x24]
+ ldr r1, _080C3580 @ =SpriteCallbackDummy
+ str r1, [r0, 0x1C]
+ ldr r0, _080C3584 @ =0x02018000
+ strb r3, [r0, 0x4]
+ bx lr
+ .align 2, 0
+_080C3580: .4byte SpriteCallbackDummy
+_080C3584: .4byte 0x02018000
+ thumb_func_end sub_80C3564
+
+ thumb_func_start sub_80C3588
+sub_80C3588: @ 80C3588
+ push {r4-r7,lr}
+ adds r3, r0, 0
+ ldrh r2, [r3, 0x3A]
+ ldrh r0, [r3, 0x3C]
+ adds r2, r0
+ lsls r1, r2, 16
+ asrs r1, 24
+ ldrh r0, [r3, 0x20]
+ subs r0, r1
+ strh r0, [r3, 0x20]
+ movs r1, 0xFF
+ ands r2, r1
+ strh r2, [r3, 0x3C]
+ lsls r0, 16
+ asrs r0, 16
+ ldrh r2, [r3, 0x36]
+ movs r4, 0x36
+ ldrsh r1, [r3, r4]
+ cmp r0, r1
+ bge _080C35B2
+ strh r2, [r3, 0x20]
+_080C35B2:
+ movs r4, 0
+ ldr r6, _080C35F4 @ =gSprites
+ movs r5, 0x40
+ adds r2, r3, 0
+ adds r2, 0x2E
+_080C35BC:
+ movs r7, 0
+ ldrsh r0, [r2, r7]
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r6
+ ldrh r0, [r3, 0x24]
+ ldrh r7, [r3, 0x20]
+ adds r0, r7
+ adds r0, r5
+ strh r0, [r1, 0x20]
+ adds r5, 0x40
+ adds r2, 0x2
+ adds r4, 0x1
+ cmp r4, 0x2
+ ble _080C35BC
+ movs r0, 0x20
+ ldrsh r1, [r3, r0]
+ movs r2, 0x36
+ ldrsh r0, [r3, r2]
+ cmp r1, r0
+ bne _080C35EC
+ ldr r0, _080C35F8 @ =sub_80C35FC
+ str r0, [r3, 0x1C]
+_080C35EC:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C35F4: .4byte gSprites
+_080C35F8: .4byte sub_80C35FC
+ thumb_func_end sub_80C3588
+
+ thumb_func_start sub_80C35FC
+sub_80C35FC: @ 80C35FC
+ push {lr}
+ adds r2, r0, 0
+ ldr r0, _080C3628 @ =0x02018000
+ movs r1, 0x2
+ strb r1, [r0, 0x4]
+ ldrh r3, [r2, 0x38]
+ ldr r1, _080C362C @ =0xffff0000
+ lsrs r0, r1, 16
+ cmp r3, r0
+ beq _080C3624
+ subs r0, r3, 0x1
+ strh r0, [r2, 0x38]
+ lsls r0, 16
+ asrs r0, 16
+ asrs r1, 16
+ cmp r0, r1
+ bne _080C3624
+ ldrh r0, [r2, 0x3A]
+ bl sub_80C3520
+_080C3624:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C3628: .4byte 0x02018000
+_080C362C: .4byte 0xffff0000
+ thumb_func_end sub_80C35FC
+
+ thumb_func_start sub_80C3630
+sub_80C3630: @ 80C3630
+ push {r4-r7,lr}
+ adds r3, r0, 0
+ ldrh r2, [r3, 0x3A]
+ ldrh r0, [r3, 0x3C]
+ adds r2, r0
+ lsls r1, r2, 16
+ asrs r1, 24
+ ldrh r0, [r3, 0x20]
+ subs r0, r1
+ strh r0, [r3, 0x20]
+ movs r0, 0xFF
+ ands r2, r0
+ strh r2, [r3, 0x3C]
+ movs r4, 0
+ ldr r6, _080C3694 @ =gSprites
+ movs r5, 0x40
+ adds r2, r3, 0
+ adds r2, 0x2E
+_080C3654:
+ movs r1, 0
+ ldrsh r0, [r2, r1]
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r6
+ ldrh r0, [r3, 0x24]
+ ldrh r7, [r3, 0x20]
+ adds r0, r7
+ adds r0, r5
+ strh r0, [r1, 0x20]
+ adds r5, 0x40
+ adds r2, 0x2
+ adds r4, 0x1
+ cmp r4, 0x2
+ ble _080C3654
+ movs r1, 0x20
+ ldrsh r0, [r3, r1]
+ movs r2, 0x24
+ ldrsh r1, [r3, r2]
+ adds r0, r1
+ movs r1, 0xE0
+ negs r1, r1
+ cmp r0, r1
+ bge _080C368C
+ adds r0, r3, 0
+ bl sub_80C3564
+_080C368C:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C3694: .4byte gSprites
+ thumb_func_end sub_80C3630
+
+ thumb_func_start sub_80C3698
+sub_80C3698: @ 80C3698
+ push {r4-r7,lr}
+ adds r4, r0, 0
+ ldr r5, _080C374C @ =0x02018000
+ ldrb r1, [r5, 0x1]
+ bl sub_80C3158
+ adds r0, r4, 0
+ bl sub_80C34AC
+ lsls r0, 16
+ lsrs r0, 16
+ ldrb r2, [r5, 0x1]
+ lsls r1, r2, 4
+ adds r1, r2
+ lsls r1, 2
+ ldr r3, _080C3750 @ =gSprites
+ adds r4, r1, r3
+ adds r0, 0x20
+ strh r0, [r4, 0x20]
+ movs r0, 0x50
+ strh r0, [r4, 0x22]
+ adds r5, r4, 0
+ adds r5, 0x3E
+ ldrb r1, [r5]
+ movs r2, 0x5
+ negs r2, r2
+ adds r0, r2, 0
+ ands r0, r1
+ strb r0, [r5]
+ movs r5, 0
+ adds r6, r3, 0
+ mov r12, r2
+ movs r3, 0x40
+_080C36DA:
+ lsls r0, r5, 1
+ adds r2, r4, 0
+ adds r2, 0x2E
+ adds r2, r0
+ movs r1, 0
+ ldrsh r0, [r2, r1]
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r6
+ ldrh r0, [r4, 0x24]
+ ldrh r7, [r4, 0x20]
+ adds r0, r7
+ adds r0, r3
+ strh r0, [r1, 0x20]
+ movs r0, 0
+ ldrsh r1, [r2, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r6
+ ldrh r1, [r4, 0x22]
+ strh r1, [r0, 0x22]
+ movs r1, 0
+ ldrsh r0, [r2, r1]
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r6
+ adds r1, 0x3E
+ ldrb r2, [r1]
+ mov r0, r12
+ ands r0, r2
+ strb r0, [r1]
+ adds r3, 0x40
+ adds r5, 0x1
+ cmp r5, 0x2
+ ble _080C36DA
+ ldr r1, _080C3754 @ =gUnknown_030042C4
+ movs r0, 0xF0
+ strh r0, [r1]
+ ldr r2, _080C3758 @ =gUnknown_03004240
+ ldrh r1, [r4, 0x22]
+ adds r0, r1, 0
+ subs r0, 0x10
+ lsls r0, 8
+ adds r1, 0x10
+ orrs r0, r1
+ strh r0, [r2]
+ ldr r1, _080C375C @ =REG_WININ
+ ldr r2, _080C3760 @ =0x00003f3e
+ adds r0, r2, 0
+ strh r0, [r1]
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C374C: .4byte 0x02018000
+_080C3750: .4byte gSprites
+_080C3754: .4byte gUnknown_030042C4
+_080C3758: .4byte gUnknown_03004240
+_080C375C: .4byte REG_WININ
+_080C3760: .4byte 0x00003f3e
+ thumb_func_end sub_80C3698
+
+ thumb_func_start sub_80C3764
+sub_80C3764: @ 80C3764
+ push {r4-r7,lr}
+ ldr r0, _080C37C8 @ =0x02018000
+ ldrb r0, [r0, 0x1]
+ lsls r2, r0, 4
+ adds r2, r0
+ lsls r2, 2
+ ldr r3, _080C37CC @ =gSprites
+ adds r2, r3
+ movs r0, 0x3E
+ adds r0, r2
+ mov r12, r0
+ ldrb r0, [r0]
+ movs r1, 0x4
+ orrs r0, r1
+ mov r1, r12
+ strb r0, [r1]
+ ldr r7, _080C37D0 @ =gUnknown_030042C4
+ ldr r6, _080C37D4 @ =gUnknown_03004240
+ adds r5, r3, 0
+ movs r4, 0x4
+ adds r2, 0x2E
+ movs r3, 0x2
+_080C3790:
+ movs r1, 0
+ ldrsh r0, [r2, r1]
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r5
+ adds r1, 0x3E
+ ldrb r0, [r1]
+ orrs r0, r4
+ strb r0, [r1]
+ adds r2, 0x2
+ subs r3, 0x1
+ cmp r3, 0
+ bge _080C3790
+ movs r1, 0
+ strh r1, [r7]
+ strh r1, [r6]
+ ldr r0, _080C37D8 @ =REG_WIN0H
+ strh r1, [r0]
+ adds r0, 0x4
+ strh r1, [r0]
+ ldr r1, _080C37DC @ =REG_WININ
+ ldr r2, _080C37E0 @ =0x00003f3f
+ adds r0, r2, 0
+ strh r0, [r1]
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C37C8: .4byte 0x02018000
+_080C37CC: .4byte gSprites
+_080C37D0: .4byte gUnknown_030042C4
+_080C37D4: .4byte gUnknown_03004240
+_080C37D8: .4byte REG_WIN0H
+_080C37DC: .4byte REG_WININ
+_080C37E0: .4byte 0x00003f3f
+ thumb_func_end sub_80C3764
+
+ thumb_func_start de_sub_80C39A8
+de_sub_80C39A8: @ 80C39A8
+ push {r4,lr}
+ sub sp, 0x10
+ adds r1, r0, 0
+ ldr r0, _de_080C39DC @ =gIsLinkContest
+ ldrb r0, [r0]
+ movs r4, 0x1
+ ands r4, r0
+ cmp r4, 0
+ beq _de_080C39E8
+ ldr r0, _de_080C39E0 @ =0x0600e000
+ lsls r1, 16
+ lsrs r1, 16
+ ldr r3, _de_080C39E4 @ =gUnknown_08E964B8
+ movs r2, 0xB
+ str r2, [sp]
+ movs r4, 0x3
+ str r4, [sp, 0x4]
+ movs r2, 0x8
+ str r2, [sp, 0x8]
+ str r4, [sp, 0xC]
+ movs r2, 0
+ bl sub_809D104
+ movs r0, 0x8
+ b _de_080C3A74
+ .align 2, 0
+_de_080C39DC: .4byte gIsLinkContest
+_de_080C39E0: .4byte 0x0600e000
+_de_080C39E4: .4byte gUnknown_08E964B8
+_de_080C39E8:
+ ldr r0, _de_080C3A08 @ =gScriptContestRank
+ ldrh r0, [r0]
+ cmp r0, 0
+ bne _de_080C3A14
+ ldr r0, _de_080C3A0C @ =0x0600e000
+ lsls r1, 16
+ lsrs r1, 16
+ ldr r3, _de_080C3A10 @ =gUnknown_08E964B8
+ str r4, [sp]
+ str r4, [sp, 0x4]
+ movs r2, 0xB
+ str r2, [sp, 0x8]
+ movs r2, 0x3
+ str r2, [sp, 0xC]
+ b _de_080C3A6C
+ .align 2, 0
+_de_080C3A08: .4byte gScriptContestRank
+_de_080C3A0C: .4byte 0x0600e000
+_de_080C3A10: .4byte gUnknown_08E964B8
+_de_080C3A14:
+ cmp r0, 0x1
+ bne _de_080C3A2C
+ ldr r0, _de_080C3A24 @ =0x0600e000
+ lsls r1, 16
+ lsrs r1, 16
+ ldr r3, _de_080C3A28 @ =gUnknown_08E964B8
+ movs r2, 0xB
+ b _de_080C3A3A
+ .align 2, 0
+_de_080C3A24: .4byte 0x0600e000
+_de_080C3A28: .4byte gUnknown_08E964B8
+_de_080C3A2C:
+ cmp r0, 0x2
+ bne _de_080C3A58
+ ldr r0, _de_080C3A50 @ =0x0600e000
+ lsls r1, 16
+ lsrs r1, 16
+ ldr r3, _de_080C3A54 @ =gUnknown_08E964B8
+ movs r2, 0x15
+_de_080C3A3A:
+ str r2, [sp]
+ str r4, [sp, 0x4]
+ movs r2, 0xA
+ str r2, [sp, 0x8]
+ movs r2, 0x3
+ str r2, [sp, 0xC]
+ movs r2, 0
+ bl sub_809D104
+ movs r0, 0xA
+ b _de_080C3A74
+ .align 2, 0
+_de_080C3A50: .4byte 0x0600e000
+_de_080C3A54: .4byte gUnknown_08E964B8
+_de_080C3A58:
+ ldr r0, _de_080C3A7C @ =0x0600e000
+ lsls r1, 16
+ lsrs r1, 16
+ ldr r3, _de_080C3A80 @ =gUnknown_08E964B8
+ str r4, [sp]
+ movs r4, 0x3
+ str r4, [sp, 0x4]
+ movs r2, 0xB
+ str r2, [sp, 0x8]
+ str r4, [sp, 0xC]
+_de_080C3A6C:
+ movs r2, 0
+ bl sub_809D104
+ movs r0, 0xB
+_de_080C3A74:
+ add sp, 0x10
+ pop {r4}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_de_080C3A7C: .4byte 0x0600e000
+_de_080C3A80: .4byte gUnknown_08E964B8
+ thumb_func_end de_sub_80C39A8
+
+ thumb_func_start de_sub_80C3A84
+de_sub_80C3A84: @ 80C3A84
+ push {r4,lr}
+ sub sp, 0x10
+ adds r2, r0, 0
+ ldr r0, _de_080C3AAC @ =gScriptContestCategory
+ ldrh r4, [r0]
+ cmp r4, 0
+ bne _de_080C3AB8
+ str r4, [r1]
+ ldr r0, _de_080C3AB0 @ =0x0600e000
+ lsls r1, r2, 16
+ lsrs r1, 16
+ ldr r3, _de_080C3AB4 @ =gUnknown_08E964B8
+ movs r2, 0x13
+ str r2, [sp]
+ movs r4, 0x3
+ str r4, [sp, 0x4]
+ movs r2, 0x7
+ str r2, [sp, 0x8]
+ str r4, [sp, 0xC]
+ b _de_080C3AD6
+ .align 2, 0
+_de_080C3AAC: .4byte gScriptContestCategory
+_de_080C3AB0: .4byte 0x0600e000
+_de_080C3AB4: .4byte gUnknown_08E964B8
+_de_080C3AB8:
+ cmp r4, 0x1
+ bne _de_080C3AE8
+ str r4, [r1]
+ ldr r0, _de_080C3AE0 @ =0x0600e000
+ lsls r1, r2, 16
+ lsrs r1, 16
+ ldr r3, _de_080C3AE4 @ =gUnknown_08E964B8
+ movs r2, 0
+ str r2, [sp]
+ movs r2, 0x6
+ str r2, [sp, 0x4]
+ movs r2, 0x7
+ str r2, [sp, 0x8]
+ movs r2, 0x3
+ str r2, [sp, 0xC]
+_de_080C3AD6:
+ movs r2, 0
+ bl sub_809D104
+ movs r0, 0x7
+ b _de_080C3B68
+ .align 2, 0
+_de_080C3AE0: .4byte 0x0600e000
+_de_080C3AE4: .4byte gUnknown_08E964B8
+_de_080C3AE8:
+ cmp r4, 0x2
+ bne _de_080C3B18
+ str r4, [r1]
+ ldr r0, _de_080C3B10 @ =0x0600e000
+ lsls r1, r2, 16
+ lsrs r1, 16
+ ldr r3, _de_080C3B14 @ =gUnknown_08E964B8
+ movs r2, 0x7
+ str r2, [sp]
+ movs r2, 0x6
+ str r2, [sp, 0x4]
+ movs r2, 0x4
+ str r2, [sp, 0x8]
+ movs r2, 0x3
+ str r2, [sp, 0xC]
+ movs r2, 0
+ bl sub_809D104
+ movs r0, 0x4
+ b _de_080C3B68
+ .align 2, 0
+_de_080C3B10: .4byte 0x0600e000
+_de_080C3B14: .4byte gUnknown_08E964B8
+_de_080C3B18:
+ cmp r4, 0x3
+ bne _de_080C3B44
+ str r4, [r1]
+ ldr r0, _de_080C3B3C @ =0x0600e000
+ lsls r1, r2, 16
+ lsrs r1, 16
+ ldr r3, _de_080C3B40 @ =gUnknown_08E964B8
+ movs r2, 0xB
+ str r2, [sp]
+ movs r2, 0x6
+ str r2, [sp, 0x4]
+ str r2, [sp, 0x8]
+ str r4, [sp, 0xC]
+ movs r2, 0
+ bl sub_809D104
+ movs r0, 0x6
+ b _de_080C3B68
+ .align 2, 0
+_de_080C3B3C: .4byte 0x0600e000
+_de_080C3B40: .4byte gUnknown_08E964B8
+_de_080C3B44:
+ movs r0, 0x4
+ str r0, [r1]
+ ldr r0, _de_080C3B70 @ =0x0600e000
+ lsls r1, r2, 16
+ lsrs r1, 16
+ ldr r3, _de_080C3B74 @ =gUnknown_08E964B8
+ movs r2, 0x11
+ str r2, [sp]
+ movs r2, 0x6
+ str r2, [sp, 0x4]
+ movs r2, 0x5
+ str r2, [sp, 0x8]
+ movs r2, 0x3
+ str r2, [sp, 0xC]
+ movs r2, 0
+ bl sub_809D104
+ movs r0, 0x5
+_de_080C3B68:
+ add sp, 0x10
+ pop {r4}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_de_080C3B70: .4byte 0x0600e000
+_de_080C3B74: .4byte gUnknown_08E964B8
+ thumb_func_end de_sub_80C3A84
+
+ thumb_func_start sub_80C37E4
+sub_80C37E4: @ 80C37E4
+ push {r4,r5,lr}
+ sub sp, 0x4
+ movs r0, 0x6
+ bl de_sub_80C39A8
+ lsls r0, 16
+ asrs r0, 16
+ adds r0, 0x6
+ mov r1, sp
+ bl de_sub_80C3A84
+ ldr r5, _080C3824 @ =0x00000fff
+ ldr r0, [sp]
+ lsls r4, r0, 12
+ ldr r2, _080C3828 @ =0x0600e000
+ movs r3, 0x7F
+_080C3804:
+ ldrh r1, [r2]
+ adds r0, r5, 0
+ ands r0, r1
+ strh r0, [r2]
+ ldrh r1, [r2]
+ adds r0, r4, 0
+ orrs r0, r1
+ strh r0, [r2]
+ adds r2, 0x2
+ subs r3, 0x1
+ cmp r3, 0
+ bge _080C3804
+ add sp, 0x4
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C3824: .4byte 0x00000fff
+_080C3828: .4byte 0x0600e000
+ thumb_func_end sub_80C37E4
+
+ thumb_func_start sub_80C3990
+sub_80C3990: @ 80C3990
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsls r1, 24
+ lsrs r5, r1, 24
+ ldr r1, _080C39DC @ =gUnknown_02038670
+ lsrs r0, 23
+ adds r0, r1
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ lsls r4, r0, 16
+ adds r0, r4, 0
+ movs r1, 0x3F
+ bl __udivsi3
+ adds r1, r0, 0
+ ldr r0, _080C39E0 @ =0x0000ffff
+ ands r0, r1
+ cmp r0, 0
+ beq _080C39BC
+ movs r0, 0x80
+ lsls r0, 9
+ adds r1, r0
+_080C39BC:
+ lsrs r1, 16
+ cmp r1, 0
+ bne _080C39C8
+ cmp r4, 0
+ beq _080C39C8
+ movs r1, 0x1
+_080C39C8:
+ cmp r5, 0
+ beq _080C39D2
+ cmp r1, 0xA
+ bls _080C39D2
+ movs r1, 0xA
+_080C39D2:
+ lsls r0, r1, 24
+ lsrs r0, 24
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080C39DC: .4byte gUnknown_02038670
+_080C39E0: .4byte 0x0000ffff
+ thumb_func_end sub_80C3990
+
+ thumb_func_start sub_80C39E4
+sub_80C39E4: @ 80C39E4
+ push {r4-r7,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ lsls r1, 24
+ lsrs r6, r1, 24
+ ldr r1, _080C3A44 @ =gUnknown_02038688
+ lsls r0, r5, 1
+ adds r0, r1
+ movs r2, 0
+ ldrsh r0, [r0, r2]
+ adds r7, r1, 0
+ cmp r0, 0
+ bge _080C3A00
+ negs r0, r0
+_080C3A00:
+ lsls r4, r0, 16
+ adds r0, r4, 0
+ movs r1, 0x50
+ bl __udivsi3
+ adds r2, r0, 0
+ ldr r0, _080C3A48 @ =0x0000ffff
+ ands r0, r2
+ cmp r0, 0
+ beq _080C3A1A
+ movs r0, 0x80
+ lsls r0, 9
+ adds r2, r0
+_080C3A1A:
+ lsrs r2, 16
+ cmp r2, 0
+ bne _080C3A26
+ cmp r4, 0
+ beq _080C3A26
+ movs r2, 0x1
+_080C3A26:
+ cmp r6, 0
+ beq _080C3A30
+ cmp r2, 0xA
+ bls _080C3A30
+ movs r2, 0xA
+_080C3A30:
+ lsls r0, r5, 1
+ adds r0, r7
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ cmp r0, 0
+ bge _080C3A4C
+ negs r0, r2
+ lsls r0, 24
+ b _080C3A4E
+ .align 2, 0
+_080C3A44: .4byte gUnknown_02038688
+_080C3A48: .4byte 0x0000ffff
+_080C3A4C:
+ lsls r0, r2, 24
+_080C3A4E:
+ lsrs r0, 24
+ lsls r0, 24
+ asrs r0, 24
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80C39E4
+
+ thumb_func_start sub_80C3A5C
+sub_80C3A5C: @ 80C3A5C
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ adds r4, r0, 0
+ ldr r1, _080C3A90 @ =gTasks
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r3, r0, r1
+ ldrh r2, [r3, 0x1C]
+ movs r1, 0x1C
+ ldrsh r0, [r3, r1]
+ cmp r0, 0
+ bne _080C3A94
+ movs r1, 0x8
+ ldrsh r0, [r3, r1]
+ movs r1, 0x3
+ subs r1, r0
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 3
+ strh r0, [r3, 0x1E]
+ adds r0, r2, 0x1
+ strh r0, [r3, 0x1C]
+ b _080C3B12
+ .align 2, 0
+_080C3A90: .4byte gTasks
+_080C3A94:
+ cmp r0, 0x1
+ bne _080C3B12
+ ldrh r0, [r3, 0x1E]
+ subs r0, 0x1
+ strh r0, [r3, 0x1E]
+ lsls r0, 16
+ asrs r0, 16
+ movs r1, 0x1
+ negs r1, r1
+ cmp r0, r1
+ bne _080C3B12
+ movs r0, 0x8
+ ldrsh r2, [r3, r0]
+ lsls r2, 17
+ ldr r1, _080C3B18 @ =0x50430000
+ adds r2, r1
+ lsrs r2, 16
+ movs r0, 0xA
+ ldrsh r1, [r3, r0]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 6
+ ldr r1, _080C3B1C @ =0x0600e142
+ adds r0, r1
+ strh r2, [r0]
+ movs r0, 0xA
+ ldrsh r1, [r3, r0]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 6
+ ldr r1, _080C3B20 @ =0x0600e144
+ adds r0, r1
+ adds r1, r2, 0x1
+ strh r1, [r0]
+ movs r0, 0xA
+ ldrsh r1, [r3, r0]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 6
+ ldr r1, _080C3B24 @ =0x0600e182
+ adds r0, r1
+ adds r1, r2, 0
+ adds r1, 0x10
+ strh r1, [r0]
+ movs r0, 0xA
+ ldrsh r1, [r3, r0]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 6
+ ldr r1, _080C3B28 @ =0x0600e184
+ adds r0, r1
+ adds r2, 0x11
+ strh r2, [r0]
+ ldr r1, _080C3B2C @ =0x02018000
+ ldrb r0, [r1, 0x5]
+ adds r0, 0x1
+ strb r0, [r1, 0x5]
+ adds r0, r4, 0
+ bl DestroyTask
+ movs r0, 0x18
+ bl PlaySE
+_080C3B12:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C3B18: .4byte 0x50430000
+_080C3B1C: .4byte 0x0600e142
+_080C3B20: .4byte 0x0600e144
+_080C3B24: .4byte 0x0600e182
+_080C3B28: .4byte 0x0600e184
+_080C3B2C: .4byte 0x02018000
+ thumb_func_end sub_80C3A5C
+
+ thumb_func_start sub_80C3B30
+sub_80C3B30: @ 80C3B30
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ lsls r0, 24
+ lsrs r0, 24
+ mov r12, r0
+ movs r5, 0
+ ldr r1, _080C3BC0 @ =gUnknown_02038690
+ ldrb r0, [r1]
+ ldr r2, _080C3BC4 @ =gTasks
+ mov r10, r2
+ cmp r0, 0
+ beq _080C3B5C
+_080C3B4E:
+ adds r5, 0x1
+ cmp r5, 0x3
+ bgt _080C3B5C
+ adds r0, r5, r1
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _080C3B4E
+_080C3B5C:
+ movs r1, 0
+ lsls r0, r5, 1
+ mov r2, r12
+ lsls r2, 2
+ mov r9, r2
+ adds r0, r5
+ lsls r0, 5
+ mov r8, r0
+ ldr r7, _080C3BC8 @ =0x00000fff
+ movs r0, 0x90
+ lsls r0, 8
+ adds r6, r0, 0
+_080C3B74:
+ lsls r0, r1, 5
+ adds r4, r1, 0x1
+ add r0, r8
+ movs r3, 0x1D
+ lsls r0, 1
+ ldr r1, _080C3BCC @ =0x0600e100
+ adds r2, r0, r1
+_080C3B82:
+ ldrh r1, [r2]
+ adds r0, r7, 0
+ ands r0, r1
+ orrs r0, r6
+ strh r0, [r2]
+ adds r2, 0x2
+ subs r3, 0x1
+ cmp r3, 0
+ bge _080C3B82
+ adds r1, r4, 0
+ cmp r1, 0x2
+ ble _080C3B74
+ mov r0, r9
+ add r0, r12
+ lsls r0, 3
+ add r0, r10
+ strh r5, [r0, 0x1C]
+ movs r1, 0x1
+ strh r1, [r0, 0x20]
+ ldr r2, _080C3BD0 @ =sub_80C3BD8
+ str r2, [r0]
+ mov r1, r12
+ ldr r0, _080C3BD4 @ =0x02018000
+ strb r1, [r0, 0x3]
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C3BC0: .4byte gUnknown_02038690
+_080C3BC4: .4byte gTasks
+_080C3BC8: .4byte 0x00000fff
+_080C3BCC: .4byte 0x0600e100
+_080C3BD0: .4byte sub_80C3BD8
+_080C3BD4: .4byte 0x02018000
+ thumb_func_end sub_80C3B30
+
+ thumb_func_start sub_80C3BD8
+sub_80C3BD8: @ 80C3BD8
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _080C3C24 @ =gTasks
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r4, r1, r2
+ ldrh r0, [r4, 0x1E]
+ adds r0, 0x1
+ strh r0, [r4, 0x1E]
+ lsls r0, 16
+ asrs r5, r0, 16
+ cmp r5, 0x1
+ bne _080C3C3C
+ movs r0, 0
+ strh r0, [r4, 0x1E]
+ ldrh r2, [r4, 0x20]
+ lsls r2, 24
+ lsrs r2, 24
+ ldr r3, _080C3C28 @ =0x00006f8d
+ movs r0, 0x91
+ movs r1, 0x1
+ bl BlendPalette
+ movs r1, 0x22
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ bne _080C3C2C
+ ldrh r0, [r4, 0x20]
+ adds r0, 0x1
+ strh r0, [r4, 0x20]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x10
+ bne _080C3C3C
+ strh r5, [r4, 0x22]
+ b _080C3C3C
+ .align 2, 0
+_080C3C24: .4byte gTasks
+_080C3C28: .4byte 0x00006f8d
+_080C3C2C:
+ ldrh r0, [r4, 0x20]
+ subs r0, 0x1
+ strh r0, [r4, 0x20]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0
+ bne _080C3C3C
+ strh r0, [r4, 0x22]
+_080C3C3C:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80C3BD8
+
+ thumb_func_start sub_80C3C44
+sub_80C3C44: @ 80C3C44
+ push {r4,lr}
+ adds r4, r0, 0
+ ldrh r1, [r4, 0x2E]
+ movs r2, 0x2E
+ ldrsh r0, [r4, r2]
+ cmp r0, 0x9
+ bgt _080C3C6C
+ adds r0, r1, 0x1
+ strh r0, [r4, 0x2E]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0xA
+ bne _080C3CA8
+ ldrh r0, [r4, 0x30]
+ movs r1, 0
+ bl PlayCry1
+ movs r0, 0
+ strh r0, [r4, 0x30]
+ b _080C3CA8
+_080C3C6C:
+ movs r0, 0xC0
+ lsls r0, 3
+ adds r2, r0, 0
+ ldrh r1, [r4, 0x30]
+ adds r2, r1
+ lsls r1, r2, 16
+ asrs r1, 24
+ ldrh r0, [r4, 0x20]
+ subs r0, r1
+ strh r0, [r4, 0x20]
+ movs r1, 0xFF
+ ands r2, r1
+ strh r2, [r4, 0x30]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x77
+ bgt _080C3C92
+ movs r0, 0x78
+ strh r0, [r4, 0x20]
+_080C3C92:
+ movs r2, 0x20
+ ldrsh r0, [r4, r2]
+ cmp r0, 0x78
+ bne _080C3CA8
+ ldr r0, _080C3CB0 @ =SpriteCallbackDummy
+ str r0, [r4, 0x1C]
+ movs r0, 0
+ strh r0, [r4, 0x30]
+ ldr r1, _080C3CB4 @ =0x02018000
+ movs r0, 0x1
+ strb r0, [r1, 0x6]
+_080C3CA8:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C3CB0: .4byte SpriteCallbackDummy
+_080C3CB4: .4byte 0x02018000
+ thumb_func_end sub_80C3C44
+
+ thumb_func_start sub_80C3CB8
+sub_80C3CB8: @ 80C3CB8
+ push {lr}
+ adds r3, r0, 0
+ movs r0, 0xC0
+ lsls r0, 3
+ adds r2, r0, 0
+ ldrh r0, [r3, 0x30]
+ adds r2, r0
+ lsls r1, r2, 16
+ asrs r1, 24
+ ldrh r0, [r3, 0x20]
+ subs r0, r1
+ strh r0, [r3, 0x20]
+ movs r1, 0xFF
+ ands r2, r1
+ strh r2, [r3, 0x30]
+ lsls r0, 16
+ asrs r0, 16
+ movs r1, 0x20
+ negs r1, r1
+ cmp r0, r1
+ bge _080C3CF8
+ ldr r0, _080C3CFC @ =SpriteCallbackDummy
+ str r0, [r3, 0x1C]
+ adds r2, r3, 0
+ adds r2, 0x3E
+ ldrb r0, [r2]
+ movs r1, 0x4
+ orrs r0, r1
+ strb r0, [r2]
+ ldr r1, _080C3D00 @ =0x02018000
+ movs r0, 0x2
+ strb r0, [r1, 0x6]
+_080C3CF8:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C3CFC: .4byte SpriteCallbackDummy
+_080C3D00: .4byte 0x02018000
+ thumb_func_end sub_80C3CB8
+
+ thumb_func_start sub_80C3D04
+sub_80C3D04: @ 80C3D04
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ lsls r0, 24
+ lsrs r7, r0, 24
+ ldr r1, _080C3DD8 @ =gTasks
+ lsls r0, r7, 2
+ adds r0, r7
+ lsls r0, 3
+ adds r1, r0, r1
+ ldrh r0, [r1, 0x8]
+ adds r0, 0x1
+ strh r0, [r1, 0x8]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x5
+ bne _080C3DBE
+ movs r0, 0
+ strh r0, [r1, 0x8]
+ ldr r0, _080C3DDC @ =0x02018000
+ mov r8, r0
+ ldrb r0, [r0, 0x7]
+ cmp r0, 0x27
+ bhi _080C3DBE
+ ldr r4, _080C3DE0 @ =gSpriteTemplate_83D17B4
+ bl Random
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0xF0
+ bl __umodsi3
+ adds r1, r0, 0
+ subs r1, 0x14
+ lsls r1, 16
+ asrs r1, 16
+ adds r0, r4, 0
+ movs r2, 0x2C
+ movs r3, 0x5
+ bl CreateSprite
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ bl Random
+ ldr r1, _080C3DE4 @ =gSprites
+ lsls r5, r4, 4
+ adds r5, r4
+ lsls r5, 2
+ adds r5, r1
+ lsls r0, 23
+ lsrs r0, 23
+ strh r0, [r5, 0x2E]
+ bl Random
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0x18
+ bl __umodsi3
+ adds r0, 0x10
+ strh r0, [r5, 0x30]
+ bl Random
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0xFF
+ ands r0, r1
+ adds r0, 0x30
+ strh r0, [r5, 0x32]
+ bl Random
+ ldrh r6, [r5, 0x4]
+ lsls r4, r6, 22
+ lsrs r4, 22
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0x11
+ bl __umodsi3
+ adds r4, r0
+ ldr r1, _080C3DE8 @ =0x000003ff
+ adds r0, r1, 0
+ ands r4, r0
+ ldr r0, _080C3DEC @ =0xfffffc00
+ ands r0, r6
+ orrs r0, r4
+ strh r0, [r5, 0x4]
+ mov r1, r8
+ ldrb r0, [r1, 0x7]
+ adds r0, 0x1
+ strb r0, [r1, 0x7]
+_080C3DBE:
+ ldr r0, _080C3DDC @ =0x02018000
+ ldrb r0, [r0, 0x9]
+ cmp r0, 0
+ beq _080C3DCC
+ adds r0, r7, 0
+ bl DestroyTask
+_080C3DCC:
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C3DD8: .4byte gTasks
+_080C3DDC: .4byte 0x02018000
+_080C3DE0: .4byte gSpriteTemplate_83D17B4
+_080C3DE4: .4byte gSprites
+_080C3DE8: .4byte 0x000003ff
+_080C3DEC: .4byte 0xfffffc00
+ thumb_func_end sub_80C3D04
+
+ thumb_func_start sub_80C3DF0
+sub_80C3DF0: @ 80C3DF0
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ ldrh r0, [r4, 0x2E]
+ ldrh r1, [r4, 0x34]
+ adds r0, r1
+ strh r0, [r4, 0x34]
+ lsls r0, 16
+ asrs r0, 24
+ movs r2, 0x30
+ ldrsh r1, [r4, r2]
+ bl Sin
+ strh r0, [r4, 0x24]
+ ldrh r1, [r4, 0x32]
+ ldrh r0, [r4, 0x36]
+ adds r1, r0
+ lsls r0, r1, 16
+ asrs r0, 24
+ ldrh r2, [r4, 0x20]
+ adds r0, r2
+ strh r0, [r4, 0x20]
+ movs r0, 0xFF
+ ands r1, r0
+ strh r1, [r4, 0x36]
+ ldrh r0, [r4, 0x22]
+ adds r0, 0x1
+ strh r0, [r4, 0x22]
+ ldr r5, _080C3E5C @ =0x02018000
+ ldrb r0, [r5, 0x9]
+ cmp r0, 0
+ beq _080C3E3A
+ adds r2, r4, 0
+ adds r2, 0x3E
+ ldrb r0, [r2]
+ movs r1, 0x4
+ orrs r0, r1
+ strb r0, [r2]
+_080C3E3A:
+ movs r1, 0x20
+ ldrsh r0, [r4, r1]
+ cmp r0, 0xF8
+ bgt _080C3E4A
+ movs r2, 0x22
+ ldrsh r0, [r4, r2]
+ cmp r0, 0x74
+ ble _080C3E56
+_080C3E4A:
+ adds r0, r4, 0
+ bl DestroySprite
+ ldrb r0, [r5, 0x7]
+ subs r0, 0x1
+ strb r0, [r5, 0x7]
+_080C3E56:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C3E5C: .4byte 0x02018000
+ thumb_func_end sub_80C3DF0
+
+ thumb_func_start sub_80C3E60
+sub_80C3E60: @ 80C3E60
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ adds r5, r1, 0
+ lsls r4, 24
+ lsrs r4, 24
+ lsls r5, 24
+ lsrs r5, 24
+ ldr r0, _080C3E98 @ =sub_80C3EA4
+ movs r1, 0x8
+ bl CreateTask
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _080C3E9C @ =gTasks
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r2
+ strh r4, [r1, 0x8]
+ strh r5, [r1, 0xA]
+ ldr r0, _080C3EA0 @ =gContestMons
+ lsls r4, 6
+ adds r4, r0
+ ldrh r0, [r4]
+ strh r0, [r1, 0xC]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C3E98: .4byte sub_80C3EA4
+_080C3E9C: .4byte gTasks
+_080C3EA0: .4byte gContestMons
+ thumb_func_end sub_80C3E60
+
+ thumb_func_start sub_80C3EA4
+sub_80C3EA4: @ 80C3EA4
+ push {r4,r5,lr}
+ sub sp, 0x4
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _080C3EF8 @ =gTasks
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r4, r1, r2
+ ldrb r5, [r4, 0x8]
+ ldrh r0, [r4, 0x1C]
+ adds r1, r0, 0x1
+ strh r1, [r4, 0x1C]
+ lsls r0, 16
+ asrs r0, 16
+ movs r2, 0xA
+ ldrsh r1, [r4, r2]
+ cmp r0, r1
+ bne _080C3EEE
+ movs r0, 0
+ strh r0, [r4, 0x1C]
+ ldrh r0, [r4, 0xC]
+ ldrb r2, [r4, 0x1E]
+ ldr r1, _080C3EFC @ =gContestMons
+ lsls r3, r5, 6
+ adds r1, 0x38
+ adds r3, r1
+ ldr r1, [r3]
+ str r1, [sp]
+ adds r1, r5, 0
+ movs r3, 0
+ bl sub_80C3024
+ ldrh r0, [r4, 0x1E]
+ movs r1, 0x1
+ eors r0, r1
+ strh r0, [r4, 0x1E]
+_080C3EEE:
+ add sp, 0x4
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C3EF8: .4byte gTasks
+_080C3EFC: .4byte gContestMons
+ thumb_func_end sub_80C3EA4
+
+ thumb_func_start sub_80C3F00
+sub_80C3F00: @ 80C3F00
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ ldr r0, _080C4098 @ =gUnknown_02038678
+ ldrh r2, [r0]
+ adds r4, r0, 0
+ adds r3, r4, 0x2
+ movs r0, 0x2
+ mov r8, r0
+_080C3F16:
+ lsls r0, r2, 16
+ asrs r0, 16
+ movs r5, 0
+ ldrsh r1, [r3, r5]
+ cmp r0, r1
+ bge _080C3F24
+ ldrh r2, [r3]
+_080C3F24:
+ adds r3, 0x2
+ movs r0, 0x1
+ negs r0, r0
+ add r8, r0
+ mov r1, r8
+ cmp r1, 0
+ bge _080C3F16
+ lsls r0, r2, 16
+ mov r9, r0
+ cmp r0, 0
+ bge _080C3F62
+ ldrh r2, [r4]
+ adds r3, r4, 0x2
+ movs r4, 0x2
+ mov r8, r4
+_080C3F42:
+ lsls r0, r2, 16
+ asrs r0, 16
+ movs r5, 0
+ ldrsh r1, [r3, r5]
+ cmp r0, r1
+ ble _080C3F50
+ ldrh r2, [r3]
+_080C3F50:
+ adds r3, 0x2
+ movs r0, 0x1
+ negs r0, r0
+ add r8, r0
+ lsls r1, r2, 16
+ mov r9, r1
+ mov r4, r8
+ cmp r4, 0
+ bge _080C3F42
+_080C3F62:
+ movs r5, 0
+ mov r8, r5
+ mov r10, r5
+_080C3F68:
+ ldr r0, _080C409C @ =gUnknown_02038670
+ mov r1, r8
+ lsls r7, r1, 1
+ adds r0, r7, r0
+ movs r2, 0
+ ldrsh r1, [r0, r2]
+ lsls r0, r1, 5
+ subs r0, r1
+ lsls r0, 2
+ adds r0, r1
+ lsls r0, 3
+ mov r4, r9
+ asrs r6, r4, 16
+ adds r1, r6, 0
+ cmp r6, 0
+ bge _080C3F8A
+ negs r1, r6
+_080C3F8A:
+ bl __divsi3
+ adds r4, r0, 0
+ movs r1, 0xA
+ bl __modsi3
+ cmp r0, 0x4
+ ble _080C3F9C
+ adds r4, 0xA
+_080C3F9C:
+ ldr r0, _080C40A0 @ =0x02018018
+ mov r1, r10
+ adds r5, r1, r0
+ adds r0, r4, 0
+ movs r1, 0xA
+ bl __divsi3
+ str r0, [r5]
+ ldr r0, _080C40A4 @ =gUnknown_02038688
+ adds r7, r0
+ movs r2, 0
+ ldrsh r1, [r7, r2]
+ cmp r1, 0
+ bge _080C3FBA
+ negs r1, r1
+_080C3FBA:
+ lsls r0, r1, 5
+ subs r0, r1
+ lsls r0, 2
+ adds r0, r1
+ lsls r0, 3
+ adds r1, r6, 0
+ cmp r1, 0
+ bge _080C3FCC
+ negs r1, r1
+_080C3FCC:
+ bl __divsi3
+ adds r4, r0, 0
+ movs r1, 0xA
+ bl __modsi3
+ cmp r0, 0x4
+ ble _080C3FDE
+ adds r4, 0xA
+_080C3FDE:
+ adds r0, r4, 0
+ movs r1, 0xA
+ bl __divsi3
+ str r0, [r5, 0x4]
+ movs r4, 0
+ ldrsh r0, [r7, r4]
+ cmp r0, 0
+ bge _080C3FF4
+ movs r0, 0x1
+ strb r0, [r5, 0x10]
+_080C3FF4:
+ ldr r1, [r5]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ subs r0, r1
+ lsls r0, 11
+ movs r1, 0x64
+ bl __divsi3
+ adds r1, r0, 0
+ movs r4, 0xFF
+ ands r0, r4
+ cmp r0, 0x7F
+ bls _080C4016
+ movs r0, 0x80
+ lsls r0, 1
+ adds r1, r0
+_080C4016:
+ lsrs r0, r1, 8
+ str r0, [r5, 0x8]
+ ldr r1, [r5, 0x4]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ subs r0, r1
+ lsls r0, 11
+ movs r1, 0x64
+ bl __divsi3
+ adds r1, r0, 0
+ ands r0, r4
+ cmp r0, 0x7F
+ bls _080C403A
+ movs r2, 0x80
+ lsls r2, 1
+ adds r1, r2
+_080C403A:
+ lsrs r0, r1, 8
+ str r0, [r5, 0xC]
+ mov r0, r8
+ lsls r4, r0, 24
+ lsrs r4, 24
+ adds r0, r4, 0
+ movs r1, 0x1
+ bl sub_80C3990
+ strb r0, [r5, 0x11]
+ adds r0, r4, 0
+ movs r1, 0x1
+ bl sub_80C39E4
+ lsls r0, 24
+ asrs r0, 24
+ cmp r0, 0
+ bge _080C4060
+ negs r0, r0
+_080C4060:
+ strb r0, [r5, 0x12]
+ ldr r0, _080C40A8 @ =gUnknown_02038690
+ add r0, r8
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _080C40B4
+ ldr r4, [r5, 0x8]
+ ldrh r2, [r5, 0x8]
+ ldr r3, [r5, 0xC]
+ ldrh r1, [r5, 0xC]
+ ldrb r0, [r5, 0x10]
+ cmp r0, 0
+ beq _080C4080
+ lsls r0, r1, 16
+ negs r0, r0
+ lsrs r1, r0, 16
+_080C4080:
+ lsls r0, r2, 16
+ asrs r2, r0, 16
+ lsls r0, r1, 16
+ asrs r1, r0, 16
+ adds r0, r2, r1
+ cmp r0, 0x58
+ bne _080C40B4
+ cmp r1, 0
+ ble _080C40AC
+ subs r0, r3, 0x1
+ str r0, [r5, 0xC]
+ b _080C40B4
+ .align 2, 0
+_080C4098: .4byte gUnknown_02038678
+_080C409C: .4byte gUnknown_02038670
+_080C40A0: .4byte 0x02018018
+_080C40A4: .4byte gUnknown_02038688
+_080C40A8: .4byte gUnknown_02038690
+_080C40AC:
+ cmp r2, 0
+ ble _080C40B4
+ subs r0, r4, 0x1
+ str r0, [r5, 0x8]
+_080C40B4:
+ movs r1, 0x14
+ add r10, r1
+ movs r2, 0x1
+ add r8, r2
+ mov r4, r8
+ cmp r4, 0x3
+ bgt _080C40C4
+ b _080C3F68
+_080C40C4:
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80C3F00
+
+ thumb_func_start sub_80C40D4
+sub_80C40D4: @ 80C40D4
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x8
+ lsls r0, 24
+ lsls r1, 24
+ lsrs r7, r1, 24
+ movs r1, 0
+ mov r10, r1
+ movs r2, 0
+ str r2, [sp]
+ cmp r0, 0
+ bne _080C4198
+ mov r8, r2
+ ldr r0, _080C417C @ =0x02018018
+ subs r1, 0x18
+ adds r1, r0
+ mov r9, r1
+ adds r4, r0, 0
+ adds r4, 0x8
+ movs r6, 0xA0
+_080C4102:
+ ldrb r0, [r4, 0x9]
+ cmp r7, r0
+ bcs _080C416A
+ adds r0, 0x13
+ adds r0, r6, r0
+ subs r0, r7
+ lsls r0, 1
+ ldr r2, _080C4180 @ =0x0600bffe
+ adds r0, r2
+ ldr r2, _080C4184 @ =0x000060b3
+ adds r1, r2, 0
+ strh r1, [r0]
+ ldr r0, _080C4188 @ =sub_80C42C0
+ movs r1, 0xA
+ bl CreateTask
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldr r0, [r4]
+ lsls r0, 16
+ ldrb r1, [r4, 0x9]
+ bl __udivsi3
+ adds r1, r7, 0x1
+ adds r3, r0, 0
+ muls r3, r1
+ ldr r0, _080C418C @ =0x0000ffff
+ ands r0, r3
+ ldr r1, _080C4190 @ =0x00007fff
+ cmp r0, r1
+ bls _080C4146
+ movs r0, 0x80
+ lsls r0, 9
+ adds r3, r0
+_080C4146:
+ ldr r1, _080C4194 @ =gTasks
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ adds r0, r1
+ mov r1, r8
+ strh r1, [r0, 0x8]
+ lsrs r1, r3, 16
+ strh r1, [r0, 0xA]
+ mov r2, r9
+ ldrb r0, [r2, 0x14]
+ adds r0, 0x1
+ strb r0, [r2, 0x14]
+ mov r0, r10
+ adds r0, 0x1
+ lsls r0, 24
+ lsrs r0, 24
+ mov r10, r0
+_080C416A:
+ adds r4, 0x14
+ adds r6, 0x60
+ movs r0, 0x1
+ add r8, r0
+ mov r1, r8
+ cmp r1, 0x3
+ ble _080C4102
+ b _080C4292
+ .align 2, 0
+_080C417C: .4byte 0x02018018
+_080C4180: .4byte 0x0600bffe
+_080C4184: .4byte 0x000060b3
+_080C4188: .4byte sub_80C42C0
+_080C418C: .4byte 0x0000ffff
+_080C4190: .4byte 0x00007fff
+_080C4194: .4byte gTasks
+_080C4198:
+ movs r2, 0
+ mov r8, r2
+ ldr r0, _080C4220 @ =0x02018018
+ mov r12, r0
+ mov r9, r2
+ movs r1, 0xC0
+ str r1, [sp, 0x4]
+_080C41A6:
+ mov r6, r9
+ add r6, r12
+ ldrb r1, [r6, 0x12]
+ ldrb r0, [r6, 0x10]
+ ldr r2, _080C4224 @ =0x000060a3
+ cmp r0, 0
+ beq _080C41B6
+ adds r2, 0x2
+_080C41B6:
+ lsls r0, r1, 24
+ asrs r0, 24
+ cmp r7, r0
+ bge _080C427E
+ adds r0, 0x13
+ ldr r1, [sp, 0x4]
+ adds r0, r1, r0
+ subs r0, r7
+ lsls r0, 1
+ ldr r1, _080C4228 @ =0x0600bffe
+ adds r0, r1
+ strh r2, [r0]
+ ldr r0, _080C422C @ =sub_80C42C0
+ movs r1, 0xA
+ bl CreateTask
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldr r0, [r6, 0xC]
+ lsls r0, 16
+ ldrb r1, [r6, 0x12]
+ bl __udivsi3
+ adds r1, r7, 0x1
+ adds r3, r0, 0
+ muls r3, r1
+ ldr r0, _080C4230 @ =0x0000ffff
+ ands r0, r3
+ ldr r1, _080C4234 @ =0x00007fff
+ cmp r0, r1
+ bls _080C41FA
+ movs r2, 0x80
+ lsls r2, 9
+ adds r3, r2
+_080C41FA:
+ ldr r1, _080C4238 @ =gTasks
+ lsls r2, r5, 2
+ adds r0, r2, r5
+ lsls r0, 3
+ adds r4, r0, r1
+ mov r0, r8
+ strh r0, [r4, 0x8]
+ ldrb r0, [r6, 0x10]
+ adds r6, r1, 0
+ cmp r0, 0
+ beq _080C423C
+ movs r0, 0x1
+ strh r0, [r4, 0xC]
+ ldr r0, [sp]
+ adds r0, 0x1
+ lsls r0, 24
+ lsrs r0, 24
+ str r0, [sp]
+ b _080C4246
+ .align 2, 0
+_080C4220: .4byte 0x02018018
+_080C4224: .4byte 0x000060a3
+_080C4228: .4byte 0x0600bffe
+_080C422C: .4byte sub_80C42C0
+_080C4230: .4byte 0x0000ffff
+_080C4234: .4byte 0x00007fff
+_080C4238: .4byte gTasks
+_080C423C:
+ mov r0, r10
+ adds r0, 0x1
+ lsls r0, 24
+ lsrs r0, 24
+ mov r10, r0
+_080C4246:
+ ldr r0, _080C4264 @ =0x02018018
+ mov r1, r9
+ adds r4, r1, r0
+ ldrb r1, [r4, 0x10]
+ mov r12, r0
+ cmp r1, 0
+ beq _080C4268
+ adds r0, r2, r5
+ lsls r0, 3
+ adds r0, r6
+ lsrs r2, r3, 16
+ ldr r1, [r4, 0x8]
+ subs r1, r2
+ b _080C4274
+ .align 2, 0
+_080C4264: .4byte 0x02018018
+_080C4268:
+ adds r0, r2, r5
+ lsls r0, 3
+ adds r0, r6
+ lsrs r2, r3, 16
+ ldr r1, [r4, 0x8]
+ adds r1, r2
+_080C4274:
+ strh r1, [r0, 0xA]
+ ldr r1, _080C42BC @ =0x02018000
+ ldrb r0, [r1, 0x14]
+ adds r0, 0x1
+ strb r0, [r1, 0x14]
+_080C427E:
+ movs r2, 0x14
+ add r9, r2
+ ldr r0, [sp, 0x4]
+ adds r0, 0x60
+ str r0, [sp, 0x4]
+ movs r1, 0x1
+ add r8, r1
+ mov r2, r8
+ cmp r2, 0x3
+ ble _080C41A6
+_080C4292:
+ ldr r0, [sp]
+ cmp r0, 0
+ beq _080C429E
+ movs r0, 0x16
+ bl PlaySE
+_080C429E:
+ mov r1, r10
+ cmp r1, 0
+ beq _080C42AA
+ movs r0, 0x15
+ bl PlaySE
+_080C42AA:
+ add sp, 0x8
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C42BC: .4byte 0x02018000
+ thumb_func_end sub_80C40D4
+
+ thumb_func_start sub_80C42C0
+sub_80C42C0: @ 80C42C0
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ lsls r0, 24
+ lsrs r0, 24
+ mov r12, r0
+ movs r6, 0
+ mov r9, r6
+ ldr r1, _080C4308 @ =gTasks
+ lsls r0, 2
+ add r0, r12
+ lsls r0, 3
+ adds r0, r1
+ ldrb r5, [r0, 0x8]
+ ldrh r7, [r0, 0xA]
+ ldrh r1, [r0, 0xC]
+ mov r8, r1
+ movs r2, 0xC
+ ldrsh r0, [r0, r2]
+ cmp r0, 0
+ beq _080C4310
+ ldr r1, _080C430C @ =0x02018000
+ lsls r2, r5, 1
+ adds r0, r1, 0
+ adds r0, 0xC
+ adds r0, r2, r0
+ movs r3, 0
+ ldrsh r0, [r0, r3]
+ mov r10, r1
+ adds r4, r2, 0
+ cmp r0, 0
+ bgt _080C4328
+ b _080C4326
+ .align 2, 0
+_080C4308: .4byte gTasks
+_080C430C: .4byte 0x02018000
+_080C4310:
+ ldr r1, _080C4350 @ =0x02018000
+ lsls r2, r5, 1
+ adds r0, r1, 0
+ adds r0, 0xC
+ adds r0, r2, r0
+ movs r3, 0
+ ldrsh r0, [r0, r3]
+ mov r10, r1
+ adds r4, r2, 0
+ cmp r0, 0x57
+ ble _080C4328
+_080C4326:
+ movs r6, 0x1
+_080C4328:
+ mov r0, r10
+ adds r0, 0xC
+ adds r3, r4, r0
+ ldrh r2, [r3]
+ movs r0, 0
+ ldrsh r1, [r3, r0]
+ lsls r0, r7, 16
+ asrs r0, 16
+ cmp r1, r0
+ bne _080C4340
+ movs r1, 0x1
+ mov r9, r1
+_080C4340:
+ mov r0, r9
+ cmp r0, 0
+ bne _080C4362
+ cmp r6, 0
+ beq _080C4354
+ strh r7, [r3]
+ b _080C4362
+ .align 2, 0
+_080C4350: .4byte 0x02018000
+_080C4354:
+ mov r1, r8
+ cmp r1, 0
+ beq _080C435E
+ subs r0, r2, 0x1
+ b _080C4360
+_080C435E:
+ adds r0, r2, 0x1
+_080C4360:
+ strh r0, [r3]
+_080C4362:
+ cmp r6, 0
+ bne _080C43C8
+ mov r2, r9
+ cmp r2, 0
+ bne _080C43CE
+ movs r2, 0
+ ldr r0, _080C4388 @ =0x0201800c
+ adds r6, r4, r0
+ adds r0, r4, r5
+ lsls r5, r0, 5
+_080C4376:
+ movs r0, 0
+ ldrsh r3, [r6, r0]
+ adds r0, r2, 0x1
+ lsls r1, r0, 3
+ adds r4, r0, 0
+ cmp r3, r1
+ blt _080C438C
+ movs r0, 0x8
+ b _080C43A8
+ .align 2, 0
+_080C4388: .4byte 0x0201800c
+_080C438C:
+ lsls r0, r2, 3
+ cmp r3, r0
+ blt _080C43A6
+ adds r0, r3, 0
+ cmp r3, 0
+ bge _080C439A
+ adds r0, r3, 0x7
+_080C439A:
+ asrs r0, 3
+ lsls r0, 3
+ subs r0, r3, r0
+ lsls r0, 24
+ lsrs r0, 24
+ b _080C43A8
+_080C43A6:
+ movs r0, 0
+_080C43A8:
+ cmp r0, 0x3
+ bhi _080C43B4
+ ldr r3, _080C43B0 @ =0x0000504c
+ b _080C43B6
+ .align 2, 0
+_080C43B0: .4byte 0x0000504c
+_080C43B4:
+ ldr r3, _080C43EC @ =0x00005057
+_080C43B6:
+ adds r1, r0, r3
+ adds r0, r5, r2
+ lsls r0, 1
+ ldr r2, _080C43F0 @ =0x0600e18e
+ adds r0, r2
+ strh r1, [r0]
+ adds r2, r4, 0
+ cmp r2, 0xA
+ ble _080C4376
+_080C43C8:
+ mov r3, r9
+ cmp r3, 0
+ beq _080C43DC
+_080C43CE:
+ mov r1, r10
+ ldrb r0, [r1, 0x14]
+ subs r0, 0x1
+ strb r0, [r1, 0x14]
+ mov r0, r12
+ bl DestroyTask
+_080C43DC:
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C43EC: .4byte 0x00005057
+_080C43F0: .4byte 0x0600e18e
+ thumb_func_end sub_80C42C0
+
+ thumb_func_start sub_80C43F4
+sub_80C43F4: @ 80C43F4
+ push {r4,r5,lr}
+ ldr r0, _080C442C @ =gUnknown_02038694
+ ldrb r1, [r0]
+ movs r0, 0x64
+ muls r0, r1
+ ldr r1, _080C4430 @ =gPlayerParty
+ adds r0, r1
+ bl sub_80AE47C
+ lsls r0, 24
+ lsrs r0, 24
+ adds r5, r0, 0
+ cmp r5, 0
+ beq _080C4422
+ ldr r4, _080C4434 @ =gScriptContestCategory
+ ldrb r0, [r4]
+ ldr r1, _080C4438 @ =gScriptContestRank
+ ldrb r1, [r1]
+ bl sub_80AE398
+ ldrb r0, [r4]
+ bl sub_80AE82C
+_080C4422:
+ ldr r0, _080C443C @ =gScriptResult
+ strh r5, [r0]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C442C: .4byte gUnknown_02038694
+_080C4430: .4byte gPlayerParty
+_080C4434: .4byte gScriptContestCategory
+_080C4438: .4byte gScriptContestRank
+_080C443C: .4byte gScriptResult
+ thumb_func_end sub_80C43F4
+
+ thumb_func_start sub_80C4440
+sub_80C4440: @ 80C4440
+ push {r4,lr}
+ movs r4, 0
+ ldr r0, _080C4464 @ =gUnknown_02038694
+ ldrb r1, [r0]
+ movs r0, 0x64
+ muls r1, r0
+ ldr r0, _080C4468 @ =gPlayerParty
+ adds r2, r1, r0
+ ldr r0, _080C446C @ =gScriptContestCategory
+ ldrh r0, [r0]
+ cmp r0, 0x4
+ bhi _080C44B2
+ lsls r0, 2
+ ldr r1, _080C4470 @ =_080C4474
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080C4464: .4byte gUnknown_02038694
+_080C4468: .4byte gPlayerParty
+_080C446C: .4byte gScriptContestCategory
+_080C4470: .4byte _080C4474
+ .align 2, 0
+_080C4474:
+ .4byte _080C4488
+ .4byte _080C448E
+ .4byte _080C4494
+ .4byte _080C449A
+ .4byte _080C44A0
+_080C4488:
+ adds r0, r2, 0
+ movs r1, 0x32
+ b _080C44A4
+_080C448E:
+ adds r0, r2, 0
+ movs r1, 0x33
+ b _080C44A4
+_080C4494:
+ adds r0, r2, 0
+ movs r1, 0x34
+ b _080C44A4
+_080C449A:
+ adds r0, r2, 0
+ movs r1, 0x35
+ b _080C44A4
+_080C44A0:
+ adds r0, r2, 0
+ movs r1, 0x36
+_080C44A4:
+ bl GetMonData
+ ldr r1, _080C44BC @ =gScriptContestRank
+ ldrh r1, [r1]
+ cmp r0, r1
+ bls _080C44B2
+ movs r4, 0x1
+_080C44B2:
+ adds r0, r4, 0
+ pop {r4}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080C44BC: .4byte gScriptContestRank
+ thumb_func_end sub_80C4440
+
+ thumb_func_start sub_80C44C0
+sub_80C44C0: @ 80C44C0
+ push {r4-r7,lr}
+ sub sp, 0x4
+ ldr r1, _080C44E8 @ =gUnknown_02038690
+ ldr r0, _080C44EC @ =gContestPlayerMonIndex
+ ldrb r0, [r0]
+ adds r0, r1
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _080C44D4
+ b _080C465E
+_080C44D4:
+ ldr r0, _080C44F0 @ =gScriptContestCategory
+ ldrh r0, [r0]
+ cmp r0, 0x4
+ bls _080C44DE
+ b _080C465E
+_080C44DE:
+ lsls r0, 2
+ ldr r1, _080C44F4 @ =_080C44F8
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080C44E8: .4byte gUnknown_02038690
+_080C44EC: .4byte gContestPlayerMonIndex
+_080C44F0: .4byte gScriptContestCategory
+_080C44F4: .4byte _080C44F8
+ .align 2, 0
+_080C44F8:
+ .4byte _080C450C
+ .4byte _080C4554
+ .4byte _080C4598
+ .4byte _080C45DC
+ .4byte _080C4624
+_080C450C:
+ ldr r6, _080C4548 @ =gUnknown_02038694
+ ldrb r0, [r6]
+ movs r5, 0x64
+ muls r0, r5
+ ldr r4, _080C454C @ =gPlayerParty
+ adds r0, r4
+ movs r1, 0x32
+ bl GetMonData
+ lsls r0, 24
+ lsrs r1, r0, 24
+ mov r0, sp
+ strb r1, [r0]
+ ldr r0, _080C4550 @ =gScriptContestRank
+ ldrh r0, [r0]
+ cmp r1, r0
+ bls _080C4530
+ b _080C465E
+_080C4530:
+ adds r0, r1, 0
+ cmp r0, 0x3
+ bls _080C4538
+ b _080C465E
+_080C4538:
+ adds r1, r0, 0x1
+ mov r0, sp
+ strb r1, [r0]
+ ldrb r0, [r6]
+ muls r0, r5
+ adds r0, r4
+ movs r1, 0x32
+ b _080C4610
+ .align 2, 0
+_080C4548: .4byte gUnknown_02038694
+_080C454C: .4byte gPlayerParty
+_080C4550: .4byte gScriptContestRank
+_080C4554:
+ mov r4, sp
+ ldr r7, _080C458C @ =gUnknown_02038694
+ ldrb r0, [r7]
+ movs r6, 0x64
+ muls r0, r6
+ ldr r5, _080C4590 @ =gPlayerParty
+ adds r0, r5
+ movs r1, 0x33
+ bl GetMonData
+ strb r0, [r4]
+ mov r0, sp
+ ldrb r2, [r0]
+ ldr r0, _080C4594 @ =gScriptContestRank
+ ldrh r0, [r0]
+ cmp r2, r0
+ bhi _080C465E
+ cmp r2, 0x3
+ bhi _080C465E
+ mov r1, sp
+ adds r0, r2, 0x1
+ strb r0, [r1]
+ ldrb r0, [r7]
+ muls r0, r6
+ adds r0, r5
+ movs r1, 0x33
+ b _080C4610
+ .align 2, 0
+_080C458C: .4byte gUnknown_02038694
+_080C4590: .4byte gPlayerParty
+_080C4594: .4byte gScriptContestRank
+_080C4598:
+ mov r4, sp
+ ldr r7, _080C45D0 @ =gUnknown_02038694
+ ldrb r0, [r7]
+ movs r6, 0x64
+ muls r0, r6
+ ldr r5, _080C45D4 @ =gPlayerParty
+ adds r0, r5
+ movs r1, 0x34
+ bl GetMonData
+ strb r0, [r4]
+ mov r0, sp
+ ldrb r2, [r0]
+ ldr r0, _080C45D8 @ =gScriptContestRank
+ ldrh r0, [r0]
+ cmp r2, r0
+ bhi _080C465E
+ cmp r2, 0x3
+ bhi _080C465E
+ mov r1, sp
+ adds r0, r2, 0x1
+ strb r0, [r1]
+ ldrb r0, [r7]
+ muls r0, r6
+ adds r0, r5
+ movs r1, 0x34
+ b _080C4610
+ .align 2, 0
+_080C45D0: .4byte gUnknown_02038694
+_080C45D4: .4byte gPlayerParty
+_080C45D8: .4byte gScriptContestRank
+_080C45DC:
+ mov r4, sp
+ ldr r7, _080C4618 @ =gUnknown_02038694
+ ldrb r0, [r7]
+ movs r6, 0x64
+ muls r0, r6
+ ldr r5, _080C461C @ =gPlayerParty
+ adds r0, r5
+ movs r1, 0x35
+ bl GetMonData
+ strb r0, [r4]
+ mov r0, sp
+ ldrb r2, [r0]
+ ldr r0, _080C4620 @ =gScriptContestRank
+ ldrh r0, [r0]
+ cmp r2, r0
+ bhi _080C465E
+ cmp r2, 0x3
+ bhi _080C465E
+ mov r1, sp
+ adds r0, r2, 0x1
+ strb r0, [r1]
+ ldrb r0, [r7]
+ muls r0, r6
+ adds r0, r5
+ movs r1, 0x35
+_080C4610:
+ mov r2, sp
+ bl SetMonData
+ b _080C465E
+ .align 2, 0
+_080C4618: .4byte gUnknown_02038694
+_080C461C: .4byte gPlayerParty
+_080C4620: .4byte gScriptContestRank
+_080C4624:
+ mov r4, sp
+ ldr r7, _080C4668 @ =gUnknown_02038694
+ ldrb r0, [r7]
+ movs r6, 0x64
+ muls r0, r6
+ ldr r5, _080C466C @ =gPlayerParty
+ adds r0, r5
+ movs r1, 0x36
+ bl GetMonData
+ strb r0, [r4]
+ mov r0, sp
+ ldrb r2, [r0]
+ ldr r0, _080C4670 @ =gScriptContestRank
+ ldrh r0, [r0]
+ cmp r2, r0
+ bhi _080C465E
+ cmp r2, 0x3
+ bhi _080C465E
+ mov r1, sp
+ adds r0, r2, 0x1
+ strb r0, [r1]
+ ldrb r0, [r7]
+ muls r0, r6
+ adds r0, r5
+ movs r1, 0x36
+ mov r2, sp
+ bl SetMonData
+_080C465E:
+ add sp, 0x4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C4668: .4byte gUnknown_02038694
+_080C466C: .4byte gPlayerParty
+_080C4670: .4byte gScriptContestRank
+ thumb_func_end sub_80C44C0
+
+ thumb_func_start sub_80C4674
+sub_80C4674: @ 80C4674
+ push {r4,lr}
+ adds r4, r0, 0
+ bl StringCopy
+ ldrb r0, [r4]
+ cmp r0, 0xFC
+ bne _080C4690
+ ldrb r0, [r4, 0x1]
+ cmp r0, 0x15
+ bne _080C4690
+ adds r0, r4, 0
+ movs r1, 0x1
+ bl ConvertInternationalString
+_080C4690:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80C4674
+
+ thumb_func_start sub_80C4698
+sub_80C4698: @ 80C4698
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ lsls r1, 24
+ lsrs r4, r1, 24
+ lsls r1, r4, 6
+ ldr r0, _080C46E0 @ =gContestMons + 0x2
+ adds r1, r0
+ adds r0, r5, 0
+ bl StringCopy
+ ldr r0, _080C46E4 @ =gIsLinkContest
+ ldrb r1, [r0]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _080C46DA
+ ldr r0, _080C46E8 @ =gLinkPlayers
+ lsls r1, r4, 3
+ subs r1, r4
+ lsls r1, 2
+ adds r1, r0
+ ldrh r0, [r1, 0x1A]
+ cmp r0, 0x1
+ bne _080C46DA
+ adds r0, r5, 0
+ bl sub_80C86A0
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ adds r0, r5, 0
+ bl ConvertInternationalString
+_080C46DA:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C46E0: .4byte gContestMons + 0x2
+_080C46E4: .4byte gIsLinkContest
+_080C46E8: .4byte gLinkPlayers
+ thumb_func_end sub_80C4698
+
+ thumb_func_start sub_80C46EC
+sub_80C46EC: @ 80C46EC
+ push {lr}
+ ldr r0, _080C4710 @ =gIsLinkContest
+ ldrb r1, [r0]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _080C4720
+ ldr r0, _080C4714 @ =gStringVar1
+ ldr r1, _080C4718 @ =gSpecialVar_0x8006
+ ldrh r2, [r1]
+ lsls r1, r2, 3
+ subs r1, r2
+ lsls r1, 2
+ ldr r2, _080C471C @ =gLinkPlayers + 0x8
+ adds r1, r2
+ bl sub_80C4674
+ b _080C4730
+ .align 2, 0
+_080C4710: .4byte gIsLinkContest
+_080C4714: .4byte gStringVar1
+_080C4718: .4byte gSpecialVar_0x8006
+_080C471C: .4byte gLinkPlayers + 0x8
+_080C4720:
+ ldr r0, _080C4734 @ =gStringVar1
+ ldr r1, _080C4738 @ =gSpecialVar_0x8006
+ ldrh r1, [r1]
+ lsls r1, 6
+ ldr r2, _080C473C @ =gUnknown_0203857D
+ adds r1, r2
+ bl sub_80C4674
+_080C4730:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C4734: .4byte gStringVar1
+_080C4738: .4byte gSpecialVar_0x8006
+_080C473C: .4byte gUnknown_0203857D
+ thumb_func_end sub_80C46EC
+
+ thumb_func_start sub_80C4740
+sub_80C4740: @ 80C4740
+ push {lr}
+ ldr r0, _080C4750 @ =gStringVar3
+ ldr r1, _080C4754 @ =gSpecialVar_0x8006
+ ldrb r1, [r1]
+ bl sub_80C4698
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C4750: .4byte gStringVar3
+_080C4754: .4byte gSpecialVar_0x8006
+ thumb_func_end sub_80C4740
+
+ thumb_func_start sub_80C4758
+sub_80C4758: @ 80C4758
+ push {r4-r6,lr}
+ movs r1, 0
+ movs r2, 0
+ ldr r5, _080C4794 @ =gSpecialVar_0x8004
+ ldr r4, _080C4798 @ =gUnknown_02038670
+ ldr r0, _080C479C @ =gSpecialVar_0x8006
+ ldrh r0, [r0]
+ lsls r0, 1
+ adds r0, r4
+ movs r6, 0
+ ldrsh r3, [r0, r6]
+_080C476E:
+ lsls r0, r1, 1
+ adds r0, r4
+ movs r6, 0
+ ldrsh r0, [r0, r6]
+ cmp r3, r0
+ bge _080C4780
+ adds r0, r2, 0x1
+ lsls r0, 24
+ lsrs r2, r0, 24
+_080C4780:
+ adds r0, r1, 0x1
+ lsls r0, 24
+ lsrs r1, r0, 24
+ cmp r1, 0x3
+ bls _080C476E
+ strh r2, [r5]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C4794: .4byte gSpecialVar_0x8004
+_080C4798: .4byte gUnknown_02038670
+_080C479C: .4byte gSpecialVar_0x8006
+ thumb_func_end sub_80C4758
+
+ thumb_func_start sub_80C47A0
+sub_80C47A0: @ 80C47A0
+ ldr r2, _080C47B4 @ =gSpecialVar_0x8004
+ ldr r1, _080C47B8 @ =gUnknown_02038670
+ ldr r0, _080C47BC @ =gSpecialVar_0x8006
+ ldrh r0, [r0]
+ lsls r0, 1
+ adds r0, r1
+ ldrh r0, [r0]
+ strh r0, [r2]
+ bx lr
+ .align 2, 0
+_080C47B4: .4byte gSpecialVar_0x8004
+_080C47B8: .4byte gUnknown_02038670
+_080C47BC: .4byte gSpecialVar_0x8006
+ thumb_func_end sub_80C47A0
+
+ thumb_func_start sub_80C47C0
+sub_80C47C0: @ 80C47C0
+ push {lr}
+ movs r1, 0
+ ldr r2, _080C47E8 @ =gUnknown_02038690
+ ldrb r0, [r2]
+ ldr r3, _080C47EC @ =gSpecialVar_0x8005
+ cmp r0, 0
+ beq _080C47E0
+_080C47CE:
+ adds r0, r1, 0x1
+ lsls r0, 24
+ lsrs r1, r0, 24
+ cmp r1, 0x3
+ bhi _080C47E0
+ adds r0, r1, r2
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _080C47CE
+_080C47E0:
+ strh r1, [r3]
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C47E8: .4byte gUnknown_02038690
+_080C47EC: .4byte gSpecialVar_0x8005
+ thumb_func_end sub_80C47C0
+
+ thumb_func_start sub_80C47F0
+sub_80C47F0: @ 80C47F0
+ push {r4,lr}
+ movs r2, 0
+ ldr r3, _080C4830 @ =gUnknown_02038690
+ ldrb r0, [r3]
+ ldr r1, _080C4834 @ =gIsLinkContest
+ ldr r4, _080C4838 @ =gStringVar3
+ cmp r0, 0
+ beq _080C4812
+_080C4800:
+ adds r0, r2, 0x1
+ lsls r0, 24
+ lsrs r2, r0, 24
+ cmp r2, 0x3
+ bhi _080C4812
+ adds r0, r2, r3
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _080C4800
+_080C4812:
+ ldrb r1, [r1]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _080C4840
+ lsls r1, r2, 3
+ subs r1, r2
+ lsls r1, 2
+ ldr r0, _080C483C @ =gLinkPlayers + 0x8
+ adds r1, r0
+ adds r0, r4, 0
+ bl sub_80C4674
+ b _080C484C
+ .align 2, 0
+_080C4830: .4byte gUnknown_02038690
+_080C4834: .4byte gIsLinkContest
+_080C4838: .4byte gStringVar3
+_080C483C: .4byte gLinkPlayers + 0x8
+_080C4840:
+ lsls r1, r2, 6
+ ldr r0, _080C4854 @ =gUnknown_0203857D
+ adds r1, r0
+ adds r0, r4, 0
+ bl sub_80C4674
+_080C484C:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C4854: .4byte gUnknown_0203857D
+ thumb_func_end sub_80C47F0
+
+ thumb_func_start sub_80C4858
+sub_80C4858: @ 80C4858
+ push {lr}
+ movs r1, 0
+ ldr r2, _080C4884 @ =gUnknown_02038690
+ ldrb r0, [r2]
+ ldr r3, _080C4888 @ =gStringVar1
+ cmp r0, 0
+ beq _080C4878
+_080C4866:
+ adds r0, r1, 0x1
+ lsls r0, 24
+ lsrs r1, r0, 24
+ cmp r1, 0x3
+ bhi _080C4878
+ adds r0, r1, r2
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _080C4866
+_080C4878:
+ adds r0, r3, 0
+ bl sub_80C4698
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C4884: .4byte gUnknown_02038690
+_080C4888: .4byte gStringVar1
+ thumb_func_end sub_80C4858
+
+ thumb_func_start sub_80C488C
+sub_80C488C: @ 80C488C
+ push {lr}
+ ldr r0, _080C4898 @ =sub_80AB47C
+ bl SetMainCallback2
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C4898: .4byte sub_80AB47C
+ thumb_func_end sub_80C488C
+
+ thumb_func_start sub_80C489C
+sub_80C489C: @ 80C489C
+ push {lr}
+ lsls r0, 24
+ lsrs r2, r0, 24
+ ldr r0, _080C48C0 @ =gPaletteFade
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _080C48BA
+ adds r0, r2, 0
+ bl DestroyTask
+ ldr r0, _080C48C4 @ =sub_80C488C
+ bl SetMainCallback2
+_080C48BA:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C48C0: .4byte gPaletteFade
+_080C48C4: .4byte sub_80C488C
+ thumb_func_end sub_80C489C
+
+ thumb_func_start sub_80C48C8
+sub_80C48C8: @ 80C48C8
+ push {lr}
+ sub sp, 0x4
+ bl ScriptContext2_Enable
+ ldr r0, _080C48F0 @ =sub_80C489C
+ movs r1, 0xA
+ bl CreateTask
+ movs r0, 0x1
+ negs r0, r0
+ movs r1, 0
+ str r1, [sp]
+ movs r2, 0
+ movs r3, 0x10
+ bl BeginNormalPaletteFade
+ add sp, 0x4
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C48F0: .4byte sub_80C489C
+ thumb_func_end sub_80C48C8
+
+ thumb_func_start sub_80C48F4
+sub_80C48F4: @ 80C48F4
+ ldr r2, _080C4908 @ =gSpecialVar_0x8004
+ ldr r1, _080C490C @ =gContestMons
+ ldr r0, _080C4910 @ =gSpecialVar_0x8006
+ ldrh r0, [r0]
+ lsls r0, 6
+ adds r0, r1
+ ldrh r0, [r0]
+ strh r0, [r2]
+ bx lr
+ .align 2, 0
+_080C4908: .4byte gSpecialVar_0x8004
+_080C490C: .4byte gContestMons
+_080C4910: .4byte gSpecialVar_0x8006
+ thumb_func_end sub_80C48F4
+
+ thumb_func_start sub_80C4914
+sub_80C4914: @ 80C4914
+ push {lr}
+ lsls r0, 24
+ lsrs r2, r0, 24
+ ldr r0, _080C4938 @ =gPaletteFade
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _080C4932
+ adds r0, r2, 0
+ bl DestroyTask
+ ldr r0, _080C493C @ =sub_80C2358
+ bl SetMainCallback2
+_080C4932:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C4938: .4byte gPaletteFade
+_080C493C: .4byte sub_80C2358
+ thumb_func_end sub_80C4914
+
+ thumb_func_start sub_80C4940
+sub_80C4940: @ 80C4940
+ push {lr}
+ sub sp, 0x4
+ bl ScriptContext2_Enable
+ ldr r0, _080C4968 @ =sub_80C4914
+ movs r1, 0xA
+ bl CreateTask
+ movs r0, 0x1
+ negs r0, r0
+ movs r1, 0
+ str r1, [sp]
+ movs r2, 0
+ movs r3, 0x10
+ bl BeginNormalPaletteFade
+ add sp, 0x4
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C4968: .4byte sub_80C4914
+ thumb_func_end sub_80C4940
+
+ thumb_func_start sub_80C496C
+sub_80C496C: @ 80C496C
+ ldr r0, _080C4978 @ =gSpecialVar_0x8004
+ ldr r1, _080C497C @ =gContestPlayerMonIndex
+ ldrb r1, [r1]
+ strh r1, [r0]
+ bx lr
+ .align 2, 0
+_080C4978: .4byte gSpecialVar_0x8004
+_080C497C: .4byte gContestPlayerMonIndex
+ thumb_func_end sub_80C496C
+
+ thumb_func_start sub_80C4980
+sub_80C4980: @ 80C4980
+ push {r4-r6,lr}
+ adds r5, r0, 0
+ lsls r5, 24
+ lsrs r5, 24
+ bl ScriptContext2_Enable
+ ldr r6, _080C49B8 @ =sub_80C8604
+ adds r0, r6, 0
+ movs r1, 0
+ bl CreateTask
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ ldr r2, _080C49BC @ =sub_80C49C4
+ adds r0, r4, 0
+ adds r1, r6, 0
+ bl SetTaskFuncWithFollowupFunc
+ ldr r1, _080C49C0 @ =gTasks
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ strh r5, [r0, 0x1A]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C49B8: .4byte sub_80C8604
+_080C49BC: .4byte sub_80C49C4
+_080C49C0: .4byte gTasks
+ thumb_func_end sub_80C4980
+
+ thumb_func_start sub_80C49C4
+sub_80C49C4: @ 80C49C4
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ ldr r0, _080C49E4 @ =gUnknown_02038694
+ ldrb r0, [r0]
+ bl sub_80AE098
+ ldr r1, _080C49E8 @ =sub_80C8734
+ ldr r2, _080C49EC @ =sub_80C49F0
+ adds r0, r4, 0
+ bl SetTaskFuncWithFollowupFunc
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C49E4: .4byte gUnknown_02038694
+_080C49E8: .4byte sub_80C8734
+_080C49EC: .4byte sub_80C49F0
+ thumb_func_end sub_80C49C4
+
+ thumb_func_start sub_80C49F0
+sub_80C49F0: @ 80C49F0
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r1, _080C4A04 @ =sub_80C88AC
+ ldr r2, _080C4A08 @ =sub_80C4A0C
+ bl SetTaskFuncWithFollowupFunc
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C4A04: .4byte sub_80C88AC
+_080C4A08: .4byte sub_80C4A0C
+ thumb_func_end sub_80C49F0
+
+ thumb_func_start sub_80C4A0C
+sub_80C4A0C: @ 80C4A0C
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r1, _080C4A20 @ =sub_80C8E1C
+ ldr r2, _080C4A24 @ =sub_80C4A28
+ bl SetTaskFuncWithFollowupFunc
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C4A20: .4byte sub_80C8E1C
+_080C4A24: .4byte sub_80C4A28
+ thumb_func_end sub_80C4A0C
+
+ thumb_func_start sub_80C4A28
+sub_80C4A28: @ 80C4A28
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r1, _080C4A3C @ =sub_80C8938
+ ldr r2, _080C4A40 @ =sub_80C4A44
+ bl SetTaskFuncWithFollowupFunc
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C4A3C: .4byte sub_80C8938
+_080C4A40: .4byte sub_80C4A44
+ thumb_func_end sub_80C4A28
+
+ thumb_func_start sub_80C4A44
+sub_80C4A44: @ 80C4A44
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ sub sp, 0x8
+ lsls r0, 24
+ lsrs r5, r0, 24
+ movs r3, 0
+ ldr r0, _080C4AA0 @ =gSpecialVar_0x8004
+ mov r8, r0
+ add r1, sp, 0x4
+ mov r12, r1
+ lsls r1, r5, 2
+ adds r0, r1, r5
+ lsls r4, r0, 3
+ ldr r6, _080C4AA4 @ =gTasks + 0x8
+ adds r7, r1, 0
+_080C4A64:
+ mov r0, sp
+ adds r2, r0, r3
+ adds r1, r3, 0x1
+ lsls r0, r1, 1
+ adds r0, r4
+ adds r0, r6
+ ldrh r0, [r0]
+ strb r0, [r2]
+ lsls r1, 24
+ lsrs r3, r1, 24
+ cmp r3, 0x3
+ bls _080C4A64
+ movs r3, 0
+ mov r2, sp
+_080C4A80:
+ adds r0, r3, 0x1
+ lsls r0, 24
+ lsrs r3, r0, 24
+ cmp r3, 0x3
+ bhi _080C4A96
+ mov r0, sp
+ adds r1, r0, r3
+ ldrb r0, [r2]
+ ldrb r1, [r1]
+ cmp r0, r1
+ beq _080C4A80
+_080C4A96:
+ cmp r3, 0x4
+ bne _080C4AA8
+ movs r0, 0
+ b _080C4AAA
+ .align 2, 0
+_080C4AA0: .4byte gSpecialVar_0x8004
+_080C4AA4: .4byte gTasks + 0x8
+_080C4AA8:
+ movs r0, 0x1
+_080C4AAA:
+ mov r1, r8
+ strh r0, [r1]
+ movs r3, 0
+ mov r4, r12
+ adds r0, r7, r5
+ lsls r2, r0, 3
+ ldr r6, _080C4AF8 @ =gTasks + 0x8
+_080C4AB8:
+ adds r1, r4, r3
+ adds r0, r3, 0x5
+ lsls r0, 1
+ adds r0, r2
+ adds r0, r6
+ ldrh r0, [r0]
+ strb r0, [r1]
+ adds r0, r3, 0x1
+ lsls r0, 24
+ lsrs r3, r0, 24
+ cmp r3, 0x3
+ bls _080C4AB8
+ mov r0, r12
+ bl sub_80C4B34
+ ldr r1, _080C4AFC @ =gUnknown_0203869B
+ strb r0, [r1]
+ ldr r0, _080C4B00 @ =gScriptContestCategory
+ ldrb r0, [r0]
+ bl sub_80AE82C
+ ldr r1, _080C4B04 @ =sub_80C8EBC
+ ldr r2, _080C4B08 @ =sub_80C4B0C
+ adds r0, r5, 0
+ bl SetTaskFuncWithFollowupFunc
+ add sp, 0x8
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C4AF8: .4byte gTasks + 0x8
+_080C4AFC: .4byte gUnknown_0203869B
+_080C4B00: .4byte gScriptContestCategory
+_080C4B04: .4byte sub_80C8EBC
+_080C4B08: .4byte sub_80C4B0C
+ thumb_func_end sub_80C4A44
+
+ thumb_func_start sub_80C4B0C
+sub_80C4B0C: @ 80C4B0C
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ movs r0, 0
+ bl sub_80B0F28
+ ldr r1, _080C4B2C @ =sub_80C8F34
+ ldr r2, _080C4B30 @ =sub_80C4B5C
+ adds r0, r4, 0
+ bl SetTaskFuncWithFollowupFunc
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C4B2C: .4byte sub_80C8F34
+_080C4B30: .4byte sub_80C4B5C
+ thumb_func_end sub_80C4B0C
+
+ thumb_func_start sub_80C4B34
+sub_80C4B34: @ 80C4B34
+ push {r4,lr}
+ adds r3, r0, 0
+ movs r4, 0
+ movs r2, 0x1
+_080C4B3C:
+ adds r0, r3, r4
+ adds r1, r3, r2
+ ldrb r0, [r0]
+ ldrb r1, [r1]
+ cmp r0, r1
+ bcs _080C4B4C
+ lsls r0, r2, 24
+ lsrs r4, r0, 24
+_080C4B4C:
+ adds r2, 0x1
+ cmp r2, 0x3
+ ble _080C4B3C
+ adds r0, r4, 0
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80C4B34
+
+ thumb_func_start sub_80C4B5C
+sub_80C4B5C: @ 80C4B5C
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r0, _080C4B84 @ =gSpecialVar_0x8004
+ ldrh r0, [r0]
+ cmp r0, 0x1
+ bne _080C4B90
+ bl sub_8007ECC
+ lsls r0, 24
+ cmp r0, 0
+ beq _080C4B9E
+ ldr r0, _080C4B88 @ =gTasks
+ lsls r1, r4, 2
+ adds r1, r4
+ lsls r1, 3
+ adds r1, r0
+ ldr r0, _080C4B8C @ =sub_80C4BA4
+ str r0, [r1]
+ b _080C4B9E
+ .align 2, 0
+_080C4B84: .4byte gSpecialVar_0x8004
+_080C4B88: .4byte gTasks
+_080C4B8C: .4byte sub_80C4BA4
+_080C4B90:
+ adds r0, r4, 0
+ bl DestroyTask
+ bl ScriptContext2_Disable
+ bl EnableBothScriptContexts
+_080C4B9E:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80C4B5C
+
+ thumb_func_start sub_80C4BA4
+sub_80C4BA4: @ 80C4BA4
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ bl sub_800832C
+ ldr r1, _080C4BC4 @ =gTasks
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _080C4BC8 @ =sub_80C4BCC
+ str r1, [r0]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C4BC4: .4byte gTasks
+_080C4BC8: .4byte sub_80C4BCC
+ thumb_func_end sub_80C4BA4
+
+ thumb_func_start sub_80C4BCC
+sub_80C4BCC: @ 80C4BCC
+ push {lr}
+ lsls r0, 24
+ lsrs r1, r0, 24
+ ldr r0, _080C4BEC @ =gReceivedRemoteLinkPlayers
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _080C4BE8
+ adds r0, r1, 0
+ bl DestroyTask
+ bl ScriptContext2_Disable
+ bl EnableBothScriptContexts
+_080C4BE8:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C4BEC: .4byte gReceivedRemoteLinkPlayers
+ thumb_func_end sub_80C4BCC
+
+ .align 2, 0 @ Don't pad with nop.
diff --git a/asm-de/contest_link_80C857C.s b/asm-de/contest_link_80C857C.s
new file mode 100644
index 000000000..f898f177f
--- /dev/null
+++ b/asm-de/contest_link_80C857C.s
@@ -0,0 +1,1409 @@
+ .include "constants/gba_constants.inc"
+ .include "constants/species_constants.inc"
+ .include "asm/macros.inc"
+
+ .syntax unified
+
+ .text
+
+ thumb_func_start sub_80C857C
+sub_80C857C: @ 80C857C
+ push {r4,r5,lr}
+ adds r2, r0, 0
+ lsls r4, r1, 16
+ lsrs r4, 16
+ ldr r5, _080C85A8 @ =0x0201e000
+ adds r0, r5, 0
+ adds r1, r2, 0
+ adds r2, r4, 0
+ bl memcpy
+ bl bitmask_all_link_players_but_self
+ lsls r0, 24
+ lsrs r0, 24
+ adds r1, r5, 0
+ adds r2, r4, 0
+ bl SendBlock
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C85A8: .4byte 0x0201e000
+ thumb_func_end sub_80C857C
+
+ thumb_func_start sub_80C85AC
+sub_80C85AC: @ 80C85AC
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ movs r1, 0x80
+ lsls r1, 17
+ lsls r1, r0
+ lsrs r4, r1, 24
+ bl GetBlockReceivedStatus
+ adds r1, r4, 0
+ ands r1, r0
+ cmp r1, 0
+ beq _080C85D0
+ adds r0, r4, 0
+ bl ResetBlockReceivedFlag
+ movs r0, 0x1
+ b _080C85D2
+_080C85D0:
+ movs r0, 0
+_080C85D2:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80C85AC
+
+ thumb_func_start sub_80C85D8
+sub_80C85D8: @ 80C85D8
+ push {r4,lr}
+ movs r4, 0
+_080C85DC:
+ bl GetBlockReceivedStatus
+ lsls r0, 24
+ lsrs r0, 24
+ asrs r0, r4
+ movs r1, 0x1
+ ands r0, r1
+ cmp r0, 0
+ bne _080C85F2
+ movs r0, 0
+ b _080C85FE
+_080C85F2:
+ adds r4, 0x1
+ cmp r4, 0x3
+ ble _080C85DC
+ bl ResetBlockReceivedFlags
+ movs r0, 0x1
+_080C85FE:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80C85D8
+
+ thumb_func_start sub_80C8604
+sub_80C8604: @ 80C8604
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _080C861C @ =gTasks
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r2
+ movs r0, 0
+ strh r0, [r1, 0x8]
+ ldr r0, _080C8620 @ =sub_80C8644
+ str r0, [r1]
+ bx lr
+ .align 2, 0
+_080C861C: .4byte gTasks
+_080C8620: .4byte sub_80C8644
+ thumb_func_end sub_80C8604
+
+ thumb_func_start sub_80C8644
+sub_80C8644: @ 80C8644
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _080C8658 @ =gTasks
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r2
+ ldr r0, _080C865C @ =sub_80C8660
+ str r0, [r1]
+ bx lr
+ .align 2, 0
+_080C8658: .4byte gTasks
+_080C865C: .4byte sub_80C8660
+ thumb_func_end sub_80C8644
+
+ thumb_func_start sub_80C8660
+sub_80C8660: @ 80C8660
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r0, _080C8694 @ =gReceivedRemoteLinkPlayers
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _080C868E
+ bl GetMultiplayerId
+ ldr r1, _080C8698 @ =gContestPlayerMonIndex
+ strb r0, [r1]
+ bl GetLinkPlayerCount
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x4
+ bne _080C868E
+ ldr r1, _080C869C @ =gIsLinkContest
+ movs r0, 0x1
+ strb r0, [r1]
+ adds r0, r4, 0
+ bl SwitchTaskToFollowupFunc
+_080C868E:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C8694: .4byte gReceivedRemoteLinkPlayers
+_080C8698: .4byte gContestPlayerMonIndex
+_080C869C: .4byte gIsLinkContest
+ thumb_func_end sub_80C8660
+
+ thumb_func_start sub_80C86A0
+sub_80C86A0: @ 80C86A0
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ movs r5, 0x5
+ ldrb r0, [r4]
+ cmp r0, 0xFC
+ bne _080C86B6
+ ldrb r0, [r4, 0x1]
+ cmp r0, 0x15
+ bne _080C86B6
+ movs r0, 0x5
+ b _080C872C
+_080C86B6:
+ adds r0, r4, 0
+ bl StringLength
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0x5
+ bhi _080C872A
+ ldrb r0, [r4]
+ cmp r0, 0xFF
+ beq _080C872A
+_080C86CA:
+ ldrb r1, [r4]
+ adds r0, r1, 0
+ adds r0, 0x45
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x33
+ bls _080C871E
+ adds r0, r1, 0
+ adds r0, 0x5F
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x9
+ bls _080C871E
+ adds r0, r1, 0
+ cmp r0, 0
+ beq _080C871E
+ cmp r0, 0xAD
+ beq _080C871E
+ cmp r0, 0xB8
+ beq _080C871E
+ cmp r0, 0xAB
+ beq _080C871E
+ cmp r0, 0xAC
+ beq _080C871E
+ cmp r0, 0xB5
+ beq _080C871E
+ cmp r0, 0xB6
+ beq _080C871E
+ cmp r0, 0xBA
+ beq _080C871E
+ cmp r0, 0xAE
+ beq _080C871E
+ cmp r0, 0xB0
+ beq _080C871E
+ cmp r0, 0xB1
+ beq _080C871E
+ cmp r0, 0xB2
+ beq _080C871E
+ cmp r0, 0xB3
+ beq _080C871E
+ cmp r0, 0xB1
+ bne _080C8728
+_080C871E:
+ adds r4, 0x1
+ ldrb r0, [r4]
+ cmp r0, 0xFF
+ bne _080C86CA
+ b _080C872A
+_080C8728:
+ movs r5, 0x1
+_080C872A:
+ adds r0, r5, 0
+_080C872C:
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80C86A0
+
+ thumb_func_start sub_80C8734
+sub_80C8734: @ 80C8734
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x4
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldr r1, _080C8760 @ =gTasks
+ lsls r4, r5, 2
+ adds r0, r4, r5
+ lsls r0, 3
+ adds r2, r0, r1
+ movs r3, 0x8
+ ldrsh r0, [r2, r3]
+ cmp r0, 0x1
+ beq _080C8800
+ cmp r0, 0x1
+ bgt _080C8764
+ cmp r0, 0
+ beq _080C8770
+ b _080C88E0
+ .align 2, 0
+_080C8760: .4byte gTasks
+_080C8764:
+ cmp r0, 0x2
+ bne _080C876A
+ b _080C88D4_B
+_080C876A:
+ cmp r0, 0x8
+ beq _080C8770
+ b _080C88E0
+_080C8770:
+ bl GetMultiplayerId
+ lsls r0, 24
+ cmp r0, 0
+ bne _080C87D4
+ bl sub_8007ECC
+ lsls r0, 24
+ cmp r0, 0
+ bne _080C8786
+ b _080C88EE
+_080C8786:
+ ldr r0, _080C87A0 @ =gTasks
+ lsls r1, r5, 2
+ adds r1, r5
+ lsls r1, 3
+ adds r4, r1, r0
+ movs r1, 0x8
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ bne _080C87A4
+ movs r0, 0x3
+ strh r0, [r4, 0x8]
+ b _080C88EE
+ .align 2, 0
+_080C87A0: .4byte gTasks
+_080C87A4:
+ ldr r0, _080C87C8 @ =gBlockSendBuffer
+ ldr r1, _080C87CC @ =gContestPlayerMonIndex
+ ldrb r1, [r1]
+ lsls r1, 6
+ ldr r2, _080C87D0 @ =gContestMons
+ adds r1, r2
+ movs r2, 0x40
+ bl memcpy
+ movs r0, 0
+ bl de_sub_80C9274
+ movs r0, 0x2
+ bl sub_8007E9C
+ movs r0, 0x1
+ strh r0, [r4, 0x8]
+ b _080C88EE
+ .align 2, 0
+_080C87C8: .4byte gBlockSendBuffer
+_080C87CC: .4byte gContestPlayerMonIndex
+_080C87D0: .4byte gContestMons
+_080C87D4:
+ ldr r0, _080C87F0 @ =gBlockSendBuffer
+ ldr r1, _080C87F4 @ =gContestPlayerMonIndex
+ ldrb r1, [r1]
+ lsls r1, 6
+ ldr r2, _080C87F8 @ =gContestMons
+ adds r1, r2
+ movs r2, 0x40
+ bl memcpy
+ movs r0, 0
+ bl de_sub_80C9294
+ ldr r1, _080C87FC @ =gTasks
+ b _080C88E0
+ .align 2, 0
+_080C87F0: .4byte gBlockSendBuffer
+_080C87F4: .4byte gContestPlayerMonIndex
+_080C87F8: .4byte gContestMons
+_080C87FC: .4byte gTasks
+_080C8800:
+ bl sub_80C85D8
+ lsls r0, 24
+ cmp r0, 0
+ beq _080C88EE
+ movs r2, 0
+ mov r8, r2
+ str r4, [sp]
+ ldr r0, _080C884C @ =gContestMons
+ ldr r7, _080C8850 @ =gLinkPlayers
+ movs r6, 0
+ mov r10, r0
+ movs r3, 0xFF
+ mov r9, r3
+_080C881C:
+ mov r0, r8
+ lsls r1, r0, 8
+ ldr r0, _080C8854 @ =gBlockRecvBuffer
+ adds r1, r0
+ mov r0, r10
+ movs r2, 0x40
+ bl memcpy
+ ldr r1, _080C8858 @ =0x02038572
+ adds r4, r6, r1
+ ldrh r0, [r7, 0x1A]
+ cmp r0, 0x1
+ bne _080C885C
+ adds r0, r4, 0
+ bl sub_80C86A0
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ adds r0, r4, 0
+ bl ConvertInternationalString
+ b _080C8872
+ .align 2, 0
+_080C884C: .4byte gContestMons
+_080C8850: .4byte gLinkPlayers
+_080C8854: .4byte gBlockRecvBuffer
+_080C8858: .4byte 0x02038572
+_080C885C:
+ ldrb r0, [r4, 0xA]
+ cmp r0, 0xFC
+ bne _080C886C
+ adds r0, r4, 0
+ movs r1, 0x1
+ bl ConvertInternationalString
+ b _080C8872
+_080C886C:
+ strb r0, [r4, 0x5]
+ mov r2, r9
+ strb r2, [r4, 0xA]
+_080C8872:
+ ldr r0, _080C88A0 @ =gUnknown_0203857D
+ adds r4, r6, r0
+ ldrh r0, [r7, 0x1A]
+ cmp r0, 0x1
+ bne _080C88A4
+ mov r3, r9
+ strb r3, [r4, 0x7]
+ ldrb r0, [r4, 0x4]
+ strb r0, [r4, 0x6]
+ ldrb r0, [r4, 0x3]
+ strb r0, [r4, 0x5]
+ ldrb r0, [r4, 0x2]
+ strb r0, [r4, 0x4]
+ ldrb r0, [r4, 0x1]
+ strb r0, [r4, 0x3]
+ ldrb r0, [r4]
+ strb r0, [r4, 0x2]
+ movs r0, 0x15
+ strb r0, [r4, 0x1]
+ movs r0, 0xFC
+ strb r0, [r4]
+ b _080C88AC
+ .align 2, 0
+_080C88A0: .4byte gUnknown_0203857D
+_080C88A4:
+ ldrb r0, [r4, 0x7]
+ strb r0, [r4, 0x5]
+ mov r0, r9
+ strb r0, [r4, 0x7]
+_080C88AC:
+ adds r7, 0x1C
+ adds r6, 0x40
+ movs r1, 0x40
+ add r10, r1
+ movs r2, 0x1
+ add r8, r2
+ mov r3, r8
+ cmp r3, 0x3
+ ble _080C881C
+ ldr r0, _080C88D0 @ =gTasks
+ ldr r2, [sp]
+ adds r1, r2, r5
+ lsls r1, 3
+ adds r1, r0
+ ldrh r0, [r1, 0x8]
+ adds r0, 0x1
+ strh r0, [r1, 0x8]
+ b _080C88EE
+ .align 2, 0
+_080C88D0: .4byte gTasks
+_080C88D4_B:
+ movs r0, 0
+ strh r0, [r2, 0x8]
+ adds r0, r5, 0
+ bl SwitchTaskToFollowupFunc
+ b _080C88EE
+_080C88E0:
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ adds r0, r1
+ ldrh r1, [r0, 0x8]
+ adds r1, 0x1
+ strh r1, [r0, 0x8]
+_080C88EE:
+ add sp, 0x4
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80C8734
+
+ thumb_func_start sub_80C88AC
+sub_80C88AC: @ 80C88AC
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r2, r0, 24
+ ldr r1, _080C88D4 @ =gTasks
+ lsls r0, r2, 2
+ adds r0, r2
+ lsls r0, 3
+ adds r5, r0, r1
+ movs r1, 0x8
+ ldrsh r0, [r5, r1]
+ cmp r0, 0
+ beq _080C88D8
+ cmp r0, 0x1
+ beq _080C88FC
+ movs r0, 0
+ strh r0, [r5, 0x8]
+ adds r0, r2, 0
+ bl SwitchTaskToFollowupFunc
+ b _080C8924
+ .align 2, 0
+_080C88D4: .4byte gTasks
+_080C88D8:
+ bl GetMultiplayerId
+ lsls r0, 24
+ cmp r0, 0
+ bne _080C891E
+ bl sub_8007ECC
+ lsls r0, 24
+ cmp r0, 0
+ beq _080C8924
+ ldr r0, _080C88F8 @ =gRngValue
+ movs r1, 0x4
+ bl sub_80C857C
+ b _080C891E
+ .align 2, 0
+_080C88F8: .4byte gRngValue
+_080C88FC:
+ movs r0, 0
+ bl sub_80C85AC
+ lsls r0, 24
+ cmp r0, 0
+ beq _080C8924
+ ldr r0, _080C892C @ =gRngValue
+ ldr r4, _080C8930 @ =gBlockRecvBuffer
+ adds r1, r4, 0
+ movs r2, 0x4
+ bl memcpy
+ ldr r0, _080C8934 @ =gUnknown_03005D28
+ adds r1, r4, 0
+ movs r2, 0x4
+ bl memcpy
+_080C891E:
+ ldrh r0, [r5, 0x8]
+ adds r0, 0x1
+ strh r0, [r5, 0x8]
+_080C8924:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C892C: .4byte gRngValue
+_080C8930: .4byte gBlockRecvBuffer
+_080C8934: .4byte gUnknown_03005D28
+ thumb_func_end sub_80C88AC
+
+ thumb_func_start sub_80C8938
+sub_80C8938: @ 80C8938
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r1, _080C8960 @ =gTasks
+ lsls r5, r4, 2
+ adds r0, r5, r4
+ lsls r6, r0, 3
+ adds r2, r6, r1
+ movs r3, 0x8
+ ldrsh r0, [r2, r3]
+ mov r8, r1
+ cmp r0, 0x1
+ beq _080C89C4
+ cmp r0, 0x1
+ bgt _080C8964
+ cmp r0, 0
+ beq _080C896C
+ b _080C8A0C
+ .align 2, 0
+_080C8960: .4byte gTasks
+_080C8964:
+ cmp r0, 0x2
+ beq _080C8A00
+ cmp r0, 0x8
+ bne _080C8A0C
+_080C896C:
+ ldr r1, _080C89A0 @ =gBlockSendBuffer
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ mov r2, r8
+ adds r4, r0, r2
+ ldrh r0, [r4, 0x1A]
+ strb r0, [r1]
+ bl GetMultiplayerId
+ lsls r0, 24
+ cmp r0, 0
+ bne _080C89B6
+ bl sub_8007ECC
+ lsls r0, 24
+ cmp r0, 0
+ beq _080C8A1A
+ movs r3, 0x8
+ ldrsh r0, [r4, r3]
+ cmp r0, 0
+ bne _080C89A4
+ movs r0, 0x3
+ strh r0, [r4, 0x8]
+ b _080C8A1A
+ .align 2, 0
+_080C89A0: .4byte gBlockSendBuffer
+_080C89A4:
+ movs r0, 0x1
+ bl de_sub_80C9274
+ movs r0, 0x2
+ bl sub_8007E9C
+ movs r0, 0x1
+ strh r0, [r4, 0x8]
+ b _080C8A1A
+_080C89B6:
+ movs r0, 0x1
+ bl de_sub_80C9294
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+ b _080C8A1A
+_080C89C4:
+ bl sub_80C85D8
+ lsls r0, 24
+ cmp r0, 0
+ beq _080C8A1A
+ movs r3, 0
+ adds r7, r5, 0
+ ldr r1, _080C89FC @ =gBlockRecvBuffer
+ mov r0, r8
+ adds r0, 0xA
+ adds r2, r6, r0
+ movs r5, 0x80
+ lsls r5, 1
+_080C89DE:
+ ldrh r0, [r1]
+ strh r0, [r2]
+ adds r1, r5
+ adds r2, 0x2
+ adds r3, 0x1
+ cmp r3, 0x3
+ ble _080C89DE
+ adds r1, r7, r4
+ lsls r1, 3
+ add r1, r8
+ ldrh r0, [r1, 0x8]
+ adds r0, 0x1
+ strh r0, [r1, 0x8]
+ b _080C8A1A
+ .align 2, 0
+_080C89FC: .4byte gBlockRecvBuffer
+_080C8A00:
+ movs r0, 0
+ strh r0, [r2, 0x8]
+ adds r0, r4, 0
+ bl SwitchTaskToFollowupFunc
+ b _080C8A1A
+_080C8A0C:
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ add r0, r8
+ ldrh r1, [r0, 0x8]
+ adds r1, 0x1
+ strh r1, [r0, 0x8]
+_080C8A1A:
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80C8938
+
+ thumb_func_start sub_80C89DC
+sub_80C89DC: @ 80C89DC
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r2, r0, 24
+ ldr r1, _080C8A04 @ =gTasks
+ lsls r0, r2, 2
+ adds r0, r2
+ lsls r0, 3
+ adds r4, r0, r1
+ movs r1, 0x8
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ beq _080C8A08
+ cmp r0, 0x1
+ beq _080C8A20
+ movs r0, 0
+ strh r0, [r4, 0x8]
+ adds r0, r2, 0
+ bl SwitchTaskToFollowupFunc
+ b _080C8A30
+ .align 2, 0
+_080C8A04: .4byte gTasks
+_080C8A08:
+ bl sub_8007ECC
+ lsls r0, 24
+ cmp r0, 0
+ beq _080C8A30
+ ldr r0, _080C8A1C @ =gContestPlayerMonIndex
+ movs r1, 0x1
+ bl sub_80C857C
+ b _080C8A2A
+ .align 2, 0
+_080C8A1C: .4byte gContestPlayerMonIndex
+_080C8A20:
+ bl sub_80C85D8
+ lsls r0, 24
+ cmp r0, 0
+ beq _080C8A30
+_080C8A2A:
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+_080C8A30:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80C89DC
+
+ thumb_func_start sub_80C8A38
+sub_80C8A38: @ 80C8A38
+ push {r4-r7,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldr r7, _080C8A60 @ =gTasks
+ lsls r6, r5, 2
+ adds r0, r6, r5
+ lsls r0, 3
+ adds r4, r0, r7
+ movs r1, 0x8
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ beq _080C8A64
+ cmp r0, 0x1
+ beq _080C8A94
+ movs r0, 0
+ strh r0, [r4, 0x8]
+ adds r0, r5, 0
+ bl SwitchTaskToFollowupFunc
+ b _080C8AC2
+ .align 2, 0
+_080C8A60: .4byte gTasks
+_080C8A64:
+ bl sub_8007ECC
+ lsls r0, 24
+ cmp r0, 0
+ beq _080C8AC2
+ ldr r0, _080C8A8C @ =gContestPlayerMonIndex
+ ldrb r1, [r0]
+ lsls r0, r1, 3
+ subs r0, r1
+ lsls r0, 2
+ ldr r1, _080C8A90 @ =0x02019266
+ adds r0, r1
+ movs r1, 0x2
+ bl sub_80C857C
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+ b _080C8AC2
+ .align 2, 0
+_080C8A8C: .4byte gContestPlayerMonIndex
+_080C8A90: .4byte 0x02019266
+_080C8A94:
+ bl sub_80C85D8
+ lsls r0, 24
+ cmp r0, 0
+ beq _080C8AC2
+ ldr r1, _080C8AC8 @ =gBlockRecvBuffer
+ ldr r3, _080C8ACC @ =0x02019266
+ movs r4, 0x80
+ lsls r4, 1
+ movs r2, 0x3
+_080C8AA8:
+ ldrh r0, [r1]
+ strh r0, [r3]
+ adds r1, r4
+ adds r3, 0x1C
+ subs r2, 0x1
+ cmp r2, 0
+ bge _080C8AA8
+ adds r1, r6, r5
+ lsls r1, 3
+ adds r1, r7
+ ldrh r0, [r1, 0x8]
+ adds r0, 0x1
+ strh r0, [r1, 0x8]
+_080C8AC2:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C8AC8: .4byte gBlockRecvBuffer
+_080C8ACC: .4byte 0x02019266
+ thumb_func_end sub_80C8A38
+
+ thumb_func_start sub_80C8AD0
+sub_80C8AD0: @ 80C8AD0
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r1, _080C8AF8 @ =gTasks
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r2, r0, r1
+ movs r3, 0x8
+ ldrsh r0, [r2, r3]
+ adds r3, r1, 0
+ cmp r0, 0xB
+ bls _080C8AEC
+ b _080C8C70
+_080C8AEC:
+ lsls r0, 2
+ ldr r1, _080C8AFC @ =_080C8B00
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080C8AF8: .4byte gTasks
+_080C8AFC: .4byte _080C8B00
+ .align 2, 0
+_080C8B00:
+ .4byte _080C8B30
+ .4byte _080C8B4C
+ .4byte _080C8B74
+ .4byte _080C8B98
+ .4byte _080C8BB0
+ .4byte _080C8B74
+ .4byte _080C8BD8
+ .4byte _080C8BF0
+ .4byte _080C8B74
+ .4byte _080C8C18
+ .4byte _080C8C30
+ .4byte _080C8B74
+_080C8B30:
+ bl sub_8007ECC
+ lsls r0, 24
+ cmp r0, 0
+ bne _080C8B3C
+ b _080C8C7A
+_080C8B3C:
+ ldr r0, _080C8B48 @ =gUnknown_02038678
+ movs r1, 0x8
+ bl sub_80C857C
+ b _080C8C4C
+ .align 2, 0
+_080C8B48: .4byte gUnknown_02038678
+_080C8B4C:
+ bl sub_80C85D8
+ lsls r0, 24
+ cmp r0, 0
+ bne _080C8B58
+ b _080C8C7A
+_080C8B58:
+ ldr r0, _080C8B68 @ =gUnknown_02038678
+ ldr r1, _080C8B6C @ =gUnknown_0203869B
+ ldrb r1, [r1]
+ lsls r1, 8
+ ldr r2, _080C8B70 @ =gBlockRecvBuffer
+ adds r1, r2
+ movs r2, 0x8
+ b _080C8C48
+ .align 2, 0
+_080C8B68: .4byte gUnknown_02038678
+_080C8B6C: .4byte gUnknown_0203869B
+_080C8B70: .4byte gBlockRecvBuffer
+_080C8B74:
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r2, r0, r3
+ ldrh r0, [r2, 0xA]
+ adds r1, r0, 0x1
+ strh r1, [r2, 0xA]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0xA
+ bgt _080C8B8C
+ b _080C8C7A
+_080C8B8C:
+ movs r0, 0
+ strh r0, [r2, 0xA]
+ ldrh r0, [r2, 0x8]
+ adds r0, 0x1
+ strh r0, [r2, 0x8]
+ b _080C8C7A
+_080C8B98:
+ bl sub_8007ECC
+ lsls r0, 24
+ cmp r0, 0
+ beq _080C8C7A
+ ldr r0, _080C8BAC @ =gUnknown_02038680
+ movs r1, 0x8
+ bl sub_80C857C
+ b _080C8C4C
+ .align 2, 0
+_080C8BAC: .4byte gUnknown_02038680
+_080C8BB0:
+ bl sub_80C85D8
+ lsls r0, 24
+ cmp r0, 0
+ beq _080C8C7A
+ ldr r0, _080C8BCC @ =gUnknown_02038680
+ ldr r1, _080C8BD0 @ =gUnknown_0203869B
+ ldrb r1, [r1]
+ lsls r1, 8
+ ldr r2, _080C8BD4 @ =gBlockRecvBuffer
+ adds r1, r2
+ movs r2, 0x8
+ b _080C8C48
+ .align 2, 0
+_080C8BCC: .4byte gUnknown_02038680
+_080C8BD0: .4byte gUnknown_0203869B
+_080C8BD4: .4byte gBlockRecvBuffer
+_080C8BD8:
+ bl sub_8007ECC
+ lsls r0, 24
+ cmp r0, 0
+ beq _080C8C7A
+ ldr r0, _080C8BEC @ =gUnknown_02038688
+ movs r1, 0x8
+ bl sub_80C857C
+ b _080C8C4C
+ .align 2, 0
+_080C8BEC: .4byte gUnknown_02038688
+_080C8BF0:
+ bl sub_80C85D8
+ lsls r0, 24
+ cmp r0, 0
+ beq _080C8C7A
+ ldr r0, _080C8C0C @ =gUnknown_02038688
+ ldr r1, _080C8C10 @ =gUnknown_0203869B
+ ldrb r1, [r1]
+ lsls r1, 8
+ ldr r2, _080C8C14 @ =gBlockRecvBuffer
+ adds r1, r2
+ movs r2, 0x8
+ b _080C8C48
+ .align 2, 0
+_080C8C0C: .4byte gUnknown_02038688
+_080C8C10: .4byte gUnknown_0203869B
+_080C8C14: .4byte gBlockRecvBuffer
+_080C8C18:
+ bl sub_8007ECC
+ lsls r0, 24
+ cmp r0, 0
+ beq _080C8C7A
+ ldr r0, _080C8C2C @ =gUnknown_02038690
+ movs r1, 0x4
+ bl sub_80C857C
+ b _080C8C4C
+ .align 2, 0
+_080C8C2C: .4byte gUnknown_02038690
+_080C8C30:
+ bl sub_80C85D8
+ lsls r0, 24
+ cmp r0, 0
+ beq _080C8C7A
+ ldr r0, _080C8C60 @ =gUnknown_02038690
+ ldr r1, _080C8C64 @ =gUnknown_0203869B
+ ldrb r1, [r1]
+ lsls r1, 8
+ ldr r2, _080C8C68 @ =gBlockRecvBuffer
+ adds r1, r2
+ movs r2, 0x4
+_080C8C48:
+ bl memcpy
+_080C8C4C:
+ ldr r1, _080C8C6C @ =gTasks
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ ldrh r1, [r0, 0x8]
+ adds r1, 0x1
+ strh r1, [r0, 0x8]
+ b _080C8C7A
+ .align 2, 0
+_080C8C60: .4byte gUnknown_02038690
+_080C8C64: .4byte gUnknown_0203869B
+_080C8C68: .4byte gBlockRecvBuffer
+_080C8C6C: .4byte gTasks
+_080C8C70:
+ movs r0, 0
+ strh r0, [r2, 0x8]
+ adds r0, r4, 0
+ bl SwitchTaskToFollowupFunc
+_080C8C7A:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80C8AD0
+
+ thumb_func_start sub_80C8C80
+sub_80C8C80: @ 80C8C80
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r1, _080C8CA8 @ =gTasks
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r2, r0, r1
+ movs r3, 0x8
+ ldrsh r0, [r2, r3]
+ adds r3, r1, 0
+ cmp r0, 0xB
+ bls _080C8C9C
+ b _080C8E0C
+_080C8C9C:
+ lsls r0, 2
+ ldr r1, _080C8CAC @ =_080C8CB0
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080C8CA8: .4byte gTasks
+_080C8CAC: .4byte _080C8CB0
+ .align 2, 0
+_080C8CB0:
+ .4byte _080C8CE0
+ .4byte _080C8CFC
+ .4byte _080C8D24
+ .4byte _080C8D46
+ .4byte _080C8D60
+ .4byte _080C8D24
+ .4byte _080C8D88
+ .4byte _080C8DA0
+ .4byte _080C8D24
+ .4byte _080C8DB4
+ .4byte _080C8DCC
+ .4byte _080C8D24
+_080C8CE0:
+ bl sub_8007ECC
+ lsls r0, 24
+ cmp r0, 0
+ bne _080C8CEC
+ b _080C8E16
+_080C8CEC:
+ ldr r0, _080C8CF8 @ =0x02019260
+ movs r1, 0x70
+ bl sub_80C857C
+ b _080C8DE8
+ .align 2, 0
+_080C8CF8: .4byte 0x02019260
+_080C8CFC:
+ bl sub_80C85D8
+ lsls r0, 24
+ cmp r0, 0
+ bne _080C8D08
+ b _080C8E16
+_080C8D08:
+ ldr r0, _080C8D18 @ =0x02019260
+ ldr r1, _080C8D1C @ =gUnknown_0203869B
+ ldrb r1, [r1]
+ lsls r1, 8
+ ldr r2, _080C8D20 @ =gBlockRecvBuffer
+ adds r1, r2
+ movs r2, 0x70
+ b _080C8DE4
+ .align 2, 0
+_080C8D18: .4byte 0x02019260
+_080C8D1C: .4byte gUnknown_0203869B
+_080C8D20: .4byte gBlockRecvBuffer
+_080C8D24:
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r2, r0, r3
+ ldrh r0, [r2, 0xA]
+ adds r1, r0, 0x1
+ strh r1, [r2, 0xA]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0xA
+ ble _080C8E16
+ movs r0, 0
+ strh r0, [r2, 0xA]
+ ldrh r0, [r2, 0x8]
+ adds r0, 0x1
+ strh r0, [r2, 0x8]
+ b _080C8E16
+_080C8D46:
+ bl sub_8007ECC
+ lsls r0, 24
+ cmp r0, 0
+ beq _080C8E16
+ ldr r0, _080C8D5C @ =0x020192d0
+ movs r1, 0x14
+ bl sub_80C857C
+ b _080C8DE8
+ .align 2, 0
+_080C8D5C: .4byte 0x020192d0
+_080C8D60:
+ bl sub_80C85D8
+ lsls r0, 24
+ cmp r0, 0
+ beq _080C8E16
+ ldr r0, _080C8D7C @ =0x020192d0
+ ldr r1, _080C8D80 @ =gUnknown_0203869B
+ ldrb r1, [r1]
+ lsls r1, 8
+ ldr r2, _080C8D84 @ =gBlockRecvBuffer
+ adds r1, r2
+ movs r2, 0x14
+ b _080C8DE4
+ .align 2, 0
+_080C8D7C: .4byte 0x020192d0
+_080C8D80: .4byte gUnknown_0203869B
+_080C8D84: .4byte gBlockRecvBuffer
+_080C8D88:
+ bl sub_8007ECC
+ lsls r0, 24
+ cmp r0, 0
+ beq _080C8E16
+ ldr r0, _080C8D9C @ =0x02019328
+ movs r1, 0x4
+ bl sub_80C857C
+ b _080C8DE8
+ .align 2, 0
+_080C8D9C: .4byte 0x02019328
+_080C8DA0:
+ bl sub_80C85D8
+ lsls r0, 24
+ cmp r0, 0
+ beq _080C8E16
+ ldr r0, _080C8DB0 @ =0x02019328
+ b _080C8DD8
+ .align 2, 0
+_080C8DB0: .4byte 0x02019328
+_080C8DB4:
+ bl sub_8007ECC
+ lsls r0, 24
+ cmp r0, 0
+ beq _080C8E16
+ ldr r0, _080C8DC8 @ =gUnknown_02038696
+ movs r1, 0x4
+ bl sub_80C857C
+ b _080C8DE8
+ .align 2, 0
+_080C8DC8: .4byte gUnknown_02038696
+_080C8DCC:
+ bl sub_80C85D8
+ lsls r0, 24
+ cmp r0, 0
+ beq _080C8E16
+ ldr r0, _080C8DFC @ =gUnknown_02038696
+_080C8DD8:
+ ldr r1, _080C8E00 @ =gUnknown_0203869B
+ ldrb r1, [r1]
+ lsls r1, 8
+ ldr r2, _080C8E04 @ =gBlockRecvBuffer
+ adds r1, r2
+ movs r2, 0x4
+_080C8DE4:
+ bl memcpy
+_080C8DE8:
+ ldr r1, _080C8E08 @ =gTasks
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ ldrh r1, [r0, 0x8]
+ adds r1, 0x1
+ strh r1, [r0, 0x8]
+ b _080C8E16
+ .align 2, 0
+_080C8DFC: .4byte gUnknown_02038696
+_080C8E00: .4byte gUnknown_0203869B
+_080C8E04: .4byte gBlockRecvBuffer
+_080C8E08: .4byte gTasks
+_080C8E0C:
+ movs r0, 0
+ strh r0, [r2, 0x8]
+ adds r0, r4, 0
+ bl SwitchTaskToFollowupFunc
+_080C8E16:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80C8C80
+
+ thumb_func_start sub_80C8E1C
+sub_80C8E1C: @ 80C8E1C
+ push {r4-r7,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldr r1, _080C8E40 @ =gTasks
+ lsls r4, r5, 2
+ adds r0, r4, r5
+ lsls r6, r0, 3
+ adds r2, r6, r1
+ movs r3, 0x8
+ ldrsh r0, [r2, r3]
+ adds r7, r1, 0
+ cmp r0, 0x1
+ beq _080C8EB0
+ cmp r0, 0x1
+ bgt _080C8E44
+ cmp r0, 0
+ beq _080C8E4C
+ b _080C8EF8
+ .align 2, 0
+_080C8E40: .4byte gTasks
+_080C8E44:
+ cmp r0, 0x2
+ beq _080C8EEC
+ cmp r0, 0x8
+ bne _080C8EF8
+_080C8E4C:
+ ldr r1, _080C8E80 @ =gBlockSendBuffer
+ movs r0, 0x64
+ strb r0, [r1]
+ bl GetMultiplayerId
+ lsls r0, 24
+ cmp r0, 0
+ bne _080C8E9A
+ bl sub_8007ECC
+ lsls r0, 24
+ cmp r0, 0
+ beq _080C8F06
+ ldr r0, _080C8E84 @ =gTasks
+ lsls r1, r5, 2
+ adds r1, r5
+ lsls r1, 3
+ adds r4, r1, r0
+ movs r1, 0x8
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ bne _080C8E88
+ movs r0, 0x3
+ strh r0, [r4, 0x8]
+ b _080C8F06
+ .align 2, 0
+_080C8E80: .4byte gBlockSendBuffer
+_080C8E84: .4byte gTasks
+_080C8E88:
+ movs r0, 0
+ bl de_sub_80C9274
+ movs r0, 0x2
+ bl sub_8007E9C
+ movs r0, 0x1
+ strh r0, [r4, 0x8]
+ b _080C8F06
+_080C8E9A:
+ movs r0, 0
+ bl de_sub_80C9294
+ ldr r0, _080C8EAC @ =gTasks
+ lsls r1, r5, 2
+ adds r1, r5
+ lsls r1, 3
+ adds r1, r0
+ b _080C8EDE
+ .align 2, 0
+_080C8EAC: .4byte gTasks
+_080C8EB0:
+ bl sub_80C85D8
+ lsls r0, 24
+ cmp r0, 0
+ beq _080C8F06
+ adds r1, r4, 0
+ ldr r4, _080C8EE8 @ =gBlockRecvBuffer
+ adds r0, r7, 0
+ adds r0, 0x12
+ adds r2, r6, r0
+ movs r6, 0x80
+ lsls r6, 1
+ movs r3, 0x3
+_080C8ECA:
+ ldrh r0, [r4]
+ strh r0, [r2]
+ adds r4, r6
+ adds r2, 0x2
+ subs r3, 0x1
+ cmp r3, 0
+ bge _080C8ECA
+ adds r1, r5
+ lsls r1, 3
+ adds r1, r7
+_080C8EDE:
+ ldrh r0, [r1, 0x8]
+ adds r0, 0x1
+ strh r0, [r1, 0x8]
+ b _080C8F06
+ .align 2, 0
+_080C8EE8: .4byte gBlockRecvBuffer
+_080C8EEC:
+ movs r0, 0
+ strh r0, [r2, 0x8]
+ adds r0, r5, 0
+ bl SwitchTaskToFollowupFunc
+ b _080C8F06
+_080C8EF8:
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ adds r0, r7
+ ldrh r1, [r0, 0x8]
+ adds r1, 0x1
+ strh r1, [r0, 0x8]
+_080C8F06:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80C8E1C
+
+ thumb_func_start sub_80C8EBC
+sub_80C8EBC: @ 80C8EBC
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r2, r0, 24
+ ldr r1, _080C8EE4 @ =gTasks
+ lsls r0, r2, 2
+ adds r0, r2
+ lsls r0, 3
+ adds r4, r0, r1
+ movs r1, 0x8
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ beq _080C8EE8_B
+ cmp r0, 0x1
+ beq _080C8F00
+ movs r0, 0
+ strh r0, [r4, 0x8]
+ adds r0, r2, 0
+ bl SwitchTaskToFollowupFunc
+ b _080C8F22
+ .align 2, 0
+_080C8EE4: .4byte gTasks
+_080C8EE8_B:
+ bl sub_8007ECC
+ lsls r0, 24
+ cmp r0, 0
+ beq _080C8F22
+ ldr r0, _080C8EFC @ =gUnknown_02038670
+ movs r1, 0x8
+ bl sub_80C857C
+ b _080C8F1C
+ .align 2, 0
+_080C8EFC: .4byte gUnknown_02038670
+_080C8F00:
+ bl sub_80C85D8
+ lsls r0, 24
+ cmp r0, 0
+ beq _080C8F22
+ ldr r0, _080C8F28 @ =gUnknown_02038670
+ ldr r1, _080C8F2C @ =gUnknown_0203869B
+ ldrb r1, [r1]
+ lsls r1, 8
+ ldr r2, _080C8F30 @ =gBlockRecvBuffer
+ adds r1, r2
+ movs r2, 0x8
+ bl memcpy
+_080C8F1C:
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+_080C8F22:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C8F28: .4byte gUnknown_02038670
+_080C8F2C: .4byte gUnknown_0203869B
+_080C8F30: .4byte gBlockRecvBuffer
+ thumb_func_end sub_80C8EBC
+
+ thumb_func_start sub_80C8F34
+sub_80C8F34: @ 80C8F34
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r2, r0, 24
+ ldr r1, _080C8F5C @ =gTasks
+ lsls r0, r2, 2
+ adds r0, r2
+ lsls r0, 3
+ adds r4, r0, r1
+ movs r1, 0x8
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ beq _080C8F60
+ cmp r0, 0x1
+ beq _080C8F78
+ movs r0, 0
+ strh r0, [r4, 0x8]
+ adds r0, r2, 0
+ bl SwitchTaskToFollowupFunc
+ b _080C8F9A
+ .align 2, 0
+_080C8F5C: .4byte gTasks
+_080C8F60:
+ bl sub_8007ECC
+ lsls r0, 24
+ cmp r0, 0
+ beq _080C8F9A
+ ldr r0, _080C8F74 @ =gUnknown_02038696
+ movs r1, 0x4
+ bl sub_80C857C
+ b _080C8F94
+ .align 2, 0
+_080C8F74: .4byte gUnknown_02038696
+_080C8F78:
+ bl sub_80C85D8
+ lsls r0, 24
+ cmp r0, 0
+ beq _080C8F9A
+ ldr r0, _080C8FA0 @ =gUnknown_02038696
+ ldr r1, _080C8FA4 @ =gUnknown_0203869B
+ ldrb r1, [r1]
+ lsls r1, 8
+ ldr r2, _080C8FA8 @ =gBlockRecvBuffer
+ adds r1, r2
+ movs r2, 0x4
+ bl memcpy
+_080C8F94:
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+_080C8F9A:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080C8FA0: .4byte gUnknown_02038696
+_080C8FA4: .4byte gUnknown_0203869B
+_080C8FA8: .4byte gBlockRecvBuffer
+ thumb_func_end sub_80C8F34
+
+ .align 2, 0 @ Don't pad with nop.
diff --git a/asm-de/easy_chat.s b/asm-de/easy_chat.s
new file mode 100644
index 000000000..54cf8808c
--- /dev/null
+++ b/asm-de/easy_chat.s
@@ -0,0 +1,10905 @@
+ .include "constants/gba_constants.inc"
+ .include "constants/species_constants.inc"
+ .include "asm/macros.inc"
+
+ .syntax unified
+
+ .text
+
+ thumb_func_start sub_80E60D8
+sub_80E60D8: @ 80E60D8
+ push {r4-r7,lr}
+ movs r4, 0x3
+ ldr r0, _080E60F4 @ =gSpecialVar_0x8004
+ ldrh r1, [r0]
+ adds r7, r0, 0
+ cmp r1, 0xD
+ bls _080E60E8
+ b _080E6284
+_080E60E8:
+ lsls r0, r1, 2
+ ldr r1, _080E60F8 @ =_080E60FC
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080E60F4: .4byte gSpecialVar_0x8004
+_080E60F8: .4byte _080E60FC
+ .align 2, 0
+_080E60FC:
+ .4byte _080E6134
+ .4byte _080E613C
+ .4byte _080E6144
+ .4byte _080E614C
+ .4byte _080E6154
+ .4byte _080E619C
+ .4byte _080E616C
+ .4byte _080E61BC
+ .4byte _080E61E0
+ .4byte _080E61FC
+ .4byte _080E6200
+ .4byte _080E6214
+ .4byte _080E623C
+ .4byte _080E6260
+_080E6134:
+ ldr r1, _080E6138 @ =gSaveBlock1 + 0x2B1C
+ b _080E624C
+ .align 2, 0
+_080E6138: .4byte gSaveBlock1 + 0x2B1C
+_080E613C:
+ ldr r1, _080E6140 @ =gSaveBlock1 + 0x2B28
+ b _080E6276
+ .align 2, 0
+_080E6140: .4byte gSaveBlock1 + 0x2B28
+_080E6144:
+ ldr r1, _080E6148 @ =gSaveBlock1 + 0x2B34
+ b _080E624C
+ .align 2, 0
+_080E6148: .4byte gSaveBlock1 + 0x2B34
+_080E614C:
+ ldr r1, _080E6150 @ =gSaveBlock1 + 0x2B40
+ b _080E6276
+ .align 2, 0
+_080E6150: .4byte gSaveBlock1 + 0x2B40
+_080E6154:
+ ldr r0, _080E6164 @ =gSpecialVar_0x8005
+ ldrh r1, [r0]
+ lsls r0, r1, 3
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _080E6168 @ =gSaveBlock1 + 0x2B4C
+ adds r1, r0, r1
+ b _080E624C
+ .align 2, 0
+_080E6164: .4byte gSpecialVar_0x8005
+_080E6168: .4byte gSaveBlock1 + 0x2B4C
+_080E616C:
+ ldr r0, _080E6194 @ =gSaveBlock1 + 0x2D94
+ movs r2, 0
+ ldr r1, _080E6198 @ =sub_80546B8
+ mov r12, r1
+ adds r3, r0, 0
+ adds r3, 0xE
+ adds r5, r0, 0x2
+ adds r6, r3, 0
+_080E617C:
+ lsls r0, r2, 1
+ adds r1, r3, r0
+ adds r0, r5, r0
+ ldrh r0, [r0]
+ strh r0, [r1]
+ adds r0, r2, 0x1
+ lsls r0, 16
+ lsrs r2, r0, 16
+ cmp r2, 0x5
+ bls _080E617C
+ adds r1, r6, 0
+ b _080E627A
+ .align 2, 0
+_080E6194: .4byte gSaveBlock1 + 0x2D94
+_080E6198: .4byte sub_80546B8
+_080E619C:
+ ldr r0, _080E61B0 @ =gSpecialVar_0x8005
+ ldrh r1, [r0]
+ lsls r0, r1, 3
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _080E61B4 @ =gSaveBlock1 + 0x273C
+ adds r1, r0, r1
+ ldr r0, _080E61B8 @ =gSpecialVar_0x8006
+ ldrb r4, [r0]
+ b _080E6276
+ .align 2, 0
+_080E61B0: .4byte gSpecialVar_0x8005
+_080E61B4: .4byte gSaveBlock1 + 0x273C
+_080E61B8: .4byte gSpecialVar_0x8006
+_080E61BC:
+ ldr r0, _080E61D4 @ =gSpecialVar_0x8005
+ ldrh r0, [r0]
+ lsls r1, r0, 3
+ adds r1, r0
+ lsls r1, 2
+ ldr r0, _080E61D8 @ =gSaveBlock1 + 0x2754
+ adds r1, r0
+ ldr r0, _080E61DC @ =gSpecialVar_0x8006
+ ldrh r0, [r0]
+ lsls r0, 1
+ adds r1, r0
+ b _080E624A
+ .align 2, 0
+_080E61D4: .4byte gSpecialVar_0x8005
+_080E61D8: .4byte gSaveBlock1 + 0x2754
+_080E61DC: .4byte gSpecialVar_0x8006
+_080E61E0:
+ ldr r0, _080E61F4 @ =gSpecialVar_0x8005
+ ldrh r1, [r0]
+ lsls r0, r1, 3
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _080E61F8 @ =gSaveBlock1 + 0x273A
+ adds r1, r0, r1
+ movs r4, 0
+ b _080E6276
+ .align 2, 0
+_080E61F4: .4byte gSpecialVar_0x8005
+_080E61F8: .4byte gSaveBlock1 + 0x273A
+_080E61FC:
+ movs r1, 0
+ b _080E624C
+_080E6200:
+ ldr r1, _080E620C @ =gSaveBlock1 + 0x2B16
+ ldr r2, _080E6210 @ =0x0000ffff
+ adds r0, r2, 0
+ strh r0, [r1]
+ b _080E624A
+ .align 2, 0
+_080E620C: .4byte gSaveBlock1 + 0x2B16
+_080E6210: .4byte 0x0000ffff
+_080E6214:
+ ldr r0, _080E6230 @ =gSpecialVar_0x8005
+ ldrh r0, [r0]
+ lsls r1, r0, 3
+ adds r1, r0
+ lsls r1, 2
+ ldr r0, _080E6234 @ =gSaveBlock1 + 0x273C
+ adds r1, r0
+ ldr r0, _080E6238 @ =gSpecialVar_0x8006
+ ldrh r0, [r0]
+ lsls r0, 1
+ adds r1, r0
+ movs r4, 0
+ b _080E6276
+ .align 2, 0
+_080E6230: .4byte gSpecialVar_0x8005
+_080E6234: .4byte gSaveBlock1 + 0x273C
+_080E6238: .4byte gSpecialVar_0x8006
+_080E623C:
+ ldr r0, _080E6254 @ =gSpecialVar_0x8005
+ ldrh r1, [r0]
+ lsls r0, r1, 3
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _080E6258 @ =gSaveBlock1 + 0x2750
+ adds r1, r0, r1
+_080E624A:
+ movs r4, 0x1
+_080E624C:
+ ldr r0, _080E625C @ =sub_80546B8
+ mov r12, r0
+ b _080E627A
+ .align 2, 0
+_080E6254: .4byte gSpecialVar_0x8005
+_080E6258: .4byte gSaveBlock1 + 0x2750
+_080E625C: .4byte sub_80546B8
+_080E6260:
+ ldr r1, _080E628C @ =0x02001000
+ ldr r0, _080E6290 @ =0x00009fa8
+ adds r2, r1, r0
+ ldr r0, _080E6294 @ =0x0000ffff
+ strh r0, [r2]
+ ldr r0, _080E6298 @ =0x00009faa
+ adds r1, r0
+ movs r0, 0x1
+ negs r0, r0
+ strh r0, [r1]
+ adds r1, r2, 0
+_080E6276:
+ ldr r2, _080E629C @ =sub_80546B8
+ mov r12, r2
+_080E627A:
+ ldrb r0, [r7]
+ mov r2, r12
+ adds r3, r4, 0
+ bl sub_80E62A0
+_080E6284:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E628C: .4byte 0x02001000
+_080E6290: .4byte 0x00009fa8
+_080E6294: .4byte 0x0000ffff
+_080E6298: .4byte 0x00009faa
+_080E629C: .4byte sub_80546B8
+ thumb_func_end sub_80E60D8
+
+ thumb_func_start sub_80E62A0
+sub_80E62A0: @ 80E62A0
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r4, _080E62DC @ =0x02001000
+ str r2, [r4]
+ str r1, [r4, 0x4]
+ strb r0, [r4, 0x8]
+ strb r3, [r4, 0xB]
+ cmp r0, 0x9
+ bne _080E62D0
+ ldr r0, _080E62E0 @ =0x00009fa8
+ adds r2, r4, r0
+ str r2, [r4, 0x4]
+ ldr r0, _080E62E4 @ =gSaveBlock1
+ ldr r3, _080E62E8 @ =0x00002dd8
+ adds r1, r0, r3
+ ldrh r1, [r1]
+ strh r1, [r2]
+ ldr r1, _080E62EC @ =0x00002dda
+ adds r0, r1
+ ldrh r1, [r0]
+ ldr r2, _080E62F0 @ =0x00009faa
+ adds r0, r4, r2
+ strh r1, [r0]
+_080E62D0:
+ ldr r0, _080E62F4 @ =sub_80E62F8
+ bl SetMainCallback2
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E62DC: .4byte 0x02001000
+_080E62E0: .4byte 0x00009fa8
+_080E62E4: .4byte gSaveBlock1
+_080E62E8: .4byte 0x00002dd8
+_080E62EC: .4byte 0x00002dda
+_080E62F0: .4byte 0x00009faa
+_080E62F4: .4byte sub_80E62F8
+ thumb_func_end sub_80E62A0
+
+ thumb_func_start sub_80E62F8
+sub_80E62F8: @ 80E62F8
+ push {lr}
+ sub sp, 0x4
+ ldr r0, _080E6314 @ =gMain
+ ldr r1, _080E6318 @ =0x0000043c
+ adds r0, r1
+ ldrb r0, [r0]
+ cmp r0, 0x8
+ bhi _080E6344
+ lsls r0, 2
+ ldr r1, _080E631C @ =_080E6320
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080E6314: .4byte gMain
+_080E6318: .4byte 0x0000043c
+_080E631C: .4byte _080E6320
+ .align 2, 0
+_080E6320:
+ .4byte _080E6344
+ .4byte _080E6380
+ .4byte _080E638C
+ .4byte _080E63A8
+ .4byte _080E63AE
+ .4byte _080E63B4
+ .4byte _080E63BE
+ .4byte _080E63D8
+ .4byte _080E63EA
+_080E6344:
+ movs r1, 0x80
+ lsls r1, 19
+ movs r0, 0
+ strh r0, [r1]
+ movs r0, 0
+ bl SetVBlankCallback
+ bl ResetPaletteFade
+ bl ResetSpriteData
+ bl dp12_8087EA4
+ bl remove_some_task
+ bl sub_80EAD08
+ ldr r2, _080E637C @ =gUnknown_083DB698
+ ldr r0, [r2]
+ ldr r1, [r2, 0x4]
+ ldr r2, [r2, 0x8]
+ bl sub_80895F8
+ bl FreeSpriteTileRanges
+ bl FreeAllSpritePalettes
+ b _080E6402
+ .align 2, 0
+_080E637C: .4byte gUnknown_083DB698
+_080E6380:
+ ldr r0, _080E6388 @ =gWindowConfig_81E6DA8
+ bl SetUpWindowConfig
+ b _080E6402
+ .align 2, 0
+_080E6388: .4byte gWindowConfig_81E6DA8
+_080E638C:
+ ldr r0, _080E63A0 @ =gWindowConfig_81E6D54
+ bl InitMenuWindow
+ ldr r0, _080E63A4 @ =gWindowConfig_81E6DA8
+ bl InitMenuWindow
+ bl MenuZeroFillScreen
+ b _080E6402
+ .align 2, 0
+_080E63A0: .4byte gWindowConfig_81E6D54
+_080E63A4: .4byte gWindowConfig_81E6DA8
+_080E63A8:
+ bl sub_80E6424
+ b _080E6402
+_080E63AE:
+ bl sub_80E8DD8
+ b _080E6402
+_080E63B4:
+ bl sub_80E8218
+ bl sub_80E8CEC
+ b _080E6402
+_080E63BE:
+ bl sub_80E69F8
+ ldr r0, _080E63D0 @ =sub_80E6AA8
+ bl sub_80E682C
+ ldr r0, _080E63D4 @ =sub_80E6A6C
+ bl SetVBlankCallback
+ b _080E6402
+ .align 2, 0
+_080E63D0: .4byte sub_80E6AA8
+_080E63D4: .4byte sub_80E6A6C
+_080E63D8:
+ movs r0, 0x1
+ negs r0, r0
+ movs r1, 0
+ str r1, [sp]
+ movs r2, 0x10
+ movs r3, 0
+ bl BeginNormalPaletteFade
+ b _080E6402
+_080E63EA:
+ movs r1, 0x80
+ lsls r1, 19
+ movs r2, 0xFA
+ lsls r2, 5
+ adds r0, r2, 0
+ strh r0, [r1]
+ ldr r0, _080E6414 @ =sub_80E6A88
+ bl SetMainCallback2
+ ldr r0, _080E6418 @ =0x00000805
+ bl FlagSet
+_080E6402:
+ ldr r1, _080E641C @ =gMain
+ ldr r0, _080E6420 @ =0x0000043c
+ adds r1, r0
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+ add sp, 0x4
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E6414: .4byte sub_80E6A88
+_080E6418: .4byte 0x00000805
+_080E641C: .4byte gMain
+_080E6420: .4byte 0x0000043c
+ thumb_func_end sub_80E62F8
+
+ thumb_func_start sub_80E6424
+sub_80E6424: @ 80E6424
+ push {lr}
+ ldr r2, _080E6444 @ =0x02001000
+ ldr r0, _080E6448 @ =gUnknown_083DB6A4
+ ldrb r1, [r2, 0x8]
+ adds r1, r0
+ ldrb r0, [r1]
+ strb r0, [r2, 0x9]
+ ldrb r0, [r2, 0x9]
+ adds r3, r2, 0
+ cmp r0, 0x5
+ bhi _080E6512
+ lsls r0, 2
+ ldr r1, _080E644C @ =_080E6450
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080E6444: .4byte 0x02001000
+_080E6448: .4byte gUnknown_083DB6A4
+_080E644C: .4byte _080E6450
+ .align 2, 0
+_080E6450:
+ .4byte _080E64A0
+ .4byte _080E64B8
+ .4byte _080E64DA
+ .4byte _080E64F6
+ .4byte _080E6468
+ .4byte _080E6480
+_080E6468:
+ movs r2, 0x4
+ strb r2, [r3, 0xA]
+ adds r0, r3, 0
+ adds r0, 0x83
+ movs r1, 0x2
+ strb r1, [r0]
+ adds r0, 0x1
+ strb r1, [r0]
+ adds r1, r3, 0
+ adds r1, 0x88
+ movs r0, 0x5
+ b _080E64D0
+_080E6480:
+ movs r1, 0x4
+ strb r1, [r3, 0xA]
+ adds r2, r3, 0
+ adds r2, 0x83
+ movs r0, 0x1
+ strb r0, [r2]
+ adds r0, r3, 0
+ adds r0, 0x84
+ strb r1, [r0]
+ adds r1, r3, 0
+ adds r1, 0x88
+ movs r0, 0x10
+ strh r0, [r1]
+ adds r1, 0x2
+ movs r0, 0x2
+ b _080E6510
+_080E64A0:
+ movs r0, 0x6
+ strb r0, [r3, 0xA]
+ adds r1, r3, 0
+ adds r1, 0x83
+ movs r0, 0x2
+ strb r0, [r1]
+ adds r0, r3, 0
+ adds r0, 0x84
+ movs r2, 0x3
+ strb r2, [r0]
+ adds r1, 0x5
+ b _080E64CE
+_080E64B8:
+ movs r2, 0
+ movs r0, 0x9
+ strb r0, [r3, 0xA]
+ adds r1, r3, 0
+ adds r1, 0x83
+ movs r0, 0x2
+ strb r0, [r1]
+ adds r1, 0x1
+ movs r0, 0x5
+ strb r0, [r1]
+ adds r1, 0x4
+_080E64CE:
+ movs r0, 0x4
+_080E64D0:
+ strh r0, [r1]
+ adds r0, r3, 0
+ adds r0, 0x8A
+ strh r2, [r0]
+ b _080E6512
+_080E64DA:
+ movs r1, 0x1
+ strb r1, [r3, 0xA]
+ adds r0, r3, 0
+ adds r0, 0x83
+ strb r1, [r0]
+ adds r0, 0x1
+ strb r1, [r0]
+ adds r1, r3, 0
+ adds r1, 0x88
+ movs r0, 0x10
+ strh r0, [r1]
+ adds r1, 0x2
+ movs r0, 0x4
+ b _080E6510
+_080E64F6:
+ movs r0, 0x2
+ strb r0, [r3, 0xA]
+ adds r1, r3, 0
+ adds r1, 0x83
+ strb r0, [r1]
+ adds r1, 0x1
+ movs r0, 0x1
+ strb r0, [r1]
+ adds r1, 0x4
+ movs r0, 0x5
+ strh r0, [r1]
+ adds r1, 0x2
+ movs r0, 0x3
+_080E6510:
+ strh r0, [r1]
+_080E6512:
+ adds r1, r3, 0
+ adds r1, 0x86
+ movs r0, 0
+ strb r0, [r1]
+ subs r1, 0x1
+ strb r0, [r1]
+ adds r1, 0x2
+ strb r0, [r1]
+ subs r1, 0x61
+ strb r0, [r1]
+ movs r2, 0xDD
+ lsls r2, 1
+ adds r1, r3, r2
+ strh r0, [r1]
+ movs r0, 0xDF
+ lsls r0, 1
+ adds r1, r3, r0
+ movs r0, 0x2
+ strb r0, [r1]
+ bl sub_80E6554
+ bl sub_80EAECC
+ bl sub_80EB040
+ bl sub_80E7E50
+ bl sub_80E6630
+ bl sub_80E6690
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80E6424
+
+ thumb_func_start sub_80E6554
+sub_80E6554: @ 80E6554
+ push {r4-r7,lr}
+ sub sp, 0x4
+ movs r4, 0
+ movs r7, 0
+ ldr r0, _080E6564 @ =0x02001000
+ mov r12, r0
+ b _080E656E
+ .align 2, 0
+_080E6564: .4byte 0x02001000
+_080E6568:
+ adds r0, r7, 0x1
+ lsls r0, 16
+ lsrs r7, r0, 16
+_080E656E:
+ movs r5, 0
+ lsls r3, r7, 1
+ mov r6, r12
+ adds r6, 0x2A
+ adds r2, r3, r6
+ adds r1, r4, 0
+ adds r0, r1, 0x1
+ lsls r0, 16
+ lsrs r4, r0, 16
+ strb r1, [r2]
+ cmp r4, 0x11
+ beq _080E65A6
+_080E6586:
+ adds r0, r5, 0x1
+ lsls r0, 16
+ lsrs r5, r0, 16
+ cmp r5, 0x1
+ bhi _080E65A2
+ adds r2, r5, r3
+ adds r2, r6
+ adds r1, r4, 0
+ adds r0, r1, 0x1
+ lsls r0, 16
+ lsrs r4, r0, 16
+ strb r1, [r2]
+ cmp r4, 0x11
+ bne _080E6586
+_080E65A2:
+ cmp r4, 0x11
+ bne _080E6568
+_080E65A6:
+ movs r0, 0x11
+ mov r1, r12
+ strh r0, [r1, 0x28]
+ cmp r4, 0x15
+ bhi _080E6612
+ mov r6, r12
+ adds r2, r6, 0
+ adds r2, 0x78
+_080E65B6:
+ lsls r0, r4, 24
+ lsrs r0, 24
+ str r2, [sp]
+ bl sub_80EAD7C
+ lsls r0, 24
+ lsrs r1, r0, 24
+ ldr r2, [sp]
+ cmp r1, 0
+ beq _080E65FC
+ adds r0, r5, 0x1
+ lsls r0, 16
+ lsrs r5, r0, 16
+ cmp r5, 0x1
+ bls _080E65DC
+ adds r0, r7, 0x1
+ lsls r0, 16
+ lsrs r7, r0, 16
+ movs r5, 0
+_080E65DC:
+ lsls r0, r7, 1
+ adds r0, r5, r0
+ adds r1, r6, 0
+ adds r1, 0x2A
+ adds r0, r1
+ strb r4, [r0]
+ adds r0, r4, 0
+ subs r0, 0x11
+ adds r0, r2
+ movs r1, 0x1
+ strb r1, [r0]
+ ldrh r0, [r6, 0x28]
+ adds r0, 0x1
+ strh r0, [r6, 0x28]
+ mov r12, r6
+ b _080E6608
+_080E65FC:
+ adds r0, r4, 0
+ subs r0, 0x11
+ adds r0, r2
+ strb r1, [r0]
+ ldr r0, _080E662C @ =0x02001000
+ mov r12, r0
+_080E6608:
+ adds r0, r4, 0x1
+ lsls r0, 16
+ lsrs r4, r0, 16
+ cmp r4, 0x15
+ bls _080E65B6
+_080E6612:
+ mov r1, r12
+ ldrh r0, [r1, 0x28]
+ adds r0, 0x1
+ asrs r0, 1
+ movs r1, 0xDB
+ lsls r1, 1
+ add r1, r12
+ strb r0, [r1]
+ add sp, 0x4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E662C: .4byte 0x02001000
+ thumb_func_end sub_80E6554
+
+ thumb_func_start sub_80E6630
+sub_80E6630: @ 80E6630
+ push {r4-r7,lr}
+ movs r1, 0
+ ldr r0, _080E6664 @ =gUnknown_083DB6B2
+ mov r12, r0
+_080E6638:
+ lsls r0, r1, 4
+ mov r2, r12
+ adds r5, r0, r2
+ movs r3, 0
+ ldrb r0, [r5]
+ adds r7, r1, 0x1
+ cmp r0, 0xFF
+ beq _080E6680
+ lsls r0, r1, 3
+ subs r0, r1
+ lsls r4, r0, 1
+ ldr r6, _080E6668 @ =0x02001040
+_080E6650:
+ adds r0, r5, r3
+ ldrb r1, [r0]
+ adds r2, r1, 0
+ cmp r2, 0
+ beq _080E666C
+ adds r0, r3, r4
+ adds r0, r6
+ adds r1, 0x46
+ strb r1, [r0]
+ b _080E6672
+ .align 2, 0
+_080E6664: .4byte gUnknown_083DB6B2
+_080E6668: .4byte 0x02001040
+_080E666C:
+ adds r0, r3, r4
+ adds r0, r6
+ strb r2, [r0]
+_080E6672:
+ adds r0, r3, 0x1
+ lsls r0, 24
+ lsrs r3, r0, 24
+ adds r0, r5, r3
+ ldrb r0, [r0]
+ cmp r0, 0xFF
+ bne _080E6650
+_080E6680:
+ lsls r0, r7, 24
+ lsrs r1, r0, 24
+ cmp r1, 0x3
+ bls _080E6638
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80E6630
+
+ thumb_func_start sub_80E6690
+sub_80E6690: @ 80E6690
+ push {r4-r6,lr}
+ sub sp, 0x10
+ mov r0, sp
+ ldr r1, _080E66E0 @ =gUnknown_083DB7DC
+ ldm r1!, {r2-r4}
+ stm r0!, {r2-r4}
+ ldr r1, [r1]
+ str r1, [r0]
+ movs r5, 0
+ ldr r6, _080E66E4 @ =gUnknown_083DB7C0
+_080E66A4:
+ ldr r0, _080E66E8 @ =0x02001000
+ ldrb r0, [r0, 0x8]
+ lsls r0, 1
+ adds r0, r5, r0
+ adds r0, r6
+ ldrb r1, [r0]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _080E66EC @ =gUnknown_083DB6F4
+ adds r4, r0, r1
+ lsls r0, r5, 3
+ add r0, sp
+ ldr r0, [r0]
+ ldr r1, [r4]
+ bl StringCopy
+ adds r3, r0, 0
+ ldrb r0, [r4, 0x8]
+ cmp r0, 0
+ beq _080E66F0
+ lsls r0, r5, 1
+ adds r0, 0x1
+ lsls r0, 2
+ add r0, sp
+ ldr r0, [r0]
+ ldr r1, [r4, 0x4]
+ bl StringCopy
+ b _080E670A
+ .align 2, 0
+_080E66E0: .4byte gUnknown_083DB7DC
+_080E66E4: .4byte gUnknown_083DB7C0
+_080E66E8: .4byte 0x02001000
+_080E66EC: .4byte gUnknown_083DB6F4
+_080E66F0:
+ strb r0, [r3]
+ adds r3, 0x1
+ ldr r1, [r4, 0x4]
+ adds r0, r3, 0
+ bl StringCopy
+ lsls r0, r5, 1
+ adds r0, 0x1
+ lsls r0, 2
+ add r0, sp
+ ldr r1, [r0]
+ movs r0, 0xFF
+ strb r0, [r1]
+_080E670A:
+ adds r0, r5, 0x1
+ lsls r0, 16
+ lsrs r5, r0, 16
+ cmp r5, 0x1
+ bls _080E66A4
+ movs r5, 0
+ ldr r3, _080E6758 @ =0x02001000
+ ldr r0, _080E675C @ =0x0000a0d0
+ adds r2, r3, r0
+ movs r1, 0
+_080E671E:
+ adds r0, r5, r2
+ strb r1, [r0]
+ adds r0, r5, 0x1
+ lsls r0, 16
+ lsrs r5, r0, 16
+ cmp r5, 0x23
+ bls _080E671E
+ ldr r1, _080E675C @ =0x0000a0d0
+ adds r0, r3, r1
+ adds r0, r5, r0
+ movs r4, 0x1
+ negs r4, r4
+ adds r2, r4, 0
+ movs r1, 0xFF
+ strb r1, [r0]
+ ldr r0, _080E6760 @ =0x0000a29a
+ adds r3, r0
+ movs r0, 0xFC
+ strb r0, [r3]
+ movs r0, 0x11
+ strb r0, [r3, 0x1]
+ movs r0, 0xE0
+ strb r0, [r3, 0x2]
+ strb r2, [r3, 0x3]
+ add sp, 0x10
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E6758: .4byte 0x02001000
+_080E675C: .4byte 0x0000a0d0
+_080E6760: .4byte 0x0000a29a
+ thumb_func_end sub_80E6690
+
+ thumb_func_start InitEasyChatPhrases
+InitEasyChatPhrases: @ 80E6764
+ push {r4-r6,lr}
+ movs r3, 0
+ ldr r4, _080E680C @ =gSaveBlock1 + 0x2B1C
+ ldr r2, _080E6810 @ =gUnknown_083DB7EC
+_080E676C:
+ lsls r0, r3, 1
+ adds r1, r0, r4
+ adds r0, r2
+ ldrh r0, [r0]
+ strh r0, [r1]
+ adds r0, r3, 0x1
+ lsls r0, 16
+ lsrs r3, r0, 16
+ cmp r3, 0x3
+ bls _080E676C
+ movs r3, 0
+ ldr r4, _080E6814 @ =gSaveBlock1 + 0x2B28
+ ldr r2, _080E6818 @ =gUnknown_083DB7F4
+_080E6786:
+ lsls r0, r3, 1
+ adds r1, r0, r4
+ adds r0, r2
+ ldrh r0, [r0]
+ strh r0, [r1]
+ adds r0, r3, 0x1
+ lsls r0, 16
+ lsrs r3, r0, 16
+ cmp r3, 0x5
+ bls _080E6786
+ movs r3, 0
+ ldr r5, _080E681C @ =gSaveBlock1 + 0x2B34
+ ldr r0, _080E6820 @ =0x0000ffff
+ adds r4, r0, 0
+ adds r6, r5, 0
+ adds r6, 0xC
+_080E67A6:
+ lsls r1, r3, 1
+ adds r2, r1, r5
+ ldrh r0, [r2]
+ orrs r0, r4
+ strh r0, [r2]
+ adds r1, r6
+ ldrh r0, [r1]
+ orrs r0, r4
+ strh r0, [r1]
+ adds r0, r3, 0x1
+ lsls r0, 16
+ lsrs r3, r0, 16
+ cmp r3, 0x5
+ bls _080E67A6
+ movs r3, 0
+ ldr r6, _080E6824 @ =gSaveBlock1 + 0x2B4C
+ ldr r0, _080E6820 @ =0x0000ffff
+ adds r5, r0, 0
+_080E67CA:
+ movs r2, 0
+ lsls r0, r3, 3
+ adds r0, r3
+ lsls r4, r0, 2
+_080E67D2:
+ lsls r0, r2, 1
+ adds r0, r4
+ adds r0, r6
+ ldrh r1, [r0]
+ orrs r1, r5
+ strh r1, [r0]
+ adds r0, r2, 0x1
+ lsls r0, 16
+ lsrs r2, r0, 16
+ cmp r2, 0x8
+ bls _080E67D2
+ adds r0, r3, 0x1
+ lsls r0, 16
+ lsrs r3, r0, 16
+ cmp r3, 0xF
+ bls _080E67CA
+ movs r3, 0
+ ldr r2, _080E6828 @ =gSaveBlock1 + 0x2D8C
+ movs r1, 0
+_080E67F8:
+ adds r0, r3, r2
+ strb r1, [r0]
+ adds r0, r3, 0x1
+ lsls r0, 16
+ lsrs r3, r0, 16
+ cmp r3, 0x3F
+ bls _080E67F8
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E680C: .4byte gSaveBlock1 + 0x2B1C
+_080E6810: .4byte gUnknown_083DB7EC
+_080E6814: .4byte gSaveBlock1 + 0x2B28
+_080E6818: .4byte gUnknown_083DB7F4
+_080E681C: .4byte gSaveBlock1 + 0x2B34
+_080E6820: .4byte 0x0000ffff
+_080E6824: .4byte gSaveBlock1 + 0x2B4C
+_080E6828: .4byte gSaveBlock1 + 0x2D8C
+ thumb_func_end InitEasyChatPhrases
+
+ thumb_func_start sub_80E682C
+sub_80E682C: @ 80E682C
+ ldr r1, _080E6838 @ =0x02001000
+ str r0, [r1, 0x20]
+ movs r0, 0
+ strh r0, [r1, 0x24]
+ bx lr
+ .align 2, 0
+_080E6838: .4byte 0x02001000
+ thumb_func_end sub_80E682C
+
+ thumb_func_start sub_80E683C
+sub_80E683C: @ 80E683C
+ push {r4,r5,lr}
+ ldr r1, _080E6890 @ =0x02001000
+ adds r0, r1, 0
+ adds r0, 0x26
+ ldrb r0, [r0]
+ adds r2, r1, 0
+ cmp r0, 0
+ bne _080E6898
+ movs r1, 0
+ movs r0, 0xDB
+ lsls r0, 1
+ adds r3, r2, r0
+ movs r0, 0
+ ldrsb r0, [r3, r0]
+ cmp r1, r0
+ bge _080E6876
+ movs r0, 0xD5
+ lsls r0, 1
+ adds r5, r2, r0
+ movs r4, 0x2
+_080E6864:
+ adds r0, r1, r5
+ strb r4, [r0]
+ adds r0, r1, 0x1
+ lsls r0, 16
+ lsrs r1, r0, 16
+ movs r0, 0
+ ldrsb r0, [r3, r0]
+ cmp r1, r0
+ blt _080E6864
+_080E6876:
+ adds r0, r2, r1
+ ldr r1, _080E6894 @ =0x000001a9
+ adds r3, r0, r1
+ ldrh r0, [r2, 0x28]
+ movs r1, 0x1
+ ands r0, r1
+ strb r0, [r3]
+ cmp r0, 0
+ bne _080E68B8
+ movs r0, 0x2
+ strb r0, [r3]
+ b _080E68B8
+ .align 2, 0
+_080E6890: .4byte 0x02001000
+_080E6894: .4byte 0x000001a9
+_080E6898:
+ movs r3, 0xD5
+ lsls r3, 1
+ adds r1, r2, r3
+ movs r0, 0x7
+ strb r0, [r1]
+ ldr r1, _080E68E0 @ =0x000001ab
+ adds r3, r2, r1
+ movs r1, 0x6
+ strb r1, [r3]
+ movs r3, 0xD6
+ lsls r3, 1
+ adds r1, r2, r3
+ strb r0, [r1]
+ adds r3, 0x1
+ adds r1, r2, r3
+ strb r0, [r1]
+_080E68B8:
+ movs r0, 0xD4
+ lsls r0, 1
+ adds r1, r2, r0
+ movs r0, 0
+ strb r0, [r1]
+ ldr r3, _080E68E4 @ =0x000001a9
+ adds r1, r2, r3
+ strb r0, [r1]
+ adds r3, 0xC
+ adds r1, r2, r3
+ strb r0, [r1]
+ adds r3, 0x2
+ adds r1, r2, r3
+ strb r0, [r1]
+ bl sub_80E9A4C
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E68E0: .4byte 0x000001ab
+_080E68E4: .4byte 0x000001a9
+ thumb_func_end sub_80E683C
+
+ thumb_func_start sub_80E68E8
+sub_80E68E8: @ 80E68E8
+ push {r4-r6,lr}
+ bl sub_80EB0B0
+ ldr r3, _080E694C @ =0x02001000
+ adds r0, r3, 0
+ adds r0, 0x26
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _080E695C
+ movs r1, 0xDC
+ lsls r1, 1
+ adds r0, r3, r1
+ ldrb r6, [r0]
+ lsls r0, r6, 1
+ ldr r2, _080E6950 @ =0x000044a2
+ adds r1, r3, r2
+ adds r0, r1
+ ldrh r0, [r0]
+ adds r0, 0x1
+ asrs r0, 1
+ ldr r1, _080E6954 @ =0x00009d54
+ adds r2, r3, r1
+ strb r0, [r2]
+ movs r1, 0
+ movs r0, 0
+ ldrsb r0, [r2, r0]
+ adds r5, r3, 0
+ cmp r1, r0
+ bge _080E693A
+ ldr r3, _080E6958 @ =0x00009cd2
+ adds r4, r5, r3
+ movs r3, 0x2
+_080E6928:
+ adds r0, r1, r4
+ strb r3, [r0]
+ adds r0, r1, 0x1
+ lsls r0, 16
+ lsrs r1, r0, 16
+ movs r0, 0
+ ldrsb r0, [r2, r0]
+ cmp r1, r0
+ blt _080E6928
+_080E693A:
+ subs r0, r1, 0x1
+ lsls r0, 16
+ lsrs r1, r0, 16
+ ldr r2, _080E6958 @ =0x00009cd2
+ adds r0, r5, r2
+ adds r2, r1, r0
+ lsls r0, r6, 1
+ ldr r3, _080E6950 @ =0x000044a2
+ b _080E69AC
+ .align 2, 0
+_080E694C: .4byte 0x02001000
+_080E6950: .4byte 0x000044a2
+_080E6954: .4byte 0x00009d54
+_080E6958: .4byte 0x00009cd2
+_080E695C:
+ movs r1, 0xDC
+ lsls r1, 1
+ adds r0, r3, r1
+ ldrb r6, [r0]
+ lsls r0, r6, 1
+ ldr r2, _080E69E0 @ =0x0000446c
+ adds r1, r3, r2
+ adds r0, r1
+ ldrh r0, [r0]
+ adds r0, 0x1
+ asrs r0, 1
+ ldr r1, _080E69E4 @ =0x00009d54
+ adds r2, r3, r1
+ strb r0, [r2]
+ movs r1, 0
+ movs r0, 0
+ ldrsb r0, [r2, r0]
+ adds r5, r3, 0
+ cmp r1, r0
+ bge _080E699C
+ ldr r3, _080E69E8 @ =0x00009cd2
+ adds r4, r5, r3
+ movs r3, 0x2
+_080E698A:
+ adds r0, r1, r4
+ strb r3, [r0]
+ adds r0, r1, 0x1
+ lsls r0, 16
+ lsrs r1, r0, 16
+ movs r0, 0
+ ldrsb r0, [r2, r0]
+ cmp r1, r0
+ blt _080E698A
+_080E699C:
+ subs r0, r1, 0x1
+ lsls r0, 16
+ lsrs r1, r0, 16
+ ldr r2, _080E69E8 @ =0x00009cd2
+ adds r0, r5, r2
+ adds r2, r1, r0
+ lsls r0, r6, 1
+ ldr r3, _080E69E0 @ =0x0000446c
+_080E69AC:
+ adds r1, r5, r3
+ adds r0, r1
+ ldrh r0, [r0]
+ movs r1, 0x1
+ ands r0, r1
+ strb r0, [r2]
+ cmp r0, 0
+ bne _080E69C0
+ movs r0, 0x2
+ strb r0, [r2]
+_080E69C0:
+ ldr r1, _080E69EC @ =0x00009cd0
+ adds r0, r5, r1
+ movs r1, 0
+ strb r1, [r0]
+ ldr r2, _080E69F0 @ =0x00009cd1
+ adds r0, r5, r2
+ strb r1, [r0]
+ ldr r3, _080E69F4 @ =0x00009d55
+ adds r0, r5, r3
+ strb r1, [r0]
+ bl sub_80E9A4C
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E69E0: .4byte 0x0000446c
+_080E69E4: .4byte 0x00009d54
+_080E69E8: .4byte 0x00009cd2
+_080E69EC: .4byte 0x00009cd0
+_080E69F0: .4byte 0x00009cd1
+_080E69F4: .4byte 0x00009d55
+ thumb_func_end sub_80E68E8
+
+ thumb_func_start sub_80E69F8
+sub_80E69F8: @ 80E69F8
+ push {r4,lr}
+ ldr r0, _080E6A10 @ =0x02001000
+ ldrb r1, [r0, 0x8]
+ adds r4, r0, 0
+ cmp r1, 0xD
+ bhi _080E6A50
+ lsls r0, r1, 2
+ ldr r1, _080E6A14 @ =_080E6A18
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080E6A10: .4byte 0x02001000
+_080E6A14: .4byte _080E6A18
+ .align 2, 0
+_080E6A18:
+ .4byte _080E6A50
+ .4byte _080E6A50
+ .4byte _080E6A50
+ .4byte _080E6A50
+ .4byte _080E6A50
+ .4byte _080E6A58
+ .4byte _080E6A50
+ .4byte _080E6A58
+ .4byte _080E6A58
+ .4byte _080E6A50
+ .4byte _080E6A58
+ .4byte _080E6A58
+ .4byte _080E6A58
+ .4byte _080E6A50
+_080E6A50:
+ ldrb r0, [r4, 0x8]
+ bl sub_80E9368
+ b _080E6A66
+_080E6A58:
+ ldrb r0, [r4, 0x8]
+ bl sub_80E9368
+ ldrb r0, [r4, 0xB]
+ ldrb r1, [r4, 0x9]
+ bl sub_80E8BF4
+_080E6A66:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80E69F8
+
+ thumb_func_start sub_80E6A6C
+sub_80E6A6C: @ 80E6A6C
+ push {lr}
+ bl LoadOam
+ bl ProcessSpriteCopyRequests
+ bl sub_80EAC5C
+ bl TransferPlttBuffer
+ bl sub_8089668
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80E6A6C
+
+ thumb_func_start sub_80E6A88
+sub_80E6A88: @ 80E6A88
+ push {lr}
+ ldr r0, _080E6AA4 @ =0x02001000
+ ldr r0, [r0, 0x20]
+ bl _call_via_r0
+ bl AnimateSprites
+ bl BuildOamBuffer
+ bl sub_80EAD08
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E6AA4: .4byte 0x02001000
+ thumb_func_end sub_80E6A88
+
+ thumb_func_start sub_80E6AA8
+sub_80E6AA8: @ 80E6AA8
+ push {lr}
+ bl UpdatePaletteFade
+ lsls r0, 24
+ cmp r0, 0
+ bne _080E6ABA
+ ldr r0, _080E6AC0 @ =sub_80E6AC4
+ bl sub_80E682C
+_080E6ABA:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E6AC0: .4byte sub_80E6AC4
+ thumb_func_end sub_80E6AA8
+
+ thumb_func_start sub_80E6AC4
+sub_80E6AC4: @ 80E6AC4
+ push {lr}
+ bl sub_80E88F0
+ movs r0, 0
+ bl sub_80E8398
+ movs r0, 0
+ bl sub_80E91D4
+ ldr r0, _080E6AE0 @ =sub_80E6AE4
+ bl sub_80E682C
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E6AE0: .4byte sub_80E6AE4
+ thumb_func_end sub_80E6AC4
+
+ thumb_func_start sub_80E6AE4
+sub_80E6AE4: @ 80E6AE4
+ push {r4,r5,lr}
+ bl sub_80E75D8
+ ldr r4, _080E6B44 @ =0x02001000
+ adds r1, r4, 0
+ adds r1, 0x87
+ strb r0, [r1]
+ lsls r0, 24
+ cmp r0, 0
+ beq _080E6AFE
+ movs r0, 0x5
+ bl PlaySE
+_080E6AFE:
+ ldr r2, _080E6B48 @ =gMain
+ ldrh r1, [r2, 0x2E]
+ movs r0, 0x1
+ ands r0, r1
+ adds r5, r2, 0
+ cmp r0, 0
+ beq _080E6BA4
+ movs r0, 0x5
+ bl PlaySE
+ adds r1, r4, 0
+ adds r1, 0x86
+ adds r0, r4, 0
+ adds r0, 0x84
+ ldrb r2, [r1]
+ ldrb r1, [r1]
+ lsls r1, 24
+ asrs r1, 24
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ cmp r1, r0
+ bne _080E6B78
+ adds r0, r4, 0
+ adds r0, 0x85
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ cmp r0, 0x1
+ beq _080E6B60
+ cmp r0, 0x1
+ bgt _080E6B4C
+ cmp r0, 0
+ beq _080E6B52
+ b _080E6BA4
+ .align 2, 0
+_080E6B44: .4byte 0x02001000
+_080E6B48: .4byte gMain
+_080E6B4C:
+ cmp r0, 0x2
+ beq _080E6B6C
+ b _080E6BA4
+_080E6B52:
+ ldr r0, _080E6B5C @ =sub_80E6BC0
+ bl sub_80E682C
+ b _080E6BB4
+ .align 2, 0
+_080E6B5C: .4byte sub_80E6BC0
+_080E6B60:
+ ldr r0, _080E6B68 @ =sub_80E6C84
+ bl sub_80E682C
+ b _080E6BB4
+ .align 2, 0
+_080E6B68: .4byte sub_80E6C84
+_080E6B6C:
+ ldr r0, _080E6B74 @ =sub_80E6D7C
+ bl sub_80E682C
+ b _080E6BB4
+ .align 2, 0
+_080E6B74: .4byte sub_80E6D7C
+_080E6B78:
+ adds r0, r4, 0
+ adds r0, 0x83
+ ldrb r0, [r0]
+ adds r1, r4, 0
+ adds r1, 0x85
+ adds r3, r0, 0
+ muls r3, r2
+ adds r0, r3, 0
+ ldrb r1, [r1]
+ adds r0, r1
+ adds r1, r4, 0
+ adds r1, 0x27
+ strb r0, [r1]
+ bl sub_80E7574
+ ldr r0, _080E6BA0 @ =sub_80E6F68
+ bl sub_80E682C
+ b _080E6BB4
+ .align 2, 0
+_080E6BA0: .4byte sub_80E6F68
+_080E6BA4:
+ ldrh r1, [r5, 0x2E]
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _080E6BB4
+ ldr r0, _080E6BBC @ =sub_80E6C84
+ bl sub_80E682C
+_080E6BB4:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E6BBC: .4byte sub_80E6C84
+ thumb_func_end sub_80E6AE4
+
+ thumb_func_start sub_80E6BC0
+sub_80E6BC0: @ 80E6BC0
+ push {r4,lr}
+ ldr r4, _080E6BD4 @ =0x02001000
+ ldrh r0, [r4, 0x24]
+ cmp r0, 0x1
+ beq _080E6C12
+ cmp r0, 0x1
+ bgt _080E6BD8
+ cmp r0, 0
+ beq _080E6BE2
+ b _080E6C76
+ .align 2, 0
+_080E6BD4: .4byte 0x02001000
+_080E6BD8:
+ cmp r0, 0x2
+ beq _080E6C54
+ cmp r0, 0x64
+ beq _080E6C64
+ b _080E6C76
+_080E6BE2:
+ movs r0, 0x2
+ bl sub_80E8398
+ ldrb r0, [r4, 0x8]
+ cmp r0, 0x6
+ bne _080E6BFA
+ movs r0, 0x6
+ bl sub_80E91D4
+ movs r0, 0x64
+ strh r0, [r4, 0x24]
+ b _080E6C76
+_080E6BFA:
+ movs r0, 0x2
+ bl sub_80E91D4
+ movs r0, 0x17
+ movs r1, 0x8
+ movs r2, 0x1
+ bl DisplayYesNoMenu
+ movs r0, 0x1
+ bl MoveMenuCursor
+ b _080E6C3E
+_080E6C12:
+ bl ProcessMenuInputNoWrap_
+ lsls r0, 24
+ asrs r1, r0, 24
+ cmp r1, 0
+ beq _080E6C32
+ cmp r1, 0
+ bgt _080E6C2C
+ movs r0, 0x1
+ negs r0, r0
+ cmp r1, r0
+ beq _080E6C46
+ b _080E6C76
+_080E6C2C:
+ cmp r1, 0x1
+ beq _080E6C46
+ b _080E6C76
+_080E6C32:
+ bl sub_80E7D6C
+ bl sub_80E98C4
+ bl sub_80E95A4
+_080E6C3E:
+ ldrh r0, [r4, 0x24]
+ adds r0, 0x1
+ strh r0, [r4, 0x24]
+ b _080E6C76
+_080E6C46:
+ ldr r1, _080E6C50 @ =0x02001000
+ ldrh r0, [r1, 0x24]
+ adds r0, 0x1
+ strh r0, [r1, 0x24]
+ b _080E6C76
+ .align 2, 0
+_080E6C50: .4byte 0x02001000
+_080E6C54:
+ bl sub_80E81FC
+ ldr r0, _080E6C60 @ =sub_80E6AC4
+ bl sub_80E682C
+ b _080E6C76
+ .align 2, 0
+_080E6C60: .4byte sub_80E6AC4
+_080E6C64:
+ ldr r0, _080E6C7C @ =gMain
+ ldrh r1, [r0, 0x2E]
+ movs r0, 0x3
+ ands r0, r1
+ cmp r0, 0
+ beq _080E6C76
+ ldr r0, _080E6C80 @ =sub_80E6AC4
+ bl sub_80E682C
+_080E6C76:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E6C7C: .4byte gMain
+_080E6C80: .4byte sub_80E6AC4
+ thumb_func_end sub_80E6BC0
+
+ thumb_func_start sub_80E6C84
+sub_80E6C84: @ 80E6C84
+ push {r4,lr}
+ ldr r4, _080E6C98 @ =0x02001000
+ ldrh r0, [r4, 0x24]
+ cmp r0, 0x1
+ beq _080E6CF4
+ cmp r0, 0x1
+ bgt _080E6C9C
+ cmp r0, 0
+ beq _080E6CA6
+ b _080E6D72
+ .align 2, 0
+_080E6C98: .4byte 0x02001000
+_080E6C9C:
+ cmp r0, 0x2
+ beq _080E6D24
+ cmp r0, 0xFF
+ beq _080E6D64
+ b _080E6D72
+_080E6CA6:
+ movs r0, 0x2
+ bl sub_80E8398
+ movs r0, 0x3
+ bl sub_80E91D4
+ movs r0, 0x17
+ movs r1, 0x8
+ movs r2, 0
+ bl DisplayYesNoMenu
+ movs r0, 0x1
+ bl MoveMenuCursor
+ ldrb r0, [r4, 0x8]
+ cmp r0, 0x9
+ beq _080E6CE8
+ cmp r0, 0x4
+ beq _080E6CE8
+ cmp r0, 0x7
+ beq _080E6CE8
+ cmp r0, 0x8
+ beq _080E6CE8
+ cmp r0, 0xA
+ beq _080E6CE8
+ cmp r0, 0xB
+ beq _080E6CE8
+ cmp r0, 0xC
+ beq _080E6CE8
+ cmp r0, 0x5
+ beq _080E6CE8
+ cmp r0, 0xD
+ bne _080E6D1C
+_080E6CE8:
+ ldr r1, _080E6CF0 @ =0x02001000
+ movs r0, 0x2
+ strh r0, [r1, 0x24]
+ b _080E6D72
+ .align 2, 0
+_080E6CF0: .4byte 0x02001000
+_080E6CF4:
+ bl ProcessMenuInputNoWrap_
+ lsls r0, 24
+ asrs r1, r0, 24
+ cmp r1, 0
+ beq _080E6D06
+ cmp r1, 0
+ ble _080E6D34
+ b _080E6D3E
+_080E6D06:
+ movs r0, 0x4
+ bl sub_80E91D4
+ movs r0, 0x17
+ movs r1, 0x8
+ movs r2, 0
+ bl DisplayYesNoMenu
+ movs r0, 0x1
+ bl MoveMenuCursor
+_080E6D1C:
+ ldrh r0, [r4, 0x24]
+ adds r0, 0x1
+ strh r0, [r4, 0x24]
+ b _080E6D72
+_080E6D24:
+ bl ProcessMenuInputNoWrap_
+ lsls r0, 24
+ asrs r1, r0, 24
+ cmp r1, 0
+ beq _080E6D44
+ cmp r1, 0
+ bgt _080E6D3E
+_080E6D34:
+ movs r0, 0x1
+ negs r0, r0
+ cmp r1, r0
+ beq _080E6D58
+ b _080E6D72
+_080E6D3E:
+ cmp r1, 0x1
+ beq _080E6D58
+ b _080E6D72
+_080E6D44:
+ ldr r0, _080E6D50 @ =gScriptResult
+ strh r1, [r0]
+ ldr r0, _080E6D54 @ =sub_80E752C
+ bl sub_80E682C
+ b _080E6D72
+ .align 2, 0
+_080E6D50: .4byte gScriptResult
+_080E6D54: .4byte sub_80E752C
+_080E6D58:
+ ldr r1, _080E6D60 @ =0x02001000
+ movs r0, 0xFF
+ strh r0, [r1, 0x24]
+ b _080E6D72
+ .align 2, 0
+_080E6D60: .4byte 0x02001000
+_080E6D64:
+ bl HandleDestroyMenuCursors
+ bl sub_80E81FC
+ ldr r0, _080E6D78 @ =sub_80E6AC4
+ bl sub_80E682C
+_080E6D72:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E6D78: .4byte sub_80E6AC4
+ thumb_func_end sub_80E6C84
+
+ thumb_func_start sub_80E6D7C
+sub_80E6D7C: @ 80E6D7C
+ push {r4-r7,lr}
+ ldr r5, _080E6D98 @ =0x02001000
+ ldrh r0, [r5, 0x24]
+ cmp r0, 0xA
+ bne _080E6D88
+ b _080E6F06
+_080E6D88:
+ cmp r0, 0xA
+ bgt _080E6D9C
+ cmp r0, 0
+ beq _080E6DB6
+ cmp r0, 0x1
+ beq _080E6E3C
+ b _080E6F5E
+ .align 2, 0
+_080E6D98: .4byte 0x02001000
+_080E6D9C:
+ cmp r0, 0x65
+ bne _080E6DA2
+ b _080E6F30
+_080E6DA2:
+ cmp r0, 0x65
+ bgt _080E6DAE
+ cmp r0, 0x64
+ bne _080E6DAC
+ b _080E6F24
+_080E6DAC:
+ b _080E6F5E
+_080E6DAE:
+ cmp r0, 0x66
+ bne _080E6DB4
+ b _080E6F50
+_080E6DB4:
+ b _080E6F5E
+_080E6DB6:
+ movs r0, 0x2
+ bl sub_80E8398
+ bl sub_80E8054
+ lsls r0, 24
+ cmp r0, 0
+ beq _080E6DCA
+ movs r0, 0x5
+ b _080E6DEE
+_080E6DCA:
+ ldrb r0, [r5, 0x8]
+ cmp r0, 0x9
+ bne _080E6DFC
+ bl sub_80E7FA8
+ lsls r0, 24
+ cmp r0, 0
+ bne _080E6DDE
+ movs r0, 0x8
+ b _080E6DEE
+_080E6DDE:
+ ldrh r0, [r5, 0xC]
+ ldr r1, _080E6DF8 @ =0x0000ffff
+ cmp r0, r1
+ beq _080E6DEC
+ ldrh r0, [r5, 0xE]
+ cmp r0, r1
+ bne _080E6DFC
+_080E6DEC:
+ movs r0, 0x9
+_080E6DEE:
+ bl sub_80E91D4
+ movs r0, 0xA
+ strh r0, [r5, 0x24]
+ b _080E6F5E
+ .align 2, 0
+_080E6DF8: .4byte 0x0000ffff
+_080E6DFC:
+ ldr r0, _080E6E18 @ =0x02001000
+ ldrb r0, [r0, 0x8]
+ cmp r0, 0x4
+ bne _080E6E20
+ bl sub_80E7FA8
+ lsls r0, 24
+ cmp r0, 0
+ bne _080E6E20
+ ldr r0, _080E6E1C @ =sub_80E6C84
+ bl sub_80E682C
+ b _080E6F5E
+ .align 2, 0
+_080E6E18: .4byte 0x02001000
+_080E6E1C: .4byte sub_80E6C84
+_080E6E20:
+ movs r0, 0x1
+ bl sub_80E91D4
+ bl sub_80E9744
+ movs r0, 0x17
+ movs r1, 0x8
+ movs r2, 0
+ bl DisplayYesNoMenu
+ movs r0, 0
+ bl MoveMenuCursor
+ b _080E6F3C
+_080E6E3C:
+ bl ProcessMenuInputNoWrap_
+ lsls r0, 24
+ asrs r6, r0, 24
+ cmp r6, 0
+ beq _080E6E5C
+ cmp r6, 0
+ bgt _080E6E56
+ movs r0, 0x1
+ negs r0, r0
+ cmp r6, r0
+ beq _080E6EDC
+ b _080E6F5E
+_080E6E56:
+ cmp r6, 0x1
+ beq _080E6EDC
+ b _080E6F5E
+_080E6E5C:
+ ldr r7, _080E6EC8 @ =gScriptResult
+ bl sub_80E7FA8
+ lsls r0, 24
+ lsrs r0, 24
+ negs r0, r0
+ lsrs r0, 31
+ strh r0, [r7]
+ bl sub_80E7D9C
+ ldrb r0, [r5, 0x8]
+ cmp r0, 0
+ bne _080E6E82
+ ldr r4, _080E6ECC @ =gSpecialVar_0x8004
+ bl sub_80E8094
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4]
+_080E6E82:
+ ldrb r0, [r5, 0x8]
+ cmp r0, 0x9
+ bne _080E6E9C
+ bl sub_80E81C0
+ ldr r4, _080E6ECC @ =gSpecialVar_0x8004
+ ldr r1, _080E6ED0 @ =0x00009fa8
+ adds r0, r5, r1
+ bl sub_80FA364
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4]
+_080E6E9C:
+ ldrb r0, [r5, 0x8]
+ cmp r0, 0xD
+ bne _080E6EBE
+ ldrh r0, [r5, 0xC]
+ ldr r1, _080E6ED4 @ =0x0000ffff
+ cmp r0, r1
+ beq _080E6EB0
+ ldrh r0, [r5, 0xE]
+ cmp r0, r1
+ bne _080E6EB2
+_080E6EB0:
+ strh r6, [r7]
+_080E6EB2:
+ ldr r4, _080E6ECC @ =gSpecialVar_0x8004
+ bl sub_80E810C
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4]
+_080E6EBE:
+ ldr r0, _080E6ED8 @ =sub_80E752C
+ bl sub_80E682C
+ b _080E6F5E
+ .align 2, 0
+_080E6EC8: .4byte gScriptResult
+_080E6ECC: .4byte gSpecialVar_0x8004
+_080E6ED0: .4byte 0x00009fa8
+_080E6ED4: .4byte 0x0000ffff
+_080E6ED8: .4byte sub_80E752C
+_080E6EDC:
+ bl HandleDestroyMenuCursors
+ bl sub_80E81FC
+ ldr r4, _080E6EFC @ =0x02001000
+ ldrb r0, [r4, 0x8]
+ cmp r0, 0x6
+ bne _080E6F00
+ bl sub_80E7FA8
+ lsls r0, 24
+ cmp r0, 0
+ beq _080E6F00
+ movs r0, 0x64
+ strh r0, [r4, 0x24]
+ b _080E6F5E
+ .align 2, 0
+_080E6EFC: .4byte 0x02001000
+_080E6F00:
+ bl sub_80E95A4
+ b _080E6F12
+_080E6F06:
+ ldr r0, _080E6F1C @ =gMain
+ ldrh r1, [r0, 0x2E]
+ movs r0, 0x3
+ ands r0, r1
+ cmp r0, 0
+ beq _080E6F5E
+_080E6F12:
+ ldr r0, _080E6F20 @ =sub_80E6AC4
+ bl sub_80E682C
+ b _080E6F5E
+ .align 2, 0
+_080E6F1C: .4byte gMain
+_080E6F20: .4byte sub_80E6AC4
+_080E6F24:
+ movs r0, 0x7
+ bl sub_80E91D4
+ ldrh r0, [r5, 0x24]
+ adds r0, 0x1
+ strh r0, [r5, 0x24]
+_080E6F30:
+ ldr r0, _080E6F48 @ =gMain
+ ldrh r1, [r0, 0x2E]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _080E6F5E
+_080E6F3C:
+ ldr r1, _080E6F4C @ =0x02001000
+ ldrh r0, [r1, 0x24]
+ adds r0, 0x1
+ strh r0, [r1, 0x24]
+ b _080E6F5E
+ .align 2, 0
+_080E6F48: .4byte gMain
+_080E6F4C: .4byte 0x02001000
+_080E6F50:
+ bl sub_80E7E50
+ bl sub_80E95A4
+ ldr r0, _080E6F64 @ =sub_80E6AC4
+ bl sub_80E682C
+_080E6F5E:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E6F64: .4byte sub_80E6AC4
+ thumb_func_end sub_80E6D7C
+
+ thumb_func_start sub_80E6F68
+sub_80E6F68: @ 80E6F68
+ push {r4,lr}
+ ldr r4, _080E6F78 @ =0x02001000
+ ldrh r0, [r4, 0x24]
+ cmp r0, 0
+ beq _080E6F7C
+ cmp r0, 0x1
+ beq _080E6F9C
+ b _080E6FBC
+ .align 2, 0
+_080E6F78: .4byte 0x02001000
+_080E6F7C:
+ movs r0, 0x1
+ bl sub_80E8398
+ movs r0, 0xA
+ bl sub_80E91D4
+ bl sub_80E683C
+ bl sub_80E9974
+ bl sub_80E9E98
+ ldrh r0, [r4, 0x24]
+ adds r0, 0x1
+ strh r0, [r4, 0x24]
+ b _080E6FBC
+_080E6F9C:
+ bl sub_80E9EA8
+ lsls r0, 24
+ cmp r0, 0
+ beq _080E6FBC
+ movs r0, 0x1
+ bl sub_80E8D8C
+ bl sub_80E8420
+ movs r0, 0
+ bl sub_80E8958
+ ldr r0, _080E6FC4 @ =sub_80E6FC8
+ bl sub_80E682C
+_080E6FBC:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E6FC4: .4byte sub_80E6FC8
+ thumb_func_end sub_80E6F68
+
+ thumb_func_start sub_80E6FC8
+sub_80E6FC8: @ 80E6FC8
+ push {r4,lr}
+ bl sub_80E77C8
+ adds r1, r0, 0
+ ldr r4, _080E7000 @ =0x02001000
+ adds r0, r4, 0
+ adds r0, 0x96
+ strb r1, [r0]
+ movs r2, 0xE0
+ lsls r2, 1
+ adds r0, r4, r2
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ cmp r0, 0
+ beq _080E700C
+ movs r0, 0x5
+ bl PlaySE
+ movs r1, 0xE2
+ lsls r1, 1
+ adds r0, r4, r1
+ ldr r1, _080E7004 @ =sub_80E6FC8
+ str r1, [r0]
+ ldr r0, _080E7008 @ =sub_80E7458
+ bl sub_80E682C
+ b _080E710A
+ .align 2, 0
+_080E7000: .4byte 0x02001000
+_080E7004: .4byte sub_80E6FC8
+_080E7008: .4byte sub_80E7458
+_080E700C:
+ lsls r0, r1, 24
+ cmp r0, 0
+ beq _080E7018
+ movs r0, 0x5
+ bl PlaySE
+_080E7018:
+ ldr r0, _080E7054 @ =gMain
+ ldrh r1, [r0, 0x2E]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _080E70E8
+ ldr r2, _080E7058 @ =0x000001b7
+ adds r0, r4, r2
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ cmp r0, 0
+ beq _080E7090
+ movs r0, 0x5
+ bl PlaySE
+ movs r1, 0xD4
+ lsls r1, 1
+ adds r0, r4, r1
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ cmp r0, 0x2
+ beq _080E7070
+ cmp r0, 0x2
+ bgt _080E705C
+ cmp r0, 0x1
+ beq _080E7062
+ b _080E710A
+ .align 2, 0
+_080E7054: .4byte gMain
+_080E7058: .4byte 0x000001b7
+_080E705C:
+ cmp r0, 0x3
+ beq _080E70F0
+ b _080E710A
+_080E7062:
+ ldr r0, _080E706C @ =sub_80E718C
+ bl sub_80E682C
+ b _080E710A
+ .align 2, 0
+_080E706C: .4byte sub_80E718C
+_080E7070:
+ ldrb r0, [r4, 0x8]
+ cmp r0, 0x6
+ beq _080E710A
+ adds r0, r4, 0
+ adds r0, 0x27
+ ldrb r0, [r0]
+ ldr r1, _080E708C @ =0x0000ffff
+ bl sub_80E7F00
+ bl sub_80E7574
+ bl sub_80E95A4
+ b _080E710A
+ .align 2, 0
+_080E708C: .4byte 0x0000ffff
+_080E7090:
+ adds r0, r4, 0
+ adds r0, 0x26
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _080E70CA
+ ldr r2, _080E70DC @ =0x000001a9
+ adds r0, r4, r2
+ movs r2, 0
+ ldrsb r2, [r0, r2]
+ movs r1, 0xD4
+ lsls r1, 1
+ adds r0, r4, r1
+ movs r1, 0
+ ldrsb r1, [r0, r1]
+ lsls r0, r1, 3
+ subs r0, r1
+ lsls r0, 1
+ adds r2, r0
+ adds r0, r4, 0
+ adds r0, 0x40
+ adds r2, r0
+ ldrb r0, [r2]
+ lsls r0, 1
+ ldr r2, _080E70E0 @ =0x0000446c
+ adds r1, r4, r2
+ adds r0, r1
+ ldrh r0, [r0]
+ cmp r0, 0
+ beq _080E710A
+_080E70CA:
+ movs r0, 0x5
+ bl PlaySE
+ bl sub_80E7AD4
+ ldr r0, _080E70E4 @ =sub_80E7218
+ bl sub_80E682C
+ b _080E710A
+ .align 2, 0
+_080E70DC: .4byte 0x000001a9
+_080E70E0: .4byte 0x0000446c
+_080E70E4: .4byte sub_80E7218
+_080E70E8:
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _080E70FC
+_080E70F0:
+ ldr r0, _080E70F8 @ =sub_80E7114
+ bl sub_80E682C
+ b _080E710A
+ .align 2, 0
+_080E70F8: .4byte sub_80E7114
+_080E70FC:
+ movs r0, 0x4
+ ands r0, r1
+ cmp r0, 0
+ beq _080E710A
+ ldr r0, _080E7110 @ =sub_80E718C
+ bl sub_80E682C
+_080E710A:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E7110: .4byte sub_80E718C
+ thumb_func_end sub_80E6FC8
+
+ thumb_func_start sub_80E7114
+sub_80E7114: @ 80E7114
+ push {lr}
+ ldr r0, _080E712C @ =0x02001000
+ ldrh r1, [r0, 0x24]
+ adds r2, r0, 0
+ cmp r1, 0x4
+ bhi _080E7182
+ lsls r0, r1, 2
+ ldr r1, _080E7130 @ =_080E7134
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080E712C: .4byte 0x02001000
+_080E7130: .4byte _080E7134
+ .align 2, 0
+_080E7134:
+ .4byte _080E7148
+ .4byte _080E715C
+ .4byte _080E715C
+ .4byte _080E7164
+ .4byte _080E717C
+_080E7148:
+ bl sub_80E8504
+ bl sub_80E9E98
+ bl sub_80E88F0
+ movs r0, 0
+ bl sub_80E8D8C
+ b _080E716E
+_080E715C:
+ ldrh r0, [r2, 0x24]
+ adds r0, 0x1
+ strh r0, [r2, 0x24]
+ b _080E7182
+_080E7164:
+ bl sub_80E9F50
+ lsls r0, 24
+ cmp r0, 0
+ beq _080E7182
+_080E716E:
+ ldr r1, _080E7178 @ =0x02001000
+ ldrh r0, [r1, 0x24]
+ adds r0, 0x1
+ strh r0, [r1, 0x24]
+ b _080E7182
+ .align 2, 0
+_080E7178: .4byte 0x02001000
+_080E717C:
+ ldr r0, _080E7188 @ =sub_80E6AC4
+ bl sub_80E682C
+_080E7182:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E7188: .4byte sub_80E6AC4
+ thumb_func_end sub_80E7114
+
+ thumb_func_start sub_80E718C
+sub_80E718C: @ 80E718C
+ push {r4,lr}
+ ldr r0, _080E71A4 @ =0x02001000
+ ldrh r1, [r0, 0x24]
+ adds r4, r0, 0
+ cmp r1, 0x1
+ beq _080E71C6
+ cmp r1, 0x1
+ bgt _080E71A8
+ cmp r1, 0
+ beq _080E71AE
+ b _080E71EC
+ .align 2, 0
+_080E71A4: .4byte 0x02001000
+_080E71A8:
+ cmp r1, 0x8
+ beq _080E71F4
+ b _080E71EC
+_080E71AE:
+ bl sub_80E8504
+ bl sub_80E9E98
+ bl sub_80E88F0
+ ldrh r0, [r4, 0x24]
+ adds r0, 0x1
+ strh r0, [r4, 0x24]
+ bl sub_80E8D54
+ b _080E720E
+_080E71C6:
+ bl sub_80E9FD4
+ lsls r0, 24
+ cmp r0, 0
+ beq _080E720E
+ movs r2, 0
+ adds r1, r4, 0
+ adds r1, 0x26
+ ldrb r0, [r1]
+ cmp r0, 0
+ bne _080E71DE
+ movs r2, 0x1
+_080E71DE:
+ strb r2, [r1]
+ bl sub_80E683C
+ bl sub_80E9974
+ bl sub_80E9E98
+_080E71EC:
+ ldrh r0, [r4, 0x24]
+ adds r0, 0x1
+ strh r0, [r4, 0x24]
+ b _080E720E
+_080E71F4:
+ bl sub_80EA014
+ lsls r0, 24
+ cmp r0, 0
+ beq _080E720E
+ bl sub_80E8420
+ movs r0, 0
+ bl sub_80E8958
+ ldr r0, _080E7214 @ =sub_80E6FC8
+ bl sub_80E682C
+_080E720E:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E7214: .4byte sub_80E6FC8
+ thumb_func_end sub_80E718C
+
+ thumb_func_start sub_80E7218
+sub_80E7218: @ 80E7218
+ push {r4,lr}
+ ldr r4, _080E7230 @ =0x02001000
+ ldrh r0, [r4, 0x24]
+ adds r1, r4, 0
+ cmp r0, 0x9
+ beq _080E7260
+ cmp r0, 0x9
+ bgt _080E7234
+ cmp r0, 0x8
+ beq _080E7244
+ b _080E723C
+ .align 2, 0
+_080E7230: .4byte 0x02001000
+_080E7234:
+ cmp r0, 0xA
+ beq _080E7276
+ cmp r0, 0xB
+ beq _080E7288
+_080E723C:
+ ldrh r0, [r1, 0x24]
+ adds r0, 0x1
+ strh r0, [r1, 0x24]
+ b _080E7288
+_080E7244:
+ movs r0, 0
+ bl sub_80E8D8C
+ bl sub_80E8504
+ bl sub_80E9AD4
+ bl sub_80E68E8
+ bl sub_80E88F0
+ bl sub_80E9E98
+ b _080E726E
+_080E7260:
+ bl sub_80EA050
+ lsls r0, 24
+ cmp r0, 0
+ beq _080E7288
+ bl sub_80E9C94
+_080E726E:
+ ldrh r0, [r4, 0x24]
+ adds r0, 0x1
+ strh r0, [r4, 0x24]
+ b _080E7288
+_080E7276:
+ movs r0, 0x1
+ bl sub_80E87CC
+ movs r0, 0x1
+ bl sub_80E8958
+ ldr r0, _080E7290 @ =sub_80E7294
+ bl sub_80E682C
+_080E7288:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E7290: .4byte sub_80E7294
+ thumb_func_end sub_80E7218
+
+ thumb_func_start sub_80E7294
+sub_80E7294: @ 80E7294
+ push {r4,lr}
+ bl sub_80E7B40
+ adds r1, r0, 0
+ ldr r4, _080E72CC @ =0x02001000
+ ldr r2, _080E72D0 @ =0x000001b9
+ adds r0, r4, r2
+ strb r1, [r0]
+ adds r2, 0x7
+ adds r0, r4, r2
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ cmp r0, 0
+ beq _080E72DC
+ movs r0, 0x5
+ bl PlaySE
+ movs r1, 0xE2
+ lsls r1, 1
+ adds r0, r4, r1
+ ldr r1, _080E72D4 @ =sub_80E7294
+ str r1, [r0]
+ ldr r0, _080E72D8 @ =sub_80E7458
+ bl sub_80E682C
+ b _080E731A
+ .align 2, 0
+_080E72CC: .4byte 0x02001000
+_080E72D0: .4byte 0x000001b9
+_080E72D4: .4byte sub_80E7294
+_080E72D8: .4byte sub_80E7458
+_080E72DC:
+ lsls r0, r1, 24
+ cmp r0, 0
+ beq _080E72E8
+ movs r0, 0x5
+ bl PlaySE
+_080E72E8:
+ ldr r0, _080E7304 @ =gMain
+ ldrh r1, [r0, 0x2E]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _080E730C
+ movs r0, 0x5
+ bl PlaySE
+ ldr r0, _080E7308 @ =sub_80E7324
+ bl sub_80E682C
+ b _080E731A
+ .align 2, 0
+_080E7304: .4byte gMain
+_080E7308: .4byte sub_80E7324
+_080E730C:
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _080E731A
+ ldr r0, _080E7320 @ =sub_80E73D0
+ bl sub_80E682C
+_080E731A:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E7320: .4byte sub_80E73D0
+ thumb_func_end sub_80E7294
+
+ thumb_func_start sub_80E7324
+sub_80E7324: @ 80E7324
+ push {lr}
+ ldr r0, _080E733C @ =0x02001000
+ ldrh r1, [r0, 0x24]
+ adds r2, r0, 0
+ cmp r1, 0x4
+ bhi _080E73C6
+ lsls r0, r1, 2
+ ldr r1, _080E7340 @ =_080E7344
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080E733C: .4byte 0x02001000
+_080E7340: .4byte _080E7344
+ .align 2, 0
+_080E7344:
+ .4byte _080E7358
+ .4byte _080E737C
+ .4byte _080E7384
+ .4byte _080E738A
+ .4byte _080E73A4
+_080E7358:
+ bl sub_80E7DD0
+ lsls r0, 24
+ cmp r0, 0
+ bne _080E7370
+ ldr r0, _080E736C @ =sub_80E7294
+ bl sub_80E682C
+ b _080E73C6
+ .align 2, 0
+_080E736C: .4byte sub_80E7294
+_080E7370:
+ bl sub_80E88F0
+ movs r0, 0
+ bl sub_80E87CC
+ b _080E7394
+_080E737C:
+ ldrh r0, [r2, 0x24]
+ adds r0, 0x1
+ strh r0, [r2, 0x24]
+ b _080E73C6
+_080E7384:
+ bl sub_80E9E98
+ b _080E7394
+_080E738A:
+ bl sub_80EA184
+ lsls r0, 24
+ cmp r0, 0
+ beq _080E73C6
+_080E7394:
+ ldr r1, _080E73A0 @ =0x02001000
+ ldrh r0, [r1, 0x24]
+ adds r0, 0x1
+ strh r0, [r1, 0x24]
+ b _080E73C6
+ .align 2, 0
+_080E73A0: .4byte 0x02001000
+_080E73A4:
+ ldrb r0, [r2, 0x8]
+ cmp r0, 0x6
+ bne _080E73C0
+ bl sub_80E7FA8
+ lsls r0, 24
+ cmp r0, 0
+ beq _080E73C0
+ ldr r0, _080E73BC @ =sub_80E6D7C
+ bl sub_80E682C
+ b _080E73C6
+ .align 2, 0
+_080E73BC: .4byte sub_80E6D7C
+_080E73C0:
+ ldr r0, _080E73CC @ =sub_80E6AC4
+ bl sub_80E682C
+_080E73C6:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E73CC: .4byte sub_80E6AC4
+ thumb_func_end sub_80E7324
+
+ thumb_func_start sub_80E73D0
+sub_80E73D0: @ 80E73D0
+ push {lr}
+ ldr r0, _080E73E4 @ =0x02001000
+ ldrh r0, [r0, 0x24]
+ cmp r0, 0x4
+ bhi _080E744E
+ lsls r0, 2
+ ldr r1, _080E73E8 @ =_080E73EC
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080E73E4: .4byte 0x02001000
+_080E73E8: .4byte _080E73EC
+ .align 2, 0
+_080E73EC:
+ .4byte _080E7400
+ .4byte _080E740C
+ .4byte _080E7416
+ .4byte _080E742C
+ .4byte _080E7444
+_080E7400:
+ movs r0, 0
+ bl sub_80E87CC
+ bl sub_80E88F0
+ b _080E7436
+_080E740C:
+ bl sub_80E9AD4
+ bl sub_80E9E98
+ b _080E7436
+_080E7416:
+ bl sub_80EA0E4
+ lsls r0, 24
+ cmp r0, 0
+ beq _080E744E
+ movs r0, 0x1
+ bl sub_80E8D8C
+ bl sub_80E9A14
+ b _080E7436
+_080E742C:
+ bl sub_80E8420
+ movs r0, 0
+ bl sub_80E8958
+_080E7436:
+ ldr r1, _080E7440 @ =0x02001000
+ ldrh r0, [r1, 0x24]
+ adds r0, 0x1
+ strh r0, [r1, 0x24]
+ b _080E744E
+ .align 2, 0
+_080E7440: .4byte 0x02001000
+_080E7444:
+ bl sub_80E9974
+ ldr r0, _080E7454 @ =sub_80E6FC8
+ bl sub_80E682C
+_080E744E:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E7454: .4byte sub_80E6FC8
+ thumb_func_end sub_80E73D0
+
+ thumb_func_start sub_80E7458
+sub_80E7458: @ 80E7458
+ push {r4,r5,lr}
+ ldr r4, _080E7468 @ =0x02001000
+ ldrh r5, [r4, 0x24]
+ cmp r5, 0
+ beq _080E746C
+ cmp r5, 0x1
+ beq _080E74A4
+ b _080E7518
+ .align 2, 0
+_080E7468: .4byte 0x02001000
+_080E746C:
+ movs r1, 0xE2
+ lsls r1, 1
+ adds r0, r4, r1
+ ldr r1, [r0]
+ ldr r0, _080E7480 @ =sub_80E6FC8
+ cmp r1, r0
+ bne _080E7484
+ bl sub_80E9D7C
+ b _080E7488
+ .align 2, 0
+_080E7480: .4byte sub_80E6FC8
+_080E7484:
+ bl sub_80E9D00
+_080E7488:
+ ldr r4, _080E74A0 @ =0x02001000
+ movs r2, 0xDF
+ lsls r2, 1
+ adds r0, r4, r2
+ ldrb r0, [r0]
+ bl sub_80E9E08
+ ldrh r0, [r4, 0x24]
+ adds r0, 0x1
+ strh r0, [r4, 0x24]
+ b _080E7518
+ .align 2, 0
+_080E74A0: .4byte 0x02001000
+_080E74A4:
+ bl sub_80E9E54
+ lsls r0, 24
+ cmp r0, 0
+ beq _080E7518
+ movs r1, 0xE2
+ lsls r1, 1
+ adds r0, r4, r1
+ ldr r1, [r0]
+ ldr r0, _080E74DC @ =sub_80E6FC8
+ cmp r1, r0
+ bne _080E74E4
+ bl sub_80E9D7C
+ ldr r2, _080E74E0 @ =0x000001b5
+ adds r1, r4, r2
+ adds r2, 0xB
+ adds r0, r4, r2
+ ldrb r0, [r0]
+ ldrb r2, [r1]
+ adds r0, r2
+ strb r0, [r1]
+ bl sub_80E7A98
+ adds r0, r4, 0
+ adds r0, 0x96
+ b _080E74FE
+ .align 2, 0
+_080E74DC: .4byte sub_80E6FC8
+_080E74E0: .4byte 0x000001b5
+_080E74E4:
+ ldr r0, _080E7520 @ =0x00009d55
+ adds r1, r4, r0
+ movs r2, 0xE0
+ lsls r2, 1
+ adds r0, r4, r2
+ ldrb r0, [r0]
+ ldrb r2, [r1]
+ adds r0, r2
+ strb r0, [r1]
+ bl sub_80E7D30
+ ldr r1, _080E7524 @ =0x000001b9
+ adds r0, r4, r1
+_080E74FE:
+ strb r5, [r0]
+ ldr r1, _080E7528 @ =0x02001000
+ movs r0, 0xDF
+ lsls r0, 1
+ adds r2, r1, r0
+ movs r0, 0x2
+ strb r0, [r2]
+ movs r2, 0xE2
+ lsls r2, 1
+ adds r0, r1, r2
+ ldr r0, [r0]
+ bl sub_80E682C
+_080E7518:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E7520: .4byte 0x00009d55
+_080E7524: .4byte 0x000001b9
+_080E7528: .4byte 0x02001000
+ thumb_func_end sub_80E7458
+
+ thumb_func_start sub_80E752C
+sub_80E752C: @ 80E752C
+ push {r4,lr}
+ sub sp, 0x4
+ ldr r4, _080E7540 @ =0x02001000
+ ldrh r1, [r4, 0x24]
+ cmp r1, 0
+ beq _080E7544
+ cmp r1, 0x1
+ beq _080E755C
+ b _080E756C
+ .align 2, 0
+_080E7540: .4byte 0x02001000
+_080E7544:
+ movs r0, 0x1
+ negs r0, r0
+ str r1, [sp]
+ movs r1, 0
+ movs r2, 0
+ movs r3, 0x10
+ bl BeginNormalPaletteFade
+ ldrh r0, [r4, 0x24]
+ adds r0, 0x1
+ strh r0, [r4, 0x24]
+ b _080E756C
+_080E755C:
+ bl UpdatePaletteFade
+ lsls r0, 24
+ cmp r0, 0
+ bne _080E756C
+ ldr r0, [r4]
+ bl SetMainCallback2
+_080E756C:
+ add sp, 0x4
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80E752C
+
+ thumb_func_start sub_80E7574
+sub_80E7574: @ 80E7574
+ push {r4,r5,lr}
+ ldr r4, _080E75B8 @ =0x02001000
+ ldrb r5, [r4, 0x8]
+ cmp r5, 0x1
+ bne _080E75BC
+ adds r0, r4, 0
+ adds r0, 0x86
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ adds r1, r4, 0
+ adds r1, 0x7E
+ adds r0, r1
+ ldrb r0, [r0]
+ cmp r0, 0x2
+ bne _080E75BC
+ adds r0, r4, 0
+ adds r0, 0x27
+ ldrb r0, [r0]
+ lsls r0, 1
+ subs r1, 0x72
+ adds r0, r1
+ ldrh r0, [r0]
+ bl sub_80EB2D4
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0x7
+ beq _080E75BC
+ adds r0, r4, 0
+ adds r0, 0x7D
+ strb r5, [r0]
+ adds r1, r4, 0
+ b _080E75C6
+ .align 2, 0
+_080E75B8: .4byte 0x02001000
+_080E75BC:
+ ldr r1, _080E75D4 @ =0x02001000
+ adds r2, r1, 0
+ adds r2, 0x7D
+ movs r0, 0
+ strb r0, [r2]
+_080E75C6:
+ adds r1, 0x7D
+ movs r0, 0
+ strb r0, [r1]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E75D4: .4byte 0x02001000
+ thumb_func_end sub_80E7574
+
+ thumb_func_start sub_80E75D8
+sub_80E75D8: @ 80E75D8
+ push {r4-r6,lr}
+ movs r4, 0
+ ldr r2, _080E75FC @ =gMain
+ ldrh r1, [r2, 0x2E]
+ movs r0, 0x8
+ ands r0, r1
+ cmp r0, 0
+ beq _080E7604
+ ldr r1, _080E7600 @ =0x02001000
+ adds r0, r1, 0
+ adds r0, 0x84
+ ldrb r0, [r0]
+ adds r2, r1, 0
+ adds r2, 0x86
+ strb r0, [r2]
+ adds r1, 0x85
+ movs r0, 0x2
+ b _080E768E
+ .align 2, 0
+_080E75FC: .4byte gMain
+_080E7600: .4byte 0x02001000
+_080E7604:
+ ldrh r1, [r2, 0x30]
+ movs r0, 0x40
+ ands r0, r1
+ cmp r0, 0
+ beq _080E7630
+ ldr r2, _080E762C @ =0x02001000
+ adds r1, r2, 0
+ adds r1, 0x86
+ ldrb r0, [r1]
+ subs r0, 0x1
+ strb r0, [r1]
+ lsls r0, 24
+ cmp r0, 0
+ bge _080E765C
+ adds r0, r2, 0
+ adds r0, 0x84
+ ldrb r0, [r0]
+ strb r0, [r1]
+ b _080E765C
+ .align 2, 0
+_080E762C: .4byte 0x02001000
+_080E7630:
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ beq _080E7658
+ ldr r0, _080E7684 @ =0x02001000
+ adds r3, r0, 0
+ adds r3, 0x86
+ ldrb r1, [r3]
+ adds r1, 0x1
+ strb r1, [r3]
+ adds r0, 0x84
+ lsls r1, 24
+ asrs r1, 24
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ cmp r1, r0
+ ble _080E7656
+ strb r4, [r3]
+_080E7656:
+ movs r4, 0x1
+_080E7658:
+ cmp r4, 0
+ beq _080E76EA
+_080E765C:
+ ldr r2, _080E7684 @ =0x02001000
+ ldrb r3, [r2, 0x9]
+ cmp r3, 0x2
+ bne _080E7692
+ adds r1, r2, 0
+ adds r1, 0x86
+ adds r0, r2, 0
+ adds r0, 0x84
+ ldrb r1, [r1]
+ lsls r1, 24
+ asrs r1, 24
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ cmp r1, r0
+ bne _080E7688
+ adds r0, r2, 0
+ adds r0, 0x85
+ strb r3, [r0]
+ b _080E77BC
+ .align 2, 0
+_080E7684: .4byte 0x02001000
+_080E7688:
+ adds r1, r2, 0
+ adds r1, 0x85
+ movs r0, 0
+_080E768E:
+ strb r0, [r1]
+ b _080E77BC
+_080E7692:
+ movs r0, 0x85
+ adds r0, r2
+ mov r12, r0
+ adds r4, r2, 0
+ adds r4, 0x83
+ movs r1, 0
+ ldrsb r1, [r0, r1]
+ ldrb r3, [r4]
+ movs r0, 0
+ ldrsb r0, [r4, r0]
+ cmp r1, r0
+ blt _080E76B0
+ subs r0, r3, 0x1
+ mov r1, r12
+ strb r0, [r1]
+_080E76B0:
+ adds r1, r2, 0
+ adds r1, 0x86
+ adds r0, r2, 0
+ adds r0, 0x84
+ ldrb r3, [r1]
+ ldrb r1, [r1]
+ lsls r1, 24
+ asrs r1, 24
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ cmp r1, r0
+ beq _080E77BC
+ ldrb r0, [r4]
+ adds r4, r0, 0
+ muls r4, r3
+ adds r0, r4, 0
+ mov r5, r12
+ ldrb r5, [r5]
+ adds r0, r5
+ lsls r0, 24
+ lsrs r0, 24
+ ldrb r1, [r2, 0xA]
+ cmp r0, r1
+ bcc _080E77BC
+ subs r0, r1
+ mov r6, r12
+ strb r0, [r6]
+ b _080E77BC
+_080E76EA:
+ ldrh r2, [r2, 0x30]
+ movs r0, 0x20
+ ands r0, r2
+ lsls r0, 16
+ lsrs r4, r0, 16
+ cmp r4, 0
+ beq _080E7744
+ ldr r2, _080E7728 @ =0x02001000
+ adds r3, r2, 0
+ adds r3, 0x85
+ ldrb r0, [r3]
+ subs r0, 0x1
+ strb r0, [r3]
+ lsls r0, 24
+ cmp r0, 0
+ bge _080E77BC
+ adds r1, r2, 0
+ adds r1, 0x86
+ adds r0, r2, 0
+ adds r0, 0x84
+ ldrb r4, [r1]
+ ldrb r1, [r1]
+ lsls r1, 24
+ asrs r1, 24
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ cmp r1, r0
+ bne _080E772C
+ movs r0, 0x2
+ b _080E77BA
+ .align 2, 0
+_080E7728: .4byte 0x02001000
+_080E772C:
+ adds r0, r2, 0
+ adds r0, 0x83
+ ldrb r0, [r0]
+ subs r1, r0, 0x1
+ strb r1, [r3]
+ adds r5, r4, 0
+ muls r5, r0
+ adds r0, r5, 0
+ adds r1, r0
+ lsls r1, 24
+ lsrs r0, r1, 24
+ b _080E77B2
+_080E7744:
+ movs r0, 0x10
+ ands r0, r2
+ cmp r0, 0
+ beq _080E77C0
+ ldr r2, _080E777C @ =0x02001000
+ adds r5, r2, 0
+ adds r5, 0x86
+ adds r0, r2, 0
+ adds r0, 0x84
+ movs r1, 0
+ ldrsb r1, [r5, r1]
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ cmp r1, r0
+ bne _080E7780
+ adds r1, r2, 0
+ adds r1, 0x85
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+ lsls r0, 24
+ asrs r0, 24
+ cmp r0, 0x2
+ ble _080E77BC
+ strb r4, [r1]
+ b _080E77BC
+ .align 2, 0
+_080E777C: .4byte 0x02001000
+_080E7780:
+ adds r3, r2, 0
+ adds r3, 0x85
+ ldrb r0, [r3]
+ adds r0, 0x1
+ strb r0, [r3]
+ movs r6, 0x83
+ adds r6, r2
+ mov r12, r6
+ lsls r0, 24
+ asrs r0, 24
+ movs r1, 0
+ ldrsb r1, [r6, r1]
+ cmp r0, r1
+ blt _080E779E
+ strb r4, [r3]
+_080E779E:
+ ldrb r1, [r5]
+ mov r4, r12
+ ldrb r0, [r4]
+ adds r5, r0, 0
+ muls r5, r1
+ adds r0, r5, 0
+ ldrb r6, [r3]
+ adds r0, r6
+ lsls r0, 24
+ lsrs r0, 24
+_080E77B2:
+ ldrb r1, [r2, 0xA]
+ cmp r0, r1
+ bcc _080E77BC
+ subs r0, r1
+_080E77BA:
+ strb r0, [r3]
+_080E77BC:
+ movs r0, 0x1
+ b _080E77C2
+_080E77C0:
+ movs r0, 0
+_080E77C2:
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80E75D8
+
+ thumb_func_start sub_80E77C8
+sub_80E77C8: @ 80E77C8
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ movs r7, 0
+ ldr r1, _080E780C @ =0x02001000
+ ldr r2, _080E7810 @ =0x000001b7
+ adds r0, r1, r2
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ adds r3, r1, 0
+ cmp r0, 0
+ beq _080E783E
+ ldr r1, _080E7814 @ =gMain
+ ldrh r2, [r1, 0x30]
+ movs r0, 0x40
+ ands r0, r2
+ adds r6, r1, 0
+ cmp r0, 0
+ beq _080E7818
+ movs r4, 0xD4
+ lsls r4, 1
+ adds r1, r3, r4
+ ldrb r0, [r1]
+ subs r0, 0x1
+ strb r0, [r1]
+ lsls r0, 24
+ cmp r0, 0
+ ble _080E7806
+ b _080E7948
+_080E7806:
+ movs r0, 0x3
+ strb r0, [r1]
+ b _080E7948
+ .align 2, 0
+_080E780C: .4byte 0x02001000
+_080E7810: .4byte 0x000001b7
+_080E7814: .4byte gMain
+_080E7818:
+ movs r0, 0x80
+ ands r0, r2
+ cmp r0, 0
+ bne _080E7822
+ b _080E7950
+_080E7822:
+ movs r5, 0xD4
+ lsls r5, 1
+ adds r1, r3, r5
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+ lsls r0, 24
+ asrs r0, 24
+ cmp r0, 0x3
+ bgt _080E7838
+ b _080E7948
+_080E7838:
+ movs r0, 0x1
+ strb r0, [r1]
+ b _080E7948
+_080E783E:
+ adds r0, r3, 0
+ adds r0, 0x26
+ ldrb r0, [r0]
+ cmp r0, 0x1
+ bne _080E789A
+ movs r4, 0
+ ldr r1, _080E7870 @ =gMain
+ ldrh r2, [r1, 0x30]
+ movs r0, 0x40
+ ands r0, r2
+ adds r6, r1, 0
+ cmp r0, 0
+ beq _080E7874
+ movs r6, 0xD4
+ lsls r6, 1
+ adds r1, r3, r6
+ ldrb r0, [r1]
+ subs r0, 0x1
+ strb r0, [r1]
+ lsls r0, 24
+ cmp r0, 0
+ bge _080E7944
+ movs r0, 0x3
+ strb r0, [r1]
+ b _080E7944
+ .align 2, 0
+_080E7870: .4byte gMain
+_080E7874:
+ movs r0, 0x80
+ ands r0, r2
+ cmp r0, 0
+ beq _080E7894
+ movs r0, 0xD4
+ lsls r0, 1
+ adds r1, r3, r0
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+ lsls r0, 24
+ asrs r0, 24
+ cmp r0, 0x3
+ ble _080E7892
+ strb r7, [r1]
+_080E7892:
+ movs r4, 0x1
+_080E7894:
+ cmp r4, 0
+ beq _080E7950
+ b _080E7944
+_080E789A:
+ movs r4, 0
+ movs r1, 0xE0
+ lsls r1, 1
+ adds r5, r3, r1
+ strb r7, [r5]
+ ldr r1, _080E78E0 @ =gMain
+ ldrh r2, [r1, 0x30]
+ movs r0, 0x40
+ ands r0, r2
+ adds r6, r1, 0
+ cmp r0, 0
+ beq _080E78E8
+ movs r2, 0xD4
+ lsls r2, 1
+ adds r1, r3, r2
+ ldrb r2, [r1]
+ movs r0, 0
+ ldrsb r0, [r1, r0]
+ cmp r0, 0
+ bne _080E78C4
+ b _080E7A88
+_080E78C4:
+ subs r0, r2, 0x1
+ strb r0, [r1]
+ ldr r4, _080E78E4 @ =0x000001b5
+ adds r1, r3, r4
+ lsls r0, 24
+ asrs r0, 24
+ ldrb r1, [r1]
+ lsls r1, 24
+ asrs r1, 24
+ cmp r0, r1
+ bge _080E7932
+ movs r0, 0xFF
+ strb r0, [r5]
+ b _080E7932
+ .align 2, 0
+_080E78E0: .4byte gMain
+_080E78E4: .4byte 0x000001b5
+_080E78E8:
+ movs r0, 0x80
+ ands r0, r2
+ cmp r0, 0
+ beq _080E792E
+ movs r0, 0xD4
+ lsls r0, 1
+ adds r2, r3, r0
+ movs r1, 0
+ ldrsb r1, [r2, r1]
+ movs r4, 0xDB
+ lsls r4, 1
+ adds r0, r3, r4
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ subs r0, 0x1
+ cmp r1, r0
+ blt _080E790E
+ b _080E7A88
+_080E790E:
+ ldrb r0, [r2]
+ adds r0, 0x1
+ strb r0, [r2]
+ movs r1, 0
+ ldrsb r1, [r2, r1]
+ ldr r2, _080E794C @ =0x000001b5
+ adds r0, r3, r2
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ adds r0, 0x3
+ cmp r1, r0
+ ble _080E792C
+ movs r0, 0x1
+ strb r0, [r5]
+_080E792C:
+ movs r4, 0x1
+_080E792E:
+ cmp r4, 0
+ beq _080E7950
+_080E7932:
+ movs r4, 0xE0
+ lsls r4, 1
+ adds r0, r3, r4
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ cmp r0, 0
+ beq _080E7944
+ b _080E7A88
+_080E7944:
+ bl sub_80E7A98
+_080E7948:
+ movs r0, 0x1
+ b _080E7A8A
+ .align 2, 0
+_080E794C: .4byte 0x000001b5
+_080E7950:
+ ldrh r1, [r6, 0x30]
+ movs r0, 0x20
+ ands r0, r1
+ lsls r0, 16
+ lsrs r6, r0, 16
+ cmp r6, 0
+ beq _080E7992
+ ldr r5, _080E7974 @ =0x000001a9
+ adds r2, r3, r5
+ ldrb r1, [r2]
+ movs r0, 0
+ ldrsb r0, [r2, r0]
+ cmp r0, 0
+ beq _080E7978
+ subs r0, r1, 0x1
+ strb r0, [r2]
+ b _080E79E6
+ .align 2, 0
+_080E7974: .4byte 0x000001a9
+_080E7978:
+ movs r6, 0xD4
+ lsls r6, 1
+ adds r0, r3, r6
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ movs r4, 0xD5
+ lsls r4, 1
+ adds r1, r3, r4
+ adds r0, r1
+ ldrb r0, [r0]
+ strb r0, [r2]
+ b _080E79E6
+_080E7992:
+ movs r0, 0x10
+ ands r0, r1
+ cmp r0, 0
+ beq _080E79E2
+ ldr r5, _080E79D4 @ =0x000001b7
+ adds r0, r3, r5
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ cmp r0, 0
+ bne _080E79CC
+ ldr r0, _080E79D8 @ =0x000001a9
+ adds r4, r3, r0
+ movs r1, 0xD4
+ lsls r1, 1
+ adds r0, r3, r1
+ movs r1, 0
+ ldrsb r1, [r0, r1]
+ movs r2, 0xD5
+ lsls r2, 1
+ adds r0, r3, r2
+ adds r1, r0
+ ldrb r5, [r4]
+ movs r2, 0
+ ldrsb r2, [r4, r2]
+ movs r0, 0
+ ldrsb r0, [r1, r0]
+ cmp r2, r0
+ bne _080E79DC
+_080E79CC:
+ ldr r4, _080E79D8 @ =0x000001a9
+ adds r0, r3, r4
+ strb r6, [r0]
+ b _080E79E0
+ .align 2, 0
+_080E79D4: .4byte 0x000001b7
+_080E79D8: .4byte 0x000001a9
+_080E79DC:
+ adds r0, r5, 0x1
+ strb r0, [r4]
+_080E79E0:
+ movs r7, 0x1
+_080E79E2:
+ cmp r7, 0
+ beq _080E7A88
+_080E79E6:
+ adds r2, r3, 0
+ ldr r5, _080E7A48 @ =0x000001b7
+ adds r7, r2, r5
+ ldrb r6, [r7]
+ mov r9, r6
+ movs r1, 0
+ ldr r0, _080E7A4C @ =0x000001a9
+ adds r0, r2
+ mov r12, r0
+ subs r5, 0xF
+ adds r4, r2, r5
+ movs r0, 0
+ ldrsb r0, [r4, r0]
+ movs r6, 0xD5
+ lsls r6, 1
+ adds r6, r2
+ mov r8, r6
+ add r0, r8
+ mov r6, r12
+ movs r5, 0
+ ldrsb r5, [r6, r5]
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ cmp r5, r0
+ bne _080E7A1C
+ movs r1, 0x1
+_080E7A1C:
+ strb r1, [r7]
+ cmp r1, 0
+ beq _080E7A58
+ ldr r0, _080E7A50 @ =0x000001b5
+ adds r1, r2, r0
+ ldrb r0, [r4]
+ ldrb r1, [r1]
+ subs r0, r1
+ strb r0, [r4]
+ lsls r0, 24
+ cmp r0, 0
+ beq _080E7A36
+ b _080E7948
+_080E7A36:
+ movs r0, 0x1
+ strb r0, [r4]
+ ldr r1, _080E7A54 @ =0x000001ab
+ adds r0, r2, r1
+ ldrb r0, [r0]
+ mov r2, r12
+ strb r0, [r2]
+ b _080E7948
+ .align 2, 0
+_080E7A48: .4byte 0x000001b7
+_080E7A4C: .4byte 0x000001a9
+_080E7A50: .4byte 0x000001b5
+_080E7A54: .4byte 0x000001ab
+_080E7A58:
+ mov r6, r9
+ cmp r6, 0
+ bne _080E7A60
+ b _080E7948
+_080E7A60:
+ ldr r1, _080E7A84 @ =0x000001b5
+ adds r0, r3, r1
+ ldrb r0, [r0]
+ ldrb r2, [r4]
+ adds r0, r2
+ strb r0, [r4]
+ cmp r5, 0
+ bne _080E7A72
+ b _080E7948
+_080E7A72:
+ movs r0, 0
+ ldrsb r0, [r4, r0]
+ add r0, r8
+ ldrb r0, [r0]
+ subs r0, 0x1
+ mov r4, r12
+ strb r0, [r4]
+ b _080E7948
+ .align 2, 0
+_080E7A84: .4byte 0x000001b5
+_080E7A88:
+ movs r0, 0
+_080E7A8A:
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80E77C8
+
+ thumb_func_start sub_80E7A98
+sub_80E7A98: @ 80E7A98
+ push {lr}
+ ldr r1, _080E7ACC @ =0x02001000
+ ldr r0, _080E7AD0 @ =0x000001a9
+ adds r3, r1, r0
+ movs r2, 0xD4
+ lsls r2, 1
+ adds r0, r1, r2
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ adds r2, 0x2
+ adds r1, r2
+ adds r0, r1
+ movs r1, 0
+ ldrsb r1, [r3, r1]
+ ldrb r2, [r0]
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ cmp r1, r0
+ blt _080E7AC6
+ subs r0, r2, 0x1
+ strb r0, [r3]
+_080E7AC6:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E7ACC: .4byte 0x02001000
+_080E7AD0: .4byte 0x000001a9
+ thumb_func_end sub_80E7A98
+
+ thumb_func_start sub_80E7AD4
+sub_80E7AD4: @ 80E7AD4
+ push {lr}
+ ldr r3, _080E7B08 @ =0x02001000
+ adds r0, r3, 0
+ adds r0, 0x26
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _080E7B10
+ ldr r1, _080E7B0C @ =0x000001a9
+ adds r0, r3, r1
+ movs r1, 0
+ ldrsb r1, [r0, r1]
+ movs r2, 0xD4
+ lsls r2, 1
+ adds r0, r3, r2
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ lsls r0, 1
+ adds r1, r0
+ adds r0, r3, 0
+ adds r0, 0x2A
+ adds r1, r0
+ ldrb r1, [r1]
+ adds r2, 0x10
+ b _080E7B34
+ .align 2, 0
+_080E7B08: .4byte 0x02001000
+_080E7B0C: .4byte 0x000001a9
+_080E7B10:
+ ldr r1, _080E7B3C @ =0x000001a9
+ adds r0, r3, r1
+ movs r2, 0
+ ldrsb r2, [r0, r2]
+ subs r1, 0x1
+ adds r0, r3, r1
+ movs r1, 0
+ ldrsb r1, [r0, r1]
+ lsls r0, r1, 3
+ subs r0, r1
+ lsls r0, 1
+ adds r2, r0
+ adds r0, r3, 0
+ adds r0, 0x40
+ adds r2, r0
+ ldrb r1, [r2]
+ movs r2, 0xDC
+ lsls r2, 1
+_080E7B34:
+ adds r0, r3, r2
+ strb r1, [r0]
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E7B3C: .4byte 0x000001a9
+ thumb_func_end sub_80E7AD4
+
+ thumb_func_start sub_80E7B40
+sub_80E7B40: @ 80E7B40
+ push {r4-r7,lr}
+ movs r5, 0
+ ldr r2, _080E7B8C @ =0x02001000
+ movs r0, 0xE0
+ lsls r0, 1
+ adds r6, r2, r0
+ strb r5, [r6]
+ ldr r1, _080E7B90 @ =gMain
+ ldrh r4, [r1, 0x30]
+ movs r0, 0x40
+ ands r0, r4
+ adds r3, r2, 0
+ adds r7, r1, 0
+ cmp r0, 0
+ beq _080E7B9C
+ ldr r2, _080E7B94 @ =0x00009cd0
+ adds r1, r3, r2
+ ldrb r2, [r1]
+ movs r0, 0
+ ldrsb r0, [r1, r0]
+ cmp r0, 0
+ bne _080E7B6E
+ b _080E7D1A
+_080E7B6E:
+ subs r0, r2, 0x1
+ strb r0, [r1]
+ ldr r4, _080E7B98 @ =0x00009d55
+ adds r1, r3, r4
+ lsls r0, 24
+ asrs r0, 24
+ ldrb r1, [r1]
+ lsls r1, 24
+ asrs r1, 24
+ cmp r0, r1
+ bge _080E7BF2
+ movs r0, 0xFF
+ strb r0, [r6]
+ b _080E7D1A
+ .align 2, 0
+_080E7B8C: .4byte 0x02001000
+_080E7B90: .4byte gMain
+_080E7B94: .4byte 0x00009cd0
+_080E7B98: .4byte 0x00009d55
+_080E7B9C:
+ movs r0, 0x80
+ ands r0, r4
+ cmp r0, 0
+ beq _080E7BEE
+ ldr r0, _080E7BE0 @ =0x00009cd0
+ adds r2, r3, r0
+ movs r1, 0
+ ldrsb r1, [r2, r1]
+ ldr r4, _080E7BE4 @ =0x00009d54
+ adds r0, r3, r4
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ subs r0, 0x1
+ cmp r1, r0
+ blt _080E7BBE
+ b _080E7D1A
+_080E7BBE:
+ ldrb r0, [r2]
+ adds r0, 0x1
+ strb r0, [r2]
+ movs r1, 0
+ ldrsb r1, [r2, r1]
+ ldr r2, _080E7BE8 @ =0x00009d55
+ adds r0, r3, r2
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ adds r0, 0x4
+ cmp r1, r0
+ blt _080E7BEC
+ movs r0, 0x1
+ strb r0, [r6]
+ b _080E7D1A
+ .align 2, 0
+_080E7BE0: .4byte 0x00009cd0
+_080E7BE4: .4byte 0x00009d54
+_080E7BE8: .4byte 0x00009d55
+_080E7BEC:
+ movs r5, 0x1
+_080E7BEE:
+ cmp r5, 0
+ beq _080E7BFA
+_080E7BF2:
+ bl sub_80E7D30
+_080E7BF6:
+ movs r0, 0x1
+ b _080E7D1C
+_080E7BFA:
+ ldrh r1, [r7, 0x30]
+ movs r0, 0x20
+ ands r0, r1
+ lsls r0, 16
+ lsrs r5, r0, 16
+ cmp r5, 0
+ beq _080E7C38
+ ldr r4, _080E7C30 @ =0x00009cd1
+ adds r2, r3, r4
+ ldrb r0, [r2]
+ subs r0, 0x1
+ strb r0, [r2]
+ lsls r0, 24
+ cmp r0, 0
+ bge _080E7BF6
+ ldr r6, _080E7C34 @ =0x00009cd0
+ adds r0, r3, r6
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ adds r4, 0x1
+ adds r1, r3, r4
+ adds r0, r1
+ ldrb r0, [r0]
+ subs r0, 0x1
+ strb r0, [r2]
+ b _080E7BF6
+ .align 2, 0
+_080E7C30: .4byte 0x00009cd1
+_080E7C34: .4byte 0x00009cd0
+_080E7C38:
+ movs r0, 0x10
+ ands r0, r1
+ cmp r0, 0
+ beq _080E7C70
+ ldr r6, _080E7C68 @ =0x00009cd1
+ adds r4, r3, r6
+ ldrb r0, [r4]
+ adds r0, 0x1
+ strb r0, [r4]
+ ldr r2, _080E7C6C @ =0x00009cd0
+ adds r1, r3, r2
+ movs r2, 0
+ ldrsb r2, [r1, r2]
+ adds r6, 0x1
+ adds r1, r3, r6
+ adds r2, r1
+ lsls r0, 24
+ asrs r0, 24
+ movs r1, 0
+ ldrsb r1, [r2, r1]
+ cmp r0, r1
+ blt _080E7BF6
+ strb r5, [r4]
+ b _080E7BF6
+ .align 2, 0
+_080E7C68: .4byte 0x00009cd1
+_080E7C6C: .4byte 0x00009cd0
+_080E7C70:
+ ldrh r1, [r7, 0x2E]
+ movs r0, 0x8
+ ands r0, r1
+ cmp r0, 0
+ beq _080E7CC4
+ ldr r1, _080E7CBC @ =0x00009d55
+ adds r0, r3, r1
+ ldrb r1, [r0]
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ cmp r0, 0
+ beq _080E7CA2
+ negs r0, r1
+ movs r4, 0xE0
+ lsls r4, 1
+ adds r2, r3, r4
+ strb r0, [r2]
+ lsls r0, 24
+ asrs r0, 24
+ movs r1, 0x4
+ negs r1, r1
+ cmp r0, r1
+ bge _080E7CA2
+ strb r1, [r2]
+_080E7CA2:
+ ldr r6, _080E7CC0 @ =0x00009cd0
+ adds r1, r3, r6
+ movs r2, 0xE0
+ lsls r2, 1
+ adds r0, r3, r2
+ ldrb r0, [r0]
+ ldrb r4, [r1]
+ adds r0, r4
+ strb r0, [r1]
+ movs r6, 0xDF
+ lsls r6, 1
+ adds r1, r3, r6
+ b _080E7D16
+ .align 2, 0
+_080E7CBC: .4byte 0x00009d55
+_080E7CC0: .4byte 0x00009cd0
+_080E7CC4:
+ movs r0, 0x4
+ ands r0, r1
+ cmp r0, 0
+ beq _080E7D1A
+ ldr r0, _080E7D24 @ =0x00009d55
+ adds r4, r3, r0
+ movs r1, 0
+ ldrsb r1, [r4, r1]
+ ldr r6, _080E7D28 @ =0x00009d54
+ adds r2, r3, r6
+ movs r0, 0
+ ldrsb r0, [r2, r0]
+ subs r0, 0x4
+ cmp r1, r0
+ bge _080E7CFE
+ ldrb r1, [r4]
+ adds r1, 0x4
+ ldrb r0, [r2]
+ subs r0, r1
+ movs r2, 0xE0
+ lsls r2, 1
+ adds r1, r3, r2
+ strb r0, [r1]
+ lsls r0, 24
+ asrs r0, 24
+ cmp r0, 0x4
+ ble _080E7CFE
+ movs r0, 0x4
+ strb r0, [r1]
+_080E7CFE:
+ ldr r4, _080E7D2C @ =0x00009cd0
+ adds r1, r3, r4
+ movs r6, 0xE0
+ lsls r6, 1
+ adds r0, r3, r6
+ ldrb r0, [r0]
+ ldrb r2, [r1]
+ adds r0, r2
+ strb r0, [r1]
+ movs r4, 0xDF
+ lsls r4, 1
+ adds r1, r3, r4
+_080E7D16:
+ movs r0, 0x4
+ strb r0, [r1]
+_080E7D1A:
+ movs r0, 0
+_080E7D1C:
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080E7D24: .4byte 0x00009d55
+_080E7D28: .4byte 0x00009d54
+_080E7D2C: .4byte 0x00009cd0
+ thumb_func_end sub_80E7B40
+
+ thumb_func_start sub_80E7D30
+sub_80E7D30: @ 80E7D30
+ push {r4,lr}
+ ldr r0, _080E7D60 @ =0x02001000
+ ldr r1, _080E7D64 @ =0x00009cd1
+ adds r4, r0, r1
+ ldr r2, _080E7D68 @ =0x00009cd0
+ adds r1, r0, r2
+ ldrb r1, [r1]
+ lsls r1, 24
+ asrs r1, 24
+ adds r2, 0x2
+ adds r0, r2
+ adds r1, r0
+ movs r2, 0
+ ldrsb r2, [r4, r2]
+ ldrb r3, [r1]
+ movs r0, 0
+ ldrsb r0, [r1, r0]
+ cmp r2, r0
+ blt _080E7D5A
+ subs r0, r3, 0x1
+ strb r0, [r4]
+_080E7D5A:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E7D60: .4byte 0x02001000
+_080E7D64: .4byte 0x00009cd1
+_080E7D68: .4byte 0x00009cd0
+ thumb_func_end sub_80E7D30
+
+ thumb_func_start sub_80E7D6C
+sub_80E7D6C: @ 80E7D6C
+ push {r4,r5,lr}
+ movs r4, 0
+ ldr r0, _080E7D94 @ =0x02001000
+ ldrb r1, [r0, 0xA]
+ cmp r4, r1
+ bcs _080E7D8E
+ adds r5, r0, 0
+_080E7D7A:
+ adds r0, r4, 0
+ ldr r1, _080E7D98 @ =0x0000ffff
+ bl sub_80E7F00
+ adds r0, r4, 0x1
+ lsls r0, 16
+ lsrs r4, r0, 16
+ ldrb r0, [r5, 0xA]
+ cmp r4, r0
+ bcc _080E7D7A
+_080E7D8E:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E7D94: .4byte 0x02001000
+_080E7D98: .4byte 0x0000ffff
+ thumb_func_end sub_80E7D6C
+
+ thumb_func_start sub_80E7D9C
+sub_80E7D9C: @ 80E7D9C
+ push {r4,r5,lr}
+ movs r2, 0
+ ldr r0, _080E7DCC @ =0x02001000
+ ldrb r1, [r0, 0xA]
+ cmp r2, r1
+ bcs _080E7DC6
+ adds r3, r0, 0
+ ldr r4, [r3, 0x4]
+ adds r5, r3, 0
+ adds r5, 0xC
+_080E7DB0:
+ lsls r0, r2, 1
+ adds r1, r0, r4
+ adds r0, r5
+ ldrh r0, [r0]
+ strh r0, [r1]
+ adds r0, r2, 0x1
+ lsls r0, 16
+ lsrs r2, r0, 16
+ ldrb r0, [r3, 0xA]
+ cmp r2, r0
+ bcc _080E7DB0
+_080E7DC6:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E7DCC: .4byte 0x02001000
+ thumb_func_end sub_80E7D9C
+
+ thumb_func_start sub_80E7DD0
+sub_80E7DD0: @ 80E7DD0
+ push {r4,lr}
+ ldr r2, _080E7E28 @ =0x02001000
+ ldr r1, _080E7E2C @ =0x00009cd1
+ adds r0, r2, r1
+ movs r1, 0
+ ldrsb r1, [r0, r1]
+ lsls r1, 1
+ ldr r3, _080E7E30 @ =0x00009cd0
+ adds r0, r2, r3
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ lsls r0, 2
+ adds r1, r0
+ adds r3, 0x86
+ adds r0, r2, r3
+ adds r1, r0
+ ldrh r4, [r1]
+ adds r0, r2, 0
+ adds r0, 0x7D
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _080E7E34
+ adds r0, r2, 0
+ adds r0, 0x86
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ adds r1, r2, 0
+ adds r1, 0x7E
+ adds r0, r1
+ ldrb r0, [r0]
+ cmp r0, 0x1
+ bls _080E7E34
+ adds r0, r4, 0
+ bl sub_80EB2D4
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0x7
+ bne _080E7E34
+ movs r0, 0
+ b _080E7E46
+ .align 2, 0
+_080E7E28: .4byte 0x02001000
+_080E7E2C: .4byte 0x00009cd1
+_080E7E30: .4byte 0x00009cd0
+_080E7E34:
+ ldr r0, _080E7E4C @ =0x02001000
+ adds r0, 0x27
+ ldrb r0, [r0]
+ adds r1, r4, 0
+ bl sub_80E7F00
+ bl sub_80E95A4
+ movs r0, 0x1
+_080E7E46:
+ pop {r4}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080E7E4C: .4byte 0x02001000
+ thumb_func_end sub_80E7DD0
+
+ thumb_func_start sub_80E7E50
+sub_80E7E50: @ 80E7E50
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x8
+ movs r5, 0
+ movs r2, 0
+ ldr r1, _080E7EF0 @ =0x02001000
+ adds r3, r1, 0
+ adds r3, 0x84
+ movs r0, 0
+ ldrsb r0, [r3, r0]
+ cmp r2, r0
+ bge _080E7EDE
+ mov r8, r1
+ adds r0, r1, 0
+ str r0, [sp]
+_080E7E74:
+ mov r0, r8
+ adds r0, 0x7E
+ adds r0, r2, r0
+ movs r1, 0
+ strb r1, [r0]
+ movs r3, 0
+ ldr r6, _080E7EF4 @ =0x02001083
+ movs r0, 0
+ ldrsb r0, [r6, r0]
+ adds r1, r2, 0x1
+ str r1, [sp, 0x4]
+ cmp r3, r0
+ bge _080E7ECE
+ ldr r6, [sp]
+ mov r12, r6
+ movs r0, 0
+ mov r10, r0
+ ldr r1, _080E7EF4 @ =0x02001083
+ mov r9, r1
+ ldr r7, _080E7EF8 @ =0x0200100c
+ lsls r4, r2, 1
+_080E7E9E:
+ lsls r1, r5, 1
+ adds r2, r1, r7
+ mov r6, r12
+ ldr r0, [r6, 0x4]
+ adds r1, r0
+ ldrh r0, [r1]
+ strh r0, [r2]
+ adds r0, r3, r4
+ mov r1, r12
+ adds r1, 0x8C
+ adds r0, r1
+ mov r1, r10
+ strb r1, [r0]
+ adds r0, r5, 0x1
+ lsls r0, 16
+ lsrs r5, r0, 16
+ adds r0, r3, 0x1
+ lsls r0, 16
+ lsrs r3, r0, 16
+ mov r6, r9
+ movs r0, 0
+ ldrsb r0, [r6, r0]
+ cmp r3, r0
+ blt _080E7E9E
+_080E7ECE:
+ ldr r1, [sp, 0x4]
+ lsls r0, r1, 16
+ lsrs r2, r0, 16
+ ldr r6, _080E7EFC @ =0x02001084
+ movs r0, 0
+ ldrsb r0, [r6, r0]
+ cmp r2, r0
+ blt _080E7E74
+_080E7EDE:
+ add sp, 0x8
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E7EF0: .4byte 0x02001000
+_080E7EF4: .4byte 0x02001083
+_080E7EF8: .4byte 0x0200100c
+_080E7EFC: .4byte 0x02001084
+ thumb_func_end sub_80E7E50
+
+ thumb_func_start sub_80E7F00
+sub_80E7F00: @ 80E7F00
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ lsls r0, 16
+ lsrs r6, r0, 16
+ lsls r1, 16
+ lsrs r1, 16
+ mov r9, r1
+ ldr r7, _080E7F68 @ =0x02001000
+ adds r0, r7, 0
+ adds r0, 0x83
+ movs r4, 0
+ ldrsb r4, [r0, r4]
+ adds r0, r6, 0
+ adds r1, r4, 0
+ bl __divsi3
+ lsls r0, 16
+ lsrs r5, r0, 16
+ adds r0, r6, 0
+ adds r1, r4, 0
+ bl __modsi3
+ lsls r0, 16
+ lsrs r0, 16
+ mov r8, r0
+ lsls r0, r6, 1
+ adds r1, r7, 0
+ adds r1, 0xC
+ adds r0, r1
+ ldrh r0, [r0]
+ bl sub_80EB2D4
+ adds r4, r0, 0
+ lsls r4, 16
+ lsrs r4, 16
+ mov r0, r9
+ bl sub_80EB2D4
+ lsls r0, 16
+ lsrs r3, r0, 16
+ cmp r4, 0x7
+ bne _080E7F6C
+ cmp r3, 0x7
+ beq _080E7F7C
+ adds r1, r7, 0
+ adds r1, 0x7E
+ adds r1, r5, r1
+ ldrb r0, [r1]
+ subs r0, 0x1
+ b _080E7F7A
+ .align 2, 0
+_080E7F68: .4byte 0x02001000
+_080E7F6C:
+ cmp r3, 0x7
+ bne _080E7F7C
+ adds r1, r7, 0
+ adds r1, 0x7E
+ adds r1, r5, r1
+ ldrb r0, [r1]
+ adds r0, 0x1
+_080E7F7A:
+ strb r0, [r1]
+_080E7F7C:
+ movs r3, 0
+ ldr r2, _080E7FA4 @ =0x02001000
+ lsls r0, r5, 1
+ add r0, r8
+ adds r1, r2, 0
+ adds r1, 0x8C
+ adds r0, r1
+ strb r3, [r0]
+ lsls r0, r6, 1
+ adds r2, 0xC
+ adds r0, r2
+ mov r1, r9
+ strh r1, [r0]
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E7FA4: .4byte 0x02001000
+ thumb_func_end sub_80E7F00
+
+ thumb_func_start sub_80E7FA8
+sub_80E7FA8: @ 80E7FA8
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ movs r0, 0
+ mov r8, r0
+ movs r5, 0
+ ldr r0, _080E8040 @ =0x02001000
+ ldrb r1, [r0, 0xA]
+ cmp r8, r1
+ bcs _080E802E
+ ldr r3, _080E8044 @ =0x0000a140
+ adds r6, r0, r3
+ ldr r1, _080E8048 @ =0x0000a16d
+ adds r1, r0
+ mov r9, r1
+_080E7FC8:
+ ldr r3, _080E804C @ =0xffff5ec0
+ adds r7, r6, r3
+ ldr r0, [r7, 0x4]
+ lsls r4, r5, 1
+ adds r0, r4, r0
+ ldrh r1, [r0]
+ adds r0, r6, 0
+ movs r2, 0
+ bl sub_80EB218
+ ldr r1, _080E8050 @ =0xffff5ecc
+ adds r0, r6, r1
+ adds r0, r4
+ ldrh r1, [r0]
+ mov r0, r9
+ movs r2, 0
+ bl sub_80EB218
+ adds r1, r6, 0
+ mov r2, r9
+ ldrb r0, [r1]
+ adds r4, r5, 0x1
+ ldrb r3, [r2]
+ cmp r0, r3
+ bne _080E8018
+ adds r3, r7, 0
+ cmp r0, 0xFF
+ beq _080E8010
+_080E8000:
+ adds r1, 0x1
+ adds r2, 0x1
+ ldrb r0, [r1]
+ ldrb r5, [r2]
+ cmp r0, r5
+ bne _080E8018
+ cmp r0, 0xFF
+ bne _080E8000
+_080E8010:
+ ldrb r0, [r1]
+ ldrb r2, [r2]
+ cmp r0, r2
+ beq _080E8024
+_080E8018:
+ mov r0, r8
+ adds r0, 0x1
+ lsls r0, 16
+ lsrs r0, 16
+ mov r8, r0
+ ldr r3, _080E8040 @ =0x02001000
+_080E8024:
+ lsls r0, r4, 16
+ lsrs r5, r0, 16
+ ldrb r3, [r3, 0xA]
+ cmp r5, r3
+ bcc _080E7FC8
+_080E802E:
+ mov r1, r8
+ lsls r0, r1, 24
+ lsrs r0, 24
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080E8040: .4byte 0x02001000
+_080E8044: .4byte 0x0000a140
+_080E8048: .4byte 0x0000a16d
+_080E804C: .4byte 0xffff5ec0
+_080E8050: .4byte 0xffff5ecc
+ thumb_func_end sub_80E7FA8
+
+ thumb_func_start sub_80E8054
+sub_80E8054: @ 80E8054
+ push {r4,lr}
+ movs r1, 0
+ ldr r2, _080E8078 @ =0x02001000
+ ldrb r0, [r2, 0xA]
+ cmp r1, r0
+ bcs _080E808A
+ adds r4, r2, 0
+ adds r4, 0xC
+ ldr r3, _080E807C @ =0x0000ffff
+ adds r2, r0, 0
+_080E8068:
+ lsls r0, r1, 1
+ adds r0, r4
+ ldrh r0, [r0]
+ cmp r0, r3
+ beq _080E8080
+ movs r0, 0
+ b _080E808C
+ .align 2, 0
+_080E8078: .4byte 0x02001000
+_080E807C: .4byte 0x0000ffff
+_080E8080:
+ adds r0, r1, 0x1
+ lsls r0, 16
+ lsrs r1, r0, 16
+ cmp r1, r2
+ bcc _080E8068
+_080E808A:
+ movs r0, 0x1
+_080E808C:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80E8054
+
+ thumb_func_start sub_80E8094
+sub_80E8094: @ 80E8094
+ push {r4-r7,lr}
+ movs r5, 0
+ ldr r6, _080E80C4 @ =0x0200b140
+ adds r7, r6, 0
+ adds r7, 0x2D
+_080E809E:
+ lsls r4, r5, 1
+ ldr r1, _080E80C8 @ =0xffff5ecc
+ adds r0, r6, r1
+ adds r0, r4
+ ldrh r1, [r0]
+ adds r0, r6, 0
+ movs r2, 0
+ bl sub_80EB218
+ ldr r0, _080E80CC @ =gMysteryEventPhrase
+ adds r4, r0
+ ldrh r1, [r4]
+ adds r0, r7, 0
+ movs r2, 0
+ bl sub_80EB218
+ adds r3, r6, 0
+ adds r4, r7, 0
+ b _080E80D8
+ .align 2, 0
+_080E80C4: .4byte 0x0200b140
+_080E80C8: .4byte 0xffff5ecc
+_080E80CC: .4byte gMysteryEventPhrase
+_080E80D0:
+ adds r4, 0x1
+ adds r3, 0x1
+ cmp r2, r1
+ bne _080E80F4
+_080E80D8:
+ ldrb r2, [r3]
+ adds r0, r2, 0
+ cmp r0, 0xFF
+ beq _080E80EE
+ ldrb r1, [r4]
+ adds r0, r1, 0
+ cmp r0, 0xFF
+ bne _080E80D0
+ ldrb r0, [r3]
+ cmp r0, 0xFF
+ bne _080E80F4
+_080E80EE:
+ ldrb r0, [r4]
+ cmp r0, 0xFF
+ beq _080E80F8
+_080E80F4:
+ movs r0, 0
+ b _080E8104
+_080E80F8:
+ adds r0, r5, 0x1
+ lsls r0, 16
+ lsrs r5, r0, 16
+ cmp r5, 0x3
+ bls _080E809E
+ movs r0, 0x1
+_080E8104:
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80E8094
+
+ thumb_func_start sub_80E810C
+sub_80E810C: @ 80E810C
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ movs r5, 0
+ ldr r6, _080E8198 @ =0x0200b19a
+ ldr r0, _080E819C @ =0xffff5e66
+ adds r0, r6
+ mov r9, r0
+ movs r1, 0
+ mov r8, r1
+ adds r7, r6, 0
+ adds r7, 0x80
+ ldr r2, _080E81A0 @ =gBerryMasterWifePhrases
+ mov r10, r2
+_080E812C:
+ mov r0, r9
+ ldrh r1, [r0, 0xC]
+ adds r0, r6, 0
+ movs r2, 0
+ bl sub_80EB218
+ mov r1, r8
+ strb r1, [r0]
+ adds r0, 0x1
+ mov r2, r9
+ ldrh r1, [r2, 0xE]
+ movs r2, 0
+ bl sub_80EB218
+ lsls r4, r5, 2
+ mov r1, r10
+ adds r0, r4, r1
+ ldrh r1, [r0]
+ adds r0, r7, 0
+ movs r2, 0
+ bl sub_80EB218
+ mov r2, r8
+ strb r2, [r0]
+ adds r0, 0x1
+ ldr r1, _080E81A4 @ =0x083e7686
+ adds r4, r1
+ ldrh r1, [r4]
+ movs r2, 0
+ bl sub_80EB218
+ adds r0, r6, 0
+ adds r3, r7, 0
+ adds r4, r5, 0x1
+_080E8170:
+ ldrb r2, [r0]
+ cmp r2, 0xFF
+ beq _080E818A
+ ldrb r1, [r3]
+ cmp r1, 0xFF
+ beq _080E8184
+ adds r3, 0x1
+ adds r0, 0x1
+ cmp r2, r1
+ beq _080E8170
+_080E8184:
+ ldrb r0, [r0]
+ cmp r0, 0xFF
+ bne _080E81A8
+_080E818A:
+ ldrb r0, [r3]
+ cmp r0, 0xFF
+ bne _080E81A8
+ lsls r0, r4, 24
+ lsrs r0, 24
+ b _080E81B2
+ .align 2, 0
+_080E8198: .4byte 0x0200b19a
+_080E819C: .4byte 0xffff5e66
+_080E81A0: .4byte gBerryMasterWifePhrases
+_080E81A4: .4byte 0x083e7686
+_080E81A8:
+ lsls r0, r4, 16
+ lsrs r5, r0, 16
+ cmp r5, 0x4
+ bls _080E812C
+ movs r0, 0
+_080E81B2:
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80E810C
+
+ thumb_func_start sub_80E81C0
+sub_80E81C0: @ 80E81C0
+ push {r4,lr}
+ ldr r0, _080E81EC @ =gStringVar2
+ ldr r4, _080E81F0 @ =0x02001000
+ ldr r2, _080E81F4 @ =0x00009fa8
+ adds r1, r4, r2
+ ldrh r1, [r1]
+ movs r2, 0
+ bl sub_80EB218
+ movs r1, 0
+ strb r1, [r0]
+ adds r0, 0x1
+ ldr r1, _080E81F8 @ =0x00009faa
+ adds r4, r1
+ ldrh r1, [r4]
+ movs r2, 0
+ bl sub_80EB218
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E81EC: .4byte gStringVar2
+_080E81F0: .4byte 0x02001000
+_080E81F4: .4byte 0x00009fa8
+_080E81F8: .4byte 0x00009faa
+ thumb_func_end sub_80E81C0
+
+ thumb_func_start sub_80E81FC
+sub_80E81FC: @ 80E81FC
+ push {lr}
+ movs r0, 0x5
+ bl PlaySE
+ bl sub_80E95A4
+ movs r0, 0
+ movs r1, 0
+ movs r2, 0x1D
+ movs r3, 0xD
+ bl MenuZeroFillWindowRect
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80E81FC
+
+ thumb_func_start sub_80E8218
+sub_80E8218: @ 80E8218
+ push {r4,r5,lr}
+ sub sp, 0x40
+ mov r1, sp
+ ldr r0, _080E8260 @ =gSpriteSheets_Interview
+ ldm r0!, {r2-r4}
+ stm r1!, {r2-r4}
+ ldm r0!, {r2,r3,r5}
+ stm r1!, {r2,r3,r5}
+ ldm r0!, {r2,r4,r5}
+ stm r1!, {r2,r4,r5}
+ ldr r0, [r0]
+ str r0, [r1]
+ add r4, sp, 0x28
+ adds r1, r4, 0
+ ldr r0, _080E8264 @ =gSpritePalettes_Interview
+ ldm r0!, {r2,r3,r5}
+ stm r1!, {r2,r3,r5}
+ ldm r0!, {r2,r3,r5}
+ stm r1!, {r2,r3,r5}
+ mov r0, sp
+ bl LoadSpriteSheets
+ adds r0, r4, 0
+ bl LoadSpritePalettes
+ bl sub_80E8268
+ bl sub_80E8818
+ bl sub_80E8A7C
+ add sp, 0x40
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E8260: .4byte gSpriteSheets_Interview
+_080E8264: .4byte gSpritePalettes_Interview
+ thumb_func_end sub_80E8218
+
+ thumb_func_start sub_80E8268
+sub_80E8268: @ 80E8268
+ push {lr}
+ ldr r0, _080E82B0 @ =gSpriteTemplate_83DBBFC
+ movs r1, 0
+ movs r2, 0
+ movs r3, 0
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _080E82B4 @ =gSprites
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r2
+ ldr r0, _080E82B8 @ =gUnknown_083DB694
+ ldr r3, [r0]
+ adds r0, r3, 0
+ adds r0, 0x8A
+ ldrh r0, [r0]
+ lsls r0, 3
+ adds r0, 0x8
+ movs r2, 0
+ strh r0, [r1, 0x22]
+ adds r0, r3, 0
+ adds r0, 0x88
+ ldrh r0, [r0]
+ lsls r0, 3
+ adds r0, 0x4
+ strh r0, [r1, 0x20]
+ strh r2, [r1, 0x2E]
+ strh r2, [r1, 0x30]
+ adds r0, r3, 0
+ adds r0, 0x98
+ str r1, [r0]
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E82B0: .4byte gSpriteTemplate_83DBBFC
+_080E82B4: .4byte gSprites
+_080E82B8: .4byte gUnknown_083DB694
+ thumb_func_end sub_80E8268
+
+ thumb_func_start sub_80E82BC
+sub_80E82BC: @ 80E82BC
+ push {r4-r7,lr}
+ adds r3, r0, 0
+ movs r1, 0x30
+ ldrsh r0, [r3, r1]
+ cmp r0, 0
+ bne _080E838C
+ ldr r0, _080E8334 @ =gUnknown_083DB694
+ ldr r2, [r0]
+ adds r1, r2, 0
+ adds r1, 0x87
+ ldrb r1, [r1]
+ mov r12, r0
+ cmp r1, 0
+ beq _080E836C
+ adds r0, r2, 0
+ adds r0, 0x86
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ lsls r0, 16
+ lsrs r5, r0, 16
+ adds r0, r2, 0
+ adds r0, 0x85
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ lsls r0, 16
+ lsrs r4, r0, 16
+ movs r7, 0
+ movs r1, 0
+ cmp r7, r4
+ bcs _080E8316
+ lsls r6, r5, 1
+ adds r2, 0x8C
+_080E8300:
+ adds r0, r1, r6
+ adds r0, r2, r0
+ ldrb r0, [r0]
+ adds r0, r7, r0
+ lsls r0, 16
+ lsrs r7, r0, 16
+ adds r0, r1, 0x1
+ lsls r0, 16
+ lsrs r1, r0, 16
+ cmp r1, r4
+ bcc _080E8300
+_080E8316:
+ mov r0, r12
+ ldr r2, [r0]
+ adds r0, r2, 0
+ adds r0, 0x84
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ cmp r5, r0
+ bne _080E8338
+ movs r0, 0x60
+ strh r0, [r3, 0x22]
+ lsls r0, r4, 3
+ subs r0, r4
+ adds r0, 0x3
+ b _080E8356
+ .align 2, 0
+_080E8334: .4byte gUnknown_083DB694
+_080E8338:
+ adds r1, r2, 0
+ adds r1, 0x8A
+ lsls r0, r5, 1
+ ldrh r1, [r1]
+ adds r0, r1
+ lsls r0, 3
+ adds r0, 0x8
+ strh r0, [r3, 0x22]
+ adds r0, r2, 0
+ adds r0, 0x88
+ ldrh r0, [r0]
+ adds r0, r7
+ movs r1, 0xB
+ muls r1, r4
+ adds r0, r1
+_080E8356:
+ lsls r0, 3
+ adds r0, 0x4
+ strh r0, [r3, 0x20]
+ movs r1, 0
+ ldr r0, _080E8368 @ =0x0000fffa
+ strh r0, [r3, 0x24]
+ strh r1, [r3, 0x2E]
+ b _080E838C
+ .align 2, 0
+_080E8368: .4byte 0x0000fffa
+_080E836C:
+ ldrh r0, [r3, 0x2E]
+ adds r0, 0x1
+ strh r0, [r3, 0x2E]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x2
+ ble _080E838C
+ strh r1, [r3, 0x2E]
+ ldrh r0, [r3, 0x24]
+ adds r0, 0x1
+ strh r0, [r3, 0x24]
+ lsls r0, 16
+ cmp r0, 0
+ ble _080E838C
+ ldr r0, _080E8394 @ =0x0000fffa
+ strh r0, [r3, 0x24]
+_080E838C:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E8394: .4byte 0x0000fffa
+ thumb_func_end sub_80E82BC
+
+ thumb_func_start sub_80E8398
+sub_80E8398: @ 80E8398
+ push {lr}
+ lsls r0, 24
+ lsrs r3, r0, 24
+ cmp r3, 0x1
+ beq _080E83D4
+ cmp r3, 0x1
+ bgt _080E83AC
+ cmp r3, 0
+ beq _080E83B2
+ b _080E8416
+_080E83AC:
+ cmp r3, 0x2
+ beq _080E83F8
+ b _080E8416
+_080E83B2:
+ ldr r0, _080E83D0 @ =gUnknown_083DB694
+ ldr r0, [r0]
+ adds r0, 0x98
+ ldr r1, [r0]
+ strh r3, [r1, 0x30]
+ ldr r1, [r0]
+ strh r3, [r1, 0x24]
+ ldr r1, [r0]
+ adds r1, 0x3E
+ ldrb r2, [r1]
+ movs r0, 0x5
+ negs r0, r0
+ ands r0, r2
+ b _080E8414
+ .align 2, 0
+_080E83D0: .4byte gUnknown_083DB694
+_080E83D4:
+ ldr r0, _080E83F4 @ =gUnknown_083DB694
+ ldr r1, [r0]
+ adds r1, 0x98
+ ldr r0, [r1]
+ movs r2, 0
+ strh r3, [r0, 0x30]
+ ldr r0, [r1]
+ strh r2, [r0, 0x24]
+ ldr r1, [r1]
+ adds r1, 0x3E
+ ldrb r2, [r1]
+ movs r0, 0x5
+ negs r0, r0
+ ands r0, r2
+ b _080E8414
+ .align 2, 0
+_080E83F4: .4byte gUnknown_083DB694
+_080E83F8:
+ ldr r0, _080E841C @ =gUnknown_083DB694
+ ldr r1, [r0]
+ adds r1, 0x98
+ ldr r2, [r1]
+ movs r3, 0
+ movs r0, 0x1
+ strh r0, [r2, 0x30]
+ ldr r0, [r1]
+ strh r3, [r0, 0x24]
+ ldr r1, [r1]
+ adds r1, 0x3E
+ ldrb r0, [r1]
+ movs r2, 0x4
+ orrs r0, r2
+_080E8414:
+ strb r0, [r1]
+_080E8416:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E841C: .4byte gUnknown_083DB694
+ thumb_func_end sub_80E8398
+
+ thumb_func_start sub_80E8420
+sub_80E8420: @ 80E8420
+ push {r4-r7,lr}
+ sub sp, 0x18
+ mov r1, sp
+ ldr r0, _080E84E0 @ =gSpriteTemplate_83DBCAC
+ ldm r0!, {r2-r4}
+ stm r1!, {r2-r4}
+ ldm r0!, {r2-r4}
+ stm r1!, {r2-r4}
+ mov r0, sp
+ movs r1, 0
+ movs r2, 0
+ movs r3, 0x3
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r1, _080E84E4 @ =gUnknown_083DB694
+ ldr r7, [r1]
+ adds r5, r7, 0
+ adds r5, 0x9C
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ ldr r4, _080E84E8 @ =gSprites
+ adds r1, r4
+ str r1, [r5]
+ ldr r0, _080E84EC @ =gSpriteAnimTable_83DBC8C
+ str r0, [sp, 0x8]
+ ldr r0, _080E84F0 @ =sub_80E872C
+ str r0, [sp, 0x14]
+ mov r0, sp
+ movs r1, 0
+ movs r2, 0
+ movs r3, 0x4
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r0, 24
+ adds r6, r7, 0
+ adds r6, 0xA0
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r4
+ str r1, [r6]
+ ldr r0, _080E84F4 @ =gSpriteAnimTable_83DBC9C
+ str r0, [sp, 0x8]
+ ldr r0, _080E84F8 @ =sub_80E8760
+ str r0, [sp, 0x14]
+ mov r0, sp
+ movs r1, 0
+ movs r2, 0
+ movs r3, 0x5
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r0, 24
+ adds r2, r7, 0
+ adds r2, 0xA4
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r4
+ str r1, [r2]
+ ldr r0, [r5]
+ movs r1, 0
+ strh r1, [r0, 0x2E]
+ ldr r0, [r6]
+ strh r1, [r0, 0x2E]
+ ldr r0, [r2]
+ strh r1, [r0, 0x2E]
+ movs r0, 0x1
+ bl IndexOfSpritePaletteTag
+ ldr r1, [r5]
+ lsls r0, 24
+ lsrs r0, 20
+ ldr r2, _080E84FC @ =0x00000101
+ adds r0, r2
+ strh r0, [r1, 0x34]
+ bl sub_80E8534
+ adds r1, r7, 0
+ adds r1, 0x96
+ movs r0, 0x1
+ strb r0, [r1]
+ ldr r1, _080E8500 @ =REG_BLDCNT
+ movs r3, 0xFD
+ lsls r3, 6
+ adds r0, r3, 0
+ strh r0, [r1]
+ add sp, 0x18
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E84E0: .4byte gSpriteTemplate_83DBCAC
+_080E84E4: .4byte gUnknown_083DB694
+_080E84E8: .4byte gSprites
+_080E84EC: .4byte gSpriteAnimTable_83DBC8C
+_080E84F0: .4byte sub_80E872C
+_080E84F4: .4byte gSpriteAnimTable_83DBC9C
+_080E84F8: .4byte sub_80E8760
+_080E84FC: .4byte 0x00000101
+_080E8500: .4byte REG_BLDCNT
+ thumb_func_end sub_80E8420
+
+ thumb_func_start sub_80E8504
+sub_80E8504: @ 80E8504
+ push {r4,lr}
+ ldr r0, _080E8530 @ =gUnknown_083DB694
+ ldr r4, [r0]
+ adds r0, r4, 0
+ adds r0, 0x9C
+ ldr r0, [r0]
+ bl DestroySprite
+ adds r0, r4, 0
+ adds r0, 0xA0
+ ldr r0, [r0]
+ bl DestroySprite
+ adds r0, r4, 0
+ adds r0, 0xA4
+ ldr r0, [r0]
+ bl DestroySprite
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E8530: .4byte gUnknown_083DB694
+ thumb_func_end sub_80E8504
+
+ thumb_func_start sub_80E8534
+sub_80E8534: @ 80E8534
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ ldr r1, _080E8554 @ =gUnknown_083DB694
+ ldr r3, [r1]
+ ldr r2, _080E8558 @ =0x000001b7
+ adds r0, r3, r2
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ adds r4, r1, 0
+ cmp r0, 0
+ beq _080E8560
+ ldr r1, _080E855C @ =gUnknown_020388AC
+ movs r0, 0x1
+ b _080E8598
+ .align 2, 0
+_080E8554: .4byte gUnknown_083DB694
+_080E8558: .4byte 0x000001b7
+_080E855C: .4byte gUnknown_020388AC
+_080E8560:
+ adds r0, r3, 0
+ adds r0, 0x26
+ ldrb r2, [r0]
+ cmp r2, 0
+ bne _080E8578
+ ldr r0, _080E8574 @ =gUnknown_020388AC
+ strb r2, [r0]
+ adds r7, r0, 0
+ b _080E859C
+ .align 2, 0
+_080E8574: .4byte gUnknown_020388AC
+_080E8578:
+ movs r1, 0xD4
+ lsls r1, 1
+ adds r0, r3, r1
+ ldrh r1, [r0]
+ movs r0, 0xC0
+ lsls r0, 3
+ cmp r1, r0
+ bne _080E8594
+ ldr r1, _080E8590 @ =gUnknown_020388AC
+ movs r0, 0x2
+ b _080E8598
+ .align 2, 0
+_080E8590: .4byte gUnknown_020388AC
+_080E8594:
+ ldr r1, _080E85F4 @ =gUnknown_020388AC
+ movs r0, 0x3
+_080E8598:
+ strb r0, [r1]
+ adds r7, r1, 0
+_080E859C:
+ ldr r2, [r4]
+ adds r4, r2, 0
+ adds r4, 0x9C
+ ldr r1, [r4]
+ ldrb r0, [r7]
+ movs r3, 0
+ mov r8, r3
+ strh r0, [r1, 0x32]
+ adds r5, r2, 0
+ adds r5, 0xA0
+ ldr r1, [r5]
+ ldrb r0, [r7]
+ strh r0, [r1, 0x32]
+ adds r6, r2, 0
+ adds r6, 0xA4
+ ldr r1, [r6]
+ ldrb r0, [r7]
+ strh r0, [r1, 0x32]
+ ldr r0, [r4]
+ ldrb r1, [r7]
+ bl StartSpriteAnim
+ ldr r0, [r5]
+ ldrb r1, [r7]
+ bl StartSpriteAnim
+ ldr r0, [r6]
+ ldrb r1, [r7]
+ bl StartSpriteAnim
+ ldr r0, [r4]
+ movs r1, 0x8
+ strh r1, [r0, 0x38]
+ ldr r0, [r4]
+ strh r1, [r0, 0x3A]
+ ldr r0, [r4]
+ mov r1, r8
+ strh r1, [r0, 0x30]
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E85F4: .4byte gUnknown_020388AC
+ thumb_func_end sub_80E8534
+
+ thumb_func_start sub_80E85F8
+sub_80E85F8: @ 80E85F8
+ push {r4-r6,lr}
+ adds r5, r0, 0
+ ldrh r0, [r5, 0x2E]
+ adds r0, 0x1
+ strh r0, [r5, 0x2E]
+ movs r1, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _080E8624
+ ldr r1, _080E8620 @ =gSineTable
+ movs r2, 0x30
+ ldrsh r0, [r5, r2]
+ lsls r0, 1
+ adds r0, r1
+ ldrh r0, [r0]
+ lsls r0, 16
+ asrs r0, 21
+ adds r0, 0x8
+ strh r0, [r5, 0x38]
+ b _080E863A
+ .align 2, 0
+_080E8620: .4byte gSineTable
+_080E8624:
+ ldr r1, _080E8688 @ =gSineTable
+ movs r2, 0x30
+ ldrsh r0, [r5, r2]
+ lsls r0, 1
+ adds r0, r1
+ ldrh r1, [r0]
+ lsls r1, 16
+ asrs r1, 21
+ movs r0, 0x8
+ subs r0, r1
+ strh r0, [r5, 0x3A]
+_080E863A:
+ ldrh r0, [r5, 0x30]
+ adds r0, 0x5
+ movs r1, 0xFF
+ ands r0, r1
+ strh r0, [r5, 0x30]
+ ldr r2, _080E868C @ =REG_BLDALPHA
+ ldrh r0, [r5, 0x3A]
+ lsls r0, 8
+ ldrh r1, [r5, 0x38]
+ orrs r0, r1
+ strh r0, [r2]
+ ldr r0, _080E8690 @ =gUnknown_083DB694
+ ldr r6, [r0]
+ adds r0, r6, 0
+ adds r0, 0x96
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _080E871A
+ bl sub_80E8534
+ adds r1, r6, 0
+ adds r1, 0x9C
+ ldr r0, [r1]
+ movs r2, 0x8
+ strh r2, [r0, 0x38]
+ ldr r0, [r1]
+ strh r2, [r0, 0x3A]
+ ldr r1, [r1]
+ movs r0, 0
+ strh r0, [r1, 0x30]
+ movs r1, 0x32
+ ldrsh r0, [r5, r1]
+ cmp r0, 0x1
+ beq _080E86C4
+ cmp r0, 0x1
+ bgt _080E8694
+ cmp r0, 0
+ beq _080E869E
+ b _080E871A
+ .align 2, 0
+_080E8688: .4byte gSineTable
+_080E868C: .4byte REG_BLDALPHA
+_080E8690: .4byte gUnknown_083DB694
+_080E8694:
+ cmp r0, 0x2
+ beq _080E86D6
+ cmp r0, 0x3
+ beq _080E86DE
+ b _080E871A
+_080E869E:
+ ldr r2, _080E86C0 @ =0x000001a9
+ adds r0, r6, r2
+ movs r1, 0
+ ldrsb r1, [r0, r1]
+ movs r0, 0x58
+ muls r0, r1
+ adds r0, 0x20
+ strh r0, [r5, 0x20]
+ movs r1, 0xD4
+ lsls r1, 1
+ adds r0, r6, r1
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ adds r2, 0xC
+ b _080E870A
+ .align 2, 0
+_080E86C0: .4byte 0x000001a9
+_080E86C4:
+ movs r0, 0xD6
+ strh r0, [r5, 0x20]
+ movs r1, 0xD4
+ lsls r1, 1
+ adds r0, r6, r1
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ b _080E8714
+_080E86D6:
+ movs r0, 0x97
+ strh r0, [r5, 0x20]
+ movs r0, 0x60
+ b _080E8718
+_080E86DE:
+ ldr r4, _080E8720 @ =gUnknown_083DBCC4
+ ldr r2, _080E8724 @ =0x000001a9
+ adds r0, r6, r2
+ movs r1, 0
+ ldrsb r1, [r0, r1]
+ movs r0, 0xD4
+ lsls r0, 1
+ adds r3, r6, r0
+ movs r2, 0
+ ldrsb r2, [r3, r2]
+ lsls r0, r2, 3
+ subs r0, r2
+ adds r1, r0
+ adds r1, r4
+ movs r0, 0
+ ldrsb r0, [r1, r0]
+ lsls r0, 3
+ adds r0, 0x1F
+ strh r0, [r5, 0x20]
+ movs r0, 0
+ ldrsb r0, [r3, r0]
+ ldr r2, _080E8728 @ =0x000001b5
+_080E870A:
+ adds r1, r6, r2
+ ldrb r1, [r1]
+ lsls r1, 24
+ asrs r1, 24
+ subs r0, r1
+_080E8714:
+ lsls r0, 4
+ adds r0, 0x60
+_080E8718:
+ strh r0, [r5, 0x22]
+_080E871A:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E8720: .4byte gUnknown_083DBCC4
+_080E8724: .4byte 0x000001a9
+_080E8728: .4byte 0x000001b5
+ thumb_func_end sub_80E85F8
+
+ thumb_func_start sub_80E872C
+sub_80E872C: @ 80E872C
+ push {lr}
+ adds r2, r0, 0
+ ldr r0, _080E875C @ =gUnknown_083DB694
+ ldr r1, [r0]
+ adds r0, r1, 0
+ adds r0, 0x96
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _080E8756
+ movs r3, 0x32
+ ldrsh r0, [r2, r3]
+ cmp r0, 0
+ bne _080E8756
+ adds r1, 0x9C
+ ldr r0, [r1]
+ ldrh r0, [r0, 0x20]
+ adds r0, 0x20
+ strh r0, [r2, 0x20]
+ ldr r0, [r1]
+ ldrh r0, [r0, 0x22]
+ strh r0, [r2, 0x22]
+_080E8756:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E875C: .4byte gUnknown_083DB694
+ thumb_func_end sub_80E872C
+
+ thumb_func_start sub_80E8760
+sub_80E8760: @ 80E8760
+ push {lr}
+ adds r2, r0, 0
+ ldr r0, _080E8784 @ =gUnknown_083DB694
+ ldr r1, [r0]
+ adds r0, r1, 0
+ adds r0, 0x96
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _080E87B2
+ movs r3, 0x32
+ ldrsh r0, [r2, r3]
+ cmp r0, 0x1
+ beq _080E8798
+ cmp r0, 0x1
+ bgt _080E8788
+ cmp r0, 0
+ beq _080E878E
+ b _080E87B2
+ .align 2, 0
+_080E8784: .4byte gUnknown_083DB694
+_080E8788:
+ cmp r0, 0x2
+ beq _080E87A2
+ b _080E87B2
+_080E878E:
+ adds r1, 0x9C
+ ldr r0, [r1]
+ ldrh r0, [r0, 0x20]
+ adds r0, 0x40
+ b _080E87AA
+_080E8798:
+ adds r1, 0x9C
+ ldr r0, [r1]
+ ldrh r0, [r0, 0x20]
+ adds r0, 0x1C
+ b _080E87AA
+_080E87A2:
+ adds r1, 0x9C
+ ldr r0, [r1]
+ ldrh r0, [r0, 0x20]
+ adds r0, 0x15
+_080E87AA:
+ strh r0, [r2, 0x20]
+ ldr r0, [r1]
+ ldrh r0, [r0, 0x22]
+ strh r0, [r2, 0x22]
+_080E87B2:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80E8760
+
+ thumb_func_start sub_80E87A4
+sub_80E87A4: @ 80E87A4
+ push {r4,lr}
+ lsls r0, 24
+ ldr r1, _080E87C8 @ =gUnknown_083DB694
+ ldr r1, [r1]
+ adds r2, r1, 0
+ adds r2, 0xA8
+ ldr r3, [r2]
+ movs r4, 0
+ cmp r0, 0
+ bne _080E87BA
+ movs r4, 0x1
+_080E87BA:
+ movs r1, 0
+ strh r4, [r3, 0x30]
+ ldr r0, [r2]
+ strh r1, [r0, 0x24]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E87C8: .4byte gUnknown_083DB694
+ thumb_func_end sub_80E87A4
+
+ thumb_func_start sub_80E87CC
+sub_80E87CC: @ 80E87CC
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ adds r4, r0, 0
+ ldr r0, _080E8810 @ =gUnknown_083DB694
+ ldr r5, [r0]
+ adds r0, r5, 0
+ adds r0, 0xA8
+ ldr r0, [r0]
+ movs r3, 0
+ cmp r4, 0
+ bne _080E87E6
+ movs r3, 0x1
+_080E87E6:
+ adds r2, r0, 0
+ adds r2, 0x3E
+ lsls r3, 2
+ ldrb r1, [r2]
+ movs r0, 0x5
+ negs r0, r0
+ ands r0, r1
+ orrs r0, r3
+ strb r0, [r2]
+ adds r0, r4, 0
+ bl sub_80E87A4
+ cmp r4, 0
+ beq _080E880A
+ ldr r0, _080E8814 @ =0x000001b9
+ adds r1, r5, r0
+ movs r0, 0x1
+ strb r0, [r1]
+_080E880A:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E8810: .4byte gUnknown_083DB694
+_080E8814: .4byte 0x000001b9
+ thumb_func_end sub_80E87CC
+
+ thumb_func_start sub_80E8818
+sub_80E8818: @ 80E8818
+ push {lr}
+ ldr r0, _080E8850 @ =gSpriteTemplate_83DBBFC
+ movs r1, 0
+ movs r2, 0
+ movs r3, 0
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _080E8854 @ =gSprites
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r2
+ movs r0, 0
+ strh r0, [r1, 0x2E]
+ strh r0, [r1, 0x30]
+ ldr r0, _080E8858 @ =gUnknown_083DB694
+ ldr r0, [r0]
+ adds r0, 0xA8
+ str r1, [r0]
+ ldr r0, _080E885C @ =sub_80E8860
+ str r0, [r1, 0x1C]
+ movs r0, 0
+ bl sub_80E87CC
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E8850: .4byte gSpriteTemplate_83DBBFC
+_080E8854: .4byte gSprites
+_080E8858: .4byte gUnknown_083DB694
+_080E885C: .4byte sub_80E8860
+ thumb_func_end sub_80E8818
+
+ thumb_func_start sub_80E8860
+sub_80E8860: @ 80E8860
+ push {r4,r5,lr}
+ adds r2, r0, 0
+ movs r0, 0x30
+ ldrsh r4, [r2, r0]
+ cmp r4, 0
+ bne _080E88E4
+ ldr r0, _080E88B0 @ =gUnknown_083DB694
+ ldr r3, [r0]
+ ldr r1, _080E88B4 @ =0x000001b9
+ adds r0, r3, r1
+ ldrb r1, [r0]
+ cmp r1, 0
+ beq _080E88C4
+ ldr r5, _080E88B8 @ =0x00009cd1
+ adds r0, r3, r5
+ movs r1, 0
+ ldrsb r1, [r0, r1]
+ movs r0, 0x58
+ muls r0, r1
+ adds r0, 0x2C
+ strh r0, [r2, 0x20]
+ ldr r1, _080E88BC @ =0x00009cd0
+ adds r0, r3, r1
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ adds r5, 0x84
+ adds r1, r3, r5
+ ldrb r1, [r1]
+ lsls r1, 24
+ asrs r1, 24
+ subs r0, r1
+ lsls r0, 4
+ adds r0, 0x60
+ strh r0, [r2, 0x22]
+ ldr r0, _080E88C0 @ =0x0000fffa
+ strh r0, [r2, 0x24]
+ strh r4, [r2, 0x2E]
+ b _080E88E4
+ .align 2, 0
+_080E88B0: .4byte gUnknown_083DB694
+_080E88B4: .4byte 0x000001b9
+_080E88B8: .4byte 0x00009cd1
+_080E88BC: .4byte 0x00009cd0
+_080E88C0: .4byte 0x0000fffa
+_080E88C4:
+ ldrh r0, [r2, 0x2E]
+ adds r0, 0x1
+ strh r0, [r2, 0x2E]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x2
+ ble _080E88E4
+ strh r1, [r2, 0x2E]
+ ldrh r0, [r2, 0x24]
+ adds r0, 0x1
+ strh r0, [r2, 0x24]
+ lsls r0, 16
+ cmp r0, 0
+ ble _080E88E4
+ ldr r0, _080E88EC @ =0x0000fffa
+ strh r0, [r2, 0x24]
+_080E88E4:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E88EC: .4byte 0x0000fffa
+ thumb_func_end sub_80E8860
+
+ thumb_func_start sub_80E88F0
+sub_80E88F0: @ 80E88F0
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ movs r4, 0
+ ldr r0, _080E8950 @ =gUnknown_083DB694
+ mov r8, r0
+ ldr r0, [r0]
+ movs r6, 0x4
+ movs r5, 0
+ movs r1, 0xB4
+ adds r1, r0
+ mov r12, r1
+ adds r7, r0, 0
+ adds r7, 0xAC
+_080E890C:
+ lsls r2, r4, 2
+ adds r3, r7, r2
+ ldr r1, [r3]
+ adds r1, 0x3E
+ ldrb r0, [r1]
+ orrs r0, r6
+ strb r0, [r1]
+ ldr r0, [r3]
+ strh r5, [r0, 0x30]
+ add r2, r12
+ ldr r1, [r2]
+ adds r1, 0x3E
+ ldrb r0, [r1]
+ orrs r0, r6
+ strb r0, [r1]
+ ldr r0, [r2]
+ strh r5, [r0, 0x30]
+ adds r0, r4, 0x1
+ lsls r0, 16
+ lsrs r4, r0, 16
+ cmp r4, 0x1
+ bls _080E890C
+ mov r1, r8
+ ldr r0, [r1]
+ ldr r1, _080E8954 @ =0x00009f9c
+ adds r0, r1
+ movs r1, 0
+ strb r1, [r0]
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E8950: .4byte gUnknown_083DB694
+_080E8954: .4byte 0x00009f9c
+ thumb_func_end sub_80E88F0
+
+ thumb_func_start sub_80E8958
+sub_80E8958: @ 80E8958
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ lsls r0, 24
+ lsrs r7, r0, 24
+ cmp r7, 0
+ bne _080E89B4
+ movs r0, 0x64
+ mov r9, r0
+ ldr r0, _080E8998 @ =gUnknown_083DB694
+ ldr r2, [r0]
+ ldr r3, _080E899C @ =0x00009f98
+ adds r1, r2, r3
+ ldr r3, _080E89A0 @ =0x000001b5
+ adds r0, r2, r3
+ str r0, [r1]
+ adds r0, r2, 0
+ adds r0, 0x26
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _080E89A8
+ movs r1, 0xDB
+ lsls r1, 1
+ adds r0, r2, r1
+ ldrb r0, [r0]
+ subs r0, 0x4
+ ldr r3, _080E89A4 @ =0x00009f9d
+ adds r1, r2, r3
+ strb r0, [r1]
+ b _080E8A00
+ .align 2, 0
+_080E8998: .4byte gUnknown_083DB694
+_080E899C: .4byte 0x00009f98
+_080E89A0: .4byte 0x000001b5
+_080E89A4: .4byte 0x00009f9d
+_080E89A8:
+ ldr r1, _080E89B0 @ =0x00009f9d
+ adds r0, r2, r1
+ strb r7, [r0]
+ b _080E8A00
+ .align 2, 0
+_080E89B0: .4byte 0x00009f9d
+_080E89B4:
+ movs r3, 0x78
+ mov r9, r3
+ ldr r0, _080E8A64 @ =gUnknown_083DB694
+ ldr r2, [r0]
+ ldr r0, _080E8A68 @ =0x00009f98
+ adds r1, r2, r0
+ ldr r3, _080E8A6C @ =0x00009d55
+ adds r0, r2, r3
+ str r0, [r1]
+ ldr r1, _080E8A70 @ =0x00009d54
+ adds r0, r2, r1
+ ldrb r0, [r0]
+ subs r0, 0x4
+ ldr r3, _080E8A74 @ =0x00009f9d
+ adds r1, r2, r3
+ strb r0, [r1]
+ movs r4, 0
+ adds r5, r2, 0
+ adds r5, 0xB4
+ movs r0, 0x5
+ negs r0, r0
+ mov r12, r0
+ movs r6, 0x1
+_080E89E2:
+ lsls r3, r4, 2
+ adds r3, r5, r3
+ ldr r1, [r3]
+ adds r1, 0x3E
+ ldrb r2, [r1]
+ mov r0, r12
+ ands r0, r2
+ strb r0, [r1]
+ ldr r0, [r3]
+ strh r6, [r0, 0x30]
+ adds r0, r4, 0x1
+ lsls r0, 16
+ lsrs r4, r0, 16
+ cmp r4, 0x1
+ bls _080E89E2
+_080E8A00:
+ ldr r0, _080E8A64 @ =gUnknown_083DB694
+ ldr r2, [r0]
+ ldr r3, _080E8A74 @ =0x00009f9d
+ adds r1, r2, r3
+ movs r0, 0
+ ldrsb r0, [r1, r0]
+ cmp r0, 0
+ bge _080E8A14
+ movs r0, 0
+ strb r0, [r1]
+_080E8A14:
+ movs r4, 0
+ adds r6, r2, 0
+ adds r6, 0xAC
+ movs r0, 0x5
+ negs r0, r0
+ mov r8, r0
+_080E8A20:
+ lsls r2, r4, 2
+ adds r2, r6, r2
+ ldr r0, [r2]
+ mov r1, r9
+ strh r1, [r0, 0x20]
+ ldr r1, [r2]
+ adds r1, 0x3E
+ ldrb r0, [r1]
+ mov r3, r8
+ ands r0, r3
+ strb r0, [r1]
+ ldr r0, [r2]
+ movs r5, 0x1
+ strh r5, [r0, 0x30]
+ ldr r0, [r2]
+ adds r1, r7, 0
+ bl StartSpriteAnim
+ adds r0, r4, 0x1
+ lsls r0, 16
+ lsrs r4, r0, 16
+ cmp r4, 0x1
+ bls _080E8A20
+ ldr r0, _080E8A64 @ =gUnknown_083DB694
+ ldr r0, [r0]
+ ldr r1, _080E8A78 @ =0x00009f9c
+ adds r0, r1
+ strb r5, [r0]
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E8A64: .4byte gUnknown_083DB694
+_080E8A68: .4byte 0x00009f98
+_080E8A6C: .4byte 0x00009d55
+_080E8A70: .4byte 0x00009d54
+_080E8A74: .4byte 0x00009f9d
+_080E8A78: .4byte 0x00009f9c
+ thumb_func_end sub_80E8958
+
+ thumb_func_start sub_80E8A7C
+sub_80E8A7C: @ 80E8A7C
+ push {r4-r7,lr}
+ sub sp, 0x18
+ mov r1, sp
+ ldr r0, _080E8B68 @ =gSpriteTemplate_83DBD18
+ ldm r0!, {r2-r4}
+ stm r1!, {r2-r4}
+ ldm r0!, {r2-r4}
+ stm r1!, {r2-r4}
+ movs r5, 0
+_080E8A8E:
+ lsls r2, r5, 3
+ adds r2, r5
+ lsls r2, 19
+ movs r0, 0xA8
+ lsls r0, 15
+ adds r2, r0
+ asrs r2, 16
+ mov r0, sp
+ movs r1, 0
+ movs r3, 0
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r1, r0, 24
+ ldr r0, _080E8B6C @ =gUnknown_083DB694
+ ldr r2, [r0]
+ lsls r0, r5, 2
+ adds r2, 0xAC
+ adds r2, r0
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _080E8B70 @ =gSprites
+ adds r0, r1
+ str r0, [r2]
+ strh r5, [r0, 0x2E]
+ ldr r3, [r2]
+ adds r3, 0x3F
+ movs r0, 0x1
+ adds r2, r5, 0
+ ands r2, r0
+ lsls r2, 1
+ ldrb r0, [r3]
+ movs r4, 0x3
+ negs r4, r4
+ adds r1, r4, 0
+ ands r0, r1
+ orrs r0, r2
+ strb r0, [r3]
+ adds r0, r5, 0x1
+ lsls r0, 16
+ lsrs r5, r0, 16
+ cmp r5, 0x1
+ bls _080E8A8E
+ mov r0, sp
+ movs r1, 0x3
+ strh r1, [r0]
+ ldr r0, _080E8B74 @ =gSpriteAnimTable_83DBD10
+ str r0, [sp, 0x8]
+ movs r5, 0
+ movs r7, 0x3F
+ movs r6, 0x40
+_080E8AF6:
+ lsls r4, r5, 2
+ adds r1, r4, r5
+ lsls r1, 19
+ movs r0, 0x8E
+ lsls r0, 16
+ adds r1, r0
+ asrs r1, 16
+ mov r0, sp
+ movs r2, 0x58
+ movs r3, 0
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r1, r0, 24
+ ldr r0, _080E8B6C @ =gUnknown_083DB694
+ ldr r2, [r0]
+ adds r2, 0xB4
+ adds r2, r4
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _080E8B70 @ =gSprites
+ adds r0, r1
+ str r0, [r2]
+ strh r5, [r0, 0x2E]
+ ldr r3, [r2]
+ ldrb r1, [r3, 0x1]
+ adds r0, r7, 0
+ ands r0, r1
+ orrs r0, r6
+ strb r0, [r3, 0x1]
+ ldr r3, [r2]
+ ldrb r1, [r3, 0x3]
+ adds r0, r7, 0
+ ands r0, r1
+ orrs r0, r6
+ strb r0, [r3, 0x3]
+ ldr r0, [r2]
+ lsls r1, r5, 24
+ lsrs r1, 24
+ bl StartSpriteAnim
+ adds r0, r5, 0x1
+ lsls r0, 16
+ lsrs r5, r0, 16
+ cmp r5, 0x1
+ bls _080E8AF6
+ movs r0, 0
+ bl sub_80E8958
+ bl sub_80E88F0
+ add sp, 0x18
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E8B68: .4byte gSpriteTemplate_83DBD18
+_080E8B6C: .4byte gUnknown_083DB694
+_080E8B70: .4byte gSprites
+_080E8B74: .4byte gSpriteAnimTable_83DBD10
+ thumb_func_end sub_80E8A7C
+
+ thumb_func_start sub_80E8B78
+sub_80E8B78: @ 80E8B78
+ push {r4,lr}
+ adds r3, r0, 0
+ ldr r0, _080E8BB0 @ =gUnknown_083DB694
+ ldr r1, [r0]
+ ldr r2, _080E8BB4 @ =0x00009f9c
+ adds r0, r1, r2
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _080E8BE8
+ movs r2, 0x30
+ ldrsh r0, [r3, r2]
+ cmp r0, 0
+ beq _080E8BE8
+ movs r2, 0x2E
+ ldrsh r0, [r3, r2]
+ cmp r0, 0
+ bne _080E8BBC
+ movs r4, 0
+ ldr r2, _080E8BB8 @ =0x00009f98
+ adds r0, r1, r2
+ ldr r0, [r0]
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ cmp r0, 0
+ bne _080E8BD6
+ b _080E8BD4
+ .align 2, 0
+_080E8BB0: .4byte gUnknown_083DB694
+_080E8BB4: .4byte 0x00009f9c
+_080E8BB8: .4byte 0x00009f98
+_080E8BBC:
+ movs r4, 0
+ ldr r2, _080E8BF0 @ =0x00009f98
+ adds r0, r1, r2
+ ldr r0, [r0]
+ adds r2, 0x5
+ adds r1, r2
+ movs r2, 0
+ ldrsb r2, [r0, r2]
+ movs r0, 0
+ ldrsb r0, [r1, r0]
+ cmp r2, r0
+ bne _080E8BD6
+_080E8BD4:
+ movs r4, 0x1
+_080E8BD6:
+ adds r2, r3, 0
+ adds r2, 0x3E
+ lsls r3, r4, 2
+ ldrb r1, [r2]
+ movs r0, 0x5
+ negs r0, r0
+ ands r0, r1
+ orrs r0, r3
+ strb r0, [r2]
+_080E8BE8:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E8BF0: .4byte 0x00009f98
+ thumb_func_end sub_80E8B78
+
+ thumb_func_start sub_80E8BF4
+sub_80E8BF4: @ 80E8BF4
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ sub sp, 0x14
+ lsls r0, 24
+ lsrs r3, r0, 24
+ lsls r1, 24
+ lsrs r2, r1, 24
+ ldr r0, _080E8C28 @ =gUnknown_083DBD30
+ ldr r1, [r0, 0x4]
+ ldr r0, [r0]
+ str r0, [sp, 0x4]
+ str r1, [sp, 0x8]
+ ldr r0, _080E8C2C @ =gUnknown_083DBD38
+ ldr r1, [r0, 0x4]
+ ldr r0, [r0]
+ str r0, [sp, 0xC]
+ str r1, [sp, 0x10]
+ cmp r2, 0x2
+ beq _080E8C20
+ cmp r2, 0x5
+ beq _080E8C30
+_080E8C20:
+ movs r4, 0x40
+ movs r5, 0x28
+ b _080E8C34
+ .align 2, 0
+_080E8C28: .4byte gUnknown_083DBD30
+_080E8C2C: .4byte gUnknown_083DBD38
+_080E8C30:
+ movs r4, 0x24
+ movs r5, 0x30
+_080E8C34:
+ cmp r3, 0
+ beq _080E8C3C
+ cmp r3, 0x1
+ beq _080E8C40
+_080E8C3C:
+ movs r0, 0x43
+ b _080E8C42
+_080E8C40:
+ movs r0, 0x44
+_080E8C42:
+ mov r8, r0
+ add r0, sp, 0x4
+ bl LoadCompressedObjectPic
+ add r0, sp, 0xC
+ bl LoadSpritePalette
+ ldr r0, _080E8CDC @ =gSpriteTemplate_83DBD48
+ adds r1, r4, 0
+ adds r2, r5, 0
+ movs r3, 0x1
+ bl CreateSprite
+ ldr r0, _080E8CE0 @ =gSaveBlock2
+ ldrb r0, [r0, 0x8]
+ movs r1, 0x69
+ cmp r0, 0
+ bne _080E8C68
+ movs r1, 0x64
+_080E8C68:
+ ldr r7, _080E8CE4 @ =SpriteCallbackDummy
+ adds r2, r4, 0
+ subs r2, 0xC
+ movs r6, 0
+ str r6, [sp]
+ adds r0, r1, 0
+ adds r1, r7, 0
+ adds r3, r5, 0
+ bl AddPseudoFieldObject
+ lsls r0, 24
+ lsrs r2, r0, 24
+ cmp r2, 0x40
+ beq _080E8C9E
+ ldr r1, _080E8CE8 @ =gSprites
+ lsls r0, r2, 4
+ adds r0, r2
+ lsls r0, 2
+ adds r0, r1
+ ldrb r2, [r0, 0x5]
+ movs r1, 0xD
+ negs r1, r1
+ ands r1, r2
+ strb r1, [r0, 0x5]
+ movs r1, 0x3
+ bl StartSpriteAnim
+_080E8C9E:
+ adds r2, r4, 0
+ adds r2, 0xC
+ str r6, [sp]
+ mov r0, r8
+ adds r1, r7, 0
+ adds r3, r5, 0
+ bl AddPseudoFieldObject
+ lsls r0, 24
+ lsrs r2, r0, 24
+ cmp r2, 0x40
+ beq _080E8CD0
+ ldr r1, _080E8CE8 @ =gSprites
+ lsls r0, r2, 4
+ adds r0, r2
+ lsls r0, 2
+ adds r0, r1
+ ldrb r2, [r0, 0x5]
+ movs r1, 0xD
+ negs r1, r1
+ ands r1, r2
+ strb r1, [r0, 0x5]
+ movs r1, 0x2
+ bl StartSpriteAnim
+_080E8CD0:
+ add sp, 0x14
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E8CDC: .4byte gSpriteTemplate_83DBD48
+_080E8CE0: .4byte gSaveBlock2
+_080E8CE4: .4byte SpriteCallbackDummy
+_080E8CE8: .4byte gSprites
+ thumb_func_end sub_80E8BF4
+
+ thumb_func_start sub_80E8CEC
+sub_80E8CEC: @ 80E8CEC
+ push {lr}
+ ldr r0, _080E8D24 @ =gUnknown_083DBD60
+ bl LoadCompressedObjectPic
+ ldr r0, _080E8D28 @ =gUnknown_083DBD68
+ bl LoadSpritePalette
+ ldr r0, _080E8D2C @ =gSpriteTemplate_83DBDE4
+ movs r1, 0xE0
+ movs r2, 0x58
+ movs r3, 0
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r1, r0, 24
+ cmp r1, 0x40
+ beq _080E8D3C
+ ldr r0, _080E8D30 @ =gUnknown_083DB694
+ ldr r2, [r0]
+ ldr r0, _080E8D34 @ =0x00009fa0
+ adds r2, r0
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _080E8D38 @ =gSprites
+ adds r0, r1
+ str r0, [r2]
+ b _080E8D48
+ .align 2, 0
+_080E8D24: .4byte gUnknown_083DBD60
+_080E8D28: .4byte gUnknown_083DBD68
+_080E8D2C: .4byte gSpriteTemplate_83DBDE4
+_080E8D30: .4byte gUnknown_083DB694
+_080E8D34: .4byte 0x00009fa0
+_080E8D38: .4byte gSprites
+_080E8D3C:
+ ldr r0, _080E8D4C @ =gUnknown_083DB694
+ ldr r0, [r0]
+ ldr r1, _080E8D50 @ =0x00009fa0
+ adds r0, r1
+ movs r1, 0
+ str r1, [r0]
+_080E8D48:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E8D4C: .4byte gUnknown_083DB694
+_080E8D50: .4byte 0x00009fa0
+ thumb_func_end sub_80E8CEC
+
+ thumb_func_start sub_80E8D54
+sub_80E8D54: @ 80E8D54
+ push {lr}
+ ldr r0, _080E8D78 @ =gUnknown_083DB694
+ ldr r2, [r0]
+ ldr r1, _080E8D7C @ =0x00009fa0
+ adds r0, r2, r1
+ ldr r1, [r0]
+ cmp r1, 0
+ beq _080E8D88
+ adds r0, r2, 0
+ adds r0, 0x26
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _080E8D80
+ adds r0, r1, 0
+ movs r1, 0x1
+ bl StartSpriteAnim
+ b _080E8D88
+ .align 2, 0
+_080E8D78: .4byte gUnknown_083DB694
+_080E8D7C: .4byte 0x00009fa0
+_080E8D80:
+ adds r0, r1, 0
+ movs r1, 0x2
+ bl StartSpriteAnim
+_080E8D88:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80E8D54
+
+ thumb_func_start sub_80E8D8C
+sub_80E8D8C: @ 80E8D8C
+ push {lr}
+ lsls r0, 24
+ lsrs r3, r0, 24
+ ldr r0, _080E8DB8 @ =gUnknown_083DB694
+ ldr r2, [r0]
+ ldr r1, _080E8DBC @ =0x00009fa0
+ adds r0, r2, r1
+ ldr r1, [r0]
+ cmp r1, 0
+ beq _080E8DD2
+ cmp r3, 0
+ beq _080E8DCA
+ adds r0, r2, 0
+ adds r0, 0x26
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _080E8DC0
+ adds r0, r1, 0
+ movs r1, 0x3
+ bl StartSpriteAnim
+ b _080E8DD2
+ .align 2, 0
+_080E8DB8: .4byte gUnknown_083DB694
+_080E8DBC: .4byte 0x00009fa0
+_080E8DC0:
+ adds r0, r1, 0
+ movs r1, 0x4
+ bl StartSpriteAnim
+ b _080E8DD2
+_080E8DCA:
+ adds r0, r1, 0
+ movs r1, 0x5
+ bl StartSpriteAnim
+_080E8DD2:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80E8D8C
+
+ thumb_func_start sub_80E8DD8
+sub_80E8DD8: @ 80E8DD8
+ push {r4-r6,lr}
+ mov r6, r9
+ mov r5, r8
+ push {r5,r6}
+ sub sp, 0x8
+ ldr r0, _080E8F2C @ =REG_BG0HOFS
+ movs r6, 0
+ strh r6, [r0]
+ adds r0, 0x2
+ strh r6, [r0]
+ adds r0, 0x2
+ strh r6, [r0]
+ adds r0, 0x2
+ strh r6, [r0]
+ adds r0, 0x4
+ strh r6, [r0]
+ subs r0, 0x2
+ strh r6, [r0]
+ adds r0, 0x4
+ strh r6, [r0]
+ adds r0, 0x2
+ strh r6, [r0]
+ ldr r1, _080E8F30 @ =REG_BG0CNT
+ movs r2, 0x8B
+ lsls r2, 8
+ adds r0, r2, 0
+ strh r0, [r1]
+ adds r1, 0x2
+ ldr r2, _080E8F34 @ =0x00000d09
+ adds r0, r2, 0
+ strh r0, [r1]
+ ldr r0, _080E8F38 @ =gUnknown_08E945D0
+ ldr r1, _080E8F3C @ =gUnknown_083DB694
+ ldr r1, [r1]
+ mov r8, r1
+ movs r4, 0xE4
+ lsls r4, 1
+ add r4, r8
+ movs r5, 0xA0
+ lsls r5, 2
+ adds r1, r4, 0
+ adds r2, r5, 0
+ bl CpuSet
+ ldr r0, _080E8F40 @ =gUnknown_08E953D0
+ movs r1, 0xD9
+ lsls r1, 3
+ add r1, r8
+ bl LZ77UnCompWram
+ ldr r0, _080E8F44 @ =gMenuWordGroupFrame_Gfx
+ ldr r1, _080E8F48 @ =0x06008000
+ bl LZ77UnCompVram
+ ldr r1, _080E8F4C @ =0x06006800
+ adds r0, r4, 0
+ adds r2, r5, 0
+ bl CpuSet
+ ldr r0, _080E8F50 @ =gMenuWordGroupFrame1_Pal
+ movs r1, 0x40
+ movs r2, 0x40
+ bl LoadPalette
+ ldr r1, _080E8F54 @ =REG_BG2CNT
+ ldr r2, _080E8F58 @ =0x00000e02
+ adds r0, r2, 0
+ strh r0, [r1]
+ ldr r1, _080E8F5C @ =0x06007000
+ movs r5, 0x80
+ lsls r5, 4
+ mov r0, sp
+ strh r6, [r0]
+ ldr r4, _080E8F60 @ =0x040000d4
+ str r0, [r4]
+ str r1, [r4, 0x4]
+ lsrs r0, r5, 1
+ movs r2, 0x81
+ lsls r2, 24
+ orrs r0, r2
+ str r0, [r4, 0x8]
+ ldr r0, [r4, 0x8]
+ ldr r0, _080E8F64 @ =gUnknown_08E9AB00
+ ldr r2, _080E8F68 @ =0x06006000
+ str r0, [r4]
+ str r2, [r4, 0x4]
+ ldr r0, _080E8F6C @ =0x80000020
+ str r0, [r4, 0x8]
+ ldr r0, [r4, 0x8]
+ ldr r0, _080E8F70 @ =gUnknown_08E9AB60
+ bl LZ77UnCompVram
+ ldr r0, _080E8F74 @ =gUnknown_08E9AB40
+ movs r1, 0
+ movs r2, 0x20
+ bl LoadPalette
+ ldr r0, _080E8F78 @ =gUnknown_083DBDFC
+ movs r1, 0x10
+ movs r2, 0x20
+ bl LoadPalette
+ ldr r1, _080E8F7C @ =REG_BG3CNT
+ ldr r2, _080E8F80 @ =0x00000f0f
+ adds r0, r2, 0
+ strh r0, [r1]
+ ldr r1, _080E8F84 @ =0x06007800
+ movs r0, 0
+ mov r9, r0
+ str r0, [sp, 0x4]
+ add r0, sp, 0x4
+ str r0, [r4]
+ str r1, [r4, 0x4]
+ lsrs r5, 2
+ movs r0, 0x85
+ lsls r0, 24
+ orrs r5, r0
+ str r5, [r4, 0x8]
+ ldr r0, [r4, 0x8]
+ ldr r0, _080E8F88 @ =gUnknown_083DBE40
+ movs r1, 0x20
+ movs r2, 0x20
+ bl LoadPalette
+ ldr r0, _080E8F8C @ =gPlttBufferUnfaded
+ adds r1, r0, 0
+ adds r1, 0x7E
+ ldr r3, _080E8F90 @ =0x00007fff
+ strh r3, [r1]
+ subs r1, 0x1C
+ ldr r2, _080E8F94 @ =0x00006f5b
+ strh r2, [r1]
+ adds r0, 0x70
+ ldr r1, _080E8F98 @ =0x0000739c
+ strh r1, [r0]
+ ldr r0, _080E8F9C @ =gPlttBufferFaded
+ adds r4, r0, 0
+ adds r4, 0x7E
+ strh r3, [r4]
+ adds r3, r0, 0
+ adds r3, 0x62
+ strh r2, [r3]
+ adds r0, 0x70
+ strh r1, [r0]
+ movs r1, 0xBC
+ add r8, r1
+ mov r2, r8
+ strb r6, [r2]
+ bl sub_80E8FA4
+ bl sub_80E948C
+ movs r0, 0xA
+ bl sub_80E9198
+ movs r0, 0
+ bl sub_80E91D4
+ bl sub_80E95A4
+ ldr r0, _080E8FA0 @ =REG_BLDCNT
+ mov r1, r9
+ strh r1, [r0]
+ add sp, 0x8
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E8F2C: .4byte REG_BG0HOFS
+_080E8F30: .4byte REG_BG0CNT
+_080E8F34: .4byte 0x00000d09
+_080E8F38: .4byte gUnknown_08E945D0
+_080E8F3C: .4byte gUnknown_083DB694
+_080E8F40: .4byte gUnknown_08E953D0
+_080E8F44: .4byte gMenuWordGroupFrame_Gfx
+_080E8F48: .4byte 0x06008000
+_080E8F4C: .4byte 0x06006800
+_080E8F50: .4byte gMenuWordGroupFrame1_Pal
+_080E8F54: .4byte REG_BG2CNT
+_080E8F58: .4byte 0x00000e02
+_080E8F5C: .4byte 0x06007000
+_080E8F60: .4byte 0x040000d4
+_080E8F64: .4byte gUnknown_08E9AB00
+_080E8F68: .4byte 0x06006000
+_080E8F6C: .4byte 0x80000020
+_080E8F70: .4byte gUnknown_08E9AB60
+_080E8F74: .4byte gUnknown_08E9AB40
+_080E8F78: .4byte gUnknown_083DBDFC
+_080E8F7C: .4byte REG_BG3CNT
+_080E8F80: .4byte 0x00000f0f
+_080E8F84: .4byte 0x06007800
+_080E8F88: .4byte gUnknown_083DBE40
+_080E8F8C: .4byte gPlttBufferUnfaded
+_080E8F90: .4byte 0x00007fff
+_080E8F94: .4byte 0x00006f5b
+_080E8F98: .4byte 0x0000739c
+_080E8F9C: .4byte gPlttBufferFaded
+_080E8FA0: .4byte REG_BLDCNT
+ thumb_func_end sub_80E8DD8
+
+ thumb_func_start sub_80E8FA4
+sub_80E8FA4: @ 80E8FA4
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x2C
+ movs r0, 0
+ mov r9, r0
+ mov r1, sp
+ adds r1, 0x18
+ str r1, [sp, 0x24]
+ add r2, sp, 0xC
+ mov r12, r2
+_080E8FBE:
+ mov r3, r9
+ lsls r1, r3, 1
+ ldr r4, _080E90F4 @ =0x08e8f136
+ adds r0, r1, r4
+ ldrh r2, [r0]
+ movs r0, 0x1F
+ ands r0, r2
+ lsls r0, 8
+ str r0, [sp]
+ ldr r5, _080E90F8 @ =0x08e8f13c
+ adds r1, r5
+ ldrh r1, [r1]
+ movs r0, 0x1F
+ ands r0, r1
+ lsls r0, 8
+ str r0, [sp, 0xC]
+ lsls r2, 16
+ lsrs r0, r2, 21
+ movs r3, 0x1F
+ ands r0, r3
+ lsls r0, 8
+ str r0, [sp, 0x4]
+ lsls r1, 16
+ lsrs r0, r1, 21
+ ands r0, r3
+ lsls r0, 8
+ mov r4, r12
+ str r0, [r4, 0x4]
+ lsrs r2, 26
+ ands r2, r3
+ lsls r2, 8
+ str r2, [sp, 0x8]
+ lsrs r1, 26
+ ands r1, r3
+ lsls r1, 8
+ str r1, [r4, 0x8]
+ movs r3, 0
+ mov r5, r9
+ lsls r5, 3
+ mov r10, r5
+ mov r0, r9
+ adds r0, 0x1
+ str r0, [sp, 0x28]
+ ldr r4, [sp, 0x24]
+_080E9016:
+ lsls r0, r3, 2
+ adds r2, r4, r0
+ mov r5, r12
+ adds r1, r5, r0
+ add r0, sp
+ ldr r1, [r1]
+ ldr r0, [r0]
+ subs r0, r1, r0
+ cmp r0, 0
+ bge _080E902C
+ adds r0, 0x7
+_080E902C:
+ asrs r0, 3
+ str r0, [r2]
+ adds r0, r3, 0x1
+ lsls r0, 16
+ lsrs r3, r0, 16
+ cmp r3, 0x2
+ bls _080E9016
+ movs r4, 0
+ ldr r0, _080E90FC @ =gUnknown_083DB694
+ ldr r1, [r0]
+ mov r0, r10
+ add r0, r9
+ lsls r0, 1
+ mov r8, r0
+ movs r5, 0x1F
+ ldr r6, [sp, 0x24]
+ ldr r0, _080E9100 @ =0x00009f60
+ adds r7, r1, r0
+_080E9050:
+ lsls r2, r4, 1
+ add r2, r8
+ adds r2, r7, r2
+ ldr r1, [sp, 0x8]
+ asrs r1, 8
+ ands r1, r5
+ lsls r1, 10
+ ldr r0, [sp, 0x4]
+ asrs r0, 8
+ ands r0, r5
+ lsls r0, 5
+ orrs r1, r0
+ ldr r0, [sp]
+ asrs r0, 8
+ ands r0, r5
+ orrs r1, r0
+ strh r1, [r2]
+ movs r3, 0
+ adds r4, 0x1
+_080E9076:
+ lsls r0, r3, 2
+ mov r1, sp
+ adds r2, r1, r0
+ adds r0, r6, r0
+ ldr r1, [r2]
+ ldr r0, [r0]
+ adds r1, r0
+ str r1, [r2]
+ adds r0, r3, 0x1
+ lsls r0, 16
+ lsrs r3, r0, 16
+ cmp r3, 0x2
+ bls _080E9076
+ lsls r0, r4, 16
+ lsrs r4, r0, 16
+ cmp r4, 0x7
+ bls _080E9050
+ ldr r2, _080E90FC @ =gUnknown_083DB694
+ ldr r3, [r2]
+ mov r0, r10
+ add r0, r9
+ adds r0, r4
+ lsls r0, 1
+ ldr r4, _080E9100 @ =0x00009f60
+ adds r2, r3, r4
+ adds r2, r0
+ mov r5, r12
+ ldr r1, [r5, 0x8]
+ asrs r1, 8
+ movs r0, 0x1F
+ ands r1, r0
+ lsls r1, 10
+ ldr r0, [r5, 0x4]
+ asrs r0, 8
+ movs r4, 0x1F
+ ands r0, r4
+ lsls r0, 5
+ orrs r1, r0
+ ldr r0, [sp, 0xC]
+ asrs r0, 8
+ ands r0, r4
+ orrs r1, r0
+ strh r1, [r2]
+ ldr r5, [sp, 0x28]
+ lsls r0, r5, 16
+ lsrs r0, 16
+ mov r9, r0
+ cmp r0, 0x2
+ bhi _080E90DA
+ b _080E8FBE
+_080E90DA:
+ ldr r0, _080E9104 @ =0x00009f5e
+ adds r1, r3, r0
+ movs r0, 0
+ strb r0, [r1]
+ add sp, 0x2C
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E90F4: .4byte 0x08e8f136
+_080E90F8: .4byte 0x08e8f13c
+_080E90FC: .4byte gUnknown_083DB694
+_080E9100: .4byte 0x00009f60
+_080E9104: .4byte 0x00009f5e
+ thumb_func_end sub_80E8FA4
+
+ thumb_func_start sub_80E9108
+sub_80E9108: @ 80E9108
+ push {r4-r7,lr}
+ lsls r0, 24
+ ldr r1, _080E9164 @ =gUnknown_083DB694
+ ldr r2, [r1]
+ ldr r3, _080E9168 @ =0x00009f5e
+ adds r1, r2, r3
+ lsrs r0, 24
+ ldrb r3, [r1]
+ adds r0, r3
+ strb r0, [r1]
+ movs r4, 0
+ ldr r0, _080E916C @ =gPlttBufferUnfaded
+ mov r12, r0
+ adds r6, r1, 0
+ ldr r3, _080E9170 @ =0x00009f60
+ adds r5, r2, r3
+ ldr r7, _080E9174 @ =gPlttBufferFaded
+_080E912A:
+ adds r2, r4, 0
+ adds r2, 0x51
+ lsls r2, 1
+ mov r0, r12
+ adds r3, r2, r0
+ ldrb r0, [r6]
+ lsls r0, 1
+ lsls r1, r4, 3
+ adds r1, r4
+ lsls r1, 1
+ adds r0, r1
+ adds r0, r5, r0
+ ldrh r0, [r0]
+ strh r0, [r3]
+ adds r2, r7
+ ldrb r0, [r6]
+ lsls r0, 1
+ adds r0, r1
+ adds r0, r5, r0
+ ldrh r0, [r0]
+ strh r0, [r2]
+ adds r0, r4, 0x1
+ lsls r0, 16
+ lsrs r4, r0, 16
+ cmp r4, 0x2
+ bls _080E912A
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E9164: .4byte gUnknown_083DB694
+_080E9168: .4byte 0x00009f5e
+_080E916C: .4byte gPlttBufferUnfaded
+_080E9170: .4byte 0x00009f60
+_080E9174: .4byte gPlttBufferFaded
+ thumb_func_end sub_80E9108
+
+ thumb_func_start sub_80E9178
+sub_80E9178: @ 80E9178
+ push {lr}
+ ldr r0, _080E9190 @ =gUnknown_083DB694
+ ldr r0, [r0]
+ ldr r1, _080E9194 @ =0x00009f5e
+ adds r0, r1
+ movs r1, 0
+ strb r1, [r0]
+ movs r0, 0
+ bl sub_80E9108
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E9190: .4byte gUnknown_083DB694
+_080E9194: .4byte 0x00009f5e
+ thumb_func_end sub_80E9178
+
+ thumb_func_start sub_80E9198
+sub_80E9198: @ 80E9198
+ ldr r1, _080E91A0 @ =gUnknown_03000740
+ strb r0, [r1]
+ bx lr
+ .align 2, 0
+_080E91A0: .4byte gUnknown_03000740
+ thumb_func_end sub_80E9198
+
+ thumb_func_start sub_80E91A4
+sub_80E91A4: @ 80E91A4
+ ldr r0, _080E91AC @ =gUnknown_03000740
+ ldrb r0, [r0]
+ bx lr
+ .align 2, 0
+_080E91AC: .4byte gUnknown_03000740
+ thumb_func_end sub_80E91A4
+
+ thumb_func_start sub_80E91B0
+sub_80E91B0: @ 80E91B0
+ push {lr}
+ sub sp, 0x8
+ lsls r2, 24
+ lsls r1, 27
+ lsrs r1, 24
+ lsrs r2, 21
+ lsls r3, 27
+ lsrs r3, 24
+ str r3, [sp]
+ movs r3, 0x1
+ str r3, [sp, 0x4]
+ movs r3, 0xB0
+ bl sub_8072AB0
+ add sp, 0x8
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80E91B0
+
+ thumb_func_start sub_80E91D4
+sub_80E91D4: @ 80E91D4
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ adds r4, r0, 0
+ ldr r0, _080E91FC @ =gWindowConfig_81E6DA8
+ bl BasicInitMenuWindow
+ cmp r4, 0xA
+ bne _080E9200
+ movs r0, 0x3
+ movs r1, 0xE
+ movs r2, 0x1A
+ movs r3, 0x13
+ bl MenuZeroFillWindowRect
+ movs r0, 0xA
+ bl sub_80E9198
+ b _080E935C
+ .align 2, 0
+_080E91FC: .4byte gWindowConfig_81E6DA8
+_080E9200:
+ bl sub_80E91A4
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0xA
+ bne _080E9218
+ movs r0, 0x3
+ movs r1, 0xE
+ movs r2, 0x1A
+ movs r3, 0x13
+ bl MenuDrawTextWindow
+_080E9218:
+ adds r0, r4, 0
+ bl sub_80E9198
+ cmp r4, 0x9
+ bls _080E9224
+ b _080E935C
+_080E9224:
+ lsls r0, r4, 2
+ ldr r1, _080E9230 @ =_080E9234
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080E9230: .4byte _080E9234
+ .align 2, 0
+_080E9234:
+ .4byte _080E925C
+ .4byte _080E9284
+ .4byte _080E92AC
+ .4byte _080E92C4
+ .4byte _080E92F0
+ .4byte _080E9308
+ .4byte _080E9310
+ .4byte _080E9318
+ .4byte _080E933C
+ .4byte _080E9350
+_080E925C:
+ ldr r0, _080E9278 @ =gUnknown_083DB694
+ ldr r4, [r0]
+ ldr r1, _080E927C @ =0x00009fac
+ adds r0, r4, r1
+ movs r1, 0x4
+ movs r2, 0xF
+ movs r3, 0x2
+ bl sub_80E91B0
+ ldr r0, _080E9280 @ =0x00009ff5
+ adds r4, r0
+ adds r0, r4, 0
+ b _080E9326
+ .align 2, 0
+_080E9278: .4byte gUnknown_083DB694
+_080E927C: .4byte 0x00009fac
+_080E9280: .4byte 0x00009ff5
+_080E9284:
+ ldr r0, _080E92A0 @ =gUnknown_083DB694
+ ldr r4, [r0]
+ ldr r1, _080E92A4 @ =0x0000a03e
+ adds r0, r4, r1
+ movs r1, 0x4
+ movs r2, 0xF
+ movs r3, 0x2
+ bl sub_80E91B0
+ ldr r0, _080E92A8 @ =0x0000a087
+ adds r4, r0
+ adds r0, r4, 0
+ b _080E9326
+ .align 2, 0
+_080E92A0: .4byte gUnknown_083DB694
+_080E92A4: .4byte 0x0000a03e
+_080E92A8: .4byte 0x0000a087
+_080E92AC:
+ ldr r0, _080E92BC @ =gOtherText_TextDeletedConfirmPage1
+ movs r1, 0x4
+ movs r2, 0xF
+ movs r3, 0x2
+ bl sub_80E91B0
+ ldr r0, _080E92C0 @ =gOtherText_TextDeletedConfirmPage2
+ b _080E9326
+ .align 2, 0
+_080E92BC: .4byte gOtherText_TextDeletedConfirmPage1
+_080E92C0: .4byte gOtherText_TextDeletedConfirmPage2
+_080E92C4:
+ ldr r0, _080E92D8 @ =gUnknown_083DB694
+ ldr r0, [r0]
+ ldrb r0, [r0, 0x8]
+ cmp r0, 0x4
+ beq _080E92E0
+ cmp r0, 0x9
+ bne _080E92E8
+ ldr r0, _080E92DC @ =gOtherText_QuitGivingInfo
+ b _080E933E
+ .align 2, 0
+_080E92D8: .4byte gUnknown_083DB694
+_080E92DC: .4byte gOtherText_QuitGivingInfo
+_080E92E0:
+ ldr r0, _080E92E4 @ =gOtherText_StopGivingMail
+ b _080E933E
+ .align 2, 0
+_080E92E4: .4byte gOtherText_StopGivingMail
+_080E92E8:
+ ldr r0, _080E92EC @ =gOtherText_QuitEditing
+ b _080E933E
+ .align 2, 0
+_080E92EC: .4byte gOtherText_QuitEditing
+_080E92F0:
+ ldr r0, _080E9300 @ =gOtherText_EditedTextNoSavePage1
+ movs r1, 0x4
+ movs r2, 0xF
+ movs r3, 0x2
+ bl sub_80E91B0
+ ldr r0, _080E9304 @ =gOtherText_EditedTextNoSavePage2
+ b _080E9326
+ .align 2, 0
+_080E9300: .4byte gOtherText_EditedTextNoSavePage1
+_080E9304: .4byte gOtherText_EditedTextNoSavePage2
+_080E9308:
+ ldr r0, _080E930C @ =gOtherText_EnterAPhraseOrWord
+ b _080E933E
+ .align 2, 0
+_080E930C: .4byte gOtherText_EnterAPhraseOrWord
+_080E9310:
+ ldr r0, _080E9314 @ =gOtherText_TextNoDelete
+ b _080E933E
+ .align 2, 0
+_080E9314: .4byte gOtherText_TextNoDelete
+_080E9318:
+ ldr r0, _080E9334 @ =gOtherText_OnlyOnePhrase
+ movs r1, 0x4
+ movs r2, 0xF
+ movs r3, 0x2
+ bl sub_80E91B0
+ ldr r0, _080E9338 @ =gOtherText_OriginalSongRestored
+_080E9326:
+ movs r1, 0x4
+ movs r2, 0x11
+ movs r3, 0x2
+ bl sub_80E91B0
+ b _080E935C
+ .align 2, 0
+_080E9334: .4byte gOtherText_OnlyOnePhrase
+_080E9338: .4byte gOtherText_OriginalSongRestored
+_080E933C:
+ ldr r0, _080E934C @ =gOtherText_TrendyAlready
+_080E933E:
+ movs r1, 0x4
+ movs r2, 0xF
+ movs r3, 0x4
+ bl sub_80E91B0
+ b _080E935C
+ .align 2, 0
+_080E934C: .4byte gOtherText_TrendyAlready
+_080E9350:
+ ldr r0, _080E9364 @ =gOtherText_CombineTwoPhrases
+ movs r1, 0x4
+ movs r2, 0xF
+ movs r3, 0x4
+ bl sub_80E91B0
+_080E935C:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E9364: .4byte gOtherText_CombineTwoPhrases
+ thumb_func_end sub_80E91D4
+
+ thumb_func_start sub_80E9368
+sub_80E9368: @ 80E9368
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0xD
+ bhi _080E93F8
+ lsls r0, 2
+ ldr r1, _080E937C @ =_080E9380
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080E937C: .4byte _080E9380
+ .align 2, 0
+_080E9380:
+ .4byte _080E93B8
+ .4byte _080E93C0
+ .4byte _080E93C8
+ .4byte _080E93D0
+ .4byte _080E93F8
+ .4byte _080E93E8
+ .4byte _080E93D8
+ .4byte _080E93E8
+ .4byte _080E93E8
+ .4byte _080E93E0
+ .4byte _080E93E8
+ .4byte _080E93E8
+ .4byte _080E93E8
+ .4byte _080E93F0
+_080E93B8:
+ ldr r4, _080E93BC @ =gOtherText_Profile
+ b _080E93FA
+ .align 2, 0
+_080E93BC: .4byte gOtherText_Profile
+_080E93C0:
+ ldr r4, _080E93C4 @ =gOtherText_AtBattleStart
+ b _080E93FA
+ .align 2, 0
+_080E93C4: .4byte gOtherText_AtBattleStart
+_080E93C8:
+ ldr r4, _080E93CC @ =gOtherText_UponWinningBattle
+ b _080E93FA
+ .align 2, 0
+_080E93CC: .4byte gOtherText_UponWinningBattle
+_080E93D0:
+ ldr r4, _080E93D4 @ =gOtherText_UponLosingBattle
+ b _080E93FA
+ .align 2, 0
+_080E93D4: .4byte gOtherText_UponLosingBattle
+_080E93D8:
+ ldr r4, _080E93DC @ =gOtherText_TheBardsSong
+ b _080E93FA
+ .align 2, 0
+_080E93DC: .4byte gOtherText_TheBardsSong
+_080E93E0:
+ ldr r4, _080E93E4 @ =gOtherText_WhatsHipHappening
+ b _080E93FA
+ .align 2, 0
+_080E93E4: .4byte gOtherText_WhatsHipHappening
+_080E93E8:
+ ldr r4, _080E93EC @ =gOtherText_Interview
+ b _080E93FA
+ .align 2, 0
+_080E93EC: .4byte gOtherText_Interview
+_080E93F0:
+ ldr r4, _080E93F4 @ =gOtherText_GoodSaying
+ b _080E93FA
+ .align 2, 0
+_080E93F4: .4byte gOtherText_GoodSaying
+_080E93F8:
+ movs r4, 0
+_080E93FA:
+ ldr r0, _080E943C @ =gWindowConfig_81E6D8C
+ bl BasicInitMenuWindow
+ ldr r0, _080E9440 @ =gUnknown_083DB694
+ ldr r2, [r0]
+ ldr r0, _080E9444 @ =0x0000a2ba
+ adds r5, r2, r0
+ movs r3, 0xFC
+ strb r3, [r5]
+ adds r0, 0x1
+ adds r1, r2, r0
+ movs r0, 0x5
+ strb r0, [r1]
+ ldr r0, _080E9448 @ =0x0000a2bc
+ adds r1, r2, r0
+ movs r0, 0x1
+ strb r0, [r1]
+ cmp r4, 0
+ beq _080E9450
+ ldr r1, _080E944C @ =0x0000a2bd
+ adds r0, r2, r1
+ adds r1, r4, 0
+ movs r2, 0xF0
+ movs r3, 0x2
+ bl sub_8072C74
+ adds r0, r5, 0
+ movs r1, 0
+ movs r2, 0
+ bl MenuPrint
+ b _080E9476
+ .align 2, 0
+_080E943C: .4byte gWindowConfig_81E6D8C
+_080E9440: .4byte gUnknown_083DB694
+_080E9444: .4byte 0x0000a2ba
+_080E9448: .4byte 0x0000a2bc
+_080E944C: .4byte 0x0000a2bd
+_080E9450:
+ ldr r0, _080E9484 @ =0x0000a2bd
+ adds r1, r2, r0
+ strb r3, [r1]
+ movs r0, 0x11
+ strb r0, [r1, 0x1]
+ movs r0, 0x10
+ strb r0, [r1, 0x2]
+ movs r0, 0xFF
+ strb r0, [r1, 0x3]
+ adds r0, r5, 0
+ movs r1, 0
+ movs r2, 0
+ bl MenuPrint
+ adds r0, r5, 0
+ movs r1, 0x1C
+ movs r2, 0
+ bl MenuPrint
+_080E9476:
+ ldr r0, _080E9488 @ =gWindowConfig_81E6DA8
+ bl BasicInitMenuWindow
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E9484: .4byte 0x0000a2bd
+_080E9488: .4byte gWindowConfig_81E6DA8
+ thumb_func_end sub_80E9368
+
+ thumb_func_start sub_80E948C
+sub_80E948C: @ 80E948C
+ push {lr}
+ sub sp, 0x10
+ ldr r0, _080E94A8 @ =gUnknown_083DB694
+ ldr r0, [r0]
+ ldrb r0, [r0, 0x9]
+ cmp r0, 0x5
+ bls _080E949C
+ b _080E9594
+_080E949C:
+ lsls r0, 2
+ ldr r1, _080E94AC @ =_080E94B0
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080E94A8: .4byte gUnknown_083DB694
+_080E94AC: .4byte _080E94B0
+ .align 2, 0
+_080E94B0:
+ .4byte _080E9508
+ .4byte _080E9530
+ .4byte _080E9554
+ .4byte _080E9578
+ .4byte _080E94C8
+ .4byte _080E94E8
+_080E94C8:
+ ldr r0, _080E94E0 @ =0x06006800
+ ldr r3, _080E94E4 @ =gUnknown_08E94AD0
+ movs r1, 0
+ str r1, [sp]
+ movs r1, 0x1A
+ str r1, [sp, 0x4]
+ movs r1, 0x18
+ str r1, [sp, 0x8]
+ movs r1, 0x6
+ str r1, [sp, 0xC]
+ movs r1, 0x3
+ b _080E9568
+ .align 2, 0
+_080E94E0: .4byte 0x06006800
+_080E94E4: .4byte gUnknown_08E94AD0
+_080E94E8:
+ ldr r0, _080E9500 @ =0x06006800
+ ldr r3, _080E9504 @ =gUnknown_08E94AD0
+ movs r1, 0
+ str r1, [sp]
+ movs r1, 0x12
+ str r1, [sp, 0x4]
+ movs r1, 0xD
+ str r1, [sp, 0x8]
+ movs r1, 0x8
+ str r1, [sp, 0xC]
+ movs r1, 0xE
+ b _080E951E
+ .align 2, 0
+_080E9500: .4byte 0x06006800
+_080E9504: .4byte gUnknown_08E94AD0
+_080E9508:
+ ldr r0, _080E9528 @ =0x06006800
+ ldr r3, _080E952C @ =gUnknown_08E94AD0
+ movs r1, 0
+ str r1, [sp]
+ movs r1, 0xA
+ str r1, [sp, 0x4]
+ movs r1, 0x1A
+ str r1, [sp, 0x8]
+ movs r1, 0x8
+ str r1, [sp, 0xC]
+ movs r1, 0x2
+_080E951E:
+ movs r2, 0x2
+ bl sub_809D104
+ b _080E9594
+ .align 2, 0
+_080E9528: .4byte 0x06006800
+_080E952C: .4byte gUnknown_08E94AD0
+_080E9530:
+ ldr r0, _080E954C @ =0x06006800
+ ldr r3, _080E9550 @ =gUnknown_08E94AD0
+ movs r1, 0
+ str r1, [sp]
+ str r1, [sp, 0x4]
+ movs r1, 0x1A
+ str r1, [sp, 0x8]
+ movs r1, 0xA
+ str r1, [sp, 0xC]
+ movs r1, 0x2
+ movs r2, 0
+ bl sub_809D104
+ b _080E9594
+ .align 2, 0
+_080E954C: .4byte 0x06006800
+_080E9550: .4byte gUnknown_08E94AD0
+_080E9554:
+ ldr r0, _080E9570 @ =0x06006800
+ ldr r3, _080E9574 @ =gUnknown_08E94AD0
+ movs r2, 0xD
+ str r2, [sp]
+ movs r1, 0x12
+ str r1, [sp, 0x4]
+ str r2, [sp, 0x8]
+ movs r1, 0x4
+ str r1, [sp, 0xC]
+ movs r1, 0xE
+_080E9568:
+ movs r2, 0x3
+ bl sub_809D104
+ b _080E9594
+ .align 2, 0
+_080E9570: .4byte 0x06006800
+_080E9574: .4byte gUnknown_08E94AD0
+_080E9578:
+ ldr r0, _080E959C @ =0x06006800
+ ldr r3, _080E95A0 @ =gUnknown_08E94AD0
+ movs r1, 0
+ str r1, [sp]
+ movs r1, 0x20
+ str r1, [sp, 0x4]
+ movs r1, 0x18
+ str r1, [sp, 0x8]
+ movs r1, 0x4
+ str r1, [sp, 0xC]
+ movs r1, 0x3
+ movs r2, 0x2
+ bl sub_809D104
+_080E9594:
+ add sp, 0x10
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E959C: .4byte 0x06006800
+_080E95A0: .4byte gUnknown_08E94AD0
+ thumb_func_end sub_80E948C
+
+ thumb_func_start sub_80E95A4
+sub_80E95A4: @ 80E95A4
+ push {lr}
+ ldr r0, _080E95C0 @ =gWindowConfig_81E6D8C
+ bl BasicInitMenuWindow
+ ldr r0, _080E95C4 @ =gUnknown_083DB694
+ ldr r0, [r0]
+ ldrb r0, [r0, 0x9]
+ cmp r0, 0x5
+ bhi _080E9612
+ lsls r0, 2
+ ldr r1, _080E95C8 @ =_080E95CC
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080E95C0: .4byte gWindowConfig_81E6D8C
+_080E95C4: .4byte gUnknown_083DB694
+_080E95C8: .4byte _080E95CC
+ .align 2, 0
+_080E95CC:
+ .4byte _080E95F2
+ .4byte _080E95F6
+ .4byte _080E9600
+ .4byte _080E960A
+ .4byte _080E95E4
+ .4byte _080E95EE
+_080E95E4:
+ movs r0, 0x4
+ movs r1, 0x6
+ bl sub_80E9620
+ b _080E9612
+_080E95EE:
+ movs r0, 0x2
+ b _080E9602
+_080E95F2:
+ movs r0, 0x3
+ b _080E95F8
+_080E95F6:
+ movs r0, 0
+_080E95F8:
+ movs r1, 0x5
+ bl sub_80E9620
+ b _080E9612
+_080E9600:
+ movs r0, 0x4
+_080E9602:
+ movs r1, 0x11
+ bl sub_80E9620
+ b _080E9612
+_080E960A:
+ movs r0, 0x3
+ movs r1, 0x6
+ bl sub_80E9620
+_080E9612:
+ ldr r0, _080E961C @ =gWindowConfig_81E6DA8
+ bl BasicInitMenuWindow
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E961C: .4byte gWindowConfig_81E6DA8
+ thumb_func_end sub_80E95A4
+
+ thumb_func_start sub_80E9620
+sub_80E9620: @ 80E9620
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x20
+ lsls r0, 16
+ lsls r1, 16
+ lsrs r1, 16
+ str r1, [sp, 0x14]
+ movs r1, 0
+ mov r10, r1
+ lsrs r7, r0, 16
+ mov r9, r1
+ ldr r0, _080E9644 @ =gUnknown_083DB694
+ ldr r0, [r0]
+ b _080E971A
+ .align 2, 0
+_080E9644: .4byte gUnknown_083DB694
+_080E9648:
+ ldr r6, [sp, 0x14]
+ movs r2, 0
+ mov r8, r2
+ adds r0, r7, 0x2
+ str r0, [sp, 0x1C]
+ mov r1, r9
+ adds r1, 0x1
+ str r1, [sp, 0x18]
+ b _080E96E4
+_080E965A:
+ mov r2, r10
+ lsls r0, r2, 1
+ adds r1, r5, 0
+ adds r1, 0xC
+ adds r1, r0
+ ldrh r0, [r1]
+ ldr r2, _080E9690 @ =0x0000ffff
+ cmp r0, r2
+ bne _080E969C
+ movs r0, 0
+ str r0, [sp]
+ str r0, [sp, 0x4]
+ movs r1, 0x9
+ str r1, [sp, 0x8]
+ movs r0, 0x2
+ str r0, [sp, 0xC]
+ str r1, [sp, 0x10]
+ ldr r0, _080E9694 @ =0x06007000
+ adds r1, r6, 0
+ adds r2, r7, 0
+ ldr r3, _080E9698 @ =gUnknown_083DBE1C
+ bl sub_8095C8C
+ adds r0, r6, 0
+ adds r0, 0xB
+ b _080E96CC
+ .align 2, 0
+_080E9690: .4byte 0x0000ffff
+_080E9694: .4byte 0x06007000
+_080E9698: .4byte gUnknown_083DBE1C
+_080E969C:
+ ldr r0, _080E9738 @ =0x0000a140
+ adds r4, r5, r0
+ ldrh r1, [r1]
+ adds r0, r4, 0
+ movs r2, 0xB
+ bl sub_80EB218
+ lsls r1, r6, 24
+ lsrs r1, 24
+ lsls r2, r7, 24
+ lsrs r2, 24
+ adds r0, r4, 0
+ bl MenuPrint
+ mov r1, r9
+ lsls r0, r1, 1
+ add r0, r8
+ adds r1, r5, 0
+ adds r1, 0x8C
+ adds r1, r0
+ adds r0, r6, 0
+ adds r0, 0xB
+ ldrb r1, [r1]
+ adds r0, r1
+_080E96CC:
+ lsls r0, 16
+ lsrs r6, r0, 16
+ mov r0, r10
+ adds r0, 0x1
+ lsls r0, 16
+ lsrs r0, 16
+ mov r10, r0
+ mov r0, r8
+ adds r0, 0x1
+ lsls r0, 16
+ lsrs r0, 16
+ mov r8, r0
+_080E96E4:
+ ldr r0, _080E973C @ =gUnknown_083DB694
+ ldr r5, [r0]
+ adds r0, r5, 0
+ adds r0, 0x83
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ cmp r8, r0
+ bge _080E970A
+ ldrb r2, [r5, 0xA]
+ cmp r10, r2
+ bcc _080E965A
+ lsls r1, r6, 24
+ lsrs r1, 24
+ lsls r2, r7, 24
+ lsrs r2, 24
+ ldr r0, _080E9740 @ =gUnknown_083DBEA8
+ bl MenuPrint
+_080E970A:
+ ldr r1, [sp, 0x1C]
+ lsls r0, r1, 16
+ lsrs r7, r0, 16
+ ldr r2, [sp, 0x18]
+ lsls r0, r2, 16
+ lsrs r0, 16
+ mov r9, r0
+ adds r0, r5, 0
+_080E971A:
+ adds r0, 0x84
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ cmp r9, r0
+ blt _080E9648
+ add sp, 0x20
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E9738: .4byte 0x0000a140
+_080E973C: .4byte gUnknown_083DB694
+_080E9740: .4byte gUnknown_083DBEA8
+ thumb_func_end sub_80E9620
+
+ thumb_func_start sub_80E9744
+sub_80E9744: @ 80E9744
+ push {lr}
+ ldr r0, _080E9760 @ =gWindowConfig_81E6D8C
+ bl BasicInitMenuWindow
+ ldr r0, _080E9764 @ =gUnknown_083DB694
+ ldr r0, [r0]
+ ldrb r0, [r0, 0x9]
+ cmp r0, 0x5
+ bhi _080E97B2
+ lsls r0, 2
+ ldr r1, _080E9768 @ =_080E976C
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080E9760: .4byte gWindowConfig_81E6D8C
+_080E9764: .4byte gUnknown_083DB694
+_080E9768: .4byte _080E976C
+ .align 2, 0
+_080E976C:
+ .4byte _080E9792
+ .4byte _080E9796
+ .4byte _080E97A0
+ .4byte _080E97AA
+ .4byte _080E9784
+ .4byte _080E978E
+_080E9784:
+ movs r0, 0x4
+ movs r1, 0x6
+ bl sub_80E97C0
+ b _080E97B2
+_080E978E:
+ movs r0, 0x2
+ b _080E97A2
+_080E9792:
+ movs r0, 0x3
+ b _080E9798
+_080E9796:
+ movs r0, 0
+_080E9798:
+ movs r1, 0x5
+ bl sub_80E97C0
+ b _080E97B2
+_080E97A0:
+ movs r0, 0x4
+_080E97A2:
+ movs r1, 0x11
+ bl sub_80E97C0
+ b _080E97B2
+_080E97AA:
+ movs r0, 0x3
+ movs r1, 0x6
+ bl sub_80E97C0
+_080E97B2:
+ ldr r0, _080E97BC @ =gWindowConfig_81E6DA8
+ bl BasicInitMenuWindow
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E97BC: .4byte gWindowConfig_81E6DA8
+ thumb_func_end sub_80E9744
+
+ thumb_func_start sub_80E97C0
+sub_80E97C0: @ 80E97C0
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x8
+ lsls r0, 16
+ lsrs r5, r0, 16
+ lsls r1, 16
+ lsrs r1, 16
+ str r1, [sp]
+ movs r7, 0
+ movs r3, 0
+ ldr r1, _080E98B8 @ =gUnknown_083DB694
+ ldr r0, [r1]
+ adds r0, 0x84
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ cmp r3, r0
+ bge _080E98A6
+_080E97EA:
+ ldr r1, [r1]
+ ldr r0, _080E98BC @ =0x0000a19a
+ adds r2, r1, r0
+ movs r6, 0
+ adds r0, r1, 0
+ adds r0, 0x83
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ ldr r4, [sp]
+ lsls r4, 24
+ mov r8, r4
+ lsls r4, r5, 24
+ mov r9, r4
+ adds r5, 0x2
+ mov r10, r5
+ adds r3, 0x1
+ str r3, [sp, 0x4]
+ cmp r6, r0
+ bge _080E985E
+ ldrb r1, [r1, 0xA]
+ cmp r7, r1
+ bcs _080E985E
+ ldr r0, _080E98B8 @ =gUnknown_083DB694
+ ldr r4, [r0]
+ ldr r5, _080E98C0 @ =0x0000ffff
+_080E981E:
+ lsls r0, r7, 1
+ adds r1, r4, 0
+ adds r1, 0xC
+ adds r1, r0
+ ldrh r0, [r1]
+ cmp r0, r5
+ beq _080E983E
+ adds r1, r0, 0
+ adds r0, r2, 0
+ movs r2, 0
+ bl sub_80EB218
+ adds r2, r0, 0
+ movs r0, 0
+ strb r0, [r2]
+ adds r2, 0x1
+_080E983E:
+ adds r0, r7, 0x1
+ lsls r0, 24
+ lsrs r7, r0, 24
+ adds r0, r6, 0x1
+ lsls r0, 24
+ lsrs r6, r0, 24
+ adds r0, r4, 0
+ adds r0, 0x83
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ cmp r6, r0
+ bge _080E985E
+ ldrb r0, [r4, 0xA]
+ cmp r7, r0
+ bcc _080E981E
+_080E985E:
+ ldr r1, _080E98B8 @ =gUnknown_083DB694
+ ldr r4, [r1]
+ adds r0, r4, 0
+ adds r0, 0x83
+ movs r1, 0
+ ldrsb r1, [r0, r1]
+ movs r0, 0xB
+ muls r1, r0
+ movs r0, 0xFC
+ strb r0, [r2]
+ movs r0, 0x13
+ strb r0, [r2, 0x1]
+ lsls r1, 3
+ strb r1, [r2, 0x2]
+ movs r0, 0xFF
+ strb r0, [r2, 0x3]
+ ldr r2, _080E98BC @ =0x0000a19a
+ adds r0, r4, r2
+ mov r3, r8
+ lsrs r1, r3, 24
+ mov r3, r9
+ lsrs r2, r3, 24
+ bl MenuPrint
+ mov r1, r10
+ lsls r0, r1, 16
+ lsrs r5, r0, 16
+ ldr r2, [sp, 0x4]
+ lsls r0, r2, 24
+ lsrs r3, r0, 24
+ ldr r1, _080E98B8 @ =gUnknown_083DB694
+ adds r4, 0x84
+ movs r0, 0
+ ldrsb r0, [r4, r0]
+ cmp r3, r0
+ blt _080E97EA
+_080E98A6:
+ add sp, 0x8
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E98B8: .4byte gUnknown_083DB694
+_080E98BC: .4byte 0x0000a19a
+_080E98C0: .4byte 0x0000ffff
+ thumb_func_end sub_80E97C0
+
+ thumb_func_start sub_80E98C4
+sub_80E98C4: @ 80E98C4
+ push {lr}
+ ldr r0, _080E98E0 @ =gWindowConfig_81E6D8C
+ bl BasicInitMenuWindow
+ ldr r0, _080E98E4 @ =gUnknown_083DB694
+ ldr r0, [r0]
+ ldrb r0, [r0, 0x9]
+ cmp r0, 0x5
+ bhi _080E9936
+ lsls r0, 2
+ ldr r1, _080E98E8 @ =_080E98EC
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080E98E0: .4byte gWindowConfig_81E6D8C
+_080E98E4: .4byte gUnknown_083DB694
+_080E98E8: .4byte _080E98EC
+ .align 2, 0
+_080E98EC:
+ .4byte _080E990A
+ .4byte _080E9910
+ .4byte _080E9916
+ .4byte _080E991A
+ .4byte _080E9904
+ .4byte _080E990A
+_080E9904:
+ movs r1, 0x4
+ movs r3, 0x2
+ b _080E991E
+_080E990A:
+ movs r1, 0x3
+ movs r3, 0x2
+ b _080E991E
+_080E9910:
+ movs r1, 0x1
+ movs r3, 0x3
+ b _080E991E
+_080E9916:
+ movs r1, 0x4
+ b _080E991C
+_080E991A:
+ movs r1, 0x3
+_080E991C:
+ movs r3, 0x1
+_080E991E:
+ lsls r3, 1
+ adds r3, r1, r3
+ subs r3, 0x1
+ lsls r3, 24
+ lsrs r3, 24
+ movs r0, 0x2
+ movs r2, 0x1B
+ bl MenuFillWindowRectWithBlankTile
+ ldr r0, _080E993C @ =gWindowConfig_81E6DA8
+ bl BasicInitMenuWindow
+_080E9936:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E993C: .4byte gWindowConfig_81E6DA8
+ thumb_func_end sub_80E98C4
+
+ thumb_func_start sub_80E9940
+sub_80E9940: @ 80E9940
+ push {r4-r6,lr}
+ adds r6, r0, 0
+ lsls r5, r1, 24
+ lsrs r5, 24
+ movs r4, 0x7
+ ands r4, r5
+ lsls r3, r4, 1
+ adds r1, r3, 0
+ adds r3, 0x1
+ movs r0, 0x2
+ movs r2, 0x1F
+ bl MenuFillWindowRectWithBlankTile
+ adds r0, r6, 0
+ adds r1, r5, 0
+ bl sub_80E9A7C
+ lsls r4, 1
+ adds r0, r6, 0
+ movs r1, 0x2
+ adds r2, r4, 0
+ bl sub_80E9A60
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80E9940
+
+ thumb_func_start sub_80E9974
+sub_80E9974: @ 80E9974
+ push {r4-r6,lr}
+ ldr r0, _080E99C4 @ =gWindowConfig_81E6D54
+ bl BasicInitMenuWindow
+ ldr r0, _080E99C8 @ =gUnknown_083DB694
+ ldr r2, [r0]
+ adds r0, r2, 0
+ adds r0, 0x26
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _080E99D4
+ ldr r1, _080E99CC @ =0x000001b5
+ adds r0, r2, r1
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ lsls r1, r0, 16
+ lsrs r4, r1, 16
+ adds r0, 0x4
+ cmp r4, r0
+ bge _080E9A02
+ adds r5, r2, 0
+ ldr r2, _080E99CC @ =0x000001b5
+ adds r6, r5, r2
+_080E99A4:
+ lsls r1, r4, 24
+ lsrs r1, 24
+ ldr r2, _080E99D0 @ =0x0000a0f5
+ adds r0, r5, r2
+ bl sub_80E9940
+ adds r0, r4, 0x1
+ lsls r0, 16
+ lsrs r4, r0, 16
+ movs r0, 0
+ ldrsb r0, [r6, r0]
+ adds r0, 0x4
+ cmp r4, r0
+ blt _080E99A4
+ b _080E9A02
+ .align 2, 0
+_080E99C4: .4byte gWindowConfig_81E6D54
+_080E99C8: .4byte gUnknown_083DB694
+_080E99CC: .4byte 0x000001b5
+_080E99D0: .4byte 0x0000a0f5
+_080E99D4:
+ bl sub_80E9AD4
+ ldr r4, _080E9A08 @ =gUnknown_083DBEAC
+ ldr r0, [r4]
+ movs r1, 0x2
+ movs r2, 0
+ bl sub_80E9A60
+ ldr r0, [r4, 0x4]
+ movs r1, 0x2
+ movs r2, 0x2
+ bl sub_80E9A60
+ ldr r0, [r4, 0x8]
+ movs r1, 0x2
+ movs r2, 0x4
+ bl sub_80E9A60
+ ldr r0, [r4, 0xC]
+ movs r1, 0x2
+ movs r2, 0x6
+ bl sub_80E9A60
+_080E9A02:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E9A08: .4byte gUnknown_083DBEAC
+ thumb_func_end sub_80E9974
+
+ thumb_func_start sub_80E9A14
+sub_80E9A14: @ 80E9A14
+ push {lr}
+ bl sub_80E9A4C
+ ldr r0, _080E9A44 @ =gUnknown_083DB694
+ ldr r1, [r0]
+ adds r0, r1, 0
+ adds r0, 0x26
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _080E9A40
+ movs r0, 0xDD
+ lsls r0, 1
+ adds r2, r1, r0
+ ldr r3, _080E9A48 @ =0x000001b5
+ adds r0, r1, r3
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ lsls r0, 4
+ ldrh r1, [r2]
+ adds r0, r1
+ strh r0, [r2]
+_080E9A40:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E9A44: .4byte gUnknown_083DB694
+_080E9A48: .4byte 0x000001b5
+ thumb_func_end sub_80E9A14
+
+ thumb_func_start sub_80E9A4C
+sub_80E9A4C: @ 80E9A4C
+ ldr r0, _080E9A5C @ =gUnknown_083DB694
+ ldr r0, [r0]
+ movs r2, 0xDD
+ lsls r2, 1
+ adds r1, r0, r2
+ movs r0, 0
+ strh r0, [r1]
+ bx lr
+ .align 2, 0
+_080E9A5C: .4byte gUnknown_083DB694
+ thumb_func_end sub_80E9A4C
+
+ thumb_func_start sub_80E9A60
+sub_80E9A60: @ 80E9A60
+ push {lr}
+ lsls r2, 16
+ movs r3, 0xF0
+ lsls r3, 12
+ ands r3, r2
+ lsls r1, 24
+ lsrs r1, 24
+ lsrs r3, 16
+ adds r2, r3, 0
+ bl MenuPrint
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80E9A60
+
+ thumb_func_start sub_80E9A7C
+sub_80E9A7C: @ 80E9A7C
+ push {r4-r7,lr}
+ adds r2, r0, 0
+ lsls r1, 16
+ lsrs r7, r1, 16
+ lsls r0, r7, 17
+ lsrs r5, r0, 16
+ movs r4, 0
+ ldr r0, _080E9AD0 @ =gUnknown_083DB694
+ ldr r6, [r0]
+_080E9A8E:
+ movs r0, 0xFC
+ strb r0, [r2]
+ movs r0, 0x12
+ strb r0, [r2, 0x1]
+ movs r0, 0x58
+ muls r0, r4
+ strb r0, [r2, 0x2]
+ adds r2, 0x3
+ lsls r1, r7, 1
+ adds r1, r4, r1
+ adds r0, r6, 0
+ adds r0, 0x2A
+ adds r0, r1
+ ldrb r1, [r0]
+ adds r0, r2, 0
+ movs r2, 0xB
+ bl sub_80EAD64
+ adds r2, r0, 0
+ adds r0, r5, 0x1
+ lsls r0, 16
+ lsrs r5, r0, 16
+ ldrh r0, [r6, 0x28]
+ cmp r5, r0
+ bcs _080E9ACA
+ adds r0, r4, 0x1
+ lsls r0, 16
+ lsrs r4, r0, 16
+ cmp r4, 0x1
+ bls _080E9A8E
+_080E9ACA:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E9AD0: .4byte gUnknown_083DB694
+ thumb_func_end sub_80E9A7C
+
+ thumb_func_start sub_80E9AD4
+sub_80E9AD4: @ 80E9AD4
+ push {r4,lr}
+ ldr r0, _080E9AF4 @ =gWindowConfig_81E6D54
+ bl BasicInitMenuWindow
+ movs r4, 0
+_080E9ADE:
+ adds r0, r4, 0
+ bl sub_80E9C74
+ adds r0, r4, 0x1
+ lsls r0, 16
+ lsrs r4, r0, 16
+ cmp r4, 0xF
+ bls _080E9ADE
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E9AF4: .4byte gWindowConfig_81E6D54
+ thumb_func_end sub_80E9AD4
+
+ thumb_func_start sub_80E9AF8
+sub_80E9AF8: @ 80E9AF8
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x4
+ lsls r0, 16
+ lsrs r7, r0, 16
+ adds r0, r7, 0
+ bl sub_80E9C74
+ ldr r4, _080E9B7C @ =gUnknown_083DB694
+ ldr r5, [r4]
+ ldr r0, _080E9B80 @ =0x0000a140
+ adds r0, r5
+ mov r8, r0
+ movs r0, 0xFC
+ mov r1, r8
+ strb r0, [r1]
+ movs r0, 0x11
+ strb r0, [r1, 0x1]
+ movs r0, 0x10
+ strb r0, [r1, 0x2]
+ ldr r2, _080E9B84 @ =0x0000a143
+ adds r2, r5
+ mov r8, r2
+ adds r0, r5, 0
+ adds r0, 0x7D
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _080E9BF4
+ movs r6, 0
+ ldr r3, _080E9B88 @ =0x00009cd2
+ adds r0, r5, r3
+ adds r0, r7
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ cmp r6, r0
+ blt _080E9B4A
+ b _080E9C52
+_080E9B4A:
+ lsls r0, r7, 2
+ mov r9, r0
+ ldr r1, _080E9B8C @ =0x00009d56
+ adds r1, r5, r1
+ str r1, [sp]
+ lsls r2, r7, 17
+ mov r10, r2
+_080E9B58:
+ lsls r4, r6, 1
+ mov r3, r9
+ adds r0, r4, r3
+ ldr r1, [sp]
+ adds r0, r1, r0
+ ldrh r0, [r0]
+ bl sub_80EB2D4
+ lsls r0, 16
+ lsrs r0, 16
+ adds r5, r4, 0
+ cmp r0, 0x7
+ bne _080E9B94
+ ldr r0, _080E9B90 @ =gWindowConfig_81E6D70
+ bl BasicInitMenuWindow
+ b _080E9B9A
+ .align 2, 0
+_080E9B7C: .4byte gUnknown_083DB694
+_080E9B80: .4byte 0x0000a140
+_080E9B84: .4byte 0x0000a143
+_080E9B88: .4byte 0x00009cd2
+_080E9B8C: .4byte 0x00009d56
+_080E9B90: .4byte gWindowConfig_81E6D70
+_080E9B94:
+ ldr r0, _080E9BE0 @ =gWindowConfig_81E6D54
+ bl BasicInitMenuWindow
+_080E9B9A:
+ ldr r2, _080E9BE4 @ =gUnknown_083DB694
+ ldr r4, [r2]
+ mov r3, r9
+ adds r1, r5, r3
+ ldr r2, _080E9BE8 @ =0x00009d56
+ adds r0, r4, r2
+ adds r0, r1
+ ldrh r1, [r0]
+ mov r0, r8
+ movs r2, 0x9
+ bl sub_80EB218
+ ldr r3, _080E9BEC @ =0x0000a140
+ adds r0, r4, r3
+ movs r1, 0xB
+ muls r1, r6
+ adds r1, 0x4
+ lsls r1, 16
+ lsrs r1, 16
+ mov r3, r10
+ lsrs r2, r3, 16
+ bl sub_80E9A60
+ adds r0, r6, 0x1
+ lsls r0, 16
+ lsrs r6, r0, 16
+ ldr r0, _080E9BF0 @ =0x00009cd2
+ adds r4, r0
+ adds r4, r7
+ movs r0, 0
+ ldrsb r0, [r4, r0]
+ cmp r6, r0
+ blt _080E9B58
+ b _080E9C52
+ .align 2, 0
+_080E9BE0: .4byte gWindowConfig_81E6D54
+_080E9BE4: .4byte gUnknown_083DB694
+_080E9BE8: .4byte 0x00009d56
+_080E9BEC: .4byte 0x0000a140
+_080E9BF0: .4byte 0x00009cd2
+_080E9BF4:
+ ldr r0, _080E9C64 @ =gWindowConfig_81E6D54
+ bl BasicInitMenuWindow
+ movs r6, 0
+ ldr r1, _080E9C68 @ =0x00009cd2
+ adds r0, r5, r1
+ adds r0, r7
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ cmp r6, r0
+ bge _080E9C52
+ adds r4, r5, 0
+ adds r0, r4, r1
+ adds r0, r7
+ mov r9, r0
+ lsls r5, r7, 17
+_080E9C16:
+ lsls r1, r6, 1
+ lsls r0, r7, 2
+ adds r1, r0
+ ldr r2, _080E9C6C @ =0x00009d56
+ adds r0, r4, r2
+ adds r0, r1
+ ldrh r1, [r0]
+ mov r0, r8
+ movs r2, 0x9
+ bl sub_80EB218
+ movs r0, 0xB
+ adds r1, r6, 0
+ muls r1, r0
+ adds r1, 0x4
+ lsls r1, 16
+ lsrs r1, 16
+ ldr r3, _080E9C70 @ =0x0000a140
+ adds r0, r4, r3
+ lsrs r2, r5, 16
+ bl sub_80E9A60
+ adds r0, r6, 0x1
+ lsls r0, 16
+ lsrs r6, r0, 16
+ mov r1, r9
+ movs r0, 0
+ ldrsb r0, [r1, r0]
+ cmp r6, r0
+ blt _080E9C16
+_080E9C52:
+ add sp, 0x4
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E9C64: .4byte gWindowConfig_81E6D54
+_080E9C68: .4byte 0x00009cd2
+_080E9C6C: .4byte 0x00009d56
+_080E9C70: .4byte 0x0000a140
+ thumb_func_end sub_80E9AF8
+
+ thumb_func_start sub_80E9C74
+sub_80E9C74: @ 80E9C74
+ push {lr}
+ lsls r0, 16
+ movs r1, 0xE0
+ lsls r1, 11
+ ands r1, r0
+ lsrs r1, 16
+ lsls r3, r1, 1
+ adds r1, r3, 0
+ adds r3, 0x1
+ movs r0, 0
+ movs r2, 0x1D
+ bl MenuFillWindowRectWithBlankTile
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80E9C74
+
+ thumb_func_start sub_80E9C94
+sub_80E9C94: @ 80E9C94
+ push {r4-r6,lr}
+ ldr r0, _080E9CAC @ =gUnknown_083DB694
+ ldr r0, [r0]
+ ldr r2, _080E9CB0 @ =0x00009d54
+ adds r1, r0, r2
+ movs r0, 0
+ ldrsb r0, [r1, r0]
+ cmp r0, 0x3
+ bgt _080E9CB4
+ lsls r0, 16
+ lsrs r0, 16
+ b _080E9CB6
+ .align 2, 0
+_080E9CAC: .4byte gUnknown_083DB694
+_080E9CB0: .4byte 0x00009d54
+_080E9CB4:
+ movs r0, 0x4
+_080E9CB6:
+ adds r5, r0, 0
+ movs r4, 0
+ cmp r4, r5
+ bcs _080E9CF4
+ ldr r0, _080E9CE0 @ =gUnknown_083DB694
+ ldr r0, [r0]
+ ldr r1, _080E9CE4 @ =0x00009d55
+ adds r6, r0, r1
+_080E9CC6:
+ movs r0, 0
+ ldrsb r0, [r6, r0]
+ adds r0, r4, r0
+ lsls r0, 16
+ lsrs r0, 16
+ bl sub_80E9AF8
+ adds r0, r4, 0x1
+ lsls r0, 16
+ lsrs r4, r0, 16
+ cmp r4, r5
+ bcc _080E9CC6
+ b _080E9CF4
+ .align 2, 0
+_080E9CE0: .4byte gUnknown_083DB694
+_080E9CE4: .4byte 0x00009d55
+_080E9CE8:
+ adds r0, r4, 0
+ adds r1, r0, 0x1
+ lsls r1, 16
+ lsrs r4, r1, 16
+ bl sub_80E9C74
+_080E9CF4:
+ cmp r4, 0x3
+ bls _080E9CE8
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80E9C94
+
+ thumb_func_start sub_80E9D00
+sub_80E9D00: @ 80E9D00
+ push {r4-r6,lr}
+ ldr r0, _080E9D28 @ =gUnknown_083DB694
+ ldr r2, [r0]
+ movs r0, 0xE0
+ lsls r0, 1
+ adds r1, r2, r0
+ movs r0, 0
+ ldrsb r0, [r1, r0]
+ cmp r0, 0
+ ble _080E9D30
+ lsls r0, 16
+ lsrs r4, r0, 16
+ ldr r1, _080E9D2C @ =0x00009d55
+ adds r0, r2, r1
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ adds r0, 0x4
+ b _080E9D46
+ .align 2, 0
+_080E9D28: .4byte gUnknown_083DB694
+_080E9D2C: .4byte 0x00009d55
+_080E9D30:
+ movs r0, 0
+ ldrsb r0, [r1, r0]
+ negs r0, r0
+ lsls r0, 16
+ lsrs r4, r0, 16
+ ldr r1, _080E9D74 @ =0x00009d55
+ adds r0, r2, r1
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ subs r0, r4
+_080E9D46:
+ lsls r0, 16
+ lsrs r5, r0, 16
+ subs r0, r4, 0x1
+ lsls r0, 16
+ lsrs r4, r0, 16
+ ldr r0, _080E9D78 @ =0x0000ffff
+ cmp r4, r0
+ beq _080E9D6E
+ adds r6, r0, 0
+_080E9D58:
+ adds r0, r5, 0
+ adds r1, r0, 0x1
+ lsls r1, 16
+ lsrs r5, r1, 16
+ bl sub_80E9AF8
+ subs r0, r4, 0x1
+ lsls r0, 16
+ lsrs r4, r0, 16
+ cmp r4, r6
+ bne _080E9D58
+_080E9D6E:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E9D74: .4byte 0x00009d55
+_080E9D78: .4byte 0x0000ffff
+ thumb_func_end sub_80E9D00
+
+ thumb_func_start sub_80E9D7C
+sub_80E9D7C: @ 80E9D7C
+ push {r4-r7,lr}
+ ldr r0, _080E9DAC @ =gWindowConfig_81E6D54
+ bl BasicInitMenuWindow
+ ldr r0, _080E9DB0 @ =gUnknown_083DB694
+ ldr r2, [r0]
+ movs r0, 0xE0
+ lsls r0, 1
+ adds r1, r2, r0
+ movs r0, 0
+ ldrsb r0, [r1, r0]
+ cmp r0, 0
+ bge _080E9DB8
+ negs r0, r0
+ lsls r0, 16
+ lsrs r6, r0, 16
+ ldr r1, _080E9DB4 @ =0x000001b5
+ adds r0, r2, r1
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ subs r0, r6
+ b _080E9DCC
+ .align 2, 0
+_080E9DAC: .4byte gWindowConfig_81E6D54
+_080E9DB0: .4byte gUnknown_083DB694
+_080E9DB4: .4byte 0x000001b5
+_080E9DB8:
+ movs r0, 0
+ ldrsb r0, [r1, r0]
+ lsls r0, 16
+ lsrs r6, r0, 16
+ ldr r1, _080E9DFC @ =0x000001b5
+ adds r0, r2, r1
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ adds r0, 0x4
+_080E9DCC:
+ lsls r0, 16
+ lsrs r4, r0, 16
+ movs r5, 0
+ cmp r5, r6
+ bcs _080E9DF6
+ ldr r0, _080E9E00 @ =gUnknown_083DB694
+ ldr r7, [r0]
+_080E9DDA:
+ lsls r1, r4, 24
+ lsrs r1, 24
+ ldr r2, _080E9E04 @ =0x0000a0f5
+ adds r0, r7, r2
+ bl sub_80E9940
+ adds r0, r4, 0x1
+ lsls r0, 16
+ lsrs r4, r0, 16
+ adds r0, r5, 0x1
+ lsls r0, 16
+ lsrs r5, r0, 16
+ cmp r5, r6
+ bcc _080E9DDA
+_080E9DF6:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E9DFC: .4byte 0x000001b5
+_080E9E00: .4byte gUnknown_083DB694
+_080E9E04: .4byte 0x0000a0f5
+ thumb_func_end sub_80E9D7C
+
+ thumb_func_start sub_80E9E08
+sub_80E9E08: @ 80E9E08
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r0, _080E9E4C @ =gUnknown_083DB694
+ ldr r3, [r0]
+ movs r0, 0xDD
+ lsls r0, 1
+ adds r1, r3, r0
+ movs r5, 0xE0
+ lsls r5, 1
+ adds r2, r3, r5
+ movs r0, 0
+ ldrsb r0, [r2, r0]
+ lsls r0, 4
+ ldrh r1, [r1]
+ adds r0, r1
+ movs r1, 0x7F
+ ands r0, r1
+ subs r5, 0x4
+ adds r1, r3, r5
+ strh r0, [r1]
+ adds r1, r4, 0
+ movs r0, 0
+ ldrsb r0, [r2, r0]
+ cmp r0, 0
+ bge _080E9E3E
+ negs r1, r4
+_080E9E3E:
+ ldr r2, _080E9E50 @ =0x000001bf
+ adds r0, r3, r2
+ strb r1, [r0]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080E9E4C: .4byte gUnknown_083DB694
+_080E9E50: .4byte 0x000001bf
+ thumb_func_end sub_80E9E08
+
+ thumb_func_start sub_80E9E54
+sub_80E9E54: @ 80E9E54
+ push {r4,lr}
+ ldr r0, _080E9E8C @ =gUnknown_083DB694
+ ldr r2, [r0]
+ movs r0, 0xDD
+ lsls r0, 1
+ adds r3, r2, r0
+ ldr r1, _080E9E90 @ =0x000001bf
+ adds r0, r2, r1
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ ldrh r4, [r3]
+ adds r0, r4
+ movs r1, 0x7F
+ ands r0, r1
+ strh r0, [r3]
+ movs r3, 0
+ movs r4, 0xDE
+ lsls r4, 1
+ adds r1, r2, r4
+ ldrh r1, [r1]
+ cmp r0, r1
+ bne _080E9E84
+ movs r3, 0x1
+_080E9E84:
+ adds r0, r3, 0
+ pop {r4}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080E9E8C: .4byte gUnknown_083DB694
+_080E9E90: .4byte 0x000001bf
+ thumb_func_end sub_80E9E54
+
+ thumb_func_start nullsub_23
+nullsub_23: @ 80E9E94
+ bx lr
+ thumb_func_end nullsub_23
+
+ thumb_func_start sub_80E9E98
+sub_80E9E98: @ 80E9E98
+ ldr r0, _080E9EA4 @ =gUnknown_083DB694
+ ldr r0, [r0]
+ adds r0, 0xBE
+ movs r1, 0
+ strh r1, [r0]
+ bx lr
+ .align 2, 0
+_080E9EA4: .4byte gUnknown_083DB694
+ thumb_func_end sub_80E9E98
+
+ thumb_func_start sub_80E9EA8
+sub_80E9EA8: @ 80E9EA8
+ push {lr}
+ ldr r1, _080E9EC4 @ =gUnknown_083DB694
+ ldr r0, [r1]
+ adds r0, 0xBE
+ ldrh r0, [r0]
+ adds r2, r1, 0
+ cmp r0, 0x5
+ bhi _080E9F48
+ lsls r0, 2
+ ldr r1, _080E9EC8 @ =_080E9ECC
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080E9EC4: .4byte gUnknown_083DB694
+_080E9EC8: .4byte _080E9ECC
+ .align 2, 0
+_080E9ECC:
+ .4byte _080E9EE4
+ .4byte _080E9EF4
+ .4byte _080E9F0C
+ .4byte _080E9F24
+ .4byte _080E9F38
+ .4byte _080E9F44
+_080E9EE4:
+ bl sub_80EA24C
+ ldr r0, _080E9F08 @ =gUnknown_083DB694
+ ldr r1, [r0]
+ adds r1, 0xBE
+ ldrh r0, [r1]
+ adds r0, 0x1
+ strh r0, [r1]
+_080E9EF4:
+ bl sub_80EA1E0
+ lsls r0, 24
+ cmp r0, 0
+ beq _080E9F48
+ bl sub_80EA4A4
+ ldr r0, _080E9F08 @ =gUnknown_083DB694
+ ldr r1, [r0]
+ b _080E9F3A
+ .align 2, 0
+_080E9F08: .4byte gUnknown_083DB694
+_080E9F0C:
+ bl sub_80EA1E0
+ lsls r0, 24
+ cmp r0, 0
+ beq _080E9F48
+ bl sub_80EA704
+ ldr r0, _080E9F20 @ =gUnknown_083DB694
+ ldr r1, [r0]
+ b _080E9F3A
+ .align 2, 0
+_080E9F20: .4byte gUnknown_083DB694
+_080E9F24:
+ bl sub_80EA1E0
+ lsls r0, 24
+ cmp r0, 0
+ beq _080E9F48
+ ldr r0, _080E9F34 @ =gUnknown_083DB694
+ ldr r1, [r0]
+ b _080E9F3A
+ .align 2, 0
+_080E9F34: .4byte gUnknown_083DB694
+_080E9F38:
+ ldr r1, [r2]
+_080E9F3A:
+ adds r1, 0xBE
+ ldrh r0, [r1]
+ adds r0, 0x1
+ strh r0, [r1]
+ b _080E9F48
+_080E9F44:
+ movs r0, 0x1
+ b _080E9F4A
+_080E9F48:
+ movs r0, 0
+_080E9F4A:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80E9EA8
+
+ thumb_func_start sub_80E9F50
+sub_80E9F50: @ 80E9F50
+ push {lr}
+ ldr r0, _080E9F68 @ =gUnknown_083DB694
+ ldr r0, [r0]
+ adds r0, 0xBE
+ ldrh r0, [r0]
+ cmp r0, 0x6
+ bhi _080E9FCC
+ lsls r0, 2
+ ldr r1, _080E9F6C @ =_080E9F70
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080E9F68: .4byte gUnknown_083DB694
+_080E9F6C: .4byte _080E9F70
+ .align 2, 0
+_080E9F70:
+ .4byte _080E9F8C
+ .4byte _080E9FAC
+ .4byte _080E9F96
+ .4byte _080E9FAC
+ .4byte _080E9F9C
+ .4byte _080E9FAC
+ .4byte _080E9FC8
+_080E9F8C:
+ bl nullsub_23
+ bl sub_80EA764
+ b _080E9FA0
+_080E9F96:
+ bl sub_80EA5A0
+ b _080E9FA0
+_080E9F9C:
+ bl sub_80EA348
+_080E9FA0:
+ ldr r0, _080E9FC4 @ =gUnknown_083DB694
+ ldr r1, [r0]
+ adds r1, 0xBE
+ ldrh r0, [r1]
+ adds r0, 0x1
+ strh r0, [r1]
+_080E9FAC:
+ bl sub_80EA1E0
+ lsls r0, 24
+ cmp r0, 0
+ beq _080E9FCC
+ ldr r0, _080E9FC4 @ =gUnknown_083DB694
+ ldr r1, [r0]
+ adds r1, 0xBE
+ ldrh r0, [r1]
+ adds r0, 0x1
+ strh r0, [r1]
+ b _080E9FCC
+ .align 2, 0
+_080E9FC4: .4byte gUnknown_083DB694
+_080E9FC8:
+ movs r0, 0x1
+ b _080E9FCE
+_080E9FCC:
+ movs r0, 0
+_080E9FCE:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80E9F50
+
+ thumb_func_start sub_80E9FD4
+sub_80E9FD4: @ 80E9FD4
+ push {r4,lr}
+ ldr r0, _080E9FEC @ =gUnknown_083DB694
+ ldr r0, [r0]
+ adds r4, r0, 0
+ adds r4, 0xBE
+ ldrh r0, [r4]
+ cmp r0, 0
+ beq _080E9FF0
+ cmp r0, 0x1
+ beq _080E9FFE
+ b _080EA00C
+ .align 2, 0
+_080E9FEC: .4byte gUnknown_083DB694
+_080E9FF0:
+ bl nullsub_23
+ bl sub_80EA5A0
+ ldrh r0, [r4]
+ adds r0, 0x1
+ strh r0, [r4]
+_080E9FFE:
+ bl sub_80EA1E0
+ lsls r0, 24
+ cmp r0, 0
+ beq _080EA00C
+ movs r0, 0x1
+ b _080EA00E
+_080EA00C:
+ movs r0, 0
+_080EA00E:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80E9FD4
+
+ thumb_func_start sub_80EA014
+sub_80EA014: @ 80EA014
+ push {r4,lr}
+ ldr r0, _080EA02C @ =gUnknown_083DB694
+ ldr r0, [r0]
+ adds r4, r0, 0
+ adds r4, 0xBE
+ ldrh r0, [r4]
+ cmp r0, 0
+ beq _080EA030
+ cmp r0, 0x1
+ beq _080EA03A
+ b _080EA048
+ .align 2, 0
+_080EA02C: .4byte gUnknown_083DB694
+_080EA030:
+ bl sub_80EA4A4
+ ldrh r0, [r4]
+ adds r0, 0x1
+ strh r0, [r4]
+_080EA03A:
+ bl sub_80EA1E0
+ lsls r0, 24
+ cmp r0, 0
+ beq _080EA048
+ movs r0, 0x1
+ b _080EA04A
+_080EA048:
+ movs r0, 0
+_080EA04A:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80EA014
+
+ thumb_func_start sub_80EA050
+sub_80EA050: @ 80EA050
+ push {lr}
+ ldr r0, _080EA068 @ =gUnknown_083DB694
+ ldr r0, [r0]
+ adds r0, 0xBE
+ ldrh r0, [r0]
+ cmp r0, 0x4
+ bhi _080EA0DC
+ lsls r0, 2
+ ldr r1, _080EA06C @ =_080EA070
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080EA068: .4byte gUnknown_083DB694
+_080EA06C: .4byte _080EA070
+ .align 2, 0
+_080EA070:
+ .4byte _080EA084
+ .4byte _080EA08E
+ .4byte _080EA09E
+ .4byte _080EA0B4
+ .4byte _080EA0D8
+_080EA084:
+ bl nullsub_23
+ bl sub_80EA764
+ b _080EA0C4
+_080EA08E:
+ bl sub_80EA1E0
+ lsls r0, 24
+ cmp r0, 0
+ beq _080EA0DC
+ bl sub_80EA7F4
+ b _080EA0C4
+_080EA09E:
+ movs r0, 0x1
+ bl sub_80E9108
+ bl sub_80EA1E0
+ lsls r0, 24
+ cmp r0, 0
+ beq _080EA0DC
+ bl sub_80EA8BC
+ b _080EA0C4
+_080EA0B4:
+ movs r0, 0x1
+ bl sub_80E9108
+ bl sub_80EA1E0
+ lsls r0, 24
+ cmp r0, 0
+ beq _080EA0DC
+_080EA0C4:
+ ldr r0, _080EA0D4 @ =gUnknown_083DB694
+ ldr r1, [r0]
+ adds r1, 0xBE
+ ldrh r0, [r1]
+ adds r0, 0x1
+ strh r0, [r1]
+ b _080EA0DC
+ .align 2, 0
+_080EA0D4: .4byte gUnknown_083DB694
+_080EA0D8:
+ movs r0, 0x1
+ b _080EA0DE
+_080EA0DC:
+ movs r0, 0
+_080EA0DE:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80EA050
+
+ thumb_func_start sub_80EA0E4
+sub_80EA0E4: @ 80EA0E4
+ push {lr}
+ ldr r0, _080EA0FC @ =gUnknown_083DB694
+ ldr r0, [r0]
+ adds r0, 0xBE
+ ldrh r0, [r0]
+ cmp r0, 0x4
+ bhi _080EA17C
+ lsls r0, 2
+ ldr r1, _080EA100 @ =_080EA104
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080EA0FC: .4byte gUnknown_083DB694
+_080EA100: .4byte _080EA104
+ .align 2, 0
+_080EA104:
+ .4byte _080EA118
+ .4byte _080EA128
+ .4byte _080EA144
+ .4byte _080EA15C
+ .4byte _080EA178
+_080EA118:
+ bl sub_80EA948
+ ldr r0, _080EA140 @ =gUnknown_083DB694
+ ldr r1, [r0]
+ adds r1, 0xBE
+ ldrh r0, [r1]
+ adds r0, 0x1
+ strh r0, [r1]
+_080EA128:
+ movs r0, 0x1
+ negs r0, r0
+ bl sub_80E9108
+ bl sub_80EA1E0
+ lsls r0, 24
+ cmp r0, 0
+ beq _080EA17C
+ bl sub_80EAA44
+ b _080EA166
+ .align 2, 0
+_080EA140: .4byte gUnknown_083DB694
+_080EA144:
+ movs r0, 0x1
+ negs r0, r0
+ bl sub_80E9108
+ bl sub_80EA1E0
+ lsls r0, 24
+ cmp r0, 0
+ beq _080EA17C
+ bl sub_80EA704
+ b _080EA166
+_080EA15C:
+ bl sub_80EA1E0
+ lsls r0, 24
+ cmp r0, 0
+ beq _080EA17C
+_080EA166:
+ ldr r0, _080EA174 @ =gUnknown_083DB694
+ ldr r1, [r0]
+ adds r1, 0xBE
+ ldrh r0, [r1]
+ adds r0, 0x1
+ strh r0, [r1]
+ b _080EA17C
+ .align 2, 0
+_080EA174: .4byte gUnknown_083DB694
+_080EA178:
+ movs r0, 0x1
+ b _080EA17E
+_080EA17C:
+ movs r0, 0
+_080EA17E:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80EA0E4
+
+ thumb_func_start sub_80EA184
+sub_80EA184: @ 80EA184
+ push {r4,lr}
+ ldr r0, _080EA1A0 @ =gUnknown_083DB694
+ ldr r0, [r0]
+ adds r4, r0, 0
+ adds r4, 0xBE
+ ldrh r0, [r4]
+ cmp r0, 0x1
+ beq _080EA1B4
+ cmp r0, 0x1
+ bgt _080EA1A4
+ cmp r0, 0
+ beq _080EA1AA
+ b _080EA1D8
+ .align 2, 0
+_080EA1A0: .4byte gUnknown_083DB694
+_080EA1A4:
+ cmp r0, 0x2
+ beq _080EA1D0
+ b _080EA1D8
+_080EA1AA:
+ bl sub_80EAAD4
+ ldrh r0, [r4]
+ adds r0, 0x1
+ strh r0, [r4]
+_080EA1B4:
+ bl sub_80EA1E0
+ lsls r0, 24
+ cmp r0, 0
+ beq _080EA1D8
+ ldr r0, _080EA1CC @ =gUnknown_083DB694
+ ldr r1, [r0]
+ adds r1, 0xBE
+ ldrh r0, [r1]
+ adds r0, 0x1
+ strh r0, [r1]
+ b _080EA1D8
+ .align 2, 0
+_080EA1CC: .4byte gUnknown_083DB694
+_080EA1D0:
+ bl sub_80E9178
+ movs r0, 0x1
+ b _080EA1DA
+_080EA1D8:
+ movs r0, 0
+_080EA1DA:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80EA184
+
+ thumb_func_start sub_80EA1E0
+sub_80EA1E0: @ 80EA1E0
+ push {r4-r6,lr}
+ ldr r0, _080EA240 @ =gUnknown_083DB694
+ ldr r1, [r0]
+ adds r0, r1, 0
+ adds r0, 0xC4
+ ldrh r0, [r0]
+ cmp r0, 0
+ beq _080EA244
+ movs r4, 0
+ adds r0, r1, 0
+ adds r0, 0xC2
+ ldrh r2, [r0]
+ cmp r4, r2
+ bcs _080EA228
+ adds r5, r1, 0
+ adds r6, r0, 0
+_080EA200:
+ lsls r0, r4, 4
+ adds r0, 0xC8
+ adds r0, r5, r0
+ bl sub_80EAC0C
+ lsls r0, r4, 1
+ adds r0, r4
+ lsls r0, 2
+ movs r1, 0xA4
+ lsls r1, 1
+ adds r0, r1
+ adds r0, r5, r0
+ bl sub_80EAC48
+ adds r0, r4, 0x1
+ lsls r0, 16
+ lsrs r4, r0, 16
+ ldrh r2, [r6]
+ cmp r4, r2
+ bcc _080EA200
+_080EA228:
+ ldr r0, _080EA240 @ =gUnknown_083DB694
+ ldr r1, [r0]
+ adds r2, r1, 0
+ adds r2, 0xBC
+ movs r0, 0x1
+ strb r0, [r2]
+ adds r1, 0xC4
+ ldrh r0, [r1]
+ subs r0, 0x1
+ strh r0, [r1]
+ movs r0, 0
+ b _080EA246
+ .align 2, 0
+_080EA240: .4byte gUnknown_083DB694
+_080EA244:
+ movs r0, 0x1
+_080EA246:
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80EA1E0
+
+ thumb_func_start sub_80EA24C
+sub_80EA24C: @ 80EA24C
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ sub sp, 0x14
+ ldr r0, _080EA340 @ =gUnknown_083DB694
+ ldr r7, [r0]
+ adds r0, r7, 0
+ adds r0, 0xC8
+ movs r6, 0xF
+ str r6, [sp]
+ ldr r1, _080EA344 @ =0x0000fffe
+ mov r8, r1
+ str r1, [sp, 0x4]
+ movs r4, 0
+ str r4, [sp, 0x8]
+ str r4, [sp, 0xC]
+ str r4, [sp, 0x10]
+ movs r1, 0xD
+ movs r2, 0xE
+ movs r3, 0xD
+ bl sub_80EABD4
+ movs r1, 0xA4
+ lsls r1, 1
+ adds r0, r7, r1
+ str r4, [sp]
+ movs r1, 0xD9
+ lsls r1, 3
+ adds r5, r7, r1
+ str r5, [sp, 0x4]
+ movs r1, 0
+ movs r2, 0
+ movs r3, 0
+ bl sub_80EAC30
+ adds r0, r7, 0
+ adds r0, 0xD8
+ str r6, [sp]
+ str r4, [sp, 0x4]
+ str r4, [sp, 0x8]
+ movs r1, 0x2
+ mov r9, r1
+ str r1, [sp, 0xC]
+ str r4, [sp, 0x10]
+ movs r1, 0xC
+ movs r2, 0xE
+ movs r3, 0xC
+ bl sub_80EABD4
+ movs r1, 0xAA
+ lsls r1, 1
+ adds r0, r7, r1
+ str r4, [sp]
+ str r5, [sp, 0x4]
+ movs r1, 0x1E
+ movs r2, 0
+ mov r3, r8
+ bl sub_80EAC30
+ adds r0, r7, 0
+ adds r0, 0xE8
+ movs r6, 0x10
+ str r6, [sp]
+ mov r1, r8
+ str r1, [sp, 0x4]
+ str r4, [sp, 0x8]
+ str r4, [sp, 0xC]
+ str r4, [sp, 0x10]
+ movs r1, 0xD
+ movs r2, 0xF
+ movs r3, 0xD
+ bl sub_80EABD4
+ movs r1, 0xB0
+ lsls r1, 1
+ adds r0, r7, r1
+ str r4, [sp]
+ str r5, [sp, 0x4]
+ movs r1, 0
+ movs r2, 0x9
+ movs r3, 0
+ bl sub_80EAC30
+ adds r0, r7, 0
+ adds r0, 0xF8
+ str r6, [sp]
+ str r4, [sp, 0x4]
+ str r4, [sp, 0x8]
+ mov r1, r9
+ str r1, [sp, 0xC]
+ str r4, [sp, 0x10]
+ movs r1, 0xC
+ movs r2, 0xF
+ movs r3, 0xC
+ bl sub_80EABD4
+ movs r1, 0xB6
+ lsls r1, 1
+ adds r0, r7, r1
+ str r4, [sp]
+ str r5, [sp, 0x4]
+ movs r1, 0x1E
+ movs r2, 0x9
+ mov r3, r8
+ bl sub_80EAC30
+ adds r1, r7, 0
+ adds r1, 0xC2
+ movs r0, 0x4
+ strh r0, [r1]
+ adds r1, 0x2
+ movs r0, 0x6
+ strh r0, [r1]
+ add sp, 0x14
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080EA340: .4byte gUnknown_083DB694
+_080EA344: .4byte 0x0000fffe
+ thumb_func_end sub_80EA24C
+
+ thumb_func_start sub_80EA348
+sub_80EA348: @ 80EA348
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ sub sp, 0x14
+ ldr r0, _080EA49C @ =gUnknown_083DB694
+ ldr r7, [r0]
+ adds r0, r7, 0
+ adds r0, 0xC8
+ movs r5, 0xF
+ str r5, [sp]
+ movs r1, 0x2
+ mov r9, r1
+ str r1, [sp, 0x4]
+ movs r4, 0
+ str r4, [sp, 0x8]
+ str r4, [sp, 0xC]
+ str r4, [sp, 0x10]
+ movs r1, 0x1
+ movs r2, 0xE
+ movs r3, 0xD
+ bl sub_80EABD4
+ movs r1, 0xA4
+ lsls r1, 1
+ adds r0, r7, r1
+ str r4, [sp]
+ movs r1, 0xD9
+ lsls r1, 3
+ adds r6, r7, r1
+ str r6, [sp, 0x4]
+ movs r1, 0
+ movs r2, 0
+ movs r3, 0
+ bl sub_80EAC30
+ adds r0, r7, 0
+ adds r0, 0xD8
+ str r5, [sp]
+ str r4, [sp, 0x4]
+ str r4, [sp, 0x8]
+ ldr r1, _080EA4A0 @ =0x0000fffe
+ mov r8, r1
+ str r1, [sp, 0xC]
+ str r4, [sp, 0x10]
+ movs r1, 0xC
+ movs r2, 0xE
+ movs r3, 0x18
+ bl sub_80EABD4
+ movs r1, 0xAA
+ lsls r1, 1
+ adds r0, r7, r1
+ str r4, [sp]
+ str r6, [sp, 0x4]
+ movs r1, 0x12
+ movs r2, 0
+ movs r3, 0x2
+ bl sub_80EAC30
+ adds r0, r7, 0
+ adds r0, 0xE8
+ movs r5, 0x10
+ str r5, [sp]
+ mov r1, r9
+ str r1, [sp, 0x4]
+ str r4, [sp, 0x8]
+ str r4, [sp, 0xC]
+ str r4, [sp, 0x10]
+ movs r1, 0x1
+ movs r2, 0xF
+ movs r3, 0xD
+ bl sub_80EABD4
+ movs r1, 0xB0
+ lsls r1, 1
+ adds r0, r7, r1
+ str r4, [sp]
+ str r6, [sp, 0x4]
+ movs r1, 0
+ movs r2, 0x9
+ movs r3, 0
+ bl sub_80EAC30
+ adds r0, r7, 0
+ adds r0, 0xF8
+ str r5, [sp]
+ str r4, [sp, 0x4]
+ str r4, [sp, 0x8]
+ mov r1, r8
+ str r1, [sp, 0xC]
+ str r4, [sp, 0x10]
+ movs r1, 0xC
+ movs r2, 0xF
+ movs r3, 0x18
+ bl sub_80EABD4
+ movs r1, 0xB6
+ lsls r1, 1
+ adds r0, r7, r1
+ str r4, [sp]
+ str r6, [sp, 0x4]
+ movs r1, 0x12
+ movs r2, 0x9
+ movs r3, 0x2
+ bl sub_80EAC30
+ movs r1, 0x84
+ lsls r1, 1
+ adds r0, r7, r1
+ str r5, [sp]
+ str r4, [sp, 0x4]
+ str r4, [sp, 0x8]
+ mov r1, r9
+ str r1, [sp, 0xC]
+ str r4, [sp, 0x10]
+ movs r1, 0x1
+ movs r2, 0xE
+ movs r3, 0x1
+ bl sub_80EABD4
+ movs r1, 0xBC
+ lsls r1, 1
+ adds r0, r7, r1
+ str r4, [sp]
+ adds r1, 0x50
+ adds r6, r7, r1
+ str r6, [sp, 0x4]
+ movs r1, 0x1
+ movs r2, 0xE
+ movs r3, 0
+ bl sub_80EAC30
+ movs r1, 0x8C
+ lsls r1, 1
+ adds r0, r7, r1
+ str r5, [sp]
+ mov r1, r8
+ str r1, [sp, 0x4]
+ str r4, [sp, 0x8]
+ str r4, [sp, 0xC]
+ str r4, [sp, 0x10]
+ movs r1, 0x18
+ movs r2, 0xE
+ movs r3, 0x18
+ bl sub_80EABD4
+ movs r1, 0xC2
+ lsls r1, 1
+ adds r0, r7, r1
+ str r4, [sp]
+ str r6, [sp, 0x4]
+ movs r1, 0x18
+ movs r2, 0xE
+ mov r3, r8
+ bl sub_80EAC30
+ adds r0, r7, 0
+ adds r0, 0xC2
+ movs r1, 0x6
+ strh r1, [r0]
+ adds r0, 0x2
+ strh r1, [r0]
+ add sp, 0x14
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080EA49C: .4byte gUnknown_083DB694
+_080EA4A0: .4byte 0x0000fffe
+ thumb_func_end sub_80EA348
+
+ thumb_func_start sub_80EA4A4
+sub_80EA4A4: @ 80EA4A4
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ sub sp, 0x14
+ ldr r0, _080EA598 @ =gUnknown_083DB694
+ ldr r7, [r0]
+ adds r0, r7, 0
+ adds r0, 0xC8
+ movs r6, 0xF
+ str r6, [sp]
+ movs r4, 0
+ str r4, [sp, 0x4]
+ ldr r1, _080EA59C @ =0x0000ffff
+ mov r8, r1
+ str r1, [sp, 0x8]
+ str r4, [sp, 0xC]
+ str r4, [sp, 0x10]
+ movs r1, 0x1
+ movs r2, 0xE
+ movs r3, 0xD
+ bl sub_80EABD4
+ movs r1, 0xA4
+ lsls r1, 1
+ adds r0, r7, r1
+ str r4, [sp]
+ movs r1, 0xD9
+ lsls r1, 3
+ adds r5, r7, r1
+ str r5, [sp, 0x4]
+ movs r1, 0
+ movs r2, 0
+ movs r3, 0
+ bl sub_80EAC30
+ adds r0, r7, 0
+ adds r0, 0xD8
+ str r6, [sp]
+ str r4, [sp, 0x4]
+ mov r1, r8
+ str r1, [sp, 0x8]
+ str r4, [sp, 0xC]
+ str r4, [sp, 0x10]
+ movs r1, 0xC
+ movs r2, 0xE
+ movs r3, 0x18
+ bl sub_80EABD4
+ movs r1, 0xAA
+ lsls r1, 1
+ adds r0, r7, r1
+ str r4, [sp]
+ str r5, [sp, 0x4]
+ movs r1, 0x12
+ movs r2, 0
+ movs r3, 0
+ bl sub_80EAC30
+ adds r0, r7, 0
+ adds r0, 0xE8
+ movs r1, 0x10
+ mov r9, r1
+ str r1, [sp]
+ str r4, [sp, 0x4]
+ str r4, [sp, 0x8]
+ str r4, [sp, 0xC]
+ movs r6, 0x1
+ str r6, [sp, 0x10]
+ movs r1, 0x1
+ movs r2, 0xF
+ movs r3, 0xD
+ bl sub_80EABD4
+ movs r1, 0xB0
+ lsls r1, 1
+ adds r0, r7, r1
+ mov r1, r8
+ str r1, [sp]
+ str r5, [sp, 0x4]
+ movs r1, 0
+ movs r2, 0x9
+ movs r3, 0
+ bl sub_80EAC30
+ adds r0, r7, 0
+ adds r0, 0xF8
+ mov r1, r9
+ str r1, [sp]
+ str r4, [sp, 0x4]
+ str r4, [sp, 0x8]
+ str r4, [sp, 0xC]
+ str r6, [sp, 0x10]
+ movs r1, 0xC
+ movs r2, 0xF
+ movs r3, 0x18
+ bl sub_80EABD4
+ movs r1, 0xB6
+ lsls r1, 1
+ adds r0, r7, r1
+ mov r1, r8
+ str r1, [sp]
+ str r5, [sp, 0x4]
+ movs r1, 0x12
+ movs r2, 0x9
+ movs r3, 0
+ bl sub_80EAC30
+ adds r0, r7, 0
+ adds r0, 0xC2
+ movs r1, 0x4
+ strh r1, [r0]
+ adds r0, 0x2
+ strh r1, [r0]
+ add sp, 0x14
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080EA598: .4byte gUnknown_083DB694
+_080EA59C: .4byte 0x0000ffff
+ thumb_func_end sub_80EA4A4
+
+ thumb_func_start sub_80EA5A0
+sub_80EA5A0: @ 80EA5A0
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ sub sp, 0x14
+ ldr r0, _080EA6FC @ =gUnknown_083DB694
+ ldr r7, [r0]
+ adds r0, r7, 0
+ adds r0, 0xC8
+ movs r6, 0xF
+ str r6, [sp]
+ movs r4, 0
+ str r4, [sp, 0x4]
+ movs r1, 0x1
+ mov r8, r1
+ str r1, [sp, 0x8]
+ str r4, [sp, 0xC]
+ str r4, [sp, 0x10]
+ movs r2, 0xA
+ movs r3, 0xD
+ bl sub_80EABD4
+ movs r1, 0xA4
+ lsls r1, 1
+ adds r0, r7, r1
+ str r4, [sp]
+ movs r1, 0xD9
+ lsls r1, 3
+ adds r5, r7, r1
+ str r5, [sp, 0x4]
+ movs r1, 0
+ movs r2, 0
+ movs r3, 0
+ bl sub_80EAC30
+ adds r0, r7, 0
+ adds r0, 0xD8
+ str r6, [sp]
+ str r4, [sp, 0x4]
+ mov r1, r8
+ str r1, [sp, 0x8]
+ str r4, [sp, 0xC]
+ str r4, [sp, 0x10]
+ movs r1, 0xC
+ movs r2, 0xA
+ movs r3, 0x18
+ bl sub_80EABD4
+ movs r1, 0xAA
+ lsls r1, 1
+ adds r0, r7, r1
+ str r4, [sp]
+ str r5, [sp, 0x4]
+ movs r1, 0x12
+ movs r2, 0
+ movs r3, 0
+ bl sub_80EAC30
+ adds r0, r7, 0
+ adds r0, 0xE8
+ movs r1, 0x14
+ mov r9, r1
+ str r1, [sp]
+ str r4, [sp, 0x4]
+ str r4, [sp, 0x8]
+ str r4, [sp, 0xC]
+ ldr r6, _080EA700 @ =0x0000ffff
+ str r6, [sp, 0x10]
+ movs r1, 0x1
+ movs r2, 0xF
+ movs r3, 0xD
+ bl sub_80EABD4
+ movs r1, 0xB0
+ lsls r1, 1
+ adds r0, r7, r1
+ mov r1, r8
+ str r1, [sp]
+ str r5, [sp, 0x4]
+ movs r1, 0
+ movs r2, 0x5
+ movs r3, 0
+ bl sub_80EAC30
+ adds r0, r7, 0
+ adds r0, 0xF8
+ mov r1, r9
+ str r1, [sp]
+ str r4, [sp, 0x4]
+ str r4, [sp, 0x8]
+ str r4, [sp, 0xC]
+ str r6, [sp, 0x10]
+ movs r1, 0xC
+ movs r2, 0xF
+ movs r3, 0x18
+ bl sub_80EABD4
+ movs r1, 0xB6
+ lsls r1, 1
+ adds r0, r7, r1
+ mov r1, r8
+ str r1, [sp]
+ str r5, [sp, 0x4]
+ movs r1, 0x12
+ movs r2, 0x5
+ movs r3, 0
+ bl sub_80EAC30
+ movs r1, 0x84
+ lsls r1, 1
+ adds r0, r7, r1
+ movs r1, 0xA
+ str r1, [sp]
+ str r4, [sp, 0x4]
+ str r4, [sp, 0x8]
+ str r4, [sp, 0xC]
+ mov r1, r8
+ str r1, [sp, 0x10]
+ movs r1, 0x1
+ movs r2, 0xA
+ movs r3, 0x18
+ bl sub_80EABD4
+ movs r1, 0xBC
+ lsls r1, 1
+ adds r0, r7, r1
+ str r4, [sp]
+ adds r1, 0x50
+ adds r5, r7, r1
+ str r5, [sp, 0x4]
+ movs r1, 0x1
+ movs r2, 0xA
+ movs r3, 0
+ bl sub_80EAC30
+ movs r1, 0x8C
+ lsls r1, 1
+ adds r0, r7, r1
+ mov r1, r9
+ str r1, [sp]
+ str r4, [sp, 0x4]
+ str r6, [sp, 0x8]
+ str r4, [sp, 0xC]
+ str r4, [sp, 0x10]
+ movs r1, 0x1
+ movs r2, 0x14
+ movs r3, 0x18
+ bl sub_80EABD4
+ movs r1, 0xC2
+ lsls r1, 1
+ adds r0, r7, r1
+ str r6, [sp]
+ str r5, [sp, 0x4]
+ movs r1, 0x1
+ movs r2, 0x14
+ movs r3, 0
+ bl sub_80EAC30
+ adds r1, r7, 0
+ adds r1, 0xC2
+ movs r0, 0x6
+ strh r0, [r1]
+ adds r1, 0x2
+ movs r0, 0x4
+ strh r0, [r1]
+ add sp, 0x14
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080EA6FC: .4byte gUnknown_083DB694
+_080EA700: .4byte 0x0000ffff
+ thumb_func_end sub_80EA5A0
+
+ thumb_func_start sub_80EA704
+sub_80EA704: @ 80EA704
+ push {r4-r6,lr}
+ sub sp, 0x14
+ ldr r0, _080EA75C @ =gUnknown_083DB694
+ ldr r6, [r0]
+ adds r0, r6, 0
+ adds r0, 0xC8
+ movs r1, 0x14
+ str r1, [sp]
+ movs r4, 0
+ str r4, [sp, 0x4]
+ str r4, [sp, 0x8]
+ movs r5, 0x1
+ str r5, [sp, 0xC]
+ str r4, [sp, 0x10]
+ movs r1, 0x18
+ movs r2, 0xC
+ movs r3, 0x19
+ bl sub_80EABD4
+ movs r1, 0xA4
+ lsls r1, 1
+ adds r0, r6, r1
+ ldr r3, _080EA760 @ =0x0000ffff
+ str r4, [sp]
+ movs r2, 0xD9
+ lsls r2, 3
+ adds r1, r6, r2
+ str r1, [sp, 0x4]
+ movs r1, 0x5
+ movs r2, 0xA
+ bl sub_80EAC30
+ adds r0, r6, 0
+ adds r0, 0xC2
+ strh r5, [r0]
+ adds r1, r6, 0
+ adds r1, 0xC4
+ movs r0, 0x5
+ strh r0, [r1]
+ add sp, 0x14
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080EA75C: .4byte gUnknown_083DB694
+_080EA760: .4byte 0x0000ffff
+ thumb_func_end sub_80EA704
+
+ thumb_func_start sub_80EA764
+sub_80EA764: @ 80EA764
+ push {r4-r7,lr}
+ sub sp, 0x14
+ ldr r0, _080EA7EC @ =gUnknown_083DB694
+ ldr r7, [r0]
+ adds r0, r7, 0
+ adds r0, 0xC8
+ movs r6, 0x14
+ str r6, [sp]
+ movs r4, 0
+ str r4, [sp, 0x4]
+ str r4, [sp, 0x8]
+ ldr r5, _080EA7F0 @ =0x0000ffff
+ str r5, [sp, 0xC]
+ str r4, [sp, 0x10]
+ movs r1, 0x18
+ movs r2, 0xC
+ movs r3, 0x1E
+ bl sub_80EABD4
+ movs r1, 0xA4
+ lsls r1, 1
+ adds r0, r7, r1
+ str r4, [sp]
+ movs r2, 0xD9
+ lsls r2, 3
+ adds r1, r7, r2
+ str r1, [sp, 0x4]
+ movs r1, 0
+ movs r2, 0xA
+ movs r3, 0x1
+ bl sub_80EAC30
+ adds r0, r7, 0
+ adds r0, 0xD8
+ str r6, [sp]
+ str r5, [sp, 0x4]
+ str r4, [sp, 0x8]
+ str r4, [sp, 0xC]
+ str r4, [sp, 0x10]
+ movs r1, 0x1E
+ movs r2, 0xC
+ movs r3, 0x1F
+ bl sub_80EABD4
+ movs r1, 0xAA
+ lsls r1, 1
+ adds r0, r7, r1
+ str r4, [sp]
+ movs r2, 0xE4
+ lsls r2, 1
+ adds r1, r7, r2
+ str r1, [sp, 0x4]
+ movs r1, 0x1E
+ movs r2, 0xC
+ adds r3, r5, 0
+ bl sub_80EAC30
+ adds r1, r7, 0
+ adds r1, 0xC2
+ movs r0, 0x2
+ strh r0, [r1]
+ adds r1, 0x2
+ movs r0, 0x6
+ strh r0, [r1]
+ add sp, 0x14
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080EA7EC: .4byte gUnknown_083DB694
+_080EA7F0: .4byte 0x0000ffff
+ thumb_func_end sub_80EA764
+
+ thumb_func_start sub_80EA7F4
+sub_80EA7F4: @ 80EA7F4
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ sub sp, 0x14
+ ldr r0, _080EA8B4 @ =gUnknown_083DB694
+ ldr r7, [r0]
+ adds r0, r7, 0
+ adds r0, 0xC8
+ movs r6, 0x14
+ str r6, [sp]
+ movs r4, 0
+ str r4, [sp, 0x4]
+ str r4, [sp, 0x8]
+ movs r5, 0x1
+ str r5, [sp, 0xC]
+ str r4, [sp, 0x10]
+ movs r1, 0x14
+ movs r2, 0xA
+ movs r3, 0x19
+ bl sub_80EABD4
+ movs r1, 0xA4
+ lsls r1, 1
+ adds r0, r7, r1
+ ldr r3, _080EA8B8 @ =0x0000ffff
+ str r4, [sp]
+ movs r2, 0xD9
+ lsls r2, 3
+ adds r2, r7
+ mov r8, r2
+ str r2, [sp, 0x4]
+ movs r1, 0x19
+ movs r2, 0
+ bl sub_80EAC30
+ adds r0, r7, 0
+ adds r0, 0xD8
+ str r6, [sp]
+ str r4, [sp, 0x4]
+ str r4, [sp, 0x8]
+ str r5, [sp, 0xC]
+ str r4, [sp, 0x10]
+ movs r1, 0
+ movs r2, 0xA
+ movs r3, 0x1
+ bl sub_80EABD4
+ movs r1, 0xAA
+ lsls r1, 1
+ adds r0, r7, r1
+ str r4, [sp]
+ movs r2, 0xE4
+ lsls r2, 1
+ adds r1, r7, r2
+ str r1, [sp, 0x4]
+ movs r1, 0
+ movs r2, 0xA
+ movs r3, 0
+ bl sub_80EAC30
+ adds r0, r7, 0
+ adds r0, 0xE8
+ str r6, [sp]
+ str r5, [sp, 0x4]
+ str r4, [sp, 0x8]
+ str r4, [sp, 0xC]
+ str r4, [sp, 0x10]
+ movs r1, 0x1
+ movs r2, 0xA
+ movs r3, 0x4
+ bl sub_80EABD4
+ movs r1, 0xB0
+ lsls r1, 1
+ adds r0, r7, r1
+ str r4, [sp]
+ mov r2, r8
+ str r2, [sp, 0x4]
+ movs r1, 0
+ movs r2, 0
+ movs r3, 0
+ bl sub_80EAC30
+ adds r1, r7, 0
+ adds r1, 0xC2
+ movs r0, 0x3
+ strh r0, [r1]
+ adds r1, 0x2
+ movs r0, 0x2
+ strh r0, [r1]
+ add sp, 0x14
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080EA8B4: .4byte gUnknown_083DB694
+_080EA8B8: .4byte 0x0000ffff
+ thumb_func_end sub_80EA7F4
+
+ thumb_func_start sub_80EA8BC
+sub_80EA8BC: @ 80EA8BC
+ push {r4-r6,lr}
+ sub sp, 0x14
+ ldr r0, _080EA944 @ =gUnknown_083DB694
+ ldr r6, [r0]
+ adds r0, r6, 0
+ adds r0, 0xC8
+ movs r5, 0x14
+ str r5, [sp]
+ movs r4, 0
+ str r4, [sp, 0x4]
+ str r4, [sp, 0x8]
+ str r4, [sp, 0xC]
+ str r4, [sp, 0x10]
+ movs r1, 0x3
+ movs r2, 0xA
+ movs r3, 0x4
+ bl sub_80EABD4
+ movs r1, 0xA4
+ lsls r1, 1
+ adds r0, r6, r1
+ str r4, [sp]
+ movs r2, 0xD9
+ lsls r2, 3
+ adds r1, r6, r2
+ str r1, [sp, 0x4]
+ movs r1, 0
+ movs r2, 0
+ movs r3, 0
+ bl sub_80EAC30
+ adds r0, r6, 0
+ adds r0, 0xD8
+ str r5, [sp]
+ str r4, [sp, 0x4]
+ str r4, [sp, 0x8]
+ str r4, [sp, 0xC]
+ str r4, [sp, 0x10]
+ movs r1, 0
+ movs r2, 0xA
+ movs r3, 0x2
+ bl sub_80EABD4
+ movs r1, 0xAA
+ lsls r1, 1
+ adds r0, r6, r1
+ str r4, [sp]
+ movs r2, 0xE4
+ lsls r2, 1
+ adds r1, r6, r2
+ str r1, [sp, 0x4]
+ movs r1, 0
+ movs r2, 0xA
+ movs r3, 0
+ bl sub_80EAC30
+ adds r1, r6, 0
+ adds r1, 0xC2
+ movs r0, 0x2
+ strh r0, [r1]
+ adds r1, 0x2
+ movs r0, 0x1
+ strh r0, [r1]
+ add sp, 0x14
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080EA944: .4byte gUnknown_083DB694
+ thumb_func_end sub_80EA8BC
+
+ thumb_func_start sub_80EA948
+sub_80EA948: @ 80EA948
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ sub sp, 0x14
+ ldr r0, _080EAA3C @ =gUnknown_083DB694
+ ldr r7, [r0]
+ adds r0, r7, 0
+ adds r0, 0xC8
+ movs r6, 0x14
+ str r6, [sp]
+ movs r4, 0
+ str r4, [sp, 0x4]
+ str r4, [sp, 0x8]
+ ldr r5, _080EAA40 @ =0x0000ffff
+ str r5, [sp, 0xC]
+ str r4, [sp, 0x10]
+ movs r1, 0
+ movs r2, 0xA
+ movs r3, 0x2
+ bl sub_80EABD4
+ movs r1, 0xA4
+ lsls r1, 1
+ adds r0, r7, r1
+ str r4, [sp]
+ adds r1, 0x80
+ adds r1, r7
+ mov r9, r1
+ str r1, [sp, 0x4]
+ movs r1, 0
+ movs r2, 0xA
+ movs r3, 0
+ bl sub_80EAC30
+ adds r0, r7, 0
+ adds r0, 0xD8
+ str r6, [sp]
+ str r5, [sp, 0x4]
+ str r4, [sp, 0x8]
+ str r4, [sp, 0xC]
+ str r4, [sp, 0x10]
+ movs r1, 0x3
+ movs r2, 0xA
+ movs r3, 0x5
+ bl sub_80EABD4
+ movs r1, 0xAA
+ lsls r1, 1
+ adds r0, r7, r1
+ str r4, [sp]
+ movs r1, 0xD9
+ lsls r1, 3
+ adds r1, r7
+ mov r8, r1
+ str r1, [sp, 0x4]
+ movs r1, 0
+ movs r2, 0
+ movs r3, 0
+ bl sub_80EAC30
+ adds r0, r7, 0
+ adds r0, 0xE8
+ str r6, [sp]
+ str r5, [sp, 0x4]
+ str r4, [sp, 0x8]
+ str r4, [sp, 0xC]
+ str r4, [sp, 0x10]
+ movs r1, 0x1A
+ movs r2, 0xA
+ movs r3, 0x1E
+ bl sub_80EABD4
+ movs r1, 0xB0
+ lsls r1, 1
+ adds r0, r7, r1
+ str r4, [sp]
+ mov r1, r9
+ str r1, [sp, 0x4]
+ movs r1, 0x1A
+ movs r2, 0xA
+ adds r3, r5, 0
+ bl sub_80EAC30
+ adds r0, r7, 0
+ adds r0, 0xF8
+ str r6, [sp]
+ str r5, [sp, 0x4]
+ str r4, [sp, 0x8]
+ str r5, [sp, 0xC]
+ str r4, [sp, 0x10]
+ movs r1, 0x19
+ movs r2, 0xA
+ movs r3, 0x1A
+ bl sub_80EABD4
+ movs r1, 0xB6
+ lsls r1, 1
+ adds r0, r7, r1
+ str r4, [sp]
+ mov r1, r8
+ str r1, [sp, 0x4]
+ movs r1, 0x1D
+ movs r2, 0
+ movs r3, 0
+ bl sub_80EAC30
+ adds r1, r7, 0
+ adds r1, 0xC2
+ movs r0, 0x4
+ strh r0, [r1]
+ adds r1, 0x2
+ movs r0, 0x2
+ strh r0, [r1]
+ add sp, 0x14
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080EAA3C: .4byte gUnknown_083DB694
+_080EAA40: .4byte 0x0000ffff
+ thumb_func_end sub_80EA948
+
+ thumb_func_start sub_80EAA44
+sub_80EAA44: @ 80EAA44
+ push {r4-r6,lr}
+ sub sp, 0x14
+ ldr r0, _080EAACC @ =gUnknown_083DB694
+ ldr r6, [r0]
+ adds r0, r6, 0
+ adds r0, 0xC8
+ movs r5, 0x14
+ str r5, [sp]
+ movs r4, 0
+ str r4, [sp, 0x4]
+ str r4, [sp, 0x8]
+ str r4, [sp, 0xC]
+ str r4, [sp, 0x10]
+ movs r1, 0x18
+ movs r2, 0xA
+ movs r3, 0x1E
+ bl sub_80EABD4
+ movs r1, 0xA4
+ lsls r1, 1
+ adds r0, r6, r1
+ str r4, [sp]
+ movs r2, 0xE4
+ lsls r2, 1
+ adds r1, r6, r2
+ str r1, [sp, 0x4]
+ movs r1, 0x18
+ movs r2, 0xA
+ movs r3, 0
+ bl sub_80EAC30
+ adds r0, r6, 0
+ adds r0, 0xD8
+ str r5, [sp]
+ str r4, [sp, 0x4]
+ str r4, [sp, 0x8]
+ ldr r1, _080EAAD0 @ =0x0000ffff
+ str r1, [sp, 0xC]
+ str r4, [sp, 0x10]
+ movs r1, 0x17
+ movs r2, 0xA
+ movs r3, 0x18
+ bl sub_80EABD4
+ movs r1, 0xAA
+ lsls r1, 1
+ adds r0, r6, r1
+ str r4, [sp]
+ movs r2, 0xD9
+ lsls r2, 3
+ adds r1, r6, r2
+ str r1, [sp, 0x4]
+ movs r1, 0x1D
+ movs r2, 0
+ movs r3, 0
+ bl sub_80EAC30
+ adds r1, r6, 0
+ adds r1, 0xC2
+ movs r0, 0x2
+ strh r0, [r1]
+ adds r1, 0x2
+ movs r0, 0x1
+ strh r0, [r1]
+ add sp, 0x14
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080EAACC: .4byte gUnknown_083DB694
+_080EAAD0: .4byte 0x0000ffff
+ thumb_func_end sub_80EAA44
+
+ thumb_func_start sub_80EAAD4
+sub_80EAAD4: @ 80EAAD4
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ sub sp, 0x14
+ ldr r0, _080EABCC @ =gUnknown_083DB694
+ ldr r7, [r0]
+ adds r0, r7, 0
+ adds r0, 0xC8
+ movs r1, 0xF
+ str r1, [sp]
+ movs r4, 0
+ str r4, [sp, 0x4]
+ movs r5, 0x1
+ str r5, [sp, 0x8]
+ str r4, [sp, 0xC]
+ str r4, [sp, 0x10]
+ movs r1, 0
+ movs r2, 0xA
+ movs r3, 0x1E
+ bl sub_80EABD4
+ movs r1, 0xA4
+ lsls r1, 1
+ adds r0, r7, r1
+ str r4, [sp]
+ movs r1, 0xD9
+ lsls r1, 3
+ adds r1, r7
+ mov r8, r1
+ str r1, [sp, 0x4]
+ movs r1, 0
+ movs r2, 0
+ movs r3, 0
+ bl sub_80EAC30
+ adds r0, r7, 0
+ adds r0, 0xD8
+ movs r1, 0x14
+ mov r9, r1
+ str r1, [sp]
+ str r4, [sp, 0x4]
+ str r4, [sp, 0x8]
+ str r4, [sp, 0xC]
+ ldr r6, _080EABD0 @ =0x0000ffff
+ str r6, [sp, 0x10]
+ movs r1, 0
+ movs r2, 0xF
+ movs r3, 0x1E
+ bl sub_80EABD4
+ movs r1, 0xAA
+ lsls r1, 1
+ adds r0, r7, r1
+ str r5, [sp]
+ mov r1, r8
+ str r1, [sp, 0x4]
+ movs r1, 0
+ movs r2, 0x5
+ movs r3, 0
+ bl sub_80EAC30
+ adds r0, r7, 0
+ adds r0, 0xE8
+ movs r1, 0xA
+ str r1, [sp]
+ str r4, [sp, 0x4]
+ str r4, [sp, 0x8]
+ str r4, [sp, 0xC]
+ str r5, [sp, 0x10]
+ movs r1, 0
+ movs r2, 0xA
+ movs r3, 0x1E
+ bl sub_80EABD4
+ movs r1, 0xB0
+ lsls r1, 1
+ adds r0, r7, r1
+ str r4, [sp]
+ adds r1, 0x68
+ adds r5, r7, r1
+ str r5, [sp, 0x4]
+ movs r1, 0
+ movs r2, 0xA
+ movs r3, 0
+ bl sub_80EAC30
+ adds r0, r7, 0
+ adds r0, 0xF8
+ mov r1, r9
+ str r1, [sp]
+ str r4, [sp, 0x4]
+ str r6, [sp, 0x8]
+ str r4, [sp, 0xC]
+ str r4, [sp, 0x10]
+ movs r1, 0
+ movs r2, 0x14
+ movs r3, 0x1E
+ bl sub_80EABD4
+ movs r1, 0xB6
+ lsls r1, 1
+ adds r0, r7, r1
+ str r6, [sp]
+ str r5, [sp, 0x4]
+ movs r1, 0
+ movs r2, 0x14
+ movs r3, 0
+ bl sub_80EAC30
+ adds r1, r7, 0
+ adds r1, 0xC2
+ movs r0, 0x4
+ strh r0, [r1]
+ adds r1, 0x2
+ movs r0, 0x5
+ strh r0, [r1]
+ add sp, 0x14
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080EABCC: .4byte gUnknown_083DB694
+_080EABD0: .4byte 0x0000ffff
+ thumb_func_end sub_80EAAD4
+
+ thumb_func_start sub_80EABD4
+sub_80EABD4: @ 80EABD4
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ ldr r5, [sp, 0x1C]
+ ldr r6, [sp, 0x20]
+ ldr r4, [sp, 0x24]
+ mov r9, r4
+ ldr r4, [sp, 0x28]
+ ldr r7, [sp, 0x2C]
+ mov r8, r7
+ strh r1, [r0]
+ strh r3, [r0, 0x2]
+ strh r2, [r0, 0x4]
+ strh r5, [r0, 0x6]
+ strh r6, [r0, 0x8]
+ strh r4, [r0, 0xA]
+ mov r1, r9
+ strh r1, [r0, 0xC]
+ mov r4, r8
+ strh r4, [r0, 0xE]
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80EABD4
+
+ thumb_func_start sub_80EAC0C
+sub_80EAC0C: @ 80EAC0C
+ ldrh r1, [r0, 0x8]
+ ldrh r2, [r0]
+ adds r1, r2
+ strh r1, [r0]
+ ldrh r1, [r0, 0xA]
+ ldrh r2, [r0, 0x2]
+ adds r1, r2
+ strh r1, [r0, 0x2]
+ ldrh r1, [r0, 0xC]
+ ldrh r2, [r0, 0x4]
+ adds r1, r2
+ strh r1, [r0, 0x4]
+ ldrh r1, [r0, 0xE]
+ ldrh r2, [r0, 0x6]
+ adds r1, r2
+ strh r1, [r0, 0x6]
+ bx lr
+ thumb_func_end sub_80EAC0C
+
+ thumb_func_start sub_80EAC30
+sub_80EAC30: @ 80EAC30
+ push {r4,r5,lr}
+ ldr r4, [sp, 0xC]
+ ldr r5, [sp, 0x10]
+ strh r1, [r0]
+ strh r2, [r0, 0x2]
+ strh r3, [r0, 0x4]
+ strh r4, [r0, 0x6]
+ str r5, [r0, 0x8]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80EAC30
+
+ thumb_func_start sub_80EAC48
+sub_80EAC48: @ 80EAC48
+ ldrh r1, [r0, 0x4]
+ ldrh r2, [r0]
+ adds r1, r2
+ strh r1, [r0]
+ ldrh r1, [r0, 0x6]
+ ldrh r2, [r0, 0x2]
+ adds r1, r2
+ strh r1, [r0, 0x2]
+ bx lr
+ thumb_func_end sub_80EAC48
+
+ thumb_func_start sub_80EAC5C
+sub_80EAC5C: @ 80EAC5C
+ push {r4-r6,lr}
+ ldr r0, _080EACB4 @ =gUnknown_083DB694
+ ldr r1, [r0]
+ adds r0, r1, 0
+ adds r0, 0xBC
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _080EACAC
+ movs r4, 0
+ adds r0, r1, 0
+ adds r0, 0xC2
+ ldrh r2, [r0]
+ cmp r4, r2
+ bcs _080EACA2
+ adds r5, r1, 0
+ adds r6, r0, 0
+_080EAC7C:
+ lsls r1, r4, 4
+ adds r1, 0xC8
+ adds r1, r5, r1
+ lsls r2, r4, 1
+ adds r2, r4
+ lsls r2, 2
+ movs r0, 0xA4
+ lsls r0, 1
+ adds r2, r0
+ adds r2, r5, r2
+ ldr r0, _080EACB8 @ =0x06006800
+ bl sub_80EACBC
+ adds r0, r4, 0x1
+ lsls r0, 16
+ lsrs r4, r0, 16
+ ldrh r2, [r6]
+ cmp r4, r2
+ bcc _080EAC7C
+_080EACA2:
+ ldr r0, _080EACB4 @ =gUnknown_083DB694
+ ldr r0, [r0]
+ adds r0, 0xBC
+ movs r1, 0
+ strb r1, [r0]
+_080EACAC:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080EACB4: .4byte gUnknown_083DB694
+_080EACB8: .4byte 0x06006800
+ thumb_func_end sub_80EAC5C
+
+ thumb_func_start sub_80EACBC
+sub_80EACBC: @ 80EACBC
+ push {r4-r7,lr}
+ sub sp, 0x10
+ adds r7, r0, 0
+ adds r3, r1, 0
+ adds r4, r2, 0
+ ldrh r2, [r3, 0x2]
+ ldrh r0, [r3]
+ subs r2, r0
+ ldrh r0, [r3, 0x6]
+ ldrh r1, [r3, 0x4]
+ subs r0, r1
+ lsls r0, 16
+ lsrs r0, 16
+ lsls r6, r2, 16
+ cmp r6, 0
+ ble _080EACFE
+ lsls r5, r0, 16
+ cmp r5, 0
+ ble _080EACFE
+ ldrh r1, [r3]
+ ldrh r2, [r3, 0x4]
+ ldr r3, [r4, 0x8]
+ ldrh r0, [r4]
+ str r0, [sp]
+ ldrh r0, [r4, 0x2]
+ str r0, [sp, 0x4]
+ lsrs r0, r6, 16
+ str r0, [sp, 0x8]
+ lsrs r0, r5, 16
+ str r0, [sp, 0xC]
+ adds r0, r7, 0
+ bl sub_809D104
+_080EACFE:
+ add sp, 0x10
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80EACBC
+
+ thumb_func_start sub_80EAD08
+sub_80EAD08: @ 80EAD08
+ push {r4,r5,lr}
+ ldr r0, _080EAD58 @ =gUnknown_03004DC0
+ ldrb r1, [r0, 0x14]
+ lsls r0, r1, 4
+ subs r0, r1
+ lsls r0, 7
+ ldr r1, _080EAD5C @ =gUnknown_03004DE0
+ adds r4, r0, r1
+ adds r4, 0xB0
+ ldr r0, _080EAD60 @ =gUnknown_083DB694
+ ldr r1, [r0]
+ movs r0, 0xDD
+ lsls r0, 1
+ adds r1, r0
+ ldrh r0, [r1]
+ adds r2, r0, 0
+ subs r2, 0x58
+ movs r0, 0xFF
+ ands r2, r0
+ movs r3, 0
+ movs r5, 0xFF
+_080EAD32:
+ ldrh r0, [r1]
+ adds r0, r3
+ cmp r0, 0x80
+ bne _080EAD42
+ negs r0, r3
+ adds r2, r0, 0
+ subs r2, 0x58
+ ands r2, r5
+_080EAD42:
+ strh r2, [r4]
+ adds r4, 0x2
+ adds r0, r3, 0x1
+ lsls r0, 16
+ lsrs r3, r0, 16
+ cmp r3, 0x3F
+ bls _080EAD32
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080EAD58: .4byte gUnknown_03004DC0
+_080EAD5C: .4byte gUnknown_03004DE0
+_080EAD60: .4byte gUnknown_083DB694
+ thumb_func_end sub_80EAD08
+
+ thumb_func_start sub_80EAD64
+sub_80EAD64: @ 80EAD64
+ push {lr}
+ lsls r1, 24
+ ldr r2, _080EAD78 @ =gEasyChatGroupNames
+ lsrs r1, 22
+ adds r1, r2
+ ldr r1, [r1]
+ bl StringCopy
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080EAD78: .4byte gEasyChatGroupNames
+ thumb_func_end sub_80EAD64
+
+ thumb_func_start sub_80EAD7C
+sub_80EAD7C: @ 80EAD7C
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ adds r1, r0, 0
+ cmp r0, 0x14
+ beq _080EADA2
+ cmp r0, 0x14
+ bgt _080EAD9C
+ cmp r0, 0x11
+ blt _080EADBA
+ ldr r0, _080EAD98 @ =0x00000804
+ bl FlagGet
+ b _080EADB4
+ .align 2, 0
+_080EAD98: .4byte 0x00000804
+_080EAD9C:
+ cmp r1, 0x15
+ beq _080EADB0
+ b _080EADBA
+_080EADA2:
+ ldr r0, _080EADAC @ =0x00000806
+ bl FlagGet
+ b _080EADB4
+ .align 2, 0
+_080EADAC: .4byte 0x00000806
+_080EADB0:
+ bl sub_80EB9C8
+_080EADB4:
+ lsls r0, 24
+ lsrs r0, 24
+ b _080EADBC
+_080EADBA:
+ movs r0, 0x1
+_080EADBC:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80EAD7C
+
+ thumb_func_start sub_80EADC0
+sub_80EADC0: @ 80EADC0
+ push {lr}
+ lsls r0, 24
+ lsrs r2, r0, 24
+ lsls r1, 16
+ lsrs r3, r1, 16
+ cmp r2, 0x15
+ bhi _080EAE82
+ lsls r0, r2, 2
+ ldr r1, _080EADD8 @ =_080EADDC
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080EADD8: .4byte _080EADDC
+ .align 2, 0
+_080EADDC:
+ .4byte _080EAE50
+ .4byte _080EAE82
+ .4byte _080EAE82
+ .4byte _080EAE82
+ .4byte _080EAE82
+ .4byte _080EAE82
+ .4byte _080EAE82
+ .4byte _080EAE82
+ .4byte _080EAE82
+ .4byte _080EAE82
+ .4byte _080EAE82
+ .4byte _080EAE82
+ .4byte _080EAE82
+ .4byte _080EAE82
+ .4byte _080EAE82
+ .4byte _080EAE82
+ .4byte _080EAE82
+ .4byte _080EAE62
+ .4byte _080EAE62
+ .4byte _080EAE62
+ .4byte _080EAE34
+ .4byte _080EAE78
+_080EAE34:
+ ldr r0, _080EAE4C @ =gUnknown_083DB694
+ ldr r0, [r0]
+ adds r0, r2
+ adds r0, 0x67
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _080EAE70
+ lsls r0, r3, 24
+ lsrs r0, 24
+ bl sub_80EB868
+ b _080EAE7C
+ .align 2, 0
+_080EAE4C: .4byte gUnknown_083DB694
+_080EAE50:
+ adds r0, r3, 0
+ bl SpeciesToNationalPokedexNum
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0
+ bl GetNationalPokedexFlag
+ b _080EAE7C
+_080EAE62:
+ ldr r0, _080EAE74 @ =gUnknown_083DB694
+ ldr r0, [r0]
+ adds r0, r2
+ adds r0, 0x67
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _080EAE82
+_080EAE70:
+ movs r0, 0
+ b _080EAE84
+ .align 2, 0
+_080EAE74: .4byte gUnknown_083DB694
+_080EAE78:
+ bl sub_80EB9C8
+_080EAE7C:
+ lsls r0, 24
+ lsrs r0, 24
+ b _080EAE84
+_080EAE82:
+ movs r0, 0x1
+_080EAE84:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80EADC0
+
+ thumb_func_start sub_80EAE88
+sub_80EAE88: @ 80EAE88
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0
+ beq _080EAEA6
+ cmp r4, 0x14
+ beq _080EAEB2
+ adds r0, r4, 0
+ bl sub_80EAD7C
+ lsls r0, 24
+ cmp r0, 0
+ bne _080EAEBC
+ movs r0, 0
+ b _080EAEC2
+_080EAEA6:
+ movs r0, 0
+ bl GetHoennPokedexCount
+ lsls r0, 16
+ lsrs r0, 16
+ b _080EAEC2
+_080EAEB2:
+ bl sub_80EB8C0
+ lsls r0, 24
+ lsrs r0, 24
+ b _080EAEC2
+_080EAEBC:
+ ldr r0, _080EAEC8 @ =gEasyChatGroupSizes
+ adds r0, r4, r0
+ ldrb r0, [r0]
+_080EAEC2:
+ pop {r4}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080EAEC8: .4byte gEasyChatGroupSizes
+ thumb_func_end sub_80EAE88
+
+ thumb_func_start sub_80EAECC
+sub_80EAECC: @ 80EAECC
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x10
+ movs r7, 0
+ ldr r1, _080EAF08 @ =gUnknown_083DB694
+ ldr r0, [r1]
+ ldr r3, _080EAF0C @ =0x0000446c
+ adds r3, r0, r3
+ str r3, [sp, 0x4]
+_080EAEE4:
+ ldr r1, _080EAF10 @ =gEasyChatWordsByLetter
+ lsls r2, r7, 1
+ adds r0, r2, r1
+ ldrh r4, [r0]
+ adds r3, r7, 0x1
+ lsls r0, r3, 1
+ adds r0, r1
+ ldrh r0, [r0]
+ str r0, [sp]
+ ldr r0, [sp, 0x4]
+ adds r1, r0, r2
+ movs r0, 0
+ strh r0, [r1]
+ mov r9, r0
+ adds r6, r4, 0
+ mov r10, r2
+ str r3, [sp, 0x8]
+ b _080EB00C
+ .align 2, 0
+_080EAF08: .4byte gUnknown_083DB694
+_080EAF0C: .4byte 0x0000446c
+_080EAF10: .4byte gEasyChatWordsByLetter
+_080EAF14:
+ ldr r2, _080EAFAC @ =gEasyChatWordsAlphabetized
+ adds r0, r6, 0
+ adds r1, r0, 0x1
+ lsls r1, 16
+ lsrs r6, r1, 16
+ lsls r0, 1
+ adds r0, r2
+ ldrh r1, [r0]
+ adds r4, r1, 0
+ ldr r0, _080EAFB0 @ =0x0000feff
+ cmp r1, r0
+ bls _080EAFC8
+ movs r0, 0xFF
+ ands r1, r0
+ movs r3, 0
+ subs r0, r1, 0x1
+ lsls r0, 16
+ lsrs r5, r0, 16
+ ldr r0, _080EAFB4 @ =0x0000ffff
+ cmp r5, r0
+ beq _080EB00C
+ lsls r0, r7, 4
+ adds r0, r7
+ lsls r0, 3
+ subs r0, r7
+ lsls r0, 2
+ mov r8, r0
+_080EAF4A:
+ adds r1, r6, 0
+ adds r0, r1, 0x1
+ lsls r0, 16
+ lsrs r6, r0, 16
+ lsls r1, 1
+ ldr r0, _080EAFAC @ =gEasyChatWordsAlphabetized
+ adds r1, r0
+ ldrh r4, [r1]
+ lsrs r0, r4, 9
+ ldr r1, _080EAFB8 @ =0x000001ff
+ adds r2, r1, 0
+ adds r1, r4, 0
+ ands r1, r2
+ str r3, [sp, 0xC]
+ bl sub_80EADC0
+ lsls r0, 24
+ ldr r3, [sp, 0xC]
+ cmp r0, 0
+ beq _080EAF9E
+ cmp r3, 0
+ bne _080EAF9E
+ ldr r3, _080EAFBC @ =gUnknown_083DB694
+ ldr r2, [r3]
+ mov r1, r9
+ adds r0, r1, 0x1
+ lsls r0, 16
+ lsrs r0, 16
+ mov r9, r0
+ lsls r1, 1
+ add r1, r8
+ ldr r3, _080EAFC0 @ =0x00000b78
+ adds r0, r2, r3
+ adds r0, r1
+ strh r4, [r0]
+ ldr r0, _080EAFC4 @ =0x0000446c
+ adds r2, r0
+ add r2, r10
+ ldrh r0, [r2]
+ adds r0, 0x1
+ strh r0, [r2]
+ movs r3, 0x1
+_080EAF9E:
+ subs r0, r5, 0x1
+ lsls r0, 16
+ lsrs r5, r0, 16
+ ldr r1, _080EAFB4 @ =0x0000ffff
+ cmp r5, r1
+ bne _080EAF4A
+ b _080EB00C
+ .align 2, 0
+_080EAFAC: .4byte gEasyChatWordsAlphabetized
+_080EAFB0: .4byte 0x0000feff
+_080EAFB4: .4byte 0x0000ffff
+_080EAFB8: .4byte 0x000001ff
+_080EAFBC: .4byte gUnknown_083DB694
+_080EAFC0: .4byte 0x00000b78
+_080EAFC4: .4byte 0x0000446c
+_080EAFC8:
+ lsrs r0, r4, 9
+ ldr r3, _080EB030 @ =0x000001ff
+ adds r2, r3, 0
+ adds r1, r4, 0
+ ands r1, r2
+ bl sub_80EADC0
+ lsls r0, 24
+ cmp r0, 0
+ beq _080EB00C
+ ldr r0, _080EB034 @ =gUnknown_083DB694
+ ldr r2, [r0]
+ mov r1, r9
+ adds r0, r1, 0x1
+ lsls r0, 16
+ lsrs r0, 16
+ mov r9, r0
+ lsls r1, 1
+ lsls r0, r7, 4
+ adds r0, r7
+ lsls r0, 3
+ subs r0, r7
+ lsls r0, 2
+ adds r1, r0
+ ldr r3, _080EB038 @ =0x00000b78
+ adds r0, r2, r3
+ adds r0, r1
+ strh r4, [r0]
+ ldr r0, _080EB03C @ =0x0000446c
+ adds r2, r0
+ add r2, r10
+ ldrh r0, [r2]
+ adds r0, 0x1
+ strh r0, [r2]
+_080EB00C:
+ ldr r1, [sp]
+ cmp r6, r1
+ bcs _080EB014
+ b _080EAF14
+_080EB014:
+ ldr r3, [sp, 0x8]
+ lsls r0, r3, 16
+ lsrs r7, r0, 16
+ cmp r7, 0x1A
+ bhi _080EB020
+ b _080EAEE4
+_080EB020:
+ add sp, 0x10
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080EB030: .4byte 0x000001ff
+_080EB034: .4byte gUnknown_083DB694
+_080EB038: .4byte 0x00000b78
+_080EB03C: .4byte 0x0000446c
+ thumb_func_end sub_80EAECC
+
+ thumb_func_start sub_80EB040
+sub_80EB040: @ 80EB040
+ push {r4-r6,lr}
+ movs r3, 0
+_080EB044:
+ adds r6, r3, 0x1
+ cmp r3, 0
+ beq _080EB094
+ cmp r3, 0x15
+ beq _080EB094
+ cmp r3, 0x12
+ beq _080EB094
+ cmp r3, 0x13
+ beq _080EB094
+ ldr r0, _080EB0A4 @ =gEasyChatGroupWords
+ lsls r1, r3, 2
+ adds r1, r0
+ ldr r2, [r1]
+ movs r4, 0
+ ldrb r0, [r2]
+ cmp r0, 0xFF
+ beq _080EB094
+ ldr r0, _080EB0A8 @ =gUnknown_083DB694
+ ldr r0, [r0]
+ ldr r1, _080EB0AC @ =0x000044d0
+ adds r5, r0, r1
+_080EB06E:
+ lsls r0, r4, 2
+ lsls r1, r3, 10
+ adds r0, r1
+ adds r0, r5, r0
+ str r2, [r0]
+ ldrb r0, [r2]
+ adds r1, r4, 0x1
+ cmp r0, 0xFF
+ beq _080EB088
+_080EB080:
+ adds r2, 0x1
+ ldrb r0, [r2]
+ cmp r0, 0xFF
+ bne _080EB080
+_080EB088:
+ adds r2, 0x1
+ lsls r0, r1, 16
+ lsrs r4, r0, 16
+ ldrb r0, [r2]
+ cmp r0, 0xFF
+ bne _080EB06E
+_080EB094:
+ lsls r0, r6, 16
+ lsrs r3, r0, 16
+ cmp r3, 0x15
+ bls _080EB044
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080EB0A4: .4byte gEasyChatGroupWords
+_080EB0A8: .4byte gUnknown_083DB694
+_080EB0AC: .4byte 0x000044d0
+ thumb_func_end sub_80EB040
+
+ thumb_func_start sub_80EB0B0
+sub_80EB0B0: @ 80EB0B0
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x8
+ ldr r3, _080EB184 @ =gUnknown_083DB694
+ ldr r4, [r3]
+ adds r0, r4, 0
+ adds r0, 0x26
+ ldrb r5, [r0]
+ cmp r5, 0
+ bne _080EB19C
+ movs r0, 0xDC
+ lsls r0, 1
+ adds r2, r4, r0
+ ldrb r6, [r2]
+ lsls r1, r6, 1
+ ldr r7, _080EB188 @ =0x000044a2
+ adds r0, r4, r7
+ adds r0, r1
+ strh r5, [r0]
+ movs r7, 0
+ movs r0, 0
+ mov r9, r0
+ ldr r1, _080EB18C @ =gEasyChatGroupOrders
+ lsls r0, r6, 2
+ adds r0, r1
+ ldr r0, [r0]
+ str r0, [sp]
+ movs r1, 0
+ mov r8, r1
+ ldr r1, _080EB190 @ =gEasyChatGroupSizes
+ ldrb r0, [r2]
+ adds r0, r1
+ ldrb r0, [r0]
+ cmp r8, r0
+ bcc _080EB0FE
+ b _080EB1FE
+_080EB0FE:
+ movs r2, 0xDC
+ lsls r2, 1
+ adds r2, r4, r2
+ str r2, [sp, 0x4]
+ lsls r5, r6, 24
+ mov r10, r5
+_080EB10A:
+ mov r1, r8
+ lsls r0, r1, 1
+ ldr r2, [sp]
+ adds r5, r0, r2
+ ldrh r1, [r5]
+ mov r2, r10
+ lsrs r0, r2, 24
+ bl sub_80EADC0
+ lsls r0, 24
+ cmp r0, 0
+ beq _080EB16A
+ ldr r0, _080EB184 @ =gUnknown_083DB694
+ ldr r3, [r0]
+ lsls r1, r7, 1
+ mov r2, r9
+ lsls r0, r2, 2
+ adds r1, r0
+ ldr r0, _080EB194 @ =0x00009d56
+ adds r4, r3, r0
+ adds r4, r1
+ movs r0, 0x7F
+ ands r0, r6
+ lsls r0, 9
+ ldrh r1, [r5]
+ ldr r5, _080EB198 @ =0x000001ff
+ adds r2, r5, 0
+ ands r1, r2
+ orrs r0, r1
+ strh r0, [r4]
+ lsls r0, r6, 1
+ ldr r1, _080EB188 @ =0x000044a2
+ adds r3, r1
+ adds r3, r0
+ ldrh r0, [r3]
+ adds r0, 0x1
+ strh r0, [r3]
+ adds r0, r7, 0x1
+ lsls r0, 16
+ lsrs r7, r0, 16
+ cmp r7, 0x1
+ bls _080EB16A
+ movs r7, 0
+ mov r0, r9
+ adds r0, 0x1
+ lsls r0, 16
+ lsrs r0, 16
+ mov r9, r0
+_080EB16A:
+ mov r0, r8
+ adds r0, 0x1
+ lsls r0, 16
+ lsrs r0, 16
+ mov r8, r0
+ ldr r1, _080EB190 @ =gEasyChatGroupSizes
+ ldr r2, [sp, 0x4]
+ ldrb r0, [r2]
+ adds r0, r1
+ ldrb r0, [r0]
+ cmp r8, r0
+ bcc _080EB10A
+ b _080EB1FE
+ .align 2, 0
+_080EB184: .4byte gUnknown_083DB694
+_080EB188: .4byte 0x000044a2
+_080EB18C: .4byte gEasyChatGroupOrders
+_080EB190: .4byte gEasyChatGroupSizes
+_080EB194: .4byte 0x00009d56
+_080EB198: .4byte 0x000001ff
+_080EB19C:
+ movs r5, 0xDC
+ lsls r5, 1
+ adds r0, r4, r5
+ ldrb r2, [r0]
+ movs r3, 0
+ movs r6, 0
+ movs r5, 0
+ lsls r1, r2, 1
+ ldr r7, _080EB210 @ =0x0000446c
+ adds r0, r4, r7
+ adds r1, r0, r1
+ ldrh r0, [r1]
+ cmp r5, r0
+ bcs _080EB1FE
+ ldr r7, _080EB214 @ =0x00009d56
+ adds r7, r4
+ mov r8, r7
+ lsls r0, r2, 4
+ adds r0, r2
+ lsls r0, 3
+ subs r0, r2
+ lsls r7, r0, 2
+ ldr r0, _080EB218 @ =0x00000b78
+ adds r2, r4, r0
+ adds r4, r1, 0
+_080EB1CE:
+ lsls r1, r3, 1
+ lsls r0, r6, 2
+ adds r1, r0
+ add r1, r8
+ lsls r0, r5, 1
+ adds r0, r7
+ adds r0, r2, r0
+ ldrh r0, [r0]
+ strh r0, [r1]
+ adds r0, r3, 0x1
+ lsls r0, 16
+ lsrs r3, r0, 16
+ cmp r3, 0x1
+ bls _080EB1F2
+ movs r3, 0
+ adds r0, r6, 0x1
+ lsls r0, 16
+ lsrs r6, r0, 16
+_080EB1F2:
+ adds r0, r5, 0x1
+ lsls r0, 16
+ lsrs r5, r0, 16
+ ldrh r1, [r4]
+ cmp r5, r1
+ bcc _080EB1CE
+_080EB1FE:
+ add sp, 0x8
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080EB210: .4byte 0x0000446c
+_080EB214: .4byte 0x00009d56
+_080EB218: .4byte 0x00000b78
+ thumb_func_end sub_80EB0B0
+
+ thumb_func_start sub_80EB218
+sub_80EB218: @ 80EB218
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ adds r5, r0, 0
+ lsls r6, r1, 16
+ lsrs r4, r6, 16
+ adds r7, r4, 0
+ lsls r2, 16
+ lsrs r2, 16
+ mov r8, r2
+ adds r0, r4, 0
+ bl sub_80EB37C
+ lsls r0, 24
+ cmp r0, 0
+ beq _080EB240
+ ldr r1, _080EB23C @ =gOtherText_ThreeQuestions
+ b _080EB2A2
+ .align 2, 0
+_080EB23C: .4byte gOtherText_ThreeQuestions
+_080EB240:
+ ldr r0, _080EB250 @ =0x0000ffff
+ cmp r4, r0
+ bne _080EB254
+ adds r1, r5, 0
+ movs r0, 0xFF
+ strb r0, [r1]
+ b _080EB2AA
+ .align 2, 0
+_080EB250: .4byte 0x0000ffff
+_080EB254:
+ lsrs r2, r6, 25
+ ldr r1, _080EB268 @ =0x000001ff
+ ands r1, r7
+ cmp r2, 0x13
+ bgt _080EB26C
+ cmp r2, 0x12
+ bge _080EB280
+ cmp r2, 0
+ beq _080EB270
+ b _080EB290
+ .align 2, 0
+_080EB268: .4byte 0x000001ff
+_080EB26C:
+ cmp r2, 0x15
+ bne _080EB290
+_080EB270:
+ movs r0, 0xB
+ muls r1, r0
+ ldr r0, _080EB27C @ =gSpeciesNames
+ adds r1, r0
+ b _080EB2A2
+ .align 2, 0
+_080EB27C: .4byte gSpeciesNames
+_080EB280:
+ movs r0, 0xD
+ muls r1, r0
+ ldr r0, _080EB28C @ =gMoveNames
+ adds r1, r0
+ b _080EB2A2
+ .align 2, 0
+_080EB28C: .4byte gMoveNames
+_080EB290:
+ ldr r0, _080EB2CC @ =gUnknown_083DB694
+ ldr r0, [r0]
+ lsls r1, 2
+ lsls r2, 10
+ adds r1, r2
+ ldr r2, _080EB2D0 @ =0x000044d0
+ adds r0, r2
+ adds r0, r1
+ ldr r1, [r0]
+_080EB2A2:
+ adds r0, r5, 0
+ bl StringCopy
+ adds r1, r0, 0
+_080EB2AA:
+ movs r0, 0xFC
+ strb r0, [r1]
+ movs r0, 0x13
+ strb r0, [r1, 0x1]
+ mov r2, r8
+ lsls r0, r2, 3
+ strb r0, [r1, 0x2]
+ adds r1, 0x3
+ movs r0, 0xFF
+ strb r0, [r1]
+ adds r0, r1, 0
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080EB2CC: .4byte gUnknown_083DB694
+_080EB2D0: .4byte 0x000044d0
+ thumb_func_end sub_80EB218
+
+ thumb_func_start sub_80EB2D4
+sub_80EB2D4: @ 80EB2D4
+ push {r4-r6,lr}
+ lsls r5, r0, 16
+ lsrs r4, r5, 16
+ adds r6, r4, 0
+ adds r0, r4, 0
+ bl sub_80EB37C
+ lsls r0, 24
+ cmp r0, 0
+ beq _080EB2F8
+ ldr r0, _080EB2F4 @ =gOtherText_ThreeQuestions
+ bl StringLength
+ lsls r0, 16
+ lsrs r0, 16
+ b _080EB374
+ .align 2, 0
+_080EB2F4: .4byte gOtherText_ThreeQuestions
+_080EB2F8:
+ ldr r0, _080EB304 @ =0x0000ffff
+ cmp r4, r0
+ bne _080EB308
+ movs r0, 0
+ b _080EB374
+ .align 2, 0
+_080EB304: .4byte 0x0000ffff
+_080EB308:
+ lsrs r2, r5, 25
+ ldr r1, _080EB31C @ =0x000001ff
+ ands r1, r6
+ cmp r2, 0x13
+ bgt _080EB320
+ cmp r2, 0x12
+ bge _080EB334
+ cmp r2, 0
+ beq _080EB324
+ b _080EB344
+ .align 2, 0
+_080EB31C: .4byte 0x000001ff
+_080EB320:
+ cmp r2, 0x15
+ bne _080EB344
+_080EB324:
+ movs r0, 0xB
+ muls r1, r0
+ ldr r0, _080EB330 @ =gSpeciesNames
+ adds r1, r0
+ b _080EB356
+ .align 2, 0
+_080EB330: .4byte gSpeciesNames
+_080EB334:
+ movs r0, 0xD
+ muls r1, r0
+ ldr r0, _080EB340 @ =gMoveNames
+ adds r1, r0
+ b _080EB356
+ .align 2, 0
+_080EB340: .4byte gMoveNames
+_080EB344:
+ ldr r0, _080EB35C @ =gUnknown_083DB694
+ ldr r0, [r0]
+ lsls r1, 2
+ lsls r2, 10
+ adds r1, r2
+ ldr r2, _080EB360 @ =0x000044d0
+ adds r0, r2
+ adds r0, r1
+ ldr r1, [r0]
+_080EB356:
+ movs r2, 0
+ b _080EB36C
+ .align 2, 0
+_080EB35C: .4byte gUnknown_083DB694
+_080EB360: .4byte 0x000044d0
+_080EB364:
+ adds r1, 0x1
+ adds r0, r2, 0x1
+ lsls r0, 16
+ lsrs r2, r0, 16
+_080EB36C:
+ ldrb r0, [r1]
+ cmp r0, 0xFF
+ bne _080EB364
+ adds r0, r2, 0
+_080EB374:
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80EB2D4
+
+ thumb_func_start sub_80EB37C
+sub_80EB37C: @ 80EB37C
+ push {r4,r5,lr}
+ lsls r1, r0, 16
+ lsrs r3, r1, 16
+ ldr r0, _080EB3A0 @ =0x0000ffff
+ cmp r3, r0
+ beq _080EB3EA
+ lsrs r2, r1, 25
+ ldr r5, _080EB3A4 @ =0x000001ff
+ ands r5, r3
+ cmp r2, 0x15
+ bhi _080EB3F4
+ cmp r2, 0x13
+ bgt _080EB3A8
+ cmp r2, 0x12
+ bge _080EB3AC
+ cmp r2, 0
+ beq _080EB3AC
+ b _080EB3E0
+ .align 2, 0
+_080EB3A0: .4byte 0x0000ffff
+_080EB3A4: .4byte 0x000001ff
+_080EB3A8:
+ cmp r2, 0x15
+ bne _080EB3E0
+_080EB3AC:
+ ldr r0, _080EB3D8 @ =gEasyChatGroupWords
+ lsls r1, r2, 2
+ adds r1, r0
+ ldr r4, [r1]
+ movs r3, 0
+ ldr r0, _080EB3DC @ =gEasyChatGroupSizes
+ adds r0, r2, r0
+ ldrb r0, [r0]
+ cmp r3, r0
+ bcs _080EB3F4
+ adds r1, r0, 0
+_080EB3C2:
+ lsls r0, r3, 1
+ adds r0, r4
+ ldrh r0, [r0]
+ cmp r5, r0
+ beq _080EB3EA
+ adds r0, r3, 0x1
+ lsls r0, 16
+ lsrs r3, r0, 16
+ cmp r3, r1
+ bcc _080EB3C2
+ b _080EB3F4
+ .align 2, 0
+_080EB3D8: .4byte gEasyChatGroupWords
+_080EB3DC: .4byte gEasyChatGroupSizes
+_080EB3E0:
+ ldr r0, _080EB3F0 @ =gEasyChatGroupSizes
+ adds r0, r2, r0
+ ldrb r0, [r0]
+ cmp r5, r0
+ bcs _080EB3F4
+_080EB3EA:
+ movs r0, 0
+ b _080EB3F6
+ .align 2, 0
+_080EB3F0: .4byte gEasyChatGroupSizes
+_080EB3F4:
+ movs r0, 0x1
+_080EB3F6:
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80EB37C
+
+ thumb_func_start de_sub_80EB748
+de_sub_80EB748: @ 80EB3FC
+ push {r4-r7,lr}
+ adds r3, r0, 0
+ adds r5, r1, 0
+ movs r7, 0
+ cmp r3, 0x13
+ bgt _080EB412
+ cmp r3, 0x12
+ bge _080EB416
+ cmp r3, 0
+ beq _080EB416
+ b _080EB458
+_080EB412:
+ cmp r3, 0x15
+ bne _080EB458
+_080EB416:
+ ldr r1, _080EB438 @ =gEasyChatGroupWords
+ lsls r0, r3, 2
+ adds r0, r1
+ ldr r4, [r0]
+ movs r2, 0
+ ldr r0, _080EB43C @ =gEasyChatGroupSizes
+ adds r1, r3, r0
+ adds r6, r0, 0
+ ldrb r1, [r1]
+ cmp r2, r1
+ bge _080EB45A
+ ldrh r0, [r4]
+ cmp r5, r0
+ bne _080EB440
+ movs r7, 0
+ b _080EB45A
+ .align 2, 0
+_080EB438: .4byte gEasyChatGroupWords
+_080EB43C: .4byte gEasyChatGroupSizes
+_080EB440:
+ adds r2, 0x1
+ adds r0, r3, r6
+ ldrb r0, [r0]
+ cmp r2, r0
+ bge _080EB45A
+ lsls r0, r2, 1
+ adds r0, r4
+ ldrh r0, [r0]
+ cmp r5, r0
+ bne _080EB440
+ adds r7, r2, 0
+ b _080EB45A
+_080EB458:
+ adds r7, r5, 0
+_080EB45A:
+ adds r0, r7, 0
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end de_sub_80EB748
+
+ thumb_func_start sub_80EB3FC
+sub_80EB3FC: @ 80EB4B4
+ push {r4-r7,lr}
+ adds r5, r0, 0
+ lsls r6, r1, 16
+ lsrs r4, r6, 16
+ adds r7, r4, 0
+ adds r0, r4, 0
+ bl sub_80EB37C
+ lsls r0, 24
+ cmp r0, 0
+ beq _080EB4D8
+ ldr r1, _080EB4D4 @ =gOtherText_ThreeQuestions
+ adds r0, r5, 0
+ bl StringCopy
+ b _080EB55E
+ .align 2, 0
+_080EB4D4: .4byte gOtherText_ThreeQuestions
+_080EB4D8:
+ ldr r0, _080EB4F4 @ =0x0000ffff
+ cmp r4, r0
+ beq _080EB558
+ lsrs r1, r6, 25
+ ldr r2, _080EB4F8 @ =0x000001ff
+ ands r2, r7
+ cmp r1, 0x13
+ bgt _080EB4FC
+ cmp r1, 0x12
+ bge _080EB510
+ cmp r1, 0
+ beq _080EB500
+ b _080EB520
+ .align 2, 0
+_080EB4F4: .4byte 0x0000ffff
+_080EB4F8: .4byte 0x000001ff
+_080EB4FC:
+ cmp r1, 0x15
+ bne _080EB520
+_080EB500:
+ movs r0, 0xB
+ adds r1, r2, 0
+ muls r1, r0
+ ldr r0, _080EB50C @ =gSpeciesNames
+ adds r1, r0
+ b _080EB550
+ .align 2, 0
+_080EB50C: .4byte gSpeciesNames
+_080EB510:
+ movs r0, 0xD
+ adds r1, r2, 0
+ muls r1, r0
+ ldr r0, _080EB51C @ =gMoveNames
+ adds r1, r0
+ b _080EB550
+ .align 2, 0
+_080EB51C: .4byte gMoveNames
+_080EB520:
+ ldr r0, _080EB564 @ =gEasyChatGroupWords
+ lsls r1, 2
+ adds r1, r0
+ ldr r1, [r1]
+ subs r0, r2, 0x1
+ lsls r0, 16
+ lsrs r2, r0, 16
+ ldr r0, _080EB568 @ =0x0000ffff
+ cmp r2, r0
+ beq _080EB550
+ adds r3, r0, 0
+_080EB536:
+ ldrb r0, [r1]
+ adds r1, 0x1
+ subs r2, 0x1
+ cmp r0, 0xFF
+ beq _080EB548
+_080EB540:
+ ldrb r0, [r1]
+ adds r1, 0x1
+ cmp r0, 0xFF
+ bne _080EB540
+_080EB548:
+ lsls r0, r2, 16
+ lsrs r2, r0, 16
+ cmp r2, r3
+ bne _080EB536
+_080EB550:
+ adds r0, r5, 0
+ bl StringCopy
+ adds r5, r0, 0
+_080EB558:
+ movs r0, 0xFF
+ strb r0, [r5]
+ adds r0, r5, 0
+_080EB55E:
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080EB564: .4byte gEasyChatGroupWords
+_080EB568: .4byte 0x0000ffff
+ thumb_func_end sub_80EB3FC
+
+ .align 2, 0 @ Don't pad with nop.