// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/extended/select_stream.c
// Function: gt_select_stream_new
GtNodeStream* gt_select_stream_new(GtNodeStream *in_stream, GtStr *seqid,
                                   GtStr *source, const GtRange *contain_range,
                                   const GtRange *overlap_range,
                                   GtStrand strand, GtStrand targetstrand,
                                   bool has_CDS, GtUword max_gene_length,
                                   GtUword max_gene_num,
                                   double min_gene_score, double max_gene_score,
                                   double min_average_splice_site_prob,
                                   GtUword feature_num,
                                   GtStrArray *select_files,
                                   GtStr *select_logic, GtError *err)
{
  GtNodeStream *ns = gt_node_stream_create(gt_select_stream_class(),
                                          gt_node_stream_is_sorted(in_stream));
  GtSelectStream *select_stream = gt_select_stream_cast(ns);
  gt_assert(in_stream);
  select_stream->in_stream = gt_node_stream_ref(in_stream);
  select_stream->select_visitor =
    gt_select_visitor_new(seqid, source, contain_range, overlap_range, strand,
                          targetstrand, has_CDS, max_gene_length, max_gene_num,
                          min_gene_score, max_gene_score,
                          min_average_splice_site_prob, feature_num,
                          select_files, select_logic, err);
  if  (!select_stream->select_visitor) {
    gt_node_stream_delete(ns);
    return NULL;
  }
  return ns;
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %rbx
subq $0xa8, %rsp
movq 0x108(%rsp), %rax
movq 0x100(%rsp), %rax
movq 0xf8(%rsp), %rax
movq 0xf0(%rsp), %rax
movq 0xe8(%rsp), %rax
movq 0xe0(%rsp), %rax
movb 0xd8(%rsp), %al
movl 0xd0(%rsp), %r10d
movq %rdi, 0x98(%rsp)
movq %rsi, 0x90(%rsp)
movq %rdx, 0x88(%rsp)
movq %rcx, 0x80(%rsp)
movq %r8, 0x78(%rsp)
movl %r9d, 0x74(%rsp)
andb $0x1, %al
movb %al, 0x73(%rsp)
movsd %xmm0, 0x68(%rsp)
movsd %xmm1, 0x60(%rsp)
movsd %xmm2, 0x58(%rsp)
callq 0x1d27f0
movq %rax, 0x40(%rsp)
movq 0x98(%rsp), %rdi
callq 0x1b2090
movq 0x40(%rsp), %rdi
movzbl %al, %esi
andl $0x1, %esi
callq 0x1b1b80
movq %rax, 0x50(%rsp)
callq 0x1d27f0
movq %rax, %rdi
movq 0x50(%rsp), %rsi
callq 0x1b20f0
movq %rax, 0x48(%rsp)
cmpq $0x0, 0x98(%rsp)
jne 0x1d2bc4
movq 0x46940d(%rip), %rax    # 0x63bfa0
movq (%rax), %rdi
leaq 0x343476(%rip), %rsi    # 0x516013
leaq 0x34d87f(%rip), %rdx    # 0x520423
leaq 0x3920ec(%rip), %rcx    # 0x564c97
leaq 0x3920fa(%rip), %r8     # 0x564cac
movl $0x6c, %r9d
movb $0x0, %al
callq 0x199f0
callq 0x19370
jmp 0x1d2bc6
movq 0x98(%rsp), %rdi
callq 0x1b1c50
movq %rax, %rcx
movq 0x48(%rsp), %rax
movq %rcx, 0x10(%rax)
movq 0x90(%rsp), %rdi
movq 0x88(%rsp), %rsi
movq 0x80(%rsp), %rdx
movq 0x78(%rsp), %rcx
movl 0x74(%rsp), %r8d
movl 0xd0(%rsp), %r9d
movb 0x73(%rsp), %bpl
movq 0xe0(%rsp), %r15
movq 0xe8(%rsp), %r14
movsd 0x68(%rsp), %xmm0
movsd 0x60(%rsp), %xmm1
movsd 0x58(%rsp), %xmm2
movq 0xf0(%rsp), %rbx
movq 0xf8(%rsp), %r11
movq 0x100(%rsp), %r10
movq 0x108(%rsp), %rax
andb $0x1, %bpl
movzbl %bpl, %ebp
movl %ebp, (%rsp)
movq %r15, 0x8(%rsp)
movq %r14, 0x10(%rsp)
movq %rbx, 0x18(%rsp)
movq %r11, 0x20(%rsp)
movq %r10, 0x28(%rsp)
movq %rax, 0x30(%rsp)
callq 0x1d3820
movq %rax, %rcx
movq 0x48(%rsp), %rax
movq %rcx, 0x18(%rax)
movq 0x48(%rsp), %rax
cmpq $0x0, 0x18(%rax)
jne 0x1d2cae
movq 0x50(%rsp), %rdi
callq 0x1b1cb0
movq $0x0, 0xa0(%rsp)
jmp 0x1d2cbb
movq 0x50(%rsp), %rax
movq %rax, 0xa0(%rsp)
movq 0xa0(%rsp), %rax
addq $0xa8, %rsp
popq %rbx
popq %r14
popq %r15
popq %rbp
retq
nopw %cs:(%rax,%rax)