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

  logger = gt_logger_new(arguments->verbose, GT_LOGGER_DEFLT_PREFIX, stdout);
  GT_INITARRAY(&uniquedistribution,uint64_t);
  GT_INITARRAY(&nonuniquedistribution,uint64_t);
  GT_INITARRAY(&nonuniquemultidistribution,uint64_t);
  if (gt_tyr_occratio_func(gt_str_get(arguments->str_inputindex),
                           arguments->scanfile,
                           arguments->minmersize,
                           arguments->maxmersize,
                           &uniquedistribution,
                           &nonuniquedistribution,
                           &nonuniquemultidistribution,
                           logger,
                           err) != 0)
  {
    haserr = true;
  }
  if (!haserr)
  {
    showoccratios(&uniquedistribution,
                  &nonuniquedistribution,
                  &nonuniquemultidistribution,
                  arguments->outputmode,
                  arguments->outputvector);
  }
  gt_logger_delete(logger);
  GT_FREEARRAY(&uniquedistribution,uint64_t);
  GT_FREEARRAY(&nonuniquedistribution,uint64_t);
  GT_FREEARRAY(&nonuniquemultidistribution,uint64_t);
  return haserr ? -1 : 0;
}

// Assembly:
subq $0xa8, %rsp
movl %edi, 0xa4(%rsp)
movq %rsi, 0x98(%rsp)
movl %edx, 0x94(%rsp)
movq %rcx, 0x88(%rsp)
movq %r8, 0x80(%rsp)
movq 0x88(%rsp), %rax
movq %rax, 0x70(%rsp)
movb $0x0, 0x6f(%rsp)
movq 0x70(%rsp), %rax
movb 0x45(%rax), %al
movq 0x5c1a3a(%rip), %rcx    # 0x63bf38
movq (%rcx), %rdx
leaq 0x49d3e4(%rip), %rsi    # 0x5178ec
andb $0x1, %al
movzbl %al, %edi
callq 0xe7870
movq %rax, 0x78(%rsp)
movq $0x0, 0x50(%rsp)
movq $0x0, 0x60(%rsp)
movq $0x0, 0x58(%rsp)
jmp 0x7a534
movq $0x0, 0x38(%rsp)
movq $0x0, 0x48(%rsp)
movq $0x0, 0x40(%rsp)
jmp 0x7a551
movq $0x0, 0x20(%rsp)
movq $0x0, 0x30(%rsp)
movq $0x0, 0x28(%rsp)
movq 0x70(%rsp), %rax
movq 0x10(%rax), %rdi
callq 0x11dee0
movq %rax, %rdi
movq 0x70(%rsp), %rax
movb 0x44(%rax), %sil
movq 0x70(%rsp), %rax
movq 0x20(%rax), %rdx
movq 0x70(%rsp), %rax
movq 0x28(%rax), %rcx
movq 0x78(%rsp), %r10
movq 0x80(%rsp), %rax
leaq 0x50(%rsp), %r8
leaq 0x38(%rsp), %r9
leaq 0x20(%rsp), %r11
andb $0x1, %sil
movzbl %sil, %esi
movq %r11, (%rsp)
movq %r10, 0x8(%rsp)
movq %rax, 0x10(%rsp)
callq 0x2f6cc0
cmpl $0x0, %eax
je 0x7a5d9
movb $0x1, 0x6f(%rsp)
testb $0x1, 0x6f(%rsp)
jne 0x7a605
movq 0x70(%rsp), %rax
movl 0x40(%rax), %ecx
movq 0x70(%rsp), %rax
movq 0x38(%rax), %r8
leaq 0x50(%rsp), %rdi
leaq 0x38(%rsp), %rsi
leaq 0x20(%rsp), %rdx
callq 0x7a6e0
movq 0x78(%rsp), %rdi
callq 0xe7ed0
cmpq $0x0, 0x50(%rsp)
je 0x7a648
movq 0x50(%rsp), %rdi
leaq 0x4b32ee(%rip), %rsi    # 0x52d911
movl $0x308, %edx            # imm = 0x308
callq 0xe88c0
movq $0x0, 0x58(%rsp)
movq $0x0, 0x60(%rsp)
movq $0x0, 0x50(%rsp)
jmp 0x7a64a
jmp 0x7a64c
cmpq $0x0, 0x38(%rsp)
je 0x7a685
movq 0x38(%rsp), %rdi
leaq 0x4b32b1(%rip), %rsi    # 0x52d911
movl $0x309, %edx            # imm = 0x309
callq 0xe88c0
movq $0x0, 0x40(%rsp)
movq $0x0, 0x48(%rsp)
movq $0x0, 0x38(%rsp)
jmp 0x7a687
jmp 0x7a689
cmpq $0x0, 0x20(%rsp)
je 0x7a6c2
movq 0x20(%rsp), %rdi
leaq 0x4b3274(%rip), %rsi    # 0x52d911
movl $0x30a, %edx            # imm = 0x30A
callq 0xe88c0
movq $0x0, 0x28(%rsp)
movq $0x0, 0x30(%rsp)
movq $0x0, 0x20(%rsp)
jmp 0x7a6c4
movb 0x6f(%rsp), %dl
xorl %eax, %eax
movl $0xffffffff, %ecx       # imm = 0xFFFFFFFF
testb $0x1, %dl
cmovnel %ecx, %eax
addq $0xa8, %rsp
retq
nopl (%rax)