.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, =gTasks 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 AnimateSprites bl BuildOamBuffer bl UpdatePaletteFade pop {r0} bx r0 thumb_func_end sub_811A278 thumb_func_start sub_811A290 sub_811A290: @ 811A290 push {lr} bl TransferPlttBuffer bl LoadOam bl ProcessSpriteCopyRequests 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, =gTasks 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, =gTasks + 0x8 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 BlendPalettes movs r0, 0 str r0, [sp] adds r0, r4, 0 adds r1, r4, 0 movs r2, 0x10 movs r3, 0 bl BeginNormalPaletteFade 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 BeginNormalPaletteFade 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 BeginNormalPaletteFade movs r0, 0x4 b _0811A41A _0811A3B6: cmp r6, 0 beq _0811A41C movs r0, 0x5 bl PlaySE 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, =gPaletteFade 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, =gPaletteFade 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, =gPaletteFade 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, =gTasks + 0x8 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 ResetSpriteData bl FreeAllSpritePalettes bl ResetPaletteFade 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, =gSpecialVar_0x8004 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, =gSaveBlock1Ptr ldr r0, [r0] ldr r1, =0x00002bb0 adds r4, r0, r1 b _0811A7C2 .pool _0811A578: ldr r0, =gSaveBlock1Ptr ldr r0, [r0] ldr r2, =0x00002bbc adds r4, r0, r2 b _0811A7C2 .pool _0811A58C: ldr r0, =gSaveBlock1Ptr ldr r0, [r0] ldr r3, =0x00002bc8 adds r4, r0, r3 b _0811A7C2 .pool _0811A5A0: ldr r0, =gSaveBlock1Ptr ldr r0, [r0] ldr r1, =0x00002bd4 adds r4, r0, r1 b _0811A7C2 .pool _0811A5B4: ldr r2, =gSaveBlock1Ptr ldr r0, =gSpecialVar_0x8005 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, =gSaveBlock1Ptr 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, =gSaveBlock1Ptr ldr r0, =gSpecialVar_0x8005 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, =gSpecialVar_0x8006 ldrb r5, [r0] b _0811A7C2 .pool _0811A630: ldr r2, =gSaveBlock1Ptr ldr r0, =gSpecialVar_0x8005 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, =gSpecialVar_0x8006 ldrh r0, [r0] lsls r0, 1 adds r0, 0x1C adds r4, r1, r0 movs r5, 0x1 b _0811A7C2 .pool _0811A664: ldr r2, =gSaveBlock1Ptr ldr r0, =gSpecialVar_0x8005 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, =gStringVar3 ldr r1, =gSaveBlock1Ptr 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, =gSaveBlock1Ptr 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, =gSaveBlock1Ptr ldr r0, =gSpecialVar_0x8005 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, =gSpecialVar_0x8006 ldrh r0, [r0] lsls r0, 1 adds r0, 0x4 adds r4, r1, r0 movs r5, 0 b _0811A7C2 .pool _0811A708: ldr r2, =gSaveBlock1Ptr ldr r0, =gSpecialVar_0x8005 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, =gStringVar3 adds r0, r4, 0 movs r1, 0x2 bl InitializeEasyChatWordArray b _0811A7C2 .pool _0811A73C: ldr r2, =gSaveBlock1Ptr ldr r0, =gSpecialVar_0x8005 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, =gSaveBlock1Ptr ldr r0, [r0] ldr r3, =0x00003b6e adds r4, r0, r3 b _0811A7C2 .pool _0811A784: ldr r0, =gSaveBlock1Ptr ldr r0, [r0] ldr r1, =0x00003b5a adds r4, r0, r1 b _0811A7C2 .pool _0811A798: ldr r0, =gSaveBlock1Ptr ldr r0, [r0] ldr r2, =0x00003b6c adds r4, r0, r2 b _0811A7C2 .pool _0811A7AC: ldr r0, =gSaveBlock2Ptr 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, =gSpecialVar_0x8004 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 UpdatePaletteFade ldr r0, =gMain 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 FadeScreen b _0811A840 _0811A80E: ldr r0, =gPaletteFade ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 bne _0811A84E ldr r0, =gSaveBlock1Ptr 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, =gMain 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, =gSaveBlock1Ptr 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, =gSaveBlock1Ptr 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, =gSaveBlock1Ptr 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, =gSaveBlock1Ptr 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, =gUnknown_0203A118 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, =gUnknown_0203A118 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, =gUnknown_0203A118 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, =gUnknown_0203A118 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, =gUnknown_0203A118 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, =gMain ldrh r1, [r0, 0x2E] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _0811ABB8 bl sub_811BF78 ldr r1, =gUnknown_0203A118 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, =gUnknown_0203A118 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, =gUnknown_0203A118 ldr r1, [r2] ldrb r0, [r1, 0x5] adds r0, 0x1 strb r0, [r1, 0x5] b _0811ABDA .pool _0811AC58: ldr r2, =gUnknown_0203A118 ldr r1, [r2] ldrb r0, [r1, 0x6] adds r0, 0x1 b _0811ABD8 .pool _0811AC68: ldr r2, =gUnknown_0203A118 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, =gMain ldrh r1, [r2, 0x2E] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _0811AD4A ldr r0, =gUnknown_0203A118 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, =gUnknown_0203A118 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, =gUnknown_0203A118 ldr r1, [r2] ldrb r0, [r1, 0x5] adds r0, 0x1 strb r0, [r1, 0x5] b _0811AD6E .pool _0811ADD0: ldr r1, =gUnknown_0203A118 ldr r0, [r1] strb r3, [r0, 0x6] adds r6, r1, 0 b _0811AD70 .pool _0811ADE0: ldr r2, =gUnknown_0203A118 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, =gUnknown_0203A118 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, =gMain 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, =gUnknown_0203A118 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, =gMain ldrh r1, [r2, 0x2E] movs r0, 0x2 ands r0, r1 cmp r0, 0 beq _0811AF24 ldr r0, =gUnknown_0203A118 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 ProcessMenuInputNoWrap_ 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, =gUnknown_0203A118 ldr r1, [r1] strb r0, [r1, 0x4] movs r0, 0x7 b _0811AFE6 .pool _0811AFC0: ldr r0, =gSpecialVar_Result strh r1, [r0] ldr r0, =gUnknown_0203A118 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 ProcessMenuInputNoWrap_ 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, =gUnknown_0203A118 ldr r1, [r1] strb r0, [r1, 0x4] movs r0, 0x7 b _0811B03A .pool _0811B020: bl sub_811BE9C ldr r4, =gSpecialVar_Result 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 ProcessMenuInputNoWrap_ 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, =gUnknown_0203A118 ldr r1, [r0] movs r0, 0x1 strb r0, [r1, 0x4] movs r0, 0x7 b _0811B086 .pool _0811B070: bl sub_811B418 ldr r0, =gUnknown_0203A118 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, =gMain 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, =gMain 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, =gUnknown_0203A118 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, =gUnknown_0203A118 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 ProcessMenuInputNoWrap_ 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, =gUnknown_0203A118 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, =gSpecialVar_Result 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, =gUnknown_0203A118 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, =gUnknown_0203A118 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, =gUnknown_0203A118 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, =gUnknown_0203A118 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, =gUnknown_0203A118 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, =gUnknown_0203A118 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, =gUnknown_0203A118 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, =gUnknown_0203A118 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, =gUnknown_0203A118 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, =gUnknown_0203A118 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 PlaySE 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 PlaySE movs r0, 0 b _0811B3DC _0811B3BC: adds r0, r4, 0 bl sub_811B488 ldr r0, =gUnknown_0203A118 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, =gUnknown_0203A118 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, =gUnknown_0203A118 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, =gUnknown_0203A118 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, =gUnknown_0203A118 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, =gUnknown_0203A118 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, =gUnknown_0203A118 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, =gUnknown_0203A118 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, =gUnknown_0203A118 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, =gUnknown_0203A118 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, =gUnknown_0203A118 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, =gUnknown_0203A118 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, =gUnknown_0203A118 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, =gUnknown_0203A118 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, =gUnknown_0203A118 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, =gUnknown_0203A118 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, =gUnknown_0203A118 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, =gUnknown_0203A118 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, =gUnknown_0203A118 ldr r1, [r0] ldrb r0, [r1, 0xB] adds r0, 0x1 strb r0, [r1, 0xB] bl sub_811B768 b _0811B738 .pool _0811B728: ldr r2, =gUnknown_0203A118 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, =gUnknown_0203A118 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, =gUnknown_0203A118 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, =gUnknown_0203A118 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, =gUnknown_0203A118 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, =gUnknown_0203A118 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, =gUnknown_0203A118 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, =gUnknown_0203A118 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, =gUnknown_0203A118 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, =gUnknown_0203A118 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, =gUnknown_0203A118 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, =gUnknown_0203A118 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, =gUnknown_0203A118 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, =gUnknown_0203A118 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, =gUnknown_0203A118 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, =gUnknown_0203A118 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, =gUnknown_0203A118 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, =gUnknown_0203A118 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, =gUnknown_0203A118 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, =gUnknown_0203A118 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, =gUnknown_0203A118 ldr r0, [r0] adds r0, 0x3C bx lr .pool thumb_func_end sub_811BA94 thumb_func_start sub_811BAA0 sub_811BAA0: @ 811BAA0 ldr r0, =gUnknown_0203A118 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, =gUnknown_0203A118 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, =gUnknown_0203A118 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, =gUnknown_0203A118 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, =gUnknown_0203A118 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, =gUnknown_0203A118 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, =gUnknown_0203A118 ldr r0, [r0] ldrb r0, [r0] cmp r0, 0x4 bne _0811BB5C ldr r0, =gText_StopGivingPkmnMail b _0811BB7A .pool _0811BB5C: cmp r0, 0x4 blt _0811BB78 cmp r0, 0x10 bgt _0811BB78 cmp r0, 0xF blt _0811BB78 ldr r0, =gText_LikeToQuitQuiz str r0, [r2] ldr r0, =gText_ChallengeQuestionMark b _0811BB7E .pool _0811BB78: ldr r0, =gText_QuitEditing _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, =gText_AllTextBeingEditedWill str r2, [r0] ldr r0, =gText_BeDeletedThatOkay str r0, [r1] bx lr .pool thumb_func_end sub_811BB88 thumb_func_start sub_811BB9C sub_811BB9C: @ 811BB9C ldr r2, =gUnknown_0203A118 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, =gUnknown_0203A118 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, =gUnknown_0203A118 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, =gUnknown_0203A118 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, =gUnknown_0203A118 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, =gUnknown_0203A118 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, =gUnknown_0203A118 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, =gUnknown_0203A118 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, =gUnknown_0203A118 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, =gUnknown_0203A118 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, =gUnknown_0203A118 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, =gUnknown_0203A118 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, =gUnknown_0203A118 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, =gSaveBlock1Ptr 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, =gUnknown_0203A118 ldr r0, [r0] ldrb r0, [r0] cmp r0, 0x12 bne _0811BDC8 bl sub_811BCF4 b _0811BDDE .pool _0811BDC8: ldr r0, =gSaveBlock1Ptr 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, =gSaveBlock1Ptr ldr r4, [r0] bl UnkTextUtil_Reset ldr r0, =0x00003b70 adds r5, r4, r0 adds r0, r5, 0 bl StringLength 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 TVShowConvertInternationalString movs r0, 0 mov r1, sp bl UnkTextUtil_SetPtrI b _0811BE3C .pool _0811BE34: ldr r1, =gText_Lady movs r0, 0 bl UnkTextUtil_SetPtrI _0811BE3C: ldr r1, =gText_F700sQuiz adds r0, r6, 0 bl UnkTextUtil_StringExpandPlaceholders 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, =gUnknown_0203A118 ldr r0, [r0] adds r4, r0, 0 adds r4, 0x3C ldr r2, =gStringVar2 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, =gUnknown_0203A118 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, =gUnknown_0203A118 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, =gSpecialVar_0x8004 movs r0, 0x2 b _0811BF12 .pool _0811BEE4: ldr r0, =gSpecialVar_0x8004 strh r1, [r0] b _0811BF14 .pool _0811BEF0: bl sub_811BE54 ldr r4, =gSpecialVar_0x8004 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, =gSpecialVar_0x8004 _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, =gUnknown_0203A118 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, =gUnknown_0203A11C 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, =gUnknown_0203A11C 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, =gEasyChatWindow_Gfx 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, =gEasyChatWindow_Tilemap movs r0, 0x3 movs r2, 0 movs r3, 0 bl CopyToBgTilemapBuffer bl sub_811D60C ldr r0, =gUnknown_0203A11C 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, =gUnknown_0203A11C 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, =gUnknown_0203A11C 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, =gUnknown_0203A11C 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, =gUnknown_0203A11C 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, =gUnknown_0203A11C 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, =gUnknown_0203A11C 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, =gUnknown_0203A11C 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, =gUnknown_0203A11C 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, =gUnknown_0203A11C 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, =gUnknown_0203A11C 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, =gUnknown_0203A11C 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, =gUnknown_0203A11C 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, =gUnknown_0203A11C 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, =gUnknown_0203A11C 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, =gUnknown_0203A11C 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, =gUnknown_0203A11C 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, =gUnknown_0203A11C 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, =gUnknown_0203A11C 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, =gUnknown_0203A11C 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, =gUnknown_0203A11C 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, =gUnknown_0203A11C 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, =gUnknown_0203A11C 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, =gUnknown_0203A11C 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, =gUnknown_0203A11C 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, =gUnknown_0203A11C 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, =gUnknown_0203A11C 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, =gUnknown_0203A11C 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, =gUnknown_0203A11C 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, =gUnknown_0203A11C 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, =gUnknown_0203A11C 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, =gUnknown_0203A11C 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, =gUnknown_0203A11C 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, =gUnknown_0203A11C 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, =gUnknown_0203A11C 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, =gUnknown_0203A11C 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, =gUnknown_0203A11C 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, =gUnknown_0203A11C 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, =gUnknown_0203A11C 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, =gUnknown_0203A11C 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, =gUnknown_0203A11C 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, =gUnknown_0203A11C 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, =gUnknown_0203A11C 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, =gUnknown_0203A11C 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, =gUnknown_0203A11C 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, =gUnknown_0203A11C 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 ResetPaletteFade ldr r0, =gEasyChatMode_Pal movs r1, 0 movs r2, 0x20 bl LoadPalette ldr r0, =gUnknown_08597B14 movs r1, 0x10 movs r2, 0x20 bl LoadPalette ldr r0, =gUnknown_08597B34 movs r1, 0x40 movs r2, 0x20 bl LoadPalette ldr r0, =gUnknown_08597C1C movs r1, 0xA0 movs r2, 0x8 bl LoadPalette ldr r4, =gUnknown_08597C24 adds r0, r4, 0 movs r1, 0xB0 movs r2, 0xC bl LoadPalette adds r0, r4, 0 movs r1, 0xF0 movs r2, 0xC bl LoadPalette adds r0, r4, 0 movs r1, 0x30 movs r2, 0xC bl LoadPalette 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 PrintTextOnWindow 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, =gText_CreateAQuiz str r0, [sp, 0xC] b _0811D1BC .pool _0811D180: ldr r0, =gText_SelectTheAnswer str r0, [sp, 0xC] b _0811D1BC .pool _0811D18C: ldr r0, =gText_OnlyOnePhrase str r0, [sp, 0xC] ldr r0, =gText_OriginalSongWillBeUsed b _0811D1BA .pool _0811D19C: ldr r0, =gText_LyricsCantBeDeleted str r0, [sp, 0xC] b _0811D1BC .pool _0811D1A8: ldr r0, =gText_CombineTwoWordsOrPhrases3 str r0, [sp, 0xC] b _0811D1BC .pool _0811D1B4: ldr r0, =gText_YouCannotQuitHere str r0, [sp, 0xC] ldr r0, =gText_SectionMustBeCompleted _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, =gUnknown_0203A11C 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, =gUnknown_0203A11C 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, =gUnknown_0203A11C 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 StringAppend 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 StringAppend 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, =gUnknown_0203A11C 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, =gUnknown_0203A11C 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, =gUnknown_0203A11C 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, =gUnknown_0203A11C 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, =gUnknown_0203A11C ldr r2, [r1] movs r0, 0 strb r0, [r2, 0x6] ldr r2, [r1] movs r0, 0xA b _0811DA84 .pool _0811DA18: ldr r1, =gUnknown_0203A11C ldr r2, [r1] movs r3, 0 movs r0, 0x9 b _0811DA44 .pool _0811DA28: ldr r1, =gUnknown_0203A11C ldr r2, [r1] movs r0, 0xB strb r0, [r2, 0x6] ldr r2, [r1] movs r0, 0x11 b _0811DA84 .pool _0811DA3C: ldr r1, =gUnknown_0203A11C 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, =gUnknown_0203A11C ldr r2, [r1] movs r0, 0x11 strb r0, [r2, 0x6] ldr r2, [r1] movs r0, 0xA b _0811DA84 .pool _0811DA64: ldr r1, =gUnknown_0203A11C ldr r2, [r1] movs r0, 0x12 strb r0, [r2, 0x6] ldr r2, [r1] movs r0, 0x16 b _0811DA84 .pool _0811DA78: ldr r1, =gUnknown_0203A11C 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, =gUnknown_0203A11C 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, =gUnknown_0203A11C 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, =gUnknown_0203A11C 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, =gUnknown_0203A11C 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, =gUnknown_0203A11C 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, =gUnknown_0203A11C 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 LoadSpriteSheets ldr r0, =gUnknown_08597CC0 bl LoadSpritePalettes 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 CreateSprite lsls r0, 24 lsrs r0, 24 ldr r1, =gUnknown_0203A11C ldr r2, [r1] movs r1, 0xB6 lsls r1, 2 adds r2, r1 lsls r1, r0, 4 adds r1, r0 lsls r1, 2 ldr r0, =gSprites 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, =gUnknown_0203A11C 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, =gUnknown_0203A11C 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, =gUnknown_0203A11C 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 CreateSprite lsls r0, 24 lsrs r0, 24 ldr r5, =gUnknown_0203A11C 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, =gSprites 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 CreateSprite 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, =gUnknown_0203A11C ldr r0, [r5] movs r4, 0xB7 lsls r4, 2 adds r0, r4 ldr r0, [r0] bl DestroySprite 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 DestroySprite 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, =gUnknown_0203A11C 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, =gUnknown_0203A11C mov r8, r0 ldr r0, [r0] movs r4, 0xB7 lsls r4, 2 adds r0, r4 ldr r0, [r0] movs r1, 0 bl StartSpriteAnim 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 StartSpriteAnim mov r1, r8 ldr r0, [r1] adds r0, r6 ldr r1, [r0] strh r5, [r1, 0x20] b _0811E192 .pool _0811E150: ldr r6, =gUnknown_0203A11C ldr r0, [r6] movs r4, 0xB7 lsls r4, 2 adds r0, r4 ldr r0, [r0] movs r1, 0x1 bl StartSpriteAnim 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 StartSpriteAnim 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, =gUnknown_0203A11C ldr r0, [r5] movs r4, 0xB7 lsls r4, 2 adds r0, r4 ldr r0, [r0] adds r1, r6, 0 bl StartSpriteAnim 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 StartSpriteAnim 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, =gUnknown_0203A11C ldr r0, [r6] movs r4, 0xB7 lsls r4, 2 adds r0, r4 ldr r0, [r0] movs r1, 0x1 bl StartSpriteAnim 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 StartSpriteAnim 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 CreateSprite lsls r0, 24 lsrs r0, 24 ldr r1, =gUnknown_0203A11C ldr r2, [r1] movs r1, 0xB9 lsls r1, 2 adds r2, r1 lsls r1, r0, 4 adds r1, r0 lsls r1, 2 ldr r0, =gSprites 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, =gUnknown_0203A11C 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, =gUnknown_0203A11C ldr r0, [r4] movs r1, 0xB9 lsls r1, 2 adds r0, r1 ldr r0, [r0] cmp r0, 0 beq _0811E3A2 bl DestroySprite 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 CreateSprite lsls r0, 24 lsrs r0, 24 ldr r5, =gUnknown_0203A11C ldr r2, [r5] movs r1, 0xBA lsls r1, 2 adds r2, r1 lsls r1, r0, 4 adds r1, r0 lsls r1, 2 ldr r4, =gSprites 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 CreateSprite 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, =gUnknown_0203A11C 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 StartSpriteAnim b _0811E476 _0811E466: ldr r0, [r4] movs r1, 0xBB lsls r1, 2 adds r0, r1 ldr r0, [r0] movs r1, 0x2 bl StartSpriteAnim _0811E476: ldr r0, =gUnknown_0203A11C 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, =gUnknown_0203A11C 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 StartSpriteAnim pop {r0} bx r0 .pool thumb_func_end sub_811E4AC thumb_func_start sub_811E4D0 sub_811E4D0: @ 811E4D0 push {r4-r6,lr} ldr r5, =gUnknown_0203A11C 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 DestroySprite ldr r0, [r5] movs r1, 0xBA lsls r1, 2 adds r0, r1 ldr r0, [r0] bl DestroySprite 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, =gUnknown_0203A11C ldr r0, [r0] movs r1, 0xBB lsls r1, 2 adds r0, r1 ldr r0, [r0] movs r1, 0x4 bl StartSpriteAnim 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, =gUnknown_0203A11C ldr r0, [r0] movs r1, 0xBB lsls r1, 2 adds r0, r1 ldr r0, [r0] movs r1, 0x1 bl StartSpriteAnim b _0811E5AE .pool _0811E59C: ldr r0, =gUnknown_0203A11C ldr r0, [r0] movs r1, 0xBB lsls r1, 2 adds r0, r1 ldr r0, [r0] movs r1, 0x2 bl StartSpriteAnim _0811E5AE: pop {r0} bx r0 .pool thumb_func_end sub_811E578 thumb_func_start sub_811E5B8 sub_811E5B8: @ 811E5B8 ldr r0, =gUnknown_0203A11C 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 CreateSprite lsls r0, 24 lsrs r1, r0, 24 cmp r1, 0x40 beq _0811E602 ldr r0, =gUnknown_0203A11C ldr r2, [r0] movs r0, 0xBC lsls r0, 2 adds r2, r0 lsls r0, r1, 4 adds r0, r1 lsls r0, 2 ldr r1, =gSprites adds r0, r1 str r0, [r2] _0811E602: adds r0, r4, 0 movs r1, 0x60 movs r2, 0x9C movs r3, 0 bl CreateSprite lsls r0, 24 lsrs r1, r0, 24 cmp r1, 0x40 beq _0811E636 ldr r0, =gUnknown_0203A11C ldr r2, [r0] movs r0, 0xBD lsls r0, 2 adds r2, r0 lsls r0, r1, 4 adds r0, r1 lsls r0, 2 ldr r1, =gSprites 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, =gUnknown_0203A11C 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, =gUnknown_0203A11C 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, =gUnknown_0203A11C 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, =gUnknown_0203A11C 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 CreateSprite lsls r0, 24 lsrs r1, r0, 24 cmp r1, 0x40 beq _0811E74E ldr r0, =gUnknown_0203A11C ldr r2, [r0] movs r0, 0xBE lsls r0, 2 adds r2, r0 lsls r0, r1, 4 adds r0, r1 lsls r0, 2 ldr r1, =gSprites adds r0, r1 str r0, [r2] _0811E74E: adds r0, r4, 0 movs r1, 0xDC movs r2, 0x9C movs r3, 0x1 bl CreateSprite lsls r0, 24 lsrs r1, r0, 24 cmp r1, 0x40 beq _0811E77E ldr r0, =gUnknown_0203A11C ldr r2, [r0] movs r0, 0xBF lsls r0, 2 adds r2, r0 lsls r0, r1, 4 adds r0, r1 lsls r0, 2 ldr r1, =gSprites adds r0, r1 str r0, [r2] movs r1, 0x1 bl StartSpriteAnim _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, =gUnknown_0203A11C 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, =gUnknown_0203A11C 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, =SpriteCallbackDummy 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, =gSprites lsls r0, r2, 4 adds r0, r2 lsls r0, 2 adds r0, r1 ldrb r2, [r0, 0x5] movs r1, 0xD negs r1, r1 ands r1, r2 strb r1, [r0, 0x5] movs r1, 0x2 bl StartSpriteAnim _0811E892: ldr r0, =gSaveBlock2Ptr 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, =gSprites lsls r0, r2, 4 adds r0, r2 lsls r0, 2 adds r0, r1 ldrb r2, [r0, 0x5] movs r1, 0xD negs r1, r1 ands r1, r2 strb r1, [r0, 0x5] movs r1, 0x3 bl StartSpriteAnim _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 ECWord_CheckIfOutsideOfValidRange ECWord_CheckIfOutsideOfValidRange: @ 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 ECWord_CheckIfOutsideOfValidRange 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, =gText_ThreeQuestionMarks 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 StringCopy 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, =gText_ThreeQuestionMarks _0811EDB2: bl StringLength 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 Random 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, =gSpecialVar_0x8004 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, =gSaveBlock1Ptr ldr r0, [r0] ldr r1, =0x00002bb0 adds r5, r0, r1 movs r2, 0x2 b _0811EF46 .pool _0811EF04: ldr r0, =gSaveBlock1Ptr 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, =gSaveBlock1Ptr ldr r0, [r0] ldr r1, =0x00002bc8 b _0811EF42 .pool _0811EF3C: ldr r0, =gSaveBlock1Ptr ldr r0, [r0] ldr r1, =0x00002bd4 _0811EF42: adds r5, r0, r1 _0811EF44: movs r2, 0x3 _0811EF46: movs r3, 0x2 _0811EF48: ldr r4, =gStringVar4 adds r0, r4, 0 adds r1, r5, 0 bl ConvertEasyChatWordsToString adds r0, r4, 0 bl ShowFieldAutoScrollMessage _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 Random 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, =gStringVar2 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, =gSaveBlock1Ptr 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, =gSaveBlock1Ptr 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 Random 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 Random 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 IsNationalPokedexEnabled 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 Random 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 GetSetPokedexFlag 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 InitEasyChatPhrases InitEasyChatPhrases: @ 811F184 push {r4-r7,lr} movs r2, 0 ldr r5, =gSaveBlock1Ptr 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, =gSaveBlock1Ptr 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, =gSaveBlock1Ptr 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, =gSaveBlock1Ptr 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, =gSaveBlock1Ptr 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, =gSaveBlock1Ptr 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 InitEasyChatPhrases thumb_func_start sub_811F28C sub_811F28C: @ 811F28C push {r4,lr} ldr r4, =gUnknown_0203A120 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, =gUnknown_0203A120 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, =gUnknown_0203A120 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, =gUnknown_0203A120 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, =gUnknown_0203A120 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 IsNationalPokedexEnabled cmp r0, 0 beq _0811F398 ldr r0, =gUnknown_0203A120 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, =gUnknown_0203A120 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, =gUnknown_0203A120 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 StringCopy 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, =gUnknown_0203A120 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, =gUnknown_0203A120 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, =gUnknown_0203A120 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, =gUnknown_0203A120 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, =gUnknown_0203A120 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, =gUnknown_0203A120 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, =gUnknown_0203A120 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, =gUnknown_0203A120 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, =gUnknown_0203A120 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 GetSetPokedexFlag 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 GetSetPokedexFlag _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 InitializeEasyChatWordArray InitializeEasyChatWordArray: @ 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 InitializeEasyChatWordArray 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.