// File: /workspace/github_c_makefile_star2_O1/lh3[P]fermi-lite/bfc.c
// Function: worker_ec
static void worker_ec(void *_data, long k, int tid)
{
	ec_step_t *es = (ec_step_t*)_data;
	bseq1_t *s = &es->seqs[k];
	if (es->flt_uniq) {
		uint64_t max;
		max = max_streak(es->opt->k, es->ch, s);
		if (max>>32 && (double)((max>>32) + es->opt->k - 1) / s->l_seq > es->opt->min_trim_frac) {
			int start = (uint32_t)max, end = start + (max>>32);
			start -= es->opt->k - 1;
			assert(start >= 0 && end <= s->l_seq);
			memmove(s->seq, s->seq + start, end - start);
			s->l_seq = end - start;
			s->seq[s->l_seq] = 0;
			if (s->qual) {
				memmove(s->qual, s->qual + start, s->l_seq);
				s->qual[s->l_seq] = 0;
			}
		} else {
			free(s->seq); free(s->qual);
			s->l_seq = 0, s->seq = s->qual = 0;
		}
	} else bfc_ec1(es->e[tid], s->seq, s->qual);
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x48, %rsp
leaq (%rsi,%rsi,2), %rbp
shlq $0x3, %rbp
addq 0x28(%rdi), %rbp
cmpl $0x0, 0x24(%rdi)
je 0x7144
movq (%rdi), %rax
movq %rdi, 0x38(%rsp)
movq 0x8(%rdi), %rcx
movq %rcx, 0x40(%rsp)
movl 0x8(%rax), %ebx
movups 0x16285(%rip), %xmm0    # 0x1d290
movaps %xmm0, 0x10(%rsp)
movups 0x16269(%rip), %xmm0    # 0x1d280
movaps %xmm0, (%rsp)
xorl %r14d, %r14d
cmpl $0x0, (%rbp)
jle 0x716a
movq $-0x1, %r8
movl %ebx, %ecx
shlq %cl, %r8
notq %r8
leal -0x1(%rbx), %ecx
leaq 0x1612f(%rip), %r10     # 0x1d170
xorl %r15d, %r15d
xorl %r12d, %r12d
xorl %r13d, %r13d
movq %rbp, 0x30(%rsp)
movq %rcx, 0x28(%rsp)
movq 0x8(%rbp), %rax
movzbl (%rax,%r15), %eax
movzbl (%r10,%rax), %eax
cmpl $0x4, %eax
ja 0x70d0
decl %eax
movl %eax, %edx
andl $0x1, %edx
movq (%rsp), %r9
movq 0x8(%rsp), %rsi
leaq (%rdx,%r9,2), %r9
andq %r8, %r9
movq %r9, (%rsp)
addq %rsi, %rsi
sarl %eax
cltq
orq %rax, %rsi
andq %r8, %rsi
movq %rsi, 0x8(%rsp)
movq 0x10(%rsp), %rsi
shrq %rsi
xorq $0x1, %rdx
shlq %cl, %rdx
orq %rsi, %rdx
movq %rdx, 0x10(%rsp)
movq 0x18(%rsp), %rdx
shrq %rdx
xorq $0x1, %rax
shlq %cl, %rax
orq %rdx, %rax
movq %rax, 0x18(%rsp)
incl %r14d
cmpl %ebx, %r14d
jge 0x70f0
leaq 0x1(%r15), %r12
jmp 0x712b
movups 0x161b9(%rip), %xmm0    # 0x1d290
movaps %xmm0, 0x10(%rsp)
movups 0x1619d(%rip), %xmm0    # 0x1d280
movaps %xmm0, (%rsp)
leaq 0x1(%r15), %r12
xorl %r14d, %r14d
jmp 0x712b
movq %r8, %rbp
movq 0x40(%rsp), %rdi
movq %rsp, %rsi
callq 0x1461d
testl %eax, %eax
jle 0x7113
movabsq $0x100000000, %rax      # imm = 0x100000000
addq %rax, %r12
jmp 0x7117
leaq 0x1(%r15), %r12
movq %rbp, %r8
movq 0x30(%rsp), %rbp
movq 0x28(%rsp), %rcx
leaq 0x16045(%rip), %r10     # 0x1d170
cmpq %r12, %r13
cmovbeq %r12, %r13
incq %r15
movslq (%rbp), %rax
cmpq %rax, %r15
jl 0x7054
jmp 0x716d
movq 0x10(%rdi), %rax
movslq %edx, %rcx
movq (%rax,%rcx,8), %rdi
movq 0x8(%rbp), %rsi
movq 0x10(%rbp), %rdx
addq $0x48, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
jmp 0x5a45
xorl %r13d, %r13d
movq %r13, %rax
shrq $0x20, %rax
je 0x722c
movq 0x38(%rsp), %rcx
movq (%rcx), %rsi
movslq 0x8(%rsi), %rcx
leaq (%rax,%rcx), %rdx
decq %rdx
movq %rdx, %xmm0
punpckldq 0x101e6(%rip), %xmm0 # xmm0 = xmm0[0],mem[0],xmm0[1],mem[1]
subpd 0x101ee(%rip), %xmm0    # 0x17390
movapd %xmm0, %xmm1
unpckhpd %xmm0, %xmm1            # xmm1 = xmm1[1],xmm0[1]
addsd %xmm0, %xmm1
movl (%rbp), %edx
xorps %xmm0, %xmm0
cvtsi2sd %edx, %xmm0
divsd %xmm0, %xmm1
xorps %xmm0, %xmm0
cvtss2sd 0x1c(%rsi), %xmm0
ucomisd %xmm0, %xmm1
jbe 0x722c
movl %r13d, %r8d
subl %ecx, %r8d
incl %r8d
js 0x725b
addl %r13d, %eax
cmpl %eax, %edx
jl 0x725b
movq 0x8(%rbp), %rdi
movl %r8d, %ebx
leaq (%rdi,%rbx), %rsi
subl %r8d, %eax
movslq %eax, %r14
movq %r14, %rdx
callq 0x2210
movl %r14d, (%rbp)
movq 0x8(%rbp), %rax
movb $0x0, (%rax,%r14)
movq 0x10(%rbp), %rdi
testq %rdi, %rdi
je 0x724c
addq %rdi, %rbx
movslq (%rbp), %rdx
movq %rbx, %rsi
callq 0x2210
movq 0x10(%rbp), %rax
movslq (%rbp), %rcx
movb $0x0, (%rax,%rcx)
jmp 0x724c
movq 0x8(%rbp), %rdi
callq 0x2040
movq 0x10(%rbp), %rdi
callq 0x2040
movl $0x0, (%rbp)
xorps %xmm0, %xmm0
movups %xmm0, 0x8(%rbp)
addq $0x48, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
leaq 0x10333(%rip), %rdi     # 0x17595
leaq 0x10276(%rip), %rsi     # 0x174df
leaq 0x10343(%rip), %rcx     # 0x175b3
movl $0x264, %edx            # imm = 0x264
callq 0x20e0