mirror of
https://github.com/pret/pokeruby.git
synced 2026-08-08 10:34:12 -05:00
6718 lines
120 KiB
ArmAsm
6718 lines
120 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 @ =gBattleTerrain
|
|
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 gBattleTerrain
|
|
_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 @ =gBattleTerrain
|
|
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 gBattleTerrain
|
|
_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 GetNationalPokedexFlag
|
|
ldrh r0, [r4, 0xC]
|
|
bl SpeciesToNationalPokedexNum
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
movs r1, 0x3
|
|
bl GetNationalPokedexFlag
|
|
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 @ =gBattleCommunication
|
|
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 gBattleCommunication
|
|
_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 @ =gBattleCommunication
|
|
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 gBattleCommunication
|
|
_0811262C: .4byte gTasks
|
|
_08112630:
|
|
ldr r4, _08112664 @ =gBattleCommunication
|
|
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 gBattleCommunication
|
|
_08112668: .4byte 0x02014800
|
|
_0811266C:
|
|
ldr r4, _08112698 @ =gBattleCommunication
|
|
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 gBattleCommunication
|
|
_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 @ =gBattleCommunication
|
|
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 gBattleCommunication
|
|
_081126E0:
|
|
bl sub_8149B44
|
|
ldr r1, _081126F4 @ =gBattleCommunication
|
|
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 gBattleCommunication
|
|
_081126F8: .4byte gTasks
|
|
_081126FC:
|
|
ldr r5, _08112724 @ =gBattleCommunication
|
|
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 gBattleCommunication
|
|
_08112728:
|
|
ldr r0, _08112750 @ =gBattleCommunication
|
|
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 gBattleCommunication
|
|
_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 EvolutionRenameMon
|
|
ldrh r0, [r4, 0x10]
|
|
bl SpeciesToNationalPokedexNum
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
movs r1, 0x2
|
|
bl GetNationalPokedexFlag
|
|
ldrh r0, [r4, 0x10]
|
|
bl SpeciesToNationalPokedexNum
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
movs r1, 0x3
|
|
bl GetNationalPokedexFlag
|
|
movs r0, 0xE
|
|
bl IncrementGameStat
|
|
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 @ =gBattleTextBuff1
|
|
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 gBattleTextBuff1
|
|
_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 @ =gBattleCommunication
|
|
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 gBattleCommunication
|
|
_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 @ =gBattleStringsTable
|
|
ldr r0, [r0, 0xC]
|
|
bl StrCpyDecodeToDisplayedStringBattle
|
|
ldr r1, _08112A44 @ =gDisplayedStringBattle
|
|
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 gBattleStringsTable
|
|
_08112A44: .4byte gDisplayedStringBattle
|
|
_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 @ =gBattleStringsTable
|
|
ldr r0, [r0, 0x10]
|
|
bl StrCpyDecodeToDisplayedStringBattle
|
|
ldr r1, _08112B24 @ =gDisplayedStringBattle
|
|
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 gBattleStringsTable
|
|
_08112B24: .4byte gDisplayedStringBattle
|
|
_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 @ =gBattleStringsTable
|
|
ldr r0, [r0, 0x14]
|
|
bl StrCpyDecodeToDisplayedStringBattle
|
|
ldr r1, _08112B74 @ =gDisplayedStringBattle
|
|
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 gBattleStringsTable
|
|
_08112B74: .4byte gDisplayedStringBattle
|
|
_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 @ =gBattleStringsTable
|
|
ldr r0, [r0, 0x18]
|
|
bl StrCpyDecodeToDisplayedStringBattle
|
|
ldr r1, _08112C00 @ =gDisplayedStringBattle
|
|
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 @ =gBattleCommunication
|
|
strb r2, [r0, 0x1]
|
|
bl sub_802BC6C
|
|
b _08112FD0
|
|
.align 2, 0
|
|
_08112BF8: .4byte gUnknown_03004210
|
|
_08112BFC: .4byte gBattleStringsTable
|
|
_08112C00: .4byte gDisplayedStringBattle
|
|
_08112C04: .4byte gTasks
|
|
_08112C08: .4byte gBattleCommunication
|
|
_08112C0C:
|
|
ldr r0, _08112CA4 @ =gMain
|
|
ldrh r1, [r0, 0x2E]
|
|
movs r0, 0x40
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _08112C32
|
|
ldr r4, _08112CA8 @ =gBattleCommunication
|
|
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 @ =gBattleCommunication
|
|
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 @ =gBattleStringsTable
|
|
movs r1, 0x92
|
|
lsls r1, 3
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
bl StrCpyDecodeToDisplayedStringBattle
|
|
ldr r0, _08112CB0 @ =gUnknown_03004210
|
|
ldr r1, _08112CB4 @ =gDisplayedStringBattle
|
|
movs r2, 0xF
|
|
str r2, [sp]
|
|
movs r2, 0x90
|
|
movs r3, 0x2
|
|
bl sub_8002EB0
|
|
movs r0, 0x5
|
|
bl PlaySE
|
|
ldr r0, _08112CA8 @ =gBattleCommunication
|
|
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 gBattleCommunication
|
|
_08112CAC: .4byte gBattleStringsTable
|
|
_08112CB0: .4byte gUnknown_03004210
|
|
_08112CB4: .4byte gDisplayedStringBattle
|
|
_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 @ =gBattleStringsTable
|
|
movs r1, 0x92
|
|
lsls r1, 3
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
bl StrCpyDecodeToDisplayedStringBattle
|
|
ldr r0, _08112D34 @ =gUnknown_03004210
|
|
ldr r1, _08112D38 @ =gDisplayedStringBattle
|
|
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 gBattleStringsTable
|
|
_08112D34: .4byte gUnknown_03004210
|
|
_08112D38: .4byte gDisplayedStringBattle
|
|
_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 IsHMMove2
|
|
cmp r0, 0
|
|
beq _08112E24
|
|
ldr r0, _08112E10 @ =gBattleStringsTable
|
|
ldr r3, _08112E14 @ =0x000004cc
|
|
adds r0, r3
|
|
ldr r0, [r0]
|
|
bl StrCpyDecodeToDisplayedStringBattle
|
|
ldr r0, _08112E18 @ =gUnknown_03004210
|
|
ldr r1, _08112E1C @ =gDisplayedStringBattle
|
|
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 gBattleStringsTable
|
|
_08112E14: .4byte 0x000004cc
|
|
_08112E18: .4byte gUnknown_03004210
|
|
_08112E1C: .4byte gDisplayedStringBattle
|
|
_08112E20: .4byte gTasks
|
|
_08112E24:
|
|
ldr r1, _08112E80 @ =gBattleTextBuff2
|
|
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 @ =gBattleStringsTable
|
|
movs r3, 0xCF
|
|
lsls r3, 2
|
|
adds r0, r3
|
|
ldr r0, [r0]
|
|
bl StrCpyDecodeToDisplayedStringBattle
|
|
ldr r0, _08112E8C @ =gUnknown_03004210
|
|
ldr r1, _08112E90 @ =gDisplayedStringBattle
|
|
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 gBattleTextBuff2
|
|
_08112E84: .4byte word_2024E82
|
|
_08112E88: .4byte gBattleStringsTable
|
|
_08112E8C: .4byte gUnknown_03004210
|
|
_08112E90: .4byte gDisplayedStringBattle
|
|
_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 @ =gBattleStringsTable
|
|
ldr r0, [r0, 0x1C]
|
|
bl StrCpyDecodeToDisplayedStringBattle
|
|
ldr r1, _08112EE0 @ =gDisplayedStringBattle
|
|
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 gBattleStringsTable
|
|
_08112EE0: .4byte gDisplayedStringBattle
|
|
_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 @ =gBattleStringsTable
|
|
movs r1, 0xD0
|
|
lsls r1, 2
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
bl StrCpyDecodeToDisplayedStringBattle
|
|
ldr r1, _08112F30 @ =gDisplayedStringBattle
|
|
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 gBattleStringsTable
|
|
_08112F30: .4byte gDisplayedStringBattle
|
|
_08112F34: .4byte gTasks
|
|
_08112F38:
|
|
ldr r0, _08112F68 @ =gBattleStringsTable
|
|
ldr r0, [r0, 0x20]
|
|
bl StrCpyDecodeToDisplayedStringBattle
|
|
ldr r0, _08112F6C @ =gUnknown_03004210
|
|
ldr r1, _08112F70 @ =gDisplayedStringBattle
|
|
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 gBattleStringsTable
|
|
_08112F6C: .4byte gUnknown_03004210
|
|
_08112F70: .4byte gDisplayedStringBattle
|
|
_08112F74: .4byte gTasks
|
|
_08112F78:
|
|
ldr r0, _08112FA0 @ =gBattleStringsTable
|
|
ldr r0, [r0, 0x24]
|
|
bl StrCpyDecodeToDisplayedStringBattle
|
|
ldr r0, _08112FA4 @ =gUnknown_03004210
|
|
ldr r1, _08112FA8 @ =gDisplayedStringBattle
|
|
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 gBattleStringsTable
|
|
_08112FA4: .4byte gUnknown_03004210
|
|
_08112FA8: .4byte gDisplayedStringBattle
|
|
_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 @ =gBattleCommunication
|
|
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 gBattleCommunication
|
|
_08113188: .4byte gTasks
|
|
_0811318C:
|
|
ldr r4, _081131C0 @ =gBattleCommunication
|
|
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 gBattleCommunication
|
|
_081131C4: .4byte 0x02014800
|
|
_081131C8:
|
|
ldr r4, _081131EC @ =gBattleCommunication
|
|
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 gBattleCommunication
|
|
_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 @ =gBattleCommunication
|
|
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 gBattleCommunication
|
|
_0811322C:
|
|
bl sub_8149B44
|
|
ldr r1, _08113240 @ =gBattleCommunication
|
|
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 gBattleCommunication
|
|
_08113244: .4byte gTasks
|
|
_08113248:
|
|
ldr r5, _08113270 @ =gBattleCommunication
|
|
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 gBattleCommunication
|
|
_08113274:
|
|
ldr r0, _081132A4 @ =gBattleCommunication
|
|
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 gBattleCommunication
|
|
_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 EvolutionRenameMon
|
|
ldrh r0, [r4, 0x10]
|
|
bl SpeciesToNationalPokedexNum
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
movs r1, 0x2
|
|
bl GetNationalPokedexFlag
|
|
ldrh r0, [r4, 0x10]
|
|
bl SpeciesToNationalPokedexNum
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
movs r1, 0x3
|
|
bl GetNationalPokedexFlag
|
|
movs r0, 0xE
|
|
bl IncrementGameStat
|
|
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 @ =gBattleTextBuff1
|
|
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 gBattleTextBuff1
|
|
_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 @ =gBattleStringsTable
|
|
ldr r0, [r0, 0xC]
|
|
bl StrCpyDecodeToDisplayedStringBattle
|
|
ldr r2, [r4]
|
|
adds r0, r2, 0x4
|
|
ldr r1, _081134F0 @ =gDisplayedStringBattle
|
|
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 gBattleStringsTable
|
|
_081134F0: .4byte gDisplayedStringBattle
|
|
_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 @ =gBattleStringsTable
|
|
ldr r0, [r0, 0x10]
|
|
bl StrCpyDecodeToDisplayedStringBattle
|
|
ldr r2, [r4]
|
|
adds r0, r2, 0x4
|
|
ldr r1, _081135DC @ =gDisplayedStringBattle
|
|
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 gBattleStringsTable
|
|
_081135DC: .4byte gDisplayedStringBattle
|
|
_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 @ =gBattleStringsTable
|
|
ldr r0, [r0, 0x14]
|
|
bl StrCpyDecodeToDisplayedStringBattle
|
|
ldr r2, [r4]
|
|
adds r0, r2, 0x4
|
|
ldr r1, _08113630 @ =gDisplayedStringBattle
|
|
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 gBattleStringsTable
|
|
_08113630: .4byte gDisplayedStringBattle
|
|
_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 @ =gBattleStringsTable
|
|
ldr r0, [r0, 0x18]
|
|
bl StrCpyDecodeToDisplayedStringBattle
|
|
ldr r2, [r4]
|
|
adds r0, r2, 0x4
|
|
ldr r1, _08113704 @ =gDisplayedStringBattle
|
|
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 @ =gBattleCommunication
|
|
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 gBattleStringsTable
|
|
_08113704: .4byte gDisplayedStringBattle
|
|
_08113708: .4byte gTasks
|
|
_0811370C: .4byte gBattleCommunication
|
|
_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 @ =gBattleCommunication
|
|
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 @ =gBattleCommunication
|
|
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 DestroyMenuCursor
|
|
ldr r0, _081137D8 @ =gBattleStringsTable
|
|
movs r1, 0x92
|
|
lsls r1, 3
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
bl StrCpyDecodeToDisplayedStringBattle
|
|
ldr r2, [r4]
|
|
adds r0, r2, 0x4
|
|
ldr r1, _081137DC @ =gDisplayedStringBattle
|
|
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 @ =gBattleCommunication
|
|
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 gBattleCommunication
|
|
_081137D4: .4byte gUnknown_03004828
|
|
_081137D8: .4byte gBattleStringsTable
|
|
_081137DC: .4byte gDisplayedStringBattle
|
|
_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 DestroyMenuCursor
|
|
ldr r0, _08113874 @ =gBattleStringsTable
|
|
movs r1, 0x92
|
|
lsls r1, 3
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
bl StrCpyDecodeToDisplayedStringBattle
|
|
ldr r2, [r4]
|
|
adds r0, r2, 0x4
|
|
ldr r1, _08113878 @ =gDisplayedStringBattle
|
|
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 gBattleStringsTable
|
|
_08113878: .4byte gDisplayedStringBattle
|
|
_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 IsHMMove2
|
|
cmp r0, 0
|
|
beq _08113970
|
|
ldr r0, _0811395C @ =gBattleStringsTable
|
|
ldr r3, _08113960 @ =0x000004cc
|
|
adds r0, r3
|
|
ldr r0, [r0]
|
|
bl StrCpyDecodeToDisplayedStringBattle
|
|
ldr r0, _08113964 @ =gUnknown_03004828
|
|
ldr r2, [r0]
|
|
adds r0, r2, 0x4
|
|
ldr r1, _08113968 @ =gDisplayedStringBattle
|
|
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 gBattleStringsTable
|
|
_08113960: .4byte 0x000004cc
|
|
_08113964: .4byte gUnknown_03004828
|
|
_08113968: .4byte gDisplayedStringBattle
|
|
_0811396C: .4byte gTasks
|
|
_08113970:
|
|
ldr r1, _081139D0 @ =gBattleTextBuff2
|
|
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 @ =gBattleStringsTable
|
|
movs r3, 0xCF
|
|
lsls r3, 2
|
|
adds r0, r3
|
|
ldr r0, [r0]
|
|
bl StrCpyDecodeToDisplayedStringBattle
|
|
ldr r0, _081139DC @ =gUnknown_03004828
|
|
ldr r2, [r0]
|
|
adds r0, r2, 0x4
|
|
ldr r1, _081139E0 @ =gDisplayedStringBattle
|
|
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 gBattleTextBuff2
|
|
_081139D4: .4byte word_2024E82
|
|
_081139D8: .4byte gBattleStringsTable
|
|
_081139DC: .4byte gUnknown_03004828
|
|
_081139E0: .4byte gDisplayedStringBattle
|
|
_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 @ =gBattleStringsTable
|
|
ldr r0, [r0, 0x1C]
|
|
bl StrCpyDecodeToDisplayedStringBattle
|
|
ldr r2, [r4]
|
|
adds r0, r2, 0x4
|
|
ldr r1, _08113A34 @ =gDisplayedStringBattle
|
|
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 gBattleStringsTable
|
|
_08113A34: .4byte gDisplayedStringBattle
|
|
_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 @ =gBattleStringsTable
|
|
movs r1, 0xD0
|
|
lsls r1, 2
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
bl StrCpyDecodeToDisplayedStringBattle
|
|
ldr r2, [r4]
|
|
adds r0, r2, 0x4
|
|
ldr r1, _08113A88 @ =gDisplayedStringBattle
|
|
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 gBattleStringsTable
|
|
_08113A88: .4byte gDisplayedStringBattle
|
|
_08113A8C: .4byte gTasks
|
|
_08113A90:
|
|
ldr r0, _08113AC8 @ =gBattleStringsTable
|
|
ldr r0, [r0, 0x20]
|
|
bl StrCpyDecodeToDisplayedStringBattle
|
|
ldr r0, _08113ACC @ =gUnknown_03004828
|
|
ldr r2, [r0]
|
|
adds r0, r2, 0x4
|
|
ldr r1, _08113AD0 @ =gDisplayedStringBattle
|
|
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 gBattleStringsTable
|
|
_08113ACC: .4byte gUnknown_03004828
|
|
_08113AD0: .4byte gDisplayedStringBattle
|
|
_08113AD4: .4byte gTasks
|
|
_08113AD8:
|
|
ldr r0, _08113B08 @ =gBattleStringsTable
|
|
ldr r0, [r0, 0x24]
|
|
bl StrCpyDecodeToDisplayedStringBattle
|
|
ldr r0, _08113B0C @ =gUnknown_03004828
|
|
ldr r2, [r0]
|
|
adds r0, r2, 0x4
|
|
ldr r1, _08113B10 @ =gDisplayedStringBattle
|
|
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 gBattleStringsTable
|
|
_08113B0C: .4byte gUnknown_03004828
|
|
_08113B10: .4byte gDisplayedStringBattle
|
|
_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 @ =gBattleCommunication
|
|
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 gBattleCommunication
|
|
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.
|