// File: /workspace/github_c_makefile_star2_O2/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 $0x2048, %rsp           # imm = 0x2048
movq %rdx, %r14
movl %esi, %ebp
movq %rdi, %r15
testq %rdx, %rdx
je 0x9ca57
movq %r14, %rdi
callq 0xc103
testb %al, %al
jne 0x9cf20
leaq 0x4dcf4(%rip), %rdx     # 0xea752
pushq $0x1
popq %rdi
pushq $0x30
popq %rsi
movl $0xe3, %ecx
callq 0xce9a
movq %rax, %rbx
movq %r15, %rdi
callq 0x143d2
cmpb $0x2d, (%rax)
jne 0x9ca84
cmpb $0x0, 0x1(%rax)
je 0x9cabe
testb $0x1, (%rbx)
jne 0x9cac1
movq %r15, %rdi
callq 0x143d2
movq %rax, %rdi
callq 0x54940
testb %al, %al
jne 0x9cac1
movq %r15, %rdi
callq 0x143d2
leaq 0x4e184(%rip), %rsi     # 0xeac30
movq %r14, %rdi
movq %rax, %rdx
xorl %eax, %eax
callq 0xc007
jmp 0x9ce82
movb $0x1, (%rbx)
movq %r15, %rdi
callq 0x146aa
movq %rax, 0x8(%rbx)
cmpq $0x0, 0x20(%rbx)
jne 0x9cebe
movq %rax, %r15
cmpb $0x1, (%rbx)
jne 0x9cafa
leaq 0x4e196(%rip), %rdi     # 0xeac7d
callq 0x13da9
movq %rax, %r15
movq %rax, %rdi
movq %rbx, %rsi
callq 0x13ffe
movq %r15, %rdi
callq 0x1461a
movq %rax, %r12
leaq 0x4e178(%rip), %rsi     # 0xeac84
movq %rax, %rdi
callq 0x13dd3
movq %r15, %rdi
callq 0x1461a
leaq 0x4e166(%rip), %rsi     # 0xeac89
movq %rax, 0x20(%rsp)
movq %rax, %rdi
callq 0x13dd3
movq %r15, %rdi
callq 0x1461a
leaq 0x4e14f(%rip), %rsi     # 0xeac8e
movq %rax, 0x18(%rsp)
movq %rax, %rdi
callq 0x13dd3
movq %r15, %rdi
callq 0x1461a
leaq 0x4e138(%rip), %rsi     # 0xeac93
movq %rax, 0x10(%rsp)
movq %rax, %rdi
callq 0x13dd3
movq %r15, %rdi
callq 0x1461a
leaq 0x4e121(%rip), %rsi     # 0xeac98
movq %rax, 0x8(%rsp)
movq %rax, %rdi
callq 0x13dd3
testb %bpl, %bpl
jne 0x9cc3f
cmpb $0x0, (%rbx)
jne 0x9cc3f
movq %r12, %rdi
callq 0x143d2
movq %rax, %rdi
callq 0x54940
testb %al, %al
je 0x9cc3f
movq 0x20(%rsp), %rdi
callq 0x143d2
movq %rax, %rdi
callq 0x54940
testb %al, %al
je 0x9cc3f
movq 0x18(%rsp), %rdi
callq 0x143d2
movq %rax, %rdi
callq 0x54940
testb %al, %al
je 0x9cc3f
movq 0x10(%rsp), %rdi
callq 0x143d2
movq %rax, %rdi
callq 0x54940
testb %al, %al
je 0x9cc3f
movq 0x8(%rsp), %rdi
callq 0x143d2
movq %rax, %rdi
callq 0x54940
testb %al, %al
je 0x9cc3f
movq 0x8(%rbx), %rdi
callq 0x143d2
movq %r12, %r13
movq %r15, %r12
movq %r14, %r15
movq %rax, %r14
movq %r13, %rdi
callq 0x143d2
movq %r14, %rdi
movq %r15, %r14
movq %r12, %r15
movq %r13, %r12
movq %rax, %rsi
callq 0x54a24
testb %al, %al
je 0x9cda8
testq %r14, %r14
je 0x9cc54
movq %r14, %rdi
callq 0xc103
testb %al, %al
jne 0x9cf51
movb (%rbx), %al
testb %al, %al
jne 0x9cc78
movq 0x8(%rbx), %rdi
callq 0x143d2
movq %rax, 0x93106(%rip)     # 0x12fd70
leaq 0x15ad(%rip), %rdi      # 0x9e21e
callq 0xc042c
movb (%rbx), %al
testb $0x1, %al
movq %r12, 0x38(%rsp)
je 0x9ccf2
movq %r15, 0x28(%rsp)
movq %r14, 0x30(%rsp)
callq 0x13d5c
movq %rax, %rbp
leaq 0x4dab8(%rip), %rdx     # 0xea752
pushq $0x74
popq %rcx
movq %rax, %rdi
xorl %esi, %esi
callq 0x522ce
testq %rax, %rax
je 0x9cfa9
movq %rax, %r13
movq 0x912c6(%rip), %r15     # 0x12df80
leaq 0x40(%rsp), %r12
pushq $0x1
popq %r14
movq (%r15), %rcx
movl $0x2000, %edx           # imm = 0x2000
movq %r12, %rdi
movq %r14, %rsi
callq 0xb930
testl %eax, %eax
jle 0x9cd00
andl $0x7fffffff, %eax       # imm = 0x7FFFFFFF
movq %r12, %rdi
movq %r14, %rsi
movq %rax, %rdx
movq %r13, %rcx
callq 0xbca0
jmp 0x9ccc3
movq 0x8(%rbx), %rdi
callq 0x146aa
movq %rax, %rbp
jmp 0x9cd12
movq %r13, %rdi
callq 0x51cc9
movq 0x30(%rsp), %r14
movq 0x28(%rsp), %r15
movq %rbp, %rdi
callq 0x14461
testq %rax, %rax
je 0x9ceef
callq 0xaba47
movq %rax, %r13
movq %rax, %rdi
callq 0xabae0
movq %r13, %rdi
callq 0xabb26
movq %r13, %rdi
callq 0xaba9d
movq %r13, %rdi
callq 0xac011
callq 0x1532c
movq %rax, %r12
movq %rax, %rdi
movq %rbp, %rsi
callq 0x154f5
movq %rbp, %rdi
callq 0x152db
movq %r15, %rdi
callq 0x143d2
movq %r13, %rdi
movq %r12, %rsi
movq %rax, %rdx
movq %r14, %rcx
callq 0xac7a4
movl %eax, %ebp
cmpb $0x0, (%rbx)
jne 0x9cd8b
callq 0xc04f7
movq %r12, %rdi
callq 0x1583a
movq %r13, %rdi
callq 0xac1f8
testl %ebp, %ebp
movq 0x38(%rsp), %r12
je 0x9cda8
xorl %ebp, %ebp
jmp 0x9ce11
callq 0xaabb9
movq %rax, %r13
movq %rax, %rdi
callq 0xaea32
movq %r13, %rdi
callq 0xae9e5
movq %r13, %rdi
callq 0xaee5c
movq %r13, %rdi
callq 0xae9ea
movq %r13, %rdi
callq 0xaee6e
movq %r15, %rdi
callq 0x143d2
movq %r13, %rdi
movq %rax, %rsi
movq %r14, %rdx
callq 0xaac09
movq %rax, 0x20(%rbx)
testq %rax, %rax
je 0x9cea1
movq %r13, %rdi
callq 0xab8ed
movb $0x1, %bpl
cmpq $0x0, 0x20(%rbx)
je 0x9cfdf
cmpb $0x1, (%rbx)
jne 0x9ce1e
movq %r15, %rdi
callq 0x152db
movq %r12, %rdi
callq 0x152db
movq 0x20(%rsp), %rdi
callq 0x152db
movq 0x10(%rsp), %rdi
callq 0x152db
movq 0x18(%rsp), %rdi
callq 0x152db
movq 0x8(%rsp), %rdi
callq 0x152db
testb %bpl, %bpl
je 0x9ce82
movq 0x20(%rbx), %rdi
testq %rdi, %rdi
je 0x9cf7b
callq 0xa1f8d
leaq 0x4d8e6(%rip), %rdx     # 0xea752
pushq $0x8
popq %rsi
movq %rax, %rdi
movl $0xf5, %ecx
callq 0xce9a
movq %rax, 0x18(%rbx)
jmp 0x9ce8c
movq %rbx, %rdi
callq 0x9d0c7
xorl %ebx, %ebx
movq %rbx, %rax
addq $0x2048, %rsp           # imm = 0x2048
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
movq %r14, %rdi
callq 0xc103
testb %al, %al
je 0x9d00d
movq %r13, %rdi
callq 0xab8ed
jmp 0x9cda4
movq 0x910f3(%rip), %rax     # 0x12dfb8
movq (%rax), %rdi
leaq 0x2d197(%rip), %rsi     # 0xca066
leaq 0x4dd8f(%rip), %rdx     # 0xeac65
leaq 0x4dd94(%rip), %rcx     # 0xeac71
leaq 0x4d86e(%rip), %r8      # 0xea752
movl $0x9e, %r9d
jmp 0x9cfd3
movq 0x910c2(%rip), %rax     # 0x12dfb8
movq (%rax), %rdi
leaq 0x2d166(%rip), %rsi     # 0xca066
leaq 0x4ddad(%rip), %rdx     # 0xeacb4
leaq 0x4dd8f(%rip), %rcx     # 0xeac9d
leaq 0x4d83d(%rip), %r8      # 0xea752
movl $0x80, %r9d
jmp 0x9cfd3
movq 0x91091(%rip), %rax     # 0x12dfb8
movq (%rax), %rdi
leaq 0x2d135(%rip), %rsi     # 0xca066
leaq 0x2d721(%rip), %rdx     # 0xca659
leaq 0x4dccf(%rip), %rcx     # 0xeac0e
leaq 0x4d80c(%rip), %r8      # 0xea752
movl $0xe2, %r9d
jmp 0x9cfd3
movq 0x91060(%rip), %rax     # 0x12dfb8
movq (%rax), %rdi
leaq 0x2d104(%rip), %rsi     # 0xca066
leaq 0x2d6f0(%rip), %rdx     # 0xca659
leaq 0x4dd2d(%rip), %rcx     # 0xeac9d
leaq 0x4d7db(%rip), %r8      # 0xea752
pushq $0x64
jmp 0x9cfd1
movq 0x91036(%rip), %rax     # 0x12dfb8
movq (%rax), %rdi
leaq 0x2d0da(%rip), %rsi     # 0xca066
leaq 0x4d893(%rip), %rdx     # 0xea826
leaq 0x4dc74(%rip), %rcx     # 0xeac0e
leaq 0x4d7b1(%rip), %r8      # 0xea752
movl $0xf3, %r9d
jmp 0x9cfd3
movq 0x91008(%rip), %rax     # 0x12dfb8
movq (%rax), %rdi
leaq 0x2d0ac(%rip), %rsi     # 0xca066
leaq 0x3a94b(%rip), %rdx     # 0xd790c
leaq 0x4dcd5(%rip), %rcx     # 0xeac9d
leaq 0x4d783(%rip), %r8      # 0xea752
pushq $0x75
popq %r9
xorl %eax, %eax
callq 0xb8c0
callq 0xb300
movq 0x90fd2(%rip), %rax     # 0x12dfb8
movq (%rax), %rdi
leaq 0x2d076(%rip), %rsi     # 0xca066
leaq 0x4d82f(%rip), %rdx     # 0xea826
leaq 0x4dc73(%rip), %rcx     # 0xeac71
leaq 0x4d74d(%rip), %r8      # 0xea752
movl $0xce, %r9d
jmp 0x9cfd3
movq 0x90fa4(%rip), %rax     # 0x12dfb8
movq (%rax), %rdi
leaq 0x2d048(%rip), %rsi     # 0xca066
leaq 0x53d14(%rip), %rdx     # 0xf0d39
leaq 0x4dc45(%rip), %rcx     # 0xeac71
leaq 0x4d71f(%rip), %r8      # 0xea752
movl $0xc9, %r9d
jmp 0x9cfd3