.include "asm/macros.inc" .include "constants/constants.inc" .syntax unified .text thumb_func_start sub_808835C sub_808835C: @ 808835C push {lr} bl RunTasks bl AnimateSprites bl BuildOamBuffer bl UpdatePaletteFade pop {r0} bx r0 thumb_func_end sub_808835C thumb_func_start sub_8088374 sub_8088374: @ 8088374 push {lr} bl LoadOam bl ProcessSpriteCopyRequests bl TransferPlttBuffer pop {r0} bx r0 thumb_func_end sub_8088374 thumb_func_start sub_8088388 sub_8088388: @ 8088388 push {r4-r6,lr} ldr r1, _08088418 @ =gMain ldr r0, [r1, 0x8] cmp r0, 0 bne _08088396 ldr r0, _0808841C @ =sub_80568A8 str r0, [r1, 0x8] _08088396: ldr r4, _08088420 @ =gUnknown_2039620 movs r0, 0x14 bl AllocZeroed str r0, [r4] movs r1, 0 strb r1, [r0, 0x10] ldr r0, [r4] strb r1, [r0, 0x12] ldr r0, [r4] strb r1, [r0, 0x11] ldr r2, [r4] strh r1, [r2, 0xE] ldr r0, _08088424 @ =gSaveBlock2Ptr ldr r1, [r0] ldrb r0, [r1, 0x14] lsls r0, 29 lsrs r0, 29 strh r0, [r2] ldrb r0, [r1, 0x15] lsls r0, 29 lsrs r0, 31 strh r0, [r2, 0x2] ldrb r0, [r1, 0x15] lsls r0, 30 lsrs r0, 31 strh r0, [r2, 0x4] ldrb r0, [r1, 0x15] lsls r0, 31 lsrs r0, 31 strh r0, [r2, 0x6] ldrb r0, [r1, 0x13] strh r0, [r2, 0x8] ldrb r0, [r1, 0x14] lsrs r0, 3 strh r0, [r2, 0xA] movs r3, 0 adds r6, r4, 0 ldr r5, _08088428 @ =gUnknown_83CC304 movs r4, 0 _080883E6: ldr r1, [r6] lsls r0, r3, 1 adds r2, r1, r0 ldrh r1, [r2] adds r0, r5 ldrh r0, [r0] subs r0, 0x1 cmp r1, r0 ble _080883FA strh r4, [r2] _080883FA: adds r0, r3, 0x1 lsls r0, 24 lsrs r3, r0, 24 cmp r3, 0x5 bls _080883E6 movs r0, 0xD bl HelpSystem_SetSomeVariable2 ldr r0, _0808842C @ =sub_8088454 bl SetMainCallback2 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _08088418: .4byte gMain _0808841C: .4byte sub_80568A8 _08088420: .4byte gUnknown_2039620 _08088424: .4byte gSaveBlock2Ptr _08088428: .4byte gUnknown_83CC304 _0808842C: .4byte sub_8088454 thumb_func_end sub_8088388 thumb_func_start sub_8088430 sub_8088430: @ 8088430 push {lr} movs r0, 0 bl SetVBlankCallback movs r0, 0 bl SetHBlankCallback pop {r0} bx r0 thumb_func_end sub_8088430 thumb_func_start sub_8088444 sub_8088444: @ 8088444 push {lr} ldr r0, _08088450 @ =sub_8088374 bl SetVBlankCallback pop {r0} bx r0 .align 2, 0 _08088450: .4byte sub_8088374 thumb_func_end sub_8088444 thumb_func_start sub_8088454 sub_8088454: @ 8088454 push {r4,lr} ldr r0, _0808846C @ =gUnknown_2039620 ldr r0, [r0] ldrb r0, [r0, 0x11] cmp r0, 0x9 bhi _080884FA lsls r0, 2 ldr r1, _08088470 @ =_08088474 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _0808846C: .4byte gUnknown_2039620 _08088470: .4byte _08088474 .align 2, 0 _08088474: .4byte _0808849C .4byte _080884A2 .4byte _080884A8 .4byte _080884AE .4byte _080884BC .4byte _080884C2 .4byte _080884C8 .4byte _080884CE .4byte _080884E2 .4byte _080884F4 _0808849C: bl sub_8088430 b _080884FE _080884A2: bl sub_8088530 b _080884FE _080884A8: bl sub_80886D4 b _080884FE _080884AE: bl sub_80886F0 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _08088508 b _080884FE _080884BC: bl sub_8088BD0 b _080884FE _080884C2: bl sub_8088C0C b _080884FE _080884C8: bl sub_8088D8C b _080884FE _080884CE: movs r4, 0 _080884D0: adds r0, r4, 0 bl sub_80889A8 adds r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0x6 bls _080884D0 b _080884FE _080884E2: ldr r0, _080884F0 @ =gUnknown_2039620 ldr r0, [r0] ldrh r0, [r0, 0xE] bl sub_8088DE0 b _080884FE .align 2, 0 _080884F0: .4byte gUnknown_2039620 _080884F4: bl sub_8088680 b _080884FE _080884FA: bl sub_8088514 _080884FE: ldr r0, _08088510 @ =gUnknown_2039620 ldr r1, [r0] ldrb r0, [r1, 0x11] adds r0, 0x1 strb r0, [r1, 0x11] _08088508: pop {r4} pop {r0} bx r0 .align 2, 0 _08088510: .4byte gUnknown_2039620 thumb_func_end sub_8088454 thumb_func_start sub_8088514 sub_8088514: @ 8088514 push {lr} ldr r0, _08088528 @ =sub_8088780 movs r1, 0 bl CreateTask ldr r0, _0808852C @ =sub_808835C bl SetMainCallback2 pop {r0} bx r0 .align 2, 0 _08088528: .4byte sub_8088780 _0808852C: .4byte sub_808835C thumb_func_end sub_8088514 thumb_func_start sub_8088530 sub_8088530: @ 8088530 push {r4-r7,lr} mov r7, r8 push {r7} sub sp, 0x8 movs r3, 0xC0 lsls r3, 19 movs r4, 0xC0 lsls r4, 9 add r0, sp, 0x4 mov r8, r0 mov r2, sp movs r6, 0 ldr r1, _08088670 @ =0x040000d4 movs r5, 0x80 lsls r5, 5 ldr r7, _08088674 @ =0x81000800 movs r0, 0x81 lsls r0, 24 mov r12, r0 _08088556: strh r6, [r2] mov r0, sp str r0, [r1] str r3, [r1, 0x4] str r7, [r1, 0x8] ldr r0, [r1, 0x8] adds r3, r5 subs r4, r5 cmp r4, r5 bhi _08088556 strh r6, [r2] mov r2, sp str r2, [r1] str r3, [r1, 0x4] lsrs r0, r4, 1 mov r2, r12 orrs r0, r2 str r0, [r1, 0x8] ldr r0, [r1, 0x8] movs r0, 0xE0 lsls r0, 19 movs r3, 0x80 lsls r3, 3 movs r4, 0 str r4, [sp, 0x4] ldr r2, _08088670 @ =0x040000d4 mov r1, r8 str r1, [r2] str r0, [r2, 0x4] lsrs r0, r3, 2 movs r1, 0x85 lsls r1, 24 orrs r0, r1 str r0, [r2, 0x8] ldr r0, [r2, 0x8] movs r1, 0xA0 lsls r1, 19 mov r0, sp strh r4, [r0] str r0, [r2] str r1, [r2, 0x4] lsrs r3, 1 movs r0, 0x81 lsls r0, 24 orrs r3, r0 str r3, [r2, 0x8] ldr r0, [r2, 0x8] movs r0, 0 movs r1, 0 bl SetGpuReg movs r0, 0 bl ResetBgsAndClearDma3BusyFlags ldr r1, _08088678 @ =gUnknown_83CC2D8 movs r0, 0 movs r2, 0x3 bl InitBgsFromTemplates movs r0, 0 movs r1, 0 movs r2, 0 bl ChangeBgX movs r0, 0 movs r1, 0 movs r2, 0 bl ChangeBgY movs r0, 0x1 movs r1, 0 movs r2, 0 bl ChangeBgX movs r0, 0x1 movs r1, 0 movs r2, 0 bl ChangeBgY movs r0, 0x2 movs r1, 0 movs r2, 0 bl ChangeBgX movs r0, 0x2 movs r1, 0 movs r2, 0 bl ChangeBgY movs r0, 0x3 movs r1, 0 movs r2, 0 bl ChangeBgX movs r0, 0x3 movs r1, 0 movs r2, 0 bl ChangeBgY ldr r0, _0808867C @ =gUnknown_83CC2B8 bl InitWindows bl DeactivateAllTextPrinters movs r0, 0x50 movs r1, 0xC1 bl SetGpuReg movs r0, 0x54 movs r1, 0x2 bl SetGpuReg movs r0, 0x48 movs r1, 0x1 bl SetGpuReg movs r0, 0x4A movs r1, 0x27 bl SetGpuReg movs r1, 0xC1 lsls r1, 6 movs r0, 0 bl SetGpuReg movs r0, 0 bl ShowBg movs r0, 0x1 bl ShowBg movs r0, 0x2 bl ShowBg add sp, 0x8 pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08088670: .4byte 0x040000d4 _08088674: .4byte 0x81000800 _08088678: .4byte gUnknown_83CC2D8 _0808867C: .4byte gUnknown_83CC2B8 thumb_func_end sub_8088530 thumb_func_start sub_8088680 sub_8088680: @ 8088680 push {r4,r5,lr} sub sp, 0xC ldr r5, _080886CC @ =gUnknown_8419E57 movs r0, 0 adds r1, r5, 0 movs r2, 0 bl GetStringWidth movs r4, 0xE4 subs r4, r0 movs r0, 0x2 movs r1, 0xFF bl FillWindowPixelBuffer lsls r4, 24 lsrs r4, 24 ldr r0, _080886D0 @ =gUnknown_83CC360 str r0, [sp] movs r0, 0 str r0, [sp, 0x4] str r5, [sp, 0x8] movs r0, 0x2 movs r1, 0 adds r2, r4, 0 movs r3, 0 bl AddTextPrinterParameterized3 movs r0, 0x2 bl PutWindowTilemap movs r0, 0x2 movs r1, 0x3 bl CopyWindowToVram add sp, 0xC pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080886CC: .4byte gUnknown_8419E57 _080886D0: .4byte gUnknown_83CC360 thumb_func_end sub_8088680 thumb_func_start sub_80886D4 sub_80886D4: @ 80886D4 push {lr} bl ResetSpriteData bl ResetPaletteFade bl FreeAllSpritePalettes bl ResetTasks bl ScanlineEffect_Stop pop {r0} bx r0 thumb_func_end sub_80886D4 thumb_func_start sub_80886F0 sub_80886F0: @ 80886F0 push {lr} ldr r0, _08088708 @ =gUnknown_2039620 ldr r0, [r0] ldrb r1, [r0, 0x12] cmp r1, 0x1 beq _0808872E cmp r1, 0x1 bgt _0808870C cmp r1, 0 beq _08088716 b _08088768 .align 2, 0 _08088708: .4byte gUnknown_2039620 _0808870C: cmp r1, 0x2 beq _0808873A cmp r1, 0x3 beq _08088758 b _08088768 _08088716: ldrb r0, [r0, 0xA] bl sub_8069788 ldr r1, [r0] movs r2, 0x90 lsls r2, 1 movs r3, 0xD5 lsls r3, 1 movs r0, 0x1 bl LoadBgTiles b _0808876C _0808872E: ldrb r0, [r0, 0xA] bl sub_8069788 ldr r0, [r0, 0x4] movs r1, 0x20 b _0808874C _0808873A: ldr r0, _08088754 @ =gUnknown_83CC2E4 movs r1, 0x10 movs r2, 0x20 bl LoadPalette movs r0, 0x2 bl stdpal_get movs r1, 0xF0 _0808874C: movs r2, 0x20 bl LoadPalette b _0808876C .align 2, 0 _08088754: .4byte gUnknown_83CC2E4 _08088758: ldr r1, _08088764 @ =0x000001b3 movs r0, 0x1 movs r2, 0x30 bl sub_814FDA0 b _0808876C .align 2, 0 _08088764: .4byte 0x000001b3 _08088768: movs r0, 0x1 b _08088778 _0808876C: ldr r0, _0808877C @ =gUnknown_2039620 ldr r1, [r0] ldrb r0, [r1, 0x12] adds r0, 0x1 strb r0, [r1, 0x12] movs r0, 0 _08088778: pop {r1} bx r1 .align 2, 0 _0808877C: .4byte gUnknown_2039620 thumb_func_end sub_80886F0 thumb_func_start sub_8088780 sub_8088780: @ 8088780 push {r4,lr} sub sp, 0x4 lsls r0, 24 lsrs r2, r0, 24 ldr r1, _080887A0 @ =gUnknown_2039620 ldr r0, [r1] ldrb r0, [r0, 0x10] adds r3, r1, 0 cmp r0, 0x5 bls _08088796 b _080888B6 _08088796: lsls r0, 2 ldr r1, _080887A4 @ =_080887A8 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _080887A0: .4byte gUnknown_2039620 _080887A4: .4byte _080887A8 .align 2, 0 _080887A8: .4byte _080887C0 .4byte _08088894 .4byte _080887E0 .4byte _08088878 .4byte _08088894 .4byte _080888B0 _080887C0: movs r0, 0x1 negs r0, r0 movs r1, 0 str r1, [sp] movs r2, 0x10 movs r3, 0 bl BeginNormalPaletteFade bl sub_8088444 ldr r0, _080887DC @ =gUnknown_2039620 ldr r1, [r0] b _080888A2 .align 2, 0 _080887DC: .4byte gUnknown_2039620 _080887E0: bl sub_80BF72C cmp r0, 0x1 beq _080888B6 bl sub_80888C0 lsls r0, 24 lsrs r0, 24 cmp r0, 0x4 bhi _080888B6 lsls r0, 2 ldr r1, _08088800 @ =_08088804 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08088800: .4byte _08088804 .align 2, 0 _08088804: .4byte _080888B6 .4byte _08088818 .4byte _08088824 .4byte _08088858 .4byte _08088868 _08088818: ldr r0, _08088820 @ =gUnknown_2039620 ldr r1, [r0] b _080888A2 .align 2, 0 _08088820: .4byte gUnknown_2039620 _08088824: ldr r4, _08088854 @ =gUnknown_2039620 ldr r0, [r4] ldrb r0, [r0, 0xA] bl sub_8069788 ldr r1, [r0] movs r2, 0x90 lsls r2, 1 movs r3, 0xD5 lsls r3, 1 movs r0, 0x1 bl LoadBgTiles ldr r0, [r4] ldrb r0, [r0, 0xA] bl sub_8069788 ldr r0, [r0, 0x4] movs r1, 0x20 movs r2, 0x20 bl LoadPalette ldr r0, [r4] b _0808886C .align 2, 0 _08088854: .4byte gUnknown_2039620 _08088858: ldr r0, _08088864 @ =gUnknown_2039620 ldr r0, [r0] ldrh r0, [r0, 0xE] bl sub_8088DE0 b _080888B6 .align 2, 0 _08088864: .4byte gUnknown_2039620 _08088868: ldr r0, _08088874 @ =gUnknown_2039620 ldr r0, [r0] _0808886C: ldrb r0, [r0, 0xE] bl sub_80889A8 b _080888B6 .align 2, 0 _08088874: .4byte gUnknown_2039620 _08088878: movs r0, 0x1 negs r0, r0 movs r1, 0 str r1, [sp] movs r2, 0 movs r3, 0x10 bl BeginNormalPaletteFade ldr r0, _08088890 @ =gUnknown_2039620 ldr r1, [r0] b _080888A2 .align 2, 0 _08088890: .4byte gUnknown_2039620 _08088894: ldr r0, _080888AC @ =gPaletteFade ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 bne _080888B6 ldr r1, [r3] _080888A2: ldrb r0, [r1, 0x10] adds r0, 0x1 strb r0, [r1, 0x10] b _080888B6 .align 2, 0 _080888AC: .4byte gPaletteFade _080888B0: adds r0, r2, 0 bl sub_8088B00 _080888B6: add sp, 0x4 pop {r4} pop {r0} bx r0 thumb_func_end sub_8088780 thumb_func_start sub_80888C0 sub_80888C0: @ 80888C0 push {r4,lr} ldr r3, _080888EC @ =gMain ldrh r1, [r3, 0x30] movs r0, 0x10 ands r0, r1 cmp r0, 0 beq _08088906 ldr r2, _080888F0 @ =gUnknown_2039620 ldr r1, [r2] ldrh r0, [r1, 0xE] lsls r0, 1 adds r3, r1, r0 ldrh r4, [r3] ldr r1, _080888F4 @ =gUnknown_83CC304 adds r0, r1 ldrh r0, [r0] subs r0, 0x1 cmp r4, r0 bne _080888F8 movs r0, 0 b _080888FA .align 2, 0 _080888EC: .4byte gMain _080888F0: .4byte gUnknown_2039620 _080888F4: .4byte gUnknown_83CC304 _080888F8: adds r0, r4, 0x1 _080888FA: strh r0, [r3] ldr r0, [r2] ldrh r0, [r0, 0xE] cmp r0, 0x5 beq _08088930 b _0808893C _08088906: movs r0, 0x20 ands r0, r1 cmp r0, 0 beq _08088940 ldr r2, _08088934 @ =gUnknown_2039620 ldr r1, [r2] ldrh r0, [r1, 0xE] lsls r3, r0, 1 adds r1, r3 ldrh r0, [r1] cmp r0, 0 bne _08088924 ldr r0, _08088938 @ =gUnknown_83CC304 adds r0, r3, r0 ldrh r0, [r0] _08088924: subs r0, 0x1 strh r0, [r1] ldr r0, [r2] ldrh r0, [r0, 0xE] cmp r0, 0x5 bne _0808893C _08088930: movs r0, 0x2 b _080889A0 .align 2, 0 _08088934: .4byte gUnknown_2039620 _08088938: .4byte gUnknown_83CC304 _0808893C: movs r0, 0x4 b _080889A0 _08088940: movs r0, 0x40 ands r0, r1 lsls r0, 16 lsrs r2, r0, 16 cmp r2, 0 beq _08088964 ldr r0, _0808895C @ =gUnknown_2039620 ldr r1, [r0] ldrh r0, [r1, 0xE] cmp r0, 0 bne _08088960 movs r0, 0x6 b _08088982 .align 2, 0 _0808895C: .4byte gUnknown_2039620 _08088960: subs r0, 0x1 b _08088982 _08088964: movs r0, 0x80 ands r0, r1 cmp r0, 0 beq _08088988 ldr r0, _0808897C @ =gUnknown_2039620 ldr r1, [r0] ldrh r0, [r1, 0xE] cmp r0, 0x6 bne _08088980 strh r2, [r1, 0xE] b _08088984 .align 2, 0 _0808897C: .4byte gUnknown_2039620 _08088980: adds r0, 0x1 _08088982: strh r0, [r1, 0xE] _08088984: movs r0, 0x3 b _080889A0 _08088988: ldrh r1, [r3, 0x2E] movs r0, 0x2 ands r0, r1 cmp r0, 0 bne _0808899A movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _0808899E _0808899A: movs r0, 0x1 b _080889A0 _0808899E: movs r0, 0 _080889A0: pop {r4} pop {r1} bx r1 thumb_func_end sub_80888C0 thumb_func_start sub_80889A8 sub_80889A8: @ 80889A8 push {r4-r7,lr} mov r7, r8 push {r7} sub sp, 0x30 lsls r0, 24 lsrs r5, r0, 24 add r4, sp, 0x2C ldr r1, _08088A08 @ =gUnknown_83CC363 adds r0, r4, 0 movs r2, 0x3 bl memcpy movs r0, 0x82 mov r8, r0 movs r0, 0x2 movs r1, 0x1 bl GetFontAttribute lsls r0, 24 lsrs r0, 24 subs r0, 0x1 muls r0, r5 adds r0, 0x2 lsls r0, 24 lsrs r7, r0, 24 movs r0, 0x2 movs r1, 0x1 bl GetFontAttribute lsls r0, 24 lsrs r0, 24 movs r1, 0x46 str r1, [sp] str r0, [sp, 0x4] movs r0, 0x1 movs r1, 0x1 movs r2, 0x82 adds r3, r7, 0 bl FillWindowPixelRect adds r6, r4, 0 cmp r5, 0x5 bhi _08088ADE lsls r0, r5, 2 ldr r1, _08088A0C @ =_08088A10 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08088A08: .4byte gUnknown_83CC363 _08088A0C: .4byte _08088A10 .align 2, 0 _08088A10: .4byte _08088A28 .4byte _08088A38 .4byte _08088A48 .4byte _08088A58 .4byte _08088A68 .4byte _08088A9C _08088A28: str r6, [sp] movs r0, 0x1 negs r0, r0 str r0, [sp, 0x4] ldr r2, _08088A34 @ =gUnknown_83CC330 b _08088A72 .align 2, 0 _08088A34: .4byte gUnknown_83CC330 _08088A38: str r6, [sp] movs r0, 0x1 negs r0, r0 str r0, [sp, 0x4] ldr r2, _08088A44 @ =gUnknown_83CC33C b _08088A72 .align 2, 0 _08088A44: .4byte gUnknown_83CC33C _08088A48: str r6, [sp] movs r0, 0x1 negs r0, r0 str r0, [sp, 0x4] ldr r2, _08088A54 @ =gUnknown_83CC344 b _08088A72 .align 2, 0 _08088A54: .4byte gUnknown_83CC344 _08088A58: str r6, [sp] movs r0, 0x1 negs r0, r0 str r0, [sp, 0x4] ldr r2, _08088A64 @ =gUnknown_83CC34C b _08088A72 .align 2, 0 _08088A64: .4byte gUnknown_83CC34C _08088A68: str r6, [sp] movs r0, 0x1 negs r0, r0 str r0, [sp, 0x4] ldr r2, _08088A94 @ =gUnknown_83CC354 _08088A72: ldr r0, _08088A98 @ =gUnknown_2039620 ldr r0, [r0] lsls r1, r5, 1 adds r0, r1 ldrh r0, [r0] lsls r0, 2 adds r0, r2 ldr r0, [r0] str r0, [sp, 0x8] movs r0, 0x1 movs r1, 0x2 mov r2, r8 adds r3, r7, 0 bl AddTextPrinterParameterized3 b _08088ADE .align 2, 0 _08088A94: .4byte gUnknown_83CC354 _08088A98: .4byte gUnknown_2039620 _08088A9C: ldr r1, _08088AF8 @ =gUnknown_8419E52 add r0, sp, 0xC bl StringCopy add r4, sp, 0x20 ldr r0, _08088AFC @ =gUnknown_2039620 ldr r0, [r0] lsls r1, r5, 1 adds r0, r1 ldrh r1, [r0] adds r1, 0x1 adds r0, r4, 0 movs r2, 0x1 movs r3, 0x2 bl ConvertIntToDecimalStringN add r0, sp, 0xC adds r1, r4, 0 movs r2, 0x3 bl StringAppendN str r6, [sp] movs r0, 0x1 negs r0, r0 str r0, [sp, 0x4] add r0, sp, 0xC str r0, [sp, 0x8] movs r0, 0x1 movs r1, 0x2 mov r2, r8 adds r3, r7, 0 bl AddTextPrinterParameterized3 _08088ADE: movs r0, 0x1 bl PutWindowTilemap movs r0, 0x1 movs r1, 0x3 bl CopyWindowToVram add sp, 0x30 pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08088AF8: .4byte gUnknown_8419E52 _08088AFC: .4byte gUnknown_2039620 thumb_func_end sub_80889A8 thumb_func_start sub_8088B00 sub_8088B00: @ 8088B00 push {r4-r6,lr} mov r6, r8 push {r6} mov r8, r0 lsls r0, 24 lsrs r0, 24 mov r8, r0 ldr r1, _08088BBC @ =gFieldCallback ldr r0, _08088BC0 @ =sub_807DF64 str r0, [r1] ldr r0, _08088BC4 @ =gMain ldr r0, [r0, 0x8] bl SetMainCallback2 bl FreeAllWindowBuffers ldr r3, _08088BC8 @ =gSaveBlock2Ptr ldr r5, [r3] ldr r4, _08088BCC @ =gUnknown_2039620 ldr r0, [r4] movs r2, 0x7 ldrb r1, [r0] ands r1, r2 ldrb r2, [r5, 0x14] movs r0, 0x8 negs r0, r0 ands r0, r2 orrs r0, r1 strb r0, [r5, 0x14] ldr r5, [r3] ldr r0, [r4] movs r6, 0x1 ldrb r1, [r0, 0x2] ands r1, r6 lsls r1, 2 ldrb r2, [r5, 0x15] movs r0, 0x5 negs r0, r0 ands r0, r2 orrs r0, r1 strb r0, [r5, 0x15] ldr r5, [r3] ldr r0, [r4] ldrb r1, [r0, 0x4] ands r1, r6 lsls r1, 1 ldrb r2, [r5, 0x15] movs r0, 0x3 negs r0, r0 ands r0, r2 orrs r0, r1 strb r0, [r5, 0x15] ldr r5, [r3] ldr r0, [r4] ldrb r1, [r0, 0x6] ands r1, r6 ldrb r2, [r5, 0x15] movs r0, 0x2 negs r0, r0 ands r0, r2 orrs r0, r1 strb r0, [r5, 0x15] ldr r1, [r3] ldr r0, [r4] ldrh r0, [r0, 0x8] movs r6, 0 strb r0, [r1, 0x13] ldr r5, [r3] ldr r0, [r4] ldrb r1, [r0, 0xA] lsls r1, 3 ldrb r2, [r5, 0x14] movs r0, 0x7 ands r0, r2 orrs r0, r1 strb r0, [r5, 0x14] ldr r0, [r3] ldrb r0, [r0, 0x15] lsls r0, 31 lsrs r0, 31 bl SetPokemonCryStereo ldr r0, [r4] bl Free str r6, [r4] mov r0, r8 bl DestroyTask pop {r3} mov r8, r3 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _08088BBC: .4byte gFieldCallback _08088BC0: .4byte sub_807DF64 _08088BC4: .4byte gMain _08088BC8: .4byte gSaveBlock2Ptr _08088BCC: .4byte gUnknown_2039620 thumb_func_end sub_8088B00 thumb_func_start sub_8088BD0 sub_8088BD0: @ 8088BD0 push {lr} sub sp, 0xC movs r0, 0 movs r1, 0x11 bl FillWindowPixelBuffer ldr r2, _08088C08 @ =gUnknown_8419DCC movs r0, 0x1 str r0, [sp] movs r0, 0xFF str r0, [sp, 0x4] movs r0, 0 str r0, [sp, 0x8] movs r1, 0x2 movs r3, 0x8 bl AddTextPrinterParameterized movs r0, 0 bl PutWindowTilemap movs r0, 0 movs r1, 0x3 bl CopyWindowToVram add sp, 0xC pop {r0} bx r0 .align 2, 0 _08088C08: .4byte gUnknown_8419DCC thumb_func_end sub_8088BD0 thumb_func_start sub_8088C0C sub_8088C0C: @ 8088C0C push {r4-r6,lr} mov r6, r8 push {r6} sub sp, 0xC movs r6, 0x2 ldr r1, _08088D6C @ =0x000001b3 movs r4, 0x1 str r4, [sp] str r4, [sp, 0x4] movs r5, 0x3 str r5, [sp, 0x8] movs r0, 0x1 movs r2, 0x1 movs r3, 0x2 bl FillBgTilemapBufferRect movs r1, 0xDA lsls r1, 1 movs r0, 0x1B mov r8, r0 str r0, [sp] str r4, [sp, 0x4] str r5, [sp, 0x8] movs r0, 0x1 movs r2, 0x2 movs r3, 0x2 bl FillBgTilemapBufferRect ldr r1, _08088D70 @ =0x000001b5 str r4, [sp] str r4, [sp, 0x4] str r5, [sp, 0x8] movs r0, 0x1 movs r2, 0x1C movs r3, 0x2 bl FillBgTilemapBufferRect movs r1, 0xDB lsls r1, 1 str r4, [sp] str r6, [sp, 0x4] str r5, [sp, 0x8] movs r0, 0x1 movs r2, 0x1 movs r3, 0x3 bl FillBgTilemapBufferRect movs r1, 0xDC lsls r1, 1 str r4, [sp] str r6, [sp, 0x4] str r5, [sp, 0x8] movs r0, 0x1 movs r2, 0x1C movs r3, 0x3 bl FillBgTilemapBufferRect ldr r1, _08088D74 @ =0x000001b9 str r4, [sp] str r4, [sp, 0x4] str r5, [sp, 0x8] movs r0, 0x1 movs r2, 0x1 movs r3, 0x5 bl FillBgTilemapBufferRect movs r1, 0xDD lsls r1, 1 mov r0, r8 str r0, [sp] str r4, [sp, 0x4] str r5, [sp, 0x8] movs r0, 0x1 movs r2, 0x2 movs r3, 0x5 bl FillBgTilemapBufferRect ldr r1, _08088D78 @ =0x000001bb str r4, [sp] str r4, [sp, 0x4] str r5, [sp, 0x8] movs r0, 0x1 movs r2, 0x1C movs r3, 0x5 bl FillBgTilemapBufferRect movs r1, 0xD5 lsls r1, 1 str r4, [sp] str r4, [sp, 0x4] str r6, [sp, 0x8] movs r0, 0x1 movs r2, 0x1 movs r3, 0x6 bl FillBgTilemapBufferRect ldr r1, _08088D7C @ =0x000001ab movs r0, 0x1A mov r8, r0 str r0, [sp] str r4, [sp, 0x4] str r6, [sp, 0x8] movs r0, 0x1 movs r2, 0x2 movs r3, 0x6 bl FillBgTilemapBufferRect movs r1, 0xD6 lsls r1, 1 str r4, [sp] str r4, [sp, 0x4] str r6, [sp, 0x8] movs r0, 0x1 movs r2, 0x1C movs r3, 0x6 bl FillBgTilemapBufferRect ldr r1, _08088D80 @ =0x000001ad str r4, [sp] movs r5, 0x10 str r5, [sp, 0x4] str r6, [sp, 0x8] movs r0, 0x1 movs r2, 0x1 movs r3, 0x7 bl FillBgTilemapBufferRect ldr r1, _08088D84 @ =0x000001af str r4, [sp] str r5, [sp, 0x4] str r6, [sp, 0x8] movs r0, 0x1 movs r2, 0x1C movs r3, 0x7 bl FillBgTilemapBufferRect movs r1, 0xD8 lsls r1, 1 str r4, [sp] str r4, [sp, 0x4] str r6, [sp, 0x8] movs r0, 0x1 movs r2, 0x1 movs r3, 0x13 bl FillBgTilemapBufferRect ldr r1, _08088D88 @ =0x000001b1 mov r0, r8 str r0, [sp] str r4, [sp, 0x4] str r6, [sp, 0x8] movs r0, 0x1 movs r2, 0x2 movs r3, 0x13 bl FillBgTilemapBufferRect movs r1, 0xD9 lsls r1, 1 str r4, [sp] str r4, [sp, 0x4] str r6, [sp, 0x8] movs r0, 0x1 movs r2, 0x1C movs r3, 0x13 bl FillBgTilemapBufferRect movs r0, 0x1 bl CopyBgTilemapBufferToVram add sp, 0xC pop {r3} mov r8, r3 pop {r4-r6} pop {r0} bx r0 .align 2, 0 _08088D6C: .4byte 0x000001b3 _08088D70: .4byte 0x000001b5 _08088D74: .4byte 0x000001b9 _08088D78: .4byte 0x000001bb _08088D7C: .4byte 0x000001ab _08088D80: .4byte 0x000001ad _08088D84: .4byte 0x000001af _08088D88: .4byte 0x000001b1 thumb_func_end sub_8088C0C thumb_func_start sub_8088D8C sub_8088D8C: @ 8088D8C push {r4,lr} sub sp, 0xC movs r0, 0x1 movs r1, 0x11 bl FillWindowPixelBuffer movs r4, 0 _08088D9A: movs r0, 0x2 movs r1, 0x1 bl GetFontAttribute adds r1, r4, 0 muls r1, r0 adds r1, 0x2 subs r1, r4 lsls r1, 24 lsrs r1, 24 ldr r2, _08088DDC @ =gUnknown_83CC314 lsls r0, r4, 2 adds r0, r2 ldr r2, [r0] str r1, [sp] movs r0, 0xFF str r0, [sp, 0x4] movs r0, 0 str r0, [sp, 0x8] movs r0, 0x1 movs r1, 0x2 movs r3, 0x8 bl AddTextPrinterParameterized adds r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0x6 bls _08088D9A add sp, 0xC pop {r4} pop {r0} bx r0 .align 2, 0 _08088DDC: .4byte gUnknown_83CC314 thumb_func_end sub_8088D8C thumb_func_start sub_8088DE0 sub_8088DE0: @ 8088DE0 push {r4,lr} adds r4, r0, 0 lsls r4, 16 lsrs r4, 16 movs r0, 0x2 movs r1, 0x1 bl GetFontAttribute lsls r0, 24 lsrs r0, 24 subs r1, r0, 0x1 adds r2, r4, 0 muls r2, r1 adds r2, 0x3A lsls r2, 16 lsrs r2, 16 lsls r1, r2, 8 adds r2, r0 orrs r1, r2 lsls r1, 16 lsrs r1, 16 movs r0, 0x44 bl SetGpuReg movs r1, 0x87 lsls r1, 5 movs r0, 0x40 bl SetGpuReg pop {r4} pop {r0} bx r0 thumb_func_end sub_8088DE0 .align 2, 0 @ Don't pad with nop.