pokeemerald/asm/pokedex.s
2018-01-20 17:17:51 -06:00

13373 lines
198 KiB
ArmAsm

.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 remove_some_task
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 sub_80C0844
ldr r1, [r4]
ldr r2, =0x0000061a
adds r1, r2
strh r0, [r1]
movs r0, 0x1
bl sub_80C0844
b _080BB6E4
.pool
_080BB6D0:
movs r0, 0
bl pokedex_count
ldr r1, [r4]
ldr r2, =0x0000061a
adds r1, r2
strh r0, [r1]
movs r0, 0x1
bl pokedex_count
_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, =sub_8086194
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 AddTextPrinterParametrized2
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 sub_80C0844
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 sub_80C0844
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 AddTextPrinterParametrized2
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 pokedex_count
pokedex_count: @ 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 pokedex_count
thumb_func_start sub_80C0844
sub_80C0844: @ 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 sub_80C0844
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 AddTextPrinterParametrized2
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 AddTextPrinterParametrized2
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.