// File: /workspace/github_cpp_makefile_star2_O1/auton1[P]viterbi/parameters.cpp
// Function: parameters::check_parameters()
void parameters::check_parameters()
{
	parameters defaults(0, 0);

	if (isatty(STDIN_FILENO) && stream_in)
		LOG.error("No input detected via stream.");

	if (chrs_to_keep.size() != 1)
		LOG.error("Require a chromosome.");

	if ((p_error < 0.0) || (p_error > 1.0)) LOG.error("Error probability must be between 0 and 1.", 1);

	if (num_outputs > 1) error("Only one output function may be called.",0);
	if (chrs_to_keep.size() > 0 && chrs_to_exclude.size() > 0) error("Cannot specify chromosomes to keep and to exclude", 1);
	if (end_pos < start_pos) error("End position must be greater than Start position.", 1);
	if (((end_pos != numeric_limits<int>::max()) || (start_pos != -1)) && (chrs_to_keep.size() != 1)) error("Require a single chromosome when specifying a range.", 2);
	if (max_maf < min_maf) error("Maximum MAF must be not be less than Minimum MAF.", 4);
	if (max_mac < min_mac) error("Maximum MAC must be not be less than Minimum MAC.", 4);
	if (min_maf != defaults.min_maf)
	{
		if ((min_maf < 0.0) || (min_maf > 1.0)) error("MAF must be between 0 and 1.", 4);
	}
	if (max_maf != defaults.max_maf)
	{
		if ((max_maf < 0.0) || (max_maf > 1.0)) error("Maximum MAF must be between 0 and 1.", 4);
	}
	if (min_non_ref_af != defaults.min_non_ref_af)
	{
		if ((min_non_ref_af < 0.0) || (min_non_ref_af > 1.0)) error("Non-Ref Allele Frequency must be between 0 and 1.", 4);
	}
	if (max_non_ref_af < min_non_ref_af) error("Maximum Non-Ref Allele Frequency must not be less that Minimum Non-Ref AF.", 4);
	if (max_non_ref_ac < min_non_ref_ac) error("Maximum Non-Ref Allele Count must not be less that Minimum Non-Ref AC.", 4);
	if (min_site_call_rate > 1) error("Minimum Call rate cannot be greater than 1.", 5);
	if (max_alleles < min_alleles) error("Max Number of Alleles must be greater than Min Number of Alleles.", 6);
	if (max_mean_depth < min_mean_depth) error("Max Mean Depth must be greater the Min Mean Depth.", 7);
	if (max_genotype_depth < min_genotype_depth) error("Max Genotype Depth must be greater than Min Genotype Depth.", 9);
	if (min_kept_mask_value > 9) error("Min Mask value must be between 0 and 9.", 14);
}

// Assembly:
pushq %r14
pushq %rbx
subq $0x7b8, %rsp            # imm = 0x7B8
movq %rdi, %rbx
leaq 0x268(%rsp), %rdi
xorl %esi, %esi
xorl %edx, %edx
callq 0x2f57c
xorl %edi, %edi
callq 0x57c0
testl %eax, %eax
je 0x31ab4
cmpb $0x1, (%rbx)
jne 0x31ab4
leaq 0x58(%rsp), %r14
movq %r14, -0x10(%r14)
leaq 0x9e50(%rip), %rsi      # 0x3b8ce
leaq 0x9e66(%rip), %rdx      # 0x3b8eb
leaq 0x48(%rsp), %rdi
callq 0xc868
leaq 0x18a12(%rip), %rdi     # 0x4a4a8
leaq 0x48(%rsp), %rsi
movl $0x1, %edx
callq 0x3721e
movq 0x48(%rsp), %rdi
cmpq %r14, %rdi
je 0x31ab4
callq 0x5410
cmpq $0x1, 0x80(%rbx)
je 0x31b04
leaq 0x38(%rsp), %r14
movq %r14, -0x10(%r14)
leaq 0x9e1e(%rip), %rsi      # 0x3b8ec
leaq 0x9e2c(%rip), %rdx      # 0x3b901
leaq 0x28(%rsp), %rdi
callq 0xc868
leaq 0x189c2(%rip), %rdi     # 0x4a4a8
leaq 0x28(%rsp), %rsi
movl $0x1, %edx
callq 0x3721e
movq 0x28(%rsp), %rdi
cmpq %r14, %rdi
je 0x31b04
callq 0x5410
movsd 0x520(%rbx), %xmm0
xorpd %xmm1, %xmm1
ucomisd %xmm0, %xmm1
ja 0x31b20
ucomisd 0x74fa(%rip), %xmm0     # 0x39018
jbe 0x31b66
leaq 0x18(%rsp), %r14
movq %r14, -0x10(%r14)
leaq 0x9dd2(%rip), %rsi      # 0x3b902
leaq 0x9df5(%rip), %rdx      # 0x3b92c
leaq 0x8(%rsp), %rdi
callq 0xc868
leaq 0x18960(%rip), %rdi     # 0x4a4a8
leaq 0x8(%rsp), %rsi
movl $0x1, %edx
callq 0x3721e
movq 0x8(%rsp), %rdi
cmpq %r14, %rdi
je 0x31b66
callq 0x5410
cmpl $0x2, 0x2b0(%rbx)
jge 0x31d17
cmpq $0x0, 0x80(%rbx)
je 0x31b88
cmpq $0x0, 0x50(%rbx)
jne 0x31d4d
movl 0xa8(%rbx), %eax
cmpl 0x430(%rbx), %eax
jl 0x31d86
movl $0x7fffffff, %eax       # imm = 0x7FFFFFFF
xorl 0xa8(%rbx), %eax
movl 0x430(%rbx), %ecx
notl %ecx
orl %eax, %ecx
je 0x31bbf
cmpq $0x1, 0x80(%rbx)
jne 0x31dbf
movsd 0x1e0(%rbx), %xmm0
ucomisd 0x218(%rbx), %xmm0
ja 0x31df8
movl 0x210(%rbx), %eax
cmpl 0x1dc(%rbx), %eax
jl 0x31e31
movsd 0x1e0(%rbx), %xmm0
ucomisd 0x448(%rsp), %xmm0
jne 0x31bfc
jnp 0x31c18
xorpd %xmm1, %xmm1
ucomisd %xmm0, %xmm1
ja 0x31ff0
ucomisd 0x7406(%rip), %xmm0     # 0x39018
ja 0x31ff0
movsd 0x218(%rbx), %xmm0
ucomisd 0x480(%rsp), %xmm0
jne 0x31c2d
jnp 0x31c49
xorpd %xmm1, %xmm1
ucomisd %xmm0, %xmm1
ja 0x32029
ucomisd 0x73d5(%rip), %xmm0     # 0x39018
ja 0x32029
movsd 0x270(%rbx), %xmm0
ucomisd 0x4d8(%rsp), %xmm0
jne 0x31c5e
jnp 0x31c7a
xorpd %xmm1, %xmm1
ucomisd %xmm0, %xmm1
ja 0x32062
ucomisd 0x73a4(%rip), %xmm0     # 0x39018
ja 0x32062
movsd 0x270(%rbx), %xmm0
ucomisd 0x230(%rbx), %xmm0
ja 0x31e6a
movl 0x22c(%rbx), %eax
cmpl 0x268(%rbx), %eax
jl 0x31ea3
movsd 0x288(%rbx), %xmm0
ucomisd 0x7366(%rip), %xmm0     # 0x39018
ja 0x31edc
movl 0x208(%rbx), %eax
cmpl 0x23c(%rbx), %eax
jl 0x31f15
movsd 0x260(%rbx), %xmm0
ucomisd 0x220(%rbx), %xmm0
ja 0x31f4e
movl 0x20c(%rbx), %eax
cmpl 0x240(%rbx), %eax
jl 0x31f87
cmpl $0xa, 0x25c(%rbx)
jge 0x31fc0
leaq 0x268(%rsp), %rdi
callq 0xc534
addq $0x7b8, %rsp            # imm = 0x7B8
popq %rbx
popq %r14
retq
leaq 0x258(%rsp), %r14
movq %r14, -0x10(%r14)
leaq 0x9c03(%rip), %rsi      # 0x3b92d
leaq 0x9c23(%rip), %rdx      # 0x3b954
leaq 0x248(%rsp), %rdi
callq 0xc868
leaq 0x248(%rsp), %rdi
xorl %esi, %esi
callq 0x3196e
leaq 0x238(%rsp), %r14
movq %r14, -0x10(%r14)
leaq 0x9bf5(%rip), %rsi      # 0x3b955
leaq 0x9c1f(%rip), %rdx      # 0x3b986
leaq 0x228(%rsp), %rdi
callq 0xc868
leaq 0x228(%rsp), %rdi
movl $0x1, %esi
callq 0x3196e
leaq 0x218(%rsp), %r14
movq %r14, -0x10(%r14)
leaq 0x9bee(%rip), %rsi      # 0x3b987
leaq 0x9c18(%rip), %rdx      # 0x3b9b8
leaq 0x208(%rsp), %rdi
callq 0xc868
leaq 0x208(%rsp), %rdi
movl $0x1, %esi
callq 0x3196e
leaq 0x1f8(%rsp), %r14
movq %r14, -0x10(%r14)
leaq 0x9be7(%rip), %rsi      # 0x3b9b9
leaq 0x9c14(%rip), %rdx      # 0x3b9ed
leaq 0x1e8(%rsp), %rdi
callq 0xc868
leaq 0x1e8(%rsp), %rdi
movl $0x2, %esi
callq 0x3196e
leaq 0x1d8(%rsp), %r14
movq %r14, -0x10(%r14)
leaq 0x9be3(%rip), %rsi      # 0x3b9ee
leaq 0x9c0d(%rip), %rdx      # 0x3ba1f
leaq 0x1c8(%rsp), %rdi
callq 0xc868
leaq 0x1c8(%rsp), %rdi
movl $0x4, %esi
callq 0x3196e
leaq 0x1b8(%rsp), %r14
movq %r14, -0x10(%r14)
leaq 0x9bdc(%rip), %rsi      # 0x3ba20
leaq 0x9c06(%rip), %rdx      # 0x3ba51
leaq 0x1a8(%rsp), %rdi
callq 0xc868
leaq 0x1a8(%rsp), %rdi
movl $0x4, %esi
callq 0x3196e
leaq 0x138(%rsp), %r14
movq %r14, -0x10(%r14)
leaq 0x9c2c(%rip), %rsi      # 0x3baa9
leaq 0x9c6f(%rip), %rdx      # 0x3baf3
leaq 0x128(%rsp), %rdi
callq 0xc868
leaq 0x128(%rsp), %rdi
movl $0x4, %esi
callq 0x3196e
leaq 0x118(%rsp), %r14
movq %r14, -0x10(%r14)
leaq 0x9c3e(%rip), %rsi      # 0x3baf4
leaq 0x9c7d(%rip), %rdx      # 0x3bb3a
leaq 0x108(%rsp), %rdi
callq 0xc868
leaq 0x108(%rsp), %rdi
movl $0x4, %esi
callq 0x3196e
leaq 0xf8(%rsp), %r14
movq %r14, -0x10(%r14)
leaq 0x9c4c(%rip), %rsi      # 0x3bb3b
leaq 0x9c70(%rip), %rdx      # 0x3bb66
leaq 0xe8(%rsp), %rdi
callq 0xc868
leaq 0xe8(%rsp), %rdi
movl $0x5, %esi
callq 0x3196e
leaq 0xd8(%rsp), %r14
movq %r14, -0x10(%r14)
leaq 0x9c3f(%rip), %rsi      # 0x3bb67
leaq 0x9c79(%rip), %rdx      # 0x3bba8
leaq 0xc8(%rsp), %rdi
callq 0xc868
leaq 0xc8(%rsp), %rdi
movl $0x6, %esi
callq 0x3196e
leaq 0xb8(%rsp), %r14
movq %r14, -0x10(%r14)
leaq 0x9c48(%rip), %rsi      # 0x3bba9
leaq 0x9c73(%rip), %rdx      # 0x3bbdb
leaq 0xa8(%rsp), %rdi
callq 0xc868
leaq 0xa8(%rsp), %rdi
movl $0x7, %esi
callq 0x3196e
leaq 0x98(%rsp), %r14
movq %r14, -0x10(%r14)
leaq 0x9c42(%rip), %rsi      # 0x3bbdc
leaq 0x9c76(%rip), %rdx      # 0x3bc17
leaq 0x88(%rsp), %rdi
callq 0xc868
leaq 0x88(%rsp), %rdi
movl $0x9, %esi
callq 0x3196e
leaq 0x78(%rsp), %r14
movq %r14, -0x10(%r14)
leaq 0x9c48(%rip), %rsi      # 0x3bc18
leaq 0x9c68(%rip), %rdx      # 0x3bc3f
leaq 0x68(%rsp), %rdi
callq 0xc868
leaq 0x68(%rsp), %rdi
movl $0xe, %esi
callq 0x3196e
leaq 0x198(%rsp), %r14
movq %r14, -0x10(%r14)
leaq 0x9a57(%rip), %rsi      # 0x3ba5a
leaq 0x9a6c(%rip), %rdx      # 0x3ba76
leaq 0x188(%rsp), %rdi
callq 0xc868
leaq 0x188(%rsp), %rdi
movl $0x4, %esi
callq 0x3196e
leaq 0x178(%rsp), %r14
movq %r14, -0x10(%r14)
leaq 0x9a16(%rip), %rsi      # 0x3ba52
leaq 0x9a33(%rip), %rdx      # 0x3ba76
leaq 0x168(%rsp), %rdi
callq 0xc868
leaq 0x168(%rsp), %rdi
movl $0x4, %esi
callq 0x3196e
leaq 0x158(%rsp), %r14
movq %r14, -0x10(%r14)
leaq 0x9a02(%rip), %rsi      # 0x3ba77
leaq 0x9a2c(%rip), %rdx      # 0x3baa8
leaq 0x148(%rsp), %rdi
callq 0xc868
leaq 0x148(%rsp), %rdi
movl $0x4, %esi
callq 0x3196e
movq %rax, %rbx
movq 0x148(%rsp), %rdi
jmp 0x321e2
jmp 0x321f0
movq %rax, %rbx
movq 0x168(%rsp), %rdi
jmp 0x321e2
jmp 0x321f0
movq %rax, %rbx
movq 0x188(%rsp), %rdi
jmp 0x321e2
jmp 0x321f0
movq %rax, %rbx
movq 0x48(%rsp), %rdi
jmp 0x321e2
jmp 0x321f0
movq %rax, %rbx
movq 0x68(%rsp), %rdi
jmp 0x321e2
jmp 0x321f0
movq %rax, %rbx
movq 0x88(%rsp), %rdi
jmp 0x321e2
jmp 0x321f0
movq %rax, %rbx
movq 0xa8(%rsp), %rdi
jmp 0x321e2
jmp 0x321f0
movq %rax, %rbx
movq 0xc8(%rsp), %rdi
jmp 0x321e2
jmp 0x321f0
movq %rax, %rbx
movq 0xe8(%rsp), %rdi
jmp 0x321e2
jmp 0x321f0
movq %rax, %rbx
movq 0x108(%rsp), %rdi
jmp 0x321e2
jmp 0x321f0
movq %rax, %rbx
movq 0x128(%rsp), %rdi
jmp 0x321e2
jmp 0x321f0
movq %rax, %rbx
movq 0x1a8(%rsp), %rdi
jmp 0x321e2
jmp 0x321f0
movq %rax, %rbx
movq 0x1c8(%rsp), %rdi
jmp 0x321e2
jmp 0x321f0
movq %rax, %rbx
movq 0x1e8(%rsp), %rdi
jmp 0x321e2
movq %rax, %rbx
movq 0x208(%rsp), %rdi
jmp 0x321e2
jmp 0x321f0
jmp 0x321f0
movq %rax, %rbx
movq 0x228(%rsp), %rdi
jmp 0x321e2
movq %rax, %rbx
movq 0x248(%rsp), %rdi
jmp 0x321e2
jmp 0x321f0
jmp 0x321f0
movq %rax, %rbx
movq 0x8(%rsp), %rdi
jmp 0x321e2
movq %rax, %rbx
movq 0x28(%rsp), %rdi
cmpq %r14, %rdi
je 0x321f3
callq 0x5410
jmp 0x321f3
jmp 0x321f0
movq %rax, %rbx
leaq 0x268(%rsp), %rdi
callq 0xc534
movq %rbx, %rdi
callq 0x57d0