extern int DMA_Transfer(int,int,int);
extern int Sub_0800E258(int);
extern int Sub_0800E43C(int);
void Sub_0800DF14(int a) __attribute__((naked));
void Sub_0800DF14(int a)
{
  (void)a;
  __asm__ volatile(
  ".syntax unified\n"
  ".thumb\n"
  "Sec_%=:\n"
  "push {r4, r5, r6, r7, lr}\n"
  "sub sp, #4\n"
  "adds r6, r0, #0\n"
  "ldr	r0, .LpQ800DF44\n"
  "ldr r5, [r0, #0]\n"
  "adds r2, r5, #0\n"
  "ldr r7, [r6, #16]\n"
  "cmp r7, #0\n"
  "bne QQL800DF50_%=\n"
  "movs r3, #63\n"
  "movs r4, #128\n"
  "lsls r4, r4, #5\n"
  "movs r2, #128\n"
  "ldr	r0, .LpQ800DF48\n"
  "adds r1, r5, r0\n"
  "movs r0, #3\n"
  "str r0, [r1, #0]\n"
  "ldr	r1, .LpQ800DF4C\n"
  "adds r0, r5, r1\n"
  "str r3, [r0, #12]\n"
  "str r2, [r0, #8]\n"
  "str r4, [r0, #0]\n"
  "str r7, [r0, #4]\n"
  "b QQL800DFC6_%=\n"
  ".LpQ800DF44: .word 0x02000134\n"
  ".LpQ800DF48: .word 0x00000A34\n"
  ".LpQ800DF4C: .word 0x00000A38\n"
  "QQL800DF50_%=:\n"
  "ldr	r1, .LpQ800DF74\n"
  "adds r0, r5, r1\n"
  "ldr r0, [r0, #0]\n"
  "cmp r0, #1\n"
  "beq QQL800DF78_%=\n"
  "cmp r0, #1\n"
  "ble QQL800DFA4_%=\n"
  "cmp r0, #3\n"
  "bgt QQL800DFA4_%=\n"
  "adds r1, #4\n"
  "adds r0, r5, r1\n"
  "movs r2, #0\n"
  "ldr r1, [r0, #0]\n"
  "ldr r0, [r0, #4]\n"
  "cmp r1, r0\n"
  "bne QQL800DFA0_%=\n"
  "movs r2, #1\n"
  "b QQL800DFA0_%=\n"
  ".LpQ800DF74: .word 0x00000A34\n"
  "QQL800DF78_%=:\n"
  "movs r3, #0\n"
  "ldr	r1, .LpQ800DF98\n"
  "adds r0, r2, r1\n"
  "ldr r1, [r0, #0]\n"
  "ldr r0, [r0, #4]\n"
  "cmp r1, r0\n"
  "bne QQL800DF94_%=\n"
  "ldr	r1, .LpQ800DF9C\n"
  "adds r0, r2, r1\n"
  "ldr r1, [r0, #0]\n"
  "ldr r0, [r0, #4]\n"
  "cmp r1, r0\n"
  "bne QQL800DF94_%=\n"
  "movs r3, #1\n"
  "QQL800DF94_%=:\n"
  "adds r0, r3, #0\n"
  "b QQL800DFA6_%=\n"
  ".LpQ800DF98: .word 0x00000A38\n"
  ".LpQ800DF9C: .word 0x00000A48\n"
  "QQL800DFA0_%=:\n"
  "adds r0, r2, #0\n"
  "b QQL800DFA6_%=\n"
  "QQL800DFA4_%=:\n"
  "movs r0, #1\n"
  "QQL800DFA6_%=:\n"
  "lsls r0, r0, #24\n"
  "cmp r0, #0\n"
  "beq QQL800DFC6_%=\n"
  "movs r0, #0\n"
  "str r0, [sp, #0]\n"
  "adds r1, r6, #0\n"
  "adds r1, #20\n"
  "ldr	r2, .LpQ800DFD4\n"
  "mov r0, sp\n"
  "bl DMA_Transfer\n"
  "ldr r0, [r6, #12]\n"
  "str r0, [r6, #8]\n"
  "movs r0, #1\n"
  "negs r0, r0\n"
  "str r0, [r6, #12]\n"
  "QQL800DFC6_%=:\n"
  "ldr r0, [r6, #4]\n"
  "cmp r0, #2\n"
  "bne QQL800DFD8_%=\n"
  "adds r0, r6, #0\n"
  "bl Sub_0800E258\n"
  "b QQL800DFE2_%=\n"
  ".LpQ800DFD4: .word 0x01000200\n"
  "QQL800DFD8_%=:\n"
  "cmp r0, #3\n"
  "bne QQL800DFE2_%=\n"
  "adds r0, r6, #0\n"
  "bl Sub_0800E43C\n"
  "QQL800DFE2_%=:\n"
  "add sp, #4\n"
  "pop {r4, r5, r6, r7}\n"
  "pop {r0}\n"
  "bx r0\n"
  ::: "r0","r1","r2","r3","memory");
}
