.include "asm/macros.inc" .include "constants/constants.inc" .syntax unified .text thumb_func_start TaskDummy1 TaskDummy1: @ 80D7668 bx lr thumb_func_end TaskDummy1 thumb_func_start ResetLinkContestBoolean ResetLinkContestBoolean: @ 80D766C ldr r1, =gUnknown_02039F2A movs r0, 0 strb r0, [r1] bx lr .pool thumb_func_end ResetLinkContestBoolean thumb_func_start sub_80D7678 sub_80D7678: @ 80D7678 push {r4,lr} movs r0, 0 movs r1, 0x40 bl SetGpuReg movs r0, 0x50 movs r1, 0 bl SetGpuReg movs r0, 0x52 movs r1, 0 bl SetGpuReg movs r0, 0x54 movs r1, 0 bl SetGpuReg ldr r4, =0x00003f3f movs r0, 0x48 adds r1, r4, 0 bl SetGpuReg movs r0, 0x4A adds r1, r4, 0 bl SetGpuReg movs r1, 0xFE lsls r1, 7 movs r0, 0 bl SetGpuRegBits ldr r0, =gUnknown_02022E14 movs r1, 0 strh r1, [r0] ldr r0, =gUnknown_02022E16 strh r1, [r0] ldr r0, =gUnknown_02022E18 strh r1, [r0] ldr r0, =gUnknown_02022E1A strh r1, [r0] ldr r0, =gUnknown_02022E1C strh r1, [r0] ldr r0, =gUnknown_02022E1E strh r1, [r0] ldr r0, =gUnknown_02022E20 strh r1, [r0] ldr r0, =gUnknown_02022E22 strh r1, [r0] ldr r0, =gUnknown_02022E24 strh r1, [r0] ldr r0, =gUnknown_02022E26 strh r1, [r0] ldr r0, =gUnknown_02022E28 strh r1, [r0] ldr r0, =gUnknown_02022E2A strh r1, [r0] pop {r4} pop {r0} bx r0 .pool thumb_func_end sub_80D7678 thumb_func_start sub_80D7724 sub_80D7724: @ 80D7724 push {r4,r5,lr} ldr r0, =gUnknown_08C17AB0 movs r1, 0xC0 lsls r1, 19 bl LZDecompressVram ldr r0, =gUnknown_08C1850C ldr r1, =0x06002000 bl LZDecompressVram ldr r1, =gUnknown_08C16FA8 movs r0, 0x3 movs r2, 0 movs r3, 0 bl CopyToBgTilemapBuffer movs r0, 0x3 bl CopyBgTilemapBufferToVram ldr r0, =gUnknown_08C16E90 movs r2, 0x80 lsls r2, 2 movs r1, 0 bl LoadCompressedPalette bl sub_80D782C movs r4, 0 movs r5, 0xA0 _080D775E: ldr r0, =0x0201a004 adds r0, r5, r0 ldr r1, =gUnknown_02039F26 adds r1, r4, r1 ldrb r1, [r1] adds r1, 0x5 lsls r1, 4 movs r2, 0x20 bl LoadPalette adds r5, 0x20 adds r4, 0x1 cmp r4, 0x3 ble _080D775E pop {r4,r5} pop {r0} bx r0 .pool thumb_func_end sub_80D7724 thumb_func_start sub_80D779C sub_80D779C: @ 80D779C push {r4,lr} movs r0, 0 bl ResetBgsAndClearDma3BusyFlags ldr r1, =gUnknown_08587F34 movs r0, 0 movs r2, 0x4 bl InitBgsFromTemplates movs r0, 0x3 movs r1, 0x6 movs r2, 0x1 bl SetBgAttribute movs r4, 0 _080D77BA: lsls r0, r4, 24 lsrs r0, 24 ldr r1, =gUnknown_02039F34 ldr r1, [r1] lsls r2, r4, 2 adds r1, 0x24 adds r1, r2 ldr r1, [r1] bl SetBgTilemapBuffer adds r4, 0x1 cmp r4, 0x3 ble _080D77BA pop {r4} pop {r0} bx r0 .pool thumb_func_end sub_80D779C thumb_func_start sub_80D77E4 sub_80D77E4: @ 80D77E4 push {lr} ldr r0, =gUnknown_08587F44 bl InitWindows bl DeactivateAllTextPrinters ldr r0, =gUnknown_02039F2A ldrb r1, [r0] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _080D7818 ldr r2, =gTextFlags ldrb r1, [r2] movs r0, 0x2 negs r0, r0 ands r0, r1 strb r0, [r2] b _080D7822 .pool _080D7818: ldr r0, =gTextFlags ldrb r1, [r0] movs r2, 0x1 orrs r1, r2 strb r1, [r0] _080D7822: pop {r0} bx r0 .pool thumb_func_end sub_80D77E4 thumb_func_start sub_80D782C sub_80D782C: @ 80D782C push {r4,r5,lr} ldr r0, =gUnknown_08587C30 movs r1, 0xF0 movs r2, 0x20 bl LoadPalette movs r0, 0 movs r1, 0 movs r2, 0x2 bl FillPalette movs r5, 0xA movs r4, 0xFA lsls r4, 16 _080D7848: lsrs r1, r4, 16 ldr r0, =gPlttBufferUnfaded + 0x1E2 movs r2, 0x2 bl LoadPalette movs r0, 0x80 lsls r0, 9 adds r4, r0 adds r5, 0x1 cmp r5, 0xD ble _080D7848 ldr r0, =0x00007e3f movs r1, 0xF3 movs r2, 0x2 bl FillPalette pop {r4,r5} pop {r0} bx r0 .pool thumb_func_end sub_80D782C thumb_func_start sub_80D787C sub_80D787C: @ 80D787C push {r4-r7,lr} ldr r4, =gUnknown_02039F34 ldr r0, [r4] ldr r0, [r0] movs r1, 0 movs r2, 0x5C bl memset movs r5, 0 movs r2, 0xFF _080D7890: ldr r0, [r4] ldr r1, [r0] adds r1, 0x2 adds r1, r5 ldrb r0, [r1] orrs r0, r2 strb r0, [r1] adds r5, 0x1 cmp r5, 0x3 ble _080D7890 movs r4, 0 ldr r6, =gUnknown_02039F34 movs r5, 0x3 _080D78AA: ldr r0, [r6] ldr r0, [r0, 0x4] adds r0, r4, r0 movs r1, 0 movs r2, 0x1C bl memset adds r4, 0x1C subs r5, 0x1 cmp r5, 0 bge _080D78AA ldr r4, =gUnknown_02039F34 movs r7, 0x4 negs r7, r7 movs r6, 0xFF movs r3, 0 movs r5, 0x3 _080D78CC: ldr r0, [r4] ldr r1, [r0, 0x4] adds r1, r3, r1 ldrb r2, [r1, 0xB] adds r0, r7, 0 ands r0, r2 strb r0, [r1, 0xB] ldr r0, [r4] ldr r1, [r0, 0x4] adds r1, r3, r1 ldrb r0, [r1, 0x13] orrs r0, r6 strb r0, [r1, 0x13] ldr r0, [r4] ldr r1, [r0, 0x4] adds r1, r3, r1 ldrb r0, [r1, 0x14] orrs r0, r6 strb r0, [r1, 0x14] adds r3, 0x1C subs r5, 0x1 cmp r5, 0 bge _080D78CC ldr r4, =gUnknown_02039F34 ldr r0, [r4] ldr r0, [r0, 0x8] movs r1, 0 movs r2, 0x14 bl memset ldr r0, [r4] ldr r0, [r0, 0xC] movs r1, 0 movs r2, 0x44 bl memset ldr r2, [r4] ldr r1, [r2, 0x10] movs r0, 0 str r0, [r1] ldr r0, [r2, 0x14] movs r1, 0 movs r2, 0x10 bl memset ldr r0, =gUnknown_02039F2A ldrb r1, [r0] movs r0, 0x1 ands r0, r1 cmp r0, 0 bne _080D7938 movs r0, 0 bl sub_80DCE58 _080D7938: movs r5, 0 adds r2, r4, 0 movs r6, 0xFF movs r3, 0 ldr r4, =gUnknown_02039F26 _080D7942: ldr r0, [r2] ldr r1, [r0, 0x4] adds r1, r3, r1 ldrb r0, [r1, 0x19] orrs r0, r6 strb r0, [r1, 0x19] ldr r0, [r2] ldr r1, [r0] adds r1, 0x14 adds r1, r5 adds r0, r5, r4 ldrb r0, [r0] strb r0, [r1] adds r3, 0x1C adds r5, 0x1 cmp r5, 0x3 ble _080D7942 bl sub_80DD590 ldr r0, =gUnknown_02039F34 ldr r0, [r0] ldr r0, [r0, 0x1C] movs r1, 0 movs r2, 0x40 bl memset pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_80D787C thumb_func_start sub_80D7988 sub_80D7988: @ 80D7988 push {r4,r5,lr} ldr r4, =gUnknown_02039F34 movs r0, 0x40 bl AllocZeroed str r0, [r4] movs r0, 0x5C bl AllocZeroed ldr r1, [r4] str r0, [r1] movs r0, 0x70 bl AllocZeroed ldr r1, [r4] str r0, [r1, 0x4] movs r0, 0x14 bl AllocZeroed ldr r1, [r4] str r0, [r1, 0x8] movs r0, 0x44 bl AllocZeroed ldr r1, [r4] str r0, [r1, 0xC] movs r0, 0x10 bl AllocZeroed ldr r1, [r4] str r0, [r1, 0x10] movs r0, 0x10 bl AllocZeroed ldr r1, [r4] str r0, [r1, 0x14] movs r0, 0x14 bl AllocZeroed ldr r1, [r4] str r0, [r1, 0x18] movs r0, 0x40 bl AllocZeroed ldr r1, [r4] str r0, [r1, 0x1C] movs r0, 0xC bl AllocZeroed ldr r1, [r4] str r0, [r1, 0x20] movs r5, 0x80 lsls r5, 5 adds r0, r5, 0 bl AllocZeroed ldr r1, [r4] str r0, [r1, 0x24] adds r0, r5, 0 bl AllocZeroed ldr r1, [r4] str r0, [r1, 0x28] adds r0, r5, 0 bl AllocZeroed ldr r1, [r4] str r0, [r1, 0x2C] adds r0, r5, 0 bl AllocZeroed ldr r1, [r4] str r0, [r1, 0x30] movs r5, 0x80 lsls r5, 4 adds r0, r5, 0 bl AllocZeroed ldr r1, [r4] str r0, [r1, 0x34] adds r0, r5, 0 bl AllocZeroed ldr r1, [r4] str r0, [r1, 0x38] movs r0, 0x80 lsls r0, 6 bl AllocZeroed ldr r2, [r4] str r0, [r2, 0x3C] ldr r1, =gUnknown_0202305C str r0, [r1] ldr r1, =gUnknown_02023060 ldr r0, [r2, 0x28] str r0, [r1] pop {r4,r5} pop {r0} bx r0 .pool thumb_func_end sub_80D7988 thumb_func_start sub_80D7A5C sub_80D7A5C: @ 80D7A5C push {r4,r5,lr} ldr r5, =gUnknown_02039F34 ldr r0, [r5] ldr r0, [r0] bl Free ldr r0, [r5] movs r4, 0 str r4, [r0] ldr r0, [r0, 0x4] bl Free ldr r0, [r5] str r4, [r0, 0x4] ldr r0, [r0, 0x8] bl Free ldr r0, [r5] str r4, [r0, 0x8] ldr r0, [r0, 0xC] bl Free ldr r0, [r5] str r4, [r0, 0xC] ldr r0, [r0, 0x10] bl Free ldr r0, [r5] str r4, [r0, 0x10] ldr r0, [r0, 0x14] bl Free ldr r0, [r5] str r4, [r0, 0x14] ldr r0, [r0, 0x18] bl Free ldr r0, [r5] str r4, [r0, 0x18] ldr r0, [r0, 0x1C] bl Free ldr r0, [r5] str r4, [r0, 0x1C] ldr r0, [r0, 0x20] bl Free ldr r0, [r5] str r4, [r0, 0x20] ldr r0, [r0, 0x24] bl Free ldr r0, [r5] str r4, [r0, 0x24] ldr r0, [r0, 0x28] bl Free ldr r0, [r5] str r4, [r0, 0x28] ldr r0, [r0, 0x2C] bl Free ldr r0, [r5] str r4, [r0, 0x2C] ldr r0, [r0, 0x30] bl Free ldr r0, [r5] str r4, [r0, 0x30] ldr r0, [r0, 0x34] bl Free ldr r0, [r5] str r4, [r0, 0x34] ldr r0, [r0, 0x38] bl Free ldr r0, [r5] str r4, [r0, 0x38] ldr r0, [r0, 0x3C] bl Free ldr r0, [r5] str r4, [r0, 0x3C] bl Free str r4, [r5] ldr r0, =gUnknown_0202305C str r4, [r0] ldr r0, =gUnknown_02023060 str r4, [r0] pop {r4,r5} pop {r0} bx r0 .pool thumb_func_end sub_80D7A5C thumb_func_start sub_80D7B24 sub_80D7B24: @ 80D7B24 push {r4-r6,lr} ldr r0, =gMain movs r1, 0x87 lsls r1, 3 adds r6, r0, r1 ldrb r5, [r6] cmp r5, 0x1 beq _080D7BD4 cmp r5, 0x1 bgt _080D7B44 cmp r5, 0 beq _080D7B4E b _080D7C56 .pool _080D7B44: cmp r5, 0x2 beq _080D7BDA cmp r5, 0x3 beq _080D7C04 b _080D7C56 _080D7B4E: ldr r0, =gUnknown_02039F38 strb r5, [r0] bl sub_80D7988 bl init_uns_table_pokemon_copy ldr r4, =gUnknown_020244D4 ldr r0, [r4] ldr r0, [r0] bl Free ldr r0, [r4] str r5, [r0] movs r0, 0x80 lsls r0, 7 bl AllocZeroed ldr r1, [r4] str r0, [r1] movs r0, 0 bl SetVBlankCallback bl sub_80D779C bl sub_80D77E4 bl sub_80D7678 bl dp12_8087EA4 bl ResetPaletteFade ldr r2, =gPaletteFade ldrb r0, [r2, 0x8] movs r1, 0x80 orrs r0, r1 strb r0, [r2, 0x8] bl ResetSpriteData bl ResetTasks bl FreeAllSpritePalettes ldr r1, =gReservedSpritePaletteCount movs r0, 0x4 strb r0, [r1] ldr r0, =0x02000000 movs r1, 0xD0 lsls r1, 9 adds r0, r1 strb r5, [r0] bl sub_806E414 bl sub_80D787C b _080D7BF6 .pool _080D7BD4: movs r0, 0x2 strb r0, [r6] b _080D7C56 _080D7BDA: ldr r4, =gUnknown_02039F34 ldr r0, [r4] ldr r0, [r0] adds r0, 0x59 bl sub_80D7E44 lsls r0, 24 cmp r0, 0 beq _080D7C56 ldr r0, [r4] ldr r0, [r0] adds r0, 0x59 movs r1, 0 strb r1, [r0] _080D7BF6: ldrb r0, [r6] adds r0, 0x1 strb r0, [r6] b _080D7C56 .pool _080D7C04: bl sub_80DE224 ldr r0, =gUnknown_02022E18 movs r1, 0 strh r1, [r0] ldr r0, =gUnknown_02022E1A strh r1, [r0] movs r0, 0x2 bl BeginFastPaletteFade ldr r2, =gPaletteFade ldrb r1, [r2, 0x8] movs r0, 0x7F ands r0, r1 strb r0, [r2, 0x8] ldr r0, =vblank_cb_battle bl SetVBlankCallback ldr r0, =sub_80D7C7C movs r1, 0xA bl CreateTask ldr r1, =gUnknown_02039F34 ldr r1, [r1] ldr r1, [r1] strb r0, [r1, 0x8] ldr r0, =sub_80D823C bl SetMainCallback2 ldr r0, =gUnknown_02039F2A ldrb r1, [r0] movs r0, 0x2 ands r0, r1 cmp r0, 0 beq _080D7C56 bl sub_800E0E8 movs r0, 0x8 movs r1, 0x8 bl sub_800DFB4 _080D7C56: pop {r4-r6} pop {r0} bx r0 .pool thumb_func_end sub_80D7B24 thumb_func_start sub_80D7C7C sub_80D7C7C: @ 80D7C7C push {lr} lsls r0, 24 lsrs r3, r0, 24 ldr r0, =gPaletteFade ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 lsls r0, 24 lsrs r2, r0, 24 cmp r2, 0 bne _080D7CA2 ldr r0, =gTasks lsls r1, r3, 2 adds r1, r3 lsls r1, 3 adds r1, r0 strh r2, [r1, 0x8] ldr r0, =sub_80D7CB4 str r0, [r1] _080D7CA2: pop {r0} bx r0 .pool thumb_func_end sub_80D7C7C thumb_func_start sub_80D7CB4 sub_80D7CB4: @ 80D7CB4 push {r4-r6,lr} lsls r0, 24 lsrs r5, r0, 24 ldr r0, =gUnknown_02039F2A ldrb r1, [r0] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _080D7D90 movs r0, 0x2 ands r0, r1 cmp r0, 0 beq _080D7D3A ldr r2, =gTasks lsls r1, r5, 2 adds r0, r1, r5 lsls r0, 3 adds r4, r0, r2 movs r2, 0x8 ldrsh r0, [r4, r2] adds r6, r1, 0 cmp r0, 0x1 beq _080D7D04 cmp r0, 0x1 bgt _080D7CF4 cmp r0, 0 beq _080D7CFA b _080D7D3A .pool _080D7CF4: cmp r0, 0x2 beq _080D7D28 b _080D7D3A _080D7CFA: bl sub_80DBF68 ldrh r0, [r4, 0x8] adds r0, 0x1 strh r0, [r4, 0x8] _080D7D04: bl sub_800A520 lsls r0, 24 cmp r0, 0 beq _080D7D9E bl sub_800ADF8 ldr r0, =gTasks adds r1, r6, r5 lsls r1, 3 adds r1, r0 ldrh r0, [r1, 0x8] adds r0, 0x1 strh r0, [r1, 0x8] b _080D7D9E .pool _080D7D28: bl sub_800A520 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _080D7D9E ldrh r0, [r4, 0x8] adds r0, 0x1 strh r0, [r4, 0x8] _080D7D3A: ldr r2, =gPaletteFade ldrb r1, [r2, 0x7] movs r0, 0x80 ands r0, r1 lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0 bne _080D7D9E ldrb r1, [r2, 0x8] movs r0, 0x7F ands r0, r1 strb r0, [r2, 0x8] ldr r0, =gUnknown_02039F2A ldrb r1, [r0] movs r0, 0x2 ands r0, r1 cmp r0, 0 bne _080D7D62 bl sub_80DBF68 _080D7D62: ldr r0, =sub_80D7DAC movs r1, 0 bl CreateTask ldr r1, =gTasks lsls r0, r5, 2 adds r0, r5 lsls r0, 3 adds r0, r1 strh r4, [r0, 0x8] ldr r1, =TaskDummy1 str r1, [r0] b _080D7D9E .pool _080D7D90: ldr r0, =gTasks lsls r1, r5, 2 adds r1, r5 lsls r1, 3 adds r1, r0 ldr r0, =sub_80D80C8 str r0, [r1] _080D7D9E: pop {r4-r6} pop {r0} bx r0 .pool thumb_func_end sub_80D7CB4 thumb_func_start sub_80D7DAC sub_80D7DAC: @ 80D7DAC push {lr} lsls r0, 24 lsrs r0, 24 ldr r1, =sub_80FC998 ldr r2, =sub_80D7DC8 bl SetTaskFuncWithFollowupFunc pop {r0} bx r0 .pool thumb_func_end sub_80D7DAC thumb_func_start sub_80D7DC8 sub_80D7DC8: @ 80D7DC8 lsls r0, 24 lsrs r0, 24 ldr r2, =gTasks lsls r1, r0, 2 adds r1, r0 lsls r1, 3 adds r1, r2 movs r0, 0x1 strh r0, [r1, 0x8] ldr r0, =sub_80D7DE8 str r0, [r1] bx lr .pool thumb_func_end sub_80D7DC8 thumb_func_start sub_80D7DE8 sub_80D7DE8: @ 80D7DE8 push {r4,r5,lr} lsls r0, 24 lsrs r4, r0, 24 ldr r5, =gTasks lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r0, r5 ldrh r1, [r0, 0x8] subs r1, 0x1 strh r1, [r0, 0x8] lsls r1, 16 cmp r1, 0 bgt _080D7E2A bl link_get_multiplayer_id adds r0, r4, 0 bl DestroyTask ldr r0, =gUnknown_02039F34 ldr r0, [r0] ldr r0, [r0] ldrb r1, [r0, 0x8] lsls r0, r1, 2 adds r0, r1 lsls r0, 3 adds r0, r5 ldr r1, =sub_80D80C8 str r1, [r0] ldr r1, =gRngValue ldr r0, =gUnknown_030060B8 ldr r0, [r0] str r0, [r1] _080D7E2A: pop {r4,r5} pop {r0} bx r0 .pool thumb_func_end sub_80D7DE8 thumb_func_start sub_80D7E44 sub_80D7E44: @ 80D7E44 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x40 mov r10, r0 ldrb r0, [r0] cmp r0, 0x6 bls _080D7E5A b _080D80A4 _080D7E5A: lsls r0, 2 ldr r1, =_080D7E68 adds r0, r1 ldr r0, [r0] mov pc, r0 .pool .align 2, 0 _080D7E68: .4byte _080D7E84 .4byte _080D7EC8 .4byte _080D7ED8 .4byte _080D7F28 .4byte _080D7F40 .4byte _080D7F7C .4byte _080D8004 _080D7E84: ldr r2, =gPaletteFade ldrb r0, [r2, 0x8] movs r1, 0x80 orrs r0, r1 strb r0, [r2, 0x8] movs r1, 0xC0 lsls r1, 19 movs r4, 0x80 lsls r4, 8 movs r0, 0 adds r2, r4, 0 movs r3, 0x1 bl RequestDma3Fill ldr r1, =0x06008000 movs r0, 0 adds r2, r4, 0 movs r3, 0x1 bl RequestDma3Fill ldr r1, =0x06010000 movs r0, 0 adds r2, r4, 0 movs r3, 0x1 bl RequestDma3Fill b _080D80AE .pool _080D7EC8: ldr r0, =gUnknown_08C17AB0 movs r1, 0xC0 lsls r1, 19 bl LZDecompressVram b _080D80AE .pool _080D7ED8: ldr r0, =gUnknown_08C1850C ldr r4, =0x06002000 adds r1, r4, 0 bl LZDecompressVram ldr r3, =0x02018000 movs r5, 0x80 lsls r5, 6 ldr r1, =0x040000d4 ldr r6, =0x84000400 movs r2, 0x80 lsls r2, 5 movs r7, 0x84 lsls r7, 24 _080D7EF4: str r4, [r1] str r3, [r1, 0x4] str r6, [r1, 0x8] ldr r0, [r1, 0x8] adds r4, r2 adds r3, r2 subs r5, r2 cmp r5, r2 bhi _080D7EF4 str r4, [r1] str r3, [r1, 0x4] lsrs r0, r5, 2 orrs r0, r7 str r0, [r1, 0x8] ldr r0, [r1, 0x8] b _080D80AE .pool _080D7F28: ldr r1, =gUnknown_08C16FA8 movs r0, 0x3 movs r2, 0 movs r3, 0 bl CopyToBgTilemapBuffer movs r0, 0x3 bl CopyBgTilemapBufferToVram b _080D80AE .pool _080D7F40: ldr r1, =gUnknown_08C17170 movs r0, 0x2 movs r2, 0 movs r3, 0 bl CopyToBgTilemapBuffer movs r0, 0x2 bl CopyBgTilemapBufferToVram ldr r0, =gUnknown_02039F34 ldr r0, [r0] ldr r1, [r0, 0x2C] ldr r2, =0x0201aa04 ldr r0, =0x040000d4 str r1, [r0] str r2, [r0, 0x4] ldr r1, =0x84000200 str r1, [r0, 0x8] ldr r0, [r0, 0x8] b _080D80AE .pool _080D7F7C: ldr r0, =gUnknown_08C16E90 movs r2, 0x80 lsls r2, 2 movs r1, 0 bl LoadCompressedPalette ldr r5, =gPlttBufferUnfaded + 0x100 ldr r6, =0x04000008 adds r0, r5, 0 mov r1, sp adds r2, r6, 0 bl CpuSet ldr r0, =gUnknown_02039F25 mov r9, r0 ldrb r0, [r0] adds r0, 0x5 lsls r0, 5 ldr r1, =0xffffff00 adds r1, r5 mov r8, r1 add r0, r8 add r4, sp, 0x20 adds r1, r4, 0 adds r2, r6, 0 bl CpuSet adds r0, r4, 0 adds r1, r5, 0 adds r2, r6, 0 bl CpuSet mov r2, r9 ldrb r1, [r2] adds r1, 0x5 lsls r1, 5 add r1, r8 mov r0, sp adds r2, r6, 0 bl CpuSet ldr r1, =0x0201a004 ldr r0, =0x040000d4 mov r2, r8 str r2, [r0] str r1, [r0, 0x4] ldr r1, =0x84000080 str r1, [r0, 0x8] ldr r0, [r0, 0x8] bl sub_80D782C b _080D80AE .pool _080D8004: bl sub_80DD04C bl sub_80DBF90 bl sub_80DB2BC bl sub_80DB120 ldr r1, =gUnknown_02039F34 ldr r1, [r1] ldr r1, [r1] movs r4, 0 strb r0, [r1, 0x12] bl sub_80DC2BC bl sub_80DC4F0 bl sub_80DC594 bl sub_80DC5E8 bl sub_80DC7EC ldr r1, =gBanksBySide strb r4, [r1] movs r0, 0x1 strb r0, [r1, 0x1] movs r3, 0x3 strb r3, [r1, 0x2] movs r2, 0x2 strb r2, [r1, 0x3] ldr r0, =gBattleTypeFlags str r4, [r0] ldr r4, =gBankAttacker strb r2, [r4] ldr r0, =gBankTarget strb r3, [r0] bl sub_80DB0C4 ldr r2, =gBankSpriteIds ldrb r1, [r4] adds r1, r2 strb r0, [r1] bl sub_80DEA20 movs r0, 0x3 bl CopyBgTilemapBufferToVram movs r0, 0x2 bl CopyBgTilemapBufferToVram movs r0, 0x1 bl CopyBgTilemapBufferToVram movs r0, 0x3 bl ShowBg movs r0, 0x2 bl ShowBg movs r0, 0 bl ShowBg movs r0, 0x1 bl ShowBg b _080D80AE .pool _080D80A4: movs r0, 0 mov r1, r10 strb r0, [r1] movs r0, 0x1 b _080D80B8 _080D80AE: mov r2, r10 ldrb r0, [r2] adds r0, 0x1 strb r0, [r2] movs r0, 0 _080D80B8: add sp, 0x40 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_80D7E44 thumb_func_start sub_80D80C8 sub_80D80C8: @ 80D80C8 push {lr} lsls r0, 24 lsrs r3, r0, 24 ldr r1, =gPaletteFade ldrb r2, [r1, 0x8] movs r0, 0x7F ands r0, r2 strb r0, [r1, 0x8] ldrb r1, [r1, 0x7] movs r0, 0x80 ands r0, r1 lsls r0, 24 lsrs r2, r0, 24 cmp r2, 0 bne _080D80F8 ldr r0, =gTasks lsls r1, r3, 2 adds r1, r3 lsls r1, 3 adds r1, r0 strh r2, [r1, 0x8] strh r2, [r1, 0xA] ldr r0, =sub_80D8108 str r0, [r1] _080D80F8: pop {r0} bx r0 .pool thumb_func_end sub_80D80C8 thumb_func_start sub_80D8108 sub_80D8108: @ 80D8108 push {r4,r5,lr} sub sp, 0x4 lsls r0, 24 lsrs r5, r0, 24 ldr r1, =gTasks lsls r0, r5, 2 adds r0, r5 lsls r0, 3 adds r0, r1 movs r2, 0x8 ldrsh r0, [r0, r2] adds r2, r1, 0 cmp r0, 0x4 bhi _080D8208 lsls r0, 2 ldr r1, =_080D8138 adds r0, r1 ldr r0, [r0] mov pc, r0 .pool .align 2, 0 _080D8138: .4byte _080D814C .4byte _080D8176 .4byte _080D8194 .4byte _080D81B0 .4byte _080D8208 _080D814C: lsls r0, r5, 2 adds r0, r5 lsls r0, 3 adds r4, r0, r2 ldrh r0, [r4, 0xA] adds r1, r0, 0x1 strh r1, [r4, 0xA] lsls r0, 16 asrs r0, 16 cmp r0, 0x3C ble _080D822C movs r0, 0 strh r0, [r4, 0xA] movs r0, 0x61 movs r1, 0 bl PlaySE12WithPanning ldrh r0, [r4, 0x8] adds r0, 0x1 strh r0, [r4, 0x8] b _080D822C _080D8176: ldr r1, =gUnknown_02022E1A ldrh r0, [r1] adds r0, 0x7 strh r0, [r1] lsls r0, 16 asrs r0, 16 cmp r0, 0xA0 ble _080D822C lsls r0, r5, 2 adds r0, r5 lsls r0, 3 adds r0, r2 b _080D81FA .pool _080D8194: bl sub_80DE350 ldr r0, =gTasks lsls r1, r5, 2 adds r1, r5 lsls r1, 3 adds r1, r0 ldrh r0, [r1, 0x8] adds r0, 0x1 strh r0, [r1, 0x8] b _080D822C .pool _080D81B0: movs r0, 0x8 bl GetGpuReg mov r1, sp strh r0, [r1] movs r0, 0xC bl GetGpuReg mov r4, sp adds r4, 0x2 strh r0, [r4] mov r3, sp ldrb r2, [r3] movs r1, 0x4 negs r1, r1 adds r0, r1, 0 ands r0, r2 strb r0, [r3] ldrb r0, [r4] ands r1, r0 strb r1, [r4] mov r0, sp ldrh r1, [r0] movs r0, 0x8 bl SetGpuReg ldrh r1, [r4] movs r0, 0xC bl SetGpuReg bl sub_80DDB0C ldr r1, =gTasks lsls r0, r5, 2 adds r0, r5 lsls r0, 3 adds r0, r1 _080D81FA: ldrh r1, [r0, 0x8] adds r1, 0x1 strh r1, [r0, 0x8] b _080D822C .pool _080D8208: ldr r0, =gUnknown_02039F34 ldr r0, [r0] ldr r0, [r0] ldrb r1, [r0, 0x6] movs r0, 0x40 ands r0, r1 lsls r0, 24 lsrs r1, r0, 24 cmp r1, 0 bne _080D822C lsls r0, r5, 2 adds r0, r5 lsls r0, 3 adds r0, r2 strh r1, [r0, 0x8] strh r1, [r0, 0xA] ldr r1, =sub_80D833C str r1, [r0] _080D822C: add sp, 0x4 pop {r4,r5} pop {r0} bx r0 .pool thumb_func_end sub_80D8108 thumb_func_start sub_80D823C sub_80D823C: @ 80D823C push {r4,r5,lr} bl AnimateSprites bl RunTasks bl BuildOamBuffer bl UpdatePaletteFade movs r4, 0 _080D8250: ldr r5, =gUnknown_02039F38 ldrb r0, [r5] asrs r0, r4 movs r1, 0x1 ands r0, r1 cmp r0, 0 beq _080D8266 lsls r0, r4, 24 lsrs r0, 24 bl CopyBgTilemapBufferToVram _080D8266: adds r4, 0x1 cmp r4, 0x3 ble _080D8250 movs r0, 0 strb r0, [r5] pop {r4,r5} pop {r0} bx r0 .pool thumb_func_end sub_80D823C thumb_func_start vblank_cb_battle vblank_cb_battle: @ 80D827C push {lr} ldr r0, =gUnknown_02022E14 ldrh r1, [r0] movs r0, 0x10 bl SetGpuReg ldr r0, =gUnknown_02022E16 ldrh r1, [r0] movs r0, 0x12 bl SetGpuReg ldr r0, =gUnknown_02022E18 ldrh r1, [r0] movs r0, 0x14 bl SetGpuReg ldr r0, =gUnknown_02022E1A ldrh r1, [r0] movs r0, 0x16 bl SetGpuReg ldr r0, =gUnknown_02022E1C ldrh r1, [r0] movs r0, 0x18 bl SetGpuReg ldr r0, =gUnknown_02022E1E ldrh r1, [r0] movs r0, 0x1A bl SetGpuReg ldr r0, =gUnknown_02022E20 ldrh r1, [r0] movs r0, 0x1C bl SetGpuReg ldr r0, =gUnknown_02022E22 ldrh r1, [r0] movs r0, 0x1E bl SetGpuReg ldr r0, =gUnknown_02022E24 ldrh r1, [r0] movs r0, 0x40 bl SetGpuReg ldr r0, =gUnknown_02022E26 ldrh r1, [r0] movs r0, 0x44 bl SetGpuReg ldr r0, =gUnknown_02022E28 ldrh r1, [r0] movs r0, 0x42 bl SetGpuReg ldr r0, =gUnknown_02022E2A ldrh r1, [r0] movs r0, 0x46 bl SetGpuReg bl TransferPlttBuffer bl LoadOam bl ProcessSpriteCopyRequests bl sub_80BA0A8 pop {r0} bx r0 .pool thumb_func_end vblank_cb_battle thumb_func_start sub_80D833C sub_80D833C: @ 80D833C push {r4,r5,lr} lsls r0, 24 lsrs r5, r0, 24 ldr r1, =gTasks lsls r0, r5, 2 adds r0, r5 lsls r0, 3 adds r4, r0, r1 movs r0, 0x8 ldrsh r1, [r4, r0] cmp r1, 0 bne _080D840C ldr r0, =gUnknown_02022E16 strh r1, [r0] ldr r0, =gUnknown_02022E1E strh r1, [r0] bl sub_80DCD48 ldr r1, =gPlttBufferUnfaded ldr r2, =0x0201a204 ldr r0, =0x040000d4 str r1, [r0] str r2, [r0, 0x4] ldr r1, =0x84000100 str r1, [r0, 0x8] ldr r0, [r0, 0x8] ldr r0, =gStringVar1 ldr r1, =gUnknown_02039F34 ldr r1, [r1] ldr r1, [r1] ldrb r1, [r1, 0x1] adds r1, 0x1 movs r2, 0 movs r3, 0x1 bl ConvertIntToDecimalStringN ldr r0, =gUnknown_02039F25 ldrb r0, [r0] bl sub_80DBCA8 lsls r0, 24 cmp r0, 0 bne _080D83CC ldr r0, =gUnknown_02022E2C ldr r1, =gUnknown_0827D507 bl StringCopy b _080D83D4 .pool _080D83CC: ldr r0, =gUnknown_02022E2C ldr r1, =gUnknown_0827D531 bl StringCopy _080D83D4: bl sub_80DB89C ldr r4, =gStringVar4 ldr r1, =gUnknown_02022E2C adds r0, r4, 0 bl StringExpandPlaceholders adds r0, r4, 0 movs r1, 0x1 bl sub_80DEC30 ldr r1, =gTasks lsls r0, r5, 2 adds r0, r5 lsls r0, 3 adds r0, r1 ldrh r1, [r0, 0x8] adds r1, 0x1 strh r1, [r0, 0x8] b _080D841A .pool _080D840C: bl sub_80DED4C cmp r0, 0 bne _080D841A strh r0, [r4, 0x8] ldr r0, =sub_80D8424 str r0, [r4] _080D841A: pop {r4,r5} pop {r0} bx r0 .pool thumb_func_end sub_80D833C thumb_func_start sub_80D8424 sub_80D8424: @ 80D8424 push {r4,r5,lr} lsls r0, 24 lsrs r4, r0, 24 adds r5, r4, 0 ldr r0, =gMain ldrh r1, [r0, 0x2E] movs r0, 0x1 ands r0, r1 cmp r0, 0 bne _080D843C cmp r1, 0x2 bne _080D8482 _080D843C: movs r0, 0x5 bl PlaySE ldr r0, =gUnknown_02039F25 ldrb r0, [r0] bl sub_80DBCA8 lsls r0, 24 cmp r0, 0 bne _080D8474 movs r0, 0x1 bl sub_80DC490 ldr r0, =gTasks lsls r1, r4, 2 adds r1, r4 lsls r1, 3 adds r1, r0 ldr r0, =sub_80D8490 b _080D8480 .pool _080D8474: ldr r0, =gTasks lsls r1, r5, 2 adds r1, r5 lsls r1, 3 adds r1, r0 ldr r0, =sub_80D8894 _080D8480: str r0, [r1] _080D8482: pop {r4,r5} pop {r0} bx r0 .pool thumb_func_end sub_80D8424 thumb_func_start sub_80D8490 sub_80D8490: @ 80D8490 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x24 lsls r0, 24 lsrs r0, 24 mov r9, r0 ldr r0, =gUnknown_02022E16 movs r1, 0xA0 strh r1, [r0] ldr r0, =gUnknown_02022E1E strh r1, [r0] movs r6, 0 ldr r0, =gUnknown_02039F25 mov r8, r0 ldr r2, =gUnknown_02039E1E mov r10, r2 ldr r7, =gUnknown_02039F34 _080D84B8: lsls r1, r6, 1 mov r0, r8 ldrb r2, [r0] lsls r0, r2, 6 adds r1, r0 add r1, r10 ldrh r4, [r1] add r5, sp, 0x4 ldr r0, [r7] ldr r1, [r0, 0x4] lsls r0, r2, 3 subs r0, r2 lsls r0, 2 adds r0, r1 ldrh r0, [r0, 0x8] cmp r0, 0 beq _080D853C adds r0, r2, 0 bl sub_80DE1E8 lsls r0, 24 cmp r0, 0 beq _080D853C ldr r0, [r7] mov r2, r8 ldrb r1, [r2] ldr r2, [r0, 0x4] lsls r0, r1, 3 subs r0, r1 lsls r0, 2 adds r0, r2 ldrh r0, [r0, 0x8] adds r1, r4, 0 bl AreMovesContestCombo lsls r0, 24 cmp r0, 0 beq _080D853C ldr r0, [r7] mov r2, r8 ldrb r1, [r2] ldr r2, [r0, 0x4] lsls r0, r1, 3 subs r0, r1 lsls r0, 2 adds r0, r2 ldrb r1, [r0, 0x15] movs r0, 0x10 ands r0, r1 cmp r0, 0 beq _080D853C add r0, sp, 0x4 ldr r1, =gUnknown_085ED1A0 b _080D8566 .pool _080D853C: cmp r4, 0 beq _080D856C ldr r0, [r7] mov r2, r8 ldrb r1, [r2] ldr r2, [r0, 0x4] lsls r0, r1, 3 subs r0, r1 lsls r0, 2 adds r0, r2 ldrh r0, [r0, 0x8] cmp r0, r4 bne _080D856C ldr r0, =gContestMoves lsls r1, r4, 3 adds r1, r0 ldrb r0, [r1] cmp r0, 0x3 beq _080D856C add r0, sp, 0x4 ldr r1, =gUnknown_085ED1A7 _080D8566: bl StringCopy adds r5, r0, 0 _080D856C: movs r0, 0xD adds r1, r4, 0 muls r1, r0 ldr r0, =gMoveNames adds r1, r0 adds r0, r5, 0 bl StringCopy adds r4, r6, 0x5 lsls r0, r4, 24 lsrs r0, 24 movs r1, 0 bl FillWindowPixelBuffer movs r0, 0x7 str r0, [sp] adds r0, r4, 0 add r1, sp, 0x4 movs r2, 0x5 movs r3, 0x1 bl sub_80DEBD0 adds r0, r6, 0x1 lsls r0, 24 lsrs r6, r0, 24 cmp r6, 0x3 bls _080D84B8 ldr r4, =gUnknown_02039F34 ldr r0, [r4] ldr r0, [r0] ldrb r0, [r0] lsls r0, 24 asrs r0, 24 bl sub_80D880C ldr r2, =gUnknown_02039E00 ldr r0, [r4] ldr r0, [r0] ldrb r1, [r0] lsls r1, 1 ldr r0, =gUnknown_02039F25 ldrb r0, [r0] lsls r0, 6 adds r1, r0 adds r2, 0x1E adds r1, r2 ldrh r0, [r1] bl prints_contest_move_description ldr r1, =gTasks mov r2, r9 lsls r0, r2, 2 add r0, r9 lsls r0, 3 adds r0, r1 ldr r1, =sub_80D8610 str r1, [r0] add sp, 0x24 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_80D8490 thumb_func_start sub_80D8610 sub_80D8610: @ 80D8610 push {r4-r7,lr} lsls r0, 24 lsrs r7, r0, 24 movs r6, 0 ldr r3, =gMain ldr r1, =gUnknown_02039E00 ldr r0, =gUnknown_02039F25 ldrb r0, [r0] lsls r0, 6 adds r1, 0x1E adds r1, r0, r1 movs r2, 0x3 _080D8628: ldrh r0, [r1] cmp r0, 0 beq _080D8634 adds r0, r6, 0x1 lsls r0, 24 lsrs r6, r0, 24 _080D8634: adds r1, 0x2 subs r2, 0x1 cmp r2, 0 bge _080D8628 ldrh r0, [r3, 0x2E] movs r5, 0x1 ands r5, r0 cmp r5, 0 beq _080D8670 movs r0, 0x5 bl PlaySE ldr r0, =gTasks lsls r1, r7, 2 adds r1, r7 lsls r1, 3 adds r1, r0 ldr r0, =sub_80D8894 str r0, [r1] b _080D87FA .pool _080D8670: ldrh r0, [r3, 0x30] cmp r0, 0x20 bne _080D8678 b _080D87FA _080D8678: cmp r0, 0x20 bgt _080D8682 cmp r0, 0x2 beq _080D868E b _080D87FA _080D8682: cmp r0, 0x40 beq _080D8730 cmp r0, 0x80 bne _080D868C b _080D879C _080D868C: b _080D87FA _080D868E: movs r0, 0x5 bl PlaySE movs r0, 0 bl sub_80DC490 ldr r0, =gStringVar1 ldr r1, =gUnknown_02039F34 ldr r1, [r1] ldr r1, [r1] ldrb r1, [r1, 0x1] adds r1, 0x1 movs r2, 0 movs r3, 0x1 bl ConvertIntToDecimalStringN ldr r0, =gUnknown_02039F25 ldrb r0, [r0] bl sub_80DBCA8 lsls r0, 24 cmp r0, 0 bne _080D86DC ldr r0, =gUnknown_02022E2C ldr r1, =gUnknown_0827D507 bl StringCopy b _080D86E4 .pool _080D86DC: ldr r0, =gUnknown_02022E2C ldr r1, =gUnknown_0827D531 bl StringCopy _080D86E4: bl sub_80DB89C ldr r4, =gStringVar4 ldr r1, =gUnknown_02022E2C adds r0, r4, 0 bl StringExpandPlaceholders adds r0, r4, 0 movs r1, 0 bl sub_80DEC30 ldr r0, =gUnknown_02022E16 movs r1, 0 strh r1, [r0] ldr r0, =gUnknown_02022E1E strh r1, [r0] ldr r1, =gTasks lsls r0, r7, 2 adds r0, r7 lsls r0, 3 adds r0, r1 ldr r1, =sub_80D8424 str r1, [r0] b _080D87FA .pool _080D8730: ldr r4, =gUnknown_02039F34 ldr r0, [r4] ldr r0, [r0] ldrb r0, [r0] lsls r0, 24 asrs r0, 24 bl sub_80D883C ldr r0, [r4] ldr r1, [r0] ldrb r0, [r1] cmp r0, 0 bne _080D8754 subs r0, r6, 0x1 b _080D8756 .pool _080D8754: subs r0, 0x1 _080D8756: strb r0, [r1] ldr r4, =gUnknown_02039F34 ldr r0, [r4] ldr r0, [r0] ldrb r0, [r0] lsls r0, 24 asrs r0, 24 bl sub_80D880C ldr r2, =gUnknown_02039E00 ldr r0, [r4] ldr r0, [r0] ldrb r1, [r0] lsls r1, 1 ldr r0, =gUnknown_02039F25 ldrb r0, [r0] lsls r0, 6 adds r1, r0 adds r2, 0x1E adds r1, r2 ldrh r0, [r1] bl prints_contest_move_description cmp r6, 0x1 bls _080D87FA movs r0, 0x5 bl PlaySE b _080D87FA .pool _080D879C: ldr r4, =gUnknown_02039F34 ldr r0, [r4] ldr r0, [r0] ldrb r0, [r0] lsls r0, 24 asrs r0, 24 bl sub_80D883C ldr r0, [r4] ldr r1, [r0] ldrb r2, [r1] subs r0, r6, 0x1 cmp r2, r0 bne _080D87C0 strb r5, [r1] b _080D87C4 .pool _080D87C0: adds r0, r2, 0x1 strb r0, [r1] _080D87C4: ldr r4, =gUnknown_02039F34 ldr r0, [r4] ldr r0, [r0] ldrb r0, [r0] lsls r0, 24 asrs r0, 24 bl sub_80D880C ldr r2, =gUnknown_02039E00 ldr r0, [r4] ldr r0, [r0] ldrb r1, [r0] lsls r1, 1 ldr r0, =gUnknown_02039F25 ldrb r0, [r0] lsls r0, 6 adds r1, r0 adds r2, 0x1E adds r1, r2 ldrh r0, [r1] bl prints_contest_move_description cmp r6, 0x1 bls _080D87FA movs r0, 0x5 bl PlaySE _080D87FA: pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_80D8610 thumb_func_start sub_80D880C sub_80D880C: @ 80D880C push {lr} sub sp, 0x10 adds r3, r0, 0 lsls r3, 25 movs r0, 0xF8 lsls r0, 21 adds r3, r0 lsrs r3, 24 movs r0, 0x2 str r0, [sp] str r0, [sp, 0x4] movs r0, 0x11 str r0, [sp, 0x8] movs r0, 0x1 str r0, [sp, 0xC] movs r0, 0x2 movs r1, 0x37 movs r2, 0 bl sub_80DECB8 add sp, 0x10 pop {r0} bx r0 thumb_func_end sub_80D880C thumb_func_start sub_80D883C sub_80D883C: @ 80D883C push {r4-r6,lr} mov r6, r8 push {r6} sub sp, 0x10 adds r4, r0, 0 lsls r4, 24 asrs r4, 23 adds r3, r4, 0 adds r3, 0x1F lsls r3, 24 lsrs r3, 24 movs r0, 0x2 mov r8, r0 str r0, [sp] movs r5, 0x1 str r5, [sp, 0x4] movs r6, 0x11 str r6, [sp, 0x8] str r5, [sp, 0xC] movs r1, 0xB movs r2, 0 bl sub_80DECB8 adds r4, 0x20 lsls r4, 24 lsrs r4, 24 mov r0, r8 str r0, [sp] str r5, [sp, 0x4] str r6, [sp, 0x8] str r5, [sp, 0xC] movs r0, 0x2 movs r1, 0xB movs r2, 0 adds r3, r4, 0 bl sub_80DECB8 add sp, 0x10 pop {r3} mov r8, r3 pop {r4-r6} pop {r0} bx r0 thumb_func_end sub_80D883C thumb_func_start sub_80D8894 sub_80D8894: @ 80D8894 push {r4,r5,lr} lsls r0, 24 lsrs r5, r0, 24 ldr r0, =gUnknown_02039F2A ldrb r1, [r0] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _080D890C ldr r4, =gUnknown_02039F25 ldrb r0, [r4] bl sub_80DB8B8 ldr r1, =gUnknown_02039F34 ldr r1, [r1] ldrb r2, [r4] ldr r3, [r1, 0x4] lsls r1, r2, 3 subs r1, r2 lsls r1, 2 adds r1, r3 strh r0, [r1, 0x6] ldr r4, =sub_80FC9F8 adds r0, r4, 0 movs r1, 0 bl CreateTask lsls r0, 24 lsrs r0, 24 ldr r2, =sub_80D892C adds r1, r4, 0 bl SetTaskFuncWithFollowupFunc ldr r1, =gTasks lsls r0, r5, 2 adds r0, r5 lsls r0, 3 adds r0, r1 ldr r1, =TaskDummy1 str r1, [r0] bl sub_80DBF68 movs r0, 0 bl sub_80DC490 b _080D891E .pool _080D890C: bl sub_80DB918 ldr r0, =gTasks lsls r1, r5, 2 adds r1, r5 lsls r1, 3 adds r1, r0 ldr r0, =sub_80D895C str r0, [r1] _080D891E: pop {r4,r5} pop {r0} bx r0 .pool thumb_func_end sub_80D8894 thumb_func_start sub_80D892C sub_80D892C: @ 80D892C push {lr} lsls r0, 24 lsrs r0, 24 bl DestroyTask ldr r2, =gTasks ldr r0, =gUnknown_02039F34 ldr r0, [r0] ldr r0, [r0] ldrb r1, [r0, 0x8] lsls r0, r1, 2 adds r0, r1 lsls r0, 3 adds r0, r2 ldr r1, =sub_80D895C str r1, [r0] pop {r0} bx r0 .pool thumb_func_end sub_80D892C thumb_func_start sub_80D895C sub_80D895C: @ 80D895C push {r4-r7,lr} lsls r0, 24 lsrs r7, r0, 24 bl sub_80DB89C ldr r0, =gUnknown_02022E16 movs r1, 0 strh r1, [r0] ldr r0, =gUnknown_02022E1E strh r1, [r0] movs r0, 0 bl sub_80DC490 movs r6, 0 movs r5, 0xA0 lsls r5, 19 _080D897C: lsrs r4, r5, 24 adds r0, r4, 0 movs r1, 0 bl FillWindowPixelBuffer adds r0, r4, 0 bl PutWindowTilemap adds r0, r4, 0 movs r1, 0x2 bl CopyWindowToVram movs r0, 0x80 lsls r0, 17 adds r5, r0 adds r6, 0x1 cmp r6, 0x3 ble _080D897C movs r0, 0 bl sub_80DED60 ldr r1, =gPlttBufferFaded ldr r0, =0x0201a604 movs r2, 0x80 lsls r2, 3 ldr r4, =0x040000d4 str r1, [r4] str r0, [r4, 0x4] lsrs r1, r2, 2 movs r3, 0x84 lsls r3, 24 orrs r1, r3 str r1, [r4, 0x8] ldr r1, [r4, 0x8] ldr r1, =0xfffffc00 adds r0, r1 movs r1, 0 bl LoadPalette ldr r1, =gTasks lsls r0, r7, 2 adds r0, r7 lsls r0, 3 adds r0, r1 movs r1, 0 strh r1, [r0, 0x8] strh r1, [r0, 0xA] ldr r1, =sub_80D8A04 str r1, [r0] pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_80D895C thumb_func_start sub_80D8A04 sub_80D8A04: @ 80D8A04 push {r4,lr} lsls r0, 24 lsrs r0, 24 ldr r2, =gTasks lsls r1, r0, 2 adds r1, r0 lsls r1, 3 adds r4, r1, r2 ldrh r0, [r4, 0x8] adds r0, 0x1 strh r0, [r4, 0x8] lsls r0, 16 asrs r0, 16 cmp r0, 0x2 ble _080D8A42 movs r0, 0 strh r0, [r4, 0x8] ldrh r0, [r4, 0xA] adds r0, 0x1 strh r0, [r4, 0xA] lsls r0, 16 asrs r0, 16 cmp r0, 0x2 bne _080D8A42 bl sub_80DDBE8 movs r0, 0x1 bl sub_80DE69C ldr r0, =sub_80D8A50 str r0, [r4] _080D8A42: pop {r4} pop {r0} bx r0 .pool thumb_func_end sub_80D8A04 thumb_func_start sub_80D8A50 sub_80D8A50: @ 80D8A50 push {lr} lsls r0, 24 lsrs r2, r0, 24 ldr r0, =gUnknown_02039F34 ldr r0, [r0] ldr r0, [r0] ldrh r1, [r0, 0x6] movs r0, 0x90 lsls r0, 2 ands r0, r1 cmp r0, 0 bne _080D8A76 ldr r0, =gTasks lsls r1, r2, 2 adds r1, r2 lsls r1, 3 adds r1, r0 ldr r0, =sub_80D8A88 str r0, [r1] _080D8A76: pop {r0} bx r0 .pool thumb_func_end sub_80D8A50 thumb_func_start sub_80D8A88 sub_80D8A88: @ 80D8A88 push {r4-r7,lr} lsls r0, 24 lsrs r6, r0, 24 ldr r0, =gTasks lsls r3, r6, 2 adds r1, r3, r6 lsls r1, 3 adds r1, r0 ldrh r0, [r1, 0x8] adds r0, 0x1 strh r0, [r1, 0x8] lsls r0, 16 asrs r0, 16 cmp r0, 0x13 ble _080D8B18 ldr r2, =gUnknown_02039F34 ldr r0, [r2] ldr r1, [r0] movs r0, 0 strb r0, [r1, 0x10] ldr r0, [r2] ldr r1, [r0] ldr r0, =gRngValue ldr r0, [r0] str r0, [r1, 0x18] ldr r0, =gUnknown_02039F2A ldrb r1, [r0] movs r0, 0x1 ands r0, r1 adds r7, r3, 0 cmp r0, 0 beq _080D8B08 bl sub_80DA8A4 lsls r0, 24 cmp r0, 0 beq _080D8B08 movs r4, 0 ldr r1, =gUnknown_02039F30 ldrb r0, [r1] cmp r0, 0x3 bgt _080D8B08 adds r5, r1, 0 _080D8ADE: ldrb r0, [r5] adds r0, r4 lsls r0, 24 lsrs r0, 24 bl sub_80DB8B8 ldr r1, =gUnknown_02039F34 ldr r1, [r1] ldrb r2, [r5] adds r2, r4 ldr r3, [r1, 0x4] lsls r1, r2, 3 subs r1, r2 lsls r1, 2 adds r1, r3 strh r0, [r1, 0x6] adds r4, 0x1 ldrb r0, [r5] adds r0, r4, r0 cmp r0, 0x3 ble _080D8ADE _080D8B08: ldr r1, =gTasks adds r0, r7, r6 lsls r0, 3 adds r0, r1 movs r1, 0 strh r1, [r0, 0x8] ldr r1, =sub_80D8B38 str r1, [r0] _080D8B18: pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_80D8A88 thumb_func_start sub_80D8B38 sub_80D8B38: @ 80D8B38 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x8 lsls r0, 24 lsrs r0, 24 mov r8, r0 ldr r2, =gUnknown_02039F34 ldr r0, [r2] ldr r0, [r0] ldrb r6, [r0, 0x11] ldr r1, =gTasks mov r3, r8 lsls r0, r3, 2 add r0, r8 lsls r0, 3 adds r0, r1 movs r4, 0x8 ldrsh r0, [r0, r4] mov r9, r2 adds r4, r1, 0 cmp r0, 0x3B bls _080D8B6E bl _080DA100 _080D8B6E: lsls r0, 2 ldr r1, =_080D8B84 adds r0, r1 ldr r0, [r0] mov pc, r0 .pool .align 2, 0 _080D8B84: .4byte _080D8C74 .4byte _080D8D30 .4byte _080D8D56 .4byte _080D8DC4 .4byte _080D8E7C .4byte _080D8EC8 .4byte _080D8F84 .4byte _080D8FB8 .4byte _080D9010 .4byte _080D908C .4byte _080D9FC0 .4byte _080D9FEC .4byte _080D9238 .4byte _080D926C .4byte _080D9774 .4byte _080D9864 .4byte _080D98D4 .4byte _080D9904 .4byte _080D99EC .4byte _080D999E .4byte _080DA024 .4byte _080DA0A0 .4byte _080DA0C2 .4byte _080D90B4 .4byte _080D9180 .4byte _080D9388 .4byte _080D939E .4byte _080D947C .4byte _080D94A0 .4byte _080D9508 .4byte _080D95EC .4byte _080DA038 .4byte _080DA080 .4byte _080D9EBC .4byte _080D9F48 .4byte _080D929A .4byte _080D92D0 .4byte _080D92F6 .4byte _080D9334 .4byte _080D955C .4byte _080D95C4 .4byte _080D9A2C .4byte _080DA100 .4byte _080D9DAC .4byte _080DA100 .4byte _080D9830 .4byte _080D997C .4byte _080D921A .4byte _080D91A4 .4byte _080D91F4 .4byte _080D935C .4byte _080D9690 .4byte _080D971C .4byte _080D9BAA .4byte _080D9C68 .4byte _080D9F68 .4byte _080D9F84 .4byte _080D9DD4 .4byte _080D9E60 .4byte _080D9EA0 _080D8C74: bl sub_80DCD48 movs r7, 0 ldr r0, =gUnknown_02039F34 ldr r0, [r0] ldr r1, [r0] ldr r0, [r0, 0x8] ldrb r1, [r1, 0x10] mov r5, r8 lsls r5, 2 mov r10, r5 ldrb r2, [r0] cmp r1, r2 beq _080D8C9C adds r2, r0, 0 _080D8C92: adds r7, 0x1 adds r0, r2, r7 ldrb r0, [r0] cmp r1, r0 bne _080D8C92 _080D8C9C: ldr r4, =gUnknown_02039F34 ldr r0, [r4] ldr r0, [r0] strb r7, [r0, 0x11] ldr r0, [r4] ldr r2, [r0] ldrb r6, [r2, 0x11] ldr r0, =gUnknown_02039F2A ldrb r1, [r0] movs r5, 0x1 adds r0, r5, 0 ands r0, r1 cmp r0, 0 beq _080D8D14 ldrb r0, [r2, 0x7] movs r1, 0x4 orrs r0, r1 strb r0, [r2, 0x7] bl sub_80DA8A4 lsls r0, 24 cmp r0, 0 beq _080D8CD4 ldr r0, [r4] ldr r0, [r0] ldrb r0, [r0, 0x11] bl sub_80DD080 _080D8CD4: ldr r4, =sub_80FCC88 adds r0, r4, 0 movs r1, 0 bl CreateTask lsls r0, 24 lsrs r0, 24 ldr r2, =sub_80DA110 adds r1, r4, 0 bl SetTaskFuncWithFollowupFunc bl sub_80DBF68 ldr r1, =gTasks mov r0, r10 add r0, r8 lsls r0, 3 adds r0, r1 strh r5, [r0, 0x8] bl _080DA100 .pool _080D8D14: adds r0, r6, 0 bl sub_80DD080 ldr r0, =gTasks mov r1, r10 add r1, r8 lsls r1, 3 adds r1, r0 movs r0, 0x2 strh r0, [r1, 0x8] bl _080DA100 .pool _080D8D30: mov r3, r9 ldr r0, [r3] ldr r0, [r0] ldrb r1, [r0, 0x7] movs r0, 0x4 ands r0, r1 cmp r0, 0 beq _080D8D44 bl _080DA100 _080D8D44: mov r5, r8 lsls r0, r5, 2 add r0, r8 lsls r0, 3 adds r0, r4 movs r1, 0x2 strh r1, [r0, 0x8] bl _080DA100 _080D8D56: adds r0, r6, 0 bl sub_80DF080 bl sub_80DF750 ldr r0, =gUnknown_02039F34 ldr r0, [r0] ldr r1, [r0, 0x4] lsls r0, r6, 3 subs r0, r6 lsls r0, 2 adds r2, r0, r1 ldrb r1, [r2, 0xC] movs r0, 0x6 ands r0, r1 cmp r0, 0 bne _080D8D86 ldrb r1, [r2, 0xB] movs r0, 0x80 ands r0, r1 lsls r0, 24 lsrs r6, r0, 24 cmp r6, 0 beq _080D8DA4 _080D8D86: ldr r0, =gTasks mov r2, r8 lsls r1, r2, 2 add r1, r8 lsls r1, 3 adds r1, r0 movs r0, 0x1F strh r0, [r1, 0x8] bl _080DA100 .pool _080D8DA4: bl sub_80DB89C ldr r0, =gTasks mov r3, r8 lsls r1, r3, 2 add r1, r8 lsls r1, 3 adds r1, r0 strh r6, [r1, 0x1C] movs r0, 0x3 strh r0, [r1, 0x8] bl _080DA100 .pool _080D8DC4: mov r4, r8 lsls r4, 2 mov r10, r4 ldr r1, =gUnknown_020244E4 movs r2, 0 adds r0, r1, 0x3 _080D8DD0: strb r2, [r0] subs r0, 0x1 cmp r0, r1 bge _080D8DD0 movs r7, 0x4 mov r5, r9 ldr r0, [r5] ldr r0, [r0, 0x18] movs r1, 0 movs r2, 0x14 bl memset ldr r0, [r5] ldr r0, [r0] ldrb r0, [r0, 0x11] bl sub_80DE9DC ldr r4, =gUnknown_02039E00 ldr r0, [r5] ldr r0, [r0] ldrb r3, [r0, 0x11] lsls r2, r3, 6 adds r0, r2, r4 ldrh r0, [r0] adds r1, r4, 0 adds r1, 0x3C adds r1, r2, r1 ldr r1, [r1] adds r4, 0x38 adds r2, r4 ldr r2, [r2] bl sub_80DB174 lsls r0, 24 lsrs r5, r0, 24 ldr r2, =gSprites lsls r0, r5, 4 adds r0, r5 lsls r0, 2 adds r3, r0, r2 movs r1, 0x78 strh r1, [r3, 0x24] adds r2, 0x1C adds r0, r2 ldr r1, =sub_80DA134 str r1, [r0] ldr r0, =gTasks mov r4, r10 add r4, r8 lsls r4, 3 adds r4, r0 strh r5, [r4, 0xC] ldr r1, =gBankSpriteIds ldr r0, =gBankAttacker ldrb r0, [r0] adds r0, r1 strb r5, [r0] mov r1, r9 ldr r0, [r1] ldr r0, [r0] ldrb r0, [r0, 0x11] bl sub_80DC9EC lsls r0, 24 lsrs r0, 24 movs r1, 0 bl sub_80DCBE8 strh r7, [r4, 0x8] bl _080DA100 .pool _080D8E7C: mov r2, r8 lsls r0, r2, 2 add r0, r8 lsls r0, 3 adds r2, r0, r4 ldrb r5, [r2, 0xC] ldr r1, =gSprites lsls r0, r5, 4 adds r0, r5 lsls r0, 2 adds r1, 0x1C adds r0, r1 ldr r1, [r0] ldr r0, =SpriteCallbackDummy cmp r1, r0 beq _080D8EA0 bl _080DA100 _080D8EA0: mov r3, r9 ldr r0, [r3] ldr r1, [r0, 0x14] lsls r0, r6, 2 adds r0, r1 ldrb r1, [r0, 0x2] movs r0, 0x2 ands r0, r1 cmp r0, 0 beq _080D8EB8 bl _080DA100 _080D8EB8: movs r0, 0x5 strh r0, [r2, 0x8] bl _080DA100 .pool _080D8EC8: mov r5, r9 ldr r0, [r5] ldr r1, [r0, 0x4] lsls r0, r6, 3 subs r0, r6 lsls r5, r0, 2 adds r1, r5, r1 ldrb r1, [r1, 0xC] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _080D8EF2 mov r1, r8 lsls r0, r1, 2 add r0, r8 lsls r0, 3 adds r0, r4 movs r1, 0x21 strh r1, [r0, 0x8] bl _080DA100 _080D8EF2: bl sub_80DB89C ldr r0, =gStringVar1 lsls r1, r6, 6 ldr r2, =gUnknown_02039E02 adds r1, r2 bl StringCopy mov r2, r9 ldr r0, [r2] ldr r0, [r0, 0x4] adds r3, r5, r0 ldrh r1, [r3, 0x6] movs r0, 0xB1 lsls r0, 1 cmp r1, r0 bhi _080D8F38 ldr r0, =gStringVar2 adds r2, r1, 0 movs r1, 0xD muls r1, r2 ldr r2, =gMoveNames adds r1, r2 bl StringCopy b _080D8F48 .pool _080D8F38: ldr r0, =gStringVar2 ldr r2, =gUnknown_08587F1C ldrb r1, [r3, 0xA] lsls r1, 2 adds r1, r2 ldr r1, [r1] bl StringCopy _080D8F48: ldr r4, =gStringVar4 ldr r1, =gUnknown_0827D55A adds r0, r4, 0 bl StringExpandPlaceholders adds r0, r4, 0 movs r1, 0x1 bl sub_80DEC30 ldr r1, =gTasks mov r3, r8 lsls r0, r3, 2 add r0, r8 lsls r0, 3 adds r0, r1 movs r1, 0x6 strh r1, [r0, 0x8] bl _080DA100 .pool _080D8F84: bl sub_80DED4C adds r1, r0, 0 cmp r1, 0 beq _080D8F92 bl _080DA100 _080D8F92: ldr r0, =gUnknown_02039F34 ldr r0, [r0] ldr r0, [r0] adds r0, 0x5A strb r1, [r0] ldr r1, =gTasks mov r4, r8 lsls r0, r4, 2 add r0, r8 lsls r0, 3 adds r0, r1 movs r1, 0x7 strh r1, [r0, 0x8] bl _080DA100 .pool _080D8FB8: mov r5, r9 ldr r1, [r5] ldr r0, [r1] ldrb r2, [r0, 0x11] ldr r1, [r1, 0x4] lsls r0, r2, 3 subs r0, r2 lsls r0, 2 adds r0, r1 ldrh r0, [r0, 0x6] bl sub_80DE834 adds r4, r0, 0 lsls r4, 16 lsrs r4, 16 ldr r0, [r5] ldr r0, [r0] ldrb r0, [r0, 0x11] bl sub_80DE864 ldr r0, [r5] ldr r0, [r0] ldrb r0, [r0, 0x11] bl sub_80DE9DC adds r0, r4, 0 bl sub_80DEAA8 adds r0, r4, 0 bl move_anim_start_t1 ldr r1, =gTasks mov r2, r8 lsls r0, r2, 2 add r0, r8 lsls r0, 3 adds r0, r1 movs r1, 0x8 strh r1, [r0, 0x8] bl _080DA100 .pool _080D9010: ldr r0, =gAnimScriptCallback ldr r0, [r0] bl _call_via_r0 ldr r0, =gAnimScriptActive ldrb r4, [r0] cmp r4, 0 beq _080D9024 bl _080DA100 _080D9024: adds r0, r6, 0 bl sub_80DE9B0 ldr r0, =gUnknown_02039F34 ldr r1, [r0] ldr r0, [r1] adds r0, 0x5A ldrb r0, [r0] cmp r0, 0 beq _080D9060 ldr r0, =gTasks mov r3, r8 lsls r1, r3, 2 add r1, r8 lsls r1, 3 adds r1, r0 strh r4, [r1, 0x1C] movs r0, 0x9 strh r0, [r1, 0x8] bl _080DA100 .pool _080D9060: ldr r1, [r1, 0x4] lsls r0, r6, 3 subs r0, r6 lsls r0, 2 adds r0, r1 ldrb r1, [r0, 0x15] movs r0, 0x10 ands r0, r1 cmp r0, 0 bne _080D907A adds r0, r6, 0 bl sub_80DC674 _080D907A: bl sub_80DE12C ldr r0, =gTasks mov r4, r8 lsls r1, r4, 2 b _080D9192 .pool _080D908C: mov r5, r8 lsls r0, r5, 2 add r0, r8 lsls r0, 3 adds r2, r0, r4 ldrh r0, [r2, 0x1C] adds r1, r0, 0x1 strh r1, [r2, 0x1C] lsls r0, 16 asrs r0, 16 cmp r0, 0x1E bgt _080D90A8 bl _080DA100 _080D90A8: movs r0, 0 strh r0, [r2, 0x1C] movs r0, 0x7 strh r0, [r2, 0x8] bl _080DA100 _080D90B4: mov r0, r8 lsls r2, r0, 2 adds r0, r2, r0 lsls r0, 3 adds r7, r0, r4 movs r0, 0 strh r0, [r7, 0xA] mov r1, r9 ldr r0, [r1] ldr r0, [r0, 0x4] mov r12, r0 lsls r1, r6, 3 subs r0, r1, r6 lsls r5, r0, 2 mov r0, r12 adds r3, r5, r0 ldrb r0, [r3, 0x13] mov r10, r2 str r1, [sp, 0x4] cmp r0, 0xFF beq _080D90FA ldrb r1, [r3, 0x13] adds r0, r6, 0 bl sub_80DD45C mov r1, r9 ldr r0, [r1] ldr r0, [r0, 0x4] adds r0, r5, r0 movs r1, 0xFF strb r1, [r0, 0x13] movs r0, 0x18 strh r0, [r7, 0x8] bl _080DA100 _080D90FA: ldrb r0, [r3, 0x14] cmp r0, 0xFF beq _080D9178 movs r7, 0 cmp r7, r6 beq _080D910E mov r2, r12 ldrb r0, [r2, 0x13] cmp r0, 0xFF bne _080D912C _080D910E: adds r7, 0x1 cmp r7, 0x3 bgt _080D912C cmp r7, r6 beq _080D910E mov r3, r9 ldr r0, [r3] ldr r1, [r0, 0x4] lsls r0, r7, 3 subs r0, r7 lsls r0, 2 adds r0, r1 ldrb r0, [r0, 0x13] cmp r0, 0xFF beq _080D910E _080D912C: cmp r7, 0x4 bne _080D9168 mov r4, r9 ldr r0, [r4] ldr r0, [r0, 0x4] ldr r5, [sp, 0x4] subs r4, r5, r6 lsls r4, 2 adds r0, r4, r0 ldrb r1, [r0, 0x14] adds r0, r6, 0 bl sub_80DD45C mov r1, r9 ldr r0, [r1] ldr r0, [r0, 0x4] adds r4, r0 movs r0, 0xFF strb r0, [r4, 0x14] ldr r1, =gTasks mov r0, r10 add r0, r8 lsls r0, 3 adds r0, r1 movs r1, 0x18 strh r1, [r0, 0x8] bl _080DA100 .pool _080D9168: mov r0, r10 add r0, r8 lsls r0, 3 adds r0, r4 movs r1, 0x30 strh r1, [r0, 0x8] bl _080DA100 _080D9178: movs r0, 0x30 strh r0, [r7, 0x8] bl _080DA100 _080D9180: bl sub_80DED4C cmp r0, 0 beq _080D918C bl _080DA100 _080D918C: ldr r0, =gTasks mov r2, r8 lsls r1, r2, 2 _080D9192: add r1, r8 lsls r1, 3 adds r1, r0 movs r0, 0x17 strh r0, [r1, 0x8] bl _080DA100 .pool _080D91A4: mov r3, r9 ldr r0, [r3] ldr r1, [r0, 0x4] lsls r0, r6, 3 subs r0, r6 lsls r0, 2 adds r0, r1 ldrb r0, [r0, 0x11] movs r3, 0x3 ands r3, r0 cmp r3, 0x1 bne _080D91C4 movs r0, 0x5 bl sub_80DD720 b _080D91DA _080D91C4: cmp r3, 0x2 bne _080D91D0 movs r0, 0x6 bl sub_80DD720 b _080D91DA _080D91D0: cmp r3, 0x3 bne _080D9208 movs r0, 0x7 bl sub_80DD720 _080D91DA: ldr r0, =gTasks mov r2, r8 lsls r1, r2, 2 add r1, r8 lsls r1, 3 adds r1, r0 movs r0, 0x31 strh r0, [r1, 0x8] bl _080DA100 .pool _080D91F4: mov r3, r9 ldr r0, [r3] ldr r0, [r0] ldrb r1, [r0, 0x6] movs r0, 0x10 ands r0, r1 cmp r0, 0 beq _080D9208 bl _080DA100 _080D9208: mov r5, r8 lsls r0, r5, 2 add r0, r8 lsls r0, 3 adds r0, r4 movs r1, 0x2F strh r1, [r0, 0x8] bl _080DA100 _080D921A: movs r0, 0x1 bl sub_80DE008 ldr r0, =gTasks mov r2, r8 lsls r1, r2, 2 add r1, r8 lsls r1, 3 adds r1, r0 movs r0, 0xC strh r0, [r1, 0x8] bl _080DA100 .pool _080D9238: mov r3, r9 ldr r0, [r3] ldr r1, [r0, 0x4] lsls r0, r6, 3 subs r0, r6 lsls r0, 2 adds r0, r1 movs r4, 0x2 ldrsh r1, [r0, r4] movs r0, 0 adds r2, r6, 0 bl sub_80DC028 ldr r1, =gTasks mov r5, r8 lsls r0, r5, 2 add r0, r8 lsls r0, 3 adds r0, r1 movs r1, 0xD strh r1, [r0, 0x8] bl _080DA100 .pool _080D926C: mov r0, r9 ldr r1, [r0] ldr r0, [r1] ldrb r0, [r0, 0x11] ldr r1, [r1, 0x14] lsls r0, 2 adds r0, r1 ldrb r1, [r0, 0x2] movs r0, 0x4 ands r0, r1 cmp r0, 0 beq _080D9288 bl _080DA100 _080D9288: mov r1, r8 lsls r0, r1, 2 add r0, r8 lsls r0, 3 adds r0, r4 movs r1, 0x23 strh r1, [r0, 0x8] bl _080DA100 _080D929A: mov r2, r9 ldr r0, [r2] ldr r1, [r0, 0x4] lsls r0, r6, 3 subs r0, r6 lsls r0, 2 adds r0, r1 ldrb r1, [r0, 0x10] movs r0, 0x30 ands r0, r1 cmp r0, 0x10 bne _080D92B8 movs r0, 0x8 bl sub_80DD720 _080D92B8: ldr r0, =gTasks mov r3, r8 lsls r1, r3, 2 add r1, r8 lsls r1, 3 adds r1, r0 movs r0, 0x24 strh r0, [r1, 0x8] bl _080DA100 .pool _080D92D0: mov r5, r9 ldr r0, [r5] ldr r0, [r0] ldrb r1, [r0, 0x6] movs r0, 0x10 ands r0, r1 cmp r0, 0 beq _080D92E4 bl _080DA100 _080D92E4: mov r1, r8 lsls r0, r1, 2 add r0, r8 lsls r0, 3 adds r0, r4 movs r1, 0x25 strh r1, [r0, 0x8] bl _080DA100 _080D92F6: adds r0, r6, 0 movs r1, 0x1 bl sub_80DB5B8 lsls r0, 24 cmp r0, 0 beq _080D9320 ldr r1, =gTasks mov r2, r8 lsls r0, r2, 2 add r0, r8 lsls r0, 3 adds r0, r1 movs r1, 0 strh r1, [r0, 0x1C] movs r1, 0x26 strh r1, [r0, 0x8] bl _080DA100 .pool _080D9320: ldr r0, =gTasks mov r3, r8 lsls r1, r3, 2 add r1, r8 lsls r1, 3 adds r1, r0 b _080D9354 .pool _080D9334: mov r5, r8 lsls r0, r5, 2 add r0, r8 lsls r0, 3 adds r1, r0, r4 ldrh r0, [r1, 0x1C] adds r0, 0x1 strh r0, [r1, 0x1C] lsls r0, 16 asrs r0, 16 cmp r0, 0x14 bgt _080D9350 bl _080DA100 _080D9350: movs r0, 0 strh r0, [r1, 0x1C] _080D9354: movs r0, 0x32 strh r0, [r1, 0x8] bl _080DA100 _080D935C: adds r0, r6, 0 bl sub_80DB798 lsls r0, 24 cmp r0, 0 beq _080D936E movs r0, 0x63 bl PlaySE _080D936E: ldr r0, =gTasks mov r2, r8 lsls r1, r2, 2 add r1, r8 lsls r1, 3 adds r1, r0 movs r0, 0x19 strh r0, [r1, 0x8] bl _080DA100 .pool _080D9388: mov r3, r8 lsls r0, r3, 2 add r0, r8 lsls r0, 3 adds r0, r4 movs r1, 0 strh r1, [r0, 0xA] movs r1, 0x1A strh r1, [r0, 0x8] bl _080DA100 _080D939E: movs r3, 0 movs r5, 0 str r5, [sp] mov r0, r8 lsls r1, r0, 2 adds r0, r1, r0 lsls r0, 3 adds r0, r4 movs r2, 0xA ldrsh r7, [r0, r2] mov r10, r1 cmp r7, 0x3 bgt _080D9418 ldr r5, =gUnknown_02039F26 ldr r2, =gUnknown_02039F34 _080D93BC: movs r3, 0 str r3, [sp] adds r0, r3, 0 cmp r0, r6 beq _080D93E4 ldrb r0, [r5] cmp r0, r7 bne _080D93E4 ldr r0, [r2] ldr r0, [r0, 0x4] ldrb r0, [r0, 0x13] cmp r0, 0xFF beq _080D93E4 movs r1, 0x1 str r1, [sp] b _080D940C .pool _080D93E4: adds r3, 0x1 cmp r3, 0x3 bgt _080D940C cmp r3, r6 beq _080D93E4 adds r0, r3, r5 ldrb r0, [r0] cmp r0, r7 bne _080D93E4 ldr r0, [r2] ldr r1, [r0, 0x4] lsls r0, r3, 3 subs r0, r3 lsls r0, 2 adds r0, r1 ldrb r0, [r0, 0x13] cmp r0, 0xFF beq _080D93E4 movs r0, 0x1 str r0, [sp] _080D940C: ldr r1, [sp] cmp r1, 0 bne _080D9422 adds r7, 0x1 cmp r7, 0x3 ble _080D93BC _080D9418: ldr r2, [sp] lsls r0, r2, 24 asrs r2, r0, 24 cmp r2, 0 beq _080D9464 _080D9422: mov r5, r10 add r5, r8 lsls r5, 3 adds r5, r4 ldr r0, =gUnknown_02039F26 adds r0, r3, r0 ldrb r0, [r0] strh r0, [r5, 0xA] lsls r0, r3, 24 lsrs r0, 24 mov r4, r9 ldr r1, [r4] ldr r1, [r1, 0x4] lsls r4, r3, 3 subs r4, r3 lsls r4, 2 adds r1, r4, r1 ldrb r1, [r1, 0x13] bl sub_80DD45C mov r1, r9 ldr r0, [r1] ldr r0, [r0, 0x4] adds r4, r0 movs r0, 0xFF strb r0, [r4, 0x13] movs r0, 0x1B strh r0, [r5, 0x8] bl _080DA100 .pool _080D9464: mov r0, r10 add r0, r8 lsls r0, 3 adds r0, r4 strh r2, [r0, 0xA] strh r2, [r0, 0x1C] movs r1, 0x33 strh r1, [r0, 0x8] bl sub_80DB884 bl _080DA100 _080D947C: bl sub_80DED4C cmp r0, 0 beq _080D9488 bl _080DA100 _080D9488: ldr r0, =gTasks mov r2, r8 lsls r1, r2, 2 add r1, r8 lsls r1, 3 adds r1, r0 movs r0, 0x1C strh r0, [r1, 0x8] bl _080DA100 .pool _080D94A0: movs r7, 0 mov r3, r8 lsls r0, r3, 2 adds r1, r0, r3 lsls r1, 3 adds r1, r4 movs r4, 0xA ldrsh r2, [r1, r4] ldr r1, =gUnknown_02039F26 mov r10, r0 adds r5, r1, 0 ldrb r0, [r5] cmp r2, r0 beq _080D94CA adds r1, r2, 0 adds r2, r5, 0 _080D94C0: adds r7, 0x1 adds r0, r7, r2 ldrb r0, [r0] cmp r1, r0 bne _080D94C0 _080D94CA: mov r1, r9 ldr r0, [r1] ldr r1, [r0, 0x4] lsls r0, r7, 3 subs r0, r7 lsls r0, 2 adds r0, r1 ldrb r1, [r0, 0xE] ldrh r0, [r0, 0x2] adds r0, r1 lsls r0, 16 asrs r0, 16 negs r1, r1 lsls r2, r7, 24 lsrs r2, 24 bl sub_80DC028 ldr r1, =gTasks mov r0, r10 add r0, r8 lsls r0, 3 adds r0, r1 movs r1, 0x1D strh r1, [r0, 0x8] bl _080DA100 .pool _080D9508: movs r7, 0 mov r2, r8 lsls r0, r2, 2 adds r1, r0, r2 lsls r1, 3 adds r1, r4 movs r5, 0xA ldrsh r3, [r1, r5] ldr r1, =gUnknown_02039F26 mov r10, r0 adds r5, r1, 0 ldrb r0, [r5] cmp r3, r0 beq _080D952E _080D9524: adds r7, 0x1 adds r0, r7, r1 ldrb r0, [r0] cmp r3, r0 bne _080D9524 _080D952E: mov r1, r9 ldr r0, [r1] ldr r1, [r0, 0x14] lsls r0, r7, 2 adds r0, r1 ldrb r1, [r0, 0x2] movs r0, 0x4 ands r0, r1 cmp r0, 0 beq _080D9546 bl _080DA100 _080D9546: mov r0, r10 add r0, r8 lsls r0, 3 adds r0, r4 movs r1, 0x27 strh r1, [r0, 0x8] bl _080DA100 .pool _080D955C: movs r7, 0 mov r2, r8 lsls r0, r2, 2 adds r1, r0, r2 lsls r1, 3 adds r1, r4 movs r3, 0xA ldrsh r2, [r1, r3] ldr r1, =gUnknown_02039F26 mov r10, r0 adds r5, r1, 0 ldrb r4, [r5] cmp r2, r4 beq _080D9586 adds r1, r2, 0 adds r2, r5, 0 _080D957C: adds r7, 0x1 adds r0, r7, r2 ldrb r0, [r0] cmp r1, r0 bne _080D957C _080D9586: lsls r0, r7, 24 lsrs r0, 24 movs r1, 0x1 bl sub_80DB5B8 lsls r0, 24 cmp r0, 0 beq _080D95B4 ldr r1, =gTasks mov r0, r10 add r0, r8 lsls r0, 3 adds r0, r1 movs r1, 0 strh r1, [r0, 0x1C] movs r1, 0x28 strh r1, [r0, 0x8] bl _080DA100 .pool _080D95B4: ldr r0, =gTasks mov r1, r10 add r1, r8 lsls r1, 3 adds r1, r0 b _080D95E4 .pool _080D95C4: mov r5, r8 lsls r0, r5, 2 add r0, r8 lsls r0, 3 adds r1, r0, r4 ldrh r0, [r1, 0x1C] adds r0, 0x1 strh r0, [r1, 0x1C] lsls r0, 16 asrs r0, 16 cmp r0, 0x14 bgt _080D95E0 bl _080DA100 _080D95E0: movs r0, 0 strh r0, [r1, 0x1C] _080D95E4: movs r0, 0x1E strh r0, [r1, 0x8] bl _080DA100 _080D95EC: movs r7, 0 ldr r2, =gUnknown_02039F26 ldrb r3, [r2] mov r0, r8 lsls r1, r0, 2 adds r0, r1, r0 lsls r0, 3 adds r4, r0, r4 movs r5, 0xA ldrsh r0, [r4, r5] mov r10, r1 adds r5, r2, 0 cmp r3, r0 beq _080D961E adds r3, r5, 0 adds r2, r4, 0 _080D960C: adds r7, 0x1 cmp r7, 0x3 bgt _080D961E adds r0, r7, r3 ldrb r1, [r0] movs r4, 0xA ldrsh r0, [r2, r4] cmp r1, r0 bne _080D960C _080D961E: lsls r4, r7, 24 lsrs r0, r4, 24 bl sub_80DB798 lsls r0, 24 adds r6, r4, 0 cmp r0, 0 beq _080D963C movs r0, 0x63 bl PlaySE b _080D9642 .pool _080D963C: movs r0, 0x64 bl PlaySE _080D9642: ldr r5, =gUnknown_02039F34 ldr r0, [r5] ldr r1, [r0, 0x4] lsls r0, r7, 3 subs r0, r7 lsls r4, r0, 2 adds r1, r4, r1 ldrb r1, [r1, 0x15] movs r0, 0x20 ands r0, r1 cmp r0, 0 beq _080D9670 lsrs r0, r6, 24 bl sub_80DC674 ldr r0, [r5] ldr r1, [r0, 0x4] adds r1, r4, r1 ldrb r2, [r1, 0x15] movs r0, 0x21 negs r0, r0 ands r0, r2 strb r0, [r1, 0x15] _080D9670: ldr r0, =gTasks mov r1, r10 add r1, r8 lsls r1, 3 adds r1, r0 ldrh r0, [r1, 0xA] adds r0, 0x1 strh r0, [r1, 0xA] movs r0, 0x1A strh r0, [r1, 0x8] bl _080DA100 .pool _080D9690: mov r5, r8 lsls r2, r5, 2 adds r0, r2, r5 lsls r0, 3 adds r4, r0, r4 ldrh r0, [r4, 0x1C] adds r1, r0, 0x1 strh r1, [r4, 0x1C] lsls r0, 16 asrs r0, 16 mov r10, r2 cmp r0, 0x9 bgt _080D96AE bl _080DA100 _080D96AE: movs r0, 0 strh r0, [r4, 0x1C] mov r1, r9 ldr r0, [r1] ldr r1, [r0, 0x4] lsls r0, r6, 3 subs r0, r6 lsls r0, 2 adds r2, r0, r1 ldrb r1, [r2, 0xC] movs r0, 0x6 ands r0, r1 cmp r0, 0 bne _080D96D4 ldrb r1, [r2, 0x11] movs r0, 0x4 ands r0, r1 cmp r0, 0 beq _080D96F6 _080D96D4: bl sub_80DB89C ldr r0, =gStringVar1 lsls r1, r6, 6 ldr r2, =gUnknown_02039E02 adds r1, r2 bl StringCopy ldr r4, =gStringVar4 ldr r1, =gUnknown_0827E793 adds r0, r4, 0 bl StringExpandPlaceholders adds r0, r4, 0 movs r1, 0x1 bl sub_80DEC30 _080D96F6: ldr r0, =gTasks mov r1, r10 add r1, r8 lsls r1, 3 adds r1, r0 movs r0, 0x34 strh r0, [r1, 0x8] bl _080DA100 .pool _080D971C: bl sub_80DED4C cmp r0, 0 beq _080D9728 bl _080DA100 _080D9728: ldr r0, =gUnknown_02039F34 ldr r0, [r0] ldr r1, [r0, 0x4] lsls r0, r6, 3 subs r0, r6 lsls r0, 2 adds r0, r1 ldrb r1, [r0, 0x15] movs r0, 0x40 ands r0, r1 cmp r0, 0 bne _080D975C ldr r0, =gTasks mov r2, r8 lsls r1, r2, 2 add r1, r8 lsls r1, 3 adds r1, r0 movs r0, 0x11 strh r0, [r1, 0x8] bl _080DA100 .pool _080D975C: ldr r0, =gTasks mov r3, r8 lsls r1, r3, 2 add r1, r8 lsls r1, 3 adds r1, r0 movs r0, 0xE strh r0, [r1, 0x8] bl _080DA100 .pool _080D9774: mov r4, r9 ldr r0, [r4] ldr r1, [r0, 0x4] lsls r0, r6, 3 subs r0, r6 lsls r0, 2 adds r0, r1 ldrb r0, [r0, 0x16] lsls r4, r0, 24 lsrs r5, r4, 24 cmp r5, 0 beq _080D97DC bl sub_80DB89C asrs r0, r4, 24 cmp r0, 0x1 bne _080D97A0 ldr r0, =gUnknown_0827E32E b _080D97A6 .pool _080D97A0: cmp r0, 0x2 bne _080D97B4 ldr r0, =gUnknown_0827E35B _080D97A6: movs r1, 0x1 bl sub_80DEC30 b _080D97BC .pool _080D97B4: ldr r0, =gUnknown_0827E38D movs r1, 0x1 bl sub_80DEC30 _080D97BC: movs r0, 0x3 bl sub_80DD720 ldr r1, =gTasks mov r5, r8 lsls r0, r5, 2 add r0, r8 lsls r0, 3 adds r0, r1 movs r1, 0 strh r1, [r0, 0x1C] b _080D9812 .pool _080D97DC: bl sub_80DB89C ldr r0, =gStringVar1 lsls r1, r6, 6 ldr r2, =gUnknown_02039E02 adds r1, r2 bl StringCopy ldr r4, =gStringVar4 ldr r1, =gUnknown_0827E2FE adds r0, r4, 0 bl StringExpandPlaceholders adds r0, r4, 0 movs r1, 0x1 bl sub_80DEC30 movs r0, 0x2 bl sub_80DD720 ldr r1, =gTasks mov r2, r8 lsls r0, r2, 2 add r0, r8 lsls r0, 3 adds r0, r1 strh r5, [r0, 0x1C] _080D9812: movs r1, 0x2D strh r1, [r0, 0x8] bl _080DA100 .pool _080D9830: mov r3, r9 ldr r0, [r3] ldr r2, [r0] ldrb r1, [r2, 0x6] movs r0, 0x10 ands r0, r1 cmp r0, 0 beq _080D9844 bl _080DA100 _080D9844: ldrb r0, [r2, 0x11] bl sub_80DC9B4 ldr r1, =gTasks mov r4, r8 lsls r0, r4, 2 add r0, r8 lsls r0, 3 adds r0, r1 movs r1, 0xF strh r1, [r0, 0x8] bl _080DA100 .pool _080D9864: bl sub_80DED4C cmp r0, 0 beq _080D9870 bl _080DA100 _080D9870: ldr r1, =gTasks mov r5, r8 lsls r0, r5, 2 add r0, r8 lsls r0, 3 adds r4, r0, r1 ldrh r0, [r4, 0x1C] adds r0, 0x1 strh r0, [r4, 0x1C] lsls r0, 16 asrs r0, 16 cmp r0, 0x32 bgt _080D988E bl _080DA100 _080D988E: ldr r7, =gUnknown_02039F34 ldr r0, [r7] ldr r1, [r0, 0x4] lsls r0, r6, 3 subs r0, r6 lsls r5, r0, 2 adds r2, r5, r1 ldrb r1, [r2, 0x15] movs r0, 0x10 mov r8, r0 ands r0, r1 cmp r0, 0 bne _080D98C2 movs r1, 0x2 ldrsh r0, [r2, r1] ldrb r1, [r2, 0x17] adds r2, r6, 0 bl sub_80DC028 ldr r0, [r7] ldr r1, [r0, 0x4] adds r1, r5, r1 ldrh r0, [r1, 0x2] ldrb r2, [r1, 0x17] adds r0, r2 strh r0, [r1, 0x2] _080D98C2: mov r3, r8 strh r3, [r4, 0x8] bl _080DA100 .pool _080D98D4: mov r5, r9 ldr r0, [r5] ldr r1, [r0, 0x14] lsls r0, r6, 2 adds r0, r1 ldrb r1, [r0, 0x2] movs r0, 0x4 ands r0, r1 lsls r0, 24 lsrs r1, r0, 24 cmp r1, 0 beq _080D98F0 bl _080DA100 _080D98F0: mov r2, r8 lsls r0, r2, 2 add r0, r8 lsls r0, 3 adds r0, r4 strh r1, [r0, 0x1C] movs r1, 0x11 strh r1, [r0, 0x8] bl _080DA100 _080D9904: mov r3, r9 ldr r0, [r3] ldr r1, [r0, 0x4] lsls r0, r6, 3 subs r0, r6 lsls r0, 2 adds r0, r1 ldrb r1, [r0, 0x15] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _080D996C bl sub_80DB89C ldr r0, =gStringVar1 lsls r1, r6, 6 ldr r2, =gUnknown_02039E02 adds r1, r2 bl StringCopy ldr r4, =gStringVar4 ldr r1, =gUnknown_0827E6E3 adds r0, r4, 0 bl StringExpandPlaceholders adds r0, r4, 0 movs r1, 0x1 bl sub_80DEC30 ldr r0, =gTasks mov r5, r8 lsls r4, r5, 2 add r4, r8 lsls r4, 3 adds r4, r0 movs r0, 0 strh r0, [r4, 0x1C] bl sub_80DD720 movs r0, 0x2E strh r0, [r4, 0x8] b _080DA100 .pool _080D996C: mov r1, r8 lsls r0, r1, 2 add r0, r8 lsls r0, 3 adds r0, r4 movs r1, 0x29 strh r1, [r0, 0x8] b _080DA100 _080D997C: mov r2, r9 ldr r0, [r2] ldr r0, [r0] ldrb r1, [r0, 0x6] movs r0, 0x10 ands r0, r1 cmp r0, 0 beq _080D998E b _080DA100 _080D998E: mov r3, r8 lsls r0, r3, 2 add r0, r8 lsls r0, 3 adds r0, r4 movs r1, 0x13 strh r1, [r0, 0x8] b _080DA100 _080D999E: bl sub_80DED4C cmp r0, 0 beq _080D99A8 b _080DA100 _080D99A8: ldr r5, =gUnknown_02039F34 ldr r0, [r5] ldr r1, [r0, 0x4] lsls r4, r6, 3 subs r4, r6 lsls r4, 2 adds r1, r4, r1 movs r2, 0x2 ldrsh r0, [r1, r2] ldrb r1, [r1, 0x18] negs r1, r1 adds r2, r6, 0 bl sub_80DC028 ldr r0, [r5] ldr r0, [r0, 0x4] adds r4, r0 ldrb r1, [r4, 0x18] ldrh r0, [r4, 0x2] subs r0, r1 strh r0, [r4, 0x2] ldr r1, =gTasks mov r3, r8 lsls r0, r3, 2 add r0, r8 lsls r0, 3 adds r0, r1 movs r1, 0x12 strh r1, [r0, 0x8] b _080DA100 .pool _080D99EC: bl sub_80DCD48 ldr r0, =gUnknown_02039F34 ldr r0, [r0] ldr r1, [r0, 0x14] lsls r0, r6, 2 adds r0, r1 ldrb r1, [r0, 0x2] movs r0, 0x4 ands r0, r1 lsls r0, 24 lsrs r3, r0, 24 cmp r3, 0 beq _080D9A0A b _080DA100 _080D9A0A: ldr r0, =gTasks mov r5, r8 lsls r4, r5, 2 add r4, r8 lsls r4, 3 adds r4, r0 strh r3, [r4, 0x1C] bl sub_80DB89C movs r0, 0x29 strh r0, [r4, 0x8] b _080DA100 .pool _080D9A2C: mov r1, r9 ldr r0, [r1] ldr r2, [r0, 0x10] ldrb r1, [r2, 0x1] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _080D9A56 ldr r0, [r2] lsls r0, 20 lsrs r0, 29 cmp r6, r0 beq _080D9A56 mov r2, r8 lsls r0, r2, 2 add r0, r8 lsls r0, 3 adds r0, r4 movs r1, 0x39 strh r1, [r0, 0x8] b _080DA100 _080D9A56: mov r3, r9 ldr r1, [r3] ldr r0, [r1, 0x10] ldrb r0, [r0] str r0, [sp] ldr r1, [r1, 0x4] lsls r2, r6, 3 subs r0, r2, r6 lsls r0, 2 adds r5, r0, r1 ldrb r1, [r5, 0x11] movs r0, 0x10 ands r0, r1 str r2, [sp, 0x4] cmp r0, 0 beq _080D9A94 movs r4, 0x1 str r4, [sp] ldr r0, =gStringVar3 ldrh r2, [r5, 0x6] movs r1, 0xD muls r1, r2 ldr r2, =gMoveNames adds r1, r2 bl StringCopy b _080D9AAE .pool _080D9A94: ldr r0, =gStringVar3 ldr r3, =gUnknown_08587F08 ldr r2, =gContestMoves ldrh r1, [r5, 0x6] lsls r1, 3 adds r1, r2 ldrb r1, [r1, 0x1] lsls r1, 29 lsrs r1, 27 adds r1, r3 ldr r1, [r1] bl StringCopy _080D9AAE: ldr r5, [sp] lsls r0, r5, 24 cmp r0, 0 ble _080D9AD2 ldr r0, =gUnknown_02039F34 ldr r0, [r0] ldr r1, [r0, 0x4] ldr r2, [sp, 0x4] subs r0, r2, r6 lsls r0, 2 adds r0, r1 ldrb r1, [r0, 0x15] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _080D9AD2 movs r3, 0 str r3, [sp] _080D9AD2: bl sub_80DB89C ldr r0, =gStringVar1 lsls r1, r6, 6 ldr r2, =gUnknown_02039E02 adds r1, r2 bl StringCopy ldr r4, =gUnknown_02039F34 ldr r0, [r4] ldr r1, [r0] ldrb r0, [r1, 0x13] ldr r5, [sp] lsls r2, r5, 24 asrs r3, r2, 24 adds r0, r3, r0 strb r0, [r1, 0x13] ldr r0, [r4] ldr r1, [r0] movs r0, 0x13 ldrsb r0, [r1, r0] adds r5, r2, 0 cmp r0, 0 bge _080D9B06 movs r0, 0 strb r0, [r1, 0x13] _080D9B06: cmp r3, 0 bne _080D9B30 ldr r0, =gTasks mov r2, r8 lsls r1, r2, 2 b _080D9F58 .pool _080D9B30: cmp r3, 0 bge _080D9B48 ldr r0, =gStringVar4 ldr r1, =gUnknown_0827E73C bl StringExpandPlaceholders b _080D9B74 .pool _080D9B48: cmp r3, 0 ble _080D9B6C ldr r0, [r4] ldr r0, [r0] ldrb r0, [r0, 0x13] lsls r0, 24 asrs r0, 24 cmp r0, 0x4 bgt _080D9B6C ldr r0, =gStringVar4 ldr r1, =gUnknown_0827E717 bl StringExpandPlaceholders b _080D9B74 .pool _080D9B6C: ldr r0, =gStringVar4 ldr r1, =gUnknown_0827E76A bl StringExpandPlaceholders _080D9B74: ldr r0, =gStringVar4 movs r1, 0x1 bl sub_80DEC30 ldr r1, =gTasks mov r3, r8 lsls r0, r3, 2 add r0, r8 lsls r0, 3 adds r1, r0, r1 movs r0, 0 strh r0, [r1, 0x1C] strh r0, [r1, 0x1E] cmp r5, 0 bge _080D9BA4 movs r0, 0x35 strh r0, [r1, 0x8] b _080DA100 .pool _080D9BA4: movs r0, 0x36 strh r0, [r1, 0x8] b _080DA100 _080D9BAA: mov r5, r8 lsls r0, r5, 2 add r0, r8 lsls r0, 3 adds r4, r0, r4 movs r0, 0x1C ldrsh r3, [r4, r0] cmp r3, 0x1 beq _080D9BE8 cmp r3, 0x1 bgt _080D9BC6 cmp r3, 0 beq _080D9BD0 b _080DA100 _080D9BC6: cmp r3, 0x2 beq _080D9C0C cmp r3, 0x3 beq _080D9C46 b _080DA100 _080D9BD0: movs r0, 0x1 negs r0, r0 movs r1, 0x1 bl sub_80DDED0 ldr r0, =0x00000187 bl PlayFanfare b _080D9C3E .pool _080D9BE8: mov r1, r9 ldr r0, [r1] ldr r0, [r0] ldrb r0, [r0, 0x7] ands r3, r0 cmp r3, 0 beq _080D9BF8 b _080DA100 _080D9BF8: bl sub_80DED4C cmp r0, 0 beq _080D9C02 b _080DA100 _080D9C02: movs r0, 0x1 negs r0, r0 bl sub_80DDCDC b _080D9C3E _080D9C0C: mov r2, r9 ldr r0, [r2] ldr r0, [r0] ldrb r1, [r0, 0x6] movs r0, 0x20 ands r0, r1 lsls r0, 24 lsrs r2, r0, 24 cmp r2, 0 beq _080D9C22 b _080DA100 _080D9C22: ldrh r0, [r4, 0x1E] adds r1, r0, 0x1 strh r1, [r4, 0x1E] lsls r0, 16 asrs r0, 16 cmp r0, 0x1D bgt _080D9C32 b _080DA100 _080D9C32: strh r2, [r4, 0x1E] movs r1, 0x1 negs r1, r1 adds r0, r1, 0 bl sub_80DDED0 _080D9C3E: ldrh r0, [r4, 0x1C] adds r0, 0x1 strh r0, [r4, 0x1C] b _080DA100 _080D9C46: ldr r0, =gPaletteFade ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 lsls r0, 24 lsrs r0, 24 cmp r0, 0 beq _080D9C58 b _080DA100 _080D9C58: strh r0, [r4, 0x1C] strh r0, [r4, 0x1E] movs r0, 0x2B strh r0, [r4, 0x8] b _080DA100 .pool _080D9C68: mov r3, r8 lsls r1, r3, 2 adds r0, r1, r3 lsls r0, 3 adds r0, r4 movs r5, 0x1C ldrsh r0, [r0, r5] mov r10, r1 cmp r0, 0x4 bls _080D9C7E b _080DA100 _080D9C7E: lsls r0, 2 ldr r1, =_080D9C8C adds r0, r1 ldr r0, [r0] mov pc, r0 .pool .align 2, 0 _080D9C8C: .4byte _080D9CA0 .4byte _080D9CB0 .4byte _080D9CD4 .4byte _080D9D3E .4byte _080D9D84 _080D9CA0: bl sub_80DED4C cmp r0, 0 beq _080D9CAA b _080DA100 _080D9CAA: movs r0, 0x1 movs r1, 0x1 b _080D9D68 _080D9CB0: mov r1, r9 ldr r0, [r1] ldr r0, [r0] ldrb r1, [r0, 0x7] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _080D9CC2 b _080DA100 _080D9CC2: bl sub_80DDE0C movs r0, 0xDF bl PlaySE movs r0, 0x1 bl sub_80DDCDC b _080D9D6C _080D9CD4: mov r3, r9 ldr r2, [r3] ldr r0, [r2] ldrb r1, [r0, 0x6] movs r0, 0x20 ands r0, r1 lsls r0, 24 lsrs r3, r0, 24 cmp r3, 0 beq _080D9CEA b _080DA100 _080D9CEA: mov r0, r10 add r0, r8 lsls r0, 3 adds r5, r0, r4 ldrh r0, [r5, 0x1E] adds r1, r0, 0x1 strh r1, [r5, 0x1E] lsls r0, 16 asrs r0, 16 cmp r0, 0x1D bgt _080D9D02 b _080DA100 _080D9D02: strh r3, [r5, 0x1E] ldr r0, [r2, 0x4] lsls r4, r6, 3 subs r4, r6 lsls r4, 2 adds r0, r4, r0 movs r1, 0x2 ldrsh r0, [r0, r1] ldr r1, [r2, 0x10] ldrb r1, [r1, 0x2] lsls r1, 24 asrs r1, 24 adds r2, r6, 0 bl sub_80DC028 mov r2, r9 ldr r1, [r2] ldr r0, [r1, 0x4] adds r4, r0 ldr r0, [r1, 0x10] ldrb r0, [r0, 0x2] lsls r0, 24 asrs r0, 24 ldrh r3, [r4, 0x2] adds r0, r3 strh r0, [r4, 0x2] ldrh r0, [r5, 0x1C] adds r0, 0x1 strh r0, [r5, 0x1C] b _080DA100 _080D9D3E: mov r4, r9 ldr r2, [r4] ldr r1, [r2, 0x14] lsls r0, r6, 2 adds r0, r1 ldrb r1, [r0, 0x2] movs r0, 0x4 ands r0, r1 cmp r0, 0 beq _080D9D54 b _080DA100 _080D9D54: ldr r0, [r2] ldrb r1, [r0, 0x6] movs r0, 0x80 ands r0, r1 cmp r0, 0 beq _080D9D62 b _080DA100 _080D9D62: movs r1, 0x1 negs r1, r1 movs r0, 0x1 _080D9D68: bl sub_80DDED0 _080D9D6C: ldr r0, =gTasks mov r1, r10 add r1, r8 lsls r1, 3 adds r1, r0 ldrh r0, [r1, 0x1C] adds r0, 0x1 strh r0, [r1, 0x1C] b _080DA100 .pool _080D9D84: ldr r0, =gPaletteFade ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 lsls r0, 24 lsrs r3, r0, 24 cmp r3, 0 beq _080D9D96 b _080DA100 _080D9D96: mov r0, r10 add r0, r8 lsls r0, 3 adds r0, r4 strh r3, [r0, 0x1C] strh r3, [r0, 0x1E] movs r1, 0x2B strh r1, [r0, 0x8] b _080DA100 .pool _080D9DAC: mov r5, r9 ldr r0, [r5] ldr r1, [r0, 0x14] lsls r0, r6, 2 adds r0, r1 ldrb r1, [r0, 0x2] movs r0, 0x4 ands r0, r1 cmp r0, 0 beq _080D9DC2 b _080DA100 _080D9DC2: bl sub_80DB89C ldr r0, =gTasks mov r2, r8 lsls r1, r2, 2 b _080D9F58 .pool _080D9DD4: bl sub_80DB89C ldr r0, =gStringVar3 ldr r5, =gUnknown_02039F34 ldr r1, [r5] ldr r1, [r1, 0x10] ldr r1, [r1] lsls r1, 20 lsrs r1, 29 lsls r1, 6 ldr r4, =gUnknown_02039E02 adds r1, r4 bl StringCopy ldr r0, =gStringVar1 lsls r1, r6, 6 adds r1, r4 bl StringCopy ldr r0, =gStringVar2 ldr r1, [r5] ldr r2, [r1, 0x4] lsls r1, r6, 3 subs r1, r6 lsls r1, 2 adds r1, r2 ldrh r2, [r1, 0x6] movs r1, 0xD muls r1, r2 ldr r2, =gMoveNames adds r1, r2 bl StringCopy ldr r4, =gStringVar4 ldr r1, =gUnknown_0827E7EA adds r0, r4, 0 bl StringExpandPlaceholders adds r0, r4, 0 movs r1, 0x1 bl sub_80DEC30 ldr r1, =gTasks mov r3, r8 lsls r0, r3, 2 add r0, r8 lsls r0, 3 adds r0, r1 movs r1, 0x3A strh r1, [r0, 0x8] b _080DA100 .pool _080D9E60: bl sub_80DED4C cmp r0, 0 beq _080D9E6A b _080DA100 _080D9E6A: bl sub_80DB89C ldr r4, =gStringVar4 ldr r1, =gUnknown_0827E817 adds r0, r4, 0 bl StringExpandPlaceholders adds r0, r4, 0 movs r1, 0x1 bl sub_80DEC30 ldr r1, =gTasks mov r4, r8 lsls r0, r4, 2 add r0, r8 lsls r0, 3 adds r0, r1 movs r1, 0x3B strh r1, [r0, 0x8] b _080DA100 .pool _080D9EA0: bl sub_80DED4C cmp r0, 0 beq _080D9EAA b _080DA100 _080D9EAA: bl sub_80DB89C ldr r0, =gTasks mov r5, r8 lsls r1, r5, 2 b _080D9F58 .pool _080D9EBC: mov r1, r9 ldr r0, [r1] ldr r1, [r0, 0x4] lsls r0, r6, 3 subs r0, r6 lsls r4, r0, 2 adds r2, r4, r1 ldrb r1, [r2, 0x15] movs r0, 0x10 ands r0, r1 cmp r0, 0 beq _080D9EDC movs r0, 0x11 negs r0, r0 ands r0, r1 strb r0, [r2, 0x15] _080D9EDC: adds r0, r6, 0 bl sub_80DC9B4 ldr r0, =gStringVar1 lsls r1, r6, 6 ldr r2, =gUnknown_02039E02 adds r1, r2 bl StringCopy ldr r0, =gStringVar2 mov r2, r9 ldr r1, [r2] ldr r1, [r1, 0x4] adds r1, r4, r1 ldrh r2, [r1, 0x6] movs r1, 0xD muls r1, r2 ldr r2, =gMoveNames adds r1, r2 bl StringCopy ldr r4, =gStringVar4 ldr r1, =gUnknown_0827E58A adds r0, r4, 0 bl StringExpandPlaceholders adds r0, r4, 0 movs r1, 0x1 bl sub_80DEC30 ldr r1, =gTasks mov r3, r8 lsls r0, r3, 2 add r0, r8 lsls r0, 3 adds r0, r1 movs r1, 0x22 strh r1, [r0, 0x8] b _080DA100 .pool _080D9F48: bl sub_80DED4C cmp r0, 0 beq _080D9F52 b _080DA100 _080D9F52: ldr r0, =gTasks mov r4, r8 lsls r1, r4, 2 _080D9F58: add r1, r8 lsls r1, 3 adds r1, r0 movs r0, 0x37 strh r0, [r1, 0x8] b _080DA100 .pool _080D9F68: bl sub_80DDBE8 ldr r0, =gTasks mov r5, r8 lsls r1, r5, 2 add r1, r8 lsls r1, 3 adds r1, r0 movs r0, 0x38 strh r0, [r1, 0x8] b _080DA100 .pool _080D9F84: mov r1, r9 ldr r0, [r1] ldr r2, [r0] ldrb r1, [r2, 0x6] movs r0, 0x40 ands r0, r1 lsls r0, 24 lsrs r1, r0, 24 cmp r1, 0 beq _080D9F9A b _080DA100 _080D9F9A: movs r0, 0x13 ldrsb r0, [r2, r0] cmp r0, 0x4 ble _080D9FA8 strb r1, [r2, 0x13] bl sub_80DD940 _080D9FA8: ldr r0, =gTasks mov r2, r8 lsls r1, r2, 2 add r1, r8 lsls r1, 3 adds r1, r0 movs r0, 0xA strh r0, [r1, 0x8] b _080DA100 .pool _080D9FC0: mov r3, r8 lsls r2, r3, 2 add r2, r8 lsls r2, 3 adds r2, r4 ldrb r5, [r2, 0xC] ldr r1, =gSprites lsls r0, r5, 4 adds r0, r5 lsls r0, 2 adds r1, 0x1C adds r0, r1 ldr r1, =sub_80DA164 str r1, [r0] movs r0, 0xB strh r0, [r2, 0x8] b _080DA100 .pool _080D9FEC: mov r5, r8 lsls r0, r5, 2 add r0, r8 lsls r0, 3 adds r4, r0, r4 ldrb r5, [r4, 0xC] ldr r1, =gSprites lsls r0, r5, 4 adds r0, r5 lsls r0, 2 adds r6, r0, r1 adds r0, r6, 0 adds r0, 0x3E ldrb r0, [r0] lsls r0, 29 cmp r0, 0 bge _080DA100 adds r0, r6, 0 bl FreeSpriteOamMatrix adds r0, r6, 0 bl DestroySprite movs r0, 0x14 strh r0, [r4, 0x8] b _080DA100 .pool _080DA024: mov r1, r8 lsls r0, r1, 2 add r0, r8 lsls r0, 3 adds r0, r4 movs r1, 0 strh r1, [r0, 0x1C] movs r1, 0x15 strh r1, [r0, 0x8] b _080DA100 _080DA038: bl sub_80DB89C ldr r0, =gStringVar1 lsls r1, r6, 6 ldr r2, =gUnknown_02039E02 adds r1, r2 bl StringCopy ldr r4, =gStringVar4 ldr r1, =gUnknown_0827D56F adds r0, r4, 0 bl StringExpandPlaceholders adds r0, r4, 0 movs r1, 0x1 bl sub_80DEC30 ldr r1, =gTasks mov r2, r8 lsls r0, r2, 2 add r0, r8 lsls r0, 3 adds r0, r1 movs r1, 0x20 strh r1, [r0, 0x8] b _080DA100 .pool _080DA080: bl sub_80DED4C cmp r0, 0 bne _080DA100 ldr r0, =gTasks mov r3, r8 lsls r1, r3, 2 add r1, r8 lsls r1, 3 adds r1, r0 movs r0, 0x15 strh r0, [r1, 0x8] b _080DA100 .pool _080DA0A0: mov r5, r8 lsls r0, r5, 2 add r0, r8 lsls r0, 3 adds r1, r0, r4 ldrh r0, [r1, 0x1C] adds r0, 0x1 strh r0, [r1, 0x1C] lsls r0, 16 asrs r0, 16 cmp r0, 0x1D ble _080DA100 movs r0, 0 strh r0, [r1, 0x1C] movs r0, 0x16 strh r0, [r1, 0x8] b _080DA100 _080DA0C2: mov r1, r9 ldr r0, [r1] ldr r1, [r0] ldrb r0, [r1, 0x10] adds r0, 0x1 movs r2, 0 strb r0, [r1, 0x10] lsls r0, 24 lsrs r0, 24 cmp r0, 0x4 bne _080DA0F4 mov r3, r8 lsls r0, r3, 2 add r0, r8 lsls r0, 3 adds r0, r4 strh r2, [r0, 0x8] strh r2, [r0, 0xA] strh r2, [r0, 0xC] ldr r1, =sub_80DA198 str r1, [r0] b _080DA100 .pool _080DA0F4: mov r5, r8 lsls r0, r5, 2 add r0, r8 lsls r0, 3 adds r0, r4 strh r2, [r0, 0x8] _080DA100: add sp, 0x8 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_80D8B38 thumb_func_start sub_80DA110 sub_80DA110: @ 80DA110 push {lr} lsls r0, 24 lsrs r0, 24 ldr r1, =gUnknown_02039F34 ldr r1, [r1] ldr r3, [r1] ldrb r2, [r3, 0x7] movs r1, 0x5 negs r1, r1 ands r1, r2 strb r1, [r3, 0x7] bl DestroyTask pop {r0} bx r0 .pool thumb_func_end sub_80DA110 thumb_func_start sub_80DA134 sub_80DA134: @ 80DA134 push {lr} adds r1, r0, 0 ldrh r0, [r1, 0x24] movs r3, 0x24 ldrsh r2, [r1, r3] cmp r2, 0 beq _080DA148 subs r0, 0x2 strh r0, [r1, 0x24] b _080DA15C _080DA148: ldrh r0, [r1, 0x2E] adds r0, 0x1 strh r0, [r1, 0x2E] lsls r0, 16 asrs r0, 16 cmp r0, 0x1F bne _080DA15C strh r2, [r1, 0x2E] ldr r0, =SpriteCallbackDummy str r0, [r1, 0x1C] _080DA15C: pop {r0} bx r0 .pool thumb_func_end sub_80DA134 thumb_func_start sub_80DA164 sub_80DA164: @ 80DA164 push {lr} adds r2, r0, 0 ldrh r0, [r2, 0x24] subs r0, 0x6 strh r0, [r2, 0x24] movs r1, 0x20 ldrsh r0, [r2, r1] movs r3, 0x24 ldrsh r1, [r2, r3] adds r0, r1 movs r1, 0x20 negs r1, r1 cmp r0, r1 bge _080DA18E ldr r0, =SpriteCallbackDummy str r0, [r2, 0x1C] adds r2, 0x3E ldrb r0, [r2] movs r1, 0x4 orrs r0, r1 strb r0, [r2] _080DA18E: pop {r0} bx r0 .pool thumb_func_end sub_80DA164 thumb_func_start sub_80DA198 sub_80DA198: @ 80DA198 push {r4-r6,lr} lsls r0, 24 lsrs r0, 24 ldr r2, =gTasks lsls r1, r0, 2 adds r1, r0 lsls r1, 3 adds r5, r1, r2 movs r1, 0x8 ldrsh r0, [r5, r1] cmp r0, 0x1 beq _080DA22E cmp r0, 0x1 bgt _080DA1C0 cmp r0, 0 beq _080DA1C6 b _080DA250 .pool _080DA1C0: cmp r0, 0x2 beq _080DA248 b _080DA250 _080DA1C6: ldr r0, =gUnknown_02039F2A ldrb r1, [r0] movs r6, 0x1 adds r0, r6, 0 ands r0, r1 cmp r0, 0 beq _080DA224 ldr r0, =gUnknown_02039F34 ldr r0, [r0] ldr r2, [r0] ldrb r0, [r2, 0x7] movs r1, 0x4 orrs r0, r1 strb r0, [r2, 0x7] bl sub_80DA8A4 lsls r0, 24 cmp r0, 0 beq _080DA1F4 bl sub_80DB944 bl sub_80DBA18 _080DA1F4: ldr r4, =sub_80FCC88 adds r0, r4, 0 movs r1, 0 bl CreateTask lsls r0, 24 lsrs r0, 24 ldr r2, =sub_80DA110 adds r1, r4, 0 bl SetTaskFuncWithFollowupFunc bl sub_80DBF68 strh r6, [r5, 0x8] b _080DA250 .pool _080DA224: bl sub_80DB944 bl sub_80DBA18 b _080DA23E _080DA22E: ldr r0, =gUnknown_02039F34 ldr r0, [r0] ldr r0, [r0] ldrb r1, [r0, 0x7] movs r0, 0x4 ands r0, r1 cmp r0, 0 bne _080DA250 _080DA23E: movs r0, 0x2 strh r0, [r5, 0x8] b _080DA250 .pool _080DA248: movs r0, 0 strh r0, [r5, 0x8] ldr r0, =sub_80DA25C str r0, [r5] _080DA250: pop {r4-r6} pop {r0} bx r0 .pool thumb_func_end sub_80DA198 thumb_func_start sub_80DA25C sub_80DA25C: @ 80DA25C push {r4,lr} adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 movs r0, 0 bl sub_80DE008 ldr r1, =gTasks lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r0, r1 movs r1, 0 strh r1, [r0, 0x8] strh r1, [r0, 0xA] ldr r1, =sub_80DA28C str r1, [r0] pop {r4} pop {r0} bx r0 .pool thumb_func_end sub_80DA25C thumb_func_start sub_80DA28C sub_80DA28C: @ 80DA28C push {r4,r5,lr} lsls r0, 24 lsrs r0, 24 ldr r2, =gTasks lsls r1, r0, 2 adds r1, r0 lsls r1, 3 adds r4, r1, r2 movs r0, 0x8 ldrsh r5, [r4, r0] cmp r5, 0x1 beq _080DA2D2 cmp r5, 0x1 bgt _080DA2B4 cmp r5, 0 beq _080DA2BA b _080DA312 .pool _080DA2B4: cmp r5, 0x2 beq _080DA304 b _080DA312 _080DA2BA: ldrh r0, [r4, 0xA] adds r0, 0x1 strh r0, [r4, 0xA] lsls r0, 16 asrs r0, 16 cmp r0, 0x14 ble _080DA312 movs r0, 0x2 bl sub_80DE69C strh r5, [r4, 0xA] b _080DA2F6 _080DA2D2: ldr r0, =gUnknown_02039F34 ldr r0, [r0] ldr r0, [r0] ldrb r1, [r0, 0x7] movs r0, 0x2 ands r0, r1 lsls r0, 24 lsrs r1, r0, 24 cmp r1, 0 bne _080DA312 ldrh r0, [r4, 0xA] adds r0, 0x1 strh r0, [r4, 0xA] lsls r0, 16 asrs r0, 16 cmp r0, 0x14 ble _080DA312 strh r1, [r4, 0xA] _080DA2F6: ldrh r0, [r4, 0x8] adds r0, 0x1 strh r0, [r4, 0x8] b _080DA312 .pool _080DA304: bl sub_80DC3AC movs r0, 0 strh r0, [r4, 0x8] strh r0, [r4, 0xA] ldr r0, =sub_80DA31C str r0, [r4] _080DA312: pop {r4,r5} pop {r0} bx r0 .pool thumb_func_end sub_80DA28C thumb_func_start sub_80DA31C sub_80DA31C: @ 80DA31C push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 bl sub_80DC3C4 lsls r0, 24 cmp r0, 0 beq _080DA33A ldr r0, =gTasks lsls r1, r4, 2 adds r1, r4 lsls r1, 3 adds r1, r0 ldr r0, =sub_80DA348 str r0, [r1] _080DA33A: pop {r4} pop {r0} bx r0 .pool thumb_func_end sub_80DA31C thumb_func_start sub_80DA348 sub_80DA348: @ 80DA348 lsls r0, 24 lsrs r0, 24 ldr r2, =0x0201a204 ldr r3, =gPlttBufferUnfaded ldr r1, =0x040000d4 str r2, [r1] str r3, [r1, 0x4] ldr r2, =0x84000100 str r2, [r1, 0x8] ldr r1, [r1, 0x8] ldr r2, =gTasks lsls r1, r0, 2 adds r1, r0 lsls r1, 3 adds r1, r2 movs r0, 0 strh r0, [r1, 0x8] movs r0, 0x2 strh r0, [r1, 0xA] ldr r0, =sub_80DA38C str r0, [r1] bx lr .pool thumb_func_end sub_80DA348 thumb_func_start sub_80DA38C sub_80DA38C: @ 80DA38C push {lr} lsls r0, 24 lsrs r0, 24 ldr r2, =gTasks lsls r1, r0, 2 adds r1, r0 lsls r1, 3 adds r1, r2 ldrh r0, [r1, 0x8] adds r0, 0x1 strh r0, [r1, 0x8] lsls r0, 16 asrs r0, 16 cmp r0, 0x2 ble _080DA3BE movs r0, 0 strh r0, [r1, 0x8] ldrh r0, [r1, 0xA] subs r0, 0x1 strh r0, [r1, 0xA] lsls r0, 16 cmp r0, 0 bne _080DA3BE ldr r0, =sub_80DA3CC str r0, [r1] _080DA3BE: pop {r0} bx r0 .pool thumb_func_end sub_80DA38C thumb_func_start sub_80DA3CC sub_80DA3CC: @ 80DA3CC push {r4-r6,lr} lsls r0, 24 lsrs r0, 24 ldr r2, =gTasks lsls r1, r0, 2 adds r1, r0 lsls r1, 3 adds r6, r1, r2 movs r1, 0x8 ldrsh r0, [r6, r1] cmp r0, 0 bne _080DA448 ldr r0, =gUnknown_02039F34 ldr r0, [r0] ldr r5, =gUnknown_02039F25 ldrb r1, [r5] ldr r2, [r0, 0x4] lsls r0, r1, 3 subs r0, r1 lsls r0, 2 adds r0, r2 ldrb r4, [r0, 0x1A] bl sub_80DB89C ldr r0, =gStringVar1 ldrb r1, [r5] lsls r1, 6 ldr r2, =gUnknown_02039E02 adds r1, r2 bl StringCopy ldr r5, =gStringVar4 ldr r0, =gUnknown_08587D90 lsls r4, 2 adds r4, r0 ldr r1, [r4] adds r0, r5, 0 bl StringExpandPlaceholders adds r0, r5, 0 movs r1, 0x1 bl sub_80DEC30 ldrh r0, [r6, 0x8] adds r0, 0x1 strh r0, [r6, 0x8] b _080DA45A .pool _080DA448: bl sub_80DED4C cmp r0, 0 bne _080DA45A strh r0, [r6, 0x8] ldr r0, =sub_80DA464 str r0, [r6] bl sub_80DCD48 _080DA45A: pop {r4-r6} pop {r0} bx r0 .pool thumb_func_end sub_80DA3CC thumb_func_start sub_80DA464 sub_80DA464: @ 80DA464 push {r4,lr} lsls r0, 24 lsrs r0, 24 ldr r2, =gTasks lsls r1, r0, 2 adds r1, r0 lsls r1, 3 adds r4, r1, r2 ldrh r0, [r4, 0x8] adds r1, r0, 0x1 strh r1, [r4, 0x8] lsls r0, 16 asrs r0, 16 cmp r0, 0x1D ble _080DA48E movs r0, 0 strh r0, [r4, 0x8] bl sub_80DC3AC ldr r0, =sub_80DA49C str r0, [r4] _080DA48E: pop {r4} pop {r0} bx r0 .pool thumb_func_end sub_80DA464 thumb_func_start sub_80DA49C sub_80DA49C: @ 80DA49C push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 bl sub_80DC3C4 lsls r0, 24 cmp r0, 0 beq _080DA4BE ldr r1, =gTasks lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r0, r1 movs r1, 0 strh r1, [r0, 0x8] ldr r1, =sub_80DA4CC str r1, [r0] _080DA4BE: pop {r4} pop {r0} bx r0 .pool thumb_func_end sub_80DA49C thumb_func_start sub_80DA4CC sub_80DA4CC: @ 80DA4CC push {r4,lr} adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 bl sub_80DE224 ldr r1, =gTasks lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r0, r1 ldr r1, =sub_80DE424 str r1, [r0] pop {r4} pop {r0} bx r0 .pool thumb_func_end sub_80DA4CC thumb_func_start sub_80DA4F4 sub_80DA4F4: @ 80DA4F4 push {r4,lr} adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 bl sub_80DE350 ldr r1, =gTasks lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r0, r1 ldr r1, =sub_80DA51C str r1, [r0] pop {r4} pop {r0} bx r0 .pool thumb_func_end sub_80DA4F4 thumb_func_start sub_80DA51C sub_80DA51C: @ 80DA51C push {r4,r5,lr} sub sp, 0x4 lsls r0, 24 lsrs r5, r0, 24 movs r0, 0x8 bl GetGpuReg mov r1, sp strh r0, [r1] movs r0, 0xC bl GetGpuReg mov r4, sp adds r4, 0x2 strh r0, [r4] mov r3, sp ldrb r2, [r3] movs r1, 0x4 negs r1, r1 adds r0, r1, 0 ands r0, r2 strb r0, [r3] ldrb r0, [r4] ands r1, r0 strb r1, [r4] mov r0, sp ldrh r1, [r0] movs r0, 0x8 bl SetGpuReg ldrh r1, [r4] movs r0, 0xC bl SetGpuReg ldr r2, =gUnknown_02039F34 ldr r0, [r2] ldr r1, [r0] ldrb r0, [r1, 0x1] adds r0, 0x1 strb r0, [r1, 0x1] ldr r0, [r2] ldr r0, [r0] ldrb r0, [r0, 0x1] cmp r0, 0x5 bne _080DA590 ldr r0, =gTasks lsls r1, r5, 2 adds r1, r5 lsls r1, 3 adds r1, r0 ldr r0, =sub_80DA5E8 b _080DA5A0 .pool _080DA590: bl sub_80DDB0C ldr r0, =gTasks lsls r1, r5, 2 adds r1, r5 lsls r1, 3 adds r1, r0 ldr r0, =sub_80DA5B4 _080DA5A0: str r0, [r1] add sp, 0x4 pop {r4,r5} pop {r0} bx r0 .pool thumb_func_end sub_80DA51C thumb_func_start sub_80DA5B4 sub_80DA5B4: @ 80DA5B4 push {lr} lsls r0, 24 lsrs r2, r0, 24 ldr r0, =gUnknown_02039F34 ldr r0, [r0] ldr r0, [r0] ldrb r1, [r0, 0x6] movs r0, 0x40 ands r0, r1 cmp r0, 0 bne _080DA5D8 ldr r0, =gTasks lsls r1, r2, 2 adds r1, r2 lsls r1, 3 adds r1, r0 ldr r0, =sub_80D833C str r0, [r1] _080DA5D8: pop {r0} bx r0 .pool thumb_func_end sub_80DA5B4 thumb_func_start sub_80DA5E8 sub_80DA5E8: @ 80DA5E8 push {r4,r5,lr} lsls r0, 24 lsrs r5, r0, 24 ldr r0, =gUnknown_02022E16 movs r1, 0 strh r1, [r0] ldr r0, =gUnknown_02022E1E strh r1, [r0] ldr r4, =gUnknown_02039F34 movs r3, 0 ldr r2, =gUnknown_02039F10 movs r1, 0x3 _080DA600: ldr r0, [r4] ldr r0, [r0, 0x4] adds r0, r3, r0 ldrh r0, [r0, 0x4] strh r0, [r2] adds r3, 0x1C adds r2, 0x2 subs r1, 0x1 cmp r1, 0 bge _080DA600 bl sub_80DBD18 bl sub_80DB89C ldr r0, =gUnknown_02039F2A ldrb r1, [r0] movs r0, 0x1 ands r0, r1 cmp r0, 0 bne _080DA65C ldr r0, =gUnknown_02039F34 ldr r2, [r0] ldr r0, =gUnknown_02039F25 ldrb r1, [r0] ldr r2, [r2, 0x4] lsls r0, r1, 3 subs r0, r1 lsls r0, 2 adds r0, r2 ldrh r0, [r0, 0x8] bl sub_80ED03C b _080DA668 .pool _080DA65C: bl sub_80DF250 bl sub_80DF4F8 bl sub_80DF750 _080DA668: ldr r1, =gUnknown_030060B8 ldr r0, =gRngValue ldr r0, [r0] str r0, [r1] ldr r4, =gStringVar4 ldr r1, =gUnknown_0827D597 adds r0, r4, 0 bl StringExpandPlaceholders adds r0, r4, 0 movs r1, 0x1 bl sub_80DEC30 ldr r1, =gTasks lsls r0, r5, 2 adds r0, r5 lsls r0, 3 adds r0, r1 movs r1, 0 strh r1, [r0, 0xC] ldr r1, =sub_80DA6B4 str r1, [r0] pop {r4,r5} pop {r0} bx r0 .pool thumb_func_end sub_80DA5E8 thumb_func_start sub_80DA6B4 sub_80DA6B4: @ 80DA6B4 push {r4,r5,lr} lsls r0, 24 lsrs r5, r0, 24 bl sub_80DED4C adds r4, r0, 0 cmp r4, 0 bne _080DA6EA bl sub_80DE224 ldr r0, =gUnknown_02022E18 strh r4, [r0] ldr r1, =gUnknown_02022E1A movs r0, 0xA0 strh r0, [r1] movs r0, 0x62 movs r1, 0 bl PlaySE12WithPanning ldr r1, =gTasks lsls r0, r5, 2 adds r0, r5 lsls r0, 3 adds r0, r1 strh r4, [r0, 0x8] ldr r1, =sub_80DA700 str r1, [r0] _080DA6EA: pop {r4,r5} pop {r0} bx r0 .pool thumb_func_end sub_80DA6B4 thumb_func_start sub_80DA700 sub_80DA700: @ 80DA700 push {lr} lsls r0, 24 lsrs r3, r0, 24 ldr r1, =gUnknown_02022E1A ldrh r0, [r1] subs r0, 0x7 strh r0, [r1] lsls r0, 16 cmp r0, 0 bge _080DA718 movs r0, 0 strh r0, [r1] _080DA718: ldrh r2, [r1] cmp r2, 0 bne _080DA72E ldr r0, =gTasks lsls r1, r3, 2 adds r1, r3 lsls r1, 3 adds r1, r0 ldr r0, =sub_80DA740 str r0, [r1] strh r2, [r1, 0x8] _080DA72E: pop {r0} bx r0 .pool thumb_func_end sub_80DA700 thumb_func_start sub_80DA740 sub_80DA740: @ 80DA740 push {r4,lr} sub sp, 0x4 lsls r0, 24 lsrs r0, 24 ldr r2, =gTasks lsls r1, r0, 2 adds r1, r0 lsls r1, 3 adds r4, r1, r2 ldrh r0, [r4, 0x8] adds r1, r0, 0x1 strh r1, [r4, 0x8] lsls r0, 16 asrs r0, 16 cmp r0, 0x31 ble _080DA794 movs r0, 0 strh r0, [r4, 0x8] ldr r0, =gUnknown_02039F2A ldrb r0, [r0] movs r1, 0x1 ands r1, r0 cmp r1, 0 beq _080DA780 ldr r0, =sub_80DA7A0 b _080DA792 .pool _080DA780: movs r0, 0x1 negs r0, r0 str r1, [sp] movs r1, 0 movs r2, 0 movs r3, 0x10 bl BeginNormalPaletteFade ldr r0, =sub_80DA830 _080DA792: str r0, [r4] _080DA794: add sp, 0x4 pop {r4} pop {r0} bx r0 .pool thumb_func_end sub_80DA740 thumb_func_start sub_80DA7A0 sub_80DA7A0: @ 80DA7A0 push {r4,r5,lr} adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 ldr r5, =sub_80FCACC adds r0, r5, 0 movs r1, 0 bl CreateTask lsls r0, 24 lsrs r0, 24 ldr r2, =sub_80DA7EC adds r1, r5, 0 bl SetTaskFuncWithFollowupFunc ldr r1, =gTasks lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r0, r1 ldr r1, =TaskDummy1 str r1, [r0] bl sub_80DBF68 movs r0, 0 bl sub_80DC490 pop {r4,r5} pop {r0} bx r0 .pool thumb_func_end sub_80DA7A0 thumb_func_start sub_80DA7EC sub_80DA7EC: @ 80DA7EC push {lr} sub sp, 0x4 lsls r0, 24 lsrs r0, 24 bl DestroyTask movs r0, 0x1 negs r0, r0 movs r1, 0 str r1, [sp] movs r2, 0 movs r3, 0x10 bl BeginNormalPaletteFade ldr r2, =gTasks ldr r0, =gUnknown_02039F34 ldr r0, [r0] ldr r0, [r0] ldrb r1, [r0, 0x8] lsls r0, r1, 2 adds r0, r1 lsls r0, 3 adds r0, r2 ldr r1, =sub_80DA830 str r1, [r0] add sp, 0x4 pop {r0} bx r0 .pool thumb_func_end sub_80DA7EC thumb_func_start sub_80DA830 sub_80DA830: @ 80DA830 push {lr} lsls r0, 24 lsrs r2, r0, 24 ldr r0, =gPaletteFade ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 bne _080DA860 adds r0, r2, 0 bl DestroyTask ldr r0, =gUnknown_03005DAC ldr r1, =sub_80DA874 str r1, [r0] bl FreeAllWindowBuffers bl sub_80D7A5C bl sub_805F094 ldr r0, =c2_exit_to_overworld_2_switch bl SetMainCallback2 _080DA860: pop {r0} bx r0 .pool thumb_func_end sub_80DA830 thumb_func_start sub_80DA874 sub_80DA874: @ 80DA874 push {lr} bl script_env_2_disable bl script_env_2_enable_and_set_ctx_running pop {r0} bx r0 thumb_func_end sub_80DA874 thumb_func_start sub_80DA884 sub_80DA884: @ 80DA884 push {lr} ldr r0, =gUnknown_02039F2A ldrb r1, [r0] movs r0, 0x1 ands r0, r1 cmp r0, 0 bne _080DA898 ldr r1, =gUnknown_02039F25 movs r0, 0x3 strb r0, [r1] _080DA898: pop {r0} bx r0 .pool thumb_func_end sub_80DA884 thumb_func_start sub_80DA8A4 sub_80DA8A4: @ 80DA8A4 push {lr} ldr r0, =gUnknown_02039F25 ldr r1, =gUnknown_02039F2B ldrb r0, [r0] ldrb r1, [r1] cmp r0, r1 beq _080DA8C0 movs r0, 0 b _080DA8C2 .pool _080DA8C0: movs r0, 0x1 _080DA8C2: pop {r1} bx r1 thumb_func_end sub_80DA8A4 thumb_func_start sub_80DA8C8 sub_80DA8C8: @ 80DA8C8 push {r4-r7,lr} mov r7, r8 push {r7} sub sp, 0x14 lsls r0, 24 lsrs r0, 24 mov r8, r0 ldr r6, =gSaveBlock2Ptr ldr r1, [r6] mov r0, sp bl StringCopy ldr r0, =gUnknown_02039F2A ldrb r1, [r0] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _080DA8F2 mov r0, sp bl sub_80DF9D4 _080DA8F2: ldr r5, =gUnknown_02039F25 ldrb r0, [r5] lsls r0, 6 ldr r4, =gUnknown_02039E0D adds r0, r4 mov r1, sp movs r2, 0x8 bl memcpy ldr r0, [r6] ldrb r0, [r0, 0x8] cmp r0, 0 bne _080DA928 ldrb r0, [r5] lsls r0, 6 adds r0, r4, r0 movs r1, 0xD8 b _080DA930 .pool _080DA928: ldrb r0, [r5] lsls r0, 6 adds r0, r4, r0 movs r1, 0xD9 _080DA930: strb r1, [r0, 0x8] ldr r7, =gUnknown_02039E00 ldr r6, =gUnknown_02039F25 ldrb r0, [r6] lsls r0, 6 adds r1, r7, 0 adds r1, 0x18 adds r0, r1 movs r1, 0 str r1, [r0] ldrb r0, [r6] lsls r0, 6 adds r0, r7 adds r0, 0x2C strb r1, [r0] movs r0, 0x64 mov r1, r8 muls r1, r0 ldr r0, =gPlayerParty adds r5, r1, r0 adds r0, r5, 0 movs r1, 0xB bl GetMonData ldrb r1, [r6] lsls r1, 6 adds r1, r7 strh r0, [r1] adds r0, r5, 0 movs r1, 0x2 mov r2, sp bl GetMonData mov r0, sp bl StringGetEnd10 ldr r0, =gUnknown_02039F2A ldrb r1, [r0] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _080DA994 adds r0, r5, 0 movs r1, 0x3 bl GetMonData adds r1, r0, 0 mov r0, sp bl sub_80DF9E0 _080DA994: ldrb r0, [r6] lsls r0, 6 adds r4, r7, 0x2 adds r0, r4 mov r1, sp movs r2, 0xB bl memcpy ldrb r0, [r6] lsls r0, 6 adds r0, r4 mov r1, sp bl StringCopy adds r0, r5, 0 movs r1, 0x16 bl GetMonData ldrb r1, [r6] lsls r1, 6 adds r1, r7 adds r1, 0x26 strb r0, [r1] adds r0, r5, 0 movs r1, 0x17 bl GetMonData ldrb r1, [r6] lsls r1, 6 adds r1, r7 adds r1, 0x27 strb r0, [r1] adds r0, r5, 0 movs r1, 0x18 bl GetMonData ldrb r1, [r6] lsls r1, 6 adds r1, r7 adds r1, 0x28 strb r0, [r1] adds r0, r5, 0 movs r1, 0x21 bl GetMonData ldrb r1, [r6] lsls r1, 6 adds r1, r7 adds r1, 0x29 strb r0, [r1] adds r0, r5, 0 movs r1, 0x2F bl GetMonData ldrb r1, [r6] lsls r1, 6 adds r1, r7 adds r1, 0x2A strb r0, [r1] adds r0, r5, 0 movs r1, 0x30 bl GetMonData ldrb r1, [r6] lsls r1, 6 adds r1, r7 adds r1, 0x2B strb r0, [r1] adds r0, r5, 0 movs r1, 0xD bl GetMonData ldrb r1, [r6] lsls r1, 6 adds r1, r7 strh r0, [r1, 0x1E] adds r0, r5, 0 movs r1, 0xE bl GetMonData ldrb r1, [r6] lsls r1, 6 adds r1, r7 strh r0, [r1, 0x20] adds r0, r5, 0 movs r1, 0xF bl GetMonData ldrb r1, [r6] lsls r1, 6 adds r1, r7 strh r0, [r1, 0x22] adds r0, r5, 0 movs r1, 0x10 bl GetMonData ldrb r1, [r6] lsls r1, 6 adds r1, r7 strh r0, [r1, 0x24] adds r0, r5, 0 movs r1, 0 bl GetMonData ldrb r1, [r6] lsls r1, 6 adds r2, r7, 0 adds r2, 0x38 adds r1, r2 str r0, [r1] adds r0, r5, 0 movs r1, 0x1 bl GetMonData ldrb r1, [r6] lsls r1, 6 adds r2, r7, 0 adds r2, 0x3C adds r1, r2 str r0, [r1] adds r0, r5, 0 movs r1, 0xC bl GetMonData lsls r0, 16 lsrs r2, r0, 16 ldrb r0, [r6] lsls r0, 6 adds r1, r0, r7 adds r0, r1, 0 adds r0, 0x26 ldrb r3, [r0] adds r0, 0x1 ldrb r5, [r0] adds r0, 0x1 ldrb r6, [r0] adds r0, 0x1 ldrb r7, [r0] adds r0, 0x1 ldrb r4, [r0] cmp r2, 0xFE bne _080DAAC4 adds r3, 0x14 b _080DAB12 .pool _080DAAC4: cmp r2, 0xFF bne _080DAAD4 lsls r0, r5, 16 movs r1, 0xA0 lsls r1, 13 adds r0, r1 lsrs r5, r0, 16 b _080DAB12 _080DAAD4: movs r0, 0x80 lsls r0, 1 cmp r2, r0 bne _080DAAE8 lsls r0, r6, 16 movs r1, 0xA0 lsls r1, 13 adds r0, r1 lsrs r6, r0, 16 b _080DAB12 _080DAAE8: ldr r0, =0x00000101 cmp r2, r0 bne _080DAB00 lsls r0, r7, 16 movs r1, 0xA0 lsls r1, 13 adds r0, r1 lsrs r7, r0, 16 b _080DAB12 .pool _080DAB00: movs r0, 0x81 lsls r0, 1 cmp r2, r0 bne _080DAB12 lsls r0, r4, 16 movs r1, 0xA0 lsls r1, 13 adds r0, r1 lsrs r4, r0, 16 _080DAB12: cmp r3, 0xFF ble _080DAB18 movs r3, 0xFF _080DAB18: lsls r0, r5, 16 asrs r0, 16 cmp r0, 0xFF ble _080DAB22 movs r5, 0xFF _080DAB22: lsls r0, r6, 16 asrs r0, 16 cmp r0, 0xFF ble _080DAB2C movs r6, 0xFF _080DAB2C: lsls r0, r7, 16 asrs r0, 16 cmp r0, 0xFF ble _080DAB36 movs r7, 0xFF _080DAB36: lsls r0, r4, 16 asrs r0, 16 cmp r0, 0xFF ble _080DAB40 movs r4, 0xFF _080DAB40: ldr r2, =gUnknown_02039E00 ldr r1, =gUnknown_02039F25 ldrb r0, [r1] lsls r0, 6 adds r0, r2 adds r0, 0x26 strb r3, [r0] ldrb r0, [r1] lsls r0, 6 adds r0, r2 adds r0, 0x27 strb r5, [r0] ldrb r0, [r1] lsls r0, 6 adds r0, r2 adds r0, 0x28 strb r6, [r0] ldrb r0, [r1] lsls r0, 6 adds r0, r2 adds r0, 0x29 strb r7, [r0] ldrb r0, [r1] lsls r0, 6 adds r0, r2 adds r0, 0x2A strb r4, [r0] add sp, 0x14 pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_80DA8C8 thumb_func_start sub_80DAB8C sub_80DAB8C: @ 80DAB8C push {r4-r7,lr} mov r7, r8 push {r7} sub sp, 0x64 lsls r0, 24 lsrs r4, r0, 24 lsls r1, 24 lsrs r1, 24 mov r8, r1 movs r6, 0 movs r7, 0 bl sub_80DA884 ldr r0, =0x00000864 bl FlagGet lsls r0, 24 cmp r0, 0 beq _080DABC0 ldr r0, =gUnknown_02039F2A ldrb r1, [r0] movs r0, 0x1 ands r0, r1 cmp r0, 0 bne _080DABC0 movs r7, 0x1 _080DABC0: movs r5, 0 ldr r2, =gUnknown_085880A4 ldr r3, =gUnknown_085898A4 _080DABC6: ldrb r0, [r2, 0x1C] lsls r0, 30 lsrs r0, 30 cmp r8, r0 bne _080DAC3A cmp r7, 0x1 bne _080DABEC ldrb r0, [r3] cmp r0, 0x1 beq _080DAC3A b _080DABF2 .pool _080DABEC: ldrb r0, [r3] cmp r0, 0x2 beq _080DAC3A _080DABF2: cmp r4, 0 bne _080DABFE ldrb r0, [r2, 0x1C] lsls r0, 29 cmp r0, 0 blt _080DAC2E _080DABFE: cmp r4, 0x1 bne _080DAC0A ldrb r0, [r2, 0x1C] lsls r0, 28 cmp r0, 0 blt _080DAC2E _080DAC0A: cmp r4, 0x2 bne _080DAC16 ldrb r0, [r2, 0x1C] lsls r0, 27 cmp r0, 0 blt _080DAC2E _080DAC16: cmp r4, 0x3 bne _080DAC22 ldrb r0, [r2, 0x1C] lsls r0, 26 cmp r0, 0 blt _080DAC2E _080DAC22: cmp r4, 0x4 bne _080DAC3A ldrb r0, [r2, 0x1C] lsls r0, 25 cmp r0, 0 bge _080DAC3A _080DAC2E: adds r0, r6, 0 adds r1, r0, 0x1 lsls r1, 24 lsrs r6, r1, 24 add r0, sp strb r5, [r0] _080DAC3A: adds r2, 0x40 adds r3, 0x1 adds r5, 0x1 cmp r5, 0x5F bls _080DABC6 mov r0, sp adds r1, r0, r6 movs r0, 0xFF strb r0, [r1] movs r5, 0 ldr r7, =gUnknown_085880A4 _080DAC50: bl Random lsls r0, 16 lsrs r0, 16 adds r1, r6, 0 bl __modsi3 lsls r0, 16 lsrs r0, 16 ldr r1, =gUnknown_02039E00 lsls r2, r5, 6 adds r2, r1 mov r1, sp adds r4, r1, r0 ldrb r1, [r4] lsls r1, 6 adds r1, r7 adds r0, r2, 0 movs r2, 0x40 bl memcpy ldrb r0, [r4] adds r2, r5, 0x1 subs r1, r6, 0x1 cmp r0, 0xFF beq _080DAC92 adds r3, r4, 0 _080DAC86: ldrb r0, [r3, 0x1] strb r0, [r3] adds r3, 0x1 ldrb r0, [r3] cmp r0, 0xFF bne _080DAC86 _080DAC92: lsls r0, r1, 24 lsrs r6, r0, 24 adds r5, r2, 0 cmp r5, 0x2 ble _080DAC50 ldr r0, =gUnknown_02039F24 ldrb r0, [r0] bl sub_80DA8C8 add sp, 0x64 pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_80DAB8C thumb_func_start sub_80DACBC sub_80DACBC: @ 80DACBC push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} sub sp, 0x64 mov r8, r2 lsls r0, 24 lsrs r4, r0, 24 lsls r1, 24 lsrs r2, r1, 24 movs r7, 0 ldr r0, =gUnknown_02039F30 ldrb r1, [r0] mov r9, r0 cmp r1, 0x4 bne _080DACDE b _080DADF6 _080DACDE: movs r5, 0 ldr r3, =gUnknown_085880A4 ldr r6, =gUnknown_085898A4 _080DACE4: ldrb r0, [r3, 0x1C] lsls r0, 30 lsrs r0, 30 cmp r2, r0 bne _080DAD56 mov r0, r8 cmp r0, 0x1 bne _080DAD08 ldrb r0, [r6] cmp r0, 0x1 beq _080DAD56 b _080DAD0E .pool _080DAD08: ldrb r0, [r6] cmp r0, 0x2 beq _080DAD56 _080DAD0E: cmp r4, 0 bne _080DAD1A ldrb r0, [r3, 0x1C] lsls r0, 29 cmp r0, 0 blt _080DAD4A _080DAD1A: cmp r4, 0x1 bne _080DAD26 ldrb r0, [r3, 0x1C] lsls r0, 28 cmp r0, 0 blt _080DAD4A _080DAD26: cmp r4, 0x2 bne _080DAD32 ldrb r0, [r3, 0x1C] lsls r0, 27 cmp r0, 0 blt _080DAD4A _080DAD32: cmp r4, 0x3 bne _080DAD3E ldrb r0, [r3, 0x1C] lsls r0, 26 cmp r0, 0 blt _080DAD4A _080DAD3E: cmp r4, 0x4 bne _080DAD56 ldrb r0, [r3, 0x1C] lsls r0, 25 cmp r0, 0 bge _080DAD56 _080DAD4A: adds r0, r7, 0 adds r1, r0, 0x1 lsls r1, 24 lsrs r7, r1, 24 add r0, sp strb r5, [r0] _080DAD56: adds r3, 0x40 adds r6, 0x1 adds r5, 0x1 cmp r5, 0x5F bls _080DACE4 mov r3, sp adds r1, r3, r7 movs r0, 0xFF strb r0, [r1] movs r5, 0 mov r0, r9 ldrb r1, [r0] movs r0, 0x4 subs r0, r1 cmp r5, r0 bge _080DADF6 ldr r3, =gUnknown_02039E00 mov r8, r3 mov r6, r9 movs r0, 0x2 add r0, r8 mov r9, r0 _080DAD82: bl sub_80F903C lsls r0, 16 lsrs r0, 16 adds r1, r7, 0 bl __modsi3 adds r1, r0, 0 lsls r1, 16 lsrs r1, 16 ldrb r0, [r6] adds r0, r5 lsls r0, 6 add r0, r8 ldr r2, =gUnknown_085880A4 mov r3, sp adds r4, r3, r1 ldrb r1, [r4] lsls r1, 6 adds r1, r2 movs r2, 0x40 bl memcpy ldrb r0, [r6] adds r0, r5 lsls r0, 6 mov r1, r8 adds r1, 0xD adds r0, r1 bl sub_80DF9D4 ldrb r0, [r6] adds r0, r5 lsls r0, 6 add r0, r9 movs r1, 0x2 bl sub_80DF9E0 ldrb r0, [r4] adds r3, r5, 0x1 subs r1, r7, 0x1 cmp r0, 0xFF beq _080DADE6 adds r2, r4, 0 _080DADDA: ldrb r0, [r2, 0x1] strb r0, [r2] adds r2, 0x1 ldrb r0, [r2] cmp r0, 0xFF bne _080DADDA _080DADE6: lsls r0, r1, 24 lsrs r7, r0, 24 adds r5, r3, 0 ldrb r1, [r6] movs r0, 0x4 subs r0, r1 cmp r5, r0 blt _080DAD82 _080DADF6: add sp, 0x64 pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_80DACBC thumb_func_start sub_80DAE0C sub_80DAE0C: @ 80DAE0C push {r4,lr} adds r4, r0, 0 movs r1, 0x2D bl GetMonData cmp r0, 0 beq _080DAE1E movs r0, 0x3 b _080DAE9A _080DAE1E: adds r0, r4, 0 movs r1, 0x39 bl GetMonData cmp r0, 0 bne _080DAE2E movs r0, 0x4 b _080DAE9A _080DAE2E: ldr r0, =gUnknown_02039F2C ldrh r0, [r0] cmp r0, 0x4 bhi _080DAE82 lsls r0, 2 ldr r1, =_080DAE48 adds r0, r1 ldr r0, [r0] mov pc, r0 .pool .align 2, 0 _080DAE48: .4byte _080DAE5C .4byte _080DAE62 .4byte _080DAE68 .4byte _080DAE6E .4byte _080DAE74 _080DAE5C: adds r0, r4, 0 movs r1, 0x32 b _080DAE78 _080DAE62: adds r0, r4, 0 movs r1, 0x33 b _080DAE78 _080DAE68: adds r0, r4, 0 movs r1, 0x34 b _080DAE78 _080DAE6E: adds r0, r4, 0 movs r1, 0x35 b _080DAE78 _080DAE74: adds r0, r4, 0 movs r1, 0x36 _080DAE78: bl GetMonData lsls r0, 24 lsrs r1, r0, 24 b _080DAE86 _080DAE82: movs r0, 0 b _080DAE9A _080DAE86: ldr r0, =gUnknown_02039F2E adds r2, r1, 0 ldrh r1, [r0] movs r0, 0x2 cmp r2, r1 bhi _080DAE9A movs r0, 0 cmp r2, r1 bcc _080DAE9A movs r0, 0x1 _080DAE9A: pop {r4} pop {r1} bx r1 .pool thumb_func_end sub_80DAE0C thumb_func_start sub_80DAEA4 sub_80DAEA4: @ 80DAEA4 push {r4,r5,lr} movs r5, 0 _080DAEA8: ldr r0, =gUnknown_02039F26 adds r0, r5, r0 ldrb r0, [r0] movs r1, 0 bl FillWindowPixelBuffer lsls r4, r5, 24 lsrs r4, 24 adds r0, r4, 0 bl sub_80DAF04 adds r0, r4, 0 bl sub_80DAF88 adds r5, 0x1 cmp r5, 0x3 ble _080DAEA8 pop {r4,r5} pop {r0} bx r0 .pool thumb_func_end sub_80DAEA4 thumb_func_start sub_80DAED4 sub_80DAED4: @ 80DAED4 push {r4,r5,lr} adds r5, r0, 0 lsls r4, r1, 24 lsrs r4, 24 ldr r0, =gUnknown_02022E2C ldr r1, =gUnknown_085ED1AB bl StringCopy adds r1, r0, 0 subs r0, r1, 0x1 strb r4, [r0] adds r0, r1, 0 adds r1, r5, 0 bl StringCopy adds r1, r0, 0 pop {r4,r5} pop {r1} bx r1 .pool thumb_func_end sub_80DAED4 thumb_func_start sub_80DAF04 sub_80DAF04: @ 80DAF04 push {lr} adds r1, r0, 0 lsls r1, 24 lsrs r0, r1, 24 movs r2, 0xA0 lsls r2, 20 adds r1, r2 lsrs r1, 24 bl sub_80DAF1C pop {r0} bx r0 thumb_func_end sub_80DAF04 thumb_func_start sub_80DAF1C sub_80DAF1C: @ 80DAF1C push {r4,r5,lr} sub sp, 0x24 adds r4, r1, 0 lsls r0, 24 lsrs r0, 24 adds r5, r0, 0 lsls r4, 24 lsrs r4, 24 ldr r1, =gUnknown_085E8D3E add r0, sp, 0x4 bl StringCopy lsls r1, r5, 6 ldr r0, =gUnknown_02039E0D adds r1, r0 add r0, sp, 0x4 bl StringAppend add r0, sp, 0x4 adds r1, r4, 0 bl sub_80DAED4 ldr r4, =gUnknown_02022E2C movs r0, 0x7 adds r1, r4, 0 movs r2, 0x60 bl GetStringRightAlignXOffset adds r2, r0, 0 cmp r2, 0x37 ble _080DAF5C movs r2, 0x37 _080DAF5C: ldr r0, =gUnknown_02039F26 adds r0, r5, r0 ldrb r0, [r0] movs r1, 0x7 str r1, [sp] adds r1, r4, 0 movs r3, 0x1 bl sub_80DEBD0 add sp, 0x24 pop {r4,r5} pop {r0} bx r0 .pool thumb_func_end sub_80DAF1C thumb_func_start sub_80DAF88 sub_80DAF88: @ 80DAF88 push {lr} adds r1, r0, 0 lsls r1, 24 lsrs r0, r1, 24 movs r2, 0xA0 lsls r2, 20 adds r1, r2 lsrs r1, 24 bl sub_80DAFA0 pop {r0} bx r0 thumb_func_end sub_80DAF88 thumb_func_start sub_80DAFA0 sub_80DAFA0: @ 80DAFA0 push {r4,lr} sub sp, 0x4 adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 lsls r1, 24 lsrs r1, 24 lsls r0, r4, 6 ldr r2, =gUnknown_02039E02 adds r0, r2 bl sub_80DAED4 ldr r0, =gUnknown_02039F26 adds r4, r0 ldrb r0, [r4] ldr r1, =gUnknown_02022E2C movs r2, 0x7 str r2, [sp] movs r2, 0x5 movs r3, 0x1 bl sub_80DEBD0 add sp, 0x4 pop {r4} pop {r0} bx r0 .pool thumb_func_end sub_80DAFA0 thumb_func_start sub_80DAFE0 sub_80DAFE0: @ 80DAFE0 push {r4,r5,lr} lsls r0, 24 lsrs r2, r0, 24 lsls r1, 24 lsrs r0, r1, 24 cmp r0, 0x4 bhi _080DB06C lsls r0, 2 ldr r1, =_080DAFFC adds r0, r1 ldr r0, [r0] mov pc, r0 .pool .align 2, 0 _080DAFFC: .4byte _080DB010 .4byte _080DB028 .4byte _080DB040 .4byte _080DB050 .4byte _080DB06C _080DB010: ldr r0, =gUnknown_02039E00 lsls r2, 6 adds r1, r2, r0 adds r3, r1, 0 adds r3, 0x26 ldrb r5, [r3] adds r3, 0x4 ldrb r4, [r3] adds r1, 0x27 b _080DB07E .pool _080DB028: ldr r0, =gUnknown_02039E00 lsls r2, 6 adds r1, r2, r0 adds r3, r1, 0 adds r3, 0x27 ldrb r5, [r3] subs r3, 0x1 ldrb r4, [r3] adds r1, 0x28 b _080DB07E .pool _080DB040: ldr r1, =gUnknown_02039E00 lsls r2, 6 adds r3, r2, r1 adds r0, r3, 0 adds r0, 0x28 b _080DB05A .pool _080DB050: ldr r1, =gUnknown_02039E00 lsls r2, 6 adds r3, r2, r1 adds r0, r3, 0 adds r0, 0x29 _080DB05A: ldrb r5, [r0] subs r0, 0x1 ldrb r4, [r0] adds r0, 0x2 ldrb r3, [r0] adds r0, r1, 0 b _080DB080 .pool _080DB06C: ldr r0, =gUnknown_02039E00 lsls r2, 6 adds r1, r2, r0 adds r3, r1, 0 adds r3, 0x2A ldrb r5, [r3] subs r3, 0x1 ldrb r4, [r3] adds r1, 0x26 _080DB07E: ldrb r3, [r1] _080DB080: adds r1, r2, r0 adds r1, 0x2B adds r0, r4, r3 ldrb r1, [r1] adds r0, r1 asrs r0, 1 adds r0, r5, r0 lsls r0, 16 lsrs r0, 16 pop {r4,r5} pop {r1} bx r1 .pool thumb_func_end sub_80DAFE0 thumb_func_start sub_80DB09C sub_80DB09C: @ 80DB09C push {r4-r6,lr} lsls r0, 24 lsrs r6, r0, 24 movs r4, 0 ldr r5, =gUnknown_02039F00 _080DB0A6: lsls r0, r4, 24 lsrs r0, 24 adds r1, r6, 0 bl sub_80DAFE0 strh r0, [r5] adds r5, 0x2 adds r4, 0x1 cmp r4, 0x3 ble _080DB0A6 pop {r4-r6} pop {r0} bx r0 .pool thumb_func_end sub_80DB09C thumb_func_start sub_80DB0C4 sub_80DB0C4: @ 80DB0C4 push {r4,r5,lr} ldr r0, =gUnknown_08587C00 bl LoadCompressedObjectPic ldr r0, =gUnknown_08C1C6B8 movs r1, 0x88 lsls r1, 1 movs r2, 0x20 bl LoadCompressedPalette ldr r0, =gUnknown_08587BE8 movs r1, 0x70 movs r2, 0x24 movs r3, 0x1E bl CreateSprite lsls r0, 24 lsrs r0, 24 ldr r4, =gSprites lsls r2, r0, 4 adds r2, r0 lsls r2, 2 adds r5, r2, r4 ldrb r3, [r5, 0x5] movs r1, 0xF ands r1, r3 movs r3, 0x10 orrs r1, r3 strb r1, [r5, 0x5] adds r4, 0x1C adds r2, r4 ldr r1, =SpriteCallbackDummy str r1, [r2] pop {r4,r5} pop {r1} bx r1 .pool thumb_func_end sub_80DB0C4 thumb_func_start sub_80DB120 sub_80DB120: @ 80DB120 push {lr} ldr r0, =gUnknown_08587C08 bl LoadCompressedObjectPic ldr r0, =gUnknown_08587C10 bl LoadCompressedObjectPalette ldr r0, =gUnknown_08587C18 movs r1, 0x60 movs r2, 0xA movs r3, 0x1D bl CreateSprite lsls r0, 24 lsrs r0, 24 ldr r1, =gSprites lsls r2, r0, 4 adds r2, r0 lsls r2, 2 adds r2, r1 movs r1, 0x3E adds r1, r2 mov r12, r1 ldrb r1, [r1] movs r3, 0x4 orrs r1, r3 mov r3, r12 strb r1, [r3] ldrh r1, [r2, 0x4] lsls r1, 22 lsrs r1, 22 strh r1, [r2, 0x2E] pop {r1} bx r1 .pool thumb_func_end sub_80DB120 thumb_func_start sub_80DB174 sub_80DB174: @ 80DB174 push {r4-r7,lr} mov r7, r8 push {r7} adds r7, r1, 0 adds r6, r2, 0 adds r4, r3, 0 lsls r0, 16 lsrs r5, r0, 16 adds r0, r5, 0 bl sub_80DE84C adds r5, r0, 0 ldr r0, =gUnknown_02039F25 ldrb r0, [r0] cmp r4, r0 bne _080DB1B8 lsls r0, r5, 3 ldr r1, =gMonBackPicTable adds r0, r1 ldr r1, =gUnknown_020244D4 ldr r1, [r1] ldr r1, [r1, 0x4] adds r2, r5, 0 adds r3, r6, 0 bl HandleLoadSpecialPokePic_2 b _080DB1CC .pool _080DB1B8: lsls r0, r5, 3 ldr r1, =gMonBackPicTable adds r0, r1 ldr r1, =gUnknown_020244D4 ldr r1, [r1] ldr r1, [r1, 0x4] adds r2, r5, 0 adds r3, r6, 0 bl HandleLoadSpecialPokePic_DontHandleDeoxys _080DB1CC: adds r0, r5, 0 adds r1, r7, 0 adds r2, r6, 0 bl species_and_otid_get_pal movs r1, 0x90 lsls r1, 1 movs r2, 0x20 bl LoadCompressedPalette adds r0, r5, 0 movs r1, 0 bl sub_806A068 ldr r4, =gUnknown_0202499C movs r0, 0x2 adds r1, r5, 0 movs r2, 0 bl sub_80A600C adds r2, r0, 0 lsls r2, 24 lsrs r2, 24 adds r0, r4, 0 movs r1, 0x70 movs r3, 0x1E bl CreateSprite lsls r0, 24 lsrs r7, r0, 24 ldr r0, =gSprites mov r8, r0 lsls r0, r7, 4 adds r0, r7 lsls r6, r0, 2 mov r0, r8 adds r4, r6, r0 ldrb r1, [r4, 0x5] movs r0, 0xF ands r0, r1 movs r1, 0x20 orrs r0, r1 movs r1, 0xD negs r1, r1 ands r0, r1 movs r1, 0x8 orrs r0, r1 strb r0, [r4, 0x5] movs r0, 0x2 bl sub_80A82E4 adds r1, r4, 0 adds r1, 0x43 strb r0, [r1] mov r0, r8 adds r0, 0x1C adds r0, r6, r0 ldr r1, =SpriteCallbackDummy str r1, [r0] ldrb r0, [r4, 0x5] lsrs r0, 4 strh r0, [r4, 0x2E] strh r5, [r4, 0x32] adds r0, r5, 0 bl sub_80DB2A8 lsls r0, 24 cmp r0, 0 beq _080DB278 mov r0, r8 adds r0, 0x10 adds r0, r6, r0 ldr r1, =gUnknown_082FF6C0 b _080DB280 .pool _080DB278: mov r0, r8 adds r0, 0x10 adds r0, r6, r0 ldr r1, =gUnknown_082FF694 _080DB280: str r1, [r0] lsls r0, r7, 4 adds r0, r7 lsls r0, 2 ldr r1, =gSprites adds r0, r1 movs r1, 0 bl StartSpriteAffineAnim adds r0, r7, 0 pop {r3} mov r8, r3 pop {r4-r7} pop {r1} bx r1 .pool thumb_func_end sub_80DB174 thumb_func_start sub_80DB2A8 sub_80DB2A8: @ 80DB2A8 push {lr} lsls r0, 16 lsrs r0, 16 cmp r0, 0xC9 beq _080DB2B6 movs r0, 0x1 b _080DB2B8 _080DB2B6: movs r0, 0 _080DB2B8: pop {r1} bx r1 thumb_func_end sub_80DB2A8 thumb_func_start sub_80DB2BC sub_80DB2BC: @ 80DB2BC push {r4-r6,lr} ldr r5, =gUnknown_02039F34 ldr r0, [r5] ldr r0, [r0, 0x24] movs r4, 0xA0 lsls r4, 3 adds r1, r0, r4 movs r6, 0xA0 lsls r6, 1 adds r2, r6, 0 bl CpuSet ldr r0, [r5] ldr r0, [r0, 0x2C] adds r4, r0, r4 adds r1, r4, 0 adds r2, r6, 0 bl CpuSet pop {r4-r6} pop {r0} bx r0 .pool thumb_func_end sub_80DB2BC thumb_func_start sub_80DB2EC sub_80DB2EC: @ 80DB2EC push {lr} lsls r0, 16 lsls r1, 24 lsrs r3, r1, 24 ldr r2, =gContestEffects ldr r1, =gContestMoves lsrs r0, 13 adds r0, r1 ldrb r0, [r0] lsls r0, 2 adds r0, r2 ldrb r0, [r0] cmp r0, 0x8 bhi _080DB354 lsls r0, 2 ldr r1, =_080DB320 adds r0, r1 ldr r0, [r0] mov pc, r0 .pool .align 2, 0 _080DB320: .4byte _080DB344 .4byte _080DB344 .4byte _080DB34C .4byte _080DB34C .4byte _080DB354 .4byte _080DB354 .4byte _080DB354 .4byte _080DB354 .4byte _080DB344 _080DB344: ldr r0, =0x00009082 b _080DB356 .pool _080DB34C: ldr r0, =0x00009088 b _080DB356 .pool _080DB354: ldr r0, =0x00009086 _080DB356: lsls r1, r3, 12 movs r2, 0x90 lsls r2, 8 adds r1, r2 lsls r0, 16 asrs r0, 16 adds r0, r1 lsls r0, 16 lsrs r0, 16 pop {r1} bx r1 .pool thumb_func_end sub_80DB2EC thumb_func_start prints_contest_move_description prints_contest_move_description: @ 80DB370 push {r4-r7,lr} mov r7, r8 push {r7} sub sp, 0x10 lsls r0, 16 lsrs r0, 16 mov r8, r0 ldr r1, =gContestMoves lsls r0, 3 adds r0, r1 ldrb r0, [r0, 0x1] lsls r0, 29 lsrs r0, 29 ldr r7, =0x00004040 cmp r0, 0 beq _080DB3A4 adds r7, 0x5 cmp r0, 0x1 beq _080DB3A4 adds r7, 0x5 cmp r0, 0x2 beq _080DB3A4 adds r7, 0x40 cmp r0, 0x3 bne _080DB3A4 subs r7, 0x20 _080DB3A4: movs r6, 0x5 str r6, [sp] movs r4, 0x1 str r4, [sp, 0x4] movs r5, 0x11 str r5, [sp, 0x8] str r4, [sp, 0xC] movs r0, 0 adds r1, r7, 0 movs r2, 0xB movs r3, 0x1F bl sub_80DECB8 adds r1, r7, 0 adds r1, 0x10 str r6, [sp] str r4, [sp, 0x4] str r5, [sp, 0x8] str r4, [sp, 0xC] movs r0, 0 movs r2, 0xB movs r3, 0x20 bl sub_80DECB8 ldr r2, =gContestEffects ldr r0, =gContestMoves mov r3, r8 lsls r1, r3, 3 adds r0, r1, r0 ldrb r0, [r0] lsls r0, 2 adds r2, r0, r2 ldrb r0, [r2, 0x1] adds r7, r1, 0 cmp r0, 0xFF bne _080DB3FC movs r6, 0 b _080DB408 .pool _080DB3FC: ldrb r0, [r2, 0x1] movs r1, 0xA bl __udivsi3 lsls r0, 24 lsrs r6, r0, 24 _080DB408: cmp r6, 0x8 bls _080DB40E movs r6, 0x8 _080DB40E: ldr r1, =0x00005035 movs r0, 0x8 str r0, [sp] movs r5, 0x1 str r5, [sp, 0x4] movs r4, 0x11 str r4, [sp, 0x8] movs r0, 0 movs r2, 0x15 movs r3, 0x1F bl sub_80DED10 ldr r1, =0x00005012 str r6, [sp] str r5, [sp, 0x4] str r4, [sp, 0x8] movs r0, 0 movs r2, 0x15 movs r3, 0x1F bl sub_80DED10 ldr r1, =gContestEffects ldr r0, =gContestMoves adds r0, r7, r0 ldrb r0, [r0] lsls r0, 2 adds r1, r0, r1 ldrb r0, [r1, 0x2] cmp r0, 0xFF bne _080DB460 movs r6, 0 b _080DB46C .pool _080DB460: ldrb r0, [r1, 0x2] movs r1, 0xA bl __udivsi3 lsls r0, 24 lsrs r6, r0, 24 _080DB46C: cmp r6, 0x8 bls _080DB472 movs r6, 0x8 _080DB472: ldr r1, =0x00005036 movs r0, 0x8 str r0, [sp] movs r5, 0x1 str r5, [sp, 0x4] movs r4, 0x11 str r4, [sp, 0x8] movs r0, 0 movs r2, 0x15 movs r3, 0x20 bl sub_80DED10 ldr r1, =0x00005014 str r6, [sp] str r5, [sp, 0x4] str r4, [sp, 0x8] movs r0, 0 movs r2, 0x15 movs r3, 0x20 bl sub_80DED10 movs r0, 0xA movs r1, 0 bl FillWindowPixelBuffer ldr r1, =gContestEffectDescriptionPointers ldr r0, =gContestMoves adds r0, r7, r0 ldrb r0, [r0] lsls r0, 2 adds r0, r1 ldr r1, [r0] movs r0, 0xA bl sub_80DEB70 ldr r1, =gUnknown_085E8D3E movs r0, 0x9 bl sub_80DEB70 add sp, 0x10 pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end prints_contest_move_description thumb_func_start sub_80DB4E0 sub_80DB4E0: @ 80DB4E0 push {r4-r7,lr} mov r7, r8 push {r7} sub sp, 0x10 lsls r0, 16 lsrs r5, r0, 16 lsls r1, 24 lsrs r4, r1, 24 ldr r0, =gUnknown_02039F26 adds r0, r4, r0 ldrb r1, [r0] lsls r0, r1, 2 adds r0, r1 adds r0, 0x2 lsls r0, 24 lsrs r7, r0, 24 adds r0, r4, 0 bl sub_80DBCA8 lsls r0, 24 cmp r0, 0 bne _080DB560 cmp r5, 0 beq _080DB560 adds r0, r5, 0 adds r1, r4, 0 bl sub_80DB2EC adds r4, r0, 0 lsls r4, 16 lsrs r4, 16 movs r0, 0x2 mov r8, r0 str r0, [sp] movs r5, 0x1 str r5, [sp, 0x4] movs r6, 0x11 str r6, [sp, 0x8] str r5, [sp, 0xC] movs r0, 0 adds r1, r4, 0 movs r2, 0x14 adds r3, r7, 0 bl sub_80DECB8 adds r4, 0x10 lsls r4, 16 lsrs r4, 16 adds r3, r7, 0x1 lsls r3, 24 lsrs r3, 24 mov r0, r8 str r0, [sp] str r5, [sp, 0x4] str r6, [sp, 0x8] str r5, [sp, 0xC] movs r0, 0 adds r1, r4, 0 movs r2, 0x14 bl sub_80DECB8 b _080DB576 .pool _080DB560: movs r0, 0x2 str r0, [sp] str r0, [sp, 0x4] movs r0, 0x11 str r0, [sp, 0x8] movs r0, 0 movs r1, 0 movs r2, 0x14 adds r3, r7, 0 bl sub_80DED10 _080DB576: add sp, 0x10 pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_80DB4E0 thumb_func_start sub_80DB584 sub_80DB584: @ 80DB584 push {r4,r5,lr} movs r4, 0 movs r5, 0 _080DB58A: ldr r0, =gUnknown_02039F34 ldr r0, [r0] ldr r0, [r0, 0x4] adds r0, r5, r0 ldrh r0, [r0, 0x6] lsls r1, r4, 24 lsrs r1, 24 bl sub_80DB4E0 adds r5, 0x1C adds r4, 0x1 cmp r4, 0x3 ble _080DB58A pop {r4,r5} pop {r0} bx r0 .pool thumb_func_end sub_80DB584 thumb_func_start sub_80DB5B0 sub_80DB5B0: @ 80DB5B0 ldr r0, =0x00002034 bx lr .pool thumb_func_end sub_80DB5B0 thumb_func_start sub_80DB5B8 sub_80DB5B8: @ 80DB5B8 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0xC lsls r0, 24 lsrs r2, r0, 24 lsls r1, 24 lsrs r1, 24 mov r8, r1 mov r10, r8 ldr r0, =gUnknown_02039F34 mov r9, r0 ldr r0, [r0] ldr r1, [r0, 0x4] lsls r0, r2, 3 subs r0, r2 lsls r7, r0, 2 adds r3, r7, r1 ldrb r0, [r3, 0x10] movs r5, 0x30 ands r5, r0 cmp r5, 0 bne _080DB5F4 movs r0, 0 b _080DB68A .pool _080DB5F4: ldr r0, =gUnknown_02039F26 adds r0, r2, r0 ldrb r1, [r0] lsls r0, r1, 2 adds r0, r1 adds r0, 0x2 lsls r0, 24 lsrs r6, r0, 24 movs r0, 0xD ldrsb r0, [r3, r0] movs r1, 0xA bl __divsi3 lsls r0, 24 asrs r4, r0, 24 cmp r5, 0x10 bne _080DB648 bl sub_80DB5B0 adds r1, r0, 0 lsls r1, 16 lsrs r1, 16 movs r0, 0x1 str r0, [sp] lsls r0, r4, 24 lsrs r0, 24 str r0, [sp, 0x4] movs r0, 0x11 str r0, [sp, 0x8] movs r0, 0 movs r2, 0x13 adds r3, r6, 0 bl sub_80DED10 mov r1, r8 cmp r1, 0 beq _080DB688 movs r0, 0x5B b _080DB672 .pool _080DB648: adds r3, r6, r4 lsls r3, 24 lsrs r3, 24 movs r0, 0x1 str r0, [sp] movs r0, 0x3 subs r0, r4 lsls r0, 24 lsrs r0, 24 str r0, [sp, 0x4] movs r0, 0x11 str r0, [sp, 0x8] movs r0, 0 movs r1, 0 movs r2, 0x13 bl sub_80DED10 mov r0, r10 cmp r0, 0 beq _080DB688 movs r0, 0x26 _080DB672: bl PlaySE mov r1, r9 ldr r0, [r1] ldr r1, [r0, 0x4] adds r1, r7, r1 ldrb r2, [r1, 0x10] movs r0, 0x31 negs r0, r0 ands r0, r2 strb r0, [r1, 0x10] _080DB688: movs r0, 0x1 _080DB68A: add sp, 0xC pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_80DB5B8 thumb_func_start sub_80DB69C sub_80DB69C: @ 80DB69C push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0xC movs r7, 0 movs r0, 0x1 mov r10, r0 movs r1, 0x11 mov r9, r1 movs r0, 0 mov r8, r0 _080DB6B6: ldr r0, =gUnknown_02039F26 adds r0, r7, r0 ldrb r0, [r0] lsls r4, r0, 2 adds r4, r0 adds r4, 0x2 lsls r4, 24 lsrs r4, 24 bl sub_80DB5B0 adds r5, r0, 0 lsls r5, 16 lsrs r5, 16 ldr r0, =gUnknown_02039F34 ldr r0, [r0] ldr r0, [r0, 0x4] add r0, r8 ldrb r0, [r0, 0xD] lsls r0, 24 asrs r0, 24 movs r1, 0xA bl __divsi3 lsls r0, 24 mov r1, r10 str r1, [sp] asrs r6, r0, 24 lsrs r0, 24 str r0, [sp, 0x4] mov r0, r9 str r0, [sp, 0x8] movs r0, 0 adds r1, r5, 0 movs r2, 0x13 adds r3, r4, 0 bl sub_80DED10 adds r4, r6 lsls r4, 24 lsrs r4, 24 mov r1, r10 str r1, [sp] movs r0, 0x3 subs r0, r6 lsls r0, 24 lsrs r0, 24 str r0, [sp, 0x4] mov r0, r9 str r0, [sp, 0x8] movs r0, 0 movs r1, 0 movs r2, 0x13 adds r3, r4, 0 bl sub_80DED10 movs r1, 0x1C add r8, r1 adds r7, 0x1 cmp r7, 0x3 ble _080DB6B6 add sp, 0xC pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_80DB69C thumb_func_start sub_80DB748 sub_80DB748: @ 80DB748 push {lr} lsls r0, 24 lsrs r1, r0, 24 movs r0, 0 cmp r1, 0x4 bhi _080DB78A lsls r0, r1, 2 ldr r1, =_080DB764 adds r0, r1 ldr r0, [r0] mov pc, r0 .pool .align 2, 0 _080DB764: .4byte _080DB778 .4byte _080DB77C .4byte _080DB780 .4byte _080DB784 .4byte _080DB788 _080DB778: movs r0, 0x80 b _080DB78A _080DB77C: movs r0, 0x84 b _080DB78A _080DB780: movs r0, 0x86 b _080DB78A _080DB784: movs r0, 0x88 b _080DB78A _080DB788: movs r0, 0x82 _080DB78A: movs r1, 0x90 lsls r1, 8 adds r0, r1 lsls r0, 16 lsrs r0, 16 pop {r1} bx r1 thumb_func_end sub_80DB748 thumb_func_start sub_80DB798 sub_80DB798: @ 80DB798 push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} sub sp, 0x10 lsls r0, 24 lsrs r0, 24 movs r1, 0x1 mov r9, r1 movs r1, 0 mov r8, r1 ldr r1, =gUnknown_02039F26 adds r1, r0, r1 ldrb r2, [r1] lsls r1, r2, 2 adds r1, r2 adds r1, 0x2 lsls r1, 24 lsrs r7, r1, 24 ldr r1, =gUnknown_02039F34 ldr r1, [r1] ldr r2, [r1, 0x4] lsls r1, r0, 3 subs r1, r0 lsls r1, 2 adds r2, r1, r2 ldr r0, [r2, 0x10] ldr r1, =0x00ff0003 ands r0, r1 cmp r0, 0 bne _080DB7DC ldrb r0, [r2, 0xF] cmp r0, 0 beq _080DB7EC _080DB7DC: movs r0, 0 b _080DB80E .pool _080DB7EC: ldrb r1, [r2, 0xC] mov r0, r9 ands r0, r1 cmp r0, 0 beq _080DB7FA movs r0, 0x1 b _080DB80E _080DB7FA: movs r0, 0x6 ands r0, r1 cmp r0, 0 bne _080DB80C ldrb r1, [r2, 0xB] movs r0, 0x80 ands r0, r1 cmp r0, 0 beq _080DB81A _080DB80C: movs r0, 0x2 _080DB80E: bl sub_80DB748 lsls r0, 16 lsrs r0, 16 mov r8, r0 b _080DB81E _080DB81A: movs r0, 0 mov r9, r0 _080DB81E: mov r1, r9 cmp r1, 0 beq _080DB85E movs r6, 0x2 str r6, [sp] movs r4, 0x1 str r4, [sp, 0x4] movs r5, 0x11 str r5, [sp, 0x8] str r4, [sp, 0xC] movs r0, 0 mov r1, r8 movs r2, 0x14 adds r3, r7, 0 bl sub_80DECB8 mov r1, r8 adds r1, 0x10 lsls r1, 16 lsrs r1, 16 adds r3, r7, 0x1 lsls r3, 24 lsrs r3, 24 str r6, [sp] str r4, [sp, 0x4] str r5, [sp, 0x8] str r4, [sp, 0xC] movs r0, 0 movs r2, 0x14 bl sub_80DECB8 b _080DB874 _080DB85E: movs r0, 0x2 str r0, [sp] str r0, [sp, 0x4] movs r0, 0x11 str r0, [sp, 0x8] movs r0, 0 movs r1, 0 movs r2, 0x14 adds r3, r7, 0 bl sub_80DED10 _080DB874: mov r0, r9 add sp, 0x10 pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_80DB798 thumb_func_start sub_80DB884 sub_80DB884: @ 80DB884 push {r4,lr} movs r4, 0 _080DB888: lsls r0, r4, 24 lsrs r0, 24 bl sub_80DB798 adds r4, 0x1 cmp r4, 0x3 ble _080DB888 pop {r4} pop {r0} bx r0 thumb_func_end sub_80DB884 thumb_func_start sub_80DB89C sub_80DB89C: @ 80DB89C push {lr} movs r0, 0x4 movs r1, 0 bl FillWindowPixelBuffer movs r0, 0x4 movs r1, 0x2 bl CopyWindowToVram movs r0, 0 bl sub_80DED60 pop {r0} bx r0 thumb_func_end sub_80DB89C thumb_func_start sub_80DB8B8 sub_80DB8B8: @ 80DB8B8 push {r4,r5,lr} lsls r0, 24 lsrs r4, r0, 24 adds r5, r4, 0 adds r0, r4, 0 bl sub_80DBCA8 lsls r0, 24 cmp r0, 0 beq _080DB8D0 movs r0, 0 b _080DB90A _080DB8D0: ldr r0, =gUnknown_02039F25 ldrb r0, [r0] cmp r4, r0 beq _080DB8F4 adds r0, r4, 0 bl sub_81562C4 bl sub_8156324 lsls r0, 24 ldr r2, =gUnknown_02039E00 lsrs r0, 23 lsls r1, r4, 6 b _080DB902 .pool _080DB8F4: ldr r2, =gUnknown_02039E00 ldr r0, =gUnknown_02039F34 ldr r0, [r0] ldr r0, [r0] ldrb r0, [r0] lsls r0, 1 lsls r1, r5, 6 _080DB902: adds r0, r1 adds r2, 0x1E adds r0, r2 ldrh r0, [r0] _080DB90A: pop {r4,r5} pop {r1} bx r1 .pool thumb_func_end sub_80DB8B8 thumb_func_start sub_80DB918 sub_80DB918: @ 80DB918 push {r4,r5,lr} movs r4, 0 movs r5, 0 _080DB91E: lsls r0, r4, 24 lsrs r0, 24 bl sub_80DB8B8 ldr r1, =gUnknown_02039F34 ldr r1, [r1] ldr r1, [r1, 0x4] adds r1, r5, r1 strh r0, [r1, 0x6] adds r5, 0x1C adds r4, 0x1 cmp r4, 0x3 ble _080DB91E pop {r4,r5} pop {r0} bx r0 .pool thumb_func_end sub_80DB918 thumb_func_start sub_80DB944 sub_80DB944: @ 80DB944 push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} sub sp, 0x8 ldr r5, =gUnknown_02039F34 mov r4, sp movs r3, 0 movs r6, 0x3 _080DB956: ldr r2, [r5] ldr r1, [r2, 0x4] adds r1, r3, r1 ldrh r0, [r1, 0x2] ldrh r7, [r1, 0x4] adds r0, r7 strh r0, [r1, 0x4] ldr r0, [r2, 0x4] adds r0, r3, r0 ldrh r0, [r0, 0x4] strh r0, [r4] adds r4, 0x2 adds r3, 0x1C subs r6, 0x1 cmp r6, 0 bge _080DB956 movs r6, 0 _080DB978: movs r4, 0x3 cmp r4, r6 ble _080DB9A4 _080DB97E: subs r5, r4, 0x1 lsls r0, r5, 1 mov r1, sp adds r3, r1, r0 lsls r0, r4, 1 adds r2, r1, r0 ldrh r4, [r3] movs r7, 0 ldrsh r1, [r3, r7] movs r7, 0 ldrsh r0, [r2, r7] cmp r1, r0 bge _080DB99E ldrh r0, [r2] strh r4, [r2] strh r0, [r3] _080DB99E: adds r4, r5, 0 cmp r4, r6 bgt _080DB97E _080DB9A4: adds r6, 0x1 cmp r6, 0x2 ble _080DB978 movs r6, 0 movs r0, 0x4 negs r0, r0 mov r9, r0 ldr r1, =gUnknown_02039F34 mov r8, r1 movs r7, 0x3 mov r12, r7 _080DB9BA: movs r4, 0 lsls r0, r6, 3 adds r7, r6, 0x1 subs r0, r6 lsls r5, r0, 2 mov r3, sp _080DB9C6: mov r1, r8 ldr r0, [r1] ldr r0, [r0, 0x4] adds r2, r5, r0 movs r6, 0x4 ldrsh r1, [r2, r6] movs r6, 0 ldrsh r0, [r3, r6] cmp r1, r0 bne _080DB9F0 mov r0, r12 ands r4, r0 ldrb r1, [r2, 0xB] mov r0, r9 ands r0, r1 orrs r0, r4 strb r0, [r2, 0xB] b _080DB9F8 .pool _080DB9F0: adds r3, 0x2 adds r4, 0x1 cmp r4, 0x3 ble _080DB9C6 _080DB9F8: adds r6, r7, 0 cmp r6, 0x3 ble _080DB9BA movs r0, 0x1 bl sub_80DCE58 bl sub_80DD590 add sp, 0x8 pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_80DB944 thumb_func_start sub_80DBA18 sub_80DBA18: @ 80DBA18 push {r4,r5,lr} ldr r4, =gUnknown_02039F34 movs r2, 0 movs r3, 0x3 _080DBA20: ldr r0, [r4] ldr r0, [r0, 0x4] adds r1, r2, r0 ldrh r0, [r1, 0x6] cmp r0, 0 bne _080DBA34 movs r1, 0x5 b _080DBA52 .pool _080DBA34: movs r5, 0x2 ldrsh r0, [r1, r5] movs r1, 0 cmp r0, 0 ble _080DBA52 movs r1, 0x1 cmp r0, 0x1D ble _080DBA52 movs r1, 0x2 cmp r0, 0x3B ble _080DBA52 movs r1, 0x4 cmp r0, 0x4F bgt _080DBA52 movs r1, 0x3 _080DBA52: ldr r0, [r4] ldr r0, [r0, 0x4] adds r0, r2, r0 strb r1, [r0, 0x1A] adds r2, 0x1C subs r3, 0x1 cmp r3, 0 bge _080DBA20 pop {r4,r5} pop {r0} bx r0 thumb_func_end sub_80DBA18 thumb_func_start sub_80DBA68 sub_80DBA68: @ 80DBA68 push {lr} lsls r0, 24 lsrs r0, 24 ldr r1, =gUnknown_02039F34 ldr r1, [r1] ldr r2, [r1, 0x4] lsls r1, r0, 3 subs r1, r0 lsls r1, 2 adds r2, r1, r2 ldrb r1, [r2, 0xC] movs r0, 0x6 ands r0, r1 cmp r0, 0 bne _080DBA90 ldrb r1, [r2, 0xB] movs r0, 0x80 ands r0, r1 cmp r0, 0 beq _080DBA98 _080DBA90: movs r0, 0 b _080DBA9A .pool _080DBA98: movs r0, 0x1 _080DBA9A: pop {r1} bx r1 thumb_func_end sub_80DBA68 thumb_func_start sub_80DBAA0 sub_80DBAA0: @ 80DBAA0 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} ldr r5, =gUnknown_02039F34 movs r0, 0 mov r8, r0 movs r1, 0x7 negs r1, r1 mov r10, r1 movs r0, 0x2 negs r0, r0 mov r9, r0 movs r4, 0 movs r6, 0x3 _080DBAC0: ldr r1, [r5] ldr r0, [r1, 0x4] adds r0, r4, r0 movs r2, 0 strh r2, [r0, 0x2] ldr r0, [r1, 0x4] adds r0, r4, r0 strh r2, [r0] ldr r0, [r1, 0x4] adds r0, r4, r0 mov r1, r8 strb r1, [r0, 0x12] ldr r0, [r5] ldr r0, [r0, 0x4] adds r3, r4, r0 ldrb r2, [r3, 0xC] movs r0, 0x6 ands r0, r2 cmp r0, 0 beq _080DBAFC lsls r0, r2, 29 lsrs r0, 30 subs r0, 0x1 movs r1, 0x3 ands r0, r1 lsls r0, 1 mov r1, r10 ands r1, r2 orrs r1, r0 strb r1, [r3, 0xC] _080DBAFC: ldr r0, [r5] ldr r0, [r0, 0x4] adds r0, r4, r0 mov r1, r8 strb r1, [r0, 0xE] ldr r0, [r5] ldr r1, [r0, 0x4] adds r1, r4, r1 ldrb r2, [r1, 0x10] mov r0, r9 ands r0, r2 strb r0, [r1, 0x10] ldr r0, [r5] ldr r0, [r0, 0x4] adds r0, r4, r0 mov r1, r8 strb r1, [r0, 0xF] ldr r0, [r5] ldr r1, [r0, 0x4] adds r1, r4, r1 ldrb r2, [r1, 0x10] movs r0, 0x3 negs r0, r0 ands r0, r2 strb r0, [r1, 0x10] ldr r0, [r5] ldr r1, [r0, 0x4] adds r1, r4, r1 ldrb r2, [r1, 0x10] movs r7, 0x5 negs r7, r7 adds r0, r7, 0 ands r0, r2 strb r0, [r1, 0x10] ldr r0, [r5] ldr r1, [r0, 0x4] adds r1, r4, r1 ldrb r2, [r1, 0x10] movs r0, 0x9 negs r0, r0 mov r12, r0 ands r0, r2 strb r0, [r1, 0x10] ldr r0, [r5] ldr r1, [r0, 0x4] adds r1, r4, r1 ldrb r2, [r1, 0xC] mov r0, r9 ands r0, r2 strb r0, [r1, 0xC] ldr r0, [r5] ldr r0, [r0, 0x4] adds r0, r4, r0 movs r1, 0xFF strb r1, [r0, 0x13] ldr r0, [r5] ldr r0, [r0, 0x4] adds r0, r4, r0 movs r1, 0x1 negs r1, r1 strb r1, [r0, 0x14] ldr r0, [r5] ldr r1, [r0, 0x4] adds r1, r4, r1 ldrb r2, [r1, 0x10] movs r0, 0x31 negs r0, r0 ands r0, r2 strb r0, [r1, 0x10] ldr r0, [r5] ldr r2, [r0, 0x4] adds r2, r4, r2 ldrb r3, [r2, 0x15] lsls r1, r3, 31 lsrs r1, 31 lsls r1, 2 adds r0, r7, 0 ands r0, r3 orrs r0, r1 strb r0, [r2, 0x15] ldr r0, [r5] ldr r1, [r0, 0x4] adds r1, r4, r1 ldrb r2, [r1, 0x15] mov r0, r9 ands r0, r2 strb r0, [r1, 0x15] ldr r0, [r5] ldr r1, [r0, 0x4] adds r1, r4, r1 ldrb r2, [r1, 0x11] movs r0, 0x4 negs r0, r0 ands r0, r2 strb r0, [r1, 0x11] ldr r0, [r5] ldr r1, [r0, 0x4] adds r1, r4, r1 ldrb r2, [r1, 0x11] movs r0, 0x21 negs r0, r0 ands r0, r2 strb r0, [r1, 0x11] ldr r0, [r5] ldr r0, [r0, 0x4] adds r2, r4, r0 ldrb r1, [r2, 0x11] movs r0, 0x4 ands r0, r1 cmp r0, 0 beq _080DBBF4 ldrb r1, [r2, 0xC] mov r0, r10 ands r0, r1 movs r1, 0x2 orrs r0, r1 strb r0, [r2, 0xC] ldr r0, [r5] ldr r1, [r0, 0x4] adds r1, r4, r1 ldrb r2, [r1, 0x11] adds r0, r7, 0 ands r0, r2 strb r0, [r1, 0x11] _080DBBF4: ldr r0, [r5] ldr r0, [r0, 0x4] adds r2, r4, r0 ldrb r1, [r2, 0x11] movs r0, 0x8 ands r0, r1 cmp r0, 0 beq _080DBC1A ldrb r0, [r2, 0xB] movs r1, 0x80 orrs r0, r1 strb r0, [r2, 0xB] ldr r0, [r5] ldr r1, [r0, 0x4] adds r1, r4, r1 ldrb r2, [r1, 0x11] mov r0, r12 ands r0, r2 strb r0, [r1, 0x11] _080DBC1A: ldr r0, [r5] ldr r1, [r0, 0x4] adds r1, r4, r1 ldrb r2, [r1, 0x11] movs r0, 0x11 negs r0, r0 ands r0, r2 strb r0, [r1, 0x11] adds r4, 0x1C subs r6, 0x1 cmp r6, 0 blt _080DBC34 b _080DBAC0 _080DBC34: movs r6, 0 ldr r5, =gUnknown_02039F34 movs r7, 0 movs r4, 0 _080DBC3C: ldr r3, [r5] ldr r0, [r3, 0x4] adds r0, r4, r0 ldrh r1, [r0, 0x6] strh r1, [r0, 0x8] ldr r2, [r3] lsls r1, r6, 1 ldrb r0, [r2, 0x1] lsls r0, 3 adds r1, r0 adds r2, 0x1C adds r2, r1 ldr r0, [r3, 0x4] adds r0, r4, r0 ldrh r0, [r0, 0x6] strh r0, [r2] ldr r0, [r3, 0x4] adds r0, r4, r0 ldrh r0, [r0, 0x6] bl sub_80DD9F0 ldr r1, [r5] ldr r2, [r1] ldrb r1, [r2, 0x1] lsls r1, 2 adds r1, r6, r1 adds r2, 0x44 adds r2, r1 strb r0, [r2] ldr r0, [r5] ldr r0, [r0, 0x4] adds r0, r4, r0 strh r7, [r0, 0x6] adds r4, 0x1C adds r6, 0x1 cmp r6, 0x3 ble _080DBC3C ldr r0, =gUnknown_02039F34 ldr r0, [r0] ldr r2, [r0, 0x10] ldrb r1, [r2, 0x1] movs r0, 0x2 negs r0, r0 ands r0, r1 strb r0, [r2, 0x1] pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_80DBAA0 thumb_func_start sub_80DBCA8 sub_80DBCA8: @ 80DBCA8 push {lr} lsls r0, 24 lsrs r0, 24 ldr r1, =gUnknown_02039F34 ldr r1, [r1] ldr r2, [r1, 0x4] lsls r1, r0, 3 subs r1, r0 lsls r1, 2 adds r2, r1, r2 ldrb r1, [r2, 0xC] movs r0, 0x6 ands r0, r1 cmp r0, 0 bne _080DBCD0 ldrb r1, [r2, 0xB] movs r0, 0x80 ands r0, r1 cmp r0, 0 beq _080DBCD8 _080DBCD0: movs r0, 0x1 b _080DBCDA .pool _080DBCD8: movs r0, 0 _080DBCDA: pop {r1} bx r1 thumb_func_end sub_80DBCA8 thumb_func_start sub_80DBCE0 sub_80DBCE0: @ 80DBCE0 push {r4,lr} adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 adds r0, r4, 0 bl sub_80DBD34 ldr r1, =gUnknown_02039F18 lsls r4, 1 adds r1, r4, r1 strh r0, [r1] ldr r2, =gUnknown_02039F08 adds r2, r4, r2 ldr r1, =gUnknown_02039F00 adds r4, r1 ldrh r4, [r4] adds r0, r4 strh r0, [r2] pop {r4} pop {r0} bx r0 .pool thumb_func_end sub_80DBCE0 thumb_func_start sub_80DBD18 sub_80DBD18: @ 80DBD18 push {r4,lr} movs r4, 0 _080DBD1C: lsls r0, r4, 24 lsrs r0, 24 bl sub_80DBCE0 adds r4, 0x1 cmp r4, 0x3 ble _080DBD1C bl sub_80DBD4C pop {r4} pop {r0} bx r0 thumb_func_end sub_80DBD18 thumb_func_start sub_80DBD34 sub_80DBD34: @ 80DBD34 lsls r0, 24 ldr r1, =gUnknown_02039F10 lsrs r0, 23 adds r0, r1 movs r1, 0 ldrsh r0, [r0, r1] lsls r0, 17 asrs r0, 16 bx lr .pool thumb_func_end sub_80DBD34 thumb_func_start sub_80DBD4C sub_80DBD4C: @ 80DBD4C push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x70 mov r0, sp movs r1, 0 movs r2, 0x8 bl memset movs r0, 0 mov r9, r0 mov r1, sp adds r1, 0x8 str r1, [sp, 0x64] mov r3, sp adds r3, 0xC str r3, [sp, 0x68] mov r6, sp adds r6, 0x14 str r6, [sp, 0x6C] mov r4, sp _080DBD7A: bl Random strh r0, [r4] movs r2, 0 cmp r2, r9 bge _080DBDB8 mov r1, sp lsls r0, 16 lsrs r0, 16 ldrh r1, [r1] cmp r0, r1 bne _080DBD9C subs r4, 0x2 movs r7, 0x1 negs r7, r7 add r9, r7 b _080DBDB8 _080DBD9C: adds r2, 0x1 cmp r2, r9 bge _080DBDB8 lsls r0, r2, 1 mov r3, sp adds r1, r3, r0 ldrh r0, [r4] ldrh r1, [r1] cmp r0, r1 bne _080DBD9C subs r4, 0x2 movs r6, 0x1 negs r6, r6 add r9, r6 _080DBDB8: adds r4, 0x2 movs r7, 0x1 add r9, r7 mov r0, r9 cmp r0, 0x3 ble _080DBD7A movs r1, 0 mov r9, r1 mov r4, sp ldr r6, =gUnknown_02039F08 ldr r2, [sp, 0x64] ldr r5, =gUnknown_02039F00 ldr r3, [sp, 0x68] _080DBDD2: mov r7, r9 lsls r1, r7, 4 movs r7, 0 ldrsh r0, [r6, r7] str r0, [r2] movs r7, 0 ldrsh r0, [r5, r7] str r0, [r3] ldrh r0, [r4] str r0, [r2, 0x8] ldr r0, [sp, 0x6C] adds r1, r0, r1 mov r7, r9 str r7, [r1] adds r4, 0x2 adds r6, 0x2 adds r2, 0x10 adds r5, 0x2 adds r3, 0x10 movs r0, 0x1 add r9, r0 mov r1, r9 cmp r1, 0x3 ble _080DBDD2 movs r3, 0 mov r9, r3 _080DBE06: movs r4, 0x3 cmp r4, r9 ble _080DBE90 add r7, sp, 0x48 ldr r6, [sp, 0x68] str r6, [sp, 0x58] ldr r0, [sp, 0x64] adds r0, 0x8 str r0, [sp, 0x5C] ldr r1, [sp, 0x6C] str r1, [sp, 0x60] _080DBE1C: subs r3, r4, 0x1 mov r10, r3 mov r0, r10 adds r1, r4, 0 ldr r2, [sp, 0x64] bl sub_80DBF30 lsls r0, 24 cmp r0, 0 beq _080DBE8A mov r6, r10 lsls r2, r6, 4 ldr r0, [sp, 0x64] adds r3, r0, r2 ldr r0, [r3] str r0, [sp, 0x48] ldr r1, [sp, 0x58] adds r6, r1, r2 ldr r0, [r6] str r0, [r7, 0x4] ldr r0, [sp, 0x5C] adds r0, r2 mov r8, r0 ldr r0, [r0] str r0, [r7, 0x8] ldr r1, [sp, 0x60] adds r2, r1, r2 ldr r0, [r2] str r0, [r7, 0xC] lsls r1, r4, 4 ldr r0, [sp, 0x64] adds r5, r0, r1 ldr r0, [r5] str r0, [r3] ldr r3, [sp, 0x58] adds r4, r3, r1 ldr r0, [r4] str r0, [r6] ldr r6, [sp, 0x5C] adds r3, r6, r1 ldr r0, [r3] mov r6, r8 str r0, [r6] ldr r0, [sp, 0x60] adds r1, r0, r1 ldr r0, [r1] str r0, [r2] ldr r0, [sp, 0x48] str r0, [r5] ldr r0, [r7, 0x4] str r0, [r4] ldr r0, [r7, 0x8] str r0, [r3] ldr r0, [r7, 0xC] str r0, [r1] _080DBE8A: mov r4, r10 cmp r4, r9 bgt _080DBE1C _080DBE90: movs r1, 0x1 add r9, r1 mov r3, r9 cmp r3, 0x2 ble _080DBE06 movs r6, 0 mov r9, r6 ldr r2, =gUnknown_02039F20 ldr r1, [sp, 0x6C] _080DBEA2: ldr r0, [r1] adds r0, r2 mov r7, r9 strb r7, [r0] adds r1, 0x10 movs r0, 0x1 add r9, r0 mov r3, r9 cmp r3, 0x3 ble _080DBEA2 add sp, 0x70 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_80DBD4C thumb_func_start sub_80DBED4 sub_80DBED4: @ 80DBED4 push {lr} ldr r0, =gUnknown_02039F2A ldrb r1, [r0] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _080DBF0E ldr r0, =gSaveBlock2Ptr ldr r2, [r0] ldr r1, =gUnknown_02039F20 ldr r0, =gUnknown_02039F25 ldrb r0, [r0] adds r0, r1 ldrb r1, [r0] lsls r1, 1 ldr r0, =gUnknown_02039F2C ldrh r0, [r0] lsls r0, 3 adds r1, r0 ldr r0, =0x00000624 adds r2, r0 adds r2, r1 ldrh r0, [r2] adds r0, 0x1 ldr r1, =0x0000270f cmp r0, r1 ble _080DBF0C adds r0, r1, 0 _080DBF0C: strh r0, [r2] _080DBF0E: pop {r0} bx r0 .pool thumb_func_end sub_80DBED4 thumb_func_start sub_80DBF30 sub_80DBF30: @ 80DBF30 push {lr} lsls r0, 4 adds r0, r2 lsls r1, 4 adds r3, r1, r2 ldr r2, [r0] ldr r1, [r3] cmp r2, r1 blt _080DBF60 cmp r2, r1 bgt _080DBF52 ldr r2, [r0, 0x4] ldr r1, [r3, 0x4] cmp r2, r1 blt _080DBF60 cmp r2, r1 ble _080DBF56 _080DBF52: movs r2, 0 b _080DBF62 _080DBF56: ldr r1, [r0, 0x8] ldr r0, [r3, 0x8] movs r2, 0 cmp r1, r0 bge _080DBF62 _080DBF60: movs r2, 0x1 _080DBF62: adds r0, r2, 0 pop {r1} bx r1 thumb_func_end sub_80DBF30 thumb_func_start sub_80DBF68 sub_80DBF68: @ 80DBF68 push {lr} ldr r0, =gUnknown_02022E16 movs r1, 0 strh r1, [r0] ldr r0, =gUnknown_02022E1E strh r1, [r0] bl sub_80DB89C ldr r0, =gUnknown_0827E8DA movs r1, 0 bl sub_80DEC30 pop {r0} bx r0 .pool thumb_func_end sub_80DBF68 thumb_func_start sub_80DBF90 sub_80DBF90: @ 80DBF90 push {r4,r5,lr} sub sp, 0xC movs r5, 0x80 lsls r5, 18 movs r4, 0x3 _080DBF9A: lsrs r3, r5, 24 movs r0, 0x8 str r0, [sp] movs r0, 0x2 str r0, [sp, 0x4] movs r0, 0x11 str r0, [sp, 0x8] movs r0, 0 movs r1, 0 movs r2, 0x16 bl sub_80DED10 movs r0, 0xA0 lsls r0, 19 adds r5, r0 subs r4, 0x1 cmp r4, 0 bge _080DBF9A add sp, 0xC pop {r4,r5} pop {r0} bx r0 thumb_func_end sub_80DBF90 thumb_func_start sub_80DBFC8 sub_80DBFC8: @ 80DBFC8 push {lr} lsls r0, 24 lsrs r0, 24 ldr r1, =0x00005011 cmp r0, 0 beq _080DBFE2 ldr r1, =0x00006011 cmp r0, 0x1 beq _080DBFE2 ldr r1, =0x00008011 cmp r0, 0x2 bne _080DBFE2 ldr r1, =0x00007011 _080DBFE2: adds r0, r1, 0x1 lsls r0, 16 lsrs r0, 16 pop {r1} bx r1 .pool thumb_func_end sub_80DBFC8 thumb_func_start sub_80DBFFC sub_80DBFFC: @ 80DBFFC push {lr} lsls r0, 16 asrs r0, 16 movs r1, 0xA bl __divsi3 lsls r0, 24 lsrs r1, r0, 24 asrs r2, r0, 24 cmp r2, 0x10 ble _080DC016 movs r1, 0x10 b _080DC020 _080DC016: movs r0, 0x10 negs r0, r0 cmp r2, r0 bge _080DC020 movs r1, 0xF0 _080DC020: lsls r0, r1, 24 asrs r0, 24 pop {r1} bx r1 thumb_func_end sub_80DBFFC thumb_func_start sub_80DC028 sub_80DC028: @ 80DC028 push {r4-r7,lr} mov r7, r8 push {r7} adds r5, r0, 0 adds r6, r1, 0 lsls r5, 16 lsrs r5, 16 lsls r6, 16 lsrs r6, 16 lsls r2, 24 lsrs r2, 24 mov r8, r2 ldr r0, =gUnknown_02039F34 ldr r0, [r0] ldr r0, [r0, 0x14] lsls r1, r2, 2 adds r1, r0 ldrb r0, [r1, 0x2] movs r2, 0x4 orrs r0, r2 strb r0, [r1, 0x2] ldr r0, =sub_80DC0F4 movs r1, 0x14 bl CreateTask lsls r0, 24 lsrs r7, r0, 24 lsls r5, 16 asrs r5, 16 adds r0, r5, 0 bl sub_80DBFFC adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 lsls r6, 16 asrs r6, 16 adds r5, r6 lsls r5, 16 asrs r5, 16 adds r0, r5, 0 bl sub_80DBFFC lsls r4, 24 asrs r4, 24 subs r0, r4 lsls r0, 24 lsrs r5, r0, 24 mov r0, r8 bl sub_80DBFC8 ldr r2, =gTasks lsls r3, r7, 2 adds r0, r3, r7 lsls r0, 3 adds r1, r0, r2 adds r0, r4, 0 cmp r4, 0 bge _080DC0A0 negs r0, r4 _080DC0A0: strh r0, [r1, 0x8] lsls r0, r5, 24 asrs r0, 24 strh r0, [r1, 0xA] cmp r4, 0 bgt _080DC0B4 cmp r4, 0 bne _080DC0C8 cmp r0, 0 ble _080DC0C8 _080DC0B4: movs r0, 0x1 strh r0, [r1, 0xC] b _080DC0D6 .pool _080DC0C8: ldr r2, =gTasks lsls r3, r7, 2 adds r0, r3, r7 lsls r0, 3 adds r0, r2 ldr r1, =0x0000ffff strh r1, [r0, 0xC] _080DC0D6: adds r0, r3, r7 lsls r0, 3 adds r0, r2 mov r1, r8 strh r1, [r0, 0xE] adds r0, r7, 0 pop {r3} mov r8, r3 pop {r4-r7} pop {r1} bx r1 .pool thumb_func_end sub_80DC028 thumb_func_start sub_80DC0F4 sub_80DC0F4: @ 80DC0F4 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x10 lsls r0, 24 lsrs r7, r0, 24 ldr r1, =gTasks lsls r0, r7, 2 adds r0, r7 lsls r0, 3 adds r4, r0, r1 ldrb r0, [r4, 0xE] mov r9, r0 ldrh r3, [r4, 0x8] ldrh r1, [r4, 0xA] ldrh r0, [r4, 0x1C] adds r0, 0x1 strh r0, [r4, 0x1C] lsls r0, 16 asrs r0, 16 cmp r0, 0xE bgt _080DC126 b _080DC2A8 _080DC126: movs r0, 0 strh r0, [r4, 0x1C] ldrh r2, [r4, 0xA] movs r5, 0xA ldrsh r0, [r4, r5] cmp r0, 0 bne _080DC15C adds r0, r7, 0 bl DestroyTask ldr r0, =gUnknown_02039F34 ldr r0, [r0] ldr r0, [r0, 0x14] mov r2, r9 lsls r1, r2, 2 adds r1, r0 ldrb r2, [r1, 0x2] movs r0, 0x5 negs r0, r0 ands r0, r2 strb r0, [r1, 0x2] b _080DC2A8 .pool _080DC15C: cmp r3, 0 bne _080DC1A4 lsls r0, r1, 16 mov r8, r0 cmp r0, 0 bge _080DC17A mov r0, r9 bl sub_80DBFC8 adds r0, 0x2 lsls r0, 16 lsrs r6, r0, 16 ldrh r0, [r4, 0xA] adds r0, 0x1 b _080DC188 _080DC17A: mov r0, r9 bl sub_80DBFC8 lsls r0, 16 lsrs r6, r0, 16 ldrh r0, [r4, 0xA] subs r0, 0x1 _080DC188: strh r0, [r4, 0xA] ldr r1, =gTasks lsls r0, r7, 2 adds r0, r7 lsls r0, 3 adds r0, r1 ldrh r1, [r0, 0x8] adds r2, r1, 0x1 strh r2, [r0, 0x8] lsls r1, 24 lsrs r5, r1, 24 b _080DC210 .pool _080DC1A4: movs r3, 0xC ldrsh r0, [r4, r3] cmp r0, 0 bge _080DC1DE lsls r0, r1, 16 mov r8, r0 cmp r0, 0 bge _080DC1CC ldrh r0, [r4, 0x8] adds r1, r0, 0x1 strh r1, [r4, 0x8] lsls r0, 24 lsrs r5, r0, 24 adds r0, r2, 0x1 strh r0, [r4, 0xA] mov r0, r9 bl sub_80DBFC8 adds r0, 0x2 b _080DC20C _080DC1CC: ldrh r0, [r4, 0x8] subs r0, 0x1 strh r0, [r4, 0x8] lsls r0, 24 lsrs r5, r0, 24 movs r6, 0 subs r0, r2, 0x1 strh r0, [r4, 0xA] b _080DC210 _080DC1DE: lsls r0, r1, 16 mov r8, r0 cmp r0, 0 bge _080DC1F8 ldrh r0, [r4, 0x8] subs r0, 0x1 strh r0, [r4, 0x8] lsls r0, 24 lsrs r5, r0, 24 movs r6, 0 adds r0, r2, 0x1 strh r0, [r4, 0xA] b _080DC210 _080DC1F8: ldrh r0, [r4, 0x8] adds r1, r0, 0x1 strh r1, [r4, 0x8] lsls r0, 24 lsrs r5, r0, 24 subs r0, r2, 0x1 strh r0, [r4, 0xA] mov r0, r9 bl sub_80DBFC8 _080DC20C: lsls r0, 16 lsrs r6, r0, 16 _080DC210: str r5, [sp, 0xC] movs r0, 0 mov r10, r0 cmp r5, 0x7 bls _080DC226 movs r2, 0x1 mov r10, r2 adds r0, r5, 0 subs r0, 0x8 lsls r0, 24 lsrs r5, r0, 24 _080DC226: adds r2, r5, 0 adds r2, 0x16 lsls r2, 24 lsrs r2, 24 ldr r0, =gUnknown_02039F26 add r0, r9 ldrb r0, [r0] lsls r3, r0, 2 adds r3, r0 adds r3, 0x2 add r3, r10 lsls r3, 24 lsrs r3, 24 movs r0, 0x1 str r0, [sp] str r0, [sp, 0x4] movs r0, 0x11 str r0, [sp, 0x8] movs r0, 0 adds r1, r6, 0 bl sub_80DED10 mov r3, r8 cmp r3, 0 ble _080DC284 movs r0, 0x60 bl PlaySE ldr r4, =gMPlay_SE1 adds r0, r4, 0 bl m4aMPlayImmInit ldr r1, =0x0000ffff ldr r0, [sp, 0xC] lsls r2, r0, 24 asrs r2, 16 adds r0, r4, 0 bl m4aMPlayPitchControl b _080DC28A .pool _080DC284: movs r0, 0x16 bl PlaySE _080DC28A: mov r2, r10 cmp r2, 0 bne _080DC2A8 cmp r5, 0 bne _080DC2A8 cmp r6, 0 bne _080DC2A8 ldr r0, =gTasks lsls r1, r7, 2 adds r1, r7 lsls r1, 3 adds r1, r0 ldrh r0, [r1, 0xC] negs r0, r0 strh r0, [r1, 0xC] _080DC2A8: add sp, 0x10 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_80DC0F4 thumb_func_start sub_80DC2BC sub_80DC2BC: @ 80DC2BC push {r4,r5,lr} ldr r0, =gUnknown_08587A74 bl LoadSpriteSheet movs r4, 0 ldr r5, =gUnknown_08587A6C _080DC2C8: ldr r0, =gUnknown_02039F26 adds r0, r4, r0 ldrb r0, [r0] adds r0, r5 ldrb r2, [r0] ldr r0, =gUnknown_08587AD0 movs r1, 0xB4 movs r3, 0x1 bl CreateSprite ldr r1, =gUnknown_02039F34 ldr r1, [r1] ldr r2, [r1, 0x14] lsls r1, r4, 2 adds r1, r2 strb r0, [r1] adds r4, 0x1 cmp r4, 0x3 ble _080DC2C8 pop {r4,r5} pop {r0} bx r0 .pool thumb_func_end sub_80DC2BC thumb_func_start sub_80DC308 sub_80DC308: @ 80DC308 push {r4-r7,lr} lsls r0, 24 lsrs r6, r0, 24 ldr r4, =gUnknown_02039F34 ldr r0, [r4] ldr r2, [r0, 0x14] lsls r3, r6, 2 adds r2, r3, r2 ldrb r0, [r2, 0x2] movs r1, 0x1 orrs r0, r1 strb r0, [r2, 0x2] ldr r1, [r4] ldr r0, [r1, 0x14] adds r3, r0 ldrb r7, [r3] ldr r1, [r1, 0x4] lsls r0, r6, 3 subs r0, r6 lsls r0, 2 adds r0, r1 movs r1, 0x4 ldrsh r0, [r0, r1] movs r1, 0xA bl __divsi3 lsls r0, 17 lsrs r5, r0, 16 asrs r0, 16 cmp r0, 0x38 ble _080DC350 movs r5, 0x38 b _080DC356 .pool _080DC350: cmp r0, 0 bge _080DC356 movs r5, 0 _080DC356: ldr r2, =gSprites lsls r3, r7, 4 adds r0, r3, r7 lsls r0, 2 adds r4, r0, r2 movs r0, 0x3E adds r0, r4 mov r12, r0 ldrb r1, [r0] movs r0, 0x5 negs r0, r0 ands r0, r1 mov r1, r12 strb r0, [r1] strh r6, [r4, 0x2E] strh r5, [r4, 0x30] lsls r0, r5, 16 asrs r0, 16 movs r5, 0x24 ldrsh r1, [r4, r5] cmp r0, r1 ble _080DC38C movs r0, 0x1 b _080DC38E .pool _080DC38C: ldr r0, =0x0000ffff _080DC38E: strh r0, [r4, 0x32] adds r0, r3, r7 lsls r0, 2 adds r1, r2, 0 adds r1, 0x1C adds r0, r1 ldr r1, =sub_80DC408 str r1, [r0] pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_80DC308 thumb_func_start sub_80DC3AC sub_80DC3AC: @ 80DC3AC push {r4,lr} movs r4, 0 _080DC3B0: lsls r0, r4, 24 lsrs r0, 24 bl sub_80DC308 adds r4, 0x1 cmp r4, 0x3 ble _080DC3B0 pop {r4} pop {r0} bx r0 thumb_func_end sub_80DC3AC thumb_func_start sub_80DC3C4 sub_80DC3C4: @ 80DC3C4 push {r4,lr} movs r2, 0 ldr r3, =gUnknown_02039F34 ldr r0, [r3] ldr r0, [r0, 0x14] ldrb r1, [r0, 0x2] movs r0, 0x1 ands r0, r1 cmp r0, 0 bne _080DC3F2 movs r4, 0x1 _080DC3DA: adds r2, 0x1 cmp r2, 0x3 bgt _080DC3F2 ldr r0, [r3] ldr r1, [r0, 0x14] lsls r0, r2, 2 adds r0, r1 ldrb r1, [r0, 0x2] adds r0, r4, 0 ands r0, r1 cmp r0, 0 beq _080DC3DA _080DC3F2: cmp r2, 0x4 beq _080DC400 movs r0, 0 b _080DC402 .pool _080DC400: movs r0, 0x1 _080DC402: pop {r4} pop {r1} bx r1 thumb_func_end sub_80DC3C4 thumb_func_start sub_80DC408 sub_80DC408: @ 80DC408 push {r4,lr} adds r3, r0, 0 ldrh r2, [r3, 0x24] movs r0, 0x24 ldrsh r1, [r3, r0] movs r4, 0x30 ldrsh r0, [r3, r4] cmp r1, r0 bne _080DC440 ldr r0, =gUnknown_02039F34 ldr r0, [r0] movs r2, 0x2E ldrsh r1, [r3, r2] ldr r0, [r0, 0x14] lsls r1, 2 adds r1, r0 ldrb r2, [r1, 0x2] movs r0, 0x2 negs r0, r0 ands r0, r2 strb r0, [r1, 0x2] ldr r0, =SpriteCallbackDummy str r0, [r3, 0x1C] b _080DC446 .pool _080DC440: ldrh r0, [r3, 0x32] adds r0, r2, r0 strh r0, [r3, 0x24] _080DC446: pop {r4} pop {r0} bx r0 thumb_func_end sub_80DC408 thumb_func_start sub_80DC44C sub_80DC44C: @ 80DC44C push {r4-r6,lr} movs r2, 0 ldr r6, =gSprites ldr r5, =gUnknown_02039F34 ldr r4, =gUnknown_08587A6C ldr r3, =gUnknown_02039F26 _080DC458: ldr r0, [r5] ldr r1, [r0, 0x14] lsls r0, r2, 2 adds r0, r1 ldrb r0, [r0] lsls r1, r0, 4 adds r1, r0 lsls r1, 2 adds r1, r6 adds r0, r2, r3 ldrb r0, [r0] adds r0, r4 ldrb r0, [r0] strh r0, [r1, 0x22] adds r2, 0x1 cmp r2, 0x3 ble _080DC458 pop {r4-r6} pop {r0} bx r0 .pool thumb_func_end sub_80DC44C thumb_func_start sub_80DC490 sub_80DC490: @ 80DC490 push {r4-r7,lr} lsls r0, 24 lsrs r6, r0, 24 movs r3, 0 ldr r7, =gUnknown_02039F26 ldr r5, =gSprites ldr r4, =gUnknown_02039F34 movs r2, 0 _080DC4A0: adds r0, r3, r7 ldrb r0, [r0] cmp r0, 0x1 bls _080DC4E2 cmp r6, 0 bne _080DC4CC ldr r0, [r4] ldr r0, [r0, 0x14] adds r0, r2, r0 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r5 movs r1, 0xB4 b _080DC4E0 .pool _080DC4CC: ldr r0, [r4] ldr r0, [r0, 0x14] adds r0, r2, r0 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r5 movs r1, 0x80 lsls r1, 1 _080DC4E0: strh r1, [r0, 0x20] _080DC4E2: adds r2, 0x4 adds r3, 0x1 cmp r3, 0x3 ble _080DC4A0 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_80DC490 thumb_func_start sub_80DC4F0 sub_80DC4F0: @ 80DC4F0 push {r4-r7,lr} mov r7, r8 push {r7} ldr r0, =gUnknown_08587B08 bl LoadSpritePalette movs r5, 0 ldr r7, =gUnknown_02039F34 ldr r0, =gSprites mov r8, r0 movs r6, 0 _080DC506: lsls r0, r5, 3 ldr r1, =gUnknown_08587AE8 adds r0, r1 bl LoadCompressedObjectPic ldr r0, =gUnknown_08587B18 adds r0, r6, r0 ldr r2, =gUnknown_08587A70 ldr r1, =gUnknown_02039F26 adds r1, r5, r1 ldrb r1, [r1] adds r1, r2 ldrb r2, [r1] movs r1, 0xCC movs r3, 0 bl CreateSprite ldr r1, [r7] ldr r1, [r1, 0x14] lsls r4, r5, 2 adds r1, r4, r1 strb r0, [r1, 0x1] ldr r0, [r7] ldr r0, [r0, 0x14] adds r0, r4, r0 ldrb r1, [r0, 0x1] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 add r0, r8 ldr r1, =gUnknown_08587B80 bl SetSubspriteTables ldr r0, [r7] ldr r0, [r0, 0x14] adds r4, r0 ldrb r1, [r4, 0x1] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 add r0, r8 adds r0, 0x3E ldrb r1, [r0] movs r2, 0x4 orrs r1, r2 strb r1, [r0] adds r6, 0x18 adds r5, 0x1 cmp r5, 0x3 ble _080DC506 pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_80DC4F0 thumb_func_start sub_80DC594 sub_80DC594: @ 80DC594 push {lr} ldr r0, =gUnknown_08587BB0 bl LoadCompressedObjectPic ldr r0, =gUnknown_08587BB8 bl LoadSpritePalette ldr r0, =gUnknown_08587BC8 movs r1, 0x1E movs r2, 0x2C movs r3, 0x1 bl CreateSprite lsls r0, 24 lsrs r0, 24 ldr r2, =gSprites lsls r1, r0, 4 adds r1, r0 lsls r1, 2 adds r1, r2 adds r1, 0x3E ldrb r2, [r1] movs r3, 0x4 orrs r2, r3 strb r2, [r1] ldr r1, =gUnknown_02039F34 ldr r1, [r1] ldr r1, [r1] adds r1, 0x58 strb r0, [r1] pop {r0} bx r0 .pool thumb_func_end sub_80DC594 thumb_func_start sub_80DC5E8 sub_80DC5E8: @ 80DC5E8 push {r4,lr} ldr r0, =sub_80DC728 movs r1, 0x1E bl CreateTask lsls r0, 24 lsrs r0, 24 ldr r1, =gUnknown_02039F34 ldr r1, [r1] ldr r1, [r1] strb r0, [r1, 0xD] movs r2, 0 lsls r1, r0, 2 adds r1, r0 lsls r1, 3 ldr r4, =gTasks + 0x8 movs r3, 0xFF _080DC60A: lsls r0, r2, 3 adds r0, r1 adds r0, r4 strh r3, [r0] adds r0, r2, 0x1 lsls r0, 24 lsrs r2, r0, 24 cmp r2, 0x3 bls _080DC60A pop {r4} pop {r0} bx r0 .pool thumb_func_end sub_80DC5E8 thumb_func_start sub_80DC630 sub_80DC630: @ 80DC630 push {r4,r5,lr} lsls r0, 24 lsrs r0, 24 ldr r3, =gTasks ldr r1, =gUnknown_02039F34 ldr r5, [r1] ldr r1, [r5] ldrb r2, [r1, 0xD] lsls r1, r2, 2 adds r1, r2 adds r1, r0 lsls r1, 3 adds r3, 0x8 adds r1, r3 movs r4, 0 strh r4, [r1] lsls r0, 2 adds r0, 0x1 lsls r0, 1 ldr r1, [r5] ldrb r2, [r1, 0xD] lsls r1, r2, 2 adds r1, r2 lsls r1, 3 adds r0, r1 adds r0, r3 strh r4, [r0] pop {r4,r5} pop {r0} bx r0 .pool thumb_func_end sub_80DC630 thumb_func_start sub_80DC674 sub_80DC674: @ 80DC674 push {r4,lr} adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 ldr r0, =sub_80DC6A4 movs r1, 0x1F bl CreateTask lsls r0, 24 lsrs r0, 24 ldr r2, =gTasks lsls r1, r0, 2 adds r1, r0 lsls r1, 3 adds r1, r2 strh r4, [r1, 0x8] pop {r4} pop {r0} bx r0 .pool thumb_func_end sub_80DC674 thumb_func_start sub_80DC6A4 sub_80DC6A4: @ 80DC6A4 push {r4-r7,lr} lsls r0, 24 lsrs r0, 24 adds r6, r0, 0 ldr r2, =gTasks lsls r0, r6, 2 adds r0, r6 lsls r0, 3 adds r0, r2 ldrb r0, [r0, 0x8] adds r5, r0, 0 ldr r0, =gUnknown_02039F34 ldr r4, [r0] ldr r0, [r4] ldrb r1, [r0, 0xD] lsls r0, r1, 2 adds r0, r1 adds r0, r5 lsls r0, 3 adds r7, r2, 0 adds r7, 0x8 adds r1, r0, r7 movs r2, 0 ldrsh r0, [r1, r2] cmp r0, 0 beq _080DC6DC cmp r0, 0xFF bne _080DC716 _080DC6DC: movs r3, 0 movs r0, 0xFF strh r0, [r1] lsls r1, r5, 2 adds r1, 0x1 lsls r1, 1 ldr r0, [r4] ldrb r2, [r0, 0xD] lsls r0, r2, 2 adds r0, r2 lsls r0, 3 adds r1, r0 adds r1, r7 strh r3, [r1] ldr r0, [r4] adds r0, 0x14 adds r0, r5 ldrb r0, [r0] adds r0, 0x5 lsls r0, 4 adds r0, 0x6 ldr r3, =0x00004bff movs r1, 0x2 movs r2, 0 bl BlendPalette adds r0, r6, 0 bl DestroyTask _080DC716: pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_80DC6A4 thumb_func_start sub_80DC728 sub_80DC728: @ 80DC728 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} lsls r0, 24 lsrs r0, 24 movs r6, 0 lsls r1, r0, 2 adds r1, r0 mov r9, r1 lsls r7, r1, 3 ldr r0, =gTasks + 0x8 mov r8, r0 movs r1, 0x8 negs r1, r1 add r1, r8 mov r10, r1 _080DC74C: lsls r0, r6, 26 lsrs r3, r0, 24 lsls r0, r3, 1 adds r0, r7 mov r4, r8 adds r2, r0, r4 ldrh r4, [r2] movs r5, 0 ldrsh r0, [r2, r5] cmp r0, 0xFF beq _080DC7CA adds r0, r3, 0x1 lsls r1, r0, 1 adds r1, r7 add r1, r8 movs r5, 0 ldrsh r1, [r1, r5] adds r5, r0, 0 cmp r1, 0 bne _080DC77C adds r0, r4, 0x1 b _080DC77E .pool _080DC77C: subs r0, r4, 0x1 _080DC77E: strh r0, [r2] lsls r1, r3, 1 mov r0, r9 lsls r2, r0, 3 adds r0, r1, r2 mov r3, r10 adds r3, 0x8 adds r0, r3 movs r4, 0 ldrsh r0, [r0, r4] adds r4, r1, 0 cmp r0, 0x10 beq _080DC79C cmp r0, 0 bne _080DC7AA _080DC79C: lsls r0, r5, 1 adds r0, r2 adds r0, r3 ldrh r1, [r0] movs r2, 0x1 eors r1, r2 strh r1, [r0] _080DC7AA: ldr r0, =gUnknown_02039F34 ldr r0, [r0] ldr r0, [r0] adds r0, 0x14 adds r0, r6 ldrb r0, [r0] adds r0, 0x5 lsls r0, 4 adds r0, 0x6 adds r1, r4, r7 add r1, r8 ldrb r2, [r1] movs r1, 0x2 ldr r3, =0x00004bff bl BlendPalette _080DC7CA: adds r0, r6, 0x1 lsls r0, 24 lsrs r6, r0, 24 cmp r6, 0x3 bls _080DC74C pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_80DC728 thumb_func_start sub_80DC7EC sub_80DC7EC: @ 80DC7EC push {r4,lr} ldr r0, =sub_80DC8D0 movs r1, 0x1E bl CreateTask ldr r1, =gUnknown_02039F34 ldr r1, [r1] ldr r1, [r1] strb r0, [r1, 0xE] movs r4, 0 _080DC800: lsls r0, r4, 24 lsrs r0, 24 bl sub_80DC81C adds r4, 0x1 cmp r4, 0x3 ble _080DC800 pop {r4} pop {r0} bx r0 .pool thumb_func_end sub_80DC7EC thumb_func_start sub_80DC81C sub_80DC81C: @ 80DC81C push {r4,r5,lr} lsls r0, 24 lsrs r0, 24 ldr r3, =gTasks ldr r1, =gUnknown_02039F34 ldr r4, [r1] ldr r1, [r4] ldrb r2, [r1, 0xE] lsls r1, r2, 2 adds r1, r2 adds r1, r0 lsls r1, 3 adds r3, 0x8 adds r1, r3 movs r5, 0 movs r2, 0xFF strh r2, [r1] lsls r0, 2 adds r0, 0x1 lsls r0, 1 ldr r1, [r4] ldrb r2, [r1, 0xE] lsls r1, r2, 2 adds r1, r2 lsls r1, 3 adds r0, r1 adds r0, r3 strh r5, [r0] pop {r4,r5} pop {r0} bx r0 .pool thumb_func_end sub_80DC81C thumb_func_start sub_80DC864 sub_80DC864: @ 80DC864 push {r4,lr} movs r4, 0 _080DC868: lsls r0, r4, 24 lsrs r0, 24 bl sub_80DC87C adds r4, 0x1 cmp r4, 0x3 ble _080DC868 pop {r4} pop {r0} bx r0 thumb_func_end sub_80DC864 thumb_func_start sub_80DC87C sub_80DC87C: @ 80DC87C push {r4-r6,lr} adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 adds r0, r4, 0 bl sub_80DC81C adds r0, r4, 0x5 lsls r2, r0, 5 ldr r3, =gPlttBufferUnfaded + 0x14 adds r6, r2, r3 ldr r5, =gPlttBufferFaded + 0x14 adds r2, r5 ldr r1, =0x040000d4 str r6, [r1] str r2, [r1, 0x4] ldr r2, =0x80000001 str r2, [r1, 0x8] ldr r6, [r1, 0x8] lsls r0, 4 adds r4, 0xC adds r0, r4 lsls r0, 1 subs r3, 0x14 adds r3, r0, r3 subs r5, 0x14 adds r0, r5 str r3, [r1] str r0, [r1, 0x4] str r2, [r1, 0x8] ldr r0, [r1, 0x8] pop {r4-r6} pop {r0} bx r0 .pool thumb_func_end sub_80DC87C thumb_func_start sub_80DC8D0 sub_80DC8D0: @ 80DC8D0 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} lsls r0, 24 lsrs r0, 24 movs r7, 0 lsls r1, r0, 2 adds r1, r0 mov r9, r1 lsls r6, r1, 3 ldr r0, =gTasks + 0x8 mov r8, r0 ldr r1, =0x00004bff mov r10, r1 _080DC8F0: lsls r0, r7, 26 lsrs r3, r0, 24 lsls r0, r3, 1 adds r0, r6 mov r4, r8 adds r2, r0, r4 movs r5, 0 ldrsh r0, [r2, r5] cmp r0, 0xFF beq _080DC996 adds r0, r3, 0x2 lsls r0, 1 adds r0, r6 adds r1, r0, r4 ldrh r0, [r1] adds r0, 0x1 movs r4, 0 strh r0, [r1] lsls r0, 16 asrs r0, 16 cmp r0, 0x2 ble _080DC996 strh r4, [r1] adds r0, r3, 0x1 lsls r1, r0, 1 adds r1, r6 add r1, r8 movs r4, 0 ldrsh r1, [r1, r4] adds r4, r0, 0 cmp r1, 0 bne _080DC940 ldrh r0, [r2] adds r0, 0x1 b _080DC944 .pool _080DC940: ldrh r0, [r2] subs r0, 0x1 _080DC944: strh r0, [r2] lsls r1, r3, 1 mov r5, r9 lsls r2, r5, 3 adds r0, r1, r2 ldr r3, =gTasks adds r3, 0x8 adds r0, r3 movs r5, 0 ldrsh r0, [r0, r5] adds r5, r1, 0 cmp r0, 0x10 beq _080DC962 cmp r0, 0 bne _080DC970 _080DC962: lsls r0, r4, 1 adds r0, r2 adds r0, r3 ldrh r1, [r0] movs r2, 0x1 eors r1, r2 strh r1, [r0] _080DC970: adds r4, r7, 0x5 lsls r4, 4 adds r0, r4, 0 adds r0, 0xA adds r5, r6 add r5, r8 ldrb r2, [r5] movs r1, 0x1 mov r3, r10 bl BlendPalette adds r4, 0xC adds r4, r7 ldrb r2, [r5] adds r0, r4, 0 movs r1, 0x1 mov r3, r10 bl BlendPalette _080DC996: adds r0, r7, 0x1 lsls r0, 24 lsrs r7, r0, 24 cmp r7, 0x3 bls _080DC8F0 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_80DC8D0 thumb_func_start sub_80DC9B4 sub_80DC9B4: @ 80DC9B4 push {lr} lsls r0, 24 lsrs r2, r0, 24 ldr r0, =gUnknown_02039F34 ldr r0, [r0] ldr r1, [r0, 0x4] lsls r0, r2, 3 subs r0, r2 lsls r0, 2 adds r0, r1 ldrb r1, [r0, 0x15] movs r0, 0x10 ands r0, r1 cmp r0, 0 beq _080DC9E0 adds r0, r2, 0 bl sub_80DC630 b _080DC9E6 .pool _080DC9E0: adds r0, r2, 0 bl sub_80DC674 _080DC9E6: pop {r0} bx r0 thumb_func_end sub_80DC9B4 thumb_func_start sub_80DC9EC sub_80DC9EC: @ 80DC9EC push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x10 lsls r0, 24 lsrs r0, 24 str r0, [sp, 0xC] ldr r6, =gUnknown_02039F26 adds r6, r0, r6 ldrb r0, [r6] lsls r5, r0, 2 adds r5, r0 lsls r5, 27 movs r0, 0x80 lsls r0, 22 adds r5, r0 lsrs r5, 24 ldr r1, [sp, 0xC] lsls r4, r1, 3 ldr r0, =gUnknown_08589904 adds r0, r4, r0 bl LoadCompressedObjectPic ldr r0, =gUnknown_08589924 adds r4, r0 adds r0, r4, 0 bl LoadSpritePalette ldr r2, [sp, 0xC] lsls r4, r2, 1 adds r4, r2 lsls r4, 3 ldr r0, =gUnknown_0858998C adds r4, r0 adds r0, r4, 0 movs r1, 0xB8 adds r2, r5, 0 movs r3, 0x1D bl CreateSprite mov r9, r0 mov r3, r9 lsls r3, 24 lsrs r3, 24 mov r9, r3 adds r0, r4, 0 movs r1, 0xF8 adds r2, r5, 0 movs r3, 0x1D bl CreateSprite mov r8, r0 mov r0, r8 lsls r0, 24 lsrs r0, 24 mov r8, r0 lsls r5, r0, 4 add r5, r8 lsls r5, 2 ldr r1, =gSprites adds r5, r1 ldrh r2, [r5, 0x4] lsls r1, r2, 22 lsrs r1, 22 adds r1, 0x40 ldr r3, =0x000003ff adds r0, r3, 0 ands r1, r0 ldr r0, =0xfffffc00 ands r0, r2 orrs r0, r1 strh r0, [r5, 0x4] movs r4, 0xC0 lsls r4, 19 ldrb r0, [r6] lsls r3, r0, 2 adds r3, r0 lsls r3, 6 ldr r0, =0x0600e026 adds r3, r0 ldr r7, =gUnknown_02039F34 ldr r0, [r7] ldr r0, [r0, 0x34] str r0, [sp] movs r0, 0 movs r1, 0x3 adds r2, r4, 0 bl CopySpriteTiles ldrb r0, [r6] lsls r3, r0, 2 adds r3, r0 lsls r3, 6 ldr r1, =0x0600e036 adds r3, r1 ldr r0, [r7] ldr r0, [r0, 0x38] str r0, [sp] movs r0, 0 movs r1, 0x3 adds r2, r4, 0 bl CopySpriteTiles movs r4, 0 str r4, [sp, 0x4] ldr r0, [r7] ldr r1, [r0, 0x34] movs r6, 0xA0 lsls r6, 3 adds r1, r6 ldr r2, =0x050000c0 mov r10, r2 add r0, sp, 0x4 bl CpuSet str r4, [sp, 0x8] add r0, sp, 0x8 ldr r1, [r7] ldr r1, [r1, 0x38] adds r1, r6 mov r2, r10 bl CpuSet ldr r0, [r7] ldr r0, [r0, 0x34] mov r3, r9 lsls r4, r3, 4 add r4, r9 lsls r4, 2 ldr r1, =gSprites adds r4, r1 ldrh r1, [r4, 0x4] lsls r1, 22 lsrs r1, 17 ldr r6, =0x06010000 adds r1, r6 movs r2, 0x80 lsls r2, 4 mov r10, r2 movs r3, 0x1 bl RequestDma3Copy ldr r0, [r7] ldr r0, [r0, 0x38] ldrh r1, [r5, 0x4] lsls r1, 22 lsrs r1, 17 adds r1, r6 mov r2, r10 movs r3, 0x1 bl RequestDma3Copy mov r3, r8 strh r3, [r4, 0x2E] mov r0, r9 strh r0, [r5, 0x2E] mov r1, sp ldrh r1, [r1, 0xC] strh r1, [r4, 0x30] mov r2, sp ldrh r2, [r2, 0xC] strh r2, [r5, 0x30] mov r0, r9 add sp, 0x10 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r1} bx r1 .pool thumb_func_end sub_80DC9EC thumb_func_start sub_80DCB78 sub_80DCB78: @ 80DCB78 push {r4,r5,lr} lsls r0, 24 lsrs r0, 24 ldr r1, =gSprites lsls r5, r0, 4 adds r5, r0 lsls r5, 2 adds r5, r1 ldrh r0, [r5, 0x2E] lsls r0, 24 lsrs r0, 24 lsls r4, r0, 4 adds r4, r0 lsls r4, 2 adds r4, r1 adds r0, r4, 0 bl FreeSpriteOamMatrix adds r0, r4, 0 bl DestroySprite adds r0, r5, 0 bl DestroySpriteAndFreeResources pop {r4,r5} pop {r0} bx r0 .pool thumb_func_end sub_80DCB78 thumb_func_start sub_80DCBB4 sub_80DCBB4: @ 80DCBB4 push {lr} movs r1, 0xFD lsls r1, 6 movs r0, 0x50 bl SetGpuReg ldr r1, =0x00000907 movs r0, 0x52 bl SetGpuReg pop {r0} bx r0 .pool thumb_func_end sub_80DCBB4 thumb_func_start sub_80DCBD0 sub_80DCBD0: @ 80DCBD0 push {lr} movs r0, 0x50 movs r1, 0 bl SetGpuReg movs r0, 0x52 movs r1, 0 bl SetGpuReg pop {r0} bx r0 thumb_func_end sub_80DCBD0 thumb_func_start sub_80DCBE8 sub_80DCBE8: @ 80DCBE8 push {r4-r6,lr} mov r6, r9 mov r5, r8 push {r5,r6} adds r4, r0, 0 mov r9, r1 lsls r4, 24 lsrs r4, 24 mov r0, r9 lsls r0, 24 lsrs r0, 24 mov r9, r0 bl sub_80DCBB4 ldr r0, =gUnknown_02039F34 ldr r1, [r0] ldr r2, =gSprites mov r8, r2 lsls r6, r4, 4 adds r6, r4 lsls r6, 2 adds r0, r6, r2 movs r3, 0x30 ldrsh r2, [r0, r3] ldr r1, [r1, 0x14] lsls r2, 2 adds r2, r1 ldrb r1, [r2, 0x2] movs r3, 0x2 orrs r1, r3 strb r1, [r2, 0x2] ldrh r5, [r0, 0x2E] lsls r5, 24 lsrs r5, 24 movs r1, 0x1 bl StartSpriteAffineAnim lsls r4, r5, 4 adds r4, r5 lsls r4, 2 mov r1, r8 adds r0, r4, r1 movs r1, 0x1 bl StartSpriteAffineAnim movs r2, 0x1C add r8, r2 add r6, r8 ldr r0, =sub_80DCC84 str r0, [r6] add r4, r8 ldr r0, =SpriteCallbackDummy str r0, [r4] mov r3, r9 cmp r3, 0 bne _080DCC70 movs r0, 0x65 bl PlaySE b _080DCC76 .pool _080DCC70: movs r0, 0x2 bl PlaySE _080DCC76: pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r6} pop {r0} bx r0 thumb_func_end sub_80DCBE8 thumb_func_start sub_80DCC84 sub_80DCC84: @ 80DCC84 push {lr} mov r12, r0 adds r0, 0x3F ldrb r1, [r0] movs r0, 0x20 ands r0, r1 cmp r0, 0 beq _080DCCCC mov r0, r12 ldrh r1, [r0, 0x2E] lsls r1, 24 lsrs r1, 24 ldr r2, =gSprites lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r1, r0, r2 adds r0, r1, 0 adds r0, 0x3F ldrb r0, [r0] lsls r0, 26 cmp r0, 0 bge _080DCCCC mov r3, r12 adds r3, 0x3E ldrb r0, [r3] movs r2, 0x4 orrs r0, r2 strb r0, [r3] adds r1, 0x3E ldrb r0, [r1] orrs r0, r2 strb r0, [r1] ldr r0, =sub_80DCCD8 mov r1, r12 str r0, [r1, 0x1C] _080DCCCC: pop {r0} bx r0 .pool thumb_func_end sub_80DCC84 thumb_func_start sub_80DCCD8 sub_80DCCD8: @ 80DCCD8 push {lr} ldr r1, =gUnknown_02039F34 ldr r1, [r1] movs r3, 0x30 ldrsh r2, [r0, r3] ldr r1, [r1, 0x14] lsls r2, 2 adds r2, r1 ldrb r3, [r2, 0x2] movs r1, 0x3 negs r1, r1 ands r1, r3 strb r1, [r2, 0x2] ldrh r0, [r0, 0x2E] lsls r0, 24 lsrs r0, 24 bl sub_80DCB78 bl sub_80DCBD0 pop {r0} bx r0 .pool thumb_func_end sub_80DCCD8 thumb_func_start sub_80DCD08 sub_80DCD08: @ 80DCD08 push {lr} ldr r0, =0x02000000 movs r1, 0xD0 lsls r1, 9 adds r2, r0, r1 ldrb r1, [r2] adds r3, r0, 0 cmp r1, 0x1 bne _080DCD24 movs r0, 0 b _080DCD26 .pool _080DCD24: movs r0, 0x1 _080DCD26: strb r0, [r2] movs r1, 0xD0 lsls r1, 9 adds r0, r3, r1 ldrb r0, [r0] cmp r0, 0 bne _080DCD3E bl sub_80DAEA4 bl sub_80DB2BC b _080DCD42 _080DCD3E: bl sub_80DCD48 _080DCD42: pop {r0} bx r0 thumb_func_end sub_80DCD08 thumb_func_start sub_80DCD48 sub_80DCD48: @ 80DCD48 push {r4,r5,lr} sub sp, 0xC ldr r0, =gUnknown_020322D5 ldrb r0, [r0] cmp r0, 0 beq _080DCE44 ldr r0, =0x02000000 movs r1, 0xD0 lsls r1, 9 adds r0, r1 ldrb r0, [r0] cmp r0, 0 beq _080DCE44 cmp r0, 0 blt _080DCD7C cmp r0, 0x3 bgt _080DCD7C cmp r0, 0x2 blt _080DCD7C bl sub_80DF750 b _080DCE44 .pool _080DCD7C: movs r5, 0 _080DCD7E: adds r0, r5, 0 movs r1, 0 bl FillWindowPixelBuffer adds r0, r5, 0x1 lsls r0, 24 lsrs r5, r0, 24 cmp r5, 0x3 bls _080DCD7E movs r5, 0 _080DCD92: ldr r0, =gUnknown_02039F34 ldr r0, [r0] ldr r1, [r0, 0x4] lsls r0, r5, 3 subs r0, r5 lsls r0, 2 adds r0, r1 add r2, sp, 0x4 ldrh r4, [r0, 0x4] movs r1, 0x4 ldrsh r0, [r0, r1] cmp r0, 0 bge _080DCDBC negs r0, r0 lsls r0, 16 lsrs r4, r0, 16 adds r0, r2, 0 ldr r1, =gUnknown_085E8D40 bl StringCopy adds r2, r0, 0 _080DCDBC: lsls r1, r4, 16 asrs r1, 16 adds r0, r2, 0 movs r2, 0 movs r3, 0x4 bl ConvertIntToDecimalStringN ldr r0, =gUnknown_02039F26 adds r0, r5, r0 ldrb r0, [r0] movs r1, 0x7 str r1, [sp] add r1, sp, 0x4 movs r2, 0x37 movs r3, 0x1 bl sub_80DEBD0 adds r0, r5, 0x1 lsls r0, 24 lsrs r5, r0, 24 cmp r5, 0x3 bls _080DCD92 movs r5, 0 _080DCDEA: ldr r0, =gUnknown_02039F34 ldr r0, [r0] ldr r1, [r0, 0x4] lsls r0, r5, 3 subs r0, r5 lsls r0, 2 adds r0, r1 add r2, sp, 0x4 ldrh r4, [r0, 0x2] movs r1, 0x2 ldrsh r0, [r0, r1] cmp r0, 0 bge _080DCE14 negs r0, r0 lsls r0, 16 lsrs r4, r0, 16 adds r0, r2, 0 ldr r1, =gUnknown_085E8D40 bl StringCopy adds r2, r0, 0 _080DCE14: lsls r1, r4, 16 asrs r1, 16 adds r0, r2, 0 movs r2, 0 movs r3, 0x4 bl ConvertIntToDecimalStringN ldr r0, =gUnknown_02039F26 adds r0, r5, r0 ldrb r0, [r0] movs r1, 0x7 str r1, [sp] add r1, sp, 0x4 movs r2, 0x5 movs r3, 0x1 bl sub_80DEBD0 adds r0, r5, 0x1 lsls r0, 24 lsrs r5, r0, 24 cmp r5, 0x3 bls _080DCDEA bl sub_80DB2BC _080DCE44: add sp, 0xC pop {r4,r5} pop {r0} bx r0 .pool thumb_func_end sub_80DCD48 thumb_func_start sub_80DCE58 sub_80DCE58: @ 80DCE58 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x14 lsls r0, 24 lsrs r0, 24 mov r8, r0 add r4, sp, 0x4 adds r0, r4, 0 movs r1, 0 movs r2, 0x8 bl memset movs r5, 0 add r4, sp, 0x4 adds r6, r4, 0 movs r7, 0 _080DCE7E: bl Random adds r1, r0, 0 mov r0, sp adds r0, r7 adds r0, 0x4 strh r1, [r0] movs r2, 0 cmp r2, r5 bge _080DCEB6 lsls r0, r1, 16 lsrs r0, 16 mov r1, sp ldrh r1, [r1, 0x4] cmp r0, r1 beq _080DCEB0 _080DCE9E: adds r2, 0x1 cmp r2, r5 bge _080DCEB6 lsls r0, r2, 1 adds r0, r4, r0 ldrh r1, [r6] ldrh r0, [r0] cmp r1, r0 bne _080DCE9E _080DCEB0: subs r6, 0x2 subs r7, 0x2 subs r5, 0x1 _080DCEB6: adds r6, 0x2 adds r7, 0x2 adds r5, 0x1 cmp r5, 0x3 ble _080DCE7E mov r2, r8 cmp r2, 0 bne _080DCF80 movs r5, 0 ldr r3, =gUnknown_02039F26 mov r8, r3 _080DCECC: mov r6, r8 strb r5, [r6] movs r4, 0 cmp r4, r5 bge _080DCF48 ldr r7, =gUnknown_02039F00 mov r9, r7 lsls r0, r5, 1 adds r1, r0, 0 add r1, r9 mov r12, r1 mov r2, sp adds r2, 0x4 str r2, [sp, 0xC] add r0, sp adds r0, 0x4 str r0, [sp, 0x10] ldr r3, =gUnknown_02039F26 adds r6, r3, 0 mov r10, r6 _080DCEF4: ldrb r0, [r3] lsls r2, r0, 1 mov r7, r9 adds r0, r2, r7 movs r6, 0 ldrsh r1, [r0, r6] mov r7, r12 movs r6, 0 ldrsh r0, [r7, r6] cmp r1, r0 blt _080DCF1C cmp r1, r0 bne _080DCF40 ldr r7, [sp, 0xC] adds r0, r7, r2 ldrh r0, [r0] ldr r1, [sp, 0x10] ldrh r1, [r1] cmp r0, r1 bcs _080DCF40 _080DCF1C: adds r2, r5, 0 cmp r5, r4 ble _080DCF34 subs r0, r5, 0x1 mov r6, r10 adds r1, r0, r6 _080DCF28: ldrb r0, [r1] strb r0, [r1, 0x1] subs r1, 0x1 subs r2, 0x1 cmp r2, r4 bgt _080DCF28 _080DCF34: strb r5, [r3] b _080DCF48 .pool _080DCF40: adds r3, 0x1 adds r4, 0x1 cmp r4, r5 blt _080DCEF4 _080DCF48: cmp r4, r5 bne _080DCF50 mov r7, r8 strb r5, [r7] _080DCF50: movs r0, 0x1 add r8, r0 adds r5, 0x1 cmp r5, 0x3 ble _080DCECC ldr r4, =gUnknown_02039F26 mov r0, sp adds r1, r4, 0 movs r2, 0x4 bl memcpy movs r5, 0 _080DCF68: mov r1, sp adds r0, r1, r5 ldrb r0, [r0] adds r0, r4 strb r5, [r0] adds r5, 0x1 cmp r5, 0x3 ble _080DCF68 b _080DD034 .pool _080DCF80: mov r0, sp movs r1, 0xFF movs r2, 0x4 bl memset movs r5, 0 ldr r3, =gUnknown_02039F26 movs r6, 0 _080DCF90: ldr r0, =gUnknown_02039F34 ldr r0, [r0] ldr r0, [r0, 0x4] adds r0, r6, r0 ldrb r0, [r0, 0xB] lsls r0, 30 lsrs r2, r0, 30 mov r7, sp adds r1, r7, r2 b _080DCFB6 .pool _080DCFAC: adds r0, r2, 0x1 lsls r0, 24 lsrs r2, r0, 24 mov r0, sp adds r1, r0, r2 _080DCFB6: ldrb r0, [r1] cmp r0, 0xFF bne _080DCFAC strb r5, [r1] strb r2, [r3] adds r3, 0x1 adds r6, 0x1C adds r5, 0x1 cmp r5, 0x3 ble _080DCF90 movs r5, 0 _080DCFCC: movs r4, 0x3 adds r1, r5, 0x1 mov r10, r1 cmp r4, r5 ble _080DD02E mov r9, r4 ldr r2, =gUnknown_02039F26 mov r8, r2 add r3, sp, 0x4 mov r12, r3 _080DCFE0: ldr r6, =gUnknown_02039F34 ldr r0, [r6] ldr r1, [r0, 0x4] lsls r0, r4, 3 subs r0, r4 lsls r0, 2 adds r0, r1 adds r1, r0, 0 subs r1, 0x1C ldrb r2, [r1, 0xB] ldrb r3, [r0, 0xB] mov r1, r9 ands r1, r2 mov r0, r9 ands r0, r3 subs r3, r4, 0x1 cmp r1, r0 bne _080DD028 mov r0, r8 adds r7, r3, r0 adds r2, r4, r0 ldrb r6, [r7] ldrb r1, [r2] cmp r6, r1 bcs _080DD028 lsls r0, r3, 1 add r0, r12 lsls r1, r4, 1 add r1, r12 ldrh r0, [r0] ldrh r1, [r1] cmp r0, r1 bcs _080DD028 ldrb r0, [r2] strb r6, [r2] strb r0, [r7] _080DD028: adds r4, r3, 0 cmp r4, r5 bgt _080DCFE0 _080DD02E: mov r5, r10 cmp r5, 0x2 ble _080DCFCC _080DD034: add sp, 0x14 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_80DCE58 thumb_func_start sub_80DD04C sub_80DD04C: @ 80DD04C push {r4,r5,lr} movs r4, 0 movs r5, 0xA0 _080DD052: ldr r0, =0x0201a004 adds r0, r5, r0 ldr r1, =gUnknown_02039F26 adds r1, r4, r1 ldrb r1, [r1] adds r1, 0x5 lsls r1, 4 movs r2, 0x20 bl LoadPalette adds r5, 0x20 adds r4, 0x1 cmp r4, 0x3 ble _080DD052 bl sub_80DAEA4 pop {r4,r5} pop {r0} bx r0 .pool thumb_func_end sub_80DD04C thumb_func_start sub_80DD080 sub_80DD080: @ 80DD080 push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} lsls r0, 24 lsrs r6, r0, 24 ldr r4, =gUnknown_02039F34 ldr r3, [r4] ldr r1, [r3, 0x4] lsls r7, r6, 3 subs r0, r7, r6 lsls r5, r0, 2 adds r1, r5, r1 movs r2, 0 strh r2, [r1, 0x2] ldr r0, [r3, 0x4] adds r0, r5, r0 strh r2, [r0] adds r0, r6, 0 bl sub_80DBA68 lsls r0, 24 mov r8, r4 cmp r0, 0 bne _080DD0B4 b _080DD3C4 _080DD0B4: ldr r0, [r4] ldr r1, [r0, 0x4] adds r1, r5, r1 ldrh r0, [r1, 0x6] ldr r2, =gContestMoves lsls r0, 3 adds r0, r2 ldrb r2, [r0] mov r9, r2 ldrb r0, [r0, 0x1] lsls r0, 29 lsrs r0, 29 strb r0, [r1, 0xA] ldr r0, [r4] ldr r0, [r0, 0x4] adds r2, r5, r0 ldrh r0, [r2, 0x6] ldrh r1, [r2, 0x8] cmp r0, r1 bne _080DD110 cmp r0, 0 beq _080DD110 ldrb r0, [r2, 0x15] movs r1, 0x1 orrs r0, r1 strb r0, [r2, 0x15] ldr r0, [r4] ldr r2, [r0, 0x4] adds r2, r5, r2 ldrb r3, [r2, 0xB] lsls r1, r3, 25 lsrs r1, 29 adds r1, 0x1 movs r0, 0x7 ands r1, r0 lsls r1, 4 movs r0, 0x71 negs r0, r0 ands r0, r3 orrs r0, r1 strb r0, [r2, 0xB] b _080DD12C .pool _080DD110: ldr r4, =gUnknown_02039F34 ldr r0, [r4] ldr r0, [r0, 0x4] lsls r3, r6, 3 subs r1, r3, r6 lsls r1, 2 adds r1, r0 ldrb r2, [r1, 0xB] movs r0, 0x71 negs r0, r0 ands r0, r2 strb r0, [r1, 0xB] mov r8, r4 adds r7, r3, 0 _080DD12C: mov r2, r8 ldr r4, [r2] ldr r2, [r4, 0x4] subs r0, r7, r6 lsls r0, 2 adds r2, r0, r2 ldr r3, =gContestEffects mov r1, r9 lsls r5, r1, 2 adds r3, r5, r3 ldrb r1, [r3, 0x1] strh r1, [r2] ldr r1, [r4, 0x4] adds r0, r1 ldrh r1, [r0] strh r1, [r0, 0x2] ldr r1, [r4, 0x8] ldrb r0, [r3, 0x2] strh r0, [r1, 0x4] ldr r1, [r4, 0x8] ldrh r0, [r1, 0x4] strh r0, [r1, 0x6] ldr r0, [r4, 0x8] strb r6, [r0, 0x11] movs r2, 0 mov r9, r5 mov r4, r8 movs r3, 0 movs r1, 0 _080DD166: ldr r0, [r4] ldr r0, [r0, 0x4] adds r0, r1, r0 strb r3, [r0, 0xE] ldr r0, [r4] ldr r0, [r0, 0x8] adds r0, 0xD adds r0, r2 strb r3, [r0] adds r1, 0x1C adds r2, 0x1 cmp r2, 0x3 ble _080DD166 ldr r5, =gUnknown_02039F34 ldr r0, [r5] ldr r1, [r0, 0x4] subs r0, r7, r6 lsls r4, r0, 2 adds r2, r4, r1 ldrb r1, [r2, 0x15] movs r0, 0x10 ands r0, r1 cmp r0, 0 beq _080DD1B4 ldrh r0, [r2, 0x8] ldrh r1, [r2, 0x6] bl AreMovesContestCombo lsls r0, 24 cmp r0, 0 bne _080DD1B4 ldr r0, [r5] ldr r1, [r0, 0x4] adds r1, r4, r1 ldrb r2, [r1, 0x15] movs r0, 0x11 negs r0, r0 ands r0, r2 strb r0, [r1, 0x15] _080DD1B4: ldr r0, =gContestEffectFunctionTable add r0, r9 ldr r0, [r0] bl _call_via_r0 ldr r0, =gUnknown_02039F34 ldr r0, [r0] ldr r1, [r0, 0x4] subs r0, r7, r6 lsls r0, 2 adds r2, r0, r1 ldrb r1, [r2, 0x10] movs r0, 0x30 ands r0, r1 cmp r0, 0x10 bne _080DD1EC ldrh r1, [r2, 0x2] subs r1, 0xA movs r0, 0xD ldrsb r0, [r2, r0] b _080DD206 .pool _080DD1EC: ldrb r1, [r2, 0x11] movs r0, 0x20 ands r0, r1 cmp r0, 0 beq _080DD200 movs r1, 0xD ldrsb r1, [r2, r1] lsls r0, r1, 1 adds r0, r1 b _080DD204 _080DD200: movs r0, 0xD ldrsb r0, [r2, r0] _080DD204: ldrh r1, [r2, 0x2] _080DD206: adds r0, r1 strh r0, [r2, 0x2] ldr r5, =gUnknown_02039F34 ldr r0, [r5] ldr r1, [r0, 0x4] subs r0, r7, r6 lsls r4, r0, 2 adds r1, r4, r1 movs r0, 0 strb r0, [r1, 0x16] ldr r0, [r5] ldr r1, [r0, 0x4] adds r1, r4, r1 ldrb r2, [r1, 0x15] movs r0, 0x41 negs r0, r0 ands r0, r2 strb r0, [r1, 0x15] adds r0, r6, 0 bl sub_80DE1E8 lsls r0, 24 cmp r0, 0 beq _080DD2E2 ldr r0, [r5] ldr r1, [r0, 0x4] adds r1, r4, r1 ldrh r0, [r1, 0x8] ldrh r1, [r1, 0x6] bl AreMovesContestCombo lsls r0, 24 lsrs r3, r0, 24 cmp r3, 0 beq _080DD29C ldr r0, [r5] ldr r0, [r0, 0x4] adds r2, r4, r0 ldrb r1, [r2, 0x15] movs r0, 0x10 ands r0, r1 cmp r0, 0 beq _080DD29C strb r3, [r2, 0x16] ldr r0, [r5] ldr r1, [r0, 0x4] adds r1, r4, r1 ldrb r0, [r1, 0x15] movs r2, 0x40 orrs r0, r2 strb r0, [r1, 0x15] ldr r0, [r5] ldr r1, [r0, 0x4] adds r1, r4, r1 ldrb r2, [r1, 0x15] movs r0, 0x11 negs r0, r0 ands r0, r2 strb r0, [r1, 0x15] ldr r0, [r5] ldr r0, [r0, 0x4] adds r0, r4, r0 movs r1, 0 ldrsh r2, [r0, r1] ldrb r1, [r0, 0x16] muls r1, r2 strb r1, [r0, 0x17] ldr r0, [r5] ldr r1, [r0, 0x4] adds r1, r4, r1 ldrb r0, [r1, 0x15] movs r2, 0x8 b _080DD2C8 .pool _080DD29C: ldr r2, =gContestMoves ldr r5, =gUnknown_02039F34 ldr r0, [r5] ldr r1, [r0, 0x4] subs r0, r7, r6 lsls r4, r0, 2 adds r3, r4, r1 ldrh r0, [r3, 0x6] lsls r0, 3 adds r0, r2 ldrb r0, [r0, 0x2] cmp r0, 0 beq _080DD2D8 ldrb r0, [r3, 0x15] movs r1, 0x10 orrs r0, r1 strb r0, [r3, 0x15] ldr r0, [r5] ldr r1, [r0, 0x4] adds r1, r4, r1 ldrb r0, [r1, 0x15] movs r2, 0x40 _080DD2C8: orrs r0, r2 strb r0, [r1, 0x15] b _080DD2E2 .pool _080DD2D8: ldrb r1, [r3, 0x15] movs r0, 0x11 negs r0, r0 ands r0, r1 strb r0, [r3, 0x15] _080DD2E2: ldr r5, =gUnknown_02039F34 ldr r0, [r5] ldr r1, [r0, 0x4] subs r0, r7, r6 lsls r4, r0, 2 adds r2, r4, r1 ldrb r1, [r2, 0x15] movs r0, 0x1 mov r8, r0 ands r0, r1 cmp r0, 0 beq _080DD30A ldrb r0, [r2, 0xB] lsls r0, 25 lsrs r0, 29 adds r0, 0x1 lsls r1, r0, 2 adds r1, r0 lsls r1, 1 strb r1, [r2, 0x18] _080DD30A: ldr r0, [r5] ldr r0, [r0, 0x4] adds r2, r4, r0 ldrb r1, [r2, 0xC] mov r0, r8 ands r0, r1 cmp r0, 0 beq _080DD334 ldrb r1, [r2, 0x15] movs r0, 0x11 negs r0, r0 ands r0, r1 strb r0, [r2, 0x15] ldr r2, [r5] ldr r0, [r2, 0x4] adds r0, r4, r0 movs r1, 0 strh r1, [r0, 0x2] ldr r0, [r2, 0x4] adds r0, r4, r0 strh r1, [r0] _080DD334: ldr r0, [r5] ldr r0, [r0, 0x4] adds r0, r4, r0 ldrh r0, [r0, 0x6] bl sub_80DD9F0 ldr r1, [r5] ldr r1, [r1, 0x10] strb r0, [r1] ldr r2, [r5] ldr r0, [r2, 0x4] adds r0, r4, r0 ldrb r1, [r0, 0x11] movs r0, 0x10 ands r0, r1 cmp r0, 0 beq _080DD35C ldr r0, [r2, 0x10] mov r1, r8 strb r1, [r0] _080DD35C: ldr r1, [r5] ldr r3, [r1, 0x10] movs r0, 0 ldrsb r0, [r3, r0] cmp r0, 0 ble _080DD388 ldr r0, [r1] ldrb r0, [r0, 0x13] lsls r0, 24 asrs r0, 24 movs r1, 0 ldrsb r1, [r3, r1] adds r0, r1 cmp r0, 0x4 ble _080DD384 movs r0, 0x3C b _080DD38A .pool _080DD384: movs r0, 0xA b _080DD38A _080DD388: movs r0, 0 _080DD38A: strb r0, [r3, 0x2] bl Random lsls r0, 16 lsrs r0, 16 movs r1, 0x3 bl __umodsi3 lsls r0, 24 lsrs r0, 24 movs r2, 0 b _080DD3AE _080DD3A2: subs r0, 0x1 lsls r0, 24 lsrs r0, 24 _080DD3A8: adds r2, 0x1 cmp r2, 0x3 bgt _080DD3B6 _080DD3AE: cmp r2, r6 beq _080DD3A8 cmp r0, 0 bne _080DD3A2 _080DD3B6: ldr r0, =gUnknown_02039F34 ldr r0, [r0] ldr r1, [r0, 0x4] subs r0, r7, r6 lsls r0, 2 adds r0, r1 strb r2, [r0, 0x1B] _080DD3C4: pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_80DD080 thumb_func_start sub_80DD3D4 sub_80DD3D4: @ 80DD3D4 lsls r0, 24 lsrs r0, 24 ldr r2, =gUnknown_02039F34 ldr r2, [r2] ldr r3, [r2, 0x4] lsls r2, r0, 3 subs r2, r0 lsls r2, 2 adds r2, r3 strb r1, [r2, 0x13] bx lr .pool thumb_func_end sub_80DD3D4 thumb_func_start sub_80DD3F0 sub_80DD3F0: @ 80DD3F0 lsls r0, 24 lsrs r0, 24 ldr r2, =gUnknown_02039F34 ldr r2, [r2] ldr r3, [r2, 0x4] lsls r2, r0, 3 subs r2, r0 lsls r2, 2 adds r2, r3 strb r1, [r2, 0x14] bx lr .pool thumb_func_end sub_80DD3F0 thumb_func_start sub_80DD40C sub_80DD40C: @ 80DD40C push {lr} lsls r0, 24 lsrs r0, 24 adds r3, r0, 0 lsls r1, 24 lsrs r1, 24 adds r2, r1, 0 cmp r1, 0x3B bls _080DD426 movs r1, 0x35 bl sub_80DD3D4 b _080DD456 _080DD426: cmp r1, 0x27 bls _080DD432 movs r1, 0x34 bl sub_80DD3D4 b _080DD456 _080DD432: cmp r1, 0x1D bls _080DD43E movs r1, 0x33 bl sub_80DD3D4 b _080DD456 _080DD43E: cmp r1, 0x13 bls _080DD44A movs r1, 0x32 bl sub_80DD3D4 b _080DD456 _080DD44A: cmp r2, 0x9 bls _080DD456 adds r0, r3, 0 movs r1, 0x31 bl sub_80DD3D4 _080DD456: pop {r0} bx r0 thumb_func_end sub_80DD40C thumb_func_start sub_80DD45C sub_80DD45C: @ 80DD45C push {r4-r6,lr} adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 lsls r1, 24 lsrs r6, r1, 24 ldr r0, =gStringVar1 lsls r1, r4, 6 ldr r2, =gUnknown_02039E02 adds r1, r2 bl StringCopy ldr r0, =gStringVar2 ldr r5, =gUnknown_02039F34 ldr r1, [r5] ldr r2, [r1, 0x4] lsls r1, r4, 3 subs r1, r4 lsls r1, 2 adds r1, r2 ldrh r2, [r1, 0x6] movs r1, 0xD muls r1, r2 ldr r2, =gMoveNames adds r1, r2 bl StringCopy ldr r3, =gContestMoves ldr r1, [r5] ldr r0, [r1, 0x8] ldrb r2, [r0, 0x11] ldr r1, [r1, 0x4] lsls r0, r2, 3 subs r0, r2 lsls r0, 2 adds r0, r1 ldrh r0, [r0, 0x6] lsls r0, 3 adds r0, r3 ldrb r0, [r0, 0x1] lsls r1, r0, 29 cmp r1, 0 bne _080DD4DC ldr r0, =gStringVar3 ldr r1, =gUnknown_0827E837 bl StringCopy b _080DD52C .pool _080DD4DC: lsrs r0, r1, 29 cmp r0, 0x1 bne _080DD4F4 ldr r0, =gStringVar3 ldr r1, =gUnknown_0827E83F bl StringCopy b _080DD52C .pool _080DD4F4: lsrs r0, r1, 29 cmp r0, 0x2 bne _080DD50C ldr r0, =gStringVar3 ldr r1, =gUnknown_0827E847 bl StringCopy b _080DD52C .pool _080DD50C: lsrs r0, r1, 29 cmp r0, 0x3 bne _080DD524 ldr r0, =gStringVar3 ldr r1, =gUnknown_0827E850 bl StringCopy b _080DD52C .pool _080DD524: ldr r0, =gStringVar3 ldr r1, =gUnknown_0827E85A bl StringCopy _080DD52C: ldr r4, =gStringVar4 ldr r1, =gUnknown_08587E10 lsls r0, r6, 2 adds r0, r1 ldr r1, [r0] adds r0, r4, 0 bl StringExpandPlaceholders bl sub_80DB89C adds r0, r4, 0 movs r1, 0x1 bl sub_80DEC30 pop {r4-r6} pop {r0} bx r0 .pool thumb_func_end sub_80DD45C thumb_func_start sub_80DD560 sub_80DD560: @ 80DD560 push {r4,lr} lsls r0, 24 lsrs r0, 24 ldr r4, =gUnknown_02039F34 ldr r1, [r4] ldr r3, [r1, 0x4] lsls r1, r0, 3 subs r1, r0 lsls r1, 2 adds r3, r1, r3 ldrb r0, [r3, 0xC] movs r2, 0x1 orrs r0, r2 strb r0, [r3, 0xC] ldr r0, [r4] ldr r0, [r0, 0x4] adds r1, r0 movs r0, 0 strh r0, [r1, 0x6] pop {r4} pop {r0} bx r0 .pool thumb_func_end sub_80DD560 thumb_func_start sub_80DD590 sub_80DD590: @ 80DD590 push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} sub sp, 0x8 movs r0, 0 mov r12, r0 movs r4, 0 ldr r1, =gUnknown_02039F26 mov r9, r1 add r2, sp, 0x4 mov r6, r9 movs r5, 0 adds r3, r2, 0 _080DD5AC: mov r0, sp adds r1, r0, r4 adds r0, r4, r6 ldrb r0, [r0] strb r0, [r1] adds r0, r3, r4 strb r5, [r0] adds r4, 0x1 cmp r4, 0x3 ble _080DD5AC movs r4, 0 ldr r7, =gUnknown_02039F34 ldr r1, [r7] mov r8, r1 adds r5, r2, 0 _080DD5CA: movs r2, 0 mov r0, r8 ldr r1, [r0, 0x4] _080DD5D0: ldrb r0, [r1, 0x19] cmp r0, r4 beq _080DD604 adds r1, 0x1C adds r2, 0x1 cmp r2, 0x3 ble _080DD5D0 _080DD5DE: cmp r2, 0x4 bne _080DD684 movs r2, 0 ldrb r0, [r5] cmp r0, 0 bne _080DD612 ldr r0, [r7] ldr r0, [r0, 0x4] ldrb r0, [r0, 0x19] cmp r0, 0xFF bne _080DD612 mov r12, r2 movs r2, 0x1 b _080DD63A .pool _080DD604: mov r1, sp adds r0, r1, r2 strb r4, [r0] adds r1, r5, r2 movs r0, 0x1 strb r0, [r1] b _080DD5DE _080DD612: adds r2, 0x1 cmp r2, 0x3 bgt _080DD676 adds r0, r5, r2 ldrb r0, [r0] cmp r0, 0 bne _080DD612 ldr r0, [r7] ldr r1, [r0, 0x4] lsls r0, r2, 3 subs r0, r2 lsls r0, 2 adds r0, r1 ldrb r0, [r0, 0x19] cmp r0, 0xFF bne _080DD612 lsls r0, r2, 24 lsrs r0, 24 mov r12, r0 adds r2, 0x1 _080DD63A: cmp r2, 0x3 bgt _080DD676 ldr r6, =gUnknown_02039F26 lsls r0, r2, 3 subs r0, r2 lsls r3, r0, 2 _080DD646: adds r0, r5, r2 ldrb r0, [r0] cmp r0, 0 bne _080DD66E ldr r0, [r7] ldr r0, [r0, 0x4] adds r0, r3, r0 ldrb r0, [r0, 0x19] cmp r0, 0xFF bne _080DD66E mov r1, r12 adds r0, r1, r6 adds r1, r2, r6 ldrb r0, [r0] ldrb r1, [r1] cmp r0, r1 bls _080DD66E lsls r0, r2, 24 lsrs r0, 24 mov r12, r0 _080DD66E: adds r3, 0x1C adds r2, 0x1 cmp r2, 0x3 ble _080DD646 _080DD676: mov r0, sp add r0, r12 strb r4, [r0] mov r0, r12 adds r1, r5, r0 movs r0, 0x1 strb r0, [r1] _080DD684: adds r4, 0x1 cmp r4, 0x3 ble _080DD5CA movs r4, 0 ldr r6, =gUnknown_02039F34 movs r5, 0 _080DD690: ldr r0, [r6] ldr r1, [r0, 0x8] adds r1, r4 mov r0, sp adds r3, r0, r4 ldrb r0, [r3] strb r0, [r1] ldr r0, [r6] ldr r0, [r0, 0x4] adds r0, r5, r0 movs r1, 0xFF strb r1, [r0, 0x19] ldr r0, [r6] ldr r1, [r0, 0x4] adds r1, r5, r1 ldrb r2, [r1, 0x10] movs r0, 0x3F ands r0, r2 strb r0, [r1, 0x10] mov r0, r9 adds r1, r4, r0 ldrb r0, [r3] strb r0, [r1] adds r5, 0x1C adds r4, 0x1 cmp r4, 0x3 ble _080DD690 add sp, 0x8 pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_80DD590 thumb_func_start sub_80DD6DC sub_80DD6DC: @ 80DD6DC push {lr} adds r2, r0, 0 ldrh r0, [r2, 0x30] adds r1, r0, 0x1 strh r1, [r2, 0x30] lsls r0, 16 asrs r0, 16 cmp r0, 0x54 ble _080DD712 movs r0, 0 strh r0, [r2, 0x30] adds r3, r2, 0 adds r3, 0x3E ldrb r0, [r3] movs r1, 0x4 orrs r0, r1 strb r0, [r3] ldr r0, =SpriteCallbackDummy str r0, [r2, 0x1C] ldr r0, =gUnknown_02039F34 ldr r0, [r0] ldr r2, [r0] ldrb r1, [r2, 0x6] movs r0, 0x11 negs r0, r0 ands r0, r1 strb r0, [r2, 0x6] _080DD712: pop {r0} bx r0 .pool thumb_func_end sub_80DD6DC thumb_func_start sub_80DD720 sub_80DD720: @ 80DD720 push {r4,r5,lr} lsls r0, 24 lsrs r1, r0, 24 ldr r0, =gUnknown_02039F34 ldr r0, [r0] ldr r0, [r0] ldrb r5, [r0, 0x12] cmp r1, 0x8 bls _080DD734 b _080DD8D4 _080DD734: lsls r0, r1, 2 ldr r1, =_080DD748 adds r0, r1 ldr r0, [r0] mov pc, r0 .pool .align 2, 0 _080DD748: .4byte _080DD76C .4byte _080DD76C .4byte _080DD79C .4byte _080DD7D0 .4byte _080DD804 .4byte _080DD838 .4byte _080DD86C .4byte _080DD8D4 .4byte _080DD8A0 _080DD76C: ldr r0, =gSprites lsls r4, r5, 4 adds r1, r4, r5 lsls r1, 2 adds r1, r0 ldrh r0, [r1, 0x2E] ldr r2, =0x000003ff ands r2, r0 ldrh r3, [r1, 0x4] ldr r0, =0xfffffc00 ands r0, r3 orrs r0, r2 strh r0, [r1, 0x4] movs r0, 0x20 bl PlaySE b _080DD8F8 .pool _080DD79C: ldr r0, =gSprites lsls r4, r5, 4 adds r1, r4, r5 lsls r1, 2 adds r1, r0 ldrh r2, [r1, 0x2E] adds r2, 0x4 ldr r3, =0x000003ff adds r0, r3, 0 ands r2, r0 ldrh r3, [r1, 0x4] ldr r0, =0xfffffc00 ands r0, r3 orrs r0, r2 strh r0, [r1, 0x4] movs r0, 0x1F bl PlaySE b _080DD8F8 .pool _080DD7D0: ldr r0, =gSprites lsls r4, r5, 4 adds r1, r4, r5 lsls r1, 2 adds r1, r0 ldrh r2, [r1, 0x2E] adds r2, 0x8 ldr r3, =0x000003ff adds r0, r3, 0 ands r2, r0 ldrh r3, [r1, 0x4] ldr r0, =0xfffffc00 ands r0, r3 orrs r0, r2 strh r0, [r1, 0x4] movs r0, 0x1F bl PlaySE b _080DD8F8 .pool _080DD804: ldr r0, =gSprites lsls r4, r5, 4 adds r1, r4, r5 lsls r1, 2 adds r1, r0 ldrh r2, [r1, 0x2E] adds r2, 0xC ldr r3, =0x000003ff adds r0, r3, 0 ands r2, r0 ldrh r3, [r1, 0x4] ldr r0, =0xfffffc00 ands r0, r3 orrs r0, r2 strh r0, [r1, 0x4] movs r0, 0x2D bl PlaySE b _080DD8F8 .pool _080DD838: ldr r0, =gSprites lsls r4, r5, 4 adds r1, r4, r5 lsls r1, 2 adds r1, r0 ldrh r2, [r1, 0x2E] adds r2, 0xC ldr r3, =0x000003ff adds r0, r3, 0 ands r2, r0 ldrh r3, [r1, 0x4] ldr r0, =0xfffffc00 ands r0, r3 orrs r0, r2 strh r0, [r1, 0x4] movs r0, 0x2D bl PlaySE b _080DD8F8 .pool _080DD86C: ldr r0, =gSprites lsls r4, r5, 4 adds r1, r4, r5 lsls r1, 2 adds r1, r0 ldrh r2, [r1, 0x2E] adds r2, 0x10 ldr r3, =0x000003ff adds r0, r3, 0 ands r2, r0 ldrh r3, [r1, 0x4] ldr r0, =0xfffffc00 ands r0, r3 orrs r0, r2 strh r0, [r1, 0x4] movs r0, 0x2D bl PlaySE b _080DD8F8 .pool _080DD8A0: ldr r0, =gSprites lsls r4, r5, 4 adds r1, r4, r5 lsls r1, 2 adds r1, r0 ldrh r2, [r1, 0x2E] adds r2, 0x18 ldr r3, =0x000003ff adds r0, r3, 0 ands r2, r0 ldrh r3, [r1, 0x4] ldr r0, =0xfffffc00 ands r0, r3 orrs r0, r2 strh r0, [r1, 0x4] movs r0, 0xC3 bl PlaySE b _080DD8F8 .pool _080DD8D4: ldr r0, =gSprites lsls r4, r5, 4 adds r1, r4, r5 lsls r1, 2 adds r1, r0 ldrh r2, [r1, 0x2E] adds r2, 0x14 ldr r3, =0x000003ff adds r0, r3, 0 ands r2, r0 ldrh r3, [r1, 0x4] ldr r0, =0xfffffc00 ands r0, r3 orrs r0, r2 strh r0, [r1, 0x4] movs r0, 0x2D bl PlaySE _080DD8F8: adds r2, r4, 0 ldr r4, =gSprites adds r2, r5 lsls r2, 2 adds r1, r2, r4 movs r0, 0 strh r0, [r1, 0x30] adds r1, 0x3E ldrb r3, [r1] subs r0, 0x5 ands r0, r3 strb r0, [r1] adds r4, 0x1C adds r2, r4 ldr r0, =sub_80DD6DC str r0, [r2] ldr r0, =gUnknown_02039F34 ldr r0, [r0] ldr r2, [r0] ldrb r0, [r2, 0x6] movs r1, 0x10 orrs r0, r1 strb r0, [r2, 0x6] pop {r4,r5} pop {r0} bx r0 .pool thumb_func_end sub_80DD720 thumb_func_start sub_80DD940 sub_80DD940: @ 80DD940 push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} movs r5, 0 ldr r6, =gUnknown_02039F34 ldr r0, =gSprites mov r9, r0 ldr r0, =0x06010000 mov r8, r0 ldr r7, =0x04000008 _080DD956: ldr r0, [r6] ldr r1, [r0] movs r0, 0x13 ldrsb r0, [r1, r0] ldr r4, =gUnknown_08D8EC24 cmp r5, r0 bge _080DD966 adds r4, 0x40 _080DD966: adds r0, r1, 0 adds r0, 0x58 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 add r0, r9 ldrh r1, [r0, 0x4] lsls r1, 22 lsrs r1, 22 adds r0, r5, 0 adds r0, 0x11 adds r1, r0 lsls r1, 5 add r1, r8 adds r0, r4, 0 adds r2, r7, 0 bl CpuSet adds r0, r4, 0 adds r0, 0x20 ldr r1, [r6] ldr r1, [r1] adds r1, 0x58 ldrb r2, [r1] lsls r1, r2, 4 adds r1, r2 lsls r1, 2 add r1, r9 ldrh r1, [r1, 0x4] lsls r1, 22 lsrs r1, 22 adds r2, r5, 0 adds r2, 0x19 adds r1, r2 lsls r1, 5 add r1, r8 adds r2, r7, 0 bl CpuSet ldr r0, [r6] ldr r0, [r0] ldrb r0, [r0, 0x13] lsls r0, 24 asrs r0, 24 cmp r0, 0x4 ble _080DD9C8 bl sub_80DDA20 _080DD9C8: adds r5, 0x1 cmp r5, 0x4 ble _080DD956 pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_80DD940 thumb_func_start sub_80DD9F0 sub_80DD9F0: @ 80DD9F0 lsls r0, 16 ldr r3, =gUnknown_085899EC ldr r1, =gContestMoves lsrs r0, 13 adds r0, r1 ldrb r1, [r0, 0x1] lsls r1, 29 lsrs r1, 29 ldr r0, =gUnknown_02039F2C ldrh r2, [r0] lsls r0, r2, 2 adds r0, r2 adds r1, r0 adds r1, r3 movs r0, 0 ldrsb r0, [r1, r0] bx lr .pool thumb_func_end sub_80DD9F0 thumb_func_start sub_80DDA20 sub_80DDA20: @ 80DDA20 push {r4,r5,lr} ldr r0, =c3_08130B10 movs r1, 0xA bl CreateTask adds r5, r0, 0 lsls r5, 24 lsrs r5, 24 ldr r0, =gTasks lsls r4, r5, 2 adds r4, r5 lsls r4, 3 adds r4, r0 movs r0, 0x1 strh r0, [r4, 0xA] ldr r0, =0x0000abe2 bl IndexOfSpritePaletteTag lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0xC] adds r0, r5, 0 pop {r4,r5} pop {r1} bx r1 .pool thumb_func_end sub_80DDA20 thumb_func_start c3_08130B10 c3_08130B10: @ 80DDA60 push {r4-r6,lr} lsls r0, 24 lsrs r5, r0, 24 ldr r1, =gTasks lsls r0, r5, 2 adds r0, r5 lsls r0, 3 adds r2, r0, r1 ldrh r0, [r2, 0x8] adds r0, 0x1 strh r0, [r2, 0x8] lsls r0, 16 asrs r0, 16 cmp r0, 0x1 bne _080DDAFE movs r0, 0 strh r0, [r2, 0x8] movs r3, 0xE ldrsh r0, [r2, r3] cmp r0, 0 bne _080DDA94 ldrh r0, [r2, 0x10] adds r0, 0x1 b _080DDA98 .pool _080DDA94: ldrh r0, [r2, 0x10] subs r0, 0x1 _080DDA98: strh r0, [r2, 0x10] lsls r0, r5, 2 adds r0, r5 lsls r0, 3 adds r4, r0, r1 movs r1, 0xC ldrsh r0, [r4, r1] lsls r0, 4 movs r3, 0x84 lsls r3, 1 adds r6, r3, 0 adds r0, r6 lsls r0, 16 lsrs r0, 16 ldrb r2, [r4, 0x10] ldr r3, =0x00007fff movs r1, 0x1 bl BlendPalette movs r1, 0x10 ldrsh r0, [r4, r1] cmp r0, 0 beq _080DDACA cmp r0, 0x10 bne _080DDAFE _080DDACA: ldrh r0, [r4, 0xE] movs r1, 0x1 eors r0, r1 strh r0, [r4, 0xE] ldr r0, =gUnknown_02039F34 ldr r0, [r0] ldr r0, [r0] ldrb r0, [r0, 0x13] lsls r0, 24 asrs r0, 24 cmp r0, 0x4 bgt _080DDAFE movs r3, 0xC ldrsh r0, [r4, r3] lsls r0, 4 adds r0, r6 lsls r0, 16 lsrs r0, 16 movs r1, 0x1 movs r2, 0 movs r3, 0x1F bl BlendPalette adds r0, r5, 0 bl DestroyTask _080DDAFE: pop {r4-r6} pop {r0} bx r0 .pool thumb_func_end c3_08130B10 thumb_func_start sub_80DDB0C sub_80DDB0C: @ 80DDB0C push {r4,lr} ldr r0, =sub_80DDB6C movs r1, 0xA bl CreateTask ldr r3, =gSprites ldr r4, =gUnknown_02039F34 ldr r2, [r4] ldr r0, [r2] adds r0, 0x58 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r3 ldr r1, =0x0000ffba strh r1, [r0, 0x24] ldr r0, [r2] adds r0, 0x58 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r3 adds r0, 0x3E ldrb r2, [r0] movs r1, 0x5 negs r1, r1 ands r1, r2 strb r1, [r0] ldr r0, [r4] ldr r2, [r0] ldrb r0, [r2, 0x6] movs r1, 0x40 orrs r0, r1 strb r0, [r2, 0x6] pop {r4} pop {r0} bx r0 .pool thumb_func_end sub_80DDB0C thumb_func_start sub_80DDB6C sub_80DDB6C: @ 80DDB6C push {r4,r5,lr} lsls r0, 24 lsrs r0, 24 adds r3, r0, 0 ldr r4, =gUnknown_02039F34 ldr r0, [r4] ldr r0, [r0] adds r0, 0x58 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 ldr r1, =gSprites adds r2, r0, r1 ldr r0, =gTasks lsls r1, r3, 2 adds r1, r3 lsls r1, 3 adds r1, r0 movs r5, 0xD0 lsls r5, 3 adds r0, r5, 0 ldrh r5, [r1, 0x1C] adds r0, r5 strh r0, [r1, 0x1C] lsls r0, 16 asrs r0, 24 ldrh r5, [r2, 0x24] adds r0, r5 strh r0, [r2, 0x24] ldrb r0, [r1, 0x1C] strh r0, [r1, 0x1C] movs r1, 0x24 ldrsh r0, [r2, r1] cmp r0, 0 ble _080DDBB8 movs r0, 0 strh r0, [r2, 0x24] _080DDBB8: movs r5, 0x24 ldrsh r0, [r2, r5] cmp r0, 0 bne _080DDBD4 ldr r0, [r4] ldr r2, [r0] ldrb r1, [r2, 0x6] movs r0, 0x41 negs r0, r0 ands r0, r1 strb r0, [r2, 0x6] adds r0, r3, 0 bl DestroyTask _080DDBD4: pop {r4,r5} pop {r0} bx r0 .pool thumb_func_end sub_80DDB6C thumb_func_start sub_80DDBE8 sub_80DDBE8: @ 80DDBE8 push {r4,r5,lr} ldr r5, =gSprites ldr r4, =gUnknown_02039F34 ldr r0, [r4] ldr r2, [r0] adds r0, r2, 0 adds r0, 0x58 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r5 adds r0, 0x3E ldrb r0, [r0] lsls r0, 29 cmp r0, 0 bge _080DDC1C ldrb r1, [r2, 0x6] movs r0, 0x41 negs r0, r0 ands r0, r1 b _080DDC40 .pool _080DDC1C: ldr r0, =task08_080CD1CC movs r1, 0xA bl CreateTask ldr r2, [r4] ldr r0, [r2] adds r0, 0x58 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r5 movs r1, 0 strh r1, [r0, 0x24] ldr r2, [r2] ldrb r0, [r2, 0x6] movs r1, 0x40 orrs r0, r1 _080DDC40: strb r0, [r2, 0x6] pop {r4,r5} pop {r0} bx r0 .pool thumb_func_end sub_80DDBE8 thumb_func_start task08_080CD1CC task08_080CD1CC: @ 80DDC4C push {r4,r5,lr} lsls r0, 24 lsrs r0, 24 adds r4, r0, 0 ldr r5, =gUnknown_02039F34 ldr r0, [r5] ldr r0, [r0] adds r0, 0x58 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 ldr r1, =gSprites adds r3, r0, r1 ldr r0, =gTasks lsls r2, r4, 2 adds r2, r4 lsls r2, 3 adds r2, r0 movs r1, 0xD0 lsls r1, 3 adds r0, r1, 0 ldrh r1, [r2, 0x1C] adds r0, r1 strh r0, [r2, 0x1C] lsls r0, 16 asrs r0, 24 ldrh r1, [r3, 0x24] subs r1, r0 strh r1, [r3, 0x24] ldrb r0, [r2, 0x1C] strh r0, [r2, 0x1C] movs r2, 0x24 ldrsh r0, [r3, r2] movs r1, 0x46 negs r1, r1 cmp r0, r1 bge _080DDC9C ldr r0, =0x0000ffba strh r0, [r3, 0x24] _080DDC9C: movs r2, 0x24 ldrsh r0, [r3, r2] cmp r0, r1 bne _080DDCC4 adds r2, r3, 0 adds r2, 0x3E ldrb r0, [r2] movs r1, 0x4 orrs r0, r1 strb r0, [r2] ldr r0, [r5] ldr r2, [r0] ldrb r1, [r2, 0x6] movs r0, 0x41 negs r0, r0 ands r0, r1 strb r0, [r2, 0x6] adds r0, r4, 0 bl DestroyTask _080DDCC4: pop {r4,r5} pop {r0} bx r0 .pool thumb_func_end task08_080CD1CC thumb_func_start sub_80DDCDC sub_80DDCDC: @ 80DDCDC push {r4,lr} adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 ldr r0, =sub_80DDD20 movs r1, 0x5 bl CreateTask lsls r0, 24 lsrs r0, 24 ldr r2, =gTasks lsls r1, r0, 2 adds r1, r0 lsls r1, 3 adds r1, r2 lsls r4, 24 asrs r4, 24 strh r4, [r1, 0x8] ldr r0, =gUnknown_02039F34 ldr r0, [r0] ldr r2, [r0] ldrb r0, [r2, 0x6] movs r1, 0x20 orrs r0, r1 strb r0, [r2, 0x6] pop {r4} pop {r0} bx r0 .pool thumb_func_end sub_80DDCDC thumb_func_start sub_80DDD20 sub_80DDD20: @ 80DDD20 push {r4,r5,lr} lsls r0, 24 lsrs r5, r0, 24 ldr r1, =gTasks lsls r0, r5, 2 adds r0, r5 lsls r0, 3 adds r4, r0, r1 movs r1, 0x1C ldrsh r0, [r4, r1] cmp r0, 0x1 beq _080DDD54 cmp r0, 0x1 bgt _080DDD48 cmp r0, 0 beq _080DDD4E b _080DDD9C .pool _080DDD48: cmp r0, 0x2 beq _080DDD70 b _080DDD9C _080DDD4E: bl sub_80DDB0C b _080DDD64 _080DDD54: ldr r0, =gUnknown_02039F34 ldr r0, [r0] ldr r0, [r0] ldrb r1, [r0, 0x6] movs r0, 0x40 ands r0, r1 cmp r0, 0 bne _080DDD9C _080DDD64: ldrh r0, [r4, 0x1C] adds r0, 0x1 strh r0, [r4, 0x1C] b _080DDD9C .pool _080DDD70: ldrh r0, [r4, 0x1E] adds r1, r0, 0x1 strh r1, [r4, 0x1E] lsls r0, 16 asrs r0, 16 cmp r0, 0x14 ble _080DDD9C movs r0, 0 strh r0, [r4, 0x1E] bl sub_80DD940 ldr r0, =gUnknown_02039F34 ldr r0, [r0] ldr r2, [r0] ldrb r1, [r2, 0x6] movs r0, 0x21 negs r0, r0 ands r0, r1 strb r0, [r2, 0x6] adds r0, r5, 0 bl DestroyTask _080DDD9C: pop {r4,r5} pop {r0} bx r0 .pool thumb_func_end sub_80DDD20 thumb_func_start sub_80DDDA8 sub_80DDDA8: @ 80DDDA8 ldr r3, =gSprites ldr r0, =gUnknown_02039F34 ldr r2, [r0] ldr r0, [r2] adds r0, 0x58 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r3 movs r1, 0 strh r1, [r0, 0x24] ldr r0, [r2] adds r0, 0x58 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r3 adds r0, 0x3E ldrb r2, [r0] movs r1, 0x5 negs r1, r1 ands r1, r2 strb r1, [r0] bx lr .pool thumb_func_end sub_80DDDA8 thumb_func_start sub_80DDDE4 sub_80DDDE4: @ 80DDDE4 ldr r2, =gSprites ldr r0, =gUnknown_02039F34 ldr r0, [r0] ldr r0, [r0] adds r0, 0x58 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r2 adds r0, 0x3E ldrb r1, [r0] movs r2, 0x4 orrs r1, r2 strb r1, [r0] bx lr .pool thumb_func_end sub_80DDDE4 thumb_func_start sub_80DDE0C sub_80DDE0C: @ 80DDE0C push {lr} ldr r0, =sub_80DDE30 movs r1, 0xF bl CreateTask ldr r0, =gUnknown_02039F34 ldr r0, [r0] ldr r2, [r0] ldrb r0, [r2, 0x6] movs r1, 0x80 orrs r0, r1 strb r0, [r2, 0x6] pop {r0} bx r0 .pool thumb_func_end sub_80DDE0C thumb_func_start sub_80DDE30 sub_80DDE30: @ 80DDE30 push {r4,r5,lr} lsls r0, 24 lsrs r5, r0, 24 ldr r1, =gTasks lsls r0, r5, 2 adds r0, r5 lsls r0, 3 adds r4, r0, r1 ldrh r0, [r4, 0x1C] adds r1, r0, 0x1 strh r1, [r4, 0x1C] lsls r0, 16 asrs r0, 16 cmp r0, 0x6 ble _080DDEBA movs r0, 0 strh r0, [r4, 0x1C] movs r1, 0x1E ldrsh r0, [r4, r1] cmp r0, 0 bne _080DDE78 ldr r0, =0x02019000 ldr r1, =0x06002000 movs r2, 0x80 lsls r2, 5 movs r3, 0x1 bl RequestDma3Copy b _080DDE8C .pool _080DDE78: ldr r0, =0x02018000 ldr r1, =0x06002000 movs r2, 0x80 lsls r2, 5 movs r3, 0x1 bl RequestDma3Copy ldrh r0, [r4, 0x20] adds r0, 0x1 strh r0, [r4, 0x20] _080DDE8C: ldr r1, =gTasks lsls r0, r5, 2 adds r0, r5 lsls r0, 3 adds r0, r1 ldrh r1, [r0, 0x1E] movs r2, 0x1 eors r1, r2 strh r1, [r0, 0x1E] movs r1, 0x20 ldrsh r0, [r0, r1] cmp r0, 0x9 bne _080DDEBA ldr r0, =gUnknown_02039F34 ldr r0, [r0] ldr r2, [r0] ldrb r1, [r2, 0x6] movs r0, 0x7F ands r0, r1 strb r0, [r2, 0x6] adds r0, r5, 0 bl DestroyTask _080DDEBA: pop {r4,r5} pop {r0} bx r0 .pool thumb_func_end sub_80DDE30 thumb_func_start sub_80DDED0 sub_80DDED0: @ 80DDED0 push {r4-r7,lr} adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 lsls r1, 24 lsrs r5, r1, 24 ldr r0, =sub_80DDF80 movs r1, 0xA bl CreateTask lsls r0, 24 lsrs r6, r0, 24 lsls r4, 24 cmp r4, 0 ble _080DDF38 ldr r7, =0x0000237e lsls r0, r5, 24 adds r4, r0, 0 cmp r4, 0 ble _080DDF1C movs r5, 0 ldr r2, =gUnknown_02039F34 ldr r0, [r2] ldr r0, [r0] movs r1, 0x13 ldrsb r1, [r0, r1] lsls r0, r1, 1 adds r0, r1 lsls r0, 24 lsrs r3, r0, 24 b _080DDF4E .pool _080DDF1C: ldr r2, =gUnknown_02039F34 ldr r0, [r2] ldr r0, [r0] movs r1, 0x13 ldrsb r1, [r0, r1] lsls r0, r1, 1 adds r0, r1 lsls r0, 24 lsrs r5, r0, 24 movs r3, 0 b _080DDF4E .pool _080DDF38: movs r7, 0 lsls r0, r5, 24 adds r4, r0, 0 cmp r4, 0 ble _080DDF48 movs r5, 0 movs r3, 0xC b _080DDF4C _080DDF48: movs r5, 0xC movs r3, 0 _080DDF4C: ldr r2, =gUnknown_02039F34 _080DDF4E: ldr r1, =gTasks lsls r0, r6, 2 adds r0, r6 lsls r0, 3 adds r0, r1 strh r7, [r0, 0x8] strh r5, [r0, 0xA] asrs r1, r4, 24 strh r1, [r0, 0xC] strh r3, [r0, 0xE] ldr r0, [r2] ldr r2, [r0] ldrb r1, [r2, 0x7] movs r0, 0x2 negs r0, r0 ands r0, r1 strb r0, [r2, 0x7] pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_80DDED0 thumb_func_start sub_80DDF80 sub_80DDF80: @ 80DDF80 push {r4,r5,lr} lsls r0, 24 lsrs r5, r0, 24 ldr r2, =gTasks lsls r0, r5, 2 adds r0, r5 lsls r0, 3 adds r3, r0, r2 ldrh r0, [r3, 0x1C] adds r1, r0, 0x1 strh r1, [r3, 0x1C] lsls r0, 16 cmp r0, 0 blt _080DDFFC movs r0, 0 strh r0, [r3, 0x1C] movs r1, 0xC ldrsh r0, [r3, r1] cmp r0, 0 ble _080DDFB4 ldrh r0, [r3, 0xA] adds r0, 0x1 b _080DDFB8 .pool _080DDFB4: ldrh r0, [r3, 0xA] subs r0, 0x1 _080DDFB8: strh r0, [r3, 0xA] lsls r4, r5, 2 adds r4, r5 lsls r4, 3 adds r4, r2 ldrb r2, [r4, 0xA] ldrh r3, [r4, 0x8] movs r0, 0x11 movs r1, 0x1 bl BlendPalette ldrb r2, [r4, 0xA] ldrh r3, [r4, 0x8] movs r0, 0x1A movs r1, 0x1 bl BlendPalette movs r2, 0xA ldrsh r1, [r4, r2] movs r2, 0xE ldrsh r0, [r4, r2] cmp r1, r0 bne _080DDFFC adds r0, r5, 0 bl DestroyTask ldr r0, =gUnknown_02039F34 ldr r0, [r0] ldr r2, [r0] ldrb r1, [r2, 0x7] movs r0, 0x2 negs r0, r0 ands r0, r1 strb r0, [r2, 0x7] _080DDFFC: pop {r4,r5} pop {r0} bx r0 .pool thumb_func_end sub_80DDF80 thumb_func_start sub_80DE008 sub_80DE008: @ 80DE008 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} lsls r0, 24 lsrs r0, 24 mov r10, r0 movs r5, 0 ldr r0, =gUnknown_02039F34 mov r9, r0 mov r8, r9 ldr r6, =gSprites movs r4, 0 movs r7, 0 _080DE026: mov r1, r8 ldr r0, [r1] ldr r0, [r0, 0x4] adds r0, r7, r0 ldrb r1, [r0, 0x10] movs r0, 0xC0 ands r0, r1 cmp r0, 0 beq _080DE0BC mov r2, r10 cmp r2, 0 beq _080DE0BC lsls r0, r5, 24 lsrs r0, 24 bl sub_80DE0F0 mov r3, r8 ldr r1, [r3] ldr r1, [r1, 0x14] adds r1, r4, r1 ldrb r2, [r1, 0x1] lsls r1, r2, 4 adds r1, r2 lsls r1, 2 adds r1, r6 ldrh r1, [r1, 0x4] lsls r1, 22 lsrs r1, 17 ldr r2, =0x060100c0 adds r1, r2 ldr r2, =0x04000008 bl CpuSet mov r0, r8 ldr r3, [r0] ldr r0, [r3, 0x14] adds r0, r4, r0 ldrb r0, [r0, 0x1] lsls r1, r0, 4 adds r1, r0 lsls r1, 2 adds r1, r6 ldr r2, =gUnknown_08587A70 ldr r0, =gUnknown_02039F26 adds r0, r5, r0 ldrb r0, [r0] adds r0, r2 ldrb r0, [r0] strh r0, [r1, 0x22] ldr r0, [r3, 0x14] adds r0, r4, r0 ldrb r1, [r0, 0x1] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r6 adds r0, 0x3E ldrb r1, [r0] movs r3, 0x5 negs r3, r3 adds r2, r3, 0 ands r1, r2 b _080DE0D6 .pool _080DE0BC: mov r1, r9 ldr r0, [r1] ldr r0, [r0, 0x14] adds r0, r4, r0 ldrb r1, [r0, 0x1] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r6 adds r0, 0x3E ldrb r1, [r0] movs r2, 0x4 orrs r1, r2 _080DE0D6: strb r1, [r0] adds r4, 0x4 adds r7, 0x1C adds r5, 0x1 cmp r5, 0x3 ble _080DE026 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_80DE008 thumb_func_start sub_80DE0F0 sub_80DE0F0: @ 80DE0F0 push {lr} lsls r0, 24 lsrs r0, 24 ldr r1, =gUnknown_02039F34 ldr r1, [r1] ldr r2, [r1, 0x4] lsls r1, r0, 3 subs r1, r0 lsls r1, 2 adds r2, r1, r2 ldrb r1, [r2, 0x10] movs r0, 0xC0 ands r0, r1 cmp r0, 0x40 bne _080DE120 ldrb r0, [r2, 0x19] lsls r0, 5 ldr r1, =gUnknown_08D8E9B4 adds r0, r1 b _080DE122 .pool _080DE120: ldr r0, =gUnknown_08D8EA34 _080DE122: pop {r1} bx r1 .pool thumb_func_end sub_80DE0F0 thumb_func_start sub_80DE12C sub_80DE12C: @ 80DE12C push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x10 movs r7, 0 movs r0, 0x2 mov r10, r0 movs r0, 0x1 mov r8, r0 movs r0, 0x11 mov r9, r0 _080DE146: ldr r0, =gUnknown_02039F34 ldr r0, [r0] ldr r0, [r0, 0x8] adds r0, 0xD adds r0, r7 ldrb r0, [r0] cmp r0, 0 beq _080DE1CA lsls r0, r7, 24 lsrs r0, 24 bl sub_80DBCA8 lsls r0, 24 cmp r0, 0 bne _080DE1CA ldr r0, =gUnknown_02039F26 adds r0, r7, r0 ldrb r0, [r0] lsls r5, r0, 2 adds r5, r0 adds r6, r5, 0x2 movs r0, 0x3 bl sub_80DB748 adds r4, r0, 0 lsls r4, 16 lsrs r4, 16 lsls r6, 24 lsrs r6, 24 mov r0, r10 str r0, [sp] mov r0, r8 str r0, [sp, 0x4] mov r0, r9 str r0, [sp, 0x8] mov r0, r8 str r0, [sp, 0xC] movs r0, 0 adds r1, r4, 0 movs r2, 0x14 adds r3, r6, 0 bl sub_80DECB8 adds r4, 0x10 lsls r4, 16 lsrs r4, 16 adds r5, 0x3 lsls r5, 24 lsrs r5, 24 mov r0, r10 str r0, [sp] mov r0, r8 str r0, [sp, 0x4] mov r0, r9 str r0, [sp, 0x8] mov r0, r8 str r0, [sp, 0xC] movs r0, 0 adds r1, r4, 0 movs r2, 0x14 adds r3, r5, 0 bl sub_80DECB8 movs r0, 0x63 bl PlaySE _080DE1CA: adds r7, 0x1 cmp r7, 0x3 ble _080DE146 add sp, 0x10 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_80DE12C thumb_func_start sub_80DE1E8 sub_80DE1E8: @ 80DE1E8 push {lr} lsls r0, 24 lsrs r0, 24 ldr r1, =gUnknown_02039F34 ldr r1, [r1] ldr r2, [r1, 0x4] lsls r1, r0, 3 subs r1, r0 lsls r1, 2 adds r2, r1, r2 ldrb r1, [r2, 0x15] movs r3, 0x1 adds r0, r3, 0 ands r0, r1 cmp r0, 0 bne _080DE212 ldrb r1, [r2, 0xC] adds r0, r3, 0 ands r0, r1 cmp r0, 0 beq _080DE21C _080DE212: movs r0, 0 b _080DE21E .pool _080DE21C: movs r0, 0x1 _080DE21E: pop {r1} bx r1 thumb_func_end sub_80DE1E8 thumb_func_start sub_80DE224 sub_80DE224: @ 80DE224 push {r4-r7,lr} mov r7, r8 push {r7} sub sp, 0xC movs r0, 0xA bl GetGpuReg mov r1, sp strh r0, [r1] mov r2, sp ldrb r1, [r2] movs r4, 0x4 negs r4, r4 adds r0, r4, 0 ands r0, r1 strb r0, [r2] ldrb r1, [r2, 0x1] movs r0, 0x3F ands r0, r1 movs r1, 0x80 orrs r0, r1 strb r0, [r2, 0x1] ldrb r1, [r2, 0x1] movs r0, 0x21 negs r0, r0 ands r0, r1 strb r0, [r2, 0x1] ldrb r1, [r2] movs r0, 0xD negs r0, r0 mov r8, r0 ands r0, r1 strb r0, [r2] mov r0, sp ldrh r1, [r0] movs r0, 0xA bl SetGpuReg movs r0, 0x8 bl GetGpuReg mov r6, sp adds r6, 0x2 strh r0, [r6] movs r0, 0xC bl GetGpuReg add r5, sp, 0x4 strh r0, [r5] ldrb r1, [r6] adds r0, r4, 0 ands r0, r1 movs r1, 0x1 orrs r0, r1 strb r0, [r6] ldrb r0, [r5] ands r4, r0 orrs r4, r1 strb r4, [r5] ldrh r1, [r6] movs r0, 0x8 bl SetGpuReg ldrh r1, [r5] movs r0, 0xC bl SetGpuReg ldr r1, =gUnknown_02022E18 movs r0, 0xF0 strh r0, [r1] ldr r4, =gUnknown_02022E1A movs r0, 0xA0 strh r0, [r4] movs r0, 0x14 movs r1, 0xF0 bl SetGpuReg ldrh r1, [r4] movs r0, 0x16 bl SetGpuReg movs r0, 0 str r0, [sp, 0x8] add r0, sp, 0x8 ldr r4, =gUnknown_02039F34 ldr r1, [r4] ldr r1, [r1, 0x28] ldr r2, =0x05000400 bl CpuSet ldr r1, =gUnknown_08C17980 movs r0, 0x1 movs r2, 0 movs r3, 0 bl CopyToBgTilemapBuffer movs r0, 0x1 bl sub_80DED60 movs r5, 0 ldr r7, =gSprites movs r6, 0x4 _080DE2F0: ldr r0, [r4] ldr r0, [r0, 0x14] lsls r3, r5, 2 adds r0, r3, r0 ldrb r0, [r0] lsls r1, r0, 4 adds r1, r0 lsls r1, 2 adds r1, r7 ldrb r2, [r1, 0x5] mov r0, r8 ands r0, r2 orrs r0, r6 strb r0, [r1, 0x5] ldr r0, [r4] ldr r0, [r0, 0x14] adds r3, r0 ldrb r0, [r3, 0x1] lsls r1, r0, 4 adds r1, r0 lsls r1, 2 adds r1, r7 ldrb r2, [r1, 0x5] mov r0, r8 ands r0, r2 orrs r0, r6 strb r0, [r1, 0x5] adds r5, 0x1 cmp r5, 0x3 ble _080DE2F0 add sp, 0xC pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_80DE224 thumb_func_start sub_80DE350 sub_80DE350: @ 80DE350 push {r4-r7,lr} sub sp, 0x8 ldr r1, =0x06008000 movs r2, 0x80 lsls r2, 6 movs r0, 0 movs r3, 0x1 bl RequestDma3Fill movs r5, 0 str r5, [sp] ldr r6, =gUnknown_02039F34 ldr r0, [r6] ldr r1, [r0, 0x28] ldr r2, =0x05000400 mov r0, sp bl CpuSet movs r0, 0x1 bl sub_80DED60 movs r0, 0xA bl GetGpuReg add r3, sp, 0x4 strh r0, [r3] ldrb r1, [r3] movs r0, 0x4 negs r0, r0 ands r0, r1 movs r1, 0x1 orrs r0, r1 strb r0, [r3] mov r1, sp adds r1, 0x5 ldrb r2, [r1] movs r0, 0x3F ands r0, r2 strb r0, [r1] ldrb r2, [r1] movs r0, 0x21 negs r0, r0 ands r0, r2 strb r0, [r1] ldrb r1, [r3] movs r4, 0xD negs r4, r4 adds r0, r4, 0 ands r0, r1 movs r1, 0x8 orrs r0, r1 strb r0, [r3] ldrh r1, [r3] movs r0, 0xA bl SetGpuReg ldr r0, =gUnknown_02022E18 strh r5, [r0] ldr r0, =gUnknown_02022E1A strh r5, [r0] ldr r7, =gSprites _080DE3CA: ldr r0, [r6] ldr r0, [r0, 0x14] lsls r3, r5, 2 adds r0, r3, r0 ldrb r0, [r0] lsls r1, r0, 4 adds r1, r0 lsls r1, 2 adds r1, r7 ldrb r2, [r1, 0x5] adds r0, r4, 0 ands r0, r2 strb r0, [r1, 0x5] ldr r0, [r6] ldr r0, [r0, 0x14] adds r3, r0 ldrb r0, [r3, 0x1] lsls r1, r0, 4 adds r1, r0 lsls r1, 2 adds r1, r7 ldrb r2, [r1, 0x5] adds r0, r4, 0 ands r0, r2 strb r0, [r1, 0x5] adds r5, 0x1 cmp r5, 0x3 ble _080DE3CA add sp, 0x8 pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_80DE350 thumb_func_start sub_80DE424 sub_80DE424: @ 80DE424 push {r4,lr} adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 ldr r1, =gUnknown_02022E18 movs r0, 0 strh r0, [r1] ldr r1, =gUnknown_02022E1A movs r0, 0xA0 strh r0, [r1] movs r0, 0x62 movs r1, 0 bl PlaySE12WithPanning ldr r1, =gTasks lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r0, r1 ldr r1, =sub_80DE464 str r1, [r0] pop {r4} pop {r0} bx r0 .pool thumb_func_end sub_80DE424 thumb_func_start sub_80DE464 sub_80DE464: @ 80DE464 push {lr} lsls r0, 24 lsrs r3, r0, 24 ldr r1, =gUnknown_02022E1A ldrh r0, [r1] subs r0, 0x7 strh r0, [r1] lsls r0, 16 cmp r0, 0 bge _080DE47C movs r0, 0 strh r0, [r1] _080DE47C: ldrh r2, [r1] cmp r2, 0 bne _080DE496 ldr r0, =gTasks lsls r1, r3, 2 adds r1, r3 lsls r1, 3 adds r1, r0 strh r2, [r1, 0x8] strh r2, [r1, 0xA] strh r2, [r1, 0xC] ldr r0, =sub_80DE4A8 str r0, [r1] _080DE496: pop {r0} bx r0 .pool thumb_func_end sub_80DE464 thumb_func_start sub_80DE4A8 sub_80DE4A8: @ 80DE4A8 push {r4-r6,lr} lsls r0, 24 lsrs r4, r0, 24 ldr r1, =gTasks lsls r3, r4, 2 adds r0, r3, r4 lsls r0, 3 adds r5, r0, r1 movs r0, 0x8 ldrsh r1, [r5, r0] cmp r1, 0x1 beq _080DE52C cmp r1, 0x1 bgt _080DE4D0 cmp r1, 0 beq _080DE4DA b _080DE5B4 .pool _080DE4D0: cmp r1, 0x2 beq _080DE58A cmp r1, 0x3 beq _080DE5A4 b _080DE5B4 _080DE4DA: movs r2, 0 adds r6, r3, 0 ldr r5, =gUnknown_02039F34 ldr r3, =gUnknown_02039F26 _080DE4E2: ldr r0, [r5] ldr r1, [r0] adds r1, 0x14 adds r1, r2 adds r0, r2, r3 ldrb r0, [r0] strb r0, [r1] adds r2, 0x1 cmp r2, 0x3 ble _080DE4E2 bl sub_80DBF90 bl sub_80DC864 bl sub_80DB69C bl sub_80DD04C movs r0, 0x1 bl sub_80DE008 bl sub_80DC44C ldr r0, =gTasks adds r1, r6, r4 lsls r1, 3 adds r1, r0 movs r0, 0x1 strh r0, [r1, 0x8] b _080DE5B4 .pool _080DE52C: ldr r0, =gUnknown_02039F2A ldrb r0, [r0] ands r1, r0 cmp r1, 0 beq _080DE584 ldr r0, =gUnknown_02039F34 ldr r0, [r0] ldr r2, [r0] ldrb r0, [r2, 0x7] movs r1, 0x4 orrs r0, r1 strb r0, [r2, 0x7] bl sub_80DA8A4 lsls r0, 24 cmp r0, 0 beq _080DE552 bl sub_80DBAA0 _080DE552: ldr r4, =sub_80FCC88 adds r0, r4, 0 movs r1, 0 bl CreateTask lsls r0, 24 lsrs r0, 24 ldr r2, =sub_80DA110 adds r1, r4, 0 bl SetTaskFuncWithFollowupFunc bl sub_80DBF68 movs r0, 0x2 strh r0, [r5, 0x8] b _080DE5B4 .pool _080DE584: bl sub_80DBAA0 b _080DE59A _080DE58A: ldr r0, =gUnknown_02039F34 ldr r0, [r0] ldr r0, [r0] ldrb r1, [r0, 0x7] movs r0, 0x4 ands r0, r1 cmp r0, 0 bne _080DE5B4 _080DE59A: movs r0, 0x3 strh r0, [r5, 0x8] b _080DE5B4 .pool _080DE5A4: bl sub_80DB884 bl sub_80DB2BC movs r0, 0 strh r0, [r5, 0x8] ldr r0, =sub_80DE5F4 str r0, [r5] _080DE5B4: pop {r4-r6} pop {r0} bx r0 .pool thumb_func_end sub_80DE4A8 thumb_func_start sub_80DE5C0 sub_80DE5C0: @ 80DE5C0 push {lr} lsls r0, 24 lsrs r2, r0, 24 ldr r1, =gUnknown_02022E1A ldrh r0, [r1] adds r0, 0x7 strh r0, [r1] lsls r0, 16 asrs r0, 16 cmp r0, 0xA0 ble _080DE5E4 ldr r0, =gTasks lsls r1, r2, 2 adds r1, r2 lsls r1, 3 adds r1, r0 ldr r0, =sub_80DA4F4 str r0, [r1] _080DE5E4: pop {r0} bx r0 .pool thumb_func_end sub_80DE5C0 thumb_func_start sub_80DE5F4 sub_80DE5F4: @ 80DE5F4 push {r4,lr} lsls r0, 24 lsrs r0, 24 ldr r2, =gTasks lsls r1, r0, 2 adds r1, r0 lsls r1, 3 adds r1, r2 ldrh r2, [r1, 0xC] movs r3, 0xC ldrsh r0, [r1, r3] cmp r0, 0x9 bgt _080DE618 adds r0, r2, 0x1 strh r0, [r1, 0xC] b _080DE654 .pool _080DE618: ldrh r3, [r1, 0xA] movs r4, 0xA ldrsh r0, [r1, r4] cmp r0, 0 bne _080DE636 ldrh r2, [r1, 0x8] movs r4, 0x8 ldrsh r0, [r1, r4] cmp r0, 0x10 bne _080DE632 adds r0, r3, 0x1 strh r0, [r1, 0xA] b _080DE654 _080DE632: adds r0, r2, 0x1 b _080DE652 _080DE636: ldrh r0, [r1, 0x8] movs r3, 0x8 ldrsh r2, [r1, r3] cmp r2, 0 bne _080DE650 strh r2, [r1, 0xA] strh r2, [r1, 0xC] ldr r0, =sub_80DE65C str r0, [r1] b _080DE654 .pool _080DE650: subs r0, 0x1 _080DE652: strh r0, [r1, 0x8] _080DE654: pop {r4} pop {r0} bx r0 thumb_func_end sub_80DE5F4 thumb_func_start sub_80DE65C sub_80DE65C: @ 80DE65C push {r4,lr} lsls r0, 24 lsrs r0, 24 ldr r2, =gTasks lsls r1, r0, 2 adds r1, r0 lsls r1, 3 adds r4, r1, r2 ldrh r1, [r4, 0xC] movs r2, 0xC ldrsh r0, [r4, r2] cmp r0, 0x9 bgt _080DE680 adds r0, r1, 0x1 strh r0, [r4, 0xC] b _080DE690 .pool _080DE680: movs r0, 0 strh r0, [r4, 0xC] movs r0, 0x61 movs r1, 0 bl PlaySE12WithPanning ldr r0, =sub_80DE5C0 str r0, [r4] _080DE690: pop {r4} pop {r0} bx r0 .pool thumb_func_end sub_80DE65C thumb_func_start sub_80DE69C sub_80DE69C: @ 80DE69C push {r4-r7,lr} mov r7, r8 push {r7} lsls r0, 24 lsrs r0, 24 mov r8, r0 movs r7, 0 ldr r6, =gSprites ldr r5, =gUnknown_02039F34 _080DE6AE: bl AllocOamMatrix ldr r1, [r5] ldr r1, [r1, 0x14] lsls r4, r7, 2 adds r1, r4, r1 ldrb r1, [r1] lsls r3, r1, 4 adds r3, r1 lsls r3, 2 adds r3, r6 lsls r0, 24 lsrs r0, 24 movs r1, 0x1F ands r0, r1 lsls r0, 1 ldrb r1, [r3, 0x3] movs r2, 0x3F negs r2, r2 mov r12, r2 mov r2, r12 ands r1, r2 orrs r1, r0 strb r1, [r3, 0x3] ldr r0, [r5] ldr r0, [r0, 0x14] adds r0, r4, r0 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r6 ldrb r2, [r0, 0x1] movs r3, 0x4 negs r3, r3 adds r1, r3, 0 ands r2, r1 movs r1, 0x1 orrs r2, r1 strb r2, [r0, 0x1] ldr r0, [r5] ldr r0, [r0, 0x14] adds r0, r4, r0 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r6 mov r1, r8 bl StartSpriteAffineAnim mov r0, r8 cmp r0, 0x2 bne _080DE74C ldr r0, [r5] ldr r0, [r0, 0x14] adds r0, r4, r0 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r6 bl AnimateSprite ldr r0, [r5] ldr r0, [r0, 0x14] adds r0, r4, r0 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r6 adds r0, 0x3E ldrb r1, [r0] movs r3, 0x5 negs r3, r3 adds r2, r3, 0 ands r1, r2 strb r1, [r0] _080DE74C: adds r7, 0x1 cmp r7, 0x3 ble _080DE6AE ldr r0, =sub_80DE794 movs r1, 0x5 bl CreateTask lsls r0, 24 lsrs r0, 24 ldr r2, =gTasks lsls r1, r0, 2 adds r1, r0 lsls r1, 3 adds r1, r2 mov r0, r8 strh r0, [r1, 0x8] ldr r0, =gUnknown_02039F34 ldr r0, [r0] ldr r2, [r0] ldrb r0, [r2, 0x7] movs r1, 0x2 orrs r0, r1 strb r0, [r2, 0x7] pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_80DE69C thumb_func_start sub_80DE794 sub_80DE794: @ 80DE794 push {r4-r6,lr} lsls r0, 24 lsrs r6, r0, 24 ldr r2, =gSprites ldr r3, =gUnknown_02039F34 ldr r0, [r3] ldr r0, [r0, 0x14] ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r2 adds r0, 0x3F ldrb r0, [r0] lsls r0, 26 cmp r0, 0 bge _080DE822 ldr r0, =gTasks lsls r1, r6, 2 adds r1, r6 lsls r1, 3 adds r1, r0 ldrb r0, [r1, 0x8] cmp r0, 0x1 bne _080DE7EC movs r4, 0 adds r5, r2, 0 movs r2, 0x4 _080DE7CC: ldr r0, [r3] ldr r1, [r0, 0x14] lsls r0, r4, 2 adds r0, r1 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r5 adds r0, 0x3E ldrb r1, [r0] orrs r1, r2 strb r1, [r0] adds r4, 0x1 cmp r4, 0x3 ble _080DE7CC _080DE7EC: movs r4, 0 _080DE7EE: ldr r5, =gUnknown_02039F34 ldr r0, [r5] ldr r1, [r0, 0x14] lsls r0, r4, 2 adds r0, r1 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 ldr r1, =gSprites adds r0, r1 bl FreeSpriteOamMatrix adds r4, 0x1 cmp r4, 0x3 ble _080DE7EE ldr r0, [r5] ldr r2, [r0] ldrb r1, [r2, 0x7] movs r0, 0x3 negs r0, r0 ands r0, r1 strb r0, [r2, 0x7] adds r0, r6, 0 bl DestroyTask _080DE822: pop {r4-r6} pop {r0} bx r0 .pool thumb_func_end sub_80DE794 thumb_func_start sub_80DE834 sub_80DE834: @ 80DE834 push {lr} lsls r0, 16 lsrs r1, r0, 16 movs r0, 0xB1 lsls r0, 1 cmp r1, r0 bls _080DE844 movs r1, 0x1 _080DE844: adds r0, r1, 0 pop {r1} bx r1 thumb_func_end sub_80DE834 thumb_func_start sub_80DE84C sub_80DE84C: @ 80DE84C push {lr} lsls r0, 16 lsrs r1, r0, 16 ldr r0, =0x0000019b cmp r1, r0 bls _080DE85A movs r1, 0 _080DE85A: adds r0, r1, 0 pop {r1} bx r1 .pool thumb_func_end sub_80DE84C thumb_func_start sub_80DE864 sub_80DE864: @ 80DE864 push {r4-r7,lr} lsls r0, 24 lsrs r7, r0, 24 ldr r4, =gUnknown_02039F34 ldr r0, [r4] ldr r1, [r0, 0x4] lsls r0, r7, 3 subs r0, r7 lsls r0, 2 adds r0, r1 ldrh r0, [r0, 0x6] bl sub_80DE834 lsls r0, 16 lsrs r5, r0, 16 ldr r1, =gUnknown_02039E00 lsls r0, r7, 6 adds r0, r1 ldrh r0, [r0] bl sub_80DE84C lsls r0, 16 lsrs r6, r0, 16 ldr r0, [r4] ldr r0, [r0, 0x18] movs r1, 0 movs r2, 0x14 bl memset bl sub_80A3934 ldr r1, =gUnknown_020244E4 movs r2, 0 adds r0, r1, 0x3 _080DE8A8: strb r2, [r0] subs r0, 0x1 cmp r0, r1 bge _080DE8A8 cmp r5, 0x90 beq _080DE920 cmp r5, 0x90 bgt _080DE8DE cmp r5, 0x4C beq _080DE978 cmp r5, 0x4C bgt _080DE8D4 cmp r5, 0xD beq _080DE978 b _080DE9A2 .pool _080DE8D4: cmp r5, 0x82 beq _080DE978 cmp r5, 0x8F beq _080DE978 b _080DE9A2 _080DE8DE: cmp r5, 0xD8 beq _080DE960 cmp r5, 0xD8 bgt _080DE8EC cmp r5, 0xAE beq _080DE8FA b _080DE9A2 _080DE8EC: cmp r5, 0xDA beq _080DE96C movs r0, 0x88 lsls r0, 1 cmp r5, r0 beq _080DE920 b _080DE9A2 _080DE8FA: ldr r0, =gBaseStats lsls r1, r6, 3 subs r1, r6 lsls r1, 2 adds r1, r0 ldrb r0, [r1, 0x6] cmp r0, 0x7 beq _080DE910 ldrb r0, [r1, 0x7] cmp r0, 0x7 bne _080DE99C _080DE910: ldr r1, =gUnknown_02038432 movs r0, 0 b _080DE9A0 .pool _080DE920: ldr r6, =gUnknown_02039F34 ldr r0, [r6] ldr r1, [r0, 0x4] lsls r0, r7, 3 subs r0, r7 lsls r0, 2 adds r0, r1 ldrb r4, [r0, 0x1B] ldr r5, =gUnknown_02039E00 lsls r4, 6 adds r0, r4, r5 ldrh r0, [r0] bl sub_80DE84C ldr r2, [r6] ldr r1, [r2, 0x18] strh r0, [r1, 0x2] ldr r2, [r2, 0x18] adds r5, 0x38 adds r4, r5 ldr r0, [r4] str r0, [r2, 0x10] ldrb r0, [r2, 0x4] movs r1, 0x1 orrs r0, r1 strb r0, [r2, 0x4] b _080DE9A2 .pool _080DE960: ldr r1, =gHappinessMoveAnim movs r0, 0xFF b _080DE9A0 .pool _080DE96C: ldr r1, =gHappinessMoveAnim movs r0, 0 b _080DE9A0 .pool _080DE978: ldr r0, =gUnknown_02039F34 ldr r0, [r0] ldr r0, [r0] adds r2, r0, 0 adds r2, 0x5A ldrb r1, [r2] cmp r1, 0 bne _080DE99C movs r0, 0x2 strb r0, [r2] ldr r0, =gUnknown_02038432 strb r1, [r0] b _080DE9A2 .pool _080DE99C: ldr r1, =gUnknown_02038432 movs r0, 0x1 _080DE9A0: strb r0, [r1] _080DE9A2: bl sub_80DEA5C pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_80DE864 thumb_func_start sub_80DE9B0 sub_80DE9B0: @ 80DE9B0 push {r4,lr} ldr r4, =gUnknown_02039F34 ldr r0, [r4] ldr r0, [r0, 0x18] movs r1, 0 movs r2, 0x14 bl memset ldr r0, [r4] ldr r0, [r0] adds r1, r0, 0 adds r1, 0x5A ldrb r0, [r1] cmp r0, 0 beq _080DE9D2 subs r0, 0x1 strb r0, [r1] _080DE9D2: pop {r4} pop {r0} bx r0 .pool thumb_func_end sub_80DE9B0 thumb_func_start sub_80DE9DC sub_80DE9DC: @ 80DE9DC push {r4-r6,lr} adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 ldr r6, =gUnknown_02039F34 ldr r0, [r6] ldr r0, [r0, 0x18] strb r4, [r0, 0x5] ldr r5, =gUnknown_02039E00 lsls r4, 6 adds r0, r4, r5 ldrh r0, [r0] bl sub_80DE84C ldr r2, [r6] ldr r1, [r2, 0x18] strh r0, [r1] ldr r1, [r2, 0x18] adds r0, r5, 0 adds r0, 0x38 adds r0, r4, r0 ldr r0, [r0] str r0, [r1, 0x8] adds r5, 0x3C adds r4, r5 ldr r0, [r4] str r0, [r1, 0xC] pop {r4-r6} pop {r0} bx r0 .pool thumb_func_end sub_80DE9DC thumb_func_start sub_80DEA20 sub_80DEA20: @ 80DEA20 push {lr} ldr r0, =SpriteCallbackDummy bl CreateInvisibleSpriteWithCallback ldr r1, =gBankSpriteIds strb r0, [r1, 0x3] ldr r0, =gBankTarget ldrb r0, [r0] adds r0, r1 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 ldr r1, =gSprites adds r0, r1 bl InitSpriteAffineAnim bl sub_80DEA5C pop {r0} bx r0 .pool thumb_func_end sub_80DEA20 thumb_func_start sub_80DEA5C sub_80DEA5C: @ 80DEA5C push {r4,lr} ldr r0, =gBankSpriteIds ldrb r0, [r0, 0x3] lsls r4, r0, 4 adds r4, r0 lsls r4, 2 ldr r0, =gSprites adds r4, r0 movs r0, 0 strh r0, [r4, 0x24] strh r0, [r4, 0x26] movs r0, 0x3 movs r1, 0 bl sub_80A5C6C lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x20] movs r0, 0x3 movs r1, 0x1 bl sub_80A5C6C lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x22] adds r4, 0x3E ldrb r0, [r4] movs r1, 0x4 orrs r0, r1 strb r0, [r4] pop {r4} pop {r0} bx r0 .pool thumb_func_end sub_80DEA5C thumb_func_start sub_80DEAA8 sub_80DEAA8: @ 80DEAA8 push {lr} lsls r0, 16 lsrs r0, 16 ldr r2, =gBattleMoves lsls r1, r0, 1 adds r1, r0 lsls r1, 2 adds r1, r2 ldrb r0, [r1, 0x6] cmp r0, 0x20 bhi _080DEB60 lsls r0, 2 ldr r1, =_080DEAD0 adds r0, r1 ldr r0, [r0] mov pc, r0 .pool .align 2, 0 _080DEAD0: .4byte _080DEB60 .4byte _080DEB60 .4byte _080DEB54 .4byte _080DEB60 .4byte _080DEB60 .4byte _080DEB60 .4byte _080DEB60 .4byte _080DEB60 .4byte _080DEB60 .4byte _080DEB60 .4byte _080DEB60 .4byte _080DEB60 .4byte _080DEB60 .4byte _080DEB60 .4byte _080DEB60 .4byte _080DEB60 .4byte _080DEB54 .4byte _080DEB60 .4byte _080DEB60 .4byte _080DEB60 .4byte _080DEB60 .4byte _080DEB60 .4byte _080DEB60 .4byte _080DEB60 .4byte _080DEB60 .4byte _080DEB60 .4byte _080DEB60 .4byte _080DEB60 .4byte _080DEB60 .4byte _080DEB60 .4byte _080DEB60 .4byte _080DEB60 .4byte _080DEB60 _080DEB54: ldr r1, =gBankTarget movs r0, 0x2 b _080DEB64 .pool _080DEB60: ldr r1, =gBankTarget movs r0, 0x3 _080DEB64: strb r0, [r1] pop {r0} bx r0 .pool thumb_func_end sub_80DEAA8 thumb_func_start sub_80DEB70 sub_80DEB70: @ 80DEB70 push {r4,lr} sub sp, 0x10 adds r4, r0, 0 str r1, [sp] mov r0, sp movs r2, 0 strb r4, [r0, 0x4] movs r1, 0x1 strb r1, [r0, 0x5] strb r2, [r0, 0x6] strb r1, [r0, 0x7] strb r2, [r0, 0x8] strb r1, [r0, 0x9] strb r2, [r0, 0xA] strb r2, [r0, 0xB] mov r3, sp ldrb r2, [r3, 0xC] subs r1, 0x11 adds r0, r1, 0 ands r0, r2 strb r0, [r3, 0xC] mov r2, sp movs r0, 0xF0 strb r0, [r2, 0xC] ldrb r0, [r2, 0xD] ands r1, r0 strb r1, [r2, 0xD] mov r1, sp movs r0, 0x80 strb r0, [r1, 0xD] mov r0, sp movs r1, 0 movs r2, 0 bl AddTextPrinter lsls r4, 24 lsrs r4, 24 adds r0, r4, 0 bl PutWindowTilemap movs r0, 0 bl sub_80DED60 add sp, 0x10 pop {r4} pop {r0} bx r0 thumb_func_end sub_80DEB70 thumb_func_start sub_80DEBD0 sub_80DEBD0: @ 80DEBD0 push {r4,r5,lr} sub sp, 0x10 adds r5, r0, 0 ldr r4, [sp, 0x1C] str r1, [sp] mov r0, sp movs r1, 0 strb r5, [r0, 0x4] strb r4, [r0, 0x5] strb r2, [r0, 0x6] strb r3, [r0, 0x7] strb r2, [r0, 0x8] strb r3, [r0, 0x9] strb r1, [r0, 0xA] strb r1, [r0, 0xB] mov r3, sp ldrb r2, [r3, 0xC] subs r1, 0x10 adds r0, r1, 0 ands r0, r2 strb r0, [r3, 0xC] mov r2, sp movs r0, 0xF0 strb r0, [r2, 0xC] ldrb r0, [r2, 0xD] ands r1, r0 strb r1, [r2, 0xD] mov r1, sp movs r0, 0x80 strb r0, [r1, 0xD] mov r0, sp movs r1, 0 movs r2, 0 bl AddTextPrinter lsls r5, 24 lsrs r5, 24 adds r0, r5, 0 bl PutWindowTilemap movs r0, 0 bl sub_80DED60 add sp, 0x10 pop {r4,r5} pop {r0} bx r0 thumb_func_end sub_80DEBD0 thumb_func_start sub_80DEC30 sub_80DEC30: @ 80DEC30 push {r4,r5,lr} sub sp, 0x10 str r0, [sp] mov r2, sp movs r3, 0 movs r0, 0x4 strb r0, [r2, 0x4] mov r0, sp movs r5, 0x1 strb r5, [r0, 0x5] strb r3, [r0, 0x6] strb r5, [r0, 0x7] strb r3, [r0, 0x8] strb r5, [r0, 0x9] strb r3, [r0, 0xA] strb r3, [r0, 0xB] mov r4, sp ldrb r3, [r4, 0xC] movs r2, 0x10 negs r2, r2 adds r0, r2, 0 ands r0, r3 strb r0, [r4, 0xC] mov r3, sp movs r0, 0x10 strb r0, [r3, 0xC] ldrb r0, [r3, 0xD] ands r2, r0 strb r2, [r3, 0xD] mov r2, sp movs r0, 0x80 strb r0, [r2, 0xD] cmp r1, 0 bne _080DEC80 mov r0, sp movs r1, 0 movs r2, 0 bl AddTextPrinter b _080DECA4 _080DEC80: ldr r0, =gUnknown_02039F2A ldrb r1, [r0] adds r0, r5, 0 ands r0, r1 cmp r0, 0 beq _080DEC94 movs r1, 0x4 b _080DEC9C .pool _080DEC94: bl sav2_get_text_speed lsls r0, 24 lsrs r1, r0, 24 _080DEC9C: mov r0, sp movs r2, 0 bl AddTextPrinter _080DECA4: movs r0, 0x4 bl PutWindowTilemap movs r0, 0 bl sub_80DED60 add sp, 0x10 pop {r4,r5} pop {r0} bx r0 thumb_func_end sub_80DEC30 thumb_func_start sub_80DECB8 sub_80DECB8: @ 80DECB8 push {r4-r7,lr} mov r7, r8 push {r7} sub sp, 0x10 mov r8, r0 ldr r0, [sp, 0x28] ldr r4, [sp, 0x2C] ldr r5, [sp, 0x30] ldr r6, [sp, 0x34] mov r7, r8 lsls r7, 24 lsrs r7, 24 mov r8, r7 lsls r1, 16 lsrs r1, 16 lsls r2, 24 lsrs r2, 24 lsls r3, 24 lsrs r3, 24 lsls r0, 24 lsrs r0, 24 lsls r4, 24 lsrs r4, 24 lsls r5, 24 lsrs r5, 24 str r0, [sp] str r4, [sp, 0x4] str r5, [sp, 0x8] lsls r6, 16 asrs r6, 16 str r6, [sp, 0xC] mov r0, r8 bl WriteSequenceToBgTilemapBuffer mov r0, r8 bl sub_80DED60 add sp, 0x10 pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_80DECB8 thumb_func_start sub_80DED10 sub_80DED10: @ 80DED10 push {r4-r6,lr} sub sp, 0x10 ldr r4, [sp, 0x20] ldr r5, [sp, 0x24] ldr r6, [sp, 0x28] lsls r0, 24 lsrs r0, 24 lsls r1, 16 lsrs r1, 16 lsls r2, 24 lsrs r2, 24 lsls r3, 24 lsrs r3, 24 lsls r4, 24 lsrs r4, 24 lsls r5, 24 lsrs r5, 24 lsls r6, 24 lsrs r6, 24 str r4, [sp] str r5, [sp, 0x4] str r6, [sp, 0x8] movs r4, 0 str r4, [sp, 0xC] bl sub_80DECB8 add sp, 0x10 pop {r4-r6} pop {r0} bx r0 thumb_func_end sub_80DED10 thumb_func_start sub_80DED4C sub_80DED4C: @ 80DED4C push {lr} bl RunTextPrinters movs r0, 0x4 bl IsTextPrinterActive lsls r0, 16 lsrs r0, 16 pop {r1} bx r1 thumb_func_end sub_80DED4C thumb_func_start sub_80DED60 sub_80DED60: @ 80DED60 ldr r2, =gUnknown_02039F38 movs r1, 0x1 lsls r1, r0 ldrb r0, [r2] orrs r1, r0 strb r1, [r2] bx lr .pool thumb_func_end sub_80DED60 thumb_func_start ResetContestLinkResults ResetContestLinkResults: @ 80DED74 push {r4-r6,lr} movs r0, 0 ldr r6, =gSaveBlock2Ptr ldr r5, =0x00000624 movs r4, 0 _080DED7E: adds r3, r0, 0x1 lsls r1, r0, 3 movs r2, 0x3 _080DED84: ldr r0, [r6] adds r0, r5 adds r0, r1 strh r4, [r0] adds r1, 0x2 subs r2, 0x1 cmp r2, 0 bge _080DED84 adds r0, r3, 0 cmp r0, 0x4 ble _080DED7E pop {r4-r6} pop {r0} bx r0 .pool thumb_func_end ResetContestLinkResults thumb_func_start sub_80DEDA8 sub_80DEDA8: @ 80DEDA8 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x4 lsls r0, 24 lsrs r0, 24 str r0, [sp] bl Random lsls r0, 16 lsrs r0, 16 movs r1, 0x3 bl __umodsi3 lsls r0, 24 lsrs r0, 24 mov r8, r0 movs r5, 0 ldr r1, =gUnknown_02039F20 ldrb r0, [r1] cmp r0, 0 beq _080DEDE6 _080DEDD8: adds r5, 0x1 cmp r5, 0x2 bgt _080DEDE6 adds r0, r5, r1 ldrb r0, [r0] cmp r0, 0 bne _080DEDD8 _080DEDE6: ldr r0, [sp] cmp r0, 0xFF bne _080DEE00 ldr r0, =gUnknown_02039F25 ldrb r0, [r0] cmp r5, r0 beq _080DEE00 movs r0, 0 b _080DEF90 .pool _080DEE00: ldr r0, =gUnknown_02039F2C ldrh r0, [r0] cmp r0, 0x4 bhi _080DEE4C lsls r0, 2 ldr r1, =_080DEE1C adds r0, r1 ldr r0, [r0] mov pc, r0 .pool .align 2, 0 _080DEE1C: .4byte _080DEE4C .4byte _080DEE30 .4byte _080DEE36 .4byte _080DEE3C .4byte _080DEE42 _080DEE30: mov r0, r8 adds r0, 0x3 b _080DEE46 _080DEE36: mov r0, r8 adds r0, 0x6 b _080DEE46 _080DEE3C: mov r0, r8 adds r0, 0x9 b _080DEE46 _080DEE42: mov r0, r8 adds r0, 0xC _080DEE46: lsls r0, 24 lsrs r0, 24 mov r8, r0 _080DEE4C: ldr r1, [sp] cmp r1, 0xFE bne _080DEE54 b _080DEF50 _080DEE54: adds r0, r1, 0 movs r1, 0x1 bl sub_80DEFA8 lsls r0, 24 lsrs r0, 24 mov r9, r0 ldr r2, =gSaveBlock1Ptr mov r10, r2 ldr r0, [r2] mov r3, r9 lsls r7, r3, 5 ldr r6, =0x00002e90 adds r2, r0, r6 adds r2, r7 ldr r4, =gUnknown_02039E00 lsls r5, 6 adds r1, r4, 0 adds r1, 0x38 adds r1, r5, r1 ldr r1, [r1] str r1, [r2] adds r1, r0, r7 adds r2, r5, r4 ldrh r2, [r2] ldr r3, =0x00002e98 adds r1, r3 strh r2, [r1] ldr r1, =0x00002e94 adds r2, r0, r1 adds r2, r7 adds r1, r4, 0 adds r1, 0x3C adds r1, r5, r1 ldr r1, [r1] str r1, [r2] adds r6, r7, r6 adds r0, r6 adds r0, 0xB adds r1, r4, 0x2 adds r1, r5, r1 bl StringCopy mov r2, r10 ldr r0, [r2] adds r0, r6 adds r0, 0x16 adds r4, 0xD adds r5, r4 adds r1, r5, 0 bl StringCopy ldr r0, =gUnknown_02039F2A ldrb r1, [r0] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _080DEEF4 mov r3, r10 ldr r0, [r3] adds r0, r7 ldr r1, =0x00002eae adds r0, r1 movs r1, 0x4 b _080DEF02 .pool _080DEEF4: mov r2, r10 ldr r0, [r2] adds r0, r7 ldr r1, =gUnknown_02039F2E ldrh r1, [r1] ldr r3, =0x00002eae adds r0, r3 _080DEF02: strb r1, [r0] ldr r0, [sp] cmp r0, 0xFF beq _080DEF34 ldr r0, =gSaveBlock1Ptr ldr r0, [r0] mov r2, r9 lsls r1, r2, 5 adds r0, r1 ldr r1, =gUnknown_02039F2C ldrh r1, [r1] ldr r3, =0x00002e9a adds r0, r3 strb r1, [r0] b _080DEF8E .pool _080DEF34: ldr r0, =gSaveBlock1Ptr ldr r0, [r0] mov r2, r9 lsls r1, r2, 5 adds r0, r1 ldr r3, =0x00002e9a adds r0, r3 mov r1, r8 strb r1, [r0] b _080DEF8E .pool _080DEF50: ldr r6, =gUnknown_02039F3C ldr r4, =gUnknown_02039E00 lsls r5, 6 adds r0, r4, 0 adds r0, 0x38 adds r0, r5, r0 ldr r0, [r0] str r0, [r6] adds r0, r4, 0 adds r0, 0x3C adds r0, r5, r0 ldr r0, [r0] str r0, [r6, 0x4] adds r0, r5, r4 ldrh r0, [r0] strh r0, [r6, 0x8] adds r0, r6, 0 adds r0, 0xB adds r1, r4, 0x2 adds r1, r5, r1 bl StringCopy adds r0, r6, 0 adds r0, 0x16 adds r4, 0xD adds r5, r4 adds r1, r5, 0 bl StringCopy mov r2, r8 strb r2, [r6, 0xA] _080DEF8E: movs r0, 0x1 _080DEF90: add sp, 0x4 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r1} bx r1 .pool thumb_func_end sub_80DEDA8 thumb_func_start sub_80DEFA8 sub_80DEFA8: @ 80DEFA8 push {r4-r7,lr} lsls r0, 24 lsrs r0, 24 lsls r1, 24 lsrs r1, 24 cmp r0, 0x3 bgt _080DEFF8 cmp r0, 0 blt _080DEFF8 cmp r1, 0 beq _080DEFE6 movs r2, 0x5 ldr r0, =gSaveBlock1Ptr mov r12, r0 ldr r4, =0x00002e90 ldr r3, =0x00002e70 _080DEFC8: mov r1, r12 ldr r0, [r1] lsls r1, r2, 5 adds r1, r0 adds r0, r1, r4 adds r1, r3 ldm r1!, {r5-r7} stm r0!, {r5-r7} ldm r1!, {r5-r7} stm r0!, {r5-r7} ldm r1!, {r5,r6} stm r0!, {r5,r6} subs r2, 0x1 cmp r2, 0 bgt _080DEFC8 _080DEFE6: movs r0, 0 b _080DF03A .pool _080DEFF8: ldr r0, =gUnknown_02039F2C ldrh r0, [r0] cmp r0, 0x4 bhi _080DF038 lsls r0, 2 ldr r1, =_080DF014 adds r0, r1 ldr r0, [r0] mov pc, r0 .pool .align 2, 0 _080DF014: .4byte _080DF028 .4byte _080DF02C .4byte _080DF030 .4byte _080DF034 .4byte _080DF038 _080DF028: movs r0, 0x8 b _080DF03A _080DF02C: movs r0, 0x9 b _080DF03A _080DF030: movs r0, 0xA b _080DF03A _080DF034: movs r0, 0xB b _080DF03A _080DF038: movs r0, 0xC _080DF03A: pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_80DEFA8 thumb_func_start ClearContestWinnerPicsInContestHall ClearContestWinnerPicsInContestHall: @ 80DF040 push {r4-r7,lr} movs r2, 0 ldr r0, =gSaveBlock1Ptr mov r12, r0 ldr r4, =0x00002e90 ldr r3, =gUnknown_08587FA4 _080DF04C: mov r1, r12 ldr r0, [r1] lsls r1, r2, 5 adds r0, r1 adds r0, r4 adds r1, r3, 0 ldm r1!, {r5-r7} stm r0!, {r5-r7} ldm r1!, {r5-r7} stm r0!, {r5-r7} ldm r1!, {r5,r6} stm r0!, {r5,r6} adds r3, 0x20 adds r2, 0x1 cmp r2, 0x7 ble _080DF04C pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end ClearContestWinnerPicsInContestHall thumb_func_start sub_80DF080 sub_80DF080: @ 80DF080 push {r4-r7,lr} lsls r0, 24 lsrs r4, r0, 24 ldr r2, =gUnknown_02039F34 ldr r3, [r2] ldr r5, [r3, 0x10] ldrb r1, [r5, 0x1] movs r7, 0x1 adds r0, r7, 0 ands r0, r1 adds r6, r2, 0 cmp r0, 0 bne _080DF0D2 movs r0, 0 ldrsb r0, [r5, r0] cmp r0, 0 ble _080DF0D2 ldr r1, [r3, 0x4] lsls r0, r4, 3 subs r0, r4 lsls r0, 2 adds r0, r1 ldrb r1, [r0, 0x15] adds r0, r7, 0 ands r0, r1 cmp r0, 0 bne _080DF0D2 ldr r1, [r3, 0x1C] lsls r2, r4, 4 adds r1, r2, r1 ldrb r3, [r1, 0xC] movs r0, 0x1 orrs r0, r3 strb r0, [r1, 0xC] ldr r0, [r6] ldr r0, [r0, 0x1C] adds r2, r0 ldrb r0, [r2, 0xE] movs r1, 0x2 orrs r0, r1 strb r0, [r2, 0xE] _080DF0D2: ldr r3, [r6] ldr r1, [r3, 0x4] lsls r2, r4, 3 subs r0, r2, r4 lsls r0, 2 adds r0, r1 ldrb r1, [r0, 0xC] movs r5, 0x1 adds r0, r5, 0 ands r0, r1 adds r7, r2, 0 cmp r0, 0 beq _080DF0FA ldr r0, [r3, 0x1C] lsls r1, r4, 4 adds r1, r0 ldrb r2, [r1, 0xC] movs r0, 0x2 orrs r0, r2 strb r0, [r1, 0xC] _080DF0FA: ldr r3, [r6] ldr r2, [r3, 0x10] ldrb r1, [r2, 0x1] adds r0, r5, 0 ands r0, r1 cmp r0, 0 bne _080DF126 movs r0, 0 ldrsb r0, [r2, r0] cmp r0, 0 beq _080DF126 movs r0, 0x2 ldrsb r0, [r2, r0] cmp r0, 0x3C bne _080DF126 ldr r0, [r3, 0x1C] lsls r1, r4, 4 adds r1, r0 ldrb r2, [r1, 0xC] movs r0, 0x4 orrs r0, r2 strb r0, [r1, 0xC] _080DF126: ldr r3, [r6] ldr r1, [r3, 0x4] subs r0, r7, r4 lsls r0, 2 adds r2, r0, r1 ldrb r1, [r2, 0x15] movs r0, 0x40 ands r0, r1 cmp r0, 0 beq _080DF14E ldrb r0, [r2, 0x16] cmp r0, 0 beq _080DF14E ldr r0, [r3, 0x1C] lsls r1, r4, 4 adds r1, r0 ldrb r2, [r1, 0xC] movs r0, 0x8 orrs r0, r2 strb r0, [r1, 0xC] _080DF14E: movs r3, 0 movs r5, 0 _080DF152: cmp r3, r4 beq _080DF180 ldr r1, [r6] ldr r0, [r1, 0x4] adds r0, r5, r0 ldrb r0, [r0, 0xE] cmp r0, 0 beq _080DF180 ldr r0, [r1, 0x1C] lsls r2, r4, 4 adds r2, r0 ldrb r0, [r2, 0xC] movs r1, 0x10 orrs r0, r1 strb r0, [r2, 0xC] ldr r0, [r6] ldr r0, [r0, 0x1C] lsls r2, r3, 4 adds r2, r0 ldrb r0, [r2, 0xC] movs r1, 0x40 orrs r0, r1 strb r0, [r2, 0xC] _080DF180: adds r5, 0x1C adds r3, 0x1 cmp r3, 0x3 ble _080DF152 ldr r2, [r6] ldr r1, [r2, 0x4] subs r0, r7, r4 lsls r5, r0, 2 adds r1, r5, r1 ldrb r3, [r1, 0xC] movs r0, 0x6 ands r0, r3 cmp r0, 0 bne _080DF1A6 ldrb r1, [r1, 0xB] movs r0, 0x80 ands r0, r1 cmp r0, 0 beq _080DF1BC _080DF1A6: ldr r0, [r2, 0x1C] lsls r1, r4, 4 adds r1, r0 ldrb r2, [r1, 0xC] movs r0, 0x20 orrs r0, r2 strb r0, [r1, 0xC] b _080DF1F6 .pool _080DF1BC: movs r0, 0x1 ands r0, r3 cmp r0, 0 bne _080DF1F6 ldr r2, [r2, 0x1C] lsls r3, r4, 4 adds r2, r3, r2 ldrb r0, [r2, 0xC] movs r1, 0x80 orrs r0, r1 strb r0, [r2, 0xC] ldr r0, [r6] ldr r1, [r0, 0x1C] adds r1, r3, r1 ldrb r0, [r1, 0xE] movs r2, 0x1 orrs r0, r2 strb r0, [r1, 0xE] ldr r1, [r6] ldr r0, [r1, 0x1C] adds r3, r0 ldr r0, [r1] ldrb r0, [r0, 0x1] lsls r0, 1 adds r3, r0 ldr r0, [r1, 0x4] adds r0, r5, r0 ldrh r0, [r0, 0x6] strh r0, [r3] _080DF1F6: ldr r2, [r6] ldr r1, [r2, 0x4] subs r0, r7, r4 lsls r0, 2 adds r0, r1 ldrb r1, [r0, 0x15] movs r5, 0x1 adds r0, r5, 0 ands r0, r1 cmp r0, 0 beq _080DF21A ldr r0, [r2, 0x1C] lsls r1, r4, 4 adds r1, r0 ldrb r2, [r1, 0xD] movs r0, 0x2 orrs r0, r2 strb r0, [r1, 0xD] _080DF21A: ldr r2, [r6] ldr r0, [r2] ldrb r0, [r0, 0x13] lsls r0, 24 asrs r0, 24 cmp r0, 0x4 bne _080DF24A ldr r3, [r2, 0x10] ldrb r1, [r3, 0x1] adds r0, r5, 0 ands r0, r1 cmp r0, 0 bne _080DF24A movs r0, 0 ldrsb r0, [r3, r0] cmp r0, 0 bge _080DF24A ldr r0, [r2, 0x1C] lsls r1, r4, 4 adds r1, r0 ldrb r2, [r1, 0xD] movs r0, 0x20 orrs r0, r2 strb r0, [r1, 0xD] _080DF24A: pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_80DF080 thumb_func_start sub_80DF250 sub_80DF250: @ 80DF250 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x38 movs r1, 0 movs r0, 0 str r0, [sp, 0x20] movs r4, 0 ldr r6, =gUnknown_02039F34 mov r2, sp adds r2, 0xC str r2, [sp, 0x28] mov r3, sp adds r3, 0x14 str r3, [sp, 0x2C] mov r7, sp adds r7, 0x2 str r7, [sp, 0x24] ldr r5, =gUnknown_02039F20 movs r2, 0 movs r3, 0x80 lsls r3, 17 _080DF280: adds r0, r4, r5 ldrb r0, [r0] cmp r0, 0 bne _080DF298 lsrs r0, r2, 24 str r0, [sp, 0x20] b _080DF29E .pool _080DF298: cmp r0, 0x3 bne _080DF29E lsrs r1, r2, 24 _080DF29E: adds r2, r3 adds r4, 0x1 cmp r4, 0x3 ble _080DF280 ldr r0, [r6] ldr r0, [r0, 0x1C] lsls r1, 4 adds r1, r0 ldrb r2, [r1, 0xD] movs r0, 0x1 orrs r0, r2 strb r0, [r1, 0xD] movs r4, 0 ldr r1, [sp, 0x20] lsls r1, 4 str r1, [sp, 0x30] mov r9, r4 mov r10, r4 _080DF2C2: ldr r2, [sp, 0x20] cmp r4, r2 beq _080DF2EE ldr r1, =gUnknown_02039F08 lsls r0, r2, 1 adds r0, r1 movs r3, 0 ldrsh r2, [r0, r3] add r1, r10 movs r6, 0 ldrsh r0, [r1, r6] subs r2, r0 cmp r2, 0x32 bgt _080DF2EE ldr r7, =gUnknown_02039F34 ldr r0, [r7] ldr r2, [r0, 0x1C] add r2, r9 ldrb r0, [r2, 0xD] movs r1, 0x4 orrs r0, r1 strb r0, [r2, 0xD] _080DF2EE: ldr r1, =gUnknown_02039F34 ldr r0, [r1] ldr r0, [r0, 0x1C] mov r3, r9 adds r2, r3, r0 ldrb r1, [r2, 0xE] movs r0, 0x2 ands r0, r1 cmp r0, 0 bne _080DF30A ldrb r0, [r2, 0xD] movs r1, 0x8 orrs r0, r1 strb r0, [r2, 0xD] _080DF30A: movs r5, 0 ldr r2, =gUnknown_02039F00 add r2, r10 movs r6, 0 ldrsh r1, [r2, r6] ldr r7, =gUnknown_02039F00 movs r3, 0 ldrsh r0, [r7, r3] cmp r1, r0 blt _080DF336 adds r3, r2, 0 adds r2, r7, 0 _080DF322: adds r2, 0x2 adds r5, 0x1 cmp r5, 0x3 bgt _080DF336 movs r6, 0 ldrsh r1, [r3, r6] movs r7, 0 ldrsh r0, [r2, r7] cmp r1, r0 bge _080DF322 _080DF336: cmp r5, 0x4 bne _080DF354 ldr r1, =gUnknown_02039F20 adds r0, r4, r1 ldrb r0, [r0] cmp r0, 0 beq _080DF354 ldr r2, =gUnknown_02039F34 ldr r0, [r2] ldr r2, [r0, 0x1C] add r2, r9 ldrb r0, [r2, 0xD] movs r1, 0x10 orrs r0, r1 strb r0, [r2, 0xD] _080DF354: movs r3, 0 mov r12, r3 mov r8, r3 movs r5, 0 ldr r0, =gUnknown_02039F00 add r0, r10 movs r7, 0 ldrsh r6, [r0, r7] str r6, [sp, 0x34] ldr r2, =gUnknown_02039F00 ldr r0, =gUnknown_02039F18 mov r1, r10 adds r6, r1, r0 adds r3, r0, 0 _080DF370: movs r7, 0 ldrsh r0, [r2, r7] ldr r1, [sp, 0x34] cmp r1, r0 ble _080DF37E movs r7, 0x1 mov r12, r7 _080DF37E: movs r0, 0 ldrsh r1, [r6, r0] movs r7, 0 ldrsh r0, [r3, r7] cmp r1, r0 ble _080DF38E movs r0, 0x1 mov r8, r0 _080DF38E: adds r2, 0x2 adds r3, 0x2 adds r5, 0x1 cmp r5, 0x3 ble _080DF370 mov r1, r12 cmp r1, 0 bne _080DF3B4 mov r2, r8 cmp r2, 0 bne _080DF3B4 ldr r3, =gUnknown_02039F34 ldr r0, [r3] ldr r2, [r0, 0x1C] add r2, r9 ldrb r0, [r2, 0xD] movs r1, 0x40 orrs r0, r1 strb r0, [r2, 0xD] _080DF3B4: ldr r6, =gUnknown_02039F34 ldr r0, [r6] ldr r0, [r0, 0x1C] mov r7, r9 adds r2, r7, r0 ldrb r1, [r2, 0xE] movs r0, 0x1 ands r0, r1 cmp r0, 0 bne _080DF3D0 ldrb r0, [r2, 0xD] movs r1, 0x80 orrs r0, r1 strb r0, [r2, 0xD] _080DF3D0: movs r0, 0x10 add r9, r0 movs r1, 0x2 add r10, r1 adds r4, 0x1 cmp r4, 0x3 bgt _080DF3E0 b _080DF2C2 _080DF3E0: movs r4, 0 movs r5, 0 movs r3, 0 ldr r2, [sp, 0x28] mov r1, sp _080DF3EA: strh r3, [r1] adds r0, r2, r4 strb r5, [r0] adds r1, 0x2 adds r4, 0x1 cmp r4, 0x4 ble _080DF3EA mov r1, sp ldr r0, =0x0000ffff strh r0, [r1, 0xA] movs r0, 0 ldr r2, [sp, 0x28] strb r0, [r2, 0x5] movs r4, 0 ldr r0, =gUnknown_02039F34 ldr r0, [r0] mov r8, r0 ldr r7, [sp, 0x30] _080DF40E: mov r3, r8 ldr r0, [r3, 0x1C] adds r0, r7, r0 lsls r1, r4, 1 adds r0, r1 ldrh r0, [r0] adds r4, 0x1 mov r12, r4 cmp r0, 0 beq _080DF450 ldr r0, =gUnknown_02039F34 ldr r6, [r0] ldr r3, [sp, 0x28] mov r4, sp movs r5, 0x4 _080DF42C: ldr r0, [r6, 0x1C] adds r0, r7, r0 adds r0, r1 ldrh r0, [r0] ldrh r2, [r4] cmp r0, r2 beq _080DF440 cmp r2, 0 bne _080DF446 strh r0, [r4] _080DF440: ldrb r0, [r3] adds r0, 0x1 strb r0, [r3] _080DF446: adds r3, 0x1 adds r4, 0x2 subs r5, 0x1 cmp r5, 0 bge _080DF42C _080DF450: mov r4, r12 cmp r4, 0x4 ble _080DF40E mov r0, sp ldrh r0, [r0] ldr r6, [sp, 0x2C] strh r0, [r6] ldr r7, [sp, 0x28] ldrb r3, [r7] movs r6, 0 movs r4, 0x1 ldr r1, [sp, 0x24] ldrh r0, [r1] ldr r1, =0x0000ffff cmp r0, r1 beq _080DF4C0 ldr r5, [sp, 0x2C] adds r7, r1, 0 mov r2, sp adds r2, 0x2 _080DF478: ldr r0, [sp, 0x28] adds r1, r0, r4 ldrb r0, [r1] cmp r3, r0 bcs _080DF4A4 ldrh r0, [r2] strh r0, [r5] ldrb r3, [r1] movs r6, 0x1 b _080DF4B6 .pool _080DF4A4: cmp r3, r0 bne _080DF4B6 lsls r0, r6, 1 adds r0, r5, r0 ldrh r1, [r2] strh r1, [r0] adds r0, r6, 0x1 lsls r0, 24 lsrs r6, r0, 24 _080DF4B6: adds r2, 0x2 adds r4, 0x1 ldrh r0, [r2] cmp r0, r7 bne _080DF478 _080DF4C0: bl Random ldr r1, =gUnknown_02039F34 ldr r1, [r1] ldr r4, [r1, 0x1C] ldr r1, [sp, 0x30] adds r4, r1, r4 lsls r0, 16 lsrs r0, 16 adds r1, r6, 0 bl __modsi3 lsls r0, 1 ldr r2, [sp, 0x2C] adds r0, r2, r0 ldrh r0, [r0] strh r0, [r4, 0xA] add sp, 0x38 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_80DF250 thumb_func_start sub_80DF4F8 sub_80DF4F8: @ 80DF4F8 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0xC ldr r1, =gUnknown_02039F20 ldr r0, =gUnknown_02039F25 ldrb r0, [r0] adds r0, r1 ldrb r0, [r0] cmp r0, 0 beq _080DF514 b _080DF6EE _080DF514: movs r7, 0 movs r3, 0 ldr r0, =gUnknown_02039F34 mov r12, r0 _080DF51C: adds r0, r3, r1 ldrb r0, [r0] cmp r0, 0 bne _080DF528 lsls r0, r3, 24 lsrs r7, r0, 24 _080DF528: adds r3, 0x1 cmp r3, 0x3 ble _080DF51C movs r1, 0 mov r9, r1 mov r10, r1 movs r3, 0 lsls r2, r7, 1 lsls r4, r7, 4 mov r8, r4 ldr r1, =gUnknown_02039F00 adds r0, r2, r1 movs r6, 0 ldrsh r5, [r0, r6] str r5, [sp, 0x8] adds r5, r1, 0 ldr r0, =gUnknown_02039F18 adds r2, r0 adds r4, r0, 0 _080DF54E: movs r1, 0 ldrsh r0, [r5, r1] ldr r6, [sp, 0x8] cmp r6, r0 bge _080DF562 mov r0, r9 adds r0, 0x1 lsls r0, 24 lsrs r0, 24 mov r9, r0 _080DF562: movs r0, 0 ldrsh r1, [r2, r0] movs r6, 0 ldrsh r0, [r4, r6] cmp r1, r0 bge _080DF578 mov r0, r10 adds r0, 0x1 lsls r0, 24 lsrs r0, 24 mov r10, r0 _080DF578: adds r5, 0x2 adds r4, 0x2 adds r3, 0x1 cmp r3, 0x3 ble _080DF54E mov r1, r12 ldr r0, [r1] ldr r0, [r0, 0x1C] add r0, r8 ldrb r1, [r0, 0xC] movs r4, 0 movs r2, 0x1 movs r3, 0x7 _080DF592: adds r0, r1, 0 ands r0, r2 cmp r0, 0 beq _080DF5A0 adds r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 _080DF5A0: lsrs r1, 1 subs r3, 0x1 cmp r3, 0 bge _080DF592 bl Random lsls r0, 16 lsrs r0, 16 adds r1, r4, 0 bl __modsi3 lsls r0, 24 lsrs r5, r0, 24 ldr r0, =gUnknown_02039F34 ldr r0, [r0] ldr r0, [r0, 0x1C] add r0, r8 ldrb r1, [r0, 0xC] movs r4, 0 movs r2, 0 movs r3, 0 movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _080DF5DC cmp r5, 0 beq _080DF5F6 _080DF5D6: adds r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 _080DF5DC: lsrs r1, 1 adds r0, r2, 0x1 lsls r0, 24 lsrs r2, r0, 24 adds r3, 0x1 cmp r3, 0x7 bgt _080DF5F6 movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _080DF5DC cmp r5, r4 bne _080DF5D6 _080DF5F6: movs r1, 0x1 adds r0, r1, 0 lsls r0, r2 lsls r0, 16 lsrs r2, r0, 16 cmp r7, 0 bne _080DF628 mov r0, sp strb r1, [r0] ldr r1, =gUnknown_02039F34 ldr r0, [r1] ldr r0, [r0, 0x1C] ldrb r4, [r0, 0x1D] movs r3, 0x2 b _080DF638 .pool _080DF628: mov r1, sp movs r0, 0 strb r0, [r1] ldr r1, =gUnknown_02039F34 ldr r0, [r1] ldr r0, [r0, 0x1C] ldrb r4, [r0, 0xD] movs r3, 0x1 _080DF638: mov r12, r1 movs r5, 0x1 lsls r2, 24 str r2, [sp, 0x4] cmp r3, 0x3 bgt _080DF682 _080DF644: cmp r3, r7 beq _080DF67C mov r6, r12 ldr r2, [r6] ldr r0, [r2, 0x1C] lsls r1, r3, 4 adds r0, r1, r0 ldrb r0, [r0, 0xD] cmp r4, r0 bcs _080DF66C mov r0, sp strb r3, [r0] ldr r0, [r2, 0x1C] adds r0, r1, r0 ldrb r4, [r0, 0xD] movs r5, 0x1 b _080DF67C .pool _080DF66C: cmp r4, r0 bne _080DF67C mov r1, sp adds r0, r1, r5 strb r3, [r0] adds r0, r5, 0x1 lsls r0, 24 lsrs r5, r0, 24 _080DF67C: adds r3, 0x1 cmp r3, 0x3 ble _080DF644 _080DF682: bl Random lsls r0, 16 lsrs r0, 16 adds r1, r5, 0 bl __modsi3 add r0, sp ldrb r6, [r0] movs r2, 0x80 movs r3, 0 ldr r5, =gUnknown_02039F34 ldr r0, [r5] ldr r0, [r0, 0x1C] lsls r1, r6, 4 adds r0, r1, r0 ldrb r0, [r0, 0xD] ands r0, r2 lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0 bne _080DF6C4 _080DF6AE: lsrs r2, 1 adds r3, 0x1 cmp r3, 0x7 bgt _080DF6C4 ldr r0, [r5] ldr r0, [r0, 0x1C] adds r0, r1, r0 ldrb r4, [r0, 0xD] ands r4, r2 cmp r4, 0 beq _080DF6AE _080DF6C4: mov r0, r9 bl sub_80ECDA4 mov r0, r10 bl sub_80ECDF4 ldr r5, [sp, 0x4] lsrs r0, r5, 24 bl sub_80ECE34 ldr r0, =gUnknown_02039F34 ldr r0, [r0] ldr r0, [r0, 0x1C] add r0, r8 ldrh r0, [r0, 0xA] bl sub_80ECE74 adds r0, r4, 0 adds r1, r6, 0 bl sub_80ECEB4 _080DF6EE: add sp, 0xC pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_80DF4F8 thumb_func_start sub_80DF704 sub_80DF704: @ 80DF704 push {r4,lr} lsls r0, 24 lsrs r3, r0, 24 ldr r0, =0x02000000 movs r1, 0xD0 lsls r1, 9 adds r2, r0, r1 ldrb r1, [r2] adds r4, r0, 0 cmp r1, 0 bne _080DF72C cmp r3, 0 bne _080DF728 movs r0, 0x2 b _080DF72E .pool _080DF728: movs r0, 0x3 b _080DF72E _080DF72C: movs r0, 0 _080DF72E: strb r0, [r2] movs r1, 0xD0 lsls r1, 9 adds r0, r4, r1 ldrb r0, [r0] cmp r0, 0 bne _080DF746 bl sub_80DAEA4 bl sub_80DB2BC b _080DF74A _080DF746: bl sub_80DF750 _080DF74A: pop {r4} pop {r0} bx r0 thumb_func_end sub_80DF704 thumb_func_start sub_80DF750 sub_80DF750: @ 80DF750 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x34 ldr r0, =gUnknown_020322D5 ldrb r0, [r0] cmp r0, 0 bne _080DF766 b _080DF924 _080DF766: ldr r0, =0x02000000 movs r1, 0xD0 lsls r1, 9 adds r0, r1 ldrb r0, [r0] subs r0, 0x2 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bls _080DF77C b _080DF924 _080DF77C: movs r7, 0 mov r2, sp adds r2, 0x18 str r2, [sp, 0x30] _080DF784: adds r0, r7, 0 movs r1, 0 bl FillWindowPixelBuffer adds r0, r7, 0x1 lsls r0, 24 lsrs r7, r0, 24 cmp r7, 0x3 bls _080DF784 ldr r0, =0x02000000 movs r1, 0xD0 lsls r1, 9 adds r0, r1 ldrb r0, [r0] cmp r0, 0x2 bne _080DF874 movs r7, 0 movs r2, 0x7 mov r10, r2 ldr r0, [sp, 0x30] mov r9, r0 _080DF7AE: add r0, sp, 0x4 ldr r1, =gUnknown_085ED1B2 bl StringCopy adds r5, r0, 0 ldr r0, =gUnknown_02039F26 adds r0, r7, r0 ldrb r0, [r0] mov r1, r10 str r1, [sp] add r1, sp, 0x4 movs r2, 0x5 movs r3, 0x1 bl sub_80DEBD0 ldr r0, =gUnknown_02039F34 ldr r0, [r0] ldr r1, [r0, 0x1C] lsls r0, r7, 4 adds r0, r1 ldrb r4, [r0, 0xC] movs r6, 0x7 adds r2, r7, 0x1 mov r8, r2 _080DF7DE: movs r1, 0x1 ands r1, r4 adds r0, r5, 0 movs r2, 0 movs r3, 0x1 bl ConvertIntToDecimalStringN adds r5, r0, 0 lsrs r4, 1 lsls r0, r6, 24 movs r1, 0xFF lsls r1, 24 adds r0, r1 lsrs r6, r0, 24 asrs r0, 24 movs r2, 0x1 negs r2, r2 cmp r0, r2 bgt _080DF7DE movs r6, 0 ldr r4, =gUnknown_02039F26 ldr r3, [sp, 0x30] _080DF80A: lsls r0, r6, 24 asrs r0, 24 adds r2, r3, r0 mov r1, sp adds r1, r0 adds r1, 0x4 ldrb r1, [r1] strb r1, [r2] adds r0, 0x1 lsls r0, 24 lsrs r6, r0, 24 asrs r5, r0, 24 cmp r5, 0x4 ble _080DF80A mov r0, r9 adds r1, r0, r5 movs r0, 0xFF strb r0, [r1] adds r4, r7, r4 ldrb r0, [r4] mov r1, r10 str r1, [sp] mov r1, r9 movs r2, 0x5 movs r3, 0x1 bl sub_80DEBD0 ldrb r0, [r4] mov r1, sp adds r1, r5 adds r1, 0x4 mov r2, r10 str r2, [sp] movs r2, 0x37 movs r3, 0x1 bl sub_80DEBD0 mov r1, r8 lsls r0, r1, 24 lsrs r7, r0, 24 cmp r7, 0x3 bls _080DF7AE b _080DF920 .pool _080DF874: movs r7, 0 mov r2, sp adds r2, 0x6 str r2, [sp, 0x2C] ldr r0, [sp, 0x30] mov r9, r0 movs r1, 0x7 mov r10, r1 _080DF884: add r0, sp, 0x4 ldr r1, =gUnknown_085ED1B5 bl StringCopy ldr r0, =gUnknown_02039F34 ldr r0, [r0] ldr r1, [r0, 0x1C] lsls r0, r7, 4 adds r0, r1 ldrb r4, [r0, 0xD] ldr r5, [sp, 0x2C] movs r6, 0x7 adds r2, r7, 0x1 mov r8, r2 _080DF8A0: movs r1, 0x1 ands r1, r4 adds r0, r5, 0 movs r2, 0 movs r3, 0x1 bl ConvertIntToDecimalStringN adds r5, r0, 0 lsrs r4, 1 lsls r0, r6, 24 movs r1, 0xFF lsls r1, 24 adds r0, r1 lsrs r6, r0, 24 asrs r0, 24 movs r2, 0x1 negs r2, r2 cmp r0, r2 bgt _080DF8A0 movs r6, 0 ldr r4, =gUnknown_02039F26 ldr r3, [sp, 0x30] _080DF8CC: lsls r0, r6, 24 asrs r0, 24 adds r2, r3, r0 mov r1, sp adds r1, r0 adds r1, 0x4 ldrb r1, [r1] strb r1, [r2] adds r0, 0x1 lsls r0, 24 lsrs r6, r0, 24 asrs r5, r0, 24 cmp r5, 0x4 ble _080DF8CC mov r0, r9 adds r1, r0, r5 movs r0, 0xFF strb r0, [r1] adds r4, r7, r4 ldrb r0, [r4] mov r1, r10 str r1, [sp] mov r1, r9 movs r2, 0x5 movs r3, 0x1 bl sub_80DEBD0 ldrb r0, [r4] mov r1, sp adds r1, r5 adds r1, 0x4 mov r2, r10 str r2, [sp] movs r2, 0x37 movs r3, 0x1 bl sub_80DEBD0 mov r1, r8 lsls r0, r1, 24 lsrs r7, r0, 24 cmp r7, 0x3 bls _080DF884 _080DF920: bl sub_80DB2BC _080DF924: add sp, 0x34 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_80DF750 thumb_func_start sub_80DF940 sub_80DF940: @ 80DF940 push {r4,r5,lr} adds r4, r0, 0 movs r5, 0x2 ldrb r0, [r4] cmp r0, 0xFC bne _080DF956 ldrb r0, [r4, 0x1] cmp r0, 0x15 bne _080DF956 movs r0, 0x2 b _080DF9CC _080DF956: adds r0, r4, 0 bl StringLength lsls r0, 16 lsrs r0, 16 cmp r0, 0x5 bhi _080DF9CA ldrb r0, [r4] cmp r0, 0xFF beq _080DF9CA _080DF96A: ldrb r1, [r4] adds r0, r1, 0 adds r0, 0x45 lsls r0, 24 lsrs r0, 24 cmp r0, 0x33 bls _080DF9BE adds r0, r1, 0 adds r0, 0x5F lsls r0, 24 lsrs r0, 24 cmp r0, 0x9 bls _080DF9BE adds r0, r1, 0 cmp r0, 0 beq _080DF9BE cmp r0, 0xAD beq _080DF9BE cmp r0, 0xB8 beq _080DF9BE cmp r0, 0xAB beq _080DF9BE cmp r0, 0xAC beq _080DF9BE cmp r0, 0xB5 beq _080DF9BE cmp r0, 0xB6 beq _080DF9BE cmp r0, 0xBA beq _080DF9BE cmp r0, 0xAE beq _080DF9BE cmp r0, 0xB0 beq _080DF9BE cmp r0, 0xB1 beq _080DF9BE cmp r0, 0xB2 beq _080DF9BE cmp r0, 0xB3 beq _080DF9BE cmp r0, 0xB1 bne _080DF9C8 _080DF9BE: adds r4, 0x1 ldrb r0, [r4] cmp r0, 0xFF bne _080DF96A b _080DF9CA _080DF9C8: movs r5, 0x1 _080DF9CA: adds r0, r5, 0 _080DF9CC: pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_80DF940 thumb_func_start sub_80DF9D4 sub_80DF9D4: @ 80DF9D4 ldrb r2, [r0, 0x5] movs r1, 0xFF strb r1, [r0, 0x5] strb r2, [r0, 0x7] bx lr thumb_func_end sub_80DF9D4 thumb_func_start sub_80DF9E0 sub_80DF9E0: @ 80DF9E0 push {r4,r5,lr} adds r5, r0, 0 adds r4, r1, 0 bl StripExtCtrlCodes cmp r4, 0x1 bne _080DF9F8 movs r0, 0xFF strb r0, [r5, 0x5] movs r0, 0xFC strb r0, [r5, 0xA] b _080DFA00 _080DF9F8: ldrb r1, [r5, 0x5] movs r0, 0xFF strb r0, [r5, 0x5] strb r1, [r5, 0xA] _080DFA00: pop {r4,r5} pop {r0} bx r0 thumb_func_end sub_80DF9E0 thumb_func_start sub_80DFA08 sub_80DFA08: @ 80DFA08 push {r4-r6,lr} adds r5, r0, 0 adds r6, r1, 0 adds r4, r5, 0x2 cmp r6, 0x1 bne _080DFA28 adds r0, r4, 0 bl sub_80DF940 adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 adds r0, r4, 0 bl ConvertInternationalString b _080DFA3E _080DFA28: ldrb r0, [r4, 0xA] cmp r0, 0xFC bne _080DFA38 adds r0, r4, 0 movs r1, 0x1 bl ConvertInternationalString b _080DFA3E _080DFA38: strb r0, [r4, 0x5] movs r0, 0xFF strb r0, [r4, 0xA] _080DFA3E: adds r4, r5, 0 adds r4, 0xD cmp r6, 0x1 bne _080DFA68 movs r0, 0xFF strb r0, [r4, 0x7] ldrb r0, [r4, 0x4] strb r0, [r4, 0x6] ldrb r0, [r4, 0x3] strb r0, [r4, 0x5] ldrb r0, [r4, 0x2] strb r0, [r4, 0x4] ldrb r0, [r4, 0x1] strb r0, [r4, 0x3] ldrb r0, [r5, 0xD] strb r0, [r4, 0x2] movs r0, 0x15 strb r0, [r4, 0x1] movs r0, 0xFC strb r0, [r5, 0xD] b _080DFA70 _080DFA68: ldrb r0, [r4, 0x7] strb r0, [r4, 0x5] movs r0, 0xFF strb r0, [r4, 0x7] _080DFA70: pop {r4-r6} pop {r0} bx r0 thumb_func_end sub_80DFA08 .align 2, 0 @ Don't pad with nop.