void Sub_0800706C(int a) __attribute__((naked));
void Sub_0800706C(int a)
{
  (void)a;
  __asm__ volatile(
  ".syntax unified\n"
  ".thumb\n"
  "Sec_%=:\n"
  "push {r4, r5, r6, r7, lr}\n"
  "mov r7, r9\n"
  "mov r6, r8\n"
  "push {r6, r7}\n"
  "mov r8, r0\n"
  "adds r7, r1, #0\n"
  "ldr	r0, .LpQ8007088\n"
  "ldr r0, [r0, #0]\n"
  "mov ip, r0\n"
  "ldr r0, [r7, #0]\n"
  "mov r9, r0\n"
  "ldr r2, [r7, #4]\n"
  "b QQL8007174_%=\n"
  "movs r0, r0\n"
  ".LpQ8007088: .word 0x02000134\n"
  "QQL800708C_%=:\n"
  "lsls r0, r2, #4\n"
  "mov r1, r9\n"
  "adds r6, r1, r0\n"
  "ldr r0, [r6, #4]\n"
  "cmp r0, #6\n"
  "bhi QQL800716C_%=\n"
  "lsls r0, r0, #2\n"
  "ldr	r1, .LpQ80070A4\n"
  "adds r0, r0, r1\n"
  "ldr r0, [r0, #0]\n"
  "mov pc, r0\n"
  "movs r0, r0\n"
  ".LpQ80070A4: .word 0x080070A8\n"
  "strb r4, [r0, #3]\n"
  "lsrs r0, r0, #32\n"
  "strb r4, [r3, #3]\n"
  "lsrs r0, r0, #32\n"
  "strb r0, [r1, #4]\n"
  "lsrs r0, r0, #32\n"
  "strb r4, [r2, #4]\n"
  "lsrs r0, r0, #32\n"
  "strb r4, [r6, #4]\n"
  "lsrs r0, r0, #32\n"
  "strb r6, [r7, #4]\n"
  "lsrs r0, r0, #32\n"
  "strb r0, [r5, #5]\n"
  "lsrs r0, r0, #32\n"
  "ldr r0, [r6, #8]\n"
  "lsls r0, r0, #12\n"
  "ldr r1, [r6, #12]\n"
  "lsls r1, r1, #12\n"
  "ldr	r2, .LpQ80070D8\n"
  "add r2, r8\n"
  "str r0, [r2, #0]\n"
  "str r1, [r2, #4]\n"
  "b QQL800716C_%=\n"
  "movs r0, r0\n"
  ".LpQ80070D8: .word 0x00004790\n"
  "ldr r2, [r6, #8]\n"
  "lsls r2, r2, #12\n"
  "ldr r0, [r6, #12]\n"
  "lsls r0, r0, #12\n"
  "ldr	r1, .LpQ8007100\n"
  "add r1, r8\n"
  "str r2, [r1, #0]\n"
  "str r0, [r1, #4]\n"
  "ldr r2, [r6, #8]\n"
  "lsls r2, r2, #12\n"
  "ldr r0, [r6, #12]\n"
  "lsls r0, r0, #12\n"
  "ldr	r1, .LpQ8007104\n"
  "add r1, r8\n"
  "str r2, [r1, #0]\n"
  "str r0, [r1, #4]\n"
  "b QQL800716C_%=\n"
  "movs r0, r0\n"
  ".LpQ8007100: .word 0x00004790\n"
  ".LpQ8007104: .word 0x00004798\n"
  "ldr r3, [r6, #8]\n"
  "ldr	r1, .LpQ8007110\n"
  "b QQL8007118_%=\n"
  "movs r0, r0\n"
  ".LpQ8007110: .word 0x000009A4\n"
  "ldr r3, [r6, #8]\n"
  "ldr	r1, .LpQ8007130\n"
  "QQL8007118_%=:\n"
  "add r1, ip\n"
  "asrs r2, r3, #5\n"
  "movs r0, #31\n"
  "ands r3, r0\n"
  "lsls r2, r2, #2\n"
  "adds r2, r2, r1\n"
  "movs r1, #1\n"
  "lsls r1, r3\n"
  "ldr r0, [r2, #0]\n"
  "orrs r0, r1\n"
  "str r0, [r2, #0]\n"
  "b QQL800716C_%=\n"
  ".LpQ8007130: .word 0x000009AC\n"
  "movs r3, #63\n"
  "movs r5, #128\n"
  "lsls r5, r5, #5\n"
  "movs r4, #0\n"
  "b QQL8007146_%=\n"
  "movs r3, #63\n"
  "movs r5, #0\n"
  "movs r4, #128\n"
  "lsls r4, r4, #5\n"
  "QQL8007146_%=:\n"
  "ldr r2, [r6, #8]\n"
  "ldr	r1, .LpQ8007160\n"
  "add r1, ip\n"
  "movs r0, #3\n"
  "str r0, [r1, #0]\n"
  "ldr	r0, .LpQ8007164\n"
  "add r0, ip\n"
  "str r3, [r0, #12]\n"
  "str r2, [r0, #8]\n"
  "str r4, [r0, #0]\n"
  "str r5, [r0, #4]\n"
  "b QQL800716C_%=\n"
  "movs r0, r0\n"
  ".LpQ8007160: .word 0x00000A34\n"
  ".LpQ8007164: .word 0x00000A38\n"
  "movs r0, #1\n"
  "strb r0, [r7, #12]\n"
  "QQL800716C_%=:\n"
  "ldr r0, [r7, #4]\n"
  "adds r0, #1\n"
  "str r0, [r7, #4]\n"
  "adds r2, r0, #0\n"
  "QQL8007174_%=:\n"
  "lsls r0, r2, #4\n"
  "add r0, r9\n"
  "ldr r1, [r0, #0]\n"
  "ldr r0, [r7, #8]\n"
  "cmp r1, r0\n"
  "bne QQL8007182_%=\n"
  "b QQL800708C_%=\n"
  "QQL8007182_%=:\n"
  "ldr r0, [r7, #8]\n"
  "adds r0, #1\n"
  "str r0, [r7, #8]\n"
  "pop {r3, r4}\n"
  "mov r8, r3\n"
  "mov r9, r4\n"
  "pop {r4, r5, r6, r7}\n"
  "pop {r0}\n"
  "bx r0\n"
  ::: "r0","r1","r2","r3","memory");
}
