// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/extended/condenseq.c
// Function: gt_condenseq_add_unique_to_db
void gt_condenseq_add_unique_to_db(GtCondenseq *condenseq,
                                   GtUword orig_startpos,
                                   ces_unsigned len)
{
  gt_assert(len != 0);
  /* if previous unique and this one are not consecutive, add the new one */
  if (condenseq->uds_nelems == 0 ||
      condenseq->uniques[condenseq->uds_nelems - 1].orig_startpos +
      condenseq->uniques[condenseq->uds_nelems - 1].len != orig_startpos) {
    gt_assert(condenseq->uds_nelems == 0 ||
              condenseq->uniques[condenseq->uds_nelems - 1].orig_startpos +
              condenseq->uniques[condenseq->uds_nelems - 1].len <
              orig_startpos);
    gt_assert(condenseq->lds_nelems == 0 ||
              condenseq->links[condenseq->lds_nelems - 1].orig_startpos +
              condenseq->links[condenseq->lds_nelems - 1].len <=
              orig_startpos);
    condenseq_uds_resize(condenseq);
    condenseq->uniques[condenseq->uds_nelems].orig_startpos = orig_startpos;
    condenseq->uniques[condenseq->uds_nelems].len = len;
    condenseq->uniques[condenseq->uds_nelems].links.spaceuint32_t = NULL;
    condenseq->uds_nelems++;
  }
  else {
    condenseq->uniques[condenseq->uds_nelems - 1].len += len;
  }
}

// Assembly:
subq $0x18, %rsp
movq %rdi, 0x10(%rsp)
movq %rsi, 0x8(%rsp)
movl %edx, 0x4(%rsp)
cmpl $0x0, 0x4(%rsp)
jne 0x13f101
movq 0x4fced0(%rip), %rax    # 0x63bfa0
movq (%rax), %rdi
leaq 0x3d6f39(%rip), %rsi    # 0x516013
leaq 0x40d63c(%rip), %rdx    # 0x54c71d
leaq 0x40beb3(%rip), %rcx    # 0x54af9b
leaq 0x40be55(%rip), %r8     # 0x54af44
movl $0x152, %r9d            # imm = 0x152
movb $0x0, %al
callq 0x199f0
callq 0x19370
jmp 0x13f103
movq 0x10(%rsp), %rax
cmpq $0x0, 0x98(%rax)
je 0x13f167
movq 0x10(%rsp), %rax
movq 0x10(%rax), %rax
movq 0x10(%rsp), %rcx
movq 0x98(%rcx), %rcx
subq $0x1, %rcx
imulq $0x28, %rcx, %rcx
addq %rcx, %rax
movq 0x18(%rax), %rax
movq 0x10(%rsp), %rcx
movq 0x10(%rcx), %rcx
movq 0x10(%rsp), %rdx
movq 0x98(%rdx), %rdx
subq $0x1, %rdx
imulq $0x28, %rdx, %rdx
addq %rdx, %rcx
movl 0x20(%rcx), %ecx
addq %rcx, %rax
cmpq 0x8(%rsp), %rax
je 0x13f323
jmp 0x13f169
movq 0x10(%rsp), %rax
cmpq $0x0, 0x98(%rax)
je 0x13f205
movq 0x10(%rsp), %rax
movq 0x10(%rax), %rax
movq 0x10(%rsp), %rcx
movq 0x98(%rcx), %rcx
subq $0x1, %rcx
imulq $0x28, %rcx, %rcx
addq %rcx, %rax
movq 0x18(%rax), %rax
movq 0x10(%rsp), %rcx
movq 0x10(%rcx), %rcx
movq 0x10(%rsp), %rdx
movq 0x98(%rdx), %rdx
subq $0x1, %rdx
imulq $0x28, %rdx, %rdx
addq %rdx, %rcx
movl 0x20(%rcx), %ecx
addq %rcx, %rax
cmpq 0x8(%rsp), %rax
jb 0x13f205
movq 0x4fcdcc(%rip), %rax    # 0x63bfa0
movq (%rax), %rdi
leaq 0x3d6e35(%rip), %rsi    # 0x516013
leaq 0x40bdd4(%rip), %rdx    # 0x54afb9
leaq 0x40bdaf(%rip), %rcx    # 0x54af9b
leaq 0x40bd51(%rip), %r8     # 0x54af44
movl $0x15a, %r9d            # imm = 0x15A
movb $0x0, %al
callq 0x199f0
callq 0x19370
jmp 0x13f207
jmp 0x13f209
movq 0x10(%rsp), %rax
cmpq $0x0, 0x70(%rax)
je 0x13f29c
movq 0x10(%rsp), %rax
movq 0x8(%rax), %rax
movq 0x10(%rsp), %rcx
movq 0x70(%rcx), %rcx
subq $0x1, %rcx
shlq $0x5, %rcx
addq %rcx, %rax
movq 0x8(%rax), %rax
movq 0x10(%rsp), %rcx
movq 0x8(%rcx), %rcx
movq 0x10(%rsp), %rdx
movq 0x70(%rdx), %rdx
subq $0x1, %rdx
shlq $0x5, %rdx
addq %rdx, %rcx
movl 0x10(%rcx), %ecx
addq %rcx, %rax
cmpq 0x8(%rsp), %rax
jbe 0x13f29c
movq 0x4fcd35(%rip), %rax    # 0x63bfa0
movq (%rax), %rdi
leaq 0x3d6d9e(%rip), %rsi    # 0x516013
leaq 0x40bddb(%rip), %rdx    # 0x54b057
leaq 0x40bd18(%rip), %rcx    # 0x54af9b
leaq 0x40bcba(%rip), %r8     # 0x54af44
movl $0x15e, %r9d            # imm = 0x15E
movb $0x0, %al
callq 0x199f0
callq 0x19370
jmp 0x13f29e
movq 0x10(%rsp), %rdi
callq 0x13f360
movq 0x8(%rsp), %rcx
movq 0x10(%rsp), %rax
movq 0x10(%rax), %rax
movq 0x10(%rsp), %rdx
imulq $0x28, 0x98(%rdx), %rdx
addq %rdx, %rax
movq %rcx, 0x18(%rax)
movl 0x4(%rsp), %ecx
movq 0x10(%rsp), %rax
movq 0x10(%rax), %rax
movq 0x10(%rsp), %rdx
imulq $0x28, 0x98(%rdx), %rdx
addq %rdx, %rax
movl %ecx, 0x20(%rax)
movq 0x10(%rsp), %rax
movq 0x10(%rax), %rax
movq 0x10(%rsp), %rcx
imulq $0x28, 0x98(%rcx), %rcx
addq %rcx, %rax
movq $0x0, (%rax)
movq 0x10(%rsp), %rax
movq 0x98(%rax), %rcx
addq $0x1, %rcx
movq %rcx, 0x98(%rax)
jmp 0x13f34d
movl 0x4(%rsp), %ecx
movq 0x10(%rsp), %rax
movq 0x10(%rax), %rax
movq 0x10(%rsp), %rdx
movq 0x98(%rdx), %rdx
subq $0x1, %rdx
imulq $0x28, %rdx, %rdx
addq %rdx, %rax
addl 0x20(%rax), %ecx
movl %ecx, 0x20(%rax)
addq $0x18, %rsp
retq
nopw %cs:(%rax,%rax)