// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/match/rdj-pairwise.c
// Function: find_exact_overlaps
static inline GtContfind find_exact_overlaps(struct Data *d, bool use_kmp,
    GtUword min_length, bool find_nonmaximal)
{
  GtContfind retval;

  if (d->u->seqnum == d->v->seqnum && d->v->direct)
  {
    if (!(d->mode == GT_OVLFIND_SPM || d->mode == GT_OVLFIND_ALL))
      return GT_CONTFIND_EQ;
    if (use_kmp)
      retval = gt_ovlfind_kmp(d->u->seq, d->u->len, d->u->pi, NULL, 0, NULL,
          d->mode, min_length, find_nonmaximal, call_spmproc, d);
    else
      retval = gt_ovlfind_bf(d->u->seq, d->u->len, NULL, 0, d->mode,
          min_length, find_nonmaximal, call_spmproc, d);
  }
  else
  {
    if (use_kmp)
      retval = gt_ovlfind_kmp(d->u->seq, d->u->len, d->u->pi, d->v->seq,
          d->v->len, d->v->pi, d->mode, min_length, find_nonmaximal,
          call_spmproc, d);
    else
      retval = gt_ovlfind_bf(d->u->seq, d->u->len, d->v->seq, d->v->len,
          d->mode, min_length, find_nonmaximal, call_spmproc, d);
  }
  return retval;
}

// Assembly:
pushq %rbp
pushq %rbx
subq $0x58, %rsp
movb %cl, %al
movb %sil, %cl
movq %rdi, 0x48(%rsp)
andb $0x1, %cl
movb %cl, 0x47(%rsp)
movq %rdx, 0x38(%rsp)
andb $0x1, %al
movb %al, 0x37(%rsp)
movq 0x48(%rsp), %rax
movq 0x18(%rax), %rax
movq 0x10(%rax), %rax
movq 0x48(%rsp), %rcx
movq 0x20(%rcx), %rcx
cmpq 0x10(%rcx), %rax
jne 0x287699
movq 0x48(%rsp), %rax
movq 0x20(%rax), %rax
testb $0x1, 0x18(%rax)
je 0x287699
movq 0x48(%rsp), %rax
cmpl $0x0, 0x28(%rax)
je 0x2875b8
movq 0x48(%rsp), %rax
cmpl $0x2, 0x28(%rax)
je 0x2875b8
movl $0x2, 0x54(%rsp)
jmp 0x2877b2
testb $0x1, 0x47(%rsp)
je 0x287638
movq 0x48(%rsp), %rax
movq 0x18(%rax), %rax
movq (%rax), %rdi
movq 0x48(%rsp), %rax
movq 0x18(%rax), %rax
movq 0x8(%rax), %rsi
movq 0x48(%rsp), %rax
movq 0x18(%rax), %rax
movq 0x20(%rax), %rdx
movq 0x48(%rsp), %rax
movl 0x28(%rax), %ebp
movq 0x38(%rsp), %rbx
movb 0x37(%rsp), %r11b
movq 0x48(%rsp), %rax
xorl %ecx, %ecx
movl %ecx, %r9d
leaq 0x4a8(%rip), %r10       # 0x287ab0
andb $0x1, %r11b
movq %r9, %rcx
movq %r9, %r8
movl %ebp, (%rsp)
movq %rbx, 0x8(%rsp)
movzbl %r11b, %r11d
movl %r11d, 0x10(%rsp)
movq %r10, 0x18(%rsp)
movq %rax, 0x20(%rsp)
callq 0x4e14a0
movl %eax, 0x30(%rsp)
jmp 0x287694
movq 0x48(%rsp), %rax
movq 0x18(%rax), %rax
movq (%rax), %rdi
movq 0x48(%rsp), %rax
movq 0x18(%rax), %rax
movq 0x8(%rax), %rsi
movq 0x48(%rsp), %rax
movl 0x28(%rax), %r8d
movq 0x38(%rsp), %r9
movb 0x37(%rsp), %r11b
movq 0x48(%rsp), %rax
xorl %ecx, %ecx
leaq 0x43e(%rip), %r10       # 0x287ab0
andb $0x1, %r11b
movq %rcx, %rdx
movzbl %r11b, %r11d
movl %r11d, (%rsp)
movq %r10, 0x8(%rsp)
movq %rax, 0x10(%rsp)
callq 0x4dc170
movl %eax, 0x30(%rsp)
jmp 0x2877aa
testb $0x1, 0x47(%rsp)
je 0x287738
movq 0x48(%rsp), %rax
movq 0x18(%rax), %rax
movq (%rax), %rdi
movq 0x48(%rsp), %rax
movq 0x18(%rax), %rax
movq 0x8(%rax), %rsi
movq 0x48(%rsp), %rax
movq 0x18(%rax), %rax
movq 0x20(%rax), %rdx
movq 0x48(%rsp), %rax
movq 0x20(%rax), %rax
movq (%rax), %rcx
movq 0x48(%rsp), %rax
movq 0x20(%rax), %rax
movq 0x8(%rax), %r8
movq 0x48(%rsp), %rax
movq 0x20(%rax), %rax
movq 0x20(%rax), %r9
movq 0x48(%rsp), %rax
movl 0x28(%rax), %ebp
movq 0x38(%rsp), %rbx
movb 0x37(%rsp), %r11b
movq 0x48(%rsp), %rax
leaq 0x3a2(%rip), %r10       # 0x287ab0
andb $0x1, %r11b
movl %ebp, (%rsp)
movq %rbx, 0x8(%rsp)
movzbl %r11b, %r11d
movl %r11d, 0x10(%rsp)
movq %r10, 0x18(%rsp)
movq %rax, 0x20(%rsp)
callq 0x4e14a0
movl %eax, 0x30(%rsp)
jmp 0x2877a8
movq 0x48(%rsp), %rax
movq 0x18(%rax), %rax
movq (%rax), %rdi
movq 0x48(%rsp), %rax
movq 0x18(%rax), %rax
movq 0x8(%rax), %rsi
movq 0x48(%rsp), %rax
movq 0x20(%rax), %rax
movq (%rax), %rdx
movq 0x48(%rsp), %rax
movq 0x20(%rax), %rax
movq 0x8(%rax), %rcx
movq 0x48(%rsp), %rax
movl 0x28(%rax), %r8d
movq 0x38(%rsp), %r9
movb 0x37(%rsp), %r11b
movq 0x48(%rsp), %rax
leaq 0x327(%rip), %r10       # 0x287ab0
andb $0x1, %r11b
movzbl %r11b, %r11d
movl %r11d, (%rsp)
movq %r10, 0x8(%rsp)
movq %rax, 0x10(%rsp)
callq 0x4dc170
movl %eax, 0x30(%rsp)
jmp 0x2877aa
movl 0x30(%rsp), %eax
movl %eax, 0x54(%rsp)
movl 0x54(%rsp), %eax
addq $0x58, %rsp
popq %rbx
popq %rbp
retq
nopl (%rax)