// File: /workspace/github_c_makefile_star2_O1/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 $0x78, %rsp
cmpq $0x0, 0x866f(%rip)      # 0xb2d8
jne 0x2d00
xorl %ebx, %ebx
xorl %edi, %edi
callq 0x6200
movq %rax, 0x8659(%rip)      # 0xb2d8
movq %rbx, 0x865a(%rip)      # 0xb2e0
leaq 0x8653(%rip), %rax      # 0xb2e0
movq %rax, 0x8664(%rip)      # 0xb2f8
movq $-0x1, %rdi
callq 0x6200
movq %rax, 0x8609(%rip)      # 0xb2b0
movq %rbx, 0x860a(%rip)      # 0xb2b8
movq $-0x1, %rdi
callq 0x6200
movq %rax, 0x8627(%rip)      # 0xb2e8
movq %rbx, 0x8628(%rip)      # 0xb2f0
cmpb $0x1, 0x852d(%rip)      # 0xb1fc
movl 0x8523(%rip), %ebp      # 0xb1f8
adcl $-0x3, %ebp
movl %ebp, 0x851a(%rip)      # 0xb1f8
xorl %edi, %edi
callq 0x6200
movq %rax, 0x85d4(%rip)      # 0xb2c0
movq %rbx, 0x85d5(%rip)      # 0xb2c8
movl %ebp, 0x85d7(%rip)      # 0xb2d0
movb $0x1, 0x85d4(%rip)      # 0xb2d4
leaq -0x43b(%rip), %rdi      # 0x28cc
xorl %ebx, %ebx
xorl %esi, %esi
callq 0x6297
movq %rax, %r14
cmpb $0x0, 0x84e2(%rip)      # 0xb1fc
je 0x2d2d
leaq -0x1f0(%rip), %rdi      # 0x2b33
xorl %esi, %esi
callq 0x6297
movq %rax, %rbx
cmpl $0x0, 0x84c4(%rip)      # 0xb1f8
jle 0x2ef2
xorl %r13d, %r13d
leaq 0x4c9(%rip), %r15       # 0x320d
callq 0x2ef7
movq %rax, %r12
callq 0x2f37
movq %rax, 0x10(%r12)
movq %rax, %rdi
callq 0x30c6
movl %eax, %ebp
movl %eax, 0x8(%r12)
movq %r13, (%r12)
cmpl %r13d, 0x8488(%rip)     # 0xb1f8
jle 0x2d7c
movq %r15, %rdi
xorl %esi, %esi
callq 0x6297
movq 0x8555(%rip), %rdi      # 0xb2d8
callq 0x6275
movq %r12, %rax
addq $0x20, %rax
movq $0x0, 0x20(%r12)
movq 0x8559(%rip), %rcx      # 0xb2f8
movq %r12, (%rcx)
movq %rax, 0x854f(%rip)      # 0xb2f8
movq 0x8528(%rip), %rdi      # 0xb2d8
movl $0x1, %edx
movl $0x1, %esi
callq 0x63a4
incq %r13
testl %ebp, %ebp
jne 0x2d44
movq %r14, %rdi
callq 0x647f
testq %rbx, %rbx
je 0x2ddf
movq %rbx, %rdi
callq 0x647f
movq 0x84f2(%rip), %rdi      # 0xb2d8
testq %rdi, %rdi
je 0x2ee3
callq 0x6275
leaq 0x28(%rsp), %rax
movq $-0x1, -0x20(%rax)
xorps %xmm0, %xmm0
movups %xmm0, (%rax)
leaq 0x8(%rsp), %rcx
movq %rcx, 0x84cd(%rip)      # 0xb2e0
movq %rax, 0x84de(%rip)      # 0xb2f8
movq 0x84b7(%rip), %rdi      # 0xb2d8
movl $0x1, %edx
movl $0x1, %esi
callq 0x63a4
callq 0x64f0
callq 0x4355
callq 0x4598
movq 0x846a(%rip), %rdi      # 0xb2b0
callq 0x6245
movq 0x8486(%rip), %rdi      # 0xb2d8
callq 0x6245
cmpb $0x0, 0x839e(%rip)      # 0xb1fc
je 0x2e6c
movq 0x8481(%rip), %rdi      # 0xb2e8
callq 0x6245
movq $0x0, 0x8461(%rip) # 0xb2d8
movq 0x83fa(%rip), %rdi      # 0xb278
callq 0x2030
cmpb $0x0, 0x8336(%rip)      # 0xb1c0
je 0x2e98
movq 0x83ed(%rip), %rdi      # 0xb280
callq 0x2030
movq 0x83e9(%rip), %rdi      # 0xb288
callq 0x20b0
cmpb $0x0, 0x8315(%rip)      # 0xb1c0
je 0x2eb9
movq 0x83dc(%rip), %rdi      # 0xb290
callq 0x20b0
cmpb $0x0, 0x833c(%rip)      # 0xb1fc
je 0x2ee3
movq 0x83cf(%rip), %rdi      # 0xb298
callq 0x20b0
cmpb $0x0, 0x82eb(%rip)      # 0xb1c0
je 0x2ee3
movq 0x83c2(%rip), %rdi      # 0xb2a0
callq 0x20b0
addq $0x78, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
callq 0x23cc