diff options
Diffstat (limited to 'asm/easy_chat.s')
-rw-r--r-- | asm/easy_chat.s | 11183 |
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. |