// File: /workspace/github_c_makefile_star2_O2/annoroad[P]fqtools_plus/fqtools.c
// Function: parallel_filter_main
void parallel_filter_main(void){
	setup_jobs();
	struct job* job = NULL;
	int more;
	long seq = 0;
	int cthreads = 0;
	thread* writeth = launch((void*)writen,NULL);
	thread* writeth_raw = NULL;
	if (g.outraw) {
		writeth_raw= launch((void*)writen_raw,NULL);
	}
	if (g.Nthread <= 0) {
		fprintf(stderr, "Nthread is wrong!\n");
		exit(0);
	}

	do{
		job = new_job();
		job->in = get_space(&in_pool);
		more = readn(job->in);
		job->more = more;
		job->seq = seq;

		if (cthreads++ < g.Nthread){
			launch((void*)filter_pair,NULL);
		}
		seq++;
		possess(compress_have);
		job->next = NULL;
		*compress_tail = job;
		compress_tail = &(job->next);
		twist(compress_have,BY,+1);
	}while(more);

	join(writeth);
	if (writeth_raw != NULL) join(writeth_raw);
	finish_jobs();
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x88, %rsp
cmpq $0x0, 0x7ace(%rip)      # 0xa2e0
jne 0x2884
xorl %edi, %edi
callq 0x5c1c
andq $0x0, 0x7ac5(%rip)      # 0xa2e8
movq %rax, 0x7ab6(%rip)      # 0xa2e0
leaq 0x7ab7(%rip), %rax      # 0xa2e8
movq %rax, 0x7ac8(%rip)      # 0xa300
pushq $-0x1
popq %rbx
movq %rbx, %rdi
callq 0x5c1c
movq %rax, 0x7a6e(%rip)      # 0xa2b8
andq $0x0, 0x7a6e(%rip)      # 0xa2c0
movq %rbx, %rdi
callq 0x5c1c
andq $0x0, 0x7a96(%rip)      # 0xa2f8
movq %rax, 0x7a87(%rip)      # 0xa2f0
cmpb $0x1, 0x7994(%rip)      # 0xa204
movl 0x798a(%rip), %edi      # 0xa200
adcl $-0x3, %edi
movl %edi, 0x7981(%rip)      # 0xa200
callq 0x35b0
leaq -0x42f(%rip), %rdi      # 0x245c
xorl %ebx, %ebx
xorl %esi, %esi
callq 0x5d29
movq %rax, 0x8(%rsp)
cmpb $0x0, 0x7964(%rip)      # 0xa204
je 0x28b3
leaq -0x1df(%rip), %rdi      # 0x26ca
xorl %esi, %esi
callq 0x5d29
movq %rax, %rbx
movq %rbx, 0x10(%rsp)
cmpl $0x0, 0x7941(%rip)      # 0xa200
jle 0x2a71
xorl %ebx, %ebx
leaq 0x4a4(%rip), %r15       # 0x2d72
pushq $0x1
popq %rbp
pushq $0x1
popq %r12
callq 0x2a94
movq %rax, %r14
callq 0x2ad4
movq %rax, 0x10(%r14)
movq %rax, %rdi
callq 0x2c2d
movl %eax, %r13d
movl %eax, 0x8(%r14)
movq %rbx, (%r14)
cmpl %ebx, 0x7902(%rip)      # 0xa200
jle 0x290a
movq %r15, %rdi
xorl %esi, %esi
callq 0x5d29
movq 0x79cf(%rip), %rdi      # 0xa2e0
callq 0x5ccb
movq %r14, %rax
addq $0x20, %rax
andq $0x0, 0x20(%r14)
movq 0x79d7(%rip), %rcx      # 0xa300
movq %r14, (%rcx)
movq %rax, 0x79cd(%rip)      # 0xa300
movq 0x79a6(%rip), %rdi      # 0xa2e0
movl %ebp, %esi
movq %r12, %rdx
callq 0x5e4d
incq %rbx
testl %r13d, %r13d
jne 0x28d5
movq 0x8(%rsp), %rdi
callq 0x5f5f
movq 0x10(%rsp), %rdi
testq %rdi, %rdi
je 0x2965
callq 0x5f5f
movq 0x7974(%rip), %rdi      # 0xa2e0
testq %rdi, %rdi
je 0x2a5f
callq 0x5ccb
leaq 0x38(%rsp), %rax
orq $-0x1, -0x20(%rax)
xorps %xmm0, %xmm0
movups %xmm0, (%rax)
leaq 0x18(%rsp), %rcx
movq %rcx, 0x7952(%rip)      # 0xa2e8
movq %rax, 0x7963(%rip)      # 0xa300
movq 0x793c(%rip), %rdi      # 0xa2e0
pushq $0x1
popq %rsi
pushq $0x1
popq %rdx
callq 0x5e4d
callq 0x5fe8
callq 0x3dbe
callq 0x3fe4
movq 0x78f3(%rip), %rdi      # 0xa2b8
callq 0x5c7d
movq 0x790f(%rip), %rdi      # 0xa2e0
callq 0x5c7d
cmpb $0x0, 0x7827(%rip)      # 0xa204
je 0x29eb
movq 0x790a(%rip), %rdi      # 0xa2f0
callq 0x5c7d
andq $0x0, 0x78ed(%rip)      # 0xa2e0
movq 0x7886(%rip), %rdi      # 0xa280
callq 0x2030
cmpb $0x0, 0x77c2(%rip)      # 0xa1c8
je 0x2a14
movq 0x7879(%rip), %rdi      # 0xa288
callq 0x2030
movq 0x7875(%rip), %rdi      # 0xa290
callq 0x20b0
cmpb $0x0, 0x77a1(%rip)      # 0xa1c8
je 0x2a35
movq 0x7868(%rip), %rdi      # 0xa298
callq 0x20b0
cmpb $0x0, 0x77c8(%rip)      # 0xa204
je 0x2a5f
movq 0x785b(%rip), %rdi      # 0xa2a0
callq 0x20b0
cmpb $0x0, 0x7777(%rip)      # 0xa1c8
je 0x2a5f
movq 0x784e(%rip), %rdi      # 0xa2a8
callq 0x20b0
addq $0x88, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
movq 0x7580(%rip), %rax      # 0x9ff8
movq (%rax), %rcx
leaq 0x45d5(%rip), %rdi      # 0x7057
pushq $0x12
popq %rsi
pushq $0x1
popq %rdx
callq 0x22c0
xorl %edi, %edi
callq 0x22b0