// File: /workspace/github_c_makefile_star2_O0/lh3[P]minimap2/options.c
// Function: mm_check_opt
int mm_check_opt(const mm_idxopt_t *io, const mm_mapopt_t *mo)
{
	if (mo->bw > mo->bw_long) {
		if (mm_verbose >= 1)
			fprintf(stderr, "[ERROR]\033[1;31m with '-rNUM1,NUM2', NUM1 (%d) can't be larger than NUM2 (%d)\033[0m\n", mo->bw, mo->bw_long);
		return -8;
	}
	if ((mo->flag & MM_F_RMQ) && (mo->flag & (MM_F_SR|MM_F_SPLICE))) {
		if (mm_verbose >= 1)
			fprintf(stderr, "[ERROR]\033[1;31m --rmq doesn't work with --sr or --splice\033[0m\n");
		return -7;
	}
	if (mo->split_prefix && (mo->flag & (MM_F_OUT_CS|MM_F_OUT_MD))) {
		if (mm_verbose >= 1)
			fprintf(stderr, "[ERROR]\033[1;31m --cs or --MD doesn't work with --split-prefix\033[0m\n");
		return -6;
	}
	if (io->k <= 0 || io->w <= 0) {
		if (mm_verbose >= 1)
			fprintf(stderr, "[ERROR]\033[1;31m -k and -w must be positive\033[0m\n");
		return -5;
	}
	if (mo->best_n < 0) {
		if (mm_verbose >= 1)
			fprintf(stderr, "[ERROR]\033[1;31m -N must be no less than 0\033[0m\n");
		return -4;
	}
	if (mo->best_n == 0 && mm_verbose >= 2)
		fprintf(stderr, "[WARNING]\033[1;31m '-N 0' reduces mapping accuracy. Please use '--secondary=no' instead.\033[0m\n");
	if (mo->pri_ratio < 0.0f || mo->pri_ratio > 1.0f) {
		if (mm_verbose >= 1)
			fprintf(stderr, "[ERROR]\033[1;31m -p must be within 0 and 1 (including 0 and 1)\033[0m\n");
		return -4;
	}
	if ((mo->flag & MM_F_FOR_ONLY) && (mo->flag & MM_F_REV_ONLY)) {
		if (mm_verbose >= 1)
			fprintf(stderr, "[ERROR]\033[1;31m --for-only and --rev-only can't be applied at the same time\033[0m\n");
		return -3;
	}
	if (mo->e <= 0 || mo->q <= 0) {
		if (mm_verbose >= 1)
			fprintf(stderr, "[ERROR]\033[1;31m -O and -E must be positive\033[0m\n");
		return -1;
	}
	if ((mo->q != mo->q2 || mo->e != mo->e2) && !(mo->e > mo->e2 && mo->q + mo->e < mo->q2 + mo->e2)) {
		if (mm_verbose >= 1)
			fprintf(stderr, "[ERROR]\033[1;31m dual gap penalties violating E1>E2 and O1+E1<O2+E2\033[0m\n");
		return -2;
	}
	if ((mo->q + mo->e) + (mo->q2 + mo->e2) > 127) {
		if (mm_verbose >= 1)
			fprintf(stderr, "[ERROR]\033[1;31m scoring system violating ({-O}+{-E})+({-O2}+{-E2}) <= 127\033[0m\n");
		return -1;
	}
	if (mo->sc_ambi < 0 || mo->sc_ambi >= mo->b) {
		if (mm_verbose >= 1)
			fprintf(stderr, "[ERROR]\033[1;31m --score-N should be within [0,{-B})\033[0m\n");
		return -1;
	}
	if (mo->zdrop < mo->zdrop_inv) {
		if (mm_verbose >= 1)
			fprintf(stderr, "[ERROR]\033[1;31m Z-drop should not be less than inversion-Z-drop\033[0m\n");
		return -5;
	}
	if ((mo->flag & MM_F_NO_PRINT_2ND) && (mo->flag & MM_F_ALL_CHAINS)) {
		if (mm_verbose >= 1)
			fprintf(stderr, "[ERROR]\033[1;31m -X/-P and --secondary=no can't be applied at the same time\033[0m\n");
		return -5;
	}
	if ((mo->flag & MM_F_QSTRAND) && ((mo->flag & (MM_F_OUT_SAM|MM_F_SPLICE|MM_F_FRAG_MODE)) || (io->flag & MM_I_HPC))) {
		if (mm_verbose >= 1)
			fprintf(stderr, "[ERROR]\033[1;31m --qstrand doesn't work with -a, -H, --frag or --splice\033[0m\n");
		return -5;
	}
	return 0;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x20, %rsp
movq %rdi, -0x10(%rbp)
movq %rsi, -0x18(%rbp)
movq -0x18(%rbp), %rax
movl 0x14(%rax), %eax
movq -0x18(%rbp), %rcx
cmpl 0x18(%rcx), %eax
jle 0x770e
leaq 0x57039(%rip), %rax     # 0x5e710
cmpl $0x1, (%rax)
jl 0x7702
movq 0x56915(%rip), %rax     # 0x5dff8
movq (%rax), %rdi
movq -0x18(%rbp), %rax
movl 0x14(%rax), %edx
movq -0x18(%rbp), %rax
movl 0x18(%rax), %ecx
leaq 0x4f1f5(%rip), %rsi     # 0x568f0
movb $0x0, %al
callq 0x2250
movl $0xfffffff8, -0x4(%rbp) # imm = 0xFFFFFFF8
jmp 0x7b81
movq -0x18(%rbp), %rcx
movabsq $0x80000000, %rax       # imm = 0x80000000
andq (%rcx), %rax
cmpq $0x0, %rax
je 0x7768
movq -0x18(%rbp), %rax
movq (%rax), %rax
andq $0x1080, %rax           # imm = 0x1080
cmpq $0x0, %rax
je 0x7768
leaq 0x56fd1(%rip), %rax     # 0x5e710
cmpl $0x1, (%rax)
jl 0x775c
movq 0x568ad(%rip), %rax     # 0x5dff8
movq (%rax), %rdi
leaq 0x4f1ec(%rip), %rsi     # 0x56941
movb $0x0, %al
callq 0x2250
movl $0xfffffff9, -0x4(%rbp) # imm = 0xFFFFFFF9
jmp 0x7b81
movq -0x18(%rbp), %rax
cmpq $0x0, 0x100(%rax)
je 0x77b9
movq -0x18(%rbp), %rax
movq (%rax), %rax
andq $0x1000040, %rax        # imm = 0x1000040
cmpq $0x0, %rax
je 0x77b9
leaq 0x56f80(%rip), %rax     # 0x5e710
cmpl $0x1, (%rax)
jl 0x77ad
movq 0x5685c(%rip), %rax     # 0x5dff8
movq (%rax), %rdi
leaq 0x4f1d8(%rip), %rsi     # 0x5697e
movb $0x0, %al
callq 0x2250
movl $0xfffffffa, -0x4(%rbp) # imm = 0xFFFFFFFA
jmp 0x7b81
movq -0x10(%rbp), %rax
movswl (%rax), %eax
cmpl $0x0, %eax
jle 0x77d2
movq -0x10(%rbp), %rax
movswl 0x2(%rax), %eax
cmpl $0x0, %eax
jg 0x7802
leaq 0x56f37(%rip), %rax     # 0x5e710
cmpl $0x1, (%rax)
jl 0x77f6
movq 0x56813(%rip), %rax     # 0x5dff8
movq (%rax), %rdi
leaq 0x4f1d1(%rip), %rsi     # 0x569c0
movb $0x0, %al
callq 0x2250
movl $0xfffffffb, -0x4(%rbp) # imm = 0xFFFFFFFB
jmp 0x7b81
movq -0x18(%rbp), %rax
cmpl $0x0, 0x5c(%rax)
jge 0x783c
leaq 0x56efd(%rip), %rax     # 0x5e710
cmpl $0x1, (%rax)
jl 0x7830
movq 0x567d9(%rip), %rax     # 0x5dff8
movq (%rax), %rdi
leaq 0x4f1c6(%rip), %rsi     # 0x569ef
movb $0x0, %al
callq 0x2250
movl $0xfffffffc, -0x4(%rbp) # imm = 0xFFFFFFFC
jmp 0x7b81
movq -0x18(%rbp), %rax
cmpl $0x0, 0x5c(%rax)
jne 0x786a
leaq 0x56ec3(%rip), %rax     # 0x5e710
cmpl $0x2, (%rax)
jl 0x786a
movq 0x5679f(%rip), %rax     # 0x5dff8
movq (%rax), %rdi
leaq 0x4f1ba(%rip), %rsi     # 0x56a1d
movb $0x0, %al
callq 0x2250
movq -0x18(%rbp), %rax
xorps %xmm0, %xmm0
ucomiss 0x58(%rax), %xmm0
ja 0x788d
movq -0x18(%rbp), %rax
movss 0x58(%rax), %xmm0
movss 0x4ef88(%rip), %xmm1    # 0x56810
ucomiss %xmm1, %xmm0
jbe 0x78bd
leaq 0x56e7c(%rip), %rax     # 0x5e710
cmpl $0x1, (%rax)
jl 0x78b1
movq 0x56758(%rip), %rax     # 0x5dff8
movq (%rax), %rdi
leaq 0x4f1cf(%rip), %rsi     # 0x56a79
movb $0x0, %al
callq 0x2250
movl $0xfffffffc, -0x4(%rbp) # imm = 0xFFFFFFFC
jmp 0x7b81
movq -0x18(%rbp), %rax
movq (%rax), %rax
andq $0x100000, %rax         # imm = 0x100000
cmpq $0x0, %rax
je 0x7913
movq -0x18(%rbp), %rax
movq (%rax), %rax
andq $0x200000, %rax         # imm = 0x200000
cmpq $0x0, %rax
je 0x7913
leaq 0x56e26(%rip), %rax     # 0x5e710
cmpl $0x1, (%rax)
jl 0x7907
movq 0x56702(%rip), %rax     # 0x5dff8
movq (%rax), %rdi
leaq 0x4f1bb(%rip), %rsi     # 0x56abb
movb $0x0, %al
callq 0x2250
movl $0xfffffffd, -0x4(%rbp) # imm = 0xFFFFFFFD
jmp 0x7b81
movq -0x18(%rbp), %rax
cmpl $0x0, 0x70(%rax)
jle 0x7927
movq -0x18(%rbp), %rax
cmpl $0x0, 0x6c(%rax)
jg 0x7957
leaq 0x56de2(%rip), %rax     # 0x5e710
cmpl $0x1, (%rax)
jl 0x794b
movq 0x566be(%rip), %rax     # 0x5dff8
movq (%rax), %rdi
leaq 0x4f1c7(%rip), %rsi     # 0x56b0b
movb $0x0, %al
callq 0x2250
movl $0xffffffff, -0x4(%rbp) # imm = 0xFFFFFFFF
jmp 0x7b81
movq -0x18(%rbp), %rax
movl 0x6c(%rax), %eax
movq -0x18(%rbp), %rcx
cmpl 0x74(%rcx), %eax
jne 0x7977
movq -0x18(%rbp), %rax
movl 0x70(%rax), %eax
movq -0x18(%rbp), %rcx
cmpl 0x78(%rcx), %eax
je 0x79d7
movq -0x18(%rbp), %rax
movl 0x70(%rax), %eax
movq -0x18(%rbp), %rcx
cmpl 0x78(%rcx), %eax
jle 0x79a7
movq -0x18(%rbp), %rax
movl 0x6c(%rax), %eax
movq -0x18(%rbp), %rcx
addl 0x70(%rcx), %eax
movq -0x18(%rbp), %rcx
movl 0x74(%rcx), %ecx
movq -0x18(%rbp), %rdx
addl 0x78(%rdx), %ecx
cmpl %ecx, %eax
jl 0x79d7
leaq 0x56d62(%rip), %rax     # 0x5e710
cmpl $0x1, (%rax)
jl 0x79cb
movq 0x5663e(%rip), %rax     # 0x5dff8
movq (%rax), %rdi
leaq 0x4f176(%rip), %rsi     # 0x56b3a
movb $0x0, %al
callq 0x2250
movl $0xfffffffe, -0x4(%rbp) # imm = 0xFFFFFFFE
jmp 0x7b81
movq -0x18(%rbp), %rax
movl 0x6c(%rax), %eax
movq -0x18(%rbp), %rcx
addl 0x70(%rcx), %eax
movq -0x18(%rbp), %rcx
movl 0x74(%rcx), %ecx
movq -0x18(%rbp), %rdx
addl 0x78(%rdx), %ecx
addl %ecx, %eax
cmpl $0x7f, %eax
jle 0x7a2a
leaq 0x56d0f(%rip), %rax     # 0x5e710
cmpl $0x1, (%rax)
jl 0x7a1e
movq 0x565eb(%rip), %rax     # 0x5dff8
movq (%rax), %rdi
leaq 0x4f16a(%rip), %rsi     # 0x56b81
movb $0x0, %al
callq 0x2250
movl $0xffffffff, -0x4(%rbp) # imm = 0xFFFFFFFF
jmp 0x7b81
movq -0x18(%rbp), %rax
cmpl $0x0, 0x80(%rax)
jl 0x7a4a
movq -0x18(%rbp), %rax
movl 0x80(%rax), %eax
movq -0x18(%rbp), %rcx
cmpl 0x68(%rcx), %eax
jl 0x7a7a
leaq 0x56cbf(%rip), %rax     # 0x5e710
cmpl $0x1, (%rax)
jl 0x7a6e
movq 0x5659b(%rip), %rax     # 0x5dff8
movq (%rax), %rdi
leaq 0x4f168(%rip), %rsi     # 0x56bcf
movb $0x0, %al
callq 0x2250
movl $0xffffffff, -0x4(%rbp) # imm = 0xFFFFFFFF
jmp 0x7b81
movq -0x18(%rbp), %rax
movl 0x90(%rax), %eax
movq -0x18(%rbp), %rcx
cmpl 0x94(%rcx), %eax
jge 0x7ac0
leaq 0x56c79(%rip), %rax     # 0x5e710
cmpl $0x1, (%rax)
jl 0x7ab4
movq 0x56555(%rip), %rax     # 0x5dff8
movq (%rax), %rdi
leaq 0x4f15a(%rip), %rsi     # 0x56c07
movb $0x0, %al
callq 0x2250
movl $0xfffffffb, -0x4(%rbp) # imm = 0xFFFFFFFB
jmp 0x7b81
movq -0x18(%rbp), %rax
movq (%rax), %rax
andq $0x4000, %rax           # imm = 0x4000
cmpq $0x0, %rax
je 0x7b13
movq -0x18(%rbp), %rax
movq (%rax), %rax
andq $0x800000, %rax         # imm = 0x800000
cmpq $0x0, %rax
je 0x7b13
leaq 0x56c23(%rip), %rax     # 0x5e710
cmpl $0x1, (%rax)
jl 0x7b0a
movq 0x564ff(%rip), %rax     # 0x5dff8
movq (%rax), %rdi
leaq 0x4f148(%rip), %rsi     # 0x56c4b
movb $0x0, %al
callq 0x2250
movl $0xfffffffb, -0x4(%rbp) # imm = 0xFFFFFFFB
jmp 0x7b81
movq -0x18(%rbp), %rcx
movabsq $0x100000000, %rax      # imm = 0x100000000
andq (%rcx), %rax
cmpq $0x0, %rax
je 0x7b7a
movq -0x18(%rbp), %rax
movq (%rax), %rax
andq $0x2088, %rax           # imm = 0x2088
cmpq $0x0, %rax
jne 0x7b4d
movq -0x10(%rbp), %rax
movswl 0x4(%rax), %eax
andl $0x1, %eax
cmpl $0x0, %eax
je 0x7b7a
leaq 0x56bbc(%rip), %rax     # 0x5e710
cmpl $0x1, (%rax)
jl 0x7b71
movq 0x56498(%rip), %rax     # 0x5dff8
movq (%rax), %rdi
leaq 0x4f130(%rip), %rsi     # 0x56c9a
movb $0x0, %al
callq 0x2250
movl $0xfffffffb, -0x4(%rbp) # imm = 0xFFFFFFFB
jmp 0x7b81
movl $0x0, -0x4(%rbp)
movl -0x4(%rbp), %eax
addq $0x20, %rsp
popq %rbp
retq
nopw (%rax,%rax)