// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/match/tagerator.c
// Function: performpatternsearch
static bool performpatternsearch(const AbstractDfstransformer *dfst,
                                 bool domstats,
                                 GtUword maxdistance,
                                 bool doonline,
                                 bool docompare,
                                 GtUword maxintervalwidth,
                                 bool skpp,
                                 Myersonlineresources *mor,
                                 Limdfsresources *limdfsresources,
                                 const GtUchar *tagptr,
                                 GtUword taglen)
{
  if (doonline || (!domstats && docompare))
  {
    gt_assert(mor != NULL);
    gt_edistmyersbitvectorAPM(mor,tagptr,taglen,maxdistance);
  }
  if (!doonline || docompare)
  {
    if (domstats)
    {
      gt_indexbasedmstats(limdfsresources,tagptr,taglen,dfst);
      return false;
    }
    if (maxdistance == 0)
    {
      return gt_indexbasedexactpatternmatching(limdfsresources,tagptr,taglen);
    } else
    {
      return gt_indexbasedapproxpatternmatching(limdfsresources,tagptr,taglen,
                                             maxdistance,
                                             maxintervalwidth,
                                             skpp,
                                             dfst);
    }
  }
  return false;
}

// Assembly:
subq $0x58, %rsp
movl %r8d, 0x10(%rsp)
movl %ecx, %eax
movl 0x10(%rsp), %ecx
movl %eax, 0x14(%rsp)
movq %rdx, %rax
movl 0x14(%rsp), %edx
movq %rax, 0x18(%rsp)
movl %esi, %eax
movq 0x18(%rsp), %rsi
movq %rdi, %r8
movb %al, %dil
movq 0x80(%rsp), %rax
movq 0x78(%rsp), %rax
movq 0x70(%rsp), %rax
movq 0x68(%rsp), %rax
movb 0x60(%rsp), %al
movq %r8, 0x48(%rsp)
andb $0x1, %dil
movb %dil, 0x47(%rsp)
movq %rsi, 0x38(%rsp)
andb $0x1, %dl
movb %dl, 0x37(%rsp)
andb $0x1, %cl
movb %cl, 0x36(%rsp)
movq %r9, 0x28(%rsp)
andb $0x1, %al
movb %al, 0x27(%rsp)
testb $0x1, 0x37(%rsp)
jne 0x2f06b8
testb $0x1, 0x47(%rsp)
jne 0x2f0718
testb $0x1, 0x36(%rsp)
je 0x2f0718
jmp 0x2f06ba
cmpq $0x0, 0x68(%rsp)
jne 0x2f06fa
movq 0x34b8d7(%rip), %rax    # 0x63bfa0
movq (%rax), %rdi
leaq 0x225940(%rip), %rsi    # 0x516013
leaq 0x29eab4(%rip), %rdx    # 0x58f18e
leaq 0x29eab9(%rip), %rcx    # 0x58f19a
leaq 0x29e7a2(%rip), %r8     # 0x58ee8a
movl $0x179, %r9d            # imm = 0x179
movb $0x0, %al
callq 0x199f0
callq 0x19370
jmp 0x2f06fc
movq 0x68(%rsp), %rdi
movq 0x78(%rsp), %rsi
movq 0x80(%rsp), %rdx
movq 0x38(%rsp), %rcx
callq 0x4d3b50
testb $0x1, 0x37(%rsp)
je 0x2f072a
testb $0x1, 0x36(%rsp)
je 0x2f07ba
testb $0x1, 0x47(%rsp)
je 0x2f0754
movq 0x70(%rsp), %rdi
movq 0x78(%rsp), %rsi
movq 0x80(%rsp), %rdx
movq 0x48(%rsp), %rcx
callq 0x255bf0
movb $0x0, 0x57(%rsp)
jmp 0x2f07bf
cmpq $0x0, 0x38(%rsp)
jne 0x2f077b
movq 0x70(%rsp), %rdi
movq 0x78(%rsp), %rsi
movq 0x80(%rsp), %rdx
callq 0x255e10
andb $0x1, %al
movb %al, 0x57(%rsp)
jmp 0x2f07bf
movq 0x70(%rsp), %rdi
movq 0x78(%rsp), %rsi
movq 0x80(%rsp), %rdx
movq 0x38(%rsp), %rcx
movq 0x28(%rsp), %r8
movb 0x27(%rsp), %r9b
movq 0x48(%rsp), %rax
andb $0x1, %r9b
movzbl %r9b, %r9d
movq %rax, (%rsp)
callq 0x255860
andb $0x1, %al
movb %al, 0x57(%rsp)
jmp 0x2f07bf
movb $0x0, 0x57(%rsp)
movb 0x57(%rsp), %al
andb $0x1, %al
addq $0x58, %rsp
retq
nopw (%rax,%rax)