extern int Sound_ClearChannel(int);
void Sub_0800CAA4(int a) __attribute__((naked));
void Sub_0800CAA4(int a)
{
  (void)a;
  __asm__ volatile(
  ".syntax unified\n"
  ".thumb\n"
  "Sec_%=:\n"
  "push {r4, r5, r6, r7, lr}\n"
  "mov r7, r8\n"
  "push {r7}\n"
  "adds r5, r0, #0\n"
  "ldr	r0, .LpQ800CAF4\n"
  "ldr r4, [r0, #0]\n"
  "movs r1, #154\n"
  "lsls r1, r1, #4\n"
  "adds r0, r4, r1\n"
  "movs r6, #1\n"
  "mov r8, r6\n"
  "mov r7, r8\n"
  "strb r7, [r0, #0]\n"
  "adds r0, r4, #0\n"
  "bl Sound_ClearChannel\n"
  "movs r3, #63\n"
  "movs r1, #128\n"
  "lsls r1, r1, #5\n"
  "movs r2, #128\n"
  "ldr	r6, .LpQ800CAF8\n"
  "adds r0, r4, r6\n"
  "movs r6, #2\n"
  "str r6, [r0, #0]\n"
  "ldr	r7, .LpQ800CAFC\n"
  "adds r0, r4, r7\n"
  "str r3, [r0, #12]\n"
  "str r2, [r0, #8]\n"
  "str r1, [r0, #0]\n"
  "str r1, [r0, #4]\n"
  "ldr	r0, .LpQ800CB00\n"
  "adds r4, r4, r0\n"
  "ldrb r0, [r4, #0]\n"
  "cmp r0, #0\n"
  "beq QQL800CB04_%=\n"
  "movs r0, #1\n"
  "negs r0, r0\n"
  "mov r1, r8\n"
  "str r1, [r5, #8]\n"
  "b QQL800CB0A_%=\n"
  ".LpQ800CAF4: .word 0x02000134\n"
  ".LpQ800CAF8: .word 0x00000A34\n"
  ".LpQ800CAFC: .word 0x00000A38\n"
  ".LpQ800CB00: .word 0x00001C21\n"
  "QQL800CB04_%=:\n"
  "movs r0, #1\n"
  "negs r0, r0\n"
  "str r6, [r5, #8]\n"
  "QQL800CB0A_%=:\n"
  "str r0, [r5, #12]\n"
  "pop {r3}\n"
  "mov r8, r3\n"
  "pop {r4, r5, r6, r7}\n"
  "pop {r0}\n"
  "bx r0\n"
  ::: "r0","r1","r2","r3","memory");
}
