// File: /workspace/github_c_makefile_star2_O0/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:
subq $0x28, %rsp
movl %edi, 0x20(%rsp)
movq %rsi, 0x18(%rsp)
movq %rdx, 0x10(%rsp)
movq 0x18(%rsp), %rax
movq %rax, 0x8(%rsp)
movl $0x0, 0x4(%rsp)
cmpq $0x0, 0x10(%rsp)
je 0x412c4
movq 0x10(%rsp), %rdi
callq 0xd8a60
testb $0x1, %al
jne 0x4128c
jmp 0x412c4
movq 0x5fad0d(%rip), %rax    # 0x63bfa0
movq (%rax), %rdi
leaq 0x4d4d76(%rip), %rsi    # 0x516013
leaq 0x4d4f1b(%rip), %rdx    # 0x5161bf
leaq 0x4dfd24(%rip), %rcx    # 0x520fcf
leaq 0x4df80e(%rip), %r8     # 0x520ac0
movl $0x12d, %r9d            # imm = 0x12D
movb $0x0, %al
callq 0x199f0
callq 0x19370
jmp 0x412c6
jmp 0x412c8
cmpq $0x0, 0x8(%rsp)
jne 0x41308
movq 0x5facc9(%rip), %rax    # 0x63bfa0
movq (%rax), %rdi
leaq 0x4d4d32(%rip), %rsi    # 0x516013
leaq 0x4d5f9c(%rip), %rdx    # 0x517284
leaq 0x4dfce0(%rip), %rcx    # 0x520fcf
leaq 0x4df7ca(%rip), %r8     # 0x520ac0
movl $0x12e, %r9d            # imm = 0x12E
movb $0x0, %al
callq 0x199f0
callq 0x19370
jmp 0x4130a
cmpl $0x0, 0x20(%rsp)
je 0x41331
movq 0x10(%rsp), %rdi
leaq 0x4dfcd4(%rip), %rsi    # 0x520ff1
movb $0x0, %al
callq 0xd88c0
movl $0x1, 0x24(%rsp)
jmp 0x41516
movq 0x8(%rsp), %rax
movq 0x8(%rax), %rdi
callq 0x11fcc0
cmpq $0x0, %rax
jbe 0x41374
movq 0x8(%rsp), %rax
movq 0x8(%rax), %rdi
callq 0x11fcc0
cmpq $0x2, %rax
je 0x41374
movq 0x10(%rsp), %rdi
leaq 0x4dfca2(%rip), %rsi    # 0x521007
movb $0x0, %al
callq 0xd88c0
movl $0x1, 0x4(%rsp)
movq 0x8(%rsp), %rax
movq 0x10(%rax), %rdi
callq 0x11fcc0
cmpq $0x0, %rax
jbe 0x413b7
movq 0x8(%rsp), %rax
movq 0x10(%rax), %rdi
callq 0x11fcc0
cmpq $0x2, %rax
je 0x413b7
movq 0x10(%rsp), %rdi
leaq 0x4dfc88(%rip), %rsi    # 0x521030
movb $0x0, %al
callq 0xd88c0
movl $0x1, 0x4(%rsp)
movq 0x8(%rsp), %rax
movq 0x18(%rax), %rdi
callq 0x11fcc0
cmpq $0x0, %rax
jbe 0x41441
movq 0x8(%rsp), %rax
testb $0x1, 0x3b(%rax)
je 0x41405
movq 0x8(%rsp), %rax
movq 0x18(%rax), %rdi
callq 0x11fcc0
cmpq $0x3, %rax
je 0x41405
movq 0x10(%rsp), %rdi
leaq 0x4dfc61(%rip), %rsi    # 0x521057
movb $0x0, %al
callq 0xd88c0
movl $0x1, 0x4(%rsp)
movq 0x8(%rsp), %rax
testb $0x1, 0x3c(%rax)
je 0x4143f
movq 0x8(%rsp), %rax
movq 0x18(%rax), %rdi
callq 0x11fcc0
cmpq $0x2, %rax
je 0x4143f
movq 0x10(%rsp), %rdi
leaq 0x4dfc6b(%rip), %rsi    # 0x52109b
movb $0x0, %al
callq 0xd88c0
movl $0x1, 0x4(%rsp)
jmp 0x41441
movq 0x8(%rsp), %rax
movq 0x20(%rax), %rdi
callq 0x11fcc0
cmpq $0x0, %rax
jbe 0x414cb
movq 0x8(%rsp), %rax
testb $0x1, 0x3b(%rax)
je 0x4148f
movq 0x8(%rsp), %rax
movq 0x20(%rax), %rdi
callq 0x11fcc0
cmpq $0x4, %rax
je 0x4148f
movq 0x10(%rsp), %rdi
leaq 0x4dfc6b(%rip), %rsi    # 0x5210eb
movb $0x0, %al
callq 0xd88c0
movl $0x1, 0x4(%rsp)
movq 0x8(%rsp), %rax
testb $0x1, 0x3c(%rax)
je 0x414c9
movq 0x8(%rsp), %rax
movq 0x20(%rax), %rdi
callq 0x11fcc0
cmpq $0x3, %rax
je 0x414c9
movq 0x10(%rsp), %rdi
leaq 0x4dfc8c(%rip), %rsi    # 0x521146
movb $0x0, %al
callq 0xd88c0
movl $0x1, 0x4(%rsp)
jmp 0x414cb
movq 0x8(%rsp), %rax
movq 0x28(%rax), %rdi
callq 0x11fcc0
cmpq $0x0, %rax
jbe 0x4150e
movq 0x8(%rsp), %rax
movq 0x28(%rax), %rdi
callq 0x11fcc0
cmpq $0x2, %rax
je 0x4150e
movq 0x10(%rsp), %rdi
leaq 0x4dfcad(%rip), %rsi    # 0x5211ac
movb $0x0, %al
callq 0xd88c0
movl $0x1, 0x4(%rsp)
movl 0x4(%rsp), %eax
movl %eax, 0x24(%rsp)
movl 0x24(%rsp), %eax
addq $0x28, %rsp
retq
nop