summaryrefslogtreecommitdiff
path: root/asm/easy_chat.s
diff options
context:
space:
mode:
Diffstat (limited to 'asm/easy_chat.s')
-rw-r--r--asm/easy_chat.s11183
1 files changed, 11183 insertions, 0 deletions
diff --git a/asm/easy_chat.s b/asm/easy_chat.s
new file mode 100644
index 000000000..5abcc25f8
--- /dev/null
+++ b/asm/easy_chat.s
@@ -0,0 +1,11183 @@
+ .include "asm/macros.inc"
+ .include "constants/constants.inc"
+
+ .syntax unified
+
+ .text
+
+ thumb_func_start sub_811A20C
+sub_811A20C: @ 811A20C
+ push {r4-r6,lr}
+ mov r6, r9
+ mov r5, r8
+ push {r5,r6}
+ adds r6, r0, 0
+ mov r8, r1
+ mov r9, r2
+ adds r5, r3, 0
+ lsls r6, 24
+ lsrs r6, 24
+ lsls r5, 24
+ lsrs r5, 24
+ bl ResetTasks
+ ldr r0, =sub_811A2C0
+ movs r1, 0
+ bl CreateTask
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ ldr r1, =0x03005e00
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ strh r6, [r0, 0xA]
+ strh r5, [r0, 0x16]
+ adds r0, r4, 0
+ movs r1, 0x2
+ mov r2, r8
+ bl SetWordTaskArg
+ adds r0, r4, 0
+ movs r1, 0x4
+ mov r2, r9
+ bl SetWordTaskArg
+ ldr r0, =sub_811A278
+ bl SetMainCallback2
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_811A20C
+
+ thumb_func_start sub_811A278
+sub_811A278: @ 811A278
+ push {lr}
+ bl RunTasks
+ bl CallObjectCallbacks
+ bl PrepareSpritesForOamLoad
+ bl fade_and_return_progress_probably
+ pop {r0}
+ bx r0
+ thumb_func_end sub_811A278
+
+ thumb_func_start sub_811A290
+sub_811A290: @ 811A290
+ push {lr}
+ bl copy_pal_bg_faded_to_pal_ram
+ bl LoadOamFromSprites
+ bl ProcessObjectCopyRequests
+ pop {r0}
+ bx r0
+ thumb_func_end sub_811A290
+
+ thumb_func_start sub_811A2A4
+sub_811A2A4: @ 811A2A4
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r3, =0x03005e00
+ lsls r2, r0, 2
+ adds r2, r0
+ lsls r2, 3
+ adds r2, r3
+ str r1, [r2]
+ movs r0, 0
+ strh r0, [r2, 0x8]
+ bx lr
+ .pool
+ thumb_func_end sub_811A2A4
+
+ thumb_func_start sub_811A2C0
+sub_811A2C0: @ 811A2C0
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ bl is_c1_link_related_active
+ cmp r0, 0
+ bne _0811A2DC
+_0811A2CE:
+ adds r0, r4, 0
+ bl sub_811A428
+ lsls r0, 24
+ cmp r0, 0
+ bne _0811A2CE
+ b _0811A2EA
+_0811A2DC:
+ adds r0, r4, 0
+ bl sub_811A428
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ beq _0811A2F2
+_0811A2EA:
+ ldr r1, =sub_811A2FC
+ adds r0, r4, 0
+ bl sub_811A2A4
+_0811A2F2:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_811A2C0
+
+ thumb_func_start sub_811A2FC
+sub_811A2FC: @ 811A2FC
+ push {r4-r6,lr}
+ sub sp, 0x4
+ lsls r0, 24
+ lsrs r2, r0, 24
+ lsls r0, r2, 2
+ adds r0, r2
+ lsls r0, 3
+ ldr r1, =0x03005e08
+ adds r5, r0, r1
+ movs r1, 0
+ ldrsh r0, [r5, r1]
+ cmp r0, 0x5
+ bls _0811A318
+ b _0811A41C
+_0811A318:
+ lsls r0, 2
+ ldr r1, =_0811A32C
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .pool
+ .align 2, 0
+_0811A32C:
+ .4byte _0811A344
+ .4byte _0811A370
+ .4byte _0811A3CC
+ .4byte _0811A3D4
+ .4byte _0811A3EC
+ .4byte _0811A40C
+_0811A344:
+ ldr r0, =sub_811A290
+ bl SetVBlankCallback
+ movs r4, 0x1
+ negs r4, r4
+ adds r0, r4, 0
+ movs r1, 0x10
+ movs r2, 0
+ bl sub_80A2A20
+ movs r0, 0
+ str r0, [sp]
+ adds r0, r4, 0
+ adds r1, r4, 0
+ movs r2, 0x10
+ movs r3, 0
+ bl pal_fade_maybe
+ movs r0, 0x5
+ b _0811A41A
+ .pool
+_0811A370:
+ bl sub_811AAAC
+ lsls r0, 16
+ lsrs r4, r0, 16
+ adds r6, r4, 0
+ adds r0, r4, 0
+ bl sub_811A88C
+ cmp r0, 0
+ beq _0811A39E
+ movs r0, 0x1
+ negs r0, r0
+ movs r1, 0x2
+ negs r1, r1
+ movs r2, 0
+ str r2, [sp]
+ movs r3, 0x10
+ bl pal_fade_maybe
+ movs r0, 0x3
+ strh r0, [r5]
+ strh r4, [r5, 0xC]
+ b _0811A41C
+_0811A39E:
+ cmp r4, 0x18
+ bne _0811A3B6
+ movs r1, 0x1
+ negs r1, r1
+ str r0, [sp]
+ adds r0, r1, 0
+ movs r2, 0
+ movs r3, 0x10
+ bl pal_fade_maybe
+ movs r0, 0x4
+ b _0811A41A
+_0811A3B6:
+ cmp r6, 0
+ beq _0811A41C
+ movs r0, 0x5
+ bl audio_play
+ adds r0, r6, 0
+ bl sub_811C158
+ ldrh r0, [r5]
+ adds r0, 0x1
+ b _0811A41A
+_0811A3CC:
+ bl sub_811C170
+ lsls r0, 24
+ b _0811A414
+_0811A3D4:
+ ldr r0, =0x02037fd4
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _0811A41C
+ ldrh r0, [r5, 0xC]
+ bl sub_811A8A4
+ b _0811A41C
+ .pool
+_0811A3EC:
+ ldr r0, =0x02037fd4
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _0811A41C
+ adds r0, r2, 0
+ movs r1, 0x4
+ bl GetWordTaskArg
+ bl sub_811A4D0
+ b _0811A41C
+ .pool
+_0811A40C:
+ ldr r0, =0x02037fd4
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+_0811A414:
+ cmp r0, 0
+ bne _0811A41C
+ movs r0, 0x1
+_0811A41A:
+ strh r0, [r5]
+_0811A41C:
+ add sp, 0x4
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_811A2FC
+
+ thumb_func_start sub_811A428
+sub_811A428: @ 811A428
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ ldr r1, =0x03005e08
+ adds r6, r0, r1
+ movs r1, 0
+ ldrsh r0, [r6, r1]
+ cmp r0, 0x4
+ bhi _0811A4BC
+ lsls r0, 2
+ ldr r1, =_0811A454
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .pool
+ .align 2, 0
+_0811A454:
+ .4byte _0811A468
+ .4byte _0811A47C
+ .4byte _0811A482
+ .4byte _0811A498
+ .4byte _0811A4B0
+_0811A468:
+ movs r0, 0
+ bl SetVBlankCallback
+ bl ResetAllObjectData
+ bl ResetObjectPaletteAllocator
+ bl sub_80A1A74
+ b _0811A4C0
+_0811A47C:
+ bl sub_811F28C
+ b _0811A49C
+_0811A482:
+ ldrb r4, [r6, 0x2]
+ adds r0, r5, 0
+ movs r1, 0x2
+ bl GetWordTaskArg
+ adds r1, r0, 0
+ ldrb r2, [r6, 0xE]
+ adds r0, r4, 0
+ bl sub_811A95C
+ b _0811A49C
+_0811A498:
+ bl sub_811BF8C
+_0811A49C:
+ lsls r0, 24
+ cmp r0, 0
+ bne _0811A4C0
+ adds r0, r5, 0
+ movs r1, 0x4
+ bl GetWordTaskArg
+ bl sub_811A4D0
+ b _0811A4C0
+_0811A4B0:
+ bl sub_811BFA4
+ lsls r0, 24
+ cmp r0, 0
+ beq _0811A4C0
+ b _0811A4C6
+_0811A4BC:
+ movs r0, 0
+ b _0811A4C8
+_0811A4C0:
+ ldrh r0, [r6]
+ adds r0, 0x1
+ strh r0, [r6]
+_0811A4C6:
+ movs r0, 0x1
+_0811A4C8:
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_811A428
+
+ thumb_func_start sub_811A4D0
+sub_811A4D0: @ 811A4D0
+ push {r4,lr}
+ adds r4, r0, 0
+ bl sub_811C13C
+ bl sub_811AA90
+ bl sub_811F2B8
+ bl FreeAllWindowBuffers
+ adds r0, r4, 0
+ bl SetMainCallback2
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_811A4D0
+
+ thumb_func_start easy_chat_input_maybe
+easy_chat_input_maybe: @ 811A4F0
+ push {r4,r5,lr}
+ movs r5, 0x3
+ ldr r0, =0x020375e0
+ ldrh r0, [r0]
+ cmp r0, 0x14
+ bls _0811A4FE
+ b _0811A7D4
+_0811A4FE:
+ lsls r0, 2
+ ldr r1, =_0811A510
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .pool
+ .align 2, 0
+_0811A510:
+ .4byte _0811A564
+ .4byte _0811A578
+ .4byte _0811A58C
+ .4byte _0811A5A0
+ .4byte _0811A5B4
+ .4byte _0811A604
+ .4byte _0811A5D8
+ .4byte _0811A630
+ .4byte _0811A664
+ .4byte _0811A688
+ .4byte _0811A6B4
+ .4byte _0811A6D4
+ .4byte _0811A708
+ .4byte _0811A72C
+ .4byte _0811A73C
+ .4byte _0811A770
+ .4byte _0811A7D4
+ .4byte _0811A784
+ .4byte _0811A798
+ .4byte _0811A7AC
+ .4byte _0811A7BC
+_0811A564:
+ ldr r0, =0x03005d8c
+ ldr r0, [r0]
+ ldr r1, =0x00002bb0
+ adds r4, r0, r1
+ b _0811A7C2
+ .pool
+_0811A578:
+ ldr r0, =0x03005d8c
+ ldr r0, [r0]
+ ldr r2, =0x00002bbc
+ adds r4, r0, r2
+ b _0811A7C2
+ .pool
+_0811A58C:
+ ldr r0, =0x03005d8c
+ ldr r0, [r0]
+ ldr r3, =0x00002bc8
+ adds r4, r0, r3
+ b _0811A7C2
+ .pool
+_0811A5A0:
+ ldr r0, =0x03005d8c
+ ldr r0, [r0]
+ ldr r1, =0x00002bd4
+ adds r4, r0, r1
+ b _0811A7C2
+ .pool
+_0811A5B4:
+ ldr r2, =0x03005d8c
+ ldr r0, =0x020375e2
+ ldrh r1, [r0]
+ lsls r0, r1, 3
+ adds r0, r1
+ lsls r0, 2
+ ldr r3, =0x00002be0
+ adds r0, r3
+ ldr r1, [r2]
+ adds r4, r1, r0
+ b _0811A7C2
+ .pool
+_0811A5D8:
+ ldr r0, =0x03005d8c
+ ldr r0, [r0]
+ ldr r2, =0x00002e36
+ adds r1, r0, r2
+ ldr r3, =0x00002e2a
+ adds r2, r0, r3
+ movs r3, 0x5
+_0811A5E6:
+ ldrh r0, [r2]
+ strh r0, [r2, 0xC]
+ adds r2, 0x2
+ subs r3, 0x1
+ cmp r3, 0
+ bge _0811A5E6
+ adds r4, r1, 0
+ b _0811A7C2
+ .pool
+_0811A604:
+ ldr r2, =0x03005d8c
+ ldr r0, =0x020375e2
+ ldrh r1, [r0]
+ lsls r0, r1, 3
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, [r2]
+ adds r0, r1
+ ldr r1, =0x000027d0
+ adds r4, r0, r1
+ ldr r0, =0x020375e4
+ ldrb r5, [r0]
+ b _0811A7C2
+ .pool
+_0811A630:
+ ldr r2, =0x03005d8c
+ ldr r0, =0x020375e2
+ ldrh r1, [r0]
+ lsls r0, r1, 3
+ adds r0, r1
+ lsls r0, 2
+ ldr r3, =0x000027cc
+ adds r0, r3
+ ldr r1, [r2]
+ adds r1, r0
+ ldr r0, =0x020375e4
+ ldrh r0, [r0]
+ lsls r0, 1
+ adds r0, 0x1C
+ adds r4, r1, r0
+ movs r5, 0x1
+ b _0811A7C2
+ .pool
+_0811A664:
+ ldr r2, =0x03005d8c
+ ldr r0, =0x020375e2
+ ldrh r1, [r0]
+ lsls r0, r1, 3
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, [r2]
+ adds r0, r1
+ ldr r1, =0x000027ce
+ adds r4, r0, r1
+ movs r5, 0
+ b _0811A7C2
+ .pool
+_0811A688:
+ ldr r4, =0x02021ec4
+ ldr r1, =0x03005d8c
+ ldr r0, [r1]
+ ldr r2, =0x00002e6c
+ adds r0, r2
+ ldrh r0, [r0]
+ strh r0, [r4]
+ ldr r0, [r1]
+ ldr r3, =0x00002e6e
+ adds r0, r3
+ ldrh r0, [r0]
+ strh r0, [r4, 0x2]
+ b _0811A7C2
+ .pool
+_0811A6B4:
+ ldr r0, =0x03005d8c
+ ldr r0, [r0]
+ ldr r1, =0x00002baa
+ adds r4, r0, r1
+ ldr r2, =0x0000ffff
+ adds r0, r2, 0
+ strh r0, [r4]
+ movs r5, 0x1
+ b _0811A7C2
+ .pool
+_0811A6D4:
+ ldr r2, =0x03005d8c
+ ldr r0, =0x020375e2
+ ldrh r1, [r0]
+ lsls r0, r1, 3
+ adds r0, r1
+ lsls r0, 2
+ ldr r3, =0x000027cc
+ adds r0, r3
+ ldr r1, [r2]
+ adds r1, r0
+ ldr r0, =0x020375e4
+ ldrh r0, [r0]
+ lsls r0, 1
+ adds r0, 0x4
+ adds r4, r1, r0
+ movs r5, 0
+ b _0811A7C2
+ .pool
+_0811A708:
+ ldr r2, =0x03005d8c
+ ldr r0, =0x020375e2
+ ldrh r1, [r0]
+ lsls r0, r1, 3
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, [r2]
+ adds r0, r1
+ ldr r1, =0x000027e4
+ adds r4, r0, r1
+ movs r5, 0x1
+ b _0811A7C2
+ .pool
+_0811A72C:
+ ldr r4, =0x02021ec4
+ adds r0, r4, 0
+ movs r1, 0x2
+ bl sub_811F88C
+ b _0811A7C2
+ .pool
+_0811A73C:
+ ldr r2, =0x03005d8c
+ ldr r0, =0x020375e2
+ ldrh r1, [r0]
+ lsls r0, r1, 3
+ adds r0, r1
+ lsls r0, 2
+ ldr r3, =0x000027cc
+ adds r0, r3
+ ldr r1, [r2]
+ adds r1, r0
+ adds r4, r1, 0
+ adds r4, 0x14
+ ldr r2, =0x0000ffff
+ adds r0, r2, 0
+ strh r0, [r1, 0x14]
+ movs r5, 0x2
+ b _0811A7C2
+ .pool
+_0811A770:
+ ldr r0, =0x03005d8c
+ ldr r0, [r0]
+ ldr r3, =0x00003b6e
+ adds r4, r0, r3
+ b _0811A7C2
+ .pool
+_0811A784:
+ ldr r0, =0x03005d8c
+ ldr r0, [r0]
+ ldr r1, =0x00003b5a
+ adds r4, r0, r1
+ b _0811A7C2
+ .pool
+_0811A798:
+ ldr r0, =0x03005d8c
+ ldr r0, [r0]
+ ldr r2, =0x00003b6c
+ adds r4, r0, r2
+ b _0811A7C2
+ .pool
+_0811A7AC:
+ ldr r0, =0x03005d90
+ ldr r0, [r0]
+ movs r3, 0x82
+ lsls r3, 1
+ adds r4, r0, r3
+ b _0811A7C2
+ .pool
+_0811A7BC:
+ bl sub_801B058
+ adds r4, r0, 0
+_0811A7C2:
+ bl overworld_free_bg_tilemaps
+ ldr r0, =0x020375e0
+ ldrb r0, [r0]
+ ldr r2, =sub_80861B0
+ adds r1, r4, 0
+ adds r3, r5, 0
+ bl sub_811A20C
+_0811A7D4:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end easy_chat_input_maybe
+
+ thumb_func_start sub_811A7E4
+sub_811A7E4: @ 811A7E4
+ push {lr}
+ bl fade_and_return_progress_probably
+ ldr r0, =0x030022c0
+ movs r1, 0x87
+ lsls r1, 3
+ adds r0, r1
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _0811A804
+ cmp r0, 0x1
+ beq _0811A80E
+ b _0811A840
+ .pool
+_0811A804:
+ movs r0, 0x1
+ movs r1, 0
+ bl fade_screen
+ b _0811A840
+_0811A80E:
+ ldr r0, =0x02037fd4
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _0811A84E
+ ldr r0, =0x03005d8c
+ ldr r0, [r0]
+ ldr r1, =0x00003b58
+ adds r0, r1
+ ldr r1, =0x0000ffff
+ strh r1, [r0, 0x16]
+ bl overworld_free_bg_tilemaps
+ bl sub_811A8F0
+ b _0811A84E
+ .pool
+_0811A840:
+ ldr r1, =0x030022c0
+ movs r0, 0x87
+ lsls r0, 3
+ adds r1, r0
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+_0811A84E:
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_811A7E4
+
+ thumb_func_start sub_811A858
+sub_811A858: @ 811A858
+ push {lr}
+ ldr r0, =sub_811A7E4
+ bl SetMainCallback2
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_811A858
+
+ thumb_func_start sub_811A868
+sub_811A868: @ 811A868
+ push {lr}
+ lsls r0, 16
+ lsrs r2, r0, 16
+ movs r0, 0
+ ldr r1, =gUnknown_08597530
+_0811A872:
+ ldrh r3, [r1]
+ cmp r2, r3
+ beq _0811A884
+ adds r1, 0x8
+ adds r0, 0x1
+ cmp r0, 0x3
+ bls _0811A872
+ movs r0, 0x1
+ negs r0, r0
+_0811A884:
+ pop {r1}
+ bx r1
+ .pool
+ thumb_func_end sub_811A868
+
+ thumb_func_start sub_811A88C
+sub_811A88C: @ 811A88C
+ push {lr}
+ lsls r0, 16
+ lsrs r0, 16
+ bl sub_811A868
+ adds r1, r0, 0
+ mvns r1, r1
+ negs r0, r1
+ orrs r0, r1
+ lsrs r0, 31
+ pop {r1}
+ bx r1
+ thumb_func_end sub_811A88C
+
+ thumb_func_start sub_811A8A4
+sub_811A8A4: @ 811A8A4
+ push {r4,lr}
+ lsls r0, 16
+ lsrs r0, 16
+ bl sub_811A868
+ adds r4, r0, 0
+ bl ResetTasks
+ ldr r0, =gUnknown_08597530
+ lsls r4, 3
+ adds r0, 0x4
+ adds r4, r0
+ ldr r0, [r4]
+ bl sub_811A4D0
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_811A8A4
+
+ thumb_func_start sub_811A8CC
+sub_811A8CC: @ 811A8CC
+ push {lr}
+ ldr r0, =0x03005d8c
+ ldr r1, [r0]
+ ldr r0, =0x00003b6e
+ adds r1, r0
+ ldr r2, =sub_80861B0
+ movs r0, 0xF
+ movs r3, 0x3
+ bl sub_811A20C
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_811A8CC
+
+ thumb_func_start sub_811A8F0
+sub_811A8F0: @ 811A8F0
+ push {lr}
+ ldr r0, =0x03005d8c
+ ldr r1, [r0]
+ ldr r0, =0x00003b5a
+ adds r1, r0
+ ldr r2, =sub_80861B0
+ movs r0, 0x10
+ movs r3, 0x3
+ bl sub_811A20C
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_811A8F0
+
+ thumb_func_start sub_811A914
+sub_811A914: @ 811A914
+ push {lr}
+ ldr r0, =0x03005d8c
+ ldr r1, [r0]
+ ldr r0, =0x00003b6c
+ adds r1, r0
+ ldr r2, =sub_80861B0
+ movs r0, 0x12
+ movs r3, 0x3
+ bl sub_811A20C
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_811A914
+
+ thumb_func_start sub_811A938
+sub_811A938: @ 811A938
+ push {lr}
+ ldr r0, =0x03005d8c
+ ldr r1, [r0]
+ ldr r0, =0x00003b5a
+ adds r1, r0
+ ldr r2, =sub_80861B0
+ movs r0, 0x11
+ movs r3, 0x3
+ bl sub_811A20C
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_811A938
+
+ thumb_func_start sub_811A95C
+sub_811A95C: @ 811A95C
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ mov r8, r1
+ lsls r0, 24
+ lsrs r5, r0, 24
+ lsls r2, 24
+ lsrs r6, r2, 24
+ ldr r4, =0x0203a118
+ movs r0, 0x50
+ bl Alloc
+ str r0, [r4]
+ cmp r0, 0
+ bne _0811A984
+ movs r0, 0
+ b _0811AA7E
+ .pool
+_0811A984:
+ movs r7, 0
+ strb r5, [r0]
+ ldr r0, [r4]
+ mov r1, r8
+ str r1, [r0, 0x38]
+ strb r7, [r0, 0x5]
+ ldr r0, [r4]
+ strb r7, [r0, 0x6]
+ ldr r0, [r4]
+ strb r7, [r0, 0x9]
+ ldr r0, [r4]
+ strb r6, [r0, 0x12]
+ ldr r0, [r4]
+ strb r7, [r0, 0x13]
+ adds r0, r5, 0
+ bl sub_811BCC8
+ lsls r0, 24
+ lsrs r6, r0, 24
+ cmp r5, 0x10
+ bne _0811A9C6
+ ldr r0, [r4]
+ adds r0, 0x14
+ bl sub_811BDF0
+ ldr r0, [r4]
+ adds r1, r0, 0
+ adds r1, 0x14
+ str r1, [r0, 0x34]
+ movs r1, 0x7
+ strb r1, [r0, 0x4]
+ lsls r0, r6, 1
+ b _0811A9DE
+_0811A9C6:
+ ldr r0, [r4]
+ strb r7, [r0, 0x4]
+ ldr r3, [r4]
+ ldr r1, =gUnknown_08597550
+ lsls r2, r6, 1
+ adds r0, r2, r6
+ lsls r0, 3
+ adds r1, 0x4
+ adds r0, r1
+ ldr r0, [r0]
+ str r0, [r3, 0x34]
+ adds r0, r2, 0
+_0811A9DE:
+ ldr r3, =0x0203a118
+ ldr r2, [r3]
+ ldr r1, =gUnknown_08597550
+ adds r0, r6
+ lsls r0, 3
+ adds r0, r1
+ ldrb r1, [r0, 0x1]
+ strb r1, [r2, 0x2]
+ ldr r1, [r3]
+ ldrb r0, [r0, 0x2]
+ strb r0, [r1, 0x3]
+ ldr r0, [r3]
+ ldrb r2, [r0, 0x2]
+ ldrb r1, [r0, 0x3]
+ adds r4, r2, 0
+ muls r4, r1
+ adds r1, r4, 0
+ strb r1, [r0, 0x7]
+ ldr r0, [r3]
+ strb r6, [r0, 0x1]
+ ldr r1, [r3]
+ ldrb r0, [r1, 0x7]
+ adds r4, r3, 0
+ cmp r0, 0x9
+ bls _0811AA14
+ movs r0, 0x9
+ strb r0, [r1, 0x7]
+_0811AA14:
+ mov r0, r8
+ cmp r0, 0
+ beq _0811AA34
+ ldr r0, [r4]
+ adds r1, r0, 0
+ adds r1, 0x3C
+ ldrb r2, [r0, 0x7]
+ mov r0, r8
+ bl CpuSet
+ b _0811AA64
+ .pool
+_0811AA34:
+ movs r3, 0
+ ldr r0, [r4]
+ ldrb r0, [r0, 0x7]
+ cmp r3, r0
+ bge _0811AA5C
+ adds r6, r4, 0
+ ldr r1, =0x0000ffff
+ adds r5, r1, 0
+_0811AA44:
+ ldr r2, [r6]
+ lsls r0, r3, 1
+ adds r1, r2, 0
+ adds r1, 0x3C
+ adds r1, r0
+ ldrh r0, [r1]
+ orrs r0, r5
+ strh r0, [r1]
+ adds r3, 0x1
+ ldrb r2, [r2, 0x7]
+ cmp r3, r2
+ blt _0811AA44
+_0811AA5C:
+ ldr r1, [r4]
+ adds r0, r1, 0
+ adds r0, 0x3C
+ str r0, [r1, 0x38]
+_0811AA64:
+ bl sub_811F3AC
+ ldr r1, =0x0203a118
+ ldr r2, [r1]
+ lsls r0, 24
+ lsrs r0, 24
+ subs r0, 0x1
+ lsrs r1, r0, 31
+ adds r0, r1
+ asrs r0, 1
+ adds r0, 0x1
+ strb r0, [r2, 0xD]
+ movs r0, 0x1
+_0811AA7E:
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .pool
+ thumb_func_end sub_811A95C
+
+ thumb_func_start sub_811AA90
+sub_811AA90: @ 811AA90
+ push {r4,lr}
+ ldr r4, =0x0203a118
+ ldr r0, [r4]
+ cmp r0, 0
+ beq _0811AAA2
+ bl Free
+ movs r0, 0
+ str r0, [r4]
+_0811AAA2:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_811AA90
+
+ thumb_func_start sub_811AAAC
+sub_811AAAC: @ 811AAAC
+ push {lr}
+ ldr r0, =0x0203a118
+ ldr r0, [r0]
+ ldrb r0, [r0, 0x4]
+ cmp r0, 0xA
+ bhi _0811AB3E
+ lsls r0, 2
+ ldr r1, =_0811AACC
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .pool
+ .align 2, 0
+_0811AACC:
+ .4byte _0811AAF8
+ .4byte _0811AAFE
+ .4byte _0811AB04
+ .4byte _0811AB0A
+ .4byte _0811AB10
+ .4byte _0811AB16
+ .4byte _0811AB1C
+ .4byte _0811AB22
+ .4byte _0811AB28
+ .4byte _0811AB2E
+ .4byte _0811AB34
+_0811AAF8:
+ bl sub_811AB68
+ b _0811AB38
+_0811AAFE:
+ bl sub_811ACDC
+ b _0811AB38
+_0811AB04:
+ bl sub_811AE44
+ b _0811AB38
+_0811AB0A:
+ bl sub_811AF00
+ b _0811AB38
+_0811AB10:
+ bl sub_811AF8C
+ b _0811AB38
+_0811AB16:
+ bl sub_811B040
+ b _0811AB38
+_0811AB1C:
+ bl sub_811AFEC
+ b _0811AB38
+_0811AB22:
+ bl sub_811B08C
+ b _0811AB38
+_0811AB28:
+ bl sub_811B0BC
+ b _0811AB38
+_0811AB2E:
+ bl sub_811B0E8
+ b _0811AB38
+_0811AB34:
+ bl sub_811B0F8
+_0811AB38:
+ lsls r0, 16
+ lsrs r0, 16
+ b _0811AB40
+_0811AB3E:
+ movs r0, 0
+_0811AB40:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_811AAAC
+
+ thumb_func_start sub_811AB44
+sub_811AB44: @ 811AB44
+ push {lr}
+ bl sub_811BA68
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x2
+ beq _0811AB5E
+ cmp r0, 0x2
+ blt _0811AB62
+ cmp r0, 0x8
+ bgt _0811AB62
+ cmp r0, 0x7
+ blt _0811AB62
+_0811AB5E:
+ movs r0, 0x1
+ b _0811AB64
+_0811AB62:
+ movs r0, 0
+_0811AB64:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_811AB44
+
+ thumb_func_start sub_811AB68
+sub_811AB68: @ 811AB68
+ push {r4-r7,lr}
+ ldr r0, =0x030022c0
+ ldrh r1, [r0, 0x2E]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _0811ABB8
+ bl sub_811BF78
+ ldr r1, =0x0203a118
+ ldr r3, [r1]
+ movs r2, 0
+ movs r0, 0x2
+ strb r0, [r3, 0x4]
+ ldr r0, [r1]
+ strb r2, [r0, 0xA]
+ ldr r0, [r1]
+ strb r2, [r0, 0xB]
+ ldr r0, [r1]
+ strb r2, [r0, 0xC]
+ movs r0, 0x9
+ b _0811ACCC
+ .pool
+_0811AB9C:
+ movs r0, 0x20
+ ands r0, r1
+ cmp r0, 0
+ bne _0811AC68
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _0811AC58
+ movs r0, 0x10
+ ands r0, r1
+ cmp r0, 0
+ bne _0811AC48
+ movs r0, 0
+ b _0811ACCC
+_0811ABB8:
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ bne _0811AC78
+ movs r0, 0x8
+ ands r0, r1
+ cmp r0, 0
+ bne _0811AC7E
+ movs r0, 0x40
+ ands r0, r1
+ cmp r0, 0
+ beq _0811AB9C
+ ldr r2, =0x0203a118
+ ldr r1, [r2]
+ ldrb r0, [r1, 0x6]
+ subs r0, 0x1
+_0811ABD8:
+ strb r0, [r1, 0x6]
+_0811ABDA:
+ adds r7, r2, 0
+ adds r4, r7, 0
+ ldr r2, [r4]
+ movs r0, 0x6
+ ldrsb r0, [r2, r0]
+ ldr r6, =gUnknown_08597550
+ cmp r0, 0
+ bge _0811ABF8
+ ldrb r0, [r2, 0x1]
+ lsls r1, r0, 1
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r6
+ ldrb r0, [r1, 0x2]
+ strb r0, [r2, 0x6]
+_0811ABF8:
+ ldr r3, [r4]
+ movs r2, 0x6
+ ldrsb r2, [r3, r2]
+ adds r5, r6, 0
+ ldrb r1, [r3, 0x1]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 3
+ adds r0, r5
+ ldrb r0, [r0, 0x2]
+ cmp r2, r0
+ ble _0811AC14
+ movs r0, 0
+ strb r0, [r3, 0x6]
+_0811AC14:
+ ldr r3, [r4]
+ movs r2, 0x6
+ ldrsb r2, [r3, r2]
+ ldrb r1, [r3, 0x1]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 3
+ adds r1, r0, r5
+ ldrb r0, [r1, 0x2]
+ cmp r2, r0
+ bne _0811AC88
+ movs r0, 0x5
+ ldrsb r0, [r3, r0]
+ cmp r0, 0x2
+ ble _0811AC36
+ movs r0, 0x2
+ strb r0, [r3, 0x5]
+_0811AC36:
+ ldr r1, [r4]
+ movs r0, 0x1
+ strb r0, [r1, 0x4]
+ movs r0, 0x3
+ b _0811ACCC
+ .pool
+_0811AC48:
+ ldr r2, =0x0203a118
+ ldr r1, [r2]
+ ldrb r0, [r1, 0x5]
+ adds r0, 0x1
+ strb r0, [r1, 0x5]
+ b _0811ABDA
+ .pool
+_0811AC58:
+ ldr r2, =0x0203a118
+ ldr r1, [r2]
+ ldrb r0, [r1, 0x6]
+ adds r0, 0x1
+ b _0811ABD8
+ .pool
+_0811AC68:
+ ldr r2, =0x0203a118
+ ldr r1, [r2]
+ ldrb r0, [r1, 0x5]
+ subs r0, 0x1
+ strb r0, [r1, 0x5]
+ b _0811ABDA
+ .pool
+_0811AC78:
+ bl sub_811B150
+ b _0811AC82
+_0811AC7E:
+ bl sub_811B1B4
+_0811AC82:
+ lsls r0, 16
+ lsrs r0, 16
+ b _0811ACCC
+_0811AC88:
+ movs r0, 0x5
+ ldrsb r0, [r3, r0]
+ cmp r0, 0
+ bge _0811AC96
+ ldrb r0, [r1, 0x1]
+ subs r0, 0x1
+ strb r0, [r3, 0x5]
+_0811AC96:
+ ldr r3, [r4]
+ movs r2, 0x5
+ ldrsb r2, [r3, r2]
+ ldrb r1, [r3, 0x1]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 3
+ adds r0, r6
+ ldrb r0, [r0, 0x1]
+ cmp r2, r0
+ blt _0811ACB0
+ movs r0, 0
+ strb r0, [r3, 0x5]
+_0811ACB0:
+ bl sub_811AB44
+ cmp r0, 0
+ beq _0811ACCA
+ ldr r2, [r7]
+ ldr r0, [r2, 0x4]
+ ldr r1, =0x00ffff00
+ ands r0, r1
+ ldr r1, =0x00040100
+ cmp r0, r1
+ bne _0811ACCA
+ movs r0, 0
+ strb r0, [r2, 0x5]
+_0811ACCA:
+ movs r0, 0x2
+_0811ACCC:
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .pool
+ thumb_func_end sub_811AB68
+
+ thumb_func_start sub_811ACDC
+sub_811ACDC: @ 811ACDC
+ push {r4-r6,lr}
+ ldr r2, =0x030022c0
+ ldrh r1, [r2, 0x2E]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _0811AD4A
+ ldr r0, =0x0203a118
+ ldr r0, [r0]
+ ldrb r0, [r0, 0x5]
+ lsls r0, 24
+ asrs r0, 24
+ cmp r0, 0x1
+ beq _0811AD3E
+ b _0811AD24
+ .pool
+_0811AD04:
+ movs r0, 0x20
+ ands r0, r2
+ lsls r0, 16
+ lsrs r3, r0, 16
+ cmp r3, 0
+ bne _0811ADE0
+ movs r0, 0x80
+ ands r0, r2
+ cmp r0, 0
+ bne _0811ADD0
+ movs r0, 0x10
+ ands r0, r2
+ cmp r0, 0
+ bne _0811ADC0
+ movs r0, 0
+ b _0811AE32
+_0811AD24:
+ cmp r0, 0x1
+ bgt _0811AD2E
+ cmp r0, 0
+ beq _0811AD38
+ b _0811AD4A
+_0811AD2E:
+ cmp r0, 0x2
+ beq _0811ADF6
+ cmp r0, 0x3
+ beq _0811AD44
+ b _0811AD4A
+_0811AD38:
+ bl sub_811B184
+ b _0811ADFA
+_0811AD3E:
+ bl sub_811B150
+ b _0811ADFA
+_0811AD44:
+ bl sub_811B264
+ b _0811ADFA
+_0811AD4A:
+ ldrh r2, [r2, 0x2E]
+ movs r0, 0x2
+ ands r0, r2
+ cmp r0, 0
+ bne _0811ADF0
+ movs r0, 0x8
+ ands r0, r2
+ cmp r0, 0
+ bne _0811ADF6
+ movs r0, 0x40
+ ands r0, r2
+ cmp r0, 0
+ beq _0811AD04
+ ldr r2, =0x0203a118
+ ldr r1, [r2]
+ ldrb r0, [r1, 0x6]
+ subs r0, 0x1
+ strb r0, [r1, 0x6]
+_0811AD6E:
+ adds r6, r2, 0
+_0811AD70:
+ adds r5, r6, 0
+ ldr r4, [r5]
+ movs r3, 0x6
+ ldrsb r3, [r4, r3]
+ ldr r2, =gUnknown_08597550
+ ldrb r1, [r4, 0x1]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 3
+ adds r1, r0, r2
+ ldrb r0, [r1, 0x2]
+ cmp r3, r0
+ bne _0811AE00
+ bl sub_811BA3C
+ movs r2, 0x3
+ cmp r0, 0
+ beq _0811AD96
+ movs r2, 0x4
+_0811AD96:
+ ldr r1, [r5]
+ movs r0, 0x5
+ ldrsb r0, [r1, r0]
+ cmp r0, 0
+ bge _0811ADA4
+ subs r0, r2, 0x1
+ strb r0, [r1, 0x5]
+_0811ADA4:
+ ldr r1, [r5]
+ movs r0, 0x5
+ ldrsb r0, [r1, r0]
+ cmp r0, r2
+ blt _0811ADB2
+ movs r0, 0
+ strb r0, [r1, 0x5]
+_0811ADB2:
+ movs r0, 0x3
+ b _0811AE32
+ .pool
+_0811ADC0:
+ ldr r2, =0x0203a118
+ ldr r1, [r2]
+ ldrb r0, [r1, 0x5]
+ adds r0, 0x1
+ strb r0, [r1, 0x5]
+ b _0811AD6E
+ .pool
+_0811ADD0:
+ ldr r1, =0x0203a118
+ ldr r0, [r1]
+ strb r3, [r0, 0x6]
+ adds r6, r1, 0
+ b _0811AD70
+ .pool
+_0811ADE0:
+ ldr r2, =0x0203a118
+ ldr r1, [r2]
+ ldrb r0, [r1, 0x5]
+ subs r0, 0x1
+ strb r0, [r1, 0x5]
+ b _0811AD6E
+ .pool
+_0811ADF0:
+ bl sub_811B150
+ b _0811ADFA
+_0811ADF6:
+ bl sub_811B1B4
+_0811ADFA:
+ lsls r0, 16
+ lsrs r0, 16
+ b _0811AE32
+_0811AE00:
+ movs r0, 0x5
+ ldrsb r0, [r4, r0]
+ ldrb r1, [r1, 0x1]
+ cmp r0, r1
+ blt _0811AE0E
+ subs r0, r1, 0x1
+ strb r0, [r4, 0x5]
+_0811AE0E:
+ bl sub_811AB44
+ cmp r0, 0
+ beq _0811AE28
+ ldr r2, [r6]
+ ldr r0, [r2, 0x4]
+ ldr r1, =0x00ffff00
+ ands r0, r1
+ ldr r1, =0x00040100
+ cmp r0, r1
+ bne _0811AE28
+ movs r0, 0
+ strb r0, [r2, 0x5]
+_0811AE28:
+ ldr r0, =0x0203a118
+ ldr r1, [r0]
+ movs r0, 0
+ strb r0, [r1, 0x4]
+ movs r0, 0x2
+_0811AE32:
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ .pool
+ thumb_func_end sub_811ACDC
+
+ thumb_func_start sub_811AE44
+sub_811AE44: @ 811AE44
+ push {lr}
+ ldr r1, =0x030022c0
+ ldrh r2, [r1, 0x2E]
+ movs r0, 0x2
+ ands r0, r2
+ adds r3, r1, 0
+ cmp r0, 0
+ beq _0811AE60
+ bl sub_811B32C
+ b _0811AEF6
+ .pool
+_0811AE60:
+ movs r0, 0x1
+ ands r0, r2
+ cmp r0, 0
+ beq _0811AEAE
+ ldr r0, =0x0203a118
+ ldr r2, [r0]
+ movs r1, 0xA
+ ldrsb r1, [r2, r1]
+ movs r0, 0x1
+ negs r0, r0
+ cmp r1, r0
+ beq _0811AE84
+ bl sub_811B2B0
+ b _0811AEF6
+ .pool
+_0811AE84:
+ movs r0, 0xB
+ ldrsb r0, [r2, r0]
+ cmp r0, 0x1
+ beq _0811AEA2
+ cmp r0, 0x1
+ bgt _0811AE96
+ cmp r0, 0
+ beq _0811AE9C
+ b _0811AEAE
+_0811AE96:
+ cmp r0, 0x2
+ beq _0811AEA8
+ b _0811AEAE
+_0811AE9C:
+ bl sub_811B33C
+ b _0811AEF6
+_0811AEA2:
+ bl sub_811B368
+ b _0811AEF6
+_0811AEA8:
+ bl sub_811B32C
+ b _0811AEF6
+_0811AEAE:
+ ldrh r1, [r3, 0x2E]
+ movs r0, 0x4
+ ands r0, r1
+ cmp r0, 0
+ beq _0811AEBE
+ bl sub_811B33C
+ b _0811AEF6
+_0811AEBE:
+ ldrh r1, [r3, 0x30]
+ movs r0, 0x40
+ ands r0, r1
+ cmp r0, 0
+ beq _0811AECC
+ movs r0, 0x2
+ b _0811AEF2
+_0811AECC:
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ beq _0811AED8
+ movs r0, 0x3
+ b _0811AEF2
+_0811AED8:
+ movs r0, 0x20
+ ands r0, r1
+ cmp r0, 0
+ beq _0811AEE4
+ movs r0, 0x1
+ b _0811AEF2
+_0811AEE4:
+ movs r0, 0x10
+ ands r0, r1
+ cmp r0, 0
+ bne _0811AEF0
+ movs r0, 0
+ b _0811AEFA
+_0811AEF0:
+ movs r0, 0
+_0811AEF2:
+ bl sub_811B528
+_0811AEF6:
+ lsls r0, 16
+ lsrs r0, 16
+_0811AEFA:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_811AE44
+
+ thumb_func_start sub_811AF00
+sub_811AF00: @ 811AF00
+ push {lr}
+ ldr r2, =0x030022c0
+ ldrh r1, [r2, 0x2E]
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _0811AF24
+ ldr r0, =0x0203a118
+ ldr r1, [r0]
+ movs r0, 0x2
+ strb r0, [r1, 0x4]
+ movs r0, 0xE
+ b _0811AF86
+ .pool
+_0811AF24:
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _0811AF32
+ bl sub_811B394
+ b _0811AF82
+_0811AF32:
+ movs r0, 0x8
+ ands r0, r1
+ cmp r0, 0
+ beq _0811AF3E
+ movs r0, 0x4
+ b _0811AF7E
+_0811AF3E:
+ movs r0, 0x4
+ ands r0, r1
+ cmp r0, 0
+ beq _0811AF4A
+ movs r0, 0x5
+ b _0811AF7E
+_0811AF4A:
+ ldrh r1, [r2, 0x30]
+ movs r0, 0x40
+ ands r0, r1
+ cmp r0, 0
+ beq _0811AF58
+ movs r0, 0x2
+ b _0811AF7E
+_0811AF58:
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ beq _0811AF64
+ movs r0, 0x3
+ b _0811AF7E
+_0811AF64:
+ movs r0, 0x20
+ ands r0, r1
+ cmp r0, 0
+ beq _0811AF70
+ movs r0, 0x1
+ b _0811AF7E
+_0811AF70:
+ movs r0, 0x10
+ ands r0, r1
+ cmp r0, 0
+ bne _0811AF7C
+ movs r0, 0
+ b _0811AF86
+_0811AF7C:
+ movs r0, 0
+_0811AF7E:
+ bl sub_811B794
+_0811AF82:
+ lsls r0, 16
+ lsrs r0, 16
+_0811AF86:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_811AF00
+
+ thumb_func_start sub_811AF8C
+sub_811AF8C: @ 811AF8C
+ push {lr}
+ bl sub_8198C58
+ lsls r0, 24
+ asrs r1, r0, 24
+ cmp r1, 0
+ beq _0811AFC0
+ cmp r1, 0
+ bgt _0811AFA8
+ movs r0, 0x1
+ negs r0, r0
+ cmp r1, r0
+ beq _0811AFAC
+ b _0811AFE4
+_0811AFA8:
+ cmp r1, 0x1
+ bne _0811AFE4
+_0811AFAC:
+ bl sub_811B2A4
+ ldr r1, =0x0203a118
+ ldr r1, [r1]
+ strb r0, [r1, 0x4]
+ movs r0, 0x7
+ b _0811AFE6
+ .pool
+_0811AFC0:
+ ldr r0, =0x020375f0
+ strh r1, [r0]
+ ldr r0, =0x0203a118
+ ldr r0, [r0]
+ ldrb r0, [r0]
+ subs r0, 0x11
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bhi _0811AFD8
+ bl sub_811B3E4
+_0811AFD8:
+ movs r0, 0x18
+ b _0811AFE6
+ .pool
+_0811AFE4:
+ movs r0, 0
+_0811AFE6:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_811AF8C
+
+ thumb_func_start sub_811AFEC
+sub_811AFEC: @ 811AFEC
+ push {r4,lr}
+ bl sub_8198C58
+ lsls r0, 24
+ asrs r1, r0, 24
+ cmp r1, 0
+ beq _0811B020
+ cmp r1, 0
+ bgt _0811B008
+ movs r0, 0x1
+ negs r0, r0
+ cmp r1, r0
+ beq _0811B00C
+ b _0811B038
+_0811B008:
+ cmp r1, 0x1
+ bne _0811B038
+_0811B00C:
+ bl sub_811B2A4
+ ldr r1, =0x0203a118
+ ldr r1, [r1]
+ strb r0, [r1, 0x4]
+ movs r0, 0x7
+ b _0811B03A
+ .pool
+_0811B020:
+ bl sub_811BE9C
+ ldr r4, =0x020375f0
+ bl sub_811B4EC
+ strh r0, [r4]
+ bl sub_811B3E4
+ movs r0, 0x18
+ b _0811B03A
+ .pool
+_0811B038:
+ movs r0, 0
+_0811B03A:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_811AFEC
+
+ thumb_func_start sub_811B040
+sub_811B040: @ 811B040
+ push {lr}
+ bl sub_8198C58
+ lsls r0, 24
+ asrs r1, r0, 24
+ cmp r1, 0
+ beq _0811B070
+ cmp r1, 0
+ bgt _0811B05C
+ movs r0, 0x1
+ negs r0, r0
+ cmp r1, r0
+ beq _0811B060
+ b _0811B084
+_0811B05C:
+ cmp r1, 0x1
+ bne _0811B084
+_0811B060:
+ ldr r0, =0x0203a118
+ ldr r1, [r0]
+ movs r0, 0x1
+ strb r0, [r1, 0x4]
+ movs r0, 0x7
+ b _0811B086
+ .pool
+_0811B070:
+ bl sub_811B418
+ ldr r0, =0x0203a118
+ ldr r1, [r0]
+ movs r0, 0x1
+ strb r0, [r1, 0x4]
+ movs r0, 0x8
+ b _0811B086
+ .pool
+_0811B084:
+ movs r0, 0
+_0811B086:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_811B040
+
+ thumb_func_start sub_811B08C
+sub_811B08C: @ 811B08C
+ push {lr}
+ ldr r0, =0x030022c0
+ ldrh r1, [r0, 0x2E]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _0811B0A4
+ movs r0, 0x1A
+ b _0811B0B8
+ .pool
+_0811B0A4:
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ bne _0811B0B0
+ movs r0, 0
+ b _0811B0B8
+_0811B0B0:
+ bl sub_811B150
+ lsls r0, 16
+ lsrs r0, 16
+_0811B0B8:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_811B08C
+
+ thumb_func_start sub_811B0BC
+sub_811B0BC: @ 811B0BC
+ push {lr}
+ ldr r0, =0x030022c0
+ ldrh r1, [r0, 0x2E]
+ movs r0, 0x3
+ ands r0, r1
+ cmp r0, 0
+ bne _0811B0D4
+ movs r0, 0
+ b _0811B0E0
+ .pool
+_0811B0D4:
+ bl sub_811B2A4
+ ldr r1, =0x0203a118
+ ldr r1, [r1]
+ strb r0, [r1, 0x4]
+ movs r0, 0x7
+_0811B0E0:
+ pop {r1}
+ bx r1
+ .pool
+ thumb_func_end sub_811B0BC
+
+ thumb_func_start sub_811B0E8
+sub_811B0E8: @ 811B0E8
+ ldr r0, =0x0203a118
+ ldr r1, [r0]
+ movs r0, 0xA
+ strb r0, [r1, 0x4]
+ movs r0, 0x6
+ bx lr
+ .pool
+ thumb_func_end sub_811B0E8
+
+ thumb_func_start sub_811B0F8
+sub_811B0F8: @ 811B0F8
+ push {r4,lr}
+ bl sub_8198C58
+ lsls r0, 24
+ asrs r1, r0, 24
+ cmp r1, 0
+ beq _0811B134
+ cmp r1, 0
+ bgt _0811B114
+ movs r0, 0x1
+ negs r0, r0
+ cmp r1, r0
+ beq _0811B118
+ b _0811B148
+_0811B114:
+ cmp r1, 0x1
+ bne _0811B148
+_0811B118:
+ bl sub_811B454
+ ldr r2, =0x0203a118
+ ldr r1, [r2]
+ movs r0, 0
+ strb r0, [r1, 0x8]
+ ldr r1, [r2]
+ movs r0, 0x8
+ strb r0, [r1, 0x4]
+ movs r0, 0x1F
+ b _0811B14A
+ .pool
+_0811B134:
+ ldr r4, =0x020375f0
+ bl sub_811B4EC
+ strh r0, [r4]
+ bl sub_811B3E4
+ movs r0, 0x18
+ b _0811B14A
+ .pool
+_0811B148:
+ movs r0, 0
+_0811B14A:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_811B0F8
+
+ thumb_func_start sub_811B150
+sub_811B150: @ 811B150
+ push {lr}
+ ldr r1, =0x0203a118
+ ldr r2, [r1]
+ ldrb r0, [r2]
+ cmp r0, 0x13
+ beq _0811B160
+ cmp r0, 0xB
+ bne _0811B174
+_0811B160:
+ ldrb r0, [r2, 0x4]
+ strb r0, [r2, 0x8]
+ ldr r1, [r1]
+ movs r0, 0x8
+ strb r0, [r1, 0x4]
+ movs r0, 0x22
+ b _0811B180
+ .pool
+_0811B174:
+ ldrb r0, [r2, 0x4]
+ strb r0, [r2, 0x8]
+ ldr r1, [r1]
+ movs r0, 0x4
+ strb r0, [r1, 0x4]
+ movs r0, 0x5
+_0811B180:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_811B150
+
+ thumb_func_start sub_811B184
+sub_811B184: @ 811B184
+ push {lr}
+ ldr r2, =0x0203a118
+ ldr r0, [r2]
+ ldrb r1, [r0, 0x4]
+ strb r1, [r0, 0x8]
+ ldr r1, [r2]
+ ldrb r0, [r1]
+ cmp r0, 0x6
+ bne _0811B1A8
+ ldrb r0, [r1, 0x4]
+ strb r0, [r1, 0x8]
+ ldr r1, [r2]
+ movs r0, 0x8
+ strb r0, [r1, 0x4]
+ movs r0, 0x20
+ b _0811B1AE
+ .pool
+_0811B1A8:
+ movs r0, 0x5
+ strb r0, [r1, 0x4]
+ movs r0, 0x4
+_0811B1AE:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_811B184
+
+ thumb_func_start sub_811B1B4
+sub_811B1B4: @ 811B1B4
+ push {r4,lr}
+ ldr r4, =0x0203a118
+ ldr r1, [r4]
+ ldrb r0, [r1, 0x4]
+ strb r0, [r1, 0x8]
+ ldr r1, [r4]
+ ldrb r0, [r1]
+ cmp r0, 0x11
+ bne _0811B1DC
+ bl sub_811BD64
+ cmp r0, 0
+ bne _0811B1FA
+ bl sub_811BDB0
+ cmp r0, 0
+ bne _0811B1E8
+ b _0811B256
+ .pool
+_0811B1DC:
+ cmp r0, 0x12
+ bne _0811B204
+ bl sub_811BDB0
+ cmp r0, 0
+ beq _0811B1F2
+_0811B1E8:
+ ldr r1, [r4]
+ movs r0, 0x8
+ strb r0, [r1, 0x4]
+ movs r0, 0x1E
+ b _0811B25C
+_0811B1F2:
+ bl sub_811BD64
+ cmp r0, 0
+ beq _0811B256
+_0811B1FA:
+ ldr r1, [r4]
+ movs r0, 0x8
+ strb r0, [r1, 0x4]
+ movs r0, 0x1D
+ b _0811B25C
+_0811B204:
+ cmp r0, 0x9
+ beq _0811B20C
+ cmp r0, 0xD
+ bne _0811B21E
+_0811B20C:
+ bl sub_811BD2C
+ cmp r0, 0
+ bne _0811B256
+ ldr r1, [r4]
+ movs r0, 0x8
+ strb r0, [r1, 0x4]
+ movs r0, 0x21
+ b _0811B25C
+_0811B21E:
+ cmp r0, 0x13
+ beq _0811B226
+ cmp r0, 0xB
+ bne _0811B238
+_0811B226:
+ bl sub_811BCF4
+ cmp r0, 0
+ beq _0811B256
+ ldr r1, [r4]
+ movs r0, 0x8
+ strb r0, [r1, 0x4]
+ movs r0, 0x22
+ b _0811B25C
+_0811B238:
+ cmp r0, 0x14
+ beq _0811B258
+ bl sub_811BCF4
+ cmp r0, 0x1
+ beq _0811B24C
+ bl sub_811B4EC
+ cmp r0, 0
+ bne _0811B256
+_0811B24C:
+ ldr r1, [r4]
+ movs r0, 0x4
+ strb r0, [r1, 0x4]
+ movs r0, 0x5
+ b _0811B25C
+_0811B256:
+ ldr r1, [r4]
+_0811B258:
+ movs r0, 0x6
+ strb r0, [r1, 0x4]
+_0811B25C:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_811B1B4
+
+ thumb_func_start sub_811B264
+sub_811B264: @ 811B264
+ push {lr}
+ ldr r2, =0x0203a118
+ ldr r1, [r2]
+ ldrb r0, [r1, 0x4]
+ strb r0, [r1, 0x8]
+ ldr r0, [r2]
+ ldrb r0, [r0]
+ cmp r0, 0x11
+ beq _0811B28E
+ cmp r0, 0x11
+ bgt _0811B284
+ cmp r0, 0xF
+ beq _0811B28A
+ b _0811B29E
+ .pool
+_0811B284:
+ cmp r0, 0x12
+ beq _0811B296
+ b _0811B29E
+_0811B28A:
+ movs r0, 0x19
+ b _0811B2A0
+_0811B28E:
+ bl sub_811B3E4
+ movs r0, 0x1C
+ b _0811B2A0
+_0811B296:
+ bl sub_811B3E4
+ movs r0, 0x1B
+ b _0811B2A0
+_0811B29E:
+ movs r0, 0
+_0811B2A0:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_811B264
+
+ thumb_func_start sub_811B2A4
+sub_811B2A4: @ 811B2A4
+ ldr r0, =0x0203a118
+ ldr r0, [r0]
+ ldrb r0, [r0, 0x8]
+ bx lr
+ .pool
+ thumb_func_end sub_811B2A4
+
+ thumb_func_start sub_811B2B0
+sub_811B2B0: @ 811B2B0
+ push {lr}
+ ldr r0, =0x0203a118
+ ldr r0, [r0]
+ ldrb r0, [r0, 0x9]
+ cmp r0, 0
+ bne _0811B2DC
+ bl sub_811B8E8
+ lsls r0, 24
+ lsrs r0, 24
+ bl sub_811F3B8
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ movs r0, 0
+ bl sub_811F548
+ b _0811B2EC
+ .pool
+_0811B2DC:
+ bl sub_811B908
+ adds r1, r0, 0
+ lsls r1, 16
+ lsrs r1, 16
+ movs r0, 0x1
+ bl sub_811F548
+_0811B2EC:
+ bl sub_811F5B0
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0
+ beq _0811B324
+ ldr r2, =0x0203a118
+ ldr r3, [r2]
+ subs r0, 0x1
+ lsrs r1, r0, 31
+ adds r0, r1
+ asrs r0, 1
+ movs r1, 0
+ strb r0, [r3, 0xF]
+ ldr r0, [r2]
+ strb r1, [r0, 0xE]
+ ldr r0, [r2]
+ strb r1, [r0, 0x10]
+ ldr r0, [r2]
+ strb r1, [r0, 0x11]
+ ldr r1, [r2]
+ movs r0, 0x3
+ strb r0, [r1, 0x4]
+ movs r0, 0xB
+ b _0811B326
+ .pool
+_0811B324:
+ movs r0, 0
+_0811B326:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_811B2B0
+
+ thumb_func_start sub_811B32C
+sub_811B32C: @ 811B32C
+ ldr r0, =0x0203a118
+ ldr r1, [r0]
+ movs r0, 0
+ strb r0, [r1, 0x4]
+ movs r0, 0xA
+ bx lr
+ .pool
+ thumb_func_end sub_811B32C
+
+ thumb_func_start sub_811B33C
+sub_811B33C: @ 811B33C
+ push {lr}
+ ldr r1, =0x0203a118
+ ldr r0, [r1]
+ movs r2, 0
+ strb r2, [r0, 0xA]
+ ldr r0, [r1]
+ strb r2, [r0, 0xB]
+ ldr r0, [r1]
+ strb r2, [r0, 0xC]
+ ldr r1, [r1]
+ ldrb r0, [r1, 0x9]
+ cmp r0, 0
+ bne _0811B360
+ movs r0, 0x1
+ strb r0, [r1, 0x9]
+ b _0811B362
+ .pool
+_0811B360:
+ strb r2, [r1, 0x9]
+_0811B362:
+ movs r0, 0x17
+ pop {r1}
+ bx r1
+ thumb_func_end sub_811B33C
+
+ thumb_func_start sub_811B368
+sub_811B368: @ 811B368
+ push {lr}
+ ldr r0, =0x0203a118
+ ldr r0, [r0]
+ ldrb r0, [r0]
+ cmp r0, 0x6
+ beq _0811B388
+ ldr r0, =0x0000ffff
+ bl sub_811B488
+ movs r0, 0x1
+ b _0811B390
+ .pool
+_0811B388:
+ movs r0, 0x20
+ bl audio_play
+ movs r0, 0
+_0811B390:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_811B368
+
+ thumb_func_start sub_811B394
+sub_811B394: @ 811B394
+ push {r4,r5,lr}
+ bl sub_811B940
+ lsls r0, 16
+ lsrs r0, 16
+ bl sub_811F578
+ lsls r0, 16
+ lsrs r4, r0, 16
+ adds r0, r4, 0
+ bl sub_811BF88
+ adds r5, r0, 0
+ cmp r5, 0
+ beq _0811B3BC
+ movs r0, 0x20
+ bl audio_play
+ movs r0, 0
+ b _0811B3DC
+_0811B3BC:
+ adds r0, r4, 0
+ bl sub_811B488
+ ldr r0, =0x0203a118
+ ldr r1, [r0]
+ ldrb r0, [r1]
+ cmp r0, 0x6
+ bne _0811B3D8
+ movs r0, 0x9
+ strb r0, [r1, 0x4]
+ movs r0, 0xD
+ b _0811B3DC
+ .pool
+_0811B3D8:
+ strb r5, [r1, 0x4]
+ movs r0, 0xC
+_0811B3DC:
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_811B394
+
+ thumb_func_start sub_811B3E4
+sub_811B3E4: @ 811B3E4
+ push {r4,r5,lr}
+ movs r4, 0
+ ldr r3, =0x0203a118
+ ldr r0, [r3]
+ ldrb r0, [r0, 0x7]
+ cmp r4, r0
+ bge _0811B40E
+ adds r5, r3, 0
+_0811B3F4:
+ ldr r3, [r5]
+ ldr r1, [r3, 0x38]
+ lsls r2, r4, 1
+ adds r1, r2, r1
+ adds r0, r3, 0
+ adds r0, 0x3C
+ adds r0, r2
+ ldrh r0, [r0]
+ strh r0, [r1]
+ adds r4, 0x1
+ ldrb r3, [r3, 0x7]
+ cmp r4, r3
+ blt _0811B3F4
+_0811B40E:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_811B3E4
+
+ thumb_func_start sub_811B418
+sub_811B418: @ 811B418
+ push {r4,r5,lr}
+ movs r3, 0
+ ldr r2, =0x0203a118
+ ldr r0, [r2]
+ ldrb r0, [r0, 0x7]
+ cmp r3, r0
+ bge _0811B444
+ adds r5, r2, 0
+ ldr r0, =0x0000ffff
+ adds r4, r0, 0
+_0811B42C:
+ ldr r2, [r5]
+ lsls r0, r3, 1
+ adds r1, r2, 0
+ adds r1, 0x3C
+ adds r1, r0
+ ldrh r0, [r1]
+ orrs r0, r4
+ strh r0, [r1]
+ adds r3, 0x1
+ ldrb r2, [r2, 0x7]
+ cmp r3, r2
+ blt _0811B42C
+_0811B444:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_811B418
+
+ thumb_func_start sub_811B454
+sub_811B454: @ 811B454
+ push {r4,r5,lr}
+ movs r4, 0
+ ldr r3, =0x0203a118
+ ldr r0, [r3]
+ ldrb r0, [r0, 0x7]
+ cmp r4, r0
+ bge _0811B47E
+ adds r5, r3, 0
+_0811B464:
+ ldr r3, [r5]
+ lsls r1, r4, 1
+ adds r2, r3, 0
+ adds r2, 0x3C
+ adds r2, r1
+ ldr r0, [r3, 0x38]
+ adds r1, r0
+ ldrh r0, [r1]
+ strh r0, [r2]
+ adds r4, 0x1
+ ldrb r3, [r3, 0x7]
+ cmp r4, r3
+ blt _0811B464
+_0811B47E:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_811B454
+
+ thumb_func_start sub_811B488
+sub_811B488: @ 811B488
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r4, 16
+ lsrs r4, 16
+ bl sub_811B8C8
+ lsls r0, 16
+ ldr r1, =0x0203a118
+ ldr r1, [r1]
+ lsrs r0, 15
+ adds r1, 0x3C
+ adds r1, r0
+ strh r4, [r1]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_811B488
+
+ thumb_func_start sub_811B4AC
+sub_811B4AC: @ 811B4AC
+ push {r4,r5,lr}
+ movs r2, 0
+ ldr r0, =0x0203a118
+ ldr r0, [r0]
+ ldrb r1, [r0, 0x7]
+ cmp r2, r1
+ bcs _0811B4E2
+ adds r5, r1, 0
+ adds r4, r0, 0
+ adds r4, 0x3C
+ ldr r3, [r0, 0x38]
+_0811B4C2:
+ lsls r0, r2, 1
+ adds r1, r4, r0
+ adds r0, r3
+ ldrh r1, [r1]
+ ldrh r0, [r0]
+ cmp r1, r0
+ beq _0811B4D8
+ movs r0, 0x1
+ b _0811B4E4
+ .pool
+_0811B4D8:
+ adds r0, r2, 0x1
+ lsls r0, 16
+ lsrs r2, r0, 16
+ cmp r2, r5
+ bcc _0811B4C2
+_0811B4E2:
+ movs r0, 0
+_0811B4E4:
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_811B4AC
+
+ thumb_func_start sub_811B4EC
+sub_811B4EC: @ 811B4EC
+ push {lr}
+ ldr r0, =0x0203a118
+ ldr r0, [r0]
+ ldrb r0, [r0]
+ subs r0, 0x11
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bhi _0811B51C
+ bl sub_811BD64
+ cmp r0, 0
+ bne _0811B50E
+ bl sub_811BDB0
+ cmp r0, 0
+ beq _0811B518
+_0811B50E:
+ movs r0, 0
+ b _0811B524
+ .pool
+_0811B518:
+ movs r0, 0x1
+ b _0811B524
+_0811B51C:
+ bl sub_811B4AC
+ lsls r0, 24
+ lsrs r0, 24
+_0811B524:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_811B4EC
+
+ thumb_func_start sub_811B528
+sub_811B528: @ 811B528
+ push {lr}
+ adds r2, r0, 0
+ ldr r0, =0x0203a118
+ ldr r3, [r0]
+ movs r1, 0xA
+ ldrsb r1, [r3, r1]
+ movs r0, 0x1
+ negs r0, r0
+ cmp r1, r0
+ beq _0811B558
+ ldrb r0, [r3, 0x9]
+ cmp r0, 0
+ bne _0811B550
+ adds r0, r2, 0
+ bl sub_811B568
+ b _0811B55E
+ .pool
+_0811B550:
+ adds r0, r2, 0
+ bl sub_811B634
+ b _0811B55E
+_0811B558:
+ adds r0, r2, 0
+ bl sub_811B6C4
+_0811B55E:
+ lsls r0, 16
+ lsrs r0, 16
+ pop {r1}
+ bx r1
+ thumb_func_end sub_811B528
+
+ thumb_func_start sub_811B568
+sub_811B568: @ 811B568
+ push {r4,lr}
+ cmp r0, 0x1
+ beq _0811B5DE
+ cmp r0, 0x1
+ bcc _0811B5FE
+ cmp r0, 0x2
+ beq _0811B57C
+ cmp r0, 0x3
+ beq _0811B5A4
+ b _0811B62A
+_0811B57C:
+ ldr r0, =0x0203a118
+ ldr r1, [r0]
+ movs r0, 0xB
+ ldrsb r0, [r1, r0]
+ ldrb r3, [r1, 0xC]
+ cmn r0, r3
+ beq _0811B62A
+ ldrb r2, [r1, 0xB]
+ cmp r0, 0
+ beq _0811B59C
+ subs r0, r2, 0x1
+ strb r0, [r1, 0xB]
+_0811B594:
+ movs r0, 0xF
+ b _0811B62C
+ .pool
+_0811B59C:
+ subs r0, r3, 0x1
+ strb r0, [r1, 0xC]
+ movs r0, 0x11
+ b _0811B62C
+_0811B5A4:
+ ldr r0, =0x0203a118
+ ldr r2, [r0]
+ movs r1, 0xB
+ ldrsb r1, [r2, r1]
+ ldrb r3, [r2, 0xC]
+ adds r1, r3
+ ldrb r0, [r2, 0xD]
+ subs r0, 0x1
+ cmp r1, r0
+ bge _0811B62A
+ ldrb r1, [r2, 0xB]
+ movs r0, 0xB
+ ldrsb r0, [r2, r0]
+ cmp r0, 0x2
+ bgt _0811B5D0
+ adds r0, r1, 0x1
+ strb r0, [r2, 0xB]
+ movs r4, 0xF
+ b _0811B5D6
+ .pool
+_0811B5D0:
+ adds r0, r3, 0x1
+ strb r0, [r2, 0xC]
+ movs r4, 0x10
+_0811B5D6:
+ bl sub_811B978
+ adds r0, r4, 0
+ b _0811B62C
+_0811B5DE:
+ ldr r0, =0x0203a118
+ ldr r1, [r0]
+ ldrb r2, [r1, 0xA]
+ movs r0, 0xA
+ ldrsb r0, [r1, r0]
+ cmp r0, 0
+ beq _0811B5F8
+ subs r0, r2, 0x1
+ strb r0, [r1, 0xA]
+ b _0811B594
+ .pool
+_0811B5F8:
+ bl sub_811B744
+ b _0811B594
+_0811B5FE:
+ ldr r0, =0x0203a118
+ ldr r1, [r0]
+ ldrb r2, [r1, 0xA]
+ movs r0, 0xA
+ ldrsb r0, [r1, r0]
+ cmp r0, 0
+ bgt _0811B624
+ adds r0, r2, 0x1
+ strb r0, [r1, 0xA]
+ bl sub_811B9C8
+ lsls r0, 24
+ cmp r0, 0
+ beq _0811B594
+ bl sub_811B744
+ b _0811B594
+ .pool
+_0811B624:
+ bl sub_811B744
+ b _0811B594
+_0811B62A:
+ movs r0, 0
+_0811B62C:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_811B568
+
+ thumb_func_start sub_811B634
+sub_811B634: @ 811B634
+ push {lr}
+ cmp r0, 0x1
+ beq _0811B6A0
+ cmp r0, 0x1
+ bcc _0811B684
+ cmp r0, 0x2
+ beq _0811B64A
+ cmp r0, 0x3
+ beq _0811B66A
+ movs r0, 0
+ b _0811B6BC
+_0811B64A:
+ ldr r0, =0x0203a118
+ ldr r1, [r0]
+ ldrb r2, [r1, 0xB]
+ movs r0, 0xB
+ ldrsb r0, [r1, r0]
+ cmp r0, 0
+ ble _0811B660
+ subs r0, r2, 0x1
+ b _0811B662
+ .pool
+_0811B660:
+ movs r0, 0x3
+_0811B662:
+ strb r0, [r1, 0xB]
+ bl sub_811B978
+ b _0811B6BA
+_0811B66A:
+ ldr r0, =0x0203a118
+ ldr r1, [r0]
+ ldrb r2, [r1, 0xB]
+ movs r0, 0xB
+ ldrsb r0, [r1, r0]
+ cmp r0, 0x2
+ bgt _0811B680
+ adds r0, r2, 0x1
+ b _0811B662
+ .pool
+_0811B680:
+ movs r0, 0
+ b _0811B662
+_0811B684:
+ ldr r0, =0x0203a118
+ ldr r1, [r0]
+ ldrb r0, [r1, 0xA]
+ adds r0, 0x1
+ strb r0, [r1, 0xA]
+ bl sub_811B9C8
+ lsls r0, 24
+ cmp r0, 0
+ beq _0811B6BA
+ b _0811B6B6
+ .pool
+_0811B6A0:
+ ldr r2, =0x0203a118
+ ldr r1, [r2]
+ ldrb r0, [r1, 0xA]
+ subs r0, 0x1
+ strb r0, [r1, 0xA]
+ ldr r0, [r2]
+ ldrb r0, [r0, 0xA]
+ lsls r0, 24
+ asrs r0, 24
+ cmp r0, 0
+ bge _0811B6BA
+_0811B6B6:
+ bl sub_811B744
+_0811B6BA:
+ movs r0, 0xF
+_0811B6BC:
+ pop {r1}
+ bx r1
+ .pool
+ thumb_func_end sub_811B634
+
+ thumb_func_start sub_811B6C4
+sub_811B6C4: @ 811B6C4
+ push {lr}
+ adds r2, r0, 0
+ cmp r2, 0x1
+ beq _0811B714
+ cmp r2, 0x1
+ bcc _0811B728
+ cmp r2, 0x2
+ beq _0811B6DC
+ cmp r2, 0x3
+ beq _0811B6F8
+ movs r0, 0
+ b _0811B73A
+_0811B6DC:
+ ldr r0, =0x0203a118
+ ldr r1, [r0]
+ ldrb r3, [r1, 0xB]
+ movs r0, 0xB
+ ldrsb r0, [r1, r0]
+ cmp r0, 0
+ beq _0811B6F4
+ subs r0, r3, 0x1
+ b _0811B736
+ .pool
+_0811B6F4:
+ strb r2, [r1, 0xB]
+ b _0811B738
+_0811B6F8:
+ ldr r0, =0x0203a118
+ ldr r1, [r0]
+ ldrb r2, [r1, 0xB]
+ movs r0, 0xB
+ ldrsb r0, [r1, r0]
+ cmp r0, 0x1
+ bgt _0811B710
+ adds r0, r2, 0x1
+ b _0811B736
+ .pool
+_0811B710:
+ movs r0, 0
+ b _0811B736
+_0811B714:
+ ldr r0, =0x0203a118
+ ldr r1, [r0]
+ ldrb r0, [r1, 0xB]
+ adds r0, 0x1
+ strb r0, [r1, 0xB]
+ bl sub_811B768
+ b _0811B738
+ .pool
+_0811B728:
+ ldr r2, =0x0203a118
+ ldr r1, [r2]
+ movs r0, 0
+ strb r0, [r1, 0xA]
+ ldr r1, [r2]
+ ldrb r0, [r1, 0xB]
+ adds r0, 0x1
+_0811B736:
+ strb r0, [r1, 0xB]
+_0811B738:
+ movs r0, 0xF
+_0811B73A:
+ pop {r1}
+ bx r1
+ .pool
+ thumb_func_end sub_811B6C4
+
+ thumb_func_start sub_811B744
+sub_811B744: @ 811B744
+ push {lr}
+ ldr r2, =0x0203a118
+ ldr r1, [r2]
+ movs r0, 0xFF
+ strb r0, [r1, 0xA]
+ ldr r2, [r2]
+ ldrb r1, [r2, 0xB]
+ movs r0, 0xB
+ ldrsb r0, [r2, r0]
+ cmp r0, 0
+ beq _0811B75E
+ subs r0, r1, 0x1
+ strb r0, [r2, 0xB]
+_0811B75E:
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_811B744
+
+ thumb_func_start sub_811B768
+sub_811B768: @ 811B768
+ push {r4,lr}
+ ldr r4, =0x0203a118
+ ldr r1, [r4]
+ ldrb r0, [r1, 0x9]
+ cmp r0, 0
+ bne _0811B784
+ movs r0, 0x1
+ strb r0, [r1, 0xA]
+ bl sub_811B978
+ b _0811B78E
+ .pool
+_0811B784:
+ ldrb r0, [r1, 0xB]
+ bl sub_811B960
+ ldr r1, [r4]
+ strb r0, [r1, 0xA]
+_0811B78E:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_811B768
+
+ thumb_func_start sub_811B794
+sub_811B794: @ 811B794
+ push {r4,lr}
+ cmp r0, 0x5
+ bls _0811B79C
+ b _0811B8C0
+_0811B79C:
+ lsls r0, 2
+ ldr r1, =_0811B7AC
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .pool
+ .align 2, 0
+_0811B7AC:
+ .4byte _0811B848
+ .4byte _0811B826
+ .4byte _0811B7C4
+ .4byte _0811B7F0
+ .4byte _0811B870
+ .4byte _0811B890
+_0811B7C4:
+ ldr r0, =0x0203a118
+ ldr r1, [r0]
+ movs r0, 0x11
+ ldrsb r0, [r1, r0]
+ ldrb r3, [r1, 0xE]
+ adds r0, r3
+ cmp r0, 0
+ bgt _0811B7D6
+ b _0811B8C0
+_0811B7D6:
+ ldrb r2, [r1, 0x11]
+ movs r0, 0x11
+ ldrsb r0, [r1, r0]
+ cmp r0, 0
+ ble _0811B7E8
+ subs r0, r2, 0x1
+ b _0811B80E
+ .pool
+_0811B7E8:
+ subs r0, r3, 0x1
+ strb r0, [r1, 0xE]
+ movs r4, 0x13
+ b _0811B81E
+_0811B7F0:
+ ldr r0, =0x0203a118
+ ldr r1, [r0]
+ movs r0, 0x11
+ ldrsb r0, [r1, r0]
+ ldrb r3, [r1, 0xE]
+ adds r0, r3
+ ldrb r2, [r1, 0xF]
+ cmp r0, r2
+ bge _0811B8C0
+ ldrb r2, [r1, 0x11]
+ movs r0, 0x11
+ ldrsb r0, [r1, r0]
+ cmp r0, 0x2
+ bgt _0811B818
+ adds r0, r2, 0x1
+_0811B80E:
+ strb r0, [r1, 0x11]
+ movs r4, 0x12
+ b _0811B81E
+ .pool
+_0811B818:
+ adds r0, r3, 0x1
+ strb r0, [r1, 0xE]
+ movs r4, 0x14
+_0811B81E:
+ bl sub_811B9A0
+ adds r0, r4, 0
+ b _0811B8C2
+_0811B826:
+ ldr r0, =0x0203a118
+ ldr r1, [r0]
+ ldrb r2, [r1, 0x10]
+ movs r0, 0x10
+ ldrsb r0, [r1, r0]
+ cmp r0, 0
+ ble _0811B83C
+ subs r0, r2, 0x1
+ b _0811B83E
+ .pool
+_0811B83C:
+ movs r0, 0x1
+_0811B83E:
+ strb r0, [r1, 0x10]
+ bl sub_811B9A0
+_0811B844:
+ movs r0, 0x12
+ b _0811B8C2
+_0811B848:
+ ldr r4, =0x0203a118
+ ldr r1, [r4]
+ ldrb r2, [r1, 0x10]
+ movs r0, 0x10
+ ldrsb r0, [r1, r0]
+ cmp r0, 0
+ bgt _0811B866
+ adds r0, r2, 0x1
+ strb r0, [r1, 0x10]
+ bl sub_811BA1C
+ lsls r0, 24
+ cmp r0, 0
+ beq _0811B844
+ ldr r1, [r4]
+_0811B866:
+ movs r0, 0
+ strb r0, [r1, 0x10]
+ b _0811B844
+ .pool
+_0811B870:
+ ldr r0, =0x0203a118
+ ldr r2, [r0]
+ ldrb r0, [r2, 0xE]
+ adds r1, r0, 0
+ cmp r1, 0
+ beq _0811B8C0
+ cmp r1, 0x3
+ bls _0811B888
+ subs r0, 0x4
+ b _0811B88A
+ .pool
+_0811B888:
+ movs r0, 0
+_0811B88A:
+ strb r0, [r2, 0xE]
+ movs r0, 0x15
+ b _0811B8C2
+_0811B890:
+ ldr r3, =0x0203a118
+ ldr r1, [r3]
+ ldrb r2, [r1, 0xE]
+ ldrb r0, [r1, 0xF]
+ subs r0, 0x4
+ cmp r2, r0
+ bgt _0811B8C0
+ adds r0, r2, 0x4
+ strb r0, [r1, 0xE]
+ ldr r2, [r3]
+ ldrb r1, [r2, 0xE]
+ ldrb r3, [r2, 0xF]
+ subs r0, r3, 0x3
+ cmp r1, r0
+ ble _0811B8B4
+ adds r0, r3, 0
+ adds r0, 0xFD
+ strb r0, [r2, 0xE]
+_0811B8B4:
+ bl sub_811B9A0
+ movs r0, 0x16
+ b _0811B8C2
+ .pool
+_0811B8C0:
+ movs r0, 0
+_0811B8C2:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_811B794
+
+ thumb_func_start sub_811B8C8
+sub_811B8C8: @ 811B8C8
+ ldr r0, =0x0203a118
+ ldr r0, [r0]
+ movs r2, 0x6
+ ldrsb r2, [r0, r2]
+ ldrb r1, [r0, 0x2]
+ muls r1, r2
+ ldrb r0, [r0, 0x5]
+ lsls r0, 24
+ asrs r0, 24
+ adds r0, r1
+ lsls r0, 16
+ lsrs r0, 16
+ bx lr
+ .pool
+ thumb_func_end sub_811B8C8
+
+ thumb_func_start sub_811B8E8
+sub_811B8E8: @ 811B8E8
+ ldr r0, =0x0203a118
+ ldr r0, [r0]
+ movs r1, 0xB
+ ldrsb r1, [r0, r1]
+ ldrb r2, [r0, 0xC]
+ adds r1, r2
+ lsls r1, 1
+ ldrb r0, [r0, 0xA]
+ lsls r0, 24
+ asrs r0, 24
+ adds r0, r1
+ lsls r0, 16
+ lsrs r0, 16
+ bx lr
+ .pool
+ thumb_func_end sub_811B8E8
+
+ thumb_func_start sub_811B908
+sub_811B908: @ 811B908
+ push {lr}
+ ldr r0, =0x0203a118
+ ldr r1, [r0]
+ ldrb r0, [r1, 0xA]
+ movs r3, 0
+ cmp r0, 0x6
+ bhi _0811B91A
+ movs r3, 0xA
+ ldrsb r3, [r1, r3]
+_0811B91A:
+ ldrb r0, [r1, 0xB]
+ movs r2, 0
+ cmp r0, 0x3
+ bhi _0811B926
+ movs r2, 0xB
+ ldrsb r2, [r1, r2]
+_0811B926:
+ ldr r0, =gUnknown_08597748
+ lsls r1, r2, 3
+ subs r1, r2
+ adds r1, r3, r1
+ adds r1, r0
+ ldrb r0, [r1]
+ pop {r1}
+ bx r1
+ .pool
+ thumb_func_end sub_811B908
+
+ thumb_func_start sub_811B940
+sub_811B940: @ 811B940
+ ldr r0, =0x0203a118
+ ldr r0, [r0]
+ movs r1, 0x11
+ ldrsb r1, [r0, r1]
+ ldrb r2, [r0, 0xE]
+ adds r1, r2
+ lsls r1, 1
+ ldrb r0, [r0, 0x10]
+ lsls r0, 24
+ asrs r0, 24
+ adds r0, r1
+ lsls r0, 16
+ lsrs r0, 16
+ bx lr
+ .pool
+ thumb_func_end sub_811B940
+
+ thumb_func_start sub_811B960
+sub_811B960: @ 811B960
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0
+ beq _0811B96E
+ cmp r0, 0x1
+ beq _0811B972
+_0811B96E:
+ movs r0, 0x6
+ b _0811B974
+_0811B972:
+ movs r0, 0x5
+_0811B974:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_811B960
+
+ thumb_func_start sub_811B978
+sub_811B978: @ 811B978
+ push {lr}
+ b _0811B98E
+_0811B97C:
+ ldr r0, =0x0203a118
+ ldr r1, [r0]
+ ldrb r2, [r1, 0xA]
+ movs r0, 0xA
+ ldrsb r0, [r1, r0]
+ cmp r0, 0
+ beq _0811B998
+ subs r0, r2, 0x1
+ strb r0, [r1, 0xA]
+_0811B98E:
+ bl sub_811B9C8
+ lsls r0, 24
+ cmp r0, 0
+ bne _0811B97C
+_0811B998:
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_811B978
+
+ thumb_func_start sub_811B9A0
+sub_811B9A0: @ 811B9A0
+ push {lr}
+ b _0811B9B6
+_0811B9A4:
+ ldr r0, =0x0203a118
+ ldr r1, [r0]
+ ldrb r2, [r1, 0x10]
+ movs r0, 0x10
+ ldrsb r0, [r1, r0]
+ cmp r0, 0
+ beq _0811B9C0
+ subs r0, r2, 0x1
+ strb r0, [r1, 0x10]
+_0811B9B6:
+ bl sub_811BA1C
+ lsls r0, 24
+ cmp r0, 0
+ bne _0811B9A4
+_0811B9C0:
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_811B9A0
+
+ thumb_func_start sub_811B9C8
+sub_811B9C8: @ 811B9C8
+ push {r4,lr}
+ ldr r4, =0x0203a118
+ ldr r1, [r4]
+ ldrb r0, [r1, 0x9]
+ cmp r0, 0
+ bne _0811B9F8
+ bl sub_811B8E8
+ adds r4, r0, 0
+ bl sub_811F3AC
+ movs r1, 0
+ lsls r0, 24
+ lsls r4, 16
+ lsrs r4, 16
+ lsrs r0, 24
+ cmp r4, r0
+ bcc _0811B9EE
+ movs r1, 0x1
+_0811B9EE:
+ adds r0, r1, 0
+ b _0811BA14
+ .pool
+_0811B9F8:
+ ldrb r0, [r1, 0xB]
+ bl sub_811B960
+ movs r2, 0
+ ldr r1, [r4]
+ ldrb r1, [r1, 0xA]
+ lsls r1, 24
+ asrs r1, 24
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r1, r0
+ ble _0811BA12
+ movs r2, 0x1
+_0811BA12:
+ adds r0, r2, 0
+_0811BA14:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_811B9C8
+
+ thumb_func_start sub_811BA1C
+sub_811BA1C: @ 811BA1C
+ push {r4,lr}
+ bl sub_811B940
+ adds r4, r0, 0
+ bl sub_811F5B0
+ movs r1, 0
+ lsls r4, 16
+ lsls r0, 16
+ cmp r4, r0
+ bcc _0811BA34
+ movs r1, 0x1
+_0811BA34:
+ adds r0, r1, 0
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_811BA1C
+
+ thumb_func_start sub_811BA3C
+sub_811BA3C: @ 811BA3C
+ ldr r2, =gUnknown_08597550
+ ldr r0, =0x0203a118
+ ldr r0, [r0]
+ ldrb r1, [r0, 0x1]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 3
+ adds r0, r2
+ ldrb r0, [r0, 0x3]
+ lsrs r0, 7
+ bx lr
+ .pool
+ thumb_func_end sub_811BA3C
+
+ thumb_func_start sub_811BA5C
+sub_811BA5C: @ 811BA5C
+ ldr r0, =0x0203a118
+ ldr r0, [r0]
+ ldrb r0, [r0]
+ bx lr
+ .pool
+ thumb_func_end sub_811BA5C
+
+ thumb_func_start sub_811BA68
+sub_811BA68: @ 811BA68
+ ldr r2, =gUnknown_08597550
+ ldr r0, =0x0203a118
+ ldr r0, [r0]
+ ldrb r1, [r0, 0x1]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 3
+ adds r0, r2
+ ldrb r0, [r0, 0x3]
+ lsls r0, 25
+ lsrs r0, 25
+ bx lr
+ .pool
+ thumb_func_end sub_811BA68
+
+ thumb_func_start sub_811BA88
+sub_811BA88: @ 811BA88
+ ldr r0, =0x0203a118
+ ldr r0, [r0]
+ ldr r0, [r0, 0x34]
+ bx lr
+ .pool
+ thumb_func_end sub_811BA88
+
+ thumb_func_start sub_811BA94
+sub_811BA94: @ 811BA94
+ ldr r0, =0x0203a118
+ ldr r0, [r0]
+ adds r0, 0x3C
+ bx lr
+ .pool
+ thumb_func_end sub_811BA94
+
+ thumb_func_start sub_811BAA0
+sub_811BAA0: @ 811BAA0
+ ldr r0, =0x0203a118
+ ldr r0, [r0]
+ ldrb r0, [r0, 0x3]
+ bx lr
+ .pool
+ thumb_func_end sub_811BAA0
+
+ thumb_func_start sub_811BAAC
+sub_811BAAC: @ 811BAAC
+ ldr r0, =0x0203a118
+ ldr r0, [r0]
+ ldrb r0, [r0, 0x2]
+ bx lr
+ .pool
+ thumb_func_end sub_811BAAC
+
+ thumb_func_start sub_811BAB8
+sub_811BAB8: @ 811BAB8
+ ldr r0, =0x0203a118
+ ldr r0, [r0]
+ ldrb r0, [r0, 0x5]
+ bx lr
+ .pool
+ thumb_func_end sub_811BAB8
+
+ thumb_func_start sub_811BAC4
+sub_811BAC4: @ 811BAC4
+ ldr r0, =0x0203a118
+ ldr r0, [r0]
+ ldrb r0, [r0, 0x6]
+ bx lr
+ .pool
+ thumb_func_end sub_811BAC4
+
+ thumb_func_start sub_811BAD0
+sub_811BAD0: @ 811BAD0
+ push {r4,r5,lr}
+ ldr r4, =gUnknown_08597550
+ ldr r2, =0x0203a118
+ ldr r5, [r2]
+ ldrb r3, [r5, 0x1]
+ lsls r2, r3, 1
+ adds r2, r3
+ lsls r2, 3
+ adds r3, r4, 0
+ adds r3, 0x8
+ adds r2, r3
+ ldr r2, [r2]
+ str r2, [r0]
+ ldrb r2, [r5, 0x1]
+ lsls r0, r2, 1
+ adds r0, r2
+ lsls r0, 3
+ adds r4, 0xC
+ adds r0, r4
+ ldr r0, [r0]
+ str r0, [r1]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_811BAD0
+
+ thumb_func_start sub_811BB08
+sub_811BB08: @ 811BB08
+ push {r4,r5,lr}
+ ldr r4, =gUnknown_08597550
+ ldr r2, =0x0203a118
+ ldr r5, [r2]
+ ldrb r3, [r5, 0x1]
+ lsls r2, r3, 1
+ adds r2, r3
+ lsls r2, 3
+ adds r3, r4, 0
+ adds r3, 0x10
+ adds r2, r3
+ ldr r2, [r2]
+ str r2, [r0]
+ ldrb r2, [r5, 0x1]
+ lsls r0, r2, 1
+ adds r0, r2
+ lsls r0, 3
+ adds r4, 0x14
+ adds r0, r4
+ ldr r0, [r0]
+ str r0, [r1]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_811BB08
+
+ thumb_func_start sub_811BB40
+sub_811BB40: @ 811BB40
+ push {lr}
+ adds r2, r0, 0
+ ldr r0, =0x0203a118
+ ldr r0, [r0]
+ ldrb r0, [r0]
+ cmp r0, 0x4
+ bne _0811BB5C
+ ldr r0, =gUnknown_085EC3B4
+ b _0811BB7A
+ .pool
+_0811BB5C:
+ cmp r0, 0x4
+ blt _0811BB78
+ cmp r0, 0x10
+ bgt _0811BB78
+ cmp r0, 0xF
+ blt _0811BB78
+ ldr r0, =gUnknown_085EC706
+ str r0, [r2]
+ ldr r0, =gUnknown_085EC727
+ b _0811BB7E
+ .pool
+_0811BB78:
+ ldr r0, =gUnknown_085EC3A6
+_0811BB7A:
+ str r0, [r2]
+ movs r0, 0
+_0811BB7E:
+ str r0, [r1]
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_811BB40
+
+ thumb_func_start sub_811BB88
+sub_811BB88: @ 811BB88
+ ldr r2, =gUnknown_085EC410
+ str r2, [r0]
+ ldr r0, =gUnknown_085EC42F
+ str r0, [r1]
+ bx lr
+ .pool
+ thumb_func_end sub_811BB88
+
+ thumb_func_start sub_811BB9C
+sub_811BB9C: @ 811BB9C
+ ldr r2, =0x0203a118
+ ldr r3, [r2]
+ ldrb r2, [r3, 0xA]
+ strb r2, [r0]
+ ldrb r0, [r3, 0xB]
+ strb r0, [r1]
+ bx lr
+ .pool
+ thumb_func_end sub_811BB9C
+
+ thumb_func_start sub_811BBB0
+sub_811BBB0: @ 811BBB0
+ ldr r0, =0x0203a118
+ ldr r0, [r0]
+ ldrb r0, [r0, 0x9]
+ bx lr
+ .pool
+ thumb_func_end sub_811BBB0
+
+ thumb_func_start sub_811BBBC
+sub_811BBBC: @ 811BBBC
+ ldr r0, =0x0203a118
+ ldr r0, [r0]
+ ldrb r0, [r0, 0xC]
+ bx lr
+ .pool
+ thumb_func_end sub_811BBBC
+
+ thumb_func_start sub_811BBC8
+sub_811BBC8: @ 811BBC8
+ ldr r2, =0x0203a118
+ ldr r3, [r2]
+ ldrb r2, [r3, 0x10]
+ strb r2, [r0]
+ ldrb r0, [r3, 0x11]
+ strb r0, [r1]
+ bx lr
+ .pool
+ thumb_func_end sub_811BBC8
+
+ thumb_func_start sub_811BBDC
+sub_811BBDC: @ 811BBDC
+ ldr r0, =0x0203a118
+ ldr r0, [r0]
+ ldrb r0, [r0, 0xE]
+ bx lr
+ .pool
+ thumb_func_end sub_811BBDC
+
+ thumb_func_start sub_811BBE8
+sub_811BBE8: @ 811BBE8
+ ldr r0, =0x0203a118
+ ldr r0, [r0]
+ ldrb r0, [r0, 0xF]
+ bx lr
+ .pool
+ thumb_func_end sub_811BBE8
+
+ thumb_func_start sub_811BBF4
+sub_811BBF4: @ 811BBF4
+ movs r0, 0
+ bx lr
+ thumb_func_end sub_811BBF4
+
+ thumb_func_start sub_811BBF8
+sub_811BBF8: @ 811BBF8
+ push {lr}
+ ldr r0, =0x0203a118
+ ldr r1, [r0]
+ ldrb r0, [r1, 0x4]
+ cmp r0, 0x2
+ beq _0811BC10
+ cmp r0, 0x3
+ beq _0811BC1A
+ b _0811BC24
+ .pool
+_0811BC10:
+ ldrb r0, [r1, 0x9]
+ cmp r0, 0
+ bne _0811BC24
+ ldrb r0, [r1, 0xC]
+ b _0811BC1C
+_0811BC1A:
+ ldrb r0, [r1, 0xE]
+_0811BC1C:
+ cmp r0, 0
+ beq _0811BC24
+ movs r0, 0x1
+ b _0811BC26
+_0811BC24:
+ movs r0, 0
+_0811BC26:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_811BBF8
+
+ thumb_func_start sub_811BC2C
+sub_811BC2C: @ 811BC2C
+ push {lr}
+ ldr r0, =0x0203a118
+ ldr r2, [r0]
+ ldrb r0, [r2, 0x4]
+ cmp r0, 0x2
+ beq _0811BC44
+ cmp r0, 0x3
+ beq _0811BC5A
+ b _0811BC68
+ .pool
+_0811BC44:
+ ldrb r0, [r2, 0x9]
+ cmp r0, 0
+ bne _0811BC68
+ ldrb r1, [r2, 0xC]
+ adds r1, 0x4
+ ldrb r0, [r2, 0xD]
+ subs r0, 0x1
+ cmp r1, r0
+ bgt _0811BC68
+ movs r0, 0x1
+ b _0811BC6A
+_0811BC5A:
+ ldrb r0, [r2, 0xE]
+ adds r0, 0x4
+ ldrb r2, [r2, 0xF]
+ cmp r0, r2
+ bgt _0811BC68
+ movs r0, 0x1
+ b _0811BC6A
+_0811BC68:
+ movs r0, 0
+_0811BC6A:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_811BC2C
+
+ thumb_func_start sub_811BC70
+sub_811BC70: @ 811BC70
+ push {lr}
+ bl sub_811BA3C
+ pop {r1}
+ bx r1
+ thumb_func_end sub_811BC70
+
+ thumb_func_start sub_811BC7C
+sub_811BC7C: @ 811BC7C
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ lsls r1, 24
+ lsrs r3, r1, 24
+ movs r2, 0
+ cmp r2, r3
+ bcs _0811BCB2
+ ldr r0, =0x0203a118
+ ldr r0, [r0]
+ adds r4, r0, 0
+ adds r4, 0x3C
+_0811BC92:
+ lsls r0, r2, 1
+ adds r1, r0, r5
+ adds r0, r4, r0
+ ldrh r1, [r1]
+ ldrh r0, [r0]
+ cmp r1, r0
+ beq _0811BCA8
+ movs r0, 0x1
+ b _0811BCB4
+ .pool
+_0811BCA8:
+ adds r0, r2, 0x1
+ lsls r0, 24
+ lsrs r2, r0, 24
+ cmp r2, r3
+ bcc _0811BC92
+_0811BCB2:
+ movs r0, 0
+_0811BCB4:
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_811BC7C
+
+ thumb_func_start sub_811BCBC
+sub_811BCBC: @ 811BCBC
+ ldr r0, =0x0203a118
+ ldr r0, [r0]
+ ldrb r0, [r0, 0x12]
+ bx lr
+ .pool
+ thumb_func_end sub_811BCBC
+
+ thumb_func_start sub_811BCC8
+sub_811BCC8: @ 811BCC8
+ push {lr}
+ lsls r0, 24
+ lsrs r3, r0, 24
+ movs r1, 0
+ ldr r2, =gUnknown_08597550
+_0811BCD2:
+ ldrb r0, [r2]
+ cmp r0, r3
+ bne _0811BCE4
+ lsls r0, r1, 24
+ lsrs r0, 24
+ b _0811BCEE
+ .pool
+_0811BCE4:
+ adds r2, 0x18
+ adds r1, 0x1
+ cmp r1, 0x14
+ bls _0811BCD2
+ movs r0, 0
+_0811BCEE:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_811BCC8
+
+ thumb_func_start sub_811BCF4
+sub_811BCF4: @ 811BCF4
+ push {r4,lr}
+ movs r2, 0
+ ldr r0, =0x0203a118
+ ldr r0, [r0]
+ ldrb r1, [r0, 0x7]
+ cmp r2, r1
+ bge _0811BD24
+ ldr r4, =0x0000ffff
+ adds r3, r1, 0
+ adds r1, r0, 0
+ adds r1, 0x3C
+_0811BD0A:
+ ldrh r0, [r1]
+ cmp r0, r4
+ beq _0811BD1C
+ movs r0, 0
+ b _0811BD26
+ .pool
+_0811BD1C:
+ adds r1, 0x2
+ adds r2, 0x1
+ cmp r2, r3
+ blt _0811BD0A
+_0811BD24:
+ movs r0, 0x1
+_0811BD26:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_811BCF4
+
+ thumb_func_start sub_811BD2C
+sub_811BD2C: @ 811BD2C
+ push {r4,lr}
+ movs r2, 0
+ ldr r0, =0x0203a118
+ ldr r0, [r0]
+ ldrb r1, [r0, 0x7]
+ cmp r2, r1
+ bge _0811BD5C
+ ldr r4, =0x0000ffff
+ adds r3, r1, 0
+ adds r1, r0, 0
+ adds r1, 0x3C
+_0811BD42:
+ ldrh r0, [r1]
+ cmp r0, r4
+ bne _0811BD54
+ movs r0, 0
+ b _0811BD5E
+ .pool
+_0811BD54:
+ adds r1, 0x2
+ adds r2, 0x1
+ cmp r2, r3
+ blt _0811BD42
+_0811BD5C:
+ movs r0, 0x1
+_0811BD5E:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_811BD2C
+
+ thumb_func_start sub_811BD64
+sub_811BD64: @ 811BD64
+ push {r4,lr}
+ ldr r0, =0x0203a118
+ ldr r0, [r0]
+ ldrb r0, [r0]
+ cmp r0, 0x11
+ bne _0811BD80
+ bl sub_811BCF4
+ b _0811BD9C
+ .pool
+_0811BD7C:
+ movs r0, 0
+ b _0811BD9C
+_0811BD80:
+ ldr r0, =0x03005d8c
+ ldr r0, [r0]
+ movs r2, 0
+ ldr r3, =0x0000ffff
+ ldr r4, =0x00003b5a
+ adds r1, r0, r4
+_0811BD8C:
+ ldrh r0, [r1]
+ cmp r0, r3
+ bne _0811BD7C
+ adds r1, 0x2
+ adds r2, 0x1
+ cmp r2, 0x8
+ ble _0811BD8C
+ movs r0, 0x1
+_0811BD9C:
+ pop {r4}
+ pop {r1}
+ bx r1
+ .pool
+ thumb_func_end sub_811BD64
+
+ thumb_func_start sub_811BDB0
+sub_811BDB0: @ 811BDB0
+ push {lr}
+ ldr r0, =0x0203a118
+ ldr r0, [r0]
+ ldrb r0, [r0]
+ cmp r0, 0x12
+ bne _0811BDC8
+ bl sub_811BCF4
+ b _0811BDDE
+ .pool
+_0811BDC8:
+ ldr r0, =0x03005d8c
+ ldr r0, [r0]
+ ldr r1, =0x00003b58
+ adds r0, r1
+ movs r2, 0
+ ldrh r1, [r0, 0x14]
+ ldr r0, =0x0000ffff
+ cmp r1, r0
+ bne _0811BDDC
+ movs r2, 0x1
+_0811BDDC:
+ adds r0, r2, 0
+_0811BDDE:
+ pop {r1}
+ bx r1
+ .pool
+ thumb_func_end sub_811BDB0
+
+ thumb_func_start sub_811BDF0
+sub_811BDF0: @ 811BDF0
+ push {r4-r6,lr}
+ sub sp, 0x20
+ adds r6, r0, 0
+ ldr r0, =0x03005d8c
+ ldr r4, [r0]
+ bl sub_81AFBF0
+ ldr r0, =0x00003b70
+ adds r5, r4, r0
+ adds r0, r5, 0
+ bl GetStringLength
+ lsls r0, 16
+ cmp r0, 0
+ beq _0811BE34
+ ldr r1, =0x00003b85
+ adds r0, r4, r1
+ ldrb r2, [r0]
+ mov r0, sp
+ adds r1, r5, 0
+ bl sub_81DB5E8
+ movs r0, 0
+ mov r1, sp
+ bl sub_81AFC0C
+ b _0811BE3C
+ .pool
+_0811BE34:
+ ldr r1, =gUnknown_085EC6B2
+ movs r0, 0
+ bl sub_81AFC0C
+_0811BE3C:
+ ldr r1, =gUnknown_085EC6A8
+ adds r0, r6, 0
+ bl sub_81AFC28
+ add sp, 0x20
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_811BDF0
+
+ thumb_func_start sub_811BE54
+sub_811BE54: @ 811BE54
+ push {r4,r5,lr}
+ ldr r0, =0x0203a118
+ ldr r0, [r0]
+ adds r4, r0, 0
+ adds r4, 0x3C
+ ldr r2, =0x02021dc4
+ movs r5, 0
+ b _0811BE86
+ .pool
+_0811BE6C:
+ ldrh r1, [r4]
+ adds r0, r2, 0
+ movs r2, 0
+ bl CopyEasyChatWordPadded
+ adds r2, r0, 0
+ movs r0, 0
+ strb r0, [r2]
+ adds r2, 0x1
+ adds r4, 0x2
+ adds r5, 0x1
+ ldr r0, =0x0203a118
+ ldr r0, [r0]
+_0811BE86:
+ ldrb r0, [r0, 0x7]
+ cmp r5, r0
+ blt _0811BE6C
+ subs r2, 0x1
+ movs r0, 0xFF
+ strb r0, [r2]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_811BE54
+
+ thumb_func_start sub_811BE9C
+sub_811BE9C: @ 811BE9C
+ push {r4,r5,lr}
+ ldr r5, =0x0203a118
+ ldr r0, [r5]
+ ldrb r0, [r0]
+ cmp r0, 0x9
+ beq _0811BEF0
+ cmp r0, 0x9
+ bgt _0811BEB8
+ cmp r0, 0
+ beq _0811BEC2
+ b _0811BF14
+ .pool
+_0811BEB8:
+ cmp r0, 0xD
+ beq _0811BF0C
+ cmp r0, 0x14
+ beq _0811BED0
+ b _0811BF14
+_0811BEC2:
+ ldr r0, =0x00000865
+ bl FlagSet
+ b _0811BF14
+ .pool
+_0811BED0:
+ bl sub_811BF20
+ adds r1, r0, 0
+ cmp r1, 0
+ beq _0811BEE4
+ ldr r1, =0x020375e0
+ movs r0, 0x2
+ b _0811BF12
+ .pool
+_0811BEE4:
+ ldr r0, =0x020375e0
+ strh r1, [r0]
+ b _0811BF14
+ .pool
+_0811BEF0:
+ bl sub_811BE54
+ ldr r4, =0x020375e0
+ ldr r0, [r5]
+ adds r0, 0x3C
+ bl sub_81226D8
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4]
+ b _0811BF14
+ .pool
+_0811BF0C:
+ bl sub_811BF40
+ ldr r1, =0x020375e0
+_0811BF12:
+ strh r0, [r1]
+_0811BF14:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_811BE9C
+
+ thumb_func_start sub_811BF20
+sub_811BF20: @ 811BF20
+ push {lr}
+ ldr r0, =gUnknown_08597764
+ movs r1, 0x4
+ bl sub_811BC7C
+ movs r1, 0
+ lsls r0, 24
+ cmp r0, 0
+ bne _0811BF34
+ movs r1, 0x1
+_0811BF34:
+ adds r0, r1, 0
+ pop {r1}
+ bx r1
+ .pool
+ thumb_func_end sub_811BF20
+
+ thumb_func_start sub_811BF40
+sub_811BF40: @ 811BF40
+ push {r4,r5,lr}
+ movs r4, 0
+ movs r5, 0x80
+ lsls r5, 9
+_0811BF48:
+ lsls r0, r4, 2
+ ldr r1, =gUnknown_0859776C
+ adds r0, r1
+ movs r1, 0x2
+ bl sub_811BC7C
+ lsls r0, 24
+ cmp r0, 0
+ bne _0811BF64
+ lsrs r0, r5, 16
+ b _0811BF72
+ .pool
+_0811BF64:
+ movs r0, 0x80
+ lsls r0, 9
+ adds r5, r0
+ adds r4, 0x1
+ cmp r4, 0x4
+ ble _0811BF48
+ movs r0, 0
+_0811BF72:
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_811BF40
+
+ thumb_func_start sub_811BF78
+sub_811BF78: @ 811BF78
+ ldr r0, =0x0203a118
+ ldr r1, [r0]
+ movs r0, 0
+ strb r0, [r1, 0x13]
+ bx lr
+ .pool
+ thumb_func_end sub_811BF78
+
+ thumb_func_start sub_811BF88
+sub_811BF88: @ 811BF88
+ movs r0, 0
+ bx lr
+ thumb_func_end sub_811BF88
+
+ thumb_func_start sub_811BF8C
+sub_811BF8C: @ 811BF8C
+ push {lr}
+ bl sub_811CE94
+ lsls r0, 24
+ cmp r0, 0
+ beq _0811BF9C
+ movs r0, 0x1
+ b _0811BF9E
+_0811BF9C:
+ movs r0, 0
+_0811BF9E:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_811BF8C
+
+ thumb_func_start sub_811BFA4
+sub_811BFA4: @ 811BFA4
+ push {r4,lr}
+ sub sp, 0x8
+ ldr r0, =0x0203a11c
+ ldr r0, [r0]
+ ldrh r0, [r0]
+ cmp r0, 0x5
+ bls _0811BFB4
+ b _0811C120
+_0811BFB4:
+ lsls r0, 2
+ ldr r1, =_0811BFC8
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .pool
+ .align 2, 0
+_0811BFC8:
+ .4byte _0811BFE0
+ .4byte _0811C044
+ .4byte _0811C090
+ .4byte _0811C0AC
+ .4byte _0811C0BE
+ .4byte _0811C0D4
+_0811BFE0:
+ movs r0, 0
+ bl ResetBgsAndClearDma3BusyFlags
+ ldr r1, =gUnknown_08597C54
+ movs r0, 0
+ movs r2, 0x4
+ bl InitBgsFromTemplates
+ ldr r4, =0x0203a11c
+ ldr r1, [r4]
+ movs r0, 0xB0
+ lsls r0, 4
+ adds r1, r0
+ movs r0, 0x3
+ bl SetBgTilemapBuffer
+ ldr r1, [r4]
+ movs r0, 0xC0
+ lsls r0, 2
+ adds r1, r0
+ movs r0, 0x1
+ bl SetBgTilemapBuffer
+ ldr r0, =gUnknown_08597C64
+ bl InitWindows
+ bl DeactivateAllTextPrinters
+ bl sub_811CF64
+ bl sub_811CF04
+ movs r0, 0
+ str r0, [sp, 0x4]
+ movs r1, 0xE0
+ lsls r1, 19
+ ldr r2, =0x01000100
+ add r0, sp, 0x4
+ bl CpuFastSet
+ b _0811C124
+ .pool
+_0811C044:
+ ldr r1, =gUnknown_08DCBDD0
+ movs r0, 0
+ str r0, [sp]
+ movs r0, 0x3
+ movs r2, 0
+ movs r3, 0
+ bl copy_decompressed_tile_data_to_vram_autofree
+ ldr r1, =gUnknown_08DCBF10
+ movs r0, 0x3
+ movs r2, 0
+ movs r3, 0
+ bl CopyToBgTilemapBuffer
+ bl sub_811D60C
+ ldr r0, =0x0203a11c
+ ldr r0, [r0]
+ movs r1, 0xC0
+ lsls r1, 2
+ adds r0, r1
+ bl sub_811D424
+ bl sub_811D230
+ bl sub_811E948
+ movs r0, 0x3
+ bl CopyBgTilemapBufferToVram
+ b _0811C124
+ .pool
+_0811C090:
+ ldr r1, =gUnknown_08597B54
+ movs r0, 0
+ str r0, [sp]
+ movs r0, 0x1
+ movs r2, 0
+ movs r3, 0
+ bl copy_decompressed_tile_data_to_vram_autofree
+ movs r0, 0x1
+ bl CopyBgTilemapBufferToVram
+ b _0811C124
+ .pool
+_0811C0AC:
+ bl sub_811CFCC
+ bl sub_811D0BC
+ bl sub_811D2C8
+ bl sub_811D684
+ b _0811C124
+_0811C0BE:
+ bl sub_811DE90
+ bl sub_811BA5C
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x10
+ beq _0811C124
+ bl sub_811DEC4
+ b _0811C124
+_0811C0D4:
+ bl IsDma3ManagerBusyWithBgCopy
+ lsls r0, 24
+ cmp r0, 0
+ bne _0811C12E
+ movs r0, 0
+ movs r1, 0
+ movs r2, 0
+ movs r3, 0
+ bl sub_811DE5C
+ movs r0, 0x48
+ movs r1, 0x3F
+ bl SetGpuReg
+ movs r0, 0x4A
+ movs r1, 0x3B
+ bl SetGpuReg
+ movs r0, 0x3
+ bl ShowBg
+ movs r0, 0x1
+ bl ShowBg
+ movs r0, 0x2
+ bl ShowBg
+ movs r0, 0
+ bl ShowBg
+ bl sub_811E5D4
+ bl sub_811E720
+ bl sub_811E828
+ b _0811C124
+_0811C120:
+ movs r0, 0
+ b _0811C130
+_0811C124:
+ ldr r0, =0x0203a11c
+ ldr r1, [r0]
+ ldrh r0, [r1]
+ adds r0, 0x1
+ strh r0, [r1]
+_0811C12E:
+ movs r0, 0x1
+_0811C130:
+ add sp, 0x8
+ pop {r4}
+ pop {r1}
+ bx r1
+ .pool
+ thumb_func_end sub_811BFA4
+
+ thumb_func_start sub_811C13C
+sub_811C13C: @ 811C13C
+ push {r4,lr}
+ ldr r4, =0x0203a11c
+ ldr r0, [r4]
+ cmp r0, 0
+ beq _0811C14E
+ bl Free
+ movs r0, 0
+ str r0, [r4]
+_0811C14E:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_811C13C
+
+ thumb_func_start sub_811C158
+sub_811C158: @ 811C158
+ push {lr}
+ ldr r1, =0x0203a11c
+ ldr r1, [r1]
+ movs r2, 0
+ strh r0, [r1, 0x4]
+ strh r2, [r1]
+ bl sub_811C170
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_811C158
+
+ thumb_func_start sub_811C170
+sub_811C170: @ 811C170
+ push {lr}
+ ldr r0, =0x0203a11c
+ ldr r0, [r0]
+ ldrh r0, [r0, 0x4]
+ cmp r0, 0x22
+ bls _0811C17E
+ b _0811C2CE
+_0811C17E:
+ lsls r0, 2
+ ldr r1, =_0811C190
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .pool
+ .align 2, 0
+_0811C190:
+ .4byte _0811C2CE
+ .4byte _0811C21C
+ .4byte _0811C222
+ .4byte _0811C228
+ .4byte _0811C22E
+ .4byte _0811C234
+ .4byte _0811C23A
+ .4byte _0811C240
+ .4byte _0811C246
+ .4byte _0811C24C
+ .4byte _0811C252
+ .4byte _0811C258
+ .4byte _0811C25E
+ .4byte _0811C264
+ .4byte _0811C26A
+ .4byte _0811C270
+ .4byte _0811C276
+ .4byte _0811C27C
+ .4byte _0811C282
+ .4byte _0811C288
+ .4byte _0811C28E
+ .4byte _0811C294
+ .4byte _0811C29A
+ .4byte _0811C2A0
+ .4byte _0811C2CE
+ .4byte _0811C2CE
+ .4byte _0811C2CE
+ .4byte _0811C2CE
+ .4byte _0811C2CE
+ .4byte _0811C2A6
+ .4byte _0811C2AC
+ .4byte _0811C2B2
+ .4byte _0811C2B8
+ .4byte _0811C2BE
+ .4byte _0811C2C4
+_0811C21C:
+ bl sub_811C2D4
+ b _0811C2C8
+_0811C222:
+ bl sub_811C30C
+ b _0811C2C8
+_0811C228:
+ bl sub_811C3E4
+ b _0811C2C8
+_0811C22E:
+ bl sub_811C48C
+ b _0811C2C8
+_0811C234:
+ bl sub_811C404
+ b _0811C2C8
+_0811C23A:
+ bl sub_811C448
+ b _0811C2C8
+_0811C240:
+ bl sub_811C4D0
+ b _0811C2C8
+_0811C246:
+ bl sub_811C518
+ b _0811C2C8
+_0811C24C:
+ bl sub_811C554
+ b _0811C2C8
+_0811C252:
+ bl sub_811C620
+ b _0811C2C8
+_0811C258:
+ bl sub_811C830
+ b _0811C2C8
+_0811C25E:
+ bl sub_811C8F0
+ b _0811C2C8
+_0811C264:
+ bl sub_811C99C
+ b _0811C2C8
+_0811C26A:
+ bl sub_811CA5C
+ b _0811C2C8
+_0811C270:
+ bl sub_811C780
+ b _0811C2C8
+_0811C276:
+ bl sub_811C78C
+ b _0811C2C8
+_0811C27C:
+ bl sub_811C7D4
+ b _0811C2C8
+_0811C282:
+ bl sub_811CB18
+ b _0811C2C8
+_0811C288:
+ bl sub_811CB98
+ b _0811C2C8
+_0811C28E:
+ bl sub_811CB24
+ b _0811C2C8
+_0811C294:
+ bl sub_811CC90
+ b _0811C2C8
+_0811C29A:
+ bl sub_811CC08
+ b _0811C2C8
+_0811C2A0:
+ bl sub_811C6C0
+ b _0811C2C8
+_0811C2A6:
+ bl sub_811CD14
+ b _0811C2C8
+_0811C2AC:
+ bl sub_811CD54
+ b _0811C2C8
+_0811C2B2:
+ bl sub_811CD94
+ b _0811C2C8
+_0811C2B8:
+ bl sub_811CDD4
+ b _0811C2C8
+_0811C2BE:
+ bl sub_811CE14
+ b _0811C2C8
+_0811C2C4:
+ bl sub_811CE54
+_0811C2C8:
+ lsls r0, 24
+ lsrs r0, 24
+ b _0811C2D0
+_0811C2CE:
+ movs r0, 0
+_0811C2D0:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_811C170
+
+ thumb_func_start sub_811C2D4
+sub_811C2D4: @ 811C2D4
+ push {r4,lr}
+ ldr r4, =0x0203a11c
+ ldr r0, [r4]
+ ldrh r0, [r0]
+ cmp r0, 0
+ beq _0811C2EC
+ cmp r0, 0x1
+ beq _0811C2FA
+ b _0811C304
+ .pool
+_0811C2EC:
+ bl sub_811D2C8
+ ldr r1, [r4]
+ ldrh r0, [r1]
+ adds r0, 0x1
+ strh r0, [r1]
+ b _0811C304
+_0811C2FA:
+ bl IsDma3ManagerBusyWithBgCopy
+ lsls r0, 24
+ lsrs r0, 24
+ b _0811C306
+_0811C304:
+ movs r0, 0x1
+_0811C306:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_811C2D4
+
+ thumb_func_start sub_811C30C
+sub_811C30C: @ 811C30C
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x40
+ bl sub_811BA94
+ adds r4, r0, 0
+ bl sub_811BA68
+ lsls r0, 24
+ lsrs r0, 24
+ mov r10, r0
+ bl sub_811BAB8
+ lsls r0, 24
+ lsrs r7, r0, 24
+ bl sub_811BAC4
+ lsls r0, 24
+ lsrs r0, 24
+ mov r9, r0
+ bl sub_811BAAC
+ lsls r0, 24
+ lsrs r0, 24
+ mov r1, r9
+ muls r1, r0
+ adds r0, r1, 0
+ lsls r0, 1
+ adds r4, r0
+ ldr r1, =gUnknown_08597C30
+ mov r2, r10
+ lsls r0, r2, 2
+ adds r0, r1
+ ldrb r0, [r0]
+ lsls r0, 27
+ lsrs r0, 8
+ movs r1, 0xD0
+ lsls r1, 12
+ adds r0, r1
+ lsrs r6, r0, 16
+ movs r5, 0
+ cmp r5, r7
+ bcs _0811C3AA
+ ldr r2, =0x0000ffff
+ mov r8, r2
+_0811C36C:
+ ldrh r0, [r4]
+ cmp r0, r8
+ bne _0811C380
+ movs r0, 0x48
+ b _0811C392
+ .pool
+_0811C380:
+ ldrh r1, [r4]
+ mov r0, sp
+ bl CopyEasyChatWord
+ movs r0, 0x1
+ mov r1, sp
+ movs r2, 0
+ bl GetStringWidth
+_0811C392:
+ adds r0, 0x11
+ lsls r1, r6, 16
+ asrs r1, 16
+ adds r1, r0
+ lsls r1, 16
+ lsrs r6, r1, 16
+ adds r4, 0x2
+ adds r0, r5, 0x1
+ lsls r0, 24
+ lsrs r5, r0, 24
+ cmp r5, r7
+ bcc _0811C36C
+_0811C3AA:
+ ldr r1, =gUnknown_08597C30
+ mov r2, r10
+ lsls r0, r2, 2
+ adds r0, r1
+ ldrb r1, [r0]
+ lsrs r1, 5
+ mov r2, r9
+ lsls r0, r2, 1
+ adds r1, r0
+ lsls r1, 27
+ lsls r0, r6, 24
+ lsrs r0, 24
+ movs r2, 0x80
+ lsls r2, 20
+ adds r1, r2
+ lsrs r1, 24
+ bl sub_811DF60
+ movs r0, 0
+ add sp, 0x40
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .pool
+ thumb_func_end sub_811C30C
+
+ thumb_func_start sub_811C3E4
+sub_811C3E4: @ 811C3E4
+ push {lr}
+ bl sub_811BAB8
+ lsls r0, 24
+ lsrs r0, 24
+ bl sub_811E920
+ lsls r0, 24
+ lsrs r0, 24
+ movs r1, 0x60
+ bl sub_811DF60
+ movs r0, 0
+ pop {r1}
+ bx r1
+ thumb_func_end sub_811C3E4
+
+ thumb_func_start sub_811C404
+sub_811C404: @ 811C404
+ push {r4,lr}
+ ldr r4, =0x0203a11c
+ ldr r0, [r4]
+ ldrh r0, [r0]
+ cmp r0, 0
+ beq _0811C41C
+ cmp r0, 0x1
+ beq _0811C436
+ b _0811C440
+ .pool
+_0811C41C:
+ bl sub_811DF90
+ movs r0, 0x2
+ bl sub_811D104
+ movs r0, 0x1
+ bl sub_811D214
+ ldr r1, [r4]
+ ldrh r0, [r1]
+ adds r0, 0x1
+ strh r0, [r1]
+ b _0811C440
+_0811C436:
+ bl IsDma3ManagerBusyWithBgCopy
+ lsls r0, 24
+ lsrs r0, 24
+ b _0811C442
+_0811C440:
+ movs r0, 0x1
+_0811C442:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_811C404
+
+ thumb_func_start sub_811C448
+sub_811C448: @ 811C448
+ push {r4,lr}
+ ldr r4, =0x0203a11c
+ ldr r0, [r4]
+ ldrh r0, [r0]
+ cmp r0, 0
+ beq _0811C460
+ cmp r0, 0x1
+ beq _0811C47A
+ b _0811C484
+ .pool
+_0811C460:
+ bl sub_811DF90
+ movs r0, 0x3
+ bl sub_811D104
+ movs r0, 0
+ bl sub_811D214
+ ldr r1, [r4]
+ ldrh r0, [r1]
+ adds r0, 0x1
+ strh r0, [r1]
+ b _0811C484
+_0811C47A:
+ bl IsDma3ManagerBusyWithBgCopy
+ lsls r0, 24
+ lsrs r0, 24
+ b _0811C486
+_0811C484:
+ movs r0, 0x1
+_0811C486:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_811C448
+
+ thumb_func_start sub_811C48C
+sub_811C48C: @ 811C48C
+ push {r4,lr}
+ ldr r4, =0x0203a11c
+ ldr r0, [r4]
+ ldrh r0, [r0]
+ cmp r0, 0
+ beq _0811C4A4
+ cmp r0, 0x1
+ beq _0811C4BE
+ b _0811C4C8
+ .pool
+_0811C4A4:
+ bl sub_811DF90
+ movs r0, 0x1
+ bl sub_811D104
+ movs r0, 0x1
+ bl sub_811D214
+ ldr r1, [r4]
+ ldrh r0, [r1]
+ adds r0, 0x1
+ strh r0, [r1]
+ b _0811C4C8
+_0811C4BE:
+ bl IsDma3ManagerBusyWithBgCopy
+ lsls r0, 24
+ lsrs r0, 24
+ b _0811C4CA
+_0811C4C8:
+ movs r0, 0x1
+_0811C4CA:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_811C48C
+
+ thumb_func_start sub_811C4D0
+sub_811C4D0: @ 811C4D0
+ push {r4,lr}
+ ldr r4, =0x0203a11c
+ ldr r0, [r4]
+ ldrh r0, [r0]
+ cmp r0, 0
+ beq _0811C4E8
+ cmp r0, 0x1
+ beq _0811C506
+ b _0811C510
+ .pool
+_0811C4E8:
+ bl sub_811DFB0
+ movs r0, 0
+ bl sub_811D104
+ bl sub_811D2C8
+ movs r0, 0
+ bl ShowBg
+ ldr r1, [r4]
+ ldrh r0, [r1]
+ adds r0, 0x1
+ strh r0, [r1]
+ b _0811C510
+_0811C506:
+ bl IsDma3ManagerBusyWithBgCopy
+ lsls r0, 24
+ lsrs r0, 24
+ b _0811C512
+_0811C510:
+ movs r0, 0x1
+_0811C512:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_811C4D0
+
+ thumb_func_start sub_811C518
+sub_811C518: @ 811C518
+ push {r4,lr}
+ ldr r4, =0x0203a11c
+ ldr r0, [r4]
+ ldrh r0, [r0]
+ cmp r0, 0
+ beq _0811C530
+ cmp r0, 0x1
+ beq _0811C546
+ movs r0, 0x1
+ b _0811C54E
+ .pool
+_0811C530:
+ bl sub_811DFB0
+ movs r0, 0
+ bl sub_811D104
+ bl sub_811D2C8
+ ldr r1, [r4]
+ ldrh r0, [r1]
+ adds r0, 0x1
+ strh r0, [r1]
+_0811C546:
+ bl IsDma3ManagerBusyWithBgCopy
+ lsls r0, 24
+ lsrs r0, 24
+_0811C54E:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_811C518
+
+ thumb_func_start sub_811C554
+sub_811C554: @ 811C554
+ push {lr}
+ ldr r0, =0x0203a11c
+ ldr r0, [r0]
+ ldrh r0, [r0]
+ cmp r0, 0x4
+ bhi _0811C60E
+ lsls r0, 2
+ ldr r1, =_0811C574
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .pool
+ .align 2, 0
+_0811C574:
+ .4byte _0811C588
+ .4byte _0811C5A4
+ .4byte _0811C5B6
+ .4byte _0811C5CC
+ .4byte _0811C5EC
+_0811C588:
+ bl sub_811DF90
+ movs r0, 0
+ bl HideBg
+ movs r0, 0
+ movs r1, 0
+ movs r2, 0
+ movs r3, 0
+ bl sub_811DE5C
+ bl sub_811D6D4
+ b _0811C5DA
+_0811C5A4:
+ bl IsDma3ManagerBusyWithBgCopy
+ lsls r0, 24
+ cmp r0, 0
+ bne _0811C618
+ movs r0, 0
+ bl sub_811D9CC
+ b _0811C5DA
+_0811C5B6:
+ bl IsDma3ManagerBusyWithBgCopy
+ lsls r0, 24
+ cmp r0, 0
+ bne _0811C618
+ bl sub_811DAA4
+ lsls r0, 24
+ cmp r0, 0
+ bne _0811C618
+ b _0811C5DA
+_0811C5CC:
+ bl IsDma3ManagerBusyWithBgCopy
+ lsls r0, 24
+ cmp r0, 0
+ bne _0811C618
+ bl sub_811E3AC
+_0811C5DA:
+ ldr r0, =0x0203a11c
+ ldr r1, [r0]
+ ldrh r0, [r1]
+ adds r0, 0x1
+ strh r0, [r1]
+ b _0811C618
+ .pool
+_0811C5EC:
+ bl sub_811E418
+ lsls r0, 24
+ cmp r0, 0
+ bne _0811C618
+ bl sub_811DFC8
+ movs r0, 0
+ bl sub_811E6E0
+ bl sub_811E64C
+ ldr r0, =0x0203a11c
+ ldr r1, [r0]
+ ldrh r0, [r1]
+ adds r0, 0x1
+ strh r0, [r1]
+_0811C60E:
+ movs r0, 0
+ b _0811C61A
+ .pool
+_0811C618:
+ movs r0, 0x1
+_0811C61A:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_811C554
+
+ thumb_func_start sub_811C620
+sub_811C620: @ 811C620
+ push {lr}
+ ldr r0, =0x0203a11c
+ ldr r0, [r0]
+ ldrh r0, [r0]
+ cmp r0, 0x4
+ bhi _0811C6B8
+ lsls r0, 2
+ ldr r1, =_0811C640
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .pool
+ .align 2, 0
+_0811C640:
+ .4byte _0811C654
+ .4byte _0811C662
+ .4byte _0811C67E
+ .4byte _0811C690
+ .4byte _0811C6B4
+_0811C654:
+ bl sub_811E050
+ bl sub_811E4AC
+ bl sub_811E6B0
+ b _0811C6A4
+_0811C662:
+ bl sub_811E4D0
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ beq _0811C6B8
+ movs r0, 0x1
+ bl sub_811D9CC
+ ldr r0, =0x0203a11c
+ ldr r1, [r0]
+ ldrh r0, [r1]
+ adds r0, 0x1
+ strh r0, [r1]
+_0811C67E:
+ bl sub_811DAA4
+ lsls r0, 24
+ cmp r0, 0
+ bne _0811C6B8
+ b _0811C6A4
+ .pool
+_0811C690:
+ bl IsDma3ManagerBusyWithBgCopy
+ lsls r0, 24
+ cmp r0, 0
+ bne _0811C6B8
+ bl sub_811DFB0
+ movs r0, 0
+ bl ShowBg
+_0811C6A4:
+ ldr r0, =0x0203a11c
+ ldr r1, [r0]
+ ldrh r0, [r1]
+ adds r0, 0x1
+ strh r0, [r1]
+ b _0811C6B8
+ .pool
+_0811C6B4:
+ movs r0, 0
+ b _0811C6BA
+_0811C6B8:
+ movs r0, 0x1
+_0811C6BA:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_811C620
+
+ thumb_func_start sub_811C6C0
+sub_811C6C0: @ 811C6C0
+ push {lr}
+ ldr r0, =0x0203a11c
+ ldr r0, [r0]
+ ldrh r0, [r0]
+ cmp r0, 0x4
+ bhi _0811C778
+ lsls r0, 2
+ ldr r1, =_0811C6E0
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .pool
+ .align 2, 0
+_0811C6E0:
+ .4byte _0811C6F4
+ .4byte _0811C708
+ .4byte _0811C722
+ .4byte _0811C748
+ .4byte _0811C76E
+_0811C6F4:
+ bl sub_811E050
+ bl sub_811E6B0
+ bl sub_811E55C
+ movs r0, 0x5
+ bl sub_811D9CC
+ b _0811C736
+_0811C708:
+ bl sub_811DAA4
+ lsls r0, 24
+ cmp r0, 0
+ bne _0811C778
+ bl sub_811E5B8
+ lsls r0, 24
+ cmp r0, 0
+ bne _0811C778
+ bl sub_811D6D4
+ b _0811C736
+_0811C722:
+ bl IsDma3ManagerBusyWithBgCopy
+ lsls r0, 24
+ cmp r0, 0
+ bne _0811C778
+ movs r0, 0x6
+ bl sub_811D9CC
+ bl sub_811E578
+_0811C736:
+ ldr r0, =0x0203a11c
+ ldr r1, [r0]
+ ldrh r0, [r1]
+ adds r0, 0x1
+ strh r0, [r1]
+ b _0811C778
+ .pool
+_0811C748:
+ bl sub_811DAA4
+ lsls r0, 24
+ cmp r0, 0
+ bne _0811C778
+ bl sub_811E5B8
+ lsls r0, 24
+ cmp r0, 0
+ bne _0811C778
+ bl sub_811E64C
+ bl sub_811DFC8
+ ldr r0, =0x0203a11c
+ ldr r1, [r0]
+ ldrh r0, [r1]
+ adds r0, 0x1
+ strh r0, [r1]
+_0811C76E:
+ movs r0, 0
+ b _0811C77A
+ .pool
+_0811C778:
+ movs r0, 0x1
+_0811C77A:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_811C6C0
+
+ thumb_func_start sub_811C780
+sub_811C780: @ 811C780
+ push {lr}
+ bl sub_811E088
+ movs r0, 0
+ pop {r1}
+ bx r1
+ thumb_func_end sub_811C780
+
+ thumb_func_start sub_811C78C
+sub_811C78C: @ 811C78C
+ push {r4,lr}
+ ldr r4, =0x0203a11c
+ ldr r0, [r4]
+ ldrh r0, [r0]
+ cmp r0, 0
+ beq _0811C7A4
+ cmp r0, 0x1
+ beq _0811C7B4
+ b _0811C7CA
+ .pool
+_0811C7A4:
+ movs r0, 0x1
+ movs r1, 0x4
+ bl sub_811DDAC
+ ldr r1, [r4]
+ ldrh r0, [r1]
+ adds r0, 0x1
+ strh r0, [r1]
+_0811C7B4:
+ bl sub_811DE10
+ lsls r0, 24
+ cmp r0, 0
+ bne _0811C7CA
+ bl sub_811E088
+ bl sub_811E64C
+ movs r0, 0
+ b _0811C7CC
+_0811C7CA:
+ movs r0, 0x1
+_0811C7CC:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_811C78C
+
+ thumb_func_start sub_811C7D4
+sub_811C7D4: @ 811C7D4
+ push {r4,lr}
+ ldr r4, =0x0203a11c
+ ldr r0, [r4]
+ ldrh r0, [r0]
+ cmp r0, 0x1
+ beq _0811C808
+ cmp r0, 0x1
+ bgt _0811C7F0
+ cmp r0, 0
+ beq _0811C7F6
+ b _0811C828
+ .pool
+_0811C7F0:
+ cmp r0, 0x2
+ beq _0811C820
+ b _0811C828
+_0811C7F6:
+ movs r0, 0x1
+ negs r0, r0
+ movs r1, 0x4
+ bl sub_811DDAC
+ ldr r1, [r4]
+ ldrh r0, [r1]
+ adds r0, 0x1
+ strh r0, [r1]
+_0811C808:
+ bl sub_811DE10
+ lsls r0, 24
+ cmp r0, 0
+ bne _0811C828
+ bl sub_811E64C
+ ldr r0, =0x0203a11c
+ ldr r1, [r0]
+ ldrh r0, [r1]
+ adds r0, 0x1
+ strh r0, [r1]
+_0811C820:
+ movs r0, 0
+ b _0811C82A
+ .pool
+_0811C828:
+ movs r0, 0x1
+_0811C82A:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_811C7D4
+
+ thumb_func_start sub_811C830
+sub_811C830: @ 811C830
+ push {lr}
+ ldr r0, =0x0203a11c
+ ldr r0, [r0]
+ ldrh r0, [r0]
+ cmp r0, 0x5
+ bhi _0811C8E8
+ lsls r0, 2
+ ldr r1, =_0811C850
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .pool
+ .align 2, 0
+_0811C850:
+ .4byte _0811C868
+ .4byte _0811C876
+ .4byte _0811C886
+ .4byte _0811C898
+ .4byte _0811C8B8
+ .4byte _0811C8DE
+_0811C868:
+ bl sub_811E050
+ bl sub_811E4AC
+ bl sub_811E6B0
+ b _0811C8A8
+_0811C876:
+ bl sub_811E4D0
+ lsls r0, 24
+ cmp r0, 0
+ bne _0811C8E8
+ bl sub_811D9B4
+ b _0811C8A8
+_0811C886:
+ bl IsDma3ManagerBusyWithBgCopy
+ lsls r0, 24
+ cmp r0, 0
+ bne _0811C8E8
+ movs r0, 0x2
+ bl sub_811D9CC
+ b _0811C8A8
+_0811C898:
+ bl sub_811DAA4
+ lsls r0, 24
+ cmp r0, 0
+ bne _0811C8E8
+ movs r0, 0x2
+ bl sub_811D698
+_0811C8A8:
+ ldr r0, =0x0203a11c
+ ldr r1, [r0]
+ ldrh r0, [r1]
+ adds r0, 0x1
+ strh r0, [r1]
+ b _0811C8E8
+ .pool
+_0811C8B8:
+ bl IsDma3ManagerBusyWithBgCopy
+ lsls r0, 24
+ cmp r0, 0
+ bne _0811C8E8
+ bl sub_811E288
+ movs r0, 0x1
+ bl sub_811E6E0
+ bl sub_811E64C
+ bl sub_811E794
+ ldr r0, =0x0203a11c
+ ldr r1, [r0]
+ ldrh r0, [r1]
+ adds r0, 0x1
+ strh r0, [r1]
+_0811C8DE:
+ movs r0, 0
+ b _0811C8EA
+ .pool
+_0811C8E8:
+ movs r0, 0x1
+_0811C8EA:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_811C830
+
+ thumb_func_start sub_811C8F0
+sub_811C8F0: @ 811C8F0
+ push {lr}
+ ldr r0, =0x0203a11c
+ ldr r0, [r0]
+ ldrh r0, [r0]
+ cmp r0, 0x5
+ bhi _0811C994
+ lsls r0, 2
+ ldr r1, =_0811C910
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .pool
+ .align 2, 0
+_0811C910:
+ .4byte _0811C928
+ .4byte _0811C92E
+ .4byte _0811C940
+ .4byte _0811C952
+ .4byte _0811C974
+ .4byte _0811C98C
+_0811C928:
+ bl sub_811D2C8
+ b _0811C962
+_0811C92E:
+ bl sub_811E380
+ bl sub_811E6B0
+ bl sub_811E7F8
+ bl sub_811D9B4
+ b _0811C962
+_0811C940:
+ bl IsDma3ManagerBusyWithBgCopy
+ lsls r0, 24
+ cmp r0, 0
+ bne _0811C994
+ movs r0, 0x3
+ bl sub_811D9CC
+ b _0811C962
+_0811C952:
+ bl sub_811DAA4
+ lsls r0, 24
+ cmp r0, 0
+ bne _0811C994
+ movs r0, 0
+ bl ShowBg
+_0811C962:
+ ldr r0, =0x0203a11c
+ ldr r1, [r0]
+ ldrh r0, [r1]
+ adds r0, 0x1
+ strh r0, [r1]
+ b _0811C994
+ .pool
+_0811C974:
+ bl IsDma3ManagerBusyWithBgCopy
+ lsls r0, 24
+ cmp r0, 0
+ bne _0811C994
+ bl sub_811DFB0
+ ldr r0, =0x0203a11c
+ ldr r1, [r0]
+ ldrh r0, [r1]
+ adds r0, 0x1
+ strh r0, [r1]
+_0811C98C:
+ movs r0, 0
+ b _0811C996
+ .pool
+_0811C994:
+ movs r0, 0x1
+_0811C996:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_811C8F0
+
+ thumb_func_start sub_811C99C
+sub_811C99C: @ 811C99C
+ push {lr}
+ ldr r0, =0x0203a11c
+ ldr r0, [r0]
+ ldrh r0, [r0]
+ cmp r0, 0x6
+ bhi _0811CA54
+ lsls r0, 2
+ ldr r1, =_0811C9BC
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .pool
+ .align 2, 0
+_0811C9BC:
+ .4byte _0811C9D8
+ .4byte _0811C9DE
+ .4byte _0811C9F0
+ .4byte _0811CA02
+ .4byte _0811CA14
+ .4byte _0811CA34
+ .4byte _0811CA4C
+_0811C9D8:
+ bl sub_811D2C8
+ b _0811CA24
+_0811C9DE:
+ bl sub_811E380
+ bl sub_811E6B0
+ bl sub_811E7F8
+ bl sub_811D9B4
+ b _0811CA24
+_0811C9F0:
+ bl IsDma3ManagerBusyWithBgCopy
+ lsls r0, 24
+ cmp r0, 0
+ bne _0811CA54
+ movs r0, 0x3
+ bl sub_811D9CC
+ b _0811CA24
+_0811CA02:
+ bl sub_811DAA4
+ lsls r0, 24
+ cmp r0, 0
+ bne _0811CA54
+ movs r0, 0x3
+ bl sub_811D104
+ b _0811CA24
+_0811CA14:
+ bl IsDma3ManagerBusyWithBgCopy
+ lsls r0, 24
+ cmp r0, 0
+ bne _0811CA54
+ movs r0, 0
+ bl ShowBg
+_0811CA24:
+ ldr r0, =0x0203a11c
+ ldr r1, [r0]
+ ldrh r0, [r1]
+ adds r0, 0x1
+ strh r0, [r1]
+ b _0811CA54
+ .pool
+_0811CA34:
+ bl IsDma3ManagerBusyWithBgCopy
+ lsls r0, 24
+ cmp r0, 0
+ bne _0811CA54
+ bl sub_811DFB0
+ ldr r0, =0x0203a11c
+ ldr r1, [r0]
+ ldrh r0, [r1]
+ adds r0, 0x1
+ strh r0, [r1]
+_0811CA4C:
+ movs r0, 0
+ b _0811CA56
+ .pool
+_0811CA54:
+ movs r0, 0x1
+_0811CA56:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_811C99C
+
+ thumb_func_start sub_811CA5C
+sub_811CA5C: @ 811CA5C
+ push {lr}
+ ldr r0, =0x0203a11c
+ ldr r0, [r0]
+ ldrh r0, [r0]
+ cmp r0, 0x4
+ bhi _0811CB10
+ lsls r0, 2
+ ldr r1, =_0811CA7C
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .pool
+ .align 2, 0
+_0811CA7C:
+ .4byte _0811CA90
+ .4byte _0811CAA2
+ .4byte _0811CAB4
+ .4byte _0811CAC4
+ .4byte _0811CAE4
+_0811CA90:
+ bl sub_811E380
+ bl sub_811E6B0
+ bl sub_811E7F8
+ bl sub_811D9B4
+ b _0811CAD2
+_0811CAA2:
+ bl IsDma3ManagerBusyWithBgCopy
+ lsls r0, 24
+ cmp r0, 0
+ bne _0811CB10
+ movs r0, 0x4
+ bl sub_811D9CC
+ b _0811CAD2
+_0811CAB4:
+ bl sub_811DAA4
+ lsls r0, 24
+ cmp r0, 0
+ bne _0811CB10
+ bl sub_811D6D4
+ b _0811CAD2
+_0811CAC4:
+ bl IsDma3ManagerBusyWithBgCopy
+ lsls r0, 24
+ cmp r0, 0
+ bne _0811CB10
+ bl sub_811E3AC
+_0811CAD2:
+ ldr r0, =0x0203a11c
+ ldr r1, [r0]
+ ldrh r0, [r1]
+ adds r0, 0x1
+ strh r0, [r1]
+ b _0811CB10
+ .pool
+_0811CAE4:
+ bl sub_811E418
+ lsls r0, 24
+ cmp r0, 0
+ bne _0811CB10
+ bl sub_811DFC8
+ movs r0, 0
+ bl sub_811E6E0
+ bl sub_811E64C
+ ldr r0, =0x0203a11c
+ ldr r1, [r0]
+ ldrh r0, [r1]
+ adds r0, 0x1
+ strh r0, [r1]
+ movs r0, 0
+ b _0811CB12
+ .pool
+_0811CB10:
+ movs r0, 0x1
+_0811CB12:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_811CA5C
+
+ thumb_func_start sub_811CB18
+sub_811CB18: @ 811CB18
+ push {lr}
+ bl sub_811E30C
+ movs r0, 0
+ pop {r1}
+ bx r1
+ thumb_func_end sub_811CB18
+
+ thumb_func_start sub_811CB24
+sub_811CB24: @ 811CB24
+ push {r4,lr}
+ ldr r4, =0x0203a11c
+ ldr r0, [r4]
+ ldrh r0, [r0]
+ cmp r0, 0x1
+ beq _0811CB50
+ cmp r0, 0x1
+ bgt _0811CB40
+ cmp r0, 0
+ beq _0811CB4A
+ b _0811CB8E
+ .pool
+_0811CB40:
+ cmp r0, 0x2
+ beq _0811CB6C
+ cmp r0, 0x3
+ beq _0811CB8A
+ b _0811CB8E
+_0811CB4A:
+ bl sub_811D7A4
+ b _0811CB62
+_0811CB50:
+ bl IsDma3ManagerBusyWithBgCopy
+ lsls r0, 24
+ cmp r0, 0
+ bne _0811CB8E
+ movs r0, 0x1
+ movs r1, 0x4
+ bl sub_811DDAC
+_0811CB62:
+ ldr r1, [r4]
+ ldrh r0, [r1]
+ adds r0, 0x1
+ strh r0, [r1]
+ b _0811CB8E
+_0811CB6C:
+ bl sub_811DE10
+ lsls r0, 24
+ cmp r0, 0
+ bne _0811CB8E
+ bl sub_811E30C
+ bl sub_811E64C
+ bl sub_811E794
+ ldr r1, [r4]
+ ldrh r0, [r1]
+ adds r0, 0x1
+ strh r0, [r1]
+_0811CB8A:
+ movs r0, 0
+ b _0811CB90
+_0811CB8E:
+ movs r0, 0x1
+_0811CB90:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_811CB24
+
+ thumb_func_start sub_811CB98
+sub_811CB98: @ 811CB98
+ push {r4,lr}
+ ldr r4, =0x0203a11c
+ ldr r0, [r4]
+ ldrh r0, [r0]
+ cmp r0, 0x1
+ beq _0811CBC4
+ cmp r0, 0x1
+ bgt _0811CBB4
+ cmp r0, 0
+ beq _0811CBBE
+ b _0811CC00
+ .pool
+_0811CBB4:
+ cmp r0, 0x2
+ beq _0811CBE2
+ cmp r0, 0x3
+ beq _0811CBFC
+ b _0811CC00
+_0811CBBE:
+ bl sub_811D7C8
+ b _0811CBD8
+_0811CBC4:
+ bl IsDma3ManagerBusyWithBgCopy
+ lsls r0, 24
+ cmp r0, 0
+ bne _0811CC00
+ movs r0, 0x1
+ negs r0, r0
+ movs r1, 0x4
+ bl sub_811DDAC
+_0811CBD8:
+ ldr r1, [r4]
+ ldrh r0, [r1]
+ adds r0, 0x1
+ strh r0, [r1]
+ b _0811CC00
+_0811CBE2:
+ bl sub_811DE10
+ lsls r0, 24
+ cmp r0, 0
+ bne _0811CC00
+ bl sub_811E64C
+ bl sub_811E794
+ ldr r1, [r4]
+ ldrh r0, [r1]
+ adds r0, 0x1
+ strh r0, [r1]
+_0811CBFC:
+ movs r0, 0
+ b _0811CC02
+_0811CC00:
+ movs r0, 0x1
+_0811CC02:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_811CB98
+
+ thumb_func_start sub_811CC08
+sub_811CC08: @ 811CC08
+ push {r4,r5,lr}
+ ldr r5, =0x0203a11c
+ ldr r0, [r5]
+ ldrh r0, [r0]
+ cmp r0, 0x1
+ beq _0811CC34
+ cmp r0, 0x1
+ bgt _0811CC24
+ cmp r0, 0
+ beq _0811CC2E
+ b _0811CC86
+ .pool
+_0811CC24:
+ cmp r0, 0x2
+ beq _0811CC64
+ cmp r0, 0x3
+ beq _0811CC82
+ b _0811CC86
+_0811CC2E:
+ bl sub_811D7EC
+ b _0811CC5A
+_0811CC34:
+ bl IsDma3ManagerBusyWithBgCopy
+ lsls r0, 24
+ cmp r0, 0
+ bne _0811CC86
+ bl sub_811BBDC
+ adds r4, r0, 0
+ bl sub_811DE48
+ lsls r4, 24
+ lsrs r4, 24
+ subs r4, r0
+ lsls r4, 16
+ asrs r4, 16
+ adds r0, r4, 0
+ movs r1, 0x8
+ bl sub_811DDAC
+_0811CC5A:
+ ldr r1, [r5]
+ ldrh r0, [r1]
+ adds r0, 0x1
+ strh r0, [r1]
+ b _0811CC86
+_0811CC64:
+ bl sub_811DE10
+ lsls r0, 24
+ cmp r0, 0
+ bne _0811CC86
+ bl sub_811E30C
+ bl sub_811E64C
+ bl sub_811E794
+ ldr r1, [r5]
+ ldrh r0, [r1]
+ adds r0, 0x1
+ strh r0, [r1]
+_0811CC82:
+ movs r0, 0
+ b _0811CC88
+_0811CC86:
+ movs r0, 0x1
+_0811CC88:
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_811CC08
+
+ thumb_func_start sub_811CC90
+sub_811CC90: @ 811CC90
+ push {r4,r5,lr}
+ ldr r5, =0x0203a11c
+ ldr r0, [r5]
+ ldrh r0, [r0]
+ cmp r0, 0x1
+ beq _0811CCBC
+ cmp r0, 0x1
+ bgt _0811CCAC
+ cmp r0, 0
+ beq _0811CCB6
+ b _0811CD0A
+ .pool
+_0811CCAC:
+ cmp r0, 0x2
+ beq _0811CCEC
+ cmp r0, 0x3
+ beq _0811CD06
+ b _0811CD0A
+_0811CCB6:
+ bl sub_811D830
+ b _0811CCE2
+_0811CCBC:
+ bl IsDma3ManagerBusyWithBgCopy
+ lsls r0, 24
+ cmp r0, 0
+ bne _0811CD0A
+ bl sub_811BBDC
+ adds r4, r0, 0
+ bl sub_811DE48
+ lsls r4, 24
+ lsrs r4, 24
+ subs r4, r0
+ lsls r4, 16
+ asrs r4, 16
+ adds r0, r4, 0
+ movs r1, 0x8
+ bl sub_811DDAC
+_0811CCE2:
+ ldr r1, [r5]
+ ldrh r0, [r1]
+ adds r0, 0x1
+ strh r0, [r1]
+ b _0811CD0A
+_0811CCEC:
+ bl sub_811DE10
+ lsls r0, 24
+ cmp r0, 0
+ bne _0811CD0A
+ bl sub_811E64C
+ bl sub_811E794
+ ldr r1, [r5]
+ ldrh r0, [r1]
+ adds r0, 0x1
+ strh r0, [r1]
+_0811CD06:
+ movs r0, 0
+ b _0811CD0C
+_0811CD0A:
+ movs r0, 0x1
+_0811CD0C:
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_811CC90
+
+ thumb_func_start sub_811CD14
+sub_811CD14: @ 811CD14
+ push {r4,lr}
+ ldr r4, =0x0203a11c
+ ldr r0, [r4]
+ ldrh r0, [r0]
+ cmp r0, 0
+ beq _0811CD2C
+ cmp r0, 0x1
+ beq _0811CD40
+ b _0811CD4A
+ .pool
+_0811CD2C:
+ bl sub_811DF90
+ movs r0, 0x4
+ bl sub_811D104
+ ldr r1, [r4]
+ ldrh r0, [r1]
+ adds r0, 0x1
+ strh r0, [r1]
+ b _0811CD4A
+_0811CD40:
+ bl IsDma3ManagerBusyWithBgCopy
+ lsls r0, 24
+ lsrs r0, 24
+ b _0811CD4C
+_0811CD4A:
+ movs r0, 0x1
+_0811CD4C:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_811CD14
+
+ thumb_func_start sub_811CD54
+sub_811CD54: @ 811CD54
+ push {r4,lr}
+ ldr r4, =0x0203a11c
+ ldr r0, [r4]
+ ldrh r0, [r0]
+ cmp r0, 0
+ beq _0811CD6C
+ cmp r0, 0x1
+ beq _0811CD80
+ b _0811CD8A
+ .pool
+_0811CD6C:
+ bl sub_811DF90
+ movs r0, 0x5
+ bl sub_811D104
+ ldr r1, [r4]
+ ldrh r0, [r1]
+ adds r0, 0x1
+ strh r0, [r1]
+ b _0811CD8A
+_0811CD80:
+ bl IsDma3ManagerBusyWithBgCopy
+ lsls r0, 24
+ lsrs r0, 24
+ b _0811CD8C
+_0811CD8A:
+ movs r0, 0x1
+_0811CD8C:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_811CD54
+
+ thumb_func_start sub_811CD94
+sub_811CD94: @ 811CD94
+ push {r4,lr}
+ ldr r4, =0x0203a11c
+ ldr r0, [r4]
+ ldrh r0, [r0]
+ cmp r0, 0
+ beq _0811CDAC
+ cmp r0, 0x1
+ beq _0811CDC0
+ b _0811CDCA
+ .pool
+_0811CDAC:
+ bl sub_811DF90
+ movs r0, 0x6
+ bl sub_811D104
+ ldr r1, [r4]
+ ldrh r0, [r1]
+ adds r0, 0x1
+ strh r0, [r1]
+ b _0811CDCA
+_0811CDC0:
+ bl IsDma3ManagerBusyWithBgCopy
+ lsls r0, 24
+ lsrs r0, 24
+ b _0811CDCC
+_0811CDCA:
+ movs r0, 0x1
+_0811CDCC:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_811CD94
+
+ thumb_func_start sub_811CDD4
+sub_811CDD4: @ 811CDD4
+ push {r4,lr}
+ ldr r4, =0x0203a11c
+ ldr r0, [r4]
+ ldrh r0, [r0]
+ cmp r0, 0
+ beq _0811CDEC
+ cmp r0, 0x1
+ beq _0811CE00
+ b _0811CE0A
+ .pool
+_0811CDEC:
+ bl sub_811DF90
+ movs r0, 0x7
+ bl sub_811D104
+ ldr r1, [r4]
+ ldrh r0, [r1]
+ adds r0, 0x1
+ strh r0, [r1]
+ b _0811CE0A
+_0811CE00:
+ bl IsDma3ManagerBusyWithBgCopy
+ lsls r0, 24
+ lsrs r0, 24
+ b _0811CE0C
+_0811CE0A:
+ movs r0, 0x1
+_0811CE0C:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_811CDD4
+
+ thumb_func_start sub_811CE14
+sub_811CE14: @ 811CE14
+ push {r4,lr}
+ ldr r4, =0x0203a11c
+ ldr r0, [r4]
+ ldrh r0, [r0]
+ cmp r0, 0
+ beq _0811CE2C
+ cmp r0, 0x1
+ beq _0811CE40
+ b _0811CE4A
+ .pool
+_0811CE2C:
+ bl sub_811DF90
+ movs r0, 0x8
+ bl sub_811D104
+ ldr r1, [r4]
+ ldrh r0, [r1]
+ adds r0, 0x1
+ strh r0, [r1]
+ b _0811CE4A
+_0811CE40:
+ bl IsDma3ManagerBusyWithBgCopy
+ lsls r0, 24
+ lsrs r0, 24
+ b _0811CE4C
+_0811CE4A:
+ movs r0, 0x1
+_0811CE4C:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_811CE14
+
+ thumb_func_start sub_811CE54
+sub_811CE54: @ 811CE54
+ push {r4,lr}
+ ldr r4, =0x0203a11c
+ ldr r0, [r4]
+ ldrh r0, [r0]
+ cmp r0, 0
+ beq _0811CE6C
+ cmp r0, 0x1
+ beq _0811CE80
+ b _0811CE8A
+ .pool
+_0811CE6C:
+ bl sub_811DF90
+ movs r0, 0x9
+ bl sub_811D104
+ ldr r1, [r4]
+ ldrh r0, [r1]
+ adds r0, 0x1
+ strh r0, [r1]
+ b _0811CE8A
+_0811CE80:
+ bl IsDma3ManagerBusyWithBgCopy
+ lsls r0, 24
+ lsrs r0, 24
+ b _0811CE8C
+_0811CE8A:
+ movs r0, 0x1
+_0811CE8C:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_811CE54
+
+ thumb_func_start sub_811CE94
+sub_811CE94: @ 811CE94
+ push {r4,lr}
+ ldr r4, =0x0203a11c
+ movs r0, 0x98
+ lsls r0, 5
+ bl Alloc
+ adds r2, r0, 0
+ str r2, [r4]
+ cmp r2, 0
+ beq _0811CEFC
+ movs r1, 0
+ strh r1, [r2]
+ movs r3, 0xB6
+ lsls r3, 2
+ adds r0, r2, r3
+ str r1, [r0]
+ adds r3, 0x4
+ adds r0, r2, r3
+ str r1, [r0]
+ adds r3, 0x4
+ adds r0, r2, r3
+ str r1, [r0]
+ adds r3, 0x4
+ adds r0, r2, r3
+ str r1, [r0]
+ adds r3, 0x4
+ adds r0, r2, r3
+ str r1, [r0]
+ adds r3, 0x4
+ adds r0, r2, r3
+ str r1, [r0]
+ adds r3, 0x4
+ adds r0, r2, r3
+ str r1, [r0]
+ adds r3, 0x4
+ adds r0, r2, r3
+ str r1, [r0]
+ adds r3, 0x4
+ adds r0, r2, r3
+ str r1, [r0]
+ adds r3, 0x4
+ adds r0, r2, r3
+ str r1, [r0]
+ bl sub_811BC70
+ ldr r1, [r4]
+ strb r0, [r1, 0xA]
+ movs r0, 0x1
+ b _0811CEFE
+ .pool
+_0811CEFC:
+ movs r0, 0
+_0811CEFE:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_811CE94
+
+ thumb_func_start sub_811CF04
+sub_811CF04: @ 811CF04
+ push {lr}
+ movs r0, 0x3
+ movs r1, 0
+ movs r2, 0
+ bl ChangeBgX
+ movs r0, 0x3
+ movs r1, 0
+ movs r2, 0
+ bl ChangeBgY
+ movs r0, 0x1
+ movs r1, 0
+ movs r2, 0
+ bl ChangeBgX
+ movs r0, 0x1
+ movs r1, 0
+ movs r2, 0
+ bl ChangeBgY
+ movs r0, 0x2
+ movs r1, 0
+ movs r2, 0
+ bl ChangeBgX
+ movs r0, 0x2
+ movs r1, 0
+ movs r2, 0
+ bl ChangeBgY
+ movs r0, 0
+ movs r1, 0
+ movs r2, 0
+ bl ChangeBgX
+ movs r0, 0
+ movs r1, 0
+ movs r2, 0
+ bl ChangeBgY
+ movs r1, 0xC1
+ lsls r1, 6
+ movs r0, 0
+ bl SetGpuReg
+ pop {r0}
+ bx r0
+ thumb_func_end sub_811CF04
+
+ thumb_func_start sub_811CF64
+sub_811CF64: @ 811CF64
+ push {r4,lr}
+ bl sub_80A1A74
+ ldr r0, =gUnknown_08DCBDB0
+ movs r1, 0
+ movs r2, 0x20
+ bl gpu_pal_apply
+ ldr r0, =gUnknown_08597B14
+ movs r1, 0x10
+ movs r2, 0x20
+ bl gpu_pal_apply
+ ldr r0, =gUnknown_08597B34
+ movs r1, 0x40
+ movs r2, 0x20
+ bl gpu_pal_apply
+ ldr r0, =gUnknown_08597C1C
+ movs r1, 0xA0
+ movs r2, 0x8
+ bl gpu_pal_apply
+ ldr r4, =gUnknown_08597C24
+ adds r0, r4, 0
+ movs r1, 0xB0
+ movs r2, 0xC
+ bl gpu_pal_apply
+ adds r0, r4, 0
+ movs r1, 0xF0
+ movs r2, 0xC
+ bl gpu_pal_apply
+ adds r0, r4, 0
+ movs r1, 0x30
+ movs r2, 0xC
+ bl gpu_pal_apply
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_811CF64
+
+ thumb_func_start sub_811CFCC
+sub_811CFCC: @ 811CFCC
+ push {r4,r5,lr}
+ sub sp, 0x14
+ bl sub_811BA88
+ adds r5, r0, 0
+ cmp r5, 0
+ beq _0811D020
+ movs r0, 0x1
+ adds r1, r5, 0
+ movs r2, 0x90
+ bl GetStringCenterAlignXOffset
+ adds r4, r0, 0
+ movs r0, 0
+ movs r1, 0
+ bl FillWindowPixelBuffer
+ lsls r4, 24
+ lsrs r4, 24
+ movs r0, 0x1
+ str r0, [sp]
+ movs r0, 0xFF
+ str r0, [sp, 0x4]
+ movs r0, 0
+ str r0, [sp, 0x8]
+ movs r0, 0x2
+ str r0, [sp, 0xC]
+ movs r0, 0x3
+ str r0, [sp, 0x10]
+ movs r0, 0
+ movs r1, 0x1
+ adds r2, r5, 0
+ adds r3, r4, 0
+ bl sub_811D058
+ movs r0, 0
+ bl PutWindowTilemap
+ movs r0, 0
+ movs r1, 0x3
+ bl CopyWindowToVram
+_0811D020:
+ add sp, 0x14
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_811CFCC
+
+ thumb_func_start sub_811D028
+sub_811D028: @ 811D028
+ push {r4-r6,lr}
+ sub sp, 0xC
+ ldr r4, [sp, 0x1C]
+ ldr r5, [sp, 0x20]
+ ldr r6, [sp, 0x24]
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, 24
+ lsrs r1, 24
+ lsls r3, 24
+ lsrs r3, 24
+ lsls r4, 24
+ lsrs r4, 24
+ lsls r5, 24
+ lsrs r5, 24
+ str r4, [sp]
+ str r5, [sp, 0x4]
+ str r6, [sp, 0x8]
+ bl Print
+ add sp, 0xC
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_811D028
+
+ thumb_func_start sub_811D058
+sub_811D058: @ 811D058
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x10
+ mov r9, r3
+ ldr r3, [sp, 0x30]
+ ldr r4, [sp, 0x34]
+ mov r8, r4
+ ldr r7, [sp, 0x38]
+ mov r10, r7
+ ldr r5, [sp, 0x3C]
+ ldr r6, [sp, 0x40]
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, 24
+ lsrs r1, 24
+ mov r4, r9
+ lsls r4, 24
+ lsrs r4, 24
+ mov r9, r4
+ lsls r3, 24
+ lsrs r3, 24
+ lsls r5, 24
+ lsrs r5, 24
+ lsls r6, 24
+ lsrs r6, 24
+ add r4, sp, 0xC
+ mov r7, r10
+ strb r7, [r4]
+ strb r5, [r4, 0x1]
+ strb r6, [r4, 0x2]
+ str r4, [sp]
+ mov r4, r8
+ lsls r4, 24
+ asrs r4, 24
+ str r4, [sp, 0x4]
+ str r2, [sp, 0x8]
+ mov r2, r9
+ bl box_print
+ add sp, 0x10
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_811D058
+
+ thumb_func_start sub_811D0BC
+sub_811D0BC: @ 811D0BC
+ push {lr}
+ sub sp, 0xC
+ movs r0, 0x20
+ str r0, [sp]
+ movs r0, 0x14
+ str r0, [sp, 0x4]
+ movs r0, 0x11
+ str r0, [sp, 0x8]
+ movs r0, 0
+ movs r1, 0
+ movs r2, 0
+ movs r3, 0
+ bl FillBgTilemapBufferRect
+ movs r0, 0x1
+ movs r1, 0x1
+ movs r2, 0xE0
+ bl sub_809882C
+ movs r0, 0x1
+ movs r1, 0x1
+ movs r2, 0xE
+ bl sub_8098858
+ movs r0, 0
+ bl sub_811D104
+ movs r0, 0x1
+ bl PutWindowTilemap
+ movs r0, 0
+ bl CopyBgTilemapBufferToVram
+ add sp, 0xC
+ pop {r0}
+ bx r0
+ thumb_func_end sub_811D0BC
+
+ thumb_func_start sub_811D104
+sub_811D104: @ 811D104
+ push {lr}
+ sub sp, 0x14
+ lsls r0, 24
+ lsrs r1, r0, 24
+ movs r0, 0
+ str r0, [sp, 0x10]
+ str r0, [sp, 0xC]
+ cmp r1, 0x9
+ bhi _0811D1BC
+ lsls r0, r1, 2
+ ldr r1, =_0811D124
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .pool
+ .align 2, 0
+_0811D124:
+ .4byte _0811D14C
+ .4byte _0811D16A
+ .4byte _0811D156
+ .4byte _0811D160
+ .4byte _0811D174
+ .4byte _0811D180
+ .4byte _0811D18C
+ .4byte _0811D19C
+ .4byte _0811D1A8
+ .4byte _0811D1B4
+_0811D14C:
+ add r1, sp, 0x10
+ add r0, sp, 0xC
+ bl sub_811BAD0
+ b _0811D1BC
+_0811D156:
+ add r1, sp, 0x10
+ add r0, sp, 0xC
+ bl sub_811BB40
+ b _0811D1BC
+_0811D160:
+ add r1, sp, 0x10
+ add r0, sp, 0xC
+ bl sub_811BB08
+ b _0811D1BC
+_0811D16A:
+ add r1, sp, 0x10
+ add r0, sp, 0xC
+ bl sub_811BB88
+ b _0811D1BC
+_0811D174:
+ ldr r0, =gUnknown_085EC743
+ str r0, [sp, 0xC]
+ b _0811D1BC
+ .pool
+_0811D180:
+ ldr r0, =gUnknown_085EC752
+ str r0, [sp, 0xC]
+ b _0811D1BC
+ .pool
+_0811D18C:
+ ldr r0, =gUnknown_085EC4C9
+ str r0, [sp, 0xC]
+ ldr r0, =gUnknown_085EC4E9
+ b _0811D1BA
+ .pool
+_0811D19C:
+ ldr r0, =gUnknown_085EC765
+ str r0, [sp, 0xC]
+ b _0811D1BC
+ .pool
+_0811D1A8:
+ ldr r0, =gUnknown_085EC520
+ str r0, [sp, 0xC]
+ b _0811D1BC
+ .pool
+_0811D1B4:
+ ldr r0, =gUnknown_085EC672
+ str r0, [sp, 0xC]
+ ldr r0, =gUnknown_085EC688
+_0811D1BA:
+ str r0, [sp, 0x10]
+_0811D1BC:
+ movs r0, 0x1
+ movs r1, 0x11
+ bl FillWindowPixelBuffer
+ ldr r2, [sp, 0xC]
+ cmp r2, 0
+ beq _0811D1E0
+ movs r0, 0x1
+ str r0, [sp]
+ movs r0, 0xFF
+ str r0, [sp, 0x4]
+ movs r0, 0
+ str r0, [sp, 0x8]
+ movs r0, 0x1
+ movs r1, 0x1
+ movs r3, 0
+ bl sub_811D028
+_0811D1E0:
+ ldr r2, [sp, 0x10]
+ cmp r2, 0
+ beq _0811D1FC
+ movs r0, 0x11
+ str r0, [sp]
+ movs r0, 0xFF
+ str r0, [sp, 0x4]
+ movs r0, 0
+ str r0, [sp, 0x8]
+ movs r0, 0x1
+ movs r1, 0x1
+ movs r3, 0
+ bl sub_811D028
+_0811D1FC:
+ movs r0, 0x1
+ movs r1, 0x3
+ bl CopyWindowToVram
+ add sp, 0x14
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_811D104
+
+ thumb_func_start sub_811D214
+sub_811D214: @ 811D214
+ push {lr}
+ adds r3, r0, 0
+ lsls r3, 24
+ lsrs r3, 24
+ ldr r0, =gUnknown_08597C84
+ movs r1, 0x1
+ movs r2, 0xE
+ bl CreateYesNoMenu
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_811D214
+
+ thumb_func_start sub_811D230
+sub_811D230: @ 811D230
+ push {r4-r6,lr}
+ sub sp, 0x8
+ bl sub_811BA68
+ lsls r0, 24
+ ldr r6, =0xffffff00
+ ldr r4, [sp]
+ ands r4, r6
+ movs r1, 0x3
+ orrs r4, r1
+ str r4, [sp]
+ ldr r1, =gUnknown_08597C30
+ lsrs r0, 22
+ adds r0, r1
+ ldrb r3, [r0]
+ lsls r1, r3, 27
+ lsrs r1, 19
+ ldr r5, =0xffff00ff
+ adds r2, r5, 0
+ ands r2, r4
+ orrs r2, r1
+ lsrs r3, 5
+ lsls r3, 16
+ ldr r1, =0xff00ffff
+ ands r2, r1
+ orrs r2, r3
+ str r2, [sp]
+ ldrb r3, [r0, 0x1]
+ lsls r3, 24
+ ldr r1, =0x00ffffff
+ ands r1, r2
+ orrs r1, r3
+ str r1, [sp]
+ ldrb r1, [r0, 0x2]
+ ldr r0, [sp, 0x4]
+ ands r0, r6
+ orrs r0, r1
+ ands r0, r5
+ movs r1, 0xB0
+ lsls r1, 4
+ orrs r0, r1
+ ldr r1, =0x0000ffff
+ ands r0, r1
+ movs r1, 0xD8
+ lsls r1, 15
+ orrs r0, r1
+ str r0, [sp, 0x4]
+ mov r0, sp
+ bl AddWindow
+ ldr r1, =0x0203a11c
+ ldr r1, [r1]
+ strh r0, [r1, 0x2]
+ lsls r0, 24
+ lsrs r0, 24
+ bl PutWindowTilemap
+ add sp, 0x8
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_811D230
+
+ thumb_func_start sub_811D2C8
+sub_811D2C8: @ 811D2C8
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x18
+ bl sub_811BA94
+ adds r4, r0, 0
+ bl sub_811BAAC
+ lsls r0, 24
+ lsrs r0, 24
+ str r0, [sp, 0x10]
+ bl sub_811BAA0
+ lsls r0, 24
+ lsrs r0, 24
+ str r0, [sp, 0x14]
+ bl sub_811BA68
+ lsls r0, 24
+ lsrs r6, r0, 24
+ movs r0, 0
+ mov r8, r0
+ cmp r6, 0x7
+ bne _0811D302
+ movs r1, 0x1
+ mov r8, r1
+_0811D302:
+ ldr r0, =0x0203a11c
+ ldr r0, [r0]
+ ldrb r0, [r0, 0x2]
+ movs r1, 0x11
+ bl FillWindowPixelBuffer
+ movs r7, 0
+ ldr r0, [sp, 0x14]
+ cmp r7, r0
+ bge _0811D402
+_0811D316:
+ add r0, sp, 0xC
+ ldr r1, =gUnknown_08597C8C
+ movs r2, 0x4
+ bl memcpy
+ mov r1, r8
+ cmp r1, 0
+ beq _0811D32C
+ add r1, sp, 0xC
+ movs r0, 0x6
+ strb r0, [r1, 0x2]
+_0811D32C:
+ ldr r0, =0x0203a11c
+ ldr r1, [r0]
+ adds r2, r1, 0
+ adds r2, 0xB
+ movs r0, 0xFF
+ strb r0, [r1, 0xB]
+ adds r0, r2, 0
+ add r1, sp, 0xC
+ bl AppendString
+ adds r2, r0, 0
+ movs r5, 0
+ lsls r0, r7, 4
+ mov r9, r0
+ adds r1, r7, 0x1
+ mov r10, r1
+ b _0811D3CE
+ .pool
+_0811D358:
+ ldrh r0, [r4]
+ ldr r1, =0x0000ffff
+ cmp r0, r1
+ beq _0811D374
+ adds r1, r0, 0
+ adds r0, r2, 0
+ bl CopyEasyChatWord
+ adds r2, r0, 0
+ adds r4, 0x2
+ b _0811D3A2
+ .pool
+_0811D374:
+ adds r4, 0x2
+ mov r0, r8
+ cmp r0, 0
+ bne _0811D3A8
+ adds r0, r2, 0
+ movs r1, 0
+ movs r2, 0x4
+ bl WriteColorChangeControlCode
+ adds r2, r0, 0
+ movs r1, 0xAE
+ movs r0, 0xB
+_0811D38C:
+ strb r1, [r2]
+ adds r2, 0x1
+ subs r0, 0x1
+ cmp r0, 0
+ bge _0811D38C
+ adds r0, r2, 0
+ movs r1, 0
+ movs r2, 0x2
+ bl WriteColorChangeControlCode
+ adds r2, r0, 0
+_0811D3A2:
+ mov r1, r8
+ cmp r1, 0
+ beq _0811D3AE
+_0811D3A8:
+ add r1, sp, 0xC
+ movs r0, 0x3
+ strb r0, [r1, 0x2]
+_0811D3AE:
+ adds r0, r2, 0
+ add r1, sp, 0xC
+ bl AppendString
+ adds r2, r0, 0
+ cmp r6, 0x2
+ beq _0811D3C4
+ cmp r6, 0x7
+ beq _0811D3C4
+ cmp r6, 0x8
+ bne _0811D3CC
+_0811D3C4:
+ cmp r5, 0
+ bne _0811D3CC
+ cmp r7, 0x4
+ beq _0811D3D4
+_0811D3CC:
+ adds r5, 0x1
+_0811D3CE:
+ ldr r0, [sp, 0x10]
+ cmp r5, r0
+ blt _0811D358
+_0811D3D4:
+ movs r0, 0xFF
+ strb r0, [r2]
+ ldr r0, =0x0203a11c
+ ldr r2, [r0]
+ ldrb r0, [r2, 0x2]
+ adds r2, 0xB
+ mov r1, r9
+ adds r1, 0x1
+ lsls r1, 24
+ lsrs r1, 24
+ str r1, [sp]
+ movs r1, 0xFF
+ str r1, [sp, 0x4]
+ movs r1, 0
+ str r1, [sp, 0x8]
+ movs r1, 0x1
+ movs r3, 0
+ bl sub_811D028
+ mov r7, r10
+ ldr r1, [sp, 0x14]
+ cmp r7, r1
+ blt _0811D316
+_0811D402:
+ ldr r0, =0x0203a11c
+ ldr r0, [r0]
+ ldrb r0, [r0, 0x2]
+ movs r1, 0x3
+ bl CopyWindowToVram
+ add sp, 0x18
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_811D2C8
+
+ thumb_func_start sub_811D424
+sub_811D424: @ 811D424
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x4
+ mov r8, r0
+ bl sub_811BA68
+ lsls r0, 24
+ lsrs r6, r0, 24
+ movs r0, 0
+ str r0, [sp]
+ ldr r2, =0x01000200
+ mov r0, sp
+ mov r1, r8
+ bl CpuFastSet
+ cmp r6, 0x2
+ beq _0811D450
+ cmp r6, 0x8
+ bne _0811D4D4
+_0811D450:
+ ldr r0, =gUnknown_08597C30
+ lsls r2, r6, 2
+ adds r2, r0
+ ldrb r1, [r2]
+ lsls r3, r1, 27
+ lsrs r0, r3, 27
+ ldrb r4, [r2, 0x1]
+ adds r5, r0, r4
+ lsls r1, 24
+ lsrs r0, r1, 29
+ ldrb r2, [r2, 0x2]
+ adds r2, r0
+ mov r12, r2
+ adds r6, r0, 0
+ cmp r6, r12
+ blt _0811D472
+ b _0811D5D6
+_0811D472:
+ mov r9, r3
+_0811D474:
+ mov r0, r9
+ lsrs r3, r0, 27
+ subs r7, r3, 0x1
+ lsls r2, r6, 5
+ adds r0, r2, r7
+ lsls r0, 1
+ add r0, r8
+ ldr r4, =0x00001005
+ adds r1, r4, 0
+ strh r1, [r0]
+ adds r7, r3, 0
+ adds r3, r2, 0
+ adds r4, r6, 0x1
+ cmp r7, r5
+ bge _0811D4AE
+ movs r0, 0x80
+ lsls r0, 5
+ adds r2, r0, 0
+ lsls r1, r7, 1
+ lsls r0, r6, 6
+ add r0, r8
+ adds r0, r1, r0
+ subs r7, r5, r7
+_0811D4A2:
+ strh r2, [r0]
+ adds r0, 0x2
+ subs r7, 0x1
+ cmp r7, 0
+ bne _0811D4A2
+ adds r7, r5, 0
+_0811D4AE:
+ adds r0, r3, r7
+ lsls r0, 1
+ add r0, r8
+ ldr r2, =0x00001007
+ adds r1, r2, 0
+ strh r1, [r0]
+ adds r6, r4, 0
+ cmp r6, r12
+ blt _0811D474
+ b _0811D5D6
+ .pool
+_0811D4D4:
+ ldr r4, =gUnknown_08597C30
+ mov r10, r4
+ lsls r6, 2
+ mov r9, r6
+ mov r3, r9
+ add r3, r10
+ ldrb r0, [r3]
+ lsls r2, r0, 24
+ lsrs r1, r2, 29
+ subs r6, r1, 0x1
+ lsls r0, 27
+ lsrs r4, r0, 27
+ subs r7, r4, 0x1
+ adds r0, r4, 0
+ ldrb r1, [r3, 0x1]
+ adds r5, r0, r1
+ lsrs r2, 29
+ ldrb r3, [r3, 0x2]
+ adds r3, r2
+ mov r12, r3
+ lsls r0, r6, 5
+ adds r0, r7
+ lsls r0, 1
+ add r0, r8
+ ldr r2, =0x00001001
+ adds r1, r2, 0
+ strh r1, [r0]
+ adds r7, r4, 0
+ cmp r7, r5
+ bge _0811D52A
+ ldr r4, =0x00001002
+ adds r2, r4, 0
+ lsls r1, r7, 1
+ lsls r0, r6, 6
+ add r0, r8
+ adds r1, r0
+ subs r7, r5, r7
+_0811D51E:
+ strh r2, [r1]
+ adds r1, 0x2
+ subs r7, 0x1
+ cmp r7, 0
+ bne _0811D51E
+ adds r7, r5, 0
+_0811D52A:
+ lsls r0, r6, 5
+ adds r0, r7
+ lsls r0, 1
+ add r0, r8
+ ldr r2, =0x00001003
+ adds r1, r2, 0
+ strh r1, [r0]
+ adds r6, 0x1
+ cmp r6, r12
+ bge _0811D590
+ ldr r0, =gUnknown_08597C30
+ add r0, r9
+ ldrb r0, [r0]
+ lsls r3, r0, 27
+_0811D546:
+ lsrs r0, r3, 27
+ subs r7, r0, 0x1
+ lsls r1, r6, 5
+ adds r1, r7
+ lsls r1, 1
+ add r1, r8
+ ldr r4, =0x00001005
+ adds r2, r4, 0
+ strh r2, [r1]
+ adds r7, r0, 0
+ adds r4, r6, 0x1
+ cmp r7, r5
+ bge _0811D57C
+ movs r0, 0x80
+ lsls r0, 5
+ adds r2, r0, 0
+ lsls r1, r7, 1
+ lsls r0, r6, 6
+ add r0, r8
+ adds r1, r0
+ subs r7, r5, r7
+_0811D570:
+ strh r2, [r1]
+ adds r1, 0x2
+ subs r7, 0x1
+ cmp r7, 0
+ bne _0811D570
+ adds r7, r5, 0
+_0811D57C:
+ lsls r0, r6, 5
+ adds r0, r7
+ lsls r0, 1
+ add r0, r8
+ ldr r2, =0x00001007
+ adds r1, r2, 0
+ strh r1, [r0]
+ adds r6, r4, 0
+ cmp r6, r12
+ blt _0811D546
+_0811D590:
+ mov r0, r9
+ add r0, r10
+ ldrb r2, [r0]
+ lsls r2, 27
+ lsrs r2, 27
+ subs r7, r2, 0x1
+ lsls r3, r6, 5
+ adds r0, r3, r7
+ lsls r0, 1
+ add r0, r8
+ ldr r4, =0x00001009
+ adds r1, r4, 0
+ strh r1, [r0]
+ adds r7, r2, 0
+ cmp r7, r5
+ bge _0811D5CA
+ ldr r0, =0x0000100a
+ adds r2, r0, 0
+ lsls r1, r7, 1
+ lsls r0, r6, 6
+ add r0, r8
+ adds r0, r1, r0
+ subs r7, r5, r7
+_0811D5BE:
+ strh r2, [r0]
+ adds r0, 0x2
+ subs r7, 0x1
+ cmp r7, 0
+ bne _0811D5BE
+ adds r7, r5, 0
+_0811D5CA:
+ adds r0, r3, r7
+ lsls r0, 1
+ add r0, r8
+ ldr r2, =0x0000100b
+ adds r1, r2, 0
+ strh r1, [r0]
+_0811D5D6:
+ add sp, 0x4
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_811D424
+
+ thumb_func_start sub_811D60C
+sub_811D60C: @ 811D60C
+ push {r4,lr}
+ sub sp, 0x8
+ movs r0, 0x3
+ bl GetBgTilemapBuffer
+ adds r4, r0, 0
+ bl sub_811BA68
+ lsls r0, 24
+ ldr r1, =gUnknown_08597C30
+ lsrs r0, 22
+ adds r0, r1
+ ldrb r1, [r0, 0x3]
+ cmp r1, 0x2
+ beq _0811D63E
+ cmp r1, 0x2
+ bgt _0811D638
+ cmp r1, 0x1
+ beq _0811D64C
+ b _0811D67C
+ .pool
+_0811D638:
+ cmp r1, 0x3
+ beq _0811D668
+ b _0811D67C
+_0811D63E:
+ movs r0, 0xA8
+ lsls r0, 3
+ adds r4, r0
+ movs r0, 0x20
+ str r0, [sp]
+ str r1, [sp, 0x4]
+ b _0811D65A
+_0811D64C:
+ movs r0, 0xC0
+ lsls r0, 3
+ adds r4, r0
+ movs r0, 0x20
+ str r0, [sp]
+ movs r0, 0x2
+ str r0, [sp, 0x4]
+_0811D65A:
+ movs r0, 0x3
+ adds r1, r4, 0
+ movs r2, 0
+ movs r3, 0xB
+ bl CopyToBgTilemapBufferRect
+ b _0811D67C
+_0811D668:
+ movs r0, 0x20
+ str r0, [sp]
+ movs r0, 0x4
+ str r0, [sp, 0x4]
+ movs r0, 0x3
+ adds r1, r4, 0
+ movs r2, 0
+ movs r3, 0xA
+ bl CopyToBgTilemapBufferRect
+_0811D67C:
+ add sp, 0x8
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_811D60C
+
+ thumb_func_start sub_811D684
+sub_811D684: @ 811D684
+ push {lr}
+ movs r0, 0x2
+ bl PutWindowTilemap
+ movs r0, 0x2
+ bl CopyBgTilemapBufferToVram
+ pop {r0}
+ bx r0
+ thumb_func_end sub_811D684
+
+ thumb_func_start sub_811D698
+sub_811D698: @ 811D698
+ push {r4,lr}
+ adds r4, r0, 0
+ bl sub_811DD84
+ movs r0, 0x2
+ movs r1, 0x11
+ bl FillWindowPixelBuffer
+ cmp r4, 0x1
+ beq _0811D6BC
+ cmp r4, 0x1
+ bcc _0811D6B6
+ cmp r4, 0x2
+ beq _0811D6C2
+ b _0811D6C6
+_0811D6B6:
+ bl sub_811D6F4
+ b _0811D6C6
+_0811D6BC:
+ bl sub_811D758
+ b _0811D6C6
+_0811D6C2:
+ bl sub_811D794
+_0811D6C6:
+ movs r0, 0x2
+ movs r1, 0x2
+ bl CopyWindowToVram
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_811D698
+
+ thumb_func_start sub_811D6D4
+sub_811D6D4: @ 811D6D4
+ push {lr}
+ bl sub_811BBB0
+ lsls r0, 24
+ cmp r0, 0
+ bne _0811D6E8
+ movs r0, 0
+ bl sub_811D698
+ b _0811D6EE
+_0811D6E8:
+ movs r0, 0x1
+ bl sub_811D698
+_0811D6EE:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_811D6D4
+
+ thumb_func_start sub_811D6F4
+sub_811D6F4: @ 811D6F4
+ push {r4-r7,lr}
+ sub sp, 0xC
+ movs r5, 0
+ movs r7, 0x61
+_0811D6FC:
+ movs r4, 0
+ lsls r0, r7, 24
+ lsrs r6, r0, 24
+_0811D702:
+ lsls r0, r5, 24
+ lsrs r0, 24
+ adds r5, 0x1
+ bl sub_811F3B8
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x16
+ beq _0811D742
+ bl sub_811F424
+ adds r2, r0, 0
+ movs r0, 0x54
+ adds r3, r4, 0
+ muls r3, r0
+ adds r3, 0xA
+ lsls r3, 24
+ lsrs r3, 24
+ str r6, [sp]
+ movs r0, 0xFF
+ str r0, [sp, 0x4]
+ movs r0, 0
+ str r0, [sp, 0x8]
+ movs r0, 0x2
+ movs r1, 0x1
+ bl sub_811D028
+ adds r4, 0x1
+ cmp r4, 0x1
+ ble _0811D702
+ adds r7, 0x10
+ b _0811D6FC
+_0811D742:
+ bl sub_811BBBC
+ lsls r0, 24
+ lsrs r0, 24
+ movs r1, 0
+ bl sub_811DDAC
+ add sp, 0xC
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_811D6F4
+
+ thumb_func_start sub_811D758
+sub_811D758: @ 811D758
+ push {r4-r6,lr}
+ sub sp, 0xC
+ movs r5, 0
+ movs r4, 0xC2
+ lsls r4, 23
+ ldr r6, =gUnknown_08597C90
+_0811D764:
+ ldm r6!, {r2}
+ lsrs r0, r4, 24
+ str r0, [sp]
+ movs r0, 0xFF
+ str r0, [sp, 0x4]
+ movs r0, 0
+ str r0, [sp, 0x8]
+ movs r0, 0x2
+ movs r1, 0x1
+ movs r3, 0xA
+ bl sub_811D028
+ movs r0, 0x80
+ lsls r0, 21
+ adds r4, r0
+ adds r5, 0x1
+ cmp r5, 0x3
+ bls _0811D764
+ add sp, 0xC
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_811D758
+
+ thumb_func_start sub_811D794
+sub_811D794: @ 811D794
+ push {lr}
+ movs r0, 0
+ movs r1, 0x4
+ bl sub_811D864
+ pop {r0}
+ bx r0
+ thumb_func_end sub_811D794
+
+ thumb_func_start sub_811D7A4
+sub_811D7A4: @ 811D7A4
+ push {r4,lr}
+ bl sub_811BBDC
+ adds r4, r0, 0
+ adds r4, 0x3
+ lsls r4, 24
+ lsrs r4, 24
+ adds r0, r4, 0
+ movs r1, 0x1
+ bl sub_811D950
+ adds r0, r4, 0
+ movs r1, 0x1
+ bl sub_811D864
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_811D7A4
+
+ thumb_func_start sub_811D7C8
+sub_811D7C8: @ 811D7C8
+ push {r4,lr}
+ bl sub_811BBDC
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ adds r0, r4, 0
+ movs r1, 0x1
+ bl sub_811D950
+ adds r0, r4, 0
+ movs r1, 0x1
+ bl sub_811D864
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_811D7C8
+
+ thumb_func_start sub_811D7EC
+sub_811D7EC: @ 811D7EC
+ push {r4,r5,lr}
+ bl sub_811BBDC
+ lsls r0, 24
+ lsrs r0, 24
+ adds r5, r0, 0
+ adds r0, r5, 0x4
+ lsls r0, 24
+ lsrs r4, r0, 24
+ bl sub_811BBE8
+ adds r0, 0x1
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r4, r0
+ bls _0811D80E
+ adds r4, r0, 0
+_0811D80E:
+ cmp r5, r4
+ bcs _0811D828
+ subs r4, r5
+ lsls r4, 24
+ lsrs r4, 24
+ adds r0, r5, 0
+ adds r1, r4, 0
+ bl sub_811D950
+ adds r0, r5, 0
+ adds r1, r4, 0
+ bl sub_811D864
+_0811D828:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_811D7EC
+
+ thumb_func_start sub_811D830
+sub_811D830: @ 811D830
+ push {r4,r5,lr}
+ bl sub_811BBDC
+ lsls r0, 24
+ lsrs r5, r0, 24
+ bl sub_811DE48
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r5, r0
+ bcs _0811D85C
+ subs r4, r0, r5
+ lsls r4, 24
+ lsrs r4, 24
+ adds r0, r5, 0
+ adds r1, r4, 0
+ bl sub_811D950
+ adds r0, r5, 0
+ adds r1, r4, 0
+ bl sub_811D864
+_0811D85C:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_811D830
+
+ thumb_func_start sub_811D864
+sub_811D864: @ 811D864
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x18
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, 24
+ lsrs r1, 24
+ str r1, [sp, 0x14]
+ lsls r1, r0, 1
+ mov r8, r1
+ lsls r0, 4
+ adds r1, r0, 0
+ adds r1, 0x60
+ movs r0, 0xFF
+ ands r1, r0
+ adds r1, 0x1
+ movs r0, 0
+ b _0811D930
+_0811D88E:
+ movs r6, 0
+ movs r2, 0x10
+ adds r2, r1
+ mov r9, r2
+ adds r0, 0x1
+ mov r10, r0
+ lsls r0, r1, 24
+ lsrs r7, r0, 24
+_0811D89E:
+ mov r1, r8
+ lsls r0, r1, 16
+ lsrs r0, 16
+ movs r2, 0x1
+ add r8, r2
+ bl sub_811F578
+ lsls r0, 16
+ lsrs r4, r0, 16
+ ldr r0, =0x0000ffff
+ cmp r4, r0
+ beq _0811D926
+ ldr r5, =0x0203a11c
+ ldr r0, [r5]
+ adds r0, 0xCC
+ adds r1, r4, 0
+ movs r2, 0
+ bl CopyEasyChatWordPadded
+ adds r0, r4, 0
+ bl sub_811BF88
+ adds r1, r0, 0
+ cmp r1, 0
+ bne _0811D8FC
+ ldr r2, [r5]
+ adds r2, 0xCC
+ movs r0, 0xD
+ adds r3, r6, 0
+ muls r3, r0
+ adds r3, 0x3
+ lsls r3, 27
+ lsrs r3, 24
+ str r7, [sp]
+ movs r0, 0xFF
+ str r0, [sp, 0x4]
+ str r1, [sp, 0x8]
+ movs r0, 0x2
+ movs r1, 0x1
+ bl sub_811D028
+ b _0811D926
+ .pool
+_0811D8FC:
+ ldr r2, [r5]
+ adds r2, 0xCC
+ movs r0, 0xD
+ adds r3, r6, 0
+ muls r3, r0
+ adds r3, 0x3
+ lsls r3, 27
+ lsrs r3, 24
+ str r7, [sp]
+ movs r0, 0xFF
+ str r0, [sp, 0x4]
+ movs r0, 0x1
+ str r0, [sp, 0x8]
+ movs r0, 0x5
+ str r0, [sp, 0xC]
+ movs r0, 0x3
+ str r0, [sp, 0x10]
+ movs r0, 0x2
+ movs r1, 0x1
+ bl sub_811D058
+_0811D926:
+ adds r6, 0x1
+ cmp r6, 0x1
+ ble _0811D89E
+ mov r1, r9
+ mov r0, r10
+_0811D930:
+ ldr r2, [sp, 0x14]
+ cmp r0, r2
+ blt _0811D88E
+ movs r0, 0x2
+ movs r1, 0x2
+ bl CopyWindowToVram
+ 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_811D864
+
+ thumb_func_start sub_811D950
+sub_811D950: @ 811D950
+ push {r4,r5,lr}
+ sub sp, 0x8
+ lsls r0, 24
+ lsls r1, 24
+ lsrs r0, 20
+ adds r3, r0, 0
+ adds r3, 0x60
+ movs r0, 0xFF
+ ands r3, r0
+ lsrs r0, r1, 20
+ adds r1, r3, r0
+ cmp r1, 0xFF
+ ble _0811D97C
+ ldr r0, =0xffffff00
+ adds r4, r1, r0
+ movs r0, 0x80
+ lsls r0, 1
+ subs r0, r3
+ b _0811D97E
+ .pool
+_0811D97C:
+ movs r4, 0
+_0811D97E:
+ movs r5, 0xE0
+ str r5, [sp]
+ lsls r0, 16
+ lsrs r0, 16
+ str r0, [sp, 0x4]
+ movs r0, 0x2
+ movs r1, 0x11
+ movs r2, 0
+ bl FillWindowPixelRect
+ cmp r4, 0
+ beq _0811D9AA
+ str r5, [sp]
+ lsls r0, r4, 16
+ lsrs r0, 16
+ str r0, [sp, 0x4]
+ movs r0, 0x2
+ movs r1, 0x11
+ movs r2, 0
+ movs r3, 0
+ bl FillWindowPixelRect
+_0811D9AA:
+ add sp, 0x8
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_811D950
+
+ thumb_func_start sub_811D9B4
+sub_811D9B4: @ 811D9B4
+ push {lr}
+ movs r0, 0x2
+ movs r1, 0x11
+ bl FillWindowPixelBuffer
+ movs r0, 0x2
+ movs r1, 0x2
+ bl CopyWindowToVram
+ pop {r0}
+ bx r0
+ thumb_func_end sub_811D9B4
+
+ thumb_func_start sub_811D9CC
+sub_811D9CC: @ 811D9CC
+ push {lr}
+ ldr r1, =0x0203a11c
+ cmp r0, 0x6
+ bhi _0811DA86
+ lsls r0, 2
+ ldr r1, =_0811D9E8
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .pool
+ .align 2, 0
+_0811D9E8:
+ .4byte _0811DA04
+ .4byte _0811DA18
+ .4byte _0811DA28
+ .4byte _0811DA3C
+ .4byte _0811DA50
+ .4byte _0811DA64
+ .4byte _0811DA78
+_0811DA04:
+ ldr r1, =0x0203a11c
+ ldr r2, [r1]
+ movs r0, 0
+ strb r0, [r2, 0x6]
+ ldr r2, [r1]
+ movs r0, 0xA
+ b _0811DA84
+ .pool
+_0811DA18:
+ ldr r1, =0x0203a11c
+ ldr r2, [r1]
+ movs r3, 0
+ movs r0, 0x9
+ b _0811DA44
+ .pool
+_0811DA28:
+ ldr r1, =0x0203a11c
+ ldr r2, [r1]
+ movs r0, 0xB
+ strb r0, [r2, 0x6]
+ ldr r2, [r1]
+ movs r0, 0x11
+ b _0811DA84
+ .pool
+_0811DA3C:
+ ldr r1, =0x0203a11c
+ ldr r2, [r1]
+ movs r3, 0
+ movs r0, 0x11
+_0811DA44:
+ strb r0, [r2, 0x6]
+ ldr r0, [r1]
+ strb r3, [r0, 0x7]
+ b _0811DA86
+ .pool
+_0811DA50:
+ ldr r1, =0x0203a11c
+ ldr r2, [r1]
+ movs r0, 0x11
+ strb r0, [r2, 0x6]
+ ldr r2, [r1]
+ movs r0, 0xA
+ b _0811DA84
+ .pool
+_0811DA64:
+ ldr r1, =0x0203a11c
+ ldr r2, [r1]
+ movs r0, 0x12
+ strb r0, [r2, 0x6]
+ ldr r2, [r1]
+ movs r0, 0x16
+ b _0811DA84
+ .pool
+_0811DA78:
+ ldr r1, =0x0203a11c
+ ldr r2, [r1]
+ movs r0, 0x16
+ strb r0, [r2, 0x6]
+ ldr r2, [r1]
+ movs r0, 0x12
+_0811DA84:
+ strb r0, [r2, 0x7]
+_0811DA86:
+ ldr r1, [r1]
+ ldrb r0, [r1, 0x6]
+ movs r3, 0x1
+ negs r3, r3
+ adds r2, r3, 0
+ ldrb r3, [r1, 0x7]
+ cmp r0, r3
+ bcs _0811DA98
+ movs r2, 0x1
+_0811DA98:
+ strb r2, [r1, 0x8]
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_811D9CC
+
+ thumb_func_start sub_811DAA4
+sub_811DAA4: @ 811DAA4
+ push {r4,lr}
+ ldr r4, =0x0203a11c
+ ldr r1, [r4]
+ ldrb r2, [r1, 0x6]
+ ldrb r0, [r1, 0x7]
+ cmp r2, r0
+ beq _0811DAD4
+ ldrb r0, [r1, 0x8]
+ adds r0, r2, r0
+ strb r0, [r1, 0x6]
+ ldr r0, [r4]
+ ldrb r0, [r0, 0x6]
+ bl sub_811DADC
+ ldr r0, [r4]
+ ldrb r1, [r0, 0x6]
+ ldrb r0, [r0, 0x7]
+ eors r1, r0
+ negs r0, r1
+ orrs r0, r1
+ lsrs r0, 31
+ b _0811DAD6
+ .pool
+_0811DAD4:
+ movs r0, 0
+_0811DAD6:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_811DAA4
+
+ thumb_func_start sub_811DADC
+sub_811DADC: @ 811DADC
+ push {r4,lr}
+ sub sp, 0x8
+ lsls r0, 24
+ lsrs r4, r0, 24
+ movs r0, 0x1E
+ str r0, [sp]
+ movs r0, 0xA
+ str r0, [sp, 0x4]
+ movs r0, 0x1
+ movs r1, 0
+ movs r2, 0
+ movs r3, 0xA
+ bl FillBgTilemapBufferRect_Palette0
+ cmp r4, 0x16
+ bls _0811DAFE
+ b _0811DC1A
+_0811DAFE:
+ lsls r0, r4, 2
+ ldr r1, =_0811DB0C
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .pool
+ .align 2, 0
+_0811DB0C:
+ .4byte _0811DC1A
+ .4byte _0811DB68
+ .4byte _0811DB70
+ .4byte _0811DB78
+ .4byte _0811DB80
+ .4byte _0811DB88
+ .4byte _0811DB90
+ .4byte _0811DC00
+ .4byte _0811DBF2
+ .4byte _0811DBE4
+ .4byte _0811DBD6
+ .4byte _0811DB9E
+ .4byte _0811DBA6
+ .4byte _0811DBAE
+ .4byte _0811DBB6
+ .4byte _0811DBBE
+ .4byte _0811DBC6
+ .4byte _0811DBCE
+ .4byte _0811DBD6
+ .4byte _0811DBE4
+ .4byte _0811DBF2
+ .4byte _0811DC00
+ .4byte _0811DC0E
+_0811DB68:
+ movs r0, 0xB
+ movs r1, 0xE
+ movs r2, 0x3
+ b _0811DB96
+_0811DB70:
+ movs r0, 0x9
+ movs r1, 0xE
+ movs r2, 0x7
+ b _0811DB96
+_0811DB78:
+ movs r0, 0x7
+ movs r1, 0xE
+ movs r2, 0xB
+ b _0811DB96
+_0811DB80:
+ movs r0, 0x5
+ movs r1, 0xE
+ movs r2, 0xF
+ b _0811DB96
+_0811DB88:
+ movs r0, 0x3
+ movs r1, 0xE
+ movs r2, 0x13
+ b _0811DB96
+_0811DB90:
+ movs r0, 0x1
+ movs r1, 0xE
+ movs r2, 0x17
+_0811DB96:
+ movs r3, 0x2
+ bl sub_811DC28
+ b _0811DC1A
+_0811DB9E:
+ movs r0, 0x1
+ movs r1, 0xA
+ movs r2, 0x18
+ b _0811DBDC
+_0811DBA6:
+ movs r0, 0x1
+ movs r1, 0xA
+ movs r2, 0x19
+ b _0811DBDC
+_0811DBAE:
+ movs r0, 0x1
+ movs r1, 0xA
+ movs r2, 0x1A
+ b _0811DBDC
+_0811DBB6:
+ movs r0, 0x1
+ movs r1, 0xA
+ movs r2, 0x1B
+ b _0811DBDC
+_0811DBBE:
+ movs r0, 0x1
+ movs r1, 0xA
+ movs r2, 0x1C
+ b _0811DBDC
+_0811DBC6:
+ movs r0, 0x1
+ movs r1, 0xA
+ movs r2, 0x1D
+ b _0811DBDC
+_0811DBCE:
+ movs r0, 0
+ movs r1, 0xA
+ movs r2, 0x1E
+ b _0811DBDC
+_0811DBD6:
+ movs r0, 0x1
+ movs r1, 0xA
+ movs r2, 0x17
+_0811DBDC:
+ movs r3, 0xA
+ bl sub_811DC28
+ b _0811DC1A
+_0811DBE4:
+ movs r0, 0x1
+ movs r1, 0xB
+ movs r2, 0x17
+ movs r3, 0x8
+ bl sub_811DC28
+ b _0811DC1A
+_0811DBF2:
+ movs r0, 0x1
+ movs r1, 0xC
+ movs r2, 0x17
+ movs r3, 0x6
+ bl sub_811DC28
+ b _0811DC1A
+_0811DC00:
+ movs r0, 0x1
+ movs r1, 0xD
+ movs r2, 0x17
+ movs r3, 0x4
+ bl sub_811DC28
+ b _0811DC1A
+_0811DC0E:
+ movs r0, 0x1
+ movs r1, 0xE
+ movs r2, 0x17
+ movs r3, 0x2
+ bl sub_811DC28
+_0811DC1A:
+ movs r0, 0x1
+ bl CopyBgTilemapBufferToVram
+ add sp, 0x8
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_811DADC
+
+ thumb_func_start sub_811DC28
+sub_811DC28: @ 811DC28
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x8
+ mov r12, r0
+ adds r7, r1, 0
+ mov r9, r2
+ mov r10, r3
+ ldr r0, =0x0203a11c
+ ldr r0, [r0]
+ movs r1, 0xC0
+ lsls r1, 2
+ adds r6, r0, r1
+ mov r0, r12
+ add r0, r9
+ subs r5, r0, 0x1
+ adds r0, r7, r3
+ subs r0, 0x1
+ mov r8, r0
+ mov r2, r12
+ adds r3, r7, 0
+ lsls r0, r3, 5
+ adds r0, r2
+ lsls r0, 1
+ adds r0, r6
+ ldr r4, =0x00004001
+ adds r1, r4, 0
+ strh r1, [r0]
+ adds r2, 0x1
+ cmp r2, r5
+ bge _0811DC84
+ ldr r0, =0x00004002
+ adds r4, r0, 0
+ lsls r1, r2, 1
+ lsls r0, r3, 6
+ adds r0, r6
+ adds r1, r0
+ subs r2, r5, r2
+_0811DC78:
+ strh r4, [r1]
+ adds r1, 0x2
+ subs r2, 0x1
+ cmp r2, 0
+ bne _0811DC78
+ adds r2, r5, 0
+_0811DC84:
+ lsls r0, r3, 5
+ adds r0, r2
+ lsls r0, 1
+ adds r0, r6
+ ldr r2, =0x00004003
+ adds r1, r2, 0
+ strh r1, [r0]
+ adds r3, 0x1
+ mov r4, r12
+ adds r4, 0x1
+ adds r0, r7, 0x1
+ str r0, [sp, 0x4]
+ mov r1, r9
+ subs r1, 0x2
+ str r1, [sp]
+ movs r2, 0x2
+ negs r2, r2
+ add r10, r2
+ cmp r3, r8
+ bge _0811DCF4
+ lsls r7, r4, 1
+ mov r9, r7
+_0811DCB0:
+ lsls r0, r3, 5
+ add r0, r12
+ lsls r0, 1
+ adds r0, r6
+ ldr r2, =0x00004005
+ adds r1, r2, 0
+ strh r1, [r0]
+ adds r2, r4, 0
+ adds r7, r3, 0x1
+ cmp r4, r5
+ bge _0811DCE0
+ movs r0, 0x80
+ lsls r0, 7
+ adds r1, r0, 0
+ lsls r0, r3, 6
+ adds r0, r6
+ add r0, r9
+ subs r2, r5, r4
+_0811DCD4:
+ strh r1, [r0]
+ adds r0, 0x2
+ subs r2, 0x1
+ cmp r2, 0
+ bne _0811DCD4
+ adds r2, r5, 0
+_0811DCE0:
+ lsls r0, r3, 5
+ adds r0, r2
+ lsls r0, 1
+ adds r0, r6
+ ldr r2, =0x00004007
+ adds r1, r2, 0
+ strh r1, [r0]
+ adds r3, r7, 0
+ cmp r3, r8
+ blt _0811DCB0
+_0811DCF4:
+ lsls r0, r3, 5
+ mov r7, r12
+ adds r1, r0, r7
+ lsls r1, 1
+ adds r1, r6
+ ldr r7, =0x00004009
+ adds r2, r7, 0
+ strh r2, [r1]
+ adds r2, r4, 0
+ mov r12, r0
+ cmp r4, r5
+ bge _0811DD26
+ ldr r0, =0x0000400a
+ adds r7, r0, 0
+ lsls r1, r4, 1
+ lsls r0, r3, 6
+ adds r0, r6
+ adds r0, r1, r0
+ subs r2, r5, r4
+_0811DD1A:
+ strh r7, [r0]
+ adds r0, 0x2
+ subs r2, 0x1
+ cmp r2, 0
+ bne _0811DD1A
+ adds r2, r5, 0
+_0811DD26:
+ mov r1, r12
+ adds r0, r1, r2
+ lsls r0, 1
+ adds r0, r6
+ ldr r2, =0x0000400b
+ adds r1, r2, 0
+ strh r1, [r0]
+ lsls r0, r4, 27
+ lsrs r0, 24
+ ldr r3, [sp, 0x4]
+ lsls r1, r3, 27
+ lsrs r1, 24
+ ldr r4, [sp]
+ lsls r2, r4, 27
+ lsrs r2, 24
+ mov r7, r10
+ lsls r3, r7, 27
+ lsrs r3, 24
+ bl sub_811DE5C
+ add sp, 0x8
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_811DC28
+
+ thumb_func_start sub_811DD84
+sub_811DD84: @ 811DD84
+ push {lr}
+ movs r1, 0x80
+ lsls r1, 4
+ movs r0, 0x2
+ movs r2, 0
+ bl ChangeBgY
+ ldr r0, =0x0203a11c
+ ldr r0, [r0]
+ ldr r1, =0x000002ce
+ adds r0, r1
+ movs r1, 0
+ strh r1, [r0]
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_811DD84
+
+ thumb_func_start sub_811DDAC
+sub_811DDAC: @ 811DDAC
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ lsls r4, 16
+ lsrs r4, 16
+ lsls r1, 24
+ lsrs r5, r1, 24
+ movs r0, 0x2
+ bl GetBgY
+ adds r2, r0, 0
+ ldr r0, =0x0203a11c
+ ldr r3, [r0]
+ ldr r0, =0x000002ce
+ adds r1, r3, r0
+ ldrh r0, [r1]
+ adds r0, r4
+ strh r0, [r1]
+ lsls r4, 20
+ asrs r4, 16
+ lsls r0, r4, 8
+ adds r2, r0
+ cmp r5, 0
+ beq _0811DE00
+ movs r1, 0xB4
+ lsls r1, 2
+ adds r0, r3, r1
+ str r2, [r0]
+ movs r0, 0xB5
+ lsls r0, 2
+ adds r1, r3, r0
+ lsls r0, r5, 8
+ str r0, [r1]
+ cmp r4, 0
+ bge _0811DE0A
+ negs r0, r0
+ str r0, [r1]
+ b _0811DE0A
+ .pool
+_0811DE00:
+ movs r0, 0x2
+ adds r1, r2, 0
+ movs r2, 0
+ bl ChangeBgY
+_0811DE0A:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_811DDAC
+
+ thumb_func_start sub_811DE10
+sub_811DE10: @ 811DE10
+ push {lr}
+ movs r0, 0x2
+ bl GetBgY
+ ldr r1, =0x0203a11c
+ ldr r2, [r1]
+ movs r3, 0xB4
+ lsls r3, 2
+ adds r1, r2, r3
+ ldr r1, [r1]
+ cmp r0, r1
+ beq _0811DE40
+ movs r1, 0xB5
+ lsls r1, 2
+ adds r0, r2, r1
+ ldr r1, [r0]
+ movs r0, 0x2
+ movs r2, 0x1
+ bl ChangeBgY
+ movs r0, 0x1
+ b _0811DE42
+ .pool
+_0811DE40:
+ movs r0, 0
+_0811DE42:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_811DE10
+
+ thumb_func_start sub_811DE48
+sub_811DE48: @ 811DE48
+ ldr r0, =0x0203a11c
+ ldr r0, [r0]
+ ldr r1, =0x000002ce
+ adds r0, r1
+ ldrh r0, [r0]
+ bx lr
+ .pool
+ thumb_func_end sub_811DE48
+
+ thumb_func_start sub_811DE5C
+sub_811DE5C: @ 811DE5C
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, 24
+ lsrs r1, 24
+ lsls r2, 24
+ lsrs r2, 24
+ lsls r3, 24
+ lsrs r3, 24
+ lsls r4, r0, 8
+ adds r0, r2
+ orrs r4, r0
+ lsls r5, r1, 8
+ adds r1, r3
+ orrs r5, r1
+ movs r0, 0x40
+ adds r1, r4, 0
+ bl SetGpuReg
+ movs r0, 0x44
+ adds r1, r5, 0
+ bl SetGpuReg
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_811DE5C
+
+ thumb_func_start sub_811DE90
+sub_811DE90: @ 811DE90
+ push {r4,r5,lr}
+ ldr r0, =gUnknown_08597CA0
+ bl LoadObjectPics
+ ldr r0, =gUnknown_08597CC0
+ bl LoadTaggedObjectPalettes
+ movs r5, 0
+ ldr r4, =gUnknown_08597CE8
+_0811DEA2:
+ adds r0, r4, 0
+ bl LoadCompressedObjectPic
+ adds r4, 0x8
+ adds r5, 0x1
+ cmp r5, 0x3
+ bls _0811DEA2
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_811DE90
+
+ thumb_func_start sub_811DEC4
+sub_811DEC4: @ 811DEC4
+ push {lr}
+ bl sub_811BA68
+ lsls r0, 24
+ ldr r1, =gUnknown_08597C30
+ lsrs r0, 22
+ adds r0, r1
+ ldrb r2, [r0]
+ lsls r1, r2, 27
+ lsrs r1, 8
+ lsrs r2, 5
+ lsls r2, 19
+ ldr r0, =gUnknown_08597D18
+ movs r3, 0xD0
+ lsls r3, 12
+ adds r1, r3
+ asrs r1, 16
+ movs r3, 0x80
+ lsls r3, 12
+ adds r2, r3
+ asrs r2, 16
+ movs r3, 0x2
+ bl AddObjectToFront
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r1, =0x0203a11c
+ ldr r2, [r1]
+ movs r1, 0xB6
+ lsls r1, 2
+ adds r2, r1
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ ldr r0, =0x02020630
+ adds r1, r0
+ str r1, [r2]
+ movs r0, 0x1
+ strh r0, [r1, 0x30]
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_811DEC4
+
+ thumb_func_start sub_811DF28
+sub_811DF28: @ 811DF28
+ push {lr}
+ adds r1, r0, 0
+ movs r2, 0x30
+ ldrsh r0, [r1, r2]
+ cmp r0, 0
+ beq _0811DF56
+ ldrh r0, [r1, 0x2E]
+ adds r0, 0x1
+ strh r0, [r1, 0x2E]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x2
+ ble _0811DF56
+ movs r0, 0
+ strh r0, [r1, 0x2E]
+ ldrh r0, [r1, 0x24]
+ adds r0, 0x1
+ strh r0, [r1, 0x24]
+ lsls r0, 16
+ cmp r0, 0
+ ble _0811DF56
+ ldr r0, =0x0000fffa
+ strh r0, [r1, 0x24]
+_0811DF56:
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_811DF28
+
+ thumb_func_start sub_811DF60
+sub_811DF60: @ 811DF60
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, 24
+ lsrs r1, 24
+ ldr r2, =0x0203a11c
+ ldr r2, [r2]
+ movs r3, 0xB6
+ lsls r3, 2
+ adds r2, r3
+ ldr r3, [r2]
+ movs r4, 0
+ strh r0, [r3, 0x20]
+ ldr r0, [r2]
+ strh r1, [r0, 0x22]
+ ldr r0, [r2]
+ strh r4, [r0, 0x24]
+ ldr r0, [r2]
+ strh r4, [r0, 0x2E]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_811DF60
+
+ thumb_func_start sub_811DF90
+sub_811DF90: @ 811DF90
+ ldr r0, =0x0203a11c
+ ldr r1, [r0]
+ movs r0, 0xB6
+ lsls r0, 2
+ adds r1, r0
+ ldr r0, [r1]
+ movs r2, 0
+ strh r2, [r0, 0x2E]
+ ldr r0, [r1]
+ strh r2, [r0, 0x30]
+ ldr r0, [r1]
+ strh r2, [r0, 0x24]
+ bx lr
+ .pool
+ thumb_func_end sub_811DF90
+
+ thumb_func_start sub_811DFB0
+sub_811DFB0: @ 811DFB0
+ ldr r0, =0x0203a11c
+ ldr r0, [r0]
+ movs r1, 0xB6
+ lsls r1, 2
+ adds r0, r1
+ ldr r1, [r0]
+ movs r0, 0x1
+ strh r0, [r1, 0x30]
+ bx lr
+ .pool
+ thumb_func_end sub_811DFB0
+
+ thumb_func_start sub_811DFC8
+sub_811DFC8: @ 811DFC8
+ push {r4-r6,lr}
+ mov r6, r8
+ push {r6}
+ ldr r6, =gUnknown_08597D68
+ adds r0, r6, 0
+ movs r1, 0
+ movs r2, 0
+ movs r3, 0x3
+ bl AddObjectToFront
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r5, =0x0203a11c
+ ldr r2, [r5]
+ movs r1, 0xB7
+ lsls r1, 2
+ mov r8, r1
+ add r2, r8
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ ldr r4, =0x02020630
+ adds r1, r4
+ str r1, [r2]
+ movs r0, 0x20
+ strh r0, [r1, 0x24]
+ adds r0, r6, 0
+ movs r1, 0
+ movs r2, 0
+ movs r3, 0x3
+ bl AddObjectToFront
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, [r5]
+ movs r1, 0xB8
+ lsls r1, 2
+ adds r3, r2, r1
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r4
+ str r1, [r3]
+ ldr r0, =0x0000ffe0
+ strh r0, [r1, 0x24]
+ add r2, r8
+ ldr r1, [r2]
+ adds r1, 0x3F
+ ldrb r0, [r1]
+ movs r2, 0x1
+ orrs r0, r2
+ strb r0, [r1]
+ bl sub_811E088
+ pop {r3}
+ mov r8, r3
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_811DFC8
+
+ thumb_func_start sub_811E050
+sub_811E050: @ 811E050
+ push {r4-r6,lr}
+ ldr r5, =0x0203a11c
+ ldr r0, [r5]
+ movs r4, 0xB7
+ lsls r4, 2
+ adds r0, r4
+ ldr r0, [r0]
+ bl RemoveObjectAndFreeTiles
+ ldr r0, [r5]
+ adds r4, r0, r4
+ movs r6, 0
+ str r6, [r4]
+ movs r4, 0xB8
+ lsls r4, 2
+ adds r0, r4
+ ldr r0, [r0]
+ bl RemoveObjectAndFreeTiles
+ ldr r0, [r5]
+ adds r0, r4
+ str r6, [r0]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_811E050
+
+ thumb_func_start sub_811E088
+sub_811E088: @ 811E088
+ push {r4,lr}
+ sub sp, 0x4
+ ldr r0, =0x0203a11c
+ ldr r1, [r0]
+ movs r2, 0xB7
+ lsls r2, 2
+ adds r0, r1, r2
+ ldr r0, [r0]
+ cmp r0, 0
+ beq _0811E0E4
+ adds r2, 0x4
+ adds r0, r1, r2
+ ldr r0, [r0]
+ cmp r0, 0
+ beq _0811E0E4
+ mov r4, sp
+ adds r4, 0x1
+ mov r0, sp
+ adds r1, r4, 0
+ bl sub_811BB9C
+ bl sub_811BBB0
+ lsls r0, 24
+ cmp r0, 0
+ bne _0811E0D4
+ mov r0, sp
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ movs r1, 0
+ ldrsb r1, [r4, r1]
+ bl sub_811E0EC
+ b _0811E0E4
+ .pool
+_0811E0D4:
+ mov r0, sp
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ movs r1, 0
+ ldrsb r1, [r4, r1]
+ bl sub_811E1A4
+_0811E0E4:
+ add sp, 0x4
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_811E088
+
+ thumb_func_start sub_811E0EC
+sub_811E0EC: @ 811E0EC
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ lsls r1, 24
+ lsrs r7, r1, 24
+ lsls r0, 24
+ asrs r5, r0, 24
+ movs r0, 0x1
+ negs r0, r0
+ cmp r5, r0
+ beq _0811E150
+ ldr r0, =0x0203a11c
+ mov r8, r0
+ ldr r0, [r0]
+ movs r4, 0xB7
+ lsls r4, 2
+ adds r0, r4
+ ldr r0, [r0]
+ movs r1, 0
+ bl StartObjectImageAnim
+ mov r2, r8
+ ldr r1, [r2]
+ adds r4, r1, r4
+ ldr r2, [r4]
+ movs r0, 0x54
+ muls r5, r0
+ adds r5, 0x3A
+ strh r5, [r2, 0x20]
+ ldr r0, [r4]
+ lsls r4, r7, 24
+ asrs r4, 20
+ adds r4, 0x60
+ strh r4, [r0, 0x22]
+ movs r6, 0xB8
+ lsls r6, 2
+ adds r1, r6
+ ldr r0, [r1]
+ movs r1, 0
+ bl StartObjectImageAnim
+ mov r1, r8
+ ldr r0, [r1]
+ adds r0, r6
+ ldr r1, [r0]
+ strh r5, [r1, 0x20]
+ b _0811E192
+ .pool
+_0811E150:
+ ldr r6, =0x0203a11c
+ ldr r0, [r6]
+ movs r4, 0xB7
+ lsls r4, 2
+ adds r0, r4
+ ldr r0, [r0]
+ movs r1, 0x1
+ bl StartObjectImageAnim
+ ldr r1, [r6]
+ adds r4, r1, r4
+ ldr r0, [r4]
+ movs r2, 0xD8
+ mov r8, r2
+ mov r2, r8
+ strh r2, [r0, 0x20]
+ ldr r0, [r4]
+ lsls r4, r7, 24
+ asrs r4, 20
+ adds r4, 0x70
+ strh r4, [r0, 0x22]
+ movs r5, 0xB8
+ lsls r5, 2
+ adds r1, r5
+ ldr r0, [r1]
+ movs r1, 0x1
+ bl StartObjectImageAnim
+ ldr r0, [r6]
+ adds r0, r5
+ ldr r1, [r0]
+ mov r2, r8
+ strh r2, [r1, 0x20]
+_0811E192:
+ ldr r0, [r0]
+ strh r4, [r0, 0x22]
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_811E0EC
+
+ thumb_func_start sub_811E1A4
+sub_811E1A4: @ 811E1A4
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ lsls r0, 24
+ lsls r1, 24
+ lsrs r5, r1, 24
+ lsrs r4, r0, 24
+ asrs r2, r0, 24
+ movs r0, 0x1
+ negs r0, r0
+ cmp r2, r0
+ beq _0811E234
+ lsls r0, r5, 24
+ asrs r1, r0, 24
+ lsls r0, r1, 4
+ adds r0, 0x60
+ mov r8, r0
+ movs r7, 0x20
+ cmp r2, 0x6
+ bne _0811E1D6
+ cmp r1, 0
+ bne _0811E1D6
+ movs r7, 0x9E
+ movs r6, 0x2
+ b _0811E1EC
+_0811E1D6:
+ ldr r3, =gUnknown_08597D08
+ lsls r1, r4, 24
+ lsrs r0, r1, 24
+ movs r2, 0
+ cmp r0, 0x6
+ bhi _0811E1E4
+ asrs r2, r1, 24
+_0811E1E4:
+ adds r0, r2, r3
+ ldrb r0, [r0]
+ adds r7, r0
+ movs r6, 0x3
+_0811E1EC:
+ ldr r5, =0x0203a11c
+ ldr r0, [r5]
+ movs r4, 0xB7
+ lsls r4, 2
+ adds r0, r4
+ ldr r0, [r0]
+ adds r1, r6, 0
+ bl StartObjectImageAnim
+ ldr r1, [r5]
+ adds r4, r1, r4
+ ldr r0, [r4]
+ strh r7, [r0, 0x20]
+ ldr r0, [r4]
+ mov r2, r8
+ strh r2, [r0, 0x22]
+ movs r4, 0xB8
+ lsls r4, 2
+ adds r1, r4
+ ldr r0, [r1]
+ adds r1, r6, 0
+ bl StartObjectImageAnim
+ ldr r0, [r5]
+ adds r0, r4
+ ldr r1, [r0]
+ strh r7, [r1, 0x20]
+ ldr r0, [r0]
+ mov r1, r8
+ strh r1, [r0, 0x22]
+ b _0811E27A
+ .pool
+_0811E234:
+ ldr r6, =0x0203a11c
+ ldr r0, [r6]
+ movs r4, 0xB7
+ lsls r4, 2
+ adds r0, r4
+ ldr r0, [r0]
+ movs r1, 0x1
+ bl StartObjectImageAnim
+ ldr r1, [r6]
+ adds r4, r1, r4
+ ldr r0, [r4]
+ movs r2, 0xD8
+ mov r8, r2
+ mov r2, r8
+ strh r2, [r0, 0x20]
+ ldr r0, [r4]
+ lsls r4, r5, 24
+ asrs r4, 20
+ adds r4, 0x70
+ strh r4, [r0, 0x22]
+ movs r5, 0xB8
+ lsls r5, 2
+ adds r1, r5
+ ldr r0, [r1]
+ movs r1, 0x1
+ bl StartObjectImageAnim
+ ldr r0, [r6]
+ adds r0, r5
+ ldr r1, [r0]
+ mov r2, r8
+ strh r2, [r1, 0x20]
+ ldr r0, [r0]
+ strh r4, [r0, 0x22]
+_0811E27A:
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_811E1A4
+
+ thumb_func_start sub_811E288
+sub_811E288: @ 811E288
+ push {lr}
+ ldr r0, =gUnknown_08597D18
+ movs r1, 0
+ movs r2, 0
+ movs r3, 0x4
+ bl AddObjectToFront
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r1, =0x0203a11c
+ ldr r2, [r1]
+ movs r1, 0xB9
+ lsls r1, 2
+ adds r2, r1
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ ldr r0, =0x02020630
+ adds r1, r0
+ str r1, [r2]
+ ldr r0, =sub_811E2DC
+ str r0, [r1, 0x1C]
+ ldrb r2, [r1, 0x5]
+ movs r0, 0xD
+ negs r0, r0
+ ands r0, r2
+ movs r2, 0x8
+ orrs r0, r2
+ strb r0, [r1, 0x5]
+ bl sub_811E30C
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_811E288
+
+ thumb_func_start sub_811E2DC
+sub_811E2DC: @ 811E2DC
+ push {lr}
+ adds r1, r0, 0
+ ldrh r0, [r1, 0x2E]
+ adds r0, 0x1
+ strh r0, [r1, 0x2E]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x2
+ ble _0811E302
+ movs r0, 0
+ strh r0, [r1, 0x2E]
+ ldrh r0, [r1, 0x24]
+ adds r0, 0x1
+ strh r0, [r1, 0x24]
+ lsls r0, 16
+ cmp r0, 0
+ ble _0811E302
+ ldr r0, =0x0000fffa
+ strh r0, [r1, 0x24]
+_0811E302:
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_811E2DC
+
+ thumb_func_start sub_811E30C
+sub_811E30C: @ 811E30C
+ push {r4,lr}
+ sub sp, 0x4
+ mov r4, sp
+ adds r4, 0x1
+ mov r0, sp
+ adds r1, r4, 0
+ bl sub_811BBC8
+ mov r0, sp
+ movs r1, 0
+ ldrsb r1, [r0, r1]
+ movs r0, 0xD
+ muls r0, r1
+ lsls r0, 27
+ movs r1, 0
+ ldrsb r1, [r4, r1]
+ lsls r1, 28
+ movs r2, 0xE0
+ lsls r2, 21
+ adds r0, r2
+ lsrs r0, 24
+ movs r2, 0xC0
+ lsls r2, 23
+ adds r1, r2
+ lsrs r1, 24
+ bl sub_811E34C
+ add sp, 0x4
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_811E30C
+
+ thumb_func_start sub_811E34C
+sub_811E34C: @ 811E34C
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r3, r0, 24
+ lsls r1, 24
+ lsrs r4, r1, 24
+ ldr r0, =0x0203a11c
+ ldr r0, [r0]
+ movs r1, 0xB9
+ lsls r1, 2
+ adds r2, r0, r1
+ ldr r0, [r2]
+ cmp r0, 0
+ beq _0811E376
+ movs r1, 0
+ strh r3, [r0, 0x20]
+ ldr r0, [r2]
+ strh r4, [r0, 0x22]
+ ldr r0, [r2]
+ strh r1, [r0, 0x24]
+ ldr r0, [r2]
+ strh r1, [r0, 0x2E]
+_0811E376:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_811E34C
+
+ thumb_func_start sub_811E380
+sub_811E380: @ 811E380
+ push {r4,lr}
+ ldr r4, =0x0203a11c
+ ldr r0, [r4]
+ movs r1, 0xB9
+ lsls r1, 2
+ adds r0, r1
+ ldr r0, [r0]
+ cmp r0, 0
+ beq _0811E3A2
+ bl RemoveObjectAndFreeTiles
+ ldr r0, [r4]
+ movs r1, 0xB9
+ lsls r1, 2
+ adds r0, r1
+ movs r1, 0
+ str r1, [r0]
+_0811E3A2:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_811E380
+
+ thumb_func_start sub_811E3AC
+sub_811E3AC: @ 811E3AC
+ push {r4-r6,lr}
+ ldr r0, =gUnknown_08597DF0
+ movs r1, 0xD0
+ movs r2, 0x80
+ movs r3, 0x6
+ bl AddObjectToFront
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r5, =0x0203a11c
+ ldr r2, [r5]
+ movs r1, 0xBA
+ lsls r1, 2
+ adds r2, r1
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ ldr r4, =0x02020630
+ adds r1, r4
+ str r1, [r2]
+ movs r6, 0
+ ldr r0, =0x0000ffc0
+ strh r0, [r1, 0x24]
+ ldr r0, =gUnknown_08597DD0
+ movs r1, 0xD0
+ movs r2, 0x50
+ movs r3, 0x5
+ bl AddObjectToFront
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, [r5]
+ movs r1, 0xBB
+ lsls r1, 2
+ adds r3, r2, r1
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r4
+ str r1, [r3]
+ strb r6, [r2, 0x9]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_811E3AC
+
+ thumb_func_start sub_811E418
+sub_811E418: @ 811E418
+ push {r4,lr}
+ ldr r4, =0x0203a11c
+ ldr r2, [r4]
+ ldrb r3, [r2, 0x9]
+ cmp r3, 0
+ beq _0811E430
+ cmp r3, 0x1
+ beq _0811E488
+ movs r0, 0
+ b _0811E4A6
+ .pool
+_0811E430:
+ movs r0, 0xBA
+ lsls r0, 2
+ adds r2, r0
+ ldr r1, [r2]
+ ldrh r0, [r1, 0x24]
+ adds r0, 0x8
+ strh r0, [r1, 0x24]
+ ldr r2, [r2]
+ movs r1, 0x24
+ ldrsh r0, [r2, r1]
+ cmp r0, 0
+ blt _0811E4A4
+ strh r3, [r2, 0x24]
+ bl sub_811BBB0
+ lsls r0, 24
+ cmp r0, 0
+ bne _0811E466
+ ldr r0, [r4]
+ movs r1, 0xBB
+ lsls r1, 2
+ adds r0, r1
+ ldr r0, [r0]
+ movs r1, 0x1
+ bl StartObjectImageAnim
+ b _0811E476
+_0811E466:
+ ldr r0, [r4]
+ movs r1, 0xBB
+ lsls r1, 2
+ adds r0, r1
+ ldr r0, [r0]
+ movs r1, 0x2
+ bl StartObjectImageAnim
+_0811E476:
+ ldr r0, =0x0203a11c
+ ldr r1, [r0]
+ ldrb r0, [r1, 0x9]
+ adds r0, 0x1
+ strb r0, [r1, 0x9]
+ b _0811E4A4
+ .pool
+_0811E488:
+ movs r1, 0xBB
+ lsls r1, 2
+ adds r0, r2, r1
+ ldr r0, [r0]
+ adds r0, 0x3F
+ ldrb r1, [r0]
+ movs r0, 0x10
+ ands r0, r1
+ cmp r0, 0
+ beq _0811E4A4
+ movs r0, 0x2
+ strb r0, [r2, 0x9]
+ movs r0, 0
+ b _0811E4A6
+_0811E4A4:
+ movs r0, 0x1
+_0811E4A6:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_811E418
+
+ thumb_func_start sub_811E4AC
+sub_811E4AC: @ 811E4AC
+ push {lr}
+ ldr r2, =0x0203a11c
+ ldr r1, [r2]
+ movs r0, 0
+ strb r0, [r1, 0x9]
+ ldr r0, [r2]
+ movs r1, 0xBB
+ lsls r1, 2
+ adds r0, r1
+ ldr r0, [r0]
+ movs r1, 0x3
+ bl StartObjectImageAnim
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_811E4AC
+
+ thumb_func_start sub_811E4D0
+sub_811E4D0: @ 811E4D0
+ push {r4-r6,lr}
+ ldr r5, =0x0203a11c
+ ldr r3, [r5]
+ ldrb r0, [r3, 0x9]
+ cmp r0, 0
+ beq _0811E4E8
+ cmp r0, 0x1
+ beq _0811E502
+ movs r0, 0
+ b _0811E554
+ .pool
+_0811E4E8:
+ movs r1, 0xBB
+ lsls r1, 2
+ adds r0, r3, r1
+ ldr r0, [r0]
+ adds r0, 0x3F
+ ldrb r1, [r0]
+ movs r0, 0x10
+ ands r0, r1
+ cmp r0, 0
+ beq _0811E552
+ movs r0, 0x1
+ strb r0, [r3, 0x9]
+ b _0811E552
+_0811E502:
+ movs r0, 0xBA
+ lsls r0, 2
+ adds r2, r3, r0
+ ldr r1, [r2]
+ ldrh r0, [r1, 0x24]
+ subs r0, 0x8
+ movs r6, 0
+ strh r0, [r1, 0x24]
+ ldr r0, [r2]
+ movs r2, 0x24
+ ldrsh r1, [r0, r2]
+ movs r0, 0x40
+ negs r0, r0
+ cmp r1, r0
+ bgt _0811E552
+ movs r4, 0xBB
+ lsls r4, 2
+ adds r0, r3, r4
+ ldr r0, [r0]
+ bl RemoveObjectAndFreeTiles
+ ldr r0, [r5]
+ movs r1, 0xBA
+ lsls r1, 2
+ adds r0, r1
+ ldr r0, [r0]
+ bl RemoveObjectAndFreeTiles
+ ldr r1, [r5]
+ adds r4, r1, r4
+ str r6, [r4]
+ movs r2, 0xBA
+ lsls r2, 2
+ adds r0, r1, r2
+ str r6, [r0]
+ ldrb r0, [r1, 0x9]
+ adds r0, 0x1
+ strb r0, [r1, 0x9]
+ movs r0, 0
+ b _0811E554
+_0811E552:
+ movs r0, 0x1
+_0811E554:
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_811E4D0
+
+ thumb_func_start sub_811E55C
+sub_811E55C: @ 811E55C
+ push {lr}
+ ldr r0, =0x0203a11c
+ ldr r0, [r0]
+ movs r1, 0xBB
+ lsls r1, 2
+ adds r0, r1
+ ldr r0, [r0]
+ movs r1, 0x4
+ bl StartObjectImageAnim
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_811E55C
+
+ thumb_func_start sub_811E578
+sub_811E578: @ 811E578
+ push {lr}
+ bl sub_811BBB0
+ lsls r0, 24
+ cmp r0, 0
+ bne _0811E59C
+ ldr r0, =0x0203a11c
+ ldr r0, [r0]
+ movs r1, 0xBB
+ lsls r1, 2
+ adds r0, r1
+ ldr r0, [r0]
+ movs r1, 0x1
+ bl StartObjectImageAnim
+ b _0811E5AE
+ .pool
+_0811E59C:
+ ldr r0, =0x0203a11c
+ ldr r0, [r0]
+ movs r1, 0xBB
+ lsls r1, 2
+ adds r0, r1
+ ldr r0, [r0]
+ movs r1, 0x2
+ bl StartObjectImageAnim
+_0811E5AE:
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_811E578
+
+ thumb_func_start sub_811E5B8
+sub_811E5B8: @ 811E5B8
+ ldr r0, =0x0203a11c
+ ldr r0, [r0]
+ movs r1, 0xBB
+ lsls r1, 2
+ adds r0, r1
+ ldr r0, [r0]
+ adds r0, 0x3F
+ ldrb r1, [r0]
+ lsrs r1, 4
+ movs r0, 0x1
+ bics r0, r1
+ bx lr
+ .pool
+ thumb_func_end sub_811E5B8
+
+ thumb_func_start sub_811E5D4
+sub_811E5D4: @ 811E5D4
+ push {r4,lr}
+ ldr r4, =gUnknown_08597E48
+ adds r0, r4, 0
+ movs r1, 0x60
+ movs r2, 0x50
+ movs r3, 0
+ bl AddObjectToFront
+ lsls r0, 24
+ lsrs r1, r0, 24
+ cmp r1, 0x40
+ beq _0811E602
+ ldr r0, =0x0203a11c
+ ldr r2, [r0]
+ movs r0, 0xBC
+ lsls r0, 2
+ adds r2, r0
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, =0x02020630
+ adds r0, r1
+ str r0, [r2]
+_0811E602:
+ adds r0, r4, 0
+ movs r1, 0x60
+ movs r2, 0x9C
+ movs r3, 0
+ bl AddObjectToFront
+ lsls r0, 24
+ lsrs r1, r0, 24
+ cmp r1, 0x40
+ beq _0811E636
+ ldr r0, =0x0203a11c
+ ldr r2, [r0]
+ movs r0, 0xBD
+ lsls r0, 2
+ adds r2, r0
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, =0x02020630
+ adds r0, r1
+ str r0, [r2]
+ adds r0, 0x3F
+ ldrb r1, [r0]
+ movs r2, 0x2
+ orrs r1, r2
+ strb r1, [r0]
+_0811E636:
+ bl sub_811E6B0
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_811E5D4
+
+ thumb_func_start sub_811E64C
+sub_811E64C: @ 811E64C
+ push {r4-r6,lr}
+ bl sub_811BBF8
+ ldr r6, =0x0203a11c
+ ldr r1, [r6]
+ movs r2, 0xBC
+ lsls r2, 2
+ adds r1, r2
+ ldr r1, [r1]
+ movs r2, 0
+ cmp r0, 0
+ bne _0811E666
+ movs r2, 0x1
+_0811E666:
+ adds r3, r1, 0
+ adds r3, 0x3E
+ movs r4, 0x1
+ lsls r2, 2
+ ldrb r1, [r3]
+ movs r5, 0x5
+ negs r5, r5
+ adds r0, r5, 0
+ ands r0, r1
+ orrs r0, r2
+ strb r0, [r3]
+ bl sub_811BC2C
+ ldr r1, [r6]
+ movs r2, 0xBD
+ lsls r2, 2
+ adds r1, r2
+ ldr r1, [r1]
+ movs r2, 0
+ cmp r0, 0
+ bne _0811E692
+ movs r2, 0x1
+_0811E692:
+ adds r3, r1, 0
+ adds r3, 0x3E
+ adds r1, r4, 0
+ ands r1, r2
+ lsls r1, 2
+ ldrb r2, [r3]
+ adds r0, r5, 0
+ ands r0, r2
+ orrs r0, r1
+ strb r0, [r3]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_811E64C
+
+ thumb_func_start sub_811E6B0
+sub_811E6B0: @ 811E6B0
+ ldr r3, =0x0203a11c
+ ldr r0, [r3]
+ movs r1, 0xBC
+ lsls r1, 2
+ adds r0, r1
+ ldr r1, [r0]
+ adds r1, 0x3E
+ ldrb r0, [r1]
+ movs r2, 0x4
+ orrs r0, r2
+ strb r0, [r1]
+ ldr r0, [r3]
+ movs r1, 0xBD
+ lsls r1, 2
+ adds r0, r1
+ ldr r1, [r0]
+ adds r1, 0x3E
+ ldrb r0, [r1]
+ orrs r0, r2
+ strb r0, [r1]
+ bx lr
+ .pool
+ thumb_func_end sub_811E6B0
+
+ thumb_func_start sub_811E6E0
+sub_811E6E0: @ 811E6E0
+ push {lr}
+ cmp r0, 0
+ bne _0811E6FC
+ ldr r0, =0x0203a11c
+ ldr r2, [r0]
+ movs r1, 0xBC
+ lsls r1, 2
+ adds r0, r2, r1
+ ldr r0, [r0]
+ movs r1, 0x60
+ b _0811E70A
+ .pool
+_0811E6FC:
+ ldr r0, =0x0203a11c
+ ldr r2, [r0]
+ movs r1, 0xBC
+ lsls r1, 2
+ adds r0, r2, r1
+ ldr r0, [r0]
+ movs r1, 0x78
+_0811E70A:
+ strh r1, [r0, 0x20]
+ movs r3, 0xBD
+ lsls r3, 2
+ adds r0, r2, r3
+ ldr r0, [r0]
+ strh r1, [r0, 0x20]
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_811E6E0
+
+ thumb_func_start sub_811E720
+sub_811E720: @ 811E720
+ push {r4,lr}
+ ldr r4, =gUnknown_08597E30
+ adds r0, r4, 0
+ movs r1, 0xDC
+ movs r2, 0x54
+ movs r3, 0x1
+ bl AddObjectToFront
+ lsls r0, 24
+ lsrs r1, r0, 24
+ cmp r1, 0x40
+ beq _0811E74E
+ ldr r0, =0x0203a11c
+ ldr r2, [r0]
+ movs r0, 0xBE
+ lsls r0, 2
+ adds r2, r0
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, =0x02020630
+ adds r0, r1
+ str r0, [r2]
+_0811E74E:
+ adds r0, r4, 0
+ movs r1, 0xDC
+ movs r2, 0x9C
+ movs r3, 0x1
+ bl AddObjectToFront
+ lsls r0, 24
+ lsrs r1, r0, 24
+ cmp r1, 0x40
+ beq _0811E77E
+ ldr r0, =0x0203a11c
+ ldr r2, [r0]
+ movs r0, 0xBF
+ lsls r0, 2
+ adds r2, r0
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, =0x02020630
+ adds r0, r1
+ str r0, [r2]
+ movs r1, 0x1
+ bl StartObjectImageAnim
+_0811E77E:
+ bl sub_811E7F8
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_811E720
+
+ thumb_func_start sub_811E794
+sub_811E794: @ 811E794
+ push {r4-r6,lr}
+ bl sub_811BBF8
+ ldr r6, =0x0203a11c
+ ldr r1, [r6]
+ movs r2, 0xBE
+ lsls r2, 2
+ adds r1, r2
+ ldr r1, [r1]
+ movs r2, 0
+ cmp r0, 0
+ bne _0811E7AE
+ movs r2, 0x1
+_0811E7AE:
+ adds r3, r1, 0
+ adds r3, 0x3E
+ movs r4, 0x1
+ lsls r2, 2
+ ldrb r1, [r3]
+ movs r5, 0x5
+ negs r5, r5
+ adds r0, r5, 0
+ ands r0, r1
+ orrs r0, r2
+ strb r0, [r3]
+ bl sub_811BC2C
+ ldr r1, [r6]
+ movs r2, 0xBF
+ lsls r2, 2
+ adds r1, r2
+ ldr r1, [r1]
+ movs r2, 0
+ cmp r0, 0
+ bne _0811E7DA
+ movs r2, 0x1
+_0811E7DA:
+ adds r3, r1, 0
+ adds r3, 0x3E
+ adds r1, r4, 0
+ ands r1, r2
+ lsls r1, 2
+ ldrb r2, [r3]
+ adds r0, r5, 0
+ ands r0, r2
+ orrs r0, r1
+ strb r0, [r3]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_811E794
+
+ thumb_func_start sub_811E7F8
+sub_811E7F8: @ 811E7F8
+ ldr r3, =0x0203a11c
+ ldr r0, [r3]
+ movs r1, 0xBE
+ lsls r1, 2
+ adds r0, r1
+ ldr r1, [r0]
+ adds r1, 0x3E
+ ldrb r0, [r1]
+ movs r2, 0x4
+ orrs r0, r2
+ strb r0, [r1]
+ ldr r0, [r3]
+ movs r1, 0xBF
+ lsls r1, 2
+ adds r0, r1
+ ldr r1, [r0]
+ adds r1, 0x3E
+ ldrb r0, [r1]
+ orrs r0, r2
+ strb r0, [r1]
+ bx lr
+ .pool
+ thumb_func_end sub_811E7F8
+
+ thumb_func_start sub_811E828
+sub_811E828: @ 811E828
+ push {r4,r5,lr}
+ sub sp, 0x4
+ bl sub_811BCBC
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ beq _0811E84C
+ cmp r0, 0x1
+ bgt _0811E842
+ cmp r0, 0
+ beq _0811E848
+ b _0811E8D0
+_0811E842:
+ cmp r0, 0x2
+ beq _0811E850
+ b _0811E8D0
+_0811E848:
+ movs r4, 0x43
+ b _0811E852
+_0811E84C:
+ movs r4, 0x44
+ b _0811E852
+_0811E850:
+ movs r4, 0x7
+_0811E852:
+ bl sub_811BA68
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x4
+ bne _0811E8D0
+ adds r0, r4, 0
+ ldr r5, =DummyObjectCallback
+ movs r4, 0
+ str r4, [sp]
+ adds r1, r5, 0
+ movs r2, 0x4C
+ movs r3, 0x28
+ bl AddPseudoFieldObject
+ lsls r0, 24
+ lsrs r2, r0, 24
+ cmp r2, 0x40
+ beq _0811E892
+ ldr r1, =0x02020630
+ 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 StartObjectImageAnim
+_0811E892:
+ ldr r0, =0x03005d90
+ ldr r0, [r0]
+ ldrb r0, [r0, 0x8]
+ movs r1, 0x69
+ cmp r0, 0
+ bne _0811E8A0
+ movs r1, 0x64
+_0811E8A0:
+ str r4, [sp]
+ adds r0, r1, 0
+ adds r1, r5, 0
+ movs r2, 0x34
+ movs r3, 0x28
+ bl AddPseudoFieldObject
+ lsls r0, 24
+ lsrs r2, r0, 24
+ cmp r2, 0x40
+ beq _0811E8D0
+ ldr r1, =0x02020630
+ 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 StartObjectImageAnim
+_0811E8D0:
+ add sp, 0x4
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_811E828
+
+ thumb_func_start sub_811E8E4
+sub_811E8E4: @ 811E8E4
+ push {lr}
+ bl sub_811BA68
+ lsls r0, 24
+ ldr r1, =gUnknown_08597C30
+ lsrs r0, 22
+ adds r0, r1
+ ldrb r0, [r0, 0x3]
+ cmp r0, 0x1
+ beq _0811E90E
+ cmp r0, 0x1
+ bgt _0811E908
+ cmp r0, 0
+ beq _0811E916
+ b _0811E91A
+ .pool
+_0811E908:
+ cmp r0, 0x2
+ beq _0811E912
+ b _0811E91A
+_0811E90E:
+ movs r0, 0x1
+ b _0811E91C
+_0811E912:
+ movs r0, 0x2
+ b _0811E91C
+_0811E916:
+ movs r0, 0
+ b _0811E91C
+_0811E91A:
+ movs r0, 0x3
+_0811E91C:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_811E8E4
+
+ thumb_func_start sub_811E920
+sub_811E920: @ 811E920
+ push {r4,lr}
+ adds r4, r0, 0
+ bl sub_811E8E4
+ adds r1, r0, 0
+ cmp r1, 0x2
+ ble _0811E932
+ movs r0, 0
+ b _0811E93E
+_0811E932:
+ ldr r0, =gUnknown_08597E60
+ lsls r1, 2
+ adds r1, r4, r1
+ adds r1, r0
+ ldrb r0, [r1]
+ adds r0, 0x4
+_0811E93E:
+ pop {r4}
+ pop {r1}
+ bx r1
+ .pool
+ thumb_func_end sub_811E920
+
+ thumb_func_start sub_811E948
+sub_811E948: @ 811E948
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x14
+ bl sub_811E8E4
+ mov r8, r0
+ cmp r0, 0x3
+ beq _0811E9FA
+ ldr r3, =0xffffff00
+ ldr r0, [sp, 0xC]
+ ands r0, r3
+ movs r1, 0x3
+ orrs r0, r1
+ ldr r2, =0xffff00ff
+ ands r0, r2
+ adds r1, 0xFD
+ orrs r0, r1
+ ldr r1, =0xff00ffff
+ ands r0, r1
+ movs r1, 0xB0
+ lsls r1, 12
+ orrs r0, r1
+ ldr r1, =0x00ffffff
+ ands r0, r1
+ movs r1, 0xE0
+ lsls r1, 21
+ orrs r0, r1
+ str r0, [sp, 0xC]
+ ldr r0, [sp, 0x10]
+ ands r0, r3
+ movs r1, 0x2
+ orrs r0, r1
+ ands r0, r2
+ movs r1, 0xB0
+ lsls r1, 4
+ orrs r0, r1
+ ldr r1, =0x0000ffff
+ ands r0, r1
+ movs r1, 0xD0
+ lsls r1, 14
+ orrs r0, r1
+ str r0, [sp, 0x10]
+ add r0, sp, 0xC
+ bl AddWindow
+ lsls r0, 16
+ lsrs r7, r0, 16
+ lsls r4, r7, 24
+ lsrs r0, r4, 24
+ movs r1, 0x11
+ bl FillWindowPixelBuffer
+ movs r6, 0
+ mov r0, r8
+ lsls r1, r0, 4
+ ldr r0, =gUnknown_08597E6C
+ adds r5, r1, r0
+ ldr r1, =gUnknown_08597E60
+ mov r10, r1
+ mov r9, r4
+_0811E9C6:
+ ldr r2, [r5]
+ lsls r4, r7, 24
+ cmp r2, 0
+ beq _0811E9EC
+ mov r1, r8
+ lsls r0, r1, 2
+ adds r0, r6, r0
+ add r0, r10
+ ldrb r3, [r0]
+ movs r0, 0x1
+ str r0, [sp]
+ movs r0, 0
+ str r0, [sp, 0x4]
+ str r0, [sp, 0x8]
+ mov r1, r9
+ lsrs r0, r1, 24
+ movs r1, 0x1
+ bl sub_811D028
+_0811E9EC:
+ adds r5, 0x4
+ adds r6, 0x1
+ cmp r6, 0x3
+ ble _0811E9C6
+ lsrs r0, r4, 24
+ bl PutWindowTilemap
+_0811E9FA:
+ add sp, 0x14
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_811E948
+
+ thumb_func_start sub_811EA28
+sub_811EA28: @ 811EA28
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ adds r1, r0, 0
+ cmp r0, 0x14
+ beq _0811EA4E
+ cmp r0, 0x14
+ bgt _0811EA48
+ cmp r0, 0x11
+ blt _0811EA66
+ ldr r0, =0x00000864
+ bl FlagGet
+ b _0811EA60
+ .pool
+_0811EA48:
+ cmp r1, 0x15
+ beq _0811EA5C
+ b _0811EA66
+_0811EA4E:
+ ldr r0, =0x00000866
+ bl FlagGet
+ b _0811EA60
+ .pool
+_0811EA5C:
+ bl sub_811F0F8
+_0811EA60:
+ lsls r0, 24
+ lsrs r0, 24
+ b _0811EA68
+_0811EA66:
+ movs r0, 0x1
+_0811EA68:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_811EA28
+
+ thumb_func_start start_menu_is_selected_item_valid
+start_menu_is_selected_item_valid: @ 811EA6C
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ adds r4, r0, 0
+ cmp r0, 0
+ bne _0811EA84
+ movs r0, 0
+ bl pokedex_count
+ lsls r0, 16
+ lsrs r0, 16
+ b _0811EA9A
+_0811EA84:
+ bl sub_811EA28
+ lsls r0, 24
+ cmp r0, 0
+ bne _0811EA92
+ movs r0, 0
+ b _0811EA9A
+_0811EA92:
+ ldr r0, =gEasyChatGroups
+ lsls r1, r4, 3
+ adds r1, r0
+ ldrh r0, [r1, 0x6]
+_0811EA9A:
+ pop {r4}
+ pop {r1}
+ bx r1
+ .pool
+ thumb_func_end start_menu_is_selected_item_valid
+
+ thumb_func_start sub_811EAA4
+sub_811EAA4: @ 811EAA4
+ push {r4,r5,lr}
+ lsls r2, r0, 16
+ lsrs r1, r2, 16
+ ldr r0, =0x0000ffff
+ cmp r1, r0
+ beq _0811EB04
+ lsrs r3, r2, 25
+ ldr r5, =0x000001ff
+ ands r5, r1
+ cmp r3, 0x15
+ bhi _0811EB08
+ ldr r0, =gEasyChatGroups
+ lsls r2, r3, 3
+ adds r1, r2, r0
+ ldrh r4, [r1, 0x4]
+ cmp r3, 0x13
+ bgt _0811EADC
+ cmp r3, 0x12
+ bge _0811EAE0
+ cmp r3, 0
+ beq _0811EAE0
+ b _0811EB00
+ .pool
+_0811EADC:
+ cmp r3, 0x15
+ bne _0811EB00
+_0811EAE0:
+ adds r0, r2, r0
+ ldr r2, [r0]
+ movs r1, 0
+ cmp r1, r4
+ bcs _0811EB08
+_0811EAEA:
+ lsls r0, r1, 1
+ adds r0, r2
+ ldrh r0, [r0]
+ cmp r5, r0
+ beq _0811EB04
+ adds r0, r1, 0x1
+ lsls r0, 16
+ lsrs r1, r0, 16
+ cmp r1, r4
+ bcc _0811EAEA
+ b _0811EB08
+_0811EB00:
+ cmp r5, r4
+ bcs _0811EB08
+_0811EB04:
+ movs r0, 0
+ b _0811EB0A
+_0811EB08:
+ movs r0, 0x1
+_0811EB0A:
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_811EAA4
+
+ thumb_func_start sub_811EB10
+sub_811EB10: @ 811EB10
+ push {lr}
+ lsls r0, 16
+ lsrs r2, r0, 25
+ lsls r0, 7
+ lsrs r3, r0, 23
+ cmp r2, 0x15
+ bhi _0811EB5C
+ cmp r2, 0x13
+ bgt _0811EB2C
+ cmp r2, 0x12
+ bge _0811EB3C
+ cmp r2, 0
+ beq _0811EB30
+ b _0811EB48
+_0811EB2C:
+ cmp r2, 0x15
+ bne _0811EB48
+_0811EB30:
+ ldr r0, =gUnknown_085F5490
+ ldrh r0, [r0]
+ b _0811EB50
+ .pool
+_0811EB3C:
+ ldr r0, =gUnknown_085FA1D4
+ ldrh r0, [r0]
+ b _0811EB50
+ .pool
+_0811EB48:
+ ldr r1, =gEasyChatGroups
+ lsls r0, r2, 3
+ adds r0, r1
+ ldrh r0, [r0, 0x4]
+_0811EB50:
+ cmp r0, r3
+ bls _0811EB5C
+ movs r0, 0
+ b _0811EB5E
+ .pool
+_0811EB5C:
+ movs r0, 0x1
+_0811EB5E:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_811EB10
+
+ thumb_func_start GetEasyChatWord
+@ char *GetEasyChatWord(u8 groupId, u16 wordId)
+GetEasyChatWord: @ 811EB64
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, 16
+ lsrs r2, r1, 16
+ cmp r0, 0x13
+ bgt _0811EB7C
+ cmp r0, 0x12
+ bge _0811EB90
+ cmp r0, 0
+ beq _0811EB80
+ b _0811EBA0
+_0811EB7C:
+ cmp r0, 0x15
+ bne _0811EBA0
+_0811EB80:
+ movs r0, 0xB
+ muls r0, r2
+ ldr r1, =gSpeciesNames
+ adds r0, r1
+ b _0811EBB2
+ .pool
+_0811EB90:
+ movs r0, 0xD
+ muls r0, r2
+ ldr r1, =gMoveNames
+ adds r0, r1
+ b _0811EBB2
+ .pool
+_0811EBA0:
+ ldr r1, =gEasyChatGroups
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, [r0]
+ lsls r0, r2, 1
+ adds r0, r2
+ lsls r0, 2
+ adds r0, r1
+ ldr r0, [r0]
+_0811EBB2:
+ pop {r1}
+ bx r1
+ .pool
+ thumb_func_end GetEasyChatWord
+
+ thumb_func_start CopyEasyChatWord
+@ char *CopyEasyChatWord(char *dest, u16 groupIdWordIdPair)
+CopyEasyChatWord: @ 811EBBC
+ push {r4-r6,lr}
+ adds r5, r0, 0
+ lsls r6, r1, 16
+ lsrs r0, r6, 16
+ adds r4, r0, 0
+ bl sub_811EAA4
+ lsls r0, 24
+ cmp r0, 0
+ beq _0811EBD8
+ ldr r1, =gUnknown_085EEA42
+ b _0811EBEA
+ .pool
+_0811EBD8:
+ ldr r0, =0x0000ffff
+ cmp r4, r0
+ beq _0811EBFC
+ ldr r1, =0x000001ff
+ ands r1, r4
+ lsrs r0, r6, 25
+ bl GetEasyChatWord
+ adds r1, r0, 0
+_0811EBEA:
+ adds r0, r5, 0
+ bl CopyString
+ b _0811EC02
+ .pool
+_0811EBFC:
+ movs r0, 0xFF
+ strb r0, [r5]
+ adds r0, r5, 0
+_0811EC02:
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ thumb_func_end CopyEasyChatWord
+
+ thumb_func_start ConvertEasyChatWordsToString
+ConvertEasyChatWordsToString: @ 811EC08
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ sub sp, 0x4
+ adds r4, r0, 0
+ adds r5, r1, 0
+ lsls r2, 16
+ lsls r3, 16
+ lsrs r3, 16
+ mov r9, r3
+ ldr r0, =0xffff0000
+ adds r2, r0
+ lsrs r7, r2, 16
+ movs r0, 0
+ cmp r0, r9
+ bcs _0811EC78
+_0811EC2A:
+ movs r6, 0
+ adds r0, 0x1
+ mov r8, r0
+ cmp r6, r7
+ bcs _0811EC5C
+ ldr r2, =0x0000ffff
+_0811EC36:
+ ldrh r1, [r5]
+ adds r0, r4, 0
+ str r2, [sp]
+ bl CopyEasyChatWord
+ adds r4, r0, 0
+ ldrh r0, [r5]
+ ldr r2, [sp]
+ cmp r0, r2
+ beq _0811EC50
+ movs r0, 0
+ strb r0, [r4]
+ adds r4, 0x1
+_0811EC50:
+ adds r5, 0x2
+ adds r0, r6, 0x1
+ lsls r0, 16
+ lsrs r6, r0, 16
+ cmp r6, r7
+ bcc _0811EC36
+_0811EC5C:
+ ldrh r1, [r5]
+ adds r5, 0x2
+ adds r0, r4, 0
+ bl CopyEasyChatWord
+ adds r4, r0, 0
+ movs r0, 0xFE
+ strb r0, [r4]
+ adds r4, 0x1
+ mov r1, r8
+ lsls r0, r1, 16
+ lsrs r0, 16
+ cmp r0, r9
+ bcc _0811EC2A
+_0811EC78:
+ subs r4, 0x1
+ movs r0, 0xFF
+ strb r0, [r4]
+ adds r0, r4, 0
+ add sp, 0x4
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .pool
+ thumb_func_end ConvertEasyChatWordsToString
+
+ thumb_func_start sub_811EC98
+sub_811EC98: @ 811EC98
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0xC
+ adds r4, r0, 0
+ adds r5, r1, 0
+ lsls r2, 16
+ lsrs r2, 16
+ mov r8, r2
+ lsls r3, 16
+ lsrs r3, 16
+ str r3, [sp]
+ mov r7, r8
+ movs r0, 0
+ str r0, [sp, 0x4]
+ subs r0, r7, 0x1
+ lsls r0, 16
+ lsrs r0, 16
+ mov r8, r0
+ movs r0, 0
+ cmp r0, r3
+ bcs _0811ED62
+_0811ECC8:
+ adds r3, r5, 0
+ movs r2, 0
+ movs r1, 0
+ adds r0, 0x1
+ mov r10, r0
+ cmp r2, r7
+ bcs _0811ECEE
+ ldr r6, =0x0000ffff
+_0811ECD8:
+ lsls r0, r1, 1
+ adds r0, r3
+ ldrh r0, [r0]
+ cmp r0, r6
+ beq _0811ECE4
+ movs r2, 0x1
+_0811ECE4:
+ adds r0, r1, 0x1
+ lsls r0, 16
+ lsrs r1, r0, 16
+ cmp r1, r7
+ bcc _0811ECD8
+_0811ECEE:
+ cmp r2, 0
+ bne _0811ECFC
+ lsls r0, r7, 1
+ adds r5, r0
+ b _0811ED56
+ .pool
+_0811ECFC:
+ movs r6, 0
+ ldr r1, [sp, 0x4]
+ adds r1, 0x1
+ mov r9, r1
+ cmp r6, r8
+ bcs _0811ED30
+ ldr r2, =0x0000ffff
+_0811ED0A:
+ ldrh r1, [r5]
+ adds r0, r4, 0
+ str r2, [sp, 0x8]
+ bl CopyEasyChatWord
+ adds r4, r0, 0
+ ldrh r0, [r5]
+ ldr r2, [sp, 0x8]
+ cmp r0, r2
+ beq _0811ED24
+ movs r0, 0
+ strb r0, [r4]
+ adds r4, 0x1
+_0811ED24:
+ adds r5, 0x2
+ adds r0, r6, 0x1
+ lsls r0, 16
+ lsrs r6, r0, 16
+ cmp r6, r8
+ bcc _0811ED0A
+_0811ED30:
+ ldrh r1, [r5]
+ adds r5, 0x2
+ adds r0, r4, 0
+ bl CopyEasyChatWord
+ adds r4, r0, 0
+ ldr r0, [sp, 0x4]
+ cmp r0, 0
+ bne _0811ED4C
+ movs r0, 0xFE
+ b _0811ED4E
+ .pool
+_0811ED4C:
+ movs r0, 0xFA
+_0811ED4E:
+ strb r0, [r4]
+ adds r4, 0x1
+ mov r1, r9
+ str r1, [sp, 0x4]
+_0811ED56:
+ mov r1, r10
+ lsls r0, r1, 16
+ lsrs r0, 16
+ ldr r1, [sp]
+ cmp r0, r1
+ bcc _0811ECC8
+_0811ED62:
+ subs r4, 0x1
+ movs r0, 0xFF
+ strb r0, [r4]
+ adds r0, r4, 0
+ add sp, 0xC
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_811EC98
+
+ thumb_func_start sub_811ED7C
+sub_811ED7C: @ 811ED7C
+ push {r4,r5,lr}
+ lsls r5, r0, 16
+ lsrs r0, r5, 16
+ adds r4, r0, 0
+ ldr r0, =0x0000ffff
+ cmp r4, r0
+ bne _0811ED94
+ movs r0, 0
+ b _0811EDBA
+ .pool
+_0811ED94:
+ adds r0, r4, 0
+ bl sub_811EAA4
+ lsls r0, 24
+ cmp r0, 0
+ bne _0811EDB0
+ ldr r1, =0x000001ff
+ ands r1, r4
+ lsrs r0, r5, 25
+ bl GetEasyChatWord
+ b _0811EDB2
+ .pool
+_0811EDB0:
+ ldr r0, =gUnknown_085EEA42
+_0811EDB2:
+ bl GetStringLength
+ lsls r0, 16
+ lsrs r0, 16
+_0811EDBA:
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ .pool
+ thumb_func_end sub_811ED7C
+
+ thumb_func_start sub_811EDC4
+sub_811EDC4: @ 811EDC4
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x4
+ adds r6, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ lsls r2, 24
+ lsrs r2, 24
+ mov r8, r2
+ lsls r3, 16
+ lsrs r3, 16
+ mov r10, r3
+ movs r7, 0
+ cmp r7, r8
+ bcs _0811EE26
+ subs r0, r1, 0x1
+ lsls r0, 16
+ mov r9, r0
+_0811EDEE:
+ mov r0, r9
+ lsrs r4, r0, 16
+ movs r5, 0
+ cmp r5, r1
+ bcs _0811EE14
+_0811EDF8:
+ ldrh r0, [r6]
+ adds r6, 0x2
+ str r1, [sp]
+ bl sub_811ED7C
+ adds r0, r4, r0
+ lsls r0, 16
+ lsrs r4, r0, 16
+ adds r0, r5, 0x1
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldr r1, [sp]
+ cmp r5, r1
+ bcc _0811EDF8
+_0811EE14:
+ cmp r4, r10
+ bls _0811EE1C
+ movs r0, 0x1
+ b _0811EE28
+_0811EE1C:
+ adds r0, r7, 0x1
+ lsls r0, 24
+ lsrs r7, r0, 24
+ cmp r7, r8
+ bcc _0811EDEE
+_0811EE26:
+ movs r0, 0
+_0811EE28:
+ add sp, 0x4
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_811EDC4
+
+ thumb_func_start sub_811EE38
+sub_811EE38: @ 811EE38
+ push {r4,lr}
+ lsls r0, 16
+ lsrs r4, r0, 16
+ bl GenerateRandomNumber
+ ldr r2, =gEasyChatGroups
+ lsls r1, r4, 3
+ adds r1, r2
+ lsls r0, 16
+ lsrs r0, 16
+ ldrh r1, [r1, 0x4]
+ bl __umodsi3
+ lsls r0, 16
+ lsrs r2, r0, 16
+ cmp r4, 0
+ beq _0811EE66
+ cmp r4, 0x15
+ beq _0811EE66
+ cmp r4, 0x12
+ beq _0811EE66
+ cmp r4, 0x13
+ bne _0811EE74
+_0811EE66:
+ ldr r1, =gEasyChatGroups
+ lsls r0, r4, 3
+ adds r0, r1
+ ldr r1, [r0]
+ lsls r0, r2, 1
+ adds r0, r1
+ ldrh r2, [r0]
+_0811EE74:
+ movs r0, 0x7F
+ ands r0, r4
+ lsls r0, 9
+ ldr r1, =0x000001ff
+ ands r2, r1
+ orrs r0, r2
+ pop {r4}
+ pop {r1}
+ bx r1
+ .pool
+ thumb_func_end sub_811EE38
+
+ thumb_func_start sub_811EE90
+sub_811EE90: @ 811EE90
+ push {r4,lr}
+ lsls r0, 16
+ lsrs r0, 16
+ adds r4, r0, 0
+ lsls r0, r4, 24
+ lsrs r0, 24
+ bl sub_811EA28
+ lsls r0, 24
+ cmp r0, 0
+ bne _0811EEB0
+ ldr r0, =0x0000ffff
+ b _0811EEC4
+ .pool
+_0811EEB0:
+ cmp r4, 0
+ beq _0811EEBC
+ adds r0, r4, 0
+ bl sub_811EE38
+ b _0811EEC0
+_0811EEBC:
+ bl sub_811F108
+_0811EEC0:
+ lsls r0, 16
+ lsrs r0, 16
+_0811EEC4:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_811EE90
+
+ thumb_func_start sub_811EECC
+sub_811EECC: @ 811EECC
+ push {r4,r5,lr}
+ ldr r0, =0x020375e0
+ ldrh r0, [r0]
+ cmp r0, 0x1
+ beq _0811EF04
+ cmp r0, 0x1
+ bgt _0811EEE4
+ cmp r0, 0
+ beq _0811EEEE
+ b _0811EF58
+ .pool
+_0811EEE4:
+ cmp r0, 0x2
+ beq _0811EF2C
+ cmp r0, 0x3
+ beq _0811EF3C
+ b _0811EF58
+_0811EEEE:
+ ldr r0, =0x03005d8c
+ ldr r0, [r0]
+ ldr r1, =0x00002bb0
+ adds r5, r0, r1
+ movs r2, 0x2
+ b _0811EF46
+ .pool
+_0811EF04:
+ ldr r0, =0x03005d8c
+ ldr r0, [r0]
+ ldr r1, =0x00002bbc
+ adds r5, r0, r1
+ adds r0, r5, 0
+ movs r1, 0x3
+ movs r2, 0x2
+ movs r3, 0x12
+ bl sub_811EDC4
+ lsls r0, 24
+ cmp r0, 0
+ beq _0811EF44
+ movs r2, 0x2
+ movs r3, 0x3
+ b _0811EF48
+ .pool
+_0811EF2C:
+ ldr r0, =0x03005d8c
+ ldr r0, [r0]
+ ldr r1, =0x00002bc8
+ b _0811EF42
+ .pool
+_0811EF3C:
+ ldr r0, =0x03005d8c
+ ldr r0, [r0]
+ ldr r1, =0x00002bd4
+_0811EF42:
+ adds r5, r0, r1
+_0811EF44:
+ movs r2, 0x3
+_0811EF46:
+ movs r3, 0x2
+_0811EF48:
+ ldr r4, =0x02021fc4
+ adds r0, r4, 0
+ adds r1, r5, 0
+ bl ConvertEasyChatWordsToString
+ adds r0, r4, 0
+ bl box_related_two__3
+_0811EF58:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_811EECC
+
+ thumb_func_start sub_811EF6C
+sub_811EF6C: @ 811EF6C
+ push {lr}
+ bl GenerateRandomNumber
+ movs r1, 0x1
+ ands r1, r0
+ movs r0, 0xC
+ cmp r1, 0
+ beq _0811EF7E
+ movs r0, 0xD
+_0811EF7E:
+ bl sub_811EE90
+ adds r1, r0, 0
+ lsls r1, 16
+ lsrs r1, 16
+ ldr r0, =0x02021dc4
+ bl CopyEasyChatWord
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_811EF6C
+
+ thumb_func_start sub_811EF98
+sub_811EF98: @ 811EF98
+ lsls r0, 24
+ lsrs r2, r0, 27
+ movs r1, 0xE0
+ lsls r1, 19
+ ands r1, r0
+ lsrs r1, 24
+ ldr r0, =0x03005d8c
+ ldr r0, [r0]
+ ldr r3, =0x00002e20
+ adds r0, r3
+ adds r0, r2
+ ldrb r0, [r0]
+ asrs r0, r1
+ movs r1, 0x1
+ ands r0, r1
+ bx lr
+ .pool
+ thumb_func_end sub_811EF98
+
+ thumb_func_start sub_811EFC0
+sub_811EFC0: @ 811EFC0
+ push {lr}
+ lsls r0, 24
+ lsrs r1, r0, 24
+ cmp r1, 0x20
+ bhi _0811EFE4
+ lsrs r3, r0, 27
+ movs r2, 0x7
+ ands r2, r1
+ ldr r0, =0x03005d8c
+ ldr r1, [r0]
+ ldr r0, =0x00002e20
+ adds r1, r0
+ adds r1, r3
+ movs r0, 0x1
+ lsls r0, r2
+ ldrb r2, [r1]
+ orrs r0, r2
+ strb r0, [r1]
+_0811EFE4:
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_811EFC0
+
+ thumb_func_start sub_811EFF0
+sub_811EFF0: @ 811EFF0
+ push {r4,r5,lr}
+ movs r4, 0
+ movs r5, 0
+_0811EFF6:
+ adds r0, r4, 0
+ bl sub_811EF98
+ lsls r0, 24
+ cmp r0, 0
+ beq _0811F008
+ adds r0, r5, 0x1
+ lsls r0, 24
+ lsrs r5, r0, 24
+_0811F008:
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0x20
+ bls _0811EFF6
+ adds r0, r5, 0
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_811EFF0
+
+ thumb_func_start sub_811F01C
+sub_811F01C: @ 811F01C
+ push {r4-r6,lr}
+ bl sub_811EFF0
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0x21
+ bne _0811F048
+ b _0811F082
+_0811F02C:
+ adds r0, r5, 0
+ bl sub_811EFC0
+ ldr r0, =0x000001ff
+ ands r4, r0
+ movs r1, 0xA0
+ lsls r1, 6
+ adds r0, r1, 0
+ orrs r4, r0
+ adds r0, r4, 0
+ b _0811F084
+ .pool
+_0811F048:
+ bl GenerateRandomNumber
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0x21
+ subs r1, r4
+ bl __modsi3
+ lsls r0, 16
+ lsrs r6, r0, 16
+ movs r4, 0
+_0811F05E:
+ lsls r0, r4, 24
+ lsrs r5, r0, 24
+ adds r0, r5, 0
+ bl sub_811EF98
+ lsls r0, 24
+ cmp r0, 0
+ bne _0811F078
+ cmp r6, 0
+ beq _0811F02C
+ subs r0, r6, 0x1
+ lsls r0, 16
+ lsrs r6, r0, 16
+_0811F078:
+ adds r0, r4, 0x1
+ lsls r0, 16
+ lsrs r4, r0, 16
+ cmp r4, 0x20
+ bls _0811F05E
+_0811F082:
+ ldr r0, =0x0000ffff
+_0811F084:
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ .pool
+ thumb_func_end sub_811F01C
+
+ thumb_func_start sub_811F090
+sub_811F090: @ 811F090
+ push {r4,r5,lr}
+ bl sub_811EFF0
+ lsls r0, 24
+ lsrs r5, r0, 24
+ cmp r5, 0
+ bne _0811F0B4
+ b _0811F0EA
+_0811F0A0:
+ ldr r0, =0x000001ff
+ ands r4, r0
+ movs r1, 0xA0
+ lsls r1, 6
+ adds r0, r1, 0
+ orrs r4, r0
+ adds r0, r4, 0
+ b _0811F0EC
+ .pool
+_0811F0B4:
+ bl GenerateRandomNumber
+ lsls r0, 16
+ lsrs r0, 16
+ adds r1, r5, 0
+ bl __umodsi3
+ lsls r0, 16
+ lsrs r5, r0, 16
+ movs r4, 0
+_0811F0C8:
+ lsls r0, r4, 24
+ lsrs r0, 24
+ bl sub_811EF98
+ lsls r0, 24
+ cmp r0, 0
+ beq _0811F0E0
+ cmp r5, 0
+ beq _0811F0A0
+ subs r0, r5, 0x1
+ lsls r0, 16
+ lsrs r5, r0, 16
+_0811F0E0:
+ adds r0, r4, 0x1
+ lsls r0, 16
+ lsrs r4, r0, 16
+ cmp r4, 0x20
+ bls _0811F0C8
+_0811F0EA:
+ ldr r0, =0x0000ffff
+_0811F0EC:
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ .pool
+ thumb_func_end sub_811F090
+
+ thumb_func_start sub_811F0F8
+sub_811F0F8: @ 811F0F8
+ push {lr}
+ bl sub_809D42C
+ lsls r0, 24
+ lsrs r0, 24
+ pop {r1}
+ bx r1
+ thumb_func_end sub_811F0F8
+
+ thumb_func_start sub_811F108
+sub_811F108: @ 811F108
+ push {r4-r7,lr}
+ movs r0, 0
+ bl start_menu_is_selected_item_valid
+ lsls r0, 16
+ lsrs r4, r0, 16
+ cmp r4, 0
+ bne _0811F128
+ b _0811F172
+_0811F11A:
+ ldrh r1, [r5]
+ ldr r0, =0x000001ff
+ ands r0, r1
+ b _0811F174
+ .pool
+_0811F128:
+ bl GenerateRandomNumber
+ lsls r0, 16
+ lsrs r0, 16
+ adds r1, r4, 0
+ bl __umodsi3
+ lsls r0, 16
+ lsrs r4, r0, 16
+ ldr r0, =gEasyChatGroups
+ ldr r5, [r0]
+ ldrh r7, [r0, 0x4]
+ movs r6, 0
+ cmp r6, r7
+ bcs _0811F172
+_0811F146:
+ ldrh r0, [r5]
+ bl SpeciesToNationalPokedexNum
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0
+ bl pokedex_flag_operation
+ lsls r0, 24
+ cmp r0, 0
+ beq _0811F166
+ cmp r4, 0
+ beq _0811F11A
+ subs r0, r4, 0x1
+ lsls r0, 16
+ lsrs r4, r0, 16
+_0811F166:
+ adds r5, 0x2
+ adds r0, r6, 0x1
+ lsls r0, 16
+ lsrs r6, r0, 16
+ cmp r6, r7
+ bcc _0811F146
+_0811F172:
+ ldr r0, =0x0000ffff
+_0811F174:
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .pool
+ thumb_func_end sub_811F108
+
+ thumb_func_start sub_811F184
+sub_811F184: @ 811F184
+ push {r4-r7,lr}
+ movs r2, 0
+ ldr r5, =0x03005d8c
+ ldr r4, =0x00002bb0
+ ldr r3, =gUnknown_0859E62C
+_0811F18E:
+ ldr r1, [r5]
+ lsls r0, r2, 1
+ adds r1, r4
+ adds r1, r0
+ adds r0, r3
+ ldrh r0, [r0]
+ strh r0, [r1]
+ adds r0, r2, 0x1
+ lsls r0, 16
+ lsrs r2, r0, 16
+ cmp r2, 0x3
+ bls _0811F18E
+ movs r2, 0
+ ldr r5, =0x03005d8c
+ ldr r4, =0x00002bbc
+ ldr r3, =gUnknown_0859E634
+_0811F1AE:
+ ldr r1, [r5]
+ lsls r0, r2, 1
+ adds r1, r4
+ adds r1, r0
+ adds r0, r3
+ ldrh r0, [r0]
+ strh r0, [r1]
+ adds r0, r2, 0x1
+ lsls r0, 16
+ lsrs r2, r0, 16
+ cmp r2, 0x5
+ bls _0811F1AE
+ movs r2, 0
+ ldr r5, =0x03005d8c
+ ldr r4, =0x00002bc8
+ ldr r3, =gUnknown_0859E640
+_0811F1CE:
+ ldr r1, [r5]
+ lsls r0, r2, 1
+ adds r1, r4
+ adds r1, r0
+ adds r0, r3
+ ldrh r0, [r0]
+ strh r0, [r1]
+ adds r0, r2, 0x1
+ lsls r0, 16
+ lsrs r2, r0, 16
+ cmp r2, 0x5
+ bls _0811F1CE
+ movs r2, 0
+ ldr r5, =0x03005d8c
+ ldr r4, =0x00002bd4
+ ldr r3, =gUnknown_0859E64C
+_0811F1EE:
+ ldr r1, [r5]
+ lsls r0, r2, 1
+ adds r1, r4
+ adds r1, r0
+ adds r0, r3
+ ldrh r0, [r0]
+ strh r0, [r1]
+ adds r0, r2, 0x1
+ lsls r0, 16
+ lsrs r2, r0, 16
+ cmp r2, 0x5
+ bls _0811F1EE
+ movs r2, 0
+ ldr r7, =0x03005d8c
+ ldr r6, =0x00002be0
+ ldr r0, =0x0000ffff
+ adds r5, r0, 0
+_0811F210:
+ movs r3, 0
+ lsls r0, r2, 3
+ adds r0, r2
+ lsls r4, r0, 2
+_0811F218:
+ ldr r1, [r7]
+ lsls r0, r3, 1
+ adds r0, r4
+ adds r1, r6
+ adds r1, r0
+ ldrh r0, [r1]
+ orrs r0, r5
+ strh r0, [r1]
+ adds r0, r3, 0x1
+ lsls r0, 16
+ lsrs r3, r0, 16
+ cmp r3, 0x8
+ bls _0811F218
+ adds r0, r2, 0x1
+ lsls r0, 16
+ lsrs r2, r0, 16
+ cmp r2, 0xF
+ bls _0811F210
+ movs r2, 0
+ ldr r4, =0x03005d8c
+ ldr r3, =0x00002e20
+ movs r1, 0
+_0811F244:
+ ldr r0, [r4]
+ adds r0, r3
+ adds r0, r2
+ strb r1, [r0]
+ adds r0, r2, 0x1
+ lsls r0, 16
+ lsrs r2, r0, 16
+ cmp r2, 0x3F
+ bls _0811F244
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_811F184
+
+ thumb_func_start sub_811F28C
+sub_811F28C: @ 811F28C
+ push {r4,lr}
+ ldr r4, =0x0203a120
+ ldr r0, =0x00003ba4
+ bl Alloc
+ str r0, [r4]
+ cmp r0, 0
+ beq _0811F2B0
+ bl sub_811F2D4
+ bl sub_811F46C
+ movs r0, 0x1
+ b _0811F2B2
+ .pool
+_0811F2B0:
+ movs r0, 0
+_0811F2B2:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_811F28C
+
+ thumb_func_start sub_811F2B8
+sub_811F2B8: @ 811F2B8
+ push {r4,lr}
+ ldr r4, =0x0203a120
+ ldr r0, [r4]
+ cmp r0, 0
+ beq _0811F2CA
+ bl Free
+ movs r0, 0
+ str r0, [r4]
+_0811F2CA:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_811F2B8
+
+ thumb_func_start sub_811F2D4
+sub_811F2D4: @ 811F2D4
+ push {r4,r5,lr}
+ ldr r4, =0x0203a120
+ ldr r0, [r4]
+ movs r5, 0
+ strh r5, [r0]
+ movs r0, 0
+ bl pokedex_count
+ lsls r0, 16
+ cmp r0, 0
+ beq _0811F2FC
+ ldr r0, [r4]
+ ldrh r1, [r0]
+ adds r2, r1, 0x1
+ strh r2, [r0]
+ lsls r1, 16
+ lsrs r1, 15
+ adds r0, 0x2
+ adds r0, r1
+ strh r5, [r0]
+_0811F2FC:
+ movs r3, 0x1
+_0811F2FE:
+ ldr r0, [r4]
+ ldrh r2, [r0]
+ adds r1, r2, 0x1
+ strh r1, [r0]
+ lsls r2, 16
+ lsrs r2, 15
+ adds r0, 0x2
+ adds r0, r2
+ strh r3, [r0]
+ adds r3, 0x1
+ cmp r3, 0x10
+ ble _0811F2FE
+ ldr r0, =0x00000864
+ bl FlagGet
+ lsls r0, 24
+ cmp r0, 0
+ beq _0811F358
+ ldr r0, =0x0203a120
+ ldr r2, [r0]
+ ldrh r0, [r2]
+ adds r1, r0, 0x1
+ strh r1, [r2]
+ lsls r0, 16
+ lsrs r0, 15
+ adds r3, r2, 0x2
+ adds r0, r3, r0
+ movs r1, 0x11
+ strh r1, [r0]
+ ldrh r0, [r2]
+ adds r1, r0, 0x1
+ strh r1, [r2]
+ lsls r0, 16
+ lsrs r0, 15
+ adds r0, r3, r0
+ movs r1, 0x12
+ strh r1, [r0]
+ ldrh r0, [r2]
+ adds r1, r0, 0x1
+ strh r1, [r2]
+ lsls r0, 16
+ lsrs r0, 15
+ adds r3, r0
+ movs r0, 0x13
+ strh r0, [r3]
+_0811F358:
+ ldr r0, =0x00000866
+ bl FlagGet
+ lsls r0, 24
+ cmp r0, 0
+ beq _0811F37A
+ ldr r0, =0x0203a120
+ ldr r0, [r0]
+ ldrh r1, [r0]
+ adds r2, r1, 0x1
+ strh r2, [r0]
+ lsls r1, 16
+ lsrs r1, 15
+ adds r0, 0x2
+ adds r0, r1
+ movs r1, 0x14
+ strh r1, [r0]
+_0811F37A:
+ bl sub_809D42C
+ cmp r0, 0
+ beq _0811F398
+ ldr r0, =0x0203a120
+ ldr r0, [r0]
+ ldrh r1, [r0]
+ adds r2, r1, 0x1
+ strh r2, [r0]
+ lsls r1, 16
+ lsrs r1, 15
+ adds r0, 0x2
+ adds r0, r1
+ movs r1, 0x15
+ strh r1, [r0]
+_0811F398:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_811F2D4
+
+ thumb_func_start sub_811F3AC
+sub_811F3AC: @ 811F3AC
+ ldr r0, =0x0203a120
+ ldr r0, [r0]
+ ldrb r0, [r0]
+ bx lr
+ .pool
+ thumb_func_end sub_811F3AC
+
+ thumb_func_start sub_811F3B8
+sub_811F3B8: @ 811F3B8
+ push {lr}
+ lsls r0, 24
+ lsrs r2, r0, 24
+ ldr r0, =0x0203a120
+ ldr r1, [r0]
+ ldrh r0, [r1]
+ cmp r2, r0
+ bcs _0811F3D8
+ lsls r0, r2, 1
+ adds r1, 0x2
+ adds r1, r0
+ ldrb r0, [r1]
+ b _0811F3DA
+ .pool
+_0811F3D8:
+ movs r0, 0x16
+_0811F3DA:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_811F3B8
+
+ thumb_func_start sub_811F3E0
+sub_811F3E0: @ 811F3E0
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ lsls r1, 24
+ lsls r2, 16
+ lsrs r5, r2, 16
+ ldr r0, =gEasyChatGroupNamePointers
+ lsrs r1, 22
+ adds r1, r0
+ ldr r1, [r1]
+ adds r0, r4, 0
+ bl CopyString
+ adds r1, r0, 0
+ subs r4, r1, r4
+ lsls r4, 16
+ lsrs r0, r4, 16
+ cmp r0, r5
+ bcs _0811F414
+ movs r2, 0
+_0811F406:
+ strb r2, [r1]
+ adds r1, 0x1
+ adds r0, 0x1
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, r5
+ bcc _0811F406
+_0811F414:
+ movs r0, 0xFF
+ strb r0, [r1]
+ adds r0, r1, 0
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ .pool
+ thumb_func_end sub_811F3E0
+
+ thumb_func_start sub_811F424
+sub_811F424: @ 811F424
+ lsls r0, 24
+ ldr r1, =gEasyChatGroupNamePointers
+ lsrs r0, 22
+ adds r0, r1
+ ldr r0, [r0]
+ bx lr
+ .pool
+ thumb_func_end sub_811F424
+
+ thumb_func_start CopyEasyChatWordPadded
+@ char *CopyEasyChatWordPadded(char *dest, u16 groupIdWordIdPair, u16 minLength)
+CopyEasyChatWordPadded: @ 811F434
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ lsls r1, 16
+ lsrs r1, 16
+ lsls r2, 16
+ lsrs r5, r2, 16
+ bl CopyEasyChatWord
+ adds r1, r0, 0
+ subs r4, r1, r4
+ lsls r4, 16
+ lsrs r0, r4, 16
+ cmp r0, r5
+ bcs _0811F460
+ movs r2, 0
+_0811F452:
+ strb r2, [r1]
+ adds r1, 0x1
+ adds r0, 0x1
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, r5
+ bcc _0811F452
+_0811F460:
+ movs r0, 0xFF
+ strb r0, [r1]
+ adds r0, r1, 0
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end CopyEasyChatWordPadded
+
+ thumb_func_start sub_811F46C
+sub_811F46C: @ 811F46C
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x10
+ movs r3, 0
+_0811F47A:
+ ldr r2, =gEasyChatWordsByLetterPointers
+ lsls r1, r3, 3
+ adds r0, r2, 0x4
+ adds r0, r1, r0
+ ldr r0, [r0]
+ str r0, [sp]
+ adds r1, r2
+ ldr r7, [r1]
+ ldr r0, =0x0203a120
+ ldr r1, [r0]
+ lsls r2, r3, 1
+ adds r1, 0x2E
+ adds r1, r2
+ movs r0, 0
+ strh r0, [r1]
+ mov r10, r0
+ movs r1, 0
+ str r2, [sp, 0x4]
+ adds r0, r3, 0x1
+ str r0, [sp, 0x8]
+ ldr r2, [sp]
+ cmp r1, r2
+ bge _0811F530
+_0811F4A8:
+ ldrh r0, [r7]
+ ldr r2, =0x0000ffff
+ cmp r0, r2
+ bne _0811F4FC
+ adds r7, 0x2
+ ldrh r4, [r7]
+ adds r7, 0x2
+ adds r0, r1, 0x1
+ adds r1, r0, r4
+ b _0811F4FE
+ .pool
+_0811F4C8:
+ ldr r0, =0x0203a120
+ ldr r2, [r0]
+ mov r0, r10
+ lsls r1, r0, 1
+ lsls r0, r3, 4
+ adds r0, r3
+ lsls r0, 3
+ subs r0, r3
+ lsls r0, 2
+ adds r1, r0
+ adds r0, r2, 0
+ adds r0, 0x64
+ adds r0, r1
+ ldrh r1, [r5]
+ strh r1, [r0]
+ movs r0, 0x1
+ add r10, r0
+ adds r2, 0x2E
+ ldr r0, [sp, 0x4]
+ adds r2, r0
+ ldrh r0, [r2]
+ adds r0, 0x1
+ strh r0, [r2]
+ b _0811F526
+ .pool
+_0811F4FC:
+ movs r4, 0x1
+_0811F4FE:
+ movs r6, 0
+ adds r1, 0x1
+ mov r9, r1
+ lsls r2, r4, 1
+ mov r8, r2
+ cmp r6, r4
+ bge _0811F526
+ adds r5, r7, 0
+_0811F50E:
+ ldrh r0, [r5]
+ str r3, [sp, 0xC]
+ bl sub_811F860
+ lsls r0, 24
+ ldr r3, [sp, 0xC]
+ cmp r0, 0
+ bne _0811F4C8
+ adds r5, 0x2
+ adds r6, 0x1
+ cmp r6, r4
+ blt _0811F50E
+_0811F526:
+ add r7, r8
+ mov r1, r9
+ ldr r0, [sp]
+ cmp r1, r0
+ blt _0811F4A8
+_0811F530:
+ ldr r3, [sp, 0x8]
+ cmp r3, 0x1A
+ ble _0811F47A
+ add sp, 0x10
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_811F46C
+
+ thumb_func_start sub_811F548
+sub_811F548: @ 811F548
+ push {lr}
+ lsls r1, 16
+ lsrs r1, 16
+ cmp r0, 0
+ bne _0811F55A
+ adds r0, r1, 0
+ bl sub_811F5C4
+ b _0811F560
+_0811F55A:
+ adds r0, r1, 0
+ bl sub_811F6B8
+_0811F560:
+ ldr r1, =0x0203a120
+ ldr r1, [r1]
+ ldr r2, =0x00003ba0
+ adds r1, r2
+ strh r0, [r1]
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_811F548
+
+ thumb_func_start sub_811F578
+sub_811F578: @ 811F578
+ push {lr}
+ lsls r0, 16
+ lsrs r2, r0, 16
+ ldr r0, =0x0203a120
+ ldr r1, [r0]
+ ldr r3, =0x00003ba0
+ adds r0, r1, r3
+ ldrh r0, [r0]
+ cmp r2, r0
+ bcs _0811F5A4
+ lsls r0, r2, 1
+ ldr r2, =0x00003984
+ adds r1, r2
+ adds r1, r0
+ ldrh r0, [r1]
+ b _0811F5A6
+ .pool
+_0811F5A4:
+ ldr r0, =0x0000ffff
+_0811F5A6:
+ pop {r1}
+ bx r1
+ .pool
+ thumb_func_end sub_811F578
+
+ thumb_func_start sub_811F5B0
+sub_811F5B0: @ 811F5B0
+ ldr r0, =0x0203a120
+ ldr r0, [r0]
+ ldr r1, =0x00003ba0
+ adds r0, r1
+ ldrh r0, [r0]
+ bx lr
+ .pool
+ thumb_func_end sub_811F5B0
+
+ thumb_func_start sub_811F5C4
+sub_811F5C4: @ 811F5C4
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ lsls r0, 16
+ lsrs r2, r0, 16
+ ldr r1, =gEasyChatGroups
+ lsls r0, r2, 3
+ adds r0, r1
+ ldrh r3, [r0, 0x4]
+ mov r8, r3
+ cmp r2, 0
+ beq _0811F5EC
+ cmp r2, 0x15
+ beq _0811F5EC
+ cmp r2, 0x12
+ beq _0811F5EC
+ cmp r2, 0x13
+ bne _0811F64C
+_0811F5EC:
+ lsls r0, r2, 3
+ adds r0, r1
+ ldr r1, [r0]
+ movs r7, 0
+ movs r5, 0
+ cmp r5, r8
+ bcs _0811F698
+ movs r0, 0x7F
+ ands r0, r2
+ lsls r0, 9
+ mov r9, r0
+ adds r4, r1, 0
+ lsls r6, r2, 24
+_0811F606:
+ ldrh r0, [r4]
+ lsrs r1, r6, 24
+ bl sub_811F764
+ lsls r0, 24
+ cmp r0, 0
+ beq _0811F630
+ ldr r0, =0x0203a120
+ ldr r2, [r0]
+ lsls r0, r5, 1
+ ldr r1, =0x00003984
+ adds r2, r1
+ adds r2, r0
+ ldrh r0, [r4]
+ ldr r3, =0x000001ff
+ adds r1, r3, 0
+ ands r0, r1
+ mov r1, r9
+ orrs r0, r1
+ strh r0, [r2]
+ adds r5, 0x1
+_0811F630:
+ adds r4, 0x2
+ adds r7, 0x1
+ cmp r7, r8
+ bcc _0811F606
+ b _0811F698
+ .pool
+_0811F64C:
+ ldr r1, [r0]
+ movs r7, 0
+ movs r5, 0
+ cmp r5, r8
+ bcs _0811F698
+ movs r0, 0x7F
+ ands r0, r2
+ lsls r0, 9
+ mov r10, r0
+ adds r6, r1, 0
+ lsls r2, 24
+ mov r9, r2
+_0811F664:
+ ldrh r4, [r6, 0x4]
+ adds r0, r4, 0
+ mov r2, r9
+ lsrs r1, r2, 24
+ bl sub_811F764
+ lsls r0, 24
+ cmp r0, 0
+ beq _0811F690
+ ldr r0, =0x0203a120
+ ldr r1, [r0]
+ lsls r0, r5, 1
+ ldr r3, =0x00003984
+ adds r1, r3
+ adds r1, r0
+ ldr r2, =0x000001ff
+ adds r0, r2, 0
+ ands r4, r0
+ mov r3, r10
+ orrs r4, r3
+ strh r4, [r1]
+ adds r5, 0x1
+_0811F690:
+ adds r6, 0xC
+ adds r7, 0x1
+ cmp r7, r8
+ bcc _0811F664
+_0811F698:
+ lsls r0, r5, 16
+ lsrs r0, 16
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .pool
+ thumb_func_end sub_811F5C4
+
+ thumb_func_start sub_811F6B8
+sub_811F6B8: @ 811F6B8
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ lsls r0, 16
+ lsrs r1, r0, 16
+ movs r4, 0
+ movs r6, 0
+ ldr r3, =0x0203a120
+ ldr r0, [r3]
+ lsls r5, r1, 1
+ adds r0, 0x2E
+ adds r0, r5
+ ldrh r0, [r0]
+ cmp r6, r0
+ bcs _0811F718
+ mov r8, r3
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 3
+ subs r0, r1
+ lsls r7, r0, 2
+ ldr r0, =0x00003984
+ mov r12, r0
+_0811F6E6:
+ mov r0, r8
+ ldr r3, [r0]
+ adds r1, r6, 0
+ adds r0, r1, 0x1
+ lsls r0, 16
+ lsrs r6, r0, 16
+ lsls r1, 1
+ mov r0, r12
+ adds r2, r3, r0
+ adds r2, r1
+ lsls r1, r4, 1
+ adds r1, r7
+ adds r0, r3, 0
+ adds r0, 0x64
+ adds r0, r1
+ ldrh r0, [r0]
+ strh r0, [r2]
+ adds r0, r4, 0x1
+ lsls r0, 16
+ lsrs r4, r0, 16
+ adds r3, 0x2E
+ adds r3, r5
+ ldrh r3, [r3]
+ cmp r4, r3
+ bcc _0811F6E6
+_0811F718:
+ adds r0, r6, 0
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .pool
+ thumb_func_end sub_811F6B8
+
+ thumb_func_start sub_811F72C
+sub_811F72C: @ 811F72C
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r3, r0, 24
+ movs r2, 0
+ ldr r0, =0x0203a120
+ ldr r0, [r0]
+ ldrh r1, [r0]
+ cmp r2, r1
+ bge _0811F75C
+ adds r4, r3, 0
+ adds r3, r1, 0
+ adds r1, r0, 0x2
+_0811F744:
+ ldrh r0, [r1]
+ cmp r0, r4
+ bne _0811F754
+ movs r0, 0x1
+ b _0811F75E
+ .pool
+_0811F754:
+ adds r1, 0x2
+ adds r2, 0x1
+ cmp r2, r3
+ blt _0811F744
+_0811F75C:
+ movs r0, 0
+_0811F75E:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_811F72C
+
+ thumb_func_start sub_811F764
+sub_811F764: @ 811F764
+ push {r4,lr}
+ lsls r0, 16
+ lsrs r4, r0, 16
+ lsls r1, 24
+ lsrs r2, r1, 24
+ cmp r2, 0x15
+ bhi _0811F81A
+ lsls r0, r2, 2
+ ldr r1, =_0811F780
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .pool
+ .align 2, 0
+_0811F780:
+ .4byte _0811F7D8
+ .4byte _0811F81A
+ .4byte _0811F81A
+ .4byte _0811F81A
+ .4byte _0811F81A
+ .4byte _0811F81A
+ .4byte _0811F81A
+ .4byte _0811F81A
+ .4byte _0811F81A
+ .4byte _0811F81A
+ .4byte _0811F81A
+ .4byte _0811F81A
+ .4byte _0811F81A
+ .4byte _0811F81A
+ .4byte _0811F81A
+ .4byte _0811F81A
+ .4byte _0811F81A
+ .4byte _0811F81A
+ .4byte _0811F808
+ .4byte _0811F808
+ .4byte _0811F80C
+ .4byte _0811F7EE
+_0811F7D8:
+ adds r0, r4, 0
+ bl SpeciesToNationalPokedexNum
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0
+ bl pokedex_flag_operation
+ lsls r0, 24
+ lsrs r0, 24
+ b _0811F82C
+_0811F7EE:
+ adds r0, r4, 0
+ bl sub_811F838
+ cmp r0, 0
+ beq _0811F808
+ adds r0, r4, 0
+ bl SpeciesToNationalPokedexNum
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0
+ bl pokedex_flag_operation
+_0811F808:
+ movs r0, 0x1
+ b _0811F82C
+_0811F80C:
+ lsls r0, r4, 24
+ lsrs r0, 24
+ bl sub_811EF98
+ lsls r0, 24
+ lsrs r0, 24
+ b _0811F82C
+_0811F81A:
+ ldr r1, =gEasyChatGroups
+ lsls r0, r2, 3
+ adds r0, r1
+ ldr r1, [r0]
+ lsls r0, r4, 1
+ adds r0, r4
+ lsls r0, 2
+ adds r0, r1
+ ldrb r0, [r0, 0x8]
+_0811F82C:
+ pop {r4}
+ pop {r1}
+ bx r1
+ .pool
+ thumb_func_end sub_811F764
+
+ thumb_func_start sub_811F838
+sub_811F838: @ 811F838
+ push {lr}
+ lsls r0, 16
+ lsrs r3, r0, 16
+ movs r2, 0
+ ldr r1, =gUnknown_0859E658
+_0811F842:
+ ldrh r0, [r1]
+ cmp r0, r3
+ bne _0811F850
+ movs r0, 0x1
+ b _0811F85A
+ .pool
+_0811F850:
+ adds r1, 0x2
+ adds r2, 0x1
+ cmp r2, 0
+ beq _0811F842
+ movs r0, 0
+_0811F85A:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_811F838
+
+ thumb_func_start sub_811F860
+sub_811F860: @ 811F860
+ push {r4,r5,lr}
+ lsls r0, 16
+ lsrs r5, r0, 25
+ lsls r0, 7
+ lsrs r4, r0, 23
+ adds r0, r5, 0
+ bl sub_811F72C
+ lsls r0, 24
+ cmp r0, 0
+ beq _0811F884
+ adds r0, r4, 0
+ adds r1, r5, 0
+ bl sub_811F764
+ lsls r0, 24
+ lsrs r0, 24
+ b _0811F886
+_0811F884:
+ movs r0, 0
+_0811F886:
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_811F860
+
+ thumb_func_start sub_811F88C
+sub_811F88C: @ 811F88C
+ push {lr}
+ adds r2, r0, 0
+ lsls r1, 16
+ ldr r0, =0xffff0000
+ adds r1, r0
+ lsrs r0, r1, 16
+ ldr r1, =0x0000ffff
+ cmp r0, r1
+ beq _0811F8AE
+ adds r3, r1, 0
+_0811F8A0:
+ strh r3, [r2]
+ adds r2, 0x2
+ subs r0, 0x1
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, r1
+ bne _0811F8A0
+_0811F8AE:
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_811F88C
+
+ thumb_func_start sub_811F8BC
+sub_811F8BC: @ 811F8BC
+ push {lr}
+ bl sub_801B058
+ ldr r1, =0x0000ffff
+ adds r2, r1, 0
+ adds r1, r0, 0x6
+_0811F8C8:
+ strh r2, [r1]
+ subs r1, 0x2
+ cmp r1, r0
+ bge _0811F8C8
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_811F8BC
+
+ thumb_func_start sub_811F8D8
+sub_811F8D8: @ 811F8D8
+ push {r4,r5,lr}
+ asrs r4, r0, 9
+ movs r1, 0x7F
+ ldr r5, =0x000001ff
+ ands r5, r0
+ ands r4, r1
+ adds r0, r4, 0
+ bl sub_811EA28
+ lsls r0, 24
+ cmp r0, 0
+ beq _0811F904
+ adds r0, r5, 0
+ adds r1, r4, 0
+ bl sub_811F764
+ lsls r0, 24
+ lsrs r0, 24
+ b _0811F906
+ .pool
+_0811F904:
+ movs r0, 0
+_0811F906:
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_811F8D8
+
+ .align 2, 0 @ Don't pad with nop.