extern int Image_ProcessSpriteSheet(int,int,int,int);
void Sub_08006150(int a) __attribute__((naked));
void Sub_08006150(int a)
{
  (void)a;
  __asm__ volatile(
  ".syntax unified\n"
  ".thumb\n"
  "Sec_%=:\n"
  "push {r4, r5, r6, r7, lr}\n"
  "adds r7, r0, #0\n"
  "ldr	r0, .LpQ8006228\n"
  "str r0, [r7, #56]\n"
  "movs r0, #0\n"
  "str r0, [r7, #0]\n"
  "str r0, [r7, #4]\n"
  "str r7, [r7, #8]\n"
  "ldr	r3, .LpQ800622C\n"
  "movs r2, #0\n"
  "movs r1, #2\n"
  "adds r0, r7, #0\n"
  "adds r0, #20\n"
  "QQL800616A_%=:\n"
  "str r2, [r0, #0]\n"
  "subs r0, #4\n"
  "subs r1, #1\n"
  "cmp r1, #0\n"
  "bge QQL800616A_%=\n"
  "movs r4, #0\n"
  "str r4, [r7, #28]\n"
  "str r4, [r7, #32]\n"
  "str r4, [r7, #36]\n"
  "str r4, [r7, #40]\n"
  "str r4, [r7, #44]\n"
  "str r4, [r7, #48]\n"
  "adds r0, r7, #0\n"
  "adds r0, #52\n"
  "strb r4, [r0, #0]\n"
  "str r7, [r7, #24]\n"
  "str r3, [r7, #56]\n"
  "adds r0, #16\n"
  "str r4, [r7, #68]\n"
  "str r4, [r0, #4]\n"
  "str r4, [r0, #8]\n"
  "str r4, [r0, #12]\n"
  "adds r5, r7, #0\n"
  "adds r5, #84\n"
  "adds r0, r5, #0\n"
  ".hword 0xF7FA, 0xFC8E\n"
  "ldr	r0, .LpQ8006230\n"
  "ldr r6, [r0, #0]\n"
  "ldr	r2, .LpQ8006234\n"
  "str r2, [r7, #84]\n"
  "ldrb r1, [r2, #4]\n"
  "ldrb r0, [r2, #5]\n"
  "lsls r0, r0, #8\n"
  "orrs r0, r1\n"
  "ldrb r1, [r2, #6]\n"
  "lsls r1, r1, #16\n"
  "orrs r1, r0\n"
  "ldrb r0, [r2, #7]\n"
  "lsls r0, r0, #24\n"
  "orrs r0, r1\n"
  "str r0, [r5, #4]\n"
  "ldrb r1, [r2, #8]\n"
  "ldrb r0, [r2, #9]\n"
  "lsls r0, r0, #8\n"
  "orrs r0, r1\n"
  "ldrb r1, [r2, #10]\n"
  "lsls r1, r1, #16\n"
  "orrs r1, r0\n"
  "ldrb r0, [r2, #11]\n"
  "lsls r0, r0, #24\n"
  "orrs r0, r1\n"
  "str r0, [r5, #8]\n"
  "adds r0, r7, #0\n"
  "adds r0, #60\n"
  "str r4, [r7, #60]\n"
  "str r4, [r0, #4]\n"
  "str r4, [r7, #116]\n"
  "ldr	r0, .LpQ8006238\n"
  "adds r6, r6, r0\n"
  "adds r0, r6, #0\n"
  "bl Image_ProcessSpriteSheet\n"
  "movs r4, #15\n"
  "ands r0, r4\n"
  "lsls r0, r0, #8\n"
  "movs r1, #192\n"
  "lsls r1, r1, #4\n"
  "adds r0, r0, r1\n"
  "str r0, [r7, #120]\n"
  "adds r0, r6, #0\n"
  "bl Image_ProcessSpriteSheet\n"
  "ands r0, r4\n"
  "lsls r0, r0, #3\n"
  "adds r0, #24\n"
  "str r0, [r7, #124]\n"
  "adds r0, r6, #0\n"
  "bl Image_ProcessSpriteSheet\n"
  "adds r1, r7, #0\n"
  "adds r1, #128\n"
  "ands r0, r4\n"
  "lsls r0, r0, #1\n"
  "adds r0, #32\n"
  "lsls r0, r0, #12\n"
  "str r0, [r1, #0]\n"
  "ldr	r1, .LpQ800623C\n"
  "ldr r0, [r7, #12]\n"
  "cmp r0, #0\n"
  "bne QQL8006240_%=\n"
  "str r1, [r7, #12]\n"
  "str r0, [r7, #44]\n"
  "b QQL8006242_%=\n"
  "movs r0, r0\n"
  ".LpQ8006228: .word 0x02000960\n"
  ".LpQ800622C: .word 0x020009C8\n"
  ".LpQ8006230: .word 0x02000134\n"
  ".LpQ8006234: .word 0x0805A654\n"
  ".LpQ8006238: .word 0x00000A58\n"
  ".LpQ800623C: .word 0x08006281\n"
  "QQL8006240_%=:\n"
  "str r1, [r7, #20]\n"
  "QQL8006242_%=:\n"
  "adds r0, r7, #0\n"
  "pop {r4, r5, r6, r7}\n"
  "pop {r1}\n"
  "bx r1\n"
  ::: "r0","r1","r2","r3","memory");
}
