// File: /workspace/github_c_makefile_star2_O3/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, 0x8667(%rip)      # 0xb2e0
jne 0x2d10
xorl %ebx, %ebx
xorl %edi, %edi
callq 0x61f0
movq %rax, 0x8651(%rip)      # 0xb2e0
movq %rbx, 0x8652(%rip)      # 0xb2e8
leaq 0x864b(%rip), %rax      # 0xb2e8
movq %rax, 0x865c(%rip)      # 0xb300
movq $-0x1, %rdi
callq 0x61f0
movq %rax, 0x8601(%rip)      # 0xb2b8
movq %rbx, 0x8602(%rip)      # 0xb2c0
movq $-0x1, %rdi
callq 0x61f0
movq %rax, 0x861f(%rip)      # 0xb2f0
movq %rbx, 0x8620(%rip)      # 0xb2f8
cmpb $0x1, 0x8525(%rip)      # 0xb204
movl 0x851b(%rip), %ebp      # 0xb200
adcl $-0x3, %ebp
movl %ebp, 0x8512(%rip)      # 0xb200
xorl %edi, %edi
callq 0x61f0
movq %rax, 0x85cc(%rip)      # 0xb2c8
movq %rbx, 0x85cd(%rip)      # 0xb2d0
movl %ebp, 0x85cf(%rip)      # 0xb2d8
movb $0x1, 0x85cc(%rip)      # 0xb2dc
leaq -0x43b(%rip), %rdi      # 0x28dc
xorl %ebx, %ebx
xorl %esi, %esi
callq 0x6287
movq %rax, %r14
cmpb $0x0, 0x84da(%rip)      # 0xb204
je 0x2d3d
leaq -0x1f0(%rip), %rdi      # 0x2b43
xorl %esi, %esi
callq 0x6287
movq %rax, %rbx
cmpl $0x0, 0x84bc(%rip)      # 0xb200
jle 0x2f02
xorl %r13d, %r13d
leaq 0x4a6(%rip), %r15       # 0x31fa
callq 0x2f07
movq %rax, %r12
callq 0x2f47
movq %rax, 0x10(%r12)
movq %rax, %rdi
callq 0x30b3
movl %eax, %ebp
movl %eax, 0x8(%r12)
movq %r13, (%r12)
cmpl %r13d, 0x8480(%rip)     # 0xb200
jle 0x2d8c
movq %r15, %rdi
xorl %esi, %esi
callq 0x6287
movq 0x854d(%rip), %rdi      # 0xb2e0
callq 0x6265
movq %r12, %rax
addq $0x20, %rax
movq $0x0, 0x20(%r12)
movq 0x8551(%rip), %rcx      # 0xb300
movq %r12, (%rcx)
movq %rax, 0x8547(%rip)      # 0xb300
movq 0x8520(%rip), %rdi      # 0xb2e0
movl $0x1, %edx
movl $0x1, %esi
callq 0x6394
incq %r13
testl %ebp, %ebp
jne 0x2d54
movq %r14, %rdi
callq 0x646f
testq %rbx, %rbx
je 0x2def
movq %rbx, %rdi
callq 0x646f
movq 0x84ea(%rip), %rdi      # 0xb2e0
testq %rdi, %rdi
je 0x2ef3
callq 0x6265
leaq 0x28(%rsp), %rax
movq $-0x1, -0x20(%rax)
xorps %xmm0, %xmm0
movups %xmm0, (%rax)
leaq 0x8(%rsp), %rcx
movq %rcx, 0x84c5(%rip)      # 0xb2e8
movq %rax, 0x84d6(%rip)      # 0xb300
movq 0x84af(%rip), %rdi      # 0xb2e0
movl $0x1, %edx
movl $0x1, %esi
callq 0x6394
callq 0x64df
callq 0x4345
callq 0x4588
movq 0x8462(%rip), %rdi      # 0xb2b8
callq 0x6235
movq 0x847e(%rip), %rdi      # 0xb2e0
callq 0x6235
cmpb $0x0, 0x8396(%rip)      # 0xb204
je 0x2e7c
movq 0x8479(%rip), %rdi      # 0xb2f0
callq 0x6235
movq $0x0, 0x8459(%rip) # 0xb2e0
movq 0x83f2(%rip), %rdi      # 0xb280
callq 0x2030
cmpb $0x0, 0x832e(%rip)      # 0xb1c8
je 0x2ea8
movq 0x83e5(%rip), %rdi      # 0xb288
callq 0x2030
movq 0x83e1(%rip), %rdi      # 0xb290
callq 0x20b0
cmpb $0x0, 0x830d(%rip)      # 0xb1c8
je 0x2ec9
movq 0x83d4(%rip), %rdi      # 0xb298
callq 0x20b0
cmpb $0x0, 0x8334(%rip)      # 0xb204
je 0x2ef3
movq 0x83c7(%rip), %rdi      # 0xb2a0
callq 0x20b0
cmpb $0x0, 0x82e3(%rip)      # 0xb1c8
je 0x2ef3
movq 0x83ba(%rip), %rdi      # 0xb2a8
callq 0x20b0
addq $0x78, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
callq 0x23dc