pokefirered/asm/pokedex_screen.s
2020-02-06 10:44:22 -05:00

3121 lines
50 KiB
ArmAsm

.include "asm/macros.inc"
.include "constants/constants.inc"
.syntax unified
.text
thumb_func_start sub_8105594
sub_8105594: @ 8105594
push {r4-r7,lr}
mov r7, r10
mov r6, r9
mov r5, r8
push {r5-r7}
sub sp, 0x24
lsls r0, 24
lsrs r7, r0, 24
lsls r1, 24
lsrs r4, r1, 24
ldr r0, _081055C0 @ =gUnknown_203ACF0
ldr r3, [r0]
adds r2, r3, 0
adds r2, 0x2C
ldrb r0, [r2]
cmp r0, 0
bne _081055C8
ldr r0, _081055C4 @ =gUnknown_8452334
ldr r0, [r0]
ldrb r3, [r0, 0x2]
ldrb r1, [r0, 0x3]
b _081055E2
.align 2, 0
_081055C0: .4byte gUnknown_203ACF0
_081055C4: .4byte gUnknown_8452334
_081055C8:
ldr r1, _08105634 @ =gUnknown_8452334
ldrb r0, [r2]
subs r0, 0x1
lsls r0, 2
adds r0, r1
adds r1, r3, 0
adds r1, 0x2D
ldrb r1, [r1]
ldr r0, [r0]
lsls r1, 2
adds r1, r0
ldrb r3, [r1, 0x2]
ldrb r1, [r1, 0x3]
_081055E2:
lsls r0, r4, 26
movs r2, 0xC0
lsls r2, 19
adds r0, r2
lsrs r0, 24
str r0, [sp, 0x8]
lsls r2, r4, 1
adds r0, r2, 0x3
lsls r0, 24
lsrs r0, 24
str r0, [sp, 0xC]
ldr r0, [sp, 0x8]
cmp r0, 0x1B
bls _08105602
movs r0, 0x1C
str r0, [sp, 0x8]
_08105602:
ldr r0, [sp, 0xC]
cmp r0, 0xD
bls _0810560C
movs r0, 0xE
str r0, [sp, 0xC]
_0810560C:
subs r0, r3, r2
lsls r0, 16
subs r1, r4
lsls r1, 16
lsrs r1, 16
str r1, [sp, 0x10]
lsrs r6, r0, 16
asrs r1, r0, 16
ldr r2, [sp, 0x8]
adds r0, r1, r2
adds r0, 0x2
cmp r0, 0x1D
ble _08105638
adds r0, r1, 0
adds r0, 0x1C
adds r1, r6, r2
subs r0, r1
lsls r0, 16
lsrs r6, r0, 16
b _0810563E
.align 2, 0
_08105634: .4byte gUnknown_8452334
_08105638:
cmp r1, 0
bge _0810563E
movs r6, 0
_0810563E:
ldr r3, [sp, 0x10]
lsls r0, r3, 16
asrs r1, r0, 16
ldr r2, [sp, 0xC]
adds r0, r1, r2
adds r0, 0x2
cmp r0, 0x11
ble _0810565E
adds r0, r1, 0
adds r0, 0x10
adds r1, r3, r2
subs r0, r1
lsls r0, 16
lsrs r0, 16
str r0, [sp, 0x10]
b _08105666
_0810565E:
cmp r1, 0x1
bgt _08105666
movs r3, 0x2
str r3, [sp, 0x10]
_08105666:
ldr r1, [sp, 0xC]
lsrs r0, r1, 1
adds r0, 0x2
ldr r2, [sp, 0x10]
lsls r2, 16
asrs r2, 16
mov r10, r2
add r10, r0
mov r3, r10
lsls r3, 16
lsrs r3, 16
mov r10, r3
lsls r2, r6, 24
lsrs r2, 24
str r2, [sp, 0x14]
ldr r0, [sp, 0x10]
lsls r4, r0, 24
lsrs r4, 24
movs r5, 0x1
str r5, [sp]
str r5, [sp, 0x4]
adds r0, r7, 0
movs r1, 0x4
adds r3, r4, 0
bl FillBgTilemapBufferRect_Palette0
adds r6, 0x1
lsls r2, r6, 24
lsrs r2, 24
str r2, [sp, 0x18]
ldr r1, [sp, 0x8]
str r1, [sp]
str r5, [sp, 0x4]
adds r0, r7, 0
movs r1, 0x5
adds r3, r4, 0
bl FillBgTilemapBufferRect_Palette0
ldr r1, _081057EC @ =0x00000404
ldr r2, [sp, 0x8]
lsls r2, 24
asrs r2, 24
mov r8, r2
add r8, r6
mov r3, r8
lsls r3, 24
lsrs r3, 24
mov r8, r3
str r5, [sp]
str r5, [sp, 0x4]
adds r0, r7, 0
mov r2, r8
adds r3, r4, 0
bl FillBgTilemapBufferRect_Palette0
ldr r6, [sp, 0x10]
adds r6, 0x1
ldr r0, [sp, 0xC]
lsls r4, r0, 24
asrs r4, 24
adds r4, r6
lsls r4, 24
lsrs r4, 24
str r5, [sp]
str r5, [sp, 0x4]
adds r0, r7, 0
movs r1, 0xA
ldr r2, [sp, 0x14]
adds r3, r4, 0
bl FillBgTilemapBufferRect_Palette0
ldr r1, [sp, 0x8]
str r1, [sp]
str r5, [sp, 0x4]
adds r0, r7, 0
movs r1, 0xB
ldr r2, [sp, 0x18]
adds r3, r4, 0
bl FillBgTilemapBufferRect_Palette0
ldr r1, _081057F0 @ =0x0000040a
str r5, [sp]
str r5, [sp, 0x4]
adds r0, r7, 0
mov r2, r8
adds r3, r4, 0
bl FillBgTilemapBufferRect_Palette0
lsls r3, r6, 24
lsrs r3, 24
str r3, [sp, 0x1C]
str r5, [sp]
mov r2, r10
ldr r3, [sp, 0x10]
subs r6, r2, r3
subs r6, 0x1
lsls r6, 24
lsrs r6, 24
str r6, [sp, 0x4]
adds r0, r7, 0
movs r1, 0x6
ldr r2, [sp, 0x14]
ldr r3, [sp, 0x1C]
bl FillBgTilemapBufferRect_Palette0
mov r0, r10
lsls r3, r0, 24
lsrs r3, 24
str r3, [sp, 0x20]
str r5, [sp]
str r5, [sp, 0x4]
adds r0, r7, 0
movs r1, 0x7
ldr r2, [sp, 0x14]
bl FillBgTilemapBufferRect_Palette0
movs r1, 0x1
add r1, r10
lsls r1, 24
lsrs r1, 24
mov r9, r1
str r5, [sp]
ldr r2, [sp, 0xC]
ldr r3, [sp, 0x10]
adds r4, r2, r3
mov r0, r10
subs r4, r0
lsls r4, 24
lsrs r4, 24
str r4, [sp, 0x4]
adds r0, r7, 0
movs r1, 0x9
ldr r2, [sp, 0x14]
mov r3, r9
bl FillBgTilemapBufferRect_Palette0
ldr r1, _081057F4 @ =0x00000406
str r5, [sp]
str r6, [sp, 0x4]
adds r0, r7, 0
mov r2, r8
ldr r3, [sp, 0x1C]
bl FillBgTilemapBufferRect_Palette0
ldr r1, _081057F8 @ =0x00000407
str r5, [sp]
str r5, [sp, 0x4]
adds r0, r7, 0
mov r2, r8
ldr r3, [sp, 0x20]
bl FillBgTilemapBufferRect_Palette0
ldr r1, _081057FC @ =0x00000409
str r5, [sp]
str r4, [sp, 0x4]
adds r0, r7, 0
mov r2, r8
mov r3, r9
bl FillBgTilemapBufferRect_Palette0
ldr r1, [sp, 0x8]
str r1, [sp]
str r6, [sp, 0x4]
adds r0, r7, 0
movs r1, 0x1
ldr r2, [sp, 0x18]
ldr r3, [sp, 0x1C]
bl FillBgTilemapBufferRect_Palette0
ldr r2, [sp, 0x8]
str r2, [sp]
str r5, [sp, 0x4]
adds r0, r7, 0
movs r1, 0x8
ldr r2, [sp, 0x18]
ldr r3, [sp, 0x20]
bl FillBgTilemapBufferRect_Palette0
ldr r3, [sp, 0x8]
str r3, [sp]
str r4, [sp, 0x4]
adds r0, r7, 0
movs r1, 0x2
ldr r2, [sp, 0x18]
mov r3, r9
bl FillBgTilemapBufferRect_Palette0
add sp, 0x24
pop {r3-r5}
mov r8, r3
mov r9, r4
mov r10, r5
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
_081057EC: .4byte 0x00000404
_081057F0: .4byte 0x0000040a
_081057F4: .4byte 0x00000406
_081057F8: .4byte 0x00000407
_081057FC: .4byte 0x00000409
thumb_func_end sub_8105594
thumb_func_start sub_8105800
sub_8105800: @ 8105800
push {r4-r7,lr}
mov r7, r8
push {r7}
sub sp, 0x14
lsls r0, 24
lsrs r0, 24
mov r8, r0
lsls r1, 16
lsrs r1, 16
lsls r2, 24
lsrs r6, r2, 24
lsls r3, 24
lsrs r7, r3, 24
adds r0, r1, 0
bl SpeciesToNationalPokedexNum
lsls r1, r0, 3
adds r1, r0
lsls r1, 2
ldr r2, _08105860 @ =gPokedexEntries
adds r5, r1, r2
movs r4, 0
movs r1, 0x1
movs r2, 0
bl sub_8104AB0
lsls r0, 24
cmp r0, 0
beq _08105864
ldrb r0, [r5]
.if REVISION == 0
cmp r0, 0
.else
cmp r0, 0xFF
.endif
beq _08105878
_08105840:
mov r1, sp
adds r1, r4
adds r1, 0x8
adds r0, r5, r4
ldrb r0, [r0]
strb r0, [r1]
adds r0, r4, 0x1
lsls r0, 24
lsrs r4, r0, 24
adds r0, r5, r4
ldrb r0, [r0]
.if REVISION == 0
cmp r0, 0
.else
cmp r0, 0xFF
.endif
beq _08105878
cmp r4, 0xA
bls _08105840
b _08105878
.align 2, 0
_08105860: .4byte gPokedexEntries
_08105864:
movs r1, 0xAC
_08105866:
mov r0, sp
adds r0, r4
adds r0, 0x8
strb r1, [r0]
adds r0, r4, 0x1
lsls r0, 24
lsrs r4, r0, 24
cmp r4, 0xA
bls _08105866
_08105878:
mov r1, sp
adds r1, r4
adds r1, 0x8
movs r0, 0xFF
strb r0, [r1]
str r7, [sp]
movs r4, 0
str r4, [sp, 0x4]
mov r0, r8
movs r1, 0
add r2, sp, 0x8
adds r3, r6, 0
bl sub_81047C8
movs r0, 0
add r1, sp, 0x8
movs r2, 0
bl GetStringWidth
adds r0, r6, r0
lsls r0, 24
lsrs r6, r0, 24
ldr r2, _081058C0 @ =gUnknown_8415F8F
str r7, [sp]
str r4, [sp, 0x4]
mov r0, r8
movs r1, 0
adds r3, r6, 0
bl sub_81047C8
add sp, 0x14
pop {r3}
mov r8, r3
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
_081058C0: .4byte gUnknown_8415F8F
thumb_func_end sub_8105800
thumb_func_start sub_81058C4
sub_81058C4: @ 81058C4
push {r4-r7,lr}
mov r7, r10
mov r6, r9
mov r5, r8
push {r5-r7}
sub sp, 0x28
lsls r0, 24
lsrs r0, 24
mov r9, r0
lsls r1, 16
lsrs r1, 16
lsls r2, 24
lsrs r7, r2, 24
lsls r3, 24
lsrs r3, 24
mov r8, r3
adds r0, r1, 0
bl SpeciesToNationalPokedexNum
ldr r2, _08105974 @ =gPokedexEntries
lsls r1, r0, 3
adds r1, r0
lsls r1, 2
adds r1, r2
ldrh r4, [r1, 0xC]
ldr r1, _08105978 @ =gUnknown_8415F98
mov r10, r1
movs r3, 0
add r2, sp, 0x8
movs r1, 0xFC
strb r1, [r2]
adds r2, 0x1
movs r1, 0x14
strb r1, [r2]
adds r2, 0x1
movs r1, 0x5
strb r1, [r2]
mov r1, sp
adds r1, 0xB
strb r3, [r1]
movs r1, 0x1
movs r2, 0
bl sub_8104AB0
lsls r0, 24
cmp r0, 0
beq _081059CE
ldr r0, _0810597C @ =0x00002710
muls r0, r4
movs r1, 0xFE
bl __divsi3
adds r5, r0, 0
movs r1, 0xA
bl __umodsi3
cmp r0, 0x4
bls _0810593A
adds r5, 0xA
_0810593A:
adds r0, r5, 0
movs r1, 0x78
bl __udivsi3
adds r6, r0, 0
lsls r0, r6, 4
subs r0, r6
lsls r0, 3
subs r0, r5, r0
movs r1, 0xA
bl __udivsi3
adds r5, r0, 0
adds r0, r6, 0
movs r1, 0xA
bl __udivsi3
adds r2, r0, 0
cmp r2, 0
bne _08105980
add r0, sp, 0xC
strb r2, [r0]
mov r1, sp
adds r1, 0xD
adds r0, r6, 0
adds r0, 0xA1
strb r0, [r1]
b _08105998
.align 2, 0
_08105974: .4byte gPokedexEntries
_08105978: .4byte gUnknown_8415F98
_0810597C: .4byte 0x00002710
_08105980:
add r1, sp, 0xC
adds r0, r2, 0
adds r0, 0xA1
strb r0, [r1]
mov r4, sp
adds r4, 0xD
adds r0, r6, 0
movs r1, 0xA
bl __umodsi3
adds r0, 0xA1
strb r0, [r4]
_08105998:
mov r1, sp
adds r1, 0xE
movs r0, 0xB4
strb r0, [r1]
mov r4, sp
adds r4, 0xF
adds r0, r5, 0
movs r1, 0xA
bl __udivsi3
adds r0, 0xA1
strb r0, [r4]
add r4, sp, 0x10
adds r0, r5, 0
movs r1, 0xA
bl __umodsi3
adds r0, 0xA1
strb r0, [r4]
mov r1, sp
adds r1, 0x11
movs r0, 0xB2
strb r0, [r1]
movs r2, 0xB
adds r1, 0x1
movs r0, 0xFF
b _081059F2
_081059CE:
add r0, sp, 0xC
movs r1, 0xAC
strb r1, [r0]
adds r0, 0x1
strb r1, [r0]
mov r2, sp
adds r2, 0xE
movs r0, 0xB4
strb r0, [r2]
mov r0, sp
adds r0, 0xF
strb r1, [r0]
add r0, sp, 0x10
strb r1, [r0]
movs r2, 0xA
mov r1, sp
adds r1, 0x11
movs r0, 0xB2
_081059F2:
strb r0, [r1]
mov r1, sp
adds r1, r2
adds r1, 0x8
movs r0, 0xFF
strb r0, [r1]
mov r0, r8
str r0, [sp]
movs r4, 0
str r4, [sp, 0x4]
mov r0, r9
movs r1, 0
mov r2, r10
adds r3, r7, 0
bl sub_81047C8
adds r0, r7, 0
adds r0, 0x1E
lsls r0, 24
lsrs r7, r0, 24
mov r1, r8
str r1, [sp]
str r4, [sp, 0x4]
mov r0, r9
movs r1, 0
add r2, sp, 0x8
adds r3, r7, 0
bl sub_81047C8
add sp, 0x28
pop {r3-r5}
mov r8, r3
mov r9, r4
mov r10, r5
pop {r4-r7}
pop {r0}
bx r0
thumb_func_end sub_81058C4
thumb_func_start sub_8105A3C
sub_8105A3C: @ 8105A3C
push {r4-r7,lr}
mov r7, r10
mov r6, r9
mov r5, r8
push {r5-r7}
sub sp, 0x28
lsls r0, 24
lsrs r0, 24
mov r10, r0
lsls r1, 16
lsrs r1, 16
lsls r2, 24
lsrs r2, 24
mov r8, r2
lsls r3, 24
lsrs r3, 24
mov r9, r3
adds r0, r1, 0
bl SpeciesToNationalPokedexNum
ldr r2, _08105ACC @ =gPokedexEntries
lsls r1, r0, 3
adds r1, r0
lsls r1, 2
adds r1, r2
ldrh r4, [r1, 0xE]
add r2, sp, 0x8
movs r1, 0xFC
strb r1, [r2]
adds r2, 0x1
movs r1, 0x14
strb r1, [r2]
adds r2, 0x1
movs r1, 0x5
strb r1, [r2]
movs r1, 0x1
movs r2, 0
bl sub_8104AB0
lsls r0, 24
cmp r0, 0
bne _08105A92
b _08105BC4
_08105A92:
ldr r7, _08105AD0 @ =0x000186a0
adds r0, r4, 0
muls r0, r7
ldr r1, _08105AD4 @ =0x000011b8
bl __divsi3
adds r6, r0, 0
movs r1, 0xA
bl __umodsi3
cmp r0, 0x4
bls _08105AAC
adds r6, 0xA
_08105AAC:
movs r5, 0
mov r4, sp
adds r4, 0xB
adds r0, r6, 0
adds r1, r7, 0
bl __udivsi3
adds r0, 0xA1
strb r0, [r4]
lsls r0, 24
lsrs r0, 24
cmp r0, 0xA1
bne _08105AD8
movs r7, 0x4
strb r5, [r4]
b _08105ADC
.align 2, 0
_08105ACC: .4byte gPokedexEntries
_08105AD0: .4byte 0x000186a0
_08105AD4: .4byte 0x000011b8
_08105AD8:
movs r5, 0x1
movs r7, 0x4
_08105ADC:
ldr r1, _08105B14 @ =0x000186a0
adds r0, r6, 0
bl __umodsi3
adds r6, r0, 0
mov r4, sp
adds r4, r7
adds r4, 0x8
ldr r1, _08105B18 @ =0x00002710
bl __udivsi3
adds r0, 0xA1
strb r0, [r4]
lsls r0, 24
lsrs r0, 24
cmp r0, 0xA1
bne _08105B1C
cmp r5, 0
bne _08105B1C
adds r0, r7, 0
adds r1, r0, 0x1
lsls r1, 24
lsrs r7, r1, 24
add r0, sp
adds r0, 0x8
strb r5, [r0]
b _08105B24
.align 2, 0
_08105B14: .4byte 0x000186a0
_08105B18: .4byte 0x00002710
_08105B1C:
movs r5, 0x1
adds r0, r7, 0x1
lsls r0, 24
lsrs r7, r0, 24
_08105B24:
ldr r1, _08105B5C @ =0x00002710
adds r0, r6, 0
bl __umodsi3
adds r6, r0, 0
mov r4, sp
adds r4, r7
adds r4, 0x8
movs r1, 0xFA
lsls r1, 2
bl __udivsi3
adds r0, 0xA1
strb r0, [r4]
lsls r0, 24
lsrs r0, 24
cmp r0, 0xA1
bne _08105B60
cmp r5, 0
bne _08105B60
adds r0, r7, 0
adds r1, r0, 0x1
lsls r1, 24
lsrs r7, r1, 24
add r0, sp
adds r0, 0x8
strb r5, [r0]
b _08105B66
.align 2, 0
_08105B5C: .4byte 0x00002710
_08105B60:
adds r0, r7, 0x1
lsls r0, 24
lsrs r7, r0, 24
_08105B66:
movs r1, 0xFA
lsls r1, 2
adds r0, r6, 0
bl __umodsi3
adds r6, r0, 0
adds r1, r7, 0
adds r0, r1, 0x1
lsls r0, 24
lsrs r7, r0, 24
adds r5, r7, 0
mov r4, sp
adds r4, r1
adds r4, 0x8
adds r0, r6, 0
movs r1, 0x64
bl __udivsi3
adds r0, 0xA1
strb r0, [r4]
adds r0, r6, 0
movs r1, 0x64
bl __umodsi3
adds r6, r0, 0
adds r0, r5, 0x1
lsls r0, 24
lsrs r7, r0, 24
adds r2, r7, 0
mov r1, sp
adds r1, r5
adds r1, 0x8
movs r0, 0xAD
strb r0, [r1]
adds r0, r2, 0x1
lsls r0, 24
lsrs r7, r0, 24
mov r4, sp
adds r4, r2
adds r4, 0x8
adds r0, r6, 0
movs r1, 0xA
bl __udivsi3
adds r0, 0xA1
strb r0, [r4]
b _08105BE6
_08105BC4:
mov r0, sp
adds r0, 0xB
movs r2, 0xAC
strb r2, [r0]
add r0, sp, 0xC
strb r2, [r0]
adds r0, 0x1
strb r2, [r0]
adds r0, 0x1
strb r2, [r0]
mov r1, sp
adds r1, 0xF
movs r0, 0xAD
strb r0, [r1]
movs r7, 0x9
add r0, sp, 0x10
strb r2, [r0]
_08105BE6:
adds r1, r7, 0
adds r0, r1, 0x1
lsls r0, 24
lsrs r7, r0, 24
adds r2, r7, 0
mov r0, sp
adds r0, r1
adds r0, 0x8
movs r4, 0
strb r4, [r0]
adds r0, r2, 0x1
lsls r0, 24
lsrs r7, r0, 24
adds r3, r7, 0
mov r1, sp
adds r1, r2
adds r1, 0x8
movs r0, 0xFC
strb r0, [r1]
adds r0, r3, 0x1
lsls r0, 24
lsrs r7, r0, 24
adds r2, r7, 0
mov r1, sp
adds r1, r3
adds r1, 0x8
movs r0, 0x14
strb r0, [r1]
adds r0, r2, 0x1
lsls r0, 24
lsrs r7, r0, 24
mov r0, sp
adds r0, r2
adds r0, 0x8
strb r4, [r0]
movs r2, 0
movs r0, 0x21
subs r1, r0, r7
mov r5, r8
adds r5, 0x1E
cmp r2, r1
bcs _08105C60
ldr r3, _08105CA8 @ =gUnknown_8415FA0
ldrb r0, [r3]
cmp r0, 0xFF
beq _08105C60
adds r3, r1, 0
ldr r4, _08105CA8 @ =gUnknown_8415FA0
adds r1, r7, 0
add r1, sp
adds r1, 0x8
_08105C4C:
ldrb r0, [r4]
strb r0, [r1]
adds r4, 0x1
adds r1, 0x1
adds r2, 0x1
cmp r2, r3
bcs _08105C60
ldrb r0, [r4]
cmp r0, 0xFF
bne _08105C4C
_08105C60:
adds r0, r7, r2
mov r1, sp
adds r1, r0
adds r1, 0x8
movs r0, 0xFF
strb r0, [r1]
mov r0, r9
str r0, [sp]
movs r4, 0
str r4, [sp, 0x4]
mov r0, r10
movs r1, 0
ldr r2, _08105CAC @ =gUnknown_8415F9B
mov r3, r8
bl sub_81047C8
lsls r0, r5, 24
lsrs r0, 24
mov r8, r0
mov r1, r9
str r1, [sp]
str r4, [sp, 0x4]
mov r0, r10
movs r1, 0
add r2, sp, 0x8
mov r3, r8
bl sub_81047C8
add sp, 0x28
pop {r3-r5}
mov r8, r3
mov r9, r4
mov r10, r5
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
_08105CA8: .4byte gUnknown_8415FA0
_08105CAC: .4byte gUnknown_8415F9B
thumb_func_end sub_8105A3C
thumb_func_start sub_8105CB0
sub_8105CB0: @ 8105CB0
push {r4-r7,lr}
sub sp, 0x10
lsls r0, 24
lsrs r6, r0, 24
lsls r1, 16
lsrs r1, 16
lsls r2, 24
lsrs r5, r2, 24
lsls r3, 24
lsrs r7, r3, 24
adds r0, r1, 0
bl SpeciesToNationalPokedexNum
adds r4, r0, 0
adds r0, r4, 0
movs r1, 0x1
movs r2, 0
bl sub_8104AB0
lsls r0, 24
cmp r0, 0
beq _08105D5C
ldr r1, _08105D44 @ =gPokedexEntries
lsls r0, r4, 3
adds r0, r4
lsls r0, 2
adds r1, 0x10
adds r0, r1
ldr r1, [r0]
str r1, [sp]
mov r0, sp
movs r3, 0
strb r6, [r0, 0x4]
mov r2, sp
movs r0, 0x2
strb r0, [r2, 0x5]
movs r0, 0x1
strb r0, [r2, 0xA]
mov r0, sp
strb r3, [r0, 0xB]
mov r4, sp
ldrb r3, [r4, 0xC]
movs r2, 0x10
negs r2, r2
adds r0, r2, 0
ands r0, r3
strb r0, [r4, 0xC]
mov r3, sp
movs r0, 0x10
strb r0, [r3, 0xC]
ldrb r0, [r3, 0xD]
ands r2, r0
strb r2, [r3, 0xD]
mov r2, sp
movs r0, 0x20
strb r0, [r2, 0xD]
movs r0, 0x2
movs r2, 0
bl GetStringWidth
lsls r0, 16
lsrs r0, 16
movs r1, 0xF0
subs r1, r0
lsrs r0, r1, 31
adds r1, r0
asrs r1, 1
adds r0, r5, r1
cmp r0, 0
ble _08105D48
lsls r0, 24
lsrs r5, r0, 24
b _08105D4A
.align 2, 0
_08105D44: .4byte gPokedexEntries
_08105D48:
movs r5, 0
_08105D4A:
mov r0, sp
strb r5, [r0, 0x6]
strb r7, [r0, 0x7]
strb r5, [r0, 0x8]
strb r7, [r0, 0x9]
movs r1, 0xFF
movs r2, 0
bl AddTextPrinter
_08105D5C:
add sp, 0x10
pop {r4-r7}
pop {r0}
bx r0
thumb_func_end sub_8105CB0
thumb_func_start sub_8105D64
sub_8105D64: @ 8105D64
push {r4-r7,lr}
mov r7, r10
mov r6, r9
mov r5, r8
push {r5-r7}
sub sp, 0x18
lsls r0, 24
lsrs r0, 24
mov r10, r0
lsls r1, 16
lsrs r4, r1, 16
lsls r2, 24
lsrs r2, 24
mov r9, r2
lsls r3, 24
lsrs r3, 24
mov r8, r3
adds r0, r4, 0
movs r1, 0x1
movs r2, 0x1
bl sub_8104AB0
lsls r0, 24
cmp r0, 0
beq _08105E02
ldr r1, _08105E14 @ =gMonFootprintTable
lsls r0, r4, 2
adds r0, r1
ldr r0, [r0]
mov r12, r0
ldr r7, _08105E18 @ =gDecompressionBuffer
movs r5, 0
movs r1, 0
_08105DA6:
mov r2, r12
adds r0, r2, r1
ldrb r3, [r0]
movs r4, 0
adds r6, r1, 0x1
_08105DB0:
lsls r1, r4, 1
adds r2, r3, 0
asrs r2, r1
movs r0, 0x1
ands r2, r0
movs r0, 0x2
lsls r0, r1
ands r0, r3
cmp r0, 0
beq _08105DC8
movs r0, 0x10
orrs r2, r0
_08105DC8:
adds r0, r7, r5
strb r2, [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 _08105DB0
lsls r0, r6, 16
lsrs r1, r0, 16
cmp r1, 0x1F
bls _08105DA6
movs r0, 0x10
str r0, [sp]
str r0, [sp, 0x4]
mov r1, r9
str r1, [sp, 0x8]
mov r2, r8
str r2, [sp, 0xC]
str r0, [sp, 0x10]
str r0, [sp, 0x14]
mov r0, r10
adds r1, r7, 0
movs r2, 0
movs r3, 0
bl BlitBitmapRectToWindow
_08105E02:
add sp, 0x18
pop {r3-r5}
mov r8, r3
mov r9, r4
mov r10, r5
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
_08105E14: .4byte gMonFootprintTable
_08105E18: .4byte gDecompressionBuffer
thumb_func_end sub_8105D64
thumb_func_start sub_8105E1C
sub_8105E1C: @ 8105E1C
push {r4-r6,lr}
mov r6, r8
push {r6}
sub sp, 0x8
adds r6, r0, 0
lsls r6, 24
lsrs r6, 24
movs r0, 0x3
movs r1, 0x6
bl sub_8105594
movs r4, 0x1E
str r4, [sp]
movs r5, 0x14
str r5, [sp, 0x4]
movs r0, 0x2
movs r1, 0
movs r2, 0
movs r3, 0
bl FillBgTilemapBufferRect_Palette0
str r4, [sp]
str r5, [sp, 0x4]
movs r0, 0x1
movs r1, 0
movs r2, 0
movs r3, 0
bl FillBgTilemapBufferRect_Palette0
str r4, [sp]
movs r0, 0x10
str r0, [sp, 0x4]
movs r0, 0
movs r1, 0
movs r2, 0
movs r3, 0x2
bl FillBgTilemapBufferRect_Palette0
ldr r0, _08105FD0 @ =gUnknown_84521D4
bl AddWindow
ldr r4, _08105FD4 @ =gUnknown_203ACF0
ldr r1, [r4]
adds r1, 0x4A
movs r2, 0
mov r8, r2
strb r0, [r1]
ldr r0, _08105FD8 @ =gUnknown_84521DC
bl AddWindow
ldr r1, [r4]
adds r1, 0x4B
strb r0, [r1]
ldr r0, _08105FDC @ =gUnknown_84521E4
bl AddWindow
ldr r1, [r4]
adds r1, 0x4C
strb r0, [r1]
ldr r0, [r4]
adds r0, 0x4A
ldrb r0, [r0]
movs r1, 0
bl FillWindowPixelBuffer
ldr r1, [r4]
adds r0, r1, 0
adds r0, 0x4A
ldrb r0, [r0]
adds r1, 0x5A
ldrh r1, [r1]
movs r2, 0x90
bl sub_81049FC
ldr r0, [r4]
adds r0, 0x4A
ldrb r0, [r0]
bl PutWindowTilemap
ldr r0, [r4]
adds r0, 0x4A
ldrb r0, [r0]
movs r1, 0x2
bl CopyWindowToVram
ldr r0, [r4]
adds r0, 0x4B
ldrb r0, [r0]
movs r1, 0
bl FillWindowPixelBuffer
ldr r1, [r4]
adds r0, r1, 0
adds r0, 0x4B
ldrb r0, [r0]
adds r1, 0x5A
ldrh r2, [r1]
movs r5, 0x8
str r5, [sp]
movs r1, 0
movs r3, 0
bl sub_8104A34
ldr r1, [r4]
adds r0, r1, 0
adds r0, 0x4B
ldrb r0, [r0]
adds r1, 0x5A
ldrh r2, [r1]
movs r1, 0xB
muls r2, r1
ldr r1, _08105FE0 @ =gSpeciesNames
adds r2, r1
str r5, [sp]
mov r1, r8
str r1, [sp, 0x4]
movs r1, 0x2
movs r3, 0x1C
bl sub_81047C8
ldr r1, [r4]
adds r0, r1, 0
adds r0, 0x4B
ldrb r0, [r0]
adds r1, 0x5A
ldrh r1, [r1]
movs r2, 0
movs r3, 0x18
bl sub_8105800
ldr r1, [r4]
adds r0, r1, 0
adds r0, 0x4B
ldrb r0, [r0]
adds r1, 0x5A
ldrh r1, [r1]
movs r2, 0
movs r3, 0x24
bl sub_81058C4
ldr r1, [r4]
adds r0, r1, 0
adds r0, 0x4B
ldrb r0, [r0]
adds r1, 0x5A
ldrh r1, [r1]
movs r2, 0
movs r3, 0x30
bl sub_8105A3C
ldr r1, [r4]
adds r0, r1, 0
adds r0, 0x4B
ldrb r0, [r0]
adds r1, 0x5A
ldrh r1, [r1]
movs r2, 0x58
movs r3, 0x28
bl sub_8105D64
ldr r0, [r4]
adds r0, 0x4B
ldrb r0, [r0]
bl PutWindowTilemap
ldr r0, [r4]
adds r0, 0x4B
ldrb r0, [r0]
movs r1, 0x2
bl CopyWindowToVram
ldr r0, [r4]
adds r0, 0x4C
ldrb r0, [r0]
movs r1, 0
bl FillWindowPixelBuffer
ldr r1, [r4]
adds r0, r1, 0
adds r0, 0x4C
ldrb r0, [r0]
adds r1, 0x5A
ldrh r1, [r1]
movs r2, 0
movs r3, 0x8
bl sub_8105CB0
ldr r0, [r4]
adds r0, 0x4C
ldrb r0, [r0]
bl PutWindowTilemap
ldr r0, [r4]
adds r0, 0x4C
ldrb r0, [r0]
movs r1, 0x2
bl CopyWindowToVram
movs r0, 0x1
movs r1, 0xFF
bl FillWindowPixelBuffer
cmp r6, 0
bne _08105FEC
ldr r2, _08105FE4 @ =gUnknown_8415FAD
movs r0, 0x2
str r0, [sp]
movs r0, 0x4
str r0, [sp, 0x4]
movs r0, 0x1
movs r1, 0
movs r3, 0x8
bl sub_81047C8
ldr r0, _08105FE8 @ =gUnknown_8415FB3
bl sub_8104C2C
b _08105FF2
.align 2, 0
_08105FD0: .4byte gUnknown_84521D4
_08105FD4: .4byte gUnknown_203ACF0
_08105FD8: .4byte gUnknown_84521DC
_08105FDC: .4byte gUnknown_84521E4
_08105FE0: .4byte gSpeciesNames
_08105FE4: .4byte gUnknown_8415FAD
_08105FE8: .4byte gUnknown_8415FB3
_08105FEC:
ldr r0, _08106010 @ =gUnknown_8415FC8
bl sub_8104C2C
_08105FF2:
movs r0, 0x1
bl PutWindowTilemap
movs r0, 0x1
movs r1, 0x2
bl CopyWindowToVram
movs r0, 0x1
add sp, 0x8
pop {r3}
mov r8, r3
pop {r4-r6}
pop {r1}
bx r1
.align 2, 0
_08106010: .4byte gUnknown_8415FC8
thumb_func_end sub_8105E1C
thumb_func_start sub_8106014
sub_8106014: @ 8106014
push {r4,lr}
ldr r4, _08106038 @ =gUnknown_203ACF0
ldr r0, [r4]
adds r0, 0x4A
bl sub_81047B0
ldr r0, [r4]
adds r0, 0x4B
bl sub_81047B0
ldr r0, [r4]
adds r0, 0x4C
bl sub_81047B0
movs r0, 0
pop {r4}
pop {r1}
bx r1
.align 2, 0
_08106038: .4byte gUnknown_203ACF0
thumb_func_end sub_8106014
thumb_func_start sub_810603C
sub_810603C: @ 810603C
push {r4-r7,lr}
mov r7, r10
mov r6, r9
mov r5, r8
push {r5-r7}
sub sp, 0x24
ldr r6, _08106424 @ =gUnknown_203ACF0
ldr r0, [r6]
adds r0, 0x5A
ldrh r0, [r0]
str r0, [sp, 0x1C]
bl SpeciesToNationalPokedexNum
lsls r0, 16
lsrs r0, 16
str r0, [sp, 0x18]
ldr r0, [sp, 0x1C]
movs r1, 0x1
movs r2, 0x1
bl sub_8104AB0
lsls r0, 24
lsrs r0, 24
mov r10, r0
movs r7, 0x1C
movs r0, 0xE
mov r8, r0
movs r4, 0x1
str r4, [sp]
str r4, [sp, 0x4]
movs r0, 0x3
movs r1, 0x4
movs r2, 0
movs r3, 0x2
bl FillBgTilemapBufferRect_Palette0
ldr r1, _08106428 @ =0x00000404
str r4, [sp]
str r4, [sp, 0x4]
movs r0, 0x3
movs r2, 0x1D
movs r3, 0x2
bl FillBgTilemapBufferRect_Palette0
ldr r1, _0810642C @ =0x00000804
str r4, [sp]
str r4, [sp, 0x4]
movs r0, 0x3
movs r2, 0
movs r3, 0x11
bl FillBgTilemapBufferRect_Palette0
ldr r1, _08106430 @ =0x00000c04
str r4, [sp]
str r4, [sp, 0x4]
movs r0, 0x3
movs r2, 0x1D
movs r3, 0x11
bl FillBgTilemapBufferRect_Palette0
str r7, [sp]
str r4, [sp, 0x4]
movs r0, 0x3
movs r1, 0x5
movs r2, 0x1
movs r3, 0x2
bl FillBgTilemapBufferRect_Palette0
ldr r1, _08106434 @ =0x00000805
str r7, [sp]
str r4, [sp, 0x4]
movs r0, 0x3
movs r2, 0x1
movs r3, 0x11
bl FillBgTilemapBufferRect_Palette0
str r4, [sp]
mov r1, r8
str r1, [sp, 0x4]
movs r0, 0x3
movs r1, 0x6
movs r2, 0
movs r3, 0x3
bl FillBgTilemapBufferRect_Palette0
ldr r1, _08106438 @ =0x00000406
str r4, [sp]
mov r2, r8
str r2, [sp, 0x4]
movs r0, 0x3
movs r2, 0x1D
movs r3, 0x3
bl FillBgTilemapBufferRect_Palette0
str r7, [sp]
mov r3, r8
str r3, [sp, 0x4]
movs r0, 0x3
movs r1, 0x1
movs r2, 0x1
movs r3, 0x3
bl FillBgTilemapBufferRect_Palette0
movs r5, 0x1E
str r5, [sp]
movs r0, 0x10
str r0, [sp, 0x4]
movs r0, 0
movs r1, 0
movs r2, 0
movs r3, 0x2
bl FillBgTilemapBufferRect_Palette0
movs r7, 0xA
movs r0, 0x6
mov r8, r0
str r4, [sp]
str r4, [sp, 0x4]
movs r0, 0
movs r1, 0x1D
movs r2, 0x1
movs r3, 0x9
bl FillBgTilemapBufferRect_Palette0
ldr r1, _0810643C @ =0x0000041d
str r4, [sp]
str r4, [sp, 0x4]
movs r0, 0
movs r2, 0xC
movs r3, 0x9
bl FillBgTilemapBufferRect_Palette0
ldr r1, _08106440 @ =0x0000081d
str r4, [sp]
str r4, [sp, 0x4]
movs r0, 0
movs r2, 0x1
movs r3, 0x10
bl FillBgTilemapBufferRect_Palette0
ldr r1, _08106444 @ =0x00000c1d
str r4, [sp]
str r4, [sp, 0x4]
movs r0, 0
movs r2, 0xC
movs r3, 0x10
bl FillBgTilemapBufferRect_Palette0
str r7, [sp]
str r4, [sp, 0x4]
movs r0, 0
movs r1, 0x1E
movs r2, 0x2
movs r3, 0x9
bl FillBgTilemapBufferRect_Palette0
ldr r1, _08106448 @ =0x0000081e
str r7, [sp]
str r4, [sp, 0x4]
movs r0, 0
movs r2, 0x2
movs r3, 0x10
bl FillBgTilemapBufferRect_Palette0
str r4, [sp]
mov r1, r8
str r1, [sp, 0x4]
movs r0, 0
movs r1, 0x1F
movs r2, 0x1
movs r3, 0xA
bl FillBgTilemapBufferRect_Palette0
ldr r1, _0810644C @ =0x0000041f
str r4, [sp]
mov r2, r8
str r2, [sp, 0x4]
movs r0, 0
movs r2, 0xC
movs r3, 0xA
bl FillBgTilemapBufferRect_Palette0
str r5, [sp]
movs r4, 0x14
str r4, [sp, 0x4]
movs r0, 0x2
movs r1, 0
movs r2, 0
movs r3, 0
bl FillBgTilemapBufferRect_Palette0
str r5, [sp]
str r4, [sp, 0x4]
movs r0, 0x1
movs r1, 0
movs r2, 0
movs r3, 0
bl FillBgTilemapBufferRect_Palette0
bl GetUnlockedSeviiAreas
ldr r1, [r6]
adds r1, 0x64
strb r0, [r1]
movs r3, 0x4
mov r9, r3
movs r4, 0x3
ldr r0, [r6]
adds r0, 0x64
ldrb r1, [r0]
movs r2, 0x1
_081061E2:
adds r0, r1, 0
asrs r0, r4
ands r0, r2
cmp r0, 0
beq _081061F0
movs r0, 0
mov r9, r0
_081061F0:
adds r4, 0x1
cmp r4, 0x6
ble _081061E2
ldr r0, _08106450 @ =gUnknown_8452214
bl AddWindow
ldr r5, _08106424 @ =gUnknown_203ACF0
ldr r1, [r5]
adds r1, 0x4A
strb r0, [r1]
ldr r0, [r5]
adds r0, 0x4A
ldrb r0, [r0]
ldr r1, _08106454 @ =gUnknown_8443620
movs r2, 0
movs r3, 0
bl CopyToWindowPixelBuffer
ldr r0, [r5]
adds r0, 0x4A
ldrb r4, [r0]
adds r0, r4, 0
movs r1, 0x2
bl GetWindowAttribute
adds r2, r0, 0
add r2, r9
adds r0, r4, 0
movs r1, 0x2
bl SetWindowAttribute
ldr r0, [r5]
adds r0, 0x4A
ldrb r0, [r0]
bl PutWindowTilemap
movs r4, 0
mov r1, r9
lsls r1, 27
str r1, [sp, 0x20]
ldr r7, _08106458 @ =gUnknown_8452254
adds r2, r7, 0x4
mov r8, r2
_08106246:
ldr r0, [r5]
adds r0, 0x64
ldrb r1, [r0]
asrs r1, r4
movs r0, 0x1
ands r1, r0
adds r6, r4, 0x1
cmp r1, 0
beq _081062B4
lsls r4, 3
adds r0, r4, r7
ldr r0, [r0]
bl AddWindow
ldr r1, [r5]
adds r1, 0x4A
adds r1, r6
strb r0, [r1]
ldr r0, [r5]
adds r0, 0x4A
adds r0, r6
ldrb r0, [r0]
add r4, r8
ldr r1, [r4]
movs r2, 0
movs r3, 0
bl CopyToWindowPixelBuffer
ldr r0, [r5]
adds r0, 0x4A
adds r0, r6
ldrb r4, [r0]
adds r0, r4, 0
movs r1, 0x2
bl GetWindowAttribute
adds r2, r0, 0
add r2, r9
adds r0, r4, 0
movs r1, 0x2
bl SetWindowAttribute
ldr r0, [r5]
adds r0, 0x4A
adds r0, r6
ldrb r0, [r0]
bl PutWindowTilemap
ldr r0, [r5]
adds r0, 0x4A
adds r0, r6
ldrb r0, [r0]
movs r1, 0x2
bl CopyWindowToVram
_081062B4:
adds r4, r6, 0
cmp r4, 0x6
ble _08106246
ldr r0, _0810645C @ =gUnknown_84521F4
bl AddWindow
ldr r7, _08106424 @ =gUnknown_203ACF0
ldr r1, [r7]
adds r1, 0x52
movs r6, 0
strb r0, [r1]
ldr r5, _08106460 @ =gUnknown_84521FC
adds r0, r5, 0
bl AddWindow
ldr r1, [r7]
adds r1, 0x53
strb r0, [r1]
ldr r3, _08106464 @ =gUnknown_8452204
mov r8, r3
mov r0, r8
bl AddWindow
ldr r1, [r7]
adds r1, 0x54
strb r0, [r1]
ldr r0, _08106468 @ =gUnknown_84521EC
bl AddWindow
ldr r1, [r7]
adds r1, 0x55
strb r0, [r1]
ldr r0, _0810646C @ =gUnknown_845220C
bl AddWindow
ldr r1, [r7]
adds r1, 0x56
strb r0, [r1]
ldr r0, [r7]
adds r0, 0x55
ldrb r0, [r0]
movs r1, 0
bl FillWindowPixelBuffer
movs r0, 0xA0
ldr r1, [sp, 0x1C]
bl sub_8107CD8
ldr r0, [sp, 0x1C]
bl sub_81049CC
adds r2, r0, 0
ldr r0, [r7]
adds r0, 0x55
ldrb r0, [r0]
str r6, [sp]
ldr r1, [sp, 0x1C]
movs r3, 0
bl sub_8107CF8
ldr r0, [r7]
adds r0, 0x55
ldrb r0, [r0]
bl PutWindowTilemap
ldr r0, [r7]
adds r0, 0x55
ldrb r0, [r0]
movs r1, 0x2
bl CopyWindowToVram
ldr r0, [r7]
adds r0, 0x53
ldrb r0, [r0]
movs r1, 0
bl FillWindowPixelBuffer
ldr r4, _08106470 @ =gUnknown_8415FED
movs r0, 0
adds r1, r4, 0
movs r2, 0
bl GetStringWidth
ldr r1, [r7]
adds r1, 0x53
ldrb r1, [r1]
ldrb r3, [r5, 0x3]
lsls r3, 3
subs r3, r0
lsrs r0, r3, 31
adds r3, r0
asrs r3, 1
lsls r3, 24
lsrs r3, 24
movs r5, 0x4
str r5, [sp]
str r6, [sp, 0x4]
adds r0, r1, 0
movs r1, 0
adds r2, r4, 0
bl sub_81047C8
ldr r0, [r7]
adds r0, 0x53
ldrb r0, [r0]
bl PutWindowTilemap
ldr r0, [r7]
adds r0, 0x53
ldrb r0, [r0]
movs r1, 0x2
bl CopyWindowToVram
ldr r0, [r7]
adds r0, 0x54
ldrb r0, [r0]
movs r1, 0
bl FillWindowPixelBuffer
ldr r4, _08106474 @ =gUnknown_8415FE8
movs r0, 0
adds r1, r4, 0
movs r2, 0
bl GetStringWidth
ldr r1, [r7]
adds r1, 0x54
ldrb r1, [r1]
mov r2, r8
ldrb r3, [r2, 0x3]
lsls r3, 3
subs r3, r0
lsrs r0, r3, 31
adds r3, r0
asrs r3, 1
lsls r3, 24
lsrs r3, 24
str r5, [sp]
str r6, [sp, 0x4]
adds r0, r1, 0
movs r1, 0
adds r2, r4, 0
bl sub_81047C8
ldr r0, [r7]
adds r0, 0x54
ldrb r4, [r0]
adds r0, r4, 0
movs r1, 0x2
bl GetWindowAttribute
adds r2, r0, 0
add r2, r9
adds r0, r4, 0
movs r1, 0x2
bl SetWindowAttribute
ldr r0, [r7]
adds r0, 0x54
ldrb r0, [r0]
bl PutWindowTilemap
ldr r0, [r7]
adds r0, 0x54
ldrb r0, [r0]
movs r1, 0x2
bl CopyWindowToVram
ldr r0, [r7]
adds r0, 0x52
ldrb r0, [r0]
movs r1, 0
bl FillWindowPixelBuffer
ldr r0, [r7]
adds r0, 0x52
ldrb r0, [r0]
str r6, [sp]
movs r1, 0
ldr r2, [sp, 0x1C]
movs r3, 0
bl sub_8104A34
b _08106478
.align 2, 0
_08106424: .4byte gUnknown_203ACF0
_08106428: .4byte 0x00000404
_0810642C: .4byte 0x00000804
_08106430: .4byte 0x00000c04
_08106434: .4byte 0x00000805
_08106438: .4byte 0x00000406
_0810643C: .4byte 0x0000041d
_08106440: .4byte 0x0000081d
_08106444: .4byte 0x00000c1d
_08106448: .4byte 0x0000081e
_0810644C: .4byte 0x0000041f
_08106450: .4byte gUnknown_8452214
_08106454: .4byte gUnknown_8443620
_08106458: .4byte gUnknown_8452254
_0810645C: .4byte gUnknown_84521F4
_08106460: .4byte gUnknown_84521FC
_08106464: .4byte gUnknown_8452204
_08106468: .4byte gUnknown_84521EC
_0810646C: .4byte gUnknown_845220C
_08106470: .4byte gUnknown_8415FED
_08106474: .4byte gUnknown_8415FE8
_08106478:
ldr r0, [r7]
adds r0, 0x52
ldrb r0, [r0]
movs r1, 0xB
ldr r3, [sp, 0x1C]
adds r2, r3, 0
muls r2, r1
ldr r1, _081066B0 @ =gSpeciesNames
adds r2, r1
movs r1, 0xC
str r1, [sp]
str r6, [sp, 0x4]
movs r1, 0x2
movs r3, 0x3
bl sub_81047C8
ldr r0, [r7]
adds r0, 0x52
ldrb r0, [r0]
bl PutWindowTilemap
ldr r0, [r7]
adds r0, 0x52
ldrb r0, [r0]
movs r1, 0x2
bl CopyWindowToVram
ldr r0, [r7]
adds r0, 0x56
ldrb r0, [r0]
movs r1, 0
bl FillWindowPixelBuffer
movs r0, 0xB0
movs r1, 0x1
bl ListMenuLoadStdPalAt
mov r0, r10
cmp r0, 0
beq _08106504
ldr r0, [r7]
adds r0, 0x56
ldrb r0, [r0]
ldr r1, _081066B4 @ =gBaseStats
ldr r2, [sp, 0x1C]
lsls r4, r2, 3
subs r4, r2
lsls r4, 2
adds r4, r1
ldrb r5, [r4, 0x6]
adds r1, r5, 0x1
lsls r1, 24
lsrs r1, 24
movs r2, 0
movs r3, 0x1
bl BlitMoveInfoIcon
ldrb r1, [r4, 0x7]
cmp r5, r1
beq _08106504
ldr r0, [r7]
adds r0, 0x56
ldrb r0, [r0]
adds r1, 0x1
lsls r1, 24
lsrs r1, 24
movs r2, 0x20
movs r3, 0x1
bl BlitMoveInfoIcon
_08106504:
ldr r7, _081066B8 @ =gUnknown_203ACF0
ldr r0, [r7]
adds r0, 0x56
ldrb r0, [r0]
bl PutWindowTilemap
ldr r0, [r7]
adds r0, 0x56
ldrb r0, [r0]
movs r1, 0x2
bl CopyWindowToVram
bl ResetAllPicSprites
ldr r0, _081066BC @ =gUnknown_8452368
movs r1, 0x90
lsls r1, 1
movs r2, 0x20
bl LoadPalette
mov r3, r10
cmp r3, 0
bne _08106534
b _081066D0
_08106534:
ldr r0, [sp, 0x1C]
bl sub_81049CC
adds r2, r0, 0
movs r0, 0x28
str r0, [sp]
movs r0, 0x68
str r0, [sp, 0x4]
movs r0, 0
str r0, [sp, 0x8]
ldr r1, _081066C0 @ =0x0000ffff
str r1, [sp, 0xC]
ldr r0, [sp, 0x1C]
movs r1, 0x8
movs r3, 0x1
bl CreateMonPicSprite_HandleDeoxys
ldr r1, [r7]
adds r1, 0x58
strb r0, [r1]
ldr r2, _081066C4 @ =gSprites
mov r10, r2
ldr r0, [r7]
adds r0, 0x58
ldrb r0, [r0]
lsls r1, r0, 4
adds r1, r0
lsls r1, 2
add r1, r10
ldrb r2, [r1, 0x5]
movs r3, 0xF
mov r9, r3
mov r0, r9
ands r0, r2
movs r2, 0x20
orrs r0, r2
strb r0, [r1, 0x5]
ldr r0, [r7]
adds r0, 0x58
ldrb r0, [r0]
lsls r1, r0, 4
adds r1, r0
lsls r1, 2
add r1, r10
ldrb r2, [r1, 0x1]
subs r3, 0x13
mov r8, r3
mov r0, r8
ands r0, r2
movs r2, 0x1
orrs r0, r2
strb r0, [r1, 0x1]
ldr r0, [r7]
adds r0, 0x58
ldrb r0, [r0]
lsls r1, r0, 4
adds r1, r0
lsls r1, 2
add r1, r10
ldrb r2, [r1, 0x3]
movs r6, 0x3F
negs r6, r6
adds r0, r6, 0
ands r0, r2
movs r3, 0x4
orrs r0, r3
strb r0, [r1, 0x3]
ldr r0, [r7]
adds r0, 0x58
ldrb r0, [r0]
lsls r1, r0, 4
adds r1, r0
lsls r1, 2
add r1, r10
ldrb r2, [r1, 0x5]
movs r5, 0xD
negs r5, r5
adds r0, r5, 0
ands r0, r2
orrs r0, r3
strb r0, [r1, 0x5]
ldr r0, [r7]
adds r0, 0x58
ldrb r1, [r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
add r0, r10
ldr r1, _081066C8 @ =gPokedexEntries
ldr r2, [sp, 0x18]
lsls r4, r2, 3
adds r4, r2
lsls r4, 2
adds r4, r1
ldrh r1, [r4, 0x1C]
strh r1, [r0, 0x26]
ldrh r1, [r4, 0x1A]
str r1, [sp]
movs r0, 0x2
movs r2, 0
movs r3, 0
bl SetOamMatrix
ldr r0, _081066CC @ =gSaveBlock2Ptr
ldr r0, [r0]
ldrb r0, [r0, 0x8]
movs r1, 0x1
bl PlayerGenderToFrontTrainerPicId_Debug
lsls r0, 16
lsrs r0, 16
movs r3, 0
str r3, [sp]
ldr r1, _081066C0 @ =0x0000ffff
str r1, [sp, 0x4]
movs r1, 0x1
movs r2, 0x50
movs r3, 0x68
bl CreateTrainerPicSprite
ldr r1, [r7]
adds r1, 0x59
strb r0, [r1]
ldr r0, [r7]
adds r0, 0x59
ldrb r1, [r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
add r0, r10
ldrb r1, [r0, 0x5]
mov r2, r9
ands r2, r1
movs r3, 0x20
orrs r2, r3
strb r2, [r0, 0x5]
ldr r0, [r7]
adds r0, 0x59
ldrb r1, [r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
add r0, r10
ldrb r1, [r0, 0x1]
mov r2, r8
ands r2, r1
movs r3, 0x1
orrs r2, r3
strb r2, [r0, 0x1]
ldr r0, [r7]
adds r0, 0x59
ldrb r1, [r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
add r0, r10
ldrb r1, [r0, 0x3]
ands r6, r1
movs r1, 0x2
orrs r6, r1
strb r6, [r0, 0x3]
ldr r0, [r7]
adds r0, 0x59
ldrb r1, [r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
add r0, r10
ldrb r1, [r0, 0x5]
ands r5, r1
movs r1, 0x4
orrs r5, r1
strb r5, [r0, 0x5]
ldr r0, [r7]
adds r0, 0x59
ldrb r1, [r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
add r0, r10
ldrh r1, [r4, 0x20]
strh r1, [r0, 0x26]
ldrh r1, [r4, 0x1E]
str r1, [sp]
movs r0, 0x1
movs r2, 0
movs r3, 0
bl SetOamMatrix
b _081066E2
.align 2, 0
_081066B0: .4byte gSpeciesNames
_081066B4: .4byte gBaseStats
_081066B8: .4byte gUnknown_203ACF0
_081066BC: .4byte gUnknown_8452368
_081066C0: .4byte 0x0000ffff
_081066C4: .4byte gSprites
_081066C8: .4byte gPokedexEntries
_081066CC: .4byte gSaveBlock2Ptr
_081066D0:
ldr r0, [r7]
adds r0, 0x58
movs r1, 0xFF
strb r1, [r0]
ldr r0, [r7]
adds r0, 0x59
movs r1, 0x1
negs r1, r1
strb r1, [r0]
_081066E2:
ldr r1, _081067A8 @ =0x000007d1
ldr r2, [sp, 0x20]
lsrs r3, r2, 24
ldr r0, [sp, 0x1C]
movs r2, 0x3
bl sub_8134230
ldr r5, _081067AC @ =gUnknown_203ACF0
ldr r1, [r5]
strb r0, [r1, 0x4]
ldr r0, [r5]
ldrb r0, [r0, 0x4]
bl sub_81344E0
lsls r0, 24
lsrs r6, r0, 24
cmp r6, 0
bne _0810675A
ldr r0, [r5]
adds r0, 0x4A
ldrb r0, [r0]
ldr r1, _081067B0 @ =gUnknown_8443D00
movs r4, 0x58
str r4, [sp]
movs r3, 0x10
str r3, [sp, 0x4]
movs r2, 0x4
str r2, [sp, 0x8]
movs r2, 0x1C
str r2, [sp, 0xC]
str r4, [sp, 0x10]
str r3, [sp, 0x14]
movs r2, 0
movs r3, 0
bl BlitBitmapRectToWindow
ldr r4, _081067B4 @ =gUnknown_8415FF2
movs r0, 0
adds r1, r4, 0
movs r2, 0
bl GetStringWidth
ldr r1, [r5]
adds r1, 0x4A
ldrb r1, [r1]
movs r3, 0x60
subs r3, r0
lsrs r0, r3, 31
adds r3, r0
asrs r3, 1
lsls r3, 24
lsrs r3, 24
movs r0, 0x1D
str r0, [sp]
str r6, [sp, 0x4]
adds r0, r1, 0
movs r1, 0
adds r2, r4, 0
bl sub_81047C8
_0810675A:
ldr r0, [r5]
adds r0, 0x4A
ldrb r0, [r0]
movs r1, 0x2
bl CopyWindowToVram
movs r0, 0x1
movs r1, 0xFF
bl FillWindowPixelBuffer
ldr r2, _081067B8 @ =gUnknown_8415FAD
movs r0, 0x2
str r0, [sp]
movs r0, 0x4
str r0, [sp, 0x4]
movs r0, 0x1
movs r1, 0
movs r3, 0x8
bl sub_81047C8
ldr r0, _081067BC @ =gUnknown_8415FCF
bl sub_8104C2C
movs r0, 0x1
bl PutWindowTilemap
movs r0, 0x1
movs r1, 0x2
bl CopyWindowToVram
movs r0, 0x1
add sp, 0x24
pop {r3-r5}
mov r8, r3
mov r9, r4
mov r10, r5
pop {r4-r7}
pop {r1}
bx r1
.align 2, 0
_081067A8: .4byte 0x000007d1
_081067AC: .4byte gUnknown_203ACF0
_081067B0: .4byte gUnknown_8443D00
_081067B4: .4byte gUnknown_8415FF2
_081067B8: .4byte gUnknown_8415FAD
_081067BC: .4byte gUnknown_8415FCF
thumb_func_end sub_810603C
thumb_func_start sub_81067C0
sub_81067C0: @ 81067C0
push {r4,r5,lr}
ldr r4, _0810680C @ =gUnknown_203ACF0
ldr r0, [r4]
ldrb r0, [r0, 0x4]
bl sub_81343F4
movs r5, 0
_081067CE:
adds r1, r5, 0
adds r1, 0x4A
ldr r0, [r4]
adds r0, r1
bl sub_81047B0
adds r5, 0x1
cmp r5, 0xC
ble _081067CE
ldr r4, _0810680C @ =gUnknown_203ACF0
ldr r0, [r4]
adds r1, r0, 0
adds r1, 0x59
ldrb r0, [r1]
cmp r0, 0xFF
beq _081067F2
bl FreeAndDestroyTrainerPicSprite
_081067F2:
ldr r0, [r4]
adds r1, r0, 0
adds r1, 0x58
ldrb r0, [r1]
cmp r0, 0xFF
beq _08106802
bl FreeAndDestroyMonPicSprite
_08106802:
movs r0, 0
pop {r4,r5}
pop {r1}
bx r1
.align 2, 0
_0810680C: .4byte gUnknown_203ACF0
thumb_func_end sub_81067C0
thumb_func_start sub_8106810
sub_8106810: @ 8106810
push {r4,lr}
lsls r0, 16
lsrs r4, r0, 16
bl IsNationalPokedexEnabled
cmp r0, 0x1
beq _08106830
adds r0, r4, 0
bl SpeciesToNationalPokedexNum
lsls r0, 16
lsrs r0, 16
cmp r0, 0x97
bls _08106830
movs r0, 0
b _08106832
_08106830:
movs r0, 0x1
_08106832:
pop {r4}
pop {r1}
bx r1
thumb_func_end sub_8106810
thumb_func_start sub_8106838
sub_8106838: @ 8106838
push {r4-r7,lr}
mov r7, r8
push {r7}
lsls r0, 24
lsls r1, 24
lsrs r6, r1, 24
ldr r1, _08106888 @ =gDexCategories
lsrs r0, 21
adds r0, r1
ldr r2, [r0]
lsls r1, r6, 3
adds r1, r2
ldrb r1, [r1, 0x4]
mov r8, r1
movs r5, 0
adds r7, r0, 0
_08106858:
cmp r5, r8
bge _0810688C
ldr r1, [r7]
lsls r0, r6, 3
adds r0, r1
ldr r1, [r0]
lsls r0, r5, 1
adds r0, r1
ldrh r4, [r0]
adds r0, r4, 0
bl sub_8106810
cmp r0, 0x1
bne _0810688C
adds r0, r4, 0
movs r1, 0
movs r2, 0x1
bl sub_8104AB0
lsls r0, 24
cmp r0, 0
beq _0810688C
movs r0, 0x1
b _08106894
.align 2, 0
_08106888: .4byte gDexCategories
_0810688C:
adds r5, 0x1
cmp r5, 0x3
ble _08106858
movs r0, 0
_08106894:
pop {r3}
mov r8, r3
pop {r4-r7}
pop {r1}
bx r1
thumb_func_end sub_8106838
thumb_func_start sub_81068A0
sub_81068A0: @ 81068A0
push {r4-r6,lr}
lsls r0, 24
lsrs r6, r0, 24
ldr r1, _081068C8 @ =gDexCategories
lsls r0, r6, 3
adds r0, r1
ldrb r5, [r0, 0x4]
movs r4, 0
cmp r4, r5
bge _081068D2
_081068B4:
lsls r1, r4, 24
lsrs r1, 24
adds r0, r6, 0
bl sub_8106838
lsls r0, 24
cmp r0, 0
beq _081068CC
movs r0, 0x1
b _081068D4
.align 2, 0
_081068C8: .4byte gDexCategories
_081068CC:
adds r4, 0x1
cmp r4, r5
blt _081068B4
_081068D2:
movs r0, 0
_081068D4:
pop {r4-r6}
pop {r1}
bx r1
thumb_func_end sub_81068A0
thumb_func_start sub_81068DC
sub_81068DC: @ 81068DC
push {r4-r7,lr}
mov r7, r9
mov r6, r8
push {r6,r7}
lsls r0, 24
lsrs r4, r0, 24
lsls r1, 24
lsrs r6, r1, 24
ldr r1, _08106990 @ =gDexCategories
lsls r0, r4, 3
adds r0, r1
ldr r1, [r0]
lsls r0, r6, 3
adds r0, r1
ldrb r0, [r0, 0x4]
mov r9, r0
ldr r2, _08106994 @ =gUnknown_203ACF0
ldr r0, [r2]
adds r0, 0x2C
movs r1, 0
strb r1, [r0]
movs r5, 0
ldr r0, _08106998 @ =0x0000ffff
adds r3, r0, 0
_0810690C:
ldr r0, [r2]
lsls r1, r5, 1
adds r0, 0x18
adds r0, r1
ldrh r1, [r0]
orrs r1, r3
strh r1, [r0]
adds r5, 0x1
cmp r5, 0x3
ble _0810690C
movs r5, 0
cmp r5, r9
bge _08106982
ldr r1, _08106990 @ =gDexCategories
lsls r0, r4, 3
adds r0, r1
mov r8, r0
lsls r7, r6, 3
_08106930:
mov r1, r8
ldr r0, [r1]
adds r0, r7, r0
ldr r0, [r0]
lsls r6, r5, 1
adds r0, r6, r0
ldrh r4, [r0]
adds r0, r4, 0
bl sub_8106810
cmp r0, 0x1
bne _0810697C
adds r0, r4, 0
movs r1, 0
movs r2, 0x1
bl sub_8104AB0
lsls r0, 24
cmp r0, 0
beq _0810697C
ldr r0, _08106994 @ =gUnknown_203ACF0
ldr r1, [r0]
adds r2, r1, 0
adds r2, 0x2C
ldrb r0, [r2]
lsls r0, 1
adds r1, 0x18
adds r1, r0
mov r3, r8
ldr r0, [r3]
adds r0, r7, r0
ldr r0, [r0]
adds r0, r6, r0
ldrh r0, [r0]
strh r0, [r1]
ldrb r0, [r2]
adds r0, 0x1
strb r0, [r2]
_0810697C:
adds r5, 0x1
cmp r5, r9
blt _08106930
_08106982:
pop {r3,r4}
mov r8, r3
mov r9, r4
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
_08106990: .4byte gDexCategories
_08106994: .4byte gUnknown_203ACF0
_08106998: .4byte 0x0000ffff
thumb_func_end sub_81068DC
thumb_func_start sub_810699C
sub_810699C: @ 810699C
push {r4-r7,lr}
sub sp, 0x8
lsls r0, 24
lsrs r7, r0, 24
ldr r1, _081069F8 @ =gDexCategories
lsls r0, r7, 3
adds r0, r1
ldrb r6, [r0, 0x4]
movs r2, 0xFF
movs r3, 0xFF
movs r5, 0
cmp r5, r6
bge _081069DE
_081069B6:
lsls r0, r5, 24
lsrs r4, r0, 24
adds r0, r7, 0
adds r1, r4, 0
str r2, [sp]
str r3, [sp, 0x4]
bl sub_8106838
lsls r0, 24
ldr r2, [sp]
ldr r3, [sp, 0x4]
cmp r0, 0
beq _081069D8
cmp r2, 0xFF
bne _081069D6
adds r2, r4, 0
_081069D6:
adds r3, r4, 0
_081069D8:
adds r5, 0x1
cmp r5, r6
blt _081069B6
_081069DE:
cmp r3, 0xFF
bne _08106A00
ldr r2, _081069FC @ =gUnknown_203ACF0
ldr r0, [r2]
adds r0, 0x29
movs r1, 0
strb r1, [r0]
ldr r0, [r2]
adds r0, 0x2A
strb r1, [r0]
movs r0, 0x1
b _08106A12
.align 2, 0
_081069F8: .4byte gDexCategories
_081069FC: .4byte gUnknown_203ACF0
_08106A00:
ldr r1, _08106A1C @ =gUnknown_203ACF0
ldr r0, [r1]
adds r0, 0x29
strb r2, [r0]
ldr r0, [r1]
adds r1, r3, 0x1
adds r0, 0x2A
strb r1, [r0]
movs r0, 0
_08106A12:
add sp, 0x8
pop {r4-r7}
pop {r1}
bx r1
.align 2, 0
_08106A1C: .4byte gUnknown_203ACF0
thumb_func_end sub_810699C
thumb_func_start sub_8106A20
sub_8106A20: @ 8106A20
push {r4-r7,lr}
mov r7, r10
mov r6, r9
mov r5, r8
push {r5-r7}
sub sp, 0x18
lsls r0, 16
lsrs r0, 16
str r0, [sp]
movs r0, 0
str r0, [sp, 0x4]
ldr r1, _08106A98 @ =gDexCategories
str r1, [sp, 0x10]
_08106A3A:
ldr r2, [sp, 0x10]
ldrb r2, [r2, 0x4]
str r2, [sp, 0x8]
movs r7, 0
cmp r7, r2
bge _08106AD6
ldr r0, [sp, 0x10]
str r0, [sp, 0xC]
movs r1, 0
mov r9, r1
_08106A4E:
ldr r2, [sp, 0xC]
ldr r0, [r2]
add r0, r9
ldrb r6, [r0, 0x4]
movs r5, 0
mov r8, r5
cmp r5, r6
bge _08106ACA
ldr r0, [sp, 0x10]
mov r10, r0
ldr r3, _08106A9C @ =gUnknown_203ACF0
_08106A64:
mov r1, r10
ldr r0, [r1]
add r0, r9
ldr r1, [r0]
lsls r0, r5, 1
adds r0, r1
ldrh r0, [r0]
adds r4, r0, 0
ldr r2, [sp]
cmp r2, r4
bne _08106AA0
ldr r0, [r3]
adds r0, 0x28
mov r1, sp
ldrb r1, [r1, 0x4]
strb r1, [r0]
ldr r0, [r3]
adds r0, 0x2B
strb r7, [r0]
ldr r0, [r3]
adds r0, 0x2D
mov r2, r8
strb r2, [r0]
movs r0, 0
b _08106AE8
.align 2, 0
_08106A98: .4byte gDexCategories
_08106A9C: .4byte gUnknown_203ACF0
_08106AA0:
adds r0, r4, 0
str r3, [sp, 0x14]
bl sub_8106810
ldr r3, [sp, 0x14]
cmp r0, 0x1
bne _08106AC4
adds r0, r4, 0
movs r1, 0
movs r2, 0x1
bl sub_8104AB0
lsls r0, 24
ldr r3, [sp, 0x14]
cmp r0, 0
beq _08106AC4
movs r0, 0x1
add r8, r0
_08106AC4:
adds r5, 0x1
cmp r5, r6
blt _08106A64
_08106ACA:
movs r1, 0x8
add r9, r1
adds r7, 0x1
ldr r2, [sp, 0x8]
cmp r7, r2
blt _08106A4E
_08106AD6:
ldr r0, [sp, 0x10]
adds r0, 0x8
str r0, [sp, 0x10]
ldr r1, [sp, 0x4]
adds r1, 0x1
str r1, [sp, 0x4]
cmp r1, 0x8
bls _08106A3A
movs r0, 0x1
_08106AE8:
add sp, 0x18
pop {r3-r5}
mov r8, r3
mov r9, r4
mov r10, r5
pop {r4-r7}
pop {r1}
bx r1
thumb_func_end sub_8106A20
thumb_func_start sub_8106AF8
sub_8106AF8: @ 8106AF8
push {r4-r6,lr}
lsls r0, 16
lsrs r5, r0, 16
movs r4, 0
movs r6, 0
cmp r6, r5
bge _08106B24
_08106B06:
ldr r0, _08106B30 @ =gUnknown_203ACF0
ldr r0, [r0]
adds r0, 0x28
ldrb r0, [r0]
lsls r1, r4, 24
lsrs r1, 24
bl sub_8106838
lsls r0, 24
cmp r0, 0
beq _08106B1E
adds r6, 0x1
_08106B1E:
adds r4, 0x1
cmp r4, r5
blt _08106B06
_08106B24:
adds r0, r6, 0x1
lsls r0, 24
lsrs r0, 24
pop {r4-r6}
pop {r1}
bx r1
.align 2, 0
_08106B30: .4byte gUnknown_203ACF0
thumb_func_end sub_8106AF8
thumb_func_start sub_8106B34
sub_8106B34: @ 8106B34
push {lr}
ldr r0, _08106B58 @ =gMain
ldrh r1, [r0, 0x2E]
movs r0, 0x8
ands r0, r1
cmp r0, 0
beq _08106B54
ldr r0, _08106B5C @ =gUnknown_203ACF0
ldr r0, [r0]
adds r0, 0x5A
ldrh r0, [r0]
movs r1, 0
movs r2, 0x7D
movs r3, 0xA
bl PlayCry2
_08106B54:
pop {r0}
bx r0
.align 2, 0
_08106B58: .4byte gMain
_08106B5C: .4byte gUnknown_203ACF0
thumb_func_end sub_8106B34
thumb_func_start sub_8106B60
sub_8106B60: @ 8106B60
push {r4,r5,lr}
lsls r0, 16
lsrs r5, r0, 16
adds r0, r5, 0
movs r1, 0x2
movs r2, 0x1
bl sub_8104AB0
adds r0, r5, 0
movs r1, 0x3
movs r2, 0x1
bl sub_8104AB0
bl IsNationalPokedexEnabled
cmp r0, 0
bne _08106BA4
adds r0, r5, 0
bl SpeciesToNationalPokedexNum
lsls r0, 16
lsrs r0, 16
cmp r0, 0x97
bls _08106BA4
ldr r0, _08106BA0 @ =sub_8106BD8
movs r1, 0
bl CreateTask
lsls r0, 24
lsrs r0, 24
b _08106BC6
.align 2, 0
_08106BA0: .4byte sub_8106BD8
_08106BA4:
bl sub_810250C
ldr r2, _08106BCC @ =gTasks
ldr r4, _08106BD0 @ =gUnknown_203ACF0
ldr r0, [r4]
ldrb r1, [r0]
lsls r0, r1, 2
adds r0, r1
lsls r0, 3
adds r0, r2
ldr r1, _08106BD4 @ =sub_8106BE8
str r1, [r0]
adds r0, r5, 0
bl sub_8106A20
ldr r0, [r4]
ldrb r0, [r0]
_08106BC6:
pop {r4,r5}
pop {r1}
bx r1
.align 2, 0
_08106BCC: .4byte gTasks
_08106BD0: .4byte gUnknown_203ACF0
_08106BD4: .4byte sub_8106BE8
thumb_func_end sub_8106B60
thumb_func_start sub_8106BD8
sub_8106BD8: @ 8106BD8
push {lr}
lsls r0, 24
lsrs r0, 24
bl DestroyTask
pop {r0}
bx r0
thumb_func_end sub_8106BD8
thumb_func_start sub_8106BE8
sub_8106BE8: @ 8106BE8
push {r4,r5,lr}
sub sp, 0x8
lsls r0, 24
lsrs r5, r0, 24
ldr r1, _08106C08 @ =gUnknown_203ACF0
ldr r0, [r1]
ldrb r0, [r0, 0x1]
adds r4, r1, 0
cmp r0, 0xB
bls _08106BFE
b _08106E6A
_08106BFE:
lsls r0, 2
ldr r1, _08106C0C @ =_08106C10
adds r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_08106C08: .4byte gUnknown_203ACF0
_08106C0C: .4byte _08106C10
.align 2, 0
_08106C10:
.4byte _08106C40
.4byte _08106C62
.4byte _08106C84
.4byte _08106C98
.4byte _08106CD4
.4byte _08106D1C
.4byte _08106D4C
.4byte _08106D9E
.4byte _08106DBA
.4byte _08106DCC
.4byte _08106DDE
.4byte _08106E58
_08106C40:
ldr r0, [r4]
adds r0, 0x28
ldrb r0, [r0]
bl sub_810699C
ldr r0, [r4]
adds r2, r0, 0
adds r2, 0x2B
adds r0, 0x29
ldrb r1, [r0]
ldrb r0, [r2]
cmp r0, r1
bcs _08106C5C
strb r1, [r2]
_08106C5C:
ldr r1, [r4]
movs r0, 0x3
b _08106E68
_08106C62:
bl sub_8106014
bl sub_8104E90
ldr r0, _08106C7C @ =gMain
movs r1, 0x87
lsls r1, 3
adds r0, r1
movs r1, 0
strb r1, [r0]
ldr r0, _08106C80 @ =gUnknown_203ACF0
ldr r1, [r0]
b _08106E66
.align 2, 0
_08106C7C: .4byte gMain
_08106C80: .4byte gUnknown_203ACF0
_08106C84:
bl sub_8102798
lsls r0, 24
cmp r0, 0
bne _08106C90
b _08106E6A
_08106C90:
adds r0, r5, 0
bl DestroyTask
b _08106E6A
_08106C98:
movs r0, 0x1
bl sub_8104F0C
movs r0, 0
bl PutWindowTilemap
movs r0, 0x1
bl PutWindowTilemap
movs r0, 0x3
bl CopyBgTilemapBufferToVram
movs r0, 0x2
bl CopyBgTilemapBufferToVram
movs r0, 0x1
bl CopyBgTilemapBufferToVram
movs r0, 0
bl CopyBgTilemapBufferToVram
movs r0, 0xFF
bl sub_8105058
ldr r0, _08106CD0 @ =gUnknown_203ACF0
ldr r1, [r0]
movs r0, 0x4
b _08106E68
.align 2, 0
_08106CD0: .4byte gUnknown_203ACF0
_08106CD4:
ldr r2, _08106D10 @ =gPaletteFade
ldrb r1, [r2, 0x8]
movs r0, 0x7F
ands r0, r1
strb r0, [r2, 0x8]
movs r0, 0x1
negs r0, r0
ldr r1, _08106D14 @ =0x0000ffff
str r1, [sp]
movs r1, 0
movs r2, 0x10
movs r3, 0
bl BeginNormalPaletteFade
movs r0, 0x3
bl ShowBg
movs r0, 0x2
bl ShowBg
movs r0, 0x1
bl ShowBg
movs r0, 0
bl ShowBg
ldr r0, _08106D18 @ =gUnknown_203ACF0
ldr r1, [r0]
movs r0, 0x5
b _08106E68
.align 2, 0
_08106D10: .4byte gPaletteFade
_08106D14: .4byte 0x0000ffff
_08106D18: .4byte gUnknown_203ACF0
_08106D1C:
ldr r1, _08106D40 @ =gTasks
lsls r0, r5, 2
adds r0, r5
lsls r0, 3
adds r0, r1
movs r1, 0x1E
strh r1, [r0, 0x8]
ldr r0, _08106D44 @ =gUnknown_84524C4
movs r1, 0
bl ListMenuAddCursorObjectInternal
ldr r2, _08106D48 @ =gUnknown_203ACF0
ldr r1, [r2]
adds r1, 0x61
strb r0, [r1]
ldr r1, [r2]
movs r0, 0x6
b _08106E68
.align 2, 0
_08106D40: .4byte gTasks
_08106D44: .4byte gUnknown_84524C4
_08106D48: .4byte gUnknown_203ACF0
_08106D4C:
ldr r0, [r4]
adds r0, 0x2D
ldrb r0, [r0]
bl sub_8105058
ldr r2, [r4]
adds r0, r2, 0
adds r0, 0x61
ldrb r0, [r0]
adds r1, r2, 0
adds r1, 0x2D
ldrb r1, [r1]
adds r2, 0x2C
ldrb r2, [r2]
bl sub_8105178
ldr r1, _08106D88 @ =gTasks
lsls r0, r5, 2
adds r0, r5
lsls r0, 3
adds r1, r0, r1
ldrh r2, [r1, 0x8]
movs r3, 0x8
ldrsh r0, [r1, r3]
cmp r0, 0
beq _08106D8C
subs r0, r2, 0x1
strh r0, [r1, 0x8]
b _08106E6A
.align 2, 0
_08106D88: .4byte gTasks
_08106D8C:
ldr r0, [r4]
adds r0, 0x61
ldrb r0, [r0]
movs r1, 0
bl ListMenuRemoveCursorObject
ldr r1, [r4]
movs r0, 0x7
b _08106E68
_08106D9E:
ldr r2, [r4]
adds r0, r2, 0
adds r0, 0x2D
ldrb r1, [r0]
lsls r1, 1
subs r0, 0x15
adds r0, r1
ldrh r0, [r0]
adds r1, r2, 0
adds r1, 0x5A
strh r0, [r1]
movs r0, 0x8
strb r0, [r2, 0x1]
b _08106E6A
_08106DBA:
movs r0, 0x1
bl sub_8105E1C
ldr r0, _08106DC8 @ =gUnknown_203ACF0
ldr r1, [r0]
movs r0, 0x9
b _08106E68
.align 2, 0
_08106DC8: .4byte gUnknown_203ACF0
_08106DCC:
ldr r0, [r4]
movs r1, 0
strb r1, [r0, 0x2]
ldr r0, [r4]
strb r1, [r0, 0x3]
ldr r1, [r4]
ldrb r0, [r1, 0x1]
adds r0, 0x1
strb r0, [r1, 0x1]
_08106DDE:
ldr r1, [r4]
ldrb r0, [r1, 0x3]
cmp r0, 0x5
bhi _08106E10
ldrb r0, [r1, 0x2]
cmp r0, 0
beq _08106E0A
ldrb r1, [r1, 0x3]
movs r0, 0
bl sub_8105594
movs r0, 0
bl CopyBgTilemapBufferToVram
ldr r1, [r4]
movs r0, 0x4
strb r0, [r1, 0x2]
ldr r1, [r4]
ldrb r0, [r1, 0x3]
adds r0, 0x1
strb r0, [r1, 0x3]
b _08106E6A
_08106E0A:
subs r0, 0x1
strb r0, [r1, 0x2]
b _08106E6A
_08106E10:
movs r0, 0x1E
str r0, [sp]
movs r0, 0x10
str r0, [sp, 0x4]
movs r0, 0
movs r1, 0
movs r2, 0
movs r3, 0x2
bl FillBgTilemapBufferRect_Palette0
movs r0, 0x3
bl CopyBgTilemapBufferToVram
movs r0, 0x2
bl CopyBgTilemapBufferToVram
movs r0, 0x1
bl CopyBgTilemapBufferToVram
movs r0, 0
bl CopyBgTilemapBufferToVram
ldr r0, [r4]
adds r0, 0x5A
ldrh r0, [r0]
movs r1, 0
movs r2, 0x7D
movs r3, 0xA
bl PlayCry2
ldr r1, [r4]
movs r0, 0
strb r0, [r1, 0x2]
ldr r1, [r4]
movs r0, 0xB
b _08106E68
_08106E58:
ldr r0, _08106E74 @ =gMain
ldrh r1, [r0, 0x2E]
movs r0, 0x3
ands r0, r1
cmp r0, 0
beq _08106E6A
ldr r1, [r4]
_08106E66:
movs r0, 0x2
_08106E68:
strb r0, [r1, 0x1]
_08106E6A:
add sp, 0x8
pop {r4,r5}
pop {r0}
bx r0
.align 2, 0
_08106E74: .4byte gMain
thumb_func_end sub_8106BE8
thumb_func_start sub_8106E78
sub_8106E78: @ 8106E78
push {r4,lr}
sub sp, 0x8
adds r4, r0, 0
cmp r1, 0x1
beq _08106E8E
cmp r1, 0x1
bgt _08106EA0
cmp r1, 0
bne _08106EA0
movs r1, 0x8
b _08106EAE
_08106E8E:
movs r0, 0x2
adds r1, r4, 0
movs r2, 0
bl GetStringWidth
movs r1, 0xF0
subs r1, r0
lsrs r1, 1
b _08106EAE
_08106EA0:
movs r0, 0x2
adds r1, r4, 0
movs r2, 0
bl GetStringWidth
movs r1, 0xE8
subs r1, r0
_08106EAE:
lsls r3, r1, 24
lsrs r3, 24
movs r0, 0x2
str r0, [sp]
movs r0, 0x4
str r0, [sp, 0x4]
movs r0, 0
movs r1, 0x2
adds r2, r4, 0
bl sub_81047C8
add sp, 0x8
pop {r4}
pop {r0}
bx r0
thumb_func_end sub_8106E78
.align 2, 0 @ Don't pad with nop.