// File: /workspace/github_c_makefile_star2_O1/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:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x58, %rsp
movq %r8, %rbx
movq %rcx, %r15
movzbl 0x45(%rcx), %edi
movq 0x3f2c7a(%rip), %rax    # 0x4c3ee8
movq (%rax), %rdx
leaq 0x27e65c(%rip), %rsi    # 0x34f8d4
callq 0x108ed0
movq %rax, %r14
xorps %xmm0, %xmm0
movq %rsp, %r12
movaps %xmm0, (%r12)
xorl %eax, %eax
movq %rax, 0x10(%r12)
leaq 0x20(%rsp), %r13
movaps %xmm0, (%r13)
movq %rax, 0x10(%r13)
leaq 0x40(%rsp), %rbp
movaps %xmm0, (%rbp)
movq %rax, 0x10(%rbp)
movq 0x10(%r15), %rdi
callq 0x120d23
movzbl 0x44(%r15), %esi
movq 0x20(%r15), %rdx
movq 0x28(%r15), %rcx
subq $0x8, %rsp
movq %rax, %rdi
movq %r12, %r8
movq %r13, %r9
pushq %rbx
pushq %r14
pushq %rbp
callq 0x20c128
addq $0x20, %rsp
movl %eax, %ebx
testl %eax, %eax
jne 0xd13e6
movl 0x40(%r15), %ebp
movq 0x38(%r15), %r15
testb $0x1, %bpl
je 0xd1329
leaq 0x29512e(%rip), %rdi    # 0x36642a
callq 0x17bd0
testb $0x8, %bpl
jne 0xd1314
movq %rsp, %rdi
movq %r15, %rsi
callq 0xd15b1
jmp 0xd1329
movq %rsp, %rsi
leaq 0x20(%rsp), %rdx
movl $0x1, %edi
movq %r15, %rcx
callq 0xd1485
testb $0x2, %bpl
je 0xd1365
leaq 0x295112(%rip), %rdi    # 0x366448
callq 0x17bd0
testb $0x8, %bpl
jne 0xd1350
leaq 0x20(%rsp), %rdi
movq %r15, %rsi
callq 0xd15b1
jmp 0xd1365
movq %rsp, %rsi
leaq 0x20(%rsp), %rdx
movl $0x2, %edi
movq %r15, %rcx
callq 0xd1485
testb $0x4, %bpl
je 0xd13a1
leaq 0x295121(%rip), %rdi    # 0x366493
callq 0x17bd0
testb $0x8, %bpl
jne 0xd138c
leaq 0x40(%rsp), %rdi
movq %r15, %rsi
callq 0xd15b1
jmp 0xd13a1
movq %rsp, %rsi
leaq 0x40(%rsp), %rdx
movl $0x2, %edi
movq %r15, %rcx
callq 0xd1485
testb $0x10, %bpl
je 0xd13e6
leaq 0x295135(%rip), %rdi    # 0x3664e3
callq 0x17bd0
movq %rsp, %r12
leaq 0x20(%rsp), %rdx
xorl %edi, %edi
movq %r12, %rsi
movq %r15, %rcx
callq 0xd1485
leaq 0x295158(%rip), %rdi    # 0x366527
callq 0x17bd0
leaq 0x40(%rsp), %rdx
xorl %edi, %edi
movq %r12, %rsi
movq %r15, %rcx
callq 0xd1485
movq %r14, %rdi
callq 0x10916a
movq (%rsp), %rdi
testq %rdi, %rdi
je 0xd1418
leaq 0x294465(%rip), %rsi    # 0x365863
movl $0x308, %edx            # imm = 0x308
callq 0x109670
xorps %xmm0, %xmm0
movaps %xmm0, (%rsp)
movq $0x0, 0x10(%rsp)
movq 0x20(%rsp), %rdi
testq %rdi, %rdi
je 0xd1444
leaq 0x29443a(%rip), %rsi    # 0x365863
movl $0x309, %edx            # imm = 0x309
callq 0x109670
xorps %xmm0, %xmm0
movaps %xmm0, 0x20(%rsp)
movq $0x0, 0x30(%rsp)
movq 0x40(%rsp), %rdi
testq %rdi, %rdi
je 0xd1470
leaq 0x29440e(%rip), %rsi    # 0x365863
movl $0x30a, %edx            # imm = 0x30A
callq 0x109670
xorps %xmm0, %xmm0
movaps %xmm0, 0x40(%rsp)
movq $0x0, 0x50(%rsp)
xorl %eax, %eax
negl %ebx
sbbl %eax, %eax
addq $0x58, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq