extern int Sub_0800CA4C(int,int);
void Sub_0800D000(int a) __attribute__((naked));
void Sub_0800D000(int a)
{
  (void)a;
  __asm__ volatile(
  ".syntax unified\n"
  ".thumb\n"
  "Sec_%=:\n"
  "push {r4, r5, r6, lr}\n"
  "adds r2, r0, #0\n"
  "ldr	r0, .LpQ800D040\n"
  "ldr r5, [r0, #0]\n"
  "adds r3, r5, #0\n"
  "ldr r6, [r2, #16]\n"
  "cmp r6, #0\n"
  "bne QQL800D04C_%=\n"
  "movs r0, #130\n"
  "lsls r0, r0, #4\n"
  "adds r1, r2, r0\n"
  "movs r0, #1\n"
  "strb r0, [r1, #0]\n"
  "adds r0, r2, #0\n"
  "bl Sub_0800CA4C\n"
  "movs r3, #61\n"
  "movs r4, #128\n"
  "lsls r4, r4, #5\n"
  "movs r2, #128\n"
  "ldr	r0, .LpQ800D044\n"
  "adds r1, r5, r0\n"
  "movs r0, #2\n"
  "str r0, [r1, #0]\n"
  "ldr	r1, .LpQ800D048\n"
  "adds r0, r5, r1\n"
  "str r3, [r0, #12]\n"
  "str r2, [r0, #8]\n"
  "str r6, [r0, #0]\n"
  "str r4, [r0, #4]\n"
  "b QQL800D0B2_%=\n"
  "movs r0, r0\n"
  ".LpQ800D040: .word 0x02000134\n"
  ".LpQ800D044: .word 0x00000A34\n"
  ".LpQ800D048: .word 0x00000A38\n"
  "QQL800D04C_%=:\n"
  "ldr	r1, .LpQ800D070\n"
  "adds r0, r5, r1\n"
  "ldr r0, [r0, #0]\n"
  "cmp r0, #1\n"
  "beq QQL800D074_%=\n"
  "cmp r0, #1\n"
  "ble QQL800D0A0_%=\n"
  "cmp r0, #3\n"
  "bgt QQL800D0A0_%=\n"
  "adds r1, #4\n"
  "adds r0, r5, r1\n"
  "movs r3, #0\n"
  "ldr r1, [r0, #0]\n"
  "ldr r0, [r0, #4]\n"
  "cmp r1, r0\n"
  "bne QQL800D09C_%=\n"
  "movs r3, #1\n"
  "b QQL800D09C_%=\n"
  ".LpQ800D070: .word 0x00000A34\n"
  "QQL800D074_%=:\n"
  "movs r4, #0\n"
  "ldr	r1, .LpQ800D094\n"
  "adds r0, r3, r1\n"
  "ldr r1, [r0, #0]\n"
  "ldr r0, [r0, #4]\n"
  "cmp r1, r0\n"
  "bne QQL800D090_%=\n"
  "ldr	r1, .LpQ800D098\n"
  "adds r0, r3, r1\n"
  "ldr r1, [r0, #0]\n"
  "ldr r0, [r0, #4]\n"
  "cmp r1, r0\n"
  "bne QQL800D090_%=\n"
  "movs r4, #1\n"
  "QQL800D090_%=:\n"
  "adds r0, r4, #0\n"
  "b QQL800D0A2_%=\n"
  ".LpQ800D094: .word 0x00000A38\n"
  ".LpQ800D098: .word 0x00000A48\n"
  "QQL800D09C_%=:\n"
  "adds r0, r3, #0\n"
  "b QQL800D0A2_%=\n"
  "QQL800D0A0_%=:\n"
  "movs r0, #1\n"
  "QQL800D0A2_%=:\n"
  "lsls r0, r0, #24\n"
  "cmp r0, #0\n"
  "beq QQL800D0B2_%=\n"
  "movs r0, #3\n"
  "movs r1, #1\n"
  "negs r1, r1\n"
  "str r0, [r2, #8]\n"
  "str r1, [r2, #12]\n"
  "QQL800D0B2_%=:\n"
  "pop {r4, r5, r6}\n"
  "pop {r0}\n"
  "bx r0\n"
  ::: "r0","r1","r2","r3","memory");
}
