// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/core/sequence_buffer_dust.c
// Function: gt_dust_masker_new
GtDustMasker* gt_dust_masker_new(bool echo, GtUword windowsize,
                                 double threshold,
                                 GtUword linker)
{
  GtDustMasker *dust_masker = gt_calloc(1, sizeof *dust_masker);
  dust_masker->echo = echo;
  dust_masker->windowsize = windowsize;
  dust_masker->threshold = threshold;
  dust_masker->linker = linker;

  dust_masker->buf_size = windowsize + linker;
  dust_masker->buf = gt_calloc(dust_masker->buf_size,
                               sizeof *(dust_masker->buf));
  dust_masker->buf_initialized = false;
  dust_masker->buf_readpos = 0;
  dust_masker->buf_insertpos = 0;
  dust_masker->buf_remaining = 0;

  dust_masker->nuc_val1 = 0;
  dust_masker->nuc_val2 = 0;

  dust_masker->rv = 0;
  dust_masker->rw = 0;
  dust_masker->L_param = 0;
  dust_masker->w_queue = gt_inl_queue_new(windowsize);

  dust_masker->total_length = 0;
  dust_masker->current_length = 0;
  dust_masker->current_pos_total = 0;
  dust_masker->current_pos_local = 0;

  dust_masker->last_seq_start = 0;

  GT_INITARRAY(&dust_masker->masked_regions,GtDustRange);
  dust_masker->mask_length = 0;
  dust_masker->next_mask = 0;
  dust_masker->current_is_masked = false;
  dust_masker->current_region_index = 0;

  dust_masker->masking_done = false;

  return dust_masker;
}

// Assembly:
subq $0x28, %rsp
movb %dil, %al
andb $0x1, %al
movb %al, 0x27(%rsp)
movq %rsi, 0x18(%rsp)
movsd %xmm0, 0x10(%rsp)
movq %rdx, 0x8(%rsp)
movl $0x1, %edi
movl $0x3d8, %esi            # imm = 0x3D8
leaq 0xd4f7e(%rip), %rdx     # 0x17127c
movl $0x5f, %ecx
callq 0xd5b0
movq %rax, (%rsp)
movb 0x27(%rsp), %cl
movq (%rsp), %rax
andb $0x1, %cl
movb %cl, 0x3b8(%rax)
movq 0x18(%rsp), %rcx
movq (%rsp), %rax
movq %rcx, 0x3c0(%rax)
movsd 0x10(%rsp), %xmm0
movq (%rsp), %rax
movsd %xmm0, 0x3d0(%rax)
movq 0x8(%rsp), %rcx
movq (%rsp), %rax
movq %rcx, 0x3c8(%rax)
movq 0x18(%rsp), %rcx
addq 0x8(%rsp), %rcx
movq (%rsp), %rax
movq %rcx, 0x28(%rax)
movq (%rsp), %rax
movq 0x28(%rax), %rdi
movl $0x20, %esi
leaq 0xd4f07(%rip), %rdx     # 0x17127c
movl $0x67, %ecx
callq 0xd5b0
movq %rax, %rcx
movq (%rsp), %rax
movq %rcx, (%rax)
movq (%rsp), %rax
movb $0x0, 0x8(%rax)
movq (%rsp), %rax
movq $0x0, 0x10(%rax)
movq (%rsp), %rax
movq $0x0, 0x18(%rax)
movq (%rsp), %rax
movq $0x0, 0x20(%rax)
movq (%rsp), %rax
movb $0x0, 0x30(%rax)
movq (%rsp), %rax
movb $0x0, 0x31(%rax)
movq (%rsp), %rax
movl $0x0, 0x34(%rax)
movq (%rsp), %rax
movl $0x0, 0x38(%rax)
movq (%rsp), %rax
movq $0x0, 0x340(%rax)
movq 0x18(%rsp), %rdi
callq 0x9c4d0
movq %rax, %rcx
movq (%rsp), %rax
movq %rcx, 0x348(%rax)
movq (%rsp), %rax
movq $0x0, 0x350(%rax)
movq (%rsp), %rax
movq $0x0, 0x358(%rax)
movq (%rsp), %rax
movq $0x0, 0x360(%rax)
movq (%rsp), %rax
movq $0x0, 0x368(%rax)
movq (%rsp), %rax
movq $0x0, 0x370(%rax)
movq (%rsp), %rax
movq $0x0, 0x390(%rax)
movq (%rsp), %rax
movq $0x0, 0x3a0(%rax)
movq (%rsp), %rax
movq $0x0, 0x398(%rax)
movq (%rsp), %rax
movq $0x0, 0x378(%rax)
movq (%rsp), %rax
movq $0x0, 0x380(%rax)
movq (%rsp), %rax
movb $0x0, 0x388(%rax)
movq (%rsp), %rax
movq $0x0, 0x3b0(%rax)
movq (%rsp), %rax
movb $0x0, 0x389(%rax)
movq (%rsp), %rax
addq $0x28, %rsp
retq
nopw %cs:(%rax,%rax)