// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/gtlua/encseq_lua.c
// Function: gt_lua_open_encseq
int gt_lua_open_encseq(lua_State *L)
{
#ifndef NDEBUG
  int stack_size;
#endif
  gt_assert(L);
#ifndef NDEBUG
  stack_size = lua_gettop(L);
#endif
  luaL_newmetatable(L, ENCSEQ_METATABLE);
  lua_pushvalue(L, -1); /* duplicate the metatable */
  lua_setfield(L, -2, "__index");
  lua_pushstring(L, "__gc");
  lua_pushcfunction(L, encseq_lua_delete);
  lua_settable(L, -3);
  luaL_register(L, NULL, encseq_lib_m);
  gt_lua_export_metatable(L, ENCSEQ_METATABLE);

  luaL_newmetatable(L, ENCSEQ_BUFFER_METATABLE);
  lua_pushcfunction(L, encseq_lua_index_buffer);
  lua_setfield(L, -2, "__index");
  lua_pushstring(L, "__gc");
  lua_pushcfunction(L, encseq_lua_delete_buffer);
  lua_settable(L, -3);
  lua_pop(L, 1);

  luaL_newmetatable(L, ENCSEQ_READER_METATABLE);
  lua_pushvalue(L, -1); /* duplicate the metatable */
  lua_setfield(L, -2, "__index");
  lua_pushstring(L, "__gc");
  lua_pushcfunction(L, encseq_reader_lua_delete);
  lua_settable(L, -3);
  luaL_register(L, NULL, encseq_reader_lib_m);
  gt_lua_export_metatable(L, ENCSEQ_READER_METATABLE);

  luaL_newmetatable(L, ENCSEQ_ENCODER_METATABLE);
  lua_pushvalue(L, -1); /* duplicate the metatable */
  lua_setfield(L, -2, "__index");
  lua_pushstring(L, "__gc");
  lua_pushcfunction(L, encseq_encoder_lua_delete);
  lua_settable(L, -3);
  luaL_register(L, NULL, encseq_encoder_lib_m);
  gt_lua_export_metatable(L, ENCSEQ_ENCODER_METATABLE);

  luaL_newmetatable(L, ENCSEQ_LOADER_METATABLE);
  lua_pushvalue(L, -1); /* duplicate the metatable */
  lua_setfield(L, -2, "__index");
  lua_pushstring(L, "__gc");
  lua_pushcfunction(L, encseq_loader_lua_delete);
  lua_settable(L, -3);
  luaL_register(L, NULL, encseq_loader_lib_m);
  gt_lua_export_metatable(L, ENCSEQ_LOADER_METATABLE);

  luaL_newmetatable(L, ENCSEQ_BUILDER_METATABLE);
  lua_pushvalue(L, -1); /* duplicate the metatable */
  lua_setfield(L, -2, "__index");
  lua_pushstring(L, "__gc");
  lua_pushcfunction(L, encseq_builder_lua_delete);
  lua_settable(L, -3);
  luaL_register(L, NULL, encseq_builder_lib_m);
  gt_lua_export_metatable(L, ENCSEQ_BUILDER_METATABLE);

  luaL_register(L, "gt", encseq_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 0xf50b9
movq 0xbef50(%rip), %rax     # 0x1b3fd8
movq (%rax), %rdi
leaq 0x68fd4(%rip), %rsi     # 0x15e066
leaq 0x75d65(%rip), %rdx     # 0x16adfe
leaq 0x86a40(%rip), %rcx     # 0x17bae0
leaq 0x86a4c(%rip), %r8      # 0x17baf3
movl $0x3d3, %r9d            # imm = 0x3D3
movb $0x0, %al
callq 0xb890
callq 0xb2e0
jmp 0xf50bb
movq 0x10(%rsp), %rdi
callq 0x4f0e0
movl %eax, 0xc(%rsp)
movq 0x10(%rsp), %rdi
leaq 0x86a35(%rip), %rsi     # 0x17bb0a
callq 0x55930
movq 0x10(%rsp), %rdi
movl $0xffffffff, %esi       # imm = 0xFFFFFFFF
callq 0x4f790
movq 0x10(%rsp), %rdi
movl $0xfffffffe, %esi       # imm = 0xFFFFFFFE
leaq 0x7658d(%rip), %rdx     # 0x16b687
callq 0x51fc0
movq 0x10(%rsp), %rdi
leaq 0x75ed4(%rip), %rsi     # 0x16afdf
callq 0x50970
movq 0x10(%rsp), %rdi
leaq 0x374(%rip), %rsi       # 0xf5490
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 0xbe50e(%rip), %rdx     # 0x1b3650
callq 0x55e30
movq 0x10(%rsp), %rdi
leaq 0x869b7(%rip), %rsi     # 0x17bb0a
callq 0xe81d0
movq 0x10(%rsp), %rdi
leaq 0x869b9(%rip), %rsi     # 0x17bb1d
callq 0x55930
movq 0x10(%rsp), %rdi
leaq 0x35b(%rip), %rsi       # 0xf54d0
xorl %edx, %edx
callq 0x51120
movq 0x10(%rsp), %rdi
movl $0xfffffffe, %esi       # imm = 0xFFFFFFFE
leaq 0x764fa(%rip), %rdx     # 0x16b687
callq 0x51fc0
movq 0x10(%rsp), %rdi
leaq 0x75e41(%rip), %rsi     # 0x16afdf
callq 0x50970
movq 0x10(%rsp), %rdi
leaq 0x3f1(%rip), %rsi       # 0xf55a0
xorl %edx, %edx
callq 0x51120
movq 0x10(%rsp), %rdi
movl $0xfffffffd, %esi       # imm = 0xFFFFFFFD
callq 0x51d10
movq 0x10(%rsp), %rdi
movl $0xfffffffe, %esi       # imm = 0xFFFFFFFE
callq 0x4f100
movq 0x10(%rsp), %rdi
leaq 0x86957(%rip), %rsi     # 0x17bb37
callq 0x55930
movq 0x10(%rsp), %rdi
movl $0xffffffff, %esi       # imm = 0xFFFFFFFF
callq 0x4f790
movq 0x10(%rsp), %rdi
movl $0xfffffffe, %esi       # imm = 0xFFFFFFFE
leaq 0x76482(%rip), %rdx     # 0x16b687
callq 0x51fc0
movq 0x10(%rsp), %rdi
leaq 0x75dc9(%rip), %rsi     # 0x16afdf
callq 0x50970
movq 0x10(%rsp), %rdi
leaq 0x3d9(%rip), %rsi       # 0xf5600
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 0xbe573(%rip), %rdx     # 0x1b37c0
callq 0x55e30
movq 0x10(%rsp), %rdi
leaq 0x868d9(%rip), %rsi     # 0x17bb37
callq 0xe81d0
movq 0x10(%rsp), %rdi
leaq 0x868e2(%rip), %rsi     # 0x17bb51
callq 0x55930
movq 0x10(%rsp), %rdi
movl $0xffffffff, %esi       # imm = 0xFFFFFFFF
callq 0x4f790
movq 0x10(%rsp), %rdi
movl $0xfffffffe, %esi       # imm = 0xFFFFFFFE
leaq 0x763f3(%rip), %rdx     # 0x16b687
callq 0x51fc0
movq 0x10(%rsp), %rdi
leaq 0x75d3a(%rip), %rsi     # 0x16afdf
callq 0x50970
movq 0x10(%rsp), %rdi
leaq 0x38a(%rip), %rsi       # 0xf5640
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 0xbe524(%rip), %rdx     # 0x1b3800
callq 0x55e30
movq 0x10(%rsp), %rdi
leaq 0x86864(%rip), %rsi     # 0x17bb51
callq 0xe81d0
movq 0x10(%rsp), %rdi
leaq 0x8686e(%rip), %rsi     # 0x17bb6c
callq 0x55930
movq 0x10(%rsp), %rdi
movl $0xffffffff, %esi       # imm = 0xFFFFFFFF
callq 0x4f790
movq 0x10(%rsp), %rdi
movl $0xfffffffe, %esi       # imm = 0xFFFFFFFE
leaq 0x76364(%rip), %rdx     # 0x16b687
callq 0x51fc0
movq 0x10(%rsp), %rdi
leaq 0x75cab(%rip), %rsi     # 0x16afdf
callq 0x50970
movq 0x10(%rsp), %rdi
leaq 0x33b(%rip), %rsi       # 0xf5680
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 0xbe595(%rip), %rdx     # 0x1b3900
callq 0x55e30
movq 0x10(%rsp), %rdi
leaq 0x867f0(%rip), %rsi     # 0x17bb6c
callq 0xe81d0
movq 0x10(%rsp), %rdi
leaq 0x867f9(%rip), %rsi     # 0x17bb86
callq 0x55930
movq 0x10(%rsp), %rdi
movl $0xffffffff, %esi       # imm = 0xFFFFFFFF
callq 0x4f790
movq 0x10(%rsp), %rdi
movl $0xfffffffe, %esi       # imm = 0xFFFFFFFE
leaq 0x762d5(%rip), %rdx     # 0x16b687
callq 0x51fc0
movq 0x10(%rsp), %rdi
leaq 0x75c1c(%rip), %rsi     # 0x16afdf
callq 0x50970
movq 0x10(%rsp), %rdi
leaq 0x2ec(%rip), %rsi       # 0xf56c0
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 0xbe5c6(%rip), %rdx     # 0x1b39c0
callq 0x55e30
movq 0x10(%rsp), %rdi
leaq 0x8677b(%rip), %rsi     # 0x17bb86
callq 0xe81d0
movq 0x10(%rsp), %rdi
leaq 0x8e85b(%rip), %rsi     # 0x183c77
leaq 0xbe62d(%rip), %rdx     # 0x1b3a50
callq 0x55e30
movq 0x10(%rsp), %rdi
movl $0xfffffffe, %esi       # imm = 0xFFFFFFFE
callq 0x4f100
movq 0x10(%rsp), %rdi
callq 0x4f0e0
cmpl 0xc(%rsp), %eax
je 0xf547f
movq 0xbeb8a(%rip), %rax     # 0x1b3fd8
movq (%rax), %rdi
leaq 0x68c0e(%rip), %rsi     # 0x15e066
leaq 0x7d7d3(%rip), %rdx     # 0x172c32
leaq 0x8667a(%rip), %rcx     # 0x17bae0
leaq 0x86686(%rip), %r8      # 0x17baf3
movl $0x40e, %r9d            # imm = 0x40E
movb $0x0, %al
callq 0xb890
callq 0xb2e0
jmp 0xf5481
movl $0x1, %eax
addq $0x18, %rsp
retq
nopl (%rax,%rax)