.include "asm/macros.inc" .include "constants/constants.inc" .syntax unified .text thumb_func_start ResetPokedex ResetPokedex: @ 80BB2D0 push {r4-r6,lr} ldr r0, =gUnknown_02039B50 movs r2, 0 strh r2, [r0] ldr r1, =gUnknown_02039B52 movs r0, 0x40 strb r0, [r1] ldr r0, =gUnknown_030060B0 strb r2, [r0] ldr r4, =gSaveBlock2Ptr ldr r0, [r4] movs r1, 0 strb r2, [r0, 0x19] ldr r0, [r4] strb r2, [r0, 0x18] ldr r0, [r4] strb r2, [r0, 0x1A] ldr r0, [r4] strb r2, [r0, 0x1B] ldr r0, [r4] str r1, [r0, 0x1C] str r1, [r0, 0x20] str r1, [r0, 0x24] bl DisableNationalPokedex movs r1, 0 movs r2, 0 ldr r3, =gSaveBlock1Ptr ldr r6, =0x00000988 ldr r5, =0x00003b24 _080BB30C: ldr r0, [r4] adds r0, 0x28 adds r0, r1 strb r2, [r0] ldr r0, [r4] adds r0, 0x5C adds r0, r1 strb r2, [r0] ldr r0, [r3] adds r0, r6 adds r0, r1 strb r2, [r0] ldr r0, [r3] adds r0, r5 adds r0, r1 strb r2, [r0] adds r0, r1, 0x1 lsls r0, 16 lsrs r1, r0, 16 cmp r1, 0x33 bls _080BB30C pop {r4-r6} pop {r0} bx r0 .pool thumb_func_end ResetPokedex thumb_func_start sub_80BB358 sub_80BB358: @ 80BB358 ldr r1, =gUnknown_02039B50 movs r0, 0 strh r0, [r1] ldr r1, =gUnknown_02039B52 movs r0, 0x40 strb r0, [r1] bx lr .pool thumb_func_end sub_80BB358 thumb_func_start sub_80BB370 sub_80BB370: @ 80BB370 push {lr} bl LoadOam bl ProcessSpriteCopyRequests bl TransferPlttBuffer pop {r0} bx r0 thumb_func_end sub_80BB370 thumb_func_start sub_80BB384 sub_80BB384: @ 80BB384 push {r4-r7,lr} adds r4, r0, 0 movs r3, 0 ldr r0, =0x0000ffff adds r7, r0, 0 movs r1, 0x2 negs r1, r1 mov r12, r1 movs r6, 0x3 negs r6, r6 ldr r5, =0x00000181 _080BB39A: lsls r1, r3, 2 adds r1, r4, r1 ldrh r0, [r1] orrs r0, r7 strh r0, [r1] ldrb r2, [r1, 0x2] mov r0, r12 ands r0, r2 ands r0, r6 strb r0, [r1, 0x2] adds r0, r3, 0x1 lsls r0, 16 lsrs r3, r0, 16 cmp r3, r5 bls _080BB39A movs r2, 0xC1 lsls r2, 3 adds r0, r4, r2 movs r2, 0 strh r2, [r0] ldr r0, =0x0000060a adds r3, r4, r0 ldrb r1, [r3] movs r0, 0x2 negs r0, r0 ands r0, r1 movs r1, 0x3 negs r1, r1 ands r0, r1 strb r0, [r3] ldr r1, =0x0000060c adds r0, r4, r1 strh r2, [r0] ldr r3, =0x0000060e adds r0, r4, r3 strh r2, [r0] adds r1, 0x4 adds r0, r4, r1 strh r2, [r0] adds r3, 0x4 adds r0, r4, r3 strh r2, [r0] adds r1, 0x4 adds r0, r4, r1 strh r2, [r0] adds r3, 0x4 adds r0, r4, r3 strh r2, [r0] adds r1, 0x4 adds r0, r4, r1 strh r2, [r0] adds r3, 0x4 adds r0, r4, r3 strh r2, [r0] adds r1, 0x4 adds r0, r4, r1 strh r2, [r0] movs r3, 0 ldr r0, =0x0000061e adds r2, r4, r0 ldr r1, =0x0000ffff adds r5, r1, 0 _080BB416: lsls r0, r3, 1 adds r0, r2, r0 ldrh r1, [r0] orrs r1, r5 strh r1, [r0] adds r0, r3, 0x1 lsls r0, 16 lsrs r3, r0, 16 cmp r3, 0x3 bls _080BB416 movs r2, 0xC5 lsls r2, 3 adds r0, r4, r2 movs r2, 0 movs r1, 0 strh r1, [r0] ldr r3, =0x0000062a adds r0, r4, r3 strh r1, [r0] adds r3, 0x2 adds r0, r4, r3 strb r2, [r0] adds r3, 0x1 adds r0, r4, r3 strb r2, [r0] adds r3, 0x1 adds r0, r4, r3 strb r2, [r0] adds r3, 0x1 adds r0, r4, r3 strb r2, [r0] movs r2, 0xC6 lsls r2, 3 adds r0, r4, r2 strh r1, [r0] adds r3, 0x3 adds r0, r4, r3 strh r1, [r0] adds r2, 0x4 adds r0, r4, r2 strh r1, [r0] adds r3, 0x4 adds r0, r4, r3 strh r1, [r0] adds r2, 0x4 adds r0, r4, r2 strh r1, [r0] movs r3, 0 ldr r0, =0x0000063a adds r1, r4, r0 movs r2, 0 _080BB47C: lsls r0, r3, 1 adds r0, r1, r0 strh r2, [r0] adds r0, r3, 0x1 lsls r0, 16 lsrs r3, r0, 16 cmp r3, 0x3 bls _080BB47C ldr r1, =0x0000064a adds r0, r4, r1 movs r1, 0 strb r1, [r0] ldr r2, =0x0000064b adds r0, r4, r2 strb r1, [r0] ldr r0, =0x0000064c adds r3, r4, r0 ldrb r2, [r3] movs r0, 0x2 negs r0, r0 ands r0, r2 strb r0, [r3] ldr r2, =0x0000064d adds r0, r4, r2 strb r1, [r0] ldr r3, =0x0000064e adds r0, r4, r3 strb r1, [r0] adds r2, 0x2 adds r0, r4, r2 strb r1, [r0] adds r3, 0x2 adds r0, r4, r3 strh r1, [r0] adds r2, 0x3 adds r0, r4, r2 strh r1, [r0] movs r3, 0 ldr r0, =0x00000654 adds r1, r4, r0 movs r2, 0 _080BB4CE: adds r0, r1, r3 strb r2, [r0] adds r0, r3, 0x1 lsls r0, 16 lsrs r3, r0, 16 cmp r3, 0x7 bls _080BB4CE movs r3, 0 ldr r2, =0x0000065c adds r1, r4, r2 movs r2, 0 _080BB4E4: adds r0, r1, r3 strb r2, [r0] adds r0, r3, 0x1 lsls r0, 16 lsrs r3, r0, 16 cmp r3, 0x7 bls _080BB4E4 pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_80BB384 thumb_func_start sub_80BB534 sub_80BB534: @ 80BB534 push {r4-r7,lr} mov r7, r8 push {r7} sub sp, 0x8 ldr r0, =gMain movs r1, 0x87 lsls r1, 3 adds r4, r0, r1 ldrb r0, [r4] cmp r0, 0x1 beq _080BB5FC cmp r0, 0x1 ble _080BB558 cmp r0, 0x2 beq _080BB628 cmp r0, 0x3 bne _080BB558 b _080BB71C _080BB558: movs r0, 0 bl SetVBlankCallback movs r0, 0 bl sub_80C09B0 movs r3, 0xC0 lsls r3, 19 movs r4, 0xC0 lsls r4, 9 add r2, sp, 0x4 mov r8, r2 mov r2, sp movs r6, 0 ldr r1, =0x040000d4 movs r5, 0x80 lsls r5, 5 ldr r7, =0x81000800 movs r0, 0x81 lsls r0, 24 mov r12, r0 _080BB582: strh r6, [r2] mov r0, sp str r0, [r1] str r3, [r1, 0x4] str r7, [r1, 0x8] ldr r0, [r1, 0x8] adds r3, r5 subs r4, r5 cmp r4, r5 bhi _080BB582 strh r6, [r2] mov r2, sp str r2, [r1] str r3, [r1, 0x4] lsrs r0, r4, 1 mov r3, r12 orrs r0, r3 str r0, [r1, 0x8] ldr r0, [r1, 0x8] movs r0, 0xE0 lsls r0, 19 movs r3, 0x80 lsls r3, 3 movs r4, 0 str r4, [sp, 0x4] ldr r2, =0x040000d4 mov r1, r8 str r1, [r2] str r0, [r2, 0x4] lsrs r0, r3, 2 movs r1, 0x85 lsls r1, 24 orrs r0, r1 str r0, [r2, 0x8] ldr r0, [r2, 0x8] movs r1, 0xA0 lsls r1, 19 mov r0, sp strh r4, [r0] str r0, [r2] str r1, [r2, 0x4] lsrs r3, 1 movs r0, 0x81 lsls r0, 24 orrs r3, r0 str r3, [r2, 0x8] ldr r0, [r2, 0x8] ldr r0, =gMain movs r2, 0x87 lsls r2, 3 adds r0, r2 movs r1, 0x1 strb r1, [r0] b _080BB74C .pool _080BB5FC: bl ScanlineEffect_Stop bl ResetTasks bl ResetSpriteData bl ResetPaletteFade bl FreeAllSpritePalettes ldr r1, =gReservedSpritePaletteCount movs r0, 0x8 strb r0, [r1] bl dp13_810BB8C ldrb r0, [r4] adds r0, 0x1 strb r0, [r4] b _080BB74C .pool _080BB628: ldr r4, =gUnknown_02039B4C ldr r0, =0x00000664 bl AllocZeroed str r0, [r4] bl sub_80BB384 ldr r0, =sub_80BB78C movs r1, 0 bl CreateTask ldr r1, [r4] ldr r5, =gSaveBlock2Ptr ldr r0, [r5] ldrb r0, [r0, 0x19] ldr r3, =0x00000612 adds r1, r3 strh r0, [r1] bl IsNationalPokedexEnabled adds r1, r0, 0 cmp r1, 0 bne _080BB65E ldr r0, [r4] ldr r2, =0x00000612 adds r0, r2 strh r1, [r0] _080BB65E: ldr r1, [r4] ldr r0, [r5] ldrb r2, [r0, 0x18] ldr r3, =0x00000616 adds r0, r1, r3 strh r2, [r0] ldr r0, =gUnknown_02039B50 ldrh r2, [r0] subs r3, 0x8 adds r0, r1, r3 strh r2, [r0] ldr r0, =gUnknown_02039B52 ldrb r0, [r0] ldr r2, =0x0000062c adds r1, r2 strb r0, [r1] ldr r0, [r4] adds r3, 0x3F adds r0, r3 movs r1, 0 strb r1, [r0] bl IsNationalPokedexEnabled cmp r0, 0 bne _080BB6D0 movs r0, 0 bl GetHoennPokedexCount ldr r1, [r4] ldr r2, =0x0000061a adds r1, r2 strh r0, [r1] movs r0, 0x1 bl GetHoennPokedexCount b _080BB6E4 .pool _080BB6D0: movs r0, 0 bl GetNationalPokedexCount ldr r1, [r4] ldr r2, =0x0000061a adds r1, r2 strh r0, [r1] movs r0, 0x1 bl GetNationalPokedexCount _080BB6E4: ldr r1, [r4] ldr r3, =0x0000061c adds r1, r3 strh r0, [r1] ldr r0, =gUnknown_02039B4C ldr r0, [r0] ldr r1, =0x0000062d adds r0, r1 movs r1, 0x8 strb r1, [r0] ldr r1, =gMain movs r2, 0x87 lsls r2, 3 adds r1, r2 ldrb r0, [r1] adds r0, 0x1 strb r0, [r1] b _080BB74C .pool _080BB71C: movs r0, 0x1 bl EnableInterrupts ldr r0, =sub_80BB370 bl SetVBlankCallback ldr r0, =sub_80BB774 bl SetMainCallback2 ldr r0, =gUnknown_02039B4C ldr r1, [r0] ldr r3, =0x00000612 adds r0, r1, r3 ldrb r0, [r0] ldr r2, =0x00000616 adds r1, r2 ldrb r1, [r1] bl sub_80BC8D4 ldr r0, =gMPlayInfo_BGM ldr r1, =0x0000ffff movs r2, 0x80 bl m4aMPlayVolumeControl _080BB74C: add sp, 0x8 pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_80BB534 thumb_func_start sub_80BB774 sub_80BB774: @ 80BB774 push {lr} bl RunTasks bl AnimateSprites bl BuildOamBuffer bl UpdatePaletteFade pop {r0} bx r0 thumb_func_end sub_80BB774 thumb_func_start sub_80BB78C sub_80BB78C: @ 80BB78C push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 ldr r0, =gUnknown_02039B4C ldr r1, [r0] ldr r0, =0x0000064c adds r1, r0 ldrb r2, [r1] movs r0, 0x2 negs r0, r0 ands r0, r2 strb r0, [r1] movs r0, 0 bl sub_80BC514 lsls r0, 24 cmp r0, 0 beq _080BB7BE ldr r0, =gTasks lsls r1, r4, 2 adds r1, r4 lsls r1, 3 adds r1, r0 ldr r0, =sub_80BB7D4 str r0, [r1] _080BB7BE: pop {r4} pop {r0} bx r0 .pool thumb_func_end sub_80BB78C thumb_func_start sub_80BB7D4 sub_80BB7D4: @ 80BB7D4 push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} sub sp, 0x4 lsls r0, 24 lsrs r6, r0, 24 ldr r7, =gUnknown_02039B4C ldr r0, [r7] ldr r4, =0x00000652 adds r0, r4 ldrh r1, [r0] movs r0, 0x12 bl SetGpuReg ldr r3, [r7] adds r1, r3, r4 ldrh r0, [r1] movs r4, 0 ldrsh r2, [r1, r4] mov r8, r2 cmp r2, 0 beq _080BB810 subs r0, 0x8 strh r0, [r1] b _080BBA06 .pool _080BB810: ldr r2, =gMain ldrh r1, [r2, 0x2E] movs r0, 0x1 mov r9, r0 ands r0, r1 cmp r0, 0 beq _080BB8A4 ldr r1, =0x0000060e adds r0, r3, r1 ldrh r0, [r0] lsls r0, 2 adds r0, r3, r0 ldrb r0, [r0, 0x2] lsls r0, 31 cmp r0, 0 beq _080BB8A4 bl sub_80BD8D0 ldr r4, =gSprites ldr r0, [r7] ldr r5, =0x00000626 adds r0, r5 ldrh r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r4 ldrb r1, [r0, 0x5] lsrs r1, 4 adds r1, 0x10 mov r0, r9 lsls r0, r1 mvns r0, r0 mov r2, r8 str r2, [sp] movs r1, 0 movs r2, 0 movs r3, 0x10 bl BeginNormalPaletteFade ldr r0, [r7] adds r0, r5 ldrh r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r4, 0x1C adds r0, r4 ldr r1, =sub_80BE470 str r1, [r0] ldr r1, =gTasks lsls r0, r6, 2 adds r0, r6 lsls r0, 3 adds r0, r1 ldr r1, =sub_80BBBF4 str r1, [r0] movs r0, 0x15 b _080BB976 .pool _080BB8A4: ldrh r2, [r2, 0x2E] movs r0, 0x8 ands r0, r2 lsls r0, 16 lsrs r4, r0, 16 cmp r4, 0 beq _080BB8FC ldr r3, =gUnknown_02039B4C ldr r1, [r3] ldr r4, =0x00000652 adds r0, r1, r4 movs r2, 0 strh r2, [r0] ldr r0, =0x0000064f adds r1, r0 movs r0, 0x1 strb r0, [r1] ldr r0, [r3] movs r1, 0xCA lsls r1, 3 adds r0, r1 strh r2, [r0] ldr r1, =gTasks lsls r0, r6, 2 adds r0, r6 lsls r0, 3 adds r0, r1 ldr r1, =sub_80BBA78 str r1, [r0] movs r0, 0x5 bl PlaySE b _080BBA06 .pool _080BB8FC: movs r0, 0x4 ands r0, r2 lsls r0, 16 lsrs r1, r0, 16 cmp r1, 0 beq _080BB9A0 movs r0, 0x5 bl PlaySE movs r0, 0x1 negs r0, r0 str r4, [sp] movs r1, 0 movs r2, 0 movs r3, 0x10 bl BeginNormalPaletteFade bl sub_80C1258 ldr r1, =gTasks lsls r3, r6, 2 adds r3, r6 lsls r3, 3 adds r3, r1 lsls r0, 24 lsrs r0, 24 movs r2, 0 strh r0, [r3, 0x8] ldr r1, =gUnknown_02039B4C ldr r0, [r1] ldr r4, =0x0000064e adds r0, r4 strb r2, [r0] ldr r0, [r1] ldr r2, =0x0000062c adds r1, r0, r2 ldrb r2, [r1] subs r4, 0x24 adds r1, r0, r4 strh r2, [r1] ldr r2, =0x0000060e adds r1, r0, r2 ldrh r2, [r1] subs r4, 0x1A adds r1, r0, r4 strh r2, [r1] ldr r2, =0x00000612 adds r1, r0, r2 ldrh r2, [r1] adds r4, 0x4 adds r1, r0, r4 strh r2, [r1] ldr r2, =0x00000616 adds r1, r0, r2 ldrh r1, [r1] adds r4, 0x4 adds r0, r4 strh r1, [r0] ldr r0, =sub_80BBD1C str r0, [r3] movs r0, 0x2 _080BB976: bl PlaySE bl sub_80BC890 b _080BBA06 .pool _080BB9A0: movs r0, 0x2 ands r0, r2 cmp r0, 0 beq _080BB9D8 movs r0, 0x1 negs r0, r0 str r1, [sp] movs r1, 0 movs r2, 0 movs r3, 0x10 bl BeginNormalPaletteFade ldr r1, =gTasks lsls r0, r6, 2 adds r0, r6 lsls r0, 3 adds r0, r1 ldr r1, =sub_80BBDE8 str r1, [r0] movs r0, 0x3 bl PlaySE b _080BBA06 .pool _080BB9D8: ldr r5, =gUnknown_02039B4C ldr r0, [r5] ldr r4, =0x0000060e adds r0, r4 ldrh r0, [r0] movs r1, 0xE bl sub_80BD69C ldr r1, [r5] adds r4, r1, r4 strh r0, [r4] ldr r0, =0x0000062e adds r1, r0 ldrb r0, [r1] cmp r0, 0 beq _080BBA06 ldr r0, =gTasks lsls r1, r6, 2 adds r1, r6 lsls r1, 3 adds r1, r0 ldr r0, =sub_80BBA28 str r0, [r1] _080BBA06: add sp, 0x4 pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_80BB7D4 thumb_func_start sub_80BBA28 sub_80BBA28: @ 80BBA28 push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 ldr r0, =gUnknown_02039B4C ldr r2, [r0] ldr r1, =0x0000062f adds r0, r2, r1 ldrb r0, [r0] ldr r3, =0x00000634 adds r1, r2, r3 ldrb r1, [r1] adds r3, 0x2 adds r2, r3 ldrb r2, [r2] bl sub_80BD404 lsls r0, 24 cmp r0, 0 beq _080BBA5C ldr r0, =gTasks lsls r1, r4, 2 adds r1, r4 lsls r1, 3 adds r1, r0 ldr r0, =sub_80BB7D4 str r0, [r1] _080BBA5C: pop {r4} pop {r0} bx r0 .pool thumb_func_end sub_80BBA28 thumb_func_start sub_80BBA78 sub_80BBA78: @ 80BBA78 push {r4-r7,lr} sub sp, 0x4 lsls r0, 24 lsrs r7, r0, 24 ldr r6, =gUnknown_02039B4C ldr r0, [r6] ldr r4, =0x00000652 adds r0, r4 ldrh r1, [r0] movs r0, 0x12 bl SetGpuReg ldr r3, [r6] adds r1, r3, r4 ldrh r2, [r1] movs r4, 0 ldrsh r0, [r1, r4] cmp r0, 0x50 beq _080BBAB0 adds r0, r2, 0 adds r0, 0x8 strh r0, [r1] b _080BBBE8 .pool _080BBAB0: ldr r5, =gMain ldrh r1, [r5, 0x2E] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _080BBB58 movs r2, 0xCA lsls r2, 3 adds r0, r3, r2 ldrh r0, [r0] cmp r0, 0x1 beq _080BBADC cmp r0, 0x1 ble _080BBB20 cmp r0, 0x2 beq _080BBAF4 cmp r0, 0x3 beq _080BBB34 b _080BBB20 .pool _080BBADC: ldr r4, =0x0000060e adds r1, r3, r4 movs r0, 0 strh r0, [r1] ldr r0, =0x0000062c adds r1, r3, r0 movs r0, 0x40 b _080BBB0C .pool _080BBAF4: ldr r1, =0x0000060c adds r2, r3, r1 ldrh r0, [r2] subs r0, 0x1 ldr r4, =0x0000060e adds r1, r3, r4 strh r0, [r1] ldrh r0, [r2] lsls r0, 4 adds r0, 0x30 ldr r2, =0x0000062c adds r1, r3, r2 _080BBB0C: strb r0, [r1] bl sub_80BDA40 ldr r0, [r6] adds r0, r4 ldrh r0, [r0] movs r1, 0xE bl sub_80BD2B4 ldrh r1, [r5, 0x2E] _080BBB20: movs r0, 0x8 orrs r0, r1 strh r0, [r5, 0x2E] b _080BBB58 .pool _080BBB34: movs r0, 0x1 negs r0, r0 movs r1, 0 str r1, [sp] movs r2, 0 movs r3, 0x10 bl BeginNormalPaletteFade ldr r1, =gTasks lsls r0, r7, 2 adds r0, r7 lsls r0, 3 adds r0, r1 ldr r1, =sub_80BBDE8 str r1, [r0] movs r0, 0x3 bl PlaySE _080BBB58: ldr r2, =gMain ldrh r1, [r2, 0x2E] movs r0, 0xA ands r0, r1 cmp r0, 0 beq _080BBB98 ldr r0, =gUnknown_02039B4C ldr r0, [r0] ldr r3, =0x0000064f adds r0, r3 movs r1, 0 strb r1, [r0] ldr r1, =gTasks lsls r0, r7, 2 adds r0, r7 lsls r0, 3 adds r0, r1 ldr r1, =sub_80BB7D4 str r1, [r0] b _080BBBB6 .pool _080BBB98: ldrh r1, [r2, 0x30] movs r0, 0x40 ands r0, r1 cmp r0, 0 beq _080BBBC4 ldr r0, =gUnknown_02039B4C ldr r0, [r0] movs r4, 0xCA lsls r4, 3 adds r1, r0, r4 ldrh r0, [r1] cmp r0, 0 beq _080BBBC4 subs r0, 0x1 strh r0, [r1] _080BBBB6: movs r0, 0x5 bl PlaySE b _080BBBE8 .pool _080BBBC4: ldrh r1, [r2, 0x30] movs r0, 0x80 ands r0, r1 cmp r0, 0 beq _080BBBE8 ldr r0, =gUnknown_02039B4C ldr r0, [r0] movs r2, 0xCA lsls r2, 3 adds r1, r0, r2 ldrh r0, [r1] cmp r0, 0x2 bhi _080BBBE8 adds r0, 0x1 strh r0, [r1] movs r0, 0x5 bl PlaySE _080BBBE8: add sp, 0x4 pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_80BBA78 thumb_func_start sub_80BBBF4 sub_80BBBF4: @ 80BBBF4 push {r4-r6,lr} lsls r0, 24 lsrs r4, r0, 24 ldr r2, =gSprites ldr r5, =gUnknown_02039B4C ldr r3, [r5] ldr r6, =0x00000626 adds r0, r3, r6 ldrh r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r1, r0, r2 movs r2, 0x20 ldrsh r0, [r1, r2] cmp r0, 0x30 bne _080BBC52 movs r2, 0x22 ldrsh r0, [r1, r2] cmp r0, 0x38 bne _080BBC52 ldr r1, =0x0000064a adds r0, r3, r1 ldrb r1, [r0] ldr r2, =0x0000064b adds r0, r3, r2 strb r1, [r0] ldr r1, [r5] subs r2, 0x3D adds r0, r1, r2 ldrh r0, [r0] lsls r0, 2 adds r0, r1, r0 adds r1, r6 ldrb r1, [r1] bl sub_80BE91C ldr r2, =gTasks lsls r1, r4, 2 adds r1, r4 lsls r1, 3 adds r1, r2 lsls r0, 24 lsrs r0, 24 strh r0, [r1, 0x8] ldr r0, =sub_80BBC74 str r0, [r1] _080BBC52: pop {r4-r6} pop {r0} bx r0 .pool thumb_func_end sub_80BBBF4 thumb_func_start sub_80BBC74 sub_80BBC74: @ 80BBC74 push {r4,r5,lr} lsls r0, 24 lsrs r0, 24 ldr r2, =gTasks lsls r1, r0, 2 adds r1, r0 lsls r1, 3 adds r4, r1, r2 movs r0, 0x8 ldrsh r1, [r4, r0] lsls r0, r1, 2 adds r0, r1 lsls r0, 3 adds r0, r2 ldrb r0, [r0, 0x4] cmp r0, 0 beq _080BBCE0 ldr r5, =gUnknown_02039B4C ldr r0, [r5] ldr r1, =0x0000064a adds r0, r1 ldrb r0, [r0] cmp r0, 0x1 bne _080BBCFC ldrb r0, [r4, 0x8] bl sub_80BE9C4 lsls r0, 24 cmp r0, 0 bne _080BBCFC bl sub_80BD930 lsls r0, 24 cmp r0, 0 beq _080BBCFC ldr r0, [r5] ldr r2, =0x0000060e adds r1, r0, r2 ldrh r1, [r1] lsls r1, 2 adds r0, r1 ldrb r1, [r4, 0x8] bl sub_80BE9F8 b _080BBCFC .pool _080BBCE0: ldr r2, =gUnknown_02039B50 ldr r0, =gUnknown_02039B4C ldr r1, [r0] ldr r3, =0x0000060e adds r0, r1, r3 ldrh r0, [r0] strh r0, [r2] ldr r2, =gUnknown_02039B52 ldr r0, =0x0000062c adds r1, r0 ldrb r0, [r1] strb r0, [r2] ldr r0, =sub_80BB78C str r0, [r4] _080BBCFC: pop {r4,r5} pop {r0} bx r0 .pool thumb_func_end sub_80BBC74 thumb_func_start sub_80BBD1C sub_80BBD1C: @ 80BBD1C push {r4-r6,lr} lsls r0, 24 lsrs r0, 24 ldr r2, =gTasks lsls r1, r0, 2 adds r1, r0 lsls r1, 3 adds r6, r1, r2 movs r0, 0x8 ldrsh r1, [r6, r0] lsls r0, r1, 2 adds r0, r1 lsls r0, 3 adds r0, r2 ldrb r4, [r0, 0x4] cmp r4, 0 bne _080BBDCA bl sub_80BDA40 ldr r5, =gUnknown_02039B4C ldr r2, [r5] ldr r1, =0x0000064e adds r0, r2, r1 ldrb r0, [r0] cmp r0, 0 beq _080BBD7C ldr r3, =0x0000060e adds r0, r2, r3 strh r4, [r0] ldr r0, =0x0000062c adds r1, r2, r0 movs r0, 0x40 strb r0, [r1] ldr r0, =sub_80BBE70 b _080BBDC8 .pool _080BBD7C: ldr r1, =0x0000062a adds r0, r2, r1 ldrh r1, [r0] ldr r3, =0x0000062c adds r0, r2, r3 strb r1, [r0] ldr r1, [r5] movs r2, 0xC2 lsls r2, 3 adds r0, r1, r2 ldrh r2, [r0] subs r3, 0x1E adds r0, r1, r3 strh r2, [r0] ldr r2, =0x00000614 adds r0, r1, r2 ldrh r0, [r0] adds r3, 0x4 adds r1, r3 strh r0, [r1] bl IsNationalPokedexEnabled adds r1, r0, 0 cmp r1, 0 bne _080BBDB6 ldr r0, [r5] ldr r2, =0x00000612 adds r0, r2 strh r1, [r0] _080BBDB6: ldr r0, [r5] movs r3, 0xC3 lsls r3, 3 adds r1, r0, r3 ldrh r1, [r1] ldr r2, =0x00000616 adds r0, r2 strh r1, [r0] ldr r0, =sub_80BB78C _080BBDC8: str r0, [r6] _080BBDCA: pop {r4-r6} pop {r0} bx r0 .pool thumb_func_end sub_80BBD1C thumb_func_start sub_80BBDE8 sub_80BBDE8: @ 80BBDE8 push {r4-r6,lr} lsls r0, 24 lsrs r6, r0, 24 ldr r0, =gPaletteFade ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 bne _080BBE4A ldr r4, =gSaveBlock2Ptr ldr r0, [r4] ldr r5, =gUnknown_02039B4C ldr r1, [r5] ldr r2, =0x00000612 adds r1, r2 ldrh r1, [r1] strb r1, [r0, 0x19] bl IsNationalPokedexEnabled adds r1, r0, 0 cmp r1, 0 bne _080BBE18 ldr r0, [r4] strb r1, [r0, 0x19] _080BBE18: ldr r1, [r4] ldr r0, [r5] ldr r2, =0x00000616 adds r0, r2 ldrh r0, [r0] strb r0, [r1, 0x18] bl sub_80BDA40 bl sub_80BC890 adds r0, r6, 0 bl DestroyTask ldr r0, =CB2_ReturnToFieldWithOpenMenu bl SetMainCallback2 ldr r0, =gMPlayInfo_BGM ldr r1, =0x0000ffff movs r2, 0x80 lsls r2, 1 bl m4aMPlayVolumeControl ldr r0, [r5] bl Free _080BBE4A: pop {r4-r6} pop {r0} bx r0 .pool thumb_func_end sub_80BBDE8 thumb_func_start sub_80BBE70 sub_80BBE70: @ 80BBE70 push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 ldr r0, =gUnknown_02039B4C ldr r1, [r0] ldr r0, =0x0000064c adds r1, r0 ldrb r0, [r1] movs r2, 0x1 orrs r0, r2 strb r0, [r1] movs r0, 0x3 bl sub_80BC514 lsls r0, 24 cmp r0, 0 beq _080BBEA0 ldr r0, =gTasks lsls r1, r4, 2 adds r1, r4 lsls r1, 3 adds r1, r0 ldr r0, =sub_80BBEB8 str r0, [r1] _080BBEA0: pop {r4} pop {r0} bx r0 .pool thumb_func_end sub_80BBE70 thumb_func_start sub_80BBEB8 sub_80BBEB8: @ 80BBEB8 push {r4-r7,lr} sub sp, 0x4 lsls r0, 24 lsrs r6, r0, 24 ldr r5, =gUnknown_02039B4C ldr r0, [r5] ldr r4, =0x00000652 adds r0, r4 ldrh r1, [r0] movs r0, 0x12 bl SetGpuReg ldr r3, [r5] adds r1, r3, r4 ldrh r0, [r1] movs r2, 0 ldrsh r4, [r1, r2] cmp r4, 0 beq _080BBEEC subs r0, 0x8 strh r0, [r1] b _080BC08A .pool _080BBEEC: ldr r2, =gMain ldrh r1, [r2, 0x2E] movs r7, 0x1 adds r0, r7, 0 ands r0, r1 cmp r0, 0 beq _080BBF70 ldr r1, =0x0000060e adds r0, r3, r1 ldrh r0, [r0] lsls r0, 2 adds r0, r3, r0 ldrb r0, [r0, 0x2] lsls r0, 31 cmp r0, 0 beq _080BBF70 bl sub_80BD8D0 ldr r3, =gSprites ldr r0, [r5] ldr r2, =0x00000626 adds r0, r2 ldrh r0, [r0] lsls r2, r0, 4 adds r2, r0 lsls r2, 2 adds r0, r2, r3 ldrb r1, [r0, 0x5] lsrs r1, 4 adds r1, 0x10 adds r0, r7, 0 lsls r0, r1 adds r3, 0x1C adds r2, r3 ldr r1, =sub_80BE470 str r1, [r2] mvns r0, r0 str r4, [sp] movs r1, 0 movs r2, 0 movs r3, 0x10 bl BeginNormalPaletteFade ldr r1, =gTasks lsls r0, r6, 2 adds r0, r6 lsls r0, 3 adds r0, r1 ldr r1, =sub_80BC2D4 str r1, [r0] movs r0, 0x15 b _080BC00A .pool _080BBF70: ldrh r2, [r2, 0x2E] movs r0, 0x8 ands r0, r2 lsls r0, 16 lsrs r1, r0, 16 cmp r1, 0 beq _080BBFC8 ldr r3, =gUnknown_02039B4C ldr r1, [r3] ldr r2, =0x00000652 adds r0, r1, r2 movs r2, 0 strh r2, [r0] ldr r0, =0x0000064f adds r1, r0 movs r0, 0x1 strb r0, [r1] ldr r0, [r3] movs r1, 0xCA lsls r1, 3 adds r0, r1 strh r2, [r0] ldr r1, =gTasks lsls r0, r6, 2 adds r0, r6 lsls r0, 3 adds r0, r1 ldr r1, =sub_80BC0F8 str r1, [r0] movs r0, 0x5 bl PlaySE b _080BC08A .pool _080BBFC8: movs r0, 0x4 ands r0, r2 lsls r0, 16 lsrs r3, r0, 16 cmp r3, 0 beq _080BC024 movs r0, 0x1 negs r0, r0 str r1, [sp] movs r1, 0 movs r2, 0 movs r3, 0x10 bl BeginNormalPaletteFade bl sub_80C1258 ldr r2, =gTasks lsls r1, r6, 2 adds r1, r6 lsls r1, 3 adds r1, r2 lsls r0, 24 lsrs r0, 24 movs r2, 0 strh r0, [r1, 0x8] ldr r0, =gUnknown_02039B4C ldr r0, [r0] ldr r3, =0x0000064e adds r0, r3 strb r2, [r0] ldr r0, =sub_80BBD1C str r0, [r1] movs r0, 0x2 _080BC00A: bl PlaySE bl sub_80BC890 b _080BC08A .pool _080BC024: movs r0, 0x2 ands r0, r2 cmp r0, 0 beq _080BC05C movs r0, 0x1 negs r0, r0 str r3, [sp] movs r1, 0 movs r2, 0 movs r3, 0x10 bl BeginNormalPaletteFade ldr r1, =gTasks lsls r0, r6, 2 adds r0, r6 lsls r0, 3 adds r0, r1 ldr r1, =sub_80BC3DC str r1, [r0] movs r0, 0x3 bl PlaySE b _080BC08A .pool _080BC05C: ldr r5, =gUnknown_02039B4C ldr r0, [r5] ldr r4, =0x0000060e adds r0, r4 ldrh r0, [r0] movs r1, 0xE bl sub_80BD69C ldr r1, [r5] adds r4, r1, r4 strh r0, [r4] ldr r0, =0x0000062e adds r1, r0 ldrb r0, [r1] cmp r0, 0 beq _080BC08A ldr r0, =gTasks lsls r1, r6, 2 adds r1, r6 lsls r1, 3 adds r1, r0 ldr r0, =sub_80BC0A8 str r0, [r1] _080BC08A: add sp, 0x4 pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_80BBEB8 thumb_func_start sub_80BC0A8 sub_80BC0A8: @ 80BC0A8 push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 ldr r0, =gUnknown_02039B4C ldr r2, [r0] ldr r1, =0x0000062f adds r0, r2, r1 ldrb r0, [r0] ldr r3, =0x00000634 adds r1, r2, r3 ldrb r1, [r1] adds r3, 0x2 adds r2, r3 ldrb r2, [r2] bl sub_80BD404 lsls r0, 24 cmp r0, 0 beq _080BC0DC ldr r0, =gTasks lsls r1, r4, 2 adds r1, r4 lsls r1, 3 adds r1, r0 ldr r0, =sub_80BBEB8 str r0, [r1] _080BC0DC: pop {r4} pop {r0} bx r0 .pool thumb_func_end sub_80BC0A8 thumb_func_start sub_80BC0F8 sub_80BC0F8: @ 80BC0F8 push {r4-r6,lr} sub sp, 0x4 lsls r0, 24 lsrs r6, r0, 24 ldr r5, =gUnknown_02039B4C ldr r0, [r5] ldr r4, =0x00000652 adds r0, r4 ldrh r1, [r0] movs r0, 0x12 bl SetGpuReg ldr r5, [r5] adds r1, r5, r4 ldrh r2, [r1] movs r3, 0 ldrsh r0, [r1, r3] cmp r0, 0x60 beq _080BC130 adds r0, r2, 0 adds r0, 0x8 strh r0, [r1] b _080BC2C8 .pool _080BC130: ldr r0, =gMain ldrh r1, [r0, 0x2E] movs r0, 0x1 ands r0, r1 cmp r0, 0 bne _080BC13E b _080BC238 _080BC13E: movs r1, 0xCA lsls r1, 3 adds r0, r5, r1 ldrh r0, [r0] cmp r0, 0x4 bhi _080BC1C2 lsls r0, 2 ldr r1, =_080BC15C adds r0, r1 ldr r0, [r0] mov pc, r0 .pool .align 2, 0 _080BC15C: .4byte _080BC1C2 .4byte _080BC170 .4byte _080BC194 .4byte _080BC1E4 .4byte _080BC214 _080BC170: ldr r5, =gUnknown_02039B4C ldr r1, [r5] ldr r4, =0x0000060e adds r2, r1, r4 movs r0, 0 strh r0, [r2] ldr r2, =0x0000062c adds r1, r2 movs r0, 0x40 strb r0, [r1] b _080BC1B2 .pool _080BC194: ldr r5, =gUnknown_02039B4C ldr r2, [r5] ldr r0, =0x0000060c adds r3, r2, r0 ldrh r0, [r3] subs r0, 0x1 ldr r4, =0x0000060e adds r1, r2, r4 strh r0, [r1] ldrh r0, [r3] lsls r0, 4 adds r0, 0x30 ldr r1, =0x0000062c adds r2, r1 strb r0, [r2] _080BC1B2: bl sub_80BDA40 ldr r0, [r5] adds r0, r4 ldrh r0, [r0] movs r1, 0xE bl sub_80BD2B4 _080BC1C2: ldr r2, =gMain ldrh r1, [r2, 0x2E] movs r0, 0x8 orrs r0, r1 strh r0, [r2, 0x2E] b _080BC238 .pool _080BC1E4: movs r0, 0x1 negs r0, r0 movs r1, 0 str r1, [sp] movs r2, 0 movs r3, 0x10 bl BeginNormalPaletteFade ldr r1, =gTasks lsls r0, r6, 2 adds r0, r6 lsls r0, 3 adds r0, r1 ldr r1, =sub_80BC3DC str r1, [r0] movs r0, 0x34 bl PlaySE b _080BC238 .pool _080BC214: movs r0, 0x1 negs r0, r0 movs r1, 0 str r1, [sp] movs r2, 0 movs r3, 0x10 bl BeginNormalPaletteFade ldr r1, =gTasks lsls r0, r6, 2 adds r0, r6 lsls r0, 3 adds r0, r1 ldr r1, =sub_80BC47C str r1, [r0] movs r0, 0x3 bl PlaySE _080BC238: ldr r2, =gMain ldrh r1, [r2, 0x2E] movs r0, 0xA ands r0, r1 cmp r0, 0 beq _080BC278 ldr r0, =gUnknown_02039B4C ldr r0, [r0] ldr r2, =0x0000064f adds r0, r2 movs r1, 0 strb r1, [r0] ldr r1, =gTasks lsls r0, r6, 2 adds r0, r6 lsls r0, 3 adds r0, r1 ldr r1, =sub_80BBEB8 str r1, [r0] b _080BC296 .pool _080BC278: ldrh r1, [r2, 0x30] movs r0, 0x40 ands r0, r1 cmp r0, 0 beq _080BC2A4 ldr r0, =gUnknown_02039B4C ldr r0, [r0] movs r3, 0xCA lsls r3, 3 adds r1, r0, r3 ldrh r0, [r1] cmp r0, 0 beq _080BC2A4 subs r0, 0x1 strh r0, [r1] _080BC296: movs r0, 0x5 bl PlaySE b _080BC2C8 .pool _080BC2A4: ldrh r1, [r2, 0x30] movs r0, 0x80 ands r0, r1 cmp r0, 0 beq _080BC2C8 ldr r0, =gUnknown_02039B4C ldr r0, [r0] movs r2, 0xCA lsls r2, 3 adds r1, r0, r2 ldrh r0, [r1] cmp r0, 0x3 bhi _080BC2C8 adds r0, 0x1 strh r0, [r1] movs r0, 0x5 bl PlaySE _080BC2C8: add sp, 0x4 pop {r4-r6} pop {r0} bx r0 .pool thumb_func_end sub_80BC0F8 thumb_func_start sub_80BC2D4 sub_80BC2D4: @ 80BC2D4 push {r4-r6,lr} lsls r0, 24 lsrs r6, r0, 24 ldr r2, =gSprites ldr r5, =gUnknown_02039B4C ldr r3, [r5] ldr r4, =0x00000626 adds r0, r3, r4 ldrh r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r1, r0, r2 movs r2, 0x20 ldrsh r0, [r1, r2] cmp r0, 0x30 bne _080BC33A movs r2, 0x22 ldrsh r0, [r1, r2] cmp r0, 0x38 bne _080BC33A ldr r1, =0x0000064a adds r0, r3, r1 ldrb r1, [r0] ldr r2, =0x0000064b adds r0, r3, r2 strb r1, [r0] ldr r1, [r5] subs r2, 0x3D adds r0, r1, r2 ldrh r0, [r0] lsls r0, 2 adds r0, r1, r0 adds r1, r4 ldrb r1, [r1] bl sub_80BE91C ldr r2, =gTasks lsls r1, r6, 2 adds r1, r6 lsls r1, 3 adds r1, r2 lsls r0, 24 lsrs r0, 24 strh r0, [r1, 0x8] ldr r0, [r5] adds r0, r4 ldr r2, =0x0000ffff strh r2, [r0] ldr r0, =sub_80BC360 str r0, [r1] _080BC33A: pop {r4-r6} pop {r0} bx r0 .pool thumb_func_end sub_80BC2D4 thumb_func_start sub_80BC360 sub_80BC360: @ 80BC360 push {r4,r5,lr} lsls r0, 24 lsrs r0, 24 ldr r2, =gTasks lsls r1, r0, 2 adds r1, r0 lsls r1, 3 adds r4, r1, r2 movs r0, 0x8 ldrsh r1, [r4, r0] lsls r0, r1, 2 adds r0, r1 lsls r0, 3 adds r0, r2 ldrb r0, [r0, 0x4] cmp r0, 0 beq _080BC3CC ldr r5, =gUnknown_02039B4C ldr r0, [r5] ldr r1, =0x0000064a adds r0, r1 ldrb r0, [r0] cmp r0, 0x1 bne _080BC3D0 ldrb r0, [r4, 0x8] bl sub_80BE9C4 lsls r0, 24 cmp r0, 0 bne _080BC3D0 bl sub_80BD930 lsls r0, 24 cmp r0, 0 beq _080BC3D0 ldr r0, [r5] ldr r2, =0x0000060e adds r1, r0, r2 ldrh r1, [r1] lsls r1, 2 adds r0, r1 ldrb r1, [r4, 0x8] bl sub_80BE9F8 b _080BC3D0 .pool _080BC3CC: ldr r0, =sub_80BBE70 str r0, [r4] _080BC3D0: pop {r4,r5} pop {r0} bx r0 .pool thumb_func_end sub_80BC360 thumb_func_start sub_80BC3DC sub_80BC3DC: @ 80BC3DC push {r4,r5,lr} lsls r0, 24 lsrs r5, r0, 24 ldr r0, =gPaletteFade ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 bne _080BC450 ldr r4, =gUnknown_02039B4C ldr r0, [r4] ldr r2, =0x0000062a adds r1, r0, r2 ldrh r1, [r1] ldr r3, =0x0000062c adds r0, r3 strb r1, [r0] ldr r1, [r4] subs r2, 0x1A adds r0, r1, r2 ldrh r2, [r0] subs r3, 0x1E adds r0, r1, r3 strh r2, [r0] ldr r2, =0x00000614 adds r0, r1, r2 ldrh r0, [r0] adds r3, 0x4 adds r1, r3 strh r0, [r1] bl IsNationalPokedexEnabled adds r1, r0, 0 cmp r1, 0 bne _080BC42A ldr r0, [r4] ldr r2, =0x00000612 adds r0, r2 strh r1, [r0] _080BC42A: ldr r0, [r4] movs r3, 0xC3 lsls r3, 3 adds r1, r0, r3 ldrh r1, [r1] ldr r2, =0x00000616 adds r0, r2 strh r1, [r0] ldr r1, =gTasks lsls r0, r5, 2 adds r0, r5 lsls r0, 3 adds r0, r1 ldr r1, =sub_80BB78C str r1, [r0] bl sub_80BDA40 bl sub_80BC890 _080BC450: pop {r4,r5} pop {r0} bx r0 .pool thumb_func_end sub_80BC3DC thumb_func_start sub_80BC47C sub_80BC47C: @ 80BC47C push {r4,r5,lr} lsls r0, 24 lsrs r5, r0, 24 ldr r0, =gPaletteFade ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 bne _080BC4E8 ldr r4, =gUnknown_02039B4C ldr r0, [r4] ldr r2, =0x0000062a adds r1, r0, r2 ldrh r1, [r1] ldr r3, =0x0000062c adds r0, r3 strb r1, [r0] ldr r1, [r4] subs r2, 0x1A adds r0, r1, r2 ldrh r2, [r0] subs r3, 0x1E adds r0, r1, r3 strh r2, [r0] ldr r2, =0x00000614 adds r0, r1, r2 ldrh r0, [r0] adds r3, 0x4 adds r1, r3 strh r0, [r1] bl IsNationalPokedexEnabled adds r1, r0, 0 cmp r1, 0 bne _080BC4CA ldr r0, [r4] ldr r2, =0x00000612 adds r0, r2 strh r1, [r0] _080BC4CA: ldr r0, [r4] movs r3, 0xC3 lsls r3, 3 adds r1, r0, r3 ldrh r1, [r1] ldr r2, =0x00000616 adds r0, r2 strh r1, [r0] ldr r1, =gTasks lsls r0, r5, 2 adds r0, r5 lsls r0, 3 adds r0, r1 ldr r1, =sub_80BBDE8 str r1, [r0] _080BC4E8: pop {r4,r5} pop {r0} bx r0 .pool thumb_func_end sub_80BC47C thumb_func_start sub_80BC514 sub_80BC514: @ 80BC514 push {r4-r6,lr} sub sp, 0x4 lsls r0, 24 lsrs r5, r0, 24 ldr r1, =gMain movs r2, 0x87 lsls r2, 3 adds r0, r1, r2 ldrb r0, [r0] adds r3, r1, 0 cmp r0, 0x6 bhi _080BC55C lsls r0, 2 ldr r1, =_080BC540 adds r0, r1 ldr r0, [r0] mov pc, r0 .pool .align 2, 0 _080BC540: .4byte _080BC55C .4byte _080BC6CC .4byte _080BC6FC .4byte _080BC704 .4byte _080BC768 .4byte _080BC790 .4byte _080BC818 _080BC55C: ldr r0, =gPaletteFade ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 lsls r0, 24 lsrs r6, r0, 24 cmp r6, 0 beq _080BC56E b _080BC838 _080BC56E: movs r0, 0 bl SetVBlankCallback ldr r4, =gUnknown_02039B4C ldr r0, [r4] ldr r1, =0x0000064a adds r0, r1 strb r5, [r0] movs r0, 0 bl sub_80C09B0 ldr r0, [r4] ldr r2, =0x0000062d adds r0, r2 ldrb r1, [r0] movs r0, 0x1A bl SetGpuReg movs r0, 0 bl ResetBgsAndClearDma3BusyFlags ldr r1, =gBgTemplates_0855D298 movs r0, 0 movs r2, 0x4 bl InitBgsFromTemplates movs r4, 0x80 lsls r4, 4 adds r0, r4, 0 bl AllocZeroed adds r1, r0, 0 movs r0, 0x3 bl SetBgTilemapBuffer adds r0, r4, 0 bl AllocZeroed adds r1, r0, 0 movs r0, 0x2 bl SetBgTilemapBuffer adds r0, r4, 0 bl AllocZeroed adds r1, r0, 0 movs r0, 0x1 bl SetBgTilemapBuffer adds r0, r4, 0 bl AllocZeroed adds r1, r0, 0 movs r0, 0 bl SetBgTilemapBuffer ldr r1, =gPokedexMenu_Gfx movs r2, 0x80 lsls r2, 6 str r6, [sp] movs r0, 0x3 movs r3, 0 bl copy_decompressed_tile_data_to_vram_autofree ldr r1, =gUnknown_08DC2C5C movs r0, 0x1 movs r2, 0 movs r3, 0 bl CopyToBgTilemapBuffer ldr r1, =gUnknown_08DC2DAC movs r0, 0x3 movs r2, 0 movs r3, 0 bl CopyToBgTilemapBuffer cmp r5, 0 bne _080BC640 ldr r1, =gUnknown_08DC2A08 movs r3, 0xA0 lsls r3, 2 movs r0, 0 movs r2, 0 bl CopyToBgTilemapBuffer b _080BC64E .pool _080BC640: ldr r1, =gUnknown_08DC2B1C movs r3, 0xA0 lsls r3, 2 movs r0, 0 movs r2, 0 bl CopyToBgTilemapBuffer _080BC64E: bl ResetPaletteFade cmp r5, 0 bne _080BC674 ldr r3, =gUnknown_02039B4C ldr r1, [r3] ldr r0, =0x0000064c adds r1, r0 ldrb r2, [r1] movs r0, 0x2 negs r0, r0 ands r0, r2 b _080BC682 .pool _080BC674: ldr r3, =gUnknown_02039B4C ldr r1, [r3] ldr r2, =0x0000064c adds r1, r2 ldrb r0, [r1] movs r2, 0x1 orrs r0, r2 _080BC682: strb r0, [r1] ldr r0, [r3] ldr r1, =0x0000064c adds r0, r1 ldrb r0, [r0] lsls r0, 31 lsrs r0, 31 bl sub_80BC844 ldr r0, =sWindowTemplates_0855D2A8 bl InitWindows bl DeactivateAllTextPrinters movs r0, 0 bl PutWindowTilemap movs r0, 0 movs r1, 0x3 bl CopyWindowToVram ldr r0, =gMain movs r2, 0x87 lsls r2, 3 adds r0, r2 movs r1, 0x1 strb r1, [r0] b _080BC838 .pool _080BC6CC: bl ResetSpriteData bl FreeAllSpritePalettes ldr r1, =gReservedSpritePaletteCount movs r0, 0x8 strb r0, [r1] ldr r0, =gSpriteSheets_0855D26C bl LoadCompressedObjectPic ldr r0, =gSpritePalettes_0855D26C bl LoadSpritePalettes adds r0, r5, 0 bl sub_80BDB7C b _080BC7F8 .pool _080BC6FC: movs r2, 0x87 lsls r2, 3 adds r1, r3, r2 b _080BC800 _080BC704: cmp r5, 0 bne _080BC71C ldr r0, =gUnknown_02039B4C ldr r1, [r0] ldr r2, =0x00000612 adds r0, r1, r2 ldrb r0, [r0] adds r2, 0x4 adds r1, r2 ldrb r1, [r1] bl sub_80BC8D4 _080BC71C: ldr r4, =gUnknown_02039B4C ldr r0, [r4] ldr r1, =0x0000060e adds r0, r1 ldrh r0, [r0] movs r1, 0xE bl sub_80BD2B4 ldr r0, [r4] ldr r2, =0x0000064f adds r0, r2 movs r1, 0 strb r1, [r0] ldr r0, [r4] adds r2, 0x3 adds r0, r2 strh r1, [r0] movs r0, 0 bl CopyBgTilemapBufferToVram movs r0, 0x1 bl CopyBgTilemapBufferToVram movs r0, 0x2 bl CopyBgTilemapBufferToVram movs r0, 0x3 bl CopyBgTilemapBufferToVram b _080BC7F8 .pool _080BC768: movs r0, 0x1 negs r0, r0 movs r1, 0 str r1, [sp] movs r2, 0x10 movs r3, 0 bl BeginNormalPaletteFade ldr r0, =sub_80BB370 bl SetVBlankCallback ldr r1, =gMain movs r2, 0x87 lsls r2, 3 adds r1, r2 b _080BC800 .pool _080BC790: ldr r1, =0x00003f3f movs r0, 0x48 bl SetGpuReg ldr r1, =0x00001d3f movs r0, 0x4A 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, 0x50 movs r1, 0 bl SetGpuReg movs r0, 0x52 movs r1, 0 bl SetGpuReg movs r0, 0x54 movs r1, 0 bl SetGpuReg ldr r1, =0x00009040 movs r0, 0 bl SetGpuReg movs r0, 0 bl ShowBg movs r0, 0x1 bl ShowBg movs r0, 0x2 bl ShowBg movs r0, 0x3 bl ShowBg _080BC7F8: ldr r1, =gMain movs r0, 0x87 lsls r0, 3 adds r1, r0 _080BC800: ldrb r0, [r1] adds r0, 0x1 strb r0, [r1] b _080BC838 .pool _080BC818: ldr r0, =gPaletteFade ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 lsls r0, 24 lsrs r2, r0, 24 cmp r2, 0 bne _080BC838 movs r1, 0x87 lsls r1, 3 adds r0, r3, r1 strb r2, [r0] movs r0, 0x1 b _080BC83A .pool _080BC838: movs r0, 0 _080BC83A: add sp, 0x4 pop {r4-r6} pop {r1} bx r1 thumb_func_end sub_80BC514 thumb_func_start sub_80BC844 sub_80BC844: @ 80BC844 push {lr} lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _080BC858 ldr r0, =gPokedexHoennBg_Pal + 0x2 b _080BC862 .pool _080BC858: bl IsNationalPokedexEnabled cmp r0, 0 bne _080BC870 ldr r0, =gPokedexText_Pal + 2 _080BC862: movs r1, 0x1 movs r2, 0xBE bl LoadPalette b _080BC87A .pool _080BC870: ldr r0, =gPokedexNationalBg_Pal + 0x2 movs r1, 0x1 movs r2, 0xBE bl LoadPalette _080BC87A: bl GetOverworldTextboxPalettePtr movs r1, 0xF0 movs r2, 0x20 bl LoadPalette pop {r0} bx r0 .pool thumb_func_end sub_80BC844 thumb_func_start sub_80BC890 sub_80BC890: @ 80BC890 push {lr} bl FreeAllWindowBuffers movs r0, 0 bl GetBgTilemapBuffer cmp r0, 0 beq _080BC8A4 bl Free _080BC8A4: movs r0, 0x1 bl GetBgTilemapBuffer cmp r0, 0 beq _080BC8B2 bl Free _080BC8B2: movs r0, 0x2 bl GetBgTilemapBuffer cmp r0, 0 beq _080BC8C0 bl Free _080BC8C0: movs r0, 0x3 bl GetBgTilemapBuffer cmp r0, 0 beq _080BC8CE bl Free _080BC8CE: pop {r0} bx r0 thumb_func_end sub_80BC890 thumb_func_start sub_80BC8D4 sub_80BC8D4: @ 80BC8D4 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x8 lsls r0, 24 lsrs r4, r0, 24 lsls r1, 24 lsrs r6, r1, 24 ldr r0, =gUnknown_02039B4C ldr r0, [r0] ldr r1, =0x0000060c adds r0, r1 movs r5, 0 strh r5, [r0] cmp r4, 0 beq _080BC8FC cmp r4, 0x1 beq _080BC910 _080BC8FC: mov r1, sp movs r0, 0xCA strh r0, [r1] movs r0, 0x1 strh r0, [r1, 0x2] b _080BC92C .pool _080BC910: bl IsNationalPokedexEnabled cmp r0, 0 beq _080BC924 mov r0, sp movs r1, 0xC1 lsls r1, 1 strh r1, [r0] strh r5, [r0, 0x2] b _080BC92C _080BC924: mov r0, sp movs r1, 0xCA strh r1, [r0] strh r4, [r0, 0x2] _080BC92C: cmp r6, 0x5 bls _080BC932 b _080BCDB4 _080BC932: lsls r0, r6, 2 ldr r1, =_080BC940 adds r0, r1 ldr r0, [r0] mov pc, r0 .pool .align 2, 0 _080BC940: .4byte _080BC958 .4byte _080BCACC .4byte _080BCB78 .4byte _080BCC08 .4byte _080BCCA0 .4byte _080BCD30 _080BC958: mov r0, sp ldrh r0, [r0, 0x2] cmp r0, 0 beq _080BCA00 movs r4, 0 mov r0, sp ldrh r0, [r0] cmp r4, r0 blt _080BC96C b _080BCDB4 _080BC96C: mov r5, sp ldr r2, =gUnknown_02039B4C mov r8, r2 movs r3, 0x1 mov r9, r3 _080BC976: lsls r4, 16 asrs r4, 16 adds r7, r4, 0x1 mov r10, r7 lsls r0, r7, 16 lsrs r6, r0, 16 adds r0, r6, 0 bl HoennToNationalOrder strh r0, [r5, 0x4] mov r2, r8 ldr r1, [r2] lsls r4, 2 adds r1, r4 strh r0, [r1] ldrh r0, [r5, 0x4] movs r1, 0 bl GetSetPokedexFlag mov r3, r8 ldr r2, [r3] adds r2, r4 mov r3, r9 ands r3, r0 ldrb r0, [r2, 0x2] movs r7, 0x2 negs r7, r7 adds r1, r7, 0 ands r0, r1 orrs r0, r3 strb r0, [r2, 0x2] ldrh r0, [r5, 0x4] movs r1, 0x1 bl GetSetPokedexFlag mov r1, r8 ldr r3, [r1] adds r3, r4 mov r2, r9 ands r2, r0 lsls r2, 1 ldrb r0, [r3, 0x2] subs r7, 0x1 adds r1, r7, 0 ands r0, r1 orrs r0, r2 strb r0, [r3, 0x2] mov r0, r8 ldr r1, [r0] adds r4, r1, r4 ldrb r0, [r4, 0x2] lsls r0, 31 cmp r0, 0 beq _080BC9EA ldr r2, =0x0000060c adds r0, r1, r2 mov r3, r10 strh r3, [r0] _080BC9EA: adds r4, r6, 0 lsls r0, r4, 16 asrs r0, 16 ldrh r7, [r5] cmp r0, r7 blt _080BC976 b _080BCDB4 .pool _080BCA00: movs r4, 0 movs r5, 0 mov r10, r5 mov r0, sp ldrh r0, [r0] cmp r4, r0 blt _080BCA10 b _080BCDB4 _080BCA10: mov r6, sp ldr r0, =gUnknown_02039B4C mov r8, r0 movs r1, 0x1 mov r9, r1 _080BCA1A: lsls r4, 16 asrs r0, r4, 16 adds r0, 0x1 strh r0, [r6, 0x4] ldrh r0, [r6, 0x4] movs r1, 0 bl GetSetPokedexFlag lsls r0, 24 adds r7, r4, 0 cmp r0, 0 beq _080BCA36 movs r2, 0x1 mov r10, r2 _080BCA36: mov r3, r10 cmp r3, 0 beq _080BCAB2 mov r4, r8 ldr r1, [r4] lsls r0, r5, 16 asrs r5, r0, 16 lsls r4, r5, 2 adds r1, r4 ldrh r0, [r6, 0x4] strh r0, [r1] ldrh r0, [r6, 0x4] movs r1, 0 bl GetSetPokedexFlag mov r1, r8 ldr r2, [r1] adds r2, r4 mov r3, r9 ands r3, r0 mov r12, r3 ldrb r0, [r2, 0x2] movs r3, 0x2 negs r3, r3 adds r1, r3, 0 ands r0, r1 mov r1, r12 orrs r0, r1 strb r0, [r2, 0x2] ldrh r0, [r6, 0x4] movs r1, 0x1 bl GetSetPokedexFlag mov r2, r8 ldr r3, [r2] adds r3, r4 mov r2, r9 ands r2, r0 lsls r2, 1 mov r12, r2 ldrb r0, [r3, 0x2] movs r2, 0x3 negs r2, r2 adds r1, r2, 0 ands r0, r1 mov r1, r12 orrs r0, r1 strb r0, [r3, 0x2] mov r3, r8 ldr r2, [r3] adds r4, r2, r4 ldrb r0, [r4, 0x2] lsls r0, 31 cmp r0, 0 beq _080BCAAC adds r1, r5, 0x1 ldr r4, =0x0000060c adds r0, r2, r4 strh r1, [r0] _080BCAAC: adds r0, r5, 0x1 lsls r0, 16 lsrs r5, r0, 16 _080BCAB2: movs r1, 0x80 lsls r1, 9 adds r0, r7, r1 lsrs r4, r0, 16 asrs r0, 16 ldrh r2, [r6] cmp r0, r2 blt _080BCA1A b _080BCDB4 .pool _080BCACC: movs r4, 0 mov r5, sp ldr r3, =gUnknown_02039B4C mov r8, r3 ldr r6, =0x0000060c movs r7, 0x1 mov r9, r7 _080BCADA: ldr r1, =gPokedexOrder_Alphabetical lsls r4, 16 asrs r0, r4, 15 adds r0, r1 ldrh r0, [r0] strh r0, [r5, 0x4] ldrh r0, [r5, 0x4] bl NationalToHoennOrder lsls r0, 16 lsrs r0, 16 adds r7, r4, 0 ldrh r1, [r5] cmp r0, r1 bhi _080BCB58 ldrh r0, [r5, 0x4] movs r1, 0 bl GetSetPokedexFlag lsls r0, 24 cmp r0, 0 beq _080BCB58 mov r3, r8 ldr r2, [r3] adds r3, r2, r6 ldrh r0, [r3] lsls r0, 2 adds r0, r2, r0 ldrh r1, [r5, 0x4] strh r1, [r0] ldrh r0, [r3] lsls r0, 2 adds r2, r0 ldrb r0, [r2, 0x2] mov r4, r9 orrs r0, r4 strb r0, [r2, 0x2] ldrh r0, [r5, 0x4] movs r1, 0x1 bl GetSetPokedexFlag mov r1, r8 ldr r3, [r1] adds r1, r3, r6 ldrh r1, [r1] lsls r1, 2 adds r3, r1 mov r2, r9 ands r2, r0 lsls r2, 1 ldrb r0, [r3, 0x2] movs r4, 0x3 negs r4, r4 adds r1, r4, 0 ands r0, r1 orrs r0, r2 strb r0, [r3, 0x2] mov r0, r8 ldr r1, [r0] adds r1, r6 ldrh r0, [r1] adds r0, 0x1 strh r0, [r1] _080BCB58: movs r2, 0x80 lsls r2, 9 adds r1, r7, r2 lsrs r4, r1, 16 movs r0, 0xCD lsls r0, 17 cmp r1, r0 ble _080BCADA b _080BCDB4 .pool _080BCB78: ldr r4, =0x00000181 lsls r0, r4, 16 mov r5, sp ldr r7, =gUnknown_02039B4C ldr r6, =0x0000060c _080BCB82: ldr r1, =gPokedexOrder_Weight asrs r0, 15 adds r0, r1 ldrh r0, [r0] strh r0, [r5, 0x4] ldrh r0, [r5, 0x4] bl NationalToHoennOrder lsls r0, 16 lsrs r0, 16 ldrh r3, [r5] cmp r0, r3 bhi _080BCBE2 ldrh r0, [r5, 0x4] movs r1, 0x1 bl GetSetPokedexFlag lsls r0, 24 cmp r0, 0 beq _080BCBE2 ldr r2, [r7] adds r3, r2, r6 ldrh r0, [r3] lsls r0, 2 adds r0, r2, r0 ldrh r1, [r5, 0x4] strh r1, [r0] ldrh r0, [r3] lsls r0, 2 adds r2, r0 ldrb r0, [r2, 0x2] movs r1, 0x1 orrs r0, r1 strb r0, [r2, 0x2] ldr r2, [r7] adds r0, r2, r6 ldrh r0, [r0] lsls r0, 2 adds r2, r0 ldrb r0, [r2, 0x2] movs r1, 0x2 orrs r0, r1 strb r0, [r2, 0x2] ldr r1, [r7] adds r1, r6 ldrh r0, [r1] adds r0, 0x1 strh r0, [r1] _080BCBE2: lsls r0, r4, 16 ldr r4, =0xffff0000 adds r0, r4 lsrs r4, r0, 16 lsls r0, r4, 16 cmp r0, 0 bge _080BCB82 b _080BCDB4 .pool _080BCC08: movs r4, 0 mov r5, sp ldr r7, =gUnknown_02039B4C mov r8, r7 ldr r6, =0x0000060c ldr r0, =0x00000181 mov r9, r0 _080BCC16: ldr r1, =gPokedexOrder_Weight lsls r4, 16 asrs r0, r4, 15 adds r0, r1 ldrh r0, [r0] strh r0, [r5, 0x4] ldrh r0, [r5, 0x4] bl NationalToHoennOrder lsls r0, 16 lsrs r0, 16 adds r7, r4, 0 ldrh r1, [r5] cmp r0, r1 bhi _080BCC7E ldrh r0, [r5, 0x4] movs r1, 0x1 bl GetSetPokedexFlag lsls r0, 24 cmp r0, 0 beq _080BCC7E mov r3, r8 ldr r2, [r3] adds r3, r2, r6 ldrh r0, [r3] lsls r0, 2 adds r0, r2, r0 ldrh r1, [r5, 0x4] strh r1, [r0] ldrh r0, [r3] lsls r0, 2 adds r2, r0 ldrb r0, [r2, 0x2] movs r1, 0x1 orrs r0, r1 strb r0, [r2, 0x2] mov r4, r8 ldr r2, [r4] adds r0, r2, r6 ldrh r0, [r0] lsls r0, 2 adds r2, r0 ldrb r0, [r2, 0x2] movs r1, 0x2 orrs r0, r1 strb r0, [r2, 0x2] ldr r1, [r4] adds r1, r6 ldrh r0, [r1] adds r0, 0x1 strh r0, [r1] _080BCC7E: movs r1, 0x80 lsls r1, 9 adds r0, r7, r1 lsrs r4, r0, 16 asrs r0, 16 cmp r0, r9 ble _080BCC16 b _080BCDB4 .pool _080BCCA0: ldr r4, =0x00000181 lsls r0, r4, 16 mov r5, sp ldr r7, =gUnknown_02039B4C ldr r6, =0x0000060c _080BCCAA: ldr r1, =gPokedexOrder_Height asrs r0, 15 adds r0, r1 ldrh r0, [r0] strh r0, [r5, 0x4] ldrh r0, [r5, 0x4] bl NationalToHoennOrder lsls r0, 16 lsrs r0, 16 ldrh r2, [r5] cmp r0, r2 bhi _080BCD0A ldrh r0, [r5, 0x4] movs r1, 0x1 bl GetSetPokedexFlag lsls r0, 24 cmp r0, 0 beq _080BCD0A ldr r2, [r7] adds r3, r2, r6 ldrh r0, [r3] lsls r0, 2 adds r0, r2, r0 ldrh r1, [r5, 0x4] strh r1, [r0] ldrh r0, [r3] lsls r0, 2 adds r2, r0 ldrb r0, [r2, 0x2] movs r1, 0x1 orrs r0, r1 strb r0, [r2, 0x2] ldr r2, [r7] adds r0, r2, r6 ldrh r0, [r0] lsls r0, 2 adds r2, r0 ldrb r0, [r2, 0x2] movs r1, 0x2 orrs r0, r1 strb r0, [r2, 0x2] ldr r1, [r7] adds r1, r6 ldrh r0, [r1] adds r0, 0x1 strh r0, [r1] _080BCD0A: lsls r0, r4, 16 ldr r3, =0xffff0000 adds r0, r3 lsrs r4, r0, 16 lsls r0, r4, 16 cmp r0, 0 bge _080BCCAA b _080BCDB4 .pool _080BCD30: movs r4, 0 mov r5, sp ldr r7, =gUnknown_02039B4C mov r8, r7 ldr r6, =0x0000060c ldr r0, =0x00000181 mov r9, r0 _080BCD3E: ldr r1, =gPokedexOrder_Height lsls r4, 16 asrs r0, r4, 15 adds r0, r1 ldrh r0, [r0] strh r0, [r5, 0x4] ldrh r0, [r5, 0x4] bl NationalToHoennOrder lsls r0, 16 lsrs r0, 16 adds r7, r4, 0 ldrh r1, [r5] cmp r0, r1 bhi _080BCDA6 ldrh r0, [r5, 0x4] movs r1, 0x1 bl GetSetPokedexFlag lsls r0, 24 cmp r0, 0 beq _080BCDA6 mov r3, r8 ldr r2, [r3] adds r3, r2, r6 ldrh r0, [r3] lsls r0, 2 adds r0, r2, r0 ldrh r1, [r5, 0x4] strh r1, [r0] ldrh r0, [r3] lsls r0, 2 adds r2, r0 ldrb r0, [r2, 0x2] movs r1, 0x1 orrs r0, r1 strb r0, [r2, 0x2] mov r4, r8 ldr r2, [r4] adds r0, r2, r6 ldrh r0, [r0] lsls r0, 2 adds r2, r0 ldrb r0, [r2, 0x2] movs r1, 0x2 orrs r0, r1 strb r0, [r2, 0x2] ldr r1, [r4] adds r1, r6 ldrh r0, [r1] adds r0, 0x1 strh r0, [r1] _080BCDA6: movs r1, 0x80 lsls r1, 9 adds r0, r7, r1 lsrs r4, r0, 16 asrs r0, 16 cmp r0, r9 ble _080BCD3E _080BCDB4: ldr r1, =gUnknown_02039B4C ldr r0, [r1] ldr r2, =0x0000060c adds r0, r2 ldrh r4, [r0] lsls r3, r4, 16 asrs r0, r3, 16 ldr r2, =0x00000181 cmp r0, r2 bgt _080BCE08 adds r5, r1, 0 movs r4, 0x2 negs r4, r4 mov r9, r4 movs r7, 0x3 negs r7, r7 mov r8, r7 adds r7, r2, 0 ldr r0, =0x0000ffff adds r6, r0, 0 _080BCDDC: ldr r1, [r5] asrs r3, 16 lsls r4, r3, 2 adds r1, r4 ldrh r0, [r1] orrs r0, r6 strh r0, [r1] ldrb r2, [r1, 0x2] mov r0, r9 ands r0, r2 strb r0, [r1, 0x2] ldr r1, [r5] adds r1, r4 ldrb r2, [r1, 0x2] mov r0, r8 ands r0, r2 strb r0, [r1, 0x2] adds r3, 0x1 lsls r3, 16 asrs r0, r3, 16 cmp r0, r7 ble _080BCDDC _080BCE08: add sp, 0x8 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_80BC8D4 thumb_func_start sub_80BCE2C sub_80BCE2C: @ 80BCE2C push {r4-r6,lr} mov r6, r8 push {r6} sub sp, 0x18 mov r8, r3 ldr r3, [sp, 0x2C] lsls r0, 24 lsrs r0, 24 lsls r1, 24 lsrs r1, 24 lsls r3, 24 add r4, sp, 0x14 movs r6, 0 strb r6, [r4] adds r5, r4, 0 movs r4, 0xF strb r4, [r5, 0x1] movs r4, 0x3 strb r4, [r5, 0x2] mov r4, r8 lsls r4, 27 lsrs r4, 24 mov r8, r4 lsrs r3, 21 adds r3, 0x1 lsls r3, 24 lsrs r3, 24 str r6, [sp] str r6, [sp, 0x4] str r5, [sp, 0x8] movs r4, 0x1 negs r4, r4 str r4, [sp, 0xC] str r2, [sp, 0x10] mov r2, r8 bl AddTextPrinterParameterized2 add sp, 0x18 pop {r3} mov r8, r3 pop {r4-r6} pop {r0} bx r0 thumb_func_end sub_80BCE2C thumb_func_start sub_80BCE84 sub_80BCE84: @ 80BCE84 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} lsls r0, 24 lsrs r0, 24 lsls r1, 16 lsrs r1, 16 lsls r2, 16 lsrs r7, r2, 16 cmp r0, 0x1 beq _080BCF7C cmp r0, 0x1 ble _080BCEA8 cmp r0, 0x2 bne _080BCEA8 b _080BD074 _080BCEA8: subs r0, r1, 0x5 lsls r0, 16 lsrs r1, r0, 16 movs r0, 0 mov r9, r0 _080BCEB2: lsls r0, r1, 16 lsrs r5, r0, 16 mov r10, r0 ldr r1, =0x00000181 cmp r5, r1 bhi _080BCED2 ldr r2, =gUnknown_02039B4C mov r8, r2 ldr r0, [r2] mov r3, r10 asrs r6, r3, 14 adds r0, r6 ldrh r0, [r0] ldr r1, =0x0000ffff cmp r0, r1 bne _080BCEF0 _080BCED2: mov r2, r9 lsls r1, r2, 25 lsrs r1, 24 movs r0, 0x11 adds r2, r7, 0 bl sub_80BD28C b _080BCF64 .pool _080BCEF0: mov r3, r9 lsls r0, r3, 25 lsrs r4, r0, 24 movs r0, 0x11 adds r1, r4, 0 adds r2, r7, 0 bl sub_80BD28C mov r1, r8 ldr r0, [r1] adds r0, r6 ldrb r0, [r0, 0x2] lsls r0, 31 cmp r0, 0 beq _080BCF42 adds r0, r5, 0 movs r1, 0x12 adds r2, r4, 0 adds r3, r7, 0 bl sub_80BD154 mov r2, r8 ldr r0, [r2] adds r0, r6 ldrb r0, [r0, 0x2] lsls r0, 30 lsrs r0, 31 movs r1, 0x11 adds r2, r4, 0 adds r3, r7, 0 bl sub_80BD1F4 mov r3, r8 ldr r0, [r3] adds r0, r6 ldrh r0, [r0] movs r1, 0x16 adds r2, r4, 0 bl sub_80BD23C b _080BCF64 _080BCF42: adds r0, r5, 0 movs r1, 0x12 adds r2, r4, 0 adds r3, r7, 0 bl sub_80BD154 movs r0, 0 movs r1, 0x11 adds r2, r4, 0 adds r3, r7, 0 bl sub_80BD1F4 movs r0, 0 movs r1, 0x16 adds r2, r4, 0 bl sub_80BD23C _080BCF64: movs r0, 0x80 lsls r0, 9 add r0, r10 lsrs r1, r0, 16 mov r0, r9 adds r0, 0x1 lsls r0, 16 lsrs r0, 16 mov r9, r0 cmp r0, 0xA bls _080BCEB2 b _080BD13E _080BCF7C: subs r0, r1, 0x5 lsls r1, r0, 16 lsrs r5, r1, 16 ldr r0, =0x00000181 ldr r2, =gUnknown_02039B4C cmp r5, r0 bhi _080BCF9A adds r6, r2, 0 ldr r3, [r6] asrs r4, r1, 14 adds r0, r3, r4 ldrh r1, [r0] ldr r0, =0x0000ffff cmp r1, r0 bne _080BCFB8 _080BCF9A: ldr r0, [r2] movs r1, 0xC6 lsls r1, 3 adds r0, r1 movs r2, 0 ldrsh r1, [r0, r2] lsls r1, 25 b _080BD0B2 .pool _080BCFB8: movs r1, 0xC6 lsls r1, 3 adds r0, r3, r1 movs r2, 0 ldrsh r1, [r0, r2] lsls r1, 25 lsrs r1, 24 movs r0, 0x11 adds r2, r7, 0 bl sub_80BD28C ldr r1, [r6] adds r0, r1, r4 ldrb r0, [r0, 0x2] lsls r0, 31 cmp r0, 0 beq _080BD028 movs r3, 0xC6 lsls r3, 3 adds r0, r1, r3 movs r1, 0 ldrsh r2, [r0, r1] lsls r2, 25 lsrs r2, 24 adds r0, r5, 0 movs r1, 0x12 adds r3, r7, 0 bl sub_80BD154 ldr r1, [r6] adds r0, r1, r4 ldrb r0, [r0, 0x2] lsls r0, 30 lsrs r0, 31 movs r2, 0xC6 lsls r2, 3 adds r1, r2 movs r3, 0 ldrsh r2, [r1, r3] lsls r2, 25 lsrs r2, 24 movs r1, 0x11 adds r3, r7, 0 bl sub_80BD1F4 ldr r1, [r6] adds r0, r1, r4 ldrh r0, [r0] movs r2, 0xC6 lsls r2, 3 adds r1, r2 movs r3, 0 ldrsh r2, [r1, r3] lsls r2, 25 lsrs r2, 24 b _080BD06C _080BD028: movs r2, 0xC6 lsls r2, 3 adds r0, r1, r2 movs r3, 0 ldrsh r2, [r0, r3] lsls r2, 25 lsrs r2, 24 adds r0, r5, 0 movs r1, 0x12 adds r3, r7, 0 bl sub_80BD154 ldr r0, [r6] movs r1, 0xC6 lsls r1, 3 adds r0, r1 movs r3, 0 ldrsh r2, [r0, r3] lsls r2, 25 lsrs r2, 24 movs r0, 0 movs r1, 0x11 adds r3, r7, 0 bl sub_80BD1F4 ldr r0, [r6] movs r1, 0xC6 lsls r1, 3 adds r0, r1 movs r3, 0 ldrsh r2, [r0, r3] lsls r2, 25 lsrs r2, 24 movs r0, 0 _080BD06C: movs r1, 0x16 bl sub_80BD23C b _080BD13E _080BD074: adds r0, r1, 0x5 lsls r0, 16 lsrs r1, r0, 16 ldr r0, =gUnknown_02039B4C mov r8, r0 ldr r3, [r0] movs r2, 0xC6 lsls r2, 3 adds r0, r3, r2 ldrh r0, [r0] adds r0, 0xA lsls r0, 16 lsrs r2, r0, 16 cmp r2, 0xF bls _080BD09A adds r0, r2, 0 subs r0, 0x10 lsls r0, 16 lsrs r2, r0, 16 _080BD09A: lsls r1, 16 lsrs r5, r1, 16 ldr r0, =0x00000181 cmp r5, r0 bhi _080BD0B0 asrs r6, r1, 14 adds r0, r3, r6 ldrh r1, [r0] ldr r0, =0x0000ffff cmp r1, r0 bne _080BD0CC _080BD0B0: lsls r1, r2, 25 _080BD0B2: lsrs r1, 24 movs r0, 0x11 adds r2, r7, 0 bl sub_80BD28C b _080BD13E .pool _080BD0CC: lsls r0, r2, 25 lsrs r4, r0, 24 movs r0, 0x11 adds r1, r4, 0 adds r2, r7, 0 bl sub_80BD28C mov r3, r8 ldr r0, [r3] adds r0, r6 ldrb r0, [r0, 0x2] lsls r0, 31 cmp r0, 0 beq _080BD11C adds r0, r5, 0 movs r1, 0x12 adds r2, r4, 0 adds r3, r7, 0 bl sub_80BD154 mov r1, r8 ldr r0, [r1] adds r0, r6 ldrb r0, [r0, 0x2] lsls r0, 30 lsrs r0, 31 movs r1, 0x11 adds r2, r4, 0 adds r3, r7, 0 bl sub_80BD1F4 mov r2, r8 ldr r0, [r2] adds r0, r6 ldrh r0, [r0] movs r1, 0x16 adds r2, r4, 0 bl sub_80BD23C b _080BD13E _080BD11C: adds r0, r5, 0 movs r1, 0x12 adds r2, r4, 0 adds r3, r7, 0 bl sub_80BD154 movs r0, 0 movs r1, 0x11 adds r2, r4, 0 adds r3, r7, 0 bl sub_80BD1F4 movs r0, 0 movs r1, 0x16 adds r2, r4, 0 bl sub_80BD23C _080BD13E: movs r0, 0 movs r1, 0x2 bl CopyWindowToVram pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_80BCE84 thumb_func_start sub_80BD154 sub_80BD154: @ 80BD154 push {r4-r7,lr} mov r7, r8 push {r7} sub sp, 0xC adds r4, r0, 0 lsls r4, 16 lsrs r4, 16 lsls r1, 24 lsrs r1, 24 mov r8, r1 lsls r2, 24 lsrs r7, r2, 24 ldr r1, =gUnknown_0855D2B8 add r0, sp, 0x4 movs r2, 0x6 bl memcpy ldr r0, =gUnknown_02039B4C ldr r0, [r0] lsls r4, 2 adds r4, r0, r4 ldrh r6, [r4] ldr r1, =0x00000612 adds r0, r1 ldrh r0, [r0] cmp r0, 0 bne _080BD194 adds r0, r6, 0 bl NationalToHoennOrder lsls r0, 16 lsrs r6, r0, 16 _080BD194: add r4, sp, 0x4 adds r0, r6, 0 movs r1, 0x64 bl __udivsi3 adds r0, 0xA1 strb r0, [r4, 0x2] add r5, sp, 0x4 adds r0, r6, 0 movs r1, 0x64 bl __umodsi3 adds r4, r0, 0 lsls r4, 16 lsrs r4, 16 adds r0, r4, 0 movs r1, 0xA bl __udivsi3 adds r0, 0xA1 strb r0, [r5, 0x3] add r5, sp, 0x4 adds r0, r4, 0 movs r1, 0xA bl __umodsi3 adds r0, 0xA1 strb r0, [r5, 0x4] str r7, [sp] movs r0, 0 movs r1, 0x7 add r2, sp, 0x4 mov r3, r8 bl sub_80BCE2C add sp, 0xC pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_80BD154 thumb_func_start sub_80BD1F4 sub_80BD1F4: @ 80BD1F4 push {r4,lr} sub sp, 0x8 lsls r0, 16 lsls r1, 24 lsrs r3, r1, 24 lsls r2, 24 lsrs r4, r2, 24 cmp r0, 0 beq _080BD220 ldr r1, =gUnknown_0855D2BE lsls r2, r3, 3 lsls r3, r4, 3 movs r0, 0x8 str r0, [sp] movs r0, 0x10 str r0, [sp, 0x4] movs r0, 0 bl BlitBitmapToWindow b _080BD234 .pool _080BD220: lsls r2, r3, 3 lsls r3, r4, 3 movs r0, 0x8 str r0, [sp] movs r0, 0x10 str r0, [sp, 0x4] movs r0, 0 movs r1, 0 bl FillWindowPixelRect _080BD234: add sp, 0x8 pop {r4} pop {r0} bx r0 thumb_func_end sub_80BD1F4 thumb_func_start sub_80BD23C sub_80BD23C: @ 80BD23C push {r4-r6,lr} sub sp, 0x4 lsls r0, 16 lsrs r0, 16 lsls r1, 24 lsrs r6, r1, 24 lsls r2, 24 lsrs r5, r2, 24 bl NationalPokedexNumToSpecies adds r1, r0, 0 cmp r1, 0 beq _080BD264 movs r0, 0xB muls r1, r0 ldr r0, =gSpeciesNames adds r4, r1, r0 b _080BD266 .pool _080BD264: ldr r4, =sText_TenDashes _080BD266: str r5, [sp] movs r0, 0 movs r1, 0x7 adds r2, r4, 0 adds r3, r6, 0 bl sub_80BCE2C adds r0, r4, 0 bl StringLength lsls r0, 24 lsrs r0, 24 add sp, 0x4 pop {r4-r6} pop {r1} bx r1 .pool thumb_func_end sub_80BD23C thumb_func_start sub_80BD28C sub_80BD28C: @ 80BD28C push {lr} sub sp, 0x8 adds r2, r0, 0 adds r3, r1, 0 lsls r2, 24 lsls r3, 24 lsrs r2, 21 lsrs r3, 21 movs r0, 0x60 str r0, [sp] movs r0, 0x10 str r0, [sp, 0x4] movs r0, 0 movs r1, 0 bl FillWindowPixelRect add sp, 0x8 pop {r0} bx r0 thumb_func_end sub_80BD28C thumb_func_start sub_80BD2B4 sub_80BD2B4: @ 80BD2B4 push {r4-r7,lr} mov r7, r8 push {r7} lsls r0, 16 lsrs r6, r0, 16 lsls r1, 16 lsrs r1, 16 mov r8, r1 ldr r2, =gPaletteFade ldrb r0, [r2, 0x8] movs r1, 0x80 orrs r0, r1 strb r0, [r2, 0x8] movs r2, 0 ldr r7, =gUnknown_02039B4C adds r5, r7, 0 ldr r4, =0x0000061e ldr r0, =0x0000ffff adds r3, r0, 0 _080BD2DA: ldr r1, [r5] lsls r0, r2, 1 adds r1, r4 adds r1, r0 ldrh r0, [r1] orrs r0, r3 strh r0, [r1] adds r0, r2, 0x1 lsls r0, 24 lsrs r2, r0, 24 cmp r2, 0x3 bls _080BD2DA ldr r0, [r7] ldr r1, =0x00000626 adds r0, r1 ldr r1, =0x0000ffff strh r1, [r0] subs r0, r6, 0x1 lsls r0, 16 lsrs r0, 16 bl sub_80BDA8C lsls r0, 16 lsrs r0, 16 ldr r4, =0x0000ffff cmp r0, r4 beq _080BD334 movs r1, 0x60 movs r2, 0x50 bl sub_80BDACC lsls r0, 24 lsrs r1, r0, 24 ldr r3, =gSprites lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r1, r3, 0 adds r1, 0x1C adds r1, r0, r1 ldr r2, =sub_80BE4E0 str r2, [r1] adds r0, r3 ldr r1, =0x0000ffe0 strh r1, [r0, 0x38] _080BD334: adds r0, r6, 0 bl sub_80BDA8C lsls r0, 16 lsrs r0, 16 cmp r0, r4 beq _080BD366 movs r1, 0x60 movs r2, 0x50 bl sub_80BDACC lsls r0, 24 lsrs r1, r0, 24 ldr r3, =gSprites lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r1, r3, 0 adds r1, 0x1C adds r1, r0, r1 ldr r2, =sub_80BE4E0 str r2, [r1] adds r0, r3 movs r1, 0 strh r1, [r0, 0x38] _080BD366: adds r0, r6, 0x1 lsls r0, 16 lsrs r0, 16 bl sub_80BDA8C lsls r0, 16 lsrs r0, 16 cmp r0, r4 beq _080BD39C movs r1, 0x60 movs r2, 0x50 bl sub_80BDACC lsls r0, 24 lsrs r1, r0, 24 ldr r3, =gSprites lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r1, r3, 0 adds r1, 0x1C adds r1, r0, r1 ldr r2, =sub_80BE4E0 str r2, [r1] adds r0, r3 movs r1, 0x20 strh r1, [r0, 0x38] _080BD39C: movs r0, 0 adds r1, r6, 0 mov r2, r8 bl sub_80BCE84 ldr r0, [r7] ldr r2, =0x0000062d adds r0, r2 ldrb r1, [r0] movs r0, 0x1A bl SetGpuReg ldr r0, [r7] movs r2, 0xC6 lsls r2, 3 adds r1, r0, r2 movs r2, 0 strh r2, [r1] ldr r1, =0x00000632 adds r0, r1 strh r2, [r0] ldr r2, =gPaletteFade ldrb r1, [r2, 0x8] movs r0, 0x7F ands r0, r1 strb r0, [r2, 0x8] pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_80BD2B4 thumb_func_start sub_80BD404 sub_80BD404: @ 80BD404 push {r4-r7,lr} mov r7, r8 push {r7} lsls r0, 24 lsrs r4, r0, 24 lsls r1, 24 lsrs r5, r1, 24 lsls r2, 24 lsrs r6, r2, 24 ldr r0, =gUnknown_02039B4C ldr r1, [r0] ldr r3, =0x0000062e adds r2, r1, r3 ldrb r3, [r2] adds r7, r0, 0 cmp r3, 0 bne _080BD428 b _080BD578 _080BD428: subs r0, r3, 0x1 strb r0, [r2] cmp r4, 0x1 beq _080BD440 cmp r4, 0x2 beq _080BD4DC b _080BD558 .pool _080BD440: movs r3, 0 ldr r4, =0x0000ffff mov r12, r4 ldr r0, =gSprites mov r8, r0 adds r2, r7, 0 _080BD44C: ldr r0, [r2] lsls r1, r3, 1 ldr r4, =0x0000061e adds r0, r4 adds r1, r0, r1 ldrh r0, [r1] cmp r0, r12 beq _080BD46A lsls r1, r0, 4 adds r1, r0 lsls r1, 2 add r1, r8 ldrh r0, [r1, 0x38] adds r0, r5 strh r0, [r1, 0x38] _080BD46A: adds r0, r3, 0x1 lsls r0, 16 lsrs r3, r0, 16 cmp r3, 0x3 bls _080BD44C ldr r4, [r7] ldr r1, =0x0000062e adds r0, r4, r1 ldrb r0, [r0] subs r0, r6, r0 lsls r0, 4 adds r1, r6, 0 bl __divsi3 lsls r0, 24 lsrs r2, r0, 24 ldr r3, =0x0000062d adds r0, r4, r3 ldr r1, =0x00000632 adds r4, r1 movs r3, 0 ldrsh r1, [r4, r3] lsls r1, 4 ldrb r0, [r0] adds r1, r0 subs r1, r2 lsls r1, 16 lsrs r1, 16 movs r0, 0x1A bl SetGpuReg ldr r0, [r7] ldr r4, =0x0000062c adds r2, r0, r4 movs r1, 0xC5 lsls r1, 3 adds r0, r1 ldrb r1, [r0] ldrb r0, [r2] subs r0, r1 strb r0, [r2] b _080BD558 .pool _080BD4DC: movs r3, 0 ldr r2, =0x0000ffff mov r12, r2 ldr r4, =gSprites mov r8, r4 adds r2, r7, 0 _080BD4E8: ldr r0, [r2] lsls r1, r3, 1 ldr r4, =0x0000061e adds r0, r4 adds r1, r0, r1 ldrh r0, [r1] cmp r0, r12 beq _080BD506 lsls r1, r0, 4 adds r1, r0 lsls r1, 2 add r1, r8 ldrh r0, [r1, 0x38] subs r0, r5 strh r0, [r1, 0x38] _080BD506: adds r0, r3, 0x1 lsls r0, 16 lsrs r3, r0, 16 cmp r3, 0x3 bls _080BD4E8 ldr r4, [r7] ldr r1, =0x0000062e adds r0, r4, r1 ldrb r0, [r0] subs r0, r6, r0 lsls r0, 4 adds r1, r6, 0 bl __divsi3 lsls r0, 24 lsrs r2, r0, 24 ldr r3, =0x0000062d adds r0, r4, r3 ldr r1, =0x00000632 adds r4, r1 movs r3, 0 ldrsh r1, [r4, r3] lsls r1, 4 ldrb r0, [r0] adds r1, r0 adds r1, r2 lsls r1, 16 lsrs r1, 16 movs r0, 0x1A bl SetGpuReg ldr r0, [r7] ldr r4, =0x0000062c adds r1, r0, r4 movs r2, 0xC5 lsls r2, 3 adds r0, r2 ldrb r0, [r0] ldrb r3, [r1] adds r0, r3 strb r0, [r1] _080BD558: movs r0, 0 b _080BD598 .pool _080BD578: ldr r4, =0x0000062d adds r2, r1, r4 movs r3, 0xC6 lsls r3, 3 adds r0, r1, r3 movs r4, 0 ldrsh r1, [r0, r4] lsls r1, 4 ldrb r2, [r2] adds r1, r2 lsls r1, 16 lsrs r1, 16 movs r0, 0x1A bl SetGpuReg movs r0, 0x1 _080BD598: pop {r3} mov r8, r3 pop {r4-r7} pop {r1} bx r1 .pool thumb_func_end sub_80BD404 thumb_func_start sub_80BD5A8 sub_80BD5A8: @ 80BD5A8 push {r4-r6,lr} lsls r0, 24 lsrs r2, r0, 24 lsls r1, 16 lsrs r3, r1, 16 ldr r4, =gUnknown_02039B4C ldr r0, [r4] movs r5, 0xC6 lsls r5, 3 adds r1, r0, r5 ldrh r1, [r1] ldr r6, =0x00000632 adds r0, r6 strh r1, [r0] cmp r2, 0x1 beq _080BD5D8 cmp r2, 0x2 beq _080BD638 b _080BD694 .pool _080BD5D8: subs r0, r3, 0x1 lsls r0, 16 lsrs r0, 16 bl sub_80BDA8C lsls r0, 16 lsrs r1, r0, 16 ldr r0, =0x0000ffff cmp r1, r0 beq _080BD612 adds r0, r1, 0 movs r1, 0x60 movs r2, 0x50 bl sub_80BDACC lsls r0, 24 lsrs r1, r0, 24 ldr r3, =gSprites lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r1, r3, 0 adds r1, 0x1C adds r1, r0, r1 ldr r2, =sub_80BE4E0 str r2, [r1] adds r0, r3 ldr r1, =0x0000ffc0 strh r1, [r0, 0x38] _080BD612: ldr r0, [r4] adds r1, r0, r5 ldrh r2, [r1] movs r3, 0 ldrsh r0, [r1, r3] cmp r0, 0 ble _080BD634 subs r0, r2, 0x1 b _080BD692 .pool _080BD634: movs r0, 0xF b _080BD692 _080BD638: adds r0, r3, 0x1 lsls r0, 16 lsrs r0, 16 bl sub_80BDA8C lsls r0, 16 lsrs r1, r0, 16 ldr r0, =0x0000ffff cmp r1, r0 beq _080BD672 adds r0, r1, 0 movs r1, 0x60 movs r2, 0x50 bl sub_80BDACC lsls r0, 24 lsrs r1, r0, 24 ldr r3, =gSprites lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r1, r3, 0 adds r1, 0x1C adds r1, r0, r1 ldr r2, =sub_80BE4E0 str r2, [r1] adds r0, r3 movs r1, 0x40 strh r1, [r0, 0x38] _080BD672: ldr r0, [r4] adds r1, r0, r5 ldrh r2, [r1] movs r6, 0 ldrsh r0, [r1, r6] cmp r0, 0xE bgt _080BD690 adds r0, r2, 0x1 b _080BD692 .pool _080BD690: movs r0, 0 _080BD692: strh r0, [r1] _080BD694: pop {r4-r6} pop {r0} bx r0 thumb_func_end sub_80BD5A8 thumb_func_start sub_80BD69C sub_80BD69C: @ 80BD69C push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} lsls r0, 16 lsrs r7, r0, 16 lsls r1, 16 lsrs r4, r1, 16 movs r0, 0 mov r10, r0 ldr r2, =gMain ldrh r1, [r2, 0x2C] movs r0, 0x40 ands r0, r1 cmp r0, 0 beq _080BD6FC cmp r7, 0 beq _080BD6FC movs r1, 0x1 mov r10, r1 ldr r0, =gUnknown_02039B4C ldr r0, [r0] ldr r2, =0x0000060c adds r0, r2 ldrh r3, [r0] subs r3, 0x1 lsls r3, 16 lsrs r3, 16 movs r0, 0x1 adds r1, r7, 0 movs r2, 0 bl sub_80C0E0C adds r7, r0, 0 movs r0, 0x1 adds r1, r7, 0 bl sub_80BD5A8 movs r0, 0x1 b _080BD734 .pool _080BD6FC: ldrh r1, [r2, 0x2C] movs r0, 0x80 ands r0, r1 cmp r0, 0 beq _080BD74C ldr r0, =gUnknown_02039B4C ldr r0, [r0] ldr r3, =0x0000060c adds r0, r3 ldrh r0, [r0] subs r0, 0x1 cmp r7, r0 bge _080BD74C movs r1, 0x2 mov r10, r1 lsls r3, r0, 16 lsrs r3, 16 movs r0, 0 adds r1, r7, 0 movs r2, 0 bl sub_80C0E0C adds r7, r0, 0 movs r0, 0x2 adds r1, r7, 0 bl sub_80BD5A8 movs r0, 0x2 _080BD734: adds r1, r7, 0 adds r2, r4, 0 bl sub_80BCE84 movs r0, 0x6C bl PlaySE b _080BD81A .pool _080BD74C: ldrh r1, [r2, 0x2E] movs r0, 0x20 ands r0, r1 cmp r0, 0 beq _080BD7B4 cmp r7, 0 beq _080BD7B4 adds r6, r7, 0 movs r4, 0 _080BD75E: ldr r5, =gUnknown_02039B4C ldr r0, [r5] ldr r2, =0x0000060c adds r0, r2 ldrh r3, [r0] subs r3, 0x1 lsls r3, 16 lsrs r3, 16 movs r0, 0x1 adds r1, r7, 0 movs r2, 0 bl sub_80C0E0C adds r7, r0, 0 adds r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0x6 bls _080BD75E ldr r1, [r5] ldr r3, =0x0000062c adds r1, r3 subs r0, r7, r6 lsls r0, 4 ldrb r2, [r1] adds r0, r2 strb r0, [r1] bl sub_80BDA40 adds r0, r7, 0 movs r1, 0xE bl sub_80BD2B4 movs r0, 0x6D bl PlaySE b _080BD81A .pool _080BD7B4: ldrh r1, [r2, 0x2E] movs r0, 0x10 ands r0, r1 cmp r0, 0 beq _080BD81A ldr r0, =gUnknown_02039B4C ldr r0, [r0] ldr r3, =0x0000060c adds r0, r3 ldrh r0, [r0] subs r0, 0x1 cmp r7, r0 bge _080BD81A adds r6, r7, 0 movs r4, 0 _080BD7D2: ldr r5, =gUnknown_02039B4C ldr r0, [r5] ldr r1, =0x0000060c adds r0, r1 ldrh r3, [r0] subs r3, 0x1 lsls r3, 16 lsrs r3, 16 movs r0, 0 adds r1, r7, 0 movs r2, 0 bl sub_80C0E0C adds r7, r0, 0 adds r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0x6 bls _080BD7D2 ldr r1, [r5] ldr r2, =0x0000062c adds r1, r2 subs r0, r7, r6 lsls r0, 4 ldrb r3, [r1] adds r0, r3 strb r0, [r1] bl sub_80BDA40 adds r0, r7, 0 movs r1, 0xE bl sub_80BD2B4 movs r0, 0x6D bl PlaySE _080BD81A: mov r0, r10 cmp r0, 0 bne _080BD83C ldr r0, =gUnknown_02039B4C ldr r0, [r0] movs r1, 0xC7 lsls r1, 3 adds r0, r1 mov r2, r10 strh r2, [r0] b _080BD8A2 .pool _080BD83C: ldr r1, =gUnknown_0855D28C ldr r6, =gUnknown_02039B4C ldr r2, [r6] movs r3, 0xC7 lsls r3, 3 mov r9, r3 adds r0, r2, r3 ldrh r0, [r0] lsrs r0, 2 adds r1, r0, r1 ldrb r5, [r1] ldr r1, =gUnknown_0855D291 adds r0, r1 ldrb r3, [r0] ldr r0, =0x0000062e adds r2, r0 strb r3, [r2] ldr r1, [r6] ldr r2, =0x00000636 mov r8, r2 adds r0, r1, r2 strh r3, [r0] ldr r4, =0x00000634 adds r0, r1, r4 strh r5, [r0] ldr r3, =0x0000062f adds r1, r3 mov r0, r10 strb r0, [r1] ldr r2, [r6] lsrs r5, 1 movs r1, 0xC5 lsls r1, 3 adds r0, r2, r1 strh r5, [r0] adds r3, r2, r3 ldrb r0, [r3] adds r4, r2, r4 ldrb r1, [r4] add r2, r8 ldrb r2, [r2] bl sub_80BD404 ldr r0, [r6] mov r2, r9 adds r1, r0, r2 ldrh r0, [r1] cmp r0, 0xB bhi _080BD8A2 adds r0, 0x1 strh r0, [r1] _080BD8A2: adds r0, r7, 0 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r1} bx r1 .pool thumb_func_end sub_80BD69C thumb_func_start sub_80BD8D0 sub_80BD8D0: @ 80BD8D0 push {r4-r7,lr} movs r4, 0 ldr r0, =gUnknown_02039B4C mov r12, r0 ldr r6, =gSprites ldr r5, =0x0000ffff _080BD8DC: mov r1, r12 ldr r3, [r1] lsls r1, r4, 1 ldr r2, =0x0000061e adds r0, r3, r2 adds r0, r1 ldrh r2, [r0] lsls r0, r2, 4 adds r0, r2 lsls r0, 2 adds r1, r0, r6 movs r7, 0x24 ldrsh r0, [r1, r7] cmp r0, 0 bne _080BD90C movs r7, 0x26 ldrsh r0, [r1, r7] cmp r0, 0 bne _080BD90C cmp r2, r5 beq _080BD90C ldr r1, =0x00000626 adds r0, r3, r1 strh r2, [r0] _080BD90C: adds r0, r4, 0x1 lsls r0, 16 lsrs r4, r0, 16 cmp r4, 0x3 bls _080BD8DC pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_80BD8D0 thumb_func_start sub_80BD930 sub_80BD930: @ 80BD930 push {r4-r6,lr} ldr r3, =gUnknown_02039B4C ldr r0, [r3] ldr r1, =0x0000060e adds r0, r1 ldrh r4, [r0] ldr r2, =gMain ldrh r1, [r2, 0x2E] movs r0, 0x40 ands r0, r1 cmp r0, 0 beq _080BD9B8 cmp r4, 0 beq _080BD9B8 adds r2, r4, 0 adds r5, r3, 0 _080BD950: ldr r0, [r5] ldr r1, =0x0000060c adds r0, r1 ldrh r3, [r0] subs r3, 0x1 lsls r3, 16 lsrs r3, 16 movs r0, 0x1 adds r1, r2, 0 movs r2, 0 bl sub_80C0E0C lsls r0, 16 lsrs r2, r0, 16 ldr r0, [r5] lsls r1, r2, 2 adds r0, r1 ldrb r0, [r0, 0x2] lsls r0, 31 cmp r0, 0 bne _080BD9A0 cmp r2, 0 bne _080BD950 _080BD97E: ldr r0, =gUnknown_02039B4C ldr r1, [r0] ldr r0, =0x0000060e adds r2, r1, r0 ldrh r0, [r2] cmp r0, r4 bne _080BD9A4 b _080BDA38 .pool _080BD9A0: adds r4, r2, 0 b _080BD97E _080BD9A4: strh r4, [r2] ldr r0, =0x0000062c adds r1, r0 ldrb r0, [r1] subs r0, 0x10 b _080BDA20 .pool _080BD9B4: adds r4, r2, 0 b _080BDA08 _080BD9B8: ldrh r1, [r2, 0x2E] movs r0, 0x80 ands r0, r1 cmp r0, 0 beq _080BDA38 ldr r0, [r3] ldr r1, =0x0000060c adds r0, r1 ldrh r0, [r0] subs r0, 0x1 cmp r4, r0 bge _080BDA38 adds r2, r4, 0 adds r6, r3, 0 adds r5, r1, 0 _080BD9D6: ldr r0, [r6] adds r0, r5 ldrh r3, [r0] subs r3, 0x1 lsls r3, 16 lsrs r3, 16 movs r0, 0 adds r1, r2, 0 movs r2, 0 bl sub_80C0E0C lsls r0, 16 lsrs r2, r0, 16 ldr r1, [r6] lsls r0, r2, 2 adds r0, r1, r0 ldrb r0, [r0, 0x2] lsls r0, 31 cmp r0, 0 bne _080BD9B4 adds r0, r1, r5 ldrh r0, [r0] subs r0, 0x1 cmp r2, r0 blt _080BD9D6 _080BDA08: ldr r0, =gUnknown_02039B4C ldr r1, [r0] ldr r0, =0x0000060e adds r2, r1, r0 ldrh r0, [r2] cmp r0, r4 beq _080BDA38 strh r4, [r2] ldr r0, =0x0000062c adds r1, r0 ldrb r0, [r1] adds r0, 0x10 _080BDA20: strb r0, [r1] movs r0, 0x1 b _080BDA3A .pool _080BDA38: movs r0, 0 _080BDA3A: pop {r4-r6} pop {r1} bx r1 thumb_func_end sub_80BD930 thumb_func_start sub_80BDA40 sub_80BDA40: @ 80BDA40 push {r4-r7,lr} movs r5, 0 ldr r6, =gUnknown_02039B4C ldr r7, =0x0000ffff _080BDA48: ldr r0, [r6] lsls r4, r5, 1 ldr r1, =0x0000061e adds r0, r1 adds r1, r0, r4 ldrh r0, [r1] cmp r0, r7 beq _080BDA6C bl sub_818D820 ldr r1, [r6] ldr r0, =0x0000061e adds r1, r0 adds r1, r4 ldrh r2, [r1] adds r0, r7, 0 orrs r0, r2 strh r0, [r1] _080BDA6C: adds r0, r5, 0x1 lsls r0, 16 lsrs r5, r0, 16 cmp r5, 0x3 bls _080BDA48 movs r0, 0 pop {r4-r7} pop {r1} bx r1 .pool thumb_func_end sub_80BDA40 thumb_func_start sub_80BDA8C sub_80BDA8C: @ 80BDA8C push {lr} lsls r0, 16 lsrs r2, r0, 16 ldr r0, =0x00000181 cmp r2, r0 bhi _080BDAA8 ldr r0, =gUnknown_02039B4C ldr r1, [r0] lsls r0, r2, 2 adds r2, r1, r0 ldrh r1, [r2] ldr r0, =0x0000ffff cmp r1, r0 bne _080BDAB8 _080BDAA8: ldr r0, =0x0000ffff b _080BDAC6 .pool _080BDAB8: ldrb r0, [r2, 0x2] lsls r0, 31 cmp r0, 0 bne _080BDAC4 movs r0, 0 b _080BDAC6 _080BDAC4: ldrh r0, [r2] _080BDAC6: pop {r1} bx r1 thumb_func_end sub_80BDA8C thumb_func_start sub_80BDACC sub_80BDACC: @ 80BDACC push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} lsls r0, 16 lsrs r0, 16 mov r8, r0 lsls r2, 16 lsrs r2, 16 movs r6, 0 ldr r0, =gUnknown_02039B4C mov r9, r0 ldr r3, =0x0000ffff lsls r1, 16 _080BDAE8: mov r4, r9 ldr r0, [r4] lsls r7, r6, 1 ldr r4, =0x0000061e adds r0, r4 adds r0, r7 ldrh r0, [r0] cmp r0, r3 bne _080BDB60 lsls r2, 16 mov r0, r8 asrs r1, 16 asrs r2, 16 adds r3, r6, 0 bl sub_80C0E9C adds r5, r0, 0 lsls r5, 24 lsrs r5, 24 ldr r0, =gSprites lsls r4, r5, 4 adds r4, r5 lsls r4, 2 adds r4, r0 ldrb r1, [r4, 0x1] movs r2, 0x4 negs r2, r2 adds r0, r2, 0 ands r1, r0 movs r0, 0x1 orrs r1, r0 strb r1, [r4, 0x1] ldrb r0, [r4, 0x5] movs r1, 0xC orrs r0, r1 strb r0, [r4, 0x5] movs r0, 0 strh r0, [r4, 0x2E] strh r6, [r4, 0x30] mov r0, r8 bl NationalPokedexNumToSpecies strh r0, [r4, 0x32] mov r4, r9 ldr r0, [r4] ldr r1, =0x0000061e adds r0, r1 adds r0, r7 strh r5, [r0] adds r0, r5, 0 b _080BDB6C .pool _080BDB60: adds r0, r6, 0x1 lsls r0, 24 lsrs r6, r0, 24 cmp r6, 0x3 bls _080BDAE8 ldr r0, =0x0000ffff _080BDB6C: pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r1} bx r1 .pool thumb_func_end sub_80BDACC thumb_func_start sub_80BDB7C sub_80BDB7C: @ 80BDB7C push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} mov r8, r0 lsls r0, 24 lsrs r0, 24 mov r8, r0 ldr r4, =gUnknown_0855D1AC adds r0, r4, 0 movs r1, 0xB8 movs r2, 0x4 movs r3, 0 bl CreateSprite lsls r0, 24 lsrs r7, r0, 24 ldr r1, =gSprites mov r10, r1 lsls r0, r7, 4 adds r0, r7 lsls r0, 2 add r0, r10 movs r1, 0 strh r1, [r0, 0x30] adds r0, r4, 0 movs r1, 0xB8 movs r2, 0x9C movs r3, 0 bl CreateSprite lsls r0, 24 lsrs r7, r0, 24 lsls r0, r7, 4 adds r0, r7 lsls r0, 2 add r0, r10 movs r1, 0x1 strh r1, [r0, 0x30] adds r0, 0x3F ldrb r1, [r0] movs r2, 0x2 orrs r1, r2 strb r1, [r0] ldr r0, =gUnknown_0855D194 movs r1, 0xE6 movs r2, 0x14 movs r3, 0 bl CreateSprite ldr r5, =gUnknown_0855D1C4 adds r0, r5, 0 movs r1, 0x10 movs r2, 0x78 movs r3, 0 bl CreateSprite adds r0, r5, 0 movs r1, 0x30 movs r2, 0x78 movs r3, 0 bl CreateSprite lsls r0, 24 lsrs r7, r0, 24 lsls r0, r7, 4 adds r0, r7 lsls r0, 2 add r0, r10 movs r1, 0x3 bl StartSpriteAnim adds r0, r5, 0 movs r1, 0x10 movs r2, 0x90 movs r3, 0 bl CreateSprite lsls r0, 24 lsrs r7, r0, 24 lsls r4, r7, 4 adds r4, r7 lsls r4, 2 add r4, r10 adds r0, r4, 0 movs r1, 0x2 bl StartSpriteAnim movs r0, 0x80 mov r9, r0 mov r1, r9 strh r1, [r4, 0x32] adds r0, r5, 0 movs r1, 0x30 movs r2, 0x90 movs r3, 0 bl CreateSprite lsls r0, 24 lsrs r7, r0, 24 lsls r0, r7, 4 adds r0, r7 lsls r0, 2 add r0, r10 movs r1, 0x1 bl StartSpriteAnim ldr r6, =gUnknown_0855D1DC adds r0, r6, 0 movs r1, 0 movs r2, 0x50 movs r3, 0x2 bl CreateSprite lsls r0, 24 lsrs r7, r0, 24 lsls r1, r7, 4 adds r1, r7 lsls r1, 2 add r1, r10 ldrb r2, [r1, 0x1] movs r4, 0x4 negs r4, r4 adds r0, r4, 0 ands r0, r2 movs r5, 0x1 orrs r0, r5 strb r0, [r1, 0x1] ldrb r2, [r1, 0x3] movs r0, 0x3F negs r0, r0 ands r0, r2 movs r2, 0x3C orrs r0, r2 strb r0, [r1, 0x3] movs r0, 0x1E strh r0, [r1, 0x2E] movs r0, 0 strh r0, [r1, 0x30] adds r0, r6, 0 movs r1, 0 movs r2, 0x50 movs r3, 0x2 bl CreateSprite lsls r0, 24 lsrs r7, r0, 24 lsls r1, r7, 4 adds r1, r7 lsls r1, 2 add r1, r10 ldrb r0, [r1, 0x1] ands r4, r0 orrs r4, r5 strb r4, [r1, 0x1] ldrb r0, [r1, 0x3] movs r2, 0x3E orrs r0, r2 strb r0, [r1, 0x3] movs r0, 0x1F strh r0, [r1, 0x2E] mov r0, r9 strh r0, [r1, 0x30] mov r1, r8 cmp r1, 0 beq _080BDCCC b _080BE414 _080BDCCC: bl IsNationalPokedexEnabled cmp r0, 0 beq _080BDCD6 b _080BDF4C _080BDCD6: ldr r4, =gUnknown_0855D1F4 adds r0, r4, 0 movs r1, 0x20 movs r2, 0x28 movs r3, 0x1 bl CreateSprite adds r0, r4, 0 movs r1, 0x20 movs r2, 0x48 movs r3, 0x1 bl CreateSprite lsls r0, 24 lsrs r7, r0, 24 lsls r0, r7, 4 adds r0, r7 lsls r0, 2 add r0, r10 movs r1, 0x1 bl StartSpriteAnim movs r0, 0 mov r8, r0 ldr r0, =gUnknown_0855D224 movs r1, 0x18 movs r2, 0x30 movs r3, 0x1 bl CreateSprite lsls r0, 24 lsrs r7, r0, 24 ldr r0, =gUnknown_02039B4C ldr r0, [r0] ldr r1, =0x0000061a adds r0, r1 ldrh r0, [r0] movs r1, 0x64 bl __udivsi3 lsls r0, 16 lsrs r5, r0, 16 lsls r0, r7, 4 adds r0, r7 lsls r0, 2 mov r1, r10 adds r4, r0, r1 lsls r1, r5, 24 lsrs r1, 24 adds r0, r4, 0 bl StartSpriteAnim cmp r5, 0 beq _080BDD6C movs r0, 0x1 mov r8, r0 b _080BDD78 .pool _080BDD6C: adds r0, r4, 0 adds r0, 0x3E ldrb r1, [r0] movs r2, 0x4 orrs r1, r2 strb r1, [r0] _080BDD78: ldr r0, =gUnknown_0855D224 movs r1, 0x20 movs r2, 0x30 movs r3, 0x1 bl CreateSprite lsls r0, 24 lsrs r7, r0, 24 ldr r0, =gUnknown_02039B4C ldr r0, [r0] ldr r1, =0x0000061a adds r0, r1 ldrh r0, [r0] movs r1, 0x64 bl __umodsi3 lsls r0, 16 lsrs r0, 16 movs r1, 0xA bl __udivsi3 lsls r0, 16 lsrs r5, r0, 16 cmp r5, 0 bne _080BDDB0 mov r0, r8 cmp r0, 0 beq _080BDDD4 _080BDDB0: lsls r0, r7, 4 adds r0, r7 lsls r0, 2 ldr r1, =gSprites adds r0, r1 lsls r1, r5, 24 lsrs r1, 24 bl StartSpriteAnim b _080BDDE8 .pool _080BDDD4: ldr r1, =gSprites lsls r0, r7, 4 adds r0, r7 lsls r0, 2 adds r0, r1 adds r0, 0x3E ldrb r1, [r0] movs r2, 0x4 orrs r1, r2 strb r1, [r0] _080BDDE8: ldr r6, =gUnknown_0855D224 adds r0, r6, 0 movs r1, 0x28 movs r2, 0x30 movs r3, 0x1 bl CreateSprite lsls r0, 24 lsrs r7, r0, 24 ldr r5, =gUnknown_02039B4C ldr r0, [r5] ldr r1, =0x0000061a adds r0, r1 ldrh r0, [r0] movs r1, 0x64 bl __umodsi3 lsls r0, 16 lsrs r0, 16 movs r1, 0xA bl __umodsi3 adds r1, r0, 0 lsls r0, r7, 4 adds r0, r7 lsls r0, 2 ldr r4, =gSprites adds r0, r4 lsls r1, 24 lsrs r1, 24 bl StartSpriteAnim movs r0, 0 mov r8, r0 adds r0, r6, 0 movs r1, 0x18 movs r2, 0x50 movs r3, 0x1 bl CreateSprite lsls r0, 24 lsrs r7, r0, 24 ldr r0, [r5] ldr r1, =0x0000061c adds r0, r1 ldrh r0, [r0] movs r1, 0x64 bl __udivsi3 lsls r0, 16 lsrs r5, r0, 16 lsls r0, r7, 4 adds r0, r7 lsls r0, 2 adds r4, r0, r4 lsls r1, r5, 24 lsrs r1, 24 adds r0, r4, 0 bl StartSpriteAnim cmp r5, 0 beq _080BDE80 movs r0, 0x1 mov r8, r0 b _080BDE8C .pool _080BDE80: adds r0, r4, 0 adds r0, 0x3E ldrb r1, [r0] movs r2, 0x4 orrs r1, r2 strb r1, [r0] _080BDE8C: ldr r0, =gUnknown_0855D224 movs r1, 0x20 movs r2, 0x50 movs r3, 0x1 bl CreateSprite lsls r0, 24 lsrs r7, r0, 24 ldr r0, =gUnknown_02039B4C ldr r0, [r0] ldr r1, =0x0000061c adds r0, r1 ldrh r0, [r0] movs r1, 0x64 bl __umodsi3 lsls r0, 16 lsrs r0, 16 movs r1, 0xA bl __udivsi3 lsls r0, 16 lsrs r5, r0, 16 cmp r5, 0 bne _080BDEC4 mov r0, r8 cmp r0, 0 beq _080BDEE8 _080BDEC4: lsls r0, r7, 4 adds r0, r7 lsls r0, 2 ldr r1, =gSprites adds r0, r1 lsls r1, r5, 24 lsrs r1, 24 bl StartSpriteAnim b _080BDEFC .pool _080BDEE8: ldr r1, =gSprites lsls r0, r7, 4 adds r0, r7 lsls r0, 2 adds r0, r1 adds r0, 0x3E ldrb r1, [r0] movs r2, 0x4 orrs r1, r2 strb r1, [r0] _080BDEFC: ldr r0, =gUnknown_0855D224 movs r1, 0x28 movs r2, 0x50 movs r3, 0x1 bl CreateSprite lsls r0, 24 lsrs r7, r0, 24 ldr r0, =gUnknown_02039B4C ldr r0, [r0] ldr r1, =0x0000061c adds r0, r1 ldrh r0, [r0] movs r1, 0x64 bl __umodsi3 lsls r0, 16 lsrs r0, 16 movs r1, 0xA bl __umodsi3 adds r1, r0, 0 lsls r0, r7, 4 adds r0, r7 lsls r0, 2 ldr r2, =gSprites adds r0, r2 lsls r1, 24 lsrs r1, 24 bl StartSpriteAnim b _080BE3E2 .pool _080BDF4C: ldr r4, =gUnknown_0855D1F4 adds r0, r4, 0 movs r1, 0x20 movs r2, 0x28 movs r3, 0x1 bl CreateSprite adds r0, r4, 0 movs r1, 0x20 movs r2, 0x4C movs r3, 0x1 bl CreateSprite lsls r0, 24 lsrs r7, r0, 24 lsls r0, r7, 4 adds r0, r7 lsls r0, 2 add r0, r10 movs r1, 0x1 bl StartSpriteAnim ldr r4, =gUnknown_0855D20C adds r0, r4, 0 movs r1, 0x11 movs r2, 0x2D movs r3, 0x1 bl CreateSprite adds r0, r4, 0 movs r1, 0x11 movs r2, 0x37 movs r3, 0x1 bl CreateSprite lsls r0, 24 lsrs r7, r0, 24 lsls r0, r7, 4 adds r0, r7 lsls r0, 2 add r0, r10 movs r1, 0x1 bl StartSpriteAnim adds r0, r4, 0 movs r1, 0x11 movs r2, 0x51 movs r3, 0x1 bl CreateSprite adds r0, r4, 0 movs r1, 0x11 movs r2, 0x5B movs r3, 0x1 bl CreateSprite lsls r0, 24 lsrs r7, r0, 24 lsls r0, r7, 4 adds r0, r7 lsls r0, 2 add r0, r10 movs r1, 0x1 bl StartSpriteAnim movs r0, 0 bl GetHoennPokedexCount lsls r0, 16 lsrs r6, r0, 16 movs r0, 0 mov r8, r0 ldr r0, =gUnknown_0855D23C movs r1, 0x28 movs r2, 0x2D movs r3, 0x1 bl CreateSprite lsls r0, 24 lsrs r7, r0, 24 adds r0, r6, 0 movs r1, 0x64 bl __udivsi3 lsls r0, 16 lsrs r5, r0, 16 lsls r0, r7, 4 adds r0, r7 lsls r0, 2 mov r1, r10 adds r4, r0, r1 lsls r1, r5, 24 lsrs r1, 24 adds r0, r4, 0 bl StartSpriteAnim cmp r5, 0 beq _080BE024 movs r0, 0x1 mov r8, r0 b _080BE030 .pool _080BE024: adds r0, r4, 0 adds r0, 0x3E ldrb r1, [r0] movs r2, 0x4 orrs r1, r2 strb r1, [r0] _080BE030: ldr r0, =gUnknown_0855D23C movs r1, 0x30 movs r2, 0x2D movs r3, 0x1 bl CreateSprite lsls r0, 24 lsrs r7, r0, 24 adds r0, r6, 0 movs r1, 0x64 bl __umodsi3 lsls r0, 16 lsrs r0, 16 movs r1, 0xA bl __udivsi3 lsls r0, 16 lsrs r5, r0, 16 cmp r5, 0 bne _080BE060 mov r1, r8 cmp r1, 0 beq _080BE07C _080BE060: lsls r0, r7, 4 adds r0, r7 lsls r0, 2 ldr r1, =gSprites adds r0, r1 lsls r1, r5, 24 lsrs r1, 24 bl StartSpriteAnim b _080BE090 .pool _080BE07C: ldr r1, =gSprites lsls r0, r7, 4 adds r0, r7 lsls r0, 2 adds r0, r1 adds r0, 0x3E ldrb r1, [r0] movs r2, 0x4 orrs r1, r2 strb r1, [r0] _080BE090: ldr r5, =gUnknown_0855D23C adds r0, r5, 0 movs r1, 0x38 movs r2, 0x2D movs r3, 0x1 bl CreateSprite lsls r0, 24 lsrs r7, r0, 24 adds r0, r6, 0 movs r1, 0x64 bl __umodsi3 lsls r0, 16 lsrs r0, 16 movs r1, 0xA bl __umodsi3 adds r1, r0, 0 lsls r0, r7, 4 adds r0, r7 lsls r0, 2 ldr r4, =gSprites adds r0, r4 lsls r1, 24 lsrs r1, 24 bl StartSpriteAnim movs r0, 0 mov r8, r0 adds r0, r5, 0 movs r1, 0x28 movs r2, 0x37 movs r3, 0x1 bl CreateSprite lsls r0, 24 lsrs r7, r0, 24 ldr r0, =gUnknown_02039B4C ldr r0, [r0] ldr r1, =0x0000061a adds r0, r1 ldrh r0, [r0] movs r1, 0x64 bl __udivsi3 lsls r0, 16 lsrs r5, r0, 16 lsls r0, r7, 4 adds r0, r7 lsls r0, 2 adds r4, r0, r4 lsls r1, r5, 24 lsrs r1, 24 adds r0, r4, 0 bl StartSpriteAnim cmp r5, 0 beq _080BE11C movs r0, 0x1 mov r8, r0 b _080BE128 .pool _080BE11C: adds r0, r4, 0 adds r0, 0x3E ldrb r1, [r0] movs r2, 0x4 orrs r1, r2 strb r1, [r0] _080BE128: ldr r0, =gUnknown_0855D23C movs r1, 0x30 movs r2, 0x37 movs r3, 0x1 bl CreateSprite lsls r0, 24 lsrs r7, r0, 24 ldr r0, =gUnknown_02039B4C ldr r0, [r0] ldr r1, =0x0000061a adds r0, r1 ldrh r0, [r0] movs r1, 0x64 bl __umodsi3 lsls r0, 16 lsrs r0, 16 movs r1, 0xA bl __udivsi3 lsls r0, 16 lsrs r5, r0, 16 cmp r5, 0 bne _080BE160 mov r0, r8 cmp r0, 0 beq _080BE184 _080BE160: lsls r0, r7, 4 adds r0, r7 lsls r0, 2 ldr r1, =gSprites adds r0, r1 lsls r1, r5, 24 lsrs r1, 24 bl StartSpriteAnim b _080BE198 .pool _080BE184: ldr r1, =gSprites lsls r0, r7, 4 adds r0, r7 lsls r0, 2 adds r0, r1 adds r0, 0x3E ldrb r1, [r0] movs r2, 0x4 orrs r1, r2 strb r1, [r0] _080BE198: ldr r5, =gUnknown_0855D23C adds r0, r5, 0 movs r1, 0x38 movs r2, 0x37 movs r3, 0x1 bl CreateSprite lsls r0, 24 lsrs r7, r0, 24 ldr r0, =gUnknown_02039B4C ldr r0, [r0] ldr r1, =0x0000061a adds r0, r1 ldrh r0, [r0] movs r1, 0x64 bl __umodsi3 lsls r0, 16 lsrs r0, 16 movs r1, 0xA bl __umodsi3 adds r1, r0, 0 lsls r0, r7, 4 adds r0, r7 lsls r0, 2 ldr r4, =gSprites adds r0, r4 lsls r1, 24 lsrs r1, 24 bl StartSpriteAnim movs r0, 0x1 bl GetHoennPokedexCount lsls r0, 16 lsrs r6, r0, 16 movs r0, 0 mov r8, r0 adds r0, r5, 0 movs r1, 0x28 movs r2, 0x51 movs r3, 0x1 bl CreateSprite lsls r0, 24 lsrs r7, r0, 24 adds r0, r6, 0 movs r1, 0x64 bl __udivsi3 lsls r0, 16 lsrs r5, r0, 16 lsls r0, r7, 4 adds r0, r7 lsls r0, 2 adds r4, r0, r4 lsls r1, r5, 24 lsrs r1, 24 adds r0, r4, 0 bl StartSpriteAnim cmp r5, 0 beq _080BE230 movs r1, 0x1 mov r8, r1 b _080BE23C .pool _080BE230: adds r0, r4, 0 adds r0, 0x3E ldrb r1, [r0] movs r2, 0x4 orrs r1, r2 strb r1, [r0] _080BE23C: ldr r0, =gUnknown_0855D23C movs r1, 0x30 movs r2, 0x51 movs r3, 0x1 bl CreateSprite lsls r0, 24 lsrs r7, r0, 24 adds r0, r6, 0 movs r1, 0x64 bl __umodsi3 lsls r0, 16 lsrs r0, 16 movs r1, 0xA bl __udivsi3 lsls r0, 16 lsrs r5, r0, 16 cmp r5, 0 bne _080BE26C mov r0, r8 cmp r0, 0 beq _080BE288 _080BE26C: lsls r0, r7, 4 adds r0, r7 lsls r0, 2 ldr r1, =gSprites adds r0, r1 lsls r1, r5, 24 lsrs r1, 24 bl StartSpriteAnim b _080BE29C .pool _080BE288: ldr r1, =gSprites lsls r0, r7, 4 adds r0, r7 lsls r0, 2 adds r0, r1 adds r0, 0x3E ldrb r1, [r0] movs r2, 0x4 orrs r1, r2 strb r1, [r0] _080BE29C: ldr r5, =gUnknown_0855D23C adds r0, r5, 0 movs r1, 0x38 movs r2, 0x51 movs r3, 0x1 bl CreateSprite lsls r0, 24 lsrs r7, r0, 24 adds r0, r6, 0 movs r1, 0x64 bl __umodsi3 lsls r0, 16 lsrs r0, 16 movs r1, 0xA bl __umodsi3 adds r1, r0, 0 lsls r0, r7, 4 adds r0, r7 lsls r0, 2 ldr r4, =gSprites adds r0, r4 lsls r1, 24 lsrs r1, 24 bl StartSpriteAnim movs r1, 0 mov r8, r1 adds r0, r5, 0 movs r1, 0x28 movs r2, 0x5B movs r3, 0x1 bl CreateSprite lsls r0, 24 lsrs r7, r0, 24 ldr r0, =gUnknown_02039B4C ldr r0, [r0] ldr r1, =0x0000061c adds r0, r1 ldrh r0, [r0] movs r1, 0x64 bl __udivsi3 lsls r0, 16 lsrs r5, r0, 16 lsls r0, r7, 4 adds r0, r7 lsls r0, 2 adds r4, r0, r4 lsls r1, r5, 24 lsrs r1, 24 adds r0, r4, 0 bl StartSpriteAnim cmp r5, 0 beq _080BE328 movs r0, 0x1 mov r8, r0 b _080BE334 .pool _080BE328: adds r0, r4, 0 adds r0, 0x3E ldrb r1, [r0] movs r2, 0x4 orrs r1, r2 strb r1, [r0] _080BE334: ldr r0, =gUnknown_0855D23C movs r1, 0x30 movs r2, 0x5B movs r3, 0x1 bl CreateSprite lsls r0, 24 lsrs r7, r0, 24 ldr r0, =gUnknown_02039B4C ldr r0, [r0] ldr r1, =0x0000061c adds r0, r1 ldrh r0, [r0] movs r1, 0x64 bl __umodsi3 lsls r0, 16 lsrs r0, 16 movs r1, 0xA bl __udivsi3 lsls r0, 16 lsrs r5, r0, 16 cmp r5, 0 bne _080BE36C mov r0, r8 cmp r0, 0 beq _080BE390 _080BE36C: lsls r0, r7, 4 adds r0, r7 lsls r0, 2 ldr r1, =gSprites adds r0, r1 lsls r1, r5, 24 lsrs r1, 24 bl StartSpriteAnim b _080BE3A4 .pool _080BE390: ldr r1, =gSprites lsls r0, r7, 4 adds r0, r7 lsls r0, 2 adds r0, r1 adds r0, 0x3E ldrb r1, [r0] movs r2, 0x4 orrs r1, r2 strb r1, [r0] _080BE3A4: ldr r0, =gUnknown_0855D23C movs r1, 0x38 movs r2, 0x5B movs r3, 0x1 bl CreateSprite lsls r0, 24 lsrs r7, r0, 24 ldr r0, =gUnknown_02039B4C ldr r0, [r0] ldr r1, =0x0000061c adds r0, r1 ldrh r0, [r0] movs r1, 0x64 bl __umodsi3 lsls r0, 16 lsrs r0, 16 movs r1, 0xA bl __umodsi3 adds r1, r0, 0 lsls r0, r7, 4 adds r0, r7 lsls r0, 2 ldr r2, =gSprites adds r0, r2 lsls r1, 24 lsrs r1, 24 bl StartSpriteAnim _080BE3E2: ldr r0, =gUnknown_0855D254 movs r1, 0x88 movs r2, 0x60 movs r3, 0x1 bl CreateSprite lsls r0, 24 lsrs r7, r0, 24 ldr r1, =gSprites lsls r0, r7, 4 adds r0, r7 lsls r0, 2 adds r0, r1 b _080BE42C .pool _080BE414: ldr r0, =gUnknown_0855D254 movs r1, 0x88 movs r2, 0x50 movs r3, 0x1 bl CreateSprite lsls r0, 24 lsrs r7, r0, 24 lsls r0, r7, 4 adds r0, r7 lsls r0, 2 add r0, r10 _080BE42C: adds r0, 0x3E ldrb r1, [r0] movs r2, 0x4 orrs r1, r2 strb r1, [r0] pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_80BDB7C thumb_func_start nullsub_38 nullsub_38: @ 80BE448 bx lr thumb_func_end nullsub_38 thumb_func_start sub_80BE44C sub_80BE44C: @ 80BE44C push {lr} adds r1, r0, 0 ldr r0, =gUnknown_02039B4C ldr r0, [r0] ldr r2, =0x0000064a adds r0, r2 ldrb r0, [r0] cmp r0, 0 beq _080BE464 adds r0, r1, 0 bl DestroySprite _080BE464: pop {r0} bx r0 .pool thumb_func_end sub_80BE44C thumb_func_start sub_80BE470 sub_80BE470: @ 80BE470 push {lr} adds r2, r0, 0 ldrb r1, [r2, 0x5] movs r0, 0xD negs r0, r0 ands r0, r1 strb r0, [r2, 0x5] ldrb r1, [r2, 0x1] movs r0, 0x4 negs r0, r0 ands r0, r1 strb r0, [r2, 0x1] movs r0, 0 strh r0, [r2, 0x24] strh r0, [r2, 0x26] ldr r1, [r2, 0x20] ldr r0, =0x00380030 cmp r1, r0 beq _080BE4D4 ldrh r1, [r2, 0x20] movs r3, 0x20 ldrsh r0, [r2, r3] cmp r0, 0x30 ble _080BE4A4 subs r0, r1, 0x1 strh r0, [r2, 0x20] _080BE4A4: ldrh r1, [r2, 0x20] movs r3, 0x20 ldrsh r0, [r2, r3] cmp r0, 0x2F bgt _080BE4B2 adds r0, r1, 0x1 strh r0, [r2, 0x20] _080BE4B2: ldrh r1, [r2, 0x22] movs r3, 0x22 ldrsh r0, [r2, r3] cmp r0, 0x38 ble _080BE4C0 subs r0, r1, 0x1 strh r0, [r2, 0x22] _080BE4C0: ldrh r1, [r2, 0x22] movs r3, 0x22 ldrsh r0, [r2, r3] cmp r0, 0x37 bgt _080BE4D8 adds r0, r1, 0x1 strh r0, [r2, 0x22] b _080BE4D8 .pool _080BE4D4: ldr r0, =nullsub_38 str r0, [r2, 0x1C] _080BE4D8: pop {r0} bx r0 .pool thumb_func_end sub_80BE470 thumb_func_start sub_80BE4E0 sub_80BE4E0: @ 80BE4E0 push {r4-r7,lr} sub sp, 0x4 adds r4, r0, 0 ldrh r0, [r4, 0x30] lsls r0, 24 lsrs r6, r0, 24 ldr r7, =gUnknown_02039B4C ldr r1, [r7] ldr r2, =0x0000064a adds r0, r1, r2 ldrb r0, [r0] cmp r0, 0 beq _080BE520 cmp r0, 0x3 beq _080BE520 lsls r5, r6, 1 ldr r4, =0x0000061e adds r0, r1, r4 adds r0, r5 ldrh r0, [r0] bl sub_818D820 ldr r0, [r7] adds r0, r4 adds r0, r5 b _080BE5EC .pool _080BE520: ldr r2, =gSineTable ldrh r0, [r4, 0x38] lsls r0, 24 lsrs r0, 23 adds r0, r2 movs r3, 0 ldrsh r1, [r0, r3] movs r0, 0x4C muls r0, r1 cmp r0, 0 bge _080BE538 adds r0, 0xFF _080BE538: asrs r0, 8 strh r0, [r4, 0x26] movs r1, 0x38 ldrsh r0, [r4, r1] adds r0, 0x40 lsls r0, 1 adds r0, r2 movs r2, 0 ldrsh r1, [r0, r2] movs r0, 0x80 lsls r0, 9 bl __divsi3 adds r2, r0, 0 ldr r0, =0x0000ffff cmp r2, r0 bls _080BE55C adds r2, r0, 0 _080BE55C: ldrh r0, [r4, 0x30] adds r0, 0x1 lsls r0, 24 lsrs r0, 24 movs r1, 0x80 lsls r1, 1 lsls r2, 16 lsrs r2, 16 str r2, [sp] movs r2, 0 movs r3, 0 bl SetOamMatrix adds r1, r6, 0x1 movs r0, 0x1F ands r1, r0 lsls r1, 1 ldrb r2, [r4, 0x3] movs r0, 0x3F negs r0, r0 ands r0, r2 orrs r0, r1 strb r0, [r4, 0x3] ldrh r0, [r4, 0x38] adds r0, 0x3F lsls r0, 16 lsrs r0, 16 cmp r0, 0x7E bhi _080BE5B4 adds r2, r4, 0 adds r2, 0x3E ldrb r0, [r2] movs r1, 0x5 negs r1, r1 ands r1, r0 strb r1, [r2] movs r0, 0x1 strh r0, [r4, 0x2E] b _080BE5C0 .pool _080BE5B4: adds r2, r4, 0 adds r2, 0x3E ldrb r0, [r2] movs r1, 0x4 orrs r0, r1 strb r0, [r2] _080BE5C0: ldrh r0, [r4, 0x38] adds r0, 0x3F lsls r0, 16 lsrs r0, 16 cmp r0, 0x7E bls _080BE5F0 movs r3, 0x2E ldrsh r0, [r4, r3] cmp r0, 0 beq _080BE5F0 ldr r5, =gUnknown_02039B4C ldr r0, [r5] lsls r6, 1 ldr r4, =0x0000061e adds r0, r4 adds r0, r6 ldrh r0, [r0] bl sub_818D820 ldr r0, [r5] adds r0, r4 adds r0, r6 _080BE5EC: ldr r1, =0x0000ffff strh r1, [r0] _080BE5F0: add sp, 0x4 pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_80BE4E0 thumb_func_start sub_80BE604 sub_80BE604: @ 80BE604 push {r4,lr} adds r4, r0, 0 ldr r1, =gUnknown_02039B4C ldr r0, [r1] ldr r2, =0x0000064a adds r0, r2 ldrb r0, [r0] cmp r0, 0 beq _080BE62C cmp r0, 0x3 beq _080BE62C adds r0, r4, 0 bl DestroySprite b _080BE648 .pool _080BE62C: ldr r2, [r1] ldr r1, =0x0000060e adds r0, r2, r1 ldrh r1, [r0] lsls r0, r1, 4 subs r0, r1 lsls r0, 3 ldr r1, =0x0000060c adds r2, r1 ldrh r1, [r2] subs r1, 0x1 bl __divsi3 strh r0, [r4, 0x26] _080BE648: pop {r4} pop {r0} bx r0 .pool thumb_func_end sub_80BE604 thumb_func_start sub_80BE658 sub_80BE658: @ 80BE658 push {r4,r5,lr} adds r3, r0, 0 ldr r1, =gUnknown_02039B4C ldr r0, [r1] ldr r2, =0x0000064a adds r0, r2 ldrb r0, [r0] adds r5, r1, 0 cmp r0, 0 beq _080BE680 cmp r0, 0x3 beq _080BE680 adds r0, r3, 0 bl DestroySprite b _080BE750 .pool _080BE680: movs r1, 0x30 ldrsh r0, [r3, r1] cmp r0, 0 beq _080BE6C2 ldr r0, [r5] ldr r2, =0x0000060e adds r1, r0, r2 ldrh r1, [r1] subs r2, 0x2 adds r0, r2 ldrh r0, [r0] subs r0, 0x1 cmp r1, r0 bne _080BE6AC adds r0, r3, 0 adds r0, 0x3E ldrb r1, [r0] movs r2, 0x4 orrs r1, r2 b _080BE6B8 .pool _080BE6AC: adds r0, r3, 0 adds r0, 0x3E ldrb r2, [r0] movs r1, 0x5 negs r1, r1 ands r1, r2 _080BE6B8: strb r1, [r0] adds r2, r0, 0 ldrh r1, [r3, 0x32] lsls r0, r1, 24 b _080BE6F8 _080BE6C2: ldr r0, [r5] ldr r1, =0x0000060e adds r0, r1 ldrh r0, [r0] cmp r0, 0 bne _080BE6E0 adds r0, r3, 0 adds r0, 0x3E ldrb r1, [r0] movs r2, 0x4 orrs r1, r2 b _080BE6EC .pool _080BE6E0: adds r0, r3, 0 adds r0, 0x3E ldrb r2, [r0] movs r1, 0x5 negs r1, r1 ands r1, r2 _080BE6EC: strb r1, [r0] adds r2, r0, 0 ldrh r1, [r3, 0x32] adds r0, r1, 0 subs r0, 0x80 lsls r0, 24 _080BE6F8: lsrs r0, 24 adds r4, r1, 0 ldr r1, =gSineTable lsls r0, 1 adds r0, r1 movs r1, 0 ldrsh r0, [r0, r1] cmp r0, 0 bge _080BE70C adds r0, 0x3F _080BE70C: asrs r0, 6 strh r0, [r3, 0x26] adds r0, r4, 0 adds r0, 0x8 strh r0, [r3, 0x32] ldr r1, [r5] ldr r3, =0x0000064f adds r0, r1, r3 ldrb r0, [r0] cmp r0, 0 bne _080BE748 adds r3, 0x3 adds r0, r1, r3 movs r1, 0 ldrsh r0, [r0, r1] cmp r0, 0 bne _080BE748 ldrb r1, [r2] movs r0, 0x4 ands r0, r1 cmp r0, 0 bne _080BE748 movs r0, 0x5 negs r0, r0 ands r0, r1 b _080BE74E .pool _080BE748: ldrb r0, [r2] movs r1, 0x4 orrs r0, r1 _080BE74E: strb r0, [r2] _080BE750: pop {r4,r5} pop {r0} bx r0 thumb_func_end sub_80BE658 thumb_func_start sub_80BE758 sub_80BE758: @ 80BE758 push {lr} adds r1, r0, 0 ldr r0, =gUnknown_02039B4C ldr r0, [r0] ldr r2, =0x0000064a adds r0, r2 ldrb r0, [r0] cmp r0, 0 beq _080BE774 cmp r0, 0x3 beq _080BE774 adds r0, r1, 0 bl DestroySprite _080BE774: pop {r0} bx r0 .pool thumb_func_end sub_80BE758 thumb_func_start sub_80BE780 sub_80BE780: @ 80BE780 push {r4-r7,lr} sub sp, 0x4 adds r6, r0, 0 ldr r1, =gUnknown_02039B4C ldr r0, [r1] ldr r2, =0x0000064a adds r0, r2 ldrb r0, [r0] adds r7, r1, 0 cmp r0, 0 beq _080BE7AC cmp r0, 0x3 beq _080BE7AC adds r0, r6, 0 bl DestroySprite b _080BE824 .pool _080BE7AC: ldr r0, [r7] ldr r5, =0x0000062c adds r0, r5 ldrb r1, [r0] ldrh r0, [r6, 0x30] adds r1, r0 lsls r1, 24 lsrs r1, 24 ldr r4, =gSineTable lsls r0, r1, 1 adds r0, r4 ldrh r3, [r0] adds r1, 0x40 lsls r1, 1 adds r1, r4 ldrh r0, [r6, 0x2E] lsls r0, 24 lsrs r0, 24 ldrh r1, [r1] lsls r3, 16 lsrs r2, r3, 16 negs r3, r3 lsrs r3, 16 str r1, [sp] bl SetOamMatrix ldr r1, [r7] adds r1, r5 ldrh r0, [r6, 0x30] adds r0, 0x40 ldrb r1, [r1] adds r0, r1 lsls r0, 24 lsrs r0, 24 lsls r1, r0, 1 adds r1, r4 ldrh r3, [r1] adds r0, 0x40 lsls r0, 1 adds r0, r4 movs r2, 0 ldrsh r1, [r0, r2] lsls r0, r1, 2 adds r0, r1 lsls r0, 3 cmp r0, 0 bge _080BE80C adds r0, 0xFF _080BE80C: asrs r0, 8 strh r0, [r6, 0x24] lsls r1, r3, 16 asrs r1, 16 lsls r0, r1, 2 adds r0, r1 lsls r0, 3 cmp r0, 0 bge _080BE820 adds r0, 0xFF _080BE820: asrs r0, 8 strh r0, [r6, 0x26] _080BE824: add sp, 0x4 pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_80BE780 thumb_func_start sub_80BE834 sub_80BE834: @ 80BE834 push {r4,lr} adds r3, r0, 0 ldr r1, =gUnknown_02039B4C ldr r0, [r1] ldr r2, =0x0000064a adds r0, r2 ldrb r2, [r0] cmp r2, 0 beq _080BE85C cmp r2, 0x3 beq _080BE85C adds r0, r3, 0 bl DestroySprite b _080BE8D4 .pool _080BE85C: ldr r4, [r1] ldr r1, =0x0000064a adds r0, r4, r1 ldrb r0, [r0] movs r1, 0x60 cmp r0, 0 bne _080BE86C movs r1, 0x50 _080BE86C: ldr r2, =0x0000064f adds r0, r4, r2 ldrb r0, [r0] cmp r0, 0 beq _080BE8C8 adds r2, 0x3 adds r0, r4, r2 movs r2, 0 ldrsh r0, [r0, r2] cmp r0, r1 bne _080BE8C8 adds r2, r3, 0 adds r2, 0x3E ldrb r1, [r2] movs r0, 0x5 negs r0, r0 ands r0, r1 strb r0, [r2] movs r1, 0xCA lsls r1, 3 adds r0, r4, r1 ldrh r0, [r0] lsls r0, 4 strh r0, [r3, 0x26] ldr r1, =gSineTable ldrh r2, [r3, 0x32] lsls r0, r2, 24 lsrs r0, 23 adds r0, r1 movs r1, 0 ldrsh r0, [r0, r1] cmp r0, 0 bge _080BE8B0 adds r0, 0x3F _080BE8B0: asrs r0, 6 strh r0, [r3, 0x24] adds r0, r2, 0 adds r0, 0x8 strh r0, [r3, 0x32] b _080BE8D4 .pool _080BE8C8: adds r0, r3, 0 adds r0, 0x3E ldrb r1, [r0] movs r2, 0x4 orrs r1, r2 strb r1, [r0] _080BE8D4: pop {r4} pop {r0} bx r0 thumb_func_end sub_80BE834 thumb_func_start sub_80BE8DC sub_80BE8DC: @ 80BE8DC push {r4,r5,lr} sub sp, 0x18 adds r5, r1, 0 adds r3, r2, 0 lsls r5, 24 lsrs r5, 24 lsls r3, 24 lsrs r3, 24 add r1, sp, 0x14 movs r4, 0 strb r4, [r1] adds r2, r1, 0 movs r1, 0xF strb r1, [r2, 0x1] movs r1, 0x3 strb r1, [r2, 0x2] str r4, [sp] str r4, [sp, 0x4] str r2, [sp, 0x8] subs r1, 0x4 str r1, [sp, 0xC] str r0, [sp, 0x10] movs r0, 0 movs r1, 0x1 adds r2, r5, 0 bl AddTextPrinterParameterized2 add sp, 0x18 pop {r4,r5} pop {r0} bx r0 thumb_func_end sub_80BE8DC thumb_func_start sub_80BE91C sub_80BE91C: @ 80BE91C push {r4,r5,lr} lsls r4, r1, 24 lsrs r4, 24 ldr r1, =gUnknown_02039B54 str r0, [r1] ldr r0, =sub_80BEA24 movs r1, 0 bl CreateTask adds r5, r0, 0 lsls r5, 24 lsrs r5, 24 ldr r1, =gTasks lsls r0, r5, 2 adds r0, r5 lsls r0, 3 adds r0, r1 movs r2, 0 strh r2, [r0, 0x8] movs r1, 0x1 strh r1, [r0, 0xA] strh r2, [r0, 0xC] strh r2, [r0, 0xE] strh r4, [r0, 0x10] movs r1, 0xFF strh r1, [r0, 0x12] movs r0, 0 bl ResetBgsAndClearDma3BusyFlags ldr r1, =gUnknown_0856E630 movs r0, 0 movs r2, 0x4 bl InitBgsFromTemplates movs r4, 0x80 lsls r4, 4 adds r0, r4, 0 bl AllocZeroed adds r1, r0, 0 movs r0, 0x3 bl SetBgTilemapBuffer adds r0, r4, 0 bl AllocZeroed adds r1, r0, 0 movs r0, 0x2 bl SetBgTilemapBuffer adds r0, r4, 0 bl AllocZeroed adds r1, r0, 0 movs r0, 0x1 bl SetBgTilemapBuffer adds r0, r4, 0 bl AllocZeroed adds r1, r0, 0 movs r0, 0 bl SetBgTilemapBuffer ldr r0, =gUnknown_0856E640 bl InitWindows bl DeactivateAllTextPrinters adds r0, r5, 0 pop {r4,r5} pop {r1} bx r1 .pool thumb_func_end sub_80BE91C thumb_func_start sub_80BE9C4 sub_80BE9C4: @ 80BE9C4 push {lr} lsls r0, 24 lsrs r0, 24 ldr r2, =gTasks lsls r1, r0, 2 adds r1, r0 lsls r1, 3 adds r1, r2 movs r2, 0x8 ldrsh r0, [r1, r2] cmp r0, 0 bne _080BE9F0 ldr r1, [r1] ldr r0, =sub_80BEDF4 cmp r1, r0 bne _080BE9F0 movs r0, 0 b _080BE9F2 .pool _080BE9F0: movs r0, 0x1 _080BE9F2: pop {r1} bx r1 thumb_func_end sub_80BE9C4 thumb_func_start sub_80BE9F8 sub_80BE9F8: @ 80BE9F8 adds r2, r0, 0 lsls r0, r1, 24 lsrs r0, 24 ldr r1, =gUnknown_02039B54 str r2, [r1] ldr r2, =gTasks lsls r1, r0, 2 adds r1, r0 lsls r1, 3 adds r1, r2 movs r3, 0 movs r2, 0x1 strh r2, [r1, 0x8] strh r3, [r1, 0xA] strh r3, [r1, 0xC] strh r3, [r1, 0xE] bx lr .pool thumb_func_end sub_80BE9F8 thumb_func_start sub_80BEA24 sub_80BEA24: @ 80BEA24 push {r4-r6,lr} sub sp, 0x4 lsls r0, 24 lsrs r4, r0, 24 ldr r1, =gMain movs r2, 0x87 lsls r2, 3 adds r0, r1, r2 ldrb r0, [r0] adds r5, r1, 0 cmp r0, 0xA bhi _080BEA7C lsls r0, 2 ldr r1, =_080BEA50 adds r0, r1 ldr r0, [r0] mov pc, r0 .pool .align 2, 0 _080BEA50: .4byte _080BEA7C .4byte _080BEAF0 .4byte _080BEB50 .4byte _080BEB90 .4byte _080BEB98 .4byte _080BEC08 .4byte _080BEC60 .4byte _080BECBC .4byte _080BED04 .4byte _080BED5E .4byte _080BED7C _080BEA7C: ldr r0, =gPaletteFade ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 beq _080BEA8A b _080BEDA0 _080BEA8A: ldr r0, =gUnknown_02039B4C ldr r0, [r0] ldr r3, =0x0000064a adds r0, r3 movs r6, 0x1 strb r6, [r0] ldr r1, =gUnknown_030060B4 ldr r0, [r5, 0xC] str r0, [r1] movs r0, 0 bl SetVBlankCallback movs r2, 0 ldr r1, =gTasks lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r1, r0, r1 movs r3, 0xA ldrsh r0, [r1, r3] cmp r0, 0 beq _080BEABA movs r2, 0x80 lsls r2, 5 _080BEABA: movs r3, 0xC ldrsh r0, [r1, r3] cmp r0, 0 beq _080BEACA movs r1, 0x80 lsls r1, 2 adds r0, r1, 0 orrs r2, r0 _080BEACA: adds r0, r2, 0 bl sub_80C09B0 movs r2, 0x87 lsls r2, 3 adds r0, r5, r2 strb r6, [r0] b _080BEDA0 .pool _080BEAF0: ldr r1, =gPokedexMenu_Gfx movs r2, 0x80 lsls r2, 6 movs r0, 0 str r0, [sp] movs r0, 0x3 movs r3, 0 bl copy_decompressed_tile_data_to_vram_autofree ldr r1, =gUnknown_08DC3080 movs r0, 0x3 movs r2, 0 movs r3, 0 bl CopyToBgTilemapBuffer movs r0, 0 movs r1, 0 bl FillWindowPixelBuffer movs r0, 0 bl PutWindowTilemap movs r0, 0x1 bl PutWindowTilemap ldr r0, =gUnknown_02039B54 ldr r0, [r0] ldrh r1, [r0] movs r0, 0x1 bl sub_80C0D30 movs r0, 0x1 movs r1, 0x2 bl CopyWindowToVram ldr r1, =gMain movs r3, 0x87 lsls r3, 3 adds r1, r3 b _080BED70 .pool _080BEB50: movs r0, 0xD bl sub_80BFCDC ldr r4, =gUnknown_02039B4C ldr r0, [r4] ldr r1, =0x0000064d adds r0, r1 ldrb r0, [r0] movs r1, 0xD bl sub_80BFD0C ldr r0, [r4] ldr r2, =0x0000064c adds r0, r2 ldrb r0, [r0] lsls r0, 31 lsrs r0, 31 bl sub_80BC844 ldr r1, =gMain movs r3, 0x87 lsls r3, 3 adds r1, r3 b _080BED70 .pool _080BEB90: movs r0, 0x87 lsls r0, 3 adds r1, r5, r0 b _080BED70 _080BEB98: ldr r4, =gUnknown_02039B54 ldr r3, [r4] ldrh r0, [r3] ldr r1, =gUnknown_02039B4C ldr r1, [r1] ldr r2, =0x00000612 adds r1, r2 ldrh r2, [r1] negs r1, r2 orrs r1, r2 lsrs r1, 31 ldr r2, [r3] lsls r2, 14 lsrs r2, 31 movs r3, 0 bl sub_80C020C ldr r0, [r4] ldrb r1, [r0, 0x2] movs r0, 0x2 ands r0, r1 cmp r0, 0 bne _080BEBD0 ldr r0, =gPlttBufferUnfaded + 2 movs r1, 0x31 movs r2, 0x1E bl LoadPalette _080BEBD0: movs r0, 0 movs r1, 0x3 bl CopyWindowToVram movs r0, 0x1 bl CopyBgTilemapBufferToVram movs r0, 0x2 bl CopyBgTilemapBufferToVram movs r0, 0x3 bl CopyBgTilemapBufferToVram ldr r1, =gMain movs r3, 0x87 lsls r3, 3 adds r1, r3 b _080BED70 .pool _080BEC08: ldr r0, =gTasks lsls r1, r4, 2 adds r1, r4 lsls r1, 3 adds r4, r1, r0 movs r1, 0xA ldrsh r0, [r4, r1] cmp r0, 0 bne _080BEC44 ldr r0, =gUnknown_02039B54 ldr r0, [r0] ldrh r0, [r0] movs r1, 0x30 movs r2, 0x38 movs r3, 0 bl sub_80C0E9C strh r0, [r4, 0x10] ldr r2, =gSprites movs r3, 0x10 ldrsh r0, [r4, r3] lsls r1, r0, 4 adds r1, r0 lsls r1, 2 adds r1, r2 ldrb r2, [r1, 0x5] movs r0, 0xD negs r0, r0 ands r0, r2 strb r0, [r1, 0x5] _080BEC44: ldr r1, =gMain movs r0, 0x87 lsls r0, 3 adds r1, r0 b _080BED70 .pool _080BEC60: movs r3, 0 ldr r0, =gTasks lsls r1, r4, 2 adds r1, r4 lsls r1, 3 adds r1, r0 movs r2, 0xC ldrsh r0, [r1, r2] cmp r0, 0 beq _080BEC76 movs r3, 0x14 _080BEC76: movs r2, 0xA ldrsh r0, [r1, r2] cmp r0, 0 beq _080BEC98 ldr r2, =gSprites movs r0, 0x10 ldrsh r1, [r1, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r2 ldrb r1, [r0, 0x5] lsrs r1, 4 adds r1, 0x10 movs r0, 0x1 lsls r0, r1 orrs r3, r0 _080BEC98: mvns r0, r3 movs r1, 0 str r1, [sp] movs r2, 0x10 movs r3, 0 bl BeginNormalPaletteFade ldr r0, =gUnknown_030060B4 ldr r0, [r0] bl SetVBlankCallback b _080BED68 .pool _080BECBC: movs r0, 0x50 movs r1, 0 bl SetGpuReg movs r0, 0x52 movs r1, 0 bl SetGpuReg movs r0, 0x54 movs r1, 0 bl SetGpuReg movs r1, 0x82 lsls r1, 5 movs r0, 0 bl SetGpuReg movs r0, 0 bl HideBg movs r0, 0x1 bl ShowBg movs r0, 0x2 bl ShowBg movs r0, 0x3 bl ShowBg ldr r1, =gMain movs r3, 0x87 lsls r3, 3 adds r1, r3 b _080BED70 .pool _080BED04: ldr r0, =gPaletteFade ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 bne _080BEDA0 movs r0, 0x87 lsls r0, 3 adds r2, r5, r0 ldrb r0, [r2] adds r3, r0, 0x1 strb r3, [r2] ldr r1, =gTasks lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r0, r1 movs r1, 0xE ldrsh r0, [r0, r1] cmp r0, 0 bne _080BED58 bl StopCryAndClearCrySongs ldr r0, =gUnknown_02039B54 ldr r0, [r0] ldrh r0, [r0] bl NationalPokedexNumToSpecies lsls r0, 16 lsrs r0, 16 movs r1, 0 movs r2, 0x7D movs r3, 0xA bl PlayCry2 b _080BEDA0 .pool _080BED58: adds r0, r3, 0x1 strb r0, [r2] b _080BEDA0 _080BED5E: bl IsCryPlayingOrClearCrySongs lsls r0, 24 cmp r0, 0 bne _080BEDA0 _080BED68: ldr r1, =gMain movs r2, 0x87 lsls r2, 3 adds r1, r2 _080BED70: ldrb r0, [r1] adds r0, 0x1 strb r0, [r1] b _080BEDA0 .pool _080BED7C: ldr r1, =gTasks lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r0, r1 movs r2, 0 movs r1, 0 strh r1, [r0, 0x8] strh r1, [r0, 0xA] movs r1, 0x1 strh r1, [r0, 0xC] strh r1, [r0, 0xE] ldr r1, =sub_80BEDF4 str r1, [r0] movs r3, 0x87 lsls r3, 3 adds r0, r5, r3 strb r2, [r0] _080BEDA0: add sp, 0x4 pop {r4-r6} pop {r0} bx r0 .pool thumb_func_end sub_80BEA24 thumb_func_start sub_80BEDB0 sub_80BEDB0: @ 80BEDB0 push {lr} bl FreeAllWindowBuffers movs r0, 0 bl GetBgTilemapBuffer cmp r0, 0 beq _080BEDC4 bl Free _080BEDC4: movs r0, 0x1 bl GetBgTilemapBuffer cmp r0, 0 beq _080BEDD2 bl Free _080BEDD2: movs r0, 0x2 bl GetBgTilemapBuffer cmp r0, 0 beq _080BEDE0 bl Free _080BEDE0: movs r0, 0x3 bl GetBgTilemapBuffer cmp r0, 0 beq _080BEDEE bl Free _080BEDEE: pop {r0} bx r0 thumb_func_end sub_80BEDB0 thumb_func_start sub_80BEDF4 sub_80BEDF4: @ 80BEDF4 push {r4,r5,lr} sub sp, 0x4 lsls r0, 24 lsrs r0, 24 ldr r2, =gTasks lsls r1, r0, 2 adds r1, r0 lsls r1, 3 adds r4, r1, r2 movs r0, 0x8 ldrsh r5, [r4, r0] cmp r5, 0 beq _080BEE34 movs r0, 0x1 negs r0, r0 movs r1, 0 str r1, [sp] movs r2, 0 movs r3, 0x10 bl BeginNormalPaletteFade ldr r0, =sub_80BF038 str r0, [r4] movs r0, 0x6C bl PlaySE b _080BEFBA .pool _080BEE34: ldr r1, =gMain ldrh r2, [r1, 0x2E] movs r0, 0x2 ands r0, r2 lsls r0, 16 lsrs r3, r0, 16 cmp r3, 0 beq _080BEE50 movs r0, 0x1 negs r0, r0 str r5, [sp] b _080BEF0E .pool _080BEE50: movs r0, 0x1 ands r0, r2 cmp r0, 0 beq _080BEF28 ldr r5, =gUnknown_02039B4C ldr r0, [r5] ldr r1, =0x0000064d adds r0, r1 ldrb r1, [r0] cmp r1, 0x1 beq _080BEEA0 cmp r1, 0x1 bgt _080BEE78 cmp r1, 0 beq _080BEE82 b _080BEFBA .pool _080BEE78: cmp r1, 0x2 beq _080BEEC0 cmp r1, 0x3 beq _080BEF08 b _080BEFBA _080BEE82: movs r0, 0x15 negs r0, r0 str r3, [sp] movs r1, 0 movs r2, 0 movs r3, 0x10 bl BeginNormalPaletteFade ldr r0, [r5] ldr r3, =0x0000064e adds r0, r3 movs r1, 0x1 b _080BEEF0 .pool _080BEEA0: movs r0, 0x15 negs r0, r0 str r3, [sp] movs r1, 0 movs r2, 0 movs r3, 0x10 bl BeginNormalPaletteFade ldr r0, [r5] ldr r1, =0x0000064e adds r0, r1 movs r1, 0x2 b _080BEEF0 .pool _080BEEC0: ldr r0, =gUnknown_02039B54 ldr r0, [r0] ldrb r0, [r0, 0x2] ands r1, r0 cmp r1, 0 bne _080BEED8 movs r0, 0x20 bl PlaySE b _080BEFBA .pool _080BEED8: movs r0, 0x15 negs r0, r0 str r3, [sp] movs r1, 0 movs r2, 0 movs r3, 0x10 bl BeginNormalPaletteFade ldr r0, [r5] ldr r3, =0x0000064e adds r0, r3 movs r1, 0x3 _080BEEF0: strb r1, [r0] ldr r0, =sub_80BEFD0 str r0, [r4] movs r0, 0x15 bl PlaySE b _080BEFBA .pool _080BEF08: movs r0, 0x1 negs r0, r0 str r3, [sp] _080BEF0E: movs r1, 0 movs r2, 0 movs r3, 0x10 bl BeginNormalPaletteFade ldr r0, =sub_80BF070 str r0, [r4] movs r0, 0x3 bl PlaySE b _080BEFBA .pool _080BEF28: movs r0, 0x20 ands r0, r2 cmp r0, 0 bne _080BEF44 movs r0, 0x80 lsls r0, 2 ands r0, r2 cmp r0, 0 beq _080BEF78 ldr r0, =gSaveBlock2Ptr ldr r0, [r0] ldrb r0, [r0, 0x13] cmp r0, 0x1 bne _080BEF78 _080BEF44: ldr r3, =gUnknown_02039B4C ldr r0, [r3] ldr r4, =0x0000064d adds r2, r0, r4 ldrb r0, [r2] cmp r0, 0 beq _080BEF78 subs r0, 0x1 strb r0, [r2] ldr r0, [r3] adds r0, r4 ldrb r0, [r0] movs r1, 0xD bl sub_80BFD0C movs r0, 0x6D bl PlaySE b _080BEFBA .pool _080BEF78: ldrh r1, [r1, 0x2E] movs r0, 0x10 ands r0, r1 cmp r0, 0 bne _080BEF96 movs r0, 0x80 lsls r0, 1 ands r0, r1 cmp r0, 0 beq _080BEFBA ldr r0, =gSaveBlock2Ptr ldr r0, [r0] ldrb r0, [r0, 0x13] cmp r0, 0x1 bne _080BEFBA _080BEF96: ldr r2, =gUnknown_02039B4C ldr r0, [r2] ldr r3, =0x0000064d adds r1, r0, r3 ldrb r0, [r1] cmp r0, 0x2 bhi _080BEFBA adds r0, 0x1 strb r0, [r1] ldr r0, [r2] adds r0, r3 ldrb r0, [r0] movs r1, 0xD bl sub_80BFD0C movs r0, 0x6D bl PlaySE _080BEFBA: add sp, 0x4 pop {r4,r5} pop {r0} bx r0 .pool thumb_func_end sub_80BEDF4 thumb_func_start sub_80BEFD0 sub_80BEFD0: @ 80BEFD0 push {r4,lr} lsls r0, 24 lsrs r2, r0, 24 ldr r0, =gPaletteFade ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 bne _080BF02C ldr r1, =gTasks lsls r0, r2, 2 adds r0, r2 lsls r0, 3 adds r4, r0, r1 ldrh r0, [r4, 0x10] bl sub_818D820 ldr r0, =gUnknown_02039B4C ldr r0, [r0] ldr r1, =0x0000064e adds r0, r1 ldrb r0, [r0] cmp r0, 0x2 beq _080BF020 cmp r0, 0x2 ble _080BF008 cmp r0, 0x3 beq _080BF028 _080BF008: ldr r0, =sub_80BF0AC b _080BF02A .pool _080BF020: ldr r0, =sub_80BF250 b _080BF02A .pool _080BF028: ldr r0, =sub_80BF82C _080BF02A: str r0, [r4] _080BF02C: pop {r4} pop {r0} bx r0 .pool thumb_func_end sub_80BEFD0 thumb_func_start sub_80BF038 sub_80BF038: @ 80BF038 push {r4,lr} lsls r0, 24 lsrs r2, r0, 24 ldr r0, =gPaletteFade ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 bne _080BF05E ldr r0, =gTasks lsls r4, r2, 2 adds r4, r2 lsls r4, 3 adds r4, r0 ldrh r0, [r4, 0x10] bl sub_818D820 ldr r0, =sub_80BEA24 str r0, [r4] _080BF05E: pop {r4} pop {r0} bx r0 .pool thumb_func_end sub_80BF038 thumb_func_start sub_80BF070 sub_80BF070: @ 80BF070 push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 ldr r0, =gPaletteFade ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 bne _080BF09C ldr r0, =gTasks lsls r1, r4, 2 adds r1, r4 lsls r1, 3 adds r1, r0 ldrh r0, [r1, 0x10] bl sub_818D820 bl sub_80BEDB0 adds r0, r4, 0 bl DestroyTask _080BF09C: pop {r4} pop {r0} bx r0 .pool thumb_func_end sub_80BF070 thumb_func_start sub_80BF0AC sub_80BF0AC: @ 80BF0AC push {r4-r7,lr} lsls r0, 24 lsrs r6, r0, 24 ldr r2, =gMain movs r0, 0x87 lsls r0, 3 adds r7, r2, r0 ldrb r0, [r7] cmp r0, 0x1 beq _080BF120 cmp r0, 0x1 ble _080BF0C8 cmp r0, 0x2 beq _080BF15C _080BF0C8: ldr r0, =gPaletteFade ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 lsls r0, 24 lsrs r5, r0, 24 cmp r5, 0 bne _080BF196 ldr r4, =gUnknown_02039B4C ldr r0, [r4] ldr r1, =0x0000064a adds r0, r1 movs r1, 0x5 strb r1, [r0] ldr r1, =gUnknown_030060B4 ldr r0, [r2, 0xC] str r0, [r1] movs r0, 0 bl SetVBlankCallback movs r0, 0x80 lsls r0, 2 bl sub_80C09B0 ldr r0, [r4] ldr r1, =0x0000064d adds r0, r1 strb r5, [r0] movs r0, 0x1 strb r0, [r7] b _080BF196 .pool _080BF120: movs r0, 0xD bl sub_80BFCF4 movs r0, 0 movs r1, 0xD bl sub_80BFD7C ldr r0, =gUnknown_02039B4C ldr r0, [r0] ldr r1, =0x0000064c adds r0, r1 ldrb r0, [r0] lsls r0, 31 lsrs r0, 31 bl sub_80BC844 movs r1, 0xD0 lsls r1, 4 movs r0, 0xA bl SetGpuReg ldrb r0, [r7] adds r0, 0x1 strb r0, [r7] b _080BF196 .pool _080BF15C: ldr r0, =gUnknown_02039B54 ldr r0, [r0] ldrh r0, [r0] bl NationalPokedexNumToSpecies lsls r0, 16 lsrs r0, 16 ldr r5, =gUnknown_02039B4C ldr r1, [r5] ldr r4, =0x0000064e adds r1, r4 bl sub_813D3D8 ldr r0, =gUnknown_030060B4 ldr r0, [r0] bl SetVBlankCallback ldr r0, [r5] adds r0, r4 movs r1, 0 strb r1, [r0] strb r1, [r7] ldr r1, =gTasks lsls r0, r6, 2 adds r0, r6 lsls r0, 3 adds r0, r1 ldr r1, =sub_80BF1B4 str r1, [r0] _080BF196: pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_80BF0AC thumb_func_start sub_80BF1B4 sub_80BF1B4: @ 80BF1B4 push {lr} lsls r0, 24 lsrs r2, r0, 24 ldr r0, =gUnknown_02039B4C ldr r0, [r0] ldr r1, =0x0000064e adds r0, r1 ldrb r0, [r0] cmp r0, 0 beq _080BF1D6 ldr r0, =gTasks lsls r1, r2, 2 adds r1, r2 lsls r1, 3 adds r1, r0 ldr r0, =sub_80BF1EC str r0, [r1] _080BF1D6: pop {r0} bx r0 .pool thumb_func_end sub_80BF1B4 thumb_func_start sub_80BF1EC sub_80BF1EC: @ 80BF1EC push {lr} lsls r0, 24 lsrs r2, r0, 24 ldr r0, =gPaletteFade ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 bne _080BF242 ldr r0, =gUnknown_02039B4C ldr r0, [r0] ldr r1, =0x0000064e adds r0, r1 ldrb r0, [r0] cmp r0, 0x1 beq _080BF210 cmp r0, 0x2 beq _080BF234 _080BF210: ldr r0, =gTasks lsls r1, r2, 2 adds r1, r2 lsls r1, 3 adds r1, r0 ldr r0, =sub_80BEA24 b _080BF240 .pool _080BF234: ldr r0, =gTasks lsls r1, r2, 2 adds r1, r2 lsls r1, 3 adds r1, r0 ldr r0, =sub_80BF250 _080BF240: str r0, [r1] _080BF242: pop {r0} bx r0 .pool thumb_func_end sub_80BF1EC thumb_func_start sub_80BF250 sub_80BF250: @ 80BF250 push {r4,r5,lr} sub sp, 0x14 lsls r0, 24 lsrs r4, r0, 24 ldr r1, =gMain movs r2, 0x87 lsls r2, 3 adds r0, r1, r2 ldrb r0, [r0] adds r2, r1, 0 cmp r0, 0xA bhi _080BF2A8 lsls r0, 2 ldr r1, =_080BF27C adds r0, r1 ldr r0, [r0] mov pc, r0 .pool .align 2, 0 _080BF27C: .4byte _080BF2A8 .4byte _080BF310 .4byte _080BF360 .4byte _080BF38C .4byte _080BF3A0 .4byte _080BF3D0 .4byte _080BF41C .4byte _080BF498 .4byte _080BF514 .4byte _080BF540 .4byte _080BF590 _080BF2A8: ldr r0, =gPaletteFade ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 beq _080BF2B6 b _080BF5B2 _080BF2B6: ldr r0, =gMPlayInfo_BGM bl m4aMPlayStop ldr r5, =gUnknown_02039B4C ldr r0, [r5] ldr r3, =0x0000064a adds r0, r3 movs r1, 0x6 strb r1, [r0] ldr r1, =gUnknown_030060B4 ldr r4, =gMain ldr r0, [r4, 0xC] str r0, [r1] movs r0, 0 bl SetVBlankCallback movs r0, 0x80 lsls r0, 2 bl sub_80C09B0 ldr r0, [r5] ldr r1, =0x0000064d adds r0, r1 movs r1, 0x1 strb r1, [r0] movs r2, 0x87 lsls r2, 3 adds r4, r2 strb r1, [r4] b _080BF5B2 .pool _080BF310: ldr r1, =gPokedexMenu_Gfx movs r2, 0x80 lsls r2, 6 movs r0, 0 str r0, [sp] movs r0, 0x3 movs r3, 0 bl copy_decompressed_tile_data_to_vram_autofree ldr r1, =gUnknown_08DC3198 movs r0, 0x3 movs r2, 0 movs r3, 0 bl CopyToBgTilemapBuffer movs r0, 0 movs r1, 0 bl FillWindowPixelBuffer movs r0, 0 bl PutWindowTilemap movs r0, 0x3 bl PutWindowTilemap movs r0, 0x2 bl PutWindowTilemap ldr r1, =gMain movs r3, 0x87 lsls r3, 3 adds r1, r3 b _080BF582 .pool _080BF360: movs r0, 0xD bl sub_80BFCF4 movs r0, 0x1 movs r1, 0xD bl sub_80BFD7C ldr r0, =gUnknown_02039B4C ldr r0, [r0] ldr r4, =0x0000064c adds r0, r4 ldrb r0, [r0] lsls r0, 31 lsrs r0, 31 bl sub_80BC844 b _080BF57A .pool _080BF38C: bl ResetPaletteFade ldr r1, =gMain movs r2, 0x87 lsls r2, 3 adds r1, r2 b _080BF582 .pool _080BF3A0: ldr r0, =gText_CryOf movs r1, 0x52 movs r2, 0x21 bl sub_80BE8DC ldr r0, =gUnknown_02039B54 ldr r0, [r0] ldrh r1, [r0] movs r0, 0 movs r2, 0x52 movs r3, 0x31 bl sub_80C0B44 ldr r1, =gMain movs r3, 0x87 lsls r3, 3 adds r1, r3 b _080BF582 .pool _080BF3D0: ldr r0, =gUnknown_02039B54 ldr r0, [r0] ldrh r0, [r0] movs r1, 0x30 movs r2, 0x38 movs r3, 0 bl sub_80C0E9C ldr r2, =gTasks lsls r1, r4, 2 adds r1, r4 lsls r1, 3 adds r1, r2 movs r3, 0 strh r0, [r1, 0x10] ldr r2, =gSprites movs r4, 0x10 ldrsh r0, [r1, r4] lsls r1, r0, 4 adds r1, r0 lsls r1, 2 adds r1, r2 ldrb r2, [r1, 0x5] movs r0, 0xD negs r0, r0 ands r0, r2 strb r0, [r1, 0x5] ldr r0, =gUnknown_030061EC strb r3, [r0] b _080BF57A .pool _080BF41C: ldr r1, =0xffff0000 ldr r0, [sp, 0x4] ands r0, r1 ldr r1, =0x00004020 orrs r0, r1 ldr r1, =0xff00ffff ands r0, r1 movs r1, 0xF8 lsls r1, 13 orrs r0, r1 ldr r1, =0x00ffffff ands r0, r1 movs r1, 0x80 lsls r1, 20 orrs r0, r1 str r0, [sp, 0x4] ldr r1, =0xffff00ff ldr r0, [sp, 0x8] ands r0, r1 movs r1, 0xF0 lsls r1, 5 orrs r0, r1 ldr r1, =0xffffff00 ands r0, r1 movs r1, 0xC orrs r0, r1 str r0, [sp, 0x8] add r0, sp, 0x4 movs r1, 0x2 bl sub_8145354 lsls r0, 24 cmp r0, 0 bne _080BF462 b _080BF5B2 _080BF462: ldr r1, =gMain movs r2, 0x87 lsls r2, 3 adds r1, r2 ldrb r0, [r1] adds r0, 0x1 movs r2, 0 strb r0, [r1] ldr r0, =gUnknown_030061EC strb r2, [r0] b _080BF5B2 .pool _080BF498: ldr r1, =0x00ffffff ldr r0, [sp, 0xC] ands r0, r1 movs r1, 0x90 lsls r1, 20 orrs r0, r1 str r0, [sp, 0xC] ldr r2, =0xffffff00 add r0, sp, 0xC ldr r1, [r0, 0x4] ands r1, r2 movs r2, 0x12 orrs r1, r2 ldr r2, =0xffff00ff ands r1, r2 movs r2, 0xC0 lsls r2, 2 orrs r1, r2 str r1, [r0, 0x4] movs r1, 0x3 bl sub_8145850 lsls r0, 24 cmp r0, 0 beq _080BF4D8 ldr r1, =gMain movs r3, 0x87 lsls r3, 3 adds r1, r3 ldrb r0, [r1] adds r0, 0x1 strb r0, [r1] _080BF4D8: movs r0, 0x3 movs r1, 0x2 bl CopyWindowToVram movs r0, 0 movs r1, 0x3 bl CopyWindowToVram movs r0, 0 bl CopyBgTilemapBufferToVram movs r0, 0x1 bl CopyBgTilemapBufferToVram movs r0, 0x2 bl CopyBgTilemapBufferToVram movs r0, 0x3 bl CopyBgTilemapBufferToVram b _080BF5B2 .pool _080BF514: movs r0, 0x15 negs r0, r0 movs r1, 0 str r1, [sp] movs r2, 0x10 movs r3, 0 bl BeginNormalPaletteFade ldr r0, =gUnknown_030060B4 ldr r0, [r0] bl SetVBlankCallback ldr r1, =gMain movs r4, 0x87 lsls r4, 3 adds r1, r4 b _080BF582 .pool _080BF540: movs r0, 0x50 movs r1, 0 bl SetGpuReg movs r0, 0x52 movs r1, 0 bl SetGpuReg movs r0, 0x54 movs r1, 0 bl SetGpuReg movs r1, 0x82 lsls r1, 5 movs r0, 0 bl SetGpuReg movs r0, 0 bl ShowBg movs r0, 0x1 bl ShowBg movs r0, 0x2 bl ShowBg movs r0, 0x3 bl ShowBg _080BF57A: ldr r1, =gMain movs r0, 0x87 lsls r0, 3 adds r1, r0 _080BF582: ldrb r0, [r1] adds r0, 0x1 strb r0, [r1] b _080BF5B2 .pool _080BF590: ldr r0, =gUnknown_02039B4C ldr r0, [r0] ldr r1, =0x0000064e adds r0, r1 movs r1, 0 strb r1, [r0] movs r3, 0x87 lsls r3, 3 adds r0, r2, r3 strb r1, [r0] ldr r1, =gTasks lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r0, r1 ldr r1, =sub_80BF5CC str r1, [r0] _080BF5B2: add sp, 0x14 pop {r4,r5} pop {r0} bx r0 .pool thumb_func_end sub_80BF250 thumb_func_start sub_80BF5CC sub_80BF5CC: @ 80BF5CC push {r4,r5,lr} sub sp, 0x4 lsls r0, 24 lsrs r4, r0, 24 movs r0, 0x2 bl sub_814545C bl IsCryPlaying lsls r0, 24 cmp r0, 0 beq _080BF5EC movs r0, 0x1 bl sub_80BF7FC b _080BF5F2 _080BF5EC: movs r0, 0 bl sub_80BF7FC _080BF5F2: ldr r1, =gMain ldrh r2, [r1, 0x2E] movs r0, 0x1 ands r0, r2 adds r5, r1, 0 cmp r0, 0 beq _080BF624 movs r0, 0x1 bl sub_80BF7FC ldr r0, =gUnknown_02039B54 ldr r0, [r0] ldrh r0, [r0] bl NationalPokedexNumToSpecies lsls r0, 16 lsrs r0, 16 bl sub_8145534 b _080BF772 .pool _080BF624: ldr r0, =gPaletteFade ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 lsls r0, 24 lsrs r1, r0, 24 cmp r1, 0 beq _080BF636 b _080BF772 _080BF636: movs r0, 0x2 ands r0, r2 lsls r0, 16 lsrs r3, r0, 16 cmp r3, 0 beq _080BF694 movs r0, 0x15 negs r0, r0 str r1, [sp] movs r1, 0 movs r2, 0 movs r3, 0x10 bl BeginNormalPaletteFade ldr r0, =gMPlayInfo_BGM bl m4aMPlayContinue ldr r0, =gUnknown_02039B4C ldr r0, [r0] ldr r1, =0x0000064e adds r0, r1 movs r1, 0x1 strb r1, [r0] ldr r1, =gTasks lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r0, r1 ldr r1, =sub_80BF790 str r1, [r0] movs r0, 0x3 bl PlaySE b _080BF772 .pool _080BF694: movs r0, 0x20 ands r0, r2 cmp r0, 0 bne _080BF6B0 movs r0, 0x80 lsls r0, 2 ands r0, r2 cmp r0, 0 beq _080BF700 ldr r0, =gSaveBlock2Ptr ldr r0, [r0] ldrb r0, [r0, 0x13] cmp r0, 0x1 bne _080BF700 _080BF6B0: movs r0, 0x15 negs r0, r0 str r3, [sp] movs r1, 0 movs r2, 0 movs r3, 0x10 bl BeginNormalPaletteFade ldr r0, =gMPlayInfo_BGM bl m4aMPlayContinue ldr r0, =gUnknown_02039B4C ldr r0, [r0] ldr r1, =0x0000064e adds r0, r1 movs r1, 0x2 strb r1, [r0] ldr r1, =gTasks lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r0, r1 ldr r1, =sub_80BF790 str r1, [r0] movs r0, 0x6D bl PlaySE b _080BF772 .pool _080BF700: ldrh r1, [r5, 0x2E] movs r0, 0x10 ands r0, r1 cmp r0, 0 bne _080BF71E movs r0, 0x80 lsls r0, 1 ands r0, r1 cmp r0, 0 beq _080BF772 ldr r0, =gSaveBlock2Ptr ldr r0, [r0] ldrb r0, [r0, 0x13] cmp r0, 0x1 bne _080BF772 _080BF71E: ldr r0, =gUnknown_02039B54 ldr r0, [r0] ldrb r1, [r0, 0x2] movs r0, 0x2 ands r0, r1 cmp r0, 0 bne _080BF73C movs r0, 0x20 bl PlaySE b _080BF772 .pool _080BF73C: movs r0, 0x15 negs r0, r0 movs r1, 0 str r1, [sp] movs r2, 0 movs r3, 0x10 bl BeginNormalPaletteFade ldr r0, =gMPlayInfo_BGM bl m4aMPlayContinue ldr r0, =gUnknown_02039B4C ldr r0, [r0] ldr r1, =0x0000064e adds r0, r1 movs r1, 0x3 strb r1, [r0] ldr r1, =gTasks lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r0, r1 ldr r1, =sub_80BF790 str r1, [r0] movs r0, 0x6D bl PlaySE _080BF772: add sp, 0x4 pop {r4,r5} pop {r0} bx r0 .pool thumb_func_end sub_80BF5CC thumb_func_start sub_80BF790 sub_80BF790: @ 80BF790 push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 ldr r0, =gPaletteFade ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 bne _080BF7F0 bl sub_8145914 ldr r1, =gTasks lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r4, r0, r1 ldrh r0, [r4, 0x10] bl sub_818D820 ldr r0, =gUnknown_02039B4C ldr r0, [r0] ldr r1, =0x0000064e adds r0, r1 ldrb r0, [r0] cmp r0, 0x2 beq _080BF7E4 cmp r0, 0x2 ble _080BF7CC cmp r0, 0x3 beq _080BF7EC _080BF7CC: ldr r0, =sub_80BEA24 b _080BF7EE .pool _080BF7E4: ldr r0, =sub_80BF0AC b _080BF7EE .pool _080BF7EC: ldr r0, =sub_80BF82C _080BF7EE: str r0, [r4] _080BF7F0: pop {r4} pop {r0} bx r0 .pool thumb_func_end sub_80BF790 thumb_func_start sub_80BF7FC sub_80BF7FC: @ 80BF7FC push {lr} sub sp, 0x4 lsls r0, 24 cmp r0, 0 beq _080BF810 ldr r1, =0x00000392 b _080BF812 .pool _080BF810: ldr r1, =0x000002af _080BF812: mov r0, sp strh r1, [r0] mov r0, sp movs r1, 0x5D movs r2, 0x2 bl LoadPalette add sp, 0x4 pop {r0} bx r0 .pool thumb_func_end sub_80BF7FC thumb_func_start sub_80BF82C sub_80BF82C: @ 80BF82C push {r4-r7,lr} sub sp, 0x44 lsls r0, 24 lsrs r7, r0, 24 ldr r1, =gMain movs r2, 0x87 lsls r2, 3 adds r0, r1, r2 ldrb r0, [r0] adds r5, r1, 0 cmp r0, 0x9 bhi _080BF880 lsls r0, 2 ldr r1, =_080BF858 adds r0, r1 ldr r0, [r0] mov pc, r0 .pool .align 2, 0 _080BF858: .4byte _080BF880 .4byte _080BF8D8 .4byte _080BF910 .4byte _080BF93C .4byte _080BF97C .4byte _080BF982 .4byte _080BFA34 .4byte _080BFAE8 .4byte _080BFB14 .4byte _080BFB64 _080BF880: ldr r0, =gPaletteFade ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 beq _080BF88E b _080BFB94 _080BF88E: ldr r4, =gUnknown_02039B4C ldr r0, [r4] ldr r1, =0x0000064a adds r0, r1 movs r1, 0x7 strb r1, [r0] ldr r1, =gUnknown_030060B4 ldr r0, [r5, 0xC] str r0, [r1] movs r0, 0 bl SetVBlankCallback movs r0, 0x80 lsls r0, 2 bl sub_80C09B0 ldr r0, [r4] ldr r2, =0x0000064d adds r0, r2 movs r1, 0x2 strb r1, [r0] movs r0, 0x87 lsls r0, 3 adds r1, r5, r0 movs r0, 0x1 strb r0, [r1] b _080BFB94 .pool _080BF8D8: ldr r1, =gPokedexMenu_Gfx movs r2, 0x80 lsls r2, 6 movs r0, 0 str r0, [sp] movs r0, 0x3 movs r3, 0 bl copy_decompressed_tile_data_to_vram_autofree ldr r1, =gUnknown_08DC2E6C movs r0, 0x3 movs r2, 0 movs r3, 0 bl CopyToBgTilemapBuffer movs r0, 0 movs r1, 0 bl FillWindowPixelBuffer movs r0, 0 bl PutWindowTilemap b _080BFB4E .pool _080BF910: movs r0, 0xD bl sub_80BFCF4 movs r0, 0x2 movs r1, 0xD bl sub_80BFD7C ldr r0, =gUnknown_02039B4C ldr r0, [r0] ldr r1, =0x0000064c adds r0, r1 ldrb r0, [r0] lsls r0, 31 lsrs r0, 31 bl sub_80BC844 b _080BFB4E .pool _080BF93C: ldr r1, =gText_SizeComparedTo add r0, sp, 0x4 bl StringCopy ldr r0, =gSaveBlock2Ptr ldr r1, [r0] add r0, sp, 0x4 bl StringAppend movs r0, 0x1 add r1, sp, 0x4 movs r2, 0xF0 bl GetStringCenterAlignXOffset adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 add r0, sp, 0x4 movs r2, 0x79 bl sub_80BE8DC ldr r1, =gMain movs r0, 0x87 lsls r0, 3 adds r1, r0 b _080BFB56 .pool _080BF97C: bl ResetPaletteFade b _080BFB4E _080BF982: ldr r0, =gSaveBlock2Ptr ldr r0, [r0] ldrb r0, [r0, 0x8] bl PlayerGenderToFrontTrainerPicId lsls r0, 16 lsrs r0, 16 movs r1, 0x98 movs r2, 0x38 movs r3, 0 bl sub_80C0EF8 lsls r0, 24 lsrs r6, r0, 24 ldr r0, =gSprites lsls r4, r6, 4 adds r4, r6 lsls r4, 2 adds r4, r0 ldrb r1, [r4, 0x1] movs r0, 0x4 negs r0, r0 ands r0, r1 movs r1, 0x1 orrs r0, r1 strb r0, [r4, 0x1] ldrb r1, [r4, 0x3] movs r0, 0x3F negs r0, r0 ands r0, r1 movs r1, 0x2 orrs r0, r1 strb r0, [r4, 0x3] ldrb r1, [r4, 0x5] movs r0, 0xD negs r0, r0 ands r0, r1 strb r0, [r4, 0x5] ldr r2, =gPokedexEntries ldr r0, =gUnknown_02039B54 ldr r1, [r0] ldrh r0, [r1] lsls r0, 5 adds r0, r2 ldrh r0, [r0, 0x1C] strh r0, [r4, 0x26] ldrh r0, [r1] lsls r0, 5 adds r0, r2 ldrh r1, [r0, 0x1A] str r1, [sp] movs r0, 0x1 movs r2, 0 movs r3, 0 bl SetOamMatrix ldr r0, =gUnknown_0856E610 ldrb r1, [r4, 0x5] lsrs r1, 4 adds r1, 0x10 lsls r1, 4 movs r2, 0x20 bl LoadPalette ldr r1, =gTasks lsls r0, r7, 2 adds r0, r7 lsls r0, 3 adds r0, r1 strh r6, [r0, 0x12] ldr r1, =gMain movs r0, 0x87 lsls r0, 3 adds r1, r0 b _080BFB56 .pool _080BFA34: ldr r5, =gUnknown_02039B54 ldr r0, [r5] ldrh r0, [r0] movs r1, 0x58 movs r2, 0x38 movs r3, 0x1 bl sub_80C0E9C lsls r0, 24 lsrs r6, r0, 24 ldr r0, =gSprites lsls r4, r6, 4 adds r4, r6 lsls r4, 2 adds r4, r0 ldrb r1, [r4, 0x1] movs r0, 0x4 negs r0, r0 ands r0, r1 movs r1, 0x1 orrs r0, r1 strb r0, [r4, 0x1] ldrb r1, [r4, 0x3] movs r0, 0x3F negs r0, r0 ands r0, r1 movs r1, 0x4 orrs r0, r1 strb r0, [r4, 0x3] ldrb r1, [r4, 0x5] movs r0, 0xD negs r0, r0 ands r0, r1 strb r0, [r4, 0x5] ldr r2, =gPokedexEntries ldr r1, [r5] ldrh r0, [r1] lsls r0, 5 adds r0, r2 ldrh r0, [r0, 0x18] strh r0, [r4, 0x26] ldrh r0, [r1] lsls r0, 5 adds r0, r2 ldrh r1, [r0, 0x16] str r1, [sp] movs r0, 0x2 movs r2, 0 movs r3, 0 bl SetOamMatrix ldr r0, =gUnknown_0856E610 ldrb r1, [r4, 0x5] lsrs r1, 4 adds r1, 0x10 lsls r1, 4 movs r2, 0x20 bl LoadPalette ldr r1, =gTasks lsls r0, r7, 2 adds r0, r7 lsls r0, 3 adds r0, r1 strh r6, [r0, 0x10] movs r0, 0 movs r1, 0x3 bl CopyWindowToVram movs r0, 0x1 bl CopyBgTilemapBufferToVram movs r0, 0x2 bl CopyBgTilemapBufferToVram movs r0, 0x3 bl CopyBgTilemapBufferToVram b _080BFB4E .pool _080BFAE8: movs r0, 0x15 negs r0, r0 movs r1, 0 str r1, [sp] movs r2, 0x10 movs r3, 0 bl BeginNormalPaletteFade ldr r0, =gUnknown_030060B4 ldr r0, [r0] bl SetVBlankCallback ldr r1, =gMain movs r0, 0x87 lsls r0, 3 adds r1, r0 b _080BFB56 .pool _080BFB14: movs r0, 0x50 movs r1, 0 bl SetGpuReg movs r0, 0x52 movs r1, 0 bl SetGpuReg movs r0, 0x54 movs r1, 0 bl SetGpuReg movs r1, 0x82 lsls r1, 5 movs r0, 0 bl SetGpuReg movs r0, 0 bl HideBg movs r0, 0x1 bl ShowBg movs r0, 0x2 bl ShowBg movs r0, 0x3 bl ShowBg _080BFB4E: ldr r1, =gMain movs r2, 0x87 lsls r2, 3 adds r1, r2 _080BFB56: ldrb r0, [r1] adds r0, 0x1 strb r0, [r1] b _080BFB94 .pool _080BFB64: ldr r0, =gPaletteFade ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 lsls r0, 24 lsrs r2, r0, 24 cmp r2, 0 bne _080BFB94 ldr r0, =gUnknown_02039B4C ldr r0, [r0] ldr r1, =0x0000064e adds r0, r1 strb r2, [r0] movs r1, 0x87 lsls r1, 3 adds r0, r5, r1 strb r2, [r0] ldr r1, =gTasks lsls r0, r7, 2 adds r0, r7 lsls r0, 3 adds r0, r1 ldr r1, =sub_80BFBB0 str r1, [r0] _080BFB94: add sp, 0x44 pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_80BF82C thumb_func_start sub_80BFBB0 sub_80BFBB0: @ 80BFBB0 push {r4,r5,lr} sub sp, 0x4 lsls r0, 24 lsrs r4, r0, 24 adds r5, r4, 0 ldr r0, =gMain ldrh r1, [r0, 0x2E] movs r0, 0x2 ands r0, r1 lsls r0, 16 lsrs r2, r0, 16 cmp r2, 0 beq _080BFC10 movs r0, 0x15 negs r0, r0 movs r1, 0 str r1, [sp] movs r2, 0 movs r3, 0x10 bl BeginNormalPaletteFade ldr r0, =gUnknown_02039B4C ldr r0, [r0] ldr r1, =0x0000064e adds r0, r1 movs r1, 0x1 strb r1, [r0] ldr r1, =gTasks lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r0, r1 ldr r1, =sub_80BFC78 str r1, [r0] movs r0, 0x3 bl PlaySE b _080BFC5C .pool _080BFC10: movs r0, 0x20 ands r0, r1 cmp r0, 0 bne _080BFC2C movs r0, 0x80 lsls r0, 2 ands r0, r1 cmp r0, 0 beq _080BFC5C ldr r0, =gSaveBlock2Ptr ldr r0, [r0] ldrb r0, [r0, 0x13] cmp r0, 0x1 bne _080BFC5C _080BFC2C: movs r0, 0x15 negs r0, r0 str r2, [sp] movs r1, 0 movs r2, 0 movs r3, 0x10 bl BeginNormalPaletteFade ldr r0, =gUnknown_02039B4C ldr r0, [r0] ldr r1, =0x0000064e adds r0, r1 movs r1, 0x2 strb r1, [r0] ldr r1, =gTasks lsls r0, r5, 2 adds r0, r5 lsls r0, 3 adds r0, r1 ldr r1, =sub_80BFC78 str r1, [r0] movs r0, 0x6D bl PlaySE _080BFC5C: add sp, 0x4 pop {r4,r5} pop {r0} bx r0 .pool thumb_func_end sub_80BFBB0 thumb_func_start sub_80BFC78 sub_80BFC78: @ 80BFC78 push {r4,lr} lsls r0, 24 lsrs r2, r0, 24 ldr r0, =gPaletteFade ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 bne _080BFCD0 ldr r1, =gTasks lsls r0, r2, 2 adds r0, r2 lsls r0, 3 adds r4, r0, r1 ldrh r0, [r4, 0x10] bl sub_818D820 ldrh r0, [r4, 0x12] bl sub_818D8F0 ldr r0, =gUnknown_02039B4C ldr r0, [r0] ldr r1, =0x0000064e adds r0, r1 ldrb r0, [r0] cmp r0, 0x1 beq _080BFCB2 cmp r0, 0x2 beq _080BFCCC _080BFCB2: ldr r0, =sub_80BEA24 b _080BFCCE .pool _080BFCCC: ldr r0, =sub_80BF250 _080BFCCE: str r0, [r4] _080BFCD0: pop {r4} pop {r0} bx r0 .pool thumb_func_end sub_80BFC78 thumb_func_start sub_80BFCDC sub_80BFCDC: @ 80BFCDC push {lr} ldr r1, =gUnknown_08DC2F5C movs r0, 0x1 movs r2, 0 movs r3, 0 bl CopyToBgTilemapBuffer pop {r0} bx r0 .pool thumb_func_end sub_80BFCDC thumb_func_start sub_80BFCF4 sub_80BFCF4: @ 80BFCF4 push {lr} ldr r1, =gUnknown_08DC2FEC movs r0, 0x1 movs r2, 0 movs r3, 0 bl CopyToBgTilemapBuffer pop {r0} bx r0 .pool thumb_func_end sub_80BFCF4 thumb_func_start sub_80BFD0C sub_80BFD0C: @ 80BFD0C push {r4-r7,lr} mov r7, r8 push {r7} lsls r0, 24 lsrs r0, 24 mov r8, r0 movs r0, 0x1 bl GetBgTilemapBuffer adds r7, r0, 0 movs r1, 0 _080BFD22: lsls r0, r1, 3 subs r0, r1 adds r0, 0x1 lsls r0, 24 lsrs r5, r0, 24 movs r3, 0x80 lsls r3, 7 cmp r1, r8 bne _080BFD38 movs r3, 0x80 lsls r3, 6 _080BFD38: movs r2, 0 adds r6, r1, 0x1 ldr r4, =0x00000fff _080BFD3E: adds r1, r5, r2 lsls r1, 1 adds r1, r7 ldrh r0, [r1] ands r0, r4 orrs r0, r3 strh r0, [r1] adds r1, 0x40 ldrh r0, [r1] ands r0, r4 orrs r0, r3 strh r0, [r1] adds r0, r2, 0x1 lsls r0, 24 lsrs r2, r0, 24 cmp r2, 0x6 bls _080BFD3E lsls r0, r6, 24 lsrs r1, r0, 24 cmp r1, 0x3 bls _080BFD22 movs r0, 0x1 bl CopyBgTilemapBufferToVram pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_80BFD0C thumb_func_start sub_80BFD7C sub_80BFD7C: @ 80BFD7C push {r4-r7,lr} mov r7, r8 push {r7} lsls r0, 24 lsrs r0, 24 mov r8, r0 movs r0, 0x1 bl GetBgTilemapBuffer adds r7, r0, 0 movs r1, 0 _080BFD92: lsls r0, r1, 3 subs r0, r1 adds r0, 0x1 lsls r0, 24 lsrs r6, r0, 24 cmp r1, r8 beq _080BFDA4 cmp r1, 0x3 bne _080BFDAA _080BFDA4: movs r3, 0x80 lsls r3, 6 b _080BFDAE _080BFDAA: movs r3, 0x80 lsls r3, 7 _080BFDAE: movs r2, 0 adds r5, r1, 0x1 ldr r4, =0x00000fff _080BFDB4: adds r1, r6, r2 lsls r1, 1 adds r1, r7 ldrh r0, [r1] ands r0, r4 orrs r0, r3 strh r0, [r1] adds r1, 0x40 ldrh r0, [r1] ands r0, r4 orrs r0, r3 strh r0, [r1] adds r0, r2, 0x1 lsls r0, 24 lsrs r2, r0, 24 cmp r2, 0x6 bls _080BFDB4 lsls r0, r5, 24 lsrs r1, r0, 24 cmp r1, 0x3 bls _080BFD92 movs r0, 0x1 bl CopyBgTilemapBufferToVram pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_80BFD7C thumb_func_start CreateDexDisplayMonDataTask CreateDexDisplayMonDataTask: @ 80BFDF4 push {r4-r6,lr} adds r4, r0, 0 adds r5, r1, 0 adds r6, r2, 0 lsls r4, 16 lsrs r4, 16 ldr r0, =sub_80BFE38 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 r2, 0 strh r2, [r1, 0x8] strh r4, [r1, 0xA] strh r5, [r1, 0x20] lsrs r5, 16 strh r5, [r1, 0x22] strh r6, [r1, 0x24] lsrs r6, 16 strh r6, [r1, 0x26] pop {r4-r6} pop {r1} bx r1 .pool thumb_func_end CreateDexDisplayMonDataTask thumb_func_start sub_80BFE38 sub_80BFE38: @ 80BFE38 push {r4-r6,lr} sub sp, 0x4 lsls r0, 24 lsrs r5, r0, 24 ldr r1, =gTasks lsls r0, r5, 2 adds r0, r5 lsls r0, 3 adds r0, r1 ldrh r4, [r0, 0xA] movs r2, 0x8 ldrsh r0, [r0, r2] adds r2, r1, 0 cmp r0, 0x6 bhi _080BFE84 lsls r0, 2 ldr r1, =_080BFE68 adds r0, r1 ldr r0, [r0] mov pc, r0 .pool .align 2, 0 _080BFE68: .4byte _080BFE84 .4byte _080BFF0C .4byte _080BFF78 .4byte _080BFF82 .4byte _080BFFA8 .4byte _080C0000 .4byte _080C0044 _080BFE84: ldr r0, =gPaletteFade ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 beq _080BFE92 b _080C0074 _080BFE92: ldr r1, =gUnknown_030060B4 ldr r0, =gMain ldr r0, [r0, 0xC] str r0, [r1] movs r0, 0 bl SetVBlankCallback movs r0, 0x80 lsls r0, 1 bl sub_80C09B0 movs r0, 0 bl ResetBgsAndClearDma3BusyFlags ldr r1, =gUnknown_0856E668 movs r0, 0 movs r2, 0x2 bl InitBgsFromTemplates movs r4, 0x80 lsls r4, 4 adds r0, r4, 0 bl AllocZeroed adds r1, r0, 0 movs r0, 0x3 bl SetBgTilemapBuffer adds r0, r4, 0 bl AllocZeroed adds r1, r0, 0 movs r0, 0x2 bl SetBgTilemapBuffer ldr r0, =gUnknown_0856E670 bl InitWindows bl DeactivateAllTextPrinters ldr r1, =gTasks lsls r0, r5, 2 adds r0, r5 lsls r0, 3 adds r0, r1 movs r1, 0x1 strh r1, [r0, 0x8] b _080C0074 .pool _080BFF0C: ldr r1, =gPokedexMenu_Gfx movs r2, 0x80 lsls r2, 6 movs r0, 0 str r0, [sp] movs r0, 0x3 movs r3, 0 bl copy_decompressed_tile_data_to_vram_autofree ldr r1, =gUnknown_08DC3080 movs r0, 0x3 movs r2, 0 movs r3, 0 bl CopyToBgTilemapBuffer movs r0, 0 movs r1, 0 bl FillWindowPixelBuffer movs r0, 0 bl PutWindowTilemap movs r0, 0x1 bl PutWindowTilemap ldr r0, =gTasks lsls r4, r5, 2 adds r4, r5 lsls r4, 3 adds r4, r0 ldrh r1, [r4, 0xA] movs r0, 0x1 bl sub_80C0D30 movs r0, 0x1 movs r1, 0x2 bl CopyWindowToVram bl ResetPaletteFade movs r0, 0 bl sub_80BC844 ldrh r0, [r4, 0x8] adds r0, 0x1 strh r0, [r4, 0x8] b _080C0074 .pool _080BFF78: lsls r0, r5, 2 adds r0, r5 lsls r0, 3 adds r0, r2 b _080C0038 _080BFF82: bl IsNationalPokedexEnabled adds r1, r0, 0 adds r0, r4, 0 movs r2, 0x1 movs r3, 0x1 bl sub_80C020C movs r0, 0 movs r1, 0x3 bl CopyWindowToVram movs r0, 0x2 bl CopyBgTilemapBufferToVram movs r0, 0x3 bl CopyBgTilemapBufferToVram b _080C002E _080BFFA8: adds r0, r4, 0 movs r1, 0x30 movs r2, 0x38 movs r3, 0 bl sub_80C0E9C adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 ldr r0, =gSprites lsls r1, r4, 4 adds r1, r4 lsls r1, 2 adds r1, r0 ldrb r2, [r1, 0x5] movs r0, 0xD negs r0, r0 ands r0, r2 strb r0, [r1, 0x5] movs r0, 0x1 negs r0, r0 movs r1, 0 str r1, [sp] movs r2, 0x10 movs r3, 0 bl BeginNormalPaletteFade ldr r0, =gUnknown_030060B4 ldr r0, [r0] bl SetVBlankCallback ldr r1, =gTasks lsls r0, r5, 2 adds r0, r5 lsls r0, 3 adds r0, r1 strh r4, [r0, 0xE] b _080C0038 .pool _080C0000: movs r0, 0x50 movs r1, 0 bl SetGpuReg movs r0, 0x52 movs r1, 0 bl SetGpuReg movs r0, 0x54 movs r1, 0 bl SetGpuReg movs r1, 0x82 lsls r1, 5 movs r0, 0 bl SetGpuReg movs r0, 0x2 bl ShowBg movs r0, 0x3 bl ShowBg _080C002E: ldr r1, =gTasks lsls r0, r5, 2 adds r0, r5 lsls r0, 3 adds r0, r1 _080C0038: ldrh r1, [r0, 0x8] adds r1, 0x1 strh r1, [r0, 0x8] b _080C0074 .pool _080C0044: ldr r0, =gPaletteFade ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 lsls r0, 24 lsrs r6, r0, 24 cmp r6, 0 bne _080C0074 adds r0, r4, 0 bl NationalPokedexNumToSpecies lsls r0, 16 lsrs r0, 16 movs r1, 0 bl PlayCry1 ldr r1, =gTasks lsls r0, r5, 2 adds r0, r5 lsls r0, 3 adds r0, r1 strh r6, [r0, 0xC] ldr r1, =sub_80C0088 str r1, [r0] _080C0074: add sp, 0x4 pop {r4-r6} pop {r0} bx r0 .pool thumb_func_end sub_80BFE38 thumb_func_start sub_80C0088 sub_80C0088: @ 80C0088 push {r4,lr} sub sp, 0x4 lsls r0, 24 lsrs r4, r0, 24 ldr r0, =gMain ldrh r1, [r0, 0x2E] movs r0, 0x3 ands r0, r1 cmp r0, 0 beq _080C00E8 ldr r0, =0x0000ffff movs r1, 0 str r1, [sp] movs r2, 0 movs r3, 0x10 bl BeginNormalPaletteFade ldr r3, =gSprites ldr r0, =gTasks lsls r1, r4, 2 adds r1, r4 lsls r1, 3 adds r1, r0 movs r0, 0xE ldrsh r2, [r1, r0] lsls r0, r2, 4 adds r0, r2 lsls r0, 2 adds r3, 0x1C adds r0, r3 ldr r2, =sub_80C01CC str r2, [r0] ldr r0, =blockset_load_palette_to_gpu str r0, [r1] b _080C011E .pool _080C00E8: ldr r1, =gTasks lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r0, r1 ldrh r1, [r0, 0xC] adds r1, 0x1 strh r1, [r0, 0xC] movs r0, 0x10 ands r1, r0 cmp r1, 0 beq _080C0114 ldr r0, =gPokedexText_Pal + 2 movs r1, 0x31 movs r2, 0xE bl LoadPalette b _080C011E .pool _080C0114: ldr r0, =gPokedexCaughtScreenFade_Pal + 0x2 movs r1, 0x31 movs r2, 0xE bl LoadPalette _080C011E: add sp, 0x4 pop {r4} pop {r0} bx r0 .pool thumb_func_end sub_80C0088 thumb_func_start blockset_load_palette_to_gpu blockset_load_palette_to_gpu: @ 80C012C push {r4-r6,lr} lsls r0, 24 lsrs r6, r0, 24 ldr r0, =gPaletteFade ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 bne _080C01BA movs r1, 0x82 lsls r1, 5 movs r0, 0 bl SetGpuReg bl FreeAllWindowBuffers movs r0, 0x2 bl GetBgTilemapBuffer cmp r0, 0 beq _080C015A bl Free _080C015A: movs r0, 0x3 bl GetBgTilemapBuffer cmp r0, 0 beq _080C0168 bl Free _080C0168: ldr r0, =gTasks lsls r4, r6, 2 adds r4, r6 lsls r4, 3 adds r4, r0 ldrh r0, [r4, 0xA] bl NationalPokedexNumToSpecies lsls r0, 16 lsrs r0, 16 ldrh r1, [r4, 0x22] lsls r1, 16 ldrh r2, [r4, 0x20] orrs r1, r2 ldrh r2, [r4, 0x26] lsls r2, 16 ldrh r3, [r4, 0x24] orrs r2, r3 ldr r5, =gSprites movs r3, 0xE ldrsh r4, [r4, r3] lsls r3, r4, 4 adds r3, r4 lsls r3, 2 adds r3, r5 ldrb r4, [r3, 0x5] lsrs r4, 4 bl GetFrontSpritePalFromSpeciesAndPersonality lsls r4, 4 movs r2, 0x80 lsls r2, 1 adds r1, r2, 0 orrs r4, r1 adds r1, r4, 0 movs r2, 0x20 bl LoadCompressedPalette adds r0, r6, 0 bl DestroyTask _080C01BA: pop {r4-r6} pop {r0} bx r0 .pool thumb_func_end blockset_load_palette_to_gpu thumb_func_start sub_80C01CC sub_80C01CC: @ 80C01CC push {lr} adds r1, r0, 0 ldrh r2, [r1, 0x20] movs r3, 0x20 ldrsh r0, [r1, r3] cmp r0, 0x77 bgt _080C01DE adds r0, r2, 0x2 strh r0, [r1, 0x20] _080C01DE: ldrh r2, [r1, 0x20] movs r3, 0x20 ldrsh r0, [r1, r3] cmp r0, 0x78 ble _080C01EC subs r0, r2, 0x2 strh r0, [r1, 0x20] _080C01EC: ldrh r2, [r1, 0x22] movs r3, 0x22 ldrsh r0, [r1, r3] cmp r0, 0x4F bgt _080C01FA adds r0, r2, 0x1 strh r0, [r1, 0x22] _080C01FA: ldrh r2, [r1, 0x22] movs r3, 0x22 ldrsh r0, [r1, r3] cmp r0, 0x50 ble _080C0208 subs r0, r2, 0x1 strh r0, [r1, 0x22] _080C0208: pop {r0} bx r0 thumb_func_end sub_80C01CC thumb_func_start sub_80C020C sub_80C020C: @ 80C020C push {r4-r7,lr} sub sp, 0x30 adds r6, r0, 0 adds r5, r1, 0 adds r7, r2, 0 cmp r3, 0 beq _080C0234 ldr r4, =gText_PokedexRegistration movs r0, 0x1 adds r1, r4, 0 movs r2, 0xF0 bl GetStringCenterAlignXOffset adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 adds r0, r4, 0 movs r2, 0 bl sub_80BE8DC _080C0234: cmp r5, 0 bne _080C024C lsls r4, r6, 16 lsrs r0, r4, 16 bl NationalToHoennOrder lsls r0, 16 lsrs r5, r0, 16 b _080C0250 .pool _080C024C: adds r5, r6, 0 lsls r4, r6, 16 _080C0250: ldr r1, =gText_UnkCtrlF908Clear01 mov r0, sp bl StringCopy adds r1, r5, 0 movs r2, 0x2 movs r3, 0x3 bl ConvertIntToDecimalStringN mov r0, sp movs r1, 0x60 movs r2, 0x19 bl sub_80BE8DC lsrs r0, r4, 16 bl NationalPokedexNumToSpecies lsls r0, 16 lsrs r1, r0, 16 cmp r1, 0 beq _080C028C movs r0, 0xB muls r1, r0 ldr r0, =gSpeciesNames adds r0, r1, r0 b _080C028E .pool _080C028C: ldr r0, =sText_TenDashes2 _080C028E: movs r1, 0x84 movs r2, 0x19 bl sub_80BE8DC cmp r7, 0 beq _080C02AC add r4, sp, 0x10 adds r0, r6, 0 adds r1, r4, 0 bl CopyMonCategoryText adds r0, r4, 0 b _080C02AE .pool _080C02AC: ldr r0, =gText_5MarksPokemon _080C02AE: movs r1, 0x64 movs r2, 0x29 bl sub_80BE8DC ldr r0, =gText_HTHeight movs r1, 0x60 movs r2, 0x39 bl sub_80BE8DC ldr r0, =gText_WTWeight movs r1, 0x60 movs r2, 0x49 bl sub_80BE8DC cmp r7, 0 beq _080C02FC ldr r0, =gPokedexEntries lsls r4, r6, 5 adds r4, r0 ldrh r0, [r4, 0xC] movs r1, 0x81 movs r2, 0x39 bl sub_80C0354 ldrh r0, [r4, 0xE] movs r1, 0x81 movs r2, 0x49 bl sub_80C0460 b _080C0310 .pool _080C02FC: ldr r0, =gText_UnkHeight movs r1, 0x81 movs r2, 0x39 bl sub_80BE8DC ldr r0, =gText_UnkWeight movs r1, 0x81 movs r2, 0x49 bl sub_80BE8DC _080C0310: cmp r7, 0 beq _080C032C ldr r0, =gPokedexEntries lsls r1, r6, 5 adds r0, 0x10 adds r1, r0 ldr r4, [r1] b _080C032E .pool _080C032C: ldr r4, =gUnknown_0855D30C _080C032E: movs r0, 0x1 adds r1, r4, 0 movs r2, 0xF0 bl GetStringCenterAlignXOffset adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 adds r0, r4, 0 movs r2, 0x5F bl sub_80BE8DC add sp, 0x30 pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_80C020C thumb_func_start sub_80C0354 sub_80C0354: @ 80C0354 push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} sub sp, 0x10 lsls r0, 16 lsrs r0, 16 lsls r1, 24 lsrs r1, 24 mov r9, r1 lsls r2, 24 lsrs r2, 24 mov r8, r2 ldr r1, =0x00002710 muls r0, r1 movs r1, 0xFE bl __divsi3 adds r7, r0, 0 movs r1, 0xA bl __umodsi3 cmp r0, 0x4 bls _080C0386 adds r7, 0xA _080C0386: adds r0, r7, 0 movs r1, 0x78 bl __udivsi3 adds r6, r0, 0 lsls r0, r6, 4 subs r0, r6 lsls r0, 3 subs r0, r7, r0 movs r1, 0xA bl __udivsi3 adds r7, r0, 0 mov r1, sp movs r0, 0xFC strb r0, [r1] adds r1, 0x1 movs r0, 0x13 strb r0, [r1] adds r0, r6, 0 movs r1, 0xA bl __udivsi3 adds r2, r0, 0 cmp r2, 0 bne _080C03D4 mov r1, sp adds r1, 0x2 movs r0, 0x12 strb r0, [r1] movs r5, 0x4 adds r1, 0x1 adds r0, r6, 0 adds r0, 0xA1 strb r0, [r1] b _080C03F4 .pool _080C03D4: mov r1, sp adds r1, 0x2 movs r0, 0xC strb r0, [r1] adds r1, 0x1 adds r0, r2, 0 adds r0, 0xA1 strb r0, [r1] movs r5, 0x5 add r4, sp, 0x4 adds r0, r6, 0 movs r1, 0xA bl __umodsi3 adds r0, 0xA1 strb r0, [r4] _080C03F4: adds r1, r5, 0 adds r0, r1, 0x1 lsls r0, 24 lsrs r5, r0, 24 adds r2, r5, 0 add r1, sp movs r0, 0xB4 strb r0, [r1] adds r0, r2, 0x1 lsls r0, 24 lsrs r5, r0, 24 adds r6, r5, 0 mov r0, sp adds r4, r0, r2 adds r0, r7, 0 movs r1, 0xA bl __udivsi3 adds r0, 0xA1 strb r0, [r4] adds r0, r6, 0x1 lsls r0, 24 lsrs r5, r0, 24 mov r1, sp adds r4, r1, r6 adds r0, r7, 0 movs r1, 0xA bl __umodsi3 adds r0, 0xA1 strb r0, [r4] adds r0, r5, 0x1 lsls r0, 24 lsrs r0, 24 mov r1, sp adds r2, r1, r5 movs r1, 0xB2 strb r1, [r2] mov r2, sp adds r1, r2, r0 movs r0, 0xFF strb r0, [r1] mov r0, sp mov r1, r9 mov r2, r8 bl sub_80BE8DC add sp, 0x10 pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_80C0354 thumb_func_start sub_80C0460 sub_80C0460: @ 80C0460 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x14 lsls r0, 16 lsrs r0, 16 lsls r1, 24 lsrs r1, 24 mov r10, r1 lsls r2, 24 lsrs r2, 24 str r2, [sp, 0x10] ldr r5, =0x000186a0 muls r0, r5 ldr r1, =0x000011b8 bl __divsi3 adds r7, r0, 0 movs r1, 0xA bl __umodsi3 cmp r0, 0x4 bls _080C0494 adds r7, 0xA _080C0494: movs r0, 0 mov r8, r0 mov r4, sp adds r0, r7, 0 adds r1, r5, 0 bl __udivsi3 adds r0, 0xA1 strb r0, [r4] lsls r0, 24 lsrs r0, 24 cmp r0, 0xA1 bne _080C04C0 movs r6, 0x1 mov r1, sp movs r0, 0x77 strb r0, [r1] b _080C04C6 .pool _080C04C0: movs r1, 0x1 mov r8, r1 movs r6, 0x1 _080C04C6: ldr r1, =0x000186a0 adds r0, r7, 0 bl __umodsi3 adds r7, r0, 0 mov r4, sp adds r4, 0x1 ldr r1, =0x00002710 bl __udivsi3 adds r0, 0xA1 strb r0, [r4] lsls r0, 24 lsrs r0, 24 cmp r0, 0xA1 bne _080C0504 mov r2, r8 cmp r2, 0 bne _080C0504 adds r1, r6, 0 adds r0, r1, 0x1 lsls r0, 24 lsrs r6, r0, 24 add r1, sp movs r0, 0x77 strb r0, [r1] b _080C050E .pool _080C0504: movs r3, 0x1 mov r8, r3 adds r0, r6, 0x1 lsls r0, 24 lsrs r6, r0, 24 _080C050E: ldr r1, =0x00002710 adds r0, r7, 0 bl __umodsi3 adds r7, r0, 0 mov r0, sp adds r4, r0, r6 movs r1, 0xFA lsls r1, 2 adds r0, r7, 0 bl __udivsi3 adds r0, 0xA1 strb r0, [r4] lsls r0, 24 lsrs r0, 24 cmp r0, 0xA1 bne _080C054C mov r1, r8 cmp r1, 0 bne _080C054C adds r1, r6, 0 adds r0, r1, 0x1 lsls r0, 24 lsrs r6, r0, 24 add r1, sp movs r0, 0x77 strb r0, [r1] b _080C0552 .pool _080C054C: adds r0, r6, 0x1 lsls r0, 24 lsrs r6, r0, 24 _080C0552: movs r1, 0xFA lsls r1, 2 adds r0, r7, 0 bl __umodsi3 adds r7, r0, 0 adds r1, r6, 0 adds r0, r1, 0x1 lsls r0, 24 lsrs r6, r0, 24 adds r5, r6, 0 mov r2, sp adds r4, r2, r1 adds r0, r7, 0 movs r1, 0x64 bl __udivsi3 adds r0, 0xA1 movs r3, 0 mov r9, r3 strb r0, [r4] adds r0, r7, 0 movs r1, 0x64 bl __umodsi3 adds r7, r0, 0 adds r0, r5, 0x1 lsls r0, 24 lsrs r6, r0, 24 adds r1, r6, 0 mov r2, sp adds r0, r2, r5 movs r3, 0xAD mov r8, r3 mov r2, r8 strb r2, [r0] adds r0, r1, 0x1 lsls r0, 24 lsrs r6, r0, 24 adds r5, r6, 0 mov r3, sp adds r4, r3, r1 adds r0, r7, 0 movs r1, 0xA bl __udivsi3 adds r0, 0xA1 strb r0, [r4] adds r0, r5, 0x1 lsls r0, 24 lsrs r6, r0, 24 adds r1, r6, 0 mov r2, sp adds r0, r2, r5 mov r3, r9 strb r3, [r0] adds r0, r1, 0x1 lsls r0, 24 lsrs r6, r0, 24 adds r2, r6, 0 add r1, sp movs r0, 0xE0 strb r0, [r1] adds r0, r2, 0x1 lsls r0, 24 lsrs r6, r0, 24 adds r3, r6, 0 mov r0, sp adds r1, r0, r2 movs r0, 0xD6 strb r0, [r1] adds r0, r3, 0x1 lsls r0, 24 lsrs r6, r0, 24 adds r2, r6, 0 mov r0, sp adds r1, r0, r3 movs r0, 0xE7 strb r0, [r1] adds r0, r2, 0x1 lsls r0, 24 lsrs r0, 24 mov r3, sp adds r1, r3, r2 mov r2, r8 strb r2, [r1] adds r1, r3, r0 movs r0, 0xFF strb r0, [r1] mov r0, sp mov r1, r10 ldr r2, [sp, 0x10] bl sub_80BE8DC add sp, 0x14 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_80C0460 thumb_func_start sub_80C0620 sub_80C0620: @ 80C0620 lsls r0, 16 lsrs r0, 11 ldr r1, =gPokedexEntries adds r0, r1 bx lr .pool thumb_func_end sub_80C0620 thumb_func_start GetPokedexHeightWeight GetPokedexHeightWeight: @ 80C0630 push {lr} lsls r0, 16 lsrs r2, r0, 16 lsls r1, 24 lsrs r1, 24 cmp r1, 0 beq _080C0646 cmp r1, 0x1 beq _080C0654 movs r0, 0x1 b _080C065C _080C0646: ldr r0, =gPokedexEntries lsls r1, r2, 5 adds r1, r0 ldrh r0, [r1, 0xC] b _080C065C .pool _080C0654: ldr r0, =gPokedexEntries lsls r1, r2, 5 adds r1, r0 ldrh r0, [r1, 0xE] _080C065C: pop {r1} bx r1 .pool thumb_func_end GetPokedexHeightWeight thumb_func_start GetSetPokedexFlag @ u8 GetSetPokedexFlag(u16 nationalPokedexNum, u8 op) GetSetPokedexFlag: @ 80C0664 push {r4-r7,lr} lsls r0, 16 lsls r1, 24 lsrs r2, r1, 24 adds r3, r2, 0 ldr r1, =0xffff0000 adds r0, r1 lsrs r1, r0, 16 lsrs r0, 19 lsls r0, 24 lsrs r4, r0, 24 movs r0, 0x7 ands r1, r0 movs r0, 0x80 lsls r0, 17 lsls r0, r1 lsrs r5, r0, 24 movs r6, 0 cmp r2, 0x1 beq _080C06FC cmp r2, 0x1 bgt _080C069C cmp r2, 0 beq _080C06AA b _080C07E8 .pool _080C069C: cmp r3, 0x2 bne _080C06A2 b _080C079C _080C06A2: cmp r3, 0x3 bne _080C06A8 b _080C07D8 _080C06A8: b _080C07E8 _080C06AA: ldr r1, =gSaveBlock2Ptr ldr r0, [r1] adds r0, 0x5C adds r0, r4 ldrb r2, [r0] ands r2, r5 adds r7, r1, 0 cmp r2, 0 bne _080C06BE b _080C07E8 _080C06BE: ldr r0, =gSaveBlock1Ptr ldr r3, [r0] ldr r6, =0x00000988 adds r1, r3, r6 adds r1, r4 ldrb r1, [r1] ands r1, r5 adds r6, r0, 0 cmp r2, r1 bne _080C06E0 ldr r1, =0x00003b24 adds r0, r3, r1 adds r0, r4 ldrb r0, [r0] ands r0, r5 cmp r2, r0 beq _080C073E _080C06E0: ldr r1, [r7] adds r1, 0x5C adds r1, r4 mvns r3, r5 b _080C076A .pool _080C06FC: ldr r1, =gSaveBlock2Ptr ldr r3, [r1] adds r0, r3, 0 adds r0, 0x28 adds r0, r4 ldrb r2, [r0] ands r2, r5 adds r7, r1, 0 cmp r2, 0 beq _080C07E8 adds r0, r3, 0 adds r0, 0x5C adds r0, r4 ldrb r0, [r0] ands r0, r5 ldr r6, =gSaveBlock1Ptr cmp r2, r0 bne _080C0754 ldr r1, [r6] ldr r3, =0x00000988 adds r0, r1, r3 adds r0, r4 ldrb r0, [r0] ands r0, r5 cmp r2, r0 bne _080C0754 ldr r3, =0x00003b24 adds r0, r1, r3 adds r0, r4 ldrb r0, [r0] ands r0, r5 cmp r2, r0 bne _080C0754 _080C073E: movs r6, 0x1 b _080C07E8 .pool _080C0754: ldr r1, [r7] adds r1, 0x28 adds r1, r4 mvns r3, r5 ldrb r2, [r1] adds r0, r3, 0 ands r0, r2 strb r0, [r1] ldr r1, [r7] adds r1, 0x5C adds r1, r4 _080C076A: ldrb r2, [r1] adds r0, r3, 0 ands r0, r2 strb r0, [r1] ldr r1, [r6] ldr r0, =0x00000988 adds r1, r0 adds r1, r4 ldrb r2, [r1] adds r0, r3, 0 ands r0, r2 strb r0, [r1] ldr r0, [r6] ldr r1, =0x00003b24 adds r0, r1 adds r0, r4 ldrb r1, [r0] ands r3, r1 strb r3, [r0] movs r6, 0 b _080C07E8 .pool _080C079C: ldr r0, =gSaveBlock2Ptr ldr r1, [r0] adds r1, 0x5C adds r1, r4 ldrb r2, [r1] adds r0, r5, 0 orrs r0, r2 strb r0, [r1] ldr r3, =gSaveBlock1Ptr ldr r1, [r3] ldr r0, =0x00000988 adds r1, r0 adds r1, r4 ldrb r2, [r1] adds r0, r5, 0 orrs r0, r2 strb r0, [r1] ldr r1, [r3] ldr r3, =0x00003b24 adds r1, r3 b _080C07DE .pool _080C07D8: ldr r0, =gSaveBlock2Ptr ldr r1, [r0] adds r1, 0x28 _080C07DE: adds r1, r4 ldrb r2, [r1] adds r0, r5, 0 orrs r0, r2 strb r0, [r1] _080C07E8: adds r0, r6, 0 pop {r4-r7} pop {r1} bx r1 .pool thumb_func_end GetSetPokedexFlag thumb_func_start GetNationalPokedexCount GetNationalPokedexCount: @ 80C07F4 push {r4-r7,lr} lsls r0, 24 lsrs r6, r0, 24 movs r5, 0 movs r0, 0 ldr r7, =0x00000181 _080C0800: cmp r6, 0 beq _080C0810 cmp r6, 0x1 beq _080C081A adds r4, r0, 0x1 b _080C0832 .pool _080C0810: adds r4, r0, 0x1 lsls r0, r4, 16 lsrs r0, 16 movs r1, 0 b _080C0822 _080C081A: adds r4, r0, 0x1 lsls r0, r4, 16 lsrs r0, 16 movs r1, 0x1 _080C0822: bl GetSetPokedexFlag lsls r0, 24 cmp r0, 0 beq _080C0832 adds r0, r5, 0x1 lsls r0, 16 lsrs r5, r0, 16 _080C0832: lsls r0, r4, 16 lsrs r0, 16 cmp r0, r7 bls _080C0800 adds r0, r5, 0 pop {r4-r7} pop {r1} bx r1 thumb_func_end GetNationalPokedexCount thumb_func_start GetHoennPokedexCount GetHoennPokedexCount: @ 80C0844 push {r4-r6,lr} lsls r0, 24 lsrs r6, r0, 24 movs r5, 0 movs r0, 0 _080C084E: cmp r6, 0 beq _080C085A cmp r6, 0x1 beq _080C086C adds r4, r0, 0x1 b _080C088C _080C085A: adds r4, r0, 0x1 lsls r0, r4, 16 lsrs r0, 16 bl HoennToNationalOrder lsls r0, 16 lsrs r0, 16 movs r1, 0 b _080C087C _080C086C: adds r4, r0, 0x1 lsls r0, r4, 16 lsrs r0, 16 bl HoennToNationalOrder lsls r0, 16 lsrs r0, 16 movs r1, 0x1 _080C087C: bl GetSetPokedexFlag lsls r0, 24 cmp r0, 0 beq _080C088C adds r0, r5, 0x1 lsls r0, 16 lsrs r5, r0, 16 _080C088C: lsls r0, r4, 16 lsrs r0, 16 cmp r0, 0xC9 bls _080C084E adds r0, r5, 0 pop {r4-r6} pop {r1} bx r1 thumb_func_end GetHoennPokedexCount thumb_func_start sub_80C089C sub_80C089C: @ 80C089C push {r4-r6,lr} lsls r0, 24 lsrs r6, r0, 24 movs r5, 0 movs r0, 0 _080C08A6: cmp r6, 0 beq _080C08B2 cmp r6, 0x1 beq _080C08BC adds r4, r0, 0x1 b _080C08D4 _080C08B2: adds r4, r0, 0x1 lsls r0, r4, 16 lsrs r0, 16 movs r1, 0 b _080C08C4 _080C08BC: adds r4, r0, 0x1 lsls r0, r4, 16 lsrs r0, 16 movs r1, 0x1 _080C08C4: bl GetSetPokedexFlag lsls r0, 24 cmp r0, 0 beq _080C08D4 adds r0, r5, 0x1 lsls r0, 16 lsrs r5, r0, 16 _080C08D4: lsls r0, r4, 16 lsrs r0, 16 cmp r0, 0x96 bls _080C08A6 adds r0, r5, 0 pop {r4-r6} pop {r1} bx r1 thumb_func_end sub_80C089C thumb_func_start sub_80C08E4 sub_80C08E4: @ 80C08E4 push {r4,lr} movs r0, 0 _080C08E8: adds r0, 0x1 lsls r0, 16 lsrs r4, r0, 16 adds r0, r4, 0 bl HoennToNationalOrder lsls r0, 16 lsrs r0, 16 movs r1, 0x1 bl GetSetPokedexFlag lsls r0, 24 cmp r0, 0 bne _080C0908 movs r0, 0 b _080C0910 _080C0908: adds r0, r4, 0 cmp r0, 0xC7 bls _080C08E8 movs r0, 0x1 _080C0910: pop {r4} pop {r1} bx r1 thumb_func_end sub_80C08E4 thumb_func_start sub_80C0918 sub_80C0918: @ 80C0918 push {r4,lr} movs r0, 0 _080C091C: adds r0, 0x1 lsls r0, 16 lsrs r4, r0, 16 adds r0, r4, 0 movs r1, 0x1 bl GetSetPokedexFlag lsls r0, 24 cmp r0, 0 bne _080C0934 movs r0, 0 b _080C093C _080C0934: adds r0, r4, 0 cmp r0, 0x95 bls _080C091C movs r0, 0x1 _080C093C: pop {r4} pop {r1} bx r1 thumb_func_end sub_80C0918 thumb_func_start sub_80C0944 sub_80C0944: @ 80C0944 push {r4,r5,lr} movs r0, 0 _080C0948: adds r0, 0x1 lsls r0, 16 lsrs r4, r0, 16 adds r0, r4, 0 movs r1, 0x1 bl GetSetPokedexFlag lsls r0, 24 cmp r0, 0 beq _080C0996 adds r0, r4, 0 cmp r0, 0x95 bls _080C0948 movs r0, 0x97 _080C0964: adds r0, 0x1 lsls r0, 16 lsrs r4, r0, 16 adds r0, r4, 0 movs r1, 0x1 bl GetSetPokedexFlag lsls r0, 24 cmp r0, 0 beq _080C0996 adds r0, r4, 0 cmp r0, 0xF7 bls _080C0964 movs r0, 0xFB ldr r5, =0x0000017f _080C0982: adds r0, 0x1 lsls r0, 16 lsrs r4, r0, 16 adds r0, r4, 0 movs r1, 0x1 bl GetSetPokedexFlag lsls r0, 24 cmp r0, 0 bne _080C09A0 _080C0996: movs r0, 0 b _080C09A8 .pool _080C09A0: adds r0, r4, 0 cmp r0, r5 bls _080C0982 movs r0, 0x1 _080C09A8: pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_80C0944 thumb_func_start sub_80C09B0 sub_80C09B0: @ 80C09B0 push {r4,r5,lr} lsls r0, 16 lsrs r4, r0, 16 adds r5, r4, 0 movs r1, 0x80 lsls r1, 1 adds r0, r4, 0 ands r0, r1 cmp r0, 0 bne _080C09E2 movs r0, 0 bl ClearGpuRegBits movs r0, 0x8 movs r1, 0 bl SetGpuReg movs r0, 0x10 movs r1, 0 bl SetGpuReg movs r0, 0x12 movs r1, 0 bl SetGpuReg _080C09E2: movs r1, 0x80 lsls r1, 2 adds r0, r4, 0 ands r0, r1 cmp r0, 0 bne _080C0A0C movs r0, 0 bl ClearGpuRegBits movs r0, 0xA movs r1, 0 bl SetGpuReg movs r0, 0x14 movs r1, 0 bl SetGpuReg movs r0, 0x16 movs r1, 0 bl SetGpuReg _080C0A0C: movs r1, 0x80 lsls r1, 3 adds r0, r4, 0 ands r0, r1 cmp r0, 0 bne _080C0A36 movs r0, 0 bl ClearGpuRegBits movs r0, 0xC movs r1, 0 bl SetGpuReg movs r0, 0x18 movs r1, 0 bl SetGpuReg movs r0, 0x1A movs r1, 0 bl SetGpuReg _080C0A36: movs r1, 0x80 lsls r1, 4 adds r0, r4, 0 ands r0, r1 cmp r0, 0 bne _080C0A60 movs r0, 0 bl ClearGpuRegBits movs r0, 0xE movs r1, 0 bl SetGpuReg movs r0, 0x1C movs r1, 0 bl SetGpuReg movs r0, 0x1E movs r1, 0 bl SetGpuReg _080C0A60: movs r1, 0x80 lsls r1, 5 ands r5, r1 cmp r5, 0 bne _080C0A7E movs r0, 0 bl ClearGpuRegBits bl ResetSpriteData bl FreeAllSpritePalettes ldr r1, =gReservedSpritePaletteCount movs r0, 0x8 strb r0, [r1] _080C0A7E: pop {r4,r5} pop {r0} bx r0 .pool thumb_func_end sub_80C09B0 thumb_func_start sub_80C0A88 sub_80C0A88: @ 80C0A88 push {r4-r6,lr} sub sp, 0x18 lsls r0, 24 lsrs r0, 24 lsls r2, 24 lsrs r2, 24 lsls r3, 24 lsrs r3, 24 add r4, sp, 0x14 movs r6, 0 strb r6, [r4] adds r5, r4, 0 movs r4, 0xF strb r4, [r5, 0x1] movs r4, 0x3 strb r4, [r5, 0x2] str r6, [sp] str r6, [sp, 0x4] str r5, [sp, 0x8] subs r4, 0x4 str r4, [sp, 0xC] str r1, [sp, 0x10] movs r1, 0x1 bl AddTextPrinterParameterized2 add sp, 0x18 pop {r4-r6} pop {r0} bx r0 thumb_func_end sub_80C0A88 thumb_func_start sub_80C0AC4 sub_80C0AC4: @ 80C0AC4 push {r4-r6,lr} mov r6, r9 mov r5, r8 push {r5,r6} sub sp, 0x4 adds r6, r0, 0 adds r4, r1, 0 mov r8, r2 mov r9, r3 lsls r6, 24 lsrs r6, 24 lsls r4, 16 lsrs r4, 16 mov r0, r8 lsls r0, 24 lsrs r0, 24 mov r8, r0 mov r0, r9 lsls r0, 24 lsrs r0, 24 mov r9, r0 mov r5, sp adds r0, r4, 0 movs r1, 0x64 bl __udivsi3 adds r0, 0xA1 strb r0, [r5] mov r5, sp adds r0, r4, 0 movs r1, 0x64 bl __umodsi3 adds r4, r0, 0 lsls r4, 16 lsrs r4, 16 adds r0, r4, 0 movs r1, 0xA bl __udivsi3 adds r0, 0xA1 strb r0, [r5, 0x1] mov r5, sp adds r0, r4, 0 movs r1, 0xA bl __umodsi3 adds r0, 0xA1 strb r0, [r5, 0x2] mov r1, sp movs r0, 0xFF strb r0, [r1, 0x3] adds r0, r6, 0 mov r2, r8 mov r3, r9 bl sub_80C0A88 add sp, 0x4 pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r6} pop {r0} bx r0 thumb_func_end sub_80C0AC4 thumb_func_start sub_80C0B44 sub_80C0B44: @ 80C0B44 push {r4-r7,lr} mov r7, r8 push {r7} sub sp, 0xC lsls r0, 24 lsrs r0, 24 mov r8, r0 lsls r1, 16 lsrs r5, r1, 16 lsls r2, 24 lsrs r7, r2, 24 lsls r3, 24 lsrs r6, r3, 24 movs r4, 0 movs r2, 0xFF _080C0B62: mov r1, sp adds r0, r1, r4 ldrb r1, [r0] orrs r1, r2 strb r1, [r0] adds r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0xA bls _080C0B62 adds r0, r5, 0 bl NationalPokedexNumToSpecies adds r5, r0, 0 cmp r5, 0 beq _080C0BC0 movs r4, 0 ldr r2, =gSpeciesNames movs r0, 0xB adds r1, r5, 0 muls r1, r0 adds r0, r1, r2 ldrb r0, [r0] cmp r0, 0xFF beq _080C0BD4 adds r3, r2, 0 adds r2, r1, 0 _080C0B98: mov r0, sp adds r1, r0, r4 adds r0, r4, r2 adds r0, r3 ldrb r0, [r0] strb r0, [r1] adds r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 adds r0, r4, r2 adds r0, r3 ldrb r0, [r0] cmp r0, 0xFF beq _080C0BD4 cmp r4, 0x9 bls _080C0B98 b _080C0BD4 .pool _080C0BC0: movs r4, 0 movs r1, 0xAE _080C0BC4: mov r2, sp adds r0, r2, r4 strb r1, [r0] adds r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0x4 bls _080C0BC4 _080C0BD4: mov r0, r8 mov r1, sp adds r2, r7, 0 adds r3, r6, 0 bl sub_80C0A88 adds r0, r4, 0 add sp, 0xC pop {r3} mov r8, r3 pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_80C0B44 thumb_func_start sub_80C0BF0 sub_80C0BF0: @ 80C0BF0 push {r4-r7,lr} sub sp, 0xC adds r4, r1, 0 lsls r0, 24 lsrs r6, r0, 24 lsls r2, 24 lsrs r2, 24 mov r12, r2 lsls r3, 24 lsrs r5, r3, 24 movs r2, 0 movs r1, 0 _080C0C08: mov r3, sp adds r0, r3, r2 strb r1, [r0] adds r0, r2, 0x1 lsls r0, 24 lsrs r2, r0, 24 cmp r2, 0xA bls _080C0C08 movs r3, 0 ldrb r0, [r4] cmp r0, 0 beq _080C0C32 _080C0C20: adds r0, r3, 0x1 lsls r0, 24 lsrs r3, r0, 24 adds r0, r4, r3 ldrb r0, [r0] cmp r0, 0 beq _080C0C32 cmp r3, 0xA bls _080C0C20 _080C0C32: movs r2, 0 cmp r2, r3 bcs _080C0C52 _080C0C38: adds r0, r2, 0 adds r0, 0xB subs r0, r3 mov r7, sp adds r1, r7, r0 adds r0, r4, r2 ldrb r0, [r0] strb r0, [r1] adds r0, r2, 0x1 lsls r0, 24 lsrs r2, r0, 24 cmp r2, r3 bcc _080C0C38 _080C0C52: mov r1, sp movs r0, 0xFF strb r0, [r1, 0xB] adds r0, r6, 0 mov r2, r12 adds r3, r5, 0 bl sub_80C0A88 add sp, 0xC pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_80C0BF0 thumb_func_start sub_80C0C6C sub_80C0C6C: @ 80C0C6C push {r4-r7,lr} mov r7, r8 push {r7} sub sp, 0x8 lsls r0, 24 lsrs r0, 24 mov r8, r0 lsls r1, 16 lsrs r4, r1, 16 lsls r2, 24 lsrs r7, r2, 24 lsls r3, 24 lsrs r6, r3, 24 movs r5, 0 movs r1, 0xFA lsls r1, 2 adds r0, r4, 0 bl __udivsi3 lsls r0, 24 lsrs r0, 24 cmp r0, 0 bne _080C0CA2 mov r1, sp movs r0, 0x77 strb r0, [r1] b _080C0CAA _080C0CA2: mov r1, sp adds r0, 0xA1 strb r0, [r1] movs r5, 0x1 _080C0CAA: movs r1, 0xFA lsls r1, 2 adds r0, r4, 0 bl __umodsi3 lsls r0, 16 lsrs r0, 16 movs r1, 0x64 bl __udivsi3 lsls r0, 24 lsrs r0, 24 cmp r0, 0 bne _080C0CD0 cmp r5, 0 bne _080C0CD0 mov r1, sp movs r0, 0x77 b _080C0CD4 _080C0CD0: mov r1, sp adds r0, 0xA1 _080C0CD4: strb r0, [r1, 0x1] mov r5, sp movs r1, 0xFA lsls r1, 2 adds r0, r4, 0 bl __umodsi3 lsls r0, 16 lsrs r0, 16 movs r1, 0x64 bl __umodsi3 adds r4, r0, 0 lsls r4, 16 lsrs r4, 16 adds r0, r4, 0 movs r1, 0xA bl __udivsi3 adds r0, 0xA1 strb r0, [r5, 0x2] mov r1, sp movs r0, 0xAD strb r0, [r1, 0x3] mov r5, sp adds r0, r4, 0 movs r1, 0xA bl __umodsi3 adds r0, 0xA1 strb r0, [r5, 0x4] mov r1, sp movs r0, 0xFF strb r0, [r1, 0x5] mov r0, r8 adds r2, r7, 0 adds r3, r6, 0 bl sub_80C0A88 add sp, 0x8 pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_80C0C6C thumb_func_start sub_80C0D30 sub_80C0D30: @ 80C0D30 push {r4-r7,lr} mov r7, r8 push {r7} sub sp, 0x80 lsls r0, 24 lsrs r0, 24 mov r8, r0 lsls r1, 16 lsrs r1, 16 ldr r4, =gMonFootprintTable adds r0, r1, 0 bl NationalPokedexNumToSpecies lsls r0, 16 lsrs r0, 14 adds r0, r4 ldr r0, [r0] mov r12, r0 movs r5, 0 movs r1, 0 movs r7, 0x2 _080C0D5A: mov r2, r12 adds r0, r2, r1 ldrb r3, [r0] movs r4, 0 adds r6, r1, 0x1 _080C0D64: lsls r2, r4, 1 adds r1, r3, 0 asrs r1, r2 movs r0, 0x1 ands r1, r0 negs r0, r1 orrs r0, r1 asrs r1, r0, 31 ands r1, r7 adds r0, r7, 0 lsls r0, r2 ands r0, r3 cmp r0, 0 beq _080C0D84 movs r0, 0x20 orrs r1, r0 _080C0D84: mov r2, sp adds r0, r2, r5 strb r1, [r0] adds r0, r5, 0x1 lsls r0, 16 lsrs r5, r0, 16 adds r0, r4, 0x1 lsls r0, 16 lsrs r4, r0, 16 cmp r4, 0x3 bls _080C0D64 lsls r0, r6, 16 lsrs r1, r0, 16 cmp r1, 0x1F bls _080C0D5A mov r0, r8 mov r1, sp movs r2, 0x80 movs r3, 0 bl CopyToWindowPixelBuffer add sp, 0x80 pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_80C0D30 thumb_func_start sub_80C0DC0 sub_80C0DC0: @ 80C0DC0 push {r4,lr} lsls r0, 16 lsls r1, 16 lsrs r1, 16 lsrs r0, 5 ldr r2, =0x06000232 adds r3, r0, r2 movs r4, 0xF0 lsls r4, 8 adds r2, r1, r4 strh r2, [r3] ldr r2, =0x06000234 adds r3, r0, r2 adds r4, 0x1 adds r2, r1, r4 strh r2, [r3] ldr r2, =0x06000272 adds r3, r0, r2 adds r4, 0x1 adds r2, r1, r4 strh r2, [r3] ldr r2, =0x06000274 adds r0, r2 adds r4, 0x1 adds r1, r4 strh r1, [r0] pop {r4} pop {r0} bx r0 .pool thumb_func_end sub_80C0DC0 thumb_func_start sub_80C0E0C sub_80C0E0C: @ 80C0E0C push {r4,r5,lr} lsls r0, 24 lsrs r4, r0, 24 adds r5, r4, 0 lsls r1, 16 lsrs r0, r1, 16 lsls r2, 16 lsrs r2, 16 lsls r3, 16 lsrs r3, 16 cmp r4, 0x1 beq _080C0E38 cmp r4, 0x1 bgt _080C0E2E cmp r4, 0 beq _080C0E40 b _080C0E60 _080C0E2E: cmp r5, 0x2 beq _080C0E52 cmp r5, 0x3 beq _080C0E46 b _080C0E60 _080C0E38: cmp r0, r2 bls _080C0E60 subs r0, 0x1 b _080C0E58 _080C0E40: cmp r0, r3 bcs _080C0E60 b _080C0E56 _080C0E46: cmp r0, r2 bls _080C0E4E subs r0, 0x1 b _080C0E58 _080C0E4E: adds r0, r3, 0 b _080C0E60 _080C0E52: cmp r0, r3 bcs _080C0E5E _080C0E56: adds r0, 0x1 _080C0E58: lsls r0, 16 lsrs r0, 16 b _080C0E60 _080C0E5E: adds r0, r2, 0 _080C0E60: pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_80C0E0C thumb_func_start sub_80C0E68 sub_80C0E68: @ 80C0E68 push {lr} lsls r0, 16 lsrs r1, r0, 16 cmp r1, 0xC9 beq _080C0E88 movs r0, 0x9A lsls r0, 1 cmp r1, r0 bne _080C0E94 ldr r0, =gSaveBlock2Ptr ldr r0, [r0] ldr r0, [r0, 0x20] b _080C0E96 .pool _080C0E88: ldr r0, =gSaveBlock2Ptr ldr r0, [r0] ldr r0, [r0, 0x1C] b _080C0E96 .pool _080C0E94: movs r0, 0 _080C0E96: pop {r1} bx r1 thumb_func_end sub_80C0E68 thumb_func_start sub_80C0E9C sub_80C0E9C: @ 80C0E9C push {r4-r6,lr} sub sp, 0x14 adds r4, r1, 0 adds r5, r2, 0 adds r6, r3, 0 lsls r0, 16 lsrs r0, 16 lsls r4, 16 lsrs r4, 16 lsls r5, 16 lsrs r5, 16 lsls r6, 16 lsrs r6, 16 bl NationalPokedexNumToSpecies adds r1, r0, 0 adds r0, r1, 0 str r1, [sp, 0x10] bl sub_80C0E68 adds r2, r0, 0 lsls r4, 16 asrs r4, 16 str r4, [sp] lsls r5, 16 asrs r5, 16 str r5, [sp, 0x4] lsls r6, 24 lsrs r6, 24 str r6, [sp, 0x8] ldr r0, =0x0000ffff str r0, [sp, 0xC] ldr r1, [sp, 0x10] adds r0, r1, 0 movs r1, 0x8 movs r3, 0x1 bl sub_818D7D8 lsls r0, 16 lsrs r0, 16 add sp, 0x14 pop {r4-r6} pop {r1} bx r1 .pool thumb_func_end sub_80C0E9C thumb_func_start sub_80C0EF8 sub_80C0EF8: @ 80C0EF8 push {r4,r5,lr} sub sp, 0x8 adds r4, r1, 0 adds r5, r2, 0 lsls r0, 16 lsrs r0, 16 lsls r4, 16 asrs r4, 16 lsls r5, 16 asrs r5, 16 lsls r3, 24 lsrs r3, 24 str r3, [sp] ldr r1, =0x0000ffff str r1, [sp, 0x4] movs r1, 0x1 adds r2, r4, 0 adds r3, r5, 0 bl sub_818D8AC lsls r0, 16 lsrs r0, 16 add sp, 0x8 pop {r4,r5} pop {r1} bx r1 .pool thumb_func_end sub_80C0EF8 thumb_func_start sub_80C0F30 sub_80C0F30: @ 80C0F30 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x14 ldr r4, [sp, 0x34] ldr r5, [sp, 0x38] lsls r0, 24 lsrs r0, 24 lsls r1, 24 lsrs r1, 24 lsls r2, 24 lsrs r7, r2, 24 lsls r3, 24 lsrs r3, 24 str r3, [sp, 0x4] lsls r4, 24 lsrs r4, 24 str r4, [sp, 0x8] lsls r5, 24 lsrs r5, 24 mov r10, r5 bl sub_80BC8D4 movs r5, 0 movs r6, 0 ldr r4, =0x00000181 ldr r3, =gUnknown_02039B4C _080C0F6A: ldr r2, [r3] lsls r0, r5, 2 adds r1, r2, r0 ldrb r0, [r1, 0x2] lsls r0, 31 cmp r0, 0 beq _080C0F86 lsls r0, r6, 2 adds r0, r2, r0 ldr r1, [r1] str r1, [r0] adds r0, r6, 0x1 lsls r0, 16 lsrs r6, r0, 16 _080C0F86: adds r0, r5, 0x1 lsls r0, 16 lsrs r5, r0, 16 cmp r5, r4 bls _080C0F6A ldr r1, =gUnknown_02039B4C ldr r0, [r1] ldr r2, =0x0000060c adds r0, r2 adds r1, r6, 0 strh r6, [r0] cmp r7, 0xFF beq _080C103C movs r5, 0 lsls r0, r1, 16 movs r6, 0 cmp r0, 0 beq _080C1032 lsls r7, 2 ldr r0, =gUnknown_0856ED08 adds r0, 0x3 adds r0, r7, r0 str r0, [sp, 0xC] ldr r0, =gUnknown_0856ED08 adds r0, r7 mov r9, r0 _080C0FBA: ldr r1, =gUnknown_02039B4C ldr r0, [r1] lsls r4, r5, 2 adds r0, r4 ldrh r0, [r0] bl NationalPokedexNumToSpecies lsls r0, 16 lsrs r2, r0, 16 ldr r1, =gSpeciesNames movs r0, 0xB muls r0, r2 adds r0, r1 ldrb r2, [r0] adds r3, r2, 0 mov r0, r9 ldrb r0, [r0] cmp r2, r0 bcc _080C0FF2 mov r1, r9 ldrb r0, [r1] ldr r1, =gUnknown_0856ED08 adds r1, 0x1 adds r1, r7, r1 ldrb r1, [r1] adds r0, r1 cmp r2, r0 blt _080C100A _080C0FF2: ldr r0, =gUnknown_0856ED08 adds r0, 0x2 adds r0, r7, r0 ldrb r2, [r0] cmp r3, r2 bcc _080C101E ldrb r1, [r0] ldr r2, [sp, 0xC] ldrb r0, [r2] adds r1, r0 cmp r3, r1 bge _080C101E _080C100A: ldr r2, =gUnknown_02039B4C ldr r0, [r2] lsls r1, r6, 2 adds r1, r0, r1 adds r0, r4 ldr r0, [r0] str r0, [r1] adds r0, r6, 0x1 lsls r0, 16 lsrs r6, r0, 16 _080C101E: adds r0, r5, 0x1 lsls r0, 16 lsrs r5, r0, 16 ldr r1, =gUnknown_02039B4C ldr r0, [r1] ldr r2, =0x0000060c adds r0, r2 ldrh r0, [r0] cmp r5, r0 bcc _080C0FBA _080C1032: ldr r1, =gUnknown_02039B4C ldr r0, [r1] ldr r2, =0x0000060c adds r0, r2 strh r6, [r0] _080C103C: ldr r0, [sp, 0x4] cmp r0, 0xFF beq _080C10AC movs r5, 0 movs r6, 0 ldr r1, =gUnknown_02039B4C ldr r0, [r1] ldr r2, =0x0000060c adds r0, r2 ldrh r0, [r0] cmp r6, r0 bcs _080C10A2 adds r7, r1, 0 ldr r0, =gBaseStats mov r8, r0 _080C105A: ldr r0, [r7] lsls r4, r5, 2 adds r0, r4 ldrh r0, [r0] bl NationalPokedexNumToSpecies lsls r0, 16 lsrs r2, r0, 16 lsls r0, r2, 3 subs r0, r2 lsls r0, 2 add r0, r8 ldrb r0, [r0, 0x19] lsls r0, 25 lsrs r0, 25 ldr r1, [sp, 0x4] cmp r1, r0 bne _080C1090 ldr r0, [r7] lsls r1, r6, 2 adds r1, r0, r1 adds r0, r4 ldr r0, [r0] str r0, [r1] adds r0, r6, 0x1 lsls r0, 16 lsrs r6, r0, 16 _080C1090: adds r0, r5, 0x1 lsls r0, 16 lsrs r5, r0, 16 ldr r0, [r7] ldr r2, =0x0000060c adds r0, r2 ldrh r0, [r0] cmp r5, r0 bcc _080C105A _080C10A2: ldr r1, =gUnknown_02039B4C ldr r0, [r1] ldr r2, =0x0000060c adds r0, r2 strh r6, [r0] _080C10AC: ldr r0, [sp, 0x8] cmp r0, 0xFF bne _080C10C2 mov r1, r10 cmp r1, 0xFF bne _080C10BA b _080C11DE _080C10BA: mov r2, r10 str r2, [sp, 0x8] movs r0, 0xFF mov r10, r0 _080C10C2: mov r1, r10 cmp r1, 0xFF bne _080C1158 movs r5, 0 movs r6, 0 ldr r2, =gUnknown_02039B4C ldr r0, [r2] ldr r1, =0x0000060c adds r0, r1 ldrh r0, [r0] cmp r6, r0 bcs _080C11D4 adds r3, r2, 0 mov r7, sp mov r8, r2 _080C10E0: ldr r0, [r3] lsls r4, r5, 2 adds r1, r0, r4 ldrb r0, [r1, 0x2] lsls r0, 30 cmp r0, 0 bge _080C112A ldrh r0, [r1] str r3, [sp, 0x10] bl NationalPokedexNumToSpecies lsls r0, 16 lsrs r2, r0, 16 ldr r1, =gBaseStats lsls r0, r2, 3 subs r0, r2 lsls r0, 2 adds r0, r1 ldrb r1, [r0, 0x6] strb r1, [r7] ldrb r0, [r0, 0x7] strb r0, [r7, 0x1] ldr r3, [sp, 0x10] ldr r2, [sp, 0x8] cmp r1, r2 beq _080C1118 cmp r0, r2 bne _080C112A _080C1118: ldr r0, [r3] lsls r1, r6, 2 adds r1, r0, r1 adds r0, r4 ldr r0, [r0] str r0, [r1] adds r0, r6, 0x1 lsls r0, 16 lsrs r6, r0, 16 _080C112A: adds r0, r5, 0x1 lsls r0, 16 lsrs r5, r0, 16 mov r1, r8 ldr r0, [r1] ldr r2, =0x0000060c adds r0, r2 ldrh r0, [r0] cmp r5, r0 bcc _080C10E0 b _080C11D4 .pool _080C1158: movs r5, 0 movs r6, 0 ldr r1, =gUnknown_02039B4C ldr r0, [r1] ldr r2, =0x0000060c adds r0, r2 ldrh r0, [r0] cmp r6, r0 bcs _080C11D4 mov r7, sp _080C116C: ldr r0, [r1] lsls r1, r5, 2 adds r2, r0, r1 ldrb r0, [r2, 0x2] lsls r0, 30 adds r4, r1, 0 cmp r0, 0 bge _080C11C0 ldrh r0, [r2] bl NationalPokedexNumToSpecies lsls r0, 16 lsrs r2, r0, 16 ldr r1, =gBaseStats lsls r0, r2, 3 subs r0, r2 lsls r0, 2 adds r0, r1 ldrb r1, [r0, 0x6] strb r1, [r7] ldrb r0, [r0, 0x7] strb r0, [r7, 0x1] ldr r2, [sp, 0x8] cmp r1, r2 bne _080C11A2 cmp r0, r10 beq _080C11AC _080C11A2: cmp r1, r10 bne _080C11C0 ldr r1, [sp, 0x8] cmp r0, r1 bne _080C11C0 _080C11AC: ldr r2, =gUnknown_02039B4C ldr r0, [r2] lsls r1, r6, 2 adds r1, r0, r1 adds r0, r4 ldr r0, [r0] str r0, [r1] adds r0, r6, 0x1 lsls r0, 16 lsrs r6, r0, 16 _080C11C0: adds r0, r5, 0x1 lsls r0, 16 lsrs r5, r0, 16 ldr r1, =gUnknown_02039B4C ldr r0, [r1] ldr r2, =0x0000060c adds r0, r2 ldrh r0, [r0] cmp r5, r0 bcc _080C116C _080C11D4: ldr r1, =gUnknown_02039B4C ldr r0, [r1] ldr r2, =0x0000060c adds r0, r2 strh r6, [r0] _080C11DE: ldr r1, =gUnknown_02039B4C ldr r0, [r1] ldr r2, =0x0000060c adds r1, r0, r2 ldrh r0, [r1] cmp r0, 0 beq _080C1232 adds r5, r0, 0 ldr r0, =0x00000181 cmp r5, r0 bhi _080C1232 ldr r4, =gUnknown_02039B4C movs r1, 0x2 negs r1, r1 mov r10, r1 movs r2, 0x3 negs r2, r2 mov r9, r2 mov r8, r0 ldr r0, =0x0000ffff adds r7, r0, 0 _080C1208: ldr r1, [r4] lsls r3, r5, 2 adds r1, r3 ldrh r0, [r1] orrs r0, r7 strh r0, [r1] ldrb r2, [r1, 0x2] mov r0, r10 ands r0, r2 strb r0, [r1, 0x2] ldr r1, [r4] adds r1, r3 ldrb r2, [r1, 0x2] mov r0, r9 ands r0, r2 strb r0, [r1, 0x2] adds r0, r5, 0x1 lsls r0, 16 lsrs r5, r0, 16 cmp r5, r8 bls _080C1208 _080C1232: adds r0, r6, 0 add sp, 0x14 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r1} bx r1 .pool thumb_func_end sub_80C0F30 thumb_func_start sub_80C1258 sub_80C1258: @ 80C1258 push {lr} ldr r0, =sub_80C12E0 movs r1, 0 bl CreateTask lsls r0, 24 lsrs r0, 24 pop {r1} bx r1 .pool thumb_func_end sub_80C1258 thumb_func_start sub_80C1270 sub_80C1270: @ 80C1270 push {r4,r5,lr} sub sp, 0x18 adds r5, r1, 0 adds r3, r2, 0 add r1, sp, 0x14 movs r4, 0 strb r4, [r1] adds r2, r1, 0 movs r1, 0xF strb r1, [r2, 0x1] movs r1, 0x2 strb r1, [r2, 0x2] lsls r5, 24 lsrs r5, 24 lsls r3, 24 lsrs r3, 24 str r4, [sp] str r4, [sp, 0x4] str r2, [sp, 0x8] subs r1, 0x3 str r1, [sp, 0xC] str r0, [sp, 0x10] movs r0, 0 movs r1, 0x1 adds r2, r5, 0 bl AddTextPrinterParameterized2 add sp, 0x18 pop {r4,r5} pop {r0} bx r0 thumb_func_end sub_80C1270 thumb_func_start sub_80C12B0 sub_80C12B0: @ 80C12B0 push {r4,r5,lr} sub sp, 0x8 adds r4, r0, 0 adds r5, r1, 0 lsls r4, 16 lsrs r4, 16 lsls r5, 16 lsrs r5, 16 lsls r2, 16 lsrs r2, 16 str r2, [sp] lsls r3, 16 lsrs r3, 16 str r3, [sp, 0x4] movs r0, 0 movs r1, 0 adds r2, r4, 0 adds r3, r5, 0 bl FillWindowPixelRect add sp, 0x8 pop {r4,r5} pop {r0} bx r0 thumb_func_end sub_80C12B0 thumb_func_start sub_80C12E0 sub_80C12E0: @ 80C12E0 push {r4,r5,lr} sub sp, 0x4 lsls r0, 24 lsrs r4, r0, 24 ldr r1, =gMain movs r2, 0x87 lsls r2, 3 adds r0, r1, r2 ldrb r0, [r0] adds r3, r1, 0 cmp r0, 0x4 bhi _080C1320 lsls r0, 2 ldr r1, =_080C130C adds r0, r1 ldr r0, [r0] mov pc, r0 .pool .align 2, 0 _080C130C: .4byte _080C1320 .4byte _080C1414 .4byte _080C1480 .4byte _080C14A0 .4byte _080C14F0 _080C1320: ldr r0, =gPaletteFade ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 lsls r0, 24 lsrs r5, r0, 24 cmp r5, 0 beq _080C1332 b _080C1516 _080C1332: ldr r0, =gUnknown_02039B4C ldr r0, [r0] ldr r1, =0x0000064a adds r0, r1 movs r1, 0x2 strb r1, [r0] movs r0, 0 bl sub_80C09B0 movs r0, 0 bl ResetBgsAndClearDma3BusyFlags ldr r1, =gUnknown_0856EFF8 movs r0, 0 movs r2, 0x4 bl InitBgsFromTemplates movs r4, 0x80 lsls r4, 4 adds r0, r4, 0 bl AllocZeroed adds r1, r0, 0 movs r0, 0x3 bl SetBgTilemapBuffer adds r0, r4, 0 bl AllocZeroed adds r1, r0, 0 movs r0, 0x2 bl SetBgTilemapBuffer adds r0, r4, 0 bl AllocZeroed adds r1, r0, 0 movs r0, 0x1 bl SetBgTilemapBuffer adds r0, r4, 0 bl AllocZeroed adds r1, r0, 0 movs r0, 0 bl SetBgTilemapBuffer ldr r0, =gUnknown_0856F008 bl InitWindows bl DeactivateAllTextPrinters movs r0, 0 bl PutWindowTilemap ldr r1, =gPokedexSearchMenu_Gfx movs r2, 0x80 lsls r2, 6 str r5, [sp] movs r0, 0x3 movs r3, 0 bl copy_decompressed_tile_data_to_vram_autofree bl IsNationalPokedexEnabled cmp r0, 0 bne _080C13E4 ldr r1, =gPokedexSearch2_Tilemap movs r0, 0x3 movs r2, 0 movs r3, 0 bl CopyToBgTilemapBuffer b _080C13F0 .pool _080C13E4: ldr r1, =gPokedexSearch1_Tilemap movs r0, 0x3 movs r2, 0 movs r3, 0 bl CopyToBgTilemapBuffer _080C13F0: ldr r0, =gPokedexSearchMenu_Pal + 0x2 movs r1, 0x1 movs r2, 0x7E bl LoadPalette ldr r0, =gMain movs r2, 0x87 lsls r2, 3 adds r0, r2 movs r1, 0x1 strb r1, [r0] b _080C1516 .pool _080C1414: ldr r0, =gSpriteSheets_0855D26C bl LoadCompressedObjectPic ldr r0, =gSpritePalettes_0855D26C bl LoadSpritePalettes adds r0, r4, 0 bl sub_80C2594 movs r1, 0 lsls r0, r4, 2 adds r0, r4 lsls r2, r0, 3 ldr r5, =gTasks + 0x8 movs r3, 0 _080C1432: lsls r0, r1, 1 adds r0, r2 adds r0, r5 strh r3, [r0] adds r0, r1, 0x1 lsls r0, 16 lsrs r1, r0, 16 cmp r1, 0xF bls _080C1432 adds r0, r4, 0 bl sub_80C23B8 movs r0, 0 bl sub_80C2040 adds r0, r4, 0 bl sub_80C20F8 movs r0, 0 movs r1, 0x3 bl CopyWindowToVram movs r0, 0x1 bl CopyBgTilemapBufferToVram movs r0, 0x2 bl CopyBgTilemapBufferToVram movs r0, 0x3 bl CopyBgTilemapBufferToVram b _080C14DA .pool _080C1480: movs r0, 0x1 negs r0, r0 movs r1, 0 str r1, [sp] movs r2, 0x10 movs r3, 0 bl BeginNormalPaletteFade ldr r1, =gMain movs r2, 0x87 lsls r2, 3 adds r1, r2 b _080C14E2 .pool _080C14A0: movs r0, 0x50 movs r1, 0 bl SetGpuReg movs r0, 0x52 movs r1, 0 bl SetGpuReg movs r0, 0x54 movs r1, 0 bl SetGpuReg movs r1, 0x82 lsls r1, 5 movs r0, 0 bl SetGpuReg movs r0, 0 bl HideBg movs r0, 0x1 bl ShowBg movs r0, 0x2 bl ShowBg movs r0, 0x3 bl ShowBg _080C14DA: ldr r1, =gMain movs r0, 0x87 lsls r0, 3 adds r1, r0 _080C14E2: ldrb r0, [r1] adds r0, 0x1 strb r0, [r1] b _080C1516 .pool _080C14F0: ldr r0, =gPaletteFade ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 lsls r0, 24 lsrs r2, r0, 24 cmp r2, 0 bne _080C1516 ldr r1, =gTasks lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r0, r1 ldr r1, =sub_80C1570 str r1, [r0] movs r1, 0x87 lsls r1, 3 adds r0, r3, r1 strb r2, [r0] _080C1516: add sp, 0x4 pop {r4,r5} pop {r0} bx r0 .pool thumb_func_end sub_80C12E0 thumb_func_start sub_80C152C sub_80C152C: @ 80C152C push {lr} bl FreeAllWindowBuffers movs r0, 0 bl GetBgTilemapBuffer cmp r0, 0 beq _080C1540 bl Free _080C1540: movs r0, 0x1 bl GetBgTilemapBuffer cmp r0, 0 beq _080C154E bl Free _080C154E: movs r0, 0x2 bl GetBgTilemapBuffer cmp r0, 0 beq _080C155C bl Free _080C155C: movs r0, 0x3 bl GetBgTilemapBuffer cmp r0, 0 beq _080C156A bl Free _080C156A: pop {r0} bx r0 thumb_func_end sub_80C152C thumb_func_start sub_80C1570 sub_80C1570: @ 80C1570 push {r4,r5,lr} adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 ldr r0, =gTasks lsls r5, r4, 2 adds r5, r4 lsls r5, 3 adds r5, r0 ldrb r0, [r5, 0x8] bl sub_80C2040 adds r0, r4, 0 bl sub_80C20F8 movs r0, 0 movs r1, 0x2 bl CopyWindowToVram movs r0, 0x3 bl CopyBgTilemapBufferToVram ldr r0, =sub_80C15B0 str r0, [r5] pop {r4,r5} pop {r0} bx r0 .pool thumb_func_end sub_80C1570 thumb_func_start sub_80C15B0 sub_80C15B0: @ 80C15B0 push {r4,r5,lr} lsls r0, 24 lsrs r5, r0, 24 ldr r0, =gMain ldrh r1, [r0, 0x2E] movs r0, 0x2 ands r0, r1 cmp r0, 0 beq _080C15E4 movs r0, 0x3 bl PlaySE ldr r0, =gTasks lsls r1, r5, 2 adds r1, r5 lsls r1, 3 adds r1, r0 ldr r0, =sub_80C1D38 str r0, [r1] b _080C16BC .pool _080C15E4: movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _080C1640 ldr r1, =gTasks lsls r0, r5, 2 adds r0, r5 lsls r0, 3 adds r5, r0, r1 movs r0, 0x8 ldrsh r4, [r5, r0] cmp r4, 0x1 beq _080C161C cmp r4, 0x1 bgt _080C160C cmp r4, 0 beq _080C1612 b _080C16BC .pool _080C160C: cmp r4, 0x2 beq _080C1630 b _080C16BC _080C1612: movs r0, 0x15 bl PlaySE strh r4, [r5, 0xA] b _080C1626 _080C161C: movs r0, 0x15 bl PlaySE movs r0, 0x4 strh r0, [r5, 0xA] _080C1626: ldr r0, =sub_80C16CC str r0, [r5] b _080C16BC .pool _080C1630: movs r0, 0x3 bl PlaySE ldr r0, =sub_80C1D38 str r0, [r5] b _080C16BC .pool _080C1640: movs r0, 0x20 ands r0, r1 cmp r0, 0 beq _080C167C ldr r0, =gTasks lsls r1, r5, 2 adds r1, r5 lsls r1, 3 adds r4, r1, r0 movs r1, 0x8 ldrsh r0, [r4, r1] cmp r0, 0 ble _080C167C movs r0, 0x6D bl PlaySE ldrh r0, [r4, 0x8] subs r0, 0x1 strh r0, [r4, 0x8] lsls r0, 24 lsrs r0, 24 bl sub_80C2040 movs r0, 0 movs r1, 0x2 bl CopyWindowToVram movs r0, 0x3 bl CopyBgTilemapBufferToVram _080C167C: ldr r0, =gMain ldrh r1, [r0, 0x2E] movs r0, 0x10 ands r0, r1 cmp r0, 0 beq _080C16BC ldr r0, =gTasks lsls r1, r5, 2 adds r1, r5 lsls r1, 3 adds r4, r1, r0 movs r1, 0x8 ldrsh r0, [r4, r1] cmp r0, 0x1 bgt _080C16BC movs r0, 0x6D bl PlaySE ldrh r0, [r4, 0x8] adds r0, 0x1 strh r0, [r4, 0x8] lsls r0, 24 lsrs r0, 24 bl sub_80C2040 movs r0, 0 movs r1, 0x2 bl CopyWindowToVram movs r0, 0x3 bl CopyBgTilemapBufferToVram _080C16BC: pop {r4,r5} pop {r0} bx r0 .pool thumb_func_end sub_80C15B0 thumb_func_start sub_80C16CC sub_80C16CC: @ 80C16CC push {r4,r5,lr} adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 ldr r0, =gTasks lsls r5, r4, 2 adds r5, r4 lsls r5, 3 adds r5, r0 ldrb r0, [r5, 0x8] ldrb r1, [r5, 0xA] bl sub_80C2064 adds r0, r4, 0 bl sub_80C20F8 movs r0, 0 movs r1, 0x2 bl CopyWindowToVram movs r0, 0x3 bl CopyBgTilemapBufferToVram ldr r0, =sub_80C170C str r0, [r5] pop {r4,r5} pop {r0} bx r0 .pool thumb_func_end sub_80C16CC thumb_func_start sub_80C170C sub_80C170C: @ 80C170C push {r4-r7,lr} lsls r0, 24 lsrs r5, r0, 24 ldr r1, =gTasks lsls r0, r5, 2 adds r0, r5 lsls r0, 3 adds r0, r1 movs r1, 0x8 ldrsh r0, [r0, r1] cmp r0, 0 beq _080C1740 bl IsNationalPokedexEnabled ldr r6, =gUnknown_0856EDB8 cmp r0, 0 bne _080C174C ldr r6, =gUnknown_0856EDF0 b _080C174C .pool _080C1740: bl IsNationalPokedexEnabled ldr r6, =gUnknown_0856ED9C cmp r0, 0 bne _080C174C ldr r6, =gUnknown_0856EDD4 _080C174C: ldr r0, =gMain ldrh r1, [r0, 0x2E] movs r0, 0x2 ands r0, r1 lsls r0, 16 lsrs r3, r0, 16 cmp r3, 0 beq _080C178C movs r0, 0x17 bl PlaySE adds r0, r5, 0 bl sub_80C23B8 ldr r0, =gTasks lsls r1, r5, 2 adds r1, r5 lsls r1, 3 adds r1, r0 ldr r0, =sub_80C1570 str r0, [r1] b _080C1994 .pool _080C178C: movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _080C1870 ldr r0, =gTasks lsls r1, r5, 2 adds r1, r5 lsls r1, 3 adds r6, r1, r0 movs r2, 0xA ldrsh r0, [r6, r2] cmp r0, 0x6 bne _080C1860 movs r1, 0x8 ldrsh r0, [r6, r1] cmp r0, 0 beq _080C183C ldr r1, =gUnknown_02039B52 movs r0, 0x40 strb r0, [r1] ldr r7, =gUnknown_02039B4C ldr r1, [r7] ldr r0, =0x0000062a adds r2, r1, r0 movs r0, 0x40 strh r0, [r2] ldr r0, =gUnknown_02039B50 strh r3, [r0] movs r2, 0xC2 lsls r2, 3 adds r1, r2 strh r3, [r1] adds r0, r5, 0 movs r1, 0x5 bl sub_80C2318 ldr r4, =gSaveBlock2Ptr ldr r1, [r4] strb r0, [r1, 0x19] bl IsNationalPokedexEnabled cmp r0, 0 bne _080C17E8 ldr r1, [r4] movs r0, 0 strb r0, [r1, 0x19] _080C17E8: ldr r0, [r7] ldr r1, [r4] ldrb r1, [r1, 0x19] ldr r2, =0x00000614 adds r0, r2 strh r1, [r0] adds r0, r5, 0 movs r1, 0x4 bl sub_80C2318 ldr r1, [r4] strb r0, [r1, 0x18] ldr r0, [r7] ldr r1, [r4] ldrb r1, [r1, 0x18] movs r2, 0xC3 lsls r2, 3 adds r0, r2 strh r1, [r0] movs r0, 0x3 bl PlaySE ldr r0, =sub_80C1D38 str r0, [r6] b _080C1994 .pool _080C183C: ldr r0, =gText_SearchingPleaseWait bl sub_80C2618 ldr r0, =sub_80C19A4 str r0, [r6] movs r0, 0x70 bl PlaySE movs r0, 0 movs r1, 0x2 bl CopyWindowToVram b _080C1994 .pool _080C1860: movs r0, 0x15 bl PlaySE ldr r0, =sub_80C1B64 str r0, [r6] b _080C1994 .pool _080C1870: movs r0, 0x20 ands r0, r1 cmp r0, 0 beq _080C18B6 ldr r1, =gTasks lsls r0, r5, 2 adds r0, r5 lsls r0, 3 adds r4, r0, r1 movs r1, 0xA ldrsh r0, [r4, r1] lsls r0, 2 adds r0, r6 ldrb r0, [r0] cmp r0, 0xFF beq _080C18B6 movs r0, 0x5 bl PlaySE movs r2, 0xA ldrsh r0, [r4, r2] lsls r0, 2 adds r0, r6 ldrb r1, [r0] strh r1, [r4, 0xA] ldrb r0, [r4, 0x8] bl sub_80C2064 movs r0, 0 movs r1, 0x2 bl CopyWindowToVram movs r0, 0x3 bl CopyBgTilemapBufferToVram _080C18B6: ldr r0, =gMain ldrh r1, [r0, 0x2E] movs r0, 0x10 ands r0, r1 cmp r0, 0 beq _080C1900 ldr r1, =gTasks lsls r0, r5, 2 adds r0, r5 lsls r0, 3 adds r4, r0, r1 movs r1, 0xA ldrsh r0, [r4, r1] lsls r0, 2 adds r0, r6 ldrb r0, [r0, 0x1] cmp r0, 0xFF beq _080C1900 movs r0, 0x5 bl PlaySE movs r2, 0xA ldrsh r0, [r4, r2] lsls r0, 2 adds r0, r6 ldrb r1, [r0, 0x1] strh r1, [r4, 0xA] ldrb r0, [r4, 0x8] bl sub_80C2064 movs r0, 0 movs r1, 0x2 bl CopyWindowToVram movs r0, 0x3 bl CopyBgTilemapBufferToVram _080C1900: ldr r0, =gMain ldrh r1, [r0, 0x2E] movs r0, 0x40 ands r0, r1 cmp r0, 0 beq _080C194A ldr r1, =gTasks lsls r0, r5, 2 adds r0, r5 lsls r0, 3 adds r4, r0, r1 movs r1, 0xA ldrsh r0, [r4, r1] lsls r0, 2 adds r0, r6 ldrb r0, [r0, 0x2] cmp r0, 0xFF beq _080C194A movs r0, 0x5 bl PlaySE movs r2, 0xA ldrsh r0, [r4, r2] lsls r0, 2 adds r0, r6 ldrb r1, [r0, 0x2] strh r1, [r4, 0xA] ldrb r0, [r4, 0x8] bl sub_80C2064 movs r0, 0 movs r1, 0x2 bl CopyWindowToVram movs r0, 0x3 bl CopyBgTilemapBufferToVram _080C194A: ldr r0, =gMain ldrh r1, [r0, 0x2E] movs r0, 0x80 ands r0, r1 cmp r0, 0 beq _080C1994 ldr r1, =gTasks lsls r0, r5, 2 adds r0, r5 lsls r0, 3 adds r4, r0, r1 movs r1, 0xA ldrsh r0, [r4, r1] lsls r0, 2 adds r0, r6 ldrb r0, [r0, 0x3] cmp r0, 0xFF beq _080C1994 movs r0, 0x5 bl PlaySE movs r2, 0xA ldrsh r0, [r4, r2] lsls r0, 2 adds r0, r6 ldrb r1, [r0, 0x3] strh r1, [r4, 0xA] ldrb r0, [r4, 0x8] bl sub_80C2064 movs r0, 0 movs r1, 0x2 bl CopyWindowToVram movs r0, 0x3 bl CopyBgTilemapBufferToVram _080C1994: pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_80C170C thumb_func_start sub_80C19A4 sub_80C19A4: @ 80C19A4 push {r4-r6,lr} mov r6, r10 mov r5, r9 mov r4, r8 push {r4-r6} sub sp, 0x8 adds r5, r0, 0 lsls r5, 24 lsrs r5, 24 adds r0, r5, 0 movs r1, 0x5 bl sub_80C2318 mov r10, r0 mov r0, r10 lsls r0, 24 lsrs r0, 24 mov r10, r0 adds r0, r5, 0 movs r1, 0x4 bl sub_80C2318 mov r9, r0 mov r0, r9 lsls r0, 24 lsrs r0, 24 mov r9, r0 adds r0, r5, 0 movs r1, 0 bl sub_80C2318 mov r8, r0 mov r0, r8 lsls r0, 24 lsrs r0, 24 mov r8, r0 adds r0, r5, 0 movs r1, 0x1 bl sub_80C2318 adds r6, r0, 0 lsls r6, 24 lsrs r6, 24 adds r0, r5, 0 movs r1, 0x2 bl sub_80C2318 adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 adds r0, r5, 0 movs r1, 0x3 bl sub_80C2318 lsls r0, 24 lsrs r0, 24 str r4, [sp] str r0, [sp, 0x4] mov r0, r10 mov r1, r9 mov r2, r8 adds r3, r6, 0 bl sub_80C0F30 ldr r1, =gTasks lsls r0, r5, 2 adds r0, r5 lsls r0, 3 adds r0, r1 ldr r1, =sub_80C1A4C str r1, [r0] add sp, 0x8 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r6} pop {r0} bx r0 .pool thumb_func_end sub_80C19A4 thumb_func_start sub_80C1A4C sub_80C1A4C: @ 80C1A4C push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 bl IsSEPlaying lsls r0, 24 cmp r0, 0 bne _080C1AA6 ldr r0, =gUnknown_02039B4C ldr r0, [r0] ldr r1, =0x0000060c adds r0, r1 ldrh r0, [r0] cmp r0, 0 beq _080C1A84 movs r0, 0x1F bl PlaySE ldr r0, =gText_SearchCompleted bl sub_80C2618 b _080C1A90 .pool _080C1A84: movs r0, 0x20 bl PlaySE ldr r0, =gUnknown_085E8785 bl sub_80C2618 _080C1A90: ldr r0, =gTasks lsls r1, r4, 2 adds r1, r4 lsls r1, 3 adds r1, r0 ldr r0, =sub_80C1AB8 str r0, [r1] movs r0, 0 movs r1, 0x2 bl CopyWindowToVram _080C1AA6: pop {r4} pop {r0} bx r0 .pool thumb_func_end sub_80C1A4C thumb_func_start sub_80C1AB8 sub_80C1AB8: @ 80C1AB8 push {r4,r5,lr} lsls r0, 24 lsrs r4, r0, 24 adds r2, r4, 0 ldr r0, =gMain ldrh r1, [r0, 0x2E] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _080C1B54 ldr r5, =gUnknown_02039B4C ldr r1, [r5] ldr r3, =0x0000060c adds r0, r1, r3 ldrh r0, [r0] cmp r0, 0 beq _080C1B40 ldr r0, =0x0000064e adds r1, r0 movs r0, 0x1 strb r0, [r1] adds r0, r4, 0 movs r1, 0x5 bl sub_80C2318 ldr r1, [r5] lsls r0, 24 lsrs r0, 24 ldr r2, =0x00000612 adds r1, r2 strh r0, [r1] adds r0, r4, 0 movs r1, 0x4 bl sub_80C2318 ldr r1, [r5] lsls r0, 24 lsrs r0, 24 ldr r3, =0x00000616 adds r1, r3 strh r0, [r1] ldr r1, =gTasks lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r0, r1 ldr r1, =sub_80C1D38 str r1, [r0] movs r0, 0x3 bl PlaySE b _080C1B54 .pool _080C1B40: ldr r0, =gTasks lsls r1, r2, 2 adds r1, r2 lsls r1, 3 adds r1, r0 ldr r0, =sub_80C16CC str r0, [r1] movs r0, 0x17 bl PlaySE _080C1B54: pop {r4,r5} pop {r0} bx r0 .pool thumb_func_end sub_80C1AB8 thumb_func_start sub_80C1B64 sub_80C1B64: @ 80C1B64 push {r4-r6,lr} adds r5, r0, 0 lsls r5, 24 lsrs r5, 24 movs r0, 0 bl sub_80C21D4 ldr r2, =gTasks lsls r1, r5, 2 adds r1, r5 lsls r1, 3 adds r6, r1, r2 ldrb r0, [r6, 0xA] adds r2, 0x8 adds r1, r2 ldr r2, =gUnknown_0856EFC8 lsls r0, 3 adds r0, r2 ldrb r4, [r0, 0x4] lsls r4, 1 adds r4, r1, r4 ldrb r0, [r0, 0x5] lsls r0, 1 adds r1, r0 ldrh r0, [r4] strh r0, [r6, 0x24] ldrh r0, [r1] strh r0, [r6, 0x26] adds r0, r5, 0 bl sub_80C2294 ldrh r0, [r4] bl sub_80C2650 ldr r0, =sub_80C1BCC str r0, [r6] movs r0, 0 movs r1, 0x2 bl CopyWindowToVram movs r0, 0x3 bl CopyBgTilemapBufferToVram pop {r4-r6} pop {r0} bx r0 .pool thumb_func_end sub_80C1B64 thumb_func_start sub_80C1BCC sub_80C1BCC: @ 80C1BCC push {r4-r7,lr} mov r7, r8 push {r7} lsls r0, 24 lsrs r7, r0, 24 ldr r3, =gTasks lsls r2, r7, 2 adds r2, r7 lsls r2, 3 adds r5, r2, r3 ldrb r1, [r5, 0xA] ldr r0, =gUnknown_0856EFC8 lsls r1, 3 adds r1, r0 ldr r0, [r1] mov r8, r0 adds r3, 0x8 adds r2, r3 ldrb r0, [r1, 0x4] lsls r0, 1 adds r4, r2, r0 ldrb r0, [r1, 0x5] lsls r0, 1 adds r6, r2, r0 ldrh r0, [r1, 0x6] subs r0, 0x1 lsls r0, 16 lsrs r2, r0, 16 ldr r0, =gMain mov r12, r0 ldrh r1, [r0, 0x2E] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _080C1C30 movs r0, 0x15 bl PlaySE bl sub_80C267C movs r0, 0x1 bl sub_80C21D4 b _080C1C50 .pool _080C1C30: movs r0, 0x2 ands r0, r1 cmp r0, 0 beq _080C1C68 movs r0, 0x17 bl PlaySE bl sub_80C267C movs r0, 0x1 bl sub_80C21D4 ldrh r0, [r5, 0x24] strh r0, [r4] ldrh r0, [r5, 0x26] strh r0, [r6] _080C1C50: ldr r0, =sub_80C16CC str r0, [r5] movs r0, 0 movs r1, 0x2 bl CopyWindowToVram movs r0, 0x3 bl CopyBgTilemapBufferToVram b _080C1D2E .pool _080C1C68: movs r3, 0 mov r0, r12 ldrh r1, [r0, 0x30] movs r0, 0x40 ands r0, r1 cmp r0, 0 beq _080C1CCA ldrh r0, [r4] cmp r0, 0 beq _080C1C8E bl sub_80C2638 ldrh r0, [r4] subs r0, 0x1 strh r0, [r4] ldrh r0, [r4] bl sub_80C2650 b _080C1CAA _080C1C8E: ldrh r0, [r6] cmp r0, 0 beq _080C1CA6 subs r0, 0x1 strh r0, [r6] adds r0, r7, 0 bl sub_80C2294 ldrh r0, [r4] bl sub_80C2650 movs r3, 0x1 _080C1CA6: cmp r3, 0 beq _080C1D2E _080C1CAA: movs r0, 0x5 bl PlaySE ldrh r0, [r4] ldrh r1, [r6] adds r0, r1 lsls r0, 3 add r0, r8 ldr r0, [r0] bl sub_80C2618 movs r0, 0 movs r1, 0x2 bl CopyWindowToVram b _080C1D2E _080C1CCA: movs r0, 0x80 ands r0, r1 cmp r0, 0 beq _080C1D2E ldrh r0, [r4] cmp r0, 0x4 bhi _080C1CEE cmp r0, r2 bcs _080C1CEE bl sub_80C2638 ldrh r0, [r4] adds r0, 0x1 strh r0, [r4] ldrh r0, [r4] bl sub_80C2650 b _080C1D10 _080C1CEE: cmp r2, 0x5 bls _080C1D0C ldrh r1, [r6] subs r0, r2, 0x5 cmp r1, r0 bge _080C1D0C adds r0, r1, 0x1 strh r0, [r6] adds r0, r7, 0 bl sub_80C2294 movs r0, 0x5 bl sub_80C2650 movs r3, 0x1 _080C1D0C: cmp r3, 0 beq _080C1D2E _080C1D10: movs r0, 0x5 bl PlaySE ldrh r0, [r4] ldrh r1, [r6] adds r0, r1 lsls r0, 3 add r0, r8 ldr r0, [r0] bl sub_80C2618 movs r0, 0 movs r1, 0x2 bl CopyWindowToVram _080C1D2E: pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_80C1BCC thumb_func_start sub_80C1D38 sub_80C1D38: @ 80C1D38 push {r4,lr} sub sp, 0x4 adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 movs r0, 0x1 negs r0, r0 movs r1, 0 str r1, [sp] movs r2, 0 movs r3, 0x10 bl BeginNormalPaletteFade ldr r1, =gTasks lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r0, r1 ldr r1, =sub_80C1D70 str r1, [r0] add sp, 0x4 pop {r4} pop {r0} bx r0 .pool thumb_func_end sub_80C1D38 thumb_func_start sub_80C1D70 sub_80C1D70: @ 80C1D70 push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 ldr r0, =gPaletteFade ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 bne _080C1D8C bl sub_80C152C adds r0, r4, 0 bl DestroyTask _080C1D8C: pop {r4} pop {r0} bx r0 .pool thumb_func_end sub_80C1D70 thumb_func_start sub_80C1D98 sub_80C1D98: @ 80C1D98 push {r4-r7,lr} mov r7, r8 push {r7} adds r4, r3, 0 lsls r0, 24 lsrs r6, r0, 24 lsls r1, 24 lsrs r1, 24 mov r8, r1 lsls r2, 24 lsrs r5, r2, 24 lsls r4, 24 lsrs r4, 24 movs r0, 0x3 bl GetBgTilemapBuffer adds r2, r0, 0 movs r3, 0 cmp r3, r4 bcs _080C1DEC lsls r0, r5, 6 adds r7, r0, r2 ldr r5, =0x00000fff lsls r2, r6, 12 _080C1DC8: mov r0, r8 adds r1, r0, r3 lsls r1, 1 adds r1, r7 ldrh r0, [r1] ands r0, r5 orrs r0, r2 strh r0, [r1] adds r1, 0x40 ldrh r0, [r1] ands r0, r5 orrs r0, r2 strh r0, [r1] adds r0, r3, 0x1 lsls r0, 16 lsrs r3, r0, 16 cmp r3, r4 bcc _080C1DC8 _080C1DEC: pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_80C1D98 thumb_func_start sub_80C1DFC sub_80C1DFC: @ 80C1DFC push {r4,r5,lr} lsls r0, 24 lsrs r4, r0, 24 lsls r1, 24 lsrs r5, r1, 24 lsls r2, 24 lsrs r2, 24 movs r0, 0x1 ands r5, r0 ands r2, r0 lsls r2, 1 orrs r5, r2 cmp r4, 0xA bhi _080C1EE8 lsls r0, r4, 2 ldr r1, =_080C1E28 adds r0, r1 ldr r0, [r0] mov pc, r0 .pool .align 2, 0 _080C1E28: .4byte _080C1E54 .4byte _080C1E54 .4byte _080C1E54 .4byte _080C1E64 .4byte _080C1E64 .4byte _080C1E7C .4byte _080C1E7C .4byte _080C1E64 .4byte _080C1E64 .4byte _080C1EA4 .4byte _080C1E94 _080C1E54: ldr r1, =gUnknown_0856ED30 lsls r0, r4, 3 adds r0, r1 ldrb r1, [r0, 0x4] ldrb r2, [r0, 0x5] b _080C1EC2 .pool _080C1E64: ldr r2, =gUnknown_0856ED48 subs r1, r4, 0x3 lsls r0, r1, 1 adds r0, r1 lsls r0, 2 adds r0, r2 ldrb r1, [r0, 0x4] ldrb r2, [r0, 0x5] ldrb r3, [r0, 0x6] adds r0, r5, 0 bl sub_80C1D98 _080C1E7C: ldr r2, =gUnknown_0856ED48 subs r1, r4, 0x3 lsls r0, r1, 1 adds r0, r1 lsls r0, 2 adds r0, r2 ldrb r1, [r0, 0x7] ldrb r2, [r0, 0x8] ldrb r3, [r0, 0x9] b _080C1EC4 .pool _080C1E94: ldr r0, =gUnknown_0856ED48 ldrb r1, [r0, 0x1C] ldrb r2, [r0, 0x1D] ldrb r3, [r0, 0x1E] b _080C1EC4 .pool _080C1EA4: bl IsNationalPokedexEnabled cmp r0, 0 bne _080C1ED0 ldr r2, =gUnknown_0856ED48 subs r1, r4, 0x3 lsls r0, r1, 1 adds r0, r1 lsls r0, 2 adds r0, r2 ldrb r1, [r0, 0x4] ldrb r2, [r0, 0x5] subs r2, 0x2 lsls r2, 24 lsrs r2, 24 _080C1EC2: ldrb r3, [r0, 0x6] _080C1EC4: adds r0, r5, 0 bl sub_80C1D98 b _080C1EE8 .pool _080C1ED0: ldr r2, =gUnknown_0856ED48 subs r1, r4, 0x3 lsls r0, r1, 1 adds r0, r1 lsls r0, 2 adds r0, r2 ldrb r1, [r0, 0x4] ldrb r2, [r0, 0x5] ldrb r3, [r0, 0x6] adds r0, r5, 0 bl sub_80C1D98 _080C1EE8: pop {r4,r5} pop {r0} bx r0 .pool thumb_func_end sub_80C1DFC thumb_func_start sub_80C1EF4 sub_80C1EF4: @ 80C1EF4 push {lr} lsls r0, 24 lsrs r0, 24 adds r1, r0, 0 cmp r0, 0x1 beq _080C1F5E cmp r0, 0x1 bgt _080C1F0A cmp r0, 0 beq _080C1F10 b _080C203C _080C1F0A: cmp r1, 0x2 beq _080C1FCE b _080C203C _080C1F10: movs r0, 0 movs r1, 0 movs r2, 0 bl sub_80C1DFC movs r0, 0x1 movs r1, 0x1 movs r2, 0 bl sub_80C1DFC movs r0, 0x2 movs r1, 0x1 movs r2, 0 bl sub_80C1DFC movs r0, 0x3 movs r1, 0x1 movs r2, 0 bl sub_80C1DFC movs r0, 0x4 movs r1, 0x1 movs r2, 0 bl sub_80C1DFC movs r0, 0xA movs r1, 0x1 movs r2, 0 bl sub_80C1DFC movs r0, 0x5 movs r1, 0x1 movs r2, 0 bl sub_80C1DFC movs r0, 0x6 movs r1, 0x1 movs r2, 0 b _080C1FAA _080C1F5E: movs r0, 0 movs r1, 0x1 movs r2, 0 bl sub_80C1DFC movs r0, 0x1 movs r1, 0 movs r2, 0 bl sub_80C1DFC movs r0, 0x2 movs r1, 0x1 movs r2, 0 bl sub_80C1DFC movs r0, 0x3 movs r1, 0x1 movs r2, 0x1 bl sub_80C1DFC movs r0, 0x4 movs r1, 0x1 movs r2, 0x1 bl sub_80C1DFC movs r0, 0xA movs r1, 0x1 movs r2, 0x1 bl sub_80C1DFC movs r0, 0x5 movs r1, 0x1 movs r2, 0x1 bl sub_80C1DFC movs r0, 0x6 movs r1, 0x1 movs r2, 0x1 _080C1FAA: bl sub_80C1DFC movs r0, 0x7 movs r1, 0x1 movs r2, 0 bl sub_80C1DFC movs r0, 0x8 movs r1, 0x1 movs r2, 0 bl sub_80C1DFC movs r0, 0x9 movs r1, 0x1 movs r2, 0 bl sub_80C1DFC b _080C203C _080C1FCE: movs r0, 0 movs r1, 0x1 movs r2, 0 bl sub_80C1DFC movs r0, 0x1 movs r1, 0x1 movs r2, 0 bl sub_80C1DFC movs r0, 0x2 movs r1, 0 movs r2, 0 bl sub_80C1DFC movs r0, 0x3 movs r1, 0x1 movs r2, 0x1 bl sub_80C1DFC movs r0, 0x4 movs r1, 0x1 movs r2, 0x1 bl sub_80C1DFC movs r0, 0xA movs r1, 0x1 movs r2, 0x1 bl sub_80C1DFC movs r0, 0x5 movs r1, 0x1 movs r2, 0x1 bl sub_80C1DFC movs r0, 0x6 movs r1, 0x1 movs r2, 0x1 bl sub_80C1DFC movs r0, 0x7 movs r1, 0x1 movs r2, 0x1 bl sub_80C1DFC movs r0, 0x8 movs r1, 0x1 movs r2, 0x1 bl sub_80C1DFC movs r0, 0x9 movs r1, 0x1 movs r2, 0x1 bl sub_80C1DFC _080C203C: pop {r0} bx r0 thumb_func_end sub_80C1EF4 thumb_func_start sub_80C2040 sub_80C2040: @ 80C2040 push {r4,lr} adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 adds r0, r4, 0 bl sub_80C1EF4 ldr r0, =gUnknown_0856ED30 lsls r4, 3 adds r4, r0 ldr r0, [r4] bl sub_80C2618 pop {r4} pop {r0} bx r0 .pool thumb_func_end sub_80C2040 thumb_func_start sub_80C2064 sub_80C2064: @ 80C2064 push {r4,lr} lsls r0, 24 lsrs r0, 24 lsls r1, 24 lsrs r4, r1, 24 bl sub_80C1EF4 cmp r4, 0x6 bhi _080C20DE lsls r0, r4, 2 ldr r1, =_080C2084 adds r0, r1 ldr r0, [r0] mov pc, r0 .pool .align 2, 0 _080C2084: .4byte _080C20A0 .4byte _080C20A4 .4byte _080C20A8 .4byte _080C20B6 .4byte _080C20C4 .4byte _080C20C8 .4byte _080C20D4 _080C20A0: movs r0, 0x3 b _080C20CA _080C20A4: movs r0, 0x4 b _080C20CA _080C20A8: movs r0, 0xA movs r1, 0 movs r2, 0 bl sub_80C1DFC movs r0, 0x5 b _080C20CA _080C20B6: movs r0, 0xA movs r1, 0 movs r2, 0 bl sub_80C1DFC movs r0, 0x6 b _080C20CA _080C20C4: movs r0, 0x7 b _080C20CA _080C20C8: movs r0, 0x8 _080C20CA: movs r1, 0 movs r2, 0 bl sub_80C1DFC b _080C20DE _080C20D4: movs r0, 0x9 movs r1, 0 movs r2, 0 bl sub_80C1DFC _080C20DE: ldr r0, =gUnknown_0856ED48 lsls r1, r4, 1 adds r1, r4 lsls r1, 2 adds r1, r0 ldr r0, [r1] bl sub_80C2618 pop {r4} pop {r0} bx r0 .pool thumb_func_end sub_80C2064 thumb_func_start sub_80C20F8 sub_80C20F8: @ 80C20F8 push {r4,r5,lr} adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 movs r0, 0x28 movs r1, 0x10 movs r2, 0x60 movs r3, 0x50 bl sub_80C12B0 ldr r1, =gTasks lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r5, r0, r1 ldrh r0, [r5, 0x16] ldrh r1, [r5, 0x14] adds r0, r1 lsls r0, 16 ldr r1, =gUnknown_0856EE5C lsrs r0, 13 adds r1, 0x4 adds r0, r1 ldr r0, [r0] movs r1, 0x2D movs r2, 0x11 bl sub_80C1270 ldrh r0, [r5, 0x1A] ldrh r1, [r5, 0x18] adds r0, r1 lsls r0, 16 ldr r1, =gUnknown_0856EEB4 lsrs r0, 13 adds r1, 0x4 adds r0, r1 ldr r0, [r0] movs r1, 0x2D movs r2, 0x21 bl sub_80C1270 ldrh r0, [r5, 0x1E] ldrh r1, [r5, 0x1C] adds r0, r1 lsls r0, 16 ldr r4, =gUnknown_0856EF14 lsrs r0, 13 adds r4, 0x4 adds r0, r4 ldr r0, [r0] movs r1, 0x2D movs r2, 0x31 bl sub_80C1270 ldrh r0, [r5, 0x22] ldrh r1, [r5, 0x20] adds r0, r1 lsls r0, 16 lsrs r0, 13 adds r0, r4 ldr r0, [r0] movs r1, 0x5D movs r2, 0x31 bl sub_80C1270 ldrh r0, [r5, 0x12] ldrh r1, [r5, 0x10] adds r0, r1 lsls r0, 16 ldr r1, =gUnknown_0856EE24 lsrs r0, 13 adds r1, 0x4 adds r0, r1 ldr r0, [r0] movs r1, 0x2D movs r2, 0x41 bl sub_80C1270 bl IsNationalPokedexEnabled cmp r0, 0 beq _080C21B6 ldrh r0, [r5, 0xE] ldrh r5, [r5, 0xC] adds r0, r5 lsls r0, 16 ldr r1, =gUnknown_0856EE0C lsrs r0, 13 adds r1, 0x4 adds r0, r1 ldr r0, [r0] movs r1, 0x2D movs r2, 0x51 bl sub_80C1270 _080C21B6: pop {r4,r5} pop {r0} bx r0 .pool thumb_func_end sub_80C20F8 thumb_func_start sub_80C21D4 sub_80C21D4: @ 80C21D4 push {r4-r6,lr} adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 movs r0, 0x3 bl GetBgTilemapBuffer adds r5, r0, 0 cmp r4, 0 bne _080C2268 ldr r1, =0x00000c0b adds r0, r1, 0 strh r0, [r5, 0x22] movs r1, 0x12 ldr r0, =0x0000080d adds r2, r0, 0 _080C21F4: lsls r0, r1, 1 adds r0, r5 strh r2, [r0] adds r0, r1, 0x1 lsls r0, 16 lsrs r1, r0, 16 cmp r1, 0x1E bls _080C21F4 movs r2, 0x1 ldr r1, =0x0000040a adds r6, r1, 0 movs r4, 0x2 _080C220C: lsls r0, r2, 6 adds r0, r5 strh r6, [r0, 0x22] movs r1, 0x12 adds r3, r2, 0x1 adds r2, r0, 0 _080C2218: lsls r0, r1, 1 adds r0, r2 strh r4, [r0] adds r0, r1, 0x1 lsls r0, 16 lsrs r1, r0, 16 cmp r1, 0x1E bls _080C2218 lsls r0, r3, 16 lsrs r2, r0, 16 cmp r2, 0xC bls _080C220C ldr r2, =0x00000362 adds r1, r5, r2 adds r2, 0xA9 adds r0, r2, 0 strh r0, [r1] movs r1, 0x12 movs r3, 0xD0 lsls r3, 2 movs r2, 0xD _080C2242: lsls r0, r1, 1 adds r0, r5 adds r0, r3 strh r2, [r0] adds r0, r1, 0x1 lsls r0, 16 lsrs r1, r0, 16 cmp r1, 0x1E bls _080C2242 b _080C228C .pool _080C2268: movs r2, 0 movs r4, 0x4F _080C226C: movs r1, 0x11 lsls r0, r2, 6 adds r3, r2, 0x1 adds r2, r0, r5 _080C2274: lsls r0, r1, 1 adds r0, r2 strh r4, [r0] adds r0, r1, 0x1 lsls r0, 16 lsrs r1, r0, 16 cmp r1, 0x1D bls _080C2274 lsls r0, r3, 16 lsrs r2, r0, 16 cmp r2, 0xD bls _080C226C _080C228C: pop {r4-r6} pop {r0} bx r0 thumb_func_end sub_80C21D4 thumb_func_start sub_80C2294 sub_80C2294: @ 80C2294 push {r4-r7,lr} mov r7, r8 push {r7} lsls r0, 24 lsrs r0, 24 ldr r4, =gUnknown_0856EFC8 ldr r3, =gTasks lsls r2, r0, 2 adds r2, r0 lsls r2, 3 adds r0, r2, r3 movs r5, 0xA ldrsh r1, [r0, r5] lsls r1, 3 adds r1, r4 ldr r6, [r1] adds r3, 0x8 adds r2, r3 ldrb r0, [r1, 0x4] lsls r0, 1 adds r0, r2 mov r8, r0 ldrb r0, [r1, 0x5] lsls r0, 1 adds r7, r2, r0 bl sub_80C267C movs r5, 0 ldrh r4, [r7] b _080C22F2 .pool _080C22D8: adds r0, r1, r6 ldr r1, [r0, 0x4] adds r0, r5, 0 bl sub_80C2668 adds r0, r5, 0x1 lsls r0, 16 lsrs r5, r0, 16 adds r0, r4, 0x1 lsls r0, 16 lsrs r4, r0, 16 cmp r5, 0x5 bhi _080C22FC _080C22F2: lsls r1, r4, 3 adds r0, r1, r6 ldr r0, [r0, 0x4] cmp r0, 0 bne _080C22D8 _080C22FC: mov r1, r8 ldrh r0, [r1] ldrh r1, [r7] adds r0, r1 lsls r0, 3 adds r0, r6 ldr r0, [r0] bl sub_80C2618 pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_80C2294 thumb_func_start sub_80C2318 sub_80C2318: @ 80C2318 push {lr} lsls r0, 24 lsrs r0, 24 lsls r1, 24 lsrs r3, r1, 24 lsls r1, r0, 2 adds r1, r0 lsls r1, 3 ldr r0, =gTasks + 0x8 adds r1, r0 ldr r2, =gUnknown_0856EFC8 lsls r0, r3, 3 adds r0, r2 ldrb r2, [r0, 0x4] lsls r2, 1 adds r2, r1, r2 ldrb r0, [r0, 0x5] lsls r0, 1 adds r1, r0 ldrh r0, [r1] ldrh r2, [r2] adds r0, r2 lsls r0, 16 lsrs r2, r0, 16 cmp r3, 0x5 bhi _080C237C lsls r0, r3, 2 ldr r1, =_080C2364 adds r0, r1 ldr r0, [r0] mov pc, r0 .pool .align 2, 0 _080C2364: .4byte _080C2390 .4byte _080C239A .4byte _080C23AA .4byte _080C23AA .4byte _080C2388 .4byte _080C2380 _080C237C: movs r0, 0 b _080C23B0 _080C2380: ldr r0, =gUnknown_0856EFAC b _080C23AC .pool _080C2388: ldr r0, =gUnknown_0856EFAE b _080C23AC .pool _080C2390: cmp r2, 0 beq _080C239E lsls r0, r2, 24 lsrs r0, 24 b _080C23B0 _080C239A: cmp r2, 0 bne _080C23A2 _080C239E: movs r0, 0xFF b _080C23B0 _080C23A2: subs r0, r2, 0x1 lsls r0, 24 lsrs r0, 24 b _080C23B0 _080C23AA: ldr r0, =gUnknown_0856EFB4 _080C23AC: adds r0, r2, r0 ldrb r0, [r0] _080C23B0: pop {r1} bx r1 .pool thumb_func_end sub_80C2318 thumb_func_start sub_80C23B8 sub_80C23B8: @ 80C23B8 push {r4,r5,lr} lsls r0, 24 lsrs r4, r0, 24 ldr r1, =gUnknown_02039B4C ldr r0, [r1] ldr r2, =0x00000614 adds r0, r2 ldrh r0, [r0] adds r5, r1, 0 cmp r0, 0 beq _080C23D2 cmp r0, 0x1 beq _080C23E0 _080C23D2: movs r3, 0 b _080C23E2 .pool _080C23E0: movs r3, 0x1 _080C23E2: ldr r1, =gTasks lsls r2, r4, 2 adds r0, r2, r4 lsls r0, 3 adds r0, r1 strh r3, [r0, 0xC] ldr r0, [r5] movs r3, 0xC3 lsls r3, 3 adds r0, r3 ldrh r0, [r0] adds r5, r1, 0 cmp r0, 0x5 bhi _080C2428 lsls r0, 2 ldr r1, =_080C2410 adds r0, r1 ldr r0, [r0] mov pc, r0 .pool .align 2, 0 _080C2410: .4byte _080C2428 .4byte _080C242C .4byte _080C2430 .4byte _080C2434 .4byte _080C2438 .4byte _080C243C _080C2428: movs r3, 0 b _080C243E _080C242C: movs r3, 0x1 b _080C243E _080C2430: movs r3, 0x2 b _080C243E _080C2434: movs r3, 0x3 b _080C243E _080C2438: movs r3, 0x4 b _080C243E _080C243C: movs r3, 0x5 _080C243E: adds r0, r2, r4 lsls r0, 3 adds r0, r5 strh r3, [r0, 0x10] pop {r4,r5} pop {r0} bx r0 thumb_func_end sub_80C23B8 thumb_func_start sub_80C244C sub_80C244C: @ 80C244C push {lr} lsls r0, 24 lsrs r0, 24 ldr r3, =gTasks lsls r1, r0, 2 adds r1, r0 lsls r1, 3 adds r0, r1, r3 ldrb r2, [r0, 0xA] adds r3, 0x8 adds r1, r3 ldr r0, =gUnknown_0856EFC8 lsls r2, 3 adds r2, r0 ldrb r0, [r2, 0x5] lsls r0, 1 adds r1, r0 ldrh r0, [r2, 0x6] subs r0, 0x1 lsls r0, 16 lsrs r0, 16 cmp r0, 0x5 bls _080C248C ldrh r0, [r1] cmp r0, 0 beq _080C248C movs r0, 0 b _080C248E .pool _080C248C: movs r0, 0x1 _080C248E: pop {r1} bx r1 thumb_func_end sub_80C244C thumb_func_start sub_80C2494 sub_80C2494: @ 80C2494 push {lr} lsls r0, 24 lsrs r0, 24 ldr r3, =gTasks lsls r1, r0, 2 adds r1, r0 lsls r1, 3 adds r0, r1, r3 ldrb r2, [r0, 0xA] adds r3, 0x8 adds r1, r3 ldr r0, =gUnknown_0856EFC8 lsls r2, 3 adds r2, r0 ldrb r0, [r2, 0x5] lsls r0, 1 adds r1, r0 ldrh r0, [r2, 0x6] subs r0, 0x1 lsls r0, 16 lsrs r0, 16 cmp r0, 0x5 bls _080C24D8 ldrh r1, [r1] subs r0, 0x5 cmp r1, r0 bge _080C24D8 movs r0, 0 b _080C24DA .pool _080C24D8: movs r0, 0x1 _080C24DA: pop {r1} bx r1 thumb_func_end sub_80C2494 thumb_func_start sub_80C24E0 sub_80C24E0: @ 80C24E0 push {r4,lr} adds r4, r0, 0 ldr r2, =gTasks movs r0, 0x2E ldrsh r1, [r4, r0] lsls r0, r1, 2 adds r0, r1 lsls r0, 3 adds r0, r2 ldr r1, [r0] ldr r0, =sub_80C1BCC cmp r1, r0 bne _080C2580 movs r1, 0x30 ldrsh r0, [r4, r1] cmp r0, 0 beq _080C2528 ldrh r0, [r4, 0x2E] lsls r0, 24 lsrs r0, 24 bl sub_80C2494 lsls r0, 24 cmp r0, 0 beq _080C2544 adds r2, r4, 0 adds r2, 0x3E ldrb r0, [r2] movs r1, 0x4 orrs r0, r1 b _080C2550 .pool _080C2528: ldrh r0, [r4, 0x2E] lsls r0, 24 lsrs r0, 24 bl sub_80C244C lsls r0, 24 cmp r0, 0 beq _080C2544 adds r2, r4, 0 adds r2, 0x3E ldrb r0, [r2] movs r1, 0x4 orrs r0, r1 b _080C2550 _080C2544: adds r2, r4, 0 adds r2, 0x3E ldrb r1, [r2] movs r0, 0x5 negs r0, r0 ands r0, r1 _080C2550: strb r0, [r2] ldrh r2, [r4, 0x32] movs r1, 0x30 ldrsh r0, [r4, r1] lsls r0, 7 adds r0, r2, r0 lsls r0, 24 ldr r1, =gSineTable lsrs r0, 23 adds r0, r1 movs r1, 0 ldrsh r0, [r0, r1] cmp r0, 0 bge _080C256E adds r0, 0x7F _080C256E: asrs r0, 7 strh r0, [r4, 0x26] adds r0, r2, 0 adds r0, 0x8 strh r0, [r4, 0x32] b _080C258C .pool _080C2580: adds r0, r4, 0 adds r0, 0x3E ldrb r1, [r0] movs r2, 0x4 orrs r1, r2 strb r1, [r0] _080C258C: pop {r4} pop {r0} bx r0 thumb_func_end sub_80C24E0 thumb_func_start sub_80C2594 sub_80C2594: @ 80C2594 push {r4-r6,lr} mov r6, r9 mov r5, r8 push {r5,r6} adds r5, r0, 0 lsls r5, 24 lsrs r5, 24 ldr r6, =gUnknown_0855D1AC adds r0, r6, 0 movs r1, 0xB8 movs r2, 0x4 movs r3, 0 bl CreateSprite lsls r0, 24 lsrs r0, 24 ldr r4, =gSprites lsls r1, r0, 4 adds r1, r0 lsls r1, 2 adds r0, r1, r4 movs r2, 0 strh r5, [r0, 0x2E] strh r2, [r0, 0x30] movs r0, 0x1C adds r0, r4 mov r9, r0 add r1, r9 ldr r0, =sub_80C24E0 mov r8, r0 str r0, [r1] adds r0, r6, 0 movs r1, 0xB8 movs r2, 0x6C movs r3, 0 bl CreateSprite lsls r0, 24 lsrs r0, 24 lsls r1, r0, 4 adds r1, r0 lsls r1, 2 adds r4, r1, r4 strh r5, [r4, 0x2E] movs r0, 0x1 strh r0, [r4, 0x30] adds r4, 0x3F ldrb r0, [r4] movs r2, 0x2 orrs r0, r2 strb r0, [r4] add r1, r9 mov r0, r8 str r0, [r1] pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r6} pop {r0} bx r0 .pool thumb_func_end sub_80C2594 thumb_func_start sub_80C2618 sub_80C2618: @ 80C2618 push {r4,lr} adds r4, r0, 0 movs r0, 0x8 movs r1, 0x78 movs r2, 0xE0 movs r3, 0x20 bl sub_80C12B0 adds r0, r4, 0 movs r1, 0x8 movs r2, 0x79 bl sub_80C1270 pop {r4} pop {r0} bx r0 thumb_func_end sub_80C2618 thumb_func_start sub_80C2638 sub_80C2638: @ 80C2638 push {lr} adds r1, r0, 0 lsls r1, 4 adds r1, 0x8 movs r0, 0x90 movs r2, 0x8 movs r3, 0x10 bl sub_80C12B0 pop {r0} bx r0 thumb_func_end sub_80C2638 thumb_func_start sub_80C2650 sub_80C2650: @ 80C2650 push {lr} adds r2, r0, 0 ldr r0, =gText_SelectorArrow lsls r2, 4 adds r2, 0x9 movs r1, 0x90 bl sub_80C1270 pop {r0} bx r0 .pool thumb_func_end sub_80C2650 thumb_func_start sub_80C2668 sub_80C2668: @ 80C2668 push {lr} adds r2, r0, 0 adds r0, r1, 0 lsls r2, 4 adds r2, 0x9 movs r1, 0x98 bl sub_80C1270 pop {r0} bx r0 thumb_func_end sub_80C2668 thumb_func_start sub_80C267C sub_80C267C: @ 80C267C push {lr} movs r0, 0x90 movs r1, 0x8 movs r2, 0x60 movs r3, 0x60 bl sub_80C12B0 pop {r0} bx r0 thumb_func_end sub_80C267C .align 2, 0 @ Don't pad with nop.