.include "asm/macros.inc" .include "constants/constants.inc" .syntax unified .text thumb_func_start sub_800C2D4 sub_800C2D4: @ 800C2D4 push {lr} bl RunTasks bl AnimateSprites bl BuildOamBuffer bl UpdatePaletteFade pop {r0} bx r0 thumb_func_end sub_800C2D4 thumb_func_start sub_800C2EC sub_800C2EC: @ 800C2EC push {lr} bl LoadOam bl ProcessSpriteCopyRequests bl TransferPlttBuffer pop {r0} bx r0 thumb_func_end sub_800C2EC thumb_func_start sub_800C300 sub_800C300: @ 800C300 push {lr} movs r0, 0x1 bl sub_800C318 pop {r0} bx r0 thumb_func_end sub_800C300 thumb_func_start sub_800C30C sub_800C30C: @ 800C30C push {lr} movs r0, 0x1 bl sub_800C318 pop {r0} bx r0 thumb_func_end sub_800C30C thumb_func_start sub_800C318 sub_800C318: @ 800C318 push {r4,r5,lr} sub sp, 0x8 adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 movs r0, 0 bl SetVBlankCallback movs r0, 0 movs r1, 0 bl SetGpuReg movs r0, 0xC movs r1, 0 bl SetGpuReg movs r0, 0xA movs r1, 0 bl SetGpuReg movs r0, 0x8 movs r1, 0 bl SetGpuReg movs r0, 0x18 movs r1, 0 bl SetGpuReg movs r0, 0x1A movs r1, 0 bl SetGpuReg movs r0, 0x14 movs r1, 0 bl SetGpuReg movs r0, 0x16 movs r1, 0 bl SetGpuReg movs r0, 0x10 movs r1, 0 bl SetGpuReg movs r0, 0x12 movs r1, 0 bl SetGpuReg mov r1, sp movs r0, 0 strh r0, [r1] ldr r1, _0800C4A0 @ =0x040000d4 mov r0, sp str r0, [r1] movs r0, 0xC0 lsls r0, 19 str r0, [r1, 0x4] ldr r0, _0800C4A4 @ =0x8100c000 str r0, [r1, 0x8] ldr r0, [r1, 0x8] movs r5, 0 str r5, [sp, 0x4] add r0, sp, 0x4 str r0, [r1] movs r0, 0xE0 lsls r0, 19 str r0, [r1, 0x4] ldr r0, _0800C4A8 @ =0x85000100 str r0, [r1, 0x8] ldr r0, [r1, 0x8] mov r0, sp strh r5, [r0] str r0, [r1] ldr r0, _0800C4AC @ =0x05000002 str r0, [r1, 0x4] ldr r0, _0800C4B0 @ =0x810001ff str r0, [r1, 0x8] ldr r0, [r1, 0x8] bl remove_some_task bl ResetTasks bl ResetSpriteData bl FreeAllSpritePalettes bl ResetPaletteFade movs r0, 0 bl sub_8001618 ldr r1, _0800C4B4 @ =gUnknown_8234690 movs r0, 0 movs r2, 0x1 bl sub_8001658 movs r0, 0 movs r1, 0 movs r2, 0 bl ChangeBgX movs r0, 0 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 ldr r0, _0800C4B8 @ =gUnknown_8234618 bl sub_8003B24 bl sub_8002C28 ldr r0, _0800C4BC @ =gUnknown_8234648 movs r1, 0 movs r2, 0x20 bl LoadPalette ldr r0, _0800C4C0 @ =gUnknown_8234668 movs r1, 0xF0 movs r2, 0x20 bl LoadPalette movs r0, 0x40 movs r1, 0 bl SetGpuReg movs r0, 0x44 movs r1, 0 bl SetGpuReg movs r0, 0x48 movs r1, 0 bl SetGpuReg movs r0, 0x4A movs r1, 0 bl SetGpuReg movs r0, 0x50 movs r1, 0 bl SetGpuReg movs r0, 0x52 movs r1, 0 bl SetGpuReg movs r0, 0x54 movs r1, 0 bl SetGpuReg ldr r0, _0800C4C4 @ =sub_800C2D4 bl SetMainCallback2 movs r1, 0xC1 lsls r1, 6 movs r0, 0 bl SetGpuReg ldr r0, _0800C4C8 @ =sub_800C4D0 movs r1, 0 bl CreateTask lsls r0, 24 lsrs r0, 24 ldr r2, _0800C4CC @ =gUnknown_3005090 lsls r1, r0, 2 adds r1, r0 lsls r1, 3 adds r1, r2 strh r5, [r1, 0xA] strh r4, [r1, 0x18] movs r0, 0 add sp, 0x8 pop {r4,r5} pop {r1} bx r1 .align 2, 0 _0800C4A0: .4byte 0x040000d4 _0800C4A4: .4byte 0x8100c000 _0800C4A8: .4byte 0x85000100 _0800C4AC: .4byte 0x05000002 _0800C4B0: .4byte 0x810001ff _0800C4B4: .4byte gUnknown_8234690 _0800C4B8: .4byte gUnknown_8234618 _0800C4BC: .4byte gUnknown_8234648 _0800C4C0: .4byte gUnknown_8234668 _0800C4C4: .4byte sub_800C2D4 _0800C4C8: .4byte sub_800C4D0 _0800C4CC: .4byte gUnknown_3005090 thumb_func_end sub_800C318 thumb_func_start sub_800C4D0 sub_800C4D0: @ 800C4D0 push {r4-r6,lr} lsls r0, 24 lsrs r5, r0, 24 ldr r0, _0800C538 @ =gUnknown_2037AB8 ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 lsls r0, 24 lsrs r6, r0, 24 cmp r6, 0 beq _0800C4E8 b _0800C626 _0800C4E8: movs r0, 0x40 movs r1, 0 bl SetGpuReg movs r0, 0x44 movs r1, 0 bl SetGpuReg movs r0, 0x48 movs r1, 0x1 bl SetGpuReg movs r0, 0x4A movs r1, 0x21 bl SetGpuReg movs r0, 0x50 movs r1, 0xFF bl SetGpuReg movs r0, 0x52 movs r1, 0 bl SetGpuReg movs r0, 0x54 movs r1, 0x7 bl SetGpuReg ldr r0, _0800C53C @ =gUnknown_30053A0 ldrh r4, [r0] cmp r4, 0x2 beq _0800C58C cmp r4, 0x2 bgt _0800C540 cmp r4, 0 beq _0800C5E8 cmp r4, 0x1 beq _0800C54A b _0800C5E8 .align 2, 0 _0800C538: .4byte gUnknown_2037AB8 _0800C53C: .4byte gUnknown_30053A0 _0800C540: cmp r4, 0x4 beq _0800C60C cmp r4, 0xFF beq _0800C5B0 b _0800C5E8 _0800C54A: movs r0, 0 bl sub_800D044 bl sub_806E2BC cmp r0, 0x1 bne _0800C570 ldr r2, _0800C56C @ =gUnknown_3005090 lsls r3, r5, 2 adds r0, r3, r5 lsls r0, 3 adds r0, r2 movs r1, 0x2 strh r1, [r0, 0x8] adds r1, r2, 0 adds r2, r3, 0 b _0800C57E .align 2, 0 _0800C56C: .4byte gUnknown_3005090 _0800C570: ldr r0, _0800C588 @ =gUnknown_3005090 lsls r2, r5, 2 adds r1, r2, r5 lsls r1, 3 adds r1, r0 strh r4, [r1, 0x8] adds r1, r0, 0 _0800C57E: adds r0, r2, r5 lsls r0, 3 adds r0, r1 b _0800C5FC .align 2, 0 _0800C588: .4byte gUnknown_3005090 _0800C58C: movs r0, 0 bl sub_800D094 ldr r0, _0800C5A8 @ =gUnknown_3005090 lsls r1, r5, 2 adds r1, r5 lsls r1, 3 adds r1, r0 strh r6, [r1, 0x8] ldr r1, _0800C5AC @ =gUnknown_8415C42 adds r0, r5, 0 bl sub_800C634 b _0800C626 .align 2, 0 _0800C5A8: .4byte gUnknown_3005090 _0800C5AC: .4byte gUnknown_8415C42 _0800C5B0: movs r0, 0 bl sub_800D094 ldr r1, _0800C5DC @ =gUnknown_3005090 lsls r0, r5, 2 adds r0, r5 lsls r0, 3 adds r4, r0, r1 movs r6, 0x1 strh r6, [r4, 0x8] ldr r1, _0800C5E0 @ =gUnknown_8415BFF adds r0, r5, 0 bl sub_800C634 bl sub_806E2BC cmp r0, 0x1 bne _0800C5E4 movs r0, 0x2 strh r0, [r4, 0x8] b _0800C626 .align 2, 0 _0800C5DC: .4byte gUnknown_3005090 _0800C5E0: .4byte gUnknown_8415BFF _0800C5E4: strh r6, [r4, 0x8] b _0800C626 _0800C5E8: movs r0, 0 bl sub_800D044 ldr r1, _0800C604 @ =gUnknown_3005090 lsls r0, r5, 2 adds r0, r5 lsls r0, 3 adds r0, r1 movs r1, 0 strh r1, [r0, 0x8] _0800C5FC: ldr r1, _0800C608 @ =sub_800C704 str r1, [r0] b _0800C626 .align 2, 0 _0800C604: .4byte gUnknown_3005090 _0800C608: .4byte sub_800C704 _0800C60C: movs r0, 0 bl sub_800D094 ldr r0, _0800C62C @ =gUnknown_3005090 lsls r1, r5, 2 adds r1, r5 lsls r1, 3 adds r1, r0 strh r6, [r1, 0x8] ldr r1, _0800C630 @ =gUnknown_8415C64 adds r0, r5, 0 bl sub_800C634 _0800C626: pop {r4-r6} pop {r0} bx r0 .align 2, 0 _0800C62C: .4byte gUnknown_3005090 _0800C630: .4byte gUnknown_8415C64 thumb_func_end sub_800C4D0 thumb_func_start sub_800C634 sub_800C634: @ 800C634 push {r4,lr} sub sp, 0x4 adds r4, r0, 0 adds r0, r1, 0 lsls r4, 24 lsrs r4, 24 bl sub_800CDF8 ldr r1, _0800C678 @ =gUnknown_3005090 lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r0, r1 ldr r1, _0800C67C @ =sub_800C688 str r1, [r0] movs r0, 0x1 negs r0, r0 ldr r1, _0800C680 @ =0x0000ffff str r1, [sp] movs r1, 0 movs r2, 0x10 movs r3, 0 bl BeginNormalPaletteFade movs r0, 0 bl ShowBg ldr r0, _0800C684 @ =sub_800C2EC bl SetVBlankCallback add sp, 0x4 pop {r4} pop {r0} bx r0 .align 2, 0 _0800C678: .4byte gUnknown_3005090 _0800C67C: .4byte sub_800C688 _0800C680: .4byte 0x0000ffff _0800C684: .4byte sub_800C2EC thumb_func_end sub_800C634 thumb_func_start sub_800C688 sub_800C688: @ 800C688 push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 ldr r0, _0800C6E0 @ =gUnknown_2037AB8 ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 bne _0800C6F8 bl sub_8002DE8 movs r0, 0x4 bl sub_8002E64 lsls r0, 16 cmp r0, 0 bne _0800C6F8 ldr r0, _0800C6E4 @ =gUnknown_30030F0 ldrh r1, [r0, 0x2E] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _0800C6F8 movs r0, 0x4 bl ClearWindowTilemap ldr r0, _0800C6E8 @ =gUnknown_8234638 bl sub_800D1E8 movs r0, 0 bl sub_800D044 ldr r1, _0800C6EC @ =gUnknown_3005090 lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r1, r0, r1 movs r2, 0x8 ldrsh r0, [r1, r2] cmp r0, 0 bne _0800C6F4 ldr r0, _0800C6F0 @ =sub_800C704 b _0800C6F6 .align 2, 0 _0800C6E0: .4byte gUnknown_2037AB8 _0800C6E4: .4byte gUnknown_30030F0 _0800C6E8: .4byte gUnknown_8234638 _0800C6EC: .4byte gUnknown_3005090 _0800C6F0: .4byte sub_800C704 _0800C6F4: ldr r0, _0800C700 @ =sub_800C7A0 _0800C6F6: str r0, [r1] _0800C6F8: pop {r4} pop {r0} bx r0 .align 2, 0 _0800C700: .4byte sub_800C7A0 thumb_func_end sub_800C688 thumb_func_start sub_800C704 sub_800C704: @ 800C704 push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 ldr r0, _0800C764 @ =gUnknown_2037AB8 ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 bne _0800C774 movs r0, 0x40 movs r1, 0 bl SetGpuReg movs r0, 0x44 movs r1, 0 bl SetGpuReg movs r0, 0x48 movs r1, 0x1 bl SetGpuReg movs r0, 0x4A movs r1, 0x21 bl SetGpuReg movs r0, 0x50 movs r1, 0xFF bl SetGpuReg movs r0, 0x52 movs r1, 0 bl SetGpuReg movs r0, 0x54 movs r1, 0x7 bl SetGpuReg ldr r0, _0800C768 @ =gUnknown_3005090 lsls r1, r4, 2 adds r1, r4 lsls r1, 3 adds r1, r0 movs r2, 0x8 ldrsh r0, [r1, r2] cmp r0, 0 bne _0800C770 ldr r0, _0800C76C @ =sub_800CA94 b _0800C772 .align 2, 0 _0800C764: .4byte gUnknown_2037AB8 _0800C768: .4byte gUnknown_3005090 _0800C76C: .4byte sub_800CA94 _0800C770: ldr r0, _0800C77C @ =sub_800C780 _0800C772: str r0, [r1] _0800C774: pop {r4} pop {r0} bx r0 .align 2, 0 _0800C77C: .4byte sub_800C780 thumb_func_end sub_800C704 thumb_func_start sub_800C780 sub_800C780: @ 800C780 push {lr} lsls r0, 24 lsrs r2, r0, 24 ldr r0, _0800C79C @ =gUnknown_2037AB8 ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 bne _0800C798 adds r0, r2, 0 bl sub_800C7A0 _0800C798: pop {r0} bx r0 .align 2, 0 _0800C79C: .4byte gUnknown_2037AB8 thumb_func_end sub_800C780 thumb_func_start sub_800C7A0 sub_800C7A0: @ 800C7A0 push {r4-r7,lr} mov r7, r8 push {r7} sub sp, 0x10 lsls r0, 24 lsrs r7, r0, 24 movs r0, 0x40 movs r1, 0 bl SetGpuReg movs r0, 0x44 movs r1, 0 bl SetGpuReg movs r0, 0x48 movs r1, 0x1 bl SetGpuReg movs r0, 0x4A movs r1, 0x21 bl SetGpuReg movs r0, 0x50 movs r1, 0xFF bl SetGpuReg movs r0, 0x52 movs r1, 0 bl SetGpuReg movs r0, 0x54 movs r1, 0x7 bl SetGpuReg ldr r0, _0800C7F4 @ =gUnknown_300500C ldr r0, [r0] ldrb r0, [r0, 0x8] cmp r0, 0 bne _0800C7FC ldr r1, _0800C7F8 @ =0x00007e04 b _0800C7FE .align 2, 0 _0800C7F4: .4byte gUnknown_300500C _0800C7F8: .4byte 0x00007e04 _0800C7FC: ldr r1, _0800C85C @ =0x0000547f _0800C7FE: add r0, sp, 0xC strh r1, [r0] add r0, sp, 0xC movs r1, 0xF1 movs r2, 0x2 bl LoadPalette ldr r2, _0800C860 @ =gUnknown_3005090 lsls r1, r7, 2 adds r0, r1, r7 lsls r0, 3 adds r6, r0, r2 movs r2, 0x8 ldrsh r0, [r6, r2] mov r8, r1 cmp r0, 0x1 beq _0800C870 cmp r0, 0x1 ble _0800C828 cmp r0, 0x2 beq _0800C8F0 _0800C828: movs r0, 0 movs r1, 0xAA bl FillWindowPixelBuffer ldr r0, _0800C864 @ =gUnknown_8234688 str r0, [sp] movs r0, 0x1 negs r0, r0 str r0, [sp, 0x4] ldr r0, _0800C868 @ =gUnknown_8415A6E str r0, [sp, 0x8] movs r0, 0 movs r1, 0x2 movs r2, 0x2 movs r3, 0x2 bl sub_812E51C ldr r0, _0800C86C @ =gUnknown_8234618 bl sub_800D0B4 movs r0, 0 bl PutWindowTilemap movs r0, 0 b _0800C8D8 .align 2, 0 _0800C85C: .4byte 0x0000547f _0800C860: .4byte gUnknown_3005090 _0800C864: .4byte gUnknown_8234688 _0800C868: .4byte gUnknown_8415A6E _0800C86C: .4byte gUnknown_8234618 _0800C870: movs r0, 0x1 movs r1, 0xAA bl FillWindowPixelBuffer movs r0, 0x2 movs r1, 0xAA bl FillWindowPixelBuffer ldr r5, _0800C8E0 @ =gUnknown_8234688 str r5, [sp] movs r4, 0x1 negs r4, r4 str r4, [sp, 0x4] ldr r0, _0800C8E4 @ =gUnknown_8415A77 str r0, [sp, 0x8] movs r0, 0x1 movs r1, 0x2 movs r2, 0x2 movs r3, 0x2 bl sub_812E51C str r5, [sp] str r4, [sp, 0x4] ldr r0, _0800C8E8 @ =gUnknown_8415A6E str r0, [sp, 0x8] movs r0, 0x2 movs r1, 0x2 movs r2, 0x2 movs r3, 0x2 bl sub_812E51C bl sub_800CE58 ldr r4, _0800C8EC @ =gUnknown_8234620 adds r0, r4, 0 bl sub_800D0B4 adds r4, 0x8 adds r0, r4, 0 bl sub_800D0B4 movs r0, 0x1 bl PutWindowTilemap movs r0, 0x2 bl PutWindowTilemap movs r0, 0x1 movs r1, 0x2 bl sub_8003F20 movs r0, 0x2 _0800C8D8: movs r1, 0x3 bl sub_8003F20 b _0800C994 .align 2, 0 _0800C8E0: .4byte gUnknown_8234688 _0800C8E4: .4byte gUnknown_8415A77 _0800C8E8: .4byte gUnknown_8415A6E _0800C8EC: .4byte gUnknown_8234620 _0800C8F0: movs r0, 0x1 movs r1, 0xAA bl FillWindowPixelBuffer movs r0, 0x2 movs r1, 0xAA bl FillWindowPixelBuffer movs r0, 0x3 movs r1, 0xAA bl FillWindowPixelBuffer ldr r5, _0800C9B0 @ =gUnknown_8234688 str r5, [sp] movs r4, 0x1 negs r4, r4 str r4, [sp, 0x4] ldr r0, _0800C9B4 @ =gUnknown_8415A77 str r0, [sp, 0x8] movs r0, 0x1 movs r1, 0x2 movs r2, 0x2 movs r3, 0x2 bl sub_812E51C str r5, [sp] str r4, [sp, 0x4] ldr r0, _0800C9B8 @ =gUnknown_8415A6E str r0, [sp, 0x8] movs r0, 0x2 movs r1, 0x2 movs r2, 0x2 movs r3, 0x2 bl sub_812E51C movs r0, 0x1 strh r0, [r6, 0x1C] str r5, [sp] str r4, [sp, 0x4] ldr r0, _0800C9BC @ =gUnknown_8415A97 str r0, [sp, 0x8] movs r0, 0x3 movs r1, 0x2 movs r2, 0x2 movs r3, 0x2 bl sub_812E51C bl sub_800CE58 ldr r4, _0800C9C0 @ =gUnknown_8234620 adds r0, r4, 0 bl sub_800D0B4 adds r0, r4, 0 adds r0, 0x8 bl sub_800D0B4 adds r4, 0x10 adds r0, r4, 0 bl sub_800D0B4 movs r0, 0x1 bl PutWindowTilemap movs r0, 0x2 bl PutWindowTilemap movs r0, 0x3 bl PutWindowTilemap movs r0, 0x1 movs r1, 0x2 bl sub_8003F20 movs r0, 0x2 movs r1, 0x2 bl sub_8003F20 movs r0, 0x3 movs r1, 0x3 bl sub_8003F20 _0800C994: ldr r0, _0800C9C4 @ =gUnknown_3005090 mov r2, r8 adds r1, r2, r7 lsls r1, 3 adds r1, r0 ldr r0, _0800C9C8 @ =sub_800C9CC str r0, [r1] add sp, 0x10 pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0800C9B0: .4byte gUnknown_8234688 _0800C9B4: .4byte gUnknown_8415A77 _0800C9B8: .4byte gUnknown_8415A6E _0800C9BC: .4byte gUnknown_8415A97 _0800C9C0: .4byte gUnknown_8234620 _0800C9C4: .4byte gUnknown_3005090 _0800C9C8: .4byte sub_800C9CC thumb_func_end sub_800C7A0 thumb_func_start sub_800C9CC sub_800C9CC: @ 800C9CC push {r4,r5,lr} sub sp, 0x4 lsls r0, 24 lsrs r4, r0, 24 movs r5, 0x1 negs r5, r5 adds r0, r5, 0 bl CheckForSpaceForDma3Request lsls r0, 16 asrs r0, 16 cmp r0, r5 beq _0800CA10 ldr r1, _0800CA18 @ =gUnknown_3005090 lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r0, r1 ldr r1, _0800CA1C @ =sub_800CA28 str r1, [r0] ldr r0, _0800CA20 @ =0x0000ffff str r0, [sp] adds r0, r5, 0 movs r1, 0 movs r2, 0x10 movs r3, 0 bl BeginNormalPaletteFade movs r0, 0 bl ShowBg ldr r0, _0800CA24 @ =sub_800C2EC bl SetVBlankCallback _0800CA10: add sp, 0x4 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0800CA18: .4byte gUnknown_3005090 _0800CA1C: .4byte sub_800CA28 _0800CA20: .4byte 0x0000ffff _0800CA24: .4byte sub_800C2EC thumb_func_end sub_800C9CC thumb_func_start sub_800CA28 sub_800CA28: @ 800CA28 push {r4,lr} lsls r0, 24 lsrs r0, 24 ldr r1, _0800CA4C @ =gUnknown_3005090 lsls r4, r0, 2 adds r4, r0 lsls r4, 3 adds r4, r1 ldrb r0, [r4, 0x8] ldrb r1, [r4, 0xA] bl sub_800CC94 ldr r0, _0800CA50 @ =sub_800CA54 str r0, [r4] pop {r4} pop {r0} bx r0 .align 2, 0 _0800CA4C: .4byte gUnknown_3005090 _0800CA50: .4byte sub_800CA54 thumb_func_end sub_800CA28 thumb_func_start sub_800CA54 sub_800CA54: @ 800CA54 push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 ldr r0, _0800CA88 @ =gUnknown_2037AB8 ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 bne _0800CA80 adds r0, r4, 0 bl sub_800CCF8 lsls r0, 24 cmp r0, 0 beq _0800CA80 ldr r0, _0800CA8C @ =gUnknown_3005090 lsls r1, r4, 2 adds r1, r4 lsls r1, 3 adds r1, r0 ldr r0, _0800CA90 @ =sub_800CA28 str r0, [r1] _0800CA80: pop {r4} pop {r0} bx r0 .align 2, 0 _0800CA88: .4byte gUnknown_2037AB8 _0800CA8C: .4byte gUnknown_3005090 _0800CA90: .4byte sub_800CA28 thumb_func_end sub_800CA54 thumb_func_start sub_800CA94 sub_800CA94: @ 800CA94 push {r4-r6,lr} sub sp, 0x4 lsls r0, 24 lsrs r6, r0, 24 ldr r0, _0800CAC4 @ =gUnknown_2037AB8 ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 bne _0800CB84 ldr r1, _0800CAC8 @ =gUnknown_3005090 lsls r0, r6, 2 adds r0, r6 lsls r0, 3 adds r4, r0, r1 movs r1, 0x8 ldrsh r0, [r4, r1] cmp r0, 0x1 beq _0800CACC cmp r0, 0x1 ble _0800CAEE cmp r0, 0x2 beq _0800CADA b _0800CAEE .align 2, 0 _0800CAC4: .4byte gUnknown_2037AB8 _0800CAC8: .4byte gUnknown_3005090 _0800CACC: movs r1, 0xA ldrsh r0, [r4, r1] cmp r0, 0 beq _0800CAEA cmp r0, 0x1 bne _0800CAEA b _0800CAEE _0800CADA: movs r1, 0xA ldrsh r0, [r4, r1] cmp r0, 0x1 beq _0800CAEE cmp r0, 0x1 ble _0800CAEA cmp r0, 0x2 beq _0800CAF2 _0800CAEA: movs r0, 0x1 b _0800CB22 _0800CAEE: movs r0, 0 b _0800CB22 _0800CAF2: bl sub_8009480 lsls r0, 24 lsrs r5, r0, 24 cmp r5, 0 bne _0800CB20 movs r0, 0 bl sub_800D094 ldr r0, _0800CB1C @ =sub_800CB90 str r0, [r4] movs r0, 0x1 negs r0, r0 str r5, [sp] movs r1, 0 movs r2, 0x10 movs r3, 0 bl BeginNormalPaletteFade b _0800CB84 .align 2, 0 _0800CB1C: .4byte sub_800CB90 _0800CB20: movs r0, 0x2 _0800CB22: cmp r0, 0x1 beq _0800CB48 cmp r0, 0x1 ble _0800CB2E cmp r0, 0x2 beq _0800CB70 _0800CB2E: ldr r1, _0800CB44 @ =gUnknown_2031DE0 movs r0, 0 strb r0, [r1] bl sub_8003ECC adds r0, r6, 0 bl DestroyTask bl sub_812EB2C b _0800CB84 .align 2, 0 _0800CB44: .4byte gUnknown_2031DE0 _0800CB48: ldr r0, _0800CB64 @ =gUnknown_20371F8 movs r2, 0 movs r1, 0 strh r1, [r0] ldr r0, _0800CB68 @ =gUnknown_20375F8 strh r1, [r0] ldr r0, _0800CB6C @ =gUnknown_2031DE0 strb r2, [r0] bl sub_8003ECC adds r0, r6, 0 bl sub_8110F14 b _0800CB84 .align 2, 0 _0800CB64: .4byte gUnknown_20371F8 _0800CB68: .4byte gUnknown_20375F8 _0800CB6C: .4byte gUnknown_2031DE0 _0800CB70: ldr r0, _0800CB8C @ =sub_81422AC bl SetMainCallback2 bl sub_812B478 bl sub_8003ECC adds r0, r6, 0 bl DestroyTask _0800CB84: add sp, 0x4 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _0800CB8C: .4byte sub_81422AC thumb_func_end sub_800CA94 thumb_func_start sub_800CB90 sub_800CB90: @ 800CB90 push {r4,r5,lr} sub sp, 0x8 lsls r0, 24 lsrs r5, r0, 24 ldr r1, _0800CBB4 @ =gUnknown_3005090 lsls r0, r5, 2 adds r0, r5 lsls r0, 3 adds r4, r0, r1 movs r0, 0x1A ldrsh r1, [r4, r0] cmp r1, 0x1 beq _0800CC0C cmp r1, 0x1 bgt _0800CBB8 cmp r1, 0 beq _0800CBC2 b _0800CC58 .align 2, 0 _0800CBB4: .4byte gUnknown_3005090 _0800CBB8: cmp r1, 0x2 beq _0800CC1C cmp r1, 0x3 beq _0800CC34 b _0800CC58 _0800CBC2: movs r0, 0x1E str r0, [sp] movs r0, 0x14 str r0, [sp, 0x4] movs r0, 0 movs r1, 0 movs r2, 0 movs r3, 0 bl FillBgTilemapBufferRect_Palette0 movs r1, 0x1C ldrsh r0, [r4, r1] cmp r0, 0x1 bne _0800CBEC ldr r0, _0800CBE8 @ =gUnknown_8415AA4 bl sub_800CDF8 b _0800CBF2 .align 2, 0 _0800CBE8: .4byte gUnknown_8415AA4 _0800CBEC: ldr r0, _0800CC04 @ =gUnknown_8415ACB bl sub_800CDF8 _0800CBF2: ldr r0, _0800CC08 @ =gUnknown_3005090 lsls r1, r5, 2 adds r1, r5 lsls r1, 3 adds r1, r0 ldrh r0, [r1, 0x1A] adds r0, 0x1 strh r0, [r1, 0x1A] b _0800CC58 .align 2, 0 _0800CC04: .4byte gUnknown_8415ACB _0800CC08: .4byte gUnknown_3005090 _0800CC0C: ldr r0, _0800CC18 @ =gUnknown_2037AB8 ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 b _0800CC28 .align 2, 0 _0800CC18: .4byte gUnknown_2037AB8 _0800CC1C: bl sub_8002DE8 movs r0, 0x4 bl sub_8002E64 lsls r0, 16 _0800CC28: cmp r0, 0 bne _0800CC58 ldrh r0, [r4, 0x1A] adds r0, 0x1 strh r0, [r4, 0x1A] b _0800CC58 _0800CC34: ldr r0, _0800CC60 @ =gUnknown_30030F0 ldrh r0, [r0, 0x2E] ands r1, r0 cmp r1, 0 beq _0800CC58 movs r0, 0x5 bl sub_80722CC movs r0, 0x1 negs r0, r0 movs r1, 0 str r1, [sp] movs r2, 0 movs r3, 0x10 bl BeginNormalPaletteFade ldr r0, _0800CC64 @ =sub_800CC68 str r0, [r4] _0800CC58: add sp, 0x8 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0800CC60: .4byte gUnknown_30030F0 _0800CC64: .4byte sub_800CC68 thumb_func_end sub_800CB90 thumb_func_start sub_800CC68 sub_800CC68: @ 800CC68 push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 ldr r0, _0800CC8C @ =gUnknown_2037AB8 ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 bne _0800CC86 ldr r0, _0800CC90 @ =sub_8078914 bl SetMainCallback2 adds r0, r4, 0 bl DestroyTask _0800CC86: pop {r4} pop {r0} bx r0 .align 2, 0 _0800CC8C: .4byte gUnknown_2037AB8 _0800CC90: .4byte sub_8078914 thumb_func_end sub_800CC68 thumb_func_start sub_800CC94 sub_800CC94: @ 800CC94 push {r4,r5,lr} lsls r0, 24 lsrs r4, r0, 24 lsls r1, 24 lsrs r5, r1, 24 ldr r1, _0800CCB8 @ =0x000012de movs r0, 0x40 bl SetGpuReg cmp r4, 0 beq _0800CCB2 cmp r4, 0 blt _0800CCB2 cmp r4, 0x2 ble _0800CCBC _0800CCB2: movs r2, 0 movs r0, 0x20 b _0800CCDC .align 2, 0 _0800CCB8: .4byte 0x000012de _0800CCBC: cmp r5, 0x1 beq _0800CCCE cmp r5, 0x1 ble _0800CCC8 cmp r5, 0x2 beq _0800CCD6 _0800CCC8: movs r2, 0 movs r0, 0x60 b _0800CCDC _0800CCCE: movs r2, 0xC0 lsls r2, 7 movs r0, 0x80 b _0800CCDC _0800CCD6: movs r2, 0x80 lsls r2, 8 movs r0, 0xA0 _0800CCDC: movs r3, 0x80 lsls r3, 2 adds r1, r3, 0 adds r1, r2, r1 subs r0, 0x2 orrs r1, r0 lsls r1, 16 lsrs r1, 16 movs r0, 0x44 bl SetGpuReg pop {r4,r5} pop {r0} bx r0 thumb_func_end sub_800CC94 thumb_func_start sub_800CCF8 sub_800CCF8: @ 800CCF8 push {r4,r5,lr} sub sp, 0x4 lsls r0, 24 lsrs r4, r0, 24 ldr r0, _0800CD38 @ =gUnknown_30030F0 ldrh r1, [r0, 0x2E] movs r5, 0x1 ands r5, r1 adds r3, r0, 0 cmp r5, 0 beq _0800CD44 movs r0, 0x5 bl sub_80722CC bl sub_8009480 movs r0, 0x1 negs r0, r0 movs r1, 0 str r1, [sp] movs r2, 0 movs r3, 0x10 bl BeginNormalPaletteFade ldr r1, _0800CD3C @ =gUnknown_3005090 lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r0, r1 ldr r1, _0800CD40 @ =sub_800CA94 str r1, [r0] b _0800CDEC .align 2, 0 _0800CD38: .4byte gUnknown_30030F0 _0800CD3C: .4byte gUnknown_3005090 _0800CD40: .4byte sub_800CA94 _0800CD44: movs r0, 0x2 ands r0, r1 cmp r0, 0 beq _0800CD8C movs r0, 0x5 bl sub_80722CC movs r0, 0x1 negs r0, r0 str r5, [sp] movs r1, 0 movs r2, 0 movs r3, 0x10 bl BeginNormalPaletteFade movs r0, 0x40 movs r1, 0xF0 bl SetGpuReg movs r0, 0x44 movs r1, 0xA0 bl SetGpuReg ldr r1, _0800CD84 @ =gUnknown_3005090 lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r0, r1 ldr r1, _0800CD88 @ =sub_800CC68 str r1, [r0] b _0800CDEC .align 2, 0 _0800CD84: .4byte gUnknown_3005090 _0800CD88: .4byte sub_800CC68 _0800CD8C: movs r0, 0x40 ands r0, r1 cmp r0, 0 beq _0800CDB4 ldr r0, _0800CDB0 @ =gUnknown_3005090 lsls r1, r4, 2 adds r1, r4 lsls r1, 3 adds r1, r0 ldrh r2, [r1, 0xA] movs r5, 0xA ldrsh r0, [r1, r5] cmp r0, 0 ble _0800CDB4 subs r0, r2, 0x1 strh r0, [r1, 0xA] movs r0, 0x1 b _0800CDEE .align 2, 0 _0800CDB0: .4byte gUnknown_3005090 _0800CDB4: ldrh r1, [r3, 0x2E] movs r0, 0x80 ands r0, r1 cmp r0, 0 beq _0800CDEC ldr r1, _0800CDE4 @ =gUnknown_3005090 lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r3, r0, r1 movs r0, 0xA ldrsh r2, [r3, r0] ldr r1, _0800CDE8 @ =gUnknown_8234694 movs r4, 0x8 ldrsh r0, [r3, r4] adds r0, r1 ldrb r0, [r0] cmp r2, r0 bge _0800CDEC ldrh r0, [r3, 0xA] adds r0, 0x1 strh r0, [r3, 0xA] movs r0, 0x1 b _0800CDEE .align 2, 0 _0800CDE4: .4byte gUnknown_3005090 _0800CDE8: .4byte gUnknown_8234694 _0800CDEC: movs r0, 0 _0800CDEE: add sp, 0x4 pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_800CCF8 thumb_func_start sub_800CDF8 sub_800CDF8: @ 800CDF8 push {r4,lr} sub sp, 0xC adds r4, r0, 0 movs r0, 0x4 movs r1, 0xAA bl FillWindowPixelBuffer ldr r0, _0800CE48 @ =gUnknown_8234638 bl sub_800D0B4 ldr r0, _0800CE4C @ =gUnknown_8234688 str r0, [sp] movs r0, 0x2 str r0, [sp, 0x4] str r4, [sp, 0x8] movs r0, 0x4 movs r1, 0x2 movs r2, 0 movs r3, 0x2 bl sub_812E51C movs r0, 0x4 bl PutWindowTilemap movs r0, 0x4 movs r1, 0x2 bl sub_8003F20 ldr r1, _0800CE50 @ =0x000013dd movs r0, 0x40 bl SetGpuReg ldr r1, _0800CE54 @ =0x0000739d movs r0, 0x44 bl SetGpuReg add sp, 0xC pop {r4} pop {r0} bx r0 .align 2, 0 _0800CE48: .4byte gUnknown_8234638 _0800CE4C: .4byte gUnknown_8234688 _0800CE50: .4byte 0x000013dd _0800CE54: .4byte 0x0000739d thumb_func_end sub_800CDF8 thumb_func_start sub_800CE58 sub_800CE58: @ 800CE58 push {lr} bl sub_800CE70 bl sub_800CF3C bl sub_800CED4 bl sub_800CFC4 pop {r0} bx r0 thumb_func_end sub_800CE58 thumb_func_start sub_800CE70 sub_800CE70: @ 800CE70 push {lr} sub sp, 0x14 ldr r0, _0800CEC8 @ =gUnknown_823468B str r0, [sp] movs r0, 0x1 negs r0, r0 str r0, [sp, 0x4] ldr r0, _0800CECC @ =gUnknown_841B6D5 str r0, [sp, 0x8] movs r0, 0x1 movs r1, 0x2 movs r2, 0x2 movs r3, 0x12 bl sub_812E51C add r1, sp, 0xC movs r2, 0 ldr r0, _0800CED0 @ =gUnknown_300500C ldr r3, [r0] _0800CE96: adds r0, r3, r2 ldrb r0, [r0] strb r0, [r1] adds r1, 0x1 adds r2, 0x1 cmp r2, 0x6 ble _0800CE96 movs r0, 0xFF strb r0, [r1] ldr r0, _0800CEC8 @ =gUnknown_823468B str r0, [sp] movs r0, 0x1 negs r0, r0 str r0, [sp, 0x4] add r0, sp, 0xC str r0, [sp, 0x8] movs r0, 0x1 movs r1, 0x2 movs r2, 0x3E movs r3, 0x12 bl sub_812E51C add sp, 0x14 pop {r0} bx r0 .align 2, 0 _0800CEC8: .4byte gUnknown_823468B _0800CECC: .4byte gUnknown_841B6D5 _0800CED0: .4byte gUnknown_300500C thumb_func_end sub_800CE70 thumb_func_start sub_800CED4 sub_800CED4: @ 800CED4 push {r4-r6,lr} sub sp, 0x2C ldr r6, _0800CF30 @ =gUnknown_823468B str r6, [sp] movs r5, 0x1 negs r5, r5 str r5, [sp, 0x4] ldr r0, _0800CF34 @ =gUnknown_841B6DC str r0, [sp, 0x8] movs r0, 0x1 movs r1, 0x2 movs r2, 0x2 movs r3, 0x22 bl sub_812E51C ldr r4, _0800CF38 @ =gUnknown_300500C ldr r0, [r4] ldrh r1, [r0, 0xE] add r0, sp, 0xC movs r2, 0 movs r3, 0x3 bl sub_8008E78 movs r1, 0xF0 strb r1, [r0] adds r0, 0x1 ldr r1, [r4] ldrb r1, [r1, 0x10] movs r2, 0x2 movs r3, 0x2 bl sub_8008E78 str r6, [sp] str r5, [sp, 0x4] add r0, sp, 0xC str r0, [sp, 0x8] movs r0, 0x1 movs r1, 0x2 movs r2, 0x3E movs r3, 0x22 bl sub_812E51C add sp, 0x2C pop {r4-r6} pop {r0} bx r0 .align 2, 0 _0800CF30: .4byte gUnknown_823468B _0800CF34: .4byte gUnknown_841B6DC _0800CF38: .4byte gUnknown_300500C thumb_func_end sub_800CED4 thumb_func_start sub_800CF3C sub_800CF3C: @ 800CF3C push {r4-r6,lr} sub sp, 0x2C ldr r0, _0800CF60 @ =0x00000829 bl sub_806E6D0 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _0800CFAE bl sub_806E25C cmp r0, 0 beq _0800CF64 movs r0, 0x1 bl sub_8088E8C b _0800CF6A .align 2, 0 _0800CF60: .4byte 0x00000829 _0800CF64: movs r0, 0x1 bl sub_8088EDC _0800CF6A: lsls r0, 16 lsrs r6, r0, 16 ldr r5, _0800CFB8 @ =gUnknown_823468B str r5, [sp] movs r4, 0x1 negs r4, r4 str r4, [sp, 0x4] ldr r0, _0800CFBC @ =gUnknown_841B6E3 str r0, [sp, 0x8] movs r0, 0x1 movs r1, 0x2 movs r2, 0x2 movs r3, 0x32 bl sub_812E51C add r0, sp, 0xC adds r1, r6, 0 movs r2, 0 movs r3, 0x3 bl sub_8008E78 ldr r1, _0800CFC0 @ =gUnknown_841B6EB bl StringAppend str r5, [sp] str r4, [sp, 0x4] add r0, sp, 0xC str r0, [sp, 0x8] movs r0, 0x1 movs r1, 0x2 movs r2, 0x3E movs r3, 0x32 bl sub_812E51C _0800CFAE: add sp, 0x2C pop {r4-r6} pop {r0} bx r0 .align 2, 0 _0800CFB8: .4byte gUnknown_823468B _0800CFBC: .4byte gUnknown_841B6E3 _0800CFC0: .4byte gUnknown_841B6EB thumb_func_end sub_800CF3C thumb_func_start sub_800CFC4 sub_800CFC4: @ 800CFC4 push {r4-r6,lr} sub sp, 0x2C movs r6, 0 movs r4, 0x82 lsls r4, 4 _0800CFCE: lsls r0, r4, 16 lsrs r0, 16 bl sub_806E6D0 lsls r0, 24 cmp r0, 0 beq _0800CFE2 adds r0, r6, 0x1 lsls r0, 24 lsrs r6, r0, 24 _0800CFE2: adds r4, 0x1 ldr r0, _0800D034 @ =0x00000827 cmp r4, r0 bls _0800CFCE ldr r5, _0800D038 @ =gUnknown_823468B str r5, [sp] movs r4, 0x1 negs r4, r4 str r4, [sp, 0x4] ldr r0, _0800D03C @ =gUnknown_841B6EC str r0, [sp, 0x8] movs r0, 0x1 movs r1, 0x2 movs r2, 0x2 movs r3, 0x42 bl sub_812E51C add r0, sp, 0xC adds r1, r6, 0 movs r2, 0x2 movs r3, 0x1 bl sub_8008E78 ldr r1, _0800D040 @ =gUnknown_841B6F3 bl StringAppend str r5, [sp] str r4, [sp, 0x4] add r0, sp, 0xC str r0, [sp, 0x8] movs r0, 0x1 movs r1, 0x2 movs r2, 0x3E movs r3, 0x42 bl sub_812E51C add sp, 0x2C pop {r4-r6} pop {r0} bx r0 .align 2, 0 _0800D034: .4byte 0x00000827 _0800D038: .4byte gUnknown_823468B _0800D03C: .4byte gUnknown_841B6EC _0800D040: .4byte gUnknown_841B6F3 thumb_func_end sub_800CFC4 thumb_func_start sub_800D044 sub_800D044: @ 800D044 push {r4,r5,lr} adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 ldr r5, _0800D088 @ =gUnknown_300500C ldr r0, [r5] ldrb r0, [r0, 0x14] lsrs r0, 3 bl sub_8069788 ldr r1, [r0] movs r2, 0x90 lsls r2, 1 ldr r3, _0800D08C @ =0x000001b1 adds r0, r4, 0 bl LoadBgTiles ldr r0, [r5] ldrb r0, [r0, 0x14] lsrs r0, 3 bl sub_8069788 ldr r0, [r0, 0x4] movs r1, 0x20 movs r2, 0x20 bl LoadPalette ldr r0, _0800D090 @ =gUnknown_8234638 bl sub_800D1E8 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0800D088: .4byte gUnknown_300500C _0800D08C: .4byte 0x000001b1 _0800D090: .4byte gUnknown_8234638 thumb_func_end sub_800D044 thumb_func_start sub_800D094 sub_800D094: @ 800D094 push {lr} ldr r1, _0800D0AC @ =0x000001b1 movs r0, 0 movs r2, 0x20 bl sub_814FF2C ldr r0, _0800D0B0 @ =gUnknown_8234638 bl sub_800D1E8 pop {r0} bx r0 .align 2, 0 _0800D0AC: .4byte 0x000001b1 _0800D0B0: .4byte gUnknown_8234638 thumb_func_end sub_800D094 thumb_func_start sub_800D0B4 sub_800D0B4: @ 800D0B4 push {r4-r6,lr} mov r6, r8 push {r6} sub sp, 0xC adds r5, r0, 0 ldrb r0, [r5] ldr r1, _0800D1D8 @ =0x000001b1 ldrb r2, [r5, 0x1] subs r2, 0x1 lsls r2, 24 lsrs r2, 24 ldrb r3, [r5, 0x2] subs r3, 0x1 lsls r3, 24 lsrs r3, 24 movs r6, 0x1 str r6, [sp] str r6, [sp, 0x4] movs r4, 0x2 mov r8, r4 str r4, [sp, 0x8] bl FillBgTilemapBufferRect ldrb r0, [r5] movs r1, 0xD9 lsls r1, 1 ldrb r2, [r5, 0x1] ldrb r3, [r5, 0x2] subs r3, 0x1 lsls r3, 24 lsrs r3, 24 ldrb r4, [r5, 0x3] str r4, [sp] ldrb r4, [r5, 0x4] str r4, [sp, 0x4] mov r4, r8 str r4, [sp, 0x8] bl FillBgTilemapBufferRect ldrb r0, [r5] ldr r1, _0800D1DC @ =0x000001b3 ldrb r2, [r5, 0x3] ldrb r3, [r5, 0x1] adds r2, r3 lsls r2, 24 lsrs r2, 24 ldrb r3, [r5, 0x2] subs r3, 0x1 lsls r3, 24 lsrs r3, 24 str r6, [sp] str r6, [sp, 0x4] str r4, [sp, 0x8] bl FillBgTilemapBufferRect ldrb r0, [r5] movs r1, 0xDA lsls r1, 1 ldrb r2, [r5, 0x1] subs r2, 0x1 lsls r2, 24 lsrs r2, 24 ldrb r3, [r5, 0x2] str r6, [sp] ldrb r4, [r5, 0x4] str r4, [sp, 0x4] mov r4, r8 str r4, [sp, 0x8] bl FillBgTilemapBufferRect ldrb r0, [r5] movs r1, 0xDB lsls r1, 1 ldrb r2, [r5, 0x3] ldrb r3, [r5, 0x1] adds r2, r3 lsls r2, 24 lsrs r2, 24 ldrb r3, [r5, 0x2] str r6, [sp] ldrb r4, [r5, 0x4] str r4, [sp, 0x4] mov r4, r8 str r4, [sp, 0x8] bl FillBgTilemapBufferRect ldrb r0, [r5] ldr r1, _0800D1E0 @ =0x000001b7 ldrb r2, [r5, 0x1] subs r2, 0x1 lsls r2, 24 lsrs r2, 24 ldrb r3, [r5, 0x4] ldrb r4, [r5, 0x2] adds r3, r4 lsls r3, 24 lsrs r3, 24 str r6, [sp] str r6, [sp, 0x4] mov r4, r8 str r4, [sp, 0x8] bl FillBgTilemapBufferRect ldrb r0, [r5] movs r1, 0xDC lsls r1, 1 ldrb r2, [r5, 0x1] ldrb r3, [r5, 0x4] ldrb r4, [r5, 0x2] adds r3, r4 lsls r3, 24 lsrs r3, 24 ldrb r4, [r5, 0x3] str r4, [sp] str r6, [sp, 0x4] mov r4, r8 str r4, [sp, 0x8] bl FillBgTilemapBufferRect ldrb r0, [r5] ldr r1, _0800D1E4 @ =0x000001b9 ldrb r2, [r5, 0x3] ldrb r3, [r5, 0x1] adds r2, r3 lsls r2, 24 lsrs r2, 24 ldrb r3, [r5, 0x4] ldrb r4, [r5, 0x2] adds r3, r4 lsls r3, 24 lsrs r3, 24 str r6, [sp] str r6, [sp, 0x4] mov r4, r8 str r4, [sp, 0x8] bl FillBgTilemapBufferRect ldrb r0, [r5] bl CopyBgTilemapBufferToVram add sp, 0xC pop {r3} mov r8, r3 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _0800D1D8: .4byte 0x000001b1 _0800D1DC: .4byte 0x000001b3 _0800D1E0: .4byte 0x000001b7 _0800D1E4: .4byte 0x000001b9 thumb_func_end sub_800D0B4 thumb_func_start sub_800D1E8 sub_800D1E8: @ 800D1E8 push {r4-r6,lr} sub sp, 0xC adds r6, r0, 0 ldrb r0, [r6] ldrb r1, [r6, 0x1] subs r2, r1, 0x1 lsls r2, 24 lsrs r2, 24 ldrb r4, [r6, 0x2] subs r3, r4, 0x1 lsls r3, 24 lsrs r3, 24 ldrb r5, [r6, 0x3] adds r1, r5 adds r1, 0x1 lsls r1, 24 lsrs r1, 24 str r1, [sp] ldrb r1, [r6, 0x4] adds r4, r1 adds r4, 0x1 lsls r4, 24 lsrs r4, 24 str r4, [sp, 0x4] movs r1, 0x2 str r1, [sp, 0x8] movs r1, 0 bl FillBgTilemapBufferRect ldrb r0, [r6] bl CopyBgTilemapBufferToVram add sp, 0xC pop {r4-r6} pop {r0} bx r0 thumb_func_end sub_800D1E8 .align 2, 0 @ Don't pad with nop.