pokeruby/asm/evolution_scene.s
2016-10-30 18:00:20 -07:00

6718 lines
119 KiB
ArmAsm

.include "constants/gba_constants.inc"
.include "constants/species_constants.inc"
.include "asm/macros.inc"
.syntax unified
.text
thumb_func_start CB2_BeginEvolutionScene
CB2_BeginEvolutionScene: @ 8111894
push {lr}
bl UpdatePaletteFade
bl RunTasks
pop {r0}
bx r0
thumb_func_end CB2_BeginEvolutionScene
thumb_func_start Task_BeginEvolutionScene
Task_BeginEvolutionScene: @ 81118A4
push {r4-r7,lr}
sub sp, 0x4
lsls r0, 24
lsrs r2, r0, 24
movs r7, 0
ldr r1, _081118C8 @ =gTasks
lsls r0, r2, 2
adds r0, r2
lsls r0, 3
adds r4, r0, r1
movs r1, 0x8
ldrsh r0, [r4, r1]
cmp r0, 0
beq _081118CC
cmp r0, 0x1
beq _081118E4
b _08111918
.align 2, 0
_081118C8: .4byte gTasks
_081118CC:
movs r0, 0x1
negs r0, r0
str r7, [sp]
movs r1, 0
movs r2, 0
movs r3, 0x10
bl BeginNormalPaletteFade
ldrh r0, [r4, 0x8]
adds r0, 0x1
strh r0, [r4, 0x8]
b _08111918
_081118E4:
ldr r0, _08111920 @ =gPaletteFade
ldrb r1, [r0, 0x7]
movs r0, 0x80
ands r0, r1
cmp r0, 0
bne _08111918
movs r0, 0xA
ldrsh r7, [r4, r0]
movs r1, 0xC
ldrsh r0, [r4, r1]
lsls r0, 16
orrs r7, r0
ldrh r5, [r4, 0x10]
ldrb r6, [r4, 0x12]
ldrh r4, [r4, 0x20]
lsls r4, 24
lsrs r4, 24
adds r0, r2, 0
bl DestroyTask
adds r0, r7, 0
adds r1, r5, 0
adds r2, r6, 0
adds r3, r4, 0
bl EvolutionScene
_08111918:
add sp, 0x4
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
_08111920: .4byte gPaletteFade
thumb_func_end Task_BeginEvolutionScene
thumb_func_start BeginEvolutionScene
BeginEvolutionScene: @ 8111924
push {r4-r6,lr}
mov r6, r8
push {r6}
mov r8, r0
adds r4, r1, 0
adds r5, r2, 0
adds r6, r3, 0
lsls r4, 16
lsrs r4, 16
lsls r5, 24
lsrs r5, 24
lsls r6, 24
lsrs r6, 24
ldr r0, _08111978 @ =Task_BeginEvolutionScene
movs r1, 0
bl CreateTask
lsls r0, 24
lsrs r0, 24
ldr r2, _0811197C @ =gTasks
lsls r1, r0, 2
adds r1, r0
lsls r1, 3
adds r1, r2
movs r0, 0
strh r0, [r1, 0x8]
mov r0, r8
strh r0, [r1, 0xA]
mov r0, r8
lsrs r0, 16
strh r0, [r1, 0xC]
strh r4, [r1, 0x10]
strh r5, [r1, 0x12]
strh r6, [r1, 0x20]
ldr r0, _08111980 @ =CB2_BeginEvolutionScene
bl SetMainCallback2
pop {r3}
mov r8, r3
pop {r4-r6}
pop {r0}
bx r0
.align 2, 0
_08111978: .4byte Task_BeginEvolutionScene
_0811197C: .4byte gTasks
_08111980: .4byte CB2_BeginEvolutionScene
thumb_func_end BeginEvolutionScene
thumb_func_start EvolutionScene
EvolutionScene: @ 8111984
push {r4-r7,lr}
mov r7, r10
mov r6, r9
mov r5, r8
push {r5-r7}
sub sp, 0x38
str r0, [sp, 0x20]
mov r10, r1
mov r0, r10
lsls r0, 16
lsrs r0, 16
mov r10, r0
lsls r2, 24
lsrs r2, 24
str r2, [sp, 0x24]
lsls r3, 24
lsrs r3, 24
str r3, [sp, 0x28]
movs r0, 0
bl SetHBlankCallback
movs r0, 0
bl SetVBlankCallback
movs r5, 0
str r5, [sp, 0x1C]
add r0, sp, 0x1C
movs r1, 0xC0
lsls r1, 19
ldr r2, _08111C10 @ =0x05006000
bl CpuSet
ldr r0, _08111C14 @ =REG_MOSAIC
strh r5, [r0]
subs r0, 0xC
strh r5, [r0]
adds r0, 0x4
strh r5, [r0]
subs r0, 0x2
strh r5, [r0]
adds r0, 0x4
strh r5, [r0]
adds r0, 0x2
strh r5, [r0]
adds r0, 0x2
strh r5, [r0]
ldr r4, _08111C18 @ =gWindowConfig_81E6C58
adds r0, r4, 0
bl SetUpWindowConfig
bl ResetPaletteFade
ldr r0, _08111C1C @ =gUnknown_030042A4
strh r5, [r0]
ldr r0, _08111C20 @ =gUnknown_030042A0
strh r5, [r0]
ldr r0, _08111C24 @ =gUnknown_030042C0
strh r5, [r0]
ldr r0, _08111C28 @ =gUnknown_030041B4
strh r5, [r0]
ldr r0, _08111C2C @ =gUnknown_03004288
strh r5, [r0]
ldr r0, _08111C30 @ =gUnknown_03004280
strh r5, [r0]
ldr r1, _08111C34 @ =gUnknown_030041B0
movs r2, 0x80
lsls r2, 1
adds r0, r2, 0
strh r0, [r1]
ldr r0, _08111C38 @ =gUnknown_030041B8
strh r5, [r0]
ldr r0, _08111C3C @ =gUnknown_03004210
adds r1, r4, 0
bl InitWindowFromConfig
ldr r1, _08111C40 @ =gUnknown_0300428C
movs r0, 0x9
strb r0, [r1]
bl sub_800D6D4
bl sub_800DAB8
bl ResetSpriteData
bl remove_some_task
bl ResetTasks
bl FreeAllSpritePalettes
ldr r0, _08111C44 @ =gReservedSpritePaletteCount
movs r3, 0x4
strb r3, [r0]
ldr r0, [sp, 0x20]
movs r1, 0x2
add r2, sp, 0x8
bl GetMonData
ldr r0, _08111C48 @ =gStringVar1
add r1, sp, 0x8
bl StringCopy10
ldr r0, _08111C4C @ =gStringVar2
movs r1, 0xB
mov r4, r10
muls r4, r1
adds r1, r4, 0
ldr r2, _08111C50 @ =gSpeciesNames
adds r1, r2
bl StringCopy
ldr r0, [sp, 0x20]
movs r1, 0xB
bl GetMonData
adds r6, r0, 0
lsls r6, 16
lsrs r6, 16
ldr r0, [sp, 0x20]
movs r1, 0x1
bl GetMonData
str r0, [sp, 0x2C]
ldr r0, [sp, 0x20]
movs r1, 0
bl GetMonData
str r0, [sp, 0x30]
lsls r0, r6, 3
ldr r1, _08111C54 @ =gMonFrontPicTable
adds r0, r1
lsls r2, r6, 2
ldr r3, _08111C58 @ =gMonFrontPicCoords
adds r2, r3
ldrb r1, [r2]
ldrb r2, [r2, 0x1]
ldr r4, _08111C5C @ =gUnknown_081FAF4C
ldr r3, [r4, 0x4]
str r3, [sp]
str r6, [sp, 0x4]
movs r3, 0x80
lsls r3, 18
bl DecompressPicFromTable_2
adds r0, r6, 0
ldr r1, [sp, 0x2C]
ldr r2, [sp, 0x30]
bl sub_80409C8
ldr r0, [r0]
movs r1, 0x88
lsls r1, 1
movs r2, 0x20
bl LoadCompressedPalette
adds r0, r6, 0
movs r1, 0x1
bl GetMonSpriteTemplate_803C56C
ldr r0, _08111C60 @ =gUnknown_02024E8C
mov r9, r0
ldr r1, _08111C64 @ =gDummySpriteAffineAnimTable
str r1, [r0, 0x10]
movs r1, 0x78
movs r2, 0x40
movs r3, 0x1E
bl CreateSprite
lsls r1, r0, 24
lsrs r2, r1, 24
ldr r3, _08111C68 @ =0x02014800
strb r0, [r3]
ldr r7, _08111C6C @ =gSprites
lsls r1, r2, 4
adds r1, r2
lsls r1, 2
movs r4, 0x1C
adds r4, r7
mov r8, r4
adds r0, r1, r4
ldr r2, _08111C70 @ =nullsub_37
str r2, [r0]
adds r1, r7
ldrb r2, [r1, 0x5]
movs r4, 0xF
adds r0, r4, 0
ands r0, r2
movs r2, 0x10
orrs r0, r2
strb r0, [r1, 0x5]
adds r1, 0x3E
ldrb r0, [r1]
movs r3, 0x4
orrs r0, r3
strb r0, [r1]
mov r1, r10
lsls r0, r1, 3
ldr r2, _08111C54 @ =gMonFrontPicTable
adds r0, r2
lsls r2, r1, 2
ldr r3, _08111C58 @ =gMonFrontPicCoords
adds r2, r3
ldrb r1, [r2]
ldrb r2, [r2, 0x1]
str r2, [sp, 0x34]
ldr r2, _08111C5C @ =gUnknown_081FAF4C
ldr r2, [r2, 0xC]
str r2, [sp]
mov r3, r10
str r3, [sp, 0x4]
ldr r2, [sp, 0x34]
movs r3, 0x80
lsls r3, 18
bl DecompressPicFromTable_2
mov r0, r10
ldr r1, [sp, 0x2C]
ldr r2, [sp, 0x30]
bl sub_80409C8
ldr r0, [r0]
movs r1, 0x90
lsls r1, 1
movs r2, 0x20
bl LoadCompressedPalette
mov r0, r10
movs r1, 0x3
bl GetMonSpriteTemplate_803C56C
ldr r0, _08111C64 @ =gDummySpriteAffineAnimTable
mov r1, r9
str r0, [r1, 0x10]
mov r0, r9
movs r1, 0x78
movs r2, 0x40
movs r3, 0x1E
bl CreateSprite
lsls r1, r0, 24
lsrs r2, r1, 24
ldr r3, _08111C68 @ =0x02014800
strb r0, [r3, 0x1]
lsls r1, r2, 4
adds r1, r2
lsls r1, 2
add r8, r1
ldr r0, _08111C70 @ =nullsub_37
mov r2, r8
str r0, [r2]
adds r1, r7
ldrb r0, [r1, 0x5]
ands r4, r0
movs r0, 0x20
orrs r4, r0
strb r4, [r1, 0x5]
adds r1, 0x3E
ldrb r0, [r1]
movs r3, 0x4
orrs r0, r3
strb r0, [r1]
bl sub_8149954
ldr r0, _08111C74 @ =Task_EvolutionScene
movs r1, 0
bl CreateTask
lsls r1, r0, 24
lsrs r2, r1, 24
ldr r4, _08111C68 @ =0x02014800
strb r0, [r4, 0x2]
ldr r1, _08111C78 @ =gTasks
lsls r0, r2, 2
adds r0, r2
lsls r0, 3
adds r0, r1
strh r5, [r0, 0x8]
strh r6, [r0, 0xE]
mov r1, r10
strh r1, [r0, 0x10]
mov r2, sp
ldrh r2, [r2, 0x20]
strh r2, [r0, 0xA]
ldr r3, [sp, 0x20]
lsrs r1, r3, 16
strh r1, [r0, 0xC]
mov r4, sp
ldrh r4, [r4, 0x24]
strh r4, [r0, 0x12]
movs r1, 0x1
strh r1, [r0, 0x14]
strh r5, [r0, 0x1E]
mov r1, sp
ldrh r1, [r1, 0x28]
strh r1, [r0, 0x20]
ldr r0, _08111C7C @ =0x02009000
ldr r1, _08111C80 @ =gPlttBufferUnfaded + 0x40
movs r2, 0x60
bl memcpy
movs r1, 0x80
lsls r1, 19
movs r2, 0xFA
lsls r2, 5
adds r0, r2, 0
strh r0, [r1]
ldr r0, _08111C84 @ =HBlankCB_EvolutionScene
bl SetHBlankCallback
ldr r0, _08111C88 @ =VBlankCB_EvolutionScene
bl SetVBlankCallback
bl m4aMPlayAllStop
ldr r0, _08111C8C @ =CB2_EvolutionSceneUpdate_0
bl SetMainCallback2
add sp, 0x38
pop {r3-r5}
mov r8, r3
mov r9, r4
mov r10, r5
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
_08111C10: .4byte 0x05006000
_08111C14: .4byte REG_MOSAIC
_08111C18: .4byte gWindowConfig_81E6C58
_08111C1C: .4byte gUnknown_030042A4
_08111C20: .4byte gUnknown_030042A0
_08111C24: .4byte gUnknown_030042C0
_08111C28: .4byte gUnknown_030041B4
_08111C2C: .4byte gUnknown_03004288
_08111C30: .4byte gUnknown_03004280
_08111C34: .4byte gUnknown_030041B0
_08111C38: .4byte gUnknown_030041B8
_08111C3C: .4byte gUnknown_03004210
_08111C40: .4byte gUnknown_0300428C
_08111C44: .4byte gReservedSpritePaletteCount
_08111C48: .4byte gStringVar1
_08111C4C: .4byte gStringVar2
_08111C50: .4byte gSpeciesNames
_08111C54: .4byte gMonFrontPicTable
_08111C58: .4byte gMonFrontPicCoords
_08111C5C: .4byte gUnknown_081FAF4C
_08111C60: .4byte gUnknown_02024E8C
_08111C64: .4byte gDummySpriteAffineAnimTable
_08111C68: .4byte 0x02014800
_08111C6C: .4byte gSprites
_08111C70: .4byte nullsub_37
_08111C74: .4byte Task_EvolutionScene
_08111C78: .4byte gTasks
_08111C7C: .4byte 0x02009000
_08111C80: .4byte gPlttBufferUnfaded + 0x40
_08111C84: .4byte HBlankCB_EvolutionScene
_08111C88: .4byte VBlankCB_EvolutionScene
_08111C8C: .4byte CB2_EvolutionSceneUpdate_0
thumb_func_end EvolutionScene
thumb_func_start CB2_EvolutionSceneLoadGraphics
CB2_EvolutionSceneLoadGraphics: @ 8111C90
push {r4-r6,lr}
mov r6, r10
mov r5, r9
mov r4, r8
push {r4-r6}
sub sp, 0xC
ldr r2, _08111E14 @ =gTasks
ldr r0, _08111E18 @ =0x02014800
mov r9, r0
ldrb r1, [r0, 0x2]
lsls r0, r1, 2
adds r0, r1
lsls r0, 3
adds r0, r2
movs r1, 0x20
ldrsh r2, [r0, r1]
movs r1, 0x64
adds r4, r2, 0
muls r4, r1
ldr r1, _08111E1C @ =gPlayerParty
adds r4, r1
ldrh r6, [r0, 0x10]
adds r0, r4, 0
movs r1, 0x1
bl GetMonData
mov r10, r0
adds r0, r4, 0
movs r1, 0
bl GetMonData
mov r8, r0
movs r0, 0
bl SetHBlankCallback
movs r0, 0
bl SetVBlankCallback
movs r5, 0
str r5, [sp, 0x8]
movs r1, 0xC0
lsls r1, 19
ldr r2, _08111E20 @ =0x05006000
add r0, sp, 0x8
bl CpuSet
ldr r0, _08111E24 @ =REG_MOSAIC
strh r5, [r0]
subs r0, 0xC
strh r5, [r0]
adds r0, 0x4
strh r5, [r0]
subs r0, 0x2
strh r5, [r0]
adds r0, 0x4
strh r5, [r0]
adds r0, 0x2
strh r5, [r0]
adds r0, 0x2
strh r5, [r0]
ldr r4, _08111E28 @ =gWindowConfig_81E6C58
adds r0, r4, 0
bl SetUpWindowConfig
bl ResetPaletteFade
ldr r0, _08111E2C @ =gUnknown_030042A4
strh r5, [r0]
ldr r0, _08111E30 @ =gUnknown_030042A0
strh r5, [r0]
ldr r0, _08111E34 @ =gUnknown_030042C0
strh r5, [r0]
ldr r0, _08111E38 @ =gUnknown_030041B4
strh r5, [r0]
ldr r0, _08111E3C @ =gUnknown_03004288
strh r5, [r0]
ldr r0, _08111E40 @ =gUnknown_03004280
strh r5, [r0]
ldr r1, _08111E44 @ =gUnknown_030041B0
movs r2, 0x80
lsls r2, 1
adds r0, r2, 0
strh r0, [r1]
ldr r0, _08111E48 @ =gUnknown_030041B8
strh r5, [r0]
ldr r0, _08111E4C @ =gUnknown_03004210
adds r1, r4, 0
bl InitWindowFromConfig
ldr r1, _08111E50 @ =gUnknown_0300428C
movs r0, 0x9
strb r0, [r1]
bl sub_800D6D4
bl sub_800DAB8
bl ResetSpriteData
bl FreeAllSpritePalettes
ldr r1, _08111E54 @ =gReservedSpritePaletteCount
movs r0, 0x4
strb r0, [r1]
lsls r0, r6, 3
ldr r1, _08111E58 @ =gMonFrontPicTable
adds r0, r1
ldr r1, _08111E5C @ =gMonFrontPicCoords
lsls r2, r6, 2
adds r2, r1
ldrb r1, [r2]
ldrb r2, [r2, 0x1]
movs r3, 0x80
lsls r3, 18
ldr r4, _08111E60 @ =gUnknown_081FAF4C
ldr r4, [r4, 0xC]
str r4, [sp]
str r6, [sp, 0x4]
bl DecompressPicFromTable_2
adds r0, r6, 0
mov r1, r10
mov r2, r8
bl sub_80409C8
ldr r0, [r0]
movs r1, 0x90
lsls r1, 1
movs r2, 0x20
bl LoadCompressedPalette
adds r0, r6, 0
movs r1, 0x3
bl GetMonSpriteTemplate_803C56C
ldr r0, _08111E64 @ =gUnknown_02024E8C
ldr r1, _08111E68 @ =gDummySpriteAffineAnimTable
str r1, [r0, 0x10]
movs r1, 0x78
movs r2, 0x40
movs r3, 0x1E
bl CreateSprite
lsls r2, r0, 24
lsrs r2, 24
mov r1, r9
strb r0, [r1, 0x1]
ldr r3, _08111E6C @ =gSprites
lsls r1, r2, 4
adds r1, r2
lsls r1, 2
adds r0, r3, 0
adds r0, 0x1C
adds r0, r1, r0
ldr r2, _08111E70 @ =nullsub_37
str r2, [r0]
adds r1, r3
ldrb r2, [r1, 0x5]
movs r0, 0xF
ands r0, r2
movs r2, 0x20
orrs r0, r2
strb r0, [r1, 0x5]
movs r1, 0x80
lsls r1, 19
movs r2, 0xFA
lsls r2, 5
adds r0, r2, 0
strh r0, [r1]
ldr r0, _08111E74 @ =HBlankCB_EvolutionScene
bl SetHBlankCallback
ldr r0, _08111E78 @ =VBlankCB_EvolutionScene
bl SetVBlankCallback
ldr r0, _08111E7C @ =CB2_EvolutionSceneUpdate_0
bl SetMainCallback2
movs r0, 0x1
negs r0, r0
str r5, [sp]
movs r1, 0
movs r2, 0x10
movs r3, 0
bl BeginNormalPaletteFade
add sp, 0xC
pop {r3-r5}
mov r8, r3
mov r9, r4
mov r10, r5
pop {r4-r6}
pop {r0}
bx r0
.align 2, 0
_08111E14: .4byte gTasks
_08111E18: .4byte 0x02014800
_08111E1C: .4byte gPlayerParty
_08111E20: .4byte 0x05006000
_08111E24: .4byte REG_MOSAIC
_08111E28: .4byte gWindowConfig_81E6C58
_08111E2C: .4byte gUnknown_030042A4
_08111E30: .4byte gUnknown_030042A0
_08111E34: .4byte gUnknown_030042C0
_08111E38: .4byte gUnknown_030041B4
_08111E3C: .4byte gUnknown_03004288
_08111E40: .4byte gUnknown_03004280
_08111E44: .4byte gUnknown_030041B0
_08111E48: .4byte gUnknown_030041B8
_08111E4C: .4byte gUnknown_03004210
_08111E50: .4byte gUnknown_0300428C
_08111E54: .4byte gReservedSpritePaletteCount
_08111E58: .4byte gMonFrontPicTable
_08111E5C: .4byte gMonFrontPicCoords
_08111E60: .4byte gUnknown_081FAF4C
_08111E64: .4byte gUnknown_02024E8C
_08111E68: .4byte gDummySpriteAffineAnimTable
_08111E6C: .4byte gSprites
_08111E70: .4byte nullsub_37
_08111E74: .4byte HBlankCB_EvolutionScene
_08111E78: .4byte VBlankCB_EvolutionScene
_08111E7C: .4byte CB2_EvolutionSceneUpdate_0
thumb_func_end CB2_EvolutionSceneLoadGraphics
thumb_func_start CB2_TradeEvolutionSceneLoadGraphics
CB2_TradeEvolutionSceneLoadGraphics: @ 8111E80
push {r4-r7,lr}
sub sp, 0x8
ldr r2, _08111EB8 @ =gTasks
ldr r0, _08111EBC @ =0x02014800
ldrb r1, [r0, 0x2]
lsls r0, r1, 2
adds r0, r1
lsls r0, 3
adds r0, r2
movs r1, 0x20
ldrsh r2, [r0, r1]
movs r1, 0x64
muls r2, r1
ldr r1, _08111EC0 @ =gPlayerParty
adds r4, r2, r1
ldrh r7, [r0, 0x10]
ldr r0, _08111EC4 @ =gMain
ldr r2, _08111EC8 @ =0x0000043c
adds r0, r2
ldrb r0, [r0]
cmp r0, 0x6
bls _08111EAE
b _081120D6
_08111EAE:
lsls r0, 2
ldr r1, _08111ECC @ =_08111ED0
adds r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_08111EB8: .4byte gTasks
_08111EBC: .4byte 0x02014800
_08111EC0: .4byte gPlayerParty
_08111EC4: .4byte gMain
_08111EC8: .4byte 0x0000043c
_08111ECC: .4byte _08111ED0
.align 2, 0
_08111ED0:
.4byte _08111EEC
.4byte _08111F68
.4byte _08111F88
.4byte _08111FDC
.4byte _08111FE2
.4byte _08112048
.4byte _081120B4
_08111EEC:
movs r0, 0x80
lsls r0, 19
movs r4, 0
strh r4, [r0]
movs r0, 0
bl SetHBlankCallback
movs r0, 0
bl SetVBlankCallback
bl ResetSpriteData
bl FreeAllSpritePalettes
ldr r1, _08111F3C @ =gReservedSpritePaletteCount
movs r0, 0x4
strb r0, [r1]
ldr r0, _08111F40 @ =gUnknown_030042A4
strh r4, [r0]
ldr r0, _08111F44 @ =gUnknown_030042A0
strh r4, [r0]
ldr r0, _08111F48 @ =gUnknown_030042C0
strh r4, [r0]
ldr r0, _08111F4C @ =gUnknown_030041B4
strh r4, [r0]
ldr r0, _08111F50 @ =gUnknown_03004288
strh r4, [r0]
ldr r0, _08111F54 @ =gUnknown_03004280
strh r4, [r0]
ldr r1, _08111F58 @ =gUnknown_030041B0
movs r2, 0x80
lsls r2, 1
adds r0, r2, 0
strh r0, [r1]
ldr r0, _08111F5C @ =gUnknown_030041B8
strh r4, [r0]
ldr r1, _08111F60 @ =gMain
ldr r0, _08111F64 @ =0x0000043c
adds r1, r0
b _0811208E
.align 2, 0
_08111F3C: .4byte gReservedSpritePaletteCount
_08111F40: .4byte gUnknown_030042A4
_08111F44: .4byte gUnknown_030042A0
_08111F48: .4byte gUnknown_030042C0
_08111F4C: .4byte gUnknown_030041B4
_08111F50: .4byte gUnknown_03004288
_08111F54: .4byte gUnknown_03004280
_08111F58: .4byte gUnknown_030041B0
_08111F5C: .4byte gUnknown_030041B8
_08111F60: .4byte gMain
_08111F64: .4byte 0x0000043c
_08111F68:
ldr r4, _08111F80 @ =gWindowConfig_81E6F84
adds r0, r4, 0
bl SetUpWindowConfig
ldr r0, _08111F84 @ =gUnknown_03004828
ldr r0, [r0]
adds r0, 0x4
adds r1, r4, 0
bl InitWindowFromConfig
b _08112088
.align 2, 0
_08111F80: .4byte gWindowConfig_81E6F84
_08111F84: .4byte gUnknown_03004828
_08111F88:
ldr r4, _08111FC8 @ =gUnknown_03004828
ldr r0, [r4]
adds r0, 0x4
bl LoadTextWindowGraphics
movs r0, 0x2
bl SetTextWindowBaseTileNum
ldr r1, [r4]
adds r1, 0x34
strb r0, [r1]
ldr r0, [r4]
adds r0, 0x4
bl LoadTextWindowGraphics
bl MenuZeroFillScreen
bl ResetPaletteFade
ldr r1, _08111FCC @ =gMain
ldr r0, _08111FD0 @ =0x0000043c
adds r1, r0
ldrb r0, [r1]
adds r0, 0x1
strb r0, [r1]
ldr r0, _08111FD4 @ =HBlankCB_EvolutionScene
bl SetHBlankCallback
ldr r0, _08111FD8 @ =VBlankCB_TradeEvolutionScene
bl SetVBlankCallback
b _081120D6
.align 2, 0
_08111FC8: .4byte gUnknown_03004828
_08111FCC: .4byte gMain
_08111FD0: .4byte 0x0000043c
_08111FD4: .4byte HBlankCB_EvolutionScene
_08111FD8: .4byte VBlankCB_TradeEvolutionScene
_08111FDC:
bl sub_804E22C
b _08112088
_08111FE2:
adds r0, r4, 0
movs r1, 0x1
bl GetMonData
adds r6, r0, 0
adds r0, r4, 0
movs r1, 0
bl GetMonData
adds r5, r0, 0
lsls r0, r7, 3
ldr r1, _08112034 @ =gMonFrontPicTable
adds r0, r1
ldr r1, _08112038 @ =gMonFrontPicCoords
lsls r2, r7, 2
adds r2, r1
ldrb r1, [r2]
ldrb r2, [r2, 0x1]
movs r3, 0x80
lsls r3, 18
ldr r4, _0811203C @ =gUnknown_081FAF4C
ldr r4, [r4, 0xC]
str r4, [sp]
str r7, [sp, 0x4]
bl DecompressPicFromTable_2
adds r0, r7, 0
adds r1, r6, 0
adds r2, r5, 0
bl sub_80409C8
ldr r0, [r0]
movs r1, 0x90
lsls r1, 1
movs r2, 0x20
bl LoadCompressedPalette
ldr r1, _08112040 @ =gMain
ldr r0, _08112044 @ =0x0000043c
adds r1, r0
b _0811208E
.align 2, 0
_08112034: .4byte gMonFrontPicTable
_08112038: .4byte gMonFrontPicCoords
_0811203C: .4byte gUnknown_081FAF4C
_08112040: .4byte gMain
_08112044: .4byte 0x0000043c
_08112048:
adds r0, r7, 0
movs r1, 0x3
bl GetMonSpriteTemplate_803C56C
ldr r0, _08112098 @ =gUnknown_02024E8C
ldr r1, _0811209C @ =gDummySpriteAffineAnimTable
str r1, [r0, 0x10]
movs r1, 0x78
movs r2, 0x40
movs r3, 0x1E
bl CreateSprite
ldr r1, _081120A0 @ =0x02014800
lsls r2, r0, 24
lsrs r2, 24
strb r0, [r1, 0x1]
ldr r3, _081120A4 @ =gSprites
lsls r1, r2, 4
adds r1, r2
lsls r1, 2
adds r0, r3, 0
adds r0, 0x1C
adds r0, r1, r0
ldr r2, _081120A8 @ =nullsub_37
str r2, [r0]
adds r1, r3
ldrb r2, [r1, 0x5]
movs r0, 0xF
ands r0, r2
movs r2, 0x20
orrs r0, r2
strb r0, [r1, 0x5]
_08112088:
ldr r1, _081120AC @ =gMain
ldr r2, _081120B0 @ =0x0000043c
adds r1, r2
_0811208E:
ldrb r0, [r1]
adds r0, 0x1
strb r0, [r1]
b _081120D6
.align 2, 0
_08112098: .4byte gUnknown_02024E8C
_0811209C: .4byte gDummySpriteAffineAnimTable
_081120A0: .4byte 0x02014800
_081120A4: .4byte gSprites
_081120A8: .4byte nullsub_37
_081120AC: .4byte gMain
_081120B0: .4byte 0x0000043c
_081120B4:
movs r0, 0x1
negs r0, r0
movs r1, 0
str r1, [sp]
movs r2, 0x10
movs r3, 0
bl BeginNormalPaletteFade
ldr r0, _081120E0 @ =CB2_EvolutionSceneUpdate_1
bl SetMainCallback2
movs r1, 0x80
lsls r1, 19
movs r2, 0x9A
lsls r2, 5
adds r0, r2, 0
strh r0, [r1]
_081120D6:
add sp, 0x8
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
_081120E0: .4byte CB2_EvolutionSceneUpdate_1
thumb_func_end CB2_TradeEvolutionSceneLoadGraphics
thumb_func_start TradeEvolutionScene
TradeEvolutionScene: @ 81120E4
push {r4-r7,lr}
mov r7, r10
mov r6, r9
mov r5, r8
push {r5-r7}
sub sp, 0x24
str r0, [sp, 0x1C]
adds r5, r1, 0
adds r4, r2, 0
mov r10, r3
lsls r5, 16
lsrs r5, 16
lsls r4, 24
lsrs r4, 24
mov r0, r10
lsls r0, 24
lsrs r0, 24
mov r10, r0
ldr r0, [sp, 0x1C]
movs r1, 0x2
add r2, sp, 0x8
bl GetMonData
ldr r0, _08112234 @ =gStringVar1
add r1, sp, 0x8
bl StringCopy10
ldr r0, _08112238 @ =gStringVar2
movs r1, 0xB
muls r1, r5
ldr r2, _0811223C @ =gSpeciesNames
adds r1, r2
bl StringCopy
ldr r1, _08112240 @ =gAffineAnimsDisabled
movs r0, 0x1
strb r0, [r1]
ldr r0, [sp, 0x1C]
movs r1, 0xB
bl GetMonData
mov r8, r0
mov r1, r8
lsls r1, 16
lsrs r1, 16
mov r8, r1
ldr r0, [sp, 0x1C]
movs r1, 0
bl GetMonData
adds r6, r0, 0
ldr r0, [sp, 0x1C]
movs r1, 0x1
bl GetMonData
adds r7, r0, 0
ldr r2, _08112244 @ =0x02014800
mov r9, r2
strb r4, [r2]
lsls r0, r5, 3
ldr r1, _08112248 @ =gMonFrontPicTable
adds r0, r1
ldr r1, _0811224C @ =gMonFrontPicCoords
lsls r2, r5, 2
adds r2, r1
ldrb r1, [r2]
ldrb r2, [r2, 0x1]
movs r3, 0x80
lsls r3, 18
ldr r4, _08112250 @ =gUnknown_081FAF4C
ldr r4, [r4, 0x4]
str r4, [sp]
str r5, [sp, 0x4]
bl DecompressPicFromTable_2
adds r0, r5, 0
adds r1, r7, 0
adds r2, r6, 0
bl sub_80409C8
ldr r0, [r0]
movs r1, 0x90
lsls r1, 1
movs r2, 0x20
bl LoadCompressedPalette
adds r0, r5, 0
movs r1, 0x1
bl GetMonSpriteTemplate_803C56C
ldr r0, _08112254 @ =gUnknown_02024E8C
ldr r1, _08112258 @ =gDummySpriteAffineAnimTable
str r1, [r0, 0x10]
movs r1, 0x78
movs r2, 0x40
movs r3, 0x1E
bl CreateSprite
lsls r1, r0, 24
lsrs r2, r1, 24
mov r1, r9
strb r0, [r1, 0x1]
ldr r3, _0811225C @ =gSprites
lsls r1, r2, 4
adds r1, r2
lsls r1, 2
adds r0, r3, 0
adds r0, 0x1C
adds r0, r1, r0
ldr r2, _08112260 @ =nullsub_37
str r2, [r0]
adds r1, r3
ldrb r2, [r1, 0x5]
movs r0, 0xF
ands r0, r2
movs r2, 0x20
orrs r0, r2
strb r0, [r1, 0x5]
adds r1, 0x3E
ldrb r0, [r1]
movs r2, 0x4
orrs r0, r2
strb r0, [r1]
bl sub_8149954
ldr r0, _08112264 @ =Task_TradeEvolutionScene
movs r1, 0
bl CreateTask
lsls r1, r0, 24
lsrs r2, r1, 24
mov r1, r9
strb r0, [r1, 0x2]
ldr r1, _08112268 @ =gTasks
lsls r0, r2, 2
adds r0, r2
lsls r0, 3
adds r0, r1
movs r2, 0
strh r2, [r0, 0x8]
mov r1, r8
strh r1, [r0, 0xE]
strh r5, [r0, 0x10]
mov r2, sp
ldrh r2, [r2, 0x1C]
strh r2, [r0, 0xA]
ldr r1, [sp, 0x1C]
lsrs r1, 16
str r1, [sp, 0x20]
strh r1, [r0, 0xC]
movs r1, 0x1
strh r1, [r0, 0x14]
movs r1, 0
strh r1, [r0, 0x1E]
mov r2, r10
strh r2, [r0, 0x20]
ldr r0, _0811226C @ =CB2_EvolutionSceneUpdate_1
bl SetMainCallback2
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
_08112234: .4byte gStringVar1
_08112238: .4byte gStringVar2
_0811223C: .4byte gSpeciesNames
_08112240: .4byte gAffineAnimsDisabled
_08112244: .4byte 0x02014800
_08112248: .4byte gMonFrontPicTable
_0811224C: .4byte gMonFrontPicCoords
_08112250: .4byte gUnknown_081FAF4C
_08112254: .4byte gUnknown_02024E8C
_08112258: .4byte gDummySpriteAffineAnimTable
_0811225C: .4byte gSprites
_08112260: .4byte nullsub_37
_08112264: .4byte Task_TradeEvolutionScene
_08112268: .4byte gTasks
_0811226C: .4byte CB2_EvolutionSceneUpdate_1
thumb_func_end TradeEvolutionScene
thumb_func_start CB2_EvolutionSceneUpdate_0
CB2_EvolutionSceneUpdate_0: @ 8112270
push {lr}
bl AnimateSprites
bl BuildOamBuffer
ldr r0, _0811228C @ =gUnknown_03004210
bl sub_800374C
bl UpdatePaletteFade
bl RunTasks
pop {r0}
bx r0
.align 2, 0
_0811228C: .4byte gUnknown_03004210
thumb_func_end CB2_EvolutionSceneUpdate_0
thumb_func_start CB2_EvolutionSceneUpdate_1
CB2_EvolutionSceneUpdate_1: @ 8112290
push {lr}
bl AnimateSprites
bl BuildOamBuffer
ldr r0, _081122B0 @ =gUnknown_03004828
ldr r0, [r0]
adds r0, 0x4
bl sub_80035AC
bl UpdatePaletteFade
bl RunTasks
pop {r0}
bx r0
.align 2, 0
_081122B0: .4byte gUnknown_03004828
thumb_func_end CB2_EvolutionSceneUpdate_1
thumb_func_start CreateShedinja
CreateShedinja: @ 81122B4
push {r4-r7,lr}
mov r7, r10
mov r6, r9
mov r5, r8
push {r5-r7}
sub sp, 0x4
mov r10, r1
lsls r0, 16
lsrs r7, r0, 16
movs r0, 0
str r0, [sp]
ldr r0, _081123F4 @ =gEvolutionTable
mov r8, r0
lsls r1, r7, 2
mov r9, r1
adds r0, r1, r7
lsls r4, r0, 3
mov r0, r8
adds r6, r4, r0
ldrh r0, [r6]
cmp r0, 0xD
beq _081122E2
b _081123E2
_081122E2:
ldr r1, _081123F8 @ =gPlayerPartyCount
ldrb r0, [r1]
cmp r0, 0x5
bhi _081123E2
adds r1, r0, 0
movs r0, 0x64
muls r1, r0
ldr r0, _081123FC @ =gPlayerParty
adds r5, r1, r0
adds r0, r5, 0
mov r1, r10
movs r2, 0x64
bl CopyMon
mov r1, r8
adds r2, r1, r4
adds r2, 0xC
adds r0, r5, 0
movs r1, 0xB
bl SetMonData
ldrh r1, [r6, 0xC]
movs r0, 0xB
adds r2, r1, 0
muls r2, r0
ldr r0, _08112400 @ =gSpeciesNames
adds r2, r0
adds r0, r5, 0
movs r1, 0x2
bl SetMonData
adds r0, r5, 0
movs r1, 0xC
mov r2, sp
bl SetMonData
adds r0, r5, 0
movs r1, 0x8
mov r2, sp
bl SetMonData
adds r0, r5, 0
movs r1, 0xA
mov r2, sp
bl SetMonData
movs r4, 0x32
mov r6, r9
_08112342:
adds r0, r5, 0
adds r1, r4, 0
mov r2, sp
bl SetMonData
adds r4, 0x1
cmp r4, 0x36
ble _08112342
movs r4, 0x43
_08112354:
adds r0, r5, 0
adds r1, r4, 0
mov r2, sp
bl SetMonData
adds r4, 0x1
cmp r4, 0x4F
ble _08112354
adds r0, r5, 0
movs r1, 0x37
mov r2, sp
bl SetMonData
movs r0, 0xFF
str r0, [sp]
adds r0, r5, 0
movs r1, 0x40
mov r2, sp
bl SetMonData
adds r0, r5, 0
bl CalculateMonStats
bl CalculatePlayerPartyCount
ldr r0, _081123F4 @ =gEvolutionTable
adds r4, r6, r7
lsls r4, 3
adds r4, r0
ldrh r0, [r4, 0xC]
bl SpeciesToNationalPokedexNum
lsls r0, 16
lsrs r0, 16
movs r1, 0x2
bl sub_8090D90
ldrh r0, [r4, 0xC]
bl SpeciesToNationalPokedexNum
lsls r0, 16
lsrs r0, 16
movs r1, 0x3
bl sub_8090D90
adds r0, r5, 0
movs r1, 0xB
bl GetMonData
ldr r1, _08112404 @ =0x0000012f
cmp r0, r1
bne _081123E2
adds r0, r5, 0
movs r1, 0x3
bl GetMonData
cmp r0, 0x1
bne _081123E2
mov r0, r10
movs r1, 0xB
bl GetMonData
movs r1, 0x97
lsls r1, 1
cmp r0, r1
bne _081123E2
ldr r2, _08112408 @ =gUnknown_083F868C
adds r0, r5, 0
movs r1, 0x2
bl SetMonData
_081123E2:
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
_081123F4: .4byte gEvolutionTable
_081123F8: .4byte gPlayerPartyCount
_081123FC: .4byte gPlayerParty
_08112400: .4byte gSpeciesNames
_08112404: .4byte 0x0000012f
_08112408: .4byte gUnknown_083F868C
thumb_func_end CreateShedinja
thumb_func_start Task_EvolutionScene
Task_EvolutionScene: @ 811240C
push {r4-r7,lr}
mov r7, r9
mov r6, r8
push {r6,r7}
sub sp, 0x18
lsls r0, 24
lsrs r7, r0, 24
ldr r2, _08112490 @ =gTasks
lsls r0, r7, 2
adds r0, r7
lsls r0, 3
adds r3, r0, r2
movs r1, 0xA
ldrsh r0, [r3, r1]
mov r9, r0
movs r1, 0xC
ldrsh r0, [r3, r1]
lsls r0, 16
mov r1, r9
orrs r1, r0
mov r9, r1
ldr r0, _08112494 @ =gMain
ldrh r1, [r0, 0x2C]
adds r6, r2, 0
adds r4, r0, 0
cmp r1, 0x2
bne _0811246E
movs r2, 0x8
ldrsh r0, [r3, r2]
cmp r0, 0x8
bne _0811246E
ldrh r1, [r3, 0x12]
movs r2, 0x1
adds r0, r2, 0
ands r0, r1
cmp r0, 0
beq _0811246E
movs r0, 0x10
strh r0, [r3, 0x8]
ldr r0, _08112498 @ =gUnknown_02024D1E
ldrb r1, [r0, 0x2]
lsls r0, r1, 2
adds r0, r1
lsls r0, 3
adds r1, r0, r6
ldrb r0, [r1, 0x4]
cmp r0, 0
beq _0811246E
strh r2, [r1, 0x18]
_0811246E:
lsls r1, r7, 2
adds r0, r1, r7
lsls r0, 3
adds r0, r6
movs r3, 0x8
ldrsh r0, [r0, r3]
mov r8, r1
cmp r0, 0x15
bls _08112484
bl _08112FD0
_08112484:
lsls r0, 2
ldr r1, _0811249C @ =_081124A0
adds r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_08112490: .4byte gTasks
_08112494: .4byte gMain
_08112498: .4byte gUnknown_02024D1E
_0811249C: .4byte _081124A0
.align 2, 0
_081124A0:
.4byte _081124F8
.4byte _0811253C
.4byte _08112588
.4byte _08112594
.4byte _081125BC
.4byte _081125FC
.4byte _08112630
.4byte _0811266C
.4byte _081126A0
.4byte _081126E0
.4byte _081126FC
.4byte _08112728
.4byte _08112754
.4byte _081127A0
.4byte _0811284C
.4byte _081128E4
.4byte _08112934
.4byte _08112974
.4byte _081129A0
.4byte _081129E8
.4byte _08112A4C
.4byte _08112A88
_081124F8:
movs r0, 0x1
negs r0, r0
movs r1, 0
str r1, [sp]
movs r2, 0x10
movs r3, 0
bl BeginNormalPaletteFade
ldr r2, _08112530 @ =gSprites
ldr r0, _08112534 @ =0x02014800
ldrb r1, [r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r2
adds r0, 0x3E
ldrb r2, [r0]
movs r1, 0x5
negs r1, r1
ands r1, r2
strb r1, [r0]
ldr r0, _08112538 @ =gTasks
mov r2, r8
adds r1, r2, r7
lsls r1, 3
adds r1, r0
b _08112A2E
.align 2, 0
_08112530: .4byte gSprites
_08112534: .4byte 0x02014800
_08112538: .4byte gTasks
_0811253C:
ldr r0, _08112574 @ =gPaletteFade
ldrb r1, [r0, 0x7]
movs r0, 0x80
ands r0, r1
cmp r0, 0
beq _0811254C
bl _08112FD0
_0811254C:
ldr r4, _08112578 @ =gStringVar4
ldr r1, _0811257C @ =gUnknown_08400C4A
adds r0, r4, 0
bl StringExpandPlaceholders
ldr r0, _08112580 @ =gUnknown_03004210
movs r1, 0xF
str r1, [sp]
adds r1, r4, 0
movs r2, 0x90
movs r3, 0x2
bl sub_8002EB0
ldr r0, _08112584 @ =gTasks
mov r3, r8
adds r1, r3, r7
lsls r1, 3
adds r1, r0
b _08112A2E
.align 2, 0
_08112574: .4byte gPaletteFade
_08112578: .4byte gStringVar4
_0811257C: .4byte gUnknown_08400C4A
_08112580: .4byte gUnknown_03004210
_08112584: .4byte gTasks
_08112588:
ldr r0, _08112590 @ =gUnknown_03004210
ldrh r0, [r0, 0x16]
b _0811297C
.align 2, 0
_08112590: .4byte gUnknown_03004210
_08112594:
bl IsCryFinished
lsls r0, 24
cmp r0, 0
bne _081125A2
bl _08112FD0
_081125A2:
movs r0, 0xBC
lsls r0, 1
bl PlaySE
ldr r0, _081125B8 @ =gTasks
mov r2, r8
adds r1, r2, r7
lsls r1, 3
adds r1, r0
b _08112A2E
.align 2, 0
_081125B8: .4byte gTasks
_081125BC:
bl IsSEPlaying
lsls r0, 24
lsrs r4, r0, 24
cmp r4, 0
beq _081125CC
bl _08112FD0
_081125CC:
ldr r0, _081125F4 @ =0x00000179
bl PlayNewMapMusic
ldr r0, _081125F8 @ =gTasks
mov r3, r8
adds r1, r3, r7
lsls r1, 3
adds r1, r0
ldrh r0, [r1, 0x8]
adds r0, 0x1
strh r0, [r1, 0x8]
str r4, [sp]
movs r0, 0x1C
movs r1, 0x4
movs r2, 0
movs r3, 0x10
bl BeginNormalPaletteFade
bl _08112FD0
.align 2, 0
_081125F4: .4byte 0x00000179
_081125F8: .4byte gTasks
_081125FC:
ldr r0, _08112624 @ =gPaletteFade
ldrb r1, [r0, 0x7]
movs r0, 0x80
ands r0, r1
cmp r0, 0
beq _0811260C
bl _08112FD0
_0811260C:
movs r0, 0x11
bl sub_8149970
ldr r1, _08112628 @ =gUnknown_02024D1E
strb r0, [r1, 0x2]
ldr r0, _0811262C @ =gTasks
mov r2, r8
adds r1, r2, r7
lsls r1, 3
adds r1, r0
b _08112A2E
.align 2, 0
_08112624: .4byte gPaletteFade
_08112628: .4byte gUnknown_02024D1E
_0811262C: .4byte gTasks
_08112630:
ldr r4, _08112664 @ =gUnknown_02024D1E
ldrb r0, [r4, 0x2]
lsls r1, r0, 2
adds r1, r0
lsls r1, 3
adds r1, r6
ldrb r0, [r1, 0x4]
cmp r0, 0
beq _08112646
bl _08112FD0
_08112646:
mov r3, r8
adds r1, r3, r7
lsls r1, 3
adds r1, r6
ldrh r0, [r1, 0x8]
adds r0, 0x1
strh r0, [r1, 0x8]
ldr r1, _08112668 @ =0x02014800
movs r0, 0x1
strb r0, [r1, 0x3]
bl sub_8149A90
strb r0, [r4, 0x2]
bl _08112FD0
.align 2, 0
_08112664: .4byte gUnknown_02024D1E
_08112668: .4byte 0x02014800
_0811266C:
ldr r4, _08112698 @ =gUnknown_02024D1E
ldrb r0, [r4, 0x2]
lsls r1, r0, 2
adds r1, r0
lsls r1, 3
adds r1, r6
ldrb r0, [r1, 0x4]
cmp r0, 0
beq _08112682
bl _08112FD0
_08112682:
ldr r1, _0811269C @ =0x02014800
ldrb r0, [r1]
ldrb r1, [r1, 0x1]
bl sub_8149E7C
strb r0, [r4, 0x2]
mov r0, r8
adds r1, r0, r7
lsls r1, 3
adds r1, r6
b _08112A2E
.align 2, 0
_08112698: .4byte gUnknown_02024D1E
_0811269C: .4byte 0x02014800
_081126A0:
ldr r1, _081126D8 @ =0x02014800
ldrb r0, [r1, 0x3]
subs r0, 0x1
strb r0, [r1, 0x3]
lsls r0, 24
cmp r0, 0
beq _081126B2
bl _08112FD0
_081126B2:
movs r0, 0x3
strb r0, [r1, 0x3]
ldr r0, _081126DC @ =gUnknown_02024D1E
ldrb r1, [r0, 0x2]
lsls r0, r1, 2
adds r0, r1
lsls r0, 3
adds r0, r6
ldrb r0, [r0, 0x4]
cmp r0, 0
beq _081126CC
bl _08112FD0
_081126CC:
mov r2, r8
adds r1, r2, r7
lsls r1, 3
adds r1, r6
b _08112A2E
.align 2, 0
_081126D8: .4byte 0x02014800
_081126DC: .4byte gUnknown_02024D1E
_081126E0:
bl sub_8149B44
ldr r1, _081126F4 @ =gUnknown_02024D1E
strb r0, [r1, 0x2]
ldr r0, _081126F8 @ =gTasks
mov r3, r8
adds r1, r3, r7
lsls r1, 3
adds r1, r0
b _08112A2E
.align 2, 0
_081126F4: .4byte gUnknown_02024D1E
_081126F8: .4byte gTasks
_081126FC:
ldr r5, _08112724 @ =gUnknown_02024D1E
ldrb r0, [r5, 0x2]
lsls r1, r0, 2
adds r1, r0
lsls r1, 3
adds r1, r6
ldrb r0, [r1, 0x4]
cmp r0, 0
beq _08112712
bl _08112FD0
_08112712:
mov r0, r8
adds r4, r0, r7
lsls r4, 3
adds r4, r6
ldrh r0, [r4, 0x10]
bl sub_8149C20
strb r0, [r5, 0x2]
b _08112992
.align 2, 0
_08112724: .4byte gUnknown_02024D1E
_08112728:
ldr r0, _08112750 @ =gUnknown_02024D1E
ldrb r1, [r0, 0x2]
lsls r0, r1, 2
adds r0, r1
lsls r0, 3
adds r0, r6
ldrb r0, [r0, 0x4]
cmp r0, 0
beq _0811273E
bl _08112FD0
_0811273E:
movs r0, 0x21
bl PlaySE
mov r2, r8
adds r1, r2, r7
lsls r1, 3
adds r1, r6
b _08112A2E
.align 2, 0
_08112750: .4byte gUnknown_02024D1E
_08112754:
bl IsSEPlaying
lsls r0, 24
cmp r0, 0
bne _08112762
bl _08112FD0
_08112762:
bl m4aMPlayAllStop
ldr r0, _08112794 @ =gTasks
mov r3, r8
adds r4, r3, r7
lsls r4, 3
adds r4, r0
ldrh r0, [r4, 0x10]
movs r1, 0
bl PlayCry1
ldr r0, _08112798 @ =gPlttBufferUnfaded + 0x40
ldr r1, _0811279C @ =0x02009000
movs r2, 0x60
bl memcpy
movs r0, 0
str r0, [sp]
movs r0, 0x1C
movs r1, 0
movs r2, 0x10
movs r3, 0
bl BeginNormalPaletteFade
b _08112992
.align 2, 0
_08112794: .4byte gTasks
_08112798: .4byte gPlttBufferUnfaded + 0x40
_0811279C: .4byte 0x02009000
_081127A0:
bl IsCryFinished
lsls r0, 24
cmp r0, 0
bne _081127AE
bl _08112FD0
_081127AE:
ldr r0, _08112834 @ =gPaletteFade
ldrb r1, [r0, 0x7]
movs r0, 0x80
ands r0, r1
cmp r0, 0
beq _081127BE
bl _08112FD0
_081127BE:
ldr r4, _08112838 @ =gStringVar4
ldr r1, _0811283C @ =gUnknown_08400C60
adds r0, r4, 0
bl StringExpandPlaceholders
ldr r0, _08112840 @ =gUnknown_03004210
movs r1, 0xF
str r1, [sp]
adds r1, r4, 0
movs r2, 0x90
movs r3, 0x2
bl sub_8002EB0
ldr r0, _08112844 @ =0x00000173
bl PlayBGM
ldr r2, _08112848 @ =gTasks
mov r0, r8
adds r1, r0, r7
lsls r1, 3
adds r4, r1, r2
ldrh r0, [r4, 0x8]
adds r0, 0x1
strh r0, [r4, 0x8]
adds r2, r1
adds r2, 0x10
mov r0, r9
movs r1, 0xB
bl SetMonData
mov r0, r9
bl CalculateMonStats
ldrh r1, [r4, 0xE]
ldrh r2, [r4, 0x10]
mov r0, r9
bl sub_803FB68
ldrh r0, [r4, 0x10]
bl SpeciesToNationalPokedexNum
lsls r0, 16
lsrs r0, 16
movs r1, 0x2
bl sub_8090D90
ldrh r0, [r4, 0x10]
bl SpeciesToNationalPokedexNum
lsls r0, 16
lsrs r0, 16
movs r1, 0x3
bl sub_8090D90
movs r0, 0xE
bl sav12_xor_increment
b _08112FD0
.align 2, 0
_08112834: .4byte gPaletteFade
_08112838: .4byte gStringVar4
_0811283C: .4byte gUnknown_08400C60
_08112840: .4byte gUnknown_03004210
_08112844: .4byte 0x00000173
_08112848: .4byte gTasks
_0811284C:
ldr r0, _081128A4 @ =gUnknown_03004210
ldrh r0, [r0, 0x16]
cmp r0, 0
beq _08112856
b _08112FD0
_08112856:
mov r1, r8
adds r0, r1, r7
lsls r0, 3
adds r5, r0, r6
ldrb r1, [r5, 0x14]
mov r0, r9
bl sub_803B7C8
lsls r0, 16
lsrs r6, r0, 16
cmp r6, 0
beq _081128C4
movs r2, 0x1E
ldrsh r4, [r5, r2]
cmp r4, 0
bne _081128C4
bl sub_8053E90
ldrh r1, [r5, 0x12]
movs r0, 0x80
orrs r0, r1
strh r0, [r5, 0x12]
strh r4, [r5, 0x14]
strh r4, [r5, 0x18]
mov r0, r9
movs r1, 0x2
add r2, sp, 0x4
bl GetMonData
ldr r0, _081128A8 @ =gUnknown_030041C0
add r1, sp, 0x4
bl StringCopy10
ldr r0, _081128AC @ =0x0000ffff
cmp r6, r0
bne _081128B0
movs r0, 0x15
strh r0, [r5, 0x8]
b _08112FD0
.align 2, 0
_081128A4: .4byte gUnknown_03004210
_081128A8: .4byte gUnknown_030041C0
_081128AC: .4byte 0x0000ffff
_081128B0:
ldr r0, _081128C0 @ =0x0000fffe
cmp r6, r0
bne _081128B8
b _08112FD0
_081128B8:
movs r0, 0x13
strh r0, [r5, 0x8]
b _08112FD0
.align 2, 0
_081128C0: .4byte 0x0000fffe
_081128C4:
movs r0, 0x1
negs r0, r0
movs r1, 0
str r1, [sp]
movs r2, 0
movs r3, 0x10
bl BeginNormalPaletteFade
ldr r0, _081128E0 @ =gTasks
mov r3, r8
adds r1, r3, r7
lsls r1, 3
adds r1, r0
b _08112A2E
.align 2, 0
_081128E0: .4byte gTasks
_081128E4:
ldr r0, _0811292C @ =gPaletteFade
ldrb r1, [r0, 0x7]
movs r2, 0x80
adds r0, r2, 0
ands r0, r1
cmp r0, 0
beq _081128F4
b _08112FD0
_081128F4:
mov r1, r8
adds r0, r1, r7
lsls r0, 3
adds r4, r0, r6
ldrh r1, [r4, 0x12]
adds r0, r2, 0
ands r0, r1
cmp r0, 0
bne _0811290A
bl sub_8053E90
_0811290A:
movs r2, 0x1E
ldrsh r0, [r4, r2]
cmp r0, 0
bne _0811291A
ldrh r0, [r4, 0xE]
mov r1, r9
bl CreateShedinja
_0811291A:
adds r0, r7, 0
bl DestroyTask
ldr r0, _08112930 @ =gUnknown_03005E94
ldr r0, [r0]
bl SetMainCallback2
b _08112FD0
.align 2, 0
_0811292C: .4byte gPaletteFade
_08112930: .4byte gUnknown_03005E94
_08112934:
ldr r0, _08112968 @ =gUnknown_02024D1E
ldrb r1, [r0, 0x2]
lsls r0, r1, 2
adds r0, r1
lsls r0, 3
adds r0, r6
ldrb r0, [r0, 0x4]
cmp r0, 0
beq _08112948
b _08112FD0
_08112948:
bl m4aMPlayAllStop
ldr r0, _0811296C @ =0x0006001c
ldr r1, _08112970 @ =0x00007fff
str r1, [sp]
movs r1, 0
movs r2, 0x10
movs r3, 0
bl BeginNormalPaletteFade
mov r3, r8
adds r1, r3, r7
lsls r1, 3
adds r1, r6
b _08112A2E
.align 2, 0
_08112968: .4byte gUnknown_02024D1E
_0811296C: .4byte 0x0006001c
_08112970: .4byte 0x00007fff
_08112974:
ldr r0, _0811299C @ =gPaletteFade
ldrb r1, [r0, 0x7]
movs r0, 0x80
ands r0, r1
_0811297C:
cmp r0, 0
beq _08112982
b _08112FD0
_08112982:
mov r0, r8
adds r4, r0, r7
lsls r4, 3
adds r4, r6
ldrh r0, [r4, 0xE]
movs r1, 0
bl PlayCry1
_08112992:
ldrh r0, [r4, 0x8]
adds r0, 0x1
strh r0, [r4, 0x8]
b _08112FD0
.align 2, 0
_0811299C: .4byte gPaletteFade
_081129A0:
bl IsCryFinished
lsls r0, 24
cmp r0, 0
bne _081129AC
b _08112FD0
_081129AC:
ldr r4, _081129D8 @ =gStringVar4
ldr r1, _081129DC @ =gUnknown_08400C8D
adds r0, r4, 0
bl StringExpandPlaceholders
ldr r0, _081129E0 @ =gUnknown_03004210
movs r1, 0xF
str r1, [sp]
adds r1, r4, 0
movs r2, 0x90
movs r3, 0x2
bl sub_8002EB0
ldr r1, _081129E4 @ =gTasks
mov r2, r8
adds r0, r2, r7
lsls r0, 3
adds r0, r1
movs r1, 0x1
strh r1, [r0, 0x1E]
b _08112F9A
.align 2, 0
_081129D8: .4byte gStringVar4
_081129DC: .4byte gUnknown_08400C8D
_081129E0: .4byte gUnknown_03004210
_081129E4: .4byte gTasks
_081129E8:
ldr r4, _08112A38 @ =gUnknown_03004210
ldrh r0, [r4, 0x16]
cmp r0, 0
beq _081129F2
b _08112FD0
_081129F2:
bl IsSEPlaying
lsls r0, 24
cmp r0, 0
beq _081129FE
b _08112FD0
_081129FE:
bl sub_8024CEC
ldr r0, _08112A3C @ =0x0000016f
bl PlayFanfare
ldr r0, _08112A40 @ =gUnknown_08400F8C
ldr r0, [r0, 0xC]
bl get_battle_strings_
ldr r1, _08112A44 @ =gUnknown_020238CC
movs r0, 0xF
str r0, [sp]
adds r0, r4, 0
movs r2, 0x90
movs r3, 0x2
bl sub_8002EB0
ldr r0, _08112A48 @ =gTasks
mov r3, r8
adds r1, r3, r7
lsls r1, 3
adds r1, r0
movs r0, 0x40
strh r0, [r1, 0x14]
_08112A2E:
ldrh r0, [r1, 0x8]
adds r0, 0x1
strh r0, [r1, 0x8]
b _08112FD0
.align 2, 0
_08112A38: .4byte gUnknown_03004210
_08112A3C: .4byte 0x0000016f
_08112A40: .4byte gUnknown_08400F8C
_08112A44: .4byte gUnknown_020238CC
_08112A48: .4byte gTasks
_08112A4C:
ldr r0, _08112A80 @ =gUnknown_03004210
ldrh r0, [r0, 0x16]
cmp r0, 0
beq _08112A56
b _08112FD0
_08112A56:
bl IsSEPlaying
lsls r0, 24
cmp r0, 0
beq _08112A62
b _08112FD0
_08112A62:
ldr r0, _08112A84 @ =gTasks
mov r2, r8
adds r1, r2, r7
lsls r1, 3
adds r1, r0
ldrh r0, [r1, 0x14]
subs r0, 0x1
strh r0, [r1, 0x14]
lsls r0, 16
cmp r0, 0
beq _08112A7A
b _08112FD0
_08112A7A:
movs r0, 0xE
strh r0, [r1, 0x8]
b _08112FD0
.align 2, 0
_08112A80: .4byte gUnknown_03004210
_08112A84: .4byte gTasks
_08112A88:
mov r3, r8
adds r0, r3, r7
lsls r0, 3
adds r0, r6
movs r1, 0x18
ldrsh r0, [r0, r1]
cmp r0, 0xB
bls _08112A9A
b _08112FD0
_08112A9A:
lsls r0, 2
ldr r1, _08112AA4 @ =_08112AA8
adds r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_08112AA4: .4byte _08112AA8
.align 2, 0
_08112AA8:
.4byte _08112AD8
.4byte _08112B2C
.4byte _08112B7C
.4byte _08112BC0
.4byte _08112C0C
.4byte _08112D3C
.4byte _08112D8C
.4byte _08112E98
.4byte _08112EE8
.4byte _08112F38
.4byte _08112F78
.4byte _08112FB0
_08112AD8:
ldr r4, _08112B1C @ =gUnknown_03004210
ldrh r0, [r4, 0x16]
cmp r0, 0
beq _08112AE2
b _08112FD0
_08112AE2:
bl IsSEPlaying
lsls r0, 24
cmp r0, 0
beq _08112AEE
b _08112FD0
_08112AEE:
bl sub_8024CEC
ldr r0, _08112B20 @ =gUnknown_08400F8C
ldr r0, [r0, 0x10]
bl get_battle_strings_
ldr r1, _08112B24 @ =gUnknown_020238CC
movs r0, 0xF
str r0, [sp]
adds r0, r4, 0
movs r2, 0x90
movs r3, 0x2
bl sub_8002EB0
ldr r0, _08112B28 @ =gTasks
mov r2, r8
adds r1, r2, r7
lsls r1, 3
adds r1, r0
ldrh r0, [r1, 0x18]
adds r0, 0x1
b _08112FCE
.align 2, 0
_08112B1C: .4byte gUnknown_03004210
_08112B20: .4byte gUnknown_08400F8C
_08112B24: .4byte gUnknown_020238CC
_08112B28: .4byte gTasks
_08112B2C:
ldr r4, _08112B6C @ =gUnknown_03004210
ldrh r0, [r4, 0x16]
cmp r0, 0
beq _08112B36
b _08112FD0
_08112B36:
bl IsSEPlaying
lsls r0, 24
cmp r0, 0
beq _08112B42
b _08112FD0
_08112B42:
ldr r0, _08112B70 @ =gUnknown_08400F8C
ldr r0, [r0, 0x14]
bl get_battle_strings_
ldr r1, _08112B74 @ =gUnknown_020238CC
movs r0, 0xF
str r0, [sp]
adds r0, r4, 0
movs r2, 0x90
movs r3, 0x2
bl sub_8002EB0
ldr r0, _08112B78 @ =gTasks
mov r3, r8
adds r1, r3, r7
lsls r1, 3
adds r1, r0
ldrh r0, [r1, 0x18]
adds r0, 0x1
b _08112FCE
.align 2, 0
_08112B6C: .4byte gUnknown_03004210
_08112B70: .4byte gUnknown_08400F8C
_08112B74: .4byte gUnknown_020238CC
_08112B78: .4byte gTasks
_08112B7C:
ldr r4, _08112BF8 @ =gUnknown_03004210
ldrh r0, [r4, 0x16]
cmp r0, 0
beq _08112B86
b _08112FD0
_08112B86:
bl IsSEPlaying
lsls r0, 24
cmp r0, 0
bne _08112BC0
ldr r0, _08112BFC @ =gUnknown_08400F8C
ldr r0, [r0, 0x18]
bl get_battle_strings_
ldr r1, _08112C00 @ =gUnknown_020238CC
movs r0, 0xF
str r0, [sp]
adds r0, r4, 0
movs r2, 0x90
movs r3, 0x2
bl sub_8002EB0
ldr r0, _08112C04 @ =gTasks
mov r2, r8
adds r1, r2, r7
lsls r1, 3
adds r1, r0
movs r0, 0x5
strh r0, [r1, 0x1A]
movs r0, 0x9
strh r0, [r1, 0x1C]
ldrh r0, [r1, 0x18]
adds r0, 0x1
strh r0, [r1, 0x18]
_08112BC0:
ldr r0, _08112BF8 @ =gUnknown_03004210
ldrh r0, [r0, 0x16]
cmp r0, 0
beq _08112BCA
b _08112FD0
_08112BCA:
bl IsSEPlaying
lsls r0, 24
cmp r0, 0
beq _08112BD6
b _08112FD0
_08112BD6:
bl sub_8023A80
ldr r0, _08112C04 @ =gTasks
mov r3, r8
adds r1, r3, r7
lsls r1, 3
adds r1, r0
ldrh r0, [r1, 0x18]
adds r0, 0x1
movs r2, 0
strh r0, [r1, 0x18]
ldr r0, _08112C08 @ =gUnknown_02024D1E
strb r2, [r0, 0x1]
bl sub_802BC6C
b _08112FD0
.align 2, 0
_08112BF8: .4byte gUnknown_03004210
_08112BFC: .4byte gUnknown_08400F8C
_08112C00: .4byte gUnknown_020238CC
_08112C04: .4byte gTasks
_08112C08: .4byte gUnknown_02024D1E
_08112C0C:
ldr r0, _08112CA4 @ =gMain
ldrh r1, [r0, 0x2E]
movs r0, 0x40
ands r0, r1
cmp r0, 0
beq _08112C32
ldr r4, _08112CA8 @ =gUnknown_02024D1E
ldrb r0, [r4, 0x1]
cmp r0, 0
beq _08112C32
movs r0, 0x5
bl PlaySE
bl nullsub_6
movs r0, 0
strb r0, [r4, 0x1]
bl sub_802BC6C
_08112C32:
ldr r0, _08112CA4 @ =gMain
ldrh r1, [r0, 0x2E]
movs r0, 0x80
ands r0, r1
cmp r0, 0
beq _08112C58
ldr r4, _08112CA8 @ =gUnknown_02024D1E
ldrb r0, [r4, 0x1]
cmp r0, 0
bne _08112C58
movs r0, 0x5
bl PlaySE
bl nullsub_6
movs r0, 0x1
strb r0, [r4, 0x1]
bl sub_802BC6C
_08112C58:
ldr r0, _08112CA4 @ =gMain
ldrh r1, [r0, 0x2E]
movs r0, 0x1
ands r0, r1
cmp r0, 0
beq _08112CE2
bl sub_8023AD8
ldr r0, _08112CAC @ =gUnknown_08400F8C
movs r1, 0x92
lsls r1, 3
adds r0, r1
ldr r0, [r0]
bl get_battle_strings_
ldr r0, _08112CB0 @ =gUnknown_03004210
ldr r1, _08112CB4 @ =gUnknown_020238CC
movs r2, 0xF
str r2, [sp]
movs r2, 0x90
movs r3, 0x2
bl sub_8002EB0
movs r0, 0x5
bl PlaySE
ldr r0, _08112CA8 @ =gUnknown_02024D1E
ldrb r2, [r0, 0x1]
cmp r2, 0
beq _08112CBC
ldr r0, _08112CB8 @ =gTasks
mov r2, r8
adds r1, r2, r7
lsls r1, 3
adds r1, r0
ldrh r0, [r1, 0x1C]
strh r0, [r1, 0x18]
b _08112CE2
.align 2, 0
_08112CA4: .4byte gMain
_08112CA8: .4byte gUnknown_02024D1E
_08112CAC: .4byte gUnknown_08400F8C
_08112CB0: .4byte gUnknown_03004210
_08112CB4: .4byte gUnknown_020238CC
_08112CB8: .4byte gTasks
_08112CBC:
ldr r0, _08112D28 @ =gTasks
mov r3, r8
adds r1, r3, r7
lsls r1, 3
adds r1, r0
ldrh r0, [r1, 0x1A]
strh r0, [r1, 0x18]
lsls r0, 16
asrs r0, 16
cmp r0, 0x5
bne _08112CE2
movs r0, 0x1
negs r0, r0
str r2, [sp]
movs r1, 0
movs r2, 0
movs r3, 0x10
bl BeginNormalPaletteFade
_08112CE2:
ldr r0, _08112D2C @ =gMain
ldrh r1, [r0, 0x2E]
movs r0, 0x2
ands r0, r1
cmp r0, 0
bne _08112CF0
b _08112FD0
_08112CF0:
bl sub_8023AD8
ldr r0, _08112D30 @ =gUnknown_08400F8C
movs r1, 0x92
lsls r1, 3
adds r0, r1
ldr r0, [r0]
bl get_battle_strings_
ldr r0, _08112D34 @ =gUnknown_03004210
ldr r1, _08112D38 @ =gUnknown_020238CC
movs r2, 0xF
str r2, [sp]
movs r2, 0x90
movs r3, 0x2
bl sub_8002EB0
movs r0, 0x5
bl PlaySE
ldr r1, _08112D28 @ =gTasks
mov r2, r8
adds r0, r2, r7
lsls r0, 3
adds r0, r1
ldrh r1, [r0, 0x1C]
strh r1, [r0, 0x18]
b _08112FD0
.align 2, 0
_08112D28: .4byte gTasks
_08112D2C: .4byte gMain
_08112D30: .4byte gUnknown_08400F8C
_08112D34: .4byte gUnknown_03004210
_08112D38: .4byte gUnknown_020238CC
_08112D3C:
ldr r0, _08112D78 @ =gPaletteFade
ldrb r1, [r0, 0x7]
movs r0, 0x80
ands r0, r1
cmp r0, 0
beq _08112D4A
b _08112FD0
_08112D4A:
ldr r0, _08112D7C @ =gPlayerParty
mov r3, r8
adds r5, r3, r7
lsls r5, 3
adds r5, r6
ldrh r1, [r5, 0x20]
lsls r1, 24
lsrs r1, 24
ldr r2, _08112D80 @ =gPlayerPartyCount
ldrb r2, [r2]
subs r2, 0x1
lsls r2, 24
lsrs r2, 24
ldr r3, _08112D84 @ =CB2_EvolutionSceneLoadGraphics
ldr r4, _08112D88 @ =word_2024E82
ldrh r4, [r4]
str r4, [sp]
bl sub_809D9F0
ldrh r0, [r5, 0x18]
adds r0, 0x1
strh r0, [r5, 0x18]
b _08112FD0
.align 2, 0
_08112D78: .4byte gPaletteFade
_08112D7C: .4byte gPlayerParty
_08112D80: .4byte gPlayerPartyCount
_08112D84: .4byte CB2_EvolutionSceneLoadGraphics
_08112D88: .4byte word_2024E82
_08112D8C:
ldr r0, _08112DC0 @ =gPaletteFade
ldrb r1, [r0, 0x7]
movs r0, 0x80
ands r0, r1
cmp r0, 0
beq _08112D9A
b _08112FD0
_08112D9A:
ldr r1, [r4, 0x4]
ldr r0, _08112DC4 @ =CB2_EvolutionSceneUpdate_0
cmp r1, r0
beq _08112DA4
b _08112FD0
_08112DA4:
bl sub_809FA30
lsls r0, 24
lsrs r6, r0, 24
cmp r6, 0x4
bne _08112DCC
ldr r0, _08112DC8 @ =gTasks
mov r2, r8
adds r1, r2, r7
lsls r1, 3
adds r1, r0
movs r0, 0x9
b _08112FCE
.align 2, 0
_08112DC0: .4byte gPaletteFade
_08112DC4: .4byte CB2_EvolutionSceneUpdate_0
_08112DC8: .4byte gTasks
_08112DCC:
adds r1, r6, 0
adds r1, 0xD
mov r0, r9
bl GetMonData
lsls r0, 16
lsrs r4, r0, 16
adds r0, r4, 0
bl sub_8040A00
cmp r0, 0
beq _08112E24
ldr r0, _08112E10 @ =gUnknown_08400F8C
ldr r3, _08112E14 @ =0x000004cc
adds r0, r3
ldr r0, [r0]
bl get_battle_strings_
ldr r0, _08112E18 @ =gUnknown_03004210
ldr r1, _08112E1C @ =gUnknown_020238CC
movs r2, 0xF
str r2, [sp]
movs r2, 0x90
movs r3, 0x2
bl sub_8002EB0
ldr r1, _08112E20 @ =gTasks
mov r2, r8
adds r0, r2, r7
lsls r0, 3
adds r0, r1
movs r1, 0xB
strh r1, [r0, 0x18]
b _08112FD0
.align 2, 0
_08112E10: .4byte gUnknown_08400F8C
_08112E14: .4byte 0x000004cc
_08112E18: .4byte gUnknown_03004210
_08112E1C: .4byte gUnknown_020238CC
_08112E20: .4byte gTasks
_08112E24:
ldr r1, _08112E80 @ =gUnknown_03004290
movs r0, 0xFD
strb r0, [r1]
movs r0, 0x2
strb r0, [r1, 0x1]
strb r4, [r1, 0x2]
lsrs r0, r4, 8
strb r0, [r1, 0x3]
movs r0, 0xFF
strb r0, [r1, 0x4]
lsls r4, r6, 24
lsrs r4, 24
mov r0, r9
adds r1, r4, 0
bl RemoveMonPPBonus
ldr r0, _08112E84 @ =word_2024E82
ldrh r1, [r0]
mov r0, r9
adds r2, r4, 0
bl SetMonMoveSlot
ldr r0, _08112E88 @ =gUnknown_08400F8C
movs r3, 0xCF
lsls r3, 2
adds r0, r3
ldr r0, [r0]
bl get_battle_strings_
ldr r0, _08112E8C @ =gUnknown_03004210
ldr r1, _08112E90 @ =gUnknown_020238CC
movs r2, 0xF
str r2, [sp]
movs r2, 0x90
movs r3, 0x2
bl sub_8002EB0
ldr r0, _08112E94 @ =gTasks
mov r2, r8
adds r1, r2, r7
lsls r1, 3
adds r1, r0
ldrh r0, [r1, 0x18]
adds r0, 0x1
b _08112FCE
.align 2, 0
_08112E80: .4byte gUnknown_03004290
_08112E84: .4byte word_2024E82
_08112E88: .4byte gUnknown_08400F8C
_08112E8C: .4byte gUnknown_03004210
_08112E90: .4byte gUnknown_020238CC
_08112E94: .4byte gTasks
_08112E98:
ldr r4, _08112ED8 @ =gUnknown_03004210
ldrh r0, [r4, 0x16]
cmp r0, 0
beq _08112EA2
b _08112FD0
_08112EA2:
bl IsSEPlaying
lsls r0, 24
cmp r0, 0
beq _08112EAE
b _08112FD0
_08112EAE:
ldr r0, _08112EDC @ =gUnknown_08400F8C
ldr r0, [r0, 0x1C]
bl get_battle_strings_
ldr r1, _08112EE0 @ =gUnknown_020238CC
movs r0, 0xF
str r0, [sp]
adds r0, r4, 0
movs r2, 0x90
movs r3, 0x2
bl sub_8002EB0
ldr r0, _08112EE4 @ =gTasks
mov r3, r8
adds r1, r3, r7
lsls r1, 3
adds r1, r0
ldrh r0, [r1, 0x18]
adds r0, 0x1
b _08112FCE
.align 2, 0
_08112ED8: .4byte gUnknown_03004210
_08112EDC: .4byte gUnknown_08400F8C
_08112EE0: .4byte gUnknown_020238CC
_08112EE4: .4byte gTasks
_08112EE8:
ldr r4, _08112F28 @ =gUnknown_03004210
ldrh r0, [r4, 0x16]
cmp r0, 0
bne _08112FD0
bl IsSEPlaying
lsls r0, 24
cmp r0, 0
bne _08112FD0
ldr r0, _08112F2C @ =gUnknown_08400F8C
movs r1, 0xD0
lsls r1, 2
adds r0, r1
ldr r0, [r0]
bl get_battle_strings_
ldr r1, _08112F30 @ =gUnknown_020238CC
movs r0, 0xF
str r0, [sp]
adds r0, r4, 0
movs r2, 0x90
movs r3, 0x2
bl sub_8002EB0
ldr r1, _08112F34 @ =gTasks
mov r2, r8
adds r0, r2, r7
lsls r0, 3
adds r0, r1
movs r1, 0x13
strh r1, [r0, 0x8]
b _08112FD0
.align 2, 0
_08112F28: .4byte gUnknown_03004210
_08112F2C: .4byte gUnknown_08400F8C
_08112F30: .4byte gUnknown_020238CC
_08112F34: .4byte gTasks
_08112F38:
ldr r0, _08112F68 @ =gUnknown_08400F8C
ldr r0, [r0, 0x20]
bl get_battle_strings_
ldr r0, _08112F6C @ =gUnknown_03004210
ldr r1, _08112F70 @ =gUnknown_020238CC
movs r2, 0xF
str r2, [sp]
movs r2, 0x90
movs r3, 0x2
bl sub_8002EB0
ldr r1, _08112F74 @ =gTasks
mov r3, r8
adds r0, r3, r7
lsls r0, 3
adds r0, r1
movs r2, 0
movs r1, 0xA
strh r1, [r0, 0x1A]
strh r2, [r0, 0x1C]
movs r1, 0x3
strh r1, [r0, 0x18]
b _08112FD0
.align 2, 0
_08112F68: .4byte gUnknown_08400F8C
_08112F6C: .4byte gUnknown_03004210
_08112F70: .4byte gUnknown_020238CC
_08112F74: .4byte gTasks
_08112F78:
ldr r0, _08112FA0 @ =gUnknown_08400F8C
ldr r0, [r0, 0x24]
bl get_battle_strings_
ldr r0, _08112FA4 @ =gUnknown_03004210
ldr r1, _08112FA8 @ =gUnknown_020238CC
movs r2, 0xF
str r2, [sp]
movs r2, 0x90
movs r3, 0x2
bl sub_8002EB0
ldr r1, _08112FAC @ =gTasks
mov r2, r8
adds r0, r2, r7
lsls r0, 3
adds r0, r1
_08112F9A:
movs r1, 0xE
strh r1, [r0, 0x8]
b _08112FD0
.align 2, 0
_08112FA0: .4byte gUnknown_08400F8C
_08112FA4: .4byte gUnknown_03004210
_08112FA8: .4byte gUnknown_020238CC
_08112FAC: .4byte gTasks
_08112FB0:
ldr r0, _08112FE0 @ =gUnknown_03004210
ldrh r0, [r0, 0x16]
cmp r0, 0
bne _08112FD0
bl IsSEPlaying
lsls r0, 24
cmp r0, 0
bne _08112FD0
ldr r0, _08112FE4 @ =gTasks
mov r3, r8
adds r1, r3, r7
lsls r1, 3
adds r1, r0
movs r0, 0x5
_08112FCE:
strh r0, [r1, 0x18]
_08112FD0:
add sp, 0x18
pop {r3,r4}
mov r8, r3
mov r9, r4
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
_08112FE0: .4byte gUnknown_03004210
_08112FE4: .4byte gTasks
thumb_func_end Task_EvolutionScene
thumb_func_start Task_TradeEvolutionScene
Task_TradeEvolutionScene: @ 8112FE8
push {r4-r7,lr}
mov r7, r9
mov r6, r8
push {r6,r7}
sub sp, 0x18
lsls r0, 24
lsrs r7, r0, 24
ldr r2, _0811302C @ =gTasks
lsls r1, r7, 2
adds r1, r7
lsls r1, 3
adds r1, r2
movs r3, 0xA
ldrsh r0, [r1, r3]
mov r8, r0
movs r3, 0xC
ldrsh r0, [r1, r3]
lsls r0, 16
mov r3, r8
orrs r3, r0
mov r8, r3
movs r3, 0x8
ldrsh r0, [r1, r3]
adds r6, r2, 0
cmp r0, 0x11
bls _08113020
bl _08113B3A
_08113020:
lsls r0, 2
ldr r1, _08113030 @ =_08113034
adds r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_0811302C: .4byte gTasks
_08113030: .4byte _08113034
.align 2, 0
_08113034:
.4byte _0811307C
.4byte _081130B8
.4byte _081130DC
.4byte _0811310C
.4byte _0811314C
.4byte _0811318C
.4byte _081131C8
.4byte _081131F4
.4byte _0811322C
.4byte _08113248
.4byte _08113274
.4byte _081132A8
.4byte _081132F8
.4byte _081133A8
.4byte _0811346C
.4byte _08113490
.4byte _081134F8
.4byte _08113538
_0811307C:
ldr r4, _081130A8 @ =gStringVar4
ldr r1, _081130AC @ =gUnknown_08400C4A
adds r0, r4, 0
bl StringExpandPlaceholders
ldr r0, _081130B0 @ =gUnknown_03004828
ldr r1, [r0]
adds r0, r1, 0x4
adds r1, 0x34
ldrb r2, [r1]
movs r1, 0xF
str r1, [sp]
adds r1, r4, 0
movs r3, 0x2
bl sub_8002EB0
ldr r1, _081130B4 @ =gTasks
lsls r0, r7, 2
adds r0, r7
lsls r0, 3
adds r0, r1
b _08113298
.align 2, 0
_081130A8: .4byte gStringVar4
_081130AC: .4byte gUnknown_08400C4A
_081130B0: .4byte gUnknown_03004828
_081130B4: .4byte gTasks
_081130B8:
ldr r0, _081130D8 @ =gUnknown_03004828
ldr r0, [r0]
ldrh r0, [r0, 0x1A]
cmp r0, 0
beq _081130C6
bl _08113B3A
_081130C6:
lsls r4, r7, 2
adds r4, r7
lsls r4, 3
adds r4, r6
ldrh r0, [r4, 0xE]
movs r1, 0
bl PlayCry1
b _081132E2
.align 2, 0
_081130D8: .4byte gUnknown_03004828
_081130DC:
bl IsCryFinished
lsls r0, 24
cmp r0, 0
bne _081130EA
bl _08113B3A
_081130EA:
ldr r0, _08113104 @ =0x00000179
bl m4aSongNumStop
movs r0, 0xBC
lsls r0, 1
bl PlaySE
ldr r1, _08113108 @ =gTasks
lsls r0, r7, 2
adds r0, r7
lsls r0, 3
adds r0, r1
b _08113298
.align 2, 0
_08113104: .4byte 0x00000179
_08113108: .4byte gTasks
_0811310C:
bl IsSEPlaying
lsls r0, 24
lsrs r5, r0, 24
cmp r5, 0
beq _0811311C
bl _08113B3A
_0811311C:
ldr r0, _08113144 @ =0x00000179
bl PlayBGM
ldr r1, _08113148 @ =gTasks
lsls r0, r7, 2
adds r0, r7
lsls r0, 3
adds r0, r1
ldrh r1, [r0, 0x8]
adds r1, 0x1
strh r1, [r0, 0x8]
str r5, [sp]
movs r0, 0x1C
movs r1, 0x4
movs r2, 0
movs r3, 0x10
bl BeginNormalPaletteFade
bl _08113B3A
.align 2, 0
_08113144: .4byte 0x00000179
_08113148: .4byte gTasks
_0811314C:
ldr r0, _08113180 @ =gPaletteFade
ldrb r1, [r0, 0x7]
movs r0, 0x80
ands r0, r1
cmp r0, 0
beq _0811315C
bl _08113B3A
_0811315C:
movs r1, 0x80
lsls r1, 19
movs r2, 0x9A
lsls r2, 5
adds r0, r2, 0
strh r0, [r1]
movs r0, 0x11
bl sub_8149970
ldr r1, _08113184 @ =gUnknown_02024D1E
strb r0, [r1, 0x2]
ldr r1, _08113188 @ =gTasks
lsls r0, r7, 2
adds r0, r7
lsls r0, 3
adds r0, r1
b _08113298
.align 2, 0
_08113180: .4byte gPaletteFade
_08113184: .4byte gUnknown_02024D1E
_08113188: .4byte gTasks
_0811318C:
ldr r4, _081131C0 @ =gUnknown_02024D1E
ldrb r0, [r4, 0x2]
lsls r1, r0, 2
adds r1, r0
lsls r1, 3
adds r1, r6
ldrb r0, [r1, 0x4]
cmp r0, 0
beq _081131A2
bl _08113B3A
_081131A2:
lsls r0, r7, 2
adds r0, r7
lsls r0, 3
adds r0, r6
ldrh r1, [r0, 0x8]
adds r1, 0x1
strh r1, [r0, 0x8]
ldr r1, _081131C4 @ =0x02014800
movs r0, 0x1
strb r0, [r1, 0x3]
bl sub_8149A90
strb r0, [r4, 0x2]
bl _08113B3A
.align 2, 0
_081131C0: .4byte gUnknown_02024D1E
_081131C4: .4byte 0x02014800
_081131C8:
ldr r4, _081131EC @ =gUnknown_02024D1E
ldrb r0, [r4, 0x2]
lsls r1, r0, 2
adds r1, r0
lsls r1, 3
adds r1, r6
ldrb r0, [r1, 0x4]
cmp r0, 0
beq _081131DE
bl _08113B3A
_081131DE:
ldr r1, _081131F0 @ =0x02014800
ldrb r0, [r1]
ldrb r1, [r1, 0x1]
bl sub_8149E7C
strb r0, [r4, 0x2]
b _08113290
.align 2, 0
_081131EC: .4byte gUnknown_02024D1E
_081131F0: .4byte 0x02014800
_081131F4:
ldr r1, _08113224 @ =0x02014800
ldrb r0, [r1, 0x3]
subs r0, 0x1
strb r0, [r1, 0x3]
lsls r0, 24
cmp r0, 0
beq _08113206
bl _08113B3A
_08113206:
movs r0, 0x3
strb r0, [r1, 0x3]
ldr r0, _08113228 @ =gUnknown_02024D1E
ldrb r1, [r0, 0x2]
lsls r0, r1, 2
adds r0, r1
lsls r0, 3
adds r0, r6
ldrb r0, [r0, 0x4]
cmp r0, 0
beq _08113220
bl _08113B3A
_08113220:
b _08113290
.align 2, 0
_08113224: .4byte 0x02014800
_08113228: .4byte gUnknown_02024D1E
_0811322C:
bl sub_8149B44
ldr r1, _08113240 @ =gUnknown_02024D1E
strb r0, [r1, 0x2]
ldr r1, _08113244 @ =gTasks
lsls r0, r7, 2
adds r0, r7
lsls r0, 3
adds r0, r1
b _08113298
.align 2, 0
_08113240: .4byte gUnknown_02024D1E
_08113244: .4byte gTasks
_08113248:
ldr r5, _08113270 @ =gUnknown_02024D1E
ldrb r0, [r5, 0x2]
lsls r1, r0, 2
adds r1, r0
lsls r1, 3
adds r1, r6
ldrb r0, [r1, 0x4]
cmp r0, 0
beq _0811325E
bl _08113B3A
_0811325E:
lsls r4, r7, 2
adds r4, r7
lsls r4, 3
adds r4, r6
ldrh r0, [r4, 0x10]
bl sub_8149D5C
strb r0, [r5, 0x2]
b _081132E2
.align 2, 0
_08113270: .4byte gUnknown_02024D1E
_08113274:
ldr r0, _081132A4 @ =gUnknown_02024D1E
ldrb r1, [r0, 0x2]
lsls r0, r1, 2
adds r0, r1
lsls r0, 3
adds r0, r6
ldrb r0, [r0, 0x4]
cmp r0, 0
beq _0811328A
bl _08113B3A
_0811328A:
movs r0, 0x21
bl PlaySE
_08113290:
lsls r0, r7, 2
adds r0, r7
lsls r0, 3
adds r0, r6
_08113298:
ldrh r1, [r0, 0x8]
adds r1, 0x1
strh r1, [r0, 0x8]
bl _08113B3A
.align 2, 0
_081132A4: .4byte gUnknown_02024D1E
_081132A8:
bl IsSEPlaying
lsls r0, 24
cmp r0, 0
bne _081132B6
bl _08113B3A
_081132B6:
ldr r0, _081132EC @ =gTasks
lsls r4, r7, 2
adds r4, r7
lsls r4, 3
adds r4, r0
ldrh r0, [r4, 0x10]
movs r1, 0
bl PlayCry1
ldr r0, _081132F0 @ =gPlttBufferUnfaded + 0x40
ldr r1, _081132F4 @ =0x02009000
movs r2, 0x60
bl memcpy
movs r0, 0
str r0, [sp]
movs r0, 0x1
movs r1, 0
movs r2, 0x10
movs r3, 0
bl BeginNormalPaletteFade
_081132E2:
ldrh r0, [r4, 0x8]
adds r0, 0x1
strh r0, [r4, 0x8]
bl _08113B3A
.align 2, 0
_081132EC: .4byte gTasks
_081132F0: .4byte gPlttBufferUnfaded + 0x40
_081132F4: .4byte 0x02009000
_081132F8:
bl IsCryFinished
lsls r0, 24
cmp r0, 0
bne _08113306
bl _08113B3A
_08113306:
ldr r0, _08113390 @ =gPaletteFade
ldrb r1, [r0, 0x7]
movs r0, 0x80
ands r0, r1
cmp r0, 0
beq _08113316
bl _08113B3A
_08113316:
ldr r4, _08113394 @ =gStringVar4
ldr r1, _08113398 @ =gUnknown_08400C60
adds r0, r4, 0
bl StringExpandPlaceholders
ldr r0, _0811339C @ =gUnknown_03004828
ldr r1, [r0]
adds r0, r1, 0x4
adds r1, 0x34
ldrb r2, [r1]
movs r1, 0xF
str r1, [sp]
adds r1, r4, 0
movs r3, 0x2
bl sub_8002EB0
ldr r0, _081133A0 @ =0x00000173
bl PlayFanfare
ldr r2, _081133A4 @ =gTasks
lsls r1, r7, 2
adds r1, r7
lsls r1, 3
adds r4, r1, r2
ldrh r0, [r4, 0x8]
adds r0, 0x1
strh r0, [r4, 0x8]
adds r2, r1
adds r2, 0x10
mov r0, r8
movs r1, 0xB
bl SetMonData
mov r0, r8
bl CalculateMonStats
ldrh r1, [r4, 0xE]
ldrh r2, [r4, 0x10]
mov r0, r8
bl sub_803FB68
ldrh r0, [r4, 0x10]
bl SpeciesToNationalPokedexNum
lsls r0, 16
lsrs r0, 16
movs r1, 0x2
bl sub_8090D90
ldrh r0, [r4, 0x10]
bl SpeciesToNationalPokedexNum
lsls r0, 16
lsrs r0, 16
movs r1, 0x3
bl sub_8090D90
movs r0, 0xE
bl sav12_xor_increment
b _08113B3A
.align 2, 0
_08113390: .4byte gPaletteFade
_08113394: .4byte gStringVar4
_08113398: .4byte gUnknown_08400C60
_0811339C: .4byte gUnknown_03004828
_081133A0: .4byte 0x00000173
_081133A4: .4byte gTasks
_081133A8:
ldr r0, _08113410 @ =gUnknown_03004828
ldr r0, [r0]
ldrh r0, [r0, 0x1A]
cmp r0, 0
beq _081133B4
b _08113B3A
_081133B4:
bl IsFanfareTaskInactive
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
beq _081133C2
b _08113B3A
_081133C2:
ldr r1, _08113414 @ =gTasks
lsls r4, r7, 2
adds r0, r4, r7
lsls r0, 3
adds r5, r0, r1
ldrb r1, [r5, 0x14]
mov r0, r8
bl sub_803B7C8
lsls r0, 16
lsrs r6, r0, 16
mov r9, r4
cmp r6, 0
beq _08113434
movs r3, 0x1E
ldrsh r2, [r5, r3]
cmp r2, 0
bne _08113434
ldrh r1, [r5, 0x12]
movs r0, 0x80
orrs r0, r1
strh r0, [r5, 0x12]
strh r2, [r5, 0x14]
strh r2, [r5, 0x18]
mov r0, r8
movs r1, 0x2
add r2, sp, 0x4
bl GetMonData
ldr r0, _08113418 @ =gUnknown_030041C0
add r1, sp, 0x4
bl StringCopy10
ldr r0, _0811341C @ =0x0000ffff
cmp r6, r0
bne _08113420
movs r0, 0x11
strh r0, [r5, 0x8]
b _08113B3A
.align 2, 0
_08113410: .4byte gUnknown_03004828
_08113414: .4byte gTasks
_08113418: .4byte gUnknown_030041C0
_0811341C: .4byte 0x0000ffff
_08113420:
ldr r0, _08113430 @ =0x0000fffe
cmp r6, r0
bne _08113428
b _08113B3A
_08113428:
movs r0, 0xF
strh r0, [r5, 0x8]
b _08113B3A
.align 2, 0
_08113430: .4byte 0x0000fffe
_08113434:
ldr r0, _0811345C @ =0x00000179
bl PlayBGM
ldr r0, _08113460 @ =gUnknown_03004828
ldr r2, [r0]
adds r0, r2, 0x4
ldr r1, _08113464 @ =gOtherText_LinkStandby2
adds r2, 0x34
ldrb r2, [r2]
movs r3, 0xF
str r3, [sp]
movs r3, 0x2
bl sub_8002EB0
ldr r0, _08113468 @ =gTasks
mov r2, r9
adds r1, r2, r7
lsls r1, 3
adds r1, r0
b _081134DC
.align 2, 0
_0811345C: .4byte 0x00000179
_08113460: .4byte gUnknown_03004828
_08113464: .4byte gOtherText_LinkStandby2
_08113468: .4byte gTasks
_0811346C:
ldr r0, _08113488 @ =gUnknown_03004828
ldr r0, [r0]
ldrh r0, [r0, 0x1A]
cmp r0, 0
beq _08113478
b _08113B3A
_08113478:
adds r0, r7, 0
bl DestroyTask
ldr r0, _0811348C @ =gUnknown_03005E94
ldr r0, [r0]
bl SetMainCallback2
b _08113B3A
.align 2, 0
_08113488: .4byte gUnknown_03004828
_0811348C: .4byte gUnknown_03005E94
_08113490:
ldr r4, _081134E4 @ =gUnknown_03004828
ldr r0, [r4]
ldrh r0, [r0, 0x1A]
cmp r0, 0
beq _0811349C
b _08113B3A
_0811349C:
bl IsSEPlaying
lsls r0, 24
cmp r0, 0
beq _081134A8
b _08113B3A
_081134A8:
bl sub_8024CEC
ldr r0, _081134E8 @ =0x0000016f
bl PlayFanfare
ldr r0, _081134EC @ =gUnknown_08400F8C
ldr r0, [r0, 0xC]
bl get_battle_strings_
ldr r2, [r4]
adds r0, r2, 0x4
ldr r1, _081134F0 @ =gUnknown_020238CC
adds r2, 0x34
ldrb r2, [r2]
movs r3, 0xF
str r3, [sp]
movs r3, 0x2
bl sub_8002EB0
ldr r0, _081134F4 @ =gTasks
lsls r1, r7, 2
adds r1, r7
lsls r1, 3
adds r1, r0
movs r0, 0x40
strh r0, [r1, 0x14]
_081134DC:
ldrh r0, [r1, 0x8]
adds r0, 0x1
strh r0, [r1, 0x8]
b _08113B3A
.align 2, 0
_081134E4: .4byte gUnknown_03004828
_081134E8: .4byte 0x0000016f
_081134EC: .4byte gUnknown_08400F8C
_081134F0: .4byte gUnknown_020238CC
_081134F4: .4byte gTasks
_081134F8:
ldr r0, _08113530 @ =gUnknown_03004828
ldr r0, [r0]
ldrh r0, [r0, 0x1A]
cmp r0, 0
beq _08113504
b _08113B3A
_08113504:
bl IsFanfareTaskInactive
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
beq _08113512
b _08113B3A
_08113512:
ldr r0, _08113534 @ =gTasks
lsls r1, r7, 2
adds r1, r7
lsls r1, 3
adds r1, r0
ldrh r0, [r1, 0x14]
subs r0, 0x1
strh r0, [r1, 0x14]
lsls r0, 16
cmp r0, 0
beq _0811352A
b _08113B3A
_0811352A:
movs r0, 0xD
strh r0, [r1, 0x8]
b _08113B3A
.align 2, 0
_08113530: .4byte gUnknown_03004828
_08113534: .4byte gTasks
_08113538:
lsls r1, r7, 2
adds r0, r1, r7
lsls r0, 3
adds r0, r6
movs r3, 0x18
ldrsh r0, [r0, r3]
mov r9, r1
cmp r0, 0xB
bls _0811354C
b _08113B3A
_0811354C:
lsls r0, 2
ldr r1, _08113558 @ =_0811355C
adds r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_08113558: .4byte _0811355C
.align 2, 0
_0811355C:
.4byte _0811358C
.4byte _081135E4
.4byte _08113638
.4byte _08113682
.4byte _0811371C
.4byte _0811387C
.4byte _081138CC
.4byte _081139E8
.4byte _08113A3C
.4byte _08113A90
.4byte _08113AD8
.4byte _08113B18
_0811358C:
ldr r4, _081135D4 @ =gUnknown_03004828
ldr r0, [r4]
ldrh r0, [r0, 0x1A]
cmp r0, 0
beq _08113598
b _08113B3A
_08113598:
bl IsSEPlaying
lsls r0, 24
cmp r0, 0
beq _081135A4
b _08113B3A
_081135A4:
bl sub_8024CEC
ldr r0, _081135D8 @ =gUnknown_08400F8C
ldr r0, [r0, 0x10]
bl get_battle_strings_
ldr r2, [r4]
adds r0, r2, 0x4
ldr r1, _081135DC @ =gUnknown_020238CC
adds r2, 0x34
ldrb r2, [r2]
movs r3, 0xF
str r3, [sp]
movs r3, 0x2
bl sub_8002EB0
ldr r0, _081135E0 @ =gTasks
mov r2, r9
adds r1, r2, r7
lsls r1, 3
adds r1, r0
ldrh r0, [r1, 0x18]
adds r0, 0x1
b _08113B38
.align 2, 0
_081135D4: .4byte gUnknown_03004828
_081135D8: .4byte gUnknown_08400F8C
_081135DC: .4byte gUnknown_020238CC
_081135E0: .4byte gTasks
_081135E4:
ldr r4, _08113628 @ =gUnknown_03004828
ldr r0, [r4]
ldrh r0, [r0, 0x1A]
cmp r0, 0
beq _081135F0
b _08113B3A
_081135F0:
bl IsSEPlaying
lsls r0, 24
cmp r0, 0
beq _081135FC
b _08113B3A
_081135FC:
ldr r0, _0811362C @ =gUnknown_08400F8C
ldr r0, [r0, 0x14]
bl get_battle_strings_
ldr r2, [r4]
adds r0, r2, 0x4
ldr r1, _08113630 @ =gUnknown_020238CC
adds r2, 0x34
ldrb r2, [r2]
movs r3, 0xF
str r3, [sp]
movs r3, 0x2
bl sub_8002EB0
ldr r0, _08113634 @ =gTasks
mov r3, r9
adds r1, r3, r7
lsls r1, 3
adds r1, r0
ldrh r0, [r1, 0x18]
adds r0, 0x1
b _08113B38
.align 2, 0
_08113628: .4byte gUnknown_03004828
_0811362C: .4byte gUnknown_08400F8C
_08113630: .4byte gUnknown_020238CC
_08113634: .4byte gTasks
_08113638:
ldr r4, _081136FC @ =gUnknown_03004828
ldr r0, [r4]
ldrh r0, [r0, 0x1A]
cmp r0, 0
beq _08113644
b _08113B3A
_08113644:
bl IsSEPlaying
lsls r0, 24
cmp r0, 0
bne _08113682
ldr r0, _08113700 @ =gUnknown_08400F8C
ldr r0, [r0, 0x18]
bl get_battle_strings_
ldr r2, [r4]
adds r0, r2, 0x4
ldr r1, _08113704 @ =gUnknown_020238CC
adds r2, 0x34
ldrb r2, [r2]
movs r3, 0xF
str r3, [sp]
movs r3, 0x2
bl sub_8002EB0
ldr r0, _08113708 @ =gTasks
mov r2, r9
adds r1, r2, r7
lsls r1, 3
adds r1, r0
movs r0, 0x5
strh r0, [r1, 0x1A]
movs r0, 0x9
strh r0, [r1, 0x1C]
ldrh r0, [r1, 0x18]
adds r0, 0x1
strh r0, [r1, 0x18]
_08113682:
ldr r5, _081136FC @ =gUnknown_03004828
ldr r0, [r5]
ldrh r0, [r0, 0x1A]
cmp r0, 0
beq _0811368E
b _08113B3A
_0811368E:
bl IsSEPlaying
lsls r0, 24
lsrs r6, r0, 24
cmp r6, 0
beq _0811369C
b _08113B3A
_0811369C:
ldr r0, [r5]
adds r0, 0x4
movs r1, 0xD
str r1, [sp]
movs r1, 0x18
movs r2, 0x8
movs r3, 0x1D
bl DrawTextWindow
ldr r4, _0811370C @ =gUnknown_02024D1E
strb r6, [r4, 0x1]
ldr r2, [r5]
adds r0, r2, 0x4
ldr r1, _08113710 @ =gOtherText_YesNoAndPlayer
adds r2, 0x34
ldrb r2, [r2]
adds r2, 0x80
movs r3, 0x9
str r3, [sp]
movs r3, 0x19
bl InitWindow
ldr r0, [r5]
adds r0, 0x4
bl sub_8002F44
ldr r1, _08113714 @ =0x0000ffff
ldr r3, _08113718 @ =0x00002d9f
movs r0, 0x20
str r0, [sp]
movs r0, 0
movs r2, 0xC
bl sub_814A5C0
bl sub_81150D8
ldr r0, _08113708 @ =gTasks
mov r3, r9
adds r1, r3, r7
lsls r1, 3
adds r1, r0
ldrh r0, [r1, 0x18]
adds r0, 0x1
movs r2, 0
strh r0, [r1, 0x18]
strb r2, [r4, 0x1]
b _08113B3A
.align 2, 0
_081136FC: .4byte gUnknown_03004828
_08113700: .4byte gUnknown_08400F8C
_08113704: .4byte gUnknown_020238CC
_08113708: .4byte gTasks
_0811370C: .4byte gUnknown_02024D1E
_08113710: .4byte gOtherText_YesNoAndPlayer
_08113714: .4byte 0x0000ffff
_08113718: .4byte 0x00002d9f
_0811371C:
ldr r0, _081137CC @ =gMain
ldrh r1, [r0, 0x2E]
movs r0, 0x40
ands r0, r1
cmp r0, 0
beq _08113742
ldr r4, _081137D0 @ =gUnknown_02024D1E
ldrb r0, [r4, 0x1]
cmp r0, 0
beq _08113742
movs r0, 0x5
bl PlaySE
bl HBlankCB_TradeEvolutionScene
movs r0, 0
strb r0, [r4, 0x1]
bl sub_81150D8
_08113742:
ldr r0, _081137CC @ =gMain
ldrh r1, [r0, 0x2E]
movs r0, 0x80
ands r0, r1
cmp r0, 0
beq _08113768
ldr r4, _081137D0 @ =gUnknown_02024D1E
ldrb r0, [r4, 0x1]
cmp r0, 0
bne _08113768
movs r0, 0x5
bl PlaySE
bl HBlankCB_TradeEvolutionScene
movs r0, 0x1
strb r0, [r4, 0x1]
bl sub_81150D8
_08113768:
ldr r0, _081137CC @ =gMain
ldrh r1, [r0, 0x2E]
movs r0, 0x1
ands r0, r1
cmp r0, 0
beq _0811380A
ldr r4, _081137D4 @ =gUnknown_03004828
ldr r0, [r4]
adds r0, 0x4
movs r1, 0xD
str r1, [sp]
movs r1, 0x18
movs r2, 0x8
movs r3, 0x1D
bl ZeroFillWindowRect
bl sub_814A7FC
ldr r0, _081137D8 @ =gUnknown_08400F8C
movs r1, 0x92
lsls r1, 3
adds r0, r1
ldr r0, [r0]
bl get_battle_strings_
ldr r2, [r4]
adds r0, r2, 0x4
ldr r1, _081137DC @ =gUnknown_020238CC
adds r2, 0x34
ldrb r2, [r2]
movs r3, 0xF
str r3, [sp]
movs r3, 0x2
bl sub_8002EB0
movs r0, 0x5
bl PlaySE
ldr r0, _081137D0 @ =gUnknown_02024D1E
ldrb r2, [r0, 0x1]
cmp r2, 0
beq _081137E4
ldr r0, _081137E0 @ =gTasks
mov r2, r9
adds r1, r2, r7
lsls r1, 3
adds r1, r0
ldrh r0, [r1, 0x1C]
strh r0, [r1, 0x18]
b _0811380A
.align 2, 0
_081137CC: .4byte gMain
_081137D0: .4byte gUnknown_02024D1E
_081137D4: .4byte gUnknown_03004828
_081137D8: .4byte gUnknown_08400F8C
_081137DC: .4byte gUnknown_020238CC
_081137E0: .4byte gTasks
_081137E4:
ldr r0, _08113868 @ =gTasks
mov r3, r9
adds r1, r3, r7
lsls r1, 3
adds r1, r0
ldrh r0, [r1, 0x1A]
strh r0, [r1, 0x18]
lsls r0, 16
asrs r0, 16
cmp r0, 0x5
bne _0811380A
movs r0, 0x1
negs r0, r0
str r2, [sp]
movs r1, 0
movs r2, 0
movs r3, 0x10
bl BeginNormalPaletteFade
_0811380A:
ldr r0, _0811386C @ =gMain
ldrh r1, [r0, 0x2E]
movs r0, 0x2
ands r0, r1
cmp r0, 0
bne _08113818
b _08113B3A
_08113818:
ldr r4, _08113870 @ =gUnknown_03004828
ldr r0, [r4]
adds r0, 0x4
movs r1, 0xD
str r1, [sp]
movs r1, 0x18
movs r2, 0x8
movs r3, 0x1D
bl ZeroFillWindowRect
bl sub_814A7FC
ldr r0, _08113874 @ =gUnknown_08400F8C
movs r1, 0x92
lsls r1, 3
adds r0, r1
ldr r0, [r0]
bl get_battle_strings_
ldr r2, [r4]
adds r0, r2, 0x4
ldr r1, _08113878 @ =gUnknown_020238CC
adds r2, 0x34
ldrb r2, [r2]
movs r3, 0xF
str r3, [sp]
movs r3, 0x2
bl sub_8002EB0
movs r0, 0x5
bl PlaySE
ldr r1, _08113868 @ =gTasks
mov r2, r9
adds r0, r2, r7
lsls r0, 3
adds r0, r1
ldrh r1, [r0, 0x1C]
strh r1, [r0, 0x18]
b _08113B3A
.align 2, 0
_08113868: .4byte gTasks
_0811386C: .4byte gMain
_08113870: .4byte gUnknown_03004828
_08113874: .4byte gUnknown_08400F8C
_08113878: .4byte gUnknown_020238CC
_0811387C:
ldr r0, _081138B8 @ =gPaletteFade
ldrb r1, [r0, 0x7]
movs r0, 0x80
ands r0, r1
cmp r0, 0
beq _0811388A
b _08113B3A
_0811388A:
ldr r0, _081138BC @ =gPlayerParty
mov r3, r9
adds r5, r3, r7
lsls r5, 3
adds r5, r6
ldrh r1, [r5, 0x20]
lsls r1, 24
lsrs r1, 24
ldr r2, _081138C0 @ =gPlayerPartyCount
ldrb r2, [r2]
subs r2, 0x1
lsls r2, 24
lsrs r2, 24
ldr r3, _081138C4 @ =CB2_TradeEvolutionSceneLoadGraphics
ldr r4, _081138C8 @ =word_2024E82
ldrh r4, [r4]
str r4, [sp]
bl sub_809D9F0
ldrh r0, [r5, 0x18]
adds r0, 0x1
strh r0, [r5, 0x18]
b _08113B3A
.align 2, 0
_081138B8: .4byte gPaletteFade
_081138BC: .4byte gPlayerParty
_081138C0: .4byte gPlayerPartyCount
_081138C4: .4byte CB2_TradeEvolutionSceneLoadGraphics
_081138C8: .4byte word_2024E82
_081138CC:
ldr r0, _08113900 @ =gPaletteFade
ldrb r1, [r0, 0x7]
movs r0, 0x80
ands r0, r1
cmp r0, 0
beq _081138DA
b _08113B3A
_081138DA:
ldr r0, _08113904 @ =gMain
ldr r1, [r0, 0x4]
ldr r0, _08113908 @ =CB2_EvolutionSceneUpdate_1
cmp r1, r0
beq _081138E6
b _08113B3A
_081138E6:
bl sub_809FA30
lsls r0, 24
lsrs r6, r0, 24
cmp r6, 0x4
bne _08113910
ldr r0, _0811390C @ =gTasks
mov r2, r9
adds r1, r2, r7
lsls r1, 3
adds r1, r0
movs r0, 0x9
b _08113B38
.align 2, 0
_08113900: .4byte gPaletteFade
_08113904: .4byte gMain
_08113908: .4byte CB2_EvolutionSceneUpdate_1
_0811390C: .4byte gTasks
_08113910:
adds r1, r6, 0
adds r1, 0xD
mov r0, r8
bl GetMonData
lsls r0, 16
lsrs r4, r0, 16
adds r0, r4, 0
bl sub_8040A00
cmp r0, 0
beq _08113970
ldr r0, _0811395C @ =gUnknown_08400F8C
ldr r3, _08113960 @ =0x000004cc
adds r0, r3
ldr r0, [r0]
bl get_battle_strings_
ldr r0, _08113964 @ =gUnknown_03004828
ldr r2, [r0]
adds r0, r2, 0x4
ldr r1, _08113968 @ =gUnknown_020238CC
adds r2, 0x34
ldrb r2, [r2]
movs r3, 0xF
str r3, [sp]
movs r3, 0x2
bl sub_8002EB0
ldr r1, _0811396C @ =gTasks
mov r2, r9
adds r0, r2, r7
lsls r0, 3
adds r0, r1
movs r1, 0xB
strh r1, [r0, 0x18]
b _08113B3A
.align 2, 0
_0811395C: .4byte gUnknown_08400F8C
_08113960: .4byte 0x000004cc
_08113964: .4byte gUnknown_03004828
_08113968: .4byte gUnknown_020238CC
_0811396C: .4byte gTasks
_08113970:
ldr r1, _081139D0 @ =gUnknown_03004290
movs r0, 0xFD
strb r0, [r1]
movs r0, 0x2
strb r0, [r1, 0x1]
strb r4, [r1, 0x2]
lsrs r0, r4, 8
strb r0, [r1, 0x3]
movs r0, 0xFF
strb r0, [r1, 0x4]
lsls r4, r6, 24
lsrs r4, 24
mov r0, r8
adds r1, r4, 0
bl RemoveMonPPBonus
ldr r0, _081139D4 @ =word_2024E82
ldrh r1, [r0]
mov r0, r8
adds r2, r4, 0
bl SetMonMoveSlot
ldr r0, _081139D8 @ =gUnknown_08400F8C
movs r3, 0xCF
lsls r3, 2
adds r0, r3
ldr r0, [r0]
bl get_battle_strings_
ldr r0, _081139DC @ =gUnknown_03004828
ldr r2, [r0]
adds r0, r2, 0x4
ldr r1, _081139E0 @ =gUnknown_020238CC
adds r2, 0x34
ldrb r2, [r2]
movs r3, 0xF
str r3, [sp]
movs r3, 0x2
bl sub_8002EB0
ldr r0, _081139E4 @ =gTasks
mov r2, r9
adds r1, r2, r7
lsls r1, 3
adds r1, r0
ldrh r0, [r1, 0x18]
adds r0, 0x1
b _08113B38
.align 2, 0
_081139D0: .4byte gUnknown_03004290
_081139D4: .4byte word_2024E82
_081139D8: .4byte gUnknown_08400F8C
_081139DC: .4byte gUnknown_03004828
_081139E0: .4byte gUnknown_020238CC
_081139E4: .4byte gTasks
_081139E8:
ldr r4, _08113A2C @ =gUnknown_03004828
ldr r0, [r4]
ldrh r0, [r0, 0x1A]
cmp r0, 0
beq _081139F4
b _08113B3A
_081139F4:
bl IsSEPlaying
lsls r0, 24
cmp r0, 0
beq _08113A00
b _08113B3A
_08113A00:
ldr r0, _08113A30 @ =gUnknown_08400F8C
ldr r0, [r0, 0x1C]
bl get_battle_strings_
ldr r2, [r4]
adds r0, r2, 0x4
ldr r1, _08113A34 @ =gUnknown_020238CC
adds r2, 0x34
ldrb r2, [r2]
movs r3, 0xF
str r3, [sp]
movs r3, 0x2
bl sub_8002EB0
ldr r0, _08113A38 @ =gTasks
mov r3, r9
adds r1, r3, r7
lsls r1, 3
adds r1, r0
ldrh r0, [r1, 0x18]
adds r0, 0x1
b _08113B38
.align 2, 0
_08113A2C: .4byte gUnknown_03004828
_08113A30: .4byte gUnknown_08400F8C
_08113A34: .4byte gUnknown_020238CC
_08113A38: .4byte gTasks
_08113A3C:
ldr r4, _08113A80 @ =gUnknown_03004828
ldr r0, [r4]
ldrh r0, [r0, 0x1A]
cmp r0, 0
bne _08113B3A
bl IsSEPlaying
lsls r0, 24
cmp r0, 0
bne _08113B3A
ldr r0, _08113A84 @ =gUnknown_08400F8C
movs r1, 0xD0
lsls r1, 2
adds r0, r1
ldr r0, [r0]
bl get_battle_strings_
ldr r2, [r4]
adds r0, r2, 0x4
ldr r1, _08113A88 @ =gUnknown_020238CC
adds r2, 0x34
ldrb r2, [r2]
movs r4, 0xF
str r4, [sp]
movs r3, 0x2
bl sub_8002EB0
ldr r1, _08113A8C @ =gTasks
mov r2, r9
adds r0, r2, r7
lsls r0, 3
adds r0, r1
strh r4, [r0, 0x8]
b _08113B3A
.align 2, 0
_08113A80: .4byte gUnknown_03004828
_08113A84: .4byte gUnknown_08400F8C
_08113A88: .4byte gUnknown_020238CC
_08113A8C: .4byte gTasks
_08113A90:
ldr r0, _08113AC8 @ =gUnknown_08400F8C
ldr r0, [r0, 0x20]
bl get_battle_strings_
ldr r0, _08113ACC @ =gUnknown_03004828
ldr r2, [r0]
adds r0, r2, 0x4
ldr r1, _08113AD0 @ =gUnknown_020238CC
adds r2, 0x34
ldrb r2, [r2]
movs r3, 0xF
str r3, [sp]
movs r3, 0x2
bl sub_8002EB0
ldr r1, _08113AD4 @ =gTasks
mov r3, r9
adds r0, r3, r7
lsls r0, 3
adds r0, r1
movs r2, 0
movs r1, 0xA
strh r1, [r0, 0x1A]
strh r2, [r0, 0x1C]
movs r1, 0x3
strh r1, [r0, 0x18]
b _08113B3A
.align 2, 0
_08113AC8: .4byte gUnknown_08400F8C
_08113ACC: .4byte gUnknown_03004828
_08113AD0: .4byte gUnknown_020238CC
_08113AD4: .4byte gTasks
_08113AD8:
ldr r0, _08113B08 @ =gUnknown_08400F8C
ldr r0, [r0, 0x24]
bl get_battle_strings_
ldr r0, _08113B0C @ =gUnknown_03004828
ldr r2, [r0]
adds r0, r2, 0x4
ldr r1, _08113B10 @ =gUnknown_020238CC
adds r2, 0x34
ldrb r2, [r2]
movs r3, 0xF
str r3, [sp]
movs r3, 0x2
bl sub_8002EB0
ldr r1, _08113B14 @ =gTasks
mov r2, r9
adds r0, r2, r7
lsls r0, 3
adds r0, r1
movs r1, 0xD
strh r1, [r0, 0x8]
b _08113B3A
.align 2, 0
_08113B08: .4byte gUnknown_08400F8C
_08113B0C: .4byte gUnknown_03004828
_08113B10: .4byte gUnknown_020238CC
_08113B14: .4byte gTasks
_08113B18:
ldr r0, _08113B48 @ =gUnknown_03004828
ldr r0, [r0]
ldrh r0, [r0, 0x1A]
cmp r0, 0
bne _08113B3A
bl IsSEPlaying
lsls r0, 24
cmp r0, 0
bne _08113B3A
ldr r0, _08113B4C @ =gTasks
mov r3, r9
adds r1, r3, r7
lsls r1, 3
adds r1, r0
movs r0, 0x5
_08113B38:
strh r0, [r1, 0x18]
_08113B3A:
add sp, 0x18
pop {r3,r4}
mov r8, r3
mov r9, r4
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
_08113B48: .4byte gUnknown_03004828
_08113B4C: .4byte gTasks
thumb_func_end Task_TradeEvolutionScene
thumb_func_start unref_sub_8113B50
unref_sub_8113B50: @ 8113B50
push {r4-r7,lr}
mov r7, r10
mov r6, r9
mov r5, r8
push {r5-r7}
sub sp, 0x3C
str r0, [sp]
str r1, [sp, 0x4]
movs r0, 0
str r0, [sp, 0xC]
movs r1, 0
str r1, [sp, 0x10]
movs r2, 0
str r2, [sp, 0x8]
ldr r3, _08113C60 @ =0x02014800
mov r12, r3
ldr r4, _08113C64 @ =0x000018c4
add r4, r12
mov r10, r4
ldr r5, _08113C68 @ =0x000020c4
add r5, r12
mov r8, r5
_08113B7C:
adds r0, r3, 0
adds r0, 0x84
ldr r1, [sp, 0x8]
adds r0, r1, r0
strb r2, [r0]
adds r0, r3, 0x4
adds r0, r1, r0
strb r2, [r0]
ldr r4, _08113C6C @ =0x02014844
adds r0, r1, r4
strb r2, [r0]
movs r6, 0
lsls r1, 5
mov r9, r1
ldr r5, [sp, 0x8]
lsls r4, r5, 6
_08113B9C:
mov r0, r9
adds r1, r6, r0
ldr r5, _08113C70 @ =0x020158c4
adds r0, r1, r5
strb r2, [r0]
mov r5, r10
adds r0, r1, r5
strb r2, [r0]
mov r5, r8
adds r0, r1, r5
strb r2, [r0]
ldr r5, _08113C74 @ =0x020170c4
adds r0, r1, r5
strb r2, [r0]
adds r7, r3, 0
adds r7, 0xC4
adds r0, r1, r7
strb r2, [r0]
ldr r5, _08113C78 @ =0x000008c4
adds r0, r3, r5
adds r0, r1, r0
strb r2, [r0]
ldr r5, _08113C7C @ =0x000030c4
adds r0, r3, r5
adds r0, r1, r0
strb r2, [r0]
ldr r5, _08113C80 @ =0x000038c4
adds r0, r3, r5
adds r1, r0
strb r2, [r1]
lsls r1, r6, 1
adds r1, r4
ldr r5, _08113C84 @ =0x000060c4
adds r0, r3, r5
adds r0, r1, r0
strh r2, [r0]
ldr r5, _08113C88 @ =0x000070c4
adds r0, r3, r5
adds r0, r1, r0
strh r2, [r0]
ldr r5, _08113C8C @ =0x000080c4
adds r0, r3, r5
adds r0, r1, r0
strh r2, [r0]
ldr r5, _08113C90 @ =0x000090c4
adds r0, r3, r5
adds r1, r0
strh r2, [r1]
adds r6, 0x1
cmp r6, 0x1F
ble _08113B9C
ldr r0, [sp, 0x8]
adds r0, 0x1
str r0, [sp, 0x8]
cmp r0, 0x3F
ble _08113B7C
ldr r1, _08113C94 @ =0x0000a0c4
add r1, r12
movs r0, 0x40
strb r0, [r1]
movs r1, 0
mov r8, r1
movs r2, 0
str r2, [sp, 0x8]
movs r3, 0x80
lsls r3, 5
adds r3, r7
mov r12, r3
movs r4, 0xC0
lsls r4, 5
adds r4, r7
mov r9, r4
movs r5, 0
adds r4, r7, 0
subs r4, 0xC0
_08113C32:
movs r3, 0
ldr r2, [sp]
add r2, r8
movs r6, 0
ldr r0, [sp, 0x8]
adds r0, 0x1
str r0, [sp, 0x30]
ldr r1, [sp, 0x8]
lsls r1, 7
mov r10, r1
movs r7, 0x1
negs r7, r7
_08113C4A:
asrs r0, r6, 1
lsls r0, 2
add r0, r10
ldr r1, _08113C98 @ =0x020188c4
adds r0, r1
str r2, [r0]
cmp r3, 0
beq _08113C9C
cmp r3, 0x1
beq _08113CC6
b _08113CF4
.align 2, 0
_08113C60: .4byte 0x02014800
_08113C64: .4byte 0x000018c4
_08113C68: .4byte 0x000020c4
_08113C6C: .4byte 0x02014844
_08113C70: .4byte 0x020158c4
_08113C74: .4byte 0x020170c4
_08113C78: .4byte 0x000008c4
_08113C7C: .4byte 0x000030c4
_08113C80: .4byte 0x000038c4
_08113C84: .4byte 0x000060c4
_08113C88: .4byte 0x000070c4
_08113C8C: .4byte 0x000080c4
_08113C90: .4byte 0x000090c4
_08113C94: .4byte 0x0000a0c4
_08113C98: .4byte 0x020188c4
_08113C9C:
movs r0, 0x1
ands r0, r6
cmp r0, 0
beq _08113CAA
cmp r0, 0x1
beq _08113CB0
b _08113CF4
_08113CAA:
ldrb r1, [r2]
movs r0, 0xF
b _08113CB4
_08113CB0:
ldrb r1, [r2]
movs r0, 0xF0
_08113CB4:
ands r0, r1
cmp r0, 0
beq _08113CF4
ldrb r0, [r4]
adds r0, r5
add r0, r12
strb r6, [r0]
movs r3, 0x1
b _08113CF4
_08113CC6:
adds r0, r6, 0
ands r0, r3
cmp r0, 0
beq _08113CD4
cmp r0, 0x1
beq _08113CDA
b _08113CF4
_08113CD4:
ldrb r1, [r2]
movs r0, 0xF
b _08113CDE
_08113CDA:
ldrb r1, [r2]
movs r0, 0xF0
_08113CDE:
ands r0, r1
cmp r0, 0
bne _08113CF4
ldrb r0, [r4]
adds r0, r5
add r0, r9
strb r7, [r0]
ldrb r0, [r4]
adds r0, 0x1
strb r0, [r4]
movs r3, 0
_08113CF4:
adds r0, r6, 0x1
movs r1, 0x7
ands r0, r1
cmp r0, 0
bne _08113D02
adds r2, 0x1D
b _08113D0C
_08113D02:
movs r0, 0x1
ands r0, r6
cmp r0, 0
beq _08113D0C
adds r2, 0x1
_08113D0C:
adds r7, 0x1
adds r6, 0x1
cmp r6, 0x3F
ble _08113C4A
cmp r3, 0
beq _08113D26
ldrb r0, [r4]
adds r0, r5
add r0, r9
strb r6, [r0]
ldrb r0, [r4]
adds r0, 0x1
strb r0, [r4]
_08113D26:
movs r0, 0x7
ldr r2, [sp, 0x30]
ands r2, r0
cmp r2, 0
bne _08113D36
movs r3, 0xE4
add r8, r3
b _08113D3A
_08113D36:
movs r0, 0x4
add r8, r0
_08113D3A:
adds r5, 0x20
adds r4, 0x1
ldr r1, [sp, 0x8]
adds r1, 0x1
str r1, [sp, 0x8]
cmp r1, 0x3F
bgt _08113D4A
b _08113C32
_08113D4A:
movs r2, 0
mov r8, r2
movs r3, 0
str r3, [sp, 0x8]
ldr r0, _08113D84 @ =0x02014844
movs r4, 0x82
lsls r4, 6
adds r4, r0
mov r10, r4
movs r5, 0xA2
lsls r5, 6
adds r7, r0, r5
movs r5, 0
adds r4, r0, 0
movs r0, 0x1
mov r9, r0
_08113D6A:
movs r3, 0
ldr r2, [sp, 0x4]
add r2, r8
movs r6, 0
ldr r1, [sp, 0x8]
adds r1, 0x1
str r1, [sp, 0x30]
_08113D78:
cmp r3, 0
beq _08113D88
cmp r3, 0x1
beq _08113DB4
b _08113DE4
.align 2, 0
_08113D84: .4byte 0x02014844
_08113D88:
adds r0, r6, 0
mov r1, r9
ands r0, r1
cmp r0, 0
beq _08113D98
cmp r0, 0x1
beq _08113D9E
b _08113DE4
_08113D98:
ldrb r1, [r2]
movs r0, 0xF
b _08113DA2
_08113D9E:
ldrb r1, [r2]
movs r0, 0xF0
_08113DA2:
ands r0, r1
cmp r0, 0
beq _08113DE4
ldrb r0, [r4]
adds r0, r5
add r0, r10
strb r6, [r0]
movs r3, 0x1
b _08113DE4
_08113DB4:
adds r0, r6, 0
ands r0, r3
cmp r0, 0
beq _08113DC2
cmp r0, 0x1
beq _08113DC8
b _08113DE4
_08113DC2:
ldrb r1, [r2]
movs r0, 0xF
b _08113DCC
_08113DC8:
ldrb r1, [r2]
movs r0, 0xF0
_08113DCC:
ands r0, r1
cmp r0, 0
bne _08113DE4
ldrb r0, [r4]
adds r0, r5
adds r0, r7
subs r1, r6, 0x1
strb r1, [r0]
ldrb r0, [r4]
adds r0, 0x1
strb r0, [r4]
movs r3, 0
_08113DE4:
adds r1, r6, 0x1
movs r0, 0x7
ands r0, r1
cmp r0, 0
bne _08113DF2
adds r2, 0x1D
b _08113DFC
_08113DF2:
mov r0, r9
ands r6, r0
cmp r6, 0
beq _08113DFC
adds r2, 0x1
_08113DFC:
adds r6, r1, 0
cmp r6, 0x3F
ble _08113D78
cmp r3, 0
beq _08113E14
ldrb r0, [r4]
adds r0, r5
adds r0, r7
strb r6, [r0]
ldrb r0, [r4]
adds r0, 0x1
strb r0, [r4]
_08113E14:
movs r0, 0x7
ldr r1, [sp, 0x30]
ands r1, r0
cmp r1, 0
bne _08113E24
movs r2, 0xE4
add r8, r2
b _08113E28
_08113E24:
movs r3, 0x4
add r8, r3
_08113E28:
adds r5, 0x20
adds r4, 0x1
ldr r0, [sp, 0x8]
adds r0, 0x1
str r0, [sp, 0x8]
cmp r0, 0x3F
ble _08113D6A
movs r1, 0
str r1, [sp, 0x8]
_08113E3A:
ldr r3, [sp, 0x8]
ldr r4, _08113EBC @ =0x02014804
adds r2, r3, r4
ldr r5, _08113EC0 @ =0x02014844
adds r1, r3, r5
ldrb r0, [r2]
adds r3, 0x1
str r3, [sp, 0x30]
ldrb r1, [r1]
cmp r0, r1
bcc _08113E52
b _08113F9E
_08113E52:
movs r0, 0
str r0, [sp, 0xC]
ldrb r2, [r2]
cmp r0, r2
bge _08113F54
ldr r0, _08113EC4 @ =0x02014800
adds r0, 0x4
ldr r1, [sp, 0x8]
adds r0, r1, r0
str r0, [sp, 0x18]
_08113E66:
movs r2, 0x80
lsls r2, 1
str r2, [sp, 0x14]
movs r6, 0
ldr r3, [sp, 0x8]
ldr r4, _08113EC0 @ =0x02014844
adds r0, r3, r4
ldr r5, [sp, 0xC]
adds r5, 0x1
str r5, [sp, 0x34]
ldrb r0, [r0]
cmp r6, r0
bge _08113F3E
ldr r0, _08113EC4 @ =0x02014800
mov r10, r0
lsls r0, r3, 5
ldr r2, [sp, 0xC]
adds r1, r2, r0
mov r9, r0
ldr r0, _08113EC4 @ =0x02014800
adds r0, 0xC4
mov r3, r9
adds r7, r3, r0
mov r5, r9
ldr r4, _08113EC4 @ =0x02014800
ldr r2, _08113EC8 @ =0x000010c4
adds r0, r4, r2
adds r1, r0
mov r8, r1
ldrb r3, [r1]
str r3, [sp, 0x1C]
_08113EA4:
ldr r0, _08113ECC @ =0x000020c4
add r0, r10
adds r0, r5, r0
ldr r4, [sp, 0x1C]
ldrb r1, [r0]
cmp r4, r1
bls _08113ED0
mov r2, r8
ldrb r1, [r2]
ldrb r0, [r0]
b _08113ED6
.align 2, 0
_08113EBC: .4byte 0x02014804
_08113EC0: .4byte 0x02014844
_08113EC4: .4byte 0x02014800
_08113EC8: .4byte 0x000010c4
_08113ECC: .4byte 0x000020c4
_08113ED0:
ldrb r1, [r0]
mov r3, r8
ldrb r0, [r3]
_08113ED6:
subs r3, r1, r0
ldr r1, [sp, 0xC]
add r1, r9
ldr r0, _08113EFC @ =0x000018c4
add r0, r10
adds r4, r1, r0
ldr r0, _08113F00 @ =0x000028c4
add r0, r10
adds r2, r5, r0
ldrb r0, [r4]
ldr r1, _08113F04 @ =0x02014800
mov r12, r1
ldrb r1, [r2]
cmp r0, r1
bls _08113F08
adds r1, r0, 0
ldrb r0, [r2]
b _08113F0C
.align 2, 0
_08113EFC: .4byte 0x000018c4
_08113F00: .4byte 0x000028c4
_08113F04: .4byte 0x02014800
_08113F08:
ldrb r1, [r2]
ldrb r0, [r4]
_08113F0C:
subs r1, r0
adds r3, r1
ldr r2, [sp, 0x14]
cmp r2, r3
ble _08113F2C
ldrb r0, [r7]
cmp r0, 0
bne _08113F2C
ldr r0, _08114050 @ =0x000008c4
add r0, r12
adds r0, r5, r0
ldrb r0, [r0]
cmp r0, 0
bne _08113F2C
str r6, [sp, 0x10]
str r3, [sp, 0x14]
_08113F2C:
adds r7, 0x1
adds r5, 0x1
adds r6, 0x1
ldr r3, [sp, 0x8]
ldr r4, _08114054 @ =0x02014844
adds r0, r3, r4
ldrb r0, [r0]
cmp r6, r0
blt _08113EA4
_08113F3E:
ldr r0, [sp, 0xC]
ldr r1, [sp, 0x10]
ldr r2, [sp, 0x8]
bl sub_81141F0
ldr r5, [sp, 0x34]
str r5, [sp, 0xC]
ldr r0, [sp, 0x18]
ldrb r0, [r0]
cmp r5, r0
blt _08113E66
_08113F54:
movs r6, 0
ldr r2, _08114058 @ =0x02014800
ldr r1, [sp, 0x8]
ldr r3, _08114054 @ =0x02014844
adds r0, r1, r3
adds r4, r2, 0
mov r12, r4
ldrb r0, [r0]
cmp r6, r0
bge _08113F9E
mov r0, r12
adds r0, 0x44
adds r4, r1, r0
_08113F6E:
ldr r5, [sp, 0x8]
lsls r0, r5, 5
adds r1, r6, r0
adds r0, r2, 0
adds r0, 0xC4
adds r0, r1, r0
ldrb r0, [r0]
cmp r0, 0
bne _08113F94
ldr r3, _08114050 @ =0x000008c4
adds r0, r2, r3
adds r0, r1, r0
ldrb r0, [r0]
cmp r0, 0
bne _08113F94
adds r0, r6, 0
adds r1, r5, 0
bl sub_811430C
_08113F94:
adds r6, 0x1
ldr r2, _08114058 @ =0x02014800
ldrb r5, [r4]
cmp r6, r5
blt _08113F6E
_08113F9E:
ldr r0, [sp, 0x8]
ldr r1, _0811405C @ =0x02014804
adds r2, r0, r1
ldr r3, _08114054 @ =0x02014844
adds r1, r0, r3
ldrb r0, [r2]
ldrb r1, [r1]
cmp r0, r1
bne _08113FCC
movs r6, 0
ldrb r4, [r2]
cmp r6, r4
bge _08113FCC
adds r4, r2, 0
_08113FBA:
adds r0, r6, 0
adds r1, r6, 0
ldr r2, [sp, 0x8]
bl sub_81141F0
adds r6, 0x1
ldrb r5, [r4]
cmp r6, r5
blt _08113FBA
_08113FCC:
ldr r0, [sp, 0x8]
ldr r1, _0811405C @ =0x02014804
adds r2, r0, r1
ldr r3, _08114054 @ =0x02014844
adds r1, r0, r3
ldrb r0, [r2]
ldr r4, _08114058 @ =0x02014800
ldrb r5, [r1]
cmp r0, r5
bhi _08113FE2
b _081141C4
_08113FE2:
movs r0, 0
str r0, [sp, 0x10]
ldrb r1, [r1]
cmp r0, r1
blt _08113FEE
b _08114104
_08113FEE:
str r2, [sp, 0x2C]
ldr r1, [sp, 0x8]
lsls r1, 5
mov r9, r1
adds r0, r4, 0
adds r0, 0x44
ldr r2, [sp, 0x8]
adds r0, r2, r0
str r0, [sp, 0x20]
mov r3, r9
str r3, [sp, 0x24]
_08114004:
movs r4, 0x80
lsls r4, 1
str r4, [sp, 0x14]
movs r6, 0
ldr r5, [sp, 0x10]
adds r5, 0x1
str r5, [sp, 0x38]
ldr r0, [sp, 0x2C]
ldrb r0, [r0]
cmp r6, r0
bge _081140C4
ldr r1, [sp, 0x10]
ldr r2, [sp, 0x24]
adds r1, r2
mov r10, r1
ldr r0, _08114058 @ =0x02014800
adds r0, 0xC4
adds r2, r0
mov r8, r2
ldr r7, [sp, 0x24]
ldr r3, _08114058 @ =0x02014800
ldr r4, _08114060 @ =0x000010c4
adds r0, r3, r4
adds r5, r7, r0
ldr r0, _08114064 @ =0x020168c4
add r0, r10
mov r12, r0
ldrb r1, [r0]
str r1, [sp, 0x28]
_0811403E:
ldrb r0, [r5]
ldr r2, [sp, 0x28]
cmp r0, r2
bls _08114068
adds r1, r0, 0
mov r3, r12
ldrb r0, [r3]
b _0811406E
.align 2, 0
_08114050: .4byte 0x000008c4
_08114054: .4byte 0x02014844
_08114058: .4byte 0x02014800
_0811405C: .4byte 0x02014804
_08114060: .4byte 0x000010c4
_08114064: .4byte 0x020168c4
_08114068:
mov r4, r12
ldrb r1, [r4]
ldrb r0, [r5]
_0811406E:
subs r3, r1, r0
ldr r1, _0811408C @ =0x02014800
ldr r2, _08114090 @ =0x000018c4
adds r0, r1, r2
adds r4, r7, r0
ldr r2, _08114094 @ =0x020170c4
add r2, r10
ldrb r0, [r4]
ldrb r1, [r2]
cmp r0, r1
bls _08114098
adds r1, r0, 0
ldrb r0, [r2]
b _0811409C
.align 2, 0
_0811408C: .4byte 0x02014800
_08114090: .4byte 0x000018c4
_08114094: .4byte 0x020170c4
_08114098:
ldrb r1, [r2]
ldrb r0, [r4]
_0811409C:
subs r1, r0
adds r3, r1
ldr r2, [sp, 0x14]
cmp r2, r3
ble _081140B2
mov r4, r8
ldrb r0, [r4]
cmp r0, 0
bne _081140B2
str r6, [sp, 0xC]
str r3, [sp, 0x14]
_081140B2:
movs r0, 0x1
add r8, r0
adds r7, 0x1
adds r5, 0x1
adds r6, 0x1
ldr r1, [sp, 0x2C]
ldrb r1, [r1]
cmp r6, r1
blt _0811403E
_081140C4:
ldr r3, [sp, 0xC]
add r3, r9
ldr r2, _08114164 @ =0x02014800
ldr r4, _08114168 @ =0x000030c4
adds r1, r2, r4
adds r1, r3, r1
ldr r2, [sp, 0x10]
add r2, r9
ldr r5, _0811416C @ =0x020168c4
adds r0, r2, r5
ldrb r0, [r0]
strb r0, [r1]
ldr r0, _08114164 @ =0x02014800
ldr r4, _08114170 @ =0x000038c4
adds r1, r0, r4
adds r1, r3, r1
ldr r5, _08114174 @ =0x020170c4
adds r2, r5
ldrb r0, [r2]
strb r0, [r1]
ldr r0, _08114164 @ =0x02014800
adds r0, 0xC4
adds r3, r0
movs r0, 0x1
strb r0, [r3]
ldr r0, [sp, 0x38]
str r0, [sp, 0x10]
ldr r1, [sp, 0x20]
ldrb r1, [r1]
cmp r0, r1
bge _08114104
b _08114004
_08114104:
movs r6, 0
ldr r4, _08114164 @ =0x02014800
ldr r2, [sp, 0x8]
ldr r3, _08114178 @ =0x02014804
adds r0, r2, r3
ldrb r0, [r0]
cmp r6, r0
bge _081141C4
adds r7, r4, 0
mov r9, r6
movs r5, 0xC4
adds r5, r7
mov r8, r5
_0811411E:
ldr r1, [sp, 0x8]
lsls r0, r1, 5
adds r2, r6, r0
ldr r3, _0811417C @ =0x000020c4
adds r0, r7, r3
adds r0, r2
mov r10, r0
ldr r5, _08114168 @ =0x000030c4
adds r0, r7, r5
adds r0, r2, r0
ldrb r0, [r0]
mov r1, r10
strb r0, [r1]
ldr r3, _08114180 @ =0x000028c4
adds r0, r7, r3
adds r3, r2, r0
ldr r5, _08114170 @ =0x000038c4
adds r0, r7, r5
adds r0, r2, r0
ldrb r0, [r0]
strb r0, [r3]
mov r0, r8
adds r1, r2, r0
ldrb r0, [r1]
cmp r0, 0
beq _08114184
mov r2, r9
strb r2, [r1]
adds r0, r6, 0
adds r1, r6, 0
ldr r2, [sp, 0x8]
bl sub_81141F0
b _081141B4
.align 2, 0
_08114164: .4byte 0x02014800
_08114168: .4byte 0x000030c4
_0811416C: .4byte 0x020168c4
_08114170: .4byte 0x000038c4
_08114174: .4byte 0x020170c4
_08114178: .4byte 0x02014804
_0811417C: .4byte 0x000020c4
_08114180: .4byte 0x000028c4
_08114184:
ldr r5, _081141E0 @ =0x000010c4
adds r1, r4, r5
adds r1, r2, r1
ldr r5, _081141E4 @ =0x000018c4
adds r0, r4, r5
adds r0, r2, r0
ldrb r0, [r0]
ldrb r2, [r1]
subs r0, r2
lsrs r1, r0, 31
adds r0, r1
asrs r0, 1
adds r2, r0
strb r2, [r3]
mov r0, r10
strb r2, [r0]
ldrb r0, [r3]
subs r0, 0x1
strb r0, [r3]
adds r0, r6, 0
adds r1, r6, 0
ldr r2, [sp, 0x8]
bl sub_81141F0
_081141B4:
adds r6, 0x1
ldr r4, _081141E8 @ =0x02014800
ldr r1, [sp, 0x8]
ldr r2, _081141EC @ =0x02014804
adds r0, r1, r2
ldrb r0, [r0]
cmp r6, r0
blt _0811411E
_081141C4:
ldr r3, [sp, 0x30]
str r3, [sp, 0x8]
cmp r3, 0x3F
bgt _081141CE
b _08113E3A
_081141CE:
add sp, 0x3C
pop {r3-r5}
mov r8, r3
mov r9, r4
mov r10, r5
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
_081141E0: .4byte 0x000010c4
_081141E4: .4byte 0x000018c4
_081141E8: .4byte 0x02014800
_081141EC: .4byte 0x02014804
thumb_func_end unref_sub_8113B50
thumb_func_start sub_81141F0
sub_81141F0: @ 81141F0
push {r4-r7,lr}
mov r7, r9
mov r6, r8
push {r6,r7}
adds r6, r0, 0
mov r8, r1
mov r9, r2
ldr r3, _0811424C @ =0x02014800
lsls r1, r2, 5
mov r0, r8
adds r4, r0, r1
ldr r5, _08114250 @ =0x000030c4
adds r2, r3, r5
adds r2, r4, r2
adds r1, r6, r1
ldr r7, _08114254 @ =0x000010c4
adds r0, r3, r7
adds r5, r1, r0
ldrb r0, [r5]
strb r0, [r2]
ldr r0, _08114258 @ =0x000038c4
adds r2, r3, r0
adds r2, r4, r2
ldr r7, _0811425C @ =0x000018c4
adds r0, r3, r7
adds r1, r0
ldrb r0, [r1]
strb r0, [r2]
movs r7, 0
ldr r1, _08114260 @ =0x000020c4
adds r0, r3, r1
adds r2, r4, r0
ldrb r1, [r5]
ldrb r0, [r2]
mov r12, r3
cmp r1, r0
bcs _08114264
mov r0, r12
adds r0, 0xC4
adds r0, r4, r0
movs r1, 0x4
strb r1, [r0]
ldrb r1, [r2]
ldrb r0, [r5]
b _08114276
.align 2, 0
_0811424C: .4byte 0x02014800
_08114250: .4byte 0x000030c4
_08114254: .4byte 0x000010c4
_08114258: .4byte 0x000038c4
_0811425C: .4byte 0x000018c4
_08114260: .4byte 0x000020c4
_08114264:
cmp r1, r0
bls _08114278
mov r0, r12
adds r0, 0xC4
adds r0, r4, r0
movs r1, 0x1
strb r1, [r0]
ldrb r1, [r5]
ldrb r0, [r2]
_08114276:
subs r7, r1, r0
_08114278:
mov r5, r8
lsls r3, r5, 1
mov r0, r9
lsls r4, r0, 6
adds r0, r3, r4
ldr r1, _081142BC @ =0x000080c4
add r1, r12
adds r0, r1
lsls r1, r7, 4
strh r1, [r0]
movs r7, 0
mov r1, r9
lsls r2, r1, 5
adds r1, r6, r2
ldr r0, _081142C0 @ =0x000018c4
add r0, r12
adds r6, r1, r0
adds r1, r5, r2
ldr r0, _081142C4 @ =0x000028c4
add r0, r12
adds r5, r1, r0
ldrb r2, [r6]
ldrb r0, [r5]
cmp r2, r0
bcs _081142CC
ldr r0, _081142C8 @ =0x000008c4
add r0, r12
adds r0, r1, r0
movs r1, 0x3
strb r1, [r0]
ldrb r1, [r5]
ldrb r0, [r6]
b _081142DE
.align 2, 0
_081142BC: .4byte 0x000080c4
_081142C0: .4byte 0x000018c4
_081142C4: .4byte 0x000028c4
_081142C8: .4byte 0x000008c4
_081142CC:
cmp r2, r0
bls _081142E0
ldr r0, _08114304 @ =0x000008c4
add r0, r12
adds r0, r1, r0
movs r1, 0x2
strb r1, [r0]
ldrb r1, [r6]
ldrb r0, [r5]
_081142DE:
subs r7, r1, r0
_081142E0:
adds r0, r3, r4
ldr r1, _08114308 @ =0x000090c4
add r1, r12
adds r0, r1
lsls r1, r7, 4
strh r1, [r0]
mov r1, r12
adds r1, 0x84
add r1, r9
ldrb r0, [r1]
adds r0, 0x1
strb r0, [r1]
pop {r3,r4}
mov r8, r3
mov r9, r4
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
_08114304: .4byte 0x000008c4
_08114308: .4byte 0x000090c4
thumb_func_end sub_81141F0
thumb_func_start sub_811430C
sub_811430C: @ 811430C
push {r4-r7,lr}
mov r7, r10
mov r6, r9
mov r5, r8
push {r5-r7}
ldr r5, _081143AC @ =0x02014800
lsls r4, r1, 5
adds r4, r0, r4
ldr r2, _081143B0 @ =0x000028c4
adds r2, r5
mov r10, r2
add r10, r4
mov r3, r10
ldrb r2, [r3]
ldr r6, _081143B4 @ =0x000020c4
adds r6, r5
mov r8, r6
add r8, r4
mov r6, r8
ldrb r3, [r6]
subs r7, r2, r3
ldr r2, _081143B8 @ =0x000030c4
adds r6, r5, r2
adds r6, r4, r6
ldr r2, _081143BC @ =0x000038c4
adds r2, r5
mov r9, r2
add r9, r4
lsrs r2, r7, 31
adds r2, r7, r2
asrs r2, 1
adds r3, r2
mov r2, r9
strb r3, [r2]
strb r3, [r6]
adds r2, r5, 0
adds r2, 0xC4
adds r2, r4, r2
movs r3, 0x5
strb r3, [r2]
ldr r3, _081143C0 @ =0x000008c4
adds r2, r5, r3
adds r4, r2
movs r2, 0x7
strb r2, [r4]
adds r3, r5, 0
adds r3, 0x84
adds r3, r1, r3
ldrb r2, [r3]
adds r2, 0x1
strb r2, [r3]
ldrb r3, [r6]
mov r4, r8
ldrb r2, [r4]
subs r7, r3, r2
lsls r0, 1
lsls r1, 6
adds r0, r1
ldr r6, _081143C4 @ =0x000080c4
adds r1, r5, r6
adds r1, r0, r1
lsls r2, r7, 4
strh r2, [r1]
mov r1, r10
ldrb r2, [r1]
mov r3, r9
ldrb r1, [r3]
subs r7, r2, r1
ldr r4, _081143C8 @ =0x000090c4
adds r5, r4
adds r0, r5
lsls r1, r7, 4
strh r1, [r0]
pop {r3-r5}
mov r8, r3
mov r9, r4
mov r10, r5
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
_081143AC: .4byte 0x02014800
_081143B0: .4byte 0x000028c4
_081143B4: .4byte 0x000020c4
_081143B8: .4byte 0x000030c4
_081143BC: .4byte 0x000038c4
_081143C0: .4byte 0x000008c4
_081143C4: .4byte 0x000080c4
_081143C8: .4byte 0x000090c4
thumb_func_end sub_811430C
thumb_func_start unref_sub_81143CC
unref_sub_81143CC: @ 81143CC
push {r4-r7,lr}
mov r7, r10
mov r6, r9
mov r5, r8
push {r5-r7}
sub sp, 0x14
movs r0, 0x1
str r0, [sp, 0x4]
ldr r0, _08114408 @ =0x02014800
ldr r2, _0811440C @ =0x0000a0c4
adds r1, r0, r2
ldrb r3, [r1]
adds r4, r0, 0
cmp r3, 0
beq _081143EE
subs r0, r3, 0x1
strb r0, [r1]
_081143EE:
movs r5, 0
str r5, [sp]
_081143F2:
movs r3, 0
adds r2, r4, 0
adds r0, r4, 0
adds r0, 0x84
ldr r1, [sp]
adds r0, r1, r0
adds r1, 0x1
str r1, [sp, 0x8]
bl _08114D84
.align 2, 0
_08114408: .4byte 0x02014800
_0811440C: .4byte 0x0000a0c4
_08114410:
ldr r5, [sp]
lsls r0, r5, 5
adds r1, r3, r0
adds r2, 0xC4
adds r1, r2
ldrb r2, [r1]
mov r8, r0
adds r0, r3, 0x1
mov r10, r0
cmp r2, 0xC
bls _08114428
b _081148D2
_08114428:
lsls r0, r2, 2
ldr r1, _08114434 @ =_08114438
adds r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_08114434: .4byte _08114438
.align 2, 0
_08114438:
.4byte _081148D2
.4byte _0811446C
.4byte _081144F0
.4byte _0811457C
.4byte _08114600
.4byte _0811468C
.4byte _081146C8
.4byte _08114704
.4byte _08114740
.4byte _0811477C
.4byte _081147D0
.4byte _08114810
.4byte _08114858
_0811446C:
movs r1, 0
str r1, [sp, 0x4]
lsls r0, r3, 1
ldr r2, [sp]
lsls r1, r2, 6
adds r0, r1
ldr r5, _081144E0 @ =0x000060c4
adds r2, r4, r5
adds r2, r0, r2
ldr r5, _081144E4 @ =0x000080c4
adds r1, r4, r5
adds r0, r1
ldrh r1, [r0]
ldrh r0, [r2]
adds r1, r0
movs r0, 0xFF
lsls r0, 8
ands r0, r1
lsrs r5, r0, 8
movs r0, 0xFF
ands r1, r0
strh r1, [r2]
movs r6, 0
adds r1, r3, 0x1
mov r10, r1
ldr r2, [sp, 0x4]
cmp r2, r5
blt _081144A6
b _081148D2
_081144A6:
mov r9, r4
mov r4, r8
adds r7, r3, r4
ldr r0, _081144E8 @ =0x000030c4
add r0, r9
adds r4, r7, r0
ldr r0, _081144EC @ =0x000020c4
add r0, r9
adds r2, r7, r0
_081144B8:
ldrb r0, [r4]
subs r0, 0x1
strb r0, [r4]
ldrb r1, [r4]
ldr r0, [sp]
str r2, [sp, 0xC]
str r3, [sp, 0x10]
bl sub_8114DB4
ldrb r0, [r4]
ldr r2, [sp, 0xC]
ldr r3, [sp, 0x10]
ldrb r1, [r2]
cmp r0, r1
bne _081144D8
b _081148A0
_081144D8:
adds r6, 0x1
cmp r6, r5
blt _081144B8
b _081148D2
.align 2, 0
_081144E0: .4byte 0x000060c4
_081144E4: .4byte 0x000080c4
_081144E8: .4byte 0x000030c4
_081144EC: .4byte 0x000020c4
_081144F0:
movs r2, 0
str r2, [sp, 0x4]
ldr r4, _08114568 @ =0x02014800
lsls r0, r3, 1
ldr r5, [sp]
lsls r1, r5, 6
adds r0, r1
ldr r1, _0811456C @ =0x000060c4
adds r2, r4, r1
adds r2, r0, r2
ldr r5, _08114570 @ =0x000080c4
adds r1, r4, r5
adds r0, r1
ldrh r1, [r0]
ldrh r0, [r2]
adds r1, r0
movs r0, 0xFF
lsls r0, 8
ands r0, r1
lsrs r5, r0, 8
movs r0, 0xFF
ands r1, r0
strh r1, [r2]
movs r6, 0
adds r1, r3, 0x1
mov r10, r1
ldr r2, [sp, 0x4]
cmp r2, r5
blt _0811452C
b _081148D2
_0811452C:
mov r9, r4
mov r4, r8
adds r7, r3, r4
ldr r0, _08114574 @ =0x000030c4
add r0, r9
adds r4, r7, r0
ldr r0, _08114578 @ =0x000020c4
add r0, r9
adds r2, r7, r0
_0811453E:
ldrb r0, [r4]
ldrb r1, [r2]
cmp r0, r1
bne _08114548
b _081148B8
_08114548:
adds r1, r0, 0
ldr r0, [sp]
str r2, [sp, 0xC]
str r3, [sp, 0x10]
bl sub_8114DF0
ldrb r0, [r4]
subs r0, 0x1
strb r0, [r4]
adds r6, 0x1
ldr r2, [sp, 0xC]
ldr r3, [sp, 0x10]
cmp r6, r5
blt _0811453E
b _081148D2
.align 2, 0
_08114568: .4byte 0x02014800
_0811456C: .4byte 0x000060c4
_08114570: .4byte 0x000080c4
_08114574: .4byte 0x000030c4
_08114578: .4byte 0x000020c4
_0811457C:
movs r2, 0
str r2, [sp, 0x4]
lsls r0, r3, 1
ldr r5, [sp]
lsls r1, r5, 6
adds r0, r1
ldr r1, _081145F0 @ =0x000060c4
adds r2, r4, r1
adds r2, r0, r2
ldr r5, _081145F4 @ =0x000080c4
adds r1, r4, r5
adds r0, r1
ldrh r1, [r0]
ldrh r0, [r2]
adds r1, r0
movs r0, 0xFF
lsls r0, 8
ands r0, r1
lsrs r5, r0, 8
movs r0, 0xFF
ands r1, r0
strh r1, [r2]
movs r6, 0
adds r1, r3, 0x1
mov r10, r1
ldr r2, [sp, 0x4]
cmp r2, r5
blt _081145B6
b _081148D2
_081145B6:
mov r9, r4
mov r4, r8
adds r7, r3, r4
ldr r0, _081145F8 @ =0x000030c4
add r0, r9
adds r4, r7, r0
ldr r0, _081145FC @ =0x000020c4
add r0, r9
adds r2, r7, r0
_081145C8:
ldrb r0, [r4]
adds r0, 0x1
strb r0, [r4]
ldrb r1, [r4]
ldr r0, [sp]
str r2, [sp, 0xC]
str r3, [sp, 0x10]
bl sub_8114DB4
ldrb r0, [r4]
ldr r2, [sp, 0xC]
ldr r3, [sp, 0x10]
ldrb r1, [r2]
cmp r0, r1
bne _081145E8
b _081148AC
_081145E8:
adds r6, 0x1
cmp r6, r5
blt _081145C8
b _081148D2
.align 2, 0
_081145F0: .4byte 0x000060c4
_081145F4: .4byte 0x000080c4
_081145F8: .4byte 0x000030c4
_081145FC: .4byte 0x000020c4
_08114600:
movs r2, 0
str r2, [sp, 0x4]
ldr r4, _08114678 @ =0x02014800
lsls r0, r3, 1
ldr r5, [sp]
lsls r1, r5, 6
adds r0, r1
ldr r1, _0811467C @ =0x000060c4
adds r2, r4, r1
adds r2, r0, r2
ldr r5, _08114680 @ =0x000080c4
adds r1, r4, r5
adds r0, r1
ldrh r1, [r0]
ldrh r0, [r2]
adds r1, r0
movs r0, 0xFF
lsls r0, 8
ands r0, r1
lsrs r5, r0, 8
movs r0, 0xFF
ands r1, r0
strh r1, [r2]
movs r6, 0
adds r1, r3, 0x1
mov r10, r1
ldr r2, [sp, 0x4]
cmp r2, r5
blt _0811463C
b _081148D2
_0811463C:
mov r9, r4
mov r4, r8
adds r7, r3, r4
ldr r0, _08114684 @ =0x000030c4
add r0, r9
adds r4, r7, r0
ldr r0, _08114688 @ =0x000020c4
add r0, r9
adds r2, r7, r0
_0811464E:
ldrb r0, [r4]
ldrb r1, [r2]
cmp r0, r1
bne _08114658
b _081148B8
_08114658:
adds r1, r0, 0
ldr r0, [sp]
str r2, [sp, 0xC]
str r3, [sp, 0x10]
bl sub_8114DF0
ldrb r0, [r4]
adds r0, 0x1
strb r0, [r4]
adds r6, 0x1
ldr r2, [sp, 0xC]
ldr r3, [sp, 0x10]
cmp r6, r5
blt _0811464E
b _081148D2
.align 2, 0
_08114678: .4byte 0x02014800
_0811467C: .4byte 0x000060c4
_08114680: .4byte 0x000080c4
_08114684: .4byte 0x000030c4
_08114688: .4byte 0x000020c4
_0811468C:
movs r2, 0
str r2, [sp, 0x4]
ldr r5, _081146C0 @ =0x02014800
mov r0, r8
adds r4, r3, r0
ldr r1, _081146C4 @ =0x000030c4
adds r0, r5, r1
adds r0, r4, r0
ldrb r1, [r0]
ldr r0, [sp]
str r3, [sp, 0x10]
bl sub_8114E48
lsls r0, 24
ldr r3, [sp, 0x10]
adds r2, r3, 0x1
mov r10, r2
cmp r0, 0
bne _081146B4
b _081148D2
_081146B4:
adds r0, r5, 0
adds r0, 0xC4
adds r0, r4, r0
movs r1, 0x9
strb r1, [r0]
b _081148D2
.align 2, 0
_081146C0: .4byte 0x02014800
_081146C4: .4byte 0x000030c4
_081146C8:
movs r4, 0
str r4, [sp, 0x4]
ldr r5, _081146FC @ =0x02014800
mov r0, r8
adds r4, r3, r0
ldr r1, _08114700 @ =0x000030c4
adds r0, r5, r1
adds r0, r4, r0
ldrb r1, [r0]
ldr r0, [sp]
str r3, [sp, 0x10]
bl sub_8114E48
lsls r0, 24
ldr r3, [sp, 0x10]
adds r2, r3, 0x1
mov r10, r2
cmp r0, 0
bne _081146F0
b _081148D2
_081146F0:
adds r0, r5, 0
adds r0, 0xC4
adds r0, r4, r0
movs r1, 0xA
strb r1, [r0]
b _081148D2
.align 2, 0
_081146FC: .4byte 0x02014800
_08114700: .4byte 0x000030c4
_08114704:
movs r4, 0
str r4, [sp, 0x4]
ldr r5, _08114738 @ =0x02014800
mov r0, r8
adds r4, r3, r0
ldr r1, _0811473C @ =0x000030c4
adds r0, r5, r1
adds r0, r4, r0
ldrb r1, [r0]
ldr r0, [sp]
str r3, [sp, 0x10]
bl sub_8114E48
lsls r0, 24
ldr r3, [sp, 0x10]
adds r2, r3, 0x1
mov r10, r2
cmp r0, 0
bne _0811472C
b _081148D2
_0811472C:
adds r0, r5, 0
adds r0, 0xC4
adds r0, r4, r0
movs r1, 0xB
strb r1, [r0]
b _081148D2
.align 2, 0
_08114738: .4byte 0x02014800
_0811473C: .4byte 0x000030c4
_08114740:
movs r4, 0
str r4, [sp, 0x4]
ldr r5, _08114774 @ =0x02014800
mov r0, r8
adds r4, r3, r0
ldr r1, _08114778 @ =0x000030c4
adds r0, r5, r1
adds r0, r4, r0
ldrb r1, [r0]
ldr r0, [sp]
str r3, [sp, 0x10]
bl sub_8114E48
lsls r0, 24
ldr r3, [sp, 0x10]
adds r2, r3, 0x1
mov r10, r2
cmp r0, 0
bne _08114768
b _081148D2
_08114768:
adds r0, r5, 0
adds r0, 0xC4
adds r0, r4, r0
movs r1, 0xC
strb r1, [r0]
b _081148D2
.align 2, 0
_08114774: .4byte 0x02014800
_08114778: .4byte 0x000030c4
_0811477C:
movs r4, 0
str r4, [sp, 0x4]
ldr r6, _081147B4 @ =0x02014800
mov r0, r8
adds r5, r3, r0
ldr r1, _081147B8 @ =0x000030c4
adds r4, r6, r1
adds r4, r5, r4
ldrb r1, [r4]
ldr r0, [sp]
str r3, [sp, 0x10]
bl sub_8114DB4
ldr r2, _081147BC @ =0x000020c4
adds r0, r6, r2
adds r0, r5, r0
ldrb r1, [r4]
ldr r3, [sp, 0x10]
ldrb r0, [r0]
cmp r1, r0
bne _081147C0
adds r0, r6, 0
adds r0, 0xC4
adds r0, r5, r0
mov r4, sp
ldrb r4, [r4, 0x4]
strb r4, [r0]
b _08114844
.align 2, 0
_081147B4: .4byte 0x02014800
_081147B8: .4byte 0x000030c4
_081147BC: .4byte 0x000020c4
_081147C0:
adds r0, r6, 0
adds r0, 0xC4
adds r0, r5, r0
movs r1, 0x1
strb r1, [r0]
adds r0, r3, 0x1
mov r10, r0
b _081148D2
_081147D0:
movs r1, 0
str r1, [sp, 0x4]
ldr r6, _08114804 @ =0x02014800
mov r2, r8
adds r5, r3, r2
ldr r0, _08114808 @ =0x000030c4
adds r4, r6, r0
adds r4, r5, r4
ldrb r1, [r4]
ldr r0, [sp]
str r3, [sp, 0x10]
bl sub_8114DF0
ldr r1, _0811480C @ =0x000020c4
adds r0, r6, r1
adds r0, r5, r0
ldrb r1, [r4]
ldr r3, [sp, 0x10]
ldrb r0, [r0]
cmp r1, r0
beq _08114882
adds r0, r6, 0
adds r0, 0xC4
adds r0, r5, r0
movs r1, 0x2
b _08114842
.align 2, 0
_08114804: .4byte 0x02014800
_08114808: .4byte 0x000030c4
_0811480C: .4byte 0x000020c4
_08114810:
movs r0, 0
str r0, [sp, 0x4]
ldr r6, _0811484C @ =0x02014800
mov r1, r8
adds r5, r3, r1
ldr r2, _08114850 @ =0x000030c4
adds r4, r6, r2
adds r4, r5, r4
ldrb r1, [r4]
ldr r0, [sp]
str r3, [sp, 0x10]
bl sub_8114DB4
ldr r1, _08114854 @ =0x000020c4
adds r0, r6, r1
adds r0, r5, r0
ldrb r1, [r4]
ldr r3, [sp, 0x10]
ldrb r0, [r0]
cmp r1, r0
beq _08114882
adds r0, r6, 0
adds r0, 0xC4
adds r0, r5, r0
movs r1, 0x3
_08114842:
strb r1, [r0]
_08114844:
adds r5, r3, 0x1
mov r10, r5
b _081148D2
.align 2, 0
_0811484C: .4byte 0x02014800
_08114850: .4byte 0x000030c4
_08114854: .4byte 0x000020c4
_08114858:
movs r0, 0
str r0, [sp, 0x4]
ldr r6, _08114894 @ =0x02014800
mov r1, r8
adds r5, r3, r1
ldr r2, _08114898 @ =0x000030c4
adds r4, r6, r2
adds r4, r5, r4
ldrb r1, [r4]
ldr r0, [sp]
str r3, [sp, 0x10]
bl sub_8114DF0
ldr r1, _0811489C @ =0x000020c4
adds r0, r6, r1
adds r0, r5, r0
ldrb r1, [r4]
ldr r3, [sp, 0x10]
ldrb r0, [r0]
cmp r1, r0
bne _081148C4
_08114882:
adds r0, r6, 0
adds r0, 0xC4
adds r0, r5, r0
mov r2, sp
ldrb r2, [r2, 0x4]
strb r2, [r0]
adds r4, r3, 0x1
mov r10, r4
b _081148D2
.align 2, 0
_08114894: .4byte 0x02014800
_08114898: .4byte 0x000030c4
_0811489C: .4byte 0x000020c4
_081148A0:
mov r0, r9
adds r0, 0xC4
adds r0, r7, r0
movs r5, 0
strb r5, [r0]
b _081148D2
_081148AC:
mov r0, r9
adds r0, 0xC4
adds r0, r7, r0
movs r1, 0
strb r1, [r0]
b _081148D2
_081148B8:
mov r0, r9
adds r0, 0xC4
adds r0, r7, r0
movs r1, 0
strb r1, [r0]
b _081148D2
_081148C4:
adds r0, r6, 0
adds r0, 0xC4
adds r0, r5, r0
movs r1, 0x4
strb r1, [r0]
adds r2, r3, 0x1
mov r10, r2
_081148D2:
ldr r0, _081148F4 @ =0x02014800
mov r4, r8
adds r1, r3, r4
ldr r5, _081148F8 @ =0x000008c4
adds r2, r0, r5
adds r1, r2
ldrb r1, [r1]
adds r4, r0, 0
cmp r1, 0xC
bls _081148E8
b _08114D76
_081148E8:
lsls r0, r1, 2
ldr r1, _081148FC @ =_08114900
adds r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_081148F4: .4byte 0x02014800
_081148F8: .4byte 0x000008c4
_081148FC: .4byte _08114900
.align 2, 0
_08114900:
.4byte _08114D76
.4byte _08114934
.4byte _081149B8
.4byte _08114A3C
.4byte _08114AC0
.4byte _08114B44
.4byte _08114B7C
.4byte _08114BB4
.4byte _08114BEC
.4byte _08114C24
.4byte _08114C78
.4byte _08114CB8
.4byte _08114CF8
_08114934:
movs r0, 0
str r0, [sp, 0x4]
lsls r0, r3, 1
ldr r2, [sp]
lsls r1, r2, 6
adds r0, r1
ldr r5, _081149A8 @ =0x000070c4
adds r2, r4, r5
adds r2, r0, r2
ldr r5, _081149AC @ =0x000090c4
adds r1, r4, r5
adds r0, r1
ldrh r1, [r0]
ldrh r0, [r2]
adds r1, r0
movs r0, 0xFF
lsls r0, 8
ands r0, r1
lsrs r5, r0, 8
movs r0, 0xFF
ands r1, r0
strh r1, [r2]
movs r6, 0
ldr r1, [sp, 0x4]
cmp r1, r5
blt _0811496A
b _08114D76
_0811496A:
mov r9, r4
mov r2, r8
adds r7, r3, r2
ldr r0, _081149B0 @ =0x000038c4
add r0, r9
adds r4, r7, r0
movs r3, 0
ldr r0, _081149B4 @ =0x000028c4
add r0, r9
adds r2, r7, r0
_0811497E:
ldrb r0, [r4]
subs r0, 0x1
strb r0, [r4]
ldrb r1, [r4]
ldr r0, [sp]
str r2, [sp, 0xC]
str r3, [sp, 0x10]
bl sub_8114DB4
ldrb r0, [r4]
ldr r2, [sp, 0xC]
ldr r3, [sp, 0x10]
ldrb r1, [r2]
cmp r0, r1
bne _0811499E
b _08114D4C
_0811499E:
adds r6, 0x1
cmp r6, r5
blt _0811497E
b _08114D76
.align 2, 0
_081149A8: .4byte 0x000070c4
_081149AC: .4byte 0x000090c4
_081149B0: .4byte 0x000038c4
_081149B4: .4byte 0x000028c4
_081149B8:
movs r2, 0
str r2, [sp, 0x4]
ldr r4, _08114A28 @ =0x02014800
lsls r0, r3, 1
ldr r5, [sp]
lsls r1, r5, 6
adds r0, r1
ldr r1, _08114A2C @ =0x000070c4
adds r2, r4, r1
adds r2, r0, r2
ldr r5, _08114A30 @ =0x000090c4
adds r1, r4, r5
adds r0, r1
ldrh r1, [r0]
ldrh r0, [r2]
adds r1, r0
movs r0, 0xFF
lsls r0, 8
ands r0, r1
lsrs r5, r0, 8
movs r0, 0xFF
ands r1, r0
strh r1, [r2]
movs r6, 0
ldr r1, [sp, 0x4]
cmp r1, r5
blt _081149F0
b _08114D76
_081149F0:
mov r9, r4
mov r2, r8
adds r7, r3, r2
ldr r0, _08114A34 @ =0x000038c4
add r0, r9
adds r4, r7, r0
ldr r0, _08114A38 @ =0x000028c4
add r0, r9
adds r2, r7, r0
_08114A02:
ldrb r0, [r4]
ldrb r1, [r2]
cmp r0, r1
bne _08114A0C
b _08114D3C
_08114A0C:
adds r1, r0, 0
ldr r0, [sp]
str r2, [sp, 0xC]
bl sub_8114DF0
ldrb r0, [r4]
subs r0, 0x1
strb r0, [r4]
adds r6, 0x1
ldr r2, [sp, 0xC]
cmp r6, r5
blt _08114A02
b _08114D76
.align 2, 0
_08114A28: .4byte 0x02014800
_08114A2C: .4byte 0x000070c4
_08114A30: .4byte 0x000090c4
_08114A34: .4byte 0x000038c4
_08114A38: .4byte 0x000028c4
_08114A3C:
movs r2, 0
str r2, [sp, 0x4]
lsls r0, r3, 1
ldr r5, [sp]
lsls r1, r5, 6
adds r0, r1
ldr r1, _08114AB0 @ =0x000070c4
adds r2, r4, r1
adds r2, r0, r2
ldr r5, _08114AB4 @ =0x000090c4
adds r1, r4, r5
adds r0, r1
ldrh r1, [r0]
ldrh r0, [r2]
adds r1, r0
movs r0, 0xFF
lsls r0, 8
ands r0, r1
lsrs r5, r0, 8
movs r0, 0xFF
ands r1, r0
strh r1, [r2]
movs r6, 0
ldr r1, [sp, 0x4]
cmp r1, r5
blt _08114A72
b _08114D76
_08114A72:
mov r9, r4
mov r2, r8
adds r7, r3, r2
ldr r0, _08114AB8 @ =0x000038c4
add r0, r9
adds r4, r7, r0
movs r3, 0
ldr r0, _08114ABC @ =0x000028c4
add r0, r9
adds r2, r7, r0
_08114A86:
ldrb r0, [r4]
adds r0, 0x1
strb r0, [r4]
ldrb r1, [r4]
ldr r0, [sp]
str r2, [sp, 0xC]
str r3, [sp, 0x10]
bl sub_8114DB4
ldrb r0, [r4]
ldr r2, [sp, 0xC]
ldr r3, [sp, 0x10]
ldrb r1, [r2]
cmp r0, r1
bne _08114AA6
b _08114D4C
_08114AA6:
adds r6, 0x1
cmp r6, r5
blt _08114A86
b _08114D76
.align 2, 0
_08114AB0: .4byte 0x000070c4
_08114AB4: .4byte 0x000090c4
_08114AB8: .4byte 0x000038c4
_08114ABC: .4byte 0x000028c4
_08114AC0:
movs r2, 0
str r2, [sp, 0x4]
ldr r4, _08114B30 @ =0x02014800
lsls r0, r3, 1
ldr r5, [sp]
lsls r1, r5, 6
adds r0, r1
ldr r1, _08114B34 @ =0x000070c4
adds r2, r4, r1
adds r2, r0, r2
ldr r5, _08114B38 @ =0x000090c4
adds r1, r4, r5
adds r0, r1
ldrh r1, [r0]
ldrh r0, [r2]
adds r1, r0
movs r0, 0xFF
lsls r0, 8
ands r0, r1
lsrs r5, r0, 8
movs r0, 0xFF
ands r1, r0
strh r1, [r2]
movs r6, 0
ldr r1, [sp, 0x4]
cmp r1, r5
blt _08114AF8
b _08114D76
_08114AF8:
mov r9, r4
mov r2, r8
adds r7, r3, r2
ldr r0, _08114B3C @ =0x000038c4
add r0, r9
adds r4, r7, r0
ldr r0, _08114B40 @ =0x000028c4
add r0, r9
adds r2, r7, r0
_08114B0A:
ldrb r0, [r4]
ldrb r1, [r2]
cmp r0, r1
bne _08114B14
b _08114D5C
_08114B14:
adds r1, r0, 0
ldr r0, [sp]
str r2, [sp, 0xC]
bl sub_8114DF0
ldrb r0, [r4]
adds r0, 0x1
strb r0, [r4]
adds r6, 0x1
ldr r2, [sp, 0xC]
cmp r6, r5
blt _08114B0A
b _08114D76
.align 2, 0
_08114B30: .4byte 0x02014800
_08114B34: .4byte 0x000070c4
_08114B38: .4byte 0x000090c4
_08114B3C: .4byte 0x000038c4
_08114B40: .4byte 0x000028c4
_08114B44:
movs r2, 0
str r2, [sp, 0x4]
ldr r5, _08114B70 @ =0x02014800
mov r0, r8
adds r4, r3, r0
ldr r1, _08114B74 @ =0x000038c4
adds r0, r5, r1
adds r0, r4, r0
ldrb r1, [r0]
ldr r0, [sp]
bl sub_8114E48
lsls r0, 24
cmp r0, 0
bne _08114B64
b _08114D76
_08114B64:
ldr r2, _08114B78 @ =0x000008c4
adds r0, r5, r2
adds r0, r4, r0
movs r1, 0x9
b _08114D74
.align 2, 0
_08114B70: .4byte 0x02014800
_08114B74: .4byte 0x000038c4
_08114B78: .4byte 0x000008c4
_08114B7C:
movs r4, 0
str r4, [sp, 0x4]
ldr r5, _08114BA8 @ =0x02014800
mov r0, r8
adds r4, r3, r0
ldr r1, _08114BAC @ =0x000038c4
adds r0, r5, r1
adds r0, r4, r0
ldrb r1, [r0]
ldr r0, [sp]
bl sub_8114E48
lsls r0, 24
cmp r0, 0
bne _08114B9C
b _08114D76
_08114B9C:
ldr r2, _08114BB0 @ =0x000008c4
adds r0, r5, r2
adds r0, r4, r0
movs r1, 0xA
b _08114D74
.align 2, 0
_08114BA8: .4byte 0x02014800
_08114BAC: .4byte 0x000038c4
_08114BB0: .4byte 0x000008c4
_08114BB4:
movs r4, 0
str r4, [sp, 0x4]
ldr r5, _08114BE0 @ =0x02014800
mov r0, r8
adds r4, r3, r0
ldr r1, _08114BE4 @ =0x000038c4
adds r0, r5, r1
adds r0, r4, r0
ldrb r1, [r0]
ldr r0, [sp]
bl sub_8114E48
lsls r0, 24
cmp r0, 0
bne _08114BD4
b _08114D76
_08114BD4:
ldr r2, _08114BE8 @ =0x000008c4
adds r0, r5, r2
adds r0, r4, r0
movs r1, 0xB
b _08114D74
.align 2, 0
_08114BE0: .4byte 0x02014800
_08114BE4: .4byte 0x000038c4
_08114BE8: .4byte 0x000008c4
_08114BEC:
movs r4, 0
str r4, [sp, 0x4]
ldr r5, _08114C18 @ =0x02014800
mov r0, r8
adds r4, r3, r0
ldr r1, _08114C1C @ =0x000038c4
adds r0, r5, r1
adds r0, r4, r0
ldrb r1, [r0]
ldr r0, [sp]
bl sub_8114E48
lsls r0, 24
cmp r0, 0
bne _08114C0C
b _08114D76
_08114C0C:
ldr r2, _08114C20 @ =0x000008c4
adds r0, r5, r2
adds r0, r4, r0
movs r1, 0xC
b _08114D74
.align 2, 0
_08114C18: .4byte 0x02014800
_08114C1C: .4byte 0x000038c4
_08114C20: .4byte 0x000008c4
_08114C24:
movs r4, 0
str r4, [sp, 0x4]
ldr r6, _08114C58 @ =0x02014800
mov r0, r8
adds r5, r3, r0
ldr r1, _08114C5C @ =0x000038c4
adds r4, r6, r1
adds r4, r5, r4
ldrb r1, [r4]
ldr r0, [sp]
bl sub_8114DB4
ldr r2, _08114C60 @ =0x000028c4
adds r0, r6, r2
adds r0, r5, r0
ldrb r1, [r4]
ldrb r0, [r0]
cmp r1, r0
bne _08114C68
ldr r4, _08114C64 @ =0x000008c4
adds r0, r6, r4
adds r0, r5, r0
mov r5, sp
ldrb r5, [r5, 0x4]
strb r5, [r0]
b _08114D76
.align 2, 0
_08114C58: .4byte 0x02014800
_08114C5C: .4byte 0x000038c4
_08114C60: .4byte 0x000028c4
_08114C64: .4byte 0x000008c4
_08114C68:
ldr r1, _08114C74 @ =0x000008c4
adds r0, r6, r1
adds r0, r5, r0
movs r1, 0x1
b _08114D74
.align 2, 0
_08114C74: .4byte 0x000008c4
_08114C78:
movs r2, 0
str r2, [sp, 0x4]
ldr r6, _08114CA8 @ =0x02014800
mov r4, r8
adds r5, r3, r4
ldr r0, _08114CAC @ =0x000038c4
adds r4, r6, r0
adds r4, r5, r4
ldrb r1, [r4]
ldr r0, [sp]
bl sub_8114DF0
ldr r1, _08114CB0 @ =0x000028c4
adds r0, r6, r1
adds r0, r5, r0
ldrb r1, [r4]
ldrb r0, [r0]
cmp r1, r0
beq _08114D1E
ldr r1, _08114CB4 @ =0x000008c4
adds r0, r6, r1
adds r0, r5, r0
movs r1, 0x2
b _08114D74
.align 2, 0
_08114CA8: .4byte 0x02014800
_08114CAC: .4byte 0x000038c4
_08114CB0: .4byte 0x000028c4
_08114CB4: .4byte 0x000008c4
_08114CB8:
movs r2, 0
str r2, [sp, 0x4]
ldr r6, _08114CE8 @ =0x02014800
mov r4, r8
adds r5, r3, r4
ldr r0, _08114CEC @ =0x000038c4
adds r4, r6, r0
adds r4, r5, r4
ldrb r1, [r4]
ldr r0, [sp]
bl sub_8114DB4
ldr r1, _08114CF0 @ =0x000028c4
adds r0, r6, r1
adds r0, r5, r0
ldrb r1, [r4]
ldrb r0, [r0]
cmp r1, r0
beq _08114D1E
ldr r1, _08114CF4 @ =0x000008c4
adds r0, r6, r1
adds r0, r5, r0
movs r1, 0x3
b _08114D74
.align 2, 0
_08114CE8: .4byte 0x02014800
_08114CEC: .4byte 0x000038c4
_08114CF0: .4byte 0x000028c4
_08114CF4: .4byte 0x000008c4
_08114CF8:
movs r2, 0
str r2, [sp, 0x4]
ldr r6, _08114D2C @ =0x02014800
mov r4, r8
adds r5, r3, r4
ldr r0, _08114D30 @ =0x000038c4
adds r4, r6, r0
adds r4, r5, r4
ldrb r1, [r4]
ldr r0, [sp]
bl sub_8114DF0
ldr r1, _08114D34 @ =0x000028c4
adds r0, r6, r1
adds r0, r5, r0
ldrb r1, [r4]
ldrb r0, [r0]
cmp r1, r0
bne _08114D6C
_08114D1E:
ldr r2, _08114D38 @ =0x000008c4
adds r0, r6, r2
adds r0, r5, r0
mov r4, sp
ldrb r4, [r4, 0x4]
strb r4, [r0]
b _08114D76
.align 2, 0
_08114D2C: .4byte 0x02014800
_08114D30: .4byte 0x000038c4
_08114D34: .4byte 0x000028c4
_08114D38: .4byte 0x000008c4
_08114D3C:
ldr r0, _08114D48 @ =0x000008c4
add r0, r9
adds r0, r7, r0
movs r1, 0
b _08114D74
.align 2, 0
_08114D48: .4byte 0x000008c4
_08114D4C:
ldr r0, _08114D58 @ =0x000008c4
add r0, r9
adds r0, r7, r0
strb r3, [r0]
b _08114D76
.align 2, 0
_08114D58: .4byte 0x000008c4
_08114D5C:
ldr r0, _08114D68 @ =0x000008c4
add r0, r9
adds r0, r7, r0
movs r1, 0
b _08114D74
.align 2, 0
_08114D68: .4byte 0x000008c4
_08114D6C:
ldr r1, _08114DAC @ =0x000008c4
adds r0, r6, r1
adds r0, r5, r0
movs r1, 0x4
_08114D74:
strb r1, [r0]
_08114D76:
mov r3, r10
ldr r2, _08114DB0 @ =0x02014800
adds r0, r2, 0
adds r0, 0x84
ldr r4, [sp]
adds r0, r4, r0
adds r4, r2, 0
_08114D84:
ldrb r0, [r0]
cmp r3, r0
bge _08114D8E
bl _08114410
_08114D8E:
ldr r5, [sp, 0x8]
str r5, [sp]
cmp r5, 0x3F
bgt _08114D9A
bl _081143F2
_08114D9A:
ldr r0, [sp, 0x4]
add sp, 0x14
pop {r3-r5}
mov r8, r3
mov r9, r4
mov r10, r5
pop {r4-r7}
pop {r1}
bx r1
.align 2, 0
_08114DAC: .4byte 0x000008c4
_08114DB0: .4byte 0x02014800
thumb_func_end unref_sub_81143CC
thumb_func_start sub_8114DB4
sub_8114DB4: @ 8114DB4
push {lr}
lsls r1, 24
lsrs r3, r1, 24
ldr r2, _08114DDC @ =0x02014800
lsrs r1, 25
lsls r1, 2
lsls r0, 7
adds r1, r0
ldr r0, _08114DE0 @ =0x000040c4
adds r2, r0
adds r1, r2
ldr r2, [r1]
movs r0, 0x1
ands r3, r0
cmp r3, 0
beq _08114DE4
ldrb r0, [r2]
movs r1, 0xF0
b _08114DE8
.align 2, 0
_08114DDC: .4byte 0x02014800
_08114DE0: .4byte 0x000040c4
_08114DE4:
ldrb r0, [r2]
movs r1, 0xF
_08114DE8:
orrs r0, r1
strb r0, [r2]
pop {r0}
bx r0
thumb_func_end sub_8114DB4
thumb_func_start sub_8114DF0
sub_8114DF0: @ 8114DF0
push {lr}
lsls r1, 24
lsrs r3, r1, 24
ldr r2, _08114E28 @ =0x02014800
lsrs r1, 25
lsls r1, 2
lsls r0, 7
adds r1, r0
ldr r0, _08114E2C @ =0x000040c4
adds r2, r0
adds r1, r2
ldr r2, [r1]
movs r0, 0xC0
lsls r0, 7
adds r1, r2, r0
movs r0, 0x1
ands r3, r0
cmp r3, 0
beq _08114E30
ldrb r1, [r1]
movs r0, 0xF0
ands r0, r1
cmp r0, 0
bne _08114E42
ldrb r1, [r2]
movs r0, 0xF
b _08114E3E
.align 2, 0
_08114E28: .4byte 0x02014800
_08114E2C: .4byte 0x000040c4
_08114E30:
ldrb r1, [r1]
movs r0, 0xF
ands r0, r1
cmp r0, 0
bne _08114E42
ldrb r1, [r2]
movs r0, 0xF0
_08114E3E:
ands r0, r1
strb r0, [r2]
_08114E42:
pop {r0}
bx r0
thumb_func_end sub_8114DF0
thumb_func_start sub_8114E48
sub_8114E48: @ 8114E48
push {r4-r7,lr}
adds r4, r0, 0
lsls r1, 24
lsrs r6, r1, 24
ldr r1, _08114E6C @ =0x02014800
ldr r2, _08114E70 @ =0x0000a0c4
adds r0, r1, r2
ldrb r0, [r0]
adds r5, r1, 0
cmp r0, 0
bne _08114E60
b _08114F5E
_08114E60:
movs r1, 0
movs r3, 0
cmp r4, 0
bne _08114E74
movs r1, 0x1
b _08114EA6
.align 2, 0
_08114E6C: .4byte 0x02014800
_08114E70: .4byte 0x0000a0c4
_08114E74:
subs r0, r4, 0x1
lsls r0, 5
adds r2, r3, r0
adds r0, r5, 0
adds r0, 0xC4
adds r0, r2, r0
ldrb r0, [r0]
cmp r0, 0
bne _08114EA6
ldr r7, _08114EC4 @ =0x000008c4
adds r0, r5, r7
adds r0, r2, r0
ldrb r0, [r0]
cmp r0, 0
bne _08114EA6
adds r3, 0x1
cmp r3, 0x1F
bgt _08114EA6
cmp r4, 0
bne _08114E74
lsls r0, r1, 24
movs r1, 0x80
lsls r1, 17
adds r0, r1
lsrs r1, r0, 24
_08114EA6:
cmp r3, 0x20
bne _08114EB4
lsls r0, r1, 24
movs r2, 0x80
lsls r2, 17
adds r0, r2
lsrs r1, r0, 24
_08114EB4:
movs r3, 0
cmp r4, 0x3F
bne _08114EC8
lsls r0, r1, 24
movs r7, 0x80
lsls r7, 17
adds r0, r7
b _08114EF8
.align 2, 0
_08114EC4: .4byte 0x000008c4
_08114EC8:
adds r0, r4, 0x1
lsls r0, 5
adds r2, r3, r0
adds r0, r5, 0
adds r0, 0xC4
adds r0, r2, r0
ldrb r0, [r0]
cmp r0, 0
bne _08114EFA
ldr r7, _08114F64 @ =0x000008c4
adds r0, r5, r7
adds r0, r2, r0
ldrb r0, [r0]
cmp r0, 0
bne _08114EFA
adds r3, 0x1
cmp r3, 0x1F
bgt _08114EFA
cmp r4, 0x3F
bne _08114EC8
lsls r0, r1, 24
movs r1, 0x80
lsls r1, 17
adds r0, r1
_08114EF8:
lsrs r1, r0, 24
_08114EFA:
cmp r3, 0x20
bne _08114F08
lsls r0, r1, 24
movs r2, 0x80
lsls r2, 17
adds r0, r2
lsrs r1, r0, 24
_08114F08:
cmp r1, 0x2
beq _08114F5E
subs r0, r6, 0x2
lsls r0, 24
lsrs r1, r0, 24
cmp r0, 0
bge _08114F18
movs r1, 0
_08114F18:
adds r0, r6, 0x2
lsls r0, 24
lsrs r2, r0, 24
asrs r0, 24
cmp r0, 0x3F
ble _08114F26
movs r2, 0x3F
_08114F26:
lsls r1, 24
asrs r3, r1, 24
lsls r0, r2, 24
asrs r2, r0, 24
adds r6, r1, 0
adds r7, r0, 0
cmp r3, r2
bge _08114F7C
cmp r4, 0
beq _08114F7C
subs r0, r4, 0x1
lsls r5, r0, 7
ldr r0, _08114F68 @ =0x020188c4
mov r12, r0
_08114F42:
asrs r0, r3, 1
lsls r0, 2
adds r0, r5
add r0, r12
ldr r1, [r0]
movs r0, 0x1
ands r0, r3
cmp r0, 0
beq _08114F6C
ldrb r1, [r1]
movs r0, 0xF0
_08114F58:
ands r0, r1
cmp r0, 0
beq _08114F72
_08114F5E:
movs r0, 0x1
b _08114FCA
.align 2, 0
_08114F64: .4byte 0x000008c4
_08114F68: .4byte 0x020188c4
_08114F6C:
ldrb r1, [r1]
movs r0, 0xF
b _08114F58
_08114F72:
adds r3, 0x1
cmp r3, r2
bge _08114F7C
cmp r4, 0
bne _08114F42
_08114F7C:
asrs r3, r6, 24
asrs r1, r7, 24
cmp r3, r1
bge _08114FC8
cmp r4, 0x3F
beq _08114FC8
adds r0, r4, 0x1
lsls r5, r0, 7
ldr r6, _08114FB0 @ =0x020188c4
adds r2, r1, 0
_08114F90:
asrs r0, r3, 1
lsls r0, 2
adds r0, r5
adds r0, r6
ldr r1, [r0]
movs r0, 0x1
ands r0, r3
cmp r0, 0
beq _08114FB4
ldrb r1, [r1]
movs r0, 0xF0
ands r0, r1
cmp r0, 0
beq _08114FBE
b _08114F5E
.align 2, 0
_08114FB0: .4byte 0x020188c4
_08114FB4:
ldrb r1, [r1]
movs r0, 0xF
ands r0, r1
cmp r0, 0
bne _08114F5E
_08114FBE:
adds r3, 0x1
cmp r3, r2
bge _08114FC8
cmp r4, 0x3F
bne _08114F90
_08114FC8:
movs r0, 0
_08114FCA:
pop {r4-r7}
pop {r1}
bx r1
thumb_func_end sub_8114E48
thumb_func_start HBlankCB_EvolutionScene
HBlankCB_EvolutionScene: @ 8114FD0
bx lr
thumb_func_end HBlankCB_EvolutionScene
thumb_func_start VBlankCB_EvolutionScene
VBlankCB_EvolutionScene: @ 8114FD4
push {lr}
ldr r1, _08115034 @ =REG_BG0CNT
ldr r2, _08115038 @ =0x00009803
adds r0, r2, 0
strh r0, [r1]
adds r1, 0x8
ldr r0, _0811503C @ =gUnknown_030042A4
ldrh r0, [r0]
strh r0, [r1]
adds r1, 0x2
ldr r0, _08115040 @ =gUnknown_030042A0
ldrh r0, [r0]
strh r0, [r1]
adds r1, 0x2
ldr r0, _08115044 @ =gUnknown_030042C0
ldrh r0, [r0]
strh r0, [r1]
adds r1, 0x2
ldr r0, _08115048 @ =gUnknown_030041B4
ldrh r0, [r0]
strh r0, [r1]
adds r1, 0x2
ldr r0, _0811504C @ =gUnknown_03004288
ldrh r0, [r0]
strh r0, [r1]
adds r1, 0x2
ldr r0, _08115050 @ =gUnknown_03004280
ldrh r0, [r0]
strh r0, [r1]
adds r1, 0x2
ldr r0, _08115054 @ =gUnknown_030041B0
ldrh r0, [r0]
strh r0, [r1]
adds r1, 0x2
ldr r0, _08115058 @ =gUnknown_030041B8
ldrh r0, [r0]
strh r0, [r1]
bl LoadOam
bl ProcessSpriteCopyRequests
bl TransferPlttBuffer
bl sub_8089668
pop {r0}
bx r0
.align 2, 0
_08115034: .4byte REG_BG0CNT
_08115038: .4byte 0x00009803
_0811503C: .4byte gUnknown_030042A4
_08115040: .4byte gUnknown_030042A0
_08115044: .4byte gUnknown_030042C0
_08115048: .4byte gUnknown_030041B4
_0811504C: .4byte gUnknown_03004288
_08115050: .4byte gUnknown_03004280
_08115054: .4byte gUnknown_030041B0
_08115058: .4byte gUnknown_030041B8
thumb_func_end VBlankCB_EvolutionScene
thumb_func_start VBlankCB_TradeEvolutionScene
VBlankCB_TradeEvolutionScene: @ 811505C
push {lr}
ldr r1, _081150B4 @ =REG_BG0HOFS
ldr r0, _081150B8 @ =gUnknown_030042A4
ldrh r0, [r0]
strh r0, [r1]
adds r1, 0x2
ldr r0, _081150BC @ =gUnknown_030042A0
ldrh r0, [r0]
strh r0, [r1]
adds r1, 0x2
ldr r0, _081150C0 @ =gUnknown_030042C0
ldrh r0, [r0]
strh r0, [r1]
adds r1, 0x2
ldr r0, _081150C4 @ =gUnknown_030041B4
ldrh r0, [r0]
strh r0, [r1]
adds r1, 0x2
ldr r0, _081150C8 @ =gUnknown_03004288
ldrh r0, [r0]
strh r0, [r1]
adds r1, 0x2
ldr r0, _081150CC @ =gUnknown_03004280
ldrh r0, [r0]
strh r0, [r1]
adds r1, 0x2
ldr r0, _081150D0 @ =gUnknown_030041B0
ldrh r0, [r0]
strh r0, [r1]
adds r1, 0x2
ldr r0, _081150D4 @ =gUnknown_030041B8
ldrh r0, [r0]
strh r0, [r1]
bl LoadOam
bl ProcessSpriteCopyRequests
bl TransferPlttBuffer
bl sub_8089668
pop {r0}
bx r0
.align 2, 0
_081150B4: .4byte REG_BG0HOFS
_081150B8: .4byte gUnknown_030042A4
_081150BC: .4byte gUnknown_030042A0
_081150C0: .4byte gUnknown_030042C0
_081150C4: .4byte gUnknown_030041B4
_081150C8: .4byte gUnknown_03004288
_081150CC: .4byte gUnknown_03004280
_081150D0: .4byte gUnknown_030041B0
_081150D4: .4byte gUnknown_030041B8
thumb_func_end VBlankCB_TradeEvolutionScene
thumb_func_start sub_81150D8
sub_81150D8: @ 81150D8
push {lr}
ldr r0, _081150F4 @ =gUnknown_02024D1E
ldrb r1, [r0, 0x1]
lsls r1, 28
movs r0, 0x90
lsls r0, 23
adds r1, r0
lsrs r1, 24
movs r0, 0xC8
bl sub_814A880
pop {r0}
bx r0
.align 2, 0
_081150F4: .4byte gUnknown_02024D1E
thumb_func_end sub_81150D8
thumb_func_start HBlankCB_TradeEvolutionScene
HBlankCB_TradeEvolutionScene: @ 81150F8
bx lr
thumb_func_end HBlankCB_TradeEvolutionScene
.align 2, 0 @ Don't pad with nop.