// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/tools/gt_encseq_encode.c
// Function: gt_encseq_encode_runner
static int gt_encseq_encode_runner(GT_UNUSED int argc, const char **argv,
                               int parsed_args, GT_UNUSED void *tool_arguments,
                               GtError *err)
{
  int had_err = 0,
      i;
  GtEncseqEncodeArguments *arguments =
                                      (GtEncseqEncodeArguments*) tool_arguments;
  GtStrArray *infiles;
  gt_error_check(err);

  infiles = gt_str_array_new();
  for (i = parsed_args; i < argc; i++) {
    gt_str_array_add_cstr(infiles, argv[i]);
  }

  if (gt_str_length(arguments->indexname) == 0UL) {
    if (gt_str_array_size(infiles) > 1UL) {
      gt_error_set(err,"if more than one input file is given, then "
                       "option -indexname is mandatory");
      had_err = -1;
    } else {
      char *basenameptr;
      basenameptr = gt_basename(gt_str_array_get(infiles, 0UL));
      gt_str_set(arguments->indexname, basenameptr);
      gt_free(basenameptr);
    }
  }

  if (!had_err) {
    gt_assert(gt_str_length(arguments->indexname) > 0UL);
    had_err = encode_sequence_files(infiles,
                                    arguments->eopts,
                                    gt_str_get(arguments->indexname),
                                    arguments->verbose,
                                    arguments->no_esq_header,
                                    err);
  }

  if (!had_err && arguments->showstats)
    show_encoded_statistics(infiles, gt_str_get(arguments->indexname));

  gt_str_array_delete(infiles);
  return had_err;
}

// Assembly:
subq $0x68, %rsp
movl %edi, 0x64(%rsp)
movq %rsi, 0x58(%rsp)
movl %edx, 0x54(%rsp)
movq %rcx, 0x48(%rsp)
movq %r8, 0x40(%rsp)
movl $0x0, 0x3c(%rsp)
movq 0x48(%rsp), %rax
movq %rax, 0x30(%rsp)
cmpq $0x0, 0x40(%rsp)
je 0x30c0d
movq 0x40(%rsp), %rdi
callq 0xd8a60
testb $0x1, %al
jne 0x30bd5
jmp 0x30c0d
movq 0x60b3c4(%rip), %rax    # 0x63bfa0
movq (%rax), %rdi
leaq 0x4e542d(%rip), %rsi    # 0x516013
leaq 0x4e55d2(%rip), %rdx    # 0x5161bf
leaq 0x4ebc0a(%rip), %rcx    # 0x51c7fe
leaq 0x4ebb22(%rip), %r8     # 0x51c71d
movl $0xa4, %r9d
movb $0x0, %al
callq 0x199f0
callq 0x19370
jmp 0x30c0f
callq 0x11f5c0
movq %rax, 0x28(%rsp)
movl 0x54(%rsp), %eax
movl %eax, 0x38(%rsp)
movl 0x38(%rsp), %eax
cmpl 0x64(%rsp), %eax
jge 0x30c50
movq 0x28(%rsp), %rdi
movq 0x58(%rsp), %rax
movslq 0x38(%rsp), %rcx
movq (%rax,%rcx,8), %rsi
callq 0x11f720
movl 0x38(%rsp), %eax
addl $0x1, %eax
movl %eax, 0x38(%rsp)
jmp 0x30c21
movq 0x30(%rsp), %rax
movq 0x10(%rax), %rdi
callq 0x11dfa0
cmpq $0x0, %rax
jne 0x30cd7
movq 0x28(%rsp), %rdi
callq 0x11fcc0
cmpq $0x1, %rax
jbe 0x30c91
movq 0x40(%rsp), %rdi
leaq 0x4ebb96(%rip), %rsi    # 0x51c816
movb $0x0, %al
callq 0xd88c0
movl $0xffffffff, 0x3c(%rsp) # imm = 0xFFFFFFFF
jmp 0x30cd5
movq 0x28(%rsp), %rdi
xorl %eax, %eax
movl %eax, %esi
callq 0x11f8c0
movq %rax, %rdi
callq 0x83ee0
movq %rax, 0x20(%rsp)
movq 0x30(%rsp), %rax
movq 0x10(%rax), %rdi
movq 0x20(%rsp), %rsi
callq 0x11d650
movq 0x20(%rsp), %rdi
leaq 0x4eba52(%rip), %rsi    # 0x51c71d
movl $0xb4, %edx
callq 0xe88c0
jmp 0x30cd7
cmpl $0x0, 0x3c(%rsp)
jne 0x30d8e
jmp 0x30ce4
movq 0x30(%rsp), %rax
movq 0x10(%rax), %rdi
callq 0x11dfa0
cmpq $0x0, %rax
ja 0x30d30
movq 0x60b2a1(%rip), %rax    # 0x63bfa0
movq (%rax), %rdi
leaq 0x4e530a(%rip), %rsi    # 0x516013
leaq 0x4ebb50(%rip), %rdx    # 0x51c860
leaq 0x4ebae7(%rip), %rcx    # 0x51c7fe
leaq 0x4eb9ff(%rip), %r8     # 0x51c71d
movl $0xb9, %r9d
movb $0x0, %al
callq 0x199f0
callq 0x19370
jmp 0x30d32
movq 0x28(%rsp), %rax
movq %rax, 0x10(%rsp)
movq 0x30(%rsp), %rax
movq (%rax), %rax
movq %rax, 0x18(%rsp)
movq 0x30(%rsp), %rax
movq 0x10(%rax), %rdi
callq 0x11dee0
movq 0x10(%rsp), %rdi
movq 0x18(%rsp), %rsi
movq %rax, %rdx
movq 0x30(%rsp), %rax
movb 0xa(%rax), %cl
movq 0x30(%rsp), %rax
movb 0x9(%rax), %al
movq 0x40(%rsp), %r9
andb $0x1, %cl
andb $0x1, %al
movzbl %cl, %ecx
movzbl %al, %r8d
callq 0x30de0
movl %eax, 0x3c(%rsp)
cmpl $0x0, 0x3c(%rsp)
jne 0x30dc5
movq 0x30(%rsp), %rax
testb $0x1, 0x8(%rax)
je 0x30dc5
movq 0x28(%rsp), %rax
movq %rax, 0x8(%rsp)
movq 0x30(%rsp), %rax
movq 0x10(%rax), %rdi
callq 0x11dee0
movq 0x8(%rsp), %rdi
movq %rax, %rsi
callq 0x30f70
movq 0x28(%rsp), %rdi
callq 0x11fd20
movl 0x3c(%rsp), %eax
addq $0x68, %rsp
retq
nopl (%rax,%rax)