// File: /workspace/github_cpp_makefile_star2_O2/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 %rbx
subq $0x7c0, %rsp            # imm = 0x7C0
movq %rdi, %rbx
leaq 0x270(%rsp), %rdi
xorl %esi, %esi
xorl %edx, %edx
callq 0x26fac
xorl %edi, %edi
callq 0x57f0
testl %eax, %eax
je 0x28db2
cmpb $0x1, (%rbx)
jne 0x28db2
leaq 0x6a79(%rip), %rsi      # 0x2f7fe
leaq 0x50(%rsp), %rdi
leaq 0xf(%rsp), %rdx
callq 0x5160
leaq 0x18735(%rip), %rdi     # 0x414d0
leaq 0x50(%rsp), %rsi
pushq $0x1
popq %rdx
callq 0x2bf18
leaq 0x50(%rsp), %rdi
callq 0x5908
cmpq $0x1, 0x80(%rbx)
je 0x28df0
leaq 0x6a59(%rip), %rsi      # 0x2f81c
leaq 0x30(%rsp), %rdi
leaq 0xf(%rsp), %rdx
callq 0x5160
leaq 0x186f7(%rip), %rdi     # 0x414d0
leaq 0x30(%rsp), %rsi
pushq $0x1
popq %rdx
callq 0x2bf18
leaq 0x30(%rsp), %rdi
callq 0x5908
movsd 0x520(%rbx), %xmm0
xorpd %xmm1, %xmm1
ucomisd %xmm0, %xmm1
ja 0x28e0c
ucomisd 0x420e(%rip), %xmm0     # 0x2d018
jbe 0x28e40
leaq 0x6a1f(%rip), %rsi      # 0x2f832
leaq 0x10(%rsp), %rdi
leaq 0xf(%rsp), %rdx
callq 0x5160
leaq 0x186a7(%rip), %rdi     # 0x414d0
leaq 0x10(%rsp), %rsi
pushq $0x1
popq %rdx
callq 0x2bf18
leaq 0x10(%rsp), %rdi
callq 0x5908
cmpl $0x2, 0x2b0(%rbx)
jge 0x28fd6
movq 0x80(%rbx), %rax
testq %rax, %rax
je 0x28e64
cmpq $0x0, 0x50(%rbx)
jne 0x28ffe
movl 0xa8(%rbx), %ecx
movl 0x430(%rbx), %edx
cmpl %edx, %ecx
jl 0x29027
xorl $0x7fffffff, %ecx       # imm = 0x7FFFFFFF
notl %edx
orl %ecx, %edx
sete %cl
cmpq $0x1, %rax
sete %al
orb %cl, %al
je 0x29050
movsd 0x1e0(%rbx), %xmm1
movsd 0x218(%rbx), %xmm0
ucomisd %xmm0, %xmm1
ja 0x29079
movl 0x210(%rbx), %eax
cmpl 0x1dc(%rbx), %eax
jl 0x290a2
ucomisd 0x450(%rsp), %xmm1
jne 0x28ecd
jnp 0x28ee9
xorpd %xmm2, %xmm2
ucomisd %xmm1, %xmm2
ja 0x291e4
ucomisd 0x4135(%rip), %xmm1     # 0x2d018
ja 0x291e4
ucomisd 0x488(%rsp), %xmm0
jne 0x28ef6
jnp 0x28f12
xorpd %xmm1, %xmm1
ucomisd %xmm0, %xmm1
ja 0x2920d
ucomisd 0x410c(%rip), %xmm0     # 0x2d018
ja 0x2920d
movsd 0x270(%rbx), %xmm0
ucomisd 0x4e0(%rsp), %xmm0
jne 0x28f27
jnp 0x28f43
xorpd %xmm1, %xmm1
ucomisd %xmm0, %xmm1
ja 0x29236
ucomisd 0x40db(%rip), %xmm0     # 0x2d018
ja 0x29236
ucomisd 0x230(%rbx), %xmm0
ja 0x290cb
movl 0x22c(%rbx), %eax
cmpl 0x268(%rbx), %eax
jl 0x290f4
movsd 0x288(%rbx), %xmm0
ucomisd 0x40a5(%rip), %xmm0     # 0x2d018
ja 0x2911d
movl 0x208(%rbx), %eax
cmpl 0x23c(%rbx), %eax
jl 0x29146
movsd 0x260(%rbx), %xmm0
ucomisd 0x220(%rbx), %xmm0
ja 0x2916f
movl 0x20c(%rbx), %eax
cmpl 0x240(%rbx), %eax
jl 0x29198
cmpl $0xa, 0x25c(%rbx)
jge 0x291c1
leaq 0x270(%rsp), %rdi
callq 0x9f3e
addq $0x7c0, %rsp            # imm = 0x7C0
popq %rbx
retq
leaq 0x6880(%rip), %rsi      # 0x2f85d
leaq 0x250(%rsp), %rdi
leaq 0xf(%rsp), %rdx
callq 0x5160
leaq 0x250(%rsp), %rdi
xorl %esi, %esi
callq 0x28cce
leaq 0x6880(%rip), %rsi      # 0x2f885
leaq 0x230(%rsp), %rdi
leaq 0xf(%rsp), %rdx
callq 0x5160
leaq 0x230(%rsp), %rdi
pushq $0x1
popq %rsi
callq 0x28cce
leaq 0x6889(%rip), %rsi      # 0x2f8b7
leaq 0x210(%rsp), %rdi
leaq 0xf(%rsp), %rdx
callq 0x5160
leaq 0x210(%rsp), %rdi
pushq $0x1
popq %rsi
callq 0x28cce
leaq 0x6892(%rip), %rsi      # 0x2f8e9
leaq 0x1f0(%rsp), %rdi
leaq 0xf(%rsp), %rdx
callq 0x5160
leaq 0x1f0(%rsp), %rdi
pushq $0x2
popq %rsi
callq 0x28cce
leaq 0x689e(%rip), %rsi      # 0x2f91e
leaq 0x1d0(%rsp), %rdi
leaq 0xf(%rsp), %rdx
callq 0x5160
leaq 0x1d0(%rsp), %rdi
pushq $0x4
popq %rsi
callq 0x28cce
leaq 0x68a7(%rip), %rsi      # 0x2f950
leaq 0x1b0(%rsp), %rdi
leaq 0xf(%rsp), %rdx
callq 0x5160
leaq 0x1b0(%rsp), %rdi
pushq $0x4
popq %rsi
callq 0x28cce
leaq 0x6907(%rip), %rsi      # 0x2f9d9
leaq 0x130(%rsp), %rdi
leaq 0xf(%rsp), %rdx
callq 0x5160
leaq 0x130(%rsp), %rdi
pushq $0x4
popq %rsi
callq 0x28cce
leaq 0x6929(%rip), %rsi      # 0x2fa24
leaq 0x110(%rsp), %rdi
leaq 0xf(%rsp), %rdx
callq 0x5160
leaq 0x110(%rsp), %rdi
pushq $0x4
popq %rsi
callq 0x28cce
leaq 0x6947(%rip), %rsi      # 0x2fa6b
leaq 0xf0(%rsp), %rdi
leaq 0xf(%rsp), %rdx
callq 0x5160
leaq 0xf0(%rsp), %rdi
pushq $0x5
popq %rsi
callq 0x28cce
leaq 0x694a(%rip), %rsi      # 0x2fa97
leaq 0xd0(%rsp), %rdi
leaq 0xf(%rsp), %rdx
callq 0x5160
leaq 0xd0(%rsp), %rdi
pushq $0x6
popq %rsi
callq 0x28cce
leaq 0x6963(%rip), %rsi      # 0x2fad9
leaq 0xb0(%rsp), %rdi
leaq 0xf(%rsp), %rdx
callq 0x5160
leaq 0xb0(%rsp), %rdi
pushq $0x7
popq %rsi
callq 0x28cce
leaq 0x696d(%rip), %rsi      # 0x2fb0c
leaq 0x90(%rsp), %rdi
leaq 0xf(%rsp), %rdx
callq 0x5160
leaq 0x90(%rsp), %rdi
pushq $0x9
popq %rsi
callq 0x28cce
leaq 0x6980(%rip), %rsi      # 0x2fb48
leaq 0x70(%rsp), %rdi
leaq 0xf(%rsp), %rdx
callq 0x5160
leaq 0x70(%rsp), %rdi
pushq $0xe
popq %rsi
callq 0x28cce
leaq 0x679f(%rip), %rsi      # 0x2f98a
leaq 0x190(%rsp), %rdi
leaq 0xf(%rsp), %rdx
callq 0x5160
leaq 0x190(%rsp), %rdi
pushq $0x4
popq %rsi
callq 0x28cce
leaq 0x676e(%rip), %rsi      # 0x2f982
leaq 0x170(%rsp), %rdi
leaq 0xf(%rsp), %rdx
callq 0x5160
leaq 0x170(%rsp), %rdi
pushq $0x4
popq %rsi
callq 0x28cce
leaq 0x676a(%rip), %rsi      # 0x2f9a7
leaq 0x150(%rsp), %rdi
leaq 0xf(%rsp), %rdx
callq 0x5160
leaq 0x150(%rsp), %rdi
pushq $0x4
popq %rsi
callq 0x28cce
movq %rax, %rbx
leaq 0x150(%rsp), %rdi
jmp 0x293a6
jmp 0x293af
movq %rax, %rbx
leaq 0x170(%rsp), %rdi
jmp 0x293a6
jmp 0x293af
movq %rax, %rbx
leaq 0x190(%rsp), %rdi
jmp 0x293a6
jmp 0x293af
movq %rax, %rbx
leaq 0x50(%rsp), %rdi
jmp 0x293a6
jmp 0x293af
movq %rax, %rbx
leaq 0x70(%rsp), %rdi
jmp 0x293a6
jmp 0x293af
movq %rax, %rbx
leaq 0x90(%rsp), %rdi
jmp 0x293a6
jmp 0x293af
movq %rax, %rbx
leaq 0xb0(%rsp), %rdi
jmp 0x293a6
jmp 0x293af
movq %rax, %rbx
leaq 0xd0(%rsp), %rdi
jmp 0x293a6
jmp 0x293af
movq %rax, %rbx
leaq 0xf0(%rsp), %rdi
jmp 0x293a6
jmp 0x293af
movq %rax, %rbx
leaq 0x110(%rsp), %rdi
jmp 0x293a6
jmp 0x293af
movq %rax, %rbx
leaq 0x130(%rsp), %rdi
jmp 0x293a6
jmp 0x293af
movq %rax, %rbx
leaq 0x1b0(%rsp), %rdi
jmp 0x293a6
jmp 0x293af
movq %rax, %rbx
leaq 0x1d0(%rsp), %rdi
jmp 0x293a6
jmp 0x293af
movq %rax, %rbx
leaq 0x1f0(%rsp), %rdi
jmp 0x293a6
jmp 0x293af
movq %rax, %rbx
leaq 0x210(%rsp), %rdi
jmp 0x293a6
jmp 0x293af
movq %rax, %rbx
leaq 0x230(%rsp), %rdi
jmp 0x293a6
movq %rax, %rbx
leaq 0x250(%rsp), %rdi
jmp 0x293a6
jmp 0x293af
jmp 0x293af
movq %rax, %rbx
leaq 0x10(%rsp), %rdi
jmp 0x293a6
movq %rax, %rbx
leaq 0x30(%rsp), %rdi
callq 0x5908
jmp 0x293b2
jmp 0x293af
movq %rax, %rbx
leaq 0x270(%rsp), %rdi
callq 0x9f3e
movq %rbx, %rdi
callq 0x5800
nop