From 4e396207d3f09772f0f073b5a945bb1fafe1fcdd Mon Sep 17 00:00:00 2001 From: DizzyEggg Date: Sun, 20 Jan 2019 18:24:35 +0100 Subject: document more of trainer card --- asm/frontier_pass.s | 3520 ++++++++++++++++++++++++++++++++++++++++ asm/trainer_card.s | 4445 --------------------------------------------------- 2 files changed, 3520 insertions(+), 4445 deletions(-) create mode 100644 asm/frontier_pass.s delete mode 100644 asm/trainer_card.s (limited to 'asm') diff --git a/asm/frontier_pass.s b/asm/frontier_pass.s new file mode 100644 index 000000000..c9746b91f --- /dev/null +++ b/asm/frontier_pass.s @@ -0,0 +1,3520 @@ + .include "asm/macros.inc" + .include "constants/constants.inc" + + .syntax unified + + .text + + + + + thumb_func_start sub_80C51C4 +sub_80C51C4: @ 80C51C4 + push {lr} + bl sub_80C51F0 + ldr r0, =sub_80C544C + bl SetMainCallback2 + pop {r0} + bx r0 + .pool + thumb_func_end sub_80C51C4 + + thumb_func_start sub_80C51D8 +sub_80C51D8: @ 80C51D8 + push {lr} + ldr r0, =gUnknown_02039CEC + ldr r0, [r0] + ldr r0, [r0] + bl SetMainCallback2 + bl sub_80C52E4 + pop {r0} + bx r0 + .pool + thumb_func_end sub_80C51D8 + + thumb_func_start sub_80C51F0 +sub_80C51F0: @ 80C51F0 + push {r4-r6,lr} + adds r4, r0, 0 + ldr r5, =gUnknown_02039CEC + ldr r0, [r5] + cmp r0, 0 + beq _080C5204 + movs r0, 0x1 + b _080C52C8 + .pool +_080C5204: + movs r0, 0x18 + bl AllocZeroed + str r0, [r5] + cmp r0, 0 + bne _080C5214 + movs r0, 0x2 + b _080C52C8 +_080C5214: + str r4, [r0] + bl GetCurrentRegionMapSectionId + lsls r0, 24 + lsrs r4, r0, 24 + cmp r4, 0x3A + beq _080C5232 + cmp r4, 0xCA + beq _080C5232 + ldr r0, [r5] + movs r1, 0xB0 + strh r1, [r0, 0x8] + movs r1, 0x68 + strh r1, [r0, 0xA] + b _080C5240 +_080C5232: + ldr r2, =gUnknown_02039CEC + ldr r1, [r2] + movs r0, 0xB0 + strh r0, [r1, 0x8] + movs r0, 0x30 + strh r0, [r1, 0xA] + adds r5, r2, 0 +_080C5240: + ldr r1, [r5] + ldr r0, =gSaveBlock2Ptr + ldr r0, [r0] + ldr r2, =0x00000eb8 + adds r0, r2 + ldrh r0, [r0] + strh r0, [r1, 0x6] + bl CanCopyRecordedBattleSaveData + ldr r3, [r5] + movs r1, 0x1 + ands r0, r1 + ldrb r2, [r3, 0xE] + movs r1, 0x2 + negs r1, r1 + ands r1, r2 + orrs r1, r0 + strb r1, [r3, 0xE] + ldr r2, [r5] + ldrb r1, [r2, 0xE] + movs r0, 0xF + negs r0, r0 + ands r0, r1 + strb r0, [r2, 0xE] + bl CountPlayerTrainerStars + ldr r3, [r5] + lsls r0, 4 + ldrb r2, [r3, 0xE] + movs r1, 0xF + ands r1, r2 + orrs r1, r0 + strb r1, [r3, 0xE] + movs r4, 0 + adds r6, r5, 0 +_080C5286: + lsls r5, r4, 1 + ldr r1, =0x000008c4 + adds r0, r5, r1 + bl FlagGet + lsls r0, 24 + cmp r0, 0 + beq _080C52A2 + ldr r1, [r6] + adds r1, 0xF + adds r1, r4 + ldrb r0, [r1] + adds r0, 0x1 + strb r0, [r1] +_080C52A2: + ldr r2, =0x000008c5 + adds r0, r5, r2 + bl FlagGet + lsls r0, 24 + cmp r0, 0 + beq _080C52BC + ldr r1, [r6] + adds r1, 0xF + adds r1, r4 + ldrb r0, [r1] + adds r0, 0x1 + strb r0, [r1] +_080C52BC: + adds r0, r4, 0x1 + lsls r0, 24 + lsrs r4, r0, 24 + cmp r4, 0x6 + bls _080C5286 + movs r0, 0 +_080C52C8: + pop {r4-r6} + pop {r1} + bx r1 + .pool + thumb_func_end sub_80C51F0 + + thumb_func_start sub_80C52E4 +sub_80C52E4: @ 80C52E4 + push {r4,lr} + ldr r4, =gUnknown_02039CEC + ldr r0, [r4] + cmp r0, 0 + beq _080C5308 + movs r1, 0 + movs r2, 0x18 + bl memset + ldr r0, [r4] + bl Free + movs r0, 0 + str r0, [r4] + b _080C530A + .pool +_080C5308: + movs r0, 0x1 +_080C530A: + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_80C52E4 + + thumb_func_start sub_80C5310 +sub_80C5310: @ 80C5310 + push {r4,lr} + ldr r4, =gUnknown_02039CF0 + ldr r0, [r4] + cmp r0, 0 + beq _080C5324 + movs r0, 0x1 + b _080C533A + .pool +_080C5324: + ldr r0, =0x00002434 + bl AllocZeroed + str r0, [r4] + cmp r0, 0 + beq _080C5338 + movs r0, 0 + b _080C533A + .pool +_080C5338: + movs r0, 0x2 +_080C533A: + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_80C5310 + + thumb_func_start sub_80C5340 +sub_80C5340: @ 80C5340 + push {r4,lr} + bl FreeAllWindowBuffers + ldr r4, =gUnknown_02039CF0 + ldr r0, [r4] + cmp r0, 0 + bne _080C5358 + movs r0, 0x1 + b _080C53A0 + .pool +_080C5358: + ldr r0, [r0, 0x28] + cmp r0, 0 + beq _080C5368 + bl Free + ldr r1, [r4] + movs r0, 0 + str r0, [r1, 0x28] +_080C5368: + ldr r0, [r4] + ldr r0, [r0, 0x24] + cmp r0, 0 + beq _080C537A + bl Free + ldr r1, [r4] + movs r0, 0 + str r0, [r1, 0x24] +_080C537A: + ldr r0, [r4] + ldr r0, [r0, 0x20] + cmp r0, 0 + beq _080C538C + bl Free + ldr r1, [r4] + movs r0, 0 + str r0, [r1, 0x20] +_080C538C: + ldr r0, [r4] + ldr r2, =0x00002434 + movs r1, 0 + bl memset + ldr r0, [r4] + bl Free + movs r0, 0 + str r0, [r4] +_080C53A0: + pop {r4} + pop {r1} + bx r1 + .pool + thumb_func_end sub_80C5340 + + thumb_func_start pokemon_details +pokemon_details: @ 80C53AC + push {r4-r7,lr} + sub sp, 0x10 + ldr r0, =gUnknown_02039CF0 + ldr r6, [r0] + adds r0, r6, 0 + adds r0, 0x2C + ldrb r0, [r0] + cmp r0, 0 + beq _080C5416 + ldr r3, =gUnknown_085713E0 + ldr r0, =gUnknown_02039CEC + ldr r0, [r0] + ldrb r4, [r0, 0xE] + lsls r4, 28 + lsrs r0, r4, 29 + subs r0, 0x1 + lsls r0, 2 + adds r0, r3 + movs r2, 0 + ldrsh r1, [r0, r2] + lsls r1, 8 + lsrs r0, r4, 29 + subs r0, 0x1 + lsls r0, 2 + adds r5, r3, 0x2 + adds r0, r5 + movs r7, 0 + ldrsh r2, [r0, r7] + lsls r2, 8 + lsrs r0, r4, 29 + subs r0, 0x1 + lsls r0, 2 + adds r0, r3 + movs r7, 0 + ldrsh r3, [r0, r7] + lsrs r4, 29 + subs r4, 0x1 + lsls r4, 2 + adds r4, r5 + movs r5, 0 + ldrsh r0, [r4, r5] + str r0, [sp] + movs r7, 0x2E + ldrsh r0, [r6, r7] + str r0, [sp, 0x4] + movs r4, 0x30 + ldrsh r0, [r6, r4] + str r0, [sp, 0x8] + movs r0, 0 + str r0, [sp, 0xC] + movs r0, 0x2 + bl SetBgAffine +_080C5416: + bl LoadOam + bl ProcessSpriteCopyRequests + bl TransferPlttBuffer + add sp, 0x10 + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end pokemon_details + + thumb_func_start sub_80C5438 +sub_80C5438: @ 80C5438 + push {lr} + bl RunTasks + bl AnimateSprites + bl BuildOamBuffer + pop {r0} + bx r0 + thumb_func_end sub_80C5438 + + thumb_func_start sub_80C544C +sub_80C544C: @ 80C544C + push {lr} + bl sub_80C5484 + cmp r0, 0 + beq _080C5464 + ldr r0, =sub_80C5A48 + movs r1, 0 + bl CreateTask + ldr r0, =sub_80C5438 + bl SetMainCallback2 +_080C5464: + pop {r0} + bx r0 + .pool + thumb_func_end sub_80C544C + + thumb_func_start sub_80C5470 +sub_80C5470: @ 80C5470 + push {lr} + bl sub_80C570C + cmp r0, 0 + beq _080C547E + bl sub_80C51D8 +_080C547E: + pop {r0} + bx r0 + thumb_func_end sub_80C5470 + + thumb_func_start sub_80C5484 +sub_80C5484: @ 80C5484 + push {r4,r5,lr} + sub sp, 0xC + movs r0, 0 + str r0, [sp, 0x8] + ldr r0, =gUnknown_02039CEC + ldr r0, [r0] + ldrh r0, [r0, 0x4] + cmp r0, 0xA + bls _080C5498 + b _080C56F4 +_080C5498: + lsls r0, 2 + ldr r1, =_080C54AC + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .pool + .align 2, 0 +_080C54AC: + .4byte _080C54D8 + .4byte _080C54EE + .4byte _080C54F4 + .4byte _080C550A + .4byte _080C5510 + .4byte _080C5560 + .4byte _080C5570 + .4byte _080C55D0 + .4byte _080C5624 + .4byte _080C5684 + .4byte _080C56D0 +_080C54D8: + movs r0, 0 + bl SetVBlankCallback + bl ScanlineEffect_Stop + bl SetVBlankHBlankCallbacksToNull + movs r0, 0x2 + bl DisableInterrupts + b _080C56F4 +_080C54EE: + bl sub_80C50D0 + b _080C56F4 +_080C54F4: + bl ResetTasks + bl ResetSpriteData + bl FreeAllSpritePalettes + bl ResetPaletteFade + bl reset_temp_tile_data_buffers + b _080C56F4 +_080C550A: + bl sub_80C5310 + b _080C56F4 +_080C5510: + movs r0, 0 + bl ResetBgsAndClearDma3BusyFlags + ldr r1, =gUnknown_085713E8 + movs r0, 0x1 + movs r2, 0x3 + bl InitBgsFromTemplates + ldr r4, =gUnknown_02039CF0 + ldr r1, [r4] + adds r1, 0x32 + movs r0, 0x1 + bl SetBgTilemapBuffer + ldr r1, [r4] + ldr r0, =0x00001032 + adds r1, r0 + movs r0, 0x2 + bl SetBgTilemapBuffer + ldr r1, [r4] + ldr r0, =0x00002032 + adds r1, r0 + movs r0, 0x3 + bl SetBgTilemapBuffer + movs r0, 0x2 + movs r1, 0x6 + movs r2, 0x1 + bl SetBgAttribute + b _080C56F4 + .pool +_080C5560: + ldr r0, =gUnknown_08571400 + bl InitWindows + bl DeactivateAllTextPrinters + b _080C56F4 + .pool +_080C5570: + ldr r0, =gUnknown_085712F8 + add r1, sp, 0x8 + bl malloc_and_decompress + ldr r4, =gUnknown_02039CF0 + ldr r1, [r4] + str r0, [r1, 0x20] + ldr r0, =gUnknown_08571060 + add r1, sp, 0x8 + bl malloc_and_decompress + ldr r1, [r4] + str r0, [r1, 0x24] + ldr r0, =gUnknown_085712C0 + add r1, sp, 0x8 + bl malloc_and_decompress + ldr r1, [r4] + str r0, [r1, 0x28] + ldr r1, =gUnknown_08DE08C8 + movs r4, 0 + str r4, [sp] + movs r0, 0x1 + movs r2, 0 + movs r3, 0 + bl decompress_and_copy_tile_data_to_vram + ldr r1, =gUnknown_08DE2084 + str r4, [sp] + movs r0, 0x2 + movs r2, 0 + movs r3, 0 + bl decompress_and_copy_tile_data_to_vram + b _080C56F4 + .pool +_080C55D0: + bl free_temp_tile_data_buffers_if_possible + lsls r0, 24 + cmp r0, 0 + beq _080C55DC + b _080C56FE +_080C55DC: + movs r5, 0x1E + str r5, [sp] + movs r4, 0x14 + str r4, [sp, 0x4] + movs r0, 0 + movs r1, 0 + movs r2, 0 + movs r3, 0 + bl FillBgTilemapBufferRect_Palette0 + str r5, [sp] + str r4, [sp, 0x4] + movs r0, 0x1 + movs r1, 0 + movs r2, 0 + movs r3, 0 + bl FillBgTilemapBufferRect_Palette0 + str r5, [sp] + str r4, [sp, 0x4] + movs r0, 0x2 + movs r1, 0 + movs r2, 0 + movs r3, 0 + bl FillBgTilemapBufferRect_Palette0 + movs r0, 0 + bl CopyBgTilemapBufferToVram + movs r0, 0x1 + bl CopyBgTilemapBufferToVram + movs r0, 0x2 + bl CopyBgTilemapBufferToVram + b _080C56F4 +_080C5624: + ldr r4, =gUnknown_08DE07C8 + movs r2, 0xD0 + lsls r2, 1 + adds r0, r4, 0 + movs r1, 0 + bl LoadPalette + ldr r5, =gUnknown_02039CEC + ldr r0, [r5] + ldrb r0, [r0, 0xE] + lsrs r0, 4 + lsls r0, 5 + adds r4, 0x20 + adds r0, r4 + movs r1, 0x10 + movs r2, 0x20 + bl LoadPalette + movs r0, 0 + bl stdpal_get + movs r1, 0xF0 + movs r2, 0x20 + bl LoadPalette + bl sub_80C629C + ldr r1, [r5] + ldrb r0, [r1, 0xC] + ldrb r1, [r1, 0xD] + bl sub_80C6104 + ldr r5, [r5] + ldrb r0, [r5, 0xE] + movs r1, 0xE + ands r1, r0 + cmp r1, 0x2 + beq _080C5674 + cmp r1, 0x4 + bne _080C56F4 +_080C5674: + movs r0, 0 + strh r0, [r5, 0x4] + movs r0, 0x1 + b _080C5700 + .pool +_080C5684: + 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 + bl sub_80C62DC + ldr r0, =pokemon_details + bl SetVBlankCallback + movs r4, 0x1 + negs r4, r4 + adds r0, r4, 0 + movs r1, 0x10 + movs r2, 0 + bl BlendPalettes + movs r0, 0 + str r0, [sp] + adds r0, r4, 0 + movs r1, 0 + movs r2, 0x10 + movs r3, 0 + bl BeginNormalPaletteFade + b _080C56F4 + .pool +_080C56D0: + bl AnimateSprites + bl BuildOamBuffer + bl UpdatePaletteFade + lsls r0, 24 + lsrs r1, r0, 24 + cmp r1, 0 + bne _080C56FE + ldr r0, =gUnknown_02039CEC + ldr r0, [r0] + strh r1, [r0, 0x4] + movs r0, 0x1 + b _080C5700 + .pool +_080C56F4: + ldr r0, =gUnknown_02039CEC + ldr r1, [r0] + ldrh r0, [r1, 0x4] + adds r0, 0x1 + strh r0, [r1, 0x4] +_080C56FE: + movs r0, 0 +_080C5700: + add sp, 0xC + pop {r4,r5} + pop {r1} + bx r1 + .pool + thumb_func_end sub_80C5484 + + thumb_func_start sub_80C570C +sub_80C570C: @ 80C570C + push {lr} + sub sp, 0x4 + ldr r1, =gUnknown_02039CEC + ldr r0, [r1] + ldrh r0, [r0, 0x4] + adds r2, r1, 0 + cmp r0, 0x5 + bhi _080C57E4 + lsls r0, 2 + ldr r1, =_080C5730 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .pool + .align 2, 0 +_080C5730: + .4byte _080C5748 + .4byte _080C5770 + .4byte _080C577C + .4byte _080C57A6 + .4byte _080C57AC + .4byte _080C57BE +_080C5748: + ldr r0, [r2] + ldrb r0, [r0, 0xE] + movs r1, 0xE + ands r1, r0 + cmp r1, 0x2 + beq _080C576A + cmp r1, 0x4 + beq _080C576A + movs r0, 0x1 + negs r0, r0 + movs r1, 0 + str r1, [sp] + movs r2, 0 + movs r3, 0x10 + bl BeginNormalPaletteFade + b _080C57E4 +_080C576A: + ldr r1, [r2] + movs r0, 0x2 + b _080C57EC +_080C5770: + bl UpdatePaletteFade + lsls r0, 24 + cmp r0, 0 + beq _080C57E4 + b _080C57EE +_080C577C: + movs r0, 0 + movs r1, 0 + bl SetGpuReg + movs r0, 0 + bl HideBg + movs r0, 0x1 + bl HideBg + movs r0, 0x2 + bl HideBg + movs r0, 0 + bl SetVBlankCallback + bl ScanlineEffect_Stop + bl SetVBlankHBlankCallbacksToNull + b _080C57E4 +_080C57A6: + bl sub_80C63FC + b _080C57E4 +_080C57AC: + bl sub_80C50D0 + bl ResetTasks + bl ResetSpriteData + bl FreeAllSpritePalettes + b _080C57E4 +_080C57BE: + movs r0, 0 + bl UnsetBgTilemapBuffer + movs r0, 0x1 + bl UnsetBgTilemapBuffer + movs r0, 0x2 + bl UnsetBgTilemapBuffer + bl sub_80C5340 + ldr r0, =gUnknown_02039CEC + ldr r1, [r0] + movs r0, 0 + strh r0, [r1, 0x4] + movs r0, 0x1 + b _080C57F0 + .pool +_080C57E4: + ldr r0, =gUnknown_02039CEC + ldr r1, [r0] + ldrh r0, [r1, 0x4] + adds r0, 0x1 +_080C57EC: + strh r0, [r1, 0x4] +_080C57EE: + movs r0, 0 +_080C57F0: + add sp, 0x4 + pop {r1} + bx r1 + .pool + thumb_func_end sub_80C570C + + thumb_func_start sub_80C57FC +sub_80C57FC: @ 80C57FC + push {r4-r7,lr} + lsls r0, 16 + lsrs r6, r0, 16 + movs r4, 0 + ldr r7, =gUnknown_08571454 + lsls r1, 16 + asrs r5, r1, 16 +_080C580A: + lsls r0, r4, 3 + adds r3, r0, r7 + movs r1, 0 + ldrsh r0, [r3, r1] + cmp r0, r5 + bgt _080C5854 + movs r1, 0x2 + ldrsh r0, [r3, r1] + cmp r0, r5 + blt _080C5854 + movs r0, 0x4 + ldrsh r1, [r3, r0] + lsls r0, r6, 16 + asrs r2, r0, 16 + cmp r1, r2 + bgt _080C5854 + movs r1, 0x6 + ldrsh r0, [r3, r1] + cmp r0, r2 + blt _080C5854 + cmp r4, 0x5 + bls _080C5842 + ldr r0, =gUnknown_02039CEC + ldr r0, [r0] + adds r0, r4 + ldrb r0, [r0, 0x9] + cmp r0, 0 + beq _080C585E +_080C5842: + adds r0, r4, 0x1 + lsls r0, 24 + lsrs r0, 24 + b _080C5860 + .pool +_080C5854: + adds r0, r4, 0x1 + lsls r0, 24 + lsrs r4, r0, 24 + cmp r4, 0xC + bls _080C580A +_080C585E: + movs r0, 0 +_080C5860: + pop {r4-r7} + pop {r1} + bx r1 + thumb_func_end sub_80C57FC + + thumb_func_start sub_80C5868 +sub_80C5868: @ 80C5868 + push {lr} + bl sub_80C5484 + cmp r0, 0 + beq _080C58C6 + ldr r1, =gUnknown_02039CEC + ldr r0, [r1] + ldrb r0, [r0, 0xE] + lsls r0, 28 + lsrs r0, 29 + cmp r0, 0x1 + blt _080C58AC + cmp r0, 0x2 + bgt _080C58AC + ldr r0, =sub_80C5BD8 + movs r1, 0 + bl CreateTask + lsls r0, 24 + lsrs r0, 24 + ldr r2, =gTasks + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + adds r1, r2 + movs r0, 0x1 + strh r0, [r1, 0x8] + b _080C58C0 + .pool +_080C58AC: + ldr r2, [r1] + ldrb r1, [r2, 0xE] + movs r0, 0xF + negs r0, r0 + ands r0, r1 + strb r0, [r2, 0xE] + ldr r0, =sub_80C5A48 + movs r1, 0 + bl CreateTask +_080C58C0: + ldr r0, =sub_80C5438 + bl SetMainCallback2 +_080C58C6: + pop {r0} + bx r0 + .pool + thumb_func_end sub_80C5868 + + thumb_func_start sub_80C58D4 +sub_80C58D4: @ 80C58D4 + push {r4,lr} + ldr r4, =gUnknown_02039CF8 + ldr r0, [r4] + bl sub_80C51F0 + ldr r0, =gUnknown_02039CEC + ldr r1, [r0] + ldrh r0, [r4, 0x4] + strh r0, [r1, 0x8] + ldrh r0, [r4, 0x6] + strh r0, [r1, 0xA] + adds r0, r4, 0 + movs r1, 0 + movs r2, 0x8 + bl memset + bl InBattlePyramid + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + beq _080C5914 + cmp r0, 0x2 + beq _080C591C + bl Overworld_PlaySpecialMapMusic + b _080C5924 + .pool +_080C5914: + ldr r0, =0x000001cd + b _080C5920 + .pool +_080C591C: + movs r0, 0xE7 + lsls r0, 1 +_080C5920: + bl PlayBGM +_080C5924: + ldr r0, =sub_80C5868 + bl SetMainCallback2 + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end sub_80C58D4 + + thumb_func_start sub_80C5934 +sub_80C5934: @ 80C5934 + push {lr} + bl sub_80C570C + cmp r0, 0 + beq _080C599A + ldr r0, =gUnknown_02039CEC + ldr r2, [r0] + ldrb r0, [r2, 0xE] + lsls r0, 28 + lsrs r0, 29 + cmp r0, 0x2 + beq _080C5994 + cmp r0, 0x2 + bgt _080C595C + cmp r0, 0x1 + beq _080C5962 + b _080C599A + .pool +_080C595C: + cmp r0, 0x3 + beq _080C5970 + b _080C599A +_080C5962: + ldr r0, =sub_80C5868 + bl sub_80C6454 + b _080C599A + .pool +_080C5970: + ldr r1, =gUnknown_02039CF8 + ldr r0, [r2] + str r0, [r1] + ldrh r0, [r2, 0x8] + strh r0, [r1, 0x4] + ldrh r0, [r2, 0xA] + strh r0, [r1, 0x6] + bl sub_80C52E4 + ldr r0, =sub_80C58D4 + bl PlayRecordedBattle + b _080C599A + .pool +_080C5994: + ldr r0, =sub_80C5868 + bl ShowPlayerTrainerCard +_080C599A: + pop {r0} + bx r0 + .pool + thumb_func_end sub_80C5934 + + thumb_func_start sub_80C59A4 +sub_80C59A4: @ 80C59A4 + push {r4,lr} + lsls r0, 24 + lsrs r3, r0, 24 + adds r4, r3, 0 + lsls r1, 24 + lsrs r1, 24 + adds r2, r1, 0 + cmp r1, 0x1 + blt _080C59CC + cmp r1, 0x2 + ble _080C59F4 + cmp r1, 0x3 + bne _080C59CC + ldr r0, =gUnknown_02039CEC + ldr r2, [r0] + ldrb r1, [r2, 0xE] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + bne _080C59D4 +_080C59CC: + movs r0, 0 + b _080C5A30 + .pool +_080C59D4: + movs r0, 0xF + negs r0, r0 + ands r0, r1 + movs r1, 0x6 + orrs r0, r1 + strb r0, [r2, 0xE] + adds r0, r3, 0 + bl DestroyTask + ldr r0, =sub_80C5934 + bl SetMainCallback2 + b _080C5A1A + .pool +_080C59F4: + ldr r0, =gUnknown_02039CEC + ldr r3, [r0] + movs r0, 0x7 + ands r2, r0 + lsls r2, 1 + ldrb r1, [r3, 0xE] + subs r0, 0x16 + ands r0, r1 + orrs r0, r2 + strb r0, [r3, 0xE] + ldr r1, =gTasks + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r0, r1 + ldr r1, =sub_80C5BD8 + str r1, [r0] + movs r1, 0 + strh r1, [r0, 0x8] +_080C5A1A: + ldr r0, =gUnknown_02039CEC + ldr r2, [r0] + ldr r0, =gUnknown_02039CF0 + ldr r1, [r0] + ldr r0, [r1] + ldrh r0, [r0, 0x20] + strh r0, [r2, 0x8] + ldr r0, [r1] + ldrh r0, [r0, 0x22] + strh r0, [r2, 0xA] + movs r0, 0x1 +_080C5A30: + pop {r4} + pop {r1} + bx r1 + .pool + thumb_func_end sub_80C59A4 + + thumb_func_start sub_80C5A48 +sub_80C5A48: @ 80C5A48 + push {r4-r7,lr} + lsls r0, 24 + lsrs r6, r0, 24 + movs r5, 0 + ldr r2, =gMain + ldrh r1, [r2, 0x2C] + movs r0, 0x40 + ands r0, r1 + cmp r0, 0 + beq _080C5A80 + ldr r0, =gUnknown_02039CF0 + ldr r4, [r0] + ldr r1, [r4] + ldrh r3, [r1, 0x22] + movs r7, 0x22 + ldrsh r0, [r1, r7] + cmp r0, 0x8 + ble _080C5A80 + subs r0, r3, 0x2 + strh r0, [r1, 0x22] + ldr r1, [r4] + movs r3, 0x22 + ldrsh r0, [r1, r3] + cmp r0, 0x7 + bgt _080C5A7E + movs r0, 0x2 + strh r0, [r1, 0x22] +_080C5A7E: + movs r5, 0x1 +_080C5A80: + ldrh r1, [r2, 0x2C] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + beq _080C5AAE + ldr r0, =gUnknown_02039CF0 + ldr r4, [r0] + ldr r1, [r4] + ldrh r3, [r1, 0x22] + movs r7, 0x22 + ldrsh r0, [r1, r7] + cmp r0, 0x87 + bgt _080C5AAE + adds r0, r3, 0x2 + strh r0, [r1, 0x22] + ldr r1, [r4] + movs r3, 0x22 + ldrsh r0, [r1, r3] + cmp r0, 0x88 + ble _080C5AAC + movs r0, 0x88 + strh r0, [r1, 0x22] +_080C5AAC: + movs r5, 0x1 +_080C5AAE: + ldrh r1, [r2, 0x2C] + movs r0, 0x20 + ands r0, r1 + cmp r0, 0 + beq _080C5ADC + ldr r0, =gUnknown_02039CF0 + ldr r4, [r0] + ldr r1, [r4] + ldrh r3, [r1, 0x20] + movs r7, 0x20 + ldrsh r0, [r1, r7] + cmp r0, 0x5 + ble _080C5ADC + subs r0, r3, 0x2 + strh r0, [r1, 0x20] + ldr r1, [r4] + movs r3, 0x20 + ldrsh r0, [r1, r3] + cmp r0, 0x4 + bgt _080C5ADA + movs r0, 0x5 + strh r0, [r1, 0x20] +_080C5ADA: + movs r5, 0x1 +_080C5ADC: + ldrh r1, [r2, 0x2C] + movs r0, 0x10 + ands r0, r1 + cmp r0, 0 + beq _080C5B0A + ldr r0, =gUnknown_02039CF0 + ldr r4, [r0] + ldr r1, [r4] + ldrh r3, [r1, 0x20] + movs r7, 0x20 + ldrsh r0, [r1, r7] + cmp r0, 0xE7 + bgt _080C5B0A + adds r0, r3, 0x2 + strh r0, [r1, 0x20] + ldr r1, [r4] + movs r3, 0x20 + ldrsh r0, [r1, r3] + cmp r0, 0xE8 + ble _080C5B08 + movs r0, 0xE8 + strh r0, [r1, 0x20] +_080C5B08: + movs r5, 0x1 +_080C5B0A: + cmp r5, 0 + bne _080C5B88 + ldr r4, =gUnknown_02039CEC + ldr r0, [r4] + ldrb r3, [r0, 0xC] + cmp r3, 0 + beq _080C5B5E + ldrh r1, [r2, 0x2E] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + beq _080C5B5E + cmp r3, 0x3 + bhi _080C5B48 + movs r0, 0x5 + bl PlaySE + ldr r0, [r4] + ldrb r1, [r0, 0xC] + adds r0, r6, 0 + bl sub_80C59A4 + cmp r0, 0 + bne _080C5BCA + b _080C5B5E + .pool +_080C5B48: + cmp r3, 0x4 + bne _080C5B5E + movs r0, 0x3 + bl PlaySE + ldr r0, =sub_80C5470 + bl SetMainCallback2 + adds r0, r6, 0 + bl DestroyTask +_080C5B5E: + ldr r0, =gMain + ldrh r1, [r0, 0x2E] + movs r0, 0x2 + ands r0, r1 + cmp r0, 0 + beq _080C5BCA + movs r0, 0x3 + bl PlaySE + ldr r0, =sub_80C5470 + bl SetMainCallback2 + adds r0, r6, 0 + bl DestroyTask + b _080C5BCA + .pool +_080C5B88: + ldr r0, =gUnknown_02039CF0 + ldr r0, [r0] + ldr r1, [r0] + ldrh r0, [r1, 0x20] + subs r0, 0x5 + lsls r0, 16 + asrs r0, 16 + ldrh r1, [r1, 0x22] + adds r1, 0x5 + lsls r1, 16 + asrs r1, 16 + bl sub_80C57FC + lsls r0, 24 + lsrs r5, r0, 24 + ldr r4, =gUnknown_02039CEC + ldr r0, [r4] + ldrb r0, [r0, 0xC] + cmp r0, r5 + beq _080C5BCA + adds r0, r5, 0 + bl sub_80C5ED0 + ldr r1, [r4] + ldrb r0, [r1, 0xC] + strb r0, [r1, 0xD] + ldr r0, [r4] + strb r5, [r0, 0xC] + ldr r1, [r4] + ldrb r0, [r1, 0xC] + ldrb r1, [r1, 0xD] + bl sub_80C6104 +_080C5BCA: + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end sub_80C5A48 + + thumb_func_start sub_80C5BD8 +sub_80C5BD8: @ 80C5BD8 + push {r4-r7,lr} + mov r7, r8 + push {r7} + sub sp, 0x4 + lsls r0, 24 + lsrs r4, r0, 24 + lsls r0, r4, 2 + adds r0, r4 + lsls r5, r0, 3 + ldr r0, =gTasks + 0x8 + mov r8, r0 + adds r6, r5, r0 + ldr r7, =gUnknown_02039CEC + ldr r0, [r7] + ldrh r0, [r0, 0x4] + cmp r0, 0x1 + beq _080C5CD4 + cmp r0, 0x1 + bgt _080C5C0C + cmp r0, 0 + beq _080C5C14 + b _080C5D9C + .pool +_080C5C0C: + cmp r0, 0x2 + bne _080C5C12 + b _080C5D2A +_080C5C12: + b _080C5D9C +_080C5C14: + movs r1, 0 + ldrsh r0, [r6, r1] + cmp r0, 0 + bne _080C5C4C + movs r0, 0x1 + movs r1, 0 + bl sub_80C5F58 + movs r1, 0x80 + lsls r1, 1 + adds r0, r1, 0 + strh r0, [r6, 0x2] + strh r0, [r6, 0x4] + movs r0, 0x15 + strh r0, [r6, 0x6] + strh r0, [r6, 0x8] + movs r0, 0x1 + negs r0, r0 + ldr r1, =0x00007fff + str r1, [sp] + movs r1, 0 + movs r2, 0 + movs r3, 0x10 + bl BeginNormalPaletteFade + b _080C5CA4 + .pool +_080C5C4C: + movs r1, 0xFE + lsls r1, 1 + adds r0, r1, 0 + strh r0, [r6, 0x2] + strh r0, [r6, 0x4] + movs r1, 0x15 + negs r1, r1 + adds r0, r1, 0 + strh r0, [r6, 0x6] + strh r0, [r6, 0x8] + 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 + bl sub_80C62DC + ldr r0, =pokemon_details + bl SetVBlankCallback + movs r5, 0x1 + negs r5, r5 + ldr r4, =0x00007fff + adds r0, r5, 0 + movs r1, 0x10 + adds r2, r4, 0 + bl BlendPalettes + str r4, [sp] + adds r0, r5, 0 + movs r1, 0 + movs r2, 0x10 + movs r3, 0 + bl BeginNormalPaletteFade +_080C5CA4: + ldr r4, =gUnknown_02039CF0 + ldr r0, [r4] + adds r0, 0x2C + movs r1, 0x1 + strb r1, [r0] + movs r1, 0x2 + ldrsh r0, [r6, r1] + bl sub_8151624 + ldr r1, [r4] + strh r0, [r1, 0x2E] + movs r1, 0x4 + ldrsh r0, [r6, r1] + bl sub_8151624 + ldr r1, [r4] + strh r0, [r1, 0x30] + b _080C5D9C + .pool +_080C5CD4: + bl UpdatePaletteFade + ldrh r0, [r6, 0x6] + ldrh r1, [r6, 0x2] + adds r0, r1 + strh r0, [r6, 0x2] + ldrh r0, [r6, 0x8] + ldrh r1, [r6, 0x4] + adds r0, r1 + strh r0, [r6, 0x4] + movs r1, 0x2 + ldrsh r0, [r6, r1] + bl sub_8151624 + ldr r4, =gUnknown_02039CF0 + ldr r1, [r4] + strh r0, [r1, 0x2E] + movs r1, 0x4 + ldrsh r0, [r6, r1] + bl sub_8151624 + ldr r1, [r4] + strh r0, [r1, 0x30] + movs r1, 0 + ldrsh r0, [r6, r1] + cmp r0, 0 + bne _080C5D1C + movs r0, 0x2 + ldrsh r1, [r6, r0] + movs r0, 0xFE + lsls r0, 1 + cmp r1, r0 + ble _080C5DA6 + b _080C5D9C + .pool +_080C5D1C: + movs r0, 0x2 + ldrsh r1, [r6, r0] + movs r0, 0x80 + lsls r0, 1 + cmp r1, r0 + bne _080C5DA6 + b _080C5D9C +_080C5D2A: + ldr r0, =gUnknown_02039CF0 + ldr r0, [r0] + adds r1, r0, 0 + adds r1, 0x2C + ldrb r0, [r1] + cmp r0, 0 + beq _080C5D3C + movs r0, 0 + strb r0, [r1] +_080C5D3C: + bl UpdatePaletteFade + lsls r0, 24 + cmp r0, 0 + bne _080C5DA6 + movs r1, 0 + ldrsh r0, [r6, r1] + cmp r0, 0 + bne _080C5D64 + adds r0, r4, 0 + bl DestroyTask + ldr r0, =sub_80C5934 + bl SetMainCallback2 + b _080C5D82 + .pool +_080C5D64: + movs r0, 0 + movs r1, 0 + bl sub_80C5F58 + ldr r2, [r7] + ldrb r1, [r2, 0xE] + movs r0, 0xF + negs r0, r0 + ands r0, r1 + strb r0, [r2, 0xE] + mov r0, r8 + subs r0, 0x8 + adds r0, r5, r0 + ldr r1, =sub_80C5A48 + str r1, [r0] +_080C5D82: + movs r0, 0x2 + movs r1, 0x6 + movs r2, 0 + bl SetBgAttribute + ldr r0, =gUnknown_02039CEC + ldr r1, [r0] + movs r0, 0 + b _080C5DA4 + .pool +_080C5D9C: + ldr r0, =gUnknown_02039CEC + ldr r1, [r0] + ldrh r0, [r1, 0x4] + adds r0, 0x1 +_080C5DA4: + strh r0, [r1, 0x4] +_080C5DA6: + add sp, 0x4 + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end sub_80C5BD8 + + thumb_func_start sub_80C5DB8 +sub_80C5DB8: @ 80C5DB8 + push {r4-r6,lr} + mov r6, r8 + push {r6} + sub sp, 0xC + movs r4, 0 +_080C5DC2: + adds r0, r4, 0 + bl PutWindowTilemap + adds r0, r4, 0 + movs r1, 0 + bl FillWindowPixelBuffer + adds r0, r4, 0x1 + lsls r0, 24 + lsrs r4, r0, 24 + cmp r4, 0x4 + bls _080C5DC2 + ldr r4, =gText_SymbolsEarned + movs r0, 0x1 + adds r1, r4, 0 + movs r2, 0x60 + bl GetStringCenterAlignXOffset + lsls r2, r0, 24 + lsrs r2, 24 + ldr r6, =gUnknown_08571448 + str r6, [sp] + movs r0, 0 + mov r8, r0 + str r0, [sp, 0x4] + str r4, [sp, 0x8] + movs r1, 0x1 + movs r3, 0x5 + bl AddTextPrinterParameterized3 + ldr r4, =gText_BattleRecord + movs r0, 0x1 + adds r1, r4, 0 + movs r2, 0x60 + bl GetStringCenterAlignXOffset + lsls r2, r0, 24 + lsrs r2, 24 + str r6, [sp] + mov r1, r8 + str r1, [sp, 0x4] + str r4, [sp, 0x8] + movs r0, 0x1 + movs r1, 0x1 + movs r3, 0x5 + bl AddTextPrinterParameterized3 + str r6, [sp] + mov r0, r8 + str r0, [sp, 0x4] + ldr r0, =gText_BattlePoints + str r0, [sp, 0x8] + movs r0, 0x2 + movs r1, 0x8 + movs r2, 0x5 + movs r3, 0x4 + bl AddTextPrinterParameterized3 + ldr r4, =gStringVar4 + ldr r5, =gUnknown_02039CEC + ldr r0, [r5] + ldrh r1, [r0, 0x6] + adds r0, r4, 0 + movs r2, 0 + movs r3, 0x5 + bl ConvertIntToDecimalStringN + movs r0, 0x8 + adds r1, r4, 0 + movs r2, 0x5B + bl GetStringRightAlignXOffset + lsls r2, r0, 24 + lsrs r2, 24 + str r6, [sp] + mov r1, r8 + str r1, [sp, 0x4] + str r4, [sp, 0x8] + movs r0, 0x2 + movs r1, 0x8 + movs r3, 0x10 + bl AddTextPrinterParameterized3 + ldr r1, [r5] + ldrh r0, [r1, 0x8] + subs r0, 0x5 + lsls r0, 16 + asrs r0, 16 + ldrh r1, [r1, 0xA] + adds r1, 0x5 + lsls r1, 16 + asrs r1, 16 + bl sub_80C57FC + ldr r1, [r5] + strb r0, [r1, 0xC] + ldr r0, [r5] + mov r1, r8 + strb r1, [r0, 0xD] + ldr r0, [r5] + ldrb r0, [r0, 0xC] + bl sub_80C5ED0 + movs r4, 0 +_080C5E92: + adds r0, r4, 0 + movs r1, 0x3 + bl CopyWindowToVram + adds r0, r4, 0x1 + lsls r0, 24 + lsrs r4, r0, 24 + cmp r4, 0x4 + bls _080C5E92 + movs r0, 0 + bl CopyBgTilemapBufferToVram + add sp, 0xC + pop {r3} + mov r8, r3 + pop {r4-r6} + pop {r0} + bx r0 + .pool + thumb_func_end sub_80C5DB8 + + thumb_func_start sub_80C5ED0 +sub_80C5ED0: @ 80C5ED0 + push {r4,lr} + sub sp, 0xC + lsls r0, 24 + lsrs r4, r0, 24 + movs r0, 0x3 + movs r1, 0 + bl FillWindowPixelBuffer + cmp r4, 0x3 + bne _080C5F18 + ldr r0, =gUnknown_02039CEC + ldr r0, [r0] + ldrb r0, [r0, 0xE] + movs r1, 0x1 + ands r1, r0 + cmp r1, 0 + bne _080C5F18 + ldr r0, =gUnknown_0857144B + str r0, [sp] + str r1, [sp, 0x4] + ldr r0, =gUnknown_08571614 + ldr r0, [r0] + str r0, [sp, 0x8] + movs r0, 0x3 + movs r1, 0x1 + movs r2, 0x2 + movs r3, 0 + bl AddTextPrinterParameterized3 + b _080C5F3A + .pool +_080C5F18: + cmp r4, 0 + beq _080C5F3A + ldr r0, =gUnknown_0857144B + str r0, [sp] + movs r0, 0 + str r0, [sp, 0x4] + ldr r1, =gUnknown_08571614 + lsls r0, r4, 2 + adds r0, r1 + ldr r0, [r0] + str r0, [sp, 0x8] + movs r0, 0x3 + movs r1, 0x1 + movs r2, 0x2 + movs r3, 0 + bl AddTextPrinterParameterized3 +_080C5F3A: + movs r0, 0x3 + movs r1, 0x3 + bl CopyWindowToVram + movs r0, 0 + bl CopyBgTilemapBufferToVram + add sp, 0xC + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end sub_80C5ED0 + + thumb_func_start sub_80C5F58 +sub_80C5F58: @ 80C5F58 + push {r4-r7,lr} + mov r7, r8 + push {r7} + sub sp, 0x10 + lsls r0, 24 + lsrs r2, r0, 24 + lsls r1, 24 + lsrs r7, r1, 24 + ldr r0, =gUnknown_02039CEC + ldr r0, [r0] + ldrb r0, [r0, 0xE] + lsls r0, 28 + lsrs r0, 29 + cmp r0, 0x1 + beq _080C5F80 + cmp r0, 0x2 + beq _080C5FC2 + b _080C60EE + .pool +_080C5F80: + cmp r2, 0 + beq _080C5FA8 + ldr r0, =gUnknown_02039CF0 + ldr r0, [r0] + ldr r1, [r0, 0x20] + movs r0, 0xC + str r0, [sp] + movs r0, 0x7 + str r0, [sp, 0x4] + movs r0, 0x10 + str r0, [sp, 0x8] + movs r0, 0x2 + movs r2, 0x10 + movs r3, 0x3 + bl CopyToBgTilemapBufferRect_ChangePalette + b _080C6004 + .pool +_080C5FA8: + movs r0, 0xC + str r0, [sp] + movs r0, 0x7 + str r0, [sp, 0x4] + movs r0, 0x10 + str r0, [sp, 0x8] + movs r0, 0x2 + movs r1, 0 + movs r2, 0x10 + movs r3, 0x3 + bl FillBgTilemapBufferRect + b _080C6004 +_080C5FC2: + cmp r2, 0 + beq _080C5FEC + ldr r0, =gUnknown_02039CF0 + ldr r0, [r0] + ldr r1, [r0, 0x20] + adds r1, 0x54 + movs r0, 0xC + str r0, [sp] + movs r0, 0x7 + str r0, [sp, 0x4] + movs r0, 0x10 + str r0, [sp, 0x8] + movs r0, 0x2 + movs r2, 0x10 + movs r3, 0xA + bl CopyToBgTilemapBufferRect_ChangePalette + b _080C6004 + .pool +_080C5FEC: + movs r0, 0xC + str r0, [sp] + movs r0, 0x7 + str r0, [sp, 0x4] + movs r0, 0x10 + str r0, [sp, 0x8] + movs r0, 0x2 + movs r1, 0 + movs r2, 0x10 + movs r3, 0xA + bl FillBgTilemapBufferRect +_080C6004: + movs r0, 0x2 + bl CopyBgTilemapBufferToVram + cmp r7, 0 + beq _080C6084 + movs r4, 0xFE + lsls r4, 1 + adds r0, r4, 0 + bl sub_8151624 + adds r6, r0, 0 + lsls r6, 16 + asrs r6, 16 + adds r0, r4, 0 + bl sub_8151624 + lsls r0, 16 + asrs r0, 16 + ldr r5, =gUnknown_085713E0 + ldr r1, =gUnknown_02039CEC + ldr r1, [r1] + ldrb r4, [r1, 0xE] + lsls r4, 28 + lsrs r1, r4, 29 + subs r1, 0x1 + lsls r1, 2 + adds r1, r5 + movs r2, 0 + ldrsh r1, [r1, r2] + lsls r1, 8 + lsrs r2, r4, 29 + subs r2, 0x1 + lsls r2, 2 + adds r3, r5, 0x2 + mov r8, r3 + add r2, r8 + movs r3, 0 + ldrsh r2, [r2, r3] + lsls r2, 8 + lsrs r3, r4, 29 + subs r3, 0x1 + lsls r3, 2 + adds r3, r5 + movs r5, 0 + ldrsh r3, [r3, r5] + lsrs r4, 29 + subs r4, 0x1 + lsls r4, 2 + add r4, r8 + movs r5, 0 + ldrsh r4, [r4, r5] + str r4, [sp] + str r6, [sp, 0x4] + str r0, [sp, 0x8] + movs r0, 0 + str r0, [sp, 0xC] + movs r0, 0x2 + bl SetBgAffine + b _080C60EE + .pool +_080C6084: + movs r4, 0x80 + lsls r4, 1 + adds r0, r4, 0 + bl sub_8151624 + adds r6, r0, 0 + lsls r6, 16 + asrs r6, 16 + adds r0, r4, 0 + bl sub_8151624 + lsls r0, 16 + asrs r0, 16 + ldr r5, =gUnknown_085713E0 + ldr r1, =gUnknown_02039CEC + ldr r1, [r1] + ldrb r4, [r1, 0xE] + lsls r4, 28 + lsrs r1, r4, 29 + subs r1, 0x1 + lsls r1, 2 + adds r1, r5 + movs r2, 0 + ldrsh r1, [r1, r2] + lsls r1, 8 + lsrs r2, r4, 29 + subs r2, 0x1 + lsls r2, 2 + adds r3, r5, 0x2 + mov r8, r3 + add r2, r8 + movs r3, 0 + ldrsh r2, [r2, r3] + lsls r2, 8 + lsrs r3, r4, 29 + subs r3, 0x1 + lsls r3, 2 + adds r3, r5 + movs r5, 0 + ldrsh r3, [r3, r5] + lsrs r4, 29 + subs r4, 0x1 + lsls r4, 2 + add r4, r8 + movs r5, 0 + ldrsh r4, [r4, r5] + str r4, [sp] + str r6, [sp, 0x4] + str r0, [sp, 0x8] + str r7, [sp, 0xC] + movs r0, 0x2 + bl SetBgAffine +_080C60EE: + add sp, 0x10 + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end sub_80C5F58 + + thumb_func_start sub_80C6104 +sub_80C6104: @ 80C6104 + push {r4,r5,lr} + sub sp, 0xC + lsls r0, 24 + lsrs r4, r0, 24 + lsls r1, 24 + lsrs r5, r1, 24 + cmp r5, 0x2 + beq _080C614C + cmp r5, 0x2 + bgt _080C611E + cmp r5, 0x1 + beq _080C6128 + b _080C61C4 +_080C611E: + cmp r5, 0x3 + beq _080C6170 + cmp r5, 0x4 + beq _080C61A4 + b _080C61C4 +_080C6128: + ldr r0, =gUnknown_02039CF0 + ldr r0, [r0] + ldr r1, [r0, 0x24] + movs r0, 0xC + str r0, [sp] + movs r0, 0x7 + str r0, [sp, 0x4] + movs r0, 0x11 + str r0, [sp, 0x8] + movs r0, 0x1 + movs r2, 0x10 + movs r3, 0x3 + bl CopyToBgTilemapBufferRect_ChangePalette + b _080C61CE + .pool +_080C614C: + ldr r0, =gUnknown_02039CF0 + ldr r0, [r0] + ldr r1, [r0, 0x24] + movs r0, 0xA8 + lsls r0, 1 + adds r1, r0 + movs r0, 0xC + str r0, [sp] + movs r0, 0x7 + str r0, [sp, 0x4] + movs r0, 0x11 + str r0, [sp, 0x8] + movs r0, 0x1 + movs r2, 0x10 + b _080C6192 + .pool +_080C6170: + ldr r0, =gUnknown_02039CEC + ldr r0, [r0] + ldrb r1, [r0, 0xE] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + beq _080C61C4 + ldr r0, =gUnknown_02039CF0 + ldr r0, [r0] + ldr r1, [r0, 0x28] + movs r0, 0xC + str r0, [sp] + str r5, [sp, 0x4] + movs r0, 0x11 + str r0, [sp, 0x8] + movs r0, 0x1 + movs r2, 0x2 +_080C6192: + movs r3, 0xA + bl CopyToBgTilemapBufferRect_ChangePalette + b _080C61CE + .pool +_080C61A4: + ldr r1, =gUnknown_08DE3350 + movs r0, 0x9 + str r0, [sp] + movs r0, 0x2 + str r0, [sp, 0x4] + movs r0, 0x11 + str r0, [sp, 0x8] + movs r0, 0x1 + movs r2, 0x15 + movs r3, 0 + bl CopyToBgTilemapBufferRect_ChangePalette + b _080C61CE + .pool +_080C61C4: + subs r0, r4, 0x1 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x3 + bhi _080C6294 +_080C61CE: + cmp r4, 0x2 + beq _080C620C + cmp r4, 0x2 + bgt _080C61DC + cmp r4, 0x1 + beq _080C61E6 + b _080C6284 +_080C61DC: + cmp r4, 0x3 + beq _080C6230 + cmp r4, 0x4 + beq _080C6264 + b _080C6284 +_080C61E6: + ldr r0, =gUnknown_02039CF0 + ldr r0, [r0] + ldr r1, [r0, 0x24] + adds r1, 0xA8 + movs r0, 0xC + str r0, [sp] + movs r0, 0x7 + str r0, [sp, 0x4] + movs r0, 0x11 + str r0, [sp, 0x8] + movs r0, 0x1 + movs r2, 0x10 + movs r3, 0x3 + bl CopyToBgTilemapBufferRect_ChangePalette + b _080C628E + .pool +_080C620C: + ldr r0, =gUnknown_02039CF0 + ldr r0, [r0] + ldr r1, [r0, 0x24] + movs r0, 0xFC + lsls r0, 1 + adds r1, r0 + movs r0, 0xC + str r0, [sp] + movs r0, 0x7 + str r0, [sp, 0x4] + movs r0, 0x11 + str r0, [sp, 0x8] + movs r0, 0x1 + movs r2, 0x10 + b _080C6254 + .pool +_080C6230: + ldr r0, =gUnknown_02039CEC + ldr r0, [r0] + ldrb r1, [r0, 0xE] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + beq _080C6294 + ldr r0, =gUnknown_02039CF0 + ldr r0, [r0] + ldr r1, [r0, 0x28] + adds r1, 0x48 + movs r0, 0xC + str r0, [sp] + str r4, [sp, 0x4] + movs r0, 0x11 + str r0, [sp, 0x8] + movs r0, 0x1 + movs r2, 0x2 +_080C6254: + movs r3, 0xA + bl CopyToBgTilemapBufferRect_ChangePalette + b _080C628E + .pool +_080C6264: + ldr r1, =gUnknown_08DE3374 + movs r0, 0x9 + str r0, [sp] + movs r0, 0x2 + str r0, [sp, 0x4] + movs r0, 0x11 + str r0, [sp, 0x8] + movs r0, 0x1 + movs r2, 0x15 + movs r3, 0 + bl CopyToBgTilemapBufferRect_ChangePalette + b _080C628E + .pool +_080C6284: + subs r0, r5, 0x1 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x3 + bhi _080C6294 +_080C628E: + movs r0, 0x1 + bl CopyBgTilemapBufferToVram +_080C6294: + add sp, 0xC + pop {r4,r5} + pop {r0} + bx r0 + thumb_func_end sub_80C6104 + + thumb_func_start sub_80C629C +sub_80C629C: @ 80C629C + push {r4,lr} + ldr r1, =gUnknown_08DE3060 + movs r0, 0x1 + movs r2, 0 + movs r3, 0 + bl CopyToBgTilemapBuffer + ldr r4, =gUnknown_02039CEC + ldr r1, [r4] + ldrb r0, [r1, 0xC] + ldrb r1, [r1, 0xD] + bl sub_80C6104 + ldr r0, [r4] + ldrb r1, [r0, 0xE] + lsls r1, 28 + lsrs r1, 29 + movs r0, 0x1 + bl sub_80C5F58 + bl sub_80C5DB8 + movs r0, 0x1 + bl CopyBgTilemapBufferToVram + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end sub_80C629C + + thumb_func_start sub_80C62DC +sub_80C62DC: @ 80C62DC + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + sub sp, 0x18 + movs r5, 0 + bl FreeAllSpritePalettes + bl ResetAffineAnimData + ldr r0, =gUnknown_085714E4 + bl LoadSpritePalettes + ldr r4, =gUnknown_085714BC + adds r0, r4, 0 + bl LoadCompressedSpriteSheet + adds r4, 0x10 + adds r0, r4, 0 + bl LoadCompressedSpriteSheet + ldr r0, =gUnknown_085715B4 + ldr r1, =gUnknown_02039CEC + ldr r2, [r1] + movs r3, 0x8 + ldrsh r1, [r2, r3] + movs r6, 0xA + ldrsh r2, [r2, r6] + movs r3, 0 + bl CreateSprite + lsls r0, 24 + lsrs r0, 24 + ldr r3, =gUnknown_02039CF0 + ldr r2, [r3] + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + ldr r0, =gSprites + adds r1, r0 + str r1, [r2] + ldrb r2, [r1, 0x5] + movs r0, 0xD + negs r0, r0 + ands r0, r2 + strb r0, [r1, 0x5] + mov r8, sp + mov r9, r3 +_080C633C: + ldr r0, =gUnknown_02039CEC + ldr r0, [r0] + adds r0, 0xF + adds r2, r0, r5 + ldrb r0, [r2] + adds r4, r5, 0x1 + cmp r0, 0 + beq _080C63C2 + mov r1, sp + ldr r0, =gUnknown_085715E4 + ldm r0!, {r3,r6,r7} + stm r1!, {r3,r6,r7} + ldm r0!, {r3,r6,r7} + stm r1!, {r3,r6,r7} + mov r7, r8 + ldrh r0, [r7, 0x2] + ldr r1, =0x0000ffff + adds r0, r1 + ldrb r2, [r2] + adds r0, r2 + strh r0, [r7, 0x2] + ldr r1, =gUnknown_08571454 + adds r0, r5, 0x6 + lsls r0, 3 + adds r0, r1 + ldrh r1, [r0, 0x4] + adds r1, 0x8 + lsls r1, 16 + asrs r1, 16 + ldrh r2, [r0] + adds r2, 0x6 + lsls r2, 16 + asrs r2, 16 + lsls r3, r4, 24 + lsrs r3, 24 + mov r0, sp + bl CreateSprite + lsls r0, 24 + lsrs r0, 24 + mov r3, r9 + ldr r2, [r3] + lsls r3, r5, 2 + adds r2, 0x4 + adds r2, r3 + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + ldr r0, =gSprites + adds r1, r0 + str r1, [r2] + ldrb r2, [r1, 0x5] + movs r6, 0xD + negs r6, r6 + adds r0, r6, 0 + ands r2, r0 + movs r0, 0x8 + orrs r2, r0 + strb r2, [r1, 0x5] + mov r7, r9 + ldr r0, [r7] + adds r0, 0x4 + adds r0, r3 + ldr r0, [r0] + adds r1, r5, 0 + bl StartSpriteAnim +_080C63C2: + lsls r0, r4, 24 + lsrs r5, r0, 24 + cmp r5, 0x6 + bls _080C633C + add sp, 0x18 + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end sub_80C62DC + + thumb_func_start sub_80C63FC +sub_80C63FC: @ 80C63FC + push {r4-r6,lr} + movs r5, 0 + ldr r4, =gUnknown_02039CF0 + ldr r0, [r4] + ldr r0, [r0] + bl DestroySprite + ldr r0, [r4] + str r5, [r0] + adds r6, r4, 0 +_080C6410: + ldr r0, [r6] + lsls r4, r5, 2 + adds r0, 0x4 + adds r0, r4 + ldr r0, [r0] + cmp r0, 0 + beq _080C642C + bl DestroySprite + ldr r0, [r6] + adds r0, 0x4 + adds r0, r4 + movs r1, 0 + str r1, [r0] +_080C642C: + adds r0, r5, 0x1 + lsls r0, 24 + lsrs r5, r0, 24 + cmp r5, 0x6 + bls _080C6410 + bl FreeAllSpritePalettes + movs r0, 0x2 + bl FreeSpriteTilesByTag + movs r0, 0 + bl FreeSpriteTilesByTag + pop {r4-r6} + pop {r0} + bx r0 + .pool + thumb_func_end sub_80C63FC + + thumb_func_start nullsub_39 +nullsub_39: @ 80C6450 + bx lr + thumb_func_end nullsub_39 + + thumb_func_start sub_80C6454 +sub_80C6454: @ 80C6454 + push {r4,r5,lr} + adds r4, r0, 0 + ldr r5, =gUnknown_02039CF4 + ldr r0, [r5] + cmp r0, 0 + beq _080C6466 + adds r0, r4, 0 + bl SetMainCallback2 +_080C6466: + ldr r0, =0x00003014 + bl AllocZeroed + str r0, [r5] + str r4, [r0] + bl ResetTasks + ldr r0, =sub_80C67BC + movs r1, 0 + bl CreateTask + ldr r0, =sub_80C5438 + bl SetMainCallback2 + pop {r4,r5} + pop {r0} + bx r0 + .pool + thumb_func_end sub_80C6454 + + thumb_func_start sub_80C6498 +sub_80C6498: @ 80C6498 + push {r4,lr} + bl ResetTasks + ldr r4, =gUnknown_02039CF4 + ldr r0, [r4] + ldr r0, [r0] + bl SetMainCallback2 + ldr r0, [r4] + ldr r2, =0x00003014 + movs r1, 0 + bl memset + ldr r0, [r4] + bl Free + movs r0, 0 + str r0, [r4] + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end sub_80C6498 + + thumb_func_start sub_80C64CC +sub_80C64CC: @ 80C64CC + push {r4,r5,lr} + sub sp, 0x8 + ldr r0, =gUnknown_02039CEC + ldr r0, [r0] + ldrh r0, [r0, 0x4] + cmp r0, 0x7 + bls _080C64DC + b _080C6694 +_080C64DC: + lsls r0, 2 + ldr r1, =_080C64F0 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .pool + .align 2, 0 +_080C64F0: + .4byte _080C6510 + .4byte _080C6520 + .4byte _080C6526 + .4byte _080C6538 + .4byte _080C65C0 + .4byte _080C65E8 + .4byte _080C6628 + .4byte _080C6678 +_080C6510: + movs r0, 0 + bl SetVBlankCallback + bl ScanlineEffect_Stop + bl SetVBlankHBlankCallbacksToNull + b _080C6694 +_080C6520: + bl sub_80C50D0 + b _080C6694 +_080C6526: + bl ResetSpriteData + bl FreeAllSpritePalettes + bl ResetPaletteFade + bl reset_temp_tile_data_buffers + b _080C6694 +_080C6538: + movs r0, 0 + bl ResetBgsAndClearDma3BusyFlags + ldr r1, =gUnknown_085713F4 + movs r0, 0 + movs r2, 0x3 + bl InitBgsFromTemplates + ldr r4, =gUnknown_02039CF4 + ldr r1, [r4] + adds r1, 0x12 + movs r0, 0 + bl SetBgTilemapBuffer + ldr r1, [r4] + ldr r0, =0x00001012 + adds r1, r0 + movs r0, 0x1 + bl SetBgTilemapBuffer + ldr r1, [r4] + ldr r0, =0x00002012 + adds r1, r0 + movs r0, 0x2 + bl SetBgTilemapBuffer + movs r5, 0x1E + str r5, [sp] + movs r4, 0x14 + str r4, [sp, 0x4] + movs r0, 0 + movs r1, 0 + movs r2, 0 + movs r3, 0 + bl FillBgTilemapBufferRect_Palette0 + str r5, [sp] + str r4, [sp, 0x4] + movs r0, 0x1 + movs r1, 0 + movs r2, 0 + movs r3, 0 + bl FillBgTilemapBufferRect_Palette0 + str r5, [sp] + str r4, [sp, 0x4] + movs r0, 0x2 + movs r1, 0 + movs r2, 0 + movs r3, 0 + bl FillBgTilemapBufferRect_Palette0 + movs r0, 0 + bl CopyBgTilemapBufferToVram + movs r0, 0x1 + bl CopyBgTilemapBufferToVram + b _080C6618 + .pool +_080C65C0: + ldr r0, =gUnknown_08571428 + bl InitWindows + bl DeactivateAllTextPrinters + bl sub_80C6B94 + ldr r1, =gUnknown_0856FBBC + movs r0, 0 + str r0, [sp] + movs r0, 0x1 + movs r2, 0 + movs r3, 0 + bl decompress_and_copy_tile_data_to_vram + b _080C6694 + .pool +_080C65E8: + bl free_temp_tile_data_buffers_if_possible + lsls r0, 24 + cmp r0, 0 + bne _080C669E + ldr r0, =gUnknown_08DE07C8 + movs r2, 0xD0 + lsls r2, 1 + movs r1, 0 + bl LoadPalette + movs r0, 0 + bl stdpal_get + movs r1, 0xF0 + movs r2, 0x20 + bl LoadPalette + ldr r1, =gUnknown_08570E00 + movs r0, 0x2 + movs r2, 0 + movs r3, 0 + bl CopyToBgTilemapBuffer +_080C6618: + movs r0, 0x2 + bl CopyBgTilemapBufferToVram + b _080C6694 + .pool +_080C6628: + 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 + bl sub_80C6974 + ldr r0, =pokemon_details + bl SetVBlankCallback + movs r5, 0x1 + negs r5, r5 + ldr r4, =0x00007fff + adds r0, r5, 0 + movs r1, 0x10 + adds r2, r4, 0 + bl BlendPalettes + str r4, [sp] + adds r0, r5, 0 + movs r1, 0 + movs r2, 0x10 + movs r3, 0 + bl BeginNormalPaletteFade + b _080C6694 + .pool +_080C6678: + bl UpdatePaletteFade + lsls r0, 24 + lsrs r1, r0, 24 + cmp r1, 0 + bne _080C669E + ldr r0, =gUnknown_02039CEC + ldr r0, [r0] + strh r1, [r0, 0x4] + movs r0, 0x1 + b _080C66A0 + .pool +_080C6694: + ldr r0, =gUnknown_02039CEC + ldr r1, [r0] + ldrh r0, [r1, 0x4] + adds r0, 0x1 + strh r0, [r1, 0x4] +_080C669E: + movs r0, 0 +_080C66A0: + add sp, 0x8 + pop {r4,r5} + pop {r1} + bx r1 + .pool + thumb_func_end sub_80C64CC + + thumb_func_start sub_80C66AC +sub_80C66AC: @ 80C66AC + push {r4,lr} + sub sp, 0x4 + ldr r0, =gUnknown_02039CEC + ldr r0, [r0] + ldrh r0, [r0, 0x4] + cmp r0, 0x5 + bhi _080C67A4 + lsls r0, 2 + ldr r1, =_080C66CC + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .pool + .align 2, 0 +_080C66CC: + .4byte _080C66E4 + .4byte _080C66FC + .4byte _080C6722 + .4byte _080C6732 + .4byte _080C6774 + .4byte _080C6782 +_080C66E4: + movs r0, 0x1 + negs r0, r0 + ldr r1, =0x00007fff + str r1, [sp] + movs r1, 0 + movs r2, 0 + movs r3, 0x10 + bl BeginNormalPaletteFade + b _080C67A4 + .pool +_080C66FC: + bl UpdatePaletteFade + lsls r0, 24 + cmp r0, 0 + bne _080C67AE + movs r0, 0 + movs r1, 0 + bl SetGpuReg + movs r0, 0 + bl HideBg + movs r0, 0x1 + bl HideBg + movs r0, 0x2 + bl HideBg + b _080C67A4 +_080C6722: + movs r0, 0 + bl SetVBlankCallback + bl ScanlineEffect_Stop + bl SetVBlankHBlankCallbacksToNull + b _080C67A4 +_080C6732: + ldr r4, =gUnknown_02039CF4 + ldr r0, [r4] + ldr r0, [r0, 0x4] + cmp r0, 0 + beq _080C6746 + bl DestroySprite + movs r0, 0 + bl FreeSpriteTilesByTag +_080C6746: + ldr r0, [r4] + ldr r0, [r0, 0xC] + cmp r0, 0 + beq _080C6758 + bl DestroySprite + movs r0, 0x1 + bl FreeSpriteTilesByTag +_080C6758: + ldr r0, [r4] + ldr r0, [r0, 0x8] + cmp r0, 0 + beq _080C676A + bl DestroySprite + movs r0, 0x4 + bl FreeSpriteTilesByTag +_080C676A: + bl FreeAllWindowBuffers + b _080C67A4 + .pool +_080C6774: + bl sub_80C50D0 + bl ResetSpriteData + bl FreeAllSpritePalettes + b _080C67A4 +_080C6782: + movs r0, 0 + bl UnsetBgTilemapBuffer + movs r0, 0x1 + bl UnsetBgTilemapBuffer + movs r0, 0x2 + bl UnsetBgTilemapBuffer + ldr r0, =gUnknown_02039CEC + ldr r1, [r0] + movs r0, 0 + strh r0, [r1, 0x4] + movs r0, 0x1 + b _080C67B0 + .pool +_080C67A4: + ldr r0, =gUnknown_02039CEC + ldr r1, [r0] + ldrh r0, [r1, 0x4] + adds r0, 0x1 + strh r0, [r1, 0x4] +_080C67AE: + movs r0, 0 +_080C67B0: + add sp, 0x4 + pop {r4} + pop {r1} + bx r1 + .pool + thumb_func_end sub_80C66AC + + thumb_func_start sub_80C67BC +sub_80C67BC: @ 80C67BC + push {r4,lr} + lsls r0, 24 + lsrs r2, r0, 24 + lsls r0, r2, 2 + adds r0, r2 + lsls r0, 3 + ldr r1, =gTasks + 0x8 + adds r4, r0, r1 + movs r1, 0 + ldrsh r0, [r4, r1] + cmp r0, 0x5 + bls _080C67D6 + b _080C68DA +_080C67D6: + lsls r0, 2 + ldr r1, =_080C67E8 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .pool + .align 2, 0 +_080C67E8: + .4byte _080C6800 + .4byte _080C6806 + .4byte _080C686C + .4byte _080C6894 + .4byte _080C68C4 + .4byte _080C68CE +_080C6800: + bl sub_80C64CC + b _080C68C8 +_080C6806: + ldr r0, =gMain + ldrh r1, [r0, 0x2E] + movs r2, 0x2 + adds r0, r2, 0 + ands r0, r1 + cmp r0, 0 + beq _080C6824 + movs r0, 0x3 + bl PlaySE + movs r0, 0x4 + b _080C68DE + .pool +_080C6824: + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + beq _080C6848 + ldr r0, =gUnknown_02039CF4 + ldr r0, [r0] + ldrb r0, [r0, 0x10] + cmp r0, 0x5 + bls _080C6844 + movs r0, 0 + bl sub_80C6C70 + b _080C68E0 + .pool +_080C6844: + strh r2, [r4] + b _080C68E0 +_080C6848: + movs r0, 0x40 + ands r0, r1 + cmp r0, 0 + beq _080C68E0 + ldr r0, =gUnknown_02039CF4 + ldr r0, [r0] + ldrb r0, [r0, 0x10] + cmp r0, 0 + bne _080C6868 + movs r0, 0x1 + bl sub_80C6C70 + b _080C68E0 + .pool +_080C6868: + movs r0, 0x3 + b _080C68DE +_080C686C: + movs r1, 0x2 + ldrsh r0, [r4, r1] + cmp r0, 0x3 + ble _080C6882 + movs r0, 0 + bl sub_80C6C70 + movs r0, 0 + strh r0, [r4, 0x2] + movs r0, 0x1 + b _080C68DE +_080C6882: + ldr r0, =gUnknown_02039CF4 + ldr r0, [r0] + ldr r1, [r0, 0x4] + ldrh r0, [r1, 0x22] + adds r0, 0x4 + b _080C68B4 + .pool +_080C6894: + movs r1, 0x2 + ldrsh r0, [r4, r1] + cmp r0, 0x3 + ble _080C68AA + movs r0, 0x1 + bl sub_80C6C70 + movs r0, 0 + strh r0, [r4, 0x2] + movs r0, 0x1 + b _080C68DE +_080C68AA: + ldr r0, =gUnknown_02039CF4 + ldr r0, [r0] + ldr r1, [r0, 0x4] + ldrh r0, [r1, 0x22] + subs r0, 0x4 +_080C68B4: + strh r0, [r1, 0x22] + ldrh r0, [r4, 0x2] + adds r0, 0x1 + strh r0, [r4, 0x2] + b _080C68E0 + .pool +_080C68C4: + bl sub_80C66AC +_080C68C8: + cmp r0, 0 + bne _080C68DA + b _080C68E0 +_080C68CE: + adds r0, r2, 0 + bl DestroyTask + bl sub_80C6498 + b _080C68E0 +_080C68DA: + ldrh r0, [r4] + adds r0, 0x1 +_080C68DE: + strh r0, [r4] +_080C68E0: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80C67BC + + thumb_func_start sub_80C68E8 +sub_80C68E8: @ 80C68E8 + push {lr} + lsls r0, 16 + lsrs r1, r0, 16 + ldr r2, =0xfffb0000 + adds r0, r2 + lsrs r0, 16 + cmp r0, 0x3 + bls _080C6904 + adds r0, r1, 0 + subs r0, 0xF + lsls r0, 16 + lsrs r0, 16 + cmp r0, 0x2 + bhi _080C690C +_080C6904: + movs r0, 0x1 + b _080C696E + .pool +_080C690C: + adds r0, r1, 0 + subs r0, 0x12 + lsls r0, 16 + lsrs r0, 16 + cmp r0, 0x3 + bhi _080C691C + movs r0, 0x2 + b _080C696E +_080C691C: + adds r0, r1, 0 + subs r0, 0x16 + lsls r0, 16 + lsrs r0, 16 + cmp r0, 0x2 + bhi _080C692C + movs r0, 0x3 + b _080C696E +_080C692C: + adds r0, r1, 0 + subs r0, 0x1C + lsls r0, 16 + lsrs r0, 16 + cmp r0, 0x2 + bhi _080C693C + movs r0, 0x4 + b _080C696E +_080C693C: + adds r0, r1, 0 + subs r0, 0x1F + lsls r0, 16 + lsrs r0, 16 + cmp r0, 0x2 + bhi _080C694C + movs r0, 0x5 + b _080C696E +_080C694C: + adds r0, r1, 0 + subs r0, 0x22 + lsls r0, 16 + lsrs r0, 16 + cmp r0, 0x5 + bhi _080C695C + movs r0, 0x6 + b _080C696E +_080C695C: + adds r0, r1, 0 + subs r0, 0x19 + lsls r0, 16 + lsrs r0, 16 + cmp r0, 0x2 + bls _080C696C + movs r0, 0 + b _080C696E +_080C696C: + movs r0, 0x7 +_080C696E: + pop {r1} + bx r1 + thumb_func_end sub_80C68E8 + + thumb_func_start sub_80C6974 +sub_80C6974: @ 80C6974 + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + sub sp, 0x18 + movs r7, 0 + bl FreeAllSpritePalettes + ldr r0, =gUnknown_085714E4 + bl LoadSpritePalettes + ldr r6, =gUnknown_085714BC + adds r0, r6, 0 + bl LoadCompressedSpriteSheet + ldr r0, =gUnknown_085715B4 + mov r8, r0 + ldr r4, =gUnknown_02039CF4 + ldr r0, [r4] + ldrb r2, [r0, 0x10] + lsls r2, 4 + adds r2, 0x8 + mov r0, r8 + movs r1, 0x9B + movs r3, 0x2 + bl CreateSprite + lsls r0, 24 + lsrs r3, r0, 24 + ldr r0, [r4] + lsls r1, r3, 4 + adds r1, r3 + lsls r1, 2 + ldr r2, =gSprites + mov r9, r2 + add r1, r9 + str r1, [r0, 0x4] + ldrb r2, [r1, 0x5] + movs r5, 0xD + negs r5, r5 + adds r0, r5, 0 + ands r0, r2 + strb r0, [r1, 0x5] + ldr r0, [r4] + ldr r1, [r0, 0x4] + adds r1, 0x3F + ldrb r0, [r1] + movs r2, 0x1 + orrs r0, r2 + strb r0, [r1] + ldr r0, [r4] + ldr r0, [r0, 0x4] + movs r1, 0x1 + bl StartSpriteAnim + adds r6, 0x8 + adds r0, r6, 0 + bl LoadCompressedSpriteSheet + movs r3, 0x18 + add r8, r3 + ldr r6, =gUnknown_08571650 + ldr r0, [r4] + ldrb r0, [r0, 0x10] + lsls r0, 4 + adds r0, r6 + movs r2, 0x8 + ldrsh r1, [r0, r2] + movs r3, 0xA + ldrsh r2, [r0, r3] + mov r0, r8 + movs r3, 0x1 + bl CreateSprite + lsls r0, 24 + lsrs r3, r0, 24 + ldr r1, [r4] + lsls r0, r3, 4 + adds r0, r3 + lsls r0, 2 + add r0, r9 + str r0, [r1, 0xC] + ldrb r1, [r0, 0x5] + ands r5, r1 + strb r5, [r0, 0x5] + ldr r1, [r4] + ldr r0, [r1, 0xC] + ldrb r1, [r1, 0x10] + lsls r1, 4 + adds r1, r6 + ldrb r1, [r1, 0xC] + bl StartSpriteAnim + bl GetCurrentRegionMapSectionId + lsls r0, 24 + lsrs r5, r0, 24 + cmp r5, 0x3A + beq _080C6A40 + cmp r5, 0xCA + beq _080C6A40 + b _080C6B7A +_080C6A40: + ldr r4, =gSaveBlock1Ptr + ldr r2, [r4] + movs r0, 0x5 + ldrsb r0, [r2, r0] + cmp r0, 0x4 + beq _080C6A52 + cmp r0, 0xE + bne _080C6A98 + movs r7, 0x37 +_080C6A52: + lsls r0, r7, 16 + asrs r0, 16 + ldrh r6, [r2] + adds r0, r6 + ldrh r4, [r2, 0x2] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0 + bge _080C6A66 + adds r0, 0x7 +_080C6A66: + lsls r0, 13 + lsrs r7, r0, 16 + lsls r0, r4, 16 + asrs r0, 16 + cmp r0, 0 + bge _080C6A74 + adds r0, 0x7 +_080C6A74: + lsls r0, 13 + lsrs r4, r0, 16 + movs r5, 0 + b _080C6AF2 + .pool +_080C6A98: + lsls r0, 16 + lsrs r0, 16 + bl sub_80C68E8 + lsls r0, 24 + lsrs r5, r0, 24 + cmp r5, 0 + beq _080C6AB4 + subs r0, r5, 0x1 + lsls r0, 4 + adds r0, r6 + ldrh r7, [r0, 0x8] + ldrh r4, [r0, 0xA] + b _080C6AF2 +_080C6AB4: + ldr r1, [r4] + adds r0, r1, 0 + adds r0, 0x25 + ldrb r0, [r0] + lsls r0, 24 + asrs r0, 24 + cmp r0, 0xE + bne _080C6ACE + ldrh r0, [r1, 0x28] + adds r0, 0x37 + lsls r0, 16 + lsrs r7, r0, 16 + b _080C6AD0 +_080C6ACE: + ldrh r7, [r1, 0x28] +_080C6AD0: + ldr r0, =gSaveBlock1Ptr + ldr r0, [r0] + ldrh r4, [r0, 0x2A] + lsls r0, r7, 16 + asrs r0, 16 + cmp r0, 0 + bge _080C6AE0 + adds r0, 0x7 +_080C6AE0: + lsls r0, 13 + lsrs r7, r0, 16 + lsls r0, r4, 16 + asrs r0, 16 + cmp r0, 0 + bge _080C6AEE + adds r0, 0x7 +_080C6AEE: + lsls r0, 13 + lsrs r4, r0, 16 +_080C6AF2: + ldr r0, =gUnknown_085714D4 + bl LoadCompressedSpriteSheet + mov r1, sp + ldr r0, =gUnknown_085715FC + ldm r0!, {r2,r3,r6} + stm r1!, {r2,r3,r6} + ldm r0!, {r2,r3,r6} + stm r1!, {r2,r3,r6} + mov r1, sp + ldr r0, =gSaveBlock2Ptr + ldr r0, [r0] + ldrb r0, [r0, 0x8] + adds r0, 0x4 + strh r0, [r1, 0x2] + cmp r5, 0 + beq _080C6B2C + lsls r1, r7, 16 + asrs r1, 16 + lsls r2, r4, 16 + b _080C6B3E + .pool +_080C6B2C: + lsls r1, r7, 19 + lsls r2, r4, 19 + movs r0, 0xA0 + lsls r0, 13 + adds r1, r0 + asrs r1, 16 + movs r3, 0x90 + lsls r3, 14 + adds r2, r3 +_080C6B3E: + asrs r2, 16 + mov r0, sp + movs r3, 0 + bl CreateSprite + lsls r0, 24 + lsrs r3, r0, 24 + ldr r4, =gUnknown_02039CF4 + ldr r2, [r4] + lsls r1, r3, 4 + adds r1, r3 + lsls r1, 2 + ldr r0, =gSprites + adds r1, r0 + str r1, [r2, 0x8] + ldrb r2, [r1, 0x5] + movs r0, 0xD + negs r0, r0 + ands r0, r2 + strb r0, [r1, 0x5] + ldr r0, =gSaveBlock2Ptr + ldr r0, [r0] + ldrb r0, [r0, 0x8] + cmp r0, 0 + beq _080C6B7A + ldr r0, [r4] + ldr r0, [r0, 0x8] + movs r1, 0x1 + bl StartSpriteAnim +_080C6B7A: + add sp, 0x18 + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end sub_80C6974 + + thumb_func_start sub_80C6B94 +sub_80C6B94: @ 80C6B94 + push {r4-r6,lr} + sub sp, 0xC + movs r4, 0 +_080C6B9A: + adds r0, r4, 0 + bl PutWindowTilemap + adds r0, r4, 0 + movs r1, 0 + bl FillWindowPixelBuffer + adds r0, r4, 0x1 + lsls r0, 24 + lsrs r4, r0, 24 + cmp r4, 0x2 + bls _080C6B9A + movs r4, 0 + movs r6, 0 + ldr r5, =gUnknown_08571650 +_080C6BB8: + ldr r0, =gUnknown_02039CF4 + ldr r0, [r0] + ldrb r0, [r0, 0x10] + cmp r4, r0 + bne _080C6BF0 + lsls r1, r4, 4 + adds r3, r1, 0x1 + lsls r3, 24 + lsrs r3, 24 + ldr r0, =gUnknown_0857144E + str r0, [sp] + str r6, [sp, 0x4] + adds r1, r5 + ldr r0, [r1] + str r0, [sp, 0x8] + movs r0, 0x1 + movs r1, 0x7 + movs r2, 0x4 + bl AddTextPrinterParameterized3 + b _080C6C0E + .pool +_080C6BF0: + lsls r1, r4, 4 + adds r3, r1, 0x1 + lsls r3, 24 + lsrs r3, 24 + ldr r0, =gUnknown_0857144B + str r0, [sp] + str r6, [sp, 0x4] + adds r1, r5 + ldr r0, [r1] + str r0, [sp, 0x8] + movs r0, 0x1 + movs r1, 0x7 + movs r2, 0x4 + bl AddTextPrinterParameterized3 +_080C6C0E: + adds r0, r4, 0x1 + lsls r0, 24 + lsrs r4, r0, 24 + cmp r4, 0x6 + bls _080C6BB8 + ldr r0, =gUnknown_08571448 + str r0, [sp] + movs r0, 0 + str r0, [sp, 0x4] + ldr r1, =gUnknown_08571650 + ldr r0, =gUnknown_02039CF4 + ldr r0, [r0] + ldrb r0, [r0, 0x10] + lsls r0, 4 + adds r1, 0x4 + adds r0, r1 + ldr r0, [r0] + str r0, [sp, 0x8] + movs r0, 0x2 + movs r1, 0x1 + movs r2, 0x4 + movs r3, 0 + bl AddTextPrinterParameterized3 + movs r4, 0 +_080C6C40: + adds r0, r4, 0 + movs r1, 0x3 + bl CopyWindowToVram + adds r0, r4, 0x1 + lsls r0, 24 + lsrs r4, r0, 24 + cmp r4, 0x2 + bls _080C6C40 + movs r0, 0 + bl CopyBgTilemapBufferToVram + add sp, 0xC + pop {r4-r6} + pop {r0} + bx r0 + .pool + thumb_func_end sub_80C6B94 + + thumb_func_start sub_80C6C70 +sub_80C6C70: @ 80C6C70 + push {r4-r6,lr} + mov r6, r8 + push {r6} + sub sp, 0xC + lsls r0, 24 + cmp r0, 0 + beq _080C6C8C + ldr r0, =gUnknown_02039CF4 + ldr r4, [r0] + ldrb r5, [r4, 0x10] + adds r0, r5, 0x6 + b _080C6C94 + .pool +_080C6C8C: + ldr r0, =gUnknown_02039CF4 + ldr r4, [r0] + ldrb r5, [r4, 0x10] + adds r0, r5, 0x1 +_080C6C94: + movs r1, 0x7 + bl __modsi3 + strb r0, [r4, 0x10] + lsls r0, r5, 4 + adds r3, r0, 0x1 + lsls r3, 24 + lsrs r3, 24 + ldr r6, =gUnknown_0857144B + str r6, [sp] + movs r1, 0 + mov r8, r1 + str r1, [sp, 0x4] + ldr r4, =gUnknown_08571650 + adds r0, r4 + ldr r0, [r0] + str r0, [sp, 0x8] + movs r0, 0x1 + movs r1, 0x7 + movs r2, 0x4 + bl AddTextPrinterParameterized3 + ldr r5, =gUnknown_02039CF4 + ldr r1, [r5] + ldrb r3, [r1, 0x10] + lsls r3, 4 + adds r3, 0x1 + lsls r3, 24 + lsrs r3, 24 + adds r0, r6, 0x3 + str r0, [sp] + mov r0, r8 + str r0, [sp, 0x4] + ldrb r0, [r1, 0x10] + lsls r0, 4 + adds r0, r4 + ldr r0, [r0] + str r0, [sp, 0x8] + movs r0, 0x1 + movs r1, 0x7 + movs r2, 0x4 + bl AddTextPrinterParameterized3 + ldr r1, [r5] + ldr r2, [r1, 0x4] + ldrb r0, [r1, 0x10] + lsls r0, 4 + adds r0, 0x8 + strh r0, [r2, 0x22] + ldr r0, [r1, 0xC] + ldrb r1, [r1, 0x10] + lsls r1, 4 + adds r1, r4 + ldrb r1, [r1, 0xC] + bl StartSpriteAnim + ldr r1, [r5] + ldr r2, [r1, 0xC] + ldrb r0, [r1, 0x10] + lsls r0, 4 + adds r0, r4 + ldrh r0, [r0, 0x8] + strh r0, [r2, 0x20] + ldr r2, [r1, 0xC] + ldrb r0, [r1, 0x10] + lsls r0, 4 + adds r0, r4 + ldrh r0, [r0, 0xA] + strh r0, [r2, 0x22] + movs r0, 0x2 + movs r1, 0 + bl FillWindowPixelBuffer + subs r6, 0x3 + str r6, [sp] + mov r1, r8 + str r1, [sp, 0x4] + ldr r0, [r5] + ldrb r0, [r0, 0x10] + lsls r0, 4 + adds r4, 0x4 + adds r0, r4 + ldr r0, [r0] + str r0, [sp, 0x8] + movs r0, 0x2 + movs r1, 0x1 + movs r2, 0x4 + movs r3, 0 + bl AddTextPrinterParameterized3 + movs r4, 0 +_080C6D4A: + adds r0, r4, 0 + movs r1, 0x3 + bl CopyWindowToVram + adds r0, r4, 0x1 + lsls r0, 24 + lsrs r4, r0, 24 + cmp r4, 0x2 + bls _080C6D4A + movs r0, 0 + bl CopyBgTilemapBufferToVram + movs r0, 0x6C + bl PlaySE + add sp, 0xC + pop {r3} + mov r8, r3 + pop {r4-r6} + pop {r0} + bx r0 + .pool + thumb_func_end sub_80C6C70 + + thumb_func_start sub_80C6D80 +sub_80C6D80: @ 80C6D80 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x2C + str r0, [sp, 0x24] + adds r7, r1, 0 + lsls r2, 24 + lsrs r2, 24 + str r2, [sp, 0x28] + lsls r3, 24 + lsrs r3, 24 + mov r9, r3 + movs r0, 0 + movs r1, 0 + str r0, [sp, 0x1C] + str r1, [sp, 0x20] + ldr r1, =0x00ffffff + ldr r0, [sp, 0x1C] + ands r0, r1 + movs r1, 0xC0 + lsls r1, 21 + orrs r0, r1 + str r0, [sp, 0x1C] + ldr r1, =0xffffff00 + add r5, sp, 0x1C + ldr r0, [r5, 0x4] + ands r0, r1 + movs r1, 0x2 + orrs r0, r1 + str r0, [r5, 0x4] + adds r0, r5, 0 + bl AddWindow + lsls r0, 16 + lsrs r0, 16 + mov r10, r0 + lsls r4, r0, 24 + lsrs r4, 24 + mov r0, r9 + lsls r1, r0, 4 + orrs r1, r0 + lsls r1, 24 + lsrs r1, 24 + adds r0, r4, 0 + bl FillWindowPixelBuffer + adds r0, r4, 0 + movs r1, 0x7 + bl GetWindowAttribute + adds r6, r0, 0 + ldrb r0, [r5, 0x3] + lsls r0, 5 + adds r0, r6 + mov r8, r0 + ldr r1, [sp, 0x28] + cmp r1, 0 + bne _080C6E04 + add r0, sp, 0x14 + b _080C6E08 + .pool +_080C6E04: + add r0, sp, 0x14 + mov r1, r9 +_080C6E08: + strb r1, [r0] + add r1, sp, 0x14 + movs r2, 0 + movs r0, 0xF + strb r0, [r1, 0x1] + movs r0, 0xE + strb r0, [r1, 0x2] + mov r0, r10 + lsls r4, r0, 24 + lsrs r0, r4, 24 + str r2, [sp] + str r2, [sp, 0x4] + str r1, [sp, 0x8] + movs r1, 0x1 + negs r1, r1 + str r1, [sp, 0xC] + ldr r1, [sp, 0x24] + str r1, [sp, 0x10] + movs r1, 0x1 + movs r3, 0x1 + bl AddTextPrinterParameterized4 + ldr r0, [sp, 0x4C] + mov r10, r4 + cmp r0, 0x6 + bls _080C6E3E + movs r0, 0x6 +_080C6E3E: + ldr r4, [sp, 0x4C] + subs r4, 0x6 + cmp r0, 0 + ble _080C6E70 + adds r5, r0, 0 +_080C6E48: + adds r0, r6, 0 + adds r1, r7, 0 + movs r2, 0x40 + bl CpuSet + adds r1, r7, 0 + adds r1, 0x80 + mov r0, r8 + movs r2, 0x40 + bl CpuSet + adds r6, 0x80 + movs r2, 0x80 + add r8, r2 + movs r0, 0x80 + lsls r0, 1 + adds r7, r0 + subs r5, 0x1 + cmp r5, 0 + bne _080C6E48 +_080C6E70: + cmp r4, 0 + ble _080C6E90 + add r0, sp, 0x18 + mov r2, r9 + lsls r1, r2, 4 + orrs r1, r2 + strh r1, [r0] + lsls r2, r4, 7 + ldr r1, =0x001fffff + ands r2, r1 + movs r1, 0x80 + lsls r1, 17 + orrs r2, r1 + adds r1, r7, 0 + bl CpuSet +_080C6E90: + mov r1, r10 + lsrs r0, r1, 24 + bl RemoveWindow + add sp, 0x2C + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end sub_80C6D80 + + thumb_func_start sub_80C6EAC +sub_80C6EAC: @ 80C6EAC + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x2C + str r0, [sp, 0x20] + str r1, [sp, 0x24] + adds r6, r3, 0 + ldr r0, [sp, 0x4C] + mov r9, r0 + ldr r1, [sp, 0x50] + mov r10, r1 + lsls r2, 16 + lsrs r2, 16 + str r2, [sp, 0x28] + lsls r6, 24 + lsrs r6, 24 + mov r2, r9 + lsls r2, 24 + lsrs r2, 24 + mov r9, r2 + mov r0, r10 + lsls r0, 24 + lsrs r0, 24 + mov r10, r0 + movs r0, 0 + movs r1, 0 + str r0, [sp, 0x18] + str r1, [sp, 0x1C] + ldr r0, [sp, 0x20] + bl StringLength_Multibyte + lsls r0, 24 + ldr r2, =0x00ffffff + ldr r1, [sp, 0x18] + ands r1, r2 + orrs r1, r0 + str r1, [sp, 0x18] + ldr r1, =0xffffff00 + add r2, sp, 0x18 + mov r8, r2 + ldr r0, [r2, 0x4] + ands r0, r1 + movs r1, 0x2 + orrs r0, r1 + str r0, [r2, 0x4] + ldr r5, [sp, 0x18] + lsrs r5, 24 + lsls r5, 5 + mov r0, r8 + bl AddWindow + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + lsls r1, r6, 4 + orrs r1, r6 + lsls r1, 24 + lsrs r1, 24 + adds r0, r4, 0 + bl FillWindowPixelBuffer + adds r0, r4, 0 + movs r1, 0x7 + bl GetWindowAttribute + adds r7, r0, 0 + mov r0, r8 + ldrb r0, [r0, 0x3] + lsls r0, 5 + mov r8, r0 + add r8, r7 + add r0, sp, 0x14 + movs r1, 0 + strb r6, [r0] + mov r2, r9 + strb r2, [r0, 0x1] + mov r2, r10 + strb r2, [r0, 0x2] + str r1, [sp] + str r1, [sp, 0x4] + str r0, [sp, 0x8] + movs r0, 0x1 + negs r0, r0 + str r0, [sp, 0xC] + ldr r0, [sp, 0x20] + str r0, [sp, 0x10] + adds r0, r4, 0 + movs r1, 0x1 + movs r2, 0 + movs r3, 0x2 + bl AddTextPrinterParameterized4 + lsrs r5, 1 + adds r0, r7, 0 + ldr r1, [sp, 0x24] + adds r2, r5, 0 + bl CpuSet + ldr r2, [sp, 0x24] + ldr r0, [sp, 0x28] + adds r1, r2, r0 + mov r0, r8 + adds r2, r5, 0 + bl CpuSet + adds r0, r4, 0 + bl RemoveWindow + add sp, 0x2C + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end sub_80C6EAC + + .align 2, 0 @ Don't pad with nop. diff --git a/asm/trainer_card.s b/asm/trainer_card.s deleted file mode 100644 index b1fd740ec..000000000 --- a/asm/trainer_card.s +++ /dev/null @@ -1,4445 +0,0 @@ - .include "asm/macros.inc" - .include "constants/constants.inc" - - .syntax unified - - .text - - - - thumb_func_start sub_80C49D8 -sub_80C49D8: @ 80C49D8 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x4 - mov r8, r0 - ldr r0, =gUnknown_02039CE8 - ldr r1, [r0] - movs r0, 0 - strb r0, [r1, 0x9] - mov r0, r8 - ldrh r1, [r0, 0xA] - movs r2, 0xA - ldrsh r0, [r0, r2] - cmp r0, 0x4C - ble _080C4A08 - movs r0, 0x4D - mov r3, r8 - strh r0, [r3, 0xA] - b _080C4A0E - .pool -_080C4A08: - adds r0, r1, 0x7 - mov r4, r8 - strh r0, [r4, 0xA] -_080C4A0E: - ldr r0, =gUnknown_02039CE8 - ldr r0, [r0] - mov r2, r8 - ldrh r1, [r2, 0xA] - ldr r3, =0x00007ca8 - adds r0, r3 - strh r1, [r0] - ldrh r0, [r2, 0xA] - bl sub_80C32EC - mov r4, r8 - movs r0, 0xA - ldrsh r7, [r4, r0] - movs r0, 0xA0 - subs r0, r7 - mov r9, r0 - subs r4, r0, r7 - negs r0, r7 - lsls r6, r0, 16 - movs r0, 0xA0 - lsls r0, 16 - adds r1, r4, 0 - bl __udivsi3 - adds r5, r0, 0 - ldr r1, =0xffff0000 - adds r5, r1 - adds r0, r5, 0 - muls r0, r4 - adds r0, r6, r0 - str r0, [sp] - adds r0, r5, 0 - adds r1, r4, 0 - bl __udivsi3 - mov r10, r0 - lsls r5, 1 - movs r2, 0 - cmp r2, r7 - bcs _080C4A78 - ldr r3, =gScanlineEffectRegBuffers -_080C4A60: - lsls r0, r2, 16 - asrs r0, 16 - lsls r1, r0, 1 - adds r1, r3 - negs r2, r0 - strh r2, [r1] - adds r0, 0x1 - lsls r0, 16 - lsrs r2, r0, 16 - asrs r0, 16 - cmp r0, r7 - bcc _080C4A60 -_080C4A78: - lsls r1, r2, 16 - mov r3, r9 - lsls r0, r3, 16 - asrs r3, r0, 16 - ldr r4, =gUnknown_02039CE8 - mov r9, r4 - ldr r4, [sp] - lsrs r7, r4, 16 - cmp r1, r0 - bge _080C4AB0 - ldr r0, =gScanlineEffectRegBuffers - mov r12, r0 - adds r4, r3, 0 -_080C4A92: - lsrs r3, r6, 16 - adds r6, r5 - mov r2, r10 - subs r5, r2 - asrs r0, r1, 16 - lsls r1, r0, 1 - add r1, r12 - strh r3, [r1] - adds r0, 0x1 - lsls r0, 16 - lsrs r2, r0, 16 - lsls r1, r2, 16 - asrs r0, r1, 16 - cmp r0, r4 - blt _080C4A92 -_080C4AB0: - adds r3, r7, 0 - lsls r1, r2, 16 - asrs r0, r1, 16 - cmp r0, 0x9F - bgt _080C4ACE - ldr r2, =gScanlineEffectRegBuffers -_080C4ABC: - asrs r0, r1, 16 - lsls r1, r0, 1 - adds r1, r2 - strh r3, [r1] - adds r0, 0x1 - lsls r1, r0, 16 - asrs r0, r1, 16 - cmp r0, 0x9F - ble _080C4ABC -_080C4ACE: - mov r3, r9 - ldr r0, [r3] - movs r1, 0x1 - strb r1, [r0, 0x9] - mov r4, r8 - movs r1, 0xA - ldrsh r0, [r4, r1] - cmp r0, 0x4C - ble _080C4AE6 - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] -_080C4AE6: - movs r0, 0 - add sp, 0x4 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r1} - bx r1 - .pool - thumb_func_end sub_80C49D8 - - thumb_func_start sub_80C4B08 -sub_80C4B08: @ 80C4B08 - push {r4,r5,lr} - sub sp, 0x8 - adds r5, r0, 0 - ldr r4, =gUnknown_02039CE8 - ldr r1, [r4] - movs r0, 0 - strb r0, [r1, 0x9] - bl sub_8087598 - adds r2, r4, 0 - cmp r0, 0x1 - beq _080C4C08 -_080C4B20: - ldr r3, [r2] - ldrb r0, [r3, 0x4] - cmp r0, 0x4 - bhi _080C4BE4 - lsls r0, 2 - ldr r1, =_080C4B3C - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .pool - .align 2, 0 -_080C4B3C: - .4byte _080C4B50 - .4byte _080C4B6C - .4byte _080C4B8C - .4byte _080C4BB0 - .4byte _080C4BCE -_080C4B50: - movs r0, 0x1 - movs r1, 0 - bl FillWindowPixelBuffer - movs r0, 0x20 - str r0, [sp] - str r0, [sp, 0x4] - movs r0, 0x3 - movs r1, 0 - movs r2, 0 - movs r3, 0 - bl FillBgTilemapBufferRect_Palette0 - b _080C4BF6 -_080C4B6C: - ldr r0, [r2] - ldrb r0, [r0, 0x8] - cmp r0, 0 - bne _080C4B80 - bl PrintStringsOnCardPage2 - lsls r0, 24 - cmp r0, 0 - bne _080C4BF6 - b _080C4C08 -_080C4B80: - bl PrintAllOnCardPage1 - lsls r0, 24 - cmp r0, 0 - bne _080C4BF6 - b _080C4C08 -_080C4B8C: - ldr r0, =gUnknown_02039CE8 - ldr r1, [r0] - ldrb r0, [r1, 0x8] - cmp r0, 0 - bne _080C4BA8 - ldr r2, =0x00000a48 - adds r0, r1, r2 - bl sub_80C45C0 - b _080C4BF6 - .pool -_080C4BA8: - movs r0, 0x1 - bl sub_80C438C - b _080C4BF6 -_080C4BB0: - ldr r0, =gUnknown_02039CE8 - ldr r0, [r0] - ldrb r0, [r0, 0x8] - cmp r0, 0 - bne _080C4BC4 - bl sub_80C474C - b _080C4BF6 - .pool -_080C4BC4: - movs r0, 0x2 - movs r1, 0 - bl FillWindowPixelBuffer - b _080C4BF6 -_080C4BCE: - ldr r0, =gUnknown_02039CE8 - ldr r0, [r0] - ldrb r0, [r0, 0x8] - cmp r0, 0 - beq _080C4BF6 - bl sub_80C4FF0 - b _080C4BF6 - .pool -_080C4BE4: - ldrh r0, [r5, 0x8] - adds r0, 0x1 - movs r1, 0 - strh r0, [r5, 0x8] - movs r0, 0x1 - strb r0, [r3, 0x9] - ldr r0, [r2] - strb r1, [r0, 0x4] - b _080C4C08 -_080C4BF6: - ldr r2, =gUnknown_02039CE8 - ldr r1, [r2] - ldrb r0, [r1, 0x4] - adds r0, 0x1 - strb r0, [r1, 0x4] - ldr r0, =gReceivedRemoteLinkPlayers - ldrb r0, [r0] - cmp r0, 0 - beq _080C4B20 -_080C4C08: - movs r0, 0 - add sp, 0x8 - pop {r4,r5} - pop {r1} - bx r1 - .pool - thumb_func_end sub_80C4B08 - - thumb_func_start sub_80C4C1C -sub_80C4C1C: @ 80C4C1C - push {r4,r5,lr} - adds r5, r0, 0 - ldr r4, =gUnknown_02039CE8 - ldr r1, [r4] - movs r0, 0 - strb r0, [r1, 0x9] - ldr r0, [r4] - ldrb r0, [r0, 0x8] - cmp r0, 0 - beq _080C4C50 - movs r0, 0x2 - bl sub_80C438C - ldr r0, [r4] - ldr r1, =0x00000ef8 - adds r0, r1 - bl sub_80C4550 - ldr r0, [r4] - movs r1, 0xB3 - lsls r1, 3 - adds r0, r1 - bl sub_80C45C0 - bl sub_80C4630 -_080C4C50: - movs r0, 0x1 - bl sub_80C438C - ldr r2, [r4] - ldrb r0, [r2, 0x8] - movs r1, 0x1 - eors r0, r1 - strb r0, [r2, 0x8] - ldrh r0, [r5, 0x8] - adds r0, 0x1 - strh r0, [r5, 0x8] - ldr r1, [r4] - movs r0, 0x1 - strb r0, [r1, 0x9] - movs r0, 0xFA - bl PlaySE - movs r0, 0 - pop {r4,r5} - pop {r1} - bx r1 - .pool - thumb_func_end sub_80C4C1C - - thumb_func_start sub_80C4C84 -sub_80C4C84: @ 80C4C84 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x4 - mov r8, r0 - ldr r0, =gUnknown_02039CE8 - ldr r0, [r0] - movs r2, 0 - strb r2, [r0, 0x9] - mov r0, r8 - ldrh r1, [r0, 0xA] - movs r3, 0xA - ldrsh r0, [r0, r3] - cmp r0, 0x5 - bgt _080C4CB0 - mov r4, r8 - strh r2, [r4, 0xA] - b _080C4CB6 - .pool -_080C4CB0: - subs r0, r1, 0x5 - mov r1, r8 - strh r0, [r1, 0xA] -_080C4CB6: - ldr r0, =gUnknown_02039CE8 - ldr r0, [r0] - mov r2, r8 - ldrh r1, [r2, 0xA] - ldr r3, =0x00007ca8 - adds r0, r3 - strh r1, [r0] - ldrh r0, [r2, 0xA] - bl sub_80C32EC - mov r4, r8 - movs r0, 0xA - ldrsh r7, [r4, r0] - movs r0, 0xA0 - subs r0, r7 - mov r9, r0 - subs r4, r0, r7 - negs r0, r7 - lsls r6, r0, 16 - movs r0, 0xA0 - lsls r0, 16 - adds r1, r4, 0 - bl __udivsi3 - adds r5, r0, 0 - ldr r1, =0xffff0000 - adds r5, r1 - adds r0, r5, 0 - muls r0, r4 - adds r0, r6, r0 - str r0, [sp] - adds r0, r5, 0 - adds r1, r4, 0 - bl __udivsi3 - mov r10, r0 - lsrs r5, 1 - movs r2, 0 - cmp r2, r7 - bcs _080C4D20 - ldr r3, =gScanlineEffectRegBuffers -_080C4D08: - lsls r0, r2, 16 - asrs r0, 16 - lsls r1, r0, 1 - adds r1, r3 - negs r2, r0 - strh r2, [r1] - adds r0, 0x1 - lsls r0, 16 - lsrs r2, r0, 16 - asrs r0, 16 - cmp r0, r7 - bcc _080C4D08 -_080C4D20: - lsls r1, r2, 16 - mov r3, r9 - lsls r0, r3, 16 - asrs r3, r0, 16 - ldr r4, =gUnknown_02039CE8 - mov r9, r4 - ldr r4, [sp] - lsrs r7, r4, 16 - cmp r1, r0 - bge _080C4D56 - ldr r0, =gScanlineEffectRegBuffers - mov r12, r0 - adds r4, r3, 0 -_080C4D3A: - lsrs r3, r6, 16 - adds r6, r5 - add r5, r10 - asrs r0, r1, 16 - lsls r1, r0, 1 - add r1, r12 - strh r3, [r1] - adds r0, 0x1 - lsls r0, 16 - lsrs r2, r0, 16 - lsls r1, r2, 16 - asrs r0, r1, 16 - cmp r0, r4 - blt _080C4D3A -_080C4D56: - adds r3, r7, 0 - lsls r1, r2, 16 - asrs r0, r1, 16 - cmp r0, 0x9F - bgt _080C4D74 - ldr r2, =gScanlineEffectRegBuffers -_080C4D62: - asrs r0, r1, 16 - lsls r1, r0, 1 - adds r1, r2 - strh r3, [r1] - adds r0, 0x1 - lsls r1, r0, 16 - asrs r0, r1, 16 - cmp r0, 0x9F - ble _080C4D62 -_080C4D74: - mov r1, r9 - ldr r0, [r1] - movs r1, 0x1 - strb r1, [r0, 0x9] - mov r2, r8 - movs r3, 0xA - ldrsh r0, [r2, r3] - cmp r0, 0 - bgt _080C4D8C - ldrh r0, [r2, 0x8] - adds r0, 0x1 - strh r0, [r2, 0x8] -_080C4D8C: - movs r0, 0 - add sp, 0x4 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r1} - bx r1 - .pool - thumb_func_end sub_80C4C84 - - thumb_func_start sub_80C4DB0 -sub_80C4DB0: @ 80C4DB0 - push {lr} - movs r0, 0x1 - bl ShowBg - movs r0, 0x3 - bl ShowBg - movs r0, 0 - bl SetHBlankCallback - ldr r0, =sub_80C4960 - bl FindTaskIdByFunc - lsls r0, 24 - lsrs r0, 24 - bl DestroyTask - movs r0, 0 - pop {r1} - bx r1 - .pool - thumb_func_end sub_80C4DB0 - - thumb_func_start sub_80C4DDC -sub_80C4DDC: @ 80C4DDC - push {r4,r5,lr} - adds r5, r0, 0 - ldr r4, =gUnknown_02039CE8 - ldr r0, =0x00007cac - bl AllocZeroed - adds r1, r0, 0 - str r1, [r4] - movs r2, 0xA6 - lsls r2, 3 - adds r0, r1, r2 - str r5, [r0] - ldr r0, =sub_80C5868 - cmp r5, r0 - bne _080C4E18 - ldr r0, =0x0000052c - adds r1, r0 - ldr r0, =0x00007fff - b _080C4E1E - .pool -_080C4E18: - ldr r2, =0x0000052c - adds r1, r2 - movs r0, 0 -_080C4E1E: - strh r0, [r1] - bl InUnionRoom - adds r3, r0, 0 - cmp r3, 0x1 - bne _080C4E3C - ldr r1, =gUnknown_02039CE8 - ldr r0, [r1] - strb r3, [r0, 0x5] - adds r2, r1, 0 - b _080C4E44 - .pool -_080C4E3C: - ldr r2, =gUnknown_02039CE8 - ldr r1, [r2] - movs r0, 0 - strb r0, [r1, 0x5] -_080C4E44: - ldr r0, [r2] - ldr r1, =0x00007caa - adds r0, r1 - movs r1, 0x2 - strb r1, [r0] - ldr r0, [r2] - ldr r2, =0x00000534 - adds r0, r2 - bl sub_80C3020 - ldr r0, =sub_80C2C80 - bl SetMainCallback2 - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_80C4DDC - - thumb_func_start TrainerCard_ShowLinkCard -TrainerCard_ShowLinkCard: @ 80C4E74 - push {r4-r6,lr} - adds r4, r0, 0 - adds r6, r1, 0 - lsls r4, 24 - lsrs r4, 24 - ldr r5, =gUnknown_02039CE8 - ldr r0, =0x00007cac - bl AllocZeroed - str r0, [r5] - movs r2, 0xA6 - lsls r2, 3 - adds r1, r0, r2 - str r6, [r1] - movs r1, 0x1 - strb r1, [r0, 0x5] - ldr r0, [r5] - ldr r1, =0x00000534 - adds r0, r1 - ldr r2, =gTrainerCards - movs r1, 0x64 - muls r1, r4 - adds r1, r2 - movs r2, 0x64 - bl memcpy - ldr r1, [r5] - ldr r2, =gLinkPlayers - lsls r0, r4, 3 - subs r0, r4 - lsls r0, 2 - adds r0, r2 - ldrh r0, [r0, 0x1A] - ldr r2, =0x00007caa - adds r1, r2 - strb r0, [r1] - ldr r0, =sub_80C2C80 - bl SetMainCallback2 - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end TrainerCard_ShowLinkCard - - thumb_func_start sub_80C4EE4 -sub_80C4EE4: @ 80C4EE4 - push {r4,r5,lr} - ldr r4, =gUnknown_02039CE8 - ldr r0, [r4] - movs r1, 0 - strb r1, [r0] - ldr r2, [r4] - ldr r0, =gSaveBlock2Ptr - ldr r0, [r0] - ldrb r0, [r0, 0x12] - strb r0, [r2, 0x6] - ldr r0, [r4] - strb r1, [r0, 0x7] - ldr r0, [r4] - strb r1, [r0, 0x8] - ldr r0, [r4] - movs r2, 0xA5 - lsls r2, 3 - adds r0, r2 - strb r1, [r0] - bl sub_80C4F50 - ldr r1, [r4] - ldr r3, =0x0000052a - adds r1, r3 - strb r0, [r1] - movs r5, 0 -_080C4F18: - movs r0, 0xD - muls r0, r5 - adds r0, 0x19 - ldr r1, [r4] - adds r0, r1, r0 - lsls r2, r5, 1 - ldr r3, =0x0000055c - adds r1, r3 - adds r1, r2 - ldrh r1, [r1] - bl CopyEasyChatWord - adds r0, r5, 0x1 - lsls r0, 24 - lsrs r5, r0, 24 - cmp r5, 0x3 - bls _080C4F18 - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_80C4EE4 - - thumb_func_start sub_80C4F50 -sub_80C4F50: @ 80C4F50 - push {lr} - ldr r0, =gUnknown_02039CE8 - ldr r1, [r0] - cmp r1, 0 - bne _080C4F7C - ldr r0, =gGameVersion - ldrb r1, [r0] - subs r0, r1, 0x4 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bhi _080C4F74 - movs r0, 0 - b _080C4FC2 - .pool -_080C4F74: - cmp r1, 0x3 - beq _080C4FC0 - movs r0, 0x1 - b _080C4FC2 -_080C4F7C: - ldr r2, =0x0000056c - adds r0, r1, r2 - ldrb r2, [r0] - subs r0, r2, 0x4 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bhi _080C4FA0 - ldr r0, =0x0000052b - adds r1, r0 - movs r0, 0 - strb r0, [r1] - b _080C4FC2 - .pool -_080C4FA0: - lsls r0, r2, 24 - lsrs r0, 24 - cmp r0, 0x3 - beq _080C4FB8 - ldr r2, =0x0000052b - adds r1, r2 - movs r0, 0x1 - strb r0, [r1] - b _080C4FC2 - .pool -_080C4FB8: - ldr r0, =0x0000052b - adds r1, r0 - movs r0, 0x1 - strb r0, [r1] -_080C4FC0: - movs r0, 0x2 -_080C4FC2: - pop {r1} - bx r1 - .pool - thumb_func_end sub_80C4F50 - - thumb_func_start sub_80C4FCC -sub_80C4FCC: @ 80C4FCC - push {lr} - lsls r0, 24 - lsrs r1, r0, 24 - movs r2, 0xFC - lsls r2, 24 - adds r0, r2 - lsrs r0, 24 - cmp r0, 0x1 - bhi _080C4FE2 - movs r0, 0 - b _080C4FEC -_080C4FE2: - cmp r1, 0x3 - beq _080C4FEA - movs r0, 0x1 - b _080C4FEC -_080C4FEA: - movs r0, 0x2 -_080C4FEC: - pop {r1} - bx r1 - thumb_func_end sub_80C4FCC - - thumb_func_start sub_80C4FF0 -sub_80C4FF0: @ 80C4FF0 - push {r4-r6,lr} - sub sp, 0x8 - bl InUnionRoom - cmp r0, 0x1 - bne _080C5060 - ldr r0, =gReceivedRemoteLinkPlayers - ldrb r0, [r0] - cmp r0, 0x1 - bne _080C5060 - ldr r5, =gUnknown_02039CE8 - ldr r0, [r5] - ldr r1, =0x00000583 - adds r0, r1 - ldrb r0, [r0] - bl FacilityClassToPicIndex - lsls r0, 16 - lsrs r0, 16 - ldr r4, =gUnknown_0856FB18 - ldr r1, [r5] - ldr r3, =0x00000534 - adds r2, r1, r3 - ldrb r3, [r2] - lsls r3, 1 - ldr r2, =0x0000052b - adds r1, r2 - ldrb r1, [r1] - lsls r1, 2 - adds r3, r1 - adds r1, r3, r4 - ldrb r2, [r1] - adds r4, 0x1 - adds r3, r4 - ldrb r3, [r3] - movs r1, 0x8 - str r1, [sp] - movs r1, 0x2 - str r1, [sp, 0x4] - movs r1, 0x1 - bl sub_818D938 - b _080C50AE - .pool -_080C5060: - ldr r2, =gUnknown_0856FB20 - ldr r6, =gUnknown_02039CE8 - ldr r0, [r6] - ldr r5, =0x00000534 - adds r1, r0, r5 - ldr r3, =0x0000052a - adds r0, r3 - ldrb r0, [r0] - lsls r0, 1 - ldrb r1, [r1] - adds r0, r1 - adds r0, r2 - ldrb r0, [r0] - bl FacilityClassToPicIndex - lsls r0, 16 - lsrs r0, 16 - ldr r4, =gUnknown_0856FB18 - ldr r1, [r6] - adds r5, r1, r5 - ldrb r3, [r5] - lsls r3, 1 - ldr r2, =0x0000052b - adds r1, r2 - ldrb r1, [r1] - lsls r1, 2 - adds r3, r1 - adds r1, r3, r4 - ldrb r2, [r1] - adds r4, 0x1 - adds r3, r4 - ldrb r3, [r3] - movs r1, 0x8 - str r1, [sp] - movs r1, 0x2 - str r1, [sp, 0x4] - movs r1, 0x1 - bl sub_818D938 -_080C50AE: - add sp, 0x8 - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end sub_80C4FF0 - - thumb_func_start sub_80C50D0 -sub_80C50D0: @ 80C50D0 - push {lr} - sub sp, 0x8 - movs r0, 0 - movs r1, 0 - bl SetGpuReg - movs r0, 0xE - movs r1, 0 - bl SetGpuReg - movs r0, 0xC - movs r1, 0 - bl SetGpuReg - movs r0, 0xA - movs r1, 0 - bl SetGpuReg - movs r0, 0x8 - movs r1, 0 - bl SetGpuReg - movs r0, 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 - movs r0, 0x50 - movs r1, 0 - bl SetGpuReg - movs r0, 0x54 - movs r1, 0 - bl SetGpuReg - movs r0, 0x52 - movs r1, 0 - bl SetGpuReg - 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 - mov r1, sp - movs r0, 0 - strh r0, [r1] - movs r1, 0xC0 - lsls r1, 19 - ldr r2, =0x0100c000 - mov r0, sp - bl CpuSet - movs r0, 0 - str r0, [sp, 0x4] - add r0, sp, 0x4 - movs r1, 0xE0 - lsls r1, 19 - ldr r2, =0x05000100 - bl CpuSet - add sp, 0x8 - pop {r0} - bx r0 - .pool - thumb_func_end sub_80C50D0 - - thumb_func_start sub_80C51C4 -sub_80C51C4: @ 80C51C4 - push {lr} - bl sub_80C51F0 - ldr r0, =sub_80C544C - bl SetMainCallback2 - pop {r0} - bx r0 - .pool - thumb_func_end sub_80C51C4 - - thumb_func_start sub_80C51D8 -sub_80C51D8: @ 80C51D8 - push {lr} - ldr r0, =gUnknown_02039CEC - ldr r0, [r0] - ldr r0, [r0] - bl SetMainCallback2 - bl sub_80C52E4 - pop {r0} - bx r0 - .pool - thumb_func_end sub_80C51D8 - - thumb_func_start sub_80C51F0 -sub_80C51F0: @ 80C51F0 - push {r4-r6,lr} - adds r4, r0, 0 - ldr r5, =gUnknown_02039CEC - ldr r0, [r5] - cmp r0, 0 - beq _080C5204 - movs r0, 0x1 - b _080C52C8 - .pool -_080C5204: - movs r0, 0x18 - bl AllocZeroed - str r0, [r5] - cmp r0, 0 - bne _080C5214 - movs r0, 0x2 - b _080C52C8 -_080C5214: - str r4, [r0] - bl GetCurrentRegionMapSectionId - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0x3A - beq _080C5232 - cmp r4, 0xCA - beq _080C5232 - ldr r0, [r5] - movs r1, 0xB0 - strh r1, [r0, 0x8] - movs r1, 0x68 - strh r1, [r0, 0xA] - b _080C5240 -_080C5232: - ldr r2, =gUnknown_02039CEC - ldr r1, [r2] - movs r0, 0xB0 - strh r0, [r1, 0x8] - movs r0, 0x30 - strh r0, [r1, 0xA] - adds r5, r2, 0 -_080C5240: - ldr r1, [r5] - ldr r0, =gSaveBlock2Ptr - ldr r0, [r0] - ldr r2, =0x00000eb8 - adds r0, r2 - ldrh r0, [r0] - strh r0, [r1, 0x6] - bl CanCopyRecordedBattleSaveData - ldr r3, [r5] - movs r1, 0x1 - ands r0, r1 - ldrb r2, [r3, 0xE] - movs r1, 0x2 - negs r1, r1 - ands r1, r2 - orrs r1, r0 - strb r1, [r3, 0xE] - ldr r2, [r5] - ldrb r1, [r2, 0xE] - movs r0, 0xF - negs r0, r0 - ands r0, r1 - strb r0, [r2, 0xE] - bl sub_80C2E40 - ldr r3, [r5] - lsls r0, 4 - ldrb r2, [r3, 0xE] - movs r1, 0xF - ands r1, r2 - orrs r1, r0 - strb r1, [r3, 0xE] - movs r4, 0 - adds r6, r5, 0 -_080C5286: - lsls r5, r4, 1 - ldr r1, =0x000008c4 - adds r0, r5, r1 - bl FlagGet - lsls r0, 24 - cmp r0, 0 - beq _080C52A2 - ldr r1, [r6] - adds r1, 0xF - adds r1, r4 - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] -_080C52A2: - ldr r2, =0x000008c5 - adds r0, r5, r2 - bl FlagGet - lsls r0, 24 - cmp r0, 0 - beq _080C52BC - ldr r1, [r6] - adds r1, 0xF - adds r1, r4 - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] -_080C52BC: - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0x6 - bls _080C5286 - movs r0, 0 -_080C52C8: - pop {r4-r6} - pop {r1} - bx r1 - .pool - thumb_func_end sub_80C51F0 - - thumb_func_start sub_80C52E4 -sub_80C52E4: @ 80C52E4 - push {r4,lr} - ldr r4, =gUnknown_02039CEC - ldr r0, [r4] - cmp r0, 0 - beq _080C5308 - movs r1, 0 - movs r2, 0x18 - bl memset - ldr r0, [r4] - bl Free - movs r0, 0 - str r0, [r4] - b _080C530A - .pool -_080C5308: - movs r0, 0x1 -_080C530A: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_80C52E4 - - thumb_func_start sub_80C5310 -sub_80C5310: @ 80C5310 - push {r4,lr} - ldr r4, =gUnknown_02039CF0 - ldr r0, [r4] - cmp r0, 0 - beq _080C5324 - movs r0, 0x1 - b _080C533A - .pool -_080C5324: - ldr r0, =0x00002434 - bl AllocZeroed - str r0, [r4] - cmp r0, 0 - beq _080C5338 - movs r0, 0 - b _080C533A - .pool -_080C5338: - movs r0, 0x2 -_080C533A: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_80C5310 - - thumb_func_start sub_80C5340 -sub_80C5340: @ 80C5340 - push {r4,lr} - bl FreeAllWindowBuffers - ldr r4, =gUnknown_02039CF0 - ldr r0, [r4] - cmp r0, 0 - bne _080C5358 - movs r0, 0x1 - b _080C53A0 - .pool -_080C5358: - ldr r0, [r0, 0x28] - cmp r0, 0 - beq _080C5368 - bl Free - ldr r1, [r4] - movs r0, 0 - str r0, [r1, 0x28] -_080C5368: - ldr r0, [r4] - ldr r0, [r0, 0x24] - cmp r0, 0 - beq _080C537A - bl Free - ldr r1, [r4] - movs r0, 0 - str r0, [r1, 0x24] -_080C537A: - ldr r0, [r4] - ldr r0, [r0, 0x20] - cmp r0, 0 - beq _080C538C - bl Free - ldr r1, [r4] - movs r0, 0 - str r0, [r1, 0x20] -_080C538C: - ldr r0, [r4] - ldr r2, =0x00002434 - movs r1, 0 - bl memset - ldr r0, [r4] - bl Free - movs r0, 0 - str r0, [r4] -_080C53A0: - pop {r4} - pop {r1} - bx r1 - .pool - thumb_func_end sub_80C5340 - - thumb_func_start pokemon_details -pokemon_details: @ 80C53AC - push {r4-r7,lr} - sub sp, 0x10 - ldr r0, =gUnknown_02039CF0 - ldr r6, [r0] - adds r0, r6, 0 - adds r0, 0x2C - ldrb r0, [r0] - cmp r0, 0 - beq _080C5416 - ldr r3, =gUnknown_085713E0 - ldr r0, =gUnknown_02039CEC - ldr r0, [r0] - ldrb r4, [r0, 0xE] - lsls r4, 28 - lsrs r0, r4, 29 - subs r0, 0x1 - lsls r0, 2 - adds r0, r3 - movs r2, 0 - ldrsh r1, [r0, r2] - lsls r1, 8 - lsrs r0, r4, 29 - subs r0, 0x1 - lsls r0, 2 - adds r5, r3, 0x2 - adds r0, r5 - movs r7, 0 - ldrsh r2, [r0, r7] - lsls r2, 8 - lsrs r0, r4, 29 - subs r0, 0x1 - lsls r0, 2 - adds r0, r3 - movs r7, 0 - ldrsh r3, [r0, r7] - lsrs r4, 29 - subs r4, 0x1 - lsls r4, 2 - adds r4, r5 - movs r5, 0 - ldrsh r0, [r4, r5] - str r0, [sp] - movs r7, 0x2E - ldrsh r0, [r6, r7] - str r0, [sp, 0x4] - movs r4, 0x30 - ldrsh r0, [r6, r4] - str r0, [sp, 0x8] - movs r0, 0 - str r0, [sp, 0xC] - movs r0, 0x2 - bl SetBgAffine -_080C5416: - bl LoadOam - bl ProcessSpriteCopyRequests - bl TransferPlttBuffer - add sp, 0x10 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end pokemon_details - - thumb_func_start sub_80C5438 -sub_80C5438: @ 80C5438 - push {lr} - bl RunTasks - bl AnimateSprites - bl BuildOamBuffer - pop {r0} - bx r0 - thumb_func_end sub_80C5438 - - thumb_func_start sub_80C544C -sub_80C544C: @ 80C544C - push {lr} - bl sub_80C5484 - cmp r0, 0 - beq _080C5464 - ldr r0, =sub_80C5A48 - movs r1, 0 - bl CreateTask - ldr r0, =sub_80C5438 - bl SetMainCallback2 -_080C5464: - pop {r0} - bx r0 - .pool - thumb_func_end sub_80C544C - - thumb_func_start sub_80C5470 -sub_80C5470: @ 80C5470 - push {lr} - bl sub_80C570C - cmp r0, 0 - beq _080C547E - bl sub_80C51D8 -_080C547E: - pop {r0} - bx r0 - thumb_func_end sub_80C5470 - - thumb_func_start sub_80C5484 -sub_80C5484: @ 80C5484 - push {r4,r5,lr} - sub sp, 0xC - movs r0, 0 - str r0, [sp, 0x8] - ldr r0, =gUnknown_02039CEC - ldr r0, [r0] - ldrh r0, [r0, 0x4] - cmp r0, 0xA - bls _080C5498 - b _080C56F4 -_080C5498: - lsls r0, 2 - ldr r1, =_080C54AC - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .pool - .align 2, 0 -_080C54AC: - .4byte _080C54D8 - .4byte _080C54EE - .4byte _080C54F4 - .4byte _080C550A - .4byte _080C5510 - .4byte _080C5560 - .4byte _080C5570 - .4byte _080C55D0 - .4byte _080C5624 - .4byte _080C5684 - .4byte _080C56D0 -_080C54D8: - movs r0, 0 - bl SetVBlankCallback - bl ScanlineEffect_Stop - bl SetVBlankHBlankCallbacksToNull - movs r0, 0x2 - bl DisableInterrupts - b _080C56F4 -_080C54EE: - bl sub_80C50D0 - b _080C56F4 -_080C54F4: - bl ResetTasks - bl ResetSpriteData - bl FreeAllSpritePalettes - bl ResetPaletteFade - bl reset_temp_tile_data_buffers - b _080C56F4 -_080C550A: - bl sub_80C5310 - b _080C56F4 -_080C5510: - movs r0, 0 - bl ResetBgsAndClearDma3BusyFlags - ldr r1, =gUnknown_085713E8 - movs r0, 0x1 - movs r2, 0x3 - bl InitBgsFromTemplates - ldr r4, =gUnknown_02039CF0 - ldr r1, [r4] - adds r1, 0x32 - movs r0, 0x1 - bl SetBgTilemapBuffer - ldr r1, [r4] - ldr r0, =0x00001032 - adds r1, r0 - movs r0, 0x2 - bl SetBgTilemapBuffer - ldr r1, [r4] - ldr r0, =0x00002032 - adds r1, r0 - movs r0, 0x3 - bl SetBgTilemapBuffer - movs r0, 0x2 - movs r1, 0x6 - movs r2, 0x1 - bl SetBgAttribute - b _080C56F4 - .pool -_080C5560: - ldr r0, =gUnknown_08571400 - bl InitWindows - bl DeactivateAllTextPrinters - b _080C56F4 - .pool -_080C5570: - ldr r0, =gUnknown_085712F8 - add r1, sp, 0x8 - bl malloc_and_decompress - ldr r4, =gUnknown_02039CF0 - ldr r1, [r4] - str r0, [r1, 0x20] - ldr r0, =gUnknown_08571060 - add r1, sp, 0x8 - bl malloc_and_decompress - ldr r1, [r4] - str r0, [r1, 0x24] - ldr r0, =gUnknown_085712C0 - add r1, sp, 0x8 - bl malloc_and_decompress - ldr r1, [r4] - str r0, [r1, 0x28] - ldr r1, =gUnknown_08DE08C8 - movs r4, 0 - str r4, [sp] - movs r0, 0x1 - movs r2, 0 - movs r3, 0 - bl decompress_and_copy_tile_data_to_vram - ldr r1, =gUnknown_08DE2084 - str r4, [sp] - movs r0, 0x2 - movs r2, 0 - movs r3, 0 - bl decompress_and_copy_tile_data_to_vram - b _080C56F4 - .pool -_080C55D0: - bl free_temp_tile_data_buffers_if_possible - lsls r0, 24 - cmp r0, 0 - beq _080C55DC - b _080C56FE -_080C55DC: - movs r5, 0x1E - str r5, [sp] - movs r4, 0x14 - str r4, [sp, 0x4] - movs r0, 0 - movs r1, 0 - movs r2, 0 - movs r3, 0 - bl FillBgTilemapBufferRect_Palette0 - str r5, [sp] - str r4, [sp, 0x4] - movs r0, 0x1 - movs r1, 0 - movs r2, 0 - movs r3, 0 - bl FillBgTilemapBufferRect_Palette0 - str r5, [sp] - str r4, [sp, 0x4] - movs r0, 0x2 - movs r1, 0 - movs r2, 0 - movs r3, 0 - bl FillBgTilemapBufferRect_Palette0 - movs r0, 0 - bl CopyBgTilemapBufferToVram - movs r0, 0x1 - bl CopyBgTilemapBufferToVram - movs r0, 0x2 - bl CopyBgTilemapBufferToVram - b _080C56F4 -_080C5624: - ldr r4, =gUnknown_08DE07C8 - movs r2, 0xD0 - lsls r2, 1 - adds r0, r4, 0 - movs r1, 0 - bl LoadPalette - ldr r5, =gUnknown_02039CEC - ldr r0, [r5] - ldrb r0, [r0, 0xE] - lsrs r0, 4 - lsls r0, 5 - adds r4, 0x20 - adds r0, r4 - movs r1, 0x10 - movs r2, 0x20 - bl LoadPalette - movs r0, 0 - bl stdpal_get - movs r1, 0xF0 - movs r2, 0x20 - bl LoadPalette - bl sub_80C629C - ldr r1, [r5] - ldrb r0, [r1, 0xC] - ldrb r1, [r1, 0xD] - bl sub_80C6104 - ldr r5, [r5] - ldrb r0, [r5, 0xE] - movs r1, 0xE - ands r1, r0 - cmp r1, 0x2 - beq _080C5674 - cmp r1, 0x4 - bne _080C56F4 -_080C5674: - movs r0, 0 - strh r0, [r5, 0x4] - movs r0, 0x1 - b _080C5700 - .pool -_080C5684: - 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 - bl sub_80C62DC - ldr r0, =pokemon_details - bl SetVBlankCallback - movs r4, 0x1 - negs r4, r4 - adds r0, r4, 0 - movs r1, 0x10 - movs r2, 0 - bl BlendPalettes - movs r0, 0 - str r0, [sp] - adds r0, r4, 0 - movs r1, 0 - movs r2, 0x10 - movs r3, 0 - bl BeginNormalPaletteFade - b _080C56F4 - .pool -_080C56D0: - bl AnimateSprites - bl BuildOamBuffer - bl UpdatePaletteFade - lsls r0, 24 - lsrs r1, r0, 24 - cmp r1, 0 - bne _080C56FE - ldr r0, =gUnknown_02039CEC - ldr r0, [r0] - strh r1, [r0, 0x4] - movs r0, 0x1 - b _080C5700 - .pool -_080C56F4: - ldr r0, =gUnknown_02039CEC - ldr r1, [r0] - ldrh r0, [r1, 0x4] - adds r0, 0x1 - strh r0, [r1, 0x4] -_080C56FE: - movs r0, 0 -_080C5700: - add sp, 0xC - pop {r4,r5} - pop {r1} - bx r1 - .pool - thumb_func_end sub_80C5484 - - thumb_func_start sub_80C570C -sub_80C570C: @ 80C570C - push {lr} - sub sp, 0x4 - ldr r1, =gUnknown_02039CEC - ldr r0, [r1] - ldrh r0, [r0, 0x4] - adds r2, r1, 0 - cmp r0, 0x5 - bhi _080C57E4 - lsls r0, 2 - ldr r1, =_080C5730 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .pool - .align 2, 0 -_080C5730: - .4byte _080C5748 - .4byte _080C5770 - .4byte _080C577C - .4byte _080C57A6 - .4byte _080C57AC - .4byte _080C57BE -_080C5748: - ldr r0, [r2] - ldrb r0, [r0, 0xE] - movs r1, 0xE - ands r1, r0 - cmp r1, 0x2 - beq _080C576A - cmp r1, 0x4 - beq _080C576A - movs r0, 0x1 - negs r0, r0 - movs r1, 0 - str r1, [sp] - movs r2, 0 - movs r3, 0x10 - bl BeginNormalPaletteFade - b _080C57E4 -_080C576A: - ldr r1, [r2] - movs r0, 0x2 - b _080C57EC -_080C5770: - bl UpdatePaletteFade - lsls r0, 24 - cmp r0, 0 - beq _080C57E4 - b _080C57EE -_080C577C: - movs r0, 0 - movs r1, 0 - bl SetGpuReg - movs r0, 0 - bl HideBg - movs r0, 0x1 - bl HideBg - movs r0, 0x2 - bl HideBg - movs r0, 0 - bl SetVBlankCallback - bl ScanlineEffect_Stop - bl SetVBlankHBlankCallbacksToNull - b _080C57E4 -_080C57A6: - bl sub_80C63FC - b _080C57E4 -_080C57AC: - bl sub_80C50D0 - bl ResetTasks - bl ResetSpriteData - bl FreeAllSpritePalettes - b _080C57E4 -_080C57BE: - movs r0, 0 - bl UnsetBgTilemapBuffer - movs r0, 0x1 - bl UnsetBgTilemapBuffer - movs r0, 0x2 - bl UnsetBgTilemapBuffer - bl sub_80C5340 - ldr r0, =gUnknown_02039CEC - ldr r1, [r0] - movs r0, 0 - strh r0, [r1, 0x4] - movs r0, 0x1 - b _080C57F0 - .pool -_080C57E4: - ldr r0, =gUnknown_02039CEC - ldr r1, [r0] - ldrh r0, [r1, 0x4] - adds r0, 0x1 -_080C57EC: - strh r0, [r1, 0x4] -_080C57EE: - movs r0, 0 -_080C57F0: - add sp, 0x4 - pop {r1} - bx r1 - .pool - thumb_func_end sub_80C570C - - thumb_func_start sub_80C57FC -sub_80C57FC: @ 80C57FC - push {r4-r7,lr} - lsls r0, 16 - lsrs r6, r0, 16 - movs r4, 0 - ldr r7, =gUnknown_08571454 - lsls r1, 16 - asrs r5, r1, 16 -_080C580A: - lsls r0, r4, 3 - adds r3, r0, r7 - movs r1, 0 - ldrsh r0, [r3, r1] - cmp r0, r5 - bgt _080C5854 - movs r1, 0x2 - ldrsh r0, [r3, r1] - cmp r0, r5 - blt _080C5854 - movs r0, 0x4 - ldrsh r1, [r3, r0] - lsls r0, r6, 16 - asrs r2, r0, 16 - cmp r1, r2 - bgt _080C5854 - movs r1, 0x6 - ldrsh r0, [r3, r1] - cmp r0, r2 - blt _080C5854 - cmp r4, 0x5 - bls _080C5842 - ldr r0, =gUnknown_02039CEC - ldr r0, [r0] - adds r0, r4 - ldrb r0, [r0, 0x9] - cmp r0, 0 - beq _080C585E -_080C5842: - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r0, 24 - b _080C5860 - .pool -_080C5854: - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0xC - bls _080C580A -_080C585E: - movs r0, 0 -_080C5860: - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end sub_80C57FC - - thumb_func_start sub_80C5868 -sub_80C5868: @ 80C5868 - push {lr} - bl sub_80C5484 - cmp r0, 0 - beq _080C58C6 - ldr r1, =gUnknown_02039CEC - ldr r0, [r1] - ldrb r0, [r0, 0xE] - lsls r0, 28 - lsrs r0, 29 - cmp r0, 0x1 - blt _080C58AC - cmp r0, 0x2 - bgt _080C58AC - ldr r0, =sub_80C5BD8 - movs r1, 0 - bl CreateTask - lsls r0, 24 - lsrs r0, 24 - ldr r2, =gTasks - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r1, r2 - movs r0, 0x1 - strh r0, [r1, 0x8] - b _080C58C0 - .pool -_080C58AC: - ldr r2, [r1] - ldrb r1, [r2, 0xE] - movs r0, 0xF - negs r0, r0 - ands r0, r1 - strb r0, [r2, 0xE] - ldr r0, =sub_80C5A48 - movs r1, 0 - bl CreateTask -_080C58C0: - ldr r0, =sub_80C5438 - bl SetMainCallback2 -_080C58C6: - pop {r0} - bx r0 - .pool - thumb_func_end sub_80C5868 - - thumb_func_start sub_80C58D4 -sub_80C58D4: @ 80C58D4 - push {r4,lr} - ldr r4, =gUnknown_02039CF8 - ldr r0, [r4] - bl sub_80C51F0 - ldr r0, =gUnknown_02039CEC - ldr r1, [r0] - ldrh r0, [r4, 0x4] - strh r0, [r1, 0x8] - ldrh r0, [r4, 0x6] - strh r0, [r1, 0xA] - adds r0, r4, 0 - movs r1, 0 - movs r2, 0x8 - bl memset - bl InBattlePyramid - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - beq _080C5914 - cmp r0, 0x2 - beq _080C591C - bl Overworld_PlaySpecialMapMusic - b _080C5924 - .pool -_080C5914: - ldr r0, =0x000001cd - b _080C5920 - .pool -_080C591C: - movs r0, 0xE7 - lsls r0, 1 -_080C5920: - bl PlayBGM -_080C5924: - ldr r0, =sub_80C5868 - bl SetMainCallback2 - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_80C58D4 - - thumb_func_start sub_80C5934 -sub_80C5934: @ 80C5934 - push {lr} - bl sub_80C570C - cmp r0, 0 - beq _080C599A - ldr r0, =gUnknown_02039CEC - ldr r2, [r0] - ldrb r0, [r2, 0xE] - lsls r0, 28 - lsrs r0, 29 - cmp r0, 0x2 - beq _080C5994 - cmp r0, 0x2 - bgt _080C595C - cmp r0, 0x1 - beq _080C5962 - b _080C599A - .pool -_080C595C: - cmp r0, 0x3 - beq _080C5970 - b _080C599A -_080C5962: - ldr r0, =sub_80C5868 - bl sub_80C6454 - b _080C599A - .pool -_080C5970: - ldr r1, =gUnknown_02039CF8 - ldr r0, [r2] - str r0, [r1] - ldrh r0, [r2, 0x8] - strh r0, [r1, 0x4] - ldrh r0, [r2, 0xA] - strh r0, [r1, 0x6] - bl sub_80C52E4 - ldr r0, =sub_80C58D4 - bl PlayRecordedBattle - b _080C599A - .pool -_080C5994: - ldr r0, =sub_80C5868 - bl sub_80C4DDC -_080C599A: - pop {r0} - bx r0 - .pool - thumb_func_end sub_80C5934 - - thumb_func_start sub_80C59A4 -sub_80C59A4: @ 80C59A4 - push {r4,lr} - lsls r0, 24 - lsrs r3, r0, 24 - adds r4, r3, 0 - lsls r1, 24 - lsrs r1, 24 - adds r2, r1, 0 - cmp r1, 0x1 - blt _080C59CC - cmp r1, 0x2 - ble _080C59F4 - cmp r1, 0x3 - bne _080C59CC - ldr r0, =gUnknown_02039CEC - ldr r2, [r0] - ldrb r1, [r2, 0xE] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - bne _080C59D4 -_080C59CC: - movs r0, 0 - b _080C5A30 - .pool -_080C59D4: - movs r0, 0xF - negs r0, r0 - ands r0, r1 - movs r1, 0x6 - orrs r0, r1 - strb r0, [r2, 0xE] - adds r0, r3, 0 - bl DestroyTask - ldr r0, =sub_80C5934 - bl SetMainCallback2 - b _080C5A1A - .pool -_080C59F4: - ldr r0, =gUnknown_02039CEC - ldr r3, [r0] - movs r0, 0x7 - ands r2, r0 - lsls r2, 1 - ldrb r1, [r3, 0xE] - subs r0, 0x16 - ands r0, r1 - orrs r0, r2 - strb r0, [r3, 0xE] - ldr r1, =gTasks - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - ldr r1, =sub_80C5BD8 - str r1, [r0] - movs r1, 0 - strh r1, [r0, 0x8] -_080C5A1A: - ldr r0, =gUnknown_02039CEC - ldr r2, [r0] - ldr r0, =gUnknown_02039CF0 - ldr r1, [r0] - ldr r0, [r1] - ldrh r0, [r0, 0x20] - strh r0, [r2, 0x8] - ldr r0, [r1] - ldrh r0, [r0, 0x22] - strh r0, [r2, 0xA] - movs r0, 0x1 -_080C5A30: - pop {r4} - pop {r1} - bx r1 - .pool - thumb_func_end sub_80C59A4 - - thumb_func_start sub_80C5A48 -sub_80C5A48: @ 80C5A48 - push {r4-r7,lr} - lsls r0, 24 - lsrs r6, r0, 24 - movs r5, 0 - ldr r2, =gMain - ldrh r1, [r2, 0x2C] - movs r0, 0x40 - ands r0, r1 - cmp r0, 0 - beq _080C5A80 - ldr r0, =gUnknown_02039CF0 - ldr r4, [r0] - ldr r1, [r4] - ldrh r3, [r1, 0x22] - movs r7, 0x22 - ldrsh r0, [r1, r7] - cmp r0, 0x8 - ble _080C5A80 - subs r0, r3, 0x2 - strh r0, [r1, 0x22] - ldr r1, [r4] - movs r3, 0x22 - ldrsh r0, [r1, r3] - cmp r0, 0x7 - bgt _080C5A7E - movs r0, 0x2 - strh r0, [r1, 0x22] -_080C5A7E: - movs r5, 0x1 -_080C5A80: - ldrh r1, [r2, 0x2C] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - beq _080C5AAE - ldr r0, =gUnknown_02039CF0 - ldr r4, [r0] - ldr r1, [r4] - ldrh r3, [r1, 0x22] - movs r7, 0x22 - ldrsh r0, [r1, r7] - cmp r0, 0x87 - bgt _080C5AAE - adds r0, r3, 0x2 - strh r0, [r1, 0x22] - ldr r1, [r4] - movs r3, 0x22 - ldrsh r0, [r1, r3] - cmp r0, 0x88 - ble _080C5AAC - movs r0, 0x88 - strh r0, [r1, 0x22] -_080C5AAC: - movs r5, 0x1 -_080C5AAE: - ldrh r1, [r2, 0x2C] - movs r0, 0x20 - ands r0, r1 - cmp r0, 0 - beq _080C5ADC - ldr r0, =gUnknown_02039CF0 - ldr r4, [r0] - ldr r1, [r4] - ldrh r3, [r1, 0x20] - movs r7, 0x20 - ldrsh r0, [r1, r7] - cmp r0, 0x5 - ble _080C5ADC - subs r0, r3, 0x2 - strh r0, [r1, 0x20] - ldr r1, [r4] - movs r3, 0x20 - ldrsh r0, [r1, r3] - cmp r0, 0x4 - bgt _080C5ADA - movs r0, 0x5 - strh r0, [r1, 0x20] -_080C5ADA: - movs r5, 0x1 -_080C5ADC: - ldrh r1, [r2, 0x2C] - movs r0, 0x10 - ands r0, r1 - cmp r0, 0 - beq _080C5B0A - ldr r0, =gUnknown_02039CF0 - ldr r4, [r0] - ldr r1, [r4] - ldrh r3, [r1, 0x20] - movs r7, 0x20 - ldrsh r0, [r1, r7] - cmp r0, 0xE7 - bgt _080C5B0A - adds r0, r3, 0x2 - strh r0, [r1, 0x20] - ldr r1, [r4] - movs r3, 0x20 - ldrsh r0, [r1, r3] - cmp r0, 0xE8 - ble _080C5B08 - movs r0, 0xE8 - strh r0, [r1, 0x20] -_080C5B08: - movs r5, 0x1 -_080C5B0A: - cmp r5, 0 - bne _080C5B88 - ldr r4, =gUnknown_02039CEC - ldr r0, [r4] - ldrb r3, [r0, 0xC] - cmp r3, 0 - beq _080C5B5E - ldrh r1, [r2, 0x2E] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _080C5B5E - cmp r3, 0x3 - bhi _080C5B48 - movs r0, 0x5 - bl PlaySE - ldr r0, [r4] - ldrb r1, [r0, 0xC] - adds r0, r6, 0 - bl sub_80C59A4 - cmp r0, 0 - bne _080C5BCA - b _080C5B5E - .pool -_080C5B48: - cmp r3, 0x4 - bne _080C5B5E - movs r0, 0x3 - bl PlaySE - ldr r0, =sub_80C5470 - bl SetMainCallback2 - adds r0, r6, 0 - bl DestroyTask -_080C5B5E: - ldr r0, =gMain - ldrh r1, [r0, 0x2E] - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - beq _080C5BCA - movs r0, 0x3 - bl PlaySE - ldr r0, =sub_80C5470 - bl SetMainCallback2 - adds r0, r6, 0 - bl DestroyTask - b _080C5BCA - .pool -_080C5B88: - ldr r0, =gUnknown_02039CF0 - ldr r0, [r0] - ldr r1, [r0] - ldrh r0, [r1, 0x20] - subs r0, 0x5 - lsls r0, 16 - asrs r0, 16 - ldrh r1, [r1, 0x22] - adds r1, 0x5 - lsls r1, 16 - asrs r1, 16 - bl sub_80C57FC - lsls r0, 24 - lsrs r5, r0, 24 - ldr r4, =gUnknown_02039CEC - ldr r0, [r4] - ldrb r0, [r0, 0xC] - cmp r0, r5 - beq _080C5BCA - adds r0, r5, 0 - bl sub_80C5ED0 - ldr r1, [r4] - ldrb r0, [r1, 0xC] - strb r0, [r1, 0xD] - ldr r0, [r4] - strb r5, [r0, 0xC] - ldr r1, [r4] - ldrb r0, [r1, 0xC] - ldrb r1, [r1, 0xD] - bl sub_80C6104 -_080C5BCA: - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_80C5A48 - - thumb_func_start sub_80C5BD8 -sub_80C5BD8: @ 80C5BD8 - push {r4-r7,lr} - mov r7, r8 - push {r7} - sub sp, 0x4 - lsls r0, 24 - lsrs r4, r0, 24 - lsls r0, r4, 2 - adds r0, r4 - lsls r5, r0, 3 - ldr r0, =gTasks + 0x8 - mov r8, r0 - adds r6, r5, r0 - ldr r7, =gUnknown_02039CEC - ldr r0, [r7] - ldrh r0, [r0, 0x4] - cmp r0, 0x1 - beq _080C5CD4 - cmp r0, 0x1 - bgt _080C5C0C - cmp r0, 0 - beq _080C5C14 - b _080C5D9C - .pool -_080C5C0C: - cmp r0, 0x2 - bne _080C5C12 - b _080C5D2A -_080C5C12: - b _080C5D9C -_080C5C14: - movs r1, 0 - ldrsh r0, [r6, r1] - cmp r0, 0 - bne _080C5C4C - movs r0, 0x1 - movs r1, 0 - bl sub_80C5F58 - movs r1, 0x80 - lsls r1, 1 - adds r0, r1, 0 - strh r0, [r6, 0x2] - strh r0, [r6, 0x4] - movs r0, 0x15 - strh r0, [r6, 0x6] - strh r0, [r6, 0x8] - movs r0, 0x1 - negs r0, r0 - ldr r1, =0x00007fff - str r1, [sp] - movs r1, 0 - movs r2, 0 - movs r3, 0x10 - bl BeginNormalPaletteFade - b _080C5CA4 - .pool -_080C5C4C: - movs r1, 0xFE - lsls r1, 1 - adds r0, r1, 0 - strh r0, [r6, 0x2] - strh r0, [r6, 0x4] - movs r1, 0x15 - negs r1, r1 - adds r0, r1, 0 - strh r0, [r6, 0x6] - strh r0, [r6, 0x8] - 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 - bl sub_80C62DC - ldr r0, =pokemon_details - bl SetVBlankCallback - movs r5, 0x1 - negs r5, r5 - ldr r4, =0x00007fff - adds r0, r5, 0 - movs r1, 0x10 - adds r2, r4, 0 - bl BlendPalettes - str r4, [sp] - adds r0, r5, 0 - movs r1, 0 - movs r2, 0x10 - movs r3, 0 - bl BeginNormalPaletteFade -_080C5CA4: - ldr r4, =gUnknown_02039CF0 - ldr r0, [r4] - adds r0, 0x2C - movs r1, 0x1 - strb r1, [r0] - movs r1, 0x2 - ldrsh r0, [r6, r1] - bl sub_8151624 - ldr r1, [r4] - strh r0, [r1, 0x2E] - movs r1, 0x4 - ldrsh r0, [r6, r1] - bl sub_8151624 - ldr r1, [r4] - strh r0, [r1, 0x30] - b _080C5D9C - .pool -_080C5CD4: - bl UpdatePaletteFade - ldrh r0, [r6, 0x6] - ldrh r1, [r6, 0x2] - adds r0, r1 - strh r0, [r6, 0x2] - ldrh r0, [r6, 0x8] - ldrh r1, [r6, 0x4] - adds r0, r1 - strh r0, [r6, 0x4] - movs r1, 0x2 - ldrsh r0, [r6, r1] - bl sub_8151624 - ldr r4, =gUnknown_02039CF0 - ldr r1, [r4] - strh r0, [r1, 0x2E] - movs r1, 0x4 - ldrsh r0, [r6, r1] - bl sub_8151624 - ldr r1, [r4] - strh r0, [r1, 0x30] - movs r1, 0 - ldrsh r0, [r6, r1] - cmp r0, 0 - bne _080C5D1C - movs r0, 0x2 - ldrsh r1, [r6, r0] - movs r0, 0xFE - lsls r0, 1 - cmp r1, r0 - ble _080C5DA6 - b _080C5D9C - .pool -_080C5D1C: - movs r0, 0x2 - ldrsh r1, [r6, r0] - movs r0, 0x80 - lsls r0, 1 - cmp r1, r0 - bne _080C5DA6 - b _080C5D9C -_080C5D2A: - ldr r0, =gUnknown_02039CF0 - ldr r0, [r0] - adds r1, r0, 0 - adds r1, 0x2C - ldrb r0, [r1] - cmp r0, 0 - beq _080C5D3C - movs r0, 0 - strb r0, [r1] -_080C5D3C: - bl UpdatePaletteFade - lsls r0, 24 - cmp r0, 0 - bne _080C5DA6 - movs r1, 0 - ldrsh r0, [r6, r1] - cmp r0, 0 - bne _080C5D64 - adds r0, r4, 0 - bl DestroyTask - ldr r0, =sub_80C5934 - bl SetMainCallback2 - b _080C5D82 - .pool -_080C5D64: - movs r0, 0 - movs r1, 0 - bl sub_80C5F58 - ldr r2, [r7] - ldrb r1, [r2, 0xE] - movs r0, 0xF - negs r0, r0 - ands r0, r1 - strb r0, [r2, 0xE] - mov r0, r8 - subs r0, 0x8 - adds r0, r5, r0 - ldr r1, =sub_80C5A48 - str r1, [r0] -_080C5D82: - movs r0, 0x2 - movs r1, 0x6 - movs r2, 0 - bl SetBgAttribute - ldr r0, =gUnknown_02039CEC - ldr r1, [r0] - movs r0, 0 - b _080C5DA4 - .pool -_080C5D9C: - ldr r0, =gUnknown_02039CEC - ldr r1, [r0] - ldrh r0, [r1, 0x4] - adds r0, 0x1 -_080C5DA4: - strh r0, [r1, 0x4] -_080C5DA6: - add sp, 0x4 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_80C5BD8 - - thumb_func_start sub_80C5DB8 -sub_80C5DB8: @ 80C5DB8 - push {r4-r6,lr} - mov r6, r8 - push {r6} - sub sp, 0xC - movs r4, 0 -_080C5DC2: - adds r0, r4, 0 - bl PutWindowTilemap - adds r0, r4, 0 - movs r1, 0 - bl FillWindowPixelBuffer - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0x4 - bls _080C5DC2 - ldr r4, =gText_SymbolsEarned - movs r0, 0x1 - adds r1, r4, 0 - movs r2, 0x60 - bl GetStringCenterAlignXOffset - lsls r2, r0, 24 - lsrs r2, 24 - ldr r6, =gUnknown_08571448 - str r6, [sp] - movs r0, 0 - mov r8, r0 - str r0, [sp, 0x4] - str r4, [sp, 0x8] - movs r1, 0x1 - movs r3, 0x5 - bl AddTextPrinterParameterized3 - ldr r4, =gText_BattleRecord - movs r0, 0x1 - adds r1, r4, 0 - movs r2, 0x60 - bl GetStringCenterAlignXOffset - lsls r2, r0, 24 - lsrs r2, 24 - str r6, [sp] - mov r1, r8 - str r1, [sp, 0x4] - str r4, [sp, 0x8] - movs r0, 0x1 - movs r1, 0x1 - movs r3, 0x5 - bl AddTextPrinterParameterized3 - str r6, [sp] - mov r0, r8 - str r0, [sp, 0x4] - ldr r0, =gText_BattlePoints - str r0, [sp, 0x8] - movs r0, 0x2 - movs r1, 0x8 - movs r2, 0x5 - movs r3, 0x4 - bl AddTextPrinterParameterized3 - ldr r4, =gStringVar4 - ldr r5, =gUnknown_02039CEC - ldr r0, [r5] - ldrh r1, [r0, 0x6] - adds r0, r4, 0 - movs r2, 0 - movs r3, 0x5 - bl ConvertIntToDecimalStringN - movs r0, 0x8 - adds r1, r4, 0 - movs r2, 0x5B - bl GetStringRightAlignXOffset - lsls r2, r0, 24 - lsrs r2, 24 - str r6, [sp] - mov r1, r8 - str r1, [sp, 0x4] - str r4, [sp, 0x8] - movs r0, 0x2 - movs r1, 0x8 - movs r3, 0x10 - bl AddTextPrinterParameterized3 - ldr r1, [r5] - ldrh r0, [r1, 0x8] - subs r0, 0x5 - lsls r0, 16 - asrs r0, 16 - ldrh r1, [r1, 0xA] - adds r1, 0x5 - lsls r1, 16 - asrs r1, 16 - bl sub_80C57FC - ldr r1, [r5] - strb r0, [r1, 0xC] - ldr r0, [r5] - mov r1, r8 - strb r1, [r0, 0xD] - ldr r0, [r5] - ldrb r0, [r0, 0xC] - bl sub_80C5ED0 - movs r4, 0 -_080C5E92: - adds r0, r4, 0 - movs r1, 0x3 - bl CopyWindowToVram - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0x4 - bls _080C5E92 - movs r0, 0 - bl CopyBgTilemapBufferToVram - add sp, 0xC - pop {r3} - mov r8, r3 - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end sub_80C5DB8 - - thumb_func_start sub_80C5ED0 -sub_80C5ED0: @ 80C5ED0 - push {r4,lr} - sub sp, 0xC - lsls r0, 24 - lsrs r4, r0, 24 - movs r0, 0x3 - movs r1, 0 - bl FillWindowPixelBuffer - cmp r4, 0x3 - bne _080C5F18 - ldr r0, =gUnknown_02039CEC - ldr r0, [r0] - ldrb r0, [r0, 0xE] - movs r1, 0x1 - ands r1, r0 - cmp r1, 0 - bne _080C5F18 - ldr r0, =gUnknown_0857144B - str r0, [sp] - str r1, [sp, 0x4] - ldr r0, =gUnknown_08571614 - ldr r0, [r0] - str r0, [sp, 0x8] - movs r0, 0x3 - movs r1, 0x1 - movs r2, 0x2 - movs r3, 0 - bl AddTextPrinterParameterized3 - b _080C5F3A - .pool -_080C5F18: - cmp r4, 0 - beq _080C5F3A - ldr r0, =gUnknown_0857144B - str r0, [sp] - movs r0, 0 - str r0, [sp, 0x4] - ldr r1, =gUnknown_08571614 - lsls r0, r4, 2 - adds r0, r1 - ldr r0, [r0] - str r0, [sp, 0x8] - movs r0, 0x3 - movs r1, 0x1 - movs r2, 0x2 - movs r3, 0 - bl AddTextPrinterParameterized3 -_080C5F3A: - movs r0, 0x3 - movs r1, 0x3 - bl CopyWindowToVram - movs r0, 0 - bl CopyBgTilemapBufferToVram - add sp, 0xC - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_80C5ED0 - - thumb_func_start sub_80C5F58 -sub_80C5F58: @ 80C5F58 - push {r4-r7,lr} - mov r7, r8 - push {r7} - sub sp, 0x10 - lsls r0, 24 - lsrs r2, r0, 24 - lsls r1, 24 - lsrs r7, r1, 24 - ldr r0, =gUnknown_02039CEC - ldr r0, [r0] - ldrb r0, [r0, 0xE] - lsls r0, 28 - lsrs r0, 29 - cmp r0, 0x1 - beq _080C5F80 - cmp r0, 0x2 - beq _080C5FC2 - b _080C60EE - .pool -_080C5F80: - cmp r2, 0 - beq _080C5FA8 - ldr r0, =gUnknown_02039CF0 - ldr r0, [r0] - ldr r1, [r0, 0x20] - movs r0, 0xC - str r0, [sp] - movs r0, 0x7 - str r0, [sp, 0x4] - movs r0, 0x10 - str r0, [sp, 0x8] - movs r0, 0x2 - movs r2, 0x10 - movs r3, 0x3 - bl CopyToBgTilemapBufferRect_ChangePalette - b _080C6004 - .pool -_080C5FA8: - movs r0, 0xC - str r0, [sp] - movs r0, 0x7 - str r0, [sp, 0x4] - movs r0, 0x10 - str r0, [sp, 0x8] - movs r0, 0x2 - movs r1, 0 - movs r2, 0x10 - movs r3, 0x3 - bl FillBgTilemapBufferRect - b _080C6004 -_080C5FC2: - cmp r2, 0 - beq _080C5FEC - ldr r0, =gUnknown_02039CF0 - ldr r0, [r0] - ldr r1, [r0, 0x20] - adds r1, 0x54 - movs r0, 0xC - str r0, [sp] - movs r0, 0x7 - str r0, [sp, 0x4] - movs r0, 0x10 - str r0, [sp, 0x8] - movs r0, 0x2 - movs r2, 0x10 - movs r3, 0xA - bl CopyToBgTilemapBufferRect_ChangePalette - b _080C6004 - .pool -_080C5FEC: - movs r0, 0xC - str r0, [sp] - movs r0, 0x7 - str r0, [sp, 0x4] - movs r0, 0x10 - str r0, [sp, 0x8] - movs r0, 0x2 - movs r1, 0 - movs r2, 0x10 - movs r3, 0xA - bl FillBgTilemapBufferRect -_080C6004: - movs r0, 0x2 - bl CopyBgTilemapBufferToVram - cmp r7, 0 - beq _080C6084 - movs r4, 0xFE - lsls r4, 1 - adds r0, r4, 0 - bl sub_8151624 - adds r6, r0, 0 - lsls r6, 16 - asrs r6, 16 - adds r0, r4, 0 - bl sub_8151624 - lsls r0, 16 - asrs r0, 16 - ldr r5, =gUnknown_085713E0 - ldr r1, =gUnknown_02039CEC - ldr r1, [r1] - ldrb r4, [r1, 0xE] - lsls r4, 28 - lsrs r1, r4, 29 - subs r1, 0x1 - lsls r1, 2 - adds r1, r5 - movs r2, 0 - ldrsh r1, [r1, r2] - lsls r1, 8 - lsrs r2, r4, 29 - subs r2, 0x1 - lsls r2, 2 - adds r3, r5, 0x2 - mov r8, r3 - add r2, r8 - movs r3, 0 - ldrsh r2, [r2, r3] - lsls r2, 8 - lsrs r3, r4, 29 - subs r3, 0x1 - lsls r3, 2 - adds r3, r5 - movs r5, 0 - ldrsh r3, [r3, r5] - lsrs r4, 29 - subs r4, 0x1 - lsls r4, 2 - add r4, r8 - movs r5, 0 - ldrsh r4, [r4, r5] - str r4, [sp] - str r6, [sp, 0x4] - str r0, [sp, 0x8] - movs r0, 0 - str r0, [sp, 0xC] - movs r0, 0x2 - bl SetBgAffine - b _080C60EE - .pool -_080C6084: - movs r4, 0x80 - lsls r4, 1 - adds r0, r4, 0 - bl sub_8151624 - adds r6, r0, 0 - lsls r6, 16 - asrs r6, 16 - adds r0, r4, 0 - bl sub_8151624 - lsls r0, 16 - asrs r0, 16 - ldr r5, =gUnknown_085713E0 - ldr r1, =gUnknown_02039CEC - ldr r1, [r1] - ldrb r4, [r1, 0xE] - lsls r4, 28 - lsrs r1, r4, 29 - subs r1, 0x1 - lsls r1, 2 - adds r1, r5 - movs r2, 0 - ldrsh r1, [r1, r2] - lsls r1, 8 - lsrs r2, r4, 29 - subs r2, 0x1 - lsls r2, 2 - adds r3, r5, 0x2 - mov r8, r3 - add r2, r8 - movs r3, 0 - ldrsh r2, [r2, r3] - lsls r2, 8 - lsrs r3, r4, 29 - subs r3, 0x1 - lsls r3, 2 - adds r3, r5 - movs r5, 0 - ldrsh r3, [r3, r5] - lsrs r4, 29 - subs r4, 0x1 - lsls r4, 2 - add r4, r8 - movs r5, 0 - ldrsh r4, [r4, r5] - str r4, [sp] - str r6, [sp, 0x4] - str r0, [sp, 0x8] - str r7, [sp, 0xC] - movs r0, 0x2 - bl SetBgAffine -_080C60EE: - add sp, 0x10 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_80C5F58 - - thumb_func_start sub_80C6104 -sub_80C6104: @ 80C6104 - push {r4,r5,lr} - sub sp, 0xC - lsls r0, 24 - lsrs r4, r0, 24 - lsls r1, 24 - lsrs r5, r1, 24 - cmp r5, 0x2 - beq _080C614C - cmp r5, 0x2 - bgt _080C611E - cmp r5, 0x1 - beq _080C6128 - b _080C61C4 -_080C611E: - cmp r5, 0x3 - beq _080C6170 - cmp r5, 0x4 - beq _080C61A4 - b _080C61C4 -_080C6128: - ldr r0, =gUnknown_02039CF0 - ldr r0, [r0] - ldr r1, [r0, 0x24] - movs r0, 0xC - str r0, [sp] - movs r0, 0x7 - str r0, [sp, 0x4] - movs r0, 0x11 - str r0, [sp, 0x8] - movs r0, 0x1 - movs r2, 0x10 - movs r3, 0x3 - bl CopyToBgTilemapBufferRect_ChangePalette - b _080C61CE - .pool -_080C614C: - ldr r0, =gUnknown_02039CF0 - ldr r0, [r0] - ldr r1, [r0, 0x24] - movs r0, 0xA8 - lsls r0, 1 - adds r1, r0 - movs r0, 0xC - str r0, [sp] - movs r0, 0x7 - str r0, [sp, 0x4] - movs r0, 0x11 - str r0, [sp, 0x8] - movs r0, 0x1 - movs r2, 0x10 - b _080C6192 - .pool -_080C6170: - ldr r0, =gUnknown_02039CEC - ldr r0, [r0] - ldrb r1, [r0, 0xE] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _080C61C4 - ldr r0, =gUnknown_02039CF0 - ldr r0, [r0] - ldr r1, [r0, 0x28] - movs r0, 0xC - str r0, [sp] - str r5, [sp, 0x4] - movs r0, 0x11 - str r0, [sp, 0x8] - movs r0, 0x1 - movs r2, 0x2 -_080C6192: - movs r3, 0xA - bl CopyToBgTilemapBufferRect_ChangePalette - b _080C61CE - .pool -_080C61A4: - ldr r1, =gUnknown_08DE3350 - movs r0, 0x9 - str r0, [sp] - movs r0, 0x2 - str r0, [sp, 0x4] - movs r0, 0x11 - str r0, [sp, 0x8] - movs r0, 0x1 - movs r2, 0x15 - movs r3, 0 - bl CopyToBgTilemapBufferRect_ChangePalette - b _080C61CE - .pool -_080C61C4: - subs r0, r4, 0x1 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x3 - bhi _080C6294 -_080C61CE: - cmp r4, 0x2 - beq _080C620C - cmp r4, 0x2 - bgt _080C61DC - cmp r4, 0x1 - beq _080C61E6 - b _080C6284 -_080C61DC: - cmp r4, 0x3 - beq _080C6230 - cmp r4, 0x4 - beq _080C6264 - b _080C6284 -_080C61E6: - ldr r0, =gUnknown_02039CF0 - ldr r0, [r0] - ldr r1, [r0, 0x24] - adds r1, 0xA8 - movs r0, 0xC - str r0, [sp] - movs r0, 0x7 - str r0, [sp, 0x4] - movs r0, 0x11 - str r0, [sp, 0x8] - movs r0, 0x1 - movs r2, 0x10 - movs r3, 0x3 - bl CopyToBgTilemapBufferRect_ChangePalette - b _080C628E - .pool -_080C620C: - ldr r0, =gUnknown_02039CF0 - ldr r0, [r0] - ldr r1, [r0, 0x24] - movs r0, 0xFC - lsls r0, 1 - adds r1, r0 - movs r0, 0xC - str r0, [sp] - movs r0, 0x7 - str r0, [sp, 0x4] - movs r0, 0x11 - str r0, [sp, 0x8] - movs r0, 0x1 - movs r2, 0x10 - b _080C6254 - .pool -_080C6230: - ldr r0, =gUnknown_02039CEC - ldr r0, [r0] - ldrb r1, [r0, 0xE] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _080C6294 - ldr r0, =gUnknown_02039CF0 - ldr r0, [r0] - ldr r1, [r0, 0x28] - adds r1, 0x48 - movs r0, 0xC - str r0, [sp] - str r4, [sp, 0x4] - movs r0, 0x11 - str r0, [sp, 0x8] - movs r0, 0x1 - movs r2, 0x2 -_080C6254: - movs r3, 0xA - bl CopyToBgTilemapBufferRect_ChangePalette - b _080C628E - .pool -_080C6264: - ldr r1, =gUnknown_08DE3374 - movs r0, 0x9 - str r0, [sp] - movs r0, 0x2 - str r0, [sp, 0x4] - movs r0, 0x11 - str r0, [sp, 0x8] - movs r0, 0x1 - movs r2, 0x15 - movs r3, 0 - bl CopyToBgTilemapBufferRect_ChangePalette - b _080C628E - .pool -_080C6284: - subs r0, r5, 0x1 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x3 - bhi _080C6294 -_080C628E: - movs r0, 0x1 - bl CopyBgTilemapBufferToVram -_080C6294: - add sp, 0xC - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_80C6104 - - thumb_func_start sub_80C629C -sub_80C629C: @ 80C629C - push {r4,lr} - ldr r1, =gUnknown_08DE3060 - movs r0, 0x1 - movs r2, 0 - movs r3, 0 - bl CopyToBgTilemapBuffer - ldr r4, =gUnknown_02039CEC - ldr r1, [r4] - ldrb r0, [r1, 0xC] - ldrb r1, [r1, 0xD] - bl sub_80C6104 - ldr r0, [r4] - ldrb r1, [r0, 0xE] - lsls r1, 28 - lsrs r1, 29 - movs r0, 0x1 - bl sub_80C5F58 - bl sub_80C5DB8 - movs r0, 0x1 - bl CopyBgTilemapBufferToVram - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_80C629C - - thumb_func_start sub_80C62DC -sub_80C62DC: @ 80C62DC - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - sub sp, 0x18 - movs r5, 0 - bl FreeAllSpritePalettes - bl ResetAffineAnimData - ldr r0, =gUnknown_085714E4 - bl LoadSpritePalettes - ldr r4, =gUnknown_085714BC - adds r0, r4, 0 - bl LoadCompressedSpriteSheet - adds r4, 0x10 - adds r0, r4, 0 - bl LoadCompressedSpriteSheet - ldr r0, =gUnknown_085715B4 - ldr r1, =gUnknown_02039CEC - ldr r2, [r1] - movs r3, 0x8 - ldrsh r1, [r2, r3] - movs r6, 0xA - ldrsh r2, [r2, r6] - movs r3, 0 - bl CreateSprite - lsls r0, 24 - lsrs r0, 24 - ldr r3, =gUnknown_02039CF0 - ldr r2, [r3] - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - ldr r0, =gSprites - adds r1, r0 - str r1, [r2] - ldrb r2, [r1, 0x5] - movs r0, 0xD - negs r0, r0 - ands r0, r2 - strb r0, [r1, 0x5] - mov r8, sp - mov r9, r3 -_080C633C: - ldr r0, =gUnknown_02039CEC - ldr r0, [r0] - adds r0, 0xF - adds r2, r0, r5 - ldrb r0, [r2] - adds r4, r5, 0x1 - cmp r0, 0 - beq _080C63C2 - mov r1, sp - ldr r0, =gUnknown_085715E4 - ldm r0!, {r3,r6,r7} - stm r1!, {r3,r6,r7} - ldm r0!, {r3,r6,r7} - stm r1!, {r3,r6,r7} - mov r7, r8 - ldrh r0, [r7, 0x2] - ldr r1, =0x0000ffff - adds r0, r1 - ldrb r2, [r2] - adds r0, r2 - strh r0, [r7, 0x2] - ldr r1, =gUnknown_08571454 - adds r0, r5, 0x6 - lsls r0, 3 - adds r0, r1 - ldrh r1, [r0, 0x4] - adds r1, 0x8 - lsls r1, 16 - asrs r1, 16 - ldrh r2, [r0] - adds r2, 0x6 - lsls r2, 16 - asrs r2, 16 - lsls r3, r4, 24 - lsrs r3, 24 - mov r0, sp - bl CreateSprite - lsls r0, 24 - lsrs r0, 24 - mov r3, r9 - ldr r2, [r3] - lsls r3, r5, 2 - adds r2, 0x4 - adds r2, r3 - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - ldr r0, =gSprites - adds r1, r0 - str r1, [r2] - ldrb r2, [r1, 0x5] - movs r6, 0xD - negs r6, r6 - adds r0, r6, 0 - ands r2, r0 - movs r0, 0x8 - orrs r2, r0 - strb r2, [r1, 0x5] - mov r7, r9 - ldr r0, [r7] - adds r0, 0x4 - adds r0, r3 - ldr r0, [r0] - adds r1, r5, 0 - bl StartSpriteAnim -_080C63C2: - lsls r0, r4, 24 - lsrs r5, r0, 24 - cmp r5, 0x6 - bls _080C633C - add sp, 0x18 - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_80C62DC - - thumb_func_start sub_80C63FC -sub_80C63FC: @ 80C63FC - push {r4-r6,lr} - movs r5, 0 - ldr r4, =gUnknown_02039CF0 - ldr r0, [r4] - ldr r0, [r0] - bl DestroySprite - ldr r0, [r4] - str r5, [r0] - adds r6, r4, 0 -_080C6410: - ldr r0, [r6] - lsls r4, r5, 2 - adds r0, 0x4 - adds r0, r4 - ldr r0, [r0] - cmp r0, 0 - beq _080C642C - bl DestroySprite - ldr r0, [r6] - adds r0, 0x4 - adds r0, r4 - movs r1, 0 - str r1, [r0] -_080C642C: - adds r0, r5, 0x1 - lsls r0, 24 - lsrs r5, r0, 24 - cmp r5, 0x6 - bls _080C6410 - bl FreeAllSpritePalettes - movs r0, 0x2 - bl FreeSpriteTilesByTag - movs r0, 0 - bl FreeSpriteTilesByTag - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end sub_80C63FC - - thumb_func_start nullsub_39 -nullsub_39: @ 80C6450 - bx lr - thumb_func_end nullsub_39 - - thumb_func_start sub_80C6454 -sub_80C6454: @ 80C6454 - push {r4,r5,lr} - adds r4, r0, 0 - ldr r5, =gUnknown_02039CF4 - ldr r0, [r5] - cmp r0, 0 - beq _080C6466 - adds r0, r4, 0 - bl SetMainCallback2 -_080C6466: - ldr r0, =0x00003014 - bl AllocZeroed - str r0, [r5] - str r4, [r0] - bl ResetTasks - ldr r0, =sub_80C67BC - movs r1, 0 - bl CreateTask - ldr r0, =sub_80C5438 - bl SetMainCallback2 - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_80C6454 - - thumb_func_start sub_80C6498 -sub_80C6498: @ 80C6498 - push {r4,lr} - bl ResetTasks - ldr r4, =gUnknown_02039CF4 - ldr r0, [r4] - ldr r0, [r0] - bl SetMainCallback2 - ldr r0, [r4] - ldr r2, =0x00003014 - movs r1, 0 - bl memset - ldr r0, [r4] - bl Free - movs r0, 0 - str r0, [r4] - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_80C6498 - - thumb_func_start sub_80C64CC -sub_80C64CC: @ 80C64CC - push {r4,r5,lr} - sub sp, 0x8 - ldr r0, =gUnknown_02039CEC - ldr r0, [r0] - ldrh r0, [r0, 0x4] - cmp r0, 0x7 - bls _080C64DC - b _080C6694 -_080C64DC: - lsls r0, 2 - ldr r1, =_080C64F0 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .pool - .align 2, 0 -_080C64F0: - .4byte _080C6510 - .4byte _080C6520 - .4byte _080C6526 - .4byte _080C6538 - .4byte _080C65C0 - .4byte _080C65E8 - .4byte _080C6628 - .4byte _080C6678 -_080C6510: - movs r0, 0 - bl SetVBlankCallback - bl ScanlineEffect_Stop - bl SetVBlankHBlankCallbacksToNull - b _080C6694 -_080C6520: - bl sub_80C50D0 - b _080C6694 -_080C6526: - bl ResetSpriteData - bl FreeAllSpritePalettes - bl ResetPaletteFade - bl reset_temp_tile_data_buffers - b _080C6694 -_080C6538: - movs r0, 0 - bl ResetBgsAndClearDma3BusyFlags - ldr r1, =gUnknown_085713F4 - movs r0, 0 - movs r2, 0x3 - bl InitBgsFromTemplates - ldr r4, =gUnknown_02039CF4 - ldr r1, [r4] - adds r1, 0x12 - movs r0, 0 - bl SetBgTilemapBuffer - ldr r1, [r4] - ldr r0, =0x00001012 - adds r1, r0 - movs r0, 0x1 - bl SetBgTilemapBuffer - ldr r1, [r4] - ldr r0, =0x00002012 - adds r1, r0 - movs r0, 0x2 - bl SetBgTilemapBuffer - movs r5, 0x1E - str r5, [sp] - movs r4, 0x14 - str r4, [sp, 0x4] - movs r0, 0 - movs r1, 0 - movs r2, 0 - movs r3, 0 - bl FillBgTilemapBufferRect_Palette0 - str r5, [sp] - str r4, [sp, 0x4] - movs r0, 0x1 - movs r1, 0 - movs r2, 0 - movs r3, 0 - bl FillBgTilemapBufferRect_Palette0 - str r5, [sp] - str r4, [sp, 0x4] - movs r0, 0x2 - movs r1, 0 - movs r2, 0 - movs r3, 0 - bl FillBgTilemapBufferRect_Palette0 - movs r0, 0 - bl CopyBgTilemapBufferToVram - movs r0, 0x1 - bl CopyBgTilemapBufferToVram - b _080C6618 - .pool -_080C65C0: - ldr r0, =gUnknown_08571428 - bl InitWindows - bl DeactivateAllTextPrinters - bl sub_80C6B94 - ldr r1, =gUnknown_0856FBBC - movs r0, 0 - str r0, [sp] - movs r0, 0x1 - movs r2, 0 - movs r3, 0 - bl decompress_and_copy_tile_data_to_vram - b _080C6694 - .pool -_080C65E8: - bl free_temp_tile_data_buffers_if_possible - lsls r0, 24 - cmp r0, 0 - bne _080C669E - ldr r0, =gUnknown_08DE07C8 - movs r2, 0xD0 - lsls r2, 1 - movs r1, 0 - bl LoadPalette - movs r0, 0 - bl stdpal_get - movs r1, 0xF0 - movs r2, 0x20 - bl LoadPalette - ldr r1, =gUnknown_08570E00 - movs r0, 0x2 - movs r2, 0 - movs r3, 0 - bl CopyToBgTilemapBuffer -_080C6618: - movs r0, 0x2 - bl CopyBgTilemapBufferToVram - b _080C6694 - .pool -_080C6628: - 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 - bl sub_80C6974 - ldr r0, =pokemon_details - bl SetVBlankCallback - movs r5, 0x1 - negs r5, r5 - ldr r4, =0x00007fff - adds r0, r5, 0 - movs r1, 0x10 - adds r2, r4, 0 - bl BlendPalettes - str r4, [sp] - adds r0, r5, 0 - movs r1, 0 - movs r2, 0x10 - movs r3, 0 - bl BeginNormalPaletteFade - b _080C6694 - .pool -_080C6678: - bl UpdatePaletteFade - lsls r0, 24 - lsrs r1, r0, 24 - cmp r1, 0 - bne _080C669E - ldr r0, =gUnknown_02039CEC - ldr r0, [r0] - strh r1, [r0, 0x4] - movs r0, 0x1 - b _080C66A0 - .pool -_080C6694: - ldr r0, =gUnknown_02039CEC - ldr r1, [r0] - ldrh r0, [r1, 0x4] - adds r0, 0x1 - strh r0, [r1, 0x4] -_080C669E: - movs r0, 0 -_080C66A0: - add sp, 0x8 - pop {r4,r5} - pop {r1} - bx r1 - .pool - thumb_func_end sub_80C64CC - - thumb_func_start sub_80C66AC -sub_80C66AC: @ 80C66AC - push {r4,lr} - sub sp, 0x4 - ldr r0, =gUnknown_02039CEC - ldr r0, [r0] - ldrh r0, [r0, 0x4] - cmp r0, 0x5 - bhi _080C67A4 - lsls r0, 2 - ldr r1, =_080C66CC - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .pool - .align 2, 0 -_080C66CC: - .4byte _080C66E4 - .4byte _080C66FC - .4byte _080C6722 - .4byte _080C6732 - .4byte _080C6774 - .4byte _080C6782 -_080C66E4: - movs r0, 0x1 - negs r0, r0 - ldr r1, =0x00007fff - str r1, [sp] - movs r1, 0 - movs r2, 0 - movs r3, 0x10 - bl BeginNormalPaletteFade - b _080C67A4 - .pool -_080C66FC: - bl UpdatePaletteFade - lsls r0, 24 - cmp r0, 0 - bne _080C67AE - movs r0, 0 - movs r1, 0 - bl SetGpuReg - movs r0, 0 - bl HideBg - movs r0, 0x1 - bl HideBg - movs r0, 0x2 - bl HideBg - b _080C67A4 -_080C6722: - movs r0, 0 - bl SetVBlankCallback - bl ScanlineEffect_Stop - bl SetVBlankHBlankCallbacksToNull - b _080C67A4 -_080C6732: - ldr r4, =gUnknown_02039CF4 - ldr r0, [r4] - ldr r0, [r0, 0x4] - cmp r0, 0 - beq _080C6746 - bl DestroySprite - movs r0, 0 - bl FreeSpriteTilesByTag -_080C6746: - ldr r0, [r4] - ldr r0, [r0, 0xC] - cmp r0, 0 - beq _080C6758 - bl DestroySprite - movs r0, 0x1 - bl FreeSpriteTilesByTag -_080C6758: - ldr r0, [r4] - ldr r0, [r0, 0x8] - cmp r0, 0 - beq _080C676A - bl DestroySprite - movs r0, 0x4 - bl FreeSpriteTilesByTag -_080C676A: - bl FreeAllWindowBuffers - b _080C67A4 - .pool -_080C6774: - bl sub_80C50D0 - bl ResetSpriteData - bl FreeAllSpritePalettes - b _080C67A4 -_080C6782: - movs r0, 0 - bl UnsetBgTilemapBuffer - movs r0, 0x1 - bl UnsetBgTilemapBuffer - movs r0, 0x2 - bl UnsetBgTilemapBuffer - ldr r0, =gUnknown_02039CEC - ldr r1, [r0] - movs r0, 0 - strh r0, [r1, 0x4] - movs r0, 0x1 - b _080C67B0 - .pool -_080C67A4: - ldr r0, =gUnknown_02039CEC - ldr r1, [r0] - ldrh r0, [r1, 0x4] - adds r0, 0x1 - strh r0, [r1, 0x4] -_080C67AE: - movs r0, 0 -_080C67B0: - add sp, 0x4 - pop {r4} - pop {r1} - bx r1 - .pool - thumb_func_end sub_80C66AC - - thumb_func_start sub_80C67BC -sub_80C67BC: @ 80C67BC - push {r4,lr} - lsls r0, 24 - lsrs r2, r0, 24 - lsls r0, r2, 2 - adds r0, r2 - lsls r0, 3 - ldr r1, =gTasks + 0x8 - adds r4, r0, r1 - movs r1, 0 - ldrsh r0, [r4, r1] - cmp r0, 0x5 - bls _080C67D6 - b _080C68DA -_080C67D6: - lsls r0, 2 - ldr r1, =_080C67E8 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .pool - .align 2, 0 -_080C67E8: - .4byte _080C6800 - .4byte _080C6806 - .4byte _080C686C - .4byte _080C6894 - .4byte _080C68C4 - .4byte _080C68CE -_080C6800: - bl sub_80C64CC - b _080C68C8 -_080C6806: - ldr r0, =gMain - ldrh r1, [r0, 0x2E] - movs r2, 0x2 - adds r0, r2, 0 - ands r0, r1 - cmp r0, 0 - beq _080C6824 - movs r0, 0x3 - bl PlaySE - movs r0, 0x4 - b _080C68DE - .pool -_080C6824: - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - beq _080C6848 - ldr r0, =gUnknown_02039CF4 - ldr r0, [r0] - ldrb r0, [r0, 0x10] - cmp r0, 0x5 - bls _080C6844 - movs r0, 0 - bl sub_80C6C70 - b _080C68E0 - .pool -_080C6844: - strh r2, [r4] - b _080C68E0 -_080C6848: - movs r0, 0x40 - ands r0, r1 - cmp r0, 0 - beq _080C68E0 - ldr r0, =gUnknown_02039CF4 - ldr r0, [r0] - ldrb r0, [r0, 0x10] - cmp r0, 0 - bne _080C6868 - movs r0, 0x1 - bl sub_80C6C70 - b _080C68E0 - .pool -_080C6868: - movs r0, 0x3 - b _080C68DE -_080C686C: - movs r1, 0x2 - ldrsh r0, [r4, r1] - cmp r0, 0x3 - ble _080C6882 - movs r0, 0 - bl sub_80C6C70 - movs r0, 0 - strh r0, [r4, 0x2] - movs r0, 0x1 - b _080C68DE -_080C6882: - ldr r0, =gUnknown_02039CF4 - ldr r0, [r0] - ldr r1, [r0, 0x4] - ldrh r0, [r1, 0x22] - adds r0, 0x4 - b _080C68B4 - .pool -_080C6894: - movs r1, 0x2 - ldrsh r0, [r4, r1] - cmp r0, 0x3 - ble _080C68AA - movs r0, 0x1 - bl sub_80C6C70 - movs r0, 0 - strh r0, [r4, 0x2] - movs r0, 0x1 - b _080C68DE -_080C68AA: - ldr r0, =gUnknown_02039CF4 - ldr r0, [r0] - ldr r1, [r0, 0x4] - ldrh r0, [r1, 0x22] - subs r0, 0x4 -_080C68B4: - strh r0, [r1, 0x22] - ldrh r0, [r4, 0x2] - adds r0, 0x1 - strh r0, [r4, 0x2] - b _080C68E0 - .pool -_080C68C4: - bl sub_80C66AC -_080C68C8: - cmp r0, 0 - bne _080C68DA - b _080C68E0 -_080C68CE: - adds r0, r2, 0 - bl DestroyTask - bl sub_80C6498 - b _080C68E0 -_080C68DA: - ldrh r0, [r4] - adds r0, 0x1 -_080C68DE: - strh r0, [r4] -_080C68E0: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80C67BC - - thumb_func_start sub_80C68E8 -sub_80C68E8: @ 80C68E8 - push {lr} - lsls r0, 16 - lsrs r1, r0, 16 - ldr r2, =0xfffb0000 - adds r0, r2 - lsrs r0, 16 - cmp r0, 0x3 - bls _080C6904 - adds r0, r1, 0 - subs r0, 0xF - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0x2 - bhi _080C690C -_080C6904: - movs r0, 0x1 - b _080C696E - .pool -_080C690C: - adds r0, r1, 0 - subs r0, 0x12 - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0x3 - bhi _080C691C - movs r0, 0x2 - b _080C696E -_080C691C: - adds r0, r1, 0 - subs r0, 0x16 - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0x2 - bhi _080C692C - movs r0, 0x3 - b _080C696E -_080C692C: - adds r0, r1, 0 - subs r0, 0x1C - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0x2 - bhi _080C693C - movs r0, 0x4 - b _080C696E -_080C693C: - adds r0, r1, 0 - subs r0, 0x1F - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0x2 - bhi _080C694C - movs r0, 0x5 - b _080C696E -_080C694C: - adds r0, r1, 0 - subs r0, 0x22 - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0x5 - bhi _080C695C - movs r0, 0x6 - b _080C696E -_080C695C: - adds r0, r1, 0 - subs r0, 0x19 - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0x2 - bls _080C696C - movs r0, 0 - b _080C696E -_080C696C: - movs r0, 0x7 -_080C696E: - pop {r1} - bx r1 - thumb_func_end sub_80C68E8 - - thumb_func_start sub_80C6974 -sub_80C6974: @ 80C6974 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - sub sp, 0x18 - movs r7, 0 - bl FreeAllSpritePalettes - ldr r0, =gUnknown_085714E4 - bl LoadSpritePalettes - ldr r6, =gUnknown_085714BC - adds r0, r6, 0 - bl LoadCompressedSpriteSheet - ldr r0, =gUnknown_085715B4 - mov r8, r0 - ldr r4, =gUnknown_02039CF4 - ldr r0, [r4] - ldrb r2, [r0, 0x10] - lsls r2, 4 - adds r2, 0x8 - mov r0, r8 - movs r1, 0x9B - movs r3, 0x2 - bl CreateSprite - lsls r0, 24 - lsrs r3, r0, 24 - ldr r0, [r4] - lsls r1, r3, 4 - adds r1, r3 - lsls r1, 2 - ldr r2, =gSprites - mov r9, r2 - add r1, r9 - str r1, [r0, 0x4] - ldrb r2, [r1, 0x5] - movs r5, 0xD - negs r5, r5 - adds r0, r5, 0 - ands r0, r2 - strb r0, [r1, 0x5] - ldr r0, [r4] - ldr r1, [r0, 0x4] - adds r1, 0x3F - ldrb r0, [r1] - movs r2, 0x1 - orrs r0, r2 - strb r0, [r1] - ldr r0, [r4] - ldr r0, [r0, 0x4] - movs r1, 0x1 - bl StartSpriteAnim - adds r6, 0x8 - adds r0, r6, 0 - bl LoadCompressedSpriteSheet - movs r3, 0x18 - add r8, r3 - ldr r6, =gUnknown_08571650 - ldr r0, [r4] - ldrb r0, [r0, 0x10] - lsls r0, 4 - adds r0, r6 - movs r2, 0x8 - ldrsh r1, [r0, r2] - movs r3, 0xA - ldrsh r2, [r0, r3] - mov r0, r8 - movs r3, 0x1 - bl CreateSprite - lsls r0, 24 - lsrs r3, r0, 24 - ldr r1, [r4] - lsls r0, r3, 4 - adds r0, r3 - lsls r0, 2 - add r0, r9 - str r0, [r1, 0xC] - ldrb r1, [r0, 0x5] - ands r5, r1 - strb r5, [r0, 0x5] - ldr r1, [r4] - ldr r0, [r1, 0xC] - ldrb r1, [r1, 0x10] - lsls r1, 4 - adds r1, r6 - ldrb r1, [r1, 0xC] - bl StartSpriteAnim - bl GetCurrentRegionMapSectionId - lsls r0, 24 - lsrs r5, r0, 24 - cmp r5, 0x3A - beq _080C6A40 - cmp r5, 0xCA - beq _080C6A40 - b _080C6B7A -_080C6A40: - ldr r4, =gSaveBlock1Ptr - ldr r2, [r4] - movs r0, 0x5 - ldrsb r0, [r2, r0] - cmp r0, 0x4 - beq _080C6A52 - cmp r0, 0xE - bne _080C6A98 - movs r7, 0x37 -_080C6A52: - lsls r0, r7, 16 - asrs r0, 16 - ldrh r6, [r2] - adds r0, r6 - ldrh r4, [r2, 0x2] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0 - bge _080C6A66 - adds r0, 0x7 -_080C6A66: - lsls r0, 13 - lsrs r7, r0, 16 - lsls r0, r4, 16 - asrs r0, 16 - cmp r0, 0 - bge _080C6A74 - adds r0, 0x7 -_080C6A74: - lsls r0, 13 - lsrs r4, r0, 16 - movs r5, 0 - b _080C6AF2 - .pool -_080C6A98: - lsls r0, 16 - lsrs r0, 16 - bl sub_80C68E8 - lsls r0, 24 - lsrs r5, r0, 24 - cmp r5, 0 - beq _080C6AB4 - subs r0, r5, 0x1 - lsls r0, 4 - adds r0, r6 - ldrh r7, [r0, 0x8] - ldrh r4, [r0, 0xA] - b _080C6AF2 -_080C6AB4: - ldr r1, [r4] - adds r0, r1, 0 - adds r0, 0x25 - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - cmp r0, 0xE - bne _080C6ACE - ldrh r0, [r1, 0x28] - adds r0, 0x37 - lsls r0, 16 - lsrs r7, r0, 16 - b _080C6AD0 -_080C6ACE: - ldrh r7, [r1, 0x28] -_080C6AD0: - ldr r0, =gSaveBlock1Ptr - ldr r0, [r0] - ldrh r4, [r0, 0x2A] - lsls r0, r7, 16 - asrs r0, 16 - cmp r0, 0 - bge _080C6AE0 - adds r0, 0x7 -_080C6AE0: - lsls r0, 13 - lsrs r7, r0, 16 - lsls r0, r4, 16 - asrs r0, 16 - cmp r0, 0 - bge _080C6AEE - adds r0, 0x7 -_080C6AEE: - lsls r0, 13 - lsrs r4, r0, 16 -_080C6AF2: - ldr r0, =gUnknown_085714D4 - bl LoadCompressedSpriteSheet - mov r1, sp - ldr r0, =gUnknown_085715FC - ldm r0!, {r2,r3,r6} - stm r1!, {r2,r3,r6} - ldm r0!, {r2,r3,r6} - stm r1!, {r2,r3,r6} - mov r1, sp - ldr r0, =gSaveBlock2Ptr - ldr r0, [r0] - ldrb r0, [r0, 0x8] - adds r0, 0x4 - strh r0, [r1, 0x2] - cmp r5, 0 - beq _080C6B2C - lsls r1, r7, 16 - asrs r1, 16 - lsls r2, r4, 16 - b _080C6B3E - .pool -_080C6B2C: - lsls r1, r7, 19 - lsls r2, r4, 19 - movs r0, 0xA0 - lsls r0, 13 - adds r1, r0 - asrs r1, 16 - movs r3, 0x90 - lsls r3, 14 - adds r2, r3 -_080C6B3E: - asrs r2, 16 - mov r0, sp - movs r3, 0 - bl CreateSprite - lsls r0, 24 - lsrs r3, r0, 24 - ldr r4, =gUnknown_02039CF4 - ldr r2, [r4] - lsls r1, r3, 4 - adds r1, r3 - lsls r1, 2 - ldr r0, =gSprites - adds r1, r0 - str r1, [r2, 0x8] - ldrb r2, [r1, 0x5] - movs r0, 0xD - negs r0, r0 - ands r0, r2 - strb r0, [r1, 0x5] - ldr r0, =gSaveBlock2Ptr - ldr r0, [r0] - ldrb r0, [r0, 0x8] - cmp r0, 0 - beq _080C6B7A - ldr r0, [r4] - ldr r0, [r0, 0x8] - movs r1, 0x1 - bl StartSpriteAnim -_080C6B7A: - add sp, 0x18 - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_80C6974 - - thumb_func_start sub_80C6B94 -sub_80C6B94: @ 80C6B94 - push {r4-r6,lr} - sub sp, 0xC - movs r4, 0 -_080C6B9A: - adds r0, r4, 0 - bl PutWindowTilemap - adds r0, r4, 0 - movs r1, 0 - bl FillWindowPixelBuffer - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0x2 - bls _080C6B9A - movs r4, 0 - movs r6, 0 - ldr r5, =gUnknown_08571650 -_080C6BB8: - ldr r0, =gUnknown_02039CF4 - ldr r0, [r0] - ldrb r0, [r0, 0x10] - cmp r4, r0 - bne _080C6BF0 - lsls r1, r4, 4 - adds r3, r1, 0x1 - lsls r3, 24 - lsrs r3, 24 - ldr r0, =gUnknown_0857144E - str r0, [sp] - str r6, [sp, 0x4] - adds r1, r5 - ldr r0, [r1] - str r0, [sp, 0x8] - movs r0, 0x1 - movs r1, 0x7 - movs r2, 0x4 - bl AddTextPrinterParameterized3 - b _080C6C0E - .pool -_080C6BF0: - lsls r1, r4, 4 - adds r3, r1, 0x1 - lsls r3, 24 - lsrs r3, 24 - ldr r0, =gUnknown_0857144B - str r0, [sp] - str r6, [sp, 0x4] - adds r1, r5 - ldr r0, [r1] - str r0, [sp, 0x8] - movs r0, 0x1 - movs r1, 0x7 - movs r2, 0x4 - bl AddTextPrinterParameterized3 -_080C6C0E: - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0x6 - bls _080C6BB8 - ldr r0, =gUnknown_08571448 - str r0, [sp] - movs r0, 0 - str r0, [sp, 0x4] - ldr r1, =gUnknown_08571650 - ldr r0, =gUnknown_02039CF4 - ldr r0, [r0] - ldrb r0, [r0, 0x10] - lsls r0, 4 - adds r1, 0x4 - adds r0, r1 - ldr r0, [r0] - str r0, [sp, 0x8] - movs r0, 0x2 - movs r1, 0x1 - movs r2, 0x4 - movs r3, 0 - bl AddTextPrinterParameterized3 - movs r4, 0 -_080C6C40: - adds r0, r4, 0 - movs r1, 0x3 - bl CopyWindowToVram - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0x2 - bls _080C6C40 - movs r0, 0 - bl CopyBgTilemapBufferToVram - add sp, 0xC - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end sub_80C6B94 - - thumb_func_start sub_80C6C70 -sub_80C6C70: @ 80C6C70 - push {r4-r6,lr} - mov r6, r8 - push {r6} - sub sp, 0xC - lsls r0, 24 - cmp r0, 0 - beq _080C6C8C - ldr r0, =gUnknown_02039CF4 - ldr r4, [r0] - ldrb r5, [r4, 0x10] - adds r0, r5, 0x6 - b _080C6C94 - .pool -_080C6C8C: - ldr r0, =gUnknown_02039CF4 - ldr r4, [r0] - ldrb r5, [r4, 0x10] - adds r0, r5, 0x1 -_080C6C94: - movs r1, 0x7 - bl __modsi3 - strb r0, [r4, 0x10] - lsls r0, r5, 4 - adds r3, r0, 0x1 - lsls r3, 24 - lsrs r3, 24 - ldr r6, =gUnknown_0857144B - str r6, [sp] - movs r1, 0 - mov r8, r1 - str r1, [sp, 0x4] - ldr r4, =gUnknown_08571650 - adds r0, r4 - ldr r0, [r0] - str r0, [sp, 0x8] - movs r0, 0x1 - movs r1, 0x7 - movs r2, 0x4 - bl AddTextPrinterParameterized3 - ldr r5, =gUnknown_02039CF4 - ldr r1, [r5] - ldrb r3, [r1, 0x10] - lsls r3, 4 - adds r3, 0x1 - lsls r3, 24 - lsrs r3, 24 - adds r0, r6, 0x3 - str r0, [sp] - mov r0, r8 - str r0, [sp, 0x4] - ldrb r0, [r1, 0x10] - lsls r0, 4 - adds r0, r4 - ldr r0, [r0] - str r0, [sp, 0x8] - movs r0, 0x1 - movs r1, 0x7 - movs r2, 0x4 - bl AddTextPrinterParameterized3 - ldr r1, [r5] - ldr r2, [r1, 0x4] - ldrb r0, [r1, 0x10] - lsls r0, 4 - adds r0, 0x8 - strh r0, [r2, 0x22] - ldr r0, [r1, 0xC] - ldrb r1, [r1, 0x10] - lsls r1, 4 - adds r1, r4 - ldrb r1, [r1, 0xC] - bl StartSpriteAnim - ldr r1, [r5] - ldr r2, [r1, 0xC] - ldrb r0, [r1, 0x10] - lsls r0, 4 - adds r0, r4 - ldrh r0, [r0, 0x8] - strh r0, [r2, 0x20] - ldr r2, [r1, 0xC] - ldrb r0, [r1, 0x10] - lsls r0, 4 - adds r0, r4 - ldrh r0, [r0, 0xA] - strh r0, [r2, 0x22] - movs r0, 0x2 - movs r1, 0 - bl FillWindowPixelBuffer - subs r6, 0x3 - str r6, [sp] - mov r1, r8 - str r1, [sp, 0x4] - ldr r0, [r5] - ldrb r0, [r0, 0x10] - lsls r0, 4 - adds r4, 0x4 - adds r0, r4 - ldr r0, [r0] - str r0, [sp, 0x8] - movs r0, 0x2 - movs r1, 0x1 - movs r2, 0x4 - movs r3, 0 - bl AddTextPrinterParameterized3 - movs r4, 0 -_080C6D4A: - adds r0, r4, 0 - movs r1, 0x3 - bl CopyWindowToVram - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0x2 - bls _080C6D4A - movs r0, 0 - bl CopyBgTilemapBufferToVram - movs r0, 0x6C - bl PlaySE - add sp, 0xC - pop {r3} - mov r8, r3 - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end sub_80C6C70 - - thumb_func_start sub_80C6D80 -sub_80C6D80: @ 80C6D80 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x2C - str r0, [sp, 0x24] - adds r7, r1, 0 - lsls r2, 24 - lsrs r2, 24 - str r2, [sp, 0x28] - lsls r3, 24 - lsrs r3, 24 - mov r9, r3 - movs r0, 0 - movs r1, 0 - str r0, [sp, 0x1C] - str r1, [sp, 0x20] - ldr r1, =0x00ffffff - ldr r0, [sp, 0x1C] - ands r0, r1 - movs r1, 0xC0 - lsls r1, 21 - orrs r0, r1 - str r0, [sp, 0x1C] - ldr r1, =0xffffff00 - add r5, sp, 0x1C - ldr r0, [r5, 0x4] - ands r0, r1 - movs r1, 0x2 - orrs r0, r1 - str r0, [r5, 0x4] - adds r0, r5, 0 - bl AddWindow - lsls r0, 16 - lsrs r0, 16 - mov r10, r0 - lsls r4, r0, 24 - lsrs r4, 24 - mov r0, r9 - lsls r1, r0, 4 - orrs r1, r0 - lsls r1, 24 - lsrs r1, 24 - adds r0, r4, 0 - bl FillWindowPixelBuffer - adds r0, r4, 0 - movs r1, 0x7 - bl GetWindowAttribute - adds r6, r0, 0 - ldrb r0, [r5, 0x3] - lsls r0, 5 - adds r0, r6 - mov r8, r0 - ldr r1, [sp, 0x28] - cmp r1, 0 - bne _080C6E04 - add r0, sp, 0x14 - b _080C6E08 - .pool -_080C6E04: - add r0, sp, 0x14 - mov r1, r9 -_080C6E08: - strb r1, [r0] - add r1, sp, 0x14 - movs r2, 0 - movs r0, 0xF - strb r0, [r1, 0x1] - movs r0, 0xE - strb r0, [r1, 0x2] - mov r0, r10 - lsls r4, r0, 24 - lsrs r0, r4, 24 - str r2, [sp] - str r2, [sp, 0x4] - str r1, [sp, 0x8] - movs r1, 0x1 - negs r1, r1 - str r1, [sp, 0xC] - ldr r1, [sp, 0x24] - str r1, [sp, 0x10] - movs r1, 0x1 - movs r3, 0x1 - bl AddTextPrinterParameterized4 - ldr r0, [sp, 0x4C] - mov r10, r4 - cmp r0, 0x6 - bls _080C6E3E - movs r0, 0x6 -_080C6E3E: - ldr r4, [sp, 0x4C] - subs r4, 0x6 - cmp r0, 0 - ble _080C6E70 - adds r5, r0, 0 -_080C6E48: - adds r0, r6, 0 - adds r1, r7, 0 - movs r2, 0x40 - bl CpuSet - adds r1, r7, 0 - adds r1, 0x80 - mov r0, r8 - movs r2, 0x40 - bl CpuSet - adds r6, 0x80 - movs r2, 0x80 - add r8, r2 - movs r0, 0x80 - lsls r0, 1 - adds r7, r0 - subs r5, 0x1 - cmp r5, 0 - bne _080C6E48 -_080C6E70: - cmp r4, 0 - ble _080C6E90 - add r0, sp, 0x18 - mov r2, r9 - lsls r1, r2, 4 - orrs r1, r2 - strh r1, [r0] - lsls r2, r4, 7 - ldr r1, =0x001fffff - ands r2, r1 - movs r1, 0x80 - lsls r1, 17 - orrs r2, r1 - adds r1, r7, 0 - bl CpuSet -_080C6E90: - mov r1, r10 - lsrs r0, r1, 24 - bl RemoveWindow - add sp, 0x2C - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_80C6D80 - - thumb_func_start sub_80C6EAC -sub_80C6EAC: @ 80C6EAC - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x2C - str r0, [sp, 0x20] - str r1, [sp, 0x24] - adds r6, r3, 0 - ldr r0, [sp, 0x4C] - mov r9, r0 - ldr r1, [sp, 0x50] - mov r10, r1 - lsls r2, 16 - lsrs r2, 16 - str r2, [sp, 0x28] - lsls r6, 24 - lsrs r6, 24 - mov r2, r9 - lsls r2, 24 - lsrs r2, 24 - mov r9, r2 - mov r0, r10 - lsls r0, 24 - lsrs r0, 24 - mov r10, r0 - movs r0, 0 - movs r1, 0 - str r0, [sp, 0x18] - str r1, [sp, 0x1C] - ldr r0, [sp, 0x20] - bl StringLength_Multibyte - lsls r0, 24 - ldr r2, =0x00ffffff - ldr r1, [sp, 0x18] - ands r1, r2 - orrs r1, r0 - str r1, [sp, 0x18] - ldr r1, =0xffffff00 - add r2, sp, 0x18 - mov r8, r2 - ldr r0, [r2, 0x4] - ands r0, r1 - movs r1, 0x2 - orrs r0, r1 - str r0, [r2, 0x4] - ldr r5, [sp, 0x18] - lsrs r5, 24 - lsls r5, 5 - mov r0, r8 - bl AddWindow - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - lsls r1, r6, 4 - orrs r1, r6 - lsls r1, 24 - lsrs r1, 24 - adds r0, r4, 0 - bl FillWindowPixelBuffer - adds r0, r4, 0 - movs r1, 0x7 - bl GetWindowAttribute - adds r7, r0, 0 - mov r0, r8 - ldrb r0, [r0, 0x3] - lsls r0, 5 - mov r8, r0 - add r8, r7 - add r0, sp, 0x14 - movs r1, 0 - strb r6, [r0] - mov r2, r9 - strb r2, [r0, 0x1] - mov r2, r10 - strb r2, [r0, 0x2] - str r1, [sp] - str r1, [sp, 0x4] - str r0, [sp, 0x8] - movs r0, 0x1 - negs r0, r0 - str r0, [sp, 0xC] - ldr r0, [sp, 0x20] - str r0, [sp, 0x10] - adds r0, r4, 0 - movs r1, 0x1 - movs r2, 0 - movs r3, 0x2 - bl AddTextPrinterParameterized4 - lsrs r5, 1 - adds r0, r7, 0 - ldr r1, [sp, 0x24] - adds r2, r5, 0 - bl CpuSet - ldr r2, [sp, 0x24] - ldr r0, [sp, 0x28] - adds r1, r2, r0 - mov r0, r8 - adds r2, r5, 0 - bl CpuSet - adds r0, r4, 0 - bl RemoveWindow - add sp, 0x2C - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_80C6EAC - - .align 2, 0 @ Don't pad with nop. -- cgit v1.2.3