// File: /workspace/github_c_makefile_star2_O3/genometools[P]genometools/src/tools/gt_matchtool.c
// Function: gt_matchtool_arguments_check
static int gt_matchtool_arguments_check(GT_UNUSED int rest_argc,
                                          void *tool_arguments,
                                          GtError *err)
{
  GtMatchtoolArguments *arguments = tool_arguments;
  int had_err = 0;
  gt_error_check(err);
  gt_assert(arguments);

  if (strcmp(gt_str_get(arguments->type), "OPENMATCH") == 0 ||
      strcmp(gt_str_get(arguments->type), "BLASTOUT") == 0) {
    if (gt_str_length(arguments->matchfile) == 0) {
      gt_error_set(err, "types OPENMATCH and BLASTOUT require the "
                        "option -matchfile");
      had_err = -1;
    }
  }
  if (strcmp(gt_str_get(arguments->type), "BLASTALLP") == 0 ||
      strcmp(gt_str_get(arguments->type), "BLASTALLN") == 0 ||
      strcmp(gt_str_get(arguments->type), "BLASTP") == 0 ||
      strcmp(gt_str_get(arguments->type), "SW") == 0 ||
      strcmp(gt_str_get(arguments->type), "LAST") == 0 ||
      strcmp(gt_str_get(arguments->type), "BLASTN") == 0) {
    if (gt_str_length(arguments->db) == 0
        || gt_str_length(arguments->query) == 0) {
      gt_error_set(err, "types BLASTALLP, BLASTALLN, BLASTP, BLASTN, LAST, SW "
                        "require the options -db and -query");
      had_err = -1;
    }
  }

  return had_err;
}

// Assembly:
pushq %rbp
pushq %r14
pushq %rbx
movq %rdx, %rbx
movq %rsi, %r14
testq %rdx, %rdx
je 0xaf4f4
movq %rbx, %rdi
callq 0xfcc32
testb %al, %al
jne 0xaf63d
testq %r14, %r14
je 0xaf638
movq (%r14), %rdi
callq 0x11b0a1
leaq 0x2a1076(%rip), %rsi    # 0x350582
movq %rax, %rdi
callq 0x17a40
testl %eax, %eax
je 0xaf533
movq (%r14), %rdi
callq 0x11b0a1
leaq 0x2a1065(%rip), %rsi    # 0x35058c
movq %rax, %rdi
callq 0x17a40
testl %eax, %eax
jne 0xaf541
movq 0x8(%r14), %rdi
callq 0x11b0ca
testq %rax, %rax
je 0xaf545
xorl %ebp, %ebp
jmp 0xaf55b
leaq 0x2a12ba(%rip), %rsi    # 0x350806
movq %rbx, %rdi
xorl %eax, %eax
callq 0xfcb67
movl $0xffffffff, %ebp       # imm = 0xFFFFFFFF
movq (%r14), %rdi
callq 0x11b0a1
leaq 0x2a102b(%rip), %rsi    # 0x350595
movq %rax, %rdi
callq 0x17a40
testl %eax, %eax
je 0xaf5ff
movq (%r14), %rdi
callq 0x11b0a1
leaq 0x2a1016(%rip), %rsi    # 0x35059f
movq %rax, %rdi
callq 0x17a40
testl %eax, %eax
je 0xaf5ff
movq (%r14), %rdi
callq 0x11b0a1
leaq 0x2a1005(%rip), %rsi    # 0x3505a9
movq %rax, %rdi
callq 0x17a40
testl %eax, %eax
je 0xaf5ff
movq (%r14), %rdi
callq 0x11b0a1
cmpb $0x53, (%rax)
jne 0xaf5c9
cmpb $0x57, 0x1(%rax)
jne 0xaf5c9
cmpb $0x0, 0x2(%rax)
je 0xaf5ff
movq (%r14), %rdi
callq 0x11b0a1
leaq 0x2a0fdf(%rip), %rsi    # 0x3505b7
movq %rax, %rdi
callq 0x17a40
testl %eax, %eax
je 0xaf5ff
movq (%r14), %rdi
callq 0x11b0a1
leaq 0x2a0fbd(%rip), %rsi    # 0x3505b0
movq %rax, %rdi
callq 0x17a40
testl %eax, %eax
jne 0xaf631
movq 0x18(%r14), %rdi
callq 0x11b0ca
testq %rax, %rax
je 0xaf61b
movq 0x10(%r14), %rdi
callq 0x11b0ca
testq %rax, %rax
jne 0xaf631
leaq 0x2a121f(%rip), %rsi    # 0x350841
movq %rbx, %rdi
xorl %eax, %eax
callq 0xfcb67
movl $0xffffffff, %ebp       # imm = 0xFFFFFFFF
movl %ebp, %eax
popq %rbx
popq %r14
popq %rbp
retq
callq 0x1c572
callq 0x1c539