// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/extended/script_filter.c
// Function: gt_script_filter_get_string
static const char *gt_script_filter_get_string(GtScriptFilter *script_filter,
                                              const char *name, GtError *err)
{
#ifndef NDEBUG
  int stack_size;
#endif
  gt_assert(script_filter && name);
  gt_error_check(err);

#ifndef NDEBUG
  stack_size = lua_gettop(script_filter->L);
#endif

  lua_getglobal(script_filter->L, name);
  if (lua_isnil(script_filter->L, -1)) {
    lua_pop(script_filter->L, 1);
    return gt_symbol("undefined");
  }
  /* execute callback if function is given */
  if (lua_isfunction(script_filter->L, -1))
  {
    int num_of_args = 0;
    if (lua_pcall(script_filter->L, num_of_args, 1, 0) != 0)
    {
      gt_error_set(err, "%s", lua_tostring(script_filter->L, -1));
      lua_pop(script_filter->L, 1);
      gt_assert(lua_gettop(script_filter->L) == stack_size);
      return NULL;
    }
  }

  if (lua_isnil(script_filter->L, -1) || !lua_isstring(script_filter->L, -1)) {
    lua_pop(script_filter->L, 1);
    gt_assert(lua_gettop(script_filter->L) == stack_size);
    gt_error_set(err, "script filter '%s': '%s' must return a string",
                 gt_str_get(script_filter->filename), name);
    return NULL;
  }

  /* retrieve string */
  return lua_tostring(script_filter->L, -1);
}

// Assembly:
subq $0x38, %rsp
movq %rdi, 0x28(%rsp)
movq %rsi, 0x20(%rsp)
movq %rdx, 0x18(%rsp)
cmpq $0x0, 0x28(%rsp)
je 0x1d1e53
cmpq $0x0, 0x20(%rsp)
jne 0x1d1e8b
movq 0x46a146(%rip), %rax    # 0x63bfa0
movq (%rax), %rdi
leaq 0x3441af(%rip), %rsi    # 0x516013
leaq 0x392da1(%rip), %rdx    # 0x564c0c
leaq 0x392db0(%rip), %rcx    # 0x564c22
leaq 0x392bc3(%rip), %r8     # 0x564a3c
movl $0x8e, %r9d
movb $0x0, %al
callq 0x199f0
callq 0x19370
jmp 0x1d1e8d
jmp 0x1d1e8f
cmpq $0x0, 0x18(%rsp)
je 0x1d1edf
movq 0x18(%rsp), %rdi
callq 0xd8a60
testb $0x1, %al
jne 0x1d1ea7
jmp 0x1d1edf
movq 0x46a0f2(%rip), %rax    # 0x63bfa0
movq (%rax), %rdi
leaq 0x34415b(%rip), %rsi    # 0x516013
leaq 0x344300(%rip), %rdx    # 0x5161bf
leaq 0x392d5c(%rip), %rcx    # 0x564c22
leaq 0x392b6f(%rip), %r8     # 0x564a3c
movl $0x8f, %r9d
movb $0x0, %al
callq 0x199f0
callq 0x19370
jmp 0x1d1ee1
movq 0x28(%rsp), %rax
movq (%rax), %rdi
callq 0x333eb0
movl %eax, 0x14(%rsp)
movq 0x28(%rsp), %rax
movq (%rax), %rdi
movq 0x20(%rsp), %rdx
movl $0xffffd8ee, %esi       # imm = 0xFFFFD8EE
callq 0x336410
movq 0x28(%rsp), %rax
movq (%rax), %rdi
movl $0xffffffff, %esi       # imm = 0xFFFFFFFF
callq 0x3345d0
cmpl $0x0, %eax
jne 0x1d1f48
movq 0x28(%rsp), %rax
movq (%rax), %rdi
movl $0xfffffffe, %esi       # imm = 0xFFFFFFFE
callq 0x333ed0
leaq 0x35bd0c(%rip), %rdi    # 0x52dc45
callq 0x120930
movq %rax, 0x30(%rsp)
jmp 0x1d2119
movq 0x28(%rsp), %rax
movq (%rax), %rdi
movl $0xffffffff, %esi       # imm = 0xFFFFFFFF
callq 0x3345d0
cmpl $0x6, %eax
jne 0x1d2031
movl $0x0, 0x10(%rsp)
movq 0x28(%rsp), %rax
movq (%rax), %rdi
movl 0x10(%rsp), %esi
movl $0x1, %edx
xorl %ecx, %ecx
callq 0x3375c0
cmpl $0x0, %eax
je 0x1d202f
movq 0x18(%rsp), %rax
movq %rax, 0x8(%rsp)
movq 0x28(%rsp), %rax
movq (%rax), %rdi
movl $0xffffffff, %esi       # imm = 0xFFFFFFFF
xorl %eax, %eax
movl %eax, %edx
callq 0x334f50
movq 0x8(%rsp), %rdi
movq %rax, %rdx
leaq 0x3ca066(%rip), %rsi    # 0x59c021
movb $0x0, %al
callq 0xd88c0
movq 0x28(%rsp), %rax
movq (%rax), %rdi
movl $0xfffffffe, %esi       # imm = 0xFFFFFFFE
callq 0x333ed0
movq 0x28(%rsp), %rax
movq (%rax), %rdi
callq 0x333eb0
cmpl 0x14(%rsp), %eax
je 0x1d201f
movq 0x469fb2(%rip), %rax    # 0x63bfa0
movq (%rax), %rdi
leaq 0x34401b(%rip), %rsi    # 0x516013
leaq 0x392c3f(%rip), %rdx    # 0x564c3e
leaq 0x392c1c(%rip), %rcx    # 0x564c22
leaq 0x392a2f(%rip), %r8     # 0x564a3c
movl $0xa2, %r9d
movb $0x0, %al
callq 0x199f0
callq 0x19370
jmp 0x1d2021
movq $0x0, 0x30(%rsp)
jmp 0x1d2119
jmp 0x1d2031
movq 0x28(%rsp), %rax
movq (%rax), %rdi
movl $0xffffffff, %esi       # imm = 0xFFFFFFFF
callq 0x3345d0
cmpl $0x0, %eax
je 0x1d2063
movq 0x28(%rsp), %rax
movq (%rax), %rdi
movl $0xffffffff, %esi       # imm = 0xFFFFFFFF
callq 0x3347b0
cmpl $0x0, %eax
jne 0x1d20fe
movq 0x28(%rsp), %rax
movq (%rax), %rdi
movl $0xfffffffe, %esi       # imm = 0xFFFFFFFE
callq 0x333ed0
movq 0x28(%rsp), %rax
movq (%rax), %rdi
callq 0x333eb0
cmpl 0x14(%rsp), %eax
je 0x1d20c0
movq 0x469f11(%rip), %rax    # 0x63bfa0
movq (%rax), %rdi
leaq 0x343f7a(%rip), %rsi    # 0x516013
leaq 0x392b9e(%rip), %rdx    # 0x564c3e
leaq 0x392b7b(%rip), %rcx    # 0x564c22
leaq 0x39298e(%rip), %r8     # 0x564a3c
movl $0xa9, %r9d
movb $0x0, %al
callq 0x199f0
callq 0x19370
jmp 0x1d20c2
movq 0x18(%rsp), %rax
movq %rax, (%rsp)
movq 0x28(%rsp), %rax
movq 0x8(%rax), %rdi
callq 0x11dee0
movq (%rsp), %rdi
movq %rax, %rdx
movq 0x20(%rsp), %rcx
leaq 0x392b7d(%rip), %rsi    # 0x564c69
movb $0x0, %al
callq 0xd88c0
movq $0x0, 0x30(%rsp)
jmp 0x1d2119
movq 0x28(%rsp), %rax
movq (%rax), %rdi
movl $0xffffffff, %esi       # imm = 0xFFFFFFFF
xorl %eax, %eax
movl %eax, %edx
callq 0x334f50
movq %rax, 0x30(%rsp)
movq 0x30(%rsp), %rax
addq $0x38, %rsp
retq
nopw %cs:(%rax,%rax)