// File: /workspace/github_c_makefile_star2_O0/lh3[P]pre-pe/pre-lianti.c
// Function: main
int main(int argc, char *argv[])
{
	int c;
	lt_global_t g;
	gzFile fp;

	lt_global_init(&g);
	while ((c = getopt(argc, argv, "Tt:b:l:")) >= 0) {
		if (c == 't') g.opt.n_threads = atoi(optarg);
		else if (c == 'T') g.opt.tab_out = 1;
		else if (c == 'b') g.opt.bc_len = atoi(optarg);
		else if (c == 'l') g.opt.min_seq_len = atoi(optarg);
	}
	if (argc - optind < 1) {
		fprintf(stderr, "Usage: seqtk mergepe <read1.fq> <read2.fq> | pre-lianti [options] -\n");
		fprintf(stderr, "Options:\n");
		fprintf(stderr, "  -t INT     number of threads [%d]\n", g.opt.n_threads);
		fprintf(stderr, "  -b INT     barcode length [%d]\n", g.opt.bc_len);
		fprintf(stderr, "  -l INT     min read/fragment length to output [%d]\n", g.opt.min_seq_len);
		fprintf(stderr, "  -T         tabular output for debugging\n");
		return 1;
	}

	fp = strcmp(argv[optind], "-")? gzopen(argv[optind], "r") : gzdopen(fileno(stdin), "r");
	g.ks = kseq_init(fp);
	g.sc_bind = lt_sc_gen(lt_bind);
	g.sc_prom = lt_sc_gen(lt_promoter);

	kt_pipeline(2, worker_pipeline, &g, 3);

	lt_sc_destroy(g.sc_prom);
	lt_sc_destroy(g.sc_bind);
	kseq_destroy(g.ks);
	gzclose(fp);
	return 0;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x70, %rsp
movl $0x0, -0x4(%rbp)
movl %edi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
leaq -0x60(%rbp), %rdi
callq 0x3e40
movl -0x8(%rbp), %edi
movq -0x10(%rbp), %rsi
leaq 0x1640(%rip), %rdx      # 0x70dd
callq 0x2210
movl %eax, -0x14(%rbp)
cmpl $0x0, %eax
jl 0x5b0d
cmpl $0x74, -0x14(%rbp)
jne 0x5ac4
movq 0x3521(%rip), %rax      # 0x8fd8
movq (%rax), %rdi
callq 0x2220
movl %eax, -0x60(%rbp)
jmp 0x5b0b
cmpl $0x54, -0x14(%rbp)
jne 0x5ad3
movl $0x1, -0x34(%rbp)
jmp 0x5b09
cmpl $0x62, -0x14(%rbp)
jne 0x5aed
movq 0x34f8(%rip), %rax      # 0x8fd8
movq (%rax), %rdi
callq 0x2220
movl %eax, -0x38(%rbp)
jmp 0x5b07
cmpl $0x6c, -0x14(%rbp)
jne 0x5b05
movq 0x34de(%rip), %rax      # 0x8fd8
movq (%rax), %rdi
callq 0x2220
movl %eax, -0x58(%rbp)
jmp 0x5b07
jmp 0x5b09
jmp 0x5b0b
jmp 0x5a8f
movl -0x8(%rbp), %eax
movq 0x34b9(%rip), %rcx      # 0x8fd0
subl (%rcx), %eax
cmpl $0x1, %eax
jge 0x5bc7
movq 0x34cf(%rip), %rax      # 0x8ff8
movq (%rax), %rdi
leaq 0x15b2(%rip), %rsi      # 0x70e5
movb $0x0, %al
callq 0x2150
movq 0x34b7(%rip), %rax      # 0x8ff8
movq (%rax), %rdi
leaq 0x15df(%rip), %rsi      # 0x712a
movb $0x0, %al
callq 0x2150
movq 0x349f(%rip), %rax      # 0x8ff8
movq (%rax), %rdi
movl -0x60(%rbp), %edx
leaq 0x15ce(%rip), %rsi      # 0x7134
movb $0x0, %al
callq 0x2150
movq 0x3484(%rip), %rax      # 0x8ff8
movq (%rax), %rdi
movl -0x38(%rbp), %edx
leaq 0x15d8(%rip), %rsi      # 0x7159
movb $0x0, %al
callq 0x2150
movq 0x3469(%rip), %rax      # 0x8ff8
movq (%rax), %rdi
movl -0x58(%rbp), %edx
leaq 0x15df(%rip), %rsi      # 0x717b
movb $0x0, %al
callq 0x2150
movq 0x344e(%rip), %rax      # 0x8ff8
movq (%rax), %rdi
leaq 0x15fd(%rip), %rsi      # 0x71b1
movb $0x0, %al
callq 0x2150
movl $0x1, -0x4(%rbp)
jmp 0x5ca9
movq -0x10(%rbp), %rax
movq 0x33fe(%rip), %rcx      # 0x8fd0
movslq (%rcx), %rcx
movq (%rax,%rcx,8), %rdi
leaq 0x15fc(%rip), %rsi      # 0x71dc
callq 0x2130
cmpl $0x0, %eax
je 0x5c0e
movq -0x10(%rbp), %rax
movq 0x33db(%rip), %rcx      # 0x8fd0
movslq (%rcx), %rcx
movq (%rax,%rcx,8), %rdi
leaq 0x15db(%rip), %rsi      # 0x71de
callq 0x21f0
movq %rax, -0x70(%rbp)
jmp 0x5c2f
movq 0x33b3(%rip), %rax      # 0x8fc8
movq (%rax), %rdi
callq 0x2170
movl %eax, %edi
leaq 0x15b8(%rip), %rsi      # 0x71de
callq 0x20a0
movq %rax, -0x70(%rbp)
movq -0x70(%rbp), %rax
movq %rax, -0x68(%rbp)
movq -0x68(%rbp), %rdi
callq 0x5cc0
movq %rax, -0x20(%rbp)
movq 0x3505(%rip), %rdi      # 0x9150
callq 0x2ed0
movq %rax, -0x30(%rbp)
movq 0x34fd(%rip), %rdi      # 0x9158
callq 0x2ed0
movq %rax, -0x28(%rbp)
movl $0x2, %edi
leaq 0x90(%rip), %rsi        # 0x5d00
leaq -0x60(%rbp), %rdx
movl $0x3, %ecx
callq 0x2580
movq -0x28(%rbp), %rdi
callq 0x2a30
movq -0x30(%rbp), %rdi
callq 0x2a30
movq -0x20(%rbp), %rdi
callq 0x60d0
movq -0x68(%rbp), %rdi
callq 0x2030
movl $0x0, -0x4(%rbp)
movl -0x4(%rbp), %eax
addq $0x70, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)