extern int Sub_08012F86(int);
void Image_DrawTiled(void) __attribute__((naked));
void Image_DrawTiled(void)
{
  __asm__ volatile(
  ".syntax unified\n"
  ".thumb\n"
  "add r2, pc, #0\n"
  "bx r2\n"
  "movs r1, #144\n"
  "b LstmMid_%=\n"
  ".hword 0x0000\n"
  ".hword 0xE283\n"
  ".word 0xE12FFF1E\n"
  "ldr r0, .Lp0\n"
  "ldr r0, [r0, #0]\n"
  "ldr r2, .Lp1\n"
  "ldr r3, [r0, #0]\n"
  "cmp r2, r3\n"
  "beq LokG_%=\n"
  "bx lr\n"
  "LokG_%=:\n"
  "adds r3, #1\n"
  "str r3, [r0, #0]\n"
  "push {r4, r5, r6, r7, lr}\n"
  "mov r1, r8\n"
  "mov r2, r9\n"
  "mov r3, sl\n"
  "mov r4, fp\n"
  "push {r0, r1, r2, r3, r4}\n"
  "sub sp, #24\n"
  "ldrb r1, [r0, #12]\n"
  "cmp r1, #0\n"
  "beq LnoB_%=\n"
  "ldr r2, .Lp2\n"
  "ldrb r2, [r2, #0]\n"
  "cmp r2, #160\n"
  "bcs LnoAdd_%=\n"
  "adds r2, #228\n"
  "LnoAdd_%=:\n"
  "adds r1, r1, r2\n"
  "LnoB_%=:\n"
  "str r1, [sp, #20]\n"
  "ldr r3, [r0, #32]\n"
  "cmp r3, #0\n"
  "beq LnoC2_%=\n"
  "ldr r0, [r0, #36]\n"
  "bl Sub_08012F86\n"
  "LnoC_%=:\n"
  "ldr r0, [sp, #24]\n"
  "LnoC2_%=:\n"
  "ldr r3, [r0, #40]\n"
  "bl Sub_08012F86\n"
  "ldr r0, [sp, #24]\n"
  "ldr r3, [r0, #16]\n"
  "mov r8, r3\n"
  "ldr r5, .Lp3\n"
  "adds r5, r5, r0\n"
  "ldrb r4, [r0, #4]\n"
  "subs r7, r4, #1\n"
  "bls LnoD_%=\n"
  "ldrb r1, [r0, #11]\n"
  "subs r1, r1, r7\n"
  "mov r2, r8\n"
  "muls r2, r1\n"
  "adds r5, r5, r2\n"
  "LnoD_%=:\n"
  "str r5, [sp, #8]\n"
  "ldr r6, .Lp4\n"
  "ldr r3, .Lp5\n"
  "bx r3\n"
  ".hword 0x0000\n"
  ".Lp0: .word 0x03007FF0\n"
  ".Lp1: .word 0x68736D53\n"
  ".Lp5: .word 0x020015E1\n"
  ".Lp2: .word 0x04000006\n"
  ".Lp3: .word 0x00000350\n"
  ".Lp4: .word 0x00000630\n"
  "Lswitch_%=:\n"
  "ldrb r3, [r0, #5]\n"
  "cmp r3, #0\n"
  "beq Lstm_%=\n"
  "add r1, pc, #4\n"
  "bx r1\n"
  ".hword 0x0000\n"
  "Larm1_%=:\n"
  ".word 0xE3540002\n"
  ".word 0x02807E35\n"
  ".word 0x10857008\n"
  ".word 0xE1A04008\n"
  ".word 0xE19500D6\n"
  ".word 0xE1D510D0\n"
  ".word 0xE0800001\n"
  ".word 0xE19710D6\n"
  ".word 0xE0800001\n"
  ".word 0xE0D710D1\n"
  ".word 0xE0800001\n"
  ".word 0xE0010390\n"
  ".word 0xE1A004C1\n"
  ".word 0xE3100080\n"
  ".word 0x12800001\n"
  ".word 0xE7C50006\n"
  ".word 0xE4C50001\n"
  ".word 0xE2544001\n"
  ".word 0xCAFFFFF0\n"
  ".word 0xE28F002F\n"
  ".word 0xE12FFF10\n"
  "Lstm_%=:\n"
  "movs r0, #0\n"
  "mov r1, r8\n"
  "adds r6, r6, r5\n"
  "lsrs r1, r1, #3\n"
  "bcc Lstm2_%=\n"
  "stmia r5!, {r0}\n"
  "stmia r6!, {r0}\n"
  "Lstm2_%=:\n"
  "lsrs r1, r1, #1\n"
  "bcc Lstm3_%=\n"
  "stmia r5!, {r0}\n"
  "stmia r6!, {r0}\n"
  "stmia r5!, {r0}\n"
  "stmia r6!, {r0}\n"
  "Lstm3_%=:\n"
  "stmia r5!, {r0}\n"
  "LstmMid_%=:\n"
  "stmia r6!, {r0}\n"
  "stmia r5!, {r0}\n"
  "stmia r6!, {r0}\n"
  "stmia r5!, {r0}\n"
  "stmia r6!, {r0}\n"
  "stmia r5!, {r0}\n"
  "stmia r6!, {r0}\n"
  "subs r1, #1\n"
  "bgt Lstm3_%=\n"
  "ldr r4, [sp, #24]\n"
  "ldr r0, [r4, #24]\n"
  "mov ip, r0\n"
  "ldrb r0, [r4, #6]\n"
  "adds r4, #80\n"
  "LstmRet_%=:\n"
  "str r0, [sp, #4]\n"
  "ldr r3, [r4, #36]\n"
  "ldr r0, [sp, #20]\n"
  "cmp r0, #0\n"
  "beq LokE_%=\n"
  ".hword 0x4904\n"
  "ldrb r1, [r1, #0]\n"
  "cmp r1, #160\n"
  "bcs LnoAdd2_%=\n"
  "adds r1, #228\n"
  "LnoAdd2_%=:\n"
  "cmp r1, r0\n"
  "bcc LokE_%=\n"
  "b Lepi3_%=\n"
  ".hword 0x0000\n"
  ".hword 0x0006, 0x0400\n"
  "LokE_%=:\n"
  "ldrb r6, [r4, #0]\n"
  "movs r0, #199\n"
  "tst r0, r6\n"
  "bne LokF_%=\n"
  "b Lepi2_%=\n"
  "LokF_%=:\n"
  "movs r0, #128\n"
  "tst r0, r6\n"
  "beq Lchk1_%=\n"
  "movs r0, #64\n"
  "tst r0, r6\n"
  "bne Lset0_%=\n"
  "movs r6, #3\n"
  "strb r6, [r4, #0]\n"
  "adds r0, r3, #0\n"
  "adds r0, #16\n"
  "str r0, [r4, #40]\n"
  "ldr r0, [r3, #12]\n"
  "str r0, [r4, #24]\n"
  "movs r5, #0\n"
  "strb r5, [r4, #9]\n"
  "str r5, [r4, #28]\n"
  "ldrb r2, [r3, #3]\n"
  "movs r0, #192\n"
  "tst r0, r2\n"
  "beq Lchk2b_%=\n"
  "movs r0, #16\n"
  "orrs r6, r0\n"
  "strb r6, [r4, #0]\n"
  "LjoinF_%=:\n"
  "b Lchk2b_%=\n"
  "Lchk1_%=:\n"
  "ldrb r5, [r4, #9]\n"
  "movs r0, #4\n"
  "tst r0, r6\n"
  "beq LokG2_%=\n"
  "ldrb r0, [r4, #13]\n"
  "subs r0, #1\n"
  "strb r0, [r4, #13]\n"
  "bhi LtailF_%=\n"
  "Lset0_%=:\n"
  "movs r0, #0\n"
  "strb r0, [r4, #0]\n"
  "b Lepi2_%=\n"
  "LokG2_%=:\n"
  "movs r0, #64\n"
  "tst r0, r6\n"
  "beq Lmul1_%=\n"
  "ldrb r0, [r4, #7]\n"
  "muls r5, r0\n"
  "lsrs r5, r5, #8\n"
  "ldrb r0, [r4, #12]\n"
  "cmp r5, r0\n"
  "bhi LtailF_%=\n"
  "LmulTop_%=:\n"
  "ldrb r5, [r4, #12]\n"
  "cmp r5, #0\n"
  "beq Lset0_%=\n"
  "movs r0, #4\n"
  "orrs r6, r0\n"
  "strb r6, [r4, #0]\n"
  "b LtailF_%=\n"
  "Lmul1_%=:\n"
  "movs r2, #3\n"
  "ands r2, r6\n"
  "cmp r2, #2\n"
  "bne Lchk2_%=\n"
  "ldrb r0, [r4, #5]\n"
  "muls r5, r0\n"
  "lsrs r5, r5, #8\n"
  "ldrb r0, [r4, #6]\n"
  "cmp r5, r0\n"
  "bhi LtailF_%=\n"
  "adds r5, r0, #0\n"
  "beq LmulTop_%=\n"
  "subs r6, #1\n"
  "strb r6, [r4, #0]\n"
  "b LtailF_%=\n"
  "Lchk2_%=:\n"
  "cmp r2, #3\n"
  "bne LtailF_%=\n"
  "Lchk2b_%=:\n"
  "ldrb r0, [r4, #4]\n"
  "adds r5, r5, r0\n"
  "cmp r5, #255\n"
  "bcc LtailF_%=\n"
  "movs r5, #255\n"
  "subs r6, #1\n"
  "strb r6, [r4, #0]\n"

  "LtailF_%=:\n"
  "strb r5, [r4, #9]\n"
  "ldr r0, [sp, #24]\n"
  "ldrb r0, [r0, #7]\n"
  "adds r0, #1\n"
  "muls r0, r5\n"
  "lsrs r5, r0, #4\n"
  "ldrb r0, [r4, #2]\n"
  "muls r0, r5\n"
  "lsrs r0, r0, #8\n"
  "strb r0, [r4, #10]\n"
  "ldrb r0, [r4, #3]\n"
  "muls r0, r5\n"
  "lsrs r0, r0, #8\n"
  "strb r0, [r4, #11]\n"
  "movs r0, #16\n"
  "ands r0, r6\n"
  "str r0, [sp, #16]\n"
  "beq LnoH_%=\n"
  "adds r0, r3, #0\n"
  "adds r0, #16\n"
  "ldr r1, [r3, #8]\n"
  "adds r0, r0, r1\n"
  "str r0, [sp, #12]\n"
  "ldr r0, [r3, #12]\n"
  "subs r0, r0, r1\n"
  "str r0, [sp, #16]\n"
  "LnoH_%=:\n"
  "ldr r5, [sp, #8]\n"
  "ldr r2, [r4, #24]\n"
  "ldr r3, [r4, #40]\n"
  "add r0, pc, #4\n"
  "bx r0\n"
  ".hword 0x0000\n"
  ".word 0xE58D8000\n"
  ".word 0xE5D4A00A\n"
  ".word 0xE5D4B00B\n"
  ".word 0xE1A0A80A\n"
  ".word 0xE1A0B80B\n"
  ".word 0xE5D40001\n"
  ".word 0xE3100008\n"
  ".word 0x0A000047\n"
  ".word 0xE3520004\n"
  ".word 0xDA000019\n"
  ".word 0xE0522008\n"
  ".word 0xC3A0E000\n"
  ".word 0xCA000005\n"
  ".word 0xE1A0E008\n"
  ".word 0xE0822008\n"
  ".word 0xE2428004\n"
  ".word 0xE04EE008\n"
  ".word 0xE2122003\n"
  ".word 0x03A02004\n"
  ".word 0xE5956000\n"
  ".word 0xE5957630\n"
  ".word 0xE0D300D1\n"
  ".word 0xE001009A\n"
  ".word 0xE3C118FF\n"
  ".word 0xE0816466\n"
  ".word 0xE001009B\n"
  ".word 0xE3C118FF\n"
  ".word 0xE0817467\n"
  ".word 0xE2955101\n"
  ".word 0x3AFFFFF6\n"
  ".word 0xE5857630\n"
  ".word 0xE4856004\n"
  ".word 0xE2588004\n"
  ".word 0xCAFFFFF0\n"
  ".word 0xE098800E\n"
  ".word 0x0A000050\n"
  ".word 0xE5956000\n"
  ".word 0xE5957630\n"
  ".word 0xE0D300D1\n"
  ".word 0xE001009A\n"
  ".word 0xE3C118FF\n"
  ".word 0xE0816466\n"
  ".word 0xE001009B\n"
  ".word 0xE3C118FF\n"
  ".word 0xE0817467\n"
  ".word 0xE2522001\n"
  ".word 0x0A000012\n"
  ".word 0xE2955101\n"
  ".word 0x3AFFFFF4\n"
  ".word 0xE5857630\n"
  ".word 0xE4856004\n"
  ".word 0xE2588004\n"
  ".word 0xCAFFFFD2\n"
  ".word 0xEA00003E\n"
  ".word 0xE59D0018\n"
  ".word 0xE3500000\n"
  ".word 0x0A000005\n"
  ".word 0xE59D3014\n"
  ".word 0xE2629000\n"
  ".word 0xE0902002\n"
  ".word 0xCA00002B\n"
  ".word 0xE0499000\n"
  ".word 0xEAFFFFFB\n"
  ".word 0xE8BD1010\n"
  ".word 0xE3A02000\n"
  ".word 0xEA000003\n"
  ".word 0xE59D2010\n"
  ".word 0xE3520000\n"
  ".word 0x159D300C\n"
  ".word 0x1AFFFFE8\n"
  ".word 0xE5C42000\n"
  ".word 0xE1A00F25\n"
  ".word 0xE3C55103\n"
  ".word 0xE2600003\n"
  ".word 0xE1A00180\n"
  ".word 0xE1A06076\n"
  ".word 0xE1A07077\n"
  ".word 0xE5857630\n"
  ".word 0xE4856004\n"
  ".word 0xEA000026\n"
  ".word 0xE92D1010\n"
  ".word 0xE594E01C\n"
  ".word 0xE5941020\n"
  ".word 0xE004019C\n"
  ".word 0xE1D300D0\n"
  ".word 0xE1F310D1\n"
  ".word 0xE0411000\n"
  ".word 0xE5956000\n"
  ".word 0xE5957630\n"
  ".word 0xE009019E\n"
  ".word 0xE0809BC9\n"
  ".word 0xE00C099A\n"
  ".word 0xE3CCC8FF\n"
  ".word 0xE08C6466\n"
  ".word 0xE00C099B\n"
  ".word 0xE3CCC8FF\n"
  ".word 0xE08C7467\n"
  ".word 0xE08EE004\n"
  ".word 0xE1B09BAE\n"
  ".word 0x0A000007\n"
  ".word 0xE3CEE5FE\n"
  ".word 0xE0522009\n"
  ".word 0xDAFFFFCE\n"
  ".word 0xE2599001\n"
  ".word 0x00800001\n"
  ".word 0x11B300D9\n"
  ".word 0xE1F310D1\n"
  ".word 0xE0411000\n"
  ".word 0xE2955101\n"
  ".word 0x3AFFFFEA\n"
  ".word 0xE5857630\n"
  ".word 0xE4856004\n"
  ".word 0xE2588004\n"
  ".word 0xCAFFFFE4\n"
  ".word 0xE2433001\n"
  ".word 0xE8BD1010\n"
  ".word 0xE584E01C\n"
  ".word 0xE5842018\n"
  ".word 0xE5843028\n"
  ".word 0xE59D8000\n"
  ".word 0xE28F0001\n"
  ".word 0xE12FFF10\n"
  "Lepi2_%=:\n"
  "ldr r0, [sp, #4]\n"
  "subs r0, #1\n"
  "ble Lepi3_%=\n"
  "adds r4, #64\n"
  "b LstmRet_%=\n"
  "Lepi3_%=:\n"
  "ldr r0, [sp, #24]\n"
  ".hword 0x4B04\n"
  "str r3, [r0, #0]\n"
  "add sp, #28\n"
  "pop {r0, r1, r2, r3, r4, r5, r6, r7}\n"
  "mov r8, r0\n"
  "mov r9, r1\n"
  "mov sl, r2\n"
  "mov fp, r3\n"
  "pop {r3}\n"
  "bx r3\n"
  ::: "r0","r1","r2","r3","memory");
}
