.include "asm/macros.inc" .include "constants/constants.inc" .syntax unified .text thumb_func_start sub_80EC5A4 sub_80EC5A4: @ 80EC5A4 push {lr} bl LoadOam bl ProcessSpriteCopyRequests bl TransferPlttBuffer pop {r0} bx r0 thumb_func_end sub_80EC5A4 thumb_func_start sub_80EC5B8 sub_80EC5B8: @ 80EC5B8 push {lr} bl UpdatePaletteFade lsls r0, 24 cmp r0, 0 bne _080EC5CA ldr r0, _080EC5D0 @ =sub_80EC870 bl SetMainCallback2 _080EC5CA: pop {r0} bx r0 .align 2, 0 _080EC5D0: .4byte sub_80EC870 thumb_func_end sub_80EC5B8 thumb_func_start load_copyright_graphics load_copyright_graphics: @ 80EC5D4 push {r4-r6,lr} adds r3, r0, 0 adds r4, r1, 0 adds r5, r2, 0 lsls r3, 16 lsrs r3, 16 lsls r4, 16 lsrs r4, 16 lsls r5, 16 lsrs r5, 16 ldr r0, _080EC610 @ =gUnknown_8402280 movs r6, 0xC0 lsls r6, 19 adds r3, r6 adds r1, r3, 0 bl LZ77UnCompVram ldr r0, _080EC614 @ =gUnknown_84024E4 adds r4, r6 adds r1, r4, 0 bl LZ77UnCompVram ldr r0, _080EC618 @ =gUnknown_8402260 adds r1, r5, 0 movs r2, 0x20 bl LoadPalette pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080EC610: .4byte gUnknown_8402280 _080EC614: .4byte gUnknown_84024E4 _080EC618: .4byte gUnknown_8402260 thumb_func_end load_copyright_graphics thumb_func_start SerialCb_CopyrightScreen SerialCb_CopyrightScreen: @ 80EC61C push {lr} ldr r0, _080EC628 @ =gUnknown_203AAD4 bl GameCubeMultiBoot_HandleSerialInterrupt pop {r0} bx r0 .align 2, 0 _080EC628: .4byte gUnknown_203AAD4 thumb_func_end SerialCb_CopyrightScreen thumb_func_start sub_80EC62C sub_80EC62C: @ 80EC62C push {r4-r6,lr} sub sp, 0xC ldr r0, _080EC64C @ =gMain movs r1, 0x87 lsls r1, 3 adds r5, r0, r1 ldrb r4, [r5] cmp r4, 0x8C bne _080EC640 b _080EC778 _080EC640: cmp r4, 0x8C bgt _080EC650 cmp r4, 0 beq _080EC65E b _080EC732 .align 2, 0 _080EC64C: .4byte gMain _080EC650: cmp r4, 0x8D bne _080EC656 b _080EC7A4 _080EC656: cmp r4, 0x8E bne _080EC65C b _080EC808 _080EC65C: b _080EC732 _080EC65E: movs r0, 0 bl SetVBlankCallback movs r0, 0x50 movs r1, 0 bl SetGpuReg movs r0, 0x52 movs r1, 0 bl SetGpuReg movs r0, 0x54 movs r1, 0 bl SetGpuReg movs r1, 0xA0 lsls r1, 19 ldr r2, _080EC74C @ =0x00007fff adds r0, r2, 0 strh r0, [r1] movs r0, 0 movs r1, 0 bl SetGpuReg movs r0, 0x10 movs r1, 0 bl SetGpuReg movs r0, 0x12 movs r1, 0 bl SetGpuReg add r0, sp, 0x4 strh r4, [r0] ldr r1, _080EC750 @ =0x040000d4 str r0, [r1] movs r0, 0xC0 lsls r0, 19 str r0, [r1, 0x4] ldr r0, _080EC754 @ =0x8100c000 str r0, [r1, 0x8] ldr r0, [r1, 0x8] str r4, [sp, 0x8] add r0, sp, 0x8 str r0, [r1] movs r0, 0xE0 lsls r0, 19 str r0, [r1, 0x4] ldr r0, _080EC758 @ =0x85000100 str r0, [r1, 0x8] ldr r0, [r1, 0x8] add r0, sp, 0x4 strh r4, [r0] str r0, [r1] ldr r0, _080EC75C @ =0x05000002 str r0, [r1, 0x4] ldr r0, _080EC760 @ =0x810001ff str r0, [r1, 0x8] ldr r0, [r1, 0x8] bl ResetPaletteFade movs r1, 0xE0 lsls r1, 6 movs r0, 0 movs r2, 0 bl load_copyright_graphics bl remove_some_task bl ResetTasks bl ResetSpriteData bl FreeAllSpritePalettes movs r0, 0x1 negs r0, r0 ldr r1, _080EC764 @ =0x0000ffff str r1, [sp] movs r1, 0 movs r2, 0x10 movs r3, 0 bl BeginNormalPaletteFade movs r1, 0xE0 lsls r1, 3 movs r0, 0x8 bl SetGpuReg movs r0, 0x1 bl EnableInterrupts ldr r0, _080EC768 @ =sub_80EC5A4 bl SetVBlankCallback movs r1, 0xA0 lsls r1, 1 movs r0, 0 bl SetGpuReg ldr r0, _080EC76C @ =SerialCb_CopyrightScreen bl SetSerialCallback ldr r0, _080EC770 @ =gUnknown_203AAD4 bl GameCubeMultiBoot_Init _080EC732: bl UpdatePaletteFade ldr r0, _080EC774 @ =gMain movs r1, 0x87 lsls r1, 3 adds r0, r1 ldrb r1, [r0] adds r1, 0x1 strb r1, [r0] ldr r0, _080EC770 @ =gUnknown_203AAD4 bl GameCubeMultiBoot_Main b _080EC812 .align 2, 0 _080EC74C: .4byte 0x00007fff _080EC750: .4byte 0x040000d4 _080EC754: .4byte 0x8100c000 _080EC758: .4byte 0x85000100 _080EC75C: .4byte 0x05000002 _080EC760: .4byte 0x810001ff _080EC764: .4byte 0x0000ffff _080EC768: .4byte sub_80EC5A4 _080EC76C: .4byte SerialCb_CopyrightScreen _080EC770: .4byte gUnknown_203AAD4 _080EC774: .4byte gMain _080EC778: ldr r4, _080EC7A0 @ =gUnknown_203AAD4 adds r0, r4, 0 bl GameCubeMultiBoot_Main ldrb r0, [r4, 0x2] cmp r0, 0x1 beq _080EC812 movs r0, 0x1 negs r0, r0 movs r1, 0 str r1, [sp] movs r2, 0 movs r3, 0x10 bl BeginNormalPaletteFade ldrb r0, [r5] adds r0, 0x1 strb r0, [r5] b _080EC812 .align 2, 0 _080EC7A0: .4byte gUnknown_203AAD4 _080EC7A4: bl UpdatePaletteFade lsls r0, 24 cmp r0, 0 bne _080EC812 ldrb r0, [r5] adds r0, 0x1 strb r0, [r5] ldr r5, _080EC7E4 @ =gUnknown_203AAD4 ldrb r0, [r5, 0x2] cmp r0, 0 beq _080EC7F4 ldrb r0, [r5, 0x2] cmp r0, 0x2 bne _080EC7FE ldr r6, _080EC7E8 @ =0x020000ac ldr r4, [r6] ldr r0, _080EC7EC @ =0x65366347 cmp r4, r0 bne _080EC7DC ldr r0, _080EC7F0 @ =gMultiBootProgram_PokemonColosseum_Start movs r1, 0x80 lsls r1, 18 movs r2, 0xA0 lsls r2, 9 bl CpuSet str r4, [r6] _080EC7DC: adds r0, r5, 0 bl GameCubeMultiBoot_ExecuteProgram b _080EC7FE .align 2, 0 _080EC7E4: .4byte gUnknown_203AAD4 _080EC7E8: .4byte 0x020000ac _080EC7EC: .4byte 0x65366347 _080EC7F0: .4byte gMultiBootProgram_PokemonColosseum_Start _080EC7F4: bl GameCubeMultiBoot_Quit ldr r0, _080EC804 @ =SerialCB bl SetSerialCallback _080EC7FE: movs r0, 0 b _080EC814 .align 2, 0 _080EC804: .4byte SerialCB _080EC808: bl sub_800B388 ldr r0, _080EC81C @ =sub_80EC5B8 bl SetMainCallback2 _080EC812: movs r0, 0x1 _080EC814: add sp, 0xC pop {r4-r6} pop {r1} bx r1 .align 2, 0 _080EC81C: .4byte sub_80EC5B8 thumb_func_end sub_80EC62C thumb_func_start c2_copyright_1 c2_copyright_1: @ 80EC820 push {lr} bl sub_80EC62C lsls r0, 24 cmp r0, 0 bne _080EC858 bl sub_8054A28 bl Save_ResetSaveCounters movs r0, 0 bl Save_LoadGameData ldr r0, _080EC85C @ =gSaveFileStatus ldrh r0, [r0] cmp r0, 0 beq _080EC846 cmp r0, 0x2 bne _080EC84A _080EC846: bl Sav2_ClearSetDefault _080EC84A: ldr r0, _080EC860 @ =gSaveBlock2Ptr ldr r0, [r0] ldrb r0, [r0, 0x15] lsls r0, 31 lsrs r0, 31 bl SetPokemonCryStereo _080EC858: pop {r0} bx r0 .align 2, 0 _080EC85C: .4byte gSaveFileStatus _080EC860: .4byte gSaveBlock2Ptr thumb_func_end c2_copyright_1 thumb_func_start sub_80EC864 sub_80EC864: @ 80EC864 push {lr} bl sub_80EC62C pop {r0} bx r0 thumb_func_end sub_80EC864 thumb_func_start sub_80EC870 sub_80EC870: @ 80EC870 push {r4,lr} sub sp, 0xC ldr r0, _080EC88C @ =gMain movs r1, 0x87 lsls r1, 3 adds r0, r1 ldrb r4, [r0] cmp r4, 0x1 beq _080EC944 cmp r4, 0x1 bgt _080EC890 cmp r4, 0 beq _080EC8A0 b _080EC894 .align 2, 0 _080EC88C: .4byte gMain _080EC890: cmp r4, 0x2 beq _080EC988 _080EC894: ldr r0, _080EC928 @ =gMain movs r1, 0x87 lsls r1, 3 adds r0, r1 movs r1, 0 strb r1, [r0] _080EC8A0: movs r0, 0 bl SetVBlankCallback movs r0, 0 movs r1, 0 bl SetGpuReg ldr r0, _080EC92C @ =gHeap movs r1, 0xE0 lsls r1, 9 bl InitHeap bl ResetTasks bl ResetSpriteData bl ResetPaletteFade bl reset_temp_tile_data_buffers bl sub_80ECA00 add r1, sp, 0x4 movs r0, 0 strh r0, [r1] ldr r1, _080EC930 @ =0x040000d4 add r0, sp, 0x4 str r0, [r1] movs r0, 0xC0 lsls r0, 19 str r0, [r1, 0x4] ldr r0, _080EC934 @ =0x8100c000 str r0, [r1, 0x8] ldr r0, [r1, 0x8] movs r2, 0 str r2, [sp, 0x8] add r0, sp, 0x8 str r0, [r1] movs r0, 0xE0 lsls r0, 19 str r0, [r1, 0x4] ldr r0, _080EC938 @ =0x85000100 str r0, [r1, 0x8] ldr r0, [r1, 0x8] add r0, sp, 0x4 strh r2, [r0] str r0, [r1] movs r0, 0xA0 lsls r0, 19 str r0, [r1, 0x4] ldr r0, _080EC93C @ =0x81000200 str r0, [r1, 0x8] ldr r0, [r1, 0x8] movs r2, 0x80 lsls r2, 3 movs r0, 0 movs r1, 0 bl FillPalette movs r0, 0 bl ResetBgsAndClearDma3BusyFlags ldr r1, _080EC940 @ =gUnknown_840BB80 movs r0, 0 movs r2, 0x2 bl InitBgsFromTemplates b _080EC9B8 .align 2, 0 _080EC928: .4byte gMain _080EC92C: .4byte gHeap _080EC930: .4byte 0x040000d4 _080EC934: .4byte 0x8100c000 _080EC938: .4byte 0x85000100 _080EC93C: .4byte 0x81000200 _080EC940: .4byte gUnknown_840BB80 _080EC944: ldr r0, _080EC978 @ =gUnknown_8402630 movs r1, 0 movs r2, 0x20 bl LoadPalette ldr r1, _080EC97C @ =gUnknown_8402650 movs r0, 0 str r0, [sp] movs r0, 0x3 movs r2, 0 movs r3, 0 bl decompress_and_copy_tile_data_to_vram ldr r1, _080EC980 @ =gUnknown_8402668 str r4, [sp] movs r0, 0x3 movs r2, 0 movs r3, 0 bl decompress_and_copy_tile_data_to_vram ldr r0, _080EC984 @ =gUnknown_840270C movs r1, 0xD0 movs r2, 0x20 bl LoadPalette b _080EC9B8 .align 2, 0 _080EC978: .4byte gUnknown_8402630 _080EC97C: .4byte gUnknown_8402650 _080EC980: .4byte gUnknown_8402668 _080EC984: .4byte gUnknown_840270C _080EC988: bl free_temp_tile_data_buffers_if_possible lsls r0, 24 cmp r0, 0 bne _080EC9C6 bl sub_80ECA70 movs r0, 0x1 negs r0, r0 movs r1, 0x10 movs r2, 0 bl BlendPalettes ldr r0, _080EC9B0 @ =sub_80EC9D4 bl SetMainCallback2 ldr r0, _080EC9B4 @ =sub_80EC9EC bl SetVBlankCallback b _080EC9C6 .align 2, 0 _080EC9B0: .4byte sub_80EC9D4 _080EC9B4: .4byte sub_80EC9EC _080EC9B8: ldr r1, _080EC9D0 @ =gMain movs r0, 0x87 lsls r0, 3 adds r1, r0 ldrb r0, [r1] adds r0, 0x1 strb r0, [r1] _080EC9C6: add sp, 0xC pop {r4} pop {r0} bx r0 .align 2, 0 _080EC9D0: .4byte gMain thumb_func_end sub_80EC870 thumb_func_start sub_80EC9D4 sub_80EC9D4: @ 80EC9D4 push {lr} bl RunTasks bl AnimateSprites bl BuildOamBuffer bl UpdatePaletteFade pop {r0} bx r0 thumb_func_end sub_80EC9D4 thumb_func_start sub_80EC9EC sub_80EC9EC: @ 80EC9EC push {lr} bl LoadOam bl ProcessSpriteCopyRequests bl TransferPlttBuffer pop {r0} bx r0 thumb_func_end sub_80EC9EC thumb_func_start sub_80ECA00 sub_80ECA00: @ 80ECA00 push {lr} movs r0, 0 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 movs r0, 0x10 movs r1, 0 bl SetGpuReg movs r0, 0x12 movs r1, 0 bl SetGpuReg movs r0, 0x14 movs r1, 0 bl SetGpuReg movs r0, 0x16 movs r1, 0 bl SetGpuReg movs r0, 0x18 movs r1, 0 bl SetGpuReg movs r0, 0x1A movs r1, 0 bl SetGpuReg movs r0, 0x1C movs r1, 0 bl SetGpuReg movs r0, 0x1E movs r1, 0 bl SetGpuReg movs r1, 0x82 lsls r1, 5 movs r0, 0 bl SetGpuRegBits pop {r0} bx r0 thumb_func_end sub_80ECA00 thumb_func_start sub_80ECA70 sub_80ECA70: @ 80ECA70 push {r4,lr} ldr r0, _080ECA9C @ =0x000028bc bl Alloc adds r4, r0, 0 ldr r1, _080ECAA0 @ =sub_80ECAF0 bl sub_80ECAA8 ldr r0, _080ECAA4 @ =sub_80ECAB0 movs r1, 0x3 bl CreateTask strb r0, [r4, 0x5] ldrb r0, [r4, 0x5] movs r1, 0 adds r2, r4, 0 bl SetWordTaskArg pop {r4} pop {r0} bx r0 .align 2, 0 _080ECA9C: .4byte 0x000028bc _080ECAA0: .4byte sub_80ECAF0 _080ECAA4: .4byte sub_80ECAB0 thumb_func_end sub_80ECA70 thumb_func_start sub_80ECAA8 sub_80ECAA8: @ 80ECAA8 str r1, [r0] movs r1, 0 strb r1, [r0, 0x4] bx lr thumb_func_end sub_80ECAA8 thumb_func_start sub_80ECAB0 sub_80ECAB0: @ 80ECAB0 push {r4,lr} lsls r0, 24 lsrs r0, 24 movs r1, 0 bl GetWordTaskArg adds r4, r0, 0 ldr r0, _080ECAE8 @ =gMain ldrh r1, [r0, 0x2E] movs r0, 0xD ands r0, r1 cmp r0, 0 beq _080ECAD8 ldr r0, [r4] ldr r1, _080ECAEC @ =sub_80EDBE8 cmp r0, r1 beq _080ECAD8 adds r0, r4, 0 bl sub_80ECAA8 _080ECAD8: ldr r1, [r4] adds r0, r4, 0 bl _call_via_r1 pop {r4} pop {r0} bx r0 .align 2, 0 _080ECAE8: .4byte gMain _080ECAEC: .4byte sub_80EDBE8 thumb_func_end sub_80ECAB0 thumb_func_start sub_80ECAF0 sub_80ECAF0: @ 80ECAF0 push {r4,r5,lr} sub sp, 0xC adds r5, r0, 0 ldrb r0, [r5, 0x4] cmp r0, 0 beq _080ECB02 cmp r0, 0x1 beq _080ECB78 b _080ECB8A _080ECB02: ldr r0, _080ECB68 @ =gUnknown_840BBA8 bl InitWindows ldr r0, _080ECB6C @ =gUnknown_840272C ldr r1, _080ECB70 @ =0x0000043c adds r4, r5, r1 adds r1, r4, 0 bl LZ77UnCompWram ldr r0, _080ECB74 @ =gUnknown_84028F8 adds r1, r5, 0 adds r1, 0x3C bl LZ77UnCompWram movs r0, 0x20 str r0, [sp] str r0, [sp, 0x4] movs r0, 0x11 str r0, [sp, 0x8] movs r0, 0x2 movs r1, 0 movs r2, 0 movs r3, 0 bl FillBgTilemapBufferRect movs r0, 0 movs r1, 0 bl FillWindowPixelBuffer movs r0, 0x90 str r0, [sp] movs r0, 0x10 str r0, [sp, 0x4] movs r0, 0 adds r1, r4, 0 movs r2, 0 movs r3, 0x28 bl BlitBitmapToWindow movs r0, 0 bl PutWindowTilemap movs r0, 0 movs r1, 0x3 bl CopyWindowToVram ldrb r0, [r5, 0x4] adds r0, 0x1 strb r0, [r5, 0x4] b _080ECB8A .align 2, 0 _080ECB68: .4byte gUnknown_840BBA8 _080ECB6C: .4byte gUnknown_840272C _080ECB70: .4byte 0x0000043c _080ECB74: .4byte gUnknown_84028F8 _080ECB78: bl IsDma3ManagerBusyWithBgCopy lsls r0, 24 cmp r0, 0 bne _080ECB8A ldr r1, _080ECB94 @ =sub_80ECB98 adds r0, r5, 0 bl sub_80ECAA8 _080ECB8A: add sp, 0xC pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080ECB94: .4byte sub_80ECB98 thumb_func_end sub_80ECAF0 thumb_func_start sub_80ECB98 sub_80ECB98: @ 80ECB98 push {r4,r5,lr} adds r4, r0, 0 ldrb r5, [r4, 0x4] cmp r5, 0x1 beq _080ECBE2 cmp r5, 0x1 bgt _080ECBAC cmp r5, 0 beq _080ECBB2 b _080ECC32 _080ECBAC: cmp r5, 0x2 beq _080ECBFC b _080ECC32 _080ECBB2: movs r1, 0x80 lsls r1, 7 movs r0, 0 bl SetGpuRegBits movs r1, 0xFC lsls r1, 6 movs r0, 0x48 bl SetGpuReg movs r0, 0x4A movs r1, 0 bl SetGpuReg movs r0, 0x42 movs r1, 0xF0 bl SetGpuReg movs r0, 0x46 movs r1, 0 bl SetGpuReg strh r5, [r4, 0x12] b _080ECBF4 _080ECBE2: movs r0, 0x3 bl ShowBg movs r0, 0x1 negs r0, r0 movs r1, 0 movs r2, 0 bl BlendPalettes _080ECBF4: ldrb r0, [r4, 0x4] adds r0, 0x1 strb r0, [r4, 0x4] b _080ECC32 _080ECBFC: ldrh r0, [r4, 0x12] adds r0, 0x8 strh r0, [r4, 0x12] lsls r0, 16 lsrs r0, 16 cmp r0, 0x2F bls _080ECC0E movs r0, 0x30 strh r0, [r4, 0x12] _080ECC0E: ldrh r0, [r4, 0x12] movs r1, 0x50 subs r1, r0 lsls r1, 8 adds r0, 0x50 orrs r1, r0 lsls r1, 16 lsrs r1, 16 movs r0, 0x46 bl SetGpuReg ldrh r0, [r4, 0x12] cmp r0, 0x30 bne _080ECC32 ldr r1, _080ECC38 @ =sub_80ECC3C adds r0, r4, 0 bl sub_80ECAA8 _080ECC32: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080ECC38: .4byte sub_80ECC3C thumb_func_end sub_80ECB98 thumb_func_start sub_80ECC3C sub_80ECC3C: @ 80ECC3C push {r4,r5,lr} adds r4, r0, 0 ldrb r5, [r4, 0x4] cmp r5, 0x1 beq _080ECC68 cmp r5, 0x1 bgt _080ECC50 cmp r5, 0 beq _080ECC56 b _080ECC9C _080ECC50: cmp r5, 0x2 beq _080ECC86 b _080ECC9C _080ECC56: ldr r0, _080ECC64 @ =0x00000141 bl PlaySE bl sub_80EDC40 strh r5, [r4, 0x12] b _080ECC7E .align 2, 0 _080ECC64: .4byte 0x00000141 _080ECC68: ldrh r0, [r4, 0x12] adds r0, 0x1 strh r0, [r4, 0x12] lsls r0, 16 lsrs r0, 16 cmp r0, 0x1E bne _080ECC9C bl sub_80EDDF0 movs r0, 0 strh r0, [r4, 0x12] _080ECC7E: ldrb r0, [r4, 0x4] adds r0, 0x1 strb r0, [r4, 0x4] b _080ECC9C _080ECC86: ldrh r0, [r4, 0x12] adds r0, 0x1 strh r0, [r4, 0x12] lsls r0, 16 lsrs r0, 16 cmp r0, 0x5A bne _080ECC9C ldr r1, _080ECCA4 @ =sub_80ECCA8 adds r0, r4, 0 bl sub_80ECAA8 _080ECC9C: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080ECCA4: .4byte sub_80ECCA8 thumb_func_end sub_80ECC3C thumb_func_start sub_80ECCA8 sub_80ECCA8: @ 80ECCA8 push {r4,r5,lr} sub sp, 0x8 adds r4, r0, 0 ldrb r0, [r4, 0x4] cmp r0, 0x5 bhi _080ECD54 lsls r0, 2 ldr r1, _080ECCC0 @ =_080ECCC4 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _080ECCC0: .4byte _080ECCC4 .align 2, 0 _080ECCC4: .4byte _080ECCDC .4byte _080ECCE6 .4byte _080ECCF6 .4byte _080ECD18 .4byte _080ECD20 .4byte _080ECD3E _080ECCDC: bl sub_80EDED8 movs r0, 0 strh r0, [r4, 0x12] b _080ECD36 _080ECCE6: ldrh r0, [r4, 0x12] adds r0, 0x1 strh r0, [r4, 0x12] lsls r0, 16 lsrs r0, 16 cmp r0, 0x27 bls _080ECD54 b _080ECD36 _080ECCF6: ldr r1, _080ECD14 @ =0x00003f44 movs r0, 0x50 bl SetGpuReg movs r0, 0x30 str r0, [sp] movs r0, 0 str r0, [sp, 0x4] movs r1, 0x10 movs r2, 0x10 movs r3, 0 bl sub_812E944 b _080ECD36 .align 2, 0 _080ECD14: .4byte 0x00003f44 _080ECD18: movs r0, 0x2 bl ShowBg b _080ECD36 _080ECD20: bl sub_812E9E4 lsls r0, 24 lsrs r5, r0, 24 cmp r5, 0 bne _080ECD54 movs r0, 0x50 movs r1, 0 bl SetGpuReg strh r5, [r4, 0x12] _080ECD36: ldrb r0, [r4, 0x4] adds r0, 0x1 strb r0, [r4, 0x4] b _080ECD54 _080ECD3E: ldrh r0, [r4, 0x12] adds r0, 0x1 strh r0, [r4, 0x12] lsls r0, 16 lsrs r0, 16 cmp r0, 0x32 bls _080ECD54 ldr r1, _080ECD5C @ =sub_80ECD60 adds r0, r4, 0 bl sub_80ECAA8 _080ECD54: add sp, 0x8 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080ECD5C: .4byte sub_80ECD60 thumb_func_end sub_80ECCA8 thumb_func_start sub_80ECD60 sub_80ECD60: @ 80ECD60 push {r4-r6,lr} sub sp, 0x8 adds r6, r0, 0 ldrb r0, [r6, 0x4] cmp r0, 0x7 bls _080ECD6E b _080ECE96 _080ECD6E: lsls r0, 2 ldr r1, _080ECD78 @ =_080ECD7C adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _080ECD78: .4byte _080ECD7C .align 2, 0 _080ECD7C: .4byte _080ECD9C .4byte _080ECDC4 .4byte _080ECDCC .4byte _080ECE10 .4byte _080ECE26 .4byte _080ECE52 .4byte _080ECE64 .4byte _080ECE78 _080ECD9C: ldr r1, _080ECDC0 @ =0x00003f50 movs r0, 0x50 bl SetGpuReg movs r5, 0x10 str r5, [sp] movs r4, 0 str r4, [sp, 0x4] movs r0, 0 movs r1, 0x10 movs r2, 0x10 movs r3, 0 bl sub_812E944 strh r4, [r6, 0x8] strh r5, [r6, 0xA] strh r4, [r6, 0x12] b _080ECE70 .align 2, 0 _080ECDC0: .4byte 0x00003f50 _080ECDC4: bl sub_80EDF68 str r0, [r6, 0x14] b _080ECE70 _080ECDCC: bl sub_812E9E4 lsls r0, 24 cmp r0, 0 bne _080ECE96 adds r1, r6, 0 adds r1, 0x3C movs r0, 0x20 str r0, [sp] movs r0, 0x40 str r0, [sp, 0x4] movs r0, 0 movs r2, 0x38 movs r3, 0x6 bl BlitBitmapToWindow ldr r0, _080ECE0C @ =0x0000043c adds r1, r6, r0 movs r0, 0x90 str r0, [sp] movs r0, 0x10 str r0, [sp, 0x4] movs r0, 0 movs r2, 0 movs r3, 0x28 bl BlitBitmapToWindow movs r0, 0 movs r1, 0x2 bl CopyWindowToVram b _080ECE70 .align 2, 0 _080ECE0C: .4byte 0x0000043c _080ECE10: bl IsDma3ManagerBusyWithBgCopy lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0 bne _080ECE96 ldr r0, [r6, 0x14] bl DestroySprite strh r4, [r6, 0x12] b _080ECE70 _080ECE26: ldrh r0, [r6, 0x12] adds r0, 0x1 strh r0, [r6, 0x12] lsls r0, 16 lsrs r0, 16 cmp r0, 0x5A bls _080ECE96 movs r0, 0x50 movs r1, 0x4 bl SetGpuRegBits movs r0, 0x14 str r0, [sp] movs r0, 0 str r0, [sp, 0x4] movs r0, 0x10 movs r1, 0 movs r2, 0 movs r3, 0x10 bl sub_812E944 b _080ECE70 _080ECE52: bl sub_812E9E4 lsls r0, 24 cmp r0, 0 bne _080ECE96 movs r0, 0x2 bl HideBg b _080ECE70 _080ECE64: bl ResetSpriteData bl FreeAllSpritePalettes movs r0, 0 strh r0, [r6, 0x12] _080ECE70: ldrb r0, [r6, 0x4] adds r0, 0x1 strb r0, [r6, 0x4] b _080ECE96 _080ECE78: ldrh r0, [r6, 0x12] adds r0, 0x1 strh r0, [r6, 0x12] lsls r0, 16 lsrs r0, 16 cmp r0, 0x14 bls _080ECE96 movs r0, 0x50 movs r1, 0 bl SetGpuReg ldr r1, _080ECEA0 @ =sub_80ECEA4 adds r0, r6, 0 bl sub_80ECAA8 _080ECE96: add sp, 0x8 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080ECEA0: .4byte sub_80ECEA4 thumb_func_end sub_80ECD60 thumb_func_start sub_80ECEA4 sub_80ECEA4: @ 80ECEA4 push {r4,r5,lr} sub sp, 0x4 adds r5, r0, 0 ldrb r0, [r5, 0x4] cmp r0, 0x5 bls _080ECEB2 b _080ED094 _080ECEB2: lsls r0, 2 ldr r1, _080ECEBC @ =_080ECEC0 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _080ECEBC: .4byte _080ECEC0 .align 2, 0 _080ECEC0: .4byte _080ECED8 .4byte _080ECF64 .4byte _080ECFA4 .4byte _080ECFD8 .4byte _080ED000 .4byte _080ED064 _080ECED8: movs r0, 0 bl SetVBlankCallback ldr r0, _080ECF48 @ =gUnknown_8402D34 movs r1, 0x10 movs r2, 0x20 bl LoadPalette ldr r0, _080ECF4C @ =gUnknown_84048CC movs r1, 0x20 movs r2, 0x20 bl LoadPalette ldr r2, _080ECF50 @ =0x00007fff movs r0, 0x6 movs r1, 0x10 bl BlendPalettes ldr r1, _080ECF54 @ =gUnknown_840BB88 movs r0, 0 movs r2, 0x2 bl InitBgsFromTemplates ldr r1, _080ECF58 @ =gUnknown_84048EC movs r0, 0 str r0, [sp] movs r0, 0x1 movs r2, 0 movs r3, 0 bl decompress_and_copy_tile_data_to_vram ldr r1, _080ECF5C @ =gUnknown_8404F7C movs r0, 0x1 str r0, [sp] movs r2, 0 movs r3, 0 bl decompress_and_copy_tile_data_to_vram movs r0, 0x1 bl ShowBg movs r0, 0 bl HideBg movs r0, 0x2 bl HideBg movs r0, 0x3 bl HideBg bl sub_80EEBE4 ldr r0, _080ECF60 @ =sub_80EC9EC bl SetVBlankCallback b _080ECFF0 .align 2, 0 _080ECF48: .4byte gUnknown_8402D34 _080ECF4C: .4byte gUnknown_84048CC _080ECF50: .4byte 0x00007fff _080ECF54: .4byte gUnknown_840BB88 _080ECF58: .4byte gUnknown_84048EC _080ECF5C: .4byte gUnknown_8404F7C _080ECF60: .4byte sub_80EC9EC _080ECF64: bl free_temp_tile_data_buffers_if_possible lsls r0, 24 lsrs r0, 24 cmp r0, 0 beq _080ECF72 b _080ED094 _080ECF72: ldr r1, _080ECF9C @ =gUnknown_8402D54 str r0, [sp] movs r0, 0 movs r2, 0 movs r3, 0 bl decompress_and_copy_tile_data_to_vram ldr r1, _080ECFA0 @ =gUnknown_8403FE8 movs r0, 0x1 str r0, [sp] movs r0, 0 movs r2, 0 movs r3, 0 bl decompress_and_copy_tile_data_to_vram bl sub_80F6C14 movs r0, 0x1 bl ShowBg b _080ECFF0 .align 2, 0 _080ECF9C: .4byte gUnknown_8402D54 _080ECFA0: .4byte gUnknown_8403FE8 _080ECFA4: bl free_temp_tile_data_buffers_if_possible lsls r0, 24 cmp r0, 0 bne _080ED094 movs r0, 0 bl ShowBg ldr r0, _080ECFD0 @ =sub_80ED0AC movs r1, 0 bl CreateTask movs r1, 0x2 negs r1, r1 ldr r0, _080ECFD4 @ =0x00007fff str r0, [sp] movs r0, 0x6 movs r2, 0x10 movs r3, 0 bl BeginNormalPaletteFade b _080ECFF0 .align 2, 0 _080ECFD0: .4byte sub_80ED0AC _080ECFD4: .4byte 0x00007fff _080ECFD8: ldr r0, _080ECFF8 @ =gPaletteFade ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0 bne _080ED094 ldr r0, _080ECFFC @ =0x00000115 bl m4aSongNumStart strh r4, [r5, 0x12] _080ECFF0: ldrb r0, [r5, 0x4] adds r0, 0x1 strb r0, [r5, 0x4] b _080ED094 .align 2, 0 _080ECFF8: .4byte gPaletteFade _080ECFFC: .4byte 0x00000115 _080ED000: ldrh r0, [r5, 0x12] adds r0, 0x1 strh r0, [r5, 0x12] lsls r0, 16 lsrs r0, 16 cmp r0, 0x14 bne _080ED01A ldr r0, _080ED054 @ =sub_80ED140 movs r1, 0 bl CreateTask bl sub_80ED118 _080ED01A: ldrh r0, [r5, 0x12] cmp r0, 0x1D bls _080ED094 movs r0, 0x2 negs r0, r0 ldr r2, _080ED058 @ =0x00007fff movs r1, 0x10 bl BlendPalettes ldr r0, _080ED05C @ =sub_80ED0AC bl FindTaskIdByFunc lsls r0, 24 lsrs r0, 24 bl DestroyTask ldr r0, _080ED054 @ =sub_80ED140 bl FindTaskIdByFunc lsls r0, 24 lsrs r0, 24 bl DestroyTask ldr r1, _080ED060 @ =sub_80ED188 adds r0, r5, 0 bl sub_80ECAA8 b _080ED094 .align 2, 0 _080ED054: .4byte sub_80ED140 _080ED058: .4byte 0x00007fff _080ED05C: .4byte sub_80ED0AC _080ED060: .4byte sub_80ED188 _080ED064: ldr r0, _080ED09C @ =gPaletteFade ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 bne _080ED094 ldr r0, _080ED0A0 @ =sub_80ED0AC bl FindTaskIdByFunc lsls r0, 24 lsrs r0, 24 bl DestroyTask ldr r0, _080ED0A4 @ =sub_80ED140 bl FindTaskIdByFunc lsls r0, 24 lsrs r0, 24 bl DestroyTask ldr r1, _080ED0A8 @ =sub_80ED188 adds r0, r5, 0 bl sub_80ECAA8 _080ED094: add sp, 0x4 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080ED09C: .4byte gPaletteFade _080ED0A0: .4byte sub_80ED0AC _080ED0A4: .4byte sub_80ED140 _080ED0A8: .4byte sub_80ED188 thumb_func_end sub_80ECEA4 thumb_func_start sub_80ED0AC sub_80ED0AC: @ 80ED0AC push {r4,lr} lsls r0, 24 lsrs r0, 24 lsls r1, r0, 2 adds r1, r0 lsls r1, 3 ldr r0, _080ED114 @ =gTasks+0x8 adds r4, r1, r0 ldrh r0, [r4] adds r0, 0x1 strh r0, [r4] lsls r0, 16 asrs r0, 16 cmp r0, 0x5 ble _080ED0EC movs r1, 0 strh r1, [r4] ldrh r0, [r4, 0x2] adds r0, 0x1 strh r0, [r4, 0x2] lsls r0, 16 asrs r0, 16 cmp r0, 0x2 ble _080ED0DE strh r1, [r4, 0x2] _080ED0DE: movs r0, 0x2 ldrsh r1, [r4, r0] lsls r1, 15 movs r0, 0 movs r2, 0 bl ChangeBgY _080ED0EC: movs r1, 0x4 ldrsh r0, [r4, r1] cmp r0, 0 beq _080ED10C movs r1, 0x90 lsls r1, 1 adds r0, r1, 0 ldrh r1, [r4, 0x6] adds r0, r1 strh r0, [r4, 0x6] movs r0, 0x6 ldrsh r1, [r4, r0] movs r0, 0 movs r2, 0x2 bl ChangeBgY _080ED10C: pop {r4} pop {r0} bx r0 .align 2, 0 _080ED114: .4byte gTasks+0x8 thumb_func_end sub_80ED0AC thumb_func_start sub_80ED118 sub_80ED118: @ 80ED118 push {lr} ldr r0, _080ED138 @ =sub_80ED0AC bl FindTaskIdByFunc lsls r0, 24 lsrs r0, 24 ldr r2, _080ED13C @ =gTasks lsls r1, r0, 2 adds r1, r0 lsls r1, 3 adds r1, r2 movs r0, 0x1 strh r0, [r1, 0xC] pop {r0} bx r0 .align 2, 0 _080ED138: .4byte sub_80ED0AC _080ED13C: .4byte gTasks thumb_func_end sub_80ED118 thumb_func_start sub_80ED140 sub_80ED140: @ 80ED140 push {lr} lsls r0, 24 lsrs r0, 24 lsls r1, r0, 2 adds r1, r0 lsls r1, 3 ldr r0, _080ED184 @ =gTasks+0x8 adds r1, r0 ldrh r0, [r1] adds r0, 0x1 strh r0, [r1] lsls r0, 16 asrs r0, 16 cmp r0, 0x3 ble _080ED17E movs r0, 0 strh r0, [r1] ldrh r2, [r1, 0x2] movs r3, 0x2 ldrsh r0, [r1, r3] cmp r0, 0x1 bgt _080ED170 adds r0, r2, 0x1 strh r0, [r1, 0x2] _080ED170: movs r0, 0x2 ldrsh r1, [r1, r0] lsls r1, 15 movs r0, 0x1 movs r2, 0 bl ChangeBgY _080ED17E: pop {r0} bx r0 .align 2, 0 _080ED184: .4byte gTasks+0x8 thumb_func_end sub_80ED140 thumb_func_start sub_80ED188 sub_80ED188: @ 80ED188 push {r4-r7,lr} mov r7, r8 push {r7} sub sp, 0x4 adds r7, r0, 0 ldrb r0, [r7, 0x4] cmp r0, 0x6 bls _080ED19A b _080ED3F6 _080ED19A: lsls r0, 2 ldr r1, _080ED1A4 @ =_080ED1A8 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _080ED1A4: .4byte _080ED1A8 .align 2, 0 _080ED1A8: .4byte _080ED1C4 .4byte _080ED214 .4byte _080ED32C .4byte _080ED350 .4byte _080ED360 .4byte _080ED3BC .4byte _080ED3D2 _080ED1C4: movs r0, 0x2 negs r0, r0 ldr r2, _080ED204 @ =0x00007fff movs r1, 0x10 bl BlendPalettes ldr r1, _080ED208 @ =gUnknown_840BB90 movs r0, 0 movs r2, 0x4 bl InitBgsFromTemplates ldr r1, _080ED20C @ =gUnknown_8405414 movs r0, 0 str r0, [sp] movs r0, 0x3 movs r2, 0 movs r3, 0 bl decompress_and_copy_tile_data_to_vram ldr r1, _080ED210 @ =gUnknown_8405890 movs r0, 0x1 str r0, [sp] movs r0, 0x3 movs r2, 0 movs r3, 0 bl decompress_and_copy_tile_data_to_vram movs r0, 0x3 bl ShowBg b _080ED3CA .align 2, 0 _080ED204: .4byte 0x00007fff _080ED208: .4byte gUnknown_840BB90 _080ED20C: .4byte gUnknown_8405414 _080ED210: .4byte gUnknown_8405890 _080ED214: bl free_temp_tile_data_buffers_if_possible lsls r0, 24 lsrs r6, r0, 24 cmp r6, 0 beq _080ED222 b _080ED3F6 _080ED222: movs r0, 0 bl SetVBlankCallback ldr r0, _080ED2FC @ =gUnknown_84053B4 movs r1, 0x10 movs r2, 0x60 bl LoadPalette ldr r0, _080ED300 @ =gUnknown_8405DA4 movs r1, 0x50 movs r2, 0x20 bl LoadPalette ldr r0, _080ED304 @ =gUnknown_8406634 movs r1, 0x60 movs r2, 0x20 bl LoadPalette movs r5, 0x2 negs r5, r5 ldr r0, _080ED308 @ =0x00007fff mov r8, r0 adds r0, r5, 0 movs r1, 0x10 mov r2, r8 bl BlendPalettes ldr r1, _080ED30C @ =gUnknown_8405B28 str r6, [sp] movs r0, 0 movs r2, 0 movs r3, 0 bl decompress_and_copy_tile_data_to_vram ldr r1, _080ED310 @ =gUnknown_8405CDC movs r4, 0x1 str r4, [sp] movs r0, 0 movs r2, 0 movs r3, 0 bl decompress_and_copy_tile_data_to_vram ldr r1, _080ED314 @ =gUnknown_8406654 str r6, [sp] movs r0, 0x1 movs r2, 0 movs r3, 0 bl decompress_and_copy_tile_data_to_vram ldr r1, _080ED318 @ =gUnknown_84071D0 str r4, [sp] movs r0, 0x1 movs r2, 0 movs r3, 0 bl decompress_and_copy_tile_data_to_vram ldr r1, _080ED31C @ =gUnknown_8405DC4 str r6, [sp] movs r0, 0x2 movs r2, 0 movs r3, 0 bl decompress_and_copy_tile_data_to_vram ldr r1, _080ED320 @ =gUnknown_840644C str r4, [sp] movs r0, 0x2 movs r2, 0 movs r3, 0 bl decompress_and_copy_tile_data_to_vram bl sub_80F6C14 movs r0, 0 bl ShowBg movs r0, 0x1 bl HideBg movs r0, 0x2 bl HideBg movs r1, 0xE7 lsls r1, 9 movs r0, 0x2 movs r2, 0 bl ChangeBgY movs r1, 0xA0 lsls r1, 6 movs r0, 0x1 movs r2, 0 bl ChangeBgY ldr r0, _080ED324 @ =sub_80ED40C movs r1, 0 bl CreateTask adds r0, r7, 0 bl sub_80ED444 adds r0, r5, 0 movs r1, 0x10 mov r2, r8 bl BlendPalettes ldr r0, _080ED328 @ =sub_80EC9EC bl SetVBlankCallback b _080ED3CA .align 2, 0 _080ED2FC: .4byte gUnknown_84053B4 _080ED300: .4byte gUnknown_8405DA4 _080ED304: .4byte gUnknown_8406634 _080ED308: .4byte 0x00007fff _080ED30C: .4byte gUnknown_8405B28 _080ED310: .4byte gUnknown_8405CDC _080ED314: .4byte gUnknown_8406654 _080ED318: .4byte gUnknown_84071D0 _080ED31C: .4byte gUnknown_8405DC4 _080ED320: .4byte gUnknown_840644C _080ED324: .4byte sub_80ED40C _080ED328: .4byte sub_80EC9EC _080ED32C: bl free_temp_tile_data_buffers_if_possible lsls r0, 24 cmp r0, 0 bne _080ED3F6 movs r1, 0x2 negs r1, r1 ldr r0, _080ED34C @ =0x00007fff str r0, [sp] adds r0, r1, 0 movs r2, 0x10 movs r3, 0 bl BeginNormalPaletteFade b _080ED3CA .align 2, 0 _080ED34C: .4byte 0x00007fff _080ED350: ldr r0, _080ED35C @ =gPaletteFade ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 b _080ED3C0 .align 2, 0 _080ED35C: .4byte gPaletteFade _080ED360: ldrh r0, [r7, 0x12] adds r0, 0x1 strh r0, [r7, 0x12] lsls r0, 16 lsrs r0, 16 cmp r0, 0x3B bls _080ED3F6 movs r0, 0 strh r0, [r7, 0x12] ldr r0, _080ED3B4 @ =sub_80ED40C bl FindTaskIdByFunc lsls r0, 24 lsrs r0, 24 bl DestroyTask adds r0, r7, 0 bl sub_80ED4A0 ldr r0, _080ED3B8 @ =sub_80ED428 movs r1, 0 bl CreateTask movs r1, 0x80 lsls r1, 9 movs r0, 0x3 movs r2, 0 bl ChangeBgY movs r0, 0 bl HideBg movs r0, 0x3 bl ShowBg movs r0, 0x1 bl ShowBg movs r0, 0x2 bl ShowBg b _080ED3CA .align 2, 0 _080ED3B4: .4byte sub_80ED40C _080ED3B8: .4byte sub_80ED428 _080ED3BC: bl IsDma3ManagerBusyWithBgCopy _080ED3C0: lsls r0, 24 lsrs r0, 24 cmp r0, 0 bne _080ED3F6 strh r0, [r7, 0x12] _080ED3CA: ldrb r0, [r7, 0x4] adds r0, 0x1 strb r0, [r7, 0x4] b _080ED3F6 _080ED3D2: ldrh r0, [r7, 0x12] adds r0, 0x1 strh r0, [r7, 0x12] lsls r0, 16 lsrs r0, 16 cmp r0, 0x3B bls _080ED3F6 ldr r0, _080ED404 @ =sub_80ED428 bl FindTaskIdByFunc lsls r0, 24 lsrs r0, 24 bl DestroyTask ldr r1, _080ED408 @ =sub_80ED4C0 adds r0, r7, 0 bl sub_80ECAA8 _080ED3F6: add sp, 0x4 pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080ED404: .4byte sub_80ED428 _080ED408: .4byte sub_80ED4C0 thumb_func_end sub_80ED188 thumb_func_start sub_80ED40C sub_80ED40C: @ 80ED40C push {lr} movs r0, 0x3 movs r1, 0xE0 movs r2, 0x2 bl ChangeBgX movs r1, 0x88 lsls r1, 1 movs r0, 0 movs r2, 0x1 bl ChangeBgX pop {r0} bx r0 thumb_func_end sub_80ED40C thumb_func_start sub_80ED428 sub_80ED428: @ 80ED428 push {lr} movs r0, 0x2 movs r1, 0x20 movs r2, 0x1 bl ChangeBgY movs r0, 0x1 movs r1, 0x24 movs r2, 0x2 bl ChangeBgY pop {r0} bx r0 thumb_func_end sub_80ED428 thumb_func_start sub_80ED444 sub_80ED444: @ 80ED444 push {r4,lr} adds r4, r0, 0 movs r0, 0 str r0, [r4, 0x1C] str r0, [r4, 0x20] ldr r0, _080ED494 @ =gUnknown_840BDA8 movs r1, 0xA8 movs r2, 0x50 movs r3, 0xB bl CreateSprite lsls r0, 24 lsrs r1, r0, 24 cmp r1, 0x40 beq _080ED46E lsls r0, r1, 4 adds r0, r1 lsls r0, 2 ldr r1, _080ED498 @ =gSprites adds r0, r1 str r0, [r4, 0x20] _080ED46E: ldr r0, _080ED49C @ =gUnknown_840BDC0 movs r1, 0x48 movs r2, 0x50 movs r3, 0xC bl CreateSprite lsls r0, 24 lsrs r1, r0, 24 cmp r1, 0x40 beq _080ED48E lsls r0, r1, 4 adds r0, r1 lsls r0, 2 ldr r1, _080ED498 @ =gSprites adds r0, r1 str r0, [r4, 0x1C] _080ED48E: pop {r4} pop {r0} bx r0 .align 2, 0 _080ED494: .4byte gUnknown_840BDA8 _080ED498: .4byte gSprites _080ED49C: .4byte gUnknown_840BDC0 thumb_func_end sub_80ED444 thumb_func_start sub_80ED4A0 sub_80ED4A0: @ 80ED4A0 push {r4,lr} adds r4, r0, 0 ldr r0, [r4, 0x1C] cmp r0, 0 beq _080ED4AE bl DestroySprite _080ED4AE: ldr r0, [r4, 0x20] cmp r0, 0 beq _080ED4B8 bl DestroySprite _080ED4B8: pop {r4} pop {r0} bx r0 thumb_func_end sub_80ED4A0 thumb_func_start sub_80ED4C0 sub_80ED4C0: @ 80ED4C0 push {r4,r5,lr} sub sp, 0x4 adds r5, r0, 0 ldrb r4, [r5, 0x4] cmp r4, 0x1 beq _080ED59C cmp r4, 0x1 bgt _080ED4D6 cmp r4, 0 beq _080ED4E4 b _080ED68A _080ED4D6: cmp r4, 0x2 bne _080ED4DC b _080ED5FC _080ED4DC: cmp r4, 0x3 bne _080ED4E2 b _080ED658 _080ED4E2: b _080ED68A _080ED4E4: ldr r0, _080ED584 @ =gUnknown_8407430 movs r1, 0x10 movs r2, 0x40 bl LoadPalette ldr r0, _080ED588 @ =gUnknown_8405DA4 movs r1, 0x50 movs r2, 0x20 bl LoadPalette movs r0, 0x2 negs r0, r0 ldr r2, _080ED58C @ =0x00007fff movs r1, 0x10 bl BlendPalettes ldr r1, _080ED590 @ =gUnknown_840BBA0 movs r0, 0 movs r2, 0x2 bl InitBgsFromTemplates ldr r1, _080ED594 @ =gUnknown_8407470 str r4, [sp] movs r0, 0x1 movs r2, 0 movs r3, 0 bl decompress_and_copy_tile_data_to_vram ldr r1, _080ED598 @ =gUnknown_8407A50 movs r0, 0x1 str r0, [sp] movs r2, 0 movs r3, 0 bl decompress_and_copy_tile_data_to_vram movs r0, 0x1 bl ShowBg movs r0, 0 bl HideBg movs r0, 0x2 bl HideBg movs r0, 0x3 bl HideBg bl sub_80F6C14 ldrb r0, [r5, 0x4] adds r0, 0x1 strb r0, [r5, 0x4] movs r1, 0x80 lsls r1, 6 movs r0, 0 bl SetGpuRegBits movs r0, 0x48 movs r1, 0x12 bl SetGpuRegBits movs r0, 0x48 movs r1, 0x1 bl ClearGpuRegBits movs r0, 0x4A movs r1, 0 bl SetGpuRegBits movs r1, 0x82 lsls r1, 6 movs r0, 0x44 bl SetGpuReg movs r0, 0x40 movs r1, 0x78 bl SetGpuReg b _080ED68A .align 2, 0 _080ED584: .4byte gUnknown_8407430 _080ED588: .4byte gUnknown_8405DA4 _080ED58C: .4byte 0x00007fff _080ED590: .4byte gUnknown_840BBA0 _080ED594: .4byte gUnknown_8407470 _080ED598: .4byte gUnknown_8407A50 _080ED59C: bl free_temp_tile_data_buffers_if_possible lsls r0, 24 lsrs r0, 24 cmp r0, 0 bne _080ED68A ldr r1, _080ED5EC @ =gUnknown_8407B9C str r0, [sp] movs r0, 0 movs r2, 0 movs r3, 0 bl decompress_and_copy_tile_data_to_vram ldr r1, _080ED5F0 @ =gUnknown_8408D98 str r4, [sp] movs r0, 0 movs r2, 0 movs r3, 0 bl decompress_and_copy_tile_data_to_vram ldr r1, _080ED5F4 @ =gUnknown_203AB00 movs r0, 0x4 strh r0, [r1] ldr r1, _080ED5F8 @ =gUnknown_203AB02 movs r0, 0x34 strh r0, [r1] movs r1, 0xC0 lsls r1, 5 movs r0, 0 movs r2, 0 bl ChangeBgX movs r1, 0xF8 lsls r1, 9 movs r0, 0 movs r2, 0 bl ChangeBgY b _080ED642 .align 2, 0 _080ED5EC: .4byte gUnknown_8407B9C _080ED5F0: .4byte gUnknown_8408D98 _080ED5F4: .4byte gUnknown_203AB00 _080ED5F8: .4byte gUnknown_203AB02 _080ED5FC: bl free_temp_tile_data_buffers_if_possible lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0 bne _080ED68A movs r0, 0x2 negs r0, r0 ldr r2, _080ED64C @ =0x00007fff movs r1, 0 bl BlendPalettes movs r0, 0 bl ShowBg ldr r0, _080ED650 @ =sub_80ED714 movs r1, 0 bl CreateTask adds r0, r5, 0 bl sub_80EE4F8 ldr r0, [r5, 0x18] movs r1, 0 movs r2, 0xB4 movs r3, 0x34 bl sub_80EE528 ldr r0, _080ED654 @ =sub_80EE200 movs r1, 0 bl CreateTask bl sub_80ED6D8 strh r4, [r5, 0x12] _080ED642: ldrb r0, [r5, 0x4] adds r0, 0x1 strb r0, [r5, 0x4] b _080ED68A .align 2, 0 _080ED64C: .4byte 0x00007fff _080ED650: .4byte sub_80ED714 _080ED654: .4byte sub_80EE200 _080ED658: ldrh r0, [r5, 0x12] adds r0, 0x1 strh r0, [r5, 0x12] lsls r0, 16 lsrs r0, 16 cmp r0, 0x10 bne _080ED66C adds r0, r5, 0 bl sub_80ED7D4 _080ED66C: adds r0, r5, 0 bl sub_80EE5C8 cmp r0, 0 bne _080ED68A ldr r0, _080ED694 @ =sub_80EE200 bl FuncIsActiveTask lsls r0, 24 cmp r0, 0 bne _080ED68A ldr r1, _080ED698 @ =sub_80ED898 adds r0, r5, 0 bl sub_80ECAA8 _080ED68A: add sp, 0x4 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080ED694: .4byte sub_80EE200 _080ED698: .4byte sub_80ED898 thumb_func_end sub_80ED4C0 thumb_func_start sub_80ED69C sub_80ED69C: @ 80ED69C push {lr} lsls r0, 24 lsrs r0, 24 ldr r2, _080ED6C4 @ =gTasks lsls r1, r0, 2 adds r1, r0 lsls r1, 3 adds r1, r2 movs r2, 0x8 ldrsh r0, [r1, r2] cmp r0, 0 bne _080ED6C8 movs r1, 0x80 lsls r1, 3 movs r0, 0x1 movs r2, 0x2 bl ChangeBgX b _080ED6D2 .align 2, 0 _080ED6C4: .4byte gTasks _080ED6C8: movs r0, 0x1 movs r1, 0x20 movs r2, 0x2 bl ChangeBgX _080ED6D2: pop {r0} bx r0 thumb_func_end sub_80ED69C thumb_func_start sub_80ED6D8 sub_80ED6D8: @ 80ED6D8 push {lr} ldr r0, _080ED6E8 @ =sub_80ED69C movs r1, 0 bl CreateTask pop {r0} bx r0 .align 2, 0 _080ED6E8: .4byte sub_80ED69C thumb_func_end sub_80ED6D8 thumb_func_start sub_80ED6EC sub_80ED6EC: @ 80ED6EC push {lr} ldr r0, _080ED70C @ =sub_80ED69C bl FindTaskIdByFunc lsls r0, 24 lsrs r0, 24 ldr r2, _080ED710 @ =gTasks lsls r1, r0, 2 adds r1, r0 lsls r1, 3 adds r1, r2 movs r0, 0x1 strh r0, [r1, 0x8] pop {r0} bx r0 .align 2, 0 _080ED70C: .4byte sub_80ED69C _080ED710: .4byte gTasks thumb_func_end sub_80ED6EC thumb_func_start sub_80ED714 sub_80ED714: @ 80ED714 push {lr} lsls r0, 24 lsrs r0, 24 lsls r1, r0, 2 adds r1, r0 lsls r1, 3 ldr r0, _080ED75C @ =gTasks+0x8 adds r2, r1, r0 movs r0, 0 ldrsh r1, [r2, r0] cmp r1, 0 bne _080ED758 ldrh r0, [r2, 0x2] adds r0, 0x1 strh r0, [r2, 0x2] lsls r0, 16 asrs r0, 16 cmp r0, 0x1D ble _080ED758 strh r1, [r2, 0x2] ldrh r0, [r2, 0x4] movs r1, 0x1 eors r0, r1 strh r0, [r2, 0x4] movs r0, 0x4 ldrsh r1, [r2, r0] lsls r1, 15 movs r0, 0xF8 lsls r0, 9 adds r1, r0 movs r0, 0 movs r2, 0 bl ChangeBgY _080ED758: pop {r0} bx r0 .align 2, 0 _080ED75C: .4byte gTasks+0x8 thumb_func_end sub_80ED714 thumb_func_start sub_80ED760 sub_80ED760: @ 80ED760 push {lr} ldr r0, _080ED780 @ =sub_80ED714 bl FindTaskIdByFunc lsls r0, 24 lsrs r0, 24 ldr r2, _080ED784 @ =gTasks lsls r1, r0, 2 adds r1, r0 lsls r1, 3 adds r1, r2 movs r0, 0x1 strh r0, [r1, 0x8] pop {r0} bx r0 .align 2, 0 _080ED780: .4byte sub_80ED714 _080ED784: .4byte gTasks thumb_func_end sub_80ED760 thumb_func_start sub_80ED788 sub_80ED788: @ 80ED788 push {lr} ldr r0, _080ED7A8 @ =sub_80ED714 bl FindTaskIdByFunc lsls r0, 24 lsrs r0, 24 ldr r2, _080ED7AC @ =gTasks lsls r1, r0, 2 adds r1, r0 lsls r1, 3 adds r1, r2 movs r0, 0 strh r0, [r1, 0x8] pop {r0} bx r0 .align 2, 0 _080ED7A8: .4byte sub_80ED714 _080ED7AC: .4byte gTasks thumb_func_end sub_80ED788 thumb_func_start sub_80ED7B0 sub_80ED7B0: @ 80ED7B0 push {lr} ldr r0, _080ED7CC @ =sub_80ED714 bl FindTaskIdByFunc lsls r0, 24 lsrs r0, 24 ldr r2, _080ED7D0 @ =gTasks lsls r1, r0, 2 adds r1, r0 lsls r1, 3 adds r1, r2 ldrb r0, [r1, 0xC] pop {r1} bx r1 .align 2, 0 _080ED7CC: .4byte sub_80ED714 _080ED7D0: .4byte gTasks thumb_func_end sub_80ED7B0 thumb_func_start sub_80ED7D4 sub_80ED7D4: @ 80ED7D4 push {r4,lr} adds r4, r0, 0 ldr r0, _080ED800 @ =gUnknown_840BDFC movs r1, 0x94 lsls r1, 1 movs r2, 0x70 movs r3, 0x7 bl CreateSprite lsls r0, 24 lsrs r1, r0, 24 cmp r1, 0x40 beq _080ED80C lsls r0, r1, 4 adds r0, r1 lsls r0, 2 ldr r1, _080ED804 @ =gSprites adds r0, r1 str r0, [r4, 0x24] ldr r1, _080ED808 @ =sub_80ED818 str r1, [r0, 0x1C] b _080ED810 .align 2, 0 _080ED800: .4byte gUnknown_840BDFC _080ED804: .4byte gSprites _080ED808: .4byte sub_80ED818 _080ED80C: movs r0, 0 str r0, [r4, 0x24] _080ED810: pop {r4} pop {r0} bx r0 thumb_func_end sub_80ED7D4 thumb_func_start sub_80ED818 sub_80ED818: @ 80ED818 push {r4,lr} adds r2, r0, 0 adds r4, r2, 0 adds r4, 0x2E movs r1, 0x2E ldrsh r0, [r2, r1] cmp r0, 0x1 beq _080ED848 cmp r0, 0x1 bgt _080ED832 cmp r0, 0 beq _080ED838 b _080ED892 _080ED832: cmp r0, 0x2 beq _080ED866 b _080ED892 _080ED838: ldrh r0, [r2, 0x20] lsls r0, 5 strh r0, [r4, 0x2] movs r0, 0xA0 strh r0, [r4, 0x4] ldrh r0, [r2, 0x2E] adds r0, 0x1 strh r0, [r2, 0x2E] _080ED848: ldrh r0, [r4, 0x2] ldrh r1, [r4, 0x4] subs r0, r1 strh r0, [r4, 0x2] lsls r0, 16 asrs r0, 21 strh r0, [r2, 0x20] cmp r0, 0x34 bgt _080ED892 bl sub_80ED6EC ldrh r0, [r4] adds r0, 0x1 strh r0, [r4] b _080ED892 _080ED866: ldrh r0, [r4, 0x2] subs r0, 0x20 strh r0, [r4, 0x2] lsls r0, 16 asrs r0, 21 strh r0, [r2, 0x20] movs r1, 0x20 negs r1, r1 cmp r0, r1 bgt _080ED892 adds r3, r2, 0 adds r3, 0x3E ldrb r0, [r3] movs r1, 0x4 orrs r0, r1 strb r0, [r3] ldrh r0, [r2, 0x2E] adds r0, 0x1 strh r0, [r2, 0x2E] adds r0, r2, 0 bl DestroySprite _080ED892: pop {r4} pop {r0} bx r0 thumb_func_end sub_80ED818 thumb_func_start sub_80ED898 sub_80ED898: @ 80ED898 push {r4,r5,lr} sub sp, 0x8 adds r4, r0, 0 ldrb r0, [r4, 0x4] cmp r0, 0xF bls _080ED8A6 b _080EDA98 _080ED8A6: lsls r0, 2 ldr r1, _080ED8B0 @ =_080ED8B4 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _080ED8B0: .4byte _080ED8B4 .align 2, 0 _080ED8B4: .4byte _080ED8F4 .4byte _080ED8F8 .4byte _080ED910 .4byte _080ED918 .4byte _080ED936 .4byte _080ED946 .4byte _080ED95E .4byte _080ED97C .4byte _080ED998 .4byte _080ED9A0 .4byte _080ED9BA .4byte _080ED9D2 .4byte _080ED9DC .4byte _080EDA1C .4byte _080EDA5C .4byte _080EDA7C _080ED8F4: movs r0, 0 b _080EDA6C _080ED8F8: ldrh r0, [r4, 0x12] adds r0, 0x1 strh r0, [r4, 0x12] lsls r0, 16 lsrs r0, 16 cmp r0, 0x1E bhi _080ED908 b _080EDAC4 _080ED908: adds r0, r4, 0 bl sub_80EE5E4 b _080EDA6E _080ED910: adds r0, r4, 0 bl sub_80EE850 b _080EDA64 _080ED918: ldrh r0, [r4, 0x12] adds r0, 0x1 strh r0, [r4, 0x12] lsls r0, 16 lsrs r0, 16 cmp r0, 0x1E bhi _080ED928 b _080EDAC4 _080ED928: bl sub_80ED760 adds r0, r4, 0 bl sub_80EDF94 movs r0, 0 b _080EDA6C _080ED936: ldrb r0, [r4, 0x6] cmp r0, 0 bne _080ED93E b _080EDAC4 _080ED93E: adds r0, r4, 0 bl sub_80EE6A4 b _080EDA6E _080ED946: adds r0, r4, 0 bl sub_80EE850 lsls r0, 24 lsrs r5, r0, 24 cmp r5, 0 beq _080ED956 b _080EDAC4 _080ED956: bl sub_80ED788 strh r5, [r4, 0x12] b _080EDA6E _080ED95E: ldrh r0, [r4, 0x12] adds r0, 0x1 strh r0, [r4, 0x12] lsls r0, 16 lsrs r0, 16 cmp r0, 0x10 bhi _080ED96E b _080EDAC4 _080ED96E: ldr r0, [r4, 0x18] movs r1, 0x8 movs r2, 0xC movs r3, 0x5 bl sub_80EE970 b _080EDA6E _080ED97C: adds r0, r4, 0 bl sub_80EE850 lsls r0, 24 cmp r0, 0 beq _080ED98A b _080EDAC4 _080ED98A: ldr r0, [r4, 0x18] movs r1, 0x8 movs r2, 0xC movs r3, 0x5 bl sub_80EE970 b _080EDA6E _080ED998: adds r0, r4, 0 bl sub_80EE850 b _080EDA64 _080ED9A0: ldrh r0, [r4, 0x12] adds r0, 0x1 strh r0, [r4, 0x12] lsls r0, 16 lsrs r0, 16 cmp r0, 0x14 bhi _080ED9B0 b _080EDAC4 _080ED9B0: adds r0, r4, 0 bl sub_80EEA94 movs r0, 0 b _080EDA6C _080ED9BA: bl sub_80ED7B0 lsls r0, 24 cmp r0, 0 beq _080ED9C6 b _080EDAC4 _080ED9C6: bl sub_80ED760 adds r0, r4, 0 bl sub_80EDAF0 b _080EDA6E _080ED9D2: movs r0, 0 bl HideBg movs r0, 0 b _080EDA6C _080ED9DC: ldrh r0, [r4, 0x12] adds r0, 0x1 strh r0, [r4, 0x12] lsls r0, 16 lsrs r0, 16 cmp r0, 0x30 bne _080ED9FA ldr r0, _080EDA18 @ =0x00007fff str r0, [sp] movs r0, 0x6 movs r1, 0x2 movs r2, 0 movs r3, 0x10 bl BeginNormalPaletteFade _080ED9FA: ldrh r0, [r4, 0x12] cmp r0, 0x78 bls _080EDAC4 adds r0, r4, 0 bl sub_80EDB70 adds r0, r4, 0 bl sub_80EDBAC ldrb r0, [r4, 0x4] adds r0, 0x1 strb r0, [r4, 0x4] movs r0, 0 b _080EDAC2 .align 2, 0 _080EDA18: .4byte 0x00007fff _080EDA1C: ldrh r0, [r4, 0x12] adds r0, 0x1 strh r0, [r4, 0x12] lsls r0, 16 lsrs r0, 16 cmp r0, 0x8 bls _080EDAC4 add r1, sp, 0x4 ldr r2, _080EDA50 @ =0x00007fff adds r0, r2, 0 strh r0, [r1] ldr r1, _080EDA54 @ =gPlttBufferUnfaded + 0x20 ldr r2, _080EDA58 @ =0x01000020 add r0, sp, 0x4 bl CpuSet movs r1, 0x2 negs r1, r1 movs r0, 0 str r0, [sp] adds r0, r1, 0 movs r2, 0 movs r3, 0x10 bl BeginNormalPaletteFade b _080EDA6E .align 2, 0 _080EDA50: .4byte 0x00007fff _080EDA54: .4byte gPlttBufferUnfaded + 0x20 _080EDA58: .4byte 0x01000020 _080EDA5C: ldr r0, _080EDA78 @ =gPaletteFade ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 _080EDA64: lsls r0, 24 lsrs r0, 24 cmp r0, 0 bne _080EDAC4 _080EDA6C: strh r0, [r4, 0x12] _080EDA6E: ldrb r0, [r4, 0x4] adds r0, 0x1 strb r0, [r4, 0x4] b _080EDAC4 .align 2, 0 _080EDA78: .4byte gPaletteFade _080EDA7C: ldrh r0, [r4, 0x12] adds r0, 0x1 strh r0, [r4, 0x12] lsls r0, 16 lsrs r0, 16 cmp r0, 0x3C bls _080EDAC4 ldr r1, _080EDA94 @ =sub_80EDBE8 adds r0, r4, 0 bl sub_80ECAA8 b _080EDAC4 .align 2, 0 _080EDA94: .4byte sub_80EDBE8 _080EDA98: ldr r0, _080EDACC @ =gMain ldrh r1, [r0, 0x2E] movs r0, 0x80 lsls r0, 1 ands r0, r1 cmp r0, 0 beq _080EDAC4 ldr r0, _080EDAD0 @ =0xffff0064 ldr r2, _080EDAD4 @ =0x00007fff movs r1, 0 bl BlendPalettes ldr r1, [r4, 0x18] movs r0, 0 strh r0, [r1, 0x24] ldr r1, [r4, 0x18] movs r0, 0xB4 strh r0, [r1, 0x20] movs r0, 0x1 strb r0, [r4, 0x4] movs r0, 0x1E _080EDAC2: strh r0, [r4, 0x12] _080EDAC4: add sp, 0x8 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080EDACC: .4byte gMain _080EDAD0: .4byte 0xffff0064 _080EDAD4: .4byte 0x00007fff thumb_func_end sub_80ED898 thumb_func_start sub_80EDAD8 sub_80EDAD8: @ 80EDAD8 push {lr} ldrb r3, [r0, 0x1] lsrs r1, r3, 6 ldrb r2, [r0, 0x3] lsrs r2, 6 lsls r3, 30 lsrs r3, 30 bl CalcCenterToCornerVec pop {r0} bx r0 thumb_func_end sub_80EDAD8 thumb_func_start sub_80EDAF0 sub_80EDAF0: @ 80EDAF0 push {r4-r7,lr} adds r7, r0, 0 movs r5, 0 _080EDAF6: movs r6, 0x1 ands r6, r5 lsls r1, r6, 1 adds r1, r6 lsls r1, 20 lsrs r2, r5, 31 adds r2, r5, r2 asrs r2, 1 lsls r2, 22 movs r0, 0xC4 lsls r0, 14 adds r1, r0 asrs r1, 16 movs r0, 0x90 lsls r0, 15 adds r2, r0 asrs r2, 16 ldr r0, _080EDB68 @ =gUnknown_840BE4C movs r3, 0x8 bl CreateSprite lsls r0, 24 lsrs r1, r0, 24 cmp r1, 0x40 beq _080EDB5C lsls r0, r1, 4 adds r0, r1 lsls r0, 2 ldr r1, _080EDB6C @ =gSprites adds r4, r0, r1 lsls r1, r5, 24 lsrs r1, 24 adds r0, r4, 0 bl StartSpriteAnim lsls r1, r5, 2 adds r0, r7, 0 adds r0, 0x28 adds r2, r0, r1 str r4, [r2] cmp r6, 0 beq _080EDB56 ldrb r0, [r4, 0x1] movs r1, 0x3F ands r1, r0 movs r0, 0x80 orrs r1, r0 strb r1, [r4, 0x1] _080EDB56: ldr r0, [r2] bl sub_80EDAD8 _080EDB5C: adds r5, 0x1 cmp r5, 0x3 ble _080EDAF6 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080EDB68: .4byte gUnknown_840BE4C _080EDB6C: .4byte gSprites thumb_func_end sub_80EDAF0 thumb_func_start sub_80EDB70 sub_80EDB70: @ 80EDB70 push {r4,lr} adds r4, r0, 0 ldr r1, [r4, 0x18] ldrh r0, [r1, 0x24] ldrh r2, [r1, 0x20] adds r0, r2 strh r0, [r1, 0x20] ldr r1, [r4, 0x18] ldrh r0, [r1, 0x26] ldrh r2, [r1, 0x22] adds r0, r2 strh r0, [r1, 0x22] ldr r0, [r4, 0x18] movs r1, 0 movs r2, 0x2A bl sub_8007FFC ldr r0, [r4, 0x18] ldr r1, _080EDBA4 @ =SpriteCallbackDummy str r1, [r0, 0x1C] movs r1, 0x1 bl StartSpriteAffineAnim pop {r4} pop {r0} bx r0 .align 2, 0 _080EDBA4: .4byte SpriteCallbackDummy thumb_func_end sub_80EDB70 thumb_func_start nullsub_83 nullsub_83: @ 80EDBA8 bx lr thumb_func_end nullsub_83 thumb_func_start sub_80EDBAC sub_80EDBAC: @ 80EDBAC push {r4-r7,lr} adds r7, r0, 0 movs r6, 0 ldr r5, _080EDBE0 @ =gUnknown_840BBB8 _080EDBB4: lsls r0, r6, 2 adds r4, r7, 0 adds r4, 0x28 adds r4, r0 ldr r0, [r4] movs r1, 0x1 bl StartSpriteAffineAnim ldr r0, [r4] ldr r1, _080EDBE4 @ =nullsub_83 str r1, [r0, 0x1C] ldrb r1, [r5] ldrb r2, [r5, 0x1] bl sub_8007FFC adds r5, 0x2 adds r6, 0x1 cmp r6, 0x3 ble _080EDBB4 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080EDBE0: .4byte gUnknown_840BBB8 _080EDBE4: .4byte nullsub_83 thumb_func_end sub_80EDBAC thumb_func_start sub_80EDBE8 sub_80EDBE8: @ 80EDBE8 push {r4,lr} adds r4, r0, 0 ldrb r0, [r4, 0x4] cmp r0, 0 beq _080EDBF8 cmp r0, 0x1 beq _080EDC0C b _080EDC34 _080EDBF8: movs r2, 0x80 lsls r2, 3 movs r0, 0 movs r1, 0 bl FillPalette ldrb r0, [r4, 0x4] adds r0, 0x1 strb r0, [r4, 0x4] b _080EDC34 _080EDC0C: bl free_temp_tile_data_buffers_if_possible lsls r0, 24 cmp r0, 0 bne _080EDC34 ldrb r0, [r4, 0x5] bl DestroyTask adds r0, r4, 0 bl Free movs r0, 0x2 bl DisableInterrupts movs r0, 0 bl SetHBlankCallback ldr r0, _080EDC3C @ =sub_8078914 bl SetMainCallback2 _080EDC34: pop {r4} pop {r0} bx r0 .align 2, 0 _080EDC3C: .4byte sub_8078914 thumb_func_end sub_80EDBE8 thumb_func_start sub_80EDC40 sub_80EDC40: @ 80EDC40 push {r4-r6,lr} movs r5, 0 ldr r4, _080EDCE4 @ =gUnknown_840BBC0 _080EDC46: adds r0, r4, 0 bl LoadCompressedObjectPic adds r4, 0x8 adds r5, 0x1 cmp r5, 0x4 bls _080EDC46 ldr r0, _080EDCE8 @ =gUnknown_840BBE8 bl LoadSpritePalettes ldr r6, _080EDCEC @ =gUnknown_203AB0E movs r0, 0x60 strh r0, [r6] ldr r5, _080EDCF0 @ =gUnknown_203AB10 movs r0, 0x10 strh r0, [r5] ldr r1, _080EDCF4 @ =gUnknown_203AB12 movs r0, 0x7 strh r0, [r1] ldr r0, _080EDCF8 @ =gUnknown_203AB14 movs r2, 0x5 strh r2, [r0] ldr r1, _080EDCFC @ =gUnknown_203AB16 movs r0, 0x8 strh r0, [r1] ldr r1, _080EDD00 @ =gUnknown_203AB18 movs r0, 0x5A strh r0, [r1] ldr r1, _080EDD04 @ =gUnknown_203AB1A movs r0, 0x78 strh r0, [r1] ldr r0, _080EDD08 @ =gUnknown_203AB1E movs r1, 0x1 strh r1, [r0] ldr r0, _080EDD0C @ =gUnknown_203AB20 strh r1, [r0] ldr r0, _080EDD10 @ =gUnknown_203AB22 strh r2, [r0] ldr r0, _080EDD14 @ =gUnknown_203AB24 strh r2, [r0] ldr r4, _080EDD18 @ =gUnknown_203AB28 ldr r0, [r4] cmp r0, 0 bne _080EDCA2 ldr r0, _080EDD1C @ =0x151b9245 str r0, [r4] _080EDCA2: ldr r0, _080EDD20 @ =gUnknown_840BC6C movs r1, 0xF8 movs r2, 0x37 movs r3, 0 bl CreateSprite lsls r0, 24 lsrs r1, r0, 24 cmp r1, 0x40 beq _080EDCDE ldr r0, _080EDD24 @ =gSprites lsls r3, r1, 4 adds r3, r1 lsls r3, 2 adds r2, r3, r0 movs r1, 0xF8 lsls r1, 4 strh r1, [r2, 0x2E] movs r1, 0xDC lsls r1, 2 strh r1, [r2, 0x30] ldrh r1, [r6] strh r1, [r2, 0x32] ldrh r1, [r5] strh r1, [r2, 0x34] adds r0, r3 adds r0, 0x3A ldr r1, [r4] bl StoreWordInTwoHalfwords _080EDCDE: pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080EDCE4: .4byte gUnknown_840BBC0 _080EDCE8: .4byte gUnknown_840BBE8 _080EDCEC: .4byte gUnknown_203AB0E _080EDCF0: .4byte gUnknown_203AB10 _080EDCF4: .4byte gUnknown_203AB12 _080EDCF8: .4byte gUnknown_203AB14 _080EDCFC: .4byte gUnknown_203AB16 _080EDD00: .4byte gUnknown_203AB18 _080EDD04: .4byte gUnknown_203AB1A _080EDD08: .4byte gUnknown_203AB1E _080EDD0C: .4byte gUnknown_203AB20 _080EDD10: .4byte gUnknown_203AB22 _080EDD14: .4byte gUnknown_203AB24 _080EDD18: .4byte gUnknown_203AB28 _080EDD1C: .4byte 0x151b9245 _080EDD20: .4byte gUnknown_840BC6C _080EDD24: .4byte gSprites thumb_func_end sub_80EDC40 thumb_func_start sub_80EDD28 sub_80EDD28: @ 80EDD28 push {r4-r7,lr} lsls r0, 16 lsrs r5, r0, 16 lsls r1, 16 lsrs r3, r1, 16 lsls r2, 16 lsrs r2, 16 ldr r0, _080EDDCC @ =gUnknown_203AB12 ldrh r0, [r0] ands r2, r0 adds r2, 0x2 lsls r2, 16 lsrs r4, r2, 16 ldr r1, _080EDDD0 @ =gUnknown_203AB2C ldrh r0, [r1] adds r2, r0, 0 adds r0, r2, 0x1 strh r0, [r1] lsls r0, 16 asrs r0, 16 cmp r0, 0x3 ble _080EDD5C movs r6, 0x3 negs r6, r6 adds r0, r6, 0 strh r0, [r1] _080EDD5C: lsls r1, r5, 16 asrs r1, 16 lsls r0, r4, 16 asrs r7, r0, 16 adds r1, r7 lsls r0, r3, 16 asrs r0, 16 lsls r2, 16 asrs r6, r2, 16 adds r0, r6 lsls r0, 16 lsrs r3, r0, 16 lsls r1, 16 asrs r4, r1, 16 ldr r0, _080EDDD4 @ =0xffff0000 adds r1, r0 lsrs r1, 16 cmp r1, 0xEE bhi _080EDDC6 ldr r0, _080EDDD8 @ =gUnknown_840BC84 lsls r1, r3, 16 asrs r5, r1, 16 adds r1, r4, 0 adds r2, r5, 0 movs r3, 0x1 bl CreateSprite lsls r0, 24 lsrs r2, r0, 24 cmp r2, 0x40 beq _080EDDC6 ldr r0, _080EDDDC @ =gSprites lsls r1, r2, 4 adds r1, r2 lsls r1, 2 adds r1, r0 ldr r0, _080EDDE0 @ =gUnknown_203AB22 ldrh r0, [r0] lsls r4, r0 strh r4, [r1, 0x2E] ldr r2, _080EDDE4 @ =gUnknown_203AB24 adds r0, r5, 0 ldrh r2, [r2] lsls r0, r2 strh r0, [r1, 0x30] ldr r0, _080EDDE8 @ =gUnknown_203AB1E ldrh r0, [r0] muls r0, r7 strh r0, [r1, 0x32] ldr r0, _080EDDEC @ =gUnknown_203AB20 ldrh r0, [r0] muls r0, r6 strh r0, [r1, 0x34] _080EDDC6: pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080EDDCC: .4byte gUnknown_203AB12 _080EDDD0: .4byte gUnknown_203AB2C _080EDDD4: .4byte 0xffff0000 _080EDDD8: .4byte gUnknown_840BC84 _080EDDDC: .4byte gSprites _080EDDE0: .4byte gUnknown_203AB22 _080EDDE4: .4byte gUnknown_203AB24 _080EDDE8: .4byte gUnknown_203AB1E _080EDDEC: .4byte gUnknown_203AB20 thumb_func_end sub_80EDD28 thumb_func_start sub_80EDDF0 sub_80EDDF0: @ 80EDDF0 push {lr} ldr r0, _080EDE00 @ =sub_80EDE04 movs r1, 0x1 bl CreateTask pop {r0} bx r0 .align 2, 0 _080EDE00: .4byte sub_80EDE04 thumb_func_end sub_80EDDF0 thumb_func_start sub_80EDE04 sub_80EDE04: @ 80EDE04 push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} lsls r0, 24 lsrs r0, 24 mov r9, r0 lsls r0, 2 add r0, r9 lsls r0, 3 ldr r1, _080EDEB0 @ =gTasks+0x8 adds r0, r1 mov r8, r0 ldrh r1, [r0, 0x4] adds r1, 0x1 strh r1, [r0, 0x4] ldrh r0, [r0, 0x6] adds r0, 0x1 mov r2, r8 strh r0, [r2, 0x6] lsls r1, 16 asrs r1, 16 cmp r1, 0x6 ble _080EDECA movs r0, 0 strh r0, [r2, 0x4] ldrb r6, [r2] ldr r0, _080EDEB4 @ =gUnknown_840BC84 ldr r1, _080EDEB8 @ =gUnknown_840BC08 lsls r6, 2 adds r6, r1 movs r3, 0 ldrsh r1, [r6, r3] movs r3, 0x2 ldrsh r2, [r6, r3] movs r3, 0x2 bl CreateSprite lsls r0, 24 lsrs r0, 24 lsls r4, r0, 4 adds r4, r0 lsls r4, 2 ldr r5, _080EDEBC @ =gSprites adds r7, r4, r5 adds r0, r7, 0 movs r1, 0x1 bl StartSpriteAnim adds r5, 0x1C adds r4, r5 ldr r0, _080EDEC0 @ =sub_80EE40C str r0, [r4] ldrh r0, [r6, 0x2] lsls r0, 4 strh r0, [r7, 0x30] movs r0, 0x78 strh r0, [r7, 0x32] mov r1, r8 ldrh r0, [r1, 0x2] strh r0, [r7, 0x34] lsls r0, 16 cmp r0, 0 bge _080EDE88 movs r0, 0x1 strh r0, [r7, 0x34] _080EDE88: mov r2, r8 ldrh r0, [r2] adds r0, 0x1 strh r0, [r2] lsls r0, 16 lsrs r0, 16 cmp r0, 0x8 bls _080EDECA ldrh r0, [r2, 0x2] adds r0, 0x1 strh r0, [r2, 0x2] lsls r0, 16 asrs r0, 16 cmp r0, 0x1 ble _080EDEC4 mov r0, r9 bl DestroyTask b _080EDECA .align 2, 0 _080EDEB0: .4byte gTasks+0x8 _080EDEB4: .4byte gUnknown_840BC84 _080EDEB8: .4byte gUnknown_840BC08 _080EDEBC: .4byte gSprites _080EDEC0: .4byte sub_80EE40C _080EDEC4: movs r0, 0 mov r3, r8 strh r0, [r3] _080EDECA: pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_80EDE04 thumb_func_start sub_80EDED8 sub_80EDED8: @ 80EDED8 push {lr} ldr r0, _080EDEE8 @ =sub_80EDEEC movs r1, 0x2 bl CreateTask pop {r0} bx r0 .align 2, 0 _080EDEE8: .4byte sub_80EDEEC thumb_func_end sub_80EDED8 thumb_func_start sub_80EDEEC sub_80EDEEC: @ 80EDEEC push {r4,r5,lr} lsls r0, 24 lsrs r0, 24 adds r5, r0, 0 lsls r0, r5, 2 adds r0, r5 lsls r0, 3 ldr r1, _080EDF5C @ =gTasks+0x8 adds r4, r0, r1 movs r1, 0 ldrsh r0, [r4, r1] cmp r0, 0 bne _080EDF44 ldrh r1, [r4, 0x2] ldrb r2, [r4, 0x2] adds r0, r1, 0x4 strh r0, [r4, 0x2] lsls r0, 16 lsrs r0, 16 cmp r0, 0x8 bls _080EDF1A subs r0, r1, 0x5 strh r0, [r4, 0x2] _080EDF1A: ldr r0, _080EDF60 @ =gUnknown_840BCBC ldr r1, _080EDF64 @ =gUnknown_840BC08 lsls r2, 2 adds r2, r1 movs r3, 0 ldrsh r1, [r2, r3] movs r3, 0x2 ldrsh r2, [r2, r3] movs r3, 0x3 bl CreateSprite ldrh r0, [r4, 0x4] adds r0, 0x1 strh r0, [r4, 0x4] lsls r0, 16 asrs r0, 16 cmp r0, 0x8 ble _080EDF44 adds r0, r5, 0 bl DestroyTask _080EDF44: ldrh r0, [r4] adds r0, 0x1 strh r0, [r4] lsls r0, 16 asrs r0, 16 cmp r0, 0x9 ble _080EDF56 movs r0, 0 strh r0, [r4] _080EDF56: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080EDF5C: .4byte gTasks+0x8 _080EDF60: .4byte gUnknown_840BCBC _080EDF64: .4byte gUnknown_840BC08 thumb_func_end sub_80EDEEC thumb_func_start sub_80EDF68 sub_80EDF68: @ 80EDF68 push {lr} ldr r0, _080EDF8C @ =gUnknown_840BCDC movs r1, 0x78 movs r2, 0x46 movs r3, 0x4 bl CreateSprite adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 lsls r0, r1, 4 adds r0, r1 lsls r0, 2 ldr r1, _080EDF90 @ =gSprites adds r0, r1 pop {r1} bx r1 .align 2, 0 _080EDF8C: .4byte gUnknown_840BCDC _080EDF90: .4byte gSprites thumb_func_end sub_80EDF68 thumb_func_start sub_80EDF94 sub_80EDF94: @ 80EDF94 push {r4,r5,lr} adds r4, r0, 0 movs r0, 0 strb r0, [r4, 0x6] ldr r0, _080EDFD0 @ =sub_80EE024 movs r1, 0x4 bl CreateTask adds r5, r0, 0 lsls r5, 24 lsrs r5, 24 adds r0, r5, 0 movs r1, 0x5 adds r2, r4, 0 bl SetWordTaskArg ldr r0, _080EDFD4 @ =gTasks lsls r4, r5, 2 adds r4, r5 lsls r4, 3 adds r4, r0 movs r0, 0x40 strh r0, [r4, 0xE] movs r0, 0 bl GetBgX strh r0, [r4, 0x10] pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080EDFD0: .4byte sub_80EE024 _080EDFD4: .4byte gTasks thumb_func_end sub_80EDF94 thumb_func_start sub_80EDFD8 sub_80EDFD8: @ 80EDFD8 push {r4-r6,lr} mov r6, r8 push {r6} adds r4, r0, 0 adds r5, r1, 0 adds r6, r2, 0 mov r8, r3 lsls r4, 15 movs r0, 0xF8 lsls r0, 9 adds r4, r0 movs r0, 0 adds r1, r4, 0 movs r2, 0 bl ChangeBgY movs r0, 0 mov r1, r8 movs r2, 0 bl ChangeBgX lsls r5, 8 movs r0, 0 adds r1, r5, 0 movs r2, 0x2 bl ChangeBgX lsls r6, 8 movs r0, 0 adds r1, r6, 0 movs r2, 0x2 bl ChangeBgY pop {r3} mov r8, r3 pop {r4-r6} pop {r0} bx r0 thumb_func_end sub_80EDFD8 thumb_func_start sub_80EE024 sub_80EE024: @ 80EE024 push {r4,r5,lr} lsls r0, 24 lsrs r2, r0, 24 lsls r0, r2, 2 adds r0, r2 lsls r0, 3 ldr r1, _080EE048 @ =gTasks+0x8 adds r5, r0, r1 movs r1, 0 ldrsh r0, [r5, r1] cmp r0, 0x5 bhi _080EE11C lsls r0, 2 ldr r1, _080EE04C @ =_080EE050 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _080EE048: .4byte gTasks+0x8 _080EE04C: .4byte _080EE050 .align 2, 0 _080EE050: .4byte _080EE068 .4byte _080EE07A .4byte _080EE094 .4byte _080EE0BC .4byte _080EE0EE .4byte _080EE114 _080EE068: movs r0, 0x2 strh r0, [r5, 0xE] movs r0, 0 strh r0, [r5, 0x2] movs r0, 0x6 strh r0, [r5, 0x10] movs r0, 0x20 strh r0, [r5, 0x12] b _080EE10C _080EE07A: ldrh r0, [r5, 0x6] subs r0, 0x2 strh r0, [r5, 0x6] ldrh r0, [r5, 0x2] adds r0, 0x1 strh r0, [r5, 0x2] lsls r0, 16 asrs r0, 16 cmp r0, 0xF ble _080EE11C movs r0, 0 strh r0, [r5, 0x2] b _080EE10C _080EE094: ldrh r0, [r5, 0x2] adds r0, 0x1 strh r0, [r5, 0x2] lsls r0, 16 asrs r0, 16 cmp r0, 0xE bne _080EE0AE adds r0, r2, 0 movs r1, 0x5 bl GetWordTaskArg movs r1, 0x1 strb r1, [r0, 0x6] _080EE0AE: movs r2, 0x2 ldrsh r0, [r5, r2] cmp r0, 0xF ble _080EE11C movs r0, 0 strh r0, [r5, 0x2] b _080EE10C _080EE0BC: ldrh r0, [r5, 0x6] adds r0, 0x8 strh r0, [r5, 0x6] ldrh r0, [r5, 0x2] adds r0, 0x1 strh r0, [r5, 0x2] lsls r0, 16 asrs r0, 16 cmp r0, 0x4 bne _080EE0E0 bl sub_80EE160 movs r0, 0x20 strh r0, [r5, 0x10] movs r0, 0x30 strh r0, [r5, 0x12] movs r0, 0x3 strh r0, [r5, 0xE] _080EE0E0: movs r3, 0x2 ldrsh r0, [r5, r3] cmp r0, 0x7 ble _080EE11C movs r0, 0 strh r0, [r5, 0x2] b _080EE10C _080EE0EE: ldrh r0, [r5, 0x6] subs r0, 0x8 strh r0, [r5, 0x6] ldrh r0, [r5, 0x2] adds r0, 0x1 strh r0, [r5, 0x2] lsls r0, 16 asrs r0, 16 cmp r0, 0x3 ble _080EE11C movs r1, 0 strh r1, [r5, 0xE] movs r0, 0x40 strh r0, [r5, 0x6] strh r1, [r5, 0x2] _080EE10C: ldrh r0, [r5] adds r0, 0x1 strh r0, [r5] b _080EE11C _080EE114: adds r0, r2, 0 bl DestroyTask b _080EE156 _080EE11C: movs r4, 0x6 ldrsh r3, [r5, r4] ldr r4, _080EE15C @ =gUnknown_825E074 adds r0, r3, 0 adds r0, 0x40 lsls r0, 1 adds r0, r4 movs r2, 0 ldrsh r1, [r0, r2] movs r2, 0x12 ldrsh r0, [r5, r2] muls r1, r0 asrs r1, 8 negs r1, r1 movs r0, 0x10 ldrsh r2, [r5, r0] lsls r3, 1 adds r3, r4 movs r4, 0 ldrsh r0, [r3, r4] muls r0, r2 asrs r0, 8 subs r2, r0 movs r3, 0xE ldrsh r0, [r5, r3] movs r4, 0x8 ldrsh r3, [r5, r4] bl sub_80EDFD8 _080EE156: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080EE15C: .4byte gUnknown_825E074 thumb_func_end sub_80EE024 thumb_func_start sub_80EE160 sub_80EE160: @ 80EE160 push {r4,lr} ldr r4, _080EE1BC @ =gUnknown_840BE8C adds r0, r4, 0 movs r1, 0x84 movs r2, 0x4E movs r3, 0x6 bl CreateSprite adds r0, r4, 0 movs r1, 0x84 movs r2, 0x76 movs r3, 0x6 bl CreateSprite lsls r0, 24 lsrs r1, r0, 24 cmp r1, 0x40 beq _080EE1B4 ldr r0, _080EE1C0 @ =gSprites lsls r4, r1, 4 adds r4, r1 lsls r4, 2 adds r4, r0 ldrb r2, [r4, 0x1] movs r1, 0x3F adds r0, r1, 0 ands r0, r2 movs r2, 0x40 orrs r0, r2 strb r0, [r4, 0x1] ldrb r0, [r4, 0x3] ands r1, r0 movs r0, 0x80 orrs r1, r0 strb r1, [r4, 0x3] adds r0, r4, 0 bl sub_80EDAD8 adds r0, r4, 0 movs r1, 0x1 bl StartSpriteAnim _080EE1B4: pop {r4} pop {r0} bx r0 .align 2, 0 _080EE1BC: .4byte gUnknown_840BE8C _080EE1C0: .4byte gSprites thumb_func_end sub_80EE160 thumb_func_start sub_80EE1C4 sub_80EE1C4: @ 80EE1C4 push {lr} adds r3, r0, 0 movs r0, 0x3E adds r0, r3 mov r12, r0 ldrb r2, [r0] lsls r0, r2, 29 lsrs r0, 31 movs r1, 0x1 eors r1, r0 lsls r1, 2 movs r0, 0x5 negs r0, r0 ands r0, r2 orrs r0, r1 mov r1, r12 strb r0, [r1] adds r0, r3, 0 adds r0, 0x3F ldrb r1, [r0] movs r0, 0x10 ands r0, r1 cmp r0, 0 beq _080EE1FA adds r0, r3, 0 bl DestroySprite _080EE1FA: pop {r0} bx r0 thumb_func_end sub_80EE1C4 thumb_func_start sub_80EE200 sub_80EE200: @ 80EE200 push {r4,r5,lr} lsls r0, 24 lsrs r4, r0, 24 lsls r0, r4, 2 adds r0, r4 lsls r0, 3 ldr r1, _080EE220 @ =gTasks+0x8 adds r1, r0, r1 movs r2, 0 ldrsh r0, [r1, r2] cmp r0, 0 beq _080EE224 cmp r0, 0x1 beq _080EE232 b _080EE28A .align 2, 0 _080EE220: .4byte gTasks+0x8 _080EE224: movs r3, 0x80 lsls r3, 3 adds r0, r3, 0 strh r0, [r1, 0x2] ldrh r0, [r1] adds r0, 0x1 strh r0, [r1] _080EE232: ldrh r0, [r1, 0x4] adds r0, 0x1 strh r0, [r1, 0x4] lsls r0, 16 asrs r0, 16 cmp r0, 0x27 ble _080EE250 ldrh r2, [r1, 0x2] movs r3, 0x2 ldrsh r0, [r1, r3] cmp r0, 0x10 ble _080EE250 adds r0, r2, 0 subs r0, 0x10 strh r0, [r1, 0x2] _080EE250: movs r0, 0x2 ldrsh r1, [r1, r0] movs r0, 0 movs r2, 0x1 bl ChangeBgX ldr r5, _080EE290 @ =gUnknown_203AB30 str r0, [r5] ldr r1, _080EE294 @ =0x00007fff cmp r0, r1 bls _080EE270 movs r1, 0x80 lsls r1, 6 movs r0, 0 bl ClearGpuRegBits _080EE270: ldr r1, [r5] ldr r0, _080EE298 @ =0x0000eeff cmp r1, r0 bls _080EE28A movs r1, 0xEF lsls r1, 8 movs r0, 0 movs r2, 0 bl ChangeBgX adds r0, r4, 0 bl DestroyTask _080EE28A: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080EE290: .4byte gUnknown_203AB30 _080EE294: .4byte 0x00007fff _080EE298: .4byte 0x0000eeff thumb_func_end sub_80EE200 thumb_func_start sub_80EE29C sub_80EE29C: @ 80EE29C push {r4,r5,lr} sub sp, 0x4 adds r5, r0, 0 ldrh r2, [r5, 0x2E] ldrh r0, [r5, 0x32] subs r2, r0 strh r2, [r5, 0x2E] ldrh r1, [r5, 0x34] ldrh r0, [r5, 0x30] adds r1, r0 strh r1, [r5, 0x30] ldrh r0, [r5, 0x36] adds r0, 0x30 strh r0, [r5, 0x36] lsls r2, 16 asrs r2, 20 strh r2, [r5, 0x20] lsls r1, 16 asrs r1, 20 strh r1, [r5, 0x22] ldr r1, _080EE340 @ =gUnknown_825E074 lsls r0, 16 asrs r0, 20 adds r0, 0x40 lsls r0, 1 adds r0, r1 ldrh r0, [r0] lsls r0, 16 asrs r0, 21 strh r0, [r5, 0x26] ldrh r0, [r5, 0x38] adds r0, 0x1 strh r0, [r5, 0x38] movs r1, 0x38 ldrsh r0, [r5, r1] ldr r1, _080EE344 @ =gUnknown_203AB16 ldrh r1, [r1] bl __modsi3 cmp r0, 0 beq _080EE324 adds r4, r5, 0 adds r4, 0x3A adds r0, r4, 0 mov r1, sp bl LoadWordFromTwoHalfwords ldr r1, [sp] ldr r0, _080EE348 @ =0x41c64e6d muls r1, r0 ldr r3, _080EE34C @ =0x00006073 adds r1, r3 str r1, [sp] adds r0, r4, 0 bl StoreWordInTwoHalfwords ldr r2, [sp] lsrs r2, 16 str r2, [sp] movs r1, 0x20 ldrsh r0, [r5, r1] ldrh r1, [r5, 0x26] ldrh r3, [r5, 0x22] adds r1, r3 lsls r1, 16 asrs r1, 16 bl sub_80EDD28 _080EE324: movs r0, 0x20 ldrsh r1, [r5, r0] movs r0, 0x8 negs r0, r0 cmp r1, r0 bge _080EE336 adds r0, r5, 0 bl DestroySprite _080EE336: add sp, 0x4 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080EE340: .4byte gUnknown_825E074 _080EE344: .4byte gUnknown_203AB16 _080EE348: .4byte 0x41c64e6d _080EE34C: .4byte 0x00006073 thumb_func_end sub_80EE29C thumb_func_start sub_80EE350 sub_80EE350: @ 80EE350 push {r4,lr} adds r4, r0, 0 ldrh r0, [r4, 0x32] ldrh r1, [r4, 0x2E] adds r0, r1 strh r0, [r4, 0x2E] ldrh r2, [r4, 0x34] ldrh r1, [r4, 0x30] adds r0, r2, r1 strh r0, [r4, 0x30] ldrh r1, [r4, 0x36] adds r1, 0x1 strh r1, [r4, 0x36] ldrh r0, [r4, 0x38] adds r0, r1 strh r0, [r4, 0x38] ldrh r0, [r4, 0x3C] adds r0, 0x1 strh r0, [r4, 0x3C] ldrh r0, [r4, 0x2E] ldr r1, _080EE3F8 @ =gUnknown_203AB22 ldrh r1, [r1] asrs r0, r1 strh r0, [r4, 0x20] movs r1, 0x30 ldrsh r0, [r4, r1] ldr r1, _080EE3FC @ =gUnknown_203AB24 ldrh r1, [r1] asrs r0, r1 strh r0, [r4, 0x22] ldr r1, _080EE400 @ =gUnknown_203AB1C ldrh r0, [r1] cmp r0, 0 beq _080EE3A4 lsls r0, r2, 16 cmp r0, 0 bge _080EE3A4 movs r2, 0x38 ldrsh r0, [r4, r2] ldrh r1, [r1] asrs r0, r1 strh r0, [r4, 0x26] _080EE3A4: movs r0, 0x3C ldrsh r1, [r4, r0] ldr r0, _080EE404 @ =gUnknown_203AB18 ldrh r0, [r0] cmp r1, r0 ble _080EE3DC adds r3, r4, 0 adds r3, 0x3E ldrb r2, [r3] lsrs r1, r2, 2 movs r0, 0x1 eors r1, r0 ands r1, r0 lsls r1, 2 movs r0, 0x5 negs r0, r0 ands r0, r2 orrs r0, r1 strb r0, [r3] movs r2, 0x3C ldrsh r1, [r4, r2] ldr r0, _080EE408 @ =gUnknown_203AB1A ldrh r0, [r0] cmp r1, r0 ble _080EE3DC adds r0, r4, 0 bl DestroySprite _080EE3DC: movs r1, 0x22 ldrsh r0, [r4, r1] movs r2, 0x26 ldrsh r1, [r4, r2] adds r0, r1 cmp r0, 0xA0 bls _080EE3F0 adds r0, r4, 0 bl DestroySprite _080EE3F0: pop {r4} pop {r0} bx r0 .align 2, 0 _080EE3F8: .4byte gUnknown_203AB22 _080EE3FC: .4byte gUnknown_203AB24 _080EE400: .4byte gUnknown_203AB1C _080EE404: .4byte gUnknown_203AB18 _080EE408: .4byte gUnknown_203AB1A thumb_func_end sub_80EE350 thumb_func_start sub_80EE40C sub_80EE40C: @ 80EE40C push {r4,lr} adds r4, r0, 0 ldrh r1, [r4, 0x32] movs r2, 0x32 ldrsh r0, [r4, r2] cmp r0, 0 beq _080EE490 subs r0, r1, 0x1 strh r0, [r4, 0x32] ldrh r0, [r4, 0x30] adds r0, 0x1 strh r0, [r4, 0x30] lsls r0, 16 asrs r0, 20 strh r0, [r4, 0x22] cmp r0, 0x56 ble _080EE438 movs r0, 0x4A strh r0, [r4, 0x22] movs r0, 0x94 lsls r0, 3 strh r0, [r4, 0x30] _080EE438: adds r0, r4, 0 adds r0, 0x3F ldrb r1, [r0] movs r0, 0x10 ands r0, r1 cmp r0, 0 beq _080EE4D4 movs r1, 0x2E ldrsh r0, [r4, r1] cmp r0, 0 bne _080EE46C ldrh r0, [r4, 0x20] adds r1, r0, 0 adds r1, 0x1A strh r1, [r4, 0x20] lsls r0, r1, 16 asrs r0, 16 cmp r0, 0xBC ble _080EE486 movs r2, 0xBC lsls r2, 1 adds r0, r2, 0 subs r0, r1 strh r0, [r4, 0x20] movs r0, 0x1 b _080EE484 _080EE46C: ldrh r0, [r4, 0x20] adds r1, r0, 0 subs r1, 0x1A strh r1, [r4, 0x20] lsls r0, r1, 16 asrs r0, 16 cmp r0, 0x33 bgt _080EE486 movs r0, 0x68 subs r0, r1 strh r0, [r4, 0x20] movs r0, 0 _080EE484: strh r0, [r4, 0x2E] _080EE486: adds r0, r4, 0 movs r1, 0x1 bl StartSpriteAnim b _080EE4D4 _080EE490: movs r1, 0x34 ldrsh r0, [r4, r1] cmp r0, 0 beq _080EE49E adds r0, r4, 0 bl DestroySprite _080EE49E: adds r0, r4, 0 adds r0, 0x3F ldrb r1, [r0] movs r0, 0x10 ands r0, r1 cmp r0, 0 beq _080EE4B4 adds r0, r4, 0 movs r1, 0 bl StartSpriteAnim _080EE4B4: ldrh r0, [r4, 0x30] adds r0, 0x4 strh r0, [r4, 0x30] lsls r0, 16 asrs r0, 20 strh r0, [r4, 0x22] ldrh r0, [r4, 0x36] adds r0, 0x1 strh r0, [r4, 0x36] lsls r0, 16 asrs r0, 16 cmp r0, 0x32 ble _080EE4D4 adds r0, r4, 0 bl DestroySprite _080EE4D4: pop {r4} pop {r0} bx r0 thumb_func_end sub_80EE40C thumb_func_start sub_80EE4DC sub_80EE4DC: @ 80EE4DC push {lr} adds r2, r0, 0 adds r0, 0x3F ldrb r1, [r0] movs r0, 0x10 ands r0, r1 cmp r0, 0 beq _080EE4F2 adds r0, r2, 0 bl DestroySprite _080EE4F2: pop {r0} bx r0 thumb_func_end sub_80EE4DC thumb_func_start sub_80EE4F8 sub_80EE4F8: @ 80EE4F8 push {r4,lr} adds r4, r0, 0 ldr r0, _080EE520 @ =gUnknown_840BD88 movs r1, 0 movs r2, 0 movs r3, 0x9 bl CreateSprite lsls r0, 24 lsrs r0, 24 lsls r1, r0, 4 adds r1, r0 lsls r1, 2 ldr r0, _080EE524 @ =gSprites adds r1, r0 str r1, [r4, 0x18] pop {r4} pop {r0} bx r0 .align 2, 0 _080EE520: .4byte gUnknown_840BD88 _080EE524: .4byte gSprites thumb_func_end sub_80EE4F8 thumb_func_start sub_80EE528 sub_80EE528: @ 80EE528 push {r4-r6,lr} mov r6, r9 mov r5, r8 push {r5,r6} adds r4, r0, 0 adds r0, r2, 0 adds r5, r3, 0 lsls r1, 16 lsls r0, 16 lsls r5, 16 lsrs r5, 16 lsrs r2, r1, 16 mov r9, r2 asrs r1, 16 lsls r2, r1, 4 movs r3, 0 mov r8, r3 strh r2, [r4, 0x2E] lsrs r6, r0, 16 asrs r0, 16 subs r0, r1 lsls r0, 4 adds r1, r5, 0 bl __divsi3 strh r0, [r4, 0x30] strh r5, [r4, 0x32] strh r6, [r4, 0x34] mov r0, r8 strh r0, [r4, 0x36] mov r2, r9 strh r2, [r4, 0x20] movs r0, 0x64 strh r0, [r4, 0x22] ldr r0, _080EE57C @ =sub_80EE580 str r0, [r4, 0x1C] pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080EE57C: .4byte sub_80EE580 thumb_func_end sub_80EE528 thumb_func_start sub_80EE580 sub_80EE580: @ 80EE580 push {r4,lr} adds r2, r0, 0 ldrh r0, [r2, 0x36] adds r0, 0x1 strh r0, [r2, 0x36] lsls r0, 16 asrs r0, 16 cmp r0, 0x27 ble _080EE5A0 ldrh r1, [r2, 0x30] movs r3, 0x30 ldrsh r0, [r2, r3] cmp r0, 0x1 ble _080EE5A0 subs r0, r1, 0x1 strh r0, [r2, 0x30] _080EE5A0: ldrh r0, [r2, 0x30] ldrh r4, [r2, 0x2E] adds r0, r4 strh r0, [r2, 0x2E] lsls r0, 16 asrs r0, 20 strh r0, [r2, 0x20] ldrh r3, [r2, 0x34] movs r4, 0x34 ldrsh r1, [r2, r4] cmp r0, r1 blt _080EE5BE strh r3, [r2, 0x20] ldr r0, _080EE5C4 @ =SpriteCallbackDummy str r0, [r2, 0x1C] _080EE5BE: pop {r4} pop {r0} bx r0 .align 2, 0 _080EE5C4: .4byte SpriteCallbackDummy thumb_func_end sub_80EE580 thumb_func_start sub_80EE5C8 sub_80EE5C8: @ 80EE5C8 push {lr} movs r2, 0 ldr r0, [r0, 0x18] ldr r1, [r0, 0x1C] ldr r0, _080EE5E0 @ =sub_80EE580 cmp r1, r0 bne _080EE5D8 movs r2, 0x1 _080EE5D8: adds r0, r2, 0 pop {r1} bx r1 .align 2, 0 _080EE5E0: .4byte sub_80EE580 thumb_func_end sub_80EE5C8 thumb_func_start sub_80EE5E4 sub_80EE5E4: @ 80EE5E4 push {r4,lr} adds r4, r0, 0 ldr r0, [r4, 0x18] movs r1, 0x2 bl StartSpriteAnim ldr r0, [r4, 0x18] movs r1, 0 strh r1, [r0, 0x2E] ldr r0, [r4, 0x18] strh r1, [r0, 0x30] ldr r1, [r4, 0x18] movs r0, 0x3 strh r0, [r1, 0x26] ldr r1, [r4, 0x18] ldr r0, _080EE60C @ =sub_80EE610 str r0, [r1, 0x1C] pop {r4} pop {r0} bx r0 .align 2, 0 _080EE60C: .4byte sub_80EE610 thumb_func_end sub_80EE5E4 thumb_func_start sub_80EE610 sub_80EE610: @ 80EE610 push {r4,r5,lr} adds r4, r0, 0 movs r0, 0x2E ldrsh r5, [r4, r0] cmp r5, 0x1 beq _080EE646 cmp r5, 0x1 bgt _080EE626 cmp r5, 0 beq _080EE62C b _080EE69A _080EE626: cmp r5, 0x2 beq _080EE65C b _080EE69A _080EE62C: ldrh r0, [r4, 0x30] adds r0, 0x1 strh r0, [r4, 0x30] lsls r0, 16 asrs r0, 16 cmp r0, 0x8 ble _080EE69A adds r0, r4, 0 movs r1, 0x1 bl StartSpriteAnim strh r5, [r4, 0x26] b _080EE654 _080EE646: movs r0, 0x21 movs r1, 0x3F movs r2, 0x1 bl PlayCry3 movs r0, 0 strh r0, [r4, 0x30] _080EE654: ldrh r0, [r4, 0x2E] adds r0, 0x1 strh r0, [r4, 0x2E] b _080EE69A _080EE65C: ldrh r0, [r4, 0x32] adds r0, 0x1 strh r0, [r4, 0x32] lsls r0, 16 asrs r0, 16 cmp r0, 0x1 ble _080EE67C movs r0, 0 strh r0, [r4, 0x32] movs r1, 0 movs r2, 0x26 ldrsh r0, [r4, r2] cmp r0, 0 bne _080EE67A movs r1, 0x1 _080EE67A: strh r1, [r4, 0x26] _080EE67C: ldrh r0, [r4, 0x30] adds r0, 0x1 strh r0, [r4, 0x30] lsls r0, 16 asrs r0, 16 cmp r0, 0x30 ble _080EE69A adds r0, r4, 0 movs r1, 0 bl StartSpriteAnim movs r0, 0 strh r0, [r4, 0x26] ldr r0, _080EE6A0 @ =SpriteCallbackDummy str r0, [r4, 0x1C] _080EE69A: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080EE6A0: .4byte SpriteCallbackDummy thumb_func_end sub_80EE610 thumb_func_start sub_80EE6A4 sub_80EE6A4: @ 80EE6A4 push {r4,lr} adds r4, r0, 0 ldr r1, _080EE6F0 @ =gUnknown_203AB0A movs r0, 0x10 strh r0, [r1] ldr r1, _080EE6F4 @ =gUnknown_203AB04 movs r0, 0x3 strh r0, [r1] ldr r1, _080EE6F8 @ =gUnknown_203AB08 movs r0, 0x5 strh r0, [r1] ldr r1, _080EE6FC @ =gUnknown_203AB06 movs r0, 0 strh r0, [r1] ldr r0, [r4, 0x18] movs r1, 0x2 bl StartSpriteAnim ldr r0, [r4, 0x18] movs r1, 0 strh r1, [r0, 0x2E] ldr r0, [r4, 0x18] strh r1, [r0, 0x30] ldr r0, [r4, 0x18] strh r1, [r0, 0x32] ldr r0, [r4, 0x18] strh r1, [r0, 0x34] ldr r0, [r4, 0x18] strh r1, [r0, 0x36] ldr r1, [r4, 0x18] movs r0, 0x28 strh r0, [r1, 0x3C] ldr r1, [r4, 0x18] ldr r0, _080EE700 @ =sub_80EE704 str r0, [r1, 0x1C] pop {r4} pop {r0} bx r0 .align 2, 0 _080EE6F0: .4byte gUnknown_203AB0A _080EE6F4: .4byte gUnknown_203AB04 _080EE6F8: .4byte gUnknown_203AB08 _080EE6FC: .4byte gUnknown_203AB06 _080EE700: .4byte sub_80EE704 thumb_func_end sub_80EE6A4 thumb_func_start sub_80EE704 sub_80EE704: @ 80EE704 push {r4,r5,lr} adds r4, r0, 0 movs r1, 0x2E ldrsh r0, [r4, r1] cmp r0, 0x1 beq _080EE740 cmp r0, 0x1 bgt _080EE71A cmp r0, 0 beq _080EE726 b _080EE846 _080EE71A: cmp r0, 0x2 beq _080EE7C4 cmp r0, 0x3 bne _080EE724 b _080EE824 _080EE724: b _080EE846 _080EE726: ldrh r0, [r4, 0x30] adds r0, 0x1 strh r0, [r4, 0x30] lsls r0, 16 asrs r0, 16 cmp r0, 0x4 bgt _080EE736 b _080EE846 _080EE736: adds r0, r4, 0 movs r1, 0x3 bl StartSpriteAnim b _080EE818 _080EE740: ldrh r2, [r4, 0x3C] ldrh r3, [r4, 0x32] adds r1, r2, r3 movs r5, 0 strh r1, [r4, 0x32] ldrh r0, [r4, 0x34] adds r0, 0x8 strh r0, [r4, 0x34] lsls r1, 16 asrs r1, 20 strh r1, [r4, 0x24] ldr r1, _080EE7B0 @ =gUnknown_825E074 movs r3, 0x34 ldrsh r0, [r4, r3] lsls r0, 1 adds r0, r1 movs r3, 0 ldrsh r1, [r0, r3] ldr r0, _080EE7B4 @ =gUnknown_203AB04 ldrh r0, [r0] muls r0, r1 ldr r1, _080EE7B8 @ =gUnknown_203AB08 ldrh r1, [r1] asrs r0, r1 negs r0, r0 strh r0, [r4, 0x26] ldrh r0, [r4, 0x38] adds r0, 0x1 strh r0, [r4, 0x38] movs r0, 0x38 ldrsh r1, [r4, r0] ldr r0, _080EE7BC @ =gUnknown_203AB06 ldrh r0, [r0] cmp r1, r0 ble _080EE78C strh r5, [r4, 0x38] subs r0, r2, 0x1 strh r0, [r4, 0x3C] _080EE78C: ldrh r0, [r4, 0x36] adds r0, 0x1 strh r0, [r4, 0x36] lsls r0, 16 asrs r0, 16 cmp r0, 0xF ble _080EE846 adds r0, r4, 0 movs r1, 0x2 bl StartSpriteAnim strh r5, [r4, 0x30] ldr r0, _080EE7C0 @ =0x00004757 strh r0, [r4, 0x3A] movs r0, 0x1C strh r0, [r4, 0x3C] b _080EE818 .align 2, 0 _080EE7B0: .4byte gUnknown_825E074 _080EE7B4: .4byte gUnknown_203AB04 _080EE7B8: .4byte gUnknown_203AB08 _080EE7BC: .4byte gUnknown_203AB06 _080EE7C0: .4byte 0x00004757 _080EE7C4: ldrh r0, [r4, 0x3C] ldrh r1, [r4, 0x32] adds r0, r1 strh r0, [r4, 0x32] lsls r0, 16 asrs r1, r0, 20 strh r1, [r4, 0x24] ldrh r0, [r4, 0x30] adds r0, 0x1 strh r0, [r4, 0x30] lsls r0, 16 asrs r0, 16 cmp r0, 0x6 ble _080EE804 ldrh r0, [r4, 0x20] adds r0, r1 lsls r0, 16 asrs r0, 16 ldrh r1, [r4, 0x26] ldrh r2, [r4, 0x22] adds r1, r2 lsls r1, 16 asrs r1, 16 movs r3, 0x3A ldrsh r2, [r4, r3] bl sub_80EE864 movs r0, 0x3A ldrsh r1, [r4, r0] ldr r0, _080EE820 @ =0x41c64e6d muls r0, r1 strh r0, [r4, 0x3A] _080EE804: movs r1, 0x30 ldrsh r0, [r4, r1] cmp r0, 0xC ble _080EE846 adds r0, r4, 0 movs r1, 0 bl StartSpriteAnim movs r0, 0 strh r0, [r4, 0x30] _080EE818: ldrh r0, [r4, 0x2E] adds r0, 0x1 strh r0, [r4, 0x2E] b _080EE846 .align 2, 0 _080EE820: .4byte 0x41c64e6d _080EE824: ldrh r0, [r4, 0x30] adds r0, 0x1 strh r0, [r4, 0x30] lsls r0, 16 asrs r0, 16 cmp r0, 0x10 ble _080EE846 ldr r0, _080EE84C @ =gUnknown_203AB0A ldrh r1, [r0] ldrh r2, [r4, 0x24] negs r2, r2 lsls r2, 16 asrs r2, 16 adds r0, r4, 0 movs r3, 0x4 bl sub_80EE970 _080EE846: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080EE84C: .4byte gUnknown_203AB0A thumb_func_end sub_80EE704 thumb_func_start sub_80EE850 sub_80EE850: @ 80EE850 ldr r0, [r0, 0x18] ldr r1, [r0, 0x1C] ldr r0, _080EE860 @ =SpriteCallbackDummy eors r1, r0 negs r0, r1 orrs r0, r1 lsrs r0, 31 bx lr .align 2, 0 _080EE860: .4byte SpriteCallbackDummy thumb_func_end sub_80EE850 thumb_func_start sub_80EE864 sub_80EE864: @ 80EE864 push {r4-r7,lr} mov r7, r8 push {r7} lsls r2, 16 lsrs r5, r2, 16 movs r6, 0 lsls r0, 16 ldr r2, _080EE8D4 @ =0xffea0000 adds r2, r0 mov r8, r2 lsls r1, 16 movs r0, 0xC0 lsls r0, 13 adds r7, r1, r0 _080EE880: ldr r0, _080EE8D8 @ =gUnknown_840BEC4 mov r2, r8 asrs r1, r2, 16 asrs r2, r7, 16 movs r3, 0xA bl CreateSprite lsls r0, 24 lsrs r1, r0, 24 cmp r1, 0x40 beq _080EE8C4 ldr r0, _080EE8DC @ =gSprites lsls r4, r1, 4 adds r4, r1 lsls r4, 2 adds r4, r0 lsls r5, 16 asrs r5, 16 adds r0, r5, 0 movs r1, 0xD bl __modsi3 adds r0, 0x8 strh r0, [r4, 0x34] adds r0, r5, 0 movs r1, 0x3 bl __modsi3 strh r0, [r4, 0x36] strh r6, [r4, 0x3C] ldr r0, _080EE8E0 @ =0x41c64e6d muls r0, r5 lsls r0, 16 lsrs r5, r0, 16 _080EE8C4: adds r6, 0x1 cmp r6, 0x1 ble _080EE880 pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080EE8D4: .4byte 0xffea0000 _080EE8D8: .4byte gUnknown_840BEC4 _080EE8DC: .4byte gSprites _080EE8E0: .4byte 0x41c64e6d thumb_func_end sub_80EE864 thumb_func_start sub_80EE8E4 sub_80EE8E4: @ 80EE8E4 push {r4,r5,lr} adds r5, r0, 0 adds r4, r5, 0 adds r4, 0x2E movs r1, 0x2E ldrsh r0, [r5, r1] cmp r0, 0 beq _080EE8FA cmp r0, 0x1 beq _080EE90C b _080EE93E _080EE8FA: ldrh r0, [r5, 0x20] lsls r0, 4 strh r0, [r4, 0x2] ldrh r0, [r5, 0x22] lsls r0, 4 strh r0, [r4, 0x4] ldrh r0, [r5, 0x2E] adds r0, 0x1 strh r0, [r5, 0x2E] _080EE90C: 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, 20 strh r1, [r5, 0x20] ldrh r0, [r4, 0x4] lsls r0, 16 asrs r0, 20 strh r0, [r5, 0x22] adds r0, r5, 0 adds r0, 0x3F ldrb r1, [r0] movs r0, 0x10 ands r0, r1 cmp r0, 0 beq _080EE93E adds r0, r5, 0 bl DestroySprite _080EE93E: ldrh r0, [r4, 0xE] adds r0, 0x1 strh r0, [r4, 0xE] lsls r0, 16 asrs r0, 16 cmp r0, 0x1 ble _080EE96A movs r0, 0 strh r0, [r4, 0xE] adds r3, r5, 0 adds r3, 0x3E ldrb r2, [r3] lsls r0, r2, 29 lsrs r0, 31 movs r1, 0x1 eors r1, r0 lsls r1, 2 movs r0, 0x5 negs r0, r0 ands r0, r2 orrs r0, r1 strb r0, [r3] _080EE96A: pop {r4,r5} pop {r0} bx r0 thumb_func_end sub_80EE8E4 thumb_func_start sub_80EE970 sub_80EE970: @ 80EE970 push {r4-r6,lr} mov r6, r8 push {r6} adds r4, r0, 0 adds r5, r1, 0 adds r0, r2, 0 adds r6, r3, 0 lsls r5, 16 lsrs r5, 16 lsls r6, 24 lsrs r6, 24 movs r1, 0 mov r8, r1 mov r1, r8 strh r1, [r4, 0x2E] strh r5, [r4, 0x30] ldrh r1, [r4, 0x24] lsls r1, 4 strh r1, [r4, 0x32] lsls r0, 16 asrs r0, 12 adds r1, r5, 0 bl __divsi3 strh r0, [r4, 0x34] mov r0, r8 strh r0, [r4, 0x36] movs r0, 0x80 lsls r0, 4 adds r1, r5, 0 bl __divsi3 strh r0, [r4, 0x38] mov r1, r8 strh r1, [r4, 0x3A] strh r6, [r4, 0x3C] adds r0, r4, 0 movs r1, 0x2 bl StartSpriteAnim ldr r0, _080EE9D0 @ =sub_80EE9D4 str r0, [r4, 0x1C] pop {r3} mov r8, r3 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080EE9D0: .4byte sub_80EE9D4 thumb_func_end sub_80EE970 thumb_func_start sub_80EE9D4 sub_80EE9D4: @ 80EE9D4 push {r4,r5,lr} adds r4, r0, 0 movs r0, 0x2E ldrsh r5, [r4, r0] cmp r5, 0x1 beq _080EEA08 cmp r5, 0x1 bgt _080EE9EA cmp r5, 0 beq _080EE9F0 b _080EEA88 _080EE9EA: cmp r5, 0x2 beq _080EEA6E b _080EEA88 _080EE9F0: ldrh r0, [r4, 0x3A] adds r0, 0x1 strh r0, [r4, 0x3A] lsls r0, 16 asrs r0, 16 cmp r0, 0x4 ble _080EEA88 adds r0, r4, 0 movs r1, 0x3 bl StartSpriteAnim b _080EEA64 _080EEA08: ldrh r0, [r4, 0x30] subs r0, 0x1 strh r0, [r4, 0x30] lsls r0, 16 asrs r5, r0, 16 cmp r5, 0 beq _080EEA4C ldrh r1, [r4, 0x34] ldrh r2, [r4, 0x32] adds r1, r2 strh r1, [r4, 0x32] ldrh r0, [r4, 0x38] ldrh r2, [r4, 0x36] adds r0, r2 strh r0, [r4, 0x36] lsls r1, 16 asrs r1, 20 strh r1, [r4, 0x24] ldr r1, _080EEA48 @ =gUnknown_825E074 lsls r0, 16 asrs r0, 20 lsls r0, 1 adds r0, r1 movs r1, 0 ldrsh r0, [r0, r1] movs r2, 0x3C ldrsh r1, [r4, r2] asrs r0, r1 negs r0, r0 strh r0, [r4, 0x26] b _080EEA88 .align 2, 0 _080EEA48: .4byte gUnknown_825E074 _080EEA4C: ldrh r0, [r4, 0x32] lsrs r0, 4 strh r0, [r4, 0x24] strh r5, [r4, 0x26] adds r0, r4, 0 movs r1, 0x2 bl StartSpriteAnim movs r1, 0x3C ldrsh r0, [r4, r1] cmp r0, 0x5 beq _080EEA84 _080EEA64: strh r5, [r4, 0x3A] ldrh r0, [r4, 0x2E] adds r0, 0x1 strh r0, [r4, 0x2E] b _080EEA88 _080EEA6E: ldrh r0, [r4, 0x3A] adds r0, 0x1 strh r0, [r4, 0x3A] lsls r0, 16 asrs r0, 16 cmp r0, 0x4 ble _080EEA88 adds r0, r4, 0 movs r1, 0 bl StartSpriteAnim _080EEA84: ldr r0, _080EEA90 @ =SpriteCallbackDummy str r0, [r4, 0x1C] _080EEA88: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080EEA90: .4byte SpriteCallbackDummy thumb_func_end sub_80EE9D4 thumb_func_start sub_80EEA94 sub_80EEA94: @ 80EEA94 push {r4,lr} adds r4, r0, 0 ldr r0, [r4, 0x18] movs r2, 0 strh r2, [r0, 0x2E] ldr r0, [r4, 0x18] strh r2, [r0, 0x30] ldr r0, [r4, 0x18] strh r2, [r0, 0x32] ldr r0, [r4, 0x18] strh r2, [r0, 0x34] ldr r0, [r4, 0x18] strh r2, [r0, 0x36] ldr r0, [r4, 0x18] strh r2, [r0, 0x38] ldr r1, [r4, 0x18] ldrh r0, [r1, 0x24] ldrh r3, [r1, 0x20] adds r0, r3 strh r0, [r1, 0x20] ldr r0, [r4, 0x18] strh r2, [r0, 0x24] ldr r1, _080EEAF4 @ =gUnknown_203AB0C movs r0, 0x24 strh r0, [r1] ldr r1, _080EEAF8 @ =gUnknown_203AB06 movs r0, 0x28 strh r0, [r1] ldr r1, _080EEAFC @ =gUnknown_203AB04 movs r0, 0x3 strh r0, [r1] ldr r1, _080EEB00 @ =gUnknown_203AB08 movs r0, 0x4 strh r0, [r1] ldr r1, [r4, 0x18] movs r0, 0x24 strh r0, [r1, 0x3C] ldr r0, [r4, 0x18] movs r1, 0x2 bl StartSpriteAnim ldr r1, [r4, 0x18] ldr r0, _080EEB04 @ =sub_80EEB08 str r0, [r1, 0x1C] pop {r4} pop {r0} bx r0 .align 2, 0 _080EEAF4: .4byte gUnknown_203AB0C _080EEAF8: .4byte gUnknown_203AB06 _080EEAFC: .4byte gUnknown_203AB04 _080EEB00: .4byte gUnknown_203AB08 _080EEB04: .4byte sub_80EEB08 thumb_func_end sub_80EEA94 thumb_func_start sub_80EEB08 sub_80EEB08: @ 80EEB08 push {r4,r5,lr} adds r4, r0, 0 movs r1, 0x2E ldrsh r0, [r4, r1] cmp r0, 0x1 beq _080EEB58 cmp r0, 0x1 bgt _080EEB1E cmp r0, 0 beq _080EEB24 b _080EEBCE _080EEB1E: cmp r0, 0x2 beq _080EEB84 b _080EEBCE _080EEB24: ldrh r0, [r4, 0x30] adds r0, 0x1 strh r0, [r4, 0x30] movs r1, 0x1 ands r0, r1 cmp r0, 0 beq _080EEB4A ldrh r0, [r4, 0x32] adds r0, 0x1 strh r0, [r4, 0x32] ands r0, r1 cmp r0, 0 beq _080EEB44 ldrh r0, [r4, 0x24] adds r0, 0x1 b _080EEB48 _080EEB44: ldrh r0, [r4, 0x24] subs r0, 0x1 _080EEB48: strh r0, [r4, 0x24] _080EEB4A: movs r3, 0x30 ldrsh r0, [r4, r3] cmp r0, 0x11 ble _080EEBCE movs r0, 0 strh r0, [r4, 0x30] b _080EEB78 _080EEB58: ldrh r0, [r4, 0x30] adds r0, 0x1 movs r5, 0 strh r0, [r4, 0x30] lsls r0, 16 asrs r0, 16 ldr r1, _080EEB80 @ =gUnknown_203AB06 ldrh r1, [r1] cmp r0, r1 blt _080EEBCE adds r0, r4, 0 movs r1, 0x4 bl StartSpriteAnim strh r5, [r4, 0x30] strh r5, [r4, 0x32] _080EEB78: ldrh r0, [r4, 0x2E] adds r0, 0x1 strh r0, [r4, 0x2E] b _080EEBCE .align 2, 0 _080EEB80: .4byte gUnknown_203AB06 _080EEB84: ldrh r2, [r4, 0x3C] ldrh r1, [r4, 0x30] adds r0, r2, r1 strh r0, [r4, 0x30] lsls r0, 16 asrs r0, 20 negs r1, r0 strh r1, [r4, 0x24] ldr r1, _080EEBD4 @ =gUnknown_825E074 lsls r0, 1 adds r0, r1 movs r3, 0 ldrsh r1, [r0, r3] ldr r0, _080EEBD8 @ =gUnknown_203AB04 ldrh r0, [r0] muls r0, r1 ldr r1, _080EEBDC @ =gUnknown_203AB08 ldrh r1, [r1] asrs r0, r1 negs r0, r0 strh r0, [r4, 0x26] ldrh r0, [r4, 0x32] adds r0, 0x1 strh r0, [r4, 0x32] lsls r0, r2, 16 asrs r0, 16 cmp r0, 0xC ble _080EEBC0 subs r0, r2, 0x1 strh r0, [r4, 0x3C] _080EEBC0: ldrh r0, [r4, 0x30] lsls r0, 16 asrs r0, 20 cmp r0, 0x3F ble _080EEBCE ldr r0, _080EEBE0 @ =SpriteCallbackDummy str r0, [r4, 0x1C] _080EEBCE: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080EEBD4: .4byte gUnknown_825E074 _080EEBD8: .4byte gUnknown_203AB04 _080EEBDC: .4byte gUnknown_203AB08 _080EEBE0: .4byte SpriteCallbackDummy thumb_func_end sub_80EEB08 thumb_func_start sub_80EEBE4 sub_80EEBE4: @ 80EEBE4 push {r4,r5,lr} movs r5, 0 ldr r4, _080EEC04 @ =gUnknown_840BEDC _080EEBEA: adds r0, r4, 0 bl LoadCompressedObjectPic adds r4, 0x8 adds r5, 0x1 cmp r5, 0x6 bls _080EEBEA ldr r0, _080EEC08 @ =gUnknown_840BF14 bl LoadSpritePalettes pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080EEC04: .4byte gUnknown_840BEDC _080EEC08: .4byte gUnknown_840BF14 thumb_func_end sub_80EEBE4 .align 2, 0 @ Don't pad with nop.