summaryrefslogtreecommitdiff
path: root/asm/evolution_scene.s
diff options
context:
space:
mode:
authorYamaArashi <shadow962@live.com>2016-10-25 19:57:15 -0700
committerYamaArashi <shadow962@live.com>2016-10-25 19:57:15 -0700
commitfb2f1c8bce95cbe584fbd674b8e7865d2bc84bc6 (patch)
tree95d47e9e0d44e207d276d6858b44c6be5c845589 /asm/evolution_scene.s
parentcfe4a52393bd5d09d78f68ac165406d3e9354706 (diff)
split some files out of rom6.s
Diffstat (limited to 'asm/evolution_scene.s')
-rw-r--r--asm/evolution_scene.s6717
1 files changed, 6717 insertions, 0 deletions
diff --git a/asm/evolution_scene.s b/asm/evolution_scene.s
new file mode 100644
index 000000000..125f7d0e7
--- /dev/null
+++ b/asm/evolution_scene.s
@@ -0,0 +1,6717 @@
+ .include "constants/gba_constants.s"
+ .include "constants/species_constants.s"
+ .include "asm/macros.s"
+
+ .syntax unified
+
+ .text
+
+ thumb_func_start sub_8111894
+sub_8111894: @ 8111894
+ push {lr}
+ bl UpdatePaletteFade
+ bl RunTasks
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8111894
+
+ thumb_func_start sub_81118A4
+sub_81118A4: @ 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 evolution_cutscene
+_08111918:
+ add sp, 0x4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08111920: .4byte gPaletteFade
+ thumb_func_end sub_81118A4
+
+ thumb_func_start sub_8111924
+sub_8111924: @ 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 @ =sub_81118A4
+ 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 @ =sub_8111894
+ bl SetMainCallback2
+ pop {r3}
+ mov r8, r3
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08111978: .4byte sub_81118A4
+_0811197C: .4byte gTasks
+_08111980: .4byte sub_8111894
+ thumb_func_end sub_8111924
+
+ thumb_func_start evolution_cutscene
+evolution_cutscene: @ 8111984
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x38
+ str r0, [sp, 0x20]
+ mov r10, r1
+ mov r0, r10
+ lsls r0, 16
+ lsrs r0, 16
+ mov r10, r0
+ lsls r2, 24
+ lsrs r2, 24
+ str r2, [sp, 0x24]
+ lsls r3, 24
+ lsrs r3, 24
+ str r3, [sp, 0x28]
+ movs r0, 0
+ bl SetHBlankCallback
+ movs r0, 0
+ bl SetVBlankCallback
+ movs r5, 0
+ str r5, [sp, 0x1C]
+ add r0, sp, 0x1C
+ movs r1, 0xC0
+ lsls r1, 19
+ ldr r2, _08111C10 @ =0x05006000
+ bl CpuSet
+ ldr r0, _08111C14 @ =REG_MOSAIC
+ strh r5, [r0]
+ subs r0, 0xC
+ strh r5, [r0]
+ adds r0, 0x4
+ strh r5, [r0]
+ subs r0, 0x2
+ strh r5, [r0]
+ adds r0, 0x4
+ strh r5, [r0]
+ adds r0, 0x2
+ strh r5, [r0]
+ adds r0, 0x2
+ strh r5, [r0]
+ ldr r4, _08111C18 @ =gWindowConfig_81E6C58
+ adds r0, r4, 0
+ bl SetUpWindowConfig
+ bl ResetPaletteFade
+ ldr r0, _08111C1C @ =gUnknown_030042A4
+ strh r5, [r0]
+ ldr r0, _08111C20 @ =gUnknown_030042A0
+ strh r5, [r0]
+ ldr r0, _08111C24 @ =gUnknown_030042C0
+ strh r5, [r0]
+ ldr r0, _08111C28 @ =gUnknown_030041B4
+ strh r5, [r0]
+ ldr r0, _08111C2C @ =gUnknown_03004288
+ strh r5, [r0]
+ ldr r0, _08111C30 @ =gUnknown_03004280
+ strh r5, [r0]
+ ldr r1, _08111C34 @ =gUnknown_030041B0
+ movs r2, 0x80
+ lsls r2, 1
+ adds r0, r2, 0
+ strh r0, [r1]
+ ldr r0, _08111C38 @ =gUnknown_030041B8
+ strh r5, [r0]
+ ldr r0, _08111C3C @ =gUnknown_03004210
+ adds r1, r4, 0
+ bl InitWindowFromConfig
+ ldr r1, _08111C40 @ =gUnknown_0300428C
+ movs r0, 0x9
+ strb r0, [r1]
+ bl sub_800D6D4
+ bl sub_800DAB8
+ bl ResetSpriteData
+ bl remove_some_task
+ bl ResetTasks
+ bl FreeAllSpritePalettes
+ ldr r0, _08111C44 @ =gReservedSpritePaletteCount
+ movs r3, 0x4
+ strb r3, [r0]
+ ldr r0, [sp, 0x20]
+ movs r1, 0x2
+ add r2, sp, 0x8
+ bl GetMonData
+ ldr r0, _08111C48 @ =gStringVar1
+ add r1, sp, 0x8
+ bl StringCopy10
+ ldr r0, _08111C4C @ =gStringVar2
+ movs r1, 0xB
+ mov r4, r10
+ muls r4, r1
+ adds r1, r4, 0
+ ldr r2, _08111C50 @ =gSpeciesNames
+ adds r1, r2
+ bl StringCopy
+ ldr r0, [sp, 0x20]
+ movs r1, 0xB
+ bl GetMonData
+ adds r6, r0, 0
+ lsls r6, 16
+ lsrs r6, 16
+ ldr r0, [sp, 0x20]
+ movs r1, 0x1
+ bl GetMonData
+ str r0, [sp, 0x2C]
+ ldr r0, [sp, 0x20]
+ movs r1, 0
+ bl GetMonData
+ str r0, [sp, 0x30]
+ lsls r0, r6, 3
+ ldr r1, _08111C54 @ =gMonFrontPicTable
+ adds r0, r1
+ lsls r2, r6, 2
+ ldr r3, _08111C58 @ =gMonFrontPicCoords
+ adds r2, r3
+ ldrb r1, [r2]
+ ldrb r2, [r2, 0x1]
+ ldr r4, _08111C5C @ =gUnknown_081FAF4C
+ ldr r3, [r4, 0x4]
+ str r3, [sp]
+ str r6, [sp, 0x4]
+ movs r3, 0x80
+ lsls r3, 18
+ bl DecompressPicFromTable_2
+ adds r0, r6, 0
+ ldr r1, [sp, 0x2C]
+ ldr r2, [sp, 0x30]
+ bl sub_80409C8
+ ldr r0, [r0]
+ movs r1, 0x88
+ lsls r1, 1
+ movs r2, 0x20
+ bl LoadCompressedPalette
+ adds r0, r6, 0
+ movs r1, 0x1
+ bl GetMonSpriteTemplate_803C56C
+ ldr r0, _08111C60 @ =gUnknown_02024E8C
+ mov r9, r0
+ ldr r1, _08111C64 @ =gDummySpriteAffineAnimTable
+ str r1, [r0, 0x10]
+ movs r1, 0x78
+ movs r2, 0x40
+ movs r3, 0x1E
+ bl CreateSprite
+ lsls r1, r0, 24
+ lsrs r2, r1, 24
+ ldr r3, _08111C68 @ =0x02014800
+ strb r0, [r3]
+ ldr r7, _08111C6C @ =gSprites
+ lsls r1, r2, 4
+ adds r1, r2
+ lsls r1, 2
+ movs r4, 0x1C
+ adds r4, r7
+ mov r8, r4
+ adds r0, r1, r4
+ ldr r2, _08111C70 @ =nullsub_37
+ str r2, [r0]
+ adds r1, r7
+ ldrb r2, [r1, 0x5]
+ movs r4, 0xF
+ adds r0, r4, 0
+ ands r0, r2
+ movs r2, 0x10
+ orrs r0, r2
+ strb r0, [r1, 0x5]
+ adds r1, 0x3E
+ ldrb r0, [r1]
+ movs r3, 0x4
+ orrs r0, r3
+ strb r0, [r1]
+ mov r1, r10
+ lsls r0, r1, 3
+ ldr r2, _08111C54 @ =gMonFrontPicTable
+ adds r0, r2
+ lsls r2, r1, 2
+ ldr r3, _08111C58 @ =gMonFrontPicCoords
+ adds r2, r3
+ ldrb r1, [r2]
+ ldrb r2, [r2, 0x1]
+ str r2, [sp, 0x34]
+ ldr r2, _08111C5C @ =gUnknown_081FAF4C
+ ldr r2, [r2, 0xC]
+ str r2, [sp]
+ mov r3, r10
+ str r3, [sp, 0x4]
+ ldr r2, [sp, 0x34]
+ movs r3, 0x80
+ lsls r3, 18
+ bl DecompressPicFromTable_2
+ mov r0, r10
+ ldr r1, [sp, 0x2C]
+ ldr r2, [sp, 0x30]
+ bl sub_80409C8
+ ldr r0, [r0]
+ movs r1, 0x90
+ lsls r1, 1
+ movs r2, 0x20
+ bl LoadCompressedPalette
+ mov r0, r10
+ movs r1, 0x3
+ bl GetMonSpriteTemplate_803C56C
+ ldr r0, _08111C64 @ =gDummySpriteAffineAnimTable
+ mov r1, r9
+ str r0, [r1, 0x10]
+ mov r0, r9
+ movs r1, 0x78
+ movs r2, 0x40
+ movs r3, 0x1E
+ bl CreateSprite
+ lsls r1, r0, 24
+ lsrs r2, r1, 24
+ ldr r3, _08111C68 @ =0x02014800
+ strb r0, [r3, 0x1]
+ lsls r1, r2, 4
+ adds r1, r2
+ lsls r1, 2
+ add r8, r1
+ ldr r0, _08111C70 @ =nullsub_37
+ mov r2, r8
+ str r0, [r2]
+ adds r1, r7
+ ldrb r0, [r1, 0x5]
+ ands r4, r0
+ movs r0, 0x20
+ orrs r4, r0
+ strb r4, [r1, 0x5]
+ adds r1, 0x3E
+ ldrb r0, [r1]
+ movs r3, 0x4
+ orrs r0, r3
+ strb r0, [r1]
+ bl sub_8149954
+ ldr r0, _08111C74 @ =sub_811240C
+ 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 @ =nullsub_73
+ bl SetHBlankCallback
+ ldr r0, _08111C88 @ =sub_8114FD4
+ bl SetVBlankCallback
+ bl m4aMPlayAllStop
+ ldr r0, _08111C8C @ =sub_8112270
+ bl SetMainCallback2
+ add sp, 0x38
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08111C10: .4byte 0x05006000
+_08111C14: .4byte REG_MOSAIC
+_08111C18: .4byte gWindowConfig_81E6C58
+_08111C1C: .4byte gUnknown_030042A4
+_08111C20: .4byte gUnknown_030042A0
+_08111C24: .4byte gUnknown_030042C0
+_08111C28: .4byte gUnknown_030041B4
+_08111C2C: .4byte gUnknown_03004288
+_08111C30: .4byte gUnknown_03004280
+_08111C34: .4byte gUnknown_030041B0
+_08111C38: .4byte gUnknown_030041B8
+_08111C3C: .4byte gUnknown_03004210
+_08111C40: .4byte gUnknown_0300428C
+_08111C44: .4byte gReservedSpritePaletteCount
+_08111C48: .4byte gStringVar1
+_08111C4C: .4byte gStringVar2
+_08111C50: .4byte gSpeciesNames
+_08111C54: .4byte gMonFrontPicTable
+_08111C58: .4byte gMonFrontPicCoords
+_08111C5C: .4byte gUnknown_081FAF4C
+_08111C60: .4byte gUnknown_02024E8C
+_08111C64: .4byte gDummySpriteAffineAnimTable
+_08111C68: .4byte 0x02014800
+_08111C6C: .4byte gSprites
+_08111C70: .4byte nullsub_37
+_08111C74: .4byte sub_811240C
+_08111C78: .4byte gTasks
+_08111C7C: .4byte 0x02009000
+_08111C80: .4byte gPlttBufferUnfaded + 0x40
+_08111C84: .4byte nullsub_73
+_08111C88: .4byte sub_8114FD4
+_08111C8C: .4byte sub_8112270
+ thumb_func_end evolution_cutscene
+
+ thumb_func_start sub_8111C90
+sub_8111C90: @ 8111C90
+ push {r4-r6,lr}
+ mov r6, r10
+ mov r5, r9
+ mov r4, r8
+ push {r4-r6}
+ sub sp, 0xC
+ ldr r2, _08111E14 @ =gTasks
+ ldr r0, _08111E18 @ =0x02014800
+ mov r9, r0
+ ldrb r1, [r0, 0x2]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 3
+ adds r0, r2
+ movs r1, 0x20
+ ldrsh r2, [r0, r1]
+ movs r1, 0x64
+ adds r4, r2, 0
+ muls r4, r1
+ ldr r1, _08111E1C @ =gPlayerParty
+ adds r4, r1
+ ldrh r6, [r0, 0x10]
+ adds r0, r4, 0
+ movs r1, 0x1
+ bl GetMonData
+ mov r10, r0
+ adds r0, r4, 0
+ movs r1, 0
+ bl GetMonData
+ mov r8, r0
+ movs r0, 0
+ bl SetHBlankCallback
+ movs r0, 0
+ bl SetVBlankCallback
+ movs r5, 0
+ str r5, [sp, 0x8]
+ movs r1, 0xC0
+ lsls r1, 19
+ ldr r2, _08111E20 @ =0x05006000
+ add r0, sp, 0x8
+ bl CpuSet
+ ldr r0, _08111E24 @ =REG_MOSAIC
+ strh r5, [r0]
+ subs r0, 0xC
+ strh r5, [r0]
+ adds r0, 0x4
+ strh r5, [r0]
+ subs r0, 0x2
+ strh r5, [r0]
+ adds r0, 0x4
+ strh r5, [r0]
+ adds r0, 0x2
+ strh r5, [r0]
+ adds r0, 0x2
+ strh r5, [r0]
+ ldr r4, _08111E28 @ =gWindowConfig_81E6C58
+ adds r0, r4, 0
+ bl SetUpWindowConfig
+ bl ResetPaletteFade
+ ldr r0, _08111E2C @ =gUnknown_030042A4
+ strh r5, [r0]
+ ldr r0, _08111E30 @ =gUnknown_030042A0
+ strh r5, [r0]
+ ldr r0, _08111E34 @ =gUnknown_030042C0
+ strh r5, [r0]
+ ldr r0, _08111E38 @ =gUnknown_030041B4
+ strh r5, [r0]
+ ldr r0, _08111E3C @ =gUnknown_03004288
+ strh r5, [r0]
+ ldr r0, _08111E40 @ =gUnknown_03004280
+ strh r5, [r0]
+ ldr r1, _08111E44 @ =gUnknown_030041B0
+ movs r2, 0x80
+ lsls r2, 1
+ adds r0, r2, 0
+ strh r0, [r1]
+ ldr r0, _08111E48 @ =gUnknown_030041B8
+ strh r5, [r0]
+ ldr r0, _08111E4C @ =gUnknown_03004210
+ adds r1, r4, 0
+ bl InitWindowFromConfig
+ ldr r1, _08111E50 @ =gUnknown_0300428C
+ movs r0, 0x9
+ strb r0, [r1]
+ bl sub_800D6D4
+ bl sub_800DAB8
+ bl ResetSpriteData
+ bl FreeAllSpritePalettes
+ ldr r1, _08111E54 @ =gReservedSpritePaletteCount
+ movs r0, 0x4
+ strb r0, [r1]
+ lsls r0, r6, 3
+ ldr r1, _08111E58 @ =gMonFrontPicTable
+ adds r0, r1
+ ldr r1, _08111E5C @ =gMonFrontPicCoords
+ lsls r2, r6, 2
+ adds r2, r1
+ ldrb r1, [r2]
+ ldrb r2, [r2, 0x1]
+ movs r3, 0x80
+ lsls r3, 18
+ ldr r4, _08111E60 @ =gUnknown_081FAF4C
+ ldr r4, [r4, 0xC]
+ str r4, [sp]
+ str r6, [sp, 0x4]
+ bl DecompressPicFromTable_2
+ adds r0, r6, 0
+ mov r1, r10
+ mov r2, r8
+ bl sub_80409C8
+ ldr r0, [r0]
+ movs r1, 0x90
+ lsls r1, 1
+ movs r2, 0x20
+ bl LoadCompressedPalette
+ adds r0, r6, 0
+ movs r1, 0x3
+ bl GetMonSpriteTemplate_803C56C
+ ldr r0, _08111E64 @ =gUnknown_02024E8C
+ ldr r1, _08111E68 @ =gDummySpriteAffineAnimTable
+ str r1, [r0, 0x10]
+ movs r1, 0x78
+ movs r2, 0x40
+ movs r3, 0x1E
+ bl CreateSprite
+ lsls r2, r0, 24
+ lsrs r2, 24
+ mov r1, r9
+ strb r0, [r1, 0x1]
+ ldr r3, _08111E6C @ =gSprites
+ lsls r1, r2, 4
+ adds r1, r2
+ lsls r1, 2
+ adds r0, r3, 0
+ adds r0, 0x1C
+ adds r0, r1, r0
+ ldr r2, _08111E70 @ =nullsub_37
+ str r2, [r0]
+ adds r1, r3
+ ldrb r2, [r1, 0x5]
+ movs r0, 0xF
+ ands r0, r2
+ movs r2, 0x20
+ orrs r0, r2
+ strb r0, [r1, 0x5]
+ movs r1, 0x80
+ lsls r1, 19
+ movs r2, 0xFA
+ lsls r2, 5
+ adds r0, r2, 0
+ strh r0, [r1]
+ ldr r0, _08111E74 @ =nullsub_73
+ bl SetHBlankCallback
+ ldr r0, _08111E78 @ =sub_8114FD4
+ bl SetVBlankCallback
+ ldr r0, _08111E7C @ =sub_8112270
+ bl SetMainCallback2
+ movs r0, 0x1
+ negs r0, r0
+ str r5, [sp]
+ movs r1, 0
+ movs r2, 0x10
+ movs r3, 0
+ bl BeginNormalPaletteFade
+ add sp, 0xC
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08111E14: .4byte gTasks
+_08111E18: .4byte 0x02014800
+_08111E1C: .4byte gPlayerParty
+_08111E20: .4byte 0x05006000
+_08111E24: .4byte REG_MOSAIC
+_08111E28: .4byte gWindowConfig_81E6C58
+_08111E2C: .4byte gUnknown_030042A4
+_08111E30: .4byte gUnknown_030042A0
+_08111E34: .4byte gUnknown_030042C0
+_08111E38: .4byte gUnknown_030041B4
+_08111E3C: .4byte gUnknown_03004288
+_08111E40: .4byte gUnknown_03004280
+_08111E44: .4byte gUnknown_030041B0
+_08111E48: .4byte gUnknown_030041B8
+_08111E4C: .4byte gUnknown_03004210
+_08111E50: .4byte gUnknown_0300428C
+_08111E54: .4byte gReservedSpritePaletteCount
+_08111E58: .4byte gMonFrontPicTable
+_08111E5C: .4byte gMonFrontPicCoords
+_08111E60: .4byte gUnknown_081FAF4C
+_08111E64: .4byte gUnknown_02024E8C
+_08111E68: .4byte gDummySpriteAffineAnimTable
+_08111E6C: .4byte gSprites
+_08111E70: .4byte nullsub_37
+_08111E74: .4byte nullsub_73
+_08111E78: .4byte sub_8114FD4
+_08111E7C: .4byte sub_8112270
+ thumb_func_end sub_8111C90
+
+ thumb_func_start sub_8111E80
+sub_8111E80: @ 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 @ =nullsub_73
+ bl SetHBlankCallback
+ ldr r0, _08111FD8 @ =sub_811505C
+ bl SetVBlankCallback
+ b _081120D6
+ .align 2, 0
+_08111FC8: .4byte gUnknown_03004828
+_08111FCC: .4byte gMain
+_08111FD0: .4byte 0x0000043c
+_08111FD4: .4byte nullsub_73
+_08111FD8: .4byte sub_811505C
+_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 @ =sub_8112290
+ 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 sub_8112290
+ thumb_func_end sub_8111E80
+
+ thumb_func_start sub_81120E4
+sub_81120E4: @ 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 @ =sub_8112FE8
+ 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 @ =sub_8112290
+ 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 sub_8112FE8
+_08112268: .4byte gTasks
+_0811226C: .4byte sub_8112290
+ thumb_func_end sub_81120E4
+
+ thumb_func_start sub_8112270
+sub_8112270: @ 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 sub_8112270
+
+ thumb_func_start sub_8112290
+sub_8112290: @ 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 sub_8112290
+
+ thumb_func_start sub_81122B4
+sub_81122B4: @ 81122B4
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x4
+ mov r10, r1
+ lsls r0, 16
+ lsrs r7, r0, 16
+ movs r0, 0
+ str r0, [sp]
+ ldr r0, _081123F4 @ =gEvolutionTable
+ mov r8, r0
+ lsls r1, r7, 2
+ mov r9, r1
+ adds r0, r1, r7
+ lsls r4, r0, 3
+ mov r0, r8
+ adds r6, r4, r0
+ ldrh r0, [r6]
+ cmp r0, 0xD
+ beq _081122E2
+ b _081123E2
+_081122E2:
+ ldr r1, _081123F8 @ =gPlayerPartyCount
+ ldrb r0, [r1]
+ cmp r0, 0x5
+ bhi _081123E2
+ adds r1, r0, 0
+ movs r0, 0x64
+ muls r1, r0
+ ldr r0, _081123FC @ =gPlayerParty
+ adds r5, r1, r0
+ adds r0, r5, 0
+ mov r1, r10
+ movs r2, 0x64
+ bl CopyMon
+ mov r1, r8
+ adds r2, r1, r4
+ adds r2, 0xC
+ adds r0, r5, 0
+ movs r1, 0xB
+ bl SetMonData
+ ldrh r1, [r6, 0xC]
+ movs r0, 0xB
+ adds r2, r1, 0
+ muls r2, r0
+ ldr r0, _08112400 @ =gSpeciesNames
+ adds r2, r0
+ adds r0, r5, 0
+ movs r1, 0x2
+ bl SetMonData
+ adds r0, r5, 0
+ movs r1, 0xC
+ mov r2, sp
+ bl SetMonData
+ adds r0, r5, 0
+ movs r1, 0x8
+ mov r2, sp
+ bl SetMonData
+ adds r0, r5, 0
+ movs r1, 0xA
+ mov r2, sp
+ bl SetMonData
+ movs r4, 0x32
+ mov r6, r9
+_08112342:
+ adds r0, r5, 0
+ adds r1, r4, 0
+ mov r2, sp
+ bl SetMonData
+ adds r4, 0x1
+ cmp r4, 0x36
+ ble _08112342
+ movs r4, 0x43
+_08112354:
+ adds r0, r5, 0
+ adds r1, r4, 0
+ mov r2, sp
+ bl SetMonData
+ adds r4, 0x1
+ cmp r4, 0x4F
+ ble _08112354
+ adds r0, r5, 0
+ movs r1, 0x37
+ mov r2, sp
+ bl SetMonData
+ movs r0, 0xFF
+ str r0, [sp]
+ adds r0, r5, 0
+ movs r1, 0x40
+ mov r2, sp
+ bl SetMonData
+ adds r0, r5, 0
+ bl CalculateMonStats
+ bl CalculatePlayerPartyCount
+ ldr r0, _081123F4 @ =gEvolutionTable
+ adds r4, r6, r7
+ lsls r4, 3
+ adds r4, r0
+ ldrh r0, [r4, 0xC]
+ bl SpeciesToNationalPokedexNum
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0x2
+ bl sub_8090D90
+ ldrh r0, [r4, 0xC]
+ bl SpeciesToNationalPokedexNum
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0x3
+ bl sub_8090D90
+ adds r0, r5, 0
+ movs r1, 0xB
+ bl GetMonData
+ ldr r1, _08112404 @ =0x0000012f
+ cmp r0, r1
+ bne _081123E2
+ adds r0, r5, 0
+ movs r1, 0x3
+ bl GetMonData
+ cmp r0, 0x1
+ bne _081123E2
+ mov r0, r10
+ movs r1, 0xB
+ bl GetMonData
+ movs r1, 0x97
+ lsls r1, 1
+ cmp r0, r1
+ bne _081123E2
+ ldr r2, _08112408 @ =gUnknown_083F868C
+ adds r0, r5, 0
+ movs r1, 0x2
+ bl SetMonData
+_081123E2:
+ add sp, 0x4
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_081123F4: .4byte gEvolutionTable
+_081123F8: .4byte gPlayerPartyCount
+_081123FC: .4byte gPlayerParty
+_08112400: .4byte gSpeciesNames
+_08112404: .4byte 0x0000012f
+_08112408: .4byte gUnknown_083F868C
+ thumb_func_end sub_81122B4
+
+ thumb_func_start sub_811240C
+sub_811240C: @ 811240C
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ sub sp, 0x18
+ lsls r0, 24
+ lsrs r7, r0, 24
+ ldr r2, _08112490 @ =gTasks
+ lsls r0, r7, 2
+ adds r0, r7
+ lsls r0, 3
+ adds r3, r0, r2
+ movs r1, 0xA
+ ldrsh r0, [r3, r1]
+ mov r9, r0
+ movs r1, 0xC
+ ldrsh r0, [r3, r1]
+ lsls r0, 16
+ mov r1, r9
+ orrs r1, r0
+ mov r9, r1
+ ldr r0, _08112494 @ =gMain
+ ldrh r1, [r0, 0x2C]
+ adds r6, r2, 0
+ adds r4, r0, 0
+ cmp r1, 0x2
+ bne _0811246E
+ movs r2, 0x8
+ ldrsh r0, [r3, r2]
+ cmp r0, 0x8
+ bne _0811246E
+ ldrh r1, [r3, 0x12]
+ movs r2, 0x1
+ adds r0, r2, 0
+ ands r0, r1
+ cmp r0, 0
+ beq _0811246E
+ movs r0, 0x10
+ strh r0, [r3, 0x8]
+ ldr r0, _08112498 @ =gUnknown_02024D1E
+ ldrb r1, [r0, 0x2]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 3
+ adds r1, r0, r6
+ ldrb r0, [r1, 0x4]
+ cmp r0, 0
+ beq _0811246E
+ strh r2, [r1, 0x18]
+_0811246E:
+ lsls r1, r7, 2
+ adds r0, r1, r7
+ lsls r0, 3
+ adds r0, r6
+ movs r3, 0x8
+ ldrsh r0, [r0, r3]
+ mov r8, r1
+ cmp r0, 0x15
+ bls _08112484
+ bl _08112FD0
+_08112484:
+ lsls r0, 2
+ ldr r1, _0811249C @ =_081124A0
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_08112490: .4byte gTasks
+_08112494: .4byte gMain
+_08112498: .4byte gUnknown_02024D1E
+_0811249C: .4byte _081124A0
+ .align 2, 0
+_081124A0:
+ .4byte _081124F8
+ .4byte _0811253C
+ .4byte _08112588
+ .4byte _08112594
+ .4byte _081125BC
+ .4byte _081125FC
+ .4byte _08112630
+ .4byte _0811266C
+ .4byte _081126A0
+ .4byte _081126E0
+ .4byte _081126FC
+ .4byte _08112728
+ .4byte _08112754
+ .4byte _081127A0
+ .4byte _0811284C
+ .4byte _081128E4
+ .4byte _08112934
+ .4byte _08112974
+ .4byte _081129A0
+ .4byte _081129E8
+ .4byte _08112A4C
+ .4byte _08112A88
+_081124F8:
+ movs r0, 0x1
+ negs r0, r0
+ movs r1, 0
+ str r1, [sp]
+ movs r2, 0x10
+ movs r3, 0
+ bl BeginNormalPaletteFade
+ ldr r2, _08112530 @ =gSprites
+ ldr r0, _08112534 @ =0x02014800
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ adds r0, 0x3E
+ ldrb r2, [r0]
+ movs r1, 0x5
+ negs r1, r1
+ ands r1, r2
+ strb r1, [r0]
+ ldr r0, _08112538 @ =gTasks
+ mov r2, r8
+ adds r1, r2, r7
+ lsls r1, 3
+ adds r1, r0
+ b _08112A2E
+ .align 2, 0
+_08112530: .4byte gSprites
+_08112534: .4byte 0x02014800
+_08112538: .4byte gTasks
+_0811253C:
+ ldr r0, _08112574 @ =gPaletteFade
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ beq _0811254C
+ bl _08112FD0
+_0811254C:
+ ldr r4, _08112578 @ =gStringVar4
+ ldr r1, _0811257C @ =gUnknown_08400C4A
+ adds r0, r4, 0
+ bl StringExpandPlaceholders
+ ldr r0, _08112580 @ =gUnknown_03004210
+ movs r1, 0xF
+ str r1, [sp]
+ adds r1, r4, 0
+ movs r2, 0x90
+ movs r3, 0x2
+ bl sub_8002EB0
+ ldr r0, _08112584 @ =gTasks
+ mov r3, r8
+ adds r1, r3, r7
+ lsls r1, 3
+ adds r1, r0
+ b _08112A2E
+ .align 2, 0
+_08112574: .4byte gPaletteFade
+_08112578: .4byte gStringVar4
+_0811257C: .4byte gUnknown_08400C4A
+_08112580: .4byte gUnknown_03004210
+_08112584: .4byte gTasks
+_08112588:
+ ldr r0, _08112590 @ =gUnknown_03004210
+ ldrh r0, [r0, 0x16]
+ b _0811297C
+ .align 2, 0
+_08112590: .4byte gUnknown_03004210
+_08112594:
+ bl IsCryFinished
+ lsls r0, 24
+ cmp r0, 0
+ bne _081125A2
+ bl _08112FD0
+_081125A2:
+ movs r0, 0xBC
+ lsls r0, 1
+ bl PlaySE
+ ldr r0, _081125B8 @ =gTasks
+ mov r2, r8
+ adds r1, r2, r7
+ lsls r1, 3
+ adds r1, r0
+ b _08112A2E
+ .align 2, 0
+_081125B8: .4byte gTasks
+_081125BC:
+ bl IsSEPlaying
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0
+ beq _081125CC
+ bl _08112FD0
+_081125CC:
+ ldr r0, _081125F4 @ =0x00000179
+ bl PlayNewMapMusic
+ ldr r0, _081125F8 @ =gTasks
+ mov r3, r8
+ adds r1, r3, r7
+ lsls r1, 3
+ adds r1, r0
+ ldrh r0, [r1, 0x8]
+ adds r0, 0x1
+ strh r0, [r1, 0x8]
+ str r4, [sp]
+ movs r0, 0x1C
+ movs r1, 0x4
+ movs r2, 0
+ movs r3, 0x10
+ bl BeginNormalPaletteFade
+ bl _08112FD0
+ .align 2, 0
+_081125F4: .4byte 0x00000179
+_081125F8: .4byte gTasks
+_081125FC:
+ ldr r0, _08112624 @ =gPaletteFade
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ beq _0811260C
+ bl _08112FD0
+_0811260C:
+ movs r0, 0x11
+ bl sub_8149970
+ ldr r1, _08112628 @ =gUnknown_02024D1E
+ strb r0, [r1, 0x2]
+ ldr r0, _0811262C @ =gTasks
+ mov r2, r8
+ adds r1, r2, r7
+ lsls r1, 3
+ adds r1, r0
+ b _08112A2E
+ .align 2, 0
+_08112624: .4byte gPaletteFade
+_08112628: .4byte gUnknown_02024D1E
+_0811262C: .4byte gTasks
+_08112630:
+ ldr r4, _08112664 @ =gUnknown_02024D1E
+ ldrb r0, [r4, 0x2]
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r6
+ ldrb r0, [r1, 0x4]
+ cmp r0, 0
+ beq _08112646
+ bl _08112FD0
+_08112646:
+ mov r3, r8
+ adds r1, r3, r7
+ lsls r1, 3
+ adds r1, r6
+ ldrh r0, [r1, 0x8]
+ adds r0, 0x1
+ strh r0, [r1, 0x8]
+ ldr r1, _08112668 @ =0x02014800
+ movs r0, 0x1
+ strb r0, [r1, 0x3]
+ bl sub_8149A90
+ strb r0, [r4, 0x2]
+ bl _08112FD0
+ .align 2, 0
+_08112664: .4byte gUnknown_02024D1E
+_08112668: .4byte 0x02014800
+_0811266C:
+ ldr r4, _08112698 @ =gUnknown_02024D1E
+ ldrb r0, [r4, 0x2]
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r6
+ ldrb r0, [r1, 0x4]
+ cmp r0, 0
+ beq _08112682
+ bl _08112FD0
+_08112682:
+ ldr r1, _0811269C @ =0x02014800
+ ldrb r0, [r1]
+ ldrb r1, [r1, 0x1]
+ bl sub_8149E7C
+ strb r0, [r4, 0x2]
+ mov r0, r8
+ adds r1, r0, r7
+ lsls r1, 3
+ adds r1, r6
+ b _08112A2E
+ .align 2, 0
+_08112698: .4byte gUnknown_02024D1E
+_0811269C: .4byte 0x02014800
+_081126A0:
+ ldr r1, _081126D8 @ =0x02014800
+ ldrb r0, [r1, 0x3]
+ subs r0, 0x1
+ strb r0, [r1, 0x3]
+ lsls r0, 24
+ cmp r0, 0
+ beq _081126B2
+ bl _08112FD0
+_081126B2:
+ movs r0, 0x3
+ strb r0, [r1, 0x3]
+ ldr r0, _081126DC @ =gUnknown_02024D1E
+ ldrb r1, [r0, 0x2]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 3
+ adds r0, r6
+ ldrb r0, [r0, 0x4]
+ cmp r0, 0
+ beq _081126CC
+ bl _08112FD0
+_081126CC:
+ mov r2, r8
+ adds r1, r2, r7
+ lsls r1, 3
+ adds r1, r6
+ b _08112A2E
+ .align 2, 0
+_081126D8: .4byte 0x02014800
+_081126DC: .4byte gUnknown_02024D1E
+_081126E0:
+ bl sub_8149B44
+ ldr r1, _081126F4 @ =gUnknown_02024D1E
+ strb r0, [r1, 0x2]
+ ldr r0, _081126F8 @ =gTasks
+ mov r3, r8
+ adds r1, r3, r7
+ lsls r1, 3
+ adds r1, r0
+ b _08112A2E
+ .align 2, 0
+_081126F4: .4byte gUnknown_02024D1E
+_081126F8: .4byte gTasks
+_081126FC:
+ ldr r5, _08112724 @ =gUnknown_02024D1E
+ ldrb r0, [r5, 0x2]
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r6
+ ldrb r0, [r1, 0x4]
+ cmp r0, 0
+ beq _08112712
+ bl _08112FD0
+_08112712:
+ mov r0, r8
+ adds r4, r0, r7
+ lsls r4, 3
+ adds r4, r6
+ ldrh r0, [r4, 0x10]
+ bl sub_8149C20
+ strb r0, [r5, 0x2]
+ b _08112992
+ .align 2, 0
+_08112724: .4byte gUnknown_02024D1E
+_08112728:
+ ldr r0, _08112750 @ =gUnknown_02024D1E
+ ldrb r1, [r0, 0x2]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 3
+ adds r0, r6
+ ldrb r0, [r0, 0x4]
+ cmp r0, 0
+ beq _0811273E
+ bl _08112FD0
+_0811273E:
+ movs r0, 0x21
+ bl PlaySE
+ mov r2, r8
+ adds r1, r2, r7
+ lsls r1, 3
+ adds r1, r6
+ b _08112A2E
+ .align 2, 0
+_08112750: .4byte gUnknown_02024D1E
+_08112754:
+ bl IsSEPlaying
+ lsls r0, 24
+ cmp r0, 0
+ bne _08112762
+ bl _08112FD0
+_08112762:
+ bl m4aMPlayAllStop
+ ldr r0, _08112794 @ =gTasks
+ mov r3, r8
+ adds r4, r3, r7
+ lsls r4, 3
+ adds r4, r0
+ ldrh r0, [r4, 0x10]
+ movs r1, 0
+ bl PlayCry1
+ ldr r0, _08112798 @ =gPlttBufferUnfaded + 0x40
+ ldr r1, _0811279C @ =0x02009000
+ movs r2, 0x60
+ bl memcpy
+ movs r0, 0
+ str r0, [sp]
+ movs r0, 0x1C
+ movs r1, 0
+ movs r2, 0x10
+ movs r3, 0
+ bl BeginNormalPaletteFade
+ b _08112992
+ .align 2, 0
+_08112794: .4byte gTasks
+_08112798: .4byte gPlttBufferUnfaded + 0x40
+_0811279C: .4byte 0x02009000
+_081127A0:
+ bl IsCryFinished
+ lsls r0, 24
+ cmp r0, 0
+ bne _081127AE
+ bl _08112FD0
+_081127AE:
+ ldr r0, _08112834 @ =gPaletteFade
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ beq _081127BE
+ bl _08112FD0
+_081127BE:
+ ldr r4, _08112838 @ =gStringVar4
+ ldr r1, _0811283C @ =gUnknown_08400C60
+ adds r0, r4, 0
+ bl StringExpandPlaceholders
+ ldr r0, _08112840 @ =gUnknown_03004210
+ movs r1, 0xF
+ str r1, [sp]
+ adds r1, r4, 0
+ movs r2, 0x90
+ movs r3, 0x2
+ bl sub_8002EB0
+ ldr r0, _08112844 @ =0x00000173
+ bl PlayBGM
+ ldr r2, _08112848 @ =gTasks
+ mov r0, r8
+ adds r1, r0, r7
+ lsls r1, 3
+ adds r4, r1, r2
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+ adds r2, r1
+ adds r2, 0x10
+ mov r0, r9
+ movs r1, 0xB
+ bl SetMonData
+ mov r0, r9
+ bl CalculateMonStats
+ ldrh r1, [r4, 0xE]
+ ldrh r2, [r4, 0x10]
+ mov r0, r9
+ bl sub_803FB68
+ ldrh r0, [r4, 0x10]
+ bl SpeciesToNationalPokedexNum
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0x2
+ bl sub_8090D90
+ ldrh r0, [r4, 0x10]
+ bl SpeciesToNationalPokedexNum
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0x3
+ bl sub_8090D90
+ movs r0, 0xE
+ bl sav12_xor_increment
+ b _08112FD0
+ .align 2, 0
+_08112834: .4byte gPaletteFade
+_08112838: .4byte gStringVar4
+_0811283C: .4byte gUnknown_08400C60
+_08112840: .4byte gUnknown_03004210
+_08112844: .4byte 0x00000173
+_08112848: .4byte gTasks
+_0811284C:
+ ldr r0, _081128A4 @ =gUnknown_03004210
+ ldrh r0, [r0, 0x16]
+ cmp r0, 0
+ beq _08112856
+ b _08112FD0
+_08112856:
+ mov r1, r8
+ adds r0, r1, r7
+ lsls r0, 3
+ adds r5, r0, r6
+ ldrb r1, [r5, 0x14]
+ mov r0, r9
+ bl sub_803B7C8
+ lsls r0, 16
+ lsrs r6, r0, 16
+ cmp r6, 0
+ beq _081128C4
+ movs r2, 0x1E
+ ldrsh r4, [r5, r2]
+ cmp r4, 0
+ bne _081128C4
+ bl sub_8053E90
+ ldrh r1, [r5, 0x12]
+ movs r0, 0x80
+ orrs r0, r1
+ strh r0, [r5, 0x12]
+ strh r4, [r5, 0x14]
+ strh r4, [r5, 0x18]
+ mov r0, r9
+ movs r1, 0x2
+ add r2, sp, 0x4
+ bl GetMonData
+ ldr r0, _081128A8 @ =gUnknown_030041C0
+ add r1, sp, 0x4
+ bl StringCopy10
+ ldr r0, _081128AC @ =0x0000ffff
+ cmp r6, r0
+ bne _081128B0
+ movs r0, 0x15
+ strh r0, [r5, 0x8]
+ b _08112FD0
+ .align 2, 0
+_081128A4: .4byte gUnknown_03004210
+_081128A8: .4byte gUnknown_030041C0
+_081128AC: .4byte 0x0000ffff
+_081128B0:
+ ldr r0, _081128C0 @ =0x0000fffe
+ cmp r6, r0
+ bne _081128B8
+ b _08112FD0
+_081128B8:
+ movs r0, 0x13
+ strh r0, [r5, 0x8]
+ b _08112FD0
+ .align 2, 0
+_081128C0: .4byte 0x0000fffe
+_081128C4:
+ movs r0, 0x1
+ negs r0, r0
+ movs r1, 0
+ str r1, [sp]
+ movs r2, 0
+ movs r3, 0x10
+ bl BeginNormalPaletteFade
+ ldr r0, _081128E0 @ =gTasks
+ mov r3, r8
+ adds r1, r3, r7
+ lsls r1, 3
+ adds r1, r0
+ b _08112A2E
+ .align 2, 0
+_081128E0: .4byte gTasks
+_081128E4:
+ ldr r0, _0811292C @ =gPaletteFade
+ ldrb r1, [r0, 0x7]
+ movs r2, 0x80
+ adds r0, r2, 0
+ ands r0, r1
+ cmp r0, 0
+ beq _081128F4
+ b _08112FD0
+_081128F4:
+ mov r1, r8
+ adds r0, r1, r7
+ lsls r0, 3
+ adds r4, r0, r6
+ ldrh r1, [r4, 0x12]
+ adds r0, r2, 0
+ ands r0, r1
+ cmp r0, 0
+ bne _0811290A
+ bl sub_8053E90
+_0811290A:
+ movs r2, 0x1E
+ ldrsh r0, [r4, r2]
+ cmp r0, 0
+ bne _0811291A
+ ldrh r0, [r4, 0xE]
+ mov r1, r9
+ bl sub_81122B4
+_0811291A:
+ adds r0, r7, 0
+ bl DestroyTask
+ ldr r0, _08112930 @ =gUnknown_03005E94
+ ldr r0, [r0]
+ bl SetMainCallback2
+ b _08112FD0
+ .align 2, 0
+_0811292C: .4byte gPaletteFade
+_08112930: .4byte gUnknown_03005E94
+_08112934:
+ ldr r0, _08112968 @ =gUnknown_02024D1E
+ ldrb r1, [r0, 0x2]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 3
+ adds r0, r6
+ ldrb r0, [r0, 0x4]
+ cmp r0, 0
+ beq _08112948
+ b _08112FD0
+_08112948:
+ bl m4aMPlayAllStop
+ ldr r0, _0811296C @ =0x0006001c
+ ldr r1, _08112970 @ =0x00007fff
+ str r1, [sp]
+ movs r1, 0
+ movs r2, 0x10
+ movs r3, 0
+ bl BeginNormalPaletteFade
+ mov r3, r8
+ adds r1, r3, r7
+ lsls r1, 3
+ adds r1, r6
+ b _08112A2E
+ .align 2, 0
+_08112968: .4byte gUnknown_02024D1E
+_0811296C: .4byte 0x0006001c
+_08112970: .4byte 0x00007fff
+_08112974:
+ ldr r0, _0811299C @ =gPaletteFade
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+_0811297C:
+ cmp r0, 0
+ beq _08112982
+ b _08112FD0
+_08112982:
+ mov r0, r8
+ adds r4, r0, r7
+ lsls r4, 3
+ adds r4, r6
+ ldrh r0, [r4, 0xE]
+ movs r1, 0
+ bl PlayCry1
+_08112992:
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+ b _08112FD0
+ .align 2, 0
+_0811299C: .4byte gPaletteFade
+_081129A0:
+ bl IsCryFinished
+ lsls r0, 24
+ cmp r0, 0
+ bne _081129AC
+ b _08112FD0
+_081129AC:
+ ldr r4, _081129D8 @ =gStringVar4
+ ldr r1, _081129DC @ =gUnknown_08400C8D
+ adds r0, r4, 0
+ bl StringExpandPlaceholders
+ ldr r0, _081129E0 @ =gUnknown_03004210
+ movs r1, 0xF
+ str r1, [sp]
+ adds r1, r4, 0
+ movs r2, 0x90
+ movs r3, 0x2
+ bl sub_8002EB0
+ ldr r1, _081129E4 @ =gTasks
+ mov r2, r8
+ adds r0, r2, r7
+ lsls r0, 3
+ adds r0, r1
+ movs r1, 0x1
+ strh r1, [r0, 0x1E]
+ b _08112F9A
+ .align 2, 0
+_081129D8: .4byte gStringVar4
+_081129DC: .4byte gUnknown_08400C8D
+_081129E0: .4byte gUnknown_03004210
+_081129E4: .4byte gTasks
+_081129E8:
+ ldr r4, _08112A38 @ =gUnknown_03004210
+ ldrh r0, [r4, 0x16]
+ cmp r0, 0
+ beq _081129F2
+ b _08112FD0
+_081129F2:
+ bl IsSEPlaying
+ lsls r0, 24
+ cmp r0, 0
+ beq _081129FE
+ b _08112FD0
+_081129FE:
+ bl sub_8024CEC
+ ldr r0, _08112A3C @ =0x0000016f
+ bl PlayFanfare
+ ldr r0, _08112A40 @ =gUnknown_08400F8C
+ ldr r0, [r0, 0xC]
+ bl get_battle_strings_
+ ldr r1, _08112A44 @ =gUnknown_020238CC
+ movs r0, 0xF
+ str r0, [sp]
+ adds r0, r4, 0
+ movs r2, 0x90
+ movs r3, 0x2
+ bl sub_8002EB0
+ ldr r0, _08112A48 @ =gTasks
+ mov r3, r8
+ adds r1, r3, r7
+ lsls r1, 3
+ adds r1, r0
+ movs r0, 0x40
+ strh r0, [r1, 0x14]
+_08112A2E:
+ ldrh r0, [r1, 0x8]
+ adds r0, 0x1
+ strh r0, [r1, 0x8]
+ b _08112FD0
+ .align 2, 0
+_08112A38: .4byte gUnknown_03004210
+_08112A3C: .4byte 0x0000016f
+_08112A40: .4byte gUnknown_08400F8C
+_08112A44: .4byte gUnknown_020238CC
+_08112A48: .4byte gTasks
+_08112A4C:
+ ldr r0, _08112A80 @ =gUnknown_03004210
+ ldrh r0, [r0, 0x16]
+ cmp r0, 0
+ beq _08112A56
+ b _08112FD0
+_08112A56:
+ bl IsSEPlaying
+ lsls r0, 24
+ cmp r0, 0
+ beq _08112A62
+ b _08112FD0
+_08112A62:
+ ldr r0, _08112A84 @ =gTasks
+ mov r2, r8
+ adds r1, r2, r7
+ lsls r1, 3
+ adds r1, r0
+ ldrh r0, [r1, 0x14]
+ subs r0, 0x1
+ strh r0, [r1, 0x14]
+ lsls r0, 16
+ cmp r0, 0
+ beq _08112A7A
+ b _08112FD0
+_08112A7A:
+ movs r0, 0xE
+ strh r0, [r1, 0x8]
+ b _08112FD0
+ .align 2, 0
+_08112A80: .4byte gUnknown_03004210
+_08112A84: .4byte gTasks
+_08112A88:
+ mov r3, r8
+ adds r0, r3, r7
+ lsls r0, 3
+ adds r0, r6
+ movs r1, 0x18
+ ldrsh r0, [r0, r1]
+ cmp r0, 0xB
+ bls _08112A9A
+ b _08112FD0
+_08112A9A:
+ lsls r0, 2
+ ldr r1, _08112AA4 @ =_08112AA8
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_08112AA4: .4byte _08112AA8
+ .align 2, 0
+_08112AA8:
+ .4byte _08112AD8
+ .4byte _08112B2C
+ .4byte _08112B7C
+ .4byte _08112BC0
+ .4byte _08112C0C
+ .4byte _08112D3C
+ .4byte _08112D8C
+ .4byte _08112E98
+ .4byte _08112EE8
+ .4byte _08112F38
+ .4byte _08112F78
+ .4byte _08112FB0
+_08112AD8:
+ ldr r4, _08112B1C @ =gUnknown_03004210
+ ldrh r0, [r4, 0x16]
+ cmp r0, 0
+ beq _08112AE2
+ b _08112FD0
+_08112AE2:
+ bl IsSEPlaying
+ lsls r0, 24
+ cmp r0, 0
+ beq _08112AEE
+ b _08112FD0
+_08112AEE:
+ bl sub_8024CEC
+ ldr r0, _08112B20 @ =gUnknown_08400F8C
+ ldr r0, [r0, 0x10]
+ bl get_battle_strings_
+ ldr r1, _08112B24 @ =gUnknown_020238CC
+ movs r0, 0xF
+ str r0, [sp]
+ adds r0, r4, 0
+ movs r2, 0x90
+ movs r3, 0x2
+ bl sub_8002EB0
+ ldr r0, _08112B28 @ =gTasks
+ mov r2, r8
+ adds r1, r2, r7
+ lsls r1, 3
+ adds r1, r0
+ ldrh r0, [r1, 0x18]
+ adds r0, 0x1
+ b _08112FCE
+ .align 2, 0
+_08112B1C: .4byte gUnknown_03004210
+_08112B20: .4byte gUnknown_08400F8C
+_08112B24: .4byte gUnknown_020238CC
+_08112B28: .4byte gTasks
+_08112B2C:
+ ldr r4, _08112B6C @ =gUnknown_03004210
+ ldrh r0, [r4, 0x16]
+ cmp r0, 0
+ beq _08112B36
+ b _08112FD0
+_08112B36:
+ bl IsSEPlaying
+ lsls r0, 24
+ cmp r0, 0
+ beq _08112B42
+ b _08112FD0
+_08112B42:
+ ldr r0, _08112B70 @ =gUnknown_08400F8C
+ ldr r0, [r0, 0x14]
+ bl get_battle_strings_
+ ldr r1, _08112B74 @ =gUnknown_020238CC
+ movs r0, 0xF
+ str r0, [sp]
+ adds r0, r4, 0
+ movs r2, 0x90
+ movs r3, 0x2
+ bl sub_8002EB0
+ ldr r0, _08112B78 @ =gTasks
+ mov r3, r8
+ adds r1, r3, r7
+ lsls r1, 3
+ adds r1, r0
+ ldrh r0, [r1, 0x18]
+ adds r0, 0x1
+ b _08112FCE
+ .align 2, 0
+_08112B6C: .4byte gUnknown_03004210
+_08112B70: .4byte gUnknown_08400F8C
+_08112B74: .4byte gUnknown_020238CC
+_08112B78: .4byte gTasks
+_08112B7C:
+ ldr r4, _08112BF8 @ =gUnknown_03004210
+ ldrh r0, [r4, 0x16]
+ cmp r0, 0
+ beq _08112B86
+ b _08112FD0
+_08112B86:
+ bl IsSEPlaying
+ lsls r0, 24
+ cmp r0, 0
+ bne _08112BC0
+ ldr r0, _08112BFC @ =gUnknown_08400F8C
+ ldr r0, [r0, 0x18]
+ bl get_battle_strings_
+ ldr r1, _08112C00 @ =gUnknown_020238CC
+ movs r0, 0xF
+ str r0, [sp]
+ adds r0, r4, 0
+ movs r2, 0x90
+ movs r3, 0x2
+ bl sub_8002EB0
+ ldr r0, _08112C04 @ =gTasks
+ mov r2, r8
+ adds r1, r2, r7
+ lsls r1, 3
+ adds r1, r0
+ movs r0, 0x5
+ strh r0, [r1, 0x1A]
+ movs r0, 0x9
+ strh r0, [r1, 0x1C]
+ ldrh r0, [r1, 0x18]
+ adds r0, 0x1
+ strh r0, [r1, 0x18]
+_08112BC0:
+ ldr r0, _08112BF8 @ =gUnknown_03004210
+ ldrh r0, [r0, 0x16]
+ cmp r0, 0
+ beq _08112BCA
+ b _08112FD0
+_08112BCA:
+ bl IsSEPlaying
+ lsls r0, 24
+ cmp r0, 0
+ beq _08112BD6
+ b _08112FD0
+_08112BD6:
+ bl sub_8023A80
+ ldr r0, _08112C04 @ =gTasks
+ mov r3, r8
+ adds r1, r3, r7
+ lsls r1, 3
+ adds r1, r0
+ ldrh r0, [r1, 0x18]
+ adds r0, 0x1
+ movs r2, 0
+ strh r0, [r1, 0x18]
+ ldr r0, _08112C08 @ =gUnknown_02024D1E
+ strb r2, [r0, 0x1]
+ bl sub_802BC6C
+ b _08112FD0
+ .align 2, 0
+_08112BF8: .4byte gUnknown_03004210
+_08112BFC: .4byte gUnknown_08400F8C
+_08112C00: .4byte gUnknown_020238CC
+_08112C04: .4byte gTasks
+_08112C08: .4byte gUnknown_02024D1E
+_08112C0C:
+ ldr r0, _08112CA4 @ =gMain
+ ldrh r1, [r0, 0x2E]
+ movs r0, 0x40
+ ands r0, r1
+ cmp r0, 0
+ beq _08112C32
+ ldr r4, _08112CA8 @ =gUnknown_02024D1E
+ ldrb r0, [r4, 0x1]
+ cmp r0, 0
+ beq _08112C32
+ movs r0, 0x5
+ bl PlaySE
+ bl nullsub_6
+ movs r0, 0
+ strb r0, [r4, 0x1]
+ bl sub_802BC6C
+_08112C32:
+ ldr r0, _08112CA4 @ =gMain
+ ldrh r1, [r0, 0x2E]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ beq _08112C58
+ ldr r4, _08112CA8 @ =gUnknown_02024D1E
+ ldrb r0, [r4, 0x1]
+ cmp r0, 0
+ bne _08112C58
+ movs r0, 0x5
+ bl PlaySE
+ bl nullsub_6
+ movs r0, 0x1
+ strb r0, [r4, 0x1]
+ bl sub_802BC6C
+_08112C58:
+ ldr r0, _08112CA4 @ =gMain
+ ldrh r1, [r0, 0x2E]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _08112CE2
+ bl sub_8023AD8
+ ldr r0, _08112CAC @ =gUnknown_08400F8C
+ movs r1, 0x92
+ lsls r1, 3
+ adds r0, r1
+ ldr r0, [r0]
+ bl get_battle_strings_
+ ldr r0, _08112CB0 @ =gUnknown_03004210
+ ldr r1, _08112CB4 @ =gUnknown_020238CC
+ movs r2, 0xF
+ str r2, [sp]
+ movs r2, 0x90
+ movs r3, 0x2
+ bl sub_8002EB0
+ movs r0, 0x5
+ bl PlaySE
+ ldr r0, _08112CA8 @ =gUnknown_02024D1E
+ ldrb r2, [r0, 0x1]
+ cmp r2, 0
+ beq _08112CBC
+ ldr r0, _08112CB8 @ =gTasks
+ mov r2, r8
+ adds r1, r2, r7
+ lsls r1, 3
+ adds r1, r0
+ ldrh r0, [r1, 0x1C]
+ strh r0, [r1, 0x18]
+ b _08112CE2
+ .align 2, 0
+_08112CA4: .4byte gMain
+_08112CA8: .4byte gUnknown_02024D1E
+_08112CAC: .4byte gUnknown_08400F8C
+_08112CB0: .4byte gUnknown_03004210
+_08112CB4: .4byte gUnknown_020238CC
+_08112CB8: .4byte gTasks
+_08112CBC:
+ ldr r0, _08112D28 @ =gTasks
+ mov r3, r8
+ adds r1, r3, r7
+ lsls r1, 3
+ adds r1, r0
+ ldrh r0, [r1, 0x1A]
+ strh r0, [r1, 0x18]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x5
+ bne _08112CE2
+ movs r0, 0x1
+ negs r0, r0
+ str r2, [sp]
+ movs r1, 0
+ movs r2, 0
+ movs r3, 0x10
+ bl BeginNormalPaletteFade
+_08112CE2:
+ ldr r0, _08112D2C @ =gMain
+ ldrh r1, [r0, 0x2E]
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ bne _08112CF0
+ b _08112FD0
+_08112CF0:
+ bl sub_8023AD8
+ ldr r0, _08112D30 @ =gUnknown_08400F8C
+ movs r1, 0x92
+ lsls r1, 3
+ adds r0, r1
+ ldr r0, [r0]
+ bl get_battle_strings_
+ ldr r0, _08112D34 @ =gUnknown_03004210
+ ldr r1, _08112D38 @ =gUnknown_020238CC
+ movs r2, 0xF
+ str r2, [sp]
+ movs r2, 0x90
+ movs r3, 0x2
+ bl sub_8002EB0
+ movs r0, 0x5
+ bl PlaySE
+ ldr r1, _08112D28 @ =gTasks
+ mov r2, r8
+ adds r0, r2, r7
+ lsls r0, 3
+ adds r0, r1
+ ldrh r1, [r0, 0x1C]
+ strh r1, [r0, 0x18]
+ b _08112FD0
+ .align 2, 0
+_08112D28: .4byte gTasks
+_08112D2C: .4byte gMain
+_08112D30: .4byte gUnknown_08400F8C
+_08112D34: .4byte gUnknown_03004210
+_08112D38: .4byte gUnknown_020238CC
+_08112D3C:
+ ldr r0, _08112D78 @ =gPaletteFade
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ beq _08112D4A
+ b _08112FD0
+_08112D4A:
+ ldr r0, _08112D7C @ =gPlayerParty
+ mov r3, r8
+ adds r5, r3, r7
+ lsls r5, 3
+ adds r5, r6
+ ldrh r1, [r5, 0x20]
+ lsls r1, 24
+ lsrs r1, 24
+ ldr r2, _08112D80 @ =gPlayerPartyCount
+ ldrb r2, [r2]
+ subs r2, 0x1
+ lsls r2, 24
+ lsrs r2, 24
+ ldr r3, _08112D84 @ =sub_8111C90
+ 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 sub_8111C90
+_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 @ =sub_8112270
+ 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 sub_8112270
+_08112DC8: .4byte gTasks
+_08112DCC:
+ adds r1, r6, 0
+ adds r1, 0xD
+ mov r0, r9
+ bl GetMonData
+ lsls r0, 16
+ lsrs r4, r0, 16
+ adds r0, r4, 0
+ bl sub_8040A00
+ cmp r0, 0
+ beq _08112E24
+ ldr r0, _08112E10 @ =gUnknown_08400F8C
+ ldr r3, _08112E14 @ =0x000004cc
+ adds r0, r3
+ ldr r0, [r0]
+ bl get_battle_strings_
+ ldr r0, _08112E18 @ =gUnknown_03004210
+ ldr r1, _08112E1C @ =gUnknown_020238CC
+ movs r2, 0xF
+ str r2, [sp]
+ movs r2, 0x90
+ movs r3, 0x2
+ bl sub_8002EB0
+ ldr r1, _08112E20 @ =gTasks
+ mov r2, r8
+ adds r0, r2, r7
+ lsls r0, 3
+ adds r0, r1
+ movs r1, 0xB
+ strh r1, [r0, 0x18]
+ b _08112FD0
+ .align 2, 0
+_08112E10: .4byte gUnknown_08400F8C
+_08112E14: .4byte 0x000004cc
+_08112E18: .4byte gUnknown_03004210
+_08112E1C: .4byte gUnknown_020238CC
+_08112E20: .4byte gTasks
+_08112E24:
+ ldr r1, _08112E80 @ =gUnknown_03004290
+ movs r0, 0xFD
+ strb r0, [r1]
+ movs r0, 0x2
+ strb r0, [r1, 0x1]
+ strb r4, [r1, 0x2]
+ lsrs r0, r4, 8
+ strb r0, [r1, 0x3]
+ movs r0, 0xFF
+ strb r0, [r1, 0x4]
+ lsls r4, r6, 24
+ lsrs r4, 24
+ mov r0, r9
+ adds r1, r4, 0
+ bl RemoveMonPPBonus
+ ldr r0, _08112E84 @ =word_2024E82
+ ldrh r1, [r0]
+ mov r0, r9
+ adds r2, r4, 0
+ bl SetMonMoveSlot
+ ldr r0, _08112E88 @ =gUnknown_08400F8C
+ movs r3, 0xCF
+ lsls r3, 2
+ adds r0, r3
+ ldr r0, [r0]
+ bl get_battle_strings_
+ ldr r0, _08112E8C @ =gUnknown_03004210
+ ldr r1, _08112E90 @ =gUnknown_020238CC
+ movs r2, 0xF
+ str r2, [sp]
+ movs r2, 0x90
+ movs r3, 0x2
+ bl sub_8002EB0
+ ldr r0, _08112E94 @ =gTasks
+ mov r2, r8
+ adds r1, r2, r7
+ lsls r1, 3
+ adds r1, r0
+ ldrh r0, [r1, 0x18]
+ adds r0, 0x1
+ b _08112FCE
+ .align 2, 0
+_08112E80: .4byte gUnknown_03004290
+_08112E84: .4byte word_2024E82
+_08112E88: .4byte gUnknown_08400F8C
+_08112E8C: .4byte gUnknown_03004210
+_08112E90: .4byte gUnknown_020238CC
+_08112E94: .4byte gTasks
+_08112E98:
+ ldr r4, _08112ED8 @ =gUnknown_03004210
+ ldrh r0, [r4, 0x16]
+ cmp r0, 0
+ beq _08112EA2
+ b _08112FD0
+_08112EA2:
+ bl IsSEPlaying
+ lsls r0, 24
+ cmp r0, 0
+ beq _08112EAE
+ b _08112FD0
+_08112EAE:
+ ldr r0, _08112EDC @ =gUnknown_08400F8C
+ ldr r0, [r0, 0x1C]
+ bl get_battle_strings_
+ ldr r1, _08112EE0 @ =gUnknown_020238CC
+ movs r0, 0xF
+ str r0, [sp]
+ adds r0, r4, 0
+ movs r2, 0x90
+ movs r3, 0x2
+ bl sub_8002EB0
+ ldr r0, _08112EE4 @ =gTasks
+ mov r3, r8
+ adds r1, r3, r7
+ lsls r1, 3
+ adds r1, r0
+ ldrh r0, [r1, 0x18]
+ adds r0, 0x1
+ b _08112FCE
+ .align 2, 0
+_08112ED8: .4byte gUnknown_03004210
+_08112EDC: .4byte gUnknown_08400F8C
+_08112EE0: .4byte gUnknown_020238CC
+_08112EE4: .4byte gTasks
+_08112EE8:
+ ldr r4, _08112F28 @ =gUnknown_03004210
+ ldrh r0, [r4, 0x16]
+ cmp r0, 0
+ bne _08112FD0
+ bl IsSEPlaying
+ lsls r0, 24
+ cmp r0, 0
+ bne _08112FD0
+ ldr r0, _08112F2C @ =gUnknown_08400F8C
+ movs r1, 0xD0
+ lsls r1, 2
+ adds r0, r1
+ ldr r0, [r0]
+ bl get_battle_strings_
+ ldr r1, _08112F30 @ =gUnknown_020238CC
+ movs r0, 0xF
+ str r0, [sp]
+ adds r0, r4, 0
+ movs r2, 0x90
+ movs r3, 0x2
+ bl sub_8002EB0
+ ldr r1, _08112F34 @ =gTasks
+ mov r2, r8
+ adds r0, r2, r7
+ lsls r0, 3
+ adds r0, r1
+ movs r1, 0x13
+ strh r1, [r0, 0x8]
+ b _08112FD0
+ .align 2, 0
+_08112F28: .4byte gUnknown_03004210
+_08112F2C: .4byte gUnknown_08400F8C
+_08112F30: .4byte gUnknown_020238CC
+_08112F34: .4byte gTasks
+_08112F38:
+ ldr r0, _08112F68 @ =gUnknown_08400F8C
+ ldr r0, [r0, 0x20]
+ bl get_battle_strings_
+ ldr r0, _08112F6C @ =gUnknown_03004210
+ ldr r1, _08112F70 @ =gUnknown_020238CC
+ movs r2, 0xF
+ str r2, [sp]
+ movs r2, 0x90
+ movs r3, 0x2
+ bl sub_8002EB0
+ ldr r1, _08112F74 @ =gTasks
+ mov r3, r8
+ adds r0, r3, r7
+ lsls r0, 3
+ adds r0, r1
+ movs r2, 0
+ movs r1, 0xA
+ strh r1, [r0, 0x1A]
+ strh r2, [r0, 0x1C]
+ movs r1, 0x3
+ strh r1, [r0, 0x18]
+ b _08112FD0
+ .align 2, 0
+_08112F68: .4byte gUnknown_08400F8C
+_08112F6C: .4byte gUnknown_03004210
+_08112F70: .4byte gUnknown_020238CC
+_08112F74: .4byte gTasks
+_08112F78:
+ ldr r0, _08112FA0 @ =gUnknown_08400F8C
+ ldr r0, [r0, 0x24]
+ bl get_battle_strings_
+ ldr r0, _08112FA4 @ =gUnknown_03004210
+ ldr r1, _08112FA8 @ =gUnknown_020238CC
+ movs r2, 0xF
+ str r2, [sp]
+ movs r2, 0x90
+ movs r3, 0x2
+ bl sub_8002EB0
+ ldr r1, _08112FAC @ =gTasks
+ mov r2, r8
+ adds r0, r2, r7
+ lsls r0, 3
+ adds r0, r1
+_08112F9A:
+ movs r1, 0xE
+ strh r1, [r0, 0x8]
+ b _08112FD0
+ .align 2, 0
+_08112FA0: .4byte gUnknown_08400F8C
+_08112FA4: .4byte gUnknown_03004210
+_08112FA8: .4byte gUnknown_020238CC
+_08112FAC: .4byte gTasks
+_08112FB0:
+ ldr r0, _08112FE0 @ =gUnknown_03004210
+ ldrh r0, [r0, 0x16]
+ cmp r0, 0
+ bne _08112FD0
+ bl IsSEPlaying
+ lsls r0, 24
+ cmp r0, 0
+ bne _08112FD0
+ ldr r0, _08112FE4 @ =gTasks
+ mov r3, r8
+ adds r1, r3, r7
+ lsls r1, 3
+ adds r1, r0
+ movs r0, 0x5
+_08112FCE:
+ strh r0, [r1, 0x18]
+_08112FD0:
+ add sp, 0x18
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08112FE0: .4byte gUnknown_03004210
+_08112FE4: .4byte gTasks
+ thumb_func_end sub_811240C
+
+ thumb_func_start sub_8112FE8
+sub_8112FE8: @ 8112FE8
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ sub sp, 0x18
+ lsls r0, 24
+ lsrs r7, r0, 24
+ ldr r2, _0811302C @ =gTasks
+ lsls r1, r7, 2
+ adds r1, r7
+ lsls r1, 3
+ adds r1, r2
+ movs r3, 0xA
+ ldrsh r0, [r1, r3]
+ mov r8, r0
+ movs r3, 0xC
+ ldrsh r0, [r1, r3]
+ lsls r0, 16
+ mov r3, r8
+ orrs r3, r0
+ mov r8, r3
+ movs r3, 0x8
+ ldrsh r0, [r1, r3]
+ adds r6, r2, 0
+ cmp r0, 0x11
+ bls _08113020
+ bl _08113B3A
+_08113020:
+ lsls r0, 2
+ ldr r1, _08113030 @ =_08113034
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_0811302C: .4byte gTasks
+_08113030: .4byte _08113034
+ .align 2, 0
+_08113034:
+ .4byte _0811307C
+ .4byte _081130B8
+ .4byte _081130DC
+ .4byte _0811310C
+ .4byte _0811314C
+ .4byte _0811318C
+ .4byte _081131C8
+ .4byte _081131F4
+ .4byte _0811322C
+ .4byte _08113248
+ .4byte _08113274
+ .4byte _081132A8
+ .4byte _081132F8
+ .4byte _081133A8
+ .4byte _0811346C
+ .4byte _08113490
+ .4byte _081134F8
+ .4byte _08113538
+_0811307C:
+ ldr r4, _081130A8 @ =gStringVar4
+ ldr r1, _081130AC @ =gUnknown_08400C4A
+ adds r0, r4, 0
+ bl StringExpandPlaceholders
+ ldr r0, _081130B0 @ =gUnknown_03004828
+ ldr r1, [r0]
+ adds r0, r1, 0x4
+ adds r1, 0x34
+ ldrb r2, [r1]
+ movs r1, 0xF
+ str r1, [sp]
+ adds r1, r4, 0
+ movs r3, 0x2
+ bl sub_8002EB0
+ ldr r1, _081130B4 @ =gTasks
+ lsls r0, r7, 2
+ adds r0, r7
+ lsls r0, 3
+ adds r0, r1
+ b _08113298
+ .align 2, 0
+_081130A8: .4byte gStringVar4
+_081130AC: .4byte gUnknown_08400C4A
+_081130B0: .4byte gUnknown_03004828
+_081130B4: .4byte gTasks
+_081130B8:
+ ldr r0, _081130D8 @ =gUnknown_03004828
+ ldr r0, [r0]
+ ldrh r0, [r0, 0x1A]
+ cmp r0, 0
+ beq _081130C6
+ bl _08113B3A
+_081130C6:
+ lsls r4, r7, 2
+ adds r4, r7
+ lsls r4, 3
+ adds r4, r6
+ ldrh r0, [r4, 0xE]
+ movs r1, 0
+ bl PlayCry1
+ b _081132E2
+ .align 2, 0
+_081130D8: .4byte gUnknown_03004828
+_081130DC:
+ bl IsCryFinished
+ lsls r0, 24
+ cmp r0, 0
+ bne _081130EA
+ bl _08113B3A
+_081130EA:
+ ldr r0, _08113104 @ =0x00000179
+ bl m4aSongNumStop
+ movs r0, 0xBC
+ lsls r0, 1
+ bl PlaySE
+ ldr r1, _08113108 @ =gTasks
+ lsls r0, r7, 2
+ adds r0, r7
+ lsls r0, 3
+ adds r0, r1
+ b _08113298
+ .align 2, 0
+_08113104: .4byte 0x00000179
+_08113108: .4byte gTasks
+_0811310C:
+ bl IsSEPlaying
+ lsls r0, 24
+ lsrs r5, r0, 24
+ cmp r5, 0
+ beq _0811311C
+ bl _08113B3A
+_0811311C:
+ ldr r0, _08113144 @ =0x00000179
+ bl PlayBGM
+ ldr r1, _08113148 @ =gTasks
+ lsls r0, r7, 2
+ adds r0, r7
+ lsls r0, 3
+ adds r0, r1
+ ldrh r1, [r0, 0x8]
+ adds r1, 0x1
+ strh r1, [r0, 0x8]
+ str r5, [sp]
+ movs r0, 0x1C
+ movs r1, 0x4
+ movs r2, 0
+ movs r3, 0x10
+ bl BeginNormalPaletteFade
+ bl _08113B3A
+ .align 2, 0
+_08113144: .4byte 0x00000179
+_08113148: .4byte gTasks
+_0811314C:
+ ldr r0, _08113180 @ =gPaletteFade
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ beq _0811315C
+ bl _08113B3A
+_0811315C:
+ movs r1, 0x80
+ lsls r1, 19
+ movs r2, 0x9A
+ lsls r2, 5
+ adds r0, r2, 0
+ strh r0, [r1]
+ movs r0, 0x11
+ bl sub_8149970
+ ldr r1, _08113184 @ =gUnknown_02024D1E
+ strb r0, [r1, 0x2]
+ ldr r1, _08113188 @ =gTasks
+ lsls r0, r7, 2
+ adds r0, r7
+ lsls r0, 3
+ adds r0, r1
+ b _08113298
+ .align 2, 0
+_08113180: .4byte gPaletteFade
+_08113184: .4byte gUnknown_02024D1E
+_08113188: .4byte gTasks
+_0811318C:
+ ldr r4, _081131C0 @ =gUnknown_02024D1E
+ ldrb r0, [r4, 0x2]
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r6
+ ldrb r0, [r1, 0x4]
+ cmp r0, 0
+ beq _081131A2
+ bl _08113B3A
+_081131A2:
+ lsls r0, r7, 2
+ adds r0, r7
+ lsls r0, 3
+ adds r0, r6
+ ldrh r1, [r0, 0x8]
+ adds r1, 0x1
+ strh r1, [r0, 0x8]
+ ldr r1, _081131C4 @ =0x02014800
+ movs r0, 0x1
+ strb r0, [r1, 0x3]
+ bl sub_8149A90
+ strb r0, [r4, 0x2]
+ bl _08113B3A
+ .align 2, 0
+_081131C0: .4byte gUnknown_02024D1E
+_081131C4: .4byte 0x02014800
+_081131C8:
+ ldr r4, _081131EC @ =gUnknown_02024D1E
+ ldrb r0, [r4, 0x2]
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r6
+ ldrb r0, [r1, 0x4]
+ cmp r0, 0
+ beq _081131DE
+ bl _08113B3A
+_081131DE:
+ ldr r1, _081131F0 @ =0x02014800
+ ldrb r0, [r1]
+ ldrb r1, [r1, 0x1]
+ bl sub_8149E7C
+ strb r0, [r4, 0x2]
+ b _08113290
+ .align 2, 0
+_081131EC: .4byte gUnknown_02024D1E
+_081131F0: .4byte 0x02014800
+_081131F4:
+ ldr r1, _08113224 @ =0x02014800
+ ldrb r0, [r1, 0x3]
+ subs r0, 0x1
+ strb r0, [r1, 0x3]
+ lsls r0, 24
+ cmp r0, 0
+ beq _08113206
+ bl _08113B3A
+_08113206:
+ movs r0, 0x3
+ strb r0, [r1, 0x3]
+ ldr r0, _08113228 @ =gUnknown_02024D1E
+ ldrb r1, [r0, 0x2]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 3
+ adds r0, r6
+ ldrb r0, [r0, 0x4]
+ cmp r0, 0
+ beq _08113220
+ bl _08113B3A
+_08113220:
+ b _08113290
+ .align 2, 0
+_08113224: .4byte 0x02014800
+_08113228: .4byte gUnknown_02024D1E
+_0811322C:
+ bl sub_8149B44
+ ldr r1, _08113240 @ =gUnknown_02024D1E
+ strb r0, [r1, 0x2]
+ ldr r1, _08113244 @ =gTasks
+ lsls r0, r7, 2
+ adds r0, r7
+ lsls r0, 3
+ adds r0, r1
+ b _08113298
+ .align 2, 0
+_08113240: .4byte gUnknown_02024D1E
+_08113244: .4byte gTasks
+_08113248:
+ ldr r5, _08113270 @ =gUnknown_02024D1E
+ ldrb r0, [r5, 0x2]
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r6
+ ldrb r0, [r1, 0x4]
+ cmp r0, 0
+ beq _0811325E
+ bl _08113B3A
+_0811325E:
+ lsls r4, r7, 2
+ adds r4, r7
+ lsls r4, 3
+ adds r4, r6
+ ldrh r0, [r4, 0x10]
+ bl sub_8149D5C
+ strb r0, [r5, 0x2]
+ b _081132E2
+ .align 2, 0
+_08113270: .4byte gUnknown_02024D1E
+_08113274:
+ ldr r0, _081132A4 @ =gUnknown_02024D1E
+ ldrb r1, [r0, 0x2]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 3
+ adds r0, r6
+ ldrb r0, [r0, 0x4]
+ cmp r0, 0
+ beq _0811328A
+ bl _08113B3A
+_0811328A:
+ movs r0, 0x21
+ bl PlaySE
+_08113290:
+ lsls r0, r7, 2
+ adds r0, r7
+ lsls r0, 3
+ adds r0, r6
+_08113298:
+ ldrh r1, [r0, 0x8]
+ adds r1, 0x1
+ strh r1, [r0, 0x8]
+ bl _08113B3A
+ .align 2, 0
+_081132A4: .4byte gUnknown_02024D1E
+_081132A8:
+ bl IsSEPlaying
+ lsls r0, 24
+ cmp r0, 0
+ bne _081132B6
+ bl _08113B3A
+_081132B6:
+ ldr r0, _081132EC @ =gTasks
+ lsls r4, r7, 2
+ adds r4, r7
+ lsls r4, 3
+ adds r4, r0
+ ldrh r0, [r4, 0x10]
+ movs r1, 0
+ bl PlayCry1
+ ldr r0, _081132F0 @ =gPlttBufferUnfaded + 0x40
+ ldr r1, _081132F4 @ =0x02009000
+ movs r2, 0x60
+ bl memcpy
+ movs r0, 0
+ str r0, [sp]
+ movs r0, 0x1
+ movs r1, 0
+ movs r2, 0x10
+ movs r3, 0
+ bl BeginNormalPaletteFade
+_081132E2:
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+ bl _08113B3A
+ .align 2, 0
+_081132EC: .4byte gTasks
+_081132F0: .4byte gPlttBufferUnfaded + 0x40
+_081132F4: .4byte 0x02009000
+_081132F8:
+ bl IsCryFinished
+ lsls r0, 24
+ cmp r0, 0
+ bne _08113306
+ bl _08113B3A
+_08113306:
+ ldr r0, _08113390 @ =gPaletteFade
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ beq _08113316
+ bl _08113B3A
+_08113316:
+ ldr r4, _08113394 @ =gStringVar4
+ ldr r1, _08113398 @ =gUnknown_08400C60
+ adds r0, r4, 0
+ bl StringExpandPlaceholders
+ ldr r0, _0811339C @ =gUnknown_03004828
+ ldr r1, [r0]
+ adds r0, r1, 0x4
+ adds r1, 0x34
+ ldrb r2, [r1]
+ movs r1, 0xF
+ str r1, [sp]
+ adds r1, r4, 0
+ movs r3, 0x2
+ bl sub_8002EB0
+ ldr r0, _081133A0 @ =0x00000173
+ bl PlayFanfare
+ ldr r2, _081133A4 @ =gTasks
+ lsls r1, r7, 2
+ adds r1, r7
+ lsls r1, 3
+ adds r4, r1, r2
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+ adds r2, r1
+ adds r2, 0x10
+ mov r0, r8
+ movs r1, 0xB
+ bl SetMonData
+ mov r0, r8
+ bl CalculateMonStats
+ ldrh r1, [r4, 0xE]
+ ldrh r2, [r4, 0x10]
+ mov r0, r8
+ bl sub_803FB68
+ ldrh r0, [r4, 0x10]
+ bl SpeciesToNationalPokedexNum
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0x2
+ bl sub_8090D90
+ ldrh r0, [r4, 0x10]
+ bl SpeciesToNationalPokedexNum
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0x3
+ bl sub_8090D90
+ movs r0, 0xE
+ bl sav12_xor_increment
+ b _08113B3A
+ .align 2, 0
+_08113390: .4byte gPaletteFade
+_08113394: .4byte gStringVar4
+_08113398: .4byte gUnknown_08400C60
+_0811339C: .4byte gUnknown_03004828
+_081133A0: .4byte 0x00000173
+_081133A4: .4byte gTasks
+_081133A8:
+ ldr r0, _08113410 @ =gUnknown_03004828
+ ldr r0, [r0]
+ ldrh r0, [r0, 0x1A]
+ cmp r0, 0
+ beq _081133B4
+ b _08113B3A
+_081133B4:
+ bl IsFanfareTaskInactive
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ beq _081133C2
+ b _08113B3A
+_081133C2:
+ ldr r1, _08113414 @ =gTasks
+ lsls r4, r7, 2
+ adds r0, r4, r7
+ lsls r0, 3
+ adds r5, r0, r1
+ ldrb r1, [r5, 0x14]
+ mov r0, r8
+ bl sub_803B7C8
+ lsls r0, 16
+ lsrs r6, r0, 16
+ mov r9, r4
+ cmp r6, 0
+ beq _08113434
+ movs r3, 0x1E
+ ldrsh r2, [r5, r3]
+ cmp r2, 0
+ bne _08113434
+ ldrh r1, [r5, 0x12]
+ movs r0, 0x80
+ orrs r0, r1
+ strh r0, [r5, 0x12]
+ strh r2, [r5, 0x14]
+ strh r2, [r5, 0x18]
+ mov r0, r8
+ movs r1, 0x2
+ add r2, sp, 0x4
+ bl GetMonData
+ ldr r0, _08113418 @ =gUnknown_030041C0
+ add r1, sp, 0x4
+ bl StringCopy10
+ ldr r0, _0811341C @ =0x0000ffff
+ cmp r6, r0
+ bne _08113420
+ movs r0, 0x11
+ strh r0, [r5, 0x8]
+ b _08113B3A
+ .align 2, 0
+_08113410: .4byte gUnknown_03004828
+_08113414: .4byte gTasks
+_08113418: .4byte gUnknown_030041C0
+_0811341C: .4byte 0x0000ffff
+_08113420:
+ ldr r0, _08113430 @ =0x0000fffe
+ cmp r6, r0
+ bne _08113428
+ b _08113B3A
+_08113428:
+ movs r0, 0xF
+ strh r0, [r5, 0x8]
+ b _08113B3A
+ .align 2, 0
+_08113430: .4byte 0x0000fffe
+_08113434:
+ ldr r0, _0811345C @ =0x00000179
+ bl PlayBGM
+ ldr r0, _08113460 @ =gUnknown_03004828
+ ldr r2, [r0]
+ adds r0, r2, 0x4
+ ldr r1, _08113464 @ =gOtherText_LinkStandby2
+ adds r2, 0x34
+ ldrb r2, [r2]
+ movs r3, 0xF
+ str r3, [sp]
+ movs r3, 0x2
+ bl sub_8002EB0
+ ldr r0, _08113468 @ =gTasks
+ mov r2, r9
+ adds r1, r2, r7
+ lsls r1, 3
+ adds r1, r0
+ b _081134DC
+ .align 2, 0
+_0811345C: .4byte 0x00000179
+_08113460: .4byte gUnknown_03004828
+_08113464: .4byte gOtherText_LinkStandby2
+_08113468: .4byte gTasks
+_0811346C:
+ ldr r0, _08113488 @ =gUnknown_03004828
+ ldr r0, [r0]
+ ldrh r0, [r0, 0x1A]
+ cmp r0, 0
+ beq _08113478
+ b _08113B3A
+_08113478:
+ adds r0, r7, 0
+ bl DestroyTask
+ ldr r0, _0811348C @ =gUnknown_03005E94
+ ldr r0, [r0]
+ bl SetMainCallback2
+ b _08113B3A
+ .align 2, 0
+_08113488: .4byte gUnknown_03004828
+_0811348C: .4byte gUnknown_03005E94
+_08113490:
+ ldr r4, _081134E4 @ =gUnknown_03004828
+ ldr r0, [r4]
+ ldrh r0, [r0, 0x1A]
+ cmp r0, 0
+ beq _0811349C
+ b _08113B3A
+_0811349C:
+ bl IsSEPlaying
+ lsls r0, 24
+ cmp r0, 0
+ beq _081134A8
+ b _08113B3A
+_081134A8:
+ bl sub_8024CEC
+ ldr r0, _081134E8 @ =0x0000016f
+ bl PlayFanfare
+ ldr r0, _081134EC @ =gUnknown_08400F8C
+ ldr r0, [r0, 0xC]
+ bl get_battle_strings_
+ ldr r2, [r4]
+ adds r0, r2, 0x4
+ ldr r1, _081134F0 @ =gUnknown_020238CC
+ adds r2, 0x34
+ ldrb r2, [r2]
+ movs r3, 0xF
+ str r3, [sp]
+ movs r3, 0x2
+ bl sub_8002EB0
+ ldr r0, _081134F4 @ =gTasks
+ lsls r1, r7, 2
+ adds r1, r7
+ lsls r1, 3
+ adds r1, r0
+ movs r0, 0x40
+ strh r0, [r1, 0x14]
+_081134DC:
+ ldrh r0, [r1, 0x8]
+ adds r0, 0x1
+ strh r0, [r1, 0x8]
+ b _08113B3A
+ .align 2, 0
+_081134E4: .4byte gUnknown_03004828
+_081134E8: .4byte 0x0000016f
+_081134EC: .4byte gUnknown_08400F8C
+_081134F0: .4byte gUnknown_020238CC
+_081134F4: .4byte gTasks
+_081134F8:
+ ldr r0, _08113530 @ =gUnknown_03004828
+ ldr r0, [r0]
+ ldrh r0, [r0, 0x1A]
+ cmp r0, 0
+ beq _08113504
+ b _08113B3A
+_08113504:
+ bl IsFanfareTaskInactive
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ beq _08113512
+ b _08113B3A
+_08113512:
+ ldr r0, _08113534 @ =gTasks
+ lsls r1, r7, 2
+ adds r1, r7
+ lsls r1, 3
+ adds r1, r0
+ ldrh r0, [r1, 0x14]
+ subs r0, 0x1
+ strh r0, [r1, 0x14]
+ lsls r0, 16
+ cmp r0, 0
+ beq _0811352A
+ b _08113B3A
+_0811352A:
+ movs r0, 0xD
+ strh r0, [r1, 0x8]
+ b _08113B3A
+ .align 2, 0
+_08113530: .4byte gUnknown_03004828
+_08113534: .4byte gTasks
+_08113538:
+ lsls r1, r7, 2
+ adds r0, r1, r7
+ lsls r0, 3
+ adds r0, r6
+ movs r3, 0x18
+ ldrsh r0, [r0, r3]
+ mov r9, r1
+ cmp r0, 0xB
+ bls _0811354C
+ b _08113B3A
+_0811354C:
+ lsls r0, 2
+ ldr r1, _08113558 @ =_0811355C
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_08113558: .4byte _0811355C
+ .align 2, 0
+_0811355C:
+ .4byte _0811358C
+ .4byte _081135E4
+ .4byte _08113638
+ .4byte _08113682
+ .4byte _0811371C
+ .4byte _0811387C
+ .4byte _081138CC
+ .4byte _081139E8
+ .4byte _08113A3C
+ .4byte _08113A90
+ .4byte _08113AD8
+ .4byte _08113B18
+_0811358C:
+ ldr r4, _081135D4 @ =gUnknown_03004828
+ ldr r0, [r4]
+ ldrh r0, [r0, 0x1A]
+ cmp r0, 0
+ beq _08113598
+ b _08113B3A
+_08113598:
+ bl IsSEPlaying
+ lsls r0, 24
+ cmp r0, 0
+ beq _081135A4
+ b _08113B3A
+_081135A4:
+ bl sub_8024CEC
+ ldr r0, _081135D8 @ =gUnknown_08400F8C
+ ldr r0, [r0, 0x10]
+ bl get_battle_strings_
+ ldr r2, [r4]
+ adds r0, r2, 0x4
+ ldr r1, _081135DC @ =gUnknown_020238CC
+ adds r2, 0x34
+ ldrb r2, [r2]
+ movs r3, 0xF
+ str r3, [sp]
+ movs r3, 0x2
+ bl sub_8002EB0
+ ldr r0, _081135E0 @ =gTasks
+ mov r2, r9
+ adds r1, r2, r7
+ lsls r1, 3
+ adds r1, r0
+ ldrh r0, [r1, 0x18]
+ adds r0, 0x1
+ b _08113B38
+ .align 2, 0
+_081135D4: .4byte gUnknown_03004828
+_081135D8: .4byte gUnknown_08400F8C
+_081135DC: .4byte gUnknown_020238CC
+_081135E0: .4byte gTasks
+_081135E4:
+ ldr r4, _08113628 @ =gUnknown_03004828
+ ldr r0, [r4]
+ ldrh r0, [r0, 0x1A]
+ cmp r0, 0
+ beq _081135F0
+ b _08113B3A
+_081135F0:
+ bl IsSEPlaying
+ lsls r0, 24
+ cmp r0, 0
+ beq _081135FC
+ b _08113B3A
+_081135FC:
+ ldr r0, _0811362C @ =gUnknown_08400F8C
+ ldr r0, [r0, 0x14]
+ bl get_battle_strings_
+ ldr r2, [r4]
+ adds r0, r2, 0x4
+ ldr r1, _08113630 @ =gUnknown_020238CC
+ adds r2, 0x34
+ ldrb r2, [r2]
+ movs r3, 0xF
+ str r3, [sp]
+ movs r3, 0x2
+ bl sub_8002EB0
+ ldr r0, _08113634 @ =gTasks
+ mov r3, r9
+ adds r1, r3, r7
+ lsls r1, 3
+ adds r1, r0
+ ldrh r0, [r1, 0x18]
+ adds r0, 0x1
+ b _08113B38
+ .align 2, 0
+_08113628: .4byte gUnknown_03004828
+_0811362C: .4byte gUnknown_08400F8C
+_08113630: .4byte gUnknown_020238CC
+_08113634: .4byte gTasks
+_08113638:
+ ldr r4, _081136FC @ =gUnknown_03004828
+ ldr r0, [r4]
+ ldrh r0, [r0, 0x1A]
+ cmp r0, 0
+ beq _08113644
+ b _08113B3A
+_08113644:
+ bl IsSEPlaying
+ lsls r0, 24
+ cmp r0, 0
+ bne _08113682
+ ldr r0, _08113700 @ =gUnknown_08400F8C
+ ldr r0, [r0, 0x18]
+ bl get_battle_strings_
+ ldr r2, [r4]
+ adds r0, r2, 0x4
+ ldr r1, _08113704 @ =gUnknown_020238CC
+ adds r2, 0x34
+ ldrb r2, [r2]
+ movs r3, 0xF
+ str r3, [sp]
+ movs r3, 0x2
+ bl sub_8002EB0
+ ldr r0, _08113708 @ =gTasks
+ mov r2, r9
+ adds r1, r2, r7
+ lsls r1, 3
+ adds r1, r0
+ movs r0, 0x5
+ strh r0, [r1, 0x1A]
+ movs r0, 0x9
+ strh r0, [r1, 0x1C]
+ ldrh r0, [r1, 0x18]
+ adds r0, 0x1
+ strh r0, [r1, 0x18]
+_08113682:
+ ldr r5, _081136FC @ =gUnknown_03004828
+ ldr r0, [r5]
+ ldrh r0, [r0, 0x1A]
+ cmp r0, 0
+ beq _0811368E
+ b _08113B3A
+_0811368E:
+ bl IsSEPlaying
+ lsls r0, 24
+ lsrs r6, r0, 24
+ cmp r6, 0
+ beq _0811369C
+ b _08113B3A
+_0811369C:
+ ldr r0, [r5]
+ adds r0, 0x4
+ movs r1, 0xD
+ str r1, [sp]
+ movs r1, 0x18
+ movs r2, 0x8
+ movs r3, 0x1D
+ bl DrawTextWindow
+ ldr r4, _0811370C @ =gUnknown_02024D1E
+ strb r6, [r4, 0x1]
+ ldr r2, [r5]
+ adds r0, r2, 0x4
+ ldr r1, _08113710 @ =gOtherText_YesNoAndPlayer
+ adds r2, 0x34
+ ldrb r2, [r2]
+ adds r2, 0x80
+ movs r3, 0x9
+ str r3, [sp]
+ movs r3, 0x19
+ bl InitWindow
+ ldr r0, [r5]
+ adds r0, 0x4
+ bl sub_8002F44
+ ldr r1, _08113714 @ =0x0000ffff
+ ldr r3, _08113718 @ =0x00002d9f
+ movs r0, 0x20
+ str r0, [sp]
+ movs r0, 0
+ movs r2, 0xC
+ bl sub_814A5C0
+ bl sub_81150D8
+ ldr r0, _08113708 @ =gTasks
+ mov r3, r9
+ adds r1, r3, r7
+ lsls r1, 3
+ adds r1, r0
+ ldrh r0, [r1, 0x18]
+ adds r0, 0x1
+ movs r2, 0
+ strh r0, [r1, 0x18]
+ strb r2, [r4, 0x1]
+ b _08113B3A
+ .align 2, 0
+_081136FC: .4byte gUnknown_03004828
+_08113700: .4byte gUnknown_08400F8C
+_08113704: .4byte gUnknown_020238CC
+_08113708: .4byte gTasks
+_0811370C: .4byte gUnknown_02024D1E
+_08113710: .4byte gOtherText_YesNoAndPlayer
+_08113714: .4byte 0x0000ffff
+_08113718: .4byte 0x00002d9f
+_0811371C:
+ ldr r0, _081137CC @ =gMain
+ ldrh r1, [r0, 0x2E]
+ movs r0, 0x40
+ ands r0, r1
+ cmp r0, 0
+ beq _08113742
+ ldr r4, _081137D0 @ =gUnknown_02024D1E
+ ldrb r0, [r4, 0x1]
+ cmp r0, 0
+ beq _08113742
+ movs r0, 0x5
+ bl PlaySE
+ bl nullsub_24
+ movs r0, 0
+ strb r0, [r4, 0x1]
+ bl sub_81150D8
+_08113742:
+ ldr r0, _081137CC @ =gMain
+ ldrh r1, [r0, 0x2E]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ beq _08113768
+ ldr r4, _081137D0 @ =gUnknown_02024D1E
+ ldrb r0, [r4, 0x1]
+ cmp r0, 0
+ bne _08113768
+ movs r0, 0x5
+ bl PlaySE
+ bl nullsub_24
+ movs r0, 0x1
+ strb r0, [r4, 0x1]
+ bl sub_81150D8
+_08113768:
+ ldr r0, _081137CC @ =gMain
+ ldrh r1, [r0, 0x2E]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _0811380A
+ ldr r4, _081137D4 @ =gUnknown_03004828
+ ldr r0, [r4]
+ adds r0, 0x4
+ movs r1, 0xD
+ str r1, [sp]
+ movs r1, 0x18
+ movs r2, 0x8
+ movs r3, 0x1D
+ bl ZeroFillWindowRect
+ bl sub_814A7FC
+ ldr r0, _081137D8 @ =gUnknown_08400F8C
+ movs r1, 0x92
+ lsls r1, 3
+ adds r0, r1
+ ldr r0, [r0]
+ bl get_battle_strings_
+ ldr r2, [r4]
+ adds r0, r2, 0x4
+ ldr r1, _081137DC @ =gUnknown_020238CC
+ adds r2, 0x34
+ ldrb r2, [r2]
+ movs r3, 0xF
+ str r3, [sp]
+ movs r3, 0x2
+ bl sub_8002EB0
+ movs r0, 0x5
+ bl PlaySE
+ ldr r0, _081137D0 @ =gUnknown_02024D1E
+ ldrb r2, [r0, 0x1]
+ cmp r2, 0
+ beq _081137E4
+ ldr r0, _081137E0 @ =gTasks
+ mov r2, r9
+ adds r1, r2, r7
+ lsls r1, 3
+ adds r1, r0
+ ldrh r0, [r1, 0x1C]
+ strh r0, [r1, 0x18]
+ b _0811380A
+ .align 2, 0
+_081137CC: .4byte gMain
+_081137D0: .4byte gUnknown_02024D1E
+_081137D4: .4byte gUnknown_03004828
+_081137D8: .4byte gUnknown_08400F8C
+_081137DC: .4byte gUnknown_020238CC
+_081137E0: .4byte gTasks
+_081137E4:
+ ldr r0, _08113868 @ =gTasks
+ mov r3, r9
+ adds r1, r3, r7
+ lsls r1, 3
+ adds r1, r0
+ ldrh r0, [r1, 0x1A]
+ strh r0, [r1, 0x18]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x5
+ bne _0811380A
+ movs r0, 0x1
+ negs r0, r0
+ str r2, [sp]
+ movs r1, 0
+ movs r2, 0
+ movs r3, 0x10
+ bl BeginNormalPaletteFade
+_0811380A:
+ ldr r0, _0811386C @ =gMain
+ ldrh r1, [r0, 0x2E]
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ bne _08113818
+ b _08113B3A
+_08113818:
+ ldr r4, _08113870 @ =gUnknown_03004828
+ ldr r0, [r4]
+ adds r0, 0x4
+ movs r1, 0xD
+ str r1, [sp]
+ movs r1, 0x18
+ movs r2, 0x8
+ movs r3, 0x1D
+ bl ZeroFillWindowRect
+ bl sub_814A7FC
+ ldr r0, _08113874 @ =gUnknown_08400F8C
+ movs r1, 0x92
+ lsls r1, 3
+ adds r0, r1
+ ldr r0, [r0]
+ bl get_battle_strings_
+ ldr r2, [r4]
+ adds r0, r2, 0x4
+ ldr r1, _08113878 @ =gUnknown_020238CC
+ adds r2, 0x34
+ ldrb r2, [r2]
+ movs r3, 0xF
+ str r3, [sp]
+ movs r3, 0x2
+ bl sub_8002EB0
+ movs r0, 0x5
+ bl PlaySE
+ ldr r1, _08113868 @ =gTasks
+ mov r2, r9
+ adds r0, r2, r7
+ lsls r0, 3
+ adds r0, r1
+ ldrh r1, [r0, 0x1C]
+ strh r1, [r0, 0x18]
+ b _08113B3A
+ .align 2, 0
+_08113868: .4byte gTasks
+_0811386C: .4byte gMain
+_08113870: .4byte gUnknown_03004828
+_08113874: .4byte gUnknown_08400F8C
+_08113878: .4byte gUnknown_020238CC
+_0811387C:
+ ldr r0, _081138B8 @ =gPaletteFade
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ beq _0811388A
+ b _08113B3A
+_0811388A:
+ ldr r0, _081138BC @ =gPlayerParty
+ mov r3, r9
+ adds r5, r3, r7
+ lsls r5, 3
+ adds r5, r6
+ ldrh r1, [r5, 0x20]
+ lsls r1, 24
+ lsrs r1, 24
+ ldr r2, _081138C0 @ =gPlayerPartyCount
+ ldrb r2, [r2]
+ subs r2, 0x1
+ lsls r2, 24
+ lsrs r2, 24
+ ldr r3, _081138C4 @ =sub_8111E80
+ 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 sub_8111E80
+_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 @ =sub_8112290
+ 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 sub_8112290
+_0811390C: .4byte gTasks
+_08113910:
+ adds r1, r6, 0
+ adds r1, 0xD
+ mov r0, r8
+ bl GetMonData
+ lsls r0, 16
+ lsrs r4, r0, 16
+ adds r0, r4, 0
+ bl sub_8040A00
+ cmp r0, 0
+ beq _08113970
+ ldr r0, _0811395C @ =gUnknown_08400F8C
+ ldr r3, _08113960 @ =0x000004cc
+ adds r0, r3
+ ldr r0, [r0]
+ bl get_battle_strings_
+ ldr r0, _08113964 @ =gUnknown_03004828
+ ldr r2, [r0]
+ adds r0, r2, 0x4
+ ldr r1, _08113968 @ =gUnknown_020238CC
+ adds r2, 0x34
+ ldrb r2, [r2]
+ movs r3, 0xF
+ str r3, [sp]
+ movs r3, 0x2
+ bl sub_8002EB0
+ ldr r1, _0811396C @ =gTasks
+ mov r2, r9
+ adds r0, r2, r7
+ lsls r0, 3
+ adds r0, r1
+ movs r1, 0xB
+ strh r1, [r0, 0x18]
+ b _08113B3A
+ .align 2, 0
+_0811395C: .4byte gUnknown_08400F8C
+_08113960: .4byte 0x000004cc
+_08113964: .4byte gUnknown_03004828
+_08113968: .4byte gUnknown_020238CC
+_0811396C: .4byte gTasks
+_08113970:
+ ldr r1, _081139D0 @ =gUnknown_03004290
+ movs r0, 0xFD
+ strb r0, [r1]
+ movs r0, 0x2
+ strb r0, [r1, 0x1]
+ strb r4, [r1, 0x2]
+ lsrs r0, r4, 8
+ strb r0, [r1, 0x3]
+ movs r0, 0xFF
+ strb r0, [r1, 0x4]
+ lsls r4, r6, 24
+ lsrs r4, 24
+ mov r0, r8
+ adds r1, r4, 0
+ bl RemoveMonPPBonus
+ ldr r0, _081139D4 @ =word_2024E82
+ ldrh r1, [r0]
+ mov r0, r8
+ adds r2, r4, 0
+ bl SetMonMoveSlot
+ ldr r0, _081139D8 @ =gUnknown_08400F8C
+ movs r3, 0xCF
+ lsls r3, 2
+ adds r0, r3
+ ldr r0, [r0]
+ bl get_battle_strings_
+ ldr r0, _081139DC @ =gUnknown_03004828
+ ldr r2, [r0]
+ adds r0, r2, 0x4
+ ldr r1, _081139E0 @ =gUnknown_020238CC
+ adds r2, 0x34
+ ldrb r2, [r2]
+ movs r3, 0xF
+ str r3, [sp]
+ movs r3, 0x2
+ bl sub_8002EB0
+ ldr r0, _081139E4 @ =gTasks
+ mov r2, r9
+ adds r1, r2, r7
+ lsls r1, 3
+ adds r1, r0
+ ldrh r0, [r1, 0x18]
+ adds r0, 0x1
+ b _08113B38
+ .align 2, 0
+_081139D0: .4byte gUnknown_03004290
+_081139D4: .4byte word_2024E82
+_081139D8: .4byte gUnknown_08400F8C
+_081139DC: .4byte gUnknown_03004828
+_081139E0: .4byte gUnknown_020238CC
+_081139E4: .4byte gTasks
+_081139E8:
+ ldr r4, _08113A2C @ =gUnknown_03004828
+ ldr r0, [r4]
+ ldrh r0, [r0, 0x1A]
+ cmp r0, 0
+ beq _081139F4
+ b _08113B3A
+_081139F4:
+ bl IsSEPlaying
+ lsls r0, 24
+ cmp r0, 0
+ beq _08113A00
+ b _08113B3A
+_08113A00:
+ ldr r0, _08113A30 @ =gUnknown_08400F8C
+ ldr r0, [r0, 0x1C]
+ bl get_battle_strings_
+ ldr r2, [r4]
+ adds r0, r2, 0x4
+ ldr r1, _08113A34 @ =gUnknown_020238CC
+ adds r2, 0x34
+ ldrb r2, [r2]
+ movs r3, 0xF
+ str r3, [sp]
+ movs r3, 0x2
+ bl sub_8002EB0
+ ldr r0, _08113A38 @ =gTasks
+ mov r3, r9
+ adds r1, r3, r7
+ lsls r1, 3
+ adds r1, r0
+ ldrh r0, [r1, 0x18]
+ adds r0, 0x1
+ b _08113B38
+ .align 2, 0
+_08113A2C: .4byte gUnknown_03004828
+_08113A30: .4byte gUnknown_08400F8C
+_08113A34: .4byte gUnknown_020238CC
+_08113A38: .4byte gTasks
+_08113A3C:
+ ldr r4, _08113A80 @ =gUnknown_03004828
+ ldr r0, [r4]
+ ldrh r0, [r0, 0x1A]
+ cmp r0, 0
+ bne _08113B3A
+ bl IsSEPlaying
+ lsls r0, 24
+ cmp r0, 0
+ bne _08113B3A
+ ldr r0, _08113A84 @ =gUnknown_08400F8C
+ movs r1, 0xD0
+ lsls r1, 2
+ adds r0, r1
+ ldr r0, [r0]
+ bl get_battle_strings_
+ ldr r2, [r4]
+ adds r0, r2, 0x4
+ ldr r1, _08113A88 @ =gUnknown_020238CC
+ adds r2, 0x34
+ ldrb r2, [r2]
+ movs r4, 0xF
+ str r4, [sp]
+ movs r3, 0x2
+ bl sub_8002EB0
+ ldr r1, _08113A8C @ =gTasks
+ mov r2, r9
+ adds r0, r2, r7
+ lsls r0, 3
+ adds r0, r1
+ strh r4, [r0, 0x8]
+ b _08113B3A
+ .align 2, 0
+_08113A80: .4byte gUnknown_03004828
+_08113A84: .4byte gUnknown_08400F8C
+_08113A88: .4byte gUnknown_020238CC
+_08113A8C: .4byte gTasks
+_08113A90:
+ ldr r0, _08113AC8 @ =gUnknown_08400F8C
+ ldr r0, [r0, 0x20]
+ bl get_battle_strings_
+ ldr r0, _08113ACC @ =gUnknown_03004828
+ ldr r2, [r0]
+ adds r0, r2, 0x4
+ ldr r1, _08113AD0 @ =gUnknown_020238CC
+ adds r2, 0x34
+ ldrb r2, [r2]
+ movs r3, 0xF
+ str r3, [sp]
+ movs r3, 0x2
+ bl sub_8002EB0
+ ldr r1, _08113AD4 @ =gTasks
+ mov r3, r9
+ adds r0, r3, r7
+ lsls r0, 3
+ adds r0, r1
+ movs r2, 0
+ movs r1, 0xA
+ strh r1, [r0, 0x1A]
+ strh r2, [r0, 0x1C]
+ movs r1, 0x3
+ strh r1, [r0, 0x18]
+ b _08113B3A
+ .align 2, 0
+_08113AC8: .4byte gUnknown_08400F8C
+_08113ACC: .4byte gUnknown_03004828
+_08113AD0: .4byte gUnknown_020238CC
+_08113AD4: .4byte gTasks
+_08113AD8:
+ ldr r0, _08113B08 @ =gUnknown_08400F8C
+ ldr r0, [r0, 0x24]
+ bl get_battle_strings_
+ ldr r0, _08113B0C @ =gUnknown_03004828
+ ldr r2, [r0]
+ adds r0, r2, 0x4
+ ldr r1, _08113B10 @ =gUnknown_020238CC
+ adds r2, 0x34
+ ldrb r2, [r2]
+ movs r3, 0xF
+ str r3, [sp]
+ movs r3, 0x2
+ bl sub_8002EB0
+ ldr r1, _08113B14 @ =gTasks
+ mov r2, r9
+ adds r0, r2, r7
+ lsls r0, 3
+ adds r0, r1
+ movs r1, 0xD
+ strh r1, [r0, 0x8]
+ b _08113B3A
+ .align 2, 0
+_08113B08: .4byte gUnknown_08400F8C
+_08113B0C: .4byte gUnknown_03004828
+_08113B10: .4byte gUnknown_020238CC
+_08113B14: .4byte gTasks
+_08113B18:
+ ldr r0, _08113B48 @ =gUnknown_03004828
+ ldr r0, [r0]
+ ldrh r0, [r0, 0x1A]
+ cmp r0, 0
+ bne _08113B3A
+ bl IsSEPlaying
+ lsls r0, 24
+ cmp r0, 0
+ bne _08113B3A
+ ldr r0, _08113B4C @ =gTasks
+ mov r3, r9
+ adds r1, r3, r7
+ lsls r1, 3
+ adds r1, r0
+ movs r0, 0x5
+_08113B38:
+ strh r0, [r1, 0x18]
+_08113B3A:
+ add sp, 0x18
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08113B48: .4byte gUnknown_03004828
+_08113B4C: .4byte gTasks
+ thumb_func_end sub_8112FE8
+
+ 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 nullsub_73
+nullsub_73: @ 8114FD0
+ bx lr
+ thumb_func_end nullsub_73
+
+ thumb_func_start sub_8114FD4
+sub_8114FD4: @ 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 sub_8114FD4
+
+ thumb_func_start sub_811505C
+sub_811505C: @ 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 sub_811505C
+
+ thumb_func_start sub_81150D8
+sub_81150D8: @ 81150D8
+ push {lr}
+ ldr r0, _081150F4 @ =gUnknown_02024D1E
+ ldrb r1, [r0, 0x1]
+ lsls r1, 28
+ movs r0, 0x90
+ lsls r0, 23
+ adds r1, r0
+ lsrs r1, 24
+ movs r0, 0xC8
+ bl sub_814A880
+ pop {r0}
+ bx r0
+ .align 2, 0
+_081150F4: .4byte gUnknown_02024D1E
+ thumb_func_end sub_81150D8
+
+ thumb_func_start nullsub_24
+nullsub_24: @ 81150F8
+ bx lr
+ thumb_func_end nullsub_24
+
+ .align 2, 0 @ Don't pad with nop.