.include "asm/macros.inc" .include "constants/constants.inc" .syntax unified .text thumb_func_start sub_81D6720 sub_81D6720: @ 81D6720 push {r4-r6,lr} mov r6, r8 push {r6} adds r4, r0, 0 adds r5, r1, 0 mov r8, r2 lsls r4, 24 lsrs r4, 24 lsls r5, 24 lsrs r5, 24 ldr r6, =gUnknown_0203CF60 ldr r0, =0x00002018 bl AllocZeroed str r0, [r6] ldr r1, =0x00002006 adds r0, r1 strb r4, [r0] ldr r0, [r6] mov r1, r8 str r1, [r0] ldr r1, =0x00002007 adds r0, r1 strb r5, [r0] ldr r0, =sub_81D6774 bl SetMainCallback2 pop {r3} mov r8, r3 pop {r4-r6} pop {r0} bx r0 .pool thumb_func_end sub_81D6720 thumb_func_start sub_81D6774 sub_81D6774: @ 81D6774 push {lr} bl SetVBlankHBlankCallbacksToNull bl clear_scheduled_bg_copies_to_vram bl remove_some_task bl FreeAllSpritePalettes bl ResetPaletteFade bl ResetSpriteData bl ResetTasks movs r0, 0 movs r1, 0xF0 movs r2, 0x20 bl FillPalette ldr r1, =gUnknown_0862A6A0 ldr r0, =gUnknown_0203CF60 ldr r0, [r0] ldr r2, =0x00002006 adds r0, r2 ldrb r0, [r0] lsls r0, 2 adds r0, r1 ldr r0, [r0] movs r1, 0 bl CreateTask ldr r0, =sub_81D67D0 bl SetMainCallback2 pop {r0} bx r0 .pool thumb_func_end sub_81D6774 thumb_func_start sub_81D67D0 sub_81D67D0: @ 81D67D0 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_81D67D0 thumb_func_start sub_81D67EC sub_81D67EC: @ 81D67EC push {lr} bl LoadOam bl ProcessSpriteCopyRequests bl TransferPlttBuffer pop {r0} bx r0 thumb_func_end sub_81D67EC thumb_func_start sub_81D6800 sub_81D6800: @ 81D6800 push {r4,r5,lr} lsls r0, 24 lsrs r5, r0, 24 ldr r0, =gPaletteFade ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 bne _081D6830 bl ResetSpriteData bl FreeAllSpritePalettes ldr r4, =gUnknown_0203CF60 ldr r0, [r4] ldr r0, [r0] bl SetMainCallback2 ldr r0, [r4] bl Free adds r0, r5, 0 bl DestroyTask _081D6830: pop {r4,r5} pop {r0} bx r0 .pool thumb_func_end sub_81D6800 thumb_func_start sub_81D6840 sub_81D6840: @ 81D6840 push {r4-r6,lr} lsls r0, 24 lsrs r3, r0, 24 adds r6, r3, 0 ldr r0, =gPaletteFade ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 lsls r0, 24 lsrs r5, r0, 24 cmp r5, 0 bne _081D68B2 ldr r2, =gUnknown_0203CF60 ldr r1, [r2] ldr r4, =0x00002007 adds r0, r1, r4 ldrb r0, [r0] cmp r0, 0x1 bne _081D6888 ldr r0, =gTasks lsls r1, r3, 2 adds r1, r3 lsls r1, 3 adds r1, r0 ldr r0, =sub_81D6800 b _081D68B0 .pool _081D6888: ldr r4, =0x00002006 adds r1, r4 ldrb r0, [r1] adds r0, 0x1 strb r0, [r1] ldr r2, [r2] ldr r1, =0x00002004 adds r0, r2, r1 strh r5, [r0] ldr r0, =gTasks lsls r1, r6, 2 adds r1, r6 lsls r1, 3 adds r1, r0 ldr r3, =gUnknown_0862A6A0 adds r2, r4 ldrb r0, [r2] lsls r0, 2 adds r0, r3 ldr r0, [r0] _081D68B0: str r0, [r1] _081D68B2: pop {r4-r6} pop {r0} bx r0 .pool thumb_func_end sub_81D6840 thumb_func_start sub_81D68C8 sub_81D68C8: @ 81D68C8 push {lr} movs r0, 0x48 movs r1, 0x3F bl SetGpuReg movs r0, 0x4A movs r1, 0 bl SetGpuReg movs r0, 0x40 movs r1, 0xF0 bl SetGpuReg ldr r1, =0x00001888 movs r0, 0x44 bl SetGpuReg ldr r0, =gPlttBufferUnfaded movs r1, 0 strh r1, [r0] ldr r0, =gPlttBufferFaded strh r1, [r0] pop {r0} bx r0 .pool thumb_func_end sub_81D68C8 thumb_func_start sub_81D6904 sub_81D6904: @ 81D6904 push {lr} movs r0, 0x48 movs r1, 0x3F bl SetGpuReg movs r0, 0x4A movs r1, 0x3F bl SetGpuReg pop {r0} bx r0 thumb_func_end sub_81D6904 thumb_func_start sub_81D691C sub_81D691C: @ 81D691C 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, =gTasks + 0x8 adds r5, r0, r1 bl sub_81D750C ldr r0, =gPaletteFade ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 bne _081D697E movs r0, 0 ldrsh r1, [r5, r0] cmp r1, 0x40 bne _081D6954 bl sub_81D7438 b _081D6978 .pool _081D6954: cmp r1, 0x90 bne _081D695E bl sub_81D7480 b _081D6978 _081D695E: cmp r1, 0x94 beq _081D6974 movs r0, 0xA4 lsls r0, 1 cmp r1, r0 bne _081D6978 adds r0, r4, 0 movs r1, 0 bl sub_81D75B4 b _081D697E _081D6974: bl sub_81D74C8 _081D6978: ldrh r0, [r5] adds r0, 0x1 strh r0, [r5] _081D697E: pop {r4,r5} pop {r0} bx r0 thumb_func_end sub_81D691C thumb_func_start sub_81D6984 sub_81D6984: @ 81D6984 push {r4-r6,lr} mov r6, r8 push {r6} ldr r0, =gUnknown_0862A72C mov r8, r0 movs r1, 0x58 movs r2, 0x48 movs r3, 0x3 bl CreateSprite adds r5, r0, 0 lsls r5, 24 lsrs r5, 24 ldr r6, =gSprites lsls r4, r5, 4 adds r4, r5 lsls r4, 2 adds r0, r6, 0 adds r0, 0x1C adds r0, r4, r0 ldr r1, =sub_81D6A20 str r1, [r0] adds r0, r6, 0 adds r0, 0x2E adds r4, r0 mov r0, r8 movs r1, 0x38 movs r2, 0x68 movs r3, 0x3 bl CreateSprite lsls r0, 24 lsrs r0, 24 strh r0, [r4] ldr r0, =gUnknown_0862A750 movs r1, 0x4B movs r2, 0x65 movs r3, 0 bl CreateSprite lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x2] ldr r0, =gUnknown_0862A774 movs r1, 0x6D movs r2, 0x72 movs r3, 0x1 bl CreateSprite lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x4] movs r0, 0 ldrsh r1, [r4, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r6 movs r1, 0x1 bl StartSpriteAnim adds r0, r5, 0 pop {r3} mov r8, r3 pop {r4-r6} pop {r1} bx r1 .pool thumb_func_end sub_81D6984 thumb_func_start sub_81D6A20 sub_81D6A20: @ 81D6A20 push {r4,lr} adds r3, r0, 0 movs r0, 0x2E adds r0, r3 mov r12, r0 ldrh r0, [r0, 0xA] adds r0, 0x1 movs r1, 0x1F ands r0, r1 mov r1, r12 strh r0, [r1, 0xA] cmp r0, 0 bne _081D6A84 ldrh r1, [r3, 0x20] movs r2, 0x20 ldrsh r0, [r3, r2] cmp r0, 0x48 beq _081D6A84 subs r0, r1, 0x1 strh r0, [r3, 0x20] ldr r2, =gSprites movs r4, 0x2E ldrsh r1, [r3, r4] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r2 ldrh r1, [r0, 0x20] subs r1, 0x1 strh r1, [r0, 0x20] mov r0, r12 movs r4, 0x2 ldrsh r1, [r0, r4] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r2 ldrh r1, [r0, 0x20] subs r1, 0x1 strh r1, [r0, 0x20] mov r0, r12 movs r4, 0x4 ldrsh r1, [r0, r4] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r2 ldrh r1, [r0, 0x20] subs r1, 0x1 strh r1, [r0, 0x20] _081D6A84: adds r0, r3, 0 adds r0, 0x2B ldrb r3, [r0] cmp r3, 0x1 beq _081D6AE4 cmp r3, 0x1 bgt _081D6A9C cmp r3, 0 beq _081D6AA6 b _081D6B68 .pool _081D6A9C: cmp r3, 0x2 beq _081D6B24 cmp r3, 0x3 beq _081D6AE4 b _081D6B68 _081D6AA6: ldr r2, =gSprites mov r0, r12 movs r4, 0x2 ldrsh r1, [r0, r4] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r2 strh r3, [r0, 0x24] mov r0, r12 movs r4, 0x2 ldrsh r1, [r0, r4] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r2 strh r3, [r0, 0x26] mov r0, r12 movs r4, 0x4 ldrsh r1, [r0, r4] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r2 strh r3, [r0, 0x24] mov r0, r12 movs r4, 0x4 ldrsh r1, [r0, r4] b _081D6B5E .pool _081D6AE4: ldr r2, =gSprites mov r0, r12 movs r3, 0x2 ldrsh r1, [r0, r3] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r2 ldr r1, =0x0000ffff strh r1, [r0, 0x24] mov r4, r12 movs r0, 0x2 ldrsh r1, [r4, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r2 movs r3, 0 strh r3, [r0, 0x26] movs r0, 0x4 ldrsh r1, [r4, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r2 movs r1, 0x1 negs r1, r1 b _081D6B58 .pool _081D6B24: ldr r2, =gSprites mov r3, r12 movs r4, 0x2 ldrsh r1, [r3, r4] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r2 ldr r1, =0x0000ffff strh r1, [r0, 0x24] movs r0, 0x2 ldrsh r1, [r3, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r2 movs r3, 0x1 strh r3, [r0, 0x26] mov r4, r12 movs r0, 0x4 ldrsh r1, [r4, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r2 ldr r1, =0x0000fffe _081D6B58: strh r1, [r0, 0x24] movs r0, 0x4 ldrsh r1, [r4, r0] _081D6B5E: lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r2 strh r3, [r0, 0x26] _081D6B68: pop {r4} pop {r0} bx r0 .pool thumb_func_end sub_81D6A20 thumb_func_start sub_81D6B7C sub_81D6B7C: @ 81D6B7C push {r4-r6,lr} mov r6, r8 push {r6} ldr r5, =gUnknown_0862A81C adds r0, r5, 0 movs r1, 0x88 movs r2, 0x60 movs r3, 0x1 bl CreateSprite mov r8, r0 mov r0, r8 lsls r0, 24 lsrs r0, 24 mov r8, r0 ldr r6, =gSprites lsls r4, r0, 4 add r4, r8 lsls r4, 2 adds r0, r6, 0 adds r0, 0x1C adds r0, r4, r0 ldr r1, =sub_81D6D20 str r1, [r0] adds r0, r6, 0 adds r0, 0x2E adds r4, r0 adds r0, r5, 0 movs r1, 0xA8 movs r2, 0x60 movs r3, 0x1 bl CreateSprite lsls r0, 8 strh r0, [r4] adds r0, r5, 0 movs r1, 0x88 movs r2, 0x70 movs r3, 0x1 bl CreateSprite lsls r0, 24 lsrs r0, 24 ldrh r1, [r4] orrs r0, r1 strh r0, [r4] adds r0, r5, 0 movs r1, 0xA8 movs r2, 0x70 movs r3, 0x1 bl CreateSprite lsls r0, 8 strh r0, [r4, 0x2] adds r0, r5, 0 movs r1, 0x88 movs r2, 0x80 movs r3, 0x1 bl CreateSprite lsls r0, 24 lsrs r0, 24 ldrh r1, [r4, 0x2] orrs r0, r1 strh r0, [r4, 0x2] adds r0, r5, 0 movs r1, 0xA8 movs r2, 0x80 movs r3, 0x1 bl CreateSprite lsls r0, 8 strh r0, [r4, 0x4] adds r0, r5, 0 movs r1, 0x68 movs r2, 0x80 movs r3, 0x2 bl CreateSprite lsls r0, 24 lsrs r0, 24 ldrh r1, [r4, 0x4] orrs r0, r1 strh r0, [r4, 0x4] adds r0, r5, 0 movs r1, 0x88 movs r2, 0x80 movs r3, 0x2 bl CreateSprite lsls r0, 8 strh r0, [r4, 0x6] adds r0, r5, 0 movs r1, 0xB8 movs r2, 0x80 movs r3, 0 bl CreateSprite lsls r0, 24 lsrs r0, 24 ldrh r1, [r4, 0x6] orrs r0, r1 strh r0, [r4, 0x6] ldr r0, =gUnknown_0862A84C movs r1, 0xD0 movs r2, 0x84 movs r3, 0 bl CreateSprite lsls r0, 8 strh r0, [r4, 0x8] ldr r0, =gUnknown_0862A864 movs r1, 0xC8 movs r2, 0x78 movs r3, 0x1 bl CreateSprite lsls r0, 24 lsrs r0, 24 ldrh r1, [r4, 0x8] orrs r0, r1 strh r0, [r4, 0x8] ldrh r1, [r4] lsls r1, 16 asrs r1, 24 lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r6 movs r1, 0x1 bl StartSpriteAnim ldrb r1, [r4] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r6 movs r1, 0x2 bl StartSpriteAnim ldrh r1, [r4, 0x2] lsls r1, 16 asrs r1, 24 lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r6 movs r1, 0x3 bl StartSpriteAnim ldrb r1, [r4, 0x2] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r6 movs r1, 0x4 bl StartSpriteAnim ldrh r1, [r4, 0x4] lsls r1, 16 asrs r1, 24 lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r6 movs r1, 0x5 bl StartSpriteAnim ldrb r1, [r4, 0x4] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r6 movs r1, 0x6 bl StartSpriteAnim ldrh r1, [r4, 0x6] lsls r1, 16 asrs r1, 24 lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r6 movs r1, 0x7 bl StartSpriteAnim ldrb r1, [r4, 0x6] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r6 movs r1, 0x8 bl StartSpriteAnim mov r0, r8 pop {r3} mov r8, r3 pop {r4-r6} pop {r1} bx r1 .pool thumb_func_end sub_81D6B7C thumb_func_start sub_81D6D20 sub_81D6D20: @ 81D6D20 push {r4-r7,lr} adds r4, r0, 0 adds r3, r4, 0 adds r3, 0x2E ldrh r0, [r3, 0xA] adds r0, 0x1 movs r1, 0x1F ands r0, r1 strh r0, [r3, 0xA] ldr r7, =gSprites cmp r0, 0 bne _081D6E0E ldrh r1, [r4, 0x20] movs r2, 0x20 ldrsh r0, [r4, r2] cmp r0, 0x98 beq _081D6E0E adds r0, r1, 0x1 strh r0, [r4, 0x20] ldrh r1, [r4, 0x2E] lsls r1, 16 asrs r1, 24 lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r7 ldrh r1, [r0, 0x20] adds r1, 0x1 strh r1, [r0, 0x20] ldrh r0, [r4, 0x2E] movs r2, 0xFF adds r1, r2, 0 ands r1, r0 lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r7 ldrh r1, [r0, 0x20] adds r1, 0x1 strh r1, [r0, 0x20] ldrh r1, [r3, 0x2] lsls r1, 16 asrs r1, 24 lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r7 ldrh r1, [r0, 0x20] adds r1, 0x1 strh r1, [r0, 0x20] ldrh r0, [r3, 0x2] adds r1, r2, 0 ands r1, r0 lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r7 ldrh r1, [r0, 0x20] adds r1, 0x1 strh r1, [r0, 0x20] ldrh r1, [r3, 0x4] lsls r1, 16 asrs r1, 24 lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r7 ldrh r1, [r0, 0x20] adds r1, 0x1 strh r1, [r0, 0x20] ldrh r0, [r3, 0x4] adds r1, r2, 0 ands r1, r0 lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r7 ldrh r1, [r0, 0x20] adds r1, 0x1 strh r1, [r0, 0x20] ldrh r1, [r3, 0x6] lsls r1, 16 asrs r1, 24 lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r7 ldrh r1, [r0, 0x20] adds r1, 0x1 strh r1, [r0, 0x20] ldrh r0, [r3, 0x6] adds r1, r2, 0 ands r1, r0 lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r7 ldrh r1, [r0, 0x20] adds r1, 0x1 strh r1, [r0, 0x20] ldrh r1, [r3, 0x8] lsls r1, 16 asrs r1, 24 lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r7 ldrh r1, [r0, 0x20] adds r1, 0x1 strh r1, [r0, 0x20] ldrh r0, [r3, 0x8] ands r2, r0 lsls r0, r2, 4 adds r0, r2 lsls r0, 2 adds r0, r7 ldrh r1, [r0, 0x20] adds r1, 0x1 strh r1, [r0, 0x20] _081D6E0E: adds r6, r7, 0 movs r5, 0xFF ldrb r1, [r3, 0x4] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r6 adds r0, 0x2B ldrb r2, [r0] cmp r2, 0x1 beq _081D6EE0 cmp r2, 0x1 bgt _081D6E34 cmp r2, 0 beq _081D6E40 b _081D6FC8 .pool _081D6E34: cmp r2, 0x2 bne _081D6E3A b _081D6F68 _081D6E3A: cmp r2, 0x3 beq _081D6EE0 b _081D6FC8 _081D6E40: strh r2, [r4, 0x26] ldrh r1, [r3] lsls r1, 16 asrs r1, 24 lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r6 strh r2, [r0, 0x26] ldrh r0, [r3] adds r1, r5, 0 ands r1, r0 lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r6 strh r2, [r0, 0x26] ldrh r1, [r3, 0x2] lsls r1, 16 asrs r1, 24 lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r6 strh r2, [r0, 0x26] ldrh r0, [r3, 0x2] adds r1, r5, 0 ands r1, r0 lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r6 strh r2, [r0, 0x26] ldrh r1, [r3, 0x4] lsls r1, 16 asrs r1, 24 lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r6 strh r2, [r0, 0x26] ldrh r0, [r3, 0x4] adds r1, r5, 0 ands r1, r0 lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r6 strh r2, [r0, 0x26] ldrh r1, [r3, 0x6] lsls r1, 16 asrs r1, 24 lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r6 strh r2, [r0, 0x26] ldrh r0, [r3, 0x6] adds r1, r5, 0 ands r1, r0 lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r6 strh r2, [r0, 0x26] ldrh r1, [r3, 0x8] lsls r1, 16 asrs r1, 24 lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r6 strh r2, [r0, 0x26] ldrh r1, [r3, 0x8] ands r1, r5 lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r6 b _081D6FC6 _081D6EE0: movs r2, 0x1 strh r2, [r4, 0x26] ldrh r1, [r3] lsls r1, 16 asrs r1, 24 lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r7 strh r2, [r0, 0x26] ldrb r1, [r3] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r7 strh r2, [r0, 0x26] ldrh r1, [r3, 0x2] lsls r1, 16 asrs r1, 24 lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r7 strh r2, [r0, 0x26] ldrb r1, [r3, 0x2] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r7 strh r2, [r0, 0x26] ldrh r1, [r3, 0x4] lsls r1, 16 asrs r1, 24 lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r7 strh r2, [r0, 0x26] ldrb r1, [r3, 0x4] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r7 strh r2, [r0, 0x26] ldrh r1, [r3, 0x6] lsls r1, 16 asrs r1, 24 lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r7 strh r2, [r0, 0x26] ldrb r1, [r3, 0x6] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r7 strh r2, [r0, 0x26] ldrh r1, [r3, 0x8] lsls r1, 16 asrs r1, 24 lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r7 strh r2, [r0, 0x26] ldrb r1, [r3, 0x8] b _081D6FBE _081D6F68: strh r2, [r4, 0x26] ldrh r1, [r3] lsls r1, 16 asrs r1, 24 lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r7 strh r2, [r0, 0x26] ldrh r0, [r3] adds r1, r5, 0 ands r1, r0 lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r7 strh r2, [r0, 0x26] ldrh r1, [r3, 0x2] lsls r1, 16 asrs r1, 24 lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r7 strh r2, [r0, 0x26] ldrh r0, [r3, 0x2] adds r1, r5, 0 ands r1, r0 lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r7 strh r2, [r0, 0x26] ldrh r1, [r3, 0x4] lsls r1, 16 asrs r1, 24 lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r7 strh r2, [r0, 0x26] ldrh r1, [r3, 0x8] ands r1, r5 _081D6FBE: lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r7 _081D6FC6: strh r2, [r0, 0x26] _081D6FC8: pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_81D6D20 thumb_func_start sub_81D6FD0 sub_81D6FD0: @ 81D6FD0 push {lr} bl sub_81D67EC bl sub_80BA0A8 pop {r0} bx r0 thumb_func_end sub_81D6FD0 thumb_func_start sub_81D6FE0 sub_81D6FE0: @ 81D6FE0 push {r4,lr} bl sub_8121DA0 movs r0, 0 bl ResetBgsAndClearDma3BusyFlags ldr r1, =gUnknown_0862A888 movs r0, 0 movs r2, 0x3 bl InitBgsFromTemplates ldr r4, =gUnknown_0203CF60 ldr r1, [r4] adds r1, 0x4 movs r0, 0 bl SetBgTilemapBuffer ldr r1, [r4] ldr r0, =0x00000804 adds r1, r0 movs r0, 0x1 bl SetBgTilemapBuffer ldr r1, [r4] ldr r0, =0x00001004 adds r1, r0 movs r0, 0x2 bl SetBgTilemapBuffer bl sub_8121E10 movs r0, 0 bl schedule_bg_copy_tilemap_to_vram movs r0, 0x1 bl schedule_bg_copy_tilemap_to_vram movs r0, 0x2 bl schedule_bg_copy_tilemap_to_vram movs r1, 0x82 lsls r1, 5 movs r0, 0 bl SetGpuReg movs r0, 0 bl ShowBg movs r0, 0x1 bl ShowBg movs r0, 0x2 bl ShowBg movs r0, 0x50 movs r1, 0 bl SetGpuReg pop {r4} pop {r0} bx r0 .pool thumb_func_end sub_81D6FE0 thumb_func_start sub_81D706C sub_81D706C: @ 81D706C push {r4,lr} sub sp, 0x4 bl reset_temp_tile_data_buffers ldr r1, =gUnknown_08DA33C0 movs r0, 0 str r0, [sp] movs r2, 0 movs r3, 0 bl decompress_and_copy_tile_data_to_vram _081D7082: bl free_temp_tile_data_buffers_if_possible lsls r0, 24 cmp r0, 0 bne _081D7082 ldr r0, =gUnknown_08DA3988 ldr r4, =gUnknown_0203CF60 ldr r1, [r4] adds r1, 0x4 bl LZDecompressWram ldr r0, =gUnknown_08DA3824 ldr r1, [r4] ldr r2, =0x00000804 adds r1, r2 bl LZDecompressWram ldr r0, =gUnknown_08DA3A88 ldr r1, [r4] ldr r2, =0x00001004 adds r1, r2 bl LZDecompressWram ldr r0, =gUnknown_08DA37E8 movs r1, 0 movs r2, 0x40 bl LoadCompressedPalette ldr r0, =gUnknown_0862A8C4 bl LoadCompressedObjectPic ldr r0, =gUnknown_0862A8F8 bl LoadCompressedObjectPic ldr r0, =gUnknown_0862A924 bl LoadCompressedObjectPic ldr r0, =gUnknown_0862A9D4 bl LoadCompressedObjectPic ldr r0, =gUnknown_0862AA14 bl LoadCompressedObjectPic ldr r0, =gUnknown_0862AA34 bl LoadCompressedObjectPic ldr r0, =gUnknown_0862A8CC bl LoadCompressedObjectPalette ldr r0, =gUnknown_0862A9DC bl LoadCompressedObjectPalette add sp, 0x4 pop {r4} pop {r0} bx r0 .pool thumb_func_end sub_81D706C thumb_func_start task_add_00_WIN0V_open_close_above_and_more task_add_00_WIN0V_open_close_above_and_more: @ 81D7134 push {r4-r7,lr} sub sp, 0x8 lsls r0, 24 lsrs r0, 24 lsls r1, r0, 2 adds r1, r0 lsls r6, r1, 3 ldr r7, =gTasks + 0x8 adds r5, r6, r7 bl dp12_8087EA4 bl sub_81D6FE0 bl sub_81D706C movs r4, 0 str r4, [sp, 0x4] ldr r1, =gUnknown_02038C28 ldr r2, =0x010003c0 add r0, sp, 0x4 bl CpuFastSet ldr r2, =gUnknown_0862A87C ldr r0, [r2] ldr r1, [r2, 0x4] ldr r2, [r2, 0x8] bl sub_80BA038 strh r4, [r5] ldr r0, =sub_81D7228 movs r1, 0 bl CreateTask lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x2] ldr r0, =gUnknown_0203CF60 ldr r0, [r0] ldr r1, =0x00002006 adds r0, r1 ldrb r0, [r0] cmp r0, 0 bne _081D71CC bl sub_81D6984 lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x4] bl sub_81D6B7C lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x6] adds r0, r7, 0 subs r0, 0x8 adds r0, r6, r0 ldr r1, =sub_81D691C str r1, [r0] b _081D71EE .pool _081D71CC: bl sub_81D7664 lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x4] bl sub_81D78BC lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x6] adds r0, r7, 0 subs r0, 0x8 adds r0, r6, r0 ldr r1, =sub_81D736C str r1, [r0] bl StopMapMusic _081D71EE: 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 movs r1, 0 movs r2, 0x10 movs r3, 0 bl BeginNormalPaletteFade ldr r0, =sub_81D6FD0 bl SetVBlankCallback movs r0, 0x53 bl PlaySE add sp, 0x8 pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end task_add_00_WIN0V_open_close_above_and_more thumb_func_start sub_81D7228 sub_81D7228: @ 81D7228 push {r4-r7,lr} lsls r0, 24 lsrs r0, 24 lsls r1, r0, 2 adds r1, r0 lsls r1, 3 ldr r0, =gTasks + 0x8 adds r3, r1, r0 movs r1, 0x18 ldr r7, =gUnknown_0203CF60 ldr r4, =gUnknown_02038C28 movs r0, 0xF0 lsls r0, 3 adds r5, r4, r0 _081D7244: lsls r0, r1, 16 asrs r1, r0, 16 adds r6, r0, 0 cmp r1, 0x2F bgt _081D726C lsls r1, 1 adds r2, r1, r4 ldrh r0, [r3] lsrs r0, 8 strh r0, [r2] adds r1, r5 ldrh r0, [r3] b _081D72CA .pool _081D726C: cmp r1, 0x3F bgt _081D7280 lsls r1, 1 adds r2, r1, r4 ldrh r0, [r3, 0x2] lsrs r0, 8 strh r0, [r2] adds r1, r5 ldrh r0, [r3, 0x2] b _081D72CA _081D7280: cmp r1, 0x4B bgt _081D7294 lsls r1, 1 adds r2, r1, r4 ldrh r0, [r3, 0x4] lsrs r0, 8 strh r0, [r2] adds r1, r5 ldrh r0, [r3, 0x4] b _081D72CA _081D7294: cmp r1, 0x53 bgt _081D72A8 lsls r1, 1 adds r2, r1, r4 ldrh r0, [r3, 0x6] lsrs r0, 8 strh r0, [r2] adds r1, r5 ldrh r0, [r3, 0x6] b _081D72CA _081D72A8: cmp r1, 0x57 bgt _081D72BC lsls r1, 1 adds r2, r1, r4 ldrh r0, [r3, 0x8] lsrs r0, 8 strh r0, [r2] adds r1, r5 ldrh r0, [r3, 0x8] b _081D72CA _081D72BC: lsls r1, 1 adds r2, r1, r4 ldrh r0, [r3, 0xA] lsrs r0, 8 strh r0, [r2] adds r1, r5 ldrh r0, [r3, 0xA] _081D72CA: lsrs r0, 8 strh r0, [r1] movs r1, 0x80 lsls r1, 9 adds r0, r6, r1 lsrs r1, r0, 16 asrs r0, 16 cmp r0, 0x5B ble _081D7244 ldr r0, [r7] ldr r1, =0x00002006 adds r0, r1 ldrb r0, [r0] cmp r0, 0 bne _081D7324 movs r1, 0xE0 lsls r1, 1 adds r0, r1, 0 ldrh r1, [r3] adds r0, r1 strh r0, [r3] movs r1, 0xC0 lsls r1, 1 adds r0, r1, 0 ldrh r1, [r3, 0x2] adds r0, r1 strh r0, [r3, 0x2] movs r1, 0xA0 lsls r1, 1 adds r0, r1, 0 ldrh r1, [r3, 0x4] adds r0, r1 strh r0, [r3, 0x4] movs r1, 0x80 lsls r1, 1 adds r0, r1, 0 ldrh r1, [r3, 0x6] adds r0, r1 strh r0, [r3, 0x6] ldrh r0, [r3, 0x8] adds r0, 0xC0 b _081D735E .pool _081D7324: movs r1, 0xC0 lsls r1, 2 adds r0, r1, 0 ldrh r1, [r3] adds r0, r1 strh r0, [r3] movs r1, 0xA0 lsls r1, 2 adds r0, r1, 0 ldrh r1, [r3, 0x2] adds r0, r1 strh r0, [r3, 0x2] movs r1, 0x80 lsls r1, 2 adds r0, r1, 0 ldrh r1, [r3, 0x4] adds r0, r1 strh r0, [r3, 0x4] movs r1, 0xC0 lsls r1, 1 adds r0, r1, 0 ldrh r1, [r3, 0x6] adds r0, r1 strh r0, [r3, 0x6] movs r1, 0x80 lsls r1, 1 adds r0, r1, 0 ldrh r1, [r3, 0x8] adds r0, r1 _081D735E: strh r0, [r3, 0x8] ldrh r0, [r3, 0xA] adds r0, 0x80 strh r0, [r3, 0xA] pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_81D7228 thumb_func_start sub_81D736C sub_81D736C: @ 81D736C push {r4-r7,lr} lsls r0, 24 lsrs r5, r0, 24 lsls r0, r5, 2 adds r0, r5 lsls r0, 3 ldr r7, =gTasks + 0x8 adds r4, r0, r7 bl sub_81D750C ldr r0, =gPaletteFade ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 lsls r0, 24 lsrs r6, r0, 24 cmp r6, 0 bne _081D742E movs r0, 0 ldrsh r1, [r4, r0] cmp r1, 0x20 beq _081D739C cmp r1, 0x70 bne _081D73AC _081D739C: bl sub_81D7438 b _081D7428 .pool _081D73AC: cmp r1, 0xD8 bne _081D73B6 bl sub_81D7480 b _081D7428 _081D73B6: cmp r1, 0xDC bne _081D73C0 bl sub_81D74C8 b _081D7428 _081D73C0: movs r0, 0xBE lsls r0, 1 cmp r1, r0 beq _081D73D8 adds r0, 0x20 cmp r1, r0 bne _081D7428 adds r0, r5, 0 movs r1, 0x2 bl sub_81D75B4 b _081D742E _081D73D8: movs r1, 0x91 lsls r1, 2 movs r0, 0x50 bl SetGpuReg adds r2, r7, 0 subs r2, 0x8 movs r0, 0x2 ldrsh r1, [r4, r0] lsls r0, r1, 2 adds r0, r1 lsls r0, 3 adds r0, r2 ldr r1, =sub_81D752C str r1, [r0] movs r0, 0x2 ldrsh r1, [r4, r0] lsls r0, r1, 2 adds r0, r1 lsls r0, 3 adds r0, r2 strh r6, [r0, 0x8] movs r0, 0x2 ldrsh r1, [r4, r0] lsls r0, r1, 2 adds r0, r1 lsls r0, 3 adds r0, r2 ldrh r1, [r4, 0x4] strh r1, [r0, 0xC] movs r0, 0x2 ldrsh r1, [r4, r0] lsls r0, r1, 2 adds r0, r1 lsls r0, 3 adds r0, r2 ldrh r1, [r4, 0x6] strh r1, [r0, 0xE] bl remove_some_task _081D7428: ldrh r0, [r4] adds r0, 0x1 strh r0, [r4] _081D742E: pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_81D736C thumb_func_start sub_81D7438 sub_81D7438: @ 81D7438 push {r4,lr} sub sp, 0xC movs r0, 0x57 bl PlaySE ldr r0, =0x00007fff ldr r1, =0x0000ffff str r1, [sp] movs r4, 0 str r4, [sp, 0x4] str r4, [sp, 0x8] movs r1, 0 movs r2, 0x10 movs r3, 0 bl sub_80A2C44 ldr r0, =0xffff0000 str r4, [sp] str r4, [sp, 0x4] movs r1, 0x1 str r1, [sp, 0x8] movs r1, 0 movs r2, 0x10 movs r3, 0 bl sub_80A2C44 add sp, 0xC pop {r4} pop {r0} bx r0 .pool thumb_func_end sub_81D7438 thumb_func_start sub_81D7480 sub_81D7480: @ 81D7480 push {r4,lr} sub sp, 0xC movs r0, 0x57 bl PlaySE ldr r0, =0x00007fff ldr r1, =0x0000ffff str r1, [sp] movs r4, 0 str r4, [sp, 0x4] str r4, [sp, 0x8] movs r1, 0 movs r2, 0x10 movs r3, 0x10 bl sub_80A2C44 ldr r0, =0xffff0000 str r4, [sp] str r4, [sp, 0x4] movs r1, 0x1 str r1, [sp, 0x8] movs r1, 0 movs r2, 0x10 movs r3, 0x10 bl sub_80A2C44 add sp, 0xC pop {r4} pop {r0} bx r0 .pool thumb_func_end sub_81D7480 thumb_func_start sub_81D74C8 sub_81D74C8: @ 81D74C8 push {r4,lr} sub sp, 0xC ldr r0, =0x00007fff ldr r1, =0x0000ffff str r1, [sp] movs r4, 0 str r4, [sp, 0x4] str r4, [sp, 0x8] movs r1, 0x4 movs r2, 0x10 movs r3, 0 bl sub_80A2C44 ldr r0, =0xffff0000 str r4, [sp] str r4, [sp, 0x4] movs r1, 0x1 str r1, [sp, 0x8] movs r1, 0x4 movs r2, 0x10 movs r3, 0 bl sub_80A2C44 add sp, 0xC pop {r4} pop {r0} bx r0 .pool thumb_func_end sub_81D74C8 thumb_func_start sub_81D750C sub_81D750C: @ 81D750C push {lr} movs r1, 0x80 lsls r1, 3 movs r0, 0x2 movs r2, 0x1 bl ChangeBgX movs r1, 0x80 lsls r1, 4 movs r0, 0x2 movs r2, 0x2 bl ChangeBgY pop {r0} bx r0 thumb_func_end sub_81D750C thumb_func_start sub_81D752C sub_81D752C: @ 81D752C push {r4,r5,lr} lsls r0, 24 lsrs r0, 24 lsls r1, r0, 2 adds r1, r0 lsls r1, 3 ldr r0, =gTasks + 0x8 adds r5, r1, r0 movs r0, 0x4 ldrsh r1, [r5, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 ldr r4, =gSprites adds r0, r4 bl sub_81D7860 movs r0, 0x6 ldrsh r1, [r5, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r4 bl sub_81D7D14 movs r0, 0x1 bl GetBgY lsls r0, 16 lsrs r4, r0, 16 movs r0, 0x1 bl GetBgY cmp r0, 0 beq _081D757A movs r0, 0x80 lsls r0, 8 cmp r4, r0 bls _081D7586 _081D757A: movs r1, 0x80 lsls r1, 3 movs r0, 0x1 movs r2, 0x2 bl ChangeBgY _081D7586: ldrh r2, [r5] movs r1, 0 ldrsh r0, [r5, r1] cmp r0, 0x10 beq _081D75A6 adds r2, 0x1 strh r2, [r5] lsls r1, r2, 8 movs r0, 0x10 subs r0, r2 orrs r1, r0 lsls r1, 16 lsrs r1, 16 movs r0, 0x52 bl SetGpuReg _081D75A6: pop {r4,r5} pop {r0} bx r0 .pool thumb_func_end sub_81D752C thumb_func_start sub_81D75B4 sub_81D75B4: @ 81D75B4 push {r4,r5,lr} sub sp, 0x4 adds r5, r0, 0 adds r4, r1, 0 lsls r5, 24 lsrs r5, 24 lsls r4, 24 lsrs r4, 24 movs r0, 0x54 bl PlaySE movs r0, 0x1 negs r0, r0 lsls r4, 24 asrs r4, 24 movs r1, 0 str r1, [sp] adds r1, r4, 0 movs r2, 0 movs r3, 0x10 bl BeginNormalPaletteFade ldr r1, =gTasks lsls r0, r5, 2 adds r0, r5 lsls r0, 3 adds r0, r1 ldr r1, =sub_81D7600 str r1, [r0] add sp, 0x4 pop {r4,r5} pop {r0} bx r0 .pool thumb_func_end sub_81D75B4 thumb_func_start sub_81D7600 sub_81D7600: @ 81D7600 push {r4-r7,lr} lsls r0, 24 lsrs r0, 24 lsls r1, r0, 2 adds r1, r0 lsls r6, r1, 3 ldr r7, =gTasks + 0x8 adds r5, r6, r7 bl sub_81D750C ldr r0, =gPaletteFade ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0 bne _081D7652 ldrb r0, [r5, 0x2] bl DestroyTask movs r0, 0x1 movs r1, 0 movs r2, 0 bl ChangeBgY movs r0, 0 bl SetVBlankCallback bl remove_some_task bl ResetSpriteData bl FreeAllSpritePalettes strh r4, [r5] adds r0, r7, 0 subs r0, 0x8 adds r0, r6, r0 ldr r1, =sub_81D6840 str r1, [r0] _081D7652: pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_81D7600 thumb_func_start sub_81D7664 sub_81D7664: @ 81D7664 push {r4-r6,lr} mov r6, r8 push {r6} ldr r0, =gUnknown_0862A8D4 mov r8, r0 movs r1, 0x62 movs r2, 0x48 movs r3, 0x3 bl CreateSprite adds r5, r0, 0 lsls r5, 24 lsrs r5, 24 ldr r6, =gSprites lsls r4, r5, 4 adds r4, r5 lsls r4, 2 adds r0, r6, 0 adds r0, 0x1C adds r0, r4, r0 ldr r1, =sub_81D7700 str r1, [r0] adds r0, r6, 0 adds r0, 0x2E adds r4, r0 mov r0, r8 movs r1, 0x42 movs r2, 0x68 movs r3, 0x3 bl CreateSprite lsls r0, 24 lsrs r0, 24 strh r0, [r4] ldr r0, =gUnknown_0862A900 movs r1, 0x55 movs r2, 0x65 movs r3, 0 bl CreateSprite lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x2] ldr r0, =gUnknown_0862A92C movs r1, 0x77 movs r2, 0x72 movs r3, 0x1 bl CreateSprite lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x4] movs r0, 0 ldrsh r1, [r4, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r6 movs r1, 0x1 bl StartSpriteAnim adds r0, r5, 0 pop {r3} mov r8, r3 pop {r4-r6} pop {r1} bx r1 .pool thumb_func_end sub_81D7664 thumb_func_start sub_81D7700 sub_81D7700: @ 81D7700 push {r4,lr} adds r3, r0, 0 movs r0, 0x2E adds r0, r3 mov r12, r0 ldrh r0, [r0, 0xA] adds r0, 0x1 movs r1, 0xF ands r0, r1 mov r1, r12 strh r0, [r1, 0xA] movs r1, 0x7 ands r1, r0 cmp r1, 0 bne _081D7768 ldrh r1, [r3, 0x20] movs r2, 0x20 ldrsh r0, [r3, r2] cmp r0, 0x48 beq _081D7768 subs r0, r1, 0x1 strh r0, [r3, 0x20] ldr r2, =gSprites movs r4, 0x2E ldrsh r1, [r3, r4] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r2 ldrh r1, [r0, 0x20] subs r1, 0x1 strh r1, [r0, 0x20] mov r0, r12 movs r4, 0x2 ldrsh r1, [r0, r4] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r2 ldrh r1, [r0, 0x20] subs r1, 0x1 strh r1, [r0, 0x20] mov r0, r12 movs r4, 0x4 ldrsh r1, [r0, r4] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r2 ldrh r1, [r0, 0x20] subs r1, 0x1 strh r1, [r0, 0x20] _081D7768: adds r0, r3, 0 adds r0, 0x2B ldrb r3, [r0] cmp r3, 0x1 beq _081D77C8 cmp r3, 0x1 bgt _081D7780 cmp r3, 0 beq _081D778A b _081D784C .pool _081D7780: cmp r3, 0x2 beq _081D7808 cmp r3, 0x3 beq _081D77C8 b _081D784C _081D778A: ldr r2, =gSprites mov r0, r12 movs r4, 0x2 ldrsh r1, [r0, r4] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r2 strh r3, [r0, 0x24] mov r0, r12 movs r4, 0x2 ldrsh r1, [r0, r4] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r2 strh r3, [r0, 0x26] mov r0, r12 movs r4, 0x4 ldrsh r1, [r0, r4] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r2 strh r3, [r0, 0x24] mov r0, r12 movs r4, 0x4 ldrsh r1, [r0, r4] b _081D7842 .pool _081D77C8: ldr r2, =gSprites mov r0, r12 movs r3, 0x2 ldrsh r1, [r0, r3] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r2 ldr r1, =0x0000ffff strh r1, [r0, 0x24] mov r4, r12 movs r0, 0x2 ldrsh r1, [r4, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r2 movs r3, 0 strh r3, [r0, 0x26] movs r0, 0x4 ldrsh r1, [r4, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r2 movs r1, 0x1 negs r1, r1 b _081D783C .pool _081D7808: ldr r2, =gSprites mov r3, r12 movs r4, 0x2 ldrsh r1, [r3, r4] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r2 ldr r1, =0x0000ffff strh r1, [r0, 0x24] movs r0, 0x2 ldrsh r1, [r3, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r2 movs r3, 0x1 strh r3, [r0, 0x26] mov r4, r12 movs r0, 0x4 ldrsh r1, [r4, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r2 ldr r1, =0x0000fffe _081D783C: strh r1, [r0, 0x24] movs r0, 0x4 ldrsh r1, [r4, r0] _081D7842: lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r2 strh r3, [r0, 0x26] _081D784C: pop {r4} pop {r0} bx r0 .pool thumb_func_end sub_81D7700 thumb_func_start sub_81D7860 sub_81D7860: @ 81D7860 push {r4,lr} adds r1, r0, 0 adds r3, r1, 0 adds r3, 0x2E ldrh r2, [r1, 0x22] movs r4, 0x22 ldrsh r0, [r1, r4] cmp r0, 0xA0 bgt _081D78B0 adds r0, r2, 0 adds r0, 0x8 strh r0, [r1, 0x22] ldr r2, =gSprites movs r0, 0x2E ldrsh r1, [r1, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r2 ldrh r1, [r0, 0x22] adds r1, 0x8 strh r1, [r0, 0x22] movs r4, 0x2 ldrsh r1, [r3, r4] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r2 ldrh r1, [r0, 0x22] adds r1, 0x8 strh r1, [r0, 0x22] movs r0, 0x4 ldrsh r1, [r3, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r2 ldrh r1, [r0, 0x22] adds r1, 0x8 strh r1, [r0, 0x22] _081D78B0: pop {r4} pop {r0} bx r0 .pool thumb_func_end sub_81D7860 thumb_func_start sub_81D78BC sub_81D78BC: @ 81D78BC push {r4-r6,lr} mov r6, r8 push {r6} ldr r5, =gUnknown_0862A9E4 adds r0, r5, 0 movs r1, 0x7E movs r2, 0x60 movs r3, 0x1 bl CreateSprite mov r8, r0 mov r0, r8 lsls r0, 24 lsrs r0, 24 mov r8, r0 ldr r6, =gSprites lsls r4, r0, 4 add r4, r8 lsls r4, 2 adds r0, r6, 0 adds r0, 0x1C adds r0, r4, r0 ldr r1, =sub_81D7A60 str r1, [r0] adds r0, r6, 0 adds r0, 0x2E adds r4, r0 adds r0, r5, 0 movs r1, 0x9E movs r2, 0x60 movs r3, 0x1 bl CreateSprite lsls r0, 8 strh r0, [r4] adds r0, r5, 0 movs r1, 0x7E movs r2, 0x70 movs r3, 0x1 bl CreateSprite lsls r0, 24 lsrs r0, 24 ldrh r1, [r4] orrs r0, r1 strh r0, [r4] adds r0, r5, 0 movs r1, 0x9E movs r2, 0x70 movs r3, 0x1 bl CreateSprite lsls r0, 8 strh r0, [r4, 0x2] adds r0, r5, 0 movs r1, 0x7E movs r2, 0x80 movs r3, 0x1 bl CreateSprite lsls r0, 24 lsrs r0, 24 ldrh r1, [r4, 0x2] orrs r0, r1 strh r0, [r4, 0x2] adds r0, r5, 0 movs r1, 0x9E movs r2, 0x80 movs r3, 0x1 bl CreateSprite lsls r0, 8 strh r0, [r4, 0x4] adds r0, r5, 0 movs r1, 0x5E movs r2, 0x80 movs r3, 0x2 bl CreateSprite lsls r0, 24 lsrs r0, 24 ldrh r1, [r4, 0x4] orrs r0, r1 strh r0, [r4, 0x4] adds r0, r5, 0 movs r1, 0x7E movs r2, 0x80 movs r3, 0x2 bl CreateSprite lsls r0, 8 strh r0, [r4, 0x6] adds r0, r5, 0 movs r1, 0xAE movs r2, 0x80 movs r3, 0 bl CreateSprite lsls r0, 24 lsrs r0, 24 ldrh r1, [r4, 0x6] orrs r0, r1 strh r0, [r4, 0x6] ldr r0, =gUnknown_0862AA1C movs r1, 0xC6 movs r2, 0x84 movs r3, 0 bl CreateSprite lsls r0, 8 strh r0, [r4, 0x8] ldr r0, =gUnknown_0862AA3C movs r1, 0xBE movs r2, 0x78 movs r3, 0x1 bl CreateSprite lsls r0, 24 lsrs r0, 24 ldrh r1, [r4, 0x8] orrs r0, r1 strh r0, [r4, 0x8] ldrh r1, [r4] lsls r1, 16 asrs r1, 24 lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r6 movs r1, 0x1 bl StartSpriteAnim ldrb r1, [r4] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r6 movs r1, 0x2 bl StartSpriteAnim ldrh r1, [r4, 0x2] lsls r1, 16 asrs r1, 24 lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r6 movs r1, 0x3 bl StartSpriteAnim ldrb r1, [r4, 0x2] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r6 movs r1, 0x4 bl StartSpriteAnim ldrh r1, [r4, 0x4] lsls r1, 16 asrs r1, 24 lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r6 movs r1, 0x5 bl StartSpriteAnim ldrb r1, [r4, 0x4] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r6 movs r1, 0x6 bl StartSpriteAnim ldrh r1, [r4, 0x6] lsls r1, 16 asrs r1, 24 lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r6 movs r1, 0x7 bl StartSpriteAnim ldrb r1, [r4, 0x6] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r6 movs r1, 0x8 bl StartSpriteAnim mov r0, r8 pop {r3} mov r8, r3 pop {r4-r6} pop {r1} bx r1 .pool thumb_func_end sub_81D78BC thumb_func_start sub_81D7A60 sub_81D7A60: @ 81D7A60 push {r4-r7,lr} adds r4, r0, 0 adds r3, r4, 0 adds r3, 0x2E ldrh r0, [r3, 0xA] adds r0, 0x1 movs r1, 0xF ands r0, r1 strh r0, [r3, 0xA] movs r1, 0x7 ands r1, r0 ldr r7, =gSprites cmp r1, 0 bne _081D7B52 ldrh r1, [r4, 0x20] movs r2, 0x20 ldrsh r0, [r4, r2] cmp r0, 0x98 beq _081D7B52 adds r0, r1, 0x1 strh r0, [r4, 0x20] ldrh r1, [r4, 0x2E] lsls r1, 16 asrs r1, 24 lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r7 ldrh r1, [r0, 0x20] adds r1, 0x1 strh r1, [r0, 0x20] ldrh r0, [r4, 0x2E] movs r2, 0xFF adds r1, r2, 0 ands r1, r0 lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r7 ldrh r1, [r0, 0x20] adds r1, 0x1 strh r1, [r0, 0x20] ldrh r1, [r3, 0x2] lsls r1, 16 asrs r1, 24 lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r7 ldrh r1, [r0, 0x20] adds r1, 0x1 strh r1, [r0, 0x20] ldrh r0, [r3, 0x2] adds r1, r2, 0 ands r1, r0 lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r7 ldrh r1, [r0, 0x20] adds r1, 0x1 strh r1, [r0, 0x20] ldrh r1, [r3, 0x4] lsls r1, 16 asrs r1, 24 lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r7 ldrh r1, [r0, 0x20] adds r1, 0x1 strh r1, [r0, 0x20] ldrh r0, [r3, 0x4] adds r1, r2, 0 ands r1, r0 lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r7 ldrh r1, [r0, 0x20] adds r1, 0x1 strh r1, [r0, 0x20] ldrh r1, [r3, 0x6] lsls r1, 16 asrs r1, 24 lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r7 ldrh r1, [r0, 0x20] adds r1, 0x1 strh r1, [r0, 0x20] ldrh r0, [r3, 0x6] adds r1, r2, 0 ands r1, r0 lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r7 ldrh r1, [r0, 0x20] adds r1, 0x1 strh r1, [r0, 0x20] ldrh r1, [r3, 0x8] lsls r1, 16 asrs r1, 24 lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r7 ldrh r1, [r0, 0x20] adds r1, 0x1 strh r1, [r0, 0x20] ldrh r0, [r3, 0x8] ands r2, r0 lsls r0, r2, 4 adds r0, r2 lsls r0, 2 adds r0, r7 ldrh r1, [r0, 0x20] adds r1, 0x1 strh r1, [r0, 0x20] _081D7B52: adds r6, r7, 0 movs r5, 0xFF ldrb r1, [r3, 0x4] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r6 adds r0, 0x2B ldrb r2, [r0] cmp r2, 0x1 beq _081D7C24 cmp r2, 0x1 bgt _081D7B78 cmp r2, 0 beq _081D7B84 b _081D7D0C .pool _081D7B78: cmp r2, 0x2 bne _081D7B7E b _081D7CAC _081D7B7E: cmp r2, 0x3 beq _081D7C24 b _081D7D0C _081D7B84: strh r2, [r4, 0x26] ldrh r1, [r3] lsls r1, 16 asrs r1, 24 lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r6 strh r2, [r0, 0x26] ldrh r0, [r3] adds r1, r5, 0 ands r1, r0 lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r6 strh r2, [r0, 0x26] ldrh r1, [r3, 0x2] lsls r1, 16 asrs r1, 24 lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r6 strh r2, [r0, 0x26] ldrh r0, [r3, 0x2] adds r1, r5, 0 ands r1, r0 lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r6 strh r2, [r0, 0x26] ldrh r1, [r3, 0x4] lsls r1, 16 asrs r1, 24 lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r6 strh r2, [r0, 0x26] ldrh r0, [r3, 0x4] adds r1, r5, 0 ands r1, r0 lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r6 strh r2, [r0, 0x26] ldrh r1, [r3, 0x6] lsls r1, 16 asrs r1, 24 lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r6 strh r2, [r0, 0x26] ldrh r0, [r3, 0x6] adds r1, r5, 0 ands r1, r0 lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r6 strh r2, [r0, 0x26] ldrh r1, [r3, 0x8] lsls r1, 16 asrs r1, 24 lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r6 strh r2, [r0, 0x26] ldrh r1, [r3, 0x8] ands r1, r5 lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r6 b _081D7D0A _081D7C24: movs r2, 0x1 strh r2, [r4, 0x26] ldrh r1, [r3] lsls r1, 16 asrs r1, 24 lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r7 strh r2, [r0, 0x26] ldrb r1, [r3] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r7 strh r2, [r0, 0x26] ldrh r1, [r3, 0x2] lsls r1, 16 asrs r1, 24 lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r7 strh r2, [r0, 0x26] ldrb r1, [r3, 0x2] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r7 strh r2, [r0, 0x26] ldrh r1, [r3, 0x4] lsls r1, 16 asrs r1, 24 lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r7 strh r2, [r0, 0x26] ldrb r1, [r3, 0x4] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r7 strh r2, [r0, 0x26] ldrh r1, [r3, 0x6] lsls r1, 16 asrs r1, 24 lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r7 strh r2, [r0, 0x26] ldrb r1, [r3, 0x6] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r7 strh r2, [r0, 0x26] ldrh r1, [r3, 0x8] lsls r1, 16 asrs r1, 24 lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r7 strh r2, [r0, 0x26] ldrb r1, [r3, 0x8] b _081D7D02 _081D7CAC: strh r2, [r4, 0x26] ldrh r1, [r3] lsls r1, 16 asrs r1, 24 lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r7 strh r2, [r0, 0x26] ldrh r0, [r3] adds r1, r5, 0 ands r1, r0 lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r7 strh r2, [r0, 0x26] ldrh r1, [r3, 0x2] lsls r1, 16 asrs r1, 24 lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r7 strh r2, [r0, 0x26] ldrh r0, [r3, 0x2] adds r1, r5, 0 ands r1, r0 lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r7 strh r2, [r0, 0x26] ldrh r1, [r3, 0x4] lsls r1, 16 asrs r1, 24 lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r7 strh r2, [r0, 0x26] ldrh r1, [r3, 0x8] ands r1, r5 _081D7D02: lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r7 _081D7D0A: strh r2, [r0, 0x26] _081D7D0C: pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_81D7A60 thumb_func_start sub_81D7D14 sub_81D7D14: @ 81D7D14 push {lr} adds r2, r0, 0 movs r0, 0x2E adds r0, r2 mov r12, r0 ldrh r1, [r2, 0x22] movs r3, 0x22 ldrsh r0, [r2, r3] cmp r0, 0xA0 bgt _081D7E08 adds r0, r1, 0 adds r0, 0x8 strh r0, [r2, 0x22] ldr r3, =gSprites ldrh r1, [r2, 0x2E] lsls r1, 16 asrs r1, 24 lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r3 ldrh r1, [r0, 0x22] adds r1, 0x8 strh r1, [r0, 0x22] ldrh r0, [r2, 0x2E] movs r2, 0xFF adds r1, r2, 0 ands r1, r0 lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r3 ldrh r1, [r0, 0x22] adds r1, 0x8 strh r1, [r0, 0x22] mov r0, r12 ldrh r1, [r0, 0x2] lsls r1, 16 asrs r1, 24 lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r3 ldrh r1, [r0, 0x22] adds r1, 0x8 strh r1, [r0, 0x22] mov r1, r12 ldrh r0, [r1, 0x2] adds r1, r2, 0 ands r1, r0 lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r3 ldrh r1, [r0, 0x22] adds r1, 0x8 strh r1, [r0, 0x22] mov r0, r12 ldrh r1, [r0, 0x4] lsls r1, 16 asrs r1, 24 lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r3 ldrh r1, [r0, 0x22] adds r1, 0x8 strh r1, [r0, 0x22] mov r1, r12 ldrh r0, [r1, 0x4] adds r1, r2, 0 ands r1, r0 lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r3 ldrh r1, [r0, 0x22] adds r1, 0x8 strh r1, [r0, 0x22] mov r0, r12 ldrh r1, [r0, 0x6] lsls r1, 16 asrs r1, 24 lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r3 ldrh r1, [r0, 0x22] adds r1, 0x8 strh r1, [r0, 0x22] mov r1, r12 ldrh r0, [r1, 0x6] adds r1, r2, 0 ands r1, r0 lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r3 ldrh r1, [r0, 0x22] adds r1, 0x8 strh r1, [r0, 0x22] mov r0, r12 ldrh r1, [r0, 0x8] lsls r1, 16 asrs r1, 24 lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r3 ldrh r1, [r0, 0x22] adds r1, 0x8 strh r1, [r0, 0x22] mov r1, r12 ldrh r0, [r1, 0x8] ands r2, r0 lsls r0, r2, 4 adds r0, r2 lsls r0, 2 adds r0, r3 ldrh r1, [r0, 0x22] adds r1, 0x8 strh r1, [r0, 0x22] _081D7E08: pop {r0} bx r0 .pool thumb_func_end sub_81D7D14 thumb_func_start sub_81D7E10 sub_81D7E10: @ 81D7E10 push {r4,lr} bl sub_8121DA0 movs r0, 0 bl ResetBgsAndClearDma3BusyFlags ldr r1, =gUnknown_0862AA54 movs r0, 0x1 movs r2, 0x3 bl InitBgsFromTemplates ldr r4, =gUnknown_0203CF60 ldr r1, [r4] adds r1, 0x4 movs r0, 0 bl SetBgTilemapBuffer ldr r1, [r4] ldr r0, =0x00000804 adds r1, r0 movs r0, 0x1 bl SetBgTilemapBuffer ldr r1, [r4] ldr r0, =0x00001004 adds r1, r0 movs r0, 0x2 bl SetBgTilemapBuffer bl sub_8121E10 movs r0, 0 bl schedule_bg_copy_tilemap_to_vram movs r0, 0x1 bl schedule_bg_copy_tilemap_to_vram movs r0, 0x2 bl schedule_bg_copy_tilemap_to_vram movs r1, 0x82 lsls r1, 5 movs r0, 0 bl SetGpuReg movs r0, 0 bl ShowBg movs r0, 0x1 bl ShowBg movs r0, 0x2 bl ShowBg movs r0, 0x50 movs r1, 0 bl SetGpuReg pop {r4} pop {r0} bx r0 .pool thumb_func_end sub_81D7E10 thumb_func_start sub_81D7E9C sub_81D7E9C: @ 81D7E9C push {r4,lr} sub sp, 0x4 bl reset_temp_tile_data_buffers ldr r1, =gUnknown_08DA33C0 movs r4, 0 str r4, [sp] movs r0, 0 movs r2, 0 movs r3, 0 bl decompress_and_copy_tile_data_to_vram ldr r1, =gUnknown_08DA4F70 str r4, [sp] movs r0, 0x1 movs r2, 0 movs r3, 0 bl decompress_and_copy_tile_data_to_vram ldr r1, =gUnknown_08DA3C94 str r4, [sp] movs r0, 0x2 movs r2, 0 movs r3, 0 bl decompress_and_copy_tile_data_to_vram _081D7ED0: bl free_temp_tile_data_buffers_if_possible lsls r0, 24 cmp r0, 0 bne _081D7ED0 ldr r0, =gUnknown_08DA3988 ldr r4, =gUnknown_0203CF60 ldr r1, [r4] adds r1, 0x4 bl LZDecompressWram ldr r0, =gUnknown_08DA60B8 ldr r1, [r4] ldr r2, =0x00000804 adds r1, r2 bl LZDecompressWram ldr r0, =gUnknown_08DA4DEC ldr r1, [r4] ldr r2, =0x00001004 adds r1, r2 bl LZDecompressWram ldr r0, =gUnknown_08DA4DA8 movs r1, 0 movs r2, 0x40 bl LoadCompressedPalette ldr r0, =gUnknown_0862AA90 bl LoadCompressedObjectPic ldr r0, =gUnknown_0862AA98 bl LoadCompressedObjectPalette add sp, 0x4 pop {r4} pop {r0} bx r0 .pool thumb_func_end sub_81D7E9C thumb_func_start sub_81D7F4C sub_81D7F4C: @ 81D7F4C push {r4-r6,lr} lsls r0, 24 lsrs r0, 24 lsls r4, r0, 2 adds r4, r0 lsls r4, 3 ldr r5, =gTasks + 0x8 adds r6, r4, r5 movs r0, 0xE8 lsls r0, 1 bl PlayNewMapMusic bl sub_81D7E10 bl sub_81D7E9C movs r1, 0x94 lsls r1, 2 movs r0, 0x50 bl SetGpuReg ldr r1, =0x00000808 movs r0, 0x52 bl SetGpuReg movs r0, 0x1 negs r0, r0 movs r1, 0x10 movs r2, 0 bl BlendPalettes ldr r0, =sub_81D67EC bl SetVBlankCallback ldr r0, =sub_81D81A4 movs r1, 0 bl CreateTask movs r0, 0 strh r0, [r6] strh r0, [r6, 0x2] subs r5, 0x8 adds r4, r5 ldr r0, =sub_81D7FC0 str r0, [r4] pop {r4-r6} pop {r0} bx r0 .pool thumb_func_end sub_81D7F4C thumb_func_start sub_81D7FC0 sub_81D7FC0: @ 81D7FC0 push {r4-r6,lr} sub sp, 0x10 lsls r0, 24 lsrs r6, r0, 24 lsls r0, r6, 2 adds r0, r6 lsls r0, 3 ldr r1, =gTasks + 0x8 adds r4, r0, r1 movs r0, 0 ldrsh r5, [r4, r0] cmp r5, 0x1 beq _081D802A cmp r5, 0x1 bgt _081D7FE8 cmp r5, 0 beq _081D7FF4 b _081D815A .pool _081D7FE8: cmp r5, 0x2 beq _081D80A4 cmp r5, 0x3 bne _081D7FF2 b _081D8124 _081D7FF2: b _081D815A _081D7FF4: ldrh r1, [r4, 0x2] movs r2, 0x2 ldrsh r0, [r4, r2] cmp r0, 0x8 bne _081D8024 movs r0, 0x1 negs r0, r0 str r5, [sp] movs r1, 0 movs r2, 0x10 movs r3, 0 bl BeginNormalPaletteFade strh r5, [r4, 0x4] movs r0, 0x1E strh r0, [r4, 0x6] strh r5, [r4, 0x8] movs r0, 0x7 strh r0, [r4, 0xA] strh r5, [r4, 0x2] ldrh r0, [r4] adds r0, 0x1 strh r0, [r4] b _081D815A _081D8024: adds r0, r1, 0x1 strh r0, [r4, 0x2] b _081D815A _081D802A: ldrh r1, [r4, 0x6] ldrh r3, [r4, 0x4] adds r0, r1, r3 strh r0, [r4, 0x4] ldrh r2, [r4, 0xA] ldrh r3, [r4, 0x8] adds r0, r2, r3 strh r0, [r4, 0x8] lsls r0, r1, 16 asrs r0, 16 cmp r0, 0x3 ble _081D8046 subs r0, r1, 0x3 strh r0, [r4, 0x6] _081D8046: lsls r0, r2, 16 cmp r0, 0 beq _081D8050 subs r0, r2, 0x1 strh r0, [r4, 0xA] _081D8050: movs r1, 0x4 ldrsh r0, [r4, r1] cmp r0, 0xFF ble _081D8078 movs r2, 0x80 lsls r2, 1 adds r0, r2, 0 strh r0, [r4, 0x4] movs r1, 0 strh r1, [r4, 0x6] movs r0, 0xC strh r0, [r4, 0xC] movs r3, 0x1 negs r3, r3 adds r0, r3, 0 strh r0, [r4, 0xE] strh r1, [r4, 0x2] ldrh r0, [r4] adds r0, 0x1 strh r0, [r4] _081D8078: movs r1, 0xF0 lsls r1, 7 movs r2, 0xC0 lsls r2, 5 ldrh r0, [r4, 0x8] adds r0, 0x20 lsls r0, 16 asrs r0, 16 str r0, [sp] movs r3, 0x4 ldrsh r0, [r4, r3] str r0, [sp, 0x4] movs r3, 0x4 ldrsh r0, [r4, r3] str r0, [sp, 0x8] movs r0, 0 str r0, [sp, 0xC] movs r0, 0x2 movs r3, 0x78 bl SetBgAffine b _081D815A _081D80A4: ldrh r0, [r4, 0x2] adds r0, 0x1 strh r0, [r4, 0x2] movs r1, 0xF0 lsls r1, 7 movs r2, 0xC0 lsls r2, 5 ldrh r0, [r4, 0xC] lsls r0, 16 asrs r0, 18 adds r0, 0x20 ldrh r3, [r4, 0x8] adds r0, r3 lsls r0, 16 asrs r0, 16 str r0, [sp] movs r3, 0x4 ldrsh r0, [r4, r3] str r0, [sp, 0x4] movs r3, 0x4 ldrsh r0, [r4, r3] str r0, [sp, 0x8] movs r5, 0 str r5, [sp, 0xC] movs r0, 0x2 movs r3, 0x78 bl SetBgAffine ldrh r0, [r4, 0xE] ldrh r1, [r4, 0xC] adds r0, r1 strh r0, [r4, 0xC] lsls r0, 16 asrs r1, r0, 16 cmp r1, 0xC beq _081D80F4 movs r0, 0xC negs r0, r0 cmp r1, r0 bne _081D815A _081D80F4: movs r2, 0xE ldrsh r0, [r4, r2] negs r0, r0 strh r0, [r4, 0xE] movs r3, 0x2 ldrsh r1, [r4, r3] ldr r0, =0x00000127 cmp r1, r0 ble _081D815A ldrh r0, [r4] adds r0, 0x1 strh r0, [r4] movs r0, 0x1 negs r0, r0 str r5, [sp] movs r1, 0x6 movs r2, 0 movs r3, 0x10 bl BeginNormalPaletteFade b _081D815A .pool _081D8124: ldrh r0, [r4, 0x4] adds r0, 0x10 strh r0, [r4, 0x4] movs r1, 0xF0 lsls r1, 7 movs r2, 0xC0 lsls r2, 5 ldrh r0, [r4, 0x8] adds r0, 0x20 lsls r0, 16 asrs r0, 16 str r0, [sp] movs r3, 0x4 ldrsh r0, [r4, r3] str r0, [sp, 0x4] movs r3, 0x4 ldrsh r0, [r4, r3] str r0, [sp, 0x8] movs r0, 0 str r0, [sp, 0xC] movs r0, 0x2 movs r3, 0x78 bl SetBgAffine adds r0, r6, 0 bl sub_81D8164 _081D815A: add sp, 0x10 pop {r4-r6} pop {r0} bx r0 thumb_func_end sub_81D7FC0 thumb_func_start sub_81D8164 sub_81D8164: @ 81D8164 push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 ldr r0, =gPaletteFade ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 bne _081D8192 movs r0, 0 bl SetVBlankCallback bl ResetSpriteData bl FreeAllSpritePalettes ldr r0, =gTasks lsls r1, r4, 2 adds r1, r4 lsls r1, 3 adds r1, r0 ldr r0, =sub_81D6840 str r0, [r1] _081D8192: pop {r4} pop {r0} bx r0 .pool thumb_func_end sub_81D8164 thumb_func_start sub_81D81A4 sub_81D81A4: @ 81D81A4 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 r4, r0, r1 ldrh r1, [r4, 0x2] movs r0, 0x3 ands r0, r1 cmp r0, 0 bne _081D8254 ldr r0, =gUnknown_0862AAA0 ldr r3, =gUnknown_0862AAB8 movs r1, 0 ldrsh r2, [r4, r1] lsls r2, 1 adds r1, r2, r3 ldrb r1, [r1] lsls r1, 24 asrs r1, 24 lsls r1, 18 movs r6, 0xF0 lsls r6, 15 adds r1, r6 asrs r1, 16 adds r3, 0x1 adds r2, r3 ldrb r2, [r2] lsls r2, 24 asrs r2, 24 lsls r2, 18 movs r3, 0xA0 lsls r3, 15 adds r2, r3 asrs r2, 16 movs r3, 0 bl CreateSprite lsls r0, 24 lsrs r0, 24 ldr r1, =gSprites lsls r3, r0, 4 adds r3, r0 lsls r3, 2 adds r3, r1 movs r0, 0 ldrsb r0, [r4, r0] strh r0, [r3, 0x2E] ldrb r2, [r3, 0x1] movs r1, 0xD negs r1, r1 adds r0, r1, 0 ands r0, r2 movs r2, 0x4 orrs r0, r2 movs r2, 0x3 orrs r0, r2 strb r0, [r3, 0x1] ldrb r0, [r3, 0x5] ands r1, r0 movs r0, 0x8 orrs r1, r0 strb r1, [r3, 0x5] adds r0, r3, 0 bl InitSpriteAffineAnim ldrh r1, [r4] movs r6, 0 ldrsh r0, [r4, r6] cmp r0, 0x9 bne _081D8250 adds r0, r5, 0 bl DestroyTask b _081D825A .pool _081D8250: adds r0, r1, 0x1 strh r0, [r4] _081D8254: ldrh r0, [r4, 0x2] adds r0, 0x1 strh r0, [r4, 0x2] _081D825A: pop {r4-r6} pop {r0} bx r0 thumb_func_end sub_81D81A4 thumb_func_start sub_81D8260 sub_81D8260: @ 81D8260 push {lr} adds r2, r0, 0 movs r1, 0x30 ldrsh r0, [r2, r1] cmp r0, 0 bne _081D8270 strh r0, [r2, 0x24] b _081D829A _081D8270: ldr r1, =gUnknown_0862AAB8 movs r3, 0x2E ldrsh r0, [r2, r3] lsls r0, 1 adds r0, r1 ldrb r0, [r0] lsls r0, 24 asrs r0, 24 ldrh r3, [r2, 0x24] adds r0, r3 strh r0, [r2, 0x24] movs r3, 0x2E ldrsh r0, [r2, r3] lsls r0, 1 adds r1, 0x1 adds r0, r1 ldrb r0, [r0] lsls r0, 24 asrs r0, 24 ldrh r1, [r2, 0x26] adds r0, r1 _081D829A: strh r0, [r2, 0x26] ldrh r0, [r2, 0x30] adds r0, 0x1 movs r1, 0xF ands r0, r1 strh r0, [r2, 0x30] pop {r0} bx r0 .pool thumb_func_end sub_81D8260 thumb_func_start sub_81D82B0 sub_81D82B0: @ 81D82B0 push {r4,lr} bl sub_8121DA0 movs r0, 0 bl ResetBgsAndClearDma3BusyFlags ldr r1, =gUnknown_0862AACC movs r0, 0 movs r2, 0x4 bl InitBgsFromTemplates ldr r4, =gUnknown_0203CF60 ldr r1, [r4] adds r1, 0x4 movs r0, 0 bl SetBgTilemapBuffer ldr r1, [r4] ldr r0, =0x00000804 adds r1, r0 movs r0, 0x1 bl SetBgTilemapBuffer ldr r1, [r4] ldr r0, =0x00001004 adds r1, r0 movs r0, 0x2 bl SetBgTilemapBuffer ldr r1, [r4] ldr r0, =0x00001804 adds r1, r0 movs r0, 0x3 bl SetBgTilemapBuffer bl sub_8121E10 movs r0, 0 bl schedule_bg_copy_tilemap_to_vram movs r0, 0x1 bl schedule_bg_copy_tilemap_to_vram movs r0, 0x2 bl schedule_bg_copy_tilemap_to_vram movs r0, 0x3 bl schedule_bg_copy_tilemap_to_vram movs r1, 0x82 lsls r1, 5 movs r0, 0 bl SetGpuReg movs r0, 0 bl ShowBg movs r0, 0x1 bl ShowBg movs r0, 0x2 bl ShowBg movs r0, 0x3 bl ShowBg movs r0, 0x50 movs r1, 0 bl SetGpuReg pop {r4} pop {r0} bx r0 .pool thumb_func_end sub_81D82B0 thumb_func_start sub_81D8358 sub_81D8358: @ 81D8358 push {r4-r7,lr} sub sp, 0xC bl reset_temp_tile_data_buffers ldr r1, =gUnknown_08DA7528 movs r4, 0 str r4, [sp] movs r0, 0 movs r2, 0 movs r3, 0 bl decompress_and_copy_tile_data_to_vram ldr r1, =gUnknown_08DA69BC str r4, [sp] movs r0, 0x1 movs r2, 0 movs r3, 0 bl decompress_and_copy_tile_data_to_vram add r7, sp, 0x8 _081D8380: bl free_temp_tile_data_buffers_if_possible lsls r0, 24 lsrs r6, r0, 24 cmp r6, 0 bne _081D8380 ldr r0, =gUnknown_08DA7AAC ldr r5, =gUnknown_0203CF60 ldr r1, [r5] adds r1, 0x4 bl LZDecompressWram ldr r0, =gUnknown_08DA7784 ldr r1, [r5] ldr r4, =0x00001804 adds r1, r4 bl LZDecompressWram str r6, [sp, 0x4] ldr r1, [r5] ldr r0, =0x00001004 adds r1, r0 ldr r2, =0x01000200 add r0, sp, 0x4 bl CpuFastSet ldr r1, [r5] adds r4, r1, r4 ldr r0, =0x00000804 adds r1, r0 movs r2, 0x80 lsls r2, 2 adds r0, r4, 0 bl CpuFastSet str r6, [sp, 0x8] ldr r1, [r5] ldr r0, =0x00000904 adds r1, r0 ldr r2, =0x010000d0 adds r0, r7, 0 bl CpuFastSet ldr r0, =gUnknown_08DA7744 movs r1, 0 movs r2, 0x40 bl LoadCompressedPalette ldr r0, =gPlttBufferUnfaded ldr r1, =0x00007fff strh r1, [r0] ldr r0, =gPlttBufferFaded strh r1, [r0] ldr r0, =gUnknown_0862AAFC bl LoadCompressedObjectPic ldr r0, =gUnknown_0862AB04 bl LoadCompressedObjectPic ldr r0, =gUnknown_0862AB0C bl LoadCompressedObjectPalette add sp, 0xC pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_81D8358 thumb_func_start sub_81D844C sub_81D844C: @ 81D844C push {r4,r5,lr} movs r0, 0x6 bl GetGpuReg lsls r0, 16 lsrs r2, r0, 16 adds r1, r2, 0 subs r1, 0x18 lsls r0, r1, 16 lsrs r0, 16 cmp r0, 0x6F bhi _081D848C ldr r0, =gUnknown_0203CF60 ldr r0, [r0] ldr r3, =0x00002008 adds r0, r3 movs r3, 0 ldrsh r0, [r0, r3] cmp r1, r0 bgt _081D848C ldr r1, =0x04000052 ldr r3, =0x00000d08 b _081D8492 .pool _081D848C: ldr r1, =0x04000052 movs r3, 0x80 lsls r3, 5 _081D8492: adds r0, r3, 0 strh r0, [r1] cmp r2, 0 bne _081D84E0 ldr r0, =gUnknown_0203CF60 ldr r1, [r0] ldr r2, =0x00002008 adds r3, r1, r2 ldrh r4, [r3] movs r1, 0 ldrsh r2, [r3, r1] ldr r1, =0x00001fff adds r5, r0, 0 cmp r2, r1 bgt _081D84D4 cmp r2, 0x27 bgt _081D84C8 adds r0, r4, 0x4 b _081D84D2 .pool _081D84C8: cmp r2, 0x4F bgt _081D84D0 adds r0, r4, 0x2 b _081D84D2 _081D84D0: adds r0, r4, 0x1 _081D84D2: strh r0, [r3] _081D84D4: ldr r1, [r5] ldr r2, =0x0000200a adds r1, r2 ldrh r0, [r1] adds r0, 0x1 strh r0, [r1] _081D84E0: pop {r4,r5} pop {r0} bx r0 .pool thumb_func_end sub_81D844C thumb_func_start sub_81D84EC sub_81D84EC: @ 81D84EC push {r4-r6,lr} mov r6, r8 push {r6} lsls r0, 24 lsrs r0, 24 lsls r4, r0, 2 adds r4, r0 lsls r4, 3 ldr r6, =gTasks + 0x8 adds r5, r4, r6 bl sub_81D82B0 bl sub_81D8358 ldr r1, =0x00001e41 movs r0, 0x50 bl SetGpuRegBits movs r0, 0x80 lsls r0, 5 mov r8, r0 movs r0, 0x52 mov r1, r8 bl SetGpuReg movs r0, 0x1 negs r0, r0 movs r1, 0x10 movs r2, 0 bl BlendPalettes ldr r0, =sub_81D67EC bl SetVBlankCallback ldr r0, =gUnknown_0203CF60 ldr r0, [r0] ldr r1, =0x00002008 adds r2, r0, r1 movs r1, 0 strh r1, [r2] ldr r2, =0x0000200a adds r0, r2 strh r1, [r0] strh r1, [r5] strh r1, [r5, 0x2] strh r1, [r5, 0x4] strh r1, [r5, 0x6] mov r0, r8 strh r0, [r5, 0x8] subs r6, 0x8 adds r4, r6 ldr r0, =sub_81D857C str r0, [r4] pop {r3} mov r8, r3 pop {r4-r6} pop {r0} bx r0 .pool thumb_func_end sub_81D84EC thumb_func_start sub_81D857C sub_81D857C: @ 81D857C push {r4,r5,lr} sub sp, 0x4 lsls r0, 24 lsrs r4, r0, 24 lsls r0, r4, 2 adds r0, r4 lsls r0, 3 ldr r1, =gTasks + 0x8 adds r5, r0, r1 movs r1, 0 ldrsh r0, [r5, r1] cmp r0, 0x4 bhi _081D8674 lsls r0, 2 ldr r1, =_081D85A8 adds r0, r1 ldr r0, [r0] mov pc, r0 .pool .align 2, 0 _081D85A8: .4byte _081D85BC .4byte _081D85DC .4byte _081D861A .4byte _081D863A .4byte _081D8656 _081D85BC: ldrh r1, [r5, 0x2] movs r2, 0x2 ldrsh r0, [r5, r2] cmp r0, 0x8 bne _081D8634 movs r0, 0x1 negs r0, r0 movs r4, 0 str r4, [sp] movs r1, 0 movs r2, 0x10 movs r3, 0 bl BeginNormalPaletteFade strh r4, [r5, 0x2] b _081D864E _081D85DC: ldr r0, =gPaletteFade ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 lsls r0, 24 lsrs r1, r0, 24 cmp r1, 0 bne _081D8674 ldrh r2, [r5, 0x2] movs r3, 0x2 ldrsh r0, [r5, r3] cmp r0, 0xA bne _081D8614 strh r1, [r5, 0x2] ldrh r0, [r5] adds r0, 0x1 strh r0, [r5] ldr r0, =sub_81D844C bl SetHBlankCallback movs r0, 0x3 bl EnableInterrupts b _081D8674 .pool _081D8614: adds r0, r2, 0x1 strh r0, [r5, 0x2] b _081D8674 _081D861A: ldrh r1, [r5, 0x2] movs r2, 0x2 ldrsh r0, [r5, r2] cmp r0, 0x50 bne _081D8634 movs r0, 0 strh r0, [r5, 0x2] ldrh r0, [r5] adds r0, 0x1 strh r0, [r5] bl sub_81D86CC b _081D8674 _081D8634: adds r0, r1, 0x1 strh r0, [r5, 0x2] b _081D8674 _081D863A: ldrh r0, [r5, 0x2] adds r0, 0x1 strh r0, [r5, 0x2] lsls r0, 16 movs r1, 0xB8 lsls r1, 17 cmp r0, r1 bne _081D8674 movs r0, 0 strh r0, [r5, 0x2] _081D864E: ldrh r0, [r5] adds r0, 0x1 strh r0, [r5] b _081D8674 _081D8656: movs r0, 0x1 negs r0, r0 movs r1, 0 str r1, [sp] movs r2, 0 movs r3, 0x10 bl BeginNormalPaletteFade ldr r1, =gTasks lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r0, r1 ldr r1, =sub_81D8684 str r1, [r0] _081D8674: add sp, 0x4 pop {r4,r5} pop {r0} bx r0 .pool thumb_func_end sub_81D857C thumb_func_start sub_81D8684 sub_81D8684: @ 81D8684 push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 ldr r0, =gPaletteFade ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 bne _081D86B8 movs r0, 0 bl SetVBlankCallback movs r0, 0 bl SetHBlankCallback bl ResetSpriteData bl FreeAllSpritePalettes ldr r0, =gTasks lsls r1, r4, 2 adds r1, r4 lsls r1, 3 adds r1, r0 ldr r0, =sub_81D6840 str r0, [r1] _081D86B8: pop {r4} pop {r0} bx r0 .pool thumb_func_end sub_81D8684 thumb_func_start sub_81D86CC sub_81D86CC: @ 81D86CC push {r4-r6,lr} mov r6, r8 push {r6} ldr r0, =gUnknown_0862AB14 movs r1, 0xA0 movs r2, 0 movs r3, 0 bl CreateSprite adds r6, r0, 0 lsls r6, 24 lsrs r6, 24 lsls r5, r6, 4 adds r5, r6 lsls r5, 2 ldr r4, =gSprites + 0x2E adds r0, r5, r4 mov r8, r0 ldr r0, =gUnknown_0862AB2C movs r2, 0x30 negs r2, r2 movs r1, 0xB8 movs r3, 0 bl CreateSprite lsls r0, 24 lsrs r0, 24 mov r1, r8 strh r0, [r1] adds r3, r4, 0 subs r3, 0x2E subs r4, 0x12 adds r4, r5, r4 ldr r0, =sub_81D874C str r0, [r4] adds r5, r3 ldrb r0, [r5, 0x5] movs r2, 0xC orrs r0, r2 strb r0, [r5, 0x5] movs r4, 0 ldrsh r1, [r1, r4] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r3 ldrb r1, [r0, 0x5] orrs r1, r2 strb r1, [r0, 0x5] adds r0, r6, 0 pop {r3} mov r8, r3 pop {r4-r6} pop {r1} bx r1 .pool thumb_func_end sub_81D86CC thumb_func_start sub_81D874C sub_81D874C: @ 81D874C push {r4,r5,lr} adds r5, r0, 0 adds r4, r5, 0 adds r4, 0x2E movs r0, 0x4 ldrsh r1, [r4, r0] cmp r1, 0 bne _081D8764 movs r0, 0xC strh r0, [r4, 0x6] movs r0, 0x8 b _081D87C2 _081D8764: movs r0, 0x80 lsls r0, 1 cmp r1, r0 bne _081D8774 movs r0, 0x9 strh r0, [r4, 0x6] movs r0, 0x7 b _081D87C2 _081D8774: movs r0, 0x86 lsls r0, 1 cmp r1, r0 bne _081D8784 movs r0, 0x8 strh r0, [r4, 0x6] movs r0, 0x6 b _081D87C2 _081D8784: movs r0, 0x8C lsls r0, 1 cmp r1, r0 bne _081D8794 movs r0, 0x7 strh r0, [r4, 0x6] movs r0, 0x5 b _081D87C2 _081D8794: movs r0, 0x92 lsls r0, 1 cmp r1, r0 bne _081D87A4 movs r0, 0x6 strh r0, [r4, 0x6] movs r0, 0x4 b _081D87C2 _081D87A4: movs r0, 0x98 lsls r0, 1 cmp r1, r0 bne _081D87B4 movs r0, 0x5 strh r0, [r4, 0x6] movs r0, 0x3 b _081D87C2 _081D87B4: movs r0, 0xA0 lsls r0, 1 cmp r1, r0 bne _081D87C4 movs r0, 0x4 strh r0, [r4, 0x6] movs r0, 0x2 _081D87C2: strh r0, [r4, 0x8] _081D87C4: movs r1, 0x4 ldrsh r0, [r4, r1] movs r2, 0x6 ldrsh r1, [r4, r2] bl __modsi3 cmp r0, 0 bne _081D87EE ldrh r0, [r5, 0x24] subs r0, 0x1 strh r0, [r5, 0x24] ldr r2, =gSprites movs r0, 0 ldrsh r1, [r4, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r2 ldrh r1, [r0, 0x24] subs r1, 0x1 strh r1, [r0, 0x24] _081D87EE: movs r1, 0x4 ldrsh r0, [r4, r1] movs r2, 0x8 ldrsh r1, [r4, r2] bl __modsi3 cmp r0, 0 bne _081D8818 ldrh r0, [r5, 0x26] adds r0, 0x1 strh r0, [r5, 0x26] ldr r2, =gSprites movs r0, 0 ldrsh r1, [r4, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r2 ldrh r1, [r0, 0x26] adds r1, 0x1 strh r1, [r0, 0x26] _081D8818: ldrh r0, [r4, 0x4] adds r0, 0x1 strh r0, [r4, 0x4] pop {r4,r5} pop {r0} bx r0 .pool thumb_func_end sub_81D874C thumb_func_start sub_81D8828 sub_81D8828: @ 81D8828 push {r4,lr} bl sub_8121DA0 movs r0, 0 bl ResetBgsAndClearDma3BusyFlags ldr r1, =gUnknown_0862AB44 movs r0, 0 movs r2, 0x4 bl InitBgsFromTemplates ldr r4, =gUnknown_0203CF60 ldr r1, [r4] adds r1, 0x4 movs r0, 0 bl SetBgTilemapBuffer ldr r1, [r4] ldr r0, =0x00000804 adds r1, r0 movs r0, 0x1 bl SetBgTilemapBuffer ldr r1, [r4] ldr r0, =0x00001004 adds r1, r0 movs r0, 0x2 bl SetBgTilemapBuffer ldr r1, [r4] ldr r0, =0x00001804 adds r1, r0 movs r0, 0x3 bl SetBgTilemapBuffer bl sub_8121E10 movs r0, 0 bl schedule_bg_copy_tilemap_to_vram movs r0, 0x1 bl schedule_bg_copy_tilemap_to_vram movs r0, 0x2 bl schedule_bg_copy_tilemap_to_vram movs r0, 0x3 bl schedule_bg_copy_tilemap_to_vram movs r1, 0xC1 lsls r1, 6 movs r0, 0 bl SetGpuReg movs r0, 0 bl ShowBg movs r0, 0x1 bl ShowBg movs r0, 0x2 bl ShowBg movs r0, 0x3 bl ShowBg movs r0, 0x50 movs r1, 0 bl SetGpuReg pop {r4} pop {r0} bx r0 .pool thumb_func_end sub_81D8828 thumb_func_start sub_81D88D0 sub_81D88D0: @ 81D88D0 push {r4,lr} sub sp, 0x4 bl reset_temp_tile_data_buffers ldr r1, =gUnknown_08DA80BC movs r4, 0 str r4, [sp] movs r0, 0x1 movs r2, 0 movs r3, 0 bl decompress_and_copy_tile_data_to_vram ldr r1, =gUnknown_08DA7EAC str r4, [sp] movs r0, 0x2 movs r2, 0 movs r3, 0 bl decompress_and_copy_tile_data_to_vram ldr r1, =gUnknown_08DA7C30 str r4, [sp] movs r0, 0x3 movs r2, 0 movs r3, 0 bl decompress_and_copy_tile_data_to_vram _081D8904: bl free_temp_tile_data_buffers_if_possible lsls r0, 24 cmp r0, 0 bne _081D8904 ldr r0, =gUnknown_08DA8D6C ldr r4, =gUnknown_0203CF60 ldr r1, [r4] adds r1, 0x4 bl LZDecompressWram ldr r0, =gUnknown_08DA8B40 ldr r1, [r4] ldr r2, =0x00000804 adds r1, r2 bl LZDecompressWram ldr r0, =gUnknown_08DA7FB4 ldr r1, [r4] ldr r2, =0x00001004 adds r1, r2 bl LZDecompressWram ldr r0, =gUnknown_08DA7D6C ldr r1, [r4] ldr r2, =0x00001804 adds r1, r2 bl LZDecompressWram ldr r0, =gUnknown_08DA8E84 movs r1, 0 movs r2, 0x80 bl LoadCompressedPalette add sp, 0x4 pop {r4} pop {r0} bx r0 .pool thumb_func_end sub_81D88D0 thumb_func_start sub_81D8980 sub_81D8980: @ 81D8980 push {r4-r6,lr} lsls r0, 24 lsrs r0, 24 lsls r4, r0, 2 adds r4, r0 lsls r4, 3 ldr r5, =gTasks + 0x8 adds r6, r4, r5 bl sub_81D8828 bl sub_81D88D0 bl sub_81D68C8 movs r0, 0x1 negs r0, r0 movs r1, 0x10 movs r2, 0 bl BlendPalettes ldr r0, =sub_81D67EC bl SetVBlankCallback movs r0, 0 strh r0, [r6] strh r0, [r6, 0x2] ldr r0, =sub_81D8AD8 movs r1, 0 bl CreateTask lsls r0, 24 lsrs r0, 24 strh r0, [r6, 0x4] subs r5, 0x8 adds r4, r5 ldr r0, =sub_81D89E0 str r0, [r4] pop {r4-r6} pop {r0} bx r0 .pool thumb_func_end sub_81D8980 thumb_func_start sub_81D89E0 sub_81D89E0: @ 81D89E0 push {r4-r6,lr} sub sp, 0x4 lsls r0, 24 lsrs r6, r0, 24 lsls r0, r6, 2 adds r0, r6 lsls r0, 3 ldr r1, =gTasks + 0x8 adds r4, r0, r1 bl sub_81D8BB4 ldrh r1, [r4, 0x6] movs r0, 0x7 ands r0, r1 cmp r0, 0 bne _081D8A16 movs r1, 0 ldrsh r0, [r4, r1] cmp r0, 0x1 bgt _081D8A16 movs r2, 0x2 ldrsh r0, [r4, r2] cmp r0, 0x59 bgt _081D8A16 movs r0, 0x67 bl PlaySE _081D8A16: ldrh r0, [r4, 0x6] adds r0, 0x1 strh r0, [r4, 0x6] movs r0, 0 ldrsh r5, [r4, r0] cmp r5, 0x1 beq _081D8A5C cmp r5, 0x1 bgt _081D8A34 cmp r5, 0 beq _081D8A3E b _081D8AC6 .pool _081D8A34: cmp r5, 0x2 beq _081D8A8C cmp r5, 0x3 beq _081D8AA8 b _081D8AC6 _081D8A3E: ldrh r1, [r4, 0x2] movs r2, 0x2 ldrsh r0, [r4, r2] cmp r0, 0x8 bne _081D8AA2 movs r0, 0x1 negs r0, r0 str r5, [sp] movs r1, 0 movs r2, 0x10 movs r3, 0 bl BeginNormalPaletteFade strh r5, [r4, 0x2] b _081D8A9A _081D8A5C: ldrh r1, [r4, 0x2] movs r2, 0x2 ldrsh r0, [r4, r2] cmp r0, 0x7F bne _081D8AA2 movs r0, 0 strh r0, [r4, 0x2] ldrh r0, [r4] adds r0, 0x1 strh r0, [r4] ldr r2, =gTasks movs r0, 0x4 ldrsh r1, [r4, r0] lsls r0, r1, 2 adds r0, r1 lsls r0, 3 adds r0, r2 ldr r1, =sub_81D8B2C b _081D8AC4 .pool _081D8A8C: ldrh r1, [r4, 0x2] movs r2, 0x2 ldrsh r0, [r4, r2] cmp r0, 0xC bne _081D8AA2 movs r0, 0 strh r0, [r4, 0x2] _081D8A9A: ldrh r0, [r4] adds r0, 0x1 strh r0, [r4] b _081D8AC6 _081D8AA2: adds r0, r1, 0x1 strh r0, [r4, 0x2] b _081D8AC6 _081D8AA8: movs r0, 0x1 negs r0, r0 movs r1, 0 str r1, [sp] movs r2, 0 movs r3, 0x10 bl BeginNormalPaletteFade ldr r1, =gTasks lsls r0, r6, 2 adds r0, r6 lsls r0, 3 adds r0, r1 ldr r1, =sub_81D8BEC _081D8AC4: str r1, [r0] _081D8AC6: add sp, 0x4 pop {r4-r6} pop {r0} bx r0 .pool thumb_func_end sub_81D89E0 thumb_func_start sub_81D8AD8 sub_81D8AD8: @ 81D8AD8 push {r4,r5,lr} lsls r0, 24 lsrs r0, 24 lsls r1, r0, 2 adds r1, r0 lsls r1, 3 ldr r0, =gTasks + 0x8 adds r5, r1, r0 ldrh r1, [r5, 0x1E] movs r0, 0x3 ands r0, r1 cmp r0, 0 bne _081D8B1C bl Random movs r4, 0x7 adds r1, r4, 0 ands r1, r0 subs r1, 0x4 lsls r1, 8 movs r0, 0x1 movs r2, 0 bl ChangeBgX bl Random ands r4, r0 subs r4, 0x4 lsls r4, 8 movs r0, 0x1 adds r1, r4, 0 movs r2, 0 bl ChangeBgY _081D8B1C: ldrh r0, [r5, 0x1E] adds r0, 0x1 strh r0, [r5, 0x1E] pop {r4,r5} pop {r0} bx r0 .pool thumb_func_end sub_81D8AD8 thumb_func_start sub_81D8B2C sub_81D8B2C: @ 81D8B2C push {r4,lr} lsls r0, 24 lsrs r0, 24 lsls r1, r0, 2 adds r1, r0 lsls r1, 3 ldr r0, =gTasks + 0x8 adds r4, r1, r0 movs r1, 0 ldrsh r0, [r4, r1] cmp r0, 0 bne _081D8B70 movs r0, 0x1 movs r1, 0 movs r2, 0 bl ChangeBgX movs r0, 0x1 movs r1, 0 movs r2, 0 bl ChangeBgY ldrh r0, [r4] adds r0, 0x1 strh r0, [r4] movs r0, 0xA strh r0, [r4, 0x2] movs r1, 0x1 negs r1, r1 adds r0, r1, 0 b _081D8BAA .pool _081D8B70: cmp r0, 0x1 bne _081D8BAC movs r0, 0x2 ldrsh r1, [r4, r0] lsls r1, 8 movs r0, 0x1 movs r2, 0x2 bl ChangeBgX movs r0, 0x2 ldrsh r1, [r4, r0] lsls r1, 8 movs r0, 0x1 movs r2, 0x1 bl ChangeBgY ldrh r0, [r4, 0x4] ldrh r1, [r4, 0x2] adds r0, r1 strh r0, [r4, 0x2] lsls r0, 16 asrs r0, 16 movs r1, 0xA negs r1, r1 cmp r0, r1 bne _081D8BAC movs r1, 0x4 ldrsh r0, [r4, r1] negs r0, r0 _081D8BAA: strh r0, [r4, 0x4] _081D8BAC: pop {r4} pop {r0} bx r0 thumb_func_end sub_81D8B2C thumb_func_start sub_81D8BB4 sub_81D8BB4: @ 81D8BB4 push {r4,lr} movs r4, 0x80 lsls r4, 3 movs r0, 0x2 adds r1, r4, 0 movs r2, 0x2 bl ChangeBgX movs r0, 0x2 adds r1, r4, 0 movs r2, 0x1 bl ChangeBgY movs r4, 0x80 lsls r4, 4 movs r0, 0 adds r1, r4, 0 movs r2, 0x2 bl ChangeBgX movs r0, 0 adds r1, r4, 0 movs r2, 0x1 bl ChangeBgY pop {r4} pop {r0} bx r0 thumb_func_end sub_81D8BB4 thumb_func_start sub_81D8BEC sub_81D8BEC: @ 81D8BEC push {r4-r6,lr} lsls r0, 24 lsrs r0, 24 lsls r1, r0, 2 adds r1, r0 lsls r5, r1, 3 ldr r6, =gTasks + 0x8 adds r4, r5, r6 bl sub_81D8BB4 ldr r0, =gPaletteFade ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 bne _081D8C26 movs r0, 0 bl SetVBlankCallback bl sub_81D6904 ldrb r0, [r4, 0x4] bl DestroyTask adds r0, r6, 0 subs r0, 0x8 adds r0, r5, r0 ldr r1, =sub_81D6840 str r1, [r0] _081D8C26: pop {r4-r6} pop {r0} bx r0 .pool thumb_func_end sub_81D8BEC thumb_func_start sub_81D8C38 sub_81D8C38: @ 81D8C38 push {r4,lr} bl sub_8121DA0 movs r0, 0 bl ResetBgsAndClearDma3BusyFlags ldr r1, =gUnknown_0862AD08 movs r0, 0x1 movs r2, 0x3 bl InitBgsFromTemplates ldr r4, =gUnknown_0203CF60 ldr r1, [r4] adds r1, 0x4 movs r0, 0 bl SetBgTilemapBuffer ldr r1, [r4] ldr r0, =0x00000804 adds r1, r0 movs r0, 0x1 bl SetBgTilemapBuffer ldr r1, [r4] ldr r0, =0x00001004 adds r1, r0 movs r0, 0x2 bl SetBgTilemapBuffer bl sub_8121E10 movs r0, 0 bl schedule_bg_copy_tilemap_to_vram movs r0, 0x1 bl schedule_bg_copy_tilemap_to_vram movs r0, 0x2 bl schedule_bg_copy_tilemap_to_vram movs r1, 0xC1 lsls r1, 6 movs r0, 0 bl SetGpuReg movs r0, 0 bl ShowBg movs r0, 0x1 bl ShowBg movs r0, 0x2 bl ShowBg movs r0, 0x50 movs r1, 0 bl SetGpuReg pop {r4} pop {r0} bx r0 .pool thumb_func_end sub_81D8C38 thumb_func_start sub_81D8CC4 sub_81D8CC4: @ 81D8CC4 push {r4,lr} sub sp, 0x4 bl reset_temp_tile_data_buffers ldr r1, =gUnknown_08DAAB24 movs r4, 0 str r4, [sp] movs r0, 0x2 movs r2, 0 movs r3, 0 bl decompress_and_copy_tile_data_to_vram ldr r1, =gUnknown_08DAA8B4 str r4, [sp] movs r0, 0 movs r2, 0 movs r3, 0 bl decompress_and_copy_tile_data_to_vram _081D8CEA: bl free_temp_tile_data_buffers_if_possible lsls r0, 24 cmp r0, 0 bne _081D8CEA ldr r0, =gUnknown_08DAAE54 ldr r4, =gUnknown_0203CF60 ldr r1, [r4] ldr r2, =0x00000804 adds r1, r2 bl LZDecompressWram ldr r0, =gUnknown_08DAAC1C ldr r1, [r4] adds r1, 0x4 bl LZDecompressWram ldr r0, =gUnknown_08DAAF98 ldr r1, [r4] ldr r2, =0x00001004 adds r1, r2 bl LZDecompressWram ldr r0, =gUnknown_08DAAFEC movs r1, 0 movs r2, 0x60 bl LoadCompressedPalette ldr r0, =gUnknown_0862AC28 bl LoadCompressedObjectPic ldr r0, =gUnknown_0862AC30 bl LoadCompressedObjectPic ldr r0, =gUnknown_0862AC38 bl LoadCompressedObjectPic ldr r0, =gUnknown_0862AC40 bl LoadCompressedObjectPic ldr r0, =gUnknown_0862AC48 bl LoadCompressedObjectPic ldr r0, =gUnknown_0862AC50 bl LoadCompressedObjectPic ldr r0, =gUnknown_0862AC58 bl LoadCompressedObjectPalette ldr r0, =gUnknown_0862AC60 bl LoadCompressedObjectPalette ldr r0, =gUnknown_0862AC68 bl LoadCompressedObjectPalette ldr r0, =gUnknown_0862AC70 bl LoadCompressedObjectPalette add sp, 0x4 pop {r4} pop {r0} bx r0 .pool thumb_func_end sub_81D8CC4 thumb_func_start sub_81D8DB4 sub_81D8DB4: @ 81D8DB4 push {r4-r6,lr} lsls r0, 24 lsrs r0, 24 lsls r4, r0, 2 adds r4, r0 lsls r4, 3 ldr r5, =gTasks + 0x8 adds r6, r4, r5 bl sub_81D8C38 bl sub_81D8CC4 bl sub_81D68C8 movs r1, 0x80 lsls r1, 3 movs r0, 0 bl ClearGpuRegBits ldr r1, =0x00000241 movs r0, 0x50 bl SetGpuReg ldr r1, =0x00000e09 movs r0, 0x52 bl SetGpuReg movs r0, 0x1 negs r0, r0 movs r1, 0x10 movs r2, 0 bl BlendPalettes ldr r0, =sub_81D67EC bl SetVBlankCallback movs r0, 0 strh r0, [r6] strh r0, [r6, 0x2] subs r5, 0x8 adds r4, r5 ldr r0, =sub_81D8E80 str r0, [r4] ldr r0, =sub_81D8FB0 movs r1, 0 bl CreateTask lsls r0, 24 lsrs r0, 24 strh r0, [r6, 0x4] movs r0, 0x4 ldrsh r1, [r6, r0] lsls r0, r1, 2 adds r0, r1 lsls r0, 3 adds r0, r5 movs r2, 0 strh r2, [r0, 0x8] movs r0, 0x4 ldrsh r1, [r6, r0] lsls r0, r1, 2 adds r0, r1 lsls r0, 3 adds r0, r5 strh r2, [r0, 0xA] movs r0, 0x4 ldrsh r1, [r6, r0] lsls r0, r1, 2 adds r0, r1 lsls r0, 3 adds r0, r5 strh r2, [r0, 0xC] movs r0, 0x4 ldrsh r1, [r6, r0] lsls r0, r1, 2 adds r0, r1 lsls r0, 3 adds r0, r5 movs r2, 0x1 strh r2, [r0, 0xE] movs r0, 0x4 ldrsh r1, [r6, r0] lsls r0, r1, 2 adds r0, r1 lsls r0, 3 adds r0, r5 strh r2, [r0, 0x10] pop {r4-r6} pop {r0} bx r0 .pool thumb_func_end sub_81D8DB4 thumb_func_start sub_81D8E80 sub_81D8E80: @ 81D8E80 push {r4-r7,lr} mov r7, r8 push {r7} sub sp, 0xC lsls r0, 24 lsrs r6, r0, 24 lsls r0, r6, 2 adds r0, r6 lsls r7, r0, 3 ldr r0, =gTasks + 0x8 mov r8, r0 adds r4, r7, r0 movs r1, 0 ldrsh r5, [r4, r1] cmp r5, 0x1 beq _081D8EDE cmp r5, 0x1 bgt _081D8EB0 cmp r5, 0 beq _081D8EBA b _081D8FA0 .pool _081D8EB0: cmp r5, 0x2 beq _081D8F1E cmp r5, 0x3 beq _081D8F84 b _081D8FA0 _081D8EBA: ldrh r1, [r4, 0x2] movs r2, 0x2 ldrsh r0, [r4, r2] cmp r0, 0x8 bne _081D8F18 adds r0, r6, 0 bl sub_81D90A8 movs r0, 0x1 negs r0, r0 str r5, [sp] movs r1, 0 movs r2, 0x10 movs r3, 0 bl BeginNormalPaletteFade strh r5, [r4, 0x2] b _081D8F30 _081D8EDE: ldr r2, =gSprites movs r0, 0xA ldrsh r1, [r4, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r2, 0x1C adds r0, r2 ldr r1, [r0] ldr r0, =sub_81D97E0 cmp r1, r0 bne _081D8FA0 ldrh r1, [r4, 0x2] movs r2, 0x2 ldrsh r0, [r4, r2] cmp r0, 0x40 bne _081D8F18 adds r0, r6, 0 bl sub_81D94D4 adds r0, r6, 0 bl sub_81D93D8 b _081D8F2C .pool _081D8F18: adds r0, r1, 0x1 strh r0, [r4, 0x2] b _081D8FA0 _081D8F1E: ldrh r2, [r4, 0x2] movs r0, 0x2 ldrsh r1, [r4, r0] movs r0, 0xE0 lsls r0, 1 cmp r1, r0 bne _081D8F38 _081D8F2C: movs r0, 0 strh r0, [r4, 0x2] _081D8F30: ldrh r0, [r4] adds r0, 0x1 strh r0, [r4] b _081D8FA0 _081D8F38: adds r0, r2, 0x1 strh r0, [r4, 0x2] movs r1, 0x2 ldrsh r0, [r4, r1] movs r1, 0x90 bl __modsi3 lsls r0, 16 asrs r4, r0, 16 cmp r4, 0 bne _081D8FA0 ldr r0, =0x0000fffe ldr r1, =0x0000ffff str r1, [sp] str r4, [sp, 0x4] str r4, [sp, 0x8] movs r1, 0 movs r2, 0x10 movs r3, 0 bl sub_80A2C44 ldr r0, =0xffff0000 str r4, [sp] str r4, [sp, 0x4] movs r1, 0x1 str r1, [sp, 0x8] movs r1, 0 movs r2, 0x10 movs r3, 0 bl sub_80A2C44 b _081D8FA0 .pool _081D8F84: movs r0, 0x1 negs r0, r0 movs r1, 0 str r1, [sp] movs r1, 0x4 movs r2, 0 movs r3, 0x10 bl BeginNormalPaletteFade mov r0, r8 subs r0, 0x8 adds r0, r7, r0 ldr r1, =sub_81D9034 str r1, [r0] _081D8FA0: add sp, 0xC pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_81D8E80 thumb_func_start sub_81D8FB0 sub_81D8FB0: @ 81D8FB0 push {r4,lr} lsls r0, 24 lsrs r0, 24 lsls r1, r0, 2 adds r1, r0 lsls r1, 3 ldr r0, =gTasks + 0x8 adds r4, r1, r0 ldrh r1, [r4] movs r0, 0xF ands r0, r1 cmp r0, 0 bne _081D9024 ldrh r1, [r4, 0x2] adds r1, 0xE lsls r1, 8 movs r2, 0xF8 lsls r2, 5 adds r0, r2, 0 ands r1, r0 ldrh r0, [r4, 0x4] adds r0, 0x9 movs r2, 0xF ands r0, r2 orrs r1, r0 movs r0, 0x52 bl SetGpuReg ldrh r1, [r4, 0x2] ldrh r0, [r4, 0x6] subs r1, r0 strh r1, [r4, 0x2] ldrh r0, [r4, 0x8] ldrh r2, [r4, 0x4] adds r0, r2 strh r0, [r4, 0x4] lsls r1, 16 asrs r1, 16 movs r0, 0x3 negs r0, r0 cmp r1, r0 beq _081D9008 cmp r1, 0 bne _081D9010 _081D9008: movs r1, 0x6 ldrsh r0, [r4, r1] negs r0, r0 strh r0, [r4, 0x6] _081D9010: movs r2, 0x4 ldrsh r0, [r4, r2] cmp r0, 0x3 beq _081D901C cmp r0, 0 bne _081D9024 _081D901C: movs r1, 0x8 ldrsh r0, [r4, r1] negs r0, r0 strh r0, [r4, 0x8] _081D9024: ldrh r0, [r4] adds r0, 0x1 strh r0, [r4] pop {r4} pop {r0} bx r0 .pool thumb_func_end sub_81D8FB0 thumb_func_start sub_81D9034 sub_81D9034: @ 81D9034 push {r4-r7,lr} lsls r0, 24 lsrs r0, 24 lsls r1, r0, 2 adds r1, r0 lsls r6, r1, 3 ldr r7, =gTasks + 0x8 adds r4, r6, r7 ldr r0, =gPaletteFade ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 lsls r0, 24 lsrs r5, r0, 24 cmp r5, 0 bne _081D90A0 bl StopMapMusic movs r1, 0x2 ldrsh r0, [r4, r1] cmp r0, 0 bne _081D9078 movs r0, 0 bl SetVBlankCallback bl sub_81D6904 bl ResetSpriteData bl FreeAllSpritePalettes ldrb r0, [r4, 0x4] bl DestroyTask _081D9078: ldrh r1, [r4, 0x2] movs r2, 0x2 ldrsh r0, [r4, r2] cmp r0, 0x20 bne _081D909C strh r5, [r4, 0x2] adds r0, r7, 0 subs r0, 0x8 adds r0, r6, r0 ldr r1, =sub_81D6840 str r1, [r0] b _081D90A0 .pool _081D909C: adds r0, r1, 0x1 strh r0, [r4, 0x2] _081D90A0: pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_81D9034 thumb_func_start sub_81D90A8 sub_81D90A8: @ 81D90A8 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} lsls r0, 24 lsrs r0, 24 lsls r4, r0, 2 adds r4, r0 lsls r4, 3 ldr r0, =gTasks + 0x8 adds r4, r0 ldr r0, =gUnknown_0862AC78 movs r1, 0x40 movs r2, 0x78 movs r3, 0 bl CreateSprite lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x6] movs r0, 0x6 ldrsh r1, [r4, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 ldr r1, =gSprites + 0x2E mov r10, r1 adds r7, r0, r1 ldr r0, =gUnknown_0862AC90 movs r1, 0x10 movs r2, 0x82 movs r3, 0 bl CreateSprite lsls r0, 24 lsrs r0, 24 strh r0, [r7] movs r2, 0x2E negs r2, r2 add r2, r10 mov r8, r2 movs r1, 0x6 ldrsh r0, [r4, r1] lsls r1, r0, 4 adds r1, r0 lsls r1, 2 add r1, r8 ldrb r2, [r1, 0x5] movs r6, 0xD negs r6, r6 adds r0, r6, 0 ands r0, r2 movs r2, 0x4 mov r9, r2 mov r2, r9 orrs r0, r2 strb r0, [r1, 0x5] movs r1, 0 ldrsh r0, [r7, r1] lsls r1, r0, 4 adds r1, r0 lsls r1, 2 add r1, r8 ldrb r2, [r1, 0x5] adds r0, r6, 0 ands r0, r2 mov r2, r9 orrs r0, r2 strb r0, [r1, 0x5] ldr r5, =gUnknown_0862ACA8 adds r0, r5, 0 movs r1, 0xA0 movs r2, 0x80 movs r3, 0x1 bl CreateSprite lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x8] movs r0, 0x8 ldrsh r1, [r4, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 mov r1, r10 adds r7, r0, r1 adds r0, r5, 0 movs r1, 0xC0 movs r2, 0x80 movs r3, 0x1 bl CreateSprite lsls r0, 24 lsrs r0, 24 strh r0, [r7] adds r0, r5, 0 movs r1, 0xE0 movs r2, 0x80 movs r3, 0x1 bl CreateSprite lsls r0, 24 lsrs r0, 24 strh r0, [r7, 0x2] movs r2, 0x8 ldrsh r0, [r4, r2] lsls r1, r0, 4 adds r1, r0 lsls r1, 2 add r1, r8 ldrb r2, [r1, 0x5] adds r0, r6, 0 ands r0, r2 mov r2, r9 orrs r0, r2 strb r0, [r1, 0x5] movs r1, 0 ldrsh r0, [r7, r1] lsls r1, r0, 4 adds r1, r0 lsls r1, 2 add r1, r8 ldrb r2, [r1, 0x5] adds r0, r6, 0 ands r0, r2 mov r2, r9 orrs r0, r2 strb r0, [r1, 0x5] movs r1, 0x2 ldrsh r0, [r7, r1] lsls r1, r0, 4 adds r1, r0 lsls r1, 2 add r1, r8 ldrb r2, [r1, 0x5] adds r0, r6, 0 ands r0, r2 mov r2, r9 orrs r0, r2 strb r0, [r1, 0x5] movs r0, 0 ldrsh r1, [r7, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 add r0, r8 movs r1, 0x1 bl StartSpriteAnim movs r2, 0x2 ldrsh r1, [r7, r2] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 add r0, r8 movs r1, 0x2 bl StartSpriteAnim ldr r0, =gUnknown_0862ACC0 movs r2, 0x41 negs r2, r2 movs r1, 0x78 movs r3, 0 bl CreateSprite lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0xA] movs r0, 0xA ldrsh r1, [r4, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 mov r1, r10 adds r7, r0, r1 ldr r0, =gUnknown_0862ACD8 movs r2, 0x71 negs r2, r2 movs r1, 0x78 movs r3, 0 bl CreateSprite lsls r0, 24 lsrs r0, 24 strh r0, [r7] movs r2, 0xA ldrsh r0, [r4, r2] lsls r1, r0, 4 adds r1, r0 lsls r1, 2 add r1, r8 ldrb r2, [r1, 0x5] adds r0, r6, 0 ands r0, r2 mov r2, r9 orrs r0, r2 strb r0, [r1, 0x5] movs r0, 0 ldrsh r1, [r7, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 add r0, r8 ldrb r1, [r0, 0x5] ands r6, r1 orrs r6, r2 strb r6, [r0, 0x5] pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_81D90A8 thumb_func_start sub_81D9274 sub_81D9274: @ 81D9274 push {r4-r6,lr} mov r6, r8 push {r6} lsls r0, 24 lsrs r0, 24 lsls r2, r0, 2 adds r2, r0 lsls r2, 3 ldr r0, =gTasks + 0x8 adds r2, r0 ldr r3, =gSprites movs r0, 0x6 ldrsh r1, [r2, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 movs r1, 0x1C adds r1, r3 mov r8, r1 add r0, r8 ldr r6, =pokemon_alive_on_battle_side str r6, [r0] movs r0, 0x6 ldrsh r1, [r2, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r3 movs r4, 0 strh r4, [r0, 0x36] movs r0, 0x6 ldrsh r1, [r2, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r3 strh r4, [r0, 0x38] movs r0, 0x6 ldrsh r1, [r2, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r3 movs r5, 0x4 strh r5, [r0, 0x3A] movs r0, 0x6 ldrsh r1, [r2, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r3 strh r4, [r0, 0x3C] movs r0, 0x8 ldrsh r1, [r2, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 add r0, r8 str r6, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r3 strh r4, [r0, 0x36] movs r0, 0x8 ldrsh r1, [r2, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r3 strh r4, [r0, 0x38] movs r0, 0x8 ldrsh r1, [r2, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r3 strh r5, [r0, 0x3A] movs r0, 0x8 ldrsh r1, [r2, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r3 movs r1, 0x1 strh r1, [r0, 0x3C] pop {r3} mov r8, r3 pop {r4-r6} pop {r0} bx r0 .pool thumb_func_end sub_81D9274 thumb_func_start pokemon_alive_on_battle_side pokemon_alive_on_battle_side: @ 81D9338 push {r4,lr} adds r4, r0, 0 ldrh r1, [r4, 0x36] movs r0, 0x7 ands r0, r1 cmp r0, 0 bne _081D93CC movs r1, 0x3C ldrsh r0, [r4, r1] cmp r0, 0 bne _081D9370 ldrh r0, [r4, 0x20] ldrh r3, [r4, 0x3A] subs r0, r3 strh r0, [r4, 0x20] ldr r2, =gSprites movs r0, 0x2E ldrsh r1, [r4, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r2 ldrh r1, [r0, 0x20] subs r1, r3 b _081D939E .pool _081D9370: ldrh r2, [r4, 0x3A] ldrh r1, [r4, 0x20] adds r0, r2, r1 strh r0, [r4, 0x20] ldr r3, =gSprites movs r0, 0x2E ldrsh r1, [r4, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r3 ldrh r1, [r0, 0x20] adds r2, r1 strh r2, [r0, 0x20] movs r2, 0x30 ldrsh r1, [r4, r2] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r3 ldrh r1, [r4, 0x3A] ldrh r2, [r0, 0x20] adds r1, r2 _081D939E: strh r1, [r0, 0x20] ldrh r1, [r4, 0x38] adds r1, 0x1 movs r2, 0 strh r1, [r4, 0x38] ldrh r0, [r4, 0x3A] subs r0, r1 strh r0, [r4, 0x3A] lsls r1, 16 asrs r1, 16 cmp r1, 0x3 bne _081D93CC strh r2, [r4, 0x36] strh r2, [r4, 0x38] strh r2, [r4, 0x3A] ldr r0, =SpriteCallbackDummy str r0, [r4, 0x1C] b _081D93D2 .pool _081D93CC: ldrh r0, [r4, 0x36] adds r0, 0x1 strh r0, [r4, 0x36] _081D93D2: pop {r4} pop {r0} bx r0 thumb_func_end pokemon_alive_on_battle_side thumb_func_start sub_81D93D8 sub_81D93D8: @ 81D93D8 push {lr} lsls r0, 24 lsrs r0, 24 lsls r2, r0, 2 adds r2, r0 lsls r2, 3 ldr r0, =gTasks + 0x8 adds r2, r0 ldr r3, =gSprites movs r0, 0x6 ldrsh r1, [r2, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r1, r3, 0 adds r1, 0x1C adds r0, r1 ldr r1, =sub_81D9420 str r1, [r0] movs r0, 0x6 ldrsh r1, [r2, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r3 movs r1, 0x1 bl StartSpriteAnim pop {r0} bx r0 .pool thumb_func_end sub_81D93D8 thumb_func_start sub_81D9420 sub_81D9420: @ 81D9420 push {r4,lr} adds r4, r0, 0 adds r0, 0x2B ldrb r0, [r0] cmp r0, 0x1 beq _081D9488 cmp r0, 0x1 bgt _081D9436 cmp r0, 0 beq _081D9440 b _081D94C4 _081D9436: cmp r0, 0x2 beq _081D9440 cmp r0, 0x3 beq _081D9488 b _081D94C4 _081D9440: adds r0, r4, 0 adds r0, 0x2C ldrb r0, [r0] lsls r0, 26 lsrs r0, 26 movs r1, 0xC bl __umodsi3 lsls r0, 24 ldr r2, =gSprites cmp r0, 0 bne _081D9470 ldrh r0, [r4, 0x20] subs r0, 0x2 strh r0, [r4, 0x20] movs r0, 0x2E ldrsh r1, [r4, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r2 ldrh r1, [r0, 0x20] subs r1, 0x2 strh r1, [r0, 0x20] _081D9470: movs r1, 0x2E ldrsh r0, [r4, r1] lsls r1, r0, 4 adds r1, r0 lsls r1, 2 adds r1, r2 movs r0, 0 strh r0, [r1, 0x26] b _081D94C4 .pool _081D9488: ldr r2, =gSprites movs r0, 0x2E ldrsh r1, [r4, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r2 ldr r1, =0x0000fffe strh r1, [r0, 0x26] adds r0, r4, 0 adds r0, 0x2C ldrb r1, [r0] lsls r1, 26 lsrs r1, 26 movs r0, 0xF ands r0, r1 cmp r0, 0 bne _081D94C4 ldrh r0, [r4, 0x22] adds r0, 0x1 strh r0, [r4, 0x22] movs r0, 0x2E ldrsh r1, [r4, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r2 ldrh r1, [r0, 0x22] adds r1, 0x1 strh r1, [r0, 0x22] _081D94C4: pop {r4} pop {r0} bx r0 .pool thumb_func_end sub_81D9420 thumb_func_start sub_81D94D4 sub_81D94D4: @ 81D94D4 push {r4,lr} lsls r0, 24 lsrs r0, 24 lsls r1, r0, 2 adds r1, r0 lsls r1, 3 ldr r0, =gTasks + 0x8 adds r1, r0 movs r0, 0x8 ldrsh r1, [r1, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 ldr r2, =gSprites + 0x2E adds r4, r0, r2 subs r2, 0x12 adds r0, r2 ldr r3, =sub_81D9528 str r3, [r0] movs r0, 0 ldrsh r1, [r4, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r2 str r3, [r0] movs r0, 0x2 ldrsh r1, [r4, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r2 str r3, [r0] pop {r4} pop {r0} bx r0 .pool thumb_func_end sub_81D94D4 thumb_func_start sub_81D9528 sub_81D9528: @ 81D9528 push {r4-r7,lr} mov r7, r8 push {r7} adds r7, r0, 0 ldrh r1, [r7, 0x36] movs r0, 0x3 ands r0, r1 cmp r0, 0 bne _081D9550 ldrh r1, [r7, 0x24] movs r2, 0x24 ldrsh r0, [r7, r2] cmp r0, 0x1 bne _081D954C ldr r0, =0x0000ffff b _081D954E .pool _081D954C: movs r0, 0x1 _081D954E: strh r0, [r7, 0x24] _081D9550: movs r1, 0x38 ldrsh r0, [r7, r1] cmp r0, 0x80 bne _081D95CE ldr r2, =gUnknown_0862ACF0 mov r8, r2 mov r0, r8 movs r1, 0x98 movs r2, 0x84 movs r3, 0 bl CreateSprite lsls r0, 24 lsrs r0, 24 strh r0, [r7, 0x3C] ldr r5, =gSprites movs r1, 0x3C ldrsh r0, [r7, r1] lsls r1, r0, 4 adds r1, r0 lsls r1, 2 adds r1, r5 ldrb r2, [r1, 0x5] movs r4, 0xD negs r4, r4 adds r0, r4, 0 ands r0, r2 movs r6, 0x4 orrs r0, r6 strb r0, [r1, 0x5] mov r0, r8 movs r1, 0xE0 movs r2, 0x84 movs r3, 0 bl CreateSprite lsls r0, 24 lsrs r0, 24 strh r0, [r7, 0x3C] movs r2, 0x3C ldrsh r1, [r7, r2] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r5 ldrb r1, [r0, 0x5] ands r4, r1 orrs r4, r6 strb r4, [r0, 0x5] movs r0, 0x3C ldrsh r1, [r7, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r5 adds r0, 0x3F ldrb r1, [r0] movs r2, 0x1 orrs r1, r2 strb r1, [r0] ldrh r0, [r7, 0x38] adds r0, 0x1 strh r0, [r7, 0x38] _081D95CE: ldrh r1, [r7, 0x38] movs r2, 0x38 ldrsh r0, [r7, r2] cmp r0, 0x7F ble _081D95F8 movs r1, 0x26 ldrsh r0, [r7, r1] cmp r0, 0x20 beq _081D95FC ldrh r0, [r7, 0x3A] adds r0, 0x1 strh r0, [r7, 0x3A] lsls r0, 16 asrs r0, 20 strh r0, [r7, 0x26] b _081D95FC .pool _081D95F8: adds r0, r1, 0x1 strh r0, [r7, 0x38] _081D95FC: ldrh r0, [r7, 0x36] movs r1, 0x3F ands r0, r1 cmp r0, 0 bne _081D960C movs r0, 0xA5 bl PlaySE _081D960C: ldrh r0, [r7, 0x36] adds r0, 0x1 strh r0, [r7, 0x36] pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_81D9528 thumb_func_start sub_81D961C sub_81D961C: @ 81D961C push {r4,r5,lr} adds r4, r0, 0 movs r0, 0x3C ldrsh r1, [r4, r0] cmp r1, 0x40 bgt _081D968C ldrh r0, [r4, 0x26] adds r0, 0x2 strh r0, [r4, 0x26] ldr r5, =gSprites movs r0, 0x2E ldrsh r1, [r4, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r5 ldrh r1, [r0, 0x26] adds r1, 0x2 strh r1, [r0, 0x26] movs r1, 0x3C ldrsh r0, [r4, r1] cmp r0, 0x40 beq _081D964C b _081D979E _081D964C: movs r3, 0x30 negs r3, r3 adds r0, r4, 0 movs r1, 0x1 movs r2, 0 bl sub_81D9868 movs r2, 0x5 strh r2, [r4, 0x36] ldr r0, =0x0000ffff strh r0, [r4, 0x38] movs r0, 0x2E ldrsh r1, [r4, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r5 movs r1, 0x3 strh r1, [r0, 0x36] movs r0, 0x2E ldrsh r1, [r4, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r5 strh r2, [r0, 0x38] b _081D979E .pool _081D968C: cmp r1, 0x6F bgt _081D96BE adds r0, r4, 0 bl sub_81D97E0 movs r1, 0x36 ldrsh r0, [r4, r1] cmp r0, 0 bne _081D96A4 movs r0, 0x68 bl PlaySE _081D96A4: movs r0, 0x36 ldrsh r1, [r4, r0] movs r0, 0x3 negs r0, r0 cmp r1, r0 bne _081D979E adds r0, r4, 0 movs r1, 0x2 movs r2, 0x30 movs r3, 0x10 bl sub_81D9868 b _081D979E _081D96BE: cmp r1, 0x70 bne _081D96EC ldr r2, =gSprites movs r0, 0x2E ldrsh r1, [r4, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r2 movs r1, 0x7 strh r1, [r0, 0x36] movs r0, 0x2E ldrsh r1, [r4, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r2 movs r1, 0x3 strh r1, [r0, 0x38] b _081D96F2 .pool _081D96EC: ldr r0, =0x00000147 cmp r1, r0 bgt _081D9700 _081D96F2: adds r0, r4, 0 bl sub_81D97E0 b _081D979E .pool _081D9700: movs r0, 0xA4 lsls r0, 1 cmp r1, r0 bne _081D974C adds r0, r4, 0 bl sub_81D97E0 adds r0, r4, 0 movs r1, 0x3 movs r2, 0x30 movs r3, 0x10 bl sub_81D9868 movs r3, 0x1 strh r3, [r4, 0x24] ldr r2, =gSprites movs r0, 0x2E ldrsh r1, [r4, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r2 strh r3, [r0, 0x24] movs r0, 0xCB lsls r0, 1 movs r1, 0 bl PlayCry1 ldr r0, =sub_81D98B4 movs r1, 0 bl CreateTask b _081D979E .pool _081D974C: movs r0, 0xB0 lsls r0, 1 cmp r1, r0 beq _081D9790 adds r0, 0x18 cmp r1, r0 bne _081D979E movs r3, 0 strh r3, [r4, 0x24] ldr r2, =gSprites movs r0, 0x2E ldrsh r1, [r4, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r2 strh r3, [r0, 0x24] adds r0, r4, 0 bl sub_81D97E0 adds r0, r4, 0 movs r1, 0x2 movs r2, 0x30 movs r3, 0x10 bl sub_81D9868 ldr r0, =sub_81D97E0 str r0, [r4, 0x1C] b _081D97D2 .pool _081D9790: ldr r0, =sub_81D8E80 bl FindTaskIdByFunc lsls r0, 24 lsrs r0, 24 bl sub_81D9274 _081D979E: ldrh r2, [r4, 0x3C] movs r0, 0x3C ldrsh r1, [r4, r0] movs r0, 0xA4 lsls r0, 1 cmp r1, r0 ble _081D97CC movs r0, 0x1 ands r0, r2 cmp r0, 0 bne _081D97CC movs r1, 0x24 ldrsh r2, [r4, r1] negs r2, r2 strh r2, [r4, 0x24] ldr r3, =gSprites movs r0, 0x2E ldrsh r1, [r4, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r3 strh r2, [r0, 0x24] _081D97CC: ldrh r0, [r4, 0x3C] adds r0, 0x1 strh r0, [r4, 0x3C] _081D97D2: pop {r4,r5} pop {r0} bx r0 .pool thumb_func_end sub_81D961C thumb_func_start sub_81D97E0 sub_81D97E0: @ 81D97E0 push {r4-r7,lr} adds r3, r0, 0 movs r0, 0x2E ldrsh r1, [r3, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 ldr r5, =gSprites adds r4, r0, r5 ldrh r1, [r3, 0x3A] ldrh r0, [r4, 0x36] ands r0, r1 cmp r0, 0 bne _081D985C ldrh r2, [r3, 0x36] ldrh r1, [r3, 0x26] adds r0, r2, r1 strh r0, [r3, 0x26] movs r7, 0x2E ldrsh r1, [r3, r7] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r5 ldrh r1, [r0, 0x26] adds r2, r1 strh r2, [r0, 0x26] ldrh r0, [r3, 0x38] ldrh r2, [r3, 0x36] adds r0, r2 strh r0, [r3, 0x36] lsls r0, 16 asrs r5, r0, 16 ldrh r6, [r4, 0x38] movs r7, 0x38 ldrsh r2, [r4, r7] cmp r5, r2 bge _081D9836 movs r0, 0x36 ldrsh r1, [r3, r0] adds r0, r2, 0 cmn r1, r0 bgt _081D985C _081D9836: cmp r5, r2 ble _081D9844 strh r6, [r3, 0x36] b _081D9854 .pool _081D9844: movs r0, 0x36 ldrsh r1, [r3, r0] movs r2, 0x38 ldrsh r0, [r4, r2] cmn r1, r0 bge _081D9854 negs r0, r6 strh r0, [r3, 0x36] _081D9854: movs r7, 0x38 ldrsh r0, [r3, r7] negs r0, r0 strh r0, [r3, 0x38] _081D985C: ldrh r0, [r3, 0x3A] adds r0, 0x1 strh r0, [r3, 0x3A] pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_81D97E0 thumb_func_start sub_81D9868 sub_81D9868: @ 81D9868 push {r4,r5,lr} adds r5, r1, 0 lsls r5, 24 lsrs r5, 24 movs r4, 0x2E ldrsh r1, [r0, r4] lsls r4, r1, 4 adds r4, r1 lsls r4, 2 ldr r1, =gSprites adds r4, r1 lsls r2, 16 asrs r2, 16 ldrh r1, [r0, 0x20] adds r2, r1 strh r2, [r4, 0x20] lsls r3, 16 asrs r3, 16 ldrh r1, [r0, 0x22] adds r3, r1 strh r3, [r4, 0x22] ldrh r1, [r0, 0x24] strh r1, [r4, 0x24] ldrh r1, [r0, 0x26] strh r1, [r4, 0x26] adds r1, r5, 0 bl StartSpriteAnim adds r0, r4, 0 adds r1, r5, 0 bl StartSpriteAnim pop {r4,r5} pop {r0} bx r0 .pool thumb_func_end sub_81D9868 thumb_func_start sub_81D98B4 sub_81D98B4: @ 81D98B4 push {r4,r5,lr} sub sp, 0x10 lsls r0, 24 lsrs r5, r0, 24 lsls r0, r5, 2 adds r0, r5 lsls r0, 3 ldr r1, =gTasks + 0x8 adds r4, r0, r1 movs r0, 0 ldrsh r1, [r4, r0] cmp r1, 0x1 beq _081D990C cmp r1, 0x1 bgt _081D98DC cmp r1, 0 beq _081D98E2 b _081D99B4 .pool _081D98DC: cmp r1, 0x2 beq _081D99A4 b _081D99B4 _081D98E2: movs r2, 0x80 lsls r2, 7 movs r0, 0x40 str r0, [sp] adds r0, 0xC0 str r0, [sp, 0x4] str r0, [sp, 0x8] str r1, [sp, 0xC] movs r0, 0x2 adds r1, r2, 0 movs r3, 0x78 bl SetBgAffine movs r1, 0x80 lsls r1, 3 movs r0, 0 bl SetGpuRegBits movs r0, 0x10 strh r0, [r4, 0x8] b _081D9922 _081D990C: movs r1, 0xA ldrsh r0, [r4, r1] cmp r0, 0x8 bne _081D991A movs r0, 0x12 bl PlaySE _081D991A: movs r3, 0x4 ldrsh r0, [r4, r3] cmp r0, 0x2 bne _081D992A _081D9922: ldrh r0, [r4] adds r0, 0x1 strh r0, [r4] b _081D99B4 _081D992A: ldrh r5, [r4, 0x8] ldrh r1, [r4, 0x2] adds r0, r5, r1 strh r0, [r4, 0x2] ldrh r0, [r4, 0xA] adds r0, 0x1 strh r0, [r4, 0xA] movs r3, 0x6 ldrsh r0, [r4, r3] movs r1, 0x3 bl __modsi3 lsls r0, 16 cmp r0, 0 bne _081D9954 lsls r0, r5, 16 asrs r0, 16 cmp r0, 0x4 beq _081D9954 subs r0, r5, 0x2 strh r0, [r4, 0x8] _081D9954: ldrh r0, [r4, 0x6] adds r0, 0x1 strh r0, [r4, 0x6] movs r2, 0x80 lsls r2, 7 movs r0, 0x40 str r0, [sp] ldrh r0, [r4, 0x2] movs r3, 0x80 lsls r3, 1 adds r1, r3, 0 subs r0, r1, r0 lsls r0, 16 asrs r0, 16 str r0, [sp, 0x4] ldrh r0, [r4, 0x2] subs r1, r0 lsls r1, 16 asrs r1, 16 str r1, [sp, 0x8] movs r5, 0 str r5, [sp, 0xC] movs r0, 0x2 adds r1, r2, 0 movs r3, 0x78 bl SetBgAffine movs r1, 0x2 ldrsh r0, [r4, r1] cmp r0, 0xFF ble _081D99B4 strh r5, [r4, 0x2] strh r5, [r4, 0x6] strh r5, [r4, 0xA] movs r0, 0x10 strh r0, [r4, 0x8] ldrh r0, [r4, 0x4] adds r0, 0x1 strh r0, [r4, 0x4] b _081D99B4 _081D99A4: movs r1, 0x80 lsls r1, 3 movs r0, 0 bl ClearGpuRegBits adds r0, r5, 0 bl DestroyTask _081D99B4: add sp, 0x10 pop {r4,r5} pop {r0} bx r0 thumb_func_end sub_81D98B4 thumb_func_start sub_81D99BC sub_81D99BC: @ 81D99BC push {r4,lr} bl sub_80D2578 cmp r0, 0 bne _081D99DC ldr r4, =gStringVar1 bl sub_80D2548 adds r1, r0, 0 adds r0, r4, 0 bl StringCopy movs r0, 0x1 b _081D99DE .pool _081D99DC: movs r0, 0 _081D99DE: pop {r4} pop {r1} bx r1 thumb_func_end sub_81D99BC .align 2, 0 @ Don't pad with nop.