pokefirered/asm/pokedex_screen.s
2019-07-07 01:46:06 +08:00

9016 lines
148 KiB
ArmAsm

.include "asm/macros.inc"
.include "constants/constants.inc"
.syntax unified
.text
thumb_func_start sub_81024C0
sub_81024C0: @ 81024C0
push {lr}
bl LoadOam
bl ProcessSpriteCopyRequests
bl TransferPlttBuffer
pop {r0}
bx r0
thumb_func_end sub_81024C0
thumb_func_start sub_81024D4
sub_81024D4: @ 81024D4
push {lr}
ldr r0, _08102500 @ =gPaletteFade
ldrb r1, [r0, 0x7]
movs r0, 0x80
ands r0, r1
cmp r0, 0
beq _081024EC
bl IsDma3ManagerBusyWithBgCopy
lsls r0, 24
cmp r0, 0
beq _08102504
_081024EC:
bl RunTasks
bl RunTextPrinters
bl AnimateSprites
bl BuildOamBuffer
b _08102508
.align 2, 0
_08102500: .4byte gPaletteFade
_08102504:
bl UpdatePaletteFade
_08102508:
pop {r0}
bx r0
thumb_func_end sub_81024D4
thumb_func_start sub_810250C
sub_810250C: @ 810250C
push {r4-r6,lr}
mov r6, r8
push {r6}
sub sp, 0xC
bl sub_806E25C
lsls r0, 24
lsrs r6, r0, 24
bl m4aSoundVSyncOff
movs r0, 0
bl SetVBlankCallback
bl ResetPaletteFade
bl ResetSpriteData
bl ResetTasks
bl ScanlineEffect_Stop
movs r0, 0x1
bl ResetBgsAndClearDma3BusyFlags
ldr r1, _08102598 @ =gUnknown_8451EBC
movs r0, 0
movs r2, 0x4
bl InitBgsFromTemplates
movs r4, 0x80
lsls r4, 4
adds r0, r4, 0
bl Alloc
adds r1, r0, 0
movs r0, 0x3
bl SetBgTilemapBuffer
adds r0, r4, 0
bl Alloc
adds r1, r0, 0
movs r0, 0x2
bl SetBgTilemapBuffer
adds r0, r4, 0
bl Alloc
adds r1, r0, 0
movs r0, 0x1
bl SetBgTilemapBuffer
adds r0, r4, 0
bl Alloc
adds r1, r0, 0
movs r0, 0
bl SetBgTilemapBuffer
cmp r6, 0
beq _081025A0
ldr r1, _0810259C @ =gUnknown_84403AC
movs r0, 0
str r0, [sp]
movs r0, 0x3
adds r2, r4, 0
movs r3, 0
bl DecompressAndLoadBgGfxUsingHeap
b _081025AE
.align 2, 0
_08102598: .4byte gUnknown_8451EBC
_0810259C: .4byte gUnknown_84403AC
_081025A0:
ldr r1, _081026A4 @ =gUnknown_8440274
str r6, [sp]
movs r0, 0x3
adds r2, r4, 0
movs r3, 0
bl DecompressAndLoadBgGfxUsingHeap
_081025AE:
ldr r0, _081026A8 @ =gUnknown_8451ECC
bl InitWindows
bl DeactivateAllTextPrinters
bl m4aSoundVSyncOn
ldr r0, _081026AC @ =sub_81024C0
bl SetVBlankCallback
movs r0, 0x1
bl EnableInterrupts
ldr r0, _081026B0 @ =sub_810287C
movs r1, 0
bl CreateTask
adds r4, r0, 0
lsls r4, 24
lsrs r4, 24
ldr r5, _081026B4 @ =gUnknown_203ACF0
movs r0, 0x70
bl Alloc
str r0, [r5]
ldr r1, _081026B8 @ =gUnknown_8451EE4
movs r2, 0x70
bl memcpy
ldr r0, [r5]
strb r4, [r0]
movs r0, 0xC1
lsls r0, 4
bl Alloc
ldr r1, [r5]
str r0, [r1, 0x44]
movs r0, 0
movs r1, 0x1
bl sub_8104BBC
ldr r1, [r5]
adds r1, 0x6A
strh r0, [r1]
movs r0, 0x1
movs r1, 0x1
bl sub_8104BBC
ldr r1, [r5]
adds r1, 0x6C
strh r0, [r1]
movs r0, 0
movs r1, 0
bl sub_8104BBC
ldr r1, [r5]
adds r1, 0x66
strh r0, [r1]
movs r0, 0x1
movs r1, 0
bl sub_8104BBC
ldr r1, [r5]
adds r1, 0x68
strh r0, [r1]
movs r0, 0x80
bl sub_8072474
movs r0, 0
movs r1, 0
movs r2, 0
bl ChangeBgX
movs r0, 0
movs r1, 0
movs r2, 0
bl ChangeBgY
movs r0, 0x1
movs r1, 0
movs r2, 0
bl ChangeBgX
movs r0, 0x1
movs r1, 0
movs r2, 0
bl ChangeBgY
movs r0, 0x2
movs r1, 0
movs r2, 0
bl ChangeBgX
movs r0, 0x2
movs r1, 0
movs r2, 0
bl ChangeBgY
movs r0, 0x3
movs r1, 0
movs r2, 0
bl ChangeBgX
movs r0, 0x3
movs r1, 0
movs r2, 0
bl ChangeBgY
ldr r2, _081026BC @ =gPaletteFade
ldrb r0, [r2, 0x8]
movs r1, 0x80
orrs r0, r1
strb r0, [r2, 0x8]
cmp r6, 0
beq _081026C4
ldr r0, _081026C0 @ =gUnknown_84406E0
movs r2, 0x80
lsls r2, 2
movs r1, 0
bl LoadPalette
b _081026D0
.align 2, 0
_081026A4: .4byte gUnknown_8440274
_081026A8: .4byte gUnknown_8451ECC
_081026AC: .4byte sub_81024C0
_081026B0: .4byte sub_810287C
_081026B4: .4byte gUnknown_203ACF0
_081026B8: .4byte gUnknown_8451EE4
_081026BC: .4byte gPaletteFade
_081026C0: .4byte gUnknown_84406E0
_081026C4:
ldr r0, _08102758 @ =gUnknown_84404C8
movs r2, 0x80
lsls r2, 2
movs r1, 0
bl LoadPalette
_081026D0:
movs r4, 0x20
str r4, [sp]
str r4, [sp, 0x4]
movs r0, 0
str r0, [sp, 0x8]
movs r0, 0x3
movs r1, 0x1
movs r2, 0
movs r3, 0
bl FillBgTilemapBufferRect
str r4, [sp]
str r4, [sp, 0x4]
movs r5, 0x11
str r5, [sp, 0x8]
movs r0, 0x2
movs r1, 0
movs r2, 0
movs r3, 0
bl FillBgTilemapBufferRect
str r4, [sp]
str r4, [sp, 0x4]
str r5, [sp, 0x8]
movs r0, 0x1
movs r1, 0
movs r2, 0
movs r3, 0
bl FillBgTilemapBufferRect
str r4, [sp]
movs r0, 0x2
mov r8, r0
str r0, [sp, 0x4]
movs r6, 0xF
str r6, [sp, 0x8]
movs r0, 0
movs r1, 0x3
movs r2, 0
movs r3, 0
bl FillBgTilemapBufferRect
str r4, [sp]
movs r0, 0x10
str r0, [sp, 0x4]
str r5, [sp, 0x8]
movs r0, 0
movs r1, 0
movs r2, 0
movs r3, 0x2
bl FillBgTilemapBufferRect
str r4, [sp]
mov r0, r8
str r0, [sp, 0x4]
str r6, [sp, 0x8]
movs r0, 0
movs r1, 0x3
movs r2, 0
movs r3, 0x12
bl FillBgTilemapBufferRect
add sp, 0xC
pop {r3}
mov r8, r3
pop {r4-r6}
pop {r0}
bx r0
.align 2, 0
_08102758: .4byte gUnknown_84404C8
thumb_func_end sub_810250C
thumb_func_start sub_810275C
sub_810275C: @ 810275C
push {lr}
bl sub_810250C
movs r1, 0xC0
lsls r1, 7
movs r0, 0
bl ClearGpuRegBits
movs r0, 0x50
movs r1, 0
bl SetGpuReg
movs r0, 0x52
movs r1, 0
bl SetGpuReg
movs r0, 0x54
movs r1, 0
bl SetGpuReg
ldr r0, _08102794 @ =sub_81024D4
bl SetMainCallback2
movs r0, 0x4
bl HelpSystem_SetSomeVariable2
pop {r0}
bx r0
.align 2, 0
_08102794: .4byte sub_81024D4
thumb_func_end sub_810275C
thumb_func_start sub_8102798
sub_8102798: @ 8102798
push {r4,lr}
sub sp, 0x4
ldr r0, _081027B4 @ =gMain
movs r1, 0x87
lsls r1, 3
adds r4, r0, r1
ldrb r1, [r4]
cmp r1, 0x1
beq _081027D8
cmp r1, 0x1
bgt _081027B8
cmp r1, 0
beq _081027BE
b _0810284A
.align 2, 0
_081027B4: .4byte gMain
_081027B8:
cmp r1, 0x2
beq _081027F2
b _0810284A
_081027BE:
movs r0, 0x1
negs r0, r0
str r1, [sp]
movs r1, 0
movs r2, 0
movs r3, 0x10
bl BeginNormalPaletteFade
ldrb r0, [r4]
adds r0, 0x1
_081027D2:
strb r0, [r4]
_081027D4:
movs r0, 0
b _0810284C
_081027D8:
ldr r0, _081027E8 @ =gPaletteFade
ldrb r1, [r0, 0x7]
movs r0, 0x80
ands r0, r1
cmp r0, 0
bne _081027EC
movs r0, 0x2
b _081027D2
.align 2, 0
_081027E8: .4byte gPaletteFade
_081027EC:
bl UpdatePaletteFade
b _081027D4
_081027F2:
ldr r4, _08102854 @ =gUnknown_203ACF0
ldr r0, [r4]
ldr r0, [r0, 0x44]
cmp r0, 0
beq _08102800
bl Free
_08102800:
ldr r0, [r4]
cmp r0, 0
beq _0810280A
bl Free
_0810280A:
bl FreeAllWindowBuffers
movs r0, 0
bl GetBgTilemapBuffer
cmp r0, 0
beq _0810281C
bl Free
_0810281C:
movs r0, 0x1
bl GetBgTilemapBuffer
cmp r0, 0
beq _0810282A
bl Free
_0810282A:
movs r0, 0x2
bl GetBgTilemapBuffer
cmp r0, 0
beq _08102838
bl Free
_08102838:
movs r0, 0x3
bl GetBgTilemapBuffer
cmp r0, 0
beq _08102846
bl Free
_08102846:
bl sub_807249C
_0810284A:
movs r0, 0x1
_0810284C:
add sp, 0x4
pop {r4}
pop {r1}
bx r1
.align 2, 0
_08102854: .4byte gUnknown_203ACF0
thumb_func_end sub_8102798
thumb_func_start sub_8102858
sub_8102858: @ 8102858
push {lr}
bl sub_8102798
lsls r0, 24
cmp r0, 0
beq _08102874
movs r1, 0xC0
lsls r1, 7
movs r0, 0
bl SetGpuRegBits
ldr r0, _08102878 @ =sub_80568A8
bl SetMainCallback2
_08102874:
pop {r0}
bx r0
.align 2, 0
_08102878: .4byte sub_80568A8
thumb_func_end sub_8102858
thumb_func_start sub_810287C
sub_810287C: @ 810287C
push {r4,r5,lr}
sub sp, 0x8
lsls r0, 24
lsrs r5, r0, 24
ldr r1, _0810289C @ =gUnknown_203ACF0
ldr r0, [r1]
ldrb r0, [r0, 0x1]
adds r4, r1, 0
cmp r0, 0x9
bls _08102892
b _08102C18
_08102892:
lsls r0, 2
ldr r1, _081028A0 @ =_081028A4
adds r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_0810289C: .4byte gUnknown_203ACF0
_081028A0: .4byte _081028A4
.align 2, 0
_081028A4:
.4byte _081028CC
.4byte _081028FC
.4byte _08102930
.4byte _08102940
.4byte _08102964
.4byte _081029D0
.4byte _08102A14
.4byte _08102B24
.4byte _08102B94
.4byte _08102BD8
_081028CC:
ldr r1, [r4]
movs r0, 0
str r0, [r1, 0x8]
movs r4, 0
_081028D4:
lsls r0, r4, 24
lsrs r0, 24
bl sub_81068A0
ldr r1, _081028F8 @ =gUnknown_203ACF0
ldr r2, [r1]
lsls r0, 24
lsrs r0, 24
lsls r0, r4
ldr r1, [r2, 0x8]
orrs r1, r0
str r1, [r2, 0x8]
adds r4, 0x1
cmp r4, 0x8
ble _081028D4
movs r0, 0x2
strb r0, [r2, 0x1]
b _08102C18
.align 2, 0
_081028F8: .4byte gUnknown_203ACF0
_081028FC:
ldr r0, [r4]
adds r0, 0x60
ldrb r0, [r0]
bl RemoveScrollIndicatorArrowPair
ldr r0, [r4]
adds r0, 0x14
bl sub_81047B0
ldr r0, [r4]
adds r0, 0x15
bl sub_81047B0
ldr r0, [r4]
adds r0, 0x16
bl sub_81047B0
ldr r0, _0810292C @ =sub_8102858
bl SetMainCallback2
adds r0, r5, 0
bl DestroyTask
b _08102C18
.align 2, 0
_0810292C: .4byte sub_8102858
_08102930:
bl sub_8102C28
ldr r0, _0810293C @ =gUnknown_203ACF0
ldr r1, [r0]
movs r0, 0x3
b _08102C16
.align 2, 0
_0810293C: .4byte gUnknown_203ACF0
_08102940:
movs r0, 0x3
bl CopyBgTilemapBufferToVram
movs r0, 0x2
bl CopyBgTilemapBufferToVram
movs r0, 0x1
bl CopyBgTilemapBufferToVram
movs r0, 0
bl CopyBgTilemapBufferToVram
ldr r0, _08102960 @ =gUnknown_203ACF0
ldr r1, [r0]
movs r0, 0x4
b _08102C16
.align 2, 0
_08102960: .4byte gUnknown_203ACF0
_08102964:
movs r0, 0x3
bl ShowBg
movs r0, 0x2
bl ShowBg
movs r0, 0x1
bl ShowBg
movs r0, 0
bl ShowBg
ldr r2, _081029A4 @ =gPaletteFade
ldrb r1, [r2, 0x8]
movs r0, 0x80
ands r0, r1
cmp r0, 0
beq _081029AC
movs r0, 0x7F
ands r0, r1
strb r0, [r2, 0x8]
movs r0, 0x1
negs r0, r0
ldr r1, _081029A8 @ =0x0000ffff
str r1, [sp]
movs r1, 0
movs r2, 0
movs r3, 0
bl BeginNormalPaletteFade
b _081029BC
.align 2, 0
_081029A4: .4byte gPaletteFade
_081029A8: .4byte 0x0000ffff
_081029AC:
ldr r0, _081029C4 @ =0xffff7fff
ldr r1, _081029C8 @ =0x0000ffff
str r1, [sp]
movs r1, 0
movs r2, 0x10
movs r3, 0
bl BeginNormalPaletteFade
_081029BC:
ldr r0, _081029CC @ =gUnknown_203ACF0
ldr r1, [r0]
movs r0, 0x5
b _08102C16
.align 2, 0
_081029C4: .4byte 0xffff7fff
_081029C8: .4byte 0x0000ffff
_081029CC: .4byte gUnknown_203ACF0
_081029D0:
ldr r4, _081029EC @ =gUnknown_203ACF0
ldr r1, [r4]
ldrb r0, [r1, 0x17]
adds r1, 0x62
movs r2, 0
bl ListMenuGetScrollAndRow
bl sub_806E25C
cmp r0, 0
beq _081029F4
ldr r0, _081029F0 @ =gUnknown_84520E4
b _081029F6
.align 2, 0
_081029EC: .4byte gUnknown_203ACF0
_081029F0: .4byte gUnknown_84520E4
_081029F4:
ldr r0, _08102A0C @ =gUnknown_84520D4
_081029F6:
ldr r1, [r4]
adds r1, 0x62
bl AddScrollIndicatorArrowPair
ldr r1, [r4]
adds r1, 0x60
strb r0, [r1]
ldr r0, _08102A10 @ =gUnknown_203ACF0
ldr r1, [r0]
movs r0, 0x6
b _08102C16
.align 2, 0
_08102A0C: .4byte gUnknown_84520D4
_08102A10: .4byte gUnknown_203ACF0
_08102A14:
ldr r0, [r4]
ldrb r0, [r0, 0x17]
bl ListMenu_ProcessInput
ldr r1, [r4]
str r0, [r1, 0xC]
ldrb r0, [r1, 0x17]
adds r1, 0x62
movs r2, 0
bl ListMenuGetScrollAndRow
ldr r0, _08102A4C @ =gMain
ldrh r1, [r0, 0x2E]
movs r3, 0x1
movs r0, 0x1
ands r0, r1
cmp r0, 0
beq _08102B14
ldr r2, [r4]
ldr r1, [r2, 0xC]
cmp r1, 0xD
bhi _08102A50
cmp r1, 0xA
bcs _08102ADC
cmp r1, 0x8
bls _08102A62
b _08102AA4
.align 2, 0
_08102A4C: .4byte gMain
_08102A50:
cmp r1, 0xE
beq _08102AA4
movs r0, 0x2
negs r0, r0
cmp r1, r0
beq _08102A5E
b _08102C18
_08102A5E:
strb r3, [r2, 0x1]
b _08102C18
_08102A62:
lsls r0, r1, 24
lsrs r0, 24
bl sub_81068A0
lsls r0, 24
cmp r0, 0
bne _08102A72
b _08102C18
_08102A72:
ldr r0, [r4]
adds r0, 0x60
ldrb r0, [r0]
bl RemoveScrollIndicatorArrowPair
ldr r0, [r4]
ldr r1, [r0, 0xC]
adds r0, 0x28
strb r1, [r0]
ldr r0, _08102A9C @ =0xffff7fff
ldr r1, _08102AA0 @ =0x0000ffff
str r1, [sp]
movs r1, 0
movs r2, 0
movs r3, 0x10
bl BeginNormalPaletteFade
ldr r1, [r4]
movs r0, 0x7
b _08102C16
.align 2, 0
_08102A9C: .4byte 0xffff7fff
_08102AA0: .4byte 0x0000ffff
_08102AA4:
ldr r4, _08102AD0 @ =gUnknown_203ACF0
ldr r0, [r4]
adds r0, 0x60
ldrb r0, [r0]
bl RemoveScrollIndicatorArrowPair
ldr r1, [r4]
ldr r0, [r1, 0xC]
subs r0, 0x9
adds r1, 0x42
strb r0, [r1]
ldr r0, _08102AD4 @ =0xffff7fff
ldr r1, _08102AD8 @ =0x0000ffff
str r1, [sp]
movs r1, 0
movs r2, 0
movs r3, 0x10
bl BeginNormalPaletteFade
ldr r1, [r4]
movs r0, 0x9
b _08102C16
.align 2, 0
_08102AD0: .4byte gUnknown_203ACF0
_08102AD4: .4byte 0xffff7fff
_08102AD8: .4byte 0x0000ffff
_08102ADC:
adds r0, r2, 0
adds r0, 0x60
ldrb r0, [r0]
bl RemoveScrollIndicatorArrowPair
ldr r0, [r4]
ldr r1, [r0, 0xC]
subs r1, 0x9
adds r0, 0x42
movs r2, 0
strb r1, [r0]
ldr r0, [r4]
strh r2, [r0, 0x3A]
strh r2, [r0, 0x38]
ldr r0, _08102B0C @ =0xffff7fff
ldr r1, _08102B10 @ =0x0000ffff
str r1, [sp]
movs r1, 0
movs r3, 0x10
bl BeginNormalPaletteFade
ldr r1, [r4]
movs r0, 0x8
b _08102C16
.align 2, 0
_08102B0C: .4byte 0xffff7fff
_08102B10: .4byte 0x0000ffff
_08102B14:
movs r0, 0x2
ands r0, r1
cmp r0, 0
bne _08102B1E
b _08102C18
_08102B1E:
ldr r0, [r4]
strb r3, [r0, 0x1]
b _08102C18
_08102B24:
ldr r2, [r4]
ldrb r0, [r2, 0x17]
adds r1, r2, 0
adds r1, 0x12
adds r2, 0x10
bl DestroyListMenuTask
movs r0, 0x20
str r0, [sp]
movs r0, 0x14
str r0, [sp, 0x4]
movs r0, 0x1
movs r1, 0
movs r2, 0
movs r3, 0
bl FillBgTilemapBufferRect_Palette0
movs r0, 0x1
bl CopyBgTilemapBufferToVram
ldr r0, [r4]
adds r0, 0x14
bl sub_81047B0
ldr r0, [r4]
adds r0, 0x15
bl sub_81047B0
ldr r0, [r4]
adds r0, 0x16
bl sub_81047B0
ldr r0, [r4]
adds r0, 0x2B
movs r2, 0
strb r2, [r0]
ldr r0, [r4]
adds r0, 0x2D
strb r2, [r0]
ldr r0, [r4]
adds r0, 0x2F
strb r2, [r0]
ldr r1, _08102B8C @ =gTasks
lsls r0, r5, 2
adds r0, r5
lsls r0, 3
adds r0, r1
ldr r1, _08102B90 @ =sub_8103AC8
str r1, [r0]
ldr r0, [r4]
strb r2, [r0, 0x1]
b _08102C18
.align 2, 0
_08102B8C: .4byte gTasks
_08102B90: .4byte sub_8103AC8
_08102B94:
ldr r2, [r4]
ldrb r0, [r2, 0x17]
adds r1, r2, 0
adds r1, 0x12
adds r2, 0x10
bl DestroyListMenuTask
movs r0, 0x1
bl HideBg
ldr r0, [r4]
adds r0, 0x14
bl sub_81047B0
ldr r0, [r4]
adds r0, 0x15
bl sub_81047B0
ldr r0, [r4]
adds r0, 0x16
bl sub_81047B0
ldr r1, _08102BD0 @ =gTasks
lsls r0, r5, 2
adds r0, r5
lsls r0, 3
adds r0, r1
ldr r1, _08102BD4 @ =sub_8103238
b _08102C10
.align 2, 0
_08102BD0: .4byte gTasks
_08102BD4: .4byte sub_8103238
_08102BD8:
ldr r2, [r4]
ldrb r0, [r2, 0x17]
adds r1, r2, 0
adds r1, 0x12
adds r2, 0x10
bl DestroyListMenuTask
movs r0, 0x1
bl HideBg
ldr r0, [r4]
adds r0, 0x14
bl sub_81047B0
ldr r0, [r4]
adds r0, 0x15
bl sub_81047B0
ldr r0, [r4]
adds r0, 0x16
bl sub_81047B0
ldr r1, _08102C20 @ =gTasks
lsls r0, r5, 2
adds r0, r5
lsls r0, 3
adds r0, r1
ldr r1, _08102C24 @ =sub_8102F80
_08102C10:
str r1, [r0]
ldr r1, [r4]
movs r0, 0
_08102C16:
strb r0, [r1, 0x1]
_08102C18:
add sp, 0x8
pop {r4,r5}
pop {r0}
bx r0
.align 2, 0
_08102C20: .4byte gTasks
_08102C24: .4byte sub_8102F80
thumb_func_end sub_810287C
thumb_func_start sub_8102C28
sub_8102C28: @ 8102C28
push {r4-r7,lr}
mov r7, r9
mov r6, r8
push {r6,r7}
sub sp, 0x24
movs r5, 0x1E
str r5, [sp]
movs r4, 0x14
str r4, [sp, 0x4]
movs r0, 0
mov r9, r0
str r0, [sp, 0x8]
movs r0, 0x3
movs r1, 0xE
movs r2, 0
movs r3, 0
bl FillBgTilemapBufferRect
str r5, [sp]
str r4, [sp, 0x4]
movs r6, 0x11
str r6, [sp, 0x8]
movs r0, 0x2
movs r1, 0
movs r2, 0
movs r3, 0
bl FillBgTilemapBufferRect
str r5, [sp]
str r4, [sp, 0x4]
str r6, [sp, 0x8]
movs r0, 0x1
movs r1, 0
movs r2, 0
movs r3, 0
bl FillBgTilemapBufferRect
ldr r0, _08102DA4 @ =gUnknown_8451F54
bl AddWindow
ldr r7, _08102DA8 @ =gUnknown_203ACF0
ldr r1, [r7]
strb r0, [r1, 0x14]
ldr r0, _08102DAC @ =gUnknown_8451F5C
bl AddWindow
ldr r1, [r7]
strb r0, [r1, 0x15]
ldr r0, _08102DB0 @ =gUnknown_8451F64
bl AddWindow
ldr r1, [r7]
strb r0, [r1, 0x16]
bl sub_806E25C
adds r5, r0, 0
cmp r5, 0
bne _08102C9E
b _08102DC8
_08102C9E:
add r1, sp, 0xC
ldr r0, _08102DB4 @ =gUnknown_84520BC
ldm r0!, {r2-r4}
stm r1!, {r2-r4}
ldm r0!, {r2-r4}
stm r1!, {r2-r4}
add r2, sp, 0xC
ldr r0, [r7]
ldrb r1, [r0, 0x14]
strb r1, [r2, 0x10]
ldrh r1, [r0, 0x12]
ldrh r2, [r0, 0x10]
add r0, sp, 0xC
bl ListMenuInit
ldr r1, [r7]
strb r0, [r1, 0x17]
ldr r0, [r7]
ldrb r0, [r0, 0x16]
movs r1, 0
bl FillWindowPixelBuffer
ldr r0, [r7]
ldrb r0, [r0, 0x16]
ldr r2, _08102DB8 @ =gUnknown_8415DC4
movs r5, 0x2
str r5, [sp]
mov r1, r9
str r1, [sp, 0x4]
movs r1, 0
movs r3, 0
bl sub_81047C8
ldr r0, [r7]
ldrb r0, [r0, 0x16]
ldr r2, _08102DBC @ =gUnknown_8415DD1
mov r8, r2
movs r4, 0xD
str r4, [sp]
mov r3, r9
str r3, [sp, 0x4]
movs r1, 0
movs r3, 0x8
bl sub_81047C8
ldr r1, [r7]
ldrb r0, [r1, 0x16]
adds r1, 0x66
ldrh r2, [r1]
str r4, [sp]
str r5, [sp, 0x4]
movs r1, 0
movs r3, 0x34
bl sub_810491C
ldr r0, [r7]
ldrb r0, [r0, 0x16]
ldr r6, _08102DC0 @ =gUnknown_8415DD7
movs r4, 0x18
str r4, [sp]
mov r1, r9
str r1, [sp, 0x4]
movs r1, 0
adds r2, r6, 0
movs r3, 0x8
bl sub_81047C8
ldr r1, [r7]
ldrb r0, [r1, 0x16]
adds r1, 0x6A
ldrh r2, [r1]
str r4, [sp]
str r5, [sp, 0x4]
movs r1, 0
movs r3, 0x34
bl sub_810491C
ldr r0, [r7]
ldrb r0, [r0, 0x16]
ldr r2, _08102DC4 @ =gUnknown_8415DCA
movs r1, 0x25
str r1, [sp]
mov r3, r9
str r3, [sp, 0x4]
movs r1, 0
movs r3, 0
bl sub_81047C8
ldr r0, [r7]
ldrb r0, [r0, 0x16]
movs r4, 0x30
str r4, [sp]
mov r1, r9
str r1, [sp, 0x4]
movs r1, 0
mov r2, r8
movs r3, 0x8
bl sub_81047C8
ldr r1, [r7]
ldrb r0, [r1, 0x16]
adds r1, 0x68
ldrh r2, [r1]
str r4, [sp]
str r5, [sp, 0x4]
movs r1, 0
movs r3, 0x34
bl sub_810491C
ldr r0, [r7]
ldrb r0, [r0, 0x16]
movs r4, 0x3B
str r4, [sp]
mov r2, r9
str r2, [sp, 0x4]
movs r1, 0
adds r2, r6, 0
movs r3, 0x8
bl sub_81047C8
ldr r1, [r7]
ldrb r0, [r1, 0x16]
adds r1, 0x6C
ldrh r2, [r1]
str r4, [sp]
str r5, [sp, 0x4]
movs r1, 0
movs r3, 0x34
bl sub_810491C
b _08102E4A
.align 2, 0
_08102DA4: .4byte gUnknown_8451F54
_08102DA8: .4byte gUnknown_203ACF0
_08102DAC: .4byte gUnknown_8451F5C
_08102DB0: .4byte gUnknown_8451F64
_08102DB4: .4byte gUnknown_84520BC
_08102DB8: .4byte gUnknown_8415DC4
_08102DBC: .4byte gUnknown_8415DD1
_08102DC0: .4byte gUnknown_8415DD7
_08102DC4: .4byte gUnknown_8415DCA
_08102DC8:
add r1, sp, 0xC
ldr r0, _08102EA8 @ =gUnknown_8452004
ldm r0!, {r2-r4}
stm r1!, {r2-r4}
ldm r0!, {r2-r4}
stm r1!, {r2-r4}
add r2, sp, 0xC
ldr r0, [r7]
ldrb r1, [r0, 0x14]
strb r1, [r2, 0x10]
ldrh r1, [r0, 0x12]
ldrh r2, [r0, 0x10]
add r0, sp, 0xC
bl ListMenuInit
ldr r1, [r7]
strb r0, [r1, 0x17]
ldr r0, [r7]
ldrb r0, [r0, 0x16]
movs r1, 0
bl FillWindowPixelBuffer
ldr r0, [r7]
ldrb r0, [r0, 0x16]
ldr r2, _08102EAC @ =gUnknown_8415DC4
movs r1, 0x9
str r1, [sp]
str r5, [sp, 0x4]
movs r1, 0x1
movs r3, 0
bl sub_81047C8
ldr r1, [r7]
ldrb r0, [r1, 0x16]
adds r1, 0x66
ldrh r2, [r1]
movs r1, 0x15
str r1, [sp]
movs r4, 0x2
str r4, [sp, 0x4]
movs r1, 0x1
movs r3, 0x20
bl sub_810491C
ldr r0, [r7]
ldrb r0, [r0, 0x16]
ldr r2, _08102EB0 @ =gUnknown_8415DCA
movs r1, 0x25
str r1, [sp]
str r5, [sp, 0x4]
movs r1, 0x1
movs r3, 0
bl sub_81047C8
ldr r1, [r7]
ldrb r0, [r1, 0x16]
adds r1, 0x68
ldrh r2, [r1]
movs r1, 0x31
str r1, [sp]
str r4, [sp, 0x4]
movs r1, 0x1
movs r3, 0x20
bl sub_810491C
_08102E4A:
movs r0, 0
movs r1, 0xFF
bl FillWindowPixelBuffer
ldr r0, _08102EB4 @ =gUnknown_8415D9C
movs r1, 0x1
bl sub_8106E78
movs r0, 0x1
movs r1, 0xFF
bl FillWindowPixelBuffer
ldr r0, _08102EB8 @ =gUnknown_8415DB8
bl sub_8104C2C
movs r0, 0
bl PutWindowTilemap
movs r0, 0
movs r1, 0x2
bl CopyWindowToVram
movs r0, 0x1
bl PutWindowTilemap
movs r0, 0x1
movs r1, 0x2
bl CopyWindowToVram
ldr r4, _08102EBC @ =gUnknown_203ACF0
ldr r0, [r4]
ldrb r0, [r0, 0x16]
bl PutWindowTilemap
ldr r0, [r4]
ldrb r0, [r0, 0x16]
movs r1, 0x2
bl CopyWindowToVram
add sp, 0x24
pop {r3,r4}
mov r8, r3
mov r9, r4
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
_08102EA8: .4byte gUnknown_8452004
_08102EAC: .4byte gUnknown_8415DC4
_08102EB0: .4byte gUnknown_8415DCA
_08102EB4: .4byte gUnknown_8415D9C
_08102EB8: .4byte gUnknown_8415DB8
_08102EBC: .4byte gUnknown_203ACF0
thumb_func_end sub_8102C28
thumb_func_start sub_8102EC0
sub_8102EC0: @ 8102EC0
push {r4,r5,lr}
adds r5, r0, 0
lsls r1, 24
cmp r1, 0
bne _08102ED0
movs r0, 0x5
bl PlaySE
_08102ED0:
movs r0, 0x2
negs r0, r0
cmp r5, r0
bne _08102F00
ldr r0, _08102EF4 @ =gUnknown_203ACF0
ldr r0, [r0]
ldrb r0, [r0, 0x15]
ldr r1, _08102EF8 @ =gUnknown_8440EF0
movs r2, 0
movs r3, 0
bl CopyToWindowPixelBuffer
ldr r0, _08102EFC @ =gUnknown_8443460
movs r1, 0x10
movs r2, 0x20
bl LoadPalette
b _08102F24
.align 2, 0
_08102EF4: .4byte gUnknown_203ACF0
_08102EF8: .4byte gUnknown_8440EF0
_08102EFC: .4byte gUnknown_8443460
_08102F00:
ldr r0, _08102F40 @ =gUnknown_203ACF0
ldr r0, [r0]
ldrb r0, [r0, 0x15]
ldr r4, _08102F44 @ =gUnknown_84520F4
lsls r5, 3
adds r1, r5, r4
ldr r1, [r1]
movs r2, 0
movs r3, 0
bl CopyToWindowPixelBuffer
adds r4, 0x4
adds r5, r4
ldr r0, [r5]
movs r1, 0x10
movs r2, 0x20
bl LoadPalette
_08102F24:
ldr r4, _08102F40 @ =gUnknown_203ACF0
ldr r0, [r4]
ldrb r0, [r0, 0x15]
bl PutWindowTilemap
ldr r0, [r4]
ldrb r0, [r0, 0x15]
movs r1, 0x2
bl CopyWindowToVram
pop {r4,r5}
pop {r0}
bx r0
.align 2, 0
_08102F40: .4byte gUnknown_203ACF0
_08102F44: .4byte gUnknown_84520F4
thumb_func_end sub_8102EC0
thumb_func_start sub_8102F48
sub_8102F48: @ 8102F48
push {lr}
adds r2, r1, 0
cmp r2, 0x8
bhi _08102F60
ldr r0, _08102F6C @ =gUnknown_203ACF0
ldr r0, [r0]
movs r1, 0x1
lsls r1, r2
ldr r0, [r0, 0x8]
ands r0, r1
cmp r0, 0
beq _08102F70
_08102F60:
movs r0, 0x1
movs r1, 0
movs r2, 0x3
bl ListMenuOverrideSetColors
b _08102F7A
.align 2, 0
_08102F6C: .4byte gUnknown_203ACF0
_08102F70:
movs r0, 0xA
movs r1, 0
movs r2, 0xB
bl ListMenuOverrideSetColors
_08102F7A:
pop {r0}
bx r0
thumb_func_end sub_8102F48
thumb_func_start sub_8102F80
sub_8102F80: @ 8102F80
push {r4,r5,lr}
sub sp, 0x8
lsls r0, 24
lsrs r5, r0, 24
ldr r1, _08102FA0 @ =gUnknown_203ACF0
ldr r0, [r1]
ldrb r0, [r0, 0x1]
adds r4, r1, 0
cmp r0, 0x7
bls _08102F96
b _0810316C
_08102F96:
lsls r0, 2
ldr r1, _08102FA4 @ =_08102FA8
adds r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_08102FA0: .4byte gUnknown_203ACF0
_08102FA4: .4byte _08102FA8
.align 2, 0
_08102FA8:
.4byte _08102FC8
.4byte _08102FF8
.4byte _08103028
.4byte _08103038
.4byte _08103050
.4byte _0810307C
.4byte _08103098
.4byte _0810312C
_08102FC8:
movs r0, 0x10
movs r1, 0
bl sub_8107D38
movs r0, 0x20
movs r1, 0x1
bl sub_8107D38
ldr r4, _08102FF4 @ =gUnknown_203ACF0
ldr r0, [r4]
adds r0, 0x42
ldrb r0, [r0]
bl sub_8103518
ldr r2, [r4]
adds r1, r2, 0
adds r1, 0x48
strh r0, [r1]
movs r0, 0x2
strb r0, [r2, 0x1]
b _0810316C
.align 2, 0
_08102FF4: .4byte gUnknown_203ACF0
_08102FF8:
ldr r0, [r4]
adds r0, 0x42
ldrb r0, [r0]
bl sub_8103988
movs r0, 0x1
bl HideBg
ldr r0, [r4]
adds r0, 0x40
bl sub_81047B0
ldr r1, _08103020 @ =gTasks
lsls r0, r5, 2
adds r0, r5
lsls r0, 3
adds r0, r1
ldr r1, _08103024 @ =sub_810287C
b _08103164
.align 2, 0
_08103020: .4byte gTasks
_08103024: .4byte sub_810287C
_08103028:
bl sub_810317C
ldr r0, _08103034 @ =gUnknown_203ACF0
ldr r1, [r0]
movs r0, 0x3
b _0810316A
.align 2, 0
_08103034: .4byte gUnknown_203ACF0
_08103038:
movs r0, 0x3
bl CopyBgTilemapBufferToVram
movs r0, 0x1
bl CopyBgTilemapBufferToVram
ldr r0, _0810304C @ =gUnknown_203ACF0
ldr r1, [r0]
movs r0, 0x4
b _0810316A
.align 2, 0
_0810304C: .4byte gUnknown_203ACF0
_08103050:
movs r0, 0x1
bl ShowBg
ldr r0, _08103070 @ =0xffff7fff
ldr r1, _08103074 @ =0x0000ffff
str r1, [sp]
movs r1, 0
movs r2, 0x10
movs r3, 0
bl BeginNormalPaletteFade
ldr r0, _08103078 @ =gUnknown_203ACF0
ldr r1, [r0]
movs r0, 0x5
b _0810316A
.align 2, 0
_08103070: .4byte 0xffff7fff
_08103074: .4byte 0x0000ffff
_08103078: .4byte gUnknown_203ACF0
_0810307C:
ldr r1, [r4]
ldrb r0, [r1, 0x17]
adds r1, 0x62
movs r2, 0
bl ListMenuGetScrollAndRow
bl sub_81039F0
ldr r1, [r4]
adds r1, 0x60
strb r0, [r1]
ldr r1, [r4]
movs r0, 0x6
b _0810316A
_08103098:
ldr r0, [r4]
adds r0, 0x41
ldrb r0, [r0]
bl ListMenu_ProcessInput
ldr r1, [r4]
str r0, [r1, 0x30]
ldrb r0, [r1, 0x17]
adds r1, 0x62
movs r2, 0
bl ListMenuGetScrollAndRow
ldr r0, _081030F0 @ =gMain
ldrh r1, [r0, 0x2E]
movs r3, 0x1
adds r0, r3, 0
ands r0, r1
cmp r0, 0
beq _081030FC
ldr r1, [r4]
ldr r2, [r1, 0x30]
lsrs r0, r2, 16
ands r0, r3
cmp r0, 0
beq _0810316C
adds r0, r1, 0
adds r0, 0x5A
strh r2, [r0]
adds r0, 0x6
ldrb r0, [r0]
bl RemoveScrollIndicatorArrowPair
ldr r0, _081030F4 @ =0xffff7fff
ldr r1, _081030F8 @ =0x0000ffff
str r1, [sp]
movs r1, 0
movs r2, 0
movs r3, 0x10
bl BeginNormalPaletteFade
ldr r1, [r4]
movs r0, 0x7
b _0810316A
.align 2, 0
_081030F0: .4byte gMain
_081030F4: .4byte 0xffff7fff
_081030F8: .4byte 0x0000ffff
_081030FC:
movs r0, 0x2
ands r0, r1
cmp r0, 0
beq _0810316C
ldr r0, [r4]
adds r0, 0x60
ldrb r0, [r0]
bl RemoveScrollIndicatorArrowPair
ldr r0, _08103124 @ =0xffff7fff
ldr r1, _08103128 @ =0x0000ffff
str r1, [sp]
movs r1, 0
movs r2, 0
movs r3, 0x10
bl BeginNormalPaletteFade
ldr r1, [r4]
movs r0, 0x1
b _0810316A
.align 2, 0
_08103124: .4byte 0xffff7fff
_08103128: .4byte 0x0000ffff
_0810312C:
ldr r0, [r4]
adds r0, 0x42
ldrb r0, [r0]
bl sub_8103988
movs r0, 0x20
str r0, [sp]
movs r0, 0x14
str r0, [sp, 0x4]
movs r0, 0x1
movs r1, 0
movs r2, 0
movs r3, 0
bl FillBgTilemapBufferRect_Palette0
movs r0, 0x1
bl CopyBgTilemapBufferToVram
ldr r0, [r4]
adds r0, 0x40
bl sub_81047B0
ldr r1, _08103174 @ =gTasks
lsls r0, r5, 2
adds r0, r5
lsls r0, 3
adds r0, r1
ldr r1, _08103178 @ =sub_81042EC
_08103164:
str r1, [r0]
ldr r1, [r4]
movs r0, 0
_0810316A:
strb r0, [r1, 0x1]
_0810316C:
add sp, 0x8
pop {r4,r5}
pop {r0}
bx r0
.align 2, 0
_08103174: .4byte gTasks
_08103178: .4byte sub_81042EC
thumb_func_end sub_8102F80
thumb_func_start sub_810317C
sub_810317C: @ 810317C
push {r4,r5,lr}
sub sp, 0x24
movs r0, 0x1E
str r0, [sp]
movs r0, 0x14
str r0, [sp, 0x4]
movs r0, 0
str r0, [sp, 0x8]
movs r0, 0x3
movs r1, 0xE
movs r2, 0
movs r3, 0
bl FillBgTilemapBufferRect
movs r0, 0x20
str r0, [sp]
str r0, [sp, 0x4]
movs r0, 0x11
str r0, [sp, 0x8]
movs r0, 0x1
movs r1, 0
movs r2, 0
movs r3, 0
bl FillBgTilemapBufferRect
ldr r0, _08103224 @ =gUnknown_845216C
bl AddWindow
ldr r2, _08103228 @ =gUnknown_203ACF0
ldr r1, [r2]
adds r1, 0x40
strb r0, [r1]
add r1, sp, 0xC
ldr r0, _0810322C @ =gUnknown_8452174
ldm r0!, {r3-r5}
stm r1!, {r3-r5}
ldm r0!, {r3-r5}
stm r1!, {r3-r5}
ldr r2, [r2]
ldr r0, [r2, 0x44]
str r0, [sp, 0xC]
add r1, sp, 0xC
adds r0, r2, 0
adds r0, 0x40
ldrb r0, [r0]
strb r0, [r1, 0x10]
adds r0, r2, 0
adds r0, 0x48
ldrh r0, [r0]
strh r0, [r1, 0xC]
adds r0, r2, 0
adds r0, 0x42
ldrb r1, [r0]
add r0, sp, 0xC
bl sub_8103924
movs r0, 0
movs r1, 0xFF
bl FillWindowPixelBuffer
ldr r0, _08103230 @ =gUnknown_8415F3D
movs r1, 0x1
bl sub_8106E78
movs r0, 0x1
movs r1, 0xFF
bl FillWindowPixelBuffer
ldr r0, _08103234 @ =gText_PickOKExit
bl sub_8104C2C
movs r0, 0
movs r1, 0x2
bl CopyWindowToVram
movs r0, 0x1
movs r1, 0x2
bl CopyWindowToVram
add sp, 0x24
pop {r4,r5}
pop {r0}
bx r0
.align 2, 0
_08103224: .4byte gUnknown_845216C
_08103228: .4byte gUnknown_203ACF0
_0810322C: .4byte gUnknown_8452174
_08103230: .4byte gUnknown_8415F3D
_08103234: .4byte gText_PickOKExit
thumb_func_end sub_810317C
thumb_func_start sub_8103238
sub_8103238: @ 8103238
push {r4,r5,lr}
sub sp, 0x8
lsls r0, 24
lsrs r5, r0, 24
ldr r1, _08103258 @ =gUnknown_203ACF0
ldr r0, [r1]
ldrb r0, [r0, 0x1]
adds r4, r1, 0
cmp r0, 0x7
bls _0810324E
b _0810344C
_0810324E:
lsls r0, 2
ldr r1, _0810325C @ =_08103260
adds r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_08103258: .4byte gUnknown_203ACF0
_0810325C: .4byte _08103260
.align 2, 0
_08103260:
.4byte _08103280
.4byte _081032B0
.4byte _081032E8
.4byte _081032FC
.4byte _08103318
.4byte _08103344
.4byte _08103362
.4byte _08103404
_08103280:
movs r0, 0x10
movs r1, 0
bl sub_8107D38
movs r0, 0x20
movs r1, 0x1
bl sub_8107D38
ldr r4, _081032AC @ =gUnknown_203ACF0
ldr r0, [r4]
adds r0, 0x42
ldrb r0, [r0]
bl sub_8103518
ldr r2, [r4]
adds r1, r2, 0
adds r1, 0x48
strh r0, [r1]
movs r0, 0x2
strb r0, [r2, 0x1]
b _0810344C
.align 2, 0
_081032AC: .4byte gUnknown_203ACF0
_081032B0:
ldr r0, [r4]
adds r0, 0x42
ldrb r0, [r0]
bl sub_8103988
movs r0, 0x1
bl HideBg
ldr r0, [r4]
adds r0, 0x40
bl sub_81047B0
ldr r1, _081032E0 @ =gTasks
lsls r0, r5, 2
adds r0, r5
lsls r0, 3
adds r0, r1
ldr r1, _081032E4 @ =sub_810287C
str r1, [r0]
ldr r1, [r4]
movs r0, 0
strb r0, [r1, 0x1]
b _0810344C
.align 2, 0
_081032E0: .4byte gTasks
_081032E4: .4byte sub_810287C
_081032E8:
bl sub_810345C
ldr r0, _081032F8 @ =gUnknown_203ACF0
ldr r1, [r0]
movs r0, 0x3
strb r0, [r1, 0x1]
b _0810344C
.align 2, 0
_081032F8: .4byte gUnknown_203ACF0
_081032FC:
movs r0, 0x3
bl CopyBgTilemapBufferToVram
movs r0, 0x1
bl CopyBgTilemapBufferToVram
ldr r0, _08103314 @ =gUnknown_203ACF0
ldr r1, [r0]
movs r0, 0x4
strb r0, [r1, 0x1]
b _0810344C
.align 2, 0
_08103314: .4byte gUnknown_203ACF0
_08103318:
movs r0, 0x1
bl ShowBg
ldr r0, _08103338 @ =0xffff7fff
ldr r1, _0810333C @ =0x0000ffff
str r1, [sp]
movs r1, 0
movs r2, 0x10
movs r3, 0
bl BeginNormalPaletteFade
ldr r0, _08103340 @ =gUnknown_203ACF0
ldr r1, [r0]
movs r0, 0x5
strb r0, [r1, 0x1]
b _0810344C
.align 2, 0
_08103338: .4byte 0xffff7fff
_0810333C: .4byte 0x0000ffff
_08103340: .4byte gUnknown_203ACF0
_08103344:
ldr r1, [r4]
ldrb r0, [r1, 0x17]
adds r1, 0x62
movs r2, 0
bl ListMenuGetScrollAndRow
bl sub_81039F0
ldr r1, [r4]
adds r1, 0x60
strb r0, [r1]
ldr r1, [r4]
movs r0, 0x6
strb r0, [r1, 0x1]
b _0810344C
_08103362:
ldr r0, [r4]
adds r0, 0x41
ldrb r0, [r0]
bl ListMenu_ProcessInput
ldr r1, [r4]
str r0, [r1, 0x30]
ldrb r0, [r1, 0x17]
adds r1, 0x62
movs r2, 0
bl ListMenuGetScrollAndRow
ldr r0, _081033C4 @ =gMain
ldrh r1, [r0, 0x2E]
movs r2, 0x1
adds r0, r2, 0
ands r0, r1
cmp r0, 0
beq _081033D0
ldr r0, [r4]
ldr r1, [r0, 0x30]
lsrs r0, r1, 16
ands r0, r2
cmp r0, 0
beq _0810344C
lsls r0, r1, 16
lsrs r0, 16
bl sub_8106A20
lsls r0, 24
cmp r0, 0
bne _0810344C
ldr r0, [r4]
adds r0, 0x60
ldrb r0, [r0]
bl RemoveScrollIndicatorArrowPair
ldr r0, _081033C8 @ =0xffff7fff
ldr r1, _081033CC @ =0x0000ffff
str r1, [sp]
movs r1, 0
movs r2, 0
movs r3, 0x10
bl BeginNormalPaletteFade
ldr r1, [r4]
movs r0, 0x7
strb r0, [r1, 0x1]
b _0810344C
.align 2, 0
_081033C4: .4byte gMain
_081033C8: .4byte 0xffff7fff
_081033CC: .4byte 0x0000ffff
_081033D0:
movs r0, 0x2
ands r0, r1
cmp r0, 0
beq _0810344C
ldr r0, [r4]
adds r0, 0x60
ldrb r0, [r0]
bl RemoveScrollIndicatorArrowPair
ldr r0, _081033FC @ =0xffff7fff
ldr r1, _08103400 @ =0x0000ffff
str r1, [sp]
movs r1, 0
movs r2, 0
movs r3, 0x10
bl BeginNormalPaletteFade
ldr r1, [r4]
movs r0, 0x1
strb r0, [r1, 0x1]
b _0810344C
.align 2, 0
_081033FC: .4byte 0xffff7fff
_08103400: .4byte 0x0000ffff
_08103404:
ldr r0, [r4]
adds r0, 0x42
ldrb r0, [r0]
bl sub_8103988
movs r0, 0x20
str r0, [sp]
movs r0, 0x14
str r0, [sp, 0x4]
movs r0, 0x1
movs r1, 0
movs r2, 0
movs r3, 0
bl FillBgTilemapBufferRect_Palette0
movs r0, 0x1
bl CopyBgTilemapBufferToVram
ldr r0, [r4]
adds r0, 0x40
bl sub_81047B0
ldr r0, [r4]
adds r0, 0x2F
movs r2, 0
movs r1, 0x1
strb r1, [r0]
ldr r1, _08103454 @ =gTasks
lsls r0, r5, 2
adds r0, r5
lsls r0, 3
adds r0, r1
ldr r1, _08103458 @ =sub_8103AC8
str r1, [r0]
ldr r0, [r4]
strb r2, [r0, 0x1]
_0810344C:
add sp, 0x8
pop {r4,r5}
pop {r0}
bx r0
.align 2, 0
_08103454: .4byte gTasks
_08103458: .4byte sub_8103AC8
thumb_func_end sub_8103238
thumb_func_start sub_810345C
sub_810345C: @ 810345C
push {r4,r5,lr}
sub sp, 0x24
movs r0, 0x1E
str r0, [sp]
movs r0, 0x14
str r0, [sp, 0x4]
movs r0, 0
str r0, [sp, 0x8]
movs r0, 0x3
movs r1, 0xE
movs r2, 0
movs r3, 0
bl FillBgTilemapBufferRect
movs r0, 0x20
str r0, [sp]
str r0, [sp, 0x4]
movs r0, 0x11
str r0, [sp, 0x8]
movs r0, 0x1
movs r1, 0
movs r2, 0
movs r3, 0
bl FillBgTilemapBufferRect
ldr r0, _08103504 @ =gUnknown_845216C
bl AddWindow
ldr r2, _08103508 @ =gUnknown_203ACF0
ldr r1, [r2]
adds r1, 0x40
strb r0, [r1]
add r1, sp, 0xC
ldr r0, _0810350C @ =gUnknown_8452174
ldm r0!, {r3-r5}
stm r1!, {r3-r5}
ldm r0!, {r3-r5}
stm r1!, {r3-r5}
ldr r2, [r2]
ldr r0, [r2, 0x44]
str r0, [sp, 0xC]
add r1, sp, 0xC
adds r0, r2, 0
adds r0, 0x40
ldrb r0, [r0]
strb r0, [r1, 0x10]
adds r0, r2, 0
adds r0, 0x48
ldrh r0, [r0]
strh r0, [r1, 0xC]
adds r0, r2, 0
adds r0, 0x42
ldrb r1, [r0]
add r0, sp, 0xC
bl sub_8103924
movs r0, 0
movs r1, 0xFF
bl FillWindowPixelBuffer
ldr r0, _08103510 @ =gUnknown_8415F4A
movs r1, 0x1
bl sub_8106E78
movs r0, 0x1
movs r1, 0xFF
bl FillWindowPixelBuffer
ldr r0, _08103514 @ =gText_PickOKExit
bl sub_8104C2C
movs r0, 0
movs r1, 0x2
bl CopyWindowToVram
movs r0, 0x1
movs r1, 0x2
bl CopyWindowToVram
add sp, 0x24
pop {r4,r5}
pop {r0}
bx r0
.align 2, 0
_08103504: .4byte gUnknown_845216C
_08103508: .4byte gUnknown_203ACF0
_0810350C: .4byte gUnknown_8452174
_08103510: .4byte gUnknown_8415F4A
_08103514: .4byte gText_PickOKExit
thumb_func_end sub_810345C
thumb_func_start sub_8103518
sub_8103518: @ 8103518
push {r4-r7,lr}
mov r7, r10
mov r6, r9
mov r5, r8
push {r5-r7}
sub sp, 0x4
lsls r0, 24
lsrs r4, r0, 24
bl sub_806E25C
movs r1, 0x97
str r1, [sp]
cmp r0, 0
beq _0810353A
movs r2, 0xC1
lsls r2, 1
str r2, [sp]
_0810353A:
movs r0, 0
mov r10, r0
cmp r4, 0x5
bhi _08103568
lsls r0, r4, 2
ldr r1, _0810354C @ =_08103550
adds r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_0810354C: .4byte _08103550
.align 2, 0
_08103550:
.4byte _08103568
.4byte _08103604
.4byte _0810369C
.4byte _0810373C
.4byte _081037D8
.4byte _08103874
_08103568:
movs r1, 0
mov r8, r1
_0810356C:
mov r4, r8
adds r4, 0x1
lsls r0, r4, 16
lsrs r5, r0, 16
adds r0, r5, 0
movs r1, 0
movs r2, 0
bl sub_8104AB0
lsls r0, 24
lsrs r7, r0, 24
adds r0, r5, 0
movs r1, 0x1
movs r2, 0
bl sub_8104AB0
lsls r0, 24
lsrs r6, r0, 24
mov r9, r4
cmp r7, 0
beq _081035C4
adds r0, r5, 0
bl NationalPokedexNumToSpecies
ldr r2, _081035BC @ =gUnknown_203ACF0
ldr r1, [r2]
ldr r2, [r1, 0x44]
mov r1, r8
lsls r3, r1, 3
adds r2, r3, r2
lsls r0, 16
lsrs r0, 16
movs r1, 0xB
muls r0, r1
ldr r1, _081035C0 @ =gSpeciesNames
adds r0, r1
str r0, [r2]
mov r10, r5
adds r4, r3, 0
b _081035D6
.align 2, 0
_081035BC: .4byte gUnknown_203ACF0
_081035C0: .4byte gSpeciesNames
_081035C4:
ldr r2, _081035FC @ =gUnknown_203ACF0
ldr r0, [r2]
ldr r1, [r0, 0x44]
mov r0, r8
lsls r2, r0, 3
adds r1, r2, r1
ldr r0, _08103600 @ =gUnknown_8415F66
str r0, [r1]
adds r4, r2, 0
_081035D6:
adds r0, r5, 0
bl NationalPokedexNumToSpecies
ldr r2, _081035FC @ =gUnknown_203ACF0
ldr r1, [r2]
ldr r3, [r1, 0x44]
adds r3, r4, r3
lsls r2, r6, 17
lsls r1, r7, 16
adds r2, r1
lsls r0, 16
lsrs r0, 16
adds r2, r0
str r2, [r3, 0x4]
mov r8, r9
mov r0, r8
cmp r0, 0x96
ble _0810356C
b _08103906
.align 2, 0
_081035FC: .4byte gUnknown_203ACF0
_08103600: .4byte gUnknown_8415F66
_08103604:
movs r1, 0
mov r8, r1
ldr r2, _08103690 @ =gUnknown_203ACF0
mov r9, r2
_0810360C:
ldr r1, _08103694 @ =gUnknown_8443FC0
mov r2, r8
lsls r0, r2, 1
adds r0, r1
ldrh r5, [r0]
ldr r0, [sp]
cmp r5, r0
bgt _08103682
adds r0, r5, 0
movs r1, 0
movs r2, 0
bl sub_8104AB0
lsls r0, 24
lsrs r7, r0, 24
adds r0, r5, 0
movs r1, 0x1
movs r2, 0
bl sub_8104AB0
lsls r0, 24
lsrs r6, r0, 24
cmp r7, 0
beq _08103682
adds r0, r5, 0
bl NationalPokedexNumToSpecies
mov r2, r9
ldr r1, [r2]
ldr r2, [r1, 0x44]
mov r1, r10
lsls r4, r1, 3
adds r2, r4, r2
lsls r0, 16
lsrs r0, 16
movs r1, 0xB
muls r0, r1
ldr r1, _08103698 @ =gSpeciesNames
adds r0, r1
str r0, [r2]
adds r0, r5, 0
bl NationalPokedexNumToSpecies
mov r2, r9
ldr r1, [r2]
ldr r1, [r1, 0x44]
adds r4, r1
lsls r2, r6, 17
lsls r1, r7, 16
adds r2, r1
lsls r0, 16
lsrs r0, 16
adds r2, r0
str r2, [r4, 0x4]
mov r0, r10
adds r0, 0x1
lsls r0, 16
lsrs r0, 16
mov r10, r0
_08103682:
movs r0, 0x1
add r8, r0
movs r0, 0xCD
lsls r0, 1
cmp r8, r0
ble _0810360C
b _08103906
.align 2, 0
_08103690: .4byte gUnknown_203ACF0
_08103694: .4byte gUnknown_8443FC0
_08103698: .4byte gSpeciesNames
_0810369C:
movs r1, 0
mov r8, r1
ldr r2, _08103730 @ =gUnknown_203ACF0
mov r9, r2
_081036A4:
ldr r1, _08103734 @ =gUnknown_84448FE
mov r2, r8
lsls r0, r2, 1
adds r0, r1
ldrh r0, [r0]
bl SpeciesToNationalPokedexNum
lsls r0, 16
lsrs r5, r0, 16
ldr r0, [sp]
cmp r5, r0
bgt _08103722
adds r0, r5, 0
movs r1, 0
movs r2, 0
bl sub_8104AB0
lsls r0, 24
lsrs r7, r0, 24
adds r0, r5, 0
movs r1, 0x1
movs r2, 0
bl sub_8104AB0
lsls r0, 24
lsrs r6, r0, 24
cmp r6, 0
beq _08103722
adds r0, r5, 0
bl NationalPokedexNumToSpecies
mov r2, r9
ldr r1, [r2]
ldr r2, [r1, 0x44]
mov r1, r10
lsls r4, r1, 3
adds r2, r4, r2
lsls r0, 16
lsrs r0, 16
movs r1, 0xB
muls r0, r1
ldr r1, _08103738 @ =gSpeciesNames
adds r0, r1
str r0, [r2]
adds r0, r5, 0
bl NationalPokedexNumToSpecies
mov r2, r9
ldr r1, [r2]
ldr r1, [r1, 0x44]
adds r4, r1
lsls r2, r6, 17
lsls r1, r7, 16
adds r2, r1
lsls r0, 16
lsrs r0, 16
adds r2, r0
str r2, [r4, 0x4]
mov r0, r10
adds r0, 0x1
lsls r0, 16
lsrs r0, 16
mov r10, r0
_08103722:
movs r0, 0x1
add r8, r0
movs r0, 0xCD
lsls r0, 1
cmp r8, r0
ble _081036A4
b _08103906
.align 2, 0
_08103730: .4byte gUnknown_203ACF0
_08103734: .4byte gUnknown_84448FE
_08103738: .4byte gSpeciesNames
_0810373C:
movs r1, 0
mov r8, r1
ldr r2, _081037C8 @ =gUnknown_203ACF0
mov r9, r2
_08103744:
ldr r1, _081037CC @ =gUnknown_84442F6
mov r2, r8
lsls r0, r2, 1
adds r0, r1
ldrh r5, [r0]
ldr r0, [sp]
cmp r5, r0
bgt _081037BA
adds r0, r5, 0
movs r1, 0
movs r2, 0
bl sub_8104AB0
lsls r0, 24
lsrs r7, r0, 24
adds r0, r5, 0
movs r1, 0x1
movs r2, 0
bl sub_8104AB0
lsls r0, 24
lsrs r6, r0, 24
cmp r6, 0
beq _081037BA
adds r0, r5, 0
bl NationalPokedexNumToSpecies
mov r2, r9
ldr r1, [r2]
ldr r2, [r1, 0x44]
mov r1, r10
lsls r4, r1, 3
adds r2, r4, r2
lsls r0, 16
lsrs r0, 16
movs r1, 0xB
muls r0, r1
ldr r1, _081037D0 @ =gSpeciesNames
adds r0, r1
str r0, [r2]
adds r0, r5, 0
bl NationalPokedexNumToSpecies
mov r2, r9
ldr r1, [r2]
ldr r1, [r1, 0x44]
adds r4, r1
lsls r2, r6, 17
lsls r1, r7, 16
adds r2, r1
lsls r0, 16
lsrs r0, 16
adds r2, r0
str r2, [r4, 0x4]
mov r0, r10
adds r0, 0x1
lsls r0, 16
lsrs r0, 16
mov r10, r0
_081037BA:
movs r0, 0x1
add r8, r0
ldr r0, _081037D4 @ =0x00000181
cmp r8, r0
ble _08103744
b _08103906
.align 2, 0
_081037C8: .4byte gUnknown_203ACF0
_081037CC: .4byte gUnknown_84442F6
_081037D0: .4byte gSpeciesNames
_081037D4: .4byte 0x00000181
_081037D8:
movs r1, 0
mov r8, r1
ldr r2, _08103864 @ =gUnknown_203ACF0
mov r9, r2
_081037E0:
ldr r1, _08103868 @ =gUnknown_84445FA
mov r2, r8
lsls r0, r2, 1
adds r0, r1
ldrh r5, [r0]
ldr r0, [sp]
cmp r5, r0
bgt _08103856
adds r0, r5, 0
movs r1, 0
movs r2, 0
bl sub_8104AB0
lsls r0, 24
lsrs r7, r0, 24
adds r0, r5, 0
movs r1, 0x1
movs r2, 0
bl sub_8104AB0
lsls r0, 24
lsrs r6, r0, 24
cmp r6, 0
beq _08103856
adds r0, r5, 0
bl NationalPokedexNumToSpecies
mov r2, r9
ldr r1, [r2]
ldr r2, [r1, 0x44]
mov r1, r10
lsls r4, r1, 3
adds r2, r4, r2
lsls r0, 16
lsrs r0, 16
movs r1, 0xB
muls r0, r1
ldr r1, _0810386C @ =gSpeciesNames
adds r0, r1
str r0, [r2]
adds r0, r5, 0
bl NationalPokedexNumToSpecies
mov r2, r9
ldr r1, [r2]
ldr r1, [r1, 0x44]
adds r4, r1
lsls r2, r6, 17
lsls r1, r7, 16
adds r2, r1
lsls r0, 16
lsrs r0, 16
adds r2, r0
str r2, [r4, 0x4]
mov r0, r10
adds r0, 0x1
lsls r0, 16
lsrs r0, 16
mov r10, r0
_08103856:
movs r0, 0x1
add r8, r0
ldr r0, _08103870 @ =0x00000181
cmp r8, r0
ble _081037E0
b _08103906
.align 2, 0
_08103864: .4byte gUnknown_203ACF0
_08103868: .4byte gUnknown_84445FA
_0810386C: .4byte gSpeciesNames
_08103870: .4byte 0x00000181
_08103874:
movs r1, 0
mov r8, r1
_08103878:
mov r4, r8
adds r4, 0x1
lsls r0, r4, 16
lsrs r5, r0, 16
adds r0, r5, 0
movs r1, 0
movs r2, 0
bl sub_8104AB0
lsls r0, 24
lsrs r7, r0, 24
adds r0, r5, 0
movs r1, 0x1
movs r2, 0
bl sub_8104AB0
lsls r0, 24
lsrs r6, r0, 24
mov r9, r4
cmp r7, 0
beq _081038D0
adds r0, r5, 0
bl NationalPokedexNumToSpecies
ldr r2, _081038C8 @ =gUnknown_203ACF0
ldr r1, [r2]
ldr r2, [r1, 0x44]
mov r1, r8
lsls r3, r1, 3
adds r2, r3, r2
lsls r0, 16
lsrs r0, 16
movs r1, 0xB
muls r0, r1
ldr r1, _081038CC @ =gSpeciesNames
adds r0, r1
str r0, [r2]
mov r10, r5
adds r4, r3, 0
b _081038E2
.align 2, 0
_081038C8: .4byte gUnknown_203ACF0
_081038CC: .4byte gSpeciesNames
_081038D0:
ldr r2, _08103918 @ =gUnknown_203ACF0
ldr r0, [r2]
ldr r1, [r0, 0x44]
mov r0, r8
lsls r2, r0, 3
adds r1, r2, r1
ldr r0, _0810391C @ =gUnknown_8415F66
str r0, [r1]
adds r4, r2, 0
_081038E2:
adds r0, r5, 0
bl NationalPokedexNumToSpecies
ldr r2, _08103918 @ =gUnknown_203ACF0
ldr r1, [r2]
ldr r3, [r1, 0x44]
adds r3, r4, r3
lsls r2, r6, 17
lsls r1, r7, 16
adds r2, r1
lsls r0, 16
lsrs r0, 16
adds r2, r0
str r2, [r3, 0x4]
mov r8, r9
ldr r0, _08103920 @ =0x00000181
cmp r8, r0
ble _08103878
_08103906:
mov r0, r10
add sp, 0x4
pop {r3-r5}
mov r8, r3
mov r9, r4
mov r10, r5
pop {r4-r7}
pop {r1}
bx r1
.align 2, 0
_08103918: .4byte gUnknown_203ACF0
_0810391C: .4byte gUnknown_8415F66
_08103920: .4byte 0x00000181
thumb_func_end sub_8103518
thumb_func_start sub_8103924
sub_8103924: @ 8103924
push {r4,r5,lr}
adds r5, r0, 0
lsls r1, 24
lsrs r1, 24
cmp r1, 0x4
bgt _08103936
cmp r1, 0x1
bge _08103950
b _0810393A
_08103936:
cmp r1, 0x5
beq _08103964
_0810393A:
ldr r1, _08103948 @ =gUnknown_845218C
ldr r4, _0810394C @ =gUnknown_203ACF0
ldr r0, [r4]
ldrh r2, [r0, 0x36]
ldrh r3, [r0, 0x34]
b _0810396E
.align 2, 0
_08103948: .4byte gUnknown_845218C
_0810394C: .4byte gUnknown_203ACF0
_08103950:
ldr r1, _0810395C @ =gUnknown_845218C
ldr r4, _08103960 @ =gUnknown_203ACF0
ldr r0, [r4]
ldrh r2, [r0, 0x3A]
ldrh r3, [r0, 0x38]
b _0810396E
.align 2, 0
_0810395C: .4byte gUnknown_845218C
_08103960: .4byte gUnknown_203ACF0
_08103964:
ldr r1, _08103980 @ =gUnknown_845218C
ldr r4, _08103984 @ =gUnknown_203ACF0
ldr r0, [r4]
ldrh r2, [r0, 0x3E]
ldrh r3, [r0, 0x3C]
_0810396E:
adds r0, r5, 0
bl ListMenuInitInRect
ldr r1, [r4]
adds r1, 0x41
strb r0, [r1]
pop {r4,r5}
pop {r0}
bx r0
.align 2, 0
_08103980: .4byte gUnknown_845218C
_08103984: .4byte gUnknown_203ACF0
thumb_func_end sub_8103924
thumb_func_start sub_8103988
sub_8103988: @ 8103988
push {lr}
lsls r0, 24
lsrs r0, 24
cmp r0, 0x4
bgt _08103998
cmp r0, 0x1
bge _081039B8
b _0810399C
_08103998:
cmp r0, 0x5
beq _081039D4
_0810399C:
ldr r0, _081039B4 @ =gUnknown_203ACF0
ldr r2, [r0]
adds r0, r2, 0
adds r0, 0x41
ldrb r0, [r0]
adds r1, r2, 0
adds r1, 0x36
adds r2, 0x34
bl DestroyListMenuTask
b _081039E8
.align 2, 0
_081039B4: .4byte gUnknown_203ACF0
_081039B8:
ldr r0, _081039D0 @ =gUnknown_203ACF0
ldr r2, [r0]
adds r0, r2, 0
adds r0, 0x41
ldrb r0, [r0]
adds r1, r2, 0
adds r1, 0x3A
adds r2, 0x38
bl DestroyListMenuTask
b _081039E8
.align 2, 0
_081039D0: .4byte gUnknown_203ACF0
_081039D4:
ldr r0, _081039EC @ =gUnknown_203ACF0
ldr r2, [r0]
adds r0, r2, 0
adds r0, 0x41
ldrb r0, [r0]
adds r1, r2, 0
adds r1, 0x3E
adds r2, 0x3C
bl DestroyListMenuTask
_081039E8:
pop {r0}
bx r0
.align 2, 0
_081039EC: .4byte gUnknown_203ACF0
thumb_func_end sub_8103988
thumb_func_start sub_81039F0
sub_81039F0: @ 81039F0
push {r4,lr}
sub sp, 0x10
mov r1, sp
ldr r0, _08103A18 @ =gUnknown_84521B4
ldm r0!, {r2-r4}
stm r1!, {r2-r4}
ldr r0, [r0]
str r0, [r1]
ldr r2, _08103A1C @ =gUnknown_203ACF0
ldr r0, [r2]
adds r0, 0x48
ldr r1, _08103A20 @ =gUnknown_8452174
ldrh r3, [r0]
ldrh r0, [r1, 0xE]
cmp r3, r0
bls _08103A24
mov r1, sp
subs r0, r3, r0
b _08103A28
.align 2, 0
_08103A18: .4byte gUnknown_84521B4
_08103A1C: .4byte gUnknown_203ACF0
_08103A20: .4byte gUnknown_8452174
_08103A24:
mov r1, sp
movs r0, 0
_08103A28:
strh r0, [r1, 0x8]
ldr r1, [r2]
adds r1, 0x62
mov r0, sp
bl AddScrollIndicatorArrowPair
lsls r0, 24
lsrs r0, 24
add sp, 0x10
pop {r4}
pop {r1}
bx r1
thumb_func_end sub_81039F0
thumb_func_start sub_8103A40
sub_8103A40: @ 8103A40
push {r4-r7,lr}
sub sp, 0x4
adds r4, r1, 0
lsls r2, 24
lsrs r6, r2, 24
lsls r0, r4, 16
lsrs r5, r0, 16
movs r0, 0x1
lsrs r4, 17
ands r4, r0
ldr r7, _08103AC0 @ =gUnknown_203ACF0
ldr r0, [r7]
adds r0, 0x40
ldrb r0, [r0]
str r6, [sp]
movs r1, 0
adds r2, r5, 0
movs r3, 0xC
bl sub_8104A34
cmp r4, 0
beq _08103AB6
ldr r0, [r7]
adds r0, 0x40
ldrb r0, [r0]
movs r1, 0
movs r2, 0x28
adds r3, r6, 0
bl BlitMoveInfoIcon
ldr r0, _08103AC4 @ =gBaseStats
lsls r4, r5, 3
subs r4, r5
lsls r4, 2
adds r4, r0
ldrb r5, [r4, 0x6]
ldr r0, [r7]
adds r0, 0x40
ldrb r0, [r0]
adds r1, r5, 0x1
lsls r1, 24
lsrs r1, 24
movs r2, 0x78
adds r3, r6, 0
bl BlitMoveInfoIcon
ldrb r1, [r4, 0x7]
cmp r5, r1
beq _08103AB6
ldr r0, [r7]
adds r0, 0x40
ldrb r0, [r0]
adds r1, 0x1
lsls r1, 24
lsrs r1, 24
movs r2, 0x98
adds r3, r6, 0
bl BlitMoveInfoIcon
_08103AB6:
add sp, 0x4
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
_08103AC0: .4byte gUnknown_203ACF0
_08103AC4: .4byte gBaseStats
thumb_func_end sub_8103A40
thumb_func_start sub_8103AC8
sub_8103AC8: @ 8103AC8
push {r4,r5,lr}
sub sp, 0x8
lsls r0, 24
lsrs r4, r0, 24
ldr r1, _08103AE8 @ =gUnknown_203ACF0
ldr r0, [r1]
ldrb r0, [r0, 0x1]
adds r5, r1, 0
cmp r0, 0x1A
bls _08103ADE
b _08104228
_08103ADE:
lsls r0, 2
ldr r1, _08103AEC @ =_08103AF0
adds r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_08103AE8: .4byte gUnknown_203ACF0
_08103AEC: .4byte _08103AF0
.align 2, 0
_08103AF0:
.4byte _08103B5C
.4byte _08103B98
.4byte _08103BF8
.4byte _08103C24
.4byte _08103C5C
.4byte _08103C84
.4byte _08103E6C
.4byte _08103E6C
.4byte _08103EA0
.4byte _08103ED4
.4byte _08103EA0
.4byte _08103EFC
.4byte _08103F20
.4byte _08103F42
.4byte _08103F54
.4byte _08103F68
.4byte _08103F7A
.4byte _08103FF0
.4byte _0810403A
.4byte _0810406C
.4byte _08104080
.4byte _081040E4
.4byte _081040F4
.4byte _08104118
.4byte _081041DE
.4byte _081041F0
.4byte _0810421C
_08103B5C:
movs r0, 0x3
bl HideBg
movs r0, 0x2
bl HideBg
movs r0, 0x1
bl HideBg
ldr r4, _08103B94 @ =gUnknown_203ACF0
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 _08103B8C
strb r1, [r2]
_08103B8C:
ldr r1, [r4]
movs r0, 0x2
b _08104226
.align 2, 0
_08103B94: .4byte gUnknown_203ACF0
_08103B98:
bl sub_8104E90
movs r0, 0x2
bl HideBg
movs r0, 0x1
bl HideBg
ldr r0, _08103BC8 @ =gUnknown_203ACF0
ldr r0, [r0]
adds r0, 0x2F
ldrb r0, [r0]
cmp r0, 0
beq _08103BB8
cmp r0, 0x1
beq _08103BD4
_08103BB8:
ldr r0, _08103BCC @ =gTasks
lsls r1, r4, 2
adds r1, r4
lsls r1, 3
adds r1, r0
ldr r0, _08103BD0 @ =sub_810287C
b _08103BE0
.align 2, 0
_08103BC8: .4byte gUnknown_203ACF0
_08103BCC: .4byte gTasks
_08103BD0: .4byte sub_810287C
_08103BD4:
ldr r0, _08103BEC @ =gTasks
lsls r1, r4, 2
adds r1, r4
lsls r1, 3
adds r1, r0
ldr r0, _08103BF0 @ =sub_8103238
_08103BE0:
str r0, [r1]
ldr r0, _08103BF4 @ =gUnknown_203ACF0
ldr r1, [r0]
movs r0, 0
b _08104226
.align 2, 0
_08103BEC: .4byte gTasks
_08103BF0: .4byte sub_8103238
_08103BF4: .4byte gUnknown_203ACF0
_08103BF8:
movs r0, 0
bl sub_8104F0C
movs r0, 0x3
bl CopyBgTilemapBufferToVram
movs r0, 0x2
bl CopyBgTilemapBufferToVram
movs r0, 0x1
bl CopyBgTilemapBufferToVram
movs r0, 0xFF
bl sub_8105058
ldr r0, _08103C20 @ =gUnknown_203ACF0
ldr r1, [r0]
movs r0, 0x3
b _08104226
.align 2, 0
_08103C20: .4byte gUnknown_203ACF0
_08103C24:
ldr r0, _08103C50 @ =0xffff7fff
ldr r1, _08103C54 @ =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
ldr r0, _08103C58 @ =gUnknown_203ACF0
ldr r1, [r0]
movs r0, 0x4
b _08104226
.align 2, 0
_08103C50: .4byte 0xffff7fff
_08103C54: .4byte 0x0000ffff
_08103C58: .4byte gUnknown_203ACF0
_08103C5C:
bl sub_8104234
ldr r4, _08103C7C @ =gUnknown_203ACF0
ldr r1, [r4]
adds r1, 0x60
strb r0, [r1]
ldr r0, _08103C80 @ =gUnknown_84524C4
movs r1, 0
bl ListMenuAddCursorObjectInternal
ldr r1, [r4]
adds r1, 0x61
strb r0, [r1]
ldr r1, [r4]
movs r0, 0x5
b _08104226
.align 2, 0
_08103C7C: .4byte gUnknown_203ACF0
_08103C80: .4byte gUnknown_84524C4
_08103C84:
ldr r0, [r5]
adds r0, 0x2D
ldrb r0, [r0]
bl sub_8105058
ldr r2, [r5]
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 r2, [r5]
adds r0, r2, 0
adds r0, 0x2B
ldrb r0, [r0]
adds r1, r2, 0
adds r1, 0x62
strh r0, [r1]
movs r4, 0
ldr r0, _08103CF8 @ =gMain
ldrh r1, [r0, 0x2E]
movs r0, 0x1
ands r0, r1
cmp r0, 0
beq _08103CFC
adds r0, r2, 0
adds r0, 0x2D
ldrb r1, [r0]
lsls r1, 1
subs r0, 0x15
adds r0, r1
ldrh r0, [r0]
movs r1, 0
movs r2, 0x1
bl sub_8104AB0
lsls r0, 24
cmp r0, 0
beq _08103CFC
ldr r0, [r5]
adds r0, 0x60
ldrb r0, [r0]
bl RemoveScrollIndicatorArrowPair
ldr r0, [r5]
adds r0, 0x61
ldrb r0, [r0]
movs r1, 0
bl ListMenuRemoveCursorObject
ldr r1, [r5]
movs r0, 0xC
b _08104226
.align 2, 0
_08103CF8: .4byte gMain
_08103CFC:
ldr r2, _08103D28 @ =gMain
ldrh r1, [r2, 0x2C]
movs r0, 0x80
lsls r0, 1
ands r0, r1
cmp r0, 0
bne _08103D6E
ldrh r1, [r2, 0x30]
movs r0, 0x20
ands r0, r1
cmp r0, 0
beq _08103D32
ldr r0, _08103D2C @ =gUnknown_203ACF0
ldr r0, [r0]
adds r1, r0, 0
adds r1, 0x2D
ldrb r0, [r1]
cmp r0, 0
beq _08103D30
subs r0, 0x1
strb r0, [r1]
b _08103D60
.align 2, 0
_08103D28: .4byte gMain
_08103D2C: .4byte gUnknown_203ACF0
_08103D30:
movs r4, 0x1
_08103D32:
ldrh r1, [r2, 0x2C]
movs r0, 0x80
lsls r0, 1
ands r0, r1
cmp r0, 0
bne _08103D6E
ldrh r1, [r2, 0x30]
movs r0, 0x10
ands r0, r1
cmp r0, 0
beq _08103D6E
ldr r0, _08103D68 @ =gUnknown_203ACF0
ldr r0, [r0]
adds r2, r0, 0
adds r2, 0x2D
ldrb r1, [r2]
adds r0, 0x2C
ldrb r0, [r0]
subs r0, 0x1
cmp r1, r0
bge _08103D6C
adds r0, r1, 0x1
strb r0, [r2]
_08103D60:
movs r0, 0x5
bl PlaySE
b _08104228
.align 2, 0
_08103D68: .4byte gUnknown_203ACF0
_08103D6C:
movs r4, 0x2
_08103D6E:
cmp r4, 0
bne _08103D78
bl sub_8104284
adds r4, r0, 0
_08103D78:
cmp r4, 0x1
beq _08103D94
cmp r4, 0x1
ble _08103E4E
cmp r4, 0x2
beq _08103DF8
b _08103E4E
_08103D86:
ldr r1, [r4]
movs r0, 0x8
strb r0, [r1, 0x1]
ldr r5, _08103D90 @ =gUnknown_203ACF0
b _08103DDA
.align 2, 0
_08103D90: .4byte gUnknown_203ACF0
_08103D94:
ldr r0, _08103DE4 @ =gUnknown_203ACF0
ldr r1, [r0]
adds r2, r1, 0
adds r2, 0x2B
adds r1, 0x29
ldrb r2, [r2]
adds r5, r0, 0
ldrb r1, [r1]
cmp r2, r1
bls _08103DDA
adds r4, r5, 0
_08103DAA:
ldr r1, [r4]
adds r1, 0x2B
ldrb r0, [r1]
subs r0, 0x1
strb r0, [r1]
ldr r1, [r4]
adds r0, r1, 0
adds r0, 0x28
ldrb r0, [r0]
adds r1, 0x2B
ldrb r1, [r1]
bl sub_8106838
lsls r0, 24
cmp r0, 0
bne _08103D86
ldr r1, [r4]
adds r0, r1, 0
adds r0, 0x2B
adds r1, 0x29
ldrb r0, [r0]
ldrb r1, [r1]
cmp r0, r1
bhi _08103DAA
_08103DDA:
ldr r1, [r5]
ldrb r0, [r1, 0x1]
cmp r0, 0x8
beq _08103E4E
b _08103E4A
.align 2, 0
_08103DE4: .4byte gUnknown_203ACF0
_08103DE8:
ldr r1, [r4]
movs r0, 0xA
strb r0, [r1, 0x1]
ldr r5, _08103DF4 @ =gUnknown_203ACF0
b _08103E42
.align 2, 0
_08103DF4: .4byte gUnknown_203ACF0
_08103DF8:
ldr r1, _08103E64 @ =gUnknown_203ACF0
ldr r0, [r1]
adds r2, r0, 0
adds r2, 0x2B
ldrb r2, [r2]
adds r0, 0x2A
ldrb r0, [r0]
subs r0, 0x1
adds r5, r1, 0
cmp r2, r0
bge _08103E42
adds r4, r5, 0
_08103E10:
ldr r1, [r4]
adds r1, 0x2B
ldrb r0, [r1]
adds r0, 0x1
strb r0, [r1]
ldr r1, [r4]
adds r0, r1, 0
adds r0, 0x28
ldrb r0, [r0]
adds r1, 0x2B
ldrb r1, [r1]
bl sub_8106838
lsls r0, 24
cmp r0, 0
bne _08103DE8
ldr r0, [r4]
adds r1, r0, 0
adds r1, 0x2B
ldrb r1, [r1]
adds r0, 0x2A
ldrb r0, [r0]
subs r0, 0x1
cmp r1, r0
blt _08103E10
_08103E42:
ldr r1, [r5]
ldrb r0, [r1, 0x1]
cmp r0, 0xA
beq _08103E4E
_08103E4A:
movs r0, 0x6
strb r0, [r1, 0x1]
_08103E4E:
ldr r0, _08103E68 @ =gMain
ldrh r1, [r0, 0x2E]
movs r0, 0x2
ands r0, r1
cmp r0, 0
bne _08103E5C
b _08104228
_08103E5C:
ldr r0, _08103E64 @ =gUnknown_203ACF0
ldr r1, [r0]
movs r0, 0x6
b _08104226
.align 2, 0
_08103E64: .4byte gUnknown_203ACF0
_08103E68: .4byte gMain
_08103E6C:
ldr r0, [r5]
adds r0, 0x60
ldrb r0, [r0]
bl RemoveScrollIndicatorArrowPair
ldr r0, [r5]
adds r0, 0x61
ldrb r0, [r0]
movs r1, 0
bl ListMenuRemoveCursorObject
ldr r0, _08103E98 @ =0xffff7fff
ldr r1, _08103E9C @ =0x0000ffff
str r1, [sp]
movs r1, 0
movs r2, 0
movs r3, 0x10
bl BeginNormalPaletteFade
ldr r1, [r5]
movs r0, 0x1
b _08104226
.align 2, 0
_08103E98: .4byte 0xffff7fff
_08103E9C: .4byte 0x0000ffff
_08103EA0:
bl sub_8104E90
movs r0, 0xFF
bl sub_8105058
ldr r4, _08103ED0 @ =gUnknown_203ACF0
ldr r0, [r4]
adds r0, 0x61
ldrb r0, [r0]
movs r1, 0
movs r2, 0xA0
movs r3, 0
bl ListMenuUpdateCursorObject
ldr r0, [r4]
adds r0, 0x2E
movs r1, 0
strb r1, [r0]
ldr r0, [r4]
strb r1, [r0, 0x2]
ldr r1, [r4]
ldrb r0, [r1, 0x1]
adds r0, 0x1
b _08104226
.align 2, 0
_08103ED0: .4byte gUnknown_203ACF0
_08103ED4:
movs r0, 0
bl sub_81052D0
lsls r0, 24
cmp r0, 0
bne _08103EE2
b _08104228
_08103EE2:
ldr r2, _08103EF8 @ =gUnknown_203ACF0
ldr r1, [r2]
adds r0, r1, 0
adds r0, 0x2C
ldrb r0, [r0]
subs r0, 0x1
adds r1, 0x2D
strb r0, [r1]
ldr r1, [r2]
movs r0, 0x5
b _08104226
.align 2, 0
_08103EF8: .4byte gUnknown_203ACF0
_08103EFC:
movs r0, 0x1
bl sub_81052D0
lsls r0, 24
cmp r0, 0
bne _08103F0A
b _08104228
_08103F0A:
ldr r2, _08103F1C @ =gUnknown_203ACF0
ldr r0, [r2]
adds r0, 0x2D
movs r1, 0
strb r1, [r0]
ldr r1, [r2]
movs r0, 0x5
b _08104226
.align 2, 0
_08103F1C: .4byte gUnknown_203ACF0
_08103F20:
ldr r2, [r5]
adds r0, r2, 0
adds r0, 0x2D
ldrb r1, [r0]
lsls r1, 1
subs r0, 0x15
adds r0, r1
ldrh r1, [r0]
adds r0, r2, 0
adds r0, 0x5A
strh r1, [r0]
movs r0, 0x5
bl PlaySE
ldr r1, [r5]
movs r0, 0xE
b _08104226
_08103F42:
bl sub_8106014
ldr r0, _08103F50 @ =gUnknown_203ACF0
ldr r1, [r0]
movs r0, 0x4
b _08104226
.align 2, 0
_08103F50: .4byte gUnknown_203ACF0
_08103F54:
movs r0, 0
bl sub_8105E1C
ldr r0, _08103F64 @ =gUnknown_203ACF0
ldr r1, [r0]
movs r0, 0xF
b _08104226
.align 2, 0
_08103F64: .4byte gUnknown_203ACF0
_08103F68:
ldr r0, [r5]
movs r1, 0
strb r1, [r0, 0x2]
ldr r0, [r5]
strb r1, [r0, 0x3]
ldr r1, [r5]
ldrb r0, [r1, 0x1]
adds r0, 0x1
strb r0, [r1, 0x1]
_08103F7A:
ldr r1, [r5]
ldrb r0, [r1, 0x3]
cmp r0, 0x5
bhi _08103FA8
ldrb r0, [r1, 0x2]
cmp r0, 0
bne _08103F8A
b _081040BE
_08103F8A:
ldrb r1, [r1, 0x3]
movs r0, 0
bl sub_8105594
movs r0, 0
bl CopyBgTilemapBufferToVram
ldr r1, [r5]
movs r0, 0x4
strb r0, [r1, 0x2]
ldr r1, [r5]
ldrb r0, [r1, 0x3]
adds r0, 0x1
strb r0, [r1, 0x3]
b _08104228
_08103FA8:
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, [r5]
adds r0, 0x5A
ldrh r0, [r0]
movs r1, 0
movs r2, 0x7D
movs r3, 0xA
bl PlayCry2
ldr r1, [r5]
movs r0, 0
strb r0, [r1, 0x2]
ldr r1, [r5]
movs r0, 0x11
b _08104226
_08103FF0:
ldr r0, _08104024 @ =gMain
ldrh r1, [r0, 0x2E]
movs r0, 0x1
ands r0, r1
cmp r0, 0
beq _0810402C
bl sub_8106014
movs r0, 0x1E
str r0, [sp]
movs r0, 0x10
str r0, [sp, 0x4]
movs r0, 0x1
movs r1, 0
movs r2, 0
movs r3, 0x2
bl FillBgTilemapBufferRect_Palette0
movs r0, 0x1
bl CopyBgTilemapBufferToVram
ldr r0, _08104028 @ =gUnknown_203ACF0
ldr r1, [r0]
movs r0, 0x15
b _08104226
.align 2, 0
_08104024: .4byte gMain
_08104028: .4byte gUnknown_203ACF0
_0810402C:
movs r0, 0x2
ands r0, r1
cmp r0, 0
bne _08104036
b _081041D8
_08104036:
ldr r1, [r5]
b _08104224
_0810403A:
movs r0, 0
bl sub_8104F0C
movs r0, 0
movs r1, 0x6
bl sub_8105594
movs r0, 0x3
bl CopyBgTilemapBufferToVram
movs r0, 0x2
bl CopyBgTilemapBufferToVram
movs r0, 0x1
bl CopyBgTilemapBufferToVram
movs r0, 0
bl CopyBgTilemapBufferToVram
ldr r0, _08104068 @ =gUnknown_203ACF0
ldr r1, [r0]
movs r0, 0x13
b _08104226
.align 2, 0
_08104068: .4byte gUnknown_203ACF0
_0810406C:
ldr r1, [r5]
movs r0, 0
strb r0, [r1, 0x2]
ldr r1, [r5]
movs r0, 0x6
strb r0, [r1, 0x3]
ldr r1, [r5]
ldrb r0, [r1, 0x1]
adds r0, 0x1
strb r0, [r1, 0x1]
_08104080:
ldr r1, [r5]
ldrb r2, [r1, 0x3]
cmp r2, 0
beq _081040C4
ldrb r0, [r1, 0x2]
cmp r0, 0
beq _081040BE
subs r0, r2, 0x1
strb r0, [r1, 0x3]
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
ldr r0, [r5]
ldrb r1, [r0, 0x3]
movs r0, 0
bl sub_8105594
movs r0, 0
bl CopyBgTilemapBufferToVram
ldr r1, [r5]
movs r0, 0x1
strb r0, [r1, 0x2]
b _08104228
_081040BE:
subs r0, 0x1
strb r0, [r1, 0x2]
b _08104228
_081040C4:
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, 0
bl CopyBgTilemapBufferToVram
ldr r1, [r5]
movs r0, 0xD
b _08104226
_081040E4:
bl sub_810603C
ldr r0, _081040F0 @ =gUnknown_203ACF0
ldr r1, [r0]
movs r0, 0x16
b _08104226
.align 2, 0
_081040F0: .4byte gUnknown_203ACF0
_081040F4:
movs r0, 0x3
bl CopyBgTilemapBufferToVram
movs r0, 0x2
bl CopyBgTilemapBufferToVram
movs r0, 0x1
bl CopyBgTilemapBufferToVram
movs r0, 0
bl CopyBgTilemapBufferToVram
ldr r0, _08104114 @ =gUnknown_203ACF0
ldr r1, [r0]
movs r0, 0x17
b _08104226
.align 2, 0
_08104114: .4byte gUnknown_203ACF0
_08104118:
ldr r0, _08104174 @ =gMain
ldrh r1, [r0, 0x2E]
movs r0, 0x1
ands r0, r1
cmp r0, 0
beq _0810417C
movs r5, 0x1E
str r5, [sp]
movs r4, 0x10
str r4, [sp, 0x4]
movs r0, 0x2
movs r1, 0
movs r2, 0
movs r3, 0x2
bl FillBgTilemapBufferRect_Palette0
str r5, [sp]
str r4, [sp, 0x4]
movs r0, 0x1
movs r1, 0
movs r2, 0
movs r3, 0x2
bl FillBgTilemapBufferRect_Palette0
str r5, [sp]
str r4, [sp, 0x4]
movs r0, 0
movs r1, 0
movs r2, 0
movs r3, 0x2
bl FillBgTilemapBufferRect_Palette0
movs r0, 0x2
bl CopyBgTilemapBufferToVram
movs r0, 0x1
bl CopyBgTilemapBufferToVram
movs r0, 0
bl CopyBgTilemapBufferToVram
ldr r0, _08104178 @ =gUnknown_203ACF0
ldr r1, [r0]
movs r0, 0x1A
b _08104226
.align 2, 0
_08104174: .4byte gMain
_08104178: .4byte gUnknown_203ACF0
_0810417C:
movs r0, 0x2
ands r0, r1
cmp r0, 0
beq _081041D8
movs r5, 0x1E
str r5, [sp]
movs r4, 0x10
str r4, [sp, 0x4]
movs r0, 0x2
movs r1, 0
movs r2, 0
movs r3, 0x2
bl FillBgTilemapBufferRect_Palette0
str r5, [sp]
str r4, [sp, 0x4]
movs r0, 0x1
movs r1, 0
movs r2, 0
movs r3, 0x2
bl FillBgTilemapBufferRect_Palette0
str r5, [sp]
str r4, [sp, 0x4]
movs r0, 0
movs r1, 0
movs r2, 0
movs r3, 0x2
bl FillBgTilemapBufferRect_Palette0
movs r0, 0x2
bl CopyBgTilemapBufferToVram
movs r0, 0x1
bl CopyBgTilemapBufferToVram
movs r0, 0
bl CopyBgTilemapBufferToVram
ldr r0, _081041D4 @ =gUnknown_203ACF0
ldr r1, [r0]
movs r0, 0x18
b _08104226
.align 2, 0
_081041D4: .4byte gUnknown_203ACF0
_081041D8:
bl sub_8106B34
b _08104228
_081041DE:
bl sub_81067C0
ldr r0, _081041EC @ =gUnknown_203ACF0
ldr r1, [r0]
movs r0, 0x19
b _08104226
.align 2, 0
_081041EC: .4byte gUnknown_203ACF0
_081041F0:
movs r0, 0
bl sub_8105E1C
movs r0, 0x3
bl CopyBgTilemapBufferToVram
movs r0, 0x2
bl CopyBgTilemapBufferToVram
movs r0, 0x1
bl CopyBgTilemapBufferToVram
movs r0, 0
bl CopyBgTilemapBufferToVram
ldr r0, _08104218 @ =gUnknown_203ACF0
ldr r1, [r0]
movs r0, 0x11
b _08104226
.align 2, 0
_08104218: .4byte gUnknown_203ACF0
_0810421C:
bl sub_81067C0
ldr r0, _08104230 @ =gUnknown_203ACF0
ldr r1, [r0]
_08104224:
movs r0, 0x12
_08104226:
strb r0, [r1, 0x1]
_08104228:
add sp, 0x8
pop {r4,r5}
pop {r0}
bx r0
.align 2, 0
_08104230: .4byte gUnknown_203ACF0
thumb_func_end sub_8103AC8
thumb_func_start sub_8104234
sub_8104234: @ 8104234
push {r4,lr}
sub sp, 0x10
mov r1, sp
ldr r0, _0810427C @ =gUnknown_84524B4
ldm r0!, {r2-r4}
stm r1!, {r2-r4}
ldr r0, [r0]
str r0, [r1]
mov r1, sp
ldr r0, _08104280 @ =gUnknown_203ACF0
ldr r2, [r0]
adds r0, r2, 0
adds r0, 0x29
ldrb r0, [r0]
strh r0, [r1, 0x6]
adds r0, r2, 0
adds r0, 0x2A
ldrb r0, [r0]
subs r0, 0x1
strh r0, [r1, 0x8]
adds r0, r2, 0
adds r0, 0x2B
ldrb r0, [r0]
adds r1, r2, 0
adds r1, 0x62
strh r0, [r1]
mov r0, sp
bl AddScrollIndicatorArrowPair
lsls r0, 24
lsrs r0, 24
add sp, 0x10
pop {r4}
pop {r1}
bx r1
.align 2, 0
_0810427C: .4byte gUnknown_84524B4
_08104280: .4byte gUnknown_203ACF0
thumb_func_end sub_8104234
thumb_func_start sub_8104284
sub_8104284: @ 8104284
push {lr}
ldr r0, _081042B0 @ =gSaveBlock2Ptr
ldr r0, [r0]
ldrb r0, [r0, 0x13]
cmp r0, 0x1
beq _081042C0
cmp r0, 0x1
ble _081042E6
cmp r0, 0x2
bne _081042E6
ldr r0, _081042B4 @ =gMain
ldr r2, [r0, 0x2C]
ldr r1, _081042B8 @ =0x00200100
adds r0, r2, 0
ands r0, r1
cmp r0, r1
beq _081042CE
ldr r0, _081042BC @ =0x00100100
ands r2, r0
cmp r2, r0
beq _081042E2
b _081042E6
.align 2, 0
_081042B0: .4byte gSaveBlock2Ptr
_081042B4: .4byte gMain
_081042B8: .4byte 0x00200100
_081042BC: .4byte 0x00100100
_081042C0:
ldr r0, _081042D4 @ =gMain
ldrh r1, [r0, 0x2E]
movs r0, 0x80
lsls r0, 2
ands r0, r1
cmp r0, 0
beq _081042D8
_081042CE:
movs r0, 0x1
b _081042E8
.align 2, 0
_081042D4: .4byte gMain
_081042D8:
movs r0, 0x80
lsls r0, 1
ands r0, r1
cmp r0, 0
beq _081042E6
_081042E2:
movs r0, 0x2
b _081042E8
_081042E6:
movs r0, 0
_081042E8:
pop {r1}
bx r1
thumb_func_end sub_8104284
thumb_func_start sub_81042EC
sub_81042EC: @ 81042EC
push {r4,r5,lr}
sub sp, 0x8
lsls r0, 24
lsrs r4, r0, 24
ldr r1, _0810430C @ =gUnknown_203ACF0
ldr r0, [r1]
ldrb r0, [r0, 0x1]
adds r5, r1, 0
cmp r0, 0xC
bls _08104302
b _08104656
_08104302:
lsls r0, 2
ldr r1, _08104310 @ =_08104314
adds r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_0810430C: .4byte gUnknown_203ACF0
_08104310: .4byte _08104314
.align 2, 0
_08104314:
.4byte _08104348
.4byte _08104368
.4byte _08104398
.4byte _081043AC
.4byte _081043E0
.4byte _08104418
.4byte _08104508
.4byte _08104528
.4byte _08104538
.4byte _0810455C
.4byte _081045F2
.4byte _08104604
.4byte _08104630
_08104348:
movs r0, 0x3
bl HideBg
movs r0, 0x2
bl HideBg
movs r0, 0x1
bl HideBg
ldr r0, _08104364 @ =gUnknown_203ACF0
ldr r1, [r0]
movs r0, 0x2
b _08104654
.align 2, 0
_08104364: .4byte gUnknown_203ACF0
_08104368:
movs r0, 0x2
bl HideBg
movs r0, 0x1
bl HideBg
ldr r1, _0810438C @ =gTasks
lsls r0, r4, 2
adds r0, r4
lsls r0, 3
adds r0, r1
ldr r1, _08104390 @ =sub_8102F80
str r1, [r0]
ldr r0, _08104394 @ =gUnknown_203ACF0
ldr r1, [r0]
movs r0, 0
b _08104654
.align 2, 0
_0810438C: .4byte gTasks
_08104390: .4byte sub_8102F80
_08104394: .4byte gUnknown_203ACF0
_08104398:
ldr r0, [r5]
adds r0, 0x2C
movs r1, 0x1
strb r1, [r0]
movs r0, 0
bl sub_8105E1C
ldr r1, [r5]
movs r0, 0x3
b _08104654
_081043AC:
movs r0, 0x3
bl CopyBgTilemapBufferToVram
movs r0, 0x2
bl CopyBgTilemapBufferToVram
movs r0, 0x1
bl CopyBgTilemapBufferToVram
movs r0, 0
bl CopyBgTilemapBufferToVram
ldr r4, _081043DC @ =gUnknown_203ACF0
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, 0x4
b _08104654
.align 2, 0
_081043DC: .4byte gUnknown_203ACF0
_081043E0:
ldr r0, _0810440C @ =0xffff7fff
ldr r1, _08104410 @ =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
ldr r0, _08104414 @ =gUnknown_203ACF0
ldr r1, [r0]
movs r0, 0x5
b _08104654
.align 2, 0
_0810440C: .4byte 0xffff7fff
_08104410: .4byte 0x0000ffff
_08104414: .4byte gUnknown_203ACF0
_08104418:
ldr r0, _0810444C @ =gMain
ldrh r1, [r0, 0x2E]
movs r0, 0x1
ands r0, r1
cmp r0, 0
beq _08104454
bl sub_8106014
movs r0, 0x1E
str r0, [sp]
movs r0, 0x10
str r0, [sp, 0x4]
movs r0, 0x1
movs r1, 0
movs r2, 0
movs r3, 0x2
bl FillBgTilemapBufferRect_Palette0
movs r0, 0x1
bl CopyBgTilemapBufferToVram
ldr r0, _08104450 @ =gUnknown_203ACF0
ldr r1, [r0]
movs r0, 0x7
b _08104654
.align 2, 0
_0810444C: .4byte gMain
_08104450: .4byte gUnknown_203ACF0
_08104454:
movs r0, 0x2
ands r0, r1
cmp r0, 0
beq _08104484
bl sub_8106014
ldr r0, _08104478 @ =0xffff7fff
ldr r1, _0810447C @ =0x0000ffff
str r1, [sp]
movs r1, 0
movs r2, 0
movs r3, 0x10
bl BeginNormalPaletteFade
ldr r0, _08104480 @ =gUnknown_203ACF0
ldr r1, [r0]
movs r0, 0x1
b _08104654
.align 2, 0
_08104478: .4byte 0xffff7fff
_0810447C: .4byte 0x0000ffff
_08104480: .4byte gUnknown_203ACF0
_08104484:
movs r0, 0x40
ands r0, r1
cmp r0, 0
beq _081044C0
movs r0, 0x1
bl sub_8104664
cmp r0, 0
beq _081044C0
bl sub_8106014
ldr r0, _081044B4 @ =0xffff7fff
ldr r1, _081044B8 @ =0x0000ffff
str r1, [sp]
movs r1, 0
movs r2, 0
movs r3, 0x10
bl BeginNormalPaletteFade
ldr r0, _081044BC @ =gUnknown_203ACF0
ldr r1, [r0]
movs r0, 0x6
b _08104654
.align 2, 0
_081044B4: .4byte 0xffff7fff
_081044B8: .4byte 0x0000ffff
_081044BC: .4byte gUnknown_203ACF0
_081044C0:
ldr r0, _081044F8 @ =gMain
ldrh r1, [r0, 0x2E]
movs r0, 0x80
ands r0, r1
cmp r0, 0
bne _081044CE
b _081045EC
_081044CE:
movs r0, 0
bl sub_8104664
cmp r0, 0
bne _081044DA
b _081045EC
_081044DA:
bl sub_8106014
ldr r0, _081044FC @ =0xffff7fff
ldr r1, _08104500 @ =0x0000ffff
str r1, [sp]
movs r1, 0
movs r2, 0
movs r3, 0x10
bl BeginNormalPaletteFade
ldr r0, _08104504 @ =gUnknown_203ACF0
ldr r1, [r0]
movs r0, 0x6
b _08104654
.align 2, 0
_081044F8: .4byte gMain
_081044FC: .4byte 0xffff7fff
_08104500: .4byte 0x0000ffff
_08104504: .4byte gUnknown_203ACF0
_08104508:
movs r0, 0x2
bl HideBg
movs r0, 0x1
bl HideBg
ldr r0, _08104524 @ =gUnknown_203ACF0
ldr r1, [r0]
ldr r0, [r1, 0x30]
adds r2, r1, 0
adds r2, 0x5A
strh r0, [r2]
movs r0, 0x2
b _08104654
.align 2, 0
_08104524: .4byte gUnknown_203ACF0
_08104528:
bl sub_810603C
ldr r0, _08104534 @ =gUnknown_203ACF0
ldr r1, [r0]
movs r0, 0x8
b _08104654
.align 2, 0
_08104534: .4byte gUnknown_203ACF0
_08104538:
movs r0, 0x3
bl CopyBgTilemapBufferToVram
movs r0, 0x2
bl CopyBgTilemapBufferToVram
movs r0, 0x1
bl CopyBgTilemapBufferToVram
movs r0, 0
bl CopyBgTilemapBufferToVram
ldr r0, _08104558 @ =gUnknown_203ACF0
ldr r1, [r0]
movs r0, 0x9
b _08104654
.align 2, 0
_08104558: .4byte gUnknown_203ACF0
_0810455C:
ldr r0, _08104580 @ =gMain
ldrh r1, [r0, 0x2E]
movs r0, 0x1
ands r0, r1
cmp r0, 0
beq _08104590
ldr r0, _08104584 @ =0xffff7fff
ldr r1, _08104588 @ =0x0000ffff
str r1, [sp]
movs r1, 0
movs r2, 0
movs r3, 0x10
bl BeginNormalPaletteFade
ldr r0, _0810458C @ =gUnknown_203ACF0
ldr r1, [r0]
movs r0, 0xC
b _08104654
.align 2, 0
_08104580: .4byte gMain
_08104584: .4byte 0xffff7fff
_08104588: .4byte 0x0000ffff
_0810458C: .4byte gUnknown_203ACF0
_08104590:
movs r0, 0x2
ands r0, r1
cmp r0, 0
beq _081045EC
movs r5, 0x1E
str r5, [sp]
movs r4, 0x10
str r4, [sp, 0x4]
movs r0, 0x2
movs r1, 0
movs r2, 0
movs r3, 0x2
bl FillBgTilemapBufferRect_Palette0
str r5, [sp]
str r4, [sp, 0x4]
movs r0, 0x1
movs r1, 0
movs r2, 0
movs r3, 0x2
bl FillBgTilemapBufferRect_Palette0
str r5, [sp]
str r4, [sp, 0x4]
movs r0, 0
movs r1, 0
movs r2, 0
movs r3, 0x2
bl FillBgTilemapBufferRect_Palette0
movs r0, 0x2
bl CopyBgTilemapBufferToVram
movs r0, 0x1
bl CopyBgTilemapBufferToVram
movs r0, 0
bl CopyBgTilemapBufferToVram
ldr r0, _081045E8 @ =gUnknown_203ACF0
ldr r1, [r0]
movs r0, 0xA
b _08104654
.align 2, 0
_081045E8: .4byte gUnknown_203ACF0
_081045EC:
bl sub_8106B34
b _08104656
_081045F2:
bl sub_81067C0
ldr r0, _08104600 @ =gUnknown_203ACF0
ldr r1, [r0]
movs r0, 0xB
b _08104654
.align 2, 0
_08104600: .4byte gUnknown_203ACF0
_08104604:
movs r0, 0
bl sub_8105E1C
movs r0, 0x3
bl CopyBgTilemapBufferToVram
movs r0, 0x2
bl CopyBgTilemapBufferToVram
movs r0, 0x1
bl CopyBgTilemapBufferToVram
movs r0, 0
bl CopyBgTilemapBufferToVram
ldr r0, _0810462C @ =gUnknown_203ACF0
ldr r1, [r0]
movs r0, 0x5
b _08104654
.align 2, 0
_0810462C: .4byte gUnknown_203ACF0
_08104630:
bl sub_81067C0
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, 0
bl CopyBgTilemapBufferToVram
ldr r0, _08104660 @ =gUnknown_203ACF0
ldr r1, [r0]
movs r0, 0x1
_08104654:
strb r0, [r1, 0x1]
_08104656:
add sp, 0x8
pop {r4,r5}
pop {r0}
bx r0
.align 2, 0
_08104660: .4byte gUnknown_203ACF0
thumb_func_end sub_81042EC
thumb_func_start sub_8104664
sub_8104664: @ 8104664
push {r4-r7,lr}
mov r7, r8
push {r7}
lsls r0, 24
lsrs r4, r0, 24
ldr r0, _08104684 @ =gUnknown_203ACF0
ldr r3, [r0]
adds r2, r3, 0
adds r2, 0x42
ldrb r2, [r2]
mov r8, r0
cmp r2, 0x4
bgt _08104688
cmp r2, 0x1
bge _0810469C
b _0810468C
.align 2, 0
_08104684: .4byte gUnknown_203ACF0
_08104688:
cmp r2, 0x5
beq _081046A8
_0810468C:
mov r1, r8
ldr r0, [r1]
movs r2, 0x36
adds r2, r0
mov r12, r2
adds r6, r0, 0
adds r6, 0x34
b _081046B2
_0810469C:
movs r0, 0x3A
adds r0, r3
mov r12, r0
adds r6, r3, 0
adds r6, 0x38
b _081046B2
_081046A8:
movs r1, 0x3E
adds r1, r3
mov r12, r1
adds r6, r3, 0
adds r6, 0x3C
_081046B2:
mov r2, r12
ldrh r1, [r2]
ldrh r0, [r6]
adds r3, r1, r0
cmp r4, 0
beq _08104700
cmp r3, 0
beq _0810474C
subs r3, 0x1
cmp r3, 0
blt _0810474C
mov r1, r8
ldr r0, [r1]
ldr r0, [r0, 0x44]
lsls r2, r3, 3
adds r0, r2, r0
ldrh r0, [r0, 0x6]
movs r1, 0x1
ands r0, r1
cmp r0, 0
bne _081046FA
mov r5, r8
movs r4, 0x1
adds r1, r2, 0
_081046E2:
subs r1, 0x8
subs r3, 0x1
cmp r3, 0
blt _0810474C
ldr r0, [r5]
ldr r0, [r0, 0x44]
adds r0, r1, r0
ldrh r0, [r0, 0x6]
ands r0, r4
adds r2, r1, 0
cmp r0, 0
beq _081046E2
_081046FA:
cmp r3, 0
bge _08104750
b _0810474C
_08104700:
mov r2, r8
ldr r5, [r2]
adds r0, r5, 0
adds r0, 0x48
ldrh r4, [r0]
subs r0, r4, 0x1
cmp r3, r0
beq _0810474C
adds r3, 0x1
cmp r3, r4
bge _0810474C
ldr r0, [r5, 0x44]
lsls r2, r3, 3
adds r0, r2, r0
ldrh r0, [r0, 0x6]
movs r1, 0x1
ands r0, r1
cmp r0, 0
bne _08104740
adds r1, r2, 0
movs r7, 0x1
_0810472A:
adds r1, 0x8
adds r3, 0x1
cmp r3, r4
bge _0810474C
ldr r0, [r5, 0x44]
adds r0, r1, r0
ldrh r0, [r0, 0x6]
ands r0, r7
adds r2, r1, 0
cmp r0, 0
beq _0810472A
_08104740:
mov r1, r8
ldr r0, [r1]
adds r0, 0x48
ldrh r0, [r0]
cmp r3, r0
blt _08104750
_0810474C:
movs r0, 0
b _081047A6
_08104750:
mov r0, r8
ldr r1, [r0]
ldr r0, [r1, 0x44]
adds r0, r2, r0
ldr r0, [r0, 0x4]
str r0, [r1, 0x30]
adds r1, 0x48
ldrh r0, [r1]
cmp r0, 0x9
bls _0810479C
cmp r3, 0x3
bgt _08104770
movs r0, 0
mov r1, r12
strh r0, [r1]
b _081047A2
_08104770:
ldrh r1, [r1]
subs r0, r1, 0x4
cmp r3, r0
blt _08104790
subs r0, 0x5
mov r2, r12
strh r0, [r2]
adds r1, r3, 0
adds r1, 0x9
mov r2, r8
ldr r0, [r2]
adds r0, 0x48
ldrh r0, [r0]
subs r1, r0
strh r1, [r6]
b _081047A4
_08104790:
subs r0, r3, 0x4
mov r1, r12
strh r0, [r1]
movs r0, 0x4
strh r0, [r6]
b _081047A4
_0810479C:
movs r0, 0
mov r2, r12
strh r0, [r2]
_081047A2:
strh r3, [r6]
_081047A4:
movs r0, 0x1
_081047A6:
pop {r3}
mov r8, r3
pop {r4-r7}
pop {r1}
bx r1
thumb_func_end sub_8104664
thumb_func_start sub_81047B0
sub_81047B0: @ 81047B0
push {r4,lr}
adds r4, r0, 0
ldrb r0, [r4]
cmp r0, 0xFF
beq _081047C2
bl RemoveWindow
movs r0, 0xFF
strb r0, [r4]
_081047C2:
pop {r4}
pop {r0}
bx r0
thumb_func_end sub_81047B0
thumb_func_start sub_81047C8
sub_81047C8: @ 81047C8
push {r4-r7,lr}
sub sp, 0x18
mov r12, r2
ldr r2, [sp, 0x2C]
ldr r4, [sp, 0x30]
lsls r0, 24
lsrs r7, r0, 24
lsls r1, 24
lsrs r5, r1, 24
lsls r3, 24
lsrs r6, r3, 24
lsls r2, 24
lsrs r3, r2, 24
lsls r4, 24
lsrs r0, r4, 24
cmp r0, 0x4
bhi _08104852
lsls r0, 2
ldr r1, _081047F4 @ =_081047F8
adds r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_081047F4: .4byte _081047F8
.align 2, 0
_081047F8:
.4byte _0810480C
.4byte _0810481A
.4byte _08104828
.4byte _08104836
.4byte _08104844
_0810480C:
add r1, sp, 0x14
movs r0, 0
strb r0, [r1]
movs r0, 0x1
strb r0, [r1, 0x1]
movs r0, 0x3
b _08104850
_0810481A:
add r1, sp, 0x14
movs r0, 0
strb r0, [r1]
movs r0, 0x5
strb r0, [r1, 0x1]
movs r0, 0x1
b _08104850
_08104828:
add r1, sp, 0x14
movs r0, 0
strb r0, [r1]
movs r0, 0xF
strb r0, [r1, 0x1]
movs r0, 0xE
b _08104850
_08104836:
add r1, sp, 0x14
movs r0, 0
strb r0, [r1]
movs r0, 0xB
strb r0, [r1, 0x1]
movs r0, 0x1
b _08104850
_08104844:
add r1, sp, 0x14
movs r0, 0
strb r0, [r1]
movs r0, 0x1
strb r0, [r1, 0x1]
movs r0, 0x2
_08104850:
strb r0, [r1, 0x2]
_08104852:
negs r0, r5
orrs r0, r5
lsrs r0, 31
str r0, [sp]
movs r0, 0
str r0, [sp, 0x4]
add r0, sp, 0x14
str r0, [sp, 0x8]
movs r0, 0x1
negs r0, r0
str r0, [sp, 0xC]
mov r0, r12
str r0, [sp, 0x10]
adds r0, r7, 0
adds r1, r5, 0
adds r2, r6, 0
bl AddTextPrinterParameterized4
add sp, 0x18
pop {r4-r7}
pop {r0}
bx r0
thumb_func_end sub_81047C8
thumb_func_start sub_8104880
sub_8104880: @ 8104880
push {r4-r7,lr}
mov r7, r10
mov r6, r9
mov r5, r8
push {r5-r7}
sub sp, 0xC
mov r9, r0
mov r10, r1
adds r4, r2, 0
ldr r6, [sp, 0x2C]
ldr r0, [sp, 0x30]
mov r8, r0
mov r0, r9
lsls r0, 24
lsrs r0, 24
mov r9, r0
mov r0, r10
lsls r0, 24
lsrs r0, 24
mov r10, r0
lsls r4, 16
lsrs r4, 16
lsls r3, 24
lsrs r7, r3, 24
lsls r6, 24
lsrs r6, 24
mov r0, r8
lsls r0, 24
lsrs r0, 24
mov r8, r0
add r5, sp, 0x8
adds r0, r4, 0
movs r1, 0x64
bl __udivsi3
adds r0, 0xA1
strb r0, [r5]
add r5, sp, 0x8
adds r0, r4, 0
movs r1, 0x64
bl __umodsi3
adds r4, r0, 0
lsls r4, 16
lsrs r4, 16
adds r0, r4, 0
movs r1, 0xA
bl __udivsi3
adds r0, 0xA1
strb r0, [r5, 0x1]
add r5, sp, 0x8
adds r0, r4, 0
movs r1, 0xA
bl __umodsi3
adds r0, 0xA1
strb r0, [r5, 0x2]
add r1, sp, 0x8
movs r0, 0xFF
strb r0, [r1, 0x3]
str r6, [sp]
mov r0, r8
str r0, [sp, 0x4]
mov r0, r9
mov r1, r10
add r2, sp, 0x8
adds r3, r7, 0
bl sub_81047C8
add sp, 0xC
pop {r3-r5}
mov r8, r3
mov r9, r4
mov r10, r5
pop {r4-r7}
pop {r0}
bx r0
thumb_func_end sub_8104880
thumb_func_start sub_810491C
sub_810491C: @ 810491C
push {r4-r7,lr}
mov r7, r10
mov r6, r9
mov r5, r8
push {r5-r7}
sub sp, 0x10
adds r5, r2, 0
ldr r2, [sp, 0x30]
ldr r4, [sp, 0x34]
lsls r0, 24
lsrs r0, 24
str r0, [sp, 0xC]
lsls r1, 24
lsrs r1, 24
mov r10, r1
lsls r5, 16
lsrs r5, 16
lsls r3, 24
lsrs r3, 24
mov r9, r3
lsls r2, 24
lsrs r2, 24
mov r8, r2
lsls r4, 24
lsrs r7, r4, 24
add r4, sp, 0x8
adds r0, r5, 0
movs r1, 0x64
bl __udivsi3
adds r0, 0xA1
strb r0, [r4]
add r6, sp, 0x8
adds r0, r5, 0
movs r1, 0x64
bl __umodsi3
adds r4, r0, 0
lsls r4, 16
lsrs r4, 16
adds r0, r4, 0
movs r1, 0xA
bl __udivsi3
adds r0, 0xA1
strb r0, [r6, 0x1]
add r5, sp, 0x8
adds r0, r4, 0
movs r1, 0xA
bl __umodsi3
adds r0, 0xA1
strb r0, [r5, 0x2]
add r1, sp, 0x8
movs r0, 0xFF
strb r0, [r1, 0x3]
adds r0, r1, 0
ldrb r0, [r0]
cmp r0, 0xA1
bne _081049A8
movs r3, 0
mov r2, sp
adds r2, 0xA
_0810499A:
strb r3, [r1]
adds r1, 0x1
cmp r1, r2
bgt _081049A8
ldrb r0, [r1]
cmp r0, 0xA1
beq _0810499A
_081049A8:
mov r0, r8
str r0, [sp]
str r7, [sp, 0x4]
ldr r0, [sp, 0xC]
mov r1, r10
add r2, sp, 0x8
mov r3, r9
bl sub_81047C8
add sp, 0x10
pop {r3-r5}
mov r8, r3
mov r9, r4
mov r10, r5
pop {r4-r7}
pop {r0}
bx r0
thumb_func_end sub_810491C
thumb_func_start sub_81049CC
sub_81049CC: @ 81049CC
push {lr}
adds r1, r0, 0
cmp r1, 0xC9
beq _081049E8
movs r0, 0x9A
lsls r0, 1
cmp r1, r0
bne _081049F4
ldr r0, _081049E4 @ =gSaveBlock2Ptr
ldr r0, [r0]
ldr r0, [r0, 0x20]
b _081049F6
.align 2, 0
_081049E4: .4byte gSaveBlock2Ptr
_081049E8:
ldr r0, _081049F0 @ =gSaveBlock2Ptr
ldr r0, [r0]
ldr r0, [r0, 0x1C]
b _081049F6
.align 2, 0
_081049F0: .4byte gSaveBlock2Ptr
_081049F4:
movs r0, 0
_081049F6:
pop {r1}
bx r1
thumb_func_end sub_81049CC
thumb_func_start sub_81049FC
sub_81049FC: @ 81049FC
push {r4-r6,lr}
sub sp, 0x8
adds r6, r0, 0
adds r5, r1, 0
adds r4, r2, 0
lsls r6, 24
lsrs r6, 24
lsls r5, 16
lsrs r5, 16
lsls r4, 16
adds r0, r5, 0
bl sub_81049CC
adds r2, r0, 0
lsrs r4, 20
lsls r4, 24
lsrs r4, 24
str r4, [sp]
str r6, [sp, 0x4]
adds r0, r5, 0
movs r1, 0x8
movs r3, 0x1
bl sub_810C228
add sp, 0x8
pop {r4-r6}
pop {r0}
bx r0
thumb_func_end sub_81049FC
thumb_func_start sub_8104A34
sub_8104A34: @ 8104A34
push {r4-r6,lr}
mov r6, r10
mov r5, r9
mov r4, r8
push {r4-r6}
sub sp, 0x8
mov r8, r0
mov r9, r1
adds r0, r2, 0
adds r4, r3, 0
ldr r6, [sp, 0x24]
mov r1, r8
lsls r1, 24
lsrs r1, 24
mov r8, r1
mov r1, r9
lsls r1, 24
lsrs r1, 24
mov r9, r1
lsls r0, 16
lsrs r0, 16
lsls r4, 24
lsrs r4, 24
lsls r6, 24
lsrs r6, 24
bl SpeciesToNationalPokedexNum
adds r5, r0, 0
lsls r5, 16
lsrs r5, 16
ldr r2, _08104AAC @ =gUnknown_8415FFF
str r6, [sp]
movs r0, 0
mov r10, r0
str r0, [sp, 0x4]
mov r0, r8
mov r1, r9
adds r3, r4, 0
bl sub_81047C8
adds r4, 0x9
lsls r4, 24
lsrs r4, 24
str r6, [sp]
mov r1, r10
str r1, [sp, 0x4]
mov r0, r8
mov r1, r9
adds r2, r5, 0
adds r3, r4, 0
bl sub_8104880
add sp, 0x8
pop {r3-r5}
mov r8, r3
mov r9, r4
mov r10, r5
pop {r4-r6}
pop {r0}
bx r0
.align 2, 0
_08104AAC: .4byte gUnknown_8415FFF
thumb_func_end sub_8104A34
thumb_func_start sub_8104AB0
sub_8104AB0: @ 8104AB0
push {r4-r7,lr}
lsls r0, 16
lsrs r3, r0, 16
lsls r1, 24
lsrs r5, r1, 24
adds r7, r5, 0
lsls r2, 24
cmp r2, 0
beq _08104ACA
adds r0, r3, 0
bl SpeciesToNationalPokedexNum
adds r3, r0, 0
_08104ACA:
subs r0, r3, 0x1
lsls r0, 16
lsrs r3, r0, 16
lsrs r0, 19
lsls r0, 24
lsrs r4, r0, 24
movs r0, 0x7
ands r3, r0
movs r0, 0x80
lsls r0, 17
lsls r0, r3
lsrs r6, r0, 24
movs r0, 0
mov r12, r0
cmp r5, 0x1
beq _08104B14
cmp r5, 0x1
bgt _08104AF4
cmp r5, 0
beq _08104AFE
b _08104BB0
_08104AF4:
cmp r7, 0x2
beq _08104B68
cmp r7, 0x3
beq _08104BA0
b _08104BB0
_08104AFE:
ldr r0, _08104B10 @ =gSaveBlock2Ptr
ldr r0, [r0]
adds r0, 0x5C
adds r0, r4
ldrb r1, [r0]
ands r1, r6
cmp r1, 0
beq _08104BB0
b _08104B34
.align 2, 0
_08104B10: .4byte gSaveBlock2Ptr
_08104B14:
ldr r0, _08104B5C @ =gSaveBlock2Ptr
ldr r2, [r0]
adds r0, r2, 0
adds r0, 0x28
adds r0, r4
ldrb r1, [r0]
ands r1, r6
cmp r1, 0
beq _08104BB0
adds r0, r2, 0
adds r0, 0x5C
adds r0, r4
ldrb r0, [r0]
ands r0, r6
cmp r1, r0
bne _08104BB0
_08104B34:
ldr r0, _08104B60 @ =gSaveBlock1Ptr
ldr r2, [r0]
movs r3, 0xBF
lsls r3, 3
adds r0, r2, r3
adds r0, r4
ldrb r0, [r0]
ands r0, r6
cmp r1, r0
bne _08104BB0
ldr r3, _08104B64 @ =0x00003a18
adds r0, r2, r3
adds r0, r4
ldrb r0, [r0]
ands r0, r6
cmp r1, r0
bne _08104BB0
movs r0, 0x1
mov r12, r0
b _08104BB0
.align 2, 0
_08104B5C: .4byte gSaveBlock2Ptr
_08104B60: .4byte gSaveBlock1Ptr
_08104B64: .4byte 0x00003a18
_08104B68:
ldr r0, _08104B94 @ =gSaveBlock2Ptr
ldr r1, [r0]
adds r1, 0x5C
adds r1, r4
ldrb r2, [r1]
adds r0, r6, 0
orrs r0, r2
strb r0, [r1]
ldr r3, _08104B98 @ =gSaveBlock1Ptr
ldr r1, [r3]
movs r0, 0xBF
lsls r0, 3
adds r1, r0
adds r1, r4
ldrb r2, [r1]
adds r0, r6, 0
orrs r0, r2
strb r0, [r1]
ldr r1, [r3]
ldr r3, _08104B9C @ =0x00003a18
adds r1, r3
b _08104BA6
.align 2, 0
_08104B94: .4byte gSaveBlock2Ptr
_08104B98: .4byte gSaveBlock1Ptr
_08104B9C: .4byte 0x00003a18
_08104BA0:
ldr r0, _08104BB8 @ =gSaveBlock2Ptr
ldr r1, [r0]
adds r1, 0x28
_08104BA6:
adds r1, r4
ldrb r2, [r1]
adds r0, r6, 0
orrs r0, r2
strb r0, [r1]
_08104BB0:
mov r0, r12
pop {r4-r7}
pop {r1}
bx r1
.align 2, 0
_08104BB8: .4byte gSaveBlock2Ptr
thumb_func_end sub_8104AB0
thumb_func_start sub_8104BBC
sub_8104BBC: @ 8104BBC
push {r4-r7,lr}
lsls r0, 24
lsrs r6, r0, 24
lsls r1, 24
lsrs r1, 24
movs r5, 0
cmp r1, 0
beq _08104BD2
cmp r1, 0x1
beq _08104BF8
b _08104C1E
_08104BD2:
movs r0, 0
_08104BD4:
adds r0, 0x1
lsls r0, 16
lsrs r4, r0, 16
adds r0, r4, 0
adds r1, r6, 0
movs r2, 0
bl sub_8104AB0
lsls r0, 24
cmp r0, 0
beq _08104BF0
adds r0, r5, 0x1
lsls r0, 16
lsrs r5, r0, 16
_08104BF0:
adds r0, r4, 0
cmp r0, 0x96
bls _08104BD4
b _08104C1E
_08104BF8:
movs r0, 0
ldr r7, _08104C28 @ =0x00000181
_08104BFC:
adds r0, 0x1
lsls r0, 16
lsrs r4, r0, 16
adds r0, r4, 0
adds r1, r6, 0
movs r2, 0
bl sub_8104AB0
lsls r0, 24
cmp r0, 0
beq _08104C18
adds r0, r5, 0x1
lsls r0, 16
lsrs r5, r0, 16
_08104C18:
adds r0, r4, 0
cmp r0, r7
bls _08104BFC
_08104C1E:
adds r0, r5, 0
pop {r4-r7}
pop {r1}
bx r1
.align 2, 0
_08104C28: .4byte 0x00000181
thumb_func_end sub_8104BBC
thumb_func_start sub_8104C2C
sub_8104C2C: @ 8104C2C
push {r4,lr}
sub sp, 0x8
adds r4, r0, 0
movs r0, 0
adds r1, r4, 0
movs r2, 0
bl GetStringWidth
movs r1, 0x14
negs r1, r1
adds r3, r1, 0
subs r3, r0
lsls r3, 24
lsrs r3, 24
movs r0, 0x2
str r0, [sp]
movs r0, 0x4
str r0, [sp, 0x4]
movs r0, 0x1
movs r1, 0
adds r2, r4, 0
bl sub_81047C8
add sp, 0x8
pop {r4}
pop {r0}
bx r0
thumb_func_end sub_8104C2C
thumb_func_start sub_8104C64
sub_8104C64: @ 8104C64
push {r4-r7,lr}
mov r7, r9
mov r6, r8
push {r6,r7}
sub sp, 0x20
lsls r0, 16
lsrs r0, 16
mov r8, r0
lsls r1, 24
lsrs r5, r1, 24
lsls r2, 24
movs r0, 0xFF
lsls r0, 24
adds r2, r0
lsrs r2, 24
mov r9, r2
ldr r1, _08104D50 @ =gUnknown_845228C
ldr r2, _08104D54 @ =gUnknown_8452334
mov r3, r9
lsls r0, r3, 2
adds r6, r0, r2
ldr r0, [r6]
lsls r4, r5, 2
adds r0, r4, r0
ldrb r2, [r0]
ldrb r3, [r0, 0x1]
movs r0, 0x8
str r0, [sp]
str r0, [sp, 0x4]
adds r0, r5, 0x5
lsls r0, 24
lsrs r0, 24
str r0, [sp, 0x8]
movs r0, 0x3
bl CopyToBgTilemapBufferRect_ChangePalette
ldr r7, _08104D58 @ =gUnknown_203ACF0
ldr r0, [r7]
adds r0, 0x20
adds r1, r0, r5
ldrb r0, [r1]
cmp r0, 0xFF
bne _08104D6C
ldr r0, _08104D5C @ =gUnknown_84521C4
ldr r1, [r0, 0x4]
ldr r0, [r0]
str r0, [sp, 0x18]
str r1, [sp, 0x1C]
ldr r0, [r6]
adds r0, r4, r0
ldrb r0, [r0]
lsls r0, 8
ldr r3, _08104D60 @ =0xffff00ff
ldr r2, [sp, 0x18]
ands r2, r3
orrs r2, r0
str r2, [sp, 0x18]
ldr r0, [r6]
adds r0, r4, r0
ldrb r1, [r0, 0x1]
lsls r1, 16
ldr r0, _08104D64 @ =0xff00ffff
ands r0, r2
orrs r0, r1
str r0, [sp, 0x18]
adds r1, r5, 0x1
lsls r1, 24
lsrs r1, 16
ldr r0, [sp, 0x1C]
ands r0, r3
orrs r0, r1
lsls r1, r5, 6
adds r1, 0x8
lsls r1, 16
ldr r2, _08104D68 @ =0x0000ffff
ands r0, r2
orrs r0, r1
str r0, [sp, 0x1C]
add r0, sp, 0x18
bl AddWindow
ldr r1, [r7]
adds r1, 0x20
adds r1, r5
strb r0, [r1]
ldr r0, [r7]
adds r0, 0x20
adds r0, r5
ldrb r0, [r0]
movs r1, 0
bl FillWindowPixelBuffer
ldr r0, [r7]
adds r0, 0x20
adds r0, r5
ldrb r0, [r0]
lsls r2, r5, 20
movs r1, 0x80
lsls r1, 13
adds r2, r1
lsrs r2, 16
mov r1, r8
bl sub_81049FC
ldr r0, [r7]
adds r0, 0x20
adds r0, r5
ldrb r0, [r0]
bl PutWindowTilemap
ldr r0, [r7]
adds r0, 0x20
adds r0, r5
ldrb r0, [r0]
movs r1, 0x2
bl CopyWindowToVram
b _08104D72
.align 2, 0
_08104D50: .4byte gUnknown_845228C
_08104D54: .4byte gUnknown_8452334
_08104D58: .4byte gUnknown_203ACF0
_08104D5C: .4byte gUnknown_84521C4
_08104D60: .4byte 0xffff00ff
_08104D64: .4byte 0xff00ffff
_08104D68: .4byte 0x0000ffff
_08104D6C:
ldrb r0, [r1]
bl PutWindowTilemap
_08104D72:
ldr r6, _08104E60 @ =gUnknown_203ACF0
ldr r0, [r6]
adds r0, 0x24
adds r1, r0, r5
ldrb r0, [r1]
cmp r0, 0xFF
bne _08104E78
mov r3, r8
cmp r3, 0
beq _08104E7E
ldr r0, _08104E64 @ =gUnknown_84521CC
ldr r1, [r0, 0x4]
ldr r0, [r0]
str r0, [sp, 0x18]
str r1, [sp, 0x1C]
ldr r0, _08104E68 @ =gUnknown_8452334
mov r1, r9
lsls r2, r1, 2
adds r2, r0
ldr r0, [r2]
lsls r1, r5, 2
adds r0, r1, r0
ldrb r0, [r0, 0x2]
add r3, sp, 0x18
movs r4, 0
strb r0, [r3, 0x1]
ldr r0, [r2]
adds r0, r1, r0
ldrb r0, [r0, 0x3]
strb r0, [r3, 0x2]
adds r1, r5
lsls r1, 3
movs r0, 0x84
lsls r0, 1
adds r1, r0
strh r1, [r3, 0x6]
adds r0, r3, 0
bl AddWindow
ldr r1, [r6]
adds r1, 0x24
adds r1, r5
strb r0, [r1]
ldr r0, [r6]
adds r0, 0x24
adds r0, r5
ldrb r0, [r0]
ldr r1, _08104E6C @ =gUnknown_8440124
movs r2, 0
movs r3, 0
bl CopyToWindowPixelBuffer
ldr r0, [r6]
adds r0, 0x24
adds r0, r5
ldrb r0, [r0]
str r4, [sp]
movs r1, 0
mov r2, r8
movs r3, 0xC
bl sub_8104A34
ldr r0, [r6]
adds r0, 0x24
adds r0, r5
ldrb r0, [r0]
movs r1, 0xB
mov r2, r8
muls r2, r1
ldr r1, _08104E70 @ =gSpeciesNames
adds r2, r1
movs r1, 0xD
str r1, [sp]
str r4, [sp, 0x4]
movs r1, 0x2
movs r3, 0x2
bl sub_81047C8
mov r0, r8
movs r1, 0x1
movs r2, 0x1
bl sub_8104AB0
lsls r0, 24
cmp r0, 0
beq _08104E42
ldr r0, [r6]
adds r0, 0x24
adds r0, r5
ldrb r0, [r0]
ldr r1, _08104E74 @ =gUnknown_8443600
movs r3, 0x8
str r3, [sp]
str r3, [sp, 0x4]
movs r2, 0x2
str r2, [sp, 0x8]
movs r2, 0x3
str r2, [sp, 0xC]
str r3, [sp, 0x10]
str r3, [sp, 0x14]
movs r2, 0
movs r3, 0
bl BlitBitmapRectToWindow
_08104E42:
ldr r0, [r6]
adds r0, 0x24
adds r0, r5
ldrb r0, [r0]
bl PutWindowTilemap
ldr r0, [r6]
adds r0, 0x24
adds r0, r5
ldrb r0, [r0]
movs r1, 0x2
bl CopyWindowToVram
b _08104E7E
.align 2, 0
_08104E60: .4byte gUnknown_203ACF0
_08104E64: .4byte gUnknown_84521CC
_08104E68: .4byte gUnknown_8452334
_08104E6C: .4byte gUnknown_8440124
_08104E70: .4byte gSpeciesNames
_08104E74: .4byte gUnknown_8443600
_08104E78:
ldrb r0, [r1]
bl PutWindowTilemap
_08104E7E:
movs r0, 0x1
add sp, 0x20
pop {r3,r4}
mov r8, r3
mov r9, r4
pop {r4-r7}
pop {r1}
bx r1
thumb_func_end sub_8104C64
thumb_func_start sub_8104E90
sub_8104E90: @ 8104E90
push {r4,r5,lr}
movs r4, 0
ldr r5, _08104EBC @ =gUnknown_203ACF0
_08104E96:
adds r1, r4, 0
adds r1, 0x20
ldr r0, [r5]
adds r0, r1
bl sub_81047B0
adds r1, r4, 0
adds r1, 0x24
ldr r0, [r5]
adds r0, r1
bl sub_81047B0
adds r4, 0x1
cmp r4, 0x3
ble _08104E96
pop {r4,r5}
pop {r0}
bx r0
.align 2, 0
_08104EBC: .4byte gUnknown_203ACF0
thumb_func_end sub_8104E90
thumb_func_start sub_8104EC0
sub_8104EC0: @ 8104EC0
push {r4,r5,lr}
sub sp, 0x20
adds r4, r1, 0
adds r5, r2, 0
lsls r4, 16
lsrs r4, 16
lsls r5, 16
lsrs r5, 16
ldr r1, _08104F08 @ =gUnknown_8416002
mov r0, sp
bl StringCopy
adds r1, r0, 0
adds r1, r4, 0
movs r2, 0x1
movs r3, 0x2
bl ConvertIntToDecimalStringN
adds r1, r0, 0
movs r0, 0xBA
strb r0, [r1]
adds r1, 0x1
adds r0, r1, 0
adds r1, r5, 0
movs r2, 0x1
movs r3, 0x2
bl ConvertIntToDecimalStringN
mov r0, sp
movs r1, 0x2
bl sub_8106E78
add sp, 0x20
pop {r4,r5}
pop {r0}
bx r0
.align 2, 0
_08104F08: .4byte gUnknown_8416002
thumb_func_end sub_8104EC0
thumb_func_start sub_8104F0C
sub_8104F0C: @ 8104F0C
push {r4-r6,lr}
sub sp, 0x8
lsls r0, 24
lsrs r6, r0, 24
movs r0, 0x1E
str r0, [sp]
movs r4, 0x14
str r4, [sp, 0x4]
movs r0, 0x3
movs r1, 0x2
movs r2, 0
movs r3, 0
bl FillBgTilemapBufferRect_Palette0
movs r5, 0x20
str r5, [sp]
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
ldr r5, _08104F80 @ =gUnknown_203ACF0
ldr r1, [r5]
adds r0, r1, 0
adds r0, 0x28
ldrb r0, [r0]
adds r1, 0x2B
ldrb r1, [r1]
bl sub_81068DC
movs r0, 0
movs r1, 0xFF
bl FillWindowPixelBuffer
cmp r6, 0
beq _08104F88
ldr r1, _08104F84 @ =gUnknown_8452344
ldr r0, [r5]
adds r0, 0x28
ldrb r0, [r0]
lsls r0, 2
adds r0, r1
ldr r0, [r0]
movs r1, 0x1
bl sub_8106E78
b _08104FD0
.align 2, 0
_08104F80: .4byte gUnknown_203ACF0
_08104F84: .4byte gUnknown_8452344
_08104F88:
ldr r1, _08105048 @ =gUnknown_8452344
ldr r0, [r5]
adds r0, 0x28
ldrb r0, [r0]
lsls r0, 2
adds r0, r1
ldr r0, [r0]
movs r1, 0
bl sub_8106E78
ldr r0, [r5]
adds r0, 0x2B
ldrb r0, [r0]
bl sub_8106AF8
adds r4, r0, 0
lsls r4, 24
lsrs r4, 24
ldr r0, [r5]
adds r0, 0x2A
ldrb r0, [r0]
subs r0, 0x1
lsls r0, 16
lsrs r0, 16
bl sub_8106AF8
adds r2, r0, 0
lsls r2, 24
lsrs r2, 24
movs r0, 0x2
str r0, [sp]
movs r0, 0
adds r1, r4, 0
movs r3, 0xA0
bl sub_8104EC0
_08104FD0:
movs r0, 0
movs r1, 0x2
bl CopyWindowToVram
movs r0, 0x1
movs r1, 0xFF
bl FillWindowPixelBuffer
cmp r6, 0
bne _08104FEA
ldr r0, _0810504C @ =gUnknown_8415F6C
bl sub_8104C2C
_08104FEA:
movs r0, 0x1
movs r1, 0x2
bl CopyWindowToVram
ldr r5, _08105050 @ =gUnknown_203ACF0
ldr r1, [r5]
ldrh r0, [r1, 0x18]
ldr r4, _08105054 @ =0x0000ffff
cmp r0, r4
beq _08105008
adds r1, 0x2C
ldrb r2, [r1]
movs r1, 0
bl sub_8104C64
_08105008:
ldr r1, [r5]
ldrh r0, [r1, 0x1A]
cmp r0, r4
beq _0810501A
adds r1, 0x2C
ldrb r2, [r1]
movs r1, 0x1
bl sub_8104C64
_0810501A:
ldr r1, [r5]
ldrh r0, [r1, 0x1C]
cmp r0, r4
beq _0810502C
adds r1, 0x2C
ldrb r2, [r1]
movs r1, 0x2
bl sub_8104C64
_0810502C:
ldr r1, [r5]
ldrh r0, [r1, 0x1E]
cmp r0, r4
beq _0810503E
adds r1, 0x2C
ldrb r2, [r1]
movs r1, 0x3
bl sub_8104C64
_0810503E:
movs r0, 0
add sp, 0x8
pop {r4-r6}
pop {r1}
bx r1
.align 2, 0
_08105048: .4byte gUnknown_8452344
_0810504C: .4byte gUnknown_8415F6C
_08105050: .4byte gUnknown_203ACF0
_08105054: .4byte 0x0000ffff
thumb_func_end sub_8104F0C
thumb_func_start sub_8105058
sub_8105058: @ 8105058
push {r4-r7,lr}
mov r7, r10
mov r6, r9
mov r5, r8
push {r5-r7}
sub sp, 0x4
lsls r0, 24
lsrs r0, 24
str r0, [sp]
cmp r0, 0xFF
bne _081050C0
ldr r7, _081050B4 @ =gUnknown_84406C8
movs r6, 0xB0
lsls r6, 15
movs r5, 0xA4
lsls r5, 15
movs r4, 0x3
_0810507A:
lsrs r1, r5, 16
adds r0, r7, 0
movs r2, 0x2
bl LoadPalette
lsrs r1, r6, 16
adds r0, r7, 0x2
movs r2, 0x2
bl LoadPalette
movs r0, 0x80
lsls r0, 13
adds r6, r0
adds r5, r0
subs r4, 0x1
cmp r4, 0
bge _0810507A
ldr r0, _081050B4 @ =gUnknown_84406C8
ldr r1, _081050B8 @ =0x00000141
movs r2, 0x2
bl LoadPalette
ldr r0, _081050BC @ =gUnknown_203ACF0
ldr r0, [r0]
adds r0, 0x2E
movs r1, 0
strb r1, [r0]
b _0810515E
.align 2, 0
_081050B4: .4byte gUnknown_84406C8
_081050B8: .4byte 0x00000141
_081050BC: .4byte gUnknown_203ACF0
_081050C0:
ldr r2, _08105120 @ =gUnknown_203ACF0
ldr r1, [r2]
adds r1, 0x2E
ldrb r0, [r1]
adds r0, 0x1
strb r0, [r1]
ldr r0, [r2]
adds r1, r0, 0
adds r1, 0x2E
ldrb r0, [r1]
cmp r0, 0x10
bne _081050DC
movs r0, 0
strb r0, [r1]
_081050DC:
ldr r0, [r2]
adds r0, 0x2E
ldrb r0, [r0]
lsrs r7, r0, 2
movs r4, 0
lsls r0, r7, 2
mov r8, r0
ldr r0, _08105124 @ =gUnknown_84406CC
mov r10, r0
movs r6, 0xB0
lsls r6, 15
movs r5, 0xA4
lsls r5, 15
movs r0, 0x4
negs r0, r0
add r0, r10
mov r9, r0
_081050FE:
ldr r0, [sp]
cmp r4, r0
bne _0810512C
lsrs r1, r5, 16
mov r0, r8
add r0, r10
movs r2, 0x2
bl LoadPalette
lsrs r1, r6, 16
ldr r0, _08105128 @ =gUnknown_84406CE
add r0, r8
movs r2, 0x2
bl LoadPalette
b _08105142
.align 2, 0
_08105120: .4byte gUnknown_203ACF0
_08105124: .4byte gUnknown_84406CC
_08105128: .4byte gUnknown_84406CE
_0810512C:
lsrs r1, r5, 16
mov r0, r9
movs r2, 0x2
bl LoadPalette
lsrs r1, r6, 16
mov r0, r9
adds r0, 0x2
movs r2, 0x2
bl LoadPalette
_08105142:
lsls r1, r7, 2
movs r0, 0x80
lsls r0, 13
adds r6, r0
adds r5, r0
adds r4, 0x1
cmp r4, 0x3
ble _081050FE
ldr r0, _08105170 @ =gUnknown_84406CC
adds r0, r1, r0
ldr r1, _08105174 @ =0x00000141
movs r2, 0x2
bl LoadPalette
_0810515E:
add sp, 0x4
pop {r3-r5}
mov r8, r3
mov r9, r4
mov r10, r5
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
_08105170: .4byte gUnknown_84406CC
_08105174: .4byte 0x00000141
thumb_func_end sub_8105058
thumb_func_start sub_8105178
sub_8105178: @ 8105178
push {lr}
lsls r0, 24
lsrs r0, 24
lsls r1, 24
lsls r2, 24
movs r3, 0xFF
lsls r3, 24
adds r2, r3
ldr r3, _081051A8 @ =gUnknown_8452334
lsrs r2, 22
adds r2, r3
ldr r2, [r2]
lsrs r1, 22
adds r1, r2
ldrb r3, [r1, 0x2]
lsls r3, 3
ldrb r2, [r1, 0x3]
lsls r2, 3
adds r1, r3, 0
movs r3, 0
bl ListMenuUpdateCursorObject
pop {r0}
bx r0
.align 2, 0
_081051A8: .4byte gUnknown_8452334
thumb_func_end sub_8105178
thumb_func_start sub_81051AC
sub_81051AC: @ 81051AC
push {lr}
lsls r1, 24
lsls r3, 24
lsrs r1, 23
adds r1, r0, r1
lsrs r3, 23
adds r2, r3
movs r3, 0x13
_081051BC:
ldrh r0, [r1]
strh r0, [r2]
adds r2, 0x40
adds r1, 0x40
subs r3, 0x1
cmp r3, 0
bge _081051BC
movs r0, 0
pop {r1}
bx r1
thumb_func_end sub_81051AC
thumb_func_start sub_81051D0
sub_81051D0: @ 81051D0
push {lr}
lsls r0, 16
lsrs r0, 16
lsls r2, 24
lsrs r2, 23
adds r1, r2
movs r2, 0x13
_081051DE:
strh r0, [r1]
adds r1, 0x40
subs r2, 0x1
cmp r2, 0
bge _081051DE
movs r0, 0
pop {r1}
bx r1
thumb_func_end sub_81051D0
thumb_func_start sub_81051F0
sub_81051F0: @ 81051F0
push {r4-r7,lr}
mov r7, r10
mov r6, r9
mov r5, r8
push {r5-r7}
sub sp, 0x10
adds r4, r0, 0
lsls r4, 24
lsrs r4, 24
movs r0, 0x1
bl GetBgTilemapBuffer
mov r10, r0
movs r0, 0x2
bl GetBgTilemapBuffer
mov r9, r0
movs r0, 0x3
bl GetBgTilemapBuffer
mov r8, r0
ldr r0, _0810526C @ =gUnknown_203ACF0
ldr r0, [r0]
ldr r0, [r0, 0x5C]
movs r1, 0x80
lsls r1, 5
adds r1, r0, r1
str r1, [sp, 0x4]
movs r1, 0x80
lsls r1, 4
adds r1, r0, r1
str r1, [sp, 0x8]
str r0, [sp, 0xC]
movs r0, 0
str r0, [sp]
ldr r1, _08105270 @ =gUnknown_8452388
movs r7, 0
lsls r0, r4, 4
subs r0, r4
lsls r0, 1
adds r6, r0, r1
_08105242:
ldrb r4, [r6]
cmp r4, 0x1E
bne _08105274
lsrs r4, r7, 24
movs r0, 0
mov r1, r10
adds r2, r4, 0
bl sub_81051D0
movs r0, 0
mov r1, r9
adds r2, r4, 0
bl sub_81051D0
movs r0, 0xC
mov r1, r8
adds r2, r4, 0
bl sub_81051D0
b _0810529A
.align 2, 0
_0810526C: .4byte gUnknown_203ACF0
_08105270: .4byte gUnknown_8452388
_08105274:
lsrs r5, r7, 24
ldr r0, [sp, 0x4]
adds r1, r4, 0
mov r2, r10
adds r3, r5, 0
bl sub_81051AC
ldr r0, [sp, 0x8]
adds r1, r4, 0
mov r2, r9
adds r3, r5, 0
bl sub_81051AC
ldr r0, [sp, 0xC]
adds r1, r4, 0
mov r2, r8
adds r3, r5, 0
bl sub_81051AC
_0810529A:
movs r1, 0x80
lsls r1, 17
adds r7, r1
adds r6, 0x1
ldr r0, [sp]
adds r0, 0x1
str r0, [sp]
cmp r0, 0x1D
ble _08105242
movs r0, 0x1
bl CopyBgTilemapBufferToVram
movs r0, 0x2
bl CopyBgTilemapBufferToVram
movs r0, 0x3
bl CopyBgTilemapBufferToVram
movs r0, 0
add sp, 0x10
pop {r3-r5}
mov r8, r3
mov r9, r4
mov r10, r5
pop {r4-r7}
pop {r1}
bx r1
thumb_func_end sub_81051F0
thumb_func_start sub_81052D0
sub_81052D0: @ 81052D0
push {r4-r6,lr}
sub sp, 0x8
lsls r0, 24
lsrs r6, r0, 24
bl sub_806E25C
cmp r0, 0
beq _081052E8
ldr r0, _081052E4 @ =gUnknown_84406E0
b _081052EA
.align 2, 0
_081052E4: .4byte gUnknown_84406E0
_081052E8:
ldr r0, _08105304 @ =gUnknown_84404C8
_081052EA:
ldrh r4, [r0, 0xE]
ldr r1, _08105308 @ =gUnknown_203ACF0
ldr r0, [r1]
ldrb r0, [r0, 0x2]
adds r5, r1, 0
cmp r0, 0x9
bls _081052FA
b _0810557C
_081052FA:
lsls r0, 2
ldr r1, _0810530C @ =_08105310
adds r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_08105304: .4byte gUnknown_84404C8
_08105308: .4byte gUnknown_203ACF0
_0810530C: .4byte _08105310
.align 2, 0
_08105310:
.4byte _08105338
.4byte _08105358
.4byte _08105364
.4byte _08105384
.4byte _081053DC
.4byte _0810547C
.4byte _08105492
.4byte _081054F0
.4byte _08105528
.4byte _0810555C
_08105338:
movs r0, 0xC0
lsls r0, 5
bl Alloc
ldr r1, _08105350 @ =gUnknown_203ACF0
ldr r1, [r1]
str r0, [r1, 0x5C]
cmp r6, 0
beq _08105354
movs r0, 0x6
b _0810557A
.align 2, 0
_08105350: .4byte gUnknown_203ACF0
_08105354:
movs r0, 0x2
b _0810557A
_08105358:
ldr r0, [r5]
ldr r0, [r0, 0x5C]
bl Free
movs r0, 0x1
b _0810557E
_08105364:
ldr r0, _0810537C @ =0x00007fff
str r4, [sp]
movs r1, 0
movs r2, 0
movs r3, 0x10
bl BeginNormalPaletteFade
ldr r0, _08105380 @ =gUnknown_203ACF0
ldr r1, [r0]
ldrb r0, [r1, 0x2]
adds r0, 0x1
b _0810557A
.align 2, 0
_0810537C: .4byte 0x00007fff
_08105380: .4byte gUnknown_203ACF0
_08105384:
movs r0, 0x1E
str r0, [sp]
movs r4, 0x14
str r4, [sp, 0x4]
movs r0, 0x3
movs r1, 0xC
movs r2, 0
movs r3, 0
bl FillBgTilemapBufferRect_Palette0
movs r5, 0x20
str r5, [sp]
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
movs r0, 0x1
bl CopyBgTilemapBufferToVram
movs r0, 0x2
bl CopyBgTilemapBufferToVram
movs r0, 0x3
bl CopyBgTilemapBufferToVram
ldr r0, _081053D8 @ =gUnknown_203ACF0
ldr r1, [r0]
ldrb r0, [r1, 0x2]
adds r0, 0x1
b _0810557A
.align 2, 0
_081053D8: .4byte gUnknown_203ACF0
_081053DC:
ldr r0, _08105474 @ =0x00007fff
str r4, [sp]
movs r1, 0
movs r2, 0
movs r3, 0
bl BeginNormalPaletteFade
movs r0, 0
bl sub_8104F0C
movs r0, 0x3
bl GetBgTilemapBuffer
ldr r6, _08105478 @ =gUnknown_203ACF0
ldr r1, [r6]
ldr r1, [r1, 0x5C]
movs r4, 0x80
lsls r4, 2
adds r2, r4, 0
bl CpuFastSet
movs r0, 0x2
bl GetBgTilemapBuffer
ldr r1, [r6]
ldr r1, [r1, 0x5C]
movs r2, 0x80
lsls r2, 4
adds r1, r2
adds r2, r4, 0
bl CpuFastSet
movs r0, 0x1
bl GetBgTilemapBuffer
ldr r1, [r6]
ldr r1, [r1, 0x5C]
movs r2, 0x80
lsls r2, 5
adds r1, r2
adds r2, r4, 0
bl CpuFastSet
movs r0, 0x1E
str r0, [sp]
movs r4, 0x14
str r4, [sp, 0x4]
movs r0, 0x3
movs r1, 0xC
movs r2, 0
movs r3, 0
bl FillBgTilemapBufferRect_Palette0
movs r5, 0x20
str r5, [sp]
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
ldr r1, [r6]
movs r0, 0
strb r0, [r1, 0x3]
ldr r1, [r6]
b _081054DC
.align 2, 0
_08105474: .4byte 0x00007fff
_08105478: .4byte gUnknown_203ACF0
_0810547C:
ldr r1, [r5]
ldrb r0, [r1, 0x3]
cmp r0, 0x9
bhi _08105578
bl sub_81051F0
ldr r1, [r5]
ldrb r0, [r1, 0x3]
adds r0, 0x1
strb r0, [r1, 0x3]
b _0810557C
_08105492:
movs r0, 0x3
bl GetBgTilemapBuffer
ldr r4, _081054EC @ =gUnknown_203ACF0
ldr r1, [r4]
ldr r1, [r1, 0x5C]
movs r5, 0x80
lsls r5, 2
adds r2, r5, 0
bl CpuFastSet
movs r0, 0x2
bl GetBgTilemapBuffer
ldr r1, [r4]
ldr r1, [r1, 0x5C]
movs r2, 0x80
lsls r2, 4
adds r1, r2
adds r2, r5, 0
bl CpuFastSet
movs r0, 0x1
bl GetBgTilemapBuffer
ldr r1, [r4]
ldr r1, [r1, 0x5C]
movs r2, 0x80
lsls r2, 5
adds r1, r2
adds r2, r5, 0
bl CpuFastSet
ldr r1, [r4]
movs r0, 0x9
strb r0, [r1, 0x3]
ldr r1, [r4]
_081054DC:
ldrb r0, [r1, 0x2]
adds r0, 0x1
strb r0, [r1, 0x2]
movs r0, 0x6B
bl PlaySE
b _0810557C
.align 2, 0
_081054EC: .4byte gUnknown_203ACF0
_081054F0:
ldr r1, [r5]
ldrb r0, [r1, 0x3]
cmp r0, 0
beq _08105506
bl sub_81051F0
ldr r1, [r5]
ldrb r0, [r1, 0x3]
subs r0, 0x1
strb r0, [r1, 0x3]
b _0810557C
_08105506:
ldrb r0, [r1, 0x2]
bl sub_81051F0
ldr r0, _08105524 @ =0x00007fff
str r4, [sp]
movs r1, 0
movs r2, 0x10
movs r3, 0x10
bl BeginNormalPaletteFade
ldr r1, [r5]
ldrb r0, [r1, 0x2]
adds r0, 0x1
b _0810557A
.align 2, 0
_08105524: .4byte 0x00007fff
_08105528:
ldr r2, _08105554 @ =gPaletteFade
ldrb r0, [r2, 0x8]
movs r1, 0x80
orrs r0, r1
strb r0, [r2, 0x8]
movs r0, 0
bl sub_8104F0C
movs r0, 0x1
bl CopyBgTilemapBufferToVram
movs r0, 0x2
bl CopyBgTilemapBufferToVram
movs r0, 0x3
bl CopyBgTilemapBufferToVram
ldr r0, _08105558 @ =gUnknown_203ACF0
ldr r1, [r0]
ldrb r0, [r1, 0x2]
adds r0, 0x1
b _0810557A
.align 2, 0
_08105554: .4byte gPaletteFade
_08105558: .4byte gUnknown_203ACF0
_0810555C:
ldr r2, _08105588 @ =gPaletteFade
ldrb r1, [r2, 0x8]
movs r0, 0x7F
ands r0, r1
strb r0, [r2, 0x8]
ldr r0, _0810558C @ =0x00007fff
str r4, [sp]
movs r1, 0
movs r2, 0x10
movs r3, 0
bl BeginNormalPaletteFade
ldr r0, _08105590 @ =gUnknown_203ACF0
ldr r1, [r0]
_08105578:
movs r0, 0x1
_0810557A:
strb r0, [r1, 0x2]
_0810557C:
movs r0, 0
_0810557E:
add sp, 0x8
pop {r4-r6}
pop {r1}
bx r1
.align 2, 0
_08105588: .4byte gPaletteFade
_0810558C: .4byte 0x00007fff
_08105590: .4byte gUnknown_203ACF0
thumb_func_end sub_81052D0
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 @ =gUnknown_844E850
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]
cmp r0, 0
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]
cmp r0, 0
beq _08105878
cmp r4, 0xA
bls _08105840
b _08105878
.align 2, 0
_08105860: .4byte gUnknown_844E850
_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 @ =gUnknown_844E850
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 gUnknown_844E850
_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 @ =gUnknown_844E850
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 gUnknown_844E850
_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 @ =gUnknown_844E850
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 gUnknown_844E850
_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 @ =gUnknown_843FAB0
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 gUnknown_843FAB0
_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 sub_80CC204
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 sub_8107D38
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 @ =gUnknown_844E850
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 gUnknown_844E850
_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 sub_806E25C
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 @ =gUnknown_8452C4C
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 gUnknown_8452C4C
_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 @ =gUnknown_8452C4C
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 gUnknown_8452C4C
_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 @ =gUnknown_8452C4C
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 @ =gUnknown_8452C4C
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 gUnknown_8452C4C
_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 @ =gUnknown_8452C4C
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 gUnknown_8452C4C
_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 @ =gUnknown_8452C4C
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 gUnknown_8452C4C
_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 sub_806E25C
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.