Files
pokeemerald-jp/asm/evolution_scene.s
2019-09-27 01:42:56 -04:00

4511 lines
78 KiB
ArmAsm

.include "asm/macros.inc"
.include "constants/constants.inc"
.text
.syntax unified
thumb_func_start BeginEvolutionScene
BeginEvolutionScene: @ 0x0813DB44
push {r4, r5, r6, lr}
adds r4, r1, #0
adds r5, r2, #0
adds r6, r3, #0
lsls r4, r4, #0x10
lsrs r4, r4, #0x10
lsls r5, r5, #0x18
lsrs r5, r5, #0x18
lsls r6, r6, #0x18
lsrs r6, r6, #0x18
ldr r0, _0813DB84
movs r1, #0
bl CreateTask
lsls r0, r0, #0x18
lsrs r0, r0, #0x18
ldr r2, _0813DB88
lsls r1, r0, #2
adds r1, r1, r0
lsls r1, r1, #3
adds r1, r1, r2
movs r0, #0
strh r0, [r1, #8]
strh r4, [r1, #0xc]
strh r5, [r1, #0xe]
strh r6, [r1, #0x1c]
ldr r0, _0813DB8C
bl SetMainCallback2
pop {r4, r5, r6}
pop {r0}
bx r0
.align 2, 0
_0813DB84: .4byte 0x0813DAC5
_0813DB88: .4byte 0x03005B60
_0813DB8C: .4byte 0x0813DAB5
thumb_func_end BeginEvolutionScene
thumb_func_start EvolutionScene
EvolutionScene: @ 0x0813DB90
push {r4, r5, r6, r7, lr}
mov r7, sl
mov r6, sb
mov r5, r8
push {r5, r6, r7}
sub sp, #0x24
adds r4, r0, #0
mov sb, r1
mov r0, sb
lsls r0, r0, #0x10
lsrs r0, r0, #0x10
mov sb, r0
lsls r2, r2, #0x18
lsrs r2, r2, #0x18
str r2, [sp, #0x18]
lsls r3, r3, #0x18
lsrs r3, r3, #0x18
str r3, [sp, #0x1c]
movs r0, #0
bl SetHBlankCallback
movs r0, #0
bl SetVBlankCallback
movs r1, #0
str r1, [sp, #0x14]
add r0, sp, #0x14
movs r1, #0xc0
lsls r1, r1, #0x13
ldr r2, _0813DE14
bl CpuSet
movs r0, #0x4c
movs r1, #0
bl SetGpuReg
movs r0, #0x40
movs r1, #0
bl SetGpuReg
movs r0, #0x44
movs r1, #0
bl SetGpuReg
movs r0, #0x42
movs r1, #0
bl SetGpuReg
movs r0, #0x46
movs r1, #0
bl SetGpuReg
movs r0, #0x48
movs r1, #0
bl SetGpuReg
movs r0, #0x4a
movs r1, #0
bl SetGpuReg
bl ResetPaletteFade
ldr r0, _0813DE18
movs r2, #0
strh r2, [r0]
ldr r0, _0813DE1C
strh r2, [r0]
ldr r0, _0813DE20
strh r2, [r0]
ldr r0, _0813DE24
strh r2, [r0]
ldr r0, _0813DE28
strh r2, [r0]
ldr r0, _0813DE2C
strh r2, [r0]
ldr r1, _0813DE30
movs r2, #0x80
lsls r2, r2, #1
adds r0, r2, #0
strh r0, [r1]
ldr r0, _0813DE34
movs r1, #0
strh r1, [r0]
ldr r1, _0813DE38
movs r0, #9
strb r0, [r1]
bl sub_08035528
bl LoadBattleTextboxAndBackground
bl ResetSpriteData
bl ScanlineEffect_Stop
bl ResetTasks
bl FreeAllSpritePalettes
ldr r0, _0813DE3C
movs r2, #4
strb r2, [r0]
movs r0, #0x64
bl AllocZeroed
ldr r1, _0813DE40
str r0, [r1]
bl AllocateMonSpritesGfx
adds r0, r4, #0
movs r1, #2
mov r2, sp
bl GetMonData
ldr r0, _0813DE44
mov r1, sp
bl StringCopy10
ldr r0, _0813DE48
mov r2, sb
lsls r1, r2, #1
add r1, sb
lsls r1, r1, #1
ldr r2, _0813DE4C
adds r1, r1, r2
bl StringCopy
adds r0, r4, #0
movs r1, #0xb
bl GetMonData
adds r5, r0, #0
lsls r5, r5, #0x10
lsrs r5, r5, #0x10
adds r0, r4, #0
movs r1, #1
bl GetMonData
str r0, [sp, #0x20]
adds r0, r4, #0
movs r1, #0
bl GetMonData
mov sl, r0
lsls r0, r5, #3
ldr r1, _0813DE50
adds r0, r0, r1
ldr r2, _0813DE54
ldr r1, [r2]
ldr r1, [r1, #8]
adds r2, r5, #0
bl DecompressPicFromTable_2
adds r0, r5, #0
ldr r1, [sp, #0x20]
mov r2, sl
bl GetMonSpritePalStructFromOtIdPersonality
ldr r0, [r0]
movs r1, #0x88
lsls r1, r1, #1
movs r2, #0x20
bl LoadCompressedPalette
adds r0, r5, #0
movs r1, #1
bl SetMultiuseSpriteTemplateToPokemon
ldr r0, _0813DE58
mov r8, r0
ldr r1, _0813DE5C
str r1, [r0, #0x10]
movs r1, #0x78
movs r2, #0x40
movs r3, #0x1e
bl CreateSprite
ldr r1, _0813DE40
ldr r2, [r1]
lsls r1, r0, #0x18
lsrs r3, r1, #0x18
strb r0, [r2]
ldr r7, _0813DE60
lsls r1, r3, #4
adds r1, r1, r3
lsls r1, r1, #2
adds r6, r7, #0
adds r6, #0x1c
adds r0, r1, r6
ldr r2, _0813DE64
str r2, [r0]
adds r1, r1, r7
ldrb r2, [r1, #5]
movs r4, #0xf
adds r0, r4, #0
ands r0, r2
movs r2, #0x10
orrs r0, r2
strb r0, [r1, #5]
adds r1, #0x3e
ldrb r0, [r1]
movs r2, #4
orrs r0, r2
strb r0, [r1]
mov r1, sb
lsls r0, r1, #3
ldr r2, _0813DE50
adds r0, r0, r2
ldr r2, _0813DE54
ldr r1, [r2]
ldr r1, [r1, #0x10]
mov r2, sb
bl DecompressPicFromTable_2
mov r0, sb
ldr r1, [sp, #0x20]
mov r2, sl
bl GetMonSpritePalStructFromOtIdPersonality
ldr r0, [r0]
movs r1, #0x90
lsls r1, r1, #1
movs r2, #0x20
bl LoadCompressedPalette
mov r0, sb
movs r1, #3
bl SetMultiuseSpriteTemplateToPokemon
ldr r0, _0813DE5C
mov r1, r8
str r0, [r1, #0x10]
mov r0, r8
movs r1, #0x78
movs r2, #0x40
movs r3, #0x1e
bl CreateSprite
ldr r1, _0813DE40
ldr r2, [r1]
lsls r1, r0, #0x18
lsrs r3, r1, #0x18
strb r0, [r2, #1]
lsls r1, r3, #4
adds r1, r1, r3
lsls r1, r1, #2
adds r6, r1, r6
ldr r2, _0813DE64
str r2, [r6]
adds r1, r1, r7
ldrb r0, [r1, #5]
ands r4, r0
movs r0, #0x20
orrs r4, r0
strb r4, [r1, #5]
adds r1, #0x3e
ldrb r0, [r1]
movs r2, #4
orrs r0, r2
strb r0, [r1]
bl LoadEvoSparkleSpriteAndPal
ldr r0, _0813DE68
movs r1, #0
bl CreateTask
ldr r1, _0813DE40
ldr r2, [r1]
lsls r1, r0, #0x18
lsrs r3, r1, #0x18
strb r0, [r2, #2]
ldr r1, _0813DE6C
lsls r0, r3, #2
adds r0, r0, r3
lsls r0, r0, #3
adds r0, r0, r1
movs r2, #0
strh r2, [r0, #8]
strh r5, [r0, #0xa]
mov r1, sb
strh r1, [r0, #0xc]
mov r2, sp
ldrh r2, [r2, #0x18]
strh r2, [r0, #0xe]
movs r1, #1
strh r1, [r0, #0x10]
movs r1, #0
strh r1, [r0, #0x1a]
mov r2, sp
ldrh r2, [r2, #0x1c]
strh r2, [r0, #0x1c]
ldr r1, _0813DE40
ldr r0, [r1]
ldr r1, _0813DE70
adds r0, #4
movs r2, #0x60
bl memcpy
movs r1, #0xfa
lsls r1, r1, #5
movs r0, #0
bl SetGpuReg
ldr r0, _0813DE74
bl SetHBlankCallback
ldr r0, _0813DE78
bl SetVBlankCallback
bl m4aMPlayAllStop
ldr r0, _0813DE7C
bl SetMainCallback2
add sp, #0x24
pop {r3, r4, r5}
mov r8, r3
mov sb, r4
mov sl, r5
pop {r4, r5, r6, r7}
pop {r0}
bx r0
.align 2, 0
_0813DE14: .4byte 0x05006000
_0813DE18: .4byte 0x02022AC8
_0813DE1C: .4byte 0x02022ACA
_0813DE20: .4byte 0x02022ACC
_0813DE24: .4byte 0x02022ACE
_0813DE28: .4byte 0x02022AD0
_0813DE2C: .4byte 0x02022AD2
_0813DE30: .4byte 0x02022AD4
_0813DE34: .4byte 0x02022AD6
_0813DE38: .4byte 0x02022C94
_0813DE3C: .4byte 0x030030BC
_0813DE40: .4byte 0x0203A84C
_0813DE44: .4byte 0x02021C40
_0813DE48: .4byte 0x02021C54
_0813DE4C: .4byte 0x082EA31C
_0813DE50: .4byte 0x082DDA1C
_0813DE54: .4byte 0x02024178
_0813DE58: .4byte 0x02024640
_0813DE5C: .4byte 0x082BF310
_0813DE60: .4byte 0x020205AC
_0813DE64: .4byte 0x080394FD
_0813DE68: .4byte 0x0813E639
_0813DE6C: .4byte 0x03005B60
_0813DE70: .4byte 0x020373F4
_0813DE74: .4byte 0x0813FDA1
_0813DE78: .4byte 0x0813FDA5
_0813DE7C: .4byte 0x0813E4A9
thumb_func_end EvolutionScene
thumb_func_start CB2_EvolutionSceneLoadGraphics
CB2_EvolutionSceneLoadGraphics: @ 0x0813DE80
push {r4, r5, r6, lr}
mov r6, sb
mov r5, r8
push {r5, r6}
sub sp, #8
ldr r2, _0813E018
ldr r0, _0813E01C
mov r8, r0
ldr r0, [r0]
ldrb r1, [r0, #2]
lsls r0, r1, #2
adds r0, r0, r1
lsls r0, r0, #3
adds r0, r0, r2
movs r1, #0x1c
ldrsh r2, [r0, r1]
movs r1, #0x64
adds r4, r2, #0
muls r4, r1, r4
ldr r1, _0813E020
adds r4, r4, r1
ldrh r5, [r0, #0xc]
adds r0, r4, #0
movs r1, #1
bl GetMonData
mov sb, r0
adds r0, r4, #0
movs r1, #0
bl GetMonData
adds r6, r0, #0
movs r0, #0
bl SetHBlankCallback
movs r0, #0
bl SetVBlankCallback
movs r4, #0
str r4, [sp, #4]
movs r1, #0xc0
lsls r1, r1, #0x13
ldr r2, _0813E024
add r0, sp, #4
bl CpuSet
movs r0, #0x4c
movs r1, #0
bl SetGpuReg
movs r0, #0x40
movs r1, #0
bl SetGpuReg
movs r0, #0x44
movs r1, #0
bl SetGpuReg
movs r0, #0x42
movs r1, #0
bl SetGpuReg
movs r0, #0x46
movs r1, #0
bl SetGpuReg
movs r0, #0x48
movs r1, #0
bl SetGpuReg
movs r0, #0x4a
movs r1, #0
bl SetGpuReg
bl ResetPaletteFade
ldr r0, _0813E028
strh r4, [r0]
ldr r0, _0813E02C
strh r4, [r0]
ldr r0, _0813E030
strh r4, [r0]
ldr r0, _0813E034
strh r4, [r0]
ldr r0, _0813E038
strh r4, [r0]
ldr r0, _0813E03C
strh r4, [r0]
ldr r1, _0813E040
movs r2, #0x80
lsls r2, r2, #1
adds r0, r2, #0
strh r0, [r1]
ldr r0, _0813E044
strh r4, [r0]
ldr r1, _0813E048
movs r0, #9
strb r0, [r1]
bl sub_08035528
bl LoadBattleTextboxAndBackground
bl ResetSpriteData
bl FreeAllSpritePalettes
ldr r1, _0813E04C
movs r0, #4
strb r0, [r1]
lsls r0, r5, #3
ldr r1, _0813E050
adds r0, r0, r1
ldr r1, _0813E054
ldr r1, [r1]
ldr r1, [r1, #0x10]
adds r2, r5, #0
bl DecompressPicFromTable_2
adds r0, r5, #0
mov r1, sb
adds r2, r6, #0
bl GetMonSpritePalStructFromOtIdPersonality
ldr r0, [r0]
movs r1, #0x90
lsls r1, r1, #1
movs r2, #0x20
bl LoadCompressedPalette
adds r0, r5, #0
movs r1, #3
bl SetMultiuseSpriteTemplateToPokemon
ldr r0, _0813E058
ldr r1, _0813E05C
str r1, [r0, #0x10]
movs r1, #0x78
movs r2, #0x40
movs r3, #0x1e
bl CreateSprite
mov r2, r8
ldr r1, [r2]
lsls r2, r0, #0x18
lsrs r2, r2, #0x18
strb r0, [r1, #1]
ldr r3, _0813E060
lsls r1, r2, #4
adds r1, r1, r2
lsls r1, r1, #2
adds r0, r3, #0
adds r0, #0x1c
adds r0, r1, r0
ldr r2, _0813E064
str r2, [r0]
adds r1, r1, r3
ldrb r2, [r1, #5]
movs r0, #0xf
ands r0, r2
movs r2, #0x20
orrs r0, r2
strb r0, [r1, #5]
movs r1, #0xfa
lsls r1, r1, #5
movs r0, #0
bl SetGpuReg
ldr r0, _0813E068
bl SetHBlankCallback
ldr r0, _0813E06C
bl SetVBlankCallback
ldr r0, _0813E070
bl SetMainCallback2
movs r0, #1
rsbs r0, r0, #0
str r4, [sp]
movs r1, #0
movs r2, #0x10
movs r3, #0
bl BeginNormalPaletteFade
movs r0, #0
bl ShowBg
movs r0, #1
bl ShowBg
movs r0, #2
bl ShowBg
movs r0, #3
bl ShowBg
add sp, #8
pop {r3, r4}
mov r8, r3
mov sb, r4
pop {r4, r5, r6}
pop {r0}
bx r0
.align 2, 0
_0813E018: .4byte 0x03005B60
_0813E01C: .4byte 0x0203A84C
_0813E020: .4byte 0x02024190
_0813E024: .4byte 0x05006000
_0813E028: .4byte 0x02022AC8
_0813E02C: .4byte 0x02022ACA
_0813E030: .4byte 0x02022ACC
_0813E034: .4byte 0x02022ACE
_0813E038: .4byte 0x02022AD0
_0813E03C: .4byte 0x02022AD2
_0813E040: .4byte 0x02022AD4
_0813E044: .4byte 0x02022AD6
_0813E048: .4byte 0x02022C94
_0813E04C: .4byte 0x030030BC
_0813E050: .4byte 0x082DDA1C
_0813E054: .4byte 0x02024178
_0813E058: .4byte 0x02024640
_0813E05C: .4byte 0x082BF310
_0813E060: .4byte 0x020205AC
_0813E064: .4byte 0x080394FD
_0813E068: .4byte 0x0813FDA1
_0813E06C: .4byte 0x0813FDA5
_0813E070: .4byte 0x0813E4A9
thumb_func_end CB2_EvolutionSceneLoadGraphics
thumb_func_start CB2_TradeEvolutionSceneLoadGraphics
CB2_TradeEvolutionSceneLoadGraphics: @ 0x0813E074
push {r4, r5, r6, lr}
sub sp, #0xc
ldr r2, _0813E0B0
ldr r0, _0813E0B4
ldr r0, [r0]
ldrb r1, [r0, #2]
lsls r0, r1, #2
adds r0, r0, r1
lsls r0, r0, #3
adds r0, r0, r2
movs r1, #0x1c
ldrsh r2, [r0, r1]
movs r1, #0x64
muls r2, r1, r2
ldr r1, _0813E0B8
adds r4, r2, r1
ldrh r6, [r0, #0xc]
ldr r0, _0813E0BC
movs r3, #0x87
lsls r3, r3, #3
adds r0, r0, r3
ldrb r0, [r0]
cmp r0, #7
bls _0813E0A6
b _0813E2CC
_0813E0A6:
lsls r0, r0, #2
ldr r1, _0813E0C0
adds r0, r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_0813E0B0: .4byte 0x03005B60
_0813E0B4: .4byte 0x0203A84C
_0813E0B8: .4byte 0x02024190
_0813E0BC: .4byte 0x03002360
_0813E0C0: .4byte 0x0813E0C4
_0813E0C4: @ jump table
.4byte _0813E0E4 @ case 0
.4byte _0813E154 @ case 1
.4byte _0813E17C @ case 2
.4byte _0813E182 @ case 3
.4byte _0813E1AC @ case 4
.4byte _0813E1F4 @ case 5
.4byte _0813E264 @ case 6
.4byte _0813E29C @ case 7
_0813E0E4:
movs r0, #0
movs r1, #0
bl SetGpuReg
movs r0, #0
bl SetHBlankCallback
movs r0, #0
bl SetVBlankCallback
bl ResetSpriteData
bl FreeAllSpritePalettes
ldr r1, _0813E130
movs r0, #4
strb r0, [r1]
ldr r0, _0813E134
movs r1, #0
strh r1, [r0]
ldr r0, _0813E138
strh r1, [r0]
ldr r0, _0813E13C
strh r1, [r0]
ldr r0, _0813E140
strh r1, [r0]
ldr r0, _0813E144
strh r1, [r0]
ldr r0, _0813E148
strh r1, [r0]
ldr r2, _0813E14C
movs r3, #0x80
lsls r3, r3, #1
adds r0, r3, #0
strh r0, [r2]
ldr r0, _0813E150
strh r1, [r0]
b _0813E284
.align 2, 0
_0813E130: .4byte 0x030030BC
_0813E134: .4byte 0x02022AC8
_0813E138: .4byte 0x02022ACA
_0813E13C: .4byte 0x02022ACC
_0813E140: .4byte 0x02022ACE
_0813E144: .4byte 0x02022AD0
_0813E148: .4byte 0x02022AD2
_0813E14C: .4byte 0x02022AD4
_0813E150: .4byte 0x02022AD6
_0813E154:
bl ResetPaletteFade
ldr r0, _0813E170
bl SetHBlankCallback
ldr r0, _0813E174
bl SetVBlankCallback
ldr r1, _0813E178
movs r3, #0x87
lsls r3, r3, #3
adds r1, r1, r3
b _0813E28C
.align 2, 0
_0813E170: .4byte 0x0813FDA1
_0813E174: .4byte 0x0813FE2D
_0813E178: .4byte 0x03002360
_0813E17C:
bl sub_0807EBD4
b _0813E284
_0813E182:
movs r0, #0x20
str r0, [sp]
str r0, [sp, #4]
movs r0, #0x11
str r0, [sp, #8]
movs r0, #1
movs r1, #0
movs r2, #0
movs r3, #0
bl FillBgTilemapBufferRect
movs r0, #1
bl CopyBgTilemapBufferToVram
ldr r1, _0813E1A8
movs r3, #0x87
lsls r3, r3, #3
adds r1, r1, r3
b _0813E28C
.align 2, 0
_0813E1A8: .4byte 0x03002360
_0813E1AC:
adds r0, r4, #0
movs r1, #1
bl GetMonData
adds r5, r0, #0
adds r0, r4, #0
movs r1, #0
bl GetMonData
adds r4, r0, #0
lsls r0, r6, #3
ldr r1, _0813E1EC
adds r0, r0, r1
ldr r1, _0813E1F0
ldr r1, [r1]
ldr r1, [r1, #0x10]
adds r2, r6, #0
bl DecompressPicFromTable_2
adds r0, r6, #0
adds r1, r5, #0
adds r2, r4, #0
bl GetMonSpritePalStructFromOtIdPersonality
ldr r0, [r0]
movs r1, #0x90
lsls r1, r1, #1
movs r2, #0x20
bl LoadCompressedPalette
b _0813E284
.align 2, 0
_0813E1EC: .4byte 0x082DDA1C
_0813E1F0: .4byte 0x02024178
_0813E1F4:
adds r0, r6, #0
movs r1, #1
bl SetMultiuseSpriteTemplateToPokemon
ldr r0, _0813E24C
ldr r1, _0813E250
str r1, [r0, #0x10]
movs r1, #0x78
movs r2, #0x40
movs r3, #0x1e
bl CreateSprite
ldr r1, _0813E254
ldr r1, [r1]
lsls r2, r0, #0x18
lsrs r2, r2, #0x18
strb r0, [r1, #1]
ldr r3, _0813E258
lsls r1, r2, #4
adds r1, r1, r2
lsls r1, r1, #2
adds r0, r3, #0
adds r0, #0x1c
adds r0, r1, r0
ldr r2, _0813E25C
str r2, [r0]
adds r1, r1, r3
ldrb r2, [r1, #5]
movs r0, #0xf
ands r0, r2
movs r2, #0x20
orrs r0, r2
strb r0, [r1, #5]
ldr r1, _0813E260
movs r3, #0x87
lsls r3, r3, #3
adds r1, r1, r3
ldrb r0, [r1]
adds r0, #1
strb r0, [r1]
bl sub_0807ABB0
b _0813E2CC
.align 2, 0
_0813E24C: .4byte 0x02024640
_0813E250: .4byte 0x082BF310
_0813E254: .4byte 0x0203A84C
_0813E258: .4byte 0x020205AC
_0813E25C: .4byte 0x080394FD
_0813E260: .4byte 0x03002360
_0813E264:
ldr r0, _0813E294
ldrb r0, [r0]
cmp r0, #0
beq _0813E278
bl LoadWirelessStatusIndicatorSpriteGfx
movs r0, #0
movs r1, #0
bl CreateWirelessStatusIndicatorSprite
_0813E278:
movs r0, #1
rsbs r0, r0, #0
movs r1, #0x10
movs r2, #0
bl BlendPalettes
_0813E284:
ldr r1, _0813E298
movs r0, #0x87
lsls r0, r0, #3
adds r1, r1, r0
_0813E28C:
ldrb r0, [r1]
adds r0, #1
strb r0, [r1]
b _0813E2CC
.align 2, 0
_0813E294: .4byte 0x0300319C
_0813E298: .4byte 0x03002360
_0813E29C:
movs r0, #1
rsbs r0, r0, #0
movs r1, #0
str r1, [sp]
movs r2, #0x10
movs r3, #0
bl BeginNormalPaletteFade
bl sub_0807AB9C
movs r0, #0
bl ShowBg
movs r0, #1
bl ShowBg
ldr r0, _0813E2D4
bl SetMainCallback2
movs r1, #0x9a
lsls r1, r1, #5
movs r0, #0
bl SetGpuReg
_0813E2CC:
add sp, #0xc
pop {r4, r5, r6}
pop {r0}
bx r0
.align 2, 0
_0813E2D4: .4byte 0x0813E4C5
thumb_func_end CB2_TradeEvolutionSceneLoadGraphics
thumb_func_start TradeEvolutionScene
TradeEvolutionScene: @ 0x0813E2D8
push {r4, r5, r6, r7, lr}
mov r7, sl
mov r6, sb
mov r5, r8
push {r5, r6, r7}
sub sp, #0x18
adds r4, r0, #0
adds r5, r1, #0
adds r6, r2, #0
lsls r5, r5, #0x10
lsrs r5, r5, #0x10
lsls r6, r6, #0x18
lsrs r6, r6, #0x18
lsls r3, r3, #0x18
lsrs r3, r3, #0x18
str r3, [sp, #0x14]
movs r1, #2
mov r2, sp
bl GetMonData
ldr r0, _0813E448
mov r1, sp
bl StringCopy10
ldr r0, _0813E44C
lsls r1, r5, #1
adds r1, r1, r5
lsls r1, r1, #1
ldr r2, _0813E450
adds r1, r1, r2
bl StringCopy
ldr r1, _0813E454
movs r0, #1
strb r0, [r1]
adds r0, r4, #0
movs r1, #0xb
bl GetMonData
mov r8, r0
lsls r0, r0, #0x10
lsrs r0, r0, #0x10
mov r8, r0
adds r0, r4, #0
movs r1, #0
bl GetMonData
adds r7, r0, #0
adds r0, r4, #0
movs r1, #1
bl GetMonData
mov sl, r0
ldr r1, _0813E458
mov sb, r1
movs r0, #0x64
bl AllocZeroed
mov r2, sb
str r0, [r2]
movs r4, #0
strb r6, [r0]
lsls r0, r5, #3
ldr r1, _0813E45C
adds r0, r0, r1
ldr r1, _0813E460
ldr r1, [r1]
ldr r1, [r1, #8]
adds r2, r5, #0
bl DecompressPicFromTable_2
adds r0, r5, #0
mov r1, sl
adds r2, r7, #0
bl GetMonSpritePalStructFromOtIdPersonality
ldr r0, [r0]
movs r1, #0x90
lsls r1, r1, #1
movs r2, #0x20
bl LoadCompressedPalette
adds r0, r5, #0
movs r1, #1
bl SetMultiuseSpriteTemplateToPokemon
ldr r0, _0813E464
ldr r1, _0813E468
str r1, [r0, #0x10]
movs r1, #0x78
movs r2, #0x40
movs r3, #0x1e
bl CreateSprite
mov r1, sb
ldr r2, [r1]
lsls r1, r0, #0x18
lsrs r6, r1, #0x18
strb r0, [r2, #1]
ldr r3, _0813E46C
lsls r1, r6, #4
adds r1, r1, r6
lsls r1, r1, #2
adds r0, r3, #0
adds r0, #0x1c
adds r0, r1, r0
ldr r2, _0813E470
str r2, [r0]
adds r1, r1, r3
ldrb r2, [r1, #5]
movs r0, #0xf
ands r0, r2
movs r2, #0x20
orrs r0, r2
strb r0, [r1, #5]
adds r1, #0x3e
ldrb r0, [r1]
movs r2, #4
orrs r0, r2
strb r0, [r1]
bl LoadEvoSparkleSpriteAndPal
ldr r0, _0813E474
movs r1, #0
bl CreateTask
mov r1, sb
ldr r2, [r1]
lsls r1, r0, #0x18
lsrs r6, r1, #0x18
strb r0, [r2, #2]
ldr r1, _0813E478
lsls r0, r6, #2
adds r0, r0, r6
lsls r0, r0, #3
adds r0, r0, r1
strh r4, [r0, #8]
mov r2, r8
strh r2, [r0, #0xa]
strh r5, [r0, #0xc]
movs r1, #1
strh r1, [r0, #0x10]
strh r4, [r0, #0x1a]
mov r1, sp
ldrh r1, [r1, #0x14]
strh r1, [r0, #0x1c]
ldr r0, _0813E47C
strh r4, [r0]
ldr r0, _0813E480
strh r4, [r0]
ldr r0, _0813E484
strh r4, [r0]
ldr r0, _0813E488
strh r4, [r0]
ldr r0, _0813E48C
strh r4, [r0]
ldr r0, _0813E490
strh r4, [r0]
ldr r1, _0813E494
movs r2, #0x80
lsls r2, r2, #1
adds r0, r2, #0
strh r0, [r1]
ldr r0, _0813E498
strh r4, [r0]
ldr r2, _0813E49C
ldrb r0, [r2]
movs r1, #2
orrs r0, r1
strb r0, [r2]
ldr r0, _0813E4A0
bl SetVBlankCallback
ldr r0, _0813E4A4
bl SetMainCallback2
add sp, #0x18
pop {r3, r4, r5}
mov r8, r3
mov sb, r4
mov sl, r5
pop {r4, r5, r6, r7}
pop {r0}
bx r0
.align 2, 0
_0813E448: .4byte 0x02021C40
_0813E44C: .4byte 0x02021C54
_0813E450: .4byte 0x082EA31C
_0813E454: .4byte 0x02021C3C
_0813E458: .4byte 0x0203A84C
_0813E45C: .4byte 0x082DDA1C
_0813E460: .4byte 0x02024178
_0813E464: .4byte 0x02024640
_0813E468: .4byte 0x082BF310
_0813E46C: .4byte 0x020205AC
_0813E470: .4byte 0x080394FD
_0813E474: .4byte 0x0813F281
_0813E478: .4byte 0x03005B60
_0813E47C: .4byte 0x02022AC8
_0813E480: .4byte 0x02022ACA
_0813E484: .4byte 0x02022ACC
_0813E488: .4byte 0x02022ACE
_0813E48C: .4byte 0x02022AD0
_0813E490: .4byte 0x02022AD2
_0813E494: .4byte 0x02022AD4
_0813E498: .4byte 0x02022AD6
_0813E49C: .4byte 0x030030B4
_0813E4A0: .4byte 0x0813FE2D
_0813E4A4: .4byte 0x0813E4C5
thumb_func_end TradeEvolutionScene
thumb_func_start CB2_EvolutionSceneUpdate
CB2_EvolutionSceneUpdate: @ 0x0813E4A8
push {lr}
bl AnimateSprites
bl BuildOamBuffer
bl RunTextPrinters
bl UpdatePaletteFade
bl RunTasks
pop {r0}
bx r0
.align 2, 0
thumb_func_end CB2_EvolutionSceneUpdate
thumb_func_start CB2_TradeEvolutionSceneUpdate
CB2_TradeEvolutionSceneUpdate: @ 0x0813E4C4
push {lr}
bl AnimateSprites
bl BuildOamBuffer
bl RunTextPrinters
bl UpdatePaletteFade
bl RunTasks
pop {r0}
bx r0
.align 2, 0
thumb_func_end CB2_TradeEvolutionSceneUpdate
thumb_func_start CreateShedinja
CreateShedinja: @ 0x0813E4E0
push {r4, r5, r6, r7, lr}
mov r7, sl
mov r6, sb
mov r5, r8
push {r5, r6, r7}
sub sp, #8
lsls r0, r0, #0x10
lsrs r0, r0, #0x10
mov sb, r0
movs r0, #0
str r0, [sp]
ldr r0, _0813E628
mov sl, r0
mov r2, sb
lsls r2, r2, #2
str r2, [sp, #4]
adds r0, r2, #0
add r0, sb
lsls r7, r0, #3
adds r0, r7, #0
add r0, sl
mov r8, r0
ldrh r0, [r0]
cmp r0, #0xd
beq _0813E514
b _0813E616
_0813E514:
ldr r6, _0813E62C
ldrb r0, [r6]
cmp r0, #5
bhi _0813E616
movs r5, #0x64
muls r0, r5, r0
ldr r4, _0813E630
adds r0, r0, r4
movs r2, #0x64
bl CopyMon
ldrb r0, [r6]
muls r0, r5, r0
adds r0, r0, r4
mov r1, sl
adds r2, r1, r7
adds r2, #0xc
movs r1, #0xb
bl SetMonData
ldrb r0, [r6]
muls r0, r5, r0
adds r0, r0, r4
mov r2, r8
ldrh r1, [r2, #0xc]
lsls r2, r1, #1
adds r2, r2, r1
lsls r2, r2, #1
ldr r1, _0813E634
adds r2, r2, r1
movs r1, #2
bl SetMonData
ldrb r0, [r6]
muls r0, r5, r0
adds r0, r0, r4
movs r1, #0xc
mov r2, sp
bl SetMonData
ldrb r0, [r6]
muls r0, r5, r0
adds r0, r0, r4
movs r1, #8
mov r2, sp
bl SetMonData
ldrb r0, [r6]
muls r0, r5, r0
adds r0, r0, r4
movs r1, #0xa
mov r2, sp
bl SetMonData
movs r4, #0x32
ldr r0, [sp, #4]
mov r8, r0
adds r5, r6, #0
_0813E588:
ldrb r1, [r5]
movs r0, #0x64
muls r0, r1, r0
ldr r1, _0813E630
adds r0, r0, r1
adds r1, r4, #0
mov r2, sp
bl SetMonData
adds r4, #1
cmp r4, #0x36
ble _0813E588
movs r4, #0x43
ldr r7, _0813E62C
_0813E5A4:
ldrb r0, [r7]
movs r6, #0x64
muls r0, r6, r0
ldr r5, _0813E630
adds r0, r0, r5
adds r1, r4, #0
mov r2, sp
bl SetMonData
adds r4, #1
cmp r4, #0x4f
ble _0813E5A4
ldr r4, _0813E62C
ldrb r0, [r4]
muls r0, r6, r0
adds r0, r0, r5
movs r1, #0x37
mov r2, sp
bl SetMonData
movs r0, #0xff
str r0, [sp]
ldrb r0, [r4]
muls r0, r6, r0
adds r0, r0, r5
movs r1, #0x40
mov r2, sp
bl SetMonData
ldrb r0, [r4]
muls r0, r6, r0
adds r0, r0, r5
bl CalculateMonStats
bl CalculatePlayerPartyCount
ldr r0, _0813E628
mov r4, r8
add r4, sb
lsls r4, r4, #3
adds r4, r4, r0
ldrh r0, [r4, #0xc]
bl HoennToNationalOrder
lsls r0, r0, #0x10
lsrs r0, r0, #0x10
movs r1, #2
bl GetSetPokedexFlag
ldrh r0, [r4, #0xc]
bl HoennToNationalOrder
lsls r0, r0, #0x10
lsrs r0, r0, #0x10
movs r1, #3
bl GetSetPokedexFlag
_0813E616:
add sp, #8
pop {r3, r4, r5}
mov r8, r3
mov sb, r4
mov sl, r5
pop {r4, r5, r6, r7}
pop {r0}
bx r0
.align 2, 0
_0813E628: .4byte 0x082F5CA4
_0813E62C: .4byte 0x0202418D
_0813E630: .4byte 0x02024190
_0813E634: .4byte 0x082EA31C
thumb_func_end CreateShedinja
thumb_func_start Task_EvolutionScene
Task_EvolutionScene: @ 0x0813E638
push {r4, r5, r6, r7, lr}
mov r7, sb
mov r6, r8
push {r6, r7}
sub sp, #0x18
lsls r0, r0, #0x18
lsrs r7, r0, #0x18
ldr r2, _0813E6A8
lsls r0, r7, #2
adds r0, r0, r7
lsls r0, r0, #3
adds r3, r0, r2
movs r0, #0x1c
ldrsh r1, [r3, r0]
movs r0, #0x64
muls r1, r0, r1
ldr r0, _0813E6AC
adds r1, r1, r0
mov sb, r1
ldr r0, _0813E6B0
ldrh r1, [r0, #0x2c]
adds r5, r2, #0
adds r6, r0, #0
cmp r1, #2
bne _0813E6B8
movs r1, #8
ldrsh r0, [r3, r1]
cmp r0, #8
bne _0813E6B8
ldr r4, _0813E6B4
ldrb r0, [r4, #2]
lsls r1, r0, #2
adds r1, r1, r0
lsls r1, r1, #3
adds r1, r1, r5
ldrb r0, [r1, #4]
cmp r0, #0
beq _0813E6B8
ldrh r1, [r3, #0xe]
movs r2, #1
adds r0, r2, #0
ands r0, r1
cmp r0, #0
beq _0813E6B8
movs r0, #0x11
strh r0, [r3, #8]
ldrb r1, [r4, #2]
lsls r0, r1, #2
adds r0, r0, r1
lsls r0, r0, #3
adds r0, r0, r5
strh r2, [r0, #0x18]
bl sub_081401FC
bl _0813F26C
.align 2, 0
_0813E6A8: .4byte 0x03005B60
_0813E6AC: .4byte 0x02024190
_0813E6B0: .4byte 0x03002360
_0813E6B4: .4byte 0x02023FD6
_0813E6B8:
lsls r1, r7, #2
adds r0, r1, r7
lsls r0, r0, #3
adds r0, r0, r5
movs r2, #8
ldrsh r0, [r0, r2]
mov r8, r1
cmp r0, #0x16
bls _0813E6CE
bl _0813F26C
_0813E6CE:
lsls r0, r0, #2
ldr r1, _0813E6D8
adds r0, r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_0813E6D8: .4byte 0x0813E6DC
_0813E6DC: @ jump table
.4byte _0813E738 @ case 0
.4byte _0813E79C @ case 1
.4byte _0813E7DC @ case 2
.4byte _0813E808 @ case 3
.4byte _0813E838 @ case 4
.4byte _0813E878 @ case 5
.4byte _0813E8B0 @ case 6
.4byte _0813E8F0 @ case 7
.4byte _0813E928 @ case 8
.4byte _0813E96C @ case 9
.4byte _0813E988 @ case 10
.4byte _0813E9B4 @ case 11
.4byte _0813E9E0 @ case 12
.4byte _0813EA2C @ case 13
.4byte _0813EA58 @ case 14
.4byte _0813EAE4 @ case 15
.4byte _0813EB90 @ case 16
.4byte _0813EBFC @ case 17
.4byte _0813EC3C @ case 18
.4byte _0813EC70 @ case 19
.4byte _0813ECD8 @ case 20
.4byte _0813ED34 @ case 21
.4byte _0813ED70 @ case 22
_0813E738:
movs r0, #1
rsbs r0, r0, #0
movs r1, #0
str r1, [sp]
movs r2, #0x10
movs r3, #0
bl BeginNormalPaletteFade
ldr r2, _0813E790
ldr r0, _0813E794
ldr r0, [r0]
ldrb r1, [r0]
lsls r0, r1, #4
adds r0, r0, r1
lsls r0, r0, #2
adds r0, r0, r2
adds r0, #0x3e
ldrb r2, [r0]
movs r1, #5
rsbs r1, r1, #0
ands r1, r2
strb r1, [r0]
ldr r0, _0813E798
mov r3, r8
adds r1, r3, r7
lsls r1, r1, #3
adds r1, r1, r0
ldrh r0, [r1, #8]
adds r0, #1
strh r0, [r1, #8]
movs r0, #0
bl ShowBg
movs r0, #1
bl ShowBg
movs r0, #2
bl ShowBg
movs r0, #3
bl ShowBg
bl _0813F26C
.align 2, 0
_0813E790: .4byte 0x020205AC
_0813E794: .4byte 0x0203A84C
_0813E798: .4byte 0x03005B60
_0813E79C:
ldr r0, _0813E7CC
ldrb r1, [r0, #7]
movs r0, #0x80
ands r0, r1
cmp r0, #0
beq _0813E7AC
bl _0813F26C
_0813E7AC:
ldr r4, _0813E7D0
ldr r1, _0813E7D4
adds r0, r4, #0
bl StringExpandPlaceholders
adds r0, r4, #0
movs r1, #0
bl sub_0814FA04
ldr r0, _0813E7D8
mov r2, r8
adds r1, r2, r7
lsls r1, r1, #3
adds r1, r1, r0
b _0813ED1A
.align 2, 0
_0813E7CC: .4byte 0x02037C74
_0813E7D0: .4byte 0x02021C7C
_0813E7D4: .4byte 0x085ABAFC
_0813E7D8: .4byte 0x03005B60
_0813E7DC:
movs r0, #0
bl IsTextPrinterActive
lsls r0, r0, #0x10
cmp r0, #0
beq _0813E7EC
bl _0813F26C
_0813E7EC:
ldr r0, _0813E800
ldr r0, [r0]
ldrb r0, [r0]
ldr r1, _0813E804
mov r3, r8
adds r4, r3, r7
lsls r4, r4, #3
adds r4, r4, r1
b _0813EC58
.align 2, 0
_0813E800: .4byte 0x0203A84C
_0813E804: .4byte 0x03005B60
_0813E808:
ldr r0, _0813E830
ldr r0, [r0]
ldrb r0, [r0]
bl EvoScene_IsMonAnimFinished
cmp r0, #0
bne _0813E81A
bl _0813F26C
_0813E81A:
movs r0, #0xbc
lsls r0, r0, #1
bl PlaySE
ldr r0, _0813E834
mov r2, r8
adds r1, r2, r7
lsls r1, r1, #3
adds r1, r1, r0
b _0813ED1A
.align 2, 0
_0813E830: .4byte 0x0203A84C
_0813E834: .4byte 0x03005B60
_0813E838:
bl IsSEPlaying
lsls r0, r0, #0x18
lsrs r4, r0, #0x18
cmp r4, #0
beq _0813E848
bl _0813F26C
_0813E848:
ldr r0, _0813E870
bl PlayNewMapMusic
ldr r0, _0813E874
mov r3, r8
adds r1, r3, r7
lsls r1, r1, #3
adds r1, r1, r0
ldrh r0, [r1, #8]
adds r0, #1
strh r0, [r1, #8]
str r4, [sp]
movs r0, #0x1c
movs r1, #4
movs r2, #0
movs r3, #0x10
bl BeginNormalPaletteFade
bl _0813F26C
.align 2, 0
_0813E870: .4byte 0x00000179
_0813E874: .4byte 0x03005B60
_0813E878:
ldr r0, _0813E8A4
ldrb r1, [r0, #7]
movs r0, #0x80
ands r0, r1
cmp r0, #0
beq _0813E888
bl _0813F26C
_0813E888:
movs r0, #0
bl InitMovingBackgroundTask
movs r0, #0x11
bl LaunchTask_PreEvoSparklesSet1
ldr r1, _0813E8A8
strb r0, [r1, #2]
ldr r0, _0813E8AC
mov r2, r8
adds r1, r2, r7
lsls r1, r1, #3
adds r1, r1, r0
b _0813ED1A
.align 2, 0
_0813E8A4: .4byte 0x02037C74
_0813E8A8: .4byte 0x02023FD6
_0813E8AC: .4byte 0x03005B60
_0813E8B0:
ldr r4, _0813E8E8
ldrb r0, [r4, #2]
lsls r1, r0, #2
adds r1, r1, r0
lsls r1, r1, #3
adds r1, r1, r5
ldrb r0, [r1, #4]
cmp r0, #0
beq _0813E8C6
bl _0813F26C
_0813E8C6:
mov r3, r8
adds r1, r3, r7
lsls r1, r1, #3
adds r1, r1, r5
ldrh r0, [r1, #8]
adds r0, #1
strh r0, [r1, #8]
ldr r0, _0813E8EC
ldr r1, [r0]
movs r0, #1
strb r0, [r1, #3]
bl LaunchTask_PostEvoSparklesSet1
strb r0, [r4, #2]
bl _0813F26C
.align 2, 0
_0813E8E8: .4byte 0x02023FD6
_0813E8EC: .4byte 0x0203A84C
_0813E8F0:
ldr r4, _0813E920
ldrb r0, [r4, #2]
lsls r1, r0, #2
adds r1, r1, r0
lsls r1, r1, #3
adds r1, r1, r5
ldrb r0, [r1, #4]
cmp r0, #0
beq _0813E906
bl _0813F26C
_0813E906:
ldr r0, _0813E924
ldr r1, [r0]
ldrb r0, [r1]
ldrb r1, [r1, #1]
bl sub_0817C260
strb r0, [r4, #2]
mov r0, r8
adds r1, r0, r7
lsls r1, r1, #3
adds r1, r1, r5
b _0813ED1A
.align 2, 0
_0813E920: .4byte 0x02023FD6
_0813E924: .4byte 0x0203A84C
_0813E928:
ldr r2, _0813E964
ldr r1, [r2]
ldrb r0, [r1, #3]
subs r0, #1
strb r0, [r1, #3]
lsls r0, r0, #0x18
cmp r0, #0
beq _0813E93C
bl _0813F26C
_0813E93C:
ldr r1, [r2]
movs r0, #3
strb r0, [r1, #3]
ldr r0, _0813E968
ldrb r1, [r0, #2]
lsls r0, r1, #2
adds r0, r0, r1
lsls r0, r0, #3
adds r0, r0, r5
ldrb r0, [r0, #4]
cmp r0, #0
beq _0813E958
bl _0813F26C
_0813E958:
mov r2, r8
adds r1, r2, r7
lsls r1, r1, #3
adds r1, r1, r5
b _0813ED1A
.align 2, 0
_0813E964: .4byte 0x0203A84C
_0813E968: .4byte 0x02023FD6
_0813E96C:
bl LaunchTask_PreEvoSparklesSet2
ldr r1, _0813E980
strb r0, [r1, #2]
ldr r0, _0813E984
mov r3, r8
adds r1, r3, r7
lsls r1, r1, #3
adds r1, r1, r0
b _0813ED1A
.align 2, 0
_0813E980: .4byte 0x02023FD6
_0813E984: .4byte 0x03005B60
_0813E988:
ldr r6, _0813E9B0
ldrb r0, [r6, #2]
lsls r1, r0, #2
adds r1, r1, r0
lsls r1, r1, #3
adds r1, r1, r5
ldrb r0, [r1, #4]
cmp r0, #0
beq _0813E99E
bl _0813F26C
_0813E99E:
mov r0, r8
adds r4, r0, r7
lsls r4, r4, #3
adds r4, r4, r5
ldrh r0, [r4, #0xc]
bl LaunchTask_PostEvoSparklesSet2AndFlash
strb r0, [r6, #2]
b _0813EC5E
.align 2, 0
_0813E9B0: .4byte 0x02023FD6
_0813E9B4:
ldr r0, _0813E9DC
ldrb r1, [r0, #2]
lsls r0, r1, #2
adds r0, r0, r1
lsls r0, r0, #3
adds r0, r0, r5
ldrb r0, [r0, #4]
cmp r0, #0
beq _0813E9CA
bl _0813F26C
_0813E9CA:
movs r0, #0x21
bl PlaySE
mov r2, r8
adds r1, r2, r7
lsls r1, r1, #3
adds r1, r1, r5
b _0813ED1A
.align 2, 0
_0813E9DC: .4byte 0x02023FD6
_0813E9E0:
bl IsSEPlaying
lsls r0, r0, #0x18
cmp r0, #0
bne _0813E9EE
bl _0813F26C
_0813E9EE:
bl m4aMPlayAllStop
ldr r0, _0813EA20
ldr r1, _0813EA24
ldr r1, [r1]
adds r1, #4
movs r2, #0x60
bl memcpy
bl sub_0814023C
movs r0, #0
str r0, [sp]
movs r0, #0x1c
movs r1, #0
movs r2, #0x10
movs r3, #0
bl BeginNormalPaletteFade
ldr r0, _0813EA28
mov r3, r8
adds r1, r3, r7
lsls r1, r1, #3
adds r1, r1, r0
b _0813ED1A
.align 2, 0
_0813EA20: .4byte 0x020373F4
_0813EA24: .4byte 0x0203A84C
_0813EA28: .4byte 0x03005B60
_0813EA2C:
ldr r0, _0813EA50
ldrb r1, [r0, #7]
movs r0, #0x80
ands r0, r1
cmp r0, #0
beq _0813EA3C
bl _0813F26C
_0813EA3C:
ldr r0, _0813EA54
ldr r0, [r0]
ldrb r0, [r0, #1]
mov r1, r8
adds r4, r1, r7
lsls r4, r4, #3
adds r4, r4, r5
ldrh r1, [r4, #0xc]
b _0813EC5A
.align 2, 0
_0813EA50: .4byte 0x02037C74
_0813EA54: .4byte 0x0203A84C
_0813EA58:
bl IsCryFinished
lsls r0, r0, #0x18
cmp r0, #0
bne _0813EA66
bl _0813F26C
_0813EA66:
ldr r4, _0813EAD4
ldr r1, _0813EAD8
adds r0, r4, #0
bl StringExpandPlaceholders
adds r0, r4, #0
movs r1, #0
bl sub_0814FA04
ldr r0, _0813EADC
bl PlayBGM
ldr r2, _0813EAE0
mov r3, r8
adds r1, r3, r7
lsls r1, r1, #3
adds r4, r1, r2
ldrh r0, [r4, #8]
adds r0, #1
strh r0, [r4, #8]
adds r2, r2, r1
adds r2, #0xc
mov r0, sb
movs r1, #0xb
bl SetMonData
mov r0, sb
bl CalculateMonStats
ldrh r1, [r4, #0xa]
ldrh r2, [r4, #0xc]
mov r0, sb
bl sub_0806D23C
ldrh r0, [r4, #0xc]
bl HoennToNationalOrder
lsls r0, r0, #0x10
lsrs r0, r0, #0x10
movs r1, #2
bl GetSetPokedexFlag
ldrh r0, [r4, #0xc]
bl HoennToNationalOrder
lsls r0, r0, #0x10
lsrs r0, r0, #0x10
movs r1, #3
bl GetSetPokedexFlag
movs r0, #0xe
bl IncrementGameStat
b _0813F26C
.align 2, 0
_0813EAD4: .4byte 0x02021C7C
_0813EAD8: .4byte 0x085ABB0F
_0813EADC: .4byte 0x00000173
_0813EAE0: .4byte 0x03005B60
_0813EAE4:
movs r0, #0
bl IsTextPrinterActive
lsls r0, r0, #0x10
cmp r0, #0
beq _0813EAF2
b _0813F26C
_0813EAF2:
ldr r1, _0813EB50
mov r2, r8
adds r0, r2, r7
lsls r0, r0, #3
adds r4, r0, r1
ldrb r1, [r4, #0x10]
mov r0, sb
bl MonTryLearningNewMove
lsls r0, r0, #0x10
lsrs r6, r0, #0x10
cmp r6, #0
beq _0813EB70
movs r3, #0x1a
ldrsh r5, [r4, r3]
cmp r5, #0
bne _0813EB70
ldrh r1, [r4, #0xe]
movs r0, #0x80
ands r0, r1
cmp r0, #0
bne _0813EB26
bl StopMapMusic
bl Overworld_PlaySpecialMapMusic
_0813EB26:
ldrh r0, [r4, #0xe]
movs r1, #0x80
orrs r0, r1
strh r0, [r4, #0xe]
strh r5, [r4, #0x10]
strh r5, [r4, #0x14]
mov r0, sb
movs r1, #2
add r2, sp, #4
bl GetMonData
ldr r0, _0813EB54
add r1, sp, #4
bl StringCopy10
ldr r0, _0813EB58
cmp r6, r0
bne _0813EB5C
movs r0, #0x16
strh r0, [r4, #8]
b _0813F26C
.align 2, 0
_0813EB50: .4byte 0x03005B60
_0813EB54: .4byte 0x02022C0C
_0813EB58: .4byte 0x0000FFFF
_0813EB5C:
ldr r0, _0813EB6C
cmp r6, r0
bne _0813EB64
b _0813F26C
_0813EB64:
movs r0, #0x14
strh r0, [r4, #8]
b _0813F26C
.align 2, 0
_0813EB6C: .4byte 0x0000FFFE
_0813EB70:
movs r0, #1
rsbs r0, r0, #0
movs r1, #0
str r1, [sp]
movs r2, #0
movs r3, #0x10
bl BeginNormalPaletteFade
ldr r0, _0813EB8C
mov r2, r8
adds r1, r2, r7
lsls r1, r1, #3
adds r1, r1, r0
b _0813ED1A
.align 2, 0
_0813EB8C: .4byte 0x03005B60
_0813EB90:
ldr r0, _0813EBF0
ldrb r1, [r0, #7]
movs r2, #0x80
adds r0, r2, #0
ands r0, r1
lsls r0, r0, #0x18
lsrs r6, r0, #0x18
cmp r6, #0
beq _0813EBA4
b _0813F26C
_0813EBA4:
mov r3, r8
adds r0, r3, r7
lsls r0, r0, #3
adds r4, r0, r5
ldrh r1, [r4, #0xe]
adds r0, r2, #0
ands r0, r1
cmp r0, #0
bne _0813EBBE
bl StopMapMusic
bl Overworld_PlaySpecialMapMusic
_0813EBBE:
movs r1, #0x1a
ldrsh r0, [r4, r1]
cmp r0, #0
bne _0813EBCE
ldrh r0, [r4, #0xa]
mov r1, sb
bl CreateShedinja
_0813EBCE:
adds r0, r7, #0
bl DestroyTask
bl FreeMonSpritesGfx
ldr r4, _0813EBF4
ldr r0, [r4]
bl Free
str r6, [r4]
bl FreeAllWindowBuffers
ldr r0, _0813EBF8
ldr r0, [r0]
bl SetMainCallback2
b _0813F26C
.align 2, 0
_0813EBF0: .4byte 0x02037C74
_0813EBF4: .4byte 0x0203A84C
_0813EBF8: .4byte 0x03005F28
_0813EBFC:
ldr r0, _0813EC30
ldrb r1, [r0, #2]
lsls r0, r1, #2
adds r0, r0, r1
lsls r0, r0, #3
adds r0, r0, r5
ldrb r0, [r0, #4]
cmp r0, #0
beq _0813EC10
b _0813F26C
_0813EC10:
bl m4aMPlayAllStop
ldr r0, _0813EC34
ldr r1, _0813EC38
str r1, [sp]
movs r1, #0
movs r2, #0x10
movs r3, #0
bl BeginNormalPaletteFade
mov r2, r8
adds r1, r2, r7
lsls r1, r1, #3
adds r1, r1, r5
b _0813ED1A
.align 2, 0
_0813EC30: .4byte 0x02023FD6
_0813EC34: .4byte 0x0006001C
_0813EC38: .4byte 0x00007FFF
_0813EC3C:
ldr r0, _0813EC68
ldrb r1, [r0, #7]
movs r0, #0x80
ands r0, r1
cmp r0, #0
beq _0813EC4A
b _0813F26C
_0813EC4A:
ldr r0, _0813EC6C
ldr r0, [r0]
ldrb r0, [r0]
mov r3, r8
adds r4, r3, r7
lsls r4, r4, #3
adds r4, r4, r5
_0813EC58:
ldrh r1, [r4, #0xa]
_0813EC5A:
bl EvoScene_DoMonAnimation
_0813EC5E:
ldrh r0, [r4, #8]
adds r0, #1
strh r0, [r4, #8]
b _0813F26C
.align 2, 0
_0813EC68: .4byte 0x02037C74
_0813EC6C: .4byte 0x0203A84C
_0813EC70:
ldr r0, _0813EC9C
ldr r0, [r0]
ldrb r0, [r0]
bl EvoScene_IsMonAnimFinished
cmp r0, #0
bne _0813EC80
b _0813F26C
_0813EC80:
ldr r0, _0813ECA0
mov r2, r8
adds r1, r2, r7
lsls r1, r1, #3
adds r1, r1, r0
movs r3, #0x1a
ldrsh r0, [r1, r3]
cmp r0, #0
beq _0813ECAC
ldr r0, _0813ECA4
ldr r1, _0813ECA8
bl StringExpandPlaceholders
b _0813ECB4
.align 2, 0
_0813EC9C: .4byte 0x0203A84C
_0813ECA0: .4byte 0x03005B60
_0813ECA4: .4byte 0x02021C7C
_0813ECA8: .4byte 0x085ABB3E
_0813ECAC:
ldr r0, _0813ECCC
ldr r1, _0813ECD0
bl StringExpandPlaceholders
_0813ECB4:
ldr r0, _0813ECCC
movs r1, #0
bl sub_0814FA04
ldr r1, _0813ECD4
mov r2, r8
adds r0, r2, r7
lsls r0, r0, #3
adds r0, r0, r1
movs r1, #1
strh r1, [r0, #0x1a]
b _0813F236
.align 2, 0
_0813ECCC: .4byte 0x02021C7C
_0813ECD0: .4byte 0x085ABB28
_0813ECD4: .4byte 0x03005B60
_0813ECD8:
movs r0, #0
bl IsTextPrinterActive
lsls r0, r0, #0x10
cmp r0, #0
beq _0813ECE6
b _0813F26C
_0813ECE6:
bl IsSEPlaying
lsls r0, r0, #0x18
cmp r0, #0
beq _0813ECF2
b _0813F26C
_0813ECF2:
bl BufferMoveToLearnIntoBattleTextBuff2
ldr r0, _0813ED24
bl PlayFanfare
ldr r0, _0813ED28
ldr r0, [r0, #0xc]
bl TryGetStatusString
ldr r0, _0813ED2C
movs r1, #0
bl sub_0814FA04
ldr r0, _0813ED30
mov r3, r8
adds r1, r3, r7
lsls r1, r1, #3
adds r1, r1, r0
movs r0, #0x40
strh r0, [r1, #0x10]
_0813ED1A:
ldrh r0, [r1, #8]
adds r0, #1
strh r0, [r1, #8]
b _0813F26C
.align 2, 0
_0813ED24: .4byte 0x0000016F
_0813ED28: .4byte 0x085AB3DC
_0813ED2C: .4byte 0x02022AE0
_0813ED30: .4byte 0x03005B60
_0813ED34:
movs r0, #0
bl IsTextPrinterActive
lsls r0, r0, #0x10
cmp r0, #0
beq _0813ED42
b _0813F26C
_0813ED42:
bl IsSEPlaying
lsls r0, r0, #0x18
cmp r0, #0
beq _0813ED4E
b _0813F26C
_0813ED4E:
ldr r0, _0813ED6C
mov r2, r8
adds r1, r2, r7
lsls r1, r1, #3
adds r1, r1, r0
ldrh r0, [r1, #0x10]
subs r0, #1
strh r0, [r1, #0x10]
lsls r0, r0, #0x10
cmp r0, #0
beq _0813ED66
b _0813F26C
_0813ED66:
movs r0, #0xf
strh r0, [r1, #8]
b _0813F26C
.align 2, 0
_0813ED6C: .4byte 0x03005B60
_0813ED70:
mov r3, r8
adds r0, r3, r7
lsls r0, r0, #3
adds r0, r0, r5
movs r1, #0x14
ldrsh r0, [r0, r1]
cmp r0, #0xc
bls _0813ED82
b _0813F26C
_0813ED82:
lsls r0, r0, #2
ldr r1, _0813ED8C
adds r0, r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_0813ED8C: .4byte 0x0813ED90
_0813ED90: @ jump table
.4byte _0813EDC4 @ case 0
.4byte _0813EE10 @ case 1
.4byte _0813EE58 @ case 2
.4byte _0813EE96 @ case 3
.4byte _0813EEFC @ case 4
.4byte _0813EFF8 @ case 5
.4byte _0813F050 @ case 6
.4byte _0813F124 @ case 7
.4byte _0813F158 @ case 8
.4byte _0813F1A0 @ case 9
.4byte _0813F1E8 @ case 10
.4byte _0813F21C @ case 11
.4byte _0813F248 @ case 12
_0813EDC4:
movs r0, #0
bl IsTextPrinterActive
lsls r0, r0, #0x10
cmp r0, #0
beq _0813EDD2
b _0813F26C
_0813EDD2:
bl IsSEPlaying
lsls r0, r0, #0x18
cmp r0, #0
beq _0813EDDE
b _0813F26C
_0813EDDE:
bl BufferMoveToLearnIntoBattleTextBuff2
ldr r0, _0813EE04
ldr r0, [r0, #0x10]
bl TryGetStatusString
ldr r0, _0813EE08
movs r1, #0
bl sub_0814FA04
ldr r0, _0813EE0C
mov r2, r8
adds r1, r2, r7
lsls r1, r1, #3
adds r1, r1, r0
ldrh r0, [r1, #0x14]
adds r0, #1
b _0813F26A
.align 2, 0
_0813EE04: .4byte 0x085AB3DC
_0813EE08: .4byte 0x02022AE0
_0813EE0C: .4byte 0x03005B60
_0813EE10:
movs r0, #0
bl IsTextPrinterActive
lsls r0, r0, #0x10
cmp r0, #0
beq _0813EE1E
b _0813F26C
_0813EE1E:
bl IsSEPlaying
lsls r0, r0, #0x18
cmp r0, #0
beq _0813EE2A
b _0813F26C
_0813EE2A:
ldr r0, _0813EE4C
ldr r0, [r0, #0x14]
bl TryGetStatusString
ldr r0, _0813EE50
movs r1, #0
bl sub_0814FA04
ldr r0, _0813EE54
mov r3, r8
adds r1, r3, r7
lsls r1, r1, #3
adds r1, r1, r0
ldrh r0, [r1, #0x14]
adds r0, #1
b _0813F26A
.align 2, 0
_0813EE4C: .4byte 0x085AB3DC
_0813EE50: .4byte 0x02022AE0
_0813EE54: .4byte 0x03005B60
_0813EE58:
movs r0, #0
bl IsTextPrinterActive
lsls r0, r0, #0x10
cmp r0, #0
bne _0813EE96
bl IsSEPlaying
lsls r0, r0, #0x18
cmp r0, #0
bne _0813EE96
ldr r0, _0813EEE8
ldr r0, [r0, #0x18]
bl TryGetStatusString
ldr r0, _0813EEEC
movs r1, #0
bl sub_0814FA04
ldr r0, _0813EEF0
mov r2, r8
adds r1, r2, r7
lsls r1, r1, #3
adds r1, r1, r0
movs r0, #5
strh r0, [r1, #0x16]
movs r0, #0xa
strh r0, [r1, #0x18]
ldrh r0, [r1, #0x14]
adds r0, #1
strh r0, [r1, #0x14]
_0813EE96:
movs r0, #0
bl IsTextPrinterActive
lsls r0, r0, #0x10
cmp r0, #0
beq _0813EEA4
b _0813F26C
_0813EEA4:
bl IsSEPlaying
lsls r0, r0, #0x18
lsrs r0, r0, #0x18
cmp r0, #0
beq _0813EEB2
b _0813F26C
_0813EEB2:
str r0, [sp]
movs r0, #0x18
movs r1, #8
movs r2, #0x1d
movs r3, #0xd
bl HandleBattleWindow
ldr r0, _0813EEF4
movs r1, #0xc
bl sub_0814FA04
ldr r0, _0813EEF0
mov r3, r8
adds r1, r3, r7
lsls r1, r1, #3
adds r1, r1, r0
ldrh r0, [r1, #0x14]
adds r0, #1
movs r2, #0
strh r0, [r1, #0x14]
ldr r0, _0813EEF8
strb r2, [r0, #1]
movs r0, #0
bl BattleCreateYesNoCursorAt
b _0813F26C
.align 2, 0
_0813EEE8: .4byte 0x085AB3DC
_0813EEEC: .4byte 0x02022AE0
_0813EEF0: .4byte 0x03005B60
_0813EEF4: .4byte 0x085ABBC9
_0813EEF8: .4byte 0x02023FD6
_0813EEFC:
ldr r0, _0813EF88
ldrh r1, [r0, #0x2e]
movs r0, #0x40
ands r0, r1
cmp r0, #0
beq _0813EF24
ldr r4, _0813EF8C
ldrb r0, [r4, #1]
cmp r0, #0
beq _0813EF24
movs r0, #5
bl PlaySE
ldrb r0, [r4, #1]
bl BattleDestroyYesNoCursorAt
movs r0, #0
strb r0, [r4, #1]
bl BattleCreateYesNoCursorAt
_0813EF24:
ldr r0, _0813EF88
ldrh r1, [r0, #0x2e]
movs r0, #0x80
ands r0, r1
cmp r0, #0
beq _0813EF4C
ldr r4, _0813EF8C
ldrb r0, [r4, #1]
cmp r0, #0
bne _0813EF4C
movs r0, #5
bl PlaySE
ldrb r0, [r4, #1]
bl BattleDestroyYesNoCursorAt
movs r0, #1
strb r0, [r4, #1]
bl BattleCreateYesNoCursorAt
_0813EF4C:
ldr r0, _0813EF88
ldrh r1, [r0, #0x2e]
movs r2, #1
adds r0, r2, #0
ands r0, r1
cmp r0, #0
beq _0813EFBA
str r2, [sp]
movs r0, #0x18
movs r1, #8
movs r2, #0x1d
movs r3, #0xd
bl HandleBattleWindow
movs r0, #5
bl PlaySE
ldr r0, _0813EF8C
ldrb r2, [r0, #1]
cmp r2, #0
beq _0813EF94
ldr r0, _0813EF90
mov r2, r8
adds r1, r2, r7
lsls r1, r1, #3
adds r1, r1, r0
ldrh r0, [r1, #0x18]
strh r0, [r1, #0x14]
b _0813EFBA
.align 2, 0
_0813EF88: .4byte 0x03002360
_0813EF8C: .4byte 0x02023FD6
_0813EF90: .4byte 0x03005B60
_0813EF94:
ldr r0, _0813EFF0
mov r3, r8
adds r1, r3, r7
lsls r1, r1, #3
adds r1, r1, r0
ldrh r0, [r1, #0x16]
strh r0, [r1, #0x14]
lsls r0, r0, #0x10
asrs r0, r0, #0x10
cmp r0, #5
bne _0813EFBA
movs r0, #1
rsbs r0, r0, #0
str r2, [sp]
movs r1, #0
movs r2, #0
movs r3, #0x10
bl BeginNormalPaletteFade
_0813EFBA:
ldr r0, _0813EFF4
ldrh r1, [r0, #0x2e]
movs r0, #2
ands r0, r1
cmp r0, #0
bne _0813EFC8
b _0813F26C
_0813EFC8:
movs r0, #1
str r0, [sp]
movs r0, #0x18
movs r1, #8
movs r2, #0x1d
movs r3, #0xd
bl HandleBattleWindow
movs r0, #5
bl PlaySE
ldr r1, _0813EFF0
mov r2, r8
adds r0, r2, r7
lsls r0, r0, #3
adds r0, r0, r1
ldrh r1, [r0, #0x18]
strh r1, [r0, #0x14]
b _0813F26C
.align 2, 0
_0813EFF0: .4byte 0x03005B60
_0813EFF4: .4byte 0x03002360
_0813EFF8:
ldr r0, _0813F038
ldrb r1, [r0, #7]
movs r0, #0x80
ands r0, r1
cmp r0, #0
beq _0813F006
b _0813F26C
_0813F006:
bl FreeAllWindowBuffers
ldr r0, _0813F03C
ldr r1, _0813F040
mov r3, r8
adds r5, r3, r7
lsls r5, r5, #3
adds r5, r5, r1
ldrb r1, [r5, #0x1c]
ldr r2, _0813F044
ldrb r2, [r2]
subs r2, #1
lsls r2, r2, #0x18
lsrs r2, r2, #0x18
ldr r3, _0813F048
ldr r4, _0813F04C
ldrh r4, [r4]
str r4, [sp]
bl ShowSelectMovePokemonSummaryScreen
ldrh r0, [r5, #0x14]
adds r0, #1
strh r0, [r5, #0x14]
b _0813F26C
.align 2, 0
_0813F038: .4byte 0x02037C74
_0813F03C: .4byte 0x02024190
_0813F040: .4byte 0x03005B60
_0813F044: .4byte 0x0202418D
_0813F048: .4byte 0x0813DE81
_0813F04C: .4byte 0x02024186
_0813F050:
ldr r0, _0813F084
ldrb r1, [r0, #7]
movs r0, #0x80
ands r0, r1
cmp r0, #0
beq _0813F05E
b _0813F26C
_0813F05E:
ldr r1, [r6, #4]
ldr r0, _0813F088
cmp r1, r0
beq _0813F068
b _0813F26C
_0813F068:
bl sub_081C14C8
lsls r0, r0, #0x18
lsrs r6, r0, #0x18
cmp r6, #4
bne _0813F090
ldr r0, _0813F08C
mov r2, r8
adds r1, r2, r7
lsls r1, r1, #3
adds r1, r1, r0
movs r0, #0xa
b _0813F26A
.align 2, 0
_0813F084: .4byte 0x02037C74
_0813F088: .4byte 0x0813E4A9
_0813F08C: .4byte 0x03005B60
_0813F090:
adds r1, r6, #0
adds r1, #0xd
mov r0, sb
bl GetMonData
lsls r0, r0, #0x10
lsrs r4, r0, #0x10
adds r0, r4, #0
bl IsHMMove2
cmp r0, #0
beq _0813F0DC
ldr r0, _0813F0CC
ldr r3, _0813F0D0
adds r0, r0, r3
ldr r0, [r0]
bl TryGetStatusString
ldr r0, _0813F0D4
movs r1, #0
bl sub_0814FA04
ldr r1, _0813F0D8
mov r2, r8
adds r0, r2, r7
lsls r0, r0, #3
adds r0, r0, r1
movs r1, #0xc
strh r1, [r0, #0x14]
b _0813F26C
.align 2, 0
_0813F0CC: .4byte 0x085AB3DC
_0813F0D0: .4byte 0x000004CC
_0813F0D4: .4byte 0x02022AE0
_0813F0D8: .4byte 0x03005B60
_0813F0DC:
ldr r1, _0813F118
movs r0, #0xfd
strb r0, [r1]
movs r0, #2
strb r0, [r1, #1]
strb r4, [r1, #2]
lsrs r0, r4, #8
strb r0, [r1, #3]
movs r0, #0xff
strb r0, [r1, #4]
lsls r4, r6, #0x18
lsrs r4, r4, #0x18
mov r0, sb
adds r1, r4, #0
bl RemoveMonPPBonus
ldr r0, _0813F11C
ldrh r1, [r0]
mov r0, sb
adds r2, r4, #0
bl SetMonMoveSlot
ldr r0, _0813F120
mov r3, r8
adds r1, r3, r7
lsls r1, r1, #3
adds r1, r1, r0
ldrh r0, [r1, #0x14]
adds r0, #1
b _0813F26A
.align 2, 0
_0813F118: .4byte 0x02022C1C
_0813F11C: .4byte 0x02024186
_0813F120: .4byte 0x03005B60
_0813F124:
ldr r0, _0813F14C
movs r1, #0xcf
lsls r1, r1, #2
adds r0, r0, r1
ldr r0, [r0]
bl TryGetStatusString
ldr r0, _0813F150
movs r1, #0
bl sub_0814FA04
ldr r0, _0813F154
mov r2, r8
adds r1, r2, r7
lsls r1, r1, #3
adds r1, r1, r0
ldrh r0, [r1, #0x14]
adds r0, #1
b _0813F26A
.align 2, 0
_0813F14C: .4byte 0x085AB3DC
_0813F150: .4byte 0x02022AE0
_0813F154: .4byte 0x03005B60
_0813F158:
movs r0, #0
bl IsTextPrinterActive
lsls r0, r0, #0x10
cmp r0, #0
beq _0813F166
b _0813F26C
_0813F166:
bl IsSEPlaying
lsls r0, r0, #0x18
cmp r0, #0
beq _0813F172
b _0813F26C
_0813F172:
ldr r0, _0813F194
ldr r0, [r0, #0x1c]
bl TryGetStatusString
ldr r0, _0813F198
movs r1, #0
bl sub_0814FA04
ldr r0, _0813F19C
mov r3, r8
adds r1, r3, r7
lsls r1, r1, #3
adds r1, r1, r0
ldrh r0, [r1, #0x14]
adds r0, #1
b _0813F26A
.align 2, 0
_0813F194: .4byte 0x085AB3DC
_0813F198: .4byte 0x02022AE0
_0813F19C: .4byte 0x03005B60
_0813F1A0:
movs r0, #0
bl IsTextPrinterActive
lsls r0, r0, #0x10
cmp r0, #0
bne _0813F26C
bl IsSEPlaying
lsls r0, r0, #0x18
cmp r0, #0
bne _0813F26C
ldr r0, _0813F1DC
movs r1, #0xd0
lsls r1, r1, #2
adds r0, r0, r1
ldr r0, [r0]
bl TryGetStatusString
ldr r0, _0813F1E0
movs r1, #0
bl sub_0814FA04
ldr r1, _0813F1E4
mov r2, r8
adds r0, r2, r7
lsls r0, r0, #3
adds r0, r0, r1
movs r1, #0x14
strh r1, [r0, #8]
b _0813F26C
.align 2, 0
_0813F1DC: .4byte 0x085AB3DC
_0813F1E0: .4byte 0x02022AE0
_0813F1E4: .4byte 0x03005B60
_0813F1E8:
ldr r0, _0813F210
ldr r0, [r0, #0x20]
bl TryGetStatusString
ldr r0, _0813F214
movs r1, #0
bl sub_0814FA04
ldr r1, _0813F218
mov r3, r8
adds r0, r3, r7
lsls r0, r0, #3
adds r0, r0, r1
movs r2, #0
movs r1, #0xb
strh r1, [r0, #0x16]
strh r2, [r0, #0x18]
movs r1, #3
strh r1, [r0, #0x14]
b _0813F26C
.align 2, 0
_0813F210: .4byte 0x085AB3DC
_0813F214: .4byte 0x02022AE0
_0813F218: .4byte 0x03005B60
_0813F21C:
ldr r0, _0813F23C
ldr r0, [r0, #0x24]
bl TryGetStatusString
ldr r0, _0813F240
movs r1, #0
bl sub_0814FA04
ldr r1, _0813F244
mov r2, r8
adds r0, r2, r7
lsls r0, r0, #3
adds r0, r0, r1
_0813F236:
movs r1, #0xf
strh r1, [r0, #8]
b _0813F26C
.align 2, 0
_0813F23C: .4byte 0x085AB3DC
_0813F240: .4byte 0x02022AE0
_0813F244: .4byte 0x03005B60
_0813F248:
movs r0, #0
bl IsTextPrinterActive
lsls r0, r0, #0x10
cmp r0, #0
bne _0813F26C
bl IsSEPlaying
lsls r0, r0, #0x18
cmp r0, #0
bne _0813F26C
ldr r0, _0813F27C
mov r3, r8
adds r1, r3, r7
lsls r1, r1, #3
adds r1, r1, r0
movs r0, #5
_0813F26A:
strh r0, [r1, #0x14]
_0813F26C:
add sp, #0x18
pop {r3, r4}
mov r8, r3
mov sb, r4
pop {r4, r5, r6, r7}
pop {r0}
bx r0
.align 2, 0
_0813F27C: .4byte 0x03005B60
thumb_func_end Task_EvolutionScene
thumb_func_start Task_TradeEvolutionScene
Task_TradeEvolutionScene: @ 0x0813F280
push {r4, r5, r6, r7, lr}
mov r7, sb
mov r6, r8
push {r6, r7}
sub sp, #0x20
lsls r0, r0, #0x18
lsrs r7, r0, #0x18
ldr r3, _0813F2C0
lsls r0, r7, #2
adds r0, r0, r7
lsls r0, r0, #3
adds r0, r0, r3
movs r1, #0x1c
ldrsh r2, [r0, r1]
movs r1, #0x64
muls r2, r1, r2
ldr r1, _0813F2C4
adds r2, r2, r1
mov sb, r2
movs r2, #8
ldrsh r0, [r0, r2]
adds r5, r3, #0
cmp r0, #0x14
bls _0813F2B4
bl _0813FD8C
_0813F2B4:
lsls r0, r0, #2
ldr r1, _0813F2C8
adds r0, r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_0813F2C0: .4byte 0x03005B60
_0813F2C4: .4byte 0x02024190
_0813F2C8: .4byte 0x0813F2CC
_0813F2CC: @ jump table
.4byte _0813F320 @ case 0
.4byte _0813F34C @ case 1
.4byte _0813F374 @ case 2
.4byte _0813F3A4 @ case 3
.4byte _0813F3DC @ case 4
.4byte _0813F448 @ case 5
.4byte _0813F488 @ case 6
.4byte _0813F4B8 @ case 7
.4byte _0813F4F4 @ case 8
.4byte _0813F510 @ case 9
.4byte _0813F53C @ case 10
.4byte _0813F560 @ case 11
.4byte _0813F5A0 @ case 12
.4byte _0813F62C @ case 13
.4byte _0813F6E0 @ case 14
.4byte _0813F724 @ case 15
.4byte _0813F78C @ case 16
.4byte _0813F7C0 @ case 17
.4byte _0813F804 @ case 18
.4byte _0813F860 @ case 19
.4byte _0813F8A0 @ case 20
_0813F320:
ldr r4, _0813F340
ldr r1, _0813F344
adds r0, r4, #0
bl StringExpandPlaceholders
movs r0, #0
adds r1, r4, #0
movs r2, #1
bl sub_0807EBE0
ldr r1, _0813F348
lsls r0, r7, #2
adds r0, r0, r7
lsls r0, r0, #3
adds r0, r0, r1
b _0813F770
.align 2, 0
_0813F340: .4byte 0x02021C7C
_0813F344: .4byte 0x085ABAFC
_0813F348: .4byte 0x03005B60
_0813F34C:
movs r0, #0
bl IsTextPrinterActive
lsls r0, r0, #0x10
cmp r0, #0
beq _0813F35C
bl _0813FD8C
_0813F35C:
ldr r0, _0813F370
lsls r4, r7, #2
adds r4, r4, r7
lsls r4, r4, #3
adds r4, r4, r0
ldrh r0, [r4, #0xa]
movs r1, #0
bl PlayCry1
b _0813F7AE
.align 2, 0
_0813F370: .4byte 0x03005B60
_0813F374:
bl IsCryFinished
lsls r0, r0, #0x18
cmp r0, #0
bne _0813F382
bl _0813FD8C
_0813F382:
ldr r0, _0813F39C
bl m4aSongNumStop
movs r0, #0xbc
lsls r0, r0, #1
bl PlaySE
ldr r1, _0813F3A0
lsls r0, r7, #2
adds r0, r0, r7
lsls r0, r0, #3
adds r0, r0, r1
b _0813F770
.align 2, 0
_0813F39C: .4byte 0x00000179
_0813F3A0: .4byte 0x03005B60
_0813F3A4:
bl IsSEPlaying
lsls r0, r0, #0x18
lsrs r5, r0, #0x18
cmp r5, #0
beq _0813F3B4
bl _0813FD8C
_0813F3B4:
ldr r0, _0813F3D4
bl PlayBGM
ldr r1, _0813F3D8
lsls r0, r7, #2
adds r0, r0, r7
lsls r0, r0, #3
adds r0, r0, r1
ldrh r1, [r0, #8]
adds r1, #1
strh r1, [r0, #8]
str r5, [sp]
movs r0, #0x1c
movs r1, #4
b _0813FA90
.align 2, 0
_0813F3D4: .4byte 0x00000179
_0813F3D8: .4byte 0x03005B60
_0813F3DC:
ldr r0, _0813F430
ldrb r1, [r0, #7]
movs r0, #0x80
ands r0, r1
cmp r0, #0
beq _0813F3EC
bl _0813FD8C
_0813F3EC:
movs r0, #1
bl InitMovingBackgroundTask
ldr r2, _0813F434
ldr r0, _0813F438
ldr r0, [r0]
ldrb r1, [r0]
lsls r0, r1, #4
adds r0, r0, r1
lsls r0, r0, #2
adds r0, r0, r2
ldrb r0, [r0, #5]
lsrs r0, r0, #4
adds r6, r0, #0
adds r6, #0x10
adds r0, r6, #0
bl LaunchTask_PreEvoSparklesSet1
ldr r1, _0813F43C
strb r0, [r1, #2]
ldr r1, _0813F440
lsls r0, r7, #2
adds r0, r0, r7
lsls r0, r0, #3
adds r0, r0, r1
ldrh r1, [r0, #8]
adds r1, #1
strh r1, [r0, #8]
ldr r1, _0813F444
movs r0, #0xe
bl SetGpuReg
bl _0813FD8C
.align 2, 0
_0813F430: .4byte 0x02037C74
_0813F434: .4byte 0x020205AC
_0813F438: .4byte 0x0203A84C
_0813F43C: .4byte 0x02023FD6
_0813F440: .4byte 0x03005B60
_0813F444: .4byte 0x00000603
_0813F448:
ldr r4, _0813F480
ldrb r0, [r4, #2]
lsls r1, r0, #2
adds r1, r1, r0
lsls r1, r1, #3
adds r1, r1, r5
ldrb r0, [r1, #4]
cmp r0, #0
beq _0813F45E
bl _0813FD8C
_0813F45E:
lsls r0, r7, #2
adds r0, r0, r7
lsls r0, r0, #3
adds r0, r0, r5
ldrh r1, [r0, #8]
adds r1, #1
strh r1, [r0, #8]
ldr r0, _0813F484
ldr r1, [r0]
movs r0, #1
strb r0, [r1, #3]
bl LaunchTask_PostEvoSparklesSet1
strb r0, [r4, #2]
bl _0813FD8C
.align 2, 0
_0813F480: .4byte 0x02023FD6
_0813F484: .4byte 0x0203A84C
_0813F488:
ldr r4, _0813F4B0
ldrb r0, [r4, #2]
lsls r1, r0, #2
adds r1, r1, r0
lsls r1, r1, #3
adds r1, r1, r5
ldrb r0, [r1, #4]
cmp r0, #0
beq _0813F49E
bl _0813FD8C
_0813F49E:
ldr r0, _0813F4B4
ldr r1, [r0]
ldrb r0, [r1]
ldrb r1, [r1, #1]
bl sub_0817C260
strb r0, [r4, #2]
b _0813F768
.align 2, 0
_0813F4B0: .4byte 0x02023FD6
_0813F4B4: .4byte 0x0203A84C
_0813F4B8:
ldr r2, _0813F4EC
ldr r1, [r2]
ldrb r0, [r1, #3]
subs r0, #1
strb r0, [r1, #3]
lsls r0, r0, #0x18
cmp r0, #0
beq _0813F4CC
bl _0813FD8C
_0813F4CC:
ldr r1, [r2]
movs r0, #3
strb r0, [r1, #3]
ldr r0, _0813F4F0
ldrb r1, [r0, #2]
lsls r0, r1, #2
adds r0, r0, r1
lsls r0, r0, #3
adds r0, r0, r5
ldrb r0, [r0, #4]
cmp r0, #0
beq _0813F4E8
bl _0813FD8C
_0813F4E8:
b _0813F768
.align 2, 0
_0813F4EC: .4byte 0x0203A84C
_0813F4F0: .4byte 0x02023FD6
_0813F4F4:
bl LaunchTask_PreEvoSparklesSet2
ldr r1, _0813F508
strb r0, [r1, #2]
ldr r1, _0813F50C
lsls r0, r7, #2
adds r0, r0, r7
lsls r0, r0, #3
adds r0, r0, r1
b _0813F770
.align 2, 0
_0813F508: .4byte 0x02023FD6
_0813F50C: .4byte 0x03005B60
_0813F510:
ldr r6, _0813F538
ldrb r0, [r6, #2]
lsls r1, r0, #2
adds r1, r1, r0
lsls r1, r1, #3
adds r1, r1, r5
ldrb r0, [r1, #4]
cmp r0, #0
beq _0813F526
bl _0813FD8C
_0813F526:
lsls r4, r7, #2
adds r4, r4, r7
lsls r4, r4, #3
adds r4, r4, r5
ldrh r0, [r4, #0xc]
bl LaunchTask_PostEvoSparklesSet2AndFlash_Trade
strb r0, [r6, #2]
b _0813F7AE
.align 2, 0
_0813F538: .4byte 0x02023FD6
_0813F53C:
ldr r0, _0813F55C
ldrb r1, [r0, #2]
lsls r0, r1, #2
adds r0, r0, r1
lsls r0, r0, #3
adds r0, r0, r5
ldrb r0, [r0, #4]
cmp r0, #0
beq _0813F552
bl _0813FD8C
_0813F552:
movs r0, #0x21
bl PlaySE
b _0813F768
.align 2, 0
_0813F55C: .4byte 0x02023FD6
_0813F560:
bl IsSEPlaying
lsls r0, r0, #0x18
cmp r0, #0
bne _0813F56E
bl _0813FD8C
_0813F56E:
ldr r5, _0813F594
ldr r0, [r5]
ldrb r0, [r0, #1]
ldr r1, _0813F598
lsls r4, r7, #2
adds r4, r4, r7
lsls r4, r4, #3
adds r4, r4, r1
ldrh r1, [r4, #0xc]
bl EvoScene_DoMonAnimation
ldr r0, _0813F59C
ldr r1, [r5]
adds r1, #4
movs r2, #0x60
bl memcpy
b _0813F7AE
.align 2, 0
_0813F594: .4byte 0x0203A84C
_0813F598: .4byte 0x03005B60
_0813F59C: .4byte 0x020373F4
_0813F5A0:
bl IsCryFinished
lsls r0, r0, #0x18
cmp r0, #0
bne _0813F5AE
bl _0813FD8C
_0813F5AE:
ldr r4, _0813F61C
ldr r1, _0813F620
adds r0, r4, #0
bl StringExpandPlaceholders
movs r0, #0
adds r1, r4, #0
movs r2, #1
bl sub_0807EBE0
ldr r0, _0813F624
bl PlayFanfare
ldr r2, _0813F628
lsls r1, r7, #2
adds r1, r1, r7
lsls r1, r1, #3
adds r4, r1, r2
ldrh r0, [r4, #8]
adds r0, #1
strh r0, [r4, #8]
adds r2, r2, r1
adds r2, #0xc
mov r0, sb
movs r1, #0xb
bl SetMonData
mov r0, sb
bl CalculateMonStats
ldrh r1, [r4, #0xa]
ldrh r2, [r4, #0xc]
mov r0, sb
bl sub_0806D23C
ldrh r0, [r4, #0xc]
bl HoennToNationalOrder
lsls r0, r0, #0x10
lsrs r0, r0, #0x10
movs r1, #2
bl GetSetPokedexFlag
ldrh r0, [r4, #0xc]
bl HoennToNationalOrder
lsls r0, r0, #0x10
lsrs r0, r0, #0x10
movs r1, #3
bl GetSetPokedexFlag
movs r0, #0xe
bl IncrementGameStat
b _0813FD8C
.align 2, 0
_0813F61C: .4byte 0x02021C7C
_0813F620: .4byte 0x085ABB0F
_0813F624: .4byte 0x00000173
_0813F628: .4byte 0x03005B60
_0813F62C:
movs r0, #0
bl IsTextPrinterActive
lsls r0, r0, #0x10
cmp r0, #0
beq _0813F63A
b _0813FD8C
_0813F63A:
bl IsFanfareTaskInactive
lsls r0, r0, #0x18
lsrs r0, r0, #0x18
cmp r0, #1
beq _0813F648
b _0813FD8C
_0813F648:
ldr r1, _0813F698
lsls r4, r7, #2
adds r0, r4, r7
lsls r0, r0, #3
adds r5, r0, r1
ldrb r1, [r5, #0x10]
mov r0, sb
bl MonTryLearningNewMove
lsls r0, r0, #0x10
lsrs r6, r0, #0x10
mov r8, r4
cmp r6, #0
beq _0813F6B8
movs r0, #0x1a
ldrsh r2, [r5, r0]
cmp r2, #0
bne _0813F6B8
ldrh r1, [r5, #0xe]
movs r0, #0x80
orrs r0, r1
strh r0, [r5, #0xe]
strh r2, [r5, #0x10]
strh r2, [r5, #0x14]
mov r0, sb
movs r1, #2
add r2, sp, #0xc
bl GetMonData
ldr r0, _0813F69C
add r1, sp, #0xc
bl StringCopy10
ldr r0, _0813F6A0
cmp r6, r0
bne _0813F6A4
movs r0, #0x14
strh r0, [r5, #8]
b _0813FD8C
.align 2, 0
_0813F698: .4byte 0x03005B60
_0813F69C: .4byte 0x02022C0C
_0813F6A0: .4byte 0x0000FFFF
_0813F6A4:
ldr r0, _0813F6B4
cmp r6, r0
bne _0813F6AC
b _0813FD8C
_0813F6AC:
movs r0, #0x12
strh r0, [r5, #8]
b _0813FD8C
.align 2, 0
_0813F6B4: .4byte 0x0000FFFE
_0813F6B8:
ldr r0, _0813F6D4
bl PlayBGM
ldr r1, _0813F6D8
movs r0, #0
movs r2, #1
bl sub_0807EBE0
ldr r0, _0813F6DC
mov r2, r8
adds r1, r2, r7
lsls r1, r1, #3
adds r1, r1, r0
b _0813F848
.align 2, 0
_0813F6D4: .4byte 0x00000179
_0813F6D8: .4byte 0x08595430
_0813F6DC: .4byte 0x03005B60
_0813F6E0:
movs r0, #0
bl IsTextPrinterActive
lsls r0, r0, #0x10
lsrs r5, r0, #0x10
cmp r5, #0
beq _0813F6F0
b _0813FD8C
_0813F6F0:
adds r0, r7, #0
bl DestroyTask
ldr r4, _0813F718
ldr r0, [r4]
bl Free
str r5, [r4]
ldr r2, _0813F71C
ldrb r1, [r2]
movs r0, #3
rsbs r0, r0, #0
ands r0, r1
strb r0, [r2]
ldr r0, _0813F720
ldr r0, [r0]
bl SetMainCallback2
b _0813FD8C
.align 2, 0
_0813F718: .4byte 0x0203A84C
_0813F71C: .4byte 0x030030B4
_0813F720: .4byte 0x03005F28
_0813F724:
ldr r0, _0813F778
ldrb r1, [r0, #2]
lsls r0, r1, #2
adds r0, r0, r1
lsls r0, r0, #3
adds r0, r0, r5
ldrb r0, [r0, #4]
cmp r0, #0
beq _0813F738
b _0813FD8C
_0813F738:
bl m4aMPlayAllStop
ldr r2, _0813F77C
ldr r0, _0813F780
ldr r0, [r0]
ldrb r1, [r0]
lsls r0, r1, #4
adds r0, r0, r1
lsls r0, r0, #2
adds r0, r0, r2
ldrb r1, [r0, #5]
lsrs r1, r1, #4
adds r1, #0x10
movs r0, #1
lsls r0, r1
ldr r1, _0813F784
orrs r0, r1
ldr r1, _0813F788
str r1, [sp]
movs r1, #0
movs r2, #0x10
movs r3, #0
bl BeginNormalPaletteFade
_0813F768:
lsls r0, r7, #2
adds r0, r0, r7
lsls r0, r0, #3
adds r0, r0, r5
_0813F770:
ldrh r1, [r0, #8]
adds r1, #1
strh r1, [r0, #8]
b _0813FD8C
.align 2, 0
_0813F778: .4byte 0x02023FD6
_0813F77C: .4byte 0x020205AC
_0813F780: .4byte 0x0203A84C
_0813F784: .4byte 0x0004001C
_0813F788: .4byte 0x00007FFF
_0813F78C:
ldr r0, _0813F7B8
ldrb r1, [r0, #7]
movs r0, #0x80
ands r0, r1
cmp r0, #0
beq _0813F79A
b _0813FD8C
_0813F79A:
ldr r0, _0813F7BC
ldr r0, [r0]
ldrb r0, [r0]
lsls r4, r7, #2
adds r4, r4, r7
lsls r4, r4, #3
adds r4, r4, r5
ldrh r1, [r4, #0xa]
bl EvoScene_DoMonAnimation
_0813F7AE:
ldrh r0, [r4, #8]
adds r0, #1
strh r0, [r4, #8]
b _0813FD8C
.align 2, 0
_0813F7B8: .4byte 0x02037C74
_0813F7BC: .4byte 0x0203A84C
_0813F7C0:
ldr r0, _0813F7F4
ldr r0, [r0]
ldrb r0, [r0]
bl EvoScene_IsMonAnimFinished
cmp r0, #0
bne _0813F7D0
b _0813FD8C
_0813F7D0:
ldr r4, _0813F7F8
ldr r1, _0813F7FC
adds r0, r4, #0
bl StringExpandPlaceholders
movs r0, #0
adds r1, r4, #0
movs r2, #1
bl sub_0807EBE0
ldr r1, _0813F800
lsls r0, r7, #2
adds r0, r0, r7
lsls r0, r0, #3
adds r0, r0, r1
movs r1, #1
strh r1, [r0, #0x1a]
b _0813FD54
.align 2, 0
_0813F7F4: .4byte 0x0203A84C
_0813F7F8: .4byte 0x02021C7C
_0813F7FC: .4byte 0x085ABB3E
_0813F800: .4byte 0x03005B60
_0813F804:
movs r0, #0
bl IsTextPrinterActive
lsls r0, r0, #0x10
cmp r0, #0
beq _0813F812
b _0813FD8C
_0813F812:
bl IsSEPlaying
lsls r0, r0, #0x18
cmp r0, #0
beq _0813F81E
b _0813FD8C
_0813F81E:
bl BufferMoveToLearnIntoBattleTextBuff2
ldr r0, _0813F850
bl PlayFanfare
ldr r0, _0813F854
ldr r0, [r0, #0xc]
bl TryGetStatusString
ldr r1, _0813F858
movs r0, #0
movs r2, #1
bl sub_0807EBE0
ldr r0, _0813F85C
lsls r1, r7, #2
adds r1, r1, r7
lsls r1, r1, #3
adds r1, r1, r0
movs r0, #0x40
strh r0, [r1, #0x10]
_0813F848:
ldrh r0, [r1, #8]
adds r0, #1
strh r0, [r1, #8]
b _0813FD8C
.align 2, 0
_0813F850: .4byte 0x0000016F
_0813F854: .4byte 0x085AB3DC
_0813F858: .4byte 0x02022AE0
_0813F85C: .4byte 0x03005B60
_0813F860:
movs r0, #0
bl IsTextPrinterActive
lsls r0, r0, #0x10
cmp r0, #0
beq _0813F86E
b _0813FD8C
_0813F86E:
bl IsFanfareTaskInactive
lsls r0, r0, #0x18
lsrs r0, r0, #0x18
cmp r0, #1
beq _0813F87C
b _0813FD8C
_0813F87C:
ldr r0, _0813F89C
lsls r1, r7, #2
adds r1, r1, r7
lsls r1, r1, #3
adds r1, r1, r0
ldrh r0, [r1, #0x10]
subs r0, #1
strh r0, [r1, #0x10]
lsls r0, r0, #0x10
cmp r0, #0
beq _0813F894
b _0813FD8C
_0813F894:
movs r0, #0xd
strh r0, [r1, #8]
b _0813FD8C
.align 2, 0
_0813F89C: .4byte 0x03005B60
_0813F8A0:
lsls r1, r7, #2
adds r0, r1, r7
lsls r0, r0, #3
adds r0, r0, r5
movs r2, #0x14
ldrsh r0, [r0, r2]
mov r8, r1
cmp r0, #0xb
bls _0813F8B4
b _0813FD8C
_0813F8B4:
lsls r0, r0, #2
ldr r1, _0813F8C0
adds r0, r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_0813F8C0: .4byte 0x0813F8C4
_0813F8C4: @ jump table
.4byte _0813F8F4 @ case 0
.4byte _0813F940 @ case 1
.4byte _0813F988 @ case 2
.4byte _0813F9C8 @ case 3
.4byte _0813FA34 @ case 4
.4byte _0813FAEC @ case 5
.4byte _0813FB70 @ case 6
.4byte _0813FC6C @ case 7
.4byte _0813FCB4 @ case 8
.4byte _0813FD00 @ case 9
.4byte _0813FD38 @ case 10
.4byte _0813FD68 @ case 11
_0813F8F4:
movs r0, #0
bl IsTextPrinterActive
lsls r0, r0, #0x10
cmp r0, #0
beq _0813F902
b _0813FD8C
_0813F902:
bl IsSEPlaying
lsls r0, r0, #0x18
cmp r0, #0
beq _0813F90E
b _0813FD8C
_0813F90E:
bl BufferMoveToLearnIntoBattleTextBuff2
ldr r0, _0813F934
ldr r0, [r0, #0x10]
bl TryGetStatusString
ldr r1, _0813F938
movs r0, #0
movs r2, #1
bl sub_0807EBE0
ldr r0, _0813F93C
mov r2, r8
adds r1, r2, r7
lsls r1, r1, #3
adds r1, r1, r0
ldrh r0, [r1, #0x14]
adds r0, #1
b _0813FD8A
.align 2, 0
_0813F934: .4byte 0x085AB3DC
_0813F938: .4byte 0x02022AE0
_0813F93C: .4byte 0x03005B60
_0813F940:
movs r0, #0
bl IsTextPrinterActive
lsls r0, r0, #0x10
cmp r0, #0
beq _0813F94E
b _0813FD8C
_0813F94E:
bl IsSEPlaying
lsls r0, r0, #0x18
cmp r0, #0
beq _0813F95A
b _0813FD8C
_0813F95A:
ldr r0, _0813F97C
ldr r0, [r0, #0x14]
bl TryGetStatusString
ldr r1, _0813F980
movs r0, #0
movs r2, #1
bl sub_0807EBE0
ldr r0, _0813F984
mov r2, r8
adds r1, r2, r7
lsls r1, r1, #3
adds r1, r1, r0
ldrh r0, [r1, #0x14]
adds r0, #1
b _0813FD8A
.align 2, 0
_0813F97C: .4byte 0x085AB3DC
_0813F980: .4byte 0x02022AE0
_0813F984: .4byte 0x03005B60
_0813F988:
movs r0, #0
bl IsTextPrinterActive
lsls r0, r0, #0x10
cmp r0, #0
bne _0813F9C8
bl IsSEPlaying
lsls r0, r0, #0x18
cmp r0, #0
bne _0813F9C8
ldr r0, _0813FA20
ldr r0, [r0, #0x18]
bl TryGetStatusString
ldr r1, _0813FA24
movs r0, #0
movs r2, #1
bl sub_0807EBE0
ldr r0, _0813FA28
mov r2, r8
adds r1, r2, r7
lsls r1, r1, #3
adds r1, r1, r0
movs r0, #5
strh r0, [r1, #0x16]
movs r0, #9
strh r0, [r1, #0x18]
ldrh r0, [r1, #0x14]
adds r0, #1
strh r0, [r1, #0x14]
_0813F9C8:
movs r0, #0
bl IsTextPrinterActive
lsls r0, r0, #0x10
cmp r0, #0
beq _0813F9D6
b _0813FD8C
_0813F9D6:
bl IsSEPlaying
lsls r0, r0, #0x18
lsrs r4, r0, #0x18
cmp r4, #0
beq _0813F9E4
b _0813FD8C
_0813F9E4:
movs r0, #0
movs r1, #0xa8
movs r2, #0xe0
bl LoadUserWindowBorderGfx
ldr r0, _0813FA2C
movs r1, #0xa8
str r1, [sp]
movs r1, #0xe
str r1, [sp, #4]
str r4, [sp, #8]
movs r1, #1
movs r2, #2
movs r3, #2
bl sub_08198C08
ldr r3, _0813FA30
strb r4, [r3, #1]
ldr r0, _0813FA28
mov r2, r8
adds r1, r2, r7
lsls r1, r1, #3
adds r1, r1, r0
ldrh r0, [r1, #0x14]
adds r0, #1
movs r2, #0
strh r0, [r1, #0x14]
strb r2, [r3, #1]
b _0813FD8C
.align 2, 0
_0813FA20: .4byte 0x085AB3DC
_0813FA24: .4byte 0x02022AE0
_0813FA28: .4byte 0x03005B60
_0813FA2C: .4byte 0x0830D28C
_0813FA30: .4byte 0x02023FD6
_0813FA34:
bl Menu_ProcessInputNoWrapClearOnChoose
lsls r0, r0, #0x18
asrs r6, r0, #0x18
cmp r6, #0
beq _0813FA54
cmp r6, #0
bgt _0813FA4E
movs r0, #1
rsbs r0, r0, #0
cmp r6, r0
beq _0813FAAC
b _0813FD8C
_0813FA4E:
cmp r6, #1
beq _0813FAAC
b _0813FD8C
_0813FA54:
ldr r0, _0813FA9C
strb r6, [r0, #1]
ldr r0, _0813FAA0
movs r1, #0x92
lsls r1, r1, #3
adds r0, r0, r1
ldr r0, [r0]
bl TryGetStatusString
ldr r1, _0813FAA4
movs r0, #0
movs r2, #1
bl sub_0807EBE0
ldr r1, _0813FAA8
mov r2, r8
adds r0, r2, r7
lsls r0, r0, #3
adds r0, r0, r1
ldrh r1, [r0, #0x16]
strh r1, [r0, #0x14]
lsls r1, r1, #0x10
asrs r1, r1, #0x10
cmp r1, #5
beq _0813FA88
b _0813FD8C
_0813FA88:
movs r0, #1
rsbs r0, r0, #0
str r6, [sp]
movs r1, #0
_0813FA90:
movs r2, #0
movs r3, #0x10
bl BeginNormalPaletteFade
b _0813FD8C
.align 2, 0
_0813FA9C: .4byte 0x02023FD6
_0813FAA0: .4byte 0x085AB3DC
_0813FAA4: .4byte 0x02022AE0
_0813FAA8: .4byte 0x03005B60
_0813FAAC:
ldr r1, _0813FADC
movs r0, #1
strb r0, [r1, #1]
ldr r0, _0813FAE0
movs r1, #0x92
lsls r1, r1, #3
adds r0, r0, r1
ldr r0, [r0]
bl TryGetStatusString
ldr r1, _0813FAE4
movs r0, #0
movs r2, #1
bl sub_0807EBE0
ldr r1, _0813FAE8
mov r2, r8
adds r0, r2, r7
lsls r0, r0, #3
adds r0, r0, r1
ldrh r1, [r0, #0x18]
strh r1, [r0, #0x14]
b _0813FD8C
.align 2, 0
_0813FADC: .4byte 0x02023FD6
_0813FAE0: .4byte 0x085AB3DC
_0813FAE4: .4byte 0x02022AE0
_0813FAE8: .4byte 0x03005B60
_0813FAEC:
ldr r0, _0813FB54
ldrb r1, [r0, #7]
movs r0, #0x80
ands r0, r1
cmp r0, #0
beq _0813FAFA
b _0813FD8C
_0813FAFA:
ldr r0, _0813FB58
ldrb r0, [r0]
cmp r0, #0
beq _0813FB06
bl DestroyWirelessStatusIndicatorSprite
_0813FB06:
movs r0, #3
bl GetBgTilemapBuffer
bl Free
movs r0, #1
bl GetBgTilemapBuffer
bl Free
movs r0, #0
bl GetBgTilemapBuffer
bl Free
bl FreeAllWindowBuffers
ldr r0, _0813FB5C
ldr r1, _0813FB60
mov r2, r8
adds r5, r2, r7
lsls r5, r5, #3
adds r5, r5, r1
ldrb r1, [r5, #0x1c]
ldr r2, _0813FB64
ldrb r2, [r2]
subs r2, #1
lsls r2, r2, #0x18
lsrs r2, r2, #0x18
ldr r3, _0813FB68
ldr r4, _0813FB6C
ldrh r4, [r4]
str r4, [sp]
bl ShowSelectMovePokemonSummaryScreen
ldrh r0, [r5, #0x14]
adds r0, #1
strh r0, [r5, #0x14]
b _0813FD8C
.align 2, 0
_0813FB54: .4byte 0x02037C74
_0813FB58: .4byte 0x0300319C
_0813FB5C: .4byte 0x02024190
_0813FB60: .4byte 0x03005B60
_0813FB64: .4byte 0x0202418D
_0813FB68: .4byte 0x0813E075
_0813FB6C: .4byte 0x02024186
_0813FB70:
ldr r0, _0813FBA4
ldrb r1, [r0, #7]
movs r0, #0x80
ands r0, r1
cmp r0, #0
beq _0813FB7E
b _0813FD8C
_0813FB7E:
ldr r0, _0813FBA8
ldr r1, [r0, #4]
ldr r0, _0813FBAC
cmp r1, r0
beq _0813FB8A
b _0813FD8C
_0813FB8A:
bl sub_081C14C8
lsls r0, r0, #0x18
lsrs r6, r0, #0x18
cmp r6, #4
bne _0813FBB4
ldr r0, _0813FBB0
mov r2, r8
adds r1, r2, r7
lsls r1, r1, #3
adds r1, r1, r0
movs r0, #9
b _0813FD8A
.align 2, 0
_0813FBA4: .4byte 0x02037C74
_0813FBA8: .4byte 0x03002360
_0813FBAC: .4byte 0x0813E4C5
_0813FBB0: .4byte 0x03005B60
_0813FBB4:
adds r1, r6, #0
adds r1, #0xd
mov r0, sb
bl GetMonData
lsls r0, r0, #0x10
lsrs r4, r0, #0x10
adds r0, r4, #0
bl IsHMMove2
cmp r0, #0
beq _0813FC04
ldr r0, _0813FBF4
ldr r1, _0813FBF8
adds r0, r0, r1
ldr r0, [r0]
bl TryGetStatusString
ldr r1, _0813FBFC
movs r0, #0
movs r2, #1
bl sub_0807EBE0
ldr r1, _0813FC00
mov r2, r8
adds r0, r2, r7
lsls r0, r0, #3
adds r0, r0, r1
movs r1, #0xb
strh r1, [r0, #0x14]
b _0813FD8C
.align 2, 0
_0813FBF4: .4byte 0x085AB3DC
_0813FBF8: .4byte 0x000004CC
_0813FBFC: .4byte 0x02022AE0
_0813FC00: .4byte 0x03005B60
_0813FC04:
ldr r1, _0813FC58
movs r0, #0xfd
strb r0, [r1]
movs r0, #2
strb r0, [r1, #1]
strb r4, [r1, #2]
lsrs r0, r4, #8
strb r0, [r1, #3]
movs r0, #0xff
strb r0, [r1, #4]
lsls r4, r6, #0x18
lsrs r4, r4, #0x18
mov r0, sb
adds r1, r4, #0
bl RemoveMonPPBonus
ldr r0, _0813FC5C
ldrh r1, [r0]
mov r0, sb
adds r2, r4, #0
bl SetMonMoveSlot
ldr r0, _0813FC60
movs r1, #0xcf
lsls r1, r1, #2
adds r0, r0, r1
ldr r0, [r0]
bl TryGetStatusString
ldr r1, _0813FC64
movs r0, #0
movs r2, #1
bl sub_0807EBE0
ldr r0, _0813FC68
mov r2, r8
adds r1, r2, r7
lsls r1, r1, #3
adds r1, r1, r0
ldrh r0, [r1, #0x14]
adds r0, #1
b _0813FD8A
.align 2, 0
_0813FC58: .4byte 0x02022C1C
_0813FC5C: .4byte 0x02024186
_0813FC60: .4byte 0x085AB3DC
_0813FC64: .4byte 0x02022AE0
_0813FC68: .4byte 0x03005B60
_0813FC6C:
movs r0, #0
bl IsTextPrinterActive
lsls r0, r0, #0x10
cmp r0, #0
beq _0813FC7A
b _0813FD8C
_0813FC7A:
bl IsSEPlaying
lsls r0, r0, #0x18
cmp r0, #0
beq _0813FC86
b _0813FD8C
_0813FC86:
ldr r0, _0813FCA8
ldr r0, [r0, #0x1c]
bl TryGetStatusString
ldr r1, _0813FCAC
movs r0, #0
movs r2, #1
bl sub_0807EBE0
ldr r0, _0813FCB0
mov r2, r8
adds r1, r2, r7
lsls r1, r1, #3
adds r1, r1, r0
ldrh r0, [r1, #0x14]
adds r0, #1
b _0813FD8A
.align 2, 0
_0813FCA8: .4byte 0x085AB3DC
_0813FCAC: .4byte 0x02022AE0
_0813FCB0: .4byte 0x03005B60
_0813FCB4:
movs r0, #0
bl IsTextPrinterActive
lsls r0, r0, #0x10
cmp r0, #0
bne _0813FD8C
bl IsSEPlaying
lsls r0, r0, #0x18
cmp r0, #0
bne _0813FD8C
ldr r0, _0813FCF4
movs r1, #0xd0
lsls r1, r1, #2
adds r0, r0, r1
ldr r0, [r0]
bl TryGetStatusString
ldr r1, _0813FCF8
movs r0, #0
movs r2, #1
bl sub_0807EBE0
ldr r1, _0813FCFC
mov r2, r8
adds r0, r2, r7
lsls r0, r0, #3
adds r0, r0, r1
movs r1, #0x12
strh r1, [r0, #8]
b _0813FD8C
.align 2, 0
_0813FCF4: .4byte 0x085AB3DC
_0813FCF8: .4byte 0x02022AE0
_0813FCFC: .4byte 0x03005B60
_0813FD00:
ldr r0, _0813FD2C
ldr r0, [r0, #0x20]
bl TryGetStatusString
ldr r1, _0813FD30
movs r0, #0
movs r2, #1
bl sub_0807EBE0
ldr r1, _0813FD34
mov r2, r8
adds r0, r2, r7
lsls r0, r0, #3
adds r0, r0, r1
movs r2, #0
movs r1, #0xa
strh r1, [r0, #0x16]
strh r2, [r0, #0x18]
movs r1, #3
strh r1, [r0, #0x14]
b _0813FD8C
.align 2, 0
_0813FD2C: .4byte 0x085AB3DC
_0813FD30: .4byte 0x02022AE0
_0813FD34: .4byte 0x03005B60
_0813FD38:
ldr r0, _0813FD5C
ldr r0, [r0, #0x24]
bl TryGetStatusString
ldr r1, _0813FD60
movs r0, #0
movs r2, #1
bl sub_0807EBE0
ldr r1, _0813FD64
mov r2, r8
adds r0, r2, r7
lsls r0, r0, #3
adds r0, r0, r1
_0813FD54:
movs r1, #0xd
strh r1, [r0, #8]
b _0813FD8C
.align 2, 0
_0813FD5C: .4byte 0x085AB3DC
_0813FD60: .4byte 0x02022AE0
_0813FD64: .4byte 0x03005B60
_0813FD68:
movs r0, #0
bl IsTextPrinterActive
lsls r0, r0, #0x10
cmp r0, #0
bne _0813FD8C
bl IsSEPlaying
lsls r0, r0, #0x18
cmp r0, #0
bne _0813FD8C
ldr r0, _0813FD9C
mov r2, r8
adds r1, r2, r7
lsls r1, r1, #3
adds r1, r1, r0
movs r0, #5
_0813FD8A:
strh r0, [r1, #0x14]
_0813FD8C:
add sp, #0x20
pop {r3, r4}
mov r8, r3
mov sb, r4
pop {r4, r5, r6, r7}
pop {r0}
bx r0
.align 2, 0
_0813FD9C: .4byte 0x03005B60
thumb_func_end Task_TradeEvolutionScene
thumb_func_start EvoDummyFunc
EvoDummyFunc: @ 0x0813FDA0
bx lr
.align 2, 0
thumb_func_end EvoDummyFunc
thumb_func_start VBlankCB_EvolutionScene
VBlankCB_EvolutionScene: @ 0x0813FDA4
push {lr}
ldr r0, _0813FE0C
ldrh r1, [r0]
movs r0, #0x10
bl SetGpuReg
ldr r0, _0813FE10
ldrh r1, [r0]
movs r0, #0x12
bl SetGpuReg
ldr r0, _0813FE14
ldrh r1, [r0]
movs r0, #0x14
bl SetGpuReg
ldr r0, _0813FE18
ldrh r1, [r0]
movs r0, #0x16
bl SetGpuReg
ldr r0, _0813FE1C
ldrh r1, [r0]
movs r0, #0x18
bl SetGpuReg
ldr r0, _0813FE20
ldrh r1, [r0]
movs r0, #0x1a
bl SetGpuReg
ldr r0, _0813FE24
ldrh r1, [r0]
movs r0, #0x1c
bl SetGpuReg
ldr r0, _0813FE28
ldrh r1, [r0]
movs r0, #0x1e
bl SetGpuReg
bl LoadOam
bl ProcessSpriteCopyRequests
bl TransferPlttBuffer
bl ScanlineEffect_InitHBlankDmaTransfer
pop {r0}
bx r0
.align 2, 0
_0813FE0C: .4byte 0x02022AC8
_0813FE10: .4byte 0x02022ACA
_0813FE14: .4byte 0x02022ACC
_0813FE18: .4byte 0x02022ACE
_0813FE1C: .4byte 0x02022AD0
_0813FE20: .4byte 0x02022AD2
_0813FE24: .4byte 0x02022AD4
_0813FE28: .4byte 0x02022AD6
thumb_func_end VBlankCB_EvolutionScene
thumb_func_start VBlankCB_TradeEvolutionScene
VBlankCB_TradeEvolutionScene: @ 0x0813FE2C
push {lr}
ldr r0, _0813FE94
ldrh r1, [r0]
movs r0, #0x10
bl SetGpuReg
ldr r0, _0813FE98
ldrh r1, [r0]
movs r0, #0x12
bl SetGpuReg
ldr r0, _0813FE9C
ldrh r1, [r0]
movs r0, #0x14
bl SetGpuReg
ldr r0, _0813FEA0
ldrh r1, [r0]
movs r0, #0x16
bl SetGpuReg
ldr r0, _0813FEA4
ldrh r1, [r0]
movs r0, #0x18
bl SetGpuReg
ldr r0, _0813FEA8
ldrh r1, [r0]
movs r0, #0x1a
bl SetGpuReg
ldr r0, _0813FEAC
ldrh r1, [r0]
movs r0, #0x1c
bl SetGpuReg
ldr r0, _0813FEB0
ldrh r1, [r0]
movs r0, #0x1e
bl SetGpuReg
bl LoadOam
bl ProcessSpriteCopyRequests
bl TransferPlttBuffer
bl ScanlineEffect_InitHBlankDmaTransfer
pop {r0}
bx r0
.align 2, 0
_0813FE94: .4byte 0x02022AC8
_0813FE98: .4byte 0x02022ACA
_0813FE9C: .4byte 0x02022ACC
_0813FEA0: .4byte 0x02022ACE
_0813FEA4: .4byte 0x02022AD0
_0813FEA8: .4byte 0x02022AD2
_0813FEAC: .4byte 0x02022AD4
_0813FEB0: .4byte 0x02022AD6
thumb_func_end VBlankCB_TradeEvolutionScene
thumb_func_start sub_0813FEB4
sub_0813FEB4: @ 0x0813FEB4
push {r4, r5, r6, lr}
lsls r0, r0, #0x18
lsrs r6, r0, #0x18
lsls r0, r6, #2
adds r0, r0, r6
lsls r0, r0, #3
ldr r1, _0813FF34
adds r4, r0, r1
movs r0, #0xc
ldrsh r5, [r4, r0]
cmp r5, #0
bne _0813FF62
ldrh r0, [r4, #0xa]
adds r1, r0, #1
strh r1, [r4, #0xa]
lsls r0, r0, #0x10
asrs r0, r0, #0x10
cmp r0, #0x13
ble _0813FF62
ldrh r1, [r4]
adds r0, r1, #1
strh r0, [r4]
lsls r1, r1, #0x10
asrs r1, r1, #0x10
ldr r3, _0813FF38
movs r2, #4
ldrsh r0, [r4, r2]
lsls r2, r0, #2
adds r0, r3, #3
adds r0, r2, r0
ldrb r0, [r0]
cmp r1, r0
ble _0813FF54
adds r0, r3, #1
adds r0, r2, r0
ldrb r0, [r0]
movs r2, #2
ldrsh r1, [r4, r2]
cmp r0, r1
bne _0813FF3C
ldrh r0, [r4, #6]
adds r0, #1
strh r0, [r4, #6]
movs r0, #6
ldrsh r2, [r4, r0]
movs r1, #4
ldrsh r0, [r4, r1]
lsls r0, r0, #2
adds r1, r3, #2
adds r0, r0, r1
ldrb r0, [r0]
cmp r2, r0
bne _0813FF26
strh r5, [r4, #6]
ldrh r0, [r4, #4]
adds r0, #1
strh r0, [r4, #4]
_0813FF26:
movs r2, #4
ldrsh r0, [r4, r2]
lsls r0, r0, #2
adds r0, r0, r3
ldrb r0, [r0]
b _0813FF52
.align 2, 0
_0813FF34: .4byte 0x03005B68
_0813FF38: .4byte 0x08595475
_0813FF3C:
ldr r0, _0813FF68
lsls r1, r1, #5
ldr r0, [r0]
adds r0, r0, r1
movs r1, #0xa0
movs r2, #0x20
bl LoadPalette
strh r5, [r4]
ldrh r0, [r4, #2]
adds r0, #1
_0813FF52:
strh r0, [r4, #2]
_0813FF54:
movs r1, #4
ldrsh r0, [r4, r1]
cmp r0, #4
bne _0813FF62
adds r0, r6, #0
bl DestroyTask
_0813FF62:
pop {r4, r5, r6}
pop {r0}
bx r0
.align 2, 0
_0813FF68: .4byte 0x0203A850
thumb_func_end sub_0813FEB4
thumb_func_start sub_0813FF6C
sub_0813FF6C: @ 0x0813FF6C
push {r4, lr}
lsls r0, r0, #0x18
lsrs r4, r0, #0x18
ldr r0, _0813FF90
movs r1, #7
bl CreateTask
lsls r0, r0, #0x18
lsrs r2, r0, #0x18
cmp r4, #0
bne _0813FF98
ldr r1, _0813FF94
lsls r0, r2, #2
adds r0, r0, r2
lsls r0, r0, #3
adds r0, r0, r1
strh r4, [r0, #0xc]
b _0813FFA6
.align 2, 0
_0813FF90: .4byte 0x0813FFB1
_0813FF94: .4byte 0x03005B60
_0813FF98:
ldr r0, _0813FFAC
lsls r1, r2, #2
adds r1, r1, r2
lsls r1, r1, #3
adds r1, r1, r0
movs r0, #1
strh r0, [r1, #0xc]
_0813FFA6:
pop {r4}
pop {r0}
bx r0
.align 2, 0
_0813FFAC: .4byte 0x03005B60
thumb_func_end sub_0813FF6C
thumb_func_start sub_0813FFB0
sub_0813FFB0: @ 0x0813FFB0
push {r4, r5, r6, r7, lr}
mov r7, sb
mov r6, r8
push {r6, r7}
lsls r0, r0, #0x18
lsrs r5, r0, #0x18
ldr r0, _0813FFDC
mov r8, r0
ldr r1, _0813FFE0
mov sb, r1
ldr r1, _0813FFE4
lsls r0, r5, #2
adds r0, r0, r5
lsls r0, r0, #3
adds r0, r0, r1
movs r2, #0xc
ldrsh r0, [r0, r2]
cmp r0, #0
bne _0813FFF0
ldr r7, _0813FFE8
ldr r6, _0813FFEC
b _0813FFF4
.align 2, 0
_0813FFDC: .4byte 0x02022ACC
_0813FFE0: .4byte 0x02022ACE
_0813FFE4: .4byte 0x03005B60
_0813FFE8: .4byte 0x02022AD0
_0813FFEC: .4byte 0x02022AD2
_0813FFF0:
ldr r7, _0814007C
ldr r6, _08140080
_0813FFF4:
lsls r4, r5, #2
adds r4, r4, r5
lsls r4, r4, #3
adds r4, r4, r1
ldrh r0, [r4, #8]
adds r0, #5
movs r1, #0xff
ands r0, r1
strh r0, [r4, #8]
adds r0, #0x80
ands r0, r1
strh r0, [r4, #0xa]
movs r1, #8
ldrsh r0, [r4, r1]
movs r1, #4
bl Cos
adds r0, #8
mov r2, r8
strh r0, [r2]
movs r1, #8
ldrsh r0, [r4, r1]
movs r1, #4
bl Sin
adds r0, #0x10
mov r2, sb
strh r0, [r2]
movs r1, #0xa
ldrsh r0, [r4, r1]
movs r1, #4
bl Cos
adds r0, #8
strh r0, [r7]
movs r2, #0xa
ldrsh r0, [r4, r2]
movs r1, #4
bl Sin
adds r0, #0x10
strh r0, [r6]
ldr r0, _08140084
bl FuncIsActiveTask
lsls r0, r0, #0x18
lsrs r4, r0, #0x18
cmp r4, #0
bne _0814006E
adds r0, r5, #0
bl DestroyTask
mov r0, r8
strh r4, [r0]
mov r1, sb
strh r4, [r1]
movs r2, #0x80
lsls r2, r2, #1
adds r0, r2, #0
strh r0, [r7]
strh r4, [r6]
_0814006E:
pop {r3, r4}
mov r8, r3
mov sb, r4
pop {r4, r5, r6, r7}
pop {r0}
bx r0
.align 2, 0
_0814007C: .4byte 0x02022AD4
_08140080: .4byte 0x02022AD6
_08140084: .4byte 0x0813FEB5
thumb_func_end sub_0813FFB0
thumb_func_start InitMovingBgValues
InitMovingBgValues: @ 0x08140088
push {r4, r5, r6, r7, lr}
adds r6, r0, #0
movs r1, #0
ldr r5, _081400C0
ldr r7, _081400C4
_08140092:
lsls r0, r1, #4
adds r4, r1, #1
adds r2, r0, r7
lsls r0, r1, #5
adds r1, r0, r6
movs r3, #0xf
_0814009E:
ldrb r0, [r2]
lsls r0, r0, #1
adds r0, r0, r5
ldrh r0, [r0]
strh r0, [r1]
adds r2, #1
adds r1, #2
subs r3, #1
cmp r3, #0
bge _0814009E
adds r1, r4, #0
cmp r1, #0x31
ble _08140092
pop {r4, r5, r6, r7}
pop {r0}
bx r0
.align 2, 0
_081400C0: .4byte 0x085953F0
_081400C4: .4byte 0x08595485
thumb_func_end InitMovingBgValues
thumb_func_start InitMovingBackgroundTask
InitMovingBackgroundTask: @ 0x081400C8
push {r4, r5, r6, lr}
sub sp, #4
lsls r0, r0, #0x18
lsrs r5, r0, #0x18
ldr r4, _081400EC
movs r0, #0xc8
lsls r0, r0, #3
bl AllocZeroed
str r0, [r4]
bl InitMovingBgValues
cmp r5, #0
bne _081400F0
movs r6, #1
movs r4, #2
b _081400F4
.align 2, 0
_081400EC: .4byte 0x0203A850
_081400F0:
movs r6, #1
movs r4, #3
_081400F4:
ldr r0, _08140174
movs r1, #0xa0
movs r2, #0x20
bl LoadPalette
ldr r1, _08140178
movs r0, #0
str r0, [sp]
movs r0, #1
movs r2, #0
movs r3, #0
bl DecompressAndLoadBgGfxUsingHeap
ldr r1, _0814017C
movs r0, #1
movs r2, #0
movs r3, #0
bl CopyToBgTilemapBuffer
ldr r1, _08140180
adds r0, r4, #0
movs r2, #0
movs r3, #0
bl CopyToBgTilemapBuffer
movs r0, #1
bl CopyBgTilemapBufferToVram
adds r0, r4, #0
bl CopyBgTilemapBufferToVram
cmp r5, #0
bne _0814018C
ldr r1, _08140184
movs r0, #0x50
bl SetGpuReg
ldr r1, _08140188
movs r0, #0x52
bl SetGpuReg
movs r1, #0xba
lsls r1, r1, #5
movs r0, #0
bl SetGpuReg
adds r0, r6, #0
movs r1, #7
movs r2, #2
bl SetBgAttribute
adds r0, r4, #0
movs r1, #7
movs r2, #2
bl SetBgAttribute
movs r0, #1
bl ShowBg
movs r0, #2
bl ShowBg
b _081401A6
.align 2, 0
_08140174: .4byte 0x08594D50
_08140178: .4byte 0x08593CA0
_0814017C: .4byte 0x08594398
_08140180: .4byte 0x0859487C
_08140184: .4byte 0x00000442
_08140188: .4byte 0x00000808
_0814018C:
ldr r1, _081401BC
movs r0, #0x50
bl SetGpuReg
ldr r1, _081401C0
movs r0, #0x52
bl SetGpuReg
movs r1, #0xda
lsls r1, r1, #5
movs r0, #0
bl SetGpuReg
_081401A6:
ldr r0, _081401C4
movs r1, #5
bl CreateTask
adds r0, r5, #0
bl sub_0813FF6C
add sp, #4
pop {r4, r5, r6}
pop {r0}
bx r0
.align 2, 0
_081401BC: .4byte 0x00000842
_081401C0: .4byte 0x00000808
_081401C4: .4byte 0x0813FEB5
thumb_func_end InitMovingBackgroundTask
thumb_func_start sub_081401C8
sub_081401C8: @ 0x081401C8
push {lr}
ldr r0, _081401F4
bl FindTaskIdByFunc
lsls r0, r0, #0x18
lsrs r2, r0, #0x18
cmp r2, #0xff
beq _081401E6
ldr r0, _081401F8
lsls r1, r2, #2
adds r1, r1, r2
lsls r1, r1, #3
adds r1, r1, r0
movs r0, #1
strh r0, [r1, #0x14]
_081401E6:
movs r0, #0
movs r1, #0xa0
movs r2, #0x20
bl FillPalette
pop {r0}
bx r0
.align 2, 0
_081401F4: .4byte 0x0813FEB5
_081401F8: .4byte 0x03005B60
thumb_func_end sub_081401C8
thumb_func_start sub_081401FC
sub_081401FC: @ 0x081401FC
push {lr}
ldr r0, _08140234
bl FindTaskIdByFunc
lsls r0, r0, #0x18
lsrs r0, r0, #0x18
cmp r0, #0xff
beq _08140210
bl DestroyTask
_08140210:
ldr r0, _08140238
bl FindTaskIdByFunc
lsls r0, r0, #0x18
lsrs r0, r0, #0x18
cmp r0, #0xff
beq _08140222
bl DestroyTask
_08140222:
movs r0, #0
movs r1, #0xa0
movs r2, #0x20
bl FillPalette
bl sub_0814023C
pop {r0}
bx r0
.align 2, 0
_08140234: .4byte 0x0813FEB5
_08140238: .4byte 0x0813FFB1
thumb_func_end sub_081401FC
thumb_func_start sub_0814023C
sub_0814023C: @ 0x0814023C
push {lr}
movs r0, #0x50
movs r1, #0
bl SetGpuReg
ldr r0, _08140298
movs r1, #0
strh r1, [r0]
ldr r0, _0814029C
strh r1, [r0]
ldr r0, _081402A0
strh r1, [r0]
movs r0, #1
movs r1, #5
bl sub_08038E94
adds r2, r0, #0
lsls r2, r2, #0x18
lsrs r2, r2, #0x18
movs r0, #1
movs r1, #7
bl SetBgAttribute
movs r0, #2
movs r1, #5
bl sub_08038E94
adds r2, r0, #0
lsls r2, r2, #0x18
lsrs r2, r2, #0x18
movs r0, #2
movs r1, #7
bl SetBgAttribute
movs r1, #0xca
lsls r1, r1, #5
movs r0, #0
bl SetGpuReg
ldr r0, _081402A4
ldr r0, [r0]
bl Free
pop {r0}
bx r0
.align 2, 0
_08140298: .4byte 0x02022ACC
_0814029C: .4byte 0x02022ACE
_081402A0: .4byte 0x02022AD0
_081402A4: .4byte 0x0203A850
thumb_func_end sub_0814023C
thumb_func_start EvoScene_DoMonAnimation
EvoScene_DoMonAnimation: @ 0x081402A8
push {lr}
adds r2, r0, #0
lsls r2, r2, #0x18
lsrs r2, r2, #0x18
lsls r1, r1, #0x10
lsrs r1, r1, #0x10
lsls r0, r2, #4
adds r0, r0, r2
lsls r0, r0, #2
ldr r2, _081402CC
adds r0, r0, r2
movs r2, #0
movs r3, #0
bl DoMonFrontSpriteAnimation
pop {r0}
bx r0
.align 2, 0
_081402CC: .4byte 0x020205AC
thumb_func_end EvoScene_DoMonAnimation
thumb_func_start EvoScene_IsMonAnimFinished
EvoScene_IsMonAnimFinished: @ 0x081402D0
push {lr}
lsls r0, r0, #0x18
lsrs r0, r0, #0x18
ldr r2, _081402F0
lsls r1, r0, #4
adds r1, r1, r0
lsls r1, r1, #2
adds r2, #0x1c
adds r1, r1, r2
ldr r1, [r1]
ldr r0, _081402F4
cmp r1, r0
beq _081402F8
movs r0, #0
b _081402FA
.align 2, 0
_081402F0: .4byte 0x020205AC
_081402F4: .4byte 0x08007141
_081402F8:
movs r0, #1
_081402FA:
pop {r1}
bx r1
.align 2, 0
thumb_func_end EvoScene_IsMonAnimFinished