// File: /workspace/github_c_makefile_star2_O1/genometools[P]genometools/src/ltr/ltr_cluster_stream.c
// Function: gt_ltr_cluster_stream_new
GtNodeStream* gt_ltr_cluster_stream_new(GtNodeStream *in_stream,
                                        GtEncseq *encseq,
                                        int match_score,
                                        int mismatch_cost,
                                        int gap_open_cost,
                                        int gap_ext_cost,
                                        int xdrop,
                                        int ydrop,
                                        int zdrop,
                                        int k,
                                        int mscoregapped,
                                        int mscoregapless,
                                        GtUword plarge,
                                        GtUword psmall,
                                        char **current_state,
                                        GtError *err)
{
  GtNodeStream *ns;
  GtLTRClusterStream *lcs;
  ns = gt_node_stream_create(gt_ltr_cluster_stream_class(), false);
  lcs = gt_ltr_cluster_stream_cast(ns);
  lcs->in_stream = gt_node_stream_ref(in_stream);
  lcs->feat_to_encseq = NULL;
  lcs->feat_to_encseq_keys = NULL;
  lcs->nodes = gt_array_new(sizeof(GtGenomeNode*));
  lcs->lcv = gt_ltr_cluster_prepare_seq_visitor_cast(
                           gt_ltr_cluster_prepare_seq_visitor_new(encseq, err));
  lcs->first_next = true;
  lcs->next_index = 0;
  lcs->match_score = match_score;
  lcs->mismatch_cost = mismatch_cost;
  lcs->gap_open_cost = gap_open_cost;
  lcs->gap_ext_cost = gap_ext_cost;
  lcs->xdrop = xdrop;
  lcs->ydrop = ydrop;
  lcs->zdrop = zdrop;
  lcs->mscoregapped = mscoregapped;
  lcs->mscoregapless = mscoregapless;
  lcs->k = k;
  lcs->plarge = plarge;
  lcs->psmall = psmall;
  lcs->current_state = current_state;
  return ns;
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
pushq %rax
movl %r9d, 0x4(%rsp)
movl %r8d, (%rsp)
movl %ecx, %r14d
movl %edx, %r15d
movq %rsi, %r13
movq %rdi, %rbp
callq 0x210eb8
movq %rax, %rdi
xorl %esi, %esi
callq 0x16abec
movq %rax, %r12
callq 0x210eb8
movq %rax, %rdi
movq %r12, %rsi
callq 0x16ae64
movq %rax, %rbx
movq %rbp, %rdi
callq 0x16ac58
movq %rax, 0x10(%rbx)
xorps %xmm0, %xmm0
movups %xmm0, 0x28(%rbx)
movl $0x8, %edi
callq 0xd46fc
movq %rax, 0x20(%rbx)
callq 0x336aec
movq %rax, %rbp
movq %r13, %rdi
movq 0x88(%rsp), %rsi
callq 0x336f61
movq %rbp, %rdi
movq %rax, %rsi
callq 0x16af21
movq %rax, 0x18(%rbx)
movb $0x1, 0x38(%rbx)
movq $0x0, 0x50(%rbx)
movl %r15d, 0x58(%rbx)
movl %r14d, 0x5c(%rbx)
movl (%rsp), %eax
movl %eax, 0x60(%rbx)
movl 0x4(%rsp), %eax
movl %eax, 0x64(%rbx)
movl 0x40(%rsp), %eax
movl %eax, 0x68(%rbx)
movl 0x48(%rsp), %eax
movl %eax, 0x6c(%rbx)
movl 0x50(%rsp), %eax
movl %eax, 0x70(%rbx)
movl 0x60(%rsp), %eax
movl %eax, 0x74(%rbx)
movl 0x68(%rsp), %eax
movl %eax, 0x78(%rbx)
movl 0x58(%rsp), %eax
movl %eax, 0x7c(%rbx)
movq 0x70(%rsp), %rax
movq %rax, 0x48(%rbx)
movq 0x78(%rsp), %rax
movq %rax, 0x40(%rbx)
movq 0x80(%rsp), %rax
movq %rax, 0x80(%rbx)
movq %r12, %rax
addq $0x8, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq