.include "asm/macros.inc" .include "constants/constants.inc" .syntax unified .text thumb_func_start sub_812E944 sub_812E944: @ 812E944 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} mov r10, r0 adds r0, r1, 0 adds r5, r2, 0 adds r6, r3, 0 ldr r1, [sp, 0x20] mov r8, r1 ldr r1, [sp, 0x24] mov r2, r10 lsls r2, 24 lsrs r2, 24 mov r10, r2 lsls r0, 24 lsrs r7, r0, 24 lsls r5, 24 lsrs r5, 24 lsls r6, 24 lsrs r6, 24 mov r0, r8 lsls r0, 24 lsrs r0, 24 mov r8, r0 lsls r1, 24 lsrs r1, 24 ldr r0, _0812E9DC @ =sub_812E9F8 bl CreateTask lsls r0, 24 lsrs r0, 24 ldr r1, _0812E9E0 @ =gTasks lsls r4, r0, 2 adds r4, r0 lsls r4, 3 adds r4, r1 mov r1, r10 lsls r0, r1, 8 strh r0, [r4, 0x8] lsls r2, r7, 8 mov r9, r2 strh r2, [r4, 0xA] strh r5, [r4, 0xC] strh r6, [r4, 0xE] subs r5, r1 lsls r5, 8 adds r0, r5, 0 mov r1, r8 bl __divsi3 strh r0, [r4, 0x10] subs r6, r7 lsls r6, 8 adds r0, r6, 0 mov r1, r8 bl __divsi3 strh r0, [r4, 0x12] mov r0, r8 strh r0, [r4, 0x18] mov r1, r9 mov r2, r10 orrs r1, r2 mov r9, r1 movs r0, 0x52 bl SetGpuReg pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0812E9DC: .4byte sub_812E9F8 _0812E9E0: .4byte gTasks thumb_func_end sub_812E944 thumb_func_start sub_812E9E4 sub_812E9E4: @ 812E9E4 push {lr} ldr r0, _0812E9F4 @ =sub_812E9F8 bl FuncIsActiveTask lsls r0, 24 lsrs r0, 24 pop {r1} bx r1 .align 2, 0 _0812E9F4: .4byte sub_812E9F8 thumb_func_end sub_812E9E4 thumb_func_start sub_812E9F8 sub_812E9F8: @ 812E9F8 push {r4,r5,lr} lsls r0, 24 lsrs r5, r0, 24 lsls r0, r5, 2 adds r0, r5 lsls r0, 3 ldr r1, _0812EA28 @ =gTasks+0x8 adds r4, r0, r1 ldrh r1, [r4, 0x10] movs r2, 0x10 ldrsh r0, [r4, r2] cmp r0, 0 beq _0812EA6E movs r2, 0xC ldrsh r0, [r4, r2] cmp r0, 0 bne _0812EA2C ldrh r0, [r4, 0x8] ldrh r1, [r4] adds r0, r1 strh r0, [r4] movs r0, 0x1 b _0812EA4C .align 2, 0 _0812EA28: .4byte gTasks+0x8 _0812EA2C: subs r0, r1, 0x1 strh r0, [r4, 0x10] lsls r0, 16 cmp r0, 0 beq _0812EA3E ldrh r0, [r4, 0xA] ldrh r2, [r4, 0x2] adds r0, r2 b _0812EA48 _0812EA3E: ldrh r0, [r4, 0x4] lsls r0, 8 strh r0, [r4] ldrh r0, [r4, 0x6] lsls r0, 8 _0812EA48: strh r0, [r4, 0x2] movs r0, 0 _0812EA4C: strh r0, [r4, 0xC] ldrh r0, [r4, 0x2] ldr r1, _0812EA74 @ =0xffffff00 ands r1, r0 ldrh r0, [r4] lsrs r0, 8 orrs r1, r0 movs r0, 0x52 bl SetGpuReg movs r1, 0x10 ldrsh r0, [r4, r1] cmp r0, 0 bne _0812EA6E adds r0, r5, 0 bl DestroyTask _0812EA6E: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0812EA74: .4byte 0xffffff00 thumb_func_end sub_812E9F8 thumb_func_start sub_812EA78 sub_812EA78: @ 812EA78 push {r4,r5,lr} lsls r0, 16 lsrs r4, r0, 16 lsls r2, 24 lsrs r5, r2, 24 cmp r4, 0xC9 bne _0812EAB8 adds r0, r1, 0 bl sub_8082AB8 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1A beq _0812EAA4 cmp r0, 0x1A bgt _0812EA9E cmp r0, 0 beq _0812EAB8 b _0812EAB4 _0812EA9E: cmp r0, 0x1B beq _0812EAAA b _0812EAB4 _0812EAA4: movs r4, 0xCE lsls r4, 1 b _0812EABC _0812EAAA: ldr r4, _0812EAB0 @ =0x0000019d b _0812EABC .align 2, 0 _0812EAB0: .4byte 0x0000019d _0812EAB4: adds r4, r0, 0 adds r4, 0xFB _0812EAB8: cmp r4, 0 beq _0812EAD6 _0812EABC: cmp r5, 0x4 bhi _0812EAD6 subs r0, r4, 0x1 lsls r0, 16 lsrs r4, r0, 16 ldr r1, _0812EAE0 @ =gUnknown_845FD54 lsls r0, r4, 2 adds r0, r4 adds r0, r5, r0 adds r2, r0, r1 ldrb r0, [r2] cmp r0, 0xFF bne _0812EAD8 _0812EAD6: movs r0, 0x20 _0812EAD8: pop {r4,r5} pop {r1} bx r1 .align 2, 0 _0812EAE0: .4byte gUnknown_845FD54 thumb_func_end sub_812EA78 thumb_func_start sub_812EAE4 sub_812EAE4: @ 812EAE4 push {lr} lsls r0, 16 lsrs r0, 16 lsls r2, 24 lsrs r2, 24 bl sub_812EA78 subs r0, 0x20 lsls r0, 24 asrs r0, 24 pop {r1} bx r1 thumb_func_end sub_812EAE4 thumb_func_start sub_812EAFC sub_812EAFC: @ 812EAFC push {lr} bl LoadOam bl ProcessSpriteCopyRequests bl TransferPlttBuffer pop {r0} bx r0 thumb_func_end sub_812EAFC thumb_func_start sub_812EB10 sub_812EB10: @ 812EB10 push {lr} bl RunTasks bl RunTextPrinters bl AnimateSprites bl BuildOamBuffer bl UpdatePaletteFade pop {r0} bx r0 thumb_func_end sub_812EB10 thumb_func_start sub_812EB2C sub_812EB2C: @ 812EB2C push {lr} ldr r0, _0812EB48 @ =gPlttBufferUnfaded movs r1, 0 strh r1, [r0] ldr r0, _0812EB4C @ =gPlttBufferFaded strh r1, [r0] ldr r0, _0812EB50 @ =sub_812EB58 bl CreateTask ldr r0, _0812EB54 @ =sub_812EB10 bl SetMainCallback2 pop {r0} bx r0 .align 2, 0 _0812EB48: .4byte gPlttBufferUnfaded _0812EB4C: .4byte gPlttBufferFaded _0812EB50: .4byte sub_812EB58 _0812EB54: .4byte sub_812EB10 thumb_func_end sub_812EB2C thumb_func_start sub_812EB58 sub_812EB58: @ 812EB58 push {r4-r6,lr} sub sp, 0x10 lsls r0, 24 lsrs r6, r0, 24 ldr r0, _0812EB7C @ =gMain movs r1, 0x87 lsls r1, 3 adds r0, r1 ldrb r0, [r0] cmp r0, 0xA bls _0812EB70 b _0812EE94 _0812EB70: lsls r0, 2 ldr r1, _0812EB80 @ =_0812EB84 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _0812EB7C: .4byte gMain _0812EB80: .4byte _0812EB84 .align 2, 0 _0812EB84: .4byte _0812EBB0 .4byte _0812EC28 .4byte _0812EC44 .4byte _0812EC8E .4byte _0812ED00 .4byte _0812ED3C .4byte _0812ED6C .4byte _0812ED9A .4byte _0812EE94 .4byte _0812EE94 .4byte _0812EE30 _0812EBB0: movs r0, 0 bl SetVBlankCallback movs r0, 0 bl SetHBlankCallback add r1, sp, 0x8 movs r0, 0 strh r0, [r1] ldr r1, _0812EC14 @ =0x040000d4 add r0, sp, 0x8 str r0, [r1] movs r0, 0xC0 lsls r0, 19 str r0, [r1, 0x4] ldr r0, _0812EC18 @ =0x8100c000 str r0, [r1, 0x8] ldr r0, [r1, 0x8] movs r2, 0 str r2, [sp, 0xC] add r0, sp, 0xC str r0, [r1] movs r0, 0xE0 lsls r0, 19 str r0, [r1, 0x4] ldr r0, _0812EC1C @ =0x85000100 str r0, [r1, 0x8] ldr r0, [r1, 0x8] add r0, sp, 0x8 strh r2, [r0] str r0, [r1] ldr r0, _0812EC20 @ =0x05000002 str r0, [r1, 0x4] ldr r0, _0812EC24 @ =0x810001ff str r0, [r1, 0x8] ldr r0, [r1, 0x8] bl ResetPaletteFade bl remove_some_task bl ResetSpriteData bl FreeAllSpritePalettes bl reset_temp_tile_data_buffers movs r0, 0x2 bl sub_812B1F0 b _0812EE94 .align 2, 0 _0812EC14: .4byte 0x040000d4 _0812EC18: .4byte 0x8100c000 _0812EC1C: .4byte 0x85000100 _0812EC20: .4byte 0x05000002 _0812EC24: .4byte 0x810001ff _0812EC28: ldr r4, _0812EC3C @ =gUnknown_203B108 ldr r0, _0812EC40 @ =0x00002420 bl AllocZeroed str r0, [r4] movs r0, 0x1 movs r1, 0x1 bl sub_8044AF0 b _0812EE94 .align 2, 0 _0812EC3C: .4byte gUnknown_203B108 _0812EC40: .4byte 0x00002420 _0812EC44: movs r0, 0x40 movs r1, 0 bl SetGpuReg movs r0, 0x44 movs r1, 0 bl SetGpuReg movs r0, 0x42 movs r1, 0 bl SetGpuReg movs r0, 0x46 movs r1, 0 bl SetGpuReg movs r0, 0x48 movs r1, 0 bl SetGpuReg movs r0, 0x4A movs r1, 0 bl SetGpuReg movs r0, 0x50 movs r1, 0 bl SetGpuReg movs r0, 0x52 movs r1, 0 bl SetGpuReg movs r0, 0x54 movs r1, 0 bl SetGpuReg b _0812EE94 _0812EC8E: movs r0, 0 bl ResetBgsAndClearDma3BusyFlags ldr r1, _0812ECF0 @ =gUnknown_8462E58 movs r0, 0x1 movs r2, 0x3 bl InitBgsFromTemplates ldr r4, _0812ECF4 @ =gUnknown_203B108 ldr r1, [r4] movs r0, 0xE1 lsls r0, 5 adds r1, r0 movs r0, 0x1 bl SetBgTilemapBuffer ldr r1, [r4] movs r0, 0xC1 lsls r0, 5 adds r1, r0 movs r0, 0x2 bl SetBgTilemapBuffer movs r0, 0x1 movs r1, 0 movs r2, 0 bl ChangeBgX movs r0, 0x1 movs r1, 0 movs r2, 0 bl ChangeBgY movs r0, 0x2 movs r1, 0 movs r2, 0 bl ChangeBgX movs r0, 0x2 movs r1, 0 movs r2, 0 bl ChangeBgY ldr r0, _0812ECF8 @ =gSpriteCoordOffsetX movs r1, 0 strh r1, [r0] ldr r0, _0812ECFC @ =gSpriteCoordOffsetY strh r1, [r0] b _0812EE94 .align 2, 0 _0812ECF0: .4byte gUnknown_8462E58 _0812ECF4: .4byte gUnknown_203B108 _0812ECF8: .4byte gSpriteCoordOffsetX _0812ECFC: .4byte gSpriteCoordOffsetY _0812ED00: ldr r2, _0812ED34 @ =gPaletteFade ldrb r0, [r2, 0x8] movs r1, 0x80 orrs r0, r1 strb r0, [r2, 0x8] bl sub_80F6C6C bl sub_80F6C98 movs r0, 0xD0 bl sub_80F77CC ldr r0, _0812ED38 @ =gUnknown_8460568 movs r1, 0 movs r2, 0x80 bl LoadPalette movs r0, 0x2 bl stdpal_get adds r0, 0x1E movs r1, 0 movs r2, 0x2 bl LoadPalette b _0812EE94 .align 2, 0 _0812ED34: .4byte gPaletteFade _0812ED38: .4byte gUnknown_8460568 _0812ED3C: bl sub_80F78A8 ldr r1, _0812ED60 @ =gUnknown_203B108 ldr r1, [r1] movs r3, 0 strb r0, [r1, 0x1F] ldr r2, _0812ED64 @ =gTextFlags ldrb r0, [r2] movs r1, 0x1 orrs r0, r1 strb r0, [r2] ldr r1, _0812ED68 @ =gUnknown_84605E8 str r3, [sp] movs r0, 0x1 movs r2, 0 bl decompress_and_copy_tile_data_to_vram b _0812EE94 .align 2, 0 _0812ED60: .4byte gUnknown_203B108 _0812ED64: .4byte gTextFlags _0812ED68: .4byte gUnknown_84605E8 _0812ED6C: bl free_temp_tile_data_buffers_if_possible lsls r0, 24 cmp r0, 0 beq _0812ED78 b _0812EEA2 _0812ED78: movs r0, 0 movs r1, 0x1 bl sub_80F6F54 movs r0, 0x20 str r0, [sp] str r0, [sp, 0x4] movs r0, 0x1 movs r1, 0 movs r2, 0 movs r3, 0 bl FillBgTilemapBufferRect_Palette0 movs r0, 0x1 bl CopyBgTilemapBufferToVram b _0812EE94 _0812ED9A: movs r0, 0xE2 lsls r0, 1 str r0, [sp] movs r0, 0 movs r1, 0x1E movs r2, 0 movs r3, 0xD bl sub_810F558 ldr r1, _0812EE1C @ =0x0000d00f movs r4, 0x1E str r4, [sp] movs r0, 0x2 str r0, [sp, 0x4] movs r0, 0x1 movs r2, 0 movs r3, 0 bl FillBgTilemapBufferRect_Palette0 ldr r1, _0812EE20 @ =0x0000d002 str r4, [sp] movs r5, 0x1 str r5, [sp, 0x4] movs r0, 0x1 movs r2, 0 movs r3, 0x2 bl FillBgTilemapBufferRect_Palette0 ldr r1, _0812EE24 @ =0x0000d00e str r4, [sp] str r5, [sp, 0x4] movs r0, 0x1 movs r2, 0 movs r3, 0x13 bl FillBgTilemapBufferRect_Palette0 bl sub_812EEB0 ldr r2, _0812EE28 @ =gPaletteFade ldrb r1, [r2, 0x8] movs r0, 0x7F ands r0, r1 strb r0, [r2, 0x8] movs r0, 0 str r0, [sp] movs r1, 0xE6 movs r2, 0x95 movs r3, 0 bl sub_8006300 ldr r2, _0812EE2C @ =gTasks lsls r1, r6, 2 adds r1, r6 lsls r1, 3 adds r1, r2 lsls r0, 24 lsrs r0, 24 strh r0, [r1, 0x12] movs r0, 0x1 negs r0, r0 movs r1, 0x10 movs r2, 0 bl BlendPalettes b _0812EE94 .align 2, 0 _0812EE1C: .4byte 0x0000d00f _0812EE20: .4byte 0x0000d002 _0812EE24: .4byte 0x0000d00e _0812EE28: .4byte gPaletteFade _0812EE2C: .4byte gTasks _0812EE30: movs r0, 0x1 negs r0, r0 movs r4, 0 str r4, [sp] movs r1, 0 movs r2, 0x10 movs r3, 0 bl BeginNormalPaletteFade movs r1, 0x82 lsls r1, 5 movs r0, 0 bl SetGpuReg movs r0, 0 bl ShowBg movs r0, 0x1 bl ShowBg ldr r0, _0812EE80 @ =sub_812EAFC bl SetVBlankCallback ldr r0, _0812EE84 @ =0x00000143 bl PlayBGM ldr r1, _0812EE88 @ =gTasks lsls r0, r6, 2 adds r0, r6 lsls r0, 3 adds r0, r1 ldr r1, _0812EE8C @ =sub_812F0B0 str r1, [r0] ldr r0, _0812EE90 @ =gMain movs r1, 0x87 lsls r1, 3 adds r0, r1 strb r4, [r0] b _0812EEA2 .align 2, 0 _0812EE80: .4byte sub_812EAFC _0812EE84: .4byte 0x00000143 _0812EE88: .4byte gTasks _0812EE8C: .4byte sub_812F0B0 _0812EE90: .4byte gMain _0812EE94: ldr r1, _0812EEAC @ =gMain movs r0, 0x87 lsls r0, 3 adds r1, r0 ldrb r0, [r1] adds r0, 0x1 strb r0, [r1] _0812EEA2: add sp, 0x10 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _0812EEAC: .4byte gMain thumb_func_end sub_812EB58 thumb_func_start sub_812EEB0 sub_812EEB0: @ 812EEB0 push {r4-r6,lr} sub sp, 0x14 ldr r0, _0812EF38 @ =gUnknown_8415D2C ldr r1, _0812EF3C @ =gUnknown_8415D48 movs r5, 0x1 str r5, [sp] movs r2, 0 movs r3, 0 bl sub_810F650 ldr r1, _0812EF40 @ =gUnknown_8462EB4 ldr r4, _0812EF44 @ =gUnknown_203B108 ldr r0, [r4] ldrh r0, [r0, 0x12] lsls r0, 2 adds r0, r1 ldr r0, [r0] bl AddWindow ldr r1, [r4] movs r6, 0 strh r0, [r1, 0x14] lsls r0, 24 lsrs r0, 24 bl PutWindowTilemap ldr r0, [r4] ldrb r0, [r0, 0x14] movs r1, 0 bl FillWindowPixelBuffer ldr r0, [r4] ldrb r0, [r0, 0x14] str r5, [sp] str r5, [sp, 0x4] ldr r1, _0812EF48 @ =gUnknown_8462EE8 str r1, [sp, 0x8] str r6, [sp, 0xC] ldr r1, _0812EF4C @ =gUnknown_81C582D str r1, [sp, 0x10] movs r1, 0x2 movs r2, 0x2 movs r3, 0 bl AddTextPrinterParametrized2 ldr r0, [r4] ldrb r0, [r0, 0x14] movs r1, 0x3 bl CopyWindowToVram movs r1, 0xC0 lsls r1, 6 movs r0, 0x5 str r0, [sp] movs r0, 0x10 str r0, [sp, 0x4] movs r0, 0x1 movs r2, 0x1 movs r3, 0x3 bl FillBgTilemapBufferRect_Palette0 movs r0, 0x1 bl CopyBgTilemapBufferToVram add sp, 0x14 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _0812EF38: .4byte gUnknown_8415D2C _0812EF3C: .4byte gUnknown_8415D48 _0812EF40: .4byte gUnknown_8462EB4 _0812EF44: .4byte gUnknown_203B108 _0812EF48: .4byte gUnknown_8462EE8 _0812EF4C: .4byte gUnknown_81C582D thumb_func_end sub_812EEB0 thumb_func_start sub_812EF50 sub_812EF50: @ 812EF50 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x14 lsls r0, 24 lsrs r0, 24 mov r8, r0 movs r6, 0 ldr r4, _0812EF80 @ =gUnknown_203B108 ldr r0, [r4] ldrh r1, [r0, 0x12] subs r0, r1, 0x1 lsls r0, 24 lsrs r7, r0, 24 cmp r1, 0 bne _0812EF84 bl sub_812EEB0 mov r0, r8 lsls r0, 2 mov r10, r0 b _0812F06A .align 2, 0 _0812EF80: .4byte gUnknown_203B108 _0812EF84: ldr r0, _0812F038 @ =gUnknown_8415D50 movs r1, 0 movs r2, 0x1 bl sub_810F5E8 lsls r1, r7, 1 mov r9, r1 mov r3, r8 lsls r3, 2 mov r10, r3 adds r5, r4, 0 _0812EF9A: ldr r1, _0812F03C @ =gUnknown_8462EB4 ldr r0, [r5] ldrh r0, [r0, 0x12] lsls r0, 2 adds r0, r1 lsls r1, r6, 3 ldr r0, [r0] adds r0, r1 bl AddWindow ldr r1, [r5] lsls r4, r6, 1 adds r1, 0x14 adds r1, r4 strh r0, [r1] lsls r0, 24 lsrs r0, 24 bl PutWindowTilemap ldr r0, [r5] adds r0, 0x14 adds r0, r4 ldrb r0, [r0] movs r1, 0 bl FillWindowPixelBuffer ldr r0, [r5] adds r0, 0x14 adds r0, r4 ldrb r0, [r0] movs r1, 0x1 str r1, [sp] str r1, [sp, 0x4] ldr r1, _0812F040 @ =gUnknown_8462EE8 str r1, [sp, 0x8] movs r1, 0 str r1, [sp, 0xC] ldr r2, _0812F044 @ =gUnknown_8463074 mov r3, r9 adds r1, r3, r7 adds r1, r6, r1 lsls r1, 2 adds r1, r2 ldr r1, [r1] str r1, [sp, 0x10] movs r1, 0x2 movs r2, 0x6 movs r3, 0 bl AddTextPrinterParametrized2 ldr r0, [r5] adds r0, 0x14 adds r0, r4 ldrb r0, [r0] movs r1, 0x3 bl CopyWindowToVram adds r0, r6, 0x1 lsls r0, 24 lsrs r6, r0, 24 cmp r6, 0x2 bls _0812EF9A ldr r0, _0812F048 @ =gUnknown_203B108 ldr r0, [r0] ldrh r0, [r0, 0x12] cmp r0, 0x1 bne _0812F050 ldr r1, _0812F04C @ =gUnknown_8460D94 movs r0, 0x5 str r0, [sp] movs r0, 0x10 str r0, [sp, 0x4] movs r0, 0x1 movs r2, 0x1 movs r3, 0x3 bl CopyToBgTilemapBufferRect b _0812F064 .align 2, 0 _0812F038: .4byte gUnknown_8415D50 _0812F03C: .4byte gUnknown_8462EB4 _0812F040: .4byte gUnknown_8462EE8 _0812F044: .4byte gUnknown_8463074 _0812F048: .4byte gUnknown_203B108 _0812F04C: .4byte gUnknown_8460D94 _0812F050: ldr r1, _0812F0A0 @ =gUnknown_8460E34 movs r0, 0x5 str r0, [sp] movs r0, 0x10 str r0, [sp, 0x4] movs r0, 0x1 movs r2, 0x1 movs r3, 0x3 bl CopyToBgTilemapBufferRect _0812F064: movs r0, 0x1 bl CopyBgTilemapBufferToVram _0812F06A: movs r0, 0x2 bl stdpal_get ldrh r2, [r0, 0x1E] ldr r0, _0812F0A4 @ =0xffffdfff movs r1, 0x1 negs r1, r1 str r2, [sp] movs r2, 0x10 movs r3, 0 bl BeginNormalPaletteFade ldr r1, _0812F0A8 @ =gTasks mov r0, r10 add r0, r8 lsls r0, 3 adds r0, r1 ldr r1, _0812F0AC @ =sub_812F0B0 str r1, [r0] add sp, 0x14 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0812F0A0: .4byte gUnknown_8460E34 _0812F0A4: .4byte 0xffffdfff _0812F0A8: .4byte gTasks _0812F0AC: .4byte sub_812F0B0 thumb_func_end sub_812EF50 thumb_func_start sub_812F0B0 sub_812F0B0: @ 812F0B0 push {r4,r5,lr} sub sp, 0x4 lsls r0, 24 lsrs r5, r0, 24 ldr r0, _0812F10C @ =gPaletteFade ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 bne _0812F162 ldr r0, _0812F110 @ =gMain ldrh r1, [r0, 0x2E] movs r0, 0x3 ands r0, r1 cmp r0, 0 beq _0812F162 movs r3, 0x1 adds r0, r3, 0 ands r0, r1 cmp r0, 0 beq _0812F120 ldr r1, _0812F114 @ =gTasks lsls r2, r5, 2 adds r0, r2, r5 lsls r0, 3 adds r0, r1 strh r3, [r0, 0x26] ldr r0, _0812F118 @ =gUnknown_203B108 ldr r0, [r0] ldrh r0, [r0, 0x12] adds r4, r2, 0 cmp r0, 0x1 bhi _0812F150 movs r0, 0x2 bl stdpal_get ldrh r2, [r0, 0x1E] ldr r0, _0812F11C @ =0xffffdfff movs r1, 0x1 negs r1, r1 str r2, [sp] movs r2, 0 movs r3, 0x10 bl BeginNormalPaletteFade b _0812F150 .align 2, 0 _0812F10C: .4byte gPaletteFade _0812F110: .4byte gMain _0812F114: .4byte gTasks _0812F118: .4byte gUnknown_203B108 _0812F11C: .4byte 0xffffdfff _0812F120: ldr r0, _0812F16C @ =gUnknown_203B108 ldr r0, [r0] ldrh r0, [r0, 0x12] cmp r0, 0 beq _0812F162 ldr r1, _0812F170 @ =gTasks lsls r4, r5, 2 adds r0, r4, r5 lsls r0, 3 adds r0, r1 ldr r1, _0812F174 @ =0x0000ffff strh r1, [r0, 0x26] movs r0, 0x2 bl stdpal_get ldrh r2, [r0, 0x1E] ldr r0, _0812F178 @ =0xffffdfff movs r1, 0x1 negs r1, r1 str r2, [sp] movs r2, 0 movs r3, 0x10 bl BeginNormalPaletteFade _0812F150: movs r0, 0x5 bl PlaySE ldr r0, _0812F170 @ =gTasks adds r1, r4, r5 lsls r1, 3 adds r1, r0 ldr r0, _0812F17C @ =sub_812F180 str r0, [r1] _0812F162: add sp, 0x4 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0812F16C: .4byte gUnknown_203B108 _0812F170: .4byte gTasks _0812F174: .4byte 0x0000ffff _0812F178: .4byte 0xffffdfff _0812F17C: .4byte sub_812F180 thumb_func_end sub_812F0B0 thumb_func_start sub_812F180 sub_812F180: @ 812F180 push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} sub sp, 0x4 lsls r0, 24 lsrs r7, r0, 24 movs r0, 0 mov r8, r0 ldr r0, _0812F1B0 @ =gPaletteFade ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 bne _0812F260 ldr r1, _0812F1B4 @ =gUnknown_203B108 ldr r0, [r1] ldrh r0, [r0, 0x12] adds r5, r1, 0 cmp r0, 0 bne _0812F1B8 movs r1, 0x1 mov r8, r1 b _0812F1C4 .align 2, 0 _0812F1B0: .4byte gPaletteFade _0812F1B4: .4byte gUnknown_203B108 _0812F1B8: cmp r0, 0 blt _0812F1C4 cmp r0, 0x2 bgt _0812F1C4 movs r2, 0x3 mov r8, r2 _0812F1C4: ldr r2, [r5] ldr r1, _0812F244 @ =gTasks lsls r3, r7, 2 adds r0, r3, r7 lsls r0, 3 adds r4, r0, r1 ldrh r0, [r4, 0x26] ldrh r1, [r2, 0x12] adds r0, r1 movs r1, 0 strh r0, [r2, 0x12] lsls r0, 16 lsrs r0, 16 mov r9, r3 cmp r0, 0x2 bhi _0812F24C movs r6, 0 cmp r1, r8 bcs _0812F234 _0812F1EA: ldr r0, [r5] lsls r4, r6, 1 adds r0, 0x14 adds r0, r4 ldrb r0, [r0] movs r1, 0 bl FillWindowPixelBuffer ldr r0, [r5] adds r0, 0x14 adds r0, r4 ldrb r0, [r0] bl ClearWindowTilemap ldr r0, [r5] adds r0, 0x14 adds r0, r4 ldrb r0, [r0] movs r1, 0x3 bl CopyWindowToVram ldr r0, [r5] adds r0, 0x14 adds r0, r4 ldrb r0, [r0] bl RemoveWindow ldr r0, [r5] adds r0, 0x14 adds r0, r4 movs r1, 0 strh r1, [r0] adds r0, r6, 0x1 lsls r0, 24 lsrs r6, r0, 24 cmp r6, r8 bcc _0812F1EA _0812F234: ldr r0, _0812F244 @ =gTasks mov r2, r9 adds r1, r2, r7 lsls r1, 3 adds r1, r0 ldr r0, _0812F248 @ =sub_812EF50 str r0, [r1] b _0812F260 .align 2, 0 _0812F244: .4byte gTasks _0812F248: .4byte sub_812EF50 _0812F24C: movs r0, 0x1 negs r0, r0 str r1, [sp] movs r1, 0x2 movs r2, 0 movs r3, 0x10 bl BeginNormalPaletteFade ldr r0, _0812F270 @ =sub_812F274 str r0, [r4] _0812F260: add sp, 0x4 pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0812F270: .4byte sub_812F274 thumb_func_end sub_812F180 thumb_func_start sub_812F274 sub_812F274: @ 812F274 push {r4-r7,lr} mov r7, r8 push {r7} sub sp, 0x8 lsls r0, 24 lsrs r0, 24 mov r8, r0 movs r6, 0 ldr r0, _0812F32C @ =gPaletteFade ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 bne _0812F320 ldr r5, _0812F330 @ =gUnknown_203B108 _0812F292: ldr r0, [r5] lsls r4, r6, 1 adds r0, 0x14 adds r0, r4 ldrb r0, [r0] movs r1, 0 bl FillWindowPixelBuffer ldr r0, [r5] adds r0, 0x14 adds r0, r4 ldrb r0, [r0] bl ClearWindowTilemap ldr r0, [r5] adds r0, 0x14 adds r0, r4 ldrb r0, [r0] movs r1, 0x3 bl CopyWindowToVram ldr r0, [r5] adds r0, 0x14 adds r0, r4 ldrb r0, [r0] bl RemoveWindow ldr r0, [r5] adds r0, 0x14 adds r0, r4 movs r7, 0 strh r7, [r0] adds r0, r6, 0x1 lsls r0, 24 lsrs r6, r0, 24 cmp r6, 0x2 bls _0812F292 movs r0, 0x1E str r0, [sp] movs r0, 0x12 str r0, [sp, 0x4] movs r0, 0x1 movs r1, 0 movs r2, 0 movs r3, 0x2 bl FillBgTilemapBufferRect_Palette0 movs r0, 0x1 bl CopyBgTilemapBufferToVram ldr r0, _0812F334 @ =gTasks mov r1, r8 lsls r4, r1, 2 add r4, r8 lsls r4, 3 adds r4, r0 ldrb r0, [r4, 0x12] bl sub_8006398 ldr r0, _0812F330 @ =gUnknown_203B108 ldr r0, [r0] strh r7, [r0, 0x14] adds r0, 0x14 movs r1, 0 movs r2, 0x2 bl LoadPalette movs r0, 0x20 strh r0, [r4, 0xE] ldr r0, _0812F338 @ =sub_812F33C str r0, [r4] _0812F320: add sp, 0x8 pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0812F32C: .4byte gPaletteFade _0812F330: .4byte gUnknown_203B108 _0812F334: .4byte gTasks _0812F338: .4byte sub_812F33C thumb_func_end sub_812F274 thumb_func_start sub_812F33C sub_812F33C: @ 812F33C push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} sub sp, 0x18 lsls r0, 24 lsrs r7, r0, 24 lsls r0, r7, 2 adds r0, r7 lsls r0, 3 mov r8, r0 ldr r0, _0812F370 @ =gTasks+0x8 mov r9, r0 mov r5, r8 add r5, r9 movs r0, 0 str r0, [sp, 0x14] ldrh r0, [r5, 0x6] movs r1, 0x6 ldrsh r6, [r5, r1] cmp r6, 0 beq _0812F374 subs r0, 0x1 strh r0, [r5, 0x6] b _0812F476 .align 2, 0 _0812F370: .4byte gTasks+0x8 _0812F374: movs r0, 0xA2 lsls r0, 1 bl PlayBGM bl sub_810F71C ldr r0, _0812F484 @ =gUnknown_8415D48 movs r1, 0 movs r2, 0x1 bl sub_810F5E8 ldr r0, _0812F488 @ =gUnknown_8460BA8 add r1, sp, 0x14 bl malloc_and_decompress adds r1, r0, 0 ldr r4, _0812F48C @ =gUnknown_203B108 ldr r0, [r4] str r1, [r0, 0x8] movs r0, 0x1E str r0, [sp] movs r0, 0x13 str r0, [sp, 0x4] movs r0, 0x1 movs r2, 0 movs r3, 0x2 bl CopyToBgTilemapBufferRect movs r0, 0x1 bl CopyBgTilemapBufferToVram ldr r0, [r4] ldr r0, [r0, 0x8] bl Free ldr r0, [r4] str r6, [r0, 0x8] ldr r0, _0812F490 @ =gUnknown_8462EC0 bl AddWindow strh r0, [r5, 0x1C] lsls r0, 24 lsrs r0, 24 bl PutWindowTilemap ldrb r0, [r5, 0x1C] movs r1, 0 bl FillWindowPixelBuffer ldrb r0, [r5, 0x1C] movs r1, 0x3 bl CopyWindowToVram ldr r0, [r4] movs r1, 0 strh r6, [r0, 0x12] ldr r0, _0812F494 @ =gMain movs r2, 0x87 lsls r2, 3 adds r0, r2 strb r1, [r0] movs r0, 0x10 strh r0, [r5, 0x1E] ldrb r0, [r5, 0x1C] movs r1, 0x1 str r1, [sp] str r6, [sp, 0x4] ldr r1, _0812F498 @ =gUnknown_8462EEC str r1, [sp, 0x8] str r6, [sp, 0xC] ldr r1, _0812F49C @ =gUnknown_8462EF0 ldr r1, [r1] str r1, [sp, 0x10] movs r1, 0x2 movs r2, 0x3 movs r3, 0x5 bl AddTextPrinterParametrized2 str r6, [sp] movs r0, 0 movs r1, 0xE2 movs r2, 0x91 movs r3, 0 bl sub_8006300 lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0xA] ldr r4, _0812F4A0 @ =gSprites movs r1, 0xA ldrsh r0, [r5, r1] lsls r1, r0, 4 adds r1, r0 lsls r1, 2 adds r1, r4 ldrb r2, [r1, 0x1] movs r3, 0xD negs r3, r3 adds r0, r3, 0 ands r0, r2 movs r2, 0x4 orrs r0, r2 strb r0, [r1, 0x1] movs r2, 0xA ldrsh r1, [r5, r2] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r4 ldrb r1, [r0, 0x5] ands r3, r1 strb r3, [r0, 0x5] adds r0, r7, 0 movs r1, 0 bl sub_8130FD4 movs r0, 0x1 negs r0, r0 str r6, [sp] movs r1, 0x2 movs r2, 0x10 movs r3, 0 bl BeginNormalPaletteFade mov r0, r9 subs r0, 0x8 add r0, r8 ldr r1, _0812F4A4 @ =sub_812F4A8 str r1, [r0] _0812F476: add sp, 0x18 pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0812F484: .4byte gUnknown_8415D48 _0812F488: .4byte gUnknown_8460BA8 _0812F48C: .4byte gUnknown_203B108 _0812F490: .4byte gUnknown_8462EC0 _0812F494: .4byte gMain _0812F498: .4byte gUnknown_8462EEC _0812F49C: .4byte gUnknown_8462EF0 _0812F4A0: .4byte gSprites _0812F4A4: .4byte sub_812F4A8 thumb_func_end sub_812F33C thumb_func_start sub_812F4A8 sub_812F4A8: @ 812F4A8 push {r4-r7,lr} sub sp, 0x14 lsls r0, 24 lsrs r2, r0, 24 lsls r0, r2, 2 adds r0, r2 lsls r6, r0, 3 ldr r7, _0812F4D8 @ =gTasks+0x8 adds r5, r6, r7 ldr r0, _0812F4DC @ =gMain movs r1, 0x87 lsls r1, 3 adds r3, r0, r1 ldrb r1, [r3] adds r4, r0, 0 cmp r1, 0x4 bls _0812F4CC b _0812F6C0 _0812F4CC: lsls r0, r1, 2 ldr r1, _0812F4E0 @ =_0812F4E4 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _0812F4D8: .4byte gTasks+0x8 _0812F4DC: .4byte gMain _0812F4E0: .4byte _0812F4E4 .align 2, 0 _0812F4E4: .4byte _0812F4F8 .4byte _0812F538 .4byte _0812F5B4 .4byte _0812F644 .4byte _0812F688 _0812F4F8: ldr r0, _0812F534 @ =gPaletteFade ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 beq _0812F506 b _0812F71C _0812F506: movs r0, 0x40 movs r1, 0xF0 bl SetGpuReg movs r1, 0x85 lsls r1, 5 movs r0, 0x44 bl SetGpuReg movs r0, 0x48 movs r1, 0x3F bl SetGpuReg movs r0, 0x4A movs r1, 0x1F bl SetGpuReg movs r1, 0x80 lsls r1, 6 movs r0, 0 bl SetGpuRegBits b _0812F676 .align 2, 0 _0812F534: .4byte gPaletteFade _0812F538: ldrh r1, [r4, 0x2E] movs r0, 0x3 ands r0, r1 cmp r0, 0 bne _0812F544 b _0812F71C _0812F544: movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _0812F55C ldr r0, _0812F558 @ =gUnknown_203B108 ldr r1, [r0] ldrh r0, [r1, 0x12] adds r0, 0x1 b _0812F56A .align 2, 0 _0812F558: .4byte gUnknown_203B108 _0812F55C: ldr r0, _0812F58C @ =gUnknown_203B108 ldr r1, [r0] ldrh r0, [r1, 0x12] cmp r0, 0 bne _0812F568 b _0812F71C _0812F568: subs r0, 0x1 _0812F56A: strh r0, [r1, 0x12] movs r0, 0x5 bl PlaySE ldr r0, _0812F58C @ =gUnknown_203B108 ldr r0, [r0] ldrh r0, [r0, 0x12] cmp r0, 0x3 bne _0812F594 ldr r0, _0812F590 @ =gMain movs r1, 0x87 lsls r1, 3 adds r0, r1 movs r1, 0x4 strb r1, [r0] b _0812F71C .align 2, 0 _0812F58C: .4byte gUnknown_203B108 _0812F590: .4byte gMain _0812F594: ldr r1, _0812F5B0 @ =0x00000241 movs r0, 0x50 bl SetGpuReg ldrh r0, [r5, 0x1E] movs r1, 0x10 subs r1, r0 orrs r1, r0 lsls r1, 16 lsrs r1, 16 movs r0, 0x52 bl SetGpuReg b _0812F6A2 .align 2, 0 _0812F5B0: .4byte 0x00000241 _0812F5B4: ldrh r1, [r5, 0x1E] subs r1, 0x2 strh r1, [r5, 0x1E] movs r0, 0x10 subs r0, r1 lsls r0, 8 orrs r1, r0 lsls r1, 16 lsrs r1, 16 movs r0, 0x52 bl SetGpuReg movs r1, 0x1E ldrsh r0, [r5, r1] cmp r0, 0 ble _0812F5D6 b _0812F71C _0812F5D6: ldrb r0, [r5, 0x1C] movs r1, 0 bl FillWindowPixelBuffer ldrb r0, [r5, 0x1C] movs r1, 0x1 str r1, [sp] movs r2, 0 str r2, [sp, 0x4] ldr r1, _0812F620 @ =gUnknown_8462EEC str r1, [sp, 0x8] str r2, [sp, 0xC] ldr r2, _0812F624 @ =gUnknown_8462EF0 ldr r4, _0812F628 @ =gUnknown_203B108 ldr r1, [r4] ldrh r1, [r1, 0x12] lsls r1, 2 adds r1, r2 ldr r1, [r1] str r1, [sp, 0x10] movs r1, 0x2 movs r2, 0x3 movs r3, 0x5 bl AddTextPrinterParametrized2 ldr r0, [r4] ldrh r0, [r0, 0x12] cmp r0, 0 bne _0812F630 bl sub_810F71C ldr r0, _0812F62C @ =gUnknown_8415D48 movs r1, 0 movs r2, 0x1 bl sub_810F5E8 b _0812F6A2 .align 2, 0 _0812F620: .4byte gUnknown_8462EEC _0812F624: .4byte gUnknown_8462EF0 _0812F628: .4byte gUnknown_203B108 _0812F62C: .4byte gUnknown_8415D48 _0812F630: bl sub_810F71C ldr r0, _0812F640 @ =gUnknown_8415D50 movs r1, 0 movs r2, 0x1 bl sub_810F5E8 b _0812F6A2 .align 2, 0 _0812F640: .4byte gUnknown_8415D50 _0812F644: ldrh r1, [r5, 0x1E] adds r1, 0x2 strh r1, [r5, 0x1E] movs r4, 0x10 subs r0, r4, r1 lsls r0, 8 orrs r1, r0 lsls r1, 16 lsrs r1, 16 movs r0, 0x52 bl SetGpuReg movs r1, 0x1E ldrsh r0, [r5, r1] cmp r0, 0xF ble _0812F71C strh r4, [r5, 0x1E] movs r0, 0x50 movs r1, 0 bl SetGpuReg movs r0, 0x52 movs r1, 0 bl SetGpuReg _0812F676: ldr r0, _0812F684 @ =gMain movs r1, 0x87 lsls r1, 3 adds r0, r1 movs r1, 0x1 strb r1, [r0] b _0812F71C .align 2, 0 _0812F684: .4byte gMain _0812F688: ldr r1, _0812F6B4 @ =gTasks lsls r0, r2, 2 adds r0, r2 lsls r0, 3 adds r0, r1 ldrb r0, [r0, 0x12] bl sub_8006398 ldr r0, _0812F6B8 @ =0x00000145 bl PlayBGM movs r0, 0x18 strh r0, [r5, 0x1E] _0812F6A2: ldr r1, _0812F6BC @ =gMain movs r0, 0x87 lsls r0, 3 adds r1, r0 ldrb r0, [r1] adds r0, 0x1 strb r0, [r1] b _0812F71C .align 2, 0 _0812F6B4: .4byte gTasks _0812F6B8: .4byte 0x00000145 _0812F6BC: .4byte gMain _0812F6C0: ldrh r0, [r5, 0x1E] movs r1, 0x1E ldrsh r4, [r5, r1] cmp r4, 0 beq _0812F6D0 subs r0, 0x1 strh r0, [r5, 0x1E] b _0812F71C _0812F6D0: strb r4, [r3] ldr r0, _0812F724 @ =gUnknown_203B108 ldr r0, [r0] strh r4, [r0, 0x12] movs r0, 0x40 movs r1, 0 bl SetGpuReg movs r0, 0x44 movs r1, 0 bl SetGpuReg movs r0, 0x48 movs r1, 0 bl SetGpuReg movs r0, 0x4A movs r1, 0 bl SetGpuReg movs r1, 0x80 lsls r1, 6 movs r0, 0 bl ClearGpuRegBits movs r0, 0x1 negs r0, r0 str r4, [sp] movs r1, 0x2 movs r2, 0 movs r3, 0x10 bl BeginNormalPaletteFade adds r0, r7, 0 subs r0, 0x8 adds r0, r6, r0 ldr r1, _0812F728 @ =sub_812F72C str r1, [r0] _0812F71C: add sp, 0x14 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0812F724: .4byte gUnknown_203B108 _0812F728: .4byte sub_812F72C thumb_func_end sub_812F4A8 thumb_func_start sub_812F72C sub_812F72C: @ 812F72C push {r4-r7,lr} mov r7, r8 push {r7} sub sp, 0x8 lsls r0, 24 lsrs r5, r0, 24 lsls r0, r5, 2 adds r0, r5 lsls r7, r0, 3 ldr r0, _0812F7B4 @ =gTasks+0x8 mov r8, r0 adds r4, r7, r0 ldr r0, _0812F7B8 @ =gPaletteFade ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 lsls r0, 24 lsrs r6, r0, 24 cmp r6, 0 bne _0812F7A6 bl sub_810F740 ldrb r0, [r4, 0x1C] movs r1, 0 bl FillWindowPixelBuffer ldrb r0, [r4, 0x1C] bl ClearWindowTilemap ldrb r0, [r4, 0x1C] movs r1, 0x3 bl CopyWindowToVram ldrb r0, [r4, 0x1C] bl RemoveWindow strh r6, [r4, 0x1C] movs r0, 0x1E str r0, [sp] movs r0, 0x14 str r0, [sp, 0x4] movs r0, 0x1 movs r1, 0 movs r2, 0 movs r3, 0 bl FillBgTilemapBufferRect_Palette0 movs r0, 0x1 bl CopyBgTilemapBufferToVram adds r0, r5, 0 movs r1, 0 bl sub_8131168 movs r0, 0x50 strh r0, [r4, 0x6] mov r0, r8 subs r0, 0x8 adds r0, r7, r0 ldr r1, _0812F7BC @ =sub_812F7C0 str r1, [r0] _0812F7A6: add sp, 0x8 pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0812F7B4: .4byte gTasks+0x8 _0812F7B8: .4byte gPaletteFade _0812F7BC: .4byte sub_812F7C0 thumb_func_end sub_812F72C thumb_func_start sub_812F7C0 sub_812F7C0: @ 812F7C0 push {r4-r7,lr} mov r7, r8 push {r7} sub sp, 0x8 lsls r0, 24 lsrs r4, r0, 24 lsls r0, r4, 2 adds r0, r4 lsls r7, r0, 3 ldr r0, _0812F7EC @ =gTasks+0x8 mov r8, r0 adds r5, r7, r0 movs r0, 0 str r0, [sp, 0x4] ldrh r0, [r5, 0x6] movs r1, 0x6 ldrsh r6, [r5, r1] cmp r6, 0 beq _0812F7F0 subs r0, 0x1 strh r0, [r5, 0x6] b _0812F862 .align 2, 0 _0812F7EC: .4byte gTasks+0x8 _0812F7F0: ldr r0, _0812F870 @ =gUnknown_8460CA4 add r1, sp, 0x4 bl malloc_and_decompress adds r1, r0, 0 ldr r0, _0812F874 @ =gUnknown_203B108 ldr r0, [r0] str r1, [r0] ldr r2, [sp, 0x4] lsls r2, 16 lsrs r2, 16 movs r0, 0x1 movs r3, 0 bl LoadBgTiles ldr r1, _0812F878 @ =gUnknown_8460CE8 movs r0, 0x1 movs r2, 0 movs r3, 0 bl CopyToBgTilemapBuffer movs r0, 0x1 bl CopyBgTilemapBufferToVram adds r0, r4, 0 bl sub_8130F2C movs r0, 0x3 movs r1, 0 bl sub_81311F4 adds r0, r4, 0 movs r1, 0x1 bl sub_8130FD4 movs r0, 0x92 lsls r0, 1 bl PlayBGM movs r0, 0x1 negs r0, r0 str r6, [sp] movs r1, 0x5 movs r2, 0x10 movs r3, 0 bl BeginNormalPaletteFade movs r0, 0x50 strh r0, [r5, 0x6] movs r0, 0x2 bl ShowBg mov r0, r8 subs r0, 0x8 adds r0, r7, r0 ldr r1, _0812F87C @ =sub_812F880 str r1, [r0] _0812F862: add sp, 0x8 pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0812F870: .4byte gUnknown_8460CA4 _0812F874: .4byte gUnknown_203B108 _0812F878: .4byte gUnknown_8460CE8 _0812F87C: .4byte sub_812F880 thumb_func_end sub_812F7C0 thumb_func_start sub_812F880 sub_812F880: @ 812F880 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, _0812F8B0 @ =gTasks+0x8 adds r2, r0, r1 ldr r0, _0812F8B4 @ =gPaletteFade ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 bne _0812F92E ldrh r0, [r2, 0x6] movs r1, 0x6 ldrsh r4, [r2, r1] cmp r4, 0 beq _0812F8B8 subs r0, 0x1 strh r0, [r2, 0x6] b _0812F92E .align 2, 0 _0812F8B0: .4byte gTasks+0x8 _0812F8B4: .4byte gPaletteFade _0812F8B8: movs r0, 0 movs r1, 0 bl sub_80F6EE4 ldr r2, _0812F8F0 @ =gUnknown_81C5C78 ldr r5, _0812F8F4 @ =gStringVar4 cmp r2, r5 beq _0812F8FC adds r0, r5, 0 adds r1, r2, 0 bl StringExpandPlaceholders ldr r0, _0812F8F8 @ =gUnknown_203B108 ldr r0, [r0] ldrb r3, [r0, 0x1F] str r4, [sp] movs r0, 0x2 str r0, [sp, 0x4] movs r0, 0x1 str r0, [sp, 0x8] movs r0, 0x3 str r0, [sp, 0xC] movs r0, 0 movs r1, 0x4 adds r2, r5, 0 bl AddTextPrinterParametrized b _0812F918 .align 2, 0 _0812F8F0: .4byte gUnknown_81C5C78 _0812F8F4: .4byte gStringVar4 _0812F8F8: .4byte gUnknown_203B108 _0812F8FC: ldr r0, _0812F938 @ =gUnknown_203B108 ldr r0, [r0] ldrb r3, [r0, 0x1F] str r4, [sp] movs r0, 0x2 str r0, [sp, 0x4] movs r0, 0x1 str r0, [sp, 0x8] movs r0, 0x3 str r0, [sp, 0xC] movs r0, 0 movs r1, 0x4 bl AddTextPrinterParametrized _0812F918: movs r0, 0 movs r1, 0x3 bl CopyWindowToVram ldr r0, _0812F93C @ =gTasks lsls r1, r6, 2 adds r1, r6 lsls r1, 3 adds r1, r0 ldr r0, _0812F940 @ =sub_812F944 str r0, [r1] _0812F92E: add sp, 0x10 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _0812F938: .4byte gUnknown_203B108 _0812F93C: .4byte gTasks _0812F940: .4byte sub_812F944 thumb_func_end sub_812F880 thumb_func_start sub_812F944 sub_812F944: @ 812F944 push {r4-r6,lr} sub sp, 0x10 lsls r0, 24 lsrs r6, r0, 24 movs r0, 0 bl IsTextPrinterActive lsls r0, 16 lsrs r4, r0, 16 cmp r4, 0 bne _0812F9D6 movs r0, 0 movs r1, 0 bl sub_80F6EE4 ldr r2, _0812F994 @ =gUnknown_81C5D06 ldr r5, _0812F998 @ =gStringVar4 cmp r2, r5 beq _0812F9A0 adds r0, r5, 0 adds r1, r2, 0 bl StringExpandPlaceholders ldr r0, _0812F99C @ =gUnknown_203B108 ldr r0, [r0] ldrb r3, [r0, 0x1F] str r4, [sp] movs r0, 0x2 str r0, [sp, 0x4] movs r0, 0x1 str r0, [sp, 0x8] movs r0, 0x3 str r0, [sp, 0xC] movs r0, 0 movs r1, 0x4 adds r2, r5, 0 bl AddTextPrinterParametrized b _0812F9BC .align 2, 0 _0812F994: .4byte gUnknown_81C5D06 _0812F998: .4byte gStringVar4 _0812F99C: .4byte gUnknown_203B108 _0812F9A0: ldr r0, _0812F9E0 @ =gUnknown_203B108 ldr r0, [r0] ldrb r3, [r0, 0x1F] str r4, [sp] movs r0, 0x2 str r0, [sp, 0x4] movs r0, 0x1 str r0, [sp, 0x8] movs r0, 0x3 str r0, [sp, 0xC] movs r0, 0 movs r1, 0x4 bl AddTextPrinterParametrized _0812F9BC: movs r0, 0 movs r1, 0x3 bl CopyWindowToVram ldr r1, _0812F9E4 @ =gTasks lsls r0, r6, 2 adds r0, r6 lsls r0, 3 adds r0, r1 movs r1, 0x1E strh r1, [r0, 0xE] ldr r1, _0812F9E8 @ =sub_812F9EC str r1, [r0] _0812F9D6: add sp, 0x10 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _0812F9E0: .4byte gUnknown_203B108 _0812F9E4: .4byte gTasks _0812F9E8: .4byte sub_812F9EC thumb_func_end sub_812F944 thumb_func_start sub_812F9EC sub_812F9EC: @ 812F9EC push {r4-r7,lr} sub sp, 0x10 lsls r0, 24 lsrs r0, 24 lsls r1, r0, 2 adds r1, r0 lsls r6, r1, 3 ldr r7, _0812FA68 @ =gTasks+0x8 adds r4, r6, r7 movs r0, 0 bl IsTextPrinterActive lsls r0, 16 lsrs r5, r0, 16 cmp r5, 0 bne _0812FA5E ldrh r1, [r4, 0x6] movs r2, 0x6 ldrsh r0, [r4, r2] cmp r0, 0 beq _0812FA1A subs r0, r1, 0x1 strh r0, [r4, 0x6] _0812FA1A: adds r4, r7, 0 subs r4, 0x8 adds r4, r6, r4 ldrb r0, [r4, 0x10] ldr r1, _0812FA6C @ =gSprites lsls r2, r0, 4 adds r2, r0 lsls r2, 2 adds r2, r1 movs r3, 0x3E adds r3, r2 mov r12, r3 ldrb r3, [r3] movs r1, 0x5 negs r1, r1 ands r1, r3 mov r3, r12 strb r1, [r3] strh r5, [r2, 0x2E] ldrb r1, [r2, 0x5] lsrs r1, 4 str r5, [sp] str r5, [sp, 0x4] movs r2, 0x20 str r2, [sp, 0x8] ldr r2, _0812FA70 @ =0xffff1fff str r2, [sp, 0xC] movs r2, 0x64 movs r3, 0x42 bl CreatePokeballSpriteToReleaseMon ldr r0, _0812FA74 @ =sub_812FA78 str r0, [r4] strh r5, [r4, 0xE] _0812FA5E: add sp, 0x10 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0812FA68: .4byte gTasks+0x8 _0812FA6C: .4byte gSprites _0812FA70: .4byte 0xffff1fff _0812FA74: .4byte sub_812FA78 thumb_func_end sub_812F9EC thumb_func_start sub_812FA78 sub_812FA78: @ 812FA78 push {r4,r5,lr} sub sp, 0x10 lsls r0, 24 lsrs r4, r0, 24 bl IsCryFinished lsls r0, 24 cmp r0, 0 beq _0812FAA0 ldr r0, _0812FAFC @ =gTasks lsls r1, r4, 2 adds r1, r4 lsls r1, 3 adds r1, r0 movs r2, 0xE ldrsh r0, [r1, r2] cmp r0, 0x5F ble _0812FAA0 ldr r0, _0812FB00 @ =sub_812FB4C str r0, [r1] _0812FAA0: ldr r1, _0812FAFC @ =gTasks lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r2, r0, r1 ldrh r3, [r2, 0xE] movs r0, 0xE ldrsh r1, [r2, r0] ldr r0, _0812FB04 @ =0x00003fff cmp r1, r0 bgt _0812FB40 adds r0, r3, 0x1 movs r5, 0 strh r0, [r2, 0xE] lsls r0, 16 asrs r0, 16 cmp r0, 0x20 bne _0812FB40 movs r0, 0 movs r1, 0 bl sub_80F6EE4 ldr r2, _0812FB08 @ =gUnknown_81C5D12 ldr r4, _0812FB0C @ =gStringVar4 cmp r2, r4 beq _0812FB14 adds r0, r4, 0 adds r1, r2, 0 bl StringExpandPlaceholders ldr r0, _0812FB10 @ =gUnknown_203B108 ldr r0, [r0] ldrb r3, [r0, 0x1F] str r5, [sp] movs r0, 0x2 str r0, [sp, 0x4] movs r0, 0x1 str r0, [sp, 0x8] movs r0, 0x3 str r0, [sp, 0xC] movs r0, 0 movs r1, 0x4 adds r2, r4, 0 bl AddTextPrinterParametrized b _0812FB30 .align 2, 0 _0812FAFC: .4byte gTasks _0812FB00: .4byte sub_812FB4C _0812FB04: .4byte 0x00003fff _0812FB08: .4byte gUnknown_81C5D12 _0812FB0C: .4byte gStringVar4 _0812FB10: .4byte gUnknown_203B108 _0812FB14: ldr r0, _0812FB48 @ =gUnknown_203B108 ldr r0, [r0] ldrb r3, [r0, 0x1F] str r5, [sp] movs r0, 0x2 str r0, [sp, 0x4] movs r0, 0x1 str r0, [sp, 0x8] movs r0, 0x3 str r0, [sp, 0xC] movs r0, 0 movs r1, 0x4 bl AddTextPrinterParametrized _0812FB30: movs r0, 0 movs r1, 0x3 bl CopyWindowToVram movs r0, 0x1D movs r1, 0 bl PlayCry1 _0812FB40: add sp, 0x10 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0812FB48: .4byte gUnknown_203B108 thumb_func_end sub_812FA78 thumb_func_start sub_812FB4C sub_812FB4C: @ 812FB4C push {r4-r6,lr} sub sp, 0x10 lsls r0, 24 lsrs r6, r0, 24 movs r0, 0 bl IsTextPrinterActive lsls r0, 16 lsrs r4, r0, 16 cmp r4, 0 bne _0812FBDA movs r0, 0 movs r1, 0 bl sub_80F6EE4 ldr r2, _0812FB9C @ =gUnknown_81C5D4B ldr r5, _0812FBA0 @ =gStringVar4 cmp r2, r5 beq _0812FBA8 adds r0, r5, 0 adds r1, r2, 0 bl StringExpandPlaceholders ldr r0, _0812FBA4 @ =gUnknown_203B108 ldr r0, [r0] ldrb r3, [r0, 0x1F] str r4, [sp] movs r0, 0x2 str r0, [sp, 0x4] movs r0, 0x1 str r0, [sp, 0x8] movs r0, 0x3 str r0, [sp, 0xC] movs r0, 0 movs r1, 0x4 adds r2, r5, 0 bl AddTextPrinterParametrized b _0812FBC4 .align 2, 0 _0812FB9C: .4byte gUnknown_81C5D4B _0812FBA0: .4byte gStringVar4 _0812FBA4: .4byte gUnknown_203B108 _0812FBA8: ldr r0, _0812FBE4 @ =gUnknown_203B108 ldr r0, [r0] ldrb r3, [r0, 0x1F] str r4, [sp] movs r0, 0x2 str r0, [sp, 0x4] movs r0, 0x1 str r0, [sp, 0x8] movs r0, 0x3 str r0, [sp, 0xC] movs r0, 0 movs r1, 0x4 bl AddTextPrinterParametrized _0812FBC4: movs r0, 0 movs r1, 0x3 bl CopyWindowToVram ldr r0, _0812FBE8 @ =gTasks lsls r1, r6, 2 adds r1, r6 lsls r1, 3 adds r1, r0 ldr r0, _0812FBEC @ =sub_812FBF0 str r0, [r1] _0812FBDA: add sp, 0x10 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _0812FBE4: .4byte gUnknown_203B108 _0812FBE8: .4byte gTasks _0812FBEC: .4byte sub_812FBF0 thumb_func_end sub_812FB4C thumb_func_start sub_812FBF0 sub_812FBF0: @ 812FBF0 push {r4-r6,lr} sub sp, 0x10 lsls r0, 24 lsrs r6, r0, 24 movs r0, 0 bl IsTextPrinterActive lsls r0, 16 lsrs r5, r0, 16 cmp r5, 0 bne _0812FC4E movs r0, 0 movs r1, 0x1 bl sub_80F6F54 ldr r0, _0812FC58 @ =gTasks lsls r4, r6, 2 adds r4, r6 lsls r4, 3 adds r4, r0 ldrb r0, [r4, 0x10] ldr r2, _0812FC5C @ =gSprites lsls r1, r0, 4 adds r1, r0 lsls r1, 2 adds r1, r2 ldrb r1, [r1, 0x5] lsrs r1, 4 str r5, [sp] str r5, [sp, 0x4] movs r2, 0x20 str r2, [sp, 0x8] ldr r2, _0812FC60 @ =0xffff1f3f str r2, [sp, 0xC] movs r2, 0x64 movs r3, 0x42 bl sub_804BB98 lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x14] movs r0, 0x30 strh r0, [r4, 0xE] movs r0, 0x40 strh r0, [r4, 0x8] ldr r0, _0812FC64 @ =sub_812FC68 str r0, [r4] _0812FC4E: add sp, 0x10 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _0812FC58: .4byte gTasks _0812FC5C: .4byte gSprites _0812FC60: .4byte 0xffff1f3f _0812FC64: .4byte sub_812FC68 thumb_func_end sub_812FBF0 thumb_func_start sub_812FC68 sub_812FC68: @ 812FC68 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, _0812FCA4 @ =gTasks+0x8 adds r5, r0, r1 movs r1, 0 ldrsh r0, [r5, r1] cmp r0, 0 beq _0812FCAC cmp r0, 0x17 bgt _0812FC9A ldr r2, _0812FCA8 @ =gSprites movs r0, 0x8 ldrsh r1, [r5, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r2 ldrh r1, [r0, 0x22] subs r1, 0x1 strh r1, [r0, 0x22] _0812FC9A: ldrh r0, [r5] subs r0, 0x1 strh r0, [r5] b _0812FD62 .align 2, 0 _0812FCA4: .4byte gTasks+0x8 _0812FCA8: .4byte gSprites _0812FCAC: movs r1, 0x6 ldrsh r0, [r5, r1] cmp r0, 0x30 bne _0812FCD6 movs r0, 0x8 ldrsh r1, [r5, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 ldr r4, _0812FCE8 @ =gSprites adds r0, r4 bl DestroySprite movs r0, 0xC ldrsh r1, [r5, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r4 bl DestroySprite _0812FCD6: ldrh r0, [r5, 0x6] movs r1, 0x6 ldrsh r4, [r5, r1] cmp r4, 0 beq _0812FCEC subs r0, 0x1 strh r0, [r5, 0x6] b _0812FD62 .align 2, 0 _0812FCE8: .4byte gSprites _0812FCEC: movs r0, 0 movs r1, 0 bl sub_80F6EE4 ldr r2, _0812FD24 @ =gUnknown_81C5DBD ldr r5, _0812FD28 @ =gStringVar4 cmp r2, r5 beq _0812FD30 adds r0, r5, 0 adds r1, r2, 0 bl StringExpandPlaceholders ldr r0, _0812FD2C @ =gUnknown_203B108 ldr r0, [r0] ldrb r3, [r0, 0x1F] str r4, [sp] movs r0, 0x2 str r0, [sp, 0x4] movs r0, 0x1 str r0, [sp, 0x8] movs r0, 0x3 str r0, [sp, 0xC] movs r0, 0 movs r1, 0x4 adds r2, r5, 0 bl AddTextPrinterParametrized b _0812FD4C .align 2, 0 _0812FD24: .4byte gUnknown_81C5DBD _0812FD28: .4byte gStringVar4 _0812FD2C: .4byte gUnknown_203B108 _0812FD30: ldr r0, _0812FD6C @ =gUnknown_203B108 ldr r0, [r0] ldrb r3, [r0, 0x1F] str r4, [sp] movs r0, 0x2 str r0, [sp, 0x4] movs r0, 0x1 str r0, [sp, 0x8] movs r0, 0x3 str r0, [sp, 0xC] movs r0, 0 movs r1, 0x4 bl AddTextPrinterParametrized _0812FD4C: movs r0, 0 movs r1, 0x3 bl CopyWindowToVram ldr r0, _0812FD70 @ =gTasks lsls r1, r6, 2 adds r1, r6 lsls r1, 3 adds r1, r0 ldr r0, _0812FD74 @ =sub_812FD78 str r0, [r1] _0812FD62: add sp, 0x10 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _0812FD6C: .4byte gUnknown_203B108 _0812FD70: .4byte gTasks _0812FD74: .4byte sub_812FD78 thumb_func_end sub_812FC68 thumb_func_start sub_812FD78 sub_812FD78: @ 812FD78 push {r4-r7,lr} lsls r0, 24 lsrs r4, r0, 24 lsls r0, r4, 2 adds r0, r4 lsls r5, r0, 3 ldr r7, _0812FDB8 @ =gTasks+0x8 adds r6, r5, r7 movs r0, 0 bl IsTextPrinterActive lsls r0, 16 cmp r0, 0 bne _0812FDB2 movs r0, 0 movs r1, 0x1 bl sub_80F6F54 adds r0, r4, 0 movs r1, 0x2 bl sub_813144C movs r0, 0x30 strh r0, [r6, 0x6] adds r0, r7, 0 subs r0, 0x8 adds r0, r5, r0 ldr r1, _0812FDBC @ =sub_812FDC0 str r1, [r0] _0812FDB2: pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0812FDB8: .4byte gTasks+0x8 _0812FDBC: .4byte sub_812FDC0 thumb_func_end sub_812FD78 thumb_func_start sub_812FDC0 sub_812FDC0: @ 812FDC0 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, _0812FDEC @ =gTasks+0x8 adds r1, r0, r1 movs r2, 0x4 ldrsh r0, [r1, r2] cmp r0, 0 beq _0812FE72 ldrh r0, [r1, 0x6] movs r2, 0x6 ldrsh r4, [r1, r2] cmp r4, 0 beq _0812FDF0 subs r0, 0x1 strh r0, [r1, 0x6] b _0812FE72 .align 2, 0 _0812FDEC: .4byte gTasks+0x8 _0812FDF0: movs r2, 0x3C negs r2, r2 adds r0, r2, 0 strh r0, [r1, 0x2] bl sub_8131310 movs r0, 0 movs r1, 0 bl sub_80F6EE4 ldr r2, _0812FE34 @ =gUnknown_81C59D5 ldr r5, _0812FE38 @ =gStringVar4 cmp r2, r5 beq _0812FE40 adds r0, r5, 0 adds r1, r2, 0 bl StringExpandPlaceholders ldr r0, _0812FE3C @ =gUnknown_203B108 ldr r0, [r0] ldrb r3, [r0, 0x1F] str r4, [sp] movs r0, 0x2 str r0, [sp, 0x4] movs r0, 0x1 str r0, [sp, 0x8] movs r0, 0x3 str r0, [sp, 0xC] movs r0, 0 movs r1, 0x4 adds r2, r5, 0 bl AddTextPrinterParametrized b _0812FE5C .align 2, 0 _0812FE34: .4byte gUnknown_81C59D5 _0812FE38: .4byte gStringVar4 _0812FE3C: .4byte gUnknown_203B108 _0812FE40: ldr r0, _0812FE7C @ =gUnknown_203B108 ldr r0, [r0] ldrb r3, [r0, 0x1F] str r4, [sp] movs r0, 0x2 str r0, [sp, 0x4] movs r0, 0x1 str r0, [sp, 0x8] movs r0, 0x3 str r0, [sp, 0xC] movs r0, 0 movs r1, 0x4 bl AddTextPrinterParametrized _0812FE5C: movs r0, 0 movs r1, 0x3 bl CopyWindowToVram ldr r0, _0812FE80 @ =gTasks lsls r1, r6, 2 adds r1, r6 lsls r1, 3 adds r1, r0 ldr r0, _0812FE84 @ =sub_812FE88 str r0, [r1] _0812FE72: add sp, 0x10 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _0812FE7C: .4byte gUnknown_203B108 _0812FE80: .4byte gTasks _0812FE84: .4byte sub_812FE88 thumb_func_end sub_812FDC0 thumb_func_start sub_812FE88 sub_812FE88: @ 812FE88 push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} sub sp, 0xC lsls r0, 24 lsrs r4, r0, 24 movs r0, 0 bl IsTextPrinterActive lsls r0, 16 lsrs r7, r0, 16 cmp r7, 0 bne _0812FF7E ldr r0, _0812FF8C @ =gUnknown_8462EC8 bl AddWindow ldr r1, _0812FF90 @ =gTasks lsls r5, r4, 2 adds r5, r4 lsls r5, 3 adds r5, r1 strh r0, [r5, 0x22] lsls r0, 24 lsrs r0, 24 bl PutWindowTilemap ldrh r4, [r5, 0x22] lsls r4, 24 lsrs r4, 24 bl sub_80F796C adds r2, r0, 0 lsls r2, 16 lsrs r2, 16 adds r0, r4, 0 movs r1, 0x1 movs r3, 0xE bl SetWindowBorderStyle ldrh r0, [r5, 0x22] lsls r0, 24 lsrs r0, 24 movs r1, 0x11 bl FillWindowPixelBuffer ldr r4, _0812FF94 @ =gUnknown_203B108 ldr r0, [r4] movs r1, 0x1 mov r9, r1 mov r1, r9 strb r1, [r0, 0x1C] ldr r0, [r4] movs r6, 0x2 strb r6, [r0, 0x1D] ldr r0, [r4] movs r1, 0x3 mov r8, r1 mov r1, r8 strb r1, [r0, 0x1E] ldrh r0, [r5, 0x22] lsls r0, 24 lsrs r0, 24 ldr r1, [r4] adds r1, 0x1C str r1, [sp] str r7, [sp, 0x4] ldr r1, _0812FF98 @ =gUnknown_8415D93 str r1, [sp, 0x8] movs r1, 0x2 movs r2, 0x8 movs r3, 0x1 bl box_print ldr r0, [r4] mov r1, r9 strb r1, [r0, 0x1C] ldr r0, [r4] strb r6, [r0, 0x1D] ldr r0, [r4] mov r1, r8 strb r1, [r0, 0x1E] ldrh r0, [r5, 0x22] lsls r0, 24 lsrs r0, 24 ldr r1, [r4] adds r1, 0x1C str r1, [sp] str r7, [sp, 0x4] ldr r1, _0812FF9C @ =gUnknown_8415D97 str r1, [sp, 0x8] movs r1, 0x2 movs r2, 0x8 movs r3, 0x11 bl box_print movs r0, 0x2 movs r1, 0x1 bl GetFontAttribute adds r0, 0x2 lsls r0, 24 lsrs r0, 24 ldrh r1, [r5, 0x22] lsls r1, 24 lsrs r1, 24 str r0, [sp] str r6, [sp, 0x4] str r7, [sp, 0x8] adds r0, r1, 0 movs r1, 0x2 movs r2, 0 movs r3, 0x1 bl sub_810F7D8 ldrh r0, [r5, 0x22] lsls r0, 24 lsrs r0, 24 movs r1, 0x3 bl CopyWindowToVram ldr r0, _0812FFA0 @ =sub_812FFA4 str r0, [r5] _0812FF7E: add sp, 0xC pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0812FF8C: .4byte gUnknown_8462EC8 _0812FF90: .4byte gTasks _0812FF94: .4byte gUnknown_203B108 _0812FF98: .4byte gUnknown_8415D93 _0812FF9C: .4byte gUnknown_8415D97 _0812FFA0: .4byte sub_812FFA4 thumb_func_end sub_812FE88 thumb_func_start sub_812FFA4 sub_812FFA4: @ 812FFA4 push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 bl ProcessMenuInputNoWrapAround lsls r0, 24 asrs r1, r0, 24 cmp r1, 0 beq _0812FFC8 cmp r1, 0 bgt _0812FFC4 movs r0, 0x2 negs r0, r0 cmp r1, r0 blt _0812FFCE b _0812FFDC _0812FFC4: cmp r1, 0x1 bne _0812FFCE _0812FFC8: ldr r0, _0812FFE4 @ =gSaveBlock2Ptr ldr r0, [r0] strb r1, [r0, 0x8] _0812FFCE: ldr r0, _0812FFE8 @ =gTasks lsls r1, r4, 2 adds r1, r4 lsls r1, 3 adds r1, r0 ldr r0, _0812FFEC @ =sub_812FFF0 str r0, [r1] _0812FFDC: pop {r4} pop {r0} bx r0 .align 2, 0 _0812FFE4: .4byte gSaveBlock2Ptr _0812FFE8: .4byte gTasks _0812FFEC: .4byte sub_812FFF0 thumb_func_end sub_812FFA4 thumb_func_start sub_812FFF0 sub_812FFF0: @ 812FFF0 push {r4-r6,lr} sub sp, 0x8 lsls r0, 24 lsrs r0, 24 lsls r5, r0, 2 adds r5, r0 lsls r5, 3 ldr r6, _08130048 @ =gTasks+0x8 adds r4, r5, r6 ldrb r0, [r4, 0x1A] movs r1, 0x1 bl sub_810F4D8 ldrb r0, [r4, 0x1A] bl RemoveWindow movs r0, 0 strh r0, [r4, 0x1A] movs r0, 0 movs r1, 0x1 bl sub_80F6F54 movs r0, 0x1E str r0, [sp] movs r0, 0x14 str r0, [sp, 0x4] movs r0, 0 movs r1, 0 movs r2, 0 movs r3, 0 bl FillBgTilemapBufferRect_Palette0 movs r0, 0 bl CopyBgTilemapBufferToVram subs r6, 0x8 adds r5, r6 ldr r0, _0813004C @ =sub_8130050 str r0, [r5] add sp, 0x8 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _08130048: .4byte gTasks+0x8 _0813004C: .4byte sub_8130050 thumb_func_end sub_812FFF0 thumb_func_start sub_8130050 sub_8130050: @ 8130050 push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 ldr r0, _0813006C @ =gSaveBlock2Ptr ldr r0, [r0] ldrb r0, [r0, 0x8] cmp r0, 0 bne _08130070 movs r0, 0 movs r1, 0 bl sub_81311F4 b _08130078 .align 2, 0 _0813006C: .4byte gSaveBlock2Ptr _08130070: movs r0, 0x1 movs r1, 0 bl sub_81311F4 _08130078: adds r0, r4, 0 movs r1, 0x2 bl sub_81315CC ldr r1, _08130098 @ =gTasks lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r0, r1 movs r1, 0x20 strh r1, [r0, 0xE] ldr r1, _0813009C @ =sub_81300A0 str r1, [r0] pop {r4} pop {r0} bx r0 .align 2, 0 _08130098: .4byte gTasks _0813009C: .4byte sub_81300A0 thumb_func_end sub_8130050 thumb_func_start sub_81300A0 sub_81300A0: @ 81300A0 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, _081300CC @ =gTasks+0x8 adds r1, r0, r1 movs r2, 0x4 ldrsh r0, [r1, r2] cmp r0, 0 beq _0813014A ldrh r0, [r1, 0x6] movs r2, 0x6 ldrsh r4, [r1, r2] cmp r4, 0 beq _081300D0 subs r0, 0x1 strh r0, [r1, 0x6] b _0813014A .align 2, 0 _081300CC: .4byte gTasks+0x8 _081300D0: strh r4, [r1, 0x2] movs r0, 0 movs r1, 0 bl sub_80F6EE4 ldr r2, _0813010C @ =gUnknown_81C5DEA ldr r5, _08130110 @ =gStringVar4 cmp r2, r5 beq _08130118 adds r0, r5, 0 adds r1, r2, 0 bl StringExpandPlaceholders ldr r0, _08130114 @ =gUnknown_203B108 ldr r0, [r0] ldrb r3, [r0, 0x1F] str r4, [sp] movs r0, 0x2 str r0, [sp, 0x4] movs r0, 0x1 str r0, [sp, 0x8] movs r0, 0x3 str r0, [sp, 0xC] movs r0, 0 movs r1, 0x4 adds r2, r5, 0 bl AddTextPrinterParametrized b _08130134 .align 2, 0 _0813010C: .4byte gUnknown_81C5DEA _08130110: .4byte gStringVar4 _08130114: .4byte gUnknown_203B108 _08130118: ldr r0, _08130154 @ =gUnknown_203B108 ldr r0, [r0] ldrb r3, [r0, 0x1F] str r4, [sp] movs r0, 0x2 str r0, [sp, 0x4] movs r0, 0x1 str r0, [sp, 0x8] movs r0, 0x3 str r0, [sp, 0xC] movs r0, 0 movs r1, 0x4 bl AddTextPrinterParametrized _08130134: movs r0, 0 movs r1, 0x3 bl CopyWindowToVram ldr r0, _08130158 @ =gTasks lsls r1, r6, 2 adds r1, r6 lsls r1, 3 adds r1, r0 ldr r0, _0813015C @ =sub_8130160 str r0, [r1] _0813014A: add sp, 0x10 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _08130154: .4byte gUnknown_203B108 _08130158: .4byte gTasks _0813015C: .4byte sub_8130160 thumb_func_end sub_81300A0 thumb_func_start sub_8130160 sub_8130160: @ 8130160 push {r4,r5,lr} sub sp, 0x4 lsls r0, 24 lsrs r5, r0, 24 movs r0, 0 bl IsTextPrinterActive lsls r0, 16 lsrs r4, r0, 16 cmp r4, 0 bne _0813019A movs r0, 0x1 negs r0, r0 str r4, [sp] movs r1, 0 movs r2, 0 movs r3, 0x10 bl BeginNormalPaletteFade ldr r0, _081301A4 @ =gUnknown_203B108 ldr r0, [r0] strh r4, [r0, 0x10] ldr r1, _081301A8 @ =gTasks lsls r0, r5, 2 adds r0, r5 lsls r0, 3 adds r0, r1 ldr r1, _081301AC @ =sub_81303B4 str r1, [r0] _0813019A: add sp, 0x4 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _081301A4: .4byte gUnknown_203B108 _081301A8: .4byte gTasks _081301AC: .4byte sub_81303B4 thumb_func_end sub_8130160 thumb_func_start sub_81301B0 sub_81301B0: @ 81301B0 push {r4-r7,lr} lsls r0, 24 lsrs r0, 24 adds r5, r0, 0 lsls r0, r5, 2 adds r0, r5 lsls r6, r0, 3 ldr r7, _081301F8 @ =gTasks+0x8 adds r4, r6, r7 movs r0, 0 bl IsTextPrinterActive lsls r0, 16 cmp r0, 0 bne _08130218 ldrh r2, [r4, 0x2] movs r1, 0x2 ldrsh r0, [r4, r1] movs r1, 0x3C negs r1, r1 cmp r0, r1 ble _08130200 subs r0, r2, 0x2 strh r0, [r4, 0x2] ldr r1, _081301FC @ =gSpriteCoordOffsetX ldrh r0, [r1] adds r0, 0x2 strh r0, [r1] movs r1, 0x80 lsls r1, 2 movs r0, 0x2 movs r2, 0x2 bl ChangeBgX b _08130218 .align 2, 0 _081301F8: .4byte gTasks+0x8 _081301FC: .4byte gSpriteCoordOffsetX _08130200: strh r1, [r4, 0x2] ldr r0, _08130220 @ =gUnknown_203B108 ldr r0, [r0] ldrb r1, [r0, 0x10] adds r0, r5, 0 bl sub_8131660 adds r0, r7, 0 subs r0, 0x8 adds r0, r6, r0 ldr r1, _08130224 @ =sub_8130324 str r1, [r0] _08130218: pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08130220: .4byte gUnknown_203B108 _08130224: .4byte sub_8130324 thumb_func_end sub_81301B0 thumb_func_start sub_8130228 sub_8130228: @ 8130228 push {r4-r6,lr} sub sp, 0x10 lsls r0, 24 lsrs r6, r0, 24 ldr r4, _08130278 @ =gUnknown_203B108 ldr r0, [r4] ldrb r1, [r0, 0x10] adds r0, r6, 0 bl sub_8131660 ldr r0, [r4] ldrh r4, [r0, 0x10] cmp r4, 0 bne _081302A6 movs r0, 0 movs r1, 0 bl sub_80F6EE4 ldr r2, _0813027C @ =gUnknown_81C5DEA ldr r5, _08130280 @ =gStringVar4 cmp r2, r5 beq _08130284 adds r0, r5, 0 adds r1, r2, 0 bl StringExpandPlaceholders str r4, [sp] movs r0, 0x2 str r0, [sp, 0x4] movs r0, 0x1 str r0, [sp, 0x8] movs r0, 0x3 str r0, [sp, 0xC] movs r0, 0 movs r1, 0x4 adds r2, r5, 0 movs r3, 0 bl AddTextPrinterParametrized b _0813029C .align 2, 0 _08130278: .4byte gUnknown_203B108 _0813027C: .4byte gUnknown_81C5DEA _08130280: .4byte gStringVar4 _08130284: str r4, [sp] movs r0, 0x2 str r0, [sp, 0x4] movs r0, 0x1 str r0, [sp, 0x8] movs r0, 0x3 str r0, [sp, 0xC] movs r0, 0 movs r1, 0x4 movs r3, 0 bl AddTextPrinterParametrized _0813029C: movs r0, 0 movs r1, 0x3 bl CopyWindowToVram b _08130306 _081302A6: movs r0, 0 movs r1, 0 bl sub_80F6EE4 ldr r2, _081302DC @ =gUnknown_81C5E91 ldr r4, _081302E0 @ =gStringVar4 cmp r2, r4 beq _081302E4 adds r0, r4, 0 adds r1, r2, 0 bl StringExpandPlaceholders movs r0, 0 str r0, [sp] movs r0, 0x2 str r0, [sp, 0x4] movs r0, 0x1 str r0, [sp, 0x8] movs r0, 0x3 str r0, [sp, 0xC] movs r0, 0 movs r1, 0x4 adds r2, r4, 0 movs r3, 0 bl AddTextPrinterParametrized b _081302FE .align 2, 0 _081302DC: .4byte gUnknown_81C5E91 _081302E0: .4byte gStringVar4 _081302E4: movs r0, 0 str r0, [sp] movs r0, 0x2 str r0, [sp, 0x4] movs r0, 0x1 str r0, [sp, 0x8] movs r0, 0x3 str r0, [sp, 0xC] movs r0, 0 movs r1, 0x4 movs r3, 0 bl AddTextPrinterParametrized _081302FE: movs r0, 0 movs r1, 0x3 bl CopyWindowToVram _08130306: ldr r0, _0813031C @ =gTasks lsls r1, r6, 2 adds r1, r6 lsls r1, 3 adds r1, r0 ldr r0, _08130320 @ =sub_8130324 str r0, [r1] add sp, 0x10 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _0813031C: .4byte gTasks _08130320: .4byte sub_8130324 thumb_func_end sub_8130228 thumb_func_start sub_8130324 sub_8130324: @ 8130324 push {r4-r7,lr} sub sp, 0x4 lsls r0, 24 lsrs r0, 24 lsls r1, r0, 2 adds r1, r0 lsls r6, r1, 3 ldr r7, _0813037C @ =gTasks+0x8 adds r5, r6, r7 bl ProcessMenuInput lsls r0, 24 asrs r4, r0, 24 cmp r4, 0 beq _08130388 cmp r4, 0 ble _081303A8 cmp r4, 0x4 bgt _081303A8 movs r0, 0x5 bl PlaySE ldrb r0, [r5, 0x1A] movs r1, 0x1 bl sub_810F4D8 ldrb r0, [r5, 0x1A] bl RemoveWindow ldr r0, _08130380 @ =gUnknown_203B108 ldr r0, [r0] ldrb r0, [r0, 0x10] subs r1, r4, 0x1 lsls r1, 24 lsrs r1, 24 bl sub_8131754 movs r0, 0x1 strh r0, [r5, 0x1E] adds r0, r7, 0 subs r0, 0x8 adds r0, r6, r0 ldr r1, _08130384 @ =sub_8130464 b _081303A6 .align 2, 0 _0813037C: .4byte gTasks+0x8 _08130380: .4byte gUnknown_203B108 _08130384: .4byte sub_8130464 _08130388: movs r0, 0x5 bl PlaySE movs r0, 0x1 negs r0, r0 str r4, [sp] movs r1, 0 movs r2, 0 movs r3, 0x10 bl BeginNormalPaletteFade adds r0, r7, 0 subs r0, 0x8 adds r0, r6, r0 ldr r1, _081303B0 @ =sub_81303B4 _081303A6: str r1, [r0] _081303A8: add sp, 0x4 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _081303B0: .4byte sub_81303B4 thumb_func_end sub_8130324 thumb_func_start sub_81303B4 sub_81303B4: @ 81303B4 push {r4-r6,lr} sub sp, 0x8 lsls r0, 24 lsrs r6, r0, 24 ldr r0, _081303F8 @ =gPaletteFade ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 lsls r0, 24 lsrs r5, r0, 24 cmp r5, 0 bne _0813044C ldr r4, _081303FC @ =gUnknown_203B108 ldr r0, [r4] ldrb r0, [r0, 0x10] movs r1, 0 bl sub_8131754 ldr r0, [r4] ldrh r0, [r0, 0x10] cmp r0, 0 bne _08130408 ldr r0, _08130400 @ =gSaveBlock2Ptr ldr r1, [r0] ldrb r2, [r1, 0x8] str r5, [sp] ldr r0, _08130404 @ =sub_8130C64 str r0, [sp, 0x4] movs r0, 0 movs r3, 0 bl DoNamingScreen b _08130440 .align 2, 0 _081303F8: .4byte gPaletteFade _081303FC: .4byte gUnknown_203B108 _08130400: .4byte gSaveBlock2Ptr _08130404: .4byte sub_8130C64 _08130408: ldr r0, _08130454 @ =gTasks lsls r4, r6, 2 adds r4, r6 lsls r4, 3 adds r4, r0 ldrh r0, [r4, 0x22] lsls r0, 24 lsrs r0, 24 movs r1, 0x1 bl sub_810F4D8 ldrh r0, [r4, 0x22] lsls r0, 24 lsrs r0, 24 bl RemoveWindow ldr r0, _08130458 @ =gSaveBlock1Ptr ldr r1, [r0] ldr r0, _0813045C @ =0x00003a4c adds r1, r0 str r5, [sp] ldr r0, _08130460 @ =sub_8130C64 str r0, [sp, 0x4] movs r0, 0x4 movs r2, 0 movs r3, 0 bl DoNamingScreen _08130440: adds r0, r6, 0 movs r1, 0x1 bl sub_8131168 bl FreeAllWindowBuffers _0813044C: add sp, 0x8 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _08130454: .4byte gTasks _08130458: .4byte gSaveBlock1Ptr _0813045C: .4byte 0x00003a4c _08130460: .4byte sub_8130C64 thumb_func_end sub_81303B4 thumb_func_start sub_8130464 sub_8130464: @ 8130464 push {r4-r7,lr} sub sp, 0x10 lsls r0, 24 lsrs r0, 24 lsls r1, r0, 2 adds r1, r0 lsls r6, r1, 3 ldr r7, _081304A0 @ =gTasks+0x8 adds r5, r6, r7 ldr r0, _081304A4 @ =gPaletteFade ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 bne _08130544 movs r1, 0x1E ldrsh r0, [r5, r1] cmp r0, 0x1 bne _08130500 ldr r0, _081304A8 @ =gUnknown_203B108 ldr r0, [r0] ldrh r0, [r0, 0x10] cmp r0, 0 bne _081304B4 ldr r0, _081304AC @ =gStringVar4 ldr r1, _081304B0 @ =gUnknown_81C5E13 bl StringExpandPlaceholders b _081304BC .align 2, 0 _081304A0: .4byte gTasks+0x8 _081304A4: .4byte gPaletteFade _081304A8: .4byte gUnknown_203B108 _081304AC: .4byte gStringVar4 _081304B0: .4byte gUnknown_81C5E13 _081304B4: ldr r0, _081304F4 @ =gStringVar4 ldr r1, _081304F8 @ =gUnknown_81C5EB5 bl StringExpandPlaceholders _081304BC: movs r0, 0 movs r1, 0 bl sub_80F6EE4 ldr r2, _081304F4 @ =gStringVar4 ldr r0, _081304FC @ =gUnknown_203B108 ldr r0, [r0] ldrb r3, [r0, 0x1F] movs r4, 0 str r4, [sp] movs r0, 0x2 str r0, [sp, 0x4] movs r0, 0x1 str r0, [sp, 0x8] movs r0, 0x3 str r0, [sp, 0xC] movs r0, 0 movs r1, 0x4 bl AddTextPrinterParametrized movs r0, 0 movs r1, 0x3 bl CopyWindowToVram strh r4, [r5, 0x1E] movs r0, 0x19 strh r0, [r5, 0x6] b _08130544 .align 2, 0 _081304F4: .4byte gStringVar4 _081304F8: .4byte gUnknown_81C5EB5 _081304FC: .4byte gUnknown_203B108 _08130500: movs r0, 0 bl IsTextPrinterActive lsls r0, 16 cmp r0, 0 bne _08130544 ldrh r0, [r5, 0x6] movs r1, 0x6 ldrsh r4, [r5, r1] cmp r4, 0 beq _0813051C subs r0, 0x1 strh r0, [r5, 0x6] b _08130544 _0813051C: bl sub_80F796C lsls r0, 16 lsrs r0, 16 ldr r1, _0813054C @ =gUnknown_8462ED0 str r0, [sp] movs r0, 0xE str r0, [sp, 0x4] str r4, [sp, 0x8] adds r0, r1, 0 movs r1, 0x2 movs r2, 0 movs r3, 0x2 bl sub_810FF60 adds r0, r7, 0 subs r0, 0x8 adds r0, r6, r0 ldr r1, _08130550 @ =sub_8130554 str r1, [r0] _08130544: add sp, 0x10 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0813054C: .4byte gUnknown_8462ED0 _08130550: .4byte sub_8130554 thumb_func_end sub_8130464 thumb_func_start sub_8130554 sub_8130554: @ 8130554 push {r4-r7,lr} sub sp, 0x10 lsls r0, 24 lsrs r4, r0, 24 bl ProcessMenuInputNoWrap_ lsls r0, 24 asrs r5, r0, 24 cmp r5, 0 beq _0813057C cmp r5, 0 bgt _08130576 movs r0, 0x1 negs r0, r0 cmp r5, r0 beq _08130604 b _0813063E _08130576: cmp r5, 0x1 beq _08130604 b _0813063E _0813057C: movs r0, 0x5 bl PlaySE ldr r1, _081305B0 @ =gTasks lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r6, r0, r1 movs r0, 0x28 strh r0, [r6, 0xE] ldr r7, _081305B4 @ =gUnknown_203B108 ldr r0, [r7] ldrh r0, [r0, 0x10] cmp r0, 0 bne _081305BC movs r0, 0 movs r1, 0x1 bl sub_80F6F54 adds r0, r4, 0 movs r1, 0x2 bl sub_813144C ldr r0, _081305B8 @ =sub_8130650 str r0, [r6] b _0813063E .align 2, 0 _081305B0: .4byte gTasks _081305B4: .4byte gUnknown_203B108 _081305B8: .4byte sub_8130650 _081305BC: ldr r4, _081305F8 @ =gStringVar4 ldr r1, _081305FC @ =gUnknown_81C5EC5 adds r0, r4, 0 bl StringExpandPlaceholders movs r0, 0 movs r1, 0 bl sub_80F6EE4 ldr r0, [r7] ldrb r3, [r0, 0x1F] str r5, [sp] movs r0, 0x2 str r0, [sp, 0x4] movs r0, 0x1 str r0, [sp, 0x8] movs r0, 0x3 str r0, [sp, 0xC] movs r0, 0 movs r1, 0x4 adds r2, r4, 0 bl AddTextPrinterParametrized movs r0, 0 movs r1, 0x3 bl CopyWindowToVram ldr r0, _08130600 @ =sub_8130694 str r0, [r6] b _0813063E .align 2, 0 _081305F8: .4byte gStringVar4 _081305FC: .4byte gUnknown_81C5EC5 _08130600: .4byte sub_8130694 _08130604: movs r0, 0x5 bl PlaySE ldr r0, _08130624 @ =gUnknown_203B108 ldr r0, [r0] ldrh r0, [r0, 0x10] cmp r0, 0 bne _08130630 ldr r0, _08130628 @ =gTasks lsls r1, r4, 2 adds r1, r4 lsls r1, 3 adds r1, r0 ldr r0, _0813062C @ =sub_8130160 b _0813063C .align 2, 0 _08130624: .4byte gUnknown_203B108 _08130628: .4byte gTasks _0813062C: .4byte sub_8130160 _08130630: ldr r0, _08130648 @ =gTasks lsls r1, r4, 2 adds r1, r4 lsls r1, 3 adds r1, r0 ldr r0, _0813064C @ =sub_8130228 _0813063C: str r0, [r1] _0813063E: add sp, 0x10 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08130648: .4byte gTasks _0813064C: .4byte sub_8130228 thumb_func_end sub_8130554 thumb_func_start sub_8130650 sub_8130650: @ 8130650 push {r4-r6,lr} lsls r0, 24 lsrs r0, 24 lsls r1, r0, 2 adds r1, r0 lsls r5, r1, 3 ldr r6, _0813067C @ =gTasks+0x8 adds r4, r5, r6 movs r1, 0x4 ldrsh r0, [r4, r1] cmp r0, 0 beq _0813068A bl sub_8131310 ldrh r1, [r4, 0x6] movs r2, 0x6 ldrsh r0, [r4, r2] cmp r0, 0 beq _08130680 subs r0, r1, 0x1 strh r0, [r4, 0x6] b _0813068A .align 2, 0 _0813067C: .4byte gTasks+0x8 _08130680: adds r0, r6, 0 subs r0, 0x8 adds r0, r5, r0 ldr r1, _08130690 @ =sub_81306D4 str r1, [r0] _0813068A: pop {r4-r6} pop {r0} bx r0 .align 2, 0 _08130690: .4byte sub_81306D4 thumb_func_end sub_8130650 thumb_func_start sub_8130694 sub_8130694: @ 8130694 push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 movs r0, 0 bl IsTextPrinterActive lsls r0, 16 cmp r0, 0 bne _081306C4 movs r0, 0 movs r1, 0x1 bl sub_80F6F54 adds r0, r4, 0 movs r1, 0x2 bl sub_813144C ldr r0, _081306CC @ =gTasks lsls r1, r4, 2 adds r1, r4 lsls r1, 3 adds r1, r0 ldr r0, _081306D0 @ =sub_81307D0 str r0, [r1] _081306C4: pop {r4} pop {r0} bx r0 .align 2, 0 _081306CC: .4byte gTasks _081306D0: .4byte sub_81307D0 thumb_func_end sub_8130694 thumb_func_start sub_81306D4 sub_81306D4: @ 81306D4 push {r4,r5,lr} adds r5, r0, 0 lsls r5, 24 lsrs r5, 24 movs r0, 0x2 movs r1, 0 movs r2, 0 bl ChangeBgX ldr r0, _08130710 @ =gTasks lsls r4, r5, 2 adds r4, r5 lsls r4, 3 adds r4, r0 movs r1, 0 strh r1, [r4, 0xA] ldr r0, _08130714 @ =gSpriteCoordOffsetX strh r1, [r0] movs r0, 0x2 bl sub_81311F4 adds r0, r5, 0 movs r1, 0x2 bl sub_81315CC ldr r0, _08130718 @ =sub_813071C str r0, [r4] pop {r4,r5} pop {r0} bx r0 .align 2, 0 _08130710: .4byte gTasks _08130714: .4byte gSpriteCoordOffsetX _08130718: .4byte sub_813071C thumb_func_end sub_81306D4 thumb_func_start sub_813071C sub_813071C: @ 813071C 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, _08130770 @ =gTasks+0x8 adds r0, r1 movs r1, 0x4 ldrsh r0, [r0, r1] cmp r0, 0 beq _081307BC movs r0, 0 movs r1, 0 bl sub_80F6EE4 ldr r2, _08130774 @ =gUnknown_81C5E2E ldr r4, _08130778 @ =gStringVar4 cmp r2, r4 beq _08130780 adds r0, r4, 0 adds r1, r2, 0 bl StringExpandPlaceholders ldr r0, _0813077C @ =gUnknown_203B108 ldr r0, [r0] ldrb r3, [r0, 0x1F] movs r0, 0 str r0, [sp] movs r0, 0x2 str r0, [sp, 0x4] movs r0, 0x1 str r0, [sp, 0x8] movs r0, 0x3 str r0, [sp, 0xC] movs r0, 0 movs r1, 0x4 adds r2, r4, 0 bl AddTextPrinterParametrized b _0813079E .align 2, 0 _08130770: .4byte gTasks+0x8 _08130774: .4byte gUnknown_81C5E2E _08130778: .4byte gStringVar4 _0813077C: .4byte gUnknown_203B108 _08130780: ldr r0, _081307C4 @ =gUnknown_203B108 ldr r0, [r0] ldrb r3, [r0, 0x1F] movs r0, 0 str r0, [sp] movs r0, 0x2 str r0, [sp, 0x4] movs r0, 0x1 str r0, [sp, 0x8] movs r0, 0x3 str r0, [sp, 0xC] movs r0, 0 movs r1, 0x4 bl AddTextPrinterParametrized _0813079E: movs r0, 0 movs r1, 0x3 bl CopyWindowToVram ldr r0, _081307C4 @ =gUnknown_203B108 ldr r1, [r0] movs r0, 0x1 strh r0, [r1, 0x10] ldr r1, _081307C8 @ =gTasks lsls r0, r5, 2 adds r0, r5 lsls r0, 3 adds r0, r1 ldr r1, _081307CC @ =sub_81301B0 str r1, [r0] _081307BC: add sp, 0x10 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _081307C4: .4byte gUnknown_203B108 _081307C8: .4byte gTasks _081307CC: .4byte sub_81301B0 thumb_func_end sub_813071C thumb_func_start sub_81307D0 sub_81307D0: @ 81307D0 push {r4,r5,lr} lsls r0, 24 lsrs r5, r0, 24 lsls r0, r5, 2 adds r0, r5 lsls r0, 3 ldr r1, _081307FC @ =gTasks+0x8 adds r4, r0, r1 movs r1, 0x4 ldrsh r0, [r4, r1] cmp r0, 0 beq _08130846 bl sub_8131310 ldrh r1, [r4, 0x6] movs r2, 0x6 ldrsh r0, [r4, r2] cmp r0, 0 beq _08130800 subs r0, r1, 0x1 strh r0, [r4, 0x6] b _08130846 .align 2, 0 _081307FC: .4byte gTasks+0x8 _08130800: ldr r0, _08130814 @ =gSaveBlock2Ptr ldr r0, [r0] ldrb r0, [r0, 0x8] cmp r0, 0 bne _08130818 movs r0, 0 movs r1, 0 bl sub_81311F4 b _08130820 .align 2, 0 _08130814: .4byte gSaveBlock2Ptr _08130818: movs r0, 0x1 movs r1, 0 bl sub_81311F4 _08130820: ldr r0, _0813084C @ =gTasks lsls r4, r5, 2 adds r4, r5 lsls r4, 3 adds r4, r0 movs r1, 0 strh r1, [r4, 0xA] ldr r0, _08130850 @ =gSpriteCoordOffsetX strh r1, [r0] movs r0, 0x2 movs r2, 0 bl ChangeBgX adds r0, r5, 0 movs r1, 0x2 bl sub_81315CC ldr r0, _08130854 @ =sub_8130858 str r0, [r4] _08130846: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0813084C: .4byte gTasks _08130850: .4byte gSpriteCoordOffsetX _08130854: .4byte sub_8130858 thumb_func_end sub_81307D0 thumb_func_start sub_8130858 sub_8130858: @ 8130858 push {r4,r5,lr} sub sp, 0x10 lsls r0, 24 lsrs r0, 24 ldr r2, _081308BC @ =gTasks lsls r1, r0, 2 adds r1, r0 lsls r1, 3 adds r5, r1, r2 movs r1, 0xC ldrsh r0, [r5, r1] cmp r0, 0 beq _081308B4 ldr r4, _081308C0 @ =gStringVar4 ldr r1, _081308C4 @ =gUnknown_81C5EF4 adds r0, r4, 0 bl StringExpandPlaceholders movs r0, 0 movs r1, 0 bl sub_80F6EE4 ldr r0, _081308C8 @ =gUnknown_203B108 ldr r0, [r0] ldrb r3, [r0, 0x1F] movs r0, 0 str r0, [sp] movs r0, 0x2 str r0, [sp, 0x4] movs r0, 0x1 str r0, [sp, 0x8] movs r0, 0x3 str r0, [sp, 0xC] movs r0, 0 movs r1, 0x4 adds r2, r4, 0 bl AddTextPrinterParametrized movs r0, 0 movs r1, 0x3 bl CopyWindowToVram movs r0, 0x1E strh r0, [r5, 0xE] ldr r0, _081308CC @ =sub_81308D0 str r0, [r5] _081308B4: add sp, 0x10 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _081308BC: .4byte gTasks _081308C0: .4byte gStringVar4 _081308C4: .4byte gUnknown_81C5EF4 _081308C8: .4byte gUnknown_203B108 _081308CC: .4byte sub_81308D0 thumb_func_end sub_8130858 thumb_func_start sub_81308D0 sub_81308D0: @ 81308D0 push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 movs r0, 0 bl IsTextPrinterActive lsls r0, 16 cmp r0, 0 bne _0813090A ldr r0, _081308FC @ =gTasks lsls r1, r4, 2 adds r1, r4 lsls r1, 3 adds r4, r1, r0 ldrh r1, [r4, 0xE] movs r2, 0xE ldrsh r0, [r4, r2] cmp r0, 0 beq _08130900 subs r0, r1, 0x1 strh r0, [r4, 0xE] b _0813090A .align 2, 0 _081308FC: .4byte gTasks _08130900: movs r0, 0x4 bl FadeOutBGM ldr r0, _08130910 @ =sub_8130914 str r0, [r4] _0813090A: pop {r4} pop {r0} bx r0 .align 2, 0 _08130910: .4byte sub_8130914 thumb_func_end sub_81308D0 thumb_func_start sub_8130914 sub_8130914: @ 8130914 push {r4,lr} adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 ldr r0, _0813093C @ =gUnknown_203B108 ldr r1, [r0] movs r0, 0 strh r0, [r1, 0x12] adds r0, r4, 0 bl sub_8130A38 adds r0, r4, 0 bl sub_8130ADC adds r0, r4, 0 bl sub_8130940 pop {r4} pop {r0} bx r0 .align 2, 0 _0813093C: .4byte gUnknown_203B108 thumb_func_end sub_8130914 thumb_func_start sub_8130940 sub_8130940: @ 8130940 push {r4-r6,lr} lsls r0, 24 lsrs r0, 24 lsls r4, r0, 2 adds r4, r0 lsls r4, 3 ldr r6, _08130978 @ =gTasks+0x8 adds r5, r4, r6 movs r0, 0x2 movs r1, 0x6 movs r2, 0x1 bl SetBgAttribute movs r1, 0 strh r1, [r5] strh r1, [r5, 0x2] movs r2, 0x80 lsls r2, 1 adds r0, r2, 0 strh r0, [r5, 0x4] strh r1, [r5, 0x1E] subs r6, 0x8 adds r4, r6 ldr r0, _0813097C @ =sub_8130980 str r0, [r4] pop {r4-r6} pop {r0} bx r0 .align 2, 0 _08130978: .4byte gTasks+0x8 _0813097C: .4byte sub_8130980 thumb_func_end sub_8130940 thumb_func_start sub_8130980 sub_8130980: @ 8130980 push {r4-r7,lr} mov r7, r8 push {r7} sub sp, 0x10 lsls r0, 24 lsrs r0, 24 lsls r1, r0, 2 adds r1, r0 lsls r7, r1, 3 ldr r0, _08130A2C @ =gTasks+0x8 mov r8, r0 adds r5, r7, r0 ldr r0, _08130A30 @ =gUnknown_203B108 ldr r1, [r0] ldrh r0, [r1, 0x12] adds r0, 0x1 strh r0, [r1, 0x12] ldrh r4, [r1, 0x12] adds r0, r4, 0 movs r1, 0x14 bl __umodsi3 lsls r0, 16 lsrs r6, r0, 16 cmp r6, 0 bne _08130A1E cmp r4, 0x28 bne _081309BE movs r0, 0x27 bl PlaySE _081309BE: ldrh r0, [r5, 0x4] adds r1, r0, 0 subs r1, 0x20 strh r1, [r5, 0x4] subs r0, 0x8 lsls r0, 16 asrs r0, 16 bl sub_80D8B90 adds r4, r0, 0 lsls r4, 16 lsrs r4, 16 ldrh r0, [r5, 0x4] subs r0, 0x10 lsls r0, 16 asrs r0, 16 bl sub_80D8B90 movs r1, 0xF0 lsls r1, 7 movs r2, 0xA8 lsls r2, 7 movs r3, 0x54 str r3, [sp] lsls r4, 16 asrs r4, 16 str r4, [sp, 0x4] lsls r0, 16 asrs r0, 16 str r0, [sp, 0x8] str r6, [sp, 0xC] movs r0, 0x2 movs r3, 0x78 bl SetBgAffine movs r1, 0x4 ldrsh r0, [r5, r1] cmp r0, 0x60 bgt _08130A1E movs r0, 0x1 strh r0, [r5, 0x1E] movs r0, 0x24 strh r0, [r5] mov r0, r8 subs r0, 0x8 adds r0, r7, r0 ldr r1, _08130A34 @ =sub_8130BA8 str r1, [r0] _08130A1E: add sp, 0x10 pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08130A2C: .4byte gTasks+0x8 _08130A30: .4byte gUnknown_203B108 _08130A34: .4byte sub_8130BA8 thumb_func_end sub_8130980 thumb_func_start sub_8130A38 sub_8130A38: @ 8130A38 push {lr} sub sp, 0x4 ldr r0, _08130A74 @ =sub_8130A80 movs r1, 0x1 bl CreateTask lsls r0, 24 lsrs r0, 24 lsls r1, r0, 2 adds r1, r0 lsls r1, 3 ldr r0, _08130A78 @ =gTasks+0x8 adds r1, r0 movs r0, 0 strh r0, [r1] strh r0, [r1, 0x2] strh r0, [r1, 0x4] strh r0, [r1, 0x1E] ldr r0, _08130A7C @ =0xffff0fcf movs r1, 0 str r1, [sp] movs r1, 0x4 movs r2, 0 movs r3, 0x10 bl BeginNormalPaletteFade add sp, 0x4 pop {r0} bx r0 .align 2, 0 _08130A74: .4byte sub_8130A80 _08130A78: .4byte gTasks+0x8 _08130A7C: .4byte 0xffff0fcf thumb_func_end sub_8130A38 thumb_func_start sub_8130A80 sub_8130A80: @ 8130A80 push {r4,lr} sub sp, 0x4 lsls r0, 24 lsrs r4, r0, 24 lsls r0, r4, 2 adds r0, r4 lsls r0, 3 ldr r1, _08130AB8 @ =gTasks+0x8 adds r2, r0, r1 ldr r0, _08130ABC @ =gPaletteFade ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 bne _08130AD4 ldrh r0, [r2, 0x2] movs r3, 0x2 ldrsh r1, [r2, r3] cmp r1, 0 beq _08130AC0 adds r0, r4, 0 bl DestroyTask adds r0, r4, 0 movs r1, 0x1 bl sub_8131168 b _08130AD4 .align 2, 0 _08130AB8: .4byte gTasks+0x8 _08130ABC: .4byte gPaletteFade _08130AC0: adds r0, 0x1 strh r0, [r2, 0x2] movs r0, 0xF0 lsls r0, 8 str r1, [sp] movs r1, 0 movs r2, 0 movs r3, 0x10 bl BeginNormalPaletteFade _08130AD4: add sp, 0x4 pop {r4} pop {r0} bx r0 thumb_func_end sub_8130A80 thumb_func_start sub_8130ADC sub_8130ADC: @ 8130ADC push {lr} ldr r0, _08130B08 @ =sub_8130B10 movs r1, 0x2 bl CreateTask lsls r0, 24 lsrs r0, 24 lsls r1, r0, 2 adds r1, r0 lsls r1, 3 ldr r0, _08130B0C @ =gTasks+0x8 adds r1, r0 movs r2, 0x8 strh r2, [r1] movs r0, 0 strh r0, [r1, 0x2] strh r2, [r1, 0x4] strh r0, [r1, 0x1C] strh r0, [r1, 0x1E] pop {r0} bx r0 .align 2, 0 _08130B08: .4byte sub_8130B10 _08130B0C: .4byte gTasks+0x8 thumb_func_end sub_8130ADC thumb_func_start sub_8130B10 sub_8130B10: @ 8130B10 push {r4-r7,lr} lsls r0, 24 lsrs r5, r0, 24 lsls r0, r5, 2 adds r0, r5 lsls r0, 3 ldr r1, _08130B30 @ =gTasks+0x8 adds r4, r0, r1 ldrh r1, [r4] movs r2, 0 ldrsh r0, [r4, r2] cmp r0, 0 beq _08130B34 subs r0, r1, 0x1 strh r0, [r4] b _08130B96 .align 2, 0 _08130B30: .4byte gTasks+0x8 _08130B34: movs r1, 0x2 ldrsh r0, [r4, r1] cmp r0, 0 bgt _08130B4A ldrh r1, [r4, 0x4] movs r2, 0x4 ldrsh r0, [r4, r2] cmp r0, 0 beq _08130B4A subs r0, r1, 0x1 strh r0, [r4, 0x4] _08130B4A: ldrb r2, [r4, 0x1C] ldr r7, _08130B9C @ =0x00007fff movs r0, 0x40 movs r1, 0x20 adds r3, r7, 0 bl BlendPalette ldrh r1, [r4, 0x1C] adds r1, 0x1 strh r1, [r4, 0x1C] ldrh r0, [r4, 0x2] subs r0, 0x1 strh r0, [r4, 0x2] ldrh r0, [r4, 0x4] strh r0, [r4] lsls r1, 16 asrs r1, 16 cmp r1, 0xE ble _08130B96 movs r2, 0 ldr r6, _08130BA0 @ =gPlttBufferFaded adds r3, r7, 0 ldr r4, _08130BA4 @ =gPlttBufferUnfaded _08130B78: adds r0, r2, 0 adds r0, 0x40 lsls r0, 1 adds r1, r0, r6 strh r3, [r1] adds r0, r4 strh r3, [r0] adds r0, r2, 0x1 lsls r0, 24 lsrs r2, r0, 24 cmp r2, 0x1F bls _08130B78 adds r0, r5, 0 bl DestroyTask _08130B96: pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08130B9C: .4byte 0x00007fff _08130BA0: .4byte gPlttBufferFaded _08130BA4: .4byte gPlttBufferUnfaded thumb_func_end sub_8130B10 thumb_func_start sub_8130BA8 sub_8130BA8: @ 8130BA8 push {r4,lr} sub sp, 0x4 lsls r0, 24 lsrs r0, 24 ldr r2, _08130BCC @ =gTasks lsls r1, r0, 2 adds r1, r0 lsls r1, 3 adds r4, r1, r2 ldrh r0, [r4, 0x8] movs r2, 0x8 ldrsh r1, [r4, r2] cmp r1, 0 beq _08130BD0 subs r0, 0x1 strh r0, [r4, 0x8] b _08130BE2 .align 2, 0 _08130BCC: .4byte gTasks _08130BD0: str r1, [sp] movs r0, 0x30 movs r1, 0x2 movs r2, 0 movs r3, 0x10 bl BeginNormalPaletteFade ldr r0, _08130BEC @ =sub_8130BF0 str r0, [r4] _08130BE2: add sp, 0x4 pop {r4} pop {r0} bx r0 .align 2, 0 _08130BEC: .4byte sub_8130BF0 thumb_func_end sub_8130BA8 thumb_func_start sub_8130BF0 sub_8130BF0: @ 8130BF0 push {lr} lsls r0, 24 lsrs r2, r0, 24 ldr r0, _08130C14 @ =gPaletteFade ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 bne _08130C10 ldr r0, _08130C18 @ =gTasks lsls r1, r2, 2 adds r1, r2 lsls r1, 3 adds r1, r0 ldr r0, _08130C1C @ =sub_8130C20 str r0, [r1] _08130C10: pop {r0} bx r0 .align 2, 0 _08130C14: .4byte gPaletteFade _08130C18: .4byte gTasks _08130C1C: .4byte sub_8130C20 thumb_func_end sub_8130BF0 thumb_func_start sub_8130C20 sub_8130C20: @ 8130C20 push {r4,r5,lr} adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 bl FreeAllWindowBuffers bl sub_8044D80 ldr r5, _08130C58 @ =gUnknown_203B108 ldr r0, [r5] bl Free movs r0, 0 str r0, [r5] ldr r2, _08130C5C @ =gTextFlags ldrb r1, [r2] subs r0, 0x2 ands r0, r1 strb r0, [r2] ldr r0, _08130C60 @ =CB2_NewGame bl SetMainCallback2 adds r0, r4, 0 bl DestroyTask pop {r4,r5} pop {r0} bx r0 .align 2, 0 _08130C58: .4byte gUnknown_203B108 _08130C5C: .4byte gTextFlags _08130C60: .4byte CB2_NewGame thumb_func_end sub_8130C20 thumb_func_start sub_8130C64 sub_8130C64: @ 8130C64 push {r4,r5,lr} sub sp, 0x10 ldr r0, _08130C84 @ =gMain movs r1, 0x87 lsls r1, 3 adds r0, r1 ldrb r0, [r0] cmp r0, 0x7 bls _08130C78 b _08130F10 _08130C78: lsls r0, 2 ldr r1, _08130C88 @ =_08130C8C adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08130C84: .4byte gMain _08130C88: .4byte _08130C8C .align 2, 0 _08130C8C: .4byte _08130CAC .4byte _08130D18 .4byte _08130D78 .4byte _08130DB2 .4byte _08130DD0 .4byte _08130DE8 .4byte _08130E38 .4byte _08130EB8 _08130CAC: movs r0, 0 bl SetVBlankCallback add r1, sp, 0x8 movs r0, 0 strh r0, [r1] ldr r1, _08130D04 @ =0x040000d4 add r0, sp, 0x8 str r0, [r1] movs r0, 0xC0 lsls r0, 19 str r0, [r1, 0x4] ldr r0, _08130D08 @ =0x8100c000 str r0, [r1, 0x8] ldr r0, [r1, 0x8] movs r2, 0 str r2, [sp, 0xC] add r0, sp, 0xC str r0, [r1] movs r0, 0xE0 lsls r0, 19 str r0, [r1, 0x4] ldr r0, _08130D0C @ =0x85000100 str r0, [r1, 0x8] ldr r0, [r1, 0x8] add r0, sp, 0x8 strh r2, [r0] str r0, [r1] ldr r0, _08130D10 @ =0x05000002 str r0, [r1, 0x4] ldr r0, _08130D14 @ =0x810001ff str r0, [r1, 0x8] ldr r0, [r1, 0x8] bl ResetPaletteFade bl remove_some_task bl ResetSpriteData bl FreeAllSpritePalettes bl reset_temp_tile_data_buffers b _08130F10 .align 2, 0 _08130D04: .4byte 0x040000d4 _08130D08: .4byte 0x8100c000 _08130D0C: .4byte 0x85000100 _08130D10: .4byte 0x05000002 _08130D14: .4byte 0x810001ff _08130D18: movs r0, 0 bl ResetBgsAndClearDma3BusyFlags ldr r1, _08130D70 @ =gUnknown_8462E58 movs r0, 0x1 movs r2, 0x3 bl InitBgsFromTemplates ldr r4, _08130D74 @ =gUnknown_203B108 ldr r1, [r4] movs r0, 0xE1 lsls r0, 5 adds r1, r0 movs r0, 0x1 bl SetBgTilemapBuffer ldr r1, [r4] movs r0, 0xC1 lsls r0, 5 adds r1, r0 movs r0, 0x2 bl SetBgTilemapBuffer movs r0, 0x1 movs r1, 0 movs r2, 0 bl ChangeBgX movs r0, 0x1 movs r1, 0 movs r2, 0 bl ChangeBgY movs r0, 0x2 movs r1, 0 movs r2, 0 bl ChangeBgX movs r0, 0x2 movs r1, 0 movs r2, 0 bl ChangeBgY b _08130F10 .align 2, 0 _08130D70: .4byte gUnknown_8462E58 _08130D74: .4byte gUnknown_203B108 _08130D78: movs r0, 0x40 movs r1, 0 bl SetGpuReg movs r0, 0x44 movs r1, 0 bl SetGpuReg movs r0, 0x48 movs r1, 0 bl SetGpuReg movs r0, 0x4A movs r1, 0 bl SetGpuReg movs r0, 0x50 movs r1, 0 bl SetGpuReg movs r0, 0x52 movs r1, 0 bl SetGpuReg movs r0, 0x54 movs r1, 0 bl SetGpuReg b _08130F10 _08130DB2: bl FreeAllWindowBuffers bl sub_80F6C6C bl sub_80F6C98 ldr r0, _08130DCC @ =gUnknown_8460568 movs r1, 0 movs r2, 0xE0 bl LoadPalette b _08130F10 .align 2, 0 _08130DCC: .4byte gUnknown_8460568 _08130DD0: ldr r1, _08130DE4 @ =gUnknown_8460CA4 movs r0, 0 str r0, [sp] movs r0, 0x1 movs r2, 0 movs r3, 0 bl decompress_and_copy_tile_data_to_vram b _08130F10 .align 2, 0 _08130DE4: .4byte gUnknown_8460CA4 _08130DE8: bl free_temp_tile_data_buffers_if_possible lsls r0, 24 cmp r0, 0 beq _08130DF4 b _08130F1E _08130DF4: movs r5, 0x1E str r5, [sp] movs r4, 0x14 str r4, [sp, 0x4] movs r0, 0x1 movs r1, 0 movs r2, 0 movs r3, 0 bl FillBgTilemapBufferRect_Palette0 ldr r1, _08130E34 @ =gUnknown_8460CE8 movs r0, 0x1 movs r2, 0 movs r3, 0 bl CopyToBgTilemapBuffer str r5, [sp] str r4, [sp, 0x4] movs r0, 0x2 movs r1, 0 movs r2, 0 movs r3, 0 bl FillBgTilemapBufferRect_Palette0 movs r0, 0x1 bl CopyBgTilemapBufferToVram movs r0, 0x2 bl CopyBgTilemapBufferToVram b _08130F10 .align 2, 0 _08130E34: .4byte gUnknown_8460CE8 _08130E38: ldr r0, _08130E5C @ =sub_8130464 movs r1, 0 bl CreateTask lsls r0, 24 lsrs r5, r0, 24 ldr r0, _08130E60 @ =gUnknown_203B108 ldr r0, [r0] ldrh r0, [r0, 0x10] cmp r0, 0 bne _08130E72 ldr r0, _08130E64 @ =gSaveBlock2Ptr ldr r0, [r0] ldrb r0, [r0, 0x8] cmp r0, 0 bne _08130E68 movs r0, 0 b _08130E6A .align 2, 0 _08130E5C: .4byte sub_8130464 _08130E60: .4byte gUnknown_203B108 _08130E64: .4byte gSaveBlock2Ptr _08130E68: movs r0, 0x1 _08130E6A: movs r1, 0 bl sub_81311F4 b _08130E7A _08130E72: movs r0, 0x2 movs r1, 0 bl sub_81311F4 _08130E7A: ldr r0, _08130EA8 @ =gTasks lsls r4, r5, 2 adds r4, r5 lsls r4, 3 adds r4, r0 ldr r0, _08130EAC @ =0x0000ffc4 strh r0, [r4, 0xA] ldr r1, _08130EB0 @ =gSpriteCoordOffsetX ldrh r0, [r1] adds r0, 0x3C strh r0, [r1] ldr r1, _08130EB4 @ =0xffffc400 movs r0, 0x2 movs r2, 0 bl ChangeBgX adds r0, r5, 0 movs r1, 0x1 bl sub_8130FD4 movs r0, 0x1 strh r0, [r4, 0x26] b _08130F10 .align 2, 0 _08130EA8: .4byte gTasks _08130EAC: .4byte 0x0000ffc4 _08130EB0: .4byte gSpriteCoordOffsetX _08130EB4: .4byte 0xffffc400 _08130EB8: movs r0, 0x1 negs r0, r0 movs r1, 0 str r1, [sp] movs r2, 0x10 movs r3, 0 bl BeginNormalPaletteFade 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, 0x1 bl EnableInterrupts ldr r0, _08130F04 @ =sub_812EAFC bl SetVBlankCallback ldr r2, _08130F08 @ =gTextFlags ldrb r0, [r2] movs r1, 0x1 orrs r0, r1 strb r0, [r2] ldr r0, _08130F0C @ =sub_812EB10 bl SetMainCallback2 b _08130F1E .align 2, 0 _08130F04: .4byte sub_812EAFC _08130F08: .4byte gTextFlags _08130F0C: .4byte sub_812EB10 _08130F10: ldr r1, _08130F28 @ =gMain movs r0, 0x87 lsls r0, 3 adds r1, r0 ldrb r0, [r1] adds r0, 0x1 strb r0, [r1] _08130F1E: add sp, 0x10 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _08130F28: .4byte gMain thumb_func_end sub_8130C64 thumb_func_start sub_8130F2C sub_8130F2C: @ 8130F2C push {r4,r5,lr} adds r5, r0, 0 lsls r5, 24 lsrs r5, 24 ldr r4, _08130FA0 @ =gUnknown_8235194 movs r0, 0 bl sub_8044E00 adds r1, r0, 0 adds r0, r4, 0 movs r2, 0x1D bl DecompressPicFromTable ldr r0, _08130FA4 @ =gUnknown_82373F4 bl sub_800F078 movs r0, 0x1D movs r1, 0 bl sub_803F7D4 ldr r0, _08130FA8 @ =gMultiuseSpriteTemplate movs r1, 0x60 movs r2, 0x60 movs r3, 0x1 bl CreateSprite lsls r0, 24 lsrs r0, 24 ldr r4, _08130FAC @ =gSprites lsls r2, r0, 4 adds r2, r0 lsls r2, 2 adds r1, r4, 0 adds r1, 0x1C adds r1, r2, r1 ldr r3, _08130FB0 @ =SpriteCallbackDummy str r3, [r1] adds r2, r4 ldrb r3, [r2, 0x5] movs r1, 0xD negs r1, r1 ands r1, r3 movs r3, 0x4 orrs r1, r3 strb r1, [r2, 0x5] adds r2, 0x3E ldrb r1, [r2] orrs r1, r3 strb r1, [r2] ldr r2, _08130FB4 @ =gTasks lsls r1, r5, 2 adds r1, r5 lsls r1, 3 adds r1, r2 strh r0, [r1, 0x10] pop {r4,r5} pop {r0} bx r0 .align 2, 0 _08130FA0: .4byte gUnknown_8235194 _08130FA4: .4byte gUnknown_82373F4 _08130FA8: .4byte gMultiuseSpriteTemplate _08130FAC: .4byte gSprites _08130FB0: .4byte SpriteCallbackDummy _08130FB4: .4byte gTasks thumb_func_end sub_8130F2C thumb_func_start sub_8130FB8 sub_8130FB8: @ 8130FB8 ldr r3, _08130FD0 @ =gSprites movs r1, 0x2E ldrsh r2, [r0, r1] lsls r1, r2, 4 adds r1, r2 lsls r1, 2 adds r1, r3 adds r1, 0x2B ldrb r1, [r1] strh r1, [r0, 0x26] bx lr .align 2, 0 _08130FD0: .4byte gSprites thumb_func_end sub_8130FB8 thumb_func_start sub_8130FD4 sub_8130FD4: @ 8130FD4 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} lsls r0, 24 lsrs r0, 24 mov r9, r0 lsls r1, 24 lsrs r1, 24 movs r4, 0 cmp r1, 0 beq _08130FF4 cmp r1, 0x1 beq _081310C8 b _08131146 _08130FF4: ldr r4, _081310B0 @ =gUnknown_8462EFC adds r0, r4, 0 bl LoadCompressedObjectPic adds r0, r4, 0 adds r0, 0x8 bl LoadCompressedObjectPic adds r4, 0x10 adds r0, r4, 0 bl LoadCompressedObjectPic ldr r0, _081310B4 @ =gUnknown_8462F1C bl LoadSpritePalette ldr r0, _081310B8 @ =gUnknown_846302C mov r8, r0 movs r1, 0x10 movs r2, 0x11 movs r3, 0x2 bl CreateSprite lsls r0, 24 lsrs r7, r0, 24 ldr r6, _081310BC @ =gSprites lsls r1, r7, 4 adds r1, r7 lsls r1, 2 adds r1, r6 ldrb r2, [r1, 0x5] movs r5, 0xD negs r5, r5 adds r0, r5, 0 ands r0, r2 strb r0, [r1, 0x5] ldr r0, _081310C0 @ =gTasks mov r1, r9 lsls r4, r1, 2 add r4, r9 lsls r4, 3 adds r4, r0 strh r7, [r4, 0x16] mov r0, r8 adds r0, 0x18 movs r1, 0x10 movs r2, 0x9 movs r3, 0x3 bl CreateSprite lsls r0, 24 lsrs r7, r0, 24 lsls r1, r7, 4 adds r1, r7 lsls r1, 2 adds r2, r1, r6 ldrb r3, [r2, 0x5] adds r0, r5, 0 ands r0, r3 strb r0, [r2, 0x5] ldrh r0, [r4, 0x16] strh r0, [r2, 0x2E] movs r2, 0x1C adds r2, r6 mov r10, r2 add r1, r10 ldr r3, _081310C4 @ =sub_8130FB8 mov r9, r3 str r3, [r1] strh r7, [r4, 0x18] movs r0, 0x30 add r8, r0 mov r0, r8 movs r1, 0x18 movs r2, 0xD movs r3, 0x1 bl CreateSprite lsls r0, 24 lsrs r7, r0, 24 lsls r0, r7, 4 adds r0, r7 lsls r0, 2 adds r6, r0, r6 ldrb r1, [r6, 0x5] ands r5, r1 strb r5, [r6, 0x5] ldrh r1, [r4, 0x16] strh r1, [r6, 0x2E] add r0, r10 mov r1, r9 str r1, [r0] strh r7, [r4, 0x1A] b _08131146 .align 2, 0 _081310B0: .4byte gUnknown_8462EFC _081310B4: .4byte gUnknown_8462F1C _081310B8: .4byte gUnknown_846302C _081310BC: .4byte gSprites _081310C0: .4byte gTasks _081310C4: .4byte sub_8130FB8 _081310C8: ldr r0, _08131154 @ =gUnknown_8462F14 bl LoadCompressedObjectPic ldr r0, _08131158 @ =gUnknown_8462F24 bl LoadSpritePalette mov r2, r9 lsls r5, r2, 2 ldr r3, _0813115C @ =gTasks+0x8 mov r8, r3 ldr r6, _08131160 @ =gSprites _081310DE: lsls r0, r4, 1 adds r0, r4 lsls r0, 3 ldr r1, _08131164 @ =gUnknown_8462F50 adds r0, r1 lsls r1, r4, 21 movs r2, 0xB0 lsls r2, 15 adds r1, r2 asrs r1, 16 movs r2, 0x70 movs r3, 0x1 bl CreateSprite lsls r0, 24 lsrs r7, r0, 24 lsls r2, r7, 4 adds r2, r7 lsls r2, 2 adds r2, r6 ldrb r1, [r2, 0x5] movs r3, 0xD negs r3, r3 adds r0, r3, 0 ands r1, r0 movs r0, 0x8 orrs r1, r0 strb r1, [r2, 0x5] adds r3, r2, 0 adds r3, 0x2C ldrb r0, [r3] movs r1, 0x40 orrs r0, r1 strb r0, [r3] adds r2, 0x3E ldrb r0, [r2] movs r1, 0x2 orrs r0, r1 strb r0, [r2] adds r1, r4, 0x7 lsls r1, 1 mov r2, r9 adds r0, r5, r2 lsls r0, 3 adds r1, r0 add r1, r8 strh r7, [r1] adds r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0x2 bls _081310DE _08131146: pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08131154: .4byte gUnknown_8462F14 _08131158: .4byte gUnknown_8462F24 _0813115C: .4byte gTasks+0x8 _08131160: .4byte gSprites _08131164: .4byte gUnknown_8462F50 thumb_func_end sub_8130FD4 thumb_func_start sub_8131168 sub_8131168: @ 8131168 push {r4-r7,lr} lsls r0, 24 lsrs r0, 24 lsls r1, 24 lsrs r6, r1, 24 movs r4, 0 lsls r1, r0, 2 adds r1, r0 lsls r5, r1, 3 ldr r7, _081311AC @ =gTasks+0x8 _0813117C: adds r0, r4, 0x7 lsls r0, 1 adds r0, r5 adds r0, r7 movs r2, 0 ldrsh r1, [r0, r2] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 ldr r1, _081311B0 @ =gSprites adds r0, r1 bl DestroySprite adds r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0x2 bls _0813117C cmp r6, 0 beq _081311B4 cmp r6, 0x1 beq _081311DC b _081311EC .align 2, 0 _081311AC: .4byte gTasks+0x8 _081311B0: .4byte gSprites _081311B4: ldr r0, _081311D0 @ =0x00001003 bl FreeSpriteTilesByTag ldr r0, _081311D4 @ =0x00001002 bl FreeSpriteTilesByTag ldr r4, _081311D8 @ =0x00001001 adds r0, r4, 0 bl FreeSpriteTilesByTag adds r0, r4, 0 bl FreeSpritePaletteByTag b _081311EC .align 2, 0 _081311D0: .4byte 0x00001003 _081311D4: .4byte 0x00001002 _081311D8: .4byte 0x00001001 _081311DC: movs r4, 0x80 lsls r4, 5 adds r0, r4, 0 bl FreeSpriteTilesByTag adds r0, r4, 0 bl FreeSpritePaletteByTag _081311EC: pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_8131168 thumb_func_start sub_81311F4 sub_81311F4: @ 81311F4 push {r4-r6,lr} sub sp, 0x24 lsls r0, 16 lsrs r0, 16 adds r2, r0, 0 lsls r1, 16 lsrs r4, r1, 16 cmp r0, 0x1 beq _08131230 cmp r0, 0x1 bgt _08131210 cmp r0, 0 beq _0813121A b _081312F6 _08131210: cmp r2, 0x2 beq _08131248 cmp r2, 0x3 beq _0813126C b _081312F6 _0813121A: ldr r0, _08131228 @ =gUnknown_84615FC movs r1, 0x40 movs r2, 0x40 bl LoadPalette ldr r0, _0813122C @ =gUnknown_846163C b _08131254 .align 2, 0 _08131228: .4byte gUnknown_84615FC _0813122C: .4byte gUnknown_846163C _08131230: ldr r0, _08131240 @ =gUnknown_8460ED4 movs r1, 0x40 movs r2, 0x40 bl LoadPalette ldr r0, _08131244 @ =gUnknown_8460F14 b _08131254 .align 2, 0 _08131240: .4byte gUnknown_8460ED4 _08131244: .4byte gUnknown_8460F14 _08131248: ldr r0, _08131260 @ =gUnknown_84623AC movs r1, 0x60 movs r2, 0x40 bl LoadPalette ldr r0, _08131264 @ =gUnknown_84623EC _08131254: ldr r2, _08131268 @ =0x06000600 adds r1, r4, r2 bl LZ77UnCompVram b _08131280 .align 2, 0 _08131260: .4byte gUnknown_84623AC _08131264: .4byte gUnknown_84623EC _08131268: .4byte 0x06000600 _0813126C: ldr r0, _08131300 @ =gUnknown_8461CD4 movs r1, 0x60 movs r2, 0x40 bl LoadPalette ldr r0, _08131304 @ =gUnknown_8461D14 ldr r2, _08131308 @ =0x06000600 adds r1, r4, r2 bl LZ77UnCompVram _08131280: movs r0, 0x60 bl AllocZeroed ldr r2, _0813130C @ =gUnknown_203B108 ldr r1, [r2] str r0, [r1, 0x4] movs r1, 0 lsrs r6, r4, 6 _08131290: ldr r0, [r2] ldr r0, [r0, 0x4] adds r0, r1 strb r1, [r0] adds r1, 0x1 cmp r1, 0x5F bls _08131290 movs r0, 0x20 str r0, [sp] str r0, [sp, 0x4] movs r5, 0x10 str r5, [sp, 0x8] movs r0, 0x2 movs r1, 0 movs r2, 0 movs r3, 0 bl FillBgTilemapBufferRect ldr r4, _0813130C @ =gUnknown_203B108 ldr r0, [r4] ldr r1, [r0, 0x4] movs r3, 0x8 str r3, [sp] movs r2, 0xC str r2, [sp, 0x4] movs r0, 0xB str r0, [sp, 0x8] movs r0, 0x2 str r0, [sp, 0xC] str r3, [sp, 0x10] str r2, [sp, 0x14] str r5, [sp, 0x18] adds r0, r6, 0 adds r0, 0x18 str r0, [sp, 0x1C] movs r5, 0 str r5, [sp, 0x20] movs r0, 0x2 movs r2, 0 movs r3, 0 bl CopyRectToBgTilemapBufferRect movs r0, 0x2 bl CopyBgTilemapBufferToVram ldr r0, [r4] ldr r0, [r0, 0x4] bl Free ldr r0, [r4] str r5, [r0, 0x4] _081312F6: add sp, 0x24 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _08131300: .4byte gUnknown_8461CD4 _08131304: .4byte gUnknown_8461D14 _08131308: .4byte 0x06000600 _0813130C: .4byte gUnknown_203B108 thumb_func_end sub_81311F4 thumb_func_start sub_8131310 sub_8131310: @ 8131310 push {lr} sub sp, 0xC movs r0, 0x8 str r0, [sp] movs r0, 0xC str r0, [sp, 0x4] movs r0, 0x10 str r0, [sp, 0x8] movs r0, 0x2 movs r1, 0 movs r2, 0xB movs r3, 0x1 bl FillBgTilemapBufferRect movs r0, 0x2 bl CopyBgTilemapBufferToVram add sp, 0xC pop {r0} bx r0 thumb_func_end sub_8131310 thumb_func_start sub_8131338 sub_8131338: @ 8131338 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} lsls r0, 24 lsrs r6, r0, 24 movs r4, 0 ldr r1, _081313A8 @ =gTasks lsls r0, r6, 2 mov r9, r0 adds r0, r6 lsls r5, r0, 3 adds r2, r5, r1 ldrh r3, [r2, 0xA] movs r7, 0xA ldrsh r0, [r2, r7] mov r8, r1 cmp r0, 0 bne _081313B0 movs r1, 0x8 ldrsh r0, [r2, r1] lsls r1, r0, 2 adds r1, r0 lsls r1, 3 add r1, r8 movs r0, 0x1 strh r0, [r1, 0xC] adds r0, r6, 0 bl DestroyTask ldr r6, _081313AC @ =gSprites adds r2, r5, 0 mov r5, r8 adds r5, 0x8 movs r3, 0x4 _08131380: adds r0, r4, 0x7 lsls r0, 1 adds r0, r2 adds r0, r5 movs r7, 0 ldrsh r1, [r0, r7] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r6 adds r0, 0x3E ldrb r1, [r0] orrs r1, r3 strb r1, [r0] adds r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0x2 bls _08131380 b _0813143A .align 2, 0 _081313A8: .4byte gTasks _081313AC: .4byte gSprites _081313B0: ldrh r1, [r2, 0x10] movs r7, 0x10 ldrsh r0, [r2, r7] cmp r0, 0 beq _081313C0 subs r0, r1, 0x1 strh r0, [r2, 0x10] b _0813143A _081313C0: ldrh r0, [r2, 0xE] strh r0, [r2, 0x10] subs r1, r3, 0x1 strh r1, [r2, 0xA] ldrh r0, [r2, 0xC] adds r0, 0x1 strh r0, [r2, 0xC] lsls r1, 16 asrs r1, 16 mov r12, r9 cmp r1, 0x8 bne _0813141E adds r7, r5, 0 movs r0, 0x8 add r0, r8 mov r10, r0 movs r5, 0x1 movs r1, 0x5 negs r1, r1 mov r9, r1 _081313E8: adds r0, r4, 0x7 lsls r0, 1 adds r0, r7 add r0, r10 movs r2, 0 ldrsh r0, [r0, r2] lsls r2, r0, 4 adds r2, r0 lsls r2, 2 ldr r0, _08131448 @ =gSprites adds r2, r0 adds r2, 0x3E ldrb r3, [r2] lsls r1, r3, 29 lsrs r1, 31 eors r1, r5 ands r1, r5 lsls r1, 2 mov r0, r9 ands r0, r3 orrs r0, r1 strb r0, [r2] adds r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0x2 bls _081313E8 _0813141E: mov r1, r12 adds r0, r1, r6 lsls r0, 3 add r0, r8 movs r2, 0xC ldrsh r1, [r0, r2] lsls r1, 8 ldrh r0, [r0, 0xA] adds r1, r0 lsls r1, 16 lsrs r1, 16 movs r0, 0x52 bl SetGpuReg _0813143A: pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08131448: .4byte gSprites thumb_func_end sub_8131338 thumb_func_start sub_813144C sub_813144C: @ 813144C push {r4-r7,lr} mov r7, r8 push {r7} adds r4, r0, 0 adds r6, r1, 0 lsls r4, 24 lsrs r4, 24 lsls r6, 24 lsrs r6, 24 movs r7, 0 ldr r1, _081314D0 @ =0x00001244 movs r0, 0x50 bl SetGpuReg movs r0, 0x52 movs r1, 0x10 bl SetGpuReg movs r0, 0x54 movs r1, 0 bl SetGpuReg ldr r0, _081314D4 @ =gTasks mov r8, r0 lsls r5, r4, 2 adds r5, r4 lsls r5, 3 adds r0, r5, r0 strh r7, [r0, 0xC] ldr r0, _081314D8 @ =sub_8131338 movs r1, 0 bl CreateTask lsls r0, 24 lsrs r0, 24 lsls r2, r0, 2 adds r2, r0 lsls r2, 3 mov r1, r8 adds r0, r2, r1 strh r4, [r0, 0x8] movs r1, 0x10 strh r1, [r0, 0xA] strh r7, [r0, 0xC] strh r6, [r0, 0xE] strh r6, [r0, 0x10] mov r3, r8 adds r3, 0x8 _081314AC: adds r0, r7, 0x7 lsls r0, 1 adds r1, r0, r2 adds r1, r3 adds r0, r5 adds r0, r3 ldrh r0, [r0] strh r0, [r1] adds r0, r7, 0x1 lsls r0, 24 lsrs r7, r0, 24 cmp r7, 0x2 bls _081314AC pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _081314D0: .4byte 0x00001244 _081314D4: .4byte gTasks _081314D8: .4byte sub_8131338 thumb_func_end sub_813144C thumb_func_start sub_81314DC sub_81314DC: @ 81314DC push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} lsls r0, 24 lsrs r6, r0, 24 movs r4, 0 ldr r1, _08131528 @ =gTasks lsls r5, r6, 2 adds r0, r5, r6 lsls r0, 3 mov r9, r0 adds r2, r0, r1 ldrh r3, [r2, 0xA] movs r7, 0xA ldrsh r0, [r2, r7] mov r12, r1 cmp r0, 0x10 bne _08131530 ldr r0, _0813152C @ =gPaletteFade ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 bne _081315BA movs r1, 0x8 ldrsh r0, [r2, r1] lsls r1, r0, 2 adds r1, r0 lsls r1, 3 add r1, r12 movs r0, 0x1 strh r0, [r1, 0xC] adds r0, r6, 0 bl DestroyTask b _081315BA .align 2, 0 _08131528: .4byte gTasks _0813152C: .4byte gPaletteFade _08131530: ldrh r1, [r2, 0x10] movs r7, 0x10 ldrsh r0, [r2, r7] cmp r0, 0 beq _08131540 subs r0, r1, 0x1 strh r0, [r2, 0x10] b _081315BA _08131540: ldrh r0, [r2, 0xE] strh r0, [r2, 0x10] adds r1, r3, 0x2 strh r1, [r2, 0xA] ldrh r0, [r2, 0xC] subs r0, 0x2 strh r0, [r2, 0xC] lsls r1, 16 asrs r1, 16 mov r8, r5 cmp r1, 0x8 bne _0813159E mov r7, r9 movs r0, 0x8 add r0, r12 mov r10, r0 movs r5, 0x1 movs r1, 0x5 negs r1, r1 mov r9, r1 _08131568: adds r0, r4, 0x7 lsls r0, 1 adds r0, r7 add r0, r10 movs r2, 0 ldrsh r0, [r0, r2] lsls r2, r0, 4 adds r2, r0 lsls r2, 2 ldr r0, _081315C8 @ =gSprites adds r2, r0 adds r2, 0x3E ldrb r3, [r2] lsls r1, r3, 29 lsrs r1, 31 eors r1, r5 ands r1, r5 lsls r1, 2 mov r0, r9 ands r0, r3 orrs r0, r1 strb r0, [r2] adds r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0x2 bls _08131568 _0813159E: mov r1, r8 adds r0, r1, r6 lsls r0, 3 add r0, r12 movs r2, 0xC ldrsh r1, [r0, r2] lsls r1, 8 ldrh r0, [r0, 0xA] adds r1, r0 lsls r1, 16 lsrs r1, 16 movs r0, 0x52 bl SetGpuReg _081315BA: pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _081315C8: .4byte gSprites thumb_func_end sub_81314DC thumb_func_start sub_81315CC sub_81315CC: @ 81315CC push {r4-r7,lr} mov r7, r8 push {r7} adds r4, r0, 0 adds r6, r1, 0 lsls r4, 24 lsrs r4, 24 lsls r6, 24 lsrs r6, 24 movs r7, 0 ldr r1, _08131654 @ =0x00001244 movs r0, 0x50 bl SetGpuReg movs r1, 0x80 lsls r1, 5 movs r0, 0x52 bl SetGpuReg movs r0, 0x54 movs r1, 0 bl SetGpuReg ldr r0, _08131658 @ =gTasks mov r8, r0 lsls r5, r4, 2 adds r5, r4 lsls r5, 3 adds r0, r5, r0 strh r7, [r0, 0xC] ldr r0, _0813165C @ =sub_81314DC movs r1, 0 bl CreateTask lsls r0, 24 lsrs r0, 24 lsls r2, r0, 2 adds r2, r0 lsls r2, 3 mov r1, r8 adds r0, r2, r1 strh r4, [r0, 0x8] strh r7, [r0, 0xA] movs r1, 0x10 strh r1, [r0, 0xC] strh r6, [r0, 0xE] strh r6, [r0, 0x10] mov r3, r8 adds r3, 0x8 _0813162E: adds r0, r7, 0x7 lsls r0, 1 adds r1, r0, r2 adds r1, r3 adds r0, r5 adds r0, r3 ldrh r0, [r0] strh r0, [r1] adds r0, r7, 0x1 lsls r0, 24 lsrs r7, r0, 24 cmp r7, 0x2 bls _0813162E pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08131654: .4byte 0x00001244 _08131658: .4byte gTasks _0813165C: .4byte sub_81314DC thumb_func_end sub_81315CC thumb_func_start sub_8131660 sub_8131660: @ 8131660 push {r4-r7,lr} mov r7, r8 push {r7} sub sp, 0xC mov r8, r1 lsls r0, 24 lsrs r0, 24 lsls r1, 24 lsrs r1, 24 mov r8, r1 lsls r4, r0, 2 adds r4, r0 lsls r4, 3 ldr r5, _081316DC @ =gTasks+0x8 adds r7, r4, r5 ldr r0, _081316E0 @ =gUnknown_8462ED8 bl AddWindow strh r0, [r7, 0x1A] lsls r0, 24 lsrs r0, 24 bl PutWindowTilemap ldrb r6, [r7, 0x1A] bl sub_80F796C adds r2, r0, 0 lsls r2, 16 lsrs r2, 16 adds r0, r6, 0 movs r1, 0x1 movs r3, 0xE bl SetWindowBorderStyle adds r5, r4 ldrb r0, [r5, 0x1A] movs r1, 0x11 bl FillWindowPixelBuffer ldrb r0, [r7, 0x1A] ldr r2, _081316E4 @ =gUnknown_81C574F movs r1, 0x1 str r1, [sp] movs r1, 0 str r1, [sp, 0x4] str r1, [sp, 0x8] movs r1, 0x2 movs r3, 0x8 bl AddTextPrinterParameterized mov r0, r8 cmp r0, 0 bne _081316F4 ldr r0, _081316E8 @ =gSaveBlock2Ptr ldr r0, [r0] ldrb r0, [r0, 0x8] ldr r6, _081316EC @ =gUnknown_84630D8 cmp r0, 0 bne _081316F6 ldr r6, _081316F0 @ =gUnknown_846308C b _081316F6 .align 2, 0 _081316DC: .4byte gTasks+0x8 _081316E0: .4byte gUnknown_8462ED8 _081316E4: .4byte gUnknown_81C574F _081316E8: .4byte gSaveBlock2Ptr _081316EC: .4byte gUnknown_84630D8 _081316F0: .4byte gUnknown_846308C _081316F4: ldr r6, _08131750 @ =gUnknown_8463124 _081316F6: movs r4, 0 movs r5, 0 _081316FA: ldrb r0, [r7, 0x1A] lsls r1, r4, 2 adds r1, r6 ldr r2, [r1] adds r4, 0x1 lsls r1, r4, 4 adds r1, 0x1 lsls r1, 24 lsrs r1, 24 str r1, [sp] str r5, [sp, 0x4] str r5, [sp, 0x8] movs r1, 0x2 movs r3, 0x8 bl AddTextPrinterParameterized lsls r4, 24 lsrs r4, 24 cmp r4, 0x3 bls _081316FA ldrb r0, [r7, 0x1A] movs r1, 0x10 str r1, [sp] movs r1, 0x5 str r1, [sp, 0x4] movs r1, 0 str r1, [sp, 0x8] movs r1, 0x2 movs r2, 0 movs r3, 0x1 bl sub_810F7D8 ldrb r0, [r7, 0x1A] movs r1, 0x3 bl CopyWindowToVram add sp, 0xC pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08131750: .4byte gUnknown_8463124 thumb_func_end sub_8131660 thumb_func_start sub_8131754 sub_8131754: @ 8131754 push {r4,lr} lsls r0, 24 lsls r1, 24 lsrs r2, r1, 24 cmp r0, 0 bne _081317A0 ldr r0, _08131770 @ =gSaveBlock2Ptr ldr r0, [r0] ldrb r0, [r0, 0x8] cmp r0, 0 bne _08131778 ldr r4, _08131774 @ =gUnknown_846308C b _0813177A .align 2, 0 _08131770: .4byte gSaveBlock2Ptr _08131774: .4byte gUnknown_846308C _08131778: ldr r4, _08131798 @ =gUnknown_84630D8 _0813177A: bl Random lsls r0, 16 lsrs r0, 16 movs r1, 0x13 bl __umodsi3 lsls r0, 16 lsrs r0, 14 adds r0, r4 ldr r3, [r0] ldr r0, _0813179C @ =gSaveBlock2Ptr ldr r4, [r0] b _081317B0 .align 2, 0 _08131798: .4byte gUnknown_84630D8 _0813179C: .4byte gSaveBlock2Ptr _081317A0: ldr r1, _081317EC @ =gUnknown_8463124 lsls r0, r2, 2 adds r0, r1 ldr r3, [r0] ldr r0, _081317F0 @ =gSaveBlock1Ptr ldr r0, [r0] ldr r1, _081317F4 @ =0x00003a4c adds r4, r0, r1 _081317B0: movs r2, 0 ldrb r0, [r3] cmp r0, 0xFF beq _081317D2 _081317B8: adds r1, r4, r2 adds r0, r3, r2 ldrb r0, [r0] strb r0, [r1] adds r0, r2, 0x1 lsls r0, 24 lsrs r2, r0, 24 cmp r2, 0x6 bhi _081317D2 adds r0, r3, r2 ldrb r0, [r0] cmp r0, 0xFF bne _081317B8 _081317D2: cmp r2, 0x7 bhi _081317E6 movs r1, 0xFF _081317D8: adds r0, r4, r2 strb r1, [r0] adds r0, r2, 0x1 lsls r0, 24 lsrs r2, r0, 24 cmp r2, 0x7 bls _081317D8 _081317E6: pop {r4} pop {r0} bx r0 .align 2, 0 _081317EC: .4byte gUnknown_8463124 _081317F0: .4byte gSaveBlock1Ptr _081317F4: .4byte 0x00003a4c thumb_func_end sub_8131754 .align 2, 0 @ Don't pad with nop.