// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/tools/gt_linspace_align.c
// Function: gt_all_against_all_alignment_check
static int gt_all_against_all_alignment_check(bool affine,
                                        GtAlignment *align,
                                        const GtLinspaceArguments *arguments,
                                        GtLinspaceManagement *spacemanager,
                                        const GtScoreHandler *scorehandler,
                                        const GtUchar *characters,
                                        GtUchar wildcardshow,
                                        const GtSequenceTable *sequence_table1,
                                        const GtSequenceTable *sequence_table2,
                                        GtWord left_dist,
                                        GtWord right_dist,
                                        GtTimer *linspacetimer,
                                        GtError *err)
{
  int had_err = 0;
  const GtUchar *useq, *vseq;
  GtUword i, j, ulen, vlen;

  gt_error_check(err);
  if (linspacetimer != NULL)
  {
    gt_timer_start(linspacetimer);
  }
  for (i = 0; !had_err && i < sequence_table1->size; i++)
  {
    ulen = gt_str_length(sequence_table1->seqarray[i]);
    useq = (const GtUchar*) gt_str_get(sequence_table1->seqarray[i]);
    for (j = 0; j< sequence_table2->size; j++)
    {
      vlen = gt_str_length(sequence_table2->seqarray[j]);
      vseq = (const GtUchar*) gt_str_get(sequence_table2->seqarray[j]);
      gt_alignment_reset(align);
      if (arguments->global)
      {
        if (arguments->diagonal)
        {
          if (gt_str_array_size(arguments->diagonalbonds) == 0)
          {
            left_dist = LEFT_DIAGONAL_SHIFT(arguments->similarity, ulen, vlen);
            right_dist = RIGHT_DIAGONAL_SHIFT(arguments->similarity, ulen,
                                              vlen);
          }
          if ((left_dist > GT_MIN(0, (GtWord)vlen-(GtWord)ulen))||
              (right_dist < GT_MAX(0, (GtWord)vlen-(GtWord)ulen)))
          {
            gt_error_set(err, "ERROR: invalid diagonalband for global "
                              "alignment (ulen: "GT_WU", vlen: "GT_WU")\n"
                              "left_dist <= GT_MIN(0, vlen-ulen) and "
                              "right_dist >= GT_MAX(0, vlen-ulen)", ulen, vlen);
            had_err = 1;
          }
          if (!had_err)
          {
            (affine ? gt_diagonalbandalign_affinegapcost_compute_generic
                    : gt_diagonalbandalign_compute_generic)
                       (spacemanager, scorehandler, align,
                        useq, 0, ulen, vseq, 0, vlen,
                        left_dist, right_dist);
          }
        } else
        {
          (affine ? gt_linearalign_affinegapcost_compute_generic
                  : gt_linearalign_compute_generic)
                             (spacemanager, scorehandler, align,
                              useq, 0, ulen, vseq, 0, vlen);
        }
      }
      else if (arguments->local)
      {
        (affine ? gt_linearalign_affinegapcost_compute_local_generic
                : gt_linearalign_compute_local_generic)
                    (spacemanager, scorehandler, align,
                     useq, 0, ulen, vseq, 0, vlen);
      }
      /* show alignment*/
      if (!had_err)
      {
        gt_assert(align != NULL);
        if (!strcmp(gt_str_get(arguments->outputfile),"stdout"))
        {
          alignment_show_with_sequences(useq, ulen, vseq, vlen, align,
                                        characters,
                                        wildcardshow, arguments->showscore,
                                        !arguments->scoreonly,
                                        arguments->showsequences,
                                        arguments->global,
                                        scorehandler, stdout);
        } else
        {
          FILE *fp = gt_fa_fopen_func(gt_str_get(arguments->outputfile),
                                                 "a", __FILE__,__LINE__,err);
          if (fp == NULL)
          {
            had_err = -1;
          } else
          {
            alignment_show_with_sequences(useq, ulen, vseq, vlen, align,
                                          characters, wildcardshow,
                                          arguments->showscore,
                                          !arguments->scoreonly,
                                          arguments->showsequences,
                                          arguments->global, scorehandler,fp);
            gt_fa_fclose(fp);
          }
        }
      }
    }
  }
  if (linspacetimer != NULL)
  {
    gt_timer_stop(linspacetimer);
  }
  if (!had_err && arguments->wildcardshow)
  {
    printf("# wildcards are represented by %c\n", wildcardshow);
  }
  return had_err;
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r12
pushq %rbx
subq $0x110, %rsp            # imm = 0x110
movb %dil, %al
movq 0x170(%rsp), %rdi
movq 0x168(%rsp), %rdi
movq 0x160(%rsp), %rdi
movq 0x158(%rsp), %rdi
movq 0x150(%rsp), %rdi
movq 0x148(%rsp), %rdi
movb 0x140(%rsp), %dil
andb $0x1, %al
movb %al, 0x10f(%rsp)
movq %rsi, 0x100(%rsp)
movq %rdx, 0xf8(%rsp)
movq %rcx, 0xf0(%rsp)
movq %r8, 0xe8(%rsp)
movq %r9, 0xe0(%rsp)
movl $0x0, 0xdc(%rsp)
cmpq $0x0, 0x170(%rsp)
je 0x4237c
movq 0x170(%rsp), %rdi
callq 0xd8a60
testb $0x1, %al
jne 0x42344
jmp 0x4237c
movq 0x5f9c55(%rip), %rax    # 0x63bfa0
movq (%rax), %rdi
leaq 0x4d3cbe(%rip), %rsi    # 0x516013
leaq 0x4d3e63(%rip), %rdx    # 0x5161bf
leaq 0x4defdb(%rip), %rcx    # 0x52133e
leaq 0x4de756(%rip), %r8     # 0x520ac0
movl $0x203, %r9d            # imm = 0x203
movb $0x0, %al
callq 0x199f0
callq 0x19370
jmp 0x4237e
cmpq $0x0, 0x168(%rsp)
je 0x42396
movq 0x168(%rsp), %rdi
callq 0x1213f0
movq $0x0, 0xc0(%rsp)
xorl %eax, %eax
cmpl $0x0, 0xdc(%rsp)
movb %al, 0x9f(%rsp)
jne 0x423d3
movq 0xc0(%rsp), %rax
movq 0x148(%rsp), %rcx
cmpq 0x8(%rcx), %rax
setb %al
movb %al, 0x9f(%rsp)
movb 0x9f(%rsp), %al
testb $0x1, %al
jne 0x423e3
jmp 0x42bcb
movq 0x148(%rsp), %rax
movq (%rax), %rax
movq 0xc0(%rsp), %rcx
movq (%rax,%rcx,8), %rdi
callq 0x11dfa0
movq %rax, 0xb0(%rsp)
movq 0x148(%rsp), %rax
movq (%rax), %rax
movq 0xc0(%rsp), %rcx
movq (%rax,%rcx,8), %rdi
callq 0x11dee0
movq %rax, 0xd0(%rsp)
movq $0x0, 0xb8(%rsp)
movq 0xb8(%rsp), %rax
movq 0x150(%rsp), %rcx
cmpq 0x8(%rcx), %rax
jae 0x42bb0
movq 0x150(%rsp), %rax
movq (%rax), %rax
movq 0xb8(%rsp), %rcx
movq (%rax,%rcx,8), %rdi
callq 0x11dfa0
movq %rax, 0xa8(%rsp)
movq 0x150(%rsp), %rax
movq (%rax), %rax
movq 0xb8(%rsp), %rcx
movq (%rax,%rcx,8), %rdi
callq 0x11dee0
movq %rax, 0xc8(%rsp)
movq 0x100(%rsp), %rdi
callq 0x12a560
movq 0xf8(%rsp), %rax
testb $0x1, 0x38(%rax)
je 0x428b5
movq 0xf8(%rsp), %rax
testb $0x1, 0x3a(%rax)
je 0x42848
movq 0xf8(%rsp), %rax
movq 0x28(%rax), %rdi
callq 0x11fcc0
cmpq $0x0, %rax
jne 0x426e0
movq 0xf8(%rsp), %rax
movsd 0x4d4d4b(%rip), %xmm0   # 0x517240
subsd 0x30(%rax), %xmm0
movsd %xmm0, 0x90(%rsp)
movq 0xb0(%rsp), %rax
cmpq 0xa8(%rsp), %rax
jbe 0x42527
movq 0xb0(%rsp), %rax
movq %rax, 0x88(%rsp)
jmp 0x42537
movq 0xa8(%rsp), %rax
movq %rax, 0x88(%rsp)
movq 0x88(%rsp), %rax
movq %rax, %xmm0
movaps 0x4d63e5(%rip), %xmm1   # 0x518930
punpckldq %xmm1, %xmm0    # xmm0 = xmm0[0],xmm1[0],xmm0[1],xmm1[1]
movapd 0x4d63e9(%rip), %xmm1   # 0x518940
subpd %xmm1, %xmm0
movaps %xmm0, %xmm1
unpckhpd %xmm0, %xmm0            # xmm0 = xmm0[1,1]
addsd %xmm1, %xmm0
movsd %xmm0, 0x80(%rsp)
movq 0xb0(%rsp), %rax
subq 0xa8(%rsp), %rax
cmpq $0x0, %rax
jge 0x4259c
movq 0xb0(%rsp), %rax
subq 0xa8(%rsp), %rax
movq %rax, 0x78(%rsp)
jmp 0x425a5
xorl %eax, %eax
movq %rax, 0x78(%rsp)
jmp 0x425a5
movsd 0x80(%rsp), %xmm2
movsd 0x90(%rsp), %xmm0
movq 0x78(%rsp), %rax
cvtsi2sd %rax, %xmm1
mulsd %xmm2, %xmm0
addsd %xmm1, %xmm0
movq %xmm0, %rax
movabsq $-0x8000000000000000, %rcx # imm = 0x8000000000000000
xorq %rcx, %rax
movq %rax, %xmm0
cvttsd2si %xmm0, %rax
movq %rax, 0x158(%rsp)
movq 0xf8(%rsp), %rax
movsd 0x4d4c43(%rip), %xmm0   # 0x517240
subsd 0x30(%rax), %xmm0
movsd %xmm0, 0x70(%rsp)
movq 0xb0(%rsp), %rax
cmpq 0xa8(%rsp), %rax
jbe 0x42629
movq 0xb0(%rsp), %rax
movq %rax, 0x68(%rsp)
jmp 0x42636
movq 0xa8(%rsp), %rax
movq %rax, 0x68(%rsp)
movq 0x68(%rsp), %rax
movq %rax, %xmm0
movaps 0x4d62e9(%rip), %xmm1   # 0x518930
punpckldq %xmm1, %xmm0    # xmm0 = xmm0[0],xmm1[0],xmm0[1],xmm1[1]
movapd 0x4d62ed(%rip), %xmm1   # 0x518940
subpd %xmm1, %xmm0
movaps %xmm0, %xmm1
unpckhpd %xmm0, %xmm0            # xmm0 = xmm0[1,1]
addsd %xmm1, %xmm0
movsd %xmm0, 0x60(%rsp)
movq 0xb0(%rsp), %rax
subq 0xa8(%rsp), %rax
cmpq $0x0, %rax
jle 0x42695
movq 0xb0(%rsp), %rax
subq 0xa8(%rsp), %rax
movq %rax, 0x58(%rsp)
jmp 0x4269e
xorl %eax, %eax
movq %rax, 0x58(%rsp)
jmp 0x4269e
movsd 0x60(%rsp), %xmm2
movsd 0x70(%rsp), %xmm0
movq 0x58(%rsp), %rax
cvtsi2sd %rax, %xmm1
movq %xmm1, %rax
movabsq $-0x8000000000000000, %rcx # imm = 0x8000000000000000
xorq %rcx, %rax
movq %rax, %xmm1
mulsd %xmm2, %xmm0
addsd %xmm1, %xmm0
cvttsd2si %xmm0, %rax
movq %rax, 0x160(%rsp)
movq 0x158(%rsp), %rax
movq %rax, 0x50(%rsp)
movq 0xa8(%rsp), %rcx
subq 0xb0(%rsp), %rcx
xorl %eax, %eax
cmpq %rcx, %rax
jge 0x4270d
xorl %eax, %eax
movq %rax, 0x48(%rsp)
jmp 0x42722
movq 0xa8(%rsp), %rax
subq 0xb0(%rsp), %rax
movq %rax, 0x48(%rsp)
movq 0x50(%rsp), %rax
movq 0x48(%rsp), %rcx
cmpq %rcx, %rax
jg 0x42782
movq 0x160(%rsp), %rax
movq %rax, 0x40(%rsp)
movq 0xa8(%rsp), %rcx
subq 0xb0(%rsp), %rcx
xorl %eax, %eax
cmpq %rcx, %rax
jle 0x4275e
xorl %eax, %eax
movq %rax, 0x38(%rsp)
jmp 0x42773
movq 0xa8(%rsp), %rax
subq 0xb0(%rsp), %rax
movq %rax, 0x38(%rsp)
movq 0x40(%rsp), %rax
movq 0x38(%rsp), %rcx
cmpq %rcx, %rax
jge 0x427b3
movq 0x170(%rsp), %rdi
movq 0xb0(%rsp), %rdx
movq 0xa8(%rsp), %rcx
leaq 0x4debc0(%rip), %rsi    # 0x521361
movb $0x0, %al
callq 0xd88c0
movl $0x1, 0xdc(%rsp)
cmpl $0x0, 0xdc(%rsp)
jne 0x42846
movb 0x10f(%rsp), %dl
leaq 0x10aef1(%rip), %rax    # 0x14d6c0
leaq 0x11092a(%rip), %rcx    # 0x153100
testb $0x1, %dl
cmovneq %rcx, %rax
movq 0xf0(%rsp), %rdi
movq 0xe8(%rsp), %rsi
movq 0x100(%rsp), %rdx
movq 0xd0(%rsp), %rcx
movq 0xb0(%rsp), %r9
movq 0xc8(%rsp), %r14
movq 0xa8(%rsp), %rbx
movq 0x158(%rsp), %r11
movq 0x160(%rsp), %r10
xorl %r8d, %r8d
movq %r14, (%rsp)
movq $0x0, 0x8(%rsp)
movq %rbx, 0x10(%rsp)
movq %r11, 0x18(%rsp)
movq %r10, 0x20(%rsp)
callq *%rax
jmp 0x428b3
movb 0x10f(%rsp), %dl
leaq 0x15a19a(%rip), %rax    # 0x19c9f0
leaq 0x15d233(%rip), %rcx    # 0x19fa90
testb $0x1, %dl
cmovneq %rcx, %rax
movq 0xf0(%rsp), %rdi
movq 0xe8(%rsp), %rsi
movq 0x100(%rsp), %rdx
movq 0xd0(%rsp), %rcx
movq 0xb0(%rsp), %r9
movq 0xc8(%rsp), %r11
movq 0xa8(%rsp), %r10
xorl %r8d, %r8d
movq %r11, (%rsp)
movq $0x0, 0x8(%rsp)
movq %r10, 0x10(%rsp)
callq *%rax
jmp 0x42930
movq 0xf8(%rsp), %rax
testb $0x1, 0x39(%rax)
je 0x4292e
movb 0x10f(%rsp), %dl
leaq 0x15a32f(%rip), %rax    # 0x19cc00
leaq 0x15d3a8(%rip), %rcx    # 0x19fc80
testb $0x1, %dl
cmovneq %rcx, %rax
movq 0xf0(%rsp), %rdi
movq 0xe8(%rsp), %rsi
movq 0x100(%rsp), %rdx
movq 0xd0(%rsp), %rcx
movq 0xb0(%rsp), %r9
movq 0xc8(%rsp), %r11
movq 0xa8(%rsp), %r10
xorl %r8d, %r8d
movq %r11, (%rsp)
movq $0x0, 0x8(%rsp)
movq %r10, 0x10(%rsp)
callq *%rax
jmp 0x42930
cmpl $0x0, 0xdc(%rsp)
jne 0x42b95
jmp 0x42940
cmpq $0x0, 0x100(%rsp)
jne 0x42983
movq 0x5f964e(%rip), %rax    # 0x63bfa0
movq (%rax), %rdi
leaq 0x4d36b7(%rip), %rsi    # 0x516013
leaq 0x51ed4e(%rip), %rdx    # 0x5616b1
leaq 0x4de9d4(%rip), %rcx    # 0x52133e
leaq 0x4de14f(%rip), %r8     # 0x520ac0
movl $0x23e, %r9d            # imm = 0x23E
movb $0x0, %al
callq 0x199f0
callq 0x19370
jmp 0x42985
movq 0xf8(%rsp), %rax
movq (%rax), %rdi
callq 0x11dee0
movq %rax, %rdi
leaq 0x54f72c(%rip), %rsi    # 0x5920cb
callq 0x19980
cmpl $0x0, %eax
jne 0x42a71
movq 0xd0(%rsp), %rdi
movq 0xb0(%rsp), %rsi
movq 0xc8(%rsp), %rdx
movq 0xa8(%rsp), %rcx
movq 0x100(%rsp), %r8
movq 0xe0(%rsp), %r9
movb 0x140(%rsp), %r14b
movq 0xf8(%rsp), %rax
movb 0x3e(%rax), %r10b
movq 0xf8(%rsp), %rax
movb 0x40(%rax), %r11b
xorb $-0x1, %r11b
movq 0xf8(%rsp), %rax
movb 0x3f(%rax), %bl
movq 0xf8(%rsp), %rax
movb 0x38(%rax), %bpl
movq 0xe8(%rsp), %r15
movq 0x5f9511(%rip), %rax    # 0x63bf38
movq (%rax), %r12
movq %rsp, %rax
movq %r12, 0x30(%rax)
movq %r15, 0x28(%rax)
movzbl %r14b, %r14d
movl %r14d, (%rax)
movzbl %bpl, %ebp
andl $0x1, %ebp
movl %ebp, 0x20(%rax)
movzbl %bl, %ebx
andl $0x1, %ebx
movl %ebx, 0x18(%rax)
movzbl %r11b, %r11d
andl $0x1, %r11d
movl %r11d, 0x10(%rax)
movzbl %r10b, %r10d
andl $0x1, %r10d
movl %r10d, 0x8(%rax)
callq 0x42dd0
jmp 0x42b93
movq 0xf8(%rsp), %rax
movq (%rax), %rdi
callq 0x11dee0
movq %rax, %rdi
movq 0x170(%rsp), %r8
leaq 0x4f0fcb(%rip), %rsi    # 0x533a5e
leaq 0x4de026(%rip), %rdx    # 0x520ac0
movl $0x24b, %ecx            # imm = 0x24B
callq 0xd8df0
movq %rax, 0xa0(%rsp)
cmpq $0x0, 0xa0(%rsp)
jne 0x42ac7
movl $0xffffffff, 0xdc(%rsp) # imm = 0xFFFFFFFF
jmp 0x42b91
movq 0xd0(%rsp), %rdi
movq 0xb0(%rsp), %rsi
movq 0xc8(%rsp), %rdx
movq 0xa8(%rsp), %rcx
movq 0x100(%rsp), %r8
movq 0xe0(%rsp), %r9
movb 0x140(%rsp), %r14b
movq 0xf8(%rsp), %rax
movb 0x3e(%rax), %r10b
movq 0xf8(%rsp), %rax
movb 0x40(%rax), %r11b
xorb $-0x1, %r11b
movq 0xf8(%rsp), %rax
movb 0x3f(%rax), %bl
movq 0xf8(%rsp), %rax
movb 0x38(%rax), %bpl
movq 0xe8(%rsp), %r15
movq 0xa0(%rsp), %r12
movq %rsp, %rax
movq %r12, 0x30(%rax)
movq %r15, 0x28(%rax)
movzbl %r14b, %r14d
movl %r14d, (%rax)
movzbl %bpl, %ebp
andl $0x1, %ebp
movl %ebp, 0x20(%rax)
movzbl %bl, %ebx
andl $0x1, %ebx
movl %ebx, 0x18(%rax)
movzbl %r11b, %r11d
andl $0x1, %r11d
movl %r11d, 0x10(%rax)
movzbl %r10b, %r10d
andl $0x1, %r10d
movl %r10d, 0x8(%rax)
callq 0x42dd0
movq 0xa0(%rsp), %rdi
callq 0xd9390
jmp 0x42b93
jmp 0x42b95
jmp 0x42b97
movq 0xb8(%rsp), %rax
addq $0x1, %rax
movq %rax, 0xb8(%rsp)
jmp 0x42437
jmp 0x42bb2
movq 0xc0(%rsp), %rax
addq $0x1, %rax
movq %rax, 0xc0(%rsp)
jmp 0x423a2
cmpq $0x0, 0x168(%rsp)
je 0x42be3
movq 0x168(%rsp), %rdi
callq 0x121490
cmpl $0x0, 0xdc(%rsp)
jne 0x42c11
movq 0xf8(%rsp), %rax
testb $0x1, 0x41(%rax)
je 0x42c11
movzbl 0x140(%rsp), %esi
leaq 0x4de7e8(%rip), %rdi    # 0x5213f2
movb $0x0, %al
callq 0x19070
movl 0xdc(%rsp), %eax
addq $0x110, %rsp            # imm = 0x110
popq %rbx
popq %r12
popq %r14
popq %r15
popq %rbp
retq
nopl (%rax,%rax)