// File: /workspace/github_c_makefile_star2_O2/genometools[P]genometools/src/tools/gt_tagerator.c
// Function: gt_tagerator_runner
static int gt_tagerator_runner(GT_UNUSED int argc,
                               GT_UNUSED const char **argv,
                               GT_UNUSED int parsed_args,
                               void *tool_arguments, GtError *err)
{
  TageratorOptions *arguments = tool_arguments;
  bool haserr = false;
  GtUword idx;

  gt_error_check(err);
  gt_assert(arguments != NULL);

  gt_assert(parsed_args == argc);
  if (arguments->userdefinedmaxdistance == -1L)
  {
    printf("# computing matching statistics\n");
  } else
  {
    if (arguments->maxintervalwidth == 0)
    {
      printf("# computing complete matches");
    } else
    {
      printf("# computing prefix matches");
    }
    if (arguments->userdefinedmaxdistance == 0)
    {
      printf(" without differences (exact matches)");
    } else
    {
      printf(" with up to "GT_WD" differences",
             arguments->userdefinedmaxdistance);
    }
    if (arguments->maxintervalwidth > 0)
    {
      printf(" and at most "GT_WU" occurrences in the subject sequences",
             arguments->maxintervalwidth);
    }
    printf("\n");
  }
  printf("# indexname(%s)=%s\n",arguments->withesa ? "esa" : "pck",
                                gt_str_get(arguments->indexname));
  for (idx=0; idx<gt_str_array_size(arguments->tagfiles); idx++)
  {
    printf("# queryfile=%s\n",gt_str_array_get(arguments->tagfiles,idx));
  }
  if (gt_runtagerator(arguments,err) != 0)
  {
    haserr = true;
  }
  return haserr ? -1 : 0;
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r12
pushq %rbx
movq %r8, %rbx
movq %rcx, %r14
movl %edx, %ebp
movl %edi, %r15d
testq %r8, %r8
je 0x532d8
movq %rbx, %rdi
callq 0x89eb7
testb %al, %al
jne 0x53443
testq %r14, %r14
je 0x533e7
cmpl %r15d, %ebp
jne 0x53415
cmpq $-0x1, 0x48(%r14)
je 0x53328
cmpq $0x0, 0x58(%r14)
leaq 0x2a9344(%rip), %rax    # 0x2fc641
leaq 0x2a935a(%rip), %rdi    # 0x2fc65e
cmoveq %rax, %rdi
xorl %eax, %eax
callq 0x17070
movq 0x48(%r14), %rsi
testq %rsi, %rsi
je 0x53336
leaq 0x2a937f(%rip), %rdi    # 0x2fc69e
xorl %eax, %eax
callq 0x17070
jmp 0x53344
leaq 0x2a93c1(%rip), %rdi    # 0x2fc6f0
callq 0x17b60
jmp 0x53363
leaq 0x2a933c(%rip), %rdi    # 0x2fc679
xorl %eax, %eax
callq 0x17070
movq 0x58(%r14), %rsi
testq %rsi, %rsi
je 0x5335b
leaq 0x2a9366(%rip), %rdi    # 0x2fc6ba
xorl %eax, %eax
callq 0x17070
pushq $0xa
popq %rdi
callq 0x179c0
leaq 0x2a6893(%rip), %rax    # 0x2f9bfd
cmpb $0x0, 0x39(%r14)
leaq 0x29a438(%rip), %r15    # 0x2ed7ae
cmovneq %rax, %r15
movq 0x10(%r14), %rdi
callq 0xad1fa
leaq 0x29bf56(%rip), %rdi    # 0x2ef2e0
movq %r15, %rsi
movq %rax, %rdx
xorl %eax, %eax
callq 0x17070
leaq 0x296a9c(%rip), %r15    # 0x2e9e3a
xorl %r12d, %r12d
movq (%r14), %rdi
callq 0xae61c
cmpq %rax, %r12
jae 0x533cb
movq (%r14), %rdi
movq %r12, %rsi
callq 0xae386
movq %r15, %rdi
movq %rax, %rsi
xorl %eax, %eax
callq 0x17070
incq %r12
jmp 0x533a1
movq %r14, %rdi
movq %rbx, %rsi
callq 0x1b2648
xorl %ecx, %ecx
negl %eax
sbbl %ecx, %ecx
movl %ecx, %eax
popq %rbx
popq %r12
popq %r14
popq %r15
popq %rbp
retq
movq 0x3e4b7a(%rip), %rax    # 0x437f68
movq (%rax), %rdi
leaq 0x291c1b(%rip), %rsi    # 0x2e5013
leaq 0x292e6d(%rip), %rdx    # 0x2e626c
leaq 0x2a9227(%rip), %rcx    # 0x2fc62d
leaq 0x2a8ce4(%rip), %r8     # 0x2fc0f1
movl $0x10e, %r9d            # imm = 0x10E
jmp 0x5346f
movq 0x3e4b4c(%rip), %rax    # 0x437f68
movq (%rax), %rdi
leaq 0x291bed(%rip), %rsi    # 0x2e5013
leaq 0x293493(%rip), %rdx    # 0x2e68c0
leaq 0x2a91f9(%rip), %rcx    # 0x2fc62d
leaq 0x2a8cb6(%rip), %r8     # 0x2fc0f1
movl $0x110, %r9d            # imm = 0x110
jmp 0x5346f
movq 0x3e4b1e(%rip), %rax    # 0x437f68
movq (%rax), %rdi
leaq 0x291bbf(%rip), %rsi    # 0x2e5013
leaq 0x291d64(%rip), %rdx    # 0x2e51bf
leaq 0x2a91cb(%rip), %rcx    # 0x2fc62d
leaq 0x2a8c88(%rip), %r8     # 0x2fc0f1
movl $0x10d, %r9d            # imm = 0x10D
xorl %eax, %eax
callq 0x17a50
callq 0x17390
nop