// File: /workspace/github_c_makefile_star2_O0/lh3[P]fermi2/unitig.c
// Function: main_assemble
int main_assemble(int argc, char *argv[])
{
	int c, use_mmap = 0, n_threads = 1, min_match = 31, min_merge_len = 0;
	rld_t *e;
	while ((c = getopt(argc, argv, "Ml:t:r:m:")) >= 0) {
		switch (c) {
			case 'l': min_match = atoi(optarg); break;
			case 'm': min_merge_len = atoi(optarg); break;
			case 'M': use_mmap = 1; break;
			case 't': n_threads = atoi(optarg); break;
		}
	}
	if (optind + 1 > argc) {
		fprintf(stderr, "\n");
		fprintf(stderr, "Usage:   fermi2 assemble [options] <reads.rld>\n\n");
		fprintf(stderr, "Options: -l INT      min match [%d]\n", min_match);
		fprintf(stderr, "         -m INT      min merge length [%d]\n", min_merge_len);
		fprintf(stderr, "         -t INT      number of threads [1]\n");
		fprintf(stderr, "\n");
		return 1;
	}
	e = use_mmap? rld_restore_mmap(argv[optind]) : rld_restore(argv[optind]);
	fm6_unitig(e, min_match, min_merge_len, n_threads);
	rld_destroy(e);
	return 0;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x40, %rsp
movl %edi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movl $0x0, -0x18(%rbp)
movl $0x1, -0x1c(%rbp)
movl $0x1f, -0x20(%rbp)
movl $0x0, -0x24(%rbp)
movl -0x8(%rbp), %edi
movq -0x10(%rbp), %rsi
leaq 0x9fbe(%rip), %rdx      # 0x2da97
callq 0x2300
movl %eax, -0x14(%rbp)
cmpl $0x0, %eax
jl 0x23b53
movl -0x14(%rbp), %eax
addl $-0x4d, %eax
movl %eax, %ecx
movq %rcx, -0x38(%rbp)
subl $0x27, %eax
ja 0x23b4e
movq -0x38(%rbp), %rax
leaq 0x9d66(%rip), %rcx      # 0x2d868
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
movq 0xf4c6(%rip), %rax      # 0x32fd8
movq (%rax), %rdi
callq 0x2310
movl %eax, -0x20(%rbp)
jmp 0x23b4e
movq 0xf4b2(%rip), %rax      # 0x32fd8
movq (%rax), %rdi
callq 0x2310
movl %eax, -0x24(%rbp)
jmp 0x23b4e
movl $0x1, -0x18(%rbp)
jmp 0x23b4e
movq 0xf495(%rip), %rax      # 0x32fd8
movq (%rax), %rdi
callq 0x2310
movl %eax, -0x1c(%rbp)
jmp 0x23acb
movq 0xf476(%rip), %rax      # 0x32fd0
movl (%rax), %eax
addl $0x1, %eax
cmpl -0x8(%rbp), %eax
jle 0x23c07
movq 0xf489(%rip), %rax      # 0x32ff8
movq (%rax), %rdi
leaq 0x8e8b(%rip), %rsi      # 0x2ca04
movb $0x0, %al
callq 0x21d0
movq 0xf471(%rip), %rax      # 0x32ff8
movq (%rax), %rdi
leaq 0x9f10(%rip), %rsi      # 0x2daa1
movb $0x0, %al
callq 0x21d0
movq 0xf459(%rip), %rax      # 0x32ff8
movq (%rax), %rdi
movl -0x20(%rbp), %edx
leaq 0x9f26(%rip), %rsi      # 0x2dad2
movb $0x0, %al
callq 0x21d0
movq 0xf43e(%rip), %rax      # 0x32ff8
movq (%rax), %rdi
movl -0x24(%rbp), %edx
leaq 0x9f30(%rip), %rsi      # 0x2daf7
movb $0x0, %al
callq 0x21d0
movq 0xf423(%rip), %rax      # 0x32ff8
movq (%rax), %rdi
leaq 0x9f44(%rip), %rsi      # 0x2db23
movb $0x0, %al
callq 0x21d0
movq 0xf40b(%rip), %rax      # 0x32ff8
movq (%rax), %rdi
leaq 0x8e0d(%rip), %rsi      # 0x2ca04
movb $0x0, %al
callq 0x21d0
movl $0x1, -0x4(%rbp)
jmp 0x23c6f
cmpl $0x0, -0x18(%rbp)
je 0x23c2a
movq -0x10(%rbp), %rax
movq 0xf3b8(%rip), %rcx      # 0x32fd0
movslq (%rcx), %rcx
movq (%rax,%rcx,8), %rdi
callq 0x3ca0
movq %rax, -0x40(%rbp)
jmp 0x23c45
movq -0x10(%rbp), %rax
movq 0xf39b(%rip), %rcx      # 0x32fd0
movslq (%rcx), %rcx
movq (%rax,%rcx,8), %rdi
callq 0x37c0
movq %rax, -0x40(%rbp)
movq -0x40(%rbp), %rax
movq %rax, -0x30(%rbp)
movq -0x30(%rbp), %rdi
movl -0x20(%rbp), %esi
movl -0x24(%rbp), %edx
movl -0x1c(%rbp), %ecx
callq 0x233b0
movq -0x30(%rbp), %rdi
callq 0x28f0
movl $0x0, -0x4(%rbp)
movl -0x4(%rbp), %eax
addq $0x40, %rsp
popq %rbp
retq
nopl (%rax,%rax)