// File: /workspace/github_c_makefile_star2_O3/genometools[P]genometools/src/tools/gt_linspace_align.c
// Function: gt_linspace_align_arguments_check
static int gt_linspace_align_arguments_check(int rest_argc,
                                             void *tool_arguments,
                                             GtError *err)
{
  GtLinspaceArguments *arguments = tool_arguments;
  int had_err = 0;

  gt_error_check(err);
  gt_assert(arguments != NULL);
  if (rest_argc != 0)
  {
    gt_error_set(err,"superfluous arguments");
    return 1;
  }
  if ((gt_str_array_size(arguments->strings) > 0) &&
     (gt_str_array_size(arguments->strings) != 2UL))
  {
    gt_error_set(err, "option -ss requires two string arguments");
    had_err = 1;
  }
  if ((gt_str_array_size(arguments->files) > 0) &&
     (gt_str_array_size(arguments->files) != 2UL))
  {
    gt_error_set(err, "option -ff requires two file arguments");
    had_err = 1;
  }
  if (gt_str_array_size(arguments->linearcosts) > 0)
  {
    if (arguments->dna && gt_str_array_size(arguments->linearcosts) != 3UL)
    {
      gt_error_set(err, "option -l requires "
                        "match, mismatch, gap costs/scores when usign dna");
      had_err = 1;
    }
    if (arguments->protein && gt_str_array_size(arguments->linearcosts) != 2UL)
    {
      gt_error_set(err, "option -l requires  path of scorematrix "
                        "and gap costs/scores when usign protein");
      had_err = 1;
    }
  }
  if (gt_str_array_size(arguments->affinecosts) > 0)
  {
    if (arguments->dna && gt_str_array_size(arguments->affinecosts) != 4UL)
    {
      gt_error_set(err, "option -a requires match, mismatch, gap_opening, "
                        "gap_extending costs/scores when usign dna");
      had_err = 1;
    }
    if (arguments->protein && gt_str_array_size(arguments->affinecosts) != 3UL)
    {
      gt_error_set(err, "option -a requires path of scorematrix and "
                        "gap_opening, gap_extending costs/scores "
                        "when usign protein");
      had_err = 1;
    }
  }
  if ((gt_str_array_size(arguments->diagonalbonds) > 0) &&
     (gt_str_array_size(arguments->diagonalbonds) != 2UL))
  {
    gt_error_set(err, "option -lr requires left and right shift of diagonal");
    had_err = 1;
  }
  return had_err;
}

// Assembly:
pushq %rbp
pushq %r14
pushq %rbx
movq %rdx, %rbx
movq %rsi, %r14
movl %edi, %ebp
testq %rdx, %rdx
je 0xadf56
movq %rbx, %rdi
callq 0xfcc32
testb %al, %al
jne 0xae0ea
testq %r14, %r14
je 0xae0e5
testl %ebp, %ebp
je 0xadf80
leaq 0x2a2027(%rip), %rsi    # 0x34ff91
movq %rbx, %rdi
xorl %eax, %eax
callq 0xfcb67
movl $0x1, %ebp
movl %ebp, %eax
popq %rbx
popq %r14
popq %rbp
retq
movq 0x8(%r14), %rdi
callq 0x11c131
xorl %ebp, %ebp
testq %rax, %rax
je 0xadfb5
movq 0x8(%r14), %rdi
callq 0x11c131
cmpq $0x2, %rax
je 0xadfb5
leaq 0x2a2001(%rip), %rsi    # 0x34ffa7
movq %rbx, %rdi
xorl %eax, %eax
callq 0xfcb67
movl $0x1, %ebp
movq 0x10(%r14), %rdi
callq 0x11c131
testq %rax, %rax
je 0xadfe8
movq 0x10(%r14), %rdi
callq 0x11c131
cmpq $0x2, %rax
je 0xadfe8
leaq 0x2a1ff7(%rip), %rsi    # 0x34ffd0
movq %rbx, %rdi
xorl %eax, %eax
callq 0xfcb67
movl $0x1, %ebp
movq 0x18(%r14), %rdi
callq 0x11c131
testq %rax, %rax
je 0xae04e
cmpb $0x1, 0x3b(%r14)
jne 0xae022
movq 0x18(%r14), %rdi
callq 0x11c131
cmpq $0x3, %rax
je 0xae022
leaq 0x2a1fe4(%rip), %rsi    # 0x34fff7
movq %rbx, %rdi
xorl %eax, %eax
callq 0xfcb67
movl $0x1, %ebp
cmpb $0x1, 0x3c(%r14)
jne 0xae04e
movq 0x18(%r14), %rdi
callq 0x11c131
cmpq $0x2, %rax
je 0xae04e
leaq 0x2a1ffc(%rip), %rsi    # 0x35003b
movq %rbx, %rdi
xorl %eax, %eax
callq 0xfcb67
movl $0x1, %ebp
movq 0x20(%r14), %rdi
callq 0x11c131
testq %rax, %rax
je 0xae0b4
cmpb $0x1, 0x3b(%r14)
jne 0xae088
movq 0x20(%r14), %rdi
callq 0x11c131
cmpq $0x4, %rax
je 0xae088
leaq 0x2a2012(%rip), %rsi    # 0x35008b
movq %rbx, %rdi
xorl %eax, %eax
callq 0xfcb67
movl $0x1, %ebp
cmpb $0x1, 0x3c(%r14)
jne 0xae0b4
movq 0x20(%r14), %rdi
callq 0x11c131
cmpq $0x3, %rax
je 0xae0b4
leaq 0x2a2041(%rip), %rsi    # 0x3500e6
movq %rbx, %rdi
xorl %eax, %eax
callq 0xfcb67
movl $0x1, %ebp
movq 0x28(%r14), %rdi
callq 0x11c131
testq %rax, %rax
je 0xadf79
movq 0x28(%r14), %rdi
callq 0x11c131
cmpq $0x2, %rax
je 0xadf79
leaq 0x2a206c(%rip), %rsi    # 0x35014c
jmp 0xadf6a
callq 0x1c1b5
callq 0x1c17c