// File: /workspace/github_c_makefile_star2_O0/lh3[P]fermi-lite/bfc.c
// Function: bfc_ec_kcov
void bfc_ec_kcov(int k, int min_occ, ecseq_t *s, const bfc_ch_t *ch)
{
	int i, l, r, j;
	bfc_kmer_t x = bfc_kmer_null;
	for (i = l = 0; i < s->n; ++i) {
		ecbase_t *c = &s->a[i];
		c->high_end = c->solid_end = c->lcov = c->hcov = 0;
		if (c->b < 4) {
			bfc_kmer_append(k, x.x, c->b);
			if (++l >= k) {
				if ((r = bfc_ch_kmer_occ(ch, &x)) >= 0) {
					if ((r>>8&0x3f) >= min_occ+1) c->high_end = 1;
					if ((r&0xff) >= min_occ) {
						c->solid_end = 1;
						for (j = i - k + 1; j <= i; ++j)
							++s->a[j].lcov, s->a[j].hcov += c->high_end;
					}
				}
			}
		} else l = 0, x = bfc_kmer_null;
	}
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x50, %rsp
movl %edi, -0x4(%rbp)
movl %esi, -0x8(%rbp)
movq %rdx, -0x10(%rbp)
movq %rcx, -0x18(%rbp)
movq 0x24c83(%rip), %rax     # 0x2a2c0
movq %rax, -0x48(%rbp)
movq 0x24c80(%rip), %rax     # 0x2a2c8
movq %rax, -0x40(%rbp)
movq 0x24c7d(%rip), %rax     # 0x2a2d0
movq %rax, -0x38(%rbp)
movq 0x24c7a(%rip), %rax     # 0x2a2d8
movq %rax, -0x30(%rbp)
movl $0x0, -0x20(%rbp)
movl $0x0, -0x1c(%rbp)
movslq -0x1c(%rbp), %rax
movq -0x10(%rbp), %rcx
cmpq (%rcx), %rax
jae 0x587e
movq -0x10(%rbp), %rax
movq 0x10(%rax), %rax
movslq -0x1c(%rbp), %rcx
shlq $0x3, %rcx
addq %rcx, %rax
movq %rax, -0x50(%rbp)
movq -0x50(%rbp), %rax
movw 0x2(%rax), %cx
andw $0xf03f, %cx            # imm = 0xF03F
orw $0x0, %cx
movw %cx, 0x2(%rax)
movq -0x50(%rbp), %rax
movw 0x2(%rax), %cx
andw $-0x40, %cx
orw $0x0, %cx
movw %cx, 0x2(%rax)
movq -0x50(%rbp), %rax
movw 0x2(%rax), %cx
andw $0xefff, %cx            # imm = 0xEFFF
orw $0x0, %cx
movw %cx, 0x2(%rax)
movq -0x50(%rbp), %rax
movw 0x2(%rax), %cx
andw $0xdfff, %cx            # imm = 0xDFFF
orw $0x0, %cx
movw %cx, 0x2(%rax)
movq -0x50(%rbp), %rax
movb (%rax), %al
andb $0x7, %al
movzbl %al, %eax
cmpl $0x4, %eax
jge 0x583b
movl -0x4(%rbp), %edi
leaq -0x48(%rbp), %rsi
movq -0x50(%rbp), %rax
movb (%rax), %al
andb $0x7, %al
movzbl %al, %edx
callq 0x5550
movl -0x20(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x20(%rbp)
cmpl -0x4(%rbp), %eax
jl 0x5839
movq -0x18(%rbp), %rdi
leaq -0x48(%rbp), %rsi
callq 0x21b20
movl %eax, -0x24(%rbp)
cmpl $0x0, %eax
jl 0x5837
movl -0x24(%rbp), %eax
sarl $0x8, %eax
andl $0x3f, %eax
movl -0x8(%rbp), %ecx
addl $0x1, %ecx
cmpl %ecx, %eax
jl 0x576a
movq -0x50(%rbp), %rax
movw 0x2(%rax), %cx
andw $0xdfff, %cx            # imm = 0xDFFF
orw $0x2000, %cx            # imm = 0x2000
movw %cx, 0x2(%rax)
movl -0x24(%rbp), %eax
andl $0xff, %eax
cmpl -0x8(%rbp), %eax
jl 0x5835
movq -0x50(%rbp), %rax
movw 0x2(%rax), %cx
andw $0xefff, %cx            # imm = 0xEFFF
orw $0x1000, %cx            # imm = 0x1000
movw %cx, 0x2(%rax)
movl -0x1c(%rbp), %eax
subl -0x4(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x28(%rbp)
movl -0x28(%rbp), %eax
cmpl -0x1c(%rbp), %eax
jg 0x5833
movq -0x10(%rbp), %rax
movq 0x10(%rax), %rax
movslq -0x28(%rbp), %rcx
movw 0x2(%rax,%rcx,8), %si
andw $0x3f, %si
addw $0x1, %si
movw 0x2(%rax,%rcx,8), %dx
andw $0x3f, %si
andw $-0x40, %dx
orw %si, %dx
movw %dx, 0x2(%rax,%rcx,8)
movq -0x50(%rbp), %rax
movw 0x2(%rax), %ax
shrw $0xd, %ax
andw $0x1, %ax
movzwl %ax, %esi
movq -0x10(%rbp), %rax
movq 0x10(%rax), %rax
movslq -0x28(%rbp), %rcx
movw 0x2(%rax,%rcx,8), %dx
shrw $0x6, %dx
andw $0x3f, %dx
movzwl %dx, %edx
addl %esi, %edx
movw %dx, %si
movw 0x2(%rax,%rcx,8), %dx
andw $0x3f, %si
shlw $0x6, %si
andw $0xf03f, %dx            # imm = 0xF03F
orw %si, %dx
movw %dx, 0x2(%rax,%rcx,8)
movl -0x28(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x28(%rbp)
jmp 0x579d
jmp 0x5835
jmp 0x5837
jmp 0x5839
jmp 0x586e
movl $0x0, -0x20(%rbp)
movq 0x24a77(%rip), %rax     # 0x2a2c0
movq %rax, -0x48(%rbp)
movq 0x24a74(%rip), %rax     # 0x2a2c8
movq %rax, -0x40(%rbp)
movq 0x24a71(%rip), %rax     # 0x2a2d0
movq %rax, -0x38(%rbp)
movq 0x24a6e(%rip), %rax     # 0x2a2d8
movq %rax, -0x30(%rbp)
jmp 0x5870
movl -0x1c(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x1c(%rbp)
jmp 0x5670
addq $0x50, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)