// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/tools/gt_hop.c
// Function: gt_hop_arguments_check
int gt_hop_arguments_check(GT_UNUSED int rest_argc, void *tool_arguments,
    GtError* err)
{
  GtHopArguments *args = (GtHopArguments*) tool_arguments;
  int had_err = 0;

  if (!args->aggressive &&
      !args->moderate &&
      !args->conservative &&
      !args->expert &&
      !args->state_of_truth)
  {
    gt_error_set(err, "Select correction mode: "
        "-aggressive, -moderate, -conservative or -expert");
    had_err = -1;
  }
  else if (args->aggressive || args->state_of_truth)
  {
    args->hmin = 3UL;
    args->read_hmin = 1UL;
    args->qmax = 120UL;
    args->altmax = (double) 1.00;
    args->cogmin = (double) 0.00;
    args->mapqmin = 0UL;
    args->covmin = 1UL;
    args->clenmax = ULONG_MAX;
    args->allow_multiple = true;
  }
  else if (args->moderate)
  {
    args->hmin = 3UL;
    args->read_hmin = 1UL;
    args->qmax = 120UL;
    args->altmax = (double) 0.99;
    args->cogmin = (double) 0.00;
    args->mapqmin = 10UL;
    args->covmin = 1UL;
    args->clenmax = ULONG_MAX;
    args->allow_multiple = true;
  }
  else if (args->conservative)
  {
    args->hmin = 3UL;
    args->read_hmin = 2UL;
    args->qmax = 120UL;
    args->altmax = (double) 0.80;
    args->cogmin = (double) 0.10;
    args->mapqmin = 21UL;
    args->covmin = 1UL;
    args->clenmax = ULONG_MAX;
    args->allow_multiple = false;
  }

  if (gt_str_length(args->outprefix) == 0)
  {
    gt_error_set(err, "outprefix cannot be an empty string");
    had_err = -1;
  }
  return had_err;
}

// Assembly:
subq $0x28, %rsp
movl %edi, 0x24(%rsp)
movq %rsi, 0x18(%rsp)
movq %rdx, 0x10(%rsp)
movq 0x18(%rsp), %rax
movq %rax, 0x8(%rsp)
movl $0x0, 0x4(%rsp)
movq 0x8(%rsp), %rax
testb $0x1, 0x66(%rax)
jne 0x3c77b
movq 0x8(%rsp), %rax
testb $0x1, 0x67(%rax)
jne 0x3c77b
movq 0x8(%rsp), %rax
testb $0x1, 0x68(%rax)
jne 0x3c77b
movq 0x8(%rsp), %rax
testb $0x1, 0x69(%rax)
jne 0x3c77b
movq 0x8(%rsp), %rax
testb $0x1, 0x6a(%rax)
jne 0x3c77b
movq 0x10(%rsp), %rdi
leaq 0x4e2b01(%rip), %rsi    # 0x51f268
movb $0x0, %al
callq 0xd88c0
movl $0xffffffff, 0x4(%rsp)  # imm = 0xFFFFFFFF
jmp 0x3c91e
movq 0x8(%rsp), %rax
testb $0x1, 0x66(%rax)
jne 0x3c791
movq 0x8(%rsp), %rax
testb $0x1, 0x6a(%rax)
je 0x3c80c
movq 0x8(%rsp), %rax
movq $0x3, 0x30(%rax)
movq 0x8(%rsp), %rax
movq $0x1, 0x40(%rax)
movq 0x8(%rsp), %rax
movq $0x78, 0x58(%rax)
movq 0x8(%rsp), %rax
movsd 0x4daa7b(%rip), %xmm0   # 0x517240
movsd %xmm0, 0x70(%rax)
movq 0x8(%rsp), %rax
xorps %xmm0, %xmm0
movsd %xmm0, 0x78(%rax)
movq 0x8(%rsp), %rax
movq $0x0, 0x50(%rax)
movq 0x8(%rsp), %rax
movq $0x1, 0x48(%rax)
movq 0x8(%rsp), %rax
movq $-0x1, 0x38(%rax)
movq 0x8(%rsp), %rax
movb $0x1, 0x65(%rax)
jmp 0x3c91c
movq 0x8(%rsp), %rax
testb $0x1, 0x67(%rax)
je 0x3c892
movq 0x8(%rsp), %rax
movq $0x3, 0x30(%rax)
movq 0x8(%rsp), %rax
movq $0x1, 0x40(%rax)
movq 0x8(%rsp), %rax
movq $0x78, 0x58(%rax)
movq 0x8(%rsp), %rax
movsd 0x4e2a15(%rip), %xmm0   # 0x51f260
movsd %xmm0, 0x70(%rax)
movq 0x8(%rsp), %rax
xorps %xmm0, %xmm0
movsd %xmm0, 0x78(%rax)
movq 0x8(%rsp), %rax
movq $0xa, 0x50(%rax)
movq 0x8(%rsp), %rax
movq $0x1, 0x48(%rax)
movq 0x8(%rsp), %rax
movq $-0x1, 0x38(%rax)
movq 0x8(%rsp), %rax
movb $0x1, 0x65(%rax)
jmp 0x3c91a
movq 0x8(%rsp), %rax
testb $0x1, 0x68(%rax)
je 0x3c918
movq 0x8(%rsp), %rax
movq $0x3, 0x30(%rax)
movq 0x8(%rsp), %rax
movq $0x2, 0x40(%rax)
movq 0x8(%rsp), %rax
movq $0x78, 0x58(%rax)
movq 0x8(%rsp), %rax
movsd 0x4e2987(%rip), %xmm0   # 0x51f258
movsd %xmm0, 0x70(%rax)
movq 0x8(%rsp), %rax
movsd 0x4e296d(%rip), %xmm0   # 0x51f250
movsd %xmm0, 0x78(%rax)
movq 0x8(%rsp), %rax
movq $0x15, 0x50(%rax)
movq 0x8(%rsp), %rax
movq $0x1, 0x48(%rax)
movq 0x8(%rsp), %rax
movq $-0x1, 0x38(%rax)
movq 0x8(%rsp), %rax
movb $0x0, 0x65(%rax)
jmp 0x3c91a
jmp 0x3c91c
jmp 0x3c91e
movq 0x8(%rsp), %rax
movq 0x28(%rax), %rdi
callq 0x11dfa0
cmpq $0x0, %rax
jne 0x3c94d
movq 0x10(%rsp), %rdi
leaq 0x4e2973(%rip), %rsi    # 0x51f2b1
movb $0x0, %al
callq 0xd88c0
movl $0xffffffff, 0x4(%rsp)  # imm = 0xFFFFFFFF
movl 0x4(%rsp), %eax
addq $0x28, %rsp
retq
nopw %cs:(%rax,%rax)