LLM4Binary/decompile-bench-makefile huggingface dataset:
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/tools/gt_encseq_encode.c
// Function: gt_encseq_encode_option_parser_new
static GtOptionParser* gt_encseq_encode_option_parser_new(void *tool_arguments)
{
  GtOptionParser *op;
  GtOption *option;
  GtEncseqEncodeArguments *arguments =
                                      (GtEncseqEncodeArguments*) tool_arguments;

  /* init */
  op = gt_option_parser_new("sequence_file [sequence_file "
                            "[sequence_file ...]]",
                            "Encode sequence files (FASTA/FASTQ, GenBank, "
                            "EMBL) efficiently.");

  /* -showstats */
  option = gt_option_new_bool("showstats",
                              "show compression results",
                              &arguments->showstats,
                              false);
  gt_option_parser_add_option(op, option);

  /* -no_esq_header */
  option = gt_option_new_bool("no_esq_header",
                              "omit the header in the .esq file",
                              &arguments->no_esq_header,
                              false);
  gt_option_is_development_option(option);
  gt_option_parser_add_option(op, option);

  /* encoded sequence options */
  arguments->eopts = gt_encseq_options_register_encoding(op,
                                                         arguments->indexname,
                                                         NULL);

  /* -v */
  option = gt_option_new_verbose(&arguments->verbose);
  gt_option_parser_add_option(op, option);

  gt_option_parser_set_min_args(op, 1);

  return op;
}

// Assembly:
subq $0x28, %rsp
movq %rdi, 0x20(%rsp)
movq 0x20(%rsp), %rax
movq %rax, 0x8(%rsp)
leaq 0x4ebc90(%rip), %rdi    # 0x51c73a
leaq 0x4ebcbb(%rip), %rsi    # 0x51c76c
callq 0xf1420
movq %rax, 0x18(%rsp)
movq 0x8(%rsp), %rdx
addq $0x8, %rdx
leaq 0x4ebce1(%rip), %rdi    # 0x51c7ac
leaq 0x4ebce4(%rip), %rsi    # 0x51c7b6
xorl %ecx, %ecx
callq 0xf5f20
movq %rax, 0x10(%rsp)
movq 0x18(%rsp), %rdi
movq 0x10(%rsp), %rsi
callq 0xf1600
movq 0x8(%rsp), %rdx
addq $0x9, %rdx
leaq 0x4ebcd2(%rip), %rdi    # 0x51c7cf
leaq 0x4ebcd9(%rip), %rsi    # 0x51c7dd
xorl %ecx, %ecx
callq 0xf5f20
movq %rax, 0x10(%rsp)
movq 0x10(%rsp), %rdi
callq 0xf7040
movq 0x18(%rsp), %rdi
movq 0x10(%rsp), %rsi
callq 0xf1600
movq 0x18(%rsp), %rdi
movq 0x8(%rsp), %rax
movq 0x10(%rax), %rsi
xorl %eax, %eax
movl %eax, %edx
callq 0xd6b20
movq %rax, %rcx
movq 0x8(%rsp), %rax
movq %rcx, (%rax)
movq 0x8(%rsp), %rdi
addq $0xa, %rdi
callq 0xf5f90
movq %rax, 0x10(%rsp)
movq 0x18(%rsp), %rdi
movq 0x10(%rsp), %rsi
callq 0xf1600
movq 0x18(%rsp), %rdi
movl $0x1, %esi
callq 0xf2980
movq 0x18(%rsp), %rax
addq $0x28, %rsp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/tools/gt_encseq_encode.c
// Function: encode_sequence_files
static int encode_sequence_files(GtStrArray *infiles, GtEncseqOptions *opts,
                                 const char *indexname, bool verbose,
                                 bool esq_no_header,
                                 GtError *err)
{
  GtEncseqEncoder *encseq_encoder;
  GtLogger *logger;
  int had_err = 0;
  gt_error_check(err);
  gt_assert(infiles && gt_str_array_size(infiles) > 0 && opts);
  logger = gt_logger_new(verbose, "# ", stderr);
  encseq_encoder = gt_encseq_encoder_new_from_options(opts, err);
  if (!encseq_encoder)
    had_err = -1;
  if (!had_err) {
    gt_encseq_encoder_set_logger(encseq_encoder, logger);
    if (esq_no_header)
    {
      gt_encseq_encoder_disable_esq_header(encseq_encoder);
    }
    had_err = gt_encseq_encoder_encode(encseq_encoder, infiles, indexname, err);
  }
  gt_encseq_encoder_delete(encseq_encoder);
  gt_logger_delete(logger);
  return had_err;
}

// Assembly:
subq $0x48, %rsp
movb %r8b, %al
movq %rdi, 0x40(%rsp)
movq %rsi, 0x38(%rsp)
movq %rdx, 0x30(%rsp)
andb $0x1, %cl
movb %cl, 0x2f(%rsp)
andb $0x1, %al
movb %al, 0x2e(%rsp)
movq %r9, 0x20(%rsp)
movl $0x0, 0xc(%rsp)
cmpq $0x0, 0x20(%rsp)
je 0x30e60
movq 0x20(%rsp), %rdi
callq 0xd8a60
testb $0x1, %al
jne 0x30e28
jmp 0x30e60
movq 0x60b171(%rip), %rax    # 0x63bfa0
movq (%rax), %rdi
leaq 0x4e51da(%rip), %rsi    # 0x516013
leaq 0x4e537f(%rip), %rdx    # 0x5161bf
leaq 0x4eba43(%rip), %rcx    # 0x51c88a
leaq 0x4eb8cf(%rip), %r8     # 0x51c71d
movl $0x68, %r9d
movb $0x0, %al
callq 0x199f0
callq 0x19370
jmp 0x30e62
jmp 0x30e64
cmpq $0x0, 0x40(%rsp)
je 0x30e84
movq 0x40(%rsp), %rdi
callq 0x11fcc0
cmpq $0x0, %rax
jbe 0x30e84
cmpq $0x0, 0x38(%rsp)
jne 0x30ebc
movq 0x60b115(%rip), %rax    # 0x63bfa0
movq (%rax), %rdi
leaq 0x4e517e(%rip), %rsi    # 0x516013
leaq 0x4eba04(%rip), %rdx    # 0x51c8a0
leaq 0x4eb9e7(%rip), %rcx    # 0x51c88a
leaq 0x4eb873(%rip), %r8     # 0x51c71d
movl $0x69, %r9d
movb $0x0, %al
callq 0x199f0
callq 0x19370
jmp 0x30ebe
movb 0x2f(%rsp), %al
movq 0x60b0d7(%rip), %rcx    # 0x63bfa0
movq (%rcx), %rdx
leaq 0x4e6a19(%rip), %rsi    # 0x5178ec
andb $0x1, %al
movzbl %al, %edi
callq 0xe7870
movq %rax, 0x10(%rsp)
movq 0x38(%rsp), %rdi
movq 0x20(%rsp), %rsi
callq 0xb82a0
movq %rax, 0x18(%rsp)
cmpq $0x0, 0x18(%rsp)
jne 0x30f06
movl $0xffffffff, 0xc(%rsp)  # imm = 0xFFFFFFFF
cmpl $0x0, 0xc(%rsp)
jne 0x30f4a
movq 0x18(%rsp), %rdi
movq 0x10(%rsp), %rsi
callq 0xb92b0
testb $0x1, 0x2e(%rsp)
je 0x30f2d
movq 0x18(%rsp), %rdi
callq 0xb9030
movq 0x18(%rsp), %rdi
movq 0x40(%rsp), %rsi
movq 0x30(%rsp), %rdx
movq 0x20(%rsp), %rcx
callq 0xb9320
movl %eax, 0xc(%rsp)
movq 0x18(%rsp), %rdi
callq 0xb8b70
movq 0x10(%rsp), %rdi
callq 0xe7ed0
movl 0xc(%rsp), %eax
addq $0x48, %rsp
retq
nopw (%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/tools/gt_encseq_encode.c
// Function: show_encoded_statistics
static void show_encoded_statistics(GtStrArray *infiles, const char *indexname)
{
  int i;
  off_t orig_size = 0, enc_size = 0;
  const char *seqfile;
  gt_assert(infiles);
  for (i=0; i < gt_str_array_size(infiles);i ++) {
    seqfile = gt_str_array_get(infiles, i);
    orig_size += gt_file_size(seqfile);
  }
  enc_size += index_size(indexname, GT_ALPHABETFILESUFFIX);
  enc_size += index_size(indexname, GT_ENCSEQFILESUFFIX);
  enc_size += index_size(indexname, GT_SSPTABFILESUFFIX);
  enc_size += index_size(indexname, GT_DESTABFILESUFFIX);
  enc_size += index_size(indexname, GT_SDSTABFILESUFFIX);
  enc_size += index_size(indexname, GT_OISTABFILESUFFIX);
  printf("encoded sequence file(s) are %.1f%% of original file size\n",
         ((double) enc_size / orig_size) * 100.0);
}

// Assembly:
subq $0x38, %rsp
movq %rdi, 0x30(%rsp)
movq %rsi, 0x28(%rsp)
movq $0x0, 0x18(%rsp)
movq $0x0, 0x10(%rsp)
cmpq $0x0, 0x30(%rsp)
jne 0x30fd0
movq 0x60b001(%rip), %rax    # 0x63bfa0
movq (%rax), %rdi
leaq 0x4e506a(%rip), %rsi    # 0x516013
leaq 0x4eb922(%rip), %rdx    # 0x51c8d2
leaq 0x4eb923(%rip), %rcx    # 0x51c8da
leaq 0x4eb75f(%rip), %r8     # 0x51c71d
movl $0x8c, %r9d
movb $0x0, %al
callq 0x199f0
callq 0x19370
jmp 0x30fd2
movl $0x0, 0x24(%rsp)
movslq 0x24(%rsp), %rax
movq %rax, (%rsp)
movq 0x30(%rsp), %rdi
callq 0x11fcc0
movq %rax, %rcx
movq (%rsp), %rax
cmpq %rcx, %rax
jae 0x3102e
movq 0x30(%rsp), %rdi
movslq 0x24(%rsp), %rsi
callq 0x11f8c0
movq %rax, 0x8(%rsp)
movq 0x8(%rsp), %rdi
callq 0xdf2a0
addq 0x18(%rsp), %rax
movq %rax, 0x18(%rsp)
movl 0x24(%rsp), %eax
addl $0x1, %eax
movl %eax, 0x24(%rsp)
jmp 0x30fda
movq 0x28(%rsp), %rdi
leaq 0x4eb8b8(%rip), %rsi    # 0x51c8f2
callq 0x31110
addq 0x10(%rsp), %rax
movq %rax, 0x10(%rsp)
movq 0x28(%rsp), %rdi
leaq 0x4e69de(%rip), %rsi    # 0x517a33
callq 0x31110
addq 0x10(%rsp), %rax
movq %rax, 0x10(%rsp)
movq 0x28(%rsp), %rdi
leaq 0x4e69c8(%rip), %rsi    # 0x517a38
callq 0x31110
addq 0x10(%rsp), %rax
movq %rax, 0x10(%rsp)
movq 0x28(%rsp), %rdi
leaq 0x4e69b2(%rip), %rsi    # 0x517a3d
callq 0x31110
addq 0x10(%rsp), %rax
movq %rax, 0x10(%rsp)
movq 0x28(%rsp), %rdi
leaq 0x4e699c(%rip), %rsi    # 0x517a42
callq 0x31110
addq 0x10(%rsp), %rax
movq %rax, 0x10(%rsp)
movq 0x28(%rsp), %rdi
leaq 0x4e6986(%rip), %rsi    # 0x517a47
callq 0x31110
addq 0x10(%rsp), %rax
movq %rax, 0x10(%rsp)
cvtsi2sdq 0x10(%rsp), %xmm0
cvtsi2sdq 0x18(%rsp), %xmm1
divsd %xmm1, %xmm0
movsd 0x4e974e(%rip), %xmm1   # 0x51a838
mulsd %xmm1, %xmm0
leaq 0x4eb802(%rip), %rdi    # 0x51c8f7
movb $0x1, %al
callq 0x19070
addq $0x38, %rsp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/tools/gt_encseq_encode.c
// Function: index_size
static off_t index_size(const char *prefix, const char *suffix)
{
 off_t size = 0;
 GtStr *index_name = gt_str_new_cstr(prefix);
 gt_str_append_cstr(index_name, suffix);
 if (gt_file_exists(gt_str_get(index_name))) {
   size = gt_file_size(gt_str_get(index_name));
 }
 gt_str_delete(index_name);
 return size;
}

// Assembly:
subq $0x28, %rsp
movq %rdi, 0x20(%rsp)
movq %rsi, 0x18(%rsp)
movq $0x0, 0x10(%rsp)
movq 0x20(%rsp), %rdi
callq 0x11d510
movq %rax, 0x8(%rsp)
movq 0x8(%rsp), %rdi
movq 0x18(%rsp), %rsi
callq 0x11d550
movq 0x8(%rsp), %rdi
callq 0x11dee0
movq %rax, %rdi
callq 0xde820
testb $0x1, %al
jne 0x3115d
jmp 0x31174
movq 0x8(%rsp), %rdi
callq 0x11dee0
movq %rax, %rdi
callq 0xdf2a0
movq %rax, 0x10(%rsp)
movq 0x8(%rsp), %rdi
callq 0x11f560
movq 0x10(%rsp), %rax
addq $0x28, %rsp
retq
nopl (%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/tools/gt_encseq_info.c
// Function: gt_encseq_info_arguments_delete
static void gt_encseq_info_arguments_delete(void *tool_arguments)
{
  GtEncseqInfoArguments *arguments = tool_arguments;
  if (!arguments) return;
  gt_file_delete(arguments->outfp);
  gt_output_file_info_delete(arguments->ofi);
  gt_free(arguments);
}

// Assembly:
subq $0x18, %rsp
movq %rdi, 0x10(%rsp)
movq 0x10(%rsp), %rax
movq %rax, 0x8(%rsp)
cmpq $0x0, 0x8(%rsp)
jne 0x3121d
jmp 0x3124f
movq 0x8(%rsp), %rax
movq 0x10(%rax), %rdi
callq 0xde430
movq 0x8(%rsp), %rax
movq 0x8(%rax), %rdi
callq 0xf8210
movq 0x8(%rsp), %rdi
leaq 0x4eb6ed(%rip), %rsi    # 0x51c932
movl $0x34, %edx
callq 0xe88c0
addq $0x18, %rsp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/tools/gt_encseq_info.c
// Function: gt_encseq_info_compare
static int gt_encseq_info_compare (const void *a, const void *b) {
  GtUword elem_a = *((GtUword*)a);
  GtUword elem_b = *((GtUword*)b);
  if (elem_a < elem_b)
    return -1;
  else if (elem_a > elem_b)
    return 1;
  else
    return 0;
}

// Assembly:
movq %rdi, -0x10(%rsp)
movq %rsi, -0x18(%rsp)
movq -0x10(%rsp), %rax
movq (%rax), %rax
movq %rax, -0x20(%rsp)
movq -0x18(%rsp), %rax
movq (%rax), %rax
movq %rax, -0x28(%rsp)
movq -0x20(%rsp), %rax
cmpq -0x28(%rsp), %rax
jae 0x32d1a
movl $0xffffffff, -0x4(%rsp) # imm = 0xFFFFFFFF
jmp 0x32d38
movq -0x20(%rsp), %rax
cmpq -0x28(%rsp), %rax
jbe 0x32d30
movl $0x1, -0x4(%rsp)
jmp 0x32d38
movl $0x0, -0x4(%rsp)
movl -0x4(%rsp), %eax
retq
nopl (%rax)
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/tools/gt_encseq_md5.c
// Function: gt_encseq_md5_option_parser_new
static GtOptionParser* gt_encseq_md5_option_parser_new(void *tool_arguments)
{
  GtEncseqInfoArguments *arguments = tool_arguments;
  GtOption *option;
  GtOptionParser *op;
  gt_assert(arguments);

  /* init */
  op = gt_option_parser_new("[option ...] indexname",
                            "Display MD5 sums for an encoded sequence.");

  /* -fromindex */
  option = gt_option_new_bool("fromindex", "use MD5 table from .md5 file",
                              &arguments->fromindex, true);
  gt_option_parser_add_option(op, option);

  /* output file options */
  gt_output_file_info_register_options(arguments->ofi, op, &arguments->outfp);

  gt_option_parser_set_min_max_args(op, 1, 1);
  return op;
}

// Assembly:
subq $0x28, %rsp
movq %rdi, 0x20(%rsp)
movq 0x20(%rsp), %rax
movq %rax, 0x18(%rsp)
cmpq $0x0, 0x18(%rsp)
jne 0x32e63
movq 0x60916e(%rip), %rax    # 0x63bfa0
movq (%rax), %rdi
leaq 0x4e31d7(%rip), %rsi    # 0x516013
leaq 0x547d1c(%rip), %rdx    # 0x57ab5f
leaq 0x4e9fd9(%rip), %rcx    # 0x51ce23
leaq 0x4e9fb8(%rip), %r8     # 0x51ce09
movl $0x34, %r9d
movb $0x0, %al
callq 0x199f0
callq 0x19370
jmp 0x32e65
leaq 0x4e8ea2(%rip), %rdi    # 0x51bd0e
leaq 0x4e9fd0(%rip), %rsi    # 0x51ce43
callq 0xf1420
movq %rax, 0x8(%rsp)
movq 0x18(%rsp), %rdx
addq $0x10, %rdx
leaq 0x4e9fe0(%rip), %rdi    # 0x51ce6d
leaq 0x4e9fe3(%rip), %rsi    # 0x51ce77
movl $0x1, %ecx
callq 0xf5f20
movq %rax, 0x10(%rsp)
movq 0x8(%rsp), %rdi
movq 0x10(%rsp), %rsi
callq 0xf1600
movq 0x18(%rsp), %rax
movq (%rax), %rdi
movq 0x8(%rsp), %rsi
movq 0x18(%rsp), %rdx
addq $0x8, %rdx
callq 0xf7d50
movq 0x8(%rsp), %rdi
movl $0x1, %edx
movl %edx, %esi
callq 0xf2a40
movq 0x8(%rsp), %rax
addq $0x28, %rsp
retq
nopl (%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/tools/gt_encseq_sample.c
// Function: gt_encseq_sample_arguments_new
static void* gt_encseq_sample_arguments_new(void)
{
  GtEncseqSampleArguments *arguments = gt_calloc((size_t) 1, sizeof *arguments);
  arguments->mode = gt_str_new();
  arguments->sepchar = gt_str_new();
  arguments->dir = gt_str_new();
  arguments->seqrng.start = arguments->seqrng.end = GT_UNDEF_UWORD;
  return arguments;
}

// Assembly:
pushq %rax
movl $0x1, %edi
movl $0x48, %esi
leaq 0x4e9c43(%rip), %rdx    # 0x51cef5
movl $0x38, %ecx
callq 0xe83c0
movq %rax, (%rsp)
callq 0x11d4a0
movq %rax, %rcx
movq (%rsp), %rax
movq %rcx, 0x8(%rax)
callq 0x11d4a0
movq %rax, %rcx
movq (%rsp), %rax
movq %rcx, 0x10(%rax)
callq 0x11d4a0
movq %rax, %rcx
movq (%rsp), %rax
movq %rcx, 0x38(%rax)
movq (%rsp), %rax
movq $-0x1, 0x20(%rax)
movq (%rsp), %rax
movq $-0x1, 0x18(%rax)
movq (%rsp), %rax
popq %rcx
retq
nop
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/tools/gt_encseq_sample.c
// Function: gt_encseq_sample_arguments_delete
static void gt_encseq_sample_arguments_delete(void *tool_arguments)
{
  GtEncseqSampleArguments *arguments = tool_arguments;
  if (arguments != NULL) {
    gt_str_delete(arguments->mode);
    gt_str_delete(arguments->sepchar);
    gt_str_delete(arguments->dir);
    gt_encseq_options_delete(arguments->eopts);
    gt_free(arguments);
  }
}

// Assembly:
subq $0x18, %rsp
movq %rdi, 0x10(%rsp)
movq 0x10(%rsp), %rax
movq %rax, 0x8(%rsp)
cmpq $0x0, 0x8(%rsp)
je 0x33379
movq 0x8(%rsp), %rax
movq 0x8(%rax), %rdi
callq 0x11f560
movq 0x8(%rsp), %rax
movq 0x10(%rax), %rdi
callq 0x11f560
movq 0x8(%rsp), %rax
movq 0x38(%rax), %rdi
callq 0x11f560
movq 0x8(%rsp), %rax
movq 0x28(%rax), %rdi
callq 0xd82c0
movq 0x8(%rsp), %rdi
leaq 0x4e9b86(%rip), %rsi    # 0x51cef5
movl $0x48, %edx
callq 0xe88c0
addq $0x18, %rsp
retq
nop
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/tools/gt_encseq_sample.c
// Function: gt_encseq_sample_arguments_check
static int gt_encseq_sample_arguments_check(GT_UNUSED int rest_argc,
                                       void *tool_arguments,
                                       GT_UNUSED GtError *err)
{
  GtEncseqSampleArguments *args = (GtEncseqSampleArguments *) tool_arguments;
  int rval;
  int had_err = 0;
  gt_error_check(err);
  gt_assert(args);

  if (gt_str_length(args->dir) > 0) {
    rval = gt_readmode_parse(gt_str_get(args->dir), err);
    if (rval < 0)
      had_err = -1;
    else
      args->rm = (GtReadmode) rval;
  }
  if (args->len == GT_UNDEF_UWORD) {
    gt_error_set(err, "length must be specified");
    return -1;
  }
  return had_err;
}

// Assembly:
subq $0x28, %rsp
movl %edi, 0x20(%rsp)
movq %rsi, 0x18(%rsp)
movq %rdx, 0x10(%rsp)
movq 0x18(%rsp), %rax
movq %rax, 0x8(%rsp)
movl $0x0, (%rsp)
cmpq $0x0, 0x10(%rsp)
je 0x335d3
movq 0x10(%rsp), %rdi
callq 0xd8a60
testb $0x1, %al
jne 0x3359b
jmp 0x335d3
movq 0x6089fe(%rip), %rax    # 0x63bfa0
movq (%rax), %rdi
leaq 0x4e2a67(%rip), %rsi    # 0x516013
leaq 0x4e2c0c(%rip), %rdx    # 0x5161bf
leaq 0x4e99cd(%rip), %rcx    # 0x51cf87
leaq 0x4e9934(%rip), %r8     # 0x51cef5
movl $0x94, %r9d
movb $0x0, %al
callq 0x199f0
callq 0x19370
jmp 0x335d5
jmp 0x335d7
cmpq $0x0, 0x8(%rsp)
jne 0x33617
movq 0x6089ba(%rip), %rax    # 0x63bfa0
movq (%rax), %rdi
leaq 0x4e2a23(%rip), %rsi    # 0x516013
leaq 0x4e554d(%rip), %rdx    # 0x518b44
leaq 0x4e9989(%rip), %rcx    # 0x51cf87
leaq 0x4e98f0(%rip), %r8     # 0x51cef5
movl $0x95, %r9d
movb $0x0, %al
callq 0x199f0
callq 0x19370
jmp 0x33619
movq 0x8(%rsp), %rax
movq 0x38(%rax), %rdi
callq 0x11dfa0
cmpq $0x0, %rax
jbe 0x3366a
movq 0x8(%rsp), %rax
movq 0x38(%rax), %rdi
callq 0x11dee0
movq %rax, %rdi
movq 0x10(%rsp), %rsi
callq 0x1099b0
movl %eax, 0x4(%rsp)
cmpl $0x0, 0x4(%rsp)
jge 0x3365c
movl $0xffffffff, (%rsp)     # imm = 0xFFFFFFFF
jmp 0x33668
movl 0x4(%rsp), %ecx
movq 0x8(%rsp), %rax
movl %ecx, 0x30(%rax)
jmp 0x3366a
movq 0x8(%rsp), %rax
cmpq $-0x1, 0x40(%rax)
jne 0x33693
movq 0x10(%rsp), %rdi
leaq 0x4e9926(%rip), %rsi    # 0x51cfa8
movb $0x0, %al
callq 0xd88c0
movl $0xffffffff, 0x24(%rsp) # imm = 0xFFFFFFFF
jmp 0x3369a
movl (%rsp), %eax
movl %eax, 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/tools/gt_encseq_sample.c
// Function: gt_encseq_sample_runner
static int gt_encseq_sample_runner(GT_UNUSED int argc, const char **argv,
                                   int parsed_args, void *tool_arguments,
                                   GT_UNUSED GtError *err)
{
  GtEncseq *encseq;
  GtEncseqSampleOutputInfo output;
  int had_err = 0;
  gt_error_check(err);
  encseq = gt_encseq_sample_get_encseq(argv[parsed_args], tool_arguments, err);
  if (encseq != NULL)
    had_err = gt_encseq_sample_choose_sequences(encseq, tool_arguments, err,
                                                &output);
  else
    had_err = -1;
  if (!had_err)
    had_err = gt_encseq_sample_output(encseq, tool_arguments, &output);
  gt_encseq_delete(encseq);
  return had_err;
}

// Assembly:
subq $0x48, %rsp
movl %edi, 0x44(%rsp)
movq %rsi, 0x38(%rsp)
movl %edx, 0x34(%rsp)
movq %rcx, 0x28(%rsp)
movq %r8, 0x20(%rsp)
movl $0x0, 0x4(%rsp)
cmpq $0x0, 0x20(%rsp)
je 0x33723
movq 0x20(%rsp), %rdi
callq 0xd8a60
testb $0x1, %al
jne 0x336eb
jmp 0x33723
movq 0x6088ae(%rip), %rax    # 0x63bfa0
movq (%rax), %rdi
leaq 0x4e2917(%rip), %rsi    # 0x516013
leaq 0x4e2abc(%rip), %rdx    # 0x5161bf
leaq 0x4e98b7(%rip), %rcx    # 0x51cfc1
leaq 0x4e97e4(%rip), %r8     # 0x51cef5
movl $0x15f, %r9d            # imm = 0x15F
movb $0x0, %al
callq 0x199f0
callq 0x19370
jmp 0x33725
movq 0x38(%rsp), %rax
movslq 0x34(%rsp), %rcx
movq (%rax,%rcx,8), %rdi
movq 0x28(%rsp), %rsi
movq 0x20(%rsp), %rdx
callq 0x337b0
movq %rax, 0x18(%rsp)
cmpq $0x0, 0x18(%rsp)
je 0x3376e
movq 0x18(%rsp), %rdi
movq 0x28(%rsp), %rsi
movq 0x20(%rsp), %rdx
leaq 0x8(%rsp), %rcx
callq 0x33970
movl %eax, 0x4(%rsp)
jmp 0x33776
movl $0xffffffff, 0x4(%rsp)  # imm = 0xFFFFFFFF
cmpl $0x0, 0x4(%rsp)
jne 0x33795
movq 0x18(%rsp), %rdi
movq 0x28(%rsp), %rsi
leaq 0x8(%rsp), %rdx
callq 0x33d10
movl %eax, 0x4(%rsp)
movq 0x18(%rsp), %rdi
callq 0xae070
movl 0x4(%rsp), %eax
addq $0x48, %rsp
retq
nopl (%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/tools/gt_eval.c
// Function: gt_eval_arguments_delete
static void gt_eval_arguments_delete(void *tool_arguments)
{
  EvalArguments *arguments = tool_arguments;
  if (!arguments) return;
  gt_file_delete(arguments->outfp);
  gt_output_file_info_delete(arguments->ofi);
  gt_free(arguments);
}

// Assembly:
subq $0x18, %rsp
movq %rdi, 0x10(%rsp)
movq 0x10(%rsp), %rax
movq %rax, 0x8(%rsp)
cmpq $0x0, 0x8(%rsp)
jne 0x3447d
jmp 0x344af
movq 0x8(%rsp), %rax
movq 0x18(%rax), %rdi
callq 0xde430
movq 0x8(%rsp), %rax
movq 0x10(%rax), %rdi
callq 0xf8210
movq 0x8(%rsp), %rdi
leaq 0x4e8c30(%rip), %rsi    # 0x51d0d5
movl $0x34, %edx
callq 0xe88c0
addq $0x18, %rsp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/tools/gt_extractfeat.c
// Function: gt_extractfeat_arguments_new
static void* gt_extractfeat_arguments_new(void)
{
  GtExtractFeatArguments *arguments = gt_calloc(1, sizeof *arguments);
  arguments->type = gt_str_new();
  arguments->s2fi = gt_seqid2file_info_new();
  arguments->ofi = gt_output_file_info_new();
  return arguments;
}

// Assembly:
pushq %rax
movl $0x1, %edi
movl $0x38, %esi
leaq 0x4e8bff(%rip), %rdx    # 0x51d301
movl $0x31, %ecx
callq 0xe83c0
movq %rax, (%rsp)
callq 0x11d4a0
movq %rax, %rcx
movq (%rsp), %rax
movq %rcx, 0x10(%rax)
callq 0x1d43b0
movq %rax, %rcx
movq (%rsp), %rax
movq %rcx, 0x18(%rax)
callq 0xf7d20
movq %rax, %rcx
movq (%rsp), %rax
movq %rcx, 0x28(%rax)
movq (%rsp), %rax
popq %rcx
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/tools/gt_extractfeat.c
// Function: gt_extractfeat_arguments_delete
static void gt_extractfeat_arguments_delete(void *tool_arguments)
{
  GtExtractFeatArguments *arguments = tool_arguments;
  if (!arguments) return;
  gt_file_delete(arguments->outfp);
  gt_output_file_info_delete(arguments->ofi);
  gt_seqid2file_info_delete(arguments->s2fi);
  gt_str_delete(arguments->type);
  gt_free(arguments);
}

// Assembly:
subq $0x18, %rsp
movq %rdi, 0x10(%rsp)
movq 0x10(%rsp), %rax
movq %rax, 0x8(%rsp)
cmpq $0x0, 0x8(%rsp)
jne 0x3476d
jmp 0x347bb
movq 0x8(%rsp), %rax
movq 0x30(%rax), %rdi
callq 0xde430
movq 0x8(%rsp), %rax
movq 0x28(%rax), %rdi
callq 0xf8210
movq 0x8(%rsp), %rax
movq 0x18(%rax), %rdi
callq 0x1d4420
movq 0x8(%rsp), %rax
movq 0x10(%rax), %rdi
callq 0x11f560
movq 0x8(%rsp), %rdi
leaq 0x4e8b50(%rip), %rsi    # 0x51d301
movl $0x40, %edx
callq 0xe88c0
addq $0x18, %rsp
retq
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/tools/gt_extractfeat.c
// Function: gt_extractfeat_comment_func
static int gt_extractfeat_comment_func(const char *progname,
                                       void *data, GtError *err)
{
  GtStrArray *descs = gt_trans_table_get_scheme_descriptions();
  GtUword i = 0;
  printf("\nGenetic code numbers for option '-gcode':\n\n");
  for (i = 0; i < gt_str_array_size(descs); i++) {
    printf("%s\n", gt_str_array_get(descs, i));
  }
  gt_str_array_delete(descs);
  return gt_gtdata_show_help(progname, data,err);
}

// Assembly:
subq $0x38, %rsp
movq %rdi, 0x30(%rsp)
movq %rsi, 0x28(%rsp)
movq %rdx, 0x20(%rsp)
callq 0x123e20
movq %rax, 0x18(%rsp)
movq $0x0, 0x10(%rsp)
leaq 0x4e87e0(%rip), %rdi    # 0x51d51d
movb $0x0, %al
callq 0x19070
movq $0x0, 0x10(%rsp)
movq 0x10(%rsp), %rax
movq %rax, 0x8(%rsp)
movq 0x18(%rsp), %rdi
callq 0x11fcc0
movq %rax, %rcx
movq 0x8(%rsp), %rax
cmpq %rcx, %rax
jae 0x34d9e
movq 0x18(%rsp), %rdi
movq 0x10(%rsp), %rsi
callq 0x11f8c0
movq %rax, %rsi
leaq 0x4f2165(%rip), %rdi    # 0x526eec
movb $0x0, %al
callq 0x19070
movq 0x10(%rsp), %rax
addq $0x1, %rax
movq %rax, 0x10(%rsp)
jmp 0x34d4d
movq 0x18(%rsp), %rdi
callq 0x11fd20
movq 0x30(%rsp), %rdi
movq 0x28(%rsp), %rsi
movq 0x20(%rsp), %rdx
callq 0x181ce0
addq $0x38, %rsp
retq
nopw %cs:(%rax,%rax)
nopl (%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/tools/gt_extractseq.c
// Function: gt_extractseq_arguments_new
static void* gt_extractseq_arguments_new(void)
{
  ExtractSeqArguments *arguments = gt_calloc((size_t) 1, sizeof *arguments);
  arguments->pattern = gt_str_new();
  arguments->fastakeyfile = gt_str_new();
  arguments->ofi = gt_output_file_info_new();
  return arguments;
}

// Assembly:
pushq %rax
movl $0x1, %edi
movl $0x38, %esi
leaq 0x4e874e(%rip), %rdx    # 0x51d560
movl $0x2d, %ecx
callq 0xe83c0
movq %rax, (%rsp)
callq 0x11d4a0
movq %rax, %rcx
movq (%rsp), %rax
movq %rcx, (%rax)
callq 0x11d4a0
movq %rax, %rcx
movq (%rsp), %rax
movq %rcx, 0x8(%rax)
callq 0xf7d20
movq %rax, %rcx
movq (%rsp), %rax
movq %rcx, 0x28(%rax)
movq (%rsp), %rax
popq %rcx
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/tools/gt_extractseq.c
// Function: gt_extractseq_arguments_delete
static void gt_extractseq_arguments_delete(void *tool_arguments)
{
  ExtractSeqArguments *arguments = tool_arguments;
  if (!arguments) return;
  gt_file_delete(arguments->outfp);
  gt_output_file_info_delete(arguments->ofi);
  gt_str_delete(arguments->fastakeyfile);
  gt_str_delete(arguments->pattern);
  gt_free(arguments);
}

// Assembly:
subq $0x18, %rsp
movq %rdi, 0x10(%rsp)
movq 0x10(%rsp), %rax
movq %rax, 0x8(%rsp)
cmpq $0x0, 0x8(%rsp)
jne 0x34e7d
jmp 0x34eca
movq 0x8(%rsp), %rax
movq 0x30(%rax), %rdi
callq 0xde430
movq 0x8(%rsp), %rax
movq 0x28(%rax), %rdi
callq 0xf8210
movq 0x8(%rsp), %rax
movq 0x8(%rax), %rdi
callq 0x11f560
movq 0x8(%rsp), %rax
movq (%rax), %rdi
callq 0x11f560
movq 0x8(%rsp), %rdi
leaq 0x4e86a0(%rip), %rsi    # 0x51d560
movl $0x3c, %edx
callq 0xe88c0
addq $0x18, %rsp
retq
nop
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/tools/gt_extractseq.c
// Function: gt_extractseq_arguments_check
static int gt_extractseq_arguments_check(GT_UNUSED int argc,
                                         void *tool_arguments, GtError *err)
{
  ExtractSeqArguments *arguments = tool_arguments;
  gt_error_check(err);
  gt_assert(arguments);
  if (arguments->frompos > arguments->topos) {
    gt_error_set(err,
              "argument to option '-%s' must be <= argument to option '-%s'",
              FROMPOS_OPTION_STR, TOPOS_OPTION_STR);
    return -1;
  }
  return 0;
}

// Assembly:
subq $0x28, %rsp
movl %edi, 0x20(%rsp)
movq %rsi, 0x18(%rsp)
movq %rdx, 0x10(%rsp)
movq 0x18(%rsp), %rax
movq %rax, 0x8(%rsp)
cmpq $0x0, 0x10(%rsp)
je 0x3513c
movq 0x10(%rsp), %rdi
callq 0xd8a60
testb $0x1, %al
jne 0x35104
jmp 0x3513c
movq 0x606e95(%rip), %rax    # 0x63bfa0
movq (%rax), %rdi
leaq 0x4e0efe(%rip), %rsi    # 0x516013
leaq 0x4e10a3(%rip), %rdx    # 0x5161bf
leaq 0x4e8600(%rip), %rcx    # 0x51d723
leaq 0x4e8436(%rip), %r8     # 0x51d560
movl $0x82, %r9d
movb $0x0, %al
callq 0x199f0
callq 0x19370
jmp 0x3513e
jmp 0x35140
cmpq $0x0, 0x8(%rsp)
jne 0x35180
movq 0x606e51(%rip), %rax    # 0x63bfa0
movq (%rax), %rdi
leaq 0x4e0eba(%rip), %rsi    # 0x516013
leaq 0x5459ff(%rip), %rdx    # 0x57ab5f
leaq 0x4e85bc(%rip), %rcx    # 0x51d723
leaq 0x4e83f2(%rip), %r8     # 0x51d560
movl $0x83, %r9d
movb $0x0, %al
callq 0x199f0
callq 0x19370
jmp 0x35182
movq 0x8(%rsp), %rax
movq 0x10(%rax), %rax
movq 0x8(%rsp), %rcx
cmpq 0x18(%rcx), %rax
jbe 0x351c1
movq 0x10(%rsp), %rdi
leaq 0x4e859f(%rip), %rsi    # 0x51d741
leaq 0x51678b(%rip), %rdx    # 0x54b934
leaq 0x4fa884(%rip), %rcx    # 0x52fa34
movb $0x0, %al
callq 0xd88c0
movl $0xffffffff, 0x24(%rsp) # imm = 0xFFFFFFFF
jmp 0x351c9
movl $0x0, 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/tools/gt_extracttarget.c
// Function: gt_extracttarget_arguments_delete
static void gt_extracttarget_arguments_delete(void *tool_arguments)
{
  ExtractTargetArguments *arguments = tool_arguments;
  if (!arguments) return;
  gt_str_array_delete(arguments->seqfiles);
  gt_free(arguments);
}

// Assembly:
subq $0x18, %rsp
movq %rdi, 0x10(%rsp)
movq 0x10(%rsp), %rax
movq %rax, 0x8(%rsp)
cmpq $0x0, 0x8(%rsp)
jne 0x35f5d
jmp 0x35f80
movq 0x8(%rsp), %rax
movq (%rax), %rdi
callq 0x11fd20
movq 0x8(%rsp), %rdi
leaq 0x4e7904(%rip), %rsi    # 0x51d87a
movl $0x32, %edx
callq 0xe88c0
addq $0x18, %rsp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/tools/gt_extracttarget.c
// Function: gt_extracttarget_option_parser_new
static GtOptionParser* gt_extracttarget_option_parser_new(void *tool_arguments)
{
  ExtractTargetArguments *arguments = tool_arguments;
  GtOptionParser *op;
  GtOption *o;
  gt_assert(arguments);

  /* init */
  op = gt_option_parser_new("[option ...] -seqfile sequence_file GFF3_file",
                         "Extract target sequences given in GFF3_file from "
                         "sequence_file.");

  /* -seqfile */
  o = gt_option_new_filename_array("seqfiles",
                                   "set the sequence file from which "
                                   "to extract the features",
                                   arguments->seqfiles);
  gt_option_is_mandatory(o);
  gt_option_parser_add_option(op, o);

  gt_option_parser_set_min_max_args(op, 1, 1);

  return op;
}

// Assembly:
subq $0x28, %rsp
movq %rdi, 0x20(%rsp)
movq 0x20(%rsp), %rax
movq %rax, 0x18(%rsp)
cmpq $0x0, 0x18(%rsp)
jne 0x35fe3
movq 0x605fee(%rip), %rax    # 0x63bfa0
movq (%rax), %rdi
leaq 0x4e0057(%rip), %rsi    # 0x516013
leaq 0x544b9c(%rip), %rdx    # 0x57ab5f
leaq 0x4e78cd(%rip), %rcx    # 0x51d897
leaq 0x4e78a9(%rip), %r8     # 0x51d87a
movl $0x3a, %r9d
movb $0x0, %al
callq 0x199f0
callq 0x19370
jmp 0x35fe5
leaq 0x4e78ce(%rip), %rdi    # 0x51d8ba
leaq 0x4e78f5(%rip), %rsi    # 0x51d8e8
callq 0xf1420
movq %rax, 0x10(%rsp)
movq 0x18(%rsp), %rax
movq (%rax), %rdx
leaq 0x4e798b(%rip), %rdi    # 0x51d997
leaq 0x4e7915(%rip), %rsi    # 0x51d928
callq 0xf6b00
movq %rax, 0x8(%rsp)
movq 0x8(%rsp), %rdi
callq 0xf6ca0
movq 0x10(%rsp), %rdi
movq 0x8(%rsp), %rsi
callq 0xf1600
movq 0x10(%rsp), %rdi
movl $0x1, %edx
movl %edx, %esi
callq 0xf2a40
movq 0x10(%rsp), %rax
addq $0x28, %rsp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/tools/gt_extracttarget.c
// Function: gt_extracttarget_runner
static int gt_extracttarget_runner(GT_UNUSED int argc, const char **argv,
                                   int parsed_args, void *tool_arguments,
                                   GtError *err)
{
  ExtractTargetArguments *arguments = tool_arguments;
  GtNodeStream *gff3_in_stream;
  GtGenomeNode *gn;
  int had_err;

  gt_error_check(err);
  gt_assert(arguments);

  gff3_in_stream = gt_gff3_in_stream_new_unsorted(1, argv + parsed_args);

  while (!(had_err = gt_node_stream_next(gff3_in_stream, &gn, err)) && gn) {
    had_err = extracttarget_from_node(gn, arguments->seqfiles, err);
    gt_genome_node_delete(gn);
  }

  gt_node_stream_delete(gff3_in_stream);

  return had_err;
}

// Assembly:
subq $0x48, %rsp
movl %edi, 0x44(%rsp)
movq %rsi, 0x38(%rsp)
movl %edx, 0x34(%rsp)
movq %rcx, 0x28(%rsp)
movq %r8, 0x20(%rsp)
movq 0x28(%rsp), %rax
movq %rax, 0x18(%rsp)
cmpq $0x0, 0x20(%rsp)
je 0x360d5
movq 0x20(%rsp), %rdi
callq 0xd8a60
testb $0x1, %al
jne 0x3609d
jmp 0x360d5
movq 0x605efc(%rip), %rax    # 0x63bfa0
movq (%rax), %rdi
leaq 0x4dff65(%rip), %rsi    # 0x516013
leaq 0x4e010a(%rip), %rdx    # 0x5161bf
leaq 0x4e78a5(%rip), %rcx    # 0x51d961
leaq 0x4e77b7(%rip), %r8     # 0x51d87a
movl $0xb6, %r9d
movb $0x0, %al
callq 0x199f0
callq 0x19370
jmp 0x360d7
jmp 0x360d9
cmpq $0x0, 0x18(%rsp)
jne 0x36119
movq 0x605eb8(%rip), %rax    # 0x63bfa0
movq (%rax), %rdi
leaq 0x4dff21(%rip), %rsi    # 0x516013
leaq 0x544a66(%rip), %rdx    # 0x57ab5f
leaq 0x4e7861(%rip), %rcx    # 0x51d961
leaq 0x4e7773(%rip), %r8     # 0x51d87a
movl $0xb7, %r9d
movb $0x0, %al
callq 0x199f0
callq 0x19370
jmp 0x3611b
movq 0x38(%rsp), %rsi
movslq 0x34(%rsp), %rax
shlq $0x3, %rax
addq %rax, %rsi
movl $0x1, %edi
callq 0x1746b0
movq %rax, 0x10(%rsp)
movq 0x10(%rsp), %rdi
movq 0x20(%rsp), %rdx
leaq 0x8(%rsp), %rsi
callq 0x1b1d90
movl %eax, %ecx
movl %ecx, 0x4(%rsp)
xorl %eax, %eax
cmpl $0x0, %ecx
movb %al, 0x3(%rsp)
jne 0x3616d
cmpq $0x0, 0x8(%rsp)
setne %al
movb %al, 0x3(%rsp)
movb 0x3(%rsp), %al
testb $0x1, %al
jne 0x36177
jmp 0x3619e
movq 0x8(%rsp), %rdi
movq 0x18(%rsp), %rax
movq (%rax), %rsi
movq 0x20(%rsp), %rdx
callq 0x361c0
movl %eax, 0x4(%rsp)
movq 0x8(%rsp), %rdi
callq 0x173180
jmp 0x3613b
movq 0x10(%rsp), %rdi
callq 0x1b1cb0
movl 0x4(%rsp), %eax
addq $0x48, %rsp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/tools/gt_extracttarget.c
// Function: extracttarget_from_node
static int extracttarget_from_node(GtGenomeNode *gn, GtStrArray *seqfiles,
                                   GtError *err)
{
  GtFeatureNodeIterator *fni;
  int had_err = 0;
  gt_error_check(err);
  gt_assert(gn && seqfiles);
  /* XXX */
  if (gt_genome_node_cast(gt_feature_node_class(), gn)) {
    const char *target;
    GtFeatureNode *child;
    fni = gt_feature_node_iterator_new(gt_feature_node_cast(gn));
    while (!had_err && /* XXX remove cast */
           (child = (GtFeatureNode*) gt_feature_node_iterator_next(fni))) {
      if ((target = gt_feature_node_get_attribute(child, "Target")))
        had_err = extracttarget_from_seqfiles(target, seqfiles, err);
    }
    gt_feature_node_iterator_delete(fni);
  }
  return had_err;
}

// Assembly:
subq $0x48, %rsp
movq %rdi, 0x40(%rsp)
movq %rsi, 0x38(%rsp)
movq %rdx, 0x30(%rsp)
movl $0x0, 0x24(%rsp)
cmpq $0x0, 0x30(%rsp)
je 0x3622b
movq 0x30(%rsp), %rdi
callq 0xd8a60
testb $0x1, %al
jne 0x361f3
jmp 0x3622b
movq 0x605da6(%rip), %rax    # 0x63bfa0
movq (%rax), %rdi
leaq 0x4dfe0f(%rip), %rsi    # 0x516013
leaq 0x4dffb4(%rip), %rdx    # 0x5161bf
leaq 0x4e7767(%rip), %rcx    # 0x51d979
leaq 0x4e7661(%rip), %r8     # 0x51d87a
movl $0x9c, %r9d
movb $0x0, %al
callq 0x199f0
callq 0x19370
jmp 0x3622d
jmp 0x3622f
cmpq $0x0, 0x40(%rsp)
je 0x3623f
cmpq $0x0, 0x38(%rsp)
jne 0x36277
movq 0x605d5a(%rip), %rax    # 0x63bfa0
movq (%rax), %rdi
leaq 0x4dfdc3(%rip), %rsi    # 0x516013
leaq 0x4e773a(%rip), %rdx    # 0x51d991
leaq 0x4e771b(%rip), %rcx    # 0x51d979
leaq 0x4e7615(%rip), %r8     # 0x51d87a
movl $0x9d, %r9d
movb $0x0, %al
callq 0x199f0
callq 0x19370
jmp 0x36279
callq 0x16c440
movq %rax, %rdi
movq 0x40(%rsp), %rsi
callq 0x171980
cmpq $0x0, %rax
je 0x3631d
movq 0x40(%rsp), %rdi
callq 0x16c9b0
movq %rax, %rdi
callq 0x170b00
movq %rax, 0x28(%rsp)
xorl %eax, %eax
cmpl $0x0, 0x24(%rsp)
movb %al, 0xf(%rsp)
jne 0x362d3
movq 0x28(%rsp), %rdi
callq 0x170e30
movq %rax, 0x10(%rsp)
cmpq $0x0, %rax
setne %al
movb %al, 0xf(%rsp)
movb 0xf(%rsp), %al
testb $0x1, %al
jne 0x362dd
jmp 0x36313
movq 0x10(%rsp), %rdi
leaq 0x4e76b7(%rip), %rsi    # 0x51d9a0
callq 0x16c040
movq %rax, 0x18(%rsp)
cmpq $0x0, %rax
je 0x36311
movq 0x18(%rsp), %rdi
movq 0x38(%rsp), %rsi
movq 0x30(%rsp), %rdx
callq 0x36330
movl %eax, 0x24(%rsp)
jmp 0x362ac
movq 0x28(%rsp), %rdi
callq 0x170f50
movl 0x24(%rsp), %eax
addq $0x48, %rsp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/tools/gt_extracttarget.c
// Function: show_target
static bool show_target(GT_UNUSED GtUword pos, void *data)
{
  TargetInfo *ti = data;
  char *seq;
  gt_assert(ti);
  seq = gt_bioseq_get_sequence(ti->bioseq, ti->seqnum);
  gt_fasta_show_entry(gt_bioseq_get_description(ti->bioseq, ti->seqnum),
                      seq,
                      gt_bioseq_get_sequence_length(ti->bioseq, ti->seqnum), 0,
                      NULL);
  gt_free(seq);
  return true;
}

// Assembly:
subq $0x38, %rsp
movq %rdi, 0x30(%rsp)
movq %rsi, 0x28(%rsp)
movq 0x28(%rsp), %rax
movq %rax, 0x20(%rsp)
cmpq $0x0, 0x20(%rsp)
jne 0x367d8
movq 0x6057f9(%rip), %rax    # 0x63bfa0
movq (%rax), %rdi
leaq 0x4df862(%rip), %rsi    # 0x516013
leaq 0x4fdaaa(%rip), %rdx    # 0x534262
leaq 0x4e7217(%rip), %rcx    # 0x51d9d6
leaq 0x4e70b4(%rip), %r8     # 0x51d87a
movl $0x57, %r9d
movb $0x0, %al
callq 0x199f0
callq 0x19370
jmp 0x367da
movq 0x20(%rsp), %rax
movq (%rax), %rdi
movq 0x20(%rsp), %rax
movq 0x8(%rax), %rsi
callq 0x84cc0
movq %rax, 0x18(%rsp)
movq 0x20(%rsp), %rax
movq (%rax), %rdi
movq 0x20(%rsp), %rax
movq 0x8(%rax), %rsi
callq 0x84ea0
movq %rax, 0x8(%rsp)
movq 0x18(%rsp), %rax
movq %rax, 0x10(%rsp)
movq 0x20(%rsp), %rax
movq (%rax), %rdi
movq 0x20(%rsp), %rax
movq 0x8(%rax), %rsi
callq 0x84e30
movq 0x8(%rsp), %rdi
movq 0x10(%rsp), %rsi
movq %rax, %rdx
xorl %eax, %eax
movl %eax, %r8d
movq %r8, %rcx
callq 0xdbd10
movq 0x18(%rsp), %rdi
leaq 0x4e7024(%rip), %rsi    # 0x51d87a
movl $0x5d, %edx
callq 0xe88c0
movb $0x1, %al
andb $0x1, %al
addq $0x38, %rsp
retq
nopl (%rax)
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/tools/gt_fastq_sample.c
// Function: gt_fastq_sample_option_parser_new
static GtOptionParser* gt_fastq_sample_option_parser_new(void *tool_arguments)
{
  GtFastqSampleArguments *arguments = tool_arguments;
  GtOptionParser *op;
  GtOption *optionlength;
  gt_assert(arguments);

  /* init */
  op = gt_option_parser_new("[option ...] -length <n> <fastq_file> "
                            "[<fastq_file>...]",
                            "Print samples by random choice from given FASTQ "\
                            "files using at least n sequence-chars.\n"\
                            "Output is fastq/fasta format depending on "\
                            "whether qualities are available.");

  /* -length */
  optionlength = gt_option_new_uword("length",
                                     "minimum number of chars to be chosen",
                                     &arguments->length,
                                     GT_UNDEF_UWORD);
  gt_option_is_mandatory(optionlength);
  gt_option_parser_add_option(op, optionlength);

  gt_option_parser_set_min_args(op, 1);

  return op;
}

// Assembly:
subq $0x28, %rsp
movq %rdi, 0x20(%rsp)
movq 0x20(%rsp), %rax
movq %rax, 0x18(%rsp)
cmpq $0x0, 0x18(%rsp)
jne 0x36963
movq 0x60566e(%rip), %rax    # 0x63bfa0
movq (%rax), %rdi
leaq 0x4df6d7(%rip), %rsi    # 0x516013
leaq 0x54421c(%rip), %rdx    # 0x57ab5f
leaq 0x4e70b4(%rip), %rcx    # 0x51d9fe
leaq 0x4e7091(%rip), %r8     # 0x51d9e2
movl $0x39, %r9d
movb $0x0, %al
callq 0x199f0
callq 0x19370
jmp 0x36965
leaq 0x4e70b4(%rip), %rdi    # 0x51da20
leaq 0x4e70e5(%rip), %rsi    # 0x51da58
callq 0xf1420
movq %rax, 0x10(%rsp)
movq 0x18(%rsp), %rdx
leaq 0x557fc2(%rip), %rdi    # 0x58e94b
leaq 0x4e716a(%rip), %rsi    # 0x51dafa
movq $-0x1, %rcx
callq 0xf5fe0
movq %rax, 0x8(%rsp)
movq 0x8(%rsp), %rdi
callq 0xf6ca0
movq 0x10(%rsp), %rdi
movq 0x8(%rsp), %rsi
callq 0xf1600
movq 0x10(%rsp), %rdi
movl $0x1, %esi
callq 0xf2980
movq 0x10(%rsp), %rax
addq $0x28, %rsp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/tools/gt_fastq_sample.c
// Function: gt_fastq_sample_arguments_check
static int gt_fastq_sample_arguments_check(GT_UNUSED int rest_argc,
                                           void *tool_arguments,
                                           GtError *err)
{
  GtFastqSampleArguments *arguments = tool_arguments;
  int had_err = 0;
  gt_error_check(err);
  gt_assert(arguments);

  if (arguments->length < 1) {
    gt_error_set(err, "length must be a positive integer");
    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 0x36a54
movq 0x10(%rsp), %rdi
callq 0xd8a60
testb $0x1, %al
jne 0x36a1c
jmp 0x36a54
movq 0x60557d(%rip), %rax    # 0x63bfa0
movq (%rax), %rdi
leaq 0x4df5e6(%rip), %rsi    # 0x516013
leaq 0x4df78b(%rip), %rdx    # 0x5161bf
leaq 0x4e70e4(%rip), %rcx    # 0x51db1f
leaq 0x4e6fa0(%rip), %r8     # 0x51d9e2
movl $0x56, %r9d
movb $0x0, %al
callq 0x199f0
callq 0x19370
jmp 0x36a56
jmp 0x36a58
cmpq $0x0, 0x8(%rsp)
jne 0x36a98
movq 0x605539(%rip), %rax    # 0x63bfa0
movq (%rax), %rdi
leaq 0x4df5a2(%rip), %rsi    # 0x516013
leaq 0x5440e7(%rip), %rdx    # 0x57ab5f
leaq 0x4e70a0(%rip), %rcx    # 0x51db1f
leaq 0x4e6f5c(%rip), %r8     # 0x51d9e2
movl $0x57, %r9d
movb $0x0, %al
callq 0x199f0
callq 0x19370
jmp 0x36a9a
movq 0x8(%rsp), %rax
cmpq $0x1, (%rax)
jae 0x36ac0
movq 0x10(%rsp), %rdi
leaq 0x4e708e(%rip), %rsi    # 0x51db3f
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/tools/gt_fastq_sample.c
// Function: gt_fastq_sample_runner
static int gt_fastq_sample_runner(int argc, const char **argv, int parsed_args,
                              void *tool_arguments, GT_UNUSED GtError *err)
{
  GtFastqSampleArguments *arguments = tool_arguments;
  int had_err = 0;
  GtStrArray* filenames;
  int i;

  gt_error_check(err);
  gt_assert(arguments);

  filenames = gt_str_array_new();
  for (i = parsed_args; i < argc; i++) {
    gt_str_array_add_cstr(filenames, argv[i]);
  }
  gt_assert(gt_str_array_size(filenames) > 0);
  had_err = gt_fastq_sample_print(filenames, arguments, err);
  gt_str_array_delete(filenames);
  return had_err;
}

// Assembly:
subq $0x48, %rsp
movl %edi, 0x44(%rsp)
movq %rsi, 0x38(%rsp)
movl %edx, 0x34(%rsp)
movq %rcx, 0x28(%rsp)
movq %r8, 0x20(%rsp)
movq 0x28(%rsp), %rax
movq %rax, 0x18(%rsp)
movl $0x0, 0x14(%rsp)
cmpq $0x0, 0x20(%rsp)
je 0x36b4d
movq 0x20(%rsp), %rdi
callq 0xd8a60
testb $0x1, %al
jne 0x36b15
jmp 0x36b4d
movq 0x605484(%rip), %rax    # 0x63bfa0
movq (%rax), %rdi
leaq 0x4df4ed(%rip), %rsi    # 0x516013
leaq 0x4df692(%rip), %rdx    # 0x5161bf
leaq 0x4e702d(%rip), %rcx    # 0x51db61
leaq 0x4e6ea7(%rip), %r8     # 0x51d9e2
movl $0xbd, %r9d
movb $0x0, %al
callq 0x199f0
callq 0x19370
jmp 0x36b4f
jmp 0x36b51
cmpq $0x0, 0x18(%rsp)
jne 0x36b91
movq 0x605440(%rip), %rax    # 0x63bfa0
movq (%rax), %rdi
leaq 0x4df4a9(%rip), %rsi    # 0x516013
leaq 0x543fee(%rip), %rdx    # 0x57ab5f
leaq 0x4e6fe9(%rip), %rcx    # 0x51db61
leaq 0x4e6e63(%rip), %r8     # 0x51d9e2
movl $0xbe, %r9d
movb $0x0, %al
callq 0x199f0
callq 0x19370
jmp 0x36b93
callq 0x11f5c0
movq %rax, 0x8(%rsp)
movl 0x34(%rsp), %eax
movl %eax, 0x4(%rsp)
movl 0x4(%rsp), %eax
cmpl 0x44(%rsp), %eax
jge 0x36bd4
movq 0x8(%rsp), %rdi
movq 0x38(%rsp), %rax
movslq 0x4(%rsp), %rcx
movq (%rax,%rcx,8), %rsi
callq 0x11f720
movl 0x4(%rsp), %eax
addl $0x1, %eax
movl %eax, 0x4(%rsp)
jmp 0x36ba5
jmp 0x36bd6
movq 0x8(%rsp), %rdi
callq 0x11fcc0
cmpq $0x0, %rax
ja 0x36c1e
movq 0x6053b3(%rip), %rax    # 0x63bfa0
movq (%rax), %rdi
leaq 0x4df41c(%rip), %rsi    # 0x516013
leaq 0x4e6f7a(%rip), %rdx    # 0x51db78
leaq 0x4e6f5c(%rip), %rcx    # 0x51db61
leaq 0x4e6dd6(%rip), %r8     # 0x51d9e2
movl $0xc4, %r9d
movb $0x0, %al
callq 0x199f0
callq 0x19370
jmp 0x36c20
movq 0x8(%rsp), %rdi
movq 0x18(%rsp), %rsi
movq 0x20(%rsp), %rdx
callq 0x36c50
movl %eax, 0x14(%rsp)
movq 0x8(%rsp), %rdi
callq 0x11fd20
movl 0x14(%rsp), %eax
addq $0x48, %rsp
retq
nopl (%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/tools/gt_featureindex.c
// Function: gt_featureindex_arguments_new
static void* gt_featureindex_arguments_new(void)
{
  GtFeatureindexArguments *arguments = gt_calloc(1, sizeof *arguments);
  arguments->seqid = gt_str_new();
  arguments->backend = gt_str_new();
  arguments->filename = gt_str_new();
  arguments->host = gt_str_new();
  arguments->user = gt_str_new();
  arguments->database = gt_str_new();
  return arguments;
}

// Assembly:
pushq %rax
movl $0x1, %edi
movl $0x58, %esi
leaq 0x4e6b66(%rip), %rdx    # 0x51dc08
movl $0x3d, %ecx
callq 0xe83c0
movq %rax, (%rsp)
callq 0x11d4a0
movq %rax, %rcx
movq (%rsp), %rax
movq %rcx, 0x10(%rax)
callq 0x11d4a0
movq %rax, %rcx
movq (%rsp), %rax
movq %rcx, 0x18(%rax)
callq 0x11d4a0
movq %rax, %rcx
movq (%rsp), %rax
movq %rcx, 0x20(%rax)
callq 0x11d4a0
movq %rax, %rcx
movq (%rsp), %rax
movq %rcx, 0x28(%rax)
callq 0x11d4a0
movq %rax, %rcx
movq (%rsp), %rax
movq %rcx, 0x30(%rax)
callq 0x11d4a0
movq %rax, %rcx
movq (%rsp), %rax
movq %rcx, 0x40(%rax)
movq (%rsp), %rax
popq %rcx
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/tools/gt_featureindex.c
// Function: gt_featureindex_arguments_delete
static void gt_featureindex_arguments_delete(void *tool_arguments)
{
  GtFeatureindexArguments *arguments = tool_arguments;
  if (!arguments) return;
  gt_str_delete(arguments->seqid);
  gt_str_delete(arguments->backend);
  gt_str_delete(arguments->filename);
  gt_str_delete(arguments->host);
  gt_str_delete(arguments->user);
  gt_str_delete(arguments->pass);
  gt_str_delete(arguments->database);
  gt_option_delete(arguments->rngopt);
  gt_free(arguments);
}

// Assembly:
subq $0x18, %rsp
movq %rdi, 0x10(%rsp)
movq 0x10(%rsp), %rax
movq %rax, 0x8(%rsp)
cmpq $0x0, 0x8(%rsp)
jne 0x37140
jmp 0x371c6
movq 0x8(%rsp), %rax
movq 0x10(%rax), %rdi
callq 0x11f560
movq 0x8(%rsp), %rax
movq 0x18(%rax), %rdi
callq 0x11f560
movq 0x8(%rsp), %rax
movq 0x20(%rax), %rdi
callq 0x11f560
movq 0x8(%rsp), %rax
movq 0x28(%rax), %rdi
callq 0x11f560
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 0x40(%rax), %rdi
callq 0x11f560
movq 0x8(%rsp), %rax
movq 0x50(%rax), %rdi
callq 0xf5df0
movq 0x8(%rsp), %rdi
leaq 0x4e6a4c(%rip), %rsi    # 0x51dc08
movl $0x53, %edx
callq 0xe88c0
addq $0x18, %rsp
retq
nopl (%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/tools/gt_featureindex.c
// Function: gt_featureindex_arguments_check
static int gt_featureindex_arguments_check(GT_UNUSED int rest_argc,
                                           GT_UNUSED void *tool_arguments,
                                           GT_UNUSED GtError *err)
{
  GT_UNUSED GtFeatureindexArguments *arguments = tool_arguments;
  int had_err = 0;
  gt_error_check(err);
  gt_assert(arguments);

  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 0x37494
movq 0x10(%rsp), %rdi
callq 0xd8a60
testb $0x1, %al
jne 0x3745c
jmp 0x37494
movq 0x604b3d(%rip), %rax    # 0x63bfa0
movq (%rax), %rdi
leaq 0x4deba6(%rip), %rsi    # 0x516013
leaq 0x4ded4b(%rip), %rdx    # 0x5161bf
leaq 0x4e693c(%rip), %rcx    # 0x51ddb7
leaq 0x4e6786(%rip), %r8     # 0x51dc08
movl $0xbf, %r9d
movb $0x0, %al
callq 0x199f0
callq 0x19370
jmp 0x37496
jmp 0x37498
cmpq $0x0, 0x8(%rsp)
jne 0x374d8
movq 0x604af9(%rip), %rax    # 0x63bfa0
movq (%rax), %rdi
leaq 0x4deb62(%rip), %rsi    # 0x516013
leaq 0x5436a7(%rip), %rdx    # 0x57ab5f
leaq 0x4e68f8(%rip), %rcx    # 0x51ddb7
leaq 0x4e6742(%rip), %r8     # 0x51dc08
movl $0xc0, %r9d
movb $0x0, %al
callq 0x199f0
callq 0x19370
jmp 0x374da
movl 0x4(%rsp), %eax
addq $0x28, %rsp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/tools/gt_fingerprint.c
// Function: gt_fingerprint_arguments_new
static void* gt_fingerprint_arguments_new(void)
{
  FingerprintArguments *arguments = gt_calloc(1, sizeof *arguments);
  arguments->checklist = gt_str_new();
  arguments->extract = gt_str_new();
  arguments->ofi = gt_output_file_info_new();
  return arguments;
}

// Assembly:
pushq %rax
movl $0x1, %edi
movl $0x30, %esi
leaq 0x4e629b(%rip), %rdx    # 0x51de0d
movl $0x2e, %ecx
callq 0xe83c0
movq %rax, (%rsp)
callq 0x11d4a0
movq %rax, %rcx
movq (%rsp), %rax
movq %rcx, 0x8(%rax)
callq 0x11d4a0
movq %rax, %rcx
movq (%rsp), %rax
movq %rcx, 0x10(%rax)
callq 0xf7d20
movq %rax, %rcx
movq (%rsp), %rax
movq %rcx, 0x20(%rax)
movq (%rsp), %rax
popq %rcx
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/tools/gt_fingerprint.c
// Function: gt_fingerprint_arguments_delete
static void gt_fingerprint_arguments_delete(void *tool_arguments)
{
  FingerprintArguments *arguments = tool_arguments;
  if (!arguments) return;
  gt_file_delete(arguments->outfp);
  gt_output_file_info_delete(arguments->ofi);
  gt_str_delete(arguments->extract);
  gt_str_delete(arguments->checklist);
  gt_free(arguments);
}

// Assembly:
subq $0x18, %rsp
movq %rdi, 0x10(%rsp)
movq 0x10(%rsp), %rax
movq %rax, 0x8(%rsp)
cmpq $0x0, 0x8(%rsp)
jne 0x37bdd
jmp 0x37c2b
movq 0x8(%rsp), %rax
movq 0x28(%rax), %rdi
callq 0xde430
movq 0x8(%rsp), %rax
movq 0x20(%rax), %rdi
callq 0xf8210
movq 0x8(%rsp), %rax
movq 0x10(%rax), %rdi
callq 0x11f560
movq 0x8(%rsp), %rax
movq 0x8(%rax), %rdi
callq 0x11f560
movq 0x8(%rsp), %rdi
leaq 0x4e61ec(%rip), %rsi    # 0x51de0d
movl $0x3d, %edx
callq 0xe88c0
addq $0x18, %rsp
retq