.include "asm/macros.inc" .include "constants/constants.inc" .syntax unified .text thumb_func_start sub_810D3F4 sub_810D3F4: @ 810D3F4 push {r4-r6,lr} adds r4, r1, 0 lsls r0, 24 lsrs r0, 24 adds r5, r0, 0 cmp r5, 0x1 bhi _0810D410 ldr r6, _0810D418 @ =gUnknown_203ADBC movs r0, 0x14 bl Alloc str r0, [r6] cmp r0, 0 bne _0810D41C _0810D410: adds r0, r4, 0 bl SetMainCallback2 b _0810D462 .align 2, 0 _0810D418: .4byte gUnknown_203ADBC _0810D41C: cmp r5, 0x1 beq _0810D42A ldr r0, _0810D468 @ =gUnknown_203ADCC str r4, [r0] movs r1, 0 strh r1, [r0, 0x6] strh r1, [r0, 0x4] _0810D42A: ldr r1, [r6] movs r0, 0xFF strb r0, [r1, 0x4] ldr r0, [r6] movs r2, 0 strb r2, [r0, 0x5] ldr r1, [r6] movs r0, 0x1 negs r0, r0 strb r0, [r1, 0x8] ldr r0, [r6] str r2, [r0] ldr r5, _0810D46C @ =sub_810D4A0 adds r4, r6, 0 movs r3, 0 _0810D448: ldr r0, [r4] lsls r1, r2, 1 adds r0, 0xC adds r0, r1 strh r3, [r0] adds r0, r2, 0x1 lsls r0, 24 lsrs r2, r0, 24 cmp r2, 0x2 bls _0810D448 adds r0, r5, 0 bl SetMainCallback2 _0810D462: pop {r4-r6} pop {r0} bx r0 .align 2, 0 _0810D468: .4byte gUnknown_203ADCC _0810D46C: .4byte sub_810D4A0 thumb_func_end sub_810D3F4 thumb_func_start sub_810D470 sub_810D470: @ 810D470 push {lr} bl RunTasks bl AnimateSprites bl BuildOamBuffer bl do_scheduled_bg_tilemap_copies_to_vram bl UpdatePaletteFade pop {r0} bx r0 thumb_func_end sub_810D470 thumb_func_start sub_810D48C sub_810D48C: @ 810D48C push {lr} bl LoadOam bl ProcessSpriteCopyRequests bl TransferPlttBuffer pop {r0} bx r0 thumb_func_end sub_810D48C thumb_func_start sub_810D4A0 sub_810D4A0: @ 810D4A0 push {lr} _0810D4A2: bl sub_810D4C0 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 beq _0810D4BA bl sub_80BF708 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _0810D4A2 _0810D4BA: pop {r0} bx r0 thumb_func_end sub_810D4A0 thumb_func_start sub_810D4C0 sub_810D4C0: @ 810D4C0 push {r4,lr} sub sp, 0x4 ldr r0, _0810D4E0 @ =gMain movs r1, 0x87 lsls r1, 3 adds r0, r1 ldrb r0, [r0] cmp r0, 0x14 bls _0810D4D4 b _0810D688 _0810D4D4: lsls r0, 2 ldr r1, _0810D4E4 @ =_0810D4E8 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _0810D4E0: .4byte gMain _0810D4E4: .4byte _0810D4E8 .align 2, 0 _0810D4E8: .4byte _0810D53C .4byte _0810D546 .4byte _0810D54C .4byte _0810D552 .4byte _0810D558 .4byte _0810D55E .4byte _0810D564 .4byte _0810D56A .4byte _0810D584 .4byte _0810D594 .4byte _0810D59A .4byte _0810D5A8 .4byte _0810D5BA .4byte _0810D5C0 .4byte _0810D5C6 .4byte _0810D5CC .4byte _0810D608 .4byte _0810D60E .4byte _0810D616 .4byte _0810D630 .4byte _0810D668 _0810D53C: bl sub_80BF768 bl clear_scheduled_bg_copies_to_vram b _0810D674 _0810D546: bl remove_some_task b _0810D674 _0810D54C: bl FreeAllSpritePalettes b _0810D674 _0810D552: bl ResetPaletteFade b _0810D674 _0810D558: bl ResetSpriteData b _0810D674 _0810D55E: bl sub_80984D8 b _0810D674 _0810D564: bl ResetTasks b _0810D674 _0810D56A: bl sub_810D71C lsls r0, 24 cmp r0, 0 beq _0810D5B2 ldr r0, _0810D580 @ =gUnknown_203ADBC ldr r1, [r0] movs r0, 0 strh r0, [r1, 0xC] b _0810D674 .align 2, 0 _0810D580: .4byte gUnknown_203ADBC _0810D584: bl sub_810D78C lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 beq _0810D592 b _0810D6A0 _0810D592: b _0810D674 _0810D594: bl sub_810E8F0 b _0810D674 _0810D59A: bl sub_810DDA4 bl sub_810DBF0 bl sub_810DE08 b _0810D674 _0810D5A8: bl sub_810D83C lsls r0, 24 cmp r0, 0 bne _0810D674 _0810D5B2: bl sub_810D6AC movs r0, 0x1 b _0810D6A2 _0810D5BA: bl sub_810D878 b _0810D674 _0810D5C0: bl sub_810DB34 b _0810D674 _0810D5C6: bl sub_80985E4 b _0810D674 _0810D5CC: ldr r0, _0810D5F8 @ =sub_810DEA0 movs r1, 0 bl CreateTask adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 ldr r0, _0810D5FC @ =gUnknown_3005E70 ldr r2, _0810D600 @ =gUnknown_203ADCC ldrh r1, [r2, 0x4] ldrh r2, [r2, 0x6] bl ListMenuInit ldr r2, _0810D604 @ =gTasks lsls r1, r4, 2 adds r1, r4 lsls r1, 3 adds r1, r2 lsls r0, 24 lsrs r0, 24 strh r0, [r1, 0x8] b _0810D674 .align 2, 0 _0810D5F8: .4byte sub_810DEA0 _0810D5FC: .4byte gUnknown_3005E70 _0810D600: .4byte gUnknown_203ADCC _0810D604: .4byte gTasks _0810D608: bl sub_810DB5C b _0810D674 _0810D60E: movs r0, 0x1D bl sub_812B1F0 b _0810D674 _0810D616: ldr r0, _0810D62C @ =gUnknown_203ADCC ldrb r0, [r0, 0x8] cmp r0, 0x1 bne _0810D674 movs r0, 0x1 negs r0, r0 movs r1, 0x10 movs r2, 0 bl BlendPalettes b _0810D674 .align 2, 0 _0810D62C: .4byte gUnknown_203ADCC _0810D630: ldr r0, _0810D64C @ =gUnknown_203ADCC ldrb r0, [r0, 0x8] cmp r0, 0x1 bne _0810D650 movs r0, 0x1 negs r0, r0 movs r1, 0 str r1, [sp] movs r2, 0x10 movs r3, 0 bl BeginNormalPaletteFade b _0810D674 .align 2, 0 _0810D64C: .4byte gUnknown_203ADCC _0810D650: movs r0, 0 movs r1, 0 movs r2, 0 bl sub_80A0A48 movs r0, 0x1 bl sub_810DE94 movs r0, 0x2 bl PlaySE b _0810D674 _0810D668: bl sub_80BF72C lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 beq _0810D6A0 _0810D674: ldr r1, _0810D684 @ =gMain movs r0, 0x87 lsls r0, 3 adds r1, r0 ldrb r0, [r1] adds r0, 0x1 strb r0, [r1] b _0810D6A0 .align 2, 0 _0810D684: .4byte gMain _0810D688: ldr r0, _0810D698 @ =sub_810D48C bl SetVBlankCallback ldr r0, _0810D69C @ =sub_810D470 bl SetMainCallback2 movs r0, 0x1 b _0810D6A2 .align 2, 0 _0810D698: .4byte sub_810D48C _0810D69C: .4byte sub_810D470 _0810D6A0: movs r0, 0 _0810D6A2: add sp, 0x4 pop {r4} pop {r1} bx r1 thumb_func_end sub_810D4C0 thumb_func_start sub_810D6AC sub_810D6AC: @ 810D6AC push {lr} sub sp, 0x4 movs r0, 0x1 negs r0, r0 movs r1, 0 str r1, [sp] movs r2, 0 movs r3, 0x10 bl BeginNormalPaletteFade ldr r0, _0810D6DC @ =sub_810D6E8 movs r1, 0 bl CreateTask ldr r0, _0810D6E0 @ =sub_810D48C bl SetVBlankCallback ldr r0, _0810D6E4 @ =sub_810D470 bl SetMainCallback2 add sp, 0x4 pop {r0} bx r0 .align 2, 0 _0810D6DC: .4byte sub_810D6E8 _0810D6E0: .4byte sub_810D48C _0810D6E4: .4byte sub_810D470 thumb_func_end sub_810D6AC thumb_func_start sub_810D6E8 sub_810D6E8: @ 810D6E8 push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 ldr r0, _0810D714 @ =gPaletteFade ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 bne _0810D70C ldr r0, _0810D718 @ =gUnknown_203ADCC ldr r0, [r0] bl SetMainCallback2 bl sub_810DC40 adds r0, r4, 0 bl DestroyTask _0810D70C: pop {r4} pop {r0} bx r0 .align 2, 0 _0810D714: .4byte gPaletteFade _0810D718: .4byte gUnknown_203ADCC thumb_func_end sub_810D6E8 thumb_func_start sub_810D71C sub_810D71C: @ 810D71C push {r4,r5,lr} bl sub_80BF7C8 ldr r5, _0810D77C @ =gUnknown_203ADC0 movs r4, 0x80 lsls r4, 4 adds r0, r4, 0 bl Alloc str r0, [r5] cmp r0, 0 beq _0810D784 movs r1, 0 adds r2, r4, 0 bl memset movs r0, 0 bl ResetBgsAndClearDma3BusyFlags ldr r1, _0810D780 @ =gUnknown_8453F6C movs r0, 0 movs r2, 0x2 bl InitBgsFromTemplates ldr r1, [r5] movs r0, 0x1 bl SetBgTilemapBuffer movs r0, 0x1 bl schedule_bg_copy_tilemap_to_vram movs r1, 0x82 lsls r1, 5 movs r0, 0 bl SetGpuReg movs r0, 0x50 movs r1, 0 bl SetGpuReg movs r0, 0 bl ShowBg movs r0, 0x1 bl ShowBg movs r0, 0x1 b _0810D786 .align 2, 0 _0810D77C: .4byte gUnknown_203ADC0 _0810D780: .4byte gUnknown_8453F6C _0810D784: movs r0, 0 _0810D786: pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_810D71C thumb_func_start sub_810D78C sub_810D78C: @ 810D78C push {r4,r5,lr} sub sp, 0x4 ldr r5, _0810D7A8 @ =gUnknown_203ADBC ldr r0, [r5] movs r1, 0xC ldrsh r4, [r0, r1] cmp r4, 0x1 beq _0810D7D0 cmp r4, 0x1 bgt _0810D7AC cmp r4, 0 beq _0810D7B6 b _0810D814 .align 2, 0 _0810D7A8: .4byte gUnknown_203ADBC _0810D7AC: cmp r4, 0x2 beq _0810D7F0 cmp r4, 0x3 beq _0810D800 b _0810D814 _0810D7B6: bl reset_temp_tile_data_buffers ldr r1, _0810D7CC @ =gUnknown_8E85090 str r4, [sp] movs r0, 0x1 movs r2, 0 movs r3, 0 bl decompress_and_copy_tile_data_to_vram b _0810D806 .align 2, 0 _0810D7CC: .4byte gUnknown_8E85090 _0810D7D0: bl free_temp_tile_data_buffers_if_possible lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 beq _0810D830 ldr r0, _0810D7E8 @ =gUnknown_8E85458 ldr r1, _0810D7EC @ =gUnknown_203ADC0 ldr r1, [r1] bl LZDecompressWram b _0810D806 .align 2, 0 _0810D7E8: .4byte gUnknown_8E85458 _0810D7EC: .4byte gUnknown_203ADC0 _0810D7F0: ldr r0, _0810D7FC @ =gUnknown_8E85408 movs r1, 0 movs r2, 0x60 bl LoadCompressedPalette b _0810D806 .align 2, 0 _0810D7FC: .4byte gUnknown_8E85408 _0810D800: ldr r0, _0810D810 @ =gUnknown_83D4240 bl LoadCompressedObjectPic _0810D806: ldr r1, [r5] ldrh r0, [r1, 0xC] adds r0, 0x1 strh r0, [r1, 0xC] b _0810D830 .align 2, 0 _0810D810: .4byte gUnknown_83D4240 _0810D814: ldr r0, _0810D828 @ =gUnknown_83D4248 bl LoadCompressedObjectPalette ldr r0, _0810D82C @ =gUnknown_203ADBC ldr r1, [r0] movs r0, 0 strh r0, [r1, 0xC] movs r0, 0x1 b _0810D832 .align 2, 0 _0810D828: .4byte gUnknown_83D4248 _0810D82C: .4byte gUnknown_203ADBC _0810D830: movs r0, 0 _0810D832: add sp, 0x4 pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_810D78C thumb_func_start sub_810D83C sub_810D83C: @ 810D83C push {r4,lr} ldr r4, _0810D860 @ =gUnknown_203ADC4 movs r0, 0xF8 bl Alloc str r0, [r4] cmp r0, 0 beq _0810D868 ldr r4, _0810D864 @ =gUnknown_203ADC8 movs r0, 0xD9 lsls r0, 1 bl Alloc str r0, [r4] cmp r0, 0 beq _0810D868 movs r0, 0x1 b _0810D872 .align 2, 0 _0810D860: .4byte gUnknown_203ADC4 _0810D864: .4byte gUnknown_203ADC8 _0810D868: bl sub_810DC40 bl sub_810D6AC movs r0, 0 _0810D872: pop {r4} pop {r1} bx r1 thumb_func_end sub_810D83C thumb_func_start sub_810D878 sub_810D878: @ 810D878 push {r4,r5,lr} movs r4, 0 b _0810D8A4 _0810D87E: ldr r0, _0810D938 @ =gSaveBlock1Ptr ldr r0, [r0] lsls r1, r4, 2 adds r0, r1 movs r1, 0xA6 lsls r1, 2 adds r0, r1 ldrh r0, [r0] bl ItemId_GetItem ldr r1, _0810D93C @ =gUnknown_203ADC4 ldr r2, [r1] lsls r1, r4, 3 adds r1, r2 str r0, [r1] str r4, [r1, 0x4] adds r0, r4, 0x1 lsls r0, 16 lsrs r4, r0, 16 _0810D8A4: ldr r0, _0810D940 @ =gUnknown_203ADBC ldr r0, [r0] ldrb r0, [r0, 0x7] cmp r4, r0 bcc _0810D87E ldr r0, _0810D93C @ =gUnknown_203ADC4 ldr r3, [r0] lsls r0, r4, 3 adds r0, r3 ldr r1, _0810D944 @ =gUnknown_84161C1 str r1, [r0] movs r1, 0x2 negs r1, r1 str r1, [r0, 0x4] ldr r2, _0810D948 @ =gUnknown_3005E70 str r3, [r2] ldr r0, _0810D940 @ =gUnknown_203ADBC ldr r3, [r0] ldrb r0, [r3, 0x7] adds r0, 0x1 movs r1, 0 strh r0, [r2, 0xC] strb r1, [r2, 0x10] strb r1, [r2, 0x11] movs r0, 0x9 strb r0, [r2, 0x12] movs r1, 0x1 movs r0, 0x1 strb r0, [r2, 0x13] ldrb r0, [r2, 0x16] movs r4, 0x8 negs r4, r4 ands r4, r0 orrs r4, r1 movs r0, 0x39 negs r0, r0 ands r4, r0 movs r0, 0x10 orrs r4, r0 strb r4, [r2, 0x16] ldrb r1, [r2, 0x14] movs r0, 0x10 negs r0, r0 ands r0, r1 movs r5, 0x2 orrs r0, r5 strb r0, [r2, 0x14] ldrb r1, [r3, 0x6] strh r1, [r2, 0xE] ldrb r1, [r2, 0x17] movs r3, 0x40 negs r3, r3 ands r3, r1 orrs r3, r5 movs r1, 0xF ands r0, r1 movs r1, 0x20 orrs r0, r1 strb r0, [r2, 0x14] movs r0, 0x30 strb r0, [r2, 0x15] ldr r0, _0810D94C @ =sub_810D954 str r0, [r2, 0x4] ldr r0, _0810D950 @ =sub_810DA20 str r0, [r2, 0x8] movs r0, 0x3F ands r4, r0 strb r4, [r2, 0x16] ands r3, r0 strb r3, [r2, 0x17] pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0810D938: .4byte gSaveBlock1Ptr _0810D93C: .4byte gUnknown_203ADC4 _0810D940: .4byte gUnknown_203ADBC _0810D944: .4byte gUnknown_84161C1 _0810D948: .4byte gUnknown_3005E70 _0810D94C: .4byte sub_810D954 _0810D950: .4byte sub_810DA20 thumb_func_end sub_810D878 thumb_func_start sub_810D954 sub_810D954: @ 810D954 push {r4,r5,lr} sub sp, 0x14 adds r4, r0, 0 lsls r1, 24 lsrs r1, 24 cmp r1, 0x1 beq _0810D968 movs r0, 0x5 bl PlaySE _0810D968: ldr r5, _0810D9BC @ =gUnknown_203ADBC ldr r1, [r5] ldrb r0, [r1, 0x4] cmp r0, 0xFF bne _0810DA0A ldrb r1, [r1, 0x5] movs r0, 0x1 eors r0, r1 bl sub_8098940 movs r0, 0x2 negs r0, r0 cmp r4, r0 beq _0810D9CE lsls r0, r4, 16 lsrs r0, 16 bl sub_810DD68 lsls r0, 16 lsrs r4, r0, 16 ldr r0, [r5] ldrb r1, [r0, 0x5] adds r0, r4, 0 bl sub_80988E8 adds r0, r4, 0 bl ItemId_GetPocket lsls r0, 24 lsrs r0, 24 cmp r0, 0x4 bne _0810D9C4 adds r0, r4, 0 bl ItemIdToBattleMoveId lsls r0, 16 lsrs r0, 16 movs r1, 0xD muls r1, r0 ldr r0, _0810D9C0 @ =gMoveNames adds r5, r1, r0 b _0810D9DA .align 2, 0 _0810D9BC: .4byte gUnknown_203ADBC _0810D9C0: .4byte gMoveNames _0810D9C4: adds r0, r4, 0 bl ItemId_GetDescription adds r5, r0, 0 b _0810D9DA _0810D9CE: ldr r0, _0810DA14 @ =0x00000177 ldr r1, [r5] ldrb r1, [r1, 0x5] bl sub_80988E8 ldr r5, _0810DA18 @ =gUnknown_84178BE _0810D9DA: ldr r0, _0810DA1C @ =gUnknown_203ADBC ldr r2, [r0] ldrb r0, [r2, 0x5] movs r1, 0x1 eors r0, r1 movs r4, 0 strb r0, [r2, 0x5] movs r0, 0x1 movs r1, 0 bl FillWindowPixelBuffer movs r1, 0x3 str r1, [sp] movs r0, 0x2 str r0, [sp, 0x4] str r4, [sp, 0x8] str r4, [sp, 0xC] str r1, [sp, 0x10] movs r0, 0x1 movs r1, 0x2 adds r2, r5, 0 movs r3, 0 bl sub_810EA34 _0810DA0A: add sp, 0x14 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0810DA14: .4byte 0x00000177 _0810DA18: .4byte gUnknown_84178BE _0810DA1C: .4byte gUnknown_203ADBC thumb_func_end sub_810D954 thumb_func_start sub_810DA20 sub_810DA20: @ 810DA20 push {r4-r6,lr} sub sp, 0x14 adds r4, r1, 0 lsls r0, 24 lsrs r6, r0, 24 lsls r2, 24 lsrs r5, r2, 24 ldr r0, _0810DA4C @ =gUnknown_203ADBC ldr r0, [r0] ldrb r1, [r0, 0x4] cmp r1, 0xFF beq _0810DA58 lsls r0, r4, 24 lsrs r0, 24 cmp r1, r0 bne _0810DA50 adds r0, r5, 0 movs r1, 0x2 bl sub_810DAD4 b _0810DA58 .align 2, 0 _0810DA4C: .4byte gUnknown_203ADBC _0810DA50: adds r0, r5, 0 movs r1, 0xFF bl sub_810DAD4 _0810DA58: movs r0, 0x2 negs r0, r0 cmp r4, r0 beq _0810DA9E lsls r0, r4, 16 lsrs r0, 16 bl sub_810DD80 adds r1, r0, 0 lsls r1, 16 lsrs r1, 16 ldr r0, _0810DAA8 @ =gStringVar1 movs r2, 0x1 movs r3, 0x3 bl ConvertIntToDecimalStringN ldr r4, _0810DAAC @ =gStringVar4 ldr r1, _0810DAB0 @ =gUnknown_84162B9 adds r0, r4, 0 bl StringExpandPlaceholders str r5, [sp] movs r0, 0 str r0, [sp, 0x4] str r0, [sp, 0x8] movs r0, 0xFF str r0, [sp, 0xC] movs r0, 0x1 str r0, [sp, 0x10] adds r0, r6, 0 movs r1, 0 adds r2, r4, 0 movs r3, 0x6E bl sub_810EA34 _0810DA9E: add sp, 0x14 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _0810DAA8: .4byte gStringVar1 _0810DAAC: .4byte gStringVar4 _0810DAB0: .4byte gUnknown_84162B9 thumb_func_end sub_810DA20 thumb_func_start sub_810DAB4 sub_810DAB4: @ 810DAB4 push {r4,lr} adds r4, r1, 0 lsls r0, 24 lsrs r0, 24 lsls r4, 24 lsrs r4, 24 bl ListMenuGetYCoordForPrintingArrowCursor lsls r0, 24 lsrs r0, 24 adds r1, r4, 0 bl sub_810DAD4 pop {r4} pop {r0} bx r0 thumb_func_end sub_810DAB4 thumb_func_start sub_810DAD4 sub_810DAD4: @ 810DAD4 push {r4,r5,lr} sub sp, 0x14 lsls r0, 24 lsrs r5, r0, 24 lsls r1, 24 lsrs r1, 24 cmp r1, 0xFF bne _0810DB10 movs r0, 0x2 movs r1, 0 bl GetFontAttribute adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 movs r0, 0x2 movs r1, 0x1 bl GetFontAttribute lsls r0, 24 lsrs r0, 24 str r4, [sp] str r0, [sp, 0x4] movs r0, 0 movs r1, 0 movs r2, 0 adds r3, r5, 0 bl FillWindowPixelRect b _0810DB26 _0810DB10: ldr r2, _0810DB30 @ =gUnknown_841623B str r5, [sp] movs r0, 0 str r0, [sp, 0x4] str r0, [sp, 0x8] str r0, [sp, 0xC] str r1, [sp, 0x10] movs r1, 0x2 movs r3, 0 bl sub_810EA34 _0810DB26: add sp, 0x14 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0810DB30: .4byte gUnknown_841623B thumb_func_end sub_810DAD4 thumb_func_start sub_810DB34 sub_810DB34: @ 810DB34 push {lr} sub sp, 0x14 ldr r2, _0810DB58 @ =gUnknown_84178A7 movs r1, 0x1 str r1, [sp] movs r0, 0 str r0, [sp, 0x4] str r1, [sp, 0x8] str r0, [sp, 0xC] str r0, [sp, 0x10] movs r0, 0x2 movs r1, 0 movs r3, 0 bl sub_810EA34 add sp, 0x14 pop {r0} bx r0 .align 2, 0 _0810DB58: .4byte gUnknown_84178A7 thumb_func_end sub_810DB34 thumb_func_start sub_810DB5C sub_810DB5C: @ 810DB5C push {r4,lr} sub sp, 0x10 ldr r4, _0810DB90 @ =gUnknown_203ADBC ldr r1, [r4] ldrb r0, [r1, 0x7] ldrb r1, [r1, 0x6] subs r0, r1 adds r0, 0x1 str r0, [sp] movs r0, 0x6E str r0, [sp, 0x4] str r0, [sp, 0x8] ldr r0, _0810DB94 @ =gUnknown_203ADD0 str r0, [sp, 0xC] movs r0, 0x2 movs r1, 0x80 movs r2, 0x8 movs r3, 0x68 bl AddScrollIndicatorArrowPairParametrized ldr r1, [r4] strb r0, [r1, 0x8] add sp, 0x10 pop {r4} pop {r0} bx r0 .align 2, 0 _0810DB90: .4byte gUnknown_203ADBC _0810DB94: .4byte gUnknown_203ADD0 thumb_func_end sub_810DB5C thumb_func_start sub_810DB98 sub_810DB98: @ 810DB98 push {r4,lr} sub sp, 0x10 ldr r4, _0810DBCC @ =gUnknown_203ADBC ldr r1, [r4] movs r0, 0x1 strh r0, [r1, 0xA] movs r0, 0x2 str r0, [sp] movs r0, 0x6E str r0, [sp, 0x4] str r0, [sp, 0x8] adds r1, 0xA str r1, [sp, 0xC] movs r0, 0x2 movs r1, 0xD4 movs r2, 0x78 movs r3, 0x98 bl AddScrollIndicatorArrowPairParametrized ldr r1, [r4] strb r0, [r1, 0x8] add sp, 0x10 pop {r4} pop {r0} bx r0 .align 2, 0 _0810DBCC: .4byte gUnknown_203ADBC thumb_func_end sub_810DB98 thumb_func_start sub_810DBD0 sub_810DBD0: @ 810DBD0 push {r4,lr} ldr r4, _0810DBEC @ =gUnknown_203ADBC ldr r1, [r4] ldrb r0, [r1, 0x8] cmp r0, 0xFF beq _0810DBE6 bl RemoveScrollIndicatorArrowPair ldr r1, [r4] movs r0, 0xFF strb r0, [r1, 0x8] _0810DBE6: pop {r4} pop {r0} bx r0 .align 2, 0 _0810DBEC: .4byte gUnknown_203ADBC thumb_func_end sub_810DBD0 thumb_func_start sub_810DBF0 sub_810DBF0: @ 810DBF0 push {r4,r5,lr} ldr r0, _0810DC30 @ =gUnknown_203ADCC ldrh r1, [r0, 0x4] adds r4, r0, 0 ldr r5, _0810DC34 @ =gUnknown_203ADBC cmp r1, 0 beq _0810DC14 ldrh r0, [r4, 0x4] ldr r1, [r5] ldrb r3, [r1, 0x6] adds r0, r3 ldrb r2, [r1, 0x7] adds r1, r2, 0x1 cmp r0, r1 ble _0810DC14 subs r0, r3, 0x1 subs r0, r2, r0 strh r0, [r4, 0x4] _0810DC14: adds r3, r4, 0 ldrh r0, [r3, 0x4] ldrh r1, [r3, 0x6] adds r0, r1 ldr r1, [r5] ldrb r1, [r1, 0x7] adds r2, r1, 0x1 cmp r0, r2 blt _0810DC3A cmp r2, 0x1 bgt _0810DC38 movs r0, 0 strh r0, [r3, 0x6] b _0810DC3A .align 2, 0 _0810DC30: .4byte gUnknown_203ADCC _0810DC34: .4byte gUnknown_203ADBC _0810DC38: strh r1, [r4, 0x6] _0810DC3A: pop {r4,r5} pop {r0} bx r0 thumb_func_end sub_810DBF0 thumb_func_start sub_810DC40 sub_810DC40: @ 810DC40 push {lr} ldr r0, _0810DC7C @ =gUnknown_203ADBC ldr r0, [r0] cmp r0, 0 beq _0810DC4E bl Free _0810DC4E: ldr r0, _0810DC80 @ =gUnknown_203ADC0 ldr r0, [r0] cmp r0, 0 beq _0810DC5A bl Free _0810DC5A: ldr r0, _0810DC84 @ =gUnknown_203ADC4 ldr r0, [r0] cmp r0, 0 beq _0810DC66 bl Free _0810DC66: ldr r0, _0810DC88 @ =gUnknown_203ADC8 ldr r0, [r0] cmp r0, 0 beq _0810DC72 bl Free _0810DC72: bl FreeAllWindowBuffers pop {r0} bx r0 .align 2, 0 _0810DC7C: .4byte gUnknown_203ADBC _0810DC80: .4byte gUnknown_203ADC0 _0810DC84: .4byte gUnknown_203ADC4 _0810DC88: .4byte gUnknown_203ADC8 thumb_func_end sub_810DC40 thumb_func_start sub_810DC8C sub_810DC8C: @ 810DC8C push {r4,lr} sub sp, 0x4 lsls r0, 24 lsrs r4, r0, 24 ldr r0, _0810DCB0 @ =gUnknown_203ADCC ldrb r0, [r0, 0x8] cmp r0, 0x1 bne _0810DCB4 movs r0, 0x1 negs r0, r0 movs r1, 0 str r1, [sp] movs r2, 0 movs r3, 0x10 bl BeginNormalPaletteFade b _0810DCC4 .align 2, 0 _0810DCB0: .4byte gUnknown_203ADCC _0810DCB4: movs r0, 0 movs r1, 0 movs r2, 0 bl sub_80A0A70 movs r0, 0x3 bl PlaySE _0810DCC4: ldr r0, _0810DCDC @ =gTasks lsls r1, r4, 2 adds r1, r4 lsls r1, 3 adds r1, r0 ldr r0, _0810DCE0 @ =sub_810DCE4 str r0, [r1] add sp, 0x4 pop {r4} pop {r0} bx r0 .align 2, 0 _0810DCDC: .4byte gTasks _0810DCE0: .4byte sub_810DCE4 thumb_func_end sub_810DC8C thumb_func_start sub_810DCE4 sub_810DCE4: @ 810DCE4 push {r4,r5,lr} lsls r0, 24 lsrs r5, r0, 24 lsls r0, r5, 2 adds r0, r5 lsls r0, 3 ldr r1, _0810DD28 @ =gTasks+0x8 adds r4, r0, r1 ldr r0, _0810DD2C @ =gPaletteFade ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 bne _0810DD4E bl sub_80A0AAC lsls r0, 24 cmp r0, 0 bne _0810DD4E ldrb r0, [r4] ldr r4, _0810DD30 @ =gUnknown_203ADD0 adds r2, r4, 0x2 adds r1, r4, 0 bl sub_810713C ldr r0, _0810DD34 @ =gUnknown_203ADBC ldr r0, [r0] ldr r0, [r0] cmp r0, 0 beq _0810DD38 bl SetMainCallback2 b _0810DD40 .align 2, 0 _0810DD28: .4byte gTasks+0x8 _0810DD2C: .4byte gPaletteFade _0810DD30: .4byte gUnknown_203ADD0 _0810DD34: .4byte gUnknown_203ADBC _0810DD38: subs r0, r4, 0x4 ldr r0, [r0] bl SetMainCallback2 _0810DD40: bl sub_810DBD0 bl sub_810DC40 adds r0, r5, 0 bl DestroyTask _0810DD4E: pop {r4,r5} pop {r0} bx r0 thumb_func_end sub_810DCE4 thumb_func_start sub_810DD54 sub_810DD54: @ 810DD54 ldr r1, _0810DD64 @ =gUnknown_203ADCC ldrb r0, [r1, 0x6] ldrb r1, [r1, 0x4] adds r0, r1 lsls r0, 24 lsrs r0, 24 bx lr .align 2, 0 _0810DD64: .4byte gUnknown_203ADCC thumb_func_end sub_810DD54 thumb_func_start sub_810DD68 sub_810DD68: @ 810DD68 lsls r0, 16 ldr r1, _0810DD7C @ =gSaveBlock1Ptr ldr r1, [r1] lsrs r0, 14 adds r1, r0 movs r0, 0xA6 lsls r0, 2 adds r1, r0 ldrh r0, [r1] bx lr .align 2, 0 _0810DD7C: .4byte gSaveBlock1Ptr thumb_func_end sub_810DD68 thumb_func_start sub_810DD80 sub_810DD80: @ 810DD80 push {lr} lsls r0, 16 ldr r1, _0810DD9C @ =gSaveBlock1Ptr lsrs r0, 14 ldr r1, [r1] adds r0, r1 ldr r1, _0810DDA0 @ =0x0000029a adds r0, r1 bl GetBagItemId lsls r0, 16 lsrs r0, 16 pop {r1} bx r1 .align 2, 0 _0810DD9C: .4byte gSaveBlock1Ptr _0810DDA0: .4byte 0x0000029a thumb_func_end sub_810DD80 thumb_func_start sub_810DDA4 sub_810DDA4: @ 810DDA4 push {r4,r5,lr} bl sub_809A4E8 ldr r4, _0810DE00 @ =gUnknown_203ADBC ldr r1, [r4] movs r0, 0 strb r0, [r1, 0x7] movs r2, 0 ldr r3, _0810DE04 @ =gSaveBlock1Ptr ldr r0, [r3] movs r1, 0xA6 lsls r1, 2 adds r0, r1 ldrh r0, [r0] cmp r0, 0 beq _0810DDEA adds r5, r4, 0 adds r4, r3, 0 adds r3, r1, 0 _0810DDCA: ldr r0, [r5] ldrb r1, [r0, 0x7] adds r1, 0x1 strb r1, [r0, 0x7] adds r0, r2, 0x1 lsls r0, 16 lsrs r2, r0, 16 cmp r2, 0x1D bhi _0810DDEA ldr r0, [r4] lsls r1, r2, 2 adds r0, r1 adds r0, r3 ldrh r0, [r0] cmp r0, 0 bne _0810DDCA _0810DDEA: ldr r0, _0810DE00 @ =gUnknown_203ADBC ldr r1, [r0] ldrb r0, [r1, 0x7] adds r0, 0x1 cmp r0, 0x6 ble _0810DDF8 movs r0, 0x6 _0810DDF8: strb r0, [r1, 0x6] pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0810DE00: .4byte gUnknown_203ADBC _0810DE04: .4byte gSaveBlock1Ptr thumb_func_end sub_810DDA4 thumb_func_start sub_810DE08 sub_810DE08: @ 810DE08 push {r4-r6,lr} ldr r0, _0810DE64 @ =gUnknown_203ADCC ldrh r1, [r0, 0x6] adds r6, r0, 0 cmp r1, 0x3 bls _0810DE5C movs r4, 0 ldrh r0, [r6, 0x6] subs r0, 0x3 cmp r4, r0 bgt _0810DE5C ldrh r1, [r6, 0x4] ldr r5, _0810DE68 @ =gUnknown_203ADBC ldr r2, [r5] ldrb r0, [r2, 0x6] adds r1, r0 ldrb r0, [r2, 0x7] adds r0, 0x1 cmp r1, r0 beq _0810DE5C adds r3, r6, 0 _0810DE32: ldrh r0, [r3, 0x6] subs r0, 0x1 strh r0, [r3, 0x6] ldrh r0, [r3, 0x4] adds r0, 0x1 strh r0, [r3, 0x4] adds r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 ldrh r0, [r3, 0x6] subs r0, 0x3 cmp r4, r0 bgt _0810DE5C ldrh r1, [r6, 0x4] ldr r2, [r5] ldrb r0, [r2, 0x6] adds r1, r0 ldrb r0, [r2, 0x7] adds r0, 0x1 cmp r1, r0 bne _0810DE32 _0810DE5C: pop {r4-r6} pop {r0} bx r0 .align 2, 0 _0810DE64: .4byte gUnknown_203ADCC _0810DE68: .4byte gUnknown_203ADBC thumb_func_end sub_810DE08 thumb_func_start sub_810DE6C sub_810DE6C: @ 810DE6C push {lr} sub sp, 0x8 movs r1, 0x6 str r1, [sp] adds r0, 0x1 lsls r0, 24 lsrs r0, 24 str r0, [sp, 0x4] movs r0, 0x1 movs r1, 0 movs r2, 0xE movs r3, 0x1E bl sub_80F6B08 movs r0, 0x1 bl schedule_bg_copy_tilemap_to_vram add sp, 0x8 pop {r0} bx r0 thumb_func_end sub_810DE6C thumb_func_start sub_810DE94 sub_810DE94: @ 810DE94 ldr r1, _0810DE9C @ =gUnknown_203ADCC strb r0, [r1, 0x8] bx lr .align 2, 0 _0810DE9C: .4byte gUnknown_203ADCC thumb_func_end sub_810DE94 thumb_func_start sub_810DEA0 sub_810DEA0: @ 810DEA0 push {r4-r6,lr} sub sp, 0x4 lsls r0, 24 lsrs r5, r0, 24 lsls r0, r5, 2 adds r0, r5 lsls r0, 3 ldr r1, _0810DF10 @ =gTasks+0x8 adds r6, r0, r1 ldr r0, _0810DF14 @ =gPaletteFade ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 bne _0810DF9E bl sub_80A0A98 lsls r0, 24 cmp r0, 0 bne _0810DF9E ldr r0, _0810DF18 @ =gMain ldrh r1, [r0, 0x2E] movs r0, 0x4 ands r0, r1 cmp r0, 0 beq _0810DF20 ldrb r0, [r6] mov r4, sp adds r4, 0x2 mov r1, sp adds r2, r4, 0 bl get_coro_args_x18_x1A mov r0, sp ldrh r1, [r0] ldrh r0, [r4] adds r1, r0 ldr r0, _0810DF1C @ =gUnknown_203ADBC ldr r0, [r0] ldrb r0, [r0, 0x7] cmp r1, r0 beq _0810DF20 movs r0, 0x5 bl PlaySE mov r0, sp ldrh r1, [r4] ldrh r0, [r0] adds r1, r0 lsls r1, 16 asrs r1, 16 adds r0, r5, 0 bl sub_810DFE0 b _0810DF9E .align 2, 0 _0810DF10: .4byte gTasks+0x8 _0810DF14: .4byte gPaletteFade _0810DF18: .4byte gMain _0810DF1C: .4byte gUnknown_203ADBC _0810DF20: ldrb r0, [r6] bl ListMenuHandleInput adds r4, r0, 0 ldrb r0, [r6] ldr r1, _0810DF44 @ =gUnknown_203ADD0 adds r2, r1, 0x2 bl get_coro_args_x18_x1A movs r0, 0x2 negs r0, r0 cmp r4, r0 beq _0810DF48 adds r0, 0x1 cmp r4, r0 bne _0810DF6C b _0810DF9E .align 2, 0 _0810DF44: .4byte gUnknown_203ADD0 _0810DF48: movs r0, 0x5 bl PlaySE movs r0, 0 bl sub_810DE94 ldr r0, _0810DF64 @ =gTasks lsls r1, r5, 2 adds r1, r5 lsls r1, 3 adds r1, r0 ldr r0, _0810DF68 @ =sub_810DC8C str r0, [r1] b _0810DF9E .align 2, 0 _0810DF64: .4byte gTasks _0810DF68: .4byte sub_810DC8C _0810DF6C: movs r0, 0x5 bl PlaySE movs r0, 0x1 bl sub_810DE6C bl sub_810DBD0 strh r4, [r6, 0x2] lsls r0, r4, 16 lsrs r0, 16 bl sub_810DD80 strh r0, [r6, 0x4] ldrb r0, [r6] movs r1, 0x2 bl sub_810DAB4 ldr r1, _0810DFA8 @ =gTasks lsls r0, r5, 2 adds r0, r5 lsls r0, 3 adds r0, r1 ldr r1, _0810DFAC @ =sub_810E274 str r1, [r0] _0810DF9E: add sp, 0x4 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _0810DFA8: .4byte gTasks _0810DFAC: .4byte sub_810E274 thumb_func_end sub_810DEA0 thumb_func_start sub_810DFB0 sub_810DFB0: @ 810DFB0 push {r4,lr} adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 movs r0, 0 bl sub_810DE6C bl sub_810DB5C ldr r1, _0810DFD8 @ =gTasks lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r0, r1 ldr r1, _0810DFDC @ =sub_810DEA0 str r1, [r0] pop {r4} pop {r0} bx r0 .align 2, 0 _0810DFD8: .4byte gTasks _0810DFDC: .4byte sub_810DEA0 thumb_func_end sub_810DFB0 thumb_func_start sub_810DFE0 sub_810DFE0: @ 810DFE0 push {r4-r6,lr} mov r6, r9 mov r5, r8 push {r5,r6} sub sp, 0x14 adds r4, r1, 0 lsls r0, 24 lsrs r0, 24 lsls r4, 16 lsrs r4, 16 lsls r5, r0, 2 adds r5, r0 lsls r5, 3 ldr r0, _0810E09C @ =gTasks+0x8 mov r8, r0 adds r6, r5, r0 ldrb r0, [r6] movs r1, 0x10 movs r2, 0x1 bl sub_8107BD0 strh r4, [r6, 0x2] ldr r0, _0810E0A0 @ =gUnknown_203ADBC ldr r0, [r0] movs r1, 0 mov r9, r1 strb r4, [r0, 0x4] ldr r4, _0810E0A4 @ =gStringVar1 ldrh r0, [r6, 0x2] bl sub_810DD68 lsls r0, 16 lsrs r0, 16 bl ItemId_GetItem adds r1, r0, 0 adds r0, r4, 0 bl StringCopy ldr r4, _0810E0A8 @ =gStringVar4 ldr r1, _0810E0AC @ =gUnknown_841633F adds r0, r4, 0 bl StringExpandPlaceholders movs r0, 0x1 movs r1, 0 bl FillWindowPixelBuffer movs r1, 0x3 str r1, [sp] movs r0, 0x2 str r0, [sp, 0x4] str r1, [sp, 0x8] mov r0, r9 str r0, [sp, 0xC] str r0, [sp, 0x10] movs r0, 0x1 movs r1, 0x2 adds r2, r4, 0 movs r3, 0 bl sub_810EA34 movs r4, 0x20 negs r4, r4 ldrb r0, [r6] bl ListMenuGetYCoordForPrintingArrowCursor adds r1, r0, 0 lsls r1, 16 lsrs r1, 16 adds r0, r4, 0 bl sub_80986A8 movs r0, 0 bl sub_8098660 ldrb r0, [r6] movs r1, 0x2 bl sub_810DAB4 movs r1, 0x8 negs r1, r1 add r8, r1 add r5, r8 ldr r0, _0810E0B0 @ =sub_810E0B4 str r0, [r5] add sp, 0x14 pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _0810E09C: .4byte gTasks+0x8 _0810E0A0: .4byte gUnknown_203ADBC _0810E0A4: .4byte gStringVar1 _0810E0A8: .4byte gStringVar4 _0810E0AC: .4byte gUnknown_841633F _0810E0B0: .4byte sub_810E0B4 thumb_func_end sub_810DFE0 thumb_func_start sub_810E0B4 sub_810E0B4: @ 810E0B4 push {r4-r7,lr} mov r7, r8 push {r7} lsls r0, 24 lsrs r6, r0, 24 mov r8, r6 lsls r4, r6, 2 adds r4, r6 lsls r4, 3 ldr r0, _0810E11C @ =gTasks+0x8 adds r4, r0 ldrb r0, [r4] bl ListMenuHandleInput ldrb r0, [r4] ldr r7, _0810E120 @ =gUnknown_203ADD0 adds r2, r7, 0x2 adds r1, r7, 0 bl get_coro_args_x18_x1A movs r5, 0x20 negs r5, r5 ldrb r0, [r4] bl ListMenuGetYCoordForPrintingArrowCursor adds r1, r0, 0 lsls r1, 16 lsrs r1, 16 adds r0, r5, 0 bl sub_80986A8 ldr r0, _0810E124 @ =gMain ldrh r1, [r0, 0x2E] movs r0, 0x5 ands r0, r1 cmp r0, 0 beq _0810E12C movs r0, 0x5 bl PlaySE ldr r0, _0810E128 @ =gUnknown_203ADBC ldr r1, [r0] movs r0, 0xFF strb r0, [r1, 0x4] subs r0, r7, 0x4 ldrh r1, [r0, 0x4] ldrh r0, [r0, 0x6] adds r1, r0 adds r0, r6, 0 bl sub_810E160 b _0810E150 .align 2, 0 _0810E11C: .4byte gTasks+0x8 _0810E120: .4byte gUnknown_203ADD0 _0810E124: .4byte gMain _0810E128: .4byte gUnknown_203ADBC _0810E12C: movs r0, 0x2 ands r0, r1 cmp r0, 0 beq _0810E150 movs r0, 0x5 bl PlaySE ldr r0, _0810E15C @ =gUnknown_203ADBC ldr r1, [r0] movs r0, 0xFF strb r0, [r1, 0x4] subs r0, r7, 0x4 ldrh r1, [r0, 0x4] ldrh r0, [r0, 0x6] adds r1, r0 mov r0, r8 bl sub_810E200 _0810E150: pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0810E15C: .4byte gUnknown_203ADBC thumb_func_end sub_810E0B4 thumb_func_start sub_810E160 sub_810E160: @ 810E160 push {r4-r7,lr} mov r7, r8 push {r7} adds r4, r1, 0 lsls r0, 24 lsrs r2, r0, 24 lsls r0, r2, 2 adds r0, r2 lsls r7, r0, 3 ldr r0, _0810E190 @ =gTasks+0x8 mov r8, r0 adds r6, r7, r0 movs r0, 0x2 ldrsh r1, [r6, r0] cmp r1, r4 beq _0810E186 subs r0, r4, 0x1 cmp r1, r0 bne _0810E194 _0810E186: adds r0, r2, 0 adds r1, r4, 0 bl sub_810E200 b _0810E1E6 .align 2, 0 _0810E190: .4byte gTasks+0x8 _0810E194: ldr r0, _0810E1F0 @ =gSaveBlock1Ptr ldr r0, [r0] movs r2, 0xA6 lsls r2, 2 adds r0, r2 adds r2, r4, 0 bl sub_8108D60 ldrb r0, [r6] ldr r5, _0810E1F4 @ =gUnknown_203ADD0 adds r2, r5, 0x2 adds r1, r5, 0 bl sub_810713C movs r1, 0x2 ldrsh r0, [r6, r1] cmp r0, r4 bcs _0810E1C0 subs r1, r5, 0x4 ldrh r0, [r1, 0x6] subs r0, 0x1 strh r0, [r1, 0x6] _0810E1C0: bl sub_810D878 ldr r0, _0810E1F8 @ =gUnknown_3005E70 subs r2, r5, 0x4 ldrh r1, [r2, 0x4] ldrh r2, [r2, 0x6] bl ListMenuInit lsls r0, 24 lsrs r0, 24 strh r0, [r6] movs r0, 0x1 bl sub_8098660 mov r0, r8 subs r0, 0x8 adds r0, r7, r0 ldr r1, _0810E1FC @ =sub_810DEA0 str r1, [r0] _0810E1E6: pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0810E1F0: .4byte gSaveBlock1Ptr _0810E1F4: .4byte gUnknown_203ADD0 _0810E1F8: .4byte gUnknown_3005E70 _0810E1FC: .4byte sub_810DEA0 thumb_func_end sub_810E160 thumb_func_start sub_810E200 sub_810E200: @ 810E200 push {r4-r7,lr} mov r7, r8 push {r7} adds r4, r1, 0 lsls r0, 24 lsrs r0, 24 lsls r1, r0, 2 adds r1, r0 lsls r7, r1, 3 ldr r0, _0810E264 @ =gTasks+0x8 mov r8, r0 adds r6, r7, r0 ldrb r0, [r6] ldr r5, _0810E268 @ =gUnknown_203ADD0 adds r2, r5, 0x2 adds r1, r5, 0 bl sub_810713C movs r1, 0x2 ldrsh r0, [r6, r1] cmp r0, r4 bcs _0810E234 subs r1, r5, 0x4 ldrh r0, [r1, 0x6] subs r0, 0x1 strh r0, [r1, 0x6] _0810E234: bl sub_810D878 ldr r0, _0810E26C @ =gUnknown_3005E70 subs r2, r5, 0x4 ldrh r1, [r2, 0x4] ldrh r2, [r2, 0x6] bl ListMenuInit lsls r0, 24 lsrs r0, 24 strh r0, [r6] movs r0, 0x1 bl sub_8098660 mov r0, r8 subs r0, 0x8 adds r0, r7, r0 ldr r1, _0810E270 @ =sub_810DEA0 str r1, [r0] pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0810E264: .4byte gTasks+0x8 _0810E268: .4byte gUnknown_203ADD0 _0810E26C: .4byte gUnknown_3005E70 _0810E270: .4byte sub_810DEA0 thumb_func_end sub_810E200 thumb_func_start sub_810E274 sub_810E274: @ 810E274 push {r4-r6,lr} mov r6, r9 mov r5, r8 push {r5,r6} sub sp, 0x14 lsls r0, 24 lsrs r0, 24 lsls r4, r0, 2 adds r4, r0 lsls r4, 3 ldr r0, _0810E340 @ =gTasks+0x8 mov r9, r0 adds r6, r4, r0 movs r0, 0x4 bl sub_810EA9C movs r0, 0 bl sub_810EAB4 mov r8, r0 mov r0, r8 lsls r0, 24 lsrs r0, 24 mov r8, r0 movs r0, 0x2 movs r1, 0x1 bl GetFontAttribute adds r0, 0x2 lsls r0, 24 lsrs r0, 24 str r0, [sp] movs r5, 0x3 str r5, [sp, 0x4] ldr r0, _0810E344 @ =gUnknown_8453F74 str r0, [sp, 0x8] movs r0, 0x4 movs r1, 0x2 movs r2, 0x8 movs r3, 0x2 bl PrintTextArray movs r0, 0x2 movs r1, 0x1 bl GetFontAttribute adds r0, 0x2 lsls r0, 24 lsrs r0, 24 str r0, [sp] str r5, [sp, 0x4] movs r5, 0 str r5, [sp, 0x8] movs r0, 0x4 movs r1, 0x2 movs r2, 0 movs r3, 0x2 bl sub_810F7D8 ldrh r0, [r6, 0x2] bl sub_810DD68 lsls r0, 16 lsrs r0, 16 ldr r1, _0810E348 @ =gStringVar1 bl sub_8099E90 ldr r6, _0810E34C @ =gStringVar4 ldr r1, _0810E350 @ =gUnknown_84162FF adds r0, r6, 0 bl StringExpandPlaceholders movs r0, 0x2 str r0, [sp] movs r0, 0x1 str r0, [sp, 0x4] str r5, [sp, 0x8] str r5, [sp, 0xC] str r0, [sp, 0x10] mov r0, r8 movs r1, 0x2 adds r2, r6, 0 movs r3, 0 bl sub_810EA34 movs r0, 0 bl schedule_bg_copy_tilemap_to_vram movs r0, 0x8 negs r0, r0 add r9, r0 add r4, r9 ldr r0, _0810E354 @ =sub_810E358 str r0, [r4] add sp, 0x14 pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _0810E340: .4byte gTasks+0x8 _0810E344: .4byte gUnknown_8453F74 _0810E348: .4byte gStringVar1 _0810E34C: .4byte gStringVar4 _0810E350: .4byte gUnknown_84162FF _0810E354: .4byte sub_810E358 thumb_func_end sub_810E274 thumb_func_start sub_810E358 sub_810E358: @ 810E358 push {r4-r6,lr} lsls r0, 24 lsrs r5, r0, 24 adds r6, r5, 0 bl ProcessMenuInputNoWrapAround lsls r0, 24 asrs r4, r0, 24 movs r0, 0x2 negs r0, r0 cmp r4, r0 beq _0810E39A adds r0, 0x1 cmp r4, r0 bne _0810E384 movs r0, 0x5 bl PlaySE adds r0, r5, 0 bl sub_810E8A0 b _0810E39A _0810E384: movs r0, 0x5 bl PlaySE ldr r0, _0810E3A0 @ =gUnknown_8453F74 lsls r1, r4, 3 adds r0, 0x4 adds r1, r0 ldr r1, [r1] adds r0, r6, 0 bl _call_via_r1 _0810E39A: pop {r4-r6} pop {r0} bx r0 .align 2, 0 _0810E3A0: .4byte gUnknown_8453F74 thumb_func_end sub_810E358 thumb_func_start sub_810E3A4 sub_810E3A4: @ 810E3A4 push {r4-r7,lr} lsls r0, 24 lsrs r5, r0, 24 lsls r0, r5, 2 adds r0, r5 lsls r6, r0, 3 ldr r7, _0810E3F0 @ =gTasks+0x8 adds r4, r6, r7 movs r0, 0x4 movs r1, 0 bl sub_810F4D8 movs r0, 0 bl sub_810EAF0 movs r0, 0x4 bl ClearWindowTilemap movs r0, 0x1 strh r0, [r4, 0x10] ldrh r0, [r4, 0x2] bl sub_810DD80 lsls r0, 16 lsrs r0, 16 cmp r0, 0x1 bne _0810E3F4 movs r0, 0 bl PutWindowTilemap movs r0, 0 bl schedule_bg_copy_tilemap_to_vram adds r0, r5, 0 bl sub_810E418 b _0810E40E .align 2, 0 _0810E3F0: .4byte gTasks+0x8 _0810E3F4: movs r0, 0 bl PutWindowTilemap ldrh r0, [r4, 0x2] bl sub_810E5E0 bl sub_810DB98 adds r0, r7, 0 subs r0, 0x8 adds r0, r6, r0 ldr r1, _0810E414 @ =sub_810E6D8 str r1, [r0] _0810E40E: pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0810E414: .4byte sub_810E6D8 thumb_func_end sub_810E3A4 thumb_func_start sub_810E418 sub_810E418: @ 810E418 push {r4-r7,lr} sub sp, 0xC lsls r0, 24 lsrs r0, 24 lsls r1, r0, 2 adds r1, r0 lsls r6, r1, 3 ldr r7, _0810E49C @ =gTasks+0x8 adds r5, r6, r7 ldrh r0, [r5, 0x2] bl sub_810DD68 lsls r0, 16 lsrs r4, r0, 16 ldrh r1, [r5, 0x10] adds r0, r4, 0 bl sub_809A084 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _0810E4B8 ldr r3, _0810E4A0 @ =0x0000ffff movs r0, 0x1D movs r1, 0 adds r2, r4, 0 bl sub_80A2294 ldr r1, _0810E4A4 @ =gStringVar1 adds r0, r4, 0 bl sub_8099E90 ldr r0, _0810E4A8 @ =gStringVar2 movs r2, 0x10 ldrsh r1, [r5, r2] movs r2, 0 movs r3, 0x3 bl ConvertIntToDecimalStringN ldr r4, _0810E4AC @ =gStringVar4 ldr r1, _0810E4B0 @ =gUnknown_84177C5 adds r0, r4, 0 bl StringExpandPlaceholders movs r0, 0x2 bl sub_810EAB4 lsls r0, 24 lsrs r1, r0, 24 movs r0, 0x2 str r0, [sp] movs r0, 0 str r0, [sp, 0x4] str r0, [sp, 0x8] adds r0, r1, 0 movs r1, 0x2 adds r2, r4, 0 movs r3, 0 bl AddTextPrinterParameterized adds r0, r7, 0 subs r0, 0x8 adds r0, r6, r0 ldr r1, _0810E4B4 @ =sub_810E4F4 b _0810E4E0 .align 2, 0 _0810E49C: .4byte gTasks+0x8 _0810E4A0: .4byte 0x0000ffff _0810E4A4: .4byte gStringVar1 _0810E4A8: .4byte gStringVar2 _0810E4AC: .4byte gStringVar4 _0810E4B0: .4byte gUnknown_84177C5 _0810E4B4: .4byte sub_810E4F4 _0810E4B8: movs r0, 0x2 bl sub_810EAB4 lsls r0, 24 lsrs r1, r0, 24 ldr r2, _0810E4EC @ =gUnknown_841778A movs r0, 0x2 str r0, [sp] movs r0, 0 str r0, [sp, 0x4] str r0, [sp, 0x8] adds r0, r1, 0 movs r1, 0x2 movs r3, 0 bl AddTextPrinterParameterized adds r0, r7, 0 subs r0, 0x8 adds r0, r6, r0 ldr r1, _0810E4F0 @ =sub_810E548 _0810E4E0: str r1, [r0] add sp, 0xC pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0810E4EC: .4byte gUnknown_841778A _0810E4F0: .4byte sub_810E548 thumb_func_end sub_810E418 thumb_func_start sub_810E4F4 sub_810E4F4: @ 810E4F4 push {r4,r5,lr} lsls r0, 24 lsrs r0, 24 adds r4, r0, 0 lsls r0, r4, 2 adds r0, r4 lsls r0, 3 ldr r1, _0810E540 @ =gTasks+0x8 adds r5, r0, r1 ldr r0, _0810E544 @ =gMain ldrh r1, [r0, 0x2E] movs r0, 0x1 ands r0, r1 cmp r0, 0 bne _0810E51A movs r0, 0x2 ands r0, r1 cmp r0, 0 beq _0810E53A _0810E51A: movs r0, 0x5 bl PlaySE ldrh r0, [r5, 0x2] bl sub_810DD68 lsls r0, 16 lsrs r0, 16 ldrh r1, [r5, 0x10] bl sub_809A460 bl sub_809A4E8 adds r0, r4, 0 bl sub_810E578 _0810E53A: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0810E540: .4byte gTasks+0x8 _0810E544: .4byte gMain thumb_func_end sub_810E4F4 thumb_func_start sub_810E548 sub_810E548: @ 810E548 push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 ldr r0, _0810E574 @ =gMain ldrh r1, [r0, 0x2E] movs r0, 0x1 ands r0, r1 cmp r0, 0 bne _0810E562 movs r0, 0x2 ands r0, r1 cmp r0, 0 beq _0810E56E _0810E562: movs r0, 0x5 bl PlaySE adds r0, r4, 0 bl sub_810E578 _0810E56E: pop {r4} pop {r0} bx r0 .align 2, 0 _0810E574: .4byte gMain thumb_func_end sub_810E548 thumb_func_start sub_810E578 sub_810E578: @ 810E578 push {r4-r6,lr} adds r6, r0, 0 lsls r6, 24 lsrs r6, 24 lsls r5, r6, 2 adds r5, r6 lsls r5, 3 ldr r0, _0810E5D4 @ =gTasks+0x8 adds r5, r0 movs r0, 0x2 bl sub_810EAF0 movs r0, 0x1 bl PutWindowTilemap ldrb r0, [r5] ldr r4, _0810E5D8 @ =gUnknown_203ADD0 adds r2, r4, 0x2 adds r1, r4, 0 bl sub_810713C bl sub_810DDA4 bl sub_810DBF0 bl sub_810D878 ldr r0, _0810E5DC @ =gUnknown_3005E70 subs r4, 0x4 ldrh r1, [r4, 0x4] ldrh r2, [r4, 0x6] bl ListMenuInit lsls r0, 24 lsrs r0, 24 strh r0, [r5] movs r0, 0 bl schedule_bg_copy_tilemap_to_vram adds r0, r6, 0 bl sub_810DFB0 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _0810E5D4: .4byte gTasks+0x8 _0810E5D8: .4byte gUnknown_203ADD0 _0810E5DC: .4byte gUnknown_3005E70 thumb_func_end sub_810E578 thumb_func_start sub_810E5E0 sub_810E5E0: @ 810E5E0 push {r4-r6,lr} sub sp, 0x14 lsls r0, 16 lsrs r0, 16 bl sub_810DD68 lsls r0, 16 lsrs r0, 16 ldr r6, _0810E660 @ =gStringVar1 adds r1, r6, 0 bl sub_8099E90 ldr r5, _0810E664 @ =gStringVar4 ldr r1, _0810E668 @ =gUnknown_84177AC adds r0, r5, 0 bl StringExpandPlaceholders movs r0, 0x1 bl sub_810EAB4 lsls r0, 24 lsrs r0, 24 movs r1, 0x2 str r1, [sp] movs r4, 0 str r4, [sp, 0x4] str r4, [sp, 0x8] adds r2, r5, 0 movs r3, 0 bl AddTextPrinterParameterized adds r0, r6, 0 movs r1, 0x1 movs r2, 0x2 movs r3, 0x3 bl ConvertIntToDecimalStringN ldr r1, _0810E66C @ =gUnknown_84162B9 adds r0, r5, 0 bl StringExpandPlaceholders movs r0, 0x3 bl sub_810EA9C movs r0, 0xA str r0, [sp] movs r0, 0x1 str r0, [sp, 0x4] str r4, [sp, 0x8] str r4, [sp, 0xC] str r0, [sp, 0x10] movs r0, 0x3 movs r1, 0 adds r2, r5, 0 movs r3, 0x8 bl sub_810EA34 movs r0, 0 bl schedule_bg_copy_tilemap_to_vram add sp, 0x14 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _0810E660: .4byte gStringVar1 _0810E664: .4byte gStringVar4 _0810E668: .4byte gUnknown_84177AC _0810E66C: .4byte gUnknown_84162B9 thumb_func_end sub_810E5E0 thumb_func_start sub_810E670 sub_810E670: @ 810E670 push {r4,lr} sub sp, 0x14 adds r4, r0, 0 lsls r4, 16 lsrs r4, 16 movs r0, 0x1C str r0, [sp] movs r0, 0xC str r0, [sp, 0x4] movs r0, 0x3 movs r1, 0x11 movs r2, 0xA movs r3, 0xA bl FillWindowPixelRect ldr r0, _0810E6CC @ =gStringVar1 lsls r4, 16 asrs r4, 16 adds r1, r4, 0 movs r2, 0x2 movs r3, 0x3 bl ConvertIntToDecimalStringN ldr r4, _0810E6D0 @ =gStringVar4 ldr r1, _0810E6D4 @ =gUnknown_84162B9 adds r0, r4, 0 bl StringExpandPlaceholders movs r0, 0xA str r0, [sp] movs r1, 0x1 str r1, [sp, 0x4] movs r0, 0 str r0, [sp, 0x8] str r0, [sp, 0xC] str r1, [sp, 0x10] movs r0, 0x3 movs r1, 0 adds r2, r4, 0 movs r3, 0x8 bl sub_810EA34 add sp, 0x14 pop {r4} pop {r0} bx r0 .align 2, 0 _0810E6CC: .4byte gStringVar1 _0810E6D0: .4byte gStringVar4 _0810E6D4: .4byte gUnknown_84162B9 thumb_func_end sub_810E670 thumb_func_start sub_810E6D8 sub_810E6D8: @ 810E6D8 push {r4-r6,lr} lsls r0, 24 lsrs r5, r0, 24 adds r6, r5, 0 lsls r0, r5, 2 adds r0, r5 lsls r0, 3 ldr r1, _0810E708 @ =gTasks+0x8 adds r4, r0, r1 adds r0, r4, 0 adds r0, 0x10 ldrh r1, [r4, 0x4] bl sub_80BF848 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _0810E70C movs r1, 0x10 ldrsh r0, [r4, r1] bl sub_810E670 b _0810E796 .align 2, 0 _0810E708: .4byte gTasks+0x8 _0810E70C: ldr r0, _0810E74C @ =gMain ldrh r1, [r0, 0x2E] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _0810E750 movs r0, 0x5 bl PlaySE movs r0, 0x1 bl sub_810EAF0 movs r0, 0x3 bl ClearWindowTilemap movs r0, 0 bl PutWindowTilemap ldrb r0, [r4] movs r1, 0x1 bl sub_810DAB4 movs r0, 0 bl schedule_bg_copy_tilemap_to_vram bl sub_810DBD0 adds r0, r5, 0 bl sub_810E418 b _0810E796 .align 2, 0 _0810E74C: .4byte gMain _0810E750: movs r0, 0x2 ands r0, r1 cmp r0, 0 beq _0810E796 movs r0, 0x5 bl PlaySE movs r0, 0x3 movs r1, 0 bl sub_810F4D8 movs r0, 0x1 bl sub_810EAF0 movs r0, 0x3 bl ClearWindowTilemap movs r0, 0 bl PutWindowTilemap movs r0, 0x1 bl PutWindowTilemap ldrb r0, [r4] movs r1, 0x1 bl sub_810DAB4 movs r0, 0 bl schedule_bg_copy_tilemap_to_vram bl sub_810DBD0 adds r0, r6, 0 bl sub_810DFB0 _0810E796: pop {r4-r6} pop {r0} bx r0 thumb_func_end sub_810E6D8 thumb_func_start sub_810E79C sub_810E79C: @ 810E79C push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 bl CalculatePlayerPartyCount lsls r0, 24 cmp r0, 0 bne _0810E7DC movs r0, 0x4 movs r1, 0 bl sub_810F4D8 movs r0, 0 bl sub_810EAF0 movs r0, 0x4 bl ClearWindowTilemap movs r0, 0 bl PutWindowTilemap ldr r1, _0810E7D4 @ =gUnknown_841632A ldr r2, _0810E7D8 @ =sub_810E848 adds r0, r4, 0 bl sub_810EB30 b _0810E7EA .align 2, 0 _0810E7D4: .4byte gUnknown_841632A _0810E7D8: .4byte sub_810E848 _0810E7DC: ldr r0, _0810E7F0 @ =gUnknown_203ADBC ldr r1, [r0] ldr r0, _0810E7F4 @ =sub_810E7F8 str r0, [r1] adds r0, r4, 0 bl sub_810DC8C _0810E7EA: pop {r4} pop {r0} bx r0 .align 2, 0 _0810E7F0: .4byte gUnknown_203ADBC _0810E7F4: .4byte sub_810E7F8 thumb_func_end sub_810E79C thumb_func_start sub_810E7F8 sub_810E7F8: @ 810E7F8 push {lr} sub sp, 0xC movs r0, 0x6 str r0, [sp] ldr r0, _0810E82C @ =sub_811FB28 str r0, [sp, 0x4] ldr r0, _0810E830 @ =sub_810E838 str r0, [sp, 0x8] movs r0, 0 movs r1, 0 movs r2, 0x6 movs r3, 0 bl sub_811EA44 bl sub_810DD54 lsls r0, 24 lsrs r0, 24 bl sub_810DD68 ldr r1, _0810E834 @ =gUnknown_203B0A0 strh r0, [r1, 0xC] add sp, 0xC pop {r0} bx r0 .align 2, 0 _0810E82C: .4byte sub_811FB28 _0810E830: .4byte sub_810E838 _0810E834: .4byte gUnknown_203B0A0 thumb_func_end sub_810E7F8 thumb_func_start sub_810E838 sub_810E838: @ 810E838 push {lr} movs r0, 0x1 movs r1, 0 bl sub_810D3F4 pop {r0} bx r0 thumb_func_end sub_810E838 thumb_func_start sub_810E848 sub_810E848: @ 810E848 push {r4,r5,lr} lsls r0, 24 lsrs r4, r0, 24 lsls r0, r4, 2 adds r0, r4 lsls r0, 3 ldr r1, _0810E898 @ =gTasks+0x8 adds r5, r0, r1 ldr r0, _0810E89C @ =gMain ldrh r1, [r0, 0x2E] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _0810E892 movs r0, 0x5 bl PlaySE movs r0, 0x5 movs r1, 0 bl sub_810F260 movs r0, 0x5 bl ClearWindowTilemap movs r0, 0x1 bl PutWindowTilemap ldrb r0, [r5] movs r1, 0x1 bl sub_810DAB4 movs r0, 0 bl schedule_bg_copy_tilemap_to_vram adds r0, r4, 0 bl sub_810DFB0 _0810E892: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0810E898: .4byte gTasks+0x8 _0810E89C: .4byte gMain thumb_func_end sub_810E848 thumb_func_start sub_810E8A0 sub_810E8A0: @ 810E8A0 push {r4,r5,lr} adds r5, r0, 0 lsls r5, 24 lsrs r5, 24 lsls r4, r5, 2 adds r4, r5 lsls r4, 3 ldr r0, _0810E8EC @ =gTasks+0x8 adds r4, r0 movs r0, 0x4 movs r1, 0 bl sub_810F4D8 movs r0, 0 bl sub_810EAF0 movs r0, 0x4 bl ClearWindowTilemap movs r0, 0 bl PutWindowTilemap movs r0, 0x1 bl PutWindowTilemap ldrb r0, [r4] movs r1, 0x1 bl sub_810DAB4 movs r0, 0 bl schedule_bg_copy_tilemap_to_vram adds r0, r5, 0 bl sub_810DFB0 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0810E8EC: .4byte gTasks+0x8 thumb_func_end sub_810E8A0 thumb_func_start sub_810E8F0 sub_810E8F0: @ 810E8F0 push {r4,lr} ldr r0, _0810E974 @ =gUnknown_8453F98 bl InitWindows bl DeactivateAllTextPrinters movs r1, 0xF0 lsls r1, 2 movs r0, 0 movs r2, 0xE0 bl sub_815001C ldr r1, _0810E978 @ =0x000003a3 movs r0, 0 movs r2, 0xC0 bl sub_814FF2C movs r1, 0xEB lsls r1, 2 movs r0, 0 movs r2, 0xB0 bl sub_814FEAC movs r0, 0x2 bl stdpal_get movs r1, 0xD0 movs r2, 0x20 bl LoadPalette ldr r0, _0810E97C @ =gUnknown_841F408 movs r1, 0xF0 movs r2, 0x20 bl LoadPalette movs r4, 0 _0810E938: adds r0, r4, 0 movs r1, 0 bl FillWindowPixelBuffer adds r0, r4, 0 bl PutWindowTilemap adds r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0x2 bls _0810E938 movs r0, 0 bl schedule_bg_copy_tilemap_to_vram movs r4, 0 ldr r3, _0810E980 @ =gUnknown_203ADD8 movs r2, 0xFF _0810E95C: adds r0, r4, r3 ldrb r1, [r0] orrs r1, r2 strb r1, [r0] adds r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0x2 bls _0810E95C pop {r4} pop {r0} bx r0 .align 2, 0 _0810E974: .4byte gUnknown_8453F98 _0810E978: .4byte 0x000003a3 _0810E97C: .4byte gUnknown_841F408 _0810E980: .4byte gUnknown_203ADD8 thumb_func_end sub_810E8F0 thumb_func_start sub_810E984 sub_810E984: @ 810E984 push {r4-r6,lr} mov r6, r9 mov r5, r8 push {r5,r6} sub sp, 0x10 ldr r6, [sp, 0x28] ldr r4, [sp, 0x2C] mov r8, r4 ldr r4, [sp, 0x30] mov r9, r4 lsls r2, 24 lsrs r2, 24 lsls r3, 24 lsrs r3, 24 lsls r6, 24 lsrs r6, 24 mov r4, r8 lsls r4, 24 lsrs r4, 24 mov r8, r4 mov r4, r9 lsls r4, 24 lsrs r4, 24 mov r9, r4 str r1, [sp] mov r1, sp strb r0, [r1, 0x4] movs r0, 0x3 strb r0, [r1, 0x5] mov r0, sp strb r2, [r0, 0x6] strb r3, [r0, 0x7] strb r2, [r0, 0x8] strb r3, [r0, 0x9] mov r2, sp ldrb r1, [r2, 0xC] movs r5, 0xF adds r0, r5, 0 ands r0, r1 movs r1, 0x20 orrs r0, r1 strb r0, [r2, 0xC] ldrb r1, [r2, 0xD] movs r4, 0x10 negs r4, r4 adds r0, r4, 0 ands r0, r1 strb r0, [r2, 0xD] mov r1, sp movs r0, 0x30 strb r0, [r1, 0xD] movs r0, 0x3 movs r1, 0x4 bl GetFontAttribute mov r1, sp ands r5, r0 ldrb r0, [r1, 0xC] ands r4, r0 orrs r4, r5 strb r4, [r1, 0xC] movs r0, 0x3 movs r1, 0x2 bl GetFontAttribute mov r1, sp adds r6, r0 strb r6, [r1, 0xA] movs r0, 0x3 movs r1, 0x3 bl GetFontAttribute mov r1, sp add r8, r0 mov r0, r8 strb r0, [r1, 0xB] mov r0, sp mov r1, r9 movs r2, 0 bl AddTextPrinter add sp, 0x10 pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r6} pop {r0} bx r0 thumb_func_end sub_810E984 thumb_func_start sub_810EA34 sub_810EA34: @ 810EA34 push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} sub sp, 0x14 mov r9, r3 ldr r3, [sp, 0x30] ldr r4, [sp, 0x34] ldr r6, [sp, 0x38] ldr r5, [sp, 0x3C] mov r8, r5 ldr r5, [sp, 0x40] lsls r0, 24 lsrs r0, 24 lsls r1, 24 lsrs r1, 24 mov r7, r9 lsls r7, 24 lsrs r7, 24 mov r9, r7 lsls r3, 24 lsrs r3, 24 lsls r4, 24 lsrs r4, 24 lsls r6, 24 lsrs r6, 24 lsls r5, 24 lsrs r5, 24 str r4, [sp] str r6, [sp, 0x4] lsls r4, r5, 1 adds r4, r5 ldr r5, _0810EA98 @ =gUnknown_8453F8C adds r4, r5 str r4, [sp, 0x8] mov r4, r8 lsls r4, 24 asrs r4, 24 str r4, [sp, 0xC] str r2, [sp, 0x10] mov r2, r9 bl AddTextPrinterParametrized2 add sp, 0x14 pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0810EA98: .4byte gUnknown_8453F8C thumb_func_end sub_810EA34 thumb_func_start sub_810EA9C sub_810EA9C: @ 810EA9C push {lr} lsls r0, 24 lsrs r0, 24 movs r2, 0xF0 lsls r2, 2 movs r1, 0 movs r3, 0xE bl SetWindowBorderStyle pop {r0} bx r0 thumb_func_end sub_810EA9C thumb_func_start sub_810EAB4 sub_810EAB4: @ 810EAB4 push {r4,lr} lsls r0, 24 lsrs r1, r0, 24 ldr r0, _0810EAE4 @ =gUnknown_203ADD8 adds r4, r1, r0 ldrb r0, [r4] cmp r0, 0xFF bne _0810EADC lsls r0, r1, 3 ldr r1, _0810EAE8 @ =gUnknown_8453FD0 adds r0, r1 bl AddWindow strb r0, [r4] ldrb r0, [r4] ldr r2, _0810EAEC @ =0x000003a3 movs r1, 0x1 movs r3, 0xC bl SetWindowBorderStyle _0810EADC: ldrb r0, [r4] pop {r4} pop {r1} bx r1 .align 2, 0 _0810EAE4: .4byte gUnknown_203ADD8 _0810EAE8: .4byte gUnknown_8453FD0 _0810EAEC: .4byte 0x000003a3 thumb_func_end sub_810EAB4 thumb_func_start sub_810EAF0 sub_810EAF0: @ 810EAF0 push {r4,lr} adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 ldr r0, _0810EB1C @ =gUnknown_203ADD8 adds r4, r0 ldrb r0, [r4] movs r1, 0 bl sub_810F4D8 ldrb r0, [r4] bl ClearWindowTilemap ldrb r0, [r4] bl RemoveWindow movs r0, 0xFF strb r0, [r4] pop {r4} pop {r0} bx r0 .align 2, 0 _0810EB1C: .4byte gUnknown_203ADD8 thumb_func_end sub_810EAF0 thumb_func_start sub_810EB20 sub_810EB20: @ 810EB20 lsls r0, 24 lsrs r0, 24 ldr r1, _0810EB2C @ =gUnknown_203ADD8 adds r0, r1 ldrb r0, [r0] bx lr .align 2, 0 _0810EB2C: .4byte gUnknown_203ADD8 thumb_func_end sub_810EB20 thumb_func_start sub_810EB30 sub_810EB30: @ 810EB30 push {r4-r6,lr} sub sp, 0x10 adds r4, r0, 0 adds r5, r1, 0 adds r6, r2, 0 lsls r4, 24 lsrs r4, 24 bl sub_80F78A8 lsls r0, 24 lsrs r0, 24 movs r2, 0xEB lsls r2, 2 movs r1, 0x2 str r1, [sp] str r0, [sp, 0x4] str r5, [sp, 0x8] str r6, [sp, 0xC] adds r0, r4, 0 movs r1, 0x5 movs r3, 0xB bl DisplayMessageAndContinueTask movs r0, 0 bl schedule_bg_copy_tilemap_to_vram add sp, 0x10 pop {r4-r6} pop {r0} bx r0 thumb_func_end sub_810EB30 .align 2, 0 @ Don't pad with nop.