diff options
Diffstat (limited to 'asm/contest.s')
-rw-r--r-- | asm/contest.s | 15872 |
1 files changed, 15872 insertions, 0 deletions
diff --git a/asm/contest.s b/asm/contest.s new file mode 100644 index 000000000..8b3d98314 --- /dev/null +++ b/asm/contest.s @@ -0,0 +1,15872 @@ + .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 sub_80D766C +sub_80D766C: @ 80D766C + ldr r1, =0x02039f2a + movs r0, 0 + strb r0, [r1] + bx lr + .pool + thumb_func_end sub_80D766C + + 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, =0x02022e14 + movs r1, 0 + strh r1, [r0] + ldr r0, =0x02022e16 + strh r1, [r0] + ldr r0, =0x02022e18 + strh r1, [r0] + ldr r0, =0x02022e1a + strh r1, [r0] + ldr r0, =0x02022e1c + strh r1, [r0] + ldr r0, =0x02022e1e + strh r1, [r0] + ldr r0, =0x02022e20 + strh r1, [r0] + ldr r0, =0x02022e22 + strh r1, [r0] + ldr r0, =0x02022e24 + strh r1, [r0] + ldr r0, =0x02022e26 + strh r1, [r0] + ldr r0, =0x02022e28 + strh r1, [r0] + ldr r0, =0x02022e2a + 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 decompress_palette + bl sub_80D782C + movs r4, 0 + movs r5, 0xA0 +_080D775E: + ldr r0, =0x0201a004 + adds r0, r5, r0 + ldr r1, =0x02039f26 + adds r1, r4, r1 + ldrb r1, [r1] + adds r1, 0x5 + lsls r1, 4 + movs r2, 0x20 + bl gpu_pal_apply + 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, =0x02039f34 + 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, =0x02039f2a + ldrb r1, [r0] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + beq _080D7818 + ldr r2, =0x03003014 + ldrb r1, [r2] + movs r0, 0x2 + negs r0, r0 + ands r0, r1 + strb r0, [r2] + b _080D7822 + .pool +_080D7818: + ldr r0, =0x03003014 + 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 gpu_pal_apply + movs r0, 0 + movs r1, 0 + movs r2, 0x2 + bl rboxid_80040B8 + movs r5, 0xA + movs r4, 0xFA + lsls r4, 16 +_080D7848: + lsrs r1, r4, 16 + ldr r0, =0x020378f6 + movs r2, 0x2 + bl gpu_pal_apply + 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 rboxid_80040B8 + 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, =0x02039f34 + 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, =0x02039f34 + 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, =0x02039f34 + 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, =0x02039f34 + 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, =0x02039f2a + 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, =0x02039f26 +_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, =0x02039f34 + 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, =0x02039f34 + 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, =0x0202305c + str r0, [r1] + ldr r1, =0x02023060 + 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, =0x02039f34 + 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, =0x0202305c + str r4, [r0] + ldr r0, =0x02023060 + 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, =0x030022c0 + 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, =0x02039f38 + strb r5, [r0] + bl sub_80D7988 + bl init_uns_table_pokemon_copy + ldr r4, =0x020244d4 + 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 sub_80A1A74 + ldr r2, =0x02037fd4 + ldrb r0, [r2, 0x8] + movs r1, 0x80 + orrs r0, r1 + strb r0, [r2, 0x8] + bl ResetAllObjectData + bl ResetTasks + bl ResetObjectPaletteAllocator + ldr r1, =0x0300301c + 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, =0x02039f34 + 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, =0x02022e18 + movs r1, 0 + strh r1, [r0] + ldr r0, =0x02022e1a + strh r1, [r0] + movs r0, 0x2 + bl sub_80A2390 + ldr r2, =0x02037fd4 + 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, =0x02039f34 + ldr r1, [r1] + ldr r1, [r1] + strb r0, [r1, 0x8] + ldr r0, =sub_80D823C + bl SetMainCallback2 + ldr r0, =0x02039f2a + 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, =0x02037fd4 + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + lsls r0, 24 + lsrs r2, r0, 24 + cmp r2, 0 + bne _080D7CA2 + ldr r0, =0x03005e00 + 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, =0x02039f2a + 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, =0x03005e00 + 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, =0x03005e00 + 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, =0x02037fd4 + 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, =0x02039f2a + 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, =0x03005e00 + 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, =0x03005e00 + 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, =0x03005e00 + 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, =0x03005e00 + 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, =0x02039f34 + 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, =0x03005d80 + ldr r0, =0x030060b8 + 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, =0x02037fd4 + 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, =0x02039f34 + 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 decompress_palette + ldr r5, =0x02037814 + ldr r6, =0x04000008 + adds r0, r5, 0 + mov r1, sp + adds r2, r6, 0 + bl CpuSet + ldr r0, =0x02039f25 + 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, =0x02039f34 + 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, =0x02024076 + 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, =0x02022fec + str r4, [r0] + ldr r4, =0x0202420b + strb r2, [r4] + ldr r0, =0x0202420c + strb r3, [r0] + bl sub_80DB0C4 + ldr r2, =0x020241e4 + 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, =0x02037fd4 + 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, =0x03005e00 + 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, =0x03005e00 + 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 audio_play_and_stuff + ldrh r0, [r4, 0x8] + adds r0, 0x1 + strh r0, [r4, 0x8] + b _080D822C +_080D8176: + ldr r1, =0x02022e1a + 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, =0x03005e00 + 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, =0x03005e00 + 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, =0x02039f34 + 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 CallObjectCallbacks + bl RunTasks + bl PrepareSpritesForOamLoad + bl fade_and_return_progress_probably + movs r4, 0 +_080D8250: + ldr r5, =0x02039f38 + 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, =0x02022e14 + ldrh r1, [r0] + movs r0, 0x10 + bl SetGpuReg + ldr r0, =0x02022e16 + ldrh r1, [r0] + movs r0, 0x12 + bl SetGpuReg + ldr r0, =0x02022e18 + ldrh r1, [r0] + movs r0, 0x14 + bl SetGpuReg + ldr r0, =0x02022e1a + ldrh r1, [r0] + movs r0, 0x16 + bl SetGpuReg + ldr r0, =0x02022e1c + ldrh r1, [r0] + movs r0, 0x18 + bl SetGpuReg + ldr r0, =0x02022e1e + ldrh r1, [r0] + movs r0, 0x1A + bl SetGpuReg + ldr r0, =0x02022e20 + ldrh r1, [r0] + movs r0, 0x1C + bl SetGpuReg + ldr r0, =0x02022e22 + ldrh r1, [r0] + movs r0, 0x1E + bl SetGpuReg + ldr r0, =0x02022e24 + ldrh r1, [r0] + movs r0, 0x40 + bl SetGpuReg + ldr r0, =0x02022e26 + ldrh r1, [r0] + movs r0, 0x44 + bl SetGpuReg + ldr r0, =0x02022e28 + ldrh r1, [r0] + movs r0, 0x42 + bl SetGpuReg + ldr r0, =0x02022e2a + ldrh r1, [r0] + movs r0, 0x46 + bl SetGpuReg + bl copy_pal_bg_faded_to_pal_ram + bl LoadOamFromSprites + bl ProcessObjectCopyRequests + 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, =0x03005e00 + 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, =0x02022e16 + strh r1, [r0] + ldr r0, =0x02022e1e + strh r1, [r0] + bl sub_80DCD48 + ldr r1, =0x02037714 + 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, =0x02021cc4 + ldr r1, =0x02039f34 + ldr r1, [r1] + ldr r1, [r1] + ldrb r1, [r1, 0x1] + adds r1, 0x1 + movs r2, 0 + movs r3, 0x1 + bl ConvertIntToDecimalString + ldr r0, =0x02039f25 + ldrb r0, [r0] + bl sub_80DBCA8 + lsls r0, 24 + cmp r0, 0 + bne _080D83CC + ldr r0, =0x02022e2c + ldr r1, =gUnknown_0827D507 + bl CopyString + b _080D83D4 + .pool +_080D83CC: + ldr r0, =0x02022e2c + ldr r1, =gUnknown_0827D531 + bl CopyString +_080D83D4: + bl sub_80DB89C + ldr r4, =0x02021fc4 + ldr r1, =0x02022e2c + adds r0, r4, 0 + bl ExpandStringRefs + adds r0, r4, 0 + movs r1, 0x1 + bl sub_80DEC30 + ldr r1, =0x03005e00 + 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, =0x030022c0 + 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 audio_play + ldr r0, =0x02039f25 + ldrb r0, [r0] + bl sub_80DBCA8 + lsls r0, 24 + cmp r0, 0 + bne _080D8474 + movs r0, 0x1 + bl sub_80DC490 + ldr r0, =0x03005e00 + lsls r1, r4, 2 + adds r1, r4 + lsls r1, 3 + adds r1, r0 + ldr r0, =sub_80D8490 + b _080D8480 + .pool +_080D8474: + ldr r0, =0x03005e00 + 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, =0x02022e16 + movs r1, 0xA0 + strh r1, [r0] + ldr r0, =0x02022e1e + strh r1, [r0] + movs r6, 0 + ldr r0, =0x02039f25 + mov r8, r0 + ldr r2, =0x02039e1e + mov r10, r2 + ldr r7, =0x02039f34 +_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 CopyString + 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 CopyString + 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, =0x02039f34 + ldr r0, [r4] + ldr r0, [r0] + ldrb r0, [r0] + lsls r0, 24 + asrs r0, 24 + bl sub_80D880C + ldr r2, =0x02039e00 + ldr r0, [r4] + ldr r0, [r0] + ldrb r1, [r0] + lsls r1, 1 + ldr r0, =0x02039f25 + 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, =0x03005e00 + 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, =0x030022c0 + ldr r1, =0x02039e00 + ldr r0, =0x02039f25 + 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 audio_play + ldr r0, =0x03005e00 + 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 audio_play + movs r0, 0 + bl sub_80DC490 + ldr r0, =0x02021cc4 + ldr r1, =0x02039f34 + ldr r1, [r1] + ldr r1, [r1] + ldrb r1, [r1, 0x1] + adds r1, 0x1 + movs r2, 0 + movs r3, 0x1 + bl ConvertIntToDecimalString + ldr r0, =0x02039f25 + ldrb r0, [r0] + bl sub_80DBCA8 + lsls r0, 24 + cmp r0, 0 + bne _080D86DC + ldr r0, =0x02022e2c + ldr r1, =gUnknown_0827D507 + bl CopyString + b _080D86E4 + .pool +_080D86DC: + ldr r0, =0x02022e2c + ldr r1, =gUnknown_0827D531 + bl CopyString +_080D86E4: + bl sub_80DB89C + ldr r4, =0x02021fc4 + ldr r1, =0x02022e2c + adds r0, r4, 0 + bl ExpandStringRefs + adds r0, r4, 0 + movs r1, 0 + bl sub_80DEC30 + ldr r0, =0x02022e16 + movs r1, 0 + strh r1, [r0] + ldr r0, =0x02022e1e + strh r1, [r0] + ldr r1, =0x03005e00 + 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, =0x02039f34 + 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, =0x02039f34 + ldr r0, [r4] + ldr r0, [r0] + ldrb r0, [r0] + lsls r0, 24 + asrs r0, 24 + bl sub_80D880C + ldr r2, =0x02039e00 + ldr r0, [r4] + ldr r0, [r0] + ldrb r1, [r0] + lsls r1, 1 + ldr r0, =0x02039f25 + 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 audio_play + b _080D87FA + .pool +_080D879C: + ldr r4, =0x02039f34 + 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, =0x02039f34 + ldr r0, [r4] + ldr r0, [r0] + ldrb r0, [r0] + lsls r0, 24 + asrs r0, 24 + bl sub_80D880C + ldr r2, =0x02039e00 + ldr r0, [r4] + ldr r0, [r0] + ldrb r1, [r0] + lsls r1, 1 + ldr r0, =0x02039f25 + 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 audio_play +_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, =0x02039f2a + ldrb r1, [r0] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + beq _080D890C + ldr r4, =0x02039f25 + ldrb r0, [r4] + bl sub_80DB8B8 + ldr r1, =0x02039f34 + 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, =0x03005e00 + 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, =0x03005e00 + 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, =0x03005e00 + ldr r0, =0x02039f34 + 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, =0x02022e16 + movs r1, 0 + strh r1, [r0] + ldr r0, =0x02022e1e + 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, =0x02037b14 + 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 gpu_pal_apply + ldr r1, =0x03005e00 + 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, =0x03005e00 + 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, =0x02039f34 + 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, =0x03005e00 + 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, =0x03005e00 + 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, =0x02039f34 + ldr r0, [r2] + ldr r1, [r0] + movs r0, 0 + strb r0, [r1, 0x10] + ldr r0, [r2] + ldr r1, [r0] + ldr r0, =0x03005d80 + ldr r0, [r0] + str r0, [r1, 0x18] + ldr r0, =0x02039f2a + 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, =0x02039f30 + 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, =0x02039f34 + 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, =0x03005e00 + 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, =0x02039f34 + ldr r0, [r2] + ldr r0, [r0] + ldrb r6, [r0, 0x11] + ldr r1, =0x03005e00 + 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, =0x02039f34 + 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, =0x02039f34 + ldr r0, [r4] + ldr r0, [r0] + strb r7, [r0, 0x11] + ldr r0, [r4] + ldr r2, [r0] + ldrb r6, [r2, 0x11] + ldr r0, =0x02039f2a + 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, =0x03005e00 + 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, =0x03005e00 + 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, =0x02039f34 + 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, =0x03005e00 + 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, =0x03005e00 + 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, =0x020244e4 + 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, =0x02039e00 + 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, =0x02020630 + 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, =0x03005e00 + mov r4, r10 + add r4, r8 + lsls r4, 3 + adds r4, r0 + strh r5, [r4, 0xC] + ldr r1, =0x020241e4 + ldr r0, =0x0202420b + 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, =0x02020630 + lsls r0, r5, 4 + adds r0, r5 + lsls r0, 2 + adds r1, 0x1C + adds r0, r1 + ldr r1, [r0] + ldr r0, =DummyObjectCallback + 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, =0x02021cc4 + lsls r1, r6, 6 + ldr r2, =0x02039e02 + adds r1, r2 + bl CopyString + 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, =0x02021dc4 + adds r2, r1, 0 + movs r1, 0xD + muls r1, r2 + ldr r2, =gMoveNames + adds r1, r2 + bl CopyString + b _080D8F48 + .pool +_080D8F38: + ldr r0, =0x02021dc4 + ldr r2, =gUnknown_08587F1C + ldrb r1, [r3, 0xA] + lsls r1, 2 + adds r1, r2 + ldr r1, [r1] + bl CopyString +_080D8F48: + ldr r4, =0x02021fc4 + ldr r1, =gUnknown_0827D55A + adds r0, r4, 0 + bl ExpandStringRefs + adds r0, r4, 0 + movs r1, 0x1 + bl sub_80DEC30 + ldr r1, =0x03005e00 + 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, =0x02039f34 + ldr r0, [r0] + ldr r0, [r0] + adds r0, 0x5A + strb r1, [r0] + ldr r1, =0x03005e00 + 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, =0x03005e00 + 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, =0x020383f8 + ldr r0, [r0] + bl _call_via_r0 + ldr r0, =0x020383fd + ldrb r4, [r0] + cmp r4, 0 + beq _080D9024 + bl _080DA100 +_080D9024: + adds r0, r6, 0 + bl sub_80DE9B0 + ldr r0, =0x02039f34 + ldr r1, [r0] + ldr r0, [r1] + adds r0, 0x5A + ldrb r0, [r0] + cmp r0, 0 + beq _080D9060 + ldr r0, =0x03005e00 + 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, =0x03005e00 + 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, =0x03005e00 + 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, =0x03005e00 + 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, =0x03005e00 + 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, =0x03005e00 + 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, =0x03005e00 + 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, =0x03005e00 + 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, =0x03005e00 + 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, =0x03005e00 + 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 audio_play +_080D936E: + ldr r0, =0x03005e00 + 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, =0x02039f26 + ldr r2, =0x02039f34 +_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, =0x02039f26 + 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, =0x03005e00 + 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, =0x02039f26 + 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, =0x03005e00 + 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, =0x02039f26 + 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, =0x02039f26 + 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, =0x03005e00 + 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, =0x03005e00 + 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, =0x02039f26 + 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 audio_play + b _080D9642 + .pool +_080D963C: + movs r0, 0x64 + bl audio_play +_080D9642: + ldr r5, =0x02039f34 + 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, =0x03005e00 + 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, =0x02021cc4 + lsls r1, r6, 6 + ldr r2, =0x02039e02 + adds r1, r2 + bl CopyString + ldr r4, =0x02021fc4 + ldr r1, =gUnknown_0827E793 + adds r0, r4, 0 + bl ExpandStringRefs + adds r0, r4, 0 + movs r1, 0x1 + bl sub_80DEC30 +_080D96F6: + ldr r0, =0x03005e00 + 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, =0x02039f34 + 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, =0x03005e00 + 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, =0x03005e00 + 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, =0x03005e00 + 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, =0x02021cc4 + lsls r1, r6, 6 + ldr r2, =0x02039e02 + adds r1, r2 + bl CopyString + ldr r4, =0x02021fc4 + ldr r1, =gUnknown_0827E2FE + adds r0, r4, 0 + bl ExpandStringRefs + adds r0, r4, 0 + movs r1, 0x1 + bl sub_80DEC30 + movs r0, 0x2 + bl sub_80DD720 + ldr r1, =0x03005e00 + 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, =0x03005e00 + 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, =0x03005e00 + 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, =0x02039f34 + 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, =0x02021cc4 + lsls r1, r6, 6 + ldr r2, =0x02039e02 + adds r1, r2 + bl CopyString + ldr r4, =0x02021fc4 + ldr r1, =gUnknown_0827E6E3 + adds r0, r4, 0 + bl ExpandStringRefs + adds r0, r4, 0 + movs r1, 0x1 + bl sub_80DEC30 + ldr r0, =0x03005e00 + 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, =0x02039f34 + 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, =0x03005e00 + 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, =0x02039f34 + 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, =0x03005e00 + 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, =0x02021ec4 + ldrh r2, [r5, 0x6] + movs r1, 0xD + muls r1, r2 + ldr r2, =gMoveNames + adds r1, r2 + bl CopyString + b _080D9AAE + .pool +_080D9A94: + ldr r0, =0x02021ec4 + 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 CopyString +_080D9AAE: + ldr r5, [sp] + lsls r0, r5, 24 + cmp r0, 0 + ble _080D9AD2 + ldr r0, =0x02039f34 + 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, =0x02021cc4 + lsls r1, r6, 6 + ldr r2, =0x02039e02 + adds r1, r2 + bl CopyString + ldr r4, =0x02039f34 + 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, =0x03005e00 + mov r2, r8 + lsls r1, r2, 2 + b _080D9F58 + .pool +_080D9B30: + cmp r3, 0 + bge _080D9B48 + ldr r0, =0x02021fc4 + ldr r1, =gUnknown_0827E73C + bl ExpandStringRefs + 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, =0x02021fc4 + ldr r1, =gUnknown_0827E717 + bl ExpandStringRefs + b _080D9B74 + .pool +_080D9B6C: + ldr r0, =0x02021fc4 + ldr r1, =gUnknown_0827E76A + bl ExpandStringRefs +_080D9B74: + ldr r0, =0x02021fc4 + movs r1, 0x1 + bl sub_80DEC30 + ldr r1, =0x03005e00 + 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 fanfare_play + 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, =0x02037fd4 + 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 audio_play + 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, =0x03005e00 + 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, =0x02037fd4 + 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, =0x03005e00 + mov r2, r8 + lsls r1, r2, 2 + b _080D9F58 + .pool +_080D9DD4: + bl sub_80DB89C + ldr r0, =0x02021ec4 + ldr r5, =0x02039f34 + ldr r1, [r5] + ldr r1, [r1, 0x10] + ldr r1, [r1] + lsls r1, 20 + lsrs r1, 29 + lsls r1, 6 + ldr r4, =0x02039e02 + adds r1, r4 + bl CopyString + ldr r0, =0x02021cc4 + lsls r1, r6, 6 + adds r1, r4 + bl CopyString + ldr r0, =0x02021dc4 + 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 CopyString + ldr r4, =0x02021fc4 + ldr r1, =gUnknown_0827E7EA + adds r0, r4, 0 + bl ExpandStringRefs + adds r0, r4, 0 + movs r1, 0x1 + bl sub_80DEC30 + ldr r1, =0x03005e00 + 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, =0x02021fc4 + ldr r1, =gUnknown_0827E817 + adds r0, r4, 0 + bl ExpandStringRefs + adds r0, r4, 0 + movs r1, 0x1 + bl sub_80DEC30 + ldr r1, =0x03005e00 + 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, =0x03005e00 + 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, =0x02021cc4 + lsls r1, r6, 6 + ldr r2, =0x02039e02 + adds r1, r2 + bl CopyString + ldr r0, =0x02021dc4 + 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 CopyString + ldr r4, =0x02021fc4 + ldr r1, =gUnknown_0827E58A + adds r0, r4, 0 + bl ExpandStringRefs + adds r0, r4, 0 + movs r1, 0x1 + bl sub_80DEC30 + ldr r1, =0x03005e00 + 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, =0x03005e00 + 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, =0x03005e00 + 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, =0x03005e00 + 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, =0x02020630 + 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, =0x02020630 + 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 obj_free_rotscale_entry + adds r0, r6, 0 + bl RemoveObjectAndFreeTiles + 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, =0x02021cc4 + lsls r1, r6, 6 + ldr r2, =0x02039e02 + adds r1, r2 + bl CopyString + ldr r4, =0x02021fc4 + ldr r1, =gUnknown_0827D56F + adds r0, r4, 0 + bl ExpandStringRefs + adds r0, r4, 0 + movs r1, 0x1 + bl sub_80DEC30 + ldr r1, =0x03005e00 + 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, =0x03005e00 + 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, =0x02039f34 + 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, =DummyObjectCallback + 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, =DummyObjectCallback + 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, =0x03005e00 + 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, =0x02039f2a + ldrb r1, [r0] + movs r6, 0x1 + adds r0, r6, 0 + ands r0, r1 + cmp r0, 0 + beq _080DA224 + ldr r0, =0x02039f34 + 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, =0x02039f34 + 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, =0x03005e00 + 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, =0x03005e00 + 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, =0x02039f34 + 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, =0x03005e00 + 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, =0x02037714 + ldr r1, =0x040000d4 + str r2, [r1] + str r3, [r1, 0x4] + ldr r2, =0x84000100 + str r2, [r1, 0x8] + ldr r1, [r1, 0x8] + ldr r2, =0x03005e00 + 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, =0x03005e00 + 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, =0x03005e00 + 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, =0x02039f34 + ldr r0, [r0] + ldr r5, =0x02039f25 + 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, =0x02021cc4 + ldrb r1, [r5] + lsls r1, 6 + ldr r2, =0x02039e02 + adds r1, r2 + bl CopyString + ldr r5, =0x02021fc4 + ldr r0, =gUnknown_08587D90 + lsls r4, 2 + adds r4, r0 + ldr r1, [r4] + adds r0, r5, 0 + bl ExpandStringRefs + 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, =0x03005e00 + 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, =0x03005e00 + 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, =0x03005e00 + 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, =0x03005e00 + 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, =0x02039f34 + 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, =0x03005e00 + 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, =0x03005e00 + 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, =0x02039f34 + ldr r0, [r0] + ldr r0, [r0] + ldrb r1, [r0, 0x6] + movs r0, 0x40 + ands r0, r1 + cmp r0, 0 + bne _080DA5D8 + ldr r0, =0x03005e00 + 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, =0x02022e16 + movs r1, 0 + strh r1, [r0] + ldr r0, =0x02022e1e + strh r1, [r0] + ldr r4, =0x02039f34 + movs r3, 0 + ldr r2, =0x02039f10 + 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, =0x02039f2a + ldrb r1, [r0] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + bne _080DA65C + ldr r0, =0x02039f34 + ldr r2, [r0] + ldr r0, =0x02039f25 + 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, =0x030060b8 + ldr r0, =0x03005d80 + ldr r0, [r0] + str r0, [r1] + ldr r4, =0x02021fc4 + ldr r1, =gUnknown_0827D597 + adds r0, r4, 0 + bl ExpandStringRefs + adds r0, r4, 0 + movs r1, 0x1 + bl sub_80DEC30 + ldr r1, =0x03005e00 + 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, =0x02022e18 + strh r4, [r0] + ldr r1, =0x02022e1a + movs r0, 0xA0 + strh r0, [r1] + movs r0, 0x62 + movs r1, 0 + bl audio_play_and_stuff + ldr r1, =0x03005e00 + 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, =0x02022e1a + 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, =0x03005e00 + 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, =0x03005e00 + 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, =0x02039f2a + 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 pal_fade_maybe + 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, =0x03005e00 + 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 pal_fade_maybe + ldr r2, =0x03005e00 + ldr r0, =0x02039f34 + 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, =0x02037fd4 + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + bne _080DA860 + adds r0, r2, 0 + bl DestroyTask + ldr r0, =0x03005dac + 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, =0x02039f2a + ldrb r1, [r0] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + bne _080DA898 + ldr r1, =0x02039f25 + 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, =0x02039f25 + ldr r1, =0x02039f2b + 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, =0x03005d90 + ldr r1, [r6] + mov r0, sp + bl CopyString + ldr r0, =0x02039f2a + ldrb r1, [r0] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + beq _080DA8F2 + mov r0, sp + bl sub_80DF9D4 +_080DA8F2: + ldr r5, =0x02039f25 + ldrb r0, [r5] + lsls r0, 6 + ldr r4, =0x02039e0d + 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, =0x02039e00 + ldr r6, =0x02039f25 + 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, =0x020244ec + adds r5, r1, r0 + adds r0, r5, 0 + movs r1, 0xB + bl pokemon_getattr + ldrb r1, [r6] + lsls r1, 6 + adds r1, r7 + strh r0, [r1] + adds r0, r5, 0 + movs r1, 0x2 + mov r2, sp + bl pokemon_getattr + mov r0, sp + bl GetStringEnd_Limit7 + ldr r0, =0x02039f2a + ldrb r1, [r0] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + beq _080DA994 + adds r0, r5, 0 + movs r1, 0x3 + bl pokemon_getattr + 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 CopyString + adds r0, r5, 0 + movs r1, 0x16 + bl pokemon_getattr + ldrb r1, [r6] + lsls r1, 6 + adds r1, r7 + adds r1, 0x26 + strb r0, [r1] + adds r0, r5, 0 + movs r1, 0x17 + bl pokemon_getattr + ldrb r1, [r6] + lsls r1, 6 + adds r1, r7 + adds r1, 0x27 + strb r0, [r1] + adds r0, r5, 0 + movs r1, 0x18 + bl pokemon_getattr + ldrb r1, [r6] + lsls r1, 6 + adds r1, r7 + adds r1, 0x28 + strb r0, [r1] + adds r0, r5, 0 + movs r1, 0x21 + bl pokemon_getattr + ldrb r1, [r6] + lsls r1, 6 + adds r1, r7 + adds r1, 0x29 + strb r0, [r1] + adds r0, r5, 0 + movs r1, 0x2F + bl pokemon_getattr + ldrb r1, [r6] + lsls r1, 6 + adds r1, r7 + adds r1, 0x2A + strb r0, [r1] + adds r0, r5, 0 + movs r1, 0x30 + bl pokemon_getattr + ldrb r1, [r6] + lsls r1, 6 + adds r1, r7 + adds r1, 0x2B + strb r0, [r1] + adds r0, r5, 0 + movs r1, 0xD + bl pokemon_getattr + ldrb r1, [r6] + lsls r1, 6 + adds r1, r7 + strh r0, [r1, 0x1E] + adds r0, r5, 0 + movs r1, 0xE + bl pokemon_getattr + ldrb r1, [r6] + lsls r1, 6 + adds r1, r7 + strh r0, [r1, 0x20] + adds r0, r5, 0 + movs r1, 0xF + bl pokemon_getattr + ldrb r1, [r6] + lsls r1, 6 + adds r1, r7 + strh r0, [r1, 0x22] + adds r0, r5, 0 + movs r1, 0x10 + bl pokemon_getattr + ldrb r1, [r6] + lsls r1, 6 + adds r1, r7 + strh r0, [r1, 0x24] + adds r0, r5, 0 + movs r1, 0 + bl pokemon_getattr + 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 pokemon_getattr + 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 pokemon_getattr + 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, =0x02039e00 + ldr r1, =0x02039f25 + 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, =0x02039f2a + 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 GenerateRandomNumber + lsls r0, 16 + lsrs r0, 16 + adds r1, r6, 0 + bl __modsi3 + lsls r0, 16 + lsrs r0, 16 + ldr r1, =0x02039e00 + 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, =0x02039f24 + 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, =0x02039f30 + 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, =0x02039e00 + 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 pokemon_getattr + cmp r0, 0 + beq _080DAE1E + movs r0, 0x3 + b _080DAE9A +_080DAE1E: + adds r0, r4, 0 + movs r1, 0x39 + bl pokemon_getattr + cmp r0, 0 + bne _080DAE2E + movs r0, 0x4 + b _080DAE9A +_080DAE2E: + ldr r0, =0x02039f2c + 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 pokemon_getattr + lsls r0, 24 + lsrs r1, r0, 24 + b _080DAE86 +_080DAE82: + movs r0, 0 + b _080DAE9A +_080DAE86: + ldr r0, =0x02039f2e + 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, =0x02039f26 + 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, =0x02022e2c + ldr r1, =gUnknown_085ED1AB + bl CopyString + adds r1, r0, 0 + subs r0, r1, 0x1 + strb r4, [r0] + adds r0, r1, 0 + adds r1, r5, 0 + bl CopyString + 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 CopyString + lsls r1, r5, 6 + ldr r0, =0x02039e0d + adds r1, r0 + add r0, sp, 0x4 + bl AppendString + add r0, sp, 0x4 + adds r1, r4, 0 + bl sub_80DAED4 + ldr r4, =0x02022e2c + 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, =0x02039f26 + 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, =0x02039e02 + adds r0, r2 + bl sub_80DAED4 + ldr r0, =0x02039f26 + adds r4, r0 + ldrb r0, [r4] + ldr r1, =0x02022e2c + 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, =0x02039e00 + 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, =0x02039e00 + 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, =0x02039e00 + lsls r2, 6 + adds r3, r2, r1 + adds r0, r3, 0 + adds r0, 0x28 + b _080DB05A + .pool +_080DB050: + ldr r1, =0x02039e00 + 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, =0x02039e00 + 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, =0x02039f00 +_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 decompress_palette + ldr r0, =gUnknown_08587BE8 + movs r1, 0x70 + movs r2, 0x24 + movs r3, 0x1E + bl AddObjectToFront + lsls r0, 24 + lsrs r0, 24 + ldr r4, =0x02020630 + 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, =DummyObjectCallback + 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 AddObjectToFront + lsls r0, 24 + lsrs r0, 24 + ldr r1, =0x02020630 + 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, =0x02039f25 + ldrb r0, [r0] + cmp r4, r0 + bne _080DB1B8 + lsls r0, r5, 3 + ldr r1, =gMonBackPicTable + adds r0, r1 + ldr r1, =0x020244d4 + ldr r1, [r1] + ldr r1, [r1, 0x4] + adds r2, r5, 0 + adds r3, r6, 0 + bl DecompressMonPic_DetectFrontOrBack_2 + b _080DB1CC + .pool +_080DB1B8: + lsls r0, r5, 3 + ldr r1, =gMonBackPicTable + adds r0, r1 + ldr r1, =0x020244d4 + ldr r1, [r1] + ldr r1, [r1, 0x4] + adds r2, r5, 0 + adds r3, r6, 0 + bl DecompressMonPicWithoutDuplicatingDeoxysTiles_DetectFrontOrBack +_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 decompress_palette + adds r0, r5, 0 + movs r1, 0 + bl sub_806A068 + ldr r4, =0x0202499c + 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 AddObjectToFront + lsls r0, 24 + lsrs r7, r0, 24 + ldr r0, =0x02020630 + 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, =DummyObjectCallback + 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, =0x02020630 + adds r0, r1 + movs r1, 0 + bl StartObjectRotScalAnim + 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, =0x02039f34 + 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, =0x02039f26 + 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, =0x02039f34 + 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, =0x02039f34 + 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, =0x02039f26 + 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 audio_play + 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, =0x02039f26 + 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, =0x02039f34 + 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, =0x02039f26 + 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, =0x02039f34 + 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, =0x02039f25 + ldrb r0, [r0] + cmp r4, r0 + beq _080DB8F4 + adds r0, r4, 0 + bl sub_81562C4 + bl sub_8156324 + lsls r0, 24 + ldr r2, =0x02039e00 + lsrs r0, 23 + lsls r1, r4, 6 + b _080DB902 + .pool +_080DB8F4: + ldr r2, =0x02039e00 + ldr r0, =0x02039f34 + 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, =0x02039f34 + 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, =0x02039f34 + 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, =0x02039f34 + 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, =0x02039f34 + 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, =0x02039f34 + 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, =0x02039f34 + 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, =0x02039f34 + 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, =0x02039f34 + 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, =0x02039f34 + 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, =0x02039f18 + lsls r4, 1 + adds r1, r4, r1 + strh r0, [r1] + ldr r2, =0x02039f08 + adds r2, r4, r2 + ldr r1, =0x02039f00 + 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, =0x02039f10 + 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 GenerateRandomNumber + 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, =0x02039f08 + ldr r2, [sp, 0x64] + ldr r5, =0x02039f00 + 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, =0x02039f20 + 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, =0x02039f2a + ldrb r1, [r0] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + beq _080DBF0E + ldr r0, =0x03005d90 + ldr r2, [r0] + ldr r1, =0x02039f20 + ldr r0, =0x02039f25 + ldrb r0, [r0] + adds r0, r1 + ldrb r1, [r0] + lsls r1, 1 + ldr r0, =0x02039f2c + 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, =0x02022e16 + movs r1, 0 + strh r1, [r0] + ldr r0, =0x02022e1e + 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, =0x02039f34 + 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, =0x03005e00 + 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, =0x03005e00 + 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, =0x03005e00 + 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, =0x02039f34 + 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, =0x03005e00 + 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, =0x02039f26 + 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 audio_play + ldr r4, =0x030075f0 + 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 MPlayPitchControl + b _080DC28A + .pool +_080DC284: + movs r0, 0x16 + bl audio_play +_080DC28A: + mov r2, r10 + cmp r2, 0 + bne _080DC2A8 + cmp r5, 0 + bne _080DC2A8 + cmp r6, 0 + bne _080DC2A8 + ldr r0, =0x03005e00 + 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 LoadObjectPic + movs r4, 0 + ldr r5, =gUnknown_08587A6C +_080DC2C8: + ldr r0, =0x02039f26 + adds r0, r4, r0 + ldrb r0, [r0] + adds r0, r5 + ldrb r2, [r0] + ldr r0, =gUnknown_08587AD0 + movs r1, 0xB4 + movs r3, 0x1 + bl AddObjectToFront + ldr r1, =0x02039f34 + 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, =0x02039f34 + 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, =0x02020630 + 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, =0x02039f34 + 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, =0x02039f34 + 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, =DummyObjectCallback + 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, =0x02020630 + ldr r5, =0x02039f34 + ldr r4, =gUnknown_08587A6C + ldr r3, =0x02039f26 +_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, =0x02039f26 + ldr r5, =0x02020630 + ldr r4, =0x02039f34 + 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 LoadTaggedObjectPalette + movs r5, 0 + ldr r7, =0x02039f34 + ldr r0, =0x02020630 + 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, =0x02039f26 + adds r1, r5, r1 + ldrb r1, [r1] + adds r1, r2 + ldrb r2, [r1] + movs r1, 0xCC + movs r3, 0 + bl AddObjectToFront + 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 SetSpriteOamTables_NoPriorityFromTable + 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 LoadTaggedObjectPalette + ldr r0, =gUnknown_08587BC8 + movs r1, 0x1E + movs r2, 0x2C + movs r3, 0x1 + bl AddObjectToFront + lsls r0, 24 + lsrs r0, 24 + ldr r2, =0x02020630 + 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, =0x02039f34 + 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, =0x02039f34 + 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, =0x03005e08 + 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, =0x03005e00 + ldr r1, =0x02039f34 + 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, =0x03005e00 + 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, =0x03005e00 + lsls r0, r6, 2 + adds r0, r6 + lsls r0, 3 + adds r0, r2 + ldrb r0, [r0, 0x8] + adds r5, r0, 0 + ldr r0, =0x02039f34 + 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 pal_fade_1 + 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, =0x03005e08 + 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, =0x02039f34 + 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 pal_fade_1 +_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, =0x02039f34 + 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, =0x03005e00 + ldr r1, =0x02039f34 + 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, =0x02037728 + adds r6, r2, r3 + ldr r5, =0x02037b28 + 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, =0x03005e08 + 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, =0x03005e00 + 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 pal_fade_1 + adds r4, 0xC + adds r4, r7 + ldrb r2, [r5] + adds r0, r4, 0 + movs r1, 0x1 + mov r3, r10 + bl pal_fade_1 +_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, =0x02039f34 + 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, =0x02039f26 + 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 LoadTaggedObjectPalette + 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 AddObjectToFront + 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 AddObjectToFront + 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, =0x02020630 + 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, =0x02039f34 + ldr r0, [r7] + ldr r0, [r0, 0x34] + str r0, [sp] + movs r0, 0 + movs r1, 0x3 + adds r2, r4, 0 + bl rfu_MBOOT_CHILD_inheritanceLinkStatus + 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 rfu_MBOOT_CHILD_inheritanceLinkStatus + 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, =0x02020630 + 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, =0x02020630 + 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 obj_free_rotscale_entry + adds r0, r4, 0 + bl RemoveObjectAndFreeTiles + adds r0, r5, 0 + bl RemoveObjectAndFreeResources + 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, =0x02039f34 + ldr r1, [r0] + ldr r2, =0x02020630 + 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 StartObjectRotScalAnim + lsls r4, r5, 4 + adds r4, r5 + lsls r4, 2 + mov r1, r8 + adds r0, r4, r1 + movs r1, 0x1 + bl StartObjectRotScalAnim + movs r2, 0x1C + add r8, r2 + add r6, r8 + ldr r0, =sub_80DCC84 + str r0, [r6] + add r4, r8 + ldr r0, =DummyObjectCallback + str r0, [r4] + mov r3, r9 + cmp r3, 0 + bne _080DCC70 + movs r0, 0x65 + bl audio_play + b _080DCC76 + .pool +_080DCC70: + movs r0, 0x2 + bl audio_play +_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, =0x02020630 + 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, =0x02039f34 + 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, =0x020322d5 + 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, =0x02039f34 + 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 CopyString + adds r2, r0, 0 +_080DCDBC: + lsls r1, r4, 16 + asrs r1, 16 + adds r0, r2, 0 + movs r2, 0 + movs r3, 0x4 + bl ConvertIntToDecimalString + ldr r0, =0x02039f26 + 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, =0x02039f34 + 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 CopyString + adds r2, r0, 0 +_080DCE14: + lsls r1, r4, 16 + asrs r1, 16 + adds r0, r2, 0 + movs r2, 0 + movs r3, 0x4 + bl ConvertIntToDecimalString + ldr r0, =0x02039f26 + 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 GenerateRandomNumber + 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, =0x02039f26 + mov r8, r3 +_080DCECC: + mov r6, r8 + strb r5, [r6] + movs r4, 0 + cmp r4, r5 + bge _080DCF48 + ldr r7, =0x02039f00 + 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, =0x02039f26 + 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, =0x02039f26 + 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, =0x02039f26 + movs r6, 0 +_080DCF90: + ldr r0, =0x02039f34 + 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, =0x02039f26 + mov r8, r2 + add r3, sp, 0x4 + mov r12, r3 +_080DCFE0: + ldr r6, =0x02039f34 + 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, =0x02039f26 + adds r1, r4, r1 + ldrb r1, [r1] + adds r1, 0x5 + lsls r1, 4 + movs r2, 0x20 + bl gpu_pal_apply + 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, =0x02039f34 + 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, =0x02039f34 + 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, =0x02039f34 + 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, =0x02039f34 + 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, =0x02039f34 + 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, =0x02039f34 + 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, =0x02039f34 + 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 GenerateRandomNumber + 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, =0x02039f34 + 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, =0x02039f34 + 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, =0x02039f34 + 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, =0x02021cc4 + lsls r1, r4, 6 + ldr r2, =0x02039e02 + adds r1, r2 + bl CopyString + ldr r0, =0x02021dc4 + ldr r5, =0x02039f34 + 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 CopyString + 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, =0x02021ec4 + ldr r1, =gUnknown_0827E837 + bl CopyString + b _080DD52C + .pool +_080DD4DC: + lsrs r0, r1, 29 + cmp r0, 0x1 + bne _080DD4F4 + ldr r0, =0x02021ec4 + ldr r1, =gUnknown_0827E83F + bl CopyString + b _080DD52C + .pool +_080DD4F4: + lsrs r0, r1, 29 + cmp r0, 0x2 + bne _080DD50C + ldr r0, =0x02021ec4 + ldr r1, =gUnknown_0827E847 + bl CopyString + b _080DD52C + .pool +_080DD50C: + lsrs r0, r1, 29 + cmp r0, 0x3 + bne _080DD524 + ldr r0, =0x02021ec4 + ldr r1, =gUnknown_0827E850 + bl CopyString + b _080DD52C + .pool +_080DD524: + ldr r0, =0x02021ec4 + ldr r1, =gUnknown_0827E85A + bl CopyString +_080DD52C: + ldr r4, =0x02021fc4 + ldr r1, =gUnknown_08587E10 + lsls r0, r6, 2 + adds r0, r1 + ldr r1, [r0] + adds r0, r4, 0 + bl ExpandStringRefs + 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, =0x02039f34 + 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, =0x02039f26 + 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, =0x02039f34 + 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, =0x02039f26 + 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, =0x02039f34 + 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, =DummyObjectCallback + str r0, [r2, 0x1C] + ldr r0, =0x02039f34 + 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, =0x02039f34 + 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, =0x02020630 + 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 audio_play + b _080DD8F8 + .pool +_080DD79C: + ldr r0, =0x02020630 + 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 audio_play + b _080DD8F8 + .pool +_080DD7D0: + ldr r0, =0x02020630 + 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 audio_play + b _080DD8F8 + .pool +_080DD804: + ldr r0, =0x02020630 + 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 audio_play + b _080DD8F8 + .pool +_080DD838: + ldr r0, =0x02020630 + 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 audio_play + b _080DD8F8 + .pool +_080DD86C: + ldr r0, =0x02020630 + 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 audio_play + b _080DD8F8 + .pool +_080DD8A0: + ldr r0, =0x02020630 + 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 audio_play + b _080DD8F8 + .pool +_080DD8D4: + ldr r0, =0x02020630 + 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 audio_play +_080DD8F8: + adds r2, r4, 0 + ldr r4, =0x02020630 + 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, =0x02039f34 + 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, =0x02039f34 + ldr r0, =0x02020630 + 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, =0x02039f2c + 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, =0x03005e00 + lsls r4, r5, 2 + adds r4, r5 + lsls r4, 3 + adds r4, r0 + movs r0, 0x1 + strh r0, [r4, 0xA] + ldr r0, =0x0000abe2 + bl IndexOfObjectPaletteTag + 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, =0x03005e00 + 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 pal_fade_1 + 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, =0x02039f34 + 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 pal_fade_1 + 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, =0x02020630 + ldr r4, =0x02039f34 + 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, =0x02039f34 + ldr r0, [r4] + ldr r0, [r0] + adds r0, 0x58 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + ldr r1, =0x02020630 + adds r2, r0, r1 + ldr r0, =0x03005e00 + 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, =0x02020630 + ldr r4, =0x02039f34 + 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, =0x02039f34 + ldr r0, [r5] + ldr r0, [r0] + adds r0, 0x58 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + ldr r1, =0x02020630 + adds r3, r0, r1 + ldr r0, =0x03005e00 + 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, =0x03005e00 + 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, =0x02039f34 + 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, =0x03005e00 + 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, =0x02039f34 + 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, =0x02039f34 + 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, =0x02020630 + ldr r0, =0x02039f34 + 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, =0x02020630 + ldr r0, =0x02039f34 + 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, =0x02039f34 + 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, =0x03005e00 + 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, =0x03005e00 + 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, =0x02039f34 + 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, =0x02039f34 + 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, =0x02039f34 + 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, =0x02039f34 +_080DDF4E: + ldr r1, =0x03005e00 + 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, =0x03005e00 + 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 pal_fade_1 + ldrb r2, [r4, 0xA] + ldrh r3, [r4, 0x8] + movs r0, 0x1A + movs r1, 0x1 + bl pal_fade_1 + 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, =0x02039f34 + 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, =0x02039f34 + mov r9, r0 + mov r8, r9 + ldr r6, =0x02020630 + 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, =0x02039f26 + 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, =0x02039f34 + 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, =0x02039f34 + 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, =0x02039f26 + 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 audio_play +_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, =0x02039f34 + 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, =0x02022e18 + movs r0, 0xF0 + strh r0, [r1] + ldr r4, =0x02022e1a + 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, =0x02039f34 + 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, =0x02020630 + 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, =0x02039f34 + 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, =0x02022e18 + strh r5, [r0] + ldr r0, =0x02022e1a + strh r5, [r0] + ldr r7, =0x02020630 +_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, =0x02022e18 + movs r0, 0 + strh r0, [r1] + ldr r1, =0x02022e1a + movs r0, 0xA0 + strh r0, [r1] + movs r0, 0x62 + movs r1, 0 + bl audio_play_and_stuff + ldr r1, =0x03005e00 + 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, =0x02022e1a + 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, =0x03005e00 + 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, =0x03005e00 + 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, =0x02039f34 + ldr r3, =0x02039f26 +_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, =0x03005e00 + adds r1, r6, r4 + lsls r1, 3 + adds r1, r0 + movs r0, 0x1 + strh r0, [r1, 0x8] + b _080DE5B4 + .pool +_080DE52C: + ldr r0, =0x02039f2a + ldrb r0, [r0] + ands r1, r0 + cmp r1, 0 + beq _080DE584 + ldr r0, =0x02039f34 + 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, =0x02039f34 + 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, =0x02022e1a + ldrh r0, [r1] + adds r0, 0x7 + strh r0, [r1] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0xA0 + ble _080DE5E4 + ldr r0, =0x03005e00 + 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, =0x03005e00 + 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, =0x03005e00 + 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 audio_play_and_stuff + 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, =0x02020630 + ldr r5, =0x02039f34 +_080DE6AE: + bl rotscale_alloc_entry + 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 StartObjectRotScalAnim + 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 AnimateObject + 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, =0x03005e00 + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + adds r1, r2 + mov r0, r8 + strh r0, [r1, 0x8] + ldr r0, =0x02039f34 + 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, =0x02020630 + ldr r3, =0x02039f34 + 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, =0x03005e00 + 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, =0x02039f34 + 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, =0x02020630 + adds r0, r1 + bl obj_free_rotscale_entry + 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, =0x02039f34 + 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, =0x02039e00 + 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, =0x020244e4 + 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, =0x02038432 + movs r0, 0 + b _080DE9A0 + .pool +_080DE920: + ldr r6, =0x02039f34 + 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, =0x02039e00 + 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, =0x0203841a + movs r0, 0xFF + b _080DE9A0 + .pool +_080DE96C: + ldr r1, =0x0203841a + movs r0, 0 + b _080DE9A0 + .pool +_080DE978: + ldr r0, =0x02039f34 + 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, =0x02038432 + strb r1, [r0] + b _080DE9A2 + .pool +_080DE99C: + ldr r1, =0x02038432 + 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, =0x02039f34 + 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, =0x02039f34 + ldr r0, [r6] + ldr r0, [r0, 0x18] + strb r4, [r0, 0x5] + ldr r5, =0x02039e00 + 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, =DummyObjectCallback + bl object_new_hidden_with_callback + ldr r1, =0x020241e4 + strb r0, [r1, 0x3] + ldr r0, =0x0202420c + ldrb r0, [r0] + adds r0, r1 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + ldr r1, =0x02020630 + adds r0, r1 + bl obj_alloc_rotscale_entry + 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, =0x020241e4 + ldrb r0, [r0, 0x3] + lsls r4, r0, 4 + adds r4, r0 + lsls r4, 2 + ldr r0, =0x02020630 + 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, =0x0202420c + movs r0, 0x2 + b _080DEB64 + .pool +_080DEB60: + ldr r1, =0x0202420c + 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, =0x02039f2a + 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, =0x02039f38 + 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 sub_80DED74 +sub_80DED74: @ 80DED74 + push {r4-r6,lr} + movs r0, 0 + ldr r6, =0x03005d90 + 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 sub_80DED74 + + 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 GenerateRandomNumber + 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, =0x02039f20 + 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, =0x02039f25 + ldrb r0, [r0] + cmp r5, r0 + beq _080DEE00 + movs r0, 0 + b _080DEF90 + .pool +_080DEE00: + ldr r0, =0x02039f2c + 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, =0x03005d8c + 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, =0x02039e00 + 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 CopyString + mov r2, r10 + ldr r0, [r2] + adds r0, r6 + adds r0, 0x16 + adds r4, 0xD + adds r5, r4 + adds r1, r5, 0 + bl CopyString + ldr r0, =0x02039f2a + 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, =0x02039f2e + ldrh r1, [r1] + ldr r3, =0x00002eae + adds r0, r3 +_080DEF02: + strb r1, [r0] + ldr r0, [sp] + cmp r0, 0xFF + beq _080DEF34 + ldr r0, =0x03005d8c + ldr r0, [r0] + mov r2, r9 + lsls r1, r2, 5 + adds r0, r1 + ldr r1, =0x02039f2c + ldrh r1, [r1] + ldr r3, =0x00002e9a + adds r0, r3 + strb r1, [r0] + b _080DEF8E + .pool +_080DEF34: + ldr r0, =0x03005d8c + 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, =0x02039f3c + ldr r4, =0x02039e00 + 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 CopyString + adds r0, r6, 0 + adds r0, 0x16 + adds r4, 0xD + adds r5, r4 + adds r1, r5, 0 + bl CopyString + 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, =0x03005d8c + 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, =0x02039f2c + 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 sub_80DF040 +sub_80DF040: @ 80DF040 + push {r4-r7,lr} + movs r2, 0 + ldr r0, =0x03005d8c + 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 sub_80DF040 + + thumb_func_start sub_80DF080 +sub_80DF080: @ 80DF080 + push {r4-r7,lr} + lsls r0, 24 + lsrs r4, r0, 24 + ldr r2, =0x02039f34 + 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, =0x02039f34 + 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, =0x02039f20 + 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, =0x02039f08 + 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, =0x02039f34 + 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, =0x02039f34 + 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, =0x02039f00 + add r2, r10 + movs r6, 0 + ldrsh r1, [r2, r6] + ldr r7, =0x02039f00 + 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, =0x02039f20 + adds r0, r4, r1 + ldrb r0, [r0] + cmp r0, 0 + beq _080DF354 + ldr r2, =0x02039f34 + 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, =0x02039f00 + add r0, r10 + movs r7, 0 + ldrsh r6, [r0, r7] + str r6, [sp, 0x34] + ldr r2, =0x02039f00 + ldr r0, =0x02039f18 + 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, =0x02039f34 + 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, =0x02039f34 + 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, =0x02039f34 + 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, =0x02039f34 + 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 GenerateRandomNumber + ldr r1, =0x02039f34 + 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, =0x02039f20 + ldr r0, =0x02039f25 + 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, =0x02039f34 + 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, =0x02039f00 + adds r0, r2, r1 + movs r6, 0 + ldrsh r5, [r0, r6] + str r5, [sp, 0x8] + adds r5, r1, 0 + ldr r0, =0x02039f18 + 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 GenerateRandomNumber + lsls r0, 16 + lsrs r0, 16 + adds r1, r4, 0 + bl __modsi3 + lsls r0, 24 + lsrs r5, r0, 24 + ldr r0, =0x02039f34 + 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, =0x02039f34 + 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, =0x02039f34 + 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 GenerateRandomNumber + 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, =0x02039f34 + 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, =0x02039f34 + 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, =0x020322d5 + 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 CopyString + adds r5, r0, 0 + ldr r0, =0x02039f26 + 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, =0x02039f34 + 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 ConvertIntToDecimalString + 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, =0x02039f26 + 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 CopyString + ldr r0, =0x02039f34 + 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 ConvertIntToDecimalString + 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, =0x02039f26 + 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 GetStringLength + 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 StripExtendedControlCodes + 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 StopMusicWhileStringIsPrinted + b _080DFA3E +_080DFA28: + ldrb r0, [r4, 0xA] + cmp r0, 0xFC + bne _080DFA38 + adds r0, r4, 0 + movs r1, 0x1 + bl StopMusicWhileStringIsPrinted + 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. |