extern int Sub_08001178C(int);
extern int Sub_0800D580(int);
extern int Sub_0800D5C0(int);
extern int Sub_0800D670(int);
extern int Sub_0800DA80(int);
extern int Sub_0800DF14(int);
extern int Sub_0800DFEC(int);
extern int Sub_0800E09C(int);
extern int Sub_0800E09C(int);
extern int Sub_0800E170(int);
void Sub_0800D4B4(int a) __attribute__((naked));
void Sub_0800D4B4(int a)
{
  (void)a;
  __asm__ volatile(
  ".syntax unified\n"
  ".thumb\n"
  "Sec_%=:\n"
  "push {r4, lr}\n"
  "adds r4, r0, #0\n"
  "movs r1, #152\n"
  "lsls r1, r1, #5\n"
  "ldr	r0, .LpQ800D4F4\n"
  "ldr r0, [r0, #0]\n"
  "movs r2, #0\n"
  "strh r1, [r0, #0]\n"
  "ldr	r1, .LpQ800D4F8\n"
  "strh r1, [r0, #16]\n"
  "ldr	r1, .LpQ800D4FC\n"
  "strh r1, [r0, #20]\n"
  "strh r2, [r0, #32]\n"
  "strh r2, [r0, #36]\n"
  "strh r2, [r0, #40]\n"
  "strh r2, [r0, #44]\n"
  "movs r0, #128\n"
  "lsls r0, r0, #4\n"
  "adds r2, r4, #0\n"
  "adds r2, #20\n"
  "movs r1, #23\n"
  "bl Sub_0801178C\n"
  "ldr r0, [r4, #0]\n"
  "cmp r0, #7\n"
  "bhi QQL800D562_%=\n"
  "lsls r0, r0, #2\n"
  "ldr	r1, .LpQ800D500\n"
  "adds r0, r0, r1\n"
  "ldr r0, [r0, #0]\n"
  "mov pc, r0\n"
  "movs r0, r0\n"
  ".LpQ800D4F4: .word 0x02000144\n"
  ".LpQ800D4F8: .word 0x00001709\n"
  ".LpQ800D4FC: .word 0x00001608\n"
  ".LpQ800D500: .word 0x0800D504\n"
  "bpl QQL800D550_%=\n"
  "lsrs r0, r0, #32\n"
  "bpl QQL800D564_%=\n"
  "lsrs r0, r0, #32\n"
  "QQL800D50C_%=:\n"
  "bpl QQL800D578_%=\n"
  "lsrs r0, r0, #32\n"
  ".hword 0xD53C\n"
  "lsrs r0, r0, #32\n"
  ".hword 0xD544\n"
  "lsrs r0, r0, #32\n"
  ".hword 0xD54C\n"
  "lsrs r0, r0, #32\n"
  ".hword 0xD554\n"
  "lsrs r0, r0, #32\n"
  ".hword 0xD55C\n"
  "lsrs r0, r0, #32\n"
  "adds r0, r4, #0\n"
  "bl Sub_0800D580\n"
  "b QQL800D562_%=\n"
  "adds r0, r4, #0\n"
  "bl Sub_0800D5C0\n"
  "b QQL800D562_%=\n"
  "adds r0, r4, #0\n"
  "bl Sub_0800D670\n"
  "b QQL800D562_%=\n"
  "adds r0, r4, #0\n"
  "bl Sub_0800DA80\n"
  "b QQL800D562_%=\n"
  "adds r0, r4, #0\n"
  "bl Sub_0800DF14\n"
  "b QQL800D562_%=\n"
  "adds r0, r4, #0\n"
  ".hword 0xF000\n"
  "QQL800D550_%=:\n"
  ".hword 0xFD4D\n"
  "b QQL800D562_%=\n"
  "adds r0, r4, #0\n"
  "bl Sub_0800E09C\n"
  "b QQL800D562_%=\n"
  "adds r0, r4, #0\n"
  "bl Sub_0800E170\n"
  "QQL800D562_%=:\n"
  "ldr r0, [r4, #0]\n"
  "QQL800D564_%=:\n"
  "ldr r1, [r4, #8]\n"
  "cmp r0, r1\n"
  "beq QQL800D572_%=\n"
  "str r0, [r4, #4]\n"
  "str r1, [r4, #0]\n"
  "movs r0, #0\n"
  "b QQL800D576_%=\n"
  "QQL800D572_%=:\n"
  "ldr r0, [r4, #16]\n"
  "adds r0, #1\n"
  "QQL800D576_%=:\n"
  "str r0, [r4, #16]\n"
  "QQL800D578_%=:\n"
  "pop {r4}\n"
  "pop {r0}\n"
  "bx r0\n"
  ::: "r0","r1","r2","r3","memory");
}
