// File: /workspace/github_c_makefile_star2_O1/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 0xb02a6
movq %rbx, %rdi
callq 0x101a9a
testb %al, %al
jne 0xb043a
testq %r14, %r14
je 0xb0435
testl %ebp, %ebp
je 0xb02d0
leaq 0x2a8d07(%rip), %rsi    # 0x358fc1
movq %rbx, %rdi
xorl %eax, %eax
callq 0x1019cf
movl $0x1, %ebp
movl %ebp, %eax
popq %rbx
popq %r14
popq %rbp
retq
movq 0x8(%r14), %rdi
callq 0x121e78
xorl %ebp, %ebp
testq %rax, %rax
je 0xb0305
movq 0x8(%r14), %rdi
callq 0x121e78
cmpq $0x2, %rax
je 0xb0305
leaq 0x2a8ce1(%rip), %rsi    # 0x358fd7
movq %rbx, %rdi
xorl %eax, %eax
callq 0x1019cf
movl $0x1, %ebp
movq 0x10(%r14), %rdi
callq 0x121e78
testq %rax, %rax
je 0xb0338
movq 0x10(%r14), %rdi
callq 0x121e78
cmpq $0x2, %rax
je 0xb0338
leaq 0x2a8cd7(%rip), %rsi    # 0x359000
movq %rbx, %rdi
xorl %eax, %eax
callq 0x1019cf
movl $0x1, %ebp
movq 0x18(%r14), %rdi
callq 0x121e78
testq %rax, %rax
je 0xb039e
cmpb $0x1, 0x3b(%r14)
jne 0xb0372
movq 0x18(%r14), %rdi
callq 0x121e78
cmpq $0x3, %rax
je 0xb0372
leaq 0x2a8cc4(%rip), %rsi    # 0x359027
movq %rbx, %rdi
xorl %eax, %eax
callq 0x1019cf
movl $0x1, %ebp
cmpb $0x1, 0x3c(%r14)
jne 0xb039e
movq 0x18(%r14), %rdi
callq 0x121e78
cmpq $0x2, %rax
je 0xb039e
leaq 0x2a8cdc(%rip), %rsi    # 0x35906b
movq %rbx, %rdi
xorl %eax, %eax
callq 0x1019cf
movl $0x1, %ebp
movq 0x20(%r14), %rdi
callq 0x121e78
testq %rax, %rax
je 0xb0404
cmpb $0x1, 0x3b(%r14)
jne 0xb03d8
movq 0x20(%r14), %rdi
callq 0x121e78
cmpq $0x4, %rax
je 0xb03d8
leaq 0x2a8cf2(%rip), %rsi    # 0x3590bb
movq %rbx, %rdi
xorl %eax, %eax
callq 0x1019cf
movl $0x1, %ebp
cmpb $0x1, 0x3c(%r14)
jne 0xb0404
movq 0x20(%r14), %rdi
callq 0x121e78
cmpq $0x3, %rax
je 0xb0404
leaq 0x2a8d21(%rip), %rsi    # 0x359116
movq %rbx, %rdi
xorl %eax, %eax
callq 0x1019cf
movl $0x1, %ebp
movq 0x28(%r14), %rdi
callq 0x121e78
testq %rax, %rax
je 0xb02c9
movq 0x28(%r14), %rdi
callq 0x121e78
cmpq $0x2, %rax
je 0xb02c9
leaq 0x2a8d4c(%rip), %rsi    # 0x35917c
jmp 0xb02ba
callq 0x1c2b1
callq 0x1c278