// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/match/idxlocalidp.c
// Function: secondcolumn
static void secondcolumn (const Limdfsconstinfo *lci,LocaliColumn *outcol,
                          GtUchar dbchar)
{
  GtUword i;

  if (outcol->lenval < lci->maxcollen)
  {
    REALLOCMSG(outcol);
    outcol->colvalues = gt_realloc(outcol->colvalues,
                                   sizeof (LocaliMatrixvalue)
                                     * lci->maxcollen);
    outcol->lenval = lci->maxcollen;
    ATADDRESS("",outcol);
  }
#ifdef AFFINE
  outcol->colvalues[0].repcell = GT_MINUSINFTY;
  outcol->colvalues[0].inscell = lci->scorevalues.gapstart +
                                 lci->scorevalues.gapextend;
  outcol->colvalues[0].delcell = GT_MINUSINFTY;
#endif
  outcol->colvalues[0].bestcell = GT_MINUSINFTY;
  outcol->colvalues[0].tracebit = Notraceback;
  outcol->maxvalue = 0;
  outcol->pprefixlen = 0;
  for (i = 1UL; i <= lci->querylength; i++)
  {
#ifdef AFFINE
    outcol->colvalues[i].delcell = GT_MINUSINFTY;
    outcol->colvalues[i].inscell = GT_MINUSINFTY;
    outcol->colvalues[i].repcell = REPLACEMENTSCORE(&lci->scorevalues,
                                                    dbchar,lci->query[i-1]);
    outcol->colvalues[i].bestcell = max2(outcol->colvalues[i].delcell,
                                         outcol->colvalues[i].repcell);
#else
    Scoretype temp;

    outcol->colvalues[i].bestcell = GT_MINUSINFTY;
    outcol->colvalues[i].tracebit = Notraceback;
    if (outcol->colvalues[i-1].bestcell > 0)
    {
      IDXLOCALIDP_UPDATEMAX(outcol->colvalues[i-1].bestcell +
                lci->scorevalues.gapextend,Deletebit);
    }
    IDXLOCALIDP_UPDATEMAX(REPLACEMENTSCORE(&lci->scorevalues,
                               dbchar,lci->query[i-1]),Replacebit);
    IDXLOCALIDP_UPDATEMAX(lci->scorevalues.gapextend,Insertbit);
#endif
    if (outcol->colvalues[i].bestcell > 0 &&
        outcol->colvalues[i].bestcell > (Scoretype) outcol->maxvalue)
    {
      outcol->maxvalue = (GtUword) outcol->colvalues[i].bestcell;
      outcol->pprefixlen = i;
    }
  }
}

// Assembly:
subq $0x38, %rsp
movb %dl, %al
movq %rdi, 0x30(%rsp)
movq %rsi, 0x28(%rsp)
movb %al, 0x27(%rsp)
movq 0x28(%rsp), %rax
movq 0x8(%rax), %rax
movq 0x30(%rsp), %rcx
cmpq 0x28(%rcx), %rax
jae 0x25a10b
movq 0x28(%rsp), %rax
movq (%rax), %rdi
movq 0x30(%rsp), %rax
movq 0x28(%rax), %rsi
shlq $0x4, %rsi
leaq 0x32071c(%rip), %rdx    # 0x57a800
movl $0xa8, %ecx
callq 0xe8540
movq %rax, %rcx
movq 0x28(%rsp), %rax
movq %rcx, (%rax)
movq 0x30(%rsp), %rax
movq 0x28(%rax), %rcx
movq 0x28(%rsp), %rax
movq %rcx, 0x8(%rax)
movq 0x28(%rsp), %rax
movq (%rax), %rax
movq $-0x1, (%rax)
movq 0x28(%rsp), %rax
movq (%rax), %rax
movl $0x0, 0x8(%rax)
movq 0x28(%rsp), %rax
movq $0x0, 0x18(%rax)
movq 0x28(%rsp), %rax
movq $0x0, 0x10(%rax)
movq $0x1, 0x18(%rsp)
movq 0x18(%rsp), %rax
movq 0x30(%rsp), %rcx
cmpq 0x30(%rcx), %rax
ja 0x25a3c1
movq 0x28(%rsp), %rax
movq (%rax), %rax
movq 0x18(%rsp), %rcx
shlq $0x4, %rcx
addq %rcx, %rax
movq $-0x1, (%rax)
movq 0x28(%rsp), %rax
movq (%rax), %rax
movq 0x18(%rsp), %rcx
shlq $0x4, %rcx
addq %rcx, %rax
movl $0x0, 0x8(%rax)
movq 0x28(%rsp), %rax
movq (%rax), %rax
movq 0x18(%rsp), %rcx
subq $0x1, %rcx
shlq $0x4, %rcx
addq %rcx, %rax
cmpq $0x0, (%rax)
jle 0x25a238
movq 0x28(%rsp), %rax
movq (%rax), %rax
movq 0x18(%rsp), %rcx
subq $0x1, %rcx
shlq $0x4, %rcx
addq %rcx, %rax
movq (%rax), %rax
movq 0x30(%rsp), %rcx
addq 0x18(%rcx), %rax
movq %rax, 0x10(%rsp)
movq 0x10(%rsp), %rax
movq 0x28(%rsp), %rcx
movq (%rcx), %rcx
movq 0x18(%rsp), %rdx
shlq $0x4, %rdx
addq %rdx, %rcx
cmpq (%rcx), %rax
jle 0x25a236
movq 0x10(%rsp), %rcx
movq 0x28(%rsp), %rax
movq (%rax), %rax
movq 0x18(%rsp), %rdx
shlq $0x4, %rdx
addq %rdx, %rax
movq %rcx, (%rax)
movq 0x28(%rsp), %rax
movq (%rax), %rax
movq 0x18(%rsp), %rcx
shlq $0x4, %rcx
addq %rcx, %rax
movl $0x3, 0x8(%rax)
jmp 0x25a238
movzbl 0x27(%rsp), %eax
movq 0x30(%rsp), %rcx
movq 0x20(%rcx), %rcx
movq 0x18(%rsp), %rdx
subq $0x1, %rdx
movzbl (%rcx,%rdx), %ecx
cmpl %ecx, %eax
jne 0x25a263
movzbl 0x27(%rsp), %eax
cmpl $0xfe, %eax
jl 0x25a273
movq 0x30(%rsp), %rax
movq 0x8(%rax), %rax
movq %rax, 0x8(%rsp)
jmp 0x25a280
movq 0x30(%rsp), %rax
movq (%rax), %rax
movq %rax, 0x8(%rsp)
movq 0x8(%rsp), %rax
movq %rax, 0x10(%rsp)
movq 0x10(%rsp), %rax
movq 0x28(%rsp), %rcx
movq (%rcx), %rcx
movq 0x18(%rsp), %rdx
shlq $0x4, %rdx
addq %rdx, %rcx
cmpq (%rcx), %rax
jle 0x25a2df
movq 0x10(%rsp), %rcx
movq 0x28(%rsp), %rax
movq (%rax), %rax
movq 0x18(%rsp), %rdx
shlq $0x4, %rdx
addq %rdx, %rax
movq %rcx, (%rax)
movq 0x28(%rsp), %rax
movq (%rax), %rax
movq 0x18(%rsp), %rcx
shlq $0x4, %rcx
addq %rcx, %rax
movl $0x2, 0x8(%rax)
movq 0x30(%rsp), %rax
movq 0x18(%rax), %rax
movq %rax, 0x10(%rsp)
movq 0x10(%rsp), %rax
movq 0x28(%rsp), %rcx
movq (%rcx), %rcx
movq 0x18(%rsp), %rdx
shlq $0x4, %rdx
addq %rdx, %rcx
cmpq (%rcx), %rax
jle 0x25a342
movq 0x10(%rsp), %rcx
movq 0x28(%rsp), %rax
movq (%rax), %rax
movq 0x18(%rsp), %rdx
shlq $0x4, %rdx
addq %rdx, %rax
movq %rcx, (%rax)
movq 0x28(%rsp), %rax
movq (%rax), %rax
movq 0x18(%rsp), %rcx
shlq $0x4, %rcx
addq %rcx, %rax
movl $0x1, 0x8(%rax)
movq 0x28(%rsp), %rax
movq (%rax), %rax
movq 0x18(%rsp), %rcx
shlq $0x4, %rcx
addq %rcx, %rax
cmpq $0x0, (%rax)
jle 0x25a3ac
movq 0x28(%rsp), %rax
movq (%rax), %rax
movq 0x18(%rsp), %rcx
shlq $0x4, %rcx
addq %rcx, %rax
movq (%rax), %rax
movq 0x28(%rsp), %rcx
cmpq 0x18(%rcx), %rax
jle 0x25a3ac
movq 0x28(%rsp), %rax
movq (%rax), %rax
movq 0x18(%rsp), %rcx
shlq $0x4, %rcx
addq %rcx, %rax
movq (%rax), %rcx
movq 0x28(%rsp), %rax
movq %rcx, 0x18(%rax)
movq 0x18(%rsp), %rcx
movq 0x28(%rsp), %rax
movq %rcx, 0x10(%rax)
jmp 0x25a3ae
movq 0x18(%rsp), %rax
addq $0x1, %rax
movq %rax, 0x18(%rsp)
jmp 0x25a14c
addq $0x38, %rsp
retq
nopw %cs:(%rax,%rax)