extern int Sound_AddChannel(int,int);
extern int TextQueue_AddEntry(int);
extern int DMA_Transfer(int,int,int);
extern int Sub_08001178C(int);
void Sub_0800CA4C(int a) __attribute__((naked));
void Sub_0800CA4C(int a)
{
  (void)a;
  __asm__ volatile(
  ".syntax unified\n"
  ".thumb\n"
  "Sec_%=:\n"
  "push {r4, lr}\n"
  "sub sp, #4\n"
  "adds r4, r0, #0\n"
  "ldr	r0, .LpQ800CA98\n"
  "movs r2, #128\n"
  "lsls r2, r2, #3\n"
  "movs r3, #192\n"
  "lsls r3, r3, #19\n"
  "movs r1, #0\n"
  "str r1, [sp, #0]\n"
  "movs r1, #3\n"
  "bl Sound_AddChannel\n"
  "ldr	r3, .LpQ800CA9C\n"
  "movs r0, #16\n"
  "str r0, [sp, #0]\n"
  "movs r0, #1\n"
  "movs r1, #0\n"
  "movs r2, #0\n"
  "bl TextQueue_AddEntry\n"
  "ldr	r0, .LpQ800CAA0\n"
  "adds r4, #20\n"
  "movs r2, #128\n"
  "lsls r2, r2, #2\n"
  "adds r1, r4, #0\n"
  "bl DMA_Transfer\n"
  "movs r0, #128\n"
  "lsls r0, r0, #4\n"
  "movs r1, #24\n"
  "adds r2, r4, #0\n"
  "bl Sub_0801178C\n"
  "add sp, #4\n"
  "pop {r4}\n"
  "pop {r0}\n"
  "bx r0\n"
  ".LpQ800CA98: .word 0x0805AB94\n"
  ".LpQ800CA9C: .word 0x08062B94\n"
  ".LpQ800CAA0: .word 0x08062D94\n"
  ::: "r0","r1","r2","r3","memory");
}
