// File: /workspace/github_c_makefile_star2_O0/lh3[P]minigraph/options.c
// Function: mg_opt_set
int mg_opt_set(const char *preset, mg_idxopt_t *io, mg_mapopt_t *mo, mg_ggopt_t *go)
{
	if (preset == 0) {
		mg_idxopt_init(io);
		mg_mapopt_init(mo);
		mg_ggopt_init(go);
	} else if (strcmp(preset, "lr") == 0) { // this is the default
	} else if (strcmp(preset, "asm") == 0 || strcmp(preset, "ggs") == 0) {
		io->k = 19, io->w = 10;
		mo->flag |= MG_M_RMQ;
		mo->occ_max1 = 10, mo->occ_max1_cap = 100;
		mo->bw = 1000, mo->bw_long = 150000;
		mo->max_gap = 10000, mo->max_gap_pre = 1000;
		mo->min_lc_cnt = 5, mo->min_lc_score = 40;
		mo->min_gc_cnt = 5, mo->min_gc_score = 1000;
		mo->min_cov_mapq = 5;
		mo->min_cov_blen = 100000;
		mo->max_lc_skip = mo->max_gc_skip = 50;
		mo->div = 0.01f;
		mo->mini_batch_size = 4000000000LL;
		if (strcmp(preset, "ggs") == 0)
			go->algo = MG_G_GGSIMPLE, mo->best_n = 0;
	} else if (strcmp(preset, "se") == 0 || strcmp(preset, "sr") == 0) {
		io->k = 21, io->w = 10;
		mo->flag |= MG_M_SR | MG_M_HEAP_SORT | MG_M_2_IO_THREADS;
		mo->occ_max1 = 1000;
		mo->occ_max1_cap = 2500;
		mo->max_gap = 100;
		mo->bw = mo->bw_long = 100;
		mo->max_frag_len = 800;
		mo->pri_ratio = 0.5f;
		mo->min_lc_cnt = 2, mo->min_lc_score = 25;
		mo->min_gc_cnt = 3, mo->min_gc_score = 40;
		mo->mini_batch_size = 50000000;
		mo->min_cov_blen = 50;
		mo->chn_pen_gap = 0.2f;
		mo->ref_bonus = 1;
		if (strcmp(preset, "sr") == 0) {
			mo->flag |= MG_M_FRAG_MODE | MG_M_FRAG_MERGE;
			mo->pe_ori = 0<<1|1; // FR
		}
	} else return -1;
	return 0;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x30, %rsp
movq %rdi, -0x10(%rbp)
movq %rsi, -0x18(%rbp)
movq %rdx, -0x20(%rbp)
movq %rcx, -0x28(%rbp)
cmpq $0x0, -0x10(%rbp)
jne 0x17bef
movq -0x18(%rbp), %rdi
callq 0x178b0
movq -0x20(%rbp), %rdi
callq 0x17900
movq -0x28(%rbp), %rdi
callq 0x17af0
jmp 0x17e9f
movq -0x10(%rbp), %rdi
leaq 0x24efe(%rip), %rsi     # 0x3caf8
callq 0x21f0
cmpl $0x0, %eax
jne 0x17c09
jmp 0x17e9d
movq -0x10(%rbp), %rdi
leaq 0x26b73(%rip), %rsi     # 0x3e787
callq 0x21f0
cmpl $0x0, %eax
je 0x17c37
movq -0x10(%rbp), %rdi
leaq 0x24ed2(%rip), %rsi     # 0x3cafb
callq 0x21f0
cmpl $0x0, %eax
jne 0x17d4e
movq -0x18(%rbp), %rax
movl $0x13, 0x4(%rax)
movq -0x18(%rbp), %rax
movl $0xa, (%rax)
movq -0x20(%rbp), %rax
movq (%rax), %rcx
orq $0x8000, %rcx           # imm = 0x8000
movq %rcx, (%rax)
movq -0x20(%rbp), %rax
movl $0xa, 0x1c(%rax)
movq -0x20(%rbp), %rax
movl $0x64, 0x20(%rax)
movq -0x20(%rbp), %rax
movl $0x3e8, 0x28(%rax)      # imm = 0x3E8
movq -0x20(%rbp), %rax
movl $0x249f0, 0x2c(%rax)    # imm = 0x249F0
movq -0x20(%rbp), %rax
movl $0x2710, 0x40(%rax)     # imm = 0x2710
movq -0x20(%rbp), %rax
movl $0x3e8, 0x3c(%rax)      # imm = 0x3E8
movq -0x20(%rbp), %rax
movl $0x5, 0x64(%rax)
movq -0x20(%rbp), %rax
movl $0x28, 0x68(%rax)
movq -0x20(%rbp), %rax
movl $0x5, 0x6c(%rax)
movq -0x20(%rbp), %rax
movl $0x3e8, 0x70(%rax)      # imm = 0x3E8
movq -0x20(%rbp), %rax
movl $0x5, 0xa0(%rax)
movq -0x20(%rbp), %rax
movl $0x186a0, 0xa4(%rax)    # imm = 0x186A0
movq -0x20(%rbp), %rax
movl $0x32, 0x60(%rax)
movq -0x20(%rbp), %rax
movl $0x32, 0x58(%rax)
movq -0x20(%rbp), %rax
movss 0x24deb(%rip), %xmm0    # 0x3caf4
movss %xmm0, 0x4c(%rax)
movq -0x20(%rbp), %rax
movl $0xee6b2800, %ecx       # imm = 0xEE6B2800
movq %rcx, 0x8(%rax)
movq -0x10(%rbp), %rdi
leaq 0x24dd5(%rip), %rsi     # 0x3cafb
callq 0x21f0
cmpl $0x0, %eax
jne 0x17d49
movq -0x28(%rbp), %rax
movl $0x1, 0x8(%rax)
movq -0x20(%rbp), %rax
movl $0x0, 0x88(%rax)
jmp 0x17e9b
movq -0x10(%rbp), %rdi
leaq 0x24da6(%rip), %rsi     # 0x3caff
callq 0x21f0
cmpl $0x0, %eax
je 0x17d7c
movq -0x10(%rbp), %rdi
leaq 0x24d94(%rip), %rsi     # 0x3cb02
callq 0x21f0
cmpl $0x0, %eax
jne 0x17e90
movq -0x18(%rbp), %rax
movl $0x15, 0x4(%rax)
movq -0x18(%rbp), %rax
movl $0xa, (%rax)
movq -0x20(%rbp), %rax
movq (%rax), %rcx
orq $0x80420, %rcx          # imm = 0x80420
movq %rcx, (%rax)
movq -0x20(%rbp), %rax
movl $0x3e8, 0x1c(%rax)      # imm = 0x3E8
movq -0x20(%rbp), %rax
movl $0x9c4, 0x20(%rax)      # imm = 0x9C4
movq -0x20(%rbp), %rax
movl $0x64, 0x40(%rax)
movq -0x20(%rbp), %rax
movl $0x64, 0x2c(%rax)
movq -0x20(%rbp), %rax
movl $0x64, 0x28(%rax)
movq -0x20(%rbp), %rax
movl $0x320, 0x48(%rax)      # imm = 0x320
movq -0x20(%rbp), %rax
movss 0x24ce8(%rip), %xmm0    # 0x3cad8
movss %xmm0, 0x8c(%rax)
movq -0x20(%rbp), %rax
movl $0x2, 0x64(%rax)
movq -0x20(%rbp), %rax
movl $0x19, 0x68(%rax)
movq -0x20(%rbp), %rax
movl $0x3, 0x6c(%rax)
movq -0x20(%rbp), %rax
movl $0x28, 0x70(%rax)
movq -0x20(%rbp), %rax
movq $0x2faf080, 0x8(%rax)   # imm = 0x2FAF080
movq -0x20(%rbp), %rax
movl $0x32, 0xa4(%rax)
movq -0x20(%rbp), %rax
movss 0x24ca6(%rip), %xmm0    # 0x3caf0
movss %xmm0, 0x50(%rax)
movq -0x20(%rbp), %rax
movl $0x1, 0x90(%rax)
movq -0x10(%rbp), %rdi
leaq 0x24c9a(%rip), %rsi     # 0x3cb02
callq 0x21f0
cmpl $0x0, %eax
jne 0x17e8e
movq -0x20(%rbp), %rax
movq (%rax), %rcx
orq $0xc0, %rcx
movq %rcx, (%rax)
movq -0x20(%rbp), %rax
movl $0x1, 0x18(%rax)
jmp 0x17e99
movl $0xffffffff, -0x4(%rbp) # imm = 0xFFFFFFFF
jmp 0x17ea6
jmp 0x17e9b
jmp 0x17e9d
jmp 0x17e9f
movl $0x0, -0x4(%rbp)
movl -0x4(%rbp), %eax
addq $0x30, %rsp
popq %rbp
retq
nop