// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/extended/condenseq.c
// Function: gt_condenseq_new_from_file
GtCondenseq *gt_condenseq_new_from_file(const char *indexname,
                                        GtLogger *logger, GtError *err)
{
  int had_err = 0;
  FILE* fp;
  GtEncseqLoader *esl;
  GtEncseq *unique_es;
  GtCondenseq *condenseq = NULL;
  /*load unique_es*/
  esl = gt_encseq_loader_new();
  gt_encseq_loader_disable_autosupport(esl);
  gt_encseq_loader_drop_md5_support(esl);
  gt_encseq_loader_require_ssp_tab(esl);
  unique_es = gt_encseq_loader_load(esl, indexname, err);
  if (!unique_es)
    had_err = -1;
  if (!had_err) {
    gt_encseq_loader_delete(esl);
    condenseq = condenseq_new_empty(gt_encseq_alphabet(unique_es));
    condenseq->filename = gt_cstr_dup(indexname);
    condenseq->unique_es = unique_es;
    fp = gt_fa_fopen_with_suffix(indexname, GT_CONDENSEQ_FILE_SUFFIX,
                                 "rb", err);
    if (fp == NULL) {
      had_err = -1;
    }
    else {
      had_err = condenseq_io(condenseq, fp, gt_io_error_fread, err);
      if (!had_err) {
        GtUword i;
        gt_assert(condenseq->uniques);
        gt_assert(condenseq->links);
        gt_fa_fclose(fp);
        /*create link array for each unique entry*/
        for (i = 0; i < condenseq->uds_nelems; i++) {
          GT_INITARRAY(&(condenseq->uniques[i].links),uint32_t);
        }
        /* check for overflows */
        if (condenseq->lds_nelems > (GtUword) ((uint32_t) 0 - (uint32_t) 1)) {
          gt_error_set(err, "Overflow, to many link-elements. Can't be stored");
          had_err = -1;
        }
        /* iterate through link entrys and store ids in corresponding unique
          entry array */
        for (i = 0; !had_err && (GtUword) i < condenseq->lds_nelems; i++) {
          GtUword uid = condenseq->links[i].unique_id;
          gt_assert(uid < condenseq->uds_nelems);
          GT_STOREINARRAY(&(condenseq->uniques[uid].links),
                          uint32_t,
                          10,
                          (uint32_t) i);
        }
      }
    }
  }
  if (!had_err) {
    gt_assert(condenseq != NULL);
    if (condenseq->id_len != GT_UNDEF_UWORD)
      gt_logger_log(logger, "IDs const len: " GT_WU, condenseq->id_len);
    else
      gt_logger_log(logger, "using sdstab to access IDs");
  }
  if (had_err) {
    gt_condenseq_delete(condenseq);
    condenseq = NULL;
  }
  return (condenseq);
}

// Assembly:
subq $0x68, %rsp
movq %rdi, 0x60(%rsp)
movq %rsi, 0x58(%rsp)
movq %rdx, 0x50(%rsp)
movl $0x0, 0x4c(%rsp)
movq $0x0, 0x28(%rsp)
callq 0xb7a40
movq %rax, 0x38(%rsp)
movq 0x38(%rsp), %rdi
callq 0xba760
movq 0x38(%rsp), %rdi
callq 0xba560
movq 0x38(%rsp), %rdi
callq 0xba8c0
movq 0x38(%rsp), %rdi
movq 0x60(%rsp), %rsi
movq 0x50(%rsp), %rdx
callq 0xb7aa0
movq %rax, 0x30(%rsp)
cmpq $0x0, 0x30(%rsp)
jne 0x13fde5
movl $0xffffffff, 0x4c(%rsp) # imm = 0xFFFFFFFF
cmpl $0x0, 0x4c(%rsp)
jne 0x140235
movq 0x38(%rsp), %rdi
callq 0xb7e50
movq 0x30(%rsp), %rdi
callq 0xb0f00
movq %rax, %rdi
callq 0x13e810
movq %rax, 0x28(%rsp)
movq 0x60(%rsp), %rdi
callq 0xa2db0
movq %rax, %rcx
movq 0x28(%rsp), %rax
movq %rcx, 0x40(%rax)
movq 0x30(%rsp), %rcx
movq 0x28(%rsp), %rax
movq %rcx, 0x18(%rax)
movq 0x60(%rsp), %rdi
movq 0x50(%rsp), %r9
leaq 0x40b458(%rip), %rsi    # 0x54b29e
leaq 0x438098(%rip), %rdx    # 0x577ee5
leaq 0x40b0f0(%rip), %rcx    # 0x54af44
movl $0x228, %r8d            # imm = 0x228
callq 0xd92c0
movq %rax, 0x40(%rsp)
cmpq $0x0, 0x40(%rsp)
jne 0x13fe79
movl $0xffffffff, 0x4c(%rsp) # imm = 0xFFFFFFFF
jmp 0x140233
movq 0x28(%rsp), %rdi
movq 0x40(%rsp), %rsi
movq 0x50(%rsp), %rcx
leaq 0x57a51(%rip), %rdx     # 0x1978e0
callq 0x13f8d0
movl %eax, 0x4c(%rsp)
cmpl $0x0, 0x4c(%rsp)
jne 0x140231
jmp 0x13fea5
movq 0x28(%rsp), %rax
cmpq $0x0, 0x10(%rax)
jne 0x13fee9
movq 0x4fc0e8(%rip), %rax    # 0x63bfa0
movq (%rax), %rdi
leaq 0x3d6151(%rip), %rsi    # 0x516013
leaq 0x40b3da(%rip), %rdx    # 0x54b2a3
leaq 0x40b3e6(%rip), %rcx    # 0x54b2b6
leaq 0x40b06d(%rip), %r8     # 0x54af44
movl $0x230, %r9d            # imm = 0x230
movb $0x0, %al
callq 0x199f0
callq 0x19370
jmp 0x13feeb
jmp 0x13feed
movq 0x28(%rsp), %rax
cmpq $0x0, 0x8(%rax)
jne 0x13ff31
movq 0x4fc0a0(%rip), %rax    # 0x63bfa0
movq (%rax), %rdi
leaq 0x3d6109(%rip), %rsi    # 0x516013
leaq 0x40b3c0(%rip), %rdx    # 0x54b2d1
leaq 0x40b39e(%rip), %rcx    # 0x54b2b6
leaq 0x40b025(%rip), %r8     # 0x54af44
movl $0x231, %r9d            # imm = 0x231
movb $0x0, %al
callq 0x199f0
callq 0x19370
jmp 0x13ff33
movq 0x40(%rsp), %rdi
callq 0xd9390
movq $0x0, 0x20(%rsp)
movq 0x20(%rsp), %rax
movq 0x28(%rsp), %rcx
cmpq 0x98(%rcx), %rax
jae 0x13ffba
jmp 0x13ff5b
movq 0x28(%rsp), %rax
movq 0x10(%rax), %rax
imulq $0x28, 0x20(%rsp), %rcx
addq %rcx, %rax
movq $0x0, (%rax)
movq 0x28(%rsp), %rax
movq 0x10(%rax), %rax
imulq $0x28, 0x20(%rsp), %rcx
addq %rcx, %rax
movq $0x0, 0x10(%rax)
movq 0x28(%rsp), %rax
movq 0x10(%rax), %rax
imulq $0x28, 0x20(%rsp), %rcx
addq %rcx, %rax
movq $0x0, 0x8(%rax)
jmp 0x13ffaa
movq 0x20(%rsp), %rax
addq $0x1, %rax
movq %rax, 0x20(%rsp)
jmp 0x13ff46
movq 0x28(%rsp), %rax
movl $0xffffffff, %ecx       # imm = 0xFFFFFFFF
cmpq %rcx, 0x70(%rax)
jbe 0x13ffe5
movq 0x50(%rsp), %rdi
leaq 0x40b30c(%rip), %rsi    # 0x54b2e2
movb $0x0, %al
callq 0xd88c0
movl $0xffffffff, 0x4c(%rsp) # imm = 0xFFFFFFFF
movq $0x0, 0x20(%rsp)
xorl %eax, %eax
cmpl $0x0, 0x4c(%rsp)
movb %al, 0xf(%rsp)
jne 0x140010
movq 0x20(%rsp), %rax
movq 0x28(%rsp), %rcx
cmpq 0x70(%rcx), %rax
setb %al
movb %al, 0xf(%rsp)
movb 0xf(%rsp), %al
testb $0x1, %al
jne 0x14001d
jmp 0x14022f
movq 0x28(%rsp), %rax
movq 0x8(%rax), %rax
movq 0x20(%rsp), %rcx
shlq $0x5, %rcx
addq %rcx, %rax
movl 0x14(%rax), %eax
movq %rax, 0x18(%rsp)
movq 0x18(%rsp), %rax
movq 0x28(%rsp), %rcx
cmpq 0x98(%rcx), %rax
jb 0x140085
movq 0x4fbf4c(%rip), %rax    # 0x63bfa0
movq (%rax), %rdi
leaq 0x3d5fb5(%rip), %rsi    # 0x516013
leaq 0x40b2ae(%rip), %rdx    # 0x54b313
leaq 0x40b24a(%rip), %rcx    # 0x54b2b6
leaq 0x40aed1(%rip), %r8     # 0x54af44
movl $0x240, %r9d            # imm = 0x240
movb $0x0, %al
callq 0x199f0
callq 0x19370
jmp 0x140087
jmp 0x140089
jmp 0x14008b
movq 0x28(%rsp), %rax
movq 0x10(%rax), %rax
imulq $0x28, 0x18(%rsp), %rcx
addq %rcx, %rax
movq 0x10(%rax), %rax
addq $0x0, %rax
movq 0x28(%rsp), %rcx
movq 0x10(%rcx), %rcx
imulq $0x28, 0x18(%rsp), %rdx
addq %rdx, %rcx
cmpq 0x8(%rcx), %rax
jb 0x140184
movq $0xa, 0x10(%rsp)
xorl %eax, %eax
cmpq 0x10(%rsp), %rax
jbe 0x14010b
movq 0x4fbec6(%rip), %rax    # 0x63bfa0
movq (%rax), %rdi
leaq 0x3d5f2f(%rip), %rsi    # 0x516013
leaq 0x3d90bc(%rip), %rdx    # 0x5191a7
leaq 0x40b1c4(%rip), %rcx    # 0x54b2b6
leaq 0x40ae4b(%rip), %r8     # 0x54af44
movl $0x244, %r9d            # imm = 0x244
movb $0x0, %al
callq 0x199f0
callq 0x19370
jmp 0x14010d
movq 0x10(%rsp), %rcx
movq 0x28(%rsp), %rax
movq 0x10(%rax), %rax
imulq $0x28, 0x18(%rsp), %rdx
addq %rdx, %rax
addq 0x8(%rax), %rcx
movq %rcx, 0x8(%rax)
movq 0x28(%rsp), %rax
movq 0x10(%rax), %rax
imulq $0x28, 0x18(%rsp), %rcx
addq %rcx, %rax
movq (%rax), %rdi
movq 0x28(%rsp), %rax
movq 0x10(%rax), %rax
imulq $0x28, 0x18(%rsp), %rcx
addq %rcx, %rax
movq 0x8(%rax), %rsi
shlq $0x2, %rsi
leaq 0x40ade2(%rip), %rdx    # 0x54af44
movl $0x244, %ecx            # imm = 0x244
callq 0xe8540
movq %rax, %rcx
movq 0x28(%rsp), %rax
movq 0x10(%rax), %rax
imulq $0x28, 0x18(%rsp), %rdx
addq %rdx, %rax
movq %rcx, (%rax)
jmp 0x140186
movq 0x28(%rsp), %rax
movq 0x10(%rax), %rax
imulq $0x28, 0x18(%rsp), %rcx
addq %rcx, %rax
cmpq $0x0, (%rax)
jne 0x1401d6
movq 0x4fbdfb(%rip), %rax    # 0x63bfa0
movq (%rax), %rdi
leaq 0x3d5e64(%rip), %rsi    # 0x516013
leaq 0x40b179(%rip), %rdx    # 0x54b32f
leaq 0x40b0f9(%rip), %rcx    # 0x54b2b6
leaq 0x40ad80(%rip), %r8     # 0x54af44
movl $0x244, %r9d            # imm = 0x244
movb $0x0, %al
callq 0x199f0
callq 0x19370
jmp 0x1401d8
jmp 0x1401da
movq 0x20(%rsp), %rax
movl %eax, %edx
movq 0x28(%rsp), %rax
movq 0x10(%rax), %rax
imulq $0x28, 0x18(%rsp), %rcx
addq %rcx, %rax
movq (%rax), %rax
movq 0x28(%rsp), %rcx
movq 0x10(%rcx), %rsi
imulq $0x28, 0x18(%rsp), %rcx
addq %rcx, %rsi
movq 0x10(%rsi), %rcx
movq %rcx, %rdi
addq $0x1, %rdi
movq %rdi, 0x10(%rsi)
movl %edx, (%rax,%rcx,4)
jmp 0x14021c
movq 0x20(%rsp), %rax
addq $0x1, %rax
movq %rax, 0x20(%rsp)
jmp 0x13ffee
jmp 0x140231
jmp 0x140233
jmp 0x140235
cmpl $0x0, 0x4c(%rsp)
jne 0x1402c3
jmp 0x140242
cmpq $0x0, 0x28(%rsp)
jne 0x140282
movq 0x4fbd4f(%rip), %rax    # 0x63bfa0
movq (%rax), %rdi
leaq 0x3d5db8(%rip), %rsi    # 0x516013
leaq 0x40acb7(%rip), %rdx    # 0x54af19
leaq 0x40b04d(%rip), %rcx    # 0x54b2b6
leaq 0x40acd4(%rip), %r8     # 0x54af44
movl $0x24a, %r9d            # imm = 0x24A
movb $0x0, %al
callq 0x199f0
callq 0x19370
jmp 0x140284
movq 0x28(%rsp), %rax
cmpq $-0x1, 0x58(%rax)
je 0x1402ae
movq 0x58(%rsp), %rdi
movq 0x28(%rsp), %rax
movq 0x58(%rax), %rdx
leaq 0x40b0c4(%rip), %rsi    # 0x54b369
movb $0x0, %al
callq 0xe7cd0
jmp 0x1402c1
movq 0x58(%rsp), %rdi
leaq 0x40b0c2(%rip), %rsi    # 0x54b37c
movb $0x0, %al
callq 0xe7cd0
jmp 0x1402c3
cmpl $0x0, 0x4c(%rsp)
je 0x1402dd
movq 0x28(%rsp), %rdi
callq 0x13f640
movq $0x0, 0x28(%rsp)
movq 0x28(%rsp), %rax
addq $0x68, %rsp
retq
nopw (%rax,%rax)