// File: /workspace/github_c_makefile_star2_O0/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:
subq $0x38, %rsp
movq 0x88(%rsp), %rax
movq 0x80(%rsp), %rax
movq 0x78(%rsp), %rax
movq 0x70(%rsp), %rax
movl 0x68(%rsp), %eax
movl 0x60(%rsp), %eax
movl 0x58(%rsp), %eax
movl 0x50(%rsp), %eax
movl 0x48(%rsp), %eax
movl 0x40(%rsp), %eax
movq %rdi, 0x30(%rsp)
movq %rsi, 0x28(%rsp)
movl %edx, 0x24(%rsp)
movl %ecx, 0x20(%rsp)
movl %r8d, 0x1c(%rsp)
movl %r9d, 0x18(%rsp)
callq 0x2ff1e0
movq %rax, %rdi
xorl %esi, %esi
callq 0x1b1b80
movq %rax, 0x10(%rsp)
callq 0x2ff1e0
movq %rax, %rdi
movq 0x10(%rsp), %rsi
callq 0x1b20f0
movq %rax, 0x8(%rsp)
movq 0x30(%rsp), %rdi
callq 0x1b1c50
movq %rax, %rcx
movq 0x8(%rsp), %rax
movq %rcx, 0x10(%rax)
movq 0x8(%rsp), %rax
movq $0x0, 0x28(%rax)
movq 0x8(%rsp), %rax
movq $0x0, 0x30(%rax)
movl $0x8, %edi
callq 0x80990
movq %rax, %rcx
movq 0x8(%rsp), %rax
movq %rcx, 0x20(%rax)
callq 0x4e8c20
movq %rax, (%rsp)
movq 0x28(%rsp), %rdi
movq 0x88(%rsp), %rsi
callq 0x4e93a0
movq (%rsp), %rdi
movq %rax, %rsi
callq 0x1b2350
movq %rax, %rcx
movq 0x8(%rsp), %rax
movq %rcx, 0x18(%rax)
movq 0x8(%rsp), %rax
movb $0x1, 0x38(%rax)
movq 0x8(%rsp), %rax
movq $0x0, 0x50(%rax)
movl 0x24(%rsp), %ecx
movq 0x8(%rsp), %rax
movl %ecx, 0x58(%rax)
movl 0x20(%rsp), %ecx
movq 0x8(%rsp), %rax
movl %ecx, 0x5c(%rax)
movl 0x1c(%rsp), %ecx
movq 0x8(%rsp), %rax
movl %ecx, 0x60(%rax)
movl 0x18(%rsp), %ecx
movq 0x8(%rsp), %rax
movl %ecx, 0x64(%rax)
movl 0x40(%rsp), %ecx
movq 0x8(%rsp), %rax
movl %ecx, 0x68(%rax)
movl 0x48(%rsp), %ecx
movq 0x8(%rsp), %rax
movl %ecx, 0x6c(%rax)
movl 0x50(%rsp), %ecx
movq 0x8(%rsp), %rax
movl %ecx, 0x70(%rax)
movl 0x60(%rsp), %ecx
movq 0x8(%rsp), %rax
movl %ecx, 0x74(%rax)
movl 0x68(%rsp), %ecx
movq 0x8(%rsp), %rax
movl %ecx, 0x78(%rax)
movl 0x58(%rsp), %ecx
movq 0x8(%rsp), %rax
movl %ecx, 0x7c(%rax)
movq 0x70(%rsp), %rcx
movq 0x8(%rsp), %rax
movq %rcx, 0x48(%rax)
movq 0x78(%rsp), %rcx
movq 0x8(%rsp), %rax
movq %rcx, 0x40(%rax)
movq 0x80(%rsp), %rcx
movq 0x8(%rsp), %rax
movq %rcx, 0x80(%rax)
movq 0x10(%rsp), %rax
addq $0x38, %rsp
retq
nop