diff options
author | YamaArashi <shadow962@live.com> | 2016-10-25 19:57:15 -0700 |
---|---|---|
committer | YamaArashi <shadow962@live.com> | 2016-10-25 19:57:15 -0700 |
commit | fb2f1c8bce95cbe584fbd674b8e7865d2bc84bc6 (patch) | |
tree | 95d47e9e0d44e207d276d6858b44c6be5c845589 /asm/evolution_scene.s | |
parent | cfe4a52393bd5d09d78f68ac165406d3e9354706 (diff) |
split some files out of rom6.s
Diffstat (limited to 'asm/evolution_scene.s')
-rw-r--r-- | asm/evolution_scene.s | 6717 |
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. |