LLM4Binary/decompile-bench-makefile huggingface dataset:
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/gtlua/genome_node_lua.c
// Function: comment_node_lua_new
static int comment_node_lua_new(lua_State *L)
{
  GtGenomeNode **cn;
  const char *comment;
  gt_assert(L);
  /* get_check parameters */
  comment = luaL_checkstring(L, 1);
  /* construct object */
  cn = lua_newuserdata(L, sizeof (GtGenomeNode*));
  *cn = gt_comment_node_new(comment);
  gt_assert(*cn);
  luaL_getmetatable(L, GENOME_NODE_METATABLE);
  lua_setmetatable(L, -2);
  return 1;
}

// Assembly:
subq $0x18, %rsp
movq %rdi, 0x10(%rsp)
cmpq $0x0, 0x10(%rsp)
jne 0xad6f9
movq 0x106910(%rip), %rax    # 0x1b3fd8
movq (%rax), %rdi
leaq 0xb0994(%rip), %rsi     # 0x15e066
leaq 0xbd725(%rip), %rdx     # 0x16adfe
leaq 0xc6326(%rip), %rcx     # 0x173a06
leaq 0xc5f34(%rip), %r8      # 0x17361b
movl $0x7b, %r9d
movb $0x0, %al
callq 0xb890
callq 0xb2e0
jmp 0xad6fb
movq 0x10(%rsp), %rdi
movl $0x1, %esi
xorl %eax, %eax
movl %eax, %edx
callq 0x558e0
movq %rax, (%rsp)
movq 0x10(%rsp), %rdi
movl $0x8, %esi
callq 0x53950
movq %rax, 0x8(%rsp)
movq (%rsp), %rdi
callq 0xa5d40
movq %rax, %rcx
movq 0x8(%rsp), %rax
movq %rcx, (%rax)
movq 0x8(%rsp), %rax
cmpq $0x0, (%rax)
jne 0xad77d
movq 0x10688c(%rip), %rax    # 0x1b3fd8
movq (%rax), %rdi
leaq 0xb0910(%rip), %rsi     # 0x15e066
leaq 0xc62be(%rip), %rdx     # 0x173a1b
leaq 0xc62a2(%rip), %rcx     # 0x173a06
leaq 0xc5eb0(%rip), %r8      # 0x17361b
movl $0x81, %r9d
movb $0x0, %al
callq 0xb890
callq 0xb2e0
jmp 0xad77f
movq 0x10(%rsp), %rdi
movl $0xffffd8f0, %esi       # imm = 0xFFFFD8F0
leaq 0xc5ea7(%rip), %rdx     # 0x173637
callq 0x51640
movq 0x10(%rsp), %rdi
movl $0xfffffffe, %esi       # imm = 0xFFFFFFFE
callq 0x523f0
movl $0x1, %eax
addq $0x18, %rsp
retq
nop
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/gtlua/genome_node_lua.c
// Function: sequence_node_lua_new
static int sequence_node_lua_new(lua_State *L)
{
  GtGenomeNode **sn;
  GtStr *seq_str;
  const char *desc, *seq;
  gt_assert(L);
  /* get_check parameters */
  desc = luaL_checkstring(L, 1);
  seq = luaL_checkstring(L, 2);
  /* construct object */
  sn = lua_newuserdata(L, sizeof (GtGenomeNode*));
  seq_str = gt_str_new_cstr(seq);
  *sn = gt_sequence_node_new(desc, seq_str);
  gt_assert(*sn);
  gt_str_delete(seq_str);
  luaL_getmetatable(L, GENOME_NODE_METATABLE);
  lua_setmetatable(L, -2);
  return 1;
}

// Assembly:
subq $0x28, %rsp
movq %rdi, 0x20(%rsp)
cmpq $0x0, 0x20(%rsp)
jne 0xad7f9
movq 0x106810(%rip), %rax    # 0x1b3fd8
movq (%rax), %rdi
leaq 0xb0894(%rip), %rsi     # 0x15e066
leaq 0xbd625(%rip), %rdx     # 0x16adfe
leaq 0xc623f(%rip), %rcx     # 0x173a1f
leaq 0xc5e34(%rip), %r8      # 0x17361b
movl $0x8c, %r9d
movb $0x0, %al
callq 0xb890
callq 0xb2e0
jmp 0xad7fb
movq 0x20(%rsp), %rdi
movl $0x1, %esi
xorl %eax, %eax
movl %eax, %edx
callq 0x558e0
movq %rax, 0x8(%rsp)
movq 0x20(%rsp), %rdi
movl $0x2, %esi
xorl %eax, %eax
movl %eax, %edx
callq 0x558e0
movq %rax, (%rsp)
movq 0x20(%rsp), %rdi
movl $0x8, %esi
callq 0x53950
movq %rax, 0x18(%rsp)
movq (%rsp), %rdi
callq 0x18f70
movq %rax, 0x10(%rsp)
movq 0x8(%rsp), %rdi
movq 0x10(%rsp), %rsi
callq 0x36130
movq %rax, %rcx
movq 0x18(%rsp), %rax
movq %rcx, (%rax)
movq 0x18(%rsp), %rax
cmpq $0x0, (%rax)
jne 0xad8a9
movq 0x106760(%rip), %rax    # 0x1b3fd8
movq (%rax), %rdi
leaq 0xb07e4(%rip), %rsi     # 0x15e066
leaq 0xc61ac(%rip), %rdx     # 0x173a35
leaq 0xc618f(%rip), %rcx     # 0x173a1f
leaq 0xc5d84(%rip), %r8      # 0x17361b
movl $0x94, %r9d
movb $0x0, %al
callq 0xb890
callq 0xb2e0
jmp 0xad8ab
movq 0x10(%rsp), %rdi
callq 0x1afc0
movq 0x20(%rsp), %rdi
movl $0xffffd8f0, %esi       # imm = 0xFFFFD8F0
leaq 0xc5d71(%rip), %rdx     # 0x173637
callq 0x51640
movq 0x20(%rsp), %rdi
movl $0xfffffffe, %esi       # imm = 0xFFFFFFFE
callq 0x523f0
movl $0x1, %eax
addq $0x28, %rsp
retq
nopw %cs:(%rax,%rax)
nop
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/gtlua/gt_lua.c
// Function: gt_lua_open_lib
int gt_lua_open_lib(lua_State *L)
{
#ifndef NDEBUG
  int stack_size;
#endif
  gt_assert(L);
#ifndef NDEBUG
  stack_size = lua_gettop(L);
#endif
  gt_lua_open_core(L); /* open core */
  gt_lua_open_extended(L); /* open extended */
#ifndef WITHOUT_CAIRO
  gt_lua_open_annotationsketch(L); /* open annotationsketch */
#endif
  gt_assert(lua_gettop(L) == stack_size);
  return 1;
}

// Assembly:
subq $0x18, %rsp
movq %rdi, 0x10(%rsp)
cmpq $0x0, 0x10(%rsp)
jne 0xad939
movq 0x1066d0(%rip), %rax    # 0x1b3fd8
movq (%rax), %rdi
leaq 0xb0754(%rip), %rsi     # 0x15e066
leaq 0xbd4e5(%rip), %rdx     # 0x16adfe
leaq 0xc6119(%rip), %rcx     # 0x173a39
leaq 0xc6122(%rip), %r8      # 0x173a49
movl $0x20, %r9d
movb $0x0, %al
callq 0xb890
callq 0xb2e0
jmp 0xad93b
movq 0x10(%rsp), %rdi
callq 0x4f0e0
movl %eax, 0xc(%rsp)
movq 0x10(%rsp), %rdi
callq 0xad9c0
movq 0x10(%rsp), %rdi
callq 0xadac0
movq 0x10(%rsp), %rdi
callq 0xf3970
movq 0x10(%rsp), %rdi
callq 0x4f0e0
cmpl 0xc(%rsp), %eax
je 0xad9af
movq 0x10665a(%rip), %rax    # 0x1b3fd8
movq (%rax), %rdi
leaq 0xb06de(%rip), %rsi     # 0x15e066
leaq 0xc52a3(%rip), %rdx     # 0x172c32
leaq 0xc60a3(%rip), %rcx     # 0x173a39
leaq 0xc60ac(%rip), %r8      # 0x173a49
movl $0x29, %r9d
movb $0x0, %al
callq 0xb890
callq 0xb2e0
jmp 0xad9b1
movl $0x1, %eax
addq $0x18, %rsp
retq
nopl (%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/gtlua/gtcore_lua.c
// Function: gt_lua_open_core
int gt_lua_open_core(lua_State *L)
{
#ifndef NDEBUG
  int stack_size;
#endif
  gt_assert(L);
#ifndef NDEBUG
  stack_size = lua_gettop(L);
#endif
  gt_lua_open_alphabet(L);
  gt_lua_open_bittab(L);
  gt_lua_open_encseq(L);
  gt_lua_open_mathsupport(L);
  gt_lua_open_range(L);
  gt_lua_open_score_matrix(L);
  gt_lua_open_translate(L);
  gt_assert(lua_gettop(L) == stack_size);
  return 1;
}

// Assembly:
subq $0x18, %rsp
movq %rdi, 0x10(%rsp)
cmpq $0x0, 0x10(%rsp)
jne 0xada09
movq 0x106600(%rip), %rax    # 0x1b3fd8
movq (%rax), %rdi
leaq 0xb0684(%rip), %rsi     # 0x15e066
leaq 0xbd415(%rip), %rdx     # 0x16adfe
leaq 0xc606c(%rip), %rcx     # 0x173a5c
leaq 0xc6076(%rip), %r8      # 0x173a6d
movl $0x21, %r9d
movb $0x0, %al
callq 0xb890
callq 0xb2e0
jmp 0xada0b
movq 0x10(%rsp), %rdi
callq 0x4f0e0
movl %eax, 0xc(%rsp)
movq 0x10(%rsp), %rdi
callq 0xf3130
movq 0x10(%rsp), %rdi
callq 0xf3a50
movq 0x10(%rsp), %rdi
callq 0xf5070
movq 0x10(%rsp), %rdi
callq 0xadbe0
movq 0x10(%rsp), %rdi
callq 0xadd30
movq 0x10(%rsp), %rdi
callq 0xaf510
movq 0x10(%rsp), %rdi
callq 0xaff70
movq 0x10(%rsp), %rdi
callq 0x4f0e0
cmpl 0xc(%rsp), %eax
je 0xadaa7
movq 0x106562(%rip), %rax    # 0x1b3fd8
movq (%rax), %rdi
leaq 0xb05e6(%rip), %rsi     # 0x15e066
leaq 0xc51ab(%rip), %rdx     # 0x172c32
leaq 0xc5fce(%rip), %rcx     # 0x173a5c
leaq 0xc5fd8(%rip), %r8      # 0x173a6d
movl $0x2c, %r9d
movb $0x0, %al
callq 0xb890
callq 0xb2e0
jmp 0xadaa9
movl $0x1, %eax
addq $0x18, %rsp
retq
nopw %cs:(%rax,%rax)
nopl (%rax)
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/gtlua/gtext_lua.c
// Function: gt_lua_open_extended
int gt_lua_open_extended(lua_State *L)
{
#ifndef NDEBUG
  int stack_size;
#endif
  gt_assert(L);
#ifndef NDEBUG
  stack_size = lua_gettop(L);
#endif
  gt_lua_open_cds_stream(L);
  gt_lua_open_csa_stream(L);
  gt_lua_open_feature_index(L);
  gt_lua_open_feature_node_iterator(L);
  gt_lua_open_feature_stream(L);
  gt_lua_open_feature_visitor(L);
  gt_lua_open_genome_node(L);
  gt_lua_open_genome_stream(L);
  gt_lua_open_genome_visitor(L);
  gt_lua_open_region_mapping(L);
  gt_lua_open_stream_evaluator(L);
  gt_assert(lua_gettop(L) == stack_size);
  return 1;
}

// Assembly:
subq $0x18, %rsp
movq %rdi, 0x10(%rsp)
cmpq $0x0, 0x10(%rsp)
jne 0xadb09
movq 0x106500(%rip), %rax    # 0x1b3fd8
movq (%rax), %rdi
leaq 0xb0584(%rip), %rsi     # 0x15e066
leaq 0xbd315(%rip), %rdx     # 0x16adfe
leaq 0xc5f94(%rip), %rcx     # 0x173a84
leaq 0xc5fa2(%rip), %r8      # 0x173a99
movl $0x25, %r9d
movb $0x0, %al
callq 0xb890
callq 0xb2e0
jmp 0xadb0b
movq 0x10(%rsp), %rdi
callq 0x4f0e0
movl %eax, 0xc(%rsp)
movq 0x10(%rsp), %rdi
callq 0xf4590
movq 0x10(%rsp), %rdi
callq 0xf4790
movq 0x10(%rsp), %rdi
callq 0xf8640
movq 0x10(%rsp), %rdi
callq 0xf92d0
movq 0x10(%rsp), %rdi
callq 0xf9720
movq 0x10(%rsp), %rdi
callq 0xf98f0
movq 0x10(%rsp), %rdi
callq 0xaa840
movq 0x10(%rsp), %rdi
callq 0xf9d70
movq 0x10(%rsp), %rdi
callq 0xfaa50
movq 0x10(%rsp), %rdi
callq 0xae960
movq 0x10(%rsp), %rdi
callq 0xafbf0
movq 0x10(%rsp), %rdi
callq 0x4f0e0
cmpl 0xc(%rsp), %eax
je 0xadbcf
movq 0x10643a(%rip), %rax    # 0x1b3fd8
movq (%rax), %rdi
leaq 0xb04be(%rip), %rsi     # 0x15e066
leaq 0xc5083(%rip), %rdx     # 0x172c32
leaq 0xc5ece(%rip), %rcx     # 0x173a84
leaq 0xc5edc(%rip), %r8      # 0x173a99
movl $0x34, %r9d
movb $0x0, %al
callq 0xb890
callq 0xb2e0
jmp 0xadbd1
movl $0x1, %eax
addq $0x18, %rsp
retq
nopl (%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/gtlua/mathsupport_lua.c
// Function: gt_lua_open_mathsupport
int gt_lua_open_mathsupport(lua_State *L)
{
#ifndef NDEBUG
  int stack_size;
#endif
  gt_assert(L);
#ifndef NDEBUG
  stack_size = lua_gettop(L);
#endif
  luaL_register(L, "gt", mathsupport_lib_f);
  lua_pop(L, 1);
  gt_assert(lua_gettop(L) == stack_size);
  return 1;
}

// Assembly:
subq $0x18, %rsp
movq %rdi, 0x10(%rsp)
cmpq $0x0, 0x10(%rsp)
jne 0xadc29
movq 0x1063e0(%rip), %rax    # 0x1b3fd8
movq (%rax), %rdi
leaq 0xb0464(%rip), %rsi     # 0x15e066
leaq 0xbd1f5(%rip), %rdx     # 0x16adfe
leaq 0xc5e9f(%rip), %rcx     # 0x173aaf
leaq 0xc5eb0(%rip), %r8      # 0x173ac7
movl $0x28, %r9d
movb $0x0, %al
callq 0xb890
callq 0xb2e0
jmp 0xadc2b
movq 0x10(%rsp), %rdi
callq 0x4f0e0
movl %eax, 0xc(%rsp)
movq 0x10(%rsp), %rdi
leaq 0xd6032(%rip), %rsi     # 0x183c77
leaq 0x105374(%rip), %rdx    # 0x1b2fc0
callq 0x55e30
movq 0x10(%rsp), %rdi
movl $0xfffffffe, %esi       # imm = 0xFFFFFFFE
callq 0x4f100
movq 0x10(%rsp), %rdi
callq 0x4f0e0
cmpl 0xc(%rsp), %eax
je 0xadca8
movq 0x106361(%rip), %rax    # 0x1b3fd8
movq (%rax), %rdi
leaq 0xb03e5(%rip), %rsi     # 0x15e066
leaq 0xc4faa(%rip), %rdx     # 0x172c32
leaq 0xc5e20(%rip), %rcx     # 0x173aaf
leaq 0xc5e31(%rip), %r8      # 0x173ac7
movl $0x2e, %r9d
movb $0x0, %al
callq 0xb890
callq 0xb2e0
jmp 0xadcaa
movl $0x1, %eax
addq $0x18, %rsp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/gtlua/range_lua.c
// Function: gt_lua_open_range
int gt_lua_open_range(lua_State *L)
{
#ifndef NDEBUG
  int stack_size;
#endif
  gt_assert(L);
#ifndef NDEBUG
  stack_size = lua_gettop(L);
#endif
  luaL_newmetatable(L, RANGE_METATABLE);
  /* metatable.__index = metatable */
  lua_pushvalue(L, -1); /* duplicate the metatable */
  lua_setfield(L, -2, "__index");
  /* set its _tostring field */
  lua_pushstring(L, "__tostring");
  lua_pushcfunction(L, range_lua_tostring);
  lua_settable(L, -3);
  /* set its _eq field */
  lua_pushstring(L, "__eq");
  lua_pushcfunction(L, range_lua_eq);
  lua_settable(L, -3);
  /* register functions */
  luaL_register(L, NULL, range_lib_m);
  gt_lua_export_metatable(L, RANGE_METATABLE);
  luaL_register(L, "gt", range_lib_f);
  lua_pop(L, 1);
  gt_assert(lua_gettop(L) == stack_size);
  return 1;
}

// Assembly:
subq $0x18, %rsp
movq %rdi, 0x10(%rsp)
cmpq $0x0, 0x10(%rsp)
jne 0xadd79
movq 0x106290(%rip), %rax    # 0x1b3fd8
movq (%rax), %rdi
leaq 0xb0314(%rip), %rsi     # 0x15e066
leaq 0xbd0a5(%rip), %rdx     # 0x16adfe
leaq 0xc5d83(%rip), %rcx     # 0x173ae3
leaq 0xc5d8e(%rip), %r8      # 0x173af5
movl $0xef, %r9d
movb $0x0, %al
callq 0xb890
callq 0xb2e0
jmp 0xadd7b
movq 0x10(%rsp), %rdi
callq 0x4f0e0
movl %eax, 0xc(%rsp)
movq 0x10(%rsp), %rdi
leaq 0xc599c(%rip), %rsi     # 0x173731
callq 0x55930
movq 0x10(%rsp), %rdi
movl $0xffffffff, %esi       # imm = 0xFFFFFFFF
callq 0x4f790
movq 0x10(%rsp), %rdi
movl $0xfffffffe, %esi       # imm = 0xFFFFFFFE
leaq 0xbd8cd(%rip), %rdx     # 0x16b687
callq 0x51fc0
movq 0x10(%rsp), %rdi
leaq 0xbdc4d(%rip), %rsi     # 0x16ba18
callq 0x50970
movq 0x10(%rsp), %rdi
leaq 0xf4(%rip), %rsi        # 0xaded0
xorl %edx, %edx
callq 0x51120
movq 0x10(%rsp), %rdi
movl $0xfffffffd, %esi       # imm = 0xFFFFFFFD
callq 0x51d10
movq 0x10(%rsp), %rdi
leaq 0xbd8a3(%rip), %rsi     # 0x16b6a1
callq 0x50970
movq 0x10(%rsp), %rdi
leaq 0x141(%rip), %rsi       # 0xadf50
xorl %edx, %edx
callq 0x51120
movq 0x10(%rsp), %rdi
movl $0xfffffffd, %esi       # imm = 0xFFFFFFFD
callq 0x51d10
movq 0x10(%rsp), %rdi
xorl %eax, %eax
movl %eax, %esi
leaq 0x1051ab(%rip), %rdx    # 0x1b2fe0
callq 0x55e30
movq 0x10(%rsp), %rdi
leaq 0xc58eb(%rip), %rsi     # 0x173731
callq 0xe81d0
movq 0x10(%rsp), %rdi
leaq 0xd5e20(%rip), %rsi     # 0x183c77
leaq 0x105212(%rip), %rdx    # 0x1b3070
callq 0x55e30
movq 0x10(%rsp), %rdi
movl $0xfffffffe, %esi       # imm = 0xFFFFFFFE
callq 0x4f100
movq 0x10(%rsp), %rdi
callq 0x4f0e0
cmpl 0xc(%rsp), %eax
je 0xadeba
movq 0x10614f(%rip), %rax    # 0x1b3fd8
movq (%rax), %rdi
leaq 0xb01d3(%rip), %rsi     # 0x15e066
leaq 0xc4d98(%rip), %rdx     # 0x172c32
leaq 0xc5c42(%rip), %rcx     # 0x173ae3
leaq 0xc5c4d(%rip), %r8      # 0x173af5
movl $0x104, %r9d            # imm = 0x104
movb $0x0, %al
callq 0xb890
callq 0xb2e0
jmp 0xadebc
movl $0x1, %eax
addq $0x18, %rsp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/gtlua/range_lua.c
// Function: range_lua_tostring
static int range_lua_tostring(lua_State *L)
{
  GtRange *range;
  char buf[BUFSIZ];
  range = check_range(L, 1);
  (void) snprintf(buf, BUFSIZ, GT_WU "-" GT_WU, range->start, range->end);
  lua_pushstring(L, buf);
  return 1;
}

// Assembly:
subq $0x2018, %rsp           # imm = 0x2018
movq %rdi, 0x2010(%rsp)
movq 0x2010(%rsp), %rdi
movl $0x1, %esi
leaq 0xc583e(%rip), %rdx     # 0x173731
callq 0x559c0
movq %rax, 0x2008(%rsp)
movq %rsp, %rdi
movq 0x2008(%rsp), %rax
movq (%rax), %rcx
movq 0x2008(%rsp), %rax
movq 0x8(%rax), %r8
movl $0x2000, %esi           # imm = 0x2000
leaq 0xc579c(%rip), %rdx     # 0x1736c2
movb $0x0, %al
callq 0xb9d0
movq 0x2010(%rsp), %rdi
movq %rsp, %rsi
callq 0x50970
movl $0x1, %eax
addq $0x2018, %rsp           # imm = 0x2018
retq
nopw (%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/gtlua/range_lua.c
// Function: range_lua_eq
static int range_lua_eq(lua_State *L)
{
  GtRange *range_a, *range_b;
  bool ret = false;
  range_a = check_range(L, 1);
  range_b = check_range(L, 2);
  if (gt_range_compare(range_a, range_b) == 0)
    ret = true;
  lua_pushboolean(L, ret);
  return 1;
}

// Assembly:
subq $0x28, %rsp
movq %rdi, 0x20(%rsp)
movb $0x0, 0xf(%rsp)
movq 0x20(%rsp), %rdi
movl $0x1, %esi
leaq 0xc57c2(%rip), %rdx     # 0x173731
callq 0x559c0
movq %rax, 0x18(%rsp)
movq 0x20(%rsp), %rdi
movl $0x2, %esi
leaq 0xc57a7(%rip), %rdx     # 0x173731
callq 0x559c0
movq %rax, 0x10(%rsp)
movq 0x18(%rsp), %rdi
movq 0x10(%rsp), %rsi
callq 0x93850
cmpl $0x0, %eax
jne 0xadfad
movb $0x1, 0xf(%rsp)
movq 0x20(%rsp), %rdi
movb 0xf(%rsp), %al
andb $0x1, %al
movzbl %al, %esi
callq 0x51340
movl $0x1, %eax
addq $0x28, %rsp
retq
nopw (%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/gtlua/range_lua.c
// Function: gt_lua_range_push
int gt_lua_range_push(lua_State *L, GtRange inrange)
{
  GtRange *outrange;
  gt_assert(L);
  outrange = lua_newuserdata(L, sizeof (GtRange));
  *outrange = inrange;
  luaL_getmetatable(L, RANGE_METATABLE);
  lua_setmetatable(L, -2);
  return 1;
}

// Assembly:
subq $0x28, %rsp
movq %rsi, 0x18(%rsp)
movq %rdx, 0x20(%rsp)
movq %rdi, 0x10(%rsp)
cmpq $0x0, 0x10(%rsp)
jne 0xae023
movq 0x105fe6(%rip), %rax    # 0x1b3fd8
movq (%rax), %rdi
leaq 0xb006a(%rip), %rsi     # 0x15e066
leaq 0xbcdfb(%rip), %rdx     # 0x16adfe
leaq 0xc5b01(%rip), %rcx     # 0x173b0b
leaq 0xc5ae4(%rip), %r8      # 0x173af5
movl $0x10b, %r9d            # imm = 0x10B
movb $0x0, %al
callq 0xb890
callq 0xb2e0
jmp 0xae025
movq 0x10(%rsp), %rdi
movl $0x10, %esi
callq 0x53950
movq %rax, 0x8(%rsp)
movq 0x8(%rsp), %rax
movq 0x18(%rsp), %rcx
movq %rcx, (%rax)
movq 0x20(%rsp), %rcx
movq %rcx, 0x8(%rax)
movq 0x10(%rsp), %rdi
movl $0xffffd8f0, %esi       # imm = 0xFFFFD8F0
leaq 0xc56d1(%rip), %rdx     # 0x173731
callq 0x51640
movq 0x10(%rsp), %rdi
movl $0xfffffffe, %esi       # imm = 0xFFFFFFFE
callq 0x523f0
movl $0x1, %eax
addq $0x28, %rsp
retq
nop
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/gtlua/range_lua.c
// Function: range_lua_overlap
static int range_lua_overlap(lua_State *L)
{
  GtRange *range_a, *range_b;
  range_a = check_range(L, 1);
  range_b = check_range(L, 2);
  lua_pushboolean(L, gt_range_overlap(range_a, range_b));
  return 1;
}

// Assembly:
subq $0x28, %rsp
movq %rdi, 0x20(%rsp)
movq 0x20(%rsp), %rdi
movl $0x1, %esi
leaq 0xc5607(%rip), %rdx     # 0x173731
callq 0x559c0
movq %rax, 0x18(%rsp)
movq 0x20(%rsp), %rdi
movl $0x2, %esi
leaq 0xc55ec(%rip), %rdx     # 0x173731
callq 0x559c0
movq %rax, 0x10(%rsp)
movq 0x20(%rsp), %rax
movq %rax, 0x8(%rsp)
movq 0x18(%rsp), %rdi
movq 0x10(%rsp), %rsi
callq 0x93c40
movq 0x8(%rsp), %rdi
andb $0x1, %al
movzbl %al, %esi
callq 0x51340
movl $0x1, %eax
addq $0x28, %rsp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/gtlua/range_lua.c
// Function: range_lua_overlap_delta
static int range_lua_overlap_delta(lua_State *L)
{
  GtRange *range_a, *range_b;
  GtUword delta;
  range_a = check_range(L, 1);
  range_b = check_range(L, 2);
  delta = luaL_checklong(L, 3);
  lua_pushboolean(L, gt_range_overlap_delta(range_a, range_b, delta));
  return 1;
}

// Assembly:
subq $0x28, %rsp
movq %rdi, 0x20(%rsp)
movq 0x20(%rsp), %rdi
movl $0x1, %esi
leaq 0xc5587(%rip), %rdx     # 0x173731
callq 0x559c0
movq %rax, 0x18(%rsp)
movq 0x20(%rsp), %rdi
movl $0x2, %esi
leaq 0xc556c(%rip), %rdx     # 0x173731
callq 0x559c0
movq %rax, 0x10(%rsp)
movq 0x20(%rsp), %rdi
movl $0x3, %esi
callq 0x55c40
movq %rax, 0x8(%rsp)
movq 0x20(%rsp), %rax
movq %rax, (%rsp)
movq 0x18(%rsp), %rdi
movq 0x10(%rsp), %rsi
movq 0x8(%rsp), %rdx
callq 0x93cf0
movq (%rsp), %rdi
andb $0x1, %al
movzbl %al, %esi
callq 0x51340
movl $0x1, %eax
addq $0x28, %rsp
retq
nopl (%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/gtlua/range_lua.c
// Function: range_lua_join
static int range_lua_join(lua_State *L)
{
  GtRange *final_range, tmp_rng, *range_a, *range_b;
  range_a = check_range(L, 1);
  range_b = check_range(L, 2);
  final_range = lua_newuserdata(L, sizeof (GtRange));
  tmp_rng = gt_range_join(range_a, range_b);
  final_range->start = tmp_rng.start;
  final_range->end   = tmp_rng.end;
  luaL_getmetatable(L, RANGE_METATABLE);
  lua_setmetatable(L, -2);
  return 1;
}

// Assembly:
subq $0x48, %rsp
movq %rdi, 0x40(%rsp)
movq 0x40(%rsp), %rdi
movl $0x1, %esi
leaq 0xc54a7(%rip), %rdx     # 0x173731
callq 0x559c0
movq %rax, 0x20(%rsp)
movq 0x40(%rsp), %rdi
movl $0x2, %esi
leaq 0xc548c(%rip), %rdx     # 0x173731
callq 0x559c0
movq %rax, 0x18(%rsp)
movq 0x40(%rsp), %rdi
movl $0x10, %esi
callq 0x53950
movq %rax, 0x38(%rsp)
movq 0x20(%rsp), %rdi
movq 0x18(%rsp), %rsi
callq 0x93fe0
movq %rax, 0x8(%rsp)
movq %rdx, 0x10(%rsp)
movq 0x8(%rsp), %rax
movq %rax, 0x28(%rsp)
movq 0x10(%rsp), %rax
movq %rax, 0x30(%rsp)
movq 0x28(%rsp), %rcx
movq 0x38(%rsp), %rax
movq %rcx, (%rax)
movq 0x30(%rsp), %rcx
movq 0x38(%rsp), %rax
movq %rcx, 0x8(%rax)
movq 0x40(%rsp), %rdi
movl $0xffffd8f0, %esi       # imm = 0xFFFFD8F0
leaq 0xc5415(%rip), %rdx     # 0x173731
callq 0x51640
movq 0x40(%rsp), %rdi
movl $0xfffffffe, %esi       # imm = 0xFFFFFFFE
callq 0x523f0
movl $0x1, %eax
addq $0x48, %rsp
retq
nopw (%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/gtlua/range_lua.c
// Function: range_lua_contains
static int range_lua_contains(lua_State *L)
{
  GtRange *range_a, *range_b;
  range_a = check_range(L, 1);
  range_b = check_range(L, 2);
  lua_pushboolean(L, gt_range_contains(range_a, range_b));
  return 1;
}

// Assembly:
subq $0x28, %rsp
movq %rdi, 0x20(%rsp)
movq 0x20(%rsp), %rdi
movl $0x1, %esi
leaq 0xc53d7(%rip), %rdx     # 0x173731
callq 0x559c0
movq %rax, 0x18(%rsp)
movq 0x20(%rsp), %rdi
movl $0x2, %esi
leaq 0xc53bc(%rip), %rdx     # 0x173731
callq 0x559c0
movq %rax, 0x10(%rsp)
movq 0x20(%rsp), %rax
movq %rax, 0x8(%rsp)
movq 0x18(%rsp), %rdi
movq 0x10(%rsp), %rsi
callq 0x93ea0
movq 0x8(%rsp), %rdi
andb $0x1, %al
movzbl %al, %esi
callq 0x51340
movl $0x1, %eax
addq $0x28, %rsp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/gtlua/range_lua.c
// Function: range_lua_within
static int range_lua_within(lua_State *L)
{
  GtRange *range;
  long point;
  range = check_range(L, 1);
  point = luaL_checklong(L, 2);
  luaL_argcheck(L, point > 0, 2, "must be > 0");
  lua_pushboolean(L, gt_range_within(range, point));
  return 1;
}

// Assembly:
subq $0x28, %rsp
movq %rdi, 0x20(%rsp)
movq 0x20(%rsp), %rdi
movl $0x1, %esi
leaq 0xc5357(%rip), %rdx     # 0x173731
callq 0x559c0
movq %rax, 0x18(%rsp)
movq 0x20(%rsp), %rdi
movl $0x2, %esi
callq 0x55c40
movq %rax, 0x10(%rsp)
movb $0x1, %al
cmpq $0x0, 0x10(%rsp)
movb %al, 0xf(%rsp)
jg 0xae426
movq 0x20(%rsp), %rdi
movl $0x2, %esi
leaq 0xc556f(%rip), %rdx     # 0x173986
callq 0x55420
cmpl $0x0, %eax
setne %al
movb %al, 0xf(%rsp)
movb 0xf(%rsp), %al
movq 0x20(%rsp), %rax
movq %rax, (%rsp)
movq 0x18(%rsp), %rdi
movq 0x10(%rsp), %rsi
callq 0x93f50
movq (%rsp), %rdi
andb $0x1, %al
movzbl %al, %esi
callq 0x51340
movl $0x1, %eax
addq $0x28, %rsp
retq
nopw (%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/gtlua/range_lua.c
// Function: range_lua_new
static int range_lua_new(lua_State *L)
{
  GtUword startpos, endpos;
  GtRange *range;
  startpos = luaL_checklong(L, 1);
  endpos   = luaL_checklong(L, 2);
  luaL_argcheck(L, startpos > 0, 1, "must be > 0");
  luaL_argcheck(L, endpos > 0, 2, "must be > 0");
  luaL_argcheck(L, startpos <= endpos, 1, "must be <= endpos");
  range = lua_newuserdata(L, sizeof (GtRange));
  range->start = startpos;
  range->end   = endpos;
  luaL_getmetatable(L, RANGE_METATABLE);
  lua_setmetatable(L, -2);
  return 1;
}

// Assembly:
subq $0x28, %rsp
movq %rdi, 0x20(%rsp)
movq 0x20(%rsp), %rdi
movl $0x1, %esi
callq 0x55c40
movq %rax, 0x18(%rsp)
movq 0x20(%rsp), %rdi
movl $0x2, %esi
callq 0x55c40
movq %rax, 0x10(%rsp)
movb $0x1, %al
cmpq $0x0, 0x18(%rsp)
movb %al, 0x7(%rsp)
ja 0xae4bf
movq 0x20(%rsp), %rdi
movl $0x1, %esi
leaq 0xc54d6(%rip), %rdx     # 0x173986
callq 0x55420
cmpl $0x0, %eax
setne %al
movb %al, 0x7(%rsp)
movb 0x7(%rsp), %al
movb $0x1, %al
cmpq $0x0, 0x10(%rsp)
movb %al, 0x6(%rsp)
ja 0xae4f1
movq 0x20(%rsp), %rdi
movl $0x2, %esi
leaq 0xc54a4(%rip), %rdx     # 0x173986
callq 0x55420
cmpl $0x0, %eax
setne %al
movb %al, 0x6(%rsp)
movb 0x6(%rsp), %al
movq 0x18(%rsp), %rcx
movb $0x1, %al
cmpq 0x10(%rsp), %rcx
movb %al, 0x5(%rsp)
jbe 0xae527
movq 0x20(%rsp), %rdi
movl $0x1, %esi
leaq 0xc547a(%rip), %rdx     # 0x173992
callq 0x55420
cmpl $0x0, %eax
setne %al
movb %al, 0x5(%rsp)
movb 0x5(%rsp), %al
movq 0x20(%rsp), %rdi
movl $0x10, %esi
callq 0x53950
movq %rax, 0x8(%rsp)
movq 0x18(%rsp), %rcx
movq 0x8(%rsp), %rax
movq %rcx, (%rax)
movq 0x10(%rsp), %rcx
movq 0x8(%rsp), %rax
movq %rcx, 0x8(%rax)
movq 0x20(%rsp), %rdi
movl $0xffffd8f0, %esi       # imm = 0xFFFFD8F0
leaq 0xc51c6(%rip), %rdx     # 0x173731
callq 0x51640
movq 0x20(%rsp), %rdi
movl $0xfffffffe, %esi       # imm = 0xFFFFFFFE
callq 0x523f0
movl $0x1, %eax
addq $0x28, %rsp
retq
nopl (%rax)
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/gtlua/range_lua.c
// Function: ranges_lua_sort
static int ranges_lua_sort(lua_State *L)
{
  GtArray *ranges;
  ranges = range_table_to_array(L);
  gt_ranges_sort(ranges);
  push_range_array_as_table(L, ranges);
  gt_array_delete(ranges);
  return 1;
}

// Assembly:
subq $0x18, %rsp
movq %rdi, 0x10(%rsp)
movq 0x10(%rsp), %rdi
callq 0xae630
movq %rax, 0x8(%rsp)
movq 0x8(%rsp), %rdi
callq 0x954f0
movq 0x10(%rsp), %rdi
movq 0x8(%rsp), %rsi
callq 0xae7d0
movq 0x8(%rsp), %rdi
callq 0x770a0
movl $0x1, %eax
addq $0x18, %rsp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/gtlua/range_lua.c
// Function: ranges_lua_are_sorted
static int ranges_lua_are_sorted(lua_State *L)
{
  GtArray *ranges;
  bool are_sorted;
  ranges = range_table_to_array(L);
  are_sorted = gt_ranges_are_sorted(ranges);
  gt_array_delete(ranges);
  lua_pushboolean(L, are_sorted);
  return 1;
}

// Assembly:
subq $0x18, %rsp
movq %rdi, 0x10(%rsp)
movq 0x10(%rsp), %rdi
callq 0xae630
movq %rax, 0x8(%rsp)
movq 0x8(%rsp), %rdi
callq 0x95610
andb $0x1, %al
movb %al, 0x7(%rsp)
movq 0x8(%rsp), %rdi
callq 0x770a0
movq 0x10(%rsp), %rdi
movb 0x7(%rsp), %al
andb $0x1, %al
movzbl %al, %esi
callq 0x51340
movl $0x1, %eax
addq $0x18, %rsp
retq
nop
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/gtlua/range_lua.c
// Function: range_table_to_array
static GtArray* range_table_to_array(lua_State *L)
{
  lua_Integer i = 1;
  GtArray *ranges;
  GtRange *range;
  GT_UNUSED const char *msg;
  bool error;
  /* make sure we got a table as first argument */
  luaL_checktype(L, 1, LUA_TTABLE);
  /* traverse table and save the ranges */
  ranges = gt_array_new(sizeof (GtRange));
  lua_pushinteger(L, i);
  lua_gettable(L, 1);
  while (!lua_isnil(L, -1)) {
    error = false;
    range = lua_touserdata(L, -1);
    if (range && lua_getmetatable(L, -1)) {
      lua_getfield(L, LUA_REGISTRYINDEX, RANGE_METATABLE);
      if (lua_rawequal(L, -1, -2)) {
        lua_pop(L, 2); /* remove both metatables */
        gt_array_add(ranges, *range);
      }
      else
        error = true;
    }
    else
      error = true;
    if (error) {
      /* we have a non range in the table */
      msg = lua_pushfstring(L, "expected %s as type of table entry %d",
                            RANGE_METATABLE, i);
      gt_array_delete(ranges);
      lua_error(L);
    }
    i++;
    lua_pop(L, 1); /* pop last result */
    lua_pushinteger(L, i);
    lua_gettable(L, 1);
  }
  return ranges;
}

// Assembly:
subq $0x38, %rsp
movq %rdi, 0x30(%rsp)
movq $0x1, 0x28(%rsp)
movq 0x30(%rsp), %rdi
movl $0x1, %esi
movl $0x5, %edx
callq 0x55ab0
movl $0x10, %edi
callq 0x75ab0
movq %rax, 0x20(%rsp)
movq 0x30(%rsp), %rdi
movq 0x28(%rsp), %rsi
callq 0x50720
movq 0x30(%rsp), %rdi
movl $0x1, %esi
callq 0x51440
movq 0x30(%rsp), %rdi
movl $0xffffffff, %esi       # imm = 0xFFFFFFFF
callq 0x4f800
cmpl $0x0, %eax
sete %al
xorb $-0x1, %al
testb $0x1, %al
jne 0xae6a3
jmp 0xae7b7
movb $0x0, 0xf(%rsp)
movq 0x30(%rsp), %rdi
movl $0xffffffff, %esi       # imm = 0xFFFFFFFF
callq 0x50530
movq %rax, 0x18(%rsp)
cmpq $0x0, 0x18(%rsp)
je 0xae733
movq 0x30(%rsp), %rdi
movl $0xffffffff, %esi       # imm = 0xFFFFFFFF
callq 0x51b00
cmpl $0x0, %eax
je 0xae733
movq 0x30(%rsp), %rdi
movl $0xffffd8f0, %esi       # imm = 0xFFFFD8F0
leaq 0xc5048(%rip), %rdx     # 0x173731
callq 0x51640
movq 0x30(%rsp), %rdi
movl $0xffffffff, %esi       # imm = 0xFFFFFFFF
movl $0xfffffffe, %edx       # imm = 0xFFFFFFFE
callq 0x4fa80
cmpl $0x0, %eax
je 0xae72c
movq 0x30(%rsp), %rdi
movl $0xfffffffd, %esi       # imm = 0xFFFFFFFD
callq 0x4f100
movq 0x20(%rsp), %rdi
movq 0x18(%rsp), %rsi
movl $0x10, %edx
callq 0x76220
jmp 0xae731
movb $0x1, 0xf(%rsp)
jmp 0xae738
movb $0x1, 0xf(%rsp)
testb $0x1, 0xf(%rsp)
je 0xae777
movq 0x30(%rsp), %rdi
movq 0x28(%rsp), %rcx
leaq 0xc53e9(%rip), %rsi     # 0x173b39
leaq 0xc4fda(%rip), %rdx     # 0x173731
movb $0x0, %al
callq 0x51020
movq %rax, 0x10(%rsp)
movq 0x20(%rsp), %rdi
callq 0x770a0
movq 0x30(%rsp), %rdi
callq 0x530d0
movq 0x28(%rsp), %rax
addq $0x1, %rax
movq %rax, 0x28(%rsp)
movq 0x30(%rsp), %rdi
movl $0xfffffffe, %esi       # imm = 0xFFFFFFFE
callq 0x4f100
movq 0x30(%rsp), %rdi
movq 0x28(%rsp), %rsi
callq 0x50720
movq 0x30(%rsp), %rdi
movl $0x1, %esi
callq 0x51440
jmp 0xae683
movq 0x20(%rsp), %rax
addq $0x38, %rsp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/gtlua/range_lua.c
// Function: push_range_array_as_table
static void push_range_array_as_table(lua_State *L, GtArray *ranges)
{
  GtUword i;
  if (ranges && gt_array_size(ranges)) {
    lua_newtable(L);
    for (i = 0; i < gt_array_size(ranges); i++) {
      lua_pushinteger(L, i+1); /* in Lua we index from 1 on */
      gt_lua_range_push(L, *(GtRange*) gt_array_get(ranges, i));
      lua_rawset(L, -3);
    }
  }
  else
    lua_pushnil(L);
}

// Assembly:
subq $0x28, %rsp
movq %rdi, 0x20(%rsp)
movq %rsi, 0x18(%rsp)
cmpq $0x0, 0x18(%rsp)
je 0xae892
movq 0x18(%rsp), %rdi
callq 0x76490
cmpq $0x0, %rax
je 0xae892
movq 0x20(%rsp), %rdi
xorl %edx, %edx
movl %edx, %esi
callq 0x519c0
movq $0x0, 0x10(%rsp)
movq 0x10(%rsp), %rax
movq %rax, 0x8(%rsp)
movq 0x18(%rsp), %rdi
callq 0x76490
movq %rax, %rcx
movq 0x8(%rsp), %rax
cmpq %rcx, %rax
jae 0xae890
movq 0x20(%rsp), %rdi
movq 0x10(%rsp), %rsi
addq $0x1, %rsi
callq 0x50720
movq 0x20(%rsp), %rax
movq %rax, (%rsp)
movq 0x18(%rsp), %rdi
movq 0x10(%rsp), %rsi
callq 0x75c80
movq (%rsp), %rdi
movq (%rax), %rsi
movq 0x8(%rax), %rdx
callq 0xadfd0
movq 0x20(%rsp), %rdi
movl $0xfffffffd, %esi       # imm = 0xFFFFFFFD
callq 0x52070
movq 0x10(%rsp), %rax
addq $0x1, %rax
movq %rax, 0x10(%rsp)
jmp 0xae815
jmp 0xae89c
movq 0x20(%rsp), %rdi
callq 0x506a0
addq $0x28, %rsp
retq
nopw %cs:(%rax,%rax)
nopl (%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/gtlua/region_mapping_lua.c
// Function: gt_lua_region_mapping_push
void gt_lua_region_mapping_push(lua_State *L, GtRegionMapping *rm)
{
  GtRegionMapping **rm_lua;
  gt_assert(L && rm);
  rm_lua = lua_newuserdata(L, sizeof (GtRegionMapping**));
  *rm_lua = rm;
  luaL_getmetatable(L, REGION_MAPPING_METATABLE);
  lua_setmetatable(L, -2);
}

// Assembly:
subq $0x18, %rsp
movq %rdi, 0x10(%rsp)
movq %rsi, 0x8(%rsp)
cmpq $0x0, 0x10(%rsp)
je 0xae8ce
cmpq $0x0, 0x8(%rsp)
jne 0xae906
movq 0x105703(%rip), %rax    # 0x1b3fd8
movq (%rax), %rdi
leaq 0xaf787(%rip), %rsi     # 0x15e066
leaq 0xc5279(%rip), %rdx     # 0x173b5f
leaq 0xc527a(%rip), %rcx     # 0x173b67
leaq 0xc528e(%rip), %r8      # 0x173b82
movl $0xcc, %r9d
movb $0x0, %al
callq 0xb890
callq 0xb2e0
jmp 0xae908
movq 0x10(%rsp), %rdi
movl $0x8, %esi
callq 0x53950
movq %rax, (%rsp)
movq 0x8(%rsp), %rcx
movq (%rsp), %rax
movq %rcx, (%rax)
movq 0x10(%rsp), %rdi
movl $0xffffd8f0, %esi       # imm = 0xFFFFD8F0
leaq 0xc4fbc(%rip), %rdx     # 0x1738f4
callq 0x51640
movq 0x10(%rsp), %rdi
movl $0xfffffffe, %esi       # imm = 0xFFFFFFFE
callq 0x523f0
addq $0x18, %rsp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/gtlua/region_mapping_lua.c
// Function: gt_lua_open_region_mapping
int gt_lua_open_region_mapping(lua_State *L)
{
#ifndef NDEBUG
  int stack_size;
#endif
  gt_assert(L);
#ifndef NDEBUG
  stack_size = lua_gettop(L);
#endif
  luaL_newmetatable(L, REGION_MAPPING_METATABLE);
  /* metatable.__index = metatable */
  lua_pushvalue(L, -1); /* duplicate the metatable */
  lua_setfield(L, -2, "__index");
  /* set its _gc field */
  lua_pushstring(L, "__gc");
  lua_pushcfunction(L, region_mapping_lua_delete);
  lua_settable(L, -3);
  /* register functions */
  luaL_register(L, NULL, region_mapping_lib_m);
  lua_pop(L, 1);
  luaL_register(L, "gt", region_mapping_lib_f);
  lua_pop(L, 1);
  gt_assert(lua_gettop(L) == stack_size);
  return 1;
}

// Assembly:
subq $0x18, %rsp
movq %rdi, 0x10(%rsp)
cmpq $0x0, 0x10(%rsp)
jne 0xae9a9
movq 0x105660(%rip), %rax    # 0x1b3fd8
movq (%rax), %rdi
leaq 0xaf6e4(%rip), %rsi     # 0x15e066
leaq 0xbc475(%rip), %rdx     # 0x16adfe
leaq 0xc5211(%rip), %rcx     # 0x173ba1
leaq 0xc51eb(%rip), %r8      # 0x173b82
movl $0xeb, %r9d
movb $0x0, %al
callq 0xb890
callq 0xb2e0
jmp 0xae9ab
movq 0x10(%rsp), %rdi
callq 0x4f0e0
movl %eax, 0xc(%rsp)
movq 0x10(%rsp), %rdi
leaq 0xc4f2f(%rip), %rsi     # 0x1738f4
callq 0x55930
movq 0x10(%rsp), %rdi
movl $0xffffffff, %esi       # imm = 0xFFFFFFFF
callq 0x4f790
movq 0x10(%rsp), %rdi
movl $0xfffffffe, %esi       # imm = 0xFFFFFFFE
leaq 0xbcc9d(%rip), %rdx     # 0x16b687
callq 0x51fc0
movq 0x10(%rsp), %rdi
leaq 0xbc5e4(%rip), %rsi     # 0x16afdf
callq 0x50970
movq 0x10(%rsp), %rdi
leaq 0xc4(%rip), %rsi        # 0xaead0
xorl %edx, %edx
callq 0x51120
movq 0x10(%rsp), %rdi
movl $0xfffffffd, %esi       # imm = 0xFFFFFFFD
callq 0x51d10
movq 0x10(%rsp), %rdi
xorl %eax, %eax
movl %eax, %esi
leaq 0x10467e(%rip), %rdx    # 0x1b30b0
callq 0x55e30
movq 0x10(%rsp), %rdi
movl $0xfffffffe, %esi       # imm = 0xFFFFFFFE
callq 0x4f100
movq 0x10(%rsp), %rdi
leaq 0xd5225(%rip), %rsi     # 0x183c77
leaq 0x1046a7(%rip), %rdx    # 0x1b3100
callq 0x55e30
movq 0x10(%rsp), %rdi
movl $0xfffffffe, %esi       # imm = 0xFFFFFFFE
callq 0x4f100
movq 0x10(%rsp), %rdi
callq 0x4f0e0
cmpl 0xc(%rsp), %eax
je 0xaeab5
movq 0x105554(%rip), %rax    # 0x1b3fd8
movq (%rax), %rdi
leaq 0xaf5d8(%rip), %rsi     # 0x15e066
leaq 0xc419d(%rip), %rdx     # 0x172c32
leaq 0xc5105(%rip), %rcx     # 0x173ba1
leaq 0xc50df(%rip), %r8      # 0x173b82
movl $0xfc, %r9d
movb $0x0, %al
callq 0xb890
callq 0xb2e0
jmp 0xaeab7
movl $0x1, %eax
addq $0x18, %rsp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/gtlua/region_mapping_lua.c
// Function: region_mapping_lua_get_sequence_length
static int region_mapping_lua_get_sequence_length(lua_State *L)
{
  GtRegionMapping **region_mapping;
  GtError *err;
  GtStr *seqidstr;
  GtUword length;
  const char *seqid;
  int had_err = 0;
  gt_assert(L);
  region_mapping = check_region_mapping(L, 1);
  seqid = luaL_checkstring(L, 2);
  seqidstr = gt_str_new_cstr(seqid);
  err = gt_error_new();
  had_err = gt_region_mapping_get_sequence_length(*region_mapping, &length,
                                                  seqidstr, err);
  gt_str_delete(seqidstr);
  if (had_err)
    return gt_lua_error(L, err);
  gt_error_delete(err);
  lua_pushnumber(L, length);
  return 1;
}

// Assembly:
subq $0x48, %rsp
movq %rdi, 0x38(%rsp)
movl $0x0, 0xc(%rsp)
cmpq $0x0, 0x38(%rsp)
jne 0xaeb61
movq 0x1054a8(%rip), %rax    # 0x1b3fd8
movq (%rax), %rdi
leaq 0xaf52c(%rip), %rsi     # 0x15e066
leaq 0xbc2bd(%rip), %rdx     # 0x16adfe
leaq 0xc5074(%rip), %rcx     # 0x173bbc
leaq 0xc5033(%rip), %r8      # 0x173b82
movl $0x62, %r9d
movb $0x0, %al
callq 0xb890
callq 0xb2e0
jmp 0xaeb63
movq 0x38(%rsp), %rdi
movl $0x1, %esi
leaq 0xc4d80(%rip), %rdx     # 0x1738f4
callq 0x559c0
movq %rax, 0x30(%rsp)
movq 0x38(%rsp), %rdi
movl $0x2, %esi
xorl %eax, %eax
movl %eax, %edx
callq 0x558e0
movq %rax, 0x10(%rsp)
movq 0x10(%rsp), %rdi
callq 0x18f70
movq %rax, 0x20(%rsp)
callq 0xc0b0
movq %rax, 0x28(%rsp)
movq 0x30(%rsp), %rax
movq (%rax), %rdi
movq 0x20(%rsp), %rdx
movq 0x28(%rsp), %rcx
leaq 0x18(%rsp), %rsi
callq 0xe9cb0
movl %eax, 0xc(%rsp)
movq 0x20(%rsp), %rdi
callq 0x1afc0
cmpl $0x0, 0xc(%rsp)
je 0xaebf5
movq 0x38(%rsp), %rdi
movq 0x28(%rsp), %rsi
callq 0xe84e0
movl %eax, 0x44(%rsp)
jmp 0xaec39
movq 0x28(%rsp), %rdi
callq 0xc490
movq 0x38(%rsp), %rdi
movaps 0xaf875(%rip), %xmm1    # 0x15e480
movq 0x18(%rsp), %xmm0
punpckldq %xmm1, %xmm0    # xmm0 = xmm0[0],xmm1[0],xmm0[1],xmm1[1]
movapd 0xaf873(%rip), %xmm1    # 0x15e490
subpd %xmm1, %xmm0
movaps %xmm0, %xmm1
unpckhpd %xmm0, %xmm0            # xmm0 = xmm0[1,1]
addsd %xmm1, %xmm0
callq 0x506d0
movl $0x1, 0x44(%rsp)
movl 0x44(%rsp), %eax
addq $0x48, %rsp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/gtlua/region_mapping_lua.c
// Function: region_mapping_lua_get_description
static int region_mapping_lua_get_description(lua_State *L)
{
  GtRegionMapping **region_mapping;
  GtError *err;
  GtStr *seqidstr, *descstr = NULL;
  const char *seqid;
  int had_err = 0;
  gt_assert(L);
  region_mapping = check_region_mapping(L, 1);
  seqid = luaL_checkstring(L, 2);
  seqidstr = gt_str_new_cstr(seqid);
  descstr = gt_str_new();
  err = gt_error_new();
  had_err = gt_region_mapping_get_description(*region_mapping, descstr,
                                              seqidstr, err);
  gt_str_delete(seqidstr);
  if (had_err)
    return gt_lua_error(L, err);
  gt_error_delete(err);
  lua_pushstring(L, gt_str_get(descstr));
  gt_str_delete(descstr);
  return 1;
}

// Assembly:
subq $0x48, %rsp
movq %rdi, 0x38(%rsp)
movq $0x0, 0x18(%rsp)
movl $0x0, 0xc(%rsp)
cmpq $0x0, 0x38(%rsp)
jne 0xaeefa
movq 0x10510f(%rip), %rax    # 0x1b3fd8
movq (%rax), %rdi
leaq 0xaf193(%rip), %rsi     # 0x15e066
leaq 0xbbf24(%rip), %rdx     # 0x16adfe
leaq 0xc4d22(%rip), %rcx     # 0x173c03
leaq 0xc4c9a(%rip), %r8      # 0x173b82
movl $0x96, %r9d
movb $0x0, %al
callq 0xb890
callq 0xb2e0
jmp 0xaeefc
movq 0x38(%rsp), %rdi
movl $0x1, %esi
leaq 0xc49e7(%rip), %rdx     # 0x1738f4
callq 0x559c0
movq %rax, 0x30(%rsp)
movq 0x38(%rsp), %rdi
movl $0x2, %esi
xorl %eax, %eax
movl %eax, %edx
callq 0x558e0
movq %rax, 0x10(%rsp)
movq 0x10(%rsp), %rdi
callq 0x18f70
movq %rax, 0x20(%rsp)
callq 0x18f00
movq %rax, 0x18(%rsp)
callq 0xc0b0
movq %rax, 0x28(%rsp)
movq 0x30(%rsp), %rax
movq (%rax), %rdi
movq 0x18(%rsp), %rsi
movq 0x20(%rsp), %rdx
movq 0x28(%rsp), %rcx
callq 0xea1c0
movl %eax, 0xc(%rsp)
movq 0x20(%rsp), %rdi
callq 0x1afc0
cmpl $0x0, 0xc(%rsp)
je 0xaef98
movq 0x38(%rsp), %rdi
movq 0x28(%rsp), %rsi
callq 0xe84e0
movl %eax, 0x44(%rsp)
jmp 0xaefd3
movq 0x28(%rsp), %rdi
callq 0xc490
movq 0x38(%rsp), %rax
movq %rax, (%rsp)
movq 0x18(%rsp), %rdi
callq 0x19940
movq (%rsp), %rdi
movq %rax, %rsi
callq 0x50970
movq 0x18(%rsp), %rdi
callq 0x1afc0
movl $0x1, 0x44(%rsp)
movl 0x44(%rsp), %eax
addq $0x48, %rsp
retq
nopl (%rax)
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/gtlua/region_mapping_lua.c
// Function: region_mapping_lua_get_md5_fingerprint
static int region_mapping_lua_get_md5_fingerprint(lua_State *L)
{
  GtRegionMapping **region_mapping;
  GtError *err;
  GtStr *seqidstr;
  GtRange *rng = NULL;
  GtUword offset;
  const char *md5 = NULL, *seqid;
  gt_assert(L);
  region_mapping = check_region_mapping(L, 1);
  seqid = luaL_checkstring(L, 2);
  if (lua_gettop(L) == 3)
    rng = check_range(L, 3);
  seqidstr = gt_str_new_cstr(seqid);
  err = gt_error_new();
  md5 = gt_region_mapping_get_md5_fingerprint(*region_mapping, seqidstr,
                                              rng, &offset, err);
  gt_str_delete(seqidstr);
  if (!md5)
    return gt_lua_error(L, err);
  gt_error_delete(err);
  lua_pushstring(L, md5);
  lua_pushnumber(L, offset);
  return 2;
}

// Assembly:
subq $0x48, %rsp
movq %rdi, 0x38(%rsp)
movq $0x0, 0x18(%rsp)
movq $0x0, 0x8(%rsp)
cmpq $0x0, 0x38(%rsp)
jne 0xaf03b
movq 0x104fce(%rip), %rax    # 0x1b3fd8
movq (%rax), %rdi
leaq 0xaf052(%rip), %rsi     # 0x15e066
leaq 0xbbde3(%rip), %rdx     # 0x16adfe
leaq 0xc4c04(%rip), %rcx     # 0x173c26
leaq 0xc4b59(%rip), %r8      # 0x173b82
movl $0xaf, %r9d
movb $0x0, %al
callq 0xb890
callq 0xb2e0
jmp 0xaf03d
movq 0x38(%rsp), %rdi
movl $0x1, %esi
leaq 0xc48a6(%rip), %rdx     # 0x1738f4
callq 0x559c0
movq %rax, 0x30(%rsp)
movq 0x38(%rsp), %rdi
movl $0x2, %esi
xorl %eax, %eax
movl %eax, %edx
callq 0x558e0
movq %rax, (%rsp)
movq 0x38(%rsp), %rdi
callq 0x4f0e0
cmpl $0x3, %eax
jne 0xaf099
movq 0x38(%rsp), %rdi
movl $0x3, %esi
leaq 0xc46a2(%rip), %rdx     # 0x173731
callq 0x559c0
movq %rax, 0x18(%rsp)
movq (%rsp), %rdi
callq 0x18f70
movq %rax, 0x20(%rsp)
callq 0xc0b0
movq %rax, 0x28(%rsp)
movq 0x30(%rsp), %rax
movq (%rax), %rdi
movq 0x20(%rsp), %rsi
movq 0x18(%rsp), %rdx
movq 0x28(%rsp), %r8
leaq 0x10(%rsp), %rcx
callq 0xea810
movq %rax, 0x8(%rsp)
movq 0x20(%rsp), %rdi
callq 0x1afc0
cmpq $0x0, 0x8(%rsp)
jne 0xaf0fe
movq 0x38(%rsp), %rdi
movq 0x28(%rsp), %rsi
callq 0xe84e0
movl %eax, 0x44(%rsp)
jmp 0xaf151
movq 0x28(%rsp), %rdi
callq 0xc490
movq 0x38(%rsp), %rdi
movq 0x8(%rsp), %rsi
callq 0x50970
movq 0x38(%rsp), %rdi
movaps 0xaf35d(%rip), %xmm1    # 0x15e480
movq 0x10(%rsp), %xmm0
punpckldq %xmm1, %xmm0    # xmm0 = xmm0[0],xmm1[0],xmm0[1],xmm1[1]
movapd 0xaf35b(%rip), %xmm1    # 0x15e490
subpd %xmm1, %xmm0
movaps %xmm0, %xmm1
unpckhpd %xmm0, %xmm0            # xmm0 = xmm0[1,1]
addsd %xmm1, %xmm0
callq 0x506d0
movl $0x2, 0x44(%rsp)
movl 0x44(%rsp), %eax
addq $0x48, %rsp
retq
nopw (%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/gtlua/region_mapping_lua.c
// Function: region_mapping_lua_new_seqfile_matchdesc
static int region_mapping_lua_new_seqfile_matchdesc(lua_State *L)
{
  const char *seqfilename;
  GtStrArray *seqfile;
  GtRegionMapping **region_mapping;
  gt_assert(L);
  seqfilename = luaL_checkstring(L, 1);
  region_mapping = lua_newuserdata(L, sizeof (GtRegionMapping*));
  gt_assert(region_mapping);
  seqfile = gt_str_array_new();
  gt_str_array_add_cstr(seqfile, seqfilename);
  /* XXX: make second and third parameter available */
  *region_mapping = gt_region_mapping_new_seqfiles(seqfile, true, false);
  gt_str_array_delete(seqfile);
  luaL_getmetatable(L, REGION_MAPPING_METATABLE);
  lua_setmetatable(L, -2);
  return 1;
}

// Assembly:
subq $0x28, %rsp
movq %rdi, 0x20(%rsp)
cmpq $0x0, 0x20(%rsp)
jne 0xaf1b9
movq 0x104e50(%rip), %rax    # 0x1b3fd8
movq (%rax), %rdi
leaq 0xaeed4(%rip), %rsi     # 0x15e066
leaq 0xbbc65(%rip), %rdx     # 0x16adfe
leaq 0xc4b3a(%rip), %rcx     # 0x173cda
leaq 0xc49db(%rip), %r8      # 0x173b82
movl $0x20, %r9d
movb $0x0, %al
callq 0xb890
callq 0xb2e0
jmp 0xaf1bb
movq 0x20(%rsp), %rdi
movl $0x1, %esi
xorl %eax, %eax
movl %eax, %edx
callq 0x558e0
movq %rax, 0x18(%rsp)
movq 0x20(%rsp), %rdi
movl $0x8, %esi
callq 0x53950
movq %rax, 0x8(%rsp)
cmpq $0x0, 0x8(%rsp)
jne 0xaf227
movq 0x104de2(%rip), %rax    # 0x1b3fd8
movq (%rax), %rdi
leaq 0xaee66(%rip), %rsi     # 0x15e066
leaq 0xded91(%rip), %rdx     # 0x18df98
leaq 0xc4acc(%rip), %rcx     # 0x173cda
leaq 0xc496d(%rip), %r8      # 0x173b82
movl $0x23, %r9d
movb $0x0, %al
callq 0xb890
callq 0xb2e0
jmp 0xaf229
callq 0x1b020
movq %rax, 0x10(%rsp)
movq 0x10(%rsp), %rdi
movq 0x18(%rsp), %rsi
callq 0x1b180
movq 0x10(%rsp), %rdi
movl $0x1, %esi
xorl %edx, %edx
callq 0xe88a0
movq %rax, %rcx
movq 0x8(%rsp), %rax
movq %rcx, (%rax)
movq 0x10(%rsp), %rdi
callq 0x1b780
movq 0x20(%rsp), %rdi
movl $0xffffd8f0, %esi       # imm = 0xFFFFD8F0
leaq 0xc467b(%rip), %rdx     # 0x1738f4
callq 0x51640
movq 0x20(%rsp), %rdi
movl $0xfffffffe, %esi       # imm = 0xFFFFFFFE
callq 0x523f0
movl $0x1, %eax
addq $0x28, %rsp
retq
nopw (%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/gtlua/region_mapping_lua.c
// Function: region_mapping_lua_new_seqfile_matchdescstart
static int region_mapping_lua_new_seqfile_matchdescstart(lua_State *L)
{
  const char *seqfilename;
  GtStrArray *seqfile;
  GtRegionMapping **region_mapping;
  gt_assert(L);
  seqfilename = luaL_checkstring(L, 1);
  region_mapping = lua_newuserdata(L, sizeof (GtRegionMapping*));
  gt_assert(region_mapping);
  seqfile = gt_str_array_new();
  gt_str_array_add_cstr(seqfile, seqfilename);
  /* XXX: make second and third parameter available */
  *region_mapping = gt_region_mapping_new_seqfiles(seqfile, true, false);
  gt_region_mapping_enable_match_desc_start(*region_mapping);
  gt_str_array_delete(seqfile);
  luaL_getmetatable(L, REGION_MAPPING_METATABLE);
  lua_setmetatable(L, -2);
  return 1;
}

// Assembly:
subq $0x28, %rsp
movq %rdi, 0x20(%rsp)
cmpq $0x0, 0x20(%rsp)
jne 0xaf2e9
movq 0x104d20(%rip), %rax    # 0x1b3fd8
movq (%rax), %rdi
leaq 0xaeda4(%rip), %rsi     # 0x15e066
leaq 0xbbb35(%rip), %rdx     # 0x16adfe
leaq 0xc4a33(%rip), %rcx     # 0x173d03
leaq 0xc48ab(%rip), %r8      # 0x173b82
movl $0x33, %r9d
movb $0x0, %al
callq 0xb890
callq 0xb2e0
jmp 0xaf2eb
movq 0x20(%rsp), %rdi
movl $0x1, %esi
xorl %eax, %eax
movl %eax, %edx
callq 0x558e0
movq %rax, 0x18(%rsp)
movq 0x20(%rsp), %rdi
movl $0x8, %esi
callq 0x53950
movq %rax, 0x8(%rsp)
cmpq $0x0, 0x8(%rsp)
jne 0xaf357
movq 0x104cb2(%rip), %rax    # 0x1b3fd8
movq (%rax), %rdi
leaq 0xaed36(%rip), %rsi     # 0x15e066
leaq 0xdec61(%rip), %rdx     # 0x18df98
leaq 0xc49c5(%rip), %rcx     # 0x173d03
leaq 0xc483d(%rip), %r8      # 0x173b82
movl $0x36, %r9d
movb $0x0, %al
callq 0xb890
callq 0xb2e0
jmp 0xaf359
callq 0x1b020
movq %rax, 0x10(%rsp)
movq 0x10(%rsp), %rdi
movq 0x18(%rsp), %rsi
callq 0x1b180
movq 0x10(%rsp), %rdi
movl $0x1, %esi
xorl %edx, %edx
callq 0xe88a0
movq %rax, %rcx
movq 0x8(%rsp), %rax
movq %rcx, (%rax)
movq 0x8(%rsp), %rax
movq (%rax), %rdi
callq 0xe8bb0
movq 0x10(%rsp), %rdi
callq 0x1b780
movq 0x20(%rsp), %rdi
movl $0xffffd8f0, %esi       # imm = 0xFFFFD8F0
leaq 0xc453e(%rip), %rdx     # 0x1738f4
callq 0x51640
movq 0x20(%rsp), %rdi
movl $0xfffffffe, %esi       # imm = 0xFFFFFFFE
callq 0x523f0
movl $0x1, %eax
addq $0x28, %rsp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/gtlua/region_mapping_lua.c
// Function: region_mapping_lua_new_seqfile_usedesc
static int region_mapping_lua_new_seqfile_usedesc(lua_State *L)
{
  const char *seqfilename;
  GtStrArray *seqfile;
  GtRegionMapping **region_mapping;
  gt_assert(L);
  seqfilename = luaL_checkstring(L, 1);
  region_mapping = lua_newuserdata(L, sizeof (GtRegionMapping*));
  gt_assert(region_mapping);
  seqfile = gt_str_array_new();
  gt_str_array_add_cstr(seqfile, seqfilename);
  /* XXX: make second and third parameter available */
  *region_mapping = gt_region_mapping_new_seqfiles(seqfile, false, true);
  gt_str_array_delete(seqfile);
  luaL_getmetatable(L, REGION_MAPPING_METATABLE);
  lua_setmetatable(L, -2);
  return 1;
}

// Assembly:
subq $0x28, %rsp
movq %rdi, 0x20(%rsp)
cmpq $0x0, 0x20(%rsp)
jne 0xaf429
movq 0x104be0(%rip), %rax    # 0x1b3fd8
movq (%rax), %rdi
leaq 0xaec64(%rip), %rsi     # 0x15e066
leaq 0xbb9f5(%rip), %rdx     # 0x16adfe
leaq 0xc4921(%rip), %rcx     # 0x173d31
leaq 0xc476b(%rip), %r8      # 0x173b82
movl $0x47, %r9d
movb $0x0, %al
callq 0xb890
callq 0xb2e0
jmp 0xaf42b
movq 0x20(%rsp), %rdi
movl $0x1, %esi
xorl %eax, %eax
movl %eax, %edx
callq 0x558e0
movq %rax, 0x18(%rsp)
movq 0x20(%rsp), %rdi
movl $0x8, %esi
callq 0x53950
movq %rax, 0x8(%rsp)
cmpq $0x0, 0x8(%rsp)
jne 0xaf497
movq 0x104b72(%rip), %rax    # 0x1b3fd8
movq (%rax), %rdi
leaq 0xaebf6(%rip), %rsi     # 0x15e066
leaq 0xdeb21(%rip), %rdx     # 0x18df98
leaq 0xc48b3(%rip), %rcx     # 0x173d31
leaq 0xc46fd(%rip), %r8      # 0x173b82
movl $0x4a, %r9d
movb $0x0, %al
callq 0xb890
callq 0xb2e0
jmp 0xaf499
callq 0x1b020
movq %rax, 0x10(%rsp)
movq 0x10(%rsp), %rdi
movq 0x18(%rsp), %rsi
callq 0x1b180
movq 0x10(%rsp), %rdi
xorl %esi, %esi
movl $0x1, %edx
callq 0xe88a0
movq %rax, %rcx
movq 0x8(%rsp), %rax
movq %rcx, (%rax)
movq 0x10(%rsp), %rdi
callq 0x1b780
movq 0x20(%rsp), %rdi
movl $0xffffd8f0, %esi       # imm = 0xFFFFD8F0
leaq 0xc440b(%rip), %rdx     # 0x1738f4
callq 0x51640
movq 0x20(%rsp), %rdi
movl $0xfffffffe, %esi       # imm = 0xFFFFFFFE
callq 0x523f0
movl $0x1, %eax
addq $0x28, %rsp
retq
nopw (%rax,%rax)