// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/tools/gt_tallymer.c
// Function: gt_tyr_mkindex_runner
static int gt_tyr_mkindex_runner(GT_UNUSED int argc,
                                 GT_UNUSED const char **argv,
                                 GT_UNUSED int parsed_args,
                                 void *tool_arguments,
                                 GtError *err)
{
  Tyr_mkindex_options *arguments = tool_arguments;
  GtLogger *logger;
  bool haserr = false;

  logger = gt_logger_new(arguments->verbose, GT_LOGGER_DEFLT_PREFIX, stdout);
  if (arguments->verbose)
  {
    printf("# mersize="GT_WU"\n",arguments->mersize);
    if (arguments->userdefinedminocc > 0)
    {
      printf("# minocc="GT_WU"\n",arguments->userdefinedminocc);
    } else
    {
      printf("# minocc=undefined\n");
    }
    if (arguments->userdefinedmaxocc > 0)
    {
      printf("# maxocc="GT_WU"\n",arguments->userdefinedmaxocc);
    } else
    {
      printf("# maxocc=undefined\n");
    }
    printf("# prefixlength=");
    if (arguments->prefixlength.flag == Autoprefixlength)
    {
      printf("automatic");
    } else
    {
      if (arguments->prefixlength.flag == Determinedprefixlength)
      {
        printf("%u",arguments->prefixlength.value);
      } else
      {
        printf("undefined");
      }
    }
    printf("\n");
    if (gt_str_length(arguments->str_storeindex) > 0)
    {
      printf("# storeindex=%s\n",gt_str_get(arguments->str_storeindex));
    }
    printf("# inputindex=%s\n",gt_str_get(arguments->str_inputindex));
  }
  if (gt_merstatistics(gt_str_get(arguments->str_inputindex),
                    arguments->mersize,
                    arguments->userdefinedminocc,
                    arguments->userdefinedmaxocc,
                    gt_str_get(arguments->str_storeindex),
                    arguments->storecounts,
                    arguments->scanfile,
                    arguments->performtest,
                    logger,
                    err) != 0)
  {
    haserr = true;
  }
  if (!haserr &&
      gt_str_length(arguments->str_storeindex) > 0 &&
      arguments->prefixlength.flag != Undeterminedprefixlength)
  {
    Definedunsignedint callprefixlength;

    if (arguments->prefixlength.flag == Determinedprefixlength)
    {
      callprefixlength.defined = true;
      callprefixlength.valueunsignedint = arguments->prefixlength.value;
    } else
    {
      callprefixlength.defined = false;
    }
    if (gt_constructmerbuckets(gt_str_get(arguments->str_storeindex),
                               &callprefixlength,err) != 0)
    {
      haserr = true;
    }
  }
  gt_logger_delete(logger);
  return haserr ? - 1 : 0;
}

// Assembly:
pushq %rbx
subq $0x90, %rsp
movl %edi, 0x8c(%rsp)
movq %rsi, 0x80(%rsp)
movl %edx, 0x7c(%rsp)
movq %rcx, 0x70(%rsp)
movq %r8, 0x68(%rsp)
movq 0x70(%rsp), %rax
movq %rax, 0x60(%rsp)
movb $0x0, 0x57(%rsp)
movq 0x60(%rsp), %rax
movb 0x42(%rax), %al
movq 0x5c2795(%rip), %rcx    # 0x63bf38
movq (%rcx), %rdx
leaq 0x49e13f(%rip), %rsi    # 0x5178ec
andb $0x1, %al
movzbl %al, %edi
callq 0xe7870
movq %rax, 0x58(%rsp)
movq 0x60(%rsp), %rax
testb $0x1, 0x42(%rax)
je 0x79903
movq 0x60(%rsp), %rax
movq (%rax), %rsi
leaq 0x4b4408(%rip), %rdi    # 0x52dbe2
movb $0x0, %al
callq 0x19070
movq 0x60(%rsp), %rax
cmpq $0x0, 0x8(%rax)
jbe 0x79806
movq 0x60(%rsp), %rax
movq 0x8(%rax), %rsi
leaq 0x4b43f4(%rip), %rdi    # 0x52dbf1
movb $0x0, %al
callq 0x19070
jmp 0x79814
leaq 0x4b43f2(%rip), %rdi    # 0x52dbff
movb $0x0, %al
callq 0x19070
movq 0x60(%rsp), %rax
cmpq $0x0, 0x10(%rax)
jbe 0x79839
movq 0x60(%rsp), %rax
movq 0x10(%rax), %rsi
leaq 0x4b43e3(%rip), %rdi    # 0x52dc13
movb $0x0, %al
callq 0x19070
jmp 0x79847
leaq 0x4b43e1(%rip), %rdi    # 0x52dc21
movb $0x0, %al
callq 0x19070
leaq 0x4b43e7(%rip), %rdi    # 0x52dc35
movb $0x0, %al
callq 0x19070
movq 0x60(%rsp), %rax
cmpl $0x0, 0x20(%rax)
jne 0x79870
leaq 0x5416ca(%rip), %rdi    # 0x5baf31
movb $0x0, %al
callq 0x19070
jmp 0x798a3
movq 0x60(%rsp), %rax
cmpl $0x2, 0x20(%rax)
jne 0x79893
movq 0x60(%rsp), %rax
movl 0x1c(%rax), %esi
leaq 0x4e8446(%rip), %rdi    # 0x561cd0
movb $0x0, %al
callq 0x19070
jmp 0x798a1
leaq 0x4b43ab(%rip), %rdi    # 0x52dc45
movb $0x0, %al
callq 0x19070
jmp 0x798a3
leaq 0x5199c9(%rip), %rdi    # 0x593273
movb $0x0, %al
callq 0x19070
movq 0x60(%rsp), %rax
movq 0x30(%rax), %rdi
callq 0x11dfa0
cmpq $0x0, %rax
jbe 0x798e4
movq 0x60(%rsp), %rax
movq 0x30(%rax), %rdi
callq 0x11dee0
movq %rax, %rsi
leaq 0x4a8615(%rip), %rdi    # 0x521ef2
movb $0x0, %al
callq 0x19070
movq 0x60(%rsp), %rax
movq 0x38(%rax), %rdi
callq 0x11dee0
movq %rax, %rsi
leaq 0x4b4353(%rip), %rdi    # 0x52dc4f
movb $0x0, %al
callq 0x19070
movq 0x60(%rsp), %rax
movq 0x38(%rax), %rdi
callq 0x11dee0
movq %rax, 0x28(%rsp)
movq 0x60(%rsp), %rax
movq (%rax), %rax
movq %rax, 0x30(%rsp)
movq 0x60(%rsp), %rax
movq 0x8(%rax), %rax
movq %rax, 0x38(%rsp)
movq 0x60(%rsp), %rax
movq 0x10(%rax), %rax
movq %rax, 0x40(%rsp)
movq 0x60(%rsp), %rax
movq 0x30(%rax), %rdi
callq 0x11dee0
movq 0x28(%rsp), %rdi
movq 0x30(%rsp), %rsi
movq 0x38(%rsp), %rdx
movq 0x40(%rsp), %rcx
movq %rax, %r8
movq 0x60(%rsp), %rax
movb 0x40(%rax), %r9b
movq 0x60(%rsp), %rax
movb 0x43(%rax), %bl
movq 0x60(%rsp), %rax
movb 0x41(%rax), %r11b
movq 0x58(%rsp), %r10
movq 0x68(%rsp), %rax
andb $0x1, %r9b
andb $0x1, %bl
andb $0x1, %r11b
movzbl %r9b, %r9d
movzbl %bl, %ebx
movl %ebx, (%rsp)
movzbl %r11b, %r11d
movl %r11d, 0x8(%rsp)
movq %r10, 0x10(%rsp)
movq %rax, 0x18(%rsp)
callq 0x2f54f0
cmpl $0x0, %eax
je 0x799bf
movb $0x1, 0x57(%rsp)
testb $0x1, 0x57(%rsp)
jne 0x79a34
movq 0x60(%rsp), %rax
movq 0x30(%rax), %rdi
callq 0x11dfa0
cmpq $0x0, %rax
jbe 0x79a34
movq 0x60(%rsp), %rax
cmpl $0x1, 0x20(%rax)
je 0x79a34
movq 0x60(%rsp), %rax
cmpl $0x2, 0x20(%rax)
jne 0x79a03
movb $0x1, 0x4c(%rsp)
movq 0x60(%rsp), %rax
movl 0x1c(%rax), %eax
movl %eax, 0x50(%rsp)
jmp 0x79a08
movb $0x0, 0x4c(%rsp)
movq 0x60(%rsp), %rax
movq 0x30(%rax), %rdi
callq 0x11dee0
movq %rax, %rdi
movq 0x68(%rsp), %rdx
leaq 0x4c(%rsp), %rsi
callq 0x2f4850
cmpl $0x0, %eax
je 0x79a32
movb $0x1, 0x57(%rsp)
jmp 0x79a34
movq 0x58(%rsp), %rdi
callq 0xe7ed0
movb 0x57(%rsp), %dl
xorl %eax, %eax
movl $0xffffffff, %ecx       # imm = 0xFFFFFFFF
testb $0x1, %dl
cmovnel %ecx, %eax
addq $0x90, %rsp
popq %rbx
retq
nopl (%rax,%rax)