// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/match/tagerator.c
// Function: tgr_showmatch
static void tgr_showmatch(void *processinfo,const GtIdxMatch *match)
{
  TgrShowmatchinfo *showmatchinfo = (TgrShowmatchinfo *) processinfo;
  bool firstitem = true;

  gt_assert(showmatchinfo->tageratoroptions != NULL);
  if (showmatchinfo->tageratoroptions->outputmode & TAGOUT_DBLENGTH)
  {
    printf(""GT_WU"",match->dblen);
    firstitem = false;
  }
  if (showmatchinfo->tageratoroptions->outputmode & TAGOUT_DBSTARTPOS)
  {
    ADDTABULATOR;
    if (showmatchinfo->tageratoroptions->outputmode & TAGOUT_DBABSPOS)
    {
      printf(""GT_WU"",match->dbstartpos);
    } else
    {
      GtUword seqstartpos,
                    seqnum = gt_encseq_seqnum(showmatchinfo->encseq,
                                                  match->dbstartpos);
      seqstartpos = gt_encseq_seqstartpos(showmatchinfo->encseq, seqnum);
      gt_assert(seqstartpos <= match->dbstartpos);
      printf(""GT_WU"\t"GT_WU"",seqnum, match->dbstartpos - seqstartpos);
    }
  }
  if (showmatchinfo->tageratoroptions->outputmode & TAGOUT_DBSEQUENCE)
  {
    ADDTABULATOR;
    gt_assert(match->dbsubstring != NULL);
    gt_alphabet_decode_seq_to_fp(showmatchinfo->alpha,
                                 stdout,
                                 match->dbsubstring,
                                 (GtUword) match->dblen);
  }
  if (showmatchinfo->tageratoroptions->outputmode & TAGOUT_STRAND)
  {
    ADDTABULATOR;
    printf("%c",ISRCDIR(showmatchinfo->twlptr) ? '-' : '+');
  }
  if (showmatchinfo->tageratoroptions->outputmode & TAGOUT_EDIST)
  {
    ADDTABULATOR;
    printf(""GT_WU"",match->distance);
  }
  if (showmatchinfo->tageratoroptions->maxintervalwidth > 0)
  {
    if (showmatchinfo->tageratoroptions->skpp)
    {
      if (showmatchinfo->tageratoroptions->outputmode &
          (TAGOUT_TAGSTARTPOS | TAGOUT_TAGLENGTH | TAGOUT_TAGSUFFIXSEQ))
      {
        GtUword suffixlength
          = gt_reversesuffixmatch(showmatchinfo->eqsvector,
                               showmatchinfo->alphasize,
                               match->dbsubstring,
                               (GtUword) match->dblen,
                               showmatchinfo->tagptr,
                               match->querylen,
                               (GtUword) showmatchinfo->tageratoroptions->
                                                        userdefinedmaxdistance);
        gt_assert(match->querylen >= suffixlength);
        if (showmatchinfo->tageratoroptions->outputmode & TAGOUT_TAGSTARTPOS)
        {
          ADDTABULATOR;
          printf(""GT_WU"",match->querylen - suffixlength);
        }
        if (showmatchinfo->tageratoroptions->outputmode & TAGOUT_TAGLENGTH)
        {
          ADDTABULATOR;
          printf(""GT_WU"",suffixlength);
        }
        if (showmatchinfo->tageratoroptions->outputmode & TAGOUT_TAGSUFFIXSEQ)
        {
          ADDTABULATOR;
          gt_alphabet_decode_seq_to_fp(NULL,
                                       stdout,showmatchinfo->tagptr +
                                       (match->querylen - suffixlength),
                                       suffixlength);
        }
      }
    } else
    {
      if (showmatchinfo->tageratoroptions->outputmode & TAGOUT_TAGSTARTPOS)
      {
        ADDTABULATOR;
        printf("0");
      }
      if (showmatchinfo->tageratoroptions->outputmode & TAGOUT_TAGLENGTH)
      {
        ADDTABULATOR;
        printf(""GT_WU"",match->querylen);
      }
      if (showmatchinfo->tageratoroptions->outputmode & TAGOUT_TAGSUFFIXSEQ)
      {
        ADDTABULATOR;
        gt_alphabet_decode_seq_to_fp(NULL,
                                     stdout,
                                     showmatchinfo->tagptr,
                                     match->querylen);
      }
    }
  }
  if (!firstitem)
  {
    printf("\n");
  }
}

// Assembly:
subq $0x48, %rsp
movq %rdi, 0x40(%rsp)
movq %rsi, 0x38(%rsp)
movq 0x40(%rsp), %rax
movq %rax, 0x30(%rsp)
movb $0x1, 0x2f(%rsp)
movq 0x30(%rsp), %rax
cmpq $0x0, (%rax)
jne 0x2efa10
movq 0x34c5c1(%rip), %rax    # 0x63bfa0
movq (%rax), %rdi
leaq 0x22662a(%rip), %rsi    # 0x516013
leaq 0x29f5df(%rip), %rdx    # 0x58efcf
leaq 0x29f600(%rip), %rcx    # 0x58eff7
leaq 0x29f48c(%rip), %r8     # 0x58ee8a
movl $0x56, %r9d
movb $0x0, %al
callq 0x199f0
callq 0x19370
jmp 0x2efa12
movq 0x30(%rsp), %rax
movq (%rax), %rax
movl 0x54(%rax), %eax
andl $0x4, %eax
cmpl $0x0, %eax
je 0x2efa41
movq 0x38(%rsp), %rax
movq 0x18(%rax), %rsi
leaq 0x29f5d4(%rip), %rdi    # 0x58f009
movb $0x0, %al
callq 0x19070
movb $0x0, 0x2f(%rsp)
movq 0x30(%rsp), %rax
movq (%rax), %rax
movl 0x54(%rax), %eax
andl $0x8, %eax
cmpl $0x0, %eax
je 0x2efb40
testb $0x1, 0x2f(%rsp)
je 0x2efa66
movb $0x0, 0x2f(%rsp)
jmp 0x2efa70
movl $0x9, %edi
callq 0x19960
movq 0x30(%rsp), %rax
movq (%rax), %rax
movl 0x54(%rax), %eax
andl $0x10, %eax
cmpl $0x0, %eax
je 0x2efa9f
movq 0x38(%rsp), %rax
movq 0x10(%rax), %rsi
leaq 0x29f576(%rip), %rdi    # 0x58f009
movb $0x0, %al
callq 0x19070
jmp 0x2efb3e
movq 0x30(%rsp), %rax
movq 0x30(%rax), %rdi
movq 0x38(%rsp), %rax
movq 0x10(%rax), %rsi
callq 0xb03a0
movq %rax, 0x18(%rsp)
movq 0x30(%rsp), %rax
movq 0x30(%rax), %rdi
movq 0x18(%rsp), %rsi
callq 0xb0530
movq %rax, 0x20(%rsp)
movq 0x20(%rsp), %rax
movq 0x38(%rsp), %rcx
cmpq 0x10(%rcx), %rax
jbe 0x2efb1b
movq 0x34c4b6(%rip), %rax    # 0x63bfa0
movq (%rax), %rdi
leaq 0x22651f(%rip), %rsi    # 0x516013
leaq 0x28acbf(%rip), %rdx    # 0x57a7ba
leaq 0x29f4f5(%rip), %rcx    # 0x58eff7
leaq 0x29f381(%rip), %r8     # 0x58ee8a
movl $0x68, %r9d
movb $0x0, %al
callq 0x199f0
callq 0x19370
jmp 0x2efb1d
movq 0x18(%rsp), %rsi
movq 0x38(%rsp), %rax
movq 0x10(%rax), %rdx
subq 0x20(%rsp), %rdx
leaq 0x29f4ce(%rip), %rdi    # 0x58f005
movb $0x0, %al
callq 0x19070
jmp 0x2efb40
movq 0x30(%rsp), %rax
movq (%rax), %rax
movl 0x54(%rax), %eax
andl $0x20, %eax
cmpl $0x0, %eax
je 0x2efbe1
testb $0x1, 0x2f(%rsp)
je 0x2efb65
movb $0x0, 0x2f(%rsp)
jmp 0x2efb6f
movl $0x9, %edi
callq 0x19960
jmp 0x2efb71
movq 0x38(%rsp), %rax
cmpq $0x0, 0x20(%rax)
jne 0x2efbb5
movq 0x34c41c(%rip), %rax    # 0x63bfa0
movq (%rax), %rdi
leaq 0x226485(%rip), %rsi    # 0x516013
leaq 0x29f478(%rip), %rdx    # 0x58f00d
leaq 0x29f45b(%rip), %rcx    # 0x58eff7
leaq 0x29f2e7(%rip), %r8     # 0x58ee8a
movl $0x6f, %r9d
movb $0x0, %al
callq 0x199f0
callq 0x19370
jmp 0x2efbb7
movq 0x30(%rsp), %rax
movq 0x18(%rax), %rdi
movq 0x34c371(%rip), %rax    # 0x63bf38
movq (%rax), %rsi
movq 0x38(%rsp), %rax
movq 0x20(%rax), %rdx
movq 0x38(%rsp), %rax
movq 0x18(%rax), %rcx
callq 0x7ed90
movq 0x30(%rsp), %rax
movq (%rax), %rax
movl 0x54(%rax), %eax
andl $0x40, %eax
cmpl $0x0, %eax
je 0x2efc50
testb $0x1, 0x2f(%rsp)
je 0x2efc02
movb $0x0, 0x2f(%rsp)
jmp 0x2efc0c
movl $0x9, %edi
callq 0x19960
movq 0x30(%rsp), %rax
movq 0x28(%rax), %rax
movq (%rax), %rdx
movq 0x30(%rsp), %rax
movq 0x28(%rax), %rsi
addq $0x8, %rsi
movl $0x1, %ecx
xorl %eax, %eax
cmpq %rsi, %rdx
cmovel %eax, %ecx
movl $0x2b, %esi
movl $0x2d, %eax
cmpl $0x0, %ecx
cmovnel %eax, %esi
leaq 0x272083(%rip), %rdi    # 0x561ccc
movb $0x0, %al
callq 0x19070
movq 0x30(%rsp), %rax
movq (%rax), %rax
movl 0x54(%rax), %eax
andl $0x80, %eax
cmpl $0x0, %eax
je 0x2efc94
testb $0x1, 0x2f(%rsp)
je 0x2efc73
movb $0x0, 0x2f(%rsp)
jmp 0x2efc7d
movl $0x9, %edi
callq 0x19960
movq 0x38(%rsp), %rax
movq 0x38(%rax), %rsi
leaq 0x29f37c(%rip), %rdi    # 0x58f009
movb $0x0, %al
callq 0x19070
movq 0x30(%rsp), %rax
movq (%rax), %rax
cmpq $0x0, 0x58(%rax)
jbe 0x2eff2f
movq 0x30(%rsp), %rax
movq (%rax), %rax
testb $0x1, 0x40(%rax)
je 0x2efe5a
movq 0x30(%rsp), %rax
movq (%rax), %rax
movl 0x54(%rax), %eax
andl $0x700, %eax            # imm = 0x700
cmpl $0x0, %eax
je 0x2efe55
movq 0x30(%rsp), %rax
movq 0x20(%rax), %rdi
movq 0x30(%rsp), %rax
movl 0x8(%rax), %esi
movq 0x38(%rsp), %rax
movq 0x20(%rax), %rdx
movq 0x38(%rsp), %rax
movq 0x18(%rax), %rcx
movq 0x30(%rsp), %rax
movq 0x10(%rax), %r8
movq 0x38(%rsp), %rax
movq 0x30(%rax), %r9
movq 0x30(%rsp), %rax
movq (%rax), %rax
movq 0x48(%rax), %rax
movq %rax, (%rsp)
callq 0x4a4310
movq %rax, 0x10(%rsp)
movq 0x38(%rsp), %rax
movq 0x30(%rax), %rax
cmpq 0x10(%rsp), %rax
jae 0x2efd69
movq 0x34c268(%rip), %rax    # 0x63bfa0
movq (%rax), %rdi
leaq 0x2262d1(%rip), %rsi    # 0x516013
leaq 0x29f2df(%rip), %rdx    # 0x58f028
leaq 0x29f2a7(%rip), %rcx    # 0x58eff7
leaq 0x29f133(%rip), %r8     # 0x58ee8a
movl $0x8f, %r9d
movb $0x0, %al
callq 0x199f0
callq 0x19370
jmp 0x2efd6b
movq 0x30(%rsp), %rax
movq (%rax), %rax
movl 0x54(%rax), %eax
andl $0x100, %eax            # imm = 0x100
cmpl $0x0, %eax
je 0x2efdb4
testb $0x1, 0x2f(%rsp)
je 0x2efd8e
movb $0x0, 0x2f(%rsp)
jmp 0x2efd98
movl $0x9, %edi
callq 0x19960
movq 0x38(%rsp), %rax
movq 0x30(%rax), %rsi
subq 0x10(%rsp), %rsi
leaq 0x29f25c(%rip), %rdi    # 0x58f009
movb $0x0, %al
callq 0x19070
movq 0x30(%rsp), %rax
movq (%rax), %rax
movl 0x54(%rax), %eax
andl $0x200, %eax            # imm = 0x200
cmpl $0x0, %eax
je 0x2efdf4
testb $0x1, 0x2f(%rsp)
je 0x2efdd7
movb $0x0, 0x2f(%rsp)
jmp 0x2efde1
movl $0x9, %edi
callq 0x19960
movq 0x10(%rsp), %rsi
leaq 0x29f21c(%rip), %rdi    # 0x58f009
movb $0x0, %al
callq 0x19070
movq 0x30(%rsp), %rax
movq (%rax), %rax
movl 0x54(%rax), %eax
andl $0x400, %eax            # imm = 0x400
cmpl $0x0, %eax
je 0x2efe53
testb $0x1, 0x2f(%rsp)
je 0x2efe17
movb $0x0, 0x2f(%rsp)
jmp 0x2efe21
movl $0x9, %edi
callq 0x19960
movq 0x34c110(%rip), %rax    # 0x63bf38
movq (%rax), %rsi
movq 0x30(%rsp), %rax
movq 0x10(%rax), %rdx
movq 0x38(%rsp), %rax
movq 0x30(%rax), %rax
subq 0x10(%rsp), %rax
addq %rax, %rdx
movq 0x10(%rsp), %rcx
xorl %eax, %eax
movl %eax, %edi
callq 0x7ed90
jmp 0x2efe55
jmp 0x2eff2d
movq 0x30(%rsp), %rax
movq (%rax), %rax
movl 0x54(%rax), %eax
andl $0x100, %eax            # imm = 0x100
cmpl $0x0, %eax
je 0x2efe95
testb $0x1, 0x2f(%rsp)
je 0x2efe7d
movb $0x0, 0x2f(%rsp)
jmp 0x2efe87
movl $0x9, %edi
callq 0x19960
leaq 0x25085f(%rip), %rdi    # 0x5406ed
movb $0x0, %al
callq 0x19070
movq 0x30(%rsp), %rax
movq (%rax), %rax
movl 0x54(%rax), %eax
andl $0x200, %eax            # imm = 0x200
cmpl $0x0, %eax
je 0x2efed9
testb $0x1, 0x2f(%rsp)
je 0x2efeb8
movb $0x0, 0x2f(%rsp)
jmp 0x2efec2
movl $0x9, %edi
callq 0x19960
movq 0x38(%rsp), %rax
movq 0x30(%rax), %rsi
leaq 0x29f137(%rip), %rdi    # 0x58f009
movb $0x0, %al
callq 0x19070
movq 0x30(%rsp), %rax
movq (%rax), %rax
movl 0x54(%rax), %eax
andl $0x400, %eax            # imm = 0x400
cmpl $0x0, %eax
je 0x2eff2b
testb $0x1, 0x2f(%rsp)
je 0x2efefc
movb $0x0, 0x2f(%rsp)
jmp 0x2eff06
movl $0x9, %edi
callq 0x19960
movq 0x34c02b(%rip), %rax    # 0x63bf38
movq (%rax), %rsi
movq 0x30(%rsp), %rax
movq 0x10(%rax), %rdx
movq 0x38(%rsp), %rax
movq 0x30(%rax), %rcx
xorl %eax, %eax
movl %eax, %edi
callq 0x7ed90
jmp 0x2eff2d
jmp 0x2eff2f
testb $0x1, 0x2f(%rsp)
jne 0x2eff44
leaq 0x2a3336(%rip), %rdi    # 0x593273
movb $0x0, %al
callq 0x19070
addq $0x48, %rsp
retq
nopl (%rax)