// File: /workspace/github_c_makefile_star2_O3/genometools[P]genometools/src/core/bioseq.c
// Function: bioseq_new_with_recreate_and_type
static GtBioseq* bioseq_new_with_recreate_and_type(GtStr *sequence_file,
                                                   bool recreate, GtError *err)
{
  GtBioseq *bs;
  int had_err = 0;
  gt_error_check(err);
  bs = gt_calloc(1, sizeof *bs);
  if (!strcmp(gt_str_get(sequence_file), "-"))
    bs->use_stdin = true;
  if (!bs->use_stdin && !gt_file_exists(gt_str_get(sequence_file))) {
    gt_error_set(err, "sequence file \"%s\" does not exist or is not readable",
                 gt_str_get(sequence_file));
    had_err = -1;
  }
  if (!had_err) {
    bs->sequence_file = gt_str_ref(sequence_file);
    had_err = bioseq_fill(bs, recreate, err);
  }
  if (had_err) {
    gt_bioseq_delete(bs);
    return NULL;
  }
  gt_assert(bs->encseq);
  bs->descriptions = gt_calloc(gt_encseq_num_of_sequences(bs->encseq),
                               sizeof (char*));
  return bs;
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x2038, %rsp           # imm = 0x2038
movq %rdx, %r14
movl %esi, %ebp
movq %rdi, %r15
testq %rdx, %rdx
je 0xbb7c0
movq %r14, %rdi
callq 0x34fea
testb %al, %al
jne 0xbbc35
leaq 0x45d0f(%rip), %rdx     # 0x1014d6
movl $0x1, %edi
movl $0x30, %esi
movl $0xe3, %ecx
callq 0x359a6
movq %rax, %rbx
movq %r15, %rdi
callq 0x3bb5d
cmpb $0x2d, (%rax)
jne 0xbb7f1
cmpb $0x0, 0x1(%rax)
je 0xbb82b
testb $0x1, (%rbx)
jne 0xbb82e
movq %r15, %rdi
callq 0x3bb5d
movq %rax, %rdi
callq 0x76120
testb %al, %al
jne 0xbb82e
movq %r15, %rdi
callq 0x3bb5d
leaq 0x4619b(%rip), %rsi     # 0x1019b4
movq %r14, %rdi
movq %rax, %rdx
xorl %eax, %eax
callq 0x34f1f
jmp 0xbbbf3
movb $0x1, (%rbx)
movq %r15, %rdi
callq 0x3bcaf
movq %rax, 0x8(%rbx)
cmpq $0x0, 0x20(%rbx)
jne 0xbbc2b
movq %rax, %r15
cmpb $0x1, (%rbx)
jne 0xbb867
leaq 0x461ad(%rip), %rdi     # 0x101a01
callq 0x3b785
movq %rax, %r15
movq %rax, %rdi
movq %rbx, %rsi
callq 0x3b92e
movq %r15, %rdi
callq 0x3bc4d
movq %rax, %r12
leaq 0x4618f(%rip), %rsi     # 0x101a08
movq %rax, %rdi
callq 0x3b7af
movq %r15, %rdi
callq 0x3bc4d
leaq 0x4617d(%rip), %rsi     # 0x101a0d
movq %rax, 0x18(%rsp)
movq %rax, %rdi
callq 0x3b7af
movq %r15, %rdi
callq 0x3bc4d
leaq 0x46166(%rip), %rsi     # 0x101a12
movq %rax, 0x10(%rsp)
movq %rax, %rdi
callq 0x3b7af
movq %r15, %rdi
callq 0x3bc4d
leaq 0x4614f(%rip), %rsi     # 0x101a17
movq %rax, 0x8(%rsp)
movq %rax, %rdi
callq 0x3b7af
movq %r15, %rdi
callq 0x3bc4d
leaq 0x46138(%rip), %rsi     # 0x101a1c
movq %rax, (%rsp)
movq %rax, %rdi
callq 0x3b7af
testb %bpl, %bpl
jne 0xbb99e
cmpb $0x0, (%rbx)
jne 0xbb99e
movq %r12, %rdi
callq 0x3bb5d
movq %rax, %rdi
callq 0x76120
testb %al, %al
je 0xbb99e
movq 0x18(%rsp), %rdi
callq 0x3bb5d
movq %rax, %rdi
callq 0x76120
testb %al, %al
je 0xbb99e
movq 0x10(%rsp), %rdi
callq 0x3bb5d
movq %rax, %rdi
callq 0x76120
testb %al, %al
je 0xbb99e
movq 0x8(%rsp), %rdi
callq 0x3bb5d
movq %rax, %rdi
callq 0x76120
testb %al, %al
je 0xbb99e
movq (%rsp), %rdi
callq 0x3bb5d
movq %rax, %rdi
callq 0x76120
testb %al, %al
je 0xbb99e
movq 0x8(%rbx), %rdi
callq 0x3bb5d
movq %r12, %r13
movq %rax, %r12
movq %r13, %rdi
callq 0x3bb5d
movq %r12, %rdi
movq %r13, %r12
movq %rax, %rsi
callq 0x761d3
testb %al, %al
je 0xbbb1c
testq %r14, %r14
je 0xbb9b3
movq %r14, %rdi
callq 0x34fea
testb %al, %al
jne 0xbbc3a
movb (%rbx), %al
testb %al, %al
jne 0xbb9d7
movq 0x8(%rbx), %rdi
callq 0x3bb5d
movq %rax, 0x973b7(%rip)     # 0x152d80
leaq 0xe0f(%rip), %rdi       # 0xbc7df
callq 0xd86ec
movb (%rbx), %al
testb $0x1, %al
movq %r12, 0x28(%rsp)
je 0xbba7a
movq %r14, 0x20(%rsp)
callq 0x3b728
movq %rax, %rbp
leaq 0x45ade(%rip), %rdx     # 0x1014d6
movq %rax, %rdi
xorl %esi, %esi
movl $0x74, %ecx
callq 0x747f2
testq %rax, %rax
je 0xbbc44
movq %rax, %r13
movq 0x95576(%rip), %r14     # 0x150f90
movq (%r14), %rcx
leaq 0x30(%rsp), %rdi
movl $0x1, %esi
movl $0x2000, %edx           # imm = 0x2000
callq 0xb940
testl %eax, %eax
jle 0xbba6b
leaq 0x30(%rsp), %r12
andl $0x7fffffff, %eax       # imm = 0x7FFFFFFF
movl $0x1, %esi
movq %r12, %rdi
movq %rax, %rdx
movq %r13, %rcx
callq 0xbcb0
movq (%r14), %rcx
movl $0x1, %esi
movl $0x2000, %edx           # imm = 0x2000
movq %r12, %rdi
callq 0xb940
testl %eax, %eax
jg 0xbba3a
movq %r13, %rdi
callq 0x74532
movq 0x20(%rsp), %r14
jmp 0xbba86
movq 0x8(%rbx), %rdi
callq 0x3bcaf
movq %rax, %rbp
movq %rbp, %rdi
callq 0x3bb86
testq %rax, %rax
je 0xbbc30
callq 0xc8165
movq %rax, %r13
movq %rax, %rdi
callq 0xc81d2
movq %r13, %rdi
callq 0xc81e5
movq %r13, %rdi
callq 0xc81c2
movq %r13, %rdi
callq 0xc846d
callq 0x3c8cc
movq %rax, %r12
movq %rax, %rdi
movq %rbp, %rsi
callq 0x3ca35
movq %rbp, %rdi
callq 0x3c87b
movq %r15, %rdi
callq 0x3bb5d
movq %r13, %rdi
movq %r12, %rsi
movq %rax, %rdx
movq %r14, %rcx
callq 0xc86d4
movl %eax, %ebp
cmpb $0x0, (%rbx)
jne 0xbbaff
callq 0xd87db
movq %r12, %rdi
callq 0x3cc00
movq %r13, %rdi
callq 0xc8557
testl %ebp, %ebp
movq 0x28(%rsp), %r12
je 0xbbb1c
xorl %ebp, %ebp
jmp 0xbbb85
callq 0xc7495
movq %rax, %r13
movq %rax, %rdi
callq 0xca753
movq %r13, %rdi
callq 0xca739
movq %r13, %rdi
callq 0xca84d
movq %r13, %rdi
callq 0xca73e
movq %r13, %rdi
callq 0xca85f
movq %r15, %rdi
callq 0x3bb5d
movq %r13, %rdi
movq %rax, %rsi
movq %r14, %rdx
callq 0xc74f1
movq %rax, 0x20(%rbx)
testq %rax, %rax
je 0xbbc12
movq %r13, %rdi
callq 0xc7fab
movb $0x1, %bpl
cmpq $0x0, 0x20(%rbx)
je 0xbbc49
cmpb $0x1, (%rbx)
jne 0xbbb92
movq %r15, %rdi
callq 0x3c87b
movq %r12, %rdi
callq 0x3c87b
movq 0x18(%rsp), %rdi
callq 0x3c87b
movq 0x8(%rsp), %rdi
callq 0x3c87b
movq 0x10(%rsp), %rdi
callq 0x3c87b
movq (%rsp), %rdi
callq 0x3c87b
testb %bpl, %bpl
je 0xbbbf3
movq 0x20(%rbx), %rdi
testq %rdi, %rdi
je 0xbbc3f
callq 0xbff74
leaq 0x458fb(%rip), %rdx     # 0x1014d6
movl $0x8, %esi
movq %rax, %rdi
movl $0xf5, %ecx
callq 0x359a6
movq %rax, 0x18(%rbx)
jmp 0xbbbfd
movq %rbx, %rdi
callq 0xbbcc5
xorl %ebx, %ebx
movq %rbx, %rax
addq $0x2038, %rsp           # imm = 0x2038
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
movq %r14, %rdi
callq 0x34fea
testb %al, %al
je 0xbbc4e
movq %r13, %rdi
callq 0xc7fab
jmp 0xbbb18
callq 0x285a7
callq 0x286c2
callq 0x2856e
callq 0x285e0
callq 0x28689
callq 0x286fb
callq 0x28617
callq 0x28650