// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/match/test-mergeesa.c
// Function: outputsuflcpllv
static int outputsuflcpllv(void *processinfo,
                           const GtUword *sequenceoffsettable,
                           const Suflcpbuffer *buf,
                           GT_UNUSED GtError *err)
{
  Mergeoutinfo *mergeoutinfo = (Mergeoutinfo *) processinfo;

  unsigned int i, lastindex;
  GtUword lcpvalue;
  Largelcpvalue currentexception;
  GtUchar smallvalue;
  bool haserr = false;

  gt_error_check(err);
  for (i=0; i<buf->nextstoreidx; i++)
  {
    mergeoutinfo->absstartpostable[i]
      = sequenceoffsettable[buf->suftabstore[i].idx] +
        buf->suftabstore[i].startpos;
  }
  gt_xfwrite(mergeoutinfo->absstartpostable, sizeof (GtUword),
            (size_t) buf->nextstoreidx, mergeoutinfo->outsuf.fp);
  if (!haserr)
  {
    if (buf->lastpage)
    {
      lastindex = buf->nextstoreidx - 1;
    } else
    {
      lastindex = buf->nextstoreidx;
    }
    for (i=0; i<lastindex; i++)
    {
      lcpvalue = buf->lcptabstore[i];
      if (lcpvalue < (GtUword) LCPOVERFLOW)
      {
        smallvalue = (GtUchar) lcpvalue;
      } else
      {
        currentexception.position = mergeoutinfo->currentlcpindex;
        currentexception.value = lcpvalue;
        gt_xfwrite(&currentexception,sizeof (Largelcpvalue), (size_t) 1,
                   mergeoutinfo->outllv.fp);
        smallvalue = (GtUchar) LCPOVERFLOW;
      }
      gt_xfwrite(&smallvalue,sizeof (GtUchar),(size_t) 1,
                 mergeoutinfo->outlcp.fp);
      mergeoutinfo->currentlcpindex++;
    }
  }
  return haserr ? -1 : 0;
}

// Assembly:
subq $0x58, %rsp
movq %rdi, 0x50(%rsp)
movq %rsi, 0x48(%rsp)
movq %rdx, 0x40(%rsp)
movq %rcx, 0x38(%rsp)
movq 0x50(%rsp), %rax
movq %rax, 0x30(%rsp)
movb $0x0, 0xe(%rsp)
cmpq $0x0, 0x38(%rsp)
je 0x2f29b7
movq 0x38(%rsp), %rdi
callq 0xd8a60
testb $0x1, %al
jne 0x2f297f
jmp 0x2f29b7
movq 0x34961a(%rip), %rax    # 0x63bfa0
movq (%rax), %rdi
leaq 0x223683(%rip), %rsi    # 0x516013
leaq 0x223828(%rip), %rdx    # 0x5161bf
leaq 0x29ccd0(%rip), %rcx    # 0x58f66e
leaq 0x29cc4b(%rip), %r8     # 0x58f5f0
movl $0x54, %r9d
movb $0x0, %al
callq 0x199f0
callq 0x19370
jmp 0x2f29b9
movl $0x0, 0x2c(%rsp)
movl 0x2c(%rsp), %eax
movq 0x40(%rsp), %rcx
cmpl 0x4(%rcx), %eax
jae 0x2f2a26
movq 0x48(%rsp), %rax
movq 0x40(%rsp), %rcx
addq $0x10008, %rcx          # imm = 0x10008
movl 0x2c(%rsp), %edx
shlq $0x4, %rdx
addq %rdx, %rcx
movl (%rcx), %ecx
movq (%rax,%rcx,8), %rdx
movq 0x40(%rsp), %rax
addq $0x10008, %rax          # imm = 0x10008
movl 0x2c(%rsp), %ecx
shlq $0x4, %rcx
addq %rcx, %rax
addq 0x8(%rax), %rdx
movq 0x30(%rsp), %rax
movl 0x2c(%rsp), %ecx
movq %rdx, 0x38(%rax,%rcx,8)
movl 0x2c(%rsp), %eax
addl $0x1, %eax
movl %eax, 0x2c(%rsp)
jmp 0x2f29c1
movq 0x30(%rsp), %rdi
addq $0x38, %rdi
movq 0x40(%rsp), %rax
movl 0x4(%rax), %eax
movl %eax, %edx
movq 0x30(%rsp), %rax
movq 0x8(%rax), %rcx
movl $0x8, %esi
callq 0x126d30
testb $0x1, 0xe(%rsp)
jne 0x2f2b39
movq 0x40(%rsp), %rax
testb $0x1, 0x30008(%rax)
je 0x2f2a76
movq 0x40(%rsp), %rax
movl 0x4(%rax), %eax
subl $0x1, %eax
movl %eax, 0x28(%rsp)
jmp 0x2f2a82
movq 0x40(%rsp), %rax
movl 0x4(%rax), %eax
movl %eax, 0x28(%rsp)
movl $0x0, 0x2c(%rsp)
movl 0x2c(%rsp), %eax
cmpl 0x28(%rsp), %eax
jae 0x2f2b37
movq 0x40(%rsp), %rax
movl 0x2c(%rsp), %ecx
movq 0x8(%rax,%rcx,8), %rax
movq %rax, 0x20(%rsp)
cmpq $0xff, 0x20(%rsp)
jae 0x2f2ac1
movq 0x20(%rsp), %rax
movb %al, 0xf(%rsp)
jmp 0x2f2afb
movq 0x30(%rsp), %rax
movq 0x30(%rax), %rax
movq %rax, 0x10(%rsp)
movq 0x20(%rsp), %rax
movq %rax, 0x18(%rsp)
movq 0x30(%rsp), %rax
movq 0x28(%rax), %rcx
leaq 0x10(%rsp), %rdi
movl $0x10, %esi
movl $0x1, %edx
callq 0x126d30
movb $-0x1, 0xf(%rsp)
movq 0x30(%rsp), %rax
movq 0x18(%rax), %rcx
leaq 0xf(%rsp), %rdi
movl $0x1, %edx
movq %rdx, %rsi
callq 0x126d30
movq 0x30(%rsp), %rax
movq 0x30(%rax), %rcx
addq $0x1, %rcx
movq %rcx, 0x30(%rax)
movl 0x2c(%rsp), %eax
addl $0x1, %eax
movl %eax, 0x2c(%rsp)
jmp 0x2f2a8a
jmp 0x2f2b39
movb 0xe(%rsp), %dl
xorl %eax, %eax
movl $0xffffffff, %ecx       # imm = 0xFFFFFFFF
testb $0x1, %dl
cmovnel %ecx, %eax
addq $0x58, %rsp
retq
nop