// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/core/bioseq.c
// Function: bioseq_fill
static int bioseq_fill(GtBioseq *bs, bool recreate, GtError *err)
{
  GtStr *bioseq_index_file = NULL,
        *bioseq_ois_file = NULL,
        *bioseq_sds_file = NULL,
        *bioseq_md5_file = NULL,
        *bioseq_des_file = NULL;
  int had_err = 0;
  GtStr *bioseq_basename;

  gt_assert(!bs->encseq);

  if (bs->use_stdin) {
    bioseq_basename = gt_str_new_cstr("stdin.");
    /* assign a unique name */
    gt_str_append_uword(bioseq_basename, (GtUword) bs);
  } else
    bioseq_basename = bs->sequence_file;

  /* construct file names */
  bioseq_index_file = gt_str_clone(bioseq_basename);
  gt_str_append_cstr(bioseq_index_file, GT_ENCSEQFILESUFFIX);
  bioseq_ois_file = gt_str_clone(bioseq_basename);
  gt_str_append_cstr(bioseq_ois_file, GT_OISTABFILESUFFIX);
  bioseq_sds_file = gt_str_clone(bioseq_basename);
  gt_str_append_cstr(bioseq_sds_file, GT_SDSTABFILESUFFIX);
  bioseq_md5_file = gt_str_clone(bioseq_basename);
  gt_str_append_cstr(bioseq_md5_file, GT_MD5TABFILESUFFIX);
  bioseq_des_file = gt_str_clone(bioseq_basename);
  gt_str_append_cstr(bioseq_des_file, GT_DESTABFILESUFFIX);

  /* construct the bioseq files if necessary */
  if (recreate || bs->use_stdin ||
      !gt_file_exists(gt_str_get(bioseq_index_file)) ||
      !gt_file_exists(gt_str_get(bioseq_ois_file)) ||
      !gt_file_exists(gt_str_get(bioseq_sds_file)) ||
      !gt_file_exists(gt_str_get(bioseq_md5_file)) ||
      !gt_file_exists(gt_str_get(bioseq_des_file)) ||
      gt_file_is_newer(gt_str_get(bs->sequence_file),
                       gt_str_get(bioseq_index_file))) {
    had_err = construct_bioseq_files(bs, bioseq_basename, err);
  }

  if (!had_err) {
    GtEncseqLoader *el = gt_encseq_loader_new();
    gt_encseq_loader_disable_autosupport(el);
    gt_encseq_loader_require_lossless_support(el);
    gt_encseq_loader_require_description_support(el);
    gt_encseq_loader_require_md5_support(el);
    gt_encseq_loader_require_multiseq_support(el);
    bs->encseq = gt_encseq_loader_load(el, gt_str_get(bioseq_basename), err);
    if (bs->encseq == NULL) {
      had_err = -1;
      gt_assert(gt_error_is_set(err));
    }
    gt_encseq_loader_delete(el);
  }
  if (!had_err) {
    gt_assert(bs->encseq);
  }

  /* free */
  if (bs->use_stdin)
    gt_str_delete(bioseq_basename);
  gt_str_delete(bioseq_index_file);
  gt_str_delete(bioseq_ois_file);
  gt_str_delete(bioseq_md5_file);
  gt_str_delete(bioseq_sds_file);
  gt_str_delete(bioseq_des_file);

  return had_err;
}

// Assembly:
subq $0x68, %rsp
movb %sil, %al
movq %rdi, 0x60(%rsp)
andb $0x1, %al
movb %al, 0x5f(%rsp)
movq %rdx, 0x50(%rsp)
movq $0x0, 0x48(%rsp)
movq $0x0, 0x40(%rsp)
movq $0x0, 0x38(%rsp)
movq $0x0, 0x30(%rsp)
movq $0x0, 0x28(%rsp)
movl $0x0, 0x24(%rsp)
movq 0x60(%rsp), %rax
cmpq $0x0, 0x20(%rax)
je 0x10da90
movq 0xa6579(%rip), %rax     # 0x1b3fd8
movq (%rax), %rdi
leaq 0x505fd(%rip), %rsi     # 0x15e066
leaq 0x76bf5(%rip), %rdx     # 0x184665
leaq 0x76bfa(%rip), %rcx     # 0x184671
leaq 0x766d4(%rip), %r8      # 0x184152
movl $0x9e, %r9d
movb $0x0, %al
callq 0xb890
callq 0xb2e0
jmp 0x10da92
movq 0x60(%rsp), %rax
testb $0x1, (%rax)
je 0x10dabe
leaq 0x76bda(%rip), %rdi     # 0x18467d
callq 0x18f70
movq %rax, 0x18(%rsp)
movq 0x18(%rsp), %rdi
movq 0x60(%rsp), %rsi
callq 0x19390
jmp 0x10dacc
movq 0x60(%rsp), %rax
movq 0x8(%rax), %rax
movq %rax, 0x18(%rsp)
movq 0x18(%rsp), %rdi
callq 0x19ce0
movq %rax, 0x48(%rsp)
movq 0x48(%rsp), %rdi
leaq 0x76b9d(%rip), %rsi     # 0x184684
callq 0x18fb0
movq 0x18(%rsp), %rdi
callq 0x19ce0
movq %rax, 0x40(%rsp)
movq 0x40(%rsp), %rdi
leaq 0x76b82(%rip), %rsi     # 0x184689
callq 0x18fb0
movq 0x18(%rsp), %rdi
callq 0x19ce0
movq %rax, 0x38(%rsp)
movq 0x38(%rsp), %rdi
leaq 0x76b67(%rip), %rsi     # 0x18468e
callq 0x18fb0
movq 0x18(%rsp), %rdi
callq 0x19ce0
movq %rax, 0x30(%rsp)
movq 0x30(%rsp), %rdi
leaq 0x76b4c(%rip), %rsi     # 0x184693
callq 0x18fb0
movq 0x18(%rsp), %rdi
callq 0x19ce0
movq %rax, 0x28(%rsp)
movq 0x28(%rsp), %rdi
leaq 0x76b31(%rip), %rsi     # 0x184698
callq 0x18fb0
testb $0x1, 0x5f(%rsp)
jne 0x10dc30
movq 0x60(%rsp), %rax
testb $0x1, (%rax)
jne 0x10dc30
movq 0x48(%rsp), %rdi
callq 0x19940
movq %rax, %rdi
callq 0x84330
testb $0x1, %al
jne 0x10dba0
jmp 0x10dc30
movq 0x40(%rsp), %rdi
callq 0x19940
movq %rax, %rdi
callq 0x84330
testb $0x1, %al
jne 0x10dbb8
jmp 0x10dc30
movq 0x38(%rsp), %rdi
callq 0x19940
movq %rax, %rdi
callq 0x84330
testb $0x1, %al
jne 0x10dbd0
jmp 0x10dc30
movq 0x30(%rsp), %rdi
callq 0x19940
movq %rax, %rdi
callq 0x84330
testb $0x1, %al
jne 0x10dbe8
jmp 0x10dc30
movq 0x28(%rsp), %rdi
callq 0x19940
movq %rax, %rdi
callq 0x84330
testb $0x1, %al
jne 0x10dc00
jmp 0x10dc30
movq 0x60(%rsp), %rax
movq 0x8(%rax), %rdi
callq 0x19940
movq %rax, 0x8(%rsp)
movq 0x48(%rsp), %rdi
callq 0x19940
movq 0x8(%rsp), %rdi
movq %rax, %rsi
callq 0x844d0
testb $0x1, %al
jne 0x10dc30
jmp 0x10dc48
movq 0x60(%rsp), %rdi
movq 0x18(%rsp), %rsi
movq 0x50(%rsp), %rdx
callq 0x10ddd0
movl %eax, 0x24(%rsp)
cmpl $0x0, 0x24(%rsp)
jne 0x10dd27
callq 0x121c20
movq %rax, 0x10(%rsp)
movq 0x10(%rsp), %rdi
callq 0x124940
movq 0x10(%rsp), %rdi
callq 0x1248d0
movq 0x10(%rsp), %rdi
callq 0x124ea0
movq 0x10(%rsp), %rdi
callq 0x1248e0
movq 0x10(%rsp), %rdi
callq 0x124ec0
movq 0x10(%rsp), %rax
movq %rax, (%rsp)
movq 0x18(%rsp), %rdi
callq 0x19940
movq (%rsp), %rdi
movq %rax, %rsi
movq 0x50(%rsp), %rdx
callq 0x121c80
movq %rax, %rcx
movq 0x60(%rsp), %rax
movq %rcx, 0x20(%rax)
movq 0x60(%rsp), %rax
cmpq $0x0, 0x20(%rax)
jne 0x10dd1d
movl $0xffffffff, 0x24(%rsp) # imm = 0xFFFFFFFF
movq 0x50(%rsp), %rdi
callq 0xc270
testb $0x1, %al
jne 0x10dd19
movq 0xa62f0(%rip), %rax     # 0x1b3fd8
movq (%rax), %rdi
leaq 0x50374(%rip), %rsi     # 0x15e066
leaq 0x7cd3f(%rip), %rdx     # 0x18aa38
leaq 0x76971(%rip), %rcx     # 0x184671
leaq 0x7644b(%rip), %r8      # 0x184152
movl $0xc9, %r9d
movb $0x0, %al
callq 0xb890
callq 0xb2e0
jmp 0x10dd1b
jmp 0x10dd1d
movq 0x10(%rsp), %rdi
callq 0x122030
cmpl $0x0, 0x24(%rsp)
jne 0x10dd78
jmp 0x10dd30
movq 0x60(%rsp), %rax
cmpq $0x0, 0x20(%rax)
jne 0x10dd74
movq 0xa6295(%rip), %rax     # 0x1b3fd8
movq (%rax), %rdi
leaq 0x50319(%rip), %rsi     # 0x15e066
leaq 0x764d2(%rip), %rdx     # 0x184226
leaq 0x76916(%rip), %rcx     # 0x184671
leaq 0x763f0(%rip), %r8      # 0x184152
movl $0xce, %r9d
movb $0x0, %al
callq 0xb890
callq 0xb2e0
jmp 0x10dd76
jmp 0x10dd78
movq 0x60(%rsp), %rax
testb $0x1, (%rax)
je 0x10dd8c
movq 0x18(%rsp), %rdi
callq 0x1afc0
movq 0x48(%rsp), %rdi
callq 0x1afc0
movq 0x40(%rsp), %rdi
callq 0x1afc0
movq 0x30(%rsp), %rdi
callq 0x1afc0
movq 0x38(%rsp), %rdi
callq 0x1afc0
movq 0x28(%rsp), %rdi
callq 0x1afc0
movl 0x24(%rsp), %eax
addq $0x68, %rsp
retq
nopw (%rax,%rax)