mirror of
https://github.com/pret/pokefirered.git
synced 2026-05-15 08:41:01 -05:00
3121 lines
50 KiB
ArmAsm
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.
|