LLM4Binary/decompile-bench-makefile huggingface dataset:
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/annotationsketch/gt_sketch.c
// Function: gt_sketch_arguments_check
static int gt_sketch_arguments_check(GT_UNUSED int rest_argc,
                                     void *tool_arguments,
                                     GT_UNUSED GtError *err)
{
  GtSketchArguments *arguments = tool_arguments;
  int had_err = 0;
  gt_error_check(err);
  gt_assert(arguments);

  if (arguments->start != GT_UNDEF_UWORD &&
      arguments->end != GT_UNDEF_UWORD &&
      !(arguments->start < arguments->end)) {
    gt_error_set(err, "start of query range ("GT_WU") must be before "
                      "end of query range ("GT_WU")",
                      arguments->start, arguments->end);
    had_err = -1;
  }

  return had_err;
}

// Assembly:
subq $0x28, %rsp
movl %edi, 0x24(%rsp)
movq %rsi, 0x18(%rsp)
movq %rdx, 0x10(%rsp)
movq 0x18(%rsp), %rax
movq %rax, 0x8(%rsp)
movl $0x0, 0x4(%rsp)
cmpq $0x0, 0x10(%rsp)
je 0x326754
movq 0x10(%rsp), %rdi
callq 0xd8a60
testb $0x1, %al
jne 0x32671c
jmp 0x326754
movq 0x31587d(%rip), %rax    # 0x63bfa0
movq (%rax), %rdi
leaq 0x1ef8e6(%rip), %rsi    # 0x516013
leaq 0x1efa8b(%rip), %rdx    # 0x5161bf
leaq 0x271e93(%rip), %rcx    # 0x5985ce
leaq 0x271bad(%rip), %r8     # 0x5982ef
movl $0xe4, %r9d
movb $0x0, %al
callq 0x199f0
callq 0x19370
jmp 0x326756
jmp 0x326758
cmpq $0x0, 0x8(%rsp)
jne 0x326798
movq 0x315839(%rip), %rax    # 0x63bfa0
movq (%rax), %rdi
leaq 0x1ef8a2(%rip), %rsi    # 0x516013
leaq 0x2543e7(%rip), %rdx    # 0x57ab5f
leaq 0x271e4f(%rip), %rcx    # 0x5985ce
leaq 0x271b69(%rip), %r8     # 0x5982ef
movl $0xe5, %r9d
movb $0x0, %al
callq 0x199f0
callq 0x19370
jmp 0x32679a
movq 0x8(%rsp), %rax
cmpq $-0x1, 0x28(%rax)
je 0x3267f3
movq 0x8(%rsp), %rax
cmpq $-0x1, 0x30(%rax)
je 0x3267f3
movq 0x8(%rsp), %rax
movq 0x28(%rax), %rax
movq 0x8(%rsp), %rcx
cmpq 0x30(%rcx), %rax
jb 0x3267f3
movq 0x10(%rsp), %rdi
movq 0x8(%rsp), %rax
movq 0x28(%rax), %rdx
movq 0x8(%rsp), %rax
movq 0x30(%rax), %rcx
leaq 0x271e04(%rip), %rsi    # 0x5985e8
movb $0x0, %al
callq 0xd88c0
movl $0xffffffff, 0x4(%rsp)  # imm = 0xFFFFFFFF
movl 0x4(%rsp), %eax
addq $0x28, %rsp
retq
nopl (%rax)
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/annotationsketch/gt_sketch_page.c
// Function: gt_sketch_page_arguments_new
static void *gt_sketch_page_arguments_new(void)
{
  SketchPageArguments *arguments = gt_malloc(sizeof *arguments);
  arguments->format = gt_str_new();
  arguments->seqid = gt_str_new();
  arguments->text = gt_str_new();
  arguments->stylefile = gt_str_new();
  arguments->seqfile = gt_str_new();
  arguments->range.start = arguments->range.end == GT_UNDEF_UWORD;
  return arguments;
}

// Assembly:
pushq %rax
movl $0x58, %edi
leaq 0x2710cb(%rip), %rsi    # 0x598738
movl $0x41, %edx
callq 0xe80f0
movq %rax, (%rsp)
callq 0x11d4a0
movq %rax, %rcx
movq (%rsp), %rax
movq %rcx, 0x38(%rax)
callq 0x11d4a0
movq %rax, %rcx
movq (%rsp), %rax
movq %rcx, 0x30(%rax)
callq 0x11d4a0
movq %rax, %rcx
movq (%rsp), %rax
movq %rcx, 0x48(%rax)
callq 0x11d4a0
movq %rax, %rcx
movq (%rsp), %rax
movq %rcx, 0x40(%rax)
callq 0x11d4a0
movq %rax, %rcx
movq (%rsp), %rax
movq %rcx, 0x50(%rax)
movq (%rsp), %rax
cmpq $-0x1, 0x28(%rax)
sete %al
andb $0x1, %al
movzbl %al, %eax
movslq %eax, %rcx
movq (%rsp), %rax
movq %rcx, 0x20(%rax)
movq (%rsp), %rax
popq %rcx
retq
nopl (%rax)
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/annotationsketch/gt_sketch_page.c
// Function: gt_sketch_page_arguments_delete
static void gt_sketch_page_arguments_delete(void *tool_arguments)
{
  SketchPageArguments *arguments = tool_arguments;
  if (!arguments) return;
  gt_str_delete(arguments->seqid);
  gt_str_delete(arguments->format);
  gt_str_delete(arguments->text);
  gt_str_delete(arguments->stylefile);
  gt_str_delete(arguments->seqfile);
  gt_free(arguments);
}

// Assembly:
subq $0x18, %rsp
movq %rdi, 0x10(%rsp)
movq 0x10(%rsp), %rax
movq %rax, 0x8(%rsp)
cmpq $0x0, 0x8(%rsp)
jne 0x32770d
jmp 0x327769
movq 0x8(%rsp), %rax
movq 0x30(%rax), %rdi
callq 0x11f560
movq 0x8(%rsp), %rax
movq 0x38(%rax), %rdi
callq 0x11f560
movq 0x8(%rsp), %rax
movq 0x48(%rax), %rdi
callq 0x11f560
movq 0x8(%rsp), %rax
movq 0x40(%rax), %rdi
callq 0x11f560
movq 0x8(%rsp), %rax
movq 0x50(%rax), %rdi
callq 0x11f560
movq 0x8(%rsp), %rdi
leaq 0x270fd9(%rip), %rsi    # 0x598738
movl $0x54, %edx
callq 0xe88c0
addq $0x18, %rsp
retq
nop
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/external/md5-1.2/src/md5.c
// Function: md5
void md5 (const char *message, long len, char *output) {
  WORD32 d[4];
  int status = 0;
  long i = 0;
  inic_digest(d);
  while (status != 2) {
    WORD32 d_old[4];
    WORD32 wbuff[16];
    int numbytes = (len-i >= 64) ? 64 : len-i;
    /*salva os valores do vetor digest*/
    d_old[0]=d[0]; d_old[1]=d[1]; d_old[2]=d[2]; d_old[3]=d[3];
    status = converte(wbuff, message+i, numbytes, status);
    if (status == 2) put_length(wbuff, len);
    digest(wbuff, d);
    d[0]+=d_old[0]; d[1]+=d_old[1]; d[2]+=d_old[2]; d[3]+=d_old[3];
    i += numbytes;
  }
  word32tobytes(d, output);
}

// Assembly:
subq $0x98, %rsp
movq %rdi, 0x90(%rsp)
movq %rsi, 0x88(%rsp)
movq %rdx, 0x80(%rsp)
movl $0x0, 0x6c(%rsp)
movq $0x0, 0x60(%rsp)
leaq 0x70(%rsp), %rdi
callq 0x35a9d0
cmpl $0x2, 0x6c(%rsp)
je 0x35a9ab
movq 0x88(%rsp), %rax
subq 0x60(%rsp), %rax
cmpq $0x40, %rax
jl 0x35a8e3
movl $0x40, %eax
movq %rax, (%rsp)
jmp 0x35a8f4
movq 0x88(%rsp), %rax
subq 0x60(%rsp), %rax
movq %rax, (%rsp)
movq (%rsp), %rax
movl %eax, 0xc(%rsp)
movl 0x70(%rsp), %eax
movl %eax, 0x50(%rsp)
movl 0x74(%rsp), %eax
movl %eax, 0x54(%rsp)
movl 0x78(%rsp), %eax
movl %eax, 0x58(%rsp)
movl 0x7c(%rsp), %eax
movl %eax, 0x5c(%rsp)
leaq 0x10(%rsp), %rdi
movq 0x90(%rsp), %rsi
addq 0x60(%rsp), %rsi
movl 0xc(%rsp), %edx
movl 0x6c(%rsp), %ecx
callq 0x35aa10
movl %eax, 0x6c(%rsp)
cmpl $0x2, 0x6c(%rsp)
jne 0x35a958
leaq 0x10(%rsp), %rdi
movq 0x88(%rsp), %rsi
callq 0x35aab0
leaq 0x10(%rsp), %rdi
leaq 0x70(%rsp), %rsi
callq 0x35ab00
movl 0x50(%rsp), %eax
addl 0x70(%rsp), %eax
movl %eax, 0x70(%rsp)
movl 0x54(%rsp), %eax
addl 0x74(%rsp), %eax
movl %eax, 0x74(%rsp)
movl 0x58(%rsp), %eax
addl 0x78(%rsp), %eax
movl %eax, 0x78(%rsp)
movl 0x5c(%rsp), %eax
addl 0x7c(%rsp), %eax
movl %eax, 0x7c(%rsp)
movslq 0xc(%rsp), %rax
addq 0x60(%rsp), %rax
movq %rax, 0x60(%rsp)
jmp 0x35a8ba
leaq 0x70(%rsp), %rdi
movq 0x80(%rsp), %rsi
callq 0x35b490
addq $0x98, %rsp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/external/md5-1.2/src/md5lib.c
// Function: luaopen_md5_core
int luaopen_md5_core (lua_State *L) {
  lua_newtable(L);
  luaL_setfuncs(L, md5lib, 0);
  set_info (L);
  return 1;
}

// Assembly:
pushq %rax
movq %rdi, (%rsp)
movq (%rsp), %rdi
xorl %edx, %edx
movl %edx, %esi
callq 0x336790
movq (%rsp), %rdi
leaq 0x2e3813(%rip), %rsi    # 0x63ee50
xorl %edx, %edx
callq 0x35c410
movq (%rsp), %rdi
callq 0x35b660
movl $0x1, %eax
popq %rcx
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/external/md5-1.2/src/md5lib.c
// Function: set_info
static void set_info (lua_State *L) {
	lua_pushliteral (L, "_COPYRIGHT");
	lua_pushliteral (L, "Copyright (C) 2003-2013 PUC-Rio");
	lua_settable (L, -3);
	lua_pushliteral (L, "_DESCRIPTION");
	lua_pushliteral (L, "Basic cryptographic facilities");
	lua_settable (L, -3);
	lua_pushliteral (L, "_VERSION");
	lua_pushliteral (L, "MD5 1.2");
	lua_settable (L, -3);
}

// Assembly:
pushq %rax
movq %rdi, (%rsp)
movq (%rsp), %rdi
leaq 0x240f74(%rip), %rsi    # 0x59c5e4
movl $0xa, %edx
callq 0x335540
movq (%rsp), %rdi
leaq 0x240f6a(%rip), %rsi    # 0x59c5ef
movl $0x1f, %edx
callq 0x335540
movq (%rsp), %rdi
movl $0xfffffffd, %esi       # imm = 0xFFFFFFFD
callq 0x336ae0
movq (%rsp), %rdi
leaq 0x240f67(%rip), %rsi    # 0x59c60f
movl $0xc, %edx
callq 0x335540
movq (%rsp), %rdi
leaq 0x240f5f(%rip), %rsi    # 0x59c61c
movl $0x1e, %edx
callq 0x335540
movq (%rsp), %rdi
movl $0xfffffffd, %esi       # imm = 0xFFFFFFFD
callq 0x336ae0
movq (%rsp), %rdi
leaq 0x2402d7(%rip), %rsi    # 0x59b9b7
movl $0x8, %edx
callq 0x335540
movq (%rsp), %rdi
leaq 0x240f46(%rip), %rsi    # 0x59c63b
movl $0x7, %edx
callq 0x335540
movq (%rsp), %rdi
movl $0xfffffffd, %esi       # imm = 0xFFFFFFFD
callq 0x336ae0
popq %rax
retq
nop
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/external/md5-1.2/src/md5lib.c
// Function: lmd5
static int lmd5 (lua_State *L) {
  char buff[16];
  size_t l;
  const char *message = luaL_checklstring(L, 1, &l);
  md5(message, l, buff);
  lua_pushlstring(L, buff, 16L);
  return 1;
}

// Assembly:
subq $0x28, %rsp
movq %rdi, 0x20(%rsp)
movq 0x20(%rsp), %rdi
movl $0x1, %esi
leaq 0x8(%rsp), %rdx
callq 0x33a6b0
movq %rax, (%rsp)
movq (%rsp), %rdi
movq 0x8(%rsp), %rsi
leaq 0x10(%rsp), %rdx
callq 0x35a880
movq 0x20(%rsp), %rdi
leaq 0x10(%rsp), %rsi
movl $0x10, %edx
callq 0x335540
movl $0x1, %eax
addq $0x28, %rsp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/external/md5-1.2/src/md5lib.c
// Function: ex_or
static int ex_or (lua_State *L) {
  size_t l1, l2;
  const char *s1 = luaL_checklstring(L, 1, &l1);
  const char *s2 = luaL_checklstring(L, 2, &l2);
  luaL_Buffer b;
  luaL_argcheck( L, l1 == l2, 2, "lengths must be equal" );
  luaL_buffinit(L, &b);
  while (l1--) luaL_addchar(&b, (*s1++)^(*s2++));
  luaL_pushresult(&b);
  return 1;
}

// Assembly:
subq $0x2048, %rsp           # imm = 0x2048
movq %rdi, 0x2040(%rsp)
movq 0x2040(%rsp), %rdi
movl $0x1, %esi
leaq 0x2038(%rsp), %rdx
callq 0x33a6b0
movq %rax, 0x2028(%rsp)
movq 0x2040(%rsp), %rdi
movl $0x2, %esi
leaq 0x2030(%rsp), %rdx
callq 0x33a6b0
movq %rax, 0x2020(%rsp)
movq 0x2038(%rsp), %rcx
movb $0x1, %al
cmpq 0x2030(%rsp), %rcx
movb %al, 0x7(%rsp)
je 0x35b7fe
movq 0x2040(%rsp), %rdi
movl $0x2, %esi
leaq 0x240d9e(%rip), %rdx    # 0x59c58d
callq 0x33a1f0
cmpl $0x0, %eax
setne %al
movb %al, 0x7(%rsp)
movb 0x7(%rsp), %al
movq 0x2040(%rsp), %rdi
leaq 0x8(%rsp), %rsi
callq 0x33b0b0
movq 0x2038(%rsp), %rax
movq %rax, %rcx
addq $-0x1, %rcx
movq %rcx, 0x2038(%rsp)
cmpq $0x0, %rax
je 0x35b8be
movq 0x8(%rsp), %rcx
leaq 0x8(%rsp), %rdx
addq $0x18, %rdx
addq $0x2000, %rdx           # imm = 0x2000
movb $0x1, %al
cmpq %rdx, %rcx
movb %al, 0x6(%rsp)
jb 0x35b86a
leaq 0x8(%rsp), %rdi
callq 0x33b210
cmpq $0x0, %rax
setne %al
movb %al, 0x6(%rsp)
movb 0x6(%rsp), %al
movq 0x2028(%rsp), %rax
movq %rax, %rcx
addq $0x1, %rcx
movq %rcx, 0x2028(%rsp)
movsbl (%rax), %eax
movq 0x2020(%rsp), %rcx
movq %rcx, %rdx
addq $0x1, %rdx
movq %rdx, 0x2020(%rsp)
movsbl (%rcx), %ecx
xorl %ecx, %eax
movb %al, %cl
movq 0x8(%rsp), %rax
movq %rax, %rdx
addq $0x1, %rdx
movq %rdx, 0x8(%rsp)
movb %cl, (%rax)
jmp 0x35b814
leaq 0x8(%rsp), %rdi
callq 0x33b1e0
movl $0x1, %eax
addq $0x2048, %rsp           # imm = 0x2048
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/external/md5-1.2/src/md5lib.c
// Function: crypt
static int crypt (lua_State *L) {
  size_t lmsg;
  const char *msg = luaL_checklstring(L, 1, &lmsg);
  size_t lseed;
  const char *seed;
  int lblock;
  char block[BLOCKSIZE+MAXKEY];
  checkseed(L);
  seed = luaL_checklstring(L, 3, &lseed);
  if (lseed > BLOCKSIZE)
    luaL_error(L, "seed too long (> %d)", BLOCKSIZE);
  /* put seed and seed length at the beginning of result */
  block[0] = (char)lseed;
  memcpy(block+1, seed, lseed);
  lua_pushlstring(L, block, lseed+1);  /* to concat with result */
  lblock = initblock(L, seed, lseed, block);
  codestream(L, msg, lmsg, block, lblock);
  lua_concat(L, 2);
  return 1;
}

// Assembly:
subq $0x148, %rsp            # imm = 0x148
movq %rdi, 0x140(%rsp)
movq 0x140(%rsp), %rdi
movl $0x1, %esi
leaq 0x138(%rsp), %rdx
callq 0x33a6b0
movq %rax, 0x130(%rsp)
movq 0x140(%rsp), %rdi
callq 0x35bb70
movq 0x140(%rsp), %rdi
movl $0x3, %esi
leaq 0x128(%rsp), %rdx
callq 0x33a6b0
movq %rax, 0x120(%rsp)
cmpq $0x10, 0x128(%rsp)
jbe 0x35b966
movq 0x140(%rsp), %rdi
leaq 0x240c49(%rip), %rsi    # 0x59c5a3
movl $0x10, %edx
movb $0x0, %al
callq 0x33a320
movq 0x128(%rsp), %rax
movb %al, (%rsp)
movq %rsp, %rdi
addq $0x1, %rdi
movq 0x120(%rsp), %rsi
movq 0x128(%rsp), %rdx
callq 0x19610
movq 0x140(%rsp), %rdi
movq %rsp, %rsi
movq 0x128(%rsp), %rdx
addq $0x1, %rdx
callq 0x335540
movq 0x140(%rsp), %rdi
movq 0x120(%rsp), %rsi
movq 0x128(%rsp), %rax
movl %eax, %edx
movq %rsp, %rcx
callq 0x35bbc0
movl %eax, 0x11c(%rsp)
movq 0x140(%rsp), %rdi
movq 0x130(%rsp), %rsi
movq 0x138(%rsp), %rdx
movq %rsp, %rcx
movl 0x11c(%rsp), %r8d
callq 0x35bc60
movq 0x140(%rsp), %rdi
movl $0x2, %esi
callq 0x338280
movl $0x1, %eax
addq $0x148, %rsp            # imm = 0x148
retq
nopl (%rax)
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/external/md5-1.2/src/md5lib.c
// Function: decrypt
static int decrypt (lua_State *L) {
  size_t lcyphertext;
  const char *cyphertext = luaL_checklstring(L, 1, &lcyphertext);
  size_t lseed = cyphertext[0];
  const char *seed = cyphertext+1;
  int lblock;
  char block[BLOCKSIZE+MAXKEY];
  luaL_argcheck(L, lcyphertext >= lseed+1 && lseed <= BLOCKSIZE, 1,
                 "invalid cyphered string");
  cyphertext += lseed+1;
  lcyphertext -= lseed+1;
  lblock = initblock(L, seed, lseed, block);
  decodestream(L, cyphertext, lcyphertext, block, lblock);
  return 1;
}

// Assembly:
subq $0x158, %rsp            # imm = 0x158
movq %rdi, 0x150(%rsp)
movq 0x150(%rsp), %rdi
movl $0x1, %esi
leaq 0x148(%rsp), %rdx
callq 0x33a6b0
movq %rax, 0x140(%rsp)
movq 0x140(%rsp), %rax
movsbq (%rax), %rax
movq %rax, 0x138(%rsp)
movq 0x140(%rsp), %rax
addq $0x1, %rax
movq %rax, 0x130(%rsp)
movq 0x148(%rsp), %rax
movq 0x138(%rsp), %rcx
addq $0x1, %rcx
cmpq %rcx, %rax
jb 0x35baa3
movb $0x1, %al
cmpq $0x10, 0x138(%rsp)
movb %al, 0xf(%rsp)
jbe 0x35bac6
movq 0x150(%rsp), %rdi
movl $0x1, %esi
leaq 0x240b15(%rip), %rdx    # 0x59c5cc
callq 0x33a1f0
cmpl $0x0, %eax
setne %al
movb %al, 0xf(%rsp)
movb 0xf(%rsp), %al
movq 0x138(%rsp), %rax
addq $0x1, %rax
addq 0x140(%rsp), %rax
movq %rax, 0x140(%rsp)
movq 0x138(%rsp), %rcx
addq $0x1, %rcx
movq 0x148(%rsp), %rax
subq %rcx, %rax
movq %rax, 0x148(%rsp)
movq 0x150(%rsp), %rdi
movq 0x130(%rsp), %rsi
movq 0x138(%rsp), %rax
movl %eax, %edx
leaq 0x10(%rsp), %rcx
callq 0x35bbc0
movl %eax, 0x12c(%rsp)
movq 0x150(%rsp), %rdi
movq 0x140(%rsp), %rsi
movq 0x148(%rsp), %rdx
leaq 0x10(%rsp), %rcx
movl 0x12c(%rsp), %r8d
callq 0x35bd90
movl $0x1, %eax
addq $0x158, %rsp            # imm = 0x158
retq
nopw (%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/external/md5-1.2/src/md5lib.c
// Function: initblock
static int initblock (lua_State *L, const char *seed, int lseed, char *block) {
  size_t lkey;
  const char *key = luaL_checklstring(L, 2, &lkey);
  if (lkey > MAXKEY)
    luaL_error(L, "key too long (> %d)", MAXKEY);
  memset(block, 0, BLOCKSIZE);
  memcpy(block, seed, lseed);
  memcpy(block+BLOCKSIZE, key, lkey);
  return (int)lkey+BLOCKSIZE;
}

// Assembly:
subq $0x38, %rsp
movq %rdi, 0x30(%rsp)
movq %rsi, 0x28(%rsp)
movl %edx, 0x24(%rsp)
movq %rcx, 0x18(%rsp)
movq 0x30(%rsp), %rdi
movl $0x2, %esi
leaq 0x10(%rsp), %rdx
callq 0x33a6b0
movq %rax, 0x8(%rsp)
cmpq $0x100, 0x10(%rsp)      # imm = 0x100
jbe 0x35bc13
movq 0x30(%rsp), %rdi
leaq 0x2409b1(%rip), %rsi    # 0x59c5b8
movl $0x100, %edx            # imm = 0x100
movb $0x0, %al
callq 0x33a320
movq 0x18(%rsp), %rdi
xorl %esi, %esi
movl $0x10, %edx
callq 0x19360
movq 0x18(%rsp), %rdi
movq 0x28(%rsp), %rsi
movslq 0x24(%rsp), %rdx
callq 0x19610
movq 0x18(%rsp), %rdi
addq $0x10, %rdi
movq 0x8(%rsp), %rsi
movq 0x10(%rsp), %rdx
callq 0x19610
movq 0x10(%rsp), %rax
addl $0x10, %eax
addq $0x38, %rsp
retq
nopl (%rax)
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/external/md5-1.2/src/md5lib.c
// Function: codestream
static void codestream (lua_State *L, const char *msg, size_t lmsg,
                                      char *block, int lblock) {
  luaL_Buffer b;
  luaL_buffinit(L, &b);
  while (lmsg > 0) {
    char code[BLOCKSIZE];
    int i;
    md5(block, lblock, code);
    for (i=0; i<BLOCKSIZE && lmsg > 0; i++, lmsg--)
      code[i] ^= *msg++;
    luaL_addlstring(&b, code, i); 
    memcpy(block, code, i); /* update seed */
  }
  luaL_pushresult(&b);
}

// Assembly:
subq $0x2068, %rsp           # imm = 0x2068
movq %rdi, 0x2060(%rsp)
movq %rsi, 0x2058(%rsp)
movq %rdx, 0x2050(%rsp)
movq %rcx, 0x2048(%rsp)
movl %r8d, 0x2044(%rsp)
movq 0x2060(%rsp), %rdi
leaq 0x28(%rsp), %rsi
callq 0x33b0b0
cmpq $0x0, 0x2050(%rsp)
jbe 0x35bd74
movq 0x2048(%rsp), %rdi
movslq 0x2044(%rsp), %rsi
leaq 0x10(%rsp), %rdx
callq 0x35a880
movl $0x0, 0xc(%rsp)
xorl %eax, %eax
cmpl $0x10, 0xc(%rsp)
movb %al, 0xb(%rsp)
jge 0x35bcef
cmpq $0x0, 0x2050(%rsp)
seta %al
movb %al, 0xb(%rsp)
movb 0xb(%rsp), %al
testb $0x1, %al
jne 0x35bcf9
jmp 0x35bd44
movq 0x2058(%rsp), %rax
movq %rax, %rcx
addq $0x1, %rcx
movq %rcx, 0x2058(%rsp)
movsbl (%rax), %edx
movslq 0xc(%rsp), %rax
movsbl 0x10(%rsp,%rax), %ecx
xorl %edx, %ecx
movb %cl, 0x10(%rsp,%rax)
movl 0xc(%rsp), %eax
addl $0x1, %eax
movl %eax, 0xc(%rsp)
movq 0x2050(%rsp), %rax
addq $-0x1, %rax
movq %rax, 0x2050(%rsp)
jmp 0x35bcd2
leaq 0x10(%rsp), %rsi
movslq 0xc(%rsp), %rdx
leaq 0x28(%rsp), %rdi
callq 0x33b0f0
movq 0x2048(%rsp), %rdi
leaq 0x10(%rsp), %rsi
movslq 0xc(%rsp), %rdx
callq 0x19610
jmp 0x35bca1
leaq 0x28(%rsp), %rdi
callq 0x33b1e0
addq $0x2068, %rsp           # imm = 0x2068
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/external/md5-1.2/src/md5lib.c
// Function: decodestream
static void decodestream (lua_State *L, const char *cypher, size_t lcypher,
                          char *block, int lblock) {
  luaL_Buffer b;
  luaL_buffinit(L, &b);
  while (lcypher > 0) {
    char code[BLOCKSIZE];
    int i;
    md5(block, lblock, code);  /* update seed */
    for (i=0; i<BLOCKSIZE && lcypher > 0; i++, lcypher--)
      code[i] ^= *cypher++;
    luaL_addlstring(&b, code, i); 
    memcpy(block, cypher-i, i);
  }
  luaL_pushresult(&b);
}

// Assembly:
subq $0x2068, %rsp           # imm = 0x2068
movq %rdi, 0x2060(%rsp)
movq %rsi, 0x2058(%rsp)
movq %rdx, 0x2050(%rsp)
movq %rcx, 0x2048(%rsp)
movl %r8d, 0x2044(%rsp)
movq 0x2060(%rsp), %rdi
leaq 0x28(%rsp), %rsi
callq 0x33b0b0
cmpq $0x0, 0x2050(%rsp)
jbe 0x35beb4
movq 0x2048(%rsp), %rdi
movslq 0x2044(%rsp), %rsi
leaq 0x10(%rsp), %rdx
callq 0x35a880
movl $0x0, 0xc(%rsp)
xorl %eax, %eax
cmpl $0x10, 0xc(%rsp)
movb %al, 0xb(%rsp)
jge 0x35be1f
cmpq $0x0, 0x2050(%rsp)
seta %al
movb %al, 0xb(%rsp)
movb 0xb(%rsp), %al
testb $0x1, %al
jne 0x35be29
jmp 0x35be74
movq 0x2058(%rsp), %rax
movq %rax, %rcx
addq $0x1, %rcx
movq %rcx, 0x2058(%rsp)
movsbl (%rax), %edx
movslq 0xc(%rsp), %rax
movsbl 0x10(%rsp,%rax), %ecx
xorl %edx, %ecx
movb %cl, 0x10(%rsp,%rax)
movl 0xc(%rsp), %eax
addl $0x1, %eax
movl %eax, 0xc(%rsp)
movq 0x2050(%rsp), %rax
addq $-0x1, %rax
movq %rax, 0x2050(%rsp)
jmp 0x35be02
leaq 0x10(%rsp), %rsi
movslq 0xc(%rsp), %rdx
leaq 0x28(%rsp), %rdi
callq 0x33b0f0
movq 0x2048(%rsp), %rdi
movq 0x2058(%rsp), %rsi
movslq 0xc(%rsp), %rcx
xorl %eax, %eax
subq %rcx, %rax
addq %rax, %rsi
movslq 0xc(%rsp), %rdx
callq 0x19610
jmp 0x35bdd1
leaq 0x28(%rsp), %rdi
callq 0x33b1e0
addq $0x2068, %rsp           # imm = 0x2068
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/external/md5-1.2/src/ldes56.c
// Function: luaopen_des56
int luaopen_des56 (lua_State *L) {
  lua_newtable(L);
  luaL_setfuncs(L, des56lib, 0);
  set_info (L);
  return 1;
}

// Assembly:
pushq %rax
movq %rdi, (%rsp)
movq (%rsp), %rdi
xorl %edx, %edx
movl %edx, %esi
callq 0x336790
movq (%rsp), %rdi
leaq 0x2dc003(%rip), %rsi    # 0x637ef0
xorl %edx, %edx
callq 0x35c410
movq (%rsp), %rdi
callq 0x35bf10
movl $0x1, %eax
popq %rcx
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/external/md5-1.2/src/ldes56.c
// Function: set_info
static void set_info (lua_State *L) {
	lua_pushliteral (L, "_COPYRIGHT");
	lua_pushliteral (L, "Copyright (C) 2007-2013 PUC-Rio");
	lua_settable (L, -3);
	lua_pushliteral (L, "_DESCRIPTION");
	lua_pushliteral (L, "DES 56 cryptographic facilities for Lua");
	lua_settable (L, -3);
	lua_pushliteral (L, "_VERSION");
	lua_pushliteral (L, "DES56 1.2");
	lua_settable (L, -3);
}

// Assembly:
pushq %rax
movq %rdi, (%rsp)
movq (%rsp), %rdi
leaq 0x2406c4(%rip), %rsi    # 0x59c5e4
movl $0xa, %edx
callq 0x335540
movq (%rsp), %rdi
leaq 0x2407aa(%rip), %rsi    # 0x59c6df
movl $0x1f, %edx
callq 0x335540
movq (%rsp), %rdi
movl $0xfffffffd, %esi       # imm = 0xFFFFFFFD
callq 0x336ae0
movq (%rsp), %rdi
leaq 0x2406b7(%rip), %rsi    # 0x59c60f
movl $0xc, %edx
callq 0x335540
movq (%rsp), %rdi
leaq 0x240792(%rip), %rsi    # 0x59c6ff
movl $0x27, %edx
callq 0x335540
movq (%rsp), %rdi
movl $0xfffffffd, %esi       # imm = 0xFFFFFFFD
callq 0x336ae0
movq (%rsp), %rdi
leaq 0x23fa27(%rip), %rsi    # 0x59b9b7
movl $0x8, %edx
callq 0x335540
movq (%rsp), %rdi
leaq 0x240782(%rip), %rsi    # 0x59c727
movl $0x9, %edx
callq 0x335540
movq (%rsp), %rdi
movl $0xfffffffd, %esi       # imm = 0xFFFFFFFD
callq 0x336ae0
popq %rax
retq
nop
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/external/md5-1.2/src/compat-5.2.c
// Function: luaL_setfuncs
void luaL_setfuncs (lua_State *L, const luaL_Reg *l, int nup) {
  luaL_checkstack(L, nup+1, "too many upvalues");
  for (; l->name != NULL; l++) {  /* fill the table with given functions */
    int i;
    lua_pushstring(L, l->name);
    for (i = 0; i < nup; i++)  /* copy upvalues to the top */
      lua_pushvalue(L, -(nup + 1));
    lua_pushcclosure(L, l->func, nup);  /* closure with those upvalues */
    lua_settable(L, -(nup + 3)); /* table must be below the upvalues, the name and the closure */
  }
  lua_pop(L, nup);  /* remove upvalues */
}

// Assembly:
subq $0x18, %rsp
movq %rdi, 0x10(%rsp)
movq %rsi, 0x8(%rsp)
movl %edx, 0x4(%rsp)
movq 0x10(%rsp), %rdi
movl 0x4(%rsp), %esi
addl $0x1, %esi
leaq 0x2402fc(%rip), %rdx    # 0x59c731
callq 0x33a840
movq 0x8(%rsp), %rax
cmpq $0x0, (%rax)
je 0x35c4ca
movq 0x10(%rsp), %rdi
movq 0x8(%rsp), %rax
movq (%rax), %rsi
callq 0x335740
movl $0x0, (%rsp)
movl (%rsp), %eax
cmpl 0x4(%rsp), %eax
jge 0x35c48b
movq 0x10(%rsp), %rdi
movl 0x4(%rsp), %eax
addl $0x1, %eax
xorl %esi, %esi
subl %eax, %esi
callq 0x334560
movl (%rsp), %eax
addl $0x1, %eax
movl %eax, (%rsp)
jmp 0x35c462
movq 0x10(%rsp), %rdi
movq 0x8(%rsp), %rax
movq 0x8(%rax), %rsi
movl 0x4(%rsp), %edx
callq 0x335ef0
movq 0x10(%rsp), %rdi
movl 0x4(%rsp), %eax
addl $0x3, %eax
xorl %esi, %esi
subl %eax, %esi
callq 0x336ae0
movq 0x8(%rsp), %rax
addq $0x10, %rax
movq %rax, 0x8(%rsp)
jmp 0x35c43a
movq 0x10(%rsp), %rdi
xorl %esi, %esi
subl 0x4(%rsp), %esi
subl $0x1, %esi
callq 0x333ed0
addq $0x18, %rsp
retq
nopw %cs:(%rax,%rax)
nopl (%rax)
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/external/luafilesystem-1.5.0/src/lfs.c
// Function: luaopen_lfs
int luaopen_lfs (lua_State *L) {
	dir_create_meta (L);
	lock_create_meta (L);
	luaL_register (L, "lfs", fslib);
	set_info (L);
	return 1;
}

// Assembly:
pushq %rax
movq %rdi, (%rsp)
movq (%rsp), %rdi
callq 0x35c870
movq (%rsp), %rdi
callq 0x35c950
movq (%rsp), %rdi
leaq 0x240098(%rip), %rsi    # 0x59c8ea
leaq 0x2db6c7(%rip), %rdx    # 0x637f20
callq 0x33ac00
movq (%rsp), %rdi
callq 0x35c9e0
movl $0x1, %eax
popq %rcx
retq
nop
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/external/luafilesystem-1.5.0/src/lfs.c
// Function: dir_create_meta
static int dir_create_meta (lua_State *L) {
	luaL_newmetatable (L, DIR_METATABLE);
	/* set its __gc field */
	lua_pushstring (L, "__index");
	lua_newtable(L);
	lua_pushstring (L, "next");
	lua_pushcfunction (L, dir_iter);
	lua_settable(L, -3);
	lua_pushstring (L, "close");
	lua_pushcfunction (L, dir_close);
	lua_settable(L, -3);
	lua_settable (L, -3);
	lua_pushstring (L, "__gc");
	lua_pushcfunction (L, dir_close);
	lua_settable (L, -3);
	return 1;
}

// Assembly:
pushq %rax
movq %rdi, (%rsp)
movq (%rsp), %rdi
leaq 0x23ff1d(%rip), %rsi    # 0x59c79d
callq 0x33a700
movq (%rsp), %rdi
leaq 0x209b44(%rip), %rsi    # 0x5663d4
callq 0x335740
movq (%rsp), %rdi
xorl %edx, %edx
movl %edx, %esi
callq 0x336790
movq (%rsp), %rdi
leaq 0x2033ed(%rip), %rsi    # 0x55fc9a
callq 0x335740
movq (%rsp), %rdi
leaq 0x2d3(%rip), %rsi       # 0x35cb90
xorl %edx, %edx
callq 0x335ef0
movq (%rsp), %rdi
movl $0xfffffffd, %esi       # imm = 0xFFFFFFFD
callq 0x336ae0
movq (%rsp), %rdi
leaq 0x23f577(%rip), %rsi    # 0x59be54
callq 0x335740
movq (%rsp), %rdi
leaq 0x363(%rip), %rsi       # 0x35cc50
xorl %edx, %edx
callq 0x335ef0
movq (%rsp), %rdi
movl $0xfffffffd, %esi       # imm = 0xFFFFFFFD
callq 0x336ae0
movq (%rsp), %rdi
movl $0xfffffffd, %esi       # imm = 0xFFFFFFFD
callq 0x336ae0
movq (%rsp), %rdi
leaq 0x2136ac(%rip), %rsi    # 0x56ffc7
callq 0x335740
movq (%rsp), %rdi
leaq 0x325(%rip), %rsi       # 0x35cc50
xorl %edx, %edx
callq 0x335ef0
movq (%rsp), %rdi
movl $0xfffffffd, %esi       # imm = 0xFFFFFFFD
callq 0x336ae0
movl $0x1, %eax
popq %rcx
retq
nopw (%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/external/luafilesystem-1.5.0/src/lfs.c
// Function: lock_create_meta
static int lock_create_meta (lua_State *L) {
	luaL_newmetatable (L, LOCK_METATABLE);
	/* set its __gc field */
	lua_newtable(L);
	lua_pushcfunction(L, lfs_unlock_dir);
	lua_setfield(L, -2, "free");
	lua_setfield(L, -2, "__index");
	lua_pushcfunction(L, lfs_unlock_dir);
	lua_setfield(L, -2, "__gc");
	return 1;
}

// Assembly:
pushq %rax
movq %rdi, (%rsp)
movq (%rsp), %rdi
leaq 0x23fe62(%rip), %rsi    # 0x59c7c2
callq 0x33a700
movq (%rsp), %rdi
xorl %edx, %edx
movl %edx, %esi
callq 0x336790
movq (%rsp), %rdi
leaq 0x333(%rip), %rsi       # 0x35ccb0
xorl %edx, %edx
callq 0x335ef0
movq (%rsp), %rdi
movl $0xfffffffe, %esi       # imm = 0xFFFFFFFE
leaq 0x1e61a8(%rip), %rdx    # 0x542b3c
callq 0x336d90
movq (%rsp), %rdi
movl $0xfffffffe, %esi       # imm = 0xFFFFFFFE
leaq 0x209a2b(%rip), %rdx    # 0x5663d4
callq 0x336d90
movq (%rsp), %rdi
leaq 0x2f7(%rip), %rsi       # 0x35ccb0
xorl %edx, %edx
callq 0x335ef0
movq (%rsp), %rdi
movl $0xfffffffe, %esi       # imm = 0xFFFFFFFE
leaq 0x2135f7(%rip), %rdx    # 0x56ffc7
callq 0x336d90
movl $0x1, %eax
popq %rcx
retq
nopl (%rax)
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/external/luafilesystem-1.5.0/src/lfs.c
// Function: set_info
static void set_info (lua_State *L) {
	lua_pushliteral (L, "_COPYRIGHT");
	lua_pushliteral (L, "Copyright (C) 2003-2009 Kepler Project");
	lua_settable (L, -3);
	lua_pushliteral (L, "_DESCRIPTION");
	lua_pushliteral (L, "LuaFileSystem is a Lua library developed to complement the set of functions related to file systems offered by the standard Lua distribution");
	lua_settable (L, -3);
	lua_pushliteral (L, "_VERSION");
	lua_pushliteral (L, "LuaFileSystem 1.5.0");
	lua_settable (L, -3);
}

// Assembly:
pushq %rax
movq %rdi, (%rsp)
movq (%rsp), %rdi
leaq 0x23fbf4(%rip), %rsi    # 0x59c5e4
movl $0xa, %edx
callq 0x335540
movq (%rsp), %rdi
leaq 0x23fee9(%rip), %rsi    # 0x59c8ee
movl $0x26, %edx
callq 0x335540
movq (%rsp), %rdi
movl $0xfffffffd, %esi       # imm = 0xFFFFFFFD
callq 0x336ae0
movq (%rsp), %rdi
leaq 0x23fbe7(%rip), %rsi    # 0x59c60f
movl $0xc, %edx
callq 0x335540
movq (%rsp), %rdi
leaq 0x23fed8(%rip), %rsi    # 0x59c915
movl $0x8c, %edx
callq 0x335540
movq (%rsp), %rdi
movl $0xfffffffd, %esi       # imm = 0xFFFFFFFD
callq 0x336ae0
movq (%rsp), %rdi
leaq 0x23ef57(%rip), %rsi    # 0x59b9b7
movl $0x8, %edx
callq 0x335540
movq (%rsp), %rdi
leaq 0x23ff2d(%rip), %rsi    # 0x59c9a2
movl $0x13, %edx
callq 0x335540
movq (%rsp), %rdi
movl $0xfffffffd, %esi       # imm = 0xFFFFFFFD
callq 0x336ae0
popq %rax
retq
nop
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/external/luafilesystem-1.5.0/src/lfs.c
// Function: mode2string
static const char *mode2string (mode_t mode) {
#endif
  if ( S_ISREG(mode) )
    return "file";
  else if ( S_ISDIR(mode) )
    return "directory";
  else if ( S_ISLNK(mode) )
	return "link";
  else if ( S_ISSOCK(mode) )
    return "socket";
  else if ( S_ISFIFO(mode) )
	return "named pipe";
  else if ( S_ISCHR(mode) )
	return "char device";
  else if ( S_ISBLK(mode) )
	return "block device";
  else
	return "other";
}

// Assembly:
movl %edi, -0xc(%rsp)
movl -0xc(%rsp), %eax
andl $0xf000, %eax           # imm = 0xF000
cmpl $0x8000, %eax           # imm = 0x8000
jne 0x35cab5
leaq 0x1bde59(%rip), %rax    # 0x51a904
movq %rax, -0x8(%rsp)
jmp 0x35cb7b
movl -0xc(%rsp), %eax
andl $0xf000, %eax           # imm = 0xF000
cmpl $0x4000, %eax           # imm = 0x4000
jne 0x35cad6
leaq 0x1df7fd(%rip), %rax    # 0x53c2c9
movq %rax, -0x8(%rsp)
jmp 0x35cb7b
movl -0xc(%rsp), %eax
andl $0xf000, %eax           # imm = 0xF000
cmpl $0xa000, %eax           # imm = 0xA000
jne 0x35caf7
leaq 0x1bdea0(%rip), %rax    # 0x51a98d
movq %rax, -0x8(%rsp)
jmp 0x35cb7b
movl -0xc(%rsp), %eax
andl $0xf000, %eax           # imm = 0xF000
cmpl $0xc000, %eax           # imm = 0xC000
jne 0x35cb15
leaq 0x23fc4d(%rip), %rax    # 0x59c75b
movq %rax, -0x8(%rsp)
jmp 0x35cb7b
movl -0xc(%rsp), %eax
andl $0xf000, %eax           # imm = 0xF000
cmpl $0x1000, %eax           # imm = 0x1000
jne 0x35cb33
leaq 0x23fc36(%rip), %rax    # 0x59c762
movq %rax, -0x8(%rsp)
jmp 0x35cb7b
movl -0xc(%rsp), %eax
andl $0xf000, %eax           # imm = 0xF000
cmpl $0x2000, %eax           # imm = 0x2000
jne 0x35cb51
leaq 0x23fc23(%rip), %rax    # 0x59c76d
movq %rax, -0x8(%rsp)
jmp 0x35cb7b
movl -0xc(%rsp), %eax
andl $0xf000, %eax           # imm = 0xF000
cmpl $0x6000, %eax           # imm = 0x6000
jne 0x35cb6f
leaq 0x23fc11(%rip), %rax    # 0x59c779
movq %rax, -0x8(%rsp)
jmp 0x35cb7b
leaq 0x1e2751(%rip), %rax    # 0x53f2c7
movq %rax, -0x8(%rsp)
movq -0x8(%rsp), %rax
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/external/luafilesystem-1.5.0/src/lfs.c
// Function: dir_iter
static int dir_iter (lua_State *L) {
#ifdef _WIN32
	struct _finddata_t c_file;
#else
	struct dirent *entry;
#endif
	dir_data *d = (dir_data *)luaL_checkudata (L, 1, DIR_METATABLE);
	luaL_argcheck (L, !d->closed, 1, "closed directory");
#ifdef _WIN32
	if (d->hFile == 0L) { /* first entry */
		if ((d->hFile = _findfirst (d->pattern, &c_file)) == -1L) {
			lua_pushnil (L);
			lua_pushstring (L, strerror (errno));
			return 2;
		} else {
			lua_pushstring (L, c_file.name);
			return 1;
		}
	} else { /* next entry */
		if (_findnext (d->hFile, &c_file) == -1L) {
			/* no more entries => close directory */
			_findclose (d->hFile);
			d->closed = 1;
			return 0;
		} else {
			lua_pushstring (L, c_file.name);
			return 1;
		}
	}
#else
	if ((entry = readdir (d->dir)) != NULL) {
		lua_pushstring (L, entry->d_name);
		return 1;
	} else {
		/* no more entries => close directory */
		closedir (d->dir);
		d->closed = 1;
		return 0;
	}
#endif
}

// Assembly:
subq $0x28, %rsp
movq %rdi, 0x18(%rsp)
movq 0x18(%rsp), %rdi
movl $0x1, %esi
leaq 0x23fbf3(%rip), %rdx    # 0x59c79d
callq 0x33a790
movq %rax, 0x8(%rsp)
movq 0x8(%rsp), %rcx
movb $0x1, %al
cmpl $0x0, (%rcx)
movb %al, 0x7(%rsp)
je 0x35cbe4
movq 0x18(%rsp), %rdi
movl $0x1, %esi
leaq 0x23fbdc(%rip), %rdx    # 0x59c7b1
callq 0x33a1f0
cmpl $0x0, %eax
setne %al
movb %al, 0x7(%rsp)
movb 0x7(%rsp), %al
movq 0x8(%rsp), %rax
movq 0x8(%rax), %rdi
callq 0x193f0
movq %rax, 0x10(%rsp)
cmpq $0x0, %rax
je 0x35cc1e
movq 0x18(%rsp), %rdi
movq 0x10(%rsp), %rsi
addq $0x13, %rsi
callq 0x335740
movl $0x1, 0x24(%rsp)
jmp 0x35cc3f
movq 0x8(%rsp), %rax
movq 0x8(%rax), %rdi
callq 0x19ba0
movq 0x8(%rsp), %rax
movl $0x1, (%rax)
movl $0x0, 0x24(%rsp)
movl 0x24(%rsp), %eax
addq $0x28, %rsp
retq
nopl (%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/external/luafilesystem-1.5.0/src/lfs.c
// Function: dir_close
static int dir_close (lua_State *L) {
	dir_data *d = (dir_data *)lua_touserdata (L, 1);
#ifdef _WIN32
	if (!d->closed && d->hFile) {
		_findclose (d->hFile);
		d->closed = 1;
	}
#else
	if (!d->closed && d->dir) {
		closedir (d->dir);
		d->closed = 1;
	}
#endif
	return 0;
}

// Assembly:
subq $0x18, %rsp
movq %rdi, 0x10(%rsp)
movq 0x10(%rsp), %rdi
movl $0x1, %esi
callq 0x335300
movq %rax, 0x8(%rsp)
movq 0x8(%rsp), %rax
cmpl $0x0, (%rax)
jne 0x35cc9c
movq 0x8(%rsp), %rax
cmpq $0x0, 0x8(%rax)
je 0x35cc9c
movq 0x8(%rsp), %rax
movq 0x8(%rax), %rdi
callq 0x19ba0
movq 0x8(%rsp), %rax
movl $0x1, (%rax)
xorl %eax, %eax
addq $0x18, %rsp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/external/luafilesystem-1.5.0/src/lfs.c
// Function: lfs_unlock_dir
static int lfs_unlock_dir(lua_State *L) {
  lfs_Lock *lock = luaL_checkudata(L, 1, LOCK_METATABLE);
  if(lock->ln) {
    unlink(lock->ln);
    free(lock->ln);
    lock->ln = NULL;
  }
  return 0;
}

// Assembly:
subq $0x18, %rsp
movq %rdi, 0x10(%rsp)
movq 0x10(%rsp), %rdi
movl $0x1, %esi
leaq 0x23faf8(%rip), %rdx    # 0x59c7c2
callq 0x33a790
movq %rax, 0x8(%rsp)
movq 0x8(%rsp), %rax
cmpq $0x0, (%rax)
je 0x35cd05
movq 0x8(%rsp), %rax
movq (%rax), %rdi
callq 0x192e0
movq 0x8(%rsp), %rax
movq (%rax), %rdi
callq 0x19ef0
movq 0x8(%rsp), %rax
movq $0x0, (%rax)
xorl %eax, %eax
addq $0x18, %rsp
retq
nopl (%rax)
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/external/luafilesystem-1.5.0/src/lfs.c
// Function: change_dir
static int change_dir (lua_State *L) {
	const char *path = luaL_checkstring(L, 1);
	if (chdir(path)) {
		lua_pushnil (L);
		lua_pushfstring (L,"Unable to change working directory to '%s'\n%s\n",
				path, chdir_error);
		return 2;
	} else {
		lua_pushboolean (L, 1);
		return 1;
	}
}

// Assembly:
subq $0x28, %rsp
movq %rdi, 0x18(%rsp)
movq 0x18(%rsp), %rdi
movl $0x1, %esi
xorl %eax, %eax
movl %eax, %edx
callq 0x33a6b0
movq %rax, 0x10(%rsp)
movq 0x10(%rsp), %rdi
callq 0x19a50
cmpl $0x0, %eax
je 0x35cdad
movq 0x18(%rsp), %rdi
callq 0x335470
movq 0x18(%rsp), %rax
movq %rax, (%rsp)
movq 0x10(%rsp), %rax
movq %rax, 0x8(%rsp)
callq 0x19060
movl (%rax), %edi
callq 0x19200
movq (%rsp), %rdi
movq 0x8(%rsp), %rdx
movq %rax, %rcx
leaq 0x23faab(%rip), %rsi    # 0x59c847
movb $0x0, %al
callq 0x335df0
movl $0x2, 0x24(%rsp)
jmp 0x35cdc4
movq 0x18(%rsp), %rdi
movl $0x1, %esi
callq 0x336110
movl $0x1, 0x24(%rsp)
movl 0x24(%rsp), %eax
addq $0x28, %rsp
retq
nopl (%rax)
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/external/luafilesystem-1.5.0/src/lfs.c
// Function: get_dir
static int get_dir (lua_State *L) {
  char *path;
  if ((path = getcwd(NULL, 0)) == NULL) {
    lua_pushnil(L);
    lua_pushstring(L, getcwd_error);
    return 2;
  }
  else {
    lua_pushstring(L, path);
    free(path);
    return 1;
  }
}

// Assembly:
subq $0x28, %rsp
movq %rdi, 0x18(%rsp)
xorl %eax, %eax
movl %eax, %esi
movq %rsi, %rdi
callq 0x19320
movq %rax, 0x10(%rsp)
cmpq $0x0, %rax
jne 0x35ce27
movq 0x18(%rsp), %rdi
callq 0x335470
movq 0x18(%rsp), %rax
movq %rax, 0x8(%rsp)
callq 0x19060
movl (%rax), %edi
callq 0x19200
movq 0x8(%rsp), %rdi
movq %rax, %rsi
callq 0x335740
movl $0x2, 0x24(%rsp)
jmp 0x35ce48
movq 0x18(%rsp), %rdi
movq 0x10(%rsp), %rsi
callq 0x335740
movq 0x10(%rsp), %rdi
callq 0x19ef0
movl $0x1, 0x24(%rsp)
movl 0x24(%rsp), %eax
addq $0x28, %rsp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/external/luafilesystem-1.5.0/src/lfs.c
// Function: dir_iter_factory
static int dir_iter_factory (lua_State *L) {
	const char *path = luaL_checkstring (L, 1);
	dir_data *d;
	lua_pushcfunction (L, dir_iter);
	d = (dir_data *) lua_newuserdata (L, sizeof(dir_data));
	d->closed = 0;
#ifdef _WIN32
	d->hFile = 0L;
	luaL_getmetatable (L, DIR_METATABLE);
	lua_setmetatable (L, -2);
	if (strlen(path) > MAX_DIR_LENGTH)
		luaL_error (L, "path too long: %s", path);
	else
		sprintf (d->pattern, "%s/*", path);
#else
	luaL_getmetatable (L, DIR_METATABLE);
	lua_setmetatable (L, -2);
	d->dir = opendir (path);
	if (d->dir == NULL)
		luaL_error (L, "cannot open %s: %s", path, strerror (errno));
#endif
	return 2;
}

// Assembly:
subq $0x28, %rsp
movq %rdi, 0x20(%rsp)
movq 0x20(%rsp), %rdi
movl $0x1, %esi
xorl %eax, %eax
movl %eax, %edx
callq 0x33a6b0
movq %rax, 0x18(%rsp)
movq 0x20(%rsp), %rdi
leaq -0x2fd(%rip), %rsi      # 0x35cb90
xorl %edx, %edx
callq 0x335ef0
movq 0x20(%rsp), %rdi
movl $0x10, %esi
callq 0x338720
movq %rax, 0x10(%rsp)
movq 0x10(%rsp), %rax
movl $0x0, (%rax)
movq 0x20(%rsp), %rdi
movl $0xffffd8f0, %esi       # imm = 0xFFFFD8F0
leaq 0x23f8d9(%rip), %rdx    # 0x59c79d
callq 0x336410
movq 0x20(%rsp), %rdi
movl $0xfffffffe, %esi       # imm = 0xFFFFFFFE
callq 0x3371c0
movq 0x18(%rsp), %rdi
callq 0x19a90
movq %rax, %rcx
movq 0x10(%rsp), %rax
movq %rcx, 0x8(%rax)
movq 0x10(%rsp), %rax
cmpq $0x0, 0x8(%rax)
jne 0x35cf33
movq 0x20(%rsp), %rax
movq %rax, (%rsp)
movq 0x18(%rsp), %rax
movq %rax, 0x8(%rsp)
callq 0x19060
movl (%rax), %edi
callq 0x19200
movq (%rsp), %rdi
movq 0x8(%rsp), %rdx
movq %rax, %rcx
leaq 0x23f94a(%rip), %rsi    # 0x59c876
movb $0x0, %al
callq 0x33a320
movl $0x2, %eax
addq $0x28, %rsp
retq
nopl (%rax)
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/external/luafilesystem-1.5.0/src/lfs.c
// Function: file_lock
static int file_lock (lua_State *L) {
	FILE *fh = check_file (L, 1, "lock");
	const char *mode = luaL_checkstring (L, 2);
	const long start = luaL_optlong (L, 3, 0);
	long len = luaL_optlong (L, 4, 0);
	if (_file_lock (L, fh, mode, start, len, "lock")) {
		lua_pushboolean (L, 1);
		return 1;
	} else {
		lua_pushnil (L);
		lua_pushfstring (L, "%s", strerror(errno));
		return 2;
	}
}

// Assembly:
subq $0x38, %rsp
movq %rdi, 0x28(%rsp)
movq 0x28(%rsp), %rdi
movl $0x1, %esi
leaq 0x24e156(%rip), %rdx    # 0x5ab0b0
callq 0x35d7d0
movq %rax, 0x20(%rsp)
movq 0x28(%rsp), %rdi
movl $0x2, %esi
xorl %eax, %eax
movl %eax, %edx
callq 0x33a6b0
movq %rax, 0x18(%rsp)
movq 0x28(%rsp), %rdi
movl $0x3, %esi
xorl %eax, %eax
movl %eax, %edx
callq 0x33aa70
movq %rax, 0x10(%rsp)
movq 0x28(%rsp), %rdi
movl $0x4, %esi
xorl %eax, %eax
movl %eax, %edx
callq 0x33aa70
movq %rax, 0x8(%rsp)
movq 0x28(%rsp), %rdi
movq 0x20(%rsp), %rsi
movq 0x18(%rsp), %rdx
movq 0x10(%rsp), %rcx
movq 0x8(%rsp), %r8
leaq 0x24e0e4(%rip), %r9     # 0x5ab0b0
callq 0x35d870
cmpl $0x0, %eax
je 0x35cfef
movq 0x28(%rsp), %rdi
movl $0x1, %esi
callq 0x336110
movl $0x1, 0x34(%rsp)
jmp 0x35d02b
movq 0x28(%rsp), %rdi
callq 0x335470
movq 0x28(%rsp), %rax
movq %rax, (%rsp)
callq 0x19060
movl (%rax), %edi
callq 0x19200
movq (%rsp), %rdi
movq %rax, %rdx
leaq 0x23f005(%rip), %rsi    # 0x59c021
movb $0x0, %al
callq 0x335df0
movl $0x2, 0x34(%rsp)
movl 0x34(%rsp), %eax
addq $0x38, %rsp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/external/luafilesystem-1.5.0/src/lfs.c
// Function: make_dir
static int make_dir (lua_State *L) {
	const char *path = luaL_checkstring (L, 1);
	int fail;
#ifdef _WIN32
	int oldmask = umask (0);
	fail = _mkdir (path);
#else
	mode_t oldmask = umask( (mode_t)0 );
	fail =  mkdir (path, S_IRUSR | S_IWUSR | S_IXUSR | S_IRGRP |
	                     S_IWGRP | S_IXGRP | S_IROTH | S_IXOTH );
#endif
	if (fail) {
		lua_pushnil (L);
        lua_pushfstring (L, "%s", strerror(errno));
		return 2;
	}
	umask (oldmask);
	lua_pushboolean (L, 1);
	return 1;
}

// Assembly:
subq $0x28, %rsp
movq %rdi, 0x18(%rsp)
movq 0x18(%rsp), %rdi
movl $0x1, %esi
xorl %eax, %eax
movl %eax, %edx
callq 0x33a6b0
movq %rax, 0x10(%rsp)
xorl %edi, %edi
callq 0x19d10
movl %eax, 0x8(%rsp)
movq 0x10(%rsp), %rdi
movl $0x1fd, %esi            # imm = 0x1FD
callq 0x192d0
movl %eax, 0xc(%rsp)
cmpl $0x0, 0xc(%rsp)
je 0x35d0c4
movq 0x18(%rsp), %rdi
callq 0x335470
movq 0x18(%rsp), %rax
movq %rax, (%rsp)
callq 0x19060
movl (%rax), %edi
callq 0x19200
movq (%rsp), %rdi
movq %rax, %rdx
leaq 0x23ef6e(%rip), %rsi    # 0x59c021
movb $0x0, %al
callq 0x335df0
movl $0x2, 0x24(%rsp)
jmp 0x35d0e4
movl 0x8(%rsp), %edi
callq 0x19d10
movq 0x18(%rsp), %rdi
movl $0x1, %esi
callq 0x336110
movl $0x1, 0x24(%rsp)
movl 0x24(%rsp), %eax
addq $0x28, %rsp
retq
nopl (%rax)
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/external/luafilesystem-1.5.0/src/lfs.c
// Function: remove_dir
static int remove_dir (lua_State *L) {
	const char *path = luaL_checkstring (L, 1);
	int fail;

	fail = rmdir (path);

	if (fail) {
		lua_pushnil (L);
		lua_pushfstring (L, "%s", strerror(errno));
		return 2;
	}
	lua_pushboolean (L, 1);
	return 1;
}

// Assembly:
subq $0x28, %rsp
movq %rdi, 0x18(%rsp)
movq 0x18(%rsp), %rdi
movl $0x1, %esi
xorl %eax, %eax
movl %eax, %edx
callq 0x33a6b0
movq %rax, 0x10(%rsp)
movq 0x10(%rsp), %rdi
callq 0x19290
movl %eax, 0xc(%rsp)
cmpl $0x0, 0xc(%rsp)
je 0x35d164
movq 0x18(%rsp), %rdi
callq 0x335470
movq 0x18(%rsp), %rax
movq %rax, (%rsp)
callq 0x19060
movl (%rax), %edi
callq 0x19200
movq (%rsp), %rdi
movq %rax, %rdx
leaq 0x23eece(%rip), %rsi    # 0x59c021
movb $0x0, %al
callq 0x335df0
movl $0x2, 0x24(%rsp)
jmp 0x35d17b
movq 0x18(%rsp), %rdi
movl $0x1, %esi
callq 0x336110
movl $0x1, 0x24(%rsp)
movl 0x24(%rsp), %eax
addq $0x28, %rsp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/external/luafilesystem-1.5.0/src/lfs.c
// Function: file_utime
static int file_utime (lua_State *L) {
	const char *file = luaL_checkstring (L, 1);
	struct utimbuf utb, *buf;

	if (lua_gettop (L) == 1) /* set to current date/time */
		buf = NULL;
	else {
		utb.actime = (time_t)luaL_optnumber (L, 2, 0);
		utb.modtime = (time_t)luaL_optnumber (L, 3, utb.actime);
		buf = &utb;
	}
	if (utime (file, buf)) {
		lua_pushnil (L);
		lua_pushfstring (L, "%s", strerror (errno));
		return 2;
	}
	lua_pushboolean (L, 1);
	return 1;
}

// Assembly:
subq $0x38, %rsp
movq %rdi, 0x28(%rsp)
movq 0x28(%rsp), %rdi
movl $0x1, %esi
xorl %eax, %eax
movl %eax, %edx
callq 0x33a6b0
movq %rax, 0x20(%rsp)
movq 0x28(%rsp), %rdi
callq 0x333eb0
cmpl $0x1, %eax
jne 0x35d22b
movq $0x0, 0x8(%rsp)
jmp 0x35d271
movq 0x28(%rsp), %rdi
movl $0x2, %esi
xorps %xmm0, %xmm0
callq 0x33a9b0
cvttsd2si %xmm0, %rax
movq %rax, 0x10(%rsp)
movq 0x28(%rsp), %rdi
cvtsi2sdq 0x10(%rsp), %xmm0
movl $0x3, %esi
callq 0x33a9b0
cvttsd2si %xmm0, %rax
movq %rax, 0x18(%rsp)
leaq 0x10(%rsp), %rax
movq %rax, 0x8(%rsp)
movq 0x20(%rsp), %rdi
movq 0x8(%rsp), %rsi
callq 0x19340
cmpl $0x0, %eax
je 0x35d2c3
movq 0x28(%rsp), %rdi
callq 0x335470
movq 0x28(%rsp), %rax
movq %rax, (%rsp)
callq 0x19060
movl (%rax), %edi
callq 0x19200
movq (%rsp), %rdi
movq %rax, %rdx
leaq 0x23ed6f(%rip), %rsi    # 0x59c021
movb $0x0, %al
callq 0x335df0
movl $0x2, 0x34(%rsp)
jmp 0x35d2da
movq 0x28(%rsp), %rdi
movl $0x1, %esi
callq 0x336110
movl $0x1, 0x34(%rsp)
movl 0x34(%rsp), %eax
addq $0x38, %rsp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/external/luafilesystem-1.5.0/src/lfs.c
// Function: file_unlock
static int file_unlock (lua_State *L) {
	FILE *fh = check_file (L, 1, "unlock");
	const long start = luaL_optlong (L, 2, 0);
	long len = luaL_optlong (L, 3, 0);
	if (_file_lock (L, fh, "u", start, len, "unlock")) {
		lua_pushboolean (L, 1);
		return 1;
	} else {
		lua_pushnil (L);
		lua_pushfstring (L, "%s", strerror(errno));
		return 2;
	}
}

// Assembly:
subq $0x38, %rsp
movq %rdi, 0x28(%rsp)
movq 0x28(%rsp), %rdi
movl $0x1, %esi
leaq 0x23f504(%rip), %rdx    # 0x59c80e
callq 0x35d7d0
movq %rax, 0x20(%rsp)
movq 0x28(%rsp), %rdi
movl $0x2, %esi
xorl %eax, %eax
movl %eax, %edx
callq 0x33aa70
movq %rax, 0x18(%rsp)
movq 0x28(%rsp), %rdi
movl $0x3, %esi
xorl %eax, %eax
movl %eax, %edx
callq 0x33aa70
movq %rax, 0x10(%rsp)
movq 0x28(%rsp), %rdi
movq 0x20(%rsp), %rsi
movq 0x18(%rsp), %rcx
movq 0x10(%rsp), %r8
leaq 0x204972(%rip), %rdx    # 0x561cd1
leaq 0x23f4a8(%rip), %r9     # 0x59c80e
callq 0x35d870
cmpl $0x0, %eax
je 0x35d389
movq 0x28(%rsp), %rdi
movl $0x1, %esi
callq 0x336110
movl $0x1, 0x34(%rsp)
jmp 0x35d3c7
movq 0x28(%rsp), %rdi
callq 0x335470
movq 0x28(%rsp), %rax
movq %rax, 0x8(%rsp)
callq 0x19060
movl (%rax), %edi
callq 0x19200
movq 0x8(%rsp), %rdi
movq %rax, %rdx
leaq 0x23ec69(%rip), %rsi    # 0x59c021
movb $0x0, %al
callq 0x335df0
movl $0x2, 0x34(%rsp)
movl 0x34(%rsp), %eax
addq $0x38, %rsp
retq
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/external/luafilesystem-1.5.0/src/lfs.c
// Function: lfs_lock_dir
static int lfs_lock_dir(lua_State *L) {
  lfs_Lock *lock;
  size_t pathl;
  char *ln;
  const char *lockfile = "/lockfile.lfs";
  const char *path = luaL_checklstring(L, 1, &pathl);
  lock = (lfs_Lock*)lua_newuserdata(L, sizeof(lfs_Lock));
  ln = (char*)malloc(pathl + strlen(lockfile) + 1);
  if(!ln) { 
    lua_pushnil(L); lua_pushstring(L, strerror(errno)); return 2;
  }
  strcpy(ln, path); strcat(ln, lockfile);
  if(symlink("lock", ln) == -1) {
    free(ln); lua_pushnil(L); 
    lua_pushstring(L, strerror(errno)); return 2;
  }
  lock->ln = ln;
  luaL_getmetatable (L, LOCK_METATABLE);
  lua_setmetatable (L, -2);
  return 1;
}

// Assembly:
subq $0x58, %rsp
movq %rdi, 0x48(%rsp)
leaq 0x23f500(%rip), %rax    # 0x59c8e0
movq %rax, 0x28(%rsp)
movq 0x48(%rsp), %rdi
movl $0x1, %esi
leaq 0x38(%rsp), %rdx
callq 0x33a6b0
movq %rax, 0x20(%rsp)
movq 0x48(%rsp), %rdi
movl $0x8, %esi
callq 0x338720
movq %rax, 0x40(%rsp)
movq 0x38(%rsp), %rax
movq %rax, 0x18(%rsp)
movq 0x28(%rsp), %rdi
callq 0x192b0
movq 0x18(%rsp), %rdi
addq %rax, %rdi
addq $0x1, %rdi
callq 0x19ef8
movq %rax, 0x30(%rsp)
cmpq $0x0, 0x30(%rsp)
jne 0x35d47e
movq 0x48(%rsp), %rdi
callq 0x335470
movq 0x48(%rsp), %rax
movq %rax, 0x10(%rsp)
callq 0x19060
movl (%rax), %edi
callq 0x19200
movq 0x10(%rsp), %rdi
movq %rax, %rsi
callq 0x335740
movl $0x2, 0x54(%rsp)
jmp 0x35d52d
movq 0x30(%rsp), %rdi
movq 0x20(%rsp), %rsi
callq 0x19700
movq 0x30(%rsp), %rdi
movq 0x28(%rsp), %rsi
callq 0x19cf0
movq 0x30(%rsp), %rsi
leaq 0x24dc08(%rip), %rdi    # 0x5ab0b0
callq 0x19080
cmpl $-0x1, %eax
jne 0x35d4f3
movq 0x30(%rsp), %rdi
callq 0x19ef0
movq 0x48(%rsp), %rdi
callq 0x335470
movq 0x48(%rsp), %rax
movq %rax, 0x8(%rsp)
callq 0x19060
movl (%rax), %edi
callq 0x19200
movq 0x8(%rsp), %rdi
movq %rax, %rsi
callq 0x335740
movl $0x2, 0x54(%rsp)
jmp 0x35d52d
movq 0x30(%rsp), %rcx
movq 0x40(%rsp), %rax
movq %rcx, (%rax)
movq 0x48(%rsp), %rdi
movl $0xffffd8f0, %esi       # imm = 0xFFFFD8F0
leaq 0x23f2b1(%rip), %rdx    # 0x59c7c2
callq 0x336410
movq 0x48(%rsp), %rdi
movl $0xfffffffe, %esi       # imm = 0xFFFFFFFE
callq 0x3371c0
movl $0x1, 0x54(%rsp)
movl 0x54(%rsp), %eax
addq $0x58, %rsp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/external/luafilesystem-1.5.0/src/lfs.c
// Function: check_file
static FILE *check_file (lua_State *L, int idx, const char *funcname) {
	FILE **fh = (FILE **)luaL_checkudata (L, idx, "FILE*");
	if (fh == NULL) {
		luaL_error (L, "%s: not a file", funcname);
		return 0;
	} else if (*fh == NULL) {
		luaL_error (L, "%s: closed file", funcname);
		return 0;
	} else
		return *fh;
}

// Assembly:
subq $0x28, %rsp
movq %rdi, 0x18(%rsp)
movl %esi, 0x14(%rsp)
movq %rdx, 0x8(%rsp)
movq 0x18(%rsp), %rdi
movl 0x14(%rsp), %esi
leaq 0x23e630(%rip), %rdx    # 0x59be22
callq 0x33a790
movq %rax, (%rsp)
cmpq $0x0, (%rsp)
jne 0x35d825
movq 0x18(%rsp), %rdi
movq 0x8(%rsp), %rdx
leaq 0x23f076(%rip), %rsi    # 0x59c889
movb $0x0, %al
callq 0x33a320
movq $0x0, 0x20(%rsp)
jmp 0x35d85e
movq (%rsp), %rax
cmpq $0x0, (%rax)
jne 0x35d852
movq 0x18(%rsp), %rdi
movq 0x8(%rsp), %rdx
leaq 0x23f058(%rip), %rsi    # 0x59c898
movb $0x0, %al
callq 0x33a320
movq $0x0, 0x20(%rsp)
jmp 0x35d85e
movq (%rsp), %rax
movq (%rax), %rax
movq %rax, 0x20(%rsp)
movq 0x20(%rsp), %rax
addq $0x28, %rsp
retq
nopl (%rax,%rax)